{"version":3,"file":"static/js/11.b531e76a053d2ece825e.chunk.js","mappings":";mUAoBO,MAAMA,EAAqDC,IAS7D,IAT8D,GAC/DC,EAAE,UACFC,EAAS,KACTC,EAAI,UACJC,EAAS,iBACTC,EAAgB,SAChBC,EAAQ,KACRC,EAAI,QACJC,GACHR,EACG,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAkBF,GACtDQ,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAkBI,GAC5D,OACII,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHf,GAAIA,EACJC,UAAWA,EAAS,aACRE,EACZE,SAAUA,EACVE,QAASA,EACTS,KAAK,SAAQ,gBACEX,EACfY,KAAMX,GACFI,GAEHR,IC5BAgB,EAAmDnB,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EACtG,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,KCU/CG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IAONI,EAAmD9B,IAU3D,IAV4D,GAC7DC,EAAE,KACFmB,EAAI,MACJW,EAAK,QACLC,EAAO,UACP9B,EAAS,UACTuB,EAAS,WACTQ,EAAU,SACVC,EAAQ,eACRC,GACHnC,EACG,OAAIoB,IAASgB,EAAUC,SAEfxB,EAAAA,cAAA,YACIZ,GAAIA,EACJqC,KAAMrC,EACN8B,MAAOA,EACP7B,UAAW,GAAGA,gBAAwBA,KAAaD,IAAI,gBACxCgC,EACfR,UAAWD,EAAaC,GACxBS,SAAUA,IAMlBrB,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC9BN,EACfR,UAAWD,EAAaC,GACxBS,SAAUA,EACVM,IAAKL,KC9DJM,EAAmDzC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OAC3Fa,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,GAC/DvC,ykBCmDF,IAAKiC,EAQAQ,GARZ,SAAYR,GAERA,EAAA,YACAA,EAAA,kBACAA,EAAA,cACAA,EAAA,oBALJ,CAAYA,IAAAA,EAAS,KAQrB,SAAYQ,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,qBACAA,EAAA,0BACAA,EAAA,yBACAA,EAAA,oBACAA,EAAA,mBACAA,EAAA,wBACAA,EAAA,kBATJ,CAAYA,IAAAA,EAAO,KAYZ,MAAMC,EAAqBA,CAC9BC,EACA5C,EACA6C,EACAC,EACAC,EACAC,EACAC,IAEOL,EAAOM,KAAI,CAACC,EAASC,KACxB,MAAM,GAAErD,EAAE,KAAEmB,EAAI,MAAEmC,EAAK,SAAEC,EAAQ,WAAEvB,EAAU,QAAED,EAAO,YAAEyB,EAAW,MAAE1B,EAAK,eAAEI,GAAmBkB,EAEzFK,EAAsC,CACxCC,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAW,GAAGA,KAAaD,IAAMwD,IAE3DxD,GAAAA,EACAsD,MAAO1C,EAAAA,cAAC4B,EAAW1B,OAAAC,OAAA,GAAK,CAAEf,GAAAA,EAAIyC,MAAOzC,EAAIC,UAAAA,EAAWC,KAAMoD,KAC1DK,aAAc/C,EAAAA,cAACM,EAAWJ,OAAAC,OAAA,GAAK,CAAEd,UAAAA,EAAWkB,KAAM,WAsCtD,OAnCIA,IAASgB,EAAUyB,QACfX,GACAQ,EAAeI,gBAAiB,EAChCJ,EAAeK,MACXlD,EAAAA,cAAAA,EAAAA,SAAA,KACKA,EAAAA,aAAmBqC,EAAmC,CACnDc,WAAYb,EACZc,SAAUhB,EACVhB,gBAA2BM,IAAfN,GAAmCA,EAC/CiC,aAAcnB,MAM1BD,EAAOqB,OAAOb,EAAO,GAGzBI,EAAeK,MACXlD,EAAAA,cAACiB,EAAWf,OAAAC,OAAA,GACJ,CACAf,GAAAA,EACAmB,KAAAA,EACAW,MAAAA,EACAN,UAAW+B,EACXxB,QAAAA,EACA9B,UAAAA,EACA+B,gBAA2BM,IAAfN,GAAmCA,EAC/CC,SAAUc,EACVb,eAAAA,KAMTuB,KAUf,MAAMU,UAAuBvD,EAAAA,UAsFzBwD,YAAYC,GAAmC,IAAAC,EAC3CC,MAAMF,GAAMC,EAAAE,KArFT,KAAAC,4BAA2C,CAC9C,CACIzE,GAAI2C,EAAQ+B,UACZvD,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUC,eAC5B/C,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQmC,SACZ3D,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUG,cAC5BjD,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQqC,MACZ7D,KAAMgB,EAAU6C,MAChB1B,MAAOkB,KAAKH,MAAMO,UAAUK,kBAC5BnD,MAAO,GACPE,YAAY,EACZD,QAASmD,EAAAA,WAAWC,aAAaC,OACjC5B,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ0C,YACZlE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUU,aAC5BxD,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ4C,WACZpE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUY,gBAC5B1D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQ8C,SACZtE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUc,cAC5B5D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQgD,KACZxE,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUgB,iBAC5B9D,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQiB,QACZzC,KAAMgB,EAAUyB,QAChBN,MAAOkB,KAAKH,MAAMO,UAAUiB,oBAC5B/D,MAAO,GACPE,YAAY,EACZwB,YAAa,aAEjB,CACIxD,GAAI2C,EAAQmD,QACZ3E,KAAMgB,EAAUC,SAChBkB,MAAOkB,KAAKH,MAAMO,UAAUmB,aAC5BjE,MAAO,GACPE,YAAY,EACZwB,YAAa,cAIJ,KAAAwC,mBAAwDpF,EAAAA,YAExD,KAAAqF,gBAA0B,sBAEnC,KAAAC,cAAwB,EAgEzB,KAAAC,oBAAuBC,IAC1B5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,OAwEjC,KAAA0E,eAAkBJ,IAC/B,MAAMK,EAAUjC,KAAKkC,MAAMC,UAC3BF,EAAQG,SAAQC,IACRA,EAAK7G,KAAOoG,EAAMG,OAAOvG,KACzB6G,EAAK/E,MAAQsE,EAAMG,OAAOzE,UAKlC0C,KAAKsC,SAAS,CACVC,QAASvC,KAAKwC,eACdL,UAAWF,EACXQ,iBAAiB,KAUR,KAAAC,iBAAmB,CAACC,EAAiBC,KAElD,MAAMX,EAAUjC,KAAKkC,MAAMC,UACrBU,EAAcZ,EAAQa,MAAKT,GACtBA,EAAK1F,OAASgB,EAAUyB,UAI/ByD,IACAA,EAAYE,QAAUH,EAGtB5C,KAAKsC,SAAS,CACVC,QAASvC,KAAKwC,eACdL,UAAWF,EACXe,iBAAkBL,EAClBM,mBAAmB,MAKd,KAAAT,aAAe,KAC5B,MAAM,UAAEL,GAAcnC,KAAKkC,MAE3B,IAAK,MAAMgB,KAAgBf,EAAW,CAQlC,GAAIe,EAAa1F,WACb,GAAI0F,EAAavG,OAASgB,EAAUyB,SAChC,GAAIY,KAAKkC,MAAMc,iBACX,OAAO,OAER,QAA2BlF,IAAvBoF,EAAa5F,OAA8C,KAAvB4F,EAAa5F,MACxD,OAAO,EAGf,QAA6BQ,IAAzBoF,EAAa3F,SAA4E,OAAnD2F,EAAa5F,MAAM6F,MAAMD,EAAa3F,SAC5E,OAAO,EAIf,OAAO,GAGM,KAAA6F,UAAaxB,IAC1B,GAAI5B,KAAKkC,MAAMc,iBAMX,OALAhD,KAAKsC,SAAS,CACVW,mBAAmB,SAGvBrB,EAAMyB,iBAIV,MAAM,QAAEC,GAAYtD,KAAKH,MAGnB0D,EAAYvD,KAAKwD,SAASrF,EAAQ+B,WAClCuD,EAAWzD,KAAKwD,SAASrF,EAAQmC,UACjCoD,EAAc1D,KAAKwD,SAASrF,EAAQ0C,aACpC8C,EAAe3D,KAAKwD,SAASrF,EAAQqC,OACrCoD,EAAiB5D,KAAKwD,SAASrF,EAAQiB,SAAS,GAChDyE,EAAW7D,KAAKwD,SAASrF,EAAQ8C,UACjC6C,EAAa9D,KAAKwD,SAASrF,EAAQ4C,YACnCgD,EAAc/D,KAAKwD,SAASrF,EAAQgD,MACpC6C,EAAWhE,KAAKwD,SAASrF,EAAQmD,SAGnCqC,GAAgBA,EAAarG,OAASsG,GAAkBA,EAAeb,UACvEa,EAAeb,QAAQvC,MAAQmD,EAAarG,OAGhD,MAAM2G,EAAsC,CACxC/D,UAAWqD,GAAaA,EAAUjG,MAClCgD,SAAUmD,GAAYA,EAASnG,MAC/BuD,YAAa6C,GAAeA,EAAYpG,MACxC8B,QAASwE,GAAkBA,EAAeb,SAAWa,EAAeb,QACpE9B,SAAU4C,GAAYA,EAASvG,MAC/ByD,WAAY+C,GAAcA,EAAWxG,MACrC4G,YAAcH,GAAe7G,OAAOC,SAAS4G,EAAYzG,MAAO,KAAQ,EACxE6G,SAAUH,GAAYA,EAAS1G,QAInC8G,EAAAA,EAAAA,qBAAoB,CAAEC,cAAef,EAAQgB,eAAiBL,GAAYM,OAAM,KAC5EvE,KAAKsC,SAAS,CACVG,iBAAiB,EACjBF,SAAS,QAKJ,KAAAiC,UAAY,KAEzB,MAAMC,EAAYzE,KAAKkC,MAAMC,UAC7BsC,EAAUrC,SAAQ9C,IACdA,EAAMhC,MAAQ,MAIlB0C,KAAK0B,cAAe,EAEpB1B,KAAKsC,SAAS,CACVC,SAAS,EACTJ,UAAWsC,EACXzB,kBAAkB,EAClBC,mBAAmB,EACnBR,iBAAiB,KAIR,KAAAe,SAAW,SAAChI,GAA0C,IAA9BkJ,EAAAC,UAAAC,OAAA,QAAA9G,IAAA6G,UAAA,IAAAA,UAAA,GACrC,OAAID,EACO5E,EAAKoC,MAAMC,UAAUW,MAAKT,GACtBA,EAAK7G,KAAOA,GAAM6G,EAAKU,UAG/BjD,EAAKoC,MAAMC,UAAUW,MAAKT,GACtBA,EAAK7G,KAAOA,GAAqB,KAAf6G,EAAK/E,SAnRlC0C,KAAKkC,MAAQ,CACTK,SAAS,EACTJ,UAAWnC,KAAKH,MAAMsC,WAAanC,KAAK6E,kBACxC7B,kBAAkB,EAClBC,mBAAmB,EACnBR,iBAAiB,GAErBzC,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZC,oBAAiB,IAAAC,EACW,QAA/BA,EAAApF,KAAKwB,mBAAmB6D,eAAO,IAAAD,GAA/BA,EAAiCE,QAG9BC,sBAAsBC,EAAyCC,GAClE,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAE9D,GAAW7B,KAAKH,OAClB,UAAEsC,GAAcnC,KAAKkC,OACrB,UAAEzG,EAAS,QAAEqG,GAAYD,EAEzB+D,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbiG,eAAgB,CACZC,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,IAEhDuK,iBAAkB,CACdvK,UAAW,GAAGuE,KAAKyB,8BAEvBK,QACI1F,EAAAA,cAAC+D,EAAAA,GAAI7D,OAAAC,OAAA,CACDd,UAAW,GAAGuE,KAAKyB,4BACfK,EAAO,CACXmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAG1FqB,mBAAoBpG,KAAKqG,cACzBlE,UAAAA,IAGJ,OAAOnC,KAAKH,MAAMyG,WAAWV,GAWzBS,cACJ,MAAM,OAAExE,EAAM,UAAEzB,EAAS,MAAEmG,GAAUvG,KAAKH,OACpC,kBAAEoD,EAAiB,gBAAER,EAAe,QAAEF,EAAO,UAAEJ,GAAcnC,KAAKkC,OAClE,sBACFsE,EAAqB,iBACrBC,EAAgB,sBAChBC,EAAqB,iBACrBC,EAAgB,aAChBxH,EAAY,2BACZyH,GACAxG,EACE3B,EAAe8H,GAASA,EAAMM,aAAeN,EAAMM,YAAYjC,OAAS,GAAK2B,EAAMM,YAAY,SAAO/I,EACtGgJ,EACDjF,EAAOkF,kBAAoBlF,EAAOkF,iBAAiBC,SAAWnF,EAAOkF,iBAAiBC,QAAQC,iBAC/FC,EAAAA,EAAAA,IAAW,OAAQlH,KAAKH,MAAMyD,QAAQgB,eAEpC6C,EAAO,CACTC,YAAa,CACT3L,UAAW,GAAGuE,KAAKyB,0BAEvB4F,MAAOjJ,EACH+D,EACA,GAAGnC,KAAKyB,6BACRzB,KAAK0B,aACL1B,KAAKgC,eACLiB,EACAxE,EACAuB,KAAK0C,kBAET4E,QAAS,CACLlL,EAAAA,cAACd,EAAY,CACTiM,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAGuE,KAAKyB,iCACnB3F,KAAMgL,EACNnL,UAAW6K,EACX9K,KAAM+K,EACN5K,UAAW0G,EACXxG,QAASiE,KAAKoD,UACdxH,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACd,EAAY,CACTiM,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAW+K,EACXhL,KAAMiL,EACN5K,QAASiE,KAAKwE,UACd5I,iBAAkBoE,KAAKpE,oBAG/BuD,aAAc,CACVsD,GAAmBrG,EAAAA,cAACM,EAAW,CAAC6K,IAAI,QAAQ/L,GAAG,QAAQC,UAAWuE,KAAKyB,gBAAiB7E,QAASuC,IACjG8D,GACI7G,EAAAA,cAACM,EAAW,CAAC6K,IAAI,QAAQ/L,GAAG,QAAQC,UAAWuE,KAAKyB,gBAAiB7E,QAASgK,KAGtFY,WAAY3F,EAAO2F,YACfpL,EAAAA,cAACqL,EAAAA,GAAiB,CAAChM,UAAW,GAAGuE,KAAKyB,8BAA+B/F,KAAMmG,EAAO2F,cAQ1F,OAJIxH,KAAK0B,eACL1B,KAAK0B,cAAe,GAGjByF,EAmBHtC,kBACJ,MAAM6C,EAAgB1H,KAAKC,4BAE3B,OADAyH,EAAc,GAAGhK,eAAiBsC,KAAKwB,mBAChCkG,GAmIf,kGChgBA,MAAMC,EAAoDpM,IAA4D,IAA3D,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,EAAK,eAAED,GAAgB9D,EAE9G,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,IACJG,GAAkBP,GAClBO,GAAkBF,EACnBG,IAkCb,EA7B8DO,IAC1D,MAAM,eAAEiG,EAAc,iBAAEE,EAAgB,QAAElE,EAAO,mBAAEsE,GAAuBvG,GAEpE,YAAEuH,EAAW,QAAEE,EAAO,MAAED,EAAK,aAAElI,EAAY,WAAEqI,GAAepB,EAElE,OACIhK,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKuJ,GACR1J,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKyJ,GACLlE,EACD1F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6K,GACLC,GACGA,EAAM1I,KAAK0D,GACAjG,EAAAA,cAACuL,EAAkBrL,OAAAC,OAAA,CAACgL,IAAKlF,EAAK7G,IAAQ6G,MAEpDlD,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,KAE3CR,GACGA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,KAE3CP,6GC3BrB,MAAMQ,EAA0DnI,IAC5D,MAAM,QACFX,EAAO,MACPJ,EAAK,aACLK,EAAY,MACZG,GACAO,EACJ,OACIzD,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAeP2I,EAAcA,CAACxM,EAAmByM,EAAsBC,EAAiCC,EAA8BC,EACzHC,IAEIlM,EAAAA,cAACmM,EAAAA,MAAK,CACF9M,UAAU,2BACV+M,cAAe/M,EAEfgN,WAAS,EACTC,MAAM,EACNC,gBAAgB,aAChBC,OAAQV,EACRW,OAAQP,GAERlM,EAAAA,cAAC0M,EAAAA,YAAW,CAACD,OAAQP,GAChBH,GAEL/L,EAAAA,cAAC2M,EAAAA,UAAS,KACLX,GAELhM,EAAAA,cAAC4M,EAAAA,YAAW,KACPX,IAWXY,EAAuDpJ,IAEzD,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,OAAE/K,EAAM,QAAEiJ,EAAO,aAAEnI,EAAY,OAAE0J,GAAWhJ,EAEzGwJ,EACFjN,EAAAA,cAAAA,EAAAA,SAAA,KACKgN,EACDhN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6K,GACL/I,GAAUA,EAAOM,KAAK0D,GAGfjG,EAAAA,cAAC4L,EAAyB1L,OAAAC,OAAA,GAAK8F,EAAI,CAAEkF,IAAKlF,EAAKkF,SAGtDpI,MAAAA,OAAY,EAAZA,EAAcR,KAAI,CAACmJ,EAAwBjJ,IAEpCzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YACtBxB,OASnByB,EAAcjC,GAAWA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAE7DzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YACtBvB,KAKb,OAAOE,EAAYiB,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IAkB7EW,EAA0D3J,IAE5D,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,QAAE9B,EAAO,aAAEnI,EAAY,UAAEiB,EAAS,OAAEyI,GAAWhJ,EAClH,IAAIwJ,EAAY,KAChB,MAAMI,EAAe5J,EAAM4J,aAE3B,GAAKA,EAEE,CAEH,MAAM,UAAEvJ,EAAS,SAAEI,GAAamJ,EAC1BC,EAAe,GAAGxJ,KAAuBI,IAE/C+I,EACIjN,EAAAA,cAAAA,EAAAA,SAAA,KACMgN,EACFhN,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,kBACrCW,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,4BACpCiO,GAEHpN,OAAOsN,KAAKH,GAAc9K,KAAI,CAAC+G,EAAM7G,KACnC,GAAI6G,IAASvH,EAAAA,QAAQ+B,WAAawF,IAASvH,EAAAA,QAAQmC,SAC/C,OAAO,KAEX,MAAMxB,EAAQsB,EAAU,QAAQsF,iBAAgCA,EAChE,OAAQtJ,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,sBAAuB8L,IAAK1I,EAAMyK,YAC9ExK,EACA,KACA2K,EAAa/D,cArBlC2D,EAAYlK,EA8BhB,MAAMoK,EAAcjC,GAAWA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAE7DzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YACtBvB,KAKb,OAAOE,EAAYiB,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IA4EnF,EA/CsEhJ,IAElE,MAAM,qBAAEgK,EAAoB,gBAAEC,EAAe,QAAEhI,EAAO,YAAEiI,EAAW,cAAEC,EAAa,sBAAEC,EAAqB,KAAE9C,EAAI,SAAE+C,EAAQ,YACrH5B,EAAW,8BAAE6B,EAA6B,sBAAEC,GAA0BvK,EAEpEwK,EAEEjO,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,4CACXuO,EACAG,GAIb,OAAIJ,EAEI3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACD1F,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,qDACZW,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,6DACXoE,EAAMO,UAAUkK,qCAErBlO,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,0DACXoE,EAAMO,UAAUmK,kCAEpBF,GAEJD,EACAL,IAOb3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACAuI,EACAD,EACAH,GAEH9C,GA7DEqD,EAAC7N,EAAc8N,EAA2BnC,KACtD,OAAQ3L,GACJ,IAAK,MACL,IAAK,OACD,OAAOP,EAAAA,cAAC6M,EAAyB3M,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KAC7D,IAAK,OACL,IAAK,SACD,OAAOlM,EAAAA,cAACoN,EAA4BlN,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KAChE,QACI,OAAO,OAoDGkC,CAAQN,EAAU/C,EAAMmB,6FClO9C,MAAMoC,EAA2BC,IAA8D,IAAAC,EAC3F,OACIxO,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKoO,EAAkBE,uBACiB,QADID,EAC5CD,EAAkBG,8BAAsB,IAAAF,OAAA,EAAxCA,EAA0CjM,KAAK0D,GAExCjG,EAAAA,cAAAA,EAAAA,SAAA,KACKiG,EAAKP,QACN1F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8F,EAAK0I,gCACV1I,EAAK3G,KACNU,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8F,EAAK2I,4BACV3I,EAAK4I,aAyEtC,EA1D4DpL,IACxD,MAAM,sBACFqL,EAAqB,eACrBC,EAAc,iBACdC,EAAgB,MAChBC,EAAK,KACL3P,EAAI,MACJuP,EAAK,MACLK,EAAK,sBACLC,EAAqB,UACrBC,EAAS,eACTC,EAAc,kBACdd,GACA9K,EAIE6L,EADoBJ,EAAMzL,MAAM8L,IACA,GAAGP,EAAiB3P,sBAAwB,GAAG2P,EAAiB3P,yBAEtG,OAAI+P,EAEIpP,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK2O,GACR9O,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GACGgP,EAAqB,CACzB9O,KAAM+O,EACN/P,UAAW8P,EAAwBA,EAAsB9P,UAAY,GAAE,aAC3DgQ,IAEZrP,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK4O,GACLG,IAGTlP,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6O,GACLC,EACA3P,EACAuP,EACAN,GAAqBD,EAAwBC,KAM1DvO,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK2O,GACR9O,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK4O,GACLG,GAELlP,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAWiQ,GAEZL,EACA3P,EACAuP,EACAN,GAAqBD,EAAwBC,0HC7ExD,MAAOiB,UAAuBxP,EAAAA,cACzBuJ,SAEH,MAAM,WAAEkG,GAAe7L,KAAKH,MAC5B,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsP,GACP7L,KAAK8L,eAAe9L,KAAKH,QAI9BkM,mBAAmB1J,EAA2B2J,GAClD,IAAK3J,IAASA,EAAKsJ,KAA2B,IAApBtJ,EAAKsJ,IAAI/G,OAC/B,OAAO,KAUX,OACIxI,EAAAA,cAAC6P,EAAAA,GAAc3P,OAAAC,OAAA,GACP8F,EAAI,CACR8D,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCmH,aAAclM,KAAKH,MAAMyD,QAAQyB,QAAQmH,aACzCC,cAAe9J,EAAK8J,eAZ0B,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAQNC,oBAAoB,UAAS,cAChBX,EACb/F,UAAW,CAAEsB,IAAKvH,KAAKH,MAAMgC,OAAOyJ,OAAS,GAAInF,eAAgBnG,KAAKH,MAAMyD,QAAQyB,SACpF6H,uBAAqB,KAIzBd,eAAejM,GAEnB,MAAM,QAAEiC,EAAO,iBAAE+K,EAAgB,KAAEC,EAAI,SAAEC,EAAQ,MAAEzB,EAAK,KAAE5P,EAAI,aAAEsR,EAAY,OAAEnL,GAAWhC,EAIzF,OAHIgC,EAAOyJ,OAASzJ,EAAOoL,aACvBpL,EAAOyJ,MAAMK,IAAM9J,EAAOoL,YAE1BnL,EACQ1F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsQ,GACb,IACDzQ,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,IAAIlO,UAAU,iCAAgC,cAAa,SACpEqG,EACA,KAEEgL,GAAQxB,EAEXlP,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuQ,GACLC,EACA/M,KAAK+L,mBAAmBlK,EAAOyJ,QAGjCwB,EACCE,EAGR5Q,EAAAA,cAAAA,EAAAA,SAAA,KACKV,EACA4P,IAMjB,6zBChDA,IAAM4B,EAAN,cAA4B9Q,EAAAA,UAKxBwD,YAAYC,GACRE,MAAMF,GALO,KAAA4B,gBAA0B,oBAoDpC,KAAAE,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOsL,mBAAqBvL,EAAMG,OAAOzE,MA9CxH0C,KAAKoN,UAAYpN,KAAKoN,UAAUC,KAAKrN,MACrCA,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZK,sBAAsBC,GACzB,OAAIxF,KAAKH,MAAM6F,OAASF,EAAUE,KAM/BC,SACH,MAAM,MAAEY,EAAK,WAAED,EAAU,OAAEzE,EAAM,KAAE6D,GAAS1F,KAAKH,MAC3CyN,EAA+B5H,GAAQA,EAAK6H,wBAA0B7H,EAAK6H,uBAAuBC,OAClGC,EACFH,QAA+ExP,IAA/CwP,EAA6BI,cACvDhI,GAAQ7D,EAAO8L,wBACfL,GAAgCA,EAA6BI,cAsBvE,OAAOpH,EArBQT,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACb+N,uBAAwB,CACpB7H,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBI,EAAOpG,YAEvDoS,qBAAsB,CAClBpS,UAAW,6BAEfqS,OAAQ,CACJnE,IAAKoE,EAAAA,iBACLtS,UAAW,GAAGuE,KAAKyB,0BACnBuM,iBAAmBnM,EAAOsL,oBAAsBtL,EAAOsL,oBAAuB,GAC9Ec,cAAe,CAAErF,OAAQ6E,GACzBS,SAAUlO,KAAKoN,UACfe,aAAcnO,KAAK2B,oBACnBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,kBAE3BwS,eAAgB7H,KAOhB6G,UAAUlL,GACd,IAAKA,EAAM0G,QAAqC,sBAA3B5I,KAAKH,MAAMwO,iBAAyD,CACrF,MAAMC,EAAiB,CAAEZ,eAAe,GACxC1N,KAAKH,MAAMyD,QAAQgB,cAAciK,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,MA1DzFpB,GAAauB,EAAAA,EAAAA,IAAA,CADlBC,EAAAA,IACKxB,GA8DN,kGCtFA,MAgBMyB,EAA+BtH,GAE7BjL,EAAAA,cAAAA,EAAAA,SAAA,KACKiL,GAASA,EAAMzC,OAAS,EACnByC,EAAM1I,KAAI,CAAC0D,EAAuBxD,IACvBzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQwD,KAExC,MAIlB,EA3B6DxC,IACzD,MAAM,OAAEiO,EAAM,eAAEM,EAAc,uBAAER,EAAsB,qBAAEC,GAAyBhO,EACjF,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKqR,GACRxR,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuR,GACN1R,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsR,GACLO,GACGA,EAAeQ,sBACfR,EAAeQ,qBAAqBhK,QACpC+J,EAA4BP,EAAeQ,wvBCwCnE,IAAMC,EAAN,cAAwBzS,EAAAA,cASpBwD,YAAYC,GACRE,MAAMF,GALO,KAAAiP,mBAAyD1S,EAAAA,YAEzD,KAAA2S,qBAA2D3S,EAAAA,YAuDrE,KAAAuF,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAnDnH0C,KAAKgP,aAAehP,KAAKgP,aAAa3B,KAAKrN,MAC3CA,KAAKiP,eAAiBjP,KAAKiP,eAAe5B,KAAKrN,MAC/CA,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAEflF,KAAKhE,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkB,IAChEoE,KAAKkC,MAAQ,CAAEgN,YAAY,GAGxBvJ,SACH,MAAM,MAAEY,GAAUvG,KAAKH,OACjB,QAAEiC,EAAO,UAAErG,GAAcuE,KAAKH,MAAMgC,OACpCsN,EAAmBrN,GAAWA,EAAQpG,MACxCU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,uCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAIpFqK,EAAkBvJ,EAAAA,EAAA,GACjB7F,KAAKH,OAAK,IACbwP,mBAAoB,CAChBtJ,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,eAAgBrB,IAE1C6T,cAAe,CAAE7T,UAAW,+BAC5B8T,eAAgB,CAAE9T,UAAW,yCAC7BqG,QAASqN,EACTtN,OAAQ7B,KAAKH,OAASG,KAAKH,MAAMgC,OACjC2N,0BAA2B,CACvB7F,IAAK,MACLlO,UAAW,uDAEfgU,iBAAkBzP,KAAK0P,yBACvBC,uBAAwB,CACpBhG,IAAK,MACLlO,UAAW,6BAEfmU,eACIrJ,GACAA,EAAMqJ,gBACNrJ,EAAMqJ,eAAehL,OAAS,GAC9B2B,EAAMqJ,eAAejR,KAAI,CAAC0D,EAAuBxD,IAAkBmB,KAAK6P,kBAAkBxN,EAAMxD,OAExG,OAAOmB,KAAKH,MAAMyG,WAAW8I,GAKzBM,yBACJ,MAAM,OAAE7N,EAAM,UAAEzB,GAAcJ,KAAKH,OAC7B,QAAEiC,GAAYD,EACpB7B,KAAKhE,QAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkBC,UACrD,MAAMC,GAAqB/T,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SAC/EgE,KAAKhE,QAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkBG,YACrD,MAAMC,GAAuBjU,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SACjF,OAAK6F,EAAOwO,cAKRjU,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,SAAAE,OAAAC,OAAA,CACIV,SAAUmE,KAAKkC,MAAMgN,WACrBzT,UAAU,yBAAwB,aACtB,GAAG2E,EAAUkQ,iBAAiBxO,MAAAA,GAAAA,EAASpG,KAAOoG,EAAQpG,KAAO,KACzEK,QAASiE,KAAKgP,aACdjR,IAAKiC,KAAK8O,oBACNoB,GAEH9P,EAAUkQ,eACN,IAERlQ,EAAUmQ,mBAAkB,IAE7BnU,EAAAA,cAAA,SAAAE,OAAAC,OAAA,CACId,UAAU,2BAA0B,aACxB,GAAG2E,EAAUoQ,mBAAmB1O,MAAAA,GAAAA,EAASpG,KAAOoG,EAAQpG,KAAO,KAC3EK,QAASiE,KAAKiP,eACdlR,IAAKiC,KAAK+O,sBACNqB,EAAoB,CACxBvU,UAAWmE,KAAKkC,MAAMgN,aAErB9O,EAAUoQ,mBA1BnBxQ,KAAKH,MAAMyD,QAAQ4B,UAAU4C,MAAM,yDAC5B,MA+BPkH,eACJ,MAAMV,EAAiB,CAAEZ,eAAe,GACxC1N,KAAKH,MAAMyD,QAAQgB,cAAciK,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,GAC/EA,EAAeZ,gBACf1N,KAAKsC,SAAS,CACV4M,YAAY,IAEhBuB,YAAW,KAAK,IAAAC,EACqB,QAAjCA,EAAA1Q,KAAK+O,qBAAqB1J,eAAO,IAAAqL,GAAjCA,EAAmCpL,UACpC,KAIH2J,iBACJ,MAAMX,EAAiB,CAAEZ,eAAe,GACxC1N,KAAKH,MAAMyD,QAAQgB,cAAciK,QAAOC,EAAAA,EAAAA,IAA0BF,GAAiBA,GAC9EA,EAAeZ,gBAChB1N,KAAKsC,SAAS,CACV4M,YAAY,IAEhBuB,YAAW,KAAK,IAAAE,EACmB,QAA/BA,EAAA3Q,KAAK8O,mBAAmBzJ,eAAO,IAAAsL,GAA/BA,EAAiCrL,UAClC,KAIHuK,kBAAkBxN,EAAuBxD,GAC7C,OACIzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAChBzC,EAAAA,aAAmBiG,EAA4B,CAAEgM,iBAAkBrO,KAAKH,MAAMgC,OAAOwM,sBArIhGQ,GAASJ,EAAAA,EAAAA,IAAA,CADdC,EAAAA,IACKG,GA2IN,iGC5LA,MAiBA,EAjBqDhP,IACjD,MAAM,QAAEiC,EAAO,mBAAEuN,EAAkB,eAAEO,GAAmB/P,EACxD,OAAKA,EAAMiC,SAAYjC,EAAM4P,kBAAqB5P,EAAM+P,eAKpDxT,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK8S,GACRjT,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMyP,eACZlT,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM0P,gBAAiBzN,GAChCjC,EAAM4P,kBAAoBrT,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM2P,2BAA4B3P,EAAM4P,mBAEjFrT,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM8P,wBAAyBC,KAT7C/P,EAAMyD,QAAQ4B,UAAU4C,MAAM,kDACvB,ssBCWf,MAAM8I,UAAmBxU,EAAAA,UAAzBwD,cAAA,oBACqB,KAAA6B,gBAA0B,iBA4CpC,KAAAE,oBAAuBC,IACtB5B,KAAKH,MAAMgC,OAAOC,UAClB9B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,QA5C/C6H,oBAEH,MAAM,KAAE0L,EAAI,SAAEC,GAAaC,QAAU,GAEjCF,GAAQC,IACRD,EAAKG,qBAAqBF,EAASG,qBACnCH,EAASI,cAIV3L,sBAAsBC,GACzB,OAAIA,EAAU3D,OAAOC,UAAY9B,KAAKH,MAAMgC,OAAOC,QAMhD6D,SACH,MAAM,UAAElK,EAAS,QAAEqG,GAAY9B,KAAKH,MAAMgC,OAEpC+D,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbsR,WAAY,CACRpL,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,IAEhD2V,YAAa,CACT3V,UAAW,GAAGuE,KAAKyB,8BAEvB4P,eAAgBjV,EAAAA,cAAA,OAAKZ,GAAG,QACxBsG,QAASA,GACL1F,EAAAA,cAAC6P,EAAAA,GAAa3P,OAAAC,OAAA,CACVd,UAAW,GAAGuE,KAAKyB,4BACfK,EAAO,CACXmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,cAK9F,OAAO/E,KAAKH,MAAMyG,WAAWV,IAUrC,kGCnEA,QAAgB/F,IACZ,MAAM,WAAEsR,EAAU,YAAEC,EAAW,eAAEC,EAAc,QAAEvP,GAAYjC,EAE7D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK4U,GACR/U,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6U,GACLtP,EACAuP,wuBCWjB,MAAMC,UAA2BlV,EAAAA,cAG7BwD,YAAYC,GACRE,MAAMF,GAiDH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOoJ,OAASjL,KAAKH,MAAMgC,OAAOoJ,MAAMuG,KACnDxR,KAAKH,MAAMgC,OAAOoJ,MAAMuG,GAAWzE,SAAWnL,EAAMG,OAAOzE,QApD/D0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SACH,MAAM,OAAE9D,EAAM,UAAEzB,EAAS,KAAEsF,GAAS1F,KAAKH,OACnC,UAAEpE,EAAS,QAAEqG,EAAO,MAAEmJ,GAAUpJ,GAChC,8CAAE4P,EAA6C,kDAAEC,GAAsDtR,GACvG,QAAE2C,GAAY2C,EACdiM,EAAgB5O,GAAWA,EAAQyK,QAAUzK,EAAQyK,OAAO5I,QAAW,EACvEgN,EACe,IAAjBD,EAAqBF,EAAgDC,EACnEG,GAAcC,EAAAA,EAAAA,QAAOF,EAA+BD,GAEpD/L,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACA6V,mBAAoB,CAChBvL,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,0BAA2B+E,EAAOpG,YAE5DqG,QAASA,GAAWA,EAAQpG,MACxBU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,mCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC2V,EAAAA,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAazV,EAAAA,cAAC4V,EAAAA,EAAoB,CAACH,YAAaA,MAGpD,OAAO7R,KAAKH,MAAMyG,WAAWV,IAYrC,uGChFA,MAYA,EAZuE/F,IACnE,MAAM,mBAAEyR,EAAkB,QAAExP,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAE5D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK+U,GACPxP,EACA+P,EACA5G,oECLb,MAIA,EAJiF1P,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OAC7Fa,EAAAA,cAAA,KAAGX,UAAU,wCAAwCoW,oFCSzD,MAeMI,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,gCACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,GAGX,EAvCoE5W,IAA8D,IAA7D,MAAE0P,EAAK,iBAAErP,EAAgB,eAAEuK,EAAc,aAAEgI,GAAc5S,EAC1H,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAE/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,kCACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,mJCrBT,MAAMqM,EAA0EjX,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OACnGa,EAAAA,cAAA,KAAGX,UAAU,wCAAwCoW,ICwBnDI,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,gCACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,GAGX,EAtCoE5W,IAA8D,IAA7D,MAAE0P,EAAK,iBAAErP,EAAgB,eAAEuK,EAAc,aAAEgI,GAAc5S,EAC1H,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,kCACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,4kBCHhB,MAAMsM,UAA2BrW,EAAAA,cAG7BwD,YAAYC,GACRE,MAAMF,GA6DH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOoJ,OAASjL,KAAKH,MAAMgC,OAAOoJ,MAAMuG,KACnDxR,KAAKH,MAAMgC,OAAOoJ,MAAMuG,GAAWzE,SAAWnL,EAAMG,OAAOzE,QAhE/D0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SAAM,IAAA+M,EACT,MAAM,OACF7Q,EAAM,KACN6D,EAAI,UACJtF,EACAkD,SACIqP,kBAAkB,eACdC,EAAc,aAGdC,KAGR7S,KAAKH,OACH,UAAEpE,EAAS,QAAEqG,EAAO,MAAEmJ,GAAUpJ,GAChC,8BAAEiR,GAAkC1S,EAGpC2S,EAAyCH,IADM,QAA3BF,EAAAhN,EAAKsN,gBAAgBxF,cAAM,IAAAkF,OAAA,EAA3BA,EAA6BO,qBAAsB,GACGC,QAAQ,GAAIL,GAEtFhB,EAAckB,IAAsBjB,EAAAA,EAAAA,QAAOgB,EAA+BC,GAE1EnN,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACAgX,mBAAoB,CAChB1M,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,0BAA2B+E,EAAOpG,YAE5DqG,QAASA,GAAWA,EAAQpG,MACxBU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,mCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC2V,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAaA,GAAezV,EAAAA,cAACoW,EAA6B,CAACX,YAAaA,MAG5E,OAAO7R,KAAKH,MAAMyG,WAAWV,IAYrC,wGC5FA,QAAgB/F,IACZ,MAAM,mBAAE4S,EAAkB,QAAE3Q,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAE5D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKkW,GACP3Q,EACA+P,EACA5G,mJCWb,MAaMgH,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,gCACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,GAGX,EArCoE5W,IAA8D,IAA7D,MAAE0P,EAAK,iBAAErP,EAAgB,aAAEuS,EAAY,eAAEhI,GAAgB5K,EAC1H,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,kCACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,4kBCRhB,MAAMgN,UAA2B/W,EAAAA,cAG7BwD,YAAYC,GACRE,MAAMF,GAiEH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOuR,gBAAkBpT,KAAKH,MAAMgC,OAAOwR,eACtDrT,KAAKH,MAAMgC,OAAOwR,aAAezR,EAAMG,OAAOzE,QApElD0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SACH,MAAM,OAAE9D,EAAM,KAAE6D,EAAI,UAAEtF,EAAS,QAAEkD,GAAYtD,KAAKH,OAC5C,UAAEpE,EAAS,QAAEqG,EAAO,eAAEsR,EAAc,oBAAEE,EAAmB,aAAED,EAAY,kBAAEE,GAAsB1R,GAC/F,sBAAE2R,EAAqB,4BAAEC,GAAgCrT,GACzD,YAAEsT,GAAgBhO,EAExB,IAAImM,EAAc2B,EACdG,EAAM1H,EAAAA,GAAoB,cAAe3I,EAAQgB,gBAAkB,GACvE,MAAMxI,EAAO,CAAEiR,SAAUqG,EAAgBpM,QAAS,CAAEC,eAAgB0M,GAAOhY,UAAW2X,GAEtF,GAAII,GAAeA,EAAYlG,QAAUkG,EAAYlG,OAAOoG,WAAY,CACpE,MAAMC,EAAmB,EACzB,IAAIC,EAAS,EAETJ,EAAYlG,OAAOuG,cAAgBL,EAAYlG,OAAOuG,aAAanP,OAAS,GAC5E8O,EAAYlG,OAAOuG,aAAa3R,SAAS4R,IACrCF,GAAUE,EAAYC,gBAG9BnY,EAAKH,UAAY4X,EACjBzX,EAAKiR,SAAWsG,EAChBM,EAAM1H,EAAAA,GAAoB,UAAW3I,EAAQgB,gBAAkB,GAC/DxI,EAAKkL,QAAQC,eAAiB0M,EAC9B9B,GAAcC,EAAAA,EAAAA,QAAO2B,EAA6BK,EAAOZ,QAAQW,IAGrE,MAAMjO,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACA0X,mBAAoB,CAChBpN,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,0BAA2B+E,EAAOpG,YAE5DqG,QAASA,GACL1F,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,mCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MACI7O,EAAAA,cAAC2V,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAO,CAACnP,GACRqS,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAazV,EAAAA,cAAC4V,EAAAA,EAAoB,CAACH,YAAaA,MAGpD,OAAO7R,KAAKH,MAAMyG,WAAWV,IAYrC,uGCjGA,MAYA,EAZuE/F,IACnE,MAAM,mBAAEsT,EAAkB,QAAErR,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAE5D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK4W,GACPrR,EACA+P,EACA5G,oECLb,MAIA,EAJiF1P,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OAC7Fa,EAAAA,cAAA,KAAGX,UAAU,wCAAwCoW,wKCFlD,MAAMqC,EAAwF3Y,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OACjHa,EAAAA,cAAA,KAAGX,UAAU,gDAAgDoW,ICUpDsC,EAA4E5Y,IAKpF,IALqF,MACtF0P,EAAK,aACLkD,EAAY,iBACZvS,EAAgB,eAChBuK,GACH5K,EACG,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,0CACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,OAKV8L,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,wCACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,wkBCnCJ,MAAMiC,UAAkChY,EAAAA,cAG3CwD,YAAYC,GACRE,MAAMF,GA0DH,KAAA8B,oBAAuBC,IAC1B5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,OAG3C,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOoJ,OAASjL,KAAKH,MAAMgC,OAAOoJ,MAAMuG,KACnDxR,KAAKH,MAAMgC,OAAOoJ,MAAMuG,GAAWzE,SAAWnL,EAAMG,OAAOzE,QA/D/D0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SAAM,IAAA0O,EAAAC,EACT,MAAM,OAAEzS,EAAM,UAAEzB,EAAS,KAAEsF,GAAS1F,KAAKH,MACnC0U,EAAoE,QAAtCF,EAAGrU,KAAKH,MAAM6F,KAAK8O,aAAahH,cAAM,IAAA6G,OAAA,EAAnCA,EAAqCvR,MACxE0R,GAAsC,sDAAtBA,EAAaC,OAEjC,KACKzU,KAAKH,MAAMyD,QAAQyB,QAAQ2P,OAAOC,UACjCJ,MAAAA,GAAAA,EAAgCK,WAAwD,QAA3CN,EAACtU,KAAKH,MAAM6F,KAAKmP,oBAAoBrH,cAAM,IAAA8G,GAA1CA,EAA4CQ,OAE5F,OAAO1Y,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAM,UAAEX,EAAS,QAAEqG,EAAO,MAAEmJ,GAAUpJ,GAChC,qCAAEkT,GAAyC3U,EAC3C4U,EAAiBtP,EAAKsP,eAEtBC,IAAuBD,MAAAA,OAAc,EAAdA,EAAgBxH,SAAU,IAAI5I,OACrDiN,GAAcC,EAAAA,EAAAA,QAAOiD,EAAsCE,GAE3DrP,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACA2Y,0BAA2B,CACvBrO,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,kCAAmC+E,EAAOpG,YAEpEqG,QAASA,GAAWA,EAAQpG,MACxBU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,2CACVkO,IAAK7H,EAAQ6H,IACbjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC+X,EAA8B7X,OAAAC,OAAA,GACvB,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAazV,EAAAA,cAAC8X,EAAoC,CAACrC,YAAaA,MAGpE,OAAO7R,KAAKH,MAAMyG,WAAWV,IAcrC,uGC1FA,MAYA,EAZqF/F,IACjF,MAAM,0BAAEuU,EAAyB,QAAEtS,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAEnE,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK6X,GACPtS,EACA+P,EACA5G,myBCoDb,IAAMiK,EAAN,cAAiC9Y,EAAAA,UAkB7BwD,YAAYC,GACRE,MAAMF,GAlBO,KAAA4B,gBAA0B,0BAkGpC,KAAAE,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAA6X,gBAAmBvT,IACtB,MAAMpG,EAAKoG,EAAMG,OAAOvG,GAClB8B,EAAQsE,EAAMG,OAAOzE,MAE3B,OAAQ9B,EAAG4Z,eACP,IAAK,YACDpV,KAAKqV,UAAY/X,EACjB,MAEJ,IAAK,UACD0C,KAAKsV,QAAUhY,EACf,MAEJ,IAAK,QACD0C,KAAKuV,WAAajY,IAQvB,KAAAkY,QAAU,KACbxV,KAAKyV,mBACLzV,KAAK0V,sBAGL1V,KAAK2V,oBAAsBC,aAAY,KACnC5V,KAAK6V,gCACN,KACHpF,YAAW,KACPqF,cAAc9V,KAAK2V,uBACpB,MAIU,KAAAE,4BAA8B,KAEvC9E,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzE+E,cAAc9V,KAAK2V,qBACnB3V,KAAK+V,eAAgB,IAIZ,KAAAN,iBAAmB,KAChC,MAAM,UAAErV,GAAcJ,KAAKH,MACrBmW,EAA2B5V,EAAU4V,0BAA4B,sCAGnEjF,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEpS,KAClCsX,IACG,MAAM3Y,EAAQ2Y,EAAIC,IAAMlW,KAAKmW,YAAYF,EAAIC,KAAO,GACpD,OAAQD,EAAIG,GAAGhB,eACX,IAAK,YACDpV,KAAKqV,UAAY/X,EACjB,MAEJ,IAAK,UACD0C,KAAKsV,QAAUhY,EACf,MAEJ,IAAK,QACD0C,KAAKqW,MAAQ/Y,EACb0C,KAAKuV,WAAaU,EAAIK,IACtBL,EAAIM,SAAWP,OAiBtB,KAAAN,oBAAsB,KACnC,MAAM,UAAEtV,GAAcJ,KAAKH,MAG3B,GAAIkR,QAAUA,OAAgB,QAAG,CAC7B,MAAMnU,EAAU,CACZ4Z,eAAgBpW,EAAUqW,0BAC1BC,gBAAiBtW,EAAUuW,gBAI/Bra,OAAOC,OAAOwU,OAAgB,QAAGnU,KA/KrCoD,KAAKqV,UAAY,GACjBrV,KAAKsV,QAAU,GACftV,KAAKqW,MAAQ,GACbrW,KAAKuV,WAAa7U,EAAAA,WAAWC,aAAaC,OAC1CZ,KAAK+V,eAAgB,EACrB/V,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZC,oBACHnF,KAAKwV,UAIFoB,qBAEC5W,KAAK+V,eAAiBhF,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxL,sBACHC,EACAC,GAEA,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAE9D,EAAM,UAAEzB,GAAcJ,KAAKH,MAE7B+F,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbgX,UAAW,CACPC,eAAgB9W,KAAK+V,eAEzBgB,mBAAoB,CAChBhR,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBI,EAAOpG,YAEvDub,QAAS,CACLC,MAAO,CACHtN,IAAKpB,EAAAA,MACLK,QAAQ,GAEZS,UAAW,CACPM,IAAKZ,EAAAA,WAETmO,KAAM9a,EAAAA,cAAC+a,EAAAA,EAAsC,CAAC1b,UAAWuE,KAAKyB,kBAC9D7E,QAASR,EAAAA,cAACgb,EAAAA,EAAyC,CAAC3b,UAAWuE,KAAKyB,gBAAiB7E,QAASwD,EAAUuW,kBAE5GU,mBAAoB,CAChB7b,GAAI,MACJ8b,MAAO,CAAEC,QAAS,SAEtBnG,YAAa,CACT5V,GAAIwE,KAAK+V,cAAgB,MAAQ,KACjCta,UAAW,GAAGuE,KAAKyB,8BAEvBK,QAASD,EAAOC,SAAWD,EAAOC,QAAQpG,MACtCU,EAAAA,cAAC6P,EAAAA,GAAa3P,OAAAC,OAAA,CACVd,UAAW,GAAGuE,KAAKyB,4BACfI,EAAOC,QAAO,CAClBmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAG1FyS,+BAAgCxX,KAAKyX,wBAGzC,OAAOzX,KAAKH,MAAMyG,WAAWV,GAiFzBuQ,YAAYuB,GAChB,MAAMC,EAAIC,SAASC,cAAc,OAGjC,OADAF,EAAEG,UAAYJ,EACiB,IAAxBC,EAAEI,WAAWnT,OAAe,GAAK+S,EAAEI,WAAW,GAAGC,WAAa,GAkBjEP,sBACJ,MAAM,OAAE5V,EAAM,UAAEzB,GAAcJ,KAAKH,MAC7BoY,EAAe,CACjBA,aAAc,CACVzc,GAAI,gBACJC,UAAW,GAAGuE,KAAKyB,uCAEvB4F,MAAO,CACHrH,KAAKkY,aAAa,YAAa,OAAQlY,KAAKqV,UAAWjV,EAAU+X,mBAAoB/X,EAAUgY,oBAC/FpY,KAAKkY,aAAa,UAAW,OAAQlY,KAAKsV,QAASlV,EAAUiY,kBAAmBjY,EAAUkY,oBAE9FnZ,aAAc,CACV/C,EAAAA,cAACmc,EAAAA,EAAgC,CAC7BhR,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUoY,mCAEvBpc,EAAAA,cAACmc,EAAAA,EAAgC,CAC7BhR,IAAI,iBACJ/L,GAAG,iBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUqY,sBAEvBrc,EAAAA,cAACmc,EAAAA,EAAgC,CAC7BhR,IAAI,+BACJ/L,GAAG,+BACHC,UAAWuE,KAAKyB,mBAGxBiX,eAAgB,CACZjd,UAAW,GAAGuE,KAAKyB,4BAEvB6F,QAAS,CACLlL,EAAAA,cAACuc,EAAAA,EAAiC,CAC9BpR,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAGuE,KAAKyB,+BACnB9F,UAAWyE,EAAUwY,oBACrBld,KAAM0E,EAAUyY,eAChBjd,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACuc,EAAAA,EAAiC,CAC9BpR,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAWyE,EAAUuG,iBACrBjL,KAAM0E,EAAUuG,iBAChB/K,iBAAkBoE,KAAKpE,oBAG/Bkd,yBAA0B,CACtBrd,UAAW,GAAGuE,KAAKyB,oDAEvBsX,gCAAiC,CAC7Bvd,GAAI,kBACJC,UAAW,GAAGuE,KAAKyB,6CAU3B,OANII,EAAOmX,WAA4B,KAAfhZ,KAAKqW,OACzB4B,EAAa5Q,MAAMkL,KACfvS,KAAKkY,aAAa,QAAS,QAASlY,KAAKqW,MAAOjW,EAAU6Y,2BAAuBnb,EAAWkC,KAAKuV,aAIlG0C,EAGHC,aACJ1c,EACAmB,EACAW,EACA4b,EACAlc,EACAO,GAEA,MAAM9B,EAAY,GAAGuE,KAAKyB,gCAC1B,MAAO,CACHvC,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAW,GAAGA,KAAaD,IAAM,aAAc,cAEzE+L,IAAK/L,EACLsD,MACI1C,EAAAA,cAAC+c,EAAAA,EAAgC7c,OAAAC,OAAA,GACzB,CACAf,GAAAA,EACAyC,MAAOzC,EACPC,UAAAA,EACAC,KAAMwd,KAIlB/Z,aACI/C,EAAAA,cAACmc,EAAAA,EAAgCjc,OAAAC,OAAA,GACzB,CACAd,UAAWuE,KAAKyB,gBAChB9E,KAAM,UAIlB2C,MACIlD,EAAAA,cAACgd,EAAAA,EAAgC9c,OAAAC,OAAA,GACzB,CACAf,GAAAA,EACAmB,KAAAA,EACAW,MAAAA,EACAC,QAAAA,EACA9B,UAAAA,EACAuB,UAAAA,EACAS,SAAUuC,KAAKmV,uBAhTvB1G,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,iCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,+BAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,6BAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,kCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,oCAbTnE,GAAkBzG,EAAAA,EAAAA,IAAA,CADvBC,EAAAA,IACKwG,GA6TN,iGCnXA,MAAMoE,EAA4D/d,IAA4C,IAA3C,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAO/D,EACtG,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAuCPia,EAAkEC,IAAwC,IAAvC,MAAEvC,EAAK,UAAE5N,EAAS,KAAE6N,EAAI,QAAEta,GAAS4c,EACxG,OACIpd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0a,GACN7a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8M,GACL6N,EACAta,KAqBjB,EAfuEiD,IACnE,MAAM,mBAAEkX,EAAkB,UAAEF,EAAS,QAAEG,EAAO,mBAAEK,EAAkB,YAAEjG,EAAW,QAAEtP,EAAO,+BAAE0V,GAAmC3X,EAE7H,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKwa,GACPF,EAAUC,eAAiB1a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8a,IACrCR,EAAUC,eAAiB1a,EAAAA,cAACmd,EAAyBjd,OAAAC,OAAA,GAAKya,IAC3D5a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6U,GACLtP,EArD+C2X,CAAAA,IAQ3D,IAR4D,aAC7DxB,EAAY,MACZ5Q,EAAK,aACLlI,EAAY,eACZuZ,EAAc,QACdpR,EAAO,yBACPwR,EAAwB,gCACxBC,GACHU,EACG,OACIrd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0b,GACL5Q,GACGA,EAAM1I,KAAK0D,GAEAjG,EAAAA,cAACkd,EAAsBhd,OAAAC,OAAA,GAAK8F,MAE1ClD,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,KAE5C1L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKmc,GACLpR,GACGA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,MAIhD3L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuc,GACN1c,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKwc,OA0BTW,CAAalC,iFC7D9B,MAmBA,EAnBsEjc,IAQjE,IARkE,GACnEC,EAAE,UACFC,EAAS,KACTC,EAAI,UACJC,EAAS,SACTE,EAAQ,iBACRD,EAAgB,QAChBG,GACHR,EACG,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBF,GACvDQ,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAE7D,OACII,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACf,GAAIA,EAAIC,UAAWA,EAAS,aAAcE,EAAWE,SAAUA,EAAUE,QAASA,GAAaG,GAClGR,gFCjBb,MAUA,EAVyEH,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EAC/G,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,qECQrD,MAAMG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IAoBnB,EAbyE1B,IAAA,IAAC,GAAEC,EAAE,KAAEmB,EAAI,MAAEW,EAAK,QAAEC,EAAO,UAAE9B,EAAS,UAAEuB,EAAS,SAAES,GAAUlC,EAAA,OAClIa,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC/B,OACdd,UAAWD,EAAaC,GACxBS,SAAUA,+DClClB,MAMA,EANoElC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OAC/Fa,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,GAC/DvC,8DCLT,MAIA,EAJgFH,IAAA,IAAC,UAAEE,GAAWF,EAAA,OAC1Fa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,+ECAvB,MAIA,EAJsFF,IAAA,IAAC,UAAEE,EAAS,QAAEmB,GAASrB,EAAA,OACzGa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,sBAA+BmB,kECsB1C+c,suBAAZ,SAAYA,GACRA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,yBAJJ,CAAYA,IAAAA,EAA6B,KAoCzC,IAAMC,EAAN,cAAuCxd,EAAAA,UA6CnCwD,YAAYC,GACRE,MAAMF,GA3CU,KAAAga,sBAAgC,EAEhC,KAAAC,cAAwB,EAEpC,KAAAta,UAAoB,EAkBX,KAAAua,mBAA6B,yCAE7B,KAAAC,gBAA0B,KAE1B,KAAAC,iBAA2B,KAE3B,KAAAC,gBAA0B,MAE1B,KAAAC,iBAA2B,MAE3B,KAAAC,gBAA0B,IAE1B,KAAAC,mBAA6B,GAE7B,KAAAC,eAAyB,GAEzB,KAAAC,6BAAuC,+DAEhD,KAAAC,mCAA6C,EA8DpC,KAAAC,kBAAoB,KAAyB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC1D,MAAM,OAAEjZ,EAAM,KAAE6D,EAAI,UAAEtF,GAAcJ,KAAKH,MAAMkb,oBACzCC,EAA8CtV,EAAKsV,qBAAqBxN,QAAU,GAClFyN,EACDpZ,EAAOoZ,qCAAuCpZ,EAAOoZ,oCAAoCvf,MAAS,GAGjGwf,GAFiBrZ,EAAOsZ,gBAAkB,IACdC,MAAM,KACZzc,KAAI0c,IAC5B,MAAMC,EAA2CN,EAAqBlY,MAClEyY,IAAoC,IAAvBA,EAAUC,UAAsBD,EAAU9G,KAAMgH,sBAAwBJ,EAAII,uBACxF,CAAEC,SAAU,GACjB,OAAO1b,KAAK2b,iBAAiBL,MAE3BM,EAAQ5b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EAC1D7b,KAAKhE,QAAQ8T,cAAcC,MAAQ,GAAG3P,EAAU0b,4BAA4Bb,IAC5E,MAAMY,GAAiB1f,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SAC3EgE,KAAKhE,QAAQ8T,cAAcC,MAAQ,GAAG3P,EAAU2b,4BAA4Bd,IAC5E,MAAMe,GAAiB7f,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SAC3EgE,KAAKhE,QAAQ8T,cAAcC,MAAQ,GAAG3P,EAAU6b,8BAA8BhB,IAC9E,MAAMiB,GAAmB/f,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SACvE6Y,EAAsBnP,EAAKmP,oBAAoBrH,OAErDxN,KAAKwa,mCACgB,QAAjBE,EAAAhV,EAAK8O,oBAAY,IAAAkG,GAAQ,QAARC,EAAjBD,EAAmBlN,cAAM,IAAAmN,GAAqE,QAArEC,EAAzBD,EAA2B7X,MAAKqZ,GAAWA,EAAQ1H,OAASzU,KAAKua,sCAA6B,IAAAK,OAA7E,EAAjBA,EAAgGhG,aAAa,EAGjH,MAAMwH,MACyC,QAA1CvB,EAAA7a,KAAKH,MAAMkb,oBAAoBzX,QAAQ+Y,WAAG,IAAAxB,GAAQ,QAARC,EAA1CD,EAA4ChZ,cAAM,IAAAiZ,OAAR,EAA1CA,EAAoDwB,6CACpDzH,MAAAA,OAAmB,EAAnBA,EAAqB0H,oBACrBvc,KAAKwa,kCACV,OACIpe,EAAAA,cAAA,OACI2B,IAAKiC,KAAKwc,uBACV/gB,UAAWqB,GAAAA,CAAW,iCAAkC,CACpD,0CAA2CkD,KAAK6Z,wBAGnDhY,EAAOoZ,qCACJ7e,EAAAA,cAAC+D,EAAAA,GAAI,CACD1E,UAAU,+CACVkO,IAAK9H,EAAOoZ,oCAAoCtR,KAAO,KACvDjO,KAAMuf,IAGbpZ,EAAO4a,WAAazc,KAAK0c,eACzB7a,EAAO8a,eAAiB3c,KAAK4c,mBAC7B1B,EACAlb,KAAK8Z,cACF1d,EAAAA,cAAA,OAAKX,UAAU,wCACXW,EAAAA,cAAA,SAAOX,UAAU,8CACZuE,KAAKH,MAAMkb,oBAAoB3a,UAAUyc,kCAIpDjB,GACExf,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAWqB,GAAAA,CAAW,6CAA8C,CAEhE,sDAAuDsf,IACzD,aACU,GAAGhc,EAAU0b,4BAA4Bb,IACrDlf,QAASiE,KAAK8c,kBACdC,SAAU/c,KAAKgd,QACf3R,MAAOjL,EAAU0b,yBACjBjgB,SAAUugB,GACNP,GAEHzb,EAAU0b,0BAGlBF,GACGxf,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAWqB,GAAAA,CAAW,8CAA6C,aACvDsD,EAAU2b,yBACtBhgB,QAASiE,KAAKid,gBACd5R,MAAOjL,EAAU2b,0BACbC,GAEH5b,EAAU2b,0BAGlBH,GACGxf,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAWqB,GAAAA,CAAW,gDAA+C,aACzDsD,EAAU6b,2BACtBlgB,QAASiE,KAAKkd,mBACd7R,MAAOjL,EAAU6b,4BACbC,GAEH9b,EAAU6b,8BAOd,KAAAS,aAAe,KAC5B,MAAM,oBAAES,GAAwBnd,KAAKH,MAAMkb,oBAAoBlZ,OACzDC,EAAWqb,GAAuBA,EAAoBzhB,MAAS,GAC/DD,EAAaqG,GAAWA,EAAQsb,QAAQ,KAAM,MAAS,GACvDvB,EAAkB7b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EACpE,OACIzf,EAAAA,cAAA,OAAKX,UAAWqB,GAAAA,CAAW,0CAA2C,kCAAkCrB,MACnG0hB,GAAuB/gB,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAMoG,IACzG1F,EAAAA,cAAA,SACIO,KAAK,OAAM,aACCmF,EACZrG,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,uCACA,6CAA6C8B,IAC7C,uBAAuBpgB,WAE3BgC,SAAUuC,KAAKqd,eACf/f,MAAO0C,KAAKkC,MAAMob,OAAS,GAC3BzhB,UAAWggB,IAEd7b,KAAKud,aAAa,WAKd,KAAAX,iBAAmB,KAChC,MAAM,wBAAEY,GAA4Bxd,KAAKH,MAAMkb,oBAAoBlZ,OAC7DC,EAAW0b,GAA2BA,EAAwB9hB,MAAS,GACvED,EAAaqG,GAAWA,EAAQsb,QAAQ,KAAM,MAAS,GACvDvB,EAAkB7b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EACpE,OACIzf,EAAAA,cAAA,OAAKX,UAAWqB,GAAAA,CAAW,0CAA2C,kCAAkCrB,MACnG+hB,GAA2BphB,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAMoG,IAC7G1F,EAAAA,cAAA,SACIO,KAAK,OAAM,aACCmF,EACZrG,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,uCACA,6CAA6C8B,IAC7C,uBAAuBpgB,WAE3BgC,SAAUuC,KAAKyd,mBACfngB,MAAO0C,KAAKkC,MAAMwb,WAAa,GAC/B7hB,UAAWggB,IAEd7b,KAAKud,aAAa,eAKd,KAAA5B,iBAAoBgC,IACjC,MAAM9B,EAAkB7b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EAC9DpgB,EAAakiB,EAAgBlJ,MAAQkJ,EAAgBlJ,KAAK2I,QAAQ,KAAM,MAAS,GACvF,OAAQO,EAAgBC,aAAeD,EAAgBC,YAAYC,OAC/D,KAAKlE,EAA8BmE,QACnC,KAAKnE,EAA8BoE,QAC/B,OAAO/d,KAAKge,2BAA2BL,EAAiBliB,EAAWogB,GACvE,KAAKlC,EAA8BxZ,KAC/B,OAAOH,KAAKie,yBAAyBN,EAAiBliB,EAAWogB,GACrE,KAAKlC,EAA8BuE,UAC/B,OAAOle,KAAKme,eAAeR,EAAiBliB,EAAWogB,GAC3D,QACI,OAAO,OAIF,KAAAmC,2BAA6B,CAC1CL,EACAliB,EACAogB,KAEA,MAAMD,EAAQ5b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EACpDuC,EAAiBpe,KAAKqe,mBAAmBV,EAAgBlJ,MAAQ,IACjE6J,EAAsBF,EAAe3J,MAAQ,GACnD,OACIrY,EAAAA,cAAA,OAAKX,UAAWqB,GAAAA,CAAW,0CAA2C,kCAAkCrB,MACpGW,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAM4iB,IACjFliB,EAAAA,cAAA,SACIO,KAAK,OAAM,aACCghB,EAAgBlJ,KAC5BhZ,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,uCACA,6CAA6C6B,IAC7C,uBAAuBngB,WAE3BgC,SAAUuC,KAAKue,mBAAmBZ,GAClCrgB,MAAO0C,KAAKkC,MAAMhG,WAAWyhB,EAAgBlJ,MAAQ,KAAO,GAC5D5Y,UAAWggB,EAAc,gBACVuC,EAAeI,cAAe,IAEhDxe,KAAKud,aAAaI,EAAgBlJ,MAAQ,MAKtC,KAAAwJ,yBAA2B,CACxCN,EACAliB,EACAogB,KAEA,MAAM4C,EAAyBd,EAAgBe,gBAAiB,EAC1D9C,EAAQ5b,KAAKkC,OAASlC,KAAKkC,MAAM2Z,iBAAmB,EACpDuC,EAAiBpe,KAAKqe,mBAAmBV,EAAgBlJ,MAAQ,IACjE6J,EAAsBF,EAAe3J,MAAQ,GACnD,GAAIgK,GAAiBd,EAAgBgB,mBAAoB,CACrD,MACMC,EAAuB,MADf5e,KAAKkC,MAAMhG,WAAWyhB,EAAgBlJ,MAAQ,KAAO,IAEnE,OACIrY,EAAAA,cAAA,OAAKX,UAAWqB,GAAAA,CAAW,0CAA2C,kCAAkCrB,MACpGW,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAM4iB,IACjFliB,EAAAA,cAAA,UACIZ,GAAI,kCAAkCC,IAAW,aACrCkiB,EAAgBlJ,KAC5BhZ,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,wCACA,8CAA8C6B,IAC9C,kCAAkCngB,YAEtCgC,SAAUuC,KAAK6e,mBAAmBlB,GAClC9hB,UAAWggB,EAAc,gBACVuC,EAAeI,cAAe,GAE5CI,GACGxiB,EAAAA,cAAA,UACIX,UAAU,gDACV8L,IAAI,QACJuX,SAAUF,EAAU,gBACLA,IAGtBjB,EAAgBgB,mBAAmBhgB,KAAIogB,IACpC,MAAMD,EAAWC,EAAOC,mBAAqBhf,KAAKkC,MAAMhG,WAAWyhB,EAAgBlJ,MAAQ,IAC3F,OACIrY,EAAAA,cAAA,UACIX,UAAU,gDACV8L,IAAKwX,EAAOC,iBACZF,SAAUA,EAAQ,gBACHA,GAEdC,EAAOC,uBAQpC,OACI5iB,EAAAA,cAAA,OAAKX,UAAWqB,GAAAA,CAAW,0CAA2C,kCAAkCrB,MACpGW,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAM4iB,IACjFliB,EAAAA,cAAA,SACIO,KAAK,OAAM,aACCghB,EAAgBlJ,KAC5BhZ,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,uCACA,6CAA6C6B,IAC7C,uBAAuBngB,WAE3BgC,SAAUuC,KAAKue,mBAAmBZ,GAClCrgB,MAAO0C,KAAKkC,MAAMhG,WAAWyhB,EAAgBlJ,MAAQ,KAAO,GAC5D5Y,UAAWggB,EAAc,gBACVuC,EAAeI,cAAe,IAEhDxe,KAAKud,aAAaI,EAAgBlJ,MAAQ,MAKtC,KAAA0J,eAAiB,CAC9BR,EACAliB,EACAogB,KAEA,IAAIve,EAAQ0C,KAAKkC,MAAMhG,WAAWyhB,EAAgBlJ,MAAQ,KAAO,GACjE,MACM9O,IADuB,KAAVrI,IACaue,GAChCve,EAAQA,GAAS,QACjB,MAAM2hB,EAAyB,SAAV3hB,EAAoB,SAAa,UAChD4hB,GAAYpN,EAAAA,EAAAA,QAAO9R,KAAKH,MAAMkb,oBAAoB3a,UAAU+e,+BAAgCxB,EAAgBlJ,MAC5G2K,EAAyB,SAAV9hB,EAEfghB,EADiBte,KAAKqe,mBAAmBV,EAAgBlJ,MAAQ,IAC5BA,MAAQ,GACnD,IAAI4K,EAAc,QAOlB,OALIA,EADU,SAAV/hB,EACc,QAEA,OAIdlB,EAAAA,cAAA,OACIX,UAAWqB,GAAAA,CACP,0CACA,kDACA,kCAAkCrB,MAGtCW,EAAAA,cAAC+D,EAAAA,GAAI,CAAC1E,UAAU,kDAAkDkO,IAAI,KAAKjO,KAAM4iB,IAChF3Y,GACGvJ,EAAAA,cAAA,OACIX,UAAW,2GAA2GwjB,KAEtH7iB,EAAAA,cAACkjB,EAAAA,EAAa,CACV7jB,UAAU,+DACVC,KAAMsE,KAAKH,MAAMkb,oBAAoB3a,UAAUmf,oBAEnDnjB,EAAAA,cAACC,EAAAA,OAAM,CACHZ,UAAWqB,GAAAA,CACPkD,KAAK+Z,mBACL,yDACA,mDAAmDkF,YACtD,aACW,GAAGC,IAAW,eACZE,EACd9hB,MAAOA,EACPvB,QAASiE,KAAKwf,kBAAkB7B,EAAiB0B,GACjDxjB,UAAWggB,IAEfzf,EAAAA,cAACkjB,EAAAA,EAAa,CACV7jB,UAAU,8DACVC,KAAMsE,KAAKH,MAAMkb,oBAAoB3a,UAAUqf,sBAQtD,KAAAlC,aAAgBmC,IAC7B,MAAM5X,EAAiB9H,KAAKkC,OAASlC,KAAKkC,MAAMyd,gBAAkB3f,KAAKkC,MAAMyd,eAAeD,IAAmB,GAE/G,OADkBE,EAAAA,iBAAiBC,mBAAmB/X,GAG9C1L,EAAAA,cAAA,OAAKX,UAAU,uCAAuCe,KAAK,QAAO,YAAW,aACzEJ,EAAAA,cAAA,SAAOX,UAAU,8CAA8CqM,IAIpE,MAGM,KAAAuW,mBAAsBqB,IACnC,MAAMI,EAAuB9f,KAAK8f,qBAAqBhd,MAAKuY,GAAOA,EAAIxd,OAAS6hB,IAC1EK,EAAwBD,GAAwBA,EAAqBC,cAAgB,EAC3F,MAAO,CACHtL,KAAMsL,EAAc,GAAGL,GAAiB,OAASA,GAAiB,GAClElB,YAAauB,IAIJ,KAAA1C,eAAkBzb,IAC/B,MAAMtE,EAAQsE,EAAMG,OAAOzE,MAC3B0C,KAAKsC,SAAS,CAAEgb,MAAOhgB,KAGV,KAAAmgB,mBAAsB7b,IACnC,MAAMtE,EAAQsE,EAAMG,OAAOzE,MAC3B0C,KAAKsC,SAAS,CAAEob,UAAWpgB,KAGd,KAAAwf,kBAAoB,KACjC9c,KAAKR,UAAW,EAGhBQ,KAAK8Z,cAAe,EACpB9Z,KAAKsC,SAAS,CAAEuZ,gBAAgB,EAAM8D,eAAgB,KAClDK,EAAAA,GAASC,WACTxP,YAAW,KACP,GAAIzQ,KAAKwc,uBAAuBnX,QAAS,CACrC,MAAMnJ,EAAwC8D,KAAKwc,uBAAuBnX,QAAQ6a,uBAC9ElgB,KAAK+Z,oBAEL7d,GAAcA,EAAW0I,OAAS,GAClC5E,KAAKmgB,UAAUjkB,EAAW,OAGnC,IAIM,KAAAghB,mBAAqB,KAClCld,KAAKsC,SAAS,CACVuZ,gBAAgB,EAChB8D,eAAgB,GAChBzjB,WAAY8D,KAAKogB,kBACjB9C,MAAOtd,KAAKqgB,aACZ3C,UAAW1d,KAAKsgB,mBAEhBN,EAAAA,GAASC,WACTxP,YAAW,KACPzQ,KAAKmgB,UAAUngB,KAAKgd,QAAQ3X,WAC7B,IAIM,KAAAkZ,mBAAsBjD,GAA8C1Z,IACjF,MAAMtE,EAAQsE,EAAMG,OAAOzE,MACrBO,EAAOyd,EAAoB7G,MAAQ,GACzCzU,KAAKsC,SAAS,CACVpG,WAAU2J,EAAAA,EAAA,GACH7F,KAAKkC,MAAMhG,YAAU,IACxB,CAAC2B,GAAOP,OAKH,KAAAkiB,kBAAoB,CAAClE,EAA0Che,IAC5EsE,IAEA,MAAM/D,EAAOyd,EAAoB7G,MAAQ,GACzCzU,KAAKsC,SAAS,CACVpG,WAAU2J,EAAAA,EAAA,GACH7F,KAAKkC,MAAMhG,YAAU,IACxB,CAAC2B,GAAOP,OAKH,KAAAuhB,mBAAsBvD,GAA8C1Z,IACjF,MAAMtE,EAAQsE,EAAM2e,cAAcC,gBAAgB,GAAGljB,MAC/CuB,EAAQ+C,EAAM2e,cAAcC,gBAAgB,GAAG3hB,MAC/ChB,EAAOyd,EAAoB7G,MAAQ,GACzCzU,KAAKsC,SAAS,CACVpG,WAAU2J,EAAAA,EAAA,GACH7F,KAAKkC,MAAMhG,YAAU,IACxB,CAAC2B,GAAOP,IAEZmjB,cAAa5a,EAAAA,EAAA,GACN7F,KAAKkC,MAAMue,eAAa,IAC3B,CAAC5iB,GAAOgB,OAKH,KAAA6hB,eAAiB,KAC9B,MAAM,OAAE7e,EAAM,KAAE6D,GAAS1F,KAAKH,MAAMkb,oBAE9B4F,GADiB9e,EAAOsZ,gBAAkB,IACLC,MAAM,KAC3CwF,EAAWlb,EAAKmP,oBAAoBrH,OACpCqT,EAA0CD,GAAYA,EAASE,YAAe,GAC9E5kB,EAAkC,GAExCykB,EAAoBve,SAAQ2e,IACxB,MAAMjB,EAAuB9f,KAAK8f,qBAAqBhd,MAAKuY,GAAOA,EAAIxd,OAASkjB,IAC1EhB,EAAwBD,GAAwBA,EAAqBC,cAAgB,EACrFiB,EAAelB,GAAwBA,EAAqBkB,aAC5DzF,EAAYsF,EAAkB/d,MAAKuY,GAAOA,EAAI5G,OAASsM,IAC7D,IAAIzjB,EAAgB,GACpB,GAAIie,GAAaA,EAAU0F,eAAgB,CACvC,MAAMpjB,EAAQ0d,GAAaA,EAAU9G,MAAS,GAC9C,OAAQ8G,EAAU2F,eACd,KAAKvH,EAA8BmE,QAC3BvC,EAAU0F,eAAeE,eACzB7jB,EAAQ8jB,OAAO7F,EAAU0F,eAAeE,cACxCjlB,EAAW2B,GAAQP,GAEvB,MACJ,KAAKqc,EAA8BoE,QAC3BxC,EAAU0F,eAAeI,eACzB/jB,EAAQ8jB,OAAO7F,EAAU0F,eAAeI,cACxCnlB,EAAW2B,GAAQP,GAEvB,MACJ,KAAKqc,EAA8BxZ,KAC3Bob,EAAU0F,eAAeK,cACzBhkB,EAAQie,EAAU0F,eAAeK,YACjCplB,EAAW2B,GAAQP,GAEvB,MACJ,KAAKqc,EAA8BuE,UACe,OAA1C3C,EAAU0F,eAAeM,eACzBjkB,EAAQ8jB,OAAO7F,EAAU0F,eAAeM,cACxCrlB,EAAW2B,GAAQP,IAQ/BsiB,EAAAA,iBAAiBC,mBAAmBviB,IAAUyiB,IAC9C7jB,EAAW6kB,GAAiB,IAEX,IAAjBzjB,EAAMsH,QAAgBoc,IACtB9kB,EAAW6kB,GAAiBK,OAAOJ,OAGQ,IAA/C1kB,OAAOsN,KAAK5J,KAAKogB,mBAAmBxb,SACpC5E,KAAKogB,kBAAoBlkB,GAE7B8D,KAAKsC,SAAS,CAAEpG,WAAAA,KAIH,KAAAslB,sBAAyBZ,IACtC,MAAM,UAAExgB,GAAcJ,KAAKH,MAAMkb,qBAC3B,MAAEuC,EAAK,UAAEI,GAAc1d,KAAKkC,MAC5Byd,EAAsC,GAC5C,IAAIngB,GAAoB,EACpBiiB,GAAoB,EACxB,IAAK,MAAOla,EAAKjK,KAAUhB,OAAOolB,QAAQ1hB,KAAKkC,MAAMhG,YAAa,CAC9D,MAAMylB,EAAqC3hB,KAAK8f,qBAAqBhd,MAAK4C,GAAQA,EAAK7H,OAAS0J,KAAQ,GACxG,GAAIoa,EAAa,CACb,OAAQA,EAAYC,eAChB,KAAKjI,EAA8BoE,QAC/B,MAAM8D,EAAe3kB,OAAOI,GAC5B,GAAIF,MAAMykB,GAAe,CACrB,MAAMC,GAAYhQ,EAAAA,EAAAA,QAAO1R,EAAU2hB,4BAA6BJ,EAAY9jB,KAAM,WAClF8hB,EAAegC,EAAY9jB,MAAQ,IAAMikB,EACzCtiB,GAAW,OACR,QAAoC1B,IAAhC6jB,EAAYK,sBAAiElkB,IAAhC6jB,EAAYM,iBAChE,GAAIJ,EAAeF,EAAYK,iBAAmBH,EAAeF,EAAYM,gBAAiB,CAC1F,MAAMC,GAAapQ,EAAAA,EAAAA,QACf1R,EAAU+hB,6BACVR,EAAY9jB,KACZ8jB,EAAYK,gBACZL,EAAYM,iBAEhBtC,EAAegC,EAAY9jB,MAAQ,IAAMqkB,EACzC1iB,GAAW,QAGXqiB,EAAe7hB,KAAKka,kBACpByF,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QACrC1R,EAAUgiB,2CACVT,EAAY9jB,KACZmC,KAAKka,iBAET1a,GAAW,GAGXqiB,EAAe7hB,KAAKma,kBACpBwF,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QACrC1R,EAAUiiB,2CACVV,EAAY9jB,KACZmC,KAAKma,iBAET3a,GAAW,GAIdA,IACGogB,EAAAA,iBAAiBC,mBAAmBviB,GACpCmkB,GAAW,GAEXE,EAAYE,aAAeA,EAC3BJ,GAAW,IAGnB,MACJ,KAAK9H,EAA8BmE,QAC/B,MAAMwE,EAAeplB,OAAOI,GAC5B,GAAIF,MAAMklB,IAAiBhlB,EAAMilB,SAAS,KAAM,CAC5C,MAAMT,GAAYhQ,EAAAA,EAAAA,QAAO1R,EAAU2hB,4BAA6BJ,EAAY9jB,KAAM,WAClF8hB,EAAegC,EAAY9jB,MAAQ,IAAMikB,EACzCtiB,GAAW,OACR,QAAoC1B,IAAhC6jB,EAAYK,sBAAiElkB,IAAhC6jB,EAAYM,iBAChE,GAAIK,EAAeX,EAAYK,iBAAmBM,EAAeX,EAAYM,gBAAiB,CAC1F,MAAMC,GAAapQ,EAAAA,EAAAA,QACf1R,EAAU+hB,6BACVR,EAAY9jB,KACZ8jB,EAAYK,gBACZL,EAAYM,iBAEhBtC,EAAegC,EAAY9jB,MAAQ,IAAMqkB,EACzC1iB,GAAW,QAGX8iB,EAAetiB,KAAKga,kBACpB2F,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QACrC1R,EAAUgiB,2CACVT,EAAY9jB,KACZmC,KAAKga,iBAETxa,GAAW,GAGX8iB,EAAetiB,KAAKia,kBACpB0F,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QACrC1R,EAAUiiB,2CACVV,EAAY9jB,KACZmC,KAAKia,iBAETza,GAAW,GAIdA,IACGogB,EAAAA,iBAAiBC,mBAAmBviB,GACpCmkB,GAAW,GAEXE,EAAYW,aAAeA,EAC3Bb,GAAW,IAGnB,MACJ,KAAK9H,EAA8BxZ,KAC/B,IAAIqiB,EAAY,GACX5C,EAAAA,iBAAiBC,mBAAmBviB,KACrCklB,EAAYllB,EAAMmlB,QAElBD,EAAU5d,OAAS5E,KAAKoa,kBACxBuF,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QACrC1R,EAAUsiB,uCACVf,EAAY9jB,KACZmC,KAAKoa,iBAET5a,GAAW,GAEVA,IACDmiB,EAAYgB,UAAYH,GAE5B,MACJ,KAAK7I,EAA8BuE,UAC/ByD,EAAYiB,aAAyB,SAAVtlB,EAO/BqkB,EAAY5B,aAAeH,EAAAA,iBAAiBC,mBAAmBviB,KAC/DqiB,EAAegC,EAAY9jB,MAAQ,KAAMiU,EAAAA,EAAAA,QAAO1R,EAAUyiB,iCAAkClB,EAAY9jB,MACxG2B,GAAW,GAGf,MAAMqhB,EAA0CD,GAAYA,EAASE,YAAe,GAC9EvF,EAAYsF,EAAkB/d,MAAKuY,GAAOA,EAAI5G,OAASlN,IACvD1I,EAAQgiB,EAAkBiC,WAAUzH,GAAOA,EAAI5G,OAASlN,KAE/C,IAAX1I,GAAiB4iB,GACjBZ,EAAkBnhB,OAAOb,EAAO,IAG/BW,GAAYiiB,IACTlG,GACAA,EAAUwH,eAAYjlB,EACtByd,EAAU2F,cAAgBS,EAAYC,cACtCrG,EAAU9G,KAAOkN,EAAY9jB,KAC7B0d,EAAUG,SAAWiG,EAAYqB,SACjCzH,EAAU0H,WAAQnlB,EAClByd,EAAU0F,eAAiB,CACvBE,aAAcQ,EAAYW,aAC1Bf,aAAcI,EAAYiB,aAC1BtB,YAAaK,EAAYgB,UACzBtB,aAAcM,EAAYE,cAE9BtG,EAAU2H,oBAAsB,GAChC3H,EAAU4H,iBAAmB,IAE7BtC,EAAkBtO,KAAK,CACnB,cAAe,mEACfwQ,eAAWjlB,EACXojB,cAAeS,EAAYC,cAC3BwB,QAASzB,EAAY9jB,KACrB4W,KAAMkN,EAAY9jB,KAClB6d,SAAUiG,EAAYqB,SACtBC,WAAOnlB,EACPmjB,eAAgB,CAEZ,cAAe,uEACfE,aAAcQ,EAAYW,aAC1Bf,aAAcI,EAAYiB,aAC1BtB,YAAaK,EAAYgB,UACzBtB,aAAcM,EAAYE,cAE9B,iCAAkC,8EAClCqB,oBAAqB,GACrB,8BACI,kFACJC,iBAAkB,OAOlC7F,EAAMmF,OAAO7d,OAAS5E,KAAKsa,gBAC3BqF,EAAe0D,OAAQvR,EAAAA,EAAAA,QAAO1R,EAAUsiB,uCAAwC,QAAS1iB,KAAKsa,gBAC9F9a,GAAW,GAEXohB,EAASyC,MAAQ/F,EAAMmF,OAGvB/E,EAAU+E,OAAO7d,OAAS5E,KAAKqa,oBAC/BsF,EAAe2D,WAAYxR,EAAAA,EAAAA,QAAO1R,EAAUsiB,uCAAwC,aAAc1iB,KAAKqa,oBACvG7a,GAAW,GAEXohB,EAAS2C,UAAY7F,EAAU+E,OAGnCziB,KAAKR,SAAWA,EAChBQ,KAAKsC,SAAS,CAAEqd,eAAAA,KAGH,KAAA1C,gBAAkBuG,UAC/B,MAAM,QAAElgB,EAAO,KAAEoC,GAAS1F,KAAKH,MAAMkb,oBAC/B6F,EAAWlb,EAAKmP,oBAAoBrH,OAE1C,GAAIoT,GAAYtd,EAAS,CACrBtD,KAAKwhB,sBAAsBZ,GAC3B,MAAMthB,EAAQ,IAAImkB,EAAAA,8BACd7C,EAAS8C,cACT9C,EAASE,YAAc,GACvBxd,EAAQyB,QAAQ4e,YAChB/C,EAASyC,MACTzC,EAAS2C,WAMb,GAHAvjB,KAAK6Z,sBAAuB,EAC5B7Z,KAAK8Z,cAAe,GAEf9Z,KAAKR,SAAU,CAChBQ,KAAKsC,SAAS,CAAEuZ,gBAAgB,IAChC,UACU+H,EAAAA,EAAAA,0BAAyBtkB,EAAOgE,EAAQgB,eAChD,MAAOwD,GACL9H,KAAK8Z,cAAe,EACpB8G,EAASE,WAAa9gB,KAAK6jB,0BACvBvgB,EAAQ4B,YACR5B,EAAQ4B,UAAU4e,UAAUhc,GAC5BxE,EAAQ4B,UAAU6e,MAAM,yCAE5B/jB,KAAKsC,SAAS,CACVqd,eAAgB,GAChBzjB,WAAY8D,KAAKogB,kBACjB9C,MAAOtd,KAAKqgB,aACZ3C,UAAW1d,KAAKsgB,mBAGxBtgB,KAAKsC,SAAS,CAAEuZ,gBAAgB,IAC3B7b,KAAK8Z,eACN9Z,KAAKogB,kBAAoBpgB,KAAKkC,MAAMhG,WACpC8D,KAAK6jB,0BAA4BjD,EAASE,WAC1C9gB,KAAKqgB,aAAergB,KAAKkC,MAAMob,MAC/Btd,KAAKsgB,iBAAmBtgB,KAAKkC,MAAMwb,WAI3C1d,KAAK6Z,sBAAuB,EAExBmG,EAAAA,GAASC,WACTxP,YAAW,KACPzQ,KAAKmgB,UAAUngB,KAAKgd,QAAQ3X,WAC7B,KAKE,KAAA8a,UAAavhB,IAC1BA,MAAAA,GAAAA,EAAS0G,SAGI,KAAA0e,kBAAoB,KACjC,MAAM,KAAEte,GAAS1F,KAAKH,MAAMkb,oBACtBC,EAAuBtV,EAAKsV,qBAAqBxN,QAAU,GAC3DtR,EAAkC,GAExC8e,EAAqB5Y,SAAQkZ,IACzB,MAAMwE,EAA8C,GAMpD,OALAA,EAAqBkD,SAAW1H,EAAoBI,SACpDoE,EAAqBjiB,KAAOyd,EAAoB7G,KAChDqL,EAAqB8B,cAAgBtG,EAAoB4F,cACzDpB,EAAqBrB,cAAgBnD,EAAoBoD,cACzDoB,EAAqBC,YAAczE,EAAoBkD,YAC/ClD,EAAoB4F,eACxB,KAAKvH,EAA8BmE,QAC/B,MAAMmG,EAAsB3I,EAAoB4I,cAAgB5I,EAAoB4I,aAAa/C,aACjGrB,EAAqBkC,gBAAkB1G,EAAoB6I,YAAc7I,EAAoB6I,WAAWhD,aACxGrB,EAAqBmC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAWjD,aACpGrB,EAAqBjiB,MAAQomB,IAC7BnE,EAAqBkB,aAAeI,OAAO6C,GAC3C/nB,EAAW4jB,EAAqBjiB,MAAQujB,OAAO6C,IAEnD,MACJ,KAAKtK,EAA8BoE,QAC/B,MAAMsG,EAAsB/I,EAAoB4I,cAAgB5I,EAAoB4I,aAAa7C,aACjGvB,EAAqBkC,gBAAkB1G,EAAoB6I,YAAc7I,EAAoB6I,WAAW9C,aACxGvB,EAAqBmC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAW/C,aACpGvB,EAAqBjiB,MAAQwmB,IAC7BvE,EAAqBkB,aAAeI,OAAOiD,GAC3CnoB,EAAW4jB,EAAqBjiB,MAAQujB,OAAOiD,IAEnD,MACJ,KAAK1K,EAA8BxZ,KAC/B,MAAMmkB,EAAqBhJ,EAAoB4I,cAAgB5I,EAAoB4I,aAAa5C,YAC5FxB,EAAqBjiB,MAAQymB,IAC7BxE,EAAqBkB,aAAesD,EACpCpoB,EAAW4jB,EAAqBjiB,MAAQymB,GAE5C,MACJ,KAAK3K,EAA8BuE,UAC/B,MAAMqG,EACDjJ,EAAoB4I,cAAgB5I,EAAoB4I,aAAa3C,eAAiB,EACvFzB,EAAqBjiB,OACrBiiB,EAAqBkB,aAAeI,OAAOmD,GAC3CroB,EAAW4jB,EAAqBjiB,MAAQujB,OAAOmD,IAO3DvkB,KAAK8f,qBAAqBvN,KAAKuN,MAEnCxjB,OAAOsN,KAAK1N,GAAY0I,OAAS,GAAK5E,KAAKsC,SAAS,CAAEpG,WAAAA,KAGzC,KAAAsoB,8BAAgC,KAC7C,MAAM5D,EAAW5gB,KAAKH,MAAMkb,oBAAoBrV,KAAKmP,oBAAoBrH,OACnE8P,EAASsD,GAAYA,EAASyC,OAAU,GACxC3F,EAAakD,GAAYA,EAAS2C,WAAc,GACtDvjB,KAAKsC,SAAS,CAAEgb,MAAAA,EAAOI,UAAAA,IACU,IAA7B1d,KAAKqgB,aAAazb,SAClB5E,KAAKqgB,aAAe/C,GAEa,IAAjCtd,KAAKsgB,iBAAiB1b,SACtB5E,KAAKsgB,iBAAmB5C,IA52B5B1d,KAAKkC,MAAQ,CACT2Z,gBAAgB,EAChByB,MAAO,GACPI,UAAW,GACXxhB,WAAY,GACZyjB,eAAgB,IAEpB3f,KAAKogB,kBAAoB,GACzBpgB,KAAK6jB,0BAA4B,GACjC7jB,KAAKqgB,aAAe,GACpBrgB,KAAKsgB,iBAAmB,GACxBtgB,KAAK8f,qBAAuB,GAC5B,MAAM9a,EACDhF,KAAKH,MAAMkb,qBACR/a,KAAKH,MAAMkb,oBAAoBzX,SAC/BtD,KAAKH,MAAMkb,oBAAoBzX,QAAQyB,SACvC/E,KAAKH,MAAMkb,oBAAoBzX,QAAQyB,QAAQC,mBACnD,GACEC,EAAgBjF,KAAKH,MAAMkb,qBAAuB/a,KAAKH,MAAMkb,oBAAoB9V,cAAiB,GAClGC,EAAalF,KAAKH,MAAMkb,qBAAuB/a,KAAKH,MAAMkb,oBAAoB7V,WAAc,GAClGlF,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBAAmBE,EAAmBC,EAAcC,GAC5ElF,KAAKhE,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkB,IAChEoE,KAAKgd,QAAU5gB,EAAAA,YACf4D,KAAKwc,uBAAyBpgB,EAAAA,YAG3B+I,oBACHnF,KAAKgkB,oBACLhkB,KAAK0gB,iBACL1gB,KAAKwkB,iCACLC,EAAAA,EAAAA,KACI,IAAMzkB,KAAKH,MAAMkb,oBAAoBrV,KAAKmP,oBAAoBrH,SAC9D,KACI,MAAMqH,EAAsB7U,KAAKH,MAAMkb,oBAAoBrV,KAAKmP,oBAAoBrH,OACpFxN,KAAK6jB,0BAA4BhP,GAAuBA,EAAoBiM,WAC5E9gB,KAAK0gB,iBACL1gB,KAAKwkB,oCAGbC,EAAAA,EAAAA,KACI,IAAMzkB,KAAKH,MAAMkb,oBAAoBrV,KAAKsV,qBAAqBxN,SAC/D,KACIxN,KAAKgkB,uBAKVze,sBAAsBC,EAA2CC,GACpE,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAMkb,oBAAoBrV,OAASF,EAAUuV,oBAAoBrV,KAMnGC,SACH,OAAO3F,KAAKya,uBAnGJhM,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,4CAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,mCALTO,GAAwBnL,EAAAA,EAAAA,IAAA,CAD7BC,EAAAA,IACKkL,GAg6BN,wBC18BA,MAcM3H,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAWK,EAAKoT,WAAa,2CAA6C,mCAC1EnC,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,GAGX,EAtC4D5W,IAA8D,IAA7D,MAAE0P,EAAK,iBAAErP,EAAgB,eAAEuK,EAAc,aAAEgI,GAAc5S,EAClH,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,qCACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,4kBC8ChB,IAAMue,EAAN,cAA6BtoB,EAAAA,UASzBwD,YAAYC,GACRE,MAAMF,GATU,KAAA8kB,sBAAgC,EAInC,KAAApK,6BAAuC,+DAEhD,KAAAC,mCAA6C,EA0F9C,KAAA7Y,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAAsnB,yBAA4BhjB,GAC9B5B,KAAKH,MAAMgC,OAAOgjB,2BAA4BnpB,KAAOkG,EAAMG,OAAOzE,MAEhE,KAAAwnB,wBAA2BljB,GAC7B5B,KAAKH,MAAMgC,OAAOkjB,mBAAoBrpB,KAAOkG,EAAMG,OAAOzE,MAExD,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMO,UAAU4kB,iBACrBhlB,KAAKH,MAAMO,UAAU4kB,eAAiBpjB,EAAMG,OAAOzE,QA4E1C,KAAA2nB,oBAAuBxpB,GAAsB+nB,SACnDxjB,KAAKklB,8BAA8BzpB,GA6D7B,KAAA0pB,kBAAoB,CACjC1pB,EACA2pB,EACAC,EACAxT,EACAyT,EACAlJ,KAEA,MAAM,kBAAEmD,EAAiB,iBAAEE,GAAqBzf,KAAKH,MAAMO,UACrD6e,EAAcqG,EAAW,UAAY,SACrCC,EAAiBvlB,KAAKilB,oBAAoBxpB,GAChDuE,KAAKhE,QAAQ8T,cAAcC,MAAQqV,EAAe1pB,KAClD,MAAMQ,GAAaC,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SAEvE,MAAO,CACHwpB,kBAAmB,CACf/pB,UAAWqB,GAAAA,CAAW,iCAAkC,kCAAkCrB,IAAa,CACnG,+CAAgDuE,KAAK2kB,wBAG7D7iB,QAASsjB,GACLhpB,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,yCACVkO,IAAKyb,EAAezb,KAAO,KAC3BjO,KAAM0pB,EAAe1pB,KACrBuK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1F0gB,cAAe,CACXhqB,UAAWqB,GAAAA,CAAW,qCAAsC,8BAA8BmiB,IAAe,CAErG,sCAAuC7C,KAG/CsJ,cAAetpB,EAAAA,cAACkjB,EAAAA,EAAa,CAAC7jB,UAAU,yCAAyCC,KAAM+jB,IACvFkG,aAAcvpB,EAAAA,cAACkjB,EAAAA,EAAa,CAAC7jB,UAAU,0CAA0CC,KAAM6jB,IACvFxX,OACI3L,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAWqB,GAAAA,CAAW,oCAAqC,8BAA8BmiB,YAAqB,aAClGoG,EACZ/nB,MAAOgoB,EAAShc,WAAU,gBACXgc,EACfvpB,QAASwpB,EACT1pB,SAAUugB,GACNlgB,IAGZ2V,YAAazV,EAAAA,cAAC4V,EAAAA,EAAoB,CAACvW,UAAU,6CAA6CoW,YAAaA,IACvG+T,0BAA2BpC,SAAYxjB,KAAKklB,8BAA8BzpB,KAIjE,KAAAypB,8BAAgC1B,MAAAA,IAC7C,MAAM3O,EAAsB7U,KAAKH,MAAM6F,KAAKmP,oBAAoBrH,OAEhE,GAAIqH,EAAqB,CACrB,MAAM,UACF3P,EACA5B,SAAS,QAAEyB,EAAO,cAAET,IACpBtE,KAAKH,MAET,IACIP,EADAumB,GAA0B,EAG9B,OAAQC,GACJ,IAAK,eACDD,EAA0BhR,EAAoBkR,4BAA6B,EAC3EzmB,EAAQ,IAAI0mB,EAAAA,mCACRnR,EAAoB6O,eACnBmC,EACD9gB,EAAQ4e,YACRmC,GAEJ,MACJ,UAAKhoB,EACL,IAAK,kBACL,QACI+nB,EAA0BhR,EAAoBoR,wBAAyB,EACvE3mB,EAAQ,IAAI0mB,EAAAA,mCACRnR,EAAoB6O,eACnBmC,EACD9gB,EAAQ4e,YACRmC,GAIZ9lB,KAAK2kB,sBAAuB,EAE5B,UACUuB,EAAAA,EAAAA,+BAA8B5mB,EAAOgF,GAC7C,MAAOwD,GACD5C,IACAA,EAAU4e,UAAUhc,GACpB5C,EAAU6e,MAAM,8CAIxB/jB,KAAK2kB,sBAAuB,IAInB,KAAAwB,0BAA4B,IAClC/pB,EAAAA,cAACwd,EAAwB,CAACmB,oBAAqB/a,KAAKH,QAhV3DG,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAEflF,KAAKhE,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkB,IAG7D2J,sBAAsBC,GACzB,OAAIxF,KAAKH,MAAM6F,OAASF,EAAUE,KAM/BC,SAAM,IAAA+U,EAAAC,EAAAC,EAAAwL,EAAAC,EACT,MAAM,OAAExkB,EAAM,UAAEzB,EAAS,KAAEsF,GAAS1F,KAAKH,OACnC,UAAEpE,EAAS,QAAEqG,EAAO,2BAAE+iB,EAA0B,mBAAEE,EAAkB,eAAE5J,EAAc,UAAEsB,EAAS,cAAEE,GAAkB9a,GAEnH,eAAEmjB,EAAc,oBAAEsB,GAAwBlmB,EAC1CyU,EAAsBnP,EAAKmP,oBAAoBrH,OAErDxN,KAAKwa,mCACgB,QAAjBE,EAAAhV,EAAK8O,oBAAY,IAAAkG,GAAQ,QAARC,EAAjBD,EAAmBlN,cAAM,IAAAmN,GAAqE,QAArEC,EAAzBD,EAA2B7X,MAAKqZ,GAAWA,EAAQ1H,OAASzU,KAAKua,sCAA6B,IAAAK,OAA7E,EAAjBA,EAAgGhG,aAAa,EAEjH,MAAM2R,MACqB,QAAtBH,EAAApmB,KAAKH,MAAMyD,QAAQ+Y,WAAG,IAAA+J,GAAQ,QAARC,EAAtBD,EAAwBvkB,cAAM,IAAAwkB,OAAR,EAAtBA,EAAgC/J,6CAChCzH,MAAAA,OAAmB,EAAnBA,EAAqB0H,oBACrBvc,KAAKwa,kCAGJgM,EAA0BrL,GAAkBA,EAAevW,OAAS,GAAM6X,GAAaE,IAAiB,EACxG8J,EAAuB,CACzBzf,QAAS,CACLC,eAAgByf,GAAAA,CAAI1mB,KAAKH,MAAO,sCAAuC,KAE3EkN,SAAUiY,EACVrpB,UAAW2qB,EACXpX,WAAYqX,GAGV3gB,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACAipB,eAAgB,CACZ3e,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,qBAAsB+E,EAAOpG,YAEvDkrB,eAAgBJ,GACZnqB,EAAAA,cAAC6P,EAAAA,GAAa,CAACxQ,UAAU,2BAA2BC,KAAM0E,EAAUwmB,sCAExEC,sBAAuB,CACnBprB,UAAWqB,GAAAA,CAAW,+BAE1BgF,QAASA,GACL1F,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,mCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1F+hB,aAAc9mB,KAAK+mB,oBACfjqB,GAAAA,CAAW,8BAA+B,qCAC1C+nB,EACAhQ,GAAuBA,EAAoBrU,OAE/CwmB,YAAahnB,KAAKinB,mBACdnqB,GAAAA,CAAW,8BAA+B,oCAC1CioB,EACA,GAAGlQ,GAAuBA,EAAoB3U,aAAa2U,GAAuBA,EAAoBvU,WACtG2L,EAAAA,GAAsBjM,KAAKH,MAAMyD,QAAQyB,cAAWjH,EAAY,CAAC2oB,IAErES,kBAAmBlnB,KAAKmnB,yBACpBrqB,GAAAA,CAAW,8BAA+B,2CAC1CypB,EACA1R,GAEJuS,0BAA2B,CACvB3rB,UAAWqB,GAAAA,CAAW,2CAE1BuqB,0BAA2Bb,GAA0BxmB,KAAKmmB,8BAE9D,OAAOnmB,KAAKH,MAAMyG,WAAWV,GAiBvB,qBACN,OAAO8gB,GAAAA,CAAI1mB,KAAKH,MAAO,sCAAuC,IAG1DknB,oBACJtrB,EACAqG,EACA+P,EACA5G,GAEA,MAAO,CACHqc,mBAAoB,CAChB7rB,UAAAA,GAEJqG,QAASA,GACL1F,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,sCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK4kB,yBAA0Bze,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG/FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC2V,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAaA,GACTzV,EAAAA,cAAC4V,EAAAA,EAAoB,CAACvW,UAAU,0CAA0CoW,YAAaA,KAK3FoV,mBACJxrB,EACAqG,EACA+P,EACA5G,GAEA,MAAO,CACHqc,mBAAoB,CAChB7rB,UAAAA,GAEJqG,QAASA,GACL1F,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,sCACVkO,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK8kB,wBAAyB3e,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG9FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC2V,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAaA,GACTzV,EAAAA,cAAC4V,EAAAA,EAAoB,CAACvW,UAAU,0CAA0CoW,YAAaA,KAS3FsV,yBACJ1rB,EACA8qB,EACA1R,GAEA,MAAM,2BACF0S,EAA0B,qCAC1BC,EAAoC,uBACpCC,EAAsB,iCACtBC,GACA1nB,KAAKH,MAAMO,WACT,0BAAEunB,EAAyB,8BAAEC,EAA6B,0BAAEC,GAA8B7nB,KAAKH,MAAMgC,QACrG,oBAAEimB,GAAwB9nB,KAAKH,MAAMyD,QAAQyB,QAAQgjB,SACrDC,EAAyC,GAE/C,OAAKnT,GAMLiT,GACID,GACAG,EAAiBzV,KACbvS,KAAKmlB,kBACD,eACA0C,EACAH,EACAD,EACA5S,EAAoBkR,4BAA6B,EACjDQ,IAIL,CACH0B,mBAAoB,CAChBxsB,UAAAA,GAEJqG,QAAS6lB,GACLvrB,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,sCACVkO,IAAKge,EAA0Bhe,KAAO,KACtCjO,KAAMisB,EAA0BjsB,KAChCuK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FmjB,gBAAiBloB,KAAKmlB,kBAClB,kBACAyC,EACAJ,EACAD,EACA1S,EAAoBoR,wBAAyB,EAC7CM,GAEJyB,iBAAkBA,QAAoBlqB,KAtCtCkC,KAAKH,MAAMyD,QAAQ4B,UAAU4C,MAAM,qDAC5B,SA3MH2G,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,4CA8GD5K,EAAAA,EAAAA,IAAA,CAAT0Z,EAAAA,IAAQ,mCA/GPzD,GAAcjW,EAAAA,EAAAA,IAAA,CADnBC,EAAAA,IACKgW,GA+VN,uGCzaA,MAAM0D,EAA2D7sB,IAAuE,IAAtE,mBAAE0sB,EAAkB,QAAEnmB,EAAO,gBAAEomB,EAAe,iBAAEF,GAAkBzsB,EAChI,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0rB,GACLnmB,EACD1F,EAAAA,cAACisB,EAAwB/rB,OAAAC,OAAA,GAAK2rB,IAC7BF,GACGA,EAAiBrpB,KAAI,CAAC2pB,EAAkBzpB,IAC7BzC,EAAAA,cAACisB,EAAwB/rB,OAAAC,OAAA,GAAK+rB,EAAgB,CAAE/gB,IAAK1I,SAM1EwpB,EAAyD5O,IAQ1D,IAR2D,kBAC5D+L,EAAiB,QACjB1jB,EAAO,YACP+P,EAAW,cACX4T,EAAa,cACbC,EAAa,OACb3d,EAAM,aACN4d,GACHlM,EACG,OACIrd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKipB,GACL1jB,EACA+P,EACDzV,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKkpB,GACLE,EACA5d,EACA2d,KAMX6C,EAAuD/O,IAAwD,IAAvD,mBAAE8N,EAAkB,QAAExlB,EAAO,MAAEmJ,EAAK,YAAE4G,GAAa2H,EAC7G,OACIpd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK+qB,GACLxlB,EACA+P,EACA5G,IAkCb,EA7B+DpL,IAC3D,MAAM,eACF6kB,EAAc,eACdiC,EAAc,sBACdE,EAAqB,QACrB/kB,EAAO,aACPglB,EAAY,YACZE,EAAW,kBACXE,EAAiB,0BACjBE,EAAyB,0BACzBC,GACAxnB,EAEJ,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKmoB,GACPiC,EACAE,GACGzqB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsqB,GACL/kB,EACD1F,EAAAA,cAACmsB,EAAqBjsB,OAAAC,OAAA,GAAKuqB,IAC3B1qB,EAAAA,cAACmsB,EAAqBjsB,OAAAC,OAAA,GAAKyqB,IAC3B5qB,EAAAA,cAACgsB,EAAyB9rB,OAAAC,OAAA,GAAK2qB,KAGtCE,GAA6BhrB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6qB,GAA4BC,qEClEhF,MAIA,EAJyE9rB,IAAA,IAAC,UAAEE,EAAS,YAAEoW,GAAatW,EAAA,OAChGa,EAAAA,cAAA,KAAGX,UAAWA,GAAYoW,8DCD9B,MAEA,EAF2DtW,IAAA,IAAC,UAAEE,EAAS,KAAEC,GAAMH,EAAA,OAAKa,EAAAA,cAAA,QAAMX,UAAWA,GAAYC,wICDjH,MAIA,EAJmFH,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OAC/Fa,EAAAA,cAAA,KAAGX,UAAU,yCAAyCoW,ICuBpDI,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,iCACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,GAGX,EAtCsE5W,IAA8D,IAA7D,MAAE0P,EAAK,iBAAErP,EAAgB,aAAEuS,EAAY,eAAEhI,GAAgB5K,EAC5H,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,mCACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,4kBCHhB,MAAMqiB,UAA4BpsB,EAAAA,cAG9BwD,YAAYC,GACRE,MAAMF,GAgDH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAE/G,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOoJ,OAASjL,KAAKH,MAAMgC,OAAOoJ,MAAMuG,KACnDxR,KAAKH,MAAMgC,OAAOoJ,MAAMuG,GAAWzE,SAAWnL,EAAMG,OAAOzE,QAnD/D0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SACH,MAAM,OAAE9D,EAAM,UAAEzB,EAAS,KAAEsF,GAAS1F,KAAKH,OACnC,UAAEpE,EAAS,QAAEqG,EAAO,MAAEmJ,GAAUpJ,GAChC,+BAAE4mB,GAAmCroB,EACrCsoB,EAAYhjB,EAAKgjB,UAAUlb,OAE3Bmb,GAAmBD,GAAaA,EAAU9jB,QAAU8jB,EAAU,GAAGE,mBAAsB,IAAIhkB,OAC3FiN,GAAcC,EAAAA,EAAAA,QAAO2W,GAAkC,sCAAuCE,GAE9F/iB,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACA+sB,oBAAqB,CACjBziB,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,2BAA4B+E,EAAOpG,YAE7DqG,QAASA,GAAWA,EAAQpG,MACxBU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,oCACVkO,IAAK7H,EAAQ6H,IACbjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAAC2V,EAAczV,OAAAC,OAAA,GACP,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YAAazV,EAAAA,cAAC4V,EAAoB,CAACH,YAAaA,MAGpD,OAAO7R,KAAKH,MAAMyG,WAAWV,IAYrC,uGC/EA,MAYA,EAZyE/F,IACrE,MAAM,oBAAE2oB,EAAmB,QAAE1mB,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAE7D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKisB,GACP1mB,EACA+P,EACA5G,mKCVN,MAAM4d,EAA0ChpB,GAC5CzD,IAAAA,cAAA,KAAGX,UAAU,2BAA2BoE,EAAMnE,2kBCsCzD,IAAMotB,EAAN,cAA4B1sB,EAAAA,UAOxBwD,YAAYC,GACRE,MAAMF,GAiHH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAEhH,KAAAyrB,0BAA6BnnB,GAC/B5B,KAAKH,MAAMgC,OAAOmnB,cAAettB,KAAOkG,EAAMG,OAAOzE,MAEzC,KAAA2rB,cAAgB,KAC7B,GAAIjpB,KAAKH,MAAMyD,QAAQyB,QAAQmkB,KAAKC,kBAAoBnpB,KAAKkC,MAAMknB,QAAS,CACxEppB,KAAKsC,SAAS,CAAE8mB,SAAS,IACzB,MAAM9pB,EAAQ,IAAI+pB,EAAAA,kBAAkBrpB,KAAKH,MAAMyD,QAAQyB,QAAQ4e,cAE/D2F,EAAAA,EAAAA,cAAahqB,EAAOU,KAAKH,MAAMyD,QAAQgB,eAClCilB,MAAK,KACEvJ,EAAAA,GAASC,WACTlP,OAAOyY,SAASjtB,OAAO0P,EAAAA,GAAoB,UAAWjM,KAAKH,MAAMyD,QAAQgB,gBAAkB,OAGlGC,OAAOuD,IACJ9H,KAAKsC,SAAS,CAAE8mB,SAAS,IACzBppB,KAAKH,MAAMqF,UAAU4C,MAAMA,EAAMlL,SACjCoD,KAAKH,MAAMqF,UAAU6e,MAAM,qCAnIvC/jB,KAAKkC,MAAQ,CAAEknB,SAAS,GACxBppB,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAEf,MAAMlJ,GAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkBoU,EAAAA,kBAAkByZ,QACnFzpB,KAAK0pB,yBAA0BvtB,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAkBI,GAC7EA,EAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkB2Z,OAChD3pB,KAAK4pB,yBAA0BztB,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAkBI,GAC7EA,EAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkB6Z,kBAChD7pB,KAAK8pB,8BAA+B3tB,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAkBI,GAClFA,EAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkB+Z,iBAChD/pB,KAAKgqB,4BAA6B7tB,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAkBI,GAG7EuJ,sBAAsBC,EAAoDC,GAC7E,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SAAM,IAAAskB,EAAA7D,EAAAC,EACT,MACIxkB,QAAQ,UAAEpG,EAAS,QAAEqG,EAAO,cAAEknB,GAAe,UAC7C5oB,EACAkD,SAAS,cACLgB,EACAS,SACImkB,MAAM,UAAEgB,EAAS,gBAAEf,KAE1B,KACDzjB,GACA1F,KAAKH,MAEHsqB,EAAWle,EAAAA,GAAoB,eAAgB3H,GACrD,IAAI8lB,EAAiB,GAAGne,EAAAA,GAAoB,cAAe3H,yBACvD0b,EAAAA,GAASC,YACTmK,EAAiB,GAAGrZ,OAAOyY,SAASa,SAASD,KAEjD,MAAME,EAAY,GAAGJ,QAAgBE,IAC/BG,EAAgBC,GAAAA,CAAU,oBAAqB/uB,GAC/CiY,EAAchO,EAAKgO,YACnB+W,EAAoB/W,EAAYlG,aAAqD1P,IAA3C4V,EAAYlG,OAAOkd,oBAC7D7V,EAA8C,QAA3BoV,EAAGvkB,EAAKmP,2BAAmB,IAAAoV,OAAA,EAAxBA,EAA0Bzc,OAEhD+Y,GACqB,QAAtBH,EAAApmB,KAAKH,MAAMyD,QAAQ+Y,WAAG,IAAA+J,GAAQ,QAARC,EAAtBD,EAAwBvkB,cAAM,IAAAwkB,OAAR,EAAtBA,EAAgC/J,4CAChCzH,MAAAA,OAAmB,EAAnBA,EAAqB0H,mBADuD,EAE3E3W,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAW8uB,EACXzB,cAAe,CACX/iB,YAAa/F,KAAKH,MAClBpE,UAAW8uB,GAEf5D,eAAgBJ,GACZnqB,EAAAA,cAAC6P,EAAAA,GAAa,CAACxQ,UAAU,0BAA0BC,KAAM0E,EAAUwmB,sCAEvE5P,QAAgC,YAAvBtD,EAAYiX,OACrB7oB,SAAU2oB,GAAqB3oB,GAAWA,EAAQpG,MAC9CU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,6BACVkO,IAAK7H,EAAQ6H,IACbjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FikB,cAAeyB,GAAqBzB,GAAiBA,EAActtB,MAC/DU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,6BACVkO,IAAKqf,EAAcrf,IACnBjO,KAAMstB,EAActtB,KACpBuK,UAAW,CAAEC,OAAQlG,KAAK+oB,0BAA2B5iB,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAGhG6lB,YAAazB,GACT/sB,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACd,UAAU,4BAA4BgB,KAAM6tB,GAAetqB,KAAK0pB,yBACnE1pB,KAAKH,MAAMO,UAAUyqB,uBAG9BC,YAAaL,GAAqBruB,EAAAA,cAACysB,EAAU,CAACntB,KAAM0E,EAAU2qB,qBAC9DC,cAAeP,GAAqBtB,GAChC/sB,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAU,yBACVI,SAAU0qB,EACVxqB,QAASiE,KAAKipB,eACVjpB,KAAK4pB,yBAER5pB,KAAKH,MAAMO,UAAUyqB,uBAG9BI,YAAaR,GACTruB,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAU,6BACVgB,KAAMwP,EAAAA,GAAoB,UAAWjM,KAAKH,MAAMyD,QAAQgB,gBACpDtE,KAAK8pB,8BAER9pB,KAAKH,MAAMO,UAAU8qB,qBAG9BC,WAAYV,GACRruB,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACd,UAAU,2BAA2BgB,KAAM0tB,GAAcnqB,KAAKgqB,4BACjEhqB,KAAKH,MAAMO,UAAUgrB,wBAKlC,OAAOprB,KAAKH,MAAMyG,WAAWV,KAtH/BkjB,GAAara,EAAAA,EAAAA,IAAA,CADlBC,EAAAA,IACKoa,GAkJN,iGCtLA,MAiCA,EAjC6DjpB,IACzD,MAAM,cACFipB,EAAa,QACbhnB,EAAO,cACPknB,EAAa,WACb4B,EAAU,WACVE,EAAU,aACVE,EAAY,YACZC,EAAW,UACXE,EAAS,QACTnU,EAAO,eACP2P,GACA9mB,EAEJ,OAAImX,GACAnX,EAAMyD,QAAQ4B,UAAU4C,MAAM,mDACvB,MAIP1L,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKusB,GACPnC,EACAqC,EACAlnB,EACAmpB,EACAH,EACAK,EACAH,EACAJ,yIC3BN,MAAMS,EAA8F9vB,IAAA,IAAC,YAAEsW,GAAatW,EAAA,OACvHa,EAAAA,cAAA,KAAGX,UAAU,mDAAmDoW,ICUvDyZ,EAAkF/vB,IAK1F,IAL2F,MAC5F0P,EAAK,iBACLrP,EAAgB,aAChBuS,EAAY,eACZhI,GACH5K,EACG,GAAqB,IAAjB0P,EAAMrG,OACN,OAAO,KAEX,MAAMuN,EAAgBF,EAAkBhH,EAAOrP,GAC/C,OACIQ,EAAAA,cAAA,OAAKX,UAAU,6CACV0W,GAAiBA,EAAcvN,OAAS,EACrCxI,EAAAA,cAAC6P,EAAAA,GAAc,CAAChB,MAAOkH,EAAelM,UAAW,CAAEkI,aAAAA,EAAchI,eAAAA,KACjE,OAKV8L,EAAoBA,CAACC,EAAwBtW,KAC/C,IAAKsW,GAAgC,IAApBA,EAAStN,OACtB,OAAO,KAEX,MAAMuN,EAAuC,GACvCnW,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmB,IAgB7D,OAfAsW,EAAS9P,SAAQ,CAACtG,EAAM+C,KACpB7C,EAAQ8T,cAAcC,MAAQjU,EAAKiR,SACnC,MAAM7Q,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GACvDoW,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,2CACXsR,SAAUjR,EAAKiR,SACf/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBpW,GAE1BiW,EAAcI,KAAKH,MAGhBD,wkBCnCX,MAAMoZ,UAA8BnvB,EAAAA,cAGhCwD,YAAYC,GACRE,MAAMF,GAuDH,KAAA8B,oBAAuBC,IAC1B5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,OAG3C,KAAAiU,qBAAwBC,GAAuB5P,IAC9C5B,KAAKH,MAAMgC,OAAOoJ,OAASjL,KAAKH,MAAMgC,OAAOoJ,MAAMuG,KACnDxR,KAAKH,MAAMgC,OAAOoJ,MAAMuG,GAAWzE,SAAWnL,EAAMG,OAAOzE,QA5D/D0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZS,SACH,MAAM,OAAE9D,EAAM,UAAEzB,EAAS,KAAEsF,GAAS1F,KAAKH,OACnC,UAAEpE,EAAS,QAAEqG,EAAO,MAAEmJ,GAAUpJ,GAChC,qDAAE2pB,EAAoD,wDAAEC,GAA4DrrB,EACpHsrB,EAAWhmB,EAAKimB,OAASjmB,EAAKimB,MAAMne,OACpCoe,EACW,IAAbF,EAAiBF,EAAuDC,EACtE5W,EAAsBnP,EAAKmP,oBAAoBrH,OAGrD,GAAKqH,MAAAA,IAAAA,EAAqBgX,WACtB,OAAO,KAGX,MAAMjmB,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACA8vB,sBAAuB,CACnBxlB,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,qCAAsC+E,EAAOpG,YAEvEqG,QAASA,GAAWA,EAAQpG,MACxBU,EAAAA,cAAC6P,EAAAA,GAAa,CACVxQ,UAAU,8CACVkO,IAAK7H,EAAQ6H,IACbjO,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAG1FkG,MAAOA,GAASA,EAAMrG,OAAS,GAC3BxI,EAAAA,cAACkvB,EAAiChvB,OAAAC,OAAA,GAC1B,CACA0O,MAAAA,EACAkD,aAAcnO,KAAKuR,qBACnBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCnJ,iBAAkBoE,KAAKpE,oBAInCiW,YACIzV,EAAAA,cAACivB,EAAuC,CAACxZ,aAAaC,EAAAA,EAAAA,QAAO8Z,EAAyCF,GAAY,OAI1H,OAAO1rB,KAAKH,MAAMyG,WAAWV,IAcrC,wGCvFA,MAYA,EAZ6E/F,IACzE,MAAM,sBAAE0rB,EAAqB,QAAEzpB,EAAO,YAAE+P,EAAW,MAAE5G,GAAUpL,EAE/D,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKgvB,GACPzpB,EACA+P,EACA5G,+ECCb,MAkBA,EAlBoF1P,IAQ/E,IARgF,GACjFC,EAAE,UACFC,EAAS,KACTC,EAAI,UACJC,EAAS,iBACTC,EAAgB,SAChBC,EAAQ,QACRE,GACHR,EACG,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBF,GACvDQ,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAC7D,OACII,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACf,GAAIA,EAAIC,UAAWA,EAAS,aAAcE,EAAWE,SAAUA,EAAUE,QAASA,GAAaG,GAClGR,gFChBb,MAUA,EAVuFH,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EAC7H,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,qECQrD,MAAMG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IA4BnB,EArBuF1B,IAAA,IAAC,GACpFC,EAAE,KACFmB,EAAI,MACJW,EAAK,QACLC,EAAO,UACP9B,EAAS,UACTuB,EAAS,SACTS,GACHlC,EAAA,OACGa,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC/B,OACdd,UAAWD,EAAaC,GACxBS,SAAUA,+DC1ClB,MAMA,EANkFlC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OAC7Ga,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,GAC/DvC,8DCLT,MAIA,EAJ8FH,IAAA,IAAC,UAAEE,GAAWF,EAAA,OACxGa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,+ECAvB,MAIA,EAJoGF,IAAA,IAAC,UAAEE,EAAS,QAAEmB,GAASrB,EAAA,OACvHa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,sBAA+BmB,gFCEtD,MAUA,EAVsFrB,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EAC5H,MAAMuwB,EAAmB,GAAGrwB,MAAckB,YAE1C,OACIP,EAAAA,cAAA,QAAMZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWgvB,EAAkB,GAAGnvB,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGqwB,UAA0BlvB,8yBCoDvD,IAAMmvB,EAAN,cAAwC3vB,EAAAA,UAcpCwD,YAAYC,GACRE,MAAMF,GAdO,KAAA4B,gBAA0B,iCA8FpC,KAAAE,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAGhH,KAAAkY,QAAU,KACbxV,KAAKyV,mBACLzV,KAAK0V,sBAGL1V,KAAK2V,oBAAsBC,aAAY,KACnC5V,KAAK6V,gCACN,KACHpF,YAAW,KACPqF,cAAc9V,KAAK2V,uBACpB,MAIU,KAAAE,4BAA8B,KAEvC9E,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzE+E,cAAc9V,KAAK2V,qBACnB3V,KAAK+V,eAAgB,IAgPZ,KAAAiW,SAAW,CAACC,EAAiBC,IACtClsB,KAAKmsB,gBAC2B,OAAzBnsB,KAAKmsB,gBAA2BF,EAAUC,EAE9C,GAxVPlsB,KAAKuV,WAAa7U,EAAAA,WAAWC,aAAaC,OAC1CZ,KAAK+V,eAAgB,EACrB/V,KAAKmsB,gBAAkB,GACvBnsB,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZC,oBACHnF,KAAKwV,UAIFoB,qBAEC5W,KAAK+V,eAAiBhF,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxL,sBACHC,EACAC,GAEA,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAE9D,EAAM,UAAEzB,GAAcJ,KAAKH,MAE7B+F,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbgX,UAAW,CACPC,eAAgB9W,KAAK+V,eAEzBqW,0BAA2B,CACvBrmB,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBI,EAAOpG,YAEvDub,QAAS,CACLC,MAAO,CACHtN,IAAKpB,EAAAA,MACLK,QAAQ,GAEZS,UAAW,CACPM,IAAKZ,EAAAA,WAETmO,KAAM9a,EAAAA,cAACiwB,EAAAA,EAA6C,CAAC5wB,UAAWuE,KAAKyB,kBACrE7E,QACIR,EAAAA,cAACkwB,EAAAA,EAAgD,CAAC7wB,UAAWuE,KAAKyB,gBAAiB7E,QAASwD,EAAUuW,kBAG9GU,mBAAoB,CAChB7b,GAAI,MACJ8b,MAAO,CAAEC,QAAS,SAEtBnG,YAAa,CACT5V,GAAIwE,KAAK+V,cAAgB,MAAQ,KACjCta,UAAW,GAAGuE,KAAKyB,8BAEvBK,QAASD,EAAOC,SACZ1F,EAAAA,cAAC6P,EAAAA,GAAa3P,OAAAC,OAAA,CACVd,UAAW,GAAGuE,KAAKyB,4BACfI,EAAOC,QAAO,CAClBmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAG1FwnB,sCAAuCvsB,KAAKyX,wBAGhD,OAAOzX,KAAKH,MAAMyG,WAAWV,GA4BzB6P,mBAEA1E,OAAkB,WAAKA,OAAkB,UAAmB,kBAE5DA,OAAkB,UAAmB,gBAAEpS,KAAKsX,IACX,UAAzBA,EAAIG,GAAGhB,cACPpV,KAAKuV,WAAaU,EAAIK,IACU,6BAAzBL,EAAIG,GAAGhB,gBACdpV,KAAKmsB,gBAAkB,SAG1BnsB,KAAKmsB,kBACNnsB,KAAKmsB,gBAAkB,OAK3BzW,sBAEJ,GAAI3E,QAAUA,OAAgB,QAAG,CAC7B,MAAMnU,EAAU,CACZ8Z,gBAAiB1W,KAAKH,MAAMO,UAAUuW,gBAI1Cra,OAAOC,OAAOwU,OAAgB,QAAGnU,IAIjC6a,sBACJ,MAAM,UAAErX,GAAcJ,KAAKH,MAC3B,MAAO,CACHoY,aAAc,CACVzc,GAAI,gBACJC,UAAW,GAAGuE,KAAKyB,uCAEvB+qB,2BAA4B,CACxBhxB,GAAI,2BACJC,UAAW,GAAGuE,KAAKyB,4EAEvB4F,MAAO,CACHrH,KAAKkY,aAAa,QAAS,QAAS9X,EAAU6Y,2BAAuBnb,EAAWkC,KAAKuV,YACrFvV,KAAKkY,aACDlY,KAAKgsB,SAAS,kBAAmB,yBACjC,OACA5rB,EAAUqsB,+BACV3uB,OACAA,EACA,qBAGR4uB,eAAgB,CACZtwB,EAAAA,cAACuwB,EAAAA,EAAyC,CACtCplB,IAAI,aACJ/L,GAAIwE,KAAKgsB,SAAS,aAAc,yCAChCvwB,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUwsB,8BAGvBxwB,EAAAA,cAACuwB,EAAAA,EAAyC,CACtCplB,IAAI,gBACJ/L,GAAIwE,KAAKgsB,SAAS,gBAAiB,4CACnCvwB,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUysB,+BAG3B1tB,aAAc,CACV/C,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,yCACJ/L,GAAG,yCACHC,UAAWuE,KAAKyB,kBAEpBrF,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,mBACJ/L,GAAG,mBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU2sB,aAEvB3wB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,sBACJ/L,GAAG,sBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU4sB,uBAEvB5wB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU6sB,iBAEvB7wB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,0BACJ/L,GAAG,0BACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU8sB,mBAEvB9wB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,oBACJ/L,GAAG,oBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU+sB,cAEvB/wB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,yBACJ/L,GAAG,yBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUgtB,oBAEvBhxB,EAAAA,cAAC0wB,EAAAA,EAAuC,CACpCvlB,IAAI,+BACJ/L,GAAG,+BACHC,UAAWuE,KAAKyB,mBAGxB4rB,2BAA4B,CACxB5xB,UAAW,GAAGuE,KAAKyB,+CAA+CzB,KAAKgsB,SAAS,SAAU,MAC1F,gBAAiB,SAErBsB,oBAAqB,CACjBlxB,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,qBACJ/L,GAAIwE,KAAKgsB,SAAS,qBAAsB,0CACxCvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,sCACczB,KAAKgsB,SAAS,aAAc,cACnDrwB,UAAWyE,EAAUotB,wBACrB9xB,KAAM0E,EAAUqtB,mBAChB7xB,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,uBACJ/L,GAAIwE,KAAKgsB,SAAS,uBAAwB,4CAC1CvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,wCACgBzB,KAAKgsB,SAAS,eAAgB,gBACvDrwB,UAAWyE,EAAUstB,0BACrBhyB,KAAM0E,EAAUutB,qBAChB/xB,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,uBACJ/L,GAAIwE,KAAKgsB,SAAS,uBAAwB,8CAC1CvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,wCACgBzB,KAAKgsB,SAAS,aAAc,iBACrDrwB,UAAWyE,EAAUwtB,0BACrBlyB,KAAM0E,EAAUytB,qBAChBjyB,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,qBACJ/L,GAAIwE,KAAKgsB,SAAS,qBAAsB,8CACxCvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,sCACczB,KAAKgsB,SAAS,aAAc,kBACnDrwB,UAAWyE,EAAU0tB,2BACrBpyB,KAAM0E,EAAU2tB,sBAChBnyB,iBAAkBoE,KAAKpE,oBAG/B8c,eAAgB,CACZjd,UAAW,GAAGuE,KAAKyB,4BAEvB6F,QAAS,CACLlL,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAGuE,KAAKyB,mCACnB9F,UAAWyE,EAAU4tB,wBACrBtyB,KAAM0E,EAAU6tB,mBAChBryB,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACmxB,EAAAA,EAAwC,CACrChmB,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAWyE,EAAU8tB,sBACrBxyB,KAAM0E,EAAUuG,oBAGxBmS,yBAA0B,CACtBrd,UAAW,GAAGuE,KAAKyB,oDAEvBsX,gCAAiC,CAC7Bvd,GAAI,kBACJC,UAAW,GAAGuE,KAAKyB,6CAKvByW,aACJ1c,EACAmB,EACAuc,EACAlc,EACAO,EACA4wB,GAEA,MAAM1yB,EAAY,GAAGuE,KAAKyB,gCAC1B,MAAO,CACHvC,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAW,GAAGA,KAAaD,IAAM,aAAc,YAAa2yB,IAEtF5mB,IAAK/L,EACLsD,MACI1C,EAAAA,cAACgyB,EAAAA,EAAuC9xB,OAAAC,OAAA,GAChC,CACAf,GAAAA,EACAyC,MAAOzC,EACPC,UAAAA,EACAC,KAAMwd,KAIlB/Z,aACI/C,EAAAA,cAAC0wB,EAAAA,EAAuCxwB,OAAAC,OAAA,GAChC,CACAd,UAAWuE,KAAKyB,gBAChB9E,KAAM,UAIlB2C,MACIlD,EAAAA,cAACiyB,EAAAA,EAAuC/xB,OAAAC,OAAA,GAChC,CACAf,GAAAA,EACAmB,KAAAA,EACAK,UAAAA,EACAO,QAAAA,EACA9B,UAAAA,SAxVRgT,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,kCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,qCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,sCATT0S,GAAyBtd,EAAAA,EAAAA,IAAA,CAD9BC,EAAAA,IACKqd,GA4WN,iGCraA,MAAMuC,EAA0E/yB,IAA4C,IAA3C,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAO/D,EACpH,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAwDPivB,EAAgF/U,IAAwC,IAAvC,MAAEvC,EAAK,UAAE5N,EAAS,KAAE6N,EAAI,QAAEta,GAAS4c,EACtH,OACIpd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0a,GACN7a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8M,GACL6N,EACAta,KA6BjB,EAvBqFiD,IACjF,MAAM,0BACFusB,EAAyB,UACzBvV,EAAS,QACTG,EAAO,mBACPK,EAAkB,YAClBjG,EAAW,QACXtP,EAAO,sCACPyqB,GACA1sB,EAEJ,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK6vB,GACPvV,EAAUC,eAAiB1a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8a,IACrCR,EAAUC,eAAiB1a,EAAAA,cAACmyB,EAAgCjyB,OAAAC,OAAA,GAAKya,IAClE5a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6U,GACLtP,EA9EsD2X,CAAAA,IAYlE,IAZmE,aACpExB,EAAY,2BACZuU,EAA0B,MAC1BnlB,EAAK,eACLqlB,EAAc,aACdvtB,EAAY,2BACZkuB,EAA0B,oBAC1BC,EAAmB,eACnB5U,EAAc,QACdpR,EAAO,yBACPwR,EAAwB,gCACxBC,GACHU,EACG,OACIrd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0b,GACN7b,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKiwB,GACLnlB,GACGA,EAAM1I,KAAK0D,GAEAjG,EAAAA,cAACkyB,EAA6BhyB,OAAAC,OAAA,GAAK8F,MAEjDqqB,GACGA,EAAe/tB,KAAI,CAAC/B,EAA0BiC,IACnCzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQjC,KAE3CuC,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,KAE5C1L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8wB,GACLC,GACGA,EAAoB3uB,KAAI,CAACoJ,EAAyBlJ,IACvCzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,MAIhD3L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKmc,GACLpR,GACGA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,MAIhD3L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuc,GACN1c,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKwc,QAmCbW,CAAa6S,iFCtF9B,MAUA,EAV4DhxB,IAA4E,IAA3E,GAAEC,EAAE,UAAEC,EAAS,KAAEC,EAAI,UAAEC,EAAS,SAAEE,EAAQ,iBAAED,EAAgB,QAAEG,GAASR,EAChI,MAAMS,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBF,GACvDQ,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAC7D,OACII,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACf,GAAIA,EAAIC,UAAWA,EAAS,aAAcE,EAAWE,SAAUA,EAAUE,QAASA,GAAaG,GAClGR,gFCRb,MAUA,EAV+DH,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EACrG,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,qECQrD,MAAMG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IAoBnB,EAb+D1B,IAAA,IAAC,GAAEC,EAAE,KAAEmB,EAAI,MAAEW,EAAK,QAAEC,EAAO,UAAE9B,EAAS,UAAEuB,EAAS,SAAES,GAAUlC,EAAA,OACxHa,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC/B,OACdd,UAAWD,EAAaC,GACxBS,SAAUA,+DClClB,MAMA,EAN0DlC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OACrFa,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,GAC/DvC,8DCLT,MAEA,EAFsEH,IAAA,IAAC,UAAEE,GAAWF,EAAA,OAAKa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,+ECC5G,MAIA,EAJ4EF,IAAA,IAAC,UAAEE,EAAS,QAAEmB,GAASrB,EAAA,OAC/Fa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,sBAA+BmB,myBCsDtD,IAAM4xB,EAAN,cAA4BpyB,EAAAA,UAcxBwD,YAAYC,GACRE,MAAMF,GAdO,KAAA4B,gBAA0B,oBA0FpC,KAAAE,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAGhH,KAAAkY,QAAU,KACbxV,KAAKyV,mBACLzV,KAAK0V,sBAGL1V,KAAK2V,oBAAsBC,aAAY,KACnC5V,KAAK6V,gCACN,KACHpF,YAAW,KACPqF,cAAc9V,KAAK2V,uBACpB,MAIU,KAAAE,4BAA8B,KAEvC9E,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzE+E,cAAc9V,KAAK2V,qBACnB3V,KAAK+V,eAAgB,IAIZ,KAAAN,iBAAmB,KAE5B1E,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEpS,KAAKsX,IACxC,OAAQA,EAAIG,GAAGhB,eACX,IAAK,cACDpV,KAAKyuB,iBAAmBxY,EAAIK,IAC5B,MAEJ,IAAK,kBACDtW,KAAK0uB,qBAAuBzY,EAAIK,SASnC,KAAAZ,oBAAsB,KACnC,MAAM,UAAEtV,GAAcJ,KAAKH,MAG3B,GAAIkR,QAAUA,OAAgB,QAAG,CAC7B,MAAMnU,EAAU,CACZ8Z,gBAAiBtW,EAAUuW,gBAI/Bra,OAAOC,OAAOwU,OAAgB,QAAGnU,KAjIrCoD,KAAKyuB,iBAAmBE,EAAAA,cAAchuB,aAAaC,OACnDZ,KAAK0uB,qBAAuBC,EAAAA,cAAchuB,aAAaC,OACvDZ,KAAK+V,eAAgB,EACrB/V,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIZC,oBACHnF,KAAKwV,UAIFoB,qBAEC5W,KAAK+V,eAAiBhF,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxL,sBAAsBC,EAAsDC,GAC/E,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAE9D,EAAM,UAAEzB,GAAcJ,KAAKH,MAE7B+F,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbgX,UAAW,CACPC,eAAgB9W,KAAK+V,eAEzB6Y,cAAe,CACX7oB,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBI,EAAOpG,YAEvDub,QAAS,CACLC,MAAO,CACHtN,IAAKpB,EAAAA,MACLK,QAAQ,GAEZS,UAAW,CACPM,IAAKZ,EAAAA,WAETmO,KAAM9a,EAAAA,cAACyyB,EAAAA,EAAiC,CAACpzB,UAAWuE,KAAKyB,kBACzD7E,QAASR,EAAAA,cAAC0yB,EAAAA,EAAoC,CAACrzB,UAAWuE,KAAKyB,gBAAiB7E,QAASwD,EAAUuW,kBAEvGU,mBAAoB,CAChB7b,GAAI,MACJ8b,MAAO,CAAEC,QAAS,SAEtBnG,YAAa,CACT5V,GAAIwE,KAAK+V,cAAgB,MAAQ,KACjCta,UAAW,GAAGuE,KAAKyB,8BAEvBK,QAASD,EAAOC,SACZ1F,EAAAA,cAAC6P,EAAAA,GAAa3P,OAAAC,OAAA,CACVd,UAAW,GAAGuE,KAAKyB,4BACfI,EAAOC,QAAO,CAClBmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAG1FgqB,0BAA2B/uB,KAAKyX,wBAGpC,OAAOzX,KAAKH,MAAMyG,WAAWV,GA8DzB6R,sBACJ,MAAM,UAAErX,GAAcJ,KAAKH,MAC3B,MAAO,CACHoY,aAAc,CACVzc,GAAI,gBACJC,UAAW,GAAGuE,KAAKyB,uCAEvB4F,MAAO,CACHrH,KAAKkY,aAAa,cAAe,WAAY9X,EAAU4uB,qBAAsBhvB,KAAKyuB,kBAClFzuB,KAAKkY,aAAa,kBAAmB,WAAY9X,EAAU6uB,yBAA0BjvB,KAAK0uB,uBAE9FvvB,aAAc,CACV/C,EAAAA,cAAC8yB,EAAAA,EAA2B,CACxB3nB,IAAI,wBACJ/L,GAAG,wBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU+uB,6BAEvB/yB,EAAAA,cAAC8yB,EAAAA,EAA2B,CACxB3nB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUqW,4BAEvBra,EAAAA,cAAC8yB,EAAAA,EAA2B,CACxB3nB,IAAI,uBACJ/L,GAAG,iBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUqY,sBAEvBrc,EAAAA,cAAC8yB,EAAAA,EAA2B,CACxB3nB,IAAI,+BACJ/L,GAAG,+BACHC,UAAWuE,KAAKyB,mBAGxBiX,eAAgB,CACZjd,UAAW,GAAGuE,KAAKyB,4BAEvB6F,QAAS,CACLlL,EAAAA,cAACgzB,EAAAA,EAA4B,CACzB7nB,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAGuE,KAAKyB,mCACnB9F,UAAWyE,EAAUwY,oBACrBld,KAAM0E,EAAUyY,eAChBjd,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAACgzB,EAAAA,EAA4B,CACzB7nB,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAWyE,EAAUuG,iBACrBjL,KAAM0E,EAAUuG,iBAChB/K,iBAAkBoE,KAAKpE,oBAG/Bkd,yBAA0B,CACtBrd,UAAW,GAAGuE,KAAKyB,oDAEvBsX,gCAAiC,CAC7Bvd,GAAI,kBACJC,UAAW,GAAGuE,KAAKyB,6CAKvByW,aAAa1c,EAAYmB,EAAcuc,EAAmB3b,GAC9D,MAAM9B,EAAY,GAAGuE,KAAKyB,gCAC1B,MAAO,CACHvC,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAW,GAAGA,KAAaD,IAAM,aAAc,cAEzE+L,IAAK/L,EACLsD,MACI1C,EAAAA,cAACizB,EAAAA,EAA2B/yB,OAAAC,OAAA,GACpB,CACAf,GAAAA,EACAyC,MAAOzC,EACPC,UAAAA,EACAC,KAAMwd,KAIlB/Z,aACI/C,EAAAA,cAAC8yB,EAAAA,EAA2B5yB,OAAAC,OAAA,GACpB,CACAd,UAAWuE,KAAKyB,gBAChB9E,KAAM,UAIlB2C,MACIlD,EAAAA,cAACkzB,EAAAA,EAA2BhzB,OAAAC,OAAA,GACpB,CACAf,GAAAA,EACAmB,KAAAA,EACAY,QAAAA,EACA9B,UAAAA,SAnPRgT,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,wCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,4CAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,oCATTmV,GAAa/f,EAAAA,EAAAA,IAAA,CADlBC,EAAAA,IACK8f,GAgQN,iGCzTA,MAAMe,EAAkDh0B,IAA4C,IAA3C,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAO/D,EAC5F,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAuCPkwB,EAAwDhW,IAAwC,IAAvC,MAAEvC,EAAK,UAAE5N,EAAS,KAAE6N,EAAI,QAAEta,GAAS4c,EAC9F,OACIpd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0a,GACN7a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8M,GACL6N,EACAta,KAqBjB,EAf6DiD,IACzD,MAAM,cAAE+uB,EAAa,UAAE/X,EAAS,QAAEG,EAAO,mBAAEK,EAAkB,YAAEjG,EAAW,QAAEtP,EAAO,0BAAEitB,GAA8BlvB,EAEnH,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKqyB,GACP/X,EAAUC,eAAiB1a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8a,IACrCR,EAAUC,eAAiB1a,EAAAA,cAACozB,EAAoBlzB,OAAAC,OAAA,GAAKya,IACtD5a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6U,GACLtP,EArD0C2X,CAAAA,IAQtD,IARuD,aACxDxB,EAAY,MACZ5Q,EAAK,aACLlI,EAAY,eACZuZ,EAAc,QACdpR,EAAO,yBACPwR,EAAwB,gCACxBC,GACHU,EACG,OACIrd,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0b,GACL5Q,GACGA,EAAM1I,KAAK0D,GAEAjG,EAAAA,cAACmzB,EAAiBjzB,OAAAC,OAAA,GAAK8F,MAErClD,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,KAE5C1L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKmc,GACLpR,GACGA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,MAIhD3L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuc,GACN1c,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKwc,OA0BTW,CAAaqV,0ECzD9B,MAMA,EAN8CxzB,IAAA,IAAC,GAAEC,EAAE,UAAEC,EAAS,KAAEC,EAAI,UAAEC,EAAS,SAAEE,EAAQ,QAAEE,GAASR,EAAA,OAChGa,EAAAA,cAACC,EAAAA,OAAM,CAACb,GAAIA,EAAIC,UAAWA,EAAS,aAAcE,EAAWE,SAAUA,EAAUE,QAASA,GACrFL,gFCJT,MAUA,EAViDH,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EACvF,MAAMsB,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,qECQrD,MAAMG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,IAoBnB,EAbiD1B,IAAA,IAAC,GAAEC,EAAE,KAAEmB,EAAI,MAAEW,EAAK,QAAEC,EAAO,UAAE9B,EAAS,UAAEuB,EAAS,SAAES,GAAUlC,EAAA,OAC1Ga,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,WAAmBA,KAAaD,IAC9C+B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC/B,OACdd,UAAWD,EAAaC,GACxBS,SAAUA,+DClClB,MAMA,EAN4ClC,IAAA,IAAC,GAAEC,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,GAAMH,EAAA,OACvEa,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,GAC/DvC,8DCLT,MAEA,EAFwDH,IAAA,IAAC,UAAEE,GAAWF,EAAA,OAAKa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,+ECC9F,MAIA,EAJ8DF,IAAA,IAAC,UAAEE,EAAS,QAAEmB,GAASrB,EAAA,OACjFa,EAAAA,cAAA,OAAKX,UAAW,GAAGA,sBAA+BmB,gFCEtD,MAUA,EAVgDrB,IAA8C,IAA7C,GAAEC,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASrB,EACtF,MAAMuwB,EAAmB,GAAGrwB,MAAckB,YAE1C,OACIP,EAAAA,cAAA,QAAMZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWgvB,EAAkB,GAAGnvB,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGqwB,UAA0BlvB,8yBCiFvD,IAAM+sB,EAAN,cAAqBvtB,EAAAA,UAsBjBwD,YAAYC,GACRE,MAAMF,GAlBO,KAAA4B,gBAA0B,aAmGpC,KAAAE,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAAQpG,KAAOkG,EAAMG,OAAOzE,MAO/G,KAAAmyB,sBAAyB7tB,GAA0C5B,KAAKH,MAAMgC,OAAO2F,WAAa5F,EAAMG,OAAOzE,MAG/G,KAAAkY,QAAU,KACbxV,KAAKyV,mBACLzV,KAAK0V,sBAGL1V,KAAK2V,oBAAsBC,aAAY,KACnC5V,KAAK6V,gCACN,KACHpF,YAAW,KACPqF,cAAc9V,KAAK2V,uBACpB,MAIU,KAAAE,4BAA8B,KAEvC9E,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzE+E,cAAc9V,KAAK2V,qBACnB3V,KAAK+V,eAAgB,IAIZ,KAAAN,iBAAmB,KAChC,MAAMrV,EAA8BJ,KAAKH,MAAMO,WAAa,GAGxD2Q,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEpS,KAClCsX,IACG,OAAQA,EAAIG,GAAGhB,eACX,IAAK,2BACDpV,KAAK0vB,6BAA8B,EACnC1vB,KAAKmsB,gBAAkB,KACvB,MAEJ,IAAK,QACDnsB,KAAKuV,WAAaU,EAAIK,IACtBtW,KAAK0vB,4BAA8BzZ,EAAI0Z,OACvC3vB,KAAKmsB,gBAAkB,KACvB,MAEJ,IAAK,+BACDnsB,KAAK4vB,iCAAkC,EACvC,MAEJ,IAAK,YACD5vB,KAAK4vB,gCAAkC3Z,EAAI0Z,OAC3C,MAEJ,IAAK,6BACD3vB,KAAK0vB,6BAA8B,EACnC,MAEJ,IAAK,UACD1vB,KAAK6vB,8BAAgC5Z,EAAI0Z,OACzC,MAEJ,IAAK,cACD3vB,KAAKyuB,iBAAmBxY,EAAIK,IAC5B,MAEJ,IAAK,kBACDtW,KAAK0uB,qBAAuBzY,EAAIK,IAMxC,OAAQL,EAAI6Z,cAAc1a,eACtB,IAAK,WACDa,EAAIM,SAAWnW,EAAU2vB,qBACzB,MAEJ,IAAK,WACD9Z,EAAIM,SAAWnW,EAAU4V,8BAUhC,KAAAN,oBAAsB,KACnC,MAAMtV,EAA8BJ,KAAKH,MAAMO,WAAa,GAG5D,GAAI2Q,QAAUA,OAAgB,QAAG,CAC7B,MAAMif,EAAgB,CAClBxZ,eAAgBpW,EAAUqW,2BAI9Bna,OAAOC,OAAOwU,OAAgB,QAAGif,KAIxB,KAAAhE,SAAW,CAACC,EAAiBC,IACtClsB,KAAKmsB,gBAC2B,OAAzBnsB,KAAKmsB,gBAA2BF,EAAUC,EAE9C,GAhMPlsB,KAAKuV,WAAa7U,EAAAA,WAAWC,aAAaC,OAC1CZ,KAAKyuB,iBAAmBE,EAAAA,cAAchuB,aAAaC,OACnDZ,KAAK0uB,qBAAuBC,EAAAA,cAAchuB,aAAaC,OACvDZ,KAAK0vB,6BAA8B,EACnC1vB,KAAK4vB,iCAAkC,EACvC5vB,KAAK6vB,+BAAgC,EACrC7vB,KAAK+V,eAAgB,EACrB/V,KAAKmsB,gBAAkB,GAGpBhnB,oBACHnF,KAAKwV,UAIFoB,qBAEC5W,KAAK+V,eAAiBhF,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCxL,sBAAsBC,EAAwCC,GACjE,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,KAM3DC,SACH,MAAM,OAAE9D,EAAM,UAAEzB,GAAcJ,KAAKH,MAE7B+F,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbgX,UAAW,CACPC,eAAgB9W,KAAK+V,eAEzBka,OAAQ,CACJlqB,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBI,EAAOpG,YAEvDub,QAAS,CACLC,MAAO,CACHtN,IAAKpB,EAAAA,MACLK,QAAQ,GAEZS,UAAW,CACPM,IAAKZ,EAAAA,WAETmO,KAAM9a,EAAAA,cAAC8zB,EAAAA,EAA0B,CAACz0B,UAAWuE,KAAKyB,kBAClD7E,QAASR,EAAAA,cAAC+zB,EAAAA,EAA6B,CAAC10B,UAAWuE,KAAKyB,gBAAiB7E,QAASwD,EAAUuW,kBAEhGU,mBAAoB,CAChB7b,GAAI,MACJ8b,MAAO,CAAEC,QAAS,SAEtBnG,YAAa,CACT5V,GAAIwE,KAAK+V,cAAgB,MAAQ,KACjCta,UAAW,GAAGuE,KAAKyB,8BAEvBK,QACI1F,EAAAA,cAAC6P,EAAAA,GAAa3P,OAAAC,OAAA,CACVd,UAAW,GAAGuE,KAAKyB,4BACfI,EAAOC,QAAO,CAClBmE,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAG1FqrB,mBAAoBpwB,KAAKyX,wBAG7B,OAAOzX,KAAKH,MAAMyG,WAAWV,GA4HzB6R,sBACJ,MAAM,OAAE5V,EAAM,UAAEzB,GAAcJ,KAAKH,MACnC,MAAO,CACHoY,aAAc,CACVzc,GAAI,gBACJC,UAAW,GAAGuE,KAAKyB,uCAEvB4F,MAAO,CACHrH,KAAKkY,aAAa,YAAa,OAAQ9X,EAAU+X,mBAAoB/X,EAAUgY,oBAC/EpY,KAAKkY,aAAa,UAAW,OAAQ9X,EAAUiY,kBAAmBjY,EAAUkY,mBAC5EtY,KAAKkY,aAAa,QAAS,QAAS9X,EAAU6Y,2BAAuBnb,EAAWkC,KAAKuV,YACrFvV,KAAKkY,aAAa,cAAe,WAAY9X,EAAUiwB,uBAAmBvyB,EAAWkC,KAAKyuB,kBAC1FzuB,KAAKkY,aAAa,kBAAmB,WAAY9X,EAAU6uB,8BAA0BnxB,EAAWkC,KAAK0uB,uBAEzG4B,kBAAmB,CACf9yB,WAAYwC,KAAK0vB,4BACjBrZ,MAAOrW,KAAKkY,aACRlY,KAAKgsB,SAAS,kBAAmB,yBACjC,OACA5rB,EAAUqsB,+BACV3uB,OACAA,EACA,oBAEJ0uB,2BAA4B,CACxBhxB,GAAI,2BACJC,UAAW,GAAGuE,KAAKyB,4EAEvBgkB,cAAe,CACXhqB,UAAW,GAAGuE,KAAKyB,+CAA+CzB,KAAKgsB,SAAS,SAAU,MAC1F,gBAAiB,SAErB1kB,QAAS,CACLlL,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,qBACJ/L,GAAIwE,KAAKgsB,SAAS,qBAAsB,0CACxCvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,6CACqBzB,KAAKgsB,SAAS,aAAc,iBAC1DrwB,UAAWyE,EAAUotB,wBACrB9xB,KAAM0E,EAAUqtB,qBAEpBrxB,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,uBACJ/L,GAAIwE,KAAKgsB,SAAS,uBAAwB,4CAC1CvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,+CACuBzB,KAAKgsB,SAAS,eAAgB,gBAC9DrwB,UAAWyE,EAAUstB,0BACrBhyB,KAAM0E,EAAUutB,uBAEpBvxB,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,uBACJ/L,GAAIwE,KAAKgsB,SAAS,uBAAwB,8CAC1CvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,+CACuBzB,KAAKgsB,SAAS,aAAc,iBAC5DrwB,UAAWyE,EAAUwtB,0BACrBlyB,KAAM0E,EAAUytB,uBAEpBzxB,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,qBACJ/L,GAAIwE,KAAKgsB,SAAS,qBAAsB,8CACxCvwB,UAAW,GAAGuE,KAAKyB,8CACfzB,KAAKyB,6CACqBzB,KAAKgsB,SAAS,aAAc,kBAC1DrwB,UAAWyE,EAAU0tB,2BACrBpyB,KAAM0E,EAAU2tB,yBAGxBrB,eAAgB,CACZtwB,EAAAA,cAACo0B,EAAAA,EAAsB,CACnBjpB,IAAI,aACJ/L,GAAIwE,KAAKgsB,SAAS,aAAc,yCAChCvwB,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUwsB,8BAEvBxwB,EAAAA,cAACo0B,EAAAA,EAAsB,CACnBjpB,IAAI,gBACJ/L,GAAIwE,KAAKgsB,SAAS,gBAAiB,4CACnCvwB,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUysB,+BAG3B1tB,aAAc,CACV/C,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,yCACJ/L,GAAG,yCACHC,UAAWuE,KAAKyB,kBAEpBrF,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,mBACJ/L,GAAG,mBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU2sB,aAEvB3wB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,sBACJ/L,GAAG,sBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU4sB,uBAEvB5wB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU6sB,iBAEvB7wB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,0BACJ/L,GAAG,0BACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU8sB,mBAEvB9wB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,oBACJ/L,GAAG,oBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU+sB,cAEvB/wB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,yBACJ/L,GAAG,yBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUgtB,sBAI/BsD,sBAAuB,CACnBlzB,WAAYwC,KAAK4vB,gCACjBva,UAAWrV,KAAKkY,aACZlY,KAAKgsB,SAAS,sBAAuB,6BACrC,OACA5rB,EAAUqsB,+BACV3uB,OACAA,EACA,oBAEJ0uB,2BAA4B,CACxBhxB,GAAI,+BACJC,UAAW,GAAGuE,KAAKyB,4EAEvBtC,aAAc,CACV/C,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUoY,qCAI/BmY,oBAAqB,CACjBnzB,WAAYwC,KAAK6vB,8BACjBva,QAAStV,KAAKkY,aACVlY,KAAKgsB,SAAS,oBAAqB,2BACnC,OACA5rB,EAAUqsB,+BACV3uB,OACAA,EACA,oBAEJ0uB,2BAA4B,CACxBhxB,GAAI,6BACJC,UAAW,GAAGuE,KAAKyB,4EAEvBtC,aAAc,CACV/C,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUoY,qCAI/BlR,QAAS,CACLlL,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAWyE,EAAUoG,sBACrB9K,KAAM0E,EAAUqG,mBAEpBrK,EAAAA,cAACm0B,EAAAA,EAAqB,CAClBhpB,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAGuE,KAAKyB,iCACnB9F,UAAWyE,EAAUsG,sBACrBhL,KAAM0E,EAAUuG,oBAGxBxH,aAAc,CACV/C,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,wBACJ/L,GAAG,wBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAU+uB,6BAEvB/yB,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,uBACJ/L,GAAG,uBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUoY,mCAEvBpc,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,iBACJ/L,GAAG,iBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASwD,EAAUqY,sBAEvBrc,EAAAA,cAACq0B,EAAAA,EAAoB,CACjBlpB,IAAI,+BACJ/L,GAAG,+BACHC,UAAWuE,KAAKyB,mBAGxB+F,WAAY3F,EAAO2F,YACfpL,EAAAA,cAAC6P,EAAAA,GAA0B,CACvBxQ,UAAW,GAAGuE,KAAKyB,sCACnB/F,KAAMmG,EAAO2F,WACbvB,UAAW,CAAEC,OAAQlG,KAAKyvB,sBAAuBtpB,eAAgBnG,KAAKH,MAAMyD,QAAQyB,YAM5FmT,aACJ1c,EACAmB,EACAuc,EACAlc,EACAO,EACA4wB,GAEA,MAAM1yB,EAAY,GAAGuE,KAAKyB,gCAC1B,MAAO,CACHvC,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAW,GAAGA,KAAaD,IAAM,aAAc,YAAa2yB,IAEtF5mB,IAAK/L,EACLsD,MACI1C,EAAAA,cAACw0B,EAAAA,EAAoBt0B,OAAAC,OAAA,GACb,CACAf,GAAAA,EACAyC,MAAOzC,EACPC,UAAAA,EACAC,KAAMwd,KAIlB/Z,aACI/C,EAAAA,cAACq0B,EAAAA,EAAoBn0B,OAAAC,OAAA,GACb,CACAd,UAAWuE,KAAKyB,gBAChB9E,KAAM,UAIlB2C,MACIlD,EAAAA,cAACy0B,EAAAA,EAAoBv0B,OAAAC,OAAA,GACb,CACAf,GAAAA,EACAmB,KAAAA,EACAK,UAAAA,EACAO,QAAAA,EACA9B,UAAAA,SAneRgT,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,uDAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,qDAIC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,kCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,wCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,4CAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,mDAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,qCAEC5K,EAAAA,EAAAA,IAAA,CAAX4K,EAAAA,IAAU,sCAjBTsQ,GAAMlb,EAAAA,EAAAA,IAAA,CADXC,EAAAA,IACKib,GA4eN,iGC/jBA,MAAMmH,EAAoCv1B,IAA4C,IAA3C,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAO/D,EAC9E,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAKPyxB,EAA8DtX,IAAoE,IAAnE,MAAEpD,EAAK,cAAEoP,EAAa,QAAEne,EAAO,eAAEolB,EAAc,aAAEvtB,GAAcsa,EAChI,OACIrd,EAAAA,cAAAA,EAAAA,SAAA,KACKswB,GACGA,EAAe/tB,KAAK/B,GACTR,EAAAA,cAAAA,EAAAA,SAAA,KAAGQ,KAElBR,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8Z,IACflX,GACGA,EAAaR,KAAK/B,GACPR,EAAAA,cAAAA,EAAAA,SAAA,KAAGQ,KAElBR,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKkpB,GACLne,GACGA,EAAQ3I,KAAKoJ,GACF3L,EAAAA,cAAAA,EAAAA,SAAA,KAAG2L,QAc5BipB,EAA+ExX,IAAgC,IAA/B,UAAEnE,EAAS,aAAElW,GAAcqa,EAC7G,OACIpd,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8Y,IACflW,EAAaR,KAAK/B,GACRR,EAAAA,cAAAA,EAAAA,SAAA,KAAGQ,OAapBq0B,EAA2EC,IAA8B,IAA7B,QAAE5b,EAAO,aAAEnW,GAAc+xB,EACvG,OACI90B,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK+Y,IACfnW,EAAaR,KAAK/B,GACRR,EAAAA,cAAAA,EAAAA,SAAA,KAAGQ,OA4DpBu0B,EAA0CC,IAAwC,IAAvC,MAAEna,EAAK,UAAE5N,EAAS,KAAE6N,EAAI,QAAEta,GAASw0B,EAChF,OACIh1B,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0a,GACN7a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8M,GACL6N,EACAta,KAqBjB,EAf+CiD,IAC3C,MAAM,OAAEowB,EAAM,UAAEpZ,EAAS,QAAEG,EAAO,mBAAEK,EAAkB,YAAEjG,EAAW,QAAEtP,EAAO,mBAAEsuB,GAAuBvwB,EAErG,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK0zB,GACPpZ,EAAUC,eAAiB1a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK8a,IACrCR,EAAUC,eAAiB1a,EAAAA,cAAC+0B,EAAa70B,OAAAC,OAAA,GAAKya,IAC/C5a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6U,GACLtP,EAzEmCuvB,CAAAA,IAS/C,IATgD,aACjDpZ,EAAY,MACZ5Q,EAAK,kBACLipB,EAAiB,sBACjBI,EAAqB,oBACrBC,EAAmB,QACnBrpB,EAAO,aACPnI,EAAY,WACZqI,GACH6pB,EACG,OACIj1B,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0b,GACL5Q,GACGA,EAAM1I,KAAK0D,GACU,UAAbA,EAAKkF,KAAmB+oB,EAAkB9yB,WAEtCpB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK+zB,EAAkB9D,4BACxBpwB,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8F,IAChBjG,EAAAA,cAAC20B,EAAuBz0B,OAAAC,OAAA,GAAK+zB,KAIxB,cAAbjuB,EAAKkF,KAAuBmpB,EAAsBlzB,WAE9CpB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm0B,EAAsBlE,4BAC5BpwB,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8F,IAChBjG,EAAAA,cAAC40B,EAAoC10B,OAAAC,OAAA,GAAKm0B,KAIrC,YAAbruB,EAAKkF,KAAqBopB,EAAoBnzB,WAE1CpB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKo0B,EAAoBnE,4BAC1BpwB,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8F,IAChBjG,EAAAA,cAAC60B,EAAkC30B,OAAAC,OAAA,GAAKo0B,KAK7Cv0B,EAAAA,cAAC00B,EAAUx0B,OAAAC,OAAA,GAAK8F,MAE9BlD,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,KAE3CR,GACGA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,KAE3CP,IAyBIkS,CAAa0W,mOChElBkB,EAQA3zB,EAKAQ,63CAbZ,SAAYmzB,GACRA,EAAA,YACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,YACAA,EAAA,UALJ,CAAYA,IAAAA,EAAQ,KAQpB,SAAY3zB,GACRA,EAAA,YACAA,EAAA,cAFJ,CAAYA,IAAAA,EAAS,KAKrB,SAAYQ,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,sBACAA,EAAA,cACAA,EAAA,8BACAA,EAAA,gBACAA,EAAA,gBAPJ,CAAYA,IAAAA,EAAO,KAwBZ,MAAMC,EAAqBA,CAC9BC,EACA5C,EACA81B,EACAhzB,IAEOF,EAAOM,KAAIC,IACd,MAAM,YAAEI,EAAW,GAAExD,EAAE,KAAEmB,EAAI,MAAEmC,EAAK,SAAEC,EAAQ,WAAEvB,EAAU,QAAED,EAAO,MAAED,EAAK,WAAE4R,EAAU,eAAExR,GAAmBkB,EAC3G,MAAO,CACHM,QAAS,CACLzD,UAAWqB,GAAAA,CAAWrB,EAAWD,EAAIwD,IAEzCuI,IAAK/L,EACLsD,MAAO1C,EAAAA,cAACo1B,EAAAA,GAASl1B,OAAAC,OAAA,GAAK,CAAEf,GAAAA,EAAIyC,MAAOzC,EAAIC,UAAAA,EAAWC,KAAMoD,EAAO2yB,aAAcj0B,EAAa+zB,EAAqBzyB,KAC/GK,aAAc/C,EAAAA,cAACs1B,EAAAA,GAAcp1B,OAAAC,OAAA,GAAK,CAAEd,UAAAA,EAAWkB,KAAM,UACrD2C,MACIlD,EAAAA,cAACu1B,EAAAA,GAASr1B,OAAAC,OAAA,GACF,CACAf,GAAAA,EACAmB,KAAAA,EACAK,UAAW+B,EACXxB,QAAAA,EACAD,MAAAA,EACA7B,UAAAA,EACA+B,gBAA2BM,IAAfN,GAAmCA,EAC/CC,SAAUc,EACV2Q,WAAAA,EACA0iB,YAAa9yB,EACbpB,eAAAA,SAkBxB,IAAMm0B,EAAN,cAAuCz1B,EAAAA,UAsFnCwD,YAAYC,GAAoE,IAAAiyB,EAC5E/xB,MAAMF,GAnFH,KAAAkyB,0BAA6C,CAChD,CACIv2B,GAAI2C,EAAQ+B,UACZvD,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAU4xB,+BAC5B10B,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQmC,SACZ3D,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAU6xB,8BAC5B30B,MAAO,GACPE,YAAY,EACZwB,YAAa,YAEjB,CACIxD,GAAI2C,EAAQqC,MACZ7D,KAAMgB,EAAU6C,MAChB1B,MAAOkB,KAAKH,MAAMO,UAAU8xB,kCAC5B50B,MAAO,GACPE,YAAY,EACZD,QAASmD,EAAAA,WAAWC,aAAaC,OACjC5B,YAAa,aAEjB,CACIxD,GAAI2C,EAAQg0B,cACZx1B,KAAMgB,EAAUwC,KAChBrB,MAAOkB,KAAKH,MAAMO,UAAUgyB,mCAC5B90B,MAAO,GACPE,YAAY,EACZwB,YAAa,WACbD,SAA2B,QAAnB+yB,EAAE9xB,KAAKH,MAAMgC,cAAM,IAAAiwB,OAAA,EAAjBA,EAAmB90B,YAOpB,KAAAq1B,WAAqB,IAE9B,KAAA7wB,mBAA0D,GAE1D,KAAA8wB,sBAA8D,GAE9D,KAAAC,wBAAgE,GAQvD,KAAA9wB,gBAA0B,gCA0Z1B,KAAA+wB,4BAA8B,KAE3C,MAAMvwB,EAAUjC,KAAKkC,MAAMC,UAC3BF,EAAQG,SAAQ9C,IACRA,EAAM9D,KAAO2C,EAAQqC,QAErBlB,EAAM4P,YAAa,GAGvB5P,EAAMhC,MAAQ,MAGlB,MAAMm1B,EAAU,CAAEC,UAAWC,EAAAA,OAAOC,KAAKC,gBAEzC7yB,KAAKsC,SAAS,CACVH,UAAWF,EACX6wB,cAAc,EACd5oB,SAAUonB,EAASyB,IACnBC,cAAehzB,KAAKizB,uBAAuB5tB,QAC3C6C,aAAa,EACbgrB,cAAc,EACdC,gBAAgB,EAChBC,iBAAkBX,KAKT,KAAAY,6BAA+B7P,UAC5C,MAAM,QAAElgB,GAAYtD,KAAKH,OACnB,SAAEqK,EAAQ,UAAE/H,GAAcnC,KAAKkC,MAE/BoxB,EAActzB,KAAKuzB,uBAAuBpxB,GAE5C+H,IAAaonB,EAASkC,MACtBC,EAAAA,EAAAA,sBAAqB,IAAIC,EAAAA,0BAA0BJ,GAAchwB,EAAQgB,eACpEilB,MAAK,KACFxY,OAAOyY,SAASmK,QAAO,MAE1BpvB,OAAMuD,IACHxE,EAAQ4B,UAAU0uB,MAAM9rB,GACxB9H,KAAKsC,SAAS,CACV6wB,gBAAgB,QAI5BU,EAAAA,EAAAA,qBAAoB,IAAIC,EAAAA,yBAAyBR,GAAchwB,EAAQgB,eAClEilB,MAAK,KACFxY,OAAOyY,SAASmK,QAAO,MAE1BpvB,OAAMuD,IACHxE,EAAQ4B,UAAU0uB,MAAM9rB,GACxB9H,KAAKsC,SAAS,CACV6wB,gBAAgB,EAChBY,iCAAkCjsB,EAAMlL,cAO3C,KAAA22B,uBAA0Bl1B,IACvC,MAAMo0B,EAAO5sB,EAAA,GAA6B7F,KAAKkC,MAAMkxB,kBAWrD,OATA/0B,EAAO+D,SAAQ9C,IAEPA,EAAM9D,KAAO2C,EAAQg0B,cACrBM,EAAQnzB,EAAM9D,IAAM0B,OAAO82B,WAAW10B,EAAMhC,QAAU,EAEtDm1B,EAAQnzB,EAAM9D,IAAM8D,EAAMhC,SAI3Bm1B,GAIM,KAAAwB,gBAAkB,CAACC,EAA6BlB,KAE7D,MAAMmB,EAAeD,EAASpxB,MAAKsxB,GACZ,SAAZA,EAAK54B,KAEV64B,EAAYF,GAAiBA,EAAa72B,OAAqB,GAC/Dg3B,EAAiBD,EAASE,YAAY,KACtChxB,EAAY8wB,EAASG,UAAU,EAAGF,GAElC7wB,EAAW4wB,EAASG,UAAUF,EAAiB,IAG/C,UAAEnyB,GAAcnC,KAAKkC,MACrBD,EAAUE,EAEhBF,EAAQG,SAAQ9C,IACZ,OAAQA,EAAM9D,IACV,KAAK2C,EAAQ+B,UACTZ,EAAMhC,MAAQiG,EACd,MACJ,KAAKpF,EAAQmC,SACThB,EAAMhC,MAAQmG,EACd,MACJ,KAAKtF,EAAQqC,MACTlB,EAAM4P,YAAa,EACnB,MAAMulB,EAAeP,EAASpxB,MAAKsxB,GACxB90B,EAAM9D,KAAO44B,EAAK54B,KAE7B8D,EAAMhC,MAASm3B,GAAiBA,EAAan3B,OAAqB,GAClE,MACJ,QACI,MAAMo3B,EAAWR,EAASpxB,MAAKsxB,GACpB90B,EAAM9D,KAAO44B,EAAK54B,KAE7B8D,EAAMhC,MAASo3B,GAAaA,EAASp3B,OAAqB,OAItE0C,KAAKsC,SAAS,CACVH,UAAWF,EACX6wB,cAAc,EACdE,cAAAA,EACA9oB,SAAUonB,EAASkC,KACnBtrB,aAAa,EACbgrB,cAAc,EACdC,gBAAgB,EAChBC,iBAAmBc,EAAS,GAA2BhL,QAK9C,KAAAyL,kBAAoB,CAACT,EAA6BlB,KAC/D,MAAMP,EAAO5sB,EAAA,GAA8BquB,EAAS,GAA2BhL,MAEzE0L,EAAyB,GAE/BV,EAAS9xB,SAASgyB,IACd,GAAgB,SAAZA,EAAK54B,GAAe,CAEpB,MAAM64B,EAAWD,EAAK92B,MAChBg3B,EAAiBD,EAASE,YAAY,KAC5CK,EAAkB10B,UAAYm0B,EAASG,UAAU,EAAGF,GAEpDM,EAAkBt0B,SAAW+zB,EAASG,UAAUF,EAAiB,QAC1DF,EAAKz3B,OAASk4B,EAAAA,cAAcC,MACnCF,EAAkBR,EAAK54B,IAAMwE,KAAKH,MAAMyD,QAAQqP,iBAAiBC,eAAewhB,EAAK92B,OAErFs3B,EAAkBR,EAAK54B,IAAM44B,EAAK92B,SAI1C0C,KAAKsC,SAAS,CACVsyB,kBAAAA,EACA5B,cAAAA,EACAI,iBAAkBX,EAClBvoB,SAAUonB,EAASyD,OACnB7sB,aAAa,EACb4qB,cAAc,KAKL,KAAAkC,mBAAsBd,IACnC,MAAMzB,EAAO5sB,EAAA,GAA8BquB,EAAS,GAA2BhL,MAEzE0L,EAAyB,GAE/BV,EAAS9xB,SAASgyB,IACd,GAAgB,SAAZA,EAAK54B,GAAe,CAEpB,MAAM64B,EAAWD,EAAK92B,MAChBg3B,EAAiBD,EAASE,YAAY,KAC5CK,EAAkB10B,UAAYm0B,EAASG,UAAU,EAAGF,GAEpDM,EAAkBt0B,SAAW+zB,EAASG,UAAUF,EAAiB,QAC1DF,EAAKz3B,OAASk4B,EAAAA,cAAcC,MACnCF,EAAkBR,EAAK54B,IAAMwE,KAAKH,MAAMyD,QAAQqP,iBAAiBC,eAAewhB,EAAK92B,OAErFs3B,EAAkBR,EAAK54B,IAAM44B,EAAK92B,SAI1C0C,KAAKsC,SAAS,CACVsyB,kBAAAA,EACAxB,iBAAkBX,EAClBvoB,SAAUonB,EAAS2D,KACnB/sB,aAAa,EACb4qB,cAAc,KAKL,KAAAoC,wBAA0B,KAEvC,MAAM,QAAE5xB,GAAYtD,KAAKH,OACjBuzB,iBAAkB+B,GAAmBn1B,KAAKkC,MAE9CizB,IACAC,EAAAA,EAAAA,wBAAuB,IAAIC,EAAAA,4BAA4BF,GAAiB7xB,EAAQgB,eAC3EilB,MAAK,KACFxY,OAAOyY,SAASmK,QAAO,MAE1BpvB,OAAMuD,IACHxE,EAAQ4B,UAAU0uB,MAAM9rB,MAGpC9H,KAAKsC,SAAS,CACV4H,SAAUonB,EAASgE,KACnBptB,aAAa,KAIJ,KAAAqtB,qBAAuB,KACpCv1B,KAAKk1B,2BAoIQ,KAAAlzB,eAAkBJ,IAC/B,MAAMK,EAAUjC,KAAKkC,MAAMC,UAE3BF,EAAQG,SAAQC,IACRA,EAAK7G,KAAOoG,EAAMG,OAAOvG,KACzB6G,EAAK/E,MAAQsE,EAAMG,OAAOzE,UAMlC0C,KAAKsC,UAASkzB,IAAI,CACdC,SAAUD,EAAKC,QACflzB,QAASvC,KAAKwC,eACdL,UAAWF,EACXixB,cAAc,EACdC,gBAAgB,OAKP,KAAA3wB,aAAe,KAC5B,MAAM,UAAEL,GAAcnC,KAAKkC,MAE3B,IAAK,MAAMwzB,KAAYvzB,EAAW,CAO9B,GAAIuzB,EAASl4B,YAAwC,IAA1Bk4B,EAASp4B,MAAMsH,OACtC,OAAO,EACJ,QAAyB9G,IAArB43B,EAASn4B,SAAoE,OAA3Cm4B,EAASp4B,MAAM6F,MAAMuyB,EAASn4B,SACvE,OAAO,EACJ,GAAIm4B,EAASl6B,KAAO2C,EAAQg0B,eAAoC,KAAnBuD,EAASp4B,OAAgBF,MAAMF,OAAO82B,WAAW0B,EAASp4B,QAI1G,OAHA0C,KAAKsC,SAAS,CACV4wB,cAAc,KAEX,EAIf,OAAO,GAGM,KAAAyC,aAAgBC,GACtB51B,KAAKH,MAAMyD,QAAQqP,iBAAmB3S,KAAKH,MAAMyD,QAAQqP,iBAAiBC,eAAegjB,GAASA,EAAMtsB,WAGlG,KAAAusB,eAAkBC,GAC3B9V,EAAAA,GAASC,UACF,IAAI8V,IAAIhlB,OAAOyY,SAAS/sB,OAI/Bq5B,EAAWniB,IAAIqiB,WAAWv5B,KACnB,IAAIs5B,IAAID,EAAWniB,IAAIqiB,WAAWv5B,OAShC,KAAAw5B,aAAe,KAC5B,MAAM,QAAE3yB,GAAYtD,KAAKH,MAGzB,GAAIyD,EAAQyB,SAAWzB,EAAQyB,QAAQmxB,QAA0C,WAAhC5yB,EAAQyB,QAAQmxB,OAAOC,KACpE,MAAO,KAGX,GAAInW,EAAAA,GAASC,WAAalP,OAAOqlB,WAAY,CACzC,MAAMlqB,EAAe5I,EAAQyB,QAAQmH,aACrC,GAAIA,EACA,OAAIA,EAAaG,IAAM0E,OAAOqlB,YAAclqB,EAAaG,GAAGE,EACjD,KACAL,EAAamqB,IAAMtlB,OAAOqlB,YAAclqB,EAAamqB,GAAG9pB,EACxD,KACAL,EAAaoqB,IAAMvlB,OAAOqlB,YAAclqB,EAAaoqB,GAAG/pB,EACxD,KACAL,EAAaO,IAAMsE,OAAOqlB,YAAclqB,EAAaO,GAAGF,EACxD,KAEJ,KAIf,MAAO,MAGM,KAAAgqB,gCAAkC,KAC/Cv2B,KAAKsC,SAAS,CACVk0B,qCAAsCx2B,KAAKkC,MAAMs0B,uCAIxC,KAAAC,gBAAmBC,IAChC12B,KAAKsC,SAAS,CACVq0B,+BAAgCD,KAIvB,KAAAE,cAAiBC,IAC9B72B,KAAKsC,SAAS,CACVw0B,6BAA8BD,KAIrB,KAAAE,2BAA8BC,IAC3Ch3B,KAAKsC,SAAS,CACV20B,wBAAyBD,EACzBE,6BAA6B,KAIpB,KAAAC,kBAAoB,KACjC,MAAMvW,EAAW5gB,KAAKH,MAAM6F,KAAKmP,oBAAoBrH,OAG/C4pB,EAFuBp3B,KAAKH,MAAM6F,KAAKimB,MAAMne,OAEV1K,MAAKlE,GAAWA,EAAQ4B,QAAUogB,EAASpgB,QAC9EkyB,EAAY1yB,KAAKq3B,cAAcD,GAE/BE,EAA4C,CAC9CC,SAAU,IAAIC,KAAKx3B,KAAKkC,MAAMy0B,gCAC9Bc,OAAQ,IAAID,KAAKx3B,KAAKkC,MAAM40B,8BAC5BY,sBAAuB13B,KAAKkC,MAAM+0B,wBAClCU,gBAAiBjF,EACjBkF,oBAAqBhX,EAASpgB,MAC9Bq3B,mBAAuD,OAApCC,EAAAA,2CAAoC,IAApCA,EAAAA,0CAAoC,EAApCA,EAAAA,qCAAsCt3B,QAAS,GAGhE8C,EAAU,CAAEe,cAAerE,KAAKH,MAAMyD,QAAQgB,eAEpDyzB,EAAAA,gCAAAA,6BAA6Dz0B,EAASovB,EAAW4E,GAEjFt3B,KAAKg4B,+BAGQ,KAAAX,cAAiBD,GAC1Bp3B,KAAKkC,MAAM+0B,0BAA4Bj3B,KAAKkC,MAAMkxB,iBAC3CgE,EAAcA,EAAY1E,UAAY,GAE1C1yB,KAAKkC,MAAMkxB,iBAAiBV,UAGtB,KAAAsF,4BAA8B,KAAK,IAAAC,EAChDj4B,KAAKsC,SAAS,CACV40B,6BAA6B,IAEW,QAA5Ce,EAAAj4B,KAAKk4B,gCAAgC7yB,eAAO,IAAA4yB,GAA5CA,EAA8C3yB,SAGjC,KAAA6yB,aAAgBC,IAC7B,MAAMC,EAAcD,EAAQt1B,MAAKw1B,GAAYA,EAASC,aAEtDv4B,KAAKsC,SAAS,CACV8wB,iBAAkBiF,EAAeA,EAAYG,IAAI,GAA2BtP,UAAOprB,KAh3BvFkC,KAAKy4B,aAAez4B,KAAKy4B,aAAaprB,KAAKrN,MAC3CA,KAAKgC,eAAiBhC,KAAKgC,eAAeqL,KAAKrN,MAC/CA,KAAKk1B,wBAA0Bl1B,KAAKk1B,wBAAwB7nB,KAAKrN,MAEjEA,KAAK04B,sBAAwB,CAACv6B,EAAQqC,MAAOrC,EAAQw6B,OAAQx6B,EAAQg0B,eACrEnyB,KAAK44B,UACD/4B,EAAMyD,QAAQyB,SAAWlF,EAAMyD,QAAQyB,QAAQmxB,QAAgD,WAAtCr2B,EAAMyD,QAAQyB,QAAQmxB,OAAOC,KAAoB,KAAO,KACrHn2B,KAAK64B,gBAAkB74B,KAAK64B,gBAAgBxrB,KAAKrN,MACjDA,KAAK84B,sBAAwB18B,EAAAA,YAC7B4D,KAAKizB,uBAAyB72B,EAAAA,YAC9B4D,KAAKk4B,gCAAkC97B,EAAAA,YACvC4D,KAAKkC,MAAQ,CACTK,SAAS,EACTJ,UAAWnC,KAAK+4B,iBAChBjG,cAAc,EACd5oB,SAAUonB,EAASgE,KACnBG,SAAS,EACTvtB,aAAa,EACbgrB,cAAc,EACdC,gBAAgB,EAChB+D,6BAA6B,EAC7BP,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzB+B,+BAA+B,IAAIxB,MAAOyB,cAAc7d,MAAM,KAAK,GACnE2Y,iCAAkC,IAGtC/zB,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAEflF,KAAKhE,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkB,IA5D1D,eACN,MAA0B,OAAnBoE,KAAK44B,WAAyC,OAAnB54B,KAAK44B,UAGjC,gCACN,OACKhZ,EAAAA,iBAAiBC,mBAAmB7f,KAAKkC,MAAMy0B,kCAC/C/W,EAAAA,iBAAiBC,mBAAmB7f,KAAKkC,MAAM40B,8BAI9C,uBACN,MAAM,oCAAEoC,GAAwCl5B,KAAKH,MAAMO,UAC3D,OAAOJ,KAAKkC,MAAMkxB,iBACZ8F,EACK9b,QAAQ,cAAepd,KAAKkC,MAAMkxB,iBAAiBlzB,WAAa,IAChEkd,QAAQ,aAAcpd,KAAKkC,MAAMkxB,iBAAiB9yB,UAAY,IACnE,GA8CHy4B,iBAEH,OADsB/4B,KAAK+xB,0BACNpzB,KAAI,CAACW,EAAOT,KAC7BmB,KAAKwB,mBAAmBtE,OAAO2B,IAAUzC,EAAAA,YACzCkD,EAAM5B,eAAiBsC,KAAKwB,mBAAmBtE,OAAO2B,IAC/CS,KAIR6F,oBACC6a,EAAAA,GAASC,WAAalP,OAAOooB,mBAC7BpoB,OAAOooB,iBAAiB,SAAUn5B,KAAK64B,iBACvC74B,KAAK64B,mBAINO,uBACCpZ,EAAAA,GAASC,WAAalP,OAAOsoB,qBAC7BtoB,OAAOsoB,oBAAoB,SAAUr5B,KAAK64B,iBAI3CtzB,sBACHC,EACAC,GAEA,OAAIzF,KAAKkC,QAAUuD,GAAazF,KAAKH,MAAM6F,OAASF,EAAUE,QAIzD1F,KAAKkC,MAAMgG,aAAelI,KAAKkC,MAAMgG,cAAgBzC,EAAUyC,aAChEuI,YAAW,KAAK,IAAArL,EAAAk0B,EACsB,QAAlCl0B,EAAApF,KAAKwB,mBAAmB,GAAG6D,eAAO,IAAAD,GAAlCA,EAAoCE,QACF,QAAlCg0B,EAAAt5B,KAAK84B,sBAAsBzzB,eAAO,IAAAi0B,GAAlCA,EAAoCh0B,UACrCtF,KAAKqyB,aAEL,GAGJ1sB,SAAM,IAAA2O,EACT,MAAM,OACFzS,EAAM,UACNzB,EACAsF,MAAM,MAAEimB,IACR3rB,KAAKH,OACH,UAAEpE,EAAS,QAAEqG,GAAYD,GACzB,8BACF03B,EAA6B,2BAC7BC,EAA0B,6BAC1BC,EAA4B,qCAC5BC,EAAoC,0BACpCC,EAAyB,sBACzBC,EAAqB,4BACrBC,EAA2B,iCAC3BC,EAAgC,YAChCC,EAAW,cACXC,EAAa,YACbC,EAAW,mBACXC,EAAkB,iBAClBC,EAAgB,kBAChBC,GACAh6B,GACE,UACF+B,EAAS,aACT2wB,EAAY,SACZ5oB,EAAQ,YACRhC,EAAW,+BACXyuB,EAA8B,6BAC9BG,EAA4B,4BAC5BI,EAA2B,8BAC3B8B,GACAh5B,KAAKkC,MAEHm4B,EAAW1O,GAASA,EAAMne,QAAUme,EAAMne,OAAO5I,OAAS,EAChE5E,KAAKhE,QAAQ8T,cAAcC,MAAQC,EAAAA,kBAAkBsqB,QACrD,MAAMC,GAAoBp+B,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAmBoE,KAAKhE,SAExE4kB,EAA8C,QAAtCtM,EAAGtU,KAAKH,MAAM6F,KAAKmP,2BAAmB,IAAAP,OAAA,EAAnCA,EAAqC9G,OAEtD,IAAK6sB,EAAU,CACX,IAAIl7B,EAAe,GACE,YAAjBwsB,EAAMhB,OACNxrB,EAAeq6B,EACS,WAAjB7N,EAAMhB,OACbxrB,EAAeu6B,EACR/N,EAAMne,QAAkC,IAAxBme,EAAMne,OAAO5I,SACpCzF,EAAes6B,GAGnB,MAAMe,EAAU30B,EAAAA,EAAA,GACT7F,KAAKH,OAAK,IACbpE,UAAAA,EACAoO,qBAAsB,CAClB9D,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,IAEhDqO,gBAAiB,CACbrO,UAAW,GAAGuE,KAAKyB,8BAEvBK,QAASA,GAAW1F,EAAAA,cAACq+B,EAAAA,QAAO,CAACh/B,UAAW,GAAGuE,KAAKyB,2BAA4Bi5B,WAAY54B,EAAQ6H,IAAKjO,KAAMoG,EAAQpG,OACnHsO,cACI5N,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHwgB,SAAU/c,KAAKizB,uBACfx3B,UAAW,GAAGuE,KAAKyB,mCACnB1F,QAASiE,KAAKwyB,6BACV+H,GAEHhB,GAGTxvB,YAAa3N,EAAAA,cAAA,KAAGX,UAAW,GAAGuE,KAAKyB,kCAAmCtC,KAG1E,OAAOa,KAAKH,MAAMyG,WAAWk0B,GAGjC,MAAM50B,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbpE,UAAAA,EACAoO,qBAAsB,CAClB9D,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,IAEhDqO,gBAAiB,CACbrO,UAAW,GAAGuE,KAAKyB,8BAEvBK,QAASA,GAAW1F,EAAAA,cAACq+B,EAAAA,QAAO,CAACh/B,UAAW,GAAGuE,KAAKyB,2BAA4Bi5B,WAAY54B,EAAQ6H,IAAKjO,KAAMoG,EAAQpG,OACnHi/B,WAAYzyB,EACZ8B,cACI5N,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHwgB,SAAU/c,KAAKizB,uBACfx3B,UAAW,GAAGuE,KAAKyB,mCACnB1F,QAASiE,KAAKwyB,6BACV+H,GAEHhB,GAGTtvB,sBAAuB7N,EAAAA,cAACw+B,EAAAA,MAAKt+B,OAAAC,OAAA,GAAKyD,KAAK66B,sBACvCvyB,YAAatI,KAAKy4B,aAClBvuB,SAAAA,EACA/C,KACI2rB,GAAgB5qB,IAAgBgC,IAAaonB,EAASyB,KAAO7oB,IAAaonB,EAASkC,MAC7ExzB,KAAK86B,kBACL96B,KAAK+6B,qBACf54B,UAAAA,EACAgI,8BACI/N,EAAAA,cAAC4+B,EAAAA,GAA2B,CACxBv/B,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,GAC5Cw/B,gBAAiBj7B,KAAKk4B,gCACtBgD,mBAAoBl7B,KAAK+2B,2BACzB8C,4BAA6BA,EAC7BsB,iBAAkBn7B,KAAKu2B,gCACvB6E,mBAAoBzB,EACpBC,sBAAuBA,EACvByB,kBAAmBr7B,KAAKkC,MAAMs0B,sCAGtCpsB,sBACIhO,EAAAA,cAACk/B,EAAAA,GAAqB,CAClBjlB,OAAOuK,MAAAA,OAAQ,EAARA,EAAUpgB,QAAS,GAC1B0H,YAAagvB,EACbruB,OAAQ7I,KAAKg4B,4BACbuD,eAAgB5E,EAChB6E,aAAc1E,EACd2E,iBAAkBz7B,KAAKy2B,gBACvBiF,eAAgB17B,KAAK42B,cACrB+E,iBAAkB37B,KAAK47B,0BACvBC,iBAAkB/B,EAClBK,iBAAkBA,EAClBH,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBH,YAAaA,EACb+B,gBAAiB97B,KAAKm3B,kBACtB17B,UAAWqB,GAAAA,CAAWkD,KAAKyB,gBAAiBhG,GAC5C2+B,kBAAmBA,EACnB3wB,aAAczJ,KAAKkC,MAAM+0B,wBAA0B,GAAKj3B,KAAK+7B,iBAC7DC,eAAgBh8B,KAAKH,MAAMO,UAAU47B,eACrCC,cAAejD,MAK3B,OAAOh5B,KAAKH,MAAMyG,WAAWV,GAIzBi1B,oBACJ,MAAM,OAAEh5B,EAAM,UAAEzB,EAAS,QAAEkD,GAAYtD,KAAKH,OACtC,UAAEq8B,EAAS,eAAEC,EAAc,sBAAEC,GAA0Bv6B,GACvD,qCACFw6B,EAAoC,yCACpCC,EAAwC,2BACxCC,EAA0B,+BAC1BC,EAA8B,6BAC9BC,EAA4B,6BAC5BC,EAA4B,gCAC5BC,EAA+B,oBAC/BC,GACAx8B,EAEEy8B,EAAY78B,KAAK88B,oBAevB,MAAO,CACH18B,UAAAA,EACA28B,SAfCC,EAAAA,gBAAgBC,YAAYJ,IACzBA,EAAU,GAAGrE,IAAI75B,KAAI0D,IACjB,IAAIrC,KAAKk9B,WAAYl9B,KAAK04B,sBAAsBnW,SAASlgB,EAAK7G,IAG9D,MAAO,CACHqC,KAAMwE,EAAK7G,GACX2hC,SAAWjB,GAAaA,IAAc,EACtCvgC,UAAWihC,OAGvB,GAKAQ,KAAMP,EACNphC,UAAW,GAAGuE,KAAKyB,yBACnB47B,aAAcr9B,KAAKk9B,SAAWX,EAA6B,GAC3De,eAAgBt9B,KAAKk9B,SAAWT,EAA+B,GAC/DppB,aAAcmpB,EACde,gBAAiBhB,EACjBiB,kBAAmBf,EACnBgB,gBAAiBjB,EACjBkB,gBAAgB,EAChBC,eAAgBjB,EAChBkB,gBAAgB,EAChBC,WAAY3B,EACZ4B,eAAgB,eAChB3B,eAAAA,EACA4B,cAAe/9B,KAAKk9B,SACpBc,gBAAiBh+B,KAAKk9B,SAAWl9B,KAAK04B,sBAAwB,GAC9DuF,mBAAoB,CAChBC,UACI56B,GACAA,EAAQyB,SACRzB,EAAQyB,QAAQo5B,OAChB76B,EAAQyB,QAAQo5B,MAAMC,OACrBhhC,MAAMF,OAAOC,SAASmG,EAAQyB,QAAQo5B,MAAMC,KAAM,KAC7ClhC,OAAOC,SAASmG,EAAQyB,QAAQo5B,MAAMC,KAAM,IAC5C,EACVC,YAAajC,GAAyB,GACtCkC,SAAUhC,EACViC,SAAUlC,EACVmC,eAAgB7B,EAChBhpB,IAAMrQ,GAAWtD,KAAK61B,eAAevyB,EAAQyB,SAAStI,MAAS,IAEnEgiC,oBAAoB,EACpBC,eAAgBt+B,EAAUs+B,eAC1BC,cAAe,EACfC,wCAAyCx+B,EAAUw+B,wCACnDC,gBAAiBz+B,EAAUy+B,gBAC3BC,iBAAkB1+B,EAAU0+B,iBAC5BC,QAAS,CACLC,SAAUh/B,KAAK20B,kBACfzuB,OAAQlG,KAAKi0B,gBACbgL,OAASj/B,KAAKk9B,UAAYl9B,KAAKg1B,yBAAuBl3B,GAE1DohC,YAAal/B,KAAK21B,aAClBwJ,iBAAkBn/B,KAAKm4B,cAKvB2E,oBACJ,MAAM,UACF18B,EACAsF,MAAM,MAAEimB,IACR3rB,KAAKH,OACH,6BAAEu/B,EAA4B,8BAAEC,EAA6B,8BAAEC,GAAkCl/B,EACjGm/B,EAAY5T,GAASA,EAAMne,OAEjC,OAAKwvB,EAAAA,gBAAgBC,YAAYsC,GAI1BA,EAAU5gC,KAAI,CAACuqB,EAAMrqB,KACxB,IAAI2gC,EAAe,GAInB,OAHAx/B,KAAKsyB,sBAAsBzzB,GAASzC,EAAAA,YACpC4D,KAAKuyB,wBAAwB1zB,GAASzC,EAAAA,YAE9B8sB,EAAKuW,aACT,KAAK,EACDD,EAAeH,EACf,MACJ,KAAK,EACDG,EAAeJ,EACf,MACJ,KAAK,EACL,QACII,EAAeF,EAGvB,MAAO,CACH9G,IAAK,CACD,CACIh9B,GAAI2C,EAAQuhC,SACZ/iC,KAAMk4B,EAAAA,cAAc10B,KACpB7C,MAAO,GAAG4rB,EAAKhpB,aAAagpB,EAAK5oB,WACjC4oB,KAAAA,GAEJ,CACI1tB,GAAI2C,EAAQqC,MACZ7D,KAAMk4B,EAAAA,cAAc10B,KACpB7C,MAAO4rB,EAAK1oB,OAAS,GACrB/E,UAAW,GAAGuE,KAAKyB,6BAEvB,CACIjG,GAAI2C,EAAQw6B,OACZh8B,KAAMk4B,EAAAA,cAAc10B,KACpB7C,MAAOkiC,GAEX,CACIhkC,GAAI2C,EAAQg0B,cACZx1B,KAAMk4B,EAAAA,cAAcC,MACpBx3B,MAAO4rB,EAAKiJ,eAAiB,IAGrCoG,YAAY,EACZoH,iBAAkB,CACd/jB,KAAM5b,KAAKsyB,sBAAsBzzB,GACjC+gC,OAAQ5/B,KAAKuyB,wBAAwB1zB,QAhDtC,GAuDP45B,eAAY,IAAAoH,EACQ,QAAxBA,EAAA7/B,KAAKkC,MAAM8wB,qBAAa,IAAA6M,GAAxBA,EAA0Bv6B,QAC1BtF,KAAKsC,SAAS,CACV4F,aAAa,EACb4qB,cAAc,EACdE,mBAAel1B,EACfoM,SAAUonB,EAASgE,OA0NnByF,qBACJ,MAAM,UAAE36B,GAAcJ,KAAKH,OACrB,SAAEqK,EAAQ,kBAAE0qB,GAAsB50B,KAAKkC,OACvC,kCACF49B,EAAiC,mCACjCC,EAAkC,gCAClCC,EAA+B,6BAC/BC,EAA4B,uCAC5BC,EAAsC,iCACtCC,EAAgC,sCAChCC,GACAhgC,EAEEigC,EAAgB,GAAGrgC,KAAKyB,wBACxB6+B,EAAgBp2B,IAAaonB,EAASyD,OAAS,cAAgB,YAC/DwL,EAAqBvgC,KAAKu1B,qBAEhC,MAAO,CACHrsB,eAAgBpM,GAAAA,CAAW,GAAGkD,KAAKyB,yBAA0B6+B,GAC7Dl5B,YAAa,CACT3L,UAAW4kC,GAEfl3B,aAAce,IAAaonB,EAASyD,OAAS+K,EAAoCE,EACjF52B,iBAAkBc,IAAaonB,EAASyD,QACpC34B,EAAAA,cAAA,KAAGX,UAAW,GAAG4kC,iBAA8BN,GAEnDt2B,aAAcmrB,EACdttB,QAAS,CACL4C,IAAaonB,EAASyD,QAClB34B,EAAAA,cAACC,EAAAA,OAAM,CACH0gB,SAAU/c,KAAK84B,sBACfvxB,IAAI,gBACJ9L,UAAW,GAAG4kC,uBACdtkC,QAASwkC,GAERJ,GAGT/jC,EAAAA,cAACC,EAAAA,OAAM,CAACkL,IAAI,gBAAgB9L,UAAW,GAAG4kC,WAAwBtkC,QAASiE,KAAKy4B,cAC3EvuB,IAAaonB,EAASyD,OAASmL,EAAyCD,IAGjF9gC,aAAc,CACV/C,EAAAA,cAACs1B,EAAAA,GAAc,CACXnqB,IAAI,iBACJ/L,GAAG,iBACHC,UAAW,GAAG4kC,UACdzjC,QAASwjC,KAGjBhgC,UAAAA,GAKA06B,kBACJ,MAAM,UAAE16B,GAAcJ,KAAKH,OACrB,SAAEqK,EAAQ,UAAE/H,EAAS,aAAE+wB,EAAY,eAAEC,EAAc,QAAE5wB,EAAO,iCAAEwxB,GAAqC/zB,KAAKkC,OACxG,oCACFs+B,EAAmC,mCACnCC,EAAkC,gCAClCC,EAA+B,2BAC/BC,EAA0B,kCAC1BC,EAAiC,6BACjCX,EAA4B,oCAC5BY,EAAmC,4BACnCC,EAA2B,qCAC3BC,EAAoC,mBACpCxP,GACAnxB,EAEEigC,EAAgB,GAAGrgC,KAAKyB,wBACxB6+B,EAAgBp2B,IAAaonB,EAASyB,IAAM,WAAa,YAE/D,MAAO,CACH7pB,eAAgBpM,GAAAA,CAAW,GAAGkD,KAAKyB,yBAA0B6+B,GAC7Dl5B,YAAa,CACT3L,UAAW4kC,GAEfl3B,aAAce,IAAaonB,EAASyB,IAAM0N,EAAqCD,EAC/Ep3B,iBAAkBc,IAAaonB,EAASyB,KACpC32B,EAAAA,cAAA,KAAGX,UAAW,GAAG4kC,sBAAmCU,GAExD1iC,OAAQD,EAAmB+D,EAAW,GAAGk+B,SAAsB9O,EAAoBvxB,KAAKgC,gBACxFsF,QAAS,CACLlL,EAAAA,cAAC4kC,EAAAA,GAAU,CACPz5B,IAAI,WACJ/L,GAAG,WACHC,UAAW,GAAG4kC,SACd1kC,UAAW+kC,EACXhlC,KAAMilC,EACN5kC,QAASiE,KAAKqzB,6BACdx3B,UAAW0G,EACX3G,iBAAkBoE,KAAKpE,mBAE3BQ,EAAAA,cAAC4kC,EAAAA,GAAU,CACPz5B,IAAI,SACJ/L,GAAG,SACHC,UAAW,GAAG4kC,WACd1kC,UAAWilC,EACXllC,KAAMukC,EACNlkC,QAASiE,KAAKy4B,aACd78B,iBAAkBoE,KAAKpE,oBAG/BuD,aAAc,CACV+zB,GACI92B,EAAAA,cAACs1B,EAAAA,GAAc,CACXnqB,IAAI,iBACJ/L,GAAG,iBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASikC,IAGjB1N,GACI/2B,EAAAA,cAACs1B,EAAAA,GAAc,CACXnqB,IAAI,iBACJ/L,GAAG,iBACHC,UAAWuE,KAAKyB,gBAChB7E,QAASm3B,GAAsE+M,KAI3F1gC,UAAAA,GAmEAy4B,kBACJ74B,KAAK44B,UAAY54B,KAAKi2B,kBA9zB1BxnB,EAAAA,EAAAA,IAAA,CADC4K,EAAAA,IAAU,iCAqBD5K,EAAAA,EAAAA,IAAA,CAAT0Z,EAAAA,IAAQ,8BAIC1Z,EAAAA,EAAAA,IAAA,CAAT0Z,EAAAA,IAAQ,+CAOC1Z,EAAAA,EAAAA,IAAA,CAAT0Z,EAAAA,IAAQ,qCAzEP0J,GAAwBpjB,EAAAA,EAAAA,IAAA,CAD7BC,EAAAA,IACKmjB,GA68BN,2GCrnCA,MAAMoP,EAAgD1lC,IAA4C,IAA3C,QAAE2D,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAO/D,EAC1F,OACIa,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAKP4hC,EAA8CrhC,IAChD,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,OAAE/K,EAAM,QAAEiJ,EAAO,aAAEnI,EAAY,OAAE0J,GAAWhJ,EAEzGwJ,EACFjN,EAAAA,cAAAA,EAAAA,SAAA,KACKgN,EACDhN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6K,GACL/I,GACGA,EAAOM,KAAK0D,GACDjG,EAAAA,cAAC6kC,EAAgB3kC,OAAAC,OAAA,GAAK8F,EAAI,CAAEkF,IAAKlF,EAAKkF,SAEpDpI,GACGA,EAAaR,KAAI,CAACmJ,EAAwBjJ,IAC/BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQiJ,OAMlDyB,EACFjC,GACAA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,KAG5C,OAAOo5B,EAAaj4B,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IAG9Eu4B,EAAiDvhC,IACnD,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,aAAEK,EAAY,QAAEnC,EAAO,aAAEnI,EAAY,UAAEiB,EAAS,OAAEyI,GAAWhJ,EAChI,IAAIwJ,EAAY,KAEhB,GAAKI,EAEE,CACH,MAAM,UAAEvJ,EAAS,SAAEI,GAAamJ,EAC1BC,EAAe,GAAGxJ,KAAaI,IAErC+I,EACIjN,EAAAA,cAAAA,EAAAA,SAAA,KACKgN,EACDhN,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,kBACrCW,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,4BACpCiO,GAEJpN,OAAOsN,KAAKH,GAAc9K,KAAI,CAAC+G,EAAM7G,KAClC,GAAI6G,IAASvH,EAAAA,QAAQ+B,WAAawF,IAASvH,EAAAA,QAAQmC,SAC/C,OAAO,KAEX,MAAMxB,EAAQsB,EAAU,QAAQsF,iBAAsBA,EACtD,OACItJ,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,sBAAuB8L,IAAK1I,GAChEC,EACA,KACA2K,EAAa/D,cArBtC2D,EAAYlK,EA8BhB,MAAMoK,EACFjC,GACAA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,GAAQkJ,KAG5C,OAAOo5B,EAAaj4B,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IAgB9Es4B,EAAeA,CACjB1lC,EACAyM,EACAC,EACAC,EACAC,EACAC,IAGIlM,EAAAA,cAACmM,EAAAA,MAAK,CACF9M,UAAU,2BACV+M,cAAe/M,EACfgN,WAAS,EACTC,MAAM,EACNC,gBAAgB,aAChBC,OAAQV,EACRW,OAAQP,GAERlM,EAAAA,cAAC0M,EAAAA,YAAW,CAACD,OAAQP,GAAcH,GACnC/L,EAAAA,cAAC2M,EAAAA,UAAS,KAAEX,GACZhM,EAAAA,cAAC4M,EAAAA,YAAW,KAAEX,IAqD1B,EAhD+ExI,IAC3E,MAAM,qBACFgK,EAAoB,gBACpBC,EAAe,QACfhI,EAAO,YACPiI,EAAW,cACXC,EAAa,sBACbC,EAAqB,KACrB9C,EAAI,SACJ+C,EAAQ,YACR5B,EAAW,8BACX6B,EAA6B,sBAC7BC,GACAvK,EAEEwhC,EACFjlC,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,4CACXuO,EACAG,GAIT,OAAIJ,EAEI3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACAu/B,EACAj3B,EACAL,IAOb3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACAu/B,EACAj3B,EACAH,GAEJ9C,GAjFIm6B,EAAC3kC,EAAc8N,EAA2BnC,KACvD,OAAQ3L,GACJ,IAAK,MACL,IAAK,OACD,OAAOP,EAAAA,cAAC8kC,EAAgB5kC,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KACpD,IAAK,OACL,IAAK,SACD,OAAOlM,EAAAA,cAACglC,EAAmB9kC,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KACvD,QACI,OAAO,OAwEEg5B,CAASp3B,EAAU/C,EAAMmB,oIC3GvC,MAAMqpB,EAA+Cp2B,IAAA,IAAC,GACzDC,EAAE,KACFmB,EAAI,MACJW,EAAK,QACLC,EAAO,UACP9B,EAAS,UACTuB,EAAS,WACTQ,EAAU,WACV0R,EAAU,SACVzR,EAAQ,eACRC,EAAc,YACdk0B,GACHr2B,EAAA,OACGa,EAAAA,cAAA,SACIZ,GAAIA,EACJmB,KAAMA,EACNW,MAAOA,EACP7B,UAAW,GAAGA,UACd8B,QAAqB,KAAZA,EAAiBA,OAAUO,EAAS,gBAC9BN,EACfo0B,YAAaA,EACb50B,UAAWD,EAAaC,GACxBS,SAAUA,EACV5B,SAAUqT,EACVnR,IAAKL,KAYA8zB,EAA0C/X,IAAA,IAAC,GAAEje,EAAE,MAAEyC,EAAK,UAAExC,EAAS,KAAEC,EAAI,aAAE+1B,GAAchY,EAAA,OAChGrd,EAAAA,cAAA,SAAOZ,GAAI,GAAGA,UAAYC,UAAW,GAAGA,UAAmByC,QAASD,IAC/D6T,EAAAA,EAAAA,QAAO2f,EAAc/1B,KAcjBslC,EAA4CxnB,IAA4E,IAA3E,GAAEhe,EAAE,UAAEC,EAAS,KAAEC,EAAI,UAAEC,EAAS,iBAAEC,EAAgB,SAAEC,EAAQ,QAAEE,GAASyd,EAC7H,MAAMxd,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBF,GACvDQ,GAAaC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAC7D,OACII,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CAACf,GAAIA,EAAIC,UAAWA,EAAS,aAAcE,EAAWE,SAAUA,EAAUE,QAASA,GAAaG,GAClGR,IAYAg2B,EAAoDR,IAA8C,IAA7C,GAAE11B,EAAE,UAAEC,EAAS,KAAEkB,EAAO,OAAM,QAAEC,GAASs0B,EACvG,MAAMr0B,EAAiB,GAAGpB,MAAckB,UAExC,OACIP,EAAAA,cAAA,OAAKZ,GAAIA,EAAIC,UAAWqB,GAAAA,CAAWD,EAAgB,QAAS,GAAGF,UAAcH,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHJ,EAAAA,cAAA,KAAGX,UAAW,GAAGoB,UAAwBD,KAK/CG,EAAgBC,IAClB,GAAIA,EAAW,CACX,MAAMC,EAAkBC,OAAOC,SAASH,EAAW,IACnD,IAAKI,MAAMH,GACP,OAAOA,ouBClHZ,MAAMskC,UAAsBnlC,IAAAA,cAG/BwD,YAAmBC,GACfE,MAAMF,GA0CH,KAAA2hC,iBAAoB5/B,IACvB5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,OAO5C,KAAAmyB,sBAAyB7tB,IAC5B5B,KAAKH,MAAMgC,OAAO4/B,UAAY7/B,EAAMG,OAAOzE,OAhDxCqI,SAAM,IAAA+7B,EAAAC,EACT,MAAM,QAAE7/B,EAAO,UAAE2/B,GAAczhC,KAAKH,MAAMgC,OAEpC+/B,EAAuB9/B,GACzB1F,IAAAA,cAAC+D,EAAAA,GAAI,CACD1E,UAAW,GAAG8lC,EAAcM,kCAC5Bl4B,IAAgB,QAAb+3B,EAAE5/B,EAAQ6H,WAAG,IAAA+3B,EAAAA,EAAI,KACpBhmC,KAAMoG,EAAQpG,KACduK,UAAW,CAAEC,OAAQlG,KAAKwhC,iBAAkBr7B,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAIjF+8B,EAA+B9E,EAAAA,gBAAgBC,YAAoC,QAAzB0E,EAAC3hC,KAAKH,MAAM6F,KAAKq8B,gBAAQ,IAAAJ,OAAA,EAAxBA,EAA0Bn0B,QACrFw0B,EAAyBP,GAC3BrlC,IAAAA,cAACqL,EAAAA,GAAiB,CACdhM,UAAW,GAAG8lC,EAAcM,qCAC5BnmC,KAAMomC,EAAsBL,EAAYzhC,KAAKH,MAAMO,UAAU6hC,sBAC7Dh8B,UAAW,CAAEC,OAAQlG,KAAKyvB,sBAAuBtpB,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAGtFa,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbqiC,WAAYliC,KAAKwhC,iBACjBW,cAAe,CACXp8B,YAAa/F,KAAKH,MAClBpE,UAAW8lC,EAAcM,kBAE7B//B,QAAS8/B,EACTH,UAAWO,EACXD,SAAUD,EAAsB9hC,KAAKoiC,uBAAyB,KAGlE,OAAOpiC,KAAKH,MAAMyG,WAAWV,GAmBzBy8B,2BAA2BhgC,GAC/B,MAAMigC,EAAYjgC,EAAKqZ,SAEvB,IADyB6mB,EAAAA,EAAAA,IAAaviC,KAAKH,MAAMyD,QAAQyB,WAChCu9B,EACrB,OAAOlmC,IAAAA,cAAA,OAAKX,UAAW,GAAG8lC,EAAcM,qCAAsC7hC,KAAKH,MAAMO,UAAUoiC,oBAEvG,IAAIC,EAAgB,GACpB,GAAIx2B,EAAAA,GAASgU,UAAW,CAAC,IAADyiB,EACpB,MAAMC,EAAiE,QAAvDD,GAAGx7B,EAAAA,EAAAA,IAAW,OAAQlH,KAAKH,MAAMyD,QAAQgB,sBAAc,IAAAo+B,EAAAA,EAAI,GACrEE,EAAU,IAAI7M,IAAI4M,EAAY5xB,OAAOyY,SAAS/sB,MACpDmmC,EAAQC,aAAaC,IAAI,YAAa,GAAGR,KACzCG,EAAgBG,EAAQnmC,KAE5B,OACIL,IAAAA,cAACC,EAAAA,OAAM,CACHZ,UAAW,GAAG8lC,EAAcM,2BAA0B,aAC1C7hC,KAAKH,MAAMO,UAAU2iC,wBACjCtmC,KAAMgmC,GAELziC,KAAKH,MAAMO,UAAU2iC,yBAK1BX,uBAAoB,IAAAY,EACxB,MAAMjB,EAAmC,QAA3BiB,EAAGhjC,KAAKH,MAAM6F,KAAKq8B,gBAAQ,IAAAiB,OAAA,EAAxBA,EAA0Bx1B,OAErCyS,EAAYhU,EAAAA,GAASgU,UAE3B,OACI7jB,IAAAA,cAAA,OAAKX,UAAW,GAAG8lC,EAAcM,kCAAmCrlC,KAAK,QACpEulC,MAAAA,OAAQ,EAARA,EAAUpjC,KAAI0D,IACX,MAAM4gC,EAAW,GAAGC,KAAKC,UAAU9gC,MAAS+e,OAAOnB,KAC7C3U,EAAmC0xB,EAAAA,gBAAgBoG,eAAe/gC,EAAKghC,QAC7E,OACIjnC,IAAAA,cAAA,OACImL,IAAK07B,EACLxnC,UAAW,GAAG8lC,EAAcM,wCAC5ByB,SAAU,EAAC,aACCjhC,EAAKoS,KACjBjY,KAAK,YAELJ,IAAAA,cAAA,MAAIX,UAAW,GAAG8lC,EAAcM,sCAAuCx/B,EAAKoS,MAC5ErY,IAAAA,cAAA,OAAKX,UAAW,GAAG8lC,EAAcM,yCAC7BzlC,IAAAA,cAACmnC,EAAAA,GAAK,CACFp9B,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCtJ,UAAW,GAAG8lC,EAAcM,oCAC5Bt6B,IAAK07B,EACLt3B,KAAK63B,EAAAA,EAAAA,IAAiBxjC,KAAKH,MAAMyD,QAAQyB,QAAQ4e,YAAarY,MAAAA,OAAK,EAALA,EAAOm4B,KACrEv3B,aAAclM,KAAKH,MAAMyD,QAAQyB,QAAQmH,aACzCC,cAAenM,KAAKH,MAAMgC,OAAO6hC,qBACjCC,QAASr4B,MAAAA,OAAK,EAALA,EAAOs4B,QAChBj3B,oBAAoB,SAExBvQ,IAAAA,cAAA,OAAKX,UAAW,GAAG8lC,EAAcM,qCAC5B7hC,KAAKqiC,2BAA2BhgC,WAhHzCk/B,EAAAM,iBAAmB,oBA2H/C,2ICjJO,MAAMgC,EAAwEhkC,IACjF,MAAM,cAAEsiC,GAAkBtiC,EAC1B,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK4lC,GACPtiC,EAAMiC,QACNjC,EAAM4hC,UACN5hC,EAAMkiC,WAKnB,+GCJA,MA0CM+B,EAAqBC,GAEnB3nC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKwnC,EAAWC,yBAChBD,EAAWE,iBACXF,EAAWG,oBACXH,EAAWI,kBAMtBC,EAAmBA,CACrBC,EACAjkC,EACAkkC,EACAC,EACAC,EACAC,EACAC,EACA9oC,EACA+oC,EACAC,KAEA,MAAM,cAAEC,GAAkBzkC,EAE1B,OAAIqkC,EACOroC,EAAAA,cAAAA,EAAAA,SAAA,KAAGqoC,GAEVJ,EACOA,EAAU1lC,KAAI,CAACmmC,EAAUjmC,IAExBzC,EAAAA,cAAA,OAAKX,UAAU,sBAAsB8L,IAAK,GAAG1I,KAASmhB,EAAAA,GAASC,UAAU3W,cACpEw7B,EAASC,SACTJ,EAAiB,KAAOK,EAAkBF,EAAU1kC,EAAWkkC,EAAe1oC,EAAkBgpC,GAChGD,EACGvoC,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,sCACXwpC,EAAuBH,EAAU1kC,EAAWkkC,EAAe1oC,EAAkBgpC,GAC7EE,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAEdN,EAASI,mBACT9oC,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,gCACXqpC,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAGdhpC,EAAAA,cAAAA,EAAAA,SAAA,KACK0oC,EAASK,cACTL,EAASM,WAO3BV,EACHtoC,EAAAA,cAAA,OAAKX,UAAU,wBACXW,EAAAA,cAAA,KAAGX,UAAU,iBAAiBopC,GAC7BN,GAGLnoC,EAAAA,cAAAA,EAAAA,SAAA,KAAGooC,IAULa,EAAuBA,CAACP,EAA+BQ,IAA6B,KACtFR,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAaH,IAQtEI,EAAwBZ,GAAkC,KAC5DA,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAY,IAGrET,EAAoBA,CACtBF,EACA1kC,EACAkkC,EACA1oC,EACAgpC,KACoB,IAAAe,EAEpB,IAAKb,EAASS,gBAAkBjB,IAA8B,QAAbqB,EAAAb,EAASp/B,YAAI,IAAAigC,OAAA,EAAbA,EAAeZ,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBACFiB,EAAsB,yBACtBC,EAAwB,oBACxBC,EAAmB,8BACnBC,EAA6B,uBAC7BC,GACA7lC,EAEEklC,EAAkBR,EAASS,cAAcD,gBAEzCtpC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBoU,EAAAA,kBAAkBk2B,eACzEC,GAAyBhqC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAEzE,OACII,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuoC,EAASS,cAAca,gBAC7BhqC,EAAAA,cAAA,OAAKX,UAAU,+BACV6pC,EACGlpC,EAAAA,cAAA,QAAMX,UAAU,WAAWuqC,GAE3B5pC,EAAAA,cAAA,QAAMX,UAAU,QAAQqqC,IAG/BR,GACGlpC,EAAAA,cAAA,OAAKX,UAAU,oCACXW,EAAAA,cAAA,QAAMX,UAAU,0CAA0CqpC,EAASS,cAAcc,aACjFjqC,EAAAA,cAACC,EAAAA,OAAM,CAACG,KAAK,OAAOf,UAAU,mCAAmCM,QAAS2pC,EAAqBZ,IAC1FmB,IAIb7pC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAU,4BACN0qC,EAAsB,CAC1BpqC,QAASspC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,KAMtDO,EAAqBC,GAClBA,GAAyC,IAA5BA,EAAU5jC,OAAOiC,OAI/BxI,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKgqC,EAAUC,SACfD,EAAUE,OACVF,EAAU5jC,QALR,KAUT+jC,EAA2BA,CAC7BC,EACAC,EACA/mC,IAEK8mC,EAIDvqC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKqqC,GACL/mC,EAAMgnC,UACNF,EAAkBG,SAClBH,EAAkBI,SAClBJ,EAAkBK,YAClBL,EAAkBM,IAClBN,EAAkBO,eAAiBP,EAAkBO,eAAiB,KACtEP,EAAkBQ,YAVhB,KAeTC,EAA6BA,CAC/BC,EACAT,EACA/mC,IAEKwnC,EAKDjrC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKqqC,GACLS,EAAoBC,SACpBD,EAAoBE,SACpBF,EAAoBG,QACpBH,EAAoBF,aARzBtnC,EAAMyD,QAAQ4B,UAAU4C,MAAM,uDACvB,MAYT2/B,EAAwBA,CAAC5nC,EAAuBO,IAC9CP,EAAM6nC,gBAAkB7nC,EAAM6nC,eAAe9iC,OAAS,EAElDxI,EAAAA,cAAA,OAAKX,UAAU,wBACVoE,EAAM6nC,eAAe/oC,KAAIgpC,IAAY,IAAAC,EAAAC,EAClC,OACIzrC,EAAAA,cAAA,OAAKmL,IAAKogC,EAAU,GAAGG,WAAYrsC,UAAU,+BACxCssC,EACGJ,EAAU,GACV9nC,EAAMykC,cACNlkC,EACA4nC,EAAYL,GACsC,QAD5BC,EACtB/nC,EAAMyD,QAAQgB,cAAc6B,eAAe8hC,eAAO,IAAAL,OAAA,EAAlDA,EAAoDM,uBAEvD9D,EACGuD,EACA9nC,EAAMO,UACNP,EAAMykC,cACNzkC,EAAM0kC,qBACN1kC,EAAM2kC,iBACN3kC,EAAM4kC,kBACN5kC,EAAM6kC,eACN7kC,EAAMjE,iBACNiE,EAAMsoC,sBAC4C,QADvBN,EAC3BhoC,EAAMyD,QAAQgB,cAAc6B,eAAe8hC,eAAO,IAAAJ,OAAA,EAAlDA,EAAoDK,4BAQzEroC,EAAM6kC,eACTtoC,EAAAA,cAAA,OAAKX,UAAU,uBACXW,EAAAA,cAAA,OAAKX,UAAU,wBACXW,EAAAA,cAAA,KAAGX,UAAU,iBAAiBoE,EAAMO,UAAUykC,eAC7ChlC,EAAM0kC,uBAIfnoC,EAAAA,cAAAA,EAAAA,SAAA,KAAGyD,EAAM2kC,kBAGXuD,EAA8BA,CAChCjD,EACAR,EACAlkC,EACAgoC,EACAxD,KACA,IAAAyD,EACA,MAAM/C,EAAwC,QAAzB+C,EAAGvD,EAASS,qBAAa,IAAA8C,OAAA,EAAtBA,EAAwB/C,iBAC1C,WAAEgD,EAAU,aAAEC,EAAY,kBAAEC,GAAsBpoC,EACxD,IAAIqoC,EAKJ,OAHAA,EAAanD,EAAkBgD,EAAaC,EAC5CE,EAAa3D,EAASp/B,MAAQo/B,EAASp/B,KAAKq/B,SAASa,eAAiBhB,EAAwB4D,EAAoBC,EAG9GrsC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKX,UAAU,8CACXW,EAAAA,cAAA,KAAGX,UAAW,8CAA8CgtC,EAAWrzB,uBACvEhZ,EAAAA,cAAA,KAAGX,UAAW,8CAA8CgtC,EAAWrzB,iBAAkBqzB,GACxFC,EAA2B5D,EAAU1kC,EAAWgoC,MAM3DnD,EAAyBA,CAC3BH,EACA1kC,EACAkkC,EACA1oC,EACAgpC,KACoB,IAAA+D,EAEpB,IAAK7D,EAASS,gBAAkBjB,IAA8B,QAAbqE,EAAA7D,EAASp/B,YAAI,IAAAijC,OAAA,EAAbA,EAAe5D,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBAAEqB,EAAsB,uBAAEJ,EAAsB,oBAAEE,GAAwB3lC,EAE1EklC,EAAkBR,EAASS,cAAcD,gBAEzCtpC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASL,EAAmBoU,EAAAA,kBAAkBk2B,eACzEC,GAAyBhqC,EAAAA,EAAAA,wBAAuBP,EAAmBI,GAEzE,OACII,EAAAA,cAAAA,EAAAA,SAAA,KACKkpC,EACGlpC,EAAAA,cAACC,EAAAA,OAAM,CAACZ,UAAU,qCAAqCM,QAAS2pC,EAAqBZ,GAAS,YAAY,UACrGmB,GAEL,KACJ7pC,EAAAA,cAACC,EAAAA,OAAMC,OAAAC,OAAA,CACHd,UAAU,sCACN0qC,EAAsB,CAC1BpqC,QAASspC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,KAMtDiC,EAAelD,IACjB,IAAI8D,EAAY,EAIhB,OAHAA,EAAY9D,EAAS+D,QAAO,CAACT,EAAO/lC,KAAQ,IAAAymC,EACxC,OAAOV,IAAkB,QAATU,EAAAzmC,EAAKqD,YAAI,IAAAojC,OAAA,EAATA,EAAW/D,SAASgE,WAAY,KACjD,GACIH,GAGLF,EAA6BA,CAAC5D,EAA+B1kC,EAA2BgoC,KAAiB,IAAAY,EAAAC,EAAAC,EAC3G,MAAM5D,EAAwC,QAAzB0D,EAAGlE,EAASS,qBAAa,IAAAyD,OAAA,EAAtBA,EAAwB1D,iBAC1C,UAAE6D,EAAS,WAAEC,GAAehpC,EAC5BipC,EAASjB,EAAQ,EAAIgB,EAAaD,EACxC,OACI/sC,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,oDACX6pC,EACGlpC,EAAAA,cAAA,KAAGX,UAAU,uDACc,QADuCwtC,EAC7DnE,EAASS,qBAAa,IAAA0D,OAAA,EAAtBA,EAAwBK,eACxB,KACsB,QADlBJ,EACJpE,EAASS,qBAAa,IAAA2D,OAAA,EAAtBA,EAAwB7C,aAE7B,KACJjqC,EAAAA,cAAA,KAAGX,UAAU,uDAAqD,IAC5D2sC,EACD,IACAiB,EAAM,QAO3B,EAnX4CxpC,IAAqB,IAAA0pC,EAAAC,EAAA,OAC7DptC,EAAAA,cAAA,MAAAE,OAAAC,OAAA,CAAKd,UAAWoE,EAAMpE,UAAWD,GAAIqE,EAAMrE,IAAQqE,EAAM4pC,uBAAuB5pC,IAC3EA,EAAMwL,MACNxL,EAAM6pC,kBAAoB5F,EAAkBjkC,EAAM6pC,kBAClD7pC,EAAMsoC,sBACHV,EAAsB5nC,EAAOA,EAAMO,WAEnChE,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM8pC,kBACXvF,EACGvkC,EAAM8nC,UACN9nC,EAAMO,UACNP,EAAMykC,cACNzkC,EAAM0kC,qBACN1kC,EAAM2kC,iBACN3kC,EAAM4kC,kBACN5kC,EAAM6kC,eACN7kC,EAAMjE,iBACNiE,EAAMsoC,sBAC4C,QADvBoB,EAC3B1pC,EAAMyD,QAAQgB,cAAc6B,eAAe8hC,eAAO,IAAAsB,OAAA,EAAlDA,EAAoDrB,wBAI/DroC,EAAM+pC,qBACHxtC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMgqC,qBACXhqC,EAAM+pC,oBACI,QAAVJ,EAAA3pC,EAAMiqC,YAAI,IAAAN,GAAVA,EAAYO,eACP3C,EAA2BvnC,EAAMmqC,wBAAyBnqC,EAAM+mC,kBAAmB/mC,GACnF6mC,EAAyB7mC,EAAMoqC,sBAAuBpqC,EAAM+mC,kBAAmB/mC,GACpFymC,EAAkBzmC,EAAMqqC,oBACxBrqC,EAAMsqC,2BACNtqC,EAAMuqC,sBACNvqC,EAAMwqC,uBAAyBrN,EAAAA,gBAAgBC,YAAYp9B,EAAMwqC,uBAC9DjuC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMyqC,+BAAgCzqC,EAAMwqC,uBACtD,KACHxqC,EAAM0kC,qBACN1kC,EAAM0qC,8BAGd1qC,EAAMykC,quBCrBR,MAAMz4B,UAAmBzP,EAAAA,cAO5BwD,YAAYC,GACRE,MAAMF,GA0DH,KAAA8B,oBAAuBC,GAA0C5B,KAAKH,MAAMgC,OAAOC,QAASpG,KAAOkG,EAAMG,OAAOzE,MAEhH,KAAAkkC,iBAAoB5/B,GAA0C5B,KAAKH,MAAMgC,OAAOnG,KAAOkG,EAAMG,OAAOzE,MAEpG,KAAAiU,qBAAwB3P,GAA0C5B,KAAKH,MAAMgC,OAAO/F,KAAMiR,SAAWnL,EAAMG,OAAOzE,MA7DrH0C,KAAKpE,kBAAmBkJ,EAAAA,EAAAA,oBACpB9E,KAAKH,MAAMyD,QAAQyB,QAAQC,kBAC3BhF,KAAKH,MAAMoF,aACXjF,KAAKH,MAAMqF,WAIflF,KAAKhE,SAAUC,EAAAA,EAAAA,kBAAiB,QAAS+D,KAAKpE,iBAAkB,GAAI,IAGjE+J,SACH,MAAM,QAAE7D,EAAO,MAAEwJ,EAAK,KAAExP,EAAI,KAAEJ,GAASsE,KAAKH,MAAMgC,OAC5C2oC,EAAsB1tC,GAAAA,CAAW,kBAAmBkD,KAAKH,MAAMgC,OAAOpG,WACtEsR,EAAWjR,GAAQA,EAAKiR,SAAWjR,EAAKiR,SAAW,GACzD/M,KAAKhE,QAAQ8T,cAAcC,MAAQhD,EACnC/M,KAAK9D,YAAaC,EAAAA,EAAAA,wBAAuB6D,KAAKpE,iBAAkBoE,KAAKhE,SACrE,MAAM4J,EAASC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbiC,QAAS9B,KAAKyqC,eAAe3oC,GAC7BwJ,MAAOtL,KAAK+L,mBAAmBT,GAC/B5P,KAAMsE,KAAK0qC,YAAYhvC,GACvBqR,SAAU/M,KAAK2qC,gBAAgB7uC,GAC/BkR,aAAchN,KAAK4qC,YAAY9uC,GAE/B+P,WAAY,CACR9F,YAAa/F,KAAKH,MAClBpE,UAAW+uC,GAGf39B,iBAAkB,CACdpR,UAAW,sBAGfovC,cAAe,CACXpvC,UAAW,8BAIfqR,KAAMhR,GACFA,EAAKkL,SACLlL,EAAKkL,QAAQC,gBAAcpB,EAAA,CACvB8D,IAAK,IACLnN,KAAM,OACNf,UAAW,kBACXgB,KAAMX,EAAKkL,QAAQC,eACnBoE,MAAO0B,EACP,aAAcjR,EAAKH,UACnBoG,OAAQjG,EAAKuW,aAAe,cAAWvU,EACvC/B,SAAS+uC,EAAAA,EAAAA,kBAAiB9qC,KAAKpE,iBAAkBoE,KAAKhE,QAAS+Q,IAC5D/M,KAAK9D,YAEhBT,UAAW+uC,IAGf,OAAOxqC,KAAKH,MAAMyG,WAAWV,GASzBglC,YAAY9uC,GAChB,GAAIA,EAAM,CACN,MAAMiR,EAAWjR,EAAKiR,SAAWjR,EAAKiR,SAAW,GAG3CqF,EAAoC,CACtCzW,UAAWG,EAAKH,UAChBF,UAAW,kBACXsR,SAAAA,EACA/F,QAASlL,EAAKkL,QAAQC,eACtBoL,aAAcvW,EAAKuW,aACnB7V,KAAM,OACN8V,qBAAsBtS,KAAK9D,WAC3BH,SAAS+uC,EAAAA,EAAAA,kBAAiB9qC,KAAKpE,iBAAkBoE,KAAKhE,QAAS+Q,IAEnE,OACI3Q,EAAAA,cAAC6P,EAAAA,GAAa,CACVnQ,KAAMsW,EACNnM,UAAW,CAAEkI,aAAcnO,KAAKuR,qBAAsBpL,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAIrG,OAAO,KAGH4lC,gBAAgB7uC,GACpB,OAAKA,GAASA,EAAKiR,SAIZ3Q,EAAAA,cAAA,QAAMX,UAAU,yBAAyBK,EAAKiR,UAH1C,KAMP09B,eAAe3oC,GACnB,OAAKA,GAAYA,EAAQpG,MAAgC,IAAxBoG,EAAQpG,KAAKkJ,OAK1CxI,EAAAA,cAAC6P,EAAAA,GAAa,CACVtC,IAAK7H,EAAQ6H,KAAO,KACpBjO,KAAMoG,EAAQpG,KACdD,UAAU,4BACVwK,UAAW,CAAEC,OAAQlG,KAAK2B,oBAAqBwE,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAR/E,KAaP2lC,YAAYhvC,GAChB,OAAKA,EAIDU,EAAAA,cAAC6P,EAAAA,GAAa,CACVtC,IAAI,MACJjO,KAAMA,EACND,UAAU,uBACVwK,UAAW,CAAEC,OAAQlG,KAAKwhC,iBAAkBr7B,eAAgBnG,KAAKH,MAAMyD,QAAQyB,WAP5E,KAYPgH,mBAAmB1J,EAA2B2J,GAClD,IAAK3J,IAASA,EAAKsJ,KAA2B,IAApBtJ,EAAKsJ,IAAI/G,OAC/B,OAAO,KAUX,OACIxI,EAAAA,cAAC6P,EAAAA,GAAc3P,OAAAC,OAAA,GACP8F,EAAI,CACR8D,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCmH,aAAclM,KAAKH,MAAMyD,QAAQyB,QAAQmH,aACzCC,cAAe9J,EAAK8J,eAZ0B,CAClDC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAQNC,oBAAoB,UAAS,cAChBX,EACb/F,UAAW,CAAEsB,IAAKvH,KAAKH,MAAMgC,OAAOyJ,OAAS,GAAInF,eAAgBnG,KAAKH,MAAMyD,QAAQyB,SACpF6H,uBAAqB,MAMrC,uHCzLO,MAAMhB,UAAuBxP,EAAAA,cACzBuJ,SACH,MAAM,WAAEkG,GAAe7L,KAAKH,MAC5B,OAAOzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsP,GAAa7L,KAAK8L,eAAe9L,KAAKH,QAGrDiM,eAAejM,GACnB,MAAM,QAAEiC,EAAO,iBAAE+K,EAAgB,KAAEC,EAAI,SAAEC,EAAQ,MAAEzB,EAAK,KAAE5P,EAAI,aAAEsR,GAAiBnN,EACjF,OAAIiC,EACO1F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsQ,GAAgB,IAAI/K,EAAO,KACrCgL,GAAQxB,EAEXlP,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuQ,GACLC,EACAzB,GAGFwB,EACAE,EAGP5Q,EAAAA,cAAAA,EAAAA,SAAA,KACKV,EACA4P,IAMjB,8tBCLA,MAAMy/B,UAAmB3uC,IAAAA,cAcrBwD,YAAmBC,GACfE,MAAMF,GAdO,KAAAmrC,YAAsB,oBAEtB,KAAAC,2BAAqC,OAgHrC,KAAAC,aAAgBtpC,IAC7B,MAAM2F,EAAM3F,EAAMupC,QAClB,GAAInrC,KAAKkC,MAAMkpC,kBACX,OAAQ7jC,GACJ,KAAK8jC,EAAAA,SAASC,OACV76B,YAAW,KAAK,IAAA86B,EAAAC,EAAAC,EAAAC,EACZ,MAAMC,EAAY/zB,UAAYA,SAASg0B,cAIpC,IAADC,EAAAC,GAF4B,QAA1BP,EAAAvrC,KAAK+rC,6BAAqB,IAAAR,GAAS,QAATC,EAA1BD,EAA4BlmC,eAAO,IAAAmmC,GAAnCA,EAAqCQ,SAASL,IACtB,QADgCF,EACxDzrC,KAAKisC,2BAAmB,IAAAR,GAAS,QAATC,EAAxBD,EAA0BpmC,eAAO,IAAAqmC,GAAjCA,EAAmCM,SAASL,MAE5C3rC,KAAKksC,yBACqB,QAA1BL,EAAA7rC,KAAK+rC,6BAAqB,IAAAF,GAAS,QAATC,EAA1BD,EAA4BxmC,eAAO,IAAAymC,GAAnCA,EAAqCxmC,WAE1C,IACH,MAEJ,KAAK+lC,EAAAA,SAASc,IACV17B,YAAW,KAAK,IAAA27B,EAAAC,EAAAC,EAAAC,EACZ,MAAMZ,EAAY/zB,UAAYA,SAASg0B,cAER,QAA3BQ,EAACpsC,KAAK+rC,6BAAqB,IAAAK,GAAS,QAATC,EAA1BD,EAA4B/mC,eAAO,IAAAgnC,GAAnCA,EAAqCL,SAASL,IACtB,QAAzBW,EAACtsC,KAAKisC,2BAAmB,IAAAK,GAAS,QAATC,EAAxBD,EAA0BjnC,eAAO,IAAAknC,GAAjCA,EAAmCP,SAASL,IAE7C3rC,KAAKksC,2BAEV,IACH,MAEJ,QACI,SAMC,KAAAM,oBAAuB5qC,IAAc,IAAA6qC,EAAAC,EAEX,QAAlCD,EAAAzsC,KAAK+rC,sBAAsB1mC,eAAO,IAAAonC,GAAlCA,EAAoCT,SAASpqC,EAAMG,SAAW/B,KAAKkC,MAAMkpC,mBACzC,QAAhCsB,EAAA1sC,KAAKisC,oBAAoB5mC,eAAO,IAAAqnC,GAAhCA,EAAkCV,SAASpqC,EAAMG,SAAW/B,KAAKkC,MAAMkpC,mBAI5EprC,KAAKksC,0BA9ILlsC,KAAK2sC,cAAgB3sC,KAAK2sC,cAAct/B,KAAKrN,MAC7CA,KAAKisC,oBAAsB7vC,IAAAA,YAC3B4D,KAAK+rC,sBAAwB3vC,IAAAA,YAC7B4D,KAAK4sC,mBAAqB5sC,KAAK4sC,mBAAmBv/B,KAAKrN,MACvDA,KAAKksC,uBAAyBlsC,KAAKksC,uBAAuB7+B,KAAKrN,MAC/DA,KAAKkrC,aAAelrC,KAAKkrC,aAAa79B,KAAKrN,MAC3CA,KAAKwsC,oBAAsBxsC,KAAKwsC,oBAAoBn/B,KAAKrN,MACzDA,KAAK64B,gBAAkB74B,KAAK64B,gBAAgBxrB,KAAKrN,MACjDA,KAAK6sC,SACDhtC,EAAMyD,QAAQyB,SAAWlF,EAAMyD,QAAQyB,QAAQmxB,QAAgD,WAAtCr2B,EAAMyD,QAAQyB,QAAQmxB,OAAOC,KAAoB,KAAO,KACrHn2B,KAAKkC,MAAQ,CACTkpC,mBAAmB,EACnBlO,SAAUl9B,KAAKk9B,UAIb,eACN,MAAyB,OAAlBl9B,KAAK6sC,UAAuC,OAAlB7sC,KAAK6sC,SAGnC1nC,oBACsB,IAAD2nC,EAAAC,EAAAC,EAApBhtB,EAAAA,GAASC,YACD,QAAR6sB,EAAAl1B,gBAAQ,IAAAk1B,GAARA,EAAU3T,iBAAiB,UAAYn5B,KAAKkrC,cAA2C,GAC/E,QAAR6B,EAAAn1B,gBAAQ,IAAAm1B,GAAM,QAANC,EAARD,EAAUE,YAAI,IAAAD,GAAdA,EAAgB7T,iBAAiB,YAAan5B,KAAKwsC,qBACnDxsC,KAAKktC,4BAA8Bn8B,SAAUo8B,EAAAA,EAAAA,mBAAkBp8B,OAAQ,SAAU/Q,KAAK64B,iBACtF74B,KAAK64B,mBAINO,uBACsB,IAADgU,EAAAC,EAAAC,EAApBttB,EAAAA,GAASC,YACD,QAARmtB,EAAAx1B,gBAAQ,IAAAw1B,GAARA,EAAU/T,oBAAoB,UAAYr5B,KAAKkrC,cAA2C,GAClF,QAARmC,EAAAz1B,gBAAQ,IAAAy1B,GAAM,QAANC,EAARD,EAAUJ,YAAI,IAAAK,GAAdA,EAAgBjU,oBAAoB,YAAar5B,KAAKwsC,qBAAqB,GAC3Ez7B,QAAUA,OAAOsoB,oBAAoB,SAAUr5B,KAAKktC,6BAA8B,IAInFvnC,SAAM,IAAA4nC,EAAAC,EACT,MAAM5nC,EAASC,EAAAA,EAAA,GACP7F,KAAKH,OAA6C,IACtDkrC,WAAY,CACRhlC,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,iBAAkBkD,KAAKH,MAAMgC,OAAOpG,UAAWuE,KAAKkC,MAAMg7B,SAAW,cAAgB,gBAC3GvzB,IAAK,OAET8jC,eAAgB,CACZ9jC,IAAK,SACLlO,UAAW,yBACX,aAAuC,QAA3B8xC,EAAEvtC,KAAKH,MAAMgC,OAAOC,eAAO,IAAAyrC,OAAA,EAAzBA,EAA2B7xC,KACzC,gBAAiBsE,KAAKkC,MAAMkpC,kBAC5BrvC,QAASiE,KAAKH,MACd9B,IAAKiC,KAAK+rC,uBAEd2B,mBAAoB,CAChBjyC,UAAW,uBACXkO,IAAK,QAETgkC,mBAAoB,CAChBlyC,UAAW,uBACXe,KAAM,OACNmN,IAAK,KACL5L,IAAKiC,KAAKisC,qBAEd2B,uBAAwB,CACpBnyC,UAAW,6BACXe,KAAM,eACNmN,IAAK,MAETkkC,0BAA2B,CACvBlkC,IAAKmkC,EAAAA,OACLryC,UAAW,yBACXuS,iBAA2C,QAA3Bw/B,EAAExtC,KAAKH,MAAMgC,OAAOC,eAAO,IAAA0rC,OAAA,EAAzBA,EAA2B9xC,KAC7CqyC,UAAW,8BACXC,WAAY,+BACZC,eAAgB,OAEpBC,aAAcluC,KAAKkC,MAAMg7B,SACzBiR,4BAA6BnuC,KAAKouC,yBAClCC,kBAAmBruC,KAAK4sC,mBACxB0B,sBAAuBtuC,KAAKksC,uBAC5BqC,iBAAkBvuC,KAAKkC,MAAMkpC,oBAEjC,OAAOprC,KAAKH,MAAMyG,WAAWV,GAGzBgnC,qBACJ,MAAM4B,EAAyBxuC,KAAKkC,MAAMkpC,kBAC1CprC,KAAKsC,SAAS,CACV8oC,mBAAoBoD,IAIpBtC,yBACJlsC,KAAKsC,SAAS,CACV8oC,mBAAmB,IAmDnBuB,cAAch1B,GAElB,GADAA,EAAEtU,iBACEsU,EAAE4I,cAAc9jB,MAAQkb,EAAE4I,cAAc9jB,KAAKmI,OAAS,GAAKmM,OAAQ,CACnE,GAAI/Q,KAAKH,MAAMyD,QAAQyB,QAAQ0pC,QAAQC,iBAAkB,CACrD,MAAMC,EAAe,CAAEC,OAAQ5uC,KAAKirC,4BACpCjrC,KAAKH,MAAMyD,QAAQyB,QAAQ0pC,QAAQ3L,IAAI9iC,KAAKgrC,YAAarzB,EAAE4I,cAAc9jB,KAAMkyC,GAEnF59B,OAAOyY,SAASjtB,OAAOob,EAAE4I,cAAc9jB,OAIvC2xC,yBACJ,MAAMS,EAAuC,CACzCziC,UAAW,CACPC,GAAI,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnC6pB,GAAI,CAAE/pB,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnC8pB,GAAI,CAAEhqB,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCC,GAAI,CAAEH,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCsiC,GAAI,CAAExiC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,IAEvCE,UAAU,GAERqiC,EAAc/uC,KAAKH,MAAMgC,OAAOktC,aAAe/uC,KAAKH,MAAMgC,OAAOktC,YACvE,OACIA,GACAA,EAAYpwC,KAAI,CAAC0D,EAAMxD,KAAS,IAAAmwC,EAAAC,EAC5B,MAAM3jC,EAAQjJ,MAAAA,OAAI,EAAJA,EAAM6sC,UACdC,EAAa,CACfjjC,aAAclM,KAAKH,MAAMyD,QAAQyB,QAAQmH,aACzCC,cAAeb,MAAAA,GAAoB,QAAf0jC,EAAL1jC,EAAOa,qBAAa,IAAA6iC,GAApBA,EAAsB5iC,UAAYd,EAAMa,cAAgB0iC,GAE3E,OACIzyC,IAAAA,cAAA,KACImL,IAAK1I,EACLpD,UAAU,mCACV6nC,SAAU,EACV7mC,KAAM4F,MAAAA,GAAqB,QAAjB4sC,EAAJ5sC,EAAM+sC,uBAAe,IAAAH,OAAjB,EAAJA,EAAuBhoC,eAAc,aAC/B5E,MAAAA,OAAI,EAAJA,EAAMgtC,SAClBtzC,QAASiE,KAAK2sC,cACdnwC,KAAK,YAELJ,IAAAA,cAAA,QAAMX,UAAU,oCAAoC4G,MAAAA,OAAI,EAAJA,EAAMgtC,UAC1DjzC,IAAAA,cAACmnC,EAAAA,GAAK,CACFp9B,eAAgBnG,KAAKH,MAAMyD,QAAQyB,QACnCtJ,UAAU,kCACV8L,IAAK1I,EACL8M,KAAKL,MAAAA,OAAK,EAALA,EAAOK,MAAO,GACnBO,aAAcijC,EAAWjjC,aACzBC,cAAegjC,EAAWhjC,cAC1Bw3B,QAASr4B,MAAAA,OAAK,EAALA,EAAOq4B,QAChBh3B,oBAAoB,OACpBC,uBAAqB,QAQrCisB,kBACJ74B,KAAK6sC,SAAW7sC,KAAKi2B,eACrBj2B,KAAKsC,SAAS,CAAE46B,SAAUl9B,KAAKk9B,WAG3BjH,eACJ,MAAM,QAAE3yB,GAAYtD,KAAKH,MACzB,GAAIyD,EAAQyB,SAAWzB,EAAQyB,QAAQmxB,QAA0C,WAAhC5yB,EAAQyB,QAAQmxB,OAAOC,KACpE,MAAO,KAGX,QAAsBr4B,WAAXiT,QAAwBA,OAAOqlB,WAAY,CAClD,MAAMlqB,EAAe5I,EAAQyB,QAAQmH,aACrC,GAAIA,EACA,OAAIA,EAAaG,IAAM0E,OAAOqlB,YAAclqB,EAAaG,GAAGE,EACjD,KACAL,EAAamqB,IAAMtlB,OAAOqlB,YAAclqB,EAAamqB,GAAG9pB,EACxD,KACAL,EAAaoqB,IAAMvlB,OAAOqlB,YAAclqB,EAAaoqB,GAAG/pB,EACxD,KACAL,EAAaO,IAAMsE,OAAOqlB,YAAclqB,EAAaO,GAAGF,EACxD,KAEJ,KAGf,MAAO,OA1OXkC,EAAAA,EAAAA,IAAA,CADC4K,EAAAA,IAAU,gCAqBD5K,EAAAA,EAAAA,IAAA,CAAT0Z,EAAAA,IAAQ,6BA0Nb,kGCvRA,QAAgBtoB,GACLzD,EAAAA,cAAAA,EAAAA,SAAA,KAAGkzC,EAAkBzvC,IAgB1B0vC,EAA0B1vC,IAC5B,MAAM,mBAAE8tC,EAAkB,uBAAEC,EAAsB,4BAAEO,GAAgCtuC,EAC9E2vC,EAAUrB,EAA6BxvC,KAAI,CAAC0D,EAAMxD,IAEhDzC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKqxC,EAAsB,CAAErmC,IAAK1I,IAClCwD,KAIb,OACIjG,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKoxC,EAAkB,CAAE8B,aAAc5vC,EAAMyuC,wBAC7CkB,IAkBPF,EAAqBzvC,IACvB,MAAM,aAAEquC,EAAY,WAAEnD,GAAelrC,EACrC,OAAOzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKwuC,GAAamD,EAfTruC,CAAAA,IAAgD,IAAA6vC,EACvE,MAAM,0BAAE7B,GAA8BhuC,EACtC,OACIzD,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsxC,EAAyB,CAAE9xC,QAAS8D,EAAMwuC,oBAChDjyC,EAAAA,cAAA,WACsC,QADtCszC,EACK7vC,EAAMsuC,mCAA2B,IAAAuB,OAAA,EAAjCA,EAAmC/wC,KAAI,CAAC0D,EAAMxD,IACpCzC,EAAAA,cAAA,OAAKmL,IAAK1I,GAAQwD,QASMstC,CAAkB9vC,GA5CzCA,CAAAA,IAA+B,IAAA+vC,EACvD,MAAM,eAAEnC,EAAc,mBAAEC,GAAuB7tC,EAC/C,OACIzD,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKkxC,EAAc,CAAE1xC,QAAS8D,EAAMwuC,oBAChB,QADiCuB,EACrD/vC,EAAMgC,OAAOC,eAAO,IAAA8tC,OAAA,EAApBA,EAAsBl0C,KACvBU,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKmxC,KAEb7tC,EAAM0uC,iBAAmBgB,EAAuB1vC,GAAS,OAoCQgwC,CAAmBhwC,+qBCjCjG,MAAMiwC,UAAoB1zC,EAAAA,cACtBwD,YAAYC,GACRE,MAAMF,GAGH8F,SACH,MAAM,MAAEY,GAAUvG,KAAKH,MAEvB,GAAI0G,GAA2C,IAAlCA,EAAMwpC,iBAAiBnrC,OAEhC,OADA5E,KAAKH,MAAMyD,QAAQ4B,UAAU4C,MAAM,6DAC5B,KASX,KALI9H,KAAKH,MAAMyD,QAAQyB,SACnB/E,KAAKH,MAAMyD,QAAQyB,QAAQ0pC,SAC3BzuC,KAAKH,MAAMyD,QAAQyB,QAAQ0pC,QAAQC,gBACnC1uC,KAAKH,MAAMyD,QAAQyB,QAAQ0pC,QAAQC,kBAGnC,OAAO,KAGX,MAAMsB,EAASnqC,EAAAA,EAAA,GACR7F,KAAKH,OAAK,IACbiwC,YAAa,CACT/pC,YAAa/F,KAAKH,MAClBpE,UAAWqB,GAAAA,CAAW,kBAAmBkD,KAAKH,MAAMgC,OAAOpG,YAE/Dw0C,gBAAiB,CACb,aAAcjwC,KAAKH,MAAMgC,OAAOquC,QAChCz0C,UAAW,sBAAsBuE,KAAKH,MAAMgC,OAAOquC,SAAW,aAC7B,aAA7BlwC,KAAKH,MAAMgC,OAAOsuC,YAAuC,WAAa,KAE1ExmC,IAAK,KACLnN,KAAM,SAEV4zC,gBAAiB,CACb30C,UAAW,qBACXkO,IAAK,KACL25B,SAAU,IACV9mC,KAAM,QAEV6zC,wBAAyB9pC,GAASA,EAAMwpC,iBAAiBnrC,OAAS,GAAK2B,EAAMwpC,mBAGjF,OAAO/vC,KAAKH,MAAMyG,WAAW0pC,IAIrC,iICjEO,MAAMM,EAAmDzwC,IAC5D,MAAM,gBAAEowC,EAAe,wBAAEI,EAAuB,gBAAED,EAAe,YAAEN,GAAgBjwC,EACnF,OAAuC,IAAnCwwC,EAAwBzrC,QACxB/E,EAAMyD,QAAQ4B,UAAU4C,MAAM,kDACvB,MAGP1L,IAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKuzC,GACR1zC,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK0zC,GACLI,EAAwB1xC,KAAI,CAAC4xC,EAA+B1xC,IAErDzC,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6zC,EAAe,CAAE7oC,IAAK1I,IAC3B0xC,QAS7B,2GCPA,MAAMvoC,EAA0DnI,IAC5D,MAAM,QAAEX,EAAO,MAAEJ,EAAK,aAAEK,EAAY,MAAEG,GAAUO,EAChD,OACIzD,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK2C,GACLJ,EACAK,EACAG,IAeP2I,EAAcA,CAChBxM,EACAyM,EACAC,EACAC,EACAC,EACAC,IAGIlM,EAAAA,cAACmM,EAAAA,MAAK,CACF9M,UAAU,2BACV+M,cAAe/M,EACfgN,WAAS,EACTC,MAAM,EACNC,gBAAgB,aAChBC,OAAQV,EACRW,OAAQP,GAERlM,EAAAA,cAAC0M,EAAAA,YAAW,CAACD,OAAQP,GAAcH,GACnC/L,EAAAA,cAAC2M,EAAAA,UAAS,KAAEX,GACZhM,EAAAA,cAAC4M,EAAAA,YAAW,KAAEX,IAUpBY,EAAuDpJ,IAEzD,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,OAAE/K,EAAM,QAAEiJ,EAAO,aAAEnI,EAAY,OAAE0J,GAAWhJ,EAEzGwJ,EACFjN,EAAAA,cAAAA,EAAAA,SAAA,KACKgN,EACDhN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK6K,GACL/I,GACGA,EAAOM,KAAK0D,GACDjG,EAAAA,cAAC4L,EAAyB1L,OAAAC,OAAA,GAAK8F,EAAI,CAAEkF,IAAKlF,EAAKkF,SAE7DpI,MAAAA,OAAY,EAAZA,EAAcR,KAAI,CAACmJ,EAAwBjJ,IACjCzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YAAaxB,OAMzDyB,EACFjC,GACAA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YAAavB,KAGvD,OAAOE,EAAYiB,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IAkB7EW,EAA0D3J,IAE5D,MAAM,eAAEqJ,EAAc,YAAE9B,EAAW,aAAE+B,EAAY,iBAAEC,EAAgB,QAAE9B,EAAO,aAAEnI,EAAY,UAAEiB,EAAS,OAAEyI,GAAWhJ,EAClH,IAAIwJ,EAAY,KAChB,MAAMI,EAAe5J,EAAM4J,aAE3B,GAAKA,EAEE,CAEH,MAAM,UAAEvJ,EAAS,SAAEI,GAAamJ,EAC1BC,EAAe,GAAGxJ,KAAuBI,IAE/C+I,EACIjN,EAAAA,cAAAA,EAAAA,SAAA,KACKgN,EACDhN,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,kBACrCW,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,4BACpCiO,GAEJpN,OAAOsN,KAAKH,GAAc9K,KAAI,CAAC+G,EAAM7G,KAClC,GAAI6G,IAASvH,EAAAA,QAAQ+B,WAAawF,IAASvH,EAAAA,QAAQmC,SAC/C,OAAO,KAEX,MAAMxB,EAASsB,EAAU,QAAQsF,iBAAiCA,EAClE,OACItJ,EAAAA,cAACwL,EAAAA,KAAI,CAAC+B,IAAI,KAAKlO,UAAW,GAAG2L,EAAY3L,sBAAuB8L,IAAK1I,EAAMyK,YACtExK,EACA,KACA2K,EAAa/D,cAtBtC2D,EAAYlK,EA+BhB,MAAMoK,EACFjC,GACAA,EAAQ3I,KAAI,CAACoJ,EAAyBlJ,IAC3BzC,EAAAA,cAACA,EAAAA,SAAc,CAACmL,IAAK1I,EAAMyK,YAAavB,KAGvD,OAAOE,EAAYiB,GAAgB,EAAMC,EAAcE,EAAWE,EAAaV,IAsFnF,EAzD0EhJ,IAEtE,MAAM,qBACFgK,EAAoB,gBACpBC,EAAe,QACfhI,EAAO,YACPiI,EAAW,cACXC,EAAa,sBACbC,EAAqB,KACrB9C,EAAI,SACJ+C,EAAQ,YACR5B,EAAW,8BACX6B,EAA6B,sBAC7BC,GACAvK,EAEEwK,EACFjO,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,4CACXuO,EACAG,GAIT,OAAIJ,EAEI3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACD1F,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,qDACZW,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,6DACXoE,EAAMO,UAAUkK,qCAErBlO,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,0DACXoE,EAAMO,UAAUmK,kCAEpBF,GAEJD,EACAL,IAOb3N,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKsN,GACRzN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKuN,GACLhI,EACAuI,EACAD,EACAH,GAEJ9C,GAvEGqD,EAAC7N,EAAc8N,EAA2BnC,KACtD,OAAQ3L,GACJ,IAAK,MACL,IAAK,OACD,OAAOP,EAAAA,cAAC6M,EAAyB3M,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KAC7D,IAAK,OACL,IAAK,SACD,OAAOlM,EAAAA,cAACoN,EAA4BlN,OAAAC,OAAA,GAAKkO,EAAS,CAAE5B,OAAQP,KAChE,QACI,OAAO,OA8DEkC,CAAQN,EAAU/C,EAAMmB,sIC9N7C,MAAMkoC,EAAuBC,IAEzB,MAAM,4BAAEC,EAA2B,QAAEC,GAAYF,EAEjD,OAAOr0C,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm0C,GAA8BC,IAwG7CC,EAAiCA,CACnCzkC,EACAtM,KACqC,IAAAgxC,EAAAC,EACrC,IAAIC,EAAoC,GAExC,MAAMC,EAAgD,QAA3BH,EAAGhxC,EAAMyD,QAAQ+Y,IAAIxa,cAAM,IAAAgvC,OAAA,EAAxBA,EAA0BI,qBAOxD,OANIpxC,EAAM6F,KAAKwrC,QAAQ1jC,SACnBujC,GAAgBI,EAAAA,EAAAA,qBAAoBtxC,EAAM6F,KAAKwrC,QAAQ1jC,OAAO4jC,OAAQvxC,EAAMyD,QAAQyB,QAAQ4e,cAE5FqtB,GAAyBD,IACzBA,EAAgB,GAAGA,KAAiBC,KAEjC,CACHN,4BAA6B,CACzB/mC,IAAK,KACLlO,UAAW,mCACXe,KAAM,MACN8mC,SAAU,EACV/7B,IAAK,EACL,aAAc,GACd,iBAAiB,GAErBopC,QACIv0C,IAAAA,cAACmnC,EAAAA,GAAK,CACFp9B,eAAgBtG,EAAMyD,QAAQgB,cAAc6B,eAC5C1K,UAAU,0CACVkQ,IAAI,QACJO,aAAcrM,EAAMyD,QAAQyB,QAAQmH,aACpCC,cAAkD,QAArC2kC,EAAEjxC,EAAMgC,OAAOwvC,8BAAsB,IAAAP,EAAAA,EAAI3kC,EACtDQ,oBAAoB,QACpB2kC,wBAAyBzxC,EAAMgC,OAAO0vC,oBACtCC,YAAaT,MAoBvBU,EAAgD,CAClDrlC,UAAW,CACPC,GAAI,CAAEC,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,KAClDsiC,GAAI,CAAExiC,EAAG,6BAA8BC,EAAG,IAAKC,EAAG,MAEtDE,UAAU,EACVglC,iBAAiB,GASfC,EAAmBA,CAACC,EAA8C/xC,KAEpE,MAAM,yBAAEgyC,EAAwB,kCAAEC,GAAsCF,GAClE,MAAE1vC,EAAK,WAAE6vC,GAAelyC,EACxBmyC,EA5BoB3qC,CAAAA,GACnBA,MAAAA,OAAK,EAALA,EAAO1I,KAAI0D,IACP,CACHshC,QAASthC,EAAKsuC,QAAQ9wC,MAAM8jC,QAC5Bh4B,IAAKtJ,EAAKsuC,QAAQ9wC,MAAM8L,QAwBNsmC,CAAqBF,EAAW1qC,OAEpDA,EAEFnF,EAAMgwC,YAAcF,GAAkD,UAA7BA,EAAkB,GAAGrmC,IACxD,CAACilC,EAA+Ba,EAA+B5xC,IAE/DmyC,MAAAA,OAAiB,EAAjBA,EAAmBrzC,KAAI,CAAC0D,EAAkB7G,IA1KtB22C,EAC9B7mC,EACAa,EACAimC,EACAC,EACAxyC,KACqC,IAAAyyC,EAAAC,EACrC,IAAIxB,EAAoC,GAExC,MAAMC,EAAgD,QAA3BsB,EAAGzyC,EAAMyD,QAAQ+Y,IAAIxa,cAAM,IAAAywC,OAAA,EAAxBA,EAA0BrB,qBACpDpxC,EAAM6F,KAAKwrC,QAAQ1jC,SACnBujC,GAAgBI,EAAAA,EAAAA,qBAAoBtxC,EAAM6F,KAAKwrC,QAAQ1jC,OAAO4jC,OAAQvxC,EAAMyD,QAAQyB,QAAQ4e,cAE5FqtB,GAAyBD,IACzBA,EAAgB,GAAGA,KAAiBC,KAMxC,MAAMj1C,EAAUA,KAAK,IAAAy2C,EAAAC,EACG,QAApBD,EAAA3yC,EAAM6yC,sBAAc,IAAAF,GAApBA,EAAAG,KAAA9yC,GAC4B,QAA5B4yC,EAAA5yC,EAAM+yC,8BAAsB,IAAAH,GAA5BA,EAAAE,KAAA9yC,EAA+BuyC,GAC/BvyC,EAAMqC,MAAM2wC,YAAcT,GAYxBU,EAAiBlxC,IACfA,EAAMupC,UAAYE,EAAAA,SAAS0H,QAC3BnxC,EAAMyB,iBACNtH,MAIR,MAAO,CACH20C,4BAA6B,CACzB/mC,IAAK,KACLlO,UAnBQqB,GAAAA,CACZ,mCACAu1C,IAAwBD,EAAU,0CAA4C,IAkB1E51C,KAAM,eACN+K,IAAK6qC,GAETzB,QACIv0C,IAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,yBACZW,IAAAA,cAACC,EAAAA,OAAM,CACHG,KAAK,MAAK,aACE8O,EAAMq4B,QAAO,gBACV0O,IAAwBD,EAAO,gBAC/B,GAAGvyC,EAAMrE,sBAAsB42C,IAC9C32C,UAAU,sCACVM,QAASA,EACTi3C,UAAWF,GAEX12C,IAAAA,cAACmnC,EAAAA,GAAKjnC,OAAAC,OAAA,CACF4J,eAAgBtG,EAAMyD,QAAQgB,cAAc6B,eAC5C1K,UAAU,+BACN6P,EAAK,CACTY,aAAcrM,EAAMyD,QAAQyB,QAAQmH,aACpCC,cAAkD,QAArComC,EAAE1yC,EAAMgC,OAAOwvC,8BAAsB,IAAAkB,EAAAA,EAAIpmC,EACtDQ,oBAAoB,OACpB2kC,sBAAuBzxC,EAAMqC,MAAM+wC,wBACnCzB,YA3BC,IA2BYY,EAA2BrB,EAAgBzlC,EAAMK,IAC9DunC,oBA5BC,IA4BoBd,MAG7Bh2C,IAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,kCACZW,IAAAA,cAACC,EAAAA,OAAM,CACH22C,UAAWF,EACXznC,MAAOxL,EAAMO,UAAU+yC,oBACvB32C,KAAK,SACLf,UAAU,+CACVM,QAASA,QA6Ffo2C,CAA0B9vC,EAAMovC,EAA+Bj2C,EAAI0G,EAAM2wC,YAAahzC,KAGpG,OACIzD,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKs1C,GACNz1C,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKu1C,GAAoCzqC,MAAAA,OAAK,EAALA,EAAO1I,IAAI6xC,MAsBrE,EAZ2D3wC,IAEvD,MAAM,cAAEuzC,EAAa,WAAErB,EAAU,aAAEsB,EAAY,MAAE9qC,GAAU1I,EAC3D,OACIzD,IAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAK82C,GACRj3C,IAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK62C,IACT7qC,EACAopC,EAAiBI,EAAYlyC,2GC3M1C,MAAMyzC,EAAkBA,CAACzzC,EAA6BO,EAAkCmzC,IAEhFn3C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM2zC,WACZp3C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM4zC,aACZr3C,EAAAA,cAAA,WACKyD,EAAM6zC,OACN7zC,EAAM8zC,MAEV9zC,EAAMhC,MAEXzB,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM+zC,eACZx3C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMg0C,aACXh0C,EAAMi0C,YACNj0C,EAAMk0C,YAEX33C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMm0C,eACXn0C,EAAMo0C,aACNp0C,EAAMq0C,aACNr0C,EAAMs0C,cAEX/3C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMu0C,eACXb,OAAez1C,EAAY1B,EAAAA,cAAA,KAAGX,UAAU,4BAA4B2E,EAAUi0C,sBAC9Ex0C,EAAMy0C,KACNz0C,EAAM00C,QACN10C,EAAM+b,QAyCrB44B,EAA4B30C,IAC9B,MAAMqxC,EAAUrxC,EAAM6F,KAAKwrC,QAAQ1jC,OACnC,OACIpR,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,iCACZW,EAAAA,cAAA,OAAKX,UAAU,2BAjCCoE,CAAAA,IAAmF,IAAA40C,EAC3G,MAAMC,EAA8C,QAA5BD,EAAG50C,EAAM6F,KAAKwrC,QAAQ1jC,cAAM,IAAAinC,OAAA,EAAzBA,EAA2BE,gBAChDC,GAAWpR,EAAAA,EAAAA,kBAAiBkR,EAAoB70C,EAAMyD,QAAQyB,QAAQ4e,aAa5E,OACIvnB,EAAAA,cAACmnC,EAAAA,GAAK,CACF53B,IAAKipC,MAAAA,EAAAA,EAAY,GACjB1oC,aAAcrM,EAAMyD,QAAQyB,QAAQmH,aACpCC,cAAetM,EAAMgC,OAAOsK,cAAgBtM,EAAMgC,OAAOsK,cAhBpB,CACzCC,UAAW,CACPC,GAAI,CAAEC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC6pB,GAAI,CAAE/pB,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvC8pB,GAAI,CAAEhqB,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCC,GAAI,CAAEH,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCsiC,GAAI,CAAExiC,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CE,UAAU,EACVglC,iBAAiB,MAqB6BmD,CAAmBh1C,IAC7DzD,EAAAA,cAAA,OAAKX,UAAU,6BACXW,EAAAA,cAAA,OAAKX,UAAU,2BAA2By1C,MAAAA,OAAO,EAAPA,EAASz8B,MACnDrY,EAAAA,cAAA,OAAKX,UAAU,gCAAgCy1C,MAAAA,OAAO,EAAPA,EAASz8B,MACxDrY,EAAAA,cAAA,OAAKX,UAAU,4BAA4By1C,MAAAA,OAAO,EAAPA,EAASE,WA+GpE,EA3C+FvxC,IAC3F,MAAM,iBACFi1C,EAAgB,QAChBhzC,EAAO,YACPiE,EAAW,iBACXgvC,EAAgB,2BAChBC,EAA0B,aAC1BC,EAAY,mBACZC,EAAkB,kBAClBC,EAAiB,iBACjBC,EAAgB,YAChBC,EAAW,eACXC,EAAc,MACdpzC,EAAK,WACLqzC,EAAU,UACVn1C,GACAP,EAEJ,OAAK01C,GAAevY,EAAAA,gBAAgBC,YAAYoY,IAAiBnzC,EAAMszC,gBAKnEp5C,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKwJ,GACPjE,EACD1F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK24C,GACLI,EACAR,GAEL14C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAK64C,GACLG,GAAcjC,EAAgBiC,EAAYn1C,GAAW,GACrDi1C,EAAY12C,KAAI82C,GACNnC,EAAgBmC,EAAQr1C,GAAW,OAGhD48B,EAAAA,gBAAgBC,YAAYoY,IAAgBnzC,EAAMszC,iBAAmBR,EACtEC,EA7Fcp1C,CAAAA,IACvB,MAAM,UAAEO,EAAS,YAAE2F,EAAW,YAAE2vC,GAAgB71C,EAChD,OACIzD,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKm5C,EAAYz+B,MAAWlR,GAC9B2vC,EAAYC,YACbv5C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYrsC,WAClBjN,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYvuC,MAClB/K,EAAAA,cAACwL,EAAAA,KAAI,CAACnM,UAAU,qBACX+4C,EAAyB30C,GAC1BzD,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYE,SAAQ,CAAEn6C,UAAU,8BACtCW,EAAAA,cAAA,OAAKX,UAAU,gDAAgD2E,EAAUy1C,mBACxEH,EAAYhC,SAGrBt3C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYE,SAAQ,CAAEn6C,UAAU,6BACrC2E,EAAU01C,iBACVJ,EAAYK,YAEjB35C,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYE,SAAQ,CAAEn6C,UAAU,oCACrC2E,EAAU41C,gBACVN,EAAYO,WAEhBP,EAAYQ,iBACZR,EAAY5tC,QAGrB1L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKm5C,EAAYnsC,aACjBmsC,EAAYS,aACZT,EAAYU,gBAkEhBC,CAAkBx2C,GAtDLy2C,EAACz2C,EAAoCqC,IAEvD9F,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMoX,OACZ7a,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM81C,aAAczzC,EAAMq0C,SAAW12C,EAAM22C,gBAAkB32C,EAAM4mC,QAC7ErqC,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAMwJ,WACXnH,EAAMq0C,SAAW12C,EAAM42C,uBAAyB,CAAC52C,EAAM62C,cAAe72C,EAAM82C,aAAc92C,EAAMiI,QAErG1L,EAAAA,cAACwL,EAAAA,KAAItL,OAAAC,OAAA,GAAKsD,EAAM0J,aAAcrH,EAAMq0C,SAAW12C,EAAM+2C,gBAAkB,CAAC/2C,EAAMs2C,aAAct2C,EAAMu2C,gBAgDjGE,CAAkBnB,EAAmBjzC,IAnBnC9F,EAAAA,cAACyL,EAAAA,OAAMvL,OAAAC,OAAA,GAAKwJ,GAAcgvC","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-button.tsx?6d02","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-error.tsx?88d7","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-input.tsx?8d0b","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-label.tsx?fc00","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.tsx?c6ac","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.view.tsx?17ef","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/business-organization-list.view.tsx?8bf1","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/content-block.view.tsx?7751","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/footer-item.view.tsx?afd6","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/media-gallery.view.tsx?7624","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpButtonProps {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n link?: string;\r\n telemetryContent: ITelemetryContent;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nexport const SignUpButton: React.FC = ({\r\n id,\r\n className,\r\n text,\r\n ariaLabel,\r\n telemetryContent,\r\n disabled,\r\n link,\r\n onClick\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, text);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpButton;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../business-sign-up';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value?: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface IBusinessSignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const SignUpInput: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n fieldReference\r\n}) => {\r\n if (type === InputType.TextArea) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpInput;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpLabelProps {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\r\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\r\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\r\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\r\n\r\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\r\n formItems?: IFormItem[];\r\n}\r\n\r\nexport interface IBusinessSignUpItem {\r\n wrapper: INodeProps;\r\n isAddressInput?: boolean;\r\n id: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input?: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessState {\r\n isReady: boolean;\r\n formItems: IFormItem[];\r\n addressHasErrors: boolean;\r\n showAddressErrors: boolean;\r\n hasSubmitErrors: boolean;\r\n}\r\n\r\nexport interface IBusinessSignUpLocalAccount {\r\n FormWrapper: INodeProps;\r\n items: IBusinessSignUpItem[];\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessSignUpViewProps {\r\n className: string;\r\n businessSignUp: IModuleProps;\r\n ContainerWrapper: INodeProps;\r\n heading: React.ReactNode;\r\n businessSignUpForm: IBusinessSignUpLocalAccount;\r\n formItems: IFormItem[];\r\n}\r\n\r\nexport interface IFormItem {\r\n id: string;\r\n type: InputType;\r\n label: string;\r\n value: string;\r\n maxChars?: string;\r\n isRequired: boolean;\r\n pattern?: string;\r\n address?: Address;\r\n customClass?: string;\r\n fieldReference?: React.RefObject;\r\n}\r\n\r\nexport enum InputType {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\r\n Text = 'text',\r\n Address = 'address',\r\n Email = 'email',\r\n TextArea = 'textarea'\r\n}\r\n\r\nexport enum InputID {\r\n FirstName = 'FirstName',\r\n LastName = 'LastName',\r\n Email = 'CompanyEmail',\r\n CompanyName = 'CompanyName',\r\n Address = 'CompanyAddress',\r\n JobTitle = 'JobTitle',\r\n Size = 'CompanySize',\r\n Department = 'Department',\r\n Comment = 'Comment'\r\n}\r\n\r\nexport const renderInputSection = (\r\n inputs: IFormItem[],\r\n className: string,\r\n needToReset: boolean,\r\n onInputChange: (event: React.ChangeEvent) => void,\r\n showErrors: boolean,\r\n addressForm?: React.ReactNode,\r\n updateAddress?: (errors: boolean, currAddress?: Address) => void\r\n): IBusinessSignUpItem[] => {\r\n return inputs.map((element, index) => {\r\n const { id, type, label, maxChars, isRequired, pattern, customClass, value, fieldReference } = element;\r\n\r\n const baseSignUpItem: IBusinessSignUpItem = {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, customClass)\r\n },\r\n id,\r\n label: ,\r\n errorMessage: \r\n };\r\n\r\n if (type === InputType.Address) {\r\n if (addressForm) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(addressForm as React.ReactElement, {\r\n updateForm: updateAddress,\r\n hasError: showErrors,\r\n isRequired: isRequired === undefined ? false : isRequired,\r\n resetAddress: needToReset\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n }\r\n\r\n return baseSignUpItem;\r\n });\r\n};\r\n\r\n/**\r\n *\r\n * Business Request Form Modules\r\n * Form that a business can use to submit a request to become a partner with Microsoft.\r\n * @extends {React.Component>}\r\n */\r\nclass BusinessSignUp extends React.Component {\r\n // Used as default data\r\n public BusinessSignUpDefaultInputs: IFormItem[] = [\r\n {\r\n id: InputID.FirstName,\r\n type: InputType.Text,\r\n label: this.props.resources.firstNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-25'\r\n },\r\n {\r\n id: InputID.LastName,\r\n type: InputType.Text,\r\n label: this.props.resources.lastNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-25'\r\n },\r\n {\r\n id: InputID.Email,\r\n type: InputType.Email,\r\n label: this.props.resources.emailAddressLabel,\r\n value: '',\r\n isRequired: true,\r\n pattern: EmailRegex.defaultRegex.source,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.CompanyName,\r\n type: InputType.Text,\r\n label: this.props.resources.companyLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Department,\r\n type: InputType.Text,\r\n label: this.props.resources.departmentLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.JobTitle,\r\n type: InputType.Text,\r\n label: this.props.resources.jobTitleLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Size,\r\n type: InputType.Text,\r\n label: this.props.resources.companySizeLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Address,\r\n type: InputType.Address,\r\n label: this.props.resources.companyAddressLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n },\r\n {\r\n id: InputID.Comment,\r\n type: InputType.TextArea,\r\n label: this.props.resources.commentLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n }\r\n ];\r\n\r\n private readonly formChildReference: React.RefObject = React.createRef();\r\n\r\n private readonly moduleClassName: string = 'ms-business-sign-up';\r\n\r\n private needsToReset: boolean = false;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IBusinessSignUpExtendedProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isReady: false,\r\n formItems: this.props.formItems || this._addedReference(),\r\n addressHasErrors: false,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.formChildReference.current?.focus();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const { formItems } = this.state;\r\n const { className, heading } = config;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n businessSignUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, className)\r\n },\r\n ContainerWrapper: {\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: (\r\n \r\n ),\r\n businessSignUpForm: this._renderForm(),\r\n formItems\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle the heading change event.\r\n * @param event - Content Editable Event.\r\n */\r\n public handleHeadingChange = (event: ContentEditableEvent): void => {\r\n this.props.config.heading.text = event.target.value;\r\n };\r\n\r\n private _renderForm(): IBusinessSignUpLocalAccount {\r\n const { config, resources, slots } = this.props;\r\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\r\n const {\r\n signUpButtonArialabel,\r\n signUpButtonText,\r\n cancelButtonArialabel,\r\n cancelButtonText,\r\n errorMessage,\r\n partialAddressErrorMessage\r\n } = resources;\r\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\r\n const successPageURL =\r\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\r\n getUrlSync('home', this.props.context.actionContext);\r\n\r\n const form = {\r\n FormWrapper: {\r\n className: `${this.moduleClassName}__form `\r\n },\r\n items: renderInputSection(\r\n formItems,\r\n `${this.moduleClassName}__form-item`,\r\n this.needsToReset,\r\n this._onInputChange,\r\n showAddressErrors,\r\n addressForm,\r\n this._onAddressChange\r\n ),\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n hasSubmitErrors && ,\r\n showAddressErrors && (\r\n \r\n )\r\n ],\r\n disclaimer: config.disclaimer && (\r\n \r\n )\r\n };\r\n\r\n if (this.needsToReset) {\r\n this.needsToReset = false;\r\n }\r\n\r\n return form;\r\n }\r\n\r\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.id === event.target.id) {\r\n item.value = event.target.value;\r\n }\r\n });\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private _addedReference(): IFormItem[] {\r\n const newFormFields = this.BusinessSignUpDefaultInputs;\r\n newFormFields[0].fieldReference = this.formChildReference;\r\n return newFormFields;\r\n }\r\n\r\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const addressItem = newForm.find(item => {\r\n return item.type === InputType.Address;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (addressItem) {\r\n addressItem.address = currentAddress;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n addressHasErrors: errors,\r\n showAddressErrors: false\r\n });\r\n }\r\n };\r\n\r\n private readonly _isFormReady = (): boolean => {\r\n const { formItems } = this.state;\r\n\r\n for (const currentInput of formItems) {\r\n // Will return FALSE if:\r\n // - input field is required\r\n // IF is address AND addressHasErrors === true\r\n // ELSE value is undefined OR empty\r\n // OR\r\n // - pattern provided and value does not match pattern\r\n\r\n if (currentInput.isRequired) {\r\n if (currentInput.type === InputType.Address) {\r\n if (this.state.addressHasErrors) {\r\n return false;\r\n }\r\n } else if (currentInput.value === undefined || currentInput.value === '') {\r\n return false;\r\n }\r\n }\r\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private readonly _onSubmit = (event: React.MouseEvent) => {\r\n if (this.state.addressHasErrors) {\r\n this.setState({\r\n showAddressErrors: true\r\n });\r\n\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n\r\n // Check for matching id and if not empty\r\n const firstName = this._getItem(InputID.FirstName);\r\n const lastName = this._getItem(InputID.LastName);\r\n const companyName = this._getItem(InputID.CompanyName);\r\n const companyEmail = this._getItem(InputID.Email);\r\n const companyAddress = this._getItem(InputID.Address, true);\r\n const jobTitle = this._getItem(InputID.JobTitle);\r\n const department = this._getItem(InputID.Department);\r\n const companySize = this._getItem(InputID.Size);\r\n const comments = this._getItem(InputID.Comment);\r\n\r\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\r\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\r\n companyAddress.address.Email = companyEmail.value;\r\n }\r\n\r\n const newPartner: BusinessPartnerProspect = {\r\n FirstName: firstName && firstName.value,\r\n LastName: lastName && lastName.value,\r\n CompanyName: companyName && companyName.value,\r\n Address: companyAddress && companyAddress.address && companyAddress.address,\r\n JobTitle: jobTitle && jobTitle.value,\r\n Department: department && department.value,\r\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\r\n Comments: comments && comments.value\r\n };\r\n\r\n // Create business partner request\r\n createProspectAsync({ callerContext: context.actionContext }, newPartner).catch(() => {\r\n this.setState({\r\n hasSubmitErrors: true,\r\n isReady: false\r\n });\r\n });\r\n };\r\n\r\n private readonly _onCancel = () => {\r\n // Reset values of the form\r\n const cleanForm = this.state.formItems;\r\n cleanForm.forEach(input => {\r\n input.value = '';\r\n });\r\n\r\n // Set reset flag so address input will get reset on next renderInputSection() call\r\n this.needsToReset = true;\r\n\r\n this.setState({\r\n isReady: false,\r\n formItems: cleanForm,\r\n addressHasErrors: true,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\r\n if (isAddress) {\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.address;\r\n });\r\n }\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.value !== '';\r\n });\r\n };\r\n}\r\n\r\nexport default BusinessSignUp;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\r\n\r\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\r\n // Hide label and error message if rendering address section\r\n return (\r\n \r\n {!isAddressInput && label}\r\n {!isAddressInput && errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst BusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinesSignUpView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IFooterItemProps } from '../definition-extensions/footer-item.ext.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n/**\r\n *\r\n * FooterItemView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { FooterItem } = this.props;\r\n return (\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\r\n if (!item || !item.src || item.src.length === 0) {\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n private _renderElement(props: IFooterViewProps & IFooterItemProps<{}>): React.ReactNode | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink, config } = props;\r\n if (config.image && config.logoSvgUrl) {\r\n config.image.src = config.logoSvgUrl;\r\n }\r\n if (heading) {\r\n return (\r\n {' '}\r\n );\r\n } else if (Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {this._createImageMarkup(config.image!)}\r\n \r\n );\r\n } else if (Link) {\r\n return (EditableLink);\r\n }\r\n return (\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const RetailB2BEcommerceFeatureState = this.props.data.featureState.result?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailB2BEcommerceFeature'\n );\n if (\n !this.props.context.request.params.isEditor &&\n (!RetailB2BEcommerceFeatureState?.IsEnabled || !this.props.data.customerInformation.result?.IsB2b)\n ) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n
\n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { updateCustomerPersonalization, updateCustomerPersonalizationInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n `${customerInformation && customerInformation.FirstName} ${customerInformation && customerInformation.LastName}`,\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: loyaltyCard.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

\n };\n\n return this.props.renderView(errorProps) as React.ReactElement;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n modalState: isModalOpen,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n organizationListTable: ,\n toggleModal: this._toggleModal,\n formType,\n form:\n isFormActive && isModalOpen && (formType === FormType.Add || formType === FormType.Edit)\n ? this._renderUserForm()\n : this._renderUserDetails(),\n formItems,\n requestAccountStatementButton: (\n \n ),\n requestStatementModal: (\n \n )\n } as IBusinessOrganizationListViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n // _createTableProps: creates the props for the organization list table\n private _createTableProps(): IDataTableProps {\n const { config, resources, context } = this.props;\n const { tableSort, showPagination, paginationItemPerPage } = config;\n const {\n businessUserPaginationNextButtonText,\n businessUserPaginationPreviousButtonText,\n businessUserEditButtonText,\n businessUserViewUserButtonText,\n businessUserDeleteButtonText,\n businessUserActionButtonText,\n businessUserPaginationAriaLabel,\n columnSortAriaLabel\n } = resources;\n\n const tableData = this._createTableItems();\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row.map(item => {\n if (this.isMobile && this.mobileExcludedColumns.includes(item.id)) {\n return undefined;\n }\n return {\n name: item.id,\n sortable: (tableSort && tableSort) || false,\n ariaLabel: columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources,\n headings: tableHeading,\n rows: tableData,\n className: `${this.moduleClassName}__table`,\n editLinkText: this.isMobile ? businessUserEditButtonText : '', // '' === showing just icon\n deleteLinkText: this.isMobile ? businessUserDeleteButtonText : '', // '' === showing just icon\n viewLinkText: businessUserViewUserButtonText,\n editLinkTooltip: businessUserEditButtonText,\n deleteLinkTooltip: businessUserDeleteButtonText,\n viewLinkTooltip: businessUserViewUserButtonText,\n enableToModify: true,\n actionLinkText: businessUserActionButtonText,\n showCheckBoxes: true,\n isSortable: tableSort,\n resourcePrefix: 'businessUser',\n showPagination,\n minifyActions: this.isMobile,\n excludedColumns: this.isMobile ? this.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context &&\n context.request &&\n context.request.query &&\n context.request.query.skip &&\n !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: paginationItemPerPage || 10,\n prevText: businessUserPaginationPreviousButtonText,\n nextText: businessUserPaginationNextButtonText,\n paginationText: businessUserPaginationAriaLabel,\n url: (context && this._getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n tableAriaLabel: resources.tableAriaLabel,\n tableTabIndex: 0,\n businessUserSelectCheckBoxAriaLabelText: resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: resources.sortByAscending,\n sortByDescending: resources.sortByDescending,\n actions: {\n onDelete: this._handleDeleteIcon,\n onEdit: this._handleEditIcon,\n onView: (this.isMobile && this._handleViewDetails) || undefined\n },\n formatPrice: this._formatPrice,\n checkBoxCallback: this._onSelectRow\n };\n }\n\n // _createTableItems: converts users recieved from the data-action(IBusinessParterUser[]) to tableRows(ITableItemProps[])\n private _createTableItems(): ITableRowProps[] {\n const {\n resources,\n data: { users }\n } = this.props;\n const { businessUserActiveStatusText, businessUserPendingStatusText, businessUserRemovedStatusText } = resources;\n const usersList = users && users.result;\n\n if (!ArrayExtensions.hasElements(usersList)) {\n return [];\n }\n\n return usersList.map((user, index) => {\n let statusString = '';\n this.userFormEditReference[index] = React.createRef();\n this.userFormDeleteReference[index] = React.createRef();\n\n switch (user.StatusValue) {\n case 0:\n statusString = businessUserPendingStatusText;\n break;\n case 1:\n statusString = businessUserActiveStatusText;\n break;\n case 2:\n default:\n statusString = businessUserRemovedStatusText;\n }\n\n return {\n row: [\n {\n id: InputID.FullName,\n type: TableDataType.Text,\n value: `${user.FirstName} ${user.LastName}`,\n user\n } as IUserTableItemProps,\n {\n id: InputID.Email,\n type: TableDataType.Text,\n value: user.Email || '',\n className: `${this.moduleClassName}__padRight`\n } as IUserTableItemProps,\n {\n id: InputID.Status,\n type: TableDataType.Text,\n value: statusString\n } as IUserTableItemProps,\n {\n id: InputID.SpendingLimit,\n type: TableDataType.Price,\n value: user.SpendingLimit || 0\n } as IUserTableItemProps\n ],\n isSelected: false,\n buttonReferences: {\n edit: this.userFormEditReference[index],\n delete: this.userFormDeleteReference[index]\n }\n };\n });\n }\n\n // _toggleModal: closes the modal and resets the form states\n private _toggleModal(): void {\n this.state.referenceBack?.focus();\n this.setState({\n isModalOpen: false,\n isFormActive: false,\n referenceBack: undefined,\n formType: FormType.None\n });\n }\n\n // _handleAddUserButtonClicked: resets input fields, opens the modal, and sets the form states\n private readonly _handleAddUserButtonClicked = () => {\n // Reset form\n const newForm = this.state.formItems;\n newForm.forEach(input => {\n if (input.id === InputID.Email) {\n // Make sure email input is re enabled (it gets disabled when admin is editing user)\n input.isDisabled = false;\n }\n\n input.value = '';\n });\n\n const newUser = { B2BUserId: Random.Guid.generateGuid() } as BusinessPartnerUser;\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n formType: FormType.Add,\n referenceBack: this.addUserButtonReference.current,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: newUser\n });\n };\n\n // _handleAddEditFormSaveButton: triggered on the save button for both add/edit forms. Calls the appropriate data-action and reloads the page when successful\n private readonly _handleAddEditFormSaveButton = async () => {\n const { context } = this.props;\n const { formType, formItems } = this.state;\n\n const updatedUser = this._createBusinessPartner(formItems);\n\n if (formType === FormType.Edit) {\n editOrganizationUser(new EditOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n } else {\n addOrganizationUser(new AddOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true,\n businessUserActionRetailErrorMsg: error.message\n });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n \n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady, businessUserActionRetailErrorMsg } = this.state;\n const {\n businessUserEditUserFormHeadingText,\n businessUserAddUserFormHeadingText,\n businessUserSaveButtonArialabel,\n businessUserSaveButtonText,\n businessUserCancelButtonArialabel,\n businessUserCancelButtonText,\n businessUserFieldIncorrectErrorText,\n businessUserActionErrorText,\n businessUserAllFieldsRequiredMessage,\n asteriskAfterLabel\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Add ? 'type-add' : 'type-edit';\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Add ? businessUserAddUserFormHeadingText : businessUserEditUserFormHeadingText,\n modalDescription: formType === FormType.Add && (\n

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (slots && slots.socialShareItems.length === 0) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IMediaGalleryThumbnailItemViewProps,\n IMediaGalleryThumbnailsViewProps,\n IMediaGalleryViewProps\n} from '@msdyn365-commerce-modules/media-gallery';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Render the thumbnail item images.\n * @param thumbnail - The carousel thumbnail line props.\n * @returns Return HTML having thumnailcontainer props with image.\n */\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\n\n return {Picture};\n};\n\n/**\n * Gets the thumbnail item to display media gallery images.\n * @param image - The media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param imageId - Image id.\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render images.\n */\nconst GetThumbnailItemComponent = (\n image: IImageData,\n imageSettings: IImageSettings,\n imageId: number,\n modifiedActiveIndex: number,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n\n /**\n * OnClick method of media gallery item.\n */\n const onClick = () => {\n props.callbackToggle?.();\n props.callbackThumbnailClick?.(imageId);\n props.state.activeIndex = imageId;\n };\n\n const classes = classnames(\n 'ms-media-gallery__thumbnail-item',\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\n );\n\n /**\n * Keydown event of media gallery item.\n * @param event - React.KeyboardEvent.\n */\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCodes.Enter) {\n event.preventDefault();\n onClick();\n }\n };\n const defaultIndex = 0;\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: classes,\n role: 'presentation',\n key: imageId\n },\n Picture: (\n \n \n \n \n \n \n \n \n )\n };\n};\n\n/**\n * Gets the empty thumbnail item to display media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render empty images.\n */\nconst GetEmptyThumbnailItemComponent = (\n imageSettings: IImageSettings,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: 'ms-media-gallery__thumbnail-item',\n role: 'tab',\n tabIndex: 0,\n key: 0,\n 'aria-label': '',\n 'aria-selected': true\n },\n Picture: (\n \n )\n };\n};\n\n/**\n * Update media gallery items method.\n * @param items - The media gallery thumbnail item view props.\n * @returns The IImageData array.\n */\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\n return items?.map(item => {\n return {\n altText: item.Picture.props.altText,\n src: item.Picture.props.src\n };\n });\n};\n\nconst defaultThumbnailImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\n/**\n * Render the Media gallery thumbnails to represent images in grid view.\n * @param thumbnails - The thumbnail view props.\n * @param props - The media gallery view props.\n * @returns - The single slide carousel component to render as media gallery image.\n */\nconst renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps, props: IMediaGalleryViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\n const { state, Thumbnails } = props;\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\n\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty'\n ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)]\n : // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\n mediaGalleryItems?.map((item: IImageData, id: number) =>\n GetThumbnailItemComponent(item, defaultThumbnailImageSettings, id, state.activeIndex, props)\n );\n\n return (\n \n {items?.map(renderThumbnailItem)}\n \n );\n};\n\n/**\n * Render the Media gallery items using viewprops.\n * @param props - The media gallery view props.\n * @returns The media gallery module wrapping up images node.\n */\nconst mediaGalleryView: React.FC = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\n return (\n \n \n {Modal}\n {renderThumbnails(Thumbnails, props)}\n \n );\n};\n\nexport default mediaGalleryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","InputType","TextArea","name","undefined","ref","SignUpLabel","forId","htmlFor","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","map","element","index","label","maxChars","customClass","baseSignUpItem","wrapper","errorMessage","Address","isAddressInput","input","updateForm","hasError","resetAddress","splice","BusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","FirstName","Text","resources","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","moduleClassName","needsToReset","handleHeadingChange","event","config","heading","target","_onInputChange","newForm","state","formItems","forEach","item","setState","isReady","_isFormReady","hasSubmitErrors","_onAddressChange","errors","currentAddress","addressItem","find","address","addressHasErrors","showAddressErrors","currentInput","match","_onSubmit","preventDefault","context","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","newPartner","CompanySize","Comments","createProspectAsync","callerContext","actionContext","catch","_onCancel","cleanForm","isAddress","arguments","length","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","current","focus","shouldComponentUpdate","nextProps","nextState","data","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","addressSlot","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","form","FormWrapper","items","buttons","key","disclaimer","RichTextComponent","newFormFields","BusinessSignUpItem","Node","Module","error","button","BusinessFormItemComponent","renderModal","isModalOpen","headingSection","bodySection","footerSection","toggleModal","Modal","wrapClassName","autoFocus","fade","applicationNode","isOpen","toggle","ModalHeader","ModalBody","ModalFooter","BusinessUserFormComponent","modalClassName","modalHeading","modalDescription","modalBody","toString","modalFooter","BusinessUserDetailsComponent","selectedUser","userFullName","tag","keys","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","formType","requestAccountStatementButton","requestStatementModal","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","formProps","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","links","contentBlockContainer","imageContainer","detailsContainer","title","image","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","src","FooterItemView","FooterItem","_renderElement","_createImageMarkup","ariaHiddenAttr","Msdyn365","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","shouldSkipToMainImage","HeadingContainer","Link","linkText","EditableLink","logoSvgUrl","AccordionItem","accordionItemTitle","_onToggle","bind","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","onToggle","onTextChange","accordionSlots","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","setTimeout","_this$collapseAllButt","_this$expandAllButton","AadGeneric","$i2e","$element","window","insertServiceContent","getElementContent","initialize","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","addressCount","accountAddressTileDescription","description","format","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","editableLink","openInNewTab","additionalProperties","push","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","_this$props$data$feat","_this$props$data$cust","RetailB2BEcommerceFeatureState","featureState","Name","params","isEditor","IsEnabled","customerInformation","IsB2b","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","modal","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","_ref2","LocalAccount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_data$featureState$re","_data$featureState$re2","_this$props$accountPr","_this$props$accountPr2","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","split","att","attributeDefinition","attribute","IsHidden","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","feature","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","innerRef","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","MsDyn365","isBrowser","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","includes","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","_this$props$context$a2","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","computed","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","location","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","IsB2bAdmin","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","_ref6","_ref5","FormType","asteriskAfterLabel","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","substring","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","prev","refresh","formItem","_formatPrice","price","_getCurrentUrl","reqContext","URL","requestUrl","_getViewport","device","Type","innerWidth","sm","md","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_requestStatement","currentUser","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$submitButtonRef","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","Heading","headingTag","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","RequestStatementModal","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","ArrayExtensions","hasElements","isMobile","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","ButtonList","_getForm","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","firstOrDefault","Images","tabIndex","Image","generateImageUrl","Uri","galleryImageSettings","altText","AltText","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","groupTitle","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$context$action","_props$cart","renderModuleAttributes","promotionOptions","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","cart","hasInvoiceLine","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","footerItemClassName","_createHeading","_createText","_createLinkText","_createLink","ItemContainer","onTelemetryClick","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","_this$_sitePickerMenu3","_this$_sitePickerMenu4","nextFocus","activeElement","_this$_sitePickerMenu5","_this$_sitePickerMenu6","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu7","_this$_sitePickerMenu8","_this$_sitePickerMenu9","_this$_sitePickerMenu10","_handleOutsideClick","_this$_sitePickerMenu11","_this$_sitePickerMenu12","_handleChange","_renderSiteOptions","viewport","_document","_document2","_document2$body","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_document4$body","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","GetEmptyThumbnailItemComponent","_props$context$app$co2","_props$config$thumbna2","fallbackImage","emptyPlaceHolderImage","placeholderImageName","product","getFallbackImageUrl","ItemId","thumbnailImageSettings","imageFallbackOptimize","skipImageValidation","fallBackSrc","defaultThumbnailImageSettings","cropFocalRegion","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","Thumbnails","mediaGalleryItems","getMediaGalleryItems","lastUpdate","GetThumbnailItemComponent","imageId","modifiedActiveIndex","_props$context$app$co","_props$config$thumbna","_props$callbackToggle","_props$callbackThumbn","callbackToggle","call","callbackThumbnailClick","activeIndex","handleKeyDown","Enter","onKeyDown","shouldUseOptimizedImage","bypassHideOnFailure","fullScreenTitleText","CarouselProps","MediaGallery","buildReviewCard","isUserReview","cardProps","headerProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}