{"version":3,"file":"commons-2d230b9714eb1d27b265.js","mappings":";uFAqBA,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,qCC3RA,IAAIsC,EAAsB,EAAQ,OAE9BC,EAAmB,EAAQ,OAC3BC,EAAgB,EAAQ,OAiC5B,SAASC,EAAoBC,EAAQC,EAAOC,GAC1C,OAAO,IAAIN,EAAoBI,EAAQC,EAAOC,EAChD,CAOAH,EAAoBI,QAAU,EAAQ,OAOtCJ,EAAoBH,oBAAsBA,EAO1CG,EAAoBF,iBAAmBA,EAOvCE,EAAoBD,cAAgBA,EAEpCjD,EAAOC,QAAUiD,sCCpEjB,IAAI3D,EAAe,EAAQ,OAa3B,SAASgE,EAAcC,EAAYC,GACjCjE,KAAKkE,KAAOF,EACZhE,KAAKiE,GAAKA,EACVjE,KAAKmE,YAAc,IACrB,CAhBe,EAAQ,MAkBvBC,CAASL,EAAehE,GAOxBgE,EAAcrD,UAAU2D,OAAS,WAC/BrE,KAAKkD,qBACLlD,KAAKkE,KAAKI,oBAAoBtE,KAChC,EAEA+D,EAAcrD,UAAU6D,iBAAmB,SAASC,GAClD,OAAOxE,KAAKiE,GAAGO,EACjB,EAEAhE,EAAOC,QAAUsD,sCCvBjB,IAAIU,EAAe,EAAQ,OACvBC,EAAO,EAAQ,OACfC,EAAgB,EAAQ,OAExBC,EAAM,CAQRC,cAAe,SAAuBC,EAAgBC,EAAWC,GAC/D,GAAIJ,EAAIK,UAAUH,EAAgBC,EAAWC,GAC3C,OAAOF,EAGT,IAAII,EAAgB,GAAKF,EAErBG,EAAmBL,EAAeC,GAEpCD,EAAeC,GAAWK,OAAOF,GADjC,CAACA,GAGCG,EAAM,CAAC,EAIX,OAFAA,EAAIN,GAAaI,EAEVV,EAAa,CAAC,EAAGY,EAAKP,EAC/B,EAUAQ,iBAAkB,SAA0BR,EAAgBC,EAAWC,GACrE,QAAc7E,IAAV6E,EAGF,OAAOJ,EAAIW,gBAAgBT,GAAgB,SAASU,EAAGC,GACrD,OAAOV,IAAcU,CACvB,IAGF,IAAIP,EAAgB,GAAKF,EAEzB,OAAOJ,EAAIW,gBAAgBT,GAAgB,SAASU,EAAGC,GACrD,OAAOV,IAAcU,GAAKP,IAAkBM,CAC9C,GACF,EAQAE,iBAAkB,SAA0BZ,EAAgBC,EAAWC,GACrE,QAAc7E,IAAV6E,EAAqB,MAAM,IAAIrD,MAAM,gDAEzC,OAAIiD,EAAIK,UAAUH,EAAgBC,EAAWC,GACpCJ,EAAIU,iBAAiBR,EAAgBC,EAAWC,GAGlDJ,EAAIC,cAAcC,EAAgBC,EAAWC,EACtD,EAYAO,gBAAiB,SAAyBT,EAAgBC,EAAWY,GACnE,QAAkBxF,IAAd4E,EACF,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,SAASC,EAAM9C,GACxE,IAAI+C,EAASpB,EAAe3B,IAAQ,GAChCgD,EAAYD,EAAOE,QAAO,SAASpB,GACrC,OAAQD,EAAUC,EAAO7B,EAAKwC,EAChC,IAOA,OALIQ,EAAU1E,SAAWyE,EAAOzE,SAC9BmE,GAAa,GAEfK,EAAK9C,GAAOgD,EAELF,CACT,GAAG,CAAC,GAEJ,OAAIL,EAAmBC,EAChBf,CACT,CACF,EAUAG,UAAW,SAAmBH,EAAgBC,EAAWsB,GACvD,IAAIC,IAAwBxB,EAAeC,IACzCD,EAAeC,GAAWtD,OAAS,EAErC,QAAwBtB,IAApBkG,IAAkCC,EACpC,OAAOA,EAGT,IAAIC,EAA0B,GAAKF,EAEnC,OAAuE,IAAhEvB,EAAeC,GAAWyB,QAAQD,EAC3C,GAGF/F,EAAOC,QAAUmE,sCChJjB,IAAI6B,EAAQ,EAAQ,OAChBhC,EAAe,EAAQ,OACvBiC,EAAe,EAAQ,OACvBC,EAAO,EAAQ,MACfC,EAAc,EAAQ,OACtBlC,EAAO,EAAQ,OACfC,EAAgB,EAAQ,OACxBkC,EAAmB,EAAQ,OAE3BC,EAAiB,EAAQ,OAS7B,SAASC,EAAyBC,EAAGC,GACnC,OAAIlF,MAAMmF,QAAQF,IAAMjF,MAAMmF,QAAQD,GAElCD,EAAEvF,SAAWwF,EAAExF,QACfuF,EAAEG,OAAM,SAASC,EAAI9F,GACnB,OAAOyF,EAAyBE,EAAE3F,GAAI8F,EACxC,IAGGJ,IAAMC,CACf,CA+DA,SAASzD,EAAiB6D,GACxB,IAAIC,EAASD,EAAgB7D,EAAiB+D,cAAcF,GAAiB,CAAC,OAErDlH,IAArBmH,EAAOE,WAA4BX,EAAiBS,EAAOE,YAC7DhF,QAAQiF,KAAK,mIAQfzH,KAAK0H,OAASJ,EAAOI,QAAU,GAO/B1H,KAAK2H,kBAAoBL,EAAOK,mBAAqB,GASrD3H,KAAK4H,mBAAqBN,EAAOM,oBAAsB,GAevD5H,KAAK6H,kBAAoBP,EAAOO,mBAAqB,CAAC,EAatD7H,KAAK8H,eAAiBR,EAAOQ,gBAAkB,CAAC,EAahD9H,KAAK+H,6BAA+BT,EAAOS,8BAAgC,CAAC,EAY5E/H,KAAKgI,mBAAqBV,EAAOU,oBAAsB,CAAC,EAQxDhI,KAAKiI,eAAiBX,EAAOW,gBAAkB,GAe/CjI,KAAKkI,8BAAgCZ,EAAOY,+BAAiC,CAAC,EAE9E,IAAIC,EAAOnI,KACX8F,OAAOC,KAAKuB,GAAQc,SAAQ,SAASC,GACnC,IAAIC,GAAiE,IAApD9E,EAAiB+E,WAAW/B,QAAQ6B,GACjDG,OAAuCrI,IAAtBmH,EAAOe,IAEvBC,GAAcE,IACjBL,EAAKE,GAAaf,EAAOe,GAE7B,GACF,CAOA7E,EAAiB+E,WAAazC,OAAOC,KAAK,IAAIvC,GAO9CA,EAAiB+D,cAAgB,SAASkB,GAExC,GAAIA,aAAwBjF,EAAkB,OAAOiF,EAErD,IAAIC,EAAU,CAAC,EAsCf,GApCiB,CACf,kBACA,eACA,iBACA,uBACA,sBACA,OACA,oBACA,WACA,sBACA,cACA,gBAGSN,SAAQ,SAASO,GAC1B,IAAI3D,EAAQyD,EAAaE,GACzB,GAAqB,iBAAV3D,EAAoB,CAC7B,IAAI4D,EAAcC,WAAW7D,GAE7B0D,EAAQC,GAAK7H,MAAM8H,GAAe5D,EAAQ4D,CAC5C,CACF,IAII7G,MAAMmF,QAAQuB,EAAaK,qBAC7BJ,EAAQI,kBAAoBL,EAAaK,kBAAkBC,KAAI,SAASC,GACtE,OAAIjH,MAAMmF,QAAQ8B,GACTA,EAAQD,KAAI,SAAS/D,GAC1B,OAAO6D,WAAW7D,EACpB,IAEKgE,CACT,KAGEP,EAAaT,mBAAoB,CACnC,IAAIA,EAAqB,CAAC,EAC1BlC,OAAOC,KAAK0C,EAAaT,oBAAoBI,SAAQ,SAASrD,GAC5D,IAAIkE,EAAYR,EAAaT,mBAAmBjD,IAAc,CAAC,EAC/DiD,EAAmBjD,GAAa,CAAC,EACjCe,OAAOC,KAAKkD,GAAWb,SAAQ,SAASc,GACtC,IACIC,EADSF,EAAUC,GACGH,KAAI,SAASvD,GACrC,OAAIzD,MAAMmF,QAAQ1B,GACTA,EAAEuD,KAAI,SAASK,GACpB,MAAsB,iBAAXA,EACFP,WAAWO,GAEbA,CACT,IACsB,iBAAN5D,EACTqD,WAAWrD,GAEbA,CACT,IACAwC,EAAmBjD,GAAWmE,GAAYC,CAC5C,GACF,IACAT,EAAQV,mBAAqBA,CAC/B,CAEA,OAAOvB,EAAM,CAAC,EAAGgC,EAAcC,EACjC,EAQAlF,EAAiB6F,KAAO,SAA8BhC,GACpD,IAAIiC,EAAW,IAAI9F,EAAiB6D,GAmBpC,OAjByBA,EAAcO,oBAAsB,IAC1CQ,SAAQ,SAASmB,GAClC,GAAIA,EAAMC,SAAU,CAClB,IAAIC,EAAoBH,EAASI,0BAA0BH,EAAMI,MAE7DF,EAAkBhI,OAAS,GAAsD,IAAjDgI,EAAkB,GAAGjD,QAAQ+C,EAAMC,YACrEF,EAAWA,EAASM,iBAAiBL,EAAMI,OAKZ,KADjCF,EAAoBH,EAASI,0BAA0BH,EAAMI,OACvClI,SACpB6H,EAAWA,EAASO,kCAAkCN,EAAMI,KAAMJ,EAAMC,UAE5E,CACF,IAEOF,CACT,EAQA9F,EAAiBsG,SAAW,SAASC,EAAcvF,GACjD,IAAI8C,EAAS9C,GAAc,CAAC,EAE5B,OAAIuF,EAAaC,YAAc1C,EAAOW,gBAAkBX,EAAOW,eAAexG,OAAS,EAC9E,IAAIE,MACT,qLAIAoI,EAAa9B,eAAexG,OAAS,GAAK6F,EAAO0C,WAC5C,IAAIrI,MACT,oKAKFoI,EAAaE,gBACb3C,EAAOU,oBACPrD,EAAc2C,EAAOU,oBAEd,IAAIrG,MACT,+KAMAgD,EAAcoF,EAAa/B,qBAAuBV,EAAO2C,eACpD,IAAItI,MACT,+KAKG,IACT,EAEA6B,EAAiB9C,UAAY,CAC3BwJ,YAAa1G,EAWboG,iBAAkB,SAA0B7E,GAC1C,IAAIoF,EAAQ,CACVnC,mBAAoBhI,KAAKoK,yBAAyBrF,GAClD8C,kBAAmBf,EAAevB,gBAChCvF,KAAK6H,kBACL9C,EACA,oBAEF+C,eAAgBhB,EAAevB,gBAC7BvF,KAAK8H,eACL/C,EACA,WAEFgD,6BAA8BjB,EAAevB,gBAC3CvF,KAAK+H,6BACLhD,EACA,oBAEFmD,8BAA+BpB,EAAevB,gBAC5CvF,KAAKkI,8BACLnD,EACA,sBAGJ,OACEoF,EAAMnC,qBAAuBhI,KAAKgI,oBAClCmC,EAAMtC,oBAAsB7H,KAAK6H,mBACjCsC,EAAMrC,iBAAmB9H,KAAK8H,gBAC9BqC,EAAMpC,+BAAiC/H,KAAK+H,8BAC5CoC,EAAMjC,gCAAkClI,KAAKkI,8BAEtClI,KAEFA,KAAKqK,mBAAmBF,EACjC,EAMAG,UAAW,WACT,YAAwBnK,IAApBH,KAAKgK,YAA2D,IAA/BhK,KAAKiI,eAAexG,OAAqBzB,KAEvEA,KAAKqK,mBAAmB,CAC7BL,gBAAY7J,EACZ8H,eAAgB,IAEpB,EAOAsC,SAAU,SAAkB3G,GAC1B,OAAIA,IAAU5D,KAAK4D,MAAc5D,KAE1BA,KAAKqK,mBAAmB,CAC7BzG,MAAOA,GAEX,EAOA4G,SAAU,SAAkBC,GAC1B,OAAIA,IAAazK,KAAK0K,MAAc1K,KAE7BA,KAAKqK,mBAAmB,CAC7BK,MAAOD,GAEX,EAOAE,QAAS,SAAiBC,GACxB,OAAIA,IAAY5K,KAAK6K,KAAa7K,KAE3BA,KAAKqK,mBAAmB,CAC7BQ,KAAMD,GAEV,EAQAE,UAAW,SAAmBpD,GAC5B,OAAO1H,KAAKqK,mBAAmB,CAC7B3C,OAAQA,GAEZ,EAQAqD,qBAAsB,SAA8BrD,GAClD,OAAO1H,KAAKqK,mBAAmB,CAC7B1C,kBAAmBD,GAEvB,EAQAsD,eAAgB,SAAwBnK,GACtC,OAAIb,KAAKiL,cAAgBpK,EAAUb,KAE5BA,KAAKqK,mBAAmB,CAC7BY,YAAapK,GAEjB,EAQAqK,iBAAkB,SAA0BC,GAC1C,OAAInL,KAAKmL,gBAAkBA,EAAsBnL,KAE1CA,KAAKqK,mBAAmB,CAC7Bc,cAAeA,GAEnB,EAkBAC,qBAAsB,SAASrG,EAAWmE,EAAU1D,GAClD,IAAIR,EAAQ4B,EAAYpB,GAExB,GAAIxF,KAAKqL,iBAAiBtG,EAAWmE,EAAUlE,GAAQ,OAAOhF,KAE9D,IAAIqF,EAAMoB,EAAM,CAAC,EAAGzG,KAAKgI,oBAazB,OAXA3C,EAAIN,GAAa0B,EAAM,CAAC,EAAGpB,EAAIN,IAE3BM,EAAIN,GAAWmE,IAEjB7D,EAAIN,GAAWmE,GAAY7D,EAAIN,GAAWmE,GAAUlH,QAEpDqD,EAAIN,GAAWmE,GAAU5G,KAAK0C,IAE9BK,EAAIN,GAAWmE,GAAY,CAAClE,GAGvBhF,KAAKqK,mBAAmB,CAC7BrC,mBAAoB3C,GAExB,EAMAiG,0BAA2B,SAASC,GAClC,OAAKvL,KAAKwL,mBAAmBD,IAGtBvL,KAAK6H,kBAAkB0D,IAFrB,EAGX,EAMAE,0BAA2B,SAASF,GAClC,OAAKvL,KAAK0L,mBAAmBH,IAGtBvL,KAAK+H,6BAA6BwD,IAFhC,EAGX,EAMA7B,0BAA2B,SAAS6B,GAGlC,OAAOvL,KAAKkI,8BAA8BqD,IAAc,EAC1D,EAMAI,sBAAuB,SAASJ,GAC9B,OAAKvL,KAAKwL,mBAAmBD,IAGtBvL,KAAK8H,eAAeyD,IAFlB,EAGX,EAUAK,wBAAyB,SAAS7G,EAAWmE,EAAU2C,GACrD,YAAmB1L,IAAf0L,EACG7L,KAAKqL,iBAAiBtG,EAAWmE,EAAU2C,GAGzC7L,KAAKqK,mBAAmB,CAC7BrC,mBAAoBhI,KAAKoK,0BAAyB,SAASpF,EAAO7B,GAChE,OACEA,IAAQ4B,GACRC,EAAM8G,KAAO5C,GACbnC,EAAyB/B,EAAM+G,IAAKnF,EAAYiF,GAEpD,MATO7L,UAWaG,IAAb+I,EACJlJ,KAAKqL,iBAAiBtG,EAAWmE,GAC/BlJ,KAAKqK,mBAAmB,CAC7BrC,mBAAoBhI,KAAKoK,0BAAyB,SAASpF,EAAO7B,GAChE,OAAOA,IAAQ4B,GAAaC,EAAM8G,KAAO5C,CAC3C,MAJsDlJ,KAQrDA,KAAKqL,iBAAiBtG,GACpB/E,KAAKqK,mBAAmB,CAC7BrC,mBAAoBhI,KAAKoK,0BAAyB,SAASpF,EAAO7B,GAChE,OAAOA,IAAQ4B,CACjB,MAJ4C/E,IAMhD,EAMAgM,sBAAuB,SAAST,GAC9B,OAAOvL,KAAKgI,mBAAmBuD,IAAc,CAAC,CAChD,EAOAU,qBAAsB,SAASlH,EAAWmE,GACxC,OAAOlJ,KAAKgI,mBAAmBjD,IAAc/E,KAAKgI,mBAAmBjD,GAAWmE,EAClF,EAWAkB,yBAA0B,SAAkCrF,GAC1D,QAAkB5E,IAAd4E,EACF,OAAKJ,EAAc3E,KAAKgI,oBAGjB,CAAC,EAFChI,KAAKgI,mBAGT,GAAyB,iBAAdjD,EAChB,OAAOL,EAAK1E,KAAKgI,mBAAoB,CAACjD,IACjC,GAAyB,mBAAdA,EAA0B,CAC1C,IAAIa,GAAa,EACboC,EAAqBhI,KAAKgI,mBAC1BkE,EAAwBpG,OAAOC,KAAKiC,GAAoBhC,QAAO,SAASC,EAAM9C,GAChF,IAAI8F,EAAYjB,EAAmB7E,GAC/BgJ,EAAe,CAAC,EAkBpB,OAhBAlD,EAAYA,GAAa,CAAC,EAC1BnD,OAAOC,KAAKkD,GAAWb,SAAQ,SAASc,GACtC,IAAIhD,EAAS+C,EAAUC,IAAa,GAChCkD,EAAY,GAChBlG,EAAOkC,SAAQ,SAASpD,GACAD,EAAU,CAACgH,IAAK/G,EAAO8G,GAAI5C,GAAW/F,EAAK,YAC3CiJ,EAAU9J,KAAK0C,EACvC,IACIoH,EAAU3K,SAAWyE,EAAOzE,SAC9BmE,GAAa,GAEfuG,EAAajD,GAAYkD,CAC3B,IAEAnG,EAAK9C,GAAOgJ,EAELlG,CACT,GAAG,CAAC,GAEJ,OAAIL,EAAmBsG,EAChBlM,KAAKgI,kBACd,CACF,EAQAqE,SAAU,SAAkB9C,GAC1B,OAAIvJ,KAAKwL,mBAAmBjC,GACnBvJ,KAGFA,KAAKqK,mBAAmB,CAC7B3C,OAAQ1H,KAAK0H,OAAOtC,OAAO,CAACmE,KAEhC,EAQA+C,oBAAqB,SAA6B/C,GAChD,OAAIvJ,KAAK0L,mBAAmBnC,GACnBvJ,KAGFA,KAAKqK,mBAAmB,CAC7B1C,kBAAmB3H,KAAK2H,kBAAkBvC,OAAO,CAACmE,KAEtD,EASAgD,qBAAsB,SAA8BC,GAClD,GAAIxM,KAAKyM,oBAAoBD,EAAkB7C,MAC7C,MAAM,IAAIhI,MACR,+DAAiE6K,EAAkB7C,KAAO,KAG9F,OAAO3J,KAAKqK,mBAAmB,CAC7BzC,mBAAoB5H,KAAK4H,mBAAmBxC,OAAO,CAACoH,KAExD,EAQAE,mBAAoB,SAA4BnD,EAAOvE,GACrD,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAE1B,OAAIzC,EAAe7B,UAAUjF,KAAK6H,kBAAmB0B,EAAOvE,GAAehF,KAEpEA,KAAKqK,mBAAmB,CAC7BxC,kBAAmBf,EAAejC,cAAc7E,KAAK6H,kBAAmB0B,EAAOvE,IAEnF,EAQA2H,qBAAsB,SAA8BpD,EAAOvE,GACzD,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAE1B,OAAIzC,EAAe7B,UAAUjF,KAAK8H,eAAgByB,EAAOvE,GAAehF,KAEjEA,KAAKqK,mBAAmB,CAC7BvC,eAAgBhB,EAAejC,cAAc7E,KAAK8H,eAAgByB,EAAOvE,IAE7E,EAQA4H,8BAA+B,SAAuCrD,EAAOvE,GAC3E,IAAKhF,KAAK0L,mBAAmBnC,GAC3B,MAAM,IAAI5H,MACR4H,EAAQ,kFAGZ,OAAIzC,EAAe7B,UAAUjF,KAAK+H,6BAA8BwB,EAAOvE,GAAehF,KAE/EA,KAAKqK,mBAAmB,CAC7BtC,6BAA8BjB,EAAejC,cAC3C7E,KAAK+H,6BAA8BwB,EAAOvE,IAEhD,EAMA6H,iBAAkB,SAA0BC,GAC1C,GAAI9M,KAAK+M,aAAaD,GAAM,OAAO9M,KAEnC,IAAIgN,EAAe,CACjB/E,eAAgBjI,KAAKiI,eAAe7C,OAAO0H,IAG7C,OAAO9M,KAAKqK,mBAAmB2C,EACjC,EAQAC,YAAa,SAAqB1D,GAChC,OAAKvJ,KAAKwL,mBAAmBjC,GAItBvJ,KAAK4J,iBAAiBL,GAAOc,mBAAmB,CACrD3C,OAAQ1H,KAAK0H,OAAOtB,QAAO,SAASX,GAClC,OAAOA,IAAM8D,CACf,MANOvJ,IAQX,EAQAkN,uBAAwB,SAAgC3D,GACtD,OAAKvJ,KAAK0L,mBAAmBnC,GAItBvJ,KAAK4J,iBAAiBL,GAAOc,mBAAmB,CACrD1C,kBAAmB3H,KAAK2H,kBAAkBvB,QAAO,SAASX,GACxD,OAAOA,IAAM8D,CACf,MANOvJ,IAQX,EAQAmN,wBAAyB,SAAiC5D,GACxD,OAAKvJ,KAAKyM,oBAAoBlD,GAIvBvJ,KAAK4J,iBAAiBL,GAAOc,mBAAmB,CACrDzC,mBAAoB5H,KAAK4H,mBAAmBxB,QAAO,SAASX,GAC1D,OAAOA,EAAEkE,OAASJ,CACpB,MANOvJ,IAQX,EAUAoN,sBAAuB,SAA+B7D,EAAOvE,GAC3D,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAE1B,OAAKzC,EAAe7B,UAAUjF,KAAK6H,kBAAmB0B,EAAOvE,GAEtDhF,KAAKqK,mBAAmB,CAC7BxC,kBAAmBf,EAAexB,iBAAiBtF,KAAK6H,kBAAmB0B,EAAOvE,KAHRhF,IAK9E,EAQAqN,wBAAyB,SAAiC9D,EAAOvE,GAC/D,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAE1B,OAAKzC,EAAe7B,UAAUjF,KAAK8H,eAAgByB,EAAOvE,GAEnDhF,KAAKqK,mBAAmB,CAC7BvC,eAAgBhB,EAAexB,iBAAiBtF,KAAK8H,eAAgByB,EAAOvE,KAHLhF,IAK3E,EAQAsN,iCAAkC,SAA0C/D,EAAOvE,GACjF,IAAKhF,KAAK0L,mBAAmBnC,GAC3B,MAAM,IAAI5H,MACR4H,EAAQ,kFAEZ,OAAKzC,EAAe7B,UAAUjF,KAAK+H,6BAA8BwB,EAAOvE,GAEjEhF,KAAKqK,mBAAmB,CAC7BtC,6BAA8BjB,EAAexB,iBAC3CtF,KAAK+H,6BAA8BwB,EAAOvE,KAJyChF,IAMzF,EAOAuN,oBAAqB,SAA6BT,GAChD,IAAK9M,KAAK+M,aAAaD,GAAM,OAAO9M,KAEpC,IAAIgN,EAAe,CACjB/E,eAAgBjI,KAAKiI,eAAe7B,QAAO,SAASoH,GAClD,OAAOA,IAAMV,CACf,KAGF,OAAO9M,KAAKqK,mBAAmB2C,EACjC,EAUAtH,iBAAkB,SAA0B6D,EAAOvE,GACjD,OAAOhF,KAAKyN,sBAAsBlE,EAAOvE,EAC3C,EASAyI,sBAAuB,SAA+BlE,EAAOvE,GAC3D,GAAIhF,KAAKyM,oBAAoBlD,GAC3B,OAAOvJ,KAAK6J,kCAAkCN,EAAOvE,GAChD,GAAIhF,KAAKwL,mBAAmBjC,GACjC,OAAOvJ,KAAK0N,iCAAiCnE,EAAOvE,GAC/C,GAAIhF,KAAK0L,mBAAmBnC,GACjC,OAAOvJ,KAAK2N,iCAAiCpE,EAAOvE,GAGtD,MAAM,IAAIrD,MAAM,sCAAwC4H,EACtD,6FACJ,EAQAmE,iCAAkC,SAA0CnE,EAAOvE,GACjF,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAG1B,OAAOvJ,KAAKqK,mBAAmB,CAC7BxC,kBAAmBf,EAAepB,iBAAiB1F,KAAK6H,kBAAmB0B,EAAOvE,IAEtF,EAQA4I,6BAA8B,SAAsCrE,EAAOvE,GACzE,IAAKhF,KAAKwL,mBAAmBjC,GAC3B,MAAM,IAAI5H,MAAM4H,EAAQ,uEAG1B,OAAOvJ,KAAKqK,mBAAmB,CAC7BvC,eAAgBhB,EAAepB,iBAAiB1F,KAAK8H,eAAgByB,EAAOvE,IAEhF,EAQA2I,iCAAkC,SAA0CpE,EAAOvE,GACjF,IAAKhF,KAAK0L,mBAAmBnC,GAC3B,MAAM,IAAI5H,MACR4H,EAAQ,kFAGZ,OAAOvJ,KAAKqK,mBAAmB,CAC7BtC,6BAA8BjB,EAAepB,iBAC3C1F,KAAK+H,6BAA8BwB,EAAOvE,IAEhD,EAQA6E,kCAAmC,SAA2CN,EAAOvE,GACnF,IAAKhF,KAAKyM,oBAAoBlD,GAC5B,MAAM,IAAI5H,MACR4H,EAAQ,mFAGZ,IAAIsE,EAAY7N,KAAK8N,+BAA+B9N,KAAK+N,2BAA2BxE,IAEhFlE,EAAM,CAAC,EAyBX,YAvByElF,IAA9CH,KAAKkI,8BAA8BqB,IAC5DvJ,KAAKkI,8BAA8BqB,GAAO9H,OAAS,IAGnDzB,KAAKkI,8BAA8BqB,GAAO,KAAOvE,GAK2B,IAA5EhF,KAAKkI,8BAA8BqB,GAAO,GAAG/C,QAAQxB,EAAQ6I,KAI3B,IAA9B7I,EAAMwB,QAAQqH,GAEhBxI,EAAIkE,GAAS,GAEblE,EAAIkE,GAAS,CAACvE,EAAMhD,MAAM,EAAGgD,EAAMgJ,YAAYH,KAGjDxI,EAAIkE,GAAS,CAACvE,GAGThF,KAAKqK,mBAAmB,CAC7BnC,8BAA+BzD,EAAa,CAAC,EAAGY,EAAKrF,KAAKkI,gCAE9D,EASA+F,+BAAgC,SAAS1E,EAAO2E,GAC9C,GAAIlO,KAAKmO,2BAA2B5E,GAClC,MAAM,IAAI5H,MAAM4H,EAAQ,wBAE1B,IAAKvJ,KAAKyM,oBAAoBlD,GAC5B,MAAM,IAAI5H,MAAM4H,EAAQ,oFAE1B,IAAIlE,EAAM,CAAC,EAEX,OADAA,EAAIkE,GAAS,CAAC2E,GACPlO,KAAKqK,mBAAmB,CAC7BnC,8BAA+BzD,EAAa,CAAC,EAAGY,EAAKrF,KAAKkI,gCAE9D,EAQAkG,kCAAmC,SAAS7E,GAC1C,IAAKvJ,KAAKmO,2BAA2B5E,GACnC,OAAOvJ,KAET,IAAIqF,EAAM,CAAC,EAEX,OADAA,EAAIkE,GAAS,GACNvJ,KAAKqK,mBAAmB,CAC7BnC,8BAA+BzD,EAAa,CAAC,EAAGY,EAAKrF,KAAKkI,gCAE9D,EAOAmG,oBAAqB,SAA6BvB,GAChD,OAAI9M,KAAK+M,aAAaD,GACb9M,KAAKuN,oBAAoBT,GAG3B9M,KAAK6M,iBAAiBC,EAC/B,EAOApB,mBAAoB,SAASnC,GAC3B,OAAOvJ,KAAK2H,kBAAkBnB,QAAQ+C,IAAU,CAClD,EAOAkD,oBAAqB,SAASlB,GAC5B,YAAsDpL,IAA/CH,KAAK+N,2BAA2BxC,EACzC,EAOAC,mBAAoB,SAASjC,GAC3B,OAAOvJ,KAAK0H,OAAOlB,QAAQ+C,IAAU,CACvC,EAUA+E,eAAgB,SAAwB/E,EAAOvE,GAC7C,QAAKhF,KAAKwL,mBAAmBjC,IAGtBzC,EAAe7B,UAAUjF,KAAK6H,kBAAmB0B,EAAOvE,EACjE,EAWAuJ,iBAAkB,SAA0BhF,EAAOvE,GACjD,QAAKhF,KAAKwL,mBAAmBjC,IAGtBzC,EAAe7B,UAAUjF,KAAK8H,eAAgByB,EAAOvE,EAC9D,EAUAwJ,0BAA2B,SAAmCjF,EAAOvE,GACnE,QAAKhF,KAAK0L,mBAAmBnC,IAGtBzC,EAAe7B,UAAUjF,KAAK+H,6BAA8BwB,EAAOvE,EAC5E,EAUAmJ,2BAA4B,SAAoC5E,EAAOvE,GACrE,IAAKhF,KAAKyM,oBAAoBlD,GAC5B,OAAO,EAGT,IAAIkF,EAAczO,KAAK0J,0BAA0BH,GAEjD,OAAKvE,GAIkC,IAAhCyJ,EAAYjI,QAAQxB,GAHlByJ,EAAYhN,OAAS,CAIhC,EAWA4J,iBAAkB,SAA0BtG,EAAWmE,EAAUlE,GAC/D,QAAc7E,IAAV6E,QAAoC7E,IAAb+I,EACzB,QAASlJ,KAAKgI,mBAAmBjD,GAGnC,IAAI2J,EACF1O,KAAKgI,mBAAmBjD,SACyB5E,IAAjDH,KAAKgI,mBAAmBjD,GAAWmE,GAErC,QAAc/I,IAAV6E,IAAwB0J,EAC1B,OAAOA,EAGT,IAjrCeC,EAAOC,EAirClBhG,EAAchC,EAAY5B,GAC1B6J,OAEF1O,KAprCawO,EAmrCH3O,KAAKgI,mBAAmBjD,GAAWmE,GAnrCzB0F,EAmrCoChG,EAlrCrDjC,EAAKgI,GAAO,SAASG,GAC1B,OAAO/H,EAAyB+H,EAAcF,EAChD,KAmrCE,OAAOF,GAAqBG,CAC9B,EAOA9B,aAAc,SAAsBD,GAClC,OAA6C,IAAtC9M,KAAKiI,eAAezB,QAAQsG,EACrC,EAQAiC,4BAA6B,WAC3B,IAAI5G,EAAOnI,KAGPgP,EAAkCtI,EACpCZ,OAAOC,KAAK/F,KAAKgI,oBAAoB5B,QAAO,SAASmD,GACnD,OAAOzD,OAAOC,KAAKoC,EAAKH,mBAAmBuB,IAAQ9H,OAAS,CAC9D,IACAzB,KAAK2H,mBAGP,OAAO7B,OAAOC,KAAK/F,KAAK+H,8BAA8B3B,QAAO,SAASmD,GACpE,OAAOpB,EAAKJ,6BAA6BwB,GAAO9H,OAAS,CAC3D,IACG2D,OAAO4J,GACP5J,OAAOpF,KAAKiP,+BACjB,EAQAA,6BAA8B,WAC5B,IAAI9G,EAAOnI,KACX,OAAO0G,EAGL1G,KAAK4H,mBAAmBmB,KAAI,SAASQ,GAAS,OAAOA,EAAMI,IAAM,IACjE7D,OAAOC,KAAK/F,KAAKkI,+BAA+B9B,QAAO,SAASmD,GAC9D,OAAOpB,EAAKD,8BAA8BqB,GAAO9H,OAAS,CAC5D,IAEJ,EAMAyN,8BAA+B,WAC7B,IAAIC,EAAgBnP,KAAK+O,8BAEzB,OAAO/O,KAAK2H,kBAAkBvB,QAAO,SAASX,GAC5C,OAAqC,IAA9B0J,EAAc3I,QAAQf,EAC/B,GACF,EAEA2J,kBAAmB,CACjB,QAEA,SACA,oBACA,oBACA,qBACA,iBAEA,+BACA,qBACA,iBACA,iCAEFC,eAAgB,WACd,IAAID,EAAoBpP,KAAKoP,kBAEzBE,EAAc,CAAC,EAEfnH,EAAOnI,KAQX,OAPA8F,OAAOC,KAAK/F,MAAMoI,SAAQ,SAASC,GACjC,IAAIwD,EAAa1D,EAAKE,IACwB,IAA1C+G,EAAkB5I,QAAQ6B,SAAoClI,IAAf0L,IACjDyD,EAAYjH,GAAawD,EAE7B,IAEOyD,CACT,EAWAC,kBAAmB,SAAsBC,EAAWxK,GAClD,GAAIhF,KAAKwP,KAAexK,EAAO,OAAOhF,KAEtC,IAAIgN,EAAe,CAAC,EAIpB,OAFAA,EAAawC,GAAaxK,EAEnBhF,KAAKqK,mBAAmB2C,EACjC,EAOA3C,mBAAoB,SAA4B/C,GAC9C,IAAKA,EAAQ,OAAOtH,KAEpB,IAAIwB,EAAQgC,EAAiBsG,SAAS9J,KAAMsH,GAE5C,GAAI9F,EACF,MAAMA,EAGR,IAAI2G,EAAOnI,KACPyP,EAAkBjM,EAAiB+D,cAAcD,GACjDoI,EAAsB5J,OAAOC,KAAK/F,MAAMgG,QAAO,SAAS2J,EAAKxM,GAE/D,OADAwM,EAAIxM,GAAOgF,EAAKhF,GACTwM,CACT,GAAG,CAAC,GAEAC,EAAkB9J,OAAOC,KAAK0J,GAAiBzJ,QACjD,SAAS6J,EAAU1M,GACjB,IAAI2M,OAA2C3P,IAAlB0P,EAAS1M,GAClC4M,OAA8C5P,IAAzBsP,EAAgBtM,GAEzC,OAAI2M,IAA2BC,EACtBrL,EAAKmL,EAAU,CAAC1M,KAGrB4M,IACFF,EAAS1M,GAAOsM,EAAgBtM,IAG3B0M,EACT,GACAH,GAGF,OAAO,IAAI1P,KAAKkK,YAAY0F,EAC9B,EAQAI,UAAW,WACT,YAAkB7P,IAAdH,KAAK6K,KACA7K,KAGFA,KAAK2K,QAAQ,EACtB,EAOAsF,4BAA6B,SAASzD,GACpC,OAAOA,EAAkB0D,QAAU,CAAC,iBAAkB,WACxD,EAQApC,+BAAgC,SAAStB,GACvC,OAAOA,EAAkBqB,WAAa,KACxC,EAQAsC,yBAA0B,SAAS3D,GACjC,OAAOA,EAAkBhD,UAAY,IACvC,EAQA4G,gCAAiC,SAAS5D,GACxC,MAAiD,kBAAtCA,EAAkB6D,iBACpB7D,EAAkB6D,eAG7B,EAOAtC,2BAA4B,SAASuC,GACnC,OAAO3J,EACL3G,KAAK4H,oBACL,SAASnC,GACP,OAAOA,EAAEkE,OAAS2G,CACpB,GAEJ,EAOAC,+BAAgC,SAAShF,GACvC,IAAKvL,KAAKyM,oBAAoBlB,GAC5B,MAAO,GAGT,IAAIiF,EAAaxQ,KAAK0J,0BAA0B6B,GAAW,GAC3D,IAAKiF,EAAY,MAAO,GAExB,IAAI3C,EAAY7N,KAAK8N,+BACnB9N,KAAK+N,2BAA2BxC,IAGlC,OADWiF,EAAWC,MAAM5C,GAChB9E,KAAI,SAAS2H,GACvB,OAAOA,EAAKC,MACd,GACF,EAEAC,SAAU,WACR,OAAOC,KAAKC,UAAU9Q,KAAM,KAAM,EACpC,GAYFQ,EAAOC,QAAU+C,sCCn+CjBhD,EAAOC,QASP,SAAuBsQ,GACrB,OAAO,SAAkBC,EAAyBC,GAChD,IAAIzE,EAAoBuE,EAAMnJ,mBAAmBqJ,GAC7CC,EACDH,EAAM7I,8BAA8BsE,EAAkB7C,OACrDoH,EAAM7I,8BAA8BsE,EAAkB7C,MAAM,IAC9D,GACEwH,EAAwBJ,EAAMjD,+BAChCtB,GAEE4E,EAAuBL,EAAMZ,yBAC/B3D,GAEE6E,EAA8BN,EAAMX,gCACtC5D,GAEE0D,EAASoB,EACXP,EAAMd,4BAA4BzD,IAGhC+E,EAAiBP,EAAwB7J,OAAM,SAASqK,GAC1D,OAAOA,EAAYC,UACrB,IAEIC,EA4BR,SACExB,EACAiB,EACAC,EACAC,EACA5H,GAEA,OAAO,SACLkI,EACAX,EACAY,GAEA,IAAIC,EAASF,EAEb,GAAIC,EAA2B,EAAG,CAChC,IAAIE,EAAQ,EAIZ,IAFAD,EAASF,EAEFG,EAAQF,GAA0B,CAIvC,IAAIG,EAAOF,GAAU9P,MAAMmF,QAAQ2K,EAAOE,MAAQF,EAAOE,KAAO,GAChEF,EAASlL,EAAKoL,GAAM,SAASC,GAC3B,OAAOA,EAAQ/M,SACjB,IACA6M,GACF,CACF,CAGA,GAAID,EAAQ,CAYV,IAAII,EAASnM,OAAOC,KAAKiL,EAAwBe,MAC9ChJ,KAAI,SAASmJ,GACZ,MAAO,CAACA,EAAYlB,EAAwBe,KAAKG,GACnD,IACC9L,QAAO,SAAS+L,GAEf,OAgCV,SACED,EACAE,EACA3I,EACA0H,EACAC,EACAC,GAGA,GACED,IAC8C,IAA7Cc,EAAW1L,QAAQ4K,IAClBA,IAAyBc,GAE3B,OAAO,EAIT,OACId,IAC+C,IAA/Cc,EAAW1L,QAAQ2K,IAEpBC,GACCc,EAAWzB,MAAMU,GAAuB1P,OACtC2P,EAAqBX,MAAMU,GAAuB1P,QAClD,IAG4C,IAA/CyQ,EAAW1L,QAAQ2K,KACoC,IAAtD1H,EAAkBjD,QAAQ2K,IAEc,IAA1C1H,EAAkBjD,QAAQ0L,IAEkC,IAA3DA,EAAW1L,QAAQ4L,EAAajB,KAC9BE,GAC2C,IAA1Ca,EAAW1L,QAAQiD,GAE3B,CArEiB4I,CADUF,EAAM,GAGrBN,EAAO3D,MAAQkD,EACf3H,EACA0H,EACAC,EACAC,EAEJ,IAEFQ,EAAOE,KAAOO,EACZL,EAAOlJ,KAAI,SAASoJ,GAClB,IAAID,EAAaC,EAAM,GAGvB,OAwDV,SACEI,EACAL,EACAf,EACA1H,EACAgI,GAEA,IAAIe,EAAQN,EAAWzB,MAAMU,GAC7B,MAAO,CACLxH,KAAM6I,EAAMA,EAAM/Q,OAAS,GAAGkP,OAC9BzC,KAAMgE,EACNO,aAAcC,EAAiBR,GAC/BS,MAAOJ,EACPtN,UACEwE,IAAsByI,GAC4C,IAAlEzI,EAAkBjD,QAAQ0L,EAAaf,GACzCM,WAAYA,EACZM,KAAM,KAEV,CA3EiBa,CAFUT,EAAM,GAIrBD,EACAf,EACA0B,EAAmBpJ,GACnBuH,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,EAAwBhP,MAChCoP,EAAqBX,MAAMU,GAAuB1P,SAI/CsR,EAAQ/M,OAAO0L,EAAgB,CACpC/H,KAAMoH,EAAMnJ,mBAAmBqJ,GAAwBtH,KACvDgJ,MAAO,KACP1N,WAAW,EACXiJ,KAAM,KACNuE,aAAc,KACdhB,WAAYF,EACZQ,KAAM,MAEV,CACF,EAzDA,IAAIO,EAAU,EAAQ,OAClB3L,EAAO,EAAQ,MACf2K,EAAiC,EAAQ,OACzC0B,EAAK,EAAQ,OACbN,EAAmBM,EAAGN,iBACtBG,EAAqBG,EAAGH,uDCP5B,IAAIpM,EAAQ,EAAQ,OAChBhC,EAAe,EAAQ,OACvB6N,EAAU,EAAQ,OAClBW,EAAU,EAAQ,OAClBtM,EAAO,EAAQ,MACfuM,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBH,EAAK,EAAQ,OACbN,EAAmBM,EAAGN,iBACtBG,EAAqBG,EAAGH,mBAExBC,EAA2B,EAAQ,OA8CvC,SAASM,EAAWC,GAClB,IAAIC,EAAU,CAAC,EAMf,OAJAD,EAAWjL,SAAQ,SAAS2D,EAAKwH,GAC/BD,EAAQvH,GAAOwH,CACjB,IAEOD,CACT,CAEA,SAASE,EAAiBC,EAAMC,EAAYvQ,GACtCuQ,GAAcA,EAAWvQ,KAC3BsQ,EAAKE,MAAQD,EAAWvQ,GAE5B,CA4JA,SAASM,EAAcsN,EAAOgC,EAASa,GACrC,IAAIC,EAAkBd,EAAQ,GAE9B/S,KAAK8T,YAAcf,EAEnB,IAAI5K,EAAOnI,KAGX8F,OAAOC,KAAK8N,GAAiBzL,SAAQ,SAASjF,GAC5CgF,EAAKhF,GAAO0Q,EAAgB1Q,EAC9B,IAGA2C,OAAOC,KAAK6N,GAAW,CAAC,GAAGxL,SAAQ,SAASjF,GAC1CgF,EAAKhF,GAAOyQ,EAAQzQ,EACtB,IA2IAnD,KAAK+T,iBAAmBhB,EAAQ/M,QAAO,SAASgO,EAAKC,GACnD,YAAmC9T,IAA5B8T,EAAOF,iBACVC,EACAA,EAAMC,EAAOF,gBACnB,GAAG,GAMH/T,KAAK2H,kBAAoB,GAKzB3H,KAAK4H,mBAAqBmJ,EAAMnJ,mBAAmBmB,KAAI,WACrD,MAAO,EACT,IAKA/I,KAAK0H,OAAS,GAEd,IAAIC,EAAoBoJ,EAAMhC,8BAE1BmF,EAAgBd,EAAWrC,EAAMrJ,QACjCyM,EAA2Bf,EAAWrC,EAAMpJ,mBAC5CyM,EAAwB,EAKxBC,EAAaR,EAAgBnM,QAAU,CAAC,EAE5C5B,OAAOC,KAAKsO,GAAYjM,SAAQ,SAASkM,GACvC,IA7UF1M,EACA2M,EA4UMC,EAAmBH,EAAWC,GAE9B9H,GA/UN5E,EAgVImJ,EAAMnJ,mBA/UV2M,EAgVID,EA9UG3N,EAAKiB,GAAoB,SAC9B4E,GAGA,OADiBA,EAAkB6G,YAAc,IAC/B7M,QAAQ+N,IAA8B,CAC1D,KA4UE,GAAI/H,EAAmB,CAGrB,IAAIiI,EAAajI,EAAkB6G,WAAW7M,QAAQ8N,GAClDI,EAAmBxB,EAAUnC,EAAMnJ,oBAAoB,SAASnC,GAClE,OAAOA,EAAEkE,OAAS6C,EAAkB7C,IACtC,IACAxB,EAAKP,mBAAmB8M,GAAkBD,GAAc,CACtD1P,UAAWuP,EACXvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,sBAEhC,KAAO,CACL,IAEI3R,EAFA4R,GAAoE,IAA/C7D,EAAMpJ,kBAAkBnB,QAAQ8N,GACrDO,GAAyD,IAApC9D,EAAMrJ,OAAOlB,QAAQ8N,GAG1CM,IACF5R,EAAWmR,EAAyBG,GACpCnM,EAAKR,kBAAkB3E,GAAY,CACjC2G,KAAM2K,EACNvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,uBAE9BnB,EAAiBrL,EAAKR,kBAAkB3E,GAAW6Q,EAAgBiB,aAAcR,IAE/EO,IACF7R,EAAWkR,EAAcI,GACzBnM,EAAKT,OAAO1E,GAAY,CACtB2G,KAAM2K,EACNvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,uBAE9BnB,EAAiBrL,EAAKT,OAAO1E,GAAW6Q,EAAgBiB,aAAcR,GAE1E,CACF,IAGAtU,KAAK4H,mBAAqBqL,EAAQjT,KAAK4H,oBAGvCD,EAAkBS,SAAQ,SAAS2M,GACjC,IAAId,EAASlB,EAAQqB,GACjB1M,EAASuM,GAAUA,EAAOvM,OAASuM,EAAOvM,OAAS,CAAC,EACpD8E,EAAoBuE,EAAMhD,2BAA2BgH,GAGzDjP,OAAOC,KAAK2B,GAAQU,SAAQ,SAAS4M,GACnC,IAEIhS,EAFAiS,EAAevN,EAAOsN,GAI1B,GAAIxI,EAAmB,CACrBxJ,EAAWkQ,EAAUnC,EAAMnJ,oBAAoB,SAASnC,GACtD,OAAOA,EAAEkE,OAAS6C,EAAkB7C,IACtC,IACA,IAAIuL,EAAiBhC,EAAU/K,EAAKP,mBAAmB5E,IAAW,SAASyC,GACzE,OAAOA,EAAEV,YAAciQ,CACzB,IAGA,IAAwB,IAApBE,EACF,OAGF/M,EAAKP,mBAAmB5E,GAAUkS,GAAgBnD,KAAOtL,EACvD,CAAC,EACD0B,EAAKP,mBAAmB5E,GAAUkS,GAAgBnD,KAClDkD,EAEJ,KAAO,CACLjS,EAAWmR,EAAyBa,GAEpC,IAAIG,EAAsBtB,EAAgBnM,QAAUmM,EAAgBnM,OAAOsN,IAAW,CAAC,EAEvF7M,EAAKR,kBAAkB3E,GAAY,CACjC2G,KAAMqL,EACNjD,KAAMtN,EAAa,CAAC,EAAGwQ,EAAcE,GACrC1D,WAAYwC,EAAOU,uBAErBnB,EAAiBrL,EAAKR,kBAAkB3E,GAAWiR,EAAOa,aAAcE,GAEpEjE,EAAMhJ,6BAA6BiN,IACrCjE,EAAMhJ,6BAA6BiN,GAAQ5M,SAAQ,SAAS/B,IAErD8B,EAAKR,kBAAkB3E,GAAU+O,KAAK1L,IACzC0K,EAAMhJ,6BAA6BiN,GAAQxO,QAAQqM,EAAmBxM,KAAqB,IAC3F8B,EAAKR,kBAAkB3E,GAAU+O,KAAK1L,GAAmB,EAE7D,GAEJ,CACF,IACA+N,GACF,IAGArD,EAAM9B,+BAA+B7G,SAAQ,SAASgN,GACpD,IAAI5I,EAAoBuE,EAAMhD,2BAA2BqH,GACrDvH,EAAYkD,EAAMjD,+BAA+BtB,GAEjD/C,EAAoBsH,EAAMrH,0BAA0B0L,GAGvB,IAA7B3L,EAAkBhI,QAAgBgI,EAAkB,GAAGgH,MAAM5C,GAAWpM,OAAS,GAIrFsR,EAAQ/Q,MAAMoS,GAAuBhM,SAAQ,SAAS6L,GACpD,IAAIvM,EAASuM,GAAUA,EAAOvM,OAC1BuM,EAAOvM,OACP,CAAC,EAEL5B,OAAOC,KAAK2B,GAAQU,SAAQ,SAAS4M,GACnC,IAAIC,EAAevN,EAAOsN,GACtBhS,EAAWkQ,EAAUnC,EAAMnJ,oBAAoB,SAASnC,GAC1D,OAAOA,EAAEkE,OAAS6C,EAAkB7C,IACtC,IACIuL,EAAiBhC,EAAU/K,EAAKP,mBAAmB5E,IAAW,SAASyC,GACzE,OAAOA,EAAEV,YAAciQ,CACzB,IAGA,IAAwB,IAApBE,EAAJ,CAYA,IAAIG,EAAc,CAAC,EAEnB,GAAI5L,EAAkBhI,OAAS,EAAG,CAChC,IAAI6T,EAAO7L,EAAkB,GAAGgH,MAAM5C,GAAW,GACjDwH,EAAYC,GAAQnN,EAAKP,mBAAmB5E,GAAUkS,GAAgBnD,KAAKuD,EAC7E,CAEAnN,EAAKP,mBAAmB5E,GAAUkS,GAAgBnD,KAAOtN,EACvD4Q,EACAJ,EACA9M,EAAKP,mBAAmB5E,GAAUkS,GAAgBnD,KApBpD,CAsBF,IAEAqC,GACF,GACF,IAGAtO,OAAOC,KAAKgL,EAAMjJ,gBAAgBM,SAAQ,SAASmD,GACjD,IAAIgK,EAAWxE,EAAMjJ,eAAeyD,GAChCvI,EAAWkR,EAAc3I,GAE7BpD,EAAKT,OAAO1E,GAAY,CACtB2G,KAAM4B,EACNwG,KAAM8B,EAAgBnM,OAAO6D,GAC7BkG,WAAYoC,EAAgBc,uBAE9BY,EAASnN,SAAQ,SAAS8J,GACxB/J,EAAKT,OAAO1E,GAAYmF,EAAKT,OAAO1E,IAAa,CAAC2G,KAAM4B,GACxDpD,EAAKT,OAAO1E,GAAU+O,KAAO5J,EAAKT,OAAO1E,GAAU+O,MAAQ,CAAC,EAC5D5J,EAAKT,OAAO1E,GAAU+O,KAAKG,GAAc,CAC3C,GACF,IAKAlS,KAAK4H,mBAAqB5H,KAAK4H,mBAAmBmB,IAAI+J,EAAyB/B,IAK/E/Q,KAAK0H,OAASuL,EAAQjT,KAAK0H,QAI3B1H,KAAK2H,kBAAoBsL,EAAQjT,KAAK2H,mBAEtC3H,KAAKwV,OAASzE,CAChB,CAyBA,SAAS0E,EAA6B1C,EAAShO,GAC7C,SAAS2Q,EAAUnM,GACjB,OAAOA,EAAMI,OAAS5E,CACxB,CAEA,GAAIgO,EAAQyC,OAAOhK,mBAAmBzG,GAAY,CAChD,IAAIwE,EAAQ5C,EAAKoM,EAAQrL,OAAQgO,GACjC,OAAKnM,EAEEzD,OAAOC,KAAKwD,EAAMwI,MAAMhJ,KAAI,SAASY,GAC1C,IAAI3E,EAAQ0N,EAAiB/I,GAC7B,MAAO,CACLA,KAAMA,EACN8I,aAAczN,EACd2N,MAAOpJ,EAAMwI,KAAKpI,GAClB1E,UAAW8N,EAAQyC,OAAOlH,eAAevJ,EAAWC,GACpD2Q,WAAY5C,EAAQyC,OAAOjH,iBAAiBxJ,EAAW4E,GAE3D,IAXmB,EAYrB,CAAO,GAAIoJ,EAAQyC,OAAO9J,mBAAmB3G,GAAY,CACvD,IAAIgQ,EAAmBpO,EAAKoM,EAAQpL,kBAAmB+N,GACvD,OAAKX,EAEEjP,OAAOC,KAAKgP,EAAiBhD,MAAMhJ,KAAI,SAASY,GACrD,IAAI3E,EAAQ0N,EAAiB/I,GAC7B,MAAO,CACLA,KAAMA,EACN8I,aAAczN,EACd2N,MAAOoC,EAAiBhD,KAAKpI,GAC7B1E,UAAW8N,EAAQyC,OAAOhH,0BAA0BzJ,EAAWC,GAEnE,IAV8B,EAWhC,CAAO,GAAI+N,EAAQyC,OAAO/I,oBAAoB1H,GAAY,CACxD,IAAI6Q,EAA0BjP,EAAKoM,EAAQnL,mBAAoB8N,GAC/D,IAAKE,EAAyB,OAAOA,EAErC,IAAIpJ,EAAoBuG,EAAQyC,OAAOzH,2BAA2BhJ,GAC9D8Q,EAAyBhD,EAC3BE,EAAQyC,OAAO9L,0BAA0B3E,GAAW,IAAM,IAC1D0L,MAAMsC,EAAQyC,OAAO1H,+BAA+BtB,IAKtD,OAJAqJ,EAAuBC,QAAQ/Q,GAE/BgR,EAAaH,EAAyBC,EAAwB,GAEvDD,CACT,CACF,CAQA,SAASG,EAAaC,EAAMvM,EAAmBwM,GAC7CD,EAAK/Q,UAAY+Q,EAAKrM,OAASF,EAAkBwM,GAC7CD,EAAKjE,MACPiE,EAAKjE,KAAK3J,SAAQ,SAAS8N,GACzBH,EAAaG,EAAOzM,EAAmBwM,EAAQ,EACjD,GAEJ,CAUA,SAASE,EAAQC,EAAQC,EAAMC,EAAOxE,GAGpC,GAFAA,EAAQA,GAAS,EAEb/P,MAAMmF,QAAQmP,GAChB,OAAOD,EAAOC,EAAMC,EAAMxE,IAG5B,IAAKuE,EAAKtE,MAA6B,IAArBsE,EAAKtE,KAAKtQ,OAC1B,OAAO4U,EAGT,IAAIE,EAAWF,EAAKtE,KAAKhJ,KAAI,SAASyN,GACpC,OAAOL,EAAQC,EAAQI,EAAWF,EAAOxE,EAAQ,EACnD,IACI2E,EAAiBL,EAAOG,EAAUD,EAAMxE,IAE5C,OADcrN,EAAa,CAACsN,KAAM0E,GAAiBJ,EAErD,CAkMA,SAASK,EAAyBvQ,EAAWoF,GAC3C,IAAIwG,EAAOpL,EAAKR,GAAW,SAASoD,GAClC,OAAOA,EAAMI,OAAS4B,CACxB,IACA,OAAOwG,GAAQA,EAAK4B,KACtB,CAgFA,SAASgD,EAAc5F,EAAO9P,EAAM2V,EAAejN,EAAMkN,GACvD,IAAItN,EAAQ5C,EAAKkQ,GAAe,SAASpR,GACvC,OAAOA,EAAEkE,OAASiN,CACpB,IACIjE,EAAQpJ,GAASA,EAAMwI,MAAQxI,EAAMwI,KAAKpI,GAAQJ,EAAMwI,KAAKpI,GAAQ,EACrE8H,EAAclI,GAASA,EAAMkI,aAAe,EAEhD,MAAO,CACLxQ,KAAMA,EACN2V,cAAeA,EACfjN,KAAMA,EACNgJ,MAAOA,EACPlB,WAAYA,EAEhB,CA9YAhO,EAAc/C,UAAUoW,eAAiB,SAASnN,GAChD,SAAS+L,EAAUnM,GACjB,OAAOA,EAAMI,OAASA,CACxB,CAEA,OAAOhD,EAAK3G,KAAK0H,OAAQgO,IACvB/O,EAAK3G,KAAK2H,kBAAmB+N,IAC7B/O,EAAK3G,KAAK4H,mBAAoB8N,EAClC,EAmGAjS,EAAcsT,aAAe,CAAC,iBAAkB,aAAc,YA4H9DtT,EAAc/C,UAAUsW,eAAiB,SAASjS,EAAWlB,GAC3D,IAAIoT,EAAcxB,EAA6BzV,KAAM+E,GACrD,GAAKkS,EAAL,CAIA,IAQI5D,EARAO,EAAUnP,EAAa,CAAC,EAAGZ,EAAM,CACnCqM,OAAQzM,EAAcsT,aAGtBG,gBAAiBrT,GAAQA,EAAKqM,UAG5B6C,EAAU/S,KAEd,GAAI+B,MAAMmF,QAAQ+P,GAChB5D,EAAa,CAACtO,QAGdsO,EADaN,EAAQyC,OAAOzH,2BAA2BkJ,EAAYtN,MAC/C0J,WAGtB,OAAO8C,GAAQ,SAASpE,EAAMxG,GAC5B,GAAIqI,EAAQsD,cAAe,CACzB,IAAIA,EAjFV,SAA0BnE,EAAShO,GACjC,OACEgO,EAAQoE,kBACRpE,EAAQoE,iBAAiBD,eACzBnE,EAAQoE,iBAAiBD,cAAchR,QACvC6M,EAAQoE,iBAAiBD,cAAchR,OAAOnB,EAElD,CA0E0BqS,CAAiBrE,EAASxH,GAC9C,GAAI8L,QAAQH,GACV,OAnIR,SAA8BD,EAAaC,GACzC,IAAII,EAAgB,GAChBC,EAAkB,GAOlBC,GALQN,EAAcO,OAAS,IAKVzR,QAAO,SAAS2J,EAAKhG,EAAMrI,GAElD,OADAqO,EAAIhG,GAAQrI,EACLqO,CACT,GAAG,CAAC,GAEJsH,EAAY7O,SAAQ,SAAS4N,GAE3B,IAAIrM,EAAOqM,EAAK9H,MAAQ8H,EAAKrM,UACFxJ,IAAvBqX,EAAa7N,GACf2N,EAAcE,EAAa7N,IAASqM,EAEpCuB,EAAgBjV,KAAK0T,EAEzB,IAEAsB,EAAgBA,EAAclR,QAAO,SAASmD,GAC5C,OAAOA,CACT,IAEA,IACImO,EADAC,EAAkBT,EAAcS,gBAEpC,MAAwB,WAApBA,EACKL,GAEPI,EAD6B,UAApBC,EACE,CAAC,CAAC,OAAQ,QAAS,CAAC,MAAO,QAE3B,CAAC,CAAC,SAAU,CAAC,SAGnBL,EAAclS,OACnBkN,EAAQiF,EAAiBG,EAAS,GAAIA,EAAS,KAEnD,CA0FeE,CAAqB7F,EAAMmF,EAEtC,CAEA,GAAInV,MAAMmF,QAAQ0M,EAAQ1D,QAAS,CACjC,IAAIuH,EAAQtE,EAAWS,EAAQ1D,OAAQzM,EAAcsT,cACrD,OAAOzE,EAAQP,EAAM0F,EAAM,GAAIA,EAAM,GACvC,CAAO,GAA8B,mBAAnB7D,EAAQ1D,OACxB,OA5JN,SAAuBuH,EAAO1F,GAC5B,OAAOA,EAAK8F,KAAKJ,EACnB,CA0JaK,CAAclE,EAAQ1D,OAAQ6B,GAEvC,MAAM,IAAIpQ,MACR,oHAGJ,GAAGsV,EAAa5D,EApChB,CAqCF,EAQA5P,EAAc/C,UAAUqX,cAAgB,SAAShT,GAC/C,OAAI/E,KAAKwV,OAAOhK,mBAAmBzG,GAC1B2R,EAAyB1W,KAAK0H,OAAQ3C,GACpC/E,KAAKwV,OAAO9J,mBAAmB3G,GACjC2R,EAAyB1W,KAAK2H,kBAAmB5C,QADnD,CAKT,EA8BAtB,EAAc/C,UAAUsX,eAAiB,WACvC,IAAIjH,EAAQ/Q,KAAKwV,OACbzC,EAAU/S,KACViY,EAAM,GA8CV,OA5CAnS,OAAOC,KAAKgL,EAAMlJ,mBAAmBO,SAAQ,SAASwO,GACpD7F,EAAMlJ,kBAAkB+O,GAAexO,SAAQ,SAASuB,GACtDsO,EAAI3V,KAAKqU,EAAc5F,EAAO,QAAS6F,EAAejN,EAAMoJ,EAAQrL,QACtE,GACF,IAEA5B,OAAOC,KAAKgL,EAAMjJ,gBAAgBM,SAAQ,SAASwO,GACjD7F,EAAMjJ,eAAe8O,GAAexO,SAAQ,SAASuB,GACnDsO,EAAI3V,KAAKqU,EAAc5F,EAAO,UAAW6F,EAAejN,EAAMoJ,EAAQrL,QACxE,GACF,IAEA5B,OAAOC,KAAKgL,EAAMhJ,8BAA8BK,SAAQ,SAASwO,GAC/D7F,EAAMhJ,6BAA6B6O,GAAexO,SAAQ,SAASuB,GACjEsO,EAAI3V,KAAKqU,EAAc5F,EAAO,cAAe6F,EAAejN,EAAMoJ,EAAQpL,mBAC5E,GACF,IAEA7B,OAAOC,KAAKgL,EAAM7I,+BAA+BE,SAAQ,SAASwO,GAChE7F,EAAM7I,8BAA8B0O,GAAexO,SAAQ,SAASuB,GAClEsO,EAAI3V,KA+DV,SAAmCyO,EAAO6F,EAAejN,EAAMkN,GAC7D,IAAIqB,EAAmBnH,EAAMhD,2BAA2B6I,GACpD/I,EAAYkD,EAAMjD,+BAA+BoK,GACjDzH,EAAQ9G,EAAK8G,MAAM5C,GACnBsK,EAAYxR,EAAKkQ,GAAe,SAAStN,GAC3C,OAAOA,EAAMI,OAASiN,CACxB,IAEIrN,EAAQkH,EAAMzK,QAAO,SAASoS,EAAmB1H,GACnD,IAAI2H,EACFD,GAAqBzR,EAAKyR,EAAkBrG,MAAM,SAAStM,GACzD,OAAOA,EAAEkE,OAAS+G,CACpB,IACF,YAAoBvQ,IAAbkY,EAAyBA,EAAWD,CAC7C,GAAGD,GAECxF,EAASpJ,GAASA,EAAMoJ,OAAU,EAClClB,EAAclI,GAASA,EAAMkI,aAAe,EAC5CvD,EAAQ3E,GAASA,EAAM2E,MAAS,GAEpC,MAAO,CACLjN,KAAM,eACN2V,cAAeA,EACfjN,KAAMuE,EACNyE,MAAOA,EACPlB,WAAYA,EAEhB,CA1Fe/H,CAA0BqH,EAAO6F,EAAejN,EAAMoJ,EAAQnL,oBACzE,GACF,IAGA9B,OAAOC,KAAKgL,EAAM/I,oBAAoBI,SAAQ,SAASwO,GACrD,IAAI3N,EAAY8H,EAAM/I,mBAAmB4O,GACzC9Q,OAAOC,KAAKkD,GAAWb,SAAQ,SAASc,GACtCD,EAAUC,GAAUd,SAAQ,SAASpD,GACnCiT,EAAI3V,KAAK,CACPrB,KAAM,UACN2V,cAAeA,EACfjN,KAAM3E,EACNsT,aAActT,EACdkE,SAAUA,GAEd,GACF,GACF,IAEA6H,EAAM9I,eAAeG,SAAQ,SAASuB,GACpCsO,EAAI3V,KAAK,CAACrB,KAAM,MAAO2V,cAAe,QAASjN,KAAMA,GACvD,IAEOsO,CACT,EAmEAzX,EAAOC,QAAUgD,sCC7hCjB,IAAID,EAAmB,EAAQ,OAC3BC,EAAgB,EAAQ,OACxBM,EAAgB,EAAQ,OACxBwU,EAAiB,EAAQ,OAEzBxY,EAAe,EAAQ,OACvBqE,EAAW,EAAQ,OACnBO,EAAgB,EAAQ,OACxBD,EAAO,EAAQ,OACf+B,EAAQ,EAAQ,OAEhB3C,EAAU,EAAQ,OAClB4O,EAAmB,0BAyGvB,SAASnP,EAAoBI,EAAQC,EAAOgQ,GACJ,mBAA3BjQ,EAAO6U,iBAChB7U,EAAO6U,gBAAgB,cAAgB1U,EAAU,KAGnD9D,KAAKyY,UAAU9U,GACf,IAAIE,EAAO+P,GAAW,CAAC,EACvB/P,EAAKD,MAAQA,EACb5D,KAAK+Q,MAAQvN,EAAiB6F,KAAKxF,GACnC7D,KAAKmE,YAAc,KACnBnE,KAAK0Y,SAAW,EAChB1Y,KAAK2Y,sBAAwB,EAC7B3Y,KAAK4Y,eAAiB,GACtB5Y,KAAK6Y,kBAAoB,CAC3B,CA4vBA,SAASC,EAAejO,GACtB,GAAIA,EAAO,EAAG,MAAM,IAAIlJ,MAAM,2BAO9B,OALA3B,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMpG,QAAQE,GAC1BmO,aAAa,IAGRhZ,IACT,CA4MA,SAASiZ,IACP,OAAOjZ,KAAK+Q,MAAMlG,IACpB,CAj9BAzG,EAASb,EAAqBxD,GAa9BwD,EAAoB7C,UAAUwY,OAAS,WAErC,OADAlZ,KAAKmZ,QAAQ,CAACC,wBAAwB,IAC/BpZ,IACT,EAEAuD,EAAoB7C,UAAU2Y,6BAA+B,WAE3D,OADArZ,KAAKmZ,QAAQ,CAACC,wBAAwB,IAC/BpZ,IACT,EAOAuD,EAAoB7C,UAAU4Y,SAAW,WACvC,IAAIvI,EAAQ/Q,KAAK+Q,MACjB,OAAOwH,EAAegB,qBAAqBxI,EAC7C,EAsCAxN,EAAoB7C,UAAU8Y,WAAa,SAAS5F,EAAS6F,GAC3D,IAAIC,EAAa9F,EAAuB5T,KAAK+Q,MAAM1G,mBAAmBuJ,GAA3C5T,KAAK+Q,MAC5B4I,EAAUpB,EAAeqB,YAAYF,EAAU9V,MAAO8V,GACtDvR,EAAOnI,KAQX,GANAA,KAAK6Y,oBAEL7Y,KAAKgB,KAAK,aAAc,CACtB+P,MAAO2I,KAGLD,EAuBJ,OAAOzZ,KAAK2D,OAAOuV,OAAOS,GAASE,MAAK,SAASC,GAG/C,OAFA3R,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBAAyB1Q,EAAKnH,KAAK,oBACrC,CACL8Y,QAAS,IAAIrW,EAAciW,EAAWI,EAAQ/G,SAC9ChC,MAAO2I,EACPK,kBAAmBD,EAEvB,IAAG,SAASE,GAGV,MAFA7R,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBAAyB1Q,EAAKnH,KAAK,oBACtCgZ,CACR,IAlCEha,KAAK2D,OACFuV,OAAOS,GACPE,MAAK,SAASC,GACb3R,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBACP1Q,EAAKnH,KAAK,oBAGZyY,EAAG,KAAM,IAAIhW,EAAciW,EAAWI,EAAQ/G,SAAU2G,EAC1D,IACCO,OAAM,SAASrY,GACduG,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBACP1Q,EAAKnH,KAAK,oBAGZyY,EAAG7X,EAAK,KAAM8X,EAChB,GAkBN,EAaAnW,EAAoB7C,UAAUwZ,YAAc,SAAStG,GACnDpR,QAAQiF,KAAK,yDACb,IAAIsJ,EAAQ/Q,KAAK+Q,MACboJ,EAAgBna,KAAK4Y,eAAe,GACxC,IAAKuB,EACH,OAAOC,QAAQC,QAAQ,IAEzB,IAAIC,EAAeH,EAAc5V,iBAAiBwM,GAC9CgB,EAAOtL,EACT,CACE8T,wBAAyB3G,EAAQ2G,wBACjCC,OAAQ5G,EAAQ4G,QAElB,CACElT,OAAQ5C,EAAK6T,EAAegB,qBAAqBe,GAAe,CAC9D,sBACA,cACA,+BACA,0BAKFG,EAAe,8GACnB,GAAqC,mBAA1Bza,KAAK2D,OAAO+W,UACrB,MAAM,IAAI/Y,MAAM8Y,GAElB,IAAI7W,EAAQ5D,KAAK2D,OAAO+W,UAAUJ,EAAa1W,OAC/C,GAAiC,mBAAtBA,EAAMsW,YACf,MAAM,IAAIvY,MAAM8Y,GAElB,OAAO7W,EAAMsW,YAAYI,EAAa5P,MAAOkJ,EAAQ+G,eAAgB5I,EACvE,EAoCAxO,EAAoB7C,UAAUka,qBAAuB,SAASrR,EAAOmB,EAAOmQ,EAAcC,GACxF,IAAIC,EAA4D,mBAArC/a,KAAK2D,OAAOiX,qBACnCI,EAAsD,mBAA1Bhb,KAAK2D,OAAO+W,UAC5C,IACGK,IACAC,GAC6B,mBAAvBhb,KAAK2D,OAAOuV,OAEnB,MAAM,IAAIvX,MACR,yKAIJ,IAAIoP,EAAQ/Q,KAAK+Q,MAAM1G,mBAAmByQ,GAAa,CAAC,GACpDG,EAAgBlK,EAAMrF,mBAAmBnC,GACzC2R,EAAe3C,EAAe4C,uBAAuB5R,EAAOmB,EAAOmQ,EAAc9J,GAErF/Q,KAAK6Y,oBACL,IACIuC,EADAjT,EAAOnI,KAoCX,OAjCI+a,EACFK,EAA8Bpb,KAAK2D,OAAOiX,qBAAqB,CAC7D,CAACS,UAAWtK,EAAMnN,MAAO0D,OAAQ4T,KAG1BF,EACTI,EAA8Bpb,KAAK2D,OAChC+W,UAAU3J,EAAMnN,OAChBgX,qBAAqBM,WAIjBA,EAAa3P,UACpB6P,EAA8Bpb,KAAK2D,OAChCuV,OAAO,CACN,CACEjY,KAAM,QACNsI,MAAOA,EACP8R,UAAWtK,EAAMnN,MACjB0D,OAAQ4T,KAGXrB,MAAK,SAAyByB,GAC7B,OAAOA,EAASvI,QAAQ,EAC1B,KAGJ/S,KAAKgB,KAAK,uBAAwB,CAChC+P,MAAOA,EACPxH,MAAOA,EACPmB,MAAOA,IAGF0Q,EAA4BvB,MAAK,SAAsBC,GAa5D,OAZA3R,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBAAyB1Q,EAAKnH,KAAK,qBAE5C8Y,EAAU/X,MAAMmF,QAAQ4S,GAAWA,EAAQ,GAAKA,GAExCyB,UAAUnT,SAAQ,SAAS3C,GACjCA,EAAEgN,aAAeC,EAAiBjN,EAAET,OACpCS,EAAER,UAAYgW,EACVlK,EAAMvC,0BAA0BjF,EAAO9D,EAAEgN,cACzC1B,EAAMzC,eAAe/E,EAAO9D,EAAEgN,aACpC,IAEOqH,CACT,IAAG,SAASE,GAGV,MAFA7R,EAAK0Q,oBAC0B,IAA3B1Q,EAAK0Q,mBAAyB1Q,EAAKnH,KAAK,oBACtCgZ,CACR,GACF,EAWAzW,EAAoB7C,UAAU8J,SAAW,SAASgR,GAMhD,OALAxb,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYxF,SAASgR,GACvCxC,aAAa,IAGRhZ,IACT,EAyBAuD,EAAoB7C,UAAUkJ,iBAAmB,SAASD,GAMxD,OALA3J,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYpG,iBAAiBD,GAC/CqP,aAAa,IAGRhZ,IACT,EAUAuD,EAAoB7C,UAAU4J,UAAY,WAMxC,OALAtK,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY1F,YAC9B0O,aAAa,IAGRhZ,IACT,EAaAuD,EAAoB7C,UAAUkM,8BAAgC,SAASrD,EAAOvE,GAM5E,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYpD,8BAA8BrD,EAAOvE,GACnEgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAU+a,qBAAuB,WACnD,OAAOzb,KAAK4M,8BAA8B3K,MAAMjC,KAAM0B,UACxD,EAeA6B,EAAoB7C,UAAUuN,+BAAiC,SAAS1E,EAAOvE,GAM7E,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY/B,+BAA+B1E,EAAOvE,GACpEgU,aAAa,IAGRhZ,IACT,EAcAuD,EAAoB7C,UAAU0K,qBAAuB,SAASrG,EAAWmE,EAAUlE,GAMjF,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY5E,qBAAqBrG,EAAWmE,EAAUlE,GACxEgU,aAAa,IAGRhZ,IACT,EAaAuD,EAAoB7C,UAAUgM,mBAAqB,SAASnD,EAAOvE,GAMjE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYtD,mBAAmBnD,EAAOvE,GACxDgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAUgb,UAAY,WACxC,OAAO1b,KAAK0M,mBAAmBzK,MAAMjC,KAAM0B,UAC7C,EAcA6B,EAAoB7C,UAAUib,kBAAoB,SAASpS,EAAOvE,GAMhE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYrD,qBAAqBpD,EAAOvE,GAC1DgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAUkb,WAAa,WACzC,OAAO5b,KAAK2b,kBAAkB1Z,MAAMjC,KAAM0B,UAC5C,EAYA6B,EAAoB7C,UAAUmb,OAAS,SAAS/O,GAM9C,OALA9M,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYnD,iBAAiBC,GAC/CkM,aAAa,IAGRhZ,IACT,EAoBAuD,EAAoB7C,UAAUkL,wBAA0B,SAAS7G,EAAWmE,EAAUlE,GAMpF,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYpE,wBAAwB7G,EAAWmE,EAAUlE,GAC3EgU,aAAa,IAGRhZ,IACT,EAgBAuD,EAAoB7C,UAAU4M,iCAAmC,SAAS/D,EAAOvE,GAM/E,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY1C,iCAAiC/D,EAAOvE,GACtEgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAUob,wBAA0B,WACtD,OAAO9b,KAAKsN,iCAAiCrL,MAAMjC,KAAM0B,UAC3D,EAUA6B,EAAoB7C,UAAU0N,kCAAoC,SAAS7E,GAMzE,OALAvJ,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY5B,kCAAkC7E,GAChEyP,aAAa,IAGRhZ,IACT,EAgBAuD,EAAoB7C,UAAU0M,sBAAwB,SAAS7D,EAAOvE,GAMpE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY5C,sBAAsB7D,EAAOvE,GAC3DgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAUqb,aAAe,WAC3C,OAAO/b,KAAKoN,sBAAsBnL,MAAMjC,KAAM0B,UAChD,EAgBA6B,EAAoB7C,UAAUsb,qBAAuB,SAASzS,EAAOvE,GAMnE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY3C,wBAAwB9D,EAAOvE,GAC7DgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAUub,cAAgB,WAC5C,OAAOjc,KAAKgc,qBAAqB/Z,MAAMjC,KAAM0B,UAC/C,EAYA6B,EAAoB7C,UAAUwb,UAAY,SAASpP,GAMjD,OALA9M,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYzC,oBAAoBT,GAClDkM,aAAa,IAGRhZ,IACT,EAaAuD,EAAoB7C,UAAUyb,qBAAuB,SAAS5S,EAAOvE,GAMnE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYpC,6BAA6BrE,EAAOvE,GAClEgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAU0b,cAAgB,WAC5C,OAAOpc,KAAKmc,qBAAqBla,MAAMjC,KAAM0B,UAC/C,EAiBA6B,EAAoB7C,UAAUgF,iBAAmB,SAAS6D,EAAOvE,GAC/D,OAAOhF,KAAKyN,sBAAsBlE,EAAOvE,EAC3C,EAgBAzB,EAAoB7C,UAAU+M,sBAAwB,SAASlE,EAAOvE,GAMpE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYvC,sBAAsBlE,EAAOvE,GAC3DgU,aAAa,IAGRhZ,IACT,EAKAuD,EAAoB7C,UAAU2b,aAAe,WAC3C,OAAOrc,KAAKyN,sBAAsBxL,MAAMjC,KAAM0B,UAChD,EAYA6B,EAAoB7C,UAAU4b,UAAY,SAASxP,GAMjD,OALA9M,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAY3B,oBAAoBvB,GAClDkM,aAAa,IAGRhZ,IACT,EAWAuD,EAAoB7C,UAAU6b,SAAW,WACvC,IAAI1R,EAAO7K,KAAK+Q,MAAMlG,MAAQ,EAC9B,OAAO7K,KAAK2K,QAAQE,EAAO,EAC7B,EAWAtH,EAAoB7C,UAAU8b,aAAe,WAC3C,IAAI3R,EAAO7K,KAAK+Q,MAAMlG,MAAQ,EAC9B,OAAO7K,KAAK2K,QAAQE,EAAO,EAC7B,EAwBAtH,EAAoB7C,UAAUoY,eAAiBA,EAU/CvV,EAAoB7C,UAAUiK,QAAUmO,EAWxCvV,EAAoB7C,UAAU6J,SAAW,SAASZ,GAMhD,OALA3J,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYzF,SAASZ,GACvCqP,aAAa,IAGRhZ,IACT,EAmBAuD,EAAoB7C,UAAU6O,kBAAoB,SAASC,EAAWxK,GAMpE,OALAhF,KAAK+Y,QAAQ,CACXhI,MAAO/Q,KAAK+Q,MAAMf,YAAYT,kBAAkBC,EAAWxK,GAC3DgU,aAAa,IAGRhZ,IACT,EASAuD,EAAoB7C,UAAU+b,SAAW,SAASC,GAMhD,OALA1c,KAAK+Y,QAAQ,CACXhI,MAAOvN,EAAiB6F,KAAKqT,GAC7B1D,aAAa,IAGRhZ,IACT,EAmBAuD,EAAoB7C,UAAUic,0CAA4C,SAASD,GAEjF,OADA1c,KAAK+Q,MAAQ,IAAIvN,EAAiBkZ,GAC3B1c,IACT,EAyBAuD,EAAoB7C,UAAUkc,eAAiB,SAAS7X,GACtD,QAAIJ,EAAc3E,KAAK+Q,MAAM/E,sBAAsBjH,MAExC/E,KAAK+Q,MAAMvF,mBAAmBzG,GAChC/E,KAAK+Q,MAAMzC,eAAevJ,GACxB/E,KAAK+Q,MAAMrF,mBAAmB3G,GAChC/E,KAAK+Q,MAAMvC,0BAA0BzJ,KACnC/E,KAAK+Q,MAAMtE,oBAAoB1H,IACjC/E,KAAK+Q,MAAM5C,2BAA2BpJ,GASjD,EAqBAxB,EAAoB7C,UAAUiV,WAAa,SAASpM,EAAOvE,GACzD,OAAOhF,KAAK+Q,MAAMxC,iBAAiBhF,EAAOvE,EAC5C,EAKAzB,EAAoB7C,UAAUmc,qBAAuB,SAAStT,EAAOvE,GACnE,OAAOhF,KAAK+Q,MAAMvC,0BAA0BjF,EAAOvE,EACrD,EAOAzB,EAAoB7C,UAAUoc,OAAS,SAAShQ,GAC9C,OAAO9M,KAAK+Q,MAAMhE,aAAaD,EACjC,EAKAvJ,EAAoB7C,UAAUqM,aAAe,WAC3C,OAAO/M,KAAK+c,kBAAkB9a,MAAMjC,KAAM0B,UAC5C,EAUA6B,EAAoB7C,UAAUsc,SAAW,WACvC,OAAOhd,KAAK+Q,MAAMnN,KACpB,EAWAL,EAAoB7C,UAAUuY,eAAiBA,EAM/C1V,EAAoB7C,UAAUuc,QAAUhE,EAOxC1V,EAAoB7C,UAAUwc,QAAU,WACtC,OAAOld,KAAK+Q,MAAM9I,cACpB,EA8CA1E,EAAoB7C,UAAUsX,eAAiB,SAASzM,GACtD,IAAIkD,EAAc,GAElB,GAAIzO,KAAK+Q,MAAMvF,mBAAmBD,GACVvL,KAAK+Q,MAAMzF,0BAA0BC,GAE3CnD,SAAQ,SAAS+U,GAC/B1O,EAAYnM,KAAK,CACf0C,MAAOmY,EACPlc,KAAM,eAEV,IAEyBjB,KAAK+Q,MAAMpF,sBAAsBJ,GAEvCnD,SAAQ,SAAS+U,GAClC1O,EAAYnM,KAAK,CACf0C,MAAOmY,EACPlc,KAAM,WAEV,SACK,GAAIjB,KAAK+Q,MAAMrF,mBAAmBH,GAAY,CAC7BvL,KAAK+Q,MAAMtF,0BAA0BF,GAE3CnD,SAAQ,SAAS+U,GAC/B1O,EAAYnM,KAAK,CACf0C,MAAOmY,EACPlc,KAAM,eAEV,GACF,CAEA,IAAI+G,EAAqBhI,KAAK+Q,MAAM/E,sBAAsBT,GAY1D,OAVAzF,OAAOC,KAAKiC,GAAoBI,SAAQ,SAASc,GAC/C,IAAIlE,EAAQgD,EAAmBkB,GAE/BuF,EAAYnM,KAAK,CACf0C,MAAOA,EACPkE,SAAUA,EACVjI,KAAM,WAEV,IAEOwN,CACT,EAQAlL,EAAoB7C,UAAUuL,qBAAuB,SAASlH,EAAWmE,GACvE,OAAOlJ,KAAK+Q,MAAM9E,qBAAqBlH,EAAWmE,EACpD,EAOA3F,EAAoB7C,UAAU6P,+BAAiC,SAAShF,GACtE,OAAOvL,KAAK+Q,MAAMR,+BAA+BhF,EACnD,EAYAhI,EAAoB7C,UAAUyY,QAAU,SAASvF,GAC/C,IAAI7C,EAAQ/Q,KAAK+Q,MACbqM,EAAS,GACTC,EAAc,GAEbzJ,EAAQwF,yBACXiE,EAAc9E,EAAeqB,YAAY7I,EAAMnN,MAAOmN,GAEtDqM,EAAO9a,KAAK,CACVyO,MAAOA,EACPuM,aAAcD,EAAY5b,OAC1B8b,OAAQvd,OAGVA,KAAKgB,KAAK,SAAU,CAClB+P,MAAOA,EACPgC,QAAS/S,KAAKmE,eAIlB,IAAIqZ,EAAiBxd,KAAK4Y,eAAe7P,KAAI,SAASoR,GACpD,IAAIG,EAAeH,EAAc5V,iBAAiBwM,GAC9C0M,EAAsBlF,EAAeqB,YAAYU,EAAa1W,MAAO0W,GAazE,OAXA8C,EAAO9a,KAAK,CACVyO,MAAOuJ,EACPgD,aAAcG,EAAoBhc,OAClC8b,OAAQpD,IAGVA,EAAcnZ,KAAK,SAAU,CAC3B+P,MAAOuJ,EACPvH,QAASoH,EAAchW,cAGlBsZ,CACT,IAEI9D,EAAU5X,MAAMrB,UAAU0E,OAAOnD,MAAMob,EAAaG,GACpDE,EAAU1d,KAAK0Y,WAEnB1Y,KAAK6Y,oBAEL,IACE7Y,KAAK2D,OAAOuV,OAAOS,GAChBE,KAAK7Z,KAAK2d,yBAAyBC,KAAK5d,KAAMod,EAAQM,IACtDzD,MAAMja,KAAK6d,sBAAsBD,KAAK5d,KAAM0d,GACjD,CAAE,MAAOlc,GAEPxB,KAAKgB,KAAK,QAAS,CACjBQ,MAAOA,GAEX,CACF,EAaA+B,EAAoB7C,UAAUid,yBAA2B,SAASP,EAAQM,EAAS5D,GAGjF,KAAI4D,EAAU1d,KAAK2Y,sBAAnB,CAKA3Y,KAAK6Y,mBAAsB6E,EAAU1d,KAAK2Y,qBAC1C3Y,KAAK2Y,qBAAuB+E,EAEG,IAA3B1d,KAAK6Y,mBAAyB7Y,KAAKgB,KAAK,oBAE5C,IAAI+R,EAAU+G,EAAQ/G,QAAQ/Q,QAE9Bob,EAAOhV,SAAQ,SAAS0V,GACtB,IAAI/M,EAAQ+M,EAAE/M,MACVuM,EAAeQ,EAAER,aACjBC,EAASO,EAAEP,OACXQ,EAAkBhL,EAAQ9P,OAAO,EAAGqa,GAEpCU,EAAoBT,EAAOpZ,YAAc,IAAIV,EAAcsN,EAAOgN,GAEtER,EAAOvc,KAAK,SAAU,CACpB+R,QAASiL,EACTjN,MAAOA,GAEX,GArBA,CAsBF,EAEAxN,EAAoB7C,UAAUmd,sBAAwB,SAASH,EAASlc,GAClEkc,EAAU1d,KAAK2Y,uBAKnB3Y,KAAK6Y,mBAAqB6E,EAAU1d,KAAK2Y,qBACzC3Y,KAAK2Y,qBAAuB+E,EAE5B1d,KAAKgB,KAAK,QAAS,CACjBQ,MAAOA,IAGsB,IAA3BxB,KAAK6Y,mBAAyB7Y,KAAKgB,KAAK,oBAC9C,EAEAuC,EAAoB7C,UAAUud,mBAAqB,SAASvT,EAAOwT,EAAcjU,EAAgBD,GAC/F,OAAOU,GACmB,IAAxBwT,EAAazc,QACa,IAA1BwI,EAAexI,QACO,IAAtBuI,EAAWvI,MACf,EAQA8B,EAAoB7C,UAAUyd,2BAA6B,SAAS5U,GAClE,OAAOvJ,KAAK+Q,MAAMqN,uBAAuB7U,IACvCvJ,KAAK+Q,MAAMqN,uBAAuB7U,GAAO9H,OAAS,CACtD,EAEA8B,EAAoB7C,UAAUqY,QAAU,SAASsF,GAC/C,IAAItN,EAAQsN,EAAMtN,MACdiI,EAAcqF,EAAMrF,YAEpBjI,IAAU/Q,KAAK+Q,QACjB/Q,KAAK+Q,MAAQA,EAEb/Q,KAAKgB,KAAK,SAAU,CAClB+P,MAAO/Q,KAAK+Q,MACZgC,QAAS/S,KAAKmE,YACd6U,YAAaA,IAGnB,EAMAzV,EAAoB7C,UAAU4d,WAAa,WAEzC,OADAte,KAAK2D,OAAO2a,YAActe,KAAK2D,OAAO2a,aAC/Bte,IACT,EAQAuD,EAAoB7C,UAAU+X,UAAY,SAAS8F,GACjD,OAAIve,KAAK2D,SAAW4a,IAEqB,mBAA9BA,EAAU/F,iBACnB+F,EAAU/F,gBAAgB,cAAgB1U,EAAU,KAEtD9D,KAAK2D,OAAS4a,GALwBve,IAQxC,EAMAuD,EAAoB7C,UAAU8d,UAAY,WACxC,OAAOxe,KAAK2D,MACd,EAqBAJ,EAAoB7C,UAAU+d,OAAS,SAASxa,GAC9C,IAAIkW,EAAgB,IAAIpW,EAAc/D,KAAMiE,GAE5C,OADAjE,KAAK4Y,eAAetW,KAAK6X,GAClBA,CACT,EASA5W,EAAoB7C,UAAU4D,oBAAsB,SAAS6V,GAC3D,IAAIuE,EAAM1e,KAAK4Y,eAAepS,QAAQ2T,GACtC,IAAa,IAATuE,EAAY,MAAM,IAAI/c,MAAM,mCAChC3B,KAAK4Y,eAAe3V,OAAOyb,EAAK,EAClC,EAMAnb,EAAoB7C,UAAUie,mBAAqB,WACjD,OAAO3e,KAAK6Y,kBAAoB,CAClC,EAkBArY,EAAOC,QAAU8C,kCCv9CjB/C,EAAOC,QAAU,SAAiBkO,GAChC,OAAK5M,MAAMmF,QAAQyH,GAIZA,EAAMvI,OAAOiR,SAHX,EAIX,kCCJA7W,EAAOC,QAAU,WAGf,OAFcsB,MAAMrB,UAAUsB,MAAMF,KAAKJ,WAE1Bkd,aAAY,SAASjP,EAAKkP,GAWvC,OAVA/Y,OAAOC,KAAKD,OAAO+Y,IAASzW,SAAQ,SAASjF,QACvBhD,IAAhB0e,EAAO1b,UAGMhD,IAAbwP,EAAIxM,WAECwM,EAAIxM,GAEbwM,EAAIxM,GAAO0b,EAAO1b,GACpB,IACOwM,CACT,GAAG,CAAC,EACN,kCCMAnP,EAAOC,QAAU,CACfiS,iBAnBF,SAA0B1N,GACxB,MAAqB,iBAAVA,EAA2BA,EAE/B8Z,OAAO9Z,GAAO+Z,QAAQ,KAAM,MACrC,EAgBElM,mBARF,SAA4B7N,GAC1B,MAAqB,iBAAVA,EAA2BA,EAE/BA,EAAM+Z,QAAQ,OAAQ,IAC/B,kCCrBAve,EAAOC,QAAU,SAAckO,EAAOqQ,GACpC,GAAKjd,MAAMmF,QAAQyH,GAInB,IAAK,IAAIrN,EAAI,EAAGA,EAAIqN,EAAMlN,OAAQH,IAChC,GAAI0d,EAAWrQ,EAAMrN,IACnB,OAAOqN,EAAMrN,EAGnB,kCCVAd,EAAOC,QAAU,SAAckO,EAAOqQ,GACpC,IAAKjd,MAAMmF,QAAQyH,GACjB,OAAQ,EAGV,IAAK,IAAIrN,EAAI,EAAGA,EAAIqN,EAAMlN,OAAQH,IAChC,GAAI0d,EAAWrQ,EAAMrN,IACnB,OAAOA,EAGX,OAAQ,CACV,sCCZA,IAAIqF,EAAO,EAAQ,MAQnBnG,EAAOC,QAAU,SAAoByP,EAAQ+O,GAC3C,IAAIC,GAAuBD,GAAY,IAAIlW,KAAI,SAAS8O,GACtD,OAAOA,EAAKpH,MAAM,IACpB,IAEA,OAAOP,EAAOlK,QACZ,SAA0BmZ,EAAKtH,GAC7B,IAAIuH,EAAkBvH,EAAKpH,MAAM,KAE7B4O,EAAkB1Y,EAAKuY,GAAqB,SAC9CI,GAEA,OAAOA,EAAmB,KAAOF,EAAgB,EACnD,IAEA,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,kCCxBA3e,EAAOC,QAXP,SAAkB8e,EAAMC,GACtBD,EAAK7e,UAAYoF,OAAO2Z,OAAOD,EAAU9e,UAAW,CAClDwJ,YAAa,CACXlF,MAAOua,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,IAGpB,kCCAApf,EAAOC,QATP,SAAsBof,EAAMC,GAC1B,OAAOD,EAAKzZ,QAAO,SAASpB,EAAOpB,GACjC,OACEkc,EAAKtZ,QAAQxB,IAAU,GACvB6a,EAAKrZ,QAAQxB,KAAWpB,CAE5B,GACF,kCCAA,SAASmc,EAA0B/a,GACjC,MACmB,mBAAVA,GACPjD,MAAMmF,QAAQlC,IAC4B,oBAA1Cc,OAAOpF,UAAUkQ,SAAS9O,KAAKkD,EAEnC,CAEA,SAASgb,EAAOC,EAAQpB,GACtB,GAAIoB,IAAWpB,EACb,OAAOoB,EAGT,IAAK,IAAI9c,KAAO0b,EACd,GACG/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,IACtC,cAARA,GACQ,gBAARA,EAHF,CAQA,IAAIgd,EAAYtB,EAAO1b,GACnBid,EAAYH,EAAO9c,QAEE,IAAdid,QAAkD,IAAdD,IAK7CJ,EAA0BK,IAC1BL,EAA0BI,GAE1BF,EAAO9c,GAAO6c,EAAOI,EAAWD,GAEhCF,EAAO9c,GAzCU,iBADR6B,EA0CWmb,IAzCmB,OAAVnb,EACxBgb,EAAOje,MAAMmF,QAAQlC,GAAS,GAAK,CAAC,EAAGA,GAEzCA,EAuBL,CA3BJ,IAAeA,EA6Cb,OAAOib,CACT,CAiCAzf,EAAOC,QAfP,SAAewf,GACRF,EAA0BE,KAC7BA,EAAS,CAAC,GAGZ,IAAK,IAAI3e,EAAI,EAAG+e,EAAI3e,UAAUD,OAAQH,EAAI+e,EAAG/e,IAAK,CAChD,IAAIud,EAASnd,UAAUJ,GAEnBye,EAA0BlB,IAC5BmB,EAAOC,EAAQpB,EAEnB,CACA,OAAOoB,CACT,kCCzEAzf,EAAOC,QAJP,SAAuB6f,GACrB,OAAOA,GAAOxa,OAAOC,KAAKua,GAAK7e,OAAS,CAC1C,kCCaAjB,EAAOC,QAdP,SAAuCoe,EAAQ0B,GAC7C,GAAe,OAAX1B,EAAiB,MAAO,CAAC,EAC7B,IAEI1b,EACA7B,EAHA2e,EAAS,CAAC,EACVO,EAAa1a,OAAOC,KAAK8Y,GAG7B,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IACjC6B,EAAMqd,EAAWlf,GACbif,EAAS/Z,QAAQrD,IAAQ,IAC7B8c,EAAO9c,GAAO0b,EAAO1b,IAEvB,OAAO8c,CACT,kCCbA,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,CAoDArgB,EAAOC,QA7CP,SAAiBsgB,EAAYC,EAAWC,GACtC,IAAKlf,MAAMmF,QAAQ6Z,GACjB,MAAO,GAGJhf,MAAMmF,QAAQ+Z,KACjBA,EAAS,IAGX,IAAIhN,EAAS8M,EAAWhY,KAAI,SAAS/D,EAAOpB,GAC1C,MAAO,CACLsd,SAAUF,EAAUjY,KAAI,SAASoY,GAC/B,OAAOnc,EAAMmc,EACf,IACAvd,MAAOA,EACPoB,MAAOA,EAEX,IAuBA,OArBAiP,EAAO4D,MAAK,SAAkBuJ,EAAQV,GAGpC,IAFA,IAAI9c,GAAS,IAEJA,EAAQwd,EAAOF,SAASzf,QAAQ,CACvC,IAAIwW,EAAMwI,EAAiBW,EAAOF,SAAStd,GAAQ8c,EAAMQ,SAAStd,IAClE,GAAIqU,EACF,OAAIrU,GAASqd,EAAOxf,OACXwW,EAEa,SAAlBgJ,EAAOrd,IACDqU,EAEHA,CAEX,CAIA,OAAOmJ,EAAOxd,MAAQ8c,EAAM9c,KAC9B,IAEOqQ,EAAOlL,KAAI,SAASkP,GACzB,OAAOA,EAAIjT,KACb,GACF,kCC9DAxE,EAAOC,QAZP,SAASmG,EAAYpB,GACnB,GAAiB,iBAANA,EACT,OAAOA,EACF,GAAiB,iBAANA,EAChB,OAAOqD,WAAWrD,GACb,GAAIzD,MAAMmF,QAAQ1B,GACvB,OAAOA,EAAEuD,IAAInC,GAGf,MAAM,IAAIjF,MAAM,wEAClB,sCCVA,IAAI8E,EAAQ,EAAQ,OAEpB,SAAS4a,EAAWf,GAClB,OAAOxa,OAAOC,KAAKua,GAChBzI,MAAK,SAAS7Q,EAAGC,GAChB,OAAOD,EAAEsa,cAAcra,EACzB,IACCjB,QAAO,SAAS2J,EAAK4R,GAEpB,OADA5R,EAAI4R,GAAQjB,EAAIiB,GACT5R,CACT,GAAG,CAAC,EACR,CAEA,IAAI4I,EAAiB,CAOnBqB,YAAa,SAAoBhW,EAAOmN,GACtC,IAAI4I,EAAU,GAiFd,OA9EAA,EAAQrX,KAAK,CACX+Y,UAAWzX,EACX0D,OAAQiR,EAAegB,qBAAqBxI,KAI9CA,EAAMhC,8BAA8B3G,SAAQ,SAASgN,GACnDuE,EAAQrX,KAAK,CACX+Y,UAAWzX,EACX0D,OAAQiR,EAAeiJ,iCAAiCzQ,EAAOqE,IAEnE,IAGArE,EAAM9B,+BAA+B7G,SAAQ,SAASgN,GACpD,IAAI5I,EAAoBuE,EAAMhD,2BAA2BqH,GACrD3L,EAAoBsH,EAAMrH,0BAA0B0L,GACpDvH,EAAYkD,EAAMjD,+BAA+BtB,GAIrD,GAAI/C,EAAkBhI,OAAS,GAAKgI,EAAkB,GAAGgH,MAAM5C,GAAWpM,OAAS,EAAG,CAEpF,IAAIggB,EAAahY,EAAkB,GAAGgH,MAAM5C,GAAW7L,MAAM,GAAI,GAAGgE,QAClE,SAA0B+C,EAAK2Y,EAAS5P,GACtC,OAAO/I,EAAI3D,OAAO,CAChBL,UAAWyH,EAAkB6G,WAAWvB,GACxC9M,MAAiB,IAAV8M,EACH4P,EACA,CAAC3Y,EAAIA,EAAItH,OAAS,GAAGuD,MAAO0c,GAASC,KAAK9T,IAElD,GACA,IAEF4T,EAAWrZ,SAAQ,SAAShC,EAAQ0L,GAClC,IAAIxK,EAASiR,EAAeiJ,iCAC1BzQ,EACA3K,EAAOrB,UACG,IAAV+M,GAIF,SAAS8P,EAA2B5c,GAClC,OAAOwH,EAAkB6G,WAAWwO,MAAK,SAAS9c,GAChD,OAAOA,IAAcC,EAAMyL,MAAM,KAAK,EACxC,GACF,CAEA,IAAIqR,GAAwBxa,EAAO4W,cAAgB,IAAIlY,QAAO,SAAS2J,EAAKoS,GAC1E,GAAIhgB,MAAMmF,QAAQ6a,GAAc,CAC9B,IAAIC,EAAWD,EAAY3b,QAAO,SAAS6b,GACzC,OAAQL,EAA2BK,EACrC,IAEID,EAASvgB,OAAS,GACpBkO,EAAIrN,KAAK0f,EAEb,CAMA,MAJ2B,iBAAhBD,GAA6BH,EAA2BG,IACjEpS,EAAIrN,KAAKyf,GAGJpS,CACT,GAAG,IAECkC,EAAS4P,EAAW3P,EAAQ,GAE9BxK,EAAO4W,aADLpM,EAAQ,EACYgQ,EAAqB1c,OAAOyM,EAAO9M,UAAY,IAAM8M,EAAO7M,OAE5D8c,EAAqBrgB,OAAS,EAAIqgB,OAAuB3hB,EAGjFwZ,EAAQrX,KAAK,CAAC+Y,UAAWzX,EAAO0D,OAAQA,GAC1C,GACF,CACF,IAEOqS,CACT,EAOAJ,qBAAsB,SAASxI,GAC7B,IAAIrJ,EAASqJ,EAAMrJ,OAChBtC,OAAO2L,EAAMpJ,mBACbvC,OAAOmT,EAAe2J,qCAAqCnR,IAG1DmN,EAAe3F,EAAe4J,iBAAiBpR,GAC/C9G,EAAiBsO,EAAe6J,mBAAmBrR,GACnD/G,EAAauO,EAAe8J,eAAetR,GAC3CuR,EAAmB,CACrB5a,OAAQA,EAAOlB,QAAQ,MAAQ,EAAI,CAAC,KAAOkB,EAC3CsC,WAAYA,GAWd,OARIkU,EAAazc,OAAS,IACxB6gB,EAAiBpE,aAAeA,GAG9BjU,EAAexI,OAAS,IAC1B6gB,EAAiBrY,eAAiBA,GAG7BoX,EAAW5a,EAAM,CAAC,EAAGsK,EAAM1B,iBAAkBiT,GACtD,EASAd,iCAAkC,SAASzQ,EAAOxH,EAAOgZ,GACvD,IAAIrE,EAAe3F,EAAe4J,iBAAiBpR,EAAOxH,EAAOgZ,GAC7DtY,EAAiBsO,EAAe6J,mBAAmBrR,EAAOxH,GAC1DS,EAAauO,EAAe8J,eAAetR,GAC3CuR,EAAmB,CACrBrX,YAAa,EACbJ,KAAM,EACN2X,WAAW,EACXC,gBAAgB,GAGdzY,EAAWvI,OAAS,IACtB6gB,EAAiBtY,WAAaA,GAGhC,IAAIwC,EAAoBuE,EAAMhD,2BAA2BxE,GAoBzD,OAjBE+Y,EAAiB5a,OADf8E,EACwB+L,EAAemK,0CACvC3R,EACAvE,EACA+V,GAGwBhZ,EAGxBU,EAAexI,OAAS,IAC1B6gB,EAAiBrY,eAAiBA,GAGhCiU,EAAazc,OAAS,IACxB6gB,EAAiBpE,aAAeA,GAG3BmD,EAAW5a,EAAM,CAAC,EAAGsK,EAAM1B,iBAAkBiT,GACtD,EAQAF,mBAAoB,SAASrR,EAAOxF,GAClC,GAAIwF,EAAM9G,eACR,OAAO8G,EAAM9G,eAGf,IAAIA,EAAiB,GAqBrB,OAnBAnE,OAAOC,KAAKgL,EAAM/I,oBAAoBI,SAAQ,SAASrD,GACrD,IAAIkE,EAAY8H,EAAM/I,mBAAmBjD,IAAc,CAAC,EACxDe,OAAOC,KAAKkD,GAAWb,SAAQ,SAASc,GACtC,IAAIhD,EAAS+C,EAAUC,IAAa,GAChCqC,IAAcxG,GAChBmB,EAAOkC,SAAQ,SAASpD,GACtB,GAAIjD,MAAMmF,QAAQlC,GAAQ,CACxB,IAAI2d,EAAK3d,EAAM+D,KAAI,SAASvD,GAC1B,OAAOT,EAAYmE,EAAW1D,CAChC,IACAyE,EAAe3H,KAAKqgB,EACtB,MACE1Y,EAAe3H,KAAKyC,EAAYmE,EAAWlE,EAE/C,GAEJ,GACF,IAEOiF,CACT,EAOAoY,eAAgB,SAAStR,GACvB,OAAIA,EAAM/G,WACD+G,EAAM/G,WAGR+G,EAAM9I,eAAe0Z,KAAK,IACnC,EAUAQ,iBAAkB,SAASpR,EAAOxH,EAAOgZ,GACvC,IAAIrE,EAAe,GAEfrW,EAAoBkJ,EAAMlJ,mBAAqB,CAAC,EACpD/B,OAAOC,KAAK8B,GAAmBO,SAAQ,SAASmD,IAC5B1D,EAAkB0D,IAAc,IACtCnD,SAAQ,SAAS8J,GAC3BgM,EAAa5b,KAAKiJ,EAAY,IAAM2G,EACtC,GACF,IAEA,IAAIpK,EAAiBiJ,EAAMjJ,gBAAkB,CAAC,EAC9ChC,OAAOC,KAAK+B,GAAgBM,SAAQ,SAASmD,IACzBzD,EAAeyD,IAAc,IACnCnD,SAAQ,SAAS8J,GAC3BgM,EAAa5b,KAAKiJ,EAAY,KAAO2G,EACvC,GACF,IAEA,IAAInK,EAA+BgJ,EAAMhJ,8BAAgC,CAAC,EAC1EjC,OAAOC,KAAKgC,GAA8BK,SAAQ,SAASmD,GACzD,IAAI0L,EAAclP,EAA6BwD,IAAc,GAC7D,GAAIA,IAAchC,GAAU0N,GAAsC,IAAvBA,EAAYxV,OAAvD,CAGA,IAAImhB,EAAY,GAEhB3L,EAAY7O,SAAQ,SAAS8J,GAC3B0Q,EAAUtgB,KAAKiJ,EAAY,IAAM2G,EACnC,IAEAgM,EAAa5b,KAAKsgB,EAPlB,CAQF,IAEA,IAAI1a,EAAgC6I,EAAM7I,+BAAiC,CAAC,EA4C5E,OA3CApC,OAAOC,KAAKmC,GAA+BE,SAAQ,SAASmD,GAC1D,IACI2G,GADchK,EAA8BqD,IAAc,IACjC,GAE7B,QAAmBpL,IAAf+R,EAAJ,CAIA,IAGI2Q,EACAC,EAJAtW,EAAoBuE,EAAMhD,2BAA2BxC,GACrDsC,EAAYkD,EAAMjD,+BAA+BtB,GACjDhD,EAAWuH,EAAMZ,yBAAyB3D,GAK9C,GAAIjD,IAAUgC,EAAW,CAGvB,IAAuC,IAAnC2G,EAAW1L,QAAQqH,KAAuBrE,IAAsC,IAA1B+Y,GACvD/Y,GAAYA,EAASiH,MAAM5C,GAAWpM,SAAWyQ,EAAWzB,MAAM5C,GAAWpM,OAC9E,OAGG+H,GAIHsZ,EAAkBtZ,EAASiH,MAAM5C,GAAWpM,OAAS,EACrDyQ,EAAa1I,IAJbsZ,EAAkB5Q,EAAWzB,MAAM5C,GAAWpM,OAAS,EACvDyQ,EAAaA,EAAWlQ,MAAM,EAAGkQ,EAAWlE,YAAYH,KAM1DgV,EAAoBrW,EAAkB6G,WAAWyP,EACnD,MACEA,EAAkB5Q,EAAWzB,MAAM5C,GAAWpM,OAAS,EAEvDohB,EAAoBrW,EAAkB6G,WAAWyP,GAG/CD,GACF3E,EAAa5b,KAAK,CAACugB,EAAoB,IAAM3Q,GAjC/C,CAmCF,IAEOgM,CACT,EAEAgE,qCAAsC,SAASnR,GAG7C,OAAOA,EAAMnJ,mBAAmB5B,QAE9B,SAA+C+c,EAAevW,GAC5D,IAAIwW,EAAyBjS,EAAMrH,0BAA0B8C,EAAkB7C,MAAM,GAGrF,IAAKqZ,EAEH,OADAD,EAAczgB,KAAKkK,EAAkB6G,WAAW,IACzC0P,EAGT,IAAIlV,EAAYkD,EAAMjD,+BAA+BtB,GACjDsF,EAAQkR,EAAuBvS,MAAM5C,GAAWpM,OAChDwhB,EAAgBzW,EAAkB6G,WAAWrR,MAAM,EAAG8P,EAAQ,GAElE,OAAOiR,EAAc3d,OAAO6d,EAC9B,GAlBQ,GAmBZ,EAEAP,0CAA2C,SAAS3R,EAAOvE,EAAmB0W,GAC5E,IAAIrV,EAAYkD,EAAMjD,+BAA+BtB,GACrD,IAAkB,IAAd0W,EAAoB,CACtB,IAAI1Z,EAAWuH,EAAMZ,yBAAyB3D,GAC1C0I,EAAiB,EAKrB,OAHI1L,IACF0L,EAAiB1L,EAASiH,MAAM5C,GAAWpM,QAEtC,CAAC+K,EAAkB6G,WAAW6B,GACvC,CAEA,IAIIiO,GAJyBpS,EAAMrH,0BAA0B8C,EAAkB7C,MAAM,IAAM,IAIlD8G,MAAM5C,GAAWpM,OAAS,EACnE,OAAO+K,EAAkB6G,WAAWrR,MAAM,EAAGmhB,EAAc,EAC7D,EAEAhI,uBAAwB,SAAS5P,EAAWb,EAAOmQ,EAAc9J,GAC/D,IAAIqS,EAA+BrS,EAAMrF,mBAAmBH,GAC1DwF,EAAMnH,iBAAiB2B,GACvBwF,EACEsS,EAAiC,CACnCC,WAAY5Y,EACZa,UAAWA,GAKb,MAH4B,iBAAjBsP,IACTwI,EAA+BxI,aAAeA,GAEzCwG,EAAW5a,EAChB,CAAC,EACD8R,EAAegB,qBAAqB6J,GACpCC,GAEJ,GAGF7iB,EAAOC,QAAU8X,kCC1XjB/X,EAAOC,QAAU,SAA0B+G,GACzC,OAAkB,OAAdA,GAGG,wBAAwB+b,KAAK/b,EACtC,kCCLAhH,EAAOC,QAAU,4BCDmDD,EAAOC,QAAgG,WAAY,aAAa,SAASuZ,EAAEA,EAAExM,EAAE2P,GAAG,OAAO3P,KAAKwM,EAAElU,OAAO0d,eAAexJ,EAAExM,EAAE,CAACxI,MAAMmY,EAAEuC,YAAW,EAAGE,cAAa,EAAGD,UAAS,IAAK3F,EAAExM,GAAG2P,EAAEnD,CAAC,CAAC,SAASxM,EAAEwM,EAAExM,GAAG,IAAI2P,EAAErX,OAAOC,KAAKiU,GAAG,GAAGlU,OAAO2d,sBAAsB,CAAC,IAAI5iB,EAAEiF,OAAO2d,sBAAsBzJ,GAAGxM,IAAI3M,EAAEA,EAAEuF,QAAO,SAAUoH,GAAG,OAAO1H,OAAO4d,yBAAyB1J,EAAExM,GAAGkS,UAAW,KAAIvC,EAAE7a,KAAKL,MAAMkb,EAAEtc,EAAE,CAAC,OAAOsc,CAAC,CAAC,SAASA,EAAEA,GAAG,IAAI,IAAItc,EAAE,EAAEA,EAAEa,UAAUD,OAAOZ,IAAI,CAAC,IAAI8iB,EAAE,MAAMjiB,UAAUb,GAAGa,UAAUb,GAAG,CAAC,EAAEA,EAAE,EAAE2M,EAAE1H,OAAO6d,IAAG,GAAIvb,SAAQ,SAAUoF,GAAGwM,EAAEmD,EAAE3P,EAAEmW,EAAEnW,GAAI,IAAG1H,OAAO8d,0BAA0B9d,OAAO+d,iBAAiB1G,EAAErX,OAAO8d,0BAA0BD,IAAInW,EAAE1H,OAAO6d,IAAIvb,SAAQ,SAAU4R,GAAGlU,OAAO0d,eAAerG,EAAEnD,EAAElU,OAAO4d,yBAAyBC,EAAE3J,GAAI,GAAE,CAAC,OAAOmD,CAAC,CAAC,SAAStc,EAAEmZ,EAAExM,GAAG,GAAG,MAAMwM,EAAE,MAAM,CAAC,EAAE,IAAImD,EAAEtc,EAAE8iB,EAAE,SAAS3J,EAAExM,GAAG,GAAG,MAAMwM,EAAE,MAAM,CAAC,EAAE,IAAImD,EAAEtc,EAAE8iB,EAAE,CAAC,EAAE3c,EAAElB,OAAOC,KAAKiU,GAAG,IAAInZ,EAAE,EAAEA,EAAEmG,EAAEvF,OAAOZ,IAAIsc,EAAEnW,EAAEnG,GAAG2M,EAAEhH,QAAQ2W,IAAI,IAAIwG,EAAExG,GAAGnD,EAAEmD,IAAI,OAAOwG,CAAC,CAAnI,CAAqI3J,EAAExM,GAAG,GAAG1H,OAAO2d,sBAAsB,CAAC,IAAIzc,EAAElB,OAAO2d,sBAAsBzJ,GAAG,IAAInZ,EAAE,EAAEA,EAAEmG,EAAEvF,OAAOZ,IAAIsc,EAAEnW,EAAEnG,GAAG2M,EAAEhH,QAAQ2W,IAAI,GAAGrX,OAAOpF,UAAUojB,qBAAqBhiB,KAAKkY,EAAEmD,KAAKwG,EAAExG,GAAGnD,EAAEmD,GAAG,CAAC,OAAOwG,CAAC,CAAC,SAASA,EAAE3J,EAAExM,GAAG,OAAO,SAASwM,GAAG,GAAGjY,MAAMmF,QAAQ8S,GAAG,OAAOA,CAAC,CAAxC,CAA0CA,IAAI,SAASA,EAAExM,GAAG,GAAKuW,OAAOC,YAAYle,OAAOkU,IAAI,uBAAuBlU,OAAOpF,UAAUkQ,SAAS9O,KAAKkY,GAAzF,CAAoG,IAAImD,EAAE,GAAGtc,GAAE,EAAG8iB,GAAE,EAAG3c,OAAE,EAAO,IAAI,IAAI,IAAIid,EAAE3iB,EAAE0Y,EAAE+J,OAAOC,cAAcnjB,GAAGojB,EAAE3iB,EAAE4iB,QAAQC,QAAQhH,EAAE7a,KAAK2hB,EAAEjf,QAAQwI,GAAG2P,EAAE1b,SAAS+L,GAAG3M,GAAE,GAAI,CAAC,MAAMmZ,GAAG2J,GAAE,EAAG3c,EAAEgT,CAAC,CAAC,QAAQ,IAAInZ,GAAG,MAAMS,EAAE8iB,QAAQ9iB,EAAE8iB,QAAQ,CAAC,QAAQ,GAAGT,EAAE,MAAM3c,CAAC,CAAC,CAAC,OAAOmW,CAA7N,CAA8N,CAA/U,CAAiVnD,EAAExM,IAAI,WAAW,MAAM,IAAIzM,UAAU,uDAAuD,CAAtF,EAAyF,CAAC,SAASiG,EAAEgT,GAAG,OAAO,SAASA,GAAG,GAAGjY,MAAMmF,QAAQ8S,GAAG,CAAC,IAAI,IAAIxM,EAAE,EAAE2P,EAAE,IAAIpb,MAAMiY,EAAEvY,QAAQ+L,EAAEwM,EAAEvY,OAAO+L,IAAI2P,EAAE3P,GAAGwM,EAAExM,GAAG,OAAO2P,CAAC,CAAC,CAArG,CAAuGnD,IAAI,SAASA,GAAG,GAAG+J,OAAOC,YAAYle,OAAOkU,IAAI,uBAAuBlU,OAAOpF,UAAUkQ,SAAS9O,KAAKkY,GAAG,OAAOjY,MAAMsiB,KAAKrK,EAAE,CAA1H,CAA4HA,IAAI,WAAW,MAAM,IAAIjZ,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,SAASkjB,EAAEjK,GAAG,IAAIxM,EAAE2P,EAAE,2BAA2B/X,OAAO4U,EAAE7W,KAAKtC,EAAE,WAAW,YAAO,IAAS2M,IAAIA,EAAEwM,EAAEsK,cAAcC,OAAOD,cAAc9W,CAAC,EAAExG,EAAE,WAAW,OAAO6J,KAAK2T,MAAM3jB,IAAI4jB,QAAQtH,IAAI,KAAK,EAAE,MAAM,CAACuH,IAAI,SAAS1K,EAAExM,GAAG,IAAI2P,EAAEzb,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACijB,KAAK,WAAW,OAAOvK,QAAQC,SAAS,GAAG,OAAOD,QAAQC,UAAUR,MAAK,WAAY,IAAIsD,EAAEtM,KAAKC,UAAUkJ,GAAGnZ,EAAEmG,IAAImW,GAAG,OAAO/C,QAAQwK,IAAI,CAAC/jB,GAAG2M,SAAI,IAAS3M,GAAI,IAAGgZ,MAAK,SAAUG,GAAG,IAAIxM,EAAEmW,EAAE3J,EAAE,GAAGnZ,EAAE2M,EAAE,GAAGxG,EAAEwG,EAAE,GAAG,OAAO4M,QAAQwK,IAAI,CAAC/jB,EAAEmG,GAAGmW,EAAEwH,KAAK9jB,IAAK,IAAGgZ,MAAK,SAAUG,GAAG,OAAO2J,EAAE3J,EAAE,GAAG,EAAG,GAAE,EAAE6K,IAAI,SAAS7K,EAAExM,GAAG,OAAO4M,QAAQC,UAAUR,MAAK,WAAY,IAAI8J,EAAE3c,IAAI,OAAO2c,EAAE9S,KAAKC,UAAUkJ,IAAIxM,EAAE3M,IAAIikB,QAAQ3H,EAAEtM,KAAKC,UAAU6S,IAAInW,CAAE,GAAE,EAAEuX,OAAO,SAAS/K,GAAG,OAAOI,QAAQC,UAAUR,MAAK,WAAY,IAAIrM,EAAExG,WAAWwG,EAAEqD,KAAKC,UAAUkJ,IAAInZ,IAAIikB,QAAQ3H,EAAEtM,KAAKC,UAAUtD,GAAI,GAAE,EAAEwX,MAAM,WAAW,OAAO5K,QAAQC,UAAUR,MAAK,WAAYhZ,IAAIokB,WAAW9H,EAAG,GAAE,EAAE,CAAC,SAAS7b,EAAE0Y,GAAG,IAAIxM,EAAExG,EAAEgT,EAAEkL,QAAQ/H,EAAE3P,EAAE2X,QAAQ,YAAO,IAAShI,EAAE,CAACuH,IAAI,SAAS1K,EAAExM,GAAG,IAAI2P,EAAEzb,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACijB,KAAK,WAAW,OAAOvK,QAAQC,SAAS,GAAS,OAAJ7M,IAAaqM,MAAK,SAAUG,GAAG,OAAOI,QAAQwK,IAAI,CAAC5K,EAAEmD,EAAEwH,KAAK3K,IAAK,IAAGH,MAAK,SAAUG,GAAG,OAAO2J,EAAE3J,EAAE,GAAG,EAAG,GAAE,EAAE6K,IAAI,SAAS7K,EAAExM,GAAG,OAAO4M,QAAQC,QAAQ7M,EAAE,EAAEuX,OAAO,SAAS/K,GAAG,OAAOI,QAAQC,SAAS,EAAE2K,MAAM,WAAW,OAAO5K,QAAQC,SAAS,GAAG,CAACqK,IAAI,SAAS1K,EAAEnZ,GAAG,IAAI8iB,EAAEjiB,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACijB,KAAK,WAAW,OAAOvK,QAAQC,SAAS,GAAG,OAAO8C,EAAEuH,IAAI1K,EAAEnZ,EAAE8iB,GAAG1J,OAAM,WAAY,OAAO3Y,EAAE,CAAC4jB,OAAO1X,IAAIkX,IAAI1K,EAAEnZ,EAAE8iB,EAAG,GAAE,EAAEkB,IAAI,SAAS7K,EAAEnZ,GAAG,OAAOsc,EAAE0H,IAAI7K,EAAEnZ,GAAGoZ,OAAM,WAAY,OAAO3Y,EAAE,CAAC4jB,OAAO1X,IAAIqX,IAAI7K,EAAEnZ,EAAG,GAAE,EAAEkkB,OAAO,SAAS/K,GAAG,OAAOmD,EAAE4H,OAAO/K,GAAGC,OAAM,WAAY,OAAO3Y,EAAE,CAAC4jB,OAAO1X,IAAIuX,OAAO/K,EAAG,GAAE,EAAEgL,MAAM,WAAW,OAAO7H,EAAE6H,QAAQ/K,OAAM,WAAY,OAAO3Y,EAAE,CAAC4jB,OAAO1X,IAAIwX,OAAQ,GAAE,EAAE,CAAC,SAASlH,IAAI,IAAI9D,EAAEtY,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC0jB,cAAa,GAAI5X,EAAE,CAAC,EAAE,MAAM,CAACkX,IAAI,SAASvH,EAAEtc,GAAG,IAAI8iB,EAAEjiB,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACijB,KAAK,WAAW,OAAOvK,QAAQC,SAAS,GAAGrT,EAAE6J,KAAKC,UAAUqM,GAAG,GAAGnW,KAAKwG,EAAE,OAAO4M,QAAQC,QAAQL,EAAEoL,aAAavU,KAAK2T,MAAMhX,EAAExG,IAAIwG,EAAExG,IAAI,IAAIid,EAAEpjB,IAAIS,EAAEqiB,GAAGA,EAAEgB,MAAM,WAAW,OAAOvK,QAAQC,SAAS,EAAE,OAAO4J,EAAEpK,MAAK,SAAUG,GAAG,OAAO1Y,EAAE0Y,EAAG,IAAGH,MAAK,WAAY,OAAOoK,CAAE,GAAE,EAAEY,IAAI,SAAS1H,EAAEtc,GAAG,OAAO2M,EAAEqD,KAAKC,UAAUqM,IAAInD,EAAEoL,aAAavU,KAAKC,UAAUjQ,GAAGA,EAAEuZ,QAAQC,QAAQxZ,EAAE,EAAEkkB,OAAO,SAAS/K,GAAG,cAAcxM,EAAEqD,KAAKC,UAAUkJ,IAAII,QAAQC,SAAS,EAAE2K,MAAM,WAAW,OAAOxX,EAAE,CAAC,EAAE4M,QAAQC,SAAS,EAAE,CAAC,SAASgL,EAAErL,GAAG,IAAI,IAAIxM,EAAEwM,EAAEvY,OAAO,EAAE+L,EAAE,EAAEA,IAAI,CAAC,IAAI2P,EAAEmI,KAAKC,MAAMD,KAAKE,UAAUhY,EAAE,IAAI3M,EAAEmZ,EAAExM,GAAGwM,EAAExM,GAAGwM,EAAEmD,GAAGnD,EAAEmD,GAAGtc,CAAC,CAAC,OAAOmZ,CAAC,CAAC,SAASqG,EAAErG,EAAExM,GAAG,OAAOA,GAAG1H,OAAOC,KAAKyH,GAAGpF,SAAQ,SAAU+U,GAAGnD,EAAEmD,GAAG3P,EAAE2P,GAAGnD,EAAG,IAAGA,GAAGA,CAAC,CAAC,SAASvU,EAAEuU,GAAG,IAAI,IAAIxM,EAAE9L,UAAUD,OAAO0b,EAAE,IAAIpb,MAAMyL,EAAE,EAAEA,EAAE,EAAE,GAAG3M,EAAE,EAAEA,EAAE2M,EAAE3M,IAAIsc,EAAEtc,EAAE,GAAGa,UAAUb,GAAG,IAAI8iB,EAAE,EAAE,OAAO3J,EAAE+E,QAAQ,OAAM,WAAY,OAAO0G,mBAAmBtI,EAAEwG,KAAM,GAAE,CAAC,IAAI+B,EAAE,CAACC,sBAAsB,EAAEC,cAAc,GAAG,SAASC,EAAE7L,EAAExM,GAAG,IAAI2P,EAAEnD,GAAG,CAAC,EAAEnZ,EAAEsc,EAAEpL,MAAM,CAAC,EAAE,OAAOjM,OAAOC,KAAKoX,GAAG/U,SAAQ,SAAU4R,IAAI,IAAI,CAAC,UAAU,UAAU,kBAAkB,OAAO,aAAaxT,QAAQwT,KAAKnZ,EAAEmZ,GAAGmD,EAAEnD,GAAI,IAAG,CAACjI,KAAKjM,OAAOggB,QAAQjlB,GAAGY,OAAO,EAAEZ,OAAE,EAAOklB,QAAQ5I,EAAE4I,SAASvY,EAAEwY,QAAQ7I,EAAE6I,SAAS,CAAC,EAAEC,gBAAgB9I,EAAE8I,iBAAiB,CAAC,EAAEC,UAAU/I,EAAE+I,UAAU,CAAC,IAAI9jB,EAAE,CAAC+jB,KAAK,EAAEC,MAAM,EAAEC,IAAI,GAAGC,EAAE,EAAE9gB,EAAE,EAAE+gB,EAAE,EAAE,SAAS1jB,EAAEmX,GAAG,IAAIxM,EAAE9L,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG4kB,EAAE,OAAOnJ,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAACwM,OAAOhZ,EAAEiZ,WAAWC,KAAKC,OAAO,CAAC,SAAS1f,EAAE+S,GAAG,MAAM,iBAAiBA,EAAE,CAAC4M,SAAS,QAAQC,IAAI7M,EAAE8M,OAAO1kB,EAAEikB,KAAK,CAACO,SAAS5M,EAAE4M,UAAU,QAAQC,IAAI7M,EAAE6M,IAAIC,OAAO9M,EAAE8M,QAAQ1kB,EAAEikB,IAAI,CAAC,IAAIU,EAAE,MAAMC,EAAE,OAAO,SAASxL,EAAExB,EAAExM,GAAG,OAAO4M,QAAQwK,IAAIpX,EAAEzE,KAAI,SAAUyE,GAAG,OAAOwM,EAAE0K,IAAIlX,GAAE,WAAY,OAAO4M,QAAQC,QAAQxX,EAAE2K,GAAI,GAAG,KAAIqM,MAAK,SAAUG,GAAG,IAAImD,EAAEnD,EAAE5T,QAAO,SAAU4T,GAAG,OAAO,SAASA,GAAG,OAAOA,EAAEwM,SAASF,GAAGI,KAAKC,MAAM3M,EAAEyM,WAAW,IAAI,CAA7D,CAA+DzM,EAAG,IAAGnZ,EAAEmZ,EAAE5T,QAAO,SAAU4T,GAAG,OAAO,SAASA,GAAG,OAAOA,EAAEwM,SAASD,GAAGG,KAAKC,MAAM3M,EAAEyM,YAAY,IAAI,CAA9D,CAAgEzM,EAAG,IAAG2J,EAAE,GAAGve,OAAO4B,EAAEmW,GAAGnW,EAAEnG,IAAI,MAAM,CAAComB,WAAW,SAASjN,EAAExM,GAAG,OAAO,IAAI3M,EAAEY,QAAQ,IAAIuY,EAAE,EAAEnZ,EAAEY,OAAO,EAAEuY,GAAGxM,CAAC,EAAE0Z,eAAevD,EAAEliB,OAAO,EAAEkiB,EAAE5a,KAAI,SAAUiR,GAAG,OAAO/S,EAAE+S,EAAG,IAAGxM,EAAG,GAAE,CAAC,SAAS2Z,EAAEnN,EAAExM,EAAE3M,EAAE8iB,GAAG,IAAIM,EAAE,GAAG3iB,EAAE,SAAS0Y,EAAExM,GAAG,GAAGwM,EAAEoN,SAASL,SAAG,IAAS/M,EAAEjI,WAAM,IAASvE,EAAEuE,MAA7C,CAAyD,IAAIlR,EAAEkB,MAAMmF,QAAQ8S,EAAEjI,MAAMiI,EAAEjI,KAAKoL,EAAEA,EAAE,CAAC,EAAEnD,EAAEjI,MAAMvE,EAAEuE,MAAM,OAAOlB,KAAKC,UAAUjQ,EAAjF,CAAmF,CAAzJ,CAA2JA,EAAE8iB,GAAG7F,EAAE,SAAS9D,EAAExM,GAAG,IAAI3M,EAAEsc,EAAEA,EAAE,CAAC,EAAEnD,EAAEgM,SAASxY,EAAEwY,SAASrC,EAAE,CAAC,EAAE,OAAO7d,OAAOC,KAAKlF,GAAGuH,SAAQ,SAAU4R,GAAG,IAAIxM,EAAE3M,EAAEmZ,GAAG2J,EAAE3J,EAAEqN,eAAe7Z,CAAE,IAAGmW,CAAC,CAArI,CAAuI3J,EAAE2J,GAAG0B,EAAExkB,EAAEumB,OAAO/G,EAAExf,EAAEumB,SAASL,EAAE,CAAC,EAAE5J,EAAEA,EAAE,CAAC,EAAEtc,EAAEkR,MAAM4R,EAAE5R,MAAMtM,EAAE0X,EAAEA,EAAEA,EAAE,CAAC,kBAAkBnD,EAAEsN,UAAUtiB,OAAOgV,EAAEiM,iBAAiB5F,GAAGsD,EAAEsC,iBAAiBP,EAAE,EAAEG,EAAE,SAASrY,EAAE2P,EAAEnW,GAAG,IAAIqZ,EAAElD,EAAEoK,MAAM,QAAG,IAASlH,EAAE,KAAK,CAAC1W,KAAK,aAAa6d,QAAQ,gHAAgHC,sBAAsBC,EAAEzD,IAAI,IAAI4B,EAAE,CAAC9T,KAAKzQ,EAAE0kB,QAAQlI,EAAEsJ,OAAO/B,EAAEwB,IAAIc,EAAEtH,EAAExf,EAAEqN,KAAKzI,GAAGmiB,eAAe5gB,EAAE0e,EAAE1L,EAAE6N,SAASC,SAASC,gBAAgB/gB,EAAE0e,EAAE/B,EAAEoC,UAAU3jB,EAAE,SAAS4X,GAAG,IAAIxM,EAAE,CAACwa,QAAQnC,EAAEvK,SAAStB,EAAEiO,KAAK5H,EAAE6H,UAAU/K,EAAE1b,QAAQ,OAAOwiB,EAAE3hB,KAAKkL,GAAGA,CAAC,EAAE8Y,EAAE,CAAC6B,UAAU,SAASnO,GAAG,OAAO,SAASA,GAAG,IAAI,OAAOnJ,KAAK2T,MAAMxK,EAAEF,QAAQ,CAAC,MAAMtM,GAAG,MAAM,SAASwM,EAAExM,GAAG,MAAM,CAAC7D,KAAK,uBAAuB6d,QAAQxN,EAAEsB,SAAS9N,EAAE,CAAtE,CAAwEA,EAAEga,QAAQxN,EAAE,CAAC,CAAjJ,CAAmJA,EAAE,EAAEoO,QAAQ,SAASvnB,GAAG,IAAI8iB,EAAEvhB,EAAEvB,GAAG,OAAOA,EAAEwnB,YAAY3C,IAAItL,QAAQwK,IAAI,CAAC5K,EAAEsO,OAAOC,KAAK,oBAAoBC,EAAE7E,IAAI3J,EAAEyO,WAAW5D,IAAIxE,EAAExd,EAAEwd,EAAExf,EAAEwnB,WAAW9B,EAAE/gB,MAAMqU,MAAK,WAAY,OAAOrM,EAAE2P,EAAEnW,EAAG,GAAE,EAAE0hB,OAAO,SAAS1O,GAAG,MAAM5X,EAAE4X,GAAG,SAASA,EAAExM,GAAG,IAAI2P,EAAEnD,EAAEF,QAAQjZ,EAAEmZ,EAAEwM,OAAO7C,EAAExG,EAAE,IAAIwG,EAAE9S,KAAK2T,MAAMrH,GAAGqK,OAAO,CAAC,MAAMxN,GAAG,CAAC,OAAO,SAASA,EAAExM,EAAE2P,GAAG,MAAM,CAACxT,KAAK,WAAW6d,QAAQxN,EAAEwM,OAAOhZ,EAAEia,sBAAsBtK,EAAE,CAAlF,CAAoFwG,EAAE9iB,EAAE2M,EAAE,CAApL,CAAsLwM,EAAE0N,EAAEzD,GAAG,GAAG,OAAOjK,EAAE2O,UAAUC,KAAK/C,GAAGhM,MAAK,SAAUG,GAAG,OAAO,SAASA,EAAExM,GAAG,OAAO,SAASwM,GAAG,IAAIxM,EAAEwM,EAAEwM,OAAO,OAAOxM,EAAEqO,YAAY,SAASrO,GAAG,IAAIxM,EAAEwM,EAAEqO,WAAWlL,EAAEnD,EAAEwM,OAAO,OAAOhZ,GAAG,KAAK2P,CAAC,CAA1D,CAA4DnD,IAAI,MAAMxM,EAAE,MAAM,MAAMA,EAAE,IAAI,CAA1I,CAA4IwM,GAAGxM,EAAE4a,QAAQpO,GAAG,MAAMA,EAAEwM,OAAO,KAAKhZ,EAAE2a,UAAUnO,GAAGxM,EAAEkb,OAAO1O,EAAE,CAA/N,CAAiOA,EAAEsM,EAAG,GAAE,EAAE,OAAO9K,EAAExB,EAAEyO,WAAWjb,GAAGqM,MAAK,SAAUG,GAAG,OAAO6L,EAAE7e,EAAEgT,EAAEkN,gBAAgB2B,UAAU7O,EAAEiN,WAAY,GAAE,CAAC,SAAS6B,EAAE9O,GAAG,IAAIxM,EAAE,CAACxI,MAAM,2BAA2BI,OAAO4U,EAAE,KAAK+O,IAAI,SAAS/O,GAAG,IAAImD,EAAE,KAAK/X,OAAO4U,EAAE0H,SAAStc,YAAO,IAAS4U,EAAElW,QAAQ,KAAKsB,OAAO4U,EAAElW,QAAQ,KAAK,IAAI,OAAO,IAAI0J,EAAExI,MAAMwB,QAAQ2W,KAAK3P,EAAExI,MAAM,GAAGI,OAAOoI,EAAExI,OAAOI,OAAO+X,IAAI3P,CAAC,GAAG,OAAOA,CAAC,CAAC,SAASma,EAAE3N,EAAExM,EAAE2P,GAAG,IAAItc,EAAEmoB,EAAE7L,GAAGwG,EAAE,GAAGve,OAAO4U,EAAE4M,SAAS,OAAOxhB,OAAO4U,EAAE6M,IAAI,KAAKzhB,OAAO,MAAMoI,EAAEyb,OAAO,GAAGzb,EAAE0b,OAAO,GAAG1b,GAAG,OAAO3M,EAAEY,SAASkiB,GAAG,IAAIve,OAAOvE,IAAI8iB,CAAC,CAAC,SAASqF,EAAEhP,GAAG,OAAOlU,OAAOC,KAAKiU,GAAGjR,KAAI,SAAUyE,GAAG,OAAO/H,EAAE,QAAQ+H,GAAG2P,EAAEnD,EAAExM,GAAG,oBAAoB1H,OAAOpF,UAAUkQ,SAAS9O,KAAKqb,IAAI,mBAAmBrX,OAAOpF,UAAUkQ,SAAS9O,KAAKqb,GAAGtM,KAAKC,UAAUkJ,EAAExM,IAAIwM,EAAExM,KAAK,IAAI2P,CAAE,IAAGwE,KAAK,IAAI,CAAC,SAAS+F,EAAE1N,GAAG,OAAOA,EAAEjR,KAAI,SAAUiR,GAAG,OAAOwO,EAAExO,EAAG,GAAE,CAAC,SAASwO,EAAExO,GAAG,IAAIxM,EAAEwM,EAAEgO,QAAQhC,QAAQ,qBAAqB,CAAC,oBAAoB,SAAS,CAAC,EAAE,OAAO7I,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAACgO,QAAQ7K,EAAEA,EAAE,CAAC,EAAEnD,EAAEgO,SAAS,CAAC,EAAE,CAAChC,QAAQ7I,EAAEA,EAAE,CAAC,EAAEnD,EAAEgO,QAAQhC,SAASxY,MAAM,CAAC,IAAI2b,EAAE,SAASnP,GAAG,IAAIxM,EAAEwM,EAAEoP,MAAMvoB,EAAE,SAASmZ,EAAExM,EAAE2P,GAAG,IAAItc,EAAE,CAAC,oBAAoBsc,EAAE,2BAA2B3P,GAAG,MAAM,CAACwY,QAAQ,WAAW,OAAOhM,IAAI0L,EAAEE,cAAc/kB,EAAE,CAAC,CAAC,EAAEolB,gBAAgB,WAAW,OAAOjM,IAAI0L,EAAEC,sBAAsB9kB,EAAE,CAAC,CAAC,EAAE,CAA1M,MAA4M,IAASmZ,EAAEqP,SAASrP,EAAEqP,SAAS3D,EAAEE,cAAcpY,EAAEwM,EAAEsP,QAAQtiB,EAAE,SAASgT,GAAG,IAAIxM,EAAEwM,EAAEyO,WAAWtL,EAAEnD,EAAEsO,OAAOznB,EAAEmZ,EAAE2O,UAAU3hB,EAAEgT,EAAEuP,cAActF,EAAEjK,EAAEwP,eAAeloB,EAAE0Y,EAAE6N,SAAS/J,EAAE9D,EAAEsN,UAAUjC,EAAErL,EAAEyP,MAAMpJ,EAAErG,EAAEiM,gBAAgBxgB,EAAE,CAACgjB,WAAWjb,EAAE8a,OAAOnL,EAAEwL,UAAU9nB,EAAE0oB,cAAcviB,EAAEwiB,eAAevF,EAAE4D,SAASvmB,EAAEgmB,UAAUxJ,EAAEkI,QAAQhM,EAAEgM,QAAQC,gBAAgB5F,EAAEoJ,MAAMpE,EAAEtc,KAAI,SAAUiR,GAAG,OAAO/S,EAAE+S,EAAG,IAAG0P,KAAK,SAAS1P,EAAExM,GAAG,IAAI2P,EAAE0I,EAAErY,EAAE/H,EAAEoiB,SAAS6B,MAAM7oB,EAAE,WAAW,OAAOsmB,EAAE1hB,EAAEA,EAAEgkB,MAAMrjB,QAAO,SAAU4T,GAAG,OAAO,IAAIA,EAAE8M,OAAO1kB,EAAE+jB,KAAM,IAAGnM,EAAEmD,EAAE,EAAE,IAAG,UAAM,IAASA,EAAE+I,UAAU/I,EAAE+I,UAAUlM,EAAEkM,WAAW,OAAOrlB,IAAI,IAAImG,EAAE,CAACghB,QAAQhO,EAAE2P,qBAAqBxM,EAAEyM,YAAY,CAAC3D,gBAAgBxgB,EAAEwgB,gBAAgBD,QAAQvgB,EAAEugB,UAAU,OAAOvgB,EAAE+jB,eAAe9E,IAAI1d,GAAE,WAAY,OAAOvB,EAAE8jB,cAAc7E,IAAI1d,GAAE,WAAY,OAAOvB,EAAE8jB,cAAc1E,IAAI7d,EAAEnG,KAAKgZ,MAAK,SAAUG,GAAG,OAAOI,QAAQwK,IAAI,CAACnf,EAAE8jB,cAAcxE,OAAO/d,GAAGgT,GAAI,IAAE,SAAUA,GAAG,OAAOI,QAAQwK,IAAI,CAACnf,EAAE8jB,cAAcxE,OAAO/d,GAAGoT,QAAQyP,OAAO7P,IAAK,IAAGH,MAAK,SAAUG,GAAG,IAAIxM,EAAEmW,EAAE3J,EAAE,GAAQ,OAALxM,EAAE,GAAUA,EAAE,EAAG,GAAG,GAAG,GAAE,CAACmX,KAAK,SAAS3K,GAAG,OAAOvU,EAAE+jB,eAAe3E,IAAI7d,EAAEgT,EAAE,GAAG,EAAE8P,MAAM,SAAS9P,EAAExM,GAAG,OAAO2Z,EAAE1hB,EAAEA,EAAEgkB,MAAMrjB,QAAO,SAAU4T,GAAG,OAAO,IAAIA,EAAE8M,OAAO1kB,EAAEgkB,MAAO,IAAGpM,EAAE6L,EAAErY,EAAE/H,EAAEoiB,SAASiC,OAAO,GAAG,OAAOrkB,CAAC,CAA7mC,CAA+mC0X,EAAEA,EAAE,CAACsM,MAAM,CAAC,CAAC5C,IAAI,GAAGzhB,OAAOoI,EAAE,oBAAoBsZ,OAAO1kB,EAAE+jB,MAAM,CAACU,IAAI,GAAGzhB,OAAOoI,EAAE,gBAAgBsZ,OAAO1kB,EAAEgkB,QAAQhhB,OAAOigB,EAAE,CAAC,CAACwB,IAAI,GAAGzhB,OAAOoI,EAAE,sBAAsB,CAACqZ,IAAI,GAAGzhB,OAAOoI,EAAE,sBAAsB,CAACqZ,IAAI,GAAGzhB,OAAOoI,EAAE,0BAA0BwM,GAAG,CAAC,EAAE,CAACgM,QAAQ7I,EAAEA,EAAEA,EAAE,CAAC,EAAEtc,EAAEmlB,WAAW,CAAC,eAAe,sCAAsChM,EAAEgM,SAASC,gBAAgB9I,EAAEA,EAAE,CAAC,EAAEtc,EAAEolB,mBAAmBjM,EAAEiM,oBAAoB,OAAO5F,EAAE,CAACuJ,YAAY5iB,EAAEoiB,MAAM5b,EAAEgL,gBAAgB,SAASwB,EAAExM,GAAGxG,EAAEsgB,UAAUyB,IAAI,CAACrH,QAAQ1H,EAAElW,QAAQ0J,GAAG,EAAE8Q,WAAW,WAAW,OAAOlE,QAAQwK,IAAI,CAAC5d,EAAEuiB,cAAcvE,QAAQhe,EAAEwiB,eAAexE,UAAUnL,MAAK,WAAa,GAAE,GAAGG,EAAE+P,QAAQ,EAAEC,EAAE,SAAShQ,GAAG,OAAO,SAASxM,EAAE2P,GAAG,OAAO3P,EAAE4Z,SAASL,EAAE/M,EAAE4P,YAAYF,KAAKlc,EAAE2P,GAAGnD,EAAE4P,YAAYE,MAAMtc,EAAE2P,EAAE,CAAC,EAAExU,EAAE,SAASqR,GAAG,OAAO,SAASxM,GAAG,IAAI2P,EAAEzb,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC,EAA0D,OAAO2e,EAA7D,CAACuJ,YAAY5P,EAAE4P,YAAYR,MAAMpP,EAAEoP,MAAM/N,UAAU7N,GAAc2P,EAAE4M,QAAQ,CAAC,EAAEE,EAAE,SAASjQ,GAAG,OAAO,SAASxM,EAAE3M,GAAG,IAAI8iB,EAAEnW,EAAEzE,KAAI,SAAUiR,GAAG,OAAOmD,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAAC1S,OAAO0hB,EAAEhP,EAAE1S,QAAQ,CAAC,IAAK,IAAG,OAAO0S,EAAE4P,YAAYF,KAAK,CAACtC,OAAOJ,EAAE9Y,KAAK,sBAAsB6D,KAAK,CAACmY,SAASvG,GAAGuC,WAAU,GAAIrlB,EAAE,CAAC,EAAEspB,EAAE,SAASnQ,GAAG,OAAO,SAASxM,EAAEmW,GAAG,OAAOvJ,QAAQwK,IAAIpX,EAAEzE,KAAI,SAAUyE,GAAG,IAAIxG,EAAEwG,EAAElG,OAAO2c,EAAEjd,EAAEuE,UAAUjK,EAAE0F,EAAEsc,WAAWxF,EAAEjd,EAAEmG,EAAE,CAAC,YAAY,eAAe,OAAO2B,EAAEqR,EAAFrR,CAAK6E,EAAE6N,UAAU,CAAC0O,QAAQ,CAACnP,qBAAqBwP,KAAKxP,qBAAqBqJ,EAAE3iB,EAAE6b,EAAEA,EAAE,CAAC,EAAEwG,GAAG7F,GAAI,IAAG,CAAC,EAAEuM,EAAE,SAASrQ,GAAG,OAAO,SAASxM,EAAE2P,EAAEtc,GAAG,OAAOmZ,EAAE4P,YAAYF,KAAK,CAACtC,OAAOJ,EAAE9Y,KAAKzI,EAAE,0BAA0BuU,EAAEqB,WAAWtJ,KAAK,CAACrH,MAAM8C,EAAEmN,eAAewC,GAAG+I,WAAU,GAAIrlB,EAAE,CAAC,EAAEypB,EAAE,SAAStQ,GAAG,OAAO,SAASxM,EAAE2P,GAAG,OAAOnD,EAAE4P,YAAYF,KAAK,CAACtC,OAAOJ,EAAE9Y,KAAKzI,EAAE,qBAAqBuU,EAAEqB,WAAWtJ,KAAK,CAACrH,MAAM8C,GAAG0Y,WAAU,GAAI/I,EAAE,CAAC,EAAEiN,EAAE,SAASpQ,GAAG,OAAO,SAASxM,EAAE2P,EAAEtc,GAAG,OAAOmZ,EAAE4P,YAAYF,KAAK,CAACtC,OAAOJ,EAAE9Y,KAAKzI,EAAE,+BAA+BuU,EAAEqB,UAAU7N,GAAGuE,KAAK,CAACuR,WAAWnG,GAAG+I,WAAU,GAAIrlB,EAAE,CAAC,EAAE0pB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE,SAASC,EAAE1Q,EAAExM,EAAE3M,GAAG,IAAI8iB,EAAE3c,EAAE,CAACoiB,MAAMpP,EAAEsP,OAAO9b,EAAEqa,SAAS,CAACC,QAAQ,EAAE4B,KAAK,EAAEI,MAAM,IAAInB,UAAU,CAACC,KAAK,SAAS5O,GAAG,OAAO,IAAII,SAAQ,SAAU5M,GAAG,IAAI2P,EAAE,IAAIwN,eAAexN,EAAEyN,KAAK5Q,EAAEoN,OAAOpN,EAAE6M,KAAI,GAAI/gB,OAAOC,KAAKiU,EAAEgM,SAAS5d,SAAQ,SAAUoF,GAAG,OAAO2P,EAAE0N,iBAAiBrd,EAAEwM,EAAEgM,QAAQxY,GAAI,IAAG,IAAI3M,EAAE8iB,EAAE,SAAS3J,EAAEnZ,GAAG,OAAOiqB,YAAW,WAAY3N,EAAE4N,QAAQvd,EAAE,CAACgZ,OAAO,EAAE1M,QAAQjZ,EAAEwnB,YAAW,GAAK,GAAE,IAAIrO,EAAE,EAAEhT,EAAE2c,EAAE3J,EAAE4N,eAAe,sBAAsBzK,EAAE6N,mBAAmB,WAAW7N,EAAE8N,WAAW9N,EAAE+N,aAAQ,IAASrqB,IAAIsqB,aAAankB,GAAGnG,EAAE8iB,EAAE3J,EAAE+N,gBAAgB,kBAAkB,EAAE5K,EAAEiO,QAAQ,WAAW,IAAIjO,EAAEqJ,SAAS2E,aAAankB,GAAGmkB,aAAatqB,GAAG2M,EAAE,CAACsM,QAAQqD,EAAEkO,cAAc,yBAAyB7E,OAAOrJ,EAAEqJ,OAAO6B,YAAW,IAAK,EAAElL,EAAEmO,OAAO,WAAWH,aAAankB,GAAGmkB,aAAatqB,GAAG2M,EAAE,CAACsM,QAAQqD,EAAEkO,aAAa7E,OAAOrJ,EAAEqJ,OAAO6B,YAAW,GAAI,EAAElL,EAAEyL,KAAK5O,EAAEjI,KAAM,GAAE,GAAGuW,QAAQ3E,EAAE8G,EAAE,CAACc,MAAM,SAASvR,EAAExM,GAAG,OAAO+c,GAAG5G,GAAGnhB,QAAQ+oB,MAAMvR,EAAExM,GAAG4M,QAAQC,SAAS,EAAEkO,KAAK,SAASvO,EAAExM,GAAG,OAAOgd,GAAG7G,GAAGnhB,QAAQ+lB,KAAKvO,EAAExM,GAAG4M,QAAQC,SAAS,EAAE7Y,MAAM,SAASwY,EAAExM,GAAG,OAAOhL,QAAQhB,MAAMwY,EAAExM,GAAG4M,QAAQC,SAAS,IAAImP,eAAe1L,IAAIyL,cAAczL,EAAE,CAACsH,cAAa,IAAKqD,WAAWnnB,EAAE,CAAC4jB,OAAO,CAACjB,EAAE,CAAC9gB,IAAI,GAAGiC,OAAO,SAAS,KAAKA,OAAO4U,KAAK8D,OAAOwJ,UAAUwB,EAAE,UAAUC,IAAI,CAACrH,QAAQ,UAAU5d,QAAQ,SAASulB,SAAS3D,EAAEC,uBAAuB,OAAOwD,EAAEhM,EAAEA,EAAEA,EAAE,CAAC,EAAEnW,GAAGnG,GAAG,CAAC,EAAE,CAACkpB,QAAQ,CAAC7Q,OAAO+Q,EAAErP,qBAAqBuP,EAAEqB,gBAAgBvB,EAAEwB,6BAA6BtB,EAAEuB,cAAc1B,EAAEtP,UAAU,SAASV,GAAG,OAAO,SAASxM,GAAG,OAAO7E,EAAEqR,EAAFrR,CAAK6E,EAAE,CAACuc,QAAQ,CAAC7Q,OAAOoR,EAAE1P,qBAAqBwP,EAAElQ,YAAYmQ,IAAI,CAAC,KAAK,CAAC,OAAOK,EAAE5mB,QAAQ,SAAS4mB,CAAE,CAAj7ald,wECDnF,IAAIme,EAAmB,SAAUC,GAC7B,MAAwB,oBAAbC,SACA,MAEQ9pB,MAAMmF,QAAQ0kB,GAAkBA,EAAe,GAAKA,GACnDE,cAAcC,IACtC,EACIC,EAAa,IAAIC,QACjBC,EAAoB,IAAID,QACxBE,EAAY,CAAC,EACbC,EAAY,EACZC,EAAa,SAAUhW,GACvB,OAAOA,IAASA,EAAK4R,MAAQoE,EAAWhW,EAAKiW,YACjD,EAwBIC,EAAyB,SAAUX,EAAgBU,EAAYE,EAAYC,GAC3E,IAAIC,EAxBa,SAAU7a,EAAQ6a,GACnC,OAAOA,EACF3jB,KAAI,SAAUkX,GACf,GAAIpO,EAAO8a,SAAS1M,GAChB,OAAOA,EAEX,IAAI2M,EAAkBP,EAAWpM,GACjC,OAAI2M,GAAmB/a,EAAO8a,SAASC,GAC5BA,GAEXpqB,QAAQhB,MAAM,cAAeye,EAAQ,0BAA2BpO,EAAQ,mBACjE,KACX,IACKzL,QAAO,SAAUoiB,GAAK,OAAOnR,QAAQmR,EAAI,GAClD,CAUkBqE,CAAeP,EAAYvqB,MAAMmF,QAAQ0kB,GAAkBA,EAAiB,CAACA,IACtFO,EAAUK,KACXL,EAAUK,GAAc,IAAIP,SAEhC,IAAIa,EAAgBX,EAAUK,GAC1BO,EAAc,GACdC,EAAiB,IAAIC,IACrBC,EAAiB,IAAID,IAAIP,GACzBS,EAAO,SAAU/lB,GACZA,IAAM4lB,EAAeI,IAAIhmB,KAG9B4lB,EAAejE,IAAI3hB,GACnB+lB,EAAK/lB,EAAGklB,YACZ,EACAI,EAAQtkB,QAAQ+kB,GAChB,IAAIE,EAAO,SAAUxb,GACZA,IAAUqb,EAAeE,IAAIvb,IAGlC9P,MAAMrB,UAAU0H,QAAQtG,KAAK+P,EAAO0E,UAAU,SAAUF,GACpD,GAAI2W,EAAeI,IAAI/W,GACnBgX,EAAKhX,OAEJ,CACD,IAAIiX,EAAOjX,EAAKkX,aAAad,GACzBe,EAAyB,OAATF,GAA0B,UAATA,EACjCG,GAAgBzB,EAAWtH,IAAIrO,IAAS,GAAK,EAC7CqX,GAAeZ,EAAcpI,IAAIrO,IAAS,GAAK,EACnD2V,EAAWnH,IAAIxO,EAAMoX,GACrBX,EAAcjI,IAAIxO,EAAMqX,GACxBX,EAAYzqB,KAAK+T,GACI,IAAjBoX,GAAsBD,GACtBtB,EAAkBrH,IAAIxO,GAAM,GAEZ,IAAhBqX,GACArX,EAAKsX,aAAanB,EAAY,QAE7BgB,GACDnX,EAAKsX,aAAalB,EAAkB,OAE5C,CACJ,GACJ,EAIA,OAHAY,EAAKf,GACLU,EAAehI,QACfoH,IACO,WACHW,EAAY3kB,SAAQ,SAAUiO,GAC1B,IAAIoX,EAAezB,EAAWtH,IAAIrO,GAAQ,EACtCqX,EAAcZ,EAAcpI,IAAIrO,GAAQ,EAC5C2V,EAAWnH,IAAIxO,EAAMoX,GACrBX,EAAcjI,IAAIxO,EAAMqX,GACnBD,IACIvB,EAAkBkB,IAAI/W,IACvBA,EAAKuX,gBAAgBnB,GAEzBP,EAAkBnH,OAAO1O,IAExBqX,GACDrX,EAAKuX,gBAAgBpB,EAE7B,MACAJ,IAGIJ,EAAa,IAAIC,QACjBD,EAAa,IAAIC,QACjBC,EAAoB,IAAID,QACxBE,EAAY,CAAC,EAErB,CACJ,EAQW0B,EAAa,SAAUjC,EAAgBU,EAAYE,QACvC,IAAfA,IAAyBA,EAAa,oBAC1C,IAAIE,EAAU3qB,MAAMsiB,KAAKtiB,MAAMmF,QAAQ0kB,GAAkBA,EAAiB,CAACA,IACvEkC,EAAmBxB,GAAcX,EAAiBC,GACtD,OAAKkC,GAILpB,EAAQpqB,KAAKL,MAAMyqB,EAAS3qB,MAAMsiB,KAAKyJ,EAAiBC,iBAAiB,iBAClExB,EAAuBG,EAASoB,EAAkBtB,EAAY,gBAJ1D,WAAc,OAAO,IAAM,CAK1C,qBChIA,IAAIwB,EAAU,CAEZC,KAAM,CAEJC,cAAe,SAASC,GACtB,OAAOH,EAAQI,IAAIF,cAAcG,SAAS5I,mBAAmB0I,IAC/D,EAGAG,cAAe,SAASC,GACtB,OAAOC,mBAAmBC,OAAOT,EAAQI,IAAIE,cAAcC,IAC7D,GAIFH,IAAK,CAEHF,cAAe,SAASC,GACtB,IAAK,IAAII,EAAQ,GAAIjtB,EAAI,EAAGA,EAAI6sB,EAAI1sB,OAAQH,IAC1CitB,EAAMjsB,KAAyB,IAApB6rB,EAAIO,WAAWptB,IAC5B,OAAOitB,CACT,EAGAD,cAAe,SAASC,GACtB,IAAK,IAAIJ,EAAM,GAAI7sB,EAAI,EAAGA,EAAIitB,EAAM9sB,OAAQH,IAC1C6sB,EAAI7rB,KAAKwc,OAAO6P,aAAaJ,EAAMjtB,KACrC,OAAO6sB,EAAIxM,KAAK,GAClB,IAIJnhB,EAAOC,QAAUutB,uBChCjB,OAOC,WACA,aAEA,IAAIY,EAAS,CAAC,EAAE1O,eAGhB,SAAS2O,IAGR,IAFA,IAAIC,EAAU,GAELxtB,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAC1C,IAAIjB,EAAMqB,UAAUJ,GACpB,GAAKjB,EAAL,CAEA,IAAI0uB,SAAiB1uB,EAErB,GAAgB,WAAZ0uB,GAAoC,WAAZA,EAC3BD,EAAQxsB,KAAKjC,QACP,GAAI0B,MAAMmF,QAAQ7G,IACxB,GAAIA,EAAIoB,OAAQ,CACf,IAAIutB,EAAQH,EAAW5sB,MAAM,KAAM5B,GAC/B2uB,GACHF,EAAQxsB,KAAK0sB,EAEf,OACM,GAAgB,WAAZD,EAAsB,CAChC,GAAI1uB,EAAIuQ,WAAa9K,OAAOpF,UAAUkQ,WAAavQ,EAAIuQ,SAASA,WAAWqe,SAAS,iBAAkB,CACrGH,EAAQxsB,KAAKjC,EAAIuQ,YACjB,QACD,CAEA,IAAK,IAAIzN,KAAO9C,EACXuuB,EAAO9sB,KAAKzB,EAAK8C,IAAQ9C,EAAI8C,IAChC2rB,EAAQxsB,KAAKa,EAGhB,CAxBkB,CAyBnB,CAEA,OAAO2rB,EAAQnN,KAAK,IACrB,CAEqCnhB,EAAOC,SAC3CouB,EAAWK,QAAUL,EACrBruB,EAAOC,QAAUouB,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CApDA,sBCPA,IACMM,EAGJC,EAHID,EACE,mEAENC,EAAQ,CAENC,KAAM,SAASxuB,EAAGoG,GAChB,OAAQpG,GAAKoG,EAAMpG,IAAO,GAAKoG,CACjC,EAGAqoB,KAAM,SAASzuB,EAAGoG,GAChB,OAAQpG,GAAM,GAAKoG,EAAOpG,IAAMoG,CAClC,EAGAsoB,OAAQ,SAAS1uB,GAEf,GAAIA,EAAEqJ,aAAeslB,OACnB,OAA0B,SAAnBJ,EAAMC,KAAKxuB,EAAG,GAAsC,WAApBuuB,EAAMC,KAAKxuB,EAAG,IAIvD,IAAK,IAAIS,EAAI,EAAGA,EAAIT,EAAEY,OAAQH,IAC5BT,EAAES,GAAK8tB,EAAMG,OAAO1uB,EAAES,IACxB,OAAOT,CACT,EAGA4uB,YAAa,SAAS5uB,GACpB,IAAK,IAAI0tB,EAAQ,GAAI1tB,EAAI,EAAGA,IAC1B0tB,EAAMjsB,KAAKgjB,KAAKC,MAAsB,IAAhBD,KAAKE,WAC7B,OAAO+I,CACT,EAGAmB,aAAc,SAASnB,GACrB,IAAK,IAAIoB,EAAQ,GAAIruB,EAAI,EAAG2F,EAAI,EAAG3F,EAAIitB,EAAM9sB,OAAQH,IAAK2F,GAAK,EAC7D0oB,EAAM1oB,IAAM,IAAMsnB,EAAMjtB,IAAO,GAAK2F,EAAI,GAC1C,OAAO0oB,CACT,EAGAC,aAAc,SAASD,GACrB,IAAK,IAAIpB,EAAQ,GAAItnB,EAAI,EAAGA,EAAmB,GAAf0oB,EAAMluB,OAAawF,GAAK,EACtDsnB,EAAMjsB,KAAMqtB,EAAM1oB,IAAM,KAAQ,GAAKA,EAAI,GAAO,KAClD,OAAOsnB,CACT,EAGAsB,WAAY,SAAStB,GACnB,IAAK,IAAIuB,EAAM,GAAIxuB,EAAI,EAAGA,EAAIitB,EAAM9sB,OAAQH,IAC1CwuB,EAAIxtB,MAAMisB,EAAMjtB,KAAO,GAAGsP,SAAS,KACnCkf,EAAIxtB,MAAiB,GAAXisB,EAAMjtB,IAAUsP,SAAS,KAErC,OAAOkf,EAAInO,KAAK,GAClB,EAGAoO,WAAY,SAASD,GACnB,IAAK,IAAIvB,EAAQ,GAAIlJ,EAAI,EAAGA,EAAIyK,EAAIruB,OAAQ4jB,GAAK,EAC/CkJ,EAAMjsB,KAAK0tB,SAASF,EAAI5G,OAAO7D,EAAG,GAAI,KACxC,OAAOkJ,CACT,EAGA0B,cAAe,SAAS1B,GACtB,IAAK,IAAI2B,EAAS,GAAI5uB,EAAI,EAAGA,EAAIitB,EAAM9sB,OAAQH,GAAK,EAElD,IADA,IAAI6uB,EAAW5B,EAAMjtB,IAAM,GAAOitB,EAAMjtB,EAAI,IAAM,EAAKitB,EAAMjtB,EAAI,GACxDwnB,EAAI,EAAGA,EAAI,EAAGA,IACb,EAAJxnB,EAAY,EAAJwnB,GAAwB,EAAfyF,EAAM9sB,OACzByuB,EAAO5tB,KAAK6sB,EAAUlG,OAAQkH,IAAY,GAAK,EAAIrH,GAAM,KAEzDoH,EAAO5tB,KAAK,KAElB,OAAO4tB,EAAOvO,KAAK,GACrB,EAGAyO,cAAe,SAASF,GAEtBA,EAASA,EAAOnR,QAAQ,iBAAkB,IAE1C,IAAK,IAAIwP,EAAQ,GAAIjtB,EAAI,EAAG+uB,EAAQ,EAAG/uB,EAAI4uB,EAAOzuB,OAC9C4uB,IAAU/uB,EAAI,EACH,GAAT+uB,GACJ9B,EAAMjsB,MAAO6sB,EAAU3oB,QAAQ0pB,EAAOjH,OAAO3nB,EAAI,IAC1CgkB,KAAKgL,IAAI,GAAI,EAAID,EAAQ,GAAK,IAAgB,EAARA,EACtClB,EAAU3oB,QAAQ0pB,EAAOjH,OAAO3nB,MAAS,EAAY,EAAR+uB,GAEtD,OAAO9B,CACT,GAGF/tB,EAAOC,QAAU2uB,kCC5FnB5uB,EAAOC,QAAUqF,OAAOyqB,oJCUjB,MAAMC,EAAsCA,KAC/C,MAAM,iBAAEC,IAAqBC,EAAAA,EAAAA,MAU7B,OARiBC,IACb,QAAYxwB,IAARwwB,EAIJ,MAAsB,iBAARA,EAAmBA,EAAMF,EAAiBE,EAAI,CAGlD,iBCJX,MAAMC,EAAQC,EAAAA,YACjB,CAACC,EAAOC,KACJ,MAAMC,EAAaR,IASbS,EAAsBC,EAAAA,GAAAA,QACvB/tB,GAAgB,UAARA,GAA2B,WAARA,KAGzBguB,EAAiBC,IAAY3gB,EAAAA,EAAAA,IAAMqgB,EAAOG,IAEzCN,IAAKU,EAASC,UAAWC,KAAkBC,GAASJ,EACtDT,EAAMK,EAAWK,GAEvB,OACIR,EAAAA,cAAA,MAAA/qB,OAAAyqB,OAAA,CACIQ,IAAKA,EACLJ,IAAKA,EACLW,WAAWG,EAAAA,EAAAA,IACP,eACAC,EAAAA,EAAAA,IAAI,IAAKP,IACTI,IAEAC,GACN,iBCjDP,MAAMG,EAAsB,SAACC,GAGhC,YAHsD,IAAtBA,IAAAA,EAAyB,IAIpC,iBAAVA,GAAsBA,EAAM3C,SAAS,yBAEpD,EAsBa4C,EAA0B,SACnCC,EACAle,GAEA,QAHgB,IAAhBke,IAAAA,EAAmB,SACc,IAAjCle,IAAAA,EAAoC,CAAC,IAEhC+d,EAAoBG,GACrB,OAAOA,EAGX,MAAMC,EAAUD,EAASrhB,MAAM,KAAK,GAE9BuhB,EAAiBlsB,OAAOmsB,YAC1B,IAAIC,IAAIJ,GAAUK,aAAarM,WAG7BsM,EAAoCtsB,OAAOC,KAAK6N,GAAS5N,QAC3D,CAAC2J,EAAKxM,KAAS,IAADkvB,EACV,MAAMC,EAAc,CAChB,CAACnvB,GAEA,QAFGkvB,EAAGze,EACHzQ,UACH,IAAAkvB,OAAA,EAFMA,EAEJzhB,YAGP,GAAY,SAARzN,GAAkByQ,EAAQ2e,KAAM,CAChC,MAAM,MAAEC,EAAK,OAAEC,EAAM,EAAEjK,EAAI,EAAC,EAAEjC,EAAI,GAAM3S,EAAQ2e,KAGhDD,EAAYnvB,GAAQ,GAAEqvB,KAASC,MAAWjK,MAAMjC,GACpD,CAaA,MATY,YAARpjB,IACAmvB,EAAY,iBAAmB,QAIvB,UAARnvB,GAA2B,WAARA,IACnBmvB,EAAqB,QAAI,WAGtB,IACA3iB,KACA2iB,EACN,GAEL,CAAC,GAIC,SAAUN,IACZI,EAAgB,KAAI,QAGxB,MAAMM,EAAoC,IACnCV,KACAI,GAGP,OAAItsB,OAAOC,KAAK2sB,GAAWjxB,OACf,GAAEswB,KAAW,IAAIY,gBAAgBD,GAAW9hB,aAGjDkhB,CACX,ECrFac,EACL,KADKA,EAEL,IAFKA,EAGL,ICSKC,EAAoBhC,EAAAA,YAG/B,CAACC,EAAOC,KACN,MAAMC,EAAaR,KACb,IAAEG,EAAG,MAAEmC,EAAK,MAAEC,EAAK,MAAEC,EAAK,MAAEC,EAAK,oBAAEC,KAAwB1B,GAC7DV,GAEE,YAAEqC,EAAW,WAAEC,EAAU,UAAEC,GDmBDC,KAOe,IAPd,IACjCzM,EACA0M,MAAOC,EACPC,MAAOC,EACPC,MAAOC,EAAM,MACbX,EAAQ,CAAC,EAAC,oBACVC,EAAsB,GACEI,EAGxB,IAAKzM,IAAQ8K,EAAoB9K,GAC7B,MAAO,CACHsM,YAAa,GACbU,QAAS,GACTC,YAAa,GACbV,WAAY,SACZC,UAAW,IAInB,MAAMU,EAAKd,EAAMc,GACXC,EAAKf,EAAMe,IAAMpB,EACjBqB,EAAKhB,EAAMgB,IAAMrB,EACjBsB,EAAKjB,EAAMiB,IAAMtB,EAEjBuB,EAAuC,GAEvCC,EAAwBA,CAC1BC,EACAxN,EACAyN,KAEA,MAAMC,EAAqC,CACvCF,aACAR,QAAS,IAGTS,IACAC,EAAiBC,WAAaC,EAAAA,EAAYH,IAG9C,IACI,IAAII,EAAe,EACnBA,GAAgBxB,EAChBwB,IACF,CACE,MAAMC,EAAcN,EAAaK,EAK3B7V,EAAiB,CACnB8R,IALakB,EAAwBhL,EAAK,CAC1C2L,MAAOmC,IAKPA,eAGJJ,EAAiBV,QAAQvxB,KAAKuc,EAClC,CAEA,OAAO0V,CAAgB,EAG3B,IAAIpB,EAAsB,GAE1B,GAAIY,EAAI,CACJ,MAAMa,EAAeR,EAAsBL,EAAIlN,GAC/CsN,EAAYre,QAAQ8e,GAEpBzB,EAAcyB,EAAaf,QAAQ,GAAGlD,GAC1C,CAEA,MAAM4C,EAAQC,GAAU3M,EACxB,IAAKkN,GAAMA,IAAOC,EAAI,CAClB,MAAMa,EAAeT,EAAsBJ,EAAIT,EAAO,cACtDY,EAAYre,QAAQ+e,GAEpB1B,IAAgB0B,EAAahB,QAAQ,GAAGlD,GAC5C,CAEA,MAAM8C,EAAQC,GAAUH,EACxB,GAAIU,IAAOD,EAAI,CACX,MAAMc,EAAeV,EAAsBH,EAAIR,EAAO,cACtDU,EAAYre,QAAQgf,GAEpB3B,IAAgB2B,EAAajB,QAAQ,GAAGlD,GAC5C,CAGA,GAAIuD,IAAOD,EAAI,CACX,MAAMc,EAAeX,EAAsBF,EAFjCN,GAAUH,EAEkC,cACtDU,EAAYre,QAAQif,GAEpB5B,IAAgB4B,EAAalB,QAAQ,GAAGlD,GAC5C,CAEA,IAAIqE,EAAkC,GAClCb,EAAY1yB,OAAS,IAErBuzB,EAAmBb,EACdc,SAASC,GAAeA,EAAWrB,UACnCztB,QACG,CAACyY,EAAQjb,EAAOuE,IACZA,EAAK+K,WACDiiB,IAAA,IAAC,YAAER,GAAaQ,EAAA,OAAKR,IAAgB9V,EAAO8V,WAAW,KACtD/wB,KAIrB,MAAMwxB,EAAkBJ,EACnBnd,MAAK,CAAC7Q,EAAGC,IAAMD,EAAE2tB,YAAc1tB,EAAE0tB,cACjC5rB,KAAIssB,IAAA,IAAC,IAAE1E,EAAG,YAAEgE,GAAaU,EAAA,MAAM,GAAE1E,KAAOgE,IAAc,IACtDhT,KAAK,MAEJ2T,EAAiBnB,EAClBprB,KAAI,CAAAwsB,EAA6B3xB,KAAW,IAAvC,WAAE4wB,EAAU,WAAEH,GAAYkB,EAE5B,OAAI3xB,IAAUuwB,EAAY1yB,OAAS,EACvB,GAAE4yB,KAGN,GAAEG,KAAcH,IAAa,IAExC1S,KAAK,MAeV,MAAO,CACHwR,cACAU,QAASmB,EACTlB,YAfgBK,EAAYprB,KAAIysB,IAA8B,IAA7B,QAAE3B,EAAO,WAAEW,GAAYgB,EAMxD,MAAO,CACHC,MAAOjB,EACPkB,OAPW7B,EACVhc,MAAK,CAAC7Q,EAAGC,IAAMD,EAAE2tB,YAAc1tB,EAAE0tB,cACjC5rB,KAAI4sB,IAAA,IAAC,IAAEhF,EAAG,YAAEgE,GAAagB,EAAA,MAAM,GAAEhF,KAAOgE,IAAc,IACtDhT,KAAK,MAKT,IAODyR,WAAYgC,EACZ/B,UAAWiC,EACd,EClK8CM,CAAqB,CAChE/O,IAAKmK,EAAWL,GAChBgD,MAAO3C,EAAW8B,GAClBW,MAAOzC,EAAW+B,GAClBQ,MAAOvC,EAAWgC,GAClBC,QACAC,wBAGJ,OACIrC,EAAAA,cAACD,EAAK9qB,OAAAyqB,OAAA,CACFQ,IAAKA,EACLJ,IAAKwC,EACL0C,OAAQzC,EACRH,MAAOI,GACH7B,GACN,8NC1CV,SAASsE,EAA0C9wB,GAAQ+wB,EAAKC,IAC5D,OAAO1Q,KAAKyQ,IAAIC,EAAK1Q,KAAK0Q,IAAID,EAAK/wB,GACvC,iDCCA,MAAMixB,GAAuD,wBAAqB91B,kBCAH,IAAI+1B,EAA8B,EAQ7G,SAASC,KACT,gBAAiB,KACb,IAAIC,EAAcC,EAClB,MAAMC,EAAazK,SAASkC,iBAAiB,4BAI7C,OAHAlC,SAASE,KAAKwK,sBAAsB,aAAiD,QAAlCH,EAAeE,EAAW,UAAiC,IAAjBF,EAA0BA,EAAeI,KACtI3K,SAASE,KAAKwK,sBAAsB,YAAiD,QAAnCF,EAAgBC,EAAW,UAAkC,IAAlBD,EAA2BA,EAAgBG,KACxIN,IACO,KACiC,IAAhCA,GAAmCrK,SAASkC,iBAAiB,4BAA4B3lB,SAASiO,GAAOA,EAAKogB,WAElHP,GAA6B,CAChC,GACF,GACP,CACA,SAASM,IACL,MAAME,EAAU7K,SAAS8K,cAAc,QAIvC,OAHAD,EAAQ/I,aAAa,yBAA0B,IAC/C+I,EAAQE,SAAW,EACnBF,EAAQG,MAAMC,QAAU,mEACjBJ,CACX,CACA,MCD2GK,EAtBvE,CAChC,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,OACA,MACA,MAM+K/wB,QAAO,CAACgxB,EAAW3gB,KAClM,MAAM4gB,GAAqB,iBAAkB,CAACnG,EAAOoG,KACjD,MAAQC,QAASA,KAAaC,GAAmBtG,EAC3CuG,EAAOF,EAAU,KAAc9gB,EAIrC,OAHA,gBAAiB,KACbkO,OAAOR,OAAOuT,IAAI,cAAe,CAAI,GACtC,KACkB,mBAAqBD,GAAM,OAAqC,CAAC,EAAGD,EAAgB,CACrGrG,IAAKmG,IACN,IAGP,OADAD,EAAKM,YAAc,aAAalhB,IACzB,IACA2gB,EACH,CAAC3gB,GAAO4gB,EACX,GACF,CAAC,kBCpCJ,MAAMO,EAA2C,8BAC3CC,EAA6C,gCAC7CC,EAAsC,CACxCC,SAAS,EACTC,YAAY,GAKVC,GAA0D,iBAAkB,CAAC/G,EAAOoG,KACtF,MAAQY,KAAMA,GAAO,EAAQC,QAASA,GAAU,EAAQC,iBAAkBC,EAAuBC,mBAAoBC,KAA4BC,GAAetH,GACzJuH,EAAYC,IAAgB,cAAgB,MAC7CN,GAAmB,OAAsBC,GACzCC,GAAqB,OAAsBC,GAC3CI,GAAwB,YAAc,MACtCC,GAAe,OAAuBtB,GAAe7gB,GAAOiiB,EAAajiB,KAEzEoiB,GAAa,YAAc,CAC7BC,QAAQ,EACRC,QACI34B,KAAK04B,QAAS,CAClB,EACAE,SACI54B,KAAK04B,QAAS,CAClB,IACDG,SACH,gBAAiB,KACb,GAAId,EAAS,CACT,SAASe,EAAcza,GACnB,GAAIoa,EAAWC,SAAWL,EAAY,OACtC,MAAMpY,EAAS5B,EAAM4B,OACjBoY,EAAW1L,SAAS1M,GAASsY,EAAsBM,QAAU5Y,EAC5D8Y,EAA4BR,EAAsBM,QAAS,CAC5DG,QAAQ,GAEhB,CACA,SAASC,EAAe5a,IAChBoa,EAAWC,QAAWL,IACrBA,EAAW1L,SAAStO,EAAM6a,gBAAgBH,EAA4BR,EAAsBM,QAAS,CACtGG,QAAQ,IAEhB,CAGA,OAFAnN,SAASsN,iBAAiB,UAAWL,GACrCjN,SAASsN,iBAAiB,WAAYF,GAC/B,KACHpN,SAASuN,oBAAoB,UAAWN,GACxCjN,SAASuN,oBAAoB,WAAYH,EAAe,CAEhE,IACD,CACClB,EACAM,EACAI,EAAWC,UAEf,gBAAiB,KACb,GAAIL,EAAY,CACZgB,EAAuCtQ,IAAI0P,GAC3C,MAAMa,EAA2BzN,SAAS0N,cAE1C,IAD4BlB,EAAW1L,SAAS2M,GACtB,CACtB,MAAME,EAAa,IAAIC,YAAYjC,EAA0CE,GAC7EW,EAAWc,iBAAiB3B,EAA0CQ,GACtEK,EAAWqB,cAAcF,GACpBA,EAAWG,oBA2E5B,SAA0CC,GAAcZ,OAAQA,GAAS,GAAW,CAAC,GACrF,MAAMM,EAA2BzN,SAAS0N,cAC1C,IAAK,MAAMM,KAAaD,EAIpB,GAHAb,EAA4Bc,EAAW,CACnCb,OAAQA,IAERnN,SAAS0N,gBAAkBD,EAA0B,MAEjE,CAlFoBQ,EAqLuBC,EArL4CC,EAA4C3B,GAsLxH0B,EAAM3zB,QAAQ4P,GAAwB,MAAjBA,EAAKikB,WAtL4G,CACzHjB,QAAQ,IAERnN,SAAS0N,gBAAkBD,GAA0BP,EAA4BV,GAE7F,CACA,MAAO,KACHA,EAAWe,oBAAoB5B,EAA0CQ,GAGzElN,YAAW,KACP,MAAMoP,EAAe,IAAIT,YAAYhC,EAA4CC,GACjFW,EAAWc,iBAAiB1B,EAA4CS,GACxEG,EAAWqB,cAAcQ,GACpBA,EAAaP,kBAAkBZ,EAA4BO,QAA2EA,EAA2BzN,SAASE,KAAM,CACjLiN,QAAQ,IAGZX,EAAWe,oBAAoB3B,EAA4CS,GAC3EmB,EAAuC5C,OAAOgC,EAAW,GAC1D,EAAE,CAEb,CA+JR,IAA2CsB,CA/JnC,GACD,CACC1B,EACAL,EACAE,EACAO,IAEJ,MAAM0B,GAAgB,kBAAoB9b,IACtC,IAAKyZ,IAASC,EAAS,OACvB,GAAIU,EAAWC,OAAQ,OACvB,MAAM0B,EAAyB,QAAd/b,EAAMlb,MAAkBkb,EAAMgc,SAAWhc,EAAMic,UAAYjc,EAAMkc,QAC5EC,EAAiB3O,SAAS0N,cAChC,GAAIa,GAAYI,EAAgB,CAC5B,MAAMC,EAAYpc,EAAMqc,eACjBC,EAAOC,GAiDtB,SAAgDH,GAChD,MAAMb,EAAaI,EAA4CS,GACzDE,EAAQE,EAAkCjB,EAAYa,GACtDG,EAAOC,EAAkCjB,EAAW/Q,UAAW4R,GACrE,MAAO,CACHE,EACAC,EAER,CAzDkCE,CAAuCL,GAC3BE,GAASC,EAIlCvc,EAAM0c,UAAYP,IAAmBI,EAK/Bvc,EAAM0c,UAAYP,IAAmBG,IAC5Ctc,EAAM2c,iBACFlD,GAAMiB,EAA4B6B,EAAM,CACxC5B,QAAQ,MAPZ3a,EAAM2c,iBACFlD,GAAMiB,EAA4B4B,EAAO,CACzC3B,QAAQ,KALZwB,IAAmBC,GAAWpc,EAAM2c,gBAchD,IACD,CACClD,EACAC,EACAU,EAAWC,SAEf,OAAqB,mBAAqB,OAAsB,OAAqC,CACjG9B,UAAW,GACZwB,EAAY,CACXrH,IAAKyH,EACLyC,UAAWd,IACZ,IAuCH,SAASH,EAA4CS,GACrD,MAAMS,EAAQ,GACRC,EAAStP,SAASuP,iBAAiBX,EAAWY,WAAWC,aAAc,CACzEC,WAAallB,IACT,MAAMmlB,EAAiC,UAAjBnlB,EAAK4jB,SAAqC,WAAd5jB,EAAKpV,KACvD,OAAIoV,EAAKolB,UAAYplB,EAAKqlB,QAAUF,EAAsBH,WAAWM,YAG9DtlB,EAAKugB,UAAY,EAAIyE,WAAWO,cAAgBP,WAAWM,WAAW,IAGrF,KAAMR,EAAOU,YAAWX,EAAM54B,KAAK64B,EAAOW,aAE1C,OAAOZ,CACX,CAII,SAASL,EAAkCkB,EAAUtB,GACrD,IAAK,MAAM/D,KAAWqF,EAElB,IAAKC,EAA+BtF,EAAS,CACzCuF,KAAMxB,IACN,OAAO/D,CAEnB,CACA,SAASsF,EAA+B3lB,GAAQ4lB,KAAMA,IAClD,GAA0C,WAAtCC,iBAAiB7lB,GAAM8lB,WAAyB,OAAO,EAC3D,KAAM9lB,GAAK,CAEP,QAAalW,IAAT87B,GAAsB5lB,IAAS4lB,EAAM,OAAO,EAChD,GAAuC,SAAnCC,iBAAiB7lB,GAAM+lB,QAAoB,OAAO,EACtD/lB,EAAOA,EAAKgmB,aAChB,CACA,OAAO,CACX,CAIA,SAAStD,EAA4BrC,GAAWsC,OAAQA,GAAS,GAAW,CAAC,GAEzE,GAAItC,GAAWA,EAAQ4F,MAAO,CAC1B,MAAMhD,EAA2BzN,SAAS0N,cAC1C7C,EAAQ4F,MAAM,CACVC,eAAe,IAEf7F,IAAY4C,GAVxB,SAAiD5C,GAC7C,OAAOA,aAAmB8F,kBAAoB,WAAY9F,CAC9D,CAQoD+F,CAAwC/F,IAAYsC,GAAQtC,EAAQsC,QACpH,CACJ,CAGqG,MAAMK,EAC3G,WACmE,IAAIqD,EAAQ,GAC3E,MAAO,CACH3T,IAAK0P,GAED,MAAMkE,EAAmBD,EAAM,GAC3BjE,IAAekE,IAAkBA,SAA4DA,EAAiBhE,SAElH+D,EAAQE,EAAkCF,EAAOjE,GACjDiE,EAAM5mB,QAAQ2iB,EAClB,EACAhC,OAAQgC,GACJ,IAAIoE,EACJH,EAAQE,EAAkCF,EAAOjE,GACxB,QAAxBoE,EAAUH,EAAM,UAA4B,IAAZG,GAAsBA,EAAQjE,QACnE,EAER,CAlBoJkE,GAmBpJ,SAASF,EAAkCjuB,EAAOqH,GAC9C,MAAM+mB,EAAe,IACdpuB,GAED/K,EAAQm5B,EAAav2B,QAAQwP,GAEnC,OADe,IAAXpS,GAAcm5B,EAAa95B,OAAOW,EAAO,GACtCm5B,CACX,oCCtPA,MAsB2G,EAtBvE,CAChC,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,OACA,MACA,MAM+K/2B,QAAO,CAACgxB,EAAW3gB,KAClM,MAAM4gB,GAAqB,iBAAkB,CAACnG,EAAOoG,KACjD,MAAQC,QAASA,KAAaC,GAAmBtG,EAC3CuG,EAAOF,EAAU,KAAc9gB,EAIrC,OAHA,gBAAiB,KACbkO,OAAOR,OAAOuT,IAAI,cAAe,CAAI,GACtC,KACkB,mBAAqBD,GAAM,OAAqC,CAAC,EAAGD,EAAgB,CACrGrG,IAAKmG,IACN,IAGP,OADAD,EAAKM,YAAc,aAAalhB,IACzB,IACA2gB,EACH,CAAC3gB,GAAO4gB,EACX,GACF,CAAC,iECGJ,MAAM+F,EAAkC,CACpC,IACA,QACA,UACA,aAEEC,EAAuC,CACzC,IACA,SAIuGC,EAAoC,UACxIC,EAAkCC,EAAqCC,GClD9E,SAAmD1zB,GAGkD,MAAM2zB,EAAgB3zB,EAAO,sBACvH4zB,EAAyBC,IAAyB,OAA0BF,IAC5EG,EAAwBC,GAAwBH,EAAwBD,EAAe,CAC1FK,cAAe,CACX9E,QAAS,MAEb+E,QAAS,IAAIC,MAEXC,EAAsBhN,IACxB,MAAQiN,MAAOA,EAAQxnB,SAAUA,GAAcua,EACzCC,EAAM,SAAoB,MAC1B6M,EAAU,SAAoB,IAAIC,KAAOhF,QAC/C,OAAqB,gBAA2B4E,EAAwB,CACpEM,MAAOA,EACPH,QAASA,EACTD,cAAe5M,GAChBxa,EAAS,EAOuFynB,EAAuBr0B,EAAO,iBAC/Hs0B,EAA+B,cAAwB,CAACnN,EAAOoG,KACjE,MAAQ6G,MAAOA,EAAQxnB,SAAUA,GAAcua,EACzCjvB,EAAU67B,EAAqBM,EAAsBD,GACrDvF,GAAe,OAAuBtB,EAAcr1B,EAAQ87B,eAClE,OAAqB,gBAA2B,KAAa,CACzD5M,IAAKyH,GACNjiB,EAAS,IAOuF2nB,EAAiBv0B,EAAO,qBACzHw0B,EAAiB,6BACjBC,EAAmC,cAAwB,CAACtN,EAAOoG,KACrE,MAAQ6G,MAAOA,EAAQxnB,SAAUA,KAAc8nB,GAAavN,EACtDC,EAAM,SAAoB,MAC1ByH,GAAe,OAAuBtB,EAAcnG,GACpDlvB,EAAU67B,EAAqBQ,EAAgBH,GASrD,OARA,aAAuB,KACnBl8B,EAAQ+7B,QAAQ/Y,IAAIkM,EAAK,CACrBA,IAAKA,KACFsN,IAEA,KAASx8B,EAAQ+7B,QAAQ7Y,OAAOgM,EACvC,KAEiB,gBAA2B,KAAa,CACzD,CAACoN,GAAiB,GAClBpN,IAAKyH,GACNjiB,EAAS,IAuBhB,MAAO,CACH,CACI+nB,SAAUR,EACVS,KAAMN,EACNO,SAAUJ,GApB+E,SAAuBL,GACpH,MAAMl8B,EAAU67B,EAAqB/zB,EAAO,qBAAsBo0B,GAalE,OAZiB,eAAyB,KACtC,MAAMU,EAAiB58B,EAAQ87B,cAAc9E,QAC7C,IAAK4F,EAAgB,MAAO,GAC5B,MAAMC,EAAe38B,MAAMsiB,KAAKoa,EAAe1Q,iBAAiB,IAAIoQ,OAIpE,OAHcp8B,MAAMsiB,KAAKxiB,EAAQ+7B,QAAQ13B,UACd2R,MAAK,CAAC7Q,EAAGC,IAAIy3B,EAAal4B,QAAQQ,EAAE+pB,IAAI8H,SAAW6F,EAAal4B,QAAQS,EAAE8pB,IAAI8H,UAEtF,GACpB,CACCh3B,EAAQ87B,cACR97B,EAAQ+7B,SAGhB,EAQIJ,EAER,CDxC6H,CAAwBN,IAC9IyB,EAA2CC,IAA6C,OAA0B1B,EAAmC,CACxJG,EACA,OAEEwB,GAAuC,WACtCC,EAAsCC,GAA0CJ,EAA0CzB,IAC1H8B,EAAmDC,GAAuDN,EAA0CzB,GACrJgC,EAA6CpO,IAC/C,MAAQqO,cAAeA,EAAgB5oB,SAAUA,EAAWqU,KAAMwU,EAAWC,YAAaA,EAAcC,aAAcA,EAAet6B,MAAOu6B,EAAYC,aAAcA,EAAeC,cAAeA,EAAgBC,IAAKA,EAAM/1B,KAAMA,EAAOg2B,aAAcA,EAAelE,SAAUA,EAAWmE,SAAUA,GAAc9O,EAChT+O,EAAchB,EAAqCM,IAClDW,EAASC,IAAc,cAAgB,OACvCC,EAAWC,IAAgB,cAAgB,OAC3CC,EAAsBC,IAA2B,eAAgB,GAClEC,ELjE2F,SAAmDC,GACpJ,MAAMC,GAAY,gBAAkBrK,GACpC,OAAOoK,GAAYC,GAAa,KACpC,CK8DsB,CAAoBZ,IAC/B9U,GAAO,EAAO2V,IAAW,OAA4B,CACxDC,KAAMpB,EACNqB,YAAapB,EACbqB,SAAUpB,KAEPt6B,EAAO27B,IAAY,OAA4B,CAClDH,KAAMjB,EACNkB,YAAajB,EACbkB,SAAUjB,IAERmB,GAA2B,YAAc,MACzCC,GAAgBf,GAAUzoB,QAAQyoB,EAAQgB,QAAQ,UACjDC,EAAkBC,IAAuB,cAAgB,IAAI/T,KAK9DgU,EAAkBl/B,MAAMsiB,KAAK0c,GAAkBh4B,KAAKm4B,GAASA,EAAOpQ,MAAM9rB,QAC9E2c,KAAK,KACP,OAAqB,mBAAqB,KAAake,GAA2B,mBAAqBf,EAAsC,CACzIc,SAAUA,EACV7B,MAAOoB,EACPW,QAASA,EACTqB,gBAAiBpB,EACjBC,UAAWA,EACXoB,kBAAmBnB,EACnBC,qBAAsBA,EACtBmB,6BAA8BlB,EAC9BmB,WAAW,SACXt8B,MAAOA,EACPy6B,cAAekB,EACf/V,KAAMA,EACN0U,aAAciB,EACdb,IAAKU,EACLQ,yBAA0BA,EAC1BnF,SAAUA,IACG,mBAAqB0B,EAAiCmB,SAAU,CAC7EP,MAAOoB,IACM,mBAAqBH,EAAmD,CACrFjB,MAAOjN,EAAMqO,cACboC,mBAAmB,kBAAoBL,IACnCF,GAAqBQ,GAAO,IAAIvU,IAAIuU,GAAMzY,IAAImY,IAC7C,GACF,IACHO,sBAAsB,kBAAoBP,IACtCF,GAAqBQ,IACjB,MAAME,EAAa,IAAIzU,IAAIuU,GAE3B,OADAE,EAAW3c,OAAOmc,GACXQ,CAAU,GACnB,GACH,KACJnrB,IAAYsqB,GAA8B,mBAAqBc,GAAoC,CAClGx+B,IAAK89B,EACL,eAAe,EACfrB,SAAUA,EACVhJ,UAAW,EACXjtB,KAAMA,EACNg2B,aAAcA,EACd36B,MAAOA,EAEP07B,SAAWriB,GAAQsiB,EAAStiB,EAAM4B,OAAOjb,OAEzCy2B,SAAUA,QACDt7B,IAAV6E,GAAoC,mBAAqB,SAAU,CAClEA,MAAO,KACN,KAAMjD,MAAMsiB,KAAK0c,IAAqB,MAAM,EAOsDa,EAAqC,gBAC1IC,GAAyD,iBAAkB,CAAC/Q,EAAOoG,KACrF,MAAQiI,cAAeA,EAAgB1D,SAAUA,GAAW,KAAWqG,GAAiBhR,EAClF+O,EAAchB,EAAqCM,GACnDt9B,EAAUk9B,EAAuC6C,EAAoCzC,GACrF4C,EAAalgC,EAAQ45B,UAAYA,EACjCjD,GAAe,OAAuBtB,EAAcr1B,EAAQs/B,iBAC5Da,EAAW5E,EAAoC+B,IAC9C8C,EAAWC,EAAuBC,GAAkBC,IAA0ClpB,IACjG,MAAMmpB,EAAeL,IAAW57B,QAAQ4P,IAAQA,EAAKylB,WAE/C6G,EAAcD,EAAa17B,MAAMqP,GAAOA,EAAKhR,QAAUnD,EAAQmD,QAE/Du9B,EAAWC,GAAmCH,EAAcnpB,EAAQopB,QACzDniC,IAAboiC,GAAwB1gC,EAAQ49B,cAAc8C,EAASv9B,MAAM,IAE/Dy9B,EAAa,KACVV,IACDlgC,EAAQy9B,cAAa,GACrB6C,IACJ,EAEJ,OAAqB,mBAAqB,MAAe,OAAqC,CAC1FhL,SAAS,GACV0I,IAA4B,mBAAqB,UAAyB,OAAqC,CAC9G5+B,KAAM,SACNyhC,KAAM,WACN,gBAAiB7gC,EAAQy/B,UACzB,gBAAiBz/B,EAAQ+oB,KACzB,gBAAiB/oB,EAAQ+9B,SACzB,oBAAqB,OACrBF,IAAK79B,EAAQ69B,IACb,aAAc79B,EAAQ+oB,KAAO,OAAS,SACtC6Q,SAAUsG,EACV,gBAAiBA,EAAa,QAAK5hC,EACnC,wBAAsCA,IAAlB0B,EAAQmD,MAAsB,QAAK7E,GACxD2hC,EAAc,CACb/Q,IAAKyH,EAELmK,SAAS,OAA4Bb,EAAaa,SAAUtkB,IAMxDA,EAAMqc,cAAc4B,OAAO,IAE/BsG,eAAe,OAA4Bd,EAAac,eAAgBvkB,IAGpE,MAAM4B,EAAS5B,EAAM4B,OACjBA,EAAO4iB,kBAAkBxkB,EAAMykB,YAAY7iB,EAAO8iB,sBAAsB1kB,EAAMykB,WAG7D,IAAjBzkB,EAAM2kB,SAAkC,IAAlB3kB,EAAMic,UAC5BmI,IACA5gC,EAAQ++B,yBAAyB/H,QAAU,CACvCrQ,EAAGlD,KAAK2d,MAAM5kB,EAAM6kB,OACpB3c,EAAGjB,KAAK2d,MAAM5kB,EAAM8kB,QAExB9kB,EAAM2c,iBACV,IAEJC,WAAW,OAA4B6G,EAAa7G,WAAY5c,IAC5D,MAAM+kB,EAAsC,KAAtBnB,EAAUpJ,QACVxa,EAAMic,SAAWjc,EAAMgc,QAAUhc,EAAMkc,SAClB,IAArBlc,EAAMlb,IAAI1B,QAAcygC,EAAsB7jB,EAAMlb,KACtEigC,GAA+B,MAAd/kB,EAAMlb,KACvB65B,EAAgC/N,SAAS5Q,EAAMlb,OAC/Cs/B,IACApkB,EAAM2c,iBACV,OAEJ,IAOmGqI,EAAmC,cACxIC,IAA0D,iBAAkB,CAACxS,EAAOoG,KAEtF,MAAQiI,cAAeA,EAAgB7N,UAAWA,EAAYuF,MAAOA,EAAQtgB,SAAUA,EAAWgtB,YAAaA,KAAiBC,GAAe1S,EACzIjvB,EAAUk9B,EAAuCsE,EAAkClE,IACjFkC,6BAA8BA,GAAkCx/B,EAClE4hC,OAA2BtjC,IAAboW,EACdiiB,GAAe,OAAuBtB,EAAcr1B,EAAQu/B,mBAOlE,OANA,QAAuB,KACnBC,EAA6BoC,EAAY,GAC1C,CACCpC,EACAoC,KAEiB,mBAAqB,QAAuB,OAAqC,CAAC,EAAGD,EAAY,CAClHzS,IAAKyH,EAEL3B,MAAO,CACH6M,cAAe,eAEDvjC,IAAlB0B,EAAQmD,YAAuC7E,IAAhBojC,EAA4BA,EAAchtB,EAAS,IAQpFotB,IAA0D,iBAAkB,CAAC7S,EAAOoG,KACtF,MAAQiI,cAAeA,EAAgB5oB,SAAUA,KAAcqtB,GAAc9S,EAC7E,OAAqB,mBAAqB,QAAuB,OAAqC,CAClG,eAAe,GAChB8S,EAAW,CACV7S,IAAKmG,IACL3gB,GAAY,IAAI,IAkBmFstB,GAAqC,gBAC1IC,IAA0D,iBAAkB,CAAChT,EAAOoG,KACtF,MAAMr1B,EAAUk9B,EAAuC8E,GAAoC/S,EAAMqO,gBAC1F4E,EAAUC,IAAe,gBAIhC,IAHA,QAAuB,KACnBA,EAAY,IAAIC,iBAAmB,GACpC,KACEpiC,EAAQ+oB,KAAM,CACf,MAAMsZ,EAAOH,EACb,OAAOG,GAAqB,mBAAkC,mBAAqBC,GAA6C,CAC5HpG,MAAOjN,EAAMqO,gBACA,mBAAqBhC,EAAiCoB,KAAM,CACzER,MAAOjN,EAAMqO,gBACA,mBAAqB,MAAO,KAAMrO,EAAMva,YAAa2tB,GAAQ,IAClF,CACA,OAAqB,mBAAqBE,IAAyC,OAAqC,CAAC,EAAGtT,EAAO,CAC/HC,IAAKmG,IACN,IAOoGmN,GAAuC,IAC3IF,GAA6CG,IAAiD3F,EAA0CkF,IAEzIO,IAAwD,iBAAkB,CAACtT,EAAOoG,KACpF,MAAQiI,cAAeA,EAAgBn8B,SAAUA,EAAW,eAAiBuhC,iBAAkBA,EAAmBC,gBAAiBA,EAAkBC,qBAAsBA,EAAuBC,KAElMA,EAAOC,WAAYA,EAAaC,MAAOA,EAAQC,YAAaA,EAAcC,aAAcA,EAAeC,kBAAmBA,EAAoBC,iBAAkBA,EAAmBC,OAAQA,EAASC,iBAAkBA,EAAmBC,gBAAiBA,KACvPC,GAAiBtU,EACdjvB,EAAUk9B,EAAuC8E,GAAoC1E,IACpFrlB,EAASurB,IAAc,cAAgB,OACvCC,EAAUC,IAAe,cAAgB,MAC1C/M,GAAe,OAAuBtB,GAAe7gB,GAAOgvB,EAAWhvB,MAEtEmvB,EAAcC,IAAmB,cAAgB,OACjDC,EAAkBC,IAAuB,cAAgB,MAC1D3D,EAAW5E,EAAoC+B,IAC9CyG,EAAcC,IAAmB,eAAgB,GAClDC,GAAyB,aAAc,IAC7C,gBAAiB,KACb,GAAIhsB,EAAS,OAAO,QAAkBA,EAAQ,GAC/C,CACCA,IAGJ,IACA,MAAMisB,GAAa,kBAAoBnM,IACnC,MAAOoM,KAAcC,GAAajE,IAAWj5B,KAAKiN,GAAOA,EAAK+a,IAAI8H,WAE3DqN,GAAYD,EAAUjkC,OAAO,GAC9BmkC,EAA6Bta,SAAS0N,cAC5C,IAAK,MAAMM,KAAaD,EAAW,CAE/B,GAAIC,IAAcsM,EAA4B,OAO9C,GANAtM,SAA8CA,EAAUuM,eAAe,CACnEC,MAAO,YAEPxM,IAAcmM,GAAaV,IAAUA,EAASgB,UAAY,GAC1DzM,IAAcqM,GAAYZ,IAAUA,EAASgB,UAAYhB,EAASiB,cACtE1M,SAA8CA,EAAUyC,QACpDzQ,SAAS0N,gBAAkB4M,EAA4B,MAC/D,IACD,CACCnE,EACAsD,IAEEkB,GAAoB,kBAAmB,IAAIT,EAAW,CACpDP,EACA1rB,KAEN,CACEisB,EACAP,EACA1rB,KAGJ,gBAAiB,KACT8rB,GAAcY,GAAmB,GACtC,CACCZ,EACAY,IAGJ,MAAQlH,aAAcA,EAAesB,yBAA0BA,GAA8B/+B,GAC7F,gBAAiB,KACb,GAAIiY,EAAS,CACT,IAAI2sB,EAAmB,CACnBje,EAAG,EACHjC,EAAG,GAEP,MAAMmgB,EAAqBroB,IACvB,IAAIsoB,EAAuBC,EAAwBC,EAAwBC,EAC3EL,EAAmB,CACfje,EAAGlD,KAAKyhB,IAAIzhB,KAAK2d,MAAM5kB,EAAM6kB,QAAsL,QAA3KyD,EAAwF,QAA/DC,EAAyBhG,EAAyB/H,eAAgD,IAA3B+N,OAAoC,EAASA,EAAuBpe,SAAyC,IAA1Bme,EAAmCA,EAAwB,IACtRpgB,EAAGjB,KAAKyhB,IAAIzhB,KAAK2d,MAAM5kB,EAAM8kB,QAAuL,QAA5K0D,EAAyF,QAA/DC,EAAyBlG,EAAyB/H,eAAgD,IAA3BiO,OAAoC,EAASA,EAAuBvgB,SAA0C,IAA3BsgB,EAAoCA,EAAyB,IAC5R,EAECG,EAAmB3oB,IAEjBooB,EAAiBje,GAAK,IAAMie,EAAiBlgB,GAAK,GAAIlI,EAAM2c,iBAE3DlhB,EAAQ6S,SAAStO,EAAM4B,SAASqf,GAAa,GAClDzT,SAASuN,oBAAoB,cAAesN,GAC5C9F,EAAyB/H,QAAU,IAAI,EAS3C,OAPyC,OAArC+H,EAAyB/H,UACzBhN,SAASsN,iBAAiB,cAAeuN,GACzC7a,SAASsN,iBAAiB,YAAa6N,EAAiB,CACpDC,SAAS,EACTtkC,MAAM,KAGP,KACHkpB,SAASuN,oBAAoB,cAAesN,GAC5C7a,SAASuN,oBAAoB,YAAa4N,EAAiB,CACvDC,SAAS,GACX,CAEV,IACD,CACCntB,EACAwlB,EACAsB,KAEJ,gBAAiB,KACb,MAAMsG,EAAQ,IAAI5H,GAAa,GAI/B,OAFA/a,OAAO4U,iBAAiB,OAAQ+N,GAChC3iB,OAAO4U,iBAAiB,SAAU+N,GAC3B,KACH3iB,OAAO6U,oBAAoB,OAAQ8N,GACnC3iB,OAAO6U,oBAAoB,SAAU8N,EAAM,CAC9C,GACF,CACC5H,IAEJ,MAAO2C,EAAWC,GAAyBE,IAA0ClpB,IACjF,MAAMmpB,EAAeL,IAAW57B,QAAQ4P,IAAQA,EAAKylB,WAE/C6G,EAAcD,EAAa17B,MAAMqP,GAAOA,EAAK+a,IAAI8H,UAAYhN,SAAS0N,gBAEtEgJ,EAAWC,GAAmCH,EAAcnpB,EAAQopB,GACtEC,GAGFzX,YAAW,IAAIyX,EAASxR,IAAI8H,QAAQyD,SACrC,IAEC6K,GAAkB,kBAAmB,CAAC9wB,EAAMrR,EAAOy2B,KACrD,MAAM2L,GAAoBtB,EAAuBjN,UAAY4C,QACpBt7B,IAAlB0B,EAAQmD,OAAuBnD,EAAQmD,QAAUA,GAClDoiC,KAClB3B,EAAgBpvB,GACZ+wB,IAAkBtB,EAAuBjN,SAAU,GAC3D,GACD,CACCh3B,EAAQmD,QAENqiC,GAAkB,kBAAmB,IAAIvtB,aAAyC,EAASA,EAAQwiB,SACvG,CACExiB,IAEEwtB,GAAsB,kBAAmB,CAACjxB,EAAMrR,EAAOy2B,KACzD,MAAM2L,GAAoBtB,EAAuBjN,UAAY4C,QACpBt7B,IAAlB0B,EAAQmD,OAAuBnD,EAAQmD,QAAUA,GAClDoiC,IAAkBzB,EAAoBtvB,EAAK,GAClE,CACCxU,EAAQmD,QAENuiC,EAA8B,WAAbvkC,EAAwBwkC,GAA6CC,GACtFC,GAAqBH,IAAmBC,GAA6C,CACvF9C,KAAMA,EACNC,WAAYA,EACZC,MAAOA,EACPC,YAAaA,EACbC,aAAcA,EACdC,kBAAmBA,EACnBC,iBAAkBA,EAClBC,OAAQA,EACRC,iBAAkBA,EAClBC,gBAAiBA,GACjB,CAAC,EACL,OAAqB,mBAAqBhB,GAA6C,CACnFpG,MAAOoB,EACPrlB,QAASA,EACTwrB,SAAUA,EACVqC,iBAAkBpC,EAClB4B,gBAAiBA,EACjB3B,aAAcA,EACdoC,YAAaP,EACbC,oBAAqBA,EACrBd,kBAAmBA,EACnBd,iBAAkBA,EAClB1iC,SAAUA,EACV4iC,aAAcA,EACd3D,UAAWA,IACE,mBAAqB,IAAqB,CACvD4F,GAAI,KACJC,gBAAgB,IACH,mBAAqB,EAAmB,CACrD3Q,SAAS,EAETY,QAASl2B,EAAQ+oB,KACjBoN,iBAAmB3Z,IAEfA,EAAM2c,gBAAgB,EAE1B9C,oBAAoB,OAA4BqM,GAAmBlmB,IAC/D,IAAI0pB,EACqC,QAAxCA,EAAmBlmC,EAAQi+B,eAA0C,IAArBiI,GAA+BA,EAAiBzL,MAAM,CACnGC,eAAe,IAEnBle,EAAM2c,gBAAgB,MAEb,mBAAqB,KAAyB,CAC3D7D,SAAS,EACT6Q,6BAA6B,EAC7BxD,gBAAiBA,EACjBC,qBAAsBA,EAEtBwD,eAAiB5pB,GAAQA,EAAM2c,iBAE/BkN,UAAW,IAAIrmC,EAAQy9B,cAAa,KACvB,mBAAqBiI,GAAgB,OAAqC,CACvF7E,KAAM,UACNyF,GAAItmC,EAAQy/B,UACZ,aAAcz/B,EAAQ+oB,KAAO,OAAS,SACtC8U,IAAK79B,EAAQ69B,IACb0I,cAAgB/pB,GAAQA,EAAM2c,kBAC/BoK,EAAcsC,GAAoB,CACjCW,SAAU,IAAIxC,GAAgB,GAE9B9U,IAAKyH,EACL3B,MAAO,CAEHuF,QAAS,OACTkM,cAAe,SAEfC,QAAS,UACNnD,EAAavO,OAEpBoE,WAAW,OAA4BmK,EAAanK,WAAY5c,IAC5D,MAAMmqB,EAAgBnqB,EAAMic,SAAWjc,EAAMgc,QAAUhc,EAAMkc,QAG7D,GAFkB,QAAdlc,EAAMlb,KAAekb,EAAM2c,iBAC1BwN,GAAsC,IAArBnqB,EAAMlb,IAAI1B,QAAcygC,EAAsB7jB,EAAMlb,KACtE,CACA,UACA,YACA,OACA,OACF8rB,SAAS5Q,EAAMlb,KAAM,CAGnB,IAAIslC,EAFUzG,IAAW57B,QAAQ4P,IAAQA,EAAKylB,WAEnB1yB,KAAKiN,GAAOA,EAAK+a,IAAI8H,UAMhD,GAJI,CACA,UACA,OACF5J,SAAS5Q,EAAMlb,OAAMslC,EAAiBA,EAAezmC,QAAQ6mB,WAC3D,CACA,UACA,aACFoG,SAAS5Q,EAAMlb,KAAM,CACnB,MAAMulC,EAAiBrqB,EAAM4B,OACvB0oB,EAAeF,EAAejiC,QAAQkiC,GAC5CD,EAAiBA,EAAezmC,MAAM2mC,EAAe,EACzD,CAIJ7d,YAAW,IAAIib,EAAW0C,KAEtBpqB,EAAM2c,gBACV,WAED,IAQLyM,IAAgE,iBAAkB,CAAC3W,EAAOoG,KAC5F,MAAQiI,cAAeA,EAAgBkJ,SAAUA,KAAcO,GAAgB9X,EACzEjvB,EAAUk9B,EAAuC8E,GAAoC1E,GACrF0J,EAAiBvE,GAA8CT,GAAoC1E,IAClG2J,EAAgBC,IAAqB,cAAgB,OACrDjvB,EAASurB,IAAc,cAAgB,MACxC7M,GAAe,OAAuBtB,GAAe7gB,GAAOgvB,EAAWhvB,KAEvE2rB,EAAW5E,EAAoC+B,GAC/C6J,GAA0B,aAAc,GACxCC,GAAsB,aAAc,IAClC3D,SAAUA,EAAWE,aAAcA,EAAeE,iBAAkBA,EAAmBc,kBAAmBA,GAAuBqC,EACnI7lC,GAAW,kBAAmB,KAChC,GAAInB,EAAQi+B,SAAWj+B,EAAQm+B,WAAa8I,GAAkBhvB,GAAWwrB,GAAYE,GAAgBE,EAAkB,CACnH,MAAMwD,EAAcrnC,EAAQi+B,QAAQqJ,wBAG9BC,EAActvB,EAAQqvB,wBACtBE,EAAgBxnC,EAAQm+B,UAAUmJ,wBAClCG,EAAe5D,EAAiByD,wBACtC,GAAoB,QAAhBtnC,EAAQ69B,IAAe,CACvB,MAAM6J,EAAiBD,EAAaE,KAAOJ,EAAYI,KACjDA,EAAOH,EAAcG,KAAOD,EAC5BE,EAAYP,EAAYM,KAAOA,EAC/BE,EAAkBR,EAAY1W,MAAQiX,EACtCE,EAAerkB,KAAK0Q,IAAI0T,EAAiBN,EAAY5W,OACrDoX,EAAYrlB,OAAOslB,WAAaxF,GAChCyF,EAAc,EAAaN,EAAM,CACnCnF,GACAuF,EAAYD,IAEhBb,EAAejS,MAAMkT,SAAWL,EAAkB,KAClDZ,EAAejS,MAAM2S,KAAOM,EAAc,IAC9C,KAAO,CACH,MAAMP,EAAiBH,EAAYY,MAAQV,EAAaU,MAClDA,EAAQzlB,OAAOslB,WAAaR,EAAcW,MAAQT,EAClDU,EAAa1lB,OAAOslB,WAAaX,EAAYc,MAAQA,EACrDN,EAAkBR,EAAY1W,MAAQyX,EACtCN,EAAerkB,KAAK0Q,IAAI0T,EAAiBN,EAAY5W,OACrD0X,EAAW3lB,OAAOslB,WAAaxF,GAC/B8F,EAAe,EAAaH,EAAO,CACrC3F,GACA6F,EAAWP,IAEfb,EAAejS,MAAMkT,SAAWL,EAAkB,KAClDZ,EAAejS,MAAMmT,MAAQG,EAAe,IAChD,CAGA,MAAMpQ,EAAQiI,IACRoI,EAAkB7lB,OAAO8lB,YAAqD,EAAvChG,GACvCiG,EAAchF,EAASiB,aACvBgE,EAAgBhmB,OAAO2X,iBAAiBpiB,GACxC0wB,EAAwBxa,SAASua,EAAcE,eAAgB,IAC/DC,EAAoB1a,SAASua,EAAcI,WAAY,IACvDC,EAA2B5a,SAASua,EAAcM,kBAAmB,IAErEC,EAAoBN,EAAwBE,EAAoBJ,EADzCta,SAASua,EAAcQ,cAAe,IACwCH,EACrGI,EAAmB1lB,KAAKyQ,IAAgC,EAA5ByP,EAAayF,aAAkBH,GAC3DI,EAAiB3mB,OAAO2X,iBAAiBoJ,GACzC6F,EAAqBnb,SAASkb,EAAeP,WAAY,IACzDS,EAAwBpb,SAASkb,EAAeH,cAAe,IAC/DM,EAAyBnC,EAAYoC,IAAMpC,EAAYzW,OAAS,EAAI4R,GACpEkH,EAA4BnB,EAAkBiB,EAC9CG,EAAyBhG,EAAayF,aAAe,EAErDQ,EAAyBjB,EAAwBE,GAD9BlF,EAAakG,UAAYF,GAE5CG,EAA4Bb,EAAoBW,EAEtD,GADoCA,GAA0BJ,EAC7B,CAC7B,MAAMO,EAAapG,IAAiBzL,EAAMA,EAAMt4B,OAAS,GAAGsvB,IAAI8H,QAChEiQ,EAAejS,MAAMgV,OAAS,MAC9B,MAAMC,EAAuBhyB,EAAQiyB,aAAezG,EAASoG,UAAYpG,EAAS2F,aAE5ExY,EAASgZ,EAD0BnmB,KAAK0Q,IAAIuV,EAA2BC,GAA0BI,EAAaR,EAAwB,GAAKU,EAAuBlB,GAExK9B,EAAejS,MAAMpE,OAASA,EAAS,IAC3C,KAAO,CACH,MAAMuZ,EAAcxG,IAAiBzL,EAAM,GAAGhJ,IAAI8H,QAClDiQ,EAAejS,MAAMyU,IAAM,MAC3B,MACM7Y,EADgCnN,KAAK0Q,IAAIqV,EAAwBb,EAAwBlF,EAASoG,WAAaM,EAAcb,EAAqB,GAAKK,GAC9GG,EAC/C7C,EAAejS,MAAMpE,OAASA,EAAS,KACvC6S,EAASgB,UAAYmF,EAAyBJ,EAAyB/F,EAASoG,SACpF,CACA5C,EAAejS,MAAMoV,OAAS,GAAG5H,SACjCyE,EAAejS,MAAMqV,UAAYlB,EAAmB,KACpDlC,EAAejS,MAAMsV,UAAY/B,EAAkB,KACnD/B,SAA4CA,IAE5C+D,uBAAsB,IAAIpD,EAAwBnQ,SAAU,GAEhE,IACD,CACCmJ,EACAngC,EAAQi+B,QACRj+B,EAAQm+B,UACR8I,EACAhvB,EACAwrB,EACAE,EACAE,EACA7jC,EAAQ69B,IACR2I,KAEJ,QAAuB,IAAIrlC,KACzB,CACEA,IAEJ,MAAOqpC,EAAeC,IAAoB,iBAC1C,QAAuB,KACfxyB,GAASwyB,EAAiB/nB,OAAO2X,iBAAiBpiB,GAASyyB,OAAO,GACvE,CACCzyB,IAKJ,MAAM0yB,GAA2B,kBAAoBn2B,IAC7CA,IAAwC,IAAhC4yB,EAAoBpQ,UAC5B71B,IACAwjC,SAA8DA,IAC9DyC,EAAoBpQ,SAAU,EAClC,GACD,CACC71B,EACAwjC,IAEJ,OAAqB,mBAAqBiG,GAA8C,CACpF1O,MAAOoB,EACP2J,eAAgBA,EAChBE,wBAAyBA,EACzB0D,qBAAsBF,IACT,mBAAqB,MAAO,CACzCzb,IAAKgY,EACLlS,MAAO,CACHuF,QAAS,OACTkM,cAAe,SACftlC,SAAU,QACVupC,OAAQF,KAEC,mBAAqB,OAAsB,OAAqC,CAAC,EAAGzD,EAAa,CAC9G7X,IAAKyH,EACL3B,MAAO,CAGH8V,UAAW,aAEXR,UAAW,UACRvD,EAAY/R,WAElB,IAQH2Q,IAA2D,iBAAkB,CAAC1W,EAAOoG,KACvF,MAAQiI,cAAeA,EAAgByF,MAAOA,EAAQ,QAAUI,iBAAkBA,EAAmBX,MAA0CuE,GAAgB9X,EACzJ+O,EAAchB,EAAqCM,GACzD,OAAqB,mBAAqB,MAAgB,OAAqC,CAAC,EAAGU,EAAa+I,EAAa,CACzH7X,IAAKmG,EACL0N,MAAOA,EACPI,iBAAkBA,EAClBnO,MAAO,CAEH8V,UAAW,gBACR/D,EAAY/R,MACf,0CAA2C,uCAC3C,yCAA0C,sCAC1C,0CAA2C,uCAC3C,+BAAgC,mCAChC,gCAAiC,uCAEtC,KAOqG4V,GAA8CG,IAAkDjO,EAA0CkF,GAAoC,CAAC,GACrRgJ,GAAsC,iBACtCC,IAA0D,iBAAkB,CAAChc,EAAOoG,KACtF,MAAQiI,cAAeA,KAAmB4N,GAAkBjc,EACtD+X,EAAiBvE,GAA8CuI,GAAqC1N,GACpG6N,EAAkBJ,GAA+CC,GAAqC1N,GACtG3G,GAAe,OAAuBtB,EAAc2R,EAAelB,kBACnEsF,GAAmB,YAAc,GACvC,OAAqB,mBAAqB,WAAiB,MAAoB,mBAAqB,QAAS,CACzGC,wBAAyB,CACrBC,OAAQ,gLAEE,mBAAqBhQ,EAAiCoB,KAAM,CAC1ER,MAAOoB,IACM,mBAAqB,OAAsB,OAAqC,CAC7F,6BAA8B,GAC9BuD,KAAM,gBACPqK,EAAe,CACdhc,IAAKyH,EACL3B,MAAO,CAIH7zB,SAAU,WACVoqC,KAAM,EACNC,SAAU,UACPN,EAAclW,OAErByW,UAAU,OAA4BP,EAAcO,UAAWjvB,IAC3D,MAAMinB,EAAWjnB,EAAMqc,eACfoO,eAAgBA,EAAiBE,wBAAyBA,GAA6BgE,EAC/F,GAAIhE,SAA0EA,EAAwBnQ,SAAWiQ,EAAgB,CAC7H,MAAMyE,EAAajoB,KAAKyhB,IAAIkG,EAAiBpU,QAAUyM,EAASgB,WAChE,GAAIiH,EAAa,EAAG,CAChB,MAAMnD,EAAkB7lB,OAAO8lB,YAAqD,EAAvChG,GACvCmJ,EAAe3kC,WAAWigC,EAAejS,MAAMqV,WAC/CuB,EAAY5kC,WAAWigC,EAAejS,MAAMpE,QAC5Cib,EAAapoB,KAAK0Q,IAAIwX,EAAcC,GAC1C,GAAIC,EAAatD,EAAiB,CAC9B,MAAMuD,EAAaD,EAAaH,EAC1BK,EAAoBtoB,KAAKyQ,IAAIqU,EAAiBuD,GAC9CE,EAAaF,EAAaC,EAChC9E,EAAejS,MAAMpE,OAASmb,EAAoB,KACd,QAAhC9E,EAAejS,MAAMgV,SACrBvG,EAASgB,UAAYuH,EAAa,EAAIA,EAAa,EACnD/E,EAAejS,MAAMiX,eAAiB,WAE9C,CACJ,CACJ,CACAb,EAAiBpU,QAAUyM,EAASgB,SAAS,QAEhD,IAOkGyH,GAAmC,eACvIC,GAAkDC,IAA+CtP,EAA0CoP,IAkCvCG,GAAkC,cACtIC,GAAiDC,IAA8CzP,EAA0CuP,IAC1IG,IAA0D,iBAAkB,CAACvd,EAAOoG,KACtF,MAAQiI,cAAeA,EAAgBn6B,MAAOA,EAAQy2B,SAAUA,GAAW,EAAQ6S,UAAWC,KAAmBC,GAAc1d,EACzHjvB,EAAUk9B,EAAuCmP,GAAiC/O,GAClF0J,EAAiBvE,GAA8C4J,GAAiC/O,GAChGsP,EAAa5sC,EAAQmD,QAAUA,GAC9BspC,EAAWI,IAAgB,cAAgBH,QAAqDA,EAAgB,KAChHI,EAAWC,IAAgB,eAAgB,GAC5CpW,GAAe,OAAuBtB,GAAe7gB,IACvD,IAAIw4B,EACJ,OAAoE,QAA5DA,EAAwBhG,EAAe1B,uBAAuD,IAA1B0H,OAAmC,EAASA,EAAsB/sC,KAAK+mC,EAAgBxyB,EAAMrR,EAAOy2B,EAAS,IAEvLqT,GAAS,SACTC,EAAe,KACZtT,IACD55B,EAAQ49B,cAAcz6B,GACtBnD,EAAQy9B,cAAa,GACzB,EAEJ,OAAqB,mBAAqB6O,GAAiD,CACvFpQ,MAAOoB,EACPn6B,MAAOA,EACPy2B,SAAUA,EACVqT,OAAQA,EACRL,WAAYA,EACZO,kBAAkB,kBAAoB34B,IAClCq4B,GAAcO,IACV,IAAIC,EACJ,OAAOD,IAAyG,QAAtFC,EAAoB74B,aAAmC,EAASA,EAAK84B,mBAA+C,IAAtBD,EAA+BA,EAAoB,IAAIv+B,MAAM,GACvL,GACH,MACU,mBAAqBwsB,EAAiCqB,SAAU,CAC7ET,MAAOoB,EACPn6B,MAAOA,EACPy2B,SAAUA,EACV6S,UAAWA,IACE,mBAAqB,OAAsB,OAAqC,CAC7F5L,KAAM,SACN,kBAAmBoM,EACnB,mBAAoBH,EAAY,QAAKxuC,EAErC,gBAAiBsuC,GAAcE,EAC/B,aAAcF,EAAa,UAAY,YACvC,gBAAiBhT,QAAYt7B,EAC7B,gBAAiBs7B,EAAW,QAAKt7B,EACjCy2B,SAAU6E,OAAWt7B,GAAa,GACnCquC,EAAW,CACVzd,IAAKyH,EACL4W,SAAS,OAA4BZ,EAAUY,SAAS,IAAIR,GAAa,KAEzES,QAAQ,OAA4Bb,EAAUa,QAAQ,IAAIT,GAAa,KAEvEU,aAAa,OAA4Bd,EAAUc,YAAaP,GAChEQ,eAAe,OAA4Bf,EAAUe,eAAgBlxB,IAE7D,IAAImxB,EADJ/T,EAEyD,QAAxD+T,EAAwB3G,EAAejB,mBAAmD,IAA1B4H,GAAoCA,EAAsB1tC,KAAK+mC,GAGpIxqB,EAAMqc,cAAc4B,MAAM,CACtBC,eAAe,GACjB,IAENkT,gBAAgB,OAA4BjB,EAAUiB,gBAAiBpxB,IAE/D,IAAIqxB,EADJrxB,EAAMqc,gBAAkB7O,SAAS0N,gBAEyB,QAAzDmW,EAAyB7G,EAAejB,mBAAoD,IAA3B8H,GAAqCA,EAAuB5tC,KAAK+mC,GACvI,IAEJ5N,WAAW,OAA4BuT,EAAUvT,WAAY5c,IACzD,IAAIsxB,EACiK,MAAvF,QAAtDA,EAAwB9G,EAAe5G,iBAAiD,IAA1B0N,OAAmC,EAASA,EAAsB9W,UACrH,MAAdxa,EAAMlb,MACvB85B,EAAqChO,SAAS5Q,EAAMlb,MAAM4rC,IAC5C,MAAd1wB,EAAMlb,KAAakb,EAAM2c,iBAAgB,QAEhD,IAOkG4U,GAAuC,iBAC5IC,IAA0D,iBAAkB,CAAC/e,EAAOoG,KAEtF,MAAQiI,cAAeA,EAAgB7N,UAAWA,EAAYuF,MAAOA,KAAWiZ,GAAkBhf,EAC5FjvB,EAAUk9B,EAAuC6Q,GAAsCzQ,GACvF0J,EAAiBvE,GAA8CsL,GAAsCzQ,GACrG4Q,EAAc3B,GAA2CwB,GAAsCzQ,GAC/F6Q,EAAuB/Q,EAAoD2Q,GAAsCzQ,IAChH8Q,EAAcC,IAAmB,cAAgB,MAClD1X,GAAe,OAAuBtB,GAAe7gB,GAAO65B,EAAgB75B,IAChF05B,EAAYf,kBAAmB34B,IAC7B,IAAI85B,EACJ,OAAwE,QAAhEA,EAAwBtH,EAAevB,2BAA2D,IAA1B6I,OAAmC,EAASA,EAAsBruC,KAAK+mC,EAAgBxyB,EAAM05B,EAAY/qC,MAAO+qC,EAAYtU,SAAS,IAEnN0T,EAAcc,aAAmD,EAASA,EAAad,YACvFiB,GAAe,cAAe,KAAkB,mBAAqB,SAAU,CAC7EjtC,IAAK4sC,EAAY/qC,MACjBA,MAAO+qC,EAAY/qC,MACnBy2B,SAAUsU,EAAYtU,UACvB0T,IACL,CACEY,EAAYtU,SACZsU,EAAY/qC,MACZmqC,KAEI5N,kBAAmBA,EAAoBE,qBAAsBA,GAA0BuO,EAU/F,OATA,QAAuB,KACnBzO,EAAkB6O,GACX,IAAI3O,EAAqB2O,KAEjC,CACC7O,EACAE,EACA2O,KAEiB,mBAAqB,WAAiB,MAAoB,mBAAqB,QAAuB,OAAqC,CAC5JjI,GAAI4H,EAAYjB,QACjBgB,EAAe,CACd/e,IAAKyH,KACJuX,EAAYtB,YAAc5sC,EAAQm+B,YAAcn+B,EAAQq+B,sBAAqC,kBAAoB4P,EAAcv5B,SAAU1U,EAAQm+B,WAAa,KAAK,IAOjEqQ,GAA4C,sBACjJC,IAA0D,iBAAkB,CAACxf,EAAOoG,KACtF,MAAQiI,cAAeA,KAAmBoR,GAAuBzf,EAEjE,OADoBsd,GAA2CiC,GAA2ClR,GACvFsP,YAA2B,mBAAqB,QAAuB,OAAqC,CAC3H,eAAe,GAChB8B,EAAoB,CACnBxf,IAAKmG,KACH,IAAI,IAO6FsZ,GAA8C,uBACnJC,IAA0D,iBAAkB,CAAC3f,EAAOoG,KACtF,MAAM2R,EAAiBvE,GAA8CkM,GAA6C1f,EAAMqO,eAClH6N,EAAkBJ,GAA+C4D,GAA6C1f,EAAMqO,gBACnHuR,EAAcC,IAAkB,eAAgB,GACjDnY,GAAe,OAAuBtB,EAAc8V,EAAgBN,sBAiB1E,OAhBA,QAAuB,KACnB,GAAI7D,EAAevD,UAAYuD,EAAejD,aAAc,CACxD,MAAMN,EAAWuD,EAAevD,SAChC,SAASsL,IACL,MAAMC,EAAcvL,EAASgB,UAAY,EACzCqK,EAAeE,EACnB,CAGA,OAFAD,IACAtL,EAASnM,iBAAiB,SAAUyX,GAC7B,IAAItL,EAASlM,oBAAoB,SAAUwX,EAEtD,IACD,CACC/H,EAAevD,SACfuD,EAAejD,eAEZ8K,GAA6B,mBAAqBI,IAA8C,OAAqC,CAAC,EAAGhgB,EAAO,CACnJC,IAAKyH,EACLuY,aAAc,KACV,MAAQzL,SAAUA,EAAWE,aAAcA,GAAkBqD,EACzDvD,GAAYE,IAAcF,EAASgB,UAAYhB,EAASgB,UAAYd,EAAayF,aAAY,KAEnG,IAAI,IAO6F+F,GAAgD,yBACrJC,IAAyD,iBAAkB,CAACngB,EAAOoG,KACrF,MAAM2R,EAAiBvE,GAA8C0M,GAA+ClgB,EAAMqO,eACpH6N,EAAkBJ,GAA+CoE,GAA+ClgB,EAAMqO,gBACrH+R,EAAgBC,IAAoB,eAAgB,GACrD3Y,GAAe,OAAuBtB,EAAc8V,EAAgBN,sBAmB1E,OAlBA,QAAuB,KACnB,GAAI7D,EAAevD,UAAYuD,EAAejD,aAAc,CACxD,MAAMN,EAAWuD,EAAevD,SAChC,SAASsL,IACL,MAAMQ,EAAY9L,EAASiB,aAAejB,EAASyG,aAE7CsF,EAAgB/rB,KAAKgsB,KAAKhM,EAASgB,WAAa8K,EACtDD,EAAiBE,EACrB,CAGA,OAFAT,IACAtL,EAASnM,iBAAiB,SAAUyX,GAC7B,IAAItL,EAASlM,oBAAoB,SAAUwX,EAEtD,IACD,CACC/H,EAAevD,SACfuD,EAAejD,eAEZsL,GAA+B,mBAAqBJ,IAA8C,OAAqC,CAAC,EAAGhgB,EAAO,CACrJC,IAAKyH,EACLuY,aAAc,KACV,MAAQzL,SAAUA,EAAWE,aAAcA,GAAkBqD,EACzDvD,GAAYE,IAAcF,EAASgB,UAAYhB,EAASgB,UAAYd,EAAayF,aAAY,KAEnG,IAAI,IAKR6F,IAA6D,iBAAkB,CAAChgB,EAAOoG,KACzF,MAAQiI,cAAeA,EAAgB4R,aAAcA,KAAkBQ,GAAyBzgB,EAC1F+X,EAAiBvE,GAA8C,qBAAsBnF,GACrFqS,GAAqB,YAAc,MACnCxP,EAAW5E,EAAoC+B,GAC/CsS,GAAuB,kBAAmB,KACT,OAA/BD,EAAmB3Y,UACnBtU,OAAOmtB,cAAcF,EAAmB3Y,SACxC2Y,EAAmB3Y,QAAU,KACjC,GACD,IAoBH,OAnBA,gBAAiB,IACN,IAAI4Y,KAEZ,CACCA,KAKJ,QAAuB,KACnB,IAAIE,EACJ,MAAMC,EAAa5P,IAAWr7B,MAAMqP,GAAOA,EAAK+a,IAAI8H,UAAYhN,SAAS0N,gBAEzEqY,SAAqG,QAApDD,EAAwBC,EAAW7gB,IAAI8H,eAA+C,IAA1B8Y,GAAoCA,EAAsBvL,eAAe,CAClLC,MAAO,WACT,GACH,CACCrE,KAEiB,mBAAqB,OAAsB,OAAqC,CACjG,eAAe,GAChBuP,EAAsB,CACrBxgB,IAAKmG,EACLL,MAAO,CACHgb,WAAY,KACTN,EAAqB1a,OAE5B0Y,eAAe,OAA4BgC,EAAqBhC,eAAe,KAC3E,IAAIuC,EACsD,QAAzDA,EAAyBjJ,EAAejB,mBAAoD,IAA3BkK,GAAqCA,EAAuBhwC,KAAK+mC,GAChG,OAA/B2I,EAAmB3Y,UAAkB2Y,EAAmB3Y,QAAUtU,OAAOwtB,YAAYhB,EAAc,IAAG,IAE9GtB,gBAAgB,OAA4B8B,EAAqB9B,gBAAgB,KAC7EgC,GAAsB,MAE3B,IA+BoG9P,IAAmD,iBAAkB,CAAC7Q,EAAOoG,KACpL,MAAQlyB,MAAOA,KAAWgtC,GAAgBlhB,EACpCC,GAAM,YAAc,MACpByH,GAAe,OAAuBtB,EAAcnG,GACpDkhB,EEjnCV,SAAmDjtC,GAC/C,MAAM+rB,GAAM,YAAc,CACtB/rB,MAAOA,EACP6K,SAAU7K,IAId,OAAO,cAAe,KACd+rB,EAAI8H,QAAQ7zB,QAAUA,IACtB+rB,EAAI8H,QAAQhpB,SAAWkhB,EAAI8H,QAAQ7zB,MACnC+rB,EAAI8H,QAAQ7zB,MAAQA,GAEjB+rB,EAAI8H,QAAQhpB,WACpB,CACC7K,GAER,CFimCsB,CAAmBA,GA4BnC,OA3BF,gBAAiB,KACb,MAAMg0B,EAASjI,EAAI8H,QACbqZ,EAAc3tB,OAAO4tB,kBAAkBzxC,UAEvCigC,EADa76B,OAAO4d,yBAAyBwuB,EAAa,SACpCrtB,IAC5B,GAAIotB,IAAcjtC,GAAS27B,EAAU,CACjC,MAAMtiB,EAAQ,IAAI+zB,MAAM,SAAU,CAC9Bza,SAAS,IAEbgJ,EAAS7+B,KAAKk3B,EAAQh0B,GACtBg0B,EAAOU,cAAcrb,EACzB,IACD,CACC4zB,EACAjtC,KAamB,mBAAqB,IAAuB,CAC/DmyB,SAAS,IACI,mBAAqB,UAAU,OAAqC,CAAC,EAAG6a,EAAa,CAClGjhB,IAAKyH,EACLgH,aAAcx6B,KACd,IAGR,SAASo9B,GAAyCiQ,GAC9C,MAAMC,GAAqB,OAAsBD,GAC3CpQ,GAAY,YAAc,IAC1BsQ,GAAW,YAAc,GACzBrQ,GAAwB,kBAAoB/+B,IAC9C,MAAM+V,EAAS+oB,EAAUpJ,QAAU11B,EACnCmvC,EAAmBp5B,GACnB,SAAUs5B,EAAaxtC,GACnBi9B,EAAUpJ,QAAU7zB,EACpBuf,OAAO4G,aAAaonB,EAAS1Z,SACf,KAAV7zB,IAAcutC,EAAS1Z,QAAUtU,OAAOuG,YAAW,IAAI0nB,EAAa,KACtE,KACL,CALD,CAKGt5B,EAAO,GACX,CACCo5B,IAEEnQ,GAAiB,kBAAmB,KACtCF,EAAUpJ,QAAU,GACpBtU,OAAO4G,aAAaonB,EAAS1Z,QAAQ,GACtC,IAKH,OAJA,gBAAiB,IACN,IAAItU,OAAO4G,aAAaonB,EAAS1Z,UAEzC,IACI,CACHoJ,EACAC,EACAC,EAER,CAiBI,SAASK,GAAmCzI,EAAO7gB,EAAQopB,GAC3D,MAEMmQ,EAFav5B,EAAOzX,OAAS,GAAKM,MAAMsiB,KAAKnL,GAAQ/R,OAAOurC,GAAOA,IAASx5B,EAAO,KAEnDA,EAAO,GAAKA,EAC5Cy5B,EAAmBrQ,EAAcvI,EAAMvzB,QAAQ87B,IAAgB,EACrE,IAAIsQ,GAWqCjkC,EAXUorB,EAWH8Y,EAXUvtB,KAAK0Q,IAAI2c,EAAkB,GAY9EhkC,EAAM5F,KAAI,CAAC+pC,EAAGlvC,IAAQ+K,GAAOkkC,EAAajvC,GAAS+K,EAAMlN,WADhE,IAAyCkN,EAAOkkC,EAVO,IAA5BJ,EAAiBhxC,SACpBmxC,EAAeA,EAAaxsC,QAAQZ,GAAIA,IAAM88B,KAEtE,MAAMC,EAAWqQ,EAAajsC,MAAMqP,GAAOA,EAAKs4B,UAAUjnB,cAAc0rB,WAAWN,EAAiBprB,iBAEpG,OAAOkb,IAAaD,EAAcC,OAAWpiC,CACjD,CA3DAwhC,GAAmCpK,YAAc,eAmEjD,MAAMyb,GAA4C9T,EAC5C+T,GAA4CpR,EAC5CqR,GAA4C5P,GAC5C6P,GAA4CxP,GAE5CyP,GAA4CtP,GAC5CuP,GAA2CvG,GAG3CwG,GAA4CjF,GAC5CkF,GAA4C1D,GAC5C2D,GAA4ClD,GAC5CmD,GAA4ChD,GAC5CiD,GAA4CzC,kEG1sC3C,SAAS0C,GACZ3uC,GAEA,OAPG,SAAkBA,GACrB,MAAwB,iBAAVA,CAClB,CAMQ4uC,CAAS5uC,IAhBV,SAAkBA,GACrB,MAAwB,iBAAVA,CAClB,CAeQ6uC,CAAS7uC,IAzBV,SAAmBA,GACtB,MAAwB,kBAAVA,CAClB,CAwBQ8uC,CAAU9uC,IAtBX,SAAkBA,GACrB,MAAwB,iBAAVA,CAClB,CAqBQ+uC,CAAS/uC,EAEjB,CCKO,MAAMgvC,GAAUljB,GACnBD,EAAAA,cAACojB,GAAyBnjB,GAejBojB,GAAarjB,EAAAA,YAGxB,CAACC,EAAOoG,KACN,MAAM,UAAE5F,EAAS,SAAE/a,KAAaib,GAASV,GAClCK,EAAiBgjB,IAAgB1jC,EAAAA,GAAAA,IAAM+gB,EAAMN,GAAAA,IAEpD,OACIL,EAAAA,cAACojB,GAAoBnuC,OAAAyqB,OAAA,CACjBQ,IAAKmG,EACL5F,WAAWI,EAAAA,GAAAA,IAAI,IACRP,EACHijB,OAAO3iB,EAAAA,GAAAA,IAAG,qBAAsBH,MAEhC6iB,GAEJtjB,EAAAA,cAACojB,GAA6B,CAAC3iB,UAAU,gCACrCT,EAAAA,cAACwjB,GAAAA,GAAM,CAACC,KAAMC,EAAAA,OCzEvB,SACHh+B,GAEA,OACIo9B,GAAYp9B,IACZsa,EAAAA,SAAAA,QAAuBta,GAAUpP,MAAMwsC,GAE/C,CDqEoBa,CAAoBj+B,GACbsa,EAAAA,cAAC4jB,GAAc,KAAEl+B,GAKrBA,EAEQ,IASlBk+B,GAAiB5jB,EAAAA,YAG5B,CAACC,EAAOoG,KACN,MAAM,UAAE5F,EAAS,SAAE/a,KAAaib,GAASV,GAClCK,EAAiBgjB,IAAgB1jC,EAAAA,GAAAA,IAAM+gB,EAAMN,GAAAA,IAEpD,OACIL,EAAAA,cAACojB,GAAwBnuC,OAAAyqB,OAAA,CACrBQ,IAAKmG,EACL5F,WAAWI,EAAAA,GAAAA,IAAI,IACRP,EACHijB,OAAO3iB,EAAAA,GAAAA,IAAG,0BAA2BH,MAErC6iB,GAEH59B,EACsB,IAgGtBm+B,GAAc7jB,EAAAA,YAGzB,CAACC,EAAOoG,KACN,MAAM,YAAEqM,EAAc,mBAAkB,UAAEjS,KAAcE,GAASV,EAEjE,OACID,EAAAA,cAACojB,GAAqBnuC,OAAAyqB,OAAA,CAClBQ,IAAKmG,EACLqM,YAAaA,EACbjS,WAAWG,EAAAA,GAAAA,IAAG,sBAAuBH,IACjCE,GACN,IAIJmjB,IAAgBC,EAAAA,GAAAA,GAAI,wBAAyB,CAC/CC,SAAU,CACNC,QAAS,CACLC,KAAM,sCACN/R,OAAQ,0CAGhBgS,gBAAiB,CACbF,QAAS,UAWJG,GAAgBpkB,EAAAA,YAO3B,CAACC,EAAOoG,KACN,MAAM,UAAE5F,EAAS,SAAE/a,EAAQ,QAAEu+B,EAAO,WAAEI,KAAe1jB,GAASV,GACvDK,EAAiBgjB,IAAgB1jC,EAAAA,GAAAA,IAAM+gB,EAAMN,GAAAA,IAEpD,IAAIojB,EAAwBzjB,EAAAA,cAACwjB,GAAAA,GAAM,CAACC,KAAMa,EAAAA,MAK1C,OAJID,IACAZ,EAAOY,GAIPrkB,EAAAA,cAACojB,GAAuBnuC,OAAAyqB,OAAA,CACpBQ,IAAKmG,EACL5F,WAAWG,EAAAA,GAAAA,IACPkjB,GAAc,CACVG,aAEJpjB,EAAAA,GAAAA,IAAI,IACGP,IAEPG,IAEA6iB,GAGK59B,GACMsa,EAAAA,cAAC6jB,GAAW,MAK3B7jB,EAAAA,cAACojB,GAAoB,CACjB9c,SAAO,EACP7F,UAAU,8BAETgjB,GAEiB,IAgBrBc,GAAgBvkB,EAAAA,YAG3B,CAACC,EAAOoG,KACN,MAAM,UAAE5F,EAAS,SAAE/a,KAAaib,GAASV,GAClCK,EAAiBiU,IAAgB30B,EAAAA,GAAAA,IAAM+gB,EAAMN,GAAAA,IAEpD,OACIL,EAAAA,cAACojB,GAAuBnuC,OAAAyqB,OAAA,CACpBQ,IAAKmG,EACLyN,WAAY,EACZ3hC,SAAS,SACTsuB,WAAWI,EAAAA,GAAAA,IAAI,IACRP,EACHijB,OAAO3iB,EAAAA,GAAAA,IAAG,wBAAyBH,MAEnC8T,GAEJvU,EAAAA,cAACojB,GAA8B,CAAC3iB,UAAU,kCACtCT,EAAAA,cAACwjB,GAAAA,GAAM,CAACC,KAAMe,EAAAA,OAElBxkB,EAAAA,cAACojB,GAAwB,CAAC3iB,UAAU,0BAC/B/a,GAELsa,EAAAA,cAACojB,GAAgC,CAAC3iB,UAAU,oCACxCT,EAAAA,cAACwjB,GAAAA,GAAM,CAACC,KAAMa,EAAAA,OAEI,sEEjU3B,MAAM1gB,EAAc,CACvB,UAAW,4CACX,aAAc,qBACd,aAAc,qBAEd,UAAW,4CACX,aAAc,qBACd,aAAc,qBAEd,UAAW,6CACX,aAAc,sBACd,aAAc,sBAEd,UAAW,8CACX,aAAc,sBACd,aAAc,sBAEd,WAAY,8CACZ,cAAe,sBACf,cAAe,oLCFnB,MAAM6gB,EAAuD,CACzDC,KAAM,OACNC,IAAK,OACLC,OAAQ,OACRC,UAAW,OACXC,QAAS,UACTC,QAAS,UACTC,OAAQ,UAGNC,GAAalB,EAAAA,EAAAA,GAAI,aAAc,CACjCC,SAAU,CACNhe,MAAO,CACH0e,KAAM,OACNI,QAAS,UACTE,OAAQ,aAWb,SAASE,EAAUziB,GAKoB,IACtCghB,GANmB,KACvBrzC,EAAO,OACP+0C,MAAOC,EAAM,UACb3kB,EAAS,SACT/a,GACuC+c,EAEvC,MAAMuD,EAAQye,EAAYr0C,GAEZ,SAAV41B,EACAyd,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM4B,EAAAA,MACJ,YAAVrf,EACPyd,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM6B,EAAAA,MACJ,WAAVtf,IACPyd,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM8B,EAAAA,OAGzB,IAAIJ,EAAQK,IAAUp1C,GAClBg1C,IACAD,EAAQC,GAGZ,MAAMnnB,EAAUgnB,EAAW,CAAExkB,YAAWuF,UAExC,OACIhG,EAAAA,cAACylB,EAAAA,GAAI,CAAChlB,UAAWxC,EAASxI,EAAE,MACxBuK,EAAAA,cAAC0lB,EAAAA,GAAG,CACAjlB,UAAU,kBACVklB,GAAG,OACHC,SAAS,IACT5E,WAAW,KAEVyC,GAELzjB,EAAAA,cAAC0lB,EAAAA,GAAG,CAACjlB,UAAU,qBAAqBmlB,SAAS,KACzC5lB,EAAAA,cAAC6lB,EAAAA,GAAS,CACN5B,QAAQ,SACR6B,MAAM,gBACNC,WAAW,OACXtlB,UAAU,oBAET0kB,GAELnlB,EAAAA,cAAA,OAAKS,UAAU,6BAA6B/a,IAI5D,CAACw/B,EAAAc,aAAA,2GC7EM,MAAMC,EAAajmB,EAAAA,YACtB,CAAAyC,EAYIvC,KACE,IAZF,SACIxa,EAAQ,UACRwgC,EAAY,UAAS,KACrBC,EAAO,KAAI,SACXC,EAAQ,UACRC,EAAS,cACTC,EAAa,eACbC,EAAc,UACd9lB,KACGR,GACNwC,EAGD,MAAMxE,GAAUkU,EAAAA,EAAAA,IAAO,CACnB1R,YACAylB,YACAC,OACAG,gBACAC,mBAGJ,OACIvmB,EAAAA,cAACwmB,EAAAA,EAAIvxC,OAAAyqB,OAAA,GAAKO,EAAK,CAAEC,IAAKA,EAAKO,UAAWxC,EAASwoB,QAAQ,IACnDzmB,EAAAA,cAAC0mB,EAAAA,GAAU,CAACN,SAAUA,EAAUC,UAAWA,GACtC3gC,GAEF,IAGjBugC,EAAAD,aAAA,iGC9CK,SAASW,EAAUlkB,GAEoB,IAFnB,SACvB/c,GACuC+c,EACvC,OACIzC,EAAAA,cAAC4mB,EAAAA,GAAI,CAAC3C,QAAQ,SAASxjB,UAAU,eAC5B/a,EAGb,CAACihC,EAAAX,aAAA,kICJM,MAAMa,GAAO9C,EAAAA,EAAAA,GAAI,OAAQ,CAC5BC,SAAU,IACH8C,EAAAA,GACHL,OAAQ,CACJM,KAAM,UAEV32C,KAAM,CACF42C,QAAS,UACTC,UAAW,gBAiBVT,EAAOxmB,EAAAA,YAChB,CAAAyC,EAUI4D,KACE,IAVF,UACI5F,EACArR,OAAQ83B,EAAO,IACfC,EAAG,GACHC,EAAE,KACFh3C,EAAO,UAAS,OAChBq2C,GAAS,KACN9lB,GACN8B,EAGD,MAAO4kB,EAAcC,IAAa1nC,EAAAA,EAAAA,IAAM+gB,EAAM4mB,EAAAA,IAExCC,EAAaX,EAAK,IACjBQ,EACHZ,SACAr2C,KAAMq2C,EAASr2C,EAAO,KACtBqwB,cAGEgnB,GA3BIpqC,EA2BY+pC,IA3Ba/pC,EAAK6kC,WAAW,KAAzC7kC,MA6BV,GAnCgBA,IACpBA,IACCA,EAAK6kC,WAAY,aACjB7kC,EAAK6kC,WAAY,cACjB7kC,EAAK6kC,WAAY,MA+BVwF,CAAeN,KAAQK,EACvB,OACIznB,EAAAA,cAAC2nB,EAAAA,GACG1yC,OAAAyqB,OAAA,CACAQ,IAAKmG,EACL+gB,GAAIA,EACJ3mB,UAAW+mB,EACXp4B,OAAQ83B,EACRC,IAAKA,GACDG,IAKhB,MAAMl4B,EAAS83B,IAAYO,EAAO,QAAU,UAE5C,OACIznB,EAAAA,cAAA,IAAA/qB,OAAAyqB,OAAA,CACIQ,IAAKmG,EACLuhB,KAAMR,EACN3mB,UAAW+mB,EACXp4B,OAAQA,EACR+3B,IAAKA,GAAO,uBACRG,GACN,IAGZd,EAAAR,aAAA,GAEFQ,EAAK9f,YAAc,qGCpFZ,SAASmf,EAASpjB,GAGoB,IAHnB,SACtB/c,KACGib,GACmC8B,EACtC,OACIzC,EAAAA,cAAC6nB,EAAAA,GAAe5yC,OAAAyqB,OAAA,GAAKiB,EAAI,CAAEsjB,QAAQ,WAC9Bv+B,EAGb,CAACmgC,EAAAG,aAAA,4EC8SO8B,EA0VqBC,EACrBC,EAAQC,6FAjpBZC,EACM,iBADNA,EAEM,iBAFNA,EAGO,kBAGPC,EAAY,CACZC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,SAAU,WACVC,OAAQ,SACRC,MAAO,QACPC,MAAO,SAOPC,GAJkB7zC,OAAOC,KAAKizC,GAAWjwC,KAAI,SAAUY,GACvD,OAAOqvC,EAAUrvC,EACrB,IAGa,WADTgwC,EAEU,UAFVA,EAGM,OAHNA,EAIW,aAJXA,EAKY,YALZA,EAMW,WANXA,EAOM,OAPNA,EAQU,WARVA,EASK,MATLA,EAUK,MAVLA,EAWQ,SAGRC,EAAgB,CAChBC,UAAW,YACXC,QAAS,UACT1F,MAAO,YACP2F,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAGVC,EACe,eADfA,EAEO,QAFPA,EAG2B,0BAH3BA,EAIwB,sBAJxBA,EAKgB,gBAGhBC,EAAet0C,OAAOC,KAAK6zC,GAAe5zC,QAAO,SAAUsa,EAAKnd,GAEhE,OADAmd,EAAIs5B,EAAcz2C,IAAQA,EACnBmd,CACX,GAAG,CAAC,GAEA+5B,EAAoB,CAACrB,EAAUO,SAAUP,EAAUQ,OAAQR,EAAUS,OAErEa,EAAmB,oBAEnBC,EAA4B,mBAAXx2B,QAAoD,iBAApBA,OAAOC,SAAwB,SAAU1D,GAC5F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAyB,mBAAXyD,QAAyBzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAC3H,EAQIk6B,EAAc,WAChB,SAAS32B,EAAiB5D,EAAQ6Q,GAChC,IAAK,IAAIxvB,EAAI,EAAGA,EAAIwvB,EAAMrvB,OAAQH,IAAK,CACrC,IAAIm5C,EAAa3pB,EAAMxvB,GACvBm5C,EAAW/6B,WAAa+6B,EAAW/6B,aAAc,EACjD+6B,EAAW76B,cAAe,EACtB,UAAW66B,IAAYA,EAAW96B,UAAW,GACjD7Z,OAAO0d,eAAevD,EAAQw6B,EAAWt3C,IAAKs3C,EAChD,CACF,CAEA,OAAO,SAAUC,EAAaC,EAAYC,GAGxC,OAFID,GAAY92B,EAAiB62B,EAAYh6C,UAAWi6C,GACpDC,GAAa/2B,EAAiB62B,EAAaE,GACxCF,CACT,CACF,CAhBkB,GAkBdG,EAAW/0C,OAAOyqB,QAAU,SAAUtQ,GACxC,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CACzC,IAAIud,EAASnd,UAAUJ,GAEvB,IAAK,IAAI6B,KAAO0b,EACV/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAC/C8c,EAAO9c,GAAO0b,EAAO1b,GAG3B,CAEA,OAAO8c,CACT,EAkBI66B,EAA0B,SAAUx6B,EAAKva,GAC3C,IAAIka,EAAS,CAAC,EAEd,IAAK,IAAI3e,KAAKgf,EACRva,EAAKS,QAAQlF,IAAM,GAClBwE,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAKhf,KAC/C2e,EAAO3e,GAAKgf,EAAIhf,IAGlB,OAAO2e,CACT,EAUI86B,EAA0B,SAAiC5sB,GAG3D,OAAe,OAFFzsB,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,KAAmBA,UAAU,IAGjEod,OAAOqP,GAGXrP,OAAOqP,GAAKpP,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAChI,EAEIi8B,EAAwB,SAA+BC,GACvD,IAAIC,EAAiBC,EAAqBF,EAAWjC,EAAUU,OAC3D0B,EAAoBD,EAAqBF,EAAWd,GAExD,GAAIiB,GAAqBF,EAErB,OAAOE,EAAkBr8B,QAAQ,OAAO,WACpC,OAAOhd,MAAMmF,QAAQg0C,GAAkBA,EAAev5B,KAAK,IAAMu5B,CACrE,IAGJ,IAAIG,EAAwBF,EAAqBF,EAAWd,GAE5D,OAAOe,GAAkBG,QAAyBl7C,CACtD,EAEIm7C,EAAyB,SAAgCL,GACzD,OAAOE,EAAqBF,EAAWd,IAAwC,WAAa,CAChG,EAEIoB,EAA6B,SAAoCC,EAASP,GAC1E,OAAOA,EAAU70C,QAAO,SAAU0qB,GAC9B,YAAiC,IAAnBA,EAAM0qB,EACxB,IAAGzyC,KAAI,SAAU+nB,GACb,OAAOA,EAAM0qB,EACjB,IAAGx1C,QAAO,SAAUy1C,EAAU5iB,GAC1B,OAAOgiB,EAAS,CAAC,EAAGY,EAAU5iB,EAClC,GAAG,CAAC,EACR,EAEI6iB,EAA0B,SAAiCC,EAAmBV,GAC9E,OAAOA,EAAU70C,QAAO,SAAU0qB,GAC9B,YAAwC,IAA1BA,EAAMkoB,EAAUC,KAClC,IAAGlwC,KAAI,SAAU+nB,GACb,OAAOA,EAAMkoB,EAAUC,KAC3B,IAAGpwB,UAAU7iB,QAAO,SAAU41C,EAAkB9uC,GAC5C,IAAK8uC,EAAiBn6C,OAGlB,IAFA,IAAIsE,EAAOD,OAAOC,KAAK+G,GAEdxL,EAAI,EAAGA,EAAIyE,EAAKtE,OAAQH,IAAK,CAClC,IACIu6C,EADe91C,EAAKzE,GACiB+lB,cAEzC,IAA0D,IAAtDs0B,EAAkBn1C,QAAQq1C,IAAiC/uC,EAAI+uC,GAC/D,OAAOD,EAAiBx2C,OAAO0H,EAEvC,CAGJ,OAAO8uC,CACX,GAAG,GACP,EAEIE,EAAuB,SAA8B7hB,EAAS0hB,EAAmBV,GAEjF,IAAIc,EAAmB,CAAC,EAExB,OAAOd,EAAU70C,QAAO,SAAU0qB,GAC9B,QAAI/uB,MAAMmF,QAAQ4pB,EAAMmJ,WAGM,IAAnBnJ,EAAMmJ,IACbxyB,GAAK,WAAawyB,EAAU,mDAAwDsgB,EAAQzpB,EAAMmJ,IAAY,MAE3G,EACX,IAAGlxB,KAAI,SAAU+nB,GACb,OAAOA,EAAMmJ,EACjB,IAAGpR,UAAU7iB,QAAO,SAAUg2C,EAAcC,GACxC,IAAIC,EAAmB,CAAC,EAExBD,EAAa71C,QAAO,SAAU0G,GAG1B,IAFA,IAAIqvC,OAAsB,EACtBp2C,EAAOD,OAAOC,KAAK+G,GACdxL,EAAI,EAAGA,EAAIyE,EAAKtE,OAAQH,IAAK,CAClC,IAAI86C,EAAer2C,EAAKzE,GACpBu6C,EAAwBO,EAAa/0B,eAGiB,IAAtDs0B,EAAkBn1C,QAAQq1C,IAAmCM,IAAwBxC,GAAiE,cAA3C7sC,EAAIqvC,GAAqB90B,eAAoCw0B,IAA0BlC,GAAmE,eAA7C7sC,EAAI+uC,GAAuBx0B,gBACnP80B,EAAsBN,IAGuB,IAA7CF,EAAkBn1C,QAAQ41C,IAAyBA,IAAiBzC,GAA6ByC,IAAiBzC,GAA2ByC,IAAiBzC,IAC9JwC,EAAsBC,EAE9B,CAEA,IAAKD,IAAwBrvC,EAAIqvC,GAC7B,OAAO,EAGX,IAAIn3C,EAAQ8H,EAAIqvC,GAAqB90B,cAUrC,OARK00B,EAAiBI,KAClBJ,EAAiBI,GAAuB,CAAC,GAGxCD,EAAiBC,KAClBD,EAAiBC,GAAuB,CAAC,IAGxCJ,EAAiBI,GAAqBn3C,KACvCk3C,EAAiBC,GAAqBn3C,IAAS,GACxC,EAIf,IAAG6jB,UAAUzgB,SAAQ,SAAU0E,GAC3B,OAAOkvC,EAAa15C,KAAKwK,EAC7B,IAIA,IADA,IAAI/G,EAAOD,OAAOC,KAAKm2C,GACd56C,EAAI,EAAGA,EAAIyE,EAAKtE,OAAQH,IAAK,CAClC,IAAI86C,EAAer2C,EAAKzE,GACpB+6C,EAAW,IAAa,CAAC,EAAGN,EAAiBK,GAAeF,EAAiBE,IAEjFL,EAAiBK,GAAgBC,CACrC,CAEA,OAAOL,CACX,GAAG,IAAInzB,SACX,EAEIsyB,EAAuB,SAA8BF,EAAWqB,GAChE,IAAK,IAAIh7C,EAAI25C,EAAUx5C,OAAS,EAAGH,GAAK,EAAGA,IAAK,CAC5C,IAAIwvB,EAAQmqB,EAAU35C,GAEtB,GAAIwvB,EAAM5Q,eAAeo8B,GACrB,OAAOxrB,EAAMwrB,EAErB,CAEA,OAAO,IACX,EAoBIC,GACI5D,EAAQjyB,KAAKC,MAEV,SAAU61B,GACb,IAAIC,EAAc/1B,KAAKC,MAEnB81B,EAAc9D,EAAQ,IACtBA,EAAQ8D,EACRD,EAASC,IAET3xB,YAAW,WACPyxB,EAAYC,EAChB,GAAG,EAEX,GAGAE,EAAc,SAAqBvU,GACnC,OAAOhd,aAAagd,EACxB,EAEIiE,EAA0C,oBAAX7nB,OAAyBA,OAAO6nB,uBAAyB7nB,OAAO6nB,sBAAsBxuB,KAAK2G,SAAWA,OAAOo4B,6BAA+Bp4B,OAAOq4B,0BAA4BL,EAAc,EAAA15C,EAAOupC,uBAAyBmQ,EAE5PM,GAAyC,oBAAXt4B,OAAyBA,OAAOs4B,sBAAwBt4B,OAAOu4B,4BAA8Bv4B,OAAOw4B,yBAA2BL,EAAc,EAAA75C,EAAOg6C,sBAAwBH,EAE1Mj1C,GAAO,SAAcu1C,GACrB,OAAOx6C,SAAmC,mBAAjBA,QAAQiF,MAAuBjF,QAAQiF,KAAKu1C,EACzE,EAEIC,GAAkB,KAmBlBC,GAAmB,SAA0BxgC,EAAUjD,GACvD,IAAI0jC,EAAUzgC,EAASygC,QACnBC,EAAiB1gC,EAAS0gC,eAC1BC,EAAiB3gC,EAAS2gC,eAC1BC,EAAW5gC,EAAS4gC,SACpBC,EAAW7gC,EAAS6gC,SACpBC,EAAe9gC,EAAS8gC,aACxBC,EAAsB/gC,EAAS+gC,oBAC/BC,EAAahhC,EAASghC,WACtBC,EAAYjhC,EAASihC,UACrB3H,EAAQt5B,EAASs5B,MACjB4H,EAAkBlhC,EAASkhC,gBAE/BC,GAAiB7E,EAAUE,KAAMkE,GACjCS,GAAiB7E,EAAUI,KAAMiE,GAEjCS,GAAY9H,EAAO4H,GAEnB,IAAIG,EAAa,CACbZ,QAASa,GAAWhF,EAAUC,KAAMkE,GACpCG,SAAUU,GAAWhF,EAAUK,KAAMiE,GACrCC,SAAUS,GAAWhF,EAAUM,KAAMiE,GACrCC,aAAcQ,GAAWhF,EAAUO,SAAUiE,GAC7CE,WAAYM,GAAWhF,EAAUQ,OAAQkE,GACzCC,UAAWK,GAAWhF,EAAUS,MAAOkE,IAGvCM,EAAY,CAAC,EACbC,EAAc,CAAC,EAEnBp4C,OAAOC,KAAKg4C,GAAY31C,SAAQ,SAAUozC,GACtC,IAAI2C,EAAsBJ,EAAWvC,GACjC4C,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAG9BD,EAAQ38C,SACRw8C,EAAUzC,GAAW4C,GAErBC,EAAQ58C,SACRy8C,EAAY1C,GAAWuC,EAAWvC,GAAS6C,QAEnD,IAEA5kC,GAAMA,IAENgkC,EAAoB/gC,EAAUuhC,EAAWC,EAC7C,EAEII,GAAe,SAAsBC,GACrC,OAAOx8C,MAAMmF,QAAQq3C,GAAiBA,EAAc58B,KAAK,IAAM48B,CACnE,EAEIT,GAAc,SAAqB9H,EAAO3iC,QACrB,IAAV2iC,GAAyBnqB,SAASmqB,QAAUA,IACnDnqB,SAASmqB,MAAQsI,GAAatI,IAGlC6H,GAAiB7E,EAAUU,MAAOrmC,EACtC,EAEIwqC,GAAmB,SAA0B5jB,EAAS5mB,GACtD,IAAImrC,EAAa3yB,SAAS4yB,qBAAqBxkB,GAAS,GAExD,GAAKukB,EAAL,CASA,IALA,IAAIE,EAAwBF,EAAWjxB,aAAa+sB,GAChDqE,EAAmBD,EAAwBA,EAAsBjuC,MAAM,KAAO,GAC9EmuC,EAAqB,GAAGx5C,OAAOu5C,GAC/BE,EAAgB/4C,OAAOC,KAAKsN,GAEvB/R,EAAI,EAAGA,EAAIu9C,EAAcp9C,OAAQH,IAAK,CAC3C,IAAIyD,EAAY85C,EAAcv9C,GAC1B0D,EAAQqO,EAAWtO,IAAc,GAEjCy5C,EAAWjxB,aAAaxoB,KAAeC,GACvCw5C,EAAW7wB,aAAa5oB,EAAWC,IAGM,IAAzC25C,EAAiBn4C,QAAQzB,IACzB45C,EAAiBr8C,KAAKyC,GAG1B,IAAI+5C,EAAcF,EAAmBp4C,QAAQzB,IACxB,IAAjB+5C,GACAF,EAAmB37C,OAAO67C,EAAa,EAE/C,CAEA,IAAK,IAAIC,EAAKH,EAAmBn9C,OAAS,EAAGs9C,GAAM,EAAGA,IAClDP,EAAW5wB,gBAAgBgxB,EAAmBG,IAG9CJ,EAAiBl9C,SAAWm9C,EAAmBn9C,OAC/C+8C,EAAW5wB,gBAAgB0sB,GACpBkE,EAAWjxB,aAAa+sB,KAAsBuE,EAAcl9B,KAAK,MACxE68B,EAAW7wB,aAAa2sB,EAAkBuE,EAAcl9B,KAAK,KAhCjE,CAkCJ,EAEIq8B,GAAa,SAAoB/8C,EAAM+9C,GACvC,IAAIC,EAAcpzB,SAASqzB,MAAQrzB,SAASszB,cAAcnG,EAAUG,MAChEiG,EAAWH,EAAYlxB,iBAAiB9sB,EAAO,IAAMq5C,EAAmB,KACxE+D,EAAUt8C,MAAMrB,UAAUsB,MAAMF,KAAKs9C,GACrChB,EAAU,GACViB,OAAgB,EA4CpB,OA1CIL,GAAQA,EAAKv9C,QACbu9C,EAAK52C,SAAQ,SAAU0E,GACnB,IAAIwyC,EAAazzB,SAAS8K,cAAc11B,GAExC,IAAK,IAAI8D,KAAa+H,EAClB,GAAIA,EAAIoT,eAAenb,GACnB,GAAIA,IAAc40C,EACd2F,EAAWC,UAAYzyC,EAAIyyC,eACxB,GAAIx6C,IAAc40C,EACjB2F,EAAWE,WACXF,EAAWE,WAAW1oB,QAAUhqB,EAAIgqB,QAEpCwoB,EAAWG,YAAY5zB,SAAS6zB,eAAe5yC,EAAIgqB,cAEpD,CACH,IAAI9xB,OAAkC,IAAnB8H,EAAI/H,GAA6B,GAAK+H,EAAI/H,GAC7Du6C,EAAW3xB,aAAa5oB,EAAWC,EACvC,CAIRs6C,EAAW3xB,aAAa2sB,EAAkB,QAGtC+D,EAAQx8B,MAAK,SAAU89B,EAAa/7C,GAEpC,OADAy7C,EAAgBz7C,EACT07C,EAAWM,YAAYD,EAClC,IACItB,EAAQp7C,OAAOo8C,EAAe,GAE9BjB,EAAQ97C,KAAKg9C,EAErB,IAGJjB,EAAQj2C,SAAQ,SAAU0E,GACtB,OAAOA,EAAIwf,WAAWuzB,YAAY/yC,EACtC,IACAsxC,EAAQh2C,SAAQ,SAAU0E,GACtB,OAAOmyC,EAAYQ,YAAY3yC,EACnC,IAEO,CACHuxC,QAASA,EACTD,QAASA,EAEjB,EAEI0B,GAAoC,SAA2CzsC,GAC/E,OAAOvN,OAAOC,KAAKsN,GAAYrN,QAAO,SAAUmoB,EAAKhrB,GACjD,IAAImqB,OAAkC,IAApBja,EAAWlQ,GAAuBA,EAAM,KAAQkQ,EAAWlQ,GAAO,IAAO,GAAKA,EAChG,OAAOgrB,EAAMA,EAAM,IAAMb,EAAOA,CACpC,GAAG,GACP,EAyBIyyB,GAAuC,SAA8C1sC,GACrF,IAAI2sC,EAAYt+C,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAErF,OAAOoE,OAAOC,KAAKsN,GAAYrN,QAAO,SAAUsa,EAAKnd,GAEjD,OADAmd,EAAIs5B,EAAcz2C,IAAQA,GAAOkQ,EAAWlQ,GACrCmd,CACX,GAAG0/B,EACP,EA8CIC,GAAmB,SAA0Bh/C,EAAM+9C,EAAMkB,GACzD,OAAQj/C,GACJ,KAAK+3C,EAAUU,MACX,MAAO,CACHyG,YAAa,WACT,OAxC6DnK,EAwClBgJ,EAAKhJ,MAxCoB3iC,EAwCb2rC,EAAKpB,iBApC3DwC,EAAa,CAC1Bj9C,IAAK6yC,IACKsE,IAAoB,EAC9BxpB,EAAQivB,GAAqC1sC,EADT+sC,GAGjC,CAAC,gBAAoBpH,EAAUU,MAAO5oB,EAAOklB,IATpB,IAA6CA,EAAO3iC,EAChF+sC,EAMAtvB,CAkCQ,EACAlgB,SAAU,WACN,OApFQ,SAA+B3P,EAAM+0C,EAAO3iC,EAAY6sC,GAChF,IAAIG,EAAkBP,GAAkCzsC,GACpDitC,EAAiBhC,GAAatI,GAClC,OAAOqK,EAAkB,IAAMp/C,EAAO,IAAMq5C,EAAmB,WAAe+F,EAAkB,IAAMtF,EAAwBuF,EAAgBJ,GAAU,KAAOj/C,EAAO,IAAM,IAAMA,EAAO,IAAMq5C,EAAmB,WAAeS,EAAwBuF,EAAgBJ,GAAU,KAAOj/C,EAAO,GACrS,CAgF2Bs/C,CAAsBt/C,EAAM+9C,EAAKhJ,MAAOgJ,EAAKpB,gBAAiBsC,EACzE,GAER,KAAKnH,EACL,KAAKA,EACD,MAAO,CACHoH,YAAa,WACT,OAAOJ,GAAqCf,EAChD,EACApuC,SAAU,WACN,OAAOkvC,GAAkCd,EAC7C,GAER,QACI,MAAO,CACHmB,YAAa,WACT,OA/Ce,SAAsCl/C,EAAM+9C,GAC3E,OAAOA,EAAKj2C,KAAI,SAAU+D,EAAKxL,GAC3B,IAAIk/C,EAEAC,IAAaD,EAAa,CAC1Br9C,IAAK7B,IACKg5C,IAAoB,EAAMkG,GAaxC,OAXA16C,OAAOC,KAAK+G,GAAK1E,SAAQ,SAAUrD,GAC/B,IAAI27C,EAAkB9G,EAAc70C,IAAcA,EAElD,GAAI27C,IAAoB/G,GAA6B+G,IAAoB/G,EAAyB,CAC9F,IAAI7/B,EAAUhN,EAAIyyC,WAAazyC,EAAIgqB,QACnC2pB,EAAUvT,wBAA0B,CAAEC,OAAQrzB,EAClD,MACI2mC,EAAUC,GAAmB5zC,EAAI/H,EAEzC,IAEO,gBAAoB9D,EAAMw/C,EACrC,GACJ,CA0B2BE,CAA6B1/C,EAAM+9C,EAC9C,EACApuC,SAAU,WACN,OAjGO,SAA8B3P,EAAM+9C,EAAMkB,GACjE,OAAOlB,EAAKh5C,QAAO,SAAUmoB,EAAKrhB,GAC9B,IAAI8zC,EAAgB96C,OAAOC,KAAK+G,GAAK1G,QAAO,SAAUrB,GAClD,QAASA,IAAc40C,GAA6B50C,IAAc40C,EACtE,IAAG3zC,QAAO,SAAU66C,EAAQ97C,GACxB,IAAIuoB,OAAiC,IAAnBxgB,EAAI/H,GAA6BA,EAAYA,EAAY,KAAQg2C,EAAwBjuC,EAAI/H,GAAYm7C,GAAU,IACrI,OAAOW,EAASA,EAAS,IAAMvzB,EAAOA,CAC1C,GAAG,IAECwzB,EAAah0C,EAAIyyC,WAAazyC,EAAIgqB,SAAW,GAE7CiqB,GAAqD,IAArC1G,EAAkB7zC,QAAQvF,GAE9C,OAAOktB,EAAM,IAAMltB,EAAO,IAAMq5C,EAAmB,WAAesG,GAAiBG,EAAgB,KAAO,IAAMD,EAAa,KAAO7/C,EAAO,IAC/I,GAAG,GACP,CAkF2B+/C,CAAqB//C,EAAM+9C,EAAMkB,EAC5C,GAGhB,EAEIe,GAAmB,SAA0B3tB,GAC7C,IAAI6pB,EAAU7pB,EAAK6pB,QACfC,EAAiB9pB,EAAK8pB,eACtB8C,EAAS5sB,EAAK4sB,OACd7C,EAAiB/pB,EAAK+pB,eACtBC,EAAWhqB,EAAKgqB,SAChBC,EAAWjqB,EAAKiqB,SAChBC,EAAelqB,EAAKkqB,aACpBE,EAAapqB,EAAKoqB,WAClBC,EAAYrqB,EAAKqqB,UACjBuD,EAAa5tB,EAAK0iB,MAClBA,OAAuB71C,IAAf+gD,EAA2B,GAAKA,EACxCtD,EAAkBtqB,EAAKsqB,gBAC3B,MAAO,CACHuD,KAAMlB,GAAiBjH,EAAUC,KAAMkE,EAAS+C,GAChD9C,eAAgB6C,GAAiBlH,EAAsBqE,EAAgB8C,GACvE7C,eAAgB4C,GAAiBlH,EAAsBsE,EAAgB6C,GACvExI,KAAMuI,GAAiBjH,EAAUK,KAAMiE,EAAU4C,GACjDkB,KAAMnB,GAAiBjH,EAAUM,KAAMiE,EAAU2C,GACjDmB,SAAUpB,GAAiBjH,EAAUO,SAAUiE,EAAc0C,GAC7DoB,OAAQrB,GAAiBjH,EAAUQ,OAAQkE,EAAYwC,GACvDrpB,MAAOopB,GAAiBjH,EAAUS,MAAOkE,EAAWuC,GACpDlK,MAAOiK,GAAiBjH,EAAUU,MAAO,CAAE1D,MAAOA,EAAO4H,gBAAiBA,GAAmBsC,GAErG,EAwPIqB,GAAoB,KAnmBC,SAA4BtG,GACjD,MAAO,CACHkC,QAASzB,EAAwB,CAAC/B,EAAqBA,GAAwBsB,GAC/EmC,eAAgB7B,EAA2BxC,EAAsBkC,GACjEuG,MAAOrG,EAAqBF,EAAWd,GACvC+F,OAAQ/E,EAAqBF,EAAWd,GACxCkD,eAAgB9B,EAA2BxC,EAAsBkC,GACjEqC,SAAUxB,EAAqB9C,EAAUK,KAAM,CAACM,EAAoBA,GAAsBsB,GAC1FsC,SAAUzB,EAAqB9C,EAAUM,KAAM,CAACK,EAAqBA,EAAwBA,EAA0BA,EAAyBA,GAA2BsB,GAC3KuC,aAAc1B,EAAqB9C,EAAUO,SAAU,CAACI,GAA4BsB,GACpFwC,oBAAqBnC,EAAuBL,GAC5CyC,WAAY5B,EAAqB9C,EAAUQ,OAAQ,CAACG,EAAoBA,GAA4BsB,GACpG0C,UAAW7B,EAAqB9C,EAAUS,MAAO,CAACE,GAA0BsB,GAC5EjF,MAAOgF,EAAsBC,GAC7B2C,gBAAiBrC,EAA2BxC,EAAuBkC,GAE3E,IAiC8B,SAAiCv+B,GACvDugC,IACAJ,GAAqBI,IAGrBvgC,EAAS8kC,MACTvE,GAAkB7Q,GAAsB,WACpC8Q,GAAiBxgC,GAAU,WACvBugC,GAAkB,IACtB,GACJ,KAEAC,GAAiBxgC,GACjBugC,GAAkB,KAE1B,GAmiBoFgE,GAA5D,EAJJ,WAChB,OAAO,IACX,IAIIQ,IAxPyB7I,EAwPH2I,GArPfzI,EAAQD,EAAS,SAAU6I,GAG9B,SAASC,IAEL,OAjlBS,SAAUr4C,EAAUoxC,GACvC,KAAMpxC,aAAoBoxC,GACxB,MAAM,IAAI35C,UAAU,oCAExB,CA4kBY6gD,CAAe5hD,KAAM2hD,GA9gBD,SAAUx5C,EAAMrG,GAC9C,IAAKqG,EACH,MAAM,IAAI05C,eAAe,6DAG3B,OAAO//C,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BqG,EAAPrG,CAC5E,CAygBmBggD,CAA0B9hD,KAAM0hD,EAAiBz/C,MAAMjC,KAAM0B,WACxE,CA6LA,OAzuBO,SAAUqgD,EAAUC,GACjC,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIjhD,UAAU,kEAAoEihD,GAG1FD,EAASrhD,UAAYoF,OAAO2Z,OAAOuiC,GAAcA,EAAWthD,UAAW,CACrEwJ,YAAa,CACXlF,MAAO+8C,EACPriC,YAAY,EACZC,UAAU,EACVC,cAAc,KAGdoiC,IAAYl8C,OAAOm8C,eAAiBn8C,OAAOm8C,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAC7G,CAyhBQ59C,CAASu9C,EAAeD,GAOxBC,EAAcjhD,UAAUyhD,sBAAwB,SAA+BC,GAC3E,OAAQ,IAAQpiD,KAAK8wB,MAAOsxB,EAChC,EAEAT,EAAcjhD,UAAU2hD,yBAA2B,SAAkCnsC,EAAOosC,GACxF,IAAKA,EACD,OAAO,KAGX,OAAQpsC,EAAMjV,MACV,KAAK+3C,EAAUQ,OACf,KAAKR,EAAUO,SACX,MAAO,CACHgG,UAAW+C,GAGnB,KAAKtJ,EAAUS,MACX,MAAO,CACH3iB,QAASwrB,GAIrB,MAAM,IAAI3gD,MAAM,IAAMuU,EAAMjV,KAAO,qGACvC,EAEA0gD,EAAcjhD,UAAU6hD,yBAA2B,SAAkCjvB,GACjF,IAAIkvB,EAEAtsC,EAAQod,EAAKpd,MACbusC,EAAoBnvB,EAAKmvB,kBACzBC,EAAgBpvB,EAAKovB,cACrBJ,EAAiBhvB,EAAKgvB,eAE1B,OAAOzH,EAAS,CAAC,EAAG4H,IAAoBD,EAAwB,CAAC,GAAyBtsC,EAAMjV,MAAQ,GAAGmE,OAAOq9C,EAAkBvsC,EAAMjV,OAAS,GAAI,CAAC45C,EAAS,CAAC,EAAG6H,EAAe1iD,KAAKqiD,yBAAyBnsC,EAAOosC,MAAoBE,GACjP,EAEAb,EAAcjhD,UAAUiiD,sBAAwB,SAA+BxtB,GAC3E,IAAIytB,EAAwBC,EAExB3sC,EAAQif,EAAMjf,MACd4sC,EAAW3tB,EAAM2tB,SACjBJ,EAAgBvtB,EAAMutB,cACtBJ,EAAiBntB,EAAMmtB,eAE3B,OAAQpsC,EAAMjV,MACV,KAAK+3C,EAAUU,MACX,OAAOmB,EAAS,CAAC,EAAGiI,IAAWF,EAAyB,CAAC,GAA0B1sC,EAAMjV,MAAQqhD,EAAgBM,EAAuBhF,gBAAkB/C,EAAS,CAAC,EAAG6H,GAAgBE,IAE3L,KAAK5J,EAAUE,KACX,OAAO2B,EAAS,CAAC,EAAGiI,EAAU,CAC1B1F,eAAgBvC,EAAS,CAAC,EAAG6H,KAGrC,KAAK1J,EAAUI,KACX,OAAOyB,EAAS,CAAC,EAAGiI,EAAU,CAC1BzF,eAAgBxC,EAAS,CAAC,EAAG6H,KAIzC,OAAO7H,EAAS,CAAC,EAAGiI,IAAWD,EAAyB,CAAC,GAA0B3sC,EAAMjV,MAAQ45C,EAAS,CAAC,EAAG6H,GAAgBG,GAClI,EAEAlB,EAAcjhD,UAAUqiD,4BAA8B,SAAqCN,EAAmBK,GAC1G,IAAIE,EAAoBnI,EAAS,CAAC,EAAGiI,GAQrC,OANAh9C,OAAOC,KAAK08C,GAAmBr6C,SAAQ,SAAU66C,GAC7C,IAAIC,EAEJF,EAAoBnI,EAAS,CAAC,EAAGmI,IAAoBE,EAAyB,CAAC,GAA0BD,GAAkBR,EAAkBQ,GAAiBC,GAClK,IAEOF,CACX,EAEArB,EAAcjhD,UAAUyiD,sBAAwB,SAA+BjtC,EAAOosC,GAmBlF,OAAO,CACX,EAEAX,EAAcjhD,UAAU0iD,mBAAqB,SAA4B7sC,EAAUusC,GAC/E,IAAIO,EAASrjD,KAETyiD,EAAoB,CAAC,EAyCzB,OAvCA,mBAAuBlsC,GAAU,SAAUL,GACvC,GAAKA,GAAUA,EAAM4a,MAArB,CAIA,IAAIwyB,EAAeptC,EAAM4a,MACrBwxB,EAAiBgB,EAAa/sC,SAG9BmsC,EAhOoB,SAA2C5xB,GAC/E,IAAIyyB,EAAiB7hD,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE1F,OAAOoE,OAAOC,KAAK+qB,GAAO9qB,QAAO,SAAUsa,EAAKnd,GAE5C,OADAmd,EAAI85B,EAAaj3C,IAAQA,GAAO2tB,EAAM3tB,GAC/Bmd,CACX,GAAGijC,EACP,CAyNoCC,CAFH1I,EAAwBwI,EAAc,CAAC,cAMxD,OAFAD,EAAOF,sBAAsBjtC,EAAOosC,GAE5BpsC,EAAMjV,MACV,KAAK+3C,EAAUK,KACf,KAAKL,EAAUM,KACf,KAAKN,EAAUO,SACf,KAAKP,EAAUQ,OACf,KAAKR,EAAUS,MACXgJ,EAAoBY,EAAOd,yBAAyB,CAChDrsC,MAAOA,EACPusC,kBAAmBA,EACnBC,cAAeA,EACfJ,eAAgBA,IAEpB,MAEJ,QACIQ,EAAWO,EAAOV,sBAAsB,CACpCzsC,MAAOA,EACP4sC,SAAUA,EACVJ,cAAeA,EACfJ,eAAgBA,IA7B5B,CAiCJ,IAEAQ,EAAW9iD,KAAK+iD,4BAA4BN,EAAmBK,EAEnE,EAEAnB,EAAcjhD,UAAU+iD,OAAS,WAC7B,IAAIC,EAAS1jD,KAAK8wB,MACdva,EAAWmtC,EAAOntC,SAClBua,EAAQgqB,EAAwB4I,EAAQ,CAAC,aAEzCZ,EAAWjI,EAAS,CAAC,EAAG/pB,GAM5B,OAJIva,IACAusC,EAAW9iD,KAAKojD,mBAAmB7sC,EAAUusC,IAG1C,gBAAoBlK,EAAWkK,EAC1C,EAEAtI,EAAYmH,EAAe,KAAM,CAAC,CAC9Bx+C,IAAK,YAyBL0hB,IAAK,SAAgB8+B,GACjB/K,EAAU+K,UAAYA,CAC1B,KAEGhC,CACX,CApMwB,CAoMtB,aAAkB9I,EAAO+K,UAAY,CACnCzC,KAAM,WACN/D,eAAgB,WAChB7mC,SAAU,cAAoB,CAAC,YAAkB,UAAiB,WAClEstC,aAAc,WACdrC,MAAO,SACPzG,wBAAyB,SACzBsC,eAAgB,WAChB3F,KAAM,YAAkB,YACxB0J,KAAM,YAAkB,YACxBC,SAAU,YAAkB,YAC5B5D,oBAAqB,SACrB6D,OAAQ,YAAkB,YAC1BzqB,MAAO,YAAkB,YACzBmf,MAAO,WACP4H,gBAAiB,WACjBkG,cAAe,YAChBjL,EAAOkL,aAAe,CACrBvC,OAAO,EACPzG,yBAAyB,GAC1BlC,EAAOmL,KAAOpL,EAAUoL,KAAMnL,EAAOoL,OAAS,WAC7C,IAAIC,EAActL,EAAUqL,SAkB5B,OAjBKC,IAEDA,EAAcjD,GAAiB,CAC3B9D,QAAS,GACTC,eAAgB,CAAC,EACjBrC,yBAAyB,EACzBsC,eAAgB,CAAC,EACjBC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdE,WAAY,GACZC,UAAW,GACX3H,MAAO,GACP4H,gBAAiB,CAAC,KAInBsG,CACX,EAAGpL,GAUP2I,GAAa0C,aAAe1C,GAAawC,OAEzC,gBC54BA,MAAMG,GAAgB,4BAChBC,GACF,qLACEC,GAAmB,uBACnBC,GAAmB,iBAQlB,SAASC,GAAOlxB,GAKoB,IALnB,UACpBmxB,EAAYL,GAAa,MACzBpO,EAAK,YACL0O,EAAcL,GAAmB,SACjC9tC,GACoC+c,EACpC,MAAMqxB,EAAY,CAAC3O,EAAOyO,GAAWr+C,OAAOiR,SAASsK,KAAK,OAE1D,IAAIijC,EAOJ,OANIF,IAAgBL,KAChBO,EACI/zB,EAAAA,cAAA,QAAMlnB,KAAK,cAAcmQ,QAAS4qC,KAKtC7zB,EAAAA,cAACg0B,GAAM,KACHh0B,EAAAA,cAAA,aAAQ8zB,GACPC,EAED/zB,EAAAA,cAAA,QAAMi0B,UAAU,eAAehrC,QAAQ,6BACvC+W,EAAAA,cAAA,QAAMk0B,QAAQ,UAEdl0B,EAAAA,cAAA,QAAMyrB,SAAS,SAASxiC,QAASkrC,GAAAA,KACjCn0B,EAAAA,cAAA,QAAMyrB,SAAS,UAAUxiC,QAAQ,YACjC+W,EAAAA,cAAA,QAAMyrB,SAAS,WAAWxiC,QAAS6qC,IACnC9zB,EAAAA,cAAA,QAAMyrB,SAAS,iBAAiBxiC,QAAS4qC,IACzC7zB,EAAAA,cAAA,QAAMyrB,SAAS,WAAWxiC,QAASwqC,KACnCzzB,EAAAA,cAAA,QAAMyrB,SAAS,iBAAiBxiC,QAAQ,SACxC+W,EAAAA,cAAA,QAAMyrB,SAAS,kBAAkBxiC,QAAQ,QAEzC+W,EAAAA,cAAA,QAAMyrB,SAAS,eAAexiC,QAAQ,wBACtC+W,EAAAA,cAAA,QAAMyrB,SAAS,iBAAiBxiC,QAAQ,yBACxC+W,EAAAA,cAAA,QAAMyrB,SAAS,cAAcxiC,QAASkrC,GAAAA,KACtCn0B,EAAAA,cAAA,QAAMyrB,SAAS,gBAAgBxiC,QAAS6qC,IACxC9zB,EAAAA,cAAA,QAAMyrB,SAAS,sBAAsBxiC,QAAS4qC,IAC9C7zB,EAAAA,cAAA,QAAMyrB,SAAS,gBAAgBxiC,QAASwqC,KACxCzzB,EAAAA,cAAA,QAAMyrB,SAAS,kBAAkBxiC,QAASyqC,KAE1C1zB,EAAAA,cAAA,QAAMi0B,UAAU,kBAAkBhrC,QAAQ,YAC1C+W,EAAAA,cAAA,QACIlnB,KAAK,WACLmQ,QAAQ,0CAEZ+W,EAAAA,cAAA,QACImnB,IAAI,gBACJS,KAAK,8BACLx3C,KAAK,iBAET4vB,EAAAA,cAAA,QACImnB,IAAI,mBACJS,KAAK,uCACLxlB,MAAM,YAEVpC,EAAAA,cAAA,QACImnB,IAAI,OACJS,KAAK,oCACLxlB,MAAM,QACNhyB,KAAK,cAET4vB,EAAAA,cAAA,QACImnB,IAAI,OACJS,KAAK,oCACLxlB,MAAM,QACNhyB,KAAK,cAET4vB,EAAAA,cAAA,QACIlnB,KAAK,2BACLmQ,QAAQ,gDAEXvD,EAGb,CAACiuC,GAAA3N,aAAA,gMCvEIoO,EAAS,WAGb,IAAIC,EAAO,0CACPC,EAAW,EAGXC,EAAmB,CAAC,EAGpBtS,EAAI,CAUPuS,KAAM,CACLnF,OAAQ,SAASA,EAAOoF,GACvB,OAAIA,aAAkBC,EACd,IAAIA,EAAMD,EAAOrkD,KAAMi/C,EAAOoF,EAAOxrC,SAAUwrC,EAAOE,OACnDzjD,MAAMmF,QAAQo+C,GACjBA,EAAOv8C,IAAIm3C,GAEXoF,EAAOvmC,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,UAAW,IAEhF,EAkBA9d,KAAM,SAAU0iB,GACf,OAAO7d,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,EACpD,EAQAyjD,MAAO,SAAUnlC,GAIhB,OAHKA,EAAU,MACdxa,OAAO0d,eAAelD,EAAK,OAAQ,CAAEtb,QAASmgD,IAExC7kC,EAAU,IAClB,EAYAolC,MAAO,SAASC,EAAUhiC,EAAGiiC,GAG5B,IAAIF,EAAWvd,EACf,OAHAyd,EAAUA,GAAW,CAAC,EAGd9S,EAAEuS,KAAKpkD,KAAK0iB,IACnB,IAAK,SAEJ,GADAwkB,EAAK2K,EAAEuS,KAAKI,MAAM9hC,GACdiiC,EAAQzd,GACX,OAAOyd,EAAQzd,GAKhB,IAAK,IAAIhlC,KAHTuiD,EAA2C,CAAG,EAC9CE,EAAQzd,GAAMud,EAEE/hC,EACXA,EAAEzD,eAAe/c,KACpBuiD,EAAMviD,GAAOwiD,EAAUhiC,EAAExgB,GAAMyiD,IAIjC,OAA0B,EAE3B,IAAK,QAEJ,OADAzd,EAAK2K,EAAEuS,KAAKI,MAAM9hC,GACdiiC,EAAQzd,GACJyd,EAAQzd,IAEhBud,EAAQ,GACRE,EAAQzd,GAAMud,EAEd,EAA8Ct9C,SAAQ,SAAU5C,EAAGlE,GAClEokD,EAAMpkD,GAAKqkD,EAAUngD,EAAGogD,EACzB,IAE0B,GAE3B,QACC,OAAOjiC,EAEV,EAUAkiC,YAAa,SAAUnvB,GACtB,KAAOA,GAAS,CACf,IAAIt0B,EAAI8iD,EAAKY,KAAKpvB,EAAQpF,WAC1B,GAAIlvB,EACH,OAAOA,EAAE,GAAGilB,cAEbqP,EAAUA,EAAQ2F,aACnB,CACA,MAAO,MACR,EASA0pB,YAAa,SAAUrvB,EAASsvB,GAG/BtvB,EAAQpF,UAAYoF,EAAQpF,UAAUvS,QAAQknC,OAAOf,EAAM,MAAO,IAIlExuB,EAAQwvB,UAAUn9B,IAAI,YAAci9B,EACrC,EAqBAG,SAAU,SAAUzvB,EAASpF,EAAW80B,GAGvC,IAFA,IAAIC,EAAK,MAAQ/0B,EAEVoF,GAAS,CACf,IAAIwvB,EAAYxvB,EAAQwvB,UACxB,GAAIA,EAAUv5B,SAAS2E,GACtB,OAAO,EAER,GAAI40B,EAAUv5B,SAAS05B,GACtB,OAAO,EAER3vB,EAAUA,EAAQ2F,aACnB,CACA,QAAS+pB,CACV,GAUDE,UAAW,CAIVC,MAAOnB,EACPoB,UAAWpB,EACXqB,KAAMrB,EACNsB,IAAKtB,EA8BLuB,OAAQ,SAAUxe,EAAIye,GACrB,IAAI1B,EAAOpS,EAAEuS,KAAKK,MAAM5S,EAAEwT,UAAUne,IAEpC,IAAK,IAAIhlC,KAAOyjD,EACf1B,EAAK/hD,GAAOyjD,EAAMzjD,GAGnB,OAAO+hD,CACR,EA6EA2B,aAAc,SAAUC,EAAQC,EAAQC,EAAQ1xC,GAE/C,IAAI2xC,GADJ3xC,EAAOA,GAA4Bw9B,EAAW,WAC3BgU,GAEfI,EAAM,CAAC,EAEX,IAAK,IAAIC,KAASF,EACjB,GAAIA,EAAQ/mC,eAAeinC,GAAQ,CAElC,GAAIA,GAASJ,EACZ,IAAK,IAAIK,KAAYJ,EAChBA,EAAO9mC,eAAeknC,KACzBF,EAAIE,GAAYJ,EAAOI,IAMrBJ,EAAO9mC,eAAeinC,KAC1BD,EAAIC,GAASF,EAAQE,GAEvB,CAGD,IAAIE,EAAM/xC,EAAKwxC,GAUf,OATAxxC,EAAKwxC,GAAUI,EAGfpU,EAAEwT,UAAUgB,IAAIxU,EAAEwT,WAAW,SAAUnjD,EAAK6B,GACvCA,IAAUqiD,GAAOlkD,GAAO2jD,IAC3B9mD,KAAKmD,GAAO+jD,EAEd,IAEOA,CACR,EAGAI,IAAK,SAASA,EAAI3jC,EAAG64B,EAAUv7C,EAAM2kD,GACpCA,EAAUA,GAAW,CAAC,EAEtB,IAAIH,EAAQ3S,EAAEuS,KAAKI,MAEnB,IAAK,IAAInkD,KAAKqiB,EACb,GAAIA,EAAEzD,eAAe5e,GAAI,CACxBk7C,EAAS16C,KAAK6hB,EAAGriB,EAAGqiB,EAAEriB,GAAIL,GAAQK,GAElC,IAAIg7C,EAAW34B,EAAEriB,GACbimD,EAAezU,EAAEuS,KAAKpkD,KAAKq7C,GAEV,WAAjBiL,GAA8B3B,EAAQH,EAAMnJ,IAGpB,UAAjBiL,GAA6B3B,EAAQH,EAAMnJ,MACrDsJ,EAAQH,EAAMnJ,KAAa,EAC3BgL,EAAIhL,EAAUE,EAAUl7C,EAAGskD,KAJ3BA,EAAQH,EAAMnJ,KAAa,EAC3BgL,EAAIhL,EAAUE,EAAU,KAAMoJ,GAKhC,CAEF,GAGD4B,QAAS,CAAC,EAuBVC,UAAW,SAAUhB,EAAMQ,EAASjB,GACnC,IAAI0B,EAAM,CACTC,KAAMlB,EACNQ,QAASA,EACTjB,SAAUA,GAKX,OAHAlT,EAAE8U,MAAMC,IAAI,kBAAmBH,GAC/BA,EAAIpC,OAASxS,EAAEgV,SAASJ,EAAIC,KAAMD,EAAIT,SACtCnU,EAAE8U,MAAMC,IAAI,iBAAkBH,GACvBnC,EAAMz0C,UAAUgiC,EAAEuS,KAAKnF,OAAOwH,EAAIpC,QAASoC,EAAI1B,SACvD,EA0BA8B,SAAU,SAAUrB,EAAMQ,GACzB,IAAIz1B,EAAOy1B,EAAQz1B,KACnB,GAAIA,EAAM,CACT,IAAK,IAAI21B,KAAS31B,EACjBy1B,EAAQE,GAAS31B,EAAK21B,UAGhBF,EAAQz1B,IAChB,CAEA,IAAIu2B,EAAY,IAAIC,EAKpB,OAJAC,EAASF,EAAWA,EAAU7I,KAAMuH,GAEpCyB,EAAazB,EAAMsB,EAAWd,EAASc,EAAU7I,KAAM,GAwazD,SAAiBn8C,GAChB,IAAI4L,EAAQ,GACR0H,EAAOtT,EAAKm8C,KAAKh7B,KACrB,KAAO7N,IAAStT,EAAKolD,MACpBx5C,EAAMrM,KAAK+T,EAAKrR,OAChBqR,EAAOA,EAAK6N,KAEb,OAAOvV,CACR,CA9aSy5C,CAAQL,EAChB,EAOAH,MAAO,CACNhjC,IAAK,CAAC,EAcNmE,IAAK,SAAUpf,EAAM6yC,GACpB,IAAIoL,EAAQ9U,EAAE8U,MAAMhjC,IAEpBgjC,EAAMj+C,GAAQi+C,EAAMj+C,IAAS,GAE7Bi+C,EAAMj+C,GAAMrH,KAAKk6C,EAClB,EAWAqL,IAAK,SAAUl+C,EAAM+9C,GACpB,IAAIW,EAAYvV,EAAE8U,MAAMhjC,IAAIjb,GAE5B,GAAK0+C,GAAcA,EAAU5mD,OAI7B,IAAK,IAAW+6C,EAAPl7C,EAAI,EAAck7C,EAAW6L,EAAU/mD,MAC/Ck7C,EAASkL,EAEX,GAGDnC,MAAOA,GAoBR,SAASA,EAAMtkD,EAAM6Y,EAAS0rC,EAAO8C,GAUpCtoD,KAAKiB,KAAOA,EASZjB,KAAK8Z,QAAUA,EAQf9Z,KAAKwlD,MAAQA,EAEbxlD,KAAKyB,OAAqC,GAA3B6mD,GAAc,IAAI7mD,MAClC,CA6EA,SAAS8mD,EAAaC,EAAS9pC,EAAK+nC,EAAMgC,GACzCD,EAAQE,UAAYhqC,EACpB,IAAIiqC,EAAQH,EAAQ1C,KAAKW,GACzB,GAAIkC,GAASF,GAAcE,EAAM,GAAI,CAEpC,IAAIC,EAAmBD,EAAM,GAAGlnD,OAChCknD,EAAM/kD,OAASglD,EACfD,EAAM,GAAKA,EAAM,GAAG3mD,MAAM4mD,EAC3B,CACA,OAAOD,CACR,CAgBA,SAAST,EAAazB,EAAMsB,EAAWd,EAAS4B,EAAWC,EAAUC,GACpE,IAAK,IAAI5B,KAASF,EACjB,GAAKA,EAAQ/mC,eAAeinC,IAAWF,EAAQE,GAA/C,CAIA,IAAI6B,EAAW/B,EAAQE,GACvB6B,EAAWjnD,MAAMmF,QAAQ8hD,GAAYA,EAAW,CAACA,GAEjD,IAAK,IAAIlgC,EAAI,EAAGA,EAAIkgC,EAASvnD,SAAUqnB,EAAG,CACzC,GAAIigC,GAAWA,EAAQE,OAAS9B,EAAQ,IAAMr+B,EAC7C,OAGD,IAAIogC,EAAaF,EAASlgC,GACtBg+B,EAASoC,EAAWpC,OACpB2B,IAAeS,EAAWT,WAC1BU,IAAWD,EAAWC,OACtB3D,EAAQ0D,EAAW1D,MAEvB,GAAI2D,IAAWD,EAAWV,QAAQY,OAAQ,CAEzC,IAAIC,EAAQH,EAAWV,QAAQ53C,WAAW+3C,MAAM,aAAa,GAC7DO,EAAWV,QAAUvC,OAAOiD,EAAWV,QAAQ3pC,OAAQwqC,EAAQ,IAChE,CAKA,IAFA,IAAIb,EAAUU,EAAWV,SAAWU,EAG/BptB,EAAc+sB,EAAU3kC,KAAMxF,EAAMoqC,EACxChtB,IAAgBisB,EAAUI,QAItBY,GAAWrqC,GAAOqqC,EAAQO,OAH9B5qC,GAAOod,EAAY92B,MAAMvD,OAAQq6B,EAAcA,EAAY5X,KAC1D,CAMD,IAAIiK,EAAM2N,EAAY92B,MAEtB,GAAI+iD,EAAUtmD,OAASglD,EAAKhlD,OAE3B,OAGD,KAAI0sB,aAAeo3B,GAAnB,CAIA,IACIoD,EADAY,EAAc,EAGlB,GAAIJ,EAAQ,CAEX,KADAR,EAAQJ,EAAaC,EAAS9pC,EAAK+nC,EAAMgC,KAC3BE,EAAM/kD,OAAS6iD,EAAKhlD,OACjC,MAGD,IAAI4iB,EAAOskC,EAAM/kD,MACbq0C,EAAK0Q,EAAM/kD,MAAQ+kD,EAAM,GAAGlnD,OAC5B6kB,EAAI5H,EAIR,IADA4H,GAAKwV,EAAY92B,MAAMvD,OAChB4iB,GAAQiC,GAEdA,IADAwV,EAAcA,EAAY5X,MACTlf,MAAMvD,OAOxB,GAHAid,EADA4H,GAAKwV,EAAY92B,MAAMvD,OAInBq6B,EAAY92B,iBAAiBugD,EAChC,SAID,IACC,IAAI58C,EAAImzB,EACRnzB,IAAMo/C,EAAUI,OAAS7hC,EAAI2xB,GAAyB,iBAAZtvC,EAAE3D,OAC5C2D,EAAIA,EAAEub,KAENqlC,IACAjjC,GAAK3d,EAAE3D,MAAMvD,OAEd8nD,IAGAp7B,EAAMs4B,EAAKzkD,MAAM0c,EAAK4H,GACtBqiC,EAAM/kD,OAAS8a,CAChB,MAEC,KADAiqC,EAAQJ,EAAaC,EAAS,EAAGr6B,EAAKs6B,IAErC,SAKEpkC,EAAOskC,EAAM/kD,MAAjB,IACI4lD,EAAWb,EAAM,GACjB5B,EAAS54B,EAAInsB,MAAM,EAAGqiB,GACtBolC,EAAQt7B,EAAInsB,MAAMqiB,EAAOmlC,EAAS/nD,QAElC6nD,EAAQ5qC,EAAMyP,EAAI1sB,OAClBsnD,GAAWO,EAAQP,EAAQO,QAC9BP,EAAQO,MAAQA,GAGjB,IAAII,EAAa5tB,EAAY0F,KAgB7B,GAdIulB,IACH2C,EAAazB,EAASF,EAAW2B,EAAY3C,GAC7CroC,GAAOqoC,EAAOtlD,QAGfkoD,EAAY5B,EAAW2B,EAAYH,GAGnCztB,EAAcmsB,EAASF,EAAW2B,EADpB,IAAInE,EAAM4B,EAAOL,EAAShU,EAAEgV,SAAS0B,EAAU1C,GAAU0C,EAAUhE,EAAOgE,IAGpFC,GACHxB,EAASF,EAAWjsB,EAAa2tB,GAG9BF,EAAc,EAAG,CAKpB,IAAIK,EAAgB,CACnBX,MAAO9B,EAAQ,IAAMr+B,EACrBwgC,MAAOA,GAERpB,EAAazB,EAAMsB,EAAWd,EAASnrB,EAAY0F,KAAM9iB,EAAKkrC,GAG1Db,GAAWa,EAAcN,MAAQP,EAAQO,QAC5CP,EAAQO,MAAQM,EAAcN,MAEhC,CA7FA,CA8FD,CACD,CA3IA,CA6IF,CAeA,SAAStB,IAER,IAAI9I,EAAO,CAAEl6C,MAAO,KAAMw8B,KAAM,KAAMtd,KAAM,MAExCikC,EAAO,CAAEnjD,MAAO,KAAMw8B,KAAM0d,EAAMh7B,KAAM,MAC5Cg7B,EAAKh7B,KAAOikC,EAGZnoD,KAAKk/C,KAAOA,EAEZl/C,KAAKmoD,KAAOA,EACZnoD,KAAKyB,OAAS,CACf,CAWA,SAASwmD,EAASllD,EAAMsT,EAAMrR,GAE7B,IAAIkf,EAAO7N,EAAK6N,KAEZ2lC,EAAU,CAAE7kD,MAAOA,EAAOw8B,KAAMnrB,EAAM6N,KAAMA,GAKhD,OAJA7N,EAAK6N,KAAO2lC,EACZ3lC,EAAKsd,KAAOqoB,EACZ9mD,EAAKtB,SAEEooD,CACR,CASA,SAASF,EAAY5mD,EAAMsT,EAAM1D,GAEhC,IADA,IAAIuR,EAAO7N,EAAK6N,KACP5iB,EAAI,EAAGA,EAAIqR,GAASuR,IAASnhB,EAAKolD,KAAM7mD,IAChD4iB,EAAOA,EAAKA,KAEb7N,EAAK6N,KAAOA,EACZA,EAAKsd,KAAOnrB,EACZtT,EAAKtB,QAAUH,CAChB,CAgBA,OA3SAikD,EAAMz0C,UAAY,SAASA,EAAU6S,EAAGqiC,GACvC,GAAgB,iBAALriC,EACV,OAAOA,EAER,GAAI5hB,MAAMmF,QAAQyc,GAAI,CACrB,IAAI7F,EAAI,GAIR,OAHA6F,EAAEvb,SAAQ,SAAU4R,GACnB8D,GAAKhN,EAAUkJ,EAAGgsC,EACnB,IACOloC,CACR,CAEA,IAAI4pC,EAAM,CACTzmD,KAAM0iB,EAAE1iB,KACR6Y,QAAShJ,EAAU6S,EAAE7J,QAASksC,GAC9Bl5C,IAAK,OACLgiB,QAAS,CAAC,QAASnL,EAAE1iB,MACrBoS,WAAY,CAAC,EACb2yC,SAAUA,GAGP8D,EAAUnmC,EAAE6hC,MACZsE,IACC/nD,MAAMmF,QAAQ4iD,GACjB/nD,MAAMrB,UAAU4B,KAAKL,MAAMylD,EAAI54B,QAASg7B,GAExCpC,EAAI54B,QAAQxsB,KAAKwnD,IAInBhX,EAAE8U,MAAMC,IAAI,OAAQH,GAEpB,IAAIr0C,EAAa,GACjB,IAAK,IAAI1J,KAAQ+9C,EAAIr0C,WACpBA,GAAc,IAAM1J,EAAO,MAAQ+9C,EAAIr0C,WAAW1J,IAAS,IAAIoV,QAAQ,KAAM,UAAY,IAG1F,MAAO,IAAM2oC,EAAI56C,IAAM,WAAa46C,EAAI54B,QAAQnN,KAAK,KAAO,IAAMtO,EAAa,IAAMq0C,EAAI5tC,QAAU,KAAO4tC,EAAI56C,IAAM,GACrH,EAqQOgmC,CAER,CAr3Ba,GAu3BTiX,EAAQ9E,EACZA,EAAM/1B,QAAU+1B,EAMhB8E,EAAMzD,UAAU0D,OAAS,CACvB,QAAW,CACTxB,QAAS,8BACTW,QAAQ,GAEV,OAAU,CACRX,QAAS,iBACTW,QAAQ,GAEV,QAAW,CAETX,QAAS,uHACTW,QAAQ,EACRrC,OAAQ,CACN,kBAAmB,CACjB0B,QAAS,6BACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,MAGV,OAAU,CACR0B,QAAS,kBACTW,QAAQ,GAEV,YAAe,eACf,cAAe,YACf,KAAQ,eAGZ,MAAS,CACPX,QAAS,4BACTW,QAAQ,GAEV,IAAO,CACLX,QAAS,uHACTW,QAAQ,EACRrC,OAAQ,CACN,IAAO,CACL0B,QAAS,iBACT1B,OAAQ,CACN,YAAe,QACf,UAAa,iBAGjB,eAAgB,GAChB,aAAc,CACZ0B,QAAS,qCACT1B,OAAQ,CACN,YAAe,CAAC,CACd0B,QAAS,KACThD,MAAO,eACN,SAGP,YAAe,OACf,YAAa,CACXgD,QAAS,YACT1B,OAAQ,CACN,UAAa,mBAKrB,OAAU,CAAC,CACT0B,QAAS,kBACThD,MAAO,gBACN,uBAELuE,EAAMzD,UAAU0D,OAAY,IAAElD,OAAO,cAAcA,OAAe,OAAIiD,EAAMzD,UAAU0D,OAAe,OACrGD,EAAMzD,UAAU0D,OAAgB,QAAElD,OAAO,mBAAmBA,OAASiD,EAAMzD,UAAU0D,OAErFD,EAAMnC,MAAM7+B,IAAI,QAAQ,SAAU2+B,GACf,WAAbA,EAAIzmD,OACNymD,EAAIr0C,WAAkB,MAAIq0C,EAAI5tC,QAAQiF,QAAQ,QAAS,KAE3D,IACAjZ,OAAO0d,eAAeumC,EAAMzD,UAAU0D,OAAOl9C,IAAK,aAAc,CAY9D9H,MAAO,SAAoBi1B,EAASirB,GAClC,IAAI+E,EAAsB,CAAC,EAC3BA,EAAoB,YAAc/E,GAAQ,CACxCsD,QAAS,oCACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUpB,IAE1B+E,EAA2B,MAAI,uBAC/B,IAAInD,EAAS,CACX,iBAAkB,CAChB0B,QAAS,4BACT1B,OAAQmD,IAGZnD,EAAO,YAAc5B,GAAQ,CAC3BsD,QAAS,UACT1B,OAAQiD,EAAMzD,UAAUpB,IAE1B,IAAIgF,EAAM,CAAC,EACXA,EAAIjwB,GAAW,CACbuuB,QAASvC,OAAO,wFAAwFpnC,OAAOE,QAAQ,OAAO,WAC5H,OAAOkb,CACT,IAAI,KACJwuB,YAAY,EACZU,QAAQ,EACRrC,OAAQA,GAEViD,EAAMzD,UAAUO,aAAa,SAAU,QAASqD,EAClD,IAEFpkD,OAAO0d,eAAeumC,EAAMzD,UAAU0D,OAAOl9C,IAAK,eAAgB,CAYhE9H,MAAO,SAAUmlD,EAAUjF,GACzB6E,EAAMzD,UAAU0D,OAAOl9C,IAAIg6C,OAAO,gBAAgBxkD,KAAK,CACrDkmD,QAASvC,OAAO,aAAapnC,OAAS,MAAQsrC,EAAW,IAAM,iDAAiDtrC,OAAQ,KACxH4pC,YAAY,EACZ3B,OAAQ,CACN,YAAa,WACb,aAAc,CACZ0B,QAAS,WACT1B,OAAQ,CACN,MAAS,CACP0B,QAAS,yCACTC,YAAY,EACZjD,MAAO,CAACN,EAAM,YAAcA,GAC5B4B,OAAQiD,EAAMzD,UAAUpB,IAE1B,YAAe,CAAC,CACdsD,QAAS,KACThD,MAAO,eACN,WAKb,IAEFuE,EAAMzD,UAAU8D,KAAOL,EAAMzD,UAAU0D,OACvCD,EAAMzD,UAAU+D,OAASN,EAAMzD,UAAU0D,OACzCD,EAAMzD,UAAUgE,IAAMP,EAAMzD,UAAU0D,OACtCD,EAAMzD,UAAUiE,IAAMR,EAAMzD,UAAUK,OAAO,SAAU,CAAC,GACxDoD,EAAMzD,UAAUkE,KAAOT,EAAMzD,UAAUiE,IACvCR,EAAMzD,UAAUmE,KAAOV,EAAMzD,UAAUiE,IACvCR,EAAMzD,UAAUoE,IAAMX,EAAMzD,UAAUiE,IAGtC,SAAWtF,GAKT,IAAI0F,EAAU,0oCACVC,EAAsB,CACxBpC,QAAS,4BACTC,YAAY,EACZjD,MAAO,cAEPsB,OAAQ,MAGN+D,EAAe,CACjB,KAAQD,EACR,YAAe,CACbpC,QAASvC,OAAO,MAAQ0E,GACxBnF,MAAO,YAET,SAAY,CACZ,CACEgD,QAAS,sBACTW,QAAQ,EACRrC,OAAQ,CAEN,SAAY,CAAC,CACX0B,QAAS,uBACTC,YAAY,GACX,WACH,OAAU,8DAEV,SAAY,2DAEZ,YAAe,oBAGnB,CACED,QAAS,qCACTW,QAAQ,EACRrC,OAAQ,CACN,SAAY,oBAGhB,CACE0B,QAAS,cACTW,QAAQ,EACRrC,OAAQ,CACN,SAAY,mCACZ,YAAe,SACf,YAAe,CACb0B,QAASvC,OAAO,QAAU0E,GAC1BlC,YAAY,EACZjD,MAAO,cAGV,sBAEH,OAAU,wFAEZP,EAAMqB,UAAUwE,KAAO,CACrB,QAAW,CACTtC,QAAS,aACThD,MAAO,aAET,QAAW,CACTgD,QAAS,kBACTC,YAAY,GAEd,gBAAiB,CAIjB,CAEED,QAAS,kDACTC,YAAY,EACZjD,MAAO,YACN,CAEDgD,QAAS,8BACThD,MAAO,aAGT,gBAAiB,CACfgD,QAAS,sCACThD,MAAO,WACPiD,YAAY,GAId,cAAe,CACbD,QAAS,gCACT1B,OAAQ,CACN,YAAe,CACb0B,QAASvC,OAAO,uBAAyB0E,GACzClC,YAAY,EACZjD,MAAO,aAGXA,MAAO,WACPiD,YAAY,GAEd,OAAU,CACV,CACED,QAAS,mDACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ+D,GAGV,CACErC,QAAS,2DACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,KAAQ8D,IAGZ,CAEEpC,QAAS,0EACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ+D,GACP,CAEDrC,QAAS,oBACTC,YAAY,EACZU,QAAQ,GACP,CAEDX,QAAS,2BACTW,QAAQ,EACRrC,OAAQ,CACN,OAAU+D,EAAaE,UAG3B,YAAe,CACbvC,QAASvC,OAAO,OAAS0E,GACzBnF,MAAO,YAET,SAAYqF,EAAaG,SACzB,SAAY,CACVxC,QAAS,2jDACTC,YAAY,GAEd,QAAW,CACTD,QAAS,gHACTC,YAAY,GAGd,QAAW,CACTD,QAAS,6SACTC,YAAY,EAEZjD,MAAO,cAET,QAAW,CACTgD,QAAS,iDACTC,YAAY,GAEd,kBAAmB,CACjBD,QAAS,UACThD,MAAO,aAET,SAAY,CAEVgD,QAAS,8EACT1B,OAAQ,CACN,kBAAmB,CACjB0B,QAAS,MACThD,MAAO,eAIb,YAAe,iCACf,OAAU,CACRgD,QAAS,qCACTC,YAAY,IAGhBmC,EAAoB9D,OAAS7B,EAAMqB,UAAUwE,KAM7C,IAHA,IAAIG,EAAa,CAAC,UAAW,gBAAiB,gBAAiB,cAAe,SAAU,cAAe,WAAY,UAAW,UAAW,UAAW,kBAAmB,WAAY,cAAe,UAC9LnE,EAAS+D,EAAaG,SAAS,GAAGlE,OAE7BxlD,EAAI,EAAGA,EAAI2pD,EAAWxpD,OAAQH,IACrCwlD,EAAOmE,EAAW3pD,IAAM2jD,EAAMqB,UAAUwE,KAAKG,EAAW3pD,IAG1D2jD,EAAMqB,UAAU4E,MAAQjG,EAAMqB,UAAUwE,IACzC,CAjMD,CAiMGf,GAIHA,EAAMzD,UAAU6E,MAAQ,CACtB,QAAW,CAAC,CACV3C,QAAS,kCACTC,YAAY,EACZU,QAAQ,GACP,CACDX,QAAS,mBACTC,YAAY,EACZU,QAAQ,IAEV,OAAU,CACRX,QAAS,iDACTW,QAAQ,GAEV,aAAc,CACZX,QAAS,2FACTC,YAAY,EACZ3B,OAAQ,CACN,YAAe,UAGnB,QAAW,6GACX,QAAW,qBACX,SAAY,cACZ,OAAU,4DACV,SAAY,+CACZ,YAAe,iBAIjBiD,EAAMzD,UAAUjhC,EAAI0kC,EAAMzD,UAAUK,OAAO,QAAS,CAClD,QAAW,CACT6B,QAAS,sEACTW,QAAQ,GAEV,OAAU,CAERX,QAAS,sCACTW,QAAQ,GAEV,aAAc,CACZX,QAAS,mFACTC,YAAY,GAEd,QAAW,oVACX,SAAY,wBACZ,OAAU,oHACV,SAAY,oDAEdsB,EAAMzD,UAAUO,aAAa,IAAK,SAAU,CAC1C,KAAQ,CAEN2B,QAAS,2CACTW,QAAQ,KAGZY,EAAMzD,UAAUO,aAAa,IAAK,SAAU,CAC1C,MAAS,CAGP2B,QAAS,4FACTC,YAAY,EACZU,QAAQ,EACR3D,MAAO,WACPsB,OAAQ,CACN,OAAU,CAAC,CAET0B,QAAS,2BACTC,YAAY,GACXsB,EAAMzD,UAAUjhC,EAAU,QAC7B,KAAQ0kC,EAAMzD,UAAUjhC,EAAQ,KAChC,QAAW0kC,EAAMzD,UAAUjhC,EAAW,QACtC,aAAc,CAAC,CACbmjC,QAAS,+BACTC,YAAY,GACX,CACDD,QAAS,+BACTC,YAAY,EACZjD,MAAO,aAGT,UAAa,CACXgD,QAAS,gBACTC,YAAY,EACZjD,MAAO,WAET,iBAAkB,KAClB,YAAe,kBACf,WAAc,CACZgD,QAAS,YACT1B,OAAQiD,EAAMzD,UAAUjhC,OAKhC0kC,EAAMzD,UAAUO,aAAa,IAAK,WAAY,CAE5C,SAAY,sIAEPkD,EAAMzD,UAAUjhC,EAAW,QAGlC,SAAW4/B,GACT,IAAImG,EAAU,osBACVC,EAAU,uCAAuCxsC,OAAOE,QAAQ,cAAc,WAChF,OAAOqsC,EAAQvsC,MACjB,IACAomC,EAAMqB,UAAUgF,IAAMrG,EAAMqB,UAAUK,OAAO,IAAK,CAChD,aAAc,CAAC,CACb6B,QAASvC,OAAO,gEAAgEpnC,OAAOE,QAAQ,cAAc,WAC3G,OAAOqsC,EAAQvsC,MACjB,KACA4pC,YAAY,GAKd,iCAEA,oCAEA,kEACA,QAAW2C,EACX,OAAU,CACR5C,QAAS,iJACTW,QAAQ,GAEV,SAAY,yHACZ,QAAW,uBAEblE,EAAMqB,UAAUO,aAAa,MAAO,SAAU,CAC5C,OAAU,CAER2B,QAASvC,OAAO,2BAA2BpnC,OAAS,MACpD,mDAAmDA,OAAS,IAC5D,kDAAkDA,OAAOE,QAAQ,eAAe,WAC9E,OAAOssC,CACT,IAAK,KACL5C,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,OAAU,eACV,SAAY,IACZ,YAAe,OAGnB,aAAc,CACZ0B,QAAS,oCACThD,MAAO,SACP2D,QAAQ,KAGZlE,EAAMqB,UAAUO,aAAa,MAAO,UAAW,CAC7C,mBAAoB,CAClB2B,QAAS,8DACT1B,OAAQ,CACN,SAAY,OACZ,QAAW,CACT0B,QAAS,WACThD,MAAO,aACPsB,OAAQ7B,EAAMqB,UAAUgF,SAKhCrG,EAAMqB,UAAUO,aAAa,MAAO,WAAY,CAC9C,eAAgB,CACd2B,QAAS,KACThD,MAAO,iBAGXP,EAAMqB,UAAUO,aAAa,MAAO,aAAc,CAGhD,cAAe,CACb2B,QAAS,6EACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ7B,EAAMqB,UAAUK,OAAO,MAAO,CAAC,MAG3C1B,EAAMqB,UAAUO,aAAa,SAAU,eAAgB,CAErD,aAAc,2BACb5B,EAAMqB,UAAUgF,IAAI,eACxB,CAnFD,CAmFGvB,GAIH,SAAW9E,GACT,IAAIpE,EAAS,8EACboE,EAAMqB,UAAUiF,IAAM,CACpB,QAAW,mBACX,OAAU,CACR/C,QAAS,iDACT1B,OAAQ,CACN,KAAQ,WACR,6BAA8B,CAC5B0B,QAAS,4FACTC,YAAY,EACZjD,MAAO,YAET,QAAW,CACTgD,QAAS,yCACTC,YAAY,KAKlB,IAAO,CAELD,QAASvC,OAAO,eAAiBpF,EAAOhiC,OAAS,IAAM,8BAA8BA,OAAS,OAAQ,KACtGsqC,QAAQ,EACRrC,OAAQ,CACN,SAAY,QACZ,YAAe,UACf,OAAU,CACR0B,QAASvC,OAAO,IAAMpF,EAAOhiC,OAAS,KACtC2mC,MAAO,SAIb,SAAY,CACVgD,QAASvC,OAAO,qDAAuDpF,EAAOhiC,OAAS,iBACvF4pC,YAAY,GAEd,OAAU,CACRD,QAAS3H,EACTsI,QAAQ,GAEV,SAAY,CACVX,QAAS,oFACTC,YAAY,GAEd,UAAa,gBACb,SAAY,CACVD,QAAS,kCACTC,YAAY,GAEd,YAAe,aAEjBxD,EAAMqB,UAAUiF,IAAY,OAAEzE,OAAOt1B,KAAOyzB,EAAMqB,UAAUiF,IAC5D,IAAIvB,EAAS/E,EAAMqB,UAAU0D,OAEzBA,IACFA,EAAOl9C,IAAI0+C,WAAW,QAAS,OAC/BxB,EAAOl9C,IAAI2+C,aAAa,QAAS,OAEpC,CA3DD,CA2DG1B,GAIH,SAAW9E,GACT,IACIyG,EADA7K,EAAS,gDAEboE,EAAMqB,UAAUiF,IAAII,SAAW,CAC7BnD,QAASvD,EAAMqB,UAAUiF,IAAII,SAASnD,QACtCC,YAAY,EACZ3B,OAAQ4E,EAAiB,CACvB,iBAAkB,+DAClB,eAAgB,UAChB,MAAS,WACT,GAAM,UACN,UAAa,CACXlD,QAASvC,OAAO,oBAAsBpF,EAAOhiC,OAAS,SACtDsqC,QAAQ,EACRrC,OAAQ,CACN,YAAe,UACf,mBAAoB,CAClB0B,QAAS,aACTC,YAAY,EACZjD,MAAO,WAET,UAAa,CACXgD,QAAS,4CACTC,YAAY,EACZ3B,OAAQ,CACN,YAAe,QAGnB,YAAa,CACX0B,QAAS,oCACTC,YAAY,GAEd,aAAc,CAAC5H,EAAQ,CACrB2H,QAAS,4CACTC,YAAY,IAEd,SAAY,cAGhB,OAAQ,CAAC,CACPD,QAAS,kDACTC,YAAY,EACZ3B,OAAQ,CACN,OAAU,SACV,SAAY,SAEb,CACD0B,QAAS,gCACTC,YAAY,IAEd,WAAc,cAId,YAAe,UAGnBxD,EAAMqB,UAAUiF,IAAY,OAAEzE,OAAO,8BAA8BA,OAAS4E,EAC5EzG,EAAMqB,UAAUO,aAAa,MAAO,WAAY,CAC9C,SAAY,CACV2B,QAAS,8EACTC,YAAY,KAGhB,IAAImD,EAAO,CACTpD,QAAS,+BACTC,YAAY,GAGVoD,EAAS,CACXrD,QAAS,uCACTC,YAAY,GAEdxD,EAAMqB,UAAUO,aAAa,MAAO,WAAY,CAC9C,SAAY,CACV2B,QAAS,qBACTC,YAAY,GAId,QAAW,CACTD,QAAS,qBACThD,MAAO,SAET,MAAS,CAAC,CACRgD,QAAS,o6CACTC,YAAY,GACX,CACDD,QAAS,4JACT1B,OAAQ,CACN,KAAQ8E,EACR,OAAUC,EACV,SAAY,eACZ,YAAe,WAInB,OAAU,kBACV,KAAQD,EACR,OAAUC,GAEb,CArGD,CAqGG9B,GAIHA,EAAMzD,UAAUwF,WAAa/B,EAAMzD,UAAUK,OAAO,QAAS,CAC3D,aAAc,CAACoD,EAAMzD,UAAU6E,MAAM,cAAe,CAClD3C,QAAS,0GACTC,YAAY,IAEd,QAAW,CAAC,CACVD,QAAS,uBACTC,YAAY,GACX,CACDD,QAAS,mdACTC,YAAY,IAGd,SAAY,oGACZ,OAAU,CACRD,QAASvC,OAAO,aAAapnC,OAAS,MACtC,eAAeA,OAAS,IACxB,0BAA0BA,OAAS,IACnC,4BAA4BA,OAAS,IACrC,sCAAsCA,OAAS,IAC/C,gBAAgBA,OAAS,IACzB,oFAAoFA,OAAU,IAAM,YAAYA,QAChH4pC,YAAY,GAEd,SAAY,8FAEdsB,EAAMzD,UAAUwF,WAAW,cAAc,GAAGtD,QAAU,uEACtDuB,EAAMzD,UAAUO,aAAa,aAAc,UAAW,CACpD,MAAS,CAEP2B,QAAS,yLACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,eAAgB,CACd0B,QAAS,4BACTC,YAAY,EACZjD,MAAO,iBACPsB,OAAQiD,EAAMzD,UAAUyF,OAE1B,kBAAmB,UACnB,cAAe,aAInB,oBAAqB,CACnBvD,QAAS,gMACThD,MAAO,YAET,UAAa,CAAC,CACZgD,QAAS,sIACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUwF,YACvB,CACDtD,QAAS,qFACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUwF,YACvB,CACDtD,QAAS,kEACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUwF,YACvB,CACDtD,QAAS,8eACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUwF,aAE1B,SAAY,8BAEd/B,EAAMzD,UAAUO,aAAa,aAAc,SAAU,CACnD,SAAY,CACV2B,QAAS,QACTW,QAAQ,EACR3D,MAAO,WAET,kBAAmB,CACjBgD,QAAS,2EACTW,QAAQ,EACRrC,OAAQ,CACN,uBAAwB,CACtB0B,QAAS,QACThD,MAAO,UAET,cAAiB,CACfgD,QAAS,mEACTC,YAAY,EACZ3B,OAAQ,CACN,4BAA6B,CAC3B0B,QAAS,YACThD,MAAO,eAETh0B,KAAMu4B,EAAMzD,UAAUwF,aAG1B,OAAU,YAGd,kBAAmB,CACjBtD,QAAS,4EACTC,YAAY,EACZU,QAAQ,EACR3D,MAAO,cAGXuE,EAAMzD,UAAUO,aAAa,aAAc,WAAY,CACrD,mBAAoB,CAClB2B,QAAS,oFACTC,YAAY,EACZjD,MAAO,cAIPuE,EAAMzD,UAAU0D,SAClBD,EAAMzD,UAAU0D,OAAOl9C,IAAI0+C,WAAW,SAAU,cAGhDzB,EAAMzD,UAAU0D,OAAOl9C,IAAI2+C,aAAa,yNAAyN5sC,OAAQ,eAG3QkrC,EAAMzD,UAAU0F,GAAKjC,EAAMzD,UAAUwF,WAGrC,SAAW7G,GAET,IAAIgH,EAAU,YACVC,EAAgB,CAClB1D,QAAS,aACThD,MAAO,YAETP,EAAMqB,UAAU6F,aAAelH,EAAMqB,UAAUK,OAAO,aAAc,CAClE,QAAWsF,EACX,OAAU,CACV,CACEzD,QAAS,yBACTW,QAAQ,GACP,CAEDX,QAAS,yBACTW,QAAQ,EACRrC,OAAQ,CACN,cAAiBoF,KAGrB,QAAW,mSACX,eAAgB,CACd1D,QAAS,aACThD,MAAO,cAGXP,EAAMqB,UAAUO,aAAa,eAAgB,UAAW,CACtD,oBAAqB,CACnB2B,QAAS,iBACThD,MAAO,WAGT,cAAe,CACbgD,QAAS,qBACThD,MAAO,QACPsB,OAAQ,CACN,QAAWmF,EACX,cAAiBC,MAIvBjH,EAAMqB,UAAUO,aAAa,eAAgB,SAAU,CACrD,oBAAqB,CACnB2B,QAAS,yBACT1B,OAAQ,CACN,UAAa,CACX0B,QAAS,QACThD,MAAO,eAET,OAAU,CACRgD,QAAS,UACThD,MAAO,sBACPsB,OAAQ7B,EAAMqB,UAAUwF,cAK9B,mBAAoB,CAAC,CACnBtD,QAAS,iBACTW,QAAQ,EACR3D,MAAO,UACN,CACDgD,QAAS,iBACTW,QAAQ,EACR3D,MAAO,SACPsB,OAAQ,CACNoF,cAAeA,OAIrBjH,EAAMqB,UAAUO,aAAa,eAAgB,UAAW,CAEtD,SAAY,kCAEP5B,EAAMqB,UAAU6F,aAAa,mBACpClH,EAAMqB,UAAU8F,OAASnH,EAAMqB,UAAU6F,YAC1C,CA7ED,CA6EGpC,GAIH,SAAW9E,GAGT,IAAIoH,EAAgB,mBAEhBv/C,EAAM,mFAENw/C,EAAa,MAAQx/C,EAAI+R,OAAS,YAAcwtC,EAAcxtC,OAAS,MAAQwtC,EAAcxtC,OAAS,YAAc/R,EAAI+R,OAAS,MAIjI0tC,EAAW,kJAAkJ1tC,OAAOE,QAAQ,YAAY,WAC1L,MAAO,2EAA2EF,MACpF,IACIgiC,EAAS,8CAA8ChiC,OAQ3D,SAAS2tC,EAAmBxnD,EAAOqkD,GACjCA,GAASA,GAAS,IAAItqC,QAAQ,KAAM,IAAM,IAE1C,IAAIypC,EAAU,yFAAyF3pC,OAAOE,QAAQ,aAAa,WACjI,OAAOutC,CACT,IAAGvtC,QAAQ,cAAc,WACvB,OAAO/Z,CACT,IACA,OAAOihD,OAAOuC,EAASa,EACzB,CAEApE,EAAMqB,UAAUmG,KAAO,CACrB,OAAU,CACRjE,QAASvC,OAAO,6FAA6FpnC,OAAOE,QAAQ,aAAa,WACvI,OAAOutC,CACT,KACA7D,YAAY,EACZjD,MAAO,UAET,QAAW,MACX,IAAO,CACLgD,QAASvC,OAAO,kEAAkEpnC,OAAOE,QAAQ,aAAa,WAC5G,OAAOutC,CACT,IAAGvtC,QAAQ,YAAY,WACrB,MAAO,MAAQwtC,EAAW,IAAM1L,EAAS,GAC3C,KACA4H,YAAY,EACZU,QAAQ,EACR3D,MAAO,UAET,UAAa,CACXgD,QAAS,gBACTC,YAAY,EACZjD,MAAO,aAET,SAAY,CACVgD,QAASgE,EAAmB,sJAAsJ3tC,QAClL4pC,YAAY,EACZjD,MAAO,UAET,QAAW,CACTgD,QAASgE,EAAmB,aAAa3tC,OAAQ,KACjD4pC,YAAY,EACZjD,MAAO,aAET,KAAQ,CACNgD,QAASgE,EAAmB,SAAS3tC,OAAQ,KAC7C4pC,YAAY,EACZjD,MAAO,aAET,OAAU,CACRgD,QAASgE,EAAmB3L,GAC5B4H,YAAY,EACZU,QAAQ,GAEV,OAAU,CACRX,QAASgE,EAAmB,iFAAiF3tC,OAAQ,KACrH4pC,YAAY,GAEd,IAAO37C,EACP,UAAau/C,EACb,YAAe,6BAEjBpH,EAAMqB,UAAUoG,IAAMzH,EAAMqB,UAAUmG,IACvC,CAtFD,CAsFG1C,GAIH,SAAW9E,GAET,IAAIj2B,EAAQ,2CAA2CnQ,OAYvD,SAAS8tC,EAAanE,GAIpB,OAHAA,EAAUA,EAAQzpC,QAAQ,YAAY,WACpC,OAAOiQ,CACT,IACOi3B,OAAO,0BAA0BpnC,OAAS,MAAQ2pC,EAAU,IACrE,CAEA,IAAIoE,EAAY,4DAA4D/tC,OACxEguC,EAAW,+CAA+ChuC,OAAOE,QAAQ,OAAO,WAClF,OAAO6tC,CACT,IACIE,EAAY,sEAAsEjuC,OACtFomC,EAAMqB,UAAUyG,SAAW9H,EAAMqB,UAAUK,OAAO,SAAU,CAAC,GAC7D1B,EAAMqB,UAAUO,aAAa,WAAY,SAAU,CACjD,qBAAsB,CACpB2B,QAAS,kDACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,YAAe,YACf,eAAgB,CACd0B,QAAS,iBACThD,MAAO,CAAC,OAAQ,iBAChBsB,OAAQ7B,EAAMqB,UAAUmG,QAI9B,WAAc,CAEZjE,QAAS,kBACThD,MAAO,eAET,MAAS,CACPgD,QAASvC,OAAO,IAAM4G,EAAWC,EAAY,MAAQD,EAAW,KAAM,KACtE/F,OAAQ,CACN,kBAAmB,CACjB0B,QAASvC,OAAO,KAAO4G,EAAWC,EAAY,OAASD,EAAW,OAClEpE,YAAY,EACZ3B,OAAQ,CACN,aAAc,CACZ0B,QAASvC,OAAO2G,GAChB9F,OAAQ7B,EAAMqB,UAAUyG,UAE1B,YAAe,OAGnB,aAAc,CACZvE,QAASvC,OAAO,KAAO4G,EAAW,IAAMC,EAAY,KACpDrE,YAAY,EACZ3B,OAAQ,CACN,YAAe,iBAGnB,mBAAoB,CAClB0B,QAASvC,OAAO,IAAM4G,EAAW,KACjC/F,OAAQ,CACN,eAAgB,CACd0B,QAASvC,OAAO2G,GAChBpH,MAAO,YACPsB,OAAQ7B,EAAMqB,UAAUyG,UAE1B,YAAe,SAKvB,KAAQ,CAAC,CAEPvE,QAAS,uFACTC,YAAY,EACZjD,MAAO,WACN,CAIDgD,QAAS,qBACTW,QAAQ,EACRrC,OAAQ,CACN,aAAc,CACZ0B,QAAS,qDACTC,YAAY,GAEd,gBAAiB,CACfD,QAAS,WACTC,YAAY,GAEd,YAAe,SAGnB,MAAS,CAAC,CAKRD,QAAS,0CACThD,MAAO,YACPsB,OAAQ,CACNkG,YAAa,cAEd,CAGDxE,QAAS,aACTC,YAAY,EACZjD,MAAO,YACPsB,OAAQ,CACNkG,YAAa,aAGjB,GAAM,CAKJxE,QAAS,wCACTC,YAAY,EACZjD,MAAO,eAET,KAAQ,CAKNgD,QAAS,mCACTC,YAAY,EACZjD,MAAO,eAET,gBAAiB,CAKfgD,QAAS,qHACT1B,OAAQ,CACN,SAAY,CACV0B,QAAS,gBACTC,YAAY,GAEd,OAAU,+DACV,YAAe,kBAEjBjD,MAAO,OAET,KAAQ,CAINgD,QAASmE,EAAa,kGAAkG9tC,QACxH4pC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,QAAW,CACT0B,QAAS,sBACTC,YAAY,EACZ3B,OAAQ,CAAC,GAGX,YAAe,YAGnB,OAAU,CAIR0B,QAASmE,EAAa,kGAAkG9tC,QACxH4pC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,QAAW,CACT0B,QAAS,oBACTC,YAAY,EACZ3B,OAAQ,CAAC,GAGX,YAAe,SAGnB,OAAU,CAIR0B,QAASmE,EAAa,2BAA2B9tC,QACjD4pC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,QAAW,CACT0B,QAAS,uBACTC,YAAY,EACZ3B,OAAQ,CAAC,GAGX,YAAe,QAGnB,eAAgB,CAGd0B,QAAS,mEACTC,YAAY,EACZU,QAAQ,EACR3D,MAAO,CAAC,OAAQ,YAElB,IAAO,CAILgD,QAASmE,EAAa,mGAAmG9tC,QACzH4pC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,SAAY,KACZ,QAAW,CACT0B,QAAS,oBACTC,YAAY,EACZ3B,OAAQ,CAAC,GAGX,SAAY,CACV0B,QAAS,6BACTC,YAAY,GAEd,IAAO,CACLD,QAAS,iBACTC,YAAY,GAEd,OAAU,CACRD,QAAS,oCACTC,YAAY,OAKpB,CAAC,MAAO,OAAQ,SAAU,UAAUrgD,SAAQ,SAAU++C,GACpD,CAAC,MAAO,OAAQ,SAAU,SAAU,gBAAgB/+C,SAAQ,SAAU0+C,GAChEK,IAAUL,IACZ7B,EAAMqB,UAAUyG,SAAS5F,GAAOL,OAAOhtC,QAAQgtC,OAAOA,GAAU7B,EAAMqB,UAAUyG,SAASjG,GAE7F,GACF,IACA7B,EAAM2C,MAAM7+B,IAAI,kBAAkB,SAAU2+B,GACrB,aAAjBA,EAAI1B,UAA4C,OAAjB0B,EAAI1B,UAIvC,SAASiH,EAAW3H,GAClB,GAAKA,GAA4B,iBAAXA,EAItB,IAAK,IAAIhkD,EAAI,EAAG+e,EAAIilC,EAAO7jD,OAAQH,EAAI+e,EAAG/e,IAAK,CAC7C,IAAI6lD,EAAQ7B,EAAOhkD,GAEnB,GAAmB,SAAf6lD,EAAMlmD,KAAV,CAmBA,IAAIisD,EAAW/F,EAAMrtC,QAAQ,GACzBqzC,EAAYhG,EAAMrtC,QAAQ,GAE9B,GAAIozC,GAAYC,GAA+B,kBAAlBD,EAASjsD,MAA+C,eAAnBksD,EAAUlsD,MAAqD,iBAArBisD,EAASpzC,QAAsB,CAGzI,IAAIorC,EAAOgI,EAASpzC,QAAQiF,QAAQ,OAAQ,SAASA,QAAQ,UAAW,MAGpEymC,EAAQ,aADZN,GAAQ,eAAeY,KAAKZ,IAAS,CAAC,KAAK,GAAG79B,eAGzC8lC,EAAU3H,MAEuB,iBAApB2H,EAAU3H,MAC1B2H,EAAU3H,MAAQ,CAAC2H,EAAU3H,MAAOA,GAEpC2H,EAAU3H,MAAMljD,KAAKkjD,GAJrB2H,EAAU3H,MAAQ,CAACA,EAMvB,CAlCA,MAFEyH,EAAW9F,EAAMrtC,QAqCrB,CACF,CAEAmzC,CAAWvF,EAAIpC,OACjB,IACAL,EAAM2C,MAAM7+B,IAAI,QAAQ,SAAU2+B,GAChC,GAAiB,eAAbA,EAAIzmD,KAAR,CAMA,IAFA,IAAIisD,EAAW,GAEN5rD,EAAI,EAAG+e,EAAIqnC,EAAI54B,QAAQrtB,OAAQH,EAAI+e,EAAG/e,IAAK,CAClD,IAAI8rD,EAAM1F,EAAI54B,QAAQxtB,GAClBqnD,EAAQ,gBAAgB7C,KAAKsH,GAEjC,GAAIzE,EAAO,CACTuE,EAAWvE,EAAM,GACjB,KACF,CACF,CAEA,IA0CmByB,EA1CfnD,EAAUhC,EAAMqB,UAAU4G,GAE9B,GAAKjG,EAaHS,EAAI5tC,QAAUmrC,EAAMwC,WA2BH2C,EA3ByB1C,EAAI5tC,QA6BrCswC,EAAKrrC,QAAQsuC,EAAY,IAExBtuC,QAAQ,iCAAiC,SAAU3c,EAAGulD,GAI9D,IAAI3iD,EADN,GAAgB,OAFhB2iD,EAAOA,EAAKtgC,eAEH,GASP,OALEriB,EADc,MAAZ2iD,EAAK,GACC33B,SAAS23B,EAAK3lD,MAAM,GAAI,IAExBwtB,OAAOm4B,EAAK3lD,MAAM,IAGrBsrD,EAActoD,GAErB,IAAIuoD,EAAQC,EAAmB7F,GAE/B,OAAI4F,GAKGnrD,CAEX,KAtD0D6kD,EAASiG,QAZjE,GAAIA,GAAyB,SAAbA,GAAuBjI,EAAMuC,QAAQiG,WAAY,CAC/D,IAAItlB,EAAK,OAAQ,IAAIzhB,MAAOgnC,UAAY,IAAMpoC,KAAKC,MAAsB,KAAhBD,KAAKE,UAC9DkiC,EAAIr0C,WAAe,GAAI80B,EACvB8c,EAAMuC,QAAQiG,WAAWE,cAAcT,GAAU,WAC/C,IAAIU,EAAM/hC,SAASgiC,eAAe1lB,GAE9BylB,IACFA,EAAIrO,UAAY0F,EAAMwC,UAAUmG,EAAIze,YAAa8V,EAAMqB,UAAU4G,GAAWA,GAEhF,GACF,CA3BF,CA+BF,IACA,IAAIG,EAAapH,OAAOhB,EAAMqB,UAAU0D,OAAOl9C,IAAI07C,QAAQ3pC,OAAQ,MAS/D2uC,EAAqB,CACvB,IAAO,IACP,GAAM,IACN,GAAM,IACN,KAAQ,KAGNF,EAAgBxuC,OAAOwuC,eAAiBxuC,OAAO6P,aAuCnDs2B,EAAMqB,UAAUryB,GAAKgxB,EAAMqB,UAAUyG,QACtC,CAhZD,CAgZGhD,GAIHA,EAAMzD,UAAUwH,QAAU,CACxB,QAAW,MACX,YAAe,CACbtF,QAAS,mEACTW,QAAQ,EACR3D,MAAO,SACPsB,OAAQ,CACN,oBAAqB,CACnB0B,QAAS,kCACTC,YAAY,EACZ3B,OAAQiD,EAAMzD,UAAUyG,YAI9B,OAAU,CACRvE,QAAS,iDACTW,QAAQ,GAEV,OAAU,2CACV,QAAW,qBACX,SAAY,eACZ,UAAa,CACXX,QAAS,cACThD,MAAO,YAET,YAAa,CACXgD,QAAS,iEACTW,QAAQ,GAEV,aAAc,CACZX,QAAS,oBACThD,MAAO,cAET,OAAU,sCACV,SAAY,qBACZ,aAAc,CACZgD,QAAS,kFACTC,YAAY,GAEd,SAAY,CACVD,QAAS,+CACTC,YAAY,EACZjD,MAAO,YAET,sBAAuB,CACrBgD,QAAS,8BACTC,YAAY,EACZjD,MAAO,YAET,mBAAoB,CAClBgD,QAAS,2BACTC,YAAY,EACZjD,MAAO,YAET,QAAW,uIACX,SAAY,eACZ,iBAAkB,eAClB,OAAU,eACV,YAAe,iBACf,SAAY,OAEduE,EAAMnC,MAAM7+B,IAAI,kBAAkB,SAA8B2+B,GAC9D,GAAqB,YAAjBA,EAAI1B,SAuGR,IA5FA,IAAI+H,EAAcrG,EAAIpC,OAAOl/C,QAAO,SAAU+gD,GAC5C,MAAwB,iBAAVA,GAAqC,YAAfA,EAAMlmD,MAAqC,WAAfkmD,EAAMlmD,IACxE,IACI0nC,EAAe,EAyFZA,EAAeolB,EAAYtsD,QAAS,CACzC,IAAIusD,EAAaD,EAAYplB,KAE7B,GAAwB,YAApBqlB,EAAW/sD,MAA6C,aAAvB+sD,EAAWl0C,QAAwB,CAEtE,IAAIm0C,EAAiB,GAErB,GAAIC,EAAY,CAAC,sBAAuB,iBAA2C,MAAxBC,EAAS,GAAGr0C,QAAiB,CAEtF6uB,GAAgB,EAEhB,IAAIylB,EAAgBC,EAAmB,OAAQ,QAE/C,IAAuB,IAAnBD,EACF,SAIF,KAAOzlB,EAAeylB,EAAezlB,IAAgB,CACnD,IAAIn7B,EAAI2gD,EAAS,GAEF,aAAX3gD,EAAEvM,OACJqtD,EAAS9gD,EAAG,kBACZygD,EAAe3rD,KAAKkL,EAAEsM,SAE1B,CAEA6uB,EAAeylB,EAAgB,CACjC,CAEA,GAAIF,EAAY,CAAC,cAAe,oBAA8C,MAAxBC,EAAS,GAAGr0C,UAChE6uB,IAEA2lB,EAASH,EAAS,GAAI,qBAElBF,EAAexsD,OAAS,GAAG,CAC7B,IAAI8sD,EAAcF,EAAmB,OAAQ,QAE7C,IAAqB,IAAjBE,EACF,SAIF,IAAK,IAAIjtD,EAAIqnC,EAAcrnC,EAAIitD,EAAajtD,IAAK,CAC/C,IAAIktD,EAAWT,EAAYzsD,GAEL,aAAlBktD,EAASvtD,MAAuBgtD,EAAeznD,QAAQgoD,EAAS10C,UAAY,GAC9Ew0C,EAASE,EAAU,iBAEvB,CACF,CAEJ,CACF,CAtIA,SAASL,EAASM,GAChB,OAAOV,EAAYplB,EAAe8lB,EACpC,CAUA,SAASP,EAAYQ,EAAOD,GAC1BA,EAASA,GAAU,EAEnB,IAAK,IAAIntD,EAAI,EAAGA,EAAIotD,EAAMjtD,OAAQH,IAAK,CACrC,IAAI6lD,EAAQgH,EAAS7sD,EAAImtD,GAEzB,IAAKtH,GAASA,EAAMlmD,OAASytD,EAAMptD,GACjC,OAAO,CAEX,CAEA,OAAO,CACT,CAcA,SAAS+sD,EAAmBzjC,EAAMsc,GAGhC,IAFA,IAAIynB,EAAc,EAETrtD,EAAIqnC,EAAcrnC,EAAIysD,EAAYtsD,OAAQH,IAAK,CACtD,IAAI6lD,EAAQ4G,EAAYzsD,GACpBwY,EAAUqtC,EAAMrtC,QAEpB,GAAmB,gBAAfqtC,EAAMlmD,MAA6C,iBAAZ6Y,EACzC,GAAI8Q,EAAKrH,KAAKzJ,GACZ60C,SACK,GAAIznB,EAAM3jB,KAAKzJ,IAGA,MAFpB60C,EAGE,OAAOrtD,CAIf,CAEA,OAAQ,CACV,CAUA,SAASgtD,EAASnH,EAAO3B,GACvB,IAAIsE,EAAU3C,EAAM3B,MAEfsE,EAEO/nD,MAAMmF,QAAQ4iD,KACxB3C,EAAM3B,MAAQsE,EAAU,CAACA,IAFzB3C,EAAM3B,MAAQsE,EAAU,GAK1BA,EAAQxnD,KAAKkjD,EACf,CAwDF,IAGAuE,EAAMzD,UAAUsI,IAAM,CACpB,QAAW,CACTpG,QAAS,gDACTC,YAAY,GAEd,SAAY,CAAC,CACXD,QAAS,sCACTW,QAAQ,GACP,YACH,OAAU,CACRX,QAAS,kDACTW,QAAQ,EACRV,YAAY,GAEd,WAAc,CACZD,QAAS,sCACTW,QAAQ,EACRV,YAAY,EACZ3B,OAAQ,CACN,YAAe,UAGnB,SAAY,4FAEZ,QAAW,u9EACX,QAAW,2BACX,OAAU,4CACV,SAAY,+HACZ,YAAe,eAIjB,SAAW7B,GACT,IAAI4J,EAAiB5J,EAAMqB,UAAUwF,WAAW,mBAE5CgD,EAAyBD,EAAerG,QAAQ3pC,OAChDkwC,EAAsBF,EAAe/H,OAAsB,cAC3DkI,EAAiCD,EAAoBjI,OAAO,6BAC5DmI,EAAuBF,EAAoBvG,QAAQ3pC,OAavD,SAASqwC,EAAelJ,EAAUl5C,GAChC,GAAKm4C,EAAMqB,UAAUN,GAIrB,MAAO,CACLwC,QAASvC,OAAO,OAASn5C,EAAM,SAAWgiD,GAC1CrG,YAAY,EACZU,QAAQ,EACRrC,OAAQ,CACN,uBAAwB,CACtB0B,QAAS,QACThD,MAAO,UAET,gBAAiB,CACfgD,QAAS,UACThD,MAAOQ,IAIf,CAsBA,SAASmJ,EAAeC,EAASpJ,GAC/B,MAAO,MAAQA,EAASqJ,cAAgB,IAAMD,EAAU,KAC1D,CAWA,SAASE,EAAkB3H,EAAMV,EAASjB,GACxC,IAAI0B,EAAM,CACRC,KAAMA,EACNV,QAASA,EACTjB,SAAUA,GAKZ,OAHAf,EAAM2C,MAAMC,IAAI,kBAAmBH,GACnCA,EAAIpC,OAASL,EAAM6C,SAASJ,EAAIC,KAAMD,EAAIT,SAC1ChC,EAAM2C,MAAMC,IAAI,iBAAkBH,GAC3BA,EAAIpC,MACb,CASA,SAASiK,EAAgCC,GACvC,IAAIC,EAAc,CAAC,EACnBA,EAAY,6BAA+BT,EAG3C,IAAI1J,EAASL,EAAM6C,SAAS0H,EAAYC,GAExC,GAAsB,IAAlBnK,EAAO7jD,OAAc,CASvB,IAAIJ,EAAO,CAAC,EAAG,GACfA,EAAKiB,KAAKL,MAAMZ,EAAMiuD,EAAkBhK,EAAO,GAAIL,EAAMqB,UAAUwF,WAAY,eAC/ExG,EAAOriD,OAAOhB,MAAMqjD,EAAQjkD,EAC9B,CAEA,OAAO,IAAI4jD,EAAMM,MAAM,gBAAiBD,EAAQyJ,EAAoBvJ,MAAOgK,EAC7E,CAoBA,SAASE,EAAiB/H,EAAMV,EAASjB,GAKvC,IAAI2J,EAAU1K,EAAM6C,SAASH,EAAM,CACjC,cAAiB,CACfa,QAASvC,OAAOgJ,GAChBxG,YAAY,KAKZmH,EAAqB,EAGrBC,EAAiB,CAAC,EAmBlBC,EAAiBR,EAjBFK,EAAQ5mD,KAAI,SAAUo+C,GACvC,GAAqB,iBAAVA,EACT,OAAOA,EAKP,IAHA,IACI5jB,EADAwsB,EAA0B5I,EAAMrtC,SAGmD,IAAhF6tC,EAAKnhD,QAAQ+8B,EAAc4rB,EAAeS,IAAsB5J,MAKvE,OADA6J,EAAetsB,GAAewsB,EACvBxsB,CAEX,IAAG5hB,KAAK,IAG6CslC,EAASjB,GAE1DgK,EAAelqD,OAAOC,KAAK8pD,GA8D/B,OA7DAD,EAAqB,EAOrB,SAAS3C,EAAW3H,GAClB,IAAK,IAAIhkD,EAAI,EAAGA,EAAIgkD,EAAO7jD,OAAQH,IAAK,CACtC,GAAIsuD,GAAsBI,EAAavuD,OACrC,OAGF,IAAI0lD,EAAQ7B,EAAOhkD,GAEnB,GAAqB,iBAAV6lD,GAA+C,iBAAlBA,EAAMrtC,QAAsB,CAClE,IAAIypB,EAAcysB,EAAaJ,GAC3B9xC,EAAqB,iBAAVqpC,EAAqBA,EAEpCA,EAAMrtC,QACFlW,EAAQka,EAAEtX,QAAQ+8B,GAEtB,IAAe,IAAX3/B,EAAc,GACdgsD,EACF,IAAI7I,EAASjpC,EAAEmyC,UAAU,EAAGrsD,GACxBssD,EAASX,EAAgCM,EAAetsB,IACxDkmB,EAAQ3rC,EAAEmyC,UAAUrsD,EAAQ2/B,EAAY9hC,QACxC0uD,EAAc,GAQlB,GANIpJ,GACFoJ,EAAY7tD,KAAKykD,GAGnBoJ,EAAY7tD,KAAK4tD,GAEbzG,EAAO,CACT,IAAI2G,EAAc,CAAC3G,GACnBwD,EAAWmD,GACXD,EAAY7tD,KAAKL,MAAMkuD,EAAaC,EACtC,CAEqB,iBAAVjJ,GACT7B,EAAOriD,OAAOhB,MAAMqjD,EAAQ,CAAChkD,EAAG,GAAG8D,OAAO+qD,IAC1C7uD,GAAK6uD,EAAY1uD,OAAS,GAE1B0lD,EAAMrtC,QAAUq2C,CAEpB,CACF,KAAO,CACL,IAAIr2C,EAAUqtC,EAAMrtC,QAEhB/X,MAAMmF,QAAQ4S,GAChBmzC,EAAWnzC,GAEXmzC,EAAW,CAACnzC,GAEhB,CACF,CACF,CAEAmzC,CAAW6C,GACJ,IAAI7K,EAAMM,MAAMS,EAAU8J,EAAgB,YAAc9J,EAAU2B,EAC3E,CAlMA1C,EAAMqB,UAAUwF,WAAW,mBAAqB,CAIhDoD,EAAe,MAAO,0HAA0HrwC,QAEhJqwC,EAAe,OAAQ,yCAAyCrwC,QAChEqwC,EAAe,MAAO,QAAQrwC,QAC9BqwC,EAAe,WAAY,oBAAoBrwC,QAC/CqwC,EAAe,UAAW,6CAA6CrwC,QACvEqwC,EAAe,MAAO,QAAQrwC,QAC9BgwC,GAAgBzoD,OAAOiR,SA+LvB,IAAIg5C,EAAqB,CACvB,YAAc,EACd,IAAM,EACN,YAAc,EACd,IAAM,EACN,KAAO,EACP,KAAO,GA8ET,SAASC,EAActrD,GACrB,MAAqB,iBAAVA,EACFA,EACEjD,MAAMmF,QAAQlC,GAChBA,EAAM+D,IAAIunD,GAAe3uC,KAAK,IAE9B2uC,EAActrD,EAAM8U,QAE/B,CApFAmrC,EAAM2C,MAAM7+B,IAAI,kBAAkB,SAAU2+B,GACpCA,EAAI1B,YAAYqK,GAWtB,SAASE,EAAoBjL,GAC3B,IAAK,IAAIhkD,EAAI,EAAG+e,EAAIilC,EAAO7jD,OAAQH,EAAI+e,EAAG/e,IAAK,CAC7C,IAAI6lD,EAAQ7B,EAAOhkD,GAEnB,GAAqB,iBAAV6lD,EAAX,CAIA,IAAIrtC,EAAUqtC,EAAMrtC,QAEpB,GAAK/X,MAAMmF,QAAQ4S,GAQnB,GAAmB,oBAAfqtC,EAAMlmD,KAA4B,CAepC,IAAIuvD,EAAW12C,EAAQ,GAEvB,GAAuB,IAAnBA,EAAQrY,QAAoC,iBAAb+uD,GAA2C,kBAAlBA,EAASvvD,KAA0B,CAE7F,IAAI0mD,EAAO2I,EAAcE,GACrBhL,EAAQgL,EAAShL,MACjBQ,EAAWjkD,MAAMmF,QAAQs+C,GAASA,EAAM,GAAKA,EAC7CyB,EAAUhC,EAAMqB,UAAUN,GAE9B,IAAKiB,EAEH,SAGFntC,EAAQ,GAAK41C,EAAiB/H,EAAMV,EAASjB,EAC/C,CACF,MACEuK,EAAoBz2C,OAvCG,iBAAZA,GACTy2C,EAAoB,CAACz2C,GANzB,CA8CF,CACF,CAEAy2C,CAAoB7I,EAAIpC,OAC1B,GAiBD,CAhVD,CAgVGyE,GAIH,SAAW9E,GACTA,EAAMqB,UAAUmK,WAAaxL,EAAMqB,UAAUK,OAAO,aAAc,CAChE,aAAc,CACZ6B,QAAS,+KACTC,YAAY,EACZU,QAAQ,EACRrC,OAAQ,MAGV,QAAW,0FAGb7B,EAAMqB,UAAUmK,WAAWrF,QAAQ9oD,KAAK,qDACxC,2FACA,qCAEO2iD,EAAMqB,UAAUmK,WAAsB,iBACtCxL,EAAMqB,UAAUmK,WAAW,oBAElC,IAAIC,EAAazL,EAAMqB,UAAUK,OAAO,aAAc,CAAC,UAChD+J,EAAW,cAClBzL,EAAMqB,UAAUmK,WAAW,cAAc3J,OAAS4J,EAClDzL,EAAMqB,UAAUO,aAAa,aAAc,WAAY,CACrD,UAAa,CACX2B,QAAS,qBACT1B,OAAQ,CACN,GAAM,CACJ0B,QAAS,KACThD,MAAO,YAET,SAAY,aAGhB,mBAAoB,CAElBgD,QAAS,yGACTW,QAAQ,EACRrC,OAAQ,CACN,SAAY,4DACZ,QAAW,CACT0B,QAAS,WAEThD,MAAO,aACPsB,OAAQ4J,OAKhBzL,EAAMqB,UAAUqK,GAAK1L,EAAMqB,UAAUmK,UACtC,CAjDD,CAiDG1G,GAIH,SAAW9E,GAmCT,SAAS2L,EAAO/xC,EAAQwqC,GACtB,OAAOpD,OAAOpnC,EAAOE,QAAQ,SAAS,WACpC,MAAO,yDAAyDF,MAClE,IAAIwqC,EACN,CAtCApE,EAAMqB,UAAUO,aAAa,aAAc,oBAAqB,CAC9D,kBAAmB,CACjB2B,QAASvC,OAAO,YAAchB,EAAMqB,UAAUwF,WAAW,qBAAqBtD,QAAQ3pC,QACtF4pC,YAAY,EACZjD,MAAO,CAAC,oBAAqB,SAAU,WAAY,sBAGvDP,EAAMqB,UAAUO,aAAa,aAAc,WAAY,CACrD,OAAU,CACR2B,QAASvC,OAAO,YAAchB,EAAMqB,UAAUwF,WAAqB,SAAEjtC,QACrE4pC,YAAY,EACZjD,MAAO,CAAC,WAAY,sBAGxBP,EAAMqB,UAAUO,aAAa,aAAc,WAAY,CACrD,mBAAoB,CAAC,CAGnB2B,QAAS,yOACThD,MAAO,cACN,CAEDgD,QAAS,wBACThD,MAAO,iBAiBXP,EAAMqB,UAAUO,aAAa,aAAc,UAAW,CACpD,QAAW,CAET2B,QAASoI,EAAO,4GAA4G/xC,QAC5H4pC,YAAY,EACZ3B,OAAQ7B,EAAMqB,UAAUwF,YAE1B,QAAW,CAETtD,QAASoI,EAAO,mEAAmE/xC,QACnF4pC,YAAY,EACZ3B,OAAQ7B,EAAMqB,UAAUwF,cAG5B7G,EAAMqB,UAAUwF,WAAoB,QAAEh2C,QAAQ,CAC5C0yC,QAAS,wCACThD,MAAO,UACN,CACDgD,QAAS,gGACThD,MAAO,gBACN,CACDgD,QAAS,WACThD,MAAO,CAAC,OAAQ,QACf,CACDgD,QAAS,gBACThD,MAAO,QAETP,EAAMqB,UAAUO,aAAa,aAAc,WAAY,CACrD,OAAU,CACR2B,QAAS,QACThD,MAAO,YAET,MAAS,CACPgD,QAAS,KACThD,MAAO,cAGXP,EAAMqB,UAAUO,aAAa,aAAc,cAAe,CACxD,kBAAmB,CACjB2B,QAASoI,EAAO,gBAAgB/xC,QAChC4pC,YAAY,GAEd,mBAAoB,CAClBD,QAAS,8CACTC,YAAY,GAEd,IAAO,CAELD,QAAS,kFACThD,MAAO,YAET,QAAW,CACTgD,QAAS,qBACThD,MAAO,gBAMX,IAFA,IAAIqL,EAAuB,CAAC,WAAY,oBAAqB,SAAU,kBAAmB,mBAEjFvvD,EAAI,EAAGA,EAAIuvD,EAAqBpvD,OAAQH,IAAK,CACpD,IAAI6lD,EAAQ0J,EAAqBvvD,GAC7B0D,EAAQigD,EAAMqB,UAAUwF,WAAW3E,GAER,WAA3BlC,EAAMI,KAAKpkD,KAAK+D,KAClBA,EAAQigD,EAAMqB,UAAUwF,WAAW3E,GAAS,CAC1CqB,QAASxjD,IAKb,IAAI8hD,EAAS9hD,EAAM8hD,QAAU,CAAC,EAC9B9hD,EAAM8hD,OAASA,EACfA,EAAO,oBAAsB,eAC/B,CACD,CAnHD,CAmHGiD,GAIH,SAAW9E,GACT,IAAI6G,EAAa7G,EAAMI,KAAKK,MAAMT,EAAMqB,UAAUwF,YAC9CgF,EAAQ,+CAA+CjyC,OACvDkyC,EAAS,+CAA+ClyC,OACxDmyC,EAAS,uCAAuCnyC,OAMpD,SAASoyC,EAAGpyC,EAAQwqC,GAQlB,OAPAxqC,EAASA,EAAOE,QAAQ,QAAQ,WAC9B,OAAO+xC,CACT,IAAG/xC,QAAQ,aAAa,WACtB,OAAOgyC,CACT,IAAGhyC,QAAQ,aAAa,WACtB,OAAOiyC,CACT,IACO/K,OAAOpnC,EAAQwqC,EACxB,CAEA2H,EAASC,EAAGD,GAAQnyC,OACpBomC,EAAMqB,UAAU4K,IAAMjM,EAAMqB,UAAUK,OAAO,SAAUmF,GACvD7G,EAAMqB,UAAU4K,IAAIpkD,IAAI07C,QAAUyI,EAAG,wIAAwIpyC,QAC7KomC,EAAMqB,UAAU4K,IAAIpkD,IAAIg6C,OAAY,IAAE0B,QAAU,iBAChDvD,EAAMqB,UAAU4K,IAAIpkD,IAAIg6C,OAAO,cAAc0B,QAAU,qEACvDvD,EAAMqB,UAAU4K,IAAIpkD,IAAIg6C,OAAY,IAAEA,OAAO,cAAgB,4BAC7D7B,EAAMqB,UAAU4K,IAAIpkD,IAAIg6C,OAAgB,QAAIgF,EAAoB,QAChE7G,EAAMqB,UAAUO,aAAa,SAAU,YAAa,CAClD,OAAU,CACR2B,QAASyI,EAAG,WAAWpyC,QACvBioC,OAAQ7B,EAAMqB,UAAU4K,MAEzBjM,EAAMqB,UAAU4K,IAAIpkD,KACvBm4C,EAAMqB,UAAUO,aAAa,SAAU,eAAgB,CACrD,OAAU,CAER2B,QAASyI,EAAG,YAAYpyC,QACxB2mC,MAAO,sBACPsB,OAAQ,CACN,qBAAsB,CACpB0B,QAAS,WACThD,MAAO,eAETh0B,KAAMyzB,EAAMqB,UAAU4K,OAGzBjM,EAAMqB,UAAU4K,IAAIpkD,KAEvB,IAAIqkD,EAAiB,SAAUhK,GAC7B,OAAKA,EAIgB,iBAAVA,EACFA,EAGoB,iBAAlBA,EAAMrtC,QACRqtC,EAAMrtC,QAGRqtC,EAAMrtC,QAAQ/Q,IAAIooD,GAAgBxvC,KAAK,IAXrC,EAYX,EAEIsrC,EAAa,SAAU3H,GAGzB,IAFA,IAAI8L,EAAa,GAER9vD,EAAI,EAAGA,EAAIgkD,EAAO7jD,OAAQH,IAAK,CACtC,IAAI6lD,EAAQ7B,EAAOhkD,GACf+vD,GAAiB,EA+BrB,GA7BqB,iBAAVlK,IACU,QAAfA,EAAMlmD,MAAkBkmD,EAAMrtC,QAAQ,IAAgC,QAA1BqtC,EAAMrtC,QAAQ,GAAG7Y,KAEnB,OAAxCkmD,EAAMrtC,QAAQ,GAAGA,QAAQ,GAAGA,QAE1Bs3C,EAAW3vD,OAAS,GAAK2vD,EAAWA,EAAW3vD,OAAS,GAAGw4B,UAAYk3B,EAAehK,EAAMrtC,QAAQ,GAAGA,QAAQ,KAEjHs3C,EAAW7pC,MAG2C,OAApD4/B,EAAMrtC,QAAQqtC,EAAMrtC,QAAQrY,OAAS,GAAGqY,SAE1Cs3C,EAAW9uD,KAAK,CACd23B,QAASk3B,EAAehK,EAAMrtC,QAAQ,GAAGA,QAAQ,IACjDw3C,aAAc,IAIXF,EAAW3vD,OAAS,GAAoB,gBAAf0lD,EAAMlmD,MAA4C,MAAlBkmD,EAAMrtC,QAExEs3C,EAAWA,EAAW3vD,OAAS,GAAG6vD,eACzBF,EAAW3vD,OAAS,GAAK2vD,EAAWA,EAAW3vD,OAAS,GAAG6vD,aAAe,GAAoB,gBAAfnK,EAAMlmD,MAA4C,MAAlBkmD,EAAMrtC,QAE9Hs3C,EAAWA,EAAW3vD,OAAS,GAAG6vD,eAElCD,GAAiB,IAIjBA,GAAmC,iBAAVlK,IACvBiK,EAAW3vD,OAAS,GAAwD,IAAnD2vD,EAAWA,EAAW3vD,OAAS,GAAG6vD,aAAoB,CAGjF,IAAIC,EAAYJ,EAAehK,GAE3B7lD,EAAIgkD,EAAO7jD,OAAS,IAA+B,iBAAlB6jD,EAAOhkD,EAAI,IAA0C,eAAvBgkD,EAAOhkD,EAAI,GAAGL,QAC/EswD,GAAaJ,EAAe7L,EAAOhkD,EAAI,IACvCgkD,EAAOriD,OAAO3B,EAAI,EAAG,IAGnBA,EAAI,IAA+B,iBAAlBgkD,EAAOhkD,EAAI,IAA0C,eAAvBgkD,EAAOhkD,EAAI,GAAGL,QAC/DswD,EAAYJ,EAAe7L,EAAOhkD,EAAI,IAAMiwD,EAC5CjM,EAAOriD,OAAO3B,EAAI,EAAG,GACrBA,KAGFgkD,EAAOhkD,GAAK,IAAI2jD,EAAMM,MAAM,aAAcgM,EAAW,KAAMA,EAC7D,CAGEpK,EAAMrtC,SAAoC,iBAAlBqtC,EAAMrtC,SAChCmzC,EAAW9F,EAAMrtC,QAErB,CACF,EAEAmrC,EAAM2C,MAAM7+B,IAAI,kBAAkB,SAAU2+B,GACrB,QAAjBA,EAAI1B,UAAuC,QAAjB0B,EAAI1B,UAIlCiH,EAAWvF,EAAIpC,OACjB,GACD,CAvID,CAuIGyE,GAIH,SAAW9E,GACTA,EAAMqB,UAAUkL,KAAO,CACrB,MAAS,CACT,4BACA,YACA,YASF,IAAIC,EAAW,CACb,eAAgB,IAChB,gBAAiB,IACjB,gBAAiB,IACjB,iBAAkB,IAClB,UAAa,IACb,KAAQ,KAGV3rD,OAAOC,KAAK0rD,GAAUrpD,SAAQ,SAAUuB,GACtC,IAAI+nD,EAASD,EAAS9nD,GAClB67C,EAAQ,GAEP,QAAQjiC,KAAK5Z,IAEhB67C,EAAMljD,KAAK,MAAMwjD,KAAKn8C,GAAM,IAGjB,SAATA,GACF67C,EAAMljD,KAAK,QAGb2iD,EAAMqB,UAAUkL,KAAK7nD,GAAQ,CAC3B6+C,QAASvC,OAAO,QAAUyL,EAAS,iCAAkC,KACrElM,MAAOA,EACPsB,OAAQ,CACN,KAAQ,CACN0B,QAAS,+BACTC,YAAY,GAEd,OAAU,CACRD,QAAS,SACThD,MAAO,MAAMM,KAAKn8C,GAAM,KAIhC,IAEA7D,OAAO0d,eAAeyhC,EAAMqB,UAAUkL,KAAM,WAAY,CACtDxsD,MAAOysD,GAEV,CAvDD,CAuDG1H,GAIHA,EAAMzD,UAAUqL,IAAM,CAUpB,QAAW,QAKX,QAAW,WACX,SAAY,SAKZ,OAAU,kCAOV,QAAW,CACTnJ,QAAS,iBACT1B,OAAQ,CAON,UAAa,aAiBjB,MAAS,YAYT,cAAe,oBAIjBiD,EAAMzD,UAAUsL,GAAK7H,EAAMzD,UAAUK,OAAO,QAAS,CACnD,OAAU,CACR6B,QAAS,yCACTC,YAAY,EACZU,QAAQ,GAEV,QAAW,sKACX,QAAW,gCACX,OAAU,CACV,+BACA,gFACA,sEACA,SAAY,wFACZ,QAAW,6LAEbY,EAAMzD,UAAUO,aAAa,KAAM,SAAU,CAC3C,KAAQ,CACN2B,QAAS,6BACTW,QAAQ,YAGLY,EAAMzD,UAAUsL,GAAG,cAG1B,SAAW3M,GAQT,SAASkK,EAAenJ,EAAUpiD,GAChC,MAAO,MAAQoiD,EAASqJ,cAAgBzrD,EAAQ,KAClD,CAEAkC,OAAO+d,iBAAiBohC,EAAMqB,UAAU,qBAAuB,CAAC,EAAG,CACjEuL,kBAAmB,CAYjB7sD,MAAO,SAAU0iD,EAAK1B,EAAU8L,EAAoBC,GAClD,GAAIrK,EAAI1B,WAAaA,EAArB,CAIA,IAAIgM,EAAatK,EAAIsK,WAAa,GAClCtK,EAAIC,KAAOD,EAAIC,KAAK5oC,QAAQ+yC,GAAoB,SAAUnJ,GACxD,GAA6B,mBAAlBoJ,IAAiCA,EAAcpJ,GACxD,OAAOA,EAMT,IAHA,IACIplB,EADAjiC,EAAI0wD,EAAWvwD,QAGqD,IAAjEimD,EAAIC,KAAKnhD,QAAQ+8B,EAAc4rB,EAAenJ,EAAU1kD,OAC3DA,EAKJ,OADA0wD,EAAW1wD,GAAKqnD,EACTplB,CACT,IAEAmkB,EAAIT,QAAUhC,EAAMqB,UAAU0D,MApB9B,CAqBF,GAEFiI,qBAAsB,CAOpBjtD,MAAO,SAAU0iD,EAAK1B,GACpB,GAAI0B,EAAI1B,WAAaA,GAAa0B,EAAIsK,WAAtC,CAKAtK,EAAIT,QAAUhC,EAAMqB,UAAUN,GAC9B,IAAIl9B,EAAI,EACJ/iB,EAAOD,OAAOC,KAAK2hD,EAAIsK,aAE3B,SAAS/E,EAAW3H,GAClB,IAAK,IAAIhkD,EAAI,EAAGA,EAAIgkD,EAAO7jD,UAErBqnB,GAAK/iB,EAAKtE,QAFmBH,IAAK,CAMtC,IAAI6lD,EAAQ7B,EAAOhkD,GAEnB,GAAqB,iBAAV6lD,GAAsBA,EAAMrtC,SAAoC,iBAAlBqtC,EAAMrtC,QAAsB,CACnF,IAAInR,EAAI5C,EAAK+iB,GACTtb,EAAIk6C,EAAIsK,WAAWrpD,GACnBmV,EAAqB,iBAAVqpC,EAAqBA,EAAQA,EAAMrtC,QAC9CypB,EAAc4rB,EAAenJ,EAAUr9C,GACvC/E,EAAQka,EAAEtX,QAAQ+8B,GAEtB,GAAI3/B,GAAS,EAAG,GACZklB,EACF,IAAIi+B,EAASjpC,EAAEmyC,UAAU,EAAGrsD,GACxBssD,EAAS,IAAIjL,EAAMM,MAAMS,EAAUf,EAAM6C,SAASt6C,EAAGk6C,EAAIT,SAAU,YAAcjB,EAAUx4C,GAC3Fi8C,EAAQ3rC,EAAEmyC,UAAUrsD,EAAQ2/B,EAAY9hC,QACxC0uD,EAAc,GAEdpJ,GACFoJ,EAAY7tD,KAAKL,MAAMkuD,EAAalD,EAAW,CAAClG,KAGlDoJ,EAAY7tD,KAAK4tD,GAEbzG,GACF0G,EAAY7tD,KAAKL,MAAMkuD,EAAalD,EAAW,CAACxD,KAG7B,iBAAVtC,EACT7B,EAAOriD,OAAOhB,MAAMqjD,EAAQ,CAAChkD,EAAG,GAAG8D,OAAO+qD,IAE1ChJ,EAAMrtC,QAAUq2C,CAEpB,CACF,MAAWhJ,EAAMrtC,SAGbmzC,EAAW9F,EAAMrtC,QAEvB,CAEA,OAAOwrC,CACT,CAEA2H,CAAWvF,EAAIpC,OAxDf,CAyDF,IAGL,CAzHD,CAyHGyE,GAIH,SAAW9E,GACTA,EAAMqB,UAAU4L,WAAa,CAC3B,QAAW,oBACX,UAAa,CACX1J,QAAS,oBACThD,MAAO,eAET,OAAU,mCACV,OAAU,iEACV,QAAW,qBACX,MAAS,CACPgD,QAAS,+CACTC,YAAY,EACZjD,MAAO,WAET,SAAY,CACVgD,QAAS,aACT1B,OAAQ,CACNkG,YAAa,QACbhC,SAAU,YAGd,YAAe,qCACf,SAAY,wCAEd/F,EAAM2C,MAAM7+B,IAAI,mBAAmB,SAAU2+B,GAE3CzC,EAAMqB,UAAU,qBAAqBuL,kBAAkBnK,EAAK,aADpC,yCAE1B,IACAzC,EAAM2C,MAAM7+B,IAAI,kBAAkB,SAAU2+B,GAC1CzC,EAAMqB,UAAU,qBAAqB2L,qBAAqBvK,EAAK,aACjE,IACAzC,EAAMqB,UAAU6L,IAAMlN,EAAMqB,UAAU4L,UACvC,CAjCD,CAiCGnI,GAKHA,EAAMzD,UAAU8L,KAAO,CACrB,SAAY,CACV5J,QAAS,yCACTC,YAAY,EACZU,QAAQ,GAEV,OAAU,CACRX,QAAS,yCACTC,YAAY,EACZU,QAAQ,GAEV,QAAW,CACTX,QAAS,gCACTW,QAAQ,GAEV,OAAU,qCACV,YAAe,WACf,SAAY,IACZ,QAAW,qBACX,KAAQ,CACNX,QAAS,WACThD,MAAO,YAGXuE,EAAMzD,UAAU+L,YAActI,EAAMzD,UAAU8L,KAW9CrI,EAAMzD,UAAUgM,KAAOvI,EAAMzD,UAAUK,OAAO,MAAO,CACnD,QAAW,CAAC,mBAAoB,CAC9B6B,QAAS,kBACTC,YAAY,IAEd,OAAU,CACRD,QAAS,0EACT1B,OAAQ,CACN,YAAe,UAInB,SAAY,CACV0B,QAAS,0GACT1B,OAAQ,CAEN,SAAY,aAGhB,SAAY,0CACZ,SAAY,aAEdiD,EAAMzD,UAAUO,aAAa,OAAQ,WAAY,CAC/C,SAAY,CACZ,CACE2B,QAAS,cACT1B,OAAQ,CACN,YAAe,MAGnB,aACA,cAAe,CACb0B,QAAS,sCACTC,YAAY,EACZjD,MAAO,cAKXuE,EAAMzD,UAAUiM,SAAW,CACzB,QAAW,CACT/J,QAAS,6CACTC,YAAY,GAEd,OAAU,CACRD,QAAS,iDACTW,QAAQ,GAEV,iBAAkB,CAChBX,QAAS,gCACThD,MAAO,WAET,OAAU,CACRgD,QAAS,8CACThD,MAAO,SACPsB,OAAQ,CACN,SAAY,wCAGhB,SAAY,wDAEZ,QAAW,6HACX,SAAY,CACV0B,QAAS,wQACTC,YAAY,GAEd,SAAY,uBACZ,YAAe,YAIjBsB,EAAMzD,UAAUkM,WAAazI,EAAMzD,UAAUK,OAAO,IAAK,CACvD,OAAU,CACR6B,QAAS,wCACTW,QAAQ,GAEV,QAAW,wYACX,SAAY,iEAEPY,EAAMzD,UAAUkM,WAAW,cAClCzI,EAAMzD,UAAUmM,KAAO1I,EAAMzD,UAAUkM,WAIvCzI,EAAMzD,UAAUoM,MAAQ,CACtB,QAAW,CACTlK,QAAS,mBACTW,QAAQ,GAEV,KAAQ,CACNX,QAAS,+CACTW,QAAQ,GAEV,OAAU,CAAC,CACTX,QAAS,sCACTW,QAAQ,GACP,CACDX,QAAS,8BACTW,QAAQ,IAEV,OAAU,CACV,uCACA,oEACA,qDACA,UAAa,CACXX,QAAS,SACThD,MAAO,YAET,MAAS,CACPgD,QAAS,SACThD,MAAO,YAET,gBAAiB,CACfgD,QAAS,SACThD,MAAO,YAET,QAAW,CACTgD,QAAS,OACThD,MAAO,UAIT,QAAW,gSACX,QAAW,qBACX,4BAA6B,CAC3BgD,QAAS,yBACThD,MAAO,eAGT,SAAY,wGACZ,YAAe,+BAIjBuE,EAAMzD,UAAUqM,OAAS,CACvB,QAAW,CACTnK,QAAS,eACTC,YAAY,EACZU,QAAQ,GAEV,uBAAwB,CACtBX,QAAS,sEACTW,QAAQ,EACRrC,OAAQ,CACN,cAAiB,CAEf0B,QAAS,sFACTC,YAAY,EACZ3B,OAAQ,CACN,cAAe,CACb0B,QAAS,sBACTC,YAAY,GAEd,oBAAqB,CACnBD,QAAS,kBACThD,MAAO,eAETh0B,KAAM,OAGV,OAAU,YAGd,uBAAwB,CACtBg3B,QAAS,uCACTW,QAAQ,EACR3D,MAAO,UAET,OAAU,CACRgD,QAAS,mDACTW,QAAQ,GAEV,SAAY,CACVX,QAAS,4CACTC,YAAY,GAEd,aAAc,CACZD,QAAS,mBACTC,YAAY,GAEd,UAAa,CACXD,QAAS,2BACTC,YAAY,EACZjD,MAAO,CAAC,aAAc,eACtBsB,OAAQ,CACN,YAAe,OAGnB,QAAW,wNACX,QAAW,shBACX,QAAW,0BACX,OAAU,mJACV,SAAY,uDACZ,YAAe,iBAEjBiD,EAAMzD,UAAUqM,OAAO,wBAAwB7L,OAAsB,cAAEA,OAAOt1B,KAAOu4B,EAAMzD,UAAUqM,OACrG5I,EAAMzD,UAAUsM,GAAK7I,EAAMzD,UAAUqM,OAGrC5I,EAAMzD,UAAUuM,OAAS9I,EAAMzD,UAAUK,OAAO,QAAS,CACvD,OAAU,CACR6B,QAAS,sCACTW,QAAQ,GAGV,aAAc,aACd,QAAW,4RACX,SAAY,wGAEdY,EAAMzD,UAAUO,aAAa,SAAU,aAAc,CACnD,KAAQ,CACN2B,QAAS,gEACTW,QAAQ,GAGV,YAAe,wBACf,MAAS,CACPX,QAAS,mBACThD,MAAO,mBAIJuE,EAAMzD,UAAUuM,OAAOC,SAG9B,SAAW7N,GACTA,EAAMqB,UAAUyM,KAAO9N,EAAMqB,UAAUK,OAAO,MAAO,CAEnD,QAAW,CACT6B,QAAS,gDACTC,YAAY,EACZU,QAAQ,KAGZlE,EAAMqB,UAAUO,aAAa,OAAQ,SAAU,CAE7C,cAAe,CAEb2B,QAAS,sBACTW,QAAQ,EACRrC,OAAQ,CACN,OAAU,8BAIT7B,EAAMqB,UAAUyM,KAAKC,OAC5B,IAAIhI,EAAW,yBACX9hD,EAAW,CAAC,2CAA4C,CAC1Ds/C,QAAS,cACTC,YAAY,IAEdxD,EAAMqB,UAAUO,aAAa,OAAQ,WAAY,CAE/C,gBAAiB,CACf2B,QAAS,eACTW,QAAQ,EACRrC,OAAQ,CACN,YAAe,IACf,SAAYkE,EACZ,SAAY9hD,IAIhB,gBAAiB,CACfs/C,QAAS,qCACTW,QAAQ,EACRrC,OAAQ,CACN,SAAY,CAAC,kBAAmB,CAC9B0B,QAAS,aACTC,YAAY,IAEd,YAAe,IACf,SAAYuC,EACZ,SAAY9hD,EACZ,UAAa+7C,EAAMqB,UAAUyM,KAAKrd,qBAIjCuP,EAAMqB,UAAUyM,KAAKzW,gBACrB2I,EAAMqB,UAAUyM,KAAKrd,UAG5BuP,EAAMqB,UAAUO,aAAa,OAAQ,cAAe,CAClD,SAAY,CACV2B,QAAS,yHACTC,YAAY,EACZU,QAAQ,IAGb,CAhED,CAgEGY,GAIHA,EAAMzD,UAAU2M,KAAOlJ,EAAMzD,UAAUK,OAAO,MAAO,CACnD,QAAW,CACT6B,QAAS,uCACTC,YAAY,GAEd,OAAU,CACRD,QAAS,sDACT1B,OAAQ,CACN,KAAQ,YAKZ,IAAO,0BAQP,SAAY,CAEV0B,QAAS,iGACT1B,OAAQ,CACN,OAAU,CACR0B,QAAS,IACThD,MAAO,aAET,YAAe,UACf,SAAY,2BAGhB,SAAY,CACVgD,QAAS,2CACT1B,OAAQ,CACN,SAAY,6BAIlBiD,EAAMzD,UAAUO,aAAa,OAAQ,SAAU,CAC7C,QAAW,CAAC,oHAAqH,CAC/H2B,QAAS,2BACTC,YAAY,MAGhBsB,EAAMzD,UAAUO,aAAa,OAAQ,YAAa,CAEhD,SAAY,2BAEdkD,EAAMzD,UAAUO,aAAa,OAAQ,WAAY,CAC/C,kBAAmB,CACjB2B,QAAS,6BACThD,MAAO,WAET,YAAe,CACbgD,QAAS,UACThD,MAAO,YAET,UAAa,CACXgD,QAAS,6BACThD,MAAO,WAET,QAAW,qBACX,KAAQ,CACNgD,QAAS,WACThD,MAAO,WAET,SAAY,CACVgD,QAAS,kDACTC,YAAY,KAGhBsB,EAAMzD,UAAU2M,KAAa,OAAEnM,OAAOt1B,KAAOu4B,EAAMzD,UAAU2M,KAG7D,SAAWhO,GACT,IAAI2G,EAAO,CACTpD,QAAS,sBACTC,YAAY,GAGVoD,EAAS,CACXrD,QAAS,uCACTC,YAAY,GAEV3B,EAAS,CACX,QAAW,CACT0B,QAAS,uCACTC,YAAY,GAEd,IAAO,CACLD,QAAS,yBACTW,QAAQ,GAEV,OAAU,CACRX,QAAS,gDACTW,QAAQ,GAEV,cAAiB,KAEjB,KAAQ,KAER,UAAa,+BACb,QAAW,CACTX,QAAS,2DACTC,YAAY,GAEd,QAAW,iBACX,MAAS,CAAC,q5CAAs5C,CAC95CD,QAAS,4JACT1B,OAAQ,CACN,KAAQ8E,EACR,OAAUC,EACV,SAAY,eACZ,YAAe,WAGnB,OAAU,kBACV,KAAQD,EACR,QAAW,qBACX,SAAY,CAEZ,wGACA,OAAUC,EACV,YAAe,iBAEjB/E,EAAsB,cAAI,CACxB0B,QAAS,iBACThD,MAAO,WACPsB,OAAQ,CACN,UAAa,CACX0B,QAAS,UACThD,MAAO,eAETh0B,KAAMs1B,IAGVA,EAAa,KAAI,CACf0B,QAAS,oBACT1B,OAAQ,CACN,SAAY,SACZt1B,KAAMs1B,IAGV7B,EAAMqB,UAAU4M,OAAS,CACvB,qBAAsB,CACpB1K,QAAS,gBACTC,YAAY,EACZ3B,OAAQ,CACN,OAAU,WACVt1B,KAAMs1B,IAGV,uBAAwB,CACtB0B,QAAS,qDACTC,YAAY,EACZ3B,OAAQ,CACN,SAAY,OACZt1B,KAAMs1B,IAGV,UAAa,CACX0B,QAAS,iDACTC,YAAY,EACZ3B,OAAQ,CACN,QAAW,OACXt1B,KAAMs1B,IAKV,uBAAwB,CACtB0B,QAAS,6HACTC,YAAY,EACZ3B,OAAQ,CACN,SAAY,CACV0B,QAAS,WACT1B,OAAQ,CACN,cAAiBA,EAAOoF,gBAG5B16B,KAAMs1B,IAMV,SAAY,CACV0B,QAAS,wOACTC,YAAY,EACZ3B,OAAQ,CACN,cAAiBA,EAAOoF,cACxB,QAAWpF,EAAOmF,QAClB,YAAe,UAGnB,KAAQnF,EAAOqM,KACf,OAAUrM,EAAOjG,OACjB,QAAW,CACT2H,QAAS,uCACTC,YAAY,EACZU,QAAQ,GAEV,cAAiBrC,EAAOoF,cACxB,YAAe,gBAElB,CAnID,CAmIGnC,GAIH,SAAW9E,GACT,IAAIwL,EAAaxL,EAAMI,KAAKK,MAAMT,EAAMqB,UAAUmK,YAClDxL,EAAMqB,UAAU8M,IAAMnO,EAAMqB,UAAUK,OAAO,MAAO8J,UAE7CxL,EAAMqB,UAAU8M,IAAe,iBAC/BnO,EAAMqB,UAAU8M,IAAI,oBAI3B,IAAItmD,EAAMm4C,EAAMqB,UAAU8M,IAAItmD,IAC9BA,EAAI07C,QAAUvC,OAAO,qBAAqBpnC,OAAS,MAAQ/R,EAAI07C,QAAQ3pC,OAAS,IAAK/R,EAAI07C,QAAQa,OACjGv8C,EAAI27C,YAAa,CAClB,CAZD,CAYGsB,GAIHA,EAAMzD,UAAU+M,KAAO,CACrB,QAAW,CAAC,iBAAkB,CAC5B7K,QAAS,OACTW,QAAQ,IAEV,OAAU,CACRX,QAAS,yBACTW,QAAQ,GAEV,QAAW,CAAC,CACVX,QAAS,sBACT1B,OAAQ,CACN,SAAY,MAEb,CACD0B,QAAS,ibACT1B,OAAQ,CACN,YAAe,OAEhB,4QACH,SAAY,kCACZ,OAAU,kNACV,YAAe,QAGjB,IC5hII/C,EAAe,CAEjBkB,MD0hIF,ECzhIEqO,MCJU,CACV/M,MAAO,CACLgN,gBAAiB,UACjB5c,MAAO,WAET6c,OAAQ,CAAC,CACP9E,MAAO,CAAC,UAAW,SAAU,UAAW,QAAS,eACjD73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,aACR73B,MAAO,CACL48B,QAAS,KAEV,CACD/E,MAAO,CAAC,MAAO,WAAY,UAC3B73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,WAAY,YACpB73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,SAAU,WAAY,aAC9B73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,aACR73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,UAAW,SAAU,SAAU,MAAO,aAAc,UAAW,UAAW,YAAa,OAAQ,YAAa,QAAS,SAAU,cAAe,YACtJ73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,WACR73B,MAAO,CACL68B,mBAAoB,iBAErB,CACDhF,MAAO,CAAC,YACR73B,MAAO,CACL68B,mBAAoB,cAErB,CACDhF,MAAO,CAAC,UACR73B,MAAO,CACL88B,UAAW,WAEZ,CACDjF,MAAO,CAAC,YAAa,QACrB73B,MAAO,CACL+f,WAAY,SAEb,CACD8X,MAAO,CAAC,aACR73B,MAAO,CACL8f,MAAO,eDxDb,SAASid,EAAgBtzC,EAAKnd,EAAK6B,GAYjC,OAXI7B,KAAOmd,EACTxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAC9B6B,MAAOA,EACP0a,YAAY,EACZE,cAAc,EACdD,UAAU,IAGZW,EAAInd,GAAO6B,EAGNsb,CACT,CAEA,SAASu6B,IAeP,OAdAA,EAAW/0C,OAAOyqB,QAAU,SAAUtQ,GACpC,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CACzC,IAAIud,EAASnd,UAAUJ,GAEvB,IAAK,IAAI6B,KAAO0b,EACV/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAC/C8c,EAAO9c,GAAO0b,EAAO1b,GAG3B,CAEA,OAAO8c,CACT,EAEO46B,EAAS54C,MAAMjC,KAAM0B,UAC9B,CAEA,IAAImyD,EAAY,aAEZC,EAAsB,SAAUC,GACd,IAAhBA,EAAKtyD,OACPsyD,EAAKzxD,KAAK,CACRosD,MAAO,CAAC,SACR50C,QAAS,KACTk6C,OAAO,IAEgB,IAAhBD,EAAKtyD,QAAoC,KAApBsyD,EAAK,GAAGj6C,UACtCi6C,EAAK,GAAGj6C,QAAU,KAClBi6C,EAAK,GAAGC,OAAQ,EAEpB,EAEIC,EAAc,SAAUvF,EAAO3lC,GACjC,IAAImrC,EAAYxF,EAAMjtD,OAEtB,OAAIyyD,EAAY,GAAKxF,EAAMwF,EAAY,KAAOnrC,EACrC2lC,EAGFA,EAAMtpD,OAAO2jB,EACtB,EA2GA,SAAS+xB,EAAwBx6B,EAAK6zC,GACpC,IAAIl0C,EAAS,CAAC,EAEd,IAAK,IAAItX,KAAK2X,EAASxa,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAK3X,KAA8B,IAAxBwrD,EAAQ3tD,QAAQmC,KAAWsX,EAAOtX,GAAK2X,EAAI3X,IAElH,OAAOsX,CACT,CAEA,IAAIm0C,EAAyB,SAAUxb,GACrC,SAASwb,IAKP,IAJA,IAAIC,EAASr0D,KACTqB,EAAO,GACPD,EAAMM,UAAUD,OAEbL,KAAOC,EAAKD,GAAOM,UAAUN,GAEpCw3C,EAAU32C,MAAMjC,KAAMqB,GAEtBuyD,EAAgB5zD,KAAM,gBAAgB,SAAU8wB,GAC9C,QAAyB3wB,IAArBk0D,EAAOC,WAA2BxjC,EAAMwiC,QAAUe,EAAOE,WAAazjC,EAAMk1B,WAAaqO,EAAOG,aAClG,OAAOH,EAAOC,UAGhBD,EAAOE,UAAYzjC,EAAMwiC,MACzBe,EAAOG,aAAe1jC,EAAMk1B,SAC5B,IAAIsO,EAAYxjC,EAAMwiC,MAtDV,SAAUA,EAAOtN,GACjC,IAAIO,EAAQ+M,EAAM/M,MAEdpF,EAAOr7C,OAAO2Z,OAAO,MACrB60C,EAAYhB,EAAME,OAAOxtD,QAAO,SAAU2J,EAAK8kD,GACjD,IAAInO,EAAYmO,EAAWnO,UACvBzvB,EAAQ49B,EAAW59B,MAEvB,OAAIyvB,IAAcA,EAAUr3B,SAAS+2B,IAIrCyO,EAAW/F,MAAMtmD,SAAQ,SAAUnH,GAEjC,IAAIyzD,EAAW7Z,EAAS,CAAC,EAAGlrC,EAAI1O,GAAO41B,GAEvClnB,EAAI1O,GAAQyzD,CACd,IARS/kD,CAUX,GAAGwxC,GAOH,OALAmT,EAAUh/C,KAAOixC,EAEjB+N,EAAU/N,MAAQ1L,EAAS,CAAC,EAAG0L,EAAO,CACpCgN,gBAAiB,OAEZe,CACT,CA2BoCK,CAAY7jC,EAAMwiC,MAAOxiC,EAAMk1B,eAAY7lD,EACzE,OAAOk0D,EAAOC,UAAYA,CAC5B,IAEAV,EAAgB5zD,KAAM,gBAAgB,SAAU+wB,GAC9C,IAAI5tB,EAAM4tB,EAAI5tB,IACVmuB,EAAYP,EAAIO,UAChBuF,EAAQ9F,EAAI8F,MAIZ+9B,EAAS/Z,EAAS,CAAC,EAHVC,EAAwB/pB,EAAK,CAAC,MAAO,YAAa,QAAS,SAGxC,CAC9BO,UAAW,aACXuF,WAAO12B,EACPgD,SAAKhD,IAGHm0D,EAAYD,EAAOQ,aAAaR,EAAOvjC,OAkB3C,YAhBkB3wB,IAAdm0D,IACFM,EAAO/9B,MAAQy9B,EAAU/N,YAGbpmD,IAAV02B,IACF+9B,EAAO/9B,WAAyB12B,IAAjBy0D,EAAO/9B,MAAsBgkB,EAAS,CAAC,EAAG+Z,EAAO/9B,MAAOA,GAASA,QAGtE12B,IAARgD,IACFyxD,EAAOzxD,IAAMA,GAGXmuB,IACFsjC,EAAOtjC,WAAa,IAAMA,GAGrBsjC,CACT,IAEAhB,EAAgB5zD,KAAM,oBAAoB,SAAU+wB,GAClD,IAAI29B,EAAQ39B,EAAI29B,MACZsF,EAAQjjC,EAAIijC,MACZE,EAAYxF,EAAMjtD,OAClB6yD,EAAYD,EAAOQ,aAAaR,EAAOvjC,OAE3C,QAAkB3wB,IAAdm0D,EAAJ,CAEO,GAAkB,IAAdJ,GAAgC,UAAbxF,EAAM,GAClC,OAAOsF,EAAQ,CACb53B,QAAS,qBACPj8B,EACC,GAAkB,IAAd+zD,IAAoBF,EAC7B,OAAOM,EAAU5F,EAAM,IAGzB,IAAIoG,EAAYd,EAAQ,CACtB53B,QAAS,gBACP,CAAC,EAED24B,EAAarG,EAAM3lD,KAAI,SAAU9H,GACnC,OAAOqzD,EAAUrzD,EACnB,IACA,OAAO6E,OAAOyqB,OAAOtuB,MAAM6D,OAAQ,CAACgvD,GAAW1vD,OAAO2vD,GATtD,CAUF,IAEAnB,EAAgB5zD,KAAM,iBAAiB,SAAU+wB,GAC/C,IAAI5tB,EAAM4tB,EAAI5tB,IACVmuB,EAAYP,EAAIO,UAChBuF,EAAQ9F,EAAI8F,MACZswB,EAAQp2B,EAAIo2B,MAIZyN,EAAS/Z,EAAS,CAAC,EAHVC,EAAwB/pB,EAAK,CAAC,MAAO,YAAa,QAAS,UAGxC,CAC9BO,UAAW,SAAW61B,EAAMuH,MAAM/sC,KAAK,KACvCpL,SAAU4wC,EAAMrtC,QAChB+c,MAAOw9B,EAAOW,iBAAiB7N,GAC/BhkD,SAAKhD,IAeP,YAZcA,IAAV02B,IACF+9B,EAAO/9B,WAAyB12B,IAAjBy0D,EAAO/9B,MAAsBgkB,EAAS,CAAC,EAAG+Z,EAAO/9B,MAAOA,GAASA,QAGtE12B,IAARgD,IACFyxD,EAAOzxD,IAAMA,GAGXmuB,IACFsjC,EAAOtjC,WAAa,IAAMA,GAGrBsjC,CACT,IAEAhB,EAAgB5zD,KAAM,YAAY,SAAUilD,EAAO0C,EAAMV,EAASjB,GAChE,IAAI0B,EAAM,CACRC,KAAMA,EACNV,QAASA,EACTjB,SAAUA,EACVV,OAAQ,IAEVL,EAAM2C,MAAMC,IAAI,kBAAmBH,GACnC,IAAIpC,EAASoC,EAAIpC,OAASL,EAAM6C,SAASJ,EAAIC,KAAMD,EAAIT,QAASS,EAAI1B,UAEpE,OADAf,EAAM2C,MAAMC,IAAI,iBAAkBH,GAC3BpC,CACT,GACF,CAyBA,OAvBI1M,IAAWwb,EAAUlS,UAAYtJ,GACrCwb,EAAU1zD,UAAYoF,OAAO2Z,OAAOm5B,GAAaA,EAAUl4C,WAC3D0zD,EAAU1zD,UAAUwJ,YAAckqD,EAElCA,EAAU1zD,UAAU+iD,OAAS,WAC3B,IAAI1yB,EAAM/wB,KAAK8wB,MACXm0B,EAAQl0B,EAAIk0B,MACZe,EAAWj1B,EAAIi1B,SACf2B,EAAO52B,EAAI42B,KACXpxC,EAAWwa,EAAIxa,SACf+9C,EAAYt0D,KAAK60D,aAAa70D,KAAK8wB,OACnCm2B,EAAUhC,EAAMqB,UAAUN,GAG9B,OAAOzvC,EAAS,CACd+uC,OAvPgB,SAAUA,GAU9B,IATA,IAAI2P,EAAe,CAAC,IAChBC,EAAgB,CAAC5P,GACjB6P,EAAqB,CAAC,GACtBC,EAAoB,CAAC9P,EAAO7jD,QAC5BH,EAAI,EACJ+zD,EAAa,EACbC,EAAc,GACd3lD,EAAM,CAAC2lD,GAEJD,GAAc,GAAG,CACtB,MAAQ/zD,EAAI6zD,EAAmBE,MAAiBD,EAAkBC,IAAa,CAC7E,IAAIv7C,OAAU,EACV40C,EAAQuG,EAAaI,GAErBlO,EADW+N,EAAcG,GACR/zD,GAgBrB,GAdqB,iBAAV6lD,GACTuH,EAAQ2G,EAAa,EAAI3G,EAAQ,CAAC,SAClC50C,EAAUqtC,IAEVuH,EAAQuF,EAAYvF,EAAOvH,EAAMlmD,MAE7BkmD,EAAM3B,QACRkJ,EAAQuF,EAAYvF,EAAOvH,EAAM3B,QAGnC1rC,EAAUqtC,EAAMrtC,SAIK,iBAAZA,EAAX,CAUA,IAAIy7C,EAAkBz7C,EAAQrJ,MAAMojD,GAChC2B,EAAeD,EAAgB9zD,OACnC6zD,EAAYhzD,KAAK,CACfosD,MAAOA,EACP50C,QAASy7C,EAAgB,KAG3B,IAAK,IAAIE,EAAM,EAAGA,EAAMD,EAAcC,IACpC3B,EAAoBwB,GACpB3lD,EAAIrN,KAAKgzD,EAAc,IACvBA,EAAYhzD,KAAK,CACfosD,MAAOA,EACP50C,QAASy7C,EAAgBE,IAf7B,MANEJ,IACAJ,EAAa3yD,KAAKosD,GAClBwG,EAAc5yD,KAAKwX,GACnBq7C,EAAmB7yD,KAAK,GACxB8yD,EAAkB9yD,KAAKwX,EAAQrY,OAoBnC,CAGA4zD,IACAJ,EAAa1tC,MACb2tC,EAAc3tC,MACd4tC,EAAmB5tC,MACnB6tC,EAAkB7tC,KACpB,CAGA,OADAusC,EAAoBwB,GACb3lD,CACT,CAiLiB+lD,MADiBv1D,IAAZ8mD,EAAwBjnD,KAAK8nD,SAAS7C,EAAO0C,EAAMV,EAASjB,GAAY,CAAC2B,IAIzFr2B,UAAW,uBAAyB00B,EACpCnvB,WAAqB12B,IAAdm0D,EAA0BA,EAAUh/C,KAAO,CAAC,EACnDqgD,aAAc31D,KAAK21D,aACnBC,cAAe51D,KAAK41D,eAExB,EAEOxB,CACT,CArJ6B,CAqJ3B,EAAAxb,WAEF,IErRA,EAtDY,CACV2N,MAAO,CACL5P,MAAO,UACP4c,gBAAiB,WAEnBC,OAAQ,CAAC,CACP9E,MAAO,CAAC,SAAU,WAAY,WAC9B73B,MAAO,CACL8f,MAAO,uBAER,CACD+X,MAAO,CAAC,WAAY,YACpB73B,MAAO,CACL8f,MAAO,sBAER,CACD+X,MAAO,CAAC,WACR73B,MAAO,CACL8f,MAAO,qBAER,CACD+X,MAAO,CAAC,WACR73B,MAAO,CACL8f,MAAO,uBAER,CACD+X,MAAO,CAAC,cAAe,UACvB73B,MAAO,CACL8f,MAAO,uBAER,CACD+X,MAAO,CAAC,SAAU,OAAQ,MAAO,YACjC73B,MAAO,CACL8f,MAAO,uBAER,CACD+X,MAAO,CAAC,UAAW,YACnB73B,MAAO,CACL8f,MAAO,qBACPgd,UAAW,WAEZ,CACDjF,MAAO,CAAC,WACR73B,MAAO,CACL8f,MAAO,sBAER,CACD+X,MAAO,CAAC,aACR73B,MAAO,CACL8f,MAAO,yBCIb,EAtDY,CACV4P,MAAO,CACL5P,MAAO,UACP4c,gBAAiB,WAEnBC,OAAQ,CAAC,CACP9E,MAAO,CAAC,UAAW,SAAU,UAAW,SACxC73B,MAAO,CACL8f,MAAO,UACPgd,UAAW,WAEZ,CACDjF,MAAO,CAAC,aACR73B,MAAO,CACL48B,QAAS,KAEV,CACD/E,MAAO,CAAC,SAAU,cAClB73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,cAAe,YACvB73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,SAAU,MAAO,SAAU,SAAU,UAAW,WAAY,WAAY,WAAY,QAAS,YACrG73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,SAAU,UAAW,YAAa,YAC1C73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,WAAY,UAAW,OAC/B73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,qBACR73B,MAAO,CACL8f,MAAO,YAER,CACD+X,MAAO,CAAC,MAAO,WAAY,WAC3B73B,MAAO,CACL8f,MAAO,cC9BN,SAASkf,EAAWviC,GAIL,IAJM,KACxBq0B,EACAr2B,UAAWwkC,EAAc,SACzB9P,GACe1yB,EACf,MAAM,MAAEggC,IAAU5iC,EAAAA,EAAAA,OAEXqlC,EAAkBC,GACrBnlC,EAAAA,SAA2BolC,GAE/BplC,EAAAA,WAAgB,KAERmlC,EADU,SAAV1C,EACoB4C,EAEAD,EACxB,GACD,CAAC3C,IAEJ,MAAMxkC,GAAU2C,EAAAA,EAAAA,IAAG,eAAgBqkC,GAEnC,IAAI3I,EACAt8B,EAAAA,cAAA,OAAKS,UAAWxC,GACZ+B,EAAAA,cAAA,YAAO82B,IAsCf,OAlCI3B,IACAmH,EACIt8B,EAAAA,cAACujC,EAAStuD,OAAAyqB,OAAA,GACFwzB,EAAY,CAChB4D,KAAMA,EACN3B,SAAUA,EACVsN,MAAOyC,KAEN5gC,IAAA,IAAC,UACE7D,EAAS,MACTuF,EAAK,OACLyuB,EAAM,aACNqQ,EAAY,cACZC,GACHzgC,EAAA,OACGtE,EAAAA,cAAA,OAAKS,WAAWG,EAAAA,EAAAA,IAAG3C,EAASwC,GAAYuF,MAAOA,GAC1CyuB,EAAOv8C,KAAI,CAACgrD,EAAMzyD,IAEfuvB,EAAAA,cAAA,MAAA/qB,OAAAyqB,OAAA,GAASolC,EAAa,CAAE5B,OAAM5wD,IAAK7B,IAAI,CAAE6B,IAAK7B,IACzCyyD,EAAKhrD,KAAI,CAACo+C,EAAOr+B,IACd+H,EAAAA,cAAA,OAAA/qB,OAAAyqB,OAAA,GACQqlC,EAAc,CAAEzO,QAAOhkD,IAAK2lB,IAAI,CAEpC3lB,IAAK2lB,UAKnB,KAMfqkC,CACX,CAAC0I,EAAAhf,aAAA,6BC/EM,MAAMsf,EAAoC,CAC7CzE,OAAQ,MACR0E,SAAU,iBACV9hB,KAAM,CACF,GACA,GACA,GACA,GACA,20BCcR,MAAM+hB,EAA8D,CAChEnL,MAAO,OACPoL,QAAS,cAYN,SAASC,EAAgBjjC,GAMoB,IAC5CkjC,EACAC,GARyB,WAC7BC,EAAU,YACVC,EAAW,UACXrlC,EAAS,SACT00B,EAAW,OAAM,YACjB4Q,GAAc,GAC+BtjC,EAI7C,MAAOujC,EAAgBC,GAAqBjmC,EAAAA,UAAe,IAErD,QAAEkmC,EAAO,OAAEC,IAAWC,EAAAA,EAAAA,KAEtBC,EAAoBlR,EAAS3+B,cACnC,IAAI8vC,EACAD,KAAqBb,EACrBc,EACId,EAA2Ba,GACxBlR,GAAyB,SAAbA,IACnBmR,EAAoBD,GAGxB,MAAM/R,EAAWiS,IAAK,GAAEV,KAAcC,KAChCU,EAAkBrR,GAAyB,SAAbA,EAEhC0Q,IACAF,EACI3lC,EAAAA,cAACglC,EAAW,CACRvkC,UAAU,cACV00B,SAAUmR,EACVxP,KAAM+O,KAIdC,IACAF,EACI5lC,EAAAA,cAACglC,EAAW,CAACvkC,UAAU,eAAeq2B,KAAMgP,KAIpD,MAcMW,EAAmBA,KACrBP,EAAQL,GACRM,EAAO,eAEPO,EAAAA,EAAAA,GAAM,+BAAgC,CAClCnwC,OAAQ,aACRowC,YAAarS,GACf,EAGN,IAAIsS,EACAJ,IACAI,EACI5mC,EAAAA,cAAC6mC,EAAAA,GAAK,CACFpmC,UAAU,oBACVqlB,MAAM,gBACNic,GAAG,SAEF+E,EAAAA,EAAAA,IAAe3R,KAK5B,MAAMl3B,GAAU2C,EAAAA,EAAAA,IAAG,yBAA0BH,GAE7C,IAAIsmC,EACAhB,IACAgB,EACI/mC,EAAAA,cAACgnC,EAAAA,GAAM,CACH9gB,UAAU,gBACVzlB,UAAU,oBACV0lB,KAAK,KACLC,SAAUpmB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMwjB,EAAAA,MACxBn1B,QAAS20B,GACZ,eAMT,IAAIS,EAAY,OAKhB,OAJIlB,IACAkB,EAAY,UAIZlnC,EAAAA,cAAA,OAAKS,UAAWxC,EAAS,UAASq2B,GAC9Bt0B,EAAAA,cAACylB,EAAAA,GAAI,CACDhlB,UAAU,eACV0mC,WAAW,OACXC,WAAW,SACXC,GAAG,OACHtF,GAAG,KACH9kB,eAAe,iBAEfjd,EAAAA,cAAA,OAAKS,UAAU,sBAAsBmmC,GAErC5mC,EAAAA,cAACylB,EAAAA,GAAI,CAAChlB,UAAU,UAAU2mC,WAAW,SAASE,IAAI,QAC7CP,EACD/mC,EAAAA,cAACgnC,EAAAA,GAAM,CACH9gB,UAAU,gBACVC,KAAK,KACLC,SAAUpmB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM6hB,IACxBxzB,QA7EDy1B,MACfC,EAAAA,EAAAA,GAAgB3B,GAChBI,GAAkB,GAElBhsC,YAAW,KACPgsC,GAAkB,EAAM,GACzB,MAEHS,EAAAA,EAAAA,GAAM,kBAAmB,CACrBe,eAAgB,kBAChBd,YAAarS,GACf,GAoEe4S,KAIblnC,EAAAA,cAAC0lB,EAAAA,GAAG,CAACjlB,UAAU,iBACVklC,EACAC,GAIjB,CAACF,EAAA1f,aAAA,kKCvJD,MAAM0hB,GAAeC,EAAAA,EAAAA,MAEfC,EAA8C3yD,OAAOmsB,YACvDsmC,EAAatjC,SAASyjC,GACD,CACbA,EAAkBC,gBAAcvzD,QAAAwzD,EAAAA,EAAAA,GAC7BF,EAAkBG,eAAYD,EAAAA,EAAAA,GAC9BF,EAAkBI,mBAGN/vD,KAAKjF,IACpB,IAAI2zD,EAAQiB,EAAkBK,UAM9B,OAJIL,EAAkBG,aAAap3D,OAAS,IACxCg2D,EAAS,GAAEA,MAAU3zD,KAGlB,CAAE,GAAE40D,EAAkBM,SAASl1D,IAAW2zD,EAAM,OAe5D,SAASwB,EAAe3lC,GAQL,IAuDlBghB,GA/DwB,MAC5BtvC,EAAK,cACLy6B,EAAa,UACbnO,EAAS,iBACT4nC,EAAgB,QAChBC,EAAO,aACPC,GAAe,EAAK,wBACpBC,GAA0B,GACP/lC,EACfgmC,EAAgBf,EAAaxvD,KAAK2vD,IAClC,IAMIa,EANAC,EAAed,EAAkBK,UA4BrC,OA1BIL,EAAkBG,aAAap3D,OAAS,IACxC+3D,EAAgB,GAAEA,MAAiBd,EAAkBC,kBAKrDU,IACAE,EAAkBb,EAAkBI,iBAC/BjhD,OACAgR,UACA9f,KAAK0wD,IACF,MAAMz0D,EAAS,GAAE0zD,EAAkBM,SAASS,IAE5C,OACI5oC,EAAAA,cAACqjB,EAAAA,GAAU,CACP/wC,IAAK6B,EACLA,MAAOA,EACPssB,UAAU,YAEVT,EAAAA,cAAA,WAAM4nC,EAAiBzzD,IACvB6rB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMolB,EAAAA,MACL,KAMzB7oC,EAAAA,cAACA,EAAAA,SAAc,CAAC1tB,IAAKu1D,EAAkBM,MACnCnoC,EAAAA,cAACqjB,EAAAA,GAAU,CACP/wC,IAAM,GAAEu1D,EAAkBM,SAASN,EAAkBC,iBACrD3zD,MAAQ,GAAE0zD,EAAkBM,SAASN,EAAkBC,kBAEtDa,GAEJd,EAAkBG,aACdhhD,OACAgR,UACA9f,KAAK0wD,IACF,MAAMz0D,EAAS,GAAE0zD,EAAkBM,SAASS,IAE5C,OACI5oC,EAAAA,cAACqjB,EAAAA,GAAU,CAAC/wC,IAAK6B,EAAOA,MAAOA,GAC1ByzD,EAAiBzzD,GACT,IAGxBu0D,EACY,IAMrBv0D,SAAAA,EAAO+tC,WAAW,SAClBuB,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMqlB,EAAAA,IAASnjB,GAAG,UAC1BxxC,SAAAA,EAAO+tC,WAAW,QACzBuB,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMslB,EAAAA,IAAUpjB,GAAG,WAGtC,MAAM1nB,GAAU2C,EAAAA,EAAAA,IAAG,mBAAoBH,GAEvC,IAAIuoC,EAEAT,IACAS,EACIhpC,EAAAA,cAACqjB,EAAAA,GAAU,CAAC/wC,IAAI,MAAM6B,MAAM,OAAM,QAM1C,IAAI80D,EACAjpC,EAAAA,cAAAA,EAAAA,SAAA,KACKyjB,EACDzjB,EAAAA,cAAC6jB,EAAAA,GAAW,CAAC,aAAY+jB,EAAiBzzD,MAI9Cm0D,IACAW,EAAiBjpC,EAAAA,cAAAA,EAAAA,SAAA,KAAE,eAGvB,MAAMkpC,GAAiBtoC,EAAAA,EAAAA,IAAG,4BAA6BynC,GAEvD,OACIroC,EAAAA,cAACmjB,EAAAA,GAAM,CAAChvC,MAAOA,EAAOy6B,cAAeA,GACjC5O,EAAAA,cAACokB,EAAAA,GAAa,CACV,aAAW,6CACX3jB,UAAWxC,GAEVgrC,GAGLjpC,EAAAA,cAACukB,EAAAA,GAAa,CAAC9jB,UAAWyoC,GACrBF,EACAP,GAIjB,CAACL,EAAApiB,aAAA,qMChJD,MAAMmjB,EAAqBC,GACtB,0CAAyCA,IAExC1B,GAAe2B,EAAAA,EAAAA,MAEfC,EAAuBr0D,OAAOmsB,YAChCsmC,EACKtjC,SAASyjC,GAAsBA,EAAkBI,mBACjD/vD,KAAKkxD,GAAoB,CACrB,IAAGA,IACJD,EAAkBC,OAIvB,SAASG,IACZ,MAAM,SAAEC,IAAaC,EAAAA,EAAAA,KACfC,GAAeC,EAAAA,EAAAA,KACfC,GAAWC,EAAAA,EAAAA,IAAkBL,IAC7B,aAAEM,IAAiBC,EAAAA,EAAAA,MAElBzB,EAAS0B,GAAchqC,EAAAA,UAAwB,GAEtDA,EAAAA,WAAgB,IACL,KACHgqC,GAAW,EAAM,GAEtB,IAEH,MA8DM/rD,GAAegsD,EAAAA,EAAAA,GAAgC,CAAEL,aAEvD,OACI5pC,EAAAA,cAACooC,EAAAA,EAAe,CACZI,yBAAuB,EACvBr0D,MAAO8J,EACPqqD,QAASA,EACTD,iBAAiB,+BACjBz5B,cAtEiBz6B,IACrB61D,GAAW,GAEX,MAAMlS,EAAQ3jD,EAAM2jD,MAAMoS,EAAAA,IAE1B,IAAKpS,EAED,YADAnmD,QAAQhB,MAAM,mCAIlB,MAAMw5D,EAAUrS,EAAM,GAChB7kD,EAAU6kD,EAAM,GAEtB,GAAI7kD,KAAWq2D,EAGX,OAFA51C,OAAOqG,KAAKuvC,EAAqBr2D,SACjC+2D,GAAW,GAIf,MAAMnC,EAAoBH,EAAa5xD,MAClCs0D,GAAWA,EAAOjC,OAASgC,IAE1BE,EAAc7jD,QAAQqhD,EAAkBG,aAAap3D,OAAS,GAEpE,IAAI05D,EAA0B,IACvBV,EACHO,QAASA,EACTl3D,QAASo3D,EAAcp3D,OAAU3D,GAIrC,MAAMi7D,EAAoD,IAApCD,EAAYE,aAAa55D,OAC/C,GAAI25D,EAAe,CACf,IAAIE,EAA6BN,EAC7BO,EAA6Bz3D,EAE7B40D,EAAkB8C,qBAClBF,OAAcn7D,EACdo7D,OAAcp7D,GAGlBg7D,EAAc,CACVE,aAAc,GACdI,YAAQt7D,EACR2D,QAASy3D,EACTP,QAASM,EAEjB,CAEA,MAAMI,GAAeC,EAAAA,EAAAA,IAAmBR,GAClCE,EAAeV,aAAY,EAAZA,EAAe31D,GAEhCo2D,GACAQ,EAAAA,EAAAA,IAASF,GACFL,GACPO,EAAAA,EAAAA,IAASP,GAETd,EAAamB,EAEX,GAcd,CAACtB,EAAAvjB,aAAA,qECrHoH,SAAShxB,EAAE7L,EAAExM,EAAExG,GAAG,OAAOwG,KAAKwM,EAAElU,OAAO0d,eAAexJ,EAAExM,EAAE,CAACxI,MAAMgC,EAAE0Y,YAAW,EAAGE,cAAa,EAAGD,UAAS,IAAK3F,EAAExM,GAAGxG,EAAEgT,CAAC,CAAC,SAAS1Y,EAAE0Y,EAAExM,GAAG,OAAO,SAASwM,GAAG,GAAGjY,MAAMmF,QAAQ8S,GAAG,OAAOA,CAAC,CAAxC,CAA0CA,IAAI,SAASA,EAAExM,GAAG,IAAIxG,EAAE,MAAMgT,EAAE,KAAK,oBAAoB+J,QAAQ/J,EAAE+J,OAAOC,WAAWhK,EAAE,cAAc,GAAG,MAAMhT,EAAT,CAAkB,IAAInG,EAAEsc,EAAEkD,EAAE,GAAGwF,GAAE,EAAGvkB,GAAE,EAAG,IAAI,IAAI0F,EAAEA,EAAElF,KAAKkY,KAAK6L,GAAGhlB,EAAEmG,EAAEkd,QAAQC,QAAQ9D,EAAE/d,KAAKzB,EAAEmE,QAAQwI,GAAG6S,EAAE5e,SAAS+L,GAAGqY,GAAE,GAAI,CAAC,MAAM7L,GAAG1Y,GAAE,EAAG6b,EAAEnD,CAAC,CAAC,QAAQ,IAAI6L,GAAG,MAAM7e,EAAEod,QAAQpd,EAAEod,QAAQ,CAAC,QAAQ,GAAG9iB,EAAE,MAAM6b,CAAC,CAAC,CAAC,OAAOkD,CAAvM,CAAwM,CAA1T,CAA4TrG,EAAExM,IAAI6X,EAAErL,EAAExM,IAAI,WAAW,MAAM,IAAIzM,UAAU,4IAA4I,CAA3K,EAA8K,CAAC,SAAS+c,EAAE9D,GAAG,OAAO,SAASA,GAAG,GAAGjY,MAAMmF,QAAQ8S,GAAG,OAAO2J,EAAE3J,EAAE,CAA3C,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoB+J,QAAQ,MAAM/J,EAAE+J,OAAOC,WAAW,MAAMhK,EAAE,cAAc,OAAOjY,MAAMsiB,KAAKrK,EAAE,CAA/G,CAAiHA,IAAIqL,EAAErL,IAAI,WAAW,MAAM,IAAIjZ,UAAU,uIAAuI,CAAtK,EAAyK,CAAC,SAASskB,EAAErL,EAAExM,GAAG,GAAGwM,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAO2J,EAAE3J,EAAExM,GAAG,IAAIxG,EAAElB,OAAOpF,UAAUkQ,SAAS9O,KAAKkY,GAAGhY,MAAM,GAAG,GAAG,MAAM,WAAWgF,GAAGgT,EAAE9P,cAAclD,EAAEgT,EAAE9P,YAAYP,MAAM,QAAQ3C,GAAG,QAAQA,EAAEjF,MAAMsiB,KAAKrK,GAAG,cAAchT,GAAG,2CAA2Cuc,KAAKvc,GAAG2c,EAAE3J,EAAExM,QAAG,CAAM,CAAC,CAAC,SAASmW,EAAE3J,EAAExM,IAAI,MAAMA,GAAGA,EAAEwM,EAAEvY,UAAU+L,EAAEwM,EAAEvY,QAAQ,IAAI,IAAIuF,EAAE,EAAEnG,EAAE,IAAIkB,MAAMyL,GAAGxG,EAAEwG,EAAExG,IAAInG,EAAEmG,GAAGgT,EAAEhT,GAAG,OAAOnG,CAAC,CAAC,SAASojB,EAAEjK,EAAExM,GAAG,IAAIxG,EAAE,oBAAoB+c,QAAQ/J,EAAE+J,OAAOC,WAAWhK,EAAE,cAAc,IAAIhT,EAAE,CAAC,GAAGjF,MAAMmF,QAAQ8S,KAAKhT,EAAEqe,EAAErL,KAAKxM,GAAGwM,GAAG,iBAAiBA,EAAEvY,OAAO,CAACuF,IAAIgT,EAAEhT,GAAG,IAAInG,EAAE,EAAEsc,EAAE,WAAW,EAAE,MAAM,CAACW,EAAEX,EAAEtc,EAAE,WAAW,OAAOA,GAAGmZ,EAAEvY,OAAO,CAAC0iB,MAAK,GAAI,CAACA,MAAK,EAAGnf,MAAMgV,EAAEnZ,KAAK,EAAEmZ,EAAE,SAASA,GAAG,MAAMA,CAAC,EAAEvU,EAAE0X,EAAE,CAAC,MAAM,IAAIpc,UAAU,wIAAwI,CAAC,IAAIsf,EAAEwF,GAAE,EAAGvkB,GAAE,EAAG,MAAM,CAACwc,EAAE,WAAW9W,EAAEA,EAAElF,KAAKkY,EAAE,EAAEnZ,EAAE,WAAW,IAAImZ,EAAEhT,EAAEkd,OAAO,OAAO2B,EAAE7L,EAAEmK,KAAKnK,CAAC,EAAEA,EAAE,SAASA,GAAG1Y,GAAE,EAAG+e,EAAErG,CAAC,EAAEvU,EAAE,WAAW,IAAIogB,GAAG,MAAM7e,EAAEod,QAAQpd,EAAEod,QAAQ,CAAC,QAAQ,GAAG9iB,EAAE,MAAM+e,CAAC,CAAC,EAAE,CAAC,SAAS5a,EAAEuU,EAAExM,GAAG,IAAIxG,EAAE,CAAC,EAAE,IAAI,IAAInG,KAAKmZ,EAAElU,OAAOpF,UAAUwf,eAAepe,KAAKkY,EAAEnZ,IAAI2M,EAAEhH,QAAQ3F,GAAG,IAAImG,EAAEnG,GAAGmZ,EAAEnZ,IAAI,GAAG,MAAMmZ,GAAG,mBAAmBlU,OAAO2d,sBAAsB,CAAC,IAAItG,EAAE,EAAE,IAAItc,EAAEiF,OAAO2d,sBAAsBzJ,GAAGmD,EAAEtc,EAAEY,OAAO0b,IAAI3P,EAAEhH,QAAQ3F,EAAEsc,IAAI,GAAGrX,OAAOpF,UAAUojB,qBAAqBhiB,KAAKkY,EAAEnZ,EAAEsc,MAAMnW,EAAEnG,EAAEsc,IAAInD,EAAEnZ,EAAEsc,IAAI,CAAC,OAAOnW,CAAC,CAAC,IAAI0e,EAAE,WAAW,IAAI,IAAI1L,EAAEtY,UAAUD,OAAO+L,EAAE,IAAIzL,MAAMiY,GAAGhT,EAAE,EAAEA,EAAEgT,EAAEhT,IAAIwG,EAAExG,GAAGtF,UAAUsF,GAAG,OAAO,SAASgT,GAAG,IAAIhT,EAAEnG,EAAEojB,EAAEzW,GAAG,IAAI,IAAI3M,EAAEid,MAAM9W,EAAEnG,EAAEA,KAAKsjB,MAAM,CAAC,IAAIhH,EAAEnW,EAAEhC,MAAM,GAAGmY,GAAGA,EAAEnD,GAAGA,EAAE2f,iBAAiB,KAAK,CAAC,CAAC,MAAM3f,GAAGnZ,EAAEmZ,EAAEA,EAAE,CAAC,QAAQnZ,EAAE4E,GAAG,CAAC,CAAC,EAAE6gB,EAAE,SAAStM,EAAExM,GAAG,IAAIxG,EAAEnG,EAAE,IAAIosB,IAAI9P,EAAE8G,EAAEjK,GAAG,IAAI,IAAImD,EAAEW,MAAM9W,EAAEmW,EAAEtc,KAAKsjB,MAAM,CAAC,IAAI9D,EAAErZ,EAAEhC,MAAMwI,EAAE4f,IAAI/M,IAAIxf,EAAEkoB,IAAI1I,EAAE,CAAC,CAAC,MAAMrG,GAAGmD,EAAEnD,EAAEA,EAAE,CAAC,QAAQmD,EAAE1X,GAAG,CAAC,OAAO5E,CAAC,EAAE2E,EAAE,SAASwU,EAAExM,GAAG,OAAO,IAAIyf,IAAI,GAAG7nB,OAAO0Y,EAAEwI,EAAEtM,EAAExM,IAAIsQ,EAAEwI,EAAE9Y,EAAEwM,KAAK,EAAEqQ,EAAE,SAASrQ,GAAG,IAAIxM,GAAE,cAAI,OAAO,gBAAE,WAAYA,EAAEqrB,QAAQ7e,CAAE,GAAE,CAACA,IAAIxM,EAAEqrB,OAAO,EAAE5xB,EAAE,SAAS+S,EAAExM,GAAG,OAAO,MAAMwM,EAAExM,GAAG+I,UAAUyD,EAAExM,GAAG+I,SAAS9U,OAAO,CAAC,EAAEkmB,EAAE,SAAS3N,EAAExM,GAAG,OAAOwM,EAAExM,GAAGqE,MAAM,EAAE0U,EAAE,SAASvM,EAAExM,EAAExG,GAAG,IAAI,IAAInG,EAAE2M,EAAE2P,EAAE,KAAK,CAAC,IAAIkD,EAAEsH,EAAE3N,EAAEnZ,GAAG,GAAG,IAAIwf,GAAG,MAAMA,GAAG,MAAMA,GAAGrZ,EAAEomB,IAAI/M,GAAG,MAAMlD,EAAE7a,KAAK+d,GAAGxf,EAAEwf,CAAC,CAAC,OAAOlD,CAAC,EAAE/a,EAAE,SAAS4X,EAAExM,EAAExG,GAAG,IAAInG,EAAE,GAAG,OAAO,SAASmZ,EAAExM,EAAE2P,GAAG,IAAIkD,EAAE7S,EAAE2P,GAAG,GAAG,MAAMkD,EAAE9J,SAAS,CAAC,IAAIsP,EAAEvkB,EAAE2iB,EAAE5D,EAAE9J,SAASnQ,QAAO,SAAU4T,GAAG,OAAOhT,EAAEomB,IAAIpT,EAAG,KAAI,IAAI,IAAI1Y,EAAEwc,MAAM+H,EAAEvkB,EAAET,KAAKsjB,MAAM,CAAC,IAAIrG,EAAE+H,EAAE7gB,MAAMnE,EAAEyB,KAAKwb,GAAG9D,EAAExM,EAAEsQ,EAAE,CAAC,CAAC,MAAM9D,GAAG1Y,EAAE0Y,EAAEA,EAAE,CAAC,QAAQ1Y,EAAEmE,GAAG,CAAC,CAAC,CAA5M,CAA8MuU,EAAExM,GAAG3M,CAAC,EAAEgC,EAAE,SAASmX,EAAExM,EAAExG,GAAG,IAAInG,EAAE8mB,EAAE3N,EAAExM,GAAG,GAAG,MAAM3M,EAAE,CAAC,IAAIsc,EAAEnD,EAAEnZ,GAAGwf,EAAElD,EAAE5G,SAAS/P,QAAQgH,GAAGxG,EAAE,GAAGmW,EAAE5G,SAAS8J,GAAG,OAAOlD,EAAE5G,SAAS8J,EAAE,CAAC,OAAO,IAAI,EAAE8G,EAAE,SAASnN,EAAExM,EAAExG,GAAG,IAAInG,EAAEmZ,EAAExM,GAAG,IAAIwM,EAAE,GAAGmuB,KAAK36B,IAAI3M,EAAEmZ,EAAEA,EAAExM,GAAG+I,SAASyD,EAAExM,GAAG+I,SAAS9U,OAAO,KAAKuF,EAAEomB,IAAIvsB,EAAEsnC,KAAKlhC,EAAE+S,EAAEnZ,EAAEsnC,KAAKtnC,EAAEmZ,EAAEnZ,EAAE0V,SAAS1V,EAAE0V,SAAS9U,OAAO,IAAI,OAAOZ,EAAEsnC,EAAE,EAAEhe,EAAE,SAASnQ,EAAExM,EAAExG,GAAG,GAAGwG,IAAIwM,EAAE,GAAGzD,SAAS,GAAG,OAAO,KAAK,IAAI1V,EAAEgC,EAAEmX,EAAExM,GAAG,GAAG,OAAO,MAAM3M,EAAE8mB,EAAE3N,EAAExM,GAAG2Z,EAAEnN,EAAEnZ,EAAEmG,EAAE,EAAE+f,EAAE,SAAS/M,EAAExM,EAAExG,GAAG,IAAInG,EAAEmZ,EAAExM,GAAG26B,GAAG,GAAGlhC,EAAE+S,EAAEnZ,IAAImG,EAAEomB,IAAIvsB,GAAG,OAAOmZ,EAAEnZ,GAAG0V,SAAS,GAAG,OAAO,CAAC,IAAI4G,EAAEta,EAAEmX,EAAEnZ,EAAE,GAAG,GAAG,MAAMsc,EAAE,OAAOA,EAAE,GAAG,OAAOtc,EAAE8mB,EAAE3N,EAAEnZ,IAAI,OAAO,IAAI,CAAC,EAAE2pB,EAAE,SAASxQ,GAAG,IAAIxM,EAAEwM,EAAEjI,KAAK/K,EAAEgT,EAAE6hD,YAAYh7D,EAAEmZ,EAAEqK,KAAKlH,EAAEnD,EAAEi+B,GAAG53B,EAAE,GAAGwF,EAAE/f,OAAOC,KAAKyH,GAAG/L,OAAOH,EAAE,EAAEwc,EAAEjd,EAAE,GAAGwf,EAAE/d,KAAKzB,GAAGA,EAAEsc,EAAE,KAAK7b,EAAEukB,IAAI,OAAO/H,EAAEiJ,EAAEvZ,EAAEsQ,EAAE9W,KAAKqZ,EAAE/d,KAAKwb,GAAG,MAAMA,GAAGA,IAAIX,IAAI7b,GAAG,OAAO,GAAGT,EAAEsc,EAAE,KAAK7b,EAAEukB,IAAI,OAAO/H,EAAEqM,EAAE3c,EAAEsQ,EAAE9W,KAAKqZ,EAAE/d,KAAKwb,GAAG,MAAMA,GAAGA,IAAIX,IAAI7b,GAAG,EAAE,OAAO+e,CAAC,EAAuWqH,EAAE,SAAS1N,GAAG,IAAIxM,EAAEwM,EAAEy0B,WAAWznC,EAAEgT,EAAE+nB,WAAWlhC,EAAEmZ,EAAE8hD,YAAY,OAAO90D,GAAGnG,EAAE2M,IAAIA,QAAG,CAAM,EAAEsb,EAAE,SAAS9O,GAAG,IAAIxM,EAAEwM,EAAEy0B,WAAWznC,EAAEgT,EAAE+nB,WAAWlhC,EAAEmZ,EAAE+hD,eAAe5+C,EAAEnD,EAAE8hD,YAAY,OAAO90D,EAAEwG,EAAE3M,EAAE,QAAQsc,EAAE3P,IAAIA,QAAG,CAAM,EAAEwc,EAAE,SAAShQ,EAAExM,EAAExG,GAAG,OAAOwG,EAAEpI,OAAOnD,MAAMuL,EAAEsQ,EAAEtQ,EAAEpH,QAAO,SAAUoH,GAAG,OAAOvG,EAAE+S,EAAExM,EAAG,IAAGzE,KAAI,SAAUyE,GAAG,OAAOpL,EAAE4X,EAAExM,EAAExG,EAAG,KAAI,EAAsO2B,EAAE,SAASqR,EAAExM,EAAExG,GAAG,OAAOC,EAAE+S,EAAExM,IAAIxG,EAAEomB,IAAI5f,IAAIpL,EAAE4X,EAAExM,EAAE,IAAIyf,KAAKpL,MAAK,SAAU7H,GAAG,OAAOhT,EAAEomB,IAAIpT,EAAG,GAAE,EAAEgiD,EAAE,CAAC1mD,KAAK,OAAOe,KAAK,YAAY4lD,OAAO,oBAAoBC,cAAc,sBAAsBC,aAAa,sBAAsBC,KAAK,kBAAkBC,UAAU,mBAAmBlzC,EAAE,WAAWmzC,EAAE,gBAAgBhyC,EAAE,SAASF,EAAE,cAAcmyC,EAAE,cAAcvzC,GAAE,SAASwzC,GAAE,WAAWC,GAAE,SAAS3pB,GAAE,gBAAgBroB,GAAE,cAAczD,GAAE,+BAA+B01C,GAAE,QAAQC,GAAE,OAA8BC,GAAE,SAAS5iD,EAAExM,GAAG,OAAOA,EAAEvM,MAAM,KAAKkoB,EAAE,IAAIniB,EAAE,IAAIimB,IAAIjT,EAAE6hD,aAAa,OAAO70D,EAAE+d,OAAOvX,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6hD,YAAY70D,EAAE61D,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAGmuB,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKT,EAAE,IAAIz7D,EAAEsc,EAAE,IAAI8P,IAAIjT,EAAE6hD,aAAax7C,EAAE4D,EAAEzW,EAAEwvD,KAAK,IAAI,IAAI38C,EAAEvC,MAAMjd,EAAEwf,EAAExf,KAAKsjB,MAAM,CAAC,IAAI0B,EAAEhlB,EAAEmE,MAAMmY,EAAE4H,OAAOc,EAAE,CAAC,CAAC,MAAM7L,GAAGqG,EAAErG,EAAEA,EAAE,CAAC,QAAQqG,EAAE5a,GAAG,CAAC,OAAOK,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6hD,YAAY1+C,EAAE2/C,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKzyC,EAAE,IAAIhpB,EAAE,IAAI2rB,IAAIjT,EAAE6hD,aAAa,OAAOv6D,EAAEynB,IAAIvb,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6hD,YAAYv6D,EAAEu7D,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAGmuB,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAK3yC,EAAE,IAAI/E,EAAE,IAAI4H,IAAI,GAAG7nB,OAAO0Y,EAAE9D,EAAE6hD,aAAa/9C,EAAEtQ,EAAEwvD,OAAO,OAAOl3D,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6hD,YAAYx2C,EAAEy3C,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKN,GAAE,IAAI94C,EAAE,IAAIsJ,IAAIjT,EAAE6hD,aAAa,OAAO7hD,EAAE6hD,YAAYzuC,IAAI5f,EAAE26B,IAAIxkB,EAAEoB,OAAOvX,EAAE26B,IAAIxkB,EAAEoF,IAAIvb,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6hD,YAAYl4C,EAAEk5C,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAGmuB,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKR,EAAE,GAAGviD,EAAEijD,YAAY7vC,IAAI5f,EAAE26B,IAAI,OAAOnuB,EAAE,IAAIvU,EAAE,IAAIwnB,IAAIjT,EAAEkjD,iBAAiBx3C,EAAE,IAAIuH,IAAIjT,EAAEmjD,aAAa,OAAO13D,EAAEsjB,IAAIvb,EAAE26B,IAAIziB,EAAEX,OAAOvX,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAYz3C,EAAEw3C,gBAAgBz3D,EAAEq3D,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAK/zC,GAAE,IAAIxb,EAAE4vD,YAAYpjD,EAAEijD,YAAY7vC,IAAI5f,EAAE26B,IAAI,OAAOnuB,EAAE,IAAIxU,EAAEgI,EAAEsuD,aAAat2D,EAAE,IAAIynB,IAAIjT,EAAEmjD,cAAcp0C,IAAIvb,EAAE26B,KAAK3iC,EAAE,IAAIynB,KAAKlE,IAAIvb,EAAE26B,IAAI,IAAI9d,EAAE,IAAI4C,IAAIjT,EAAEkjD,iBAAiB,OAAO7yC,EAAEtF,OAAOvX,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAY33D,EAAE03D,gBAAgB7yC,EAAEwyC,WAAWrvD,EAAE6vD,UAAUrjD,EAAE6iD,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAG2uB,eAAe9vD,EAAE+vD,cAAcvjD,EAAEsjD,eAAe9vD,EAAE26B,GAAG20B,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKP,GAAE,IAAIhvD,EAAE4vD,YAAYpjD,EAAEijD,YAAY7vC,IAAI5f,EAAE26B,IAAI,OAAOnuB,EAAE,IAAI/S,EAAE0gB,EAAE,IAAIsF,IAAIjT,EAAEmjD,aAAa,OAAOx1C,EAAE5C,OAAOvX,EAAE26B,IAAI36B,EAAEsuD,aAAa70D,EAAE,IAAIgmB,IAAIjT,EAAEkjD,kBAAkBn4C,OAAOvX,EAAE26B,IAAIlhC,EAAE,IAAIgmB,IAAInnB,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAYx1C,EAAEu1C,gBAAgBj2D,EAAE41D,WAAWrvD,EAAE6vD,UAAUrjD,EAAE6iD,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAG2uB,eAAe9vD,EAAE+vD,cAAcvjD,EAAEsjD,eAAe9vD,EAAE26B,GAAG20B,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKjqB,GAAE,GAAG94B,EAAEijD,YAAY7vC,IAAI5f,EAAE26B,IAAI,OAAOnuB,EAAE,IAAIuM,EAAEnkB,EAAE4X,EAAEmjD,YAAY/vC,IAAI5f,EAAE26B,IAAI36B,EAAEsuD,aAAav1C,EAAE,IAAI0G,IAAIjT,EAAEmjD,aAAa/6D,EAAEmkB,EAAExB,OAAOvX,EAAE26B,IAAI5hB,EAAEwC,IAAIvb,EAAE26B,MAAM5hB,EAAE,IAAI0G,IAAI7qB,GAAGmkB,EAAEwC,IAAIvb,EAAE26B,KAAK,IAAItlC,EAAE,IAAIoqB,IAAIjT,EAAEkjD,iBAAiB,OAAOr6D,EAAEkiB,OAAOvX,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAY52C,EAAE22C,gBAAgBr6D,EAAEg6D,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAG2uB,eAAe9vD,EAAE+vD,cAAcvjD,EAAEsjD,eAAe9vD,EAAE26B,GAAG20B,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKtyC,GAAE,IAAItD,EAAEgD,EAAE3c,EAAEwvD,IAAI52D,QAAO,SAAUoH,GAAG,OAAOwM,EAAEijD,YAAY7vC,IAAI5f,EAAG,IAAG,GAAGA,EAAEsuD,YAAY,CAAC30C,EAAE3Z,EAAEwrB,OAAO,IAAI/L,IAAI,GAAG7nB,OAAO0Y,EAAE9D,EAAEmjD,aAAar/C,EAAEqM,KAAK7D,EAAEtM,EAAEmjD,YAAY,IAAIlwC,IAAI9C,IAAI,IAAIpD,EAAET,EAAEtM,EAAEkjD,gBAAgB/1C,GAAG,OAAOrhB,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAYh2C,EAAE+1C,gBAAgBn2C,EAAE+1C,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,oBAAoB,CAAC,OAAO/iD,EAAE,KAAKgN,GAAE,IAAIwD,EAAEhC,EAAEhb,EAAEwvD,IAAI52D,QAAO,SAAUoH,GAAG,OAAOwM,EAAEijD,YAAY7vC,IAAI5f,EAAG,IAAG,GAAGA,EAAEsuD,YAAY,CAACtxC,EAAEhd,EAAEwrB,OAAO,IAAI/L,IAAIzE,GAAGlC,EAAEtM,EAAEmjD,YAAY,IAAIlwC,IAAIzE,IAAI,IAAId,EAAEpB,EAAEtM,EAAEkjD,gBAAgB1yC,GAAG,OAAO1kB,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACmjD,YAAY3yC,EAAE0yC,gBAAgBx1C,EAAEo1C,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,oBAAoB,CAAC,OAAO/iD,EAAE,KAAK0iD,GAAE,OAAO52D,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC6iD,WAAWrvD,EAAE26B,GAAGwG,WAAU,EAAGmuB,WAAWtvD,EAAEvM,KAAK87D,mBAAmBvvD,EAAEuvD,qBAAqB,KAAKJ,GAAE,OAAO72D,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAAC20B,WAAU,IAAK,IAAx6G,UAA+6G,IAAI7lB,EAAE,IAAImE,IAAIjT,EAAEijD,aAAa,OAAOn0C,EAAEC,IAAIvb,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACijD,YAAYn0C,IAAI,IAAtgH,SAA6gH,IAAIkB,EAAE,IAAIiD,IAAIjT,EAAEijD,aAAa,OAAOjzC,EAAEjF,OAAOvX,EAAE26B,IAAIriC,OAAOyqB,OAAOzqB,OAAOyqB,OAAO,CAAC,EAAEvW,GAAG,CAACijD,YAAYjzC,IAAI,QAAQ,MAAM,IAAIroB,MAAM,wCAAwC,EAAE6Z,GAAE,SAASxB,GAAG,IAAIxM,EAAEwM,EAAEjI,KAAK/K,EAAEgT,EAAEwjD,cAAc33C,EAAE7L,EAAEyjD,sBAAsBp4C,EAAErL,EAAE0jD,mBAAmB/5C,EAAE3J,EAAE2jD,mBAAmBl4D,EAAEuU,EAAE4jD,mBAAmBl4C,EAAE1L,EAAE6jD,SAASh7D,EAAEmX,EAAE8jD,SAAS32C,EAAEnN,EAAE+jD,SAAS5zC,EAAEnQ,EAAEgkD,SAASj3C,EAAE/M,EAAEikD,WAAWzzC,EAAExQ,EAAEkkD,gBAAgB11C,EAAExO,EAAE8hD,YAAYp0C,EAAE1N,EAAEmkD,gBAAgBr1C,EAAE9O,EAAEokD,uBAAuB7zC,EAAEjpB,GAAE,gBAAEs7D,GAAE,CAACO,YAAY,IAAIlwC,IAAIjmB,GAAG2c,GAAGk5C,WAAWrvD,EAAE,GAAG+I,SAAS,GAAGo4B,WAAU,EAAGktB,YAAY,IAAI5uC,IAAIpH,GAAGR,GAAG63C,gBAAgB,IAAIjwC,IAAIqwC,eAAe9vD,EAAE,GAAG+I,SAAS,GAAGwmD,mBAAmB,KAAKE,YAAY,IAAIhwC,IAAIxnB,KAAK,GAAGkD,EAAE4hB,EAAE,GAAGyxC,EAAEzxC,EAAE,GAAGuoB,EAAEnqC,EAAEw0D,YAAYn2C,EAAEre,EAAEkzD,YAAYc,EAAEh0D,EAAEs0D,YAAYoB,EAAE11D,EAAEk0D,WAAWyB,EAAE31D,EAAEu0D,gBAAgB1hD,EAAE7S,EAAEm0D,WAAWyB,EAAE51D,EAAEo0D,mBAAmB9yC,EAAEI,EAAEyoB,IAAI,IAAI7lB,IAAIvC,EAAEllB,EAAEstC,EAAE7oB,IAAG,gBAAE,WAAY,GAAG,MAAM9C,GAAGA,IAAIq3C,GAAE,CAAC,IAAIxkD,EAAEhT,EAAEid,EAAEyG,GAAG,IAAI,IAAI1jB,EAAE8W,MAAM9D,EAAEhT,EAAEnG,KAAKsjB,MAAM,CAAC,IAAItjB,EAAEmZ,EAAEhV,MAAMmY,EAAElW,EAAEuG,EAAE3M,MAAM2M,EAAE6wD,GAAGI,SAASt3C,EAAE,CAACuP,QAAQlpB,EAAE3M,GAAG49D,SAASthD,EAAEuhD,aAAavhD,GAAG6J,EAAEoG,IAAIvsB,GAAG4tC,WAAWqE,EAAE1lB,IAAIvsB,GAAGkhC,WAAW46B,EAAEvvC,IAAIvsB,GAAGk7D,iBAAiB5+C,GAAGmhD,EAAElxC,IAAIvsB,GAAG89D,UAAUh2D,GAAG,CAAC,CAAC,MAAMqR,GAAGhT,EAAEgT,EAAEA,EAAE,CAAC,QAAQhT,EAAEvB,GAAG,CAAC,CAAE,GAAE,CAAC+H,EAAEslC,EAAE9rB,EAAE21C,EAAE2B,EAAE5zC,EAAEvD,EAAExe,IAAI,IAAIi2D,EAAGv0C,EAAErD,IAAI,IAAIiG,KAAI,gBAAE,WAAY,IAAIjT,EAAExU,EAAEwhB,EAAE43C,GAAI,GAAG,MAAMz0C,GAAGA,IAAIq0C,GAAE,CAAC,IAAIx3D,EAAEnG,EAAEojB,EAAEjK,GAAG,IAAI,IAAInZ,EAAEid,MAAM9W,EAAEnG,EAAEA,KAAKsjB,MAAM,CAAC,IAAIhH,EAAEnW,EAAEhC,MAAMmlB,EAAE,CAACuM,QAAQlpB,EAAE2P,GAAGuhD,WAAW13C,EAAEoG,IAAIjQ,GAAGsxB,WAAWqE,EAAE1lB,IAAIjQ,GAAG4kB,WAAW46B,EAAEvvC,IAAIjQ,GAAG4+C,eAAeuC,EAAElxC,IAAIjQ,GAAGwhD,UAAUh2D,GAAG,CAAC,CAAC,MAAMqR,GAAGnZ,EAAEmZ,EAAEA,EAAE,CAAC,QAAQnZ,EAAE4E,GAAG,CAAC,CAAE,GAAE,CAAC+H,EAAEslC,EAAE9rB,EAAE21C,EAAE2B,EAAEM,EAAGz0C,EAAExhB,IAAI,IAAIk2D,EAAGC,EAAGC,GAAIF,EAAGrxD,EAAEsxD,GAAG,eAAI,gBAAE,WAAYA,EAAGjmC,QAAQgmC,CAAG,IAAGC,EAAGjmC,SAAS,IAAI5L,KAAK,OAAO,gBAAE,WAAY,IAAIjT,EAAExU,EAAEwhB,EAAE43C,GAAI,GAAG73C,EAAE,CAAC,IAAI/f,EAAEnG,EAAEojB,EAAEjK,GAAG,IAAI,IAAInZ,EAAEid,MAAM9W,EAAEnG,EAAEA,KAAKsjB,MAAM,CAAC,IAAIhH,EAAEnW,EAAEhC,MAAM+hB,EAAE,CAAC2P,QAAQlpB,EAAE2P,GAAGuhD,WAAW13C,EAAEoG,IAAIjQ,GAAGsxB,WAAWqE,EAAE1lB,IAAIjQ,GAAG4kB,WAAW46B,EAAEvvC,IAAIjQ,GAAG4+C,eAAeuC,EAAElxC,IAAIjQ,GAAGwhD,UAAUh2D,GAAG,CAAC,CAAC,MAAMqR,GAAGnZ,EAAEmZ,EAAEA,EAAE,CAAC,QAAQnZ,EAAE4E,GAAG,CAAC,GAAGs5D,IAAKvxD,GAAGgd,GAAG9C,EAAE,CAAC,IAAIrH,EAAEwF,EAAE5B,EAAE+C,GAAG,IAAI,IAAInB,EAAE/H,MAAMuC,EAAEwF,EAAEhlB,KAAKsjB,MAAM,CAAC,IAAI7iB,EAAE+e,EAAErb,MAAM8tC,EAAE1lB,IAAI9rB,IAAI06D,EAAE,CAAC/6D,KAAKwpB,GAAEuyC,IAAIhzC,EAAExc,EAAE,CAAClM,GAAGq7D,GAAG3jC,QAAO,EAAG8iC,YAAYtzC,EAAEu0C,mBAAmBz7D,GAAG,CAAC,CAAC,MAAM0Y,GAAG6L,EAAE7L,EAAEA,EAAE,CAAC,QAAQ6L,EAAEpgB,GAAG,CAAC,CAAC,CAAE,GAAE,CAAC+H,EAAEslC,EAAE9rB,EAAE21C,EAAE2B,EAAEM,EAAG73C,EAAEpe,KAAI,gBAAE,WAAY,IAAIqR,EAAE,IAAIiT,IAAIjmB,GAAGnG,EAAEylB,EAAEtM,EAAEiQ,GAAG9M,EAAEmJ,EAAE2D,EAAEjQ,GAAG,GAAGmD,EAAE65B,KAAK,CAAC,IAAI32B,EAAEwF,EAAE5B,EAAE9G,GAAG,IAAI,IAAI0I,EAAE/H,MAAMuC,EAAEwF,EAAEhlB,KAAKsjB,MAAM,CAAC,IAAI7iB,EAAE+e,EAAErb,MAAMg3D,EAAE,CAAC/6D,KAAKu7D,GAAEr0B,GAAG7mC,EAAEw6D,YAAYtzC,EAAE40C,YAAW,EAAGL,mBAAmBz7D,GAAG,CAAC,CAAC,MAAM0Y,GAAG6L,EAAE7L,EAAEA,EAAE,CAAC,QAAQ6L,EAAEpgB,GAAG,CAAC,CAAC,GAAG5E,EAAEm2C,KAAK,CAAC,IAAIl5B,EAAEuH,EAAEpB,EAAEpjB,GAAG,IAAI,IAAIwkB,EAAEvH,MAAMA,EAAEuH,EAAExkB,KAAKsjB,MAAM,CAAC,IAAIR,EAAE7F,EAAE9Y,MAAMg3D,EAAE,CAAC/6D,KAAK+nB,GAAEmf,GAAGxkB,EAAEm4C,YAAYtzC,EAAE40C,YAAW,EAAGL,mBAAmBp5C,IAAI+D,IAAIi1C,EAAEvvC,IAAIzJ,IAAIq4C,EAAE,CAAC/6D,KAAKwpB,GAAEuyC,IAAIhzC,EAAExc,EAAE,CAACmW,GAAGg5C,GAAG3jC,QAAO,EAAG8iC,YAAYtzC,EAAEu0C,mBAAmBp5C,GAAG,CAAC,CAAC,MAAM3J,GAAGqL,EAAErL,EAAEA,EAAE,CAAC,QAAQqL,EAAE5f,GAAG,CAAC,CAAE,GAAE,CAACuB,KAAI,gBAAE,WAAY,IAAIgT,EAAE,IAAIiT,IAAIpH,GAAG7e,EAAEsf,EAAEtM,EAAE4kD,GAAI/9D,EAAEylB,EAAEs4C,EAAG5kD,GAAG,GAAGnZ,EAAEm2C,KAAK,CAAC,IAAI75B,EAAEkD,EAAE4D,EAAEpjB,GAAG,IAAI,IAAIwf,EAAEvC,MAAMX,EAAEkD,EAAExf,KAAKsjB,MAAM,CAAC,IAAI7iB,EAAE6b,EAAEnY,MAAM,GAAGiC,EAAEuG,EAAElM,IAAIkM,EAAElM,GAAGm9D,SAAS,CAAC,IAAIp5C,EAAE,CAAC/jB,GAAG8D,OAAO0Y,EAAE1b,EAAEoL,EAAElM,EAAE,IAAI2rB,OAAO+uC,EAAE,CAAC/6D,KAAKq7D,EAAEU,IAAI33C,EAAE03C,mBAAmBz7D,GAAG,CAAC,CAAC,CAAC,MAAM0Y,GAAGqG,EAAErG,EAAEA,EAAE,CAAC,QAAQqG,EAAE5a,GAAG,CAAC,CAAC,GAAGuB,EAAEgwC,KAAK,CAAC,IAAIrzB,EAAEle,EAAEwe,EAAEjd,GAAG,IAAI,IAAIvB,EAAEqY,MAAM6F,EAAEle,EAAE5E,KAAKsjB,MAAM,CAAC,IAAIuB,EAAE/B,EAAE3e,MAAM,GAAGiC,EAAEuG,EAAEkY,IAAIlY,EAAEkY,GAAG+4C,SAAS,CAAC,IAAIj5D,EAAEmiB,EAAEna,EAAEkY,GAAGs2C,EAAEx2D,EAAE,CAACvE,KAAKmpB,EAAE4yC,IAAI,CAACt3C,EAAElgB,GAAGu3D,mBAAmBr3C,GAAG,CAACzkB,KAAKqpB,EAAE6d,GAAGziB,EAAEq3C,mBAAmBr3C,GAAG,CAAC,CAAC,CAAC,MAAM1L,GAAGvU,EAAEuU,EAAEA,EAAE,CAAC,QAAQvU,EAAEA,GAAG,CAAC,CAAE,GAAE,CAACogB,KAAI,gBAAE,WAAY,GAAGiD,EAAE,CAAC,IAAI9O,EAAE,IAAIiT,IAAIvC,GAAG6zC,GAAG/iD,IAAIkhD,IAAGlhD,IAAI2N,GAAG3N,IAAI8O,GAAG9O,IAAIihD,IAAGziD,EAAE+O,IAAIw1C,GAAG,IAAIv3D,EAAEnG,EAAE,SAASmZ,EAAExM,EAAExG,EAAEnG,EAAEsc,EAAEkD,GAAG,IAAIwF,EAAEvkB,EAAE,CAAC6F,MAAM,IAAI8lB,IAAIpL,KAAK,IAAIoL,IAAI+xC,KAAK,IAAI/xC,KAAKnP,EAAEmG,EAAEzW,GAAG,IAAI,IAAIsQ,EAAEA,MAAM+H,EAAE/H,EAAEjd,KAAKsjB,MAAM,IAAI,IAAIkB,EAAEQ,EAAE7gB,QAAQ,CAAC,IAAI2e,EAAEgE,EAAE3N,EAAEqL,GAAG,GAAG,IAAI1B,GAAG,MAAMA,GAAG,MAAMA,GAAG9iB,EAAEusB,IAAIzJ,GAAG,MAAM,IAAIle,EAAEuU,EAAE2J,GAAGpN,SAASnQ,QAAO,SAAU4T,GAAG,OAAOnZ,EAAEusB,IAAIpT,EAAG,IAAG,GAAG,IAAIvU,EAAEhE,OAAO,MAAM,GAAGgE,EAAEoc,MAAK,SAAU7H,GAAG,OAAOhT,EAAEomB,IAAIpT,IAAI1Y,EAAEugB,KAAKuL,IAAIpT,IAAImD,EAAEiQ,IAAIpT,EAAG,IAAGvU,EAAE0B,OAAM,SAAU6S,GAAG,OAAOhT,EAAEomB,IAAIpT,EAAG,IAAG1Y,EAAE6F,MAAM4hB,IAAIpF,GAAGriB,EAAEugB,KAAKkH,IAAIpF,OAAO,CAAC,IAAI+B,EAAEa,EAAEvM,EAAEqL,EAAExkB,GAAG8F,MAAK,SAAUqT,GAAG,OAAOhT,EAAEomB,IAAIpT,EAAG,IAAG,IAAIqG,GAAGqF,EAAE,CAACtjB,EAAE4X,EAAE0L,EAAE7kB,GAAGuH,SAAQ,SAAU4R,GAAGmD,EAAEiQ,IAAIpT,IAAI1Y,EAAE09D,KAAKj2C,IAAI/O,EAAG,IAAG,KAAK,CAAC1Y,EAAE09D,KAAKj2C,IAAIpF,EAAE,CAAC0B,EAAE1B,CAAC,CAAC,CAAC,MAAM3J,GAAG8D,EAAE9D,EAAEA,EAAE,CAAC,QAAQ8D,EAAErY,GAAG,CAAC,OAAOnE,CAAC,CAA/kB,CAAilBkM,EAAEwM,EAAE84B,EAAE6pB,EAAE2B,EAAE91C,GAAGrL,EAAEtc,EAAEsG,MAAMkZ,EAAExf,EAAEghB,KAAKgE,EAAEhlB,EAAEm+D,KAAK19D,EAAE2iB,EAAE9G,GAAG,IAAI,IAAI7b,EAAEwc,MAAM9W,EAAE1F,EAAET,KAAKsjB,MAAM,CAAC,IAAIrG,EAAE9W,EAAEhC,MAAM8tC,EAAE1lB,IAAItP,IAAIk+C,EAAE,CAAC/6D,KAAK+nB,GAAEmf,GAAGrqB,EAAEg+C,YAAYtzC,EAAE60C,WAAU,EAAGE,eAAc,EAAGR,mBAAmBwB,GAAG,CAAC,CAAC,MAAMvkD,GAAG1Y,EAAE0Y,EAAEA,EAAE,CAAC,QAAQ1Y,EAAEmE,GAAG,CAAC,IAAI4f,EAAE1B,EAAEM,EAAE5D,GAAG,IAAI,IAAIsD,EAAE7F,MAAMuH,EAAE1B,EAAE9iB,KAAKsjB,MAAM,CAAC,IAAI1e,EAAE4f,EAAErgB,MAAMs5D,EAAElxC,IAAI3nB,IAAIu2D,EAAE,CAAC/6D,KAAKs7D,EAAEp0B,GAAG1iC,EAAEs3D,mBAAmBwB,GAAG,CAAC,CAAC,MAAMvkD,GAAG2J,EAAE3J,EAAEA,EAAE,CAAC,QAAQ2J,EAAEle,GAAG,CAAC,IAAIigB,EAAEY,EAAErC,EAAE4B,GAAG,IAAI,IAAIS,EAAExI,MAAM4H,EAAEY,EAAEzlB,KAAKsjB,MAAM,CAAC,IAAI3e,EAAEkgB,EAAE1gB,OAAO8tC,EAAE1lB,IAAI5nB,IAAI84D,EAAElxC,IAAI5nB,KAAKw2D,EAAE,CAAC/6D,KAAKu7D,GAAEr0B,GAAG3iC,EAAEs2D,YAAYtzC,EAAE60C,WAAU,EAAGE,eAAc,EAAGR,mBAAmBwB,GAAG,CAAC,CAAC,MAAMvkD,GAAGsM,EAAEtM,EAAEA,EAAE,CAAC,QAAQsM,EAAE7gB,GAAG,CAAC,CAAE,GAAE,CAAC+H,EAAEgb,EAAEM,EAAEgqB,EAAE9rB,EAAE21C,EAAE2B,EAAE9iD,EAAEyO,EAAES,EAAE6zC,KAAI,gBAAE,WAAY,GAAG,MAAMA,GAAG,MAAMF,GAAG,OAAO,MAAM34C,OAAE,EAAOA,EAAEmT,UAAU,OAAO,MAAMh2B,OAAE,EAAOA,EAAEg2B,SAAS,CAAC,IAAI7e,EAAE0L,EAAEmT,QAAQwlC,IAAI,SAASrkD,GAAG,MAAMA,GAAGA,EAAEosB,gBAAgBpsB,EAAEosB,eAAe,CAACC,MAAM,WAAW,CAA1E,CAA4ExjC,EAAEg2B,QAAQ0lC,IAAI,SAASvkD,GAAG,MAAMA,GAAGA,EAAEsiB,OAAOtiB,EAAEsiB,MAAM,CAACC,eAAc,GAAI,CAAzD,CAA2DviB,EAAE,CAAE,GAAE,CAACqkD,EAAE34C,EAAE7iB,EAAE07D,IAAI,CAAC51D,EAAEqzD,EAAE,EAAEuC,GAAE,CAACvlC,OAAO,SAASsD,MAAM,QAAQ2iC,gBAAgB,oBAAoBh1C,GAAEnkB,OAAOo5D,OAAOp5D,OAAOI,OAAOq4D,KAAI7zC,GAAE5kB,OAAOo5D,OAAOp5D,OAAOI,OAAO,CAACi5D,MAAM,QAAQnmC,OAAO,YAAYwlC,GAAE,WAAW,EAAEI,GAAG,cAAa,SAAUpxD,EAAE2P,GAAG,IAAIkD,EAAE7S,EAAEuE,KAAK8T,EAAErY,EAAE2vD,YAAYr/C,EAAEtQ,EAAE4xD,aAAa/5C,EAAE7X,EAAEuwD,SAASp6C,OAAE,IAAS0B,EAAEm5C,GAAEn5C,EAAEpB,EAAEzW,EAAEwwD,SAASt4C,OAAE,IAASzB,EAAEu6C,GAAEv6C,EAAEqC,EAAE9Y,EAAEywD,WAAWz4D,EAAEgI,EAAE8jB,UAAUjH,OAAE,IAAS7kB,EAAE,GAAGA,EAAEyB,EAAEuG,EAAEsuD,YAAYn0C,OAAE,IAAS1gB,GAAGA,EAAEsf,EAAE/Y,EAAE2wD,gBAAgB/7D,OAAE,IAASmkB,GAAGA,EAAE1jB,EAAE2K,EAAE4wD,uBAAuBj3C,OAAE,IAAStkB,GAAGA,EAAEsnB,EAAE3c,EAAE6xD,kBAAkBt4C,OAAE,IAASoD,GAAGA,EAAEK,EAAEhd,EAAE8xD,uBAAuB92C,OAAE,IAASgC,GAAGA,EAAE9C,EAAEla,EAAE0wD,gBAAgBp1C,OAAE,IAASpB,GAAGA,EAAEsC,EAAExc,EAAEkwD,mBAAmB/0D,OAAE,IAASqhB,EAAE,GAAGA,EAAEb,EAAE3b,EAAEmwD,mBAAmBrB,OAAE,IAASnzC,EAAE,GAAGA,EAAEmB,EAAE9c,EAAEowD,mBAAmBxzC,OAAE,IAASE,EAAE,GAAGA,EAAEiyC,EAAE/uD,EAAE+xD,YAAYv2C,OAAE,IAASuzC,EAAEgC,GAAEvlC,OAAOujC,EAAEC,EAAEhvD,EAAEgyD,WAAW/C,OAAE,IAASD,EAAE,SAASA,EAAE1pB,EAAEtlC,EAAEquD,YAAYpxC,EAAEjd,EAAE6hC,OAAOroB,EAAEvhB,EAAE+H,EAAE,CAAC,OAAO,cAAc,eAAe,WAAW,WAAW,aAAa,YAAY,cAAc,kBAAkB,yBAAyB,oBAAoB,yBAAyB,kBAAkB,qBAAqB,qBAAqB,qBAAqB,cAAc,aAAa,cAAc,WAAWkvD,GAAE,YAAE,CAAC,GAAG2B,GAAE,YAAE,CAAC,GAAGC,EAAEh9D,EAAEka,GAAE,CAACzJ,KAAKsO,EAAEm9C,cAAc33C,EAAE43C,sBAAsB3qB,EAAE4qB,mBAAmB/0D,EAAEg1D,mBAAmBrB,EAAEsB,mBAAmBxzC,EAAEyzC,SAASnB,EAAEoB,SAASO,EAAEN,SAASp6C,EAAEq6C,SAASt4C,EAAEu4C,WAAW33C,EAAE43C,gBAAgBp1C,EAAEgzC,YAAYn0C,EAAEw2C,gBAAgB/7D,EAAEg8D,uBAAuBj3C,IAAI,GAAGy1C,EAAE0B,EAAE,GAAGr0C,EAAEq0C,EAAE,GAAGl8D,EAAEA,GAAGulB,EAAE,IAAI+C,GAAE,YAAE,MAAM,OAAO,MAAMvN,IAAIuN,EAAEvN,GAAG,gBAAgB,KAAKrX,OAAOyqB,OAAO,CAACe,UAAU,IAAE0qC,EAAE1mD,KAAK+U,GAAGqY,KAAK,OAAO,uBAAuB,WAAW+5B,EAAE90C,OAAE,EAAOoJ,IAAIrG,EAAE2kB,OAAO,SAASr1B,IAAtqU,SAASA,EAAExM,EAAExG,GAAG,MAAMwG,EAAE+W,OAAOk7C,UAAUn4C,UAAUqhC,MAAM,WAAW79B,YAAW,WAAY,OAAOtd,EAAEmf,SAASd,SAAS0N,gBAAgBvyB,GAAI,GAAE,IAAIwG,EAAEmf,SAAS3S,EAAE0lD,YAAYxmC,gBAAgBlyB,IAAIxE,QAAQiF,KAAK,sBAAsB,CAAy8T8iB,CAAEvQ,EAAE0Q,EAAEmO,SAAQ,WAAYpO,GAAGA,EAAE,CAACk0C,UAAU/B,EAAE+C,SAAS11C,IAAIA,EAAE,CAAChpB,KAAK07D,IAAI,GAAE,EAAE1hC,UAAUg2B,GAAG,CAACl/C,KAAKsO,EAAEw8C,WAAWD,EAAEC,WAAWhB,YAAYe,EAAEf,YAAYsB,YAAYP,EAAEO,YAAYF,YAAYL,EAAEK,YAAYC,gBAAgBN,EAAEM,gBAAgByC,SAAS11C,EAAEo1C,kBAAkBt4C,EAAEo3C,gBAAgB/7D,EAAE05D,YAAYn0C,EAAE23C,uBAAuB92C,EAAE01C,gBAAgBp1C,KAAK9B,GAAG3G,EAAE,GAAG9J,SAASxN,KAAI,SAAUiR,EAAExM,GAAG,OAAO,gBAAgBqxD,GAAG/4D,OAAOyqB,OAAO,CAACptB,IAAI6W,EAAEjI,KAAKsO,EAAEqW,QAAQrW,EAAErG,GAAG4lD,QAAQv/C,EAAE,GAAG9J,SAAS9U,OAAOo+D,SAASryD,EAAE,EAAEsE,MAAM,GAAG8qD,EAAE,CAAC7rD,MAAM6rD,EAAE+C,SAAS11C,EAAE4zC,SAASnB,EAAEoB,SAASO,EAAEyB,eAAe9D,EAAEoD,aAAathD,EAAEuhD,kBAAkBt4C,EAAEo3C,gBAAgB/7D,EAAEg8D,uBAAuBj3C,EAAE20C,YAAYn0C,EAAEu2C,gBAAgBp1C,EAAEy2C,YAAYv2C,EAAEw2C,WAAW/C,IAAK,IAAI,IAAGoC,GAAG,SAASrxD,GAAG,IAAI3M,EAAE2M,EAAEkpB,QAAQvZ,EAAE3P,EAAEmyD,SAASt/C,EAAE7S,EAAEuE,KAAKzQ,EAAEkM,EAAE2vD,YAAY93C,EAAE7X,EAAEqvD,WAAWl5C,EAAEnW,EAAEmhC,UAAU1qB,EAAEzW,EAAEquD,YAAYp2D,EAAE+H,EAAEyvD,YAAY32C,EAAE9Y,EAAE0vD,gBAAgB13D,EAAEgI,EAAE8vD,eAAejzC,EAAE7c,EAAEqwD,SAASl2C,EAAEna,EAAEswD,SAASv3C,EAAE/Y,EAAEsyD,eAAej9D,EAAE2K,EAAE4xD,aAAaj4C,EAAE3Z,EAAEgyD,WAAWr1C,EAAE3c,EAAEoyD,QAAQ74C,EAAEvZ,EAAEqyD,SAASr3C,EAAEhb,EAAEsE,MAAMyY,EAAE/c,EAAE6xD,kBAAkBrD,EAAExuD,EAAE2wD,gBAAgBh1C,EAAE3b,EAAEsuD,YAAYxxC,EAAE9c,EAAE0wD,gBAAgB9zC,EAAE5c,EAAE+xD,YAAY/C,EAAEhvD,EAAEuD,MAAM4rD,EAAE,SAAS3iD,GAAG,KAAKA,EAAEsgB,SAAStgB,EAAEqgB,QAAQrgB,EAAE+gB,UAAU,GAAG9W,EAAEmJ,IAAIvsB,EAAEsnC,KAAK5d,EAAE,CAAC,IAAI/c,EAAE,CAAC3M,EAAEsnC,IAAI/iC,OAAO0Y,EAAE1b,EAAEie,EAAExf,EAAEsnC,GAAG,IAAIlb,OAAO9P,EAAE,CAAClc,KAAKq7D,EAAEU,IAAIxvD,EAAEuvD,mBAAmBl8D,EAAEsnC,IAAI,MAAMhrB,EAAE,CAAClc,KAAKw7D,GAAEt0B,GAAGtnC,EAAEsnC,GAAG40B,mBAAmBl8D,EAAEsnC,IAAI,EAAEk2B,EAAE,WAAW,OAAOlhD,EAAE,CAAClc,KAAKy7D,GAAEv0B,GAAGtnC,EAAEsnC,GAAG40B,mBAAmBl8D,EAAEsnC,IAAI,EAAEm2B,EAAE,SAAStkD,GAAG,GAAGA,EAAE+gB,SAAS,CAAC,IAAIvtB,EAAEgd,EAAE,CAACzY,KAAKsO,EAAEw7C,YAAY53C,EAAEI,KAAK7e,EAAEyyC,GAAGp3C,EAAEsnC,KAAK/hC,QAAO,SAAU4T,GAAG,OAAOvU,EAAE2nB,IAAIpT,EAAG,IAAGxM,EAAEwuD,EAAEhyC,EAAE3J,EAAE7S,EAAE/H,GAAG+H,EAAE2P,EAAE,CAAClc,KAAK+lB,GAAEgS,QAAO,EAAG8iC,YAAY3yC,EAAE6zC,IAAIxvD,EAAEuvD,mBAAmBl8D,EAAEsnC,IAAI,MAAM,GAAGnuB,EAAEsgB,SAASikC,GAAEvlC,OAAO,CAAC,IAAIhyB,EAAE2B,EAAE0X,EAAExf,EAAEsnC,GAAG7mC,GAAG6b,EAAE,CAAClc,KAAKqpB,EAAEtjB,EAAEu1D,EAAEzpB,GAAE9pB,GAAEmf,GAAGtnC,EAAEsnC,GAAG2zB,YAAY3yC,EAAE4zC,mBAAmBl8D,EAAEsnC,KAAK6zB,IAAIv2D,EAAE2nB,IAAIvsB,EAAEsnC,KAAKhrB,EAAE,CAAClc,KAAKwpB,GAAEuyC,IAAIhzC,EAAE3J,EAAE,CAACxf,EAAEsnC,IAAI1iC,GAAGuzB,QAAQ1O,IAAIhpB,EAAE8rB,IAAIvsB,EAAEsnC,IAAI2zB,YAAY3yC,EAAE4zC,mBAAmBl8D,EAAEsnC,IAAI,MAAM/d,IAAIm0C,GAAEU,gBAAgB9hD,EAAE,CAAClc,KAAKqpB,EAAEwoB,GAAE9pB,GAAEmf,GAAGtnC,EAAEsnC,GAAG2zB,aAAY,EAAGiB,mBAAmBl8D,EAAEsnC,KAAK/d,IAAIm0C,GAAEjiC,OAAOnf,EAAE,CAAClc,KAAKy7D,GAAEv0B,GAAGtnC,EAAEsnC,GAAG40B,mBAAmBl8D,EAAEsnC,IAAI,EAAEy0B,EAAE,SAASpvD,GAAG,IAAIxG,EAAE,OAAO,IAAEwG,GAAGqY,EAAE7e,EAAE,CAAC,EAAE,GAAG5B,OAAOoI,EAAE,cAAcyW,EAAEmJ,IAAIvsB,EAAEsnC,KAAKtiB,EAAE7e,EAAE,GAAG5B,OAAOoI,EAAE,cAAclM,EAAE8rB,IAAIvsB,EAAEsnC,KAAKtiB,EAAE7e,EAAE,GAAG5B,OAAOoI,EAAE,aAAa6X,IAAIxkB,EAAEsnC,IAAIxkB,GAAG3c,GAAG,EAAEwU,EAAE,WAAW2L,EAAE,CAAC,gBAAgBO,EAAE,CAAC+mB,WAAWntC,EAAE8rB,IAAIvsB,EAAEsnC,IAAIpG,WAAWt8B,EAAE2nB,IAAIvsB,EAAEsnC,IAAI2zB,YAAY3yC,KAAK,CAAC,eAAeL,EAAE,CAAC2lB,WAAWntC,EAAE8rB,IAAIvsB,EAAEsnC,IAAIpG,WAAWt8B,EAAE2nB,IAAIvsB,EAAEsnC,IAAI4zB,eAAez1C,EAAE8G,IAAIvsB,EAAEsnC,IAAI2zB,YAAY3yC,KAAK,OAAOliB,EAAEoZ,EAAExf,EAAEsnC,KAAKtnC,EAAE49D,SAAS,gBAAgB,KAAK34D,OAAOyqB,OAAO,CAACmS,KAAK,WAAW,gBAAgBze,EAAEmJ,IAAIvsB,EAAEsnC,IAAI,eAAehe,EAAE,gBAAgBpD,EAAE,aAAayB,EAAE,gBAAgB/iB,EAAE2nB,IAAIvsB,EAAEsnC,IAAIvR,SAASvR,IAAIxkB,EAAEsnC,GAAG,GAAG,EAAEpX,IAAI,SAAS/W,GAAG,OAAO,MAAMqQ,OAAE,EAAOA,EAAEwO,UAAU,MAAM7e,IAAIqQ,EAAEwO,QAAQh4B,EAAEsnC,IAAInuB,EAAE,EAAEsX,UAAU/K,EAAE21C,eAAe1gD,GAAG,gBAAgB,WAAW,KAAK3Y,EAAE,CAAC6zB,QAAQ71B,EAAE49D,UAAS,EAAGhwB,WAAWntC,EAAE8rB,IAAIvsB,EAAEsnC,IAAI4zB,eAAez1C,EAAE8G,IAAIvsB,EAAEsnC,IAAIu2B,WAAWz6C,EAAEmJ,IAAIvsB,EAAEsnC,IAAIpG,WAAWt8B,EAAE2nB,IAAIvsB,EAAEsnC,IAAIw3B,SAASxiD,EAAE4iD,aAAa,WAAW,IAAgE/4D,GAA1DtF,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC,GAAMihC,QAAQ,MAAM,CAACA,QAAQ,MAAM37B,EAAE0e,EAAE44C,EAAE3B,EAAE0B,GAAG34C,EAAE1e,EAAEq3D,GAAG/sC,UAAU,IAAEsrC,EAAEr2C,EAAElQ,MAAMkQ,EAAE01C,QAAQlrC,IAAI,SAAS/W,GAAG,OAAO,MAAM2N,OAAE,EAAOA,EAAEkR,WAAWlR,EAAEkR,QAAQh4B,EAAEsnC,IAAInuB,EAAE,EAAE,EAAE4lD,QAAQz1C,EAAE01C,SAAS94C,EAAEjV,MAAM0W,EAAEumB,aAAauvB,EAAE0B,aAAarD,EAAEgC,UAAUnC,IAAI,gBAAgBuC,GAAGj5D,OAAOyqB,OAAO,CAAC0vC,WAAWrD,GAAGkC,GAAGtxD,OAAO,gBAAgB,KAAK,CAACk1B,KAAK,OAAOpR,UAAUsrC,EAAEr2C,EAAE41C,eAAet5D,EAAE,CAAC6zB,QAAQ71B,EAAE49D,UAAS,EAAGhwB,WAAWntC,EAAE8rB,IAAIvsB,EAAEsnC,IAAI4zB,gBAAe,EAAG2C,YAAW,EAAG38B,WAAWt8B,EAAE2nB,IAAIvsB,EAAEsnC,IAAIw3B,SAASxiD,EAAE4iD,aAAa,WAAW,IAAgE/4D,GAA1DtF,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC,GAAMihC,QAAQ,OAAO78B,OAAOyqB,OAAO,CAACmS,KAAK,WAAW9L,SAASvR,IAAIxkB,EAAEsnC,GAAG,GAAG,EAAExF,QAAQjd,EAAE,MAAM1e,EAAEs3D,EAAEt3D,EAAEq3D,GAAGttC,IAAI,SAAS/W,GAAG,OAAO,MAAMqQ,OAAE,EAAOA,EAAEwO,UAAU,OAAO,MAAMlR,OAAE,EAAOA,EAAEkR,WAAWxO,EAAEwO,QAAQh4B,EAAEsnC,IAAInuB,EAAE2N,EAAEkR,QAAQh4B,EAAEsnC,IAAInuB,EAAE,EAAEsX,UAAU,IAAEsrC,EAAEr2C,EAAElQ,MAAMkQ,EAAE61C,MAAM,eAAejyC,EAAE,gBAAgBpD,EAAE,aAAayB,EAAEiT,SAASh2B,EAAE2nB,IAAIvsB,EAAEsnC,IAAI,gBAAgB1iC,EAAE2nB,IAAIvsB,EAAEsnC,KAAK3sB,EAAE,EAAEokD,QAAQz1C,EAAE01C,SAAS94C,EAAEjV,MAAM0W,EAAEumB,aAAauvB,EAAE0B,aAAaxB,GAAEG,UAAUnC,IAAI,EAAEsC,GAAG,SAAS9kD,GAAwB,OAArBA,EAAE4lD,QAAQ5lD,EAAE6lD,SAAgBp6D,EAAEuU,EAAE,CAAC,UAAU,YAAY,EAAE+kD,GAAG,SAAS/kD,GAAG,IAAIxM,EAAEwM,EAAEjI,KAAKlR,EAAEmZ,EAAE0c,QAAQvZ,EAAEnD,EAAE6hD,YAAYx7C,EAAErG,EAAEimD,WAAWp6C,EAAE7L,EAAE8lD,eAAex+D,EAAE0Y,EAAElI,MAAMgM,EAAErY,EAAEuU,EAAE,CAAC,OAAO,UAAU,cAAc,aAAa,iBAAiB,UAAU,OAAO,gBAAgB,KAAK,CAAC0oB,KAAK,QAAQpR,UAAUjR,EAAEwF,EAAEw2C,YAAYl/C,EAAEiQ,IAAIvsB,EAAEsnC,KAAKtnC,EAAE0V,SAAS9U,OAAO,GAAGZ,EAAE0V,SAASxN,KAAI,SAAUiR,EAAEqG,GAAG,OAAO,gBAAgBw+C,GAAG/4D,OAAOyqB,OAAO,CAACxe,KAAKvE,EAAEquD,YAAY1+C,EAAE2iD,eAAej6C,EAAE1iB,IAAI6W,EAAE0c,QAAQlpB,EAAEwM,GAAG4lD,QAAQ/+D,EAAE0V,SAAS9U,OAAOo+D,SAASx/C,EAAE,EAAEvO,MAAMxQ,EAAE,GAAGwc,GAAI,IAAG,EAAEmzC,GAAG,SAASj3C,GAAG,IAAIxM,EAAEwM,EAAEjI,KAAK/K,EAAEgT,EAAE6hD,YAAYh7D,EAAEmZ,EAAEmjD,YAAYhgD,EAAEnD,EAAEijD,YAAY58C,EAAErG,EAAE6iD,WAAWh3C,EAAE7L,EAAE2lD,SAASr+D,EAAE0Y,EAAEqlD,kBAAkBh6C,EAAErL,EAAEmkD,gBAAgBx6C,EAAE3J,EAAE8hD,YAAY73C,EAAEjK,EAAEslD,uBAAuB75D,EAAEuU,EAAEkkD,gBAAgB,OAAO,SAASlkD,GAAG,IAAI0L,EAAElY,EAAE6S,GAAGiG,EAAEZ,EAAEyiB,GAAG,GAAGnuB,EAAEsgB,SAAS,GAAG,MAAMtgB,EAAE7W,IAAI,CAAC6W,EAAEghB,iBAAiB,IAAIx1B,EAAEgI,EAAEpH,QAAO,SAAU4T,GAAG,OAAO,IAAIA,EAAEmuB,EAAG,IAAG9d,EAAEvkB,OAAOI,OAAOV,GAAGuD,KAAI,SAAUiR,GAAG,OAAOA,EAAEmuB,EAAG,IAAG/hC,QAAO,SAAU4T,GAAG,OAAOmD,EAAEiQ,IAAIpT,EAAG,IAAG6L,EAAE,CAAC5kB,KAAKwpB,GAAEqxC,YAAYn4C,EAAEqV,OAAOj3B,MAAMsiB,KAAKxjB,GAAGuF,QAAO,SAAU4T,GAAG,OAAOmD,EAAEiQ,IAAIpT,EAAG,IAAGvY,SAAS4oB,EAAE5oB,OAAOu7D,IAAI3yC,EAAE0yC,mBAAmBr3C,EAAEyiB,IAAI,MAAM,GAAGnuB,EAAE+gB,WAAW,SAAS/gB,EAAE7W,KAAK,QAAQ6W,EAAE7W,KAAK,CAAC,IAAIojB,EAAE,SAASvM,EAAE7W,IAAIqK,EAAE,GAAG+I,SAAS,GAAG4Q,EAAE3Z,EAAE8Y,EAAEtf,GAAGnE,EAAE2nB,EAAE,CAACzY,KAAKvE,EAAEquD,YAAY70D,EAAEqd,KAAKiC,EAAE2xB,GAAG1xB,IAAIngB,QAAO,SAAU4T,GAAG,OAAOmD,EAAEiQ,IAAIpT,EAAG,IAAG6L,EAAE,CAAC5kB,KAAKwpB,GAAEqxC,YAAYn4C,EAAEqV,QAAO,EAAGgkC,IAAI33C,EAAE2E,EAAExc,EAAE3K,EAAEsa,GAAGta,IAAIgjB,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAG5hB,EAAEw2C,mBAAmBx2C,GAAG,MAAM,CAAC,GAAGvM,EAAE+gB,SAAS,OAAO/gB,EAAE7W,KAAK,IAAI,UAAU6W,EAAEghB,iBAAiB,IAAIxS,EAAE2B,EAAE3c,EAAE8Y,EAAEtf,GAAG,YAAY,MAAMwhB,GAAGrL,EAAEiQ,IAAI5E,KAAK3C,EAAE,CAAC5kB,KAAKwpB,GAAEuyC,IAAI33C,EAAE2E,EAAExc,EAAE,CAACgb,GAAGrL,GAAG,CAACqL,GAAGwQ,QAAO,EAAG8iC,YAAYn4C,EAAEo5C,mBAAmBv0C,IAAI3C,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAG3f,EAAEu0C,mBAAmBv0C,MAAM,IAAI,YAAYxO,EAAEghB,iBAAiB,IAAItT,EAAEX,EAAEvZ,EAAE8Y,EAAEtf,GAAG,YAAY,MAAM0gB,GAAGvK,EAAEiQ,IAAI1F,KAAK7B,EAAE,CAAC5kB,KAAKwpB,GAAEuyC,IAAI33C,EAAE2E,EAAExc,EAAE,CAACka,GAAGvK,GAAG,CAACuK,GAAGo0C,YAAYn4C,EAAEqV,QAAO,EAAG+jC,mBAAmBr1C,IAAI7B,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGzgB,EAAEq1C,mBAAmBr1C,MAAM,OAAO1N,EAAE7W,KAAK,IAAI,YAAY6W,EAAEghB,iBAAiB,IAAIlS,EAAE/B,EAAEvZ,EAAE8Y,EAAEtf,GAAG,YAAY,MAAM8hB,GAAGjD,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGrf,EAAEi0C,mBAAmBj0C,KAAK,IAAI,UAAU9O,EAAEghB,iBAAiB,IAAIzQ,EAAEJ,EAAE3c,EAAE8Y,EAAEtf,GAAG,YAAY,MAAMujB,GAAG1E,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAG5d,EAAEwyC,mBAAmBxyC,KAAK,IAAI,YAAY,GAAGvQ,EAAEghB,kBAAkB/zB,EAAEuG,EAAE8Y,IAAIZ,EAAE+4C,WAAWz3D,EAAEomB,IAAI/M,GAAG,GAAG/e,EAAE,CAAC,IAAI06D,EAAE,CAAC11C,GAAGlhB,OAAO0Y,EAAE1b,EAAEoL,EAAE8Y,EAAE,IAAI2G,OAAOpH,EAAE,CAAC5kB,KAAKq7D,EAAEU,IAAIhB,EAAEe,mBAAmBr3C,EAAEyiB,IAAI,MAAMtiB,EAAE,CAAC5kB,KAAKkoB,EAAEgf,GAAG7hB,EAAEy2C,mBAAmBz2C,SAAS,IAAI9Y,EAAE,GAAG+I,SAAS0Y,SAAS3I,GAAG,CAAC,IAAIk2C,EAAE70C,EAAEna,EAAE8Y,GAAG,GAAG,MAAMk2C,EAAE,MAAM,IAAI76D,MAAM,oCAAoCkkB,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGq0B,EAAEO,mBAAmBP,GAAG,CAAC,OAAO,IAAI,aAAa,OAAOxiD,EAAEghB,uBAAuB/zB,EAAEuG,EAAE8Y,IAAIZ,EAAE+4C,YAAYz3D,EAAEomB,IAAI/M,GAAGwF,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGziB,EAAEnP,SAAS,GAAGwmD,mBAAmBr3C,EAAEnP,SAAS,KAAKsP,EAAE,CAAC5kB,KAAKqpB,EAAE6d,GAAG7hB,EAAEy2C,mBAAmBz2C,MAAM,IAAI,OAAOtM,EAAEghB,iBAAiBnV,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAG36B,EAAE,GAAG+I,SAAS,GAAGwmD,mBAAmBvvD,EAAE,GAAG+I,SAAS,KAAK,MAAM,IAAI,MAAMyD,EAAEghB,iBAAiB,IAAIhU,EAAEG,EAAE3Z,EAAEA,EAAE,GAAG26B,GAAGnhC,GAAG,YAAY6e,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGnhB,EAAE+1C,mBAAmB/1C,IAAI,IAAI,IAAIhN,EAAEghB,iBAAiB,IAAI2hC,EAAEh1C,EAAEna,EAAE8Y,GAAG,GAAG,MAAMq2C,EAAE,MAAM,IAAIh7D,MAAM,+BAA+B,IAAI08D,EAAE7wD,EAAEmvD,GAAGpmD,SAASnQ,QAAO,SAAU4T,GAAG,OAAO/S,EAAEuG,EAAEwM,IAAIxM,EAAEwM,GAAGykD,QAAS,IAAG,YAAY54C,EAAE,CAAC5kB,KAAKmpB,EAAE4yC,IAAIqB,EAAEtB,mBAAmBz2C,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,WAAWtM,EAAEghB,iBAAiB,IAAIsjC,EAAE31D,EAAE6E,EAAEkY,EAAEyiB,GAAGtnC,GAAG,OAAOglB,EAAE,CAAC5kB,KAAKwE,EAAE64D,EAAE/B,EAAEzpB,GAAE9pB,GAAEmf,GAAG7hB,EAAEw1C,YAAYn4C,EAAEo5C,mBAAmBz2C,IAAIjB,IAAIlI,EAAEiQ,IAAI1H,EAAEyiB,KAAKtiB,EAAE,CAAC5kB,KAAKwpB,GAAEuyC,IAAIhzC,EAAExc,EAAE,CAAC8Y,GAAGnJ,GAAG6b,QAAQvzB,IAAI5E,EAAEusB,IAAI9G,GAAGw1C,YAAYn4C,EAAEo5C,mBAAmBz2C,SAASrC,GAAG4B,EAAE,CAAC5kB,KAAKw7D,GAAEt0B,GAAG7hB,EAAEy2C,mBAAmBz2C,KAAK,QAAQ,GAAG,IAAItM,EAAE7W,IAAI1B,OAAO,IAAI,IAAIm7D,EAAE71C,EAAEvZ,EAAE8Y,EAAEtf,GAAG41D,IAAIt2C,GAAG,GAAG,MAAMs2C,EAAE,CAAC,GAAGpvD,EAAEovD,GAAGjzD,KAAK,GAAG0d,gBAAgBrN,EAAE7W,IAAIkkB,cAAc,YAAYxB,EAAE,CAAC5kB,KAAKy7D,GAAEv0B,GAAGy0B,EAAEG,mBAAmBz2C,IAAIs2C,EAAE71C,EAAEvZ,EAAEovD,EAAE51D,EAAE,MAAM41D,EAAEpvD,EAAE,GAAG+I,SAAS,GAAG,OAAO,CAAC,CAAC,EAAEqoD,GAAGhb,UAAU,CAAC7xC,KAAK,qBAAmBgsD,SAAS,SAAOC,SAAS,SAAO1sC,UAAU,WAAS8tC,aAAa,oBAAkB1B,mBAAmB,UAAQC,mBAAmB,UAAQ9B,YAAY,UAAQsB,YAAY,UAAQS,mBAAmB,UAAQyB,kBAAkB,SAAOlB,gBAAgB,SAAOC,uBAAuB,SAAOtC,YAAY,SAAOwD,uBAAuB,SAAOpB,gBAAgB,SAAOsB,WAAW,UAAQ90C,IAAG60C,YAAY,UAAQt1C,IAAGolB,OAAO,SAAO4uB,WAAW,UAAQ,kCCgB/ttB,MAAM1F,IAAeC,EAAAA,EAAAA,MA4BR0H,GACTC,IAEA,MAAMC,EAA2C,GAE3C1H,EAAoBH,GAAa5xD,MACnC2sB,IAAA,IAAA+sC,EAAA,IAAC,GAAEl4B,GAAI7U,EAAA,OAAK6U,KAAqC,QAAnCk4B,EAAKF,EAAmBG,mBAAW,IAAAD,OAAA,EAA9BA,EAAgCE,SAAQ,IAGzDC,EAAoBA,CACtBC,EACA5uD,KACQ,IAAD6uD,EAAAC,EACP,MAAMtqD,EAA2B,CAC7B8xB,GAAIi4B,EAAc3+D,OAClBkI,KAAM82D,EAAK92D,KACXovD,UAAW0H,EAAK1H,UAChBxiD,SAAU,GACV1E,SACA3D,KAAMuyD,EAAKvyD,KACXqyD,SAAUE,EAAKF,SACfv9D,UAAUy9D,aAAI,EAAJA,EAAMz9D,WAAY,GAKhC,GAFAo9D,EAAc99D,KAAK+T,KAGD,QAAdqqD,EAACD,EAAKlqD,gBAAQ,IAAAmqD,IAAbA,EAAej/D,QACfg/D,EAAKF,UACoC,QAD5BI,EACVjI,EAAkBkI,4BAAoB,IAAAD,GAAtCA,EAAwC1xC,SAASwxC,EAAKF,WAH9D,CAQA,IAAK,MAAMrqD,KAASuqD,EAAKlqD,SACrBiqD,EAAkBtqD,EAAOG,EAAK8xB,IAGlC9xB,EAAKE,SAAW6pD,EACXh6D,QAAQoiB,GAAMA,EAAE3W,SAAWwE,EAAK8xB,KAChCtwB,MAAK,CAAC7Q,EAAGC,IAAMD,EAAEhE,SAAWiE,EAAEjE,WAC9B+F,KAAKyf,GAA0BA,EAAE2f,IATtC,CASyC,EAK7C,OAFAq4B,EAAkBL,EAAoB,MAE/BC,CAAa,EAQjB,SAASS,GAAc1rC,GAGL,IAHM,mBAC3BgrC,EAAkB,eAClBW,GACkB3rC,EAClB,MAAM,SAAEklC,IAAaC,EAAAA,EAAAA,KAEfyG,EAAclwC,EAAAA,SAChB,IAAMqvC,GAAYC,IAClB,CAACA,IAGCzH,EAAoBH,GAAa5xD,MACnC0uB,IAAA,IAAA2rC,EAAA,IAAC,GAAE74B,GAAI9S,EAAA,OAAK8S,KAAqC,QAAnC64B,EAAKb,EAAmBG,mBAAW,IAAAU,OAAA,EAA9BA,EAAgCT,SAAQ,IAGzDU,EAA0BpwC,EAAAA,aAC3Bxa,IACG,GAAIA,EAAM,CAAC,IAAD6qD,EACN,GAAI7qD,EAAKnI,OAASmsD,EACd,OAAO,EAKX,GACIhkD,EAAKkqD,UACiC,QADzBW,EACbxI,EAAkBkI,4BAAoB,IAAAM,GAAtCA,EAAwCjyC,SACpC5Y,EAAKkqD,UAEX,CACE,MAAMY,EAAgB9G,EAAS5pD,MAAM,KAAKrK,OAAOiR,SACjD8pD,EAAc55C,MACd,MAAM65C,EAAkB,IAAGD,EAAcx/C,KAAK,QAE9C,OAAOtL,EAAKnI,OAASkzD,CACzB,CAEA,GAAI/qD,EAAKE,SACL,OAAOF,EAAKE,SAASsL,MAAM3L,GAChB+qD,EAAwBF,aAAW,EAAXA,EAAc7qD,KAGzD,CAEA,OAAO,CAAK,GAEhB,CAACmkD,EAAU0G,EAAarI,EAAkBkI,uBAGxClD,EAAqB7sC,EAAAA,SAAc,KACrC,MAAMgrC,EAA6B,GAQnC,OANAkF,SAAAA,EAAa34D,SAASiO,IACd4qD,EAAwB5qD,IACxBwlD,EAAYv5D,KAAK+T,EAAK8xB,GAC1B,IAGG0zB,CAAW,GACnB,CAACkF,EAAaE,IAEjB,OACIpwC,EAAAA,cAACwwC,GAAQ,CACLtvD,KAAMgvD,EACN,aAAW,sBACXrD,mBAAoBA,EACpB0B,aAAc7pC,IAOP,IANHmB,QAAS4qC,EAAQ,SACjB7C,EAAQ,WACRC,EAAU,MACV5sD,EAAK,aACLiuD,EAAY,aACZC,GACHzqC,EACG,MAAMmB,EAAU4qC,EAEVC,EAAYxB,EAAa,CAC3Bp9B,QAAU3oB,IACN8mD,SAAAA,EACIpqC,EAAQxoB,KACRwoB,EAAQqiC,WAAa,IAGpB2F,GACDsB,EAAahmD,EACjB,IAIR,IAAIwnD,EACA/C,IACA+C,EACI3wC,EAAAA,cAACwjB,GAAAA,GAAM,CACH/iB,UAAU,+BACVgjB,KAAMmtB,EAAAA,IACN9+B,QAAU3oB,IACNA,EAAEghB,iBACE0jC,GACAsB,EAAahmD,EACjB,KAMhB,MAAM0nD,EACQ,IAAV5vD,GACA4sD,GACAhoC,EAAQxoB,OAASmsD,GACjBqD,EAAmBzuC,SAASyH,EAAQyR,IAExC,OACItX,EAAAA,cAAC6lB,EAAAA,GAAS,CACN5B,QAAS4sB,EAAW,YAAc,SAClC/qB,MAAM,eACNgrB,WAAW,KAEX9wC,EAAAA,cAACwmB,GAAAA,EAAIvxC,OAAAyqB,OAAA,CACD0nB,GAAIvhB,EAAQxoB,KACZ,eAAcwoB,EAAQxoB,OAASmsD,EAC/BzjC,UAAW,GACP2qC,EAAS,CACbxwC,IACI,QAASwwC,EACFA,EAAUxwC,SACX5wB,EAEVm3C,QAAQ,IAEPkqB,EACA9qC,EAAQqiC,WAAa,IAElB,EAGpBgF,SAAUvoC,IAAkB,IAAjB,QAAEkB,GAASlB,EAClB,MAAMnf,EAAOqgB,EAETrgB,EAAKnI,OACL4yD,SAAAA,EAAiBzqD,EAAKnI,KAAMmI,EAAK0iD,WAAa,KAC9C6C,EAAAA,EAAAA,IAASvlD,EAAKnI,MAClB,GAIhB,CAAC2yD,GAAAhqB,aAAA,mBCpOM,SAAS+qB,GAAetuC,GAEL,IAFM,eAC5BwtC,EAAiBA,UACExtC,EACnB,MAAM,mBAAE6sC,IAAuBvF,EAAAA,EAAAA,KAE/B,IAAKuF,EACD,OAAO,KAYX,OACItvC,EAAAA,cAAA,OAAKS,UAAU,uBACXT,EAAAA,cAACupC,EAAkB,MAEnBvpC,EAAAA,cAAC0lB,EAAAA,GAAG,CAACjlB,UAAU,mBACXT,EAAAA,cAACgwC,GAAc,CACXV,mBAAoBA,EACpBW,eAhBae,CAAC3zD,EAAcvE,MACxC4tD,EAAAA,GAAAA,GAAM,qBAAsB,CACxBuK,YAAan4D,EACbo4D,YAAa,eACbC,YAAa9zD,IAEjB4yD,SAAAA,EAAiB5yD,EAAK,KAe9B,CAAC0zD,GAAA/qB,aAAA,uHCpBD,MAAMorB,EAA6C,CAC/C,CACIxb,KAAM51B,EAAAA,cAAAA,EAAAA,SAAA,KAAE,kBAEZ,CACI41B,KAAM,iBACNhO,KAAM,+CAEV,CACIgO,KAAM,mBACNhO,KAAM,sCAEV,CACIgO,KAAM,6BACNhO,KAAM,uCAIRypB,EAA0C,CAC5C,CACIv4D,KAAM,UACNw4D,MAAO,CACH,CACI1b,KAAM,mBACNhO,KAAM,iDAEV,CACIgO,KAAM,iBACNhO,KAAM,qCAEV,CACIgO,KAAM,UACNhO,KAAM,wCAEV,CACIgO,KAAM,UACNhO,KAAM,wCAEV,CACIgO,KAAM,SACNhO,KAAM,qCAIlB,CACI9uC,KAAM,YACNw4D,MAAO,CACH,CACI1b,KAAM,SACNhO,KAAM,sCAEV,CACIgO,KAAM,SACNhO,KAAM,uCAEV,CACIgO,KAAM,SACNhO,KAAM,uCAEV,CACIgO,KAAM,WACNhO,KAAM,2CAIlB,CACI9uC,KAAM,UACNw4D,MAAO,CACH,CACI1b,KAAM,aACNhO,KAAM,wCAEV,CACIgO,KAAM,OACNhO,KAAM,qCAEV,CACIgO,KAAM,UACNhO,KAAM,wCAEV,CACIgO,KAAM,WACNhO,KAAM,4CAMtB,SAAS2pB,IACL,MAAMC,GAAkBC,EAAAA,EAAAA,GACpB,CAAEC,QAAQ,GACVN,GAGJ,OACIpxC,EAAAA,cAAA,OAAKS,UAAU,0BACXT,EAAAA,cAAA,MAAIS,UAAU,cACT+wC,EAAgBt5D,KAAI,CAAC+Q,EAASlW,IACvB,WAAYkW,GAAWA,EAAQyoD,OAE3B1xC,EAAAA,cAAA,MAEI1tB,IAAKS,EACL,cAAY,QAEZitB,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,UAAS,MAKpC,SAAUh7B,GAAWA,EAAQ2+B,KAEzB5nB,EAAAA,cAAA,MAAI1tB,IAAK2W,EAAQ2+B,MACb5nB,EAAAA,cAACwmB,EAAAA,EAAI,CACDY,GAAIn+B,EAAQ2+B,KACZx3C,KAAK,YACL6zC,QAAQ,UAEPh7B,EAAQ2sC,OAQrB51B,EAAAA,cAAA,MAAI1tB,IAAKS,GACLitB,EAAAA,cAAC2xC,EAAAA,GAAI,CAAC1tB,QAAQ,UACRh7B,EAA0B2sC,UAQ5D,CAMA,SAASgc,EAAYnvC,GAAiC,IAAhC,OAAEovC,GAA2BpvC,EAC/C,OACIzC,EAAAA,cAAA,OAAKS,UAAU,gBACXT,EAAAA,cAAC8xC,EAAAA,GAAE,CAAC7tB,QAAQ,YAAYxjB,UAAU,iBAC7BoxC,EAAO/4D,MAGZknB,EAAAA,cAAA,MAAIS,UAAU,cACToxC,EAAOP,MAAMp5D,KAAK2uC,GAEX7mB,EAAAA,cAAA,MAAI1tB,IAAKu0C,EAAKe,KAAMnnB,UAAU,kBAC1BT,EAAAA,cAACwmB,EAAAA,EAAI,CACDY,GAAIP,EAAKe,KACTx3C,KAAK,YACL6zC,QAAQ,UAEP4C,EAAK+O,UAQtC,CAEO,SAASmc,IACZ,OACI/xC,EAAAA,cAAA,UAAQS,UAAU,UACdT,EAAAA,cAAA,OAAKS,UAAU,mBACV4wC,EAAen5D,KAAK25D,GACV7xC,EAAAA,cAAC4xC,EAAY,CAACt/D,IAAKu/D,EAAO/4D,KAAM+4D,OAAQA,OAIvD7xC,EAAAA,cAAC6lB,EAAAA,GAAS,CACN5B,QAAQ,eACR+tB,UAAU,SACVC,GAAG,KACH5K,GAAG,MACN,qDACsD,IACnDrnC,EAAAA,cAACwmB,EAAAA,EAAI,CAACY,GAAG,uCAAsC,kBAEvC,IAAI,MACR,IACJpnB,EAAAA,cAACwmB,EAAAA,EAAI,CAACY,GAAG,qCAAoC,oBAErC,IAAI,UAIhBpnB,EAAAA,cAACuxC,EAAW,MAGxB,CA7DCA,EAAAvrB,aAAA,GA8BA4rB,EAAA5rB,aAAA,GA+BA+rB,EAAA/rB,aAAA,6GCrNM,MAAOksB,EAAwBnI,IAClCoI,EAAAA,EAAAA,mGCPG,MAAMxI,EAAoBA,KAC7B,MAAM,SAAEmF,IAAasD,EAAAA,EAAAA,MAqBrB,OAnBkBpyC,EAAAA,aACbwpC,IACG,MAAM6I,EAAY7I,EAAS5pD,MAAM,KAAKrK,OAAOiR,SAIvC8rD,EAHWD,EAAUA,EAAUzhE,OAAS,GAIzCsd,QAAQ,QAAS,IACjBtO,MAAM,kBACNkR,KAAK,KAEVg+C,EAAS,CAAE1+D,KAAM,wBAAyB+D,OAAO,IACjD26D,EAAS,CAAE1+D,KAAM,kBAAmB+D,MAAOm+D,IAC3CxD,EAAS,CAAE1+D,KAAM,2BAA4B+D,MAAO,QACpD26D,EAAS,CAAE1+D,KAAM,oBAAqB+D,OAAO,GAAO,GAExD,CAAC26D,GAGW,iMCzBb,MAAMyD,EAAmBA,CAACC,EAAmBC,IACxC,WAAUD,uQAGLC,yECWjB,MAAMC,GAAQ3uB,EAAAA,EAAAA,GAAI,QAAS,CACvBC,SAAU,CACN2uB,WAAY,CACR5rB,KAAM,eAEVZ,KAAM,CACF9iB,GAAI,UACJD,GAAI,UACJD,GAAI,WAERyvC,OAAQ,CACJ7rB,KAAM,aAKX,SAAS8rB,EAAKpwC,GAQiD,IARhD,SAClB/c,EAAQ,KACRqU,EAAI,QACJ2V,EAAO,UACPjP,EAAS,KACT0lB,EAAO,KAAI,WACXwsB,GAAa,EAAK,OAClBC,GAAS,GACsDnwC,EAC/D,MAAMqwC,EAAY9yC,EAAAA,OAAgC,MAUlD,MAAM+yC,EAAc/yC,EAAAA,aAAkB,KAClC0P,GAAQ,EAAM,GACf,CAACA,IAIJ1P,EAAAA,WAAgB,KACZ,MAAMgzC,EAAgBF,EAAU9qC,QAE5BgrC,IACIj5C,GAjBRiB,SAASE,KAAK8K,MAAMwW,SAAW,SAmBvBw2B,EAAcC,cAftBj4C,SAASE,KAAK8K,MAAMwW,SAAW,GAkBvBw2B,EAAc38B,SAEtB,GACD,CAACtc,EAAMg5C,IAEV/yC,EAAAA,WAAgB,KACZ,MAAMgzC,EAAgBF,EAAU9qC,QAE1B+qC,EAAcA,KAChBrjC,GAAQ,EAAM,EAKlB,OAFAsjC,SAAAA,EAAe1qC,iBAAiB,QAASyqC,GAElC,KACHC,SAAAA,EAAezqC,oBAAoB,QAASwqC,EAAY,CAC3D,GACF,CAACrjC,IAEJ,MAAMzR,EAAUy0C,EAAM,CAAEjyC,YAAWkyC,aAAYxsB,OAAMysB,WAErD,OACI5yC,EAAAA,cAAA,UAAQE,IAAK4yC,EAAWryC,UAAWxC,GAC/B+B,EAAAA,cAAA,OAAKS,UAAU,qBACV/a,EACDsa,EAAAA,cAACgnC,EAAAA,GAAM,CACH7gB,KAAK,KACLD,UAAU,YACVzlB,UAAU,eACV,aAAW,cACXqR,QAASA,IAAMpC,GAAQ,IAEvB1P,EAAAA,cAACwjB,EAAAA,GAAM,CAAC2C,KAAK,KAAK1C,KAAMyvB,EAAAA,IAASptB,MAAM,oBAK3D,CAAC+sB,EAAA7sB,aAAA,6BClFM,SAASmtB,EAAoB1wC,GAA4C,IAA3C,UAAEhC,GAAsCgC,EACzE,MAAM,KACF1I,EAAI,WACJq5C,EAAU,YACVC,EAAW,WACXC,EAAU,aACVC,EAAY,SACZf,IACAgB,EAAAA,EAAAA,KAEEv1C,GAAU2C,EAAAA,EAAAA,IAAG,yBAA0BH,GAEvCgzC,EAAWF,aAAY,EAAZA,EAAc3zD,MAAM,KAC/B6yD,EAAcgB,aAAQ,EAARA,EAAWA,EAAS7iE,OAAS,GAE3C8iE,EAAgBnB,EAAiBC,EAAUC,GAEjD,OACIzyC,EAAAA,cAAC6yC,EAAK,CAAC94C,KAAMA,EAAM2V,QAAS0jC,EAAYjtB,KAAK,KAAK1lB,UAAWxC,GACzD+B,EAAAA,cAACylB,EAAAA,GAAI,CACDhO,cAAc,SACd6vB,IAAI,KACJ7xC,EAAE,KACFmwB,SAAS,IACT+tB,UAAU,QAEV3zC,EAAAA,cAAC4zC,EAAAA,GAAE,CAAC3vB,QAAQ,aAAY,6BAExBjkB,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UACfjkB,EAAAA,cAAC6zC,EAAAA,GAAM,KAAC,SAAc,oBAAkB,IACxC7zC,EAAAA,cAACwmB,EAAAA,EAAI,CAACY,GAAG,gEAA+D,UAEhE,IAAI,uDAIhBpnB,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UAAS,wDAC8B,IACtDjkB,EAAAA,cAAC2mB,EAAAA,EAAU,KAAC,wBAAkC,IAAC,IAC/C3mB,EAAAA,cAAC2mB,EAAAA,EAAU,KAAC,yBAAmC,IAAC,IAChD3mB,EAAAA,cAAC2mB,EAAAA,EAAU,KAAC,wBAAkC,QAAK,IACnD3mB,EAAAA,cAAC2mB,EAAAA,EAAU,KAAC,sBAA+B,iDAI/C3mB,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UAAS,oEAEpBjkB,EAAAA,cAAC2mB,EAAAA,EAAU,KAAC,UAAoB,sDAIxC3mB,EAAAA,cAAA,UACIA,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UAAS,gFAK5BjkB,EAAAA,cAAC0lC,EAAAA,EAAgB,CACbG,WAAa,QAAOyN,IACpBxN,YAAa9lD,KAAKC,UAAUozD,EAAa,KAAM,GAC/Cle,SAAS,UAIjBn1B,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UAAS,oEAK5BjkB,EAAAA,cAAA,UACIA,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UACfjkB,EAAAA,cAAC6zC,EAAAA,GAAM,KAAC,aAAkB,aAAW,IACrC7zC,EAAAA,cAAC6zC,EAAAA,GAAM,KAAC,sBAA2B,0CAI3C7zC,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UACfjkB,EAAAA,cAAC6zC,EAAAA,GAAM,KAAC,aAAkB,uGAK9B7zC,EAAAA,cAAC0lC,EAAAA,EAAgB,CACbG,WAAY0N,KAIpBvzC,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UACfjkB,EAAAA,cAAC6zC,EAAAA,GAAM,KAAC,aAAkB,8DAI9B7zC,EAAAA,cAAC0lC,EAAAA,EAAgB,CACbG,WAAa,WAAU0N,IACvBpe,SAAS,YAMzBn1B,EAAAA,cAAA,UACIA,EAAAA,cAAC6lB,EAAAA,EAAS,CAAC5B,QAAQ,UAAS,+HAM5BjkB,EAAAA,cAAC0lC,EAAAA,EAAgB,CACbG,WAAY6N,EACZ5N,YAAY,cACZ3Q,SAAS,YAMzBn1B,EAAAA,cAACylB,EAAAA,GAAI,CACDxI,eAAe,MACfxc,UAAU,aACVmlB,SAAS,IACTnwB,EAAE,MAEFuK,EAAAA,cAACgnC,EAAAA,GAAM,CAACl1B,QAASshC,GAAY,SAI7C,CAACD,EAAAntB,aAAA,6BC/IM,SAAS8tB,IACZ,OACI9zC,EAAAA,cAACgnC,EAAAA,GAAM,CACH7gB,KAAK,KACL,aAAW,0BACX1lB,WAAWI,EAAAA,EAAAA,IAAI,CACX1uB,SAAU,QACV6oC,OAAQ,IACRrC,KAAM,IACNpnC,EAAG,KACH81D,GAAI,KACJtF,GAAI,SAER7b,UAAU,YACVpU,QAASiiC,EAAAA,IAET/zC,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMuwB,EAAAA,IAAcluB,MAAM,iBAG9C,CAACguB,EAAA9tB,aAAA,iBCpBM,SAASiuB,EAAYxxC,GAKiC,IALhC,GACzB2kB,EAAK,kCAAiC,OACtCh4B,EAAS,SAAQ,IACjB+3B,EAAM,gBACHxmB,GACmD8B,EACtD,OACIzC,EAAAA,cAACimB,EAAAA,EAAUhxC,OAAAyqB,OAAA,CACP0nB,GAAIA,EACJh4B,OAAQA,EACR+3B,IAAKA,EACLjB,UAAU,YACVC,KAAK,MACDxlB,GACP,UAIT,CAEO,SAASuzC,EAAa5vC,GAMgC,IAN/B,GAC1B8iB,EAAK,2CAA0C,OAC/Ch4B,EAAS,SAAQ,IACjB+3B,EAAM,aAAY,UAClBd,EAAYrmB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM0wB,EAAAA,SACvBxzC,GACmD2D,EACtD,OACItE,EAAAA,cAACimB,EAAAA,EAAUhxC,OAAAyqB,OAAA,CACP0nB,GAAIA,EACJh4B,OAAQA,EACR+3B,IAAKA,EACLd,UAAWA,EACXH,UAAU,UACVC,KAAK,MACDxlB,GACP,WAIT,CAtBCszC,EAAAjuB,aAAA,GAsBAkuB,EAAAluB,aAAA,6BCrCM,SAASouB,EAAgB3xC,GAGoB,IAHnB,SAC7B/c,EAAQ,UACR+a,GAC6CgC,EAC7C,MAAMxE,GAAU2C,EAAAA,EAAAA,IAAG,oBAAqBH,GAExC,OACIT,EAAAA,cAAC4mB,EAAAA,GAAI,CAAC3C,QAAQ,SAASxjB,UAAWxC,GAC7BvY,EAGb,CCVO,SAAS2uD,IACZ,MAAOC,EAAIC,GAASv0C,EAAAA,SAA0C,OACxD,SAAE8uC,IAAasD,EAAAA,EAAAA,MAErBpyC,EAAAA,WAAgB,KACZu0C,ECbkB,oBAAX7gD,OACA,KAGPA,OAAOk7C,UAAUn4C,UAAU2H,SAAS,OAC7B,UAGP1K,OAAOk7C,UAAUn4C,UAAU2H,SAAS,OAC7B,MAGP1K,OAAOk7C,UAAUn4C,UAAU2H,SAAS,OAC7B,OAGP1K,OAAOk7C,UAAUn4C,UAAU2H,SAAS,SAC7B,QAGJ,KDPwB,GAC5B,IAOH,IAAIo2C,EACJ,GAAIF,EAAI,CACJ,IACIr2C,EADAw2C,EAAc,OAGP,QAAPH,IACAG,EAAc,IACdx2C,EAAU,UAGdu2C,EACIx0C,EAAAA,cAAA,OAAKS,UAAU,sBACXT,EAAAA,cAACo0C,EAAgB,CAAC3zC,UAAWxC,GACxBw2C,GAELz0C,EAAAA,cAACo0C,EAAgB,KAAC,KAG9B,CAEA,OACIp0C,EAAAA,cAAA,UAAQS,UAAU,oBAAoBqR,QA1BftkB,IACvBA,EAAM2c,iBACN2kC,EAAS,CAAE1+D,KAAM,wBAAyB+D,OAAO,GAAO,GAyBpD6rB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMixB,EAAAA,IAAUj0C,UAAU,gBAClCT,EAAAA,cAAA,OAAKS,UAAU,sBAAqB,UACnC+zC,EAGb,CD9BCJ,EAAApuB,aAAA,GC8BAquB,EAAAruB,aAAA,6BEpCD,MAAM2uB,EAA6D,CAC/DC,MAAO,QACPC,KAAM,OACNC,OAAQ,iBAGL,SAASC,IACZ,MAAM,iBAAEn1C,EAAgB,gBAAEo1C,EAAe,mBAAEC,IACvCp1C,EAAAA,EAAAA,MAEJ,OACIG,EAAAA,cAACmjB,EAAAA,GAAM,CACHhvC,MAAO6gE,EACPpmC,cAAgBz6B,GACZ8gE,EAAmB9gE,IAGvB6rB,EAAAA,cAACokB,EAAAA,GAAa,CACV,aAAa,GAAEuwB,EAAqBK,mBACpCv0C,UAAU,wBAEVT,EAAAA,cAAC6jB,EAAAA,GAAW,KACPjkB,EAAiB,CACdg1C,MAAO50C,EAAAA,cAACwjB,EAAAA,GAAM,CAAC3R,KAAK,eAAe4R,KAAMyxB,EAAAA,MACzCL,KAAM70C,EAAAA,cAACwjB,EAAAA,GAAM,CAAC3R,KAAK,eAAe4R,KAAM0xB,EAAAA,UAIpDn1C,EAAAA,cAACukB,EAAAA,GAAa,CAACxQ,MAAM,OACjB/T,EAAAA,cAACqjB,EAAAA,GAAU,CAAClvC,MAAM,UAAS,UAC3B6rB,EAAAA,cAACqjB,EAAAA,GAAU,CAAClvC,MAAM,SAAQ,SAC1B6rB,EAAAA,cAACqjB,EAAAA,GAAU,CAAClvC,MAAM,QAAO,SAIzC,CCrCO,SAASihE,IACZ,OACIp1C,EAAAA,cAAA,OAAKS,UAAU,yBACXT,EAAAA,cAACylB,EAAAA,GAAI,CAAC2hB,WAAW,SAASiO,GAAG,MACzBr1C,EAAAA,cAACi0C,EAAY,CAACxzC,WAAWI,EAAAA,EAAAA,IAAI,CAAE8kB,GAAI,WACnC3lB,EAAAA,cAACk0C,EAAa,CAACzzC,WAAWI,EAAAA,EAAAA,IAAI,CAAE8kB,GAAI,WAEpC3lB,EAAAA,cAAC+0C,EAAW,OAGhB/0C,EAAAA,cAACq0C,EAAS,MAEVr0C,EAAAA,cAAA,OAAKS,UAAU,qBACXT,EAAAA,cAAC+wC,EAAAA,EAAe,OAIhC,CDoBCgE,EAAA/uB,aAAA,GCpBAovB,EAAApvB,aAAA,kBCvBD,MAUMsvB,EAA6B,CAC/B,CAAE7S,MAAO,QAAS3iC,IAVlB,oHAWA,CAAE2iC,MAAO,OAAQ3iC,IATjB,qHAgBG,SAASy1C,EAAe9yC,GAAuC,IAAtC,UAAEhC,GAAiCgC,EAC/D,OACIzC,EAAAA,cAAAA,EAAAA,SAAA,KACKs1C,EAAOp9D,KAAIosB,IAAqB,IAApB,MAAEm+B,EAAK,IAAE3iC,GAAKwE,EACvB,MAAMrG,GAAU2C,EAAAA,EAAAA,IAAG,mBAAoBH,EAAWgiC,GAElD,OACIziC,EAAAA,cAACD,EAAAA,GAAK,CACFztB,IAAKwtB,EACLW,UAAWxC,EACX6B,IAAKA,EACL01C,IAAI,mBACJ7zC,MAAM,MACNC,OAAO,MACT,IAKtB,CC5BO,SAAS6zC,IACZ,MAAOC,EAAgBC,GAAqB31C,EAAAA,UAAe,GAsB3D,IAAI41C,EARJ51C,EAAAA,WAAgB,KAPZhF,SAASE,KAAK8K,MAAMwW,SAQhBk5B,EAR2B,SAIA,EAQ/B,GACD,CAACA,IAGJ,IAAIG,EAAWC,EAAAA,IAOf,OALIJ,IACAE,EAAa51C,EAAAA,cAACo1C,EAAU,MACxBS,EAAW3C,EAAAA,KAIXlzC,EAAAA,cAAA,UAAQS,UAAU,cACdT,EAAAA,cAAA,OAAKS,UAAU,wBACXT,EAAAA,cAAA,OAAKS,UAAU,sBACXT,EAAAA,cAAA,OAAKS,UAAU,kBACXT,EAAAA,cAACwmB,EAAAA,GAAI,CAACY,GAAG,IAAI,aAAW,QACpBpnB,EAAAA,cAACu1C,EAAe,QAIxBv1C,EAAAA,cAAA,OAAKS,UAAU,oBACXT,EAAAA,cAACq0C,EAAS,OAGdr0C,EAAAA,cAAA,OAAKS,UAAU,qBACXT,EAAAA,cAAC+0C,EAAW,MACZ/0C,EAAAA,cAACi0C,EAAY,MACbj0C,EAAAA,cAACk0C,EAAa,OAGlBl0C,EAAAA,cAAA,OAAKS,UAAU,yBACXT,EAAAA,cAACgnC,EAAAA,GAAM,CACH9gB,UAAU,gBACVC,KAAK,KACL,aAAW,kBACXrU,QArDEikC,KACtBJ,GAAmB57C,IAAUA,GAAK,GAsDdiG,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMoyB,EAAU1vB,KAAK,WAM5CyvB,EAGb,CDvCCL,EAAAvvB,aAAA,GAEDuvB,EAAgB7uC,YAAc,kBCqC7B+uC,EAAAzvB,aAAA,iDCjFM,MAAMgwB,EAAmB7hE,IAC5B,MAAM+rB,EAAMF,EAAAA,SAOZ,OALAA,EAAAA,WAAgB,KACZE,EAAI8H,QAAU7zB,CAAK,GACpB,CAACA,IAGG+rB,EAAI8H,OAAO,ECTTiuC,EAAeA,KAyCjB,CAAEC,YAxCWl2C,EAAAA,aAAmBm2C,GACjB,IAAIr0C,gBAAgBpO,OAAO0iD,SAAS/tD,QACrCwL,IAAIsiD,IACtB,IAqCmBE,aAnCDr2C,EAAAA,aAChBvpB,IAEG,MAKM8qB,EAAY,IALKtsB,OAAOmsB,YAC1B,IAAIU,gBAAgBpO,OAAO0iD,SAAS/tD,YAMjC5R,GAID6/D,EAAiBrhE,OAAOggB,QAAQsM,GACjChsB,QAAQghE,GAAW/vD,QAAQ+vD,EAAO,MAClCphE,QACG,CAACw7B,EAAIlO,KAAA,IAAGnwB,EAAK6B,GAAMsuB,EAAA,MAAM,IAAKkO,EAAM,CAACr+B,GAAM6B,EAAO,GAClD,CAAC,GAGT,IAAIqiE,EAAS9iD,OAAO0iD,SAASxuB,KAAKhoC,MAAM,KAAK,GAEzC3K,OAAOC,KAAKohE,GAAgB1lE,OAAS,IACrC4lE,EAAU,GAAEA,KAAU,IAAI10C,gBACtBw0C,GACFv2D,cAIN2T,OAAO+iD,QAAQC,aAAa,GAAI,GAAIF,EAAO,GAE/C,MClCD,SAASG,IACd,IAAK,IAAIC,EAAO/lE,UAAUD,OAAQimE,EAAU,IAAI3lE,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFD,EAAQC,GAAQjmE,UAAUimE,GAE5B,IAAIxF,EAAQuF,EAAQ3+D,KAAI,SAAU6+D,GAChC,OAVEj+D,GADkC2pB,EAWLs0C,GAVjBj+D,KACdk+D,EAAiBv0C,EAAKw0C,UAEjB,CAAC,qDAAsDn+D,EAAM,YADnC,IAAnBk+D,GAAoCA,EACsC,aAAe,IAAIlmD,KAAK,IAJ3G,IAAiC2R,EAClC3pB,EACFk+D,CAUF,IAAGlmD,KAAK,MACR,OAAO,SAAU6F,GACf,MAAO,CAACA,EAAS,sBAAsBpiB,OAAO+8D,IAAQ/7D,OAAOiR,SAASsK,KAAK,OAC7E,CACF,CChBO,SAASomD,IAAQ,CCCjB,SAASC,EAAeC,EAAWC,GACxC,QAAkB/nE,IAAd8nE,GAAgD,mBAAdA,EACpC,MAAM,IAAItmE,MAAM,mDAAmDyD,QCHzCgc,EDG8D6mD,ECFnFniE,OAAOpF,UAAUkQ,SAAS9O,KAAKsf,GAAQpf,MAAM,GAAI,IDE8C,UAAUoD,OAAO8iE,ICHlH,IAAuB9mD,CDK9B,CELA,SAASm5B,EAAQj6B,GAAkC,OAAOi6B,EAAU,mBAAqBx2B,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAGi6B,EAAQj6B,EAAM,CAC/U,SAAS6nD,EAAQ/mD,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAASwiE,EAActoD,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI6mE,EAAQriE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAOywD,GAAgB3zC,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAWspD,EAAQriE,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS2zC,GAAgBtzC,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnBluB,EAAQiuB,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjBluB,EAAQtiC,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnVI,CAAavoE,EAAK,UAAW,MAAwB,WAAjBk6C,EAAQp3C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E0lE,CAAe1lE,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAI3O,IAAIwoD,GAAYtB,EAAoC,CAClD79D,KAAM,aACNm+D,WAAW,IAETiB,GAAmB,SAA0Br+D,EAAOs+D,GACtD,OAAOA,EAAKt+D,EACd,EAgFA,GAxEuB,SAA0Bu+D,GAC/C,IAAIC,EAAYxnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EAEpF,OADAC,EAAeiB,EAAUH,MAClB,SAAUK,GACf,IAGIC,EACAC,EAHFC,GADSH,GAAgB,CAAC,GACJI,UACtBA,OAA+B,IAAnBD,EAA4BP,GAAmBO,EAG7D,MAAO,CACLE,OAAQ,gBACRC,KAAM,SAAcC,GAClB,IAAIC,EAAwBD,EAAYC,sBACxCV,EAASV,EAAcA,EAAc,CAAC,EAAGvoE,KAAK4pE,qBAAqBF,IAAe,CAAC,EAAG,CACpFC,sBAAuBA,KACrB,EACN,EACAlmB,OAAQ,SAAgBomB,GACtB,IAAIF,EAAwBE,EAAcF,sBAC1CV,EAASV,EAAcA,EAAc,CAAC,EAAGvoE,KAAK4pE,qBAAqBC,IAAiB,CAAC,EAAG,CACtFF,sBAAuBA,KACrB,EACN,EACAG,QAAS,SAAiB30C,GACxB,IAAIpkB,EAAQokB,EAAMpkB,MAElB,OADAm4D,IACOn4D,EAAMxB,kBAAkB,aAASpP,EAC1C,EACA4pE,eAAgB,SAAwBC,EAAaH,GACnD,OAAOtB,EAAcA,EAAc,CAAC,EAAGyB,GAAc,CAAC,EAAG,CACvDC,UAAWjqE,KAAK4pE,qBAAqBC,IAEzC,EACAD,qBAAsB,SAA8Bv0C,GAClD,IAAI9X,EAAS8X,EAAM9X,OACjB2sD,EAAiB70C,EAAM60C,eACvBn5D,EAAQskB,EAAMtkB,MAWhB,OAVKq4D,IACHA,EAAU,SAAiB1+D,GACzB6+D,EAAU7+D,GAAO,SAAU8Q,GACzB,OAAO+B,EAAO/S,SAASgR,GAAGtC,QAC5B,GACF,EACAmwD,EAAS,WACP9rD,EAAO/S,SAAS,IAAI0O,QACtB,GAEK,CACLxO,MAAOqG,EAAMrG,OAAS,GACtBy/D,OAAQf,EACRpkD,MAAOqkD,EACPF,aAAcA,EACdiB,gBAAiBF,EAAeE,gBAEpC,EACAC,iBAAkB,SAA0BC,EAAS/0C,GACnD,IACI7qB,EADmB6qB,EAAMg1C,iBACA7/D,OAAS,GACtC,MAAc,KAAVA,GAAgB4/D,GAAWA,EAAQ5/D,QAAUA,EACxC4/D,EAEF/B,EAAcA,EAAc,CAAC,EAAG+B,GAAU,CAAC,EAAG,CACnD5/D,MAAOA,GAEX,EACA8/D,0BAA2B,SAAmCD,EAAkB/0C,GAC9E,IAAI80C,EAAU90C,EAAM80C,QACpB,OAAOC,EAAiBh7D,kBAAkB,QAAS+6D,EAAQ5/D,OAAS,GACtE,EAEJ,CACF,EC5FA,SAAS,GAAQ4V,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAY/U,IAAI8M,GAAMtnB,OAAOpF,UAAUwf,eACpB,SAASuqD,GAAOC,EAAKC,EAAKC,GAE/B,GAAIA,SAA0CA,EAAQF,EAAKC,GACzD,OAAO,EAIT,IAAIprD,EACAne,EACJ,GAAIspE,IAAQC,EAAK,OAAO,EACxB,GAAID,GAAOC,IAAQprD,EAAOmrD,EAAIxgE,eAAiBygE,EAAIzgE,YAAa,CAC9D,GAAIqV,IAASmH,KAAM,OAAOgkD,EAAIG,YAAcF,EAAIE,UAChD,GAAItrD,IAAS0mC,OAAQ,OAAOykB,EAAI95D,aAAe+5D,EAAI/5D,WACnD,GAAI2O,IAASxd,MAAO,CAClB,IAAKX,EAAMspE,EAAIjpE,UAAYkpE,EAAIlpE,OAC7B,KAAOL,KAASqpE,GAAOC,EAAItpE,GAAMupE,EAAIvpE,GAAMwpE,KAE7C,OAAgB,IAATxpE,CACT,CACA,IAAKme,GAAyB,WAAjB,GAAQmrD,GAAmB,CAGtC,IAAKnrD,KAFLne,EAAM,EAEOspE,EAAK,CAChB,GAAIt9C,GAAItrB,KAAK4oE,EAAKnrD,MAAWne,IAAQgsB,GAAItrB,KAAK6oE,EAAKprD,GAAO,OAAO,EACjE,KAAMA,KAAQorD,KAASF,GAAOC,EAAInrD,GAAOorD,EAAIprD,GAAOqrD,GAAU,OAAO,CACvE,CACA,OAAO9kE,OAAOC,KAAK4kE,GAAKlpE,SAAWL,CACrC,CACF,CAGA,OAAOspE,GAAQA,GAAOC,GAAQA,CAChC,gBC5CO,SAASG,GAAoB/5D,GAClC,IAAIg6D,EAAcC,EAAaC,EAC/B,OAAO,IAAI,iBAAkCl6D,EAAO,CAAC,CACnDrG,MAAwC,QAAhCqgE,EAAeh6D,EAAMrG,aAAoC,IAAjBqgE,EAA0BA,EAAe,GACzFlgE,KAAqC,QAA9BmgE,EAAcj6D,EAAMlG,YAAkC,IAAhBmgE,EAAyBA,EAAc,EACpF//D,YAA0D,QAA5CggE,EAAqBl6D,EAAM9F,mBAAgD,IAAvBggE,EAAgCA,EAAqB,GACvHC,KAAM,GACN1wD,OAAQ,EACR2wD,QAAS,EACT7jE,OAAQ,GACR8jE,kBAAkB,EAClBz2D,uBAAuB,EACvBZ,iBAAkB,EAClBnQ,MAAOmN,EAAMnN,QACX,CAEFynE,gBAAgB,GAEpB,CCnBA,SAAS,GAAQ/qD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAIpO,SAASgrD,GAAsBC,GACpC,IAAIhuD,EAASguD,EAAYC,YACrBz4D,EAEJw4D,EAAYE,cAEZX,GAAoBvtD,EAAOxM,OACvB26D,EAAgBH,EAAYI,mBAAmB5iE,KAAI,SAAU6iE,GAC/D,IAAIC,EAAkBD,EAAaE,UAAYP,EAAYQ,aAAeh5D,EAAU+3D,GAAoBc,EAAaruD,OAAOxM,OAC5H,OAAO,GAAc,GAAc,CAAC,EAAG66D,GAAe,CAAC,EAAG,CAExD74D,QAAS64D,EAAa74D,SAAW84D,GAErC,IACA,MAAO,CACL94D,QAASA,EACT24D,cAAeA,EAEnB,CCjBO,SAASM,GAAUC,EAAWzkD,GACnC,IAAIykD,EAIF,MAAM,IAAItqE,MAAM,mBAKpB,CCjBO,IAAIuqE,IAA4B,IAAAlJ,eAAc,MCE9C,SAASmJ,KACd,IAAItqE,GAAU,IAAAuqE,YAAWF,IAEzB,OADAF,GAAsB,OAAZnqE,GACHA,CACT,CCNO,IAAIwqE,IAAoC,IAAArJ,eAAc,MCEtD,SAASsJ,KACd,IAAIpzD,GAAS,IAAAkzD,YAAWC,IAExB,OADAL,GAAqB,OAAX9yD,GACHA,CACT,CCNO,IAAIqzD,IAA0C,IAAAvJ,eAAc,MCC5D,SAASwJ,KACd,OAAO,IAAAJ,YAAWG,GACpB,CCJA,SAASE,GAAeC,EAAKprE,GAAK,OAKlC,SAAyBorE,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAOA,CAAK,CAL3BC,CAAgBD,IAIzD,SAA+BA,EAAKprE,GAAK,IAAIy9C,EAAK,MAAQ2tB,EAAM,KAAO,oBAAsB3oD,QAAU2oD,EAAI3oD,OAAOC,WAAa0oD,EAAI,cAAe,GAAI,MAAQ3tB,EAAI,CAAE,IAAI6tB,EAAIC,EAAIC,EAAIC,EAAIC,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIJ,GAAM/tB,EAAKA,EAAGj9C,KAAK4qE,IAAMxoD,KAAM,IAAM5iB,EAAG,CAAE,GAAIwE,OAAOi5C,KAAQA,EAAI,OAAQkuB,GAAK,CAAI,MAAO,OAASA,GAAML,EAAKE,EAAGhrE,KAAKi9C,IAAK56B,QAAU6oD,EAAK1qE,KAAKsqE,EAAG5nE,OAAQgoE,EAAKvrE,SAAWH,GAAI2rE,GAAK,GAAK,CAAE,MAAOrrE,GAAOsrE,GAAK,EAAIL,EAAKjrE,CAAK,CAAE,QAAU,IAAM,IAAKqrE,GAAM,MAAQluB,EAAG36B,SAAW2oD,EAAKhuB,EAAG36B,SAAUte,OAAOinE,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIG,EAAI,MAAML,CAAI,CAAE,CAAE,OAAOG,CAAM,CAAE,CAJ1gBG,CAAsBT,EAAKprE,IAE5F,SAAqCqiB,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO0pD,GAAkB1pD,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAOwsE,GAAkB1pD,EAAGypD,EAAS,CAF7TE,CAA4BZ,EAAKprE,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvDwsE,EAAoB,CAG7J,SAASF,GAAkBX,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CAK3K,SAAS0tD,GAAexoE,GAC7B,IAGEyoE,EAAahB,IAHC,IAAAiB,WAAS,WACrB,OAAO1oE,CACT,IACuC,GACvC2oE,EAAcF,EAAW,GACzBG,EAAiBH,EAAW,GAI9B,OAHKhD,GAAOkD,EAAa3oE,IACvB4oE,EAAe5oE,GAEV2oE,CACT,CCZO,IAAIE,GAA8C,oBAAXtpD,OAAyB,EAAAupD,gBAAkB,EAAAC,UCPzF,SAAS,GAAQztD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI0tD,GAAY,CAAC,wBAAyB,gBACxCC,GAAa,CAAC,gBAChB,SAAS,GAAevB,EAAKprE,GAAK,OAKlC,SAAyBorE,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAOA,CAAK,CAL3B,CAAgBA,IAIzD,SAA+BA,EAAKprE,GAAK,IAAIy9C,EAAK,MAAQ2tB,EAAM,KAAO,oBAAsB3oD,QAAU2oD,EAAI3oD,OAAOC,WAAa0oD,EAAI,cAAe,GAAI,MAAQ3tB,EAAI,CAAE,IAAI6tB,EAAIC,EAAIC,EAAIC,EAAIC,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIJ,GAAM/tB,EAAKA,EAAGj9C,KAAK4qE,IAAMxoD,KAAM,IAAM5iB,EAAG,CAAE,GAAIwE,OAAOi5C,KAAQA,EAAI,OAAQkuB,GAAK,CAAI,MAAO,OAASA,GAAML,EAAKE,EAAGhrE,KAAKi9C,IAAK56B,QAAU6oD,EAAK1qE,KAAKsqE,EAAG5nE,OAAQgoE,EAAKvrE,SAAWH,GAAI2rE,GAAK,GAAK,CAAE,MAAOrrE,GAAOsrE,GAAK,EAAIL,EAAKjrE,CAAK,CAAE,QAAU,IAAM,IAAKqrE,GAAM,MAAQluB,EAAG36B,SAAW2oD,EAAKhuB,EAAG36B,SAAUte,OAAOinE,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIG,EAAI,MAAML,CAAI,CAAE,CAAE,OAAOG,CAAM,CAAE,CAJ1gB,CAAsBN,EAAKprE,IAE5F,SAAqCqiB,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAF7T,CAA4BV,EAAKprE,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD,EAAoB,CAG7J,SAAS,GAAkB2rE,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CAGlL,SAAS,GAAQsB,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS4tD,GAAyBrvD,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhNkuD,CAA8BtvD,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAUpe,SAASouD,GAAavG,GAC3B,IAAIh3C,EAAQpvB,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E4sE,EAA6B5sE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClG6sE,EAAgB/B,KAChBtzD,EAASozD,KACTkC,EAAcrC,KACdsC,EAAcjB,GAAe18C,GAC7B49C,EAAmClB,GAAec,GAClDK,GAAoB,IAAAC,SAAO,GAC3BC,GAAyB,IAAAD,QAAO,MAChChH,GAAS,IAAAkH,UAAQ,WA2CnB,OAAO,GAAc,GAAc,CAAC,EA1CjBhH,GAAU,SAAUiH,EAAgBC,GAKrD,GAAIA,EACFL,EAAkB91C,SAAU,OAc9B,GAAI81C,EAAkB91C,QAAS,CACDk2C,EAAepF,sBAC1BoF,EAAe5F,aADhC,IAEEa,EAAckE,GAAyBa,EAAgBf,IAMpDvD,GAAOT,EAAa6E,EAAuBh2C,SAAS,SAAU7xB,EAAGC,GACpE,OAAQD,aAA6B,EAASA,EAAEkD,eAAiB+kE,WAAahoE,aAA6B,EAASA,EAAEiD,eAAiB+kE,QACzI,MAEExyD,EAASutD,GACT6E,EAAuBh2C,QAAUmxC,EAErC,CACF,IAAG,WAGD2E,EAAkB91C,SAAU,CAC9B,GACuCq2C,CAAaT,IAAeC,EACrE,GAAG,CAAC5G,EAAW2G,EAAaC,IAuC1BjB,EAAa,IAtCC,IAAAC,WAAS,WACrB,GAAI9F,EAAOgC,qBAAsB,CAC/B,IAAIuF,EAEA5xD,EAASixD,EAAYhD,YACrBlB,EAAUkE,EAAYnE,iBAAiB,CAAC,GAAGmE,EAAYzC,cAC3DxuD,EAAOxM,OAAwE,QAA9Do+D,EAAwBvH,EAAO4C,iCAAiE,IAA1B2E,OAAmC,EAASA,EAAsBrtE,KAAK8lE,EAAQrqD,EAAOxM,MAAO,CAClLu5D,QAASA,MACJ/sD,EAAOxM,MACd,IAAIq+D,EAAwB9D,GAAsBkD,GAChDz7D,EAAUq8D,EAAsBr8D,QAChC24D,EAAgB0D,EAAsB1D,cAKpC2D,EAAwBzH,EAAOgC,qBAAqB,CACpDrsD,OAAQA,EACR1L,OAAQ28D,EACR7E,sBAAuBzwD,EACvBnG,QAASA,EACT24D,cAAeA,EACf36D,MAAOwM,EAAOxM,MACdi5D,YAAa9wD,EAAO8wD,YACpBsF,gBAAiBp2D,EAAOo2D,gBACxBC,UAAWf,EAAYe,UACvBrF,eAAgB,CACdE,gBAAmC,YAAlBlxD,EAAOsN,QAE1BA,OAAQtN,EAAOsN,OACfhlB,MAAO0X,EAAO1X,QAED6tE,EAAsBlG,aAEvC,OADgB+E,GAAyBmB,EAAuBpB,GAElE,CACA,MAAO,CAAC,CACV,IACuC,GACvCl9D,EAAQ08D,EAAW,GACnBhxD,EAAWgxD,EAAW,GAOxB,OC1HK,SAAmBn6C,GACxB,IAAIs0C,EAASt0C,EAAKs0C,OAChB4G,EAAcl7C,EAAKk7C,YACnB19C,EAAQwC,EAAKxC,MACb0+C,EAAYl8C,EAAKk8C,UACfC,GAAe,IAAAb,QAAO99C,IAC1B,IAAAi9C,YAAU,WACR0B,EAAa52C,QAAU/H,CACzB,GAAG,CAACA,IACJ,IAAI4+C,GAAgB,IAAAd,QAAOhH,IAC3B,IAAAmG,YAAU,WACR2B,EAAc72C,QAAU+uC,CAC1B,GAAG,CAACA,IACJ,IAAI+H,GAAkB,IAAAf,QAAO,MACzBgB,EAAuBJ,IAAchB,EAAYqB,aAAa5gD,SAAS24C,GACvE1uD,EAASozD,KAMbuB,IAA0B,WACxB,IAAIiC,EAAiBJ,EAAc72C,QACnC,SAASk3C,IACH72D,EAAO82D,uBACXxB,EAAYyB,cAAc,CAACH,GAC7B,CA+BA,OA5BgC,OAA5BH,EAAgB92C,QACb+2C,GACHpB,EAAY0B,WAAW,CAACtI,KAO1Bz8C,aAAawkD,EAAgB92C,SAQT4xC,GAAO35C,EAAO2+C,EAAa52C,WAO7Ck3C,IACAvB,EAAY0B,WAAW,CAACtI,MAGrB,WAGL+H,EAAgB92C,QAAU/N,WAAWilD,EACvC,CACF,GAAG,CAACvB,EAAa5G,EAAQgI,EAAsB12D,EAAQ4X,IACnD8+C,GACFpB,EAAY0B,WAAW,CAACtI,GAE5B,CDkDEuI,CAAU,CACRvI,OAAQA,EACR4G,YAAaA,EACb19C,MAAO29C,EACPe,UAAWn4D,QAAQk3D,KAEdx9D,CACT,CE7HO,SAASq/D,GAAat/C,EAAOw9C,GAClC,OAAOD,GAAa,GAAkBv9C,EAAOw9C,EAC/C,CCJO,SAAS+B,GAAiBC,GAC/B,OAAOC,KAAK9qD,mBAAmB5U,KAAKC,UAAUw/D,IAChD,CCFA,SAAS,GAAQhwD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAU/U,IAAIkwD,GAAgB,SAAuBl9C,GACzC,IAAI1vB,EAAQ0vB,EAAK1vB,MACf6sE,EAAan9C,EAAKm9C,WAElBpvE,GADaiyB,EAAKo9C,WACXp9C,EAAKjyB,MACZsoE,EAAwBr2C,EAAKq2C,sBAE/B,GAAoB,IAAhBtoE,EAAKI,QAAqC,WAArB,GAAQJ,EAAK,IACpC,MAAO,CAACA,EAAK,IAEf,IAAIsvE,EAAYtvE,EAAK,GACjB6pE,EAAO7pE,EAAK,GACZuvE,EAAYvvE,EAAK,GACrB,IAAK6pE,EAID,MAAO,GAGX,IAAmB,UAAdyF,GAAuC,eAAdA,KAAgCC,EAI1D,MAAO,GAGX,IAAIC,EAAY9uE,MAAMmF,QAAQgkE,GAAQA,EAAO,CAACA,GAC9C,GAAyB,IAArB2F,EAAUpvE,OACZ,MAAO,GAET,IAAIqvE,EAAUD,EAAU,GAAGE,UACvBC,EAxCN,SAAetE,GAGb,IAFA,IAAIuE,EAAYvvE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GAChFwvE,EAAS,GACJ5vE,EAAI,EAAGA,EAAIgkB,KAAKgsB,KAAKo7B,EAAIjrE,OAASwvE,GAAY3vE,IACrD4vE,EAAO5uE,KAAKoqE,EAAI1qE,MAAMV,EAAI2vE,GAAY3vE,EAAI,GAAK2vE,IAEjD,OAAOC,CACT,CAiCmBC,CAAMN,GACnBO,EAAmBJ,EAAWjoE,KAAI,SAAUsoE,GAC9C,OAAOA,EAAMtoE,KAAI,SAAUuoE,GACzB,OAAOA,EAAIC,QACb,GACF,IACIC,EAAmBR,EAAWjoE,KAAI,SAAUsoE,GAC9C,OAAOA,EAAMtoE,KAAI,SAAUuoE,GACzB,OAAOA,EAAIG,UACb,GACF,IACA,MAAkB,SAAdd,EACmC,SAAjChH,EAAsBnjD,OACjB,GAEFwqD,EAAWjoE,KAAI,SAAUsoE,EAAO/vE,GACrC,MAAO,CACLowE,eAAgB,kBAChBjB,WAAYA,EACZE,UAAWA,EACXL,QAAS,CACPM,UAAWA,GAAa,cACxBhtE,MAAOA,EACP+tE,UAAWP,EAAiB9vE,IAE9B4pE,KAAMmG,EAEV,IACuB,UAAdV,EACFK,EAAWjoE,KAAI,SAAUsoE,EAAO/vE,GACrC,MAAO,CACLowE,eAAgB,8BAChBjB,WAAYA,EACZE,UAAWA,EACXL,QAAS,CACPM,UAAWA,EACXhtE,MAAOA,EACPktE,QAASA,EACTa,UAAWP,EAAiB9vE,GAC5BswE,UAAWJ,EAAiBlwE,IAE9B4pE,KAAMmG,EAEV,IACuB,eAAdV,EACFK,EAAWjoE,KAAI,SAAUsoE,EAAO/vE,GACrC,MAAO,CACLowE,eAAgB,gCAChBjB,WAAYA,EACZE,UAAWA,EACXL,QAAS,CACPM,UAAWA,EACXhtE,MAAOA,EACPktE,QAASA,EACTa,UAAWP,EAAiB9vE,IAE9B4pE,KAAMmG,EAEV,IAIO,EAEX,ECpGA,IAAIQ,GAAe,CACjB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAIHC,GAAqB,WACrBC,GAAwB9rB,OAAO6rB,GAAmBjzD,QAkBtD,IAAImzD,GAAiB,CACnB,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,KAIPC,GAAmB,0BACnBC,GAAsBjsB,OAAOgsB,GAAiBpzD,QAM3C,SAAS,GAAS7Z,GACvB,OAAOA,GAASktE,GAAoB3uD,KAAKve,GAASA,EAAM+Z,QAAQkzD,IAAkB,SAAUE,GAC1F,OAAOH,GAAeG,EACxB,IAAKntE,CACP,CCtDA,SAAS,GAAQsb,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAsBxU,SAAS8xD,GAAcptE,GAC5B,IAXF,SAAsBA,GACpB,MAA0B,WAAnB,GAAQA,IAAiC,OAAVA,CACxC,CASOqtE,CAAartE,IAA4B,oBAjBhD,SAAgBA,GACd,OAAc,OAAVA,OACe7E,IAAV6E,EAAsB,qBAAuB,gBAE/Cc,OAAOpF,UAAUkQ,SAAS9O,KAAKkD,EACxC,CAY8BstE,CAAOttE,GACjC,OAAO,EAET,GAAqC,OAAjCc,OAAOysE,eAAevtE,GACxB,OAAO,EAGT,IADA,IAAIwtE,EAAQxtE,EAC4B,OAAjCc,OAAOysE,eAAeC,IAC3BA,EAAQ1sE,OAAOysE,eAAeC,GAEhC,OAAO1sE,OAAOysE,eAAevtE,KAAWwtE,CAC1C,CClCA,SAAS,GAAQlyD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAE/U,SAASu6B,KAAiS,OAApRA,GAAW/0C,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU46B,GAAS54C,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAQ0f,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAKpO,IAAImyD,GAAkB,CAC3BC,gBAAiB,oBACjBC,iBAAkB,sBAETC,GAAkB,CAC3BF,gBAAiB,SACjBC,iBAAkB,WAEpB,SAASE,GAAqB7tE,GAC5B,OFGK,SAAgBA,GACrB,OAAOA,GAAS+sE,GAAsBxuD,KAAKve,GAASA,EAAM+Z,QAAQ+yD,IAAoB,SAAUK,GAC9F,OAAON,GAAaM,EACtB,IAAKntE,CACP,CEPS,CAAOA,GAAO+Z,QAAQ,IAAIknC,OAAOwsB,GAAgBC,gBAAiB,KAAME,GAAgBF,iBAAiB3zD,QAAQ,IAAIknC,OAAOwsB,GAAgBE,iBAAkB,KAAMC,GAAgBD,iBAC7L,CACA,SAASG,GAAgBtK,GACvB,OAAI4J,GAAc5J,IAAiC,iBAAhBA,EAAMxjE,MAChCc,OAAOC,KAAKyiE,GAAOxiE,QAAO,SAAU2J,EAAKxM,GAC9C,OAAO,GAAc,GAAc,CAAC,EAAGwM,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGxM,EAAK2vE,GAAgBtK,EAAMrlE,KAClG,GAAG,CAAC,GAEFpB,MAAMmF,QAAQshE,GACTA,EAAMz/D,IAAI+pE,IAEZ,GAAc,GAAc,CAAC,EAAGtK,GAAQ,CAAC,EAAG,CACjDxjE,MAAO6tE,GAAqBrK,EAAMxjE,QAEtC,CACO,SAAS+tE,GAAW7H,GAgBzB,YAfuB/qE,IAAnB+qE,EAAK8H,aAGP9H,EAAOA,EAAKniE,KAAI,SAAUuqB,GACxB,IAAIg+C,EAAMz2B,GAAS,CAAC,GAtC1B,SAAmCv6B,GAAO,GAAW,MAAPA,EAAa,MAAM,IAAIvf,UAAU,sBAAwBuf,EAAM,CAsC/E2yD,CAA0B3/C,GAAOA,IAOzD,OANIg+C,EAAI4B,mBACN5B,EAAI4B,iBAAmBJ,GAAgBxB,EAAI4B,mBAEzC5B,EAAI6B,iBACN7B,EAAI6B,eAAiBL,GAAgBxB,EAAI6B,iBAEpC7B,CACT,KACK0B,WAAY,GAEZ9H,CACT,CCnDA,SAAS,GAAQ5qD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,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,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,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,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAI3O,IAAI,GAAYknD,EAAoC,CAClD79D,KAAM,OACNm+D,WAAW,IAgGb,GA9FkB,SAAqBmB,GACrC,IAAIC,EAAYxnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EAEpF,OADAC,EAAeiB,EAAU,MAClB,SAAUE,GACf,IAOIiK,EACAC,EARA//C,EAAO61C,GAAgB,CAAC,EAC1BmK,EAAkBhgD,EAAKigD,WACvBA,OAAiC,IAApBD,GAAoCA,EACjDE,EAAsBlgD,EAAKmgD,eAC3BA,OAAyC,IAAxBD,EAAiC,SAAUz5C,GAC1D,OAAOA,CACT,EAAIy5C,EAGN,MAAO,CACLhK,OAAQ,WACRC,KAAM,SAAcC,GAClBT,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBF,IAAe,CAAC,EAAG,CACpFC,sBAAuBD,EAAYC,yBACjC,EACN,EACAlmB,OAAQ,SAAgBomB,GACtB,IAAIG,EAAchqE,KAAK4pE,qBAAqBC,GAC5CZ,EAAS,GAAc,GAAc,CAAC,EAAGe,GAAc,CAAC,EAAG,CACzDL,sBAAuBE,EAAcF,yBACnC,GACJK,EAAYoJ,UAAU,OAAQpJ,EAAYkB,KAC5C,EACAnB,eAAgB,SAAwBC,EAAaH,GACnD,OAAO,GAAc,GAAc,CAAC,EAAGG,GAAc,CAAC,EAAG,CACvDkB,KAAMlrE,KAAK4pE,qBAAqBC,IAEpC,EACAD,qBAAsB,SAA8Bz0C,GAClD,IAAIpiB,EAAUoiB,EAAMpiB,QAClBwK,EAAS4X,EAAM5X,OACfosD,EAAwBx0C,EAAMw0C,sBAehC,GAdKyJ,IACHA,EN2DH,SAAgCj+C,GACrC,IAAIw0C,EAAwBx0C,EAAMw0C,sBAChC/lE,EAAQuxB,EAAMvxB,MACd6sE,EAAat7C,EAAMs7C,WAgBrB,OAfuB,WACrB,IAAK,IAAIhJ,EAAO/lE,UAAUD,OAAQJ,EAAO,IAAIU,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EtmE,EAAKsmE,GAAQjmE,UAAUimE,GAEV6I,GAAc,CAC3BC,WAAYA,EACZ7sE,MAAOA,EACP8sE,WAAY,YACZrvE,KAAMA,EACNsoE,sBAAuBA,IAEhBvhE,SAAQ,SAAUkoE,GACzB,OAAO3G,EAAsB+J,oBAAoBpD,EACnD,GACF,CAEF,CM/EsBqD,CAAuB,CACjChK,sBAAuBA,EACvB/lE,MAAO2Z,EAAOP,WACdyzD,WAAYzwE,KAAKwpE,UAGhB6J,IACHA,ENyEH,SAAgCh+C,GACrC,IAAIzxB,EAAQyxB,EAAMzxB,MAChB6sE,EAAap7C,EAAMo7C,WACnB9G,EAAwBt0C,EAAMs0C,sBAchC,OAbuB,WACrB,IAAK,IAAIiK,EAAQlyE,UAAUD,OAAQJ,EAAO,IAAIU,MAAM6xE,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxyE,EAAKwyE,GAASnyE,UAAUmyE,GAE1B,IAAIC,EAAWtD,GAAc,CAC3BC,WAAYA,EACZ7sE,MAAOA,EACP8sE,WAAY,YACZrvE,KAAMA,EACNsoE,sBAAuBA,IAEzB,OAAOmK,EAASryE,OAAS,uBAAuB2D,OAAOirE,GAAiByD,IAAa,EACvF,CAEF,CM3FsBC,CAAuB,CACjCnwE,MAAO2Z,EAAOP,WACdyzD,WAAYzwE,KAAKwpE,OACjBG,sBAAuBA,MAGtB52D,EACH,MAAO,CACLm4D,KAAM,GACNn4D,aAAS5S,EACTizE,UAAWA,EACXC,UAAWA,EACXlK,aAAcA,GAGdoK,GAAcxgE,EAAQm4D,KAAKzpE,OAAS,IACtCsR,EAAQm4D,KAAO6H,GAAWhgE,EAAQm4D,OAEpC,IFnE4BA,EAAMrgE,EAAMI,EEoEpC+oE,EDpEL,SAAoB9I,EAAM4F,GAC/B,OAAKA,EAGE5F,EAAKniE,KAAI,SAAUuoE,GACxB,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAM,CAAC,EAAG,CAC/CP,UAAWD,GAEf,IANS5F,CAOX,CC2DiD+I,EFpEb/I,EEmEuBn4D,EAAQm4D,KFnEzBrgE,EEmE+BkI,EAAQlI,KFnEjCI,EEmEuC8H,EAAQ9H,YFlEtFigE,EAAKniE,KAAI,SAAUuoE,EAAK/9D,GAC7B,OAAO,GAAc,GAAc,CAAC,EAAG+9D,GAAM,CAAC,EAAG,CAC/CG,WAAYxmE,EAAcJ,EAAO0I,EAAM,GAE3C,KE+DoFR,EAAQ+9D,SAItF,MAAO,CACL5F,KAJoBuI,EAAeO,EAAoC,CACvEjhE,QAASA,IAITA,QAASA,EACTqgE,UAAWA,EACXC,UAAWA,EACXlK,aAAcA,EAElB,EACAW,QAAS,SAAiBz0C,GACxB,IAAItkB,EAAQskB,EAAMtkB,MAElB,OADAm4D,IACKqK,EAGExiE,EAAM1G,mBAAmBvE,OAAOC,KAAK0sE,IAAiBzsE,QAAO,SAAU2J,EAAKxM,GACjF,OAAO,GAAc,GAAc,CAAC,EAAGwM,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGxM,OAAKhD,GAC5E,GAAG,CAAC,IAJK4Q,CAKX,EACAy5D,0BAA2B,SAAmCz5D,GAC5D,OAAKwiE,EAGExiE,EAAM1G,mBAAmBooE,IAFvB1hE,CAGX,EAEJ,CACF,kBCxGO,SAASmjE,GAAevK,EAAuB93D,EAAQy4D,GAC5D,IAAI/sD,EAAS1L,EAAO25D,YACpB,MAAO,CACLlB,QAASA,EACT/sD,OAAQA,EACR1L,OAAQA,EACR83D,sBAAuBA,EACvB54D,MAAOwM,EAAOxM,MACdi5D,YAAaL,EAAsBK,YACnCsF,gBAAiB3F,EAAsB2F,gBACvCC,UAAW19D,EAAO09D,UAClB7D,cAAe,GACfxB,eAAgB,CACdE,gBAAkD,YAAjCT,EAAsBnjD,QAEzCA,OAAQmjD,EAAsBnjD,OAC9BhlB,MAAOmoE,EAAsBnoE,MAEjC,CACO,SAAS2yE,GAAiBxK,EAAuB93D,GACtD,IAAIkB,EAAUlB,EAAO45D,aACrB,MAAO,CACLluD,OAAQ1L,EAAO25D,YACf35D,OAAQA,EACR83D,sBAAuBA,EACvB52D,QAASA,EACT24D,cAAe75D,EAAO85D,mBACtB56D,MAAOgC,EAAQyC,OACfw0D,YAAaL,EAAsBK,YACnCsF,gBAAiB3F,EAAsB2F,gBACvCC,UAAW19D,EAAO09D,UAClBrF,eAAgB,CACdE,gBAAkD,YAAjCT,EAAsBnjD,QAEzCA,OAAQmjD,EAAsBnjD,OAC9BhlB,MAAOmoE,EAAsBnoE,MAEjC,CChCO,SAAS4yE,GAAmB53B,GACjC,IAKE63B,GALS3yE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAC3E2yE,SAAU,WAEV,IAEcA,SAElB,MAAsB,oBAAX9vD,OACF8vD,IAIF73B,EAAS,CACdj4B,OAAQA,QAEZ,CCpBA,SAAS+vD,GAAe5M,EAASiC,EAAuB2G,GACtD,IAAI5G,EAAcwK,GAAevK,EAAuBA,EAAsB4K,UAAW5K,EAAsB6K,iBAC/G9M,EAAQt/D,SAAQ,SAAUw/D,GACxB,IAAIuB,EAAe,CAAC,EACpB,GAAIvB,EAAOgC,qBAAsB,CAC/B,IAAII,EAAcpC,EAAOgC,qBAAqBF,GAC1CM,GAAeA,EAAYb,eAE7BA,EAAea,EAAYb,aAE/B,CAGA,IAAI7hE,EAASxB,OAAOC,KAAKojE,GAAc/iE,QAAO,SAAUjD,GACtD,YAA6BhD,IAAtBgpE,EAAahmE,EACtB,IACAmtE,EAAQ5I,QAAQplE,KAAK,CACnBrB,KAAM2mE,EAAO4B,OACbiH,WAAY7I,EAAO6M,aACnBntE,OAAQA,IAEY,cAAlBsgE,EAAO4B,QACT8K,GAAe1M,EAAOiI,aAAclG,EAAuB2G,EAE/D,GACF,CAoBO,SAASoE,KACd,OAAO,SAAUv/C,GACf,IAAIw0C,EAAwBx0C,EAAMw0C,sBAC9B2G,EAAU,CACZ5I,QAAS,IAEPiN,EAAmB9oD,SAAS8K,cAAc,QAC1Ci+C,EAAU/oD,SAASszB,cAAc,QAErC,OADAw1B,EAAiBhrE,KAAO,wBACjB,CACLkrE,cAAe,WAA0B,EACzCC,UAAW,WAEThqD,YAAW,WACT,IAAInnB,EAASgmE,EAAsBhmE,OACnC2sE,EAAQyE,GAAKpxE,EAAOimB,aAAejmB,EAAOimB,YAAYtC,UAAY3jB,EAAOimB,YAAYtC,UAAUtiB,MAAQrB,EAAOqxE,IAC9GV,GAAe3K,EAAsB4K,UAAU1E,aAAclG,EAAuB2G,GACpFqE,EAAiB76D,QAAUjJ,KAAKC,UAAUw/D,GAC1CsE,EAAQn1B,YAAYk1B,EACtB,GAAG,EACL,EACAM,QAAS,WAAoB,EAC7BC,YAAa,WACXP,EAAiBl+C,QACnB,EAEJ,CACF,iBCzEA,SAAS,GAAQnW,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAE/U,SAAS60D,GAAkBl1D,EAAQ6Q,GAAS,IAAK,IAAIxvB,EAAI,EAAGA,EAAIwvB,EAAMrvB,OAAQH,IAAK,CAAE,IAAIm5C,EAAa3pB,EAAMxvB,GAAIm5C,EAAW/6B,WAAa+6B,EAAW/6B,aAAc,EAAO+6B,EAAW76B,cAAe,EAAU,UAAW66B,IAAYA,EAAW96B,UAAW,GAAM7Z,OAAO0d,eAAevD,EAAQ,GAAew6B,EAAWt3C,KAAMs3C,EAAa,CAAE,CAE5U,SAAS,GAAgBn6B,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,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAI5H,IAAIiyE,GAAiB,SAAwBp/B,GACvCA,IAGFzxB,OAAOsH,SAASmqB,MAAQA,EAE5B,EACIq/B,GAA8B,WAKhC,SAASA,EAAe/hD,GACtB,IAAIgiD,EAAQt1E,KACRu1E,EAAcjiD,EAAKiiD,YACrBC,EAAkBliD,EAAKmiD,WACvBA,OAAiC,IAApBD,EAA6B,IAAMA,EAChDjG,EAAYj8C,EAAKi8C,UACjBmG,EAAWpiD,EAAKoiD,SAChBC,EAAcriD,EAAKqiD,YACnBC,EAAQtiD,EAAKsiD,MACb9L,EAAUx2C,EAAKw2C,QACfxnE,EAAOgxB,EAAKhxB,MA9BlB,SAAyBgH,EAAUoxC,GAAe,KAAMpxC,aAAoBoxC,GAAgB,MAAM,IAAI35C,UAAU,oCAAwC,CA+BpJ80E,CAAgB71E,KAAMq1E,GACtB,GAAgBr1E,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,cAAc,GACpC,GAAgBA,KAAM,cAAc,GACpC,GAAgBA,KAAM,4BAA6B,GACnD,GAAgBA,KAAM,cAAU,GAChC,GAAgBA,KAAM,gBAAY,GAClC,GAAgBA,KAAM,aAAS,GAC/BA,KAAKu1E,YAAcA,EACnBv1E,KAAK81E,gBAAa31E,EAClBH,KAAKy1E,WAAaA,EAClBz1E,KAAK+1E,WAAaxG,EAClBvvE,KAAK01E,SAAWA,EAChB11E,KAAK21E,YAAcA,EACnB31E,KAAKg2E,OAASJ,EACd51E,KAAKi2E,SAAWnM,EAChB9pE,KAAKk2E,MAAQ5zE,EACb8xE,IAAmB,SAAUj/C,GAC3B,IAAI5Q,EAAS4Q,EAAM5Q,OACfyxB,EAAQs/B,EAAMC,aAAeD,EAAMC,YAAYD,EAAM5rD,QACzD0rD,GAAep/B,GACfs/B,EAAMa,0BAA4B5xD,EAAO+iD,QAAQ7lE,MACnD,GACF,CAzDF,IAAsBi5C,EAAaC,EAAYC,EAuM7C,OAvMoBF,EA8DP26B,EA9DoB16B,EA8DJ,CAAC,CAC5Bx3C,IAAK,OACL6B,MAAO,WACL,OAAOhF,KAAK01E,SAAS,CACnBU,SAAU,GACVnP,SAAUjnE,KAAK21E,eAEnB,GAKC,CACDxyE,IAAK,QACL6B,MAAO,SAAeqxE,GACpB,IAAIhzB,EAASrjD,KACbo0E,IAAmB,SAAU/+C,GAC3B,IAAI9Q,EAAS8Q,EAAM9Q,OACfsC,EAAMw8B,EAAOksB,UAAU8G,GACvBrgC,EAAQqN,EAAOkyB,aAAelyB,EAAOkyB,YAAYc,GACjDhzB,EAAOyyB,YACT3qD,aAAak4B,EAAOyyB,YAEtBzyB,EAAOyyB,WAAahrD,YAAW,WAC7BsqD,GAAep/B,GACXqN,EAAOizB,YAAYzvD,KACjBw8B,EAAO6yB,MACT7yB,EAAO6yB,MAAMrvD,GAEbtC,EAAO+iD,QAAQiP,UAAUF,EAAYrgC,GAAS,GAAInvB,GAEpDw8B,EAAO8yB,0BAA4B5xD,EAAO+iD,QAAQ7lE,QAEpD4hD,EAAOmzB,YAAa,EACpBnzB,EAAOyyB,gBAAa31E,CACtB,GAAGkjD,EAAOoyB,WACZ,GACF,GAMC,CACDtyE,IAAK,WACL6B,MAAO,SAAkBw3C,GACvB,IAAIi6B,EAASz2E,KACTA,KAAKg2E,QACPh2E,KAAKg2E,QAAO,WACVx5B,EAASi6B,EAAO/sD,OAClB,IAEF1pB,KAAK02E,YAAc,WACbD,EAAOX,aACT3qD,aAAasrD,EAAOX,YACpBW,EAAOX,gBAAa31E,GAEtBs2E,EAAOD,YAAa,EAIpBh6B,EAASi6B,EAAO/sD,OAClB,EACA0qD,IAAmB,SAAU7+C,GACdA,EAAMhR,OACZ4U,iBAAiB,WAAYs9C,EAAOC,YAC7C,GACF,GASC,CACDvzE,IAAK,YACL6B,MAAO,SAAmBqxE,GACxB,OAAOr2E,KAAK+1E,WAAW,CACrBK,SAAU,GACVC,WAAYA,EACZpP,SAAUjnE,KAAK21E,eAEnB,GAKC,CACDxyE,IAAK,UACL6B,MAAO,WACL,IAAI2xE,EAAS32E,KACTA,KAAKi2E,UACPj2E,KAAKi2E,WAEPj2E,KAAK42E,YAAa,EAClBxC,IAAmB,SAAU5+C,GAC3B,IAAIjR,EAASiR,EAAMjR,OACfoyD,EAAOD,aACTnyD,EAAO6U,oBAAoB,WAAYu9C,EAAOD,YAElD,IACI12E,KAAK81E,YACP3qD,aAAanrB,KAAK81E,YAEpB91E,KAAK8pB,MAAM,CAAC,EACd,GACC,CACD3mB,IAAK,QACL6B,MAAO,WACLhF,KAAK42E,YAAa,CACpB,GACC,CACDzzE,IAAK,cACL6B,MAAO,SAAqB6hB,GAC1B,IAAIgwD,EAAS72E,KACb,OAAOo0E,IAAmB,SAAUz+C,GAClC,IAAIpR,EAASoR,EAAMpR,OAMfuyD,IAAgCD,EAAOD,YAAcC,EAAOV,4BAA8B5xD,EAAO+iD,QAAQ7lE,QAC7G,OAGGo1E,EAAOL,YAERM,GAEAjwD,IAAQtC,EAAO0iD,SAASxuB,IAE5B,GACF,IArM8DkC,GAAYw6B,GAAkBz6B,EAAYh6C,UAAWi6C,GAAiBC,GAAau6B,GAAkBz6B,EAAaE,GAAc90C,OAAO0d,eAAek3B,EAAa,YAAa,CAAE/6B,UAAU,IAuMrP01D,CACT,CA3LkC,GChBlC,SAAS,GAAQ/0D,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,aACjB,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAyBzB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAE3e,SAAS82D,GAA8BzM,GACrBA,EAAQ0M,UAExB,OADmB,GAAyB1M,EAAS,GAEvD,CCbA,SAAS2M,GAAY32D,GACnB,OAAOA,IAAQxa,OAAOwa,EACxB,CACO,SAAS42D,GAAQv8C,EAAOw8C,GAC7B,GAAIx8C,IAAUw8C,EACZ,OAAO,EAET,GAAIF,GAAYt8C,IAAUs8C,GAAYE,IAA4B,mBAAVx8C,GAA0C,mBAAXw8C,EACrF,OAAOx8C,IAAUw8C,EAEnB,GAAIrxE,OAAOC,KAAK40B,GAAOl5B,SAAWqE,OAAOC,KAAKoxE,GAAQ11E,OACpD,OAAO,EAKT,IAAK,IAAIs9C,EAAK,EAAGq4B,EAAetxE,OAAOC,KAAK40B,GAAQokB,EAAKq4B,EAAa31E,OAAQs9C,IAAM,CAClF,IAAI57C,EAAMi0E,EAAar4B,GACvB,KAAM57C,KAAOg0E,GACX,OAAO,EAET,IAAKD,GAAQv8C,EAAMx3B,GAAMg0E,EAAOh0E,IAC9B,OAAO,CAEX,CACA,OAAO,CACT,CC1BA,SAAS,GAAQmd,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAMpO,IAAI+2D,GAAyB,WAClC,IAAIvmD,EAAQpvB,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E41E,EAAgBxmD,EAAMymD,OACxBA,OAA2B,IAAlBD,EHgME,WACb,IAAIE,EAAQ91E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E+1E,EAAkBD,EAAMjI,UACxBA,OAAgC,IAApBkI,EAA6B,SAAUC,GACjD,IAAItB,EAAWsB,EAAMtB,SACnBC,EAAaqB,EAAMrB,WACnBpP,EAAWyQ,EAAMzQ,SACfrgD,EAAWqgD,EAASrgD,SACtB+wD,EAAW1Q,EAAS0Q,SACpBC,EAAiB3Q,EAAS4Q,KAC1BA,OAA0B,IAAnBD,EAA4B,GAAKA,EACxCvd,EAAW4M,EAAS5M,SACpByd,EAAO7Q,EAAS6Q,KACdC,EAAc3B,EAAStlE,UAAUulE,GACjC2B,EAA0B,KAATH,EAAc,GAAK,IAAIzyE,OAAOyyE,GAGnD,OAAKE,EAGE,GAAG3yE,OAAOwhB,EAAU,MAAMxhB,OAAOuyE,GAAUvyE,OAAO4yE,GAAgB5yE,OAAOi1D,EAAU,KAAKj1D,OAAO2yE,GAAa3yE,OAAO0yE,GAFjH,GAAG1yE,OAAOwhB,EAAU,MAAMxhB,OAAOuyE,GAAUvyE,OAAO4yE,GAAgB5yE,OAAOi1D,GAAUj1D,OAAO0yE,EAGrG,EAAIL,EACJQ,EAAiBT,EAAM9B,SACvBA,OAA8B,IAAnBuC,EAA4B,SAAUC,GAC/C,IAAI9B,EAAW8B,EAAM9B,SACnBnP,EAAWiR,EAAMjR,SAWnB,OAAOmP,EAAS5xD,MAAMyiD,EAAS/tD,OAAOlX,MAAM,GAAI,CAC9Cm2E,WAAY,IAEhB,EAAIF,EACJG,EAAmBZ,EAAM/B,WACzBA,OAAkC,IAArB2C,EAA8B,IAAMA,EACjD7C,EAAciC,EAAMjC,YACpB8C,EAAoBb,EAAM7B,YAC1BA,OAAoC,IAAtB0C,EAA+B,WAC3C,OAAOjE,IAAmB,SAAUkE,GAElC,OADaA,EAAO/zD,OACN0iD,QAChB,GAAG,CACDoN,SAAU,WACR,MAAM,IAAI1yE,MAAM,2GAClB,GAEJ,EAAI02E,EACJzC,EAAQ4B,EAAM5B,MACd9L,EAAU0N,EAAM1N,QAChBxnE,EAAOk1E,EAAMl1E,KACf,OAAO,IAAI+yE,GAAe,CACxB9F,UAAWA,EACXmG,SAAUA,EACVD,WAAYA,EACZF,YAAaA,EACbI,YAAaA,EACbC,MAAOA,EACP9L,QAASA,EACTxnE,KAAMA,GAEV,CGnQwCi2E,GAAkBjB,EACtDkB,EAAsB1nD,EAAM2nD,aAC5BA,OAAuC,IAAxBD,EFKV,CACLE,aAAc,SAAsBpO,GAClC,OAAOxkE,OAAOC,KAAKukE,GAAStkE,QAAO,SAAU+K,EAAO+6D,GAClD,OAAO,GAAc,GAAc,CAAC,EAAG/6D,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAG+6D,EAASiL,GAA8BzM,EAAQwB,KACxH,GAAG,CAAC,EACN,EACA6M,aAAc,WACZ,IAAItC,EAAa30E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF,OAAOoE,OAAOC,KAAKswE,GAAYrwE,QAAO,SAAU+K,EAAO+6D,GACrD,OAAO,GAAc,GAAc,CAAC,EAAG/6D,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAG+6D,EAASiL,GAA8BV,EAAWvK,KAC3H,GAAG,CAAC,EACN,GEhBuE0M,EACzE,OAAO,SAAUllD,GACf,IAAIq2C,EAAwBr2C,EAAKq2C,sBAWjCA,EAAsBoM,WAVtB,SAA2B6C,GACzB,IAAItO,EAAUxkE,OAAOC,KAAK6yE,GAAW5yE,QAAO,SAAU2J,EAAKm8D,GACzD,OAAO,GAAc,GAAc,CAAC,EAAGn8D,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGm8D,EAAS8M,EAAU9M,IAC1F,GAAGnC,EAAsB4K,UAAUlK,iBAAiB,CAAC,IACjDwO,EAAQJ,EAAaC,aAAapO,GACtC,OAAOiN,EAAOhI,UAAUsJ,EAC1B,EAKA,IAAIC,OAAiB34E,EACjB44E,EAAiBpP,EAAsB6K,gBAC3C,MAAO,CACLK,cAAe,SAAuB1/C,GACpC,IAAIm1C,EAAUn1C,EAAMm1C,QAChB+L,EAAaoC,EAAaC,aAAapO,QACpBnqE,IAAnB24E,GAAiC5B,GAAQ4B,EAAgBzC,KAC3DkB,EAAOztD,MAAMusD,GACbyC,EAAiBzC,EAErB,EACAvB,UAAW,WACTnL,EAAsB6K,gBAAkB,GAAc,GAAc,CAAC,EAAGuE,GAAiBN,EAAaE,aAAapB,EAAO7tD,SAC1H6tD,EAAOyB,UAAS,SAAUH,GACxBlP,EAAsBsP,WAAWR,EAAaE,aAAaE,GAC7D,GACF,EACA5D,QAAS,WACP,IAAIiE,EAC+B,QAAlCA,EAAgB3B,EAAO3B,aAAqC,IAAlBsD,GAAoCA,EAAcp3E,KAAKy1E,EACpG,EACArC,YAAa,WACXqC,EAAOzN,SACT,EAEJ,CACF,ECtDO,SAASqP,GAAcvR,GAC5B,MAAyB,cAAlBA,EAAO4B,MAChB,CCFA,SAAS,GAAQlpD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,SAAU,oBAAqB,oBAAqB,iBAAkB,+BAAgC,qBAAsB,iBAAkB,qBAAsB,gCAAiC,gBACtN,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAyBzB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAI3e,IA0BIm5D,GAA0B,SAAiC5vC,EAAMQ,GACnE,OAAOR,EAAKn/B,mBAAmB,CAC7BzC,mBAAoBoiC,EAAMpiC,mBAAmB5B,QAAO,SAAU0B,EAAQ6B,GACpE,IAAI3F,EClCH,SAAmB+K,EAAOqQ,GAC/B,IAAKjd,MAAMmF,QAAQyH,GACjB,OAAQ,EAEV,IAAK,IAAIrN,EAAI,EAAGA,EAAIqN,EAAMlN,OAAQH,IAChC,GAAI0d,EAAWrQ,EAAMrN,IACnB,OAAOA,EAGX,OAAQ,CACV,CDwBkB4R,CAAUxL,GAAQ,SAAUorC,GACtC,OAAOA,EAAEnpC,OAASJ,EAAMI,IAC1B,IACA,IAAe,IAAX/F,EACF,OAAO8D,EAAOtC,OAAOmE,GAEvB,IAAI8vE,EAAa3xE,EAAO1F,QAExB,OADAq3E,EAAWp2E,OAAOW,EAAO,EAAG2F,GACrB8vE,CACT,GAAG7vC,EAAK5hC,qBAEZ,EA0CW0xE,GAAwB,WACjC,IAAK,IAAI7R,EAAO/lE,UAAUD,OAAQ+C,EAAa,IAAIzC,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrFnjE,EAAWmjE,GAAQjmE,UAAUimE,GAE/B,OAAOnjE,EAAWwB,QAAO,SAAUwjC,EAAMQ,GACvC,IAAIuvC,EAnBiC,SAA4C/vC,EAAMQ,GACzF,OAAOR,EAAKn/B,mBAAmB,CAC7BnC,8BAA+B,GAAc,GAAc,CAAC,EAAGshC,EAAKthC,+BAAgC8hC,EAAM9hC,gCAE9G,CAe8CsxE,CAAmChwC,EAAMQ,GAE/EyvC,EA9CkB,SAA6BjwC,EAAMQ,GAC3D,OAAOA,EAAM/hC,eAAejC,QAAO,SAAU8sC,EAAG9tC,GAC9C,OAAO8tC,EAAEjmC,iBAAiB7H,EAC5B,GAAGwkC,EACL,CA0C+BkwC,CADIN,GAAwBG,EAAqCvvC,GACnBA,GACrE2vC,EA3BsB,SAAiCnwC,EAAMQ,GACnE,OAAOR,EAAKn/B,mBAAmB,CAC7BrC,mBAAoB,GAAc,GAAc,CAAC,EAAGwhC,EAAKxhC,oBAAqBgiC,EAAMhiC,qBAExF,CAuBmC4xE,CAAwBH,EAAsBzvC,GACzE6vC,EAjCgC,SAA2CrwC,EAAMQ,GACvF,OAAOR,EAAKn/B,mBAAmB,CAC7BtC,6BAA8B,GAAc,GAAc,CAAC,EAAGyhC,EAAKzhC,8BAA+BiiC,EAAMjiC,+BAE5G,CA6B6C+xE,CAAkCH,EAA0B3vC,GACjG+vC,EAvCkB,SAA6BvwC,EAAMQ,GAC3D,OAAOR,EAAKn/B,mBAAmB,CAC7BvC,eAAgB,GAAc,GAAc,CAAC,EAAG0hC,EAAK1hC,gBAAiBkiC,EAAMliC,iBAEhF,CAmC+BkyE,CAAoBH,EAAoC7vC,GAC/EiwC,EA7CoB,SAA+BzwC,EAAMQ,GAC/D,OAAOR,EAAKn/B,mBAAmB,CAC7BxC,kBAAmB,GAAc,GAAc,CAAC,EAAG2hC,EAAK3hC,mBAAoBmiC,EAAMniC,oBAEtF,CAyCiCqyE,CAAsBH,EAAsB/vC,GACrEmwC,EAzEqB,SAAgC3wC,EAAMQ,GACjE,OAAOA,EAAMriC,kBAAkB3B,QAAO,SAAU8sC,EAAGnpC,GACjD,OAAOmpC,EAAExmC,oBAAoB3C,EAC/B,GAAG6/B,EACL,CAqEkC4wC,CAAuBH,EAAwBjwC,GACzEqwC,EAtBgB,SAA2B7wC,EAAMQ,GACvD,IAAIswC,EAAoB,GAAGl1E,OAAOokC,EAAK8wC,cAAcl1E,OAAO4kC,EAAMswC,cAAcl0E,OAAOiR,SEpF1EjR,QAAO,SAAUpB,EAAOpB,EAAOuE,GAC1C,OAAOA,EAAK3B,QAAQxB,KAAWpB,CACjC,IFmFA,OAAI02E,EAAa74E,OAAS,EACjB+nC,EAAKn/B,mBAAmB,CAC7BiwE,aAAcA,IAGX9wC,CACT,CAc6B+wC,CAAkBJ,EAAyBnwC,GAChEwwC,EAhFU,SAAqBhxC,EAAMQ,GAC3C,OAAOA,EAAMtiC,OAAO1B,QAAO,SAAU8sC,EAAGnpC,GACtC,OAAOmpC,EAAEzmC,SAAS1C,EACpB,GAAG6/B,EACL,CA4EuBixC,CAAYJ,EAAoBrwC,GACnD,OAjGgB,SAAuBR,EAAMQ,GAClCA,EAAMtiC,OACGsiC,EAAMriC,kBACNqiC,EAAMniC,kBACTmiC,EAAMliC,eACQkiC,EAAMjiC,6BAChBiiC,EAAMhiC,mBACVgiC,EAAM/hC,eACF+hC,EAAMpiC,mBACKoiC,EAAM9hC,8BACvB8hC,EAAMswC,aATvB,IAUE9oD,EAAO,GAAyBwY,EAAO,IACzC,OAAOR,EAAKn/B,mBAAmBmnB,EACjC,CAoFWkpD,CAAcF,EAAcxwC,EACrC,GACF,EG9GA,SAAS,GAAQ1pB,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,2BACjB,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAASs4C,GAAmB8T,GAAO,OAInC,SAA4BA,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAO,GAAkBA,EAAM,CAJhDiO,CAAmBjO,IAG7D,SAA0BkO,GAAQ,GAAsB,oBAAX72D,QAAmD,MAAzB62D,EAAK72D,OAAOC,WAA2C,MAAtB42D,EAAK,cAAuB,OAAO74E,MAAMsiB,KAAKu2D,EAAO,CAHxFC,CAAiBnO,IAEtF,SAAqC/oD,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAFjU,CAA4BV,IAC1H,WAAgC,MAAM,IAAI3rE,UAAU,uIAAyI,CAD3D+5E,EAAsB,CAKxJ,SAAS,GAAkBpO,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CAClL,SAAS,GAAyBjB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAI3e,IAAI,GAAYunD,EAAoC,CAClD79D,KAAM,iBAOR,SAASoxE,GAAsBx9D,EAAQ+V,GACrC,IAAIviB,EAAQuiB,EAAKviB,MACfiI,EAAcsa,EAAKta,YACnBgiE,EAAW1nD,EAAK0nD,SACdjqE,IAAUwM,EAAOxM,QACnBwM,EAAOxM,MAAQA,EACfwM,EAAOvc,KAAK,SAAU,CACpB+P,MAAOwM,EAAOxM,MACdgC,QAASwK,EAAOpZ,YAChB6U,YAAaA,EACbgiE,SAAUA,IAGhB,CACA,SAASC,GAAuBvT,EAASwT,GACvC,IAAInC,EAAiBr3E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC1F,OAAOgmE,EAAQ1hE,QAAO,SAAUskE,EAAS1C,GACvC,OAAIuR,GAAcvR,GACT0C,EAEJ1C,EAAOyC,kBAAqBzC,EAAOuT,eAGpCvT,EAAOyC,iBACFzC,EAAOyC,iBAAiBC,EAAS4Q,GAEnCtT,EAAOuT,eAAe7Q,EAAS4Q,GAL7B5Q,CAMX,GAAGyO,EACL,CACA,SAASqC,GAAgC1T,EAAS2T,GAChD,IAAIC,EAA0BD,EAA8BC,wBAC1D9pD,EAAO,GAAyB6pD,EAA+B,IACjE,OAAO3T,EAAQthE,QAAO,SAAUwhE,GAC9B,OAAQuR,GAAcvR,EACxB,IAAG5hE,QAAO,SAAU+K,EAAO62D,GACzB,OAAKA,EAAO4C,0BAGL5C,EAAO4C,0BAA0Bz5D,EAAOygB,GAFtCzgB,CAGX,GAAGuqE,EACL,CACA,SAASC,GAAqB7T,GAC5B,IAAI8T,EAAe9T,EAAQthE,OAAO+yE,IACN,IAAxBqC,EAAa/5E,QAGjB+5E,EAAapzE,SAAQ,SAAUw/D,GAC7B,IAAI6T,EAAe7T,EAAO4D,YAC1BuP,GAAsBU,EAAc,CAClC1qE,MAAO0qE,EAAa1qE,MAAMf,YAC1BgJ,aAAa,IAEfuiE,GAAqB3T,EAAOiI,aAC9B,GACF,CACA,SAAS6L,GAAgChU,GAEvC,OADmBA,EAAQthE,OAAO+yE,IACdnzE,QAAO,SAAU0lE,EAAe7yC,GAClD,OAAO6yC,EAActmE,OAAOnD,MAAMypE,EAAe,CAAC,CAChDI,QAASjzC,EAAQkzC,aACjBh5D,QAAS8lB,EAAQ4yC,aACjBluD,OAAQsb,EAAQ2yC,cACfpmE,OAAOwzD,GAAmB8iB,GAAgC7iD,EAAQg3C,gBACvE,GAAG,GACL,CACA,IAoYA,GApYY,SAAe1G,GACzB,QAAqBhpE,IAAjBgpE,QAAyDhpE,IAA3BgpE,EAAa9tD,UAC7C,MAAM,IAAI1Z,MAAM,GAAU,wCAE5B,IAAI0Z,EAAY8tD,EAAa9tD,UAC3BsgE,EAAwBxS,EAAa2C,QACrCA,OAAoC,IAA1B6P,EAAmCtgE,EAAYsgE,EACvDC,EAAe,GACfC,EAAe,CAAC,EAChBC,EAA6B,KAC7BC,EAAc,KACdx+D,EAAS,KACTpD,EAAgB,KAChB6hE,EAA4B,KAChC,MAAO,CACLxS,OAAQ,YACRiL,aAAc,YACdwH,aAAc,WACZ,OAAO5gE,CACT,EACA0wD,WAAY,WACV,OAAOD,CACT,EACAN,UAAW,WACT,OAAOjuD,CACT,EACAkuD,WAAY,WACV,IAAIyQ,EACJ,OAA2C,QAApCA,EAAiB/hE,SAA8C,IAAnB+hE,GAA6BA,EAAe/3E,aAO/FgW,EAAchW,YAAYqR,OAAS+H,EAAOxM,MACnCoJ,EAAchW,aAR+F,IAStH,EACAg4E,iBAAkB,WAChB,OAAOH,CACT,EACArQ,iBAAkB,WAChB,IAAIyQ,EAAep8E,KAAKq8E,YAIxB,OAAOX,GADcU,EAAeA,EAAavM,aAAe,CAAC7vE,MAEnE,EACAq8E,UAAW,WACT,OAAON,CACT,EACAxM,UAAW,SAAmBqJ,GAC5B,OAAOkD,EAA2B/F,WAAW,GAAgB,CAAC,EAAGjK,EAASmP,GAAuBW,EAAc,CAC7GrR,iBAAkBqO,EAClBr7D,OAAQA,KAEZ,EACAsyD,WAAY,WACV,OAAO+L,CACT,EACA1L,WAAY,SAAoBxI,GAC9B,IAAI4N,EAAQt1E,KACZ,IAAK+B,MAAMmF,QAAQwgE,GACjB,MAAM,IAAI/lE,MAAM,GAAU,yDAE5B,GAAI+lE,EAAQ7lD,MAAK,SAAU+lD,GACzB,MAA8B,mBAAhBA,EAAO6B,MAAgD,mBAAlB7B,EAAOnkB,MAC5D,IACE,MAAM,IAAI9hD,MAAM,GAAU,sEAgC5B,OA9BAi6E,EAAeA,EAAax2E,OAAOsiE,GAC/BoU,GAA8BzkE,QAAQqwD,EAAQjmE,UAChDs5E,GAAsBx9D,EAAQ,CAC5BxM,MAAOqqE,GAAgCQ,EAAc,CACnDtR,QAASuR,EACTP,wBAAyB/9D,EAAOxM,QAElCiqE,SAAUa,IAMZnU,EAAQt/D,SAAQ,SAAUw/D,GACpBA,EAAOmC,gBAETuS,GAAiB,CACftS,YAFgBpC,EAAOmC,eAAe+R,EAA2B9R,YAAYsL,EAAMvJ,eAAiB,CAAC,EAAGmI,GAAe4H,EAA4BxG,EAAOwG,EAA2BtH,kBAGrL7K,sBAAuBmS,EACvBjqE,OAAQyjE,GAGd,IACA5N,EAAQt/D,SAAQ,SAAUw/D,GACpBA,EAAO6B,MACT7B,EAAO6B,KAAKyK,GAAe4H,EAA4BxG,EAAOwG,EAA2BtH,iBAE7F,IACAsH,EAA2BS,kBAEtBv8E,IACT,EACAiwE,cAAe,SAAuBvI,GACpC,IAAIrkB,EAASrjD,KACb,IAAK+B,MAAMmF,QAAQwgE,GACjB,MAAM,IAAI/lE,MAAM,GAAU,4DAE5B,GAAI+lE,EAAQ7lD,MAAK,SAAU+lD,GACzB,MAAiC,mBAAnBA,EAAOkC,OACvB,IACE,MAAM,IAAInoE,MAAM,GAAU,sDAK5B,GAHAi6E,EAAeA,EAAax1E,QAAO,SAAUwhE,GAC3C,OAAoC,IAA7BF,EAAQlhE,QAAQohE,EACzB,IACIkU,GAA8BzkE,QAAQqwD,EAAQjmE,QAAS,CACzD,IAAIm3E,EAAYlR,EAAQ1hE,QAAO,SAAU+K,EAAO62D,GAO9C,OALWA,EAAOkC,QAAQ,CACxBvsD,OAAQA,EACRxM,MAAOA,EACPc,OAAQwxC,KAEKtyC,CACjB,GAAGwM,EAAOxM,OACV8qE,EAAeZ,GAAuBW,EAAc,CAClDrR,iBAAkBqO,EAClBr7D,OAAQA,IAEVA,EAAOd,SAAS2+D,GAAgCQ,EAAc,CAC5DtR,QAASuR,EACTP,wBAAyB1C,KAEvBgD,EAAan6E,QACfq6E,EAA2BS,gBAE/B,CACA,OAAOv8E,IACT,EACAypE,KAAM,SAAct0C,GAClB,IACEqnD,EADE/F,EAASz2E,KAET2pE,EAAwBx0C,EAAMw0C,sBAChC93D,EAASsjB,EAAMtjB,OACfy4D,EAAUn1C,EAAMm1C,QAClB,GAAe,OAAX/sD,EAAJ,CAKAu+D,EAA6BnS,EAC7BoS,EAAclqE,EACdgqE,EAAevR,EAAQwB,IAAY,CAAC,EAKpC,IAAI9nE,EAAa2lE,EAAsB3lE,WACnCQ,EAAa42E,GAAgCQ,EAAc,CAC7DtR,QAASuR,EACTP,wBAAyB,IAAI,oBAAqC,CAChE13E,MAAOyX,OAOXkC,EAAS,GAAoB,CAAC,EAAG/Y,EAAWZ,MAAOY,IAK5C0U,OAAS,WACd,OAAIywD,EAAsBkL,eACxBlL,EAAsBkL,cAAc,CAClCvK,QAASX,EAAsB4K,UAAUlK,iBAAiB,CAAC,GAC3D4O,WAAY,SAAoBL,GAC9B,OAAOjP,EAAsBsP,WAAWL,GAAW,EACrD,IAKK50E,GAEFA,EAAWkV,QACpB,EACAqE,EAAOk/D,qCAAuC,WAC5C,OAAOz4E,EAAWkV,QACpB,EAGAqE,EAAO3C,qBAAuB,SAAUrP,EAAW2G,EAAY2I,EAAcC,GAC3E,IAAI/J,EAAQwM,EAAOxM,MAAM1G,mBAAmByQ,GAC5C,OAAO9W,EAAW4W,qBAAqBrP,EAAW2G,EAAY2I,EAAc9J,EAC9E,EACAoJ,EAAgBnW,EAAWya,QAAO,WAChC,OAAO66D,GAAsBr3E,WAAM,EAAQ22D,GChS5C,SAAiC//B,GAGtC,IAFA,IAAIhnB,EAASgnB,EAAQwjD,YACjBj/D,EAAS,CAACyb,EAAQ2yC,YAAYz6D,OAChB,OAAXc,GACLuL,EAAS,CAACvL,EAAO25D,YAAYz6D,OAAO3L,OAAOgY,GAC3CvL,EAASA,EAAOwqE,YAElB,OAAOj/D,CACT,CDwRsEs/D,CAAwBjG,IACxF,IACA,IAAIkG,EAA0F,QAAnEH,EAAwB7S,EAAsBiT,uBAAuD,IAA1BJ,OAAmC,EAASA,EAAsBx8E,KAAK+rE,cAC7K,GAAI4Q,EAAqB,CAGvB,IAAI5pE,EAAU,IAAI,iBAAkC,IAAI,oBAAqC4pE,EAAoB5rE,OAAQ4rE,EAAoB5pE,SAC7IoH,EAAchW,YAAc4O,EAC5BwK,EAAOpZ,YAAc4O,CACvB,CAMAwK,EAAO7a,GAAG,UAAU,SAAU2yB,GACVA,EAAMrc,aAEtBuiE,GAAqBK,EAEzB,IACAzhE,EAAczX,GAAG,UAAU,WAKzBinE,EAAsBkT,uBAOxB,IACA1iE,EAAczX,GAAG,UAAU,SAAU6yB,GACnC,IAAIxiB,EAAUwiB,EAAMxiB,QAIpB42D,EAAsBmT,iBAMtBv/D,EAAOpZ,YAAc4O,EACrBipE,EAA4BjpE,EAAQyC,MACtC,IAKAomE,EAAaxzE,SAAQ,SAAUw/D,GACzBA,EAAOmC,gBAETuS,GAAiB,CACftS,YAFgBpC,EAAOmC,eAAeJ,EAAsBK,YAAYyM,EAAO1K,eAAiB,CAAC,EAAGmI,GAAevK,EAAuB8M,EAAQnM,IAGlJX,sBAAuBA,EACvB93D,OAAQ4kE,GAGd,IACAmF,EAAaxzE,SAAQ,SAAUw/D,GAKzBA,EAAO6B,MACT7B,EAAO6B,KAAKyK,GAAevK,EAAuB8M,EAAQnM,GAE9D,IAQA/sD,EAAO7a,GAAG,UAAU,SAAU2b,GAC5B,IAAItN,EAAQsN,EAAMtN,MACdiqE,EAAW38D,EAAM28D,SACrBa,EAAeZ,GAAuBW,EAAc,CAClDrR,iBAAkBx5D,EAClBwM,OAAQA,GACPy9D,GAAY,CAAC,GAIXrR,EAAsBkL,eACzBlL,EAAsBoT,uBAE1B,IACIJ,GAIFhT,EAAsBmT,gBAjJxB,CAmJF,EACAr5B,OAAQ,SAAgBjuB,GACtB,IAAImhD,EAAS32E,KACT2pE,EAAwBn0C,EAAMm0C,sBAC7B3pE,KAAKyrE,eAM2B,UAAjC9B,EAAsBnjD,QAAuBmjD,EAAsB3lE,WAAW2a,sBAChFpB,EAAOd,SAASu/D,GAElBJ,EAAaxzE,SAAQ,SAAUw/D,GACzBA,EAAOmC,gBAETuS,GAAiB,CACftS,YAFgBpC,EAAOmC,eAAeJ,EAAsBK,YAAY2M,EAAO5K,eAAiB,CAAC,EAAGoI,GAAiBxK,EAAuBgN,IAG5IhN,sBAAuBA,EACvB93D,OAAQ8kE,GAGd,IACAiF,EAAaxzE,SAAQ,SAAUw/D,GAQzBA,EAAOnkB,QACTmkB,EAAOnkB,OAAO0wB,GAAiBxK,EAAuBgN,GAE1D,IACF,EACA7M,QAAS,WACP,IACEkT,EACAC,EAFEpG,EAAS72E,KAGb47E,EAAaxzE,SAAQ,SAAUw/D,GACzBA,EAAOkC,SAOTlC,EAAOkC,QAAQ,CACbvsD,OAAQA,EACRxM,MAAOwM,EAAOxM,MACdc,OAAQglE,GAGd,IACAiF,EAA6B,KAC7BC,EAAc,KACS,QAAtBiB,EAAUz/D,SAAgC,IAAZy/D,GAA8BA,EAAQ95E,qBACrEqa,EAAS,KAC6B,QAArC0/D,EAAkB9iE,SAA+C,IAApB8iE,GAAsCA,EAAgB54E,SACpG8V,EAAgB,IAClB,EACAkwD,iBAAkB,SAA0BC,GAC1C,OAAOsR,EAAax1E,OAAO+yE,IAAenzE,QAAO,SAAUk3E,EAAiBC,GAC1E,OAAOA,EAAW9S,iBAAiB6S,EACrC,GAAG,GAAc,GAAc,CAAC,EAAG5S,GAAU,CAAC,EAAG,GAAgB,CAAC,EAAGwB,EAAS,GAAc,GAAc,CAAC,EAAGxB,EAAQwB,IAAW+P,KACnI,EACAV,eAAgB,SAAwB7Q,GAEtC,OAAOtqE,KAAKqqE,iBAAiBC,EAC/B,EACAE,0BAA2B,SAAmCD,EAAkB50C,GAC9E,IAAI20C,EAAU30C,EAAM20C,QACpB,OAAO8Q,GAAgCQ,EAAc,CACnDtR,QAASA,EACTgR,wBAAyB/Q,GAE7B,EACA6S,eAAgB,WACdvB,EAAeZ,GAAuBW,EAAc,CAClDrR,iBAAkBvqE,KAAKwrE,YAAYz6D,MACnCwM,OAAQvd,KAAKwrE,aACZqQ,EACL,EACAwB,gBAAiB,SAAyBC,GACxC,IAAIC,EAA2C,mBAAjBD,EAA8BA,EAAazB,GAAgByB,EACzFxB,EAA2B7C,YAAW,SAAUloE,GAC9C,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAG+6D,EAASyR,GAClF,GACF,EAEJ,EAEA,SAASjB,GAAiB9E,GACxB,IAAIxN,EAAcwN,EAAMxN,YACtBL,EAAwB6N,EAAM7N,sBAC9B93D,EAAS2lE,EAAM3lE,OACb2rE,EAAkB3rE,EAASA,EAAOk6D,aAAepC,EAAsB4K,UAAUxI,aACrFpC,EAAsBK,YAAc,GAAc,GAAc,CAAC,EAAGL,EAAsBK,aAAc,CAAC,EAAG,GAAgB,CAAC,EAAGwT,EAAiB,GAAc,GAAc,CAAC,EAAG7T,EAAsBK,YAAYwT,IAAmBxT,IACxO,CEreA,IACWyT,GAAY,SAAmBC,GACxC,OAAO,WACL,IAAIpqD,EAAO5xB,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ei8E,EAAiBrqD,EAAKqqD,eACtBC,EAAetqD,EAAKsqD,aAClBC,EAAaF,EAAiB,IAAIv4E,OAAOu4E,GAAkB,GAC3DG,EAAWF,EAAe,KAAKx4E,OAAOw4E,GAAgB,GAC1D,MAAO,GAAGx4E,OARE,MAQgB,KAAKA,OAAOs4E,GAAet4E,OAAOy4E,GAAYz4E,OAAO04E,EACnF,CACF,ECVO,SAASC,GAAkB38D,EAAQlT,GAExC,OADYnM,MAAMmF,QAAQgH,GAAQA,EAAOA,EAAKuC,MAAM,MACvCzK,QAAO,SAAU6yB,EAAS11B,GACrC,OAAO01B,GAAWA,EAAQ11B,EAC5B,GAAGie,EACL,CCHA,IAAI48D,GAAOP,GAAU,aCDd,SAASQ,GAAuBzrE,GACrC,IAAIkgE,EAAkBE,GAAgBF,gBACpCC,EAAmBC,GAAgBD,iBACrC,OAAOngE,EAAMzJ,KAAI,SAAU2H,GACzB,OAAOA,EAAKwtE,cAAgBxL,EAAkBhiE,EAAK1L,MAAQ2tE,EAAmBjiE,EAAK1L,KACrF,IAAG2c,KAAK,GACV,CCNA,IAAIw8D,GAAkB,IAAIl4B,OAAO,OAC1B,SAASm4B,GAAyB5rE,EAAOlR,GAC9C,IAAI+8E,EAAQC,EACRzlD,EAAUrmB,EAAMlR,GAChBi9E,GAAiD,QAA3BF,EAAS7rE,EAAMlR,EAAI,UAA2B,IAAX+8E,OAAoB,EAASA,EAAOH,iBAAkB,EAC/GM,GAAsD,QAA5BF,EAAU9rE,EAAMlR,EAAI,UAA4B,IAAZg9E,OAAqB,EAASA,EAAQJ,iBAAkB,EAC1H,OAAKC,GAAgB56D,KAAK,GAASsV,EAAQ7zB,SAAWw5E,IAA0BD,EAGzE1lD,EAAQqlD,cAFNM,CAGX,CCXA,SAAS,GAAQl+D,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAIpO,SAASm+D,GAAwBjsE,GACtC,OAAKA,EAAMqP,MAAK,SAAUnR,GACxB,OAAOA,EAAKwtE,aACd,IAOO1rE,EAAMzJ,KAAI,SAAU2H,EAAMpP,GAC/B,OAAO,GAAc,GAAc,CAAC,EAAGoP,GAAO,CAAC,EAAG,CAChDwtE,eAAgBE,GAAyB5rE,EAAOlR,IAEpD,IAVSkR,EAAMzJ,KAAI,SAAU2H,GACzB,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAO,CAAC,EAAG,CAChDwtE,eAAe,GAEnB,GAOJ,CCrBO,SAASQ,GAAoBC,GAClC,IAAIhM,EAAmBC,GAAgBD,iBACrCD,EAAkBE,GAAgBF,gBAChCkM,EAAgBD,EAAiBluE,MAAMiiE,GACvCmM,EAAaD,EAAcz5D,QAC3B4W,EAAY8iD,EAAkB,CAAC,CACjC75E,MAAO65E,EACPX,eAAe,IAFY,GAiB7B,OAbAU,EAAcx2E,SAAQ,SAAUqI,GAC9B,IAAIquE,EAAiBruE,EAAMA,MAAMkiE,GACjC52C,EAASz5B,KAAK,CACZ0C,MAAO85E,EAAe,GACtBZ,eAAe,IAES,KAAtBY,EAAe,IACjB/iD,EAASz5B,KAAK,CACZ0C,MAAO85E,EAAe,GACtBZ,eAAe,GAGrB,IACOniD,CACT,CCtBA,IAAI,GAAO0hD,GAAU,oBCArB,IAAI,GAAOA,GAAU,WCArB,IAAI,GAAOA,GAAU,kBCFrB,SAAS,GAAQn9D,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAuChU,SAAS,GAAS8G,EAAQkpD,GAEvC,OApBK,SAA6Bh9C,GAClC,IAKIyrD,EALA33D,EAASkM,EAAKlM,OAChBkpD,EAAUh9C,EAAKg9C,QACjB,GAAyB,WAArB,GAAQA,GACV,MAAM,IAAI3uE,MAAM,4DAGlB,IACEo9E,EAAoB1O,GAAiBC,EACvC,CAAE,MAAO9uE,GACP,MAAM,IAAIG,MAAM,+CAClB,CACA,MAAO,yBAA0ByD,OAAOgiB,EAAQ,6BAA+BhiB,OAAO25E,EAAmB,IAC3G,CAOSC,CAAoB,CACzB53D,OAAQA,EACRkpD,QAASA,GAEb,CC7CA,SAAS,GAAQhwD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK5N,SAAS2+D,GAAa3rD,GACnC,IAAI4rD,EAAe5rD,EAAK4rD,aACxB,MAAO,CACLC,aAAc,SAAsBn6E,EAAOy+C,GACzC,OCZC,SAAsBz+C,EAAOk6E,GAClC,OAAOl6E,EAAMo6E,eAAeF,EAC9B,CDUa,CAAc1vD,OAAOi0B,EAAOz+C,IAASk6E,EAC9C,EACAz3B,UAAW,SAAmB7zC,EAAS6vC,GACrC,IAEE,OAAOA,ETdA,SAAmBnwB,GAChC,IAAIvuB,EAAYuuB,EAAKvuB,UACnBs6E,EAAwB/rD,EAAKgsD,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjE/N,EAAMh+C,EAAKg+C,IACXiO,EAAkBjsD,EAAKksD,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAM/CE,GAL6B1B,GAAkBzM,EAAI4B,iBAAkBnuE,IAI/B,CAAC,GACnBC,MACpB06E,OAAiC,IAAhBD,EAAyB,GAAKA,EAG7CnuD,EAAY0sD,GAAK,CACnBL,eAAgB,iBACZ6B,EAAWG,YAAc,IAAIv6E,OAAOo6E,EAAWG,aAAe,IACpE,OAAOD,EAAe3gE,QAAQ,IAAIknC,OAAO2sB,GAAgBF,gBAAiB,KAAM,IAAIttE,OAAOk6E,EAAoB,YAAal6E,OAAOksB,EAAW,OAAQvS,QAAQ,IAAIknC,OAAO2sB,GAAgBD,iBAAkB,KAAM,KAAKvtE,OAAOk6E,EAAoB,KACnP,CSNsB,CAAW,GAAc,GAAc,CAAC,EAD/BzuE,KAAK2T,MAAM5Q,IAC0C,CAAC,EAAG,CAC9E09D,IAAKtxE,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,qHAClB,CACF,EACAi+E,iBAAkB,SAA0BhsE,EAAS6vC,GACnD,IAEE,OAAOA,EJxBA,SAA0BnwB,GACvC,IAAIvuB,EAAYuuB,EAAKvuB,UACnBs6E,EAAwB/rD,EAAKgsD,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjE/N,EAAMh+C,EAAKg+C,IACXiO,EAAkBjsD,EAAKksD,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAM/CE,GAL6B1B,GAAkBzM,EAAI4B,iBAAkBnuE,IAI/B,CAAC,GACnBC,MACpB06E,OAAiC,IAAhBD,EAAyB,GAAKA,EAG7CnuD,EAAY,GAAK,CACnBqsD,eAAgB,iBACZ6B,EAAWG,YAAc,IAAIv6E,OAAOo6E,EAAWG,aAAe,IAEpE,OAD8B1B,GAAuBQ,GAAwBC,GAAoBgB,KAClE3gE,QAAQ,IAAIknC,OAAO2sB,GAAgBF,gBAAiB,KAAM,IAAIttE,OAAOk6E,EAAoB,YAAal6E,OAAOksB,EAAW,OAAQvS,QAAQ,IAAIknC,OAAO2sB,GAAgBD,iBAAkB,KAAM,KAAKvtE,OAAOk6E,EAAoB,KAC5P,CIGsB,CAAkB,GAAc,GAAc,CAAC,EAD/BzuE,KAAK2T,MAAM5Q,IACiD,CAAC,EAAG,CAC5F09D,IAAKtxE,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,gIAClB,CACF,EACAk+E,QAAS,SAAiBjsE,EAAS6vC,GACjC,IAEE,OAAOA,EHlCA,SAAiBnwB,GAC9B,IAAIvuB,EAAYuuB,EAAKvuB,UACnBs6E,EAAwB/rD,EAAKgsD,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjE/N,EAAMh+C,EAAKg+C,IACXiO,EAAkBjsD,EAAKksD,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAM/CE,GAL2B1B,GAAkBzM,EAAI6B,eAAgBpuE,IAI7B,CAAC,GACjBC,MACpB06E,OAAiC,IAAhBD,EAAyB,GAAKA,EAG7CnuD,EAAY,GAAK,CACnBqsD,eAAgB,iBACZ6B,EAAWG,YAAc,IAAIv6E,OAAOo6E,EAAWG,aAAe,IACpE,OAAOD,EAAe3gE,QAAQ,IAAIknC,OAAO2sB,GAAgBF,gBAAiB,KAAM,IAAIttE,OAAOk6E,EAAoB,YAAal6E,OAAOksB,EAAW,OAAQvS,QAAQ,IAAIknC,OAAO2sB,GAAgBD,iBAAkB,KAAM,KAAKvtE,OAAOk6E,EAAoB,KACnP,CGcsB,CAAS,GAAc,GAAc,CAAC,EAD/BzuE,KAAK2T,MAAM5Q,IACwC,CAAC,EAAG,CAC1E09D,IAAKtxE,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,mHAClB,CACF,EACAm+E,eAAgB,SAAwBlsE,EAAS6vC,GAC/C,IAEE,OAAOA,EF5CA,SAAwBnwB,GACrC,IAAIvuB,EAAYuuB,EAAKvuB,UACnBs6E,EAAwB/rD,EAAKgsD,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjE/N,EAAMh+C,EAAKg+C,IACXiO,EAAkBjsD,EAAKksD,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAM/CE,GAL2B1B,GAAkBzM,EAAI6B,eAAgBpuE,IAI7B,CAAC,GACjBC,MACpB06E,OAAiC,IAAhBD,EAAyB,GAAKA,EAG7CnuD,EAAY,GAAK,CACnBqsD,eAAgB,iBACZ6B,EAAWG,YAAc,IAAIv6E,OAAOo6E,EAAWG,aAAe,IAEpE,OAD8B1B,GAAuBQ,GAAwBC,GAAoBgB,KAClE3gE,QAAQ,IAAIknC,OAAO2sB,GAAgBF,gBAAiB,KAAM,IAAIttE,OAAOk6E,EAAoB,YAAal6E,OAAOksB,EAAW,OAAQvS,QAAQ,IAAIknC,OAAO2sB,GAAgBD,iBAAkB,KAAM,KAAKvtE,OAAOk6E,EAAoB,KAC5P,CEuBsB,CAAgB,GAAc,GAAc,CAAC,EAD/BzuE,KAAK2T,MAAM5Q,IAC+C,CAAC,EAAG,CACxF09D,IAAKtxE,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,8HAClB,CACF,EACAo+E,SAAU,SAAkBnsE,EAAS6vC,GACnC,IACE,IAAIu8B,EAAcnvE,KAAK2T,MAAM5Q,GAC3BwT,EAAS44D,EAAY54D,OACrBkpD,EAAU0P,EAAY1P,QACxB,OAAO7sB,EAAO,GAAUr8B,EAAQ,GAAc,CAC5CuqD,UAAW,CAAC3xE,KAAKuxE,WAChBjB,IACL,CAAE,MAAO9uE,GACP,MAAM,IAAIG,MAAM,2IAClB,CACF,EAEJ,CEnEA,IAAIs+E,GAAgB7lE,QAAQC,UACrB,SAASmnC,GAAMhF,GACpB,IAAI0jC,EAAW,KACXC,GAAY,EACZl8E,EAAK,WACP,IAAK,IAAIwjE,EAAO/lE,UAAUD,OAAQJ,EAAO,IAAIU,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EtmE,EAAKsmE,GAAQjmE,UAAUimE,GAER,OAAbuY,IAGJA,EAAWD,GAAcpmE,MAAK,WAC5BqmE,EAAW,KACPC,EACFA,GAAY,EAGd3jC,EAASv6C,WAAM,EAAQZ,EACzB,IACF,EAaA,OAZA4C,EAAGm8E,KAAO,WACR,GAAiB,OAAbF,EACF,MAAM,IAAIv+E,MAAM,kEAElB,OAAOu+E,CACT,EACAj8E,EAAGo8E,OAAS,WACO,OAAbH,IAGJC,GAAY,EACd,EACOl8E,CACT,CC/BO,SAASq8E,GAAoBC,EAAchV,GAChD,IAAIgS,EAAmBgD,EAAahV,EAAYQ,eAAiB,CAAC,EAOlER,EAAYC,YAAY/uD,SAAS8uD,EAAYf,0BAA0Be,EAAYC,YAAYz6D,MAAO,CACpGu5D,QAASiT,KAEXhS,EAAYsE,aAAazpE,OAAO+yE,IAAe/wE,SAAQ,SAAUw/D,GAC/D,OAAO0Y,GAAoBC,EAAc3Y,EAC3C,GACF,CChBA,SAAS,GAAQtnD,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CAGpV,SAAS,GAAkBka,EAAQ6Q,GAAS,IAAK,IAAIxvB,EAAI,EAAGA,EAAIwvB,EAAMrvB,OAAQH,IAAK,CAAE,IAAIm5C,EAAa3pB,EAAMxvB,GAAIm5C,EAAW/6B,WAAa+6B,EAAW/6B,aAAc,EAAO+6B,EAAW76B,cAAe,EAAU,UAAW66B,IAAYA,EAAW96B,UAAW,GAAM7Z,OAAO0d,eAAevD,EAAQ,GAAew6B,EAAWt3C,KAAMs3C,EAAa,CAAE,CAG5U,SAAS+lC,GAAgB78D,EAAG2C,GAA6I,OAAxIk6D,GAAkB16E,OAAOm8C,eAAiBn8C,OAAOm8C,eAAerkC,OAAS,SAAyB+F,EAAG2C,GAAsB,OAAjB3C,EAAEu+B,UAAY57B,EAAU3C,CAAG,EAAU68D,GAAgB78D,EAAG2C,EAAI,CACvM,SAASm6D,GAAaC,GAAW,IAAIC,EAGrC,WAAuC,GAAuB,oBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhF1pE,QAAQ3W,UAAUgtD,QAAQ5rD,KAAK8+E,QAAQC,UAAUxpE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO2C,GAAK,OAAO,CAAO,CAAE,CAHvQgnE,GAA6B,OAAO,WAAkC,IAAsC/sE,EAAlCgtE,EAAQC,GAAgBR,GAAkB,GAAIC,EAA2B,CAAE,IAAIQ,EAAYD,GAAgBlhF,MAAMkK,YAAa+J,EAAS2sE,QAAQC,UAAUI,EAAOv/E,UAAWy/E,EAAY,MAASltE,EAASgtE,EAAMh/E,MAAMjC,KAAM0B,WAAc,OACpX,SAAoCyG,EAAMrG,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIf,UAAU,4DAA+D,OAAOqgF,GAAuBj5E,EAAO,CAD4Fk5E,CAA2BrhF,KAAMiU,EAAS,CAAG,CAExa,SAASmtE,GAAuBj5E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI05C,eAAe,6DAAgE,OAAO15C,CAAM,CAErK,SAAS+4E,GAAgBv9D,GAA+J,OAA1Ju9D,GAAkBp7E,OAAOm8C,eAAiBn8C,OAAOysE,eAAe30D,OAAS,SAAyB+F,GAAK,OAAOA,EAAEu+B,WAAap8C,OAAOysE,eAAe5uD,EAAI,EAAUu9D,GAAgBv9D,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,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAU5H,IAAI,GAAYqkE,EAAoC,CAClD79D,KAAM,kBAER,SAAS23E,KACP,MAAO,GACT,CAUA,IAAIC,GAA6B,SAAUC,IAjC3C,SAAmBz/B,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIjhD,UAAU,sDAAyDghD,EAASrhD,UAAYoF,OAAO2Z,OAAOuiC,GAAcA,EAAWthD,UAAW,CAAEwJ,YAAa,CAAElF,MAAO+8C,EAAUpiC,UAAU,EAAMC,cAAc,KAAW9Z,OAAO0d,eAAeu+B,EAAU,YAAa,CAAEpiC,UAAU,IAAcqiC,GAAYw+B,GAAgBz+B,EAAUC,EAAa,CAkCjcy/B,CAAUF,EAAeC,GACzB,IApCoB9mC,EAAaC,EAAYC,EAoCzC8mC,EAASjB,GAAac,GAC1B,SAASA,EAAc3tE,GACrB,IAAI0hE,GAxCR,SAAyBhsE,EAAUoxC,GAAe,KAAMpxC,aAAoBoxC,GAAgB,MAAM,IAAI35C,UAAU,oCAAwC,CAyCpJ,CAAgBf,KAAMuhF,GAItB,GAAgBH,GAHhB9L,EAAQoM,EAAO5/E,KAAK9B,OAG2B,cAAU,GACzD,GAAgBohF,GAAuB9L,GAAQ,iBAAa,GAC5D,GAAgB8L,GAAuB9L,GAAQ,sBAAkB,GACjE,GAAgB8L,GAAuB9L,GAAQ,gBAAiB,MAChE,GAAgB8L,GAAuB9L,GAAQ,cAAU,GACzD,GAAgB8L,GAAuB9L,GAAQ,kBAAc,GAC7D,GAAgB8L,GAAuB9L,GAAQ,iBAAa,GAC5D,GAAgB8L,GAAuB9L,GAAQ,eAAW,GAC1D,GAAgB8L,GAAuB9L,GAAQ,uBAAmB,GAClE,GAAgB8L,GAAuB9L,GAAQ,cAAe,CAAC,GAC/D,GAAgB8L,GAAuB9L,GAAQ,2BAAuB,GACtE,GAAgB8L,GAAuB9L,GAAQ,2BAAuB,GACtE,GAAgB8L,GAAuB9L,GAAQ,uBAAmB,GAClE,GAAgB8L,GAAuB9L,GAAQ,uBAAmB,GAClE,GAAgB8L,GAAuB9L,GAAQ,kBAAc,GAC7D,GAAgB8L,GAAuB9L,GAAQ,uBAAmB,GAClE,GAAgB8L,GAAuB9L,GAAQ,yBAAqB,GACpE,GAAgB8L,GAAuB9L,GAAQ,aAAc,IAC7D,GAAgB8L,GAAuB9L,GAAQ,2BAAuB,GACtE,GAAgB8L,GAAuB9L,GAAQ,SAAU,QACzD,GAAgB8L,GAAuB9L,GAAQ,aAASn1E,GACxD,GAAgBihF,GAAuB9L,GAAQ,iBAAkB9zB,IAAM,WACjE8zB,EAAML,SACRK,EAAMtxE,WAAWkV,QAErB,KACA,GAAgBkoE,GAAuB9L,GAAQ,iBAAkB9zB,IAAM,WACrE,IAAImgC,EACAC,IAAoBlgF,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,KAAmBA,UAAU,GACvC,QAAzCigF,EAAmBrM,EAAMtxE,kBAA6C,IAArB29E,GAA+BA,EAAiBhjE,uBACtGwM,aAAamqD,EAAMuM,qBACnBvM,EAAMuM,oBAAsB,KACxBD,IACFtM,EAAM9uD,OAAS,OACf8uD,EAAM9zE,WAAQrB,IAGlBm1E,EAAMf,UAAU9wB,OAAO,CACrBkmB,sBAAuByX,GAAuB9L,KAEhDA,EAAMt0E,KAAK,SACb,KACA,GAAgBogF,GAAuB9L,GAAQ,wBAAyB9zB,IAAM,WAC5E,IAAIsgC,EAAcxM,EAAMf,UAAUlK,iBAAiB,CAAC,GACpDiL,EAAMyM,WAAW35E,SAAQ,SAAUkrB,GAClBA,EAAKhqB,SACXurE,cAAc,CACrBvK,QAASwX,GAEb,GACF,KACAxM,EAAM10E,gBAAgB,KACtB,IAAIohF,EAAqBpuE,EAAQyH,UAC/BA,OAAmC,IAAvB2mE,EAAgC,KAAOA,EACnD9C,EAAetrE,EAAQsrE,aACvB+C,EAAwBruE,EAAQmlE,eAChCA,OAA2C,IAA1BkJ,EAAmC,CAAC,EAAIA,EACzDC,EAAmBtuE,EAAQuuE,QAC3BA,OAA+B,IAArBD,EAA8B,KAAOA,EAC/CE,EAAiBxuE,EAAQwuE,eACzBC,EAAwBzuE,EAAQ0uE,mBAChCA,OAA+C,IAA1BD,EAAmC,IAAMA,EAC9DE,EAAwB3uE,EAAQ4uE,aAChCA,OAAyC,IAA1BD,EAAmC,KAAOA,EACzDE,EAAwB7uE,EAAQ8uE,eAChCA,OAA2C,IAA1BD,EAAmC,KAAOA,EAC3DE,EAAwB/uE,EAAQihE,cAChCA,OAA0C,IAA1B8N,EAAmC,KAAOA,EAC5D,GAAkB,OAAdtnE,EACF,MAAM,IAAI1Z,MAAM,GAAU,wCAE5B,GAAqB,OAAjB6gF,EACF,MAAM,IAAI7gF,MAAM,GAAU,2CAE5B,GAAmC,mBAAxB6gF,EAAatpE,OACtB,MAAM,IAAIvX,MAAM,sLAMlB,GAJ4C,mBAAjC6gF,EAAahqE,iBACtBgqE,EAAahqE,gBAAgB,qBAAqBpT,OC9HxD,SD8HwE,MAGhEs9E,GAA4C,mBAAnBA,EAC3B,MAAM,IAAI/gF,MAAM,GAAU,sDA+B5B,GA1BA2zE,EAAM3xE,OAAS6+E,EACflN,EAAMoN,eAAiBA,EACvBpN,EAAMj6D,UAAYA,EAClBi6D,EAAM/3D,OAAS,KACf+3D,EAAMtxE,WAAa,KACnBsxE,EAAMf,UAAY,GAAM,CACtBl5D,UAAWA,IAEbi6D,EAAMT,cAAgBA,EACtBS,EAAML,SAAU,EAChBK,EAAMhG,gBAAkB,CACtBsT,QAAS,GAAc,CACrB1D,aAAcA,IAEhB2D,eAAgB,CAAC,GAEnBvN,EAAMwN,oBAAsBR,EAC5BhN,EAAMuM,oBAAsB,KAC5BvM,EAAMS,WAAauL,GACnBhM,EAAMd,gBAAkBuE,EACxBzD,EAAMsH,gBAAkB,KACpBwF,IAEF9M,EAAMyN,gBAAkBX,GAE1B9M,EAAM5B,oBAAsB3L,EACxBoa,EAAS,CACX,IAAIa,EAAmC,kBAAZb,OAAwBhiF,EAAYgiF,EAC/D7M,EAAM2N,IAAI5L,GAAuB2L,GACnC,CAIA,O1B5IK5O,IAAmB,SAAU9gD,GAClC,IAAI4vD,EAAmBC,EAEvB,OAAmD,QAA1CD,EADI5vD,EAAK/O,OACkBk7C,iBAA6C,IAAtByjB,GAAkG,QAAzDC,EAAwBD,EAAkB57D,iBAAiD,IAA1B67D,OAA3E,EAAuHA,EAAsB38E,QAAQ,qBAAuB,CACxQ,GAAG,CACD6tE,SAAU,WACR,OAAO,CACT,K0BmIEiB,EAAM2N,IAAIvO,MAELY,CACT,CAwYA,OA5iBoB56B,EAyKP6mC,EAzKoB5mC,EAyKL,CAAC,CAC3Bx3C,IAAK,mBACLuhB,IAaA,WAEE,MAAuB,YAAhB1kB,KAAKwmB,MACd,GACC,CACDrjB,IAAK,MACL6B,MAAO,WAEL,IADA,IAAIq+C,EAASrjD,KACJynE,EAAO/lE,UAAUD,OAAQsgF,EAAa,IAAIhgF,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrFoa,EAAWpa,GAAQjmE,UAAUimE,GAE/B,IAAIyb,EAAoBrB,EAAWh5E,KAAI,SAAU9E,GAC/C,IAAIo/E,EAvMZ,SAAuBpjE,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CAuM7d,CAAc,CAChC60D,UAAW/M,EACXkN,QAASlN,EACTmN,YAAanN,EACb8M,cAAe9M,GACd9jE,EAAG,CACJ0lE,sBAAuBtmB,KAMzB,OAJAA,EAAO0+B,WAAWz/E,KAAK,CACrBghF,QAASr/E,EACTqF,SAAU+5E,IAELA,CACT,IAUA,OANIrjF,KAAKi1E,SACPmO,EAAkBh7E,SAAQ,SAAUhG,GAClCA,EAAE0yE,YACF1yE,EAAE6yE,SACJ,IAEKj1E,IACT,GAKC,CACDmD,IAAK,QACL6B,MAAO,WACL,IAAK,IAAI4uE,EAAQlyE,UAAUD,OAAQ8hF,EAAoB,IAAIxhF,MAAM6xE,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACjG0P,EAAkB1P,GAASnyE,UAAUmyE,GAUvC,OARA7zE,KAAK+hF,WAAW37E,QAAO,SAAUhE,GAC/B,OAAOmhF,EAAkBt0D,SAAS7sB,EAAEkhF,QACtC,IAAGl7E,SAAQ,SAAUhG,GACnB,OAAOA,EAAEkH,SAAS4rE,aACpB,IACAl1E,KAAK+hF,WAAa/hF,KAAK+hF,WAAW37E,QAAO,SAAUhE,GACjD,OAAQmhF,EAAkBt0D,SAAS7sB,EAAEkhF,QACvC,IACOtjF,IACT,GAGC,CACDmD,IAAK,mBACL6B,MAAO,WAEL,OAAOhF,KAAKijF,IAAIhhF,MAAMjC,KAAM0B,UAC9B,GASC,CACDyB,IAAK,YACL6B,MAAO,SAAmB4iE,GAExB,OAAO5nE,KAAKkwE,WAAW,CAACtI,GAC1B,GAOC,CACDzkE,IAAK,aACL6B,MAAO,SAAoB0iE,GACzB,IAAK3lE,MAAMmF,QAAQwgE,GACjB,MAAM,IAAI/lE,MAAM,GAAU,iFAE5B,GAAI+lE,EAAQ7lD,MAAK,SAAU+lD,GACzB,MAA8B,mBAAhBA,EAAO6B,MAAgD,mBAAlB7B,EAAOnkB,MAC5D,IACE,MAAM,IAAI9hD,MAAM,GAAU,sEAG5B,OADA3B,KAAKu0E,UAAUrE,WAAWxI,GACnB1nE,IACT,GASC,CACDmD,IAAK,eACL6B,MAAO,SAAsB4iE,GAE3B,OAAO5nE,KAAKiwE,cAAc,CAACrI,GAC7B,GAQC,CACDzkE,IAAK,gBACL6B,MAAO,SAAuB0iE,GAC5B,IAAK3lE,MAAMmF,QAAQwgE,GACjB,MAAM,IAAI/lE,MAAM,GAAU,uFAE5B,GAAI+lE,EAAQ7lD,MAAK,SAAU+lD,GACzB,MAAiC,mBAAnBA,EAAOkC,OACvB,IACE,MAAM,IAAInoE,MAAM,GAAU,sDAG5B,OADA3B,KAAKu0E,UAAUtE,cAAcvI,GACtB1nE,IACT,GAQC,CACDmD,IAAK,QACL6B,MAAO,WACL,IAAIyxE,EAASz2E,KACb,GAAIA,KAAKi1E,QACP,MAAM,IAAItzE,MAAM,GAAU,qDAQ5B,IAAIqC,EAAahE,KAAKgE,YAAc,GAAoBhE,KAAK2D,OAAQ3D,KAAKqb,WAW1E,GAVArX,EAAWkV,OAAS,WAQlB,OAPAu9D,EAAOjwD,OAAS,UAChBiwD,EAAOqG,gBAAe,GAMf94E,EAAWqV,8BACpB,EACIrZ,KAAK+iF,gBAAiB,CAGxB,IAAIS,EAAa,CACftqE,OAAQ,WACN,OAAO,IAAIkB,QAAQ2tD,EACrB,GAEF/nE,KAAKyjF,kBAAoBz/E,EAAWkV,OAAO0E,KAAK5Z,GAChDA,EAAWkV,OAAS,WAClB,IAAIwqE,EAAkBjN,EAAOlC,UAAU/I,YACnCmY,EAAuB,GAAoBH,EAAYE,EAAgB3yE,MAAMnN,MAAO8/E,EAAgB3yE,OAYxG,OAXA4yE,EAAqBhhF,KAAK,UAAU,SAAUwyB,GAC5C,IAAIpkB,EAAQokB,EAAMpkB,MAClB2yE,EAAgB/mE,0CAA0C5L,GAC1D0lE,EAAOgN,mBACT,IAEAE,EAAqBjhF,GAAG,UAAU,SAAU2yB,GAC1C,IAAItkB,EAAQskB,EAAMtkB,MAClB2yE,EAAgBjnE,SAAS1L,EAC3B,IACA0lE,EAAOsM,gBAAgBY,GAChB3/E,CACT,CACF,CAsCA,GAlCAA,EAAWtB,GAAG,SAAS,SAAU6yB,GAC/B,IAAI/zB,EAAQ+zB,EAAM/zB,MAClB,KAAMA,aAAiBG,OAAQ,CAE7B,IAAIC,EAAMJ,EACVA,EAAQsE,OAAOC,KAAKnE,GAAKoE,QAAO,SAAU2J,EAAKxM,GAE7C,OADAwM,EAAIxM,GAAOvB,EAAIuB,GACRwM,CACT,GAAG,IAAIhO,MAAMC,EAAI4lB,SACnB,CAOAhmB,EAAMA,MAAQA,EACdi1E,EAAOj1E,MAAQA,EACfi1E,EAAOjwD,OAAS,QAChBiwD,EAAOqG,gBAAe,GAGtBrG,EAAOz1E,KAAK,QAASQ,EACvB,IACAxB,KAAKgE,WAAaA,EAClBhE,KAAK+hF,WAAW35E,SAAQ,SAAUotB,GACjBA,EAAMlsB,SACZwrE,WACX,IACA90E,KAAKu0E,UAAU9K,KAAK,CAClBE,sBAAuB3pE,KACvB6R,OAAQ,KACRy4D,QAAStqE,KAAKw0E,kBAEZx0E,KAAK48E,gBAAiB,CACxB,IAAIgH,EAAyB5jF,KAAKu8E,eAIlCv8E,KAAKu8E,eAAiB/6B,GAAMumB,GAM5BvmB,IAAM,WACJi1B,EAAO8F,eAAiBqH,CAC1B,GAFApiC,EAGF,MASSxhD,KAAKu0E,UAAU1E,aAAapuE,OAAS,GAC5CzB,KAAKu8E,iBAKPv8E,KAAKud,OAASvd,KAAKu0E,UAAU/I,YAI7BxrE,KAAKi1E,SAAU,EACfj1E,KAAK+hF,WAAW35E,SAAQ,SAAUutB,GACjBA,EAAMrsB,SACZ2rE,SACX,GACF,GAQC,CACD9xE,IAAK,UACL6B,MAAO,WACL,IAAI6+E,EACJ7jF,KAAKu8E,eAAe8D,SACpBrgF,KAAK88E,eAAeuD,SACpBl1D,aAAanrB,KAAK6hF,qBAClB7hF,KAAKiwE,cAAcjwE,KAAKu0E,UAAU1E,cAClC7vE,KAAKu0E,UAAUzK,UAKf9pE,KAAKi1E,SAAU,EAIfj1E,KAAKkD,qBACqC,QAAzC2gF,EAAoB7jF,KAAKgE,kBAA8C,IAAtB6/E,GAAwCA,EAAkB3gF,qBAC5GlD,KAAKgE,WAAa,KAClBhE,KAAKud,OAAS,KACdvd,KAAK+hF,WAAW35E,SAAQ,SAAUovE,GACjBA,EAAMluE,SACZ4rE,aACX,GACF,GACC,CACD/xE,IAAK,wBACL6B,MAAO,WACL,IAAI2xE,EAAS32E,KACRA,KAAK6hF,sBACR7hF,KAAK6hF,oBAAsB/2D,YAAW,WACpC6rD,EAAOnwD,OAAS,UAChBmwD,EAAOmG,gBACT,GAAG98E,KAAK8iF,qBAEZ,GAOC,CACD3/E,IAAK,aACL6B,MAAO,SAAoBslE,GACzB,IAAIuM,EAAS72E,KACT8jF,IAAoBpiF,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,KAAmBA,UAAU,GACvF,IAAK1B,KAAKgE,WACR,MAAM,IAAIrC,MAAM,GAAU,+DAK5B3B,KAAKu0E,UAAU6I,iBACf,IAAI0E,EAAiC,mBAAZxX,EAAyBA,EAAQtqE,KAAKu0E,UAAUlK,iBAAiB,CAAC,IAAMC,EAC7FtqE,KAAK60E,eAAiBiP,EACxB9jF,KAAK60E,cAAc,CACjBvK,QAASwX,EACT7I,WAAY,SAAoBsH,GAC9BD,GAA4C,mBAAjBC,EAA8BA,EAAauB,GAAevB,EAAc1J,EAAOtC,WAC1GsC,EAAO0F,iBACP1F,EAAOkG,uBACT,KAGFuD,GAAoBwB,EAAa9hF,KAAKu0E,WACtCv0E,KAAKu8E,iBACLv8E,KAAK+8E,wBAET,GACC,CACD55E,IAAK,aACL6B,MAAO,WAKL,OAJIhF,KAAKi1E,SAEPj1E,KAAKu0E,UAAU6I,iBAEVp9E,KAAKu0E,UAAUlK,iBAAiB,CAAC,EAC1C,GACC,CACDlnE,IAAK,YACL6B,MAAO,WACL,IAAI4zE,EAAYl3E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACrF,IAAK1B,KAAKi1E,QACR,MAAM,IAAItzE,MAAM,GAAU,8DAE5B,OAAO3B,KAAK+1E,WAAW6C,EACzB,GACC,CACDz1E,IAAK,UACL6B,MAAO,WACL,IAAKhF,KAAKgE,WACR,MAAM,IAAIrC,MAAM,GAAU,4DAE5B3B,KAAKgE,WAAWsa,aAAapF,QAC/B,IA1iB8DyhC,GAAY,GAAkBD,EAAYh6C,UAAWi6C,GAAiBC,GAAa,GAAkBF,EAAaE,GAAc90C,OAAO0d,eAAek3B,EAAa,YAAa,CAAE/6B,UAAU,IA4iBrP4hE,CACT,CA3gBiC,CA2gB/B,IACF,kBEljBWwC,IAAuC,IAAA/gB,eAAc,MCDhE,gBCAA,SAAS,GAAe0J,EAAKprE,GAAK,OAKlC,SAAyBorE,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAOA,CAAK,CAL3B,CAAgBA,IAIzD,SAA+BA,EAAKprE,GAAK,IAAIy9C,EAAK,MAAQ2tB,EAAM,KAAO,oBAAsB3oD,QAAU2oD,EAAI3oD,OAAOC,WAAa0oD,EAAI,cAAe,GAAI,MAAQ3tB,EAAI,CAAE,IAAI6tB,EAAIC,EAAIC,EAAIC,EAAIC,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIJ,GAAM/tB,EAAKA,EAAGj9C,KAAK4qE,IAAMxoD,KAAM,IAAM5iB,EAAG,CAAE,GAAIwE,OAAOi5C,KAAQA,EAAI,OAAQkuB,GAAK,CAAI,MAAO,OAASA,GAAML,EAAKE,EAAGhrE,KAAKi9C,IAAK56B,QAAU6oD,EAAK1qE,KAAKsqE,EAAG5nE,OAAQgoE,EAAKvrE,SAAWH,GAAI2rE,GAAK,GAAK,CAAE,MAAOrrE,GAAOsrE,GAAK,EAAIL,EAAKjrE,CAAK,CAAE,QAAU,IAAM,IAAKqrE,GAAM,MAAQluB,EAAG36B,SAAW2oD,EAAKhuB,EAAG36B,SAAUte,OAAOinE,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIG,EAAI,MAAML,CAAI,CAAE,CAAE,OAAOG,CAAM,CAAE,CAJ1gB,CAAsBN,EAAKprE,IAE5F,SAAqCqiB,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAF7T,CAA4BV,EAAKprE,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD,EAAoB,CAG7J,SAAS,GAAkB2rE,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CCKlL,IAAIkkE,GAAoB,CAAC,UAAU5+E,OAAO,UAAc,KAAM,wBAAwBA,OAAO,GAAS,KAAM,8BAA8BA,OAAO,GAAS,MACtJ6+E,GAAkB,+BAA+B7+E,OAAO,GAAS,KAC9D,SAAS8+E,GAAoBpzD,GAClC,IAAIqzD,EDKa,IAHC,IAAAC,aAAW,SAAU57D,GACnC,OAAOA,EAAI,CACb,GAAG,GACwC,GAChB,GCLzB+lD,EAAgB/B,KAChB6X,GCVG,IAAAjY,YAAW2X,IDWdO,EAAiBD,aAAiD,EAASA,EAAYC,eACvF7U,GAAe,IAAAb,QAAO99C,GACtBmR,GAAY,IAAA2sC,QAAO,MAOvB,GAHIyV,IACFpiD,EAAYoiD,EAAYE,cAEA,OAAtBtiD,EAAUpJ,QAAkB,CAI9B,IAAI3f,EAAS,IAAI,GAAc4X,IAC3By9C,GAAiB+V,KAOnBprE,EAAO0jE,gBAAkB0H,GAAkB,CAAC,GAE9CE,GAAiB1zD,EAAM0xD,aAAc,GAAGp9E,OAAO4+E,GAAmB,CAACzV,GAAiB0V,OAKhF1V,GAAiB+V,IACnBprE,EAAO08D,QAELrH,GAGFA,EAAckW,aAAa,CACzBvrE,OAAQA,IAGG4X,EAAMqxD,QACrBlgD,EAAUpJ,QAAU3f,CACtB,CAEE,IAuBMwrE,EAvBFvrE,EAAU8oB,EAAUpJ,QACpB8rD,EAAYlV,EAAa52C,SACzB8rD,EAAUtpE,YAAcyV,EAAMzV,YAChClC,EAAQoE,OAAOhT,SAASumB,EAAMzV,WAAWnC,SACzCu2D,EAAa52C,QAAU/H,GAErB6zD,EAAUnC,eAAiB1xD,EAAM0xD,eACnCgC,GAAiB1zD,EAAM0xD,aAAc,GAAGp9E,OAAO4+E,GAAmB,CAACzV,GAAiB0V,MACpF9qE,EAAQnV,WAAWyU,UAAUqY,EAAM0xD,cAActpE,SACjDu2D,EAAa52C,QAAU/H,GAErB6zD,EAAU9P,gBAAkB/jD,EAAM+jD,gBACpC17D,EAAQ07D,cAAgB/jD,EAAM+jD,cAC9BpF,EAAa52C,QAAU/H,GAErB6zD,EAAUvC,iBAAmBtxD,EAAMsxD,iBAIrCjpE,EAAQ4pE,gBAAkBjyD,EAAMsxD,eAChC3S,EAAa52C,QAAU/H,GAErB6zD,EAAUrC,qBAAuBxxD,EAAMwxD,sBAIzCnpE,EAAQ2pE,oBAA6E,QAAtD4B,EAAwB5zD,EAAMwxD,0BAA0D,IAA1BoC,EAAmCA,EAAwB,IACxJjV,EAAa52C,QAAU/H,GAY3B,IAAI6+C,GAAkB,IAAAf,QAAO,MACzBgW,GAAQ,KAAAC,uBAAqB,IAAAC,cAAY,WAC3C,IAAI5rE,EAAS+oB,EAAUpJ,QAiBvB,OAdgC,OAA5B82C,EAAgB92C,QAEb3f,EAAO+7D,UACV/7D,EAAO08D,QACPuO,MAOFh5D,aAAawkD,EAAgB92C,SAC7B3f,EAAO82D,uBAAwB,GAE1B,WAWLL,EAAgB92C,QAAU/N,YAV1B,WACE5R,EAAO4wD,SACT,IAaA5wD,EAAO82D,uBAAwB,CACjC,CACF,GAAG,CAACmU,KAAe,WACjB,OAAOliD,EAAUpJ,OACnB,IAAG,WACD,OAAOoJ,EAAUpJ,OACnB,IACA,OAAO+rD,CACT,CACA,SAASJ,GAAiBhC,EAAcuC,GACM,mBAAjCvC,EAAahqE,iBAGxBusE,EAAW3+E,OAAOiR,SAASjP,SAAQ,SAAUkf,GAC3Ck7D,EAAahqE,gBAAgB8O,EAC/B,GACF,CElJA,IAAI,GAAY,CAAC,YACjB,SAAS,GAAyBzI,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAMpe,SAAS,GAAcqT,GAC5B,IAAI/c,EAAW+c,EAAK/c,SAEhB2C,EAASgrE,GADH,GAAyB5wD,EAAM,KAEzC,OAAKpa,EAAO+7D,QAGQ,gBAAoB5I,GAAqB/tC,SAAU,CACrEt5B,MAAOkU,GACO,gBAAoBgzD,GAAa5tC,SAAU,CACzDt5B,MAAOkU,EAAOq7D,WACbh+D,IANM,IAOX,CCfO,MAAMyuE,GAAmBA,CAAKhgF,EAAUigF,KAC3C,MAAOC,EAAgBC,GAAqBt0D,EAAAA,SAAkB7rB,GAiB9D,OAfA6rB,EAAAA,WAAgB,KAEZ,MAAM1vB,EAAU2pB,YAAW,KACvBq6D,EAAkBngF,EAAM,GACzBigF,GAIH,MAAO,KACH95D,aAAahqB,EAAQ,CACxB,GAGF,CAAC6D,EAAOigF,IAEJC,CAAc,ECtBzB,SAAS,GAAQ5kE,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK3O,IAAI,GAAYknD,EAAoC,CAClD79D,KAAM,YACNm+D,WAAW,IAEb,SAASsd,GAA2Br0E,EAAOo4D,GAIzC,OAAOp4D,EAAM1G,mBAAmBvE,OAAOC,KAAKojE,EAAaoB,kBAAkBvkE,QAAO,SAAU2J,EAAKxM,GAC/F,OAAO,GAAc,GAAc,CAAC,EAAGwM,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGxM,OAAKhD,GAC5E,GAAG,CAAC,GACN,CACA,IAyEA,GAzEuB,WACrB,IAAI8oE,EAAWvnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EAC/EmB,EAAYxnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EACpF,OAAO,SAAUoB,GACf,IAAKA,IAAiBiJ,GAAcjJ,EAAaoB,kBAC/C,MAAM,IAAI5oE,MAAM,GAAU,qDAE5B,IAAIotE,EAAiB,CAAC,EActB,MAAO,CACLvF,OAAQ,gBACRC,KAAM,SAAcC,GAClB,IAAIC,EAAwBD,EAAYC,sBACxCV,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBF,IAAe,CAAC,EAAG,CACpFC,sBAAuBA,KACrB,EACN,EACAlmB,OAAQ,SAAgBomB,GACtB,IAAIF,EAAwBE,EAAcF,sBAC1CV,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBC,IAAiB,CAAC,EAAG,CACtFF,sBAAuBA,KACrB,EACN,EACAG,QAAS,SAAiBx2C,GACxB,IAAIviB,EAAQuiB,EAAKviB,MAEjB,OADAm4D,IACOkc,GAA2Br0E,EAAOo4D,EAC3C,EACAY,eAAgB,SAAwBC,EAAaH,GACnD,IAAIwb,EACAC,EAAoBtlF,KAAK4pE,qBAAqBC,GAClD,OAAO,GAAc,GAAc,CAAC,EAAGG,GAAc,CAAC,EAAG,CACvDgN,UAAW,GAAc,GAAc,CAAC,EAAGsO,GAAoB,CAAC,EAAG,CACjEnc,aAAc,GAAc,GAAc,CAAC,EAAGmc,EAAkBnc,cAAe,CAAC,EAAG,CACjFoB,iBAAkB+O,GAAsB,IAAI,oBAAyF,QAAnD+L,EAAwBrb,EAAYgN,iBAAiD,IAA1BqO,OAAmC,EAASA,EAAsBlc,aAAaoB,kBAAmB,IAAI,oBAAqC+a,EAAkBnc,aAAaoB,mBAAmBl7D,sBAIlV,EACAu6D,qBAAsB,SAA8Bz0C,GAClD,IAAI5X,EAAS4X,EAAM5X,OAInB,OAHKwxD,EAAe5E,SAClB4E,EAAe5E,OA9CrB,SAAgB5sD,GACd,OAAO,SAAUgtD,GAEf,IAAIgb,EAAcH,GAA2B7nE,EAAOxM,MAAOo4D,GACvDqc,EAAuBlM,GAAsBiM,EAAa,IAAI,oBAAqChb,IAGvGpB,EAAaoB,iBAAmBA,EAGhChtD,EAAOd,SAAS+oE,GAAsBtsE,QACxC,CACF,CAkC8BixD,CAAO5sD,IAE1B,CACL4sD,OAAQ4E,EAAe5E,OACvBhB,aAAcA,EAElB,EACAqB,0BAA2B,SAAmCz5D,EAAOskB,GACnE,IAAIi1C,EAAUj1C,EAAMi1C,QACpB,OAAOgP,GAAsBvoE,EAAO,IAAI,oBAAqC,GAAc,GAAc,CAAC,EAAGu5D,EAAQ0M,WAAY7N,EAAaoB,mBAChJ,EACAF,iBAAkB,SAA0BC,GAC1C,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAU,CAAC,EAAG,CACnD0M,UAAW,GAAc,GAAc,CAAC,EAAG1M,EAAQ0M,WAAY7N,EAAaoB,mBAEhF,EAEJ,CACF,kBC1EA,MAAMkb,GAAoB,CAAC,SAErBC,GAAuB,IAEtB,SAASC,KACZ,MAAM,OAAExb,GAAWiG,MACb,MAAEr/D,EAAK,SAAE4uD,IAAasD,EAAAA,EAAAA,OACtB,aAAEiE,GAAiBJ,IAEnB8e,ECtBH,SACHzyB,EACA8xB,QAAK,IAALA,IAAAA,EAAQ,KAER,MAAMY,EAAQh1D,EAAAA,SAsBd,OApBAA,EAAAA,WAAgB,IACL,KACEg1D,EAAMhtD,SAIX1N,aAAa06D,EAAMhtD,QAAQ,GAEhC,IAEwB,WAAc,IAAD,IAAA4uC,EAAA/lE,UAAAD,OAATJ,EAAI,IAAAU,MAAA0lE,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJtmE,EAAIsmE,GAAAjmE,UAAAimE,GAC/B,MAAMme,EAAWh7D,YAAW,KACxBqoC,EAAIlxD,WAAC,EAAGZ,EAAK,GACd4jF,GAEH95D,aAAa06D,EAAMhtD,SAEnBgtD,EAAMhtD,QAAUitD,CACpB,CAGJ,CDLkCC,EAAY,KACtCpmB,EAAS,CAAE1+D,KAAM,gBAAiB+D,OAAO,GAAQ,GAIlD0gF,GAAuB,KE9BvB,IAA6BpX,EAC3BD,GAAa,GAAkB,CACpC9D,iBF+Ba,CAAEyb,SAAU,IE9BxB1X,GFgCDz9C,EAAAA,WAAgB,KACZ,GAAI9f,EAAMk1E,2BAA4B,CAClC,MACMC,EADY,IAAIvzD,gBAAgBpO,OAAO0iD,SAAS/tD,QACxBwL,IAAI,SAElC,GAAIwhE,EACA,IACI,MAAMC,EAAaC,UAAUF,GAC7BvmB,EAAS,CAAE1+D,KAAM,kBAAmB+D,MAAOmhF,GAC/C,CAAE,MAAOnsE,GACLxX,QAAQhB,MAAM,6BAClB,CAGJm+D,EAAS,CACL1+D,KAAM,qCACN+D,OAAO,GAEf,IACD,CAAC+L,EAAMk1E,2BAA4BtmB,IAItC,MAAM0mB,EAAsBrB,GACxBj0E,EAAMo1E,WACNT,IAGJ70D,EAAAA,WAAgB,KACZq2C,EAAa,CAAEx8D,MAAO27E,GAAsB,GAC7C,CAACnf,EAAcmf,IAElBx1D,EAAAA,WAAgB,KACP9f,EAAMu1E,iBAEP3mB,EAAS,CAAE1+D,KAAM,kBAAmB+D,MAAO,IAC/C,GACD,CAAC+L,EAAMu1E,gBAAiB3mB,IAG3B9uC,EAAAA,WAAgB,KACU40D,GAAkB5jE,MAAM0kE,GAC1CF,EAAoBp3D,SAASs3D,OAGEC,EAAAA,GAAAA,MAG/Brc,EAAOkc,EACX,GACD,CAAClc,EAAQkc,IAgBZ,OACIx1D,EAAAA,cAAA,OAAKS,UAAU,wBACXT,EAAAA,cAAA,SACI41D,WAAS,EACTxlF,KAAK,OACLqwB,UAAU,eACViS,YAAY,0BAEZv+B,MAAO+L,EAAMo1E,WACbzlD,SAtBRriB,IAEAshD,EAAS,CAAE1+D,KAAM,kBAAmB+D,MAAOqZ,EAAM4B,OAAOjb,QACxD26D,EAAS,CAAE1+D,KAAM,gBAAiB+D,OAAO,IACzC4gF,GAAuB,IAoBnB/0D,EAAAA,cAAA,OAAKS,UAAU,0BACXT,EAAAA,cAACgnC,EAAAA,GAAM,CACHvmC,UAAU,eACVylB,UAAU,gBACVC,KAAK,KACL,aAAW,cACXrU,QAvBU+jD,KACtB/mB,EAAS,CAAE1+D,KAAM,kBAAmB+D,MAAO,IAAK,GAwBpC6rB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMyvB,EAAAA,QAKlC,CAAC4hB,GAAA9uC,aAAA,mBG/HM,SAASplB,KACd,IAAK,IAAIg2C,EAAO/lE,UAAUD,OAAQotB,EAAa,IAAI9sB,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrF94C,EAAW84C,GAAQjmE,UAAUimE,GAE/B,OAAO94C,EAAWzoB,OAAOiR,SAASsK,KAAK,IACzC,CCLA,IAAI,GAAY,CAAC,QAAS,qBAAsB,wBAAyB,YAAa,YAAa,cACnG,SAAS,KAAiS,OAApR,GAAW7b,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAyBmd,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAI3e,SAAS0mE,GAAcrzD,GACrB,IAAIzE,EAAayE,EAAKzE,WACpBtY,EAAW+c,EAAK/c,SAChB+oE,EAAqBhsD,EAAKgsD,mBAC1BpB,EAAgB5qD,EAAK4qD,cACrB0I,EAAwBtzD,EAAKszD,sBAC3BC,EAAU3I,EAAgBoB,EAAqBsH,EACnD,OAAoB,gBAAoBC,EAAS,CAC/Cv1D,UAAW4sD,EAAgBrvD,EAAW8wD,YAAc9wD,EAAWi4D,gBAC9DvwE,EACL,CACO,SAASwwE,GAAkB5xD,GAChC,IAAI3iB,EAAQ2iB,EAAM3iB,MAChBw0E,EAAwB7xD,EAAMmqD,mBAC9BA,OAA+C,IAA1B0H,EAAmC,OAASA,EACjEC,EAAwB9xD,EAAMyxD,sBAC9BA,OAAkD,IAA1BK,EAAmC,OAASA,EACpEC,EAAkB/xD,EAAMtnB,UACxBA,OAAgC,IAApBq5E,EAA6B,KAAOA,EAChD51D,EAAY6D,EAAM7D,UAClBzC,EAAasG,EAAMtG,WACnBiC,EAAQ,GAAyBqE,EAAO,IAC1C,OAAoB,gBAAoB,OAAQ,GAAS,CAAC,EAAGrE,EAAO,CAClEQ,UAAWG,GAAG5C,EAAWvZ,KAAMgc,KAC7B9e,EAAMzJ,KAAI,SAAU2H,EAAMy2E,GAC5B,IAAIC,EAAaD,IAAc30E,EAAM/Q,OAAS,EAC9C,OAAoB,gBAAoB,EAAA4lF,SAAU,CAChDlkF,IAAKgkF,GACJz2E,EAAK3H,KAAI,SAAUu+E,EAASC,GAC7B,OAAoB,gBAAoBZ,GAAe,CACrDxjF,IAAKokF,EACL14D,WAAYA,EACZywD,mBAAoBA,EACpBsH,sBAAuBA,EACvB1I,cAAeoJ,EAAQpJ,eACtBoJ,EAAQtiF,MACb,KAAKoiF,GAA2B,gBAAoB,OAAQ,CAC1D91D,UAAWzC,EAAWhhB,WACrBA,GACL,IACF,CC9CA,IAAI,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAW/H,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAyBmd,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAASm0C,GAAU9gC,GACxB,IAAIk0D,EAAkBl0D,EAAKzE,WACzBA,OAAiC,IAApB24D,EAA6B,CAAC,EAAIA,EAC/C12D,EAAQ,GAAyBwC,EAAM,IACzC,OAAoB,gBAAoByzD,GAAmB,GAAS,CAClEl4D,WAAY,CACVvZ,KAAMmc,GAAG,gBAAiB5C,EAAWvZ,MACrCqqE,YAAaluD,GAAG,4BAA6B5C,EAAW8wD,aACxDmH,eAAgBr1D,GAAG,+BAAgC5C,EAAWi4D,gBAC9Dj5E,UAAW4jB,GAAG,0BAA2B5C,EAAWhhB,aAErDijB,GACL,CCnBA,IAAI,GAAY,CAAC,MAAO,YAAa,qBAAsB,wBAAyB,aACpF,SAAS,KAAiS,OAApR,GAAWhrB,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAyBmd,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAAS,GAAUqT,GACxB,IAAIg+C,EAAMh+C,EAAKg+C,IACbvsE,EAAYuuB,EAAKvuB,UACjBu6E,EAAqBhsD,EAAKgsD,mBAC1BsH,EAAwBtzD,EAAKszD,sBAC7B/4E,EAAYylB,EAAKzlB,UACjBijB,EAAQ,GAAyBwC,EAAM,IACrCgpB,EAAWyhC,GAAkBzM,EAAI4B,iBAAkBnuE,IAAc,GAEjEyN,GADazQ,MAAMmF,QAAQo1C,GAAYA,EAAW,CAACA,IAChCvzC,KAAI,SAAU0+E,GACnC,OAAO/I,GAAoB,GAAS+I,EAAYziF,OAAS,IAC3D,IACA,OAAoB,gBAAoBovD,GAAsB,GAAS,CAAC,EAAGtjC,EAAO,CAChFte,MAAOA,EACP8sE,mBAAoBA,EACpBsH,sBAAuBA,EACvB/4E,UAAWA,IAEf,CCzBA,IAAI,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAW/H,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAyBmd,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAASynE,GAAQp0D,GACtB,IAAIk0D,EAAkBl0D,EAAKzE,WACzBA,OAAiC,IAApB24D,EAA6B,CAAC,EAAIA,EAC/C12D,EAAQ,GAAyBwC,EAAM,IACzC,OAAoB,gBAAoByzD,GAAmB,GAAS,CAClEl4D,WAAY,CACVvZ,KAAMmc,GAAG,cAAe5C,EAAWvZ,MACnCqqE,YAAaluD,GAAG,0BAA2B5C,EAAW8wD,aACtDmH,eAAgBr1D,GAAG,6BAA8B5C,EAAWi4D,gBAC5Dj5E,UAAW4jB,GAAG,wBAAyB5C,EAAWhhB,aAEnDijB,GACL,CCnBA,IAAI,GAAY,CAAC,MAAO,YAAa,qBAAsB,wBAAyB,aACpF,SAAS,KAAiS,OAApR,GAAWhrB,OAAOyqB,OAASzqB,OAAOyqB,OAAO3S,OAAS,SAAUqC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAASnd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO0b,EAAc/Y,OAAOpF,UAAUwf,eAAepe,KAAK+c,EAAQ1b,KAAQ8c,EAAO9c,GAAO0b,EAAO1b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAyBmd,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAAS,GAAQqT,GACtB,IAAIg+C,EAAMh+C,EAAKg+C,IACbvsE,EAAYuuB,EAAKvuB,UACjBu6E,EAAqBhsD,EAAKgsD,mBAC1BsH,EAAwBtzD,EAAKszD,sBAC7B/4E,EAAYylB,EAAKzlB,UACjBijB,EAAQ,GAAyBwC,EAAM,IACrCgpB,EAAWyhC,GAAkBzM,EAAI6B,eAAgBpuE,IAAc,GAE/DyN,GADazQ,MAAMmF,QAAQo1C,GAAYA,EAAW,CAACA,IAChCvzC,KAAI,SAAU0+E,GACnC,OAAO/I,GAAoB,GAAS+I,EAAYziF,OAAS,IAC3D,IACA,OAAoB,gBAAoB0iF,GAAoB,GAAS,CAAC,EAAG52D,EAAO,CAC9Ete,MAAOA,EACP8sE,mBAAoBA,EACpBsH,sBAAuBA,EACvB/4E,UAAWA,IAEf,CCzBA,SAAS,GAAe6+D,EAAKprE,GAAK,OAKlC,SAAyBorE,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAOA,CAAK,CAL3B,CAAgBA,IAIzD,SAA+BA,EAAKprE,GAAK,IAAIy9C,EAAK,MAAQ2tB,EAAM,KAAO,oBAAsB3oD,QAAU2oD,EAAI3oD,OAAOC,WAAa0oD,EAAI,cAAe,GAAI,MAAQ3tB,EAAI,CAAE,IAAI6tB,EAAIC,EAAIC,EAAIC,EAAIC,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIJ,GAAM/tB,EAAKA,EAAGj9C,KAAK4qE,IAAMxoD,KAAM,IAAM5iB,EAAG,CAAE,GAAIwE,OAAOi5C,KAAQA,EAAI,OAAQkuB,GAAK,CAAI,MAAO,OAASA,GAAML,EAAKE,EAAGhrE,KAAKi9C,IAAK56B,QAAU6oD,EAAK1qE,KAAKsqE,EAAG5nE,OAAQgoE,EAAKvrE,SAAWH,GAAI2rE,GAAK,GAAK,CAAE,MAAOrrE,GAAOsrE,GAAK,EAAIL,EAAKjrE,CAAK,CAAE,QAAU,IAAM,IAAKqrE,GAAM,MAAQluB,EAAG36B,SAAW2oD,EAAKhuB,EAAG36B,SAAUte,OAAOinE,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIG,EAAI,MAAML,CAAI,CAAE,CAAE,OAAOG,CAAM,CAAE,CAJ1gB,CAAsBN,EAAKprE,IAE5F,SAAqCqiB,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAF7T,CAA4BV,EAAKprE,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD,EAAoB,CAG7J,SAAS,GAAkB2rE,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CCHlL,SAAS,GAAe4sD,EAAKprE,GAAK,OAKlC,SAAyBorE,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAOA,CAAK,CAL3B,CAAgBA,IAIzD,SAA+BA,EAAKprE,GAAK,IAAIy9C,EAAK,MAAQ2tB,EAAM,KAAO,oBAAsB3oD,QAAU2oD,EAAI3oD,OAAOC,WAAa0oD,EAAI,cAAe,GAAI,MAAQ3tB,EAAI,CAAE,IAAI6tB,EAAIC,EAAIC,EAAIC,EAAIC,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIJ,GAAM/tB,EAAKA,EAAGj9C,KAAK4qE,IAAMxoD,KAAM,IAAM5iB,EAAG,CAAE,GAAIwE,OAAOi5C,KAAQA,EAAI,OAAQkuB,GAAK,CAAI,MAAO,OAASA,GAAML,EAAKE,EAAGhrE,KAAKi9C,IAAK56B,QAAU6oD,EAAK1qE,KAAKsqE,EAAG5nE,OAAQgoE,EAAKvrE,SAAWH,GAAI2rE,GAAK,GAAK,CAAE,MAAOrrE,GAAOsrE,GAAK,EAAIL,EAAKjrE,CAAK,CAAE,QAAU,IAAM,IAAKqrE,GAAM,MAAQluB,EAAG36B,SAAW2oD,EAAKhuB,EAAG36B,SAAUte,OAAOinE,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIG,EAAI,MAAML,CAAI,CAAE,CAAE,OAAOG,CAAM,CAAE,CAJ1gB,CAAsBN,EAAKprE,IAE5F,SAAqCqiB,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAF7T,CAA4BV,EAAKprE,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD,EAAoB,CAG7J,SAAS,GAAkB2rE,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CCE3K,SAAS6nE,KACd,IACEC,GADSlmF,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC5DkmF,WAChB1uE,EAASozD,KACTub,EDAC,WACL,IAAI3uE,EAASozD,KACTwb,EAAc3b,KACdL,EAAUgc,EAAY/b,aAIxB0B,EAAa,IAHC,IAAAC,WAAS,WACrB,OAAOx0D,EAAO6uE,YAChB,IACuC,GACvCzd,EAAUmD,EAAW,GACrBua,EAAkBva,EAAW,GAC3B6P,EAAehT,EAAQwB,GACvBmN,GAAa,IAAA6L,cAAY,SAAUhD,GACrC5oE,EAAO+/D,WAAW6I,EACpB,GAAG,CAAC5oE,IACAmkE,GAAkB,IAAAyH,cAAY,SAAUvH,GAC1CuK,EAAYzK,gBAAgBE,EAC9B,GAAG,CAACuK,IAUJ,OATA,IAAA/Z,YAAU,WACR,SAASka,IACPD,EAAgB9uE,EAAO6uE,aACzB,CAEA,OADA7uE,EAAOhX,YAAY,SAAU+lF,GACtB,WACL/uE,EAAOpW,eAAe,SAAUmlF,EAClC,CACF,GAAG,CAAC/uE,IACG,CACLoxD,QAASA,EACT2O,WAAYA,EACZqE,aAAcA,EACdD,gBAAiBA,EAErB,CChCwB6K,GACpB5d,EAAUud,EAAgBvd,QAC1B2O,EAAa4O,EAAgB5O,WAC7BqE,EAAeuK,EAAgBvK,aAC/BD,EAAkBwK,EAAgBxK,gBAChC8K,EFJC,WACL,IAAIjvE,EAASozD,KACTwb,EAAc3b,KAIhBsB,EAAa,IAHC,IAAAC,WAAS,WACrB,OAAOpC,GAAsBwc,EAC/B,IACuC,GACvCM,EAAgB3a,EAAW,GAC3B4a,EAAmB5a,EAAW,GAoBhC,OAnBA,IAAAM,YAAU,WACR,SAASka,IACP,IAAIl1E,EAAU+0E,EAAYrc,aAKV,OAAZ14D,GACFs1E,EAAiB,CACft1E,QAASA,EACT24D,cAAeoc,EAAYnc,oBAGjC,CAEA,OADAzyD,EAAOhX,YAAY,SAAU+lF,GACtB,WACL/uE,EAAOpW,eAAe,SAAUmlF,EAClC,CACF,GAAG,CAAC/uE,EAAQ4uE,IACLM,CACT,CEzB0BE,GACtBv1E,EAAUo1E,EAAkBp1E,QAC5B24D,EAAgByc,EAAkBzc,cAChCuX,GAAM,IAAA6B,cAAY,WACpB,IAAK,IAAIrd,EAAO/lE,UAAUD,OAAQ8mF,EAAc,IAAIxmF,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACtF4gB,EAAY5gB,GAAQjmE,UAAUimE,GAGhC,OADAzuD,EAAO+pE,IAAIhhF,MAAMiX,EAAQqvE,GAClB,WACLrvE,EAAOsvE,MAAMvmF,MAAMiX,EAAQqvE,EAC7B,CACF,GAAG,CAACrvE,IACAuvE,GAAU,IAAA3D,cAAY,WACxB5rE,EAAOuvE,SACT,GAAG,CAACvvE,IAWJ,OAVA20D,IAA0B,WACxB,GAAI+Z,EAAY,CACd,IAAIc,EAAU,WAAoB,EAElC,OADAxvE,EAAOhX,YAAY,QAASwmF,GACrB,WACL,OAAOxvE,EAAOpW,eAAe,QAAS4lF,EACxC,CACF,CACA,OAAO,WAAa,CACtB,GAAG,CAACxvE,EAAQ0uE,IACL,CACL70E,QAASA,EACT24D,cAAeA,EACfpB,QAASA,EACT2O,WAAYA,EACZqE,aAAcA,EACdD,gBAAiBA,EACjB4F,IAAKA,EACLwF,QAASA,EACTjiE,OAAQtN,EAAOsN,OACfhlB,MAAO0X,EAAO1X,MAElB,yCCXA,SAASmnF,GAAWr1D,GAA+C,IAA9C,YAAEs1D,EAAc,GAAE,IAAEtX,GAAuBh+C,EAC5D,MAAM,MAAEviB,IAAUkyD,EAAAA,EAAAA,MAEZ4lB,EAAmBD,EAAY5mF,OAAO,GACtC8mF,EACFF,EAAYnnF,OAAS,EAAC,CACf,CAAEsnF,SAAS,IAAM3jF,QAAAwzD,EAAAA,GAAAA,GAAKiwB,IACvBA,EACJG,GAAwB1mB,EAAAA,GAAAA,GAC1B,CAAEC,QAAQ,GACVumB,GAGJ,IAAIG,EACJ,GAAiC,QAA7Bl4E,EAAMm4E,mBAA8B,CACpC,IAAI50C,EACAxwC,EAEgB,wBAAhBwtE,EAAItW,QACJ1mB,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMqlB,EAAAA,IAASnjB,GAAG,SACV,+BAAhB86B,EAAItW,UACX1mB,EAAOzjB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMslB,EAAAA,IAAUpjB,GAAG,SAClC1yC,EAAW,IAAGwtE,EAAIxtE,WAGtBmlF,EACIp4D,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKS,UAAU,uBACVgjB,EACAg9B,EAAItW,QAAQ,IAAEl3D,GAGnB+sB,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAM0wB,EAAAA,MAG1B,CAEA,OACIn0C,EAAAA,cAAA,OAAKS,UAAU,wBACV23D,EAEDp4D,EAAAA,cAAA,MAAIS,UAAU,mBACT03D,EAAsBjgF,KACnB,CAAAosB,EAA8CvxB,KAAW,IAAxD,OAAE2+D,EAAM,QAAEwmB,EAAO,KAAEp/E,EAAI,KAAEuE,GAAkBinB,EACxC,OAAIotC,EAEI1xC,EAAAA,cAAA,MAEI1tB,IAAKS,EACL0tB,UAAU,8BACb,KAMLy3D,EAEIl4D,EAAAA,cAAA,MAEI1tB,IAAKS,EACL0tB,UAAU,8BACb,KAOLT,EAAAA,cAAA,MAAI1tB,IAAK+K,EAAMojB,UAAU,mBACpB3nB,EACA,KAOjC,CAACg/E,GAAA9xC,aAAA,GAED,MAAMsyC,IAAmBv0C,EAAAA,EAAAA,GAAI,qBAAsB,CAC/CC,SAAU,CACNu0C,SAAU,CACNxxC,KAAM,eAUX,SAASyxC,GAAYh0D,GAAwC,IAAvC,SAAE+zD,EAAQ,IAAE9X,GAAwBj8C,EAC7D,MAAMi0D,EAAcH,GAAiB,CAAEC,aACjCG,EAAalyE,QAAQi6D,EAAIC,UAU/B,IAAIv7B,EAAQs7B,EAAIt7B,MACZl8B,EAAUw3D,EAAIx3D,QAQlB,OAPIyvE,IACAvzC,EACInlB,EAAAA,cAACujC,GAAS,CAACkrB,mBAAmB,OAAOv6E,UAAU,QAAQusE,IAAKA,IAEhEx3D,EAAU+W,EAAAA,cAAC62D,GAAO,CAACpW,IAAKA,EAAKvsE,UAAU,aAIvC8rB,EAAAA,cAAA,MAAIS,UAAU,YACVT,EAAAA,cAACwmB,EAAAA,EAAI,CACDY,GAAIq5B,EAAIpjE,KACRopC,QAAQ,EACRhmB,UAAWg4D,EACX3mD,QAvBQ6mD,MAChBjyB,EAAAA,GAAAA,GAAM,qBAAsB,CACxBuK,YAAawP,EAAIt7B,MACjB+rB,YAAa,gBACbC,YAAasP,EAAIpjE,MACnB,GAoBM2iB,EAAAA,cAAA,OAAKS,UAAU,qBACXT,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,SAASxjB,UAAU,YACjC0kB,GAELnlB,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,SAASxjB,UAAU,eACjCxX,GAEL+W,EAAAA,cAAC83D,GAAW,CAACC,YAAatX,EAAIsX,YAAatX,IAAKA,KAGpDzgD,EAAAA,cAAA,OAAKS,UAAU,yBACXT,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMm1C,EAAAA,IAAqBn4D,UAAU,WAKjE,CAEA,SAASo4D,GAAyBn0D,GAAyC,IAAxC,SAAEhf,GAAmCgf,EACpE,OACI1E,EAAAA,cAACylB,EAAAA,GAAI,CACDhO,cAAc,SACdwF,eAAe,SACfmqB,WAAW,SACXE,IAAI,KACJ1lC,OAAO,OACPylC,GAAG,MAEF3hD,EAGb,CAfC8yE,GAAAxyC,aAAA,GAeA6yC,GAAA7yC,aAAA,GAOD,MAAM8yC,IAAyB/0C,EAAAA,EAAAA,GAAI,2BAA4B,CAC3DC,SAAU,CACN+0C,sBAAuB,CACnBhyC,KAAM,8BAKX,SAASn0C,GAAa+xB,GAGL,IAHM,sBAC1Bo0D,GAAwB,EAAK,KAC7B1e,GACiB11C,EACjB,MAAM,MAAEzkB,EAAK,SAAE4uD,IAAasD,EAAAA,EAAAA,OACtB,OAAEz8C,GAAWmhE,KAGnB92D,EAAAA,WAAgB,KACZ8uC,EAAS,CACL1+D,KAAM,WACN+D,MAAOkmE,GACT,GACH,CAACvL,EAAUuL,IAEd,MAAM2e,EAAiBh5D,EAAAA,SAAc,IAC7B9f,EAAM+4E,UAAuB,YAAXtjE,EACX,UAGJA,GACR,CAACzV,EAAM+4E,SAAUtjE,IAEpB,IAAIujE,EACAC,EACAlwE,EAEmB,YAAnB+vE,GAAmD,YAAnBA,EAEhC/vE,EACI+W,EAAAA,cAAC64D,GAAyB,KACtB74D,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,aAAY,eAGb,UAAnB+0C,EACP/vE,EACI+W,EAAAA,cAAC64D,GAAyB,KACtB74D,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,aAAY,uCAMnC80C,IACAG,EACIl5D,EAAAA,cAAC8xC,EAAAA,GAAE,CACC7tB,QAAQ,eACRm1C,cAAc,YACdtzC,MAAM,eACNrlB,UAAU,0BACVslB,WAAW,QACd,oBAML7lC,EAAMm5E,cACNF,EACIn5D,EAAAA,cAACklB,GAAAA,EAAU,CACPC,MAAM,sDACN1kB,WAAWI,EAAAA,EAAAA,IAAI,CAAEtvB,EAAG,UAEpByuB,EAAAA,cAAC6lB,EAAAA,GAAS,KAAC,iGAQvB58B,EACI+W,EAAAA,cAAC64D,GAAyB,KACtB74D,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,aAAY,wCAG/BjkB,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,UAAS,6EAOhC80C,IACA9vE,EACI+W,EAAAA,cAAC64D,GAAyB,KACtB74D,EAAAA,cAAC6lB,EAAAA,GAAS,CAAC5B,QAAQ,aAAY,8BAOvCo2B,EAAKzpE,OAAS,IACdqY,EACI+W,EAAAA,cAAA,MAAIS,UAAU,YACT45C,EAAKniE,KAAI,CAACuoE,EAAU1tE,KACjB,MAAMwlF,EAAWxlF,IAAUmN,EAAMo5E,iBAEjC,OACIt5D,EAAAA,cAACw4D,GAAY,CACTlmF,IAAKmuE,EAAIpjE,KACTojE,IAAKA,EACL8X,SAAUA,GACZ,OAQ1B,MAAMt6D,EAAU66D,GAAuB,CAAEC,0BAEzC,OACI/4D,EAAAA,cAAA,OAAKS,UAAWxC,GACXi7D,EACAC,EACAlwE,EAGb,CAACrW,GAAAozC,aAAA,+BCnUM,SAASlwC,GAAKozB,EAAOrkB,GAE1B,IADA,IAAI1Q,EACK1D,EAAI,EAAGA,EAAIy4B,EAAMt4B,OAAQH,IAGhC,GAAIoU,EAFJ1Q,EAAQ+0B,EAAMz4B,GAEOA,EAAGy4B,GACtB,OAAO/0B,CAIb,CCdA,SAAS2R,GAAc5F,EAAO9P,EAAM8D,EAAW4E,GAC7C,ICG+B3E,EDO3B2N,EAVAkE,EAAgBnV,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GACpFuW,EAAM,CACRhX,KAAMA,EACN8D,UAAWA,EACX4E,KAAMA,EACN8I,cCF6BzN,EDEE2E,ECDZ,iBAAV3E,GAAsBA,EAAQ,GAAsB,iBAAVA,EAC5C8Z,OAAO9Z,GAAO+Z,QAAQ,KAAM,OAE9B/Z,IDAHuE,EAAQ5C,GAAKkQ,GAAe,SAAUuzE,GACxC,OAAOA,EAAazgF,OAAS5E,CAC/B,IAEA,GAAa,iBAAT9D,EAAyB,CAa3B,IAZA,IAAIiX,EAAmBnH,EAAMhD,2BAA2BhJ,GACpDslF,EAAY1gF,EAAK8G,MAAMyH,EAAiBrK,WAMxCy8E,EAAQ,SAAehpF,GALF,IAA4BipF,EAMnDhhF,EAAQA,GAASA,EAAMwI,MAAQpL,GAAKb,OAAOC,KAAKwD,EAAMwI,MAAMhJ,KANTwhF,EAMgChhF,EAAMwI,KALlF,SAAUy4E,GACf,OAAOD,EAAUC,EACnB,KAGiG,SAAUh6E,GACzG,OAAOA,EAAW7G,OAAS0gF,EAAU/oF,EACvC,GACF,EACSA,EAAI,OAAanB,IAAVoJ,GAAuBjI,EAAI+oF,EAAU5oF,SAAUH,EAC7DgpF,EAAMhpF,GAERqR,EAAQpJ,GAASA,EAAMoJ,KACzB,MACEA,EAAQpJ,GAASA,EAAMwI,MAAQxI,EAAMwI,KAAKkG,EAAItO,MAQhD,YANcxJ,IAAVwS,IACFsF,EAAItF,MAAQA,GAEVpJ,QAA8BpJ,IAArBoJ,EAAMkI,aACjBwG,EAAIxG,WAAalI,EAAMkI,YAElBwG,CACT,CEzCA,SAAS,GAAQqI,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAmBosD,GAAO,OAInC,SAA4BA,GAAO,GAAI3qE,MAAMmF,QAAQwlE,GAAM,OAAO,GAAkBA,EAAM,CAJhD,CAAmBA,IAG7D,SAA0BkO,GAAQ,GAAsB,oBAAX72D,QAAmD,MAAzB62D,EAAK72D,OAAOC,WAA2C,MAAtB42D,EAAK,cAAuB,OAAO74E,MAAMsiB,KAAKu2D,EAAO,CAHxF,CAAiBlO,IAEtF,SAAqC/oD,EAAGypD,GAAU,IAAKzpD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGypD,GAAS,IAAIvsE,EAAIiF,OAAOpF,UAAUkQ,SAAS9O,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAc,WAANnB,GAAkB8iB,EAAEzZ,cAAarJ,EAAI8iB,EAAEzZ,YAAYP,MAAM,GAAU,QAAN9I,GAAqB,QAANA,EAAa,OAAOkB,MAAMsiB,KAAKV,GAAI,GAAU,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAI,OAAO,GAAkB8iB,EAAGypD,EAAS,CAFjU,CAA4BV,IAC1H,WAAgC,MAAM,IAAI3rE,UAAU,uIAAyI,CAD3D,EAAsB,CAKxJ,SAAS,GAAkB2rE,EAAKtrE,IAAkB,MAAPA,GAAeA,EAAMsrE,EAAIjrE,UAAQL,EAAMsrE,EAAIjrE,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAKorE,EAAIprE,GAAI,OAAOwe,CAAM,CAClL,SAAS,GAAQsB,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAI3O,IAAI,GAAYknD,EAAoC,CAClD79D,KAAM,sBACNm+D,WAAW,IAoFb,SAAS2iB,GAAoBp1D,GAC3B,IAAItiB,EAAUsiB,EAAMtiB,QAClBwK,EAAS8X,EAAM9X,OACfuuD,EAAUz2C,EAAMy2C,QAChB4e,EAAqBr1D,EAAMq1D,mBAC3BC,EAAqBt1D,EAAMs1D,mBACzBC,GAAiE,KAAhDF,GAAsB,IAAIlkF,QAAQ,WAAoE,KAAhDmkF,GAAsB,IAAInkF,QAAQ,SACzGqkF,EAAiBH,EAAqB,SAAU10E,GAClD,OAAuD,IAAhD00E,EAAmBlkF,QAAQwP,EAAKjR,UACzC,EAAI,SAAUiR,GACZ,OAAuD,IAAhD20E,EAAmBnkF,QAAQwP,EAAKjR,UACzC,EACIg1B,EFrEC,SAAwBhnB,EAAShC,GACtC,IAAI65E,EAAgBlpF,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,IAAmBA,UAAU,GAC/E+M,EAAc,GACdq8E,EAAwB/5E,EAAMlJ,kBAChCA,OAA8C,IAA1BijF,EAAmC,CAAC,EAAIA,EAC5DC,EAAwBh6E,EAAMjJ,eAC9BA,OAA2C,IAA1BijF,EAAmC,CAAC,EAAIA,EACzDC,EAAwBj6E,EAAMhJ,6BAC9BA,OAAyD,IAA1BijF,EAAmC,CAAC,EAAIA,EACvEC,EAAwBl6E,EAAM7I,8BAC9BA,OAA0D,IAA1B+iF,EAAmC,CAAC,EAAIA,EACxEC,EAAwBn6E,EAAM/I,mBAC9BA,OAA+C,IAA1BkjF,EAAmC,CAAC,EAAIA,EAC7DC,EAAwBp6E,EAAM9I,eAC9BA,OAA2C,IAA1BkjF,EAAmC,GAAKA,EAiE3D,OAhEArlF,OAAOC,KAAK8B,GAAmBO,SAAQ,SAAUrD,GACzB8C,EAAkB9C,GACxBqD,SAAQ,SAAUgjF,GAChC38E,EAAYnM,KAAKqU,GAAc5F,EAAO,QAAShM,EAAWqmF,EAAgBr4E,EAAQrL,QACpF,GACF,IACA5B,OAAOC,KAAK+B,GAAgBM,SAAQ,SAAUrD,GACtB+C,EAAe/C,GACrBqD,SAAQ,SAAUgjF,GAChC38E,EAAYnM,KAAK,CACfrB,KAAM,UACN8D,UAAWA,EACX4E,KAAMyhF,EACNj3B,SAAS,GAEb,GACF,IACAruD,OAAOC,KAAKgC,GAA8BK,SAAQ,SAAUrD,GACpCgD,EAA6BhD,GACnCqD,SAAQ,SAAUgjF,GC5E/B,IAA4BpmF,ED6E7ByJ,EAAYnM,KAAKqU,GAAc5F,EAAO,cAAehM,EC5EpC,iBADYC,EDgFVomF,GC9EdpmF,EAAM+Z,QAAQ,OAAQ,KAExB/Z,ED4EiC+N,EAAQpL,mBAC9C,GACF,IACA7B,OAAOC,KAAKmC,GAA+BE,SAAQ,SAAUrD,GACrCmD,EAA8BnD,GACpCqD,SAAQ,SAAUoI,GAChC/B,EAAYnM,KAAKqU,GAAc5F,EAAO,eAAgBhM,EAAWyL,EAAYuC,EAAQnL,oBACvF,GACF,IACA9B,OAAOC,KAAKiC,GAAoBI,SAAQ,SAAUrD,GAChD,IAAIkE,EAAYjB,EAAmBjD,GACnCe,OAAOC,KAAKkD,GAAWb,SAAQ,SAAUijF,GACvC,IAAIniF,EAAWmiF,EACXC,EAAgBriF,EAAUC,IACRnH,MAAMmF,QAAQokF,GAAiBA,EAAgB,CAACA,IACtDljF,SAAQ,SAAUgjF,GAChC38E,EAAYnM,KAAK,CACfrB,KAAM,UACN8D,UAAWA,EACX4E,KAAM,GAAGvE,OAAOgmF,GAChB9yE,aAAc8yE,EACdliF,SAAUA,GAEd,GACF,GACF,IACAjB,EAAeG,SAAQ,SAAUgjF,GAC/B38E,EAAYnM,KAAK,CACfrB,KAAM,MACN8D,UAAW,QACX4E,KAAMyhF,GAEV,IACIR,GAAiB75E,EAAMrG,OAASqG,EAAMrG,MAAMiG,QAC9ClC,EAAYnM,KAAK,CACfyC,UAAW,QACX9D,KAAM,QACN0I,KAAMoH,EAAMrG,MACZA,MAAOqG,EAAMrG,QAGV+D,CACT,CEXcuJ,CAAejF,EAASwK,EAAOxM,MAAO65E,GAAe7hF,IAAIwiF,IAAqBnlF,OAAOykF,GACjG,OAAO9wD,EAAM/zB,QAAO,SAAUwlF,EAAUlpD,GACtC,MAAO,GAAGl9B,OAAO,GAAmBomF,EAASplF,QAAO,SAAU4P,GAC5D,OAAOA,EAAKjR,YAAcu9B,EAAYv9B,SACxC,KAAK,CAAC,CACJsW,UAAWkC,EAAOxM,MAAMnN,MACxBkoE,QAASA,EACT/mE,UAAWu9B,EAAYv9B,UACvB0yD,MAAOn1B,EAAYv9B,UACnB0J,YAAasrB,EAAM3zB,QAAO,SAAU6N,GAClC,OAAOA,EAAOlP,YAAcu9B,EAAYv9B,SAC1C,IAEC8S,MAAK,SAAU7Q,EAAGC,GACjB,MAAkB,YAAXD,EAAE/F,KAAqB+F,EAAEhC,MAAQiC,EAAEjC,MAAQ,CACpD,IACAmlE,OAAQ,SAAgB35D,GACtB,OAAOjL,GAAgBgY,EAAQ/M,EACjC,IAEJ,GAAG,GACL,CACA,SAASi7E,GAAyB16E,EAAOP,GAEvC,OADAO,EAAQA,EAAMf,YACNQ,EAAWvP,MACjB,IAAK,QACH,OAAO8P,EAAM3D,sBAAsBoD,EAAWzL,UAAW+Z,OAAOtO,EAAWxL,QAC7E,IAAK,cACH,OAAO+L,EAAMzD,iCAAiCkD,EAAWzL,UAAW+Z,OAAOtO,EAAWxL,QACxF,IAAK,eACH,OAAO+L,EAAM3C,kCAAkCoC,EAAWzL,WAC5D,IAAK,UACH,OAAOgM,EAAM1D,wBAAwBmD,EAAWzL,UAAW+Z,OAAOtO,EAAWxL,QAC/E,IAAK,UACH,OAAO+L,EAAMnF,wBAAwB4E,EAAWzL,UAAWyL,EAAWtH,SAAU4V,OAAOtO,EAAWxL,QACpG,IAAK,MACH,OAAO+L,EAAMxD,oBAAoBuR,OAAOtO,EAAWxL,QACrD,IAAK,QACH,OAAO+L,EAAMxB,kBAAkB,QAAS,IAC1C,QAEE,OAAOwB,EAEb,CACA,SAASxL,GAAgBgY,EAAQ/M,GAC/B+M,EAAOd,SAASgvE,GAAyBluE,EAAOxM,MAAOP,IAAa0I,QACtE,CAWA,SAASqyE,GAAoB/6E,GAC3B,IAAIxL,EAmBN,SAAkBwL,GAChB,GAAwB,YAApBA,EAAWvP,KACb,OAAOuuB,OAAOhf,EAAW7G,MAE3B,GAAI,iBAAkB6G,EACpB,OAAOA,EAAWiC,aAEpB,OAAOjC,EAAW7G,IACpB,CA3Bc+hF,CAASl7E,GACjBinD,EAAQjnD,EAAWtH,SAAW,GAAG9D,OAZvC,SAA2B8D,GACzB,OAAQA,GACN,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,QACE,OAAOA,EAEb,CAG8CyiF,CAAkBn7E,EAAWtH,UAAW,KAAK9D,OAAOoL,EAAW7G,MAAQ6G,EAAW7G,KAC1HiiF,EAAuB,CACzB7mF,UAAWyL,EAAWzL,UACtB9D,KAAMuP,EAAWvP,KACjB+D,MAAOA,EACPyyD,MAAOA,GAWT,YAT4Bt3D,IAAxBqQ,EAAWtH,WACb0iF,EAAqB1iF,SAAWsH,EAAWtH,eAEpB/I,IAArBqQ,EAAWmC,QACbi5E,EAAqBj5E,MAAQnC,EAAWmC,YAEZxS,IAA1BqQ,EAAWiB,aACbm6E,EAAqBn6E,WAAajB,EAAWiB,YAExCm6E,CACT,CAUA,OApLgC,SAAmC3iB,GACjE,IAAIC,EAAYxnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EAEpF,OADAC,EAAeiB,EAAU,MAClB,SAAUE,GACf,IAAKA,GAAgB,CAAC,GAAGuhB,qBAAuBvhB,GAAgB,CAAC,GAAGwhB,mBAClE,MAAM,IAAIhpF,MAAM,GAAU,uFAE5B,IAAI2xB,EAAO61C,GAAgB,CAAC,EAC1BuhB,EAAqBp3D,EAAKo3D,mBAC1BmB,EAAwBv4D,EAAKq3D,mBAC7BA,OAA+C,IAA1BkB,EAAmC,CAAC,SAAWA,EACpErY,EAAsBlgD,EAAKmgD,eAC3BA,OAAyC,IAAxBD,EAAiC,SAAUz5C,GAC1D,OAAOA,CACT,EAAIy5C,EACN,MAAO,CACLhK,OAAQ,yBACRC,KAAM,SAAcC,GAClB,IAAIC,EAAwBD,EAAYC,sBACxCV,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBF,IAAe,CAAC,EAAG,CACpFC,sBAAuBA,KACrB,EACN,EACAlmB,OAAQ,SAAgBomB,GACtB,IAAIF,EAAwBE,EAAcF,sBAC1CV,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBC,IAAiB,CAAC,EAAG,CACtFF,sBAAuBA,KACrB,EACN,EACAG,QAAS,WACPZ,GACF,EACAa,eAAgB,SAAwBC,EAAaH,GACnD,OAAO,GAAc,GAAc,CAAC,EAAGG,GAAc,CAAC,EAAG,CACvD8hB,mBAAoB9rF,KAAK4pE,qBAAqBC,IAElD,EACAD,qBAAsB,SAA8Bz0C,GAClD,IAAIpiB,EAAUoiB,EAAMpiB,QAClB24D,EAAgBv2C,EAAMu2C,cACtBqK,EAAa5gD,EAAMo6C,UACnBhyD,EAAS4X,EAAM5X,OAyBjB,IAAIwc,EAvBGhnB,EAWE24D,EAAc1lE,QAAO,SAAU+lF,EAAYngB,GAChD,OAAOmgB,EAAW3mF,OAAOquE,EAAegX,GAAoB,CAC1D13E,QAAS64D,EAAa74D,QACtBwK,OAAQquD,EAAaruD,OACrBuuD,QAASF,EAAaE,QACtB4e,mBAAoBA,EACpBC,mBAAoBA,IAClB,CACF53E,QAASA,IAEb,GAAG,IApBM0gE,EAAegX,GAAoB,CACxC13E,QAAS,CAAC,EACVwK,OAAQA,EACRuuD,QAASvuD,EAAOxM,MAAMnN,MACtB8mF,mBAAoBA,EACpBC,mBAAoBA,IAClB,CACF53E,QAASA,IAgBf,MAAO,CACLgnB,MAAOA,EACPiyD,UAAWjyD,EAAMt4B,OAAS,EAC1B0oE,OAAQ,SAAgB35D,GACtB,OAAOjL,GAAgBgY,EAAQ/M,EACjC,EACA++D,UAAW,SAAmB/+D,GAC5B,OAAOulE,EAAW0V,GAAyBluE,EAAOxM,MAAOP,GAC3D,EACA24D,aAAcA,EAElB,EAEJ,CACF,EC7FO,MAAM8iB,GAAyBlnF,IAClC,MAAM,MAAEg1B,GCHHs0C,GAAa,GAA2Bv9C,EAAOw9C,GADjD,IAA+Bx9C,EAAOw9C,EDMzC,OAAOz9C,EAAAA,SAAc,IACVkJ,EACF3zB,QAAQoK,GAAeA,EAAWzL,YAAcA,IAChDgE,KAAKyH,GAAeA,EAAW/B,cAC/BzI,QAAO,CAACw7B,EAAMjgB,IAAI,GAAAnc,QAAAwzD,EAAAA,GAAAA,GAASp3B,IAAIo3B,EAAAA,GAAAA,GAAKr3C,KAAO,IAC3CxY,KAAIuqB,IAAA,IAAC,MAAEtuB,GAAOsuB,EAAA,OAAKtuB,CAAK,KAC9B,CAAC+0B,EAAOh1B,GAAW,EEd1B,SAAS,GAAQub,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CCA/U,SAAS,GAAQA,GAAkC,OAAO,GAAU,mBAAqByD,QAAU,iBAAmBA,OAAOC,SAAW,SAAU1D,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqByD,QAAUzD,EAAIpW,cAAgB6Z,QAAUzD,IAAQyD,OAAOrjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,OAAQ,gBACvB,GAAa,CAAC,eAAgB,SAChC,SAAS,GAAQc,EAAQgnD,GAAkB,IAAIriE,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAI4kD,EAAUviE,OAAO2d,sBAAsBrC,GAASgnD,IAAmBC,EAAUA,EAAQjiE,QAAO,SAAUkiE,GAAO,OAAOxiE,OAAO4d,yBAAyBtC,EAAQknD,GAAK5oD,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMsiE,EAAU,CAAE,OAAOtiE,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIud,EAAS,MAAQnd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAO+Y,IAAS,GAAIzW,SAAQ,SAAUjF,GAAO,GAAgB8c,EAAQ9c,EAAK0b,EAAO1b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B/E,IAAW,GAAQ/Y,OAAO+Y,IAASzW,SAAQ,SAAUjF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB7E,EAAQ1b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBqlE,EAAOC,GAAQ,GAAuB,WAAnB,GAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIE,EAAOF,EAAMzkD,OAAO4kD,aAAc,QAAaxoE,IAATuoE,EAAoB,CAAE,IAAIzwD,EAAMywD,EAAK5mE,KAAK0mE,EAAOC,GAAQ,WAAY,GAAqB,WAAjB,GAAQxwD,GAAmB,OAAOA,EAAK,MAAM,IAAIlX,UAAU,+CAAiD,CAAE,OAAiB,WAAT0nE,EAAoB3pD,OAAS0Q,QAAQg5C,EAAQ,CADnV,CAAanoE,EAAK,UAAW,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM2b,OAAO3b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAyBzB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAAkE1b,EAAK7B,EAAnE2e,EACzF,SAAuCpB,EAAQ0B,GAAY,GAAc,MAAV1B,EAAgB,MAAO,CAAC,EAAG,IAA2D1b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK8Y,GAAqB,IAAKvd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS/Z,QAAQrD,IAAQ,IAAa8c,EAAO9c,GAAO0b,EAAO1b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BpB,EAAQ0B,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAI2qD,EAAmBtoE,OAAO2d,sBAAsB5E,GAAS,IAAKvd,EAAI,EAAGA,EAAI8sE,EAAiB3sE,OAAQH,IAAO6B,EAAMirE,EAAiB9sE,GAAQif,EAAS/Z,QAAQrD,IAAQ,GAAkB2C,OAAOpF,UAAUojB,qBAAqBhiB,KAAK+c,EAAQ1b,KAAgB8c,EAAO9c,GAAO0b,EAAO1b,GAAQ,CAAE,OAAO8c,CAAQ,CAG3e,IAAI,GAAYunD,EAAoC,CAClD79D,KAAM,kBACNm+D,WAAW,IAET/wD,GAAe,CAAC,YAAa,aAAc,YA2P/C,GA9O4B,SAA+BkyD,GACzD,IAAIC,EAAYxnE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAKqmE,EAEpF,OADAC,EAAeiB,EAAU,MAClB,SAAUE,GACf,IAAI71C,EAAO61C,GAAgB,CAAC,EAC1BpkE,EAAYuuB,EAAKvuB,UACjBmnF,EAAgB54D,EAAKpqB,SACrBA,OAA6B,IAAlBgjF,EAA2B,KAAOA,EAC7CC,EAAa74D,EAAK84D,MAClBA,OAAuB,IAAfD,EAAwB,GAAKA,EACrCE,EAAgB/4D,EAAKg5D,SACrBA,OAA6B,IAAlBD,GAAmCA,EAC9CE,EAAqBj5D,EAAKk5D,cAC1BA,OAAuC,IAAvBD,EAAgC,GAAKA,EACrDE,EAAcn5D,EAAKpjB,OACnBA,OAAyB,IAAhBu8E,EAAyB11E,GAAe01E,EACjDC,EAAwBp5D,EAAKq5D,kBAC7BA,OAA8C,IAA1BD,GAA0CA,EAC9DlZ,EAAsBlgD,EAAKmgD,eAC3BA,OAAyC,IAAxBD,EAAiC,SAAUz5C,GAC1D,OAAOA,CACT,EAAIy5C,EACN,IAAKzuE,EACH,MAAM,IAAIpD,MAAM,GAAU,wCAE5B,IAAK,aAAa4hB,KAAKra,GACrB,MAAM,IAAIvH,MAAM,GAAU,qDAA0DyD,OAAO8D,EAAU,SAEvG,IAAiB,IAAbojF,GAAqBE,GAAiBJ,EACxC,MAAM,IAAIzqF,MAAM,GAAU,oDAE5B,IAUIirF,EAGAC,EACAzZ,EAdA0Z,EAAc,SAAqB33D,GACrC,IAAIsiC,EAAQtiC,EAAMxrB,KAChB3E,EAAQmwB,EAAM1iB,aAEhB,OAAO,GAAc,GAAc,CAAC,EAD3B,GAAyB0iB,EAAO,KACK,CAAC,EAAG,CAChDnwB,MAAOA,EACPyyD,MAAOA,EACPkoB,YAAaloB,GAEjB,EAEIs1B,EAA0B,GAC1BC,GAAqB,EAGrBC,GAAgB,EAGhBC,EAAiB,WAA2B,EAChD,SAASC,IACPD,GACF,CAOA,SAASE,IACP,OAAOH,EAAgBT,EAAgBJ,CACzC,CACA,IAAIxxE,EAAuB,WACzB,OAAO,WAAa,CACtB,EACIyyE,EAA6B,SAAoC9vE,EAAQqqD,GAC3E,OAAO,SAAUiC,GACf,OAAO,SAAUn/D,GACf,IAAIi/D,EAAwBE,EAAcF,sBACxCye,EAAgBve,EAAc92D,QAChC,GAAc,KAAVrI,GAAgBqiF,EAElB9jB,EAAS,GAAc,GAAc,CAAC,EAAGrB,EAAOgC,qBAAqB,GAAc,GAAc,CAAC,EAAGC,GAAgB,CAAC,EAAG,CACvH92D,QAAS65E,MACL,CAAC,EAAG,CACRjjB,sBAAuBA,KACrB,OACC,CACL,IAAI3qB,EAAO,CACT0zB,gBAAiBia,EAAoBla,GAAgBC,gBAAkBE,GAAgBF,gBACvFC,iBAAkBga,EAAoBla,GAAgBE,iBAAmBC,GAAgBD,kBAE3Fp1D,EAAO3C,qBAAqB7V,EAAW2F,EAIvC4a,KAAKyQ,IAAIq3D,IAAY,KAAMpuC,GAAMnlC,MAAK,SAAU9G,GAC9C,IAAIkE,EAAc01E,EAAiC55E,EAAQwI,U9D9DtDxS,KAAI,SAAU2c,GAC7B,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAI,CAAC,EAAG,CAC7Ci6D,YAAa9M,GAAqBntD,EAAEi6D,cAExC,I8D0DoF5sE,EAAQwI,UAC5E+xE,EAAwB7Z,EAAex8D,EAAYlO,KAAI,SAAUssB,GACnE,IAAI5iB,EAAe4iB,EAAM5iB,aACvBzN,EAAQqwB,EAAMrwB,MAEhB,OAAO,GAAc,GAAc,CAAC,EAD3B,GAAyBqwB,EAAO,KACK,CAAC,EAAG,CAChDrwB,MAAOyN,EACPglD,MAAOzyD,GAEX,IAAI,CACF+N,QAASq1E,IAEXnf,EAAS,GAAc,GAAc,CAAC,EAAGrB,EAAOgC,qBAAqB,GAAc,GAAc,CAAC,EAAGC,GAAgB,CAAC,EAAG,CACvH92D,QAAS65E,MACL,CAAC,EAAG,CACR7yD,MAAOuzD,EACPC,mBAAmB,EACnBvB,WAAW,EACXwB,cAAc,EACd7jB,sBAAuBA,KACrB,EACN,GACF,CACF,CACF,CACF,EACA,MAAO,CACLH,OAAQ,qBACRC,KAAM,SAAcC,GAClBT,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBF,IAAe,CAAC,EAAG,CACpFC,sBAAuBD,EAAYC,yBACjC,EACN,EACAlmB,OAAQ,SAAgBomB,GACtBZ,EAAS,GAAc,GAAc,CAAC,EAAGjpE,KAAK4pE,qBAAqBC,IAAiB,CAAC,EAAG,CACtFF,sBAAuBE,EAAcF,yBACnC,EACN,EACAI,eAAgB,SAAwBC,EAAaH,GACnD,OAAO,GAAc,GAAc,CAAC,EAAGG,GAAc,CAAC,EAAG,CACvDllE,eAAgB,GAAc,GAAc,CAAC,EAAGklE,EAAYllE,gBAAiB,CAAC,EAAG,GAAgB,CAAC,EAAGC,EAAW/E,KAAK4pE,qBAAqBC,MAE9I,EACAD,qBAAsB,SAA8BC,GAClD,IAAI92D,EAAU82D,EAAc92D,QAC1BhC,EAAQ84D,EAAc94D,MACtBglE,EAAalM,EAAc0F,UAC3B5F,EAAwBE,EAAcF,sBACtCpsD,EAASssD,EAActsD,OACrBwc,EAAQ,GACR9iB,EAAc,GAclB,GAbKm8D,GAAcyZ,GAAkBjyE,IACnCw4D,EDrKH,SAAiC9/C,GACtC,IAAIq2C,EAAwBr2C,EAAKq2C,sBAC/BpsD,EAAS+V,EAAK/V,OACd+P,EAAOgG,EAAKvuB,UACZ0rE,EAAan9C,EAAKm9C,WA+BpB,OA9BwB,WACtB,IAAK,IAAIhJ,EAAO/lE,UAAUD,OAAQJ,EAAO,IAAIU,MAAM0lE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EtmE,EAAKsmE,GAAQjmE,UAAUimE,GAEzB,IAAIgJ,EAAYtvE,EAAK,GACnB6Q,EAAa7Q,EAAK,GAClBosF,EAASpsF,EAAK,GACduvE,OAAuB,IAAX6c,EAAoB,iBAAmBA,EACjD1oF,EAA4B,iBAATuoB,EAAoBA,EAAOA,EAAKpb,GACnC,IAAhB7Q,EAAKI,QAAqC,WAArB,GAAQJ,EAAK,IACpCsoE,EAAsB+J,oBAAoBryE,EAAK,IACxB,UAAdsvE,GAA0C,IAAhBtvE,EAAKI,QAAgC,IAAhBJ,EAAKI,QElB5D,SAAwB8b,EAAQhU,EAAOvE,GAC5C,OAAIuY,EAAOxM,MAAMtE,oBAAoBlD,GAC5BgU,EAAOxM,MAAM5C,2BAA2B5E,EAAOvE,GAC7CuY,EAAOxM,MAAMvF,mBAAmBjC,GAClCgU,EAAOxM,MAAMzC,eAAe/E,EAAOvE,GAEnCuY,EAAOxM,MAAMvC,0BAA0BjF,EAAOvE,EAEzD,CFWWsJ,CAAeiP,EAAQxY,EAAWmN,IAErCy3D,EAAsB+J,oBAAoB,CACxChC,eAAgB,iBAChBjB,WAAYA,EACZE,UAAWA,EACXL,QAAS,CACPM,UAAWA,EACXhtE,MAAO2Z,EAAOP,WACd0wE,QAAS,CAAC,GAAGtoF,OAAOL,EAAW,KAAKK,OAAO8M,KAE7CnN,UAAWA,GAMnB,CAEF,CCiIsB4oF,CAAwB,CAClChkB,sBAAuBA,EACvBpsD,OAAQA,EACRxY,UAAWA,EACX0rE,WAAYzwE,KAAKwpE,SAEnBqjB,EAAgB,SAAuB36E,GACrCkhE,EAAU,QAASlhE,GACnBqL,EAAO9P,sBAAsB1I,EAAWmN,GAAYgH,QACtD,EACA0B,EAAuByyE,EAA2B9vE,EAAQvd,OAExD+S,EAAS,CACX,IAAI7M,EAAS6M,EAAQiE,eAAejS,EAAW,CAC7CmL,OAAQA,EACRgH,cAAehH,IAAW6G,KAE5BE,EAAc/Q,GAAUnE,MAAMmF,QAAQhB,GAAUA,EAAS,GACzD6zB,EAAQ05C,EAAex8D,EAAYjV,MAAM,EAAGorF,KAAYrkF,IAAI+jF,GAAc,CACxE/5E,QAASA,IAEX,IAAI66E,EAA0B78E,EAAM88E,kBAChCC,EAAeV,IAOnBJ,EAAqBY,EAA0BE,EAAe72E,EAAYxV,QAAUqsF,EAAe72E,EAAYxV,OAASqsF,EACxHlB,EAA4B75E,EAC5Bg6E,EAA0BhzD,EACtB8vC,EAAc92D,UAChBm6E,EAvHR,SAA8BrjB,EAAejC,GAC3C,OAAO,WACLqlB,GAAiBA,EACjBrlB,EAAOnkB,OAAOomB,EAChB,CACF,CAkHyBkkB,CAAqBlkB,EAAe7pE,MAEzD,CAIA,IAAIguF,EAAoBpzE,GAAwBA,EAAqBivD,GAGjE0jB,EAFcN,GAAiBF,EAAwBtrF,OAAS2qF,GAClDE,IAAaU,EAE/B,MAAO,CACLzd,UAAW,SAAmBr9D,GAC5B,OAAO6jE,EAAWhlE,EAAMf,YAAYvC,sBAAsB1I,EAAWmN,GACvE,EACA6nB,MAAOA,EACPowC,OAAQ0iB,EACRoB,eAAgBD,EAChBR,cAAc,EACdxB,UAAWjyD,EAAMt4B,OAAS,EAC1B0nE,aAAcA,EACd8jB,cAAeA,EACfM,kBAAmBA,EACnBL,eAAgBC,EAChB/Z,UAAWA,EACX4Z,mBAAoBA,EAExB,EACAljB,QAAS,SAAiBv0C,GACxB,IAAIxkB,EAAQwkB,EAAMxkB,MAClBm4D,IACA,IAAIglB,EAA2Bn9E,EAAMxB,kBAAkB,yBAAqBpP,GAC5E,MAAiB,QAAb+I,EACKglF,EAAyBjhF,YAAYlI,GAEvCmpF,EAAyBhhF,uBAAuBnI,EACzD,EACAslE,iBAAkB,SAA0BC,EAAS90C,GACnD,IAAI+0C,EAAmB/0C,EAAM+0C,iBACzBrkE,EAAsB,OAAbgD,EAAoBqhE,EAAiB9+D,0BAA0B1G,GAAawlE,EAAiBj/D,0BAA0BvG,GACpI,OAAKmB,EAAOzE,OAGL,GAAc,GAAc,CAAC,EAAG6oE,GAAU,CAAC,EAAG,CACnDxlE,eAAgB,GAAc,GAAc,CAAC,EAAGwlE,EAAQxlE,gBAAiB,CAAC,EAAG,GAAgB,CAAC,EAAGC,EAAWmB,MAHrGokE,CAKX,EACAE,0BAA2B,SAAmCD,EAAkB50C,GAC9E,IAAI20C,EAAU30C,EAAM20C,QAChBrvD,EAA6B,OAAb/R,EAChBhD,EAASokE,EAAQxlE,gBAAkBwlE,EAAQxlE,eAAeC,GAC1DopF,EAAqB5jB,EAAiB3gE,iBAAiB7E,GACvDqpF,EAAyBnzE,EAAgBkzE,EAAmB7hF,oBAAoBvH,GAAaopF,EAAmB9hF,SAAStH,GACzHspF,EAA2BD,EAAuBP,mBAAqB,EACvES,EAAwBhpE,KAAK0Q,IAAIq4D,EAA0B/B,EAAWE,EAAgBJ,GACtFmC,EAAwBH,EAAuB7+E,kBAAkB,oBAAqB++E,GAC1F,IAAKpoF,EAAQ,CACX,IAAI/C,EAAM8X,EAAgB,+BAAiC,oBAC3D,OAAOszE,EAAsBlkF,mBAAmB,GAAgB,CAAC,EAAGlH,EAAK,GAAc,GAAc,CAAC,EAAGorF,EAAsBprF,IAAO,CAAC,EAAG,GAAgB,CAAC,EAAG4B,EAAW,MAC3K,CACA,OAAOmB,EAAOF,QAAO,SAAUxB,EAAYQ,GACzC,OAAOiW,EAAgBzW,EAAWoI,8BAA8B7H,EAAWC,GAASR,EAAWkI,mBAAmB3H,EAAWC,EAC/H,GAAGupF,EACL,EAEJ,CACF,EEvQO,SAASC,GAAkB19D,EAAOw9C,GACvC,OAAOD,GAAa,GAAuBv9C,EAAOw9C,EACpD,yCCUA,MAAM/V,IAAeC,EAAAA,GAAAA,MAEfi2B,GAAoBC,IACtB,GAAuB,QAAnBA,EACA,MAAO,CAAE1zB,QAAS,MAAOl3D,QAAS,OAGtC,MAAOw3D,EAAaC,GAAemzB,EAAej+E,MAAM,KAMxD,MAAO,CACHuqD,QALsBzC,GAAa5xD,MACnC2sB,IAAA,IAAC,KAAE0lC,GAAM1lC,EAAA,OAAK0lC,IAASsC,CAAW,IAIP3xD,KAC3B7F,QAASy3D,EAAYtL,UAAU,GAClC,EAGE,SAAS0+B,KACZ,MAAOx1B,EAAS0B,GAAchqC,EAAAA,UAAwB,IAChD,MAAE9f,EAAK,SAAE4uD,IAAasD,EAAAA,EAAAA,OACtB,SAAE5I,IAAaC,EAAAA,GAAAA,MAEb6P,OAAQykB,GAAkBJ,GAAkB,CAChDzpF,UAAW,aAEPolE,OAAQ0kB,GAAkBL,GAAkB,CAChDzpF,UAAW,YAGT+pF,EAA4B7C,GAAsB,WAClD8C,EAA4B9C,GAAsB,YAElD,YAAEllB,EAAW,aAAEG,GAAiBJ,IAEtCj2C,EAAAA,WAAgB,KACZ,MAAM69D,EAAiB3nB,EAAY,WAG/B2nB,GACA/uB,EAAS,CACL1+D,KAAM,2BACN+D,MAAO0pF,GAEf,GACD,CAAC3nB,EAAapH,IAEjB9uC,EAAAA,WAAgB,KACZgqC,GAAW,EAAM,GAClB,CAAC9pD,EAAMm6D,OAEVr6C,EAAAA,WAAgB,KACZ,GAAI9f,EAAMu1E,gBAAiB,CAEvB,MAAM,QAAEtrB,EAAO,QAAEl3D,GAAY2qF,GACzB19E,EAAMm4E,oBAKV,GACyC,IAArC4F,EAA0BrtF,QAC1BqtF,EAA0B,KAAO9zB,GACI,IAArC+zB,EAA0BttF,QAC1BstF,EAA0B,KAAOjrF,EAEjC,OAIJ,IAAK,MAAMkrF,KAA4BF,EACnCF,EAAcI,GAElB,IAAK,MAAMC,KAA4BF,EACnCF,EAAcI,GAGe,QAA7Bl+E,EAAMm4E,qBACN0F,EAAc5zB,GACd6zB,EAAc/qF,IAGlBojE,EAAa,CAAElM,QAASjqD,EAAMm4E,oBAClC,IACD,CACCn4E,EAAMu1E,gBACNv1E,EAAMm4E,mBACN4F,EACAC,EACAH,EACAC,EACA3nB,IAGJr2C,EAAAA,WAAgB,KACZ,IAAK9f,EAAMu1E,gBAAiB,CAExB,MAAM7rB,GAAWC,EAAAA,GAAAA,IAAkBL,GAC7B6uB,GAAqBpuB,EAAAA,GAAAA,GAAgC,CACvDL,aAGJkF,EAAS,CACL1+D,KAAM,2BACN+D,MAAOkkF,GAEf,IACD,CAACn4E,EAAMu1E,gBAAiBjsB,EAAUsF,IASrC,OACI9uC,EAAAA,cAACooC,GAAAA,EAAe,CACZG,cAAY,EACZp0D,MAAO+L,EAAMm4E,mBACb/vB,QAASA,EACT15B,cAZmBz6B,IACvB26D,EAAS,CAAE1+D,KAAM,2BAA4B+D,UACzC+L,EAAMo1E,YACNtrB,GAAW,EACf,GAWR,CAAC8zB,GAAA93C,aAAA,GC9GD,MAAMq4C,GAAsB,GAEtB1M,GAAe2M,IACjBC,aACAA,oCAGEhpD,GAAkBxiC,IAAmB,IAADyrF,EACtC,MAAMC,EAAkBzjE,SAASszB,cAAc,6BACzCowC,EAAUD,aAAe,EAAfA,EAAiBnwC,cAAc,aAEzCmyB,EAAMie,SAAiB,QAAVF,EAAPE,EAASh5E,gBAAQ,IAAA84E,OAAV,EAAPA,EAAmBr5E,KAAKpS,GAEpC,GAAI0rF,GAAmBhe,EAAK,CACxB,MAAMke,EAAele,EAAI5lC,UAAY4lC,EAAIvlC,aACnC0jD,EACFH,EAAgBhpD,UAAYgpD,EAAgBvjD,aAEzBulC,EAAI5lC,UAAY4jD,EAAgBhpD,WAC7BkpD,EAAeC,GAIrCne,EAAIlrC,eAAe,CAAEspD,SAAU,UAEvC,GAGJ,SAASC,KACL,OACI9+D,EAAAA,cAAA,OAAKS,UAAU,cACXT,EAAAA,cAAA,OAAKS,UAAU,kBACXT,EAAAA,cAAA,OAAKS,UAAU,QACXT,EAAAA,cAACo0C,EAAgB,KACbp0C,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMm1C,EAAAA,QAItB54D,EAAAA,cAAC2xC,EAAAA,GAAI,CAAC1tB,QAAQ,UAAS,cAG3BjkB,EAAAA,cAAA,OAAKS,UAAU,kBACXT,EAAAA,cAAA,OAAKS,UAAU,QACXT,EAAAA,cAACo0C,EAAgB,KACbp0C,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMs7C,EAAAA,OAElB/+D,EAAAA,cAACo0C,EAAgB,KACbp0C,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMu7C,EAAAA,QAItBh/D,EAAAA,cAAC2xC,EAAAA,GAAI,CAAC1tB,QAAQ,UAAS,gBAG3BjkB,EAAAA,cAAA,OAAKS,UAAU,kBACXT,EAAAA,cAAA,OAAKS,UAAU,QACXT,EAAAA,cAACo0C,EAAgB,KAAC,QAGtBp0C,EAAAA,cAAC2xC,EAAAA,GAAI,CAAC1tB,QAAQ,UAAS,aAIvC,CAEA,SAASg7C,KACL,MAAM,MAAEplF,GAAU0lE,MACZ,KAAElF,GC7FHmD,GAAa,GAAav9C,EAAOw9C,GADnC,IAAiBx9C,EAAOw9C,ED+F3B,MAAQv9D,MAAOg/E,IAAiBC,EAAAA,EAAAA,MAEhC,OAAItlF,EACOmmB,EAAAA,cAACptB,GAAa,CAACynE,KAAMA,IAErBr6C,EAAAA,cAACptB,GAAa,CAACmmF,uBAAqB,EAAC1e,KAAM6kB,GAE1D,CAMO,SAASE,KACZ,MAAM,MAAEl/E,EAAK,SAAE4uD,IAAasD,EAAAA,EAAAA,OACtB,YAAE8D,EAAW,aAAEG,GAAiBJ,KAChC,eAAEopB,EAAc,uBAAEC,IAA2BC,EAAAA,EAAAA,MAE7Cj2D,EAAgBtJ,EAAAA,aACjBxS,IACG,IAAKA,EAAMic,SAAWjc,EAAMkc,UAA0B,MAAdlc,EAAMlb,IAI1C,OAHAkb,EAAMgyE,kBACNhyE,EAAM2c,iBACN2kC,EAAS,CAAE1+D,KAAM,8BACV,EAIX,GAAK8P,EAAMu1E,gBAAX,CAIA,GAAkB,WAAdjoE,EAAMlb,IAIN,OAHAkb,EAAMgyE,kBACNhyE,EAAM2c,iBACN2kC,EAAS,CAAE1+D,KAAM,wBAAyB+D,OAAO,KAC1C,EAGO,YAAdqZ,EAAMlb,MACNkb,EAAMgyE,kBACNhyE,EAAM2c,iBAEN2kC,EAAS,CAAE1+D,KAAM,kCAGH,cAAdod,EAAMlb,MACNkb,EAAMgyE,kBACNhyE,EAAM2c,iBAEN2kC,EAAS,CAAE1+D,KAAM,kCAGH,UAAdod,EAAMlb,MACNkb,EAAMgyE,kBACNhyE,EAAM2c,kBACN4gC,EAAAA,EAAAA,IAAS7qD,EAAMm6D,KAAKn6D,EAAMo5E,kBAAkBj8E,MA1BhD,CA2BA,GAEJ,CAAC6C,EAAMu1E,gBAAiBv1E,EAAMm6D,KAAMn6D,EAAMo5E,iBAAkBxqB,IAIhE9uC,EAAAA,WAAgB,KACZuV,GAAer1B,EAAMo5E,iBAAiB,GACvC,CAACp5E,EAAMo5E,mBAEVt5D,EAAAA,WAAgB,KACZtM,OAAO4U,iBAAiB,UAAWgB,GAE5B,KACH5V,OAAO6U,oBAAoB,UAAWe,EAAc,IAEzD,CAACA,IAEJtJ,EAAAA,WAAgB,KACZ,MAAMq1D,EAAcnf,EAAY,SAC1BupB,EAAgBvpB,EAAY,YAE9Bmf,GAAeoK,IACf3wB,EAAS,CAAE1+D,KAAM,wBAAyB+D,OAAO,GACrD,GACD,CAAC+hE,EAAapH,IAEjB9uC,EAAAA,WAAgB,KAEZ8uC,EAAS,CAAE1+D,KAAM,yBAA0B+D,MAAO,GAAI,GACvD,CAAC26D,EAAU5uD,EAAMm6D,OAEpB,MAAMqlB,EAAsB1pB,EAAqB91D,EAAMu1E,iBAEvDz1D,EAAAA,WAAgB,MAEP9f,EAAMu1E,iBAAmBiK,IAC1BrpB,EAAa,CACTx8D,WAAOvK,EACP66D,aAAS76D,EACT2D,aAAS3D,IAGbw/D,EAAS,CAAE1+D,KAAM,oBAAqB+D,OAAO,IACjD,GACD,CAAC+L,EAAMu1E,gBAAiBiK,EAAqBrpB,EAAcvH,IAE9D9uC,EAAAA,WAAgB,KAeR9f,EAAMu1E,iBAdekK,WACrB,IAAIC,EAAQP,EACE,OAAVO,IAEAA,QAAcN,EAAuB,gBAIrCxwB,EADA8wB,GAASvB,GACA,CAAEjuF,KAAM,oBAAqB+D,MAAO,WAEpC,CAAE/D,KAAM,oBAAqB+D,MAAO,WACjD,EAIA0rF,EACJ,GACD,CACC3/E,EAAMu1E,gBACN4J,EACAC,EACAxwB,IAGJ,MAAMp/B,EAAU1P,EAAAA,aACXjG,IACG+0C,EAAS,CAAE1+D,KAAM,wBAAyB+D,MAAO4lB,GAAO,GAE5D,CAAC+0C,IAGL,OACI9uC,EAAAA,cAAC6yC,EAAK,CACFF,YAAU,EACV54C,KAAM7Z,EAAMu1E,gBACZ/lD,QAASA,EACTjP,UAAU,eACV0lB,KAAK,MAELnmB,EAAAA,cAAC0wD,GAAa,CACVlmE,UAAU,mBAGVmnE,aAAc,IACPA,GACHtpE,OAAOgR,GACH,OACIA,EAAS/iB,OAAMmsB,IAAA,IAAC,OAAEhsB,GAAyBgsB,EAAA,QACtBhsB,aAAM,EAANA,EAAQoD,MAAM,IAG5B0P,QAAQC,QAAQ,CACnBtH,QAASmX,EAASnhB,KAAI,MAClBmiE,KAAM,GACN1wD,OAAQ,EACR2wD,QAAS,EACTtgE,KAAM,EACNkJ,iBAAkB,EAClB9I,YAAa,EACbmgE,kBAAkB,EAClB1gE,MAAO,GACPpD,OAAQ,SAKbk7E,GAAatpE,OAAOgR,EAC/B,IAGJ2G,EAAAA,cAAA,OAAKS,UAAU,mBACXT,EAAAA,cAAC80D,GAAW,MACZ90D,EAAAA,cAAC89D,GAAqB,OAG1B99D,EAAAA,cAACi/D,GAAqB,MACtBj/D,EAAAA,cAAC8+D,GAAS,OAI1B,CA9LCA,GAAA94C,aAAA,GAYAi5C,GAAAj5C,aAAA,GAkLAo5C,GAAAp5C,aAAA,2CE3PD,MAAM85C,GAAyB,qBAIxB,SAASC,GAAUt9D,GAEoB,IAFnB,SACvB/c,GACuC+c,EACvC,MAAMu9D,GAAeC,EAAAA,EAAAA,GAAcr8D,EAAAA,EAAAA,gBAC5Bs8D,EAAiBC,GACpBngE,EAAAA,UAAwB,GAEtB62B,GAAMupC,EAAAA,GAAAA,MACN,IAAEC,EAAG,OAAEl6B,IAAWC,EAAAA,EAAAA,KAExBpmC,EAAAA,WAAgB,KACavM,aAAaG,QAAQksE,KAG1CK,GAAmB,EACvB,GACD,IAEH,MAAMG,EAAyBA,KAC3Bn6B,GAAQk6B,GACQ,eAARA,EACO,OAGX35B,EAAAA,GAAAA,GAAM,+BAAgC,CAClCnwC,OAAQ,YAGL,eACT,EAGAgqE,EAAmBA,KACrBJ,GAAmB,GAEnBh6B,GAAQk6B,GACQ,SAARA,EACO,OAGX35B,EAAAA,GAAAA,GAAM,8BAA+B,CACjCnwC,OAAQ,YAGZ9C,aAAaQ,QAAQ6rE,GAAwB,UAEtC,SACT,EAGAU,EAAoBA,KACtBL,GAAmB,GACnB1sE,aAAaQ,QAAQ6rE,GAAwB,SAAS,EAG1D,IAAIW,EACJ,IAAKJ,EAAK,CACN,MAAMK,GAAqBnkD,EAAAA,EAAAA,IAAK,CAC5B9E,cAAe,SACf6vB,IAAK,KACLF,WAAY,UAGhBq5B,EACIzgE,EAAAA,cAAA,OAAKS,UAAU,mBACXT,EAAAA,cAACgnC,EAAAA,GAAM,CACHvmC,UAAU,2BACVylB,UAAU,kBACVC,KAAK,KACL,aAAW,gCACXrU,QAASwuD,GAETtgE,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMwjB,EAAAA,OAElBjnC,EAAAA,cAAC2gE,GAAAA,EAAO,CAAC5mE,KAAMimE,GAAgBE,GAC3BlgE,EAAAA,cAAC4gE,GAAAA,GAAc,KACX5gE,EAAAA,cAACgnC,EAAAA,GAAM,CACHvmC,UAAU,2BACVylB,UAAU,kBACVC,KAAK,KACL,aAAW,gBACXrU,QAASyuD,GAETvgE,EAAAA,cAACwjB,EAAAA,GAAM,CAACC,KAAMo9C,EAAAA,QAGtB7gE,EAAAA,cAAC8gE,GAAAA,GAAc,CAACjtD,KAAK,QAAQpT,UAAWigE,GACpC1gE,EAAAA,cAAC6lB,EAAAA,EAAS,KAAC,iDAIX7lB,EAAAA,cAACgnC,EAAAA,GAAM,CACH9gB,UAAU,YACVpU,QAAS0uD,GACZ,aAOrB,CAEA,OACIxgE,EAAAA,cAAA,OAAKS,UAAU,gBACF,gBAARo2B,GACG72B,EAAAA,cAAC+gE,EAAAA,GAAM,CACHzpD,GAAG,eACHlnC,KAAK,kBACL0vB,IAAI,cAIH,gBAAR+2B,GACG72B,EAAAA,cAAC+gE,EAAAA,GAAM,CACHpwC,OAAK,EACL7wB,IAAI,sCACJ,YAAU,aAIT,gBAAR+2B,GACG72B,EAAAA,cAAC+gE,EAAAA,GAAM,CACHzuF,IAAI,mBACJq+C,OAAK,EACL7wB,IAAM,yDAAwDkhE,GAAAA,OAI7D,gBAARnqC,GACG72B,EAAAA,cAAC+gE,EAAAA,GAAM,CAACzuF,IAAI,kBAAkBq+C,OAAK,EAAC7wB,IAAI,sBAG5CE,EAAAA,cAACy1C,EAAU,MAEXz1C,EAAAA,cAAA,OAAKS,UAAU,WACVggE,EAEDzgE,EAAAA,cAAA,OAAKS,UAAU,aAAa/a,IAGhCsa,EAAAA,cAACo/D,GAAW,MACZp/D,EAAAA,cAACmzC,EAAoB,MACrBnzC,EAAAA,cAAC8zC,EAAkB,MAG/B,CAACisB,GAAA/5C,aAAA,wHCnLM,MAEMi7C,EAAmBrrC,IAC5B,MAAOiQ,KAAeq7B,GAAgBtrC,EAAKh2C,MAHf,QAM5B,MAAO,CAACimD,EAFYq7B,EAAapwE,KAAK,IAEN,EAI9BqwE,EAAsB,CACxB,MACA,OACA,IACA,KACA,MACA,OACA,OACA,MACA,MACA,OACA,OACA,UACA,MACA,UACA,SACA,MACA,MACA,aACA,eAQEC,EAAwC,CAC1CnnC,KAAM,SAIG6M,EAAkB3R,IAC3B,IAAIksC,EAAkBlsC,EAAS3+B,cAC3B6qE,KAAmBD,IACnBC,EACID,EAAiBC,IAGzB,IAAK,MAAMC,KAAqBH,EAC5B,GAAIE,IAAoBC,EAAkB9qE,cACtC,OAAO8qE,EAIf,OAAO97C,IAAU67C,EAAgB,sECzD9B,MAAM75B,EAAmB5R,IAC5BgZ,UAAU2yB,UAAUC,UAAU5rC,EAAK,gGCGvC,MAAM6rC,EAAkB,CAAC,YAAa,YAAa,WAEtCrB,EAASA,KAClB,GAAIsB,EAAAA,GAAW,CACX,MAAM,SAAE5a,GAAa,IAAIzlD,IAAI3N,OAAO0iD,SAASr2D,YAE7C,OAAI0hF,EAAgBrjE,SAAS0oD,GAClB,cACAA,IAAa6a,EAAAA,GACb,UAGJ,YACX,CAEA,OAAO,IAAI,kCCjBf,IAAIzzE,EAAUD,OAAOpe,UAAUqe,QAC3B0zE,EAAkB,OAElBC,EACS,UADTA,EAES,UAGblyF,EAAOC,QAAU,CACb,QAAWiyF,EACXC,WAAY,CACRC,QAAS,SAAU5tF,GACf,OAAO+Z,EAAQjd,KAAKkD,EAAOytF,EAAiB,IAChD,EACAI,QAAS,SAAU7tF,GACf,OAAO8Z,OAAO9Z,EAClB,GAEJ4tF,QAASF,EACTG,QAASH,uCCnBb,IAAI5hF,EAAY,EAAQ,OACpB0T,EAAQ,EAAQ,OAChBsuE,EAAU,EAAQ,OAEtBtyF,EAAOC,QAAU,CACbqyF,QAASA,EACTtuE,MAAOA,EACP1T,UAAWA,uCCPf,IAAIiiF,EAAQ,EAAQ,OAEhB3lE,EAAMtnB,OAAOpF,UAAUwf,eACvBhZ,EAAUnF,MAAMmF,QAEhB+X,EAAW,CACX+zE,WAAW,EACXC,iBAAiB,EACjB9a,WAAY,GACZr+B,QAAS,QACTo5C,iBAAiB,EACjBC,OAAO,EACPC,QAASL,EAAMM,OACfC,UAAW,IACXr9E,MAAO,EACPs9E,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,oBAAoB,GAGpBJ,EAA2B,SAAUrlE,GACrC,OAAOA,EAAIpP,QAAQ,aAAa,SAAU80E,EAAIC,GAC1C,OAAOh1E,OAAO6P,aAAaqB,SAAS8jE,EAAW,IACnD,GACJ,EAEIC,EAAkB,SAAUhoF,EAAK6H,GACjC,OAAI7H,GAAsB,iBAARA,GAAoB6H,EAAQu/E,OAASpnF,EAAIvF,QAAQ,MAAQ,EAChEuF,EAAI0E,MAAM,KAGd1E,CACX,EA+GIioF,EAAY,SAA8BC,EAAUloF,EAAK6H,EAASsgF,GAClE,GAAKD,EAAL,CAKA,IAAI9wF,EAAMyQ,EAAQo/E,UAAYiB,EAASl1E,QAAQ,cAAe,QAAUk1E,EAKpE/9E,EAAQ,gBAIRwL,EAAU9N,EAAQqC,MAAQ,GALf,eAK6B6vC,KAAK3iD,GAC7C0O,EAAS6P,EAAUve,EAAInB,MAAM,EAAG0f,EAAQ9d,OAAST,EAIjD4C,EAAO,GACX,GAAI8L,EAAQ,CAER,IAAK+B,EAAQ+/E,cAAgBvmE,EAAItrB,KAAKgE,OAAOpF,UAAWmR,KAC/C+B,EAAQq/E,gBACT,OAIRltF,EAAKzD,KAAKuP,EACd,CAKA,IADA,IAAIvQ,EAAI,EACDsS,EAAQqC,MAAQ,GAAqC,QAA/ByL,EAAUxL,EAAM4vC,KAAK3iD,KAAkB7B,EAAIsS,EAAQqC,OAAO,CAEnF,GADA3U,GAAK,GACAsS,EAAQ+/E,cAAgBvmE,EAAItrB,KAAKgE,OAAOpF,UAAWghB,EAAQ,GAAG1f,MAAM,GAAI,MACpE4R,EAAQq/E,gBACT,OAGRltF,EAAKzD,KAAKof,EAAQ,GACtB,CAQA,OAJIA,GACA3b,EAAKzD,KAAK,IAAMa,EAAInB,MAAM0f,EAAQ9d,OAAS,KAnFjC,SAAUuwF,EAAOpoF,EAAK6H,EAASsgF,GAG7C,IAFA,IAAI93B,EAAO83B,EAAenoF,EAAMgoF,EAAgBhoF,EAAK6H,GAE5CtS,EAAI6yF,EAAM1yF,OAAS,EAAGH,GAAK,IAAKA,EAAG,CACxC,IAAIgf,EACAhL,EAAO6+E,EAAM7yF,GAEjB,GAAa,OAATgU,GAAiB1B,EAAQ8/E,YACzBpzE,EAAM,GAAGlb,OAAOg3D,OACb,CACH97C,EAAM1M,EAAQ+/E,aAAe7tF,OAAO2Z,OAAO,MAAQ,CAAC,EACpD,IAAI20E,EAA+B,MAAnB9+E,EAAK2T,OAAO,IAA+C,MAAjC3T,EAAK2T,OAAO3T,EAAK7T,OAAS,GAAa6T,EAAKtT,MAAM,GAAI,GAAKsT,EACjG1R,EAAQosB,SAASokE,EAAW,IAC3BxgF,EAAQ8/E,aAA6B,KAAdU,GAGvBtzF,MAAM8C,IACJ0R,IAAS8+E,GACTt1E,OAAOlb,KAAWwwF,GAClBxwF,GAAS,GACRgQ,EAAQ8/E,aAAe9vF,GAASgQ,EAAQukE,YAE5C73D,EAAM,IACF1c,GAASw4D,EACQ,cAAdg4B,IACP9zE,EAAI8zE,GAAah4B,GAXjB97C,EAAM,CAAE,EAAG87C,EAanB,CAEAA,EAAO97C,CACX,CAEA,OAAO87C,CACX,CAqDWi4B,CAAYtuF,EAAMgG,EAAK6H,EAASsgF,EAhDvC,CAiDJ,EAoCA1zF,EAAOC,QAAU,SAAU0tB,EAAKtqB,GAC5B,IAAI+P,EAnCoB,SAA+B/P,GACvD,IAAKA,EACD,OAAOob,EAGX,GAAqB,OAAjBpb,EAAKuvF,cAAqCjzF,IAAjB0D,EAAKuvF,SAAiD,mBAAjBvvF,EAAKuvF,QACnE,MAAM,IAAIryF,UAAU,iCAGxB,QAA4B,IAAjB8C,EAAKi2C,SAA4C,UAAjBj2C,EAAKi2C,SAAwC,eAAjBj2C,EAAKi2C,QACxE,MAAM,IAAI/4C,UAAU,qEAExB,IAAI+4C,OAAkC,IAAjBj2C,EAAKi2C,QAA0B76B,EAAS66B,QAAUj2C,EAAKi2C,QAE5E,MAAO,CACHk5C,eAAqC,IAAnBnvF,EAAKmvF,UAA4B/zE,EAAS+zE,YAAcnvF,EAAKmvF,UAC/EC,gBAAiD,kBAAzBpvF,EAAKovF,gBAAgCpvF,EAAKovF,gBAAkBh0E,EAASg0E,gBAC7F9a,WAAuC,iBAApBt0E,EAAKs0E,WAA0Bt0E,EAAKs0E,WAAal5D,EAASk5D,WAC7Er+B,QAASA,EACTo5C,gBAAiD,kBAAzBrvF,EAAKqvF,gBAAgCrvF,EAAKqvF,gBAAkBj0E,EAASi0E,gBAC7FC,MAA6B,kBAAftvF,EAAKsvF,MAAsBtvF,EAAKsvF,MAAQl0E,EAASk0E,MAC/DC,QAAiC,mBAAjBvvF,EAAKuvF,QAAyBvvF,EAAKuvF,QAAUn0E,EAASm0E,QACtEE,UAAqC,iBAAnBzvF,EAAKyvF,WAA0BP,EAAMuB,SAASzwF,EAAKyvF,WAAazvF,EAAKyvF,UAAYr0E,EAASq0E,UAE5Gr9E,MAA8B,iBAAfpS,EAAKoS,QAAqC,IAAfpS,EAAKoS,OAAoBpS,EAAKoS,MAAQgJ,EAAShJ,MACzFs9E,mBAA8C,IAA3B1vF,EAAK0vF,kBACxBC,yBAAmE,kBAAlC3vF,EAAK2vF,yBAAyC3vF,EAAK2vF,yBAA2Bv0E,EAASu0E,yBACxHC,eAA+C,iBAAxB5vF,EAAK4vF,eAA8B5vF,EAAK4vF,eAAiBx0E,EAASw0E,eACzFC,aAAkC,IAArB7vF,EAAK6vF,YAClBC,aAA2C,kBAAtB9vF,EAAK8vF,aAA6B9vF,EAAK8vF,aAAe10E,EAAS00E,aACpFC,mBAAuD,kBAA5B/vF,EAAK+vF,mBAAmC/vF,EAAK+vF,mBAAqB30E,EAAS20E,mBAE9G,CAGkBW,CAAsB1wF,GAEpC,GAAY,KAARsqB,SAAcA,EACd,OAAOva,EAAQ+/E,aAAe7tF,OAAO2Z,OAAO,MAAQ,CAAC,EASzD,IANA,IAAI+0E,EAAyB,iBAARrmE,EAlMP,SAAgCA,EAAKva,GACnD,IAKItS,EALAgf,EAAM,CAAC,EACPm0E,EAAW7gF,EAAQ2/E,kBAAoBplE,EAAIpP,QAAQ,MAAO,IAAMoP,EAChEi+D,EAAQx4E,EAAQ6/E,iBAAmBiB,SAAWv0F,EAAYyT,EAAQ6/E,eAClEjhF,EAAQiiF,EAAShkF,MAAMmD,EAAQ0/E,UAAWlH,GAC1CuI,GAAa,EAGb76C,EAAUlmC,EAAQkmC,QACtB,GAAIlmC,EAAQs/E,gBACR,IAAK5xF,EAAI,EAAGA,EAAIkR,EAAM/Q,SAAUH,EACM,IAA9BkR,EAAMlR,GAAGkF,QAAQ,WAbX,mBAcFgM,EAAMlR,GACNw4C,EAAU,QAlBZ,wBAmBStnC,EAAMlR,KACbw4C,EAAU,cAEd66C,EAAYrzF,EACZA,EAAIkR,EAAM/Q,QAKtB,IAAKH,EAAI,EAAGA,EAAIkR,EAAM/Q,SAAUH,EAC5B,GAAIA,IAAMqzF,EAAV,CAGA,IAKIxxF,EAAK4I,EALL2E,EAAO8B,EAAMlR,GAEbszF,EAAmBlkF,EAAKlK,QAAQ,MAChCkY,GAA4B,IAAtBk2E,EAA0BlkF,EAAKlK,QAAQ,KAAOouF,EAAmB,GAG9D,IAATl2E,GACAvb,EAAMyQ,EAAQw/E,QAAQ1iF,EAAMuO,EAASm0E,QAASt5C,EAAS,OACvD/tC,EAAM6H,EAAQggF,mBAAqB,KAAO,KAE1CzwF,EAAMyQ,EAAQw/E,QAAQ1iF,EAAK1O,MAAM,EAAG0c,GAAMO,EAASm0E,QAASt5C,EAAS,OACrE/tC,EAAMgnF,EAAM8B,SACRd,EAAgBrjF,EAAK1O,MAAM0c,EAAM,GAAI9K,IACrC,SAAUkhF,GACN,OAAOlhF,EAAQw/E,QAAQ0B,EAAY71E,EAASm0E,QAASt5C,EAAS,QAClE,KAIJ/tC,GAAO6H,EAAQ4/E,0BAAwC,eAAZ15C,IAC3C/tC,EAAMynF,EAAyBznF,IAG/B2E,EAAKlK,QAAQ,QAAU,IACvBuF,EAAM7E,EAAQ6E,GAAO,CAACA,GAAOA,GAG7BqhB,EAAItrB,KAAKwe,EAAKnd,GACdmd,EAAInd,GAAO4vF,EAAMgC,QAAQz0E,EAAInd,GAAM4I,GAEnCuU,EAAInd,GAAO4I,CA/Bf,CAmCJ,OAAOuU,CACX,CAoI4C00E,CAAY7mE,EAAKva,GAAWua,EAChE7N,EAAM1M,EAAQ+/E,aAAe7tF,OAAO2Z,OAAO,MAAQ,CAAC,EAIpD1Z,EAAOD,OAAOC,KAAKyuF,GACdlzF,EAAI,EAAGA,EAAIyE,EAAKtE,SAAUH,EAAG,CAClC,IAAI6B,EAAM4C,EAAKzE,GACX2zF,EAASjB,EAAU7wF,EAAKqxF,EAAQrxF,GAAMyQ,EAAwB,iBAARua,GAC1D7N,EAAMyyE,EAAMtsF,MAAM6Z,EAAK20E,EAAQrhF,EACnC,CAEA,OAAOm/E,EAAM9/E,QAAQqN,EACzB,sCC9PA,IAAIyyE,EAAQ,EAAQ,OAChBD,EAAU,EAAQ,OAClB1lE,EAAMtnB,OAAOpF,UAAUwf,eAEvBg1E,EAAwB,CACxBC,SAAU,SAAkBzjC,GACxB,OAAOA,EAAS,IACpB,EACAyhC,MAAO,QACP7/E,QAAS,SAAiBo+C,EAAQvuD,GAC9B,OAAOuuD,EAAS,IAAMvuD,EAAM,GAChC,EACAiyF,OAAQ,SAAgB1jC,GACpB,OAAOA,CACX,GAGAxqD,EAAUnF,MAAMmF,QAChBuJ,EAAQqO,OAAOpe,UAAU+P,MACzBnO,EAAOP,MAAMrB,UAAU4B,KACvB+yF,EAAc,SAAU3oB,EAAK4oB,GAC7BhzF,EAAKL,MAAMyqE,EAAKxlE,EAAQouF,GAAgBA,EAAe,CAACA,GAC5D,EAEIC,EAAQ7uE,KAAKhmB,UAAU80F,YAEvBC,EAAgB3C,EAAiB,QACjC7zE,EAAW,CACXy2E,gBAAgB,EAChB1C,WAAW,EACXl5C,QAAS,QACTo5C,iBAAiB,EACjBI,UAAW,IACXpzC,QAAQ,EACRy1C,QAAS5C,EAAM7yC,OACf01C,kBAAkB,EAClBhjF,OAAQ6iF,EACRI,UAAW/C,EAAQH,WAAW8C,GAE9BniF,SAAS,EACTwiF,cAAe,SAAuBC,GAClC,OAAOR,EAAMzzF,KAAKi0F,EACtB,EACAC,WAAW,EACXpC,oBAAoB,GAWpB9iF,EAAY,SAASA,EACrBsQ,EACAswC,EACAukC,EACArC,EACAoC,EACAL,EACAvvF,EACAyR,EACAm7E,EACA8C,EACAljF,EACAijF,EACAD,EACA97C,GAEA,IAxBuDt0C,EAwBnD8a,EAAMc,EAcV,GAbsB,mBAAXhb,EACPka,EAAMla,EAAOsrD,EAAQpxC,GACdA,aAAeoG,KACtBpG,EAAMw1E,EAAcx1E,GACW,UAAxB21E,GAAmC/uF,EAAQoZ,KAClDA,EAAMyyE,EAAM8B,SAASv0E,GAAK,SAAUtb,GAChC,OAAIA,aAAiB0hB,KACVovE,EAAc9wF,GAElBA,CACX,KAGQ,OAARsb,EAAc,CACd,GAAIszE,EACA,OAAO+B,IAAYC,EAAmBD,EAAQjkC,EAAQzyC,EAAS02E,QAAS77C,EAAS,MAAOlnC,GAAU8+C,EAGtGpxC,EAAM,EACV,CAEA,GA7CoB,iBADmC9a,EA8C7B8a,IA5CN,iBAAN9a,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,GAyCoButF,EAAMmD,SAAS51E,GAAM,CACnD,GAAIq1E,EAAS,CACT,IAAIQ,EAAWP,EAAmBlkC,EAASikC,EAAQjkC,EAAQzyC,EAAS02E,QAAS77C,EAAS,MAAOlnC,GAC7F,GAA4B,UAAxBqjF,GAAmCL,EAAkB,CAGrD,IAFA,IAAIQ,EAAc3lF,EAAM3O,KAAKgd,OAAOwB,GAAM,KACtC+1E,EAAe,GACV/0F,EAAI,EAAGA,EAAI80F,EAAY30F,SAAUH,EACtC+0F,IAAuB,IAAN/0F,EAAU,GAAK,KAAOu0F,EAAUF,EAAQS,EAAY90F,GAAI2d,EAAS02E,QAAS77C,EAAS,QAASlnC,IAEjH,MAAO,CAACijF,EAAUM,GAAY,IAAME,EACxC,CACA,MAAO,CAACR,EAAUM,GAAY,IAAMN,EAAUF,EAAQr1E,EAAKrB,EAAS02E,QAAS77C,EAAS,QAASlnC,IACnG,CACA,MAAO,CAACijF,EAAUnkC,GAAU,IAAMmkC,EAAU/2E,OAAOwB,IACvD,CAEA,IAMIg2E,EANApwF,EAAS,GAEb,QAAmB,IAARoa,EACP,OAAOpa,EAIX,GAA4B,UAAxB+vF,GAAmC/uF,EAAQoZ,GAE3Cg2E,EAAU,CAAC,CAAEtxF,MAAOsb,EAAI7e,OAAS,EAAI6e,EAAIqB,KAAK,MAAQ,UAAO,SAC1D,GAAIza,EAAQd,GACfkwF,EAAUlwF,MACP,CACH,IAAIL,EAAOD,OAAOC,KAAKua,GACvBg2E,EAAUz+E,EAAO9R,EAAK8R,KAAKA,GAAQ9R,CACvC,CAEA,IAAK,IAAI+iB,EAAI,EAAGA,EAAIwtE,EAAQ70F,SAAUqnB,EAAG,CACrC,IAAI3lB,EAAMmzF,EAAQxtE,GACd9jB,EAAuB,iBAAR7B,QAAyC,IAAdA,EAAI6B,MAAwB7B,EAAI6B,MAAQsb,EAAInd,GAE1F,IAAI6yF,GAAuB,OAAVhxF,EAAjB,CAIA,IAAIuxF,EAAYrvF,EAAQoZ,GACa,mBAAxB21E,EAAqCA,EAAoBvkC,EAAQvuD,GAAOuuD,EAC/EA,GAAUshC,EAAY,IAAM7vF,EAAM,IAAMA,EAAM,KAEpDkyF,EAAYnvF,EAAQ4K,EAChB9L,EACAuxF,EACAN,EACArC,EACAoC,EACAL,EACAvvF,EACAyR,EACAm7E,EACA8C,EACAljF,EACAijF,EACAD,EACA97C,GApBJ,CAsBJ,CAEA,OAAO5zC,CACX,EAiDA1F,EAAOC,QAAU,SAAU2gB,EAAQvd,GAC/B,IAGIyyF,EAHAh2E,EAAMc,EACNxN,EAjDwB,SAAmC/P,GAC/D,IAAKA,EACD,OAAOob,EAGX,GAAqB,OAAjBpb,EAAK8xF,cAA4C,IAAjB9xF,EAAK8xF,SAAmD,mBAAjB9xF,EAAK8xF,QAC5E,MAAM,IAAI50F,UAAU,iCAGxB,IAAI+4C,EAAUj2C,EAAKi2C,SAAW76B,EAAS66B,QACvC,QAA4B,IAAjBj2C,EAAKi2C,SAA4C,UAAjBj2C,EAAKi2C,SAAwC,eAAjBj2C,EAAKi2C,QACxE,MAAM,IAAI/4C,UAAU,qEAGxB,IAAI6R,EAASkgF,EAAiB,QAC9B,QAA2B,IAAhBjvF,EAAK+O,OAAwB,CACpC,IAAKwa,EAAItrB,KAAKgxF,EAAQH,WAAY9uF,EAAK+O,QACnC,MAAM,IAAI7R,UAAU,mCAExB6R,EAAS/O,EAAK+O,MAClB,CACA,IAAIijF,EAAY/C,EAAQH,WAAW//E,GAE/BxM,EAAS6Y,EAAS7Y,OAKtB,OAJ2B,mBAAhBvC,EAAKuC,QAAyBc,EAAQrD,EAAKuC,WAClDA,EAASvC,EAAKuC,QAGX,CACHsvF,eAA+C,kBAAxB7xF,EAAK6xF,eAA+B7xF,EAAK6xF,eAAiBz2E,EAASy2E,eAC1F1C,eAAqC,IAAnBnvF,EAAKmvF,UAA4B/zE,EAAS+zE,YAAcnvF,EAAKmvF,UAC/El5C,QAASA,EACTo5C,gBAAiD,kBAAzBrvF,EAAKqvF,gBAAgCrvF,EAAKqvF,gBAAkBj0E,EAASi0E,gBAC7FI,eAAqC,IAAnBzvF,EAAKyvF,UAA4Br0E,EAASq0E,UAAYzvF,EAAKyvF,UAC7EpzC,OAA+B,kBAAhBr8C,EAAKq8C,OAAuBr8C,EAAKq8C,OAASjhC,EAASihC,OAClEy1C,QAAiC,mBAAjB9xF,EAAK8xF,QAAyB9xF,EAAK8xF,QAAU12E,EAAS02E,QACtEC,iBAAmD,kBAA1B/xF,EAAK+xF,iBAAiC/xF,EAAK+xF,iBAAmB32E,EAAS22E,iBAChGxvF,OAAQA,EACRwM,OAAQA,EACRijF,UAAWA,EACXC,cAA6C,mBAAvBjyF,EAAKiyF,cAA+BjyF,EAAKiyF,cAAgB72E,EAAS62E,cACxFE,UAAqC,kBAAnBnyF,EAAKmyF,UAA0BnyF,EAAKmyF,UAAY/2E,EAAS+2E,UAC3En+E,KAA2B,mBAAdhU,EAAKgU,KAAsBhU,EAAKgU,KAAO,KACpD+7E,mBAAuD,kBAA5B/vF,EAAK+vF,mBAAmC/vF,EAAK+vF,mBAAqB30E,EAAS20E,mBAE9G,CAIkB4C,CAA0B3yF,GAKV,mBAAnB+P,EAAQxN,OAEfka,GADAla,EAASwN,EAAQxN,QACJ,GAAIka,GACVpZ,EAAQ0M,EAAQxN,UAEvBkwF,EADS1iF,EAAQxN,QAIrB,IAMIqwF,EANA1wF,EAAO,GAEX,GAAmB,iBAARua,GAA4B,OAARA,EAC3B,MAAO,GAKPm2E,EADA5yF,GAAQA,EAAK4yF,eAAevB,EACdrxF,EAAK4yF,YACZ5yF,GAAQ,YAAaA,EACdA,EAAKyP,QAAU,UAAY,SAE3B,UAGlB,IAAI2iF,EAAsBf,EAAsBuB,GAE3CH,IACDA,EAAUxwF,OAAOC,KAAKua,IAGtB1M,EAAQiE,MACRy+E,EAAQz+E,KAAKjE,EAAQiE,MAGzB,IAAK,IAAIvW,EAAI,EAAGA,EAAIg1F,EAAQ70F,SAAUH,EAAG,CACrC,IAAI6B,EAAMmzF,EAAQh1F,GAEdsS,EAAQoiF,WAA0B,OAAb11E,EAAInd,IAG7BkyF,EAAYtvF,EAAM+K,EACdwP,EAAInd,GACJA,EACA8yF,EACAriF,EAAQggF,mBACRhgF,EAAQoiF,UACRpiF,EAAQssC,OAAStsC,EAAQ+hF,QAAU,KACnC/hF,EAAQxN,OACRwN,EAAQiE,KACRjE,EAAQo/E,UACRp/E,EAAQkiF,cACRliF,EAAQhB,OACRgB,EAAQiiF,UACRjiF,EAAQgiF,iBACRhiF,EAAQkmC,SAEhB,CAEA,IAAI48C,EAAS3wF,EAAK4b,KAAK/N,EAAQ0/E,WAC3B5hC,GAAoC,IAA3B99C,EAAQ8hF,eAA0B,IAAM,GAYrD,OAVI9hF,EAAQs/E,kBACgB,eAApBt/E,EAAQkmC,QAER4X,GAAU,uBAGVA,GAAU,mBAIXglC,EAAOj1F,OAAS,EAAIiwD,EAASglC,EAAS,EACjD,sCC5RA,IAAI5D,EAAU,EAAQ,OAElB1lE,EAAMtnB,OAAOpF,UAAUwf,eACvBhZ,EAAUnF,MAAMmF,QAEhByvF,EAAY,WAEZ,IADA,IAAIhoF,EAAQ,GACHrN,EAAI,EAAGA,EAAI,MAAOA,EACvBqN,EAAMrM,KAAK,MAAQhB,EAAI,GAAK,IAAM,IAAMA,EAAEsP,SAAS,KAAKy+C,eAG5D,OAAO1gD,CACX,CAPe,GA4BXioF,EAAgB,SAAuB/3E,EAAQjL,GAE/C,IADA,IAAI0M,EAAM1M,GAAWA,EAAQ+/E,aAAe7tF,OAAO2Z,OAAO,MAAQ,CAAC,EAC1Dne,EAAI,EAAGA,EAAIud,EAAOpd,SAAUH,OACR,IAAdud,EAAOvd,KACdgf,EAAIhf,GAAKud,EAAOvd,IAIxB,OAAOgf,CACX,EAoMA9f,EAAOC,QAAU,CACbm2F,cAAeA,EACfrmE,OA3IS,SAA4BtQ,EAAQpB,GAC7C,OAAO/Y,OAAOC,KAAK8Y,GAAQ7Y,QAAO,SAAU2J,EAAKxM,GAE7C,OADAwM,EAAIxM,GAAO0b,EAAO1b,GACXwM,CACX,GAAGsQ,EACP,EAuII80E,QAlBU,SAAiB/tF,EAAGC,GAC9B,MAAO,GAAG7B,OAAO4B,EAAGC,EACxB,EAiBIgM,QAvDU,SAAiBjO,GAI3B,IAHA,IAAI6xF,EAAQ,CAAC,CAAEv2E,IAAK,CAAEqD,EAAG3e,GAASw7B,KAAM,MACpCs2D,EAAO,GAEFx1F,EAAI,EAAGA,EAAIu1F,EAAMp1F,SAAUH,EAKhC,IAJA,IAAI0U,EAAO6gF,EAAMv1F,GACbgf,EAAMtK,EAAKsK,IAAItK,EAAKwqB,MAEpBz6B,EAAOD,OAAOC,KAAKua,GACdwI,EAAI,EAAGA,EAAI/iB,EAAKtE,SAAUqnB,EAAG,CAClC,IAAI3lB,EAAM4C,EAAK+iB,GACX/c,EAAMuU,EAAInd,GACK,iBAAR4I,GAA4B,OAARA,IAAuC,IAAvB+qF,EAAKtwF,QAAQuF,KACxD8qF,EAAMv0F,KAAK,CAAEge,IAAKA,EAAKkgB,KAAMr9B,IAC7B2zF,EAAKx0F,KAAKyJ,GAElB,CAKJ,OAlMe,SAAsB8qF,GACrC,KAAOA,EAAMp1F,OAAS,GAAG,CACrB,IAAIuU,EAAO6gF,EAAMtvE,MACbjH,EAAMtK,EAAKsK,IAAItK,EAAKwqB,MAExB,GAAIt5B,EAAQoZ,GAAM,CAGd,IAFA,IAAIy2E,EAAY,GAEPjuE,EAAI,EAAGA,EAAIxI,EAAI7e,SAAUqnB,OACR,IAAXxI,EAAIwI,IACXiuE,EAAUz0F,KAAKge,EAAIwI,IAI3B9S,EAAKsK,IAAItK,EAAKwqB,MAAQu2D,CAC1B,CACJ,CACJ,CA+KIC,CAAaH,GAEN7xF,CACX,EAkCIquF,OAvIS,SAAUllE,EAAKilE,EAASt5C,GACjC,IAAIm9C,EAAiB9oE,EAAIpP,QAAQ,MAAO,KACxC,GAAgB,eAAZ+6B,EAEA,OAAOm9C,EAAel4E,QAAQ,iBAAkBsP,UAGpD,IACI,OAAOG,mBAAmByoE,EAC9B,CAAE,MAAOj9E,GACL,OAAOi9E,CACX,CACJ,EA4HI/2C,OA1HS,SAAgB/xB,EAAK+oE,EAAgBp9C,EAASq9C,EAAMvkF,GAG7D,GAAmB,IAAfub,EAAI1sB,OACJ,OAAO0sB,EAGX,IAAI0yB,EAAS1yB,EAOb,GANmB,iBAARA,EACP0yB,EAAS98B,OAAOrjB,UAAUkQ,SAAS9O,KAAKqsB,GAClB,iBAARA,IACd0yB,EAAS/hC,OAAOqP,IAGJ,eAAZ2rB,EACA,OAAOrrB,OAAOoyB,GAAQ9hC,QAAQ,mBAAmB,SAAU80E,GACvD,MAAO,SAAW7jE,SAAS6jE,EAAG7xF,MAAM,GAAI,IAAM,KAClD,IAIJ,IADA,IAAImd,EAAM,GACD7d,EAAI,EAAGA,EAAIu/C,EAAOp/C,SAAUH,EAAG,CACpC,IAAI+jB,EAAIw7B,EAAOnyB,WAAWptB,GAGhB,KAAN+jB,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClBzS,IAAWkgF,EAAQF,UAAkB,KAANvtE,GAAoB,KAANA,GAEjDlG,GAAO0hC,EAAO53B,OAAO3nB,GAIrB+jB,EAAI,IACJlG,GAAYw3E,EAAStxE,GAIrBA,EAAI,KACJlG,GAAaw3E,EAAS,IAAQtxE,GAAK,GAAMsxE,EAAS,IAAY,GAAJtxE,GAI1DA,EAAI,OAAUA,GAAK,MACnBlG,GAAaw3E,EAAS,IAAQtxE,GAAK,IAAOsxE,EAAS,IAAStxE,GAAK,EAAK,IAASsxE,EAAS,IAAY,GAAJtxE,IAIpG/jB,GAAK,EACL+jB,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvBw7B,EAAOnyB,WAAWptB,IAExD6d,GAAOw3E,EAAS,IAAQtxE,GAAK,IACvBsxE,EAAS,IAAStxE,GAAK,GAAM,IAC7BsxE,EAAS,IAAStxE,GAAK,EAAK,IAC5BsxE,EAAS,IAAY,GAAJtxE,GAC3B,CAEA,OAAOlG,CACX,EA4DI+2E,SA9BW,SAAkB51E,GAC7B,SAAKA,GAAsB,iBAARA,OAITA,EAAIpW,aAAeoW,EAAIpW,YAAYgsF,UAAY51E,EAAIpW,YAAYgsF,SAAS51E,GACtF,EAyBIg0E,SAnCW,SAAkBh0E,GAC7B,MAA+C,oBAAxCxa,OAAOpF,UAAUkQ,SAAS9O,KAAKwe,EAC1C,EAkCIu0E,SApBW,SAAkB9oF,EAAK9H,GAClC,GAAIiD,EAAQ6E,GAAM,CAEd,IADA,IAAIqrF,EAAS,GACJ91F,EAAI,EAAGA,EAAIyK,EAAItK,OAAQH,GAAK,EACjC81F,EAAO90F,KAAK2B,EAAG8H,EAAIzK,KAEvB,OAAO81F,CACX,CACA,OAAOnzF,EAAG8H,EACd,EAYItF,MA5MQ,SAASA,EAAMwZ,EAAQpB,EAAQjL,GAEvC,IAAKiL,EACD,OAAOoB,EAGX,GAAsB,iBAAXpB,EAAqB,CAC5B,GAAI3X,EAAQ+Y,GACRA,EAAO3d,KAAKuc,OACT,KAAIoB,GAA4B,iBAAXA,EAKxB,MAAO,CAACA,EAAQpB,IAJXjL,IAAYA,EAAQ+/E,cAAgB//E,EAAQq/E,mBAAsB7lE,EAAItrB,KAAKgE,OAAOpF,UAAWme,MAC9FoB,EAAOpB,IAAU,EAIzB,CAEA,OAAOoB,CACX,CAEA,IAAKA,GAA4B,iBAAXA,EAClB,MAAO,CAACA,GAAQ7a,OAAOyZ,GAG3B,IAAIw4E,EAAcp3E,EAKlB,OAJI/Y,EAAQ+Y,KAAY/Y,EAAQ2X,KAC5Bw4E,EAAcT,EAAc32E,EAAQrM,IAGpC1M,EAAQ+Y,IAAW/Y,EAAQ2X,IAC3BA,EAAOzW,SAAQ,SAAU4N,EAAM1U,GAC3B,GAAI8rB,EAAItrB,KAAKme,EAAQ3e,GAAI,CACrB,IAAIg2F,EAAar3E,EAAO3e,GACpBg2F,GAAoC,iBAAfA,GAA2BthF,GAAwB,iBAATA,EAC/DiK,EAAO3e,GAAKmF,EAAM6wF,EAAYthF,EAAMpC,GAEpCqM,EAAO3d,KAAK0T,EAEpB,MACIiK,EAAO3e,GAAK0U,CAEpB,IACOiK,GAGJna,OAAOC,KAAK8Y,GAAQ7Y,QAAO,SAAU2J,EAAKxM,GAC7C,IAAI6B,EAAQ6Z,EAAO1b,GAOnB,OALIiqB,EAAItrB,KAAK6N,EAAKxM,GACdwM,EAAIxM,GAAOsD,EAAMkJ,EAAIxM,GAAM6B,EAAO4O,GAElCjE,EAAIxM,GAAO6B,EAER2K,CACX,GAAG0nF,EACP,sBC5EA72F,EAAOC,QAbP,SAAqBkO,EAAOwS,EAAUo2E,EAAaC,GACjD,IAAI5zF,GAAS,EACTnC,EAAkB,MAATkN,EAAgB,EAAIA,EAAMlN,OAKvC,IAHI+1F,GAAa/1F,IACf81F,EAAc5oF,IAAQ/K,MAEfA,EAAQnC,GACf81F,EAAcp2E,EAASo2E,EAAa5oF,EAAM/K,GAAQA,EAAO+K,GAE3D,OAAO4oF,CACT,qBCZA/2F,EAAOC,QAJP,SAAsBogD,GACpB,OAAOA,EAAOpwC,MAAM,GACtB,qBCRA,IAAIgnF,EAAc,4CAalBj3F,EAAOC,QAJP,SAAoBogD,GAClB,OAAOA,EAAO8H,MAAM8uC,IAAgB,EACtC,qBCCAj3F,EAAOC,QANP,SAAwB2gB,GACtB,OAAO,SAASje,GACd,OAAiB,MAAVie,OAAiBjhB,EAAYihB,EAAOje,EAC7C,CACF,qBCmBA3C,EAAOC,QArBP,SAAmBkO,EAAOinE,EAAO8hB,GAC/B,IAAI9zF,GAAS,EACTnC,EAASkN,EAAMlN,OAEfm0E,EAAQ,IACVA,GAASA,EAAQn0E,EAAS,EAAKA,EAASm0E,IAE1C8hB,EAAMA,EAAMj2F,EAASA,EAASi2F,GACpB,IACRA,GAAOj2F,GAETA,EAASm0E,EAAQ8hB,EAAM,EAAMA,EAAM9hB,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAI3hE,EAASlS,MAAMN,KACVmC,EAAQnC,GACfwS,EAAOrQ,GAAS+K,EAAM/K,EAAQgyE,GAEhC,OAAO3hE,CACT,yBC5BA,IAAI0jF,EAAY,EAAQ,OAiBxBn3F,EAAOC,QANP,SAAmBkO,EAAOinE,EAAO8hB,GAC/B,IAAIj2F,EAASkN,EAAMlN,OAEnB,OADAi2F,OAAcv3F,IAARu3F,EAAoBj2F,EAASi2F,GAC1B9hB,GAAS8hB,GAAOj2F,EAAUkN,EAAQgpF,EAAUhpF,EAAOinE,EAAO8hB,EACrE,yBCfA,IAAIE,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBC,EAAgB,EAAQ,OACxBlnF,EAAW,EAAQ,OA6BvBpQ,EAAOC,QApBP,SAAyBiwE,GACvB,OAAO,SAAS7vB,GACdA,EAASjwC,EAASiwC,GAElB,IAAIk3C,EAAaF,EAAWh3C,GACxBi3C,EAAcj3C,QACd1gD,EAEA63F,EAAMD,EACNA,EAAW,GACXl3C,EAAO53B,OAAO,GAEdgvE,EAAWF,EACXH,EAAUG,EAAY,GAAGp2E,KAAK,IAC9Bk/B,EAAO7+C,MAAM,GAEjB,OAAOg2F,EAAItnB,KAAgBunB,CAC7B,CACF,yBC9BA,IAAIC,EAAc,EAAQ,OACtBC,EAAS,EAAQ,OACjBxoE,EAAQ,EAAQ,OAMhByoE,EAASnyC,OAHA,OAGe,KAe5BzlD,EAAOC,QANP,SAA0B+7C,GACxB,OAAO,SAASqE,GACd,OAAOq3C,EAAYvoE,EAAMwoE,EAAOt3C,GAAQ9hC,QAAQq5E,EAAQ,KAAM57C,EAAU,GAC1E,CACF,yBCrBA,IAoEI67C,EApEiB,EAAQ,MAoEVC,CAjEG,CAEpB,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAC1E,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAC1E,IAAQ,IAAM,IAAQ,IACtB,IAAQ,IAAM,IAAQ,IACtB,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IACtB,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAC1E,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAC1E,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IAAK,IAAQ,IAChD,IAAQ,IAAM,IAAQ,IAAK,IAAQ,IACnC,IAAQ,KAAM,IAAQ,KACtB,IAAQ,KAAM,IAAQ,KACtB,IAAQ,KAER,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACvE,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IACxD,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IAAK,IAAU,IACtF,IAAU,IAAM,IAAU,IAC1B,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,IAAM,IAAU,IAAK,IAAU,IACzC,IAAU,KAAM,IAAU,KAC1B,IAAU,KAAM,IAAU,KAC1B,IAAU,KAAM,IAAU,MAa5B93F,EAAOC,QAAU43F,qBCrEjB,IAWIE,EAAetyC,OAAO,uFAa1BzlD,EAAOC,QAJP,SAAoBogD,GAClB,OAAO03C,EAAah1E,KAAKs9B,EAC3B,qBCtBA,IAAI23C,EAAmB,qEAavBh4F,EAAOC,QAJP,SAAwBogD,GACtB,OAAO23C,EAAiBj1E,KAAKs9B,EAC/B,yBCZA,IAAI43C,EAAe,EAAQ,OACvBZ,EAAa,EAAQ,OACrBa,EAAiB,EAAQ,KAe7Bl4F,EAAOC,QANP,SAAuBogD,GACrB,OAAOg3C,EAAWh3C,GACd63C,EAAe73C,GACf43C,EAAa53C,EACnB,mBCdA,IAAI83C,EAAgB,kBAQhBC,EAAW,IAAMD,EAAgB,IACjCE,EAAU,kDACVC,EAAS,2BAETC,EAAc,KAAOJ,EAAgB,IACrCK,EAAa,kCACbC,EAAa,qCAIbC,EAPa,MAAQL,EAAU,IAAMC,EAAS,IAOtB,IACxBK,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACH,EAAaC,EAAYC,GAAYt3E,KAAK,KAAO,IAAMw3E,EAAWD,EAAW,MAElHG,EAAW,MAAQ,CAACN,EAAcF,EAAU,IAAKA,EAASG,EAAYC,EAAYL,GAAUj3E,KAAK,KAAO,IAGxG23E,EAAYrzC,OAAO6yC,EAAS,MAAQA,EAAS,KAAOO,EAAWD,EAAO,KAa1E54F,EAAOC,QAJP,SAAwBogD,GACtB,OAAOA,EAAO8H,MAAM2wC,IAAc,EACpC,oBCpCA,IAAIX,EAAgB,kBAKhBY,EAAiB,kBACjBC,EAAe,4BAKfC,EAAe,4BAEfC,EAAeC,8OAIfC,EAAU,IAAMF,EAAe,IAE/BG,EAAW,OACXC,EAAY,IAAMP,EAAiB,IACnCQ,EAAU,IAAMP,EAAe,IAC/BQ,EAAS,KAAOrB,EAAgBe,EAAeG,EAAWN,EAAiBC,EAAeC,EAAe,IAIzGT,EAAa,kCACbC,EAAa,qCACbgB,EAAU,IAAMR,EAAe,IAI/BS,EAAc,MAAQH,EAAU,IAAMC,EAAS,IAC/CG,EAAc,MAAQF,EAAU,IAAMD,EAAS,IAC/CI,EAAkB,gCAClBC,EAAkB,gCAClBnB,EAAWoB,gFACXnB,EAAW,oBAIXC,EAAQD,EAAWD,GAHP,gBAAwB,CAbtB,KAAOP,EAAgB,IAaaK,EAAYC,GAAYt3E,KAAK,KAAO,IAAMw3E,EAAWD,EAAW,MAIlHqB,EAAU,MAAQ,CAACT,EAAWd,EAAYC,GAAYt3E,KAAK,KAAO,IAAMy3E,EAGxEoB,EAAgBv0C,OAAO,CACzBg0C,EAAU,IAAMF,EAAU,IAAMK,EAAkB,MAAQ,CAACR,EAASK,EAAS,KAAKt4E,KAAK,KAAO,IAC9Fw4E,EAAc,IAAME,EAAkB,MAAQ,CAACT,EAASK,EAAUC,EAAa,KAAKv4E,KAAK,KAAO,IAChGs4E,EAAU,IAAMC,EAAc,IAAME,EACpCH,EAAU,IAAMI,EATD,mDADA,mDAafR,EACAU,GACA54E,KAAK,KAAM,KAabnhB,EAAOC,QAJP,SAAsBogD,GACpB,OAAOA,EAAO8H,MAAM6xC,IAAkB,EACxC,yBClEA,IAAInC,EAAe,EAAQ,OACvBznF,EAAW,EAAQ,OAGnB6pF,EAAU,8CAeVC,EAAcz0C,OANJ,kDAMoB,KAyBlCzlD,EAAOC,QALP,SAAgBogD,GAEd,OADAA,EAASjwC,EAASiwC,KACDA,EAAO9hC,QAAQ07E,EAASpC,GAAct5E,QAAQ27E,EAAa,GAC9E,yBC1CA,IAAIC,EAAmB,EAAQ,OAC3BC,EAAa,EAAQ,OAuBrBvkD,EAAYskD,GAAiB,SAAS1mF,EAAQ4mF,EAAMj3F,GACtD,OAAOqQ,GAAUrQ,EAAQ,IAAM,IAAMg3F,EAAWC,EAClD,IAEAr6F,EAAOC,QAAU41C,yBC5BjB,IAmBIukD,EAnBkB,EAAQ,MAmBbE,CAAgB,eAEjCt6F,EAAOC,QAAUm6F,yBCrBjB,IAAIG,EAAa,EAAQ,OACrBC,EAAiB,EAAQ,OACzBpqF,EAAW,EAAQ,OACnBqqF,EAAe,EAAQ,MA+B3Bz6F,EAAOC,QAVP,SAAeogD,EAAQ2H,EAAS0yC,GAI9B,OAHAr6C,EAASjwC,EAASiwC,QAGF1gD,KAFhBqoD,EAAU0yC,OAAQ/6F,EAAYqoD,GAGrBwyC,EAAen6C,GAAUo6C,EAAap6C,GAAUk6C,EAAWl6C,GAE7DA,EAAO8H,MAAMH,IAAY,EAClC,wBChCA,IACMp5B,EACAnB,EACAioE,EACA9nE,EAGJgpC,EANIhoC,EAAQ,EAAQ,OAChBnB,EAAO,cACPioE,EAAW,EAAQ,OACnB9nE,EAAM,cAGVgpC,EAAM,SAAU5vC,EAAS5T,GAEnB4T,EAAQtd,aAAe4U,OAEvB0I,EADE5T,GAAgC,WAArBA,EAAQunF,SACX/sE,EAAIF,cAAc1G,GAElByG,EAAKC,cAAc1G,GACxB0uE,EAAS1uE,GAChBA,EAAUzlB,MAAMrB,UAAUsB,MAAMF,KAAK0lB,EAAS,GACtCzlB,MAAMmF,QAAQsgB,IAAYA,EAAQtd,cAAgBkxF,aAC1D5zE,EAAUA,EAAQ5W,YAWpB,IARA,IAAIxO,EAAIgtB,EAAMM,aAAalI,GACvBnH,EAAqB,EAAjBmH,EAAQ/lB,OACZuF,EAAK,WACLC,GAAK,UACLoe,GAAK,WACLQ,EAAK,UAGAvkB,EAAI,EAAGA,EAAIc,EAAEX,OAAQH,IAC5Bc,EAAEd,GAAsC,UAA/Bc,EAAEd,IAAO,EAAMc,EAAEd,KAAO,IACO,YAA/Bc,EAAEd,IAAM,GAAOc,EAAEd,KAAQ,GAIpCc,EAAEie,IAAM,IAAM,KAASA,EAAI,GAC3Bje,EAA4B,IAAvBie,EAAI,KAAQ,GAAM,IAAWA,EAGlC,IAAIg7E,EAAKjkC,EAAIkkC,IACTC,EAAKnkC,EAAIokC,IACTC,EAAKrkC,EAAIskC,IACTC,EAAKvkC,EAAIwkC,IAEb,IAASt6F,EAAI,EAAGA,EAAIc,EAAEX,OAAQH,GAAK,GAAI,CAErC,IAAIu6F,EAAK70F,EACL80F,EAAK70F,EACL80F,EAAK12E,EACL22E,EAAKn2E,EAET7e,EAAIq0F,EAAGr0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAIw1E,EAAGx1E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,IAAK,WACjC+jB,EAAIg2E,EAAGh2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,GAAK,WACjC2F,EAAIo0F,EAAGp0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,YACjC0F,EAAIq0F,EAAGr0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAIw1E,EAAGx1E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,GAAK,YACjC+jB,EAAIg2E,EAAGh2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,IAAK,YACjC2F,EAAIo0F,EAAGp0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,UACjC0F,EAAIq0F,EAAGr0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,EAAI,YACjCukB,EAAIw1E,EAAGx1E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,IAAK,YACjC+jB,EAAIg2E,EAAGh2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,IAAK,OACjC2F,EAAIo0F,EAAGp0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,IAAK,YACjC0F,EAAIq0F,EAAGr0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAE,IAAM,EAAI,YACjCukB,EAAIw1E,EAAGx1E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAK,IAAK,UACjC+jB,EAAIg2E,EAAGh2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,IAAK,YAGjC0F,EAAIu0F,EAAGv0F,EAFPC,EAAIo0F,EAAGp0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,GAAK,YAEpB+jB,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAI01E,EAAG11E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAK,GAAI,YACjC+jB,EAAIk2E,EAAGl2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,GAAK,WACjC2F,EAAIs0F,EAAGt0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,WACjC0F,EAAIu0F,EAAGv0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAI01E,EAAG11E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAM,EAAI,UACjC+jB,EAAIk2E,EAAGl2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,IAAK,WACjC2F,EAAIs0F,EAAGt0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,WACjC0F,EAAIu0F,EAAGv0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,EAAI,WACjCukB,EAAI01E,EAAG11E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAM,GAAI,YACjC+jB,EAAIk2E,EAAGl2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,IAAK,WACjC2F,EAAIs0F,EAAGt0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,GAAK,YACjC0F,EAAIu0F,EAAGv0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAE,IAAM,GAAI,YACjCukB,EAAI01E,EAAG11E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAK,GAAI,UACjC+jB,EAAIk2E,EAAGl2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,GAAK,YAGjC0F,EAAIy0F,EAAGz0F,EAFPC,EAAIs0F,EAAGt0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,IAAK,YAEpB+jB,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,QACjCukB,EAAI41E,EAAG51E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,IAAK,YACjC+jB,EAAIo2E,EAAGp2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,GAAK,YACjC2F,EAAIw0F,EAAGx0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,IAAK,UACjC0F,EAAIy0F,EAAGz0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,YACjCukB,EAAI41E,EAAG51E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,GAAK,YACjC+jB,EAAIo2E,EAAGp2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,IAAK,WACjC2F,EAAIw0F,EAAGx0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,IAAK,YACjC0F,EAAIy0F,EAAGz0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAE,IAAM,EAAI,WACjCukB,EAAI41E,EAAG51E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,IAAK,WACjC+jB,EAAIo2E,EAAGp2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,IAAK,WACjC2F,EAAIw0F,EAAGx0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,GAAK,UACjC0F,EAAIy0F,EAAGz0F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAI41E,EAAG51E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAK,IAAK,WACjC+jB,EAAIo2E,EAAGp2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,GAAK,WAGjC0F,EAAI20F,EAAG30F,EAFPC,EAAIw0F,EAAGx0F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,WAEpB+jB,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAI81E,EAAG91E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,GAAK,YACjC+jB,EAAIs2E,EAAGt2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,IAAK,YACjC2F,EAAI00F,EAAG10F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,UACjC0F,EAAI20F,EAAG30F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAE,IAAM,EAAI,YACjCukB,EAAI81E,EAAG91E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAG,GAAI,IAAK,YACjC+jB,EAAIs2E,EAAGt2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAE,IAAK,IAAK,SACjC2F,EAAI00F,EAAG10F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,YACjC0F,EAAI20F,EAAG30F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,EAAI,YACjCukB,EAAI81E,EAAG91E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAK,IAAK,UACjC+jB,EAAIs2E,EAAGt2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,IAAK,YACjC2F,EAAI00F,EAAG10F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAE,IAAK,GAAK,YACjC0F,EAAI20F,EAAG30F,EAAGC,EAAGoe,EAAGQ,EAAGzjB,EAAEd,EAAG,GAAK,GAAI,WACjCukB,EAAI81E,EAAG91E,EAAG7e,EAAGC,EAAGoe,EAAGjjB,EAAEd,EAAE,IAAK,IAAK,YACjC+jB,EAAIs2E,EAAGt2E,EAAGQ,EAAG7e,EAAGC,EAAG7E,EAAEd,EAAG,GAAI,GAAK,WACjC2F,EAAI00F,EAAG10F,EAAGoe,EAAGQ,EAAG7e,EAAG5E,EAAEd,EAAG,GAAI,IAAK,WAEjC0F,EAAKA,EAAI60F,IAAQ,EACjB50F,EAAKA,EAAI60F,IAAQ,EACjBz2E,EAAKA,EAAI02E,IAAQ,EACjBl2E,EAAKA,EAAIm2E,IAAQ,CACnB,CAEA,OAAO5sE,EAAMG,OAAO,CAACvoB,EAAGC,EAAGoe,EAAGQ,GAChC,GAGIy1E,IAAO,SAAUt0F,EAAGC,EAAGoe,EAAGQ,EAAG2C,EAAG1K,EAAGtQ,GACrC,IAAI3M,EAAImG,GAAKC,EAAIoe,GAAKpe,EAAI4e,IAAM2C,IAAM,GAAKhb,EAC3C,OAAS3M,GAAKid,EAAMjd,IAAO,GAAKid,GAAO7W,CACzC,EACAmwD,EAAIokC,IAAO,SAAUx0F,EAAGC,EAAGoe,EAAGQ,EAAG2C,EAAG1K,EAAGtQ,GACrC,IAAI3M,EAAImG,GAAKC,EAAI4e,EAAIR,GAAKQ,IAAM2C,IAAM,GAAKhb,EAC3C,OAAS3M,GAAKid,EAAMjd,IAAO,GAAKid,GAAO7W,CACzC,EACAmwD,EAAIskC,IAAO,SAAU10F,EAAGC,EAAGoe,EAAGQ,EAAG2C,EAAG1K,EAAGtQ,GACrC,IAAI3M,EAAImG,GAAKC,EAAIoe,EAAIQ,IAAM2C,IAAM,GAAKhb,EACtC,OAAS3M,GAAKid,EAAMjd,IAAO,GAAKid,GAAO7W,CACzC,EACAmwD,EAAIwkC,IAAO,SAAU50F,EAAGC,EAAGoe,EAAGQ,EAAG2C,EAAG1K,EAAGtQ,GACrC,IAAI3M,EAAImG,GAAKqe,GAAKpe,GAAK4e,KAAO2C,IAAM,GAAKhb,EACzC,OAAS3M,GAAKid,EAAMjd,IAAO,GAAKid,GAAO7W,CACzC,EAGAmwD,EAAI6kC,WAAa,GACjB7kC,EAAI8kC,YAAc,GAElB17F,EAAOC,QAAU,SAAU+mB,EAAS5T,GAClC,GAAI4T,QACF,MAAM,IAAI7lB,MAAM,oBAAsB6lB,GAExC,IAAI20E,EAAc/sE,EAAMQ,aAAawnC,EAAI5vC,EAAS5T,IAClD,OAAOA,GAAWA,EAAQwoF,QAAUD,EAChCvoF,GAAWA,EAAQyoF,SAAWjuE,EAAIE,cAAc6tE,GAChD/sE,EAAMS,WAAWssE,EACvB,qBChJF,SAASjG,EAAU51E,GACjB,QAASA,EAAIpW,aAAmD,mBAA7BoW,EAAIpW,YAAYgsF,UAA2B51E,EAAIpW,YAAYgsF,SAAS51E,EACzG,CANA9f,EAAOC,QAAU,SAAU6f,GACzB,OAAc,MAAPA,IAAgB41E,EAAS51E,IAQlC,SAAuBA,GACrB,MAAkC,mBAApBA,EAAIg8E,aAAmD,mBAAdh8E,EAAIte,OAAwBk0F,EAAS51E,EAAIte,MAAM,EAAG,GAC3G,CAV0Cu6F,CAAaj8E,MAAUA,EAAIk8E,UACrE,qBCTA,IAAIC,EAAoC,oBAAZC,QACxBC,EAAwB,mBAAR9+D,IAChB++D,EAAwB,mBAAR3vE,IAChB4vE,EAAwC,mBAAhBC,eAAgCA,YAAYC,OAIxE,SAASC,EAAMh2F,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,GAAID,EAAEkD,cAAgBjD,EAAEiD,YAAa,OAAO,EAE5C,IAAIzI,EAAQH,EAAGyE,EA6BXk3F,EA5BJ,GAAIl7F,MAAMmF,QAAQF,GAAI,CAEpB,IADAvF,EAASuF,EAAEvF,SACGwF,EAAExF,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,GAARH,KACf,IAAK07F,EAAMh2F,EAAE1F,GAAI2F,EAAE3F,IAAK,OAAO,EACjC,OAAO,CACT,CAuBA,GAAIq7F,GAAW31F,aAAa62B,KAAS52B,aAAa42B,IAAM,CACtD,GAAI72B,EAAEgwC,OAAS/vC,EAAE+vC,KAAM,OAAO,EAE9B,IADAimD,EAAKj2F,EAAE8e,YACExkB,EAAI27F,EAAG/4E,QAAQC,UACjBld,EAAEmmB,IAAI9rB,EAAE0D,MAAM,IAAK,OAAO,EAEjC,IADAi4F,EAAKj2F,EAAE8e,YACExkB,EAAI27F,EAAG/4E,QAAQC,UACjB64E,EAAM17F,EAAE0D,MAAM,GAAIiC,EAAEyd,IAAIpjB,EAAE0D,MAAM,KAAM,OAAO,EACpD,OAAO,CACT,CAEA,GAAI43F,GAAW51F,aAAaimB,KAAShmB,aAAagmB,IAAM,CACtD,GAAIjmB,EAAEgwC,OAAS/vC,EAAE+vC,KAAM,OAAO,EAE9B,IADAimD,EAAKj2F,EAAE8e,YACExkB,EAAI27F,EAAG/4E,QAAQC,UACjBld,EAAEmmB,IAAI9rB,EAAE0D,MAAM,IAAK,OAAO,EACjC,OAAO,CACT,CAGA,GAAI63F,GAAkBC,YAAYC,OAAO/1F,IAAM81F,YAAYC,OAAO91F,GAAI,CAEpE,IADAxF,EAASuF,EAAEvF,SACGwF,EAAExF,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,GAARH,KACf,GAAI0F,EAAE1F,KAAO2F,EAAE3F,GAAI,OAAO,EAC5B,OAAO,CACT,CAEA,GAAI0F,EAAEkD,cAAgB+7C,OAAQ,OAAOj/C,EAAE6X,SAAW5X,EAAE4X,QAAU7X,EAAEqiD,QAAUpiD,EAAEoiD,MAK5E,GAAIriD,EAAE0mD,UAAY5nD,OAAOpF,UAAUgtD,SAAgC,mBAAd1mD,EAAE0mD,SAA+C,mBAAdzmD,EAAEymD,QAAwB,OAAO1mD,EAAE0mD,YAAczmD,EAAEymD,UAC3I,GAAI1mD,EAAE4J,WAAa9K,OAAOpF,UAAUkQ,UAAkC,mBAAf5J,EAAE4J,UAAiD,mBAAf3J,EAAE2J,SAAyB,OAAO5J,EAAE4J,aAAe3J,EAAE2J,WAKhJ,IADAnP,GADAsE,EAAOD,OAAOC,KAAKiB,IACLvF,UACCqE,OAAOC,KAAKkB,GAAGxF,OAAQ,OAAO,EAE7C,IAAKH,EAAIG,EAAgB,GAARH,KACf,IAAKwE,OAAOpF,UAAUwf,eAAepe,KAAKmF,EAAGlB,EAAKzE,IAAK,OAAO,EAKhE,GAAIm7F,GAAkBz1F,aAAa01F,QAAS,OAAO,EAGnD,IAAKp7F,EAAIG,EAAgB,GAARH,KACf,IAAiB,WAAZyE,EAAKzE,IAA+B,QAAZyE,EAAKzE,IAA4B,QAAZyE,EAAKzE,KAAiB0F,EAAEk2F,YAarEF,EAAMh2F,EAAEjB,EAAKzE,IAAK2F,EAAElB,EAAKzE,KAAM,OAAO,EAK7C,OAAO,CACT,CAEA,OAAO0F,GAAMA,GAAKC,GAAMA,CAC1B,CAGAzG,EAAOC,QAAU,SAAiBuG,EAAGC,GACnC,IACE,OAAO+1F,EAAMh2F,EAAGC,EAClB,CAAE,MAAOzF,GACP,IAAMA,EAAMgmB,SAAW,IAAImhC,MAAM,oBAO/B,OADAnmD,QAAQiF,KAAK,mDACN,EAGT,MAAMjG,CACR,CACF,gGC1IW27F,EAAqB,4BACrBC,EAAqB,0BCezB,SAASC,EAAavG,EAAMt3D,GAC/B,OCF2B89D,EDEL99D,GAAgB,KCFGgd,EDEG,SAAU+gD,GAAY,OAAOzG,EAAK1uF,SAAQ,SAAU2oB,GAAO,OEJpG,SAAmBA,EAAK/rB,GAO3B,MANmB,mBAAR+rB,EACPA,EAAI/rB,GAEC+rB,IACLA,EAAI8H,QAAU7zB,GAEX+rB,CACX,CFJkHysE,CAAUzsE,EAAKwsE,EAAW,GAAI,GCDxIxsE,GAAM,IAAA28C,WAAS,WAAc,MAAO,CAEpC1oE,MAAOs4F,EAEP9gD,SAAUA,EAEVihD,OAAQ,CACA5kE,cACA,OAAO9H,EAAI/rB,KACf,EACI6zB,YAAQ7zB,GACR,IAAI41B,EAAO7J,EAAI/rB,MACX41B,IAAS51B,IACT+rB,EAAI/rB,MAAQA,EACZ+rB,EAAIyrB,SAASx3C,EAAO41B,GAE5B,GAEJ,IAAG,IAEH4hB,SAAWA,EACRzrB,EAAI0sE,OAtBR,IAAwBH,EAAc9gD,EACrCzrB,CDER,CGjBA,SAAS2sE,EAAK12F,GACV,OAAOA,CACX,CACA,SAAS22F,EAAkB1+E,EAAU8iE,QACd,IAAfA,IAAyBA,EAAa2b,GAC1C,IAAIE,EAAS,GACTC,GAAW,EA0Df,MAzDa,CACTn0E,KAAM,WACF,GAAIm0E,EACA,MAAM,IAAIl8F,MAAM,oGAEpB,OAAIi8F,EAAOn8F,OACAm8F,EAAOA,EAAOn8F,OAAS,GAE3Bwd,CACX,EACA6+E,UAAW,SAAU/rF,GACjB,IAAIiE,EAAO+rE,EAAWhwE,EAAM8rF,GAE5B,OADAD,EAAOt7F,KAAK0T,GACL,WACH4nF,EAASA,EAAOx3F,QAAO,SAAUoiB,GAAK,OAAOA,IAAMxS,CAAM,GAC7D,CACJ,EACA+nF,iBAAkB,SAAUtkF,GAExB,IADAokF,GAAW,EACJD,EAAOn8F,QAAQ,CAClB,IAAIu8F,EAAMJ,EACVA,EAAS,GACTI,EAAI51F,QAAQqR,EAChB,CACAmkF,EAAS,CACLt7F,KAAM,SAAUkmB,GAAK,OAAO/O,EAAG+O,EAAI,EACnCpiB,OAAQ,WAAc,OAAOw3F,CAAQ,EAE7C,EACAK,aAAc,SAAUxkF,GACpBokF,GAAW,EACX,IAAIK,EAAe,GACnB,GAAIN,EAAOn8F,OAAQ,CACf,IAAIu8F,EAAMJ,EACVA,EAAS,GACTI,EAAI51F,QAAQqR,GACZykF,EAAeN,CACnB,CACA,IAAIO,EAAe,WACf,IAAIH,EAAME,EACVA,EAAe,GACfF,EAAI51F,QAAQqR,EAChB,EACI2kF,EAAQ,WAAc,OAAOhkF,QAAQC,UAAUR,KAAKskF,EAAe,EACvEC,IACAR,EAAS,CACLt7F,KAAM,SAAUkmB,GACZ01E,EAAa57F,KAAKkmB,GAClB41E,GACJ,EACAh4F,OAAQ,SAAUA,GAEd,OADA83F,EAAeA,EAAa93F,OAAOA,GAC5Bw3F,CACX,EAER,EAGR,CCjEO,IAAIS,EDuEJ,SAA6BzqF,QAChB,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAI0qF,EAASX,EAAkB,MAE/B,OADAW,EAAO1qF,SAAU,QAAS,CAAE48E,OAAO,EAAM+N,KAAK,GAAS3qF,GAChD0qF,CACX,CC5EuBE,GCInBC,EAAU,WAEd,EAIIC,EAAe,cAAiB,SAAU5tE,EAAO6tE,GACjD,IAAI5tE,EAAM,SAAa,MACnB6tE,EAAK,WAAe,CACpBC,gBAAiBJ,EACjBK,eAAgBL,EAChBM,mBAAoBN,IACpBp2C,EAAYu2C,EAAG,GAAII,EAAeJ,EAAG,GACrCK,EAAenuE,EAAMmuE,aAAc1oF,EAAWua,EAAMva,SAAU+a,EAAYR,EAAMQ,UAAW4tE,EAAkBpuE,EAAMouE,gBAAiBC,EAAUruE,EAAMquE,QAASC,EAAStuE,EAAMsuE,OAAQC,EAAUvuE,EAAMuuE,QAASC,EAAcxuE,EAAMwuE,YAAaC,EAAQzuE,EAAMyuE,MAAOz3D,EAAiBhX,EAAMgX,eAAgB03D,EAAK1uE,EAAM+W,GAAI43D,OAAmB,IAAPD,EAAgB,MAAQA,EAAIhuE,GAAO,QAAOV,EAAO,CAAC,eAAgB,WAAY,YAAa,kBAAmB,UAAW,SAAU,UAAW,cAAe,QAAS,iBAAkB,OAC7f4uE,EAAUL,EACVM,EAAetC,EAAa,CAACtsE,EAAK4tE,IAClCiB,GAAiB,SAAS,QAAS,CAAC,EAAGpuE,GAAO62B,GAClD,OAAQ,gBAAoB,WAAgB,KACxC82C,GAAY,gBAAoBO,EAAS,CAAEL,QAAShB,EAAWa,gBAAiBA,EAAiBE,OAAQA,EAAQE,YAAaA,EAAaC,MAAOA,EAAOP,aAAcA,EAAcl3D,iBAAkBA,EAAgB+3D,QAAS9uE,IAChOkuE,EAAgB,eAAmB,gBAAoB1oF,IAAW,SAAS,QAAS,CAAC,EAAGqpF,GAAiB,CAAE7uE,IAAK4uE,KAAqB,gBAAoBF,GAAW,QAAS,CAAC,EAAGG,EAAgB,CAAEtuE,UAAWA,EAAWP,IAAK4uE,IAAiBppF,GACvP,IACAmoF,EAAa36C,aAAe,CACxBo7C,SAAS,EACTD,iBAAiB,EACjBK,OAAO,GAEXb,EAAa7vE,WAAa,CACtBixE,UAAW1C,EACX2C,UAAW5C,GC/Bf,ICFI6C,EDEAN,EAAU,SAAUd,GACpB,IAAIS,EAAUT,EAAGS,QAAS7tE,GAAO,QAAOotE,EAAI,CAAC,YAC7C,IAAKS,EACD,MAAM,IAAI19F,MAAM,sEAEpB,IAAIs+F,EAASZ,EAAQ31E,OACrB,IAAKu2E,EACD,MAAM,IAAIt+F,MAAM,4BAEpB,OAAO,gBAAoBs+F,GAAQ,QAAS,CAAC,EAAGzuE,GACpD,EACAkuE,EAAQQ,iBAAkB,ECZnB,IAGIC,EAAW,WAClB,OAAIH,GAIO,IAGf,ECcO,IAAII,EAAsB,WAC7B,IAAIhxC,EAAU,EACVixC,EAAa,KACjB,MAAO,CACHt3E,IAAK,SAAU8N,GAlBvB,IAAsB/pB,EAAKy+C,EAmBA,GAAX6D,IACKixC,EA/BrB,WACI,IAAKx0E,SACD,OAAO,KACX,IAAI/e,EAAM+e,SAAS8K,cAAc,SACjC7pB,EAAI7L,KAAO,WACX,IAAIq/F,EAAQH,IAIZ,OAHIG,GACAxzF,EAAI6gB,aAAa,QAAS2yE,GAEvBxzF,CACX,CAqBkCyzF,MApBPh1C,EAqBkB10B,GArBvB/pB,EAqBWuzF,GAnBrB7gD,WAEJ1yC,EAAI0yC,WAAW1oB,QAAUy0B,EAGzBz+C,EAAI2yC,YAAY5zB,SAAS6zB,eAAe6L,IAGhD,SAAwBz+C,IACT+e,SAASqzB,MAAQrzB,SAAS4yB,qBAAqB,QAAQ,IAC7DgB,YAAY3yC,EACrB,CASoB0zF,CAAeH,IAGvBjxC,GACJ,EACA34B,OAAQ,cACJ24B,GACgBixC,IACZA,EAAW/zE,YAAc+zE,EAAW/zE,WAAWuzB,YAAYwgD,GAC3DA,EAAa,KAErB,EAER,ECxCWI,EAAiB,WACxB,ICIIC,EDJAC,GCIAD,EAAQN,IACL,SAAU5sC,EAAQotC,GACrB,aAAgB,WAEZ,OADAF,EAAM33E,IAAIyqC,GACH,WACHktC,EAAMjqE,QACV,CACJ,GAAG,CAAC+8B,GAAUotC,GAClB,GDNA,OALY,SAAUhC,GAClB,IAAIprC,EAASorC,EAAGprC,OAAQqtC,EAAUjC,EAAGiC,QAErC,OADAF,EAASntC,EAAQqtC,GACV,IACX,CAEJ,EEfWC,EAAU,CACjBt3D,KAAM,EACN8B,IAAK,EACLtB,MAAO,EACPmuB,IAAK,GAEL3zC,EAAQ,SAAUgE,GAAK,OAAOwH,SAASxH,GAAK,GAAI,KAAO,CAAG,EAQnDu4E,EAAc,SAAUC,GAE/B,QADgB,IAAZA,IAAsBA,EAAU,UACd,oBAAXz8E,OACP,OAAOu8E,EAEX,IAAIG,EAZQ,SAAUD,GACtB,IAAIE,EAAK38E,OAAO2X,iBAAiBrQ,SAASE,MACtCyd,EAAO03D,EAAe,YAAZF,EAAwB,cAAgB,cAClD11D,EAAM41D,EAAe,YAAZF,EAAwB,aAAe,aAChDh3D,EAAQk3D,EAAe,YAAZF,EAAwB,eAAiB,eACxD,MAAO,CAACx8E,EAAMglB,GAAOhlB,EAAM8mB,GAAM9mB,EAAMwlB,GAC3C,CAMkBm3D,CAAUH,GACpBI,EAAgBv1E,SAASw1E,gBAAgBC,YACzCC,EAAch9E,OAAOslB,WACzB,MAAO,CACHL,KAAMy3D,EAAQ,GACd31D,IAAK21D,EAAQ,GACbj3D,MAAOi3D,EAAQ,GACf9oC,IAAK7yC,KAAK0Q,IAAI,EAAGurE,EAAcH,EAAgBH,EAAQ,GAAKA,EAAQ,IAE5E,ECxBIO,EAAQf,IAIRgB,EAAY,SAAU7C,EAAI8C,EAAeV,EAAStrD,GAClD,IAAIlM,EAAOo1D,EAAGp1D,KAAM8B,EAAMszD,EAAGtzD,IAAKtB,EAAQ40D,EAAG50D,MAAOmuB,EAAMymC,EAAGzmC,IAE7D,YADgB,IAAZ6oC,IAAsBA,EAAU,UAC7B,QAAQ57F,ObTgB,0BaSc,4BAA4BA,OAAOswC,EAAW,yBAAyBtwC,OAAO+yD,EAAK,OAAO/yD,OAAOswC,EAAW,2CAA2CtwC,OAAOswC,EAAW,8CAA8CtwC,OAAO,CACvQs8F,GAAiB,sBAAsBt8F,OAAOswC,EAAW,KAC7C,WAAZsrD,GACI,uBAAuB57F,OAAOokC,EAAM,0BAA0BpkC,OAAOkmC,EAAK,4BAA4BlmC,OAAO4kC,EAAO,kEAAkE5kC,OAAO+yD,EAAK,OAAO/yD,OAAOswC,EAAW,WACnN,YAAZsrD,GAAyB,kBAAkB57F,OAAO+yD,EAAK,OAAO/yD,OAAOswC,EAAW,MAE/EtvC,OAAOiR,SACPsK,KAAK,IAAK,kBAAkBvc,OAAO+3F,EAAoB,mBAAmB/3F,OAAO+yD,EAAK,OAAO/yD,OAAOswC,EAAW,mBAAmBtwC,OAAOg4F,EAAoB,0BAA0Bh4F,OAAO+yD,EAAK,OAAO/yD,OAAOswC,EAAW,mBAAmBtwC,OAAO+3F,EAAoB,MAAM/3F,OAAO+3F,EAAoB,qBAAqB/3F,OAAOswC,EAAW,mBAAmBtwC,OAAOg4F,EAAoB,MAAMh4F,OAAOg4F,EAAoB,4BAA4Bh4F,OAAOswC,EAAW,8BAA8BtwC,ObXld,iCaWif,MAAMA,OAAO+yD,EAAK,aACviB,EAIWwpC,EAAkB,SAAU7wE,GACnC,IAAI8wE,EAAa9wE,EAAM8wE,WAAYC,EAAc/wE,EAAM+wE,YAAajD,EAAK9tE,EAAMkwE,QAASA,OAAiB,IAAPpC,EAAgB,SAAWA,EAMzHzmC,EAAM,WAAc,WAAc,OAAO4oC,EAAYC,EAAU,GAAG,CAACA,IACvE,OAAO,gBAAoBQ,EAAO,CAAEhuC,OAAQiuC,EAAUtpC,GAAMypC,EAAYZ,EAAUa,EAA6B,GAAf,eACpG,EChCIC,GAAmB,EACvB,GAAsB,oBAAXv9E,OACP,IACI,IAAI3Q,EAAU9N,OAAO0d,eAAe,CAAC,EAAG,UAAW,CAC/CkB,IAAK,WAED,OADAo9E,GAAmB,GACZ,CACX,IAGJv9E,OAAO4U,iBAAiB,OAAQvlB,EAASA,GAEzC2Q,OAAO6U,oBAAoB,OAAQxlB,EAASA,EAChD,CACA,MAAOhS,GACHkgG,GAAmB,CACvB,CAEG,IAAIC,IAAaD,GAAmB,CAAEE,SAAS,GCdlDC,EAAuB,SAAU5rF,EAAMg3B,GACvC,IAAImmB,EAASjvC,OAAO2X,iBAAiB7lB,GACrC,MAEqB,WAArBm9C,EAAOnmB,MAEDmmB,EAAOgR,YAAchR,EAAO0uC,YAVX,SAAU7rF,GAEjC,MAAwB,aAAjBA,EAAK4jB,OAChB,CAOoDkoE,CAAqB9rF,IAA8B,YAArBm9C,EAAOnmB,GACzF,EAGW+0D,EAA0B,SAAUC,EAAMhsF,GACjD,IAAIwiB,EAAUxiB,EACd,EAAG,CAMC,GAJ0B,oBAAfisF,YAA8BzpE,aAAmBypE,aACxDzpE,EAAUA,EAAQ5Q,MAEHs6E,EAAuBF,EAAMxpE,GAC9B,CACd,IAAI+lE,EAAK4D,EAAmBH,EAAMxpE,GAClC,GADgD+lE,EAAG,GAAQA,EAAG,GAE1D,OAAO,CAEf,CACA/lE,EAAUA,EAAQvM,UACtB,OAASuM,GAAWA,IAAYhN,SAASE,MACzC,OAAO,CACX,EAiBIw2E,EAAyB,SAAUF,EAAMhsF,GACzC,MAAgB,MAATgsF,EArCmB,SAAUhsF,GAAQ,OAAO4rF,EAAqB5rF,EAAM,YAAc,CAqCtEosF,CAAwBpsF,GApCpB,SAAUA,GAAQ,OAAO4rF,EAAqB5rF,EAAM,YAAc,CAoCtCqsF,CAAwBrsF,EAClF,EACImsF,EAAqB,SAAUH,EAAMhsF,GACrC,MAAgB,MAATgsF,EAlBA,EAFyBzD,EAoBUvoF,GAnBvBiwB,UAA0Bs4D,EAAGr4D,aAA6Bq4D,EAAG7yD,cAO1D,SAAU6yD,GAEhC,MAAO,CADUA,EAAG+D,WAA0B/D,EAAGgE,YAA2BhE,EAAG0C,YAMnF,CAKsDuB,CAAoBxsF,GApBhD,IAAUuoF,CAqBpC,EASWhuD,EAAe,SAAUyxD,EAAMS,EAAWzkF,EAAO0kF,EAAaC,GACrE,IAAIC,EATiB,SAAUZ,EAAMjiE,GAMrC,MAAgB,MAATiiE,GAA8B,QAAdjiE,GAAuB,EAAI,CACtD,CAE0B8iE,CAAmBb,EAAM99E,OAAO2X,iBAAiB4mE,GAAW1iE,WAC9E+iE,EAAQF,EAAkBF,EAE1B9iF,EAAS5B,EAAM4B,OACfmjF,EAAeN,EAAUn2E,SAAS1M,GAClCojF,GAAqB,EACrBC,EAAkBH,EAAQ,EAC1BI,EAAkB,EAClBC,EAAqB,EACzB,EAAG,CACC,IAAI5E,EAAK4D,EAAmBH,EAAMpiF,GAASjd,EAAW47F,EAAG,GACrD6E,EADoE7E,EAAG,GAAeA,EAAG,GACnDqE,EAAkBjgG,GACxDA,GAAYygG,IACRlB,EAAuBF,EAAMpiF,KAC7BsjF,GAAmBE,EACnBD,GAAsBxgG,GAG9Bid,EAASA,EAAOqM,UACpB,QAEE82E,GAAgBnjF,IAAW4L,SAASE,MAEjCq3E,IAAiBN,EAAUn2E,SAAS1M,IAAW6iF,IAAc7iF,IAQlE,OAPIqjF,IAAqBN,GAAoC,IAApBO,IAA4BP,GAAgBG,EAAQI,KAGnFD,IACJN,GAAuC,IAAvBQ,IAA+BR,IAAiBG,EAAQK,MAH1EH,GAAqB,GAMlBA,CACX,ECzFWK,EAAa,SAAUrlF,GAC9B,MAAO,mBAAoBA,EAAQ,CAACA,EAAMslF,eAAe,GAAGC,QAASvlF,EAAMslF,eAAe,GAAGE,SAAW,CAAC,EAAG,EAChH,EACWC,EAAa,SAAUzlF,GAAS,MAAO,CAACA,EAAM0lF,OAAQ1lF,EAAM2lF,OAAS,EAC5EC,EAAa,SAAUlzE,GACvB,OAAOA,GAAO,YAAaA,EAAMA,EAAI8H,QAAU9H,CACnD,EACImzE,EAAe,SAAU17E,EAAGjC,GAAK,OAAOiC,EAAE,KAAOjC,EAAE,IAAMiC,EAAE,KAAOjC,EAAE,EAAI,EACxE49E,EAAgB,SAAUh8D,GAAM,MAAO,4BAA4B/iC,OAAO+iC,EAAI,qDAAqD/iC,OAAO+iC,EAAI,4BAA8B,EAC5Ki8D,EAAY,EACZC,EAAY,GCbhB,IVWsCC,EUXtC,GVWsCA,ESG/B,SAA6BxzE,GAChC,IAAIyzE,EAAqB,SAAa,IAClCC,EAAgB,SAAa,CAAC,EAAG,IACjCC,EAAa,WACbt8D,EAAK,WAAei8D,KAAa,GACjC5C,EAAQ,YAAe,WAAc,OAAOf,GAAkB,IAAG,GACjEiE,EAAY,SAAa5zE,GAC7B,aAAgB,WACZ4zE,EAAU7rE,QAAU/H,CACxB,GAAG,CAACA,IACJ,aAAgB,WACZ,GAAIA,EAAMyuE,MAAO,CACb1zE,SAASE,KAAKm6B,UAAUn9B,IAAI,uBAAuB3jB,OAAO+iC,IAC1D,IAAIw8D,GAAU,QAAc,CAAC7zE,EAAM+uE,QAAQhnE,UAAW/H,EAAMsuE,QAAU,IAAIr2F,IAAIk7F,IAAa,GAAM79F,OAAOiR,SAExG,OADAstF,EAAQv8F,SAAQ,SAAUhB,GAAM,OAAOA,EAAG8+C,UAAUn9B,IAAI,uBAAuB3jB,OAAO+iC,GAAM,IACrF,WACHtc,SAASE,KAAKm6B,UAAUzvB,OAAO,uBAAuBrxB,OAAO+iC,IAC7Dw8D,EAAQv8F,SAAQ,SAAUhB,GAAM,OAAOA,EAAG8+C,UAAUzvB,OAAO,uBAAuBrxB,OAAO+iC,GAAM,GACnG,CACJ,CAEJ,GAAG,CAACrX,EAAMyuE,MAAOzuE,EAAM+uE,QAAQhnE,QAAS/H,EAAMsuE,SAC9C,IAAIwF,EAAoB,eAAkB,SAAUvmF,EAAOxM,GACvD,GAAI,YAAawM,GAAkC,IAAzBA,EAAMwmF,QAAQpjG,OACpC,OAAQijG,EAAU7rE,QAAQiP,eAE9B,IAIIg9D,EAJAC,EAAQrB,EAAWrlF,GACnB2mF,EAAaR,EAAc3rE,QAC3BkrE,EAAS,WAAY1lF,EAAQA,EAAM0lF,OAASiB,EAAW,GAAKD,EAAM,GAClEf,EAAS,WAAY3lF,EAAQA,EAAM2lF,OAASgB,EAAW,GAAKD,EAAM,GAElE9kF,EAAS5B,EAAM4B,OACfglF,EAAgB3/E,KAAKyhB,IAAIg9D,GAAUz+E,KAAKyhB,IAAIi9D,GAAU,IAAM,IAEhE,GAAI,YAAa3lF,GAA2B,MAAlB4mF,GAAyC,UAAhBhlF,EAAOhf,KACtD,OAAO,EAEX,IAAIikG,EAA+B9C,EAAwB6C,EAAehlF,GAC1E,IAAKilF,EACD,OAAO,EAUX,GARIA,EACAJ,EAAcG,GAGdH,EAAgC,MAAlBG,EAAwB,IAAM,IAC5CC,EAA+B9C,EAAwB6C,EAAehlF,KAGrEilF,EACD,OAAO,EAKX,IAHKT,EAAW5rE,SAAW,mBAAoBxa,IAAU0lF,GAAUC,KAC/DS,EAAW5rE,QAAUisE,IAEpBA,EACD,OAAO,EAEX,IAAIK,EAAgBV,EAAW5rE,SAAWisE,EAC1C,OAAOl0D,EAAau0D,EAAetzF,EAAQwM,EAAyB,MAAlB8mF,EAAwBpB,EAASC,GAAQ,EAC/F,GAAG,IACCoB,EAAgB,eAAkB,SAAUC,GAC5C,IAAIhnF,EAAQgnF,EACZ,GAAKhB,EAAU5iG,QAAU4iG,EAAUA,EAAU5iG,OAAS,KAAO+/F,EAA7D,CAIA,IAAI2B,EAAQ,WAAY9kF,EAAQylF,EAAWzlF,GAASqlF,EAAWrlF,GAC3DinF,EAAcf,EAAmB1rE,QAAQzyB,QAAO,SAAU4T,GAAK,OAAOA,EAAErQ,OAAS0U,EAAMpd,MAAQ+Y,EAAEiG,SAAW5B,EAAM4B,QAAUikF,EAAalqF,EAAEmpF,MAAOA,EAAQ,IAAG,GAEjK,GAAImC,GAAeA,EAAYC,OACvBlnF,EAAMuZ,YACNvZ,EAAM2c,sBAKd,IAAKsqE,EAAa,CACd,IAAIE,GAAcd,EAAU7rE,QAAQumE,QAAU,IACzCr2F,IAAIk7F,GACJ79F,OAAOiR,SACPjR,QAAO,SAAUiQ,GAAQ,OAAOA,EAAKsW,SAAStO,EAAM4B,OAAS,KACjDulF,EAAW/jG,OAAS,EAAImjG,EAAkBvmF,EAAOmnF,EAAW,KAAOd,EAAU7rE,QAAQymE,cAE9FjhF,EAAMuZ,YACNvZ,EAAM2c,gBAGlB,CAtBA,CAuBJ,GAAG,IACCyqE,EAAe,eAAkB,SAAU97F,EAAMw5F,EAAOljF,EAAQslF,GAChE,IAAIlnF,EAAQ,CAAE1U,KAAMA,EAAMw5F,MAAOA,EAAOljF,OAAQA,EAAQslF,OAAQA,GAChEhB,EAAmB1rE,QAAQv2B,KAAK+b,GAChCyM,YAAW,WACPy5E,EAAmB1rE,QAAU0rE,EAAmB1rE,QAAQzyB,QAAO,SAAU4T,GAAK,OAAOA,IAAMqE,CAAO,GACtG,GAAG,EACP,GAAG,IACCqnF,EAAmB,eAAkB,SAAUrnF,GAC/CmmF,EAAc3rE,QAAU6qE,EAAWrlF,GACnComF,EAAW5rE,aAAU14B,CACzB,GAAG,IACCwlG,EAAc,eAAkB,SAAUtnF,GAC1ConF,EAAapnF,EAAMpd,KAAM6iG,EAAWzlF,GAAQA,EAAM4B,OAAQ2kF,EAAkBvmF,EAAOyS,EAAM+uE,QAAQhnE,SACrG,GAAG,IACC+sE,EAAkB,eAAkB,SAAUvnF,GAC9ConF,EAAapnF,EAAMpd,KAAMyiG,EAAWrlF,GAAQA,EAAM4B,OAAQ2kF,EAAkBvmF,EAAOyS,EAAM+uE,QAAQhnE,SACrG,GAAG,IACH,aAAgB,WAUZ,OATAwrE,EAAU/hG,KAAKk/F,GACf1wE,EAAMkuE,aAAa,CACfH,gBAAiB8G,EACjB7G,eAAgB6G,EAChB5G,mBAAoB6G,IAExB/5E,SAASsN,iBAAiB,QAASisE,EAAerD,GAClDl2E,SAASsN,iBAAiB,YAAaisE,EAAerD,GACtDl2E,SAASsN,iBAAiB,aAAcusE,EAAkB3D,GACnD,WACHsC,EAAYA,EAAUj+F,QAAO,SAAUy/F,GAAQ,OAAOA,IAASrE,CAAO,IACtE31E,SAASuN,oBAAoB,QAASgsE,EAAerD,GACrDl2E,SAASuN,oBAAoB,YAAagsE,EAAerD,GACzDl2E,SAASuN,oBAAoB,aAAcssE,EAAkB3D,EACjE,CACJ,GAAG,IACH,IAAI7C,EAAkBpuE,EAAMouE,gBAAiBK,EAAQzuE,EAAMyuE,MAC3D,OAAQ,gBAAoB,WAAgB,KACxCA,EAAQ,gBAAoBiC,EAAO,CAAEhuC,OAAQ2wC,EAAch8D,KAAS,KACpE+2D,EAAkB,gBAAoByC,EAAiB,CAAEX,QAAS,WAAc,KACxF,EC9I6B3C,EVYlBP,UAAUwG,GACV5E,GWZPoG,EAAoB,cAAiB,SAAUh1E,EAAOC,GAAO,OAAQ,gBAAoB2tE,GAAc,QAAS,CAAC,EAAG5tE,EAAO,CAAEC,IAAKA,EAAKsuE,QAAS,IAAc,IAClKyG,EAAkBj3E,WAAa6vE,EAAa7vE,WAC5C,4CCFA,IAF0Bk3E,EAEtBl1E,EAAQ,EAAQ,OAChBm1E,GAHsBD,EAGWl1E,IAHwB,iBAAPk1E,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,EAK7G,SAASnyC,EAAgBtzC,EAAKnd,EAAK6B,GAYjC,OAXI7B,KAAOmd,EACTxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAC9B6B,MAAOA,EACP0a,YAAY,EACZE,cAAc,EACdD,UAAU,IAGZW,EAAInd,GAAO6B,EAGNsb,CACT,CAQA,IAAIqjC,IAAiC,oBAAXp/B,SAA0BA,OAAOsH,WAAYtH,OAAOsH,SAAS8K,eAgGvFn2B,EAAOC,QA/FP,SAAwBwlG,EAAoBC,EAA2BjlD,GACrE,GAAkC,mBAAvBglD,EACT,MAAM,IAAItkG,MAAM,iDAGlB,GAAyC,mBAA9BukG,EACT,MAAM,IAAIvkG,MAAM,wDAGlB,QAAgC,IAArBs/C,GAAgE,mBAArBA,EACpD,MAAM,IAAIt/C,MAAM,mEAOlB,OAAO,SAAcwkG,GACnB,GAAgC,mBAArBA,EACT,MAAM,IAAIxkG,MAAM,sDAGlB,IACIoP,EADAq1F,EAAmB,GAGvB,SAASC,IACPt1F,EAAQk1F,EAAmBG,EAAiBr9F,KAAI,SAAUO,GACxD,OAAOA,EAASwnB,KAClB,KAEIw1E,EAAW3iD,UACbuiD,EAA0Bn1F,GACjBkwC,IACTlwC,EAAQkwC,EAAiBlwC,GAE7B,CAEA,IAAIu1F,EAEJ,SAAUC,GA9Cd,IAAwBxkD,EAAUC,EAiD5B,SAASskD,IACP,OAAOC,EAAetkG,MAAMjC,KAAM0B,YAAc1B,IAClD,CAnD4BgiD,EA+CDukD,GA/CTxkD,EA+CHukD,GA9CV5lG,UAAYoF,OAAO2Z,OAAOuiC,EAAWthD,WAC9CqhD,EAASrhD,UAAUwJ,YAAc63C,EACjCA,EAASG,UAAYF,EAoDjBskD,EAAWtiD,KAAO,WAChB,OAAOjzC,CACT,EAEAu1F,EAAWriD,OAAS,WAClB,GAAIqiD,EAAW3iD,UACb,MAAM,IAAIhiD,MAAM,oFAGlB,IAAI6kG,EAAgBz1F,EAGpB,OAFAA,OAAQ5Q,EACRimG,EAAmB,GACZI,CACT,EAEA,IAAIC,EAASH,EAAW5lG,UAqBxB,OAnBA+lG,EAAOC,0BAA4B,WACjCN,EAAiB9jG,KAAKtC,MACtBqmG,GACF,EAEAI,EAAOE,mBAAqB,WAC1BN,GACF,EAEAI,EAAOG,qBAAuB,WAC5B,IAAIhjG,EAAQwiG,EAAiB5/F,QAAQxG,MACrComG,EAAiBnjG,OAAOW,EAAO,GAC/ByiG,GACF,EAEAI,EAAOhjD,OAAS,WACd,OAAOuiD,EAAervE,cAAcwvE,EAAkBnmG,KAAK8wB,MAC7D,EAEOw1E,CACT,CA9CA,CA8CEz1E,EAAMg2E,eAMR,OAJAjzC,EAAgB0yC,EAAY,cAAe,cA1E7C,SAAwBH,GACtB,OAAOA,EAAiB5uE,aAAe4uE,EAAiBx8F,MAAQ,WAClE,CAwE6Dm9F,CAAeX,GAAoB,KAE9FvyC,EAAgB0yC,EAAY,YAAa3iD,GAElC2iD,CACT,CACF,sCCjHa,IAAItsF,EAAE,EAAQ,OAAwE,IAAIrR,EAAE,mBAAoB7C,OAAOihG,GAAGjhG,OAAOihG,GAA1G,SAAW//F,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,GAAI,EAAEC,IAAID,GAAIA,GAAGC,GAAIA,CAAC,EAAiDoZ,EAAErG,EAAE0zD,SAAStrE,EAAE4X,EAAE+zD,UAAUltE,EAAEmZ,EAAE8zD,gBAAgBxnD,EAAEtM,EAAEgtF,cACtM,SAAS7pF,EAAEnW,GAAG,IAAIC,EAAED,EAAEigG,YAAYjgG,EAAEA,EAAEhC,MAAM,IAAI,IAAI6gB,EAAE5e,IAAI,OAAO0B,EAAE3B,EAAE6e,EAAE,CAAC,MAAMpgB,GAAG,OAAM,CAAE,CAAC,CAA4B,IAAIwe,EAAE,oBAAqBM,aAAQ,IAAqBA,OAAOsH,eAAU,IAAqBtH,OAAOsH,SAAS8K,cAAzI,SAAW3vB,EAAEC,GAAG,OAAOA,GAAG,EAD+F,SAAWD,EAAEC,GAAG,IAAI4e,EAAE5e,IAAIxB,EAAE4a,EAAE,CAACwlF,KAAK,CAAC7gG,MAAM6gB,EAAEohF,YAAYhgG,KAAKoe,EAAE5f,EAAE,GAAGogG,KAAKhjG,EAAE4C,EAAE,GAAwJ,OAArJ5E,GAAE,WAAWwkB,EAAErgB,MAAM6gB,EAAER,EAAE4hF,YAAYhgG,EAAEkW,EAAEkI,IAAIxiB,EAAE,CAACgjG,KAAKxgF,GAAG,GAAE,CAACre,EAAE6e,EAAE5e,IAAI7E,GAAE,WAA6B,OAAlB+a,EAAEkI,IAAIxiB,EAAE,CAACgjG,KAAKxgF,IAAWre,GAAE,WAAWmW,EAAEkI,IAAIxiB,EAAE,CAACgjG,KAAKxgF,GAAG,GAAE,GAAE,CAACre,IAAIsf,EAAET,GAAUA,CAAC,EAC5MplB,EAAQokF,0BAAqB,IAAS7qE,EAAE6qE,qBAAqB7qE,EAAE6qE,qBAAqB5gE,sCCPxUzjB,EAAOC,QAAU,EAAjB,oJCaF,IAAIymG,EAAgB,SAASrhF,EAAG5e,GAI9B,OAHAigG,EAAgBphG,OAAOm8C,gBAClB,CAAEC,UAAW,cAAgBngD,OAAS,SAAU8jB,EAAG5e,GAAK4e,EAAEq8B,UAAYj7C,CAAG,GAC1E,SAAU4e,EAAG5e,GAAK,IAAK,IAAIqf,KAAKrf,EAAOnB,OAAOpF,UAAUwf,eAAepe,KAAKmF,EAAGqf,KAAIT,EAAES,GAAKrf,EAAEqf,GAAI,EAC7F4gF,EAAcrhF,EAAG5e,EAC1B,EAEO,SAASkgG,EAAUthF,EAAG5e,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIlG,UAAU,uBAAyB+d,OAAO7X,GAAK,iCAE7D,SAASmgG,IAAOpnG,KAAKkK,YAAc2b,CAAG,CADtCqhF,EAAcrhF,EAAG5e,GAEjB4e,EAAEnlB,UAAkB,OAANuG,EAAanB,OAAO2Z,OAAOxY,IAAMmgG,EAAG1mG,UAAYuG,EAAEvG,UAAW,IAAI0mG,EACjF,CAEO,IAAIC,EAAW,WAQpB,OAPAA,EAAWvhG,OAAOyqB,QAAU,SAAkB/iB,GAC1C,IAAK,IAAIsQ,EAAGxc,EAAI,EAAGT,EAAIa,UAAUD,OAAQH,EAAIT,EAAGS,IAE5C,IAAK,IAAIglB,KADTxI,EAAIpc,UAAUJ,GACOwE,OAAOpF,UAAUwf,eAAepe,KAAKgc,EAAGwI,KAAI9Y,EAAE8Y,GAAKxI,EAAEwI,IAE9E,OAAO9Y,CACX,EACO65F,EAASplG,MAAMjC,KAAM0B,UAC9B,EAEO,SAAS4lG,EAAOxpF,EAAG9D,GACxB,IAAIxM,EAAI,CAAC,EACT,IAAK,IAAI8Y,KAAKxI,EAAOhY,OAAOpF,UAAUwf,eAAepe,KAAKgc,EAAGwI,IAAMtM,EAAExT,QAAQ8f,GAAK,IAC9E9Y,EAAE8Y,GAAKxI,EAAEwI,IACb,GAAS,MAALxI,GAAqD,mBAAjChY,OAAO2d,sBACtB,KAAIniB,EAAI,EAAb,IAAgBglB,EAAIxgB,OAAO2d,sBAAsB3F,GAAIxc,EAAIglB,EAAE7kB,OAAQH,IAC3D0Y,EAAExT,QAAQ8f,EAAEhlB,IAAM,GAAKwE,OAAOpF,UAAUojB,qBAAqBhiB,KAAKgc,EAAGwI,EAAEhlB,MACvEkM,EAAE8Y,EAAEhlB,IAAMwc,EAAEwI,EAAEhlB,IAF4B,CAItD,OAAOkM,CACT,CAoG6B1H,OAAO2Z,OA6D7B,SAAS8nF,EAActvD,EAAI5zB,EAAMmjF,GACtC,GAAIA,GAA6B,IAArB9lG,UAAUD,OAAc,IAAK,IAA4BgmG,EAAxBnmG,EAAI,EAAG+e,EAAIgE,EAAK5iB,OAAYH,EAAI+e,EAAG/e,KACxEmmG,GAAQnmG,KAAK+iB,IACRojF,IAAIA,EAAK1lG,MAAMrB,UAAUsB,MAAMF,KAAKuiB,EAAM,EAAG/iB,IAClDmmG,EAAGnmG,GAAK+iB,EAAK/iB,IAGrB,OAAO22C,EAAG7yC,OAAOqiG,GAAM1lG,MAAMrB,UAAUsB,MAAMF,KAAKuiB,GACpD,CAqCyBve,OAAO2Z,OAyDkB,mBAApBioF,iBAAiCA","sources":["webpack://docs-v2/./node_modules/@algolia/events/events.js","webpack://docs-v2/./node_modules/algoliasearch-helper/index.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/DerivedHelper/index.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/SearchParameters/index.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/SearchResults/index.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/algoliasearch.helper.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/compact.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/defaultsPure.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/find.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/findIndex.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/formatSort.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/inherits.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/intersection.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/merge.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/omit.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/orderBy.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/functions/valToNumber.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/requestBuilder.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","webpack://docs-v2/./node_modules/algoliasearch-helper/src/version.js","webpack://docs-v2/./node_modules/algoliasearch/dist/algoliasearch-lite.umd.js","webpack://docs-v2/./node_modules/aria-hidden/dist/es2015/index.js","webpack://docs-v2/./node_modules/charenc/charenc.js","webpack://docs-v2/./node_modules/classnames/index.js","webpack://docs-v2/./node_modules/crypt/crypt.js","webpack://docs-v2/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://docs-v2/./node_modules/@singlestore/fusion/src/react-utils/use-resolve-src.ts","webpack://docs-v2/./node_modules/@singlestore/fusion/src/components/image/image.tsx","webpack://docs-v2/./node_modules/@singlestore/fusion/src/utils/contentstack.ts","webpack://docs-v2/./node_modules/@singlestore/fusion/src/react-utils/use-contentstack-image.tsx","webpack://docs-v2/./node_modules/@singlestore/fusion/src/components/image/contentstack-image.tsx","webpack://docs-v2/./node_modules/@radix-ui/number/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-direction/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-focus-guards/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-focus-scope/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-primitive/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-select/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-collection/dist/index.module.js","webpack://docs-v2/./node_modules/@radix-ui/react-use-previous/dist/index.module.js","webpack://docs-v2/./node_modules/@singlestore/fusion/src/utils/assertion.ts","webpack://docs-v2/./node_modules/@singlestore/fusion/src/components/select/select.tsx","webpack://docs-v2/./node_modules/@singlestore/fusion/src/react-utils/children.ts","webpack://docs-v2/./node_modules/@singlestore/fusion/src/tokens/js/variables/supplementary/breakpoints.ts","webpack://docs-v2/./src/components/Admonition/Admonition.tsx","webpack://docs-v2/./src/components/Button/LinkButton.tsx","webpack://docs-v2/./src/components/InlineCode/InlineCode.tsx","webpack://docs-v2/./src/components/Link/Link.tsx","webpack://docs-v2/./src/components/Paragraph/Paragraph.tsx","webpack://docs-v2/./node_modules/react-helmet/es/Helmet.js","webpack://docs-v2/./src/components/SEOTags/SEOTags.tsx","webpack://docs-v2/./node_modules/prism-react-renderer/prism/index.js","webpack://docs-v2/./node_modules/prism-react-renderer/dist/index.js","webpack://docs-v2/./node_modules/prism-react-renderer/themes/duotoneDark/index.js","webpack://docs-v2/./node_modules/prism-react-renderer/themes/dracula/index.js","webpack://docs-v2/./node_modules/prism-react-renderer/themes/github/index.js","webpack://docs-v2/./src/components/SyntaxBlock/SyntaxBlock.tsx","webpack://docs-v2/./src/utils/custom-icons.tsx","webpack://docs-v2/./src/components/SyntaxBlock/SyntaxBlockGroup.tsx","webpack://docs-v2/./src/components/VersionSelector/VersionSelector.tsx","webpack://docs-v2/./src/components/layout/DocumentNavMenu/NavVersionSelector.tsx","webpack://docs-v2/./node_modules/react-accessible-treeview/dist/react-accessible-treeview.esm.js","webpack://docs-v2/./src/components/NavigationTree/NavigationTree.tsx","webpack://docs-v2/./src/components/layout/DocumentNavMenu/DocumentNavMenu.tsx","webpack://docs-v2/./src/components/layout/Footer/Footer.tsx","webpack://docs-v2/./src/contexts/ProductVersionContext.tsx","webpack://docs-v2/./src/hooks/use-404-modal-opener.ts","webpack://docs-v2/./src/components/DownloadButton/util/commands.tsx","webpack://docs-v2/./src/components/Modal/Modal.tsx","webpack://docs-v2/./src/components/DownloadButton/VerifySignatureModal.tsx","webpack://docs-v2/./src/components/KetchPrivacyCenter/KetchPrivacyCenter.tsx","webpack://docs-v2/./src/components/layout/Navigation/CTAButtons.tsx","webpack://docs-v2/./src/components/KeyboardShortcut/KeyboardShortcut.tsx","webpack://docs-v2/./src/components/SearchBar/SearchBar.tsx","webpack://docs-v2/./src/utils/operating-system.ts","webpack://docs-v2/./src/components/ThemeSelect/ThemeSelect.tsx","webpack://docs-v2/./src/components/layout/Navigation/MobileMenu.tsx","webpack://docs-v2/./src/components/layout/Navigation/SingleStoreLogo.tsx","webpack://docs-v2/./src/components/layout/Navigation/Navigation.tsx","webpack://docs-v2/./src/hooks/use-previous.tsx","webpack://docs-v2/./src/hooks/use-url-params.tsx","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/documentation.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/noop.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/checkRendering.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/getObjectType.js","webpack://docs-v2/./node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/dequal.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/createSearchResults.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/getIndexSearchResults.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/invariant.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/IndexContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useIndexContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/components/InstantSearchServerContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchServerContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useStableValue.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useIsomorphicLayoutEffect.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/hooks/useConnector.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useWidget.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/connectors/useSearchBox.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/serializer.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/escape-html.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","webpack://docs-v2/./node_modules/instantsearch.js/es/connectors/hits/connectHits.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/render-args.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","webpack://docs-v2/./node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/routers/history.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/stateMappings/simple.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/isEqual.js","webpack://docs-v2/./node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/findIndex.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/uniq.js","webpack://docs-v2/./node_modules/instantsearch.js/es/widgets/index/index.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/suit.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","webpack://docs-v2/./node_modules/instantsearch.js/es/helpers/highlight.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","webpack://docs-v2/./node_modules/instantsearch.js/es/helpers/reverseHighlight.js","webpack://docs-v2/./node_modules/instantsearch.js/es/helpers/snippet.js","webpack://docs-v2/./node_modules/instantsearch.js/es/helpers/reverseSnippet.js","webpack://docs-v2/./node_modules/instantsearch.js/es/helpers/insights.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/createHelpers.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/formatNumber.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/defer.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/InstantSearch.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/version.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchSSRContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/version.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useForceUpdate.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchApi.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchSSRContext.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/components/InstantSearch.js","webpack://docs-v2/./src/hooks/use-debounce-value.tsx","webpack://docs-v2/./node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","webpack://docs-v2/./src/components/SearchModal/SearchInput.tsx","webpack://docs-v2/./src/hooks/use-debounce.tsx","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/connectors/useConfigure.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/ui/lib/cx.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/ui/InternalHighlight.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/ui/Highlight.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/widgets/Highlight.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/ui/Snippet.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks-web/dist/es/widgets/Snippet.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useSearchResults.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/lib/useSearchState.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/hooks/useInstantSearch.js","webpack://docs-v2/./src/components/SearchModal/SearchResults.tsx","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/find.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/getRefinements.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/escapeFacetValue.js","webpack://docs-v2/./node_modules/instantsearch.js/es/connectors/current-refinements/connectCurrentRefinements.js","webpack://docs-v2/./src/hooks/use-algolia-refinements.tsx","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/connectors/useCurrentRefinements.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/createSendEventForFacet.js","webpack://docs-v2/./node_modules/instantsearch.js/es/connectors/refinement-list/connectRefinementList.js","webpack://docs-v2/./node_modules/instantsearch.js/es/lib/utils/isFacetRefined.js","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/connectors/useRefinementList.js","webpack://docs-v2/./src/components/SearchModal/SearchVersionSelector.tsx","webpack://docs-v2/./src/components/SearchModal/SearchModal.tsx","webpack://docs-v2/./node_modules/react-instantsearch-hooks/dist/es/connectors/useHits.js","webpack://docs-v2/./src/layouts/BaseLayout/BaseLayout.tsx","webpack://docs-v2/./src/utils/code-utils.ts","webpack://docs-v2/./src/utils/copy-to-clipboard.ts","webpack://docs-v2/./src/utils/get-env.ts","webpack://docs-v2/./node_modules/instantsearch.js/node_modules/qs/lib/formats.js","webpack://docs-v2/./node_modules/instantsearch.js/node_modules/qs/lib/index.js","webpack://docs-v2/./node_modules/instantsearch.js/node_modules/qs/lib/parse.js","webpack://docs-v2/./node_modules/instantsearch.js/node_modules/qs/lib/stringify.js","webpack://docs-v2/./node_modules/instantsearch.js/node_modules/qs/lib/utils.js","webpack://docs-v2/./node_modules/lodash/_arrayReduce.js","webpack://docs-v2/./node_modules/lodash/_asciiToArray.js","webpack://docs-v2/./node_modules/lodash/_asciiWords.js","webpack://docs-v2/./node_modules/lodash/_basePropertyOf.js","webpack://docs-v2/./node_modules/lodash/_baseSlice.js","webpack://docs-v2/./node_modules/lodash/_castSlice.js","webpack://docs-v2/./node_modules/lodash/_createCaseFirst.js","webpack://docs-v2/./node_modules/lodash/_createCompounder.js","webpack://docs-v2/./node_modules/lodash/_deburrLetter.js","webpack://docs-v2/./node_modules/lodash/_hasUnicode.js","webpack://docs-v2/./node_modules/lodash/_hasUnicodeWord.js","webpack://docs-v2/./node_modules/lodash/_stringToArray.js","webpack://docs-v2/./node_modules/lodash/_unicodeToArray.js","webpack://docs-v2/./node_modules/lodash/_unicodeWords.js","webpack://docs-v2/./node_modules/lodash/deburr.js","webpack://docs-v2/./node_modules/lodash/startCase.js","webpack://docs-v2/./node_modules/lodash/upperFirst.js","webpack://docs-v2/./node_modules/lodash/words.js","webpack://docs-v2/./node_modules/md5/md5.js","webpack://docs-v2/./node_modules/md5/node_modules/is-buffer/index.js","webpack://docs-v2/./node_modules/react-fast-compare/index.js","webpack://docs-v2/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://docs-v2/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://docs-v2/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://docs-v2/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://docs-v2/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://docs-v2/./node_modules/use-sidecar/dist/es2015/exports.js","webpack://docs-v2/./node_modules/get-nonce/dist/es2015/index.js","webpack://docs-v2/./node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://docs-v2/./node_modules/react-style-singleton/dist/es2015/component.js","webpack://docs-v2/./node_modules/react-style-singleton/dist/es2015/hook.js","webpack://docs-v2/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://docs-v2/./node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://docs-v2/./node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://docs-v2/./node_modules/react-side-effect/lib/index.js","webpack://docs-v2/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://docs-v2/./node_modules/use-sync-external-store/shim/index.js","webpack://docs-v2/./node_modules/tslib/tslib.es6.mjs"],"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}\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.js');\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 */\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(refinementList, attribute, value) {\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(refinementList, attribute, value) {\n if (value === undefined) 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(refinementList, attribute, refinementType) {\n if (attribute === undefined) {\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(memo, key) {\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 memo[key] = facetList;\n\n return memo;\n }, {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\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}\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements = !!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 */\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 ? SearchParameters._parseNumbers(newParameters) : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n console.warn('[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}');\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 = params.hierarchicalFacetsRefinements || {};\n\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 reparse numbers 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(geoRect) {\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 (currentRefinement.length > 0 && currentRefinement[0].indexOf(facet.rootPath) !== 0) {\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(facet.name, facet.rootPath);\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 (currentState.tagFilters && params.tagRefinements && params.tagRefinements.length > 0) {\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 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 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 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}\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 === 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}\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0) 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}\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}\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}\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}\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}\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}\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}\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}\n * @example\n * // for price = 50 or 40\n * searchparameter.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * searchparameter.addNumericRefinement('size', '=', 38);\n * searchparameter.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function(attribute, operator, v) {\n var value = valToNumber(v);\n\n if (this.isNumericRefined(attribute, operator, value)) 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(value);\n } else {\n mod[attribute][operator] = [value];\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}\n */\n removeNumericRefinement: function(attribute, operator, paramValue) {\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function(value, key) {\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(value, key) {\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 this.numericRefinements[attribute] && this.numericRefinements[attribute][operator];\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.}\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(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({val: value, op: operator}, key, 'numeric');\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n memo[key] = operatorList;\n\n return memo;\n }, {});\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\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}\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}\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}\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: `' + hierarchicalFacet.name + '`');\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}\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(this.facetsRefinements, facet, value)\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}\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(this.facetsExcludes, facet, value)\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}\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n\n if (RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\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}\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}\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}\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}\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}\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(this.facetsRefinements, facet, value)\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}\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(this.facetsExcludes, facet, value)\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}\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\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}\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}\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}\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('Cannot refine the undeclared facet ' + facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets');\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}\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(this.facetsRefinements, facet, value)\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}\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(this.facetsExcludes, facet, value)\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}\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\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}\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(facet, value) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration');\n }\n\n var separator = this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(facet));\n\n var mod = {};\n\n var upOneOrMultipleLevel = 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(value + separator) === 0\n );\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({}, mod, this.hierarchicalFacetsRefinements)\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(facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration.');\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure({}, mod, this.hierarchicalFacetsRefinements)\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({}, mod, this.hierarchicalFacetsRefinements)\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters}\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}\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}\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}\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}\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.disjunctiveFacetsRefinements, 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}\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(facet, value) {\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 !!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}\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[]}\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\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).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[]}\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\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) { return facet.name; }),\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[]}\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 getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n var self = this;\n Object.keys(this).forEach(function(paramName) {\n var paramValue = self[paramName];\n if (managedParameters.indexOf(paramName) === -1 && paramValue !== undefined) {\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 var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function(acc, key) {\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(\n function(previous, key) {\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 previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject\n );\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\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\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\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\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\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function(hierarchicalFacetName) {\n return find(\n this.hierarchicalFacets,\n function(f) {\n return f.name === hierarchicalFacetName;\n }\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 = state._getHierarchicalFacetSeparator(\n hierarchicalFacet\n );\n var hierarchicalRootPath = state._getHierarchicalRootPath(\n hierarchicalFacet\n );\n var hierarchicalShowParentLevel = state._getHierarchicalShowParentLevel(\n hierarchicalFacet\n );\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\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 * @param {string[]} attributes\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 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\n * @param {string} hierarchicalAttributeName\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(hierarchicalFacets, function facetKeyMatchesAttribute(\n hierarchicalFacet\n ) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n });\n}\n\n/*eslint-disable */\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 **/\n/*eslint-enable */\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0];\n\n this._rawResults = results;\n\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 * @member {number}\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(function initFutureTree() {\n return [];\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(self.disjunctiveFacets[position], mainSubResponse.facets_stats, facetKey);\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(self.facets[position], mainSubResponse.facets_stats, facetKey);\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(self.hierarchicalFacets[position], function(f) {\n return f.attribute === dfacet;\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 = 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(self.disjunctiveFacets[position], result.facets_stats, dfacet);\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {\n // add the disjunctive refinements if it is no more retrieved\n if (!self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue(refinementValue)) > -1) {\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 (currentRefinement.length === 0 || currentRefinement[0].split(separator).length < 2) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function(result) {\n var facets = result && result.facets\n ? result.facets\n : {};\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(self.hierarchicalFacets[position], function(f) {\n return f.attribute === dfacet;\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] = 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: mainSubResponse.facets[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(generateHierarchicalTree(state));\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 find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate);\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 = results._state.getHierarchicalFacetByName(attribute);\n var currentRefinementSplit = unescapeFacetValue(\n results._state.getHierarchicalRefinement(attribute)[0] || ''\n ).split(results._state._getHierarchicalFacetSeparator(hierarchicalFacet));\n currentRefinementSplit.unshift(attribute);\n\n setIsRefined(hierarchicalFacetValues, currentRefinementSplit, 0);\n\n return hierarchicalFacetValues;\n }\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[]} currentRefinementSplit array of parts of the current hierarchical refinement\n * @param {number} depth recursion depth in the currentRefinement\n */\nfunction setIsRefined(item, currentRefinement, depth) {\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\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 */\nfunction recSort(sortFn, node, names, level) {\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}\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 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 = [['path', 'name'], ['asc', 'asc']];\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=}\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 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(function(data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (Boolean(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 }, facetValues, attributes);\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\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 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(getRefinement(state, 'facet', attributeName, name, results.facets));\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function(attributeName) {\n state.facetsExcludes[attributeName].forEach(function(name) {\n res.push(getRefinement(state, 'exclude', attributeName, name, results.facets));\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function(attributeName) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function(name) {\n res.push(getRefinement(state, 'disjunctive', attributeName, name, results.disjunctiveFacets));\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function(attributeName) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function(name) {\n res.push(getHierarchicalRefinement(state, attributeName, name, results.hierarchicalFacets));\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 {*} state\n * @param {*} type\n * @param {string} attributeName\n * @param {*} name\n * @param {Facet[]} resultsFacets\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 {*} state\n * @param {string} attributeName\n * @param {*} name\n * @param {Facet[]} resultsFacets\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 && 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}\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} [callback] 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 ? this.state : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\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(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 }, function(e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\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 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' // FIXME remove this line once the engine is fixed.\n ])\n }\n );\n\n var errorMessage = '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(facet, query, maxFacetHits, userState) {\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(facet, query, maxFacetHits, state);\n\n this._currentNbQueries++;\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(function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function(f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n }, function(e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\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}\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}\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}\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}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\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}\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(facet, value) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, value),\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}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function(attribute, operator, value) {\n this._change({\n state: this.state.resetPage().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}\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/**\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/**\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}\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/**\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}\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}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function(attribute, operator, value) {\n this._change({\n state: this.state.resetPage().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}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\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}\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(facet) {\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}\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/**\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}\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/**\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}\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}\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/**\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}\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}\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/**\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}\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}\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}\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 */\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}\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}\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}\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}\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}\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}\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 = 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/**\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}\n */\nAlgoliaSearchHelper.prototype.hasTag = function(tag) {\n return this.state.isTagRefined(tag);\n};\n\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/**\n * Get the name of the currently used index.\n * @return {string}\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 disjRefinements = this.state.getDisjunctiveRefinements(facetName);\n\n disjRefinements.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(attribute, operator) {\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(facetName) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @return {undefined}\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 = requestBuilder._getQueries(derivedState.index, derivedState);\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 var queryId = this._queryId++;\n\n this._currentNbQueries++;\n\n try {\n this.client.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\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}>}\n * state state used for 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(states, queryId, content) {\n // FIXME 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 var formattedResponse = helper.lastResults = new SearchResults(state, specificResults);\n\n helper.emit('result', {\n results: formattedResponse,\n state: state\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function(queryId, error) {\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(query, facetFilters, numericFilters, tagFilters) {\n return query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0;\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}\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function(facet) {\n return this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0;\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}\n */\nAlgoliaSearchHelper.prototype.clearCache = function() {\n 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}\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}\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}\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 * @return {undefined}\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 delete acc[key];\n }\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\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\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","'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(defaultInstructions, function(\n defaultInstruction\n ) {\n return defaultInstruction[0] === sortInstruction[0];\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 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 continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n target[key] = _merge(targetVal, sourceVal);\n } else {\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} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\n\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\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 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 */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\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('The value should be a number, a parsable string or an array of those.');\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 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 * @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(state, refinedFacet)\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 (currentRefinement.length > 0 && currentRefinement[0].split(separator).length > 1) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0].split(separator).slice(0, -1).reduce(\n function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value: level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator)\n });\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(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 (typeof facetFilter === 'string' && !hasHierarchicalFacetFilter(facetFilter)) {\n acc.push(facetFilter);\n }\n\n return acc;\n }, []);\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(parent.attribute + ':' + parent.value);\n } else {\n params.facetFilters = filteredFacetFilters.length > 0 ? filteredFacetFilters : 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 * @return {object.}\n */\n _getHitsSearchParams: function(state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state));\n\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 {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object}\n */\n _getDisjunctiveFacetSearchParams: function(state, facet, hierarchicalRootLevel) {\n var facetFilters = requestBuilder._getFacetFilters(state, facet, hierarchicalRootLevel);\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 = 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 {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\n * @private\n * @return {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 /**\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 {string} [facet] if set, the current disjunctive facet\n * @return {array.}\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 = 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 (facetValue.indexOf(separator) === -1 || (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath && rootPath.split(separator).length === facetValue.split(separator).length)) {\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(allAttributes, hierarchicalFacet) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(hierarchicalFacet.name)[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 }, out);\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function(state, hierarchicalFacet, rootLevel) {\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 = 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(merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\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.12.0';\n","/*! algoliasearch-lite.umd.js | 4.16.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(){var r=JSON.stringify(e),n=a()[r];return Promise.all([n||t(),void 0!==n])})).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)]=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 m={Read:1,Write:2,Any:3},p=1,v=2,y=3;function g(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:m.Any}:{protocol:e.protocol||\"https\",url:e.url,accept:e.accept||m.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(g(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===y&&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 w(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),h=0,d=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 d={data:i,headers:s,method:c,url:S(l,n.path,f),connectTimeout:a(h,e.timeouts.connect),responseTimeout:a(h,o.timeout)},m=function(e){var t={request:d,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=m(n);return n.isTimedOut&&h++,Promise.all([e.logger.info(\"Retryable failure\",x(o)),e.hostsCache.set(l,g(l,n.isTimedOut?y:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw m(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(d).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 d(a(e.statelessHosts).reverse(),e.getTimeout)}))}function j(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 x(e)}))}function x(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 N=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===h.WithinHeaders?n:{}},queryParameters:function(){return e===h.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:h.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=d(t,f.timeouts.read),n=function(){return w(f,f.hosts.filter((function(e){return 0!=(e.accept&m.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 w(f,f.hosts.filter((function(e){return 0!=(e.accept&m.Write)})),e,d(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:\"\".concat(t,\"-dsn.algolia.net\"),accept:m.Read},{url:\"\".concat(t,\".algolia.net\"),accept:m.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)}},k=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)}},E=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 k(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.16.0\",\"-\").concat(e)}),s()]}),userAgent:j(\"4.16.0\").add({segment:\"Browser\",version:\"lite\"}),authMode:h.WithinQueryParameters};return N(r(r(r({},a),n),{},{methods:{search:J,searchForFacetValues:E,multipleQueries:J,multipleSearchForFacetValues:E,customRequest:C,initIndex:function(e){return function(t){return k(e)(t,{methods:{search:F,searchForFacetValues:R,findAnswers:I}})}}}}))}return Q.version=\"4.16.0\",Q}));\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","import type {\n ThemeConditionalValue} from \"@singlestore/fusion/theme-context\";\nimport {\n useTheme,\n} from \"@singlestore/fusion/theme-context\";\n\n// given a src string or a theme conditional src object, return the resolved\n// src string\ntype UseResolvedThemedSrc = () => (\n src?: string | ThemeConditionalValue | undefined\n) => string | undefined;\n\nexport const useResolveSrc: UseResolvedThemedSrc = () => {\n const { themeConditional } = useTheme();\n\n const resolve = (src?: string | ThemeConditionalValue) => {\n if (src === undefined) {\n return undefined;\n }\n\n return typeof src === \"string\" ? src : themeConditional(src);\n };\n\n return resolve;\n};\n","import React from \"react\";\n\nimport type {\n boxVariants} from \"@singlestore/fusion/components/layout\";\nimport {\n box,\n boxVariantPropsKeys\n} from \"@singlestore/fusion/components/layout\";\nimport { split } from \"@singlestore/fusion/utils/object\";\nimport type { ThemeConditionalValue } from \"@singlestore/fusion/theme-context\";\nimport { useResolveSrc } from \"@singlestore/fusion/react-utils/use-resolve-src\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport { cx } from \"class-variance-authority\";\n\ntype ImageProps = Omit, \"width\" | \"height\"> &\n Omit, \"src\"> & {\n src: string | ThemeConditionalValue;\n };\n\nexport const Image = React.forwardRef, ImageProps>(\n (props, ref) => {\n const resolveSrc = useResolveSrc();\n\n // we want to be able to set the pixel value of the width and height\n // directly on the element, instead of using the fusion helpers\n type FilteredBoxProps = Exclude<\n keyof typeof boxVariants,\n \"width\" | \"height\"\n >;\n\n const filteredBoxVariants = boxVariantPropsKeys.filter(\n (key) => key !== \"width\" && key !== \"height\"\n ) as Array;\n\n const [boxVariantProps, imgProps] = split(props, filteredBoxVariants);\n\n const { src: srcProp, className: classNameProp, ...rest } = imgProps;\n const src = resolveSrc(srcProp);\n\n return (\n \n );\n }\n);\n","export const isContentstackImage = (image: string | object = \"\") => {\n // Need to check if `image` is of type string because in the\n // NetlifyCMS preview, an uploaded `image` returns an object.\n return (\n typeof image === \"string\" && image.includes(\"images.contentstack.io\")\n );\n};\n\n/**\n * @function getContentstackImageSrc\n * @see https://www.contentstack.com/docs/developers/apis/image-delivery-api/\n */\n\ntype ContentstackImageOptions = {\n width?: number;\n height?: number;\n blur?: number;\n brightness?: number;\n contrast?: number;\n crop?: {\n x?: number | string;\n y?: number | string;\n width: number | string;\n height: number | string;\n };\n overlay?: string;\n};\n\nexport const getContentstackImageSrc = (\n imageSrc: string = \"\",\n options: ContentstackImageOptions = {}\n) => {\n if (!isContentstackImage(imageSrc)) {\n return imageSrc;\n }\n\n const baseUrl = imageSrc.split(\"?\")[0];\n\n const existingParams = Object.fromEntries(\n new URL(imageSrc).searchParams.entries()\n );\n\n const newParams: Record = Object.keys(options).reduce(\n (acc, key) => {\n const theseParams = {\n [key]: options[\n key as keyof ContentstackImageOptions\n ]?.toString(),\n };\n\n if (key === \"crop\" && options.crop) {\n const { width, height, x = 0, y = 0 } = options.crop;\n\n // E.g.: crop=150,100,x0,y0\n theseParams[key] = `${width},${height},x${x},y${y}`;\n }\n\n // If an image has an overlay, we need the overlay\n // to be the same size as the image (100p equals 100%)\n if (key === \"overlay\") {\n theseParams[\"overlay-width\"] = \"100p\";\n }\n\n // Disable upscaling image if we're resizing\n if (key === \"width\" || key === \"height\") {\n theseParams[\"disable\"] = \"upscale\";\n }\n\n return {\n ...acc,\n ...theseParams,\n };\n },\n {}\n );\n\n // Use WebP images if supported by browser\n if (!(\"auto\" in existingParams)) {\n newParams[\"auto\"] = \"webp\";\n }\n\n const urlParams: Record = {\n ...existingParams,\n ...newParams,\n };\n\n if (Object.keys(urlParams).length) {\n return `${baseUrl}?${new URLSearchParams(urlParams).toString()}`;\n }\n\n return imageSrc;\n};\n","import { BREAKPOINTS } from \"@singlestore/fusion/tokens/js/variables/supplementary\";\nimport {\n getContentstackImageSrc,\n isContentstackImage,\n} from \"@singlestore/fusion/utils/contentstack\";\n\nexport const DEFAULT_SIZES = {\n lg: 1024,\n md: 768,\n sm: 480,\n};\n\nexport type UseContentstackImageProps = {\n url?: string;\n urlLg?: string;\n urlMd?: string;\n urlSm?: string;\n maximumPixelDensity?: number;\n sizes?: {\n xl?: number; // optional width larger than the container\n lg?: number;\n md?: number;\n sm?: number;\n };\n};\n\ntype Source = {\n src: string;\n sourceWidth: number;\n};\n\ntype BreakpointConfig = {\n imageWidth: number;\n sources: Array;\n mediaQuery?: string;\n};\n\ntype ResponsiveImage = {\n sources: Array;\n fallbackSrc: string;\n srcSetAttr: string;\n sizesAttr: string;\n sizeSources: Array<{ media?: string; srcset: string }>;\n};\n\nexport const useContentstackImage = ({\n url,\n urlLg: _urlLg,\n urlMd: _urlMd,\n urlSm: _urlSm,\n sizes = {},\n maximumPixelDensity = 3,\n}: UseContentstackImageProps): ResponsiveImage => {\n // this must be included because hooks can't be conditionally called so we\n // must allow for invalid parameters\n if (!url || !isContentstackImage(url)) {\n return {\n fallbackSrc: \"\",\n sources: [],\n sizeSources: [],\n srcSetAttr: \"string\",\n sizesAttr: \"\",\n };\n }\n\n const xl = sizes.xl;\n const lg = sizes.lg || DEFAULT_SIZES.lg;\n const md = sizes.md || DEFAULT_SIZES.md;\n const sm = sizes.sm || DEFAULT_SIZES.sm;\n\n const breakpoints: Array = [];\n\n const getSourcesForViewport = (\n imageWidth: number,\n url: string,\n cssBreakpoint?: keyof typeof BREAKPOINTS\n ): BreakpointConfig => {\n const breakpointConfig: BreakpointConfig = {\n imageWidth,\n sources: [],\n };\n\n if (cssBreakpoint) {\n breakpointConfig.mediaQuery = BREAKPOINTS[cssBreakpoint];\n }\n\n for (\n let pixelDensity = 1;\n pixelDensity <= maximumPixelDensity;\n pixelDensity++\n ) {\n const sourceWidth = imageWidth * pixelDensity;\n const imageSrc = getContentstackImageSrc(url, {\n width: sourceWidth,\n });\n\n const source: Source = {\n src: imageSrc,\n sourceWidth,\n };\n\n breakpointConfig.sources.push(source);\n }\n\n return breakpointConfig;\n };\n\n let fallbackSrc: string = \"\";\n\n if (xl) {\n const xlBreakpoint = getSourcesForViewport(xl, url);\n breakpoints.unshift(xlBreakpoint);\n\n fallbackSrc = xlBreakpoint.sources[0].src;\n }\n\n const urlLg = _urlLg || url;\n if (!xl || xl !== lg) {\n const lgBreakpoint = getSourcesForViewport(lg, urlLg, \"lg-n-below\");\n breakpoints.unshift(lgBreakpoint);\n\n fallbackSrc ||= lgBreakpoint.sources[0].src;\n }\n\n const urlMd = _urlMd || urlLg;\n if (md !== lg) {\n const mdBreakpoint = getSourcesForViewport(md, urlMd, \"md-n-below\");\n breakpoints.unshift(mdBreakpoint);\n\n fallbackSrc ||= mdBreakpoint.sources[0].src;\n }\n\n const urlSm = _urlSm || urlMd;\n if (sm !== md) {\n const smBreakpoint = getSourcesForViewport(sm, urlSm, \"sm-n-below\");\n breakpoints.unshift(smBreakpoint);\n\n fallbackSrc ||= smBreakpoint.sources[0].src;\n }\n\n let formattedSources: Array = [];\n if (breakpoints.length > 1) {\n // make 1D, remove duplicates\n formattedSources = breakpoints\n .flatMap((breakpoint) => breakpoint.sources)\n .filter(\n (source, index, self) =>\n self.findIndex(\n ({ sourceWidth }) => sourceWidth === source.sourceWidth\n ) == index\n );\n }\n\n const formattedSrcSet = formattedSources\n .sort((a, b) => a.sourceWidth - b.sourceWidth)\n .map(({ src, sourceWidth }) => `${src} ${sourceWidth}w`)\n .join(\", \");\n\n const formattedSizes = breakpoints\n .map(({ mediaQuery, imageWidth }, index) => {\n // fallback breakpoint should be the last one (largest image)\n if (index === breakpoints.length - 1) {\n return `${imageWidth}w`;\n }\n\n return `${mediaQuery} ${imageWidth}w`;\n })\n .join(\", \");\n\n // media and srcset for each breakpoint\n const sizeSources = breakpoints.map(({ sources, mediaQuery }) => {\n const srcSet = sources\n .sort((a, b) => a.sourceWidth - b.sourceWidth)\n .map(({ src, sourceWidth }) => `${src} ${sourceWidth}w`)\n .join(\", \");\n\n return {\n media: mediaQuery,\n srcset: srcSet,\n };\n });\n\n return {\n fallbackSrc,\n sources: formattedSources,\n sizeSources: sizeSources,\n srcSetAttr: formattedSrcSet,\n sizesAttr: formattedSizes,\n };\n};\n","import React from \"react\";\nimport { Image } from \"@singlestore/fusion/components/image\";\nimport type { UseContentstackImageProps } from \"@singlestore/fusion/react-utils/use-contentstack-image\";\nimport { useContentstackImage } from \"@singlestore/fusion/react-utils/use-contentstack-image\";\nimport { useResolveSrc } from \"@singlestore/fusion/react-utils/use-resolve-src\";\n\ntype ContentstackImageProps = Omit<\n React.ComponentProps,\n \"sizes\"\n> & {\n srcSm?: UseContentstackImageProps[\"urlSm\"];\n srcMd?: UseContentstackImageProps[\"urlMd\"];\n srcLg?: UseContentstackImageProps[\"urlLg\"];\n maximumPixelDensity?: UseContentstackImageProps[\"maximumPixelDensity\"];\n} & Pick;\n\n// Uses element to render images without art direction\n// letting the browser decide which image to load\nexport const ContentstackImage = React.forwardRef<\n React.ElementRef<\"img\">,\n ContentstackImageProps\n>((props, ref) => {\n const resolveSrc = useResolveSrc();\n const { src, srcSm, srcMd, srcLg, sizes, maximumPixelDensity, ...rest } =\n props;\n\n const { fallbackSrc, srcSetAttr, sizesAttr } = useContentstackImage({\n url: resolveSrc(src),\n urlSm: resolveSrc(srcSm),\n urlMd: resolveSrc(srcMd),\n urlLg: resolveSrc(srcLg),\n sizes,\n maximumPixelDensity,\n });\n\n return (\n \n );\n});\n","function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\n\n\nexport {$ae6933e535247d3d$export$7d15b64cf5a3a4c4 as clamp};\n//# sourceMappingURL=index.module.js.map\n","import {createContext as $7Gjcd$createContext, createElement as $7Gjcd$createElement, useContext as $7Gjcd$useContext} from \"react\";\n\n\nconst $f631663db3294ace$var$DirectionContext = /*#__PURE__*/ $7Gjcd$createContext(undefined);\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/ const $f631663db3294ace$export$c760c09fdd558351 = (props)=>{\n const { dir: dir , children: children } = props;\n return /*#__PURE__*/ $7Gjcd$createElement($f631663db3294ace$var$DirectionContext.Provider, {\n value: dir\n }, children);\n};\n/* -----------------------------------------------------------------------------------------------*/ function $f631663db3294ace$export$b39126d51d94e6f3(localDir) {\n const globalDir = $7Gjcd$useContext($f631663db3294ace$var$DirectionContext);\n return localDir || globalDir || 'ltr';\n}\nconst $f631663db3294ace$export$2881499e37b75b9a = $f631663db3294ace$export$c760c09fdd558351;\n\n\n\n\nexport {$f631663db3294ace$export$b39126d51d94e6f3 as useDirection, $f631663db3294ace$export$2881499e37b75b9a as Provider, $f631663db3294ace$export$c760c09fdd558351 as DirectionProvider};\n//# sourceMappingURL=index.module.js.map\n","import {useEffect as $1wErz$useEffect} from \"react\";\n\n\n/** Number of components which have requested interest to have focus guards */ let $3db38b7d1fb3fe6a$var$count = 0;\nfunction $3db38b7d1fb3fe6a$export$ac5b58043b79449b(props) {\n $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c();\n return props.children;\n}\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */ function $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c() {\n $1wErz$useEffect(()=>{\n var _edgeGuards$, _edgeGuards$2;\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', (_edgeGuards$ = edgeGuards[0]) !== null && _edgeGuards$ !== void 0 ? _edgeGuards$ : $3db38b7d1fb3fe6a$var$createFocusGuard());\n document.body.insertAdjacentElement('beforeend', (_edgeGuards$2 = edgeGuards[1]) !== null && _edgeGuards$2 !== void 0 ? _edgeGuards$2 : $3db38b7d1fb3fe6a$var$createFocusGuard());\n $3db38b7d1fb3fe6a$var$count++;\n return ()=>{\n if ($3db38b7d1fb3fe6a$var$count === 1) document.querySelectorAll('[data-radix-focus-guard]').forEach((node)=>node.remove()\n );\n $3db38b7d1fb3fe6a$var$count--;\n };\n }, []);\n}\nfunction $3db38b7d1fb3fe6a$var$createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.cssText = 'outline: none; opacity: 0; position: fixed; pointer-events: none';\n return element;\n}\nconst $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 = $3db38b7d1fb3fe6a$export$ac5b58043b79449b;\n\n\n\n\nexport {$3db38b7d1fb3fe6a$export$ac5b58043b79449b as FocusGuards, $3db38b7d1fb3fe6a$export$be92b6f5f03c0fe9 as Root, $3db38b7d1fb3fe6a$export$b7ece24a22aeda8c as useFocusGuards};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import $45QHv$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $45QHv$forwardRef, useState as $45QHv$useState, useRef as $45QHv$useRef, useEffect as $45QHv$useEffect, useCallback as $45QHv$useCallback, createElement as $45QHv$createElement} from \"react\";\nimport {useComposedRefs as $45QHv$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $45QHv$Primitive} from \"@radix-ui/react-primitive\";\nimport {useCallbackRef as $45QHv$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\n\n\n\n\n\n\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst $d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst $d3863c46a17e8a28$var$EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME = 'FocusScope';\nconst $d3863c46a17e8a28$export$20e40289641fbbb6 = /*#__PURE__*/ $45QHv$forwardRef((props, forwardedRef)=>{\n const { loop: loop = false , trapped: trapped = false , onMountAutoFocus: onMountAutoFocusProp , onUnmountAutoFocus: onUnmountAutoFocusProp , ...scopeProps } = props;\n const [container1, setContainer] = $45QHv$useState(null);\n const onMountAutoFocus = $45QHv$useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = $45QHv$useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = $45QHv$useRef(null);\n const composedRefs = $45QHv$useComposedRefs(forwardedRef, (node)=>setContainer(node)\n );\n const focusScope = $45QHv$useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current; // Takes care of trapping focus if focus is moved outside programmatically for example\n $45QHv$useEffect(()=>{\n if (trapped) {\n function handleFocusIn(event) {\n if (focusScope.paused || !container1) return;\n const target = event.target;\n if (container1.contains(target)) lastFocusedElementRef.current = target;\n else $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n function handleFocusOut(event) {\n if (focusScope.paused || !container1) return;\n if (!container1.contains(event.relatedTarget)) $d3863c46a17e8a28$var$focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n return ()=>{\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n };\n }\n }, [\n trapped,\n container1,\n focusScope.paused\n ]);\n $45QHv$useEffect(()=>{\n if (container1) {\n $d3863c46a17e8a28$var$focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container1.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container1.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n $d3863c46a17e8a28$var$focusFirst($d3863c46a17e8a28$var$removeLinks($d3863c46a17e8a28$var$getTabbableCandidates(container1)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) $d3863c46a17e8a28$var$focus(container1);\n }\n }\n return ()=>{\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_MOUNT, onMountAutoFocus); // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(()=>{\n const unmountEvent = new CustomEvent($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, $d3863c46a17e8a28$var$EVENT_OPTIONS);\n container1.addEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container1.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) $d3863c46a17e8a28$var$focus(previouslyFocusedElement !== null && previouslyFocusedElement !== void 0 ? previouslyFocusedElement : document.body, {\n select: true\n });\n // we need to remove the listener after we `dispatchEvent`\n container1.removeEventListener($d3863c46a17e8a28$var$AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n $d3863c46a17e8a28$var$focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container1,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]); // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = $45QHv$useCallback((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container = event.currentTarget;\n const [first, last] = $d3863c46a17e8a28$var$getTabbableEdges(container);\n const hasTabbableElementsInside = first && last; // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) $d3863c46a17e8a28$var$focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /*#__PURE__*/ $45QHv$createElement($45QHv$Primitive.div, $45QHv$babelruntimehelpersesmextends({\n tabIndex: -1\n }, scopeProps, {\n ref: composedRefs,\n onKeyDown: handleKeyDown\n }));\n});\n/*#__PURE__*/ Object.assign($d3863c46a17e8a28$export$20e40289641fbbb6, {\n displayName: $d3863c46a17e8a28$var$FOCUS_SCOPE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */ function $d3863c46a17e8a28$var$focusFirst(candidates, { select: select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n $d3863c46a17e8a28$var$focus(candidate, {\n select: select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n/**\n * Returns the first and last tabbable elements inside a container.\n */ function $d3863c46a17e8a28$var$getTabbableEdges(container) {\n const candidates = $d3863c46a17e8a28$var$getTabbableCandidates(container);\n const first = $d3863c46a17e8a28$var$findVisible(candidates, container);\n const last = $d3863c46a17e8a28$var$findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */ function $d3863c46a17e8a28$var$getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode); // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */ function $d3863c46a17e8a28$var$findVisible(elements, container) {\n for (const element of elements){\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!$d3863c46a17e8a28$var$isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction $d3863c46a17e8a28$var$isHidden(node, { upTo: upTo }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while(node){\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction $d3863c46a17e8a28$var$isSelectableInput(element) {\n return element instanceof HTMLInputElement && 'select' in element;\n}\nfunction $d3863c46a17e8a28$var$focus(element, { select: select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement; // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({\n preventScroll: true\n }); // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && $d3863c46a17e8a28$var$isSelectableInput(element) && select) element.select();\n }\n}\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/ const $d3863c46a17e8a28$var$focusScopesStack = $d3863c46a17e8a28$var$createFocusScopesStack();\nfunction $d3863c46a17e8a28$var$createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */ let stack = [];\n return {\n add (focusScope) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) activeFocusScope === null || activeFocusScope === void 0 || activeFocusScope.pause();\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n var _stack$;\n stack = $d3863c46a17e8a28$var$arrayRemove(stack, focusScope);\n (_stack$ = stack[0]) === null || _stack$ === void 0 || _stack$.resume();\n }\n };\n}\nfunction $d3863c46a17e8a28$var$arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) updatedArray.splice(index, 1);\n return updatedArray;\n}\nfunction $d3863c46a17e8a28$var$removeLinks(items) {\n return items.filter((item)=>item.tagName !== 'A'\n );\n}\nconst $d3863c46a17e8a28$export$be92b6f5f03c0fe9 = $d3863c46a17e8a28$export$20e40289641fbbb6;\n\n\n\n\nexport {$d3863c46a17e8a28$export$20e40289641fbbb6 as FocusScope, $d3863c46a17e8a28$export$be92b6f5f03c0fe9 as Root};\n//# sourceMappingURL=index.module.js.map\n","import $4q5Fq$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $4q5Fq$forwardRef, useEffect as $4q5Fq$useEffect, createElement as $4q5Fq$createElement} from \"react\";\nimport {flushSync as $4q5Fq$flushSync} from \"react-dom\";\nimport {Slot as $4q5Fq$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\nconst $8927f6f2acc4f386$var$NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul'\n]; // Temporary while we await merge of this fix:\n// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/55396\n// prettier-ignore\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$250ffa63cdc0d034 = $8927f6f2acc4f386$var$NODES.reduce((primitive, node)=>{\n const Node = /*#__PURE__*/ $4q5Fq$forwardRef((props, forwardedRef)=>{\n const { asChild: asChild , ...primitiveProps } = props;\n const Comp = asChild ? $4q5Fq$Slot : node;\n $4q5Fq$useEffect(()=>{\n window[Symbol.for('radix-ui')] = true;\n }, []);\n return /*#__PURE__*/ $4q5Fq$createElement(Comp, $4q5Fq$babelruntimehelpersesmextends({}, primitiveProps, {\n ref: forwardedRef\n }));\n });\n Node.displayName = `Primitive.${node}`;\n return {\n ...primitive,\n [node]: Node\n };\n}, {});\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/ /**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not nessesary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */ function $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event) {\n if (target) $4q5Fq$flushSync(()=>target.dispatchEvent(event)\n );\n}\n/* -----------------------------------------------------------------------------------------------*/ const $8927f6f2acc4f386$export$be92b6f5f03c0fe9 = $8927f6f2acc4f386$export$250ffa63cdc0d034;\n\n\n\n\nexport {$8927f6f2acc4f386$export$250ffa63cdc0d034 as Primitive, $8927f6f2acc4f386$export$be92b6f5f03c0fe9 as Root, $8927f6f2acc4f386$export$6d1a0317bde7de7f as dispatchDiscreteCustomEvent};\n//# sourceMappingURL=index.module.js.map\n","import $01b9c$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {useState as $01b9c$useState, useRef as $01b9c$useRef, createElement as $01b9c$createElement, useCallback as $01b9c$useCallback, forwardRef as $01b9c$forwardRef, useEffect as $01b9c$useEffect, Fragment as $01b9c$Fragment, useMemo as $01b9c$useMemo} from \"react\";\nimport {createPortal as $01b9c$createPortal} from \"react-dom\";\nimport {clamp as $01b9c$clamp} from \"@radix-ui/number\";\nimport {composeEventHandlers as $01b9c$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {createCollection as $01b9c$createCollection} from \"@radix-ui/react-collection\";\nimport {useComposedRefs as $01b9c$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $01b9c$createContextScope} from \"@radix-ui/react-context\";\nimport {useDirection as $01b9c$useDirection} from \"@radix-ui/react-direction\";\nimport {DismissableLayer as $01b9c$DismissableLayer} from \"@radix-ui/react-dismissable-layer\";\nimport {useFocusGuards as $01b9c$useFocusGuards} from \"@radix-ui/react-focus-guards\";\nimport {FocusScope as $01b9c$FocusScope} from \"@radix-ui/react-focus-scope\";\nimport {useId as $01b9c$useId} from \"@radix-ui/react-id\";\nimport {createPopperScope as $01b9c$createPopperScope, Root as $01b9c$Root, Anchor as $01b9c$Anchor, Content as $01b9c$Content, Arrow as $01b9c$Arrow} from \"@radix-ui/react-popper\";\nimport {Portal as $01b9c$Portal} from \"@radix-ui/react-portal\";\nimport {Primitive as $01b9c$Primitive} from \"@radix-ui/react-primitive\";\nimport {Slot as $01b9c$Slot} from \"@radix-ui/react-slot\";\nimport {useCallbackRef as $01b9c$useCallbackRef} from \"@radix-ui/react-use-callback-ref\";\nimport {useControllableState as $01b9c$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useLayoutEffect as $01b9c$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\nimport {usePrevious as $01b9c$usePrevious} from \"@radix-ui/react-use-previous\";\nimport {VisuallyHidden as $01b9c$VisuallyHidden} from \"@radix-ui/react-visually-hidden\";\nimport {hideOthers as $01b9c$hideOthers} from \"aria-hidden\";\nimport {RemoveScroll as $01b9c$RemoveScroll} from \"react-remove-scroll\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst $cc7e05a45900e73f$var$OPEN_KEYS = [\n ' ',\n 'Enter',\n 'ArrowUp',\n 'ArrowDown'\n];\nconst $cc7e05a45900e73f$var$SELECTION_KEYS = [\n ' ',\n 'Enter'\n];\n/* -------------------------------------------------------------------------------------------------\n * Select\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SELECT_NAME = 'Select';\nconst [$cc7e05a45900e73f$var$Collection, $cc7e05a45900e73f$var$useCollection, $cc7e05a45900e73f$var$createCollectionScope] = $01b9c$createCollection($cc7e05a45900e73f$var$SELECT_NAME);\nconst [$cc7e05a45900e73f$var$createSelectContext, $cc7e05a45900e73f$export$286727a75dc039bd] = $01b9c$createContextScope($cc7e05a45900e73f$var$SELECT_NAME, [\n $cc7e05a45900e73f$var$createCollectionScope,\n $01b9c$createPopperScope\n]);\nconst $cc7e05a45900e73f$var$usePopperScope = $01b9c$createPopperScope();\nconst [$cc7e05a45900e73f$var$SelectProvider, $cc7e05a45900e73f$var$useSelectContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nconst [$cc7e05a45900e73f$var$SelectNativeOptionsProvider, $cc7e05a45900e73f$var$useSelectNativeOptionsContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$SELECT_NAME);\nconst $cc7e05a45900e73f$export$ef9b1a59e592288f = (props)=>{\n const { __scopeSelect: __scopeSelect , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , value: valueProp , defaultValue: defaultValue , onValueChange: onValueChange , dir: dir , name: name , autoComplete: autoComplete , disabled: disabled , required: required } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = $01b9c$useState(null);\n const [valueNode, setValueNode] = $01b9c$useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = $01b9c$useState(false);\n const direction = $01b9c$useDirection(dir);\n const [open = false, setOpen] = $01b9c$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = $01b9c$useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = $01b9c$useRef(null); // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = trigger ? Boolean(trigger.closest('form')) : true;\n const [nativeOptionsSet, setNativeOptionsSet] = $01b9c$useState(new Set()); // The native `select` only associates the correct default value if the corresponding\n // `option` is rendered as a child **at the same time** as itself.\n // Because it might take a few renders for our items to gather the information to build\n // the native `option`(s), we generate a key on the `select` to make sure React re-builds it\n // each time the options change.\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value\n ).join(';');\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Root, popperScope, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectProvider, {\n required: required,\n scope: __scopeSelect,\n trigger: trigger,\n onTriggerChange: setTrigger,\n valueNode: valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren: valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: $01b9c$useId(),\n value: value,\n onValueChange: setValue,\n open: open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef: triggerPointerDownPosRef,\n disabled: disabled\n }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.Provider, {\n scope: __scopeSelect\n }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectNativeOptionsProvider, {\n scope: props.__scopeSelect,\n onNativeOptionAdd: $01b9c$useCallback((option)=>{\n setNativeOptionsSet((prev)=>new Set(prev).add(option)\n );\n }, []),\n onNativeOptionRemove: $01b9c$useCallback((option)=>{\n setNativeOptionsSet((prev)=>{\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, [])\n }, children)), isFormControl ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$BubbleSelect, {\n key: nativeSelectKey,\n \"aria-hidden\": true,\n required: required,\n tabIndex: -1,\n name: name,\n autoComplete: autoComplete,\n value: value // enable form autofill\n ,\n onChange: (event)=>setValue(event.target.value)\n ,\n disabled: disabled\n }, value === undefined ? /*#__PURE__*/ $01b9c$createElement(\"option\", {\n value: \"\"\n }) : null, Array.from(nativeOptionsSet)) : null));\n};\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$ef9b1a59e592288f, {\n displayName: $cc7e05a45900e73f$var$SELECT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectTrigger\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$TRIGGER_NAME = 'SelectTrigger';\nconst $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , disabled: disabled = false , ...triggerProps } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = $cc7e05a45900e73f$var$useTypeaheadSearch((search)=>{\n const enabledItems = getItems().filter((item)=>!item.disabled\n );\n const currentItem = enabledItems.find((item)=>item.value === context.value\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem !== undefined) context.onValueChange(nextItem.value);\n });\n const handleOpen = ()=>{\n if (!isDisabled) {\n context.onOpenChange(true); // reset typeahead when we open\n resetTypeahead();\n }\n };\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Anchor, $01b9c$babelruntimehelpersesmextends({\n asChild: true\n }, popperScope), /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.button, $01b9c$babelruntimehelpersesmextends({\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? 'open' : 'closed',\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? '' : undefined,\n \"data-placeholder\": context.value === undefined ? '' : undefined\n }, triggerProps, {\n ref: composedRefs // Enable compatibility with native label or custom `Label` \"click\" for Safari:\n ,\n onClick: $01b9c$composeEventHandlers(triggerProps.onClick, (event)=>{\n // Whilst browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onPointerDown` so effectively\n // this only runs for a label \"click\"\n event.currentTarget.focus();\n }),\n onPointerDown: $01b9c$composeEventHandlers(triggerProps.onPointerDown, (event)=>{\n // prevent implicit pointer capture\n // https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (event.button === 0 && event.ctrlKey === false) {\n handleOpen();\n context.triggerPointerDownPosRef.current = {\n x: Math.round(event.pageX),\n y: Math.round(event.pageY)\n }; // prevent trigger from stealing focus from the active item after opening.\n event.preventDefault();\n }\n }),\n onKeyDown: $01b9c$composeEventHandlers(triggerProps.onKeyDown, (event)=>{\n const isTypingAhead = searchRef.current !== '';\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === ' ') return;\n if ($cc7e05a45900e73f$var$OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n })));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$3ac1e88a1c0b9f1, {\n displayName: $cc7e05a45900e73f$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectValue\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$VALUE_NAME = 'SelectValue';\nconst $cc7e05a45900e73f$export$e288731fd71264f0 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n // We ignore `className` and `style` as this part shouldn't be styled.\n const { __scopeSelect: __scopeSelect , className: className , style: style , children: children , placeholder: placeholder , ...valueProps } = props;\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange: onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== undefined;\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, context.onValueNodeChange);\n $01b9c$useLayoutEffect(()=>{\n onValueNodeHasChildrenChange(hasChildren);\n }, [\n onValueNodeHasChildrenChange,\n hasChildren\n ]);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.span, $01b9c$babelruntimehelpersesmextends({}, valueProps, {\n ref: composedRefs // we don't want events from the portalled `SelectValue` children to bubble\n ,\n style: {\n pointerEvents: 'none'\n }\n }), context.value === undefined && placeholder !== undefined ? placeholder : children);\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$e288731fd71264f0, {\n displayName: $cc7e05a45900e73f$var$VALUE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectIcon\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ICON_NAME = 'SelectIcon';\nconst $cc7e05a45900e73f$export$99b400cabb58c515 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , children: children , ...iconProps } = props;\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.span, $01b9c$babelruntimehelpersesmextends({\n \"aria-hidden\": true\n }, iconProps, {\n ref: forwardedRef\n }), children || '▼');\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$99b400cabb58c515, {\n displayName: $cc7e05a45900e73f$var$ICON_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectPortal\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$PORTAL_NAME = 'SelectPortal';\nconst $cc7e05a45900e73f$export$b2af6c9944296213 = (props)=>{\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Portal, $01b9c$babelruntimehelpersesmextends({\n asChild: true\n }, props));\n};\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$b2af6c9944296213, {\n displayName: $cc7e05a45900e73f$var$PORTAL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectContent\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_NAME = 'SelectContent';\nconst $cc7e05a45900e73f$export$c973a4b3cb86a03d = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = $01b9c$useState(); // setting the fragment in `useLayoutEffect` as `DocumentFragment` doesn't exist on the server\n $01b9c$useLayoutEffect(()=>{\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? /*#__PURE__*/ $01b9c$createPortal(/*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: props.__scopeSelect\n }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.Slot, {\n scope: props.__scopeSelect\n }, /*#__PURE__*/ $01b9c$createElement(\"div\", null, props.children))), frag) : null;\n }\n return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentImpl, $01b9c$babelruntimehelpersesmextends({}, props, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$c973a4b3cb86a03d, {\n displayName: $cc7e05a45900e73f$var$CONTENT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectContentImpl\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$CONTENT_MARGIN = 10;\nconst [$cc7e05a45900e73f$var$SelectContentProvider, $cc7e05a45900e73f$var$useSelectContentContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME);\nconst $cc7e05a45900e73f$var$CONTENT_IMPL_NAME = 'SelectContentImpl';\nconst $cc7e05a45900e73f$var$SelectContentImpl = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , position: position = 'item-aligned' , onCloseAutoFocus: onCloseAutoFocus , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , side: //\n // PopperContent props\n side , sideOffset: sideOffset , align: align , alignOffset: alignOffset , arrowPadding: arrowPadding , collisionBoundary: collisionBoundary , collisionPadding: collisionPadding , sticky: sticky , hideWhenDetached: hideWhenDetached , avoidCollisions: avoidCollisions , //\n ...contentProps } = props;\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [content, setContent] = $01b9c$useState(null);\n const [viewport, setViewport] = $01b9c$useState(null);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, (node)=>setContent(node)\n );\n const [selectedItem, setSelectedItem] = $01b9c$useState(null);\n const [selectedItemText, setSelectedItemText] = $01b9c$useState(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = $01b9c$useState(false);\n const firstValidItemFoundRef = $01b9c$useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n $01b9c$useEffect(()=>{\n if (content) return $01b9c$hideOthers(content);\n }, [\n content\n ]); // Make sure the whole tree has focus guards as our `Select` may be\n // the last element in the DOM (because of the `Portal`)\n $01b9c$useFocusGuards();\n const focusFirst = $01b9c$useCallback((candidates)=>{\n const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current\n );\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate === null || candidate === void 0 || candidate.scrollIntoView({\n block: 'nearest'\n }); // viewport might have padding so scroll to its edges when focusing first/last items.\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate === null || candidate === void 0 || candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n }, [\n getItems,\n viewport\n ]);\n const focusSelectedItem = $01b9c$useCallback(()=>focusFirst([\n selectedItem,\n content\n ])\n , [\n focusFirst,\n selectedItem,\n content\n ]); // Since this is not dependent on layout, we want to ensure this runs at the same time as\n // other effects across components. Hence why we don't call `focusSelectedItem` inside `position`.\n $01b9c$useEffect(()=>{\n if (isPositioned) focusSelectedItem();\n }, [\n isPositioned,\n focusSelectedItem\n ]); // prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n // and close on `pointerup` outside.\n const { onOpenChange: onOpenChange , triggerPointerDownPosRef: triggerPointerDownPosRef } = context;\n $01b9c$useEffect(()=>{\n if (content) {\n let pointerMoveDelta = {\n x: 0,\n y: 0\n };\n const handlePointerMove = (event)=>{\n var _triggerPointerDownPo, _triggerPointerDownPo2, _triggerPointerDownPo3, _triggerPointerDownPo4;\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - ((_triggerPointerDownPo = (_triggerPointerDownPo2 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo2 === void 0 ? void 0 : _triggerPointerDownPo2.x) !== null && _triggerPointerDownPo !== void 0 ? _triggerPointerDownPo : 0)),\n y: Math.abs(Math.round(event.pageY) - ((_triggerPointerDownPo3 = (_triggerPointerDownPo4 = triggerPointerDownPosRef.current) === null || _triggerPointerDownPo4 === void 0 ? void 0 : _triggerPointerDownPo4.y) !== null && _triggerPointerDownPo3 !== void 0 ? _triggerPointerDownPo3 : 0))\n };\n };\n const handlePointerUp = (event)=>{\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) event.preventDefault();\n else // otherwise, if the event was outside the content, close.\n if (!content.contains(event.target)) onOpenChange(false);\n document.removeEventListener('pointermove', handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, {\n capture: true,\n once: true\n });\n }\n return ()=>{\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, {\n capture: true\n });\n };\n }\n }, [\n content,\n onOpenChange,\n triggerPointerDownPosRef\n ]);\n $01b9c$useEffect(()=>{\n const close = ()=>onOpenChange(false)\n ;\n window.addEventListener('blur', close);\n window.addEventListener('resize', close);\n return ()=>{\n window.removeEventListener('blur', close);\n window.removeEventListener('resize', close);\n };\n }, [\n onOpenChange\n ]);\n const [searchRef, handleTypeaheadSearch] = $cc7e05a45900e73f$var$useTypeaheadSearch((search)=>{\n const enabledItems = getItems().filter((item)=>!item.disabled\n );\n const currentItem = enabledItems.find((item)=>item.ref.current === document.activeElement\n );\n const nextItem = $cc7e05a45900e73f$var$findNextItem(enabledItems, search, currentItem);\n if (nextItem) /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */ setTimeout(()=>nextItem.ref.current.focus()\n );\n });\n const itemRefCallback = $01b9c$useCallback((node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== undefined && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n }, [\n context.value\n ]);\n const handleItemLeave = $01b9c$useCallback(()=>content === null || content === void 0 ? void 0 : content.focus()\n , [\n content\n ]);\n const itemTextRefCallback = $01b9c$useCallback((node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== undefined && context.value === value;\n if (isSelectedItem || isFirstValidItem) setSelectedItemText(node);\n }, [\n context.value\n ]);\n const SelectPosition = position === 'popper' ? $cc7e05a45900e73f$var$SelectPopperPosition : $cc7e05a45900e73f$var$SelectItemAlignedPosition; // Silently ignore props that are not supported by `SelectItemAlignedPosition`\n const popperContentProps = SelectPosition === $cc7e05a45900e73f$var$SelectPopperPosition ? {\n side: side,\n sideOffset: sideOffset,\n align: align,\n alignOffset: alignOffset,\n arrowPadding: arrowPadding,\n collisionBoundary: collisionBoundary,\n collisionPadding: collisionPadding,\n sticky: sticky,\n hideWhenDetached: hideWhenDetached,\n avoidCollisions: avoidCollisions\n } : {};\n return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectContentProvider, {\n scope: __scopeSelect,\n content: content,\n viewport: viewport,\n onViewportChange: setViewport,\n itemRefCallback: itemRefCallback,\n selectedItem: selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback: itemTextRefCallback,\n focusSelectedItem: focusSelectedItem,\n selectedItemText: selectedItemText,\n position: position,\n isPositioned: isPositioned,\n searchRef: searchRef\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$RemoveScroll, {\n as: $01b9c$Slot,\n allowPinchZoom: true\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$FocusScope, {\n asChild: true // we make sure we're not trapping once it's been closed\n ,\n trapped: context.open,\n onMountAutoFocus: (event)=>{\n // we prevent open autofocus because we manually focus the selected item\n event.preventDefault();\n },\n onUnmountAutoFocus: $01b9c$composeEventHandlers(onCloseAutoFocus, (event)=>{\n var _context$trigger;\n (_context$trigger = context.trigger) === null || _context$trigger === void 0 || _context$trigger.focus({\n preventScroll: true\n });\n event.preventDefault();\n })\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown: onEscapeKeyDown,\n onPointerDownOutside: onPointerDownOutside // When focus is trapped, a focusout event may still happen.\n ,\n onFocusOutside: (event)=>event.preventDefault()\n ,\n onDismiss: ()=>context.onOpenChange(false)\n }, /*#__PURE__*/ $01b9c$createElement(SelectPosition, $01b9c$babelruntimehelpersesmextends({\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? 'open' : 'closed',\n dir: context.dir,\n onContextMenu: (event)=>event.preventDefault()\n }, contentProps, popperContentProps, {\n onPlaced: ()=>setIsPositioned(true)\n ,\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n ...contentProps.style\n },\n onKeyDown: $01b9c$composeEventHandlers(contentProps.onKeyDown, (event)=>{\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey; // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab') event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End'\n ].includes(event.key)) {\n const items = getItems().filter((item)=>!item.disabled\n );\n let candidateNodes = items.map((item)=>item.ref.current\n );\n if ([\n 'ArrowUp',\n 'End'\n ].includes(event.key)) candidateNodes = candidateNodes.slice().reverse();\n if ([\n 'ArrowUp',\n 'ArrowDown'\n ].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */ setTimeout(()=>focusFirst(candidateNodes)\n );\n event.preventDefault();\n }\n })\n }))))));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$var$SelectContentImpl, {\n displayName: $cc7e05a45900e73f$var$CONTENT_IMPL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectItemAlignedPosition\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_ALIGNED_POSITION_NAME = 'SelectItemAlignedPosition';\nconst $cc7e05a45900e73f$var$SelectItemAlignedPosition = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , onPlaced: onPlaced , ...popperProps } = props;\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = $01b9c$useState(null);\n const [content, setContent] = $01b9c$useState(null);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, (node)=>setContent(node)\n );\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = $01b9c$useRef(false);\n const shouldRepositionRef = $01b9c$useRef(true);\n const { viewport: viewport , selectedItem: selectedItem , selectedItemText: selectedItemText , focusSelectedItem: focusSelectedItem } = contentContext;\n const position = $01b9c$useCallback(()=>{\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect(); // -----------------------------------------------------------------------------------------\n // Horizontal positioning\n // -----------------------------------------------------------------------------------------\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== 'rtl') {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedLeft = $01b9c$clamp(left, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n rightEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + 'px';\n contentWrapper.style.left = clampedLeft + 'px';\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const clampedRight = $01b9c$clamp(right, [\n $cc7e05a45900e73f$var$CONTENT_MARGIN,\n leftEdge - contentWidth\n ]);\n contentWrapper.style.minWidth = minContentWidth + 'px';\n contentWrapper.style.right = clampedRight + 'px';\n } // -----------------------------------------------------------------------------------------\n // Vertical positioning\n // -----------------------------------------------------------------------------------------\n const items = getItems();\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth; // prettier-ignore\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - $cc7e05a45900e73f$var$CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + 'px';\n } else {\n const isFirstItem = selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + 'px';\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${$cc7e05a45900e73f$var$CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + 'px';\n contentWrapper.style.maxHeight = availableHeight + 'px'; // -----------------------------------------------------------------------------------------\n onPlaced === null || onPlaced === void 0 || onPlaced(); // we don't want the initial scroll position adjustment to trigger \"expand on scroll\"\n // so we explicitly turn it on only after they've registered.\n requestAnimationFrame(()=>shouldExpandOnScrollRef.current = true\n );\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n $01b9c$useLayoutEffect(()=>position()\n , [\n position\n ]); // copy z-index from content to wrapper\n const [contentZIndex, setContentZIndex] = $01b9c$useState();\n $01b9c$useLayoutEffect(()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]); // When the viewport becomes scrollable at the top, the scroll up button will mount.\n // Because it is part of the normal flow, it will push down the viewport, thus throwing our\n // trigger => selectedItem alignment off by the amount the viewport was pushed down.\n // We wait for this to happen and then re-run the positining logic one more time to account for it.\n const handleScrollButtonChange = $01b9c$useCallback((node)=>{\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem === null || focusSelectedItem === void 0 || focusSelectedItem();\n shouldRepositionRef.current = false;\n }\n }, [\n position,\n focusSelectedItem\n ]);\n return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectViewportProvider, {\n scope: __scopeSelect,\n contentWrapper: contentWrapper,\n shouldExpandOnScrollRef: shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange\n }, /*#__PURE__*/ $01b9c$createElement(\"div\", {\n ref: setContentWrapper,\n style: {\n display: 'flex',\n flexDirection: 'column',\n position: 'fixed',\n zIndex: contentZIndex\n }\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({}, popperProps, {\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: 'border-box',\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: '100%',\n ...popperProps.style\n }\n }))));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$var$SelectItemAlignedPosition, {\n displayName: $cc7e05a45900e73f$var$ITEM_ALIGNED_POSITION_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectPopperPosition\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$POPPER_POSITION_NAME = 'SelectPopperPosition';\nconst $cc7e05a45900e73f$var$SelectPopperPosition = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , align: align = 'start' , collisionPadding: collisionPadding = $cc7e05a45900e73f$var$CONTENT_MARGIN , ...popperProps } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Content, $01b9c$babelruntimehelpersesmextends({}, popperScope, popperProps, {\n ref: forwardedRef,\n align: align,\n collisionPadding: collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: 'border-box',\n ...popperProps.style,\n '--radix-select-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-select-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-select-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-select-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-select-trigger-height': 'var(--radix-popper-anchor-height)'\n }\n }));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$var$SelectPopperPosition, {\n displayName: $cc7e05a45900e73f$var$POPPER_POSITION_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectViewport\n * -----------------------------------------------------------------------------------------------*/ const [$cc7e05a45900e73f$var$SelectViewportProvider, $cc7e05a45900e73f$var$useSelectViewportContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$CONTENT_NAME, {});\nconst $cc7e05a45900e73f$var$VIEWPORT_NAME = 'SelectViewport';\nconst $cc7e05a45900e73f$export$9ed6e7b40248d36d = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...viewportProps } = props;\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$VIEWPORT_NAME, __scopeSelect);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = $01b9c$useRef(0);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Fragment, null, /*#__PURE__*/ $01b9c$createElement(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n }\n }), /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.Slot, {\n scope: __scopeSelect\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\"\n }, viewportProps, {\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n ...viewportProps.style\n },\n onScroll: $01b9c$composeEventHandlers(viewportProps.onScroll, (event)=>{\n const viewport = event.currentTarget;\n const { contentWrapper: contentWrapper , shouldExpandOnScrollRef: shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef !== null && shouldExpandOnScrollRef !== void 0 && shouldExpandOnScrollRef.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - $cc7e05a45900e73f$var$CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + 'px';\n if (contentWrapper.style.bottom === '0px') {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0; // ensure the content stays pinned to the bottom\n contentWrapper.style.justifyContent = 'flex-end';\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }))));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$9ed6e7b40248d36d, {\n displayName: $cc7e05a45900e73f$var$VIEWPORT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectGroup\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$GROUP_NAME = 'SelectGroup';\nconst [$cc7e05a45900e73f$var$SelectGroupContextProvider, $cc7e05a45900e73f$var$useSelectGroupContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$GROUP_NAME);\nconst $cc7e05a45900e73f$export$ee25a334c55de1f4 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...groupProps } = props;\n const groupId = $01b9c$useId();\n return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectGroupContextProvider, {\n scope: __scopeSelect,\n id: groupId\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n role: \"group\",\n \"aria-labelledby\": groupId\n }, groupProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$ee25a334c55de1f4, {\n displayName: $cc7e05a45900e73f$var$GROUP_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectLabel\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$LABEL_NAME = 'SelectLabel';\nconst $cc7e05a45900e73f$export$f67338d29bd972f8 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...labelProps } = props;\n const groupContext = $cc7e05a45900e73f$var$useSelectGroupContext($cc7e05a45900e73f$var$LABEL_NAME, __scopeSelect);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n id: groupContext.id\n }, labelProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$f67338d29bd972f8, {\n displayName: $cc7e05a45900e73f$var$LABEL_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectItem\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_NAME = 'SelectItem';\nconst [$cc7e05a45900e73f$var$SelectItemContextProvider, $cc7e05a45900e73f$var$useSelectItemContext] = $cc7e05a45900e73f$var$createSelectContext($cc7e05a45900e73f$var$ITEM_NAME);\nconst $cc7e05a45900e73f$export$13ef48a934230896 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , value: value , disabled: disabled = false , textValue: textValueProp , ...itemProps } = props;\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = $01b9c$useState(textValueProp !== null && textValueProp !== void 0 ? textValueProp : '');\n const [isFocused, setIsFocused] = $01b9c$useState(false);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, (node)=>{\n var _contentContext$itemR;\n return (_contentContext$itemR = contentContext.itemRefCallback) === null || _contentContext$itemR === void 0 ? void 0 : _contentContext$itemR.call(contentContext, node, value, disabled);\n });\n const textId = $01b9c$useId();\n const handleSelect = ()=>{\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n return /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectItemContextProvider, {\n scope: __scopeSelect,\n value: value,\n disabled: disabled,\n textId: textId,\n isSelected: isSelected,\n onItemTextChange: $01b9c$useCallback((node)=>{\n setTextValue((prevTextValue)=>{\n var _node$textContent;\n return prevTextValue || ((_node$textContent = node === null || node === void 0 ? void 0 : node.textContent) !== null && _node$textContent !== void 0 ? _node$textContent : '').trim();\n });\n }, [])\n }, /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$Collection.ItemSlot, {\n scope: __scopeSelect,\n value: value,\n disabled: disabled,\n textValue: textValue\n }, /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? '' : undefined // `isFocused` caveat fixes stuttering in VoiceOver\n ,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? 'checked' : 'unchecked',\n \"aria-disabled\": disabled || undefined,\n \"data-disabled\": disabled ? '' : undefined,\n tabIndex: disabled ? undefined : -1\n }, itemProps, {\n ref: composedRefs,\n onFocus: $01b9c$composeEventHandlers(itemProps.onFocus, ()=>setIsFocused(true)\n ),\n onBlur: $01b9c$composeEventHandlers(itemProps.onBlur, ()=>setIsFocused(false)\n ),\n onPointerUp: $01b9c$composeEventHandlers(itemProps.onPointerUp, handleSelect),\n onPointerMove: $01b9c$composeEventHandlers(itemProps.onPointerMove, (event)=>{\n if (disabled) {\n var _contentContext$onIte;\n (_contentContext$onIte = contentContext.onItemLeave) === null || _contentContext$onIte === void 0 || _contentContext$onIte.call(contentContext);\n } else // even though safari doesn't support this option, it's acceptable\n // as it only means it might scroll a few pixels when using the pointer.\n event.currentTarget.focus({\n preventScroll: true\n });\n }),\n onPointerLeave: $01b9c$composeEventHandlers(itemProps.onPointerLeave, (event)=>{\n if (event.currentTarget === document.activeElement) {\n var _contentContext$onIte2;\n (_contentContext$onIte2 = contentContext.onItemLeave) === null || _contentContext$onIte2 === void 0 || _contentContext$onIte2.call(contentContext);\n }\n }),\n onKeyDown: $01b9c$composeEventHandlers(itemProps.onKeyDown, (event)=>{\n var _contentContext$searc;\n const isTypingAhead = ((_contentContext$searc = contentContext.searchRef) === null || _contentContext$searc === void 0 ? void 0 : _contentContext$searc.current) !== '';\n if (isTypingAhead && event.key === ' ') return;\n if ($cc7e05a45900e73f$var$SELECTION_KEYS.includes(event.key)) handleSelect(); // prevent page scroll if using the space key to select an item\n if (event.key === ' ') event.preventDefault();\n })\n }))));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$13ef48a934230896, {\n displayName: $cc7e05a45900e73f$var$ITEM_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectItemText\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_TEXT_NAME = 'SelectItemText';\nconst $cc7e05a45900e73f$export$3572fb0fb821ff49 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n // We ignore `className` and `style` as this part shouldn't be styled.\n const { __scopeSelect: __scopeSelect , className: className , style: style , ...itemTextProps } = props;\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = $cc7e05a45900e73f$var$useSelectNativeOptionsContext($cc7e05a45900e73f$var$ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = $01b9c$useState(null);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, (node)=>setItemTextNode(node)\n , itemContext.onItemTextChange, (node)=>{\n var _contentContext$itemT;\n return (_contentContext$itemT = contentContext.itemTextRefCallback) === null || _contentContext$itemT === void 0 ? void 0 : _contentContext$itemT.call(contentContext, node, itemContext.value, itemContext.disabled);\n });\n const textContent = itemTextNode === null || itemTextNode === void 0 ? void 0 : itemTextNode.textContent;\n const nativeOption = $01b9c$useMemo(()=>/*#__PURE__*/ $01b9c$createElement(\"option\", {\n key: itemContext.value,\n value: itemContext.value,\n disabled: itemContext.disabled\n }, textContent)\n , [\n itemContext.disabled,\n itemContext.value,\n textContent\n ]);\n const { onNativeOptionAdd: onNativeOptionAdd , onNativeOptionRemove: onNativeOptionRemove } = nativeOptionsContext;\n $01b9c$useLayoutEffect(()=>{\n onNativeOptionAdd(nativeOption);\n return ()=>onNativeOptionRemove(nativeOption)\n ;\n }, [\n onNativeOptionAdd,\n onNativeOptionRemove,\n nativeOption\n ]);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Fragment, null, /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.span, $01b9c$babelruntimehelpersesmextends({\n id: itemContext.textId\n }, itemTextProps, {\n ref: composedRefs\n })), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? /*#__PURE__*/ $01b9c$createPortal(itemTextProps.children, context.valueNode) : null);\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$3572fb0fb821ff49, {\n displayName: $cc7e05a45900e73f$var$ITEM_TEXT_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectItemIndicator\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ITEM_INDICATOR_NAME = 'SelectItemIndicator';\nconst $cc7e05a45900e73f$export$6b9198de19accfe6 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...itemIndicatorProps } = props;\n const itemContext = $cc7e05a45900e73f$var$useSelectItemContext($cc7e05a45900e73f$var$ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.span, $01b9c$babelruntimehelpersesmextends({\n \"aria-hidden\": true\n }, itemIndicatorProps, {\n ref: forwardedRef\n })) : null;\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$6b9198de19accfe6, {\n displayName: $cc7e05a45900e73f$var$ITEM_INDICATOR_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectScrollUpButton\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME = 'SelectScrollUpButton';\nconst $cc7e05a45900e73f$export$d8117927658af6d7 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp1, setCanScrollUp] = $01b9c$useState(false);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n $01b9c$useLayoutEffect(()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n const viewport = contentContext.viewport;\n function handleScroll() {\n const canScrollUp = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp);\n }\n handleScroll();\n viewport.addEventListener('scroll', handleScroll);\n return ()=>viewport.removeEventListener('scroll', handleScroll)\n ;\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollUp1 ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectScrollButtonImpl, $01b9c$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport: viewport , selectedItem: selectedItem } = contentContext;\n if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n })) : null;\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$d8117927658af6d7, {\n displayName: $cc7e05a45900e73f$var$SCROLL_UP_BUTTON_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectScrollDownButton\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME = 'SelectScrollDownButton';\nconst $cc7e05a45900e73f$export$ff951e476c12189 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = $cc7e05a45900e73f$var$useSelectViewportContext($cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown1, setCanScrollDown] = $01b9c$useState(false);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n $01b9c$useLayoutEffect(()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n const viewport = contentContext.viewport;\n function handleScroll() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight; // we use Math.ceil here because if the UI is zoomed-in\n // `scrollTop` is not always reported as an integer\n const canScrollDown = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown);\n }\n handleScroll();\n viewport.addEventListener('scroll', handleScroll);\n return ()=>viewport.removeEventListener('scroll', handleScroll)\n ;\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollDown1 ? /*#__PURE__*/ $01b9c$createElement($cc7e05a45900e73f$var$SelectScrollButtonImpl, $01b9c$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport: viewport , selectedItem: selectedItem } = contentContext;\n if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n })) : null;\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$ff951e476c12189, {\n displayName: $cc7e05a45900e73f$var$SCROLL_DOWN_BUTTON_NAME\n});\nconst $cc7e05a45900e73f$var$SelectScrollButtonImpl = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , onAutoScroll: onAutoScroll , ...scrollIndicatorProps } = props;\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext('SelectScrollButton', __scopeSelect);\n const autoScrollTimerRef = $01b9c$useRef(null);\n const getItems = $cc7e05a45900e73f$var$useCollection(__scopeSelect);\n const clearAutoScrollTimer = $01b9c$useCallback(()=>{\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n $01b9c$useEffect(()=>{\n return ()=>clearAutoScrollTimer()\n ;\n }, [\n clearAutoScrollTimer\n ]); // When the viewport becomes scrollable on either side, the relevant scroll button will mount.\n // Because it is part of the normal flow, it will push down (top button) or shrink (bottom button)\n // the viewport, potentially causing the active item to now be partially out of view.\n // We re-run the `scrollIntoView` logic to make sure it stays within the viewport.\n $01b9c$useLayoutEffect(()=>{\n var _activeItem$ref$curre;\n const activeItem = getItems().find((item)=>item.ref.current === document.activeElement\n );\n activeItem === null || activeItem === void 0 || (_activeItem$ref$curre = activeItem.ref.current) === null || _activeItem$ref$curre === void 0 || _activeItem$ref$curre.scrollIntoView({\n block: 'nearest'\n });\n }, [\n getItems\n ]);\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n \"aria-hidden\": true\n }, scrollIndicatorProps, {\n ref: forwardedRef,\n style: {\n flexShrink: 0,\n ...scrollIndicatorProps.style\n },\n onPointerMove: $01b9c$composeEventHandlers(scrollIndicatorProps.onPointerMove, ()=>{\n var _contentContext$onIte3;\n (_contentContext$onIte3 = contentContext.onItemLeave) === null || _contentContext$onIte3 === void 0 || _contentContext$onIte3.call(contentContext);\n if (autoScrollTimerRef.current === null) autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }),\n onPointerLeave: $01b9c$composeEventHandlers(scrollIndicatorProps.onPointerLeave, ()=>{\n clearAutoScrollTimer();\n })\n }));\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectSeparator\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$SEPARATOR_NAME = 'SelectSeparator';\nconst $cc7e05a45900e73f$export$eba4b1df07cb1d3 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...separatorProps } = props;\n return /*#__PURE__*/ $01b9c$createElement($01b9c$Primitive.div, $01b9c$babelruntimehelpersesmextends({\n \"aria-hidden\": true\n }, separatorProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$eba4b1df07cb1d3, {\n displayName: $cc7e05a45900e73f$var$SEPARATOR_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SelectArrow\n * -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$ARROW_NAME = 'SelectArrow';\nconst $cc7e05a45900e73f$export$314f4cb8f8099628 = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { __scopeSelect: __scopeSelect , ...arrowProps } = props;\n const popperScope = $cc7e05a45900e73f$var$usePopperScope(__scopeSelect);\n const context = $cc7e05a45900e73f$var$useSelectContext($cc7e05a45900e73f$var$ARROW_NAME, __scopeSelect);\n const contentContext = $cc7e05a45900e73f$var$useSelectContentContext($cc7e05a45900e73f$var$ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === 'popper' ? /*#__PURE__*/ $01b9c$createElement($01b9c$Arrow, $01b9c$babelruntimehelpersesmextends({}, popperScope, arrowProps, {\n ref: forwardedRef\n })) : null;\n});\n/*#__PURE__*/ Object.assign($cc7e05a45900e73f$export$314f4cb8f8099628, {\n displayName: $cc7e05a45900e73f$var$ARROW_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $cc7e05a45900e73f$var$BubbleSelect = /*#__PURE__*/ $01b9c$forwardRef((props, forwardedRef)=>{\n const { value: value , ...selectProps } = props;\n const ref = $01b9c$useRef(null);\n const composedRefs = $01b9c$useComposedRefs(forwardedRef, ref);\n const prevValue = $01b9c$usePrevious(value); // Bubble value change to parents (e.g form change event)\n $01b9c$useEffect(()=>{\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(selectProto, 'value');\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('change', {\n bubbles: true\n });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n /**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */ return /*#__PURE__*/ $01b9c$createElement($01b9c$VisuallyHidden, {\n asChild: true\n }, /*#__PURE__*/ $01b9c$createElement(\"select\", $01b9c$babelruntimehelpersesmextends({}, selectProps, {\n ref: composedRefs,\n defaultValue: value\n })));\n});\n$cc7e05a45900e73f$var$BubbleSelect.displayName = 'BubbleSelect';\nfunction $cc7e05a45900e73f$var$useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = $01b9c$useCallbackRef(onSearchChange);\n const searchRef = $01b9c$useRef('');\n const timerRef = $01b9c$useRef(0);\n const handleTypeaheadSearch = $01b9c$useCallback((key)=>{\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current); // Reset `searchRef` 1 second after it was last updated\n if (value !== '') timerRef.current = window.setTimeout(()=>updateSearch('')\n , 1000);\n })(search);\n }, [\n handleSearchChange\n ]);\n const resetTypeahead = $01b9c$useCallback(()=>{\n searchRef.current = '';\n window.clearTimeout(timerRef.current);\n }, []);\n $01b9c$useEffect(()=>{\n return ()=>window.clearTimeout(timerRef.current)\n ;\n }, []);\n return [\n searchRef,\n handleTypeaheadSearch,\n resetTypeahead\n ];\n}\n/**\n * This is the \"meat\" of the typeahead matching logic. It takes in a list of items,\n * the search and the current item, and returns the next item (or `undefined`).\n *\n * We normalize the search because if a user has repeatedly pressed a character,\n * we want the exact same behavior as if we only had that one character\n * (ie. cycle through items starting with that character)\n *\n * We also reorder the items by wrapping the array around the current item.\n * This is so we always look forward from the current item, and picking the first\n * item will always be the correct one.\n *\n * Finally, if the normalized search is exactly one character, we exclude the\n * current item from the values because otherwise it would be the first to match always\n * and focus would never move. This is as opposed to the regular case, where we\n * don't want focus to move if the current item still matches.\n */ function $cc7e05a45900e73f$var$findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]\n );\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = $cc7e05a45900e73f$var$wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v)=>v !== currentItem\n );\n const nextItem = wrappedItems.find((item)=>item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : undefined;\n}\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */ function $cc7e05a45900e73f$var$wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]\n );\n}\nconst $cc7e05a45900e73f$export$be92b6f5f03c0fe9 = $cc7e05a45900e73f$export$ef9b1a59e592288f;\nconst $cc7e05a45900e73f$export$41fb9f06171c75f4 = $cc7e05a45900e73f$export$3ac1e88a1c0b9f1;\nconst $cc7e05a45900e73f$export$4c8d1a57a761ef94 = $cc7e05a45900e73f$export$e288731fd71264f0;\nconst $cc7e05a45900e73f$export$f04a61298a47a40f = $cc7e05a45900e73f$export$99b400cabb58c515;\nconst $cc7e05a45900e73f$export$602eac185826482c = $cc7e05a45900e73f$export$b2af6c9944296213;\nconst $cc7e05a45900e73f$export$7c6e2c02157bb7d2 = $cc7e05a45900e73f$export$c973a4b3cb86a03d;\nconst $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 = $cc7e05a45900e73f$export$9ed6e7b40248d36d;\nconst $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 = $cc7e05a45900e73f$export$ee25a334c55de1f4;\nconst $cc7e05a45900e73f$export$b04be29aa201d4f5 = $cc7e05a45900e73f$export$f67338d29bd972f8;\nconst $cc7e05a45900e73f$export$6d08773d2e66f8f2 = $cc7e05a45900e73f$export$13ef48a934230896;\nconst $cc7e05a45900e73f$export$d6e5bf9c43ea9319 = $cc7e05a45900e73f$export$3572fb0fb821ff49;\nconst $cc7e05a45900e73f$export$c3468e2714d175fa = $cc7e05a45900e73f$export$6b9198de19accfe6;\nconst $cc7e05a45900e73f$export$2f60d3ec9ad468f2 = $cc7e05a45900e73f$export$d8117927658af6d7;\nconst $cc7e05a45900e73f$export$bf1aedc3039c8d63 = $cc7e05a45900e73f$export$ff951e476c12189;\nconst $cc7e05a45900e73f$export$1ff3c3f08ae963c0 = $cc7e05a45900e73f$export$eba4b1df07cb1d3;\nconst $cc7e05a45900e73f$export$21b07c8f274aebd5 = $cc7e05a45900e73f$export$314f4cb8f8099628;\n\n\n\n\nexport {$cc7e05a45900e73f$export$286727a75dc039bd as createSelectScope, $cc7e05a45900e73f$export$ef9b1a59e592288f as Select, $cc7e05a45900e73f$export$3ac1e88a1c0b9f1 as SelectTrigger, $cc7e05a45900e73f$export$e288731fd71264f0 as SelectValue, $cc7e05a45900e73f$export$99b400cabb58c515 as SelectIcon, $cc7e05a45900e73f$export$b2af6c9944296213 as SelectPortal, $cc7e05a45900e73f$export$c973a4b3cb86a03d as SelectContent, $cc7e05a45900e73f$export$9ed6e7b40248d36d as SelectViewport, $cc7e05a45900e73f$export$ee25a334c55de1f4 as SelectGroup, $cc7e05a45900e73f$export$f67338d29bd972f8 as SelectLabel, $cc7e05a45900e73f$export$13ef48a934230896 as SelectItem, $cc7e05a45900e73f$export$3572fb0fb821ff49 as SelectItemText, $cc7e05a45900e73f$export$6b9198de19accfe6 as SelectItemIndicator, $cc7e05a45900e73f$export$d8117927658af6d7 as SelectScrollUpButton, $cc7e05a45900e73f$export$ff951e476c12189 as SelectScrollDownButton, $cc7e05a45900e73f$export$eba4b1df07cb1d3 as SelectSeparator, $cc7e05a45900e73f$export$314f4cb8f8099628 as SelectArrow, $cc7e05a45900e73f$export$be92b6f5f03c0fe9 as Root, $cc7e05a45900e73f$export$41fb9f06171c75f4 as Trigger, $cc7e05a45900e73f$export$4c8d1a57a761ef94 as Value, $cc7e05a45900e73f$export$f04a61298a47a40f as Icon, $cc7e05a45900e73f$export$602eac185826482c as Portal, $cc7e05a45900e73f$export$7c6e2c02157bb7d2 as Content, $cc7e05a45900e73f$export$d5c6c08dc2d3ca7 as Viewport, $cc7e05a45900e73f$export$eb2fcfdbd7ba97d4 as Group, $cc7e05a45900e73f$export$b04be29aa201d4f5 as Label, $cc7e05a45900e73f$export$6d08773d2e66f8f2 as Item, $cc7e05a45900e73f$export$d6e5bf9c43ea9319 as ItemText, $cc7e05a45900e73f$export$c3468e2714d175fa as ItemIndicator, $cc7e05a45900e73f$export$2f60d3ec9ad468f2 as ScrollUpButton, $cc7e05a45900e73f$export$bf1aedc3039c8d63 as ScrollDownButton, $cc7e05a45900e73f$export$1ff3c3f08ae963c0 as Separator, $cc7e05a45900e73f$export$21b07c8f274aebd5 as Arrow};\n//# sourceMappingURL=index.module.js.map\n","import $6vYhU$react from \"react\";\nimport {createContextScope as $6vYhU$createContextScope} from \"@radix-ui/react-context\";\nimport {useComposedRefs as $6vYhU$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Slot as $6vYhU$Slot} from \"@radix-ui/react-slot\";\n\n\n\n\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like ``.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\nfunction $e02a7d9cb1dc128c$export$c74125a8e3af6bb2(name) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/ const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = $6vYhU$createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: new Map()\n });\n const CollectionProvider = (props)=>{\n const { scope: scope , children: children } = props;\n const ref = $6vYhU$react.useRef(null);\n const itemMap = $6vYhU$react.useRef(new Map()).current;\n return /*#__PURE__*/ $6vYhU$react.createElement(CollectionProviderImpl, {\n scope: scope,\n itemMap: itemMap,\n collectionRef: ref\n }, children);\n };\n /*#__PURE__*/ Object.assign(CollectionProvider, {\n displayName: PROVIDER_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/ const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n const CollectionSlot = /*#__PURE__*/ $6vYhU$react.forwardRef((props, forwardedRef)=>{\n const { scope: scope , children: children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = $6vYhU$useComposedRefs(forwardedRef, context.collectionRef);\n return /*#__PURE__*/ $6vYhU$react.createElement($6vYhU$Slot, {\n ref: composedRefs\n }, children);\n });\n /*#__PURE__*/ Object.assign(CollectionSlot, {\n displayName: COLLECTION_SLOT_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/ const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n const CollectionItemSlot = /*#__PURE__*/ $6vYhU$react.forwardRef((props, forwardedRef)=>{\n const { scope: scope , children: children , ...itemData } = props;\n const ref = $6vYhU$react.useRef(null);\n const composedRefs = $6vYhU$useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n $6vYhU$react.useEffect(()=>{\n context.itemMap.set(ref, {\n ref: ref,\n ...itemData\n });\n return ()=>void context.itemMap.delete(ref)\n ;\n });\n return /*#__PURE__*/ $6vYhU$react.createElement($6vYhU$Slot, {\n [ITEM_DATA_ATTR]: '',\n ref: composedRefs\n }, children);\n });\n /*#__PURE__*/ Object.assign(CollectionItemSlot, {\n displayName: ITEM_SLOT_NAME\n });\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/ function useCollection(scope) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n const getItems = $6vYhU$react.useCallback(()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n\n\n\n\nexport {$e02a7d9cb1dc128c$export$c74125a8e3af6bb2 as createCollection};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $8LvvK$useRef, useMemo as $8LvvK$useMemo} from \"react\";\n\n\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = $8LvvK$useRef({\n value: value,\n previous: value\n }); // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return $8LvvK$useMemo(()=>{\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\n\n\nexport {$010c2913dbd2fe3d$export$5cae361ad82dce8b as usePrevious};\n//# sourceMappingURL=index.module.js.map\n","/* eslint-disable @typescript-eslint/ban-types */\nimport type { Dict } from \"@singlestore/fusion/utils/types\";\n\nexport function isFunction(\n value: any\n): value is T {\n return typeof value === \"function\";\n}\n\nexport function isBoolean(value: any): value is boolean {\n return typeof value === \"boolean\";\n}\n\nexport function isSymbol(value: any): value is symbol {\n return typeof value === \"symbol\";\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === \"number\";\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === \"undefined\";\n}\n\nexport function isString(value: any): value is string {\n return typeof value === \"string\";\n}\n\nexport function isStringish(\n value: any\n): value is string | number | symbol | boolean {\n return (\n isString(value) ||\n isNumber(value) ||\n isBoolean(value) ||\n isSymbol(value)\n );\n}\n\nexport function isArray(value: any): value is Array {\n return Array.isArray(value);\n}\n\nexport function isEmptyArray(value: any): value is Array {\n return isArray(value) && value.length === 0;\n}\n\nexport function isObject(value: any): value is Dict {\n const type = typeof value;\n return (\n value != null &&\n (type === \"object\" || type === \"function\") &&\n !isArray(value)\n );\n}\n","import {\n faCheck,\n faChevronDown,\n faChevronUp,\n} from \"@fortawesome/pro-solid-svg-icons\";\nimport * as SelectPrimitive from \"@singlestore/fusion/components/select/primitive\";\nimport type { VariantProps} from \"class-variance-authority\";\nimport { cx, cva } from \"class-variance-authority\";\nimport React from \"react\";\n\nimport { FaIcon } from \"@singlestore/fusion/components/icon/fa-icon\";\nimport type {\n Box} from \"@singlestore/fusion/components/layout\";\nimport {\n box,\n boxVariantPropsKeys,\n} from \"@singlestore/fusion/components/layout\";\nimport { Paragraph, Span } from \"@singlestore/fusion/components/typography\";\nimport { split } from \"@singlestore/fusion/utils/object\";\nimport \"./select.scss\";\nimport { isStringishChildren } from \"@singlestore/fusion/react-utils/children\";\n\ntype SelectProps = Pick<\n SelectPrimitive.SelectProps,\n | \"name\"\n | \"autoComplete\"\n | \"disabled\"\n | \"required\"\n | \"defaultValue\"\n | \"value\"\n | \"onValueChange\"\n | \"defaultOpen\"\n | \"open\"\n | \"onOpenChange\"\n | \"children\"\n>;\n\n/**\n * Displays a list of options for the user to select from, used in forms.\n *\n * This is the root component that should be used to wrap the\n * select trigger and content, and controls the data shared between all other parts.\n */\nexport const Select = (props: SelectProps) => (\n \n);\n\n/**\n * Renders an item in the opened select content.\n *\n * This is similar to the native `