{"version":3,"file":"static/js/13.c87af8b8df53e210b94a.chunk.js","mappings":";22BAqEA,IAAMA,EAAN,cAAiCC,EAAAA,UAkB7BC,YAAYC,GACRC,MAAMD,GAlBO,KAAAE,gBAA0B,0BAkGpC,KAAAC,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAAC,gBAAmBP,IACtB,MAAMQ,EAAKR,EAAMK,OAAOG,GAClBF,EAAQN,EAAMK,OAAOC,MAE3B,OAAQE,EAAGC,eACP,IAAK,YACDR,KAAKS,UAAYJ,EACjB,MAEJ,IAAK,UACDL,KAAKU,QAAUL,EACf,MAEJ,IAAK,QACDL,KAAKW,WAAaN,EAGd,EAKT,KAAAO,QAAU,KACbZ,KAAKa,mBACLb,KAAKc,sBAGLd,KAAKe,oBAAsBC,aAAY,KACnChB,KAAKiB,6BAA6B,GACnC,KACHC,YAAW,KACPC,cAAcnB,KAAKe,oBAAoB,GACxC,IAAO,EAIG,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcnB,KAAKe,qBACnBf,KAAKqB,eAAgB,EAAK,EAIjB,KAAAR,iBAAmB,KAChC,MAAM,UAAES,GAActB,KAAKL,MACrB4B,EAA2BD,EAAUC,0BAA4B,sCAGnEH,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEI,KAClCC,IACG,MAAMpB,EAAQoB,EAAIC,IAAM1B,KAAK2B,YAAYF,EAAIC,KAAO,GACpD,OAAQD,EAAIG,GAAGpB,eACX,IAAK,YACDR,KAAKS,UAAYJ,EACjB,MAEJ,IAAK,UACDL,KAAKU,QAAUL,EACf,MAEJ,IAAK,QACDL,KAAK6B,MAAQxB,EACbL,KAAKW,WAAac,EAAIK,IACtBL,EAAIM,SAAWR,EAGX,GAGlB,EAWO,KAAAT,oBAAsB,KACnC,MAAM,UAAEQ,GAActB,KAAKL,MAG3B,GAAIyB,QAAUA,OAAgB,QAAG,CAC7B,MAAMY,EAAU,CACZC,eAAgBX,EAAUY,0BAC1BC,gBAAiBb,EAAUc,gBAI/BC,OAAOC,OAAOlB,OAAgB,QAAGY,EAAS,GA/K9ChC,KAAKS,UAAY,GACjBT,KAAKU,QAAU,GACfV,KAAK6B,MAAQ,GACb7B,KAAKW,WAAa4B,EAAAA,WAAWC,aAAaC,OAC1CzC,KAAKqB,eAAgB,EACrBrB,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOC,oBACHjD,KAAKY,SACT,CAGOsC,qBAEClD,KAAKqB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,YAEvC,CAEO+B,sBACHC,EACAC,GAEA,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAM4D,OAASH,EAAUG,IAIlE,CAEOC,SACH,MAAM,OAAEvD,EAAM,UAAEqB,GAActB,KAAKL,MAE7B8D,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbgE,UAAW,CACPC,eAAgB5D,KAAKqB,eAEzBwC,mBAAoB,CAChBC,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAWhE,KAAKH,gBAAiBI,EAAO8D,YAEvDE,QAAS,CACLC,MAAO,CACHC,IAAKC,EAAAA,MACLC,QAAQ,GAEZC,UAAW,CACPH,IAAKI,EAAAA,WAETC,KAAM/E,EAAAA,cAACgF,EAAAA,EAAsC,CAACV,UAAW/D,KAAKH,kBAC9DmC,QAASvC,EAAAA,cAACiF,EAAAA,EAAyC,CAACX,UAAW/D,KAAKH,gBAAiBmC,QAASV,EAAUc,kBAE5GuC,mBAAoB,CAChBpE,GAAI,MACJqE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTvE,GAAIP,KAAKqB,cAAgB,MAAQ,KACjC0C,UAAW,GAAG/D,KAAKH,8BAEvBK,QAASD,EAAOC,SAAWD,EAAOC,QAAQC,MACtCV,EAAAA,cAACsF,EAAAA,GAAa1C,OAAAC,OAAA,CACVyB,UAAW,GAAG/D,KAAKH,4BACfI,EAAOC,QAAO,CAClB8E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,YAG1FsC,+BAAgCnF,KAAKoF,wBAGzC,OAAOpF,KAAKL,MAAM0F,WAAW5B,EACjC,CAgFQ9B,YAAY2D,GAChB,MAAMC,EAAIC,SAASC,cAAc,OAGjC,OADAF,EAAEG,UAAYJ,EACiB,IAAxBC,EAAEI,WAAWC,OAAe,GAAKL,EAAEI,WAAW,GAAGE,WAAa,EACzE,CAiBQT,sBACJ,MAAM,OAAEnF,EAAM,UAAEqB,GAActB,KAAKL,MAC7BmG,EAAe,CACjBA,aAAc,CACVvF,GAAI,gBACJwD,UAAW,GAAG/D,KAAKH,uCAEvBkG,MAAO,CACH/F,KAAKgG,aAAa,YAAa,OAAQhG,KAAKS,UAAWa,EAAU2E,mBAAoB3E,EAAU4E,oBAC/FlG,KAAKgG,aAAa,UAAW,OAAQhG,KAAKU,QAASY,EAAU6E,kBAAmB7E,EAAU8E,oBAE9FC,aAAc,CACV5G,EAAAA,cAAC6G,EAAAA,EAAgC,CAC7BC,IAAI,uBACJhG,GAAG,uBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUkF,mCAEvB/G,EAAAA,cAAC6G,EAAAA,EAAgC,CAC7BC,IAAI,iBACJhG,GAAG,iBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUmF,sBAEvBhH,EAAAA,cAAC6G,EAAAA,EAAgC,CAC7BC,IAAI,+BACJhG,GAAG,+BACHwD,UAAW/D,KAAKH,mBAGxB6G,eAAgB,CACZ3C,UAAW,GAAG/D,KAAKH,4BAEvB8G,QAAS,CACLlH,EAAAA,cAACmH,EAAAA,EAAiC,CAC9BL,IAAI,WACJhG,GAAG,WACHwD,UAAW,GAAG/D,KAAKH,+BACnBgH,UAAWvF,EAAUwF,oBACrB3G,KAAMmB,EAAUyF,eAChBrE,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACmH,EAAAA,EAAiC,CAC9BL,IAAI,SACJhG,GAAG,SACHwD,UAAW,GAAG/D,KAAKH,iCACnBgH,UAAWvF,EAAU0F,iBACrB7G,KAAMmB,EAAU0F,iBAChBtE,iBAAkB1C,KAAK0C,oBAG/BuE,yBAA0B,CACtBlD,UAAW,GAAG/D,KAAKH,oDAEvBqH,gCAAiC,CAC7B3G,GAAI,kBACJwD,UAAW,GAAG/D,KAAKH,6CAU3B,OANII,EAAOkH,WAA4B,KAAfnH,KAAK6B,OACzBiE,EAAaC,MAAMqB,KACfpH,KAAKgG,aAAa,QAAS,QAAShG,KAAK6B,MAAOP,EAAU+F,2BAAuBC,EAAWtH,KAAKW,aAIlGmF,CACX,CAEQE,aACJzF,EACAgH,EACAlH,EACAmH,EACAC,EACAC,GAEA,MAAM3D,EAAY,GAAG/D,KAAKH,gCAC1B,MAAO,CACH8H,QAAS,CACL5D,UAAWC,IAAWD,EAAW,GAAGA,KAAaxD,IAAM,aAAc,cAEzEgG,IAAKhG,EACLqH,MACInI,EAAAA,cAACoI,EAAAA,EAAgCxF,OAAAC,OAAA,GACzB,CACA/B,KACAuH,MAAOvH,EACPwD,YACA5D,KAAMqH,KAIlBnB,aACI5G,EAAAA,cAAC6G,EAAAA,EAAgCjE,OAAAC,OAAA,GACzB,CACAyB,UAAW/D,KAAKH,gBAChB0H,KAAM,UAIlBQ,MACItI,EAAAA,cAACuI,EAAAA,EAAgC3F,OAAAC,OAAA,GACzB,CACA/B,KACAgH,OACAlH,QACAqH,UACA3D,YACA0D,YACAQ,SAAUjI,KAAKM,mBAKnC,IArTY4H,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,iCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,+BAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,6BAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCAbT3I,GAAkB0I,EAAAA,EAAAA,IAAA,CADvBE,EAAAA,IACK5I,GA6TN,gsBC1WA,MAAM6I,UAA2B5I,EAAAA,cAAjCC,cAAA,oBAmCW,KAAAI,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,KAC1H,CAnCWmD,SACH,MAAM,OAAEvD,EAAM,KAAEsD,GAASvD,KAAKL,OACxB,UAAEoE,GAAc9D,EAEhBqI,EAAc/E,EAAKgF,mBAAmBC,OACtCtI,EAAOwD,EAAAA,EAAA,GACNzD,EAAOC,SACP,CACCC,KAAM,GAAGF,EAAOC,QAAQC,KAAOF,EAAOC,QAAQC,KAAO,MACjDmI,GAAeA,EAAYG,UAAYH,EAAYG,UAAY,OAKrEhF,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACAsE,mBAAoB,CAChBvE,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,0BAA2B/D,EAAO8D,YAE5D7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,mCACVI,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,aAK9F,OAAO7C,KAAKL,MAAM0F,WAAW5B,EACjC,EAKJ,6IClDA,MAIA,EAJmFiF,IAAA,IAAC,YAAEC,GAAaD,EAAA,OAC/FjJ,EAAAA,cAAA,KAAGsE,UAAU,yCAAyC4E,EAAgB,ECuBpEC,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAW,iCACXuF,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,EAGxB,EAtCsEJ,IAA8D,IAA7D,MAAEqB,EAAK,iBAAErH,EAAgB,aAAEsH,EAAY,eAAE9E,GAAgBwD,EAC5H,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,mCACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,ukBCJd,MAAM+E,UAA4BxK,EAAAA,cAG9BC,YAAYC,GACRC,MAAMD,GAgDH,KAAAG,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMI,KACnDnK,KAAKL,MAAMM,OAAO8J,MAAMI,GAAWb,SAAWvJ,EAAMK,OAAOC,MAAM,EAnDrEL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SACH,MAAM,OAAEvD,EAAM,UAAEqB,EAAS,KAAEiC,GAASvD,KAAKL,OACnC,UAAEoE,EAAS,QAAE7D,EAAO,MAAE6J,GAAU9J,GAChC,+BAAEmK,GAAmC9I,EACrC+I,EAAY9G,EAAK8G,UAAU7B,OAE3B8B,GAAmBD,GAAaA,EAAUzE,QAAUyE,EAAU,GAAGE,mBAAsB,IAAI3E,OAC3F+C,GAAc6B,EAAAA,EAAAA,QAAOJ,GAAkC,sCAAuCE,GAE9F7G,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACAkG,oBAAqB,CACjBnG,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,2BAA4B/D,EAAO8D,YAE7D7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,oCACVI,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MAAOA,GAASA,EAAMnE,OAAS,GAC3BnG,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAalJ,EAAAA,cAACiL,EAAoB,CAAC/B,YAAaA,MAGpD,OAAO3I,KAAKL,MAAM0F,WAAW5B,EACjC,EAWJ,6EClCYkH,mHAAZ,SAAYA,GACRA,EAAA,YACAA,EAAA,gBACAA,EAAA,2BACAA,EAAA,oBACAA,EAAA,4BACH,CAND,CAAYA,IAAAA,EAAyB,KAQrC,MAYMC,EAAcA,CAAC/H,EAA0CvB,IACvDuJ,EAAAA,iBAAiBC,cAAcjI,EAAQkI,eACnCF,EAAAA,iBAAiBC,cAAcjI,EAAQmI,cAChC,GAGJnI,EAAQmI,aACRH,EAAAA,iBAAiBC,cAAcjI,EAAQmI,cACvCnI,EAAQkI,cAGZzJ,EAAU2J,uBAAuBC,QAAQ,MAAOrI,EAAQkI,eAAgBG,QAAQ,MAAOrI,EAAQmI,cAGpGG,EAAaA,CAACvI,EAAuBwI,KACvC,QAAa9D,IAAT8D,EACA,MAAO,GAIX,OAAOxI,EAAQyI,iBAAiBF,WAAWC,EADH,CAAEE,KAAM,UAAWC,MAAO,OAAQC,IAAK,WAClB,EAU3DC,EAAaA,CAAC5I,EAA0CvB,EAAuCsB,KAAyB,IAAA8I,EAC1H,IAAK7I,EAAQ8I,QACT,MAAO,GAGX,MAAMC,EAAyD/I,EAAQ8I,QAEjEE,EAAgCV,EAAWvI,EAASgJ,EAAeE,gCAAkC,GACrGC,EAA8BZ,EAAWvI,EAASgJ,EAAeI,8BAAgC,GACjGC,EAAoC,QAA3BP,EAAGE,EAAeM,iBAAS,IAAAR,EAAAA,EAAI,GAE9C,OAAQ7I,EAAQsJ,WAEZ,KAAK,EACD,OACKtB,EAAAA,iBAAiBC,cAAce,IAC/BhB,EAAAA,iBAAiBC,cAAciB,GAO7B,GALIzK,EAAU8K,mCACZlB,QAAQ,MAAOW,GACfX,QAAQ,MAAOa,GAK5B,KAAK,EACD,OAAKlB,EAAAA,iBAAiBC,cAAcmB,GAI7B,GAHI3K,EAAU+K,8BAA8BnB,QAAQ,MAAOe,GAItE,QACI,MAAO,GAAG,EA+ChBK,EAA8BA,CAACC,EAAmBjL,KACpD,OAAQiL,GACJ,KAAK,EACD,OAAOjL,EAAUkL,8BACrB,KAAK,EACD,OAAOlL,EAAUmL,uBACrB,KAAK,EACD,OAAOnL,EAAUoL,0BACrB,KAAK,EACD,OAAOpL,EAAUqL,wBACrB,KAAK,EACD,OAAOrL,EAAUsL,uCACrB,KAAK,EACD,OAAOtL,EAAUuL,kCACrB,QACI,OAAOvL,EAAUwL,uBAAuB,EAI9CC,EAAgCA,CAACC,EAAqB1L,KACxD,OAAQ0L,GACJ,KAAK,EACD,OAAO1L,EAAU2L,2BACrB,KAAK,EACD,OAAO3L,EAAU4L,uBACrB,QACI,OAAO5L,EAAU6L,2BAA2B,EAIlDC,EAAoBC,IAAsC,IAAAC,EAC5D,MAAM,QAAE1K,EAAO,KAAEW,EAAI,UAAEjC,GAAc+L,EAAWvJ,YAE1CyJ,GA3ENC,EA2EmCjK,EAAKiK,kBAAkBhF,OA1E1D7I,EA0EkE0N,EAAWvJ,YAxExE2J,EAAAA,gBAAgBC,YAAYF,GAI1BA,EAAkBhM,KAAIqB,IAAU,IAAA8K,EAAAC,EACnC,MAAO,CACHC,IAAK,CACD,CACItN,GAAIZ,EAAM2B,UAAUwM,sBACpBvG,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAOiM,EAA6C,QAAlBqB,EAAC9K,EAAQsJ,iBAAS,IAAAwB,EAAAA,EAAI,EAAGhO,EAAM2B,YAErE,CACIf,GAAIZ,EAAM2B,UAAU2M,6BACpB1G,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAO8K,EAAWxL,EAAMiD,QAASC,EAAQqL,kBAE7C,CACI3N,GAAIZ,EAAM2B,UAAU6M,6BACpB5G,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAOoL,EAAW5I,EAASlD,EAAM2B,UAAW3B,EAAMiD,UAEtD,CACIrC,GAAIZ,EAAM2B,UAAU8M,sBACpB7G,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAOuK,EAAY/H,EAASlD,EAAM2B,YAEtC,CACIf,GAAIZ,EAAM2B,UAAU+M,wBACpB9G,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAO0M,EAAiD,QAApBa,EAAC/K,EAAQyL,mBAAW,IAAAV,EAAAA,EAAI,EAAGjO,EAAM2B,aAG7EiN,YAAY,EACZxK,UAAWpE,EAAMM,OAAO8D,UAC3B,IAlCM,IALUyK,IACrBhB,EACA7N,EA2FA,MAAO,CACH2B,UAAW,CAAC,EACZmN,SAjBChB,EAAAA,gBAAgBC,YAAYH,IACzBA,EAAU,GAAGM,IACRa,QAAOC,IAEItB,EAAWuB,WAAavB,EAAWwB,sBAAsBC,SAASH,EAAKpO,MAElFiB,KAAImN,IACM,CACHI,KAAMJ,EAAKpO,GACXyO,UAAU,EACVnI,UAAWvF,EAAU2N,yBAGrC,GAKAC,KAAM3B,EACNxJ,UAAW,GAAGsJ,EAAWvJ,YAAY7D,OAAO8D,mBAC5CoL,aAAc,GACdC,eAAgB,GAChBC,aAAc,GACdC,gBAAgB,EAChBC,eAAgB,GAChBC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,cAAetC,EAAWuB,SAC1BgB,gBAAiBvC,EAAWuB,SAAWvB,EAAWwB,sBAAwB,GAC1EgB,mBAAoB,CAChBC,UACyB,QAArBxC,EAAA1K,EAAQC,QAAQkN,aAAK,IAAAzC,GAArBA,EAAuB0C,OAASC,MAAMC,OAAOC,SAASvN,EAAQC,QAAQkN,MAAMC,KAAM,KAC5EE,OAAOC,SAASvN,EAAQC,QAAQkN,MAAMC,KAAM,IAC5C,EACVI,YAAa,GACbC,SAAU/O,EAAUgP,wBACpBC,SAAUjP,EAAUkP,oBACpBC,eAAgB,GAChBC,IAAM9N,IAnMK+N,EAmMoB/N,EAAQC,QAlM3C+N,EAAAA,GAASC,UACF,IAAIC,IAAI1P,OAAO2P,SAASC,OAI/BL,EAAWD,IAAIO,WAAWD,KACnB,IAAIF,IAAIH,EAAWD,IAAIO,WAAWD,QA4LWA,MAAS,IAE7DE,oBAAoB,EACpBC,QAAS,CACLC,cAAU9J,EACVrC,YAAQqC,EACR+J,YAAQ/J,GAEZgK,wCAAyCjE,EAAWvJ,YAAYxC,UAAUgQ,wCAC1EC,gBAAiBlE,EAAWvJ,YAAYxC,UAAUiQ,gBAClDC,iBAAkBnE,EAAWvJ,YAAYxC,UAAUkQ,kBA7MpCb,KA8MC,EAGXc,EAAsDpE,GACxD5N,EAAAA,cAACiS,EAAAA,MAAKrP,OAAAC,OAAA,GAAK8K,EAAiBC,0kBCxPvC,MAAMsE,UAA0BlS,EAAAA,cAAhCC,cAAA,oBA4BqB,KAAAkS,aAAe,CAAC7N,EAAmB8N,KAA8C,IAAAC,EAAAC,EAC9F,MAAMC,EAA4D,QAAnDF,EAA2C,QAA3CC,EAAG/R,KAAKL,MAAM4D,KAAKiK,kBAAkBhF,cAAM,IAAAuJ,OAAA,EAAxCA,EAA0CnM,cAAM,IAAAkM,EAAAA,EAAI,EAEtE,OACIrS,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,wBACftE,EAAAA,cAACwS,EAAAA,QAAO,CAAClO,UAAW,GAAGA,qBAA8BI,IAAK0N,EAAY1N,IAAKhE,KAAM0R,EAAY1R,OAC7FV,EAAAA,cAAA,YAAOO,KAAKkS,2BAA2BF,IACrC,EAQG,KAAAG,yBAA2B,KACxC,MAAM,UAAE7Q,GAActB,KAAKL,MAC3B,MAAO,CAAC2B,EAAU2M,6BAA8B3M,EAAU6M,6BAA8B7M,EAAU8M,sBAAsB,EAG3G,KAAAgE,YAAc,IAEvB3S,EAAAA,cAACgS,EAAgB,CAAC3N,YAAa9D,KAAKL,MAAOiP,SAAU5O,KAAK4O,SAAUC,sBAAuB7O,KAAKmS,6BAIvF,KAAAD,2BAA8BF,IAC3C,OAAQA,GACJ,KAAK,EACD,MAAO,GACX,KAAK,EACD,OAAOxH,EAAAA,EAAAA,QAAOxK,KAAKL,MAAM2B,UAAU+Q,iCAAkCL,GACzE,QACI,OAAOxH,EAAAA,EAAAA,QAAOxK,KAAKL,MAAM2B,UAAUgR,yBAA0BN,GAAW,CAGxF,CA/DkBpD,eAEV,MAAgB,QADHA,EAAAA,EAAAA,UAAS,CAAE2D,QAASC,EAAAA,YAAYC,SAAU7P,QAAS5C,KAAKL,MAAMiD,QAAQC,SAEvF,CAEOW,SACH,MAAM,OAAEvD,GAAWD,KAAKL,MAExB,KAAK+S,EAAAA,EAAAA,IAAiB1S,KAAKL,MAAMiD,QAAQ+P,cAAczN,gBACnD,OAAO,KAGX,MAAMnB,EAAY9D,EAAO8D,WAAa,GAEhCN,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbiT,kBAAmB,CACf9O,YAAa9D,KAAKL,MAClBoE,aAEJ7D,QAASF,KAAK4R,aAAa7N,EAAW9D,EAAOC,SAC7C2S,MAAO7S,KAAKoS,gBAGhB,OAAOpS,KAAKL,MAAM0F,WAAW5B,EACjC,GAzBUyE,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,6BAiEb,qICpEA,MAAMC,EAAmB,+BAEZC,EAA6DtK,IAA8D,IAA7D,MAAEqB,EAAK,iBAAErH,EAAgB,aAAEsH,EAAY,eAAE9E,GAAgBwD,EAChI,IAAK+E,EAAAA,gBAAgBC,YAAY3D,GAC7B,OAAO,KAEX,MAAMjB,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAW,GAAGgP,YACdtF,EAAAA,gBAAgBC,YAAY5E,GACzBrJ,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,EAIR0D,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAK+K,EAAAA,gBAAgBC,YAAY7E,GAC7B,OAAO,KAGX,MAAME,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAE7D,OAAOmG,EAASrH,KAAI0H,IAChBH,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAC7D,MAAO,CACHlC,UAAWqC,EAAKrC,UAChB9C,UAAW,GAAGgP,UACdzJ,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,EACF,GAC1B,ukBC9BN,MAAM0J,UAAwBxT,EAAAA,cAG1BC,YAAYC,GACRC,MAAMD,GA8CH,KAAAG,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMI,KACnDnK,KAAKL,MAAMM,OAAO8J,MAAMI,GAAWb,SAAWvJ,EAAMK,OAAOC,MAAM,EAjDrEL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SACH,MAAM,OAAEvD,GAAWD,KAAKL,OAClB,UAAEoE,EAAS,QAAE7D,EAAO,MAAE6J,GAAU9J,EAEhC8S,EAAmB,+BAEzB,KAAKL,EAAAA,EAAAA,IAAiB1S,KAAKL,MAAMiD,QAAQ+P,cAAczN,gBACnD,OAAO,KAGX,MAAMzB,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACAmP,gBAAiB,CACbpP,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW+O,EAAkB9S,EAAO8D,YAEnD7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAW,GAAGgP,aACd5O,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MAAO0D,EAAAA,gBAAgBC,YAAY3D,IAC/BtK,EAAAA,cAACuT,EAAoB,CACjBjJ,MAAOA,EACPC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,qBAKnC,OAAO1C,KAAKL,MAAM0F,WAAW5B,EACjC,EAWJ,gGCxEA,MAAM0P,EAA4DzK,IAA4C,IAA3C,QAAEf,EAAO,MAAEC,EAAK,aAAEvB,EAAY,MAAE0B,GAAOW,EACtG,OACIjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqF,GACLC,EACAvB,EACA0B,EACE,EAsCTsL,EAAkEC,IAAwC,IAAvC,MAAEpP,EAAK,UAAEI,EAAS,KAAEE,EAAI,QAAExC,GAASsR,EACxG,OACI7T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4B,GACNzE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgC,GACLE,EACAxC,GAEF,EAmBf,EAfuErC,IACnE,MAAM,mBAAEkE,EAAkB,UAAEF,EAAS,QAAEM,EAAO,mBAAEU,EAAkB,YAAEG,EAAW,QAAE5E,EAAO,+BAAEiF,GAAmCxF,EAE7H,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKuB,GACPF,EAAUC,eAAiBnE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqC,IACrChB,EAAUC,eAAiBnE,EAAAA,cAAC4T,EAAyBhR,OAAAC,OAAA,GAAK2B,IAC3DxE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwC,GACL5E,EArD+CsT,KAQ3D,IAR4D,aAC7D1N,EAAY,MACZC,EAAK,aACLM,EAAY,eACZK,EAAc,QACdC,EAAO,yBACPM,EAAwB,gCACxBC,GACHsM,EACG,OACI/T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwD,GACLC,GACGA,EAAMvE,KAAKmN,GAEAlP,EAAAA,cAAC0T,EAAsB9Q,OAAAC,OAAA,GAAKqM,MAE1CtI,GACGA,EAAa7E,KAAI,CAACiS,EAAwBtK,IAC/B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQsK,KAE5ChU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKoE,GACLC,GACGA,EAAQnF,KAAI,CAACkS,EAAyBvK,IAC3B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,MAIhDjU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK2E,GACNxH,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4E,KAEX,EAwBEyM,CAAaxO,IAEb,wFCvEjB,MAMA,EANuExF,IACnE,MAAM,mBAAE0I,EAAkB,QAAEnI,GAAYP,EAExC,OAAOF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK+F,GAAqBnI,EAAiB,8FCH7D,MAYA,EAZyEP,IACrE,MAAM,oBAAEsK,EAAmB,QAAE/J,EAAO,YAAEyI,EAAW,MAAEoB,GAAUpK,EAE7D,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK2H,GACP/J,EACAyI,EACAoB,EACI,iGCRjB,MAUA,EAVqEpK,IACjE,MAAM,kBAAEiT,EAAiB,QAAE1S,EAAO,MAAE2S,GAAUlT,EAC9C,OACIF,IAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKsQ,GACP1S,EACA2S,EACI,wFCNjB,MAWA,EAXiElT,IAC7D,MAAM,gBAAEuT,EAAe,QAAEhT,EAAO,MAAE6J,GAAUpK,EAE5C,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK4Q,GACPhT,EACA6J,EACI,gKCVV,MAAM6J,EAA0CjU,GAC5CF,IAAAA,cAAA,KAAGsE,UAAU,2BAA2BpE,EAAMQ,2kBCsCzD,IAAM0T,EAAN,cAA4BpU,EAAAA,UAOxBC,YAAYC,GACRC,MAAMD,GAiHH,KAAAG,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,MAEhH,KAAAyT,0BAA6B/T,GAC/BC,KAAKL,MAAMM,OAAO8T,cAAe5T,KAAOJ,EAAMK,OAAOC,MAEzC,KAAA2T,cAAgB,KAC7B,GAAIhU,KAAKL,MAAMiD,QAAQC,QAAQoR,KAAKC,kBAAoBlU,KAAKsD,MAAM6Q,QAAS,CACxEnU,KAAKoU,SAAS,CAAED,SAAS,IACzB,MAAMpM,EAAQ,IAAIsM,EAAAA,kBAAkBrU,KAAKL,MAAMiD,QAAQC,QAAQyR,cAE/DC,EAAAA,EAAAA,cAAaxM,EAAO/H,KAAKL,MAAMiD,QAAQ+P,eAClC6B,MAAK,KACE5D,EAAAA,GAASC,WACTzP,OAAO2P,SAASzO,OAAOyC,EAAAA,GAAoB,UAAW/E,KAAKL,MAAMiD,QAAQ+P,gBAAkB,GAAI,IAGtG8B,OAAOhB,IACJzT,KAAKoU,SAAS,CAAED,SAAS,IACzBnU,KAAKL,MAAMqD,UAAUyQ,MAAMA,EAAMzR,SACjChC,KAAKL,MAAMqD,UAAU0R,MAAM,+BAA+B,GAC3D,GApIX1U,KAAKsD,MAAQ,CAAE6Q,SAAS,GACxBnU,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,WAEf,MAAM+F,GAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAK0C,iBAAkBiS,EAAAA,kBAAkBC,QACnF5U,KAAK6U,yBAA0BrL,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkBqG,GAC7EA,EAAQK,cAAcC,MAAQsL,EAAAA,kBAAkBG,OAChD9U,KAAK+U,yBAA0BvL,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkBqG,GAC7EA,EAAQK,cAAcC,MAAQsL,EAAAA,kBAAkBK,kBAChDhV,KAAKiV,8BAA+BzL,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkBqG,GAClFA,EAAQK,cAAcC,MAAQsL,EAAAA,kBAAkBO,iBAChDlV,KAAKmV,4BAA6B3L,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkBqG,EACpF,CAEO5F,sBAAsBC,EAAoDC,GAC7E,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAM4D,OAASH,EAAUG,IAIlE,CAEOC,SAAM,IAAA4R,EAAAC,EACT,MACIpV,QAAQ,UAAE8D,EAAS,QAAE7D,EAAO,cAAE6T,GAAe,UAC7CzS,EACAsB,SAAS,cACL+P,EACA9P,SACIoR,MAAM,UAAEqB,EAAS,gBAAEpB,KAE1B,KACD3Q,GACAvD,KAAKL,MAEH4V,EAAWxQ,EAAAA,GAAoB,eAAgB4N,GACrD,IAAI6C,EAAiB,GAAGzQ,EAAAA,GAAoB,cAAe4N,yBACvD/B,EAAAA,GAASC,YACT2E,EAAiB,GAAGpU,OAAO2P,SAAS0E,SAASD,KAEjD,MAAME,EAAY,GAAGJ,QAAgBE,IAC/BG,EAAgBC,IAAU,oBAAqB7R,GAC/C8R,EAActS,EAAKsS,YACnBC,EAAoBD,EAAYrN,aAAqDlB,IAA3CuO,EAAYrN,OAAOuN,oBAC7DC,EAA8C,QAA3BZ,EAAG7R,EAAKyS,2BAAmB,IAAAZ,OAAA,EAAxBA,EAA0B5M,OAEhDyN,GACqB,QAAtBZ,EAAArV,KAAKL,MAAMiD,QAAQsT,WAAG,IAAAb,GAAQ,QAARA,EAAtBA,EAAwBpV,cAAM,IAAAoV,OAAA,EAA9BA,EAAgCc,4CAChCH,aAAmB,EAAnBA,EAAqBI,mBADuD,EAE3E3S,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,UAAW4R,EACX9B,cAAe,CACX/P,YAAa9D,KAAKL,MAClBoE,UAAW4R,GAEfU,eAAgBJ,GACZxW,EAAAA,cAACsF,EAAAA,GAAa,CAAChB,UAAU,0BAA0B5D,KAAMmB,EAAUgV,sCAEvErS,SAAUjE,KAAKL,MAAMiD,QAAQC,QAAQ0T,OAAOC,UAAoC,aAAxBX,aAAW,EAAXA,EAAaY,QACrEvW,SAAU4V,GAAqB5V,GAAWA,EAAQC,MAC9CV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,6BACVI,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkR,cAAe+B,GAAqB/B,GAAiBA,EAAc5T,MAC/DV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,6BACVI,IAAK4P,EAAc5P,IACnBhE,KAAM4T,EAAc5T,KACpB6E,UAAW,CAAEC,OAAQjF,KAAK8T,0BAA2B5O,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAGhG6T,YAAaxC,GACTzU,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAACyB,UAAU,4BAA4BiN,KAAM0E,GAAe1V,KAAK6U,yBACnE7U,KAAKL,MAAM2B,UAAUsV,uBAG9BC,YAAaf,GAAqBrW,EAAAA,cAACmU,EAAU,CAACzT,KAAMmB,EAAUwV,qBAC9DC,cAAejB,GAAqB5B,GAChCzU,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAU,yBACViT,SAAUf,EACVgB,QAASjX,KAAKgU,eACVhU,KAAK+U,yBAER/U,KAAKL,MAAM2B,UAAUsV,uBAG9BM,YAAapB,GACTrW,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAU,6BACViN,KAAMjM,EAAAA,GAAoB,UAAW/E,KAAKL,MAAMiD,QAAQ+P,gBACpD3S,KAAKiV,8BAERjV,KAAKL,MAAM2B,UAAU6V,qBAG9BC,WAAYtB,GACRrW,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAACyB,UAAU,2BAA2BiN,KAAMuE,GAAcvV,KAAKmV,4BACjEnV,KAAKL,MAAM2B,UAAU+V,wBAKlC,OAAOrX,KAAKL,MAAM0F,WAAW5B,EACjC,GAvHEoQ,GAAa3L,EAAAA,EAAAA,IAAA,CADlBE,EAAAA,IACKyL,GAkJN,gGCtLA,MAiCA,EAjC6DlU,IACzD,MAAM,cACFkU,EAAa,QACb3T,EAAO,cACP6T,EAAa,WACb2C,EAAU,WACVG,EAAU,aACVE,EAAY,YACZG,EAAW,UACXE,EAAS,QACTnT,EAAO,eACPoS,GACA1W,EAEJ,OAAIsE,GACAtE,EAAMiD,QAAQI,UAAUyQ,MAAM,mDACvB,MAIPhU,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKuR,GACPwC,EACAtC,EACA7T,EACAgX,EACAL,EACAO,EACAL,EACAL,EACI,0yBCiCjB,IAAMY,EAAN,cAAwC7X,EAAAA,UAcpCC,YAAYC,GACRC,MAAMD,GAdO,KAAAE,gBAA0B,iCA8FpC,KAAAC,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,MAGhH,KAAAO,QAAU,KACbZ,KAAKa,mBACLb,KAAKc,sBAGLd,KAAKe,oBAAsBC,aAAY,KACnChB,KAAKiB,6BAA6B,GACnC,KACHC,YAAW,KACPC,cAAcnB,KAAKe,oBAAoB,GACxC,IAAO,EAIG,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcnB,KAAKe,qBACnBf,KAAKqB,eAAgB,EAAK,EAgPjB,KAAAkW,SAAW,CAACC,EAAiBC,IACtCzX,KAAK0X,gBAC2B,OAAzB1X,KAAK0X,gBAA2BF,EAAUC,EAE9C,GAxVPzX,KAAKW,WAAa4B,EAAAA,WAAWC,aAAaC,OAC1CzC,KAAKqB,eAAgB,EACrBrB,KAAK0X,gBAAkB,GACvB1X,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOC,oBACHjD,KAAKY,SACT,CAGOsC,qBAEClD,KAAKqB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,YAEvC,CAEO+B,sBACHC,EACAC,GAEA,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAM4D,OAASH,EAAUG,IAIlE,CAEOC,SACH,MAAM,OAAEvD,EAAM,UAAEqB,GAActB,KAAKL,MAE7B8D,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbgE,UAAW,CACPC,eAAgB5D,KAAKqB,eAEzBsW,0BAA2B,CACvB7T,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAWhE,KAAKH,gBAAiBI,EAAO8D,YAEvDE,QAAS,CACLC,MAAO,CACHC,IAAKC,EAAAA,MACLC,QAAQ,GAEZC,UAAW,CACPH,IAAKI,EAAAA,WAETC,KAAM/E,EAAAA,cAACmY,EAAAA,EAA6C,CAAC7T,UAAW/D,KAAKH,kBACrEmC,QACIvC,EAAAA,cAACoY,EAAAA,EAAgD,CAAC9T,UAAW/D,KAAKH,gBAAiBmC,QAASV,EAAUc,kBAG9GuC,mBAAoB,CAChBpE,GAAI,MACJqE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTvE,GAAIP,KAAKqB,cAAgB,MAAQ,KACjC0C,UAAW,GAAG/D,KAAKH,8BAEvBK,QAASD,EAAOC,SACZT,EAAAA,cAACsF,EAAAA,GAAa1C,OAAAC,OAAA,CACVyB,UAAW,GAAG/D,KAAKH,4BACfI,EAAOC,QAAO,CAClB8E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,YAG1FiV,sCAAuC9X,KAAKoF,wBAGhD,OAAOpF,KAAKL,MAAM0F,WAAW5B,EACjC,CA2BQ5C,mBAEAO,OAAkB,WAAKA,OAAkB,UAAmB,kBAE5DA,OAAkB,UAAmB,gBAAEI,KAAKC,IACX,UAAzBA,EAAIG,GAAGpB,cACPR,KAAKW,WAAac,EAAIK,IACU,6BAAzBL,EAAIG,GAAGpB,gBACdR,KAAK0X,gBAAkB,KAAK,IAG/B1X,KAAK0X,kBACN1X,KAAK0X,gBAAkB,MAGnC,CAEQ5W,sBAEJ,GAAIM,QAAUA,OAAgB,QAAG,CAC7B,MAAMY,EAAU,CACZG,gBAAiBnC,KAAKL,MAAM2B,UAAUc,gBAI1CC,OAAOC,OAAOlB,OAAgB,QAAGY,EAAS,CAElD,CAEQoD,sBACJ,MAAM,UAAE9D,GAActB,KAAKL,MAC3B,MAAO,CACHmG,aAAc,CACVvF,GAAI,gBACJwD,UAAW,GAAG/D,KAAKH,uCAEvBkY,2BAA4B,CACxBxX,GAAI,2BACJwD,UAAW,GAAG/D,KAAKH,4EAEvBkG,MAAO,CACH/F,KAAKgG,aAAa,QAAS,QAAS1E,EAAU+F,2BAAuBC,EAAWtH,KAAKW,YACrFX,KAAKgG,aACDhG,KAAKuX,SAAS,kBAAmB,yBACjC,OACAjW,EAAU0W,+BACV1Q,OACAA,EACA,qBAGR2Q,eAAgB,CACZxY,EAAAA,cAACyY,EAAAA,EAAyC,CACtC3R,IAAI,aACJhG,GAAIP,KAAKuX,SAAS,aAAc,yCAChCxT,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAU6W,8BAGvB1Y,EAAAA,cAACyY,EAAAA,EAAyC,CACtC3R,IAAI,gBACJhG,GAAIP,KAAKuX,SAAS,gBAAiB,4CACnCxT,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAU8W,+BAG3B/R,aAAc,CACV5G,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,yCACJhG,GAAG,yCACHwD,UAAW/D,KAAKH,kBAEpBJ,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,mBACJhG,GAAG,mBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUgX,aAEvB7Y,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,sBACJhG,GAAG,sBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUiX,uBAEvB9Y,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,uBACJhG,GAAG,uBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUkX,iBAEvB/Y,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,0BACJhG,GAAG,0BACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUmX,mBAEvBhZ,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,oBACJhG,GAAG,oBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUoX,cAEvBjZ,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,yBACJhG,GAAG,yBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUqX,oBAEvBlZ,EAAAA,cAAC4Y,EAAAA,EAAuC,CACpC9R,IAAI,+BACJhG,GAAG,+BACHwD,UAAW/D,KAAKH,mBAGxB+Y,2BAA4B,CACxB7U,UAAW,GAAG/D,KAAKH,+CAA+CG,KAAKuX,SAAS,SAAU,MAC1F,gBAAiB,SAErBsB,oBAAqB,CACjBpZ,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,qBACJhG,GAAIP,KAAKuX,SAAS,qBAAsB,0CACxCxT,UAAW,GAAG/D,KAAKH,8CACfG,KAAKH,sCACcG,KAAKuX,SAAS,aAAc,cACnD1Q,UAAWvF,EAAUyX,wBACrB5Y,KAAMmB,EAAU0X,mBAChBtW,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,uBACJhG,GAAIP,KAAKuX,SAAS,uBAAwB,4CAC1CxT,UAAW,GAAG/D,KAAKH,8CACfG,KAAKH,wCACgBG,KAAKuX,SAAS,eAAgB,gBACvD1Q,UAAWvF,EAAU2X,0BACrB9Y,KAAMmB,EAAU4X,qBAChBxW,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,uBACJhG,GAAIP,KAAKuX,SAAS,uBAAwB,8CAC1CxT,UAAW,GAAG/D,KAAKH,8CACfG,KAAKH,wCACgBG,KAAKuX,SAAS,aAAc,iBACrD1Q,UAAWvF,EAAU6X,0BACrBhZ,KAAMmB,EAAU8X,qBAChB1W,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,qBACJhG,GAAIP,KAAKuX,SAAS,qBAAsB,8CACxCxT,UAAW,GAAG/D,KAAKH,8CACfG,KAAKH,sCACcG,KAAKuX,SAAS,aAAc,kBACnD1Q,UAAWvF,EAAU+X,2BACrBlZ,KAAMmB,EAAUgY,sBAChB5W,iBAAkB1C,KAAK0C,oBAG/BgE,eAAgB,CACZ3C,UAAW,GAAG/D,KAAKH,4BAEvB8G,QAAS,CACLlH,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,WACJhG,GAAG,WACHwD,UAAW,GAAG/D,KAAKH,mCACnBgH,UAAWvF,EAAUiY,wBACrBpZ,KAAMmB,EAAUkY,mBAChB9W,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACqZ,EAAAA,EAAwC,CACrCvS,IAAI,SACJhG,GAAG,SACHwD,UAAW,GAAG/D,KAAKH,iCACnBgH,UAAWvF,EAAUmY,sBACrBtZ,KAAMmB,EAAU0F,oBAGxBC,yBAA0B,CACtBlD,UAAW,GAAG/D,KAAKH,oDAEvBqH,gCAAiC,CAC7B3G,GAAI,kBACJwD,UAAW,GAAG/D,KAAKH,4CAG/B,CAEQmG,aACJzF,EACAgH,EACAC,EACAC,EACAC,EACAgS,GAEA,MAAM3V,EAAY,GAAG/D,KAAKH,gCAC1B,MAAO,CACH8H,QAAS,CACL5D,UAAWC,IAAWD,EAAW,GAAGA,KAAaxD,IAAM,aAAc,YAAamZ,IAEtFnT,IAAKhG,EACLqH,MACInI,EAAAA,cAACka,EAAAA,EAAuCtX,OAAAC,OAAA,GAChC,CACA/B,KACAuH,MAAOvH,EACPwD,YACA5D,KAAMqH,KAIlBnB,aACI5G,EAAAA,cAAC4Y,EAAAA,EAAuChW,OAAAC,OAAA,GAChC,CACAyB,UAAW/D,KAAKH,gBAChB0H,KAAM,UAIlBQ,MACItI,EAAAA,cAACma,EAAAA,EAAuCvX,OAAAC,OAAA,GAChC,CACA/B,KACAgH,OACAE,YACAC,UACA3D,eAKpB,IA7VYmE,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sCATTmP,GAAyBpP,EAAAA,EAAAA,IAAA,CAD9BE,EAAAA,IACKkP,GA4WN,gGCraA,MAAMuC,EAA0EnR,IAA4C,IAA3C,QAAEf,EAAO,MAAEC,EAAK,aAAEvB,EAAY,MAAE0B,GAAOW,EACpH,OACIjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqF,GACLC,EACAvB,EACA0B,EACE,EAuDT+R,EAAgFxG,IAAwC,IAAvC,MAAEpP,EAAK,UAAEI,EAAS,KAAEE,EAAI,QAAExC,GAASsR,EACtH,OACI7T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4B,GACNzE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgC,GACLE,EACAxC,GAEF,EA2Bf,EAvBqFrC,IACjF,MAAM,0BACFgY,EAAyB,UACzBhU,EAAS,QACTM,EAAO,mBACPU,EAAkB,YAClBG,EAAW,QACX5E,EAAO,sCACP4X,GACAnY,EAEJ,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKqV,GACPhU,EAAUC,eAAiBnE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqC,IACrChB,EAAUC,eAAiBnE,EAAAA,cAACqa,EAAgCzX,OAAAC,OAAA,GAAK2B,IAClExE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwC,GACL5E,EA9EsDsT,KAYlE,IAZmE,aACpE1N,EAAY,2BACZiS,EAA0B,MAC1BhS,EAAK,eACLkS,EAAc,aACd5R,EAAY,2BACZuS,EAA0B,oBAC1BC,EAAmB,eACnBnS,EAAc,QACdC,EAAO,yBACPM,EAAwB,gCACxBC,GACHsM,EACG,OACI/T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwD,GACNrG,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKyV,GACLE,GACGA,EAAezW,KAAI,CAACQ,EAA0BmH,IACnC1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQnH,KAE3C+D,GACGA,EAAMvE,KAAKmN,GAEAlP,EAAAA,cAACoa,EAA6BxX,OAAAC,OAAA,GAAKqM,MAEjDtI,GACGA,EAAa7E,KAAI,CAACiS,EAAwBtK,IAC/B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQsK,KAE5ChU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKsW,GACLC,GACGA,EAAoBrX,KAAI,CAACkS,EAAyBvK,IACvC1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,MAIhDjU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKoE,GACLC,GACGA,EAAQnF,KAAI,CAACkS,EAAyBvK,IAC3B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,MAIhDjU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK2E,GACNxH,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4E,MAGf,EAgCEyM,CAAamE,IAEb,gJC9EjB,MAaMlP,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAW,gCACXuF,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,EAGxB,EArCoEJ,IAA8D,IAA7D,MAAEqB,EAAK,iBAAErH,EAAgB,aAAEsH,EAAY,eAAE9E,GAAgBwD,EAC1H,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,kCACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,ukBCTd,MAAM6U,UAA2Bta,EAAAA,cAG7BC,YAAYC,GACRC,MAAMD,GAiEH,KAAAG,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO+Z,gBAAkBha,KAAKL,MAAMM,OAAOoP,eACtDrP,KAAKL,MAAMM,OAAOoP,aAAetP,EAAMK,OAAOC,MAAM,EApExDL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SACH,MAAM,OAAEvD,EAAM,KAAEsD,EAAI,UAAEjC,EAAS,QAAEsB,GAAY5C,KAAKL,OAC5C,UAAEoE,EAAS,QAAE7D,EAAO,eAAE8Z,EAAc,oBAAEC,EAAmB,aAAE5K,EAAY,kBAAE6K,GAAsBja,GAC/F,sBAAEka,EAAqB,4BAAEC,GAAgC9Y,GACzD,YAAEuU,GAAgBtS,EAExB,IAAIoF,EAAcwR,EACdzJ,EAAM3L,EAAAA,GAAoB,cAAenC,EAAQ+P,gBAAkB,GACvE,MAAMzJ,EAAO,CAAEI,SAAU0Q,EAAgBtQ,QAAS,CAAEC,eAAgB+G,GAAO7J,UAAWoT,GAEtF,GAAIpE,GAAeA,EAAYrN,QAAUqN,EAAYrN,OAAO6R,WAAY,CACpE,MAAMC,EAAmB,EACzB,IAAIC,EAAS,EAET1E,EAAYrN,OAAOgS,cAAgB3E,EAAYrN,OAAOgS,aAAa5U,OAAS,GAC5EiQ,EAAYrN,OAAOgS,aAAavR,SAASwR,IACrCF,GAAUE,EAAYC,YAAa,IAG3CxR,EAAKrC,UAAYqT,EACjBhR,EAAKI,SAAW+F,EAChBqB,EAAM3L,EAAAA,GAAoB,UAAWnC,EAAQ+P,gBAAkB,GAC/DzJ,EAAKQ,QAAQC,eAAiB+G,EAC9B/H,GAAc6B,EAAAA,EAAAA,QAAO4P,EAA6BG,EAAOI,QAAQL,GAAmB,CAGxF,MAAM7W,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACAgW,mBAAoB,CAChBjW,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,0BAA2B/D,EAAO8D,YAE5D7D,QAASA,GACLT,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,mCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MACItK,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,MAAO,CAACb,GACRc,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAalJ,EAAAA,cAACiL,EAAAA,EAAoB,CAAC/B,YAAaA,MAGpD,OAAO3I,KAAKL,MAAM0F,WAAW5B,EACjC,EAWJ,6KChGO,MAAMmX,EAAwFlS,IAAA,IAAC,YAAEC,GAAaD,EAAA,OACjHjJ,EAAAA,cAAA,KAAGsE,UAAU,gDAAgD4E,EAAgB,ECUpEkS,EAA4EnS,IAKpF,IALqF,MACtFqB,EAAK,aACLC,EAAY,iBACZtH,EAAgB,eAChBwC,GACHwD,EACG,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,0CACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,EAIR0D,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAW,wCACXuF,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,ukBClCjB,MAAMgS,UAAkCrb,EAAAA,cAG3CC,YAAYC,GACRC,MAAMD,GAqDH,KAAAG,oBAAuBC,IAC1BC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,KAAK,EAGhD,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMI,KACnDnK,KAAKL,MAAMM,OAAO8J,MAAMI,GAAWb,SAAWvJ,EAAMK,OAAOC,MAAM,EA1DrEL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SACH,MAAM,OAAEvD,EAAM,UAAEqB,EAAS,KAAEiC,GAASvD,KAAKL,MAEzC,IAAKK,KAAKL,MAAMiD,QAAQC,QAAQ0T,OAAOC,YAAa9D,EAAAA,EAAAA,IAAiB1S,KAAKL,MAAMiD,QAAQC,SACpF,OAAOpD,EAAAA,cAAAA,EAAAA,SAAA,MAGX,MAAM,UAAEsE,EAAS,QAAE7D,EAAO,MAAE6J,GAAU9J,GAChC,qCAAE8a,GAAyCzZ,EAC3C0Z,EAAiBzX,EAAKyX,eAEtBC,IAAuBD,aAAc,EAAdA,EAAgBxS,SAAU,IAAI5C,OACrD+C,GAAc6B,EAAAA,EAAAA,QAAOuQ,EAAsCE,GAE3DxX,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACA+W,0BAA2B,CACvBhX,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,kCAAmC/D,EAAO8D,YAEpE7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,2CACVI,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MAAOA,GAASA,EAAMnE,OAAS,GAC3BnG,EAAAA,cAACob,EAA8BxY,OAAAC,OAAA,GACvB,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAalJ,EAAAA,cAACmb,EAAoC,CAACjS,YAAaA,MAGpE,OAAO3I,KAAKL,MAAM0F,WAAW5B,EACjC,EAaJ,wEC7DYyX,suBAAZ,SAAYA,GACRA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,wBACH,CALD,CAAYA,IAAAA,EAA6B,KAoCzC,IAAMC,EAAN,cAAuC1b,EAAAA,UA6CnCC,YAAYC,GACRC,MAAMD,GA3CU,KAAAyb,sBAAgC,EAEhC,KAAAC,cAAwB,EAEpC,KAAAC,UAAoB,EAkBX,KAAAC,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,EAC1D,MAAM,OAAElc,EAAM,KAAEsD,EAAI,UAAEjC,GAActB,KAAKL,MAAMyc,oBACzCC,EAA8C9Y,EAAK8Y,qBAAqB7T,QAAU,GAClF8T,EACDrc,EAAOqc,qCAAuCrc,EAAOqc,oCAAoCnc,MAAS,GAGjGoc,GAFiBtc,EAAOuc,gBAAkB,IACdC,MAAM,KACZjb,KAAIkb,IAC5B,MAAMC,EAA2CN,EAAqBO,MAClEC,IAAoC,IAAvBA,EAAUC,UAAsBD,EAAUE,KAAMC,sBAAwBN,EAAIM,uBACxF,CAAEC,SAAU,GACjB,OAAOjd,KAAKkd,iBAAiBP,EAAoB,IAE/CQ,EAAQnd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EAC1Dpd,KAAK+I,QAAQK,cAAcC,MAAQ,GAAG/H,EAAU+b,4BAA4Bf,IAC5E,MAAMc,GAAiB5T,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAmB1C,KAAK+I,SAC3E/I,KAAK+I,QAAQK,cAAcC,MAAQ,GAAG/H,EAAUgc,4BAA4BhB,IAC5E,MAAMiB,GAAiB/T,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAmB1C,KAAK+I,SAC3E/I,KAAK+I,QAAQK,cAAcC,MAAQ,GAAG/H,EAAUkc,8BAA8BlB,IAC9E,MAAMmB,GAAmBjU,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAmB1C,KAAK+I,SACvEiN,EAAsBzS,EAAKyS,oBAAoBxN,OAErDxI,KAAKgc,mCACgB,QAAjBE,EAAA3Y,EAAKma,oBAAY,IAAAxB,GAAQ,QAARA,EAAjBA,EAAmB1T,cAAM,IAAA0T,GAAqE,QAArEA,EAAzBA,EAA2BU,MAAKe,GAAWA,EAAQZ,OAAS/c,KAAK+b,sCAA6B,IAAAG,OAAA,EAA9FA,EAAgG0B,aAAa,EAGjH,MAAMC,MACyC,QAA1C1B,EAAAnc,KAAKL,MAAMyc,oBAAoBxZ,QAAQsT,WAAG,IAAAiG,GAAQ,QAARA,EAA1CA,EAA4Clc,cAAM,IAAAkc,OAAA,EAAlDA,EAAoDhG,6CACpDH,aAAmB,EAAnBA,EAAqBI,oBACrBpW,KAAKgc,kCACV,OACIvc,EAAAA,cAAA,OACIqe,IAAK9d,KAAK+d,uBACVha,UAAWC,IAAW,iCAAkC,CACpD,0CAA2ChE,KAAKob,wBAGnDnb,EAAOqc,qCACJ7c,EAAAA,cAACuO,EAAAA,GAAI,CACDjK,UAAU,+CACVI,IAAKlE,EAAOqc,oCAAoCnY,KAAO,KACvDhE,KAAMmc,IAGbrc,EAAO+d,WAAahe,KAAKie,eACzBhe,EAAOie,eAAiBle,KAAKme,mBAC7B5B,EACAvc,KAAKqb,cACF5b,EAAAA,cAAA,OAAKsE,UAAU,wCACXtE,EAAAA,cAAA,SAAOsE,UAAU,8CACZ/D,KAAKL,MAAMyc,oBAAoB9a,UAAU8c,kCAIpDjB,GACE1d,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAWC,IAAW,6CAA8C,CAEhE,sDAAuD6Z,IACzD,aACU,GAAGvc,EAAU+b,4BAA4Bf,IACrDrF,QAASjX,KAAKqe,kBACdC,SAAUte,KAAKue,QACfC,MAAOld,EAAU+b,yBACjBrG,SAAU6G,GACNT,GAEH9b,EAAU+b,0BAGlBF,GACG1d,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAWC,IAAW,8CAA6C,aACvD1C,EAAUgc,yBACtBrG,QAASjX,KAAKye,gBACdD,MAAOld,EAAUgc,0BACbC,GAEHjc,EAAUgc,0BAGlBH,GACG1d,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAWC,IAAW,gDAA+C,aACzD1C,EAAUkc,2BACtBvG,QAASjX,KAAK0e,mBACdF,MAAOld,EAAUkc,4BACbC,GAEHnc,EAAUkc,4BAGjB,EAIG,KAAAS,aAAe,KAC5B,MAAM,oBAAEU,GAAwB3e,KAAKL,MAAMyc,oBAAoBnc,OACzDC,EAAWye,GAAuBA,EAAoBxe,MAAS,GAC/D4D,EAAa7D,GAAWA,EAAQgL,QAAQ,KAAM,MAAS,GACvDkS,EAAkBpd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EACpE,OACI3d,EAAAA,cAAA,OAAKsE,UAAWC,IAAW,0CAA2C,kCAAkCD,MACnG4a,GAAuBlf,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAMD,IACzGT,EAAAA,cAAA,SACI8H,KAAK,OAAM,aACCrH,EACZ6D,UAAWC,IACPhE,KAAKub,mBACL,uCACA,6CAA6C6B,IAC7C,uBAAuBrZ,WAE3BkE,SAAUjI,KAAK4e,eACfve,MAAOL,KAAKsD,MAAMub,OAAS,GAC3B7H,UAAWoG,IAEdpd,KAAK8e,aAAa,SACjB,EAIG,KAAAX,iBAAmB,KAChC,MAAM,wBAAEY,GAA4B/e,KAAKL,MAAMyc,oBAAoBnc,OAC7DC,EAAW6e,GAA2BA,EAAwB5e,MAAS,GACvE4D,EAAa7D,GAAWA,EAAQgL,QAAQ,KAAM,MAAS,GACvDkS,EAAkBpd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EACpE,OACI3d,EAAAA,cAAA,OAAKsE,UAAWC,IAAW,0CAA2C,kCAAkCD,MACnGgb,GAA2Btf,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAMD,IAC7GT,EAAAA,cAAA,SACI8H,KAAK,OAAM,aACCrH,EACZ6D,UAAWC,IACPhE,KAAKub,mBACL,uCACA,6CAA6C6B,IAC7C,uBAAuBrZ,WAE3BkE,SAAUjI,KAAKgf,mBACf3e,MAAOL,KAAKsD,MAAM2b,WAAa,GAC/BjI,UAAWoG,IAEdpd,KAAK8e,aAAa,aACjB,EAIG,KAAA5B,iBAAoBgC,IACjC,MAAM9B,EAAkBpd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EAC9DrZ,EAAamb,EAAgBnC,MAAQmC,EAAgBnC,KAAK7R,QAAQ,KAAM,MAAS,GACvF,OAAQgU,EAAgBC,aAAeD,EAAgBC,YAAYC,OAC/D,KAAKlE,EAA8BmE,QACnC,KAAKnE,EAA8BoE,QAC/B,OAAOtf,KAAKuf,2BAA2BL,EAAiBnb,EAAWqZ,GACvE,KAAKlC,EAA8BlN,KAC/B,OAAOhO,KAAKwf,yBAAyBN,EAAiBnb,EAAWqZ,GACrE,KAAKlC,EAA8BuE,UAC/B,OAAOzf,KAAK0f,eAAeR,EAAiBnb,EAAWqZ,GAC3D,QACI,OAAO,KAAK,EAIP,KAAAmC,2BAA6B,CAC1CL,EACAnb,EACAqZ,KAEA,MAAMD,EAAQnd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EACpDuC,EAAiB3f,KAAK4f,mBAAmBV,EAAgBnC,MAAQ,IACjE8C,EAAsBF,EAAe5C,MAAQ,GACnD,OACItd,EAAAA,cAAA,OAAKsE,UAAWC,IAAW,0CAA2C,kCAAkCD,MACpGtE,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAM0f,IACjFpgB,EAAAA,cAAA,SACI8H,KAAK,OAAM,aACC2X,EAAgBnC,KAC5BhZ,UAAWC,IACPhE,KAAKub,mBACL,uCACA,6CAA6C4B,IAC7C,uBAAuBpZ,WAE3BkE,SAAUjI,KAAK8f,mBAAmBZ,GAClC7e,MAAOL,KAAKsD,MAAMiG,WAAW2V,EAAgBnC,MAAQ,KAAO,GAC5D/F,UAAWoG,EAAc,gBACVuC,EAAeI,cAAe,IAEhD/f,KAAK8e,aAAaI,EAAgBnC,MAAQ,IACzC,EAIG,KAAAyC,yBAA2B,CACxCN,EACAnb,EACAqZ,KAEA,MAAM4C,EAAyBd,EAAgBe,gBAAiB,EAC1D9C,EAAQnd,KAAKsD,OAAStD,KAAKsD,MAAM8Z,iBAAmB,EACpDuC,EAAiB3f,KAAK4f,mBAAmBV,EAAgBnC,MAAQ,IACjE8C,EAAsBF,EAAe5C,MAAQ,GACnD,GAAIiD,GAAiBd,EAAgBgB,mBAAoB,CACrD,MACMC,EAAuB,MADfngB,KAAKsD,MAAMiG,WAAW2V,EAAgBnC,MAAQ,KAAO,IAEnE,OACItd,EAAAA,cAAA,OAAKsE,UAAWC,IAAW,0CAA2C,kCAAkCD,MACpGtE,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAM0f,IACjFpgB,EAAAA,cAAA,UACIc,GAAI,kCAAkCwD,IAAW,aACrCmb,EAAgBnC,KAC5BhZ,UAAWC,IACPhE,KAAKub,mBACL,wCACA,8CAA8C4B,IAC9C,kCAAkCpZ,YAEtCkE,SAAUjI,KAAKogB,mBAAmBlB,GAClClI,UAAWoG,EAAc,gBACVuC,EAAeI,cAAe,GAE5CI,GACG1gB,EAAAA,cAAA,UACIsE,UAAU,gDACVwC,IAAI,QACJ8Z,SAAUF,EAAU,gBACLA,IAGtBjB,EAAgBgB,mBAAmB1e,KAAI8e,IACpC,MAAMD,EAAWC,EAAOC,mBAAqBvgB,KAAKsD,MAAMiG,WAAW2V,EAAgBnC,MAAQ,IAC3F,OACItd,EAAAA,cAAA,UACIsE,UAAU,gDACVwC,IAAK+Z,EAAOC,iBACZF,SAAUA,EAAQ,gBACHA,GAEdC,EAAOC,iBACH,KAInB,CAGd,OACI9gB,EAAAA,cAAA,OAAKsE,UAAWC,IAAW,0CAA2C,kCAAkCD,MACpGtE,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAM0f,IACjFpgB,EAAAA,cAAA,SACI8H,KAAK,OAAM,aACC2X,EAAgBnC,KAC5BhZ,UAAWC,IACPhE,KAAKub,mBACL,uCACA,6CAA6C4B,IAC7C,uBAAuBpZ,WAE3BkE,SAAUjI,KAAK8f,mBAAmBZ,GAClC7e,MAAOL,KAAKsD,MAAMiG,WAAW2V,EAAgBnC,MAAQ,KAAO,GAC5D/F,UAAWoG,EAAc,gBACVuC,EAAeI,cAAe,IAEhD/f,KAAK8e,aAAaI,EAAgBnC,MAAQ,IACzC,EAIG,KAAA2C,eAAiB,CAC9BR,EACAnb,EACAqZ,KAEA,IAAI/c,EAAQL,KAAKsD,MAAMiG,WAAW2V,EAAgBnC,MAAQ,KAAO,GACjE,MACMvZ,IADuB,KAAVnD,IACa+c,GAChC/c,EAAQA,GAAS,QACjB,MAAMmgB,EAAyB,SAAVngB,EAAoB,SAAa,UAChDogB,GAAYjW,EAAAA,EAAAA,QAAOxK,KAAKL,MAAMyc,oBAAoB9a,UAAUof,+BAAgCxB,EAAgBnC,MAC5G4D,EAAyB,SAAVtgB,EAEfwf,EADiB7f,KAAK4f,mBAAmBV,EAAgBnC,MAAQ,IAC5BA,MAAQ,GACnD,IAAI6D,EAAc,QAOlB,OALIA,EADU,SAAVvgB,EACc,QAEA,OAIdZ,EAAAA,cAAA,OACIsE,UAAWC,IACP,0CACA,kDACA,kCAAkCD,MAGtCtE,EAAAA,cAACuO,EAAAA,GAAI,CAACjK,UAAU,kDAAkDI,IAAI,KAAKhE,KAAM0f,IAChFrc,GACG/D,EAAAA,cAAA,OACIsE,UAAW,2GAA2Gyc,KAEtH/gB,EAAAA,cAACohB,EAAAA,EAAa,CACV9c,UAAU,+DACV5D,KAAMH,KAAKL,MAAMyc,oBAAoB9a,UAAUwf,oBAEnDrhB,EAAAA,cAACkX,EAAAA,OAAM,CACH5S,UAAWC,IACPhE,KAAKub,mBACL,yDACA,mDAAmDiF,YACtD,aACW,GAAGC,IAAW,eACZE,EACdtgB,MAAOA,EACP4W,QAASjX,KAAK+gB,kBAAkB7B,EAAiB0B,GACjD5J,UAAWoG,IAEf3d,EAAAA,cAACohB,EAAAA,EAAa,CACV9c,UAAU,8DACV5D,KAAMH,KAAKL,MAAMyc,oBAAoB9a,UAAU0f,oBAIzD,EAIG,KAAAlC,aAAgBmC,IAC7B,MAAMxN,EAAiBzT,KAAKsD,OAAStD,KAAKsD,MAAM4d,gBAAkBlhB,KAAKsD,MAAM4d,eAAeD,IAAmB,GAE/G,OADkBpW,EAAAA,iBAAiBsW,mBAAmB1N,GAG9ChU,EAAAA,cAAA,OAAKsE,UAAU,uCAAuC8F,KAAK,QAAO,YAAW,aACzEpK,EAAAA,cAAA,SAAOsE,UAAU,8CAA8C0P,IAIpE,IAAI,EAGE,KAAAmM,mBAAsBqB,IACnC,MAAMG,EAAuBphB,KAAKohB,qBAAqBxE,MAAKF,GAAOA,EAAI3N,OAASkS,IAC1EI,EAAwBD,GAAwBA,EAAqBC,cAAgB,EAC3F,MAAO,CACHtE,KAAMsE,EAAc,GAAGJ,GAAiB,OAASA,GAAiB,GAClElB,YAAasB,EAChB,EAGY,KAAAzC,eAAkB7e,IAC/B,MAAMM,EAAQN,EAAMK,OAAOC,MAC3BL,KAAKoU,SAAS,CAAEyK,MAAOxe,GAAQ,EAGlB,KAAA2e,mBAAsBjf,IACnC,MAAMM,EAAQN,EAAMK,OAAOC,MAC3BL,KAAKoU,SAAS,CAAE6K,UAAW5e,GAAQ,EAGtB,KAAAge,kBAAoB,KACjCre,KAAKsb,UAAW,EAGhBtb,KAAKqb,cAAe,EACpBrb,KAAKoU,SAAS,CAAEgJ,gBAAgB,EAAM8D,eAAgB,CAAC,IACnDtQ,EAAAA,GAASC,WACT3P,YAAW,KACP,GAAIlB,KAAK+d,uBAAuBuD,QAAS,CACrC,MAAM/X,EAAwCvJ,KAAK+d,uBAAuBuD,QAAQC,uBAC9EvhB,KAAKub,oBAELhS,GAAcA,EAAW3D,OAAS,GAClC5F,KAAKwhB,UAAUjY,EAAW,GAAkB,IAGrD,EAAG,EAIG,KAAAmV,mBAAqB,KAClC1e,KAAKoU,SAAS,CACVgJ,gBAAgB,EAChB8D,eAAgB,CAAC,EACjB3X,WAAYvJ,KAAKyhB,kBACjB5C,MAAO7e,KAAK0hB,aACZzC,UAAWjf,KAAK2hB,mBAEhB/Q,EAAAA,GAASC,WACT3P,YAAW,KACPlB,KAAKwhB,UAAUxhB,KAAKue,QAAQ+C,QAAQ,GACrC,EAAG,EAIG,KAAAxB,mBAAsBnD,GAA8C5c,IACjF,MAAMM,EAAQN,EAAMK,OAAOC,MACrB0O,EAAO4N,EAAoBI,MAAQ,GACzC/c,KAAKoU,SAAS,CACV7K,WAAU7F,EAAAA,EAAA,GACH1D,KAAKsD,MAAMiG,YAAU,IACxB,CAACwF,GAAO1O,KAEd,EAGW,KAAA0gB,kBAAoB,CAACpE,EAA0Ctc,IAC5EN,IAEA,MAAMgP,EAAO4N,EAAoBI,MAAQ,GACzC/c,KAAKoU,SAAS,CACV7K,WAAU7F,EAAAA,EAAA,GACH1D,KAAKsD,MAAMiG,YAAU,IACxB,CAACwF,GAAO1O,KAEd,EAGW,KAAA+f,mBAAsBzD,GAA8C5c,IACjF,MAAMM,EAAQN,EAAM6hB,cAAcC,gBAAgB,GAAGxhB,MAC/C8I,EAAQpJ,EAAM6hB,cAAcC,gBAAgB,GAAG1Y,MAC/C4F,EAAO4N,EAAoBI,MAAQ,GACzC/c,KAAKoU,SAAS,CACV7K,WAAU7F,EAAAA,EAAA,GACH1D,KAAKsD,MAAMiG,YAAU,IACxB,CAACwF,GAAO1O,IAEZyhB,cAAape,EAAAA,EAAA,GACN1D,KAAKsD,MAAMwe,eAAa,IAC3B,CAAC/S,GAAO5F,KAEd,EAGW,KAAA4Y,eAAiB,KAC9B,MAAM,OAAE9hB,EAAM,KAAEsD,GAASvD,KAAKL,MAAMyc,oBAE9B4F,GADiB/hB,EAAOuc,gBAAkB,IACLC,MAAM,KAC3CwF,EAAW1e,EAAKyS,oBAAoBxN,OACpC0Z,EAA0CD,GAAYA,EAASE,YAAe,GAC9E5Y,EAAkC,CAAC,EAEzCyY,EAAoB/Y,SAAQmZ,IACxB,MAAMhB,EAAuBphB,KAAKohB,qBAAqBxE,MAAKF,GAAOA,EAAI3N,OAASqT,IAC1Ef,EAAwBD,GAAwBA,EAAqBC,cAAgB,EACrFgB,EAAejB,GAAwBA,EAAqBiB,aAC5DxF,EAAYqF,EAAkBtF,MAAKF,GAAOA,EAAIK,OAASqF,IAC7D,IAAI/hB,EAAgB,GACpB,GAAIwc,GAAaA,EAAUyF,eAAgB,CACvC,MAAMvT,EAAQ8N,GAAaA,EAAUE,MAAS,GAC9C,OAAQF,EAAU0F,eACd,KAAKrH,EAA8BmE,QAC3BxC,EAAUyF,eAAeE,eACzBniB,EAAQoiB,OAAO5F,EAAUyF,eAAeE,cACxCjZ,EAAWwF,GAAQ1O,GAEvB,MACJ,KAAK6a,EAA8BoE,QAC3BzC,EAAUyF,eAAeI,eACzBriB,EAAQoiB,OAAO5F,EAAUyF,eAAeI,cACxCnZ,EAAWwF,GAAQ1O,GAEvB,MACJ,KAAK6a,EAA8BlN,KAC3B6O,EAAUyF,eAAeK,cACzBtiB,EAAQwc,EAAUyF,eAAeK,YACjCpZ,EAAWwF,GAAQ1O,GAEvB,MACJ,KAAK6a,EAA8BuE,UACe,OAA1C5C,EAAUyF,eAAeM,eACzBviB,EAAQoiB,OAAO5F,EAAUyF,eAAeM,cACxCrZ,EAAWwF,GAAQ1O,GAG3B,CAKJwK,EAAAA,iBAAiBsW,mBAAmB9gB,IAAUghB,IAC9C9X,EAAW6Y,GAAiB,IAEX,IAAjB/hB,EAAMuF,QAAgByc,IACtB9Y,EAAW6Y,GAAiBK,OAAOJ,GAAc,IAGN,IAA/ChgB,OAAOwgB,KAAK7iB,KAAKyhB,mBAAmB7b,SACpC5F,KAAKyhB,kBAAoBlY,GAE7BvJ,KAAKoU,SAAS,CAAE7K,cAAa,EAIhB,KAAAuZ,sBAAyBb,IACtC,MAAM,UAAE3gB,GAActB,KAAKL,MAAMyc,qBAC3B,MAAEyC,EAAK,UAAEI,GAAcjf,KAAKsD,MAC5B4d,EAAsC,CAAC,EAC7C,IAAI5F,GAAoB,EACpByH,GAAoB,EACxB,IAAK,MAAOxc,EAAKlG,KAAUgC,OAAO2gB,QAAQhjB,KAAKsD,MAAMiG,YAAa,CAC9D,MAAM0Z,EAAqCjjB,KAAKohB,qBAAqBxE,MAAKrZ,GAAQA,EAAKwL,OAASxI,KAAQ,CAAC,EACzG,GAAI0c,EAAa,CACb,OAAQA,EAAYC,eAChB,KAAKhI,EAA8BoE,QAC/B,MAAM6D,EAAejT,OAAO7P,GAC5B,GAAI4P,MAAMkT,GAAe,CACrB,MAAMC,GAAY5Y,EAAAA,EAAAA,QAAOlJ,EAAU+hB,4BAA6BJ,EAAYlU,KAAM,WAClFmS,EAAe+B,EAAYlU,MAAQ,IAAMqU,EACzC9H,GAAW,CAAK,MACb,QAAoChU,IAAhC2b,EAAYK,sBAAiEhc,IAAhC2b,EAAYM,iBAChE,GAAIJ,EAAeF,EAAYK,iBAAmBH,EAAeF,EAAYM,gBAAiB,CAC1F,MAAMC,GAAahZ,EAAAA,EAAAA,QACflJ,EAAUmiB,6BACVR,EAAYlU,KACZkU,EAAYK,gBACZL,EAAYM,iBAEhBrC,EAAe+B,EAAYlU,MAAQ,IAAMyU,EACzClI,GAAW,CAAK,OAGhB6H,EAAenjB,KAAK0b,kBACpBwF,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QACrClJ,EAAUoiB,2CACVT,EAAYlU,KACZ/O,KAAK0b,iBAETJ,GAAW,GAGX6H,EAAenjB,KAAK2b,kBACpBuF,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QACrClJ,EAAUqiB,2CACVV,EAAYlU,KACZ/O,KAAK2b,iBAETL,GAAW,GAIdA,IACGzQ,EAAAA,iBAAiBsW,mBAAmB9gB,GACpC0iB,GAAW,GAEXE,EAAYE,aAAeA,EAC3BJ,GAAW,IAGnB,MACJ,KAAK7H,EAA8BmE,QAC/B,MAAMuE,EAAe1T,OAAO7P,GAC5B,GAAI4P,MAAM2T,IAAiBvjB,EAAMyO,SAAS,KAAM,CAC5C,MAAMsU,GAAY5Y,EAAAA,EAAAA,QAAOlJ,EAAU+hB,4BAA6BJ,EAAYlU,KAAM,WAClFmS,EAAe+B,EAAYlU,MAAQ,IAAMqU,EACzC9H,GAAW,CAAK,MACb,QAAoChU,IAAhC2b,EAAYK,sBAAiEhc,IAAhC2b,EAAYM,iBAChE,GAAIK,EAAeX,EAAYK,iBAAmBM,EAAeX,EAAYM,gBAAiB,CAC1F,MAAMC,GAAahZ,EAAAA,EAAAA,QACflJ,EAAUmiB,6BACVR,EAAYlU,KACZkU,EAAYK,gBACZL,EAAYM,iBAEhBrC,EAAe+B,EAAYlU,MAAQ,IAAMyU,EACzClI,GAAW,CAAK,OAGhBsI,EAAe5jB,KAAKwb,kBACpB0F,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QACrClJ,EAAUoiB,2CACVT,EAAYlU,KACZ/O,KAAKwb,iBAETF,GAAW,GAGXsI,EAAe5jB,KAAKyb,kBACpByF,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QACrClJ,EAAUqiB,2CACVV,EAAYlU,KACZ/O,KAAKyb,iBAETH,GAAW,GAIdA,IACGzQ,EAAAA,iBAAiBsW,mBAAmB9gB,GACpC0iB,GAAW,GAEXE,EAAYW,aAAeA,EAC3Bb,GAAW,IAGnB,MACJ,KAAK7H,EAA8BlN,KAC/B,IAAI6V,EAAY,GACXhZ,EAAAA,iBAAiBsW,mBAAmB9gB,KACrCwjB,EAAYxjB,EAAMyjB,QAElBD,EAAUje,OAAS5F,KAAK4b,kBACxBsF,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QACrClJ,EAAUyiB,uCACVd,EAAYlU,KACZ/O,KAAK4b,iBAETN,GAAW,GAEVA,IACD2H,EAAYe,UAAYH,GAE5B,MACJ,KAAK3I,EAA8BuE,UAC/BwD,EAAYgB,aAAyB,SAAV5jB,EAO/B4iB,EAAY5B,aAAexW,EAAAA,iBAAiBsW,mBAAmB9gB,KAC/D6gB,EAAe+B,EAAYlU,MAAQ,KAAMvE,EAAAA,EAAAA,QAAOlJ,EAAU4iB,iCAAkCjB,EAAYlU,MACxGuM,GAAW,GAGf,MAAM4G,EAA0CD,GAAYA,EAASE,YAAe,GAC9EtF,EAAYqF,EAAkBtF,MAAKF,GAAOA,EAAIK,OAASxW,IACvD4C,EAAQ+Y,EAAkBiC,WAAUzH,GAAOA,EAAIK,OAASxW,KAE/C,IAAX4C,GAAiB4Z,GACjBb,EAAkBkC,OAAOjb,EAAO,IAG/BmS,GAAYyH,IACTlG,GACAA,EAAUwH,eAAY/c,EACtBuV,EAAU0F,cAAgBU,EAAYC,cACtCrG,EAAUE,KAAOkG,EAAYlU,KAC7B8N,EAAUI,SAAWgG,EAAYqB,SACjCzH,EAAU0H,WAAQjd,EAClBuV,EAAUyF,eAAiB,CACvBE,aAAcS,EAAYW,aAC1BhB,aAAcK,EAAYgB,aAC1BtB,YAAaM,EAAYe,UACzBtB,aAAcO,EAAYE,cAE9BtG,EAAU2H,oBAAsB,GAChC3H,EAAU4H,iBAAmB,IAE7BvC,EAAkB9a,KAAK,CACnB,cAAe,mEACfid,eAAW/c,EACXib,cAAeU,EAAYC,cAC3BwB,QAASzB,EAAYlU,KACrBgO,KAAMkG,EAAYlU,KAClBkO,SAAUgG,EAAYqB,SACtBC,WAAOjd,EACPgb,eAAgB,CAEZ,cAAe,uEACfE,aAAcS,EAAYW,aAC1BhB,aAAcK,EAAYgB,aAC1BtB,YAAaM,EAAYe,UACzBtB,aAAcO,EAAYE,cAE9B,iCAAkC,8EAClCqB,oBAAqB,GACrB,8BACI,kFACJC,iBAAkB,KACpB,EAMd5F,EAAMiF,OAAOle,OAAS5F,KAAK8b,gBAC3BoF,EAAeyD,OAAQna,EAAAA,EAAAA,QAAOlJ,EAAUyiB,uCAAwC,QAAS/jB,KAAK8b,gBAC9FR,GAAW,GAEX2G,EAAS0C,MAAQ9F,EAAMiF,OAGvB7E,EAAU6E,OAAOle,OAAS5F,KAAK6b,oBAC/BqF,EAAe0D,WAAYpa,EAAAA,EAAAA,QAAOlJ,EAAUyiB,uCAAwC,aAAc/jB,KAAK6b,oBACvGP,GAAW,GAEX2G,EAAS4C,UAAY5F,EAAU6E,OAGnC9jB,KAAKsb,SAAWA,EAChBtb,KAAKoU,SAAS,CAAE8M,kBAAiB,EAGpB,KAAAzC,gBAAkBqG,UAC/B,MAAM,QAAEliB,EAAO,KAAEW,GAASvD,KAAKL,MAAMyc,oBAC/B6F,EAAW1e,EAAKyS,oBAAoBxN,OAE1C,GAAIyZ,GAAYrf,EAAS,CACrB5C,KAAK8iB,sBAAsBb,GAC3B,MAAMla,EAAQ,IAAIgd,EAAAA,8BACd9C,EAAS+C,cACT/C,EAASE,YAAc,GACvBvf,EAAQC,QAAQyR,YAChB2N,EAAS0C,MACT1C,EAAS4C,WAMb,GAHA7kB,KAAKob,sBAAuB,EAC5Bpb,KAAKqb,cAAe,GAEfrb,KAAKsb,SAAU,CAChBtb,KAAKoU,SAAS,CAAEgJ,gBAAgB,IAChC,UACU6H,EAAAA,EAAAA,0BAAyBld,EAAOnF,EAAQ+P,cAa3C,CAZL,MAAOc,GACLzT,KAAKqb,cAAe,EACpB4G,EAASE,WAAaniB,KAAKklB,0BACvBtiB,EAAQI,YACRJ,EAAQI,UAAUmiB,UAAU1R,GAC5B7Q,EAAQI,UAAU0R,MAAM,yCAE5B1U,KAAKoU,SAAS,CACV8M,eAAgB,CAAC,EACjB3X,WAAYvJ,KAAKyhB,kBACjB5C,MAAO7e,KAAK0hB,aACZzC,UAAWjf,KAAK2hB,kBACjB,CAEP3hB,KAAKoU,SAAS,CAAEgJ,gBAAgB,IAC3Bpd,KAAKqb,eACNrb,KAAKyhB,kBAAoBzhB,KAAKsD,MAAMiG,WACpCvJ,KAAKklB,0BAA4BjD,EAASE,WAC1CniB,KAAK0hB,aAAe1hB,KAAKsD,MAAMub,MAC/B7e,KAAK2hB,iBAAmB3hB,KAAKsD,MAAM2b,UAAS,CAIpDjf,KAAKob,sBAAuB,EAExBxK,EAAAA,GAASC,WACT3P,YAAW,KACPlB,KAAKwhB,UAAUxhB,KAAKue,QAAQ+C,QAAQ,GACrC,EAAE,GAKA,KAAAE,UAAa4D,IAC1BA,SAAAA,EAASC,OAAO,EAGH,KAAAC,kBAAoB,KACjC,MAAM,KAAE/hB,GAASvD,KAAKL,MAAMyc,oBACtBC,EAAuB9Y,EAAK8Y,qBAAqB7T,QAAU,GAC3De,EAAkC,CAAC,EAEzC8S,EAAqBpT,SAAQ0T,IACzB,MAAMyE,EAA8C,CAAC,EAMrD,OALAA,EAAqBkD,SAAW3H,EAAoBM,SACpDmE,EAAqBrS,KAAO4N,EAAoBI,KAChDqE,EAAqB8B,cAAgBvG,EAAoB4F,cACzDnB,EAAqBpB,cAAgBrD,EAAoBsD,cACzDmB,EAAqBC,YAAc1E,EAAoBoD,YAC/CpD,EAAoB4F,eACxB,KAAKrH,EAA8BmE,QAC/B,MAAMkG,EAAsB5I,EAAoB6I,cAAgB7I,EAAoB6I,aAAahD,aACjGpB,EAAqBkC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAWjD,aACxGpB,EAAqBmC,gBAAkB5G,EAAoB+I,YAAc/I,EAAoB+I,WAAWlD,aACpGpB,EAAqBrS,MAAQwW,IAC7BnE,EAAqBiB,aAAeI,OAAO8C,GAC3Chc,EAAW6X,EAAqBrS,MAAQ0T,OAAO8C,IAEnD,MACJ,KAAKrK,EAA8BoE,QAC/B,MAAMqG,EAAsBhJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa9C,aACjGtB,EAAqBkC,gBAAkB3G,EAAoB8I,YAAc9I,EAAoB8I,WAAW/C,aACxGtB,EAAqBmC,gBAAkB5G,EAAoB+I,YAAc/I,EAAoB+I,WAAWhD,aACpGtB,EAAqBrS,MAAQ4W,IAC7BvE,EAAqBiB,aAAeI,OAAOkD,GAC3Cpc,EAAW6X,EAAqBrS,MAAQ0T,OAAOkD,IAEnD,MACJ,KAAKzK,EAA8BlN,KAC/B,MAAM4X,EAAqBjJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa7C,YAC5FvB,EAAqBrS,MAAQ6W,IAC7BxE,EAAqBiB,aAAeuD,EACpCrc,EAAW6X,EAAqBrS,MAAQ6W,GAE5C,MACJ,KAAK1K,EAA8BuE,UAC/B,MAAMoG,EACDlJ,EAAoB6I,cAAgB7I,EAAoB6I,aAAa5C,eAAiB,EACvFxB,EAAqBrS,OACrBqS,EAAqBiB,aAAeI,OAAOoD,GAC3Ctc,EAAW6X,EAAqBrS,MAAQ0T,OAAOoD,IAO3D7lB,KAAKohB,qBAAqBha,KAAKga,EAAqB,IAExD/e,OAAOwgB,KAAKtZ,GAAY3D,OAAS,GAAK5F,KAAKoU,SAAS,CAAE7K,cAAa,EAGtD,KAAAuc,8BAAgC,KAC7C,MAAM7D,EAAWjiB,KAAKL,MAAMyc,oBAAoB7Y,KAAKyS,oBAAoBxN,OACnEqW,EAASoD,GAAYA,EAAS0C,OAAU,GACxC1F,EAAagD,GAAYA,EAAS4C,WAAc,GACtD7kB,KAAKoU,SAAS,CAAEyK,QAAOI,cACU,IAA7Bjf,KAAK0hB,aAAa9b,SAClB5F,KAAK0hB,aAAe7C,GAEa,IAAjC7e,KAAK2hB,iBAAiB/b,SACtB5F,KAAK2hB,iBAAmB1C,EAAU,EA52BtCjf,KAAKsD,MAAQ,CACT8Z,gBAAgB,EAChByB,MAAO,GACPI,UAAW,GACX1V,WAAY,CAAC,EACb2X,eAAgB,CAAC,GAErBlhB,KAAKyhB,kBAAoB,CAAC,EAC1BzhB,KAAKklB,0BAA4B,GACjCllB,KAAK0hB,aAAe,GACpB1hB,KAAK2hB,iBAAmB,GACxB3hB,KAAKohB,qBAAuB,GAC5B,MAAMte,EACD9C,KAAKL,MAAMyc,qBACRpc,KAAKL,MAAMyc,oBAAoBxZ,SAC/B5C,KAAKL,MAAMyc,oBAAoBxZ,QAAQC,SACvC7C,KAAKL,MAAMyc,oBAAoBxZ,QAAQC,QAAQC,mBACnD,GACEC,EAAgB/C,KAAKL,MAAMyc,qBAAuBpc,KAAKL,MAAMyc,oBAAoBrZ,cAAiB,GAClGC,EAAahD,KAAKL,MAAMyc,qBAAuBpc,KAAKL,MAAMyc,oBAAoBpZ,WAAc,CAAC,EACnGhD,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBAAmBG,EAAmBC,EAAcC,GAC5EhD,KAAK+I,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAK0C,iBAAkB,IAChE1C,KAAKue,QAAU9e,EAAAA,YACfO,KAAK+d,uBAAyBte,EAAAA,WAClC,CAEOwD,oBACHjD,KAAKslB,oBACLtlB,KAAK+hB,iBACL/hB,KAAK8lB,iCACLC,EAAAA,EAAAA,KACI,IAAM/lB,KAAKL,MAAMyc,oBAAoB7Y,KAAKyS,oBAAoBxN,SAC9D,KACI,MAAMwN,EAAsBhW,KAAKL,MAAMyc,oBAAoB7Y,KAAKyS,oBAAoBxN,OACpFxI,KAAKklB,0BAA4BlP,GAAuBA,EAAoBmM,WAC5EniB,KAAK+hB,iBACL/hB,KAAK8lB,+BAA+B,KAG5CC,EAAAA,EAAAA,KACI,IAAM/lB,KAAKL,MAAMyc,oBAAoB7Y,KAAK8Y,qBAAqB7T,SAC/D,KACIxI,KAAKslB,mBAAmB,GAGpC,CAEOniB,sBAAsBC,EAA2CC,GACpE,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAMyc,oBAAoB7Y,OAASH,EAAUgZ,oBAAoB7Y,IAI1G,CAEOC,SACH,OAAOxD,KAAKic,mBAChB,IApGY/T,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,4CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,mCALTgT,GAAwBjT,EAAAA,EAAAA,IAAA,CAD7BE,EAAAA,IACK+S,GAg6BN,wBC18BA,MAcMvS,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAWmF,EAAK8c,WAAa,2CAA6C,mCAC1E1c,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,EAGxB,EAtC4DJ,IAA8D,IAA7D,MAAEqB,EAAK,iBAAErH,EAAgB,eAAEwC,EAAc,aAAE8E,GAActB,EAClH,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,qCACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,ukBCiDd,IAAM+gB,EAAN,cAA6BxmB,EAAAA,UASzBC,YAAYC,GACRC,MAAMD,GATU,KAAAumB,sBAAgC,EAInC,KAAAnK,6BAAuC,+DAEhD,KAAAC,mCAA6C,EA0F9C,KAAAlc,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAA8lB,yBAA4BpmB,GAC9BC,KAAKL,MAAMM,OAAOmmB,2BAA4BjmB,KAAOJ,EAAMK,OAAOC,MAEhE,KAAAgmB,wBAA2BtmB,GAC7BC,KAAKL,MAAMM,OAAOqmB,mBAAoBnmB,KAAOJ,EAAMK,OAAOC,MAExD,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAM2B,UAAUilB,iBACrBvmB,KAAKL,MAAM2B,UAAUilB,eAAiBxmB,EAAMK,OAAOC,MAAM,EA2GhD,KAAAmmB,oBAAuBziB,GAAsB+gB,SACnD9kB,KAAKymB,8BAA8B1iB,GA6D7B,KAAA2iB,kBAAoB,CACjC3iB,EACA4iB,EACAC,EACAje,EACAke,EACAhJ,KAEA,MAAM,kBAAEiD,EAAiB,iBAAEE,GAAqBhhB,KAAKL,MAAM2B,UACrDkf,EAAcqG,EAAW,UAAY,SACrCC,EAAiB9mB,KAAKwmB,oBAAoBziB,GAChD/D,KAAK+I,QAAQK,cAAcC,MAAQsd,EAAexmB,KAClD,MAAMoJ,GAAaC,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAmB1C,KAAK+I,SAEvE,MAAO,CACHge,kBAAmB,CACfhjB,UAAWC,IAAW,iCAAkC,kCAAkCD,IAAa,CACnG,+CAAgD/D,KAAKkmB,wBAG7DhmB,QAASymB,GACLlnB,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,yCACVI,IAAKwiB,EAAexiB,KAAO,KAC3BhE,KAAMwmB,EAAexmB,KACrB6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FmkB,cAAe,CACXjjB,UAAWC,IAAW,qCAAsC,8BAA8Bwc,IAAe,CAErG,sCAAuC3C,KAG/CoJ,cAAexnB,EAAAA,cAACohB,EAAAA,EAAa,CAAC9c,UAAU,yCAAyC5D,KAAM6gB,IACvFkG,aAAcznB,EAAAA,cAACohB,EAAAA,EAAa,CAAC9c,UAAU,0CAA0C5D,KAAM2gB,IACvFpN,OACIjU,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAWC,IAAW,oCAAqC,8BAA8Bwc,YAAqB,aAClGoG,EACZvmB,MAAOwmB,EAASM,WAAU,gBACXN,EACf5P,QAAS6P,EACT9P,SAAU6G,GACNtU,IAGZZ,YAAalJ,EAAAA,cAACiL,EAAAA,EAAoB,CAAC3G,UAAU,6CAA6C4E,YAAaA,IACvGye,0BAA2BtC,SAAY9kB,KAAKymB,8BAA8B1iB,GAC7E,EAGY,KAAA0iB,8BAAgC3B,UAC7C,MAAM9O,EAAsBhW,KAAKL,MAAM4D,KAAKyS,oBAAoBxN,OAEhE,GAAIwN,EAAqB,CACrB,MAAM,UACFhT,EACAJ,SAAS,QAAEC,EAAO,cAAE8P,IACpB3S,KAAKL,MAET,IACIoI,EADAsf,GAA0B,EAG9B,GACS,iBADDC,EAEAD,EAA0BrR,EAAoBuR,4BAA6B,EAC3Exf,EAAQ,IAAIyf,EAAAA,mCACRxR,EAAoBgP,eACnBqC,EACDxkB,EAAQyR,YACRgT,QAMJD,EAA0BrR,EAAoByR,wBAAyB,EACvE1f,EAAQ,IAAIyf,EAAAA,mCACRxR,EAAoBgP,eACnBqC,EACDxkB,EAAQyR,YACRgT,GAIZtnB,KAAKkmB,sBAAuB,EAE5B,UACUwB,EAAAA,EAAAA,+BAA8B3f,EAAO4K,EAIqB,CAHlE,MAAOc,GACDzQ,IACAA,EAAUmiB,UAAU1R,GACpBzQ,EAAU0R,MAAM,6CAA4C,CAIpE1U,KAAKkmB,sBAAuB,CAAM,GAIzB,KAAAyB,0BAA4B,IAClCloB,EAAAA,cAAC0b,EAAwB,CAACiB,oBAAqBpc,KAAKL,QA/W3DK,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,WAEfhD,KAAK+I,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAK0C,iBAAkB,GACpE,CAEOS,sBAAsBC,GACzB,OAAIpD,KAAKL,MAAM4D,OAASH,EAAUG,IAItC,CAEOC,SAAM,IAAA0Y,EAAA7G,EACT,MAAM,OAAEpV,EAAM,UAAEqB,EAAS,KAAEiC,GAASvD,KAAKL,OACnC,UAAEoE,EAAS,QAAE7D,EAAO,2BAAEkmB,EAA0B,mBAAEE,EAAkB,eAAE9J,EAAc,UAAEwB,EAAS,cAAEE,GAAkBje,GAEnH,eAAEsmB,EAAc,oBAAEqB,GAAwBtmB,EAC1C0U,EAAsBzS,EAAKyS,oBAAoBxN,OAErDxI,KAAKgc,mCACgB,QAAjBE,EAAA3Y,EAAKma,oBAAY,IAAAxB,GAAQ,QAARA,EAAjBA,EAAmB1T,cAAM,IAAA0T,GAAqE,QAArEA,EAAzBA,EAA2BU,MAAKe,GAAWA,EAAQZ,OAAS/c,KAAK+b,sCAA6B,IAAAG,OAAA,EAA9FA,EAAgG0B,aAAa,EAEjH,MAAM3H,MACqB,QAAtBZ,EAAArV,KAAKL,MAAMiD,QAAQsT,WAAG,IAAAb,GAAQ,QAARA,EAAtBA,EAAwBpV,cAAM,IAAAoV,OAAA,EAA9BA,EAAgCc,6CAChCH,aAAmB,EAAnBA,EAAqBI,oBACrBpW,KAAKgc,kCAGJ6L,EAA0BrL,GAAkBA,EAAe5W,OAAS,GAAMoY,GAAaE,IAAiB,EACxG4J,EAAuB,CACzBpe,QAAS,CACLC,eAAgBoe,IAAI/nB,KAAKL,MAAO,sCAAuC,KAE3E2J,SAAUid,EACV1f,UAAW+gB,EACX5B,WAAY/P,GAGVxS,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACAkiB,eAAgB,CACZniB,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,qBAAsB/D,EAAO8D,YAEvDsS,eAAgBJ,GACZxW,EAAAA,cAACsF,EAAAA,GAAa,CAAChB,UAAU,2BAA2B5D,KAAMmB,EAAUgV,sCAExE0R,sBAAuB,CACnBjkB,UAAWC,IAAW,+BAE1B9D,QAASA,GACLT,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,mCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FolB,aAAcjoB,KAAKkoB,oBACflkB,IAAW,8BAA+B,qCAC1CoiB,EACApQ,GAAuBA,EAAoBmS,OAE/CC,YAAapoB,KAAKqoB,mBACdrkB,IAAW,8BAA+B,oCAC1CsiB,EACAtmB,KAAKsoB,eAAetS,GACpBjR,EAAAA,GAAsB/E,KAAKL,MAAMiD,QAAQC,cAAWyE,EAAY,CAACwgB,IAErES,kBAAmBvoB,KAAKwoB,yBACpBxkB,IAAW,8BAA+B,2CAC1CiS,EACAD,GAEJyS,0BAA2B,CACvB1kB,UAAWC,IAAW,2CAE1B0kB,0BAA2Bb,GAA0B7nB,KAAK2nB,8BAE9D,OAAO3nB,KAAKL,MAAM0F,WAAW5B,EACjC,CAgBcklB,qBACV,OAAOZ,IAAI/nB,KAAKL,MAAO,sCAAuC,GAClE,CAEQ2oB,eAAetS,GACnB,IAAIrN,EAAc,GASlB,YAR4BrB,IAAxB0O,IACIA,EAAoBvN,YACpBE,GAAeqN,EAAoBvN,WAEnCuN,EAAoB4S,WACpBjgB,GAAeqN,EAAoBvN,UAAY,IAAIuN,EAAoB4S,WAAa5S,EAAoB4S,WAGzGjgB,CACX,CAEQuf,oBACJnkB,EACA7D,EACAyI,EACAoB,GAEA,MAAO,CACH8e,mBAAoB,CAChB9kB,aAEJ7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,sCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKmmB,yBAA0BjhB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG/FkH,MAAOA,GAASA,EAAMnE,OAAS,GAC3BnG,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAaA,GACTlJ,EAAAA,cAACiL,EAAAA,EAAoB,CAAC3G,UAAU,0CAA0C4E,YAAaA,IAGnG,CAEQ0f,mBACJtkB,EACA7D,EACAyI,EACAoB,GAEA,OAAK0D,EAAAA,gBAAgBC,YAAY3D,GAkB1B,CACH8e,mBAAoB,CAChB9kB,aAEJ7D,QAASA,GACLT,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,sCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKqmB,wBAAyBnhB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG9FkH,MACItK,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAaA,GACTlJ,EAAAA,cAACiL,EAAAA,EAAoB,CAAC3G,UAAU,0CAA0C4E,YAAaA,KAxCpF,CACHkgB,mBAAoB,CAChB9kB,aAEJ7D,QAASA,GACLT,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,sCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKqmB,wBAAyBnhB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG9F8F,YAAaA,GACTlJ,EAAAA,cAACiL,EAAAA,EAAoB,CAAC3G,UAAU,0CAA0C4E,YAAaA,IA8BvG,CAMQ6f,yBACJzkB,EACAkS,EACAD,GAEA,MAAM,2BACF8S,EAA0B,qCAC1BC,EAAoC,uBACpCC,EAAsB,iCACtBC,GACAjpB,KAAKL,MAAM2B,WACT,0BAAE4nB,EAAyB,8BAAEC,EAA6B,0BAAEC,GAA8BppB,KAAKL,MAAMM,QACrG,oBAAEopB,GAAwBrpB,KAAKL,MAAMiD,QAAQC,QAAQymB,SACrDC,EAAyC,GAE/C,OAAKvT,GAMLqT,GACID,GACAG,EAAiBniB,KACbpH,KAAK0mB,kBACD,eACA0C,EACAH,EACAD,EACAhT,EAAoBuR,4BAA6B,EACjDtR,IAIL,CACHuT,mBAAoB,CAChBzlB,aAEJ7D,QAASgpB,GACLzpB,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,sCACVI,IAAK+kB,EAA0B/kB,KAAO,KACtChE,KAAM+oB,EAA0B/oB,KAChC6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1F4mB,gBAAiBzpB,KAAK0mB,kBAClB,kBACAyC,EACAJ,EACAD,EACA9S,EAAoByR,wBAAyB,EAC7CxR,GAEJsT,iBAAkBA,QAAoBjiB,KAtCtCtH,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,qDAC5B,KAuCf,IAjRYvL,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,4CA8GDD,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,mCA/GPmT,GAAc/d,EAAAA,EAAAA,IAAA,CADnBE,EAAAA,IACK6d,GA8XN,sGC5cA,MAYA,EAZuEtmB,IACnE,MAAM,mBAAEoa,EAAkB,QAAE7Z,EAAO,YAAEyI,EAAW,MAAEoB,GAAUpK,EAE5D,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKyX,GACP7Z,EACAyI,EACAoB,EACI,8FCRjB,MAYA,EAZqFpK,IACjF,MAAM,0BAAEmb,EAAyB,QAAE5a,EAAO,YAAEyI,EAAW,MAAEoB,GAAUpK,EAEnE,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKwY,GACP5a,EACAyI,EACAoB,EACI,8FCRjB,MAAM2f,EAA2DhhB,IAAuE,IAAtE,mBAAE8gB,EAAkB,QAAEtpB,EAAO,gBAAEupB,EAAe,iBAAEF,GAAkB7gB,EAChI,OACIjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKknB,GACLtpB,EACDT,EAAAA,cAACkqB,EAAwBtnB,OAAAC,OAAA,GAAKmnB,IAC7BF,GACGA,EAAiB/nB,KAAI,CAACooB,EAAkBzgB,IAC7B1J,EAAAA,cAACkqB,EAAwBtnB,OAAAC,OAAA,GAAKsnB,EAAgB,CAAErjB,IAAK4C,OAEjE,EAITwgB,EAAyDnW,IAQ1D,IAR2D,kBAC5DuT,EAAiB,QACjB7mB,EAAO,YACPyI,EAAW,cACXqe,EAAa,cACbC,EAAa,OACbvT,EAAM,aACNwT,GACH1T,EACG,OACI/T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKykB,GACL7mB,EACAyI,EACDlJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK0kB,GACLE,EACAxT,EACAuT,GAEF,EAIT4C,EAAuDvW,IAAwD,IAAvD,mBAAEuV,EAAkB,QAAE3oB,EAAO,MAAE6J,EAAK,YAAEpB,GAAa2K,EAC7G,OACI7T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKumB,GACL3oB,EACAyI,EACAoB,EACE,EAiCf,EA7B+DpK,IAC3D,MAAM,eACFsmB,EAAc,eACd5P,EAAc,sBACd2R,EAAqB,QACrB9nB,EAAO,aACP+nB,EAAY,YACZG,EAAW,kBACXG,EAAiB,0BACjBE,EAAyB,0BACzBC,GACA/oB,EAEJ,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK2jB,GACP5P,EACA2R,GACGvoB,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK0lB,GACL9nB,EACDT,EAAAA,cAACoqB,EAAqBxnB,OAAAC,OAAA,GAAK2lB,IAC3BxoB,EAAAA,cAACoqB,EAAqBxnB,OAAAC,OAAA,GAAK8lB,IAC3B3oB,EAAAA,cAACiqB,EAAyBrnB,OAAAC,OAAA,GAAKimB,KAGtCE,GAA6BhpB,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKmmB,GAA4BC,GAC/D,gyBCbjB,IAAMoB,EAAN,cAA4BrqB,EAAAA,UAcxBC,YAAYC,GACRC,MAAMD,GAdO,KAAAE,gBAA0B,oBA0FpC,KAAAC,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,MAGhH,KAAAO,QAAU,KACbZ,KAAKa,mBACLb,KAAKc,sBAGLd,KAAKe,oBAAsBC,aAAY,KACnChB,KAAKiB,6BAA6B,GACnC,KACHC,YAAW,KACPC,cAAcnB,KAAKe,oBAAoB,GACxC,IAAO,EAIG,KAAAE,4BAA8B,KAEvCG,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzED,cAAcnB,KAAKe,qBACnBf,KAAKqB,eAAgB,EAAK,EAIjB,KAAAR,iBAAmB,KAE5BO,OAAkB,WAAKA,OAAkB,UAAmB,iBAE5DA,OAAkB,UAAmB,gBAAEI,KAAKC,IACxC,OAAQA,EAAIG,GAAGpB,eACX,IAAK,cACDR,KAAK+pB,iBAAmBtoB,EAAIK,IAC5B,MAEJ,IAAK,kBACD9B,KAAKgqB,qBAAuBvoB,EAAIK,IAG5B,GAEb,EAIM,KAAAhB,oBAAsB,KACnC,MAAM,UAAEQ,GAActB,KAAKL,MAG3B,GAAIyB,QAAUA,OAAgB,QAAG,CAC7B,MAAMY,EAAU,CACZG,gBAAiBb,EAAUc,gBAI/BC,OAAOC,OAAOlB,OAAgB,QAAGY,EAAS,GAjI9ChC,KAAK+pB,iBAAmBE,EAAAA,cAAcznB,aAAaC,OACnDzC,KAAKgqB,qBAAuBC,EAAAA,cAAcznB,aAAaC,OACvDzC,KAAKqB,eAAgB,EACrBrB,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOC,oBACHjD,KAAKY,SACT,CAGOsC,qBAEClD,KAAKqB,eAAiBD,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,YAEvC,CAEO+B,sBAAsBC,EAAsDC,GAC/E,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAM4D,OAASH,EAAUG,IAIlE,CAEOC,SACH,MAAM,OAAEvD,EAAM,UAAEqB,GAActB,KAAKL,MAE7B8D,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbgE,UAAW,CACPC,eAAgB5D,KAAKqB,eAEzB6oB,cAAe,CACXpmB,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAWhE,KAAKH,gBAAiBI,EAAO8D,YAEvDE,QAAS,CACLC,MAAO,CACHC,IAAKC,EAAAA,MACLC,QAAQ,GAEZC,UAAW,CACPH,IAAKI,EAAAA,WAETC,KAAM/E,EAAAA,cAAC0qB,EAAAA,EAAiC,CAACpmB,UAAW/D,KAAKH,kBACzDmC,QAASvC,EAAAA,cAAC2qB,EAAAA,EAAoC,CAACrmB,UAAW/D,KAAKH,gBAAiBmC,QAASV,EAAUc,kBAEvGuC,mBAAoB,CAChBpE,GAAI,MACJqE,MAAO,CAAEC,QAAS,SAEtBC,YAAa,CACTvE,GAAIP,KAAKqB,cAAgB,MAAQ,KACjC0C,UAAW,GAAG/D,KAAKH,8BAEvBK,QAASD,EAAOC,SACZT,EAAAA,cAACsF,EAAAA,GAAa1C,OAAAC,OAAA,CACVyB,UAAW,GAAG/D,KAAKH,4BACfI,EAAOC,QAAO,CAClB8E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,YAG1FwnB,0BAA2BrqB,KAAKoF,wBAGpC,OAAOpF,KAAKL,MAAM0F,WAAW5B,EACjC,CA6DQ2B,sBACJ,MAAM,UAAE9D,GAActB,KAAKL,MAC3B,MAAO,CACHmG,aAAc,CACVvF,GAAI,gBACJwD,UAAW,GAAG/D,KAAKH,uCAEvBkG,MAAO,CACH/F,KAAKgG,aAAa,cAAe,WAAY1E,EAAUgpB,qBAAsBtqB,KAAK+pB,kBAClF/pB,KAAKgG,aAAa,kBAAmB,WAAY1E,EAAUipB,yBAA0BvqB,KAAKgqB,uBAE9F3jB,aAAc,CACV5G,EAAAA,cAAC+qB,EAAAA,EAA2B,CACxBjkB,IAAI,wBACJhG,GAAG,wBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUmpB,6BAEvBhrB,EAAAA,cAAC+qB,EAAAA,EAA2B,CACxBjkB,IAAI,uBACJhG,GAAG,uBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUY,4BAEvBzC,EAAAA,cAAC+qB,EAAAA,EAA2B,CACxBjkB,IAAI,uBACJhG,GAAG,iBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASV,EAAUmF,sBAEvBhH,EAAAA,cAAC+qB,EAAAA,EAA2B,CACxBjkB,IAAI,+BACJhG,GAAG,+BACHwD,UAAW/D,KAAKH,mBAGxB6G,eAAgB,CACZ3C,UAAW,GAAG/D,KAAKH,4BAEvB8G,QAAS,CACLlH,EAAAA,cAACirB,EAAAA,EAA4B,CACzBnkB,IAAI,WACJhG,GAAG,WACHwD,UAAW,GAAG/D,KAAKH,mCACnBgH,UAAWvF,EAAUwF,oBACrB3G,KAAMmB,EAAUyF,eAChBrE,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACirB,EAAAA,EAA4B,CACzBnkB,IAAI,SACJhG,GAAG,SACHwD,UAAW,GAAG/D,KAAKH,iCACnBgH,UAAWvF,EAAU0F,iBACrB7G,KAAMmB,EAAU0F,iBAChBtE,iBAAkB1C,KAAK0C,oBAG/BuE,yBAA0B,CACtBlD,UAAW,GAAG/D,KAAKH,oDAEvBqH,gCAAiC,CAC7B3G,GAAI,kBACJwD,UAAW,GAAG/D,KAAKH,4CAG/B,CAEQmG,aAAazF,EAAYgH,EAAcC,EAAmBE,GAC9D,MAAM3D,EAAY,GAAG/D,KAAKH,gCAC1B,MAAO,CACH8H,QAAS,CACL5D,UAAWC,IAAWD,EAAW,GAAGA,KAAaxD,IAAM,aAAc,cAEzEgG,IAAKhG,EACLqH,MACInI,EAAAA,cAACkrB,EAAAA,EAA2BtoB,OAAAC,OAAA,GACpB,CACA/B,KACAuH,MAAOvH,EACPwD,YACA5D,KAAMqH,KAIlBnB,aACI5G,EAAAA,cAAC+qB,EAAAA,EAA2BnoB,OAAAC,OAAA,GACpB,CACAyB,UAAW/D,KAAKH,gBAChB0H,KAAM,UAIlBQ,MACItI,EAAAA,cAACmrB,EAAAA,EAA2BvoB,OAAAC,OAAA,GACpB,CACA/B,KACAgH,OACAG,UACA3D,eAKpB,IAxPYmE,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,wCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,4CAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,oCATT2hB,GAAa5hB,EAAAA,EAAAA,IAAA,CADlBE,EAAAA,IACK0hB,GAgQN,gGCzTA,MAAMe,EAAkDniB,IAA4C,IAA3C,QAAEf,EAAO,MAAEC,EAAK,aAAEvB,EAAY,MAAE0B,GAAOW,EAC5F,OACIjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqF,GACLC,EACAvB,EACA0B,EACE,EAsCT+iB,EAAwDxX,IAAwC,IAAvC,MAAEpP,EAAK,UAAEI,EAAS,KAAEE,EAAI,QAAExC,GAASsR,EAC9F,OACI7T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4B,GACNzE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgC,GACLE,EACAxC,GAEF,EAmBf,EAf6DrC,IACzD,MAAM,cAAEuqB,EAAa,UAAEvmB,EAAS,QAAEM,EAAO,mBAAEU,EAAkB,YAAEG,EAAW,QAAE5E,EAAO,0BAAEmqB,GAA8B1qB,EAEnH,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK4nB,GACPvmB,EAAUC,eAAiBnE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqC,IACrChB,EAAUC,eAAiBnE,EAAAA,cAACqrB,EAAoBzoB,OAAAC,OAAA,GAAK2B,IACtDxE,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwC,GACL5E,EArD0CsT,KAQtD,IARuD,aACxD1N,EAAY,MACZC,EAAK,aACLM,EAAY,eACZK,EAAc,QACdC,EAAO,yBACPM,EAAwB,gCACxBC,GACHsM,EACG,OACI/T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwD,GACLC,GACGA,EAAMvE,KAAKmN,GAEAlP,EAAAA,cAACorB,EAAiBxoB,OAAAC,OAAA,GAAKqM,MAErCtI,GACGA,EAAa7E,KAAI,CAACiS,EAAwBtK,IAC/B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQsK,KAE5ChU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKoE,GACLC,GACGA,EAAQnF,KAAI,CAACkS,EAAyBvK,IAC3B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,MAIhDjU,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK2E,GACNxH,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4E,KAEX,EAwBEyM,CAAa0W,IAEb,0LC3DV,MAAMU,EAAaA,CAAChnB,EAAmB1D,IACnCZ,EAAAA,cAAA,OAAKsE,UAAWA,GAAY1D,GAS1B2qB,EAAmBA,CAACC,EAA8BC,IACpDD,GAAwBxrB,EAAAA,cAAA,OAAKsE,UAAWmnB,GAAwBD,GAW9DE,EAA8BA,CACvC7pB,EACAgU,EACA8V,EACAC,KAEA,MAAM,8BAAEC,EAA6B,2BAAEC,EAA0B,0BAAEC,GAA8BlqB,EAC3FU,EAAkBspB,EAClBG,EAAsBF,EACtBG,EAAqBF,EAC3B,OACI/rB,EAAAA,cAAA,OAAKsE,UAAWsnB,GACXrpB,EACDvC,EAAAA,cAAA,KAAGsE,UAAWqnB,EAAqBpa,KAAMsE,GACpCoW,GAEJD,EACC,EAmFDE,EAAqBC,GACvBnsB,EAAAA,cAAA,OAAKsE,UAAU,+CAA+C6nB,GCrGzE,IAAqBC,EAArB,cAAmEpsB,EAAAA,UAC/DC,YAAmBC,GACfC,MAAMD,EACV,CAEOwD,sBAAsBC,GACzB,OAAIpD,KAAKL,QAAUyD,CAIvB,CAEOI,SACH,OACI/D,EAAAA,cAAA,OAAKsE,UAAU,qDACV/D,KAAK8rB,kCAAkCC,qBACvC/rB,KAAK8rB,kCAAkCE,qBACvChsB,KAAK8rB,kCAAkCG,qBAGpD,CAMQH,kCACJ,MAAO,CACHC,qBAAsBhB,EAAW/qB,KAAKL,MAAMusB,8BAA+BlsB,KAAKL,MAAMosB,sBACtFE,qBACIxsB,EAAAA,cAAA,OAAKsE,UAAU,mEACXtE,EAAAA,cAAA,SACI8H,KAAMvH,KAAKL,MAAMwsB,UACjBlkB,SAAUjI,KAAKL,MAAMsI,SAAQ,aACjBjI,KAAKL,MAAMkH,UACvBxG,MAAOL,KAAKL,MAAMU,MAClB0O,KAAM/O,KAAKL,MAAMoP,QAI7Bid,qBACIvsB,EAAAA,cAAA,OAAKsE,UAAU,kEACT/D,KAAKL,MAAMysB,2BAA2E,GAA9CpsB,KAAKL,MAAM0sB,kCAIrE,GA9CiBR,GAAqC3jB,EAAAA,EAAAA,IAAA,CADzDE,EAAAA,IACoByjB,GA+CpB,UC5CD,IAAqBS,EAArB,cAAyD7sB,EAAAA,UACrDC,YAAmBC,GACfC,MAAMD,EACV,CAEOwD,sBAAsBC,GACzB,OAAIpD,KAAKL,QAAUyD,CAIvB,CAEOI,SACH,OACI/D,EAAAA,cAAA,OAAKsE,UAAW/D,KAAKL,MAAMoE,WACtB/D,KAAKusB,wBAAwB3kB,MAC7B5H,KAAKusB,wBAAwB9Y,MAC7BzT,KAAKusB,wBAAwBxkB,MAG1C,CAMQwkB,wBACJ,MAAO,CACH3kB,MAAOmjB,EAAW/qB,KAAKL,MAAM6sB,0BAA2BxsB,KAAKL,MAAM8sB,kBACnE1kB,MACItI,EAAAA,cAAA,OAAKsE,UAAU,wDACXtE,EAAAA,cAAA,SACIqe,IAAK9d,KAAKL,MAAM+sB,eAChBnlB,KAAMvH,KAAKL,MAAMwsB,UACjBlkB,SAAUjI,KAAKL,MAAMsI,SAAQ,aACjBjI,KAAKL,MAAMkH,UACvBxG,MAAOL,KAAKL,MAAMU,MAClB0O,KAAM/O,KAAKL,MAAMoP,QAI7B0E,MACIhU,EAAAA,cAAA,OAAKsE,UAAW/D,KAAKL,MAAMgtB,qBACtB3sB,KAAKL,MAAMitB,iBAAmB5sB,KAAKL,MAAMktB,YAAY7sB,KAAKL,MAAMoP,MAAQ,GACxE/O,KAAKL,MAAMmtB,kBAAoB9sB,KAAKL,MAAMktB,YAAY7sB,KAAKL,MAAMoP,MAAQ,IAI1F,GAhDiBud,GAA2BpkB,EAAAA,EAAAA,IAAA,CAD/CE,EAAAA,IACoBkkB,GAiDpB,+kBCrCD,IAAKS,GAAL,SAAKA,GACDA,EAAA,cACAA,EAAA,yBACH,CAHD,CAAKA,IAAAA,EAAuB,KAsC5B,MAAMC,UAAoBvtB,EAAAA,cAetBC,YAAmBC,GACfC,MAAMD,GAXH,KAAAstB,cAAwB,EAMvB,KAAAC,oBAA8B,EAE9B,KAAAC,0BAAqD,GAoLtD,KAAAC,iBAAoBrtB,IACvBC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,KAAK,EAOjD,KAAAgtB,sBAAyBttB,IAC5B,MAAM,OAAEE,GAAWD,KAAKL,MACxBM,EAAOqtB,UAAYvtB,EAAMK,OAAOC,KAAK,EAezB,KAAAktB,aAAe,KAC3B,MAAM,OAAEttB,EAAM,QAAE2C,GAAY5C,KAAKL,OAC3B,cAAEgT,GAAkB/P,GACpB,qBAAEkH,EAAoB,YAAE0jB,EAAW,MAAE3rB,GAAU7B,KAAKsD,MACpDmqB,EAAmB5rB,GACnB,gCAAE6rB,GAAoCztB,EACtC0tB,OAAsDrmB,IAApComB,EAAgDA,EAAkC,GAE1G,GADyB1tB,KAAK4tB,2BACjB,CAAC,IAADC,EACT,MAAMC,EAAqCnb,EACrCob,EAA0E,QAA1DF,EAAG9oB,EAAAA,GAAoB,eAAgB+oB,UAAmB,IAAAD,EAAAA,EAAI,GACpF,GAAIE,EAAkB,CAClB,MAAMC,EAAU,IAAIld,IAAI1P,OAAO2P,SAAS0E,QAClCwY,EAAc,IAAInd,IAAIid,EAAkBC,GACxCE,EAAmBD,EAAYE,aAErCD,EAAiBE,IAAI,iBAAkBZ,GACvCU,EAAiBE,IAAI,eAAgBT,GACrCO,EAAiBE,IAAI,gBAAiBX,GAElChgB,EAAAA,gBAAgBC,YAAY5D,IAC5BA,EAAqBtI,KAAI,CAACmN,EAAMxF,KAC5B,MAAMklB,EAAaxjB,EAAAA,iBAAiBsW,mBAAmBxS,EAAK9H,WAEtD,GADA8H,EAAK9H,UAAUqE,QAAQ,IAAK,IAAI8R,oBAEhCsR,EAAczjB,EAAAA,iBAAiBsW,mBAAmBxS,EAAK2f,YAAgC,GAAlB3f,EAAK2f,WAGhF,OAFAJ,EAAiBE,IAAI,QAAQjlB,EAAQ,QAASklB,GAC9CH,EAAiBE,IAAI,QAAQjlB,EAAQ,SAAUmlB,GACxC3f,CAAI,IAInBvN,OAAO2P,SAASzO,OAAO2rB,EAAY9G,WAAY,CAAD,GAS1C,KAAAlf,SAAYlI,IAAoD,IAAAwuB,EAAAC,EAC5E,MAAM,qBAAE1kB,GAAyB9J,KAAKsD,OAChC,OAAErD,GAAWD,KAAKL,OAClB,gCAAE+tB,GAAoCztB,EACtC8O,EAAOhP,EAAMK,OAAO2O,MAAQ,GAC5B1O,EAAQN,EAAMK,OAAOC,OAAS,GACpCL,KAAKktB,oBAAsBriB,EAAAA,iBAAiBsW,mBAAmD,QAAjCoN,EAACvuB,KAAKyuB,oBAAoBnN,eAAO,IAAAiN,OAAA,EAAhCA,EAAkCluB,OACjGL,KAAKitB,cAAgBpiB,EAAAA,iBAAiBsW,mBAA6C,QAA3BqN,EAACxuB,KAAK0uB,cAAcpN,eAAO,IAAAkN,OAAA,EAA1BA,EAA4BnuB,OAExB,UAAzDqtB,aAA+B,EAA/BA,EAAiC1Q,uBACjChd,KAAKitB,cAAe,GAGxBjtB,KAAKoU,SAAS,CAAE6W,qBAAsB,KACtC,MAAM0D,EAA2D,GACjE,IAAIC,GAAkC,EAClCC,GAA4C,EAEhD,IAAK,MAAMlgB,KAAQ7E,EAAsB,CACrC,MAAMukB,EAAoB1f,EAAK9H,UAAUqE,QAAQ,IAAK,IAClDmjB,EAAUrR,sBAAwBjO,EAAKiO,oBACvC2R,EAAyBvnB,KAAK,CAC1B0nB,UAAWngB,EAAKmgB,UAChBC,kBAAkB,EAClBT,WAAYjuB,EACZwG,UAAW8H,EAAK9H,UAChBmoB,4BAA6BrgB,EAAKqgB,8BAGtCL,EAAyBvnB,KAAK,CAC1B0nB,UAAWngB,EAAKmgB,UAChBC,iBAAkBpgB,EAAKogB,iBACvBT,WAAY3f,EAAK2f,WACjBznB,UAAW8H,EAAK9H,UAChBmoB,4BAA6BrgB,EAAKqgB,8BAGtCX,EAAUrR,uBAAwB0Q,aAA+B,EAA/BA,EAAiC1Q,uBACnE6R,GAAmC,EAAI,CAI/C,IAAK,MAAM9oB,KAAS4oB,EACZ9jB,EAAAA,iBAAiBsW,mBAAmBpb,EAAMuoB,cAC1CM,GAAyB,GAMjC,GAFA5uB,KAAKoU,SAAS,CAAEtK,qBAAsB6kB,KAEjCE,EACD,OAAQ9f,EAAKiO,qBACT,KAAK+P,EAAwBkC,YACzBjvB,KAAKoU,SAAS,CACVoZ,YAAantB,EACb6uB,kBAAkB,EAClBC,YAAY,IAEhB,MAEJ,KAAKpC,EAAwBlrB,MACzB7B,KAAKoU,SAAS,CACVvS,MAAOxB,EACP+uB,cAAc,EACdC,mBAAmB,EACnBF,YAAY,IAEhB,MAEJ,QACInvB,KAAKoU,SAAS,CAAE+a,YAAY,IAMpCnvB,KAAKktB,oBACLltB,KAAKitB,cACL2B,GACA5uB,KAAKsD,MAAMgsB,qBACVtvB,KAAKsD,MAAMisB,6BAEZvvB,KAAKoU,SAAS,CAAE4R,YAAY,IAE5BhmB,KAAKoU,SAAS,CAAE4R,YAAY,GAAQ,EAwB3B,KAAAwJ,aAAgBzrB,IAC7B,MACIzC,WAAW,uCAAEmuB,EAAsC,oCAAEC,IACrD1vB,KAAKL,OAEH,aAAEyvB,EAAY,MAAEvtB,EAAK,kBAAEwtB,EAAiB,WAAEF,GAAenvB,KAAKsD,MAChE8rB,IACApvB,KAAK2vB,qBAAuBD,IAG3B7kB,EAAAA,iBAAiBC,cAAcjJ,IAAUwtB,IAC1CrvB,KAAK4vB,4BAA8BH,GAGvC,MAAMI,EAAiBV,EACjBW,EAAoBT,EACpBU,EAAoBhsB,EAAUiZ,sBAAwB+P,EAAwBlrB,MACpF,OACIpC,EAAAA,cAAAA,EAAAA,SAAA,KACKowB,GACGpwB,EAAAA,cAAA,QAAMsE,UAAW,GAAGA,WAAoB8F,KAAK,SACxC7J,KAAK2vB,sBAGbG,GAAqBC,GAClBtwB,EAAAA,cAAA,QAAMsE,UAAW,GAAGA,WAAoB8F,KAAK,SACxC7J,KAAK4vB,6BAGf,EASM,KAAAI,wBAA2BjsB,IACxC,MACIzC,WAAW,6CAAE2uB,EAA4C,oCAAEP,IAC3D1vB,KAAKL,OAEH,iBAAEuvB,EAAgB,WAAEC,GAAenvB,KAAKsD,MAC9C,OACI7D,EAAAA,cAAAA,EAAAA,SAAA,KACK0vB,GACG1vB,EAAAA,cAAA,QAAMsE,UAAW,GAAGA,WAAoB8F,KAAK,SACxC6lB,GAGRR,GACGzvB,EAAAA,cAAA,QAAMsE,UAAW,GAAGA,WAAoB8F,KAAK,SACxComB,GAGV,EA+BM,KAAAC,wBAA0B,KACvC,MAAM,MAAEruB,EAAK,aAAEutB,EAAY,kBAAEC,GAAsBrvB,KAAKsD,OAEpDrD,QAAQ,gCAAEytB,GACVpsB,WAAW,sBAAE6uB,EAAqB,0BAAEC,IACpCpwB,KAAKL,MAET,GACQ,SADA+tB,EAKA,OACIjuB,EAAAA,cAAC6sB,EAA2B,CACxBI,eAAgB1sB,KAAK0uB,cACrB7nB,UAAWupB,EACXrsB,UAAU,yCACVooB,UAAU,OACV9rB,MAAOwB,EACPkN,KAAMge,EAAwBlrB,MAC9B4qB,iBAAkB0D,EAClB3D,0BAA0B,sDAC1BG,oBAAoB,4DACpBC,iBAAkBwC,EAClBtC,kBAAmBuC,EACnBxC,YAAa7sB,KAAKwvB,aAClBvnB,SAAUjI,KAAKiI,UACjB,EASD,KAAAooB,2BAA6B,KAC1C,MAAM1B,EAA2D,GACjE,IAAK,MAAMhgB,KAAQ3O,KAAKsD,MAAMwG,qBAAsB,CAChD,MAAMwmB,GAAyBzlB,EAAAA,iBAAiBsW,mBAAmBxS,EAAK2f,cH/f7Cvf,EG+fmFJ,EAAK2f,WH9f7G,IAAIiC,OAAO,2BAA4B,KACxCC,KAAKzhB,IG8fV4f,EAAyBvnB,KAAK,CAC1B0nB,UAAWngB,EAAKmgB,UAChBC,iBAAkBuB,EAClBhC,WAAY3f,EAAK2f,WACjBznB,UAAW8H,EAAK9H,UAChBmoB,4BAA6BrgB,EAAKqgB,6BACnC,CHtgBwBjgB,MGwgB/B,OAAO4f,CAAwB,EAOlB,KAAAf,yBAA2B,KACxC,MAAM,OAAE3tB,GAAWD,KAAKL,OAClB,YAAE6tB,EAAW,MAAE3rB,GAAU7B,KAAKsD,OAC9B,gCAAEoqB,GAAoCztB,EAC5C,IAAI0uB,EAA2D,GAC3D8B,GAAU,EACVC,GAAY,EAEhB,GAAIjjB,EAAAA,gBAAgBC,YAAY1N,KAAKsD,MAAMwG,sBAAuB,CAC9D6kB,EAA2B3uB,KAAKqwB,6BAChC,IAAK,MAAM1hB,KAAQggB,EACVhgB,EAAKogB,mBACN2B,GAAY,GAIhBA,GACA1wB,KAAKoU,SAAS,CACVtK,qBAAsB6kB,EACtB3I,YAAY,GACd,CAwCV,OApCInb,EAAAA,iBAAiBsW,mBAAmBqM,GACpCxtB,KAAKoU,SAAS,CACV8a,kBAAkB,EAClBC,YAAY,EACZnJ,YAAY,IAETwH,EAAY1J,SAAW0J,EAC9BxtB,KAAKoU,SAAS,CACV8a,kBAAkB,EAClBC,YAAY,EACZnJ,YAAY,IAGe,UAA/B0H,GACA7iB,EAAAA,iBAAiBsW,mBAAmBtf,GAEpC7B,KAAKoU,SAAS,CACVgb,cAAc,EACdD,YAAY,EACZnJ,YAAY,IAEsB,UAA/B0H,GHrkBU7rB,IAClBU,EAAAA,WAAWC,aAAaguB,KAAK3uB,GGokB0D8uB,CAAa9uB,GAK5F6uB,IAAc1wB,KAAKsD,MAAMgsB,oBAAsBtvB,KAAKsD,MAAMisB,6BACjEvvB,KAAKoU,SAAS,CACV4R,YAAY,KAGhBhmB,KAAKoU,SAAS,CACV4R,YAAY,IAEhByK,GAAU,GAZVzwB,KAAKoU,SAAS,CACVib,mBAAmB,EACnBrJ,YAAY,IAYbyK,CAAO,EAxiBdzwB,KAAKyuB,oBAAsBhvB,EAAAA,YAC3BO,KAAK0uB,cAAgBjvB,EAAAA,YACrB,MAAM,OAAEQ,GAAWD,KAAKL,OAClB,kCAAEixB,GAAsC3wB,EACxC0uB,EAA2D,GAEjE,GAAIiC,EACA,IAAK,MAAMjiB,KAAQiiB,EAAmC,CAAC,IAADC,EAAAC,EAAAC,EAClDpC,EAAyBvnB,KAAK,CAC1B0nB,UAAyB,QAAhB+B,EAAEliB,EAAKmgB,iBAAS,IAAA+B,EAAAA,EAAI,GAC7B9B,kBAAkB,EAClBT,WAAY,GACZznB,UAAyB,QAAhBiqB,EAAEniB,EAAK9H,iBAAS,IAAAiqB,EAAAA,EAAI,GAC7B9B,4BAAmD,QAAxB+B,EAAEpiB,EAAKqiB,yBAAiB,IAAAD,EAAAA,EAAI,IACxD,CAIX/wB,KAAKsD,MAAQ,CACTkqB,YAAa,GACb3rB,MAAO,GACPqtB,kBAAkB,EAClBE,cAAc,EACdC,mBAAmB,EACnBF,YAAY,EACZnJ,YAAY,EACZsJ,oBAAoB,EACpBC,8BAA8B,EAC9BtE,qBAAsB,GACtBnhB,qBAAsB6kB,EAE9B,CAEOnrB,SAAM,IAAAytB,EAAAC,EACT,MACIjxB,QAAQ,UAAEqtB,EAAS,QAAEptB,GAAS,UAC9BoB,EAAS,QACTsB,GACA5C,KAAKL,OAEH,8BACFwxB,EAA6B,uBAC7BC,EAAsB,yBACtBC,EAAwB,4BACxBC,EAA2B,gCAC3BC,EAA+B,2BAC/BC,EAA0B,uCAC1B5F,GACAtqB,GAEE,qBAAE2pB,EAAoB,WAAEjF,EAAU,YAAEwH,EAAW,iBAAE0B,GAAqBlvB,KAAKsD,MAE3EmuB,EAAc5mB,EAAAA,iBAAiBC,cAAc5K,aAAO,EAAPA,EAASC,MAAQgxB,EAAgCjxB,aAAO,EAAPA,EAASC,KACvGuxB,EAAyB,QAAfT,EAAG/wB,aAAO,EAAPA,EAASiE,WAAG,IAAA8sB,EAAAA,EAAI,KAE7BpxB,EAAkB,kBAClB8xB,EAAgC,2BAEhCC,EAA2B,iCAC3BC,EAA+C,GAAGD,iCAClDE,EAAiC,GAAGF,YACpCG,EAA4B,GAAGD,wBAC/BE,EAAiC,GAAGF,8BACpCG,EAAwB,GAAGL,YAE3BvG,EAA0B,mCAC1B6G,EAAsB,GAAG7G,0BAEzB8G,EACF1yB,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAb4B,oCAc5BI,IAAKutB,EACLvxB,KAAMsxB,EACNzsB,UAAW,CAAEC,OAAQjF,KAAKotB,iBAAkBloB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAIjFY,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbyyB,YAAa,CACTtuB,YAAa9D,KAAKL,MAClBoE,UAAWlE,GAGfwyB,qBAAsB,CAClBtuB,UAAW4tB,GAEfW,oCAAqC,CACjCvuB,UAAW8tB,GAEfvE,UAAWA,GAAattB,KAAKuyB,iBAAiBjF,GAC9CptB,QAASiyB,EAETK,4BAA6BxyB,KAAKkwB,0BAClCuC,gBAAiB,CACb1uB,UAAW6tB,EACXztB,IAAK,OACL,aAAcktB,EACdtiB,KAAM,kBACNlF,KAAM,OACN6oB,aAAc,MACdC,SAAU3yB,KAAKutB,cAEnBqF,iBACInzB,EAAAA,cAAC6sB,EAA2B,CACxBI,eAAgB1sB,KAAKyuB,oBACrB5nB,UAAW0qB,EACXxtB,UAAW+tB,EACX3F,UAAU,OACV9rB,MAAOmtB,EACPze,KAAMge,EAAwBkC,YAC9BxC,iBAAkB6E,EAClB9E,0BAA2BuF,EAC3BpF,oBAAqBqF,EACrBpF,kBAAkB,EAClBE,kBAAmBoC,EACnBrC,YAAa7sB,KAAKgwB,wBAClB/nB,SAAUjI,KAAKiI,WAIvB4qB,aAAc,CACV9uB,UAAWkuB,EACX9tB,IAAKwS,EAAAA,OACL,aAAc6a,EACdjqB,KAAM,SACNsC,KAAM,SACN2U,MAAO4S,EACPna,QAASjX,KAAKutB,aACdvW,SAAUgP,GAGd8M,sBAAuB1B,EACvB/qB,aAAc2kB,EAAiBC,EArEA,kCAsE/B8H,oBACM/yB,KAAKsD,MAAMgsB,oBAAsBtvB,KAAKsD,MAAMisB,+BAC9C5D,EAAkBC,GACtBoH,sBAAuB7H,EACnB7pB,EAC8B,QADrB4vB,EACTtuB,EAAQC,QAAQoR,KAAKqB,iBAAS,IAAA4b,EAAAA,EAAI,GAClCgB,EACA7G,GAEJpjB,SAAUjI,KAAKiI,SACfgrB,OAAQjzB,KAAKutB,aACbzjB,qBAAsB9J,KAAKkzB,4BAE/B,OAAOlzB,KAAKL,MAAM0F,WAAW5B,EACjC,CAEOqhB,0BAAuB,IAAAqO,EAAAC,EAC1B,MAAM,OAAEnzB,EAAM,QAAE2C,GAAY5C,KAAKL,OAC3B,cAAEgT,GAAkB/P,GACpB,gCAAE8qB,EAA+B,kCAAEkD,GAAsC3wB,EAC/E,IAAIozB,GAA6C,EAC7CC,GAAmC,EAEvC,MAAMC,QAAkCC,EAAAA,2BAAAA,+BAA0D,CAAEC,cAAe9gB,IACnH3S,KAAKmtB,0BACoH,QAD3FgG,EACmE,QADnEC,EAC1BG,EAA0B3W,MAAKjO,GAA0B,sCAAlBA,EAAK+kB,kBAAiD,IAAAN,OAAA,EAA7FA,EAA+FO,8BAAsB,IAAAR,EAAAA,EAAI,GAE7H,MACMS,EAA2EhD,QAAAA,EAAqC,GAEtH0C,EH5LgCO,EACpCC,EACA3G,KAEA,IAAI4G,GAAwB,EAC5B,IAAK,MAAMplB,KAAQwe,EACf,GAAIxe,EAAKoO,KAAKC,sBAAwB8W,EAA2B9W,oBAE7D,OADA+W,GAAe,EACRA,EAGf,OAAOA,CAAY,EGiLWF,CAHWnG,QAAAA,EAAmC,GAGC1tB,KAAKmtB,2BAC9EkG,EH/J0CW,EAC9CC,EACA9G,KAEA,IAAI+G,GAAkC,EAYtC,OAXIzmB,EAAAA,gBAAgBC,YAAYumB,GAC5BA,EAAsCzyB,KAAImN,IAAO,IAAAwlB,EAC7C,MAAMC,EAAgC,QAAxBD,EAAWxlB,EAAKylB,gBAAQ,IAAAD,EAAAA,EAAI,GAI1C,OAHKD,IACDA,EAnBgCG,EAACh0B,EAAe8sB,KACpDA,EAA0BmH,MAAK3lB,GAAQA,EAAKoO,KAAKC,sBAAwB3c,EAAM2c,sBAkBlDqX,CAAiCD,EAAUjH,IAEjE+G,CAAsB,IAGjCA,GAAyB,EAEtBA,CAAsB,EG+IWF,CAChCJ,EACA5zB,KAAKmtB,2BAETntB,KAAKu0B,oBAAoBjB,EAAyBD,EACtD,CAwBOkB,oBAAoBR,EAAuBG,GAC9Cl0B,KAAKoU,SAAS,CAAEkb,mBAAoByE,EAAcxE,6BAA8B2E,GACpF,CAsIQ3B,iBAAiBpyB,GACrB,MAAM,QAAEyC,GAAY5C,KAAKL,OACnB,QAAEkD,GAAYD,EACpB,OAAKzC,EAIDV,EAAAA,cAACsF,EAAAA,GAA0B,CACvB5E,KAAMA,EACN4D,UAAU,iCACViB,UAAW,CAAEC,OAAQjF,KAAKqtB,sBAAuBnoB,eAAgBrC,KAN9D,IASf,CAmEQqwB,0BACJ,MAAM,qBAAEppB,GAAyB9J,KAAKsD,MAChCkxB,EAAuC,GAC7C,IAAK,MAAM7lB,KAAQ7E,EAAsB,CACrC,MAAMiF,EAAeJ,EAAK9H,UAAUqE,QAAQ,IAAK,IACjDspB,EAAsBptB,KAClB3H,EAAAA,cAACosB,EAAqC,CAClC9nB,UAAWgL,EAAKiO,oBAChBnW,UAAW8H,EAAK9H,UAChBslB,UAAU,OACV9rB,MAAOsO,EAAK2f,WACZvf,KAAMA,EAAKiO,oBACX+O,qBAAsBpd,EAAKmgB,UAC3B5C,8BAA8B,2DAC9BE,2BAA4Bzd,EAAKogB,iBACjC1C,iCAAkC1d,EAAKqgB,4BACvC/mB,SAAUjI,KAAKiI,WAErB,CAEN,OAAOusB,CACX,EA6HJ,oJC9oBO,MAAMC,EAA0E/rB,IAAA,IAAC,YAAEC,GAAaD,EAAA,OACnGjJ,EAAAA,cAAA,KAAGsE,UAAU,wCAAwC4E,EAAgB,ECwBnEC,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAW,gCACXuF,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,EAGxB,EAtCoEJ,IAA8D,IAA7D,MAAEqB,EAAK,iBAAErH,EAAgB,eAAEwC,EAAc,aAAE8E,GAActB,EAC1H,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,kCACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,ukBCJd,MAAMwvB,UAA2Bj1B,EAAAA,cAG7BC,YAAYC,GACRC,MAAMD,GA6DH,KAAAG,oBAAuBC,GAA0CC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,MAE/G,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMI,KACnDnK,KAAKL,MAAMM,OAAO8J,MAAMI,GAAWb,SAAWvJ,EAAMK,OAAOC,MAAM,EAhErEL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SAAM,IAAAmxB,EACT,MAAM,OACF10B,EAAM,KACNsD,EAAI,UACJjC,EACAsB,SACIyI,kBAAkB,eACdupB,EAAc,aAGdC,KAGR70B,KAAKL,OACH,UAAEoE,EAAS,QAAE7D,EAAO,MAAE6J,GAAU9J,GAChC,8BAAE60B,GAAkCxzB,EAGpCyzB,EAAyCH,IADM,QAA3BD,EAAApxB,EAAKyxB,gBAAgBxsB,cAAM,IAAAmsB,OAAA,EAA3BA,EAA6BM,qBAAsB,GACGta,QAAQ,GAAIka,GAEtFlsB,EAAcosB,IAAsBvqB,EAAAA,EAAAA,QAAOsqB,EAA+BC,GAE1EtxB,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACA2wB,mBAAoB,CAChB5wB,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,0BAA2B/D,EAAO8D,YAE5D7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,mCACVI,IAAKjE,EAAQiE,KAAO,KACpBhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MAAOA,GAASA,EAAMnE,OAAS,GAC3BnG,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YAAaA,GAAelJ,EAAAA,cAACg1B,EAA6B,CAAC9rB,YAAaA,MAG5E,OAAO3I,KAAKL,MAAM0F,WAAW5B,EACjC,EAWJ,m9BCnCO,MAAMyxB,EAA+CxsB,IAAA,IAAC,GACzDnI,EAAE,KACFgH,EAAI,MACJlH,EAAK,QACLqH,EAAO,UACP3D,EAAS,UACT0D,EAAS,WACT0tB,EAAU,WACVnP,EAAU,SACV/d,EAAQ,eACRmtB,EAAc,YACdC,GACH3sB,EAAA,OACGjJ,EAAAA,cAAA,SACIc,GAAIA,EACJgH,KAAMA,EACNlH,MAAOA,EACP0D,UAAW,GAAGA,UACd2D,QAAqB,KAAZA,EAAiBA,OAAUJ,EAAS,gBAC9B6tB,EACfE,YAAaA,EACb5tB,UAAW6tB,EAAa7tB,GACxBQ,SAAUA,EACV+O,SAAUgP,EACVlI,IAAKsX,GACP,EAWOG,EAA0C/hB,IAAA,IAAC,GAAEjT,EAAE,MAAEuH,EAAK,UAAE/D,EAAS,KAAE5D,EAAI,aAAEq1B,GAAchiB,EAAA,OAChG/T,EAAAA,cAAA,SAAOc,GAAI,GAAGA,UAAYwD,UAAW,GAAGA,UAAmB0xB,QAAS3tB,IAC/D0C,EAAAA,EAAAA,QAAOgrB,EAAcr1B,GAClB,EAaCu1B,EAA4CpiB,IAA4E,IAA3E,GAAE/S,EAAE,UAAEwD,EAAS,KAAE5D,EAAI,UAAE0G,EAAS,iBAAEnE,EAAgB,SAAEsU,EAAQ,QAAEC,GAAS3D,EAC7H,MAAMvK,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBvC,GACvDoJ,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAC7D,OACItJ,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAAC/B,GAAIA,EAAIwD,UAAWA,EAAS,aAAc8C,EAAWmQ,SAAUA,EAAUC,QAASA,GAAa1N,GAClGpJ,EACI,EAWJw1B,EAAoDC,IAA8C,IAA7C,GAAEr1B,EAAE,UAAEwD,EAAS,KAAEwD,EAAO,OAAM,QAAEvF,GAAS4zB,EACvG,MAAMC,EAAiB,GAAG9xB,MAAcwD,UAExC,OACI9H,EAAAA,cAAA,OAAKc,GAAIA,EAAIwD,UAAWC,IAAW6xB,EAAgB,QAAS,GAAGtuB,UAAcsC,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHpK,EAAAA,cAAA,KAAGsE,UAAW,GAAG8xB,UAAwB7zB,GACvC,EAIRszB,EAAgB7tB,IAClB,GAAIA,EAAW,CACX,MAAMquB,EAAkB5lB,OAAOC,SAAS1I,EAAW,IACnD,IAAKwI,MAAM6lB,GACP,OAAOA,CAAe,CAId,ukBC1Db,IAAKC,EAQAC,EAKAC,GAbZ,SAAYF,GACRA,EAAA,YACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,YACAA,EAAA,SACH,CAND,CAAYA,IAAAA,EAAQ,KAQpB,SAAYC,GACRA,EAAA,YACAA,EAAA,aACH,CAHD,CAAYA,IAAAA,EAAS,KAKrB,SAAYC,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,sBACAA,EAAA,cACAA,EAAA,8BACAA,EAAA,gBACAA,EAAA,eACH,CARD,CAAYA,IAAAA,EAAO,KAwBZ,MAAMC,EAAqBA,CAC9BC,EACApyB,EACAqyB,EACAC,IAEOF,EAAO30B,KAAI4jB,IACd,MAAM,YAAEkR,EAAW,GAAE/1B,EAAE,KAAEgH,EAAI,MAAEK,EAAK,SAAE2uB,EAAQ,WAAEpB,EAAU,QAAEztB,EAAO,MAAErH,EAAK,WAAE2lB,EAAU,eAAEoP,GAAmBhQ,EAC3G,MAAO,CACHzd,QAAS,CACL5D,UAAWC,IAAWD,EAAWxD,EAAI+1B,IAEzC/vB,IAAKhG,EACLqH,MAAOnI,EAAAA,cAAC81B,EAASlzB,OAAAC,OAAA,GAAK,CAAE/B,KAAIuH,MAAOvH,EAAIwD,YAAW5D,KAAMyH,EAAO4tB,aAAcL,EAAaiB,EAAqBxuB,KAC/GvB,aAAc5G,EAAAA,cAACk2B,EAActzB,OAAAC,OAAA,GAAK,CAAEyB,YAAWwD,KAAM,UACrDQ,MACItI,EAAAA,cAACy1B,EAAS7yB,OAAAC,OAAA,GACF,CACA/B,KACAgH,OACAE,UAAW8uB,EACX7uB,UACArH,QACA0D,YACAoxB,gBAA2B7tB,IAAf6tB,GAAmCA,EAC/CltB,SAAUouB,EACVrQ,aACAqP,YAAaztB,EACbwtB,oBAIf,IAcT,IAAMoB,EAAN,cAAuC/2B,EAAAA,UAsFnCC,YAAYC,GAAoE,IAAA82B,EAC5E72B,MAAMD,GAnFH,KAAA+2B,0BAA6C,CAChD,CACIn2B,GAAI01B,EAAQxtB,UACZlB,KAAMyuB,EAAUhoB,KAChBpG,MAAO5H,KAAKL,MAAM2B,UAAUq1B,+BAC5Bt2B,MAAO,GACP80B,YAAY,EACZmB,YAAa,YAEjB,CACI/1B,GAAI01B,EAAQrN,SACZrhB,KAAMyuB,EAAUhoB,KAChBpG,MAAO5H,KAAKL,MAAM2B,UAAUs1B,8BAC5Bv2B,MAAO,GACP80B,YAAY,EACZmB,YAAa,YAEjB,CACI/1B,GAAI01B,EAAQ9N,MACZ5gB,KAAMyuB,EAAU7N,MAChBvgB,MAAO5H,KAAKL,MAAM2B,UAAUu1B,kCAC5Bx2B,MAAO,GACP80B,YAAY,EACZztB,QAASnF,EAAAA,WAAWC,aAAaC,OACjC6zB,YAAa,aAEjB,CACI/1B,GAAI01B,EAAQa,cACZvvB,KAAMyuB,EAAUhoB,KAChBpG,MAAO5H,KAAKL,MAAM2B,UAAUy1B,mCAC5B12B,MAAO,GACP80B,YAAY,EACZmB,YAAa,WACbC,SAA2B,QAAnBE,EAAEz2B,KAAKL,MAAMM,cAAM,IAAAw2B,OAAA,EAAjBA,EAAmBhvB,YAOpB,KAAAuvB,WAAqB,IAE9B,KAAAC,mBAA0D,GAE1D,KAAAC,sBAA8D,GAE9D,KAAAC,wBAAgE,GAQvD,KAAAt3B,gBAA0B,gCA6a1B,KAAAu3B,4BAA8B,KAE3C,MAAMC,EAAUr3B,KAAKsD,MAAMg0B,UAC3BD,EAAQpuB,SAAQlB,IACRA,EAAMxH,KAAO01B,EAAQ9N,QAErBpgB,EAAMie,YAAa,GAGvBje,EAAM1H,MAAQ,EAAE,IAGpB,MAAMk3B,EAAU,CAAEC,UAAWC,EAAAA,OAAOC,KAAKC,gBAEzC33B,KAAKoU,SAAS,CACVkjB,UAAWD,EACXO,cAAc,EACdC,SAAU9B,EAAS+B,IACnBC,cAAe/3B,KAAKg4B,uBAAuB1W,QAC3C2W,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,iBAAkBb,GACpB,EAIW,KAAAc,6BAA+BvT,UAC5C,MAAM,QAAEliB,GAAY5C,KAAKL,OACnB,SAAEk4B,EAAQ,UAAEP,GAAct3B,KAAKsD,MAE/Bg1B,EAAct4B,KAAKu4B,uBAAuBjB,GAE5CO,IAAa9B,EAASyC,MACtBC,EAAAA,EAAAA,sBAAqB,IAAIC,EAAAA,0BAA0BJ,GAAc11B,EAAQ+P,eACpE6B,MAAK,KACFpT,OAAO2P,SAAS4nB,QAAO,EAAM,IAEhClkB,OAAMhB,IACH7Q,EAAQI,UAAU41B,MAAMnlB,GACxBzT,KAAKoU,SAAS,CACV+jB,gBAAgB,GAClB,KAGVU,EAAAA,EAAAA,qBAAoB,IAAIC,EAAAA,yBAAyBR,GAAc11B,EAAQ+P,eAClE6B,MAAK,KACFpT,OAAO2P,SAAS4nB,QAAO,EAAM,IAEhClkB,OAAMhB,IACH7Q,EAAQI,UAAU41B,MAAMnlB,GACxBzT,KAAKoU,SAAS,CACV+jB,gBAAgB,EAChBY,iCAAkCtlB,EAAMzR,SAC1C,GACH,EAKE,KAAAu2B,uBAA0BpC,IACvC,MAAMoB,EAAO7zB,EAAA,GAA6B1D,KAAKsD,MAAM80B,kBAWrD,OATAjC,EAAOltB,SAAQlB,IAEPA,EAAMxH,KAAO01B,EAAQa,cACrBS,EAAQxvB,EAAMxH,IAAM2P,OAAO8oB,WAAWjxB,EAAM1H,QAAU,EAEtDk3B,EAAQxvB,EAAMxH,IAAMwH,EAAM1H,KAAM,IAIjCk3B,CAAO,EAID,KAAA0B,gBAAkB,CAACC,EAA6BnB,KAE7D,MAAMoB,EAAeD,EAAStc,MAAKwc,GACZ,SAAZA,EAAK74B,KAEV84B,EAAYF,GAAiBA,EAAa94B,OAAqB,GAC/Di5B,EAAiBD,EAASE,YAAY,KACtCC,EAAYH,EAASI,UAAU,EAAGH,GAElCI,EAAWL,EAASI,UAAUH,EAAiB,IAG/C,UAAEhC,GAAct3B,KAAKsD,MACrB+zB,EAAUC,EAEhBD,EAAQpuB,SAAQlB,IACZ,OAAQA,EAAMxH,IACV,KAAK01B,EAAQxtB,UACTV,EAAM1H,MAAQm5B,EACd,MACJ,KAAKvD,EAAQrN,SACT7gB,EAAM1H,MAAQq5B,EACd,MACJ,KAAKzD,EAAQ9N,MACTpgB,EAAMie,YAAa,EACnB,MAAM2T,EAAeT,EAAStc,MAAKwc,GACxBrxB,EAAMxH,KAAO64B,EAAK74B,KAE7BwH,EAAM1H,MAASs5B,GAAiBA,EAAat5B,OAAqB,GAClE,MACJ,QACI,MAAMu5B,EAAWV,EAAStc,MAAKwc,GACpBrxB,EAAMxH,KAAO64B,EAAK74B,KAE7BwH,EAAM1H,MAASu5B,GAAaA,EAASv5B,OAAqB,GAAG,IAIzEL,KAAKoU,SAAS,CACVkjB,UAAWD,EACXO,cAAc,EACdG,gBACAF,SAAU9B,EAASyC,KACnBP,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBC,iBAAmBc,EAAS,GAA2BjlB,MACzD,EAIW,KAAA4lB,kBAAoB,CAACX,EAA6BnB,KAC/D,MAAMR,EAAO7zB,EAAA,GAA8Bw1B,EAAS,GAA2BjlB,MAEzE6lB,EAAyB,CAAC,EAEhCZ,EAASjwB,SAASmwB,IACd,GAAgB,SAAZA,EAAK74B,GAAe,CAEpB,MAAM84B,EAAWD,EAAK/4B,MAChBi5B,EAAiBD,EAASE,YAAY,KAC5CO,EAAkBrxB,UAAY4wB,EAASI,UAAU,EAAGH,GAEpDQ,EAAkBlR,SAAWyQ,EAASI,UAAUH,EAAiB,EAAG,MAC7DF,EAAK7xB,OAASwG,EAAAA,cAAcgsB,MACnCD,EAAkBV,EAAK74B,IAAMP,KAAKL,MAAMiD,QAAQyI,iBAAiBupB,eAAewE,EAAK/4B,OAErFy5B,EAAkBV,EAAK74B,IAAM64B,EAAK/4B,KAAM,IAIhDL,KAAKoU,SAAS,CACV0lB,oBACA/B,gBACAK,iBAAkBb,EAClBM,SAAU9B,EAASiE,OACnB/B,aAAa,EACbE,gBAAgB,EAChBP,cAAc,GAChB,EAIW,KAAAqC,mBAAsBf,IACnC,MAAM3B,EAAO7zB,EAAA,GAA8Bw1B,EAAS,GAA2BjlB,MAEzE6lB,EAAyB,CAAC,EAEhCZ,EAASjwB,SAASmwB,IACd,GAAgB,SAAZA,EAAK74B,GAAe,CAEpB,MAAM84B,EAAWD,EAAK/4B,MAChBi5B,EAAiBD,EAASE,YAAY,KAC5CO,EAAkBrxB,UAAY4wB,EAASI,UAAU,EAAGH,GAEpDQ,EAAkBlR,SAAWyQ,EAASI,UAAUH,EAAiB,EAAG,MAC7DF,EAAK7xB,OAASwG,EAAAA,cAAcgsB,MACnCD,EAAkBV,EAAK74B,IAAMP,KAAKL,MAAMiD,QAAQyI,iBAAiBupB,eAAewE,EAAK/4B,OAErFy5B,EAAkBV,EAAK74B,IAAM64B,EAAK/4B,KAAM,IAIhDL,KAAKoU,SAAS,CACV0lB,oBACA1B,iBAAkBb,EAClBM,SAAU9B,EAASmE,KACnBjC,aAAa,EACbL,cAAc,GAChB,EAIW,KAAAuC,wBAA0B,KAEvC,MAAM,QAAEv3B,GAAY5C,KAAKL,OACjBy4B,iBAAkBgC,GAAmBp6B,KAAKsD,MAE9C82B,IACAC,EAAAA,EAAAA,wBAAuB,IAAIC,EAAAA,4BAA4BF,GAAiBx3B,EAAQ+P,eAC3E6B,MAAK,KACFpT,OAAO2P,SAAS4nB,QAAO,GACvB34B,KAAKoU,SAAS,CACVyjB,SAAU9B,EAASwE,KACnBtC,aAAa,GACf,IAELxjB,OAAMhB,IACH7Q,EAAQI,UAAU41B,MAAMnlB,GACxBzT,KAAKoU,SAAS,CACV+jB,gBAAgB,GAClB,GACH,EAIE,KAAAqC,qBAAuB,KACpCx6B,KAAKm6B,yBAAyB,EAsIjB,KAAAM,eAAkB16B,IAC/B,MAAMs3B,EAAUr3B,KAAKsD,MAAMg0B,UAE3BD,EAAQpuB,SAAQ0F,IACRA,EAAKpO,KAAOR,EAAMK,OAAOG,KACzBoO,EAAKtO,MAAQN,EAAMK,OAAOC,MAAM,IAMxCL,KAAKoU,UAASsmB,IAAI,CACdC,SAAUD,EAAKC,QACfC,QAAS56B,KAAK66B,eACdvD,UAAWD,EACXa,cAAc,EACdC,gBAAgB,KACjB,EAIU,KAAA0C,aAAe,KAC5B,MAAM,UAAEvD,GAAct3B,KAAKsD,MAE3B,IAAK,MAAMw3B,KAAYxD,EAAW,CAO9B,GAAIwD,EAAS3F,YAAwC,IAA1B2F,EAASz6B,MAAMuF,OACtC,OAAO,EACJ,QAAyB0B,IAArBwzB,EAASpzB,SAAoE,OAA3CozB,EAASz6B,MAAM06B,MAAMD,EAASpzB,SACvE,OAAO,EACJ,GAAIozB,EAASv6B,KAAO01B,EAAQa,eAAoC,KAAnBgE,EAASz6B,OAAgB4P,MAAMC,OAAO8oB,WAAW8B,EAASz6B,QAI1G,OAHAL,KAAKoU,SAAS,CACV8jB,cAAc,KAEX,CAAK,CAIpB,OAAO,CAAI,EAGE,KAAA8C,aAAgBC,GACtBj7B,KAAKL,MAAMiD,QAAQyI,iBAAmBrL,KAAKL,MAAMiD,QAAQyI,iBAAiBupB,eAAeqG,GAASA,EAAM9T,WAGlG,KAAA+T,eAAkBvqB,GAC3BC,EAAAA,GAASC,UACF,IAAIC,IAAI1P,OAAO2P,SAASC,OAI/BL,EAAWD,IAAIO,WAAWD,KACnB,IAAIF,IAAIH,EAAWD,IAAIO,WAAWD,OAShC,KAAAmqB,aAAe,KAC5B,MAAM,QAAEv4B,GAAY5C,KAAKL,MAGzB,GAAIiD,EAAQC,SAAWD,EAAQC,QAAQu4B,QAA0C,WAAhCx4B,EAAQC,QAAQu4B,OAAOC,KACpE,MAAO,KAGX,GAAIzqB,EAAAA,GAASC,WAAazP,OAAOk6B,WAAY,CACzC,MAAMC,EAAe34B,EAAQC,QAAQ04B,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAMp6B,OAAOk6B,YAAcC,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAMt6B,OAAOk6B,YAAcC,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAMv6B,OAAOk6B,YAAcC,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAMx6B,OAAOk6B,YAAcC,EAAaK,GAAGH,EACxD,KAEJ,IAAI,CAInB,MAAO,IAAI,EAGE,KAAAI,gCAAkC,KAC/C77B,KAAKoU,SAAS,CACV0nB,qCAAsC97B,KAAKsD,MAAMw4B,qCACnD,EAGW,KAAAC,gBAAmBC,IAChCh8B,KAAKoU,SAAS,CACV6nB,+BAAgCD,GAClC,EAGW,KAAAE,cAAiBC,IAC9Bn8B,KAAKoU,SAAS,CACVgoB,6BAA8BD,GAChC,EAGW,KAAAE,2BAA8BC,IAC3Ct8B,KAAKoU,SAAS,CACVmoB,wBAAyBD,EACzBE,6BAA6B,GAC/B,EAGW,KAAAC,iBAAmB,KAChC,MAAMC,GAAqBC,EAAAA,EAAAA,IAAW,2BAA4B38B,KAAKL,MAAMiD,QAAQ+P,eACjF+pB,GAAsB9rB,EAAAA,GAASC,YAC/BzP,OAAO2P,SAASC,KAAO0rB,EAAmB,EAIjC,KAAAE,kBAAoB,KACjC,MAAM3a,EAAWjiB,KAAKL,MAAM4D,KAAKyS,oBAAoBxN,OAG/Cq0B,EAFuB78B,KAAKL,MAAM4D,KAAKu5B,MAAMt0B,OAEVoU,MAAKwI,GAAWA,EAAQ+C,QAAUlG,EAASkG,QAC9EqP,EAAYx3B,KAAK+8B,cAAcF,GAE/BG,EAA4C,CAC9CC,SAAU,IAAIC,KAAKl9B,KAAKsD,MAAM24B,gCAC9BkB,OAAQ,IAAID,KAAKl9B,KAAKsD,MAAM84B,8BAC5BgB,sBAAuBp9B,KAAKsD,MAAMi5B,wBAClCc,gBAAiB7F,EACjB8F,oBAAqBrb,EAASkG,MAC9BoV,mBAAuD,OAApCC,EAAAA,2CAAoC,IAApCA,EAAAA,0CAAoC,EAApCA,EAAAA,qCAAsCrV,QAAS,GAGhEvlB,EAAU,CAAE6wB,cAAezzB,KAAKL,MAAMiD,QAAQ+P,eAEpD8qB,EAAAA,gCAAAA,6BAA6D76B,EAAS40B,EAAWwF,GAEjFh9B,KAAK09B,6BAA6B,EAGrB,KAAAX,cAAiBF,GAC1B78B,KAAKsD,MAAMi5B,0BAA4Bv8B,KAAKsD,MAAM80B,iBAC3CyE,EAAcA,EAAYrF,UAAY,GAE1Cx3B,KAAKsD,MAAM80B,iBAAiBZ,UAGtB,KAAAkG,4BAA8B,KAAK,IAAAC,EAChD39B,KAAKoU,SAAS,CACVooB,6BAA6B,IAEW,QAA5CmB,EAAA39B,KAAK49B,gCAAgCtc,eAAO,IAAAqc,GAA5CA,EAA8CtY,OAAO,EAGxC,KAAAwY,aAAgBC,IAC7B,MAAMC,EAAcD,EAAQlhB,MAAKohB,GAAYA,EAASzvB,aAEtDvO,KAAKoU,SAAS,CACVgkB,iBAAkB2F,EAAeA,EAAYlwB,IAAI,GAA2BoG,UAAO3M,GACrF,EAj5BFtH,KAAKi+B,aAAej+B,KAAKi+B,aAAaC,KAAKl+B,MAC3CA,KAAKy6B,eAAiBz6B,KAAKy6B,eAAeyD,KAAKl+B,MAC/CA,KAAKm6B,wBAA0Bn6B,KAAKm6B,wBAAwB+D,KAAKl+B,MAEjEA,KAAK6O,sBAAwB,CAAConB,EAAQ9N,MAAO8N,EAAQkI,OAAQlI,EAAQa,eACrE92B,KAAKo+B,UACDz+B,EAAMiD,QAAQC,SAAWlD,EAAMiD,QAAQC,QAAQu4B,QAAgD,WAAtCz7B,EAAMiD,QAAQC,QAAQu4B,OAAOC,KAAoB,KAAO,KACrHr7B,KAAKq+B,gBAAkBr+B,KAAKq+B,gBAAgBH,KAAKl+B,MACjDA,KAAKs+B,sBAAwB7+B,EAAAA,YAC7BO,KAAKg4B,uBAAyBv4B,EAAAA,YAC9BO,KAAK49B,gCAAkCn+B,EAAAA,YACvCO,KAAKsD,MAAQ,CACTs3B,SAAS,EACTtD,UAAWt3B,KAAKu+B,iBAChB3G,cAAc,EACdC,SAAU9B,EAASwE,KACnBI,SAAS,EACT1C,aAAa,EACbC,cAAc,EACdC,gBAAgB,EAChBqE,6BAA6B,EAC7BP,+BAAgC,GAChCG,6BAA8B,GAC9BN,qCAAqC,EACrCS,yBAAyB,EACzBiC,+BAA+B,IAAItB,MAAOuB,cAAchiB,MAAM,KAAK,GACnEsc,iCAAkC,IAGtC/4B,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,WAEfhD,KAAK+I,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAK0C,iBAAkB,GACpE,CA7DckM,eACV,MAA0B,OAAnB5O,KAAKo+B,WAAyC,OAAnBp+B,KAAKo+B,SAC3C,CAEcM,gCACV,OACK7zB,EAAAA,iBAAiBsW,mBAAmBnhB,KAAKsD,MAAM24B,kCAC/CpxB,EAAAA,iBAAiBsW,mBAAmBnhB,KAAKsD,MAAM84B,6BAExD,CAEcuC,uBACV,MAAM,oCAAEC,GAAwC5+B,KAAKL,MAAM2B,UAC3D,OAAOtB,KAAKsD,MAAM80B,iBACZwG,EACK1zB,QAAQ,cAAelL,KAAKsD,MAAM80B,iBAAiB3vB,WAAa,IAChEyC,QAAQ,aAAclL,KAAKsD,MAAM80B,iBAAiBxP,UAAY,IACnE,EACV,CA6CO2V,iBAEH,OADsBv+B,KAAK02B,0BACNl1B,KAAI,CAACuG,EAAOoB,KAC7BnJ,KAAKi3B,mBAAmB/mB,OAAO/G,IAAU1J,EAAAA,YACzCsI,EAAMqtB,eAAiBp1B,KAAKi3B,mBAAmB/mB,OAAO/G,IAC/CpB,IAEf,CAEO9E,oBACC2N,EAAAA,GAASC,WAAazP,OAAOy9B,mBAC7Bz9B,OAAOy9B,iBAAiB,SAAU7+B,KAAKq+B,iBACvCr+B,KAAKq+B,kBAEb,CAEOS,uBACCluB,EAAAA,GAASC,WAAazP,OAAO29B,qBAC7B39B,OAAO29B,oBAAoB,SAAU/+B,KAAKq+B,gBAElD,CAEOl7B,sBACHC,EACAC,GAEA,OAAIrD,KAAKsD,QAAUD,GAAarD,KAAKL,MAAM4D,OAASH,EAAUG,QAIzDvD,KAAKsD,MAAM20B,aAAej4B,KAAKsD,MAAM20B,cAAgB50B,EAAU40B,aAChE/2B,YAAW,KAAK,IAAA89B,EAAAC,EACsB,QAAlCD,EAAAh/B,KAAKi3B,mBAAmB,GAAG3V,eAAO,IAAA0d,GAAlCA,EAAoC3Z,QACF,QAAlC4Z,EAAAj/B,KAAKs+B,sBAAsBhd,eAAO,IAAA2d,GAAlCA,EAAoC5Z,OAAO,GAC5CrlB,KAAKg3B,aAEL,EACX,CAEOxzB,SAAM,IAAA07B,EACT,MAAM,OACFj/B,EAAM,UACNqB,EACAiC,MAAM,MAAEu5B,IACR98B,KAAKL,OACH,UAAEoE,EAAS,QAAE7D,EAAO,qBAAEi/B,GAAyBl/B,GAC/C,6BACFm/B,EAA4B,8BAC5BC,EAA6B,2BAC7BC,EAA0B,6BAC1BC,EAA4B,qCAC5BC,EAAoC,0BACpCC,EAAyB,sBACzBC,EAAqB,4BACrBC,EAA2B,2BAC3BC,EAA0B,mCAC1BC,EAAkC,wCAClCC,EAAuC,iCACvCC,EAAgC,YAChCC,EAAW,cACXC,EAAa,YACbC,EAAW,mBACXC,EAAkB,iBAClBC,EAAgB,kBAChBC,GACA/+B,GACE,UACFg2B,EAAS,aACTM,EAAY,SACZC,EAAQ,YACRI,EAAW,+BACXgE,EAA8B,6BAC9BG,EAA4B,4BAC5BI,EAA2B,8BAC3BgC,GACAx+B,KAAKsD,MAEHg9B,EAAWxD,GAASA,EAAMt0B,QAAUs0B,EAAMt0B,OAAO5C,OAAS,EAChE5F,KAAK+I,QAAQK,cAAcC,MAAQsL,EAAAA,kBAAkB4rB,QACrD,MAAMC,GAAoBh3B,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAmB1C,KAAK+I,SAExEkZ,EAA8C,QAAtCid,EAAGl/B,KAAKL,MAAM4D,KAAKyS,2BAAmB,IAAAkpB,OAAA,EAAnCA,EAAqC12B,OAEtD,IAAK83B,EAAU,CACX,IAAIj6B,EAAe,GACE,YAAjBy2B,EAAMrmB,OACNpQ,EAAei5B,EACS,WAAjBxC,EAAMrmB,OACbpQ,EAAem5B,EACR1C,EAAMt0B,QAAkC,IAAxBs0B,EAAMt0B,OAAO5C,SACpCS,EAAek5B,GAGnB,MAAMkB,EAAU/8B,EAAAA,EAAA,GACT1D,KAAKL,OAAK,IACboE,YACA28B,qBAAsB,CAClB58B,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAWhE,KAAKH,gBAAiBkE,IAEhD48B,gBAAiB,CACb58B,UAAW,GAAG/D,KAAKH,8BAEvBK,QAASA,GAAWT,EAAAA,cAACwS,EAAAA,QAAO,CAAClO,UAAW,GAAG/D,KAAKH,2BAA4B6xB,WAAYxxB,EAAQiE,IAAKhE,KAAMD,EAAQC,OACnHygC,cACInhC,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHgc,SAAUte,KAAKg4B,uBACfj0B,UAAW,GAAG/D,KAAKH,mCACnBoX,QAASjX,KAAKo3B,6BACVoJ,GAEHnB,GAGTwB,YAAaphC,EAAAA,cAAA,KAAGsE,UAAW,GAAG/D,KAAKH,kCAAmCwG,KAG1E,OAAOrG,KAAKL,MAAM0F,WAAWo7B,EAAkC,CAGnE,MAAMh9B,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACA28B,qBAAsB,CAClB58B,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAWhE,KAAKH,gBAAiBkE,IAEhD48B,gBAAiB,CACb58B,UAAW,GAAG/D,KAAKH,8BAEvBK,QAASA,GAAWT,EAAAA,cAACwS,EAAAA,QAAO,CAAClO,UAAW,GAAG/D,KAAKH,2BAA4B6xB,WAAYxxB,EAAQiE,IAAKhE,KAAMD,EAAQC,OACnH2gC,WAAY7I,EACZ2I,cACInhC,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHgc,SAAUte,KAAKg4B,uBACfj0B,UAAW,GAAG/D,KAAKH,mCACnBoX,QAASjX,KAAKo3B,6BACVoJ,GAEHnB,GAGT0B,sBAAuBthC,EAAAA,cAACiS,EAAAA,MAAKrP,OAAAC,OAAA,GAAKtC,KAAKghC,sBACvCC,YAAajhC,KAAKi+B,aAClBpG,WACAqJ,KACItJ,GAAgBK,IAAgBJ,IAAa9B,EAAS+B,KAAOD,IAAa9B,EAASyC,MAC7Ex4B,KAAKmhC,kBACLnhC,KAAKohC,qBACf9J,YACA+J,8BAA+BlC,EAC3B1/B,EAAAA,cAAC6hC,EAAAA,GAA2B,CACxBv9B,UAAWC,IAAWhE,KAAKH,gBAAiBkE,GAC5Cw9B,gBAAiBvhC,KAAK49B,gCACtB4D,mBAAoBxhC,KAAKq8B,2BACzBsD,4BAA6BP,EAC7BqC,iBAAkBzhC,KAAK67B,gCACvB6F,mBAAoB7B,EACpBH,sBAAuBI,EACvB6B,kBAAmB3hC,KAAKsD,MAAMw4B,oCAC9B8F,qBAAsBhC,EACtBiC,kBAAmB7hC,KAAKy8B,mBAG5Bh9B,EAAAA,cAAC6hC,EAAAA,GAA2B,CACxBv9B,UAAWC,IAAWhE,KAAKH,gBAAiBkE,GAC5Cw9B,gBAAiBvhC,KAAK49B,gCACtB4D,mBAAoBxhC,KAAKq8B,2BACzBsD,4BAA6BA,EAC7B8B,iBAAkBzhC,KAAK67B,gCACvB6F,mBAAoBjC,EACpBC,sBAAuBA,EACvBiC,kBAAmB3hC,KAAKsD,MAAMw4B,sCAGtCgG,sBACIriC,EAAAA,cAACsiC,EAAAA,GAAqB,CAClBlgC,OAAOogB,aAAQ,EAARA,EAAUkG,QAAS,GAC1B8P,YAAauE,EACbwF,OAAQhiC,KAAK09B,4BACbuE,eAAgBhG,EAChBiG,aAAc9F,EACd+F,iBAAkBniC,KAAK+7B,gBACvBqG,eAAgBpiC,KAAKk8B,cACrBmG,iBAAkBriC,KAAK0+B,0BACvB4D,iBAAkBvC,EAClBK,iBAAkBA,EAClBH,cAAeA,EACfC,YAAaA,EACbC,mBAAoBA,EACpBH,YAAaA,EACbuC,gBAAiBviC,KAAK48B,kBACtB74B,UAAWC,IAAWhE,KAAKH,gBAAiBkE,GAC5Cs8B,kBAAmBA,EACnBmC,aACIxiC,KAAKsD,MAAMi5B,wBAA0Bv8B,KAAKL,MAAM2B,UAAUmhC,0BAA4BziC,KAAK2+B,iBAE/F+D,eAAgB1iC,KAAKL,MAAM2B,UAAUohC,eACrCC,cAAenE,MAK3B,OAAOx+B,KAAKL,MAAM0F,WAAW5B,EACjC,CAGQu9B,oBACJ,MAAM,OAAE/gC,EAAM,UAAEqB,EAAS,QAAEsB,GAAY5C,KAAKL,OACtC,UAAEijC,EAAS,eAAElzB,EAAc,sBAAEmzB,GAA0B5iC,GACvD,qCACF6iC,EAAoC,yCACpCC,EAAwC,2BACxCC,EAA0B,+BAC1BC,EAA8B,6BAC9BC,EAA4B,6BAC5B9D,EAA4B,gCAC5B+D,EAA+B,oBAC/Bl0B,GACA3N,EAEEiM,EAAYvN,KAAKojC,oBAevB,MAAO,CACH9hC,YACAmN,SAfChB,EAAAA,gBAAgBC,YAAYH,IACzBA,EAAU,GAAGM,IAAIrM,KAAImN,IACjB,IAAI3O,KAAK4O,WAAY5O,KAAK6O,sBAAsBC,SAASH,EAAKpO,IAG9D,MAAO,CACHwO,KAAMJ,EAAKpO,GACXyO,SAAW4zB,GAAaA,IAAc,EACtC/7B,UAAWoI,EACO,KAE9B,GAKAC,KAAM3B,EACNxJ,UAAW,GAAG/D,KAAKH,yBACnBsP,aAAcnP,KAAK4O,SAAWo0B,EAA6B,GAC3D5zB,eAAgBpP,KAAK4O,SAAWs0B,EAA+B,GAC/D7zB,aAAc4zB,EACdI,gBAAiBL,EACjBM,kBAAmBJ,EACnBK,gBAAiBN,EACjB3zB,gBAAgB,EAChBC,eAAgB6vB,EAChB5vB,gBAAgB,EAChBC,WAAYmzB,EACZY,eAAgB,eAChB9zB,iBACAC,cAAe3P,KAAK4O,SACpBgB,gBAAiB5P,KAAK4O,SAAW5O,KAAK6O,sBAAwB,GAC9DgB,mBAAoB,CAChBC,UACIlN,GACAA,EAAQC,SACRD,EAAQC,QAAQkN,OAChBnN,EAAQC,QAAQkN,MAAMC,OACrBC,MAAMC,OAAOC,SAASvN,EAAQC,QAAQkN,MAAMC,KAAM,KAC7CE,OAAOC,SAASvN,EAAQC,QAAQkN,MAAMC,KAAM,IAC5C,EACVI,YAAayyB,GAAyB,GACtCxyB,SAAU0yB,EACVxyB,SAAUuyB,EACVryB,eAAgB0yB,EAChBzyB,IAAM9N,GAAW5C,KAAKk7B,eAAet4B,EAAQC,SAASmO,MAAS,IAEnEE,oBAAoB,EACpBuyB,eAAgBniC,EAAUmiC,eAC1BC,cAAe,EACfpyB,wCAAyChQ,EAAUgQ,wCACnDC,gBAAiBjQ,EAAUiQ,gBAC3BC,iBAAkBlQ,EAAUkQ,iBAC5BL,QAAS,CACLC,SAAUpR,KAAK65B,kBACf50B,OAAQjF,KAAKi5B,gBACb5nB,OAASrR,KAAK4O,UAAY5O,KAAKi6B,yBAAuB3yB,GAE1Dq8B,YAAa3jC,KAAKg7B,aAClB4I,iBAAkB5jC,KAAK69B,aAE/B,CAGQuF,oBACJ,MAAM,UACF9hC,EACAiC,MAAM,MAAEu5B,IACR98B,KAAKL,OACH,6BAAEkkC,EAA4B,8BAAEC,EAA6B,8BAAEC,GAAkCziC,EACjG0iC,EAAYlH,GAASA,EAAMt0B,OAEjC,OAAKiF,EAAAA,gBAAgBC,YAAYs2B,GAI1BA,EAAUxiC,KAAI,CAACyS,EAAM9K,KACxB,IAAI86B,EAAe,GAInB,OAHAjkC,KAAKk3B,sBAAsB/tB,GAAS1J,EAAAA,YACpCO,KAAKm3B,wBAAwBhuB,GAAS1J,EAAAA,YAE9BwU,EAAK3F,aACT,KAAK,EACD21B,EAAeH,EACf,MACJ,KAAK,EACDG,EAAeJ,EACf,MAEJ,QACII,EAAeF,EAGvB,MAAO,CACHl2B,IAAK,CACD,CACItN,GAAI01B,EAAQiO,SACZ38B,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAO,GAAG4T,EAAKxL,aAAawL,EAAK2U,WACjC3U,QAEJ,CACI1T,GAAI01B,EAAQ9N,MACZ5gB,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAO4T,EAAKkU,OAAS,GACrBpkB,UAAW,GAAG/D,KAAKH,6BAEvB,CACIU,GAAI01B,EAAQkI,OACZ52B,KAAMwG,EAAAA,cAAcC,KACpB3N,MAAO4jC,GAEX,CACI1jC,GAAI01B,EAAQa,cACZvvB,KAAMwG,EAAAA,cAAcgsB,MACpB15B,MAAO4T,EAAK6iB,eAAiB,IAGrCvoB,YAAY,EACZ41B,iBAAkB,CACdhnB,KAAMnd,KAAKk3B,sBAAsB/tB,GACjCi7B,OAAQpkC,KAAKm3B,wBAAwBhuB,IAE5C,IAlDM,EAoDf,CAGQ80B,eAAY,IAAAoG,EACQ,QAAxBA,EAAArkC,KAAKsD,MAAMy0B,qBAAa,IAAAsM,GAAxBA,EAA0Bhf,QAC1BrlB,KAAKoU,SAAS,CACV6jB,aAAa,EACbL,cAAc,EACdG,mBAAezwB,EACfuwB,SAAU9B,EAASwE,MAE3B,CA4NQ6G,qBACJ,MAAM,UAAE9/B,GAActB,KAAKL,OACrB,SAAEk4B,EAAQ,kBAAEiC,EAAiB,eAAE3B,GAAmBn4B,KAAKsD,OACvD,kCACFghC,EAAiC,mCACjCC,EAAkC,gCAClCC,EAA+B,6BAC/BC,EAA4B,uCAC5BC,EAAsC,iCACtCC,EAAgC,sCAChCC,GACAtjC,EAEEujC,EAAgB,GAAG7kC,KAAKH,wBACxBilC,EAAgBjN,IAAa9B,EAASiE,OAAS,cAAgB,YAC/D+K,EAAqB/kC,KAAKw6B,qBAEhC,MAAO,CACHwK,eAAgBhhC,IAAW,GAAGhE,KAAKH,yBAA0BilC,GAC7DG,YAAa,CACTlhC,UAAW8gC,GAEfK,aAAcrN,IAAa9B,EAASiE,OAASsK,EAAoCE,EACjFW,iBAAkBtN,IAAa9B,EAASiE,QACpCv6B,EAAAA,cAAA,KAAGsE,UAAW,GAAG8gC,iBAA8BN,GAEnD/B,aAAc1I,EACdnzB,QAAS,CACLkxB,IAAa9B,EAASiE,QAClBv6B,EAAAA,cAACkX,EAAAA,OAAM,CACH2H,SAAUte,KAAKs+B,sBACf/3B,IAAI,gBACJxC,UAAW,GAAG8gC,uBACd5tB,QAAS8tB,GAERJ,GAGTllC,EAAAA,cAACkX,EAAAA,OAAM,CAACpQ,IAAI,gBAAgBxC,UAAW,GAAG8gC,WAAwB5tB,QAASjX,KAAKi+B,cAC3EpG,IAAa9B,EAASiE,OAAS0K,EAAyCD,IAGjFp+B,aAAc,CACV8xB,GACI14B,EAAAA,cAACk2B,EAAc,CACXpvB,IAAI,iBACJhG,GAAG,iBACHwD,UAAW,GAAG8gC,UACd7iC,QAAS4iC,KAIrBtjC,YAER,CAGQ6/B,kBACJ,MAAM,UAAE7/B,GAActB,KAAKL,OACrB,SAAEk4B,EAAQ,UAAEP,EAAS,aAAEY,EAAY,eAAEC,EAAc,QAAEyC,EAAO,iCAAE7B,GAAqC/4B,KAAKsD,OACxG,oCACF8hC,EAAmC,mCACnCC,EAAkC,gCAClCC,EAA+B,2BAC/BC,EAA0B,kCAC1BC,EAAiC,6BACjCf,EAA4B,oCAC5BgB,EAAmC,4BACnCC,EAA2B,qCAC3BC,EAAoC,mBACpCvP,GACA90B,EAEEujC,EAAgB,GAAG7kC,KAAKH,wBACxBilC,EAAgBjN,IAAa9B,EAAS+B,IAAM,WAAa,YAE/D,MAAO,CACHkN,eAAgBhhC,IAAW,GAAGhE,KAAKH,yBAA0BilC,GAC7DG,YAAa,CACTlhC,UAAW8gC,GAEfK,aAAcrN,IAAa9B,EAAS+B,IAAMuN,EAAqCD,EAC/ED,iBAAkBtN,IAAa9B,EAAS+B,KACpCr4B,EAAAA,cAAA,KAAGsE,UAAW,GAAG8gC,sBAAmCc,GAExDxP,OAAQD,EAAmBoB,EAAW,GAAGuN,SAAsBzO,EAAoBp2B,KAAKy6B,gBACxF9zB,QAAS,CACLlH,EAAAA,cAACi2B,EAAU,CACPnvB,IAAI,WACJhG,GAAG,WACHwD,UAAW,GAAG8gC,SACdh+B,UAAWy+B,EACXnlC,KAAMolC,EACNtuB,QAASjX,KAAKq4B,6BACdrhB,UAAW4jB,EACXl4B,iBAAkB1C,KAAK0C,mBAE3BjD,EAAAA,cAACi2B,EAAU,CACPnvB,IAAI,SACJhG,GAAG,SACHwD,UAAW,GAAG8gC,WACdh+B,UAAW2+B,EACXrlC,KAAMskC,EACNxtB,QAASjX,KAAKi+B,aACdv7B,iBAAkB1C,KAAK0C,oBAG/B2D,aAAc,CACV6xB,GACIz4B,EAAAA,cAACk2B,EAAc,CACXpvB,IAAI,iBACJhG,GAAG,iBACHwD,UAAW/D,KAAKH,gBAChBmC,QAASyjC,IAGjBtN,GACI14B,EAAAA,cAACk2B,EAAc,CACXpvB,IAAI,iBACJhG,GAAG,iBACHwD,UAAW/D,KAAKH,gBAChBmC,QAAS+2B,GAAsE2M,KAI3FpkC,YAER,CAiEQ+8B,kBACJr+B,KAAKo+B,UAAYp+B,KAAKm7B,cAC1B,IAx1BAjzB,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,iCAqBDD,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,8BAIC5K,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,+CAOC5K,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,qCAzEP0jB,GAAwBtuB,EAAAA,EAAAA,IAAA,CAD7BE,EAAAA,IACKouB,GA6+BN,6ICrpCO,MAAMoP,EAA8Fl9B,IAAA,IAAC,YAAEC,GAAaD,EAAA,OACvHjJ,EAAAA,cAAA,KAAGsE,UAAU,mDAAmD4E,EAAgB,ECUvEk9B,EAAkFn9B,IAK1F,IAL2F,MAC5FqB,EAAK,iBACLrH,EAAgB,aAChBsH,EAAY,eACZ9E,GACHwD,EACG,GAAqB,IAAjBqB,EAAMnE,OACN,OAAO,KAEX,MAAMkD,EAAgBF,EAAkBmB,EAAOrH,GAC/C,OACIjD,EAAAA,cAAA,OAAKsE,UAAU,6CACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CAACgF,MAAOjB,EAAe9D,UAAW,CAAEgF,eAAc9E,oBACjE,KACF,EAIR0D,EAAoBA,CAACC,EAAwBnG,KAC/C,IAAKmG,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GACvCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmB,IAgB7D,OAfAmG,EAASI,SAAQ,CAACC,EAAMC,KACpBJ,EAAQK,cAAcC,MAAQH,EAAKI,SACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GACvDU,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAW,2CACXuF,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM,OACNC,qBAAsBP,GAE1BT,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,ukBCnCxB,MAAMg9B,UAA8BrmC,EAAAA,cAGhCC,YAAYC,GACRC,MAAMD,GAuDH,KAAAG,oBAAuBC,IAC1BC,KAAKL,MAAMM,OAAOC,QAAQC,KAAOJ,EAAMK,OAAOC,KAAK,EAGhD,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMI,KACnDnK,KAAKL,MAAMM,OAAO8J,MAAMI,GAAWb,SAAWvJ,EAAMK,OAAOC,MAAM,EA5DrEL,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,UAEnB,CAEOQ,SACH,MAAM,OAAEvD,EAAM,UAAEqB,EAAS,KAAEiC,GAASvD,KAAKL,OACnC,UAAEoE,EAAS,QAAE7D,EAAO,MAAE6J,GAAU9J,GAChC,qDAAE8lC,EAAoD,wDAAEC,GAA4D1kC,EACpH2kC,EAAW1iC,EAAKu5B,OAASv5B,EAAKu5B,MAAMt0B,OACpC09B,EACW,IAAbD,EAAiBF,EAAuDC,EACtEhwB,EAAsBzS,EAAKyS,oBAAoBxN,OAGrD,GAAKwN,UAAAA,EAAqBmwB,WACtB,OAAO,KAGX,MAAM1iC,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACboE,YACA+hC,sBAAuB,CACnBhiC,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,qCAAsC/D,EAAO8D,YAEvE7D,QAASA,GAAWA,EAAQC,MACxBV,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,8CACVI,IAAKjE,EAAQiE,IACbhE,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKF,oBAAqBoF,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAG1FkH,MAAOA,GAASA,EAAMnE,OAAS,GAC3BnG,EAAAA,cAAComC,EAAiCxjC,OAAAC,OAAA,GAC1B,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,oBAInCiG,YACIlJ,EAAAA,cAACmmC,EAAuC,CAACj9B,aAAa6B,EAAAA,EAAAA,QAAO07B,EAAyCD,GAAY,OAI1H,OAAOjmC,KAAKL,MAAM0F,WAAW5B,EACjC,EAaJ,+uBC7DO,MAAM2iC,UAAsB3mC,IAAAA,cAG/BC,YAAmBC,GACfC,MAAMD,GA0CH,KAAAytB,iBAAoBrtB,IACvBC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,KAAK,EAOjD,KAAAgtB,sBAAyBttB,IAC5BC,KAAKL,MAAMM,OAAOqtB,UAAYvtB,EAAMK,OAAOC,KAAK,CAlDpD,CAEOmD,SAAM,IAAAytB,EAAAoV,EACT,MAAM,QAAEnmC,EAAO,UAAEotB,GAActtB,KAAKL,MAAMM,OAEpCqmC,EAAuBpmC,GACzBT,IAAAA,cAACuO,EAAAA,GAAI,CACDjK,UAAW,GAAGqiC,EAAcG,kCAC5BpiC,IAAgB,QAAb8sB,EAAE/wB,EAAQiE,WAAG,IAAA8sB,EAAAA,EAAI,KACpB9wB,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKotB,iBAAkBloB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAIjF2jC,EAA+B/4B,EAAAA,gBAAgBC,YAAoC,QAAzB24B,EAACrmC,KAAKL,MAAM4D,KAAKkjC,gBAAQ,IAAAJ,OAAA,EAAxBA,EAA0B79B,QACrFk+B,EAAyBpZ,GAC3B7tB,IAAAA,cAACknC,EAAAA,GAAiB,CACd5iC,UAAW,GAAGqiC,EAAcG,qCAC5BpmC,KAAMqmC,EAAsBlZ,EAAYttB,KAAKL,MAAM2B,UAAUslC,sBAC7D5hC,UAAW,CAAEC,OAAQjF,KAAKqtB,sBAAuBnoB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAGtFY,EAASC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbknC,WAAY7mC,KAAKotB,iBACjB0Z,cAAe,CACXhjC,YAAa9D,KAAKL,MAClBoE,UAAWqiC,EAAcG,kBAE7BrmC,QAASomC,EACThZ,UAAWoZ,EACXD,SAAUD,EAAsBxmC,KAAK+mC,uBAAyB,KAGlE,OAAO/mC,KAAKL,MAAM0F,WAAW5B,EACjC,CAkBQujC,2BAA2Br4B,GAC/B,MAAMs4B,EAAYt4B,EAAKsO,SAEvB,IADyBiqB,EAAAA,EAAAA,IAAalnC,KAAKL,MAAMiD,QAAQC,WAChCokC,EACrB,OAAOxnC,IAAAA,cAAA,OAAKsE,UAAW,GAAGqiC,EAAcG,qCAAsCvmC,KAAKL,MAAM2B,UAAU6lC,oBAEvG,IAAIC,EAAgB,GACpB,GAAIriC,EAAAA,GAAS8L,UAAW,CAAC,IAADw2B,EACpB,MAAMC,EAAiE,QAAvDD,GAAG1K,EAAAA,EAAAA,IAAW,OAAQ38B,KAAKL,MAAMiD,QAAQ+P,sBAAc,IAAA00B,EAAAA,EAAI,GACrEE,EAAU,IAAIz2B,IAAIw2B,EAAYlmC,OAAO2P,SAASC,MACpDu2B,EAAQpZ,aAAaC,IAAI,YAAa,GAAG6Y,KACzCG,EAAgBG,EAAQv2B,IAAK,CAEjC,OACIvR,IAAAA,cAACkX,EAAAA,OAAM,CACH5S,UAAW,GAAGqiC,EAAcG,2BAA0B,aAC1CvmC,KAAKL,MAAM2B,UAAUkmC,wBACjCx2B,KAAMo2B,GAELpnC,KAAKL,MAAM2B,UAAUkmC,wBAGlC,CAEQT,uBAAoB,IAAAU,EACxB,MAAMhB,EAAmC,QAA3BgB,EAAGznC,KAAKL,MAAM4D,KAAKkjC,gBAAQ,IAAAgB,OAAA,EAAxBA,EAA0Bj/B,OAErCqI,EAAY9L,EAAAA,GAAS8L,UAE3B,OACIpR,IAAAA,cAAA,OAAKsE,UAAW,GAAGqiC,EAAcG,kCAAmC18B,KAAK,QACpE48B,aAAQ,EAARA,EAAUjlC,KAAImN,IACX,MAAM+4B,EAAW,GAAGC,KAAKC,UAAUj5B,MAAS8T,OAAO5R,KAC7Cg3B,EAAmCp6B,EAAAA,gBAAgBq6B,eAAen5B,EAAKo5B,QAC7E,OACItoC,IAAAA,cAAA,OACI8G,IAAKmhC,EACL3jC,UAAW,GAAGqiC,EAAcG,wCAC5ByB,SAAU,EAAC,aACCr5B,EAAKoO,KACjBlT,KAAK,YAELpK,IAAAA,cAAA,MAAIsE,UAAW,GAAGqiC,EAAcG,sCAAuC53B,EAAKoO,MAC5Etd,IAAAA,cAAA,OAAKsE,UAAW,GAAGqiC,EAAcG,yCAC7B9mC,IAAAA,cAACwoC,EAAAA,GAAK,CACF/iC,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCkB,UAAW,GAAGqiC,EAAcG,oCAC5BhgC,IAAKmhC,EACLQ,KAAKC,EAAAA,EAAAA,IAAiBnoC,KAAKL,MAAMiD,QAAQC,QAAQyR,YAAauzB,aAAK,EAALA,EAAOO,KACrE7M,aAAcv7B,KAAKL,MAAMiD,QAAQC,QAAQ04B,aACzC8M,cAAeroC,KAAKL,MAAMM,OAAOqoC,qBACjCC,QAASV,aAAK,EAALA,EAAOW,QAChBC,oBAAoB,SAExBhpC,IAAAA,cAAA,OAAKsE,UAAW,GAAGqiC,EAAcG,qCAC5BvmC,KAAKgnC,2BAA2Br4B,KAGvC,IAK1B,EAxHwBy3B,EAAAG,iBAAmB,oBA2H/C,uKC7GA,MA4FMmC,EAAeA,CACjB/5B,EACAhP,EACAgpC,KAC6C,IAAAC,EAC7C,MAAMC,EAAcl6B,EAAKzO,SAjGP4oC,EAACC,EAAkCppC,EAA4CgpC,KACjG,MAAMzjC,EAAiBvF,EAAMuF,eAC7B,OACIzF,EAAAA,cAACsF,EAAAA,GAAa,CACV5E,KAAM4oC,EACN5kC,IAAI,IACJJ,UAAU,sDACViB,UAAW,CAKPC,OAAQlF,IACJJ,EAAMqpC,2BAA2BL,EAAW5oC,EAAM,EAEtDmF,mBAEN,EAgF8B4jC,CAAcn6B,EAAKzO,QAASP,EAAOgpC,GACjEM,EAAgBt6B,EAAKu6B,SAtEPC,EAACC,EAAwCzpC,EAA4CgpC,KACzG,MAAMzjC,EAAiBvF,EAAMuF,eAC7B,OACIzF,EAAAA,cAACsF,EAAAA,GAAa,CACV5E,KAAMipC,EACNjlC,IAAI,IACJJ,UAAU,2DACViB,UAAW,CAKPC,OAAQlF,IACJJ,EAAMqpC,2BAA2BL,EAAW5oC,EAAM,EAEtDmF,mBAEN,EAqDgCikC,CAAgBx6B,EAAKu6B,QAASvpC,EAAOgpC,GACrEU,EAAsB,QAAbT,EAAGj6B,EAAK5E,aAAK,IAAA6+B,OAAA,EAAVA,EAAYpnC,KAAI,CAAC8nC,EAAqBngC,IA1CxCogC,EAACD,EAAqB3pC,EAA4CgpC,EAAmBx+B,KACrG,MAAMV,EAAoC,CACtC5C,UAAWyiC,EAAQziC,UACnB9C,UAAW,0DACXuF,SAAUggC,EAAQhgC,SAClBI,QAAS4/B,EAAQ5/B,QAAQC,eACzBC,aAAc0/B,EAAQ1/B,aACtBC,KAAM,QAEJ3E,EAAiBvF,EAAMuF,eAC7B,OACIzF,EAAAA,cAACsF,EAAAA,GAAa,CACVwB,IAAK4D,EACLjB,KAAMO,EACNzE,UAAW,CAKPgF,aAAcjK,IACVJ,EAAM6pC,+BAA+Br/B,EAAWw+B,EAAW5oC,EAAM,EAErEmF,mBAEN,EAmBKqkC,CAAYD,EAAS3pC,EAAOgpC,EAAWx/B,KAGlD,MAAO,CACHjJ,QAAS2oC,EACT1oC,KAAM8oC,EACNl/B,MAAOs/B,EACPI,+BAAgC,CAAE1lC,UAAW,4DAC7C2lC,2BAA4B,CAAE3lC,UAAW,qDAC5C,EAQQ4lC,EACThqC,IAEA,MAAM,kBAAEiqC,GAAsBjqC,EAC9B,IAAKiqC,EACD,OAGJ,MAAMC,EAA4D,GAKlE,OAJAD,EAAkBpoC,KAAI,CAACmN,EAAMxF,IAClB0gC,EAAWziC,KAAKshC,EAAa/5B,EAAMhP,EAAOwJ,MAG9C,CACH2gC,sBAAuB,CAAE/lC,UAAW,iDACpCgmC,uBAAwBF,EAC3B,EChKE,MAAMG,UAAyBvqC,EAAAA,cAAtCC,cAAA,oBAeqB,KAAAkJ,kBAAqBC,IAClC,IAAKA,GAAgC,IAApBA,EAASjD,OACtB,OAAO,KAEX,MAAMkD,EAAuC,GAqB7C,OApBAD,EAASI,SAAQ,CAACC,EAAMC,KAEpB,MAAMJ,GAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAKL,MAAM+C,iBAAkB,GAAI,IACrE4G,EAAWJ,EAAKI,SAAWJ,EAAKI,SAAW,GACjDP,EAAQK,cAAcC,MAAQC,EAC9B,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuBxJ,KAAKL,MAAM+C,iBAAkBqG,GACjEkhC,EAAqB,IAAV9gC,EAAc,mBAAqB,qBAC9CM,EAAoC,CACtC5C,UAAWqC,EAAKrC,UAChB9C,UAAWkmC,EACX3gC,SAAUJ,EAAKI,SACfI,QAASR,EAAKQ,QAAQC,eACtBC,aAAcV,EAAKU,aACnBC,KAAM7J,KAAKL,MAAMkK,KACjBC,qBAAsBP,EACtB0N,SAASizB,EAAAA,EAAAA,kBAAiBlqC,KAAKL,MAAM+C,iBAAkBqG,EAASO,IAEpER,EAAc1B,KAAKqC,EAAa,IAG7BX,CAAa,CAE5B,CAzCWtF,SACH,MAAMsF,EAAgB9I,KAAK4I,kBAAkB5I,KAAKL,MAAMoK,OACxD,OACItK,EAAAA,cAAA,OAAKsE,UAAU,yBACV+E,GAAiBA,EAAclD,OAAS,EACrCnG,EAAAA,cAACsF,EAAAA,GAAc,CACXgF,MAAOjB,EACP9D,UAAW,CAAEgF,aAAchK,KAAKL,MAAMqK,aAAc9E,eAAgBlF,KAAKL,MAAMuF,kBAEnF,KAGhB,EA8BJ,+kBCtBO,MAAMilC,UAAqB1qC,EAAAA,cAAlCC,cAAA,oBACqB,KAAAgD,kBAAsCC,EAAAA,EAAAA,oBACnD3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,WAsHR,KAAAoqB,iBAAoBrtB,GAA0CC,KAAKL,MAAMM,OAAOC,QAASC,KAAOJ,EAAMK,OAAOC,MAS7G,KAAAgtB,sBAAyBttB,GAA0CC,KAAKL,MAAMM,OAAOqtB,UAAYvtB,EAAMK,OAAOC,MAO9G,KAAA6J,qBAAwBC,GAAuBpK,IAC9CC,KAAKL,MAAMM,OAAO8J,OAAS/J,KAAKL,MAAMM,OAAO8J,MAAMmG,OAAO/F,MAC1DnK,KAAKL,MAAMM,OAAO8J,MAAMmG,OAAO/F,IAAYb,SAAWvJ,EAAMK,OAAOC,MAAM,CAuCrF,CA5KWmD,SAAM,IAAAytB,EAAAmZ,EAAAC,EACT,MAAM,QAAEnqC,EAAO,UAAEotB,EAAS,MAAEua,EAAK,MAAE99B,EAAK,UAAEhG,EAAS,eAAEumC,GAAmBtqC,KAAKL,MAAMM,OAC7EsqC,EAAoBrqC,GACtBT,EAAAA,cAACsF,EAAAA,GAAa,CACVhB,UAAU,0BACVI,IAAgB,QAAb8sB,EAAE/wB,EAAQiE,WAAG,IAAA8sB,EAAAA,EAAI,KACpB9wB,KAAMD,EAAQC,KACd6E,UAAW,CAAEC,OAAQjF,KAAKotB,iBAAkBloB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAIjF2nC,EAAoBzgC,GAAS0D,EAAAA,gBAAgBC,YAAY3D,IAC3DtK,EAAAA,cAACgL,EAAcpI,OAAAC,OAAA,GACP,CACAyH,QACAC,aAAchK,KAAKkK,qBACnBhF,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCH,iBAAkB1C,KAAK0C,iBACvBmH,KAAgF,SAAzE7J,KAAKL,MAAMM,OAAmCwqC,uBAAoC,OAAS,YAIxGC,EAAmBpd,GACrB7tB,EAAAA,cAACsF,EAAAA,GAA0B,CACvB5E,KAAMmtB,EACNvpB,UAAU,yBACViB,UAAW,CAAEC,OAAQjF,KAAKqtB,sBAAuBnoB,eAAgBlF,KAAKL,MAAMiD,QAAQC,WAI5F,IAAI8nC,EAGAA,EADA9C,GAASA,EAAMQ,gBAAkBR,EAAMQ,cAAcuC,iBAAmB5qC,KAAKL,MAAMM,OAAO2qC,gBACjElnC,EAAAA,EAAA,GAClBmkC,aAAK,EAALA,EAAOQ,eAAa,IACvBuC,gBAAiB5qC,KAAKL,MAAMM,OAAO2qC,kBAGX/C,aAAK,EAALA,EAAOQ,cAGvC,MAAMwC,EAAa,CACftP,aAAqD,QAAzC6O,EAAEpqC,KAAKL,MAAMiD,QAAQC,QAAQ04B,oBAAY,IAAA6O,EAAAA,EAAI,CAAC,EAC1D/B,cAAesC,GAGbG,EACFrrC,EAAAA,cAACsF,EAAAA,GAAc1C,OAAAC,OAAA,GACPulC,EACAgD,EAAU,CACd3lC,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCkoC,oBAAoB,EACpB/lC,UAAW,CACPuB,IAA4B,QAAzB8jC,EAAErqC,KAAKL,MAAMM,OAAO4nC,aAAK,IAAAwC,EAAAA,EAAI,CAAC,EACjCnlC,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnCmoC,WAAYhrC,KAAKL,MAAMsrC,SACvBC,kBAAmB,QACnBC,SAAUnrC,KAAKL,MAAMY,GACrB6qC,OAASprC,KAAKL,MAAMM,OAAmCwqC,wBAE3DY,uBAAqB,KAIvBC,EAA8DtrC,KAAKL,MAAMM,OAAO2qC,gBAChF,CAAEA,gBAAiB5qC,KAAKL,MAAMM,OAAO2qC,sBACrCtjC,EAEN,IAAKijC,IAAsBG,IAAqBF,EAE5C,OADAxqC,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,uDAC5B,KAEX,MAAM83B,EAAqB7nC,EAAAA,EAAA,GACpB1D,KAAKL,OAAK,IACb6e,MAAO+rB,EACPpqC,KAAMuqC,EACN7C,MAAOiD,EACP/gC,MAAOygC,EACPgB,YAAaxrC,KAAKL,MAAMM,OAAO8D,UAC/B0nC,sBAAuB,CACnB3nC,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,mBAAoBD,GAC1Ca,MAAO0mC,GAEXI,eAAgB,CAAE3nC,UAAW,2BAC7B4nC,iBAAkB,CAAE5nC,UAAW,6BAC/B6nC,sBAAuB,CACnBznC,IAAK,IACLJ,UAAW,yBACX8F,KAAM,QAEVgiC,UAAW7rC,KAAK8rC,gBAChBxB,iBACAV,kBAAmBD,EAA8B,CAC7CzkC,eAAgBlF,KAAKL,MAAMiD,QAAQC,QACnC+mC,kBAAmB5pC,KAAKL,MAAMM,OAAO2pC,kBACrCZ,2BAA4BhpC,KAAKgpC,2BACjC+C,gCAAiC/rC,KAAK+rC,gCACtCvC,+BAAgCxpC,KAAKwpC,iCAEzCwC,qBAAsBhsC,KAAKgpC,2BAC3BiD,0BAA2BjsC,KAAK+rC,gCAChCvC,+BAAgCxpC,KAAKwpC,iCAGzC,OAAOxpC,KAAKL,MAAM0F,WAAWkmC,EACjC,CA+BOvC,2BAA2B7/B,EAAepJ,GACzCC,KAAKL,MAAMM,OAAO2pC,oBAClB5pC,KAAKL,MAAMM,OAAO2pC,kBAAkB15B,OAAO/G,IAAQjJ,QAAUH,EAAMK,OAAOC,MAElF,CAEOmpC,+BAA+Br/B,EAAmBhB,EAAepJ,GACpE,MAAMmsC,EACDlsC,KAAKL,MAAMM,OAAO2pC,mBACfn8B,EAAAA,gBAAgBC,YAAY1N,KAAKL,MAAMM,OAAO2pC,oBAC9C5pC,KAAKL,MAAMM,OAAO2pC,kBAAkB15B,OAAO/G,KAC/C,CAAC,EACD+iC,EAAwBniC,QACxBmiC,EAAwBniC,MAAMmG,OAAO/F,IAAYb,SAAWvJ,EAAMK,OAAOC,MAEjF,CAEO0rC,gCAAgC5iC,EAAepJ,GAC9CC,KAAKL,MAAMM,OAAO2pC,oBAClB5pC,KAAKL,MAAMM,OAAO2pC,kBAAkB15B,OAAO/G,IAAQ+/B,QAAUnpC,EAAMK,OAAOC,MAElF,CAEQyrC,gBACJ,MAAM,UAAED,EAAS,MAAE9hC,EAAK,iBAAEoiC,GAAqBnsC,KAAKL,MAAMM,OAC1D,MAAoB,kBAAhBksC,EACIN,SAAAA,EAAWliC,eACJkiC,EAAUliC,eACVI,GAAS0D,EAAAA,gBAAgBC,YAAY3D,IAAUA,EAAM,GAAGL,QACxDK,EAAM,GAAGL,QAAQC,eAErB,KAEJ,IACX,EAGJ,8ECnMYyiC,EASAC,gpBATZ,SAAYD,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,oBACH,CAHD,CAAYA,IAAAA,EAAe,KAS3B,SAAYC,GACRA,EAAA,UACAA,EAAA,eACH,CAHD,CAAYA,IAAAA,EAAU,KCUtB,MAAMC,UAAuB7sC,EAAAA,cAyBzBC,YAAYC,GACRC,MAAMD,GAjBF,KAAA4sC,UAAoB,EAEpB,KAAAC,OAAiB,EAmPR,KAAAC,qBAAwBC,IACrC,OAAQA,GACJ,IAAI,mBACA1sC,KAAKusC,UAAW,EAChBvsC,KAAKwsC,OAAQ,EACb,MACJ,IAAI,UACAxsC,KAAKusC,UAAW,EAChBvsC,KAAKwsC,OAAQ,EACb,MACJ,IAAI,MACAxsC,KAAKusC,UAAW,EAChBvsC,KAAKwsC,OAAQ,EAET,EAjPZxsC,KAAKq+B,gBAAkBr+B,KAAKq+B,gBAAgBH,KAAKl+B,MACjDA,KAAK2sC,SACDhtC,EAAMiD,QAAQC,SAAWlD,EAAMiD,QAAQC,QAAQu4B,QAAgD,WAAtCz7B,EAAMiD,QAAQC,QAAQu4B,OAAOC,KAAoB,KAAO,KACrHr7B,KAAKysC,qBAAqBzsC,KAAKL,MAAMM,QAAUD,KAAKL,MAAMM,OAAO2sC,sBACjE5sC,KAAKsD,MAAQ,CAAEsL,SAAU5O,KAAK4O,UAC9B5O,KAAK6sC,aAAe,EACxB,CAjBOC,uBAAuBC,EAAgBC,GAC1C,IAAIC,EAKJ,OAJIF,GAAUC,GAAoBA,EAAiBpnC,OAAS,IACxDqnC,EAAkBD,EAAiBpwB,MAAKjO,GAAQA,EAAKu+B,SAAU1sC,gBAAkBusC,EAAOvsC,iBAGrFysC,GAAmBA,EAAgBj/B,IAC9C,CAYcY,eACV,MAAyB,OAAlB5O,KAAK2sC,UAAuC,OAAlB3sC,KAAK2sC,QAC1C,CAEO1pC,oBACC2N,EAAAA,GAASC,YACT7Q,KAAKmtC,6BAA8BC,EAAAA,EAAAA,mBAAkBhsC,OAAQ,SAAUpB,KAAKq+B,kBAEhFr+B,KAAKq+B,iBACT,CAEOS,uBACCluB,EAAAA,GAASC,WACTzP,OAAO29B,oBAAoB,SAAU/+B,KAAKmtC,6BAA8B,EAEhF,CAEO3pC,SAAM,IAAA6pC,EAAAC,EAET,GADAttC,KAAK6sC,aAAe7sC,KAAKutC,YACrBC,EAAAA,EAAAA,IAAoBxtC,KAAKL,MAAM4D,MAE/B,OADAvD,KAAKL,MAAMqD,UAAUyQ,MAAM,+BACpB,KAGX,MAQMhQ,EAASC,EAAAA,EAAAA,EAAA,GACR1D,KAAKL,OACLK,KAAKsD,OAAK,IACb+kC,cAXyC,CACzCoF,UAAW,CACPjS,GAAI,CAAEkS,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,GACrCC,GAAI,CAAEF,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,IAEzCE,UAAU,GAOVtS,aAAcv7B,KAAKL,MAAMiD,QAAQC,QAAQ04B,aACzCuS,WAAY,CACRhqC,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,SAAUhE,KAAKL,MAAMM,OAAO8D,UAAW/D,KAAKsD,MAAMsL,SAAW,YAAc,cACjGzK,IAAK,MACL0F,KAAM7J,KAAK4O,SAAW,UAAY,cAEtCm/B,SAAU,CACNhqC,UAAW,eACXI,IAAK,KACL0F,KAAM7J,KAAK4O,SAAW,UAAY,QAEtCo/B,SAAU,CACNjqC,UAAW,qBACX8F,KAAM,eACN1F,IAAK,MAET8pC,kBAAyD,QAAxCZ,EAAErtC,KAAKL,MAAMM,OAAOiuC,4BAAoB,IAAAb,GAAAA,EACzDc,uBAAiE,QAA3Cb,EAAEttC,KAAKL,MAAMM,OAAOmuC,+BAAuB,IAAAd,GAAAA,EACjEe,KAAM,CACFlqC,IAAK,IACLJ,UAAW,2BACX8F,KAAM7J,KAAK4O,SAAW,SAAW,YAErC0/B,aAAc,CACVnqC,IAAK,MACLJ,UAAW,mBAEfwqC,kBAAmB,CACfpqC,IAAK,MACLJ,UAAW,iBACX8F,KAAM,YAEV8M,OAAQ,CACJ5S,UAAW,6BACXI,IAAK,SACL0F,KAAM7J,KAAK4O,SAAW,SAAW,WACjCqI,QAASjX,KAAKL,OAElB6uC,eAAgB,CACZzqC,UAAW,6BAEf0qC,KAAM,CACF1qC,UAAW,2BACXI,IAAK,QAETuqC,2BAA4B,CACxB3qC,UAAW,mCAEf4qC,iBAAkB,CACd5qC,UAAW,0CACXI,IAAK,SACL,aAAcnE,KAAKL,MAAM2B,UAAUstC,oBACnC33B,QAASjX,KAAKL,OAElBkvC,uBAAwB,CACpB9qC,UAAW,wCACXI,IAAK,QAET2qC,aAAc9uC,KAAKsD,MAAMsL,SACzBmgC,aAAc/uC,KAAK6sC,aACnB9oC,UAAWC,IAAW,SAAUhE,KAAKL,MAAMM,OAAO8D,aAGtD,OAAO/D,KAAKL,MAAM0F,WAAW5B,EACjC,CAEQ8pC,WACJ,MAAM,KAAEhqC,EAAI,OAAEtD,GAAWD,KAAKL,MACxBqvC,EAA8B,GAYpC,OAXIhvC,KAAKusC,UAAYhpC,GAAQA,EAAK0rC,YAAc1rC,EAAK0rC,WAAWzmC,QAAUjF,EAAK0rC,WAAWzmC,OAAO5C,OAAS,GACtGrC,EAAK0rC,WAAWzmC,OAAOhH,KAAI,CAACmN,EAAyBxF,IACjD6lC,EAAW5nC,KAAKpH,KAAKkvC,uBAAuBvgC,OAAMrH,GAAW,EAAM6B,GAAO,MAI9EnJ,KAAKwsC,OAASvsC,EAAOkvC,aAAelvC,EAAOkvC,YAAYvpC,OAAS,GAChE3F,EAAOkvC,YAAY3tC,KAAI,CAACmN,EAAwBygC,IAC5CJ,EAAW5nC,KAAKpH,KAAKkvC,4BAAuB5nC,EAAWqH,GAAM,EAAOygC,EAAM,MAG3EpvC,KAAKqvC,0BAA0BL,EAC1C,CAEQK,0BAA0BL,GAA2B,IAAAM,EAAAC,EAEzD,KAD0D,QAAlCD,EAAGtvC,KAAKL,MAAMM,OAAOuvC,qBAAa,IAAAF,GAAAA,GAEtD,OAAON,EAEX,MAAMS,EAAsC,GACtCC,EAAU,CACZnvC,GAAI,EACJ+I,SAA8C,QAAtCimC,EAAEvvC,KAAKL,MAAMM,OAAO0vC,0BAAkB,IAAAJ,EAAAA,EAAI,MAClDK,QAAS,IACTC,iBAAavoC,EACbwoC,QAASd,GAIb,OAFAS,EAAmBroC,KAAKsoC,GAEjBD,CACX,CAEQP,uBACJa,EACAC,EACAzD,EACA6C,EACAa,GAEA,MAAMlD,EACF/sC,KAAKL,MAAMiD,SAAW5C,KAAKL,MAAMiD,QAAQC,SAAW7C,KAAKL,MAAMiD,QAAQC,QAAQkqC,OACzE/sC,KAAKL,MAAMiD,QAAQC,QAAQkqC,OAC3B,SACJ,2BAAEmD,GAA+BlwC,KAAKL,MAAMM,OAC5CkwC,EAAeH,GAAWA,EAAQ1mC,UAAa,IAC/C,cAAE8mC,GAAkBpwC,KAAKL,MAAM2B,UAG/B+uC,EACFN,IACAG,aAA0B,EAA1BA,EAA4BxhC,QAAO4hC,IAAS,IAAAC,EAAAC,EAAA,OAA0B,QAAtBD,EAAAD,EAAUG,oBAAY,IAAAF,OAAA,EAAtBA,EAAwB/vC,kBAAkBuvC,SAAgB,QAANS,EAAVT,EAAYhzB,YAAI,IAAAyzB,OAAA,EAAhBA,EAAkBhwC,cAAc,KAG9H,IAAIqvC,EAAsB,QAIX,IAADa,EAAAC,EAAd,OAHIljC,EAAAA,gBAAgBC,YAAYqiC,aAAU,EAAVA,EAAYhI,SAAWgI,EAAYhI,OAAO,GAAGK,MACzEyH,EAAcE,EAAYhI,OAAO,GAAGK,KAEpCmE,EACO,CACHhsC,GAAI+rC,EAAesE,eACnBtnC,SAA8E,QAAtEonC,EAAEpE,EAAeuE,gBAAgB9D,EAAQgD,aAAU,EAAVA,EAAYtrB,yBAAiB,IAAAisB,EAAAA,EAAI,GAClFd,QAASG,aAAU,EAAVA,EAAYe,IACrBjB,cACAC,QAAS9vC,KAAK+wC,mBAAmBhB,EAAYF,EAAaI,GAC1De,mBAAoBhxC,KAAKL,MAAMM,OAAOmuC,yBAA2BiC,EACjEY,WAAY5E,EAAW6E,OACvBrqC,UAAW,GAAuE,QAAvE8pC,EAAGrE,EAAeuE,gBAAgB9D,EAAQgD,aAAU,EAAVA,EAAYtrB,yBAAiB,IAAAksB,EAAAA,EAAI,MAAMP,KAG7F,CACH7vC,GAAI+rC,EAAe6E,gBACnB7nC,SAAU6mC,EACVP,QAAUI,GAAWA,EAAQtmC,SAAWsmC,EAAQtmC,QAAQC,gBAAmB,GAC3EynC,oBAAsBpB,GAAWA,EAAQnE,WAAamE,EAAQnE,UAAUliC,gBAAmB,GAC3FkmC,YAAcG,GAAWA,EAAQnI,OAASmI,EAAQnI,MAAMK,KAAQ,GAChE4H,QAAS9vC,KAAKqxC,sBAAsBrB,GACpCiB,WAAY5E,EAAWiF,IACvBC,iBAAkBvB,aAAO,EAAPA,EAASpmC,aAC3B/C,UAAW,GAAGspC,KAAeC,IAErC,CAEQW,mBAAmBS,EAA8BC,GAAsD,IAA7BxB,EAAAyB,UAAA9rC,OAAA,QAAA0B,IAAAoqC,UAAA,IAAAA,UAAA,GAC9E,MAAMC,EAAkC,GACxC,OAAKH,GAAaA,EAASI,UAAyC,IAA7BJ,EAASI,SAAShsC,SAGpD5F,KAAKL,MAAMM,OAAOuvC,eAAiBS,GACpC0B,EAAevqC,KAAK,CAChBkC,SAAUtJ,KAAKL,MAAM2B,UAAUuwC,oBAC/BhC,YAAa4B,EACb7B,SAASkC,EAAAA,EAAAA,gBAAeN,EAAWxxC,KAAKL,MAAMiD,QAAuC,CAAC,KAG9F4uC,EAASI,SAASpwC,KAAI,CAACmN,EAAyBxF,KAC5CwoC,EAAevqC,KAAKpH,KAAKkvC,uBAAuBvgC,OAAMrH,GAAW,EAAM6B,GAAO,GAAO,IAElFwoC,GAZI,EAaf,CAEQN,sBAAsBG,GAC1B,MAAMG,EAAkC,GAExC,OAAKH,GAAaA,EAASO,UAAyC,IAA7BP,EAASO,SAASnsC,QAIzD4rC,EAASO,SAASvwC,KAAI,CAACmN,EAAqBygC,KACxCuC,EAAevqC,KAAKpH,KAAKkvC,4BAAuB5nC,EAAWqH,GAAM,EAAOygC,GAAK,IAE1EuC,GANI,EAOf,CAoBQtT,kBACJr+B,KAAK2sC,SAAW3sC,KAAKm7B,eACrBn7B,KAAKoU,SAAS,CAAExF,SAAU5O,KAAK4O,UACnC,CAEQusB,eACJ,MAAM,QAAEv4B,GAAY5C,KAAKL,MAGzB,GAAIiD,EAAQC,SAAWD,EAAQC,QAAQu4B,QAA0C,WAAhCx4B,EAAQC,QAAQu4B,OAAOC,KACpE,MAAO,KAGX,GAAIzqB,EAAAA,GAASC,WAAazP,OAAOk6B,WAAY,CACzC,MAAMC,EAAe34B,EAAQC,QAAQ04B,aACrC,GAAIA,EACA,OAAIA,EAAaC,IAAMp6B,OAAOk6B,YAAcC,EAAaC,GAAGC,EACjD,KACAF,EAAaG,IAAMt6B,OAAOk6B,YAAcC,EAAaG,GAAGD,EACxD,KACAF,EAAaI,IAAMv6B,OAAOk6B,YAAcC,EAAaI,GAAGF,EACxD,KACAF,EAAaK,IAAMx6B,OAAOk6B,YAAcC,EAAaK,GAAGH,EACxD,KAEJ,IAAI,CAInB,MAAO,IACX,EA7Se6Q,EAAA6E,cAAwB/E,EAAgBkF,IAExChF,EAAAsE,aAAuBxE,EAAgB8E,QAWtDhpC,EAAAA,EAAAA,IAAA,CADCC,EAAAA,IAAU,gCAsBDD,EAAAA,EAAAA,IAAA,CAAT4K,EAAAA,IAAQ,6BA8Qb,0rBCzUA,MAAMk/B,UAAoBvyC,EAAAA,cACtBC,YAAYC,GACRC,MAAMD,EACV,CAEO6D,SACH,MAAM,MAAEyuC,GAAUjyC,KAAKL,MAEvB,IAAKsyC,IAAUxkC,EAAAA,gBAAgBC,YAAYukC,EAAMC,kBAE7C,OADAlyC,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,6DAC5B,KASX,KALIzT,KAAKL,MAAMiD,QAAQC,SACnB7C,KAAKL,MAAMiD,QAAQC,QAAQsvC,SAC3BnyC,KAAKL,MAAMiD,QAAQC,QAAQsvC,QAAQC,gBACnCpyC,KAAKL,MAAMiD,QAAQC,QAAQsvC,QAAQC,oBAEfpyC,KAAKL,MAAMiD,QAAQC,QAAQ0T,OAAOC,SACtD,OAAO,KAGX,MAAM67B,EAAS3uC,EAAAA,EAAA,GACR1D,KAAKL,OAAK,IACbqyC,YAAa,CACTluC,YAAa9D,KAAKL,MAClBoE,UAAWC,IAAW,kBAAmBhE,KAAKL,MAAMM,OAAO8D,YAE/DuuC,gBAAiB,CACb,aAActyC,KAAKL,MAAMM,OAAOsyC,QAChCxuC,UAAW,sBAAsB/D,KAAKL,MAAMM,OAAOsyC,SAAW,aAC7B,aAA7BvyC,KAAKL,MAAMM,OAAOuyC,YAAuC,WAAa,KAE1EruC,IAAK,KACL0F,KAAM,SAEV4oC,gBAAiB,CACb1uC,UAAW,qBACXI,IAAK,KACL6jC,SAAU,IACVn+B,KAAM,QAEV6oC,wBAAyBT,GAASA,EAAMC,iBAAiBtsC,OAAS,GAAKqsC,EAAMC,mBAGjF,OAAOlyC,KAAKL,MAAM0F,WAAWgtC,EACjC,EAGJ,gFC3DA,MAAMM,UAAqBlzC,EAAAA,cAChB+D,SACH,OAAOxD,KAAKL,MAAM0F,WAAWrF,KAAKL,MACtC,EAGJ,iICuCO,MAAMizC,EAAiBC,IAC1B,QAAgBvrC,IAAZurC,EACA,OAEJ,IAAIC,EAAQC,KAAKC,MAAMH,EAAU,MACjC,MAAMI,EAAOH,GAAS,GAAK,KAAO,KAClCA,GAAS,GACTA,EAAQA,GAAgB,GACxB,MAAMI,EAAoBL,EAAU,KAEpC,MAAO,GAAGC,KADMC,KAAKC,MAAME,EAAoB,IAAM,GAAK,IAAIH,KAAKC,MAAME,EAAoB,MAAQH,KAAKC,MAAME,EAAoB,OACtGD,GAAM,EAGlCE,EAAqBA,CAAC3nC,EAAclK,KACtC,OAAQkK,GACJ,IAAK,MACD,OAAOlK,EAAU8xC,KAAKC,OAC1B,IAAK,MACD,OAAO/xC,EAAU8xC,KAAKE,QAC1B,IAAK,MACD,OAAOhyC,EAAU8xC,KAAKG,UAC1B,IAAK,MACD,OAAOjyC,EAAU8xC,KAAKI,SAC1B,IAAK,MACD,OAAOlyC,EAAU8xC,KAAKK,OAC1B,IAAK,MACD,OAAOnyC,EAAU8xC,KAAKM,SAC1B,QAEI,OAAOpyC,EAAU8xC,KAAKO,SAI5BC,EAAoBA,CAACpoC,EAAclK,KACrC,OAAQkK,GACJ,IAAK,MACD,OAAOlK,EAAU8xC,KAAKS,WAC1B,IAAK,MACD,OAAOvyC,EAAU8xC,KAAKU,YAC1B,IAAK,MACD,OAAOxyC,EAAU8xC,KAAKW,cAC1B,IAAK,MACD,OAAOzyC,EAAU8xC,KAAKY,aAC1B,IAAK,MACD,OAAO1yC,EAAU8xC,KAAKa,WAC1B,IAAK,MACD,OAAO3yC,EAAU8xC,KAAKc,aAC1B,QAEI,OAAO5yC,EAAU8xC,KAAKe,aAI5BC,EAAwBA,CAC1BC,EACAC,EACAC,EACAjzC,KAEO,CACHkzC,cAAerB,EAAmBkB,EAAU/yC,GAC5CmzC,aAAcb,EAAkBS,EAAU/yC,GAC1CozC,YAAaL,IAAaC,EAASnB,EAAmBmB,EAAQhzC,QAAagG,EAC3EqtC,WAAYN,IAAaC,EAASV,EAAkBU,EAAQhzC,QAAagG,EACzEstC,UAAWL,IAIbM,EAAmBA,CAACC,EAAuBC,OACzCD,EAAUE,WAAYD,EAAWC,YAIhCF,EAAUE,WAAaD,EAAWC,WAC5BF,EAAUG,WAAaF,EAAWE,UAAYH,EAAUI,YAAcH,EAAWG,WAM1FC,EAAoBA,CAACC,EAA+BC,KAC/C,CACHL,SAAUjtB,IAAIqtB,EAAY,WAAWC,KAAiB,GACtDJ,SAAUltB,IAAIqtB,EAAY,GAAGC,iBAAyB/tC,GACtD4tC,UAAWntB,IAAIqtB,EAAY,GAAGC,kBAA0B/tC,KAMhE,MAAMguC,EAAwBA,CAACf,EAAuBjzC,KAClD,GAAIizC,EAAUS,SACV,OAKJ,MAAO,GAH8BpC,EAAc2B,EAAUU,eAC1BrC,EAAc2B,EAAUW,YAE3B,EAGvBK,EAAkBA,CAACH,EAA+B9zC,KAC3D,MAAMk0C,EAAsC,GAEtCC,EAAcN,EAAkBC,EAAY,UAC5CM,EAAeP,EAAkBC,EAAY,WAC7CO,EAAiBR,EAAkBC,EAAY,aAC/CQ,EAAgBT,EAAkBC,EAAY,YAC9CS,EAAcV,EAAkBC,EAAY,UAC5CU,EAAgBX,EAAkBC,EAAY,YAC9CW,EAAcZ,EAAkBC,EAAY,UAElD,IAAIY,EAAuB,MACvBC,EAAqB,MA6CzB,OA3CKpB,EAAiBY,EAAaC,KAC/BF,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBG,GAAyBn0C,IAEjH00C,EAAc,OAElBC,EAAY,MACPpB,EAAiBa,EAAcC,KAChCH,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBI,GAA0Bp0C,IAElH00C,EAAc,OAElBC,EAAY,MAEPpB,EAAiBc,EAAgBC,KAClCJ,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBK,GAA4Br0C,IAEpH00C,EAAc,OAElBC,EAAY,MAEPpB,EAAiBe,EAAeC,KACjCL,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBM,GAA2Bt0C,IAEnH00C,EAAc,OAElBC,EAAY,MAEPpB,EAAiBgB,EAAaC,KAC/BN,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBO,GAAyBv0C,IAEjH00C,EAAc,OAElBC,EAAY,MAEPpB,EAAiBiB,EAAeC,KACjCP,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBQ,GAA2Bx0C,IAEnH00C,EAAc,OAElBC,EAAY,MAEZT,EAAepuC,KAAKgtC,EAAsB4B,EAAaC,EAAWX,EAAsBS,GAAyBz0C,IAE1Gk0C,CAAc,gBC3MlB,MAAMU,EAAsDxtC,IAU9D,IAV+D,YAChEytC,EAAW,aACXC,EAAY,YACZC,EAAW,MACX/yC,EAAK,WACLgzC,EAAU,aACVC,EAAY,UACZC,EAAS,UACTl1C,EAAS,aACTm1C,GACH/tC,EACG,OAAI+tC,QAAoCnvC,IAApBmvC,EAAa,GAEzBh3C,IAAAA,cAAA,OAAKsE,UAAU,oBACXtE,IAAAA,cAAA,OAAKsE,UAAU,iBACXtE,IAAAA,cAAA,SAAOsE,UAAU,cAAc0xB,QAAQ,IAClCn0B,EAAUo1C,0BAEfj3C,IAAAA,cAAA,UACIsE,UAAU,qBACVgL,KAAK,UACLxO,GAAG,GACHF,MAAO81C,EACPluC,SAAU1C,GAAK6wC,EAAa7wC,EAAEnF,OAAOC,QAErCZ,IAAAA,cAAA,UAAQsE,UAAU,eAAe1D,MAAM,GAAG2W,UAAQ,EAACqJ,UAAQ,GACtD/e,EAAUq1C,iBAEdL,EACGA,EAAW90C,KAAIo1C,GAEPn3C,IAAAA,cAAA,UAAQsE,UAAU,eAAe1D,MAAOu2C,EAAOC,gBAAiBtwC,IAAKqwC,EAAOE,IACvEF,EAAOG,eAKpBt3C,IAAAA,cAAA,UAAQsE,UAAU,eAAe1D,MAAM,OAAK,mBAMvDk2C,EACG92C,IAAAA,cAAA,OAAKsE,UAAU,iBACXtE,IAAAA,cAAA,SAAOsE,UAAU,cAAc0xB,QAAQ,IAClCn0B,EAAU01C,wBAEfv3C,IAAAA,cAAA,UAAQsE,UAAU,qBAAqBgL,KAAK,QAAQxO,GAAG,GAAGF,MAAOiD,EAAO2E,SAAU1C,GAAK8wC,EAAY9wC,EAAEnF,OAAOC,QACxGZ,IAAAA,cAAA,UAAQsE,UAAU,eAAe1D,MAAM,GAAG2W,UAAQ,EAACqJ,UAAQ,GACtD/e,EAAU21C,iBAEdT,EAAUh1C,KAAK8B,GAER7D,IAAAA,cAAA,UAAQsE,UAAU,eAAe1D,MAAOiD,EAAM4zC,aAAc3wC,IAAKjD,EAAMyL,MAClEzL,EAAMyL,UAM3B,MAKRtP,IAAAA,cAAA,OAAKmF,MAAO,CAAEuyC,MAAO,OAAQtyC,QAAS,OAAQuyC,eAAgB,WAC1D33C,IAAAA,cAAC43C,EAAAA,QAAO,QCzEXC,EAAsD5uC,IAA4C,IAA3C,aAAE+tC,EAAY,WAAErB,EAAU,UAAE9zC,GAAWoH,EACvG,OAAI+tC,QAAoCnvC,IAApBmvC,EAAa,SAAmCnvC,IAAf8tC,EAE7C31C,IAAAA,cAAA,OAAKsE,UAAU,gBACXtE,IAAAA,cAAA,SAAOsE,UAAU,eACbtE,IAAAA,cAAA,MAAIsE,UAAU,mBACVtE,IAAAA,cAAA,MAAIsE,UAAU,2BAA2BzC,EAAUi2C,yBACnD93C,IAAAA,cAAA,MAAIsE,UAAU,2BAA2BzC,EAAUk2C,+BAGtDf,QAAoCnvC,IAApBmvC,EAAa,SAAmCnvC,IAAf8tC,EAC5CqB,EAAaj1C,KAAI,CAACi2C,EAAOtuC,KACrB,MAAMuuC,EAAavuC,EACnB,OACI1J,IAAAA,cAAA,MAAIsE,UAAU,YAAYwC,IAAKkxC,EAAMX,IACjCr3C,IAAAA,cAAA,MAAIsE,UAAU,oBAAoBzC,EAAUi2C,yBAC5C93C,IAAAA,cAAA,MAAIsE,UAAU,yBACVtE,IAAAA,cAAA,WACIA,IAAAA,cAAA,OAAKsE,UAAU,mBAAmB0zC,EAAME,MACxCl4C,IAAAA,cAAA,WACKg4C,EAAMG,OACiB,KAAvBH,EAAMI,aAAsB,KAAKJ,EAAMI,eAAiB,IAE7Dp4C,IAAAA,cAAA,WAAMg4C,EAAMK,cACZr4C,IAAAA,cAAA,WAAM,GAAGg4C,EAAMM,SAASN,EAAMO,SAASP,EAAMQ,WAC7Cx4C,IAAAA,cAAA,WAAMg4C,EAAMS,SAGpBz4C,IAAAA,cAAA,MAAIsE,UAAU,oBAAoBzC,EAAUk2C,8BAC3CpC,EAAW,GACR31C,IAAAA,cAAA,MAAIsE,UAAU,wBAAwBa,MAAO,CAAEuzC,QAAS,SACpD14C,IAAAA,cAAA,WAAM6B,EAAU82C,+BAChB34C,IAAAA,cAAA,OACIsE,UAAU,0BACVa,MAAO,CAAEC,QAAS,OAAQwzC,cAAe,SAAUjB,eAAgB,WAEnE33C,IAAAA,cAAA,OAAKsE,UAAU,oBAEVqxC,EAAWsC,GAENtC,EAAWsC,GAAYl2C,KAAI,CAACsxC,EAAO3pC,IAE3B1J,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,WACKqzC,EAAM6B,WACD,GAAG7B,EAAM2B,kBAAkB3B,EAAM6B,aACjC,GAAG7B,EAAM2B,eAAgB,IAC9B3B,EAAM8B,UACD,GAAG9B,EAAM8B,YACTtzC,EAAUg3C,yBAMhC,OAEP,KAEX,KACH,IAGb,OAKX74C,IAAAA,cAAAA,IAAAA,SAAA,mBC3Df,MA4RA,EA5RsDE,IAAQ,IAAA44C,EAAAC,EAC1D,MAAMC,EAAoB,CACtB,CAAE1pC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,SAAUmoC,aAAc,MAChC,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,aAAcmoC,aAAc,MACpC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,cAAemoC,aAAc,MACrC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,SAAUmoC,aAAc,MAChC,CAAEnoC,KAAM,QAASmoC,aAAc,MAC/B,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,OAAQmoC,aAAc,MAC9B,CAAEnoC,KAAM,SAAUmoC,aAAc,MAChC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,YAAamoC,aAAc,MACnC,CAAEnoC,KAAM,QAASmoC,aAAc,MAC/B,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,gBAAiBmoC,aAAc,MACvC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,YAAamoC,aAAc,MACnC,CAAEnoC,KAAM,cAAemoC,aAAc,MACrC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,SAAUmoC,aAAc,MAChC,CAAEnoC,KAAM,gBAAiBmoC,aAAc,MACvC,CAAEnoC,KAAM,aAAcmoC,aAAc,MACpC,CAAEnoC,KAAM,aAAcmoC,aAAc,MACpC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,iBAAkBmoC,aAAc,MACxC,CAAEnoC,KAAM,eAAgBmoC,aAAc,MACtC,CAAEnoC,KAAM,OAAQmoC,aAAc,MAC9B,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,SAAUmoC,aAAc,MAChC,CAAEnoC,KAAM,eAAgBmoC,aAAc,MACtC,CAAEnoC,KAAM,eAAgBmoC,aAAc,MACtC,CAAEnoC,KAAM,iBAAkBmoC,aAAc,MACxC,CAAEnoC,KAAM,eAAgBmoC,aAAc,MACtC,CAAEnoC,KAAM,YAAamoC,aAAc,MACnC,CAAEnoC,KAAM,QAASmoC,aAAc,MAC/B,CAAEnoC,KAAM,OAAQmoC,aAAc,MAC9B,CAAEnoC,KAAM,UAAWmoC,aAAc,MACjC,CAAEnoC,KAAM,WAAYmoC,aAAc,MAClC,CAAEnoC,KAAM,aAAcmoC,aAAc,MACpC,CAAEnoC,KAAM,gBAAiBmoC,aAAc,MACvC,CAAEnoC,KAAM,YAAamoC,aAAc,MACnC,CAAEnoC,KAAM,UAAWmoC,aAAc,QAE9BV,EAAWkC,IAAgBC,EAAAA,EAAAA,UAASF,IAEpCtC,EAAayC,IAAkBD,EAAAA,EAAAA,UAAc,KAC7CrC,EAAYuC,IAAiBF,EAAAA,EAAAA,aAC7Br1C,EAAO8Q,IAAYukC,EAAAA,EAAAA,UAAS,KAC5BpC,EAAcuC,IAAoBH,EAAAA,EAAAA,WAAS,IAC3ClC,EAAcsC,IAAmBJ,EAAAA,EAAAA,UAAiD,KAClFvD,EAAY4D,IAAiBL,EAAAA,EAAAA,aAC7BM,EAAiBC,IAAsBP,EAAAA,EAAAA,aACvCQ,EAAaC,IAAkBT,EAAAA,EAAAA,WAAkB,GAElDU,EAAiC,QAAvBd,EAAG54C,EAAM4D,KAAK+1C,iBAAS,IAAAf,OAAA,EAApBA,EAAsB/vC,OACzC,IAAI+wC,EACJ,MAAMC,EAA6D,CAC/DC,kBAAmB95C,EAAM2B,UAAUo4C,YACnCC,iBAAkBh6C,EAAM2B,UAAUs4C,SAClCC,uBAAwBl6C,EAAM2B,UAAUw4C,iBAExCC,WAAYp6C,EAAM2B,UAAUg3C,qBAC5B0B,WAAYr6C,EAAM2B,UAAU24C,eAC5BC,QAASv6C,EAAM2B,UAAU64C,YAEzBC,gBAAiBz6C,EAAM2B,UAAU+4C,0BACjCC,eAAgB36C,EAAM2B,UAAUi5C,gBAChCC,8BAA+B76C,EAAM2B,UAAUm5C,0BAC/CC,wBAAyB/6C,EAAM2B,UAAUo5C,wBACzCC,iCAAkCh7C,EAAM2B,UAAUq5C,iCAClDC,mBAAoBj7C,EAAM2B,UAAUs5C,mBACpCC,wBAAyBl7C,EAAM2B,UAAUu5C,wBAEzCzH,KAAM,CACFC,OAAQ1zC,EAAM2B,UAAUw5C,qBACxBxH,QAAS3zC,EAAM2B,UAAUy5C,sBACzBxH,UAAW5zC,EAAM2B,UAAU05C,wBAC3BxH,SAAU7zC,EAAM2B,UAAU25C,uBAC1BxH,OAAQ9zC,EAAM2B,UAAU45C,qBACxBxH,SAAU/zC,EAAM2B,UAAU65C,uBAC1BxH,OAAQh0C,EAAM2B,UAAU85C,qBACxBvH,WAAYl0C,EAAM2B,UAAU+5C,yBAC5BvH,YAAan0C,EAAM2B,UAAUg6C,0BAC7BvH,cAAep0C,EAAM2B,UAAUi6C,4BAC/BvH,aAAcr0C,EAAM2B,UAAUk6C,2BAC9BvH,WAAYt0C,EAAM2B,UAAUm6C,yBAC5BvH,aAAcv0C,EAAM2B,UAAUo6C,2BAC9BvH,WAAYx0C,EAAM2B,UAAUq6C,2BAGpC,IAAIC,EAA0BnD,EAC9B,MAAMoD,EAAsB,QAAlBrD,EAAG74C,EAAM4D,KAAKs4C,YAAI,IAAArD,OAAA,EAAfA,EAAiBhwC,QAmB9BszC,EAAAA,EAAAA,YAAU,KACN,GAAID,IAAS1F,GAAe0F,EAAKA,KAAKr3B,oBAAqB,KAAAu3B,EACvD,MAAMC,EAA2C,QAAhCD,EAAGF,EAAKA,KAAKr3B,2BAAmB,IAAAu3B,GAAuC,QAAvCA,EAA7BA,EAA+Bn/B,MAAMq/B,GAAqB,YAAVA,EAAEC,aAAkB,IAAAH,GAAO,QAAPA,EAApEA,EAAsE38B,aAAK,IAAA28B,OAAA,EAA3EA,EAA6Ep5B,YACjGi2B,EAAeoD,GACV5F,EAAa4F,GAQtB,GANoB,QAAhB7F,GAA0BI,EAEH,QAAhBJ,GACP2C,GAAiB,GAhBCh0B,iBAChBsxB,EAAa,OACnB0C,GAAiB,GACjB8C,EAAqBnD,EAAkB/pC,QAAOhG,IAAA,IAAGwuC,aAAciF,GAAKzzC,EAAA,OAAK+tC,EAAaniB,MAAK9gB,IAAA,IAAGwkC,MAAOoE,GAAK5oC,EAAA,OAAK4oC,IAAQD,CAAG,GAAC,IAC3HzD,EAAakD,EAAmB,EAUvBS,GAKLhD,IAAeJ,EAAiB,CAChC,MAAMqD,EAAgBjD,EAAWkD,MAAK,CAACC,EAAGC,IACtCD,EAAEzF,YAAe0F,EAAE1F,YAAe,EAAI0F,EAAE1F,YAAeyF,EAAEzF,aAAgB,EAAI,IAEjF8B,EAAcyD,GAlCCx3B,WACnB,MAAM43B,QAAwBC,EAAAA,EAAAA,IAAmB,CAAElpB,cAAe9zB,EAAMiD,QAAQ+P,eAAiB,KACjG,GAAI+pC,GAAmBpG,EAAY,CAC/B,MAAM2C,EAAkB3C,EAAW5nC,QAAOkuC,GAC/BF,EAAgBpoB,MAAKuoB,GACjBA,EAAEC,kBAAoBF,EAAG/F,oBAGxCqC,EAAmBD,KA2Bd8D,GAGLtG,EAAa7wC,QAAU,IACvB2zC,EAAsB9C,EAAaj1C,KAAIi2C,GAC5BlC,EAAgBkC,EAAO+B,KAElCR,EAAcO,KAEbJ,GAAeF,GAAmBA,EAAgB,IAC9C7C,EAAa6C,EAAgB,GAAGpC,mBAE1C,CAACV,EAAaM,EAAc4C,EAAYF,EAAaF,IAExD,MAAM7C,EAAetxB,UACjB,MAAMk4B,QAAwBL,EAAAA,EAAAA,IAAmB,CAAElpB,cAAe9zB,EAAMiD,QAAQ+P,eAAiBtS,GACjG,QAA2BiH,IAAvB01C,EAAgB,GAAkB,CAClC,MAAMC,EAAqBD,EAAgBT,MAAK,CAACC,EAAQC,IAC9BS,EAACC,EAAWC,KAC/B,MAAMC,EAAcF,EAAKG,WAAW,OAASH,EAAKI,MAAM,GAAKJ,EAAKG,WAAW,iBAAmBH,EAAKI,MAAM,IAAMJ,EAC3GK,EAAcJ,EAAKE,WAAW,OAASF,EAAKG,MAAM,GAAKH,EAAKE,WAAW,iBAAmBF,EAAKG,MAAM,IAAMH,EAEjH,IAAK,IAAIK,EAAI,EAAGA,EAAI1K,KAAK2K,IAAIL,EAAYz3C,OAAQ43C,EAAY53C,QAAS63C,IAAK,CACvE,MAAME,EAAYN,EAAYO,WAAWH,GACnCI,EAAYL,EAAYI,WAAWH,GAEzC,GAAIE,EAAYE,EACZ,OAAQ,EACL,GAAIF,EAAYE,EACnB,OAAO,EAIf,OAAIR,EAAYz3C,OAAS43C,EAAY53C,QACzB,EACDy3C,EAAYz3C,OAAS43C,EAAY53C,OACjC,EAGJ,CAAC,EAGLs3C,CAAeV,EAAE7E,KAAM8E,EAAE9E,QAMpC4B,EAAsB0D,EAAmBz7C,KAAIi2C,GAClClC,EAAgBkC,EAAO+B,KAGlCR,EAAcO,GAGdR,EAAgBkE,GAChBrE,EAAev4C,GACf+4C,GAAe,QAEfA,GAAe,KA8DjB,mBAAE0E,EAAkB,oBAAEC,GAAwBp+C,EAAM2B,UAE1D,OACI7B,IAAAA,cAAA,OAAKsE,UAAU,gBACXtE,IAAAA,cAAA,OAAKsE,UAAU,uBACXtE,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,MAAIsE,UAAU,UAAU+5C,GACxBr+C,IAAAA,cAAA,KAAGsE,UAAU,oBAAoBg6C,IAErCt+C,IAAAA,cAACy2C,EAAqB,CAClBC,YAAaA,EACbC,aAAcA,EACd9yC,MAAOA,EACP+yC,YAvEIvxB,UAChB,MAAMk5B,QAAkBrB,EAAAA,EAAAA,IAAmB,CAAElpB,cAAe9zB,EAAMiD,QAAQ+P,eAAiBwjC,GAC3F/hC,EAAS9Q,GAET,MAAM26C,EAAiB36C,EACjB06C,EAAUtvC,QAAO+oC,GACNA,EAAMO,QAAU10C,IAE3B,KACN,IAAI25C,EACAgB,IACAhB,EAAqBgB,EAAe1B,MAAK,CAACC,EAAQC,IACvBS,EAACC,EAAWC,KAC/B,MAAMC,EAAcF,EAAKG,WAAW,OAASH,EAAKI,MAAM,GAAKJ,EAAKG,WAAW,iBAAmBH,EAAKI,MAAM,IAAMJ,EAC3GK,EAAcJ,EAAKE,WAAW,OAASF,EAAKG,MAAM,GAAKH,EAAKE,WAAW,iBAAmBF,EAAKG,MAAM,IAAMH,EAEjH,IAAK,IAAIK,EAAI,EAAGA,EAAI1K,KAAK2K,IAAIL,EAAYz3C,OAAQ43C,EAAY53C,QAAS63C,IAAK,CACvE,MAAME,EAAYN,EAAYO,WAAWH,GACnCI,EAAYL,EAAYI,WAAWH,GAEzC,GAAIE,EAAYE,EACZ,OAAQ,EACL,GAAIF,EAAYE,EACnB,OAAO,EAIf,OAAIR,EAAYz3C,OAAS43C,EAAY53C,QACzB,EACDy3C,EAAYz3C,OAAS43C,EAAY53C,OACjC,EAGJ,CAAC,EAILs3C,CAAeV,EAAE7E,KAAM8E,EAAE9E,SAUpCsF,IACA1D,EAAsB0D,EAAmBz7C,KAAIi2C,GAClClC,EAAgBkC,EAAO+B,KAElCR,EAAcO,IAIlBR,EAAgBkE,GAA0Ce,EAAU,EAiBxD1H,WAAY2C,GAAoC3C,EAChDC,aAAcA,EACdC,UAAWA,EACXl1C,UAAW3B,EAAM2B,UACjBm1C,aAAcA,IAElBh3C,IAAAA,cAAC63C,EAAiB,CAACb,aAAcA,EAAcrB,WAAYA,EAAY9zC,UAAW3B,EAAM2B,aAE1F,+FCjSd,QAAgB3B,IACZ,MAAM,mBAAE+0B,EAAkB,QAAEx0B,EAAO,YAAEyI,EAAW,MAAEoB,GAAUpK,EAE5D,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKoyB,GACPx0B,EACAyI,EACAoB,EAGZ,+FCVD,MAYA,EAZ6EpK,IACzE,MAAM,sBAAEmmC,EAAqB,QAAE5lC,EAAO,YAAEyI,EAAW,MAAEoB,GAAUpK,EAE/D,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKwjC,GACP5lC,EACAyI,EACAoB,EACI,kGCPjB,MAAMm0C,EAAgDx1C,IAA4C,IAA3C,QAAEf,EAAO,MAAEC,EAAK,aAAEvB,EAAY,MAAE0B,GAAOW,EAC1F,OACIjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqF,GACLC,EACAvB,EACA0B,EACE,EAITo2C,EAA8Cx+C,IAChD,MAAM,eAAEqlC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,OAAEhP,EAAM,QAAExvB,EAAO,aAAEN,EAAY,OAAE27B,GAAWriC,EAEzG2E,EACF7E,EAAAA,cAAAA,EAAAA,SAAA,KACK0lC,EACD1lC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK2iC,GACL9O,GACGA,EAAO30B,KAAKmN,GACDlP,EAAAA,cAACy+C,EAAgB77C,OAAAC,OAAA,GAAKqM,EAAI,CAAEpI,IAAKoI,EAAKpI,SAEpDF,GACGA,EAAa7E,KAAI,CAACiS,EAAwBtK,IAC/B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQsK,OAMlD2qC,EACFz3C,GACAA,EAAQnF,KAAI,CAACkS,EAAyBvK,IAC3B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,KAG5C,OAAO2qC,EAAarZ,GAAgB,EAAME,EAAc5gC,EAAW85C,EAAapc,EAAO,EAGrFsc,EAAiD3+C,IACnD,MAAM,eAAEqlC,EAAc,YAAEC,EAAW,aAAEC,EAAY,iBAAEC,EAAgB,aAAE3C,EAAY,QAAE77B,EAAO,aAAEN,EAAY,UAAE/E,EAAS,OAAE0gC,GAAWriC,EAChI,IAAI2E,EAAY,KAEhB,GAAKk+B,EAEE,CACH,MAAM,UAAE/5B,EAAS,SAAEmgB,GAAa4Z,EAC1B+b,EAAe,GAAG91C,KAAamgB,IAErCtkB,EACI7E,EAAAA,cAAAA,EAAAA,SAAA,KACK0lC,EACD1lC,EAAAA,cAAC2T,EAAAA,KAAI,CAACjP,IAAI,KAAKJ,UAAW,GAAGkhC,EAAYlhC,kBACrCtE,EAAAA,cAAC2T,EAAAA,KAAI,CAACjP,IAAI,KAAKJ,UAAW,GAAGkhC,EAAYlhC,4BACpCw6C,GAEJl8C,OAAOwgB,KAAK2f,GAAchhC,KAAI,CAAC+B,EAAM4F,KAClC,GAAI5F,IAAS0yB,EAAAA,QAAQxtB,WAAalF,IAAS0yB,EAAAA,QAAQrN,SAC/C,OAAO,KAEX,MAAMhhB,EAAQtG,EAAU,QAAQiC,iBAAsBA,EACtD,OACI9D,EAAAA,cAAC2T,EAAAA,KAAI,CAACjP,IAAI,KAAKJ,UAAW,GAAGkhC,EAAYlhC,sBAAuBwC,IAAK4C,GAChEvB,EACA,KACA46B,EAAaj/B,GACX,KAKzB,MA3BFe,EAAY+B,EA8BhB,MAAM+3C,EACFz3C,GACAA,EAAQnF,KAAI,CAACkS,EAAyBvK,IAC3B1J,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK4C,GAAQuK,KAG5C,OAAO2qC,EAAarZ,GAAgB,EAAME,EAAc5gC,EAAW85C,EAAapc,EAAO,EAgBrFqc,EAAeA,CACjBt6C,EACAk0B,EACAumB,EACAC,EACAC,EACAzd,IAGIxhC,EAAAA,cAAC2E,EAAAA,MAAK,CACFL,UAAU,2BACV46C,cAAe56C,EACf66C,WAAS,EACTC,MAAM,EACNC,gBAAgB,aAChBz6C,OAAQ4zB,EACR+J,OAAQf,GAERxhC,EAAAA,cAACs/C,EAAAA,YAAW,CAAC/c,OAAQf,GAAcud,GACnC/+C,EAAAA,cAAC8E,EAAAA,UAAS,KAAEk6C,GACZh/C,EAAAA,cAACu/C,EAAAA,YAAW,KAAEN,IAqD1B,EAhD+E/+C,IAC3E,MAAM,qBACF+gC,EAAoB,gBACpBC,EAAe,QACfzgC,EAAO,YACP2gC,EAAW,cACXD,EAAa,sBACbG,EAAqB,KACrBG,EAAI,SACJrJ,EAAQ,YACRoJ,EAAW,8BACXI,EAA6B,sBAC7BS,GACAniC,EAEEs/C,EACFx/C,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAU,4CACX68B,EACAS,GAIT,OAAIR,EAEIphC,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKo+B,GACRjhC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKq+B,GACLzgC,EACA++C,EACAnd,EACAjB,IAObphC,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKo+B,GACRjhC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKq+B,GACLzgC,EACA++C,EACAnd,EACAf,GAEJG,GAjFIge,EAAC33C,EAAc43C,EAA2Ble,KACvD,OAAQ15B,GACJ,IAAK,MACL,IAAK,OACD,OAAO9H,EAAAA,cAAC0+C,EAAgB97C,OAAAC,OAAA,GAAK68C,EAAS,CAAEnd,OAAQf,KACpD,IAAK,OACL,IAAK,SACD,OAAOxhC,EAAAA,cAAC6+C,EAAmBj8C,OAAAC,OAAA,GAAK68C,EAAS,CAAEnd,OAAQf,KACvD,QACI,OAAO,KAAK,EAwEHie,CAASrnB,EAAUqJ,EAAMD,GAC7B,kIChKV,MAAMme,EAAwEz/C,IACjF,MAAM,cAAEmnC,GAAkBnnC,EAC1B,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKwkC,GACPnnC,EAAMO,QACNP,EAAM2tB,UACN3tB,EAAM8mC,SACF,EAIjB,2FCVA,MAAM4Y,EAA2BzV,IAA8D,IAAA0V,EAC3F,OACI7/C,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKsnC,EAAkBE,uBACiB,QADIwV,EAC5C1V,EAAkBG,8BAAsB,IAAAuV,OAAA,EAAxCA,EAA0C99C,KAAKmN,GAExClP,EAAAA,cAAAA,EAAAA,SAAA,KACKkP,EAAKzO,QACNT,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqM,EAAK86B,gCACV96B,EAAKxO,KACNV,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqM,EAAK+6B,4BAA6B/6B,EAAK5E,WAK9D,EAoDf,EAhD2DpK,IACvD,MAAM,sBACF8rC,EAAqB,eACrBC,EAAc,iBACdC,EAAgB,MAChBntB,EAAK,KACLre,EAAI,MACJ4J,EAAK,MACL89B,EAAK,sBACL+D,EAAqB,UACrBC,EAAS,eACTvB,EAAc,kBACdV,GACAjqC,EAEJ,OAAIksC,EAEIpsC,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKmpC,GACRhsC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GACGspC,EAAqB,CACzB56B,KAAM66B,EACN9nC,UAAW6nC,EAAwBA,EAAsB7nC,UAAY,GAAE,aAC3DumC,IAEZ7qC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKopC,GAAiB7D,IAE/BpoC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqpC,GACLntB,EACAre,EACA4J,EACA6/B,GAAqByV,EAAwBzV,KAM1DnqC,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKmpC,GACRhsC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKopC,GAAiB7D,GAC3BpoC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqpC,GACLntB,EACAre,EACA4J,EACA6/B,GAAqByV,EAAwBzV,IAE7C,6GCxDjB,MA0CM2V,EAAqBC,GAEnB//C,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKk9C,EAAWC,yBAChBD,EAAWE,iBACXF,EAAWG,oBACXH,EAAWI,kBAMtBC,EAAmBA,CACrBC,EACAx+C,EACAy+C,EACAC,EACAC,EACAC,EACAC,EACAz9C,EACA09C,EACAC,KAEA,MAAM,cAAEC,GAAkBh/C,EAE1B,OAAI4+C,EACOzgD,EAAAA,cAAAA,EAAAA,SAAA,KAAGygD,GAEVJ,EACOA,EAAUt+C,KAAI,CAAC++C,EAAUp3C,IAExB1J,EAAAA,cAAA,OAAKsE,UAAU,sBAAsBwC,IAAK,GAAG4C,KAASyH,EAAAA,GAASC,UAAUsW,cACpEo5B,EAASC,SACTJ,EAAiB,KAAOK,EAAkBF,EAAUj/C,EAAWy+C,EAAer9C,EAAkB29C,GAChGD,EACG3gD,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAU,sCACX28C,EAAuBH,EAAUj/C,EAAWy+C,EAAer9C,EAAkB29C,GAC7EE,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAEdN,EAASI,mBACTlhD,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAU,gCACXw8C,EAASI,mBACTJ,EAASK,cACTL,EAASM,QAGdphD,EAAAA,cAAAA,EAAAA,SAAA,KACK8gD,EAASK,cACTL,EAASM,WAO3BV,EACH1gD,EAAAA,cAAA,OAAKsE,UAAU,wBACXtE,EAAAA,cAAA,KAAGsE,UAAU,iBAAiBu8C,GAC7BN,GAGLvgD,EAAAA,cAAAA,EAAAA,SAAA,KAAGwgD,EACN,EASCa,EAAuBA,CAACP,EAA+BQ,IAA6B,KACtFR,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAaH,EAAgB,EAQtFI,EAAwBZ,GAAkC,KAC5DA,EAASS,eAAiBT,EAASS,cAAcC,UAAUC,aAAY,EAAK,EAG1ET,EAAoBA,CACtBF,EACAj/C,EACAy+C,EACAr9C,EACA29C,KACoB,IAAAe,EAEpB,IAAKb,EAASS,gBAAkBjB,IAA8B,QAAbqB,EAAAb,EAASh9C,YAAI,IAAA69C,OAAA,EAAbA,EAAeZ,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBACFiB,EAAsB,yBACtBC,EAAwB,oBACxBC,EAAmB,8BACnBC,EAA6B,uBAC7BC,GACApgD,EAEEy/C,EAAkBR,EAASS,cAAcD,gBAEzCh4C,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBiS,EAAAA,kBAAkBgtC,eACzEC,GAAyBp4C,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAEzE,OACItJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKi+C,EAASS,cAAca,gBAC7BpiD,EAAAA,cAAA,OAAKsE,UAAU,+BACVg9C,EACGthD,EAAAA,cAAA,QAAMsE,UAAU,WAAW09C,GAE3BhiD,EAAAA,cAAA,QAAMsE,UAAU,QAAQw9C,IAG/BR,GACGthD,EAAAA,cAAA,OAAKsE,UAAU,oCACXtE,EAAAA,cAAA,QAAMsE,UAAU,0CAA0Cw8C,EAASS,cAAcc,aACjFriD,EAAAA,cAACkX,EAAAA,OAAM,CAAC9M,KAAK,OAAO9F,UAAU,mCAAmCkT,QAASkqC,EAAqBZ,IAC1FmB,IAIbjiD,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAU,4BACN69C,EAAsB,CAC1B3qC,QAAS6pC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,GAE7C,EAITO,EAAqBC,GAClBA,GAAyC,IAA5BA,EAAUC,OAAOr8C,OAI/BnG,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK0/C,EAAUE,SACfF,EAAUG,OACVH,EAAUC,QALR,KAUTG,EAA2BA,CAC7BC,EACAC,EACA3iD,IAEK0iD,EAID5iD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKggD,GACL3iD,EAAM4iD,UACNF,EAAkBG,SAClBH,EAAkBI,SAClBJ,EAAkBK,YAClBL,EAAkBM,IAClBN,EAAkBO,eAAiBP,EAAkBO,eAAiB,KACtEP,EAAkBQ,YAVhB,KAeTC,EAA6BA,CAC/BC,EACAT,EACA3iD,IAEKojD,EAKDtjD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKggD,GACLS,EAAoBC,SACpBD,EAAoBE,SACpBF,EAAoBG,QACpBH,EAAoBF,aARzBljD,EAAMiD,QAAQI,UAAUyQ,MAAM,uDACvB,MAYT0vC,EAAwBA,CAACxjD,EAAuB2B,IAC9C3B,EAAMyjD,gBAAkBzjD,EAAMyjD,eAAex9C,OAAS,EAElDnG,EAAAA,cAAA,OAAKsE,UAAU,wBACVpE,EAAMyjD,eAAe5hD,KAAI6hD,IAAY,IAAAC,EAAAC,EAClC,OACI9jD,EAAAA,cAAA,OAAK8G,IAAK88C,EAAU,GAAGG,WAAYz/C,UAAU,+BACxC0/C,EACGJ,EAAU,GACV1jD,EAAMogD,cACNz+C,EACAoiD,EAAYL,GACsC,QAD5BC,EACtB3jD,EAAMiD,QAAQ+P,cAAczN,eAAey+C,eAAO,IAAAL,OAAA,EAAlDA,EAAoDM,uBAEvD/D,EACGwD,EACA1jD,EAAM2B,UACN3B,EAAMogD,cACNpgD,EAAMqgD,qBACNrgD,EAAMsgD,iBACNtgD,EAAMugD,kBACNvgD,EAAMwgD,eACNxgD,EAAM+C,iBACN/C,EAAMkkD,sBAC4C,QADvBN,EAC3B5jD,EAAMiD,QAAQ+P,cAAczN,eAAey+C,eAAO,IAAAJ,OAAA,EAAlDA,EAAoDK,uBAEtD,KAMnBjkD,EAAMwgD,eACT1gD,EAAAA,cAAA,OAAKsE,UAAU,uBACXtE,EAAAA,cAAA,OAAKsE,UAAU,wBACXtE,EAAAA,cAAA,KAAGsE,UAAU,iBAAiBpE,EAAM2B,UAAUg/C,eAC7C3gD,EAAMqgD,uBAIfvgD,EAAAA,cAAAA,EAAAA,SAAA,KAAGE,EAAMsgD,kBAGXwD,EAA8BA,CAChClD,EACAR,EACAz+C,EACAwiD,EACAzD,KACA,IAAA0D,EACA,MAAMhD,EAAwC,QAAzBgD,EAAGxD,EAASS,qBAAa,IAAA+C,OAAA,EAAtBA,EAAwBhD,iBAC1C,WAAEiD,EAAU,aAAEC,EAAY,kBAAEC,EAAiB,uBAAEC,GAA2B7iD,EAChF,IAAI8iD,EASJ,OAPAA,EAAarD,EAAkBiD,EAAaC,EACxC1D,EAASh9C,MAAQg9C,EAASh9C,KAAKi9C,SAAS6D,cACxCD,EAAaD,EACLt5C,EAAAA,iBAAiBC,cAAcu1C,KACvC+D,EAAa7D,EAASh9C,MAAQg9C,EAASh9C,KAAKi9C,SAASa,eAAiBhB,EAAwB6D,EAAoBE,GAIlH3kD,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKsE,UAAU,8CACXtE,EAAAA,cAAA,KAAGsE,UAAW,8CAA8CqgD,EAAW5jD,uBACvEf,EAAAA,cAAA,KAAGsE,UAAW,8CAA8CqgD,EAAW5jD,iBAAkB4jD,GACxFE,EAA2B/D,EAAUj/C,EAAWwiD,IAEtD,EAILpD,EAAyBA,CAC3BH,EACAj/C,EACAy+C,EACAr9C,EACA29C,KACoB,IAAAkE,EAEpB,IAAKhE,EAASS,gBAAkBjB,IAA8B,QAAbwE,EAAAhE,EAASh9C,YAAI,IAAAghD,OAAA,EAAbA,EAAe/D,SAASa,gBAAiBhB,EACtF,OAAO,KAGX,MAAM,uBAAEqB,EAAsB,uBAAEJ,EAAsB,oBAAEE,GAAwBlgD,EAE1Ey/C,EAAkBR,EAASS,cAAcD,gBAEzCh4C,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBiS,EAAAA,kBAAkBgtC,eACzEC,GAAyBp4C,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAEzE,OACItJ,EAAAA,cAAAA,EAAAA,SAAA,KACKshD,EACGthD,EAAAA,cAACkX,EAAAA,OAAM,CAAC5S,UAAU,qCAAqCkT,QAASkqC,EAAqBZ,GAAS,YAAY,UACrGmB,GAEL,KACJjiD,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CACHyB,UAAU,sCACN69C,EAAsB,CAC1B3qC,QAAS6pC,EAAqBP,EAAUQ,KAEvCA,EAAkBO,EAAyBE,GAEjD,EAILkC,EAAenD,IACjB,IAAIiE,EAAY,EAIhB,OAHAA,EAAYjE,EAASkE,QAAO,CAACX,EAAOn1C,KAAQ,IAAA+1C,EACxC,OAAOZ,IAAkB,QAATY,EAAA/1C,EAAKpL,YAAI,IAAAmhD,OAAA,EAATA,EAAWlE,SAASmE,WAAY,EAAE,GACnD,GACIH,CAAS,EAGdF,EAA6BA,CAAC/D,EAA+Bj/C,EAA2BwiD,KAAiB,IAAAc,EAAAC,EAAAC,EAC3G,MAAM/D,EAAwC,QAAzB6D,EAAGrE,EAASS,qBAAa,IAAA4D,OAAA,EAAtBA,EAAwB7D,iBAC1C,UAAEgE,EAAS,WAAEC,GAAe1jD,EAC5B2jD,EAASnB,EAAQ,EAAIkB,EAAaD,EACxC,OACItlD,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAU,oDACXg9C,EACGthD,EAAAA,cAAA,KAAGsE,UAAU,uDACc,QADuC8gD,EAC7DtE,EAASS,qBAAa,IAAA6D,OAAA,EAAtBA,EAAwBK,eACxB,KACsB,QADlBJ,EACJvE,EAASS,qBAAa,IAAA8D,OAAA,EAAtBA,EAAwBhD,aAE7B,KACJriD,EAAAA,cAAA,KAAGsE,UAAU,uDAAqD,IAC5D+/C,EACD,IACAmB,EAAM,MAGhB,EAIX,EAvX4CtlD,IAAqB,IAAAwlD,EAAAC,EAAAC,EAAA,OAC7D5lD,EAAAA,cAAA,MAAA4C,OAAAC,OAAA,CAAKyB,UAAWpE,EAAMoE,UAAWxD,GAAIZ,EAAMY,IAAQZ,EAAM2lD,uBAAuB3lD,IAC3EA,EAAM6e,MACN7e,EAAM4lD,kBAAoBhG,EAAkB5/C,EAAM4lD,kBACxC,QAAVJ,EAAAxlD,EAAMk8C,YAAI,IAAAsJ,GAAVA,EAAYK,gBAAkB7lD,EAAMkkD,sBACjCV,EAAsBxjD,EAAOA,EAAM2B,WAEnC7B,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK3C,EAAM8lD,kBACX5F,EACGlgD,EAAM0jD,UACN1jD,EAAM2B,UACN3B,EAAMogD,cACNpgD,EAAMqgD,qBACNrgD,EAAMsgD,iBACNtgD,EAAMugD,kBACNvgD,EAAMwgD,eACNxgD,EAAM+C,iBACN/C,EAAMkkD,sBAC4C,QADvBuB,EAC3BzlD,EAAMiD,QAAQ+P,cAAczN,eAAey+C,eAAO,IAAAyB,OAAA,EAAlDA,EAAoDxB,wBAI/DjkD,EAAM+lD,qBACHjmD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK3C,EAAMgmD,qBACXhmD,EAAM+lD,oBACI,QAAVL,EAAA1lD,EAAMk8C,YAAI,IAAAwJ,GAAVA,EAAYG,eACP1C,EAA2BnjD,EAAMimD,wBAAyBjmD,EAAM2iD,kBAAmB3iD,GACnFyiD,EAAyBziD,EAAMkmD,sBAAuBlmD,EAAM2iD,kBAAmB3iD,GACpFoiD,EAAkBpiD,EAAMmmD,oBACxBnmD,EAAMomD,2BACNpmD,EAAMqmD,sBACNrmD,EAAMsmD,uBAAyBx4C,EAAAA,gBAAgBC,YAAY/N,EAAMsmD,uBAC9DxmD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK3C,EAAMumD,+BAAgCvmD,EAAMsmD,uBACtD,KACHtmD,EAAMqgD,qBACNrgD,EAAMwmD,8BAGdxmD,EAAMogD,cACL,wRC3CH,MAAMqG,EAA2D19C,IAAA,IAAC,sBACrE29C,EAAqB,QACrBC,EAAO,UACPC,EAAS,YACTC,EAAW,YACXC,EAAW,MACX3C,EAAK,OACL4C,EAAM,mBACNC,GACHj+C,EAAA,OACGjJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK+jD,GACLG,EACAF,EACAC,EACAE,EACA3C,EACA4C,EACAC,EACE,EAGEC,EAAsDpzC,IAAA,IAAC,cAChEqzC,EAAa,QACb3mD,EAAO,MACP4jD,EAAK,WACLgD,EAAU,QACVC,EAAO,aACPC,GACHxzC,EAAA,OACG/T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKukD,GACL3mD,EACA4jD,EACAgD,EACAC,EACAC,EACE,EAGEC,EAAsC3zC,IAAA,IAAC,WAAE4zC,EAAU,SAAEC,EAAQ,gBAAEC,EAAe,WAAEC,GAAY/zC,EAAA,OACrG7T,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK4kD,GACLG,GACG5nD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK8kD,GACLC,EAAW7lD,KAAI8lD,GACZ7nD,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAK+gD,EAAU/jD,KAAK+jD,UAAUC,QAASD,EAAUA,cAI1E,EAGEE,EAAwC5xB,IAAA,IAAC,YAAE6xB,EAAW,OAAEC,GAAQ9xB,EAAA,OACzEn2B,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKmlD,GACLC,EAAOlmD,KAAI,CAACmmD,EAAOx+C,IAChB1J,EAAAA,cAACwnD,EAAiB5kD,OAAAC,OAAA,CAACiE,IAAK4C,GAAWw+C,MAEpC,EAGEC,EAAwCC,IAAA,IAAC,YAAEC,EAAW,QAAE5nD,EAAO,gBAAE6nD,EAAe,aAAEC,GAAcH,EAAA,OACzGpoD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKwlD,GACL5nD,EACA6nD,EACAC,EACE,EAGEC,EAA+CC,IAAA,IAAC,gBACzDC,EAAe,gBACfC,EAAe,OACfV,EAAM,iBACNW,EAAgB,qBAChBC,GACHJ,EAAA,OACGzoD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK6lD,GACLC,GAAmB3oD,EAAAA,cAAC2mD,EAA2B/jD,OAAAC,OAAA,GAAK8lD,IACpDV,GAAUjoD,EAAAA,cAAC+nD,EAAkBnlD,OAAAC,OAAA,GAAKolD,IAClCY,EACAD,EACE,EAGEE,EAAoCC,IAAA,IAAC,UAAEC,EAAS,YAAEC,GAAaF,EAAA,OACxE/oD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKmmD,GACLC,GAAeA,EAAYlnD,KAAI,CAACmnD,EAAYx/C,IAAU1J,EAAAA,cAACwoD,EAAqB5lD,OAAAC,OAAA,CAACiE,IAAK4C,GAAWw/C,MAC3F,EAmCX,EAhC2DC,IAAA,IAAC,kBACxDC,EAAiB,OACjB1G,EAAM,MACN2G,EAAK,QACL7kD,EAAO,aACP8kD,EAAY,mBACZC,EAAkB,KAClBC,EAAI,MACJp2C,EAAK,WACLq2C,GACHN,EAAA,OACGnpD,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAKumD,GACP1G,GAAU1iD,EAAAA,cAACmoD,EAAkBvlD,OAAAC,OAAA,GAAK6/C,IAClCl+C,EACA6kD,GACGrpD,EAAAA,cAAAA,EAAAA,SAAA,KACKqpD,EACAE,GAGRD,GACGtpD,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAU,6CACXglD,EACAC,GAGRC,GAAQxpD,EAAAA,cAAC8oD,EAAgBlmD,OAAAC,OAAA,GAAK2mD,IAC9Bp2C,EACAq2C,GAAcA,EACV,kKClGN,MAAMC,UAA2B1pD,EAAAA,cAapCC,YAAYC,GACRC,MAAMD,GAXF,KAAAypD,aAAuB,EAmTd,KAAAC,qBAAuB,CAACC,EAA0BhpC,IAA0B,KACzF,MAAMhX,EAAWgX,GAAUA,EAAOhX,SAAWgX,EAAOhX,SAAW,GACzDigD,EAAiC,CAAC,CAAErhB,IAAKohB,EAAkB/gB,QAASj/B,IAGtEmE,EAAAA,gBAAgBC,YAAY4S,EAAO0wB,qBACnC1wB,EAAO0wB,mBAAmBxvC,KAAImN,IAC1B,GAAIA,GAAQA,EAAKk5B,MAAO,CACpB,MAAM2hB,EAAW76C,EAAKk5B,MAAMK,IACtBuhB,EAA+B96C,EAAKk5B,MAAMQ,cAChDkhB,EAAiBniD,KAAK,CAClB8gC,IAAKshB,EACLjhB,QAAS55B,EAAKxO,KACdkoC,cAAeohB,EACf3/C,qBAAsB,CAAEJ,QAASiF,EAAKjF,QAAQC,iBAC/C,KAIf3J,KAAKoU,SAAS,CACVs1C,cAAeH,EAAiB3jD,OAAS,EAAI2jD,EAAmB,CAAC,CAAErhB,IAAK,UACxEyhB,qBAAsBrgD,GACxB,EAGW,KAAAsgD,sBAAwB,CAACrmD,EAAqBsmD,IAAsB,KAC5E7pD,KAAKL,MAAMmvC,cASZqa,EAAmBW,aAAc,EACjC9pD,KAAKoU,SAAS,CACV21C,WAAYxmD,EAAKhD,GACjBypD,oBAAqBzmD,EAAK+F,SAC1B2gD,WAAYJ,MAZhB7pD,KAAKoU,SAAS,CACV21C,WAAY/pD,KAAKsD,MAAMymD,YAAc/pD,KAAKsD,MAAMymD,aAAexmD,EAAKhD,QAAM+G,EAAY/D,EAAKhD,GAC3F0pD,WAAYJ,IAEZ7pD,KAAKL,MAAMsuC,mBACXjuC,KAAKqpD,qBAAqB9lD,EAAKssC,YAActsC,EAA7CvD,GAQD,EAIM,KAAAkqD,cAAgB,IAAM,KACnCf,EAAmBW,aAAc,EACjC9pD,KAAKoU,SAAS,CAAE21C,WAAY/pD,KAAKsD,MAAM2mD,YAAa,EAOvC,KAAAE,oBAAuBpqD,IAChCC,KAAKoqD,SAAS9oC,UAAYthB,KAAKoqD,SAAS9oC,QAAQ+oC,SAAStqD,EAAMK,SAC/DJ,KAAKoU,SAAS,CACV21C,gBAAYziD,EACZ0iD,oBAAqB,GACrBN,cAAe,MAChB,EAQM,KAAAY,oBAAuBvqD,IAChCC,KAAKoqD,SAAS9oC,UAAYthB,KAAKoqD,SAAS9oC,QAAQ+oC,SAAStqD,EAAMwqD,gBAC/DvqD,KAAKwqD,eAAgB,EAWZ,KAAAC,uBAAyB,CAACthD,EAAe6gD,EAA8BU,KAC/EvB,EAAmBW,aAAyB,IAAV3gD,MAGlCuhD,IAAmBV,IAGjBA,IAAwBU,EASlB,KAAAC,kBAAqBjB,IAClC,IAAKA,IAAkBA,EAAcxhB,IACjC,OAAO,KAGX,MACM0iB,EAAuC,CACzCnd,UAAW,CACPjS,GAAI,CAAEkS,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,GACrCjS,GAAI,CAAEgS,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,GACrChS,GAAI,CAAE+R,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,GACrC/R,GAAI,CAAE8R,EAAG,kBAAmBjS,EAAG,EAAGkS,EAAG,IAEzCE,UAAU,GAEuB,IAADnlC,EAAAmiD,EAApC,YAAyBvjD,KAVA6gC,EAAAA,EAAAA,kBAAiB,GAAGuhB,EAAcxhB,MAAOloC,KAAKL,MAAMiD,QAAQ+P,cAAczN,eAAeoP,aAY1G7U,EAAAA,cAACwoC,EAAAA,GAAK5lC,OAAAC,OAAA,CACF4C,eAAgBlF,KAAKL,MAAMiD,QAAQ+P,cAAczN,eACjDnB,UAAU,sBACN2lD,EAAa,CACjBnuB,aAAcv7B,KAAKL,MAAMiD,QAAQC,QAAQ04B,aACzC8M,cAAqF,QAAxE3/B,EAA6B,QAA7BmiD,EAAEnB,EAAcrhB,qBAAa,IAAAwiB,EAAAA,EAAI7qD,KAAKL,MAAMM,OAAO6qD,6BAAqB,IAAApiD,EAAAA,EAAIkiD,EACzFniB,oBAAoB,OACpB5+B,KAAK,WACLtJ,GAAG,kCACHgoC,QAASmhB,EAAcnhB,WAI5B,IAAI,EAraXvoC,KAAKoqD,SAAW3qD,EAAAA,YAChBO,KAAK+qD,YAActrD,EAAAA,YACnBO,KAAKsD,MAAQ,CAAEymD,gBAAYziD,EAAW0iD,oBAAqB,GAAIC,gBAAY3iD,EAAWqiD,qBAAsB,IAC5G3pD,KAAKwqD,cAAgBxqD,KAAKwqD,cAActsB,KAAKl+B,MAC7CA,KAAK0C,kBAAmBC,EAAAA,EAAAA,oBACpB3C,KAAKL,MAAMiD,QAAQC,QAAQC,kBAC3B9C,KAAKL,MAAMoD,aACX/C,KAAKL,MAAMqD,WAEfhD,KAAK+I,SAAUC,EAAAA,EAAAA,kBAAiB,QAAShJ,KAAK0C,iBAAkB,GAAI,GACxE,CAEOO,oBACC2N,EAAAA,GAASC,YACTrL,SAASwlD,KAAKnsB,iBAAiB,YAAa7+B,KAAKmqD,qBACjD3kD,SAASwlD,KAAKnsB,iBAAiB,WAAY7+B,KAAKsqD,qBAExD,CAEOpnD,qBAAkB,IAAA+nD,EACO,QAAxBA,EAAAjrD,KAAK+qD,YAAYzpC,eAAO,IAAA2pC,GAAxBA,EAA0BC,SAAS,IAAMlrD,KAAKL,MAAMmvC,cACnD9uC,KAAK+qD,YAAYzpC,QAAQ4pC,SAAS,GAAmB7lC,OAE9D,CAEOyZ,uBACCluB,EAAAA,GAASC,YACTrL,SAASwlD,KAAKjsB,oBAAoB,YAAa/+B,KAAKmqD,qBAAqB,GACzE3kD,SAASwlD,KAAKjsB,oBAAoB,WAAY/+B,KAAKsqD,qBAAqB,GAEhF,CAEO9mD,SACH,MAAM,aAAEsrC,EAAY,SAAEf,EAAQ,iBAAEY,EAAgB,2BAAED,EAA0B,uBAAEG,EAAsB,WAAEf,GAAe9tC,KAAKL,MAG1H,OADAK,KAAKopD,aAAe,EAEhB3pD,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GACCwrC,EAAU,CACd/pC,UAAWC,IAAW8pC,EAAW/pC,UAAW+qC,QAA0CxnC,IAA1BtH,KAAKsD,MAAMymD,WAA2B,QAAU,YAE5GtqD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKyrC,EAAQ,CAAEjwB,IAAK9d,KAAKoqD,SAAUpiB,SAAS,OAC5C8G,QAA0CxnC,IAA1BtH,KAAKsD,MAAMymD,YACxBtqD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKosC,GACNjvC,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKqsC,EAAgB,CAAE13B,QAASjX,KAAKkqD,mBAC1CzqD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKusC,GAAyB7uC,KAAKsD,MAAM0mD,sBAGrDhqD,KAAKmrD,kBAItB,CAEQA,iBACJ,MAAM,SAAEnd,EAAQ,aAAEe,EAAY,aAAED,GAAiB9uC,KAAKL,OAChD,WAAEoqD,GAAe/pD,KAAKsD,MACtBupC,EAA8B,GAEpC,GAAIiC,QAA+BxnC,IAAfyiD,GAA4Bhb,EAAanpC,OAAS,EAAG,CACrE,IAAIwlD,EAA0B,CAAC,EAC/B,IAAK,MAAMC,KAAiBtc,EAAc,CACtC,GAAIsc,GAAiBA,EAAc9qD,KAAOwpD,EAAY,CAClDqB,EAAWC,EACVlC,EAAmBW,YAEd9pD,KAAKoU,SAAS,CAAE61C,gBAAY3iD,EAAW0iD,oBAAqBqB,EAAc/hD,WAD1EtJ,KAAKoU,SAAS,CAAE61C,gBAAY3iD,IAElC,KAAM,CAGV,GADA8jD,EAAWprD,KAAKsrD,gBAAgBD,GAC5BD,GAAYA,EAAS7qD,KAAOwpD,EAC5B,MAIRqB,GACIve,EAAazlC,KACT3H,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,CAACiE,IAAK6kD,EAAS7qD,IAAQytC,GACvB,IACAhuC,KAAKurD,oBAAoBH,GAAW,KAE3C,MAENrc,EAAa9lC,SAAQ,CAAC0F,EAAqBxF,KACvC0jC,EAAazlC,KACT3H,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,CACDiE,IAAK4C,GACD6kC,EAAQ,CACZlwB,IAAK9d,KAAKyqD,uBAAuBthD,EAAOnJ,KAAKsD,MAAM0mD,oBAAqBr7C,EAAKrF,UAAYtJ,KAAK+qD,YAAc,OAE3G/qD,KAAKurD,oBAAoB58C,IAEjC,IAIT,OAAOk+B,CACX,CAEQye,gBAAgB38C,GACpB,MAAMojC,EAAWpjC,GAAQA,EAAKmhC,QAC9B,GAAIiC,GAAYA,EAASnsC,OAAS,EAC9B,IAAK,IAAI63C,EAAI,EAAGA,GAAK1L,EAASnsC,OAAS,EAAG63C,IAAK,CAC3C,GAAI1L,EAAS0L,GAAGl9C,KAAOP,KAAKsD,MAAMymD,WAI9B,OAHCZ,EAAmBW,YAEd9pD,KAAKoU,SAAS,CAAE61C,WAAYt7C,GAAQA,EAAKpO,GAAIypD,oBAAqBjY,EAAS0L,GAAGn0C,WAD9EtJ,KAAKoU,SAAS,CAAE61C,WAAYt7C,aAAI,EAAJA,EAAMpO,KAEjCwxC,EAAS0L,GAEpB,MAAM+N,EAAQxrD,KAAKsrD,gBAAgBvZ,EAAS0L,IAC5C,GAAI+N,EACA,OAAOA,CAAK,CAKxB,OADAxrD,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,iDAC5B,IACX,CAEQ83C,oBAAoBxc,GACxB,OAAIA,GAAgBA,EAAae,SAAWf,EAAae,QAAQlqC,OAAS,EAClE5F,KAAKL,MAAMmvC,mBAA0CxnC,IAA1BtH,KAAKsD,MAAMymD,WAC/B/pD,KAAKyrD,eAAe1c,EAAae,QAASf,EAAaxuC,IAAI,GAGlEd,EAAAA,cAAAA,EAAAA,SAAA,KACKO,KAAK0rD,sBAAsB3c,GAC3B/uC,KAAKyrD,eAAe1c,EAAae,QAASf,EAAaxuC,IAAI,IAG7DwuC,GAAgBA,EAAazlC,UAAYylC,EAAaa,SAAWb,EAAaa,QAAQhqC,OAAS,EAC/F5F,KAAK2rD,oBAAoB5c,EAAcA,EAAaxuC,IAAI,GAAO,GAC/DwuC,GAAgBA,EAAazlC,WAAaylC,EAAaa,QACvD5vC,KAAK4rD,oBAAoB7c,EAAcA,EAAaxuC,IAAI,IAEnEP,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,yDAC5B,KACX,CAEQg4C,eAAe1Z,EAA4BgY,EAAqB8B,GACpE,MAAM,aAAE/c,EAAY,SAAEd,GAAahuC,KAAKL,MAClCmsD,EAAyB9rD,KAAKL,MAAMM,OAAO8rD,uBAAwB,EACnEC,EAA0BhsD,KAAKL,MAAMM,OAAOgsD,kBAAoB,EAGtE,GAAIlC,GAAc/pD,KAAKsD,MAAMymD,aAAeA,EAExC,OADA/pD,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,gEAC5B,KAGX,IAAKs+B,GAAgC,IAApBA,EAASnsC,OAEtB,OADA5F,KAAKL,MAAMiD,QAAQI,UAAUyQ,MAAM,4DAC5B,KAGX,IAAIy4C,EAAyB,GAC7B,MAAMC,EACFpa,GACAA,EAASvwC,KAAI,CAAC8e,EAAuB8uB,KACjC,MAAMgd,EAAa9rC,EAAOwvB,SAAWxvB,EAAOwvB,QAAQlqC,OAAS,EAC7D,IAAIwlD,EAOAtb,EALAsb,EADAgB,GAActd,EACH9uC,KAAK0rD,sBAAsBprC,EAAQypC,EAAY3a,GAE/C9uB,EAAOsvB,QAAU5vC,KAAK2rD,oBAAoBrrC,EAAQ8uB,GAAOpvC,KAAK4rD,oBAAoBtrC,GAIjG,MAAM+rC,EAAcD,GAAcN,GAA0B9rD,KAAKopD,cAAgBrW,KAAKuZ,MAAMN,GAA2B,EAMvH,OALIK,IACArsD,KAAKopD,eACL8C,EAAiBJ,EAAyB,SAAS9rD,KAAKopD,aAAajiC,aAAe,GACpF2oB,EAAU9vC,KAAKyrD,eAAenrC,EAAOwvB,QAAShB,EAAexuB,EAAO/f,QAAK+G,GAAW,IAGpF7H,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GACG0rC,EAAQ,CACZznC,IAAK+Z,EAAO/f,GACZwD,UAAWC,IAAWgqC,EAASjqC,UAAWsoD,GAAe,eACzDvuC,IAAK9d,KAAKyqD,uBAAuBrb,EAAKpvC,KAAKsD,MAAM0mD,oBAAqB1pC,EAAOhX,UAAYtJ,KAAK+qD,YAAc,OAE3GK,EACAtb,EACE,IAGnB,OAAO9vC,KAAKusD,YAAYL,EAAgBC,EAAapC,EAAY8B,EACrE,CAEQH,sBAAsBprC,EAAuBypC,EAAqB5gD,GACtE,MAAM,OAAEwN,GAAW3W,KAAKL,MACxB,OACIF,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,CACDiE,IAAK4C,GACDwN,EAAM,CACVM,QAASjX,KAAK4pD,sBAAsBtpC,EAAQypC,GAC5CyC,QAASxsD,KAAKwqD,cAAa,kBACVxqD,KAAKsD,MAAMymD,YAAc/pD,KAAKsD,MAAMymD,aAAezpC,EAAO/f,IAAG,mBAC5DP,KAAKsD,MAAMymD,YAAc/pD,KAAKsD,MAAMymD,aAAezpC,EAAO/f,IAAG,cAClEwpD,IAEZzpC,EAAOhX,SAGpB,CAEQqiD,oBACJrrC,EACAnX,GAEyB,IADzBsjD,IAAA/a,UAAA9rC,OAAA,QAAA0B,IAAAoqC,UAAA,KAAAA,UAAA,GACAgb,EAAAhb,UAAA9rC,OAAA,QAAA0B,IAAAoqC,UAAA,IAAAA,UAAA,GAEA,MAAM,KAAErD,GAASruC,KAAKL,MAChB2J,EAAWgX,EAAOhX,SAAWgX,EAAOhX,SAAW,GAC/CqjD,EAAcrsC,EAAOuvB,YAAcvvB,EAAOuvB,YAAc,GAC9D7vC,KAAK+I,QAAQK,cAAcC,MAAQC,EACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkB1C,KAAK+I,SACtE,OACItJ,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GACG+rC,EAAI,CACR9nC,IAAK4C,EACLqjD,QAASE,GAAY1sD,KAAKwqD,cAC1BpqD,OAAQkgB,EAAOixB,iBAAmB,cAAWjqC,EAC7CslD,YAAaH,GAAezsD,KAAKqpD,qBAAqBsD,EAAarsC,GACnEtP,KAAMsP,EAAOsvB,SACTrmC,EAAU,CACd0N,SAASizB,EAAAA,EAAAA,kBAAiBlqC,KAAK0C,iBAAkB1C,KAAK+I,QAASO,KAE9DgX,EAAOhX,SAGpB,CAEQujD,uBAAuBvjD,EAAmBI,GAC9C,MAAM,KAAE2kC,GAASruC,KAAKL,MACtBK,KAAK+I,QAAQK,cAAcC,MAAQC,EACnC,MAAMC,GAAaC,EAAAA,EAAAA,wBAAuBxJ,KAAK0C,iBAAkB1C,KAAK+I,SACtE,OAAIO,GAAYI,EAERjK,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK+rC,EAAI,CAAEr9B,KAAMtH,GAAaH,EAAU,CAAE0N,SAASizB,EAAAA,EAAAA,kBAAiBlqC,KAAK0C,iBAAkB1C,KAAK+I,QAASO,KACzGA,GAIN,IACX,CAEQsiD,oBAAoBtrC,EAAuBnX,GAAyC,IAAzBujD,EAAAhb,UAAA9rC,OAAA,QAAA0B,IAAAoqC,UAAA,IAAAA,UAAA,GAC/D,MAAM,KAAEjD,GAASzuC,KAAKL,MACtB,OACIF,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,CAACiE,IAAK4C,GAAWslC,EAAI,CAAE+d,QAASE,GAAY1sD,KAAKwqD,gBACjDlqC,EAAOhX,SAGpB,CAEQijD,YAAYO,EAAeX,EAA4BY,EAAsBC,GACjF,MAAM,aAAE1e,EAAY,SAAEP,EAAQ,kBAAEQ,EAAiB,kBAAEN,EAAiB,uBAAEE,EAAsB,aAAEW,GAAiB9uC,KAAKL,MAC9GstD,GACDne,IACAb,GAAqBE,KACrB1gC,EAAAA,gBAAgBC,YAAY1N,KAAKsD,MAAMomD,iBACvCsD,EACCE,GACDpe,GAAgBX,GAA0B1gC,EAAAA,gBAAgBC,YAAY1N,KAAKsD,MAAMomD,iBAAmBsD,EACnGG,EAAoBntD,KAAKopD,aAAe,GAAK6D,EAAuB3e,EAAcvqC,UAAY,kBAEpG,OADA/D,KAAKopD,aAAe,EAEhB3pD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgsC,EAAY,CAAEvqC,UAAWopD,IAC/B1tD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GACGyrC,EAAQ,CACZhqC,UAAWC,IACP+pC,EAAShqC,UACT+oD,EACAG,GAAwB,gBACxBA,GACIjtD,KAAKL,MAAMM,OAAOgsD,kBAClBjsD,KAAKL,MAAMM,OAAOgsD,iBAAmB,GACrC,yBAGPE,GAEJc,GACGjtD,KAAKsD,MAAMomD,eACX1pD,KAAKsD,MAAMomD,cAAcloD,KAAImN,IAAI,IAAAy+C,EAAA,OAC7B3tD,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKisC,EAAiB,CAAEhoC,IAAKoI,EAAKu5B,IAAKnkC,UAAWwqC,EAAmBxqC,YACrE/D,KAAKsD,MAAMomD,eAAiB1pD,KAAK2qD,kBAAkBh8C,GACnDu+C,GAA6BltD,KAAK6sD,uBAAuBl+C,EAAK45B,QAAkC,QAA3B6kB,EAAEz+C,EAAK7E,4BAAoB,IAAAsjD,OAAA,EAAzBA,EAA2B1jD,SAChG,IAI3B,CA4FQ8gD,gBACCxqD,KAAKL,MAAMmvC,cACZ9uC,KAAKoU,SAAS,CAAE21C,gBAAYziD,EAAWoiD,cAAe,KAAMM,oBAAqB,IAEzF,EAnZeb,EAAAW,aAAuB,EAub1C,uIC5cO,MAAMuD,EAA4D1tD,IAAQ,IAAA2tD,EAAAC,EAC7E,MAAM,YACFn7B,EAAW,qBACXC,EAAoB,oCACpBC,EAAmC,QACnCpyB,EAAO,UACPotB,EAAS,gBACTmF,EAAe,4BACfD,EAA2B,iBAC3BI,EAAgB,aAChBvsB,EAAY,aACZwsB,EAAY,qBACZ/oB,EAAoB,sBACpBkpB,EAAqB,kBACrBD,GACApzB,EACJ,OACIF,EAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK8vB,GACR3yB,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAK+vB,GACLnyB,EACAotB,EACD7tB,EAAAA,cAAC2T,EAAAA,KAAI,CAACrP,UAAqC,QAA5BupD,EAAE76B,aAAe,EAAfA,EAAiB1uB,iBAAS,IAAAupD,EAAAA,EAAI,IAC1C16B,EACAJ,EACA/kB,EAAAA,gBAAgBC,YAAY5D,IACzBrK,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgwB,GACLxoB,EAAqBtI,KAAKmN,GACvBlP,EAAAA,cAACA,EAAAA,SAAc,CAAC8G,IAAI,IAAIoI,MAInCokB,EACDtzB,EAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKuwB,EAAY,CAAE9uB,UAAkC,QAAzBwpD,EAAE16B,aAAY,EAAZA,EAAc9uB,iBAAS,IAAAwpD,EAAAA,EAAI,KACzD5tD,EAAMmzB,uBAEVzsB,GAEJ2sB,GAEA,EAIjB,0HCjDO,MAAMw6B,EAAmD7tD,IAC5D,MAAM,gBAAE2yC,EAAe,wBAAEI,EAAuB,gBAAED,EAAe,YAAET,GAAgBryC,EACnF,OAAuC,IAAnC+yC,EAAwB9sC,QACxBjG,EAAMiD,QAAQI,UAAUyQ,MAAM,kDACvB,MAGPhU,IAAAA,cAAC8T,EAAAA,OAAMlR,OAAAC,OAAA,GAAK0vC,GACRvyC,IAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKgwC,GACLI,EAAwBlxC,KAAI,CAACisD,EAA+BtkD,IAErD1J,IAAAA,cAAC2T,EAAAA,KAAI/Q,OAAAC,OAAA,GAAKmwC,EAAe,CAAElsC,IAAK4C,IAC3BskD,MAKZ,EAIjB,8ECbA,MAmBA,EAnBsE/kD,IAQjE,IARkE,GACnEnI,EAAE,UACFwD,EAAS,KACT5D,EAAI,UACJ0G,EAAS,SACTmQ,EAAQ,iBACRtU,EAAgB,QAChBuU,GACHvO,EACG,MAAMK,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBvC,GACvDoJ,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAE7D,OACItJ,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAAC/B,GAAIA,EAAIwD,UAAWA,EAAS,aAAc8C,EAAWmQ,SAAUA,EAAUC,QAASA,GAAa1N,GAClGpJ,EACI,6EClBjB,MAUA,EAVyEuI,IAA8C,IAA7C,GAAEnI,EAAE,UAAEwD,EAAS,KAAEwD,EAAO,OAAM,QAAEvF,GAAS0G,EAC/G,MAAMmtB,EAAiB,GAAG9xB,MAAcwD,UAExC,OACI9H,EAAAA,cAAA,OAAKc,GAAIA,EAAIwD,UAAWC,IAAW6xB,EAAgB,QAAS,GAAGtuB,UAAcsC,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHpK,EAAAA,cAAA,KAAGsE,UAAW,GAAG8xB,UAAwB7zB,GACvC,iECOd,MAAMszB,EAAgB7tB,IAClB,GAAIA,EAAW,CACX,MAAMquB,EAAkB5lB,OAAOC,SAAS1I,EAAW,IACnD,IAAKwI,MAAM6lB,GACP,OAAOA,CAAe,CAId,EAgBpB,EAbyEptB,IAAA,IAAC,GAAEnI,EAAE,KAAEgH,EAAI,MAAElH,EAAK,QAAEqH,EAAO,UAAE3D,EAAS,UAAE0D,EAAS,SAAEQ,GAAUS,EAAA,OAClIjJ,EAAAA,cAAA,SACIc,GAAIA,EACJgH,KAAMA,EACNlH,MAAOA,EACP0D,UAAW,GAAGA,WAAmBA,KAAaxD,IAC9CmH,QAAqB,KAAZA,EAAiBA,OAAUJ,EAAS,gBAC/B,OACdG,UAAW6tB,EAAa7tB,GACxBQ,SAAUA,GACZ,2DCnCN,MAMA,EANoES,IAAA,IAAC,GAAEnI,EAAE,MAAEuH,EAAK,UAAE/D,EAAS,KAAE5D,GAAMuI,EAAA,OAC/FjJ,EAAAA,cAAA,SAAOc,GAAI,GAAGA,UAAYwD,UAAW,GAAGA,UAAmB0xB,QAAS3tB,GAC/D3H,EACG,2DCNZ,MAIA,EAJgFuI,IAAA,IAAC,UAAE3E,GAAW2E,EAAA,OAC1FjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,mBAA6B,2DCApD,MAIA,EAJsF2E,IAAA,IAAC,UAAE3E,EAAS,QAAE/B,GAAS0G,EAAA,OACzGjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,sBAA+B/B,EAAc,4ECKpE,MAkBA,EAlBoF0G,IAQ/E,IARgF,GACjFnI,EAAE,UACFwD,EAAS,KACT5D,EAAI,UACJ0G,EAAS,iBACTnE,EAAgB,SAChBsU,EAAQ,QACRC,GACHvO,EACG,MAAMK,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBvC,GACvDoJ,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAC7D,OACItJ,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAAC/B,GAAIA,EAAIwD,UAAWA,EAAS,aAAc8C,EAAWmQ,SAAUA,EAAUC,QAASA,GAAa1N,GAClGpJ,EACI,6ECjBjB,MAUA,EAVuFuI,IAA8C,IAA7C,GAAEnI,EAAE,UAAEwD,EAAS,KAAEwD,EAAO,OAAM,QAAEvF,GAAS0G,EAC7H,MAAMmtB,EAAiB,GAAG9xB,MAAcwD,UAExC,OACI9H,EAAAA,cAAA,OAAKc,GAAIA,EAAIwD,UAAWC,IAAW6xB,EAAgB,QAAS,GAAGtuB,UAAcsC,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHpK,EAAAA,cAAA,KAAGsE,UAAW,GAAG8xB,UAAwB7zB,GACvC,iECOd,MAAMszB,EAAgB7tB,IAClB,GAAIA,EAAW,CACX,MAAMquB,EAAkB5lB,OAAOC,SAAS1I,EAAW,IACnD,IAAKwI,MAAM6lB,GACP,OAAOA,CAAe,CAId,EAwBpB,EArBuFptB,IAAA,IAAC,GACpFnI,EAAE,KACFgH,EAAI,MACJlH,EAAK,QACLqH,EAAO,UACP3D,EAAS,UACT0D,EAAS,SACTQ,GACHS,EAAA,OACGjJ,EAAAA,cAAA,SACIc,GAAIA,EACJgH,KAAMA,EACNlH,MAAOA,EACP0D,UAAW,GAAGA,WAAmBA,KAAaxD,IAC9CmH,QAAqB,KAAZA,EAAiBA,OAAUJ,EAAS,gBAC/B,OACdG,UAAW6tB,EAAa7tB,GACxBQ,SAAUA,GACZ,2DC3CN,MAMA,EANkFS,IAAA,IAAC,GAAEnI,EAAE,MAAEuH,EAAK,UAAE/D,EAAS,KAAE5D,GAAMuI,EAAA,OAC7GjJ,EAAAA,cAAA,SAAOc,GAAI,GAAGA,UAAYwD,UAAW,GAAGA,UAAmB0xB,QAAS3tB,GAC/D3H,EACG,2DCNZ,MAIA,EAJ8FuI,IAAA,IAAC,UAAE3E,GAAW2E,EAAA,OACxGjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,mBAA6B,2DCApD,MAIA,EAJoG2E,IAAA,IAAC,UAAE3E,EAAS,QAAE/B,GAAS0G,EAAA,OACvHjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,sBAA+B/B,EAAc,6ECEpE,MAUA,EAVsF0G,IAA8C,IAA7C,GAAEnI,EAAE,UAAEwD,EAAS,KAAEwD,EAAO,OAAM,QAAEvF,GAAS0G,EAC5H,MAAMglD,EAAmB,GAAG3pD,MAAcwD,YAE1C,OACI9H,EAAAA,cAAA,QAAMc,GAAIA,EAAIwD,UAAWC,IAAW0pD,EAAkB,GAAGnmD,UAAcsC,KAAK,QAAO,YAAW,YAAW,cAAa,QAClHpK,EAAAA,cAAA,KAAGsE,UAAW,GAAG2pD,UAA0B1rD,GACxC,2DCRf,MAEA,EAF2D0G,IAAA,IAAC,UAAE3E,EAAS,KAAE5D,GAAMuI,EAAA,OAAKjJ,EAAAA,cAAA,QAAMsE,UAAWA,GAAY5D,EAAY,iECD7H,MAIA,EAJiFuI,IAAA,IAAC,YAAEC,GAAaD,EAAA,OAC7FjJ,EAAAA,cAAA,KAAGsE,UAAU,wCAAwC4E,EAAgB,iECAzE,MAIA,EAJyED,IAAA,IAAC,UAAE3E,EAAS,YAAE4E,GAAaD,EAAA,OAChGjJ,EAAAA,cAAA,KAAGsE,UAAWA,GAAY4E,EAAgB,4ECI9C,MAUA,EAV4DD,IAA4E,IAA3E,GAAEnI,EAAE,UAAEwD,EAAS,KAAE5D,EAAI,UAAE0G,EAAS,SAAEmQ,EAAQ,iBAAEtU,EAAgB,QAAEuU,GAASvO,EAChI,MAAMK,GAAUC,EAAAA,EAAAA,kBAAiB,QAAStG,EAAmBvC,GACvDoJ,GAAaC,EAAAA,EAAAA,wBAAuB9G,EAAmBqG,GAC7D,OACItJ,EAAAA,cAACkX,EAAAA,OAAMtU,OAAAC,OAAA,CAAC/B,GAAIA,EAAIwD,UAAWA,EAAS,aAAc8C,EAAWmQ,SAAUA,EAAUC,QAASA,GAAa1N,GAClGpJ,EACI,6ECTjB,MAUA,EAV+DuI,IAA8C,IAA7C,GAAEnI,EAAE,UAAEwD,EAAS,KAAEwD,EAAO,OAAM,QAAEvF,GAAS0G,EACrG,MAAMmtB,EAAiB,GAAG9xB,MAAcwD,UAExC,OACI9H,EAAAA,cAAA,OAAKc,GAAIA,EAAIwD,UAAWC,IAAW6xB,EAAgB,QAAS,GAAGtuB,UAAcsC,KAAK,QAAO,YAAW,YAAW,cAAa,QACxHpK,EAAAA,cAAA,KAAGsE,UAAW,GAAG8xB,UAAwB7zB,GACvC,iECOd,MAAMszB,EAAgB7tB,IAClB,GAAIA,EAAW,CACX,MAAMquB,EAAkB5lB,OAAOC,SAAS1I,EAAW,IACnD,IAAKwI,MAAM6lB,GACP,OAAOA,CAAe,CAId,EAgBpB,EAb+DptB,IAAA,IAAC,GAAEnI,EAAE,KAAEgH,EAAI,MAAElH,EAAK,QAAEqH,EAAO,UAAE3D,EAAS,UAAE0D,EAAS,SAAEQ,GAAUS,EAAA,OACxHjJ,EAAAA,cAAA,SACIc,GAAIA,EACJgH,KAAMA,EACNlH,MAAOA,EACP0D,UAAW,GAAGA,WAAmBA,KAAaxD,IAC9CmH,QAAqB,KAAZA,EAAiBA,OAAUJ,EAAS,gBAC/B,OACdG,UAAW6tB,EAAa7tB,GACxBQ,SAAUA,GACZ,2DCnCN,MAMA,EAN0DS,IAAA,IAAC,GAAEnI,EAAE,MAAEuH,EAAK,UAAE/D,EAAS,KAAE5D,GAAMuI,EAAA,OACrFjJ,EAAAA,cAAA,SAAOc,GAAI,GAAGA,UAAYwD,UAAW,GAAGA,UAAmB0xB,QAAS3tB,GAC/D3H,EACG,2DCNZ,MAEA,EAFsEuI,IAAA,IAAC,UAAE3E,GAAW2E,EAAA,OAAKjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,mBAA6B,2DCCzI,MAIA,EAJ4E2E,IAAA,IAAC,UAAE3E,EAAS,QAAE/B,GAAS0G,EAAA,OAC/FjJ,EAAAA,cAAA,OAAKsE,UAAW,GAAGA,sBAA+B/B,EAAc","sources":["webpack://lds-commerce/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://lds-commerce/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://lds-commerce/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://lds-commerce/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://lds-commerce/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://lds-commerce/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://lds-commerce/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://lds-commerce/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://lds-commerce/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://lds-commerce/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://lds-commerce/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://lds-commerce/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://lds-commerce/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://lds-commerce/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://lds-commerce/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://lds-commerce/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://lds-commerce/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://lds-commerce/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://lds-commerce/./src/modules/account-profile/account-profile.tsx?fe69","webpack://lds-commerce/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://lds-commerce/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://lds-commerce/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://lds-commerce/./src/modules/password-reset/password-reset.tsx?0983","webpack://lds-commerce/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://lds-commerce/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://lds-commerce/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://lds-commerce/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://lds-commerce/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://lds-commerce/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://lds-commerce/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://lds-commerce/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://lds-commerce/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://lds-commerce/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://lds-commerce/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://lds-commerce/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://lds-commerce/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://lds-commerce/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://lds-commerce/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://lds-commerce/./src/modules/content-block/components/links.tsx?abbf","webpack://lds-commerce/./src/modules/content-block/content-block.tsx?3084","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://lds-commerce/./src/modules/social-share/social-share.tsx?899b","webpack://lds-commerce/./src/modules/lds-store-locator/lds-store-locator.tsx?d4fe","webpack://lds-commerce/./src/modules/lds-store-locator/components/timeHelper.ts?a7b1","webpack://lds-commerce/./src/modules/lds-store-locator/components/StoreLocationSelector.tsx?1778","webpack://lds-commerce/./src/modules/lds-store-locator/components/StoreLocatorTable.tsx?9224","webpack://lds-commerce/./src/modules/lds-store-locator/lds-store-locator.view.tsx?3f3c","webpack://lds-commerce/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://lds-commerce/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://lds-commerce/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://lds-commerce/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://lds-commerce/./src/modules/content-block/content-block.view.tsx?1773","webpack://lds-commerce/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://lds-commerce/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://lds-commerce/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://lds-commerce/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://lds-commerce/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://lds-commerce/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://lds-commerce/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://lds-commerce/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://lds-commerce/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980"],"sourcesContent":["/*!\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\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\nexport default AccountWelcomeTile;\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 MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst 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\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\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 defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\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 } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\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 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 B2bRequestsTile;\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\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 { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\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: !this.props.context.request.params.isEditor && 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 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 {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\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 {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 * 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 * 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 { isChannelTypeB2B } 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\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\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 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 = 20;\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 {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} 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 this.getDescription(customerInformation),\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 getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\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 && heading.text && (\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 if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\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 } 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 { 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 { 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 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 { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\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 { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.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: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\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 {\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, { IRequestContext, getUrlSync } 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, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\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: showBecomeSellerLink ? (\n \n ) : (\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 hasActionError: false,\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 this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\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, hasActionError } = 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 hasActionError && (\n \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 _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\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 * 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 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n\n let contentBlockImageSettings: Msdyn365.IImageSettings | undefined;\n\n if (image && image.imageSettings && !image.imageSettings.backgroundColor && this.props.config.backgroundColor) {\n contentBlockImageSettings = {\n ...image?.imageSettings,\n backgroundColor: this.props.config.backgroundColor\n };\n } else {\n contentBlockImageSettings = image?.imageSettings;\n }\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: contentBlockImageSettings\n };\n\n const contentBlockImage = (\n \n );\n\n const contentBlockContainerStyle: React.CSSProperties | undefined = this.props.config.backgroundColor\n ? { backgroundColor: this.props.config.backgroundColor }\n : undefined;\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className),\n style: contentBlockContainerStyle\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\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._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\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 this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\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\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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\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 || !ArrayExtensions.hasElements(slots.socialShareItems)) {\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 && !this.props.context.request.params.isEditor) {\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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { ILdsStoreLocatorData } from './lds-store-locator.data';\r\nimport { ILdsStoreLocatorProps } from './lds-store-locator.props.autogenerated';\r\n\r\nexport interface ILdsStoreProps extends ILdsStoreLocatorProps {}\r\n\r\n/**\r\n *\r\n * LdsContactUs Component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LdsContactUs extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default LdsContactUs;\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 { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\n\r\n// import { IStoreSelectorLocationLineItemResources } from './timeHelperData';\r\n\r\ninterface IStoreSelectorLocationLineItemResources {\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n\r\n closedText: string;\r\n\r\n outOfStock: string;\r\n inStock: string;\r\n\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `CLOSEDON${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OPENTIME`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CLOSETIME`, undefined)\r\n };\r\n};\r\n\r\nlet closedText: string;\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom} – ${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'MONDAY');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'TUESDAY');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'WEDNESDAY');\r\n const thursdayHours = getStoreHoursData(storeHours, 'THURSDAY');\r\n const fridayHours = getStoreHoursData(storeHours, 'FRIDAY');\r\n const saturdayHours = getStoreHoursData(storeHours, 'SATURDAY');\r\n const sundayHours = getStoreHoursData(storeHours, 'SUNDAY');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","import React from 'react';\r\nimport { ICountryLanguageEntity, IChurchGlobalStoreLocatorInformation } from '../../../actions/DataServiceEntities.g';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\n\r\ninterface StoreLocationProps {\r\n storeRegion: string;\r\n handleChange: any;\r\n state: string;\r\n handleClick: any;\r\n regionList: ICountryLanguageEntity[] | undefined;\r\n displayState: boolean;\r\n stateList: Object[];\r\n resources: any;\r\n regionStores: IChurchGlobalStoreLocatorInformation[];\r\n}\r\n\r\nexport const StoreLocationSelector: React.FC = ({\r\n storeRegion,\r\n handleChange,\r\n handleClick,\r\n state,\r\n regionList,\r\n displayState,\r\n stateList,\r\n resources,\r\n regionStores\r\n}) => {\r\n if (regionStores && regionStores[0] !== undefined) {\r\n return (\r\n
\r\n
\r\n \r\n handleChange(e.target.value)}\r\n >\r\n \r\n {regionList ? (\r\n regionList.map(region => {\r\n return (\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n {displayState ? (\r\n
\r\n \r\n \r\n
\r\n ) : null}\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n};\r\n","import React from 'react';\r\nimport { IChurchGlobalStoreLocatorInformation } from '../../../actions/DataServiceEntities.g';\r\nimport { IHoursDisplayInfo } from './timeHelper';\r\n\r\ninterface StoreLocatorTableProps {\r\n regionStores: IChurchGlobalStoreLocatorInformation[];\r\n storeHours: IHoursDisplayInfo[][] | undefined;\r\n resources: any;\r\n}\r\n\r\nexport const StoreLocatorTable: React.FC = ({ regionStores, storeHours, resources }) => {\r\n if (regionStores && regionStores[0] !== undefined && storeHours !== undefined) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {regionStores && regionStores[0] !== undefined && storeHours !== undefined\r\n ? regionStores.map((store, index) => {\r\n const storeIndex = index;\r\n return (\r\n \r\n \r\n \r\n \r\n {storeHours[0] ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })\r\n : null}\r\n
{resources.storeLocatorTableHeader}{resources.storeLocatorTableHeaderHours}
{resources.storeLocatorTableHeader}\r\n
\r\n
{store.NAME}
\r\n
\r\n {store.STREET}\r\n {store.STREETNUMBER !== '' ? `, ${store.STREETNUMBER}` : ''}\r\n
\r\n
{store.DISTRICTNAME}
\r\n
{`${store.CITY}, ${store.STATE} ${store.ZIPCODE}`}
\r\n
{store.PHONE}
\r\n
\r\n
{resources.storeLocatorTableHeaderHours}\r\n
{resources.storeLocatorStoreHoursMessage}
\r\n \r\n
\r\n {/* eslint-disable-next-line security/detect-object-injection */}\r\n {storeHours[storeIndex]\r\n ? /* eslint-disable-next-line security/detect-object-injection */\r\n storeHours[storeIndex].map((hours, index) => {\r\n return (\r\n <>\r\n
\r\n {hours.endDayFull\r\n ? `${hours.startDayFull} - ${hours.endDayFull}`\r\n : `${hours.startDayFull}`}{' '}\r\n {hours.timeRange\r\n ? `${hours.timeRange}`\r\n : resources.storeHoursClosedText}\r\n
\r\n {/*
{hours.timeRange ? `${hours.timeRange}` : 'Closed'}
*/}\r\n \r\n );\r\n })\r\n : null}\r\n
\r\n {' '}\r\n
\r\n \r\n );\r\n } else {\r\n return <>;\r\n }\r\n};\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 React, { useState, useEffect } from 'react';\r\n\r\n//@ts-ignore\r\nimport { Primary } from '@churchofjesuschrist/eden-buttons';\r\nimport { ILdsStoreProps } from './lds-store-locator';\r\nimport { IChurchGlobalStoreLocatorInformation, ICountryLanguageEntity } from '../../actions/DataServiceEntities.g';\r\n\r\nimport { IStoreSelectorLocationLineItemResources } from './components/timeHelperData';\r\nimport { IHoursDisplayInfo, buildStoreHours } from './components/timeHelper';\r\nimport { StoreLocationSelector } from './components/StoreLocationSelector';\r\nimport { StoreLocatorTable } from './components/StoreLocatorTable';\r\n\r\nimport { getStoreHoursAsync } from '../../actions/DataActionExtension.g';\r\n\r\nconst LdsStoreLocatorView: React.FC = props => {\r\n const StatesDefaultList = [\r\n { name: 'Alabama', abbreviation: 'AL' },\r\n { name: 'Alaska', abbreviation: 'AK' },\r\n { name: 'Arizona', abbreviation: 'AZ' },\r\n { name: 'Arkansas', abbreviation: 'AR' },\r\n { name: 'California', abbreviation: 'CA' },\r\n { name: 'Colorado', abbreviation: 'CO' },\r\n { name: 'Connecticut', abbreviation: 'CT' },\r\n { name: 'Delaware', abbreviation: 'DE' },\r\n { name: 'Florida', abbreviation: 'FL' },\r\n { name: 'Georgia', abbreviation: 'GA' },\r\n { name: 'Hawaii', abbreviation: 'HI' },\r\n { name: 'Idaho', abbreviation: 'ID' },\r\n { name: 'Illinois', abbreviation: 'IL' },\r\n { name: 'Indiana', abbreviation: 'IN' },\r\n { name: 'Iowa', abbreviation: 'IA' },\r\n { name: 'Kansas', abbreviation: 'KS' },\r\n { name: 'Kentucky', abbreviation: 'KY' },\r\n { name: 'Louisiana', abbreviation: 'LA' },\r\n { name: 'Maine', abbreviation: 'ME' },\r\n { name: 'Maryland', abbreviation: 'MD' },\r\n { name: 'Massachusetts', abbreviation: 'MA' },\r\n { name: 'Michigan', abbreviation: 'MI' },\r\n { name: 'Minnesota', abbreviation: 'MN' },\r\n { name: 'Mississippi', abbreviation: 'MS' },\r\n { name: 'Missouri', abbreviation: 'MO' },\r\n { name: 'Montana', abbreviation: 'MT' },\r\n { name: 'Nebraska', abbreviation: 'NE' },\r\n { name: 'Nevada', abbreviation: 'NV' },\r\n { name: 'New Hampshire', abbreviation: 'NH' },\r\n { name: 'New Jersey', abbreviation: 'NJ' },\r\n { name: 'New Mexico', abbreviation: 'NM' },\r\n { name: 'New York', abbreviation: 'NY' },\r\n { name: 'North Carolina', abbreviation: 'NC' },\r\n { name: 'North Dakota', abbreviation: 'ND' },\r\n { name: 'Ohio', abbreviation: 'OH' },\r\n { name: 'Oklahoma', abbreviation: 'OK' },\r\n { name: 'Oregon', abbreviation: 'OR' },\r\n { name: 'Pennsylvania', abbreviation: 'PA' },\r\n { name: 'Rhode Island', abbreviation: 'RI' },\r\n { name: 'South Carolina', abbreviation: 'SC' },\r\n { name: 'South Dakota', abbreviation: 'SD' },\r\n { name: 'Tennessee', abbreviation: 'TN' },\r\n { name: 'Texas', abbreviation: 'TX' },\r\n { name: 'Utah', abbreviation: 'UT' },\r\n { name: 'Vermont', abbreviation: 'VT' },\r\n { name: 'Virginia', abbreviation: 'VA' },\r\n { name: 'Washington', abbreviation: 'WA' },\r\n { name: 'West Virginia', abbreviation: 'WV' },\r\n { name: 'Wisconsin', abbreviation: 'WI' },\r\n { name: 'Wyoming', abbreviation: 'WY' }\r\n ];\r\n const [stateList, setStateList] = useState(StatesDefaultList);\r\n\r\n const [storeRegion, setStoreRegion] = useState('');\r\n const [regionList, setRegionList] = useState();\r\n const [state, setState] = useState('');\r\n const [displayState, setDisplayStates] = useState(false);\r\n const [regionStores, setRegionStores] = useState([]);\r\n const [storeHours, setStoreHours] = useState();\r\n const [filteredRegions, setFilteredRegions] = useState();\r\n const [storesFound, setStoresFound] = useState(true);\r\n\r\n const RegionList = props.data.countries?.result;\r\n let formattedStoreHours: any;\r\n const StoreHoursContext: IStoreSelectorLocationLineItemResources = {\r\n contactInfoHeader: props.resources.contactText,\r\n storeHoursHeader: props.resources.timeText,\r\n availabilityInfoHeader: props.resources.availabilityText,\r\n\r\n closedText: props.resources.storeHoursClosedText,\r\n outOfStock: props.resources.outOfStockText,\r\n inStock: props.resources.inStockText,\r\n\r\n currentLocation: props.resources.selectedStoreLocationText,\r\n selectLocation: props.resources.selectStoreText,\r\n selectLocationAriaLabelFormat: props.resources.selectStoreAriaFormatText,\r\n setAsPreferredStoreText: props.resources.setAsPreferredStoreText,\r\n setAsPreferredStoreTextAriaLabel: props.resources.setAsPreferredStoreTextAriaLabel,\r\n preferredStoreText: props.resources.preferredStoreText,\r\n preferredStoreAriaLabel: props.resources.preferredStoreAriaLabel,\r\n\r\n days: {\r\n monday: props.resources.storeHoursMondayText,\r\n tuesday: props.resources.storeHoursTuesdayText,\r\n wednesday: props.resources.storeHoursWednesdayText,\r\n thursday: props.resources.storeHoursThursdayText,\r\n friday: props.resources.storeHoursFridayText,\r\n saturday: props.resources.storeHoursSaturdayText,\r\n sunday: props.resources.storeHoursSundayText,\r\n mondayFull: props.resources.storeHoursMondayFullText,\r\n tuesdayFull: props.resources.storeHoursTuesdayFullText,\r\n wednesdayFull: props.resources.storeHoursWednesdayFullText,\r\n thursdayFull: props.resources.storeHoursThursdayFullText,\r\n fridayFull: props.resources.storeHoursFridayFullText,\r\n saturdayFull: props.resources.storeHoursSaturdayFullText,\r\n sundayFull: props.resources.storeHoursSundayFullText\r\n }\r\n };\r\n let StateSelectOptions: any = StatesDefaultList;\r\n const cart = props.data.cart?.result;\r\n const filterFunction = async () => {\r\n const storesWithHours = await getStoreHoursAsync({ callerContext: props.context.actionContext }, '0');\r\n if (storesWithHours && regionList) {\r\n const filteredRegions = regionList.filter(el => {\r\n return storesWithHours.some(f => {\r\n return f.COUNTRYREGIONID === el.countryRegionId;\r\n });\r\n });\r\n setFilteredRegions(filteredRegions);\r\n }\r\n };\r\n const getAvailableState = async () => {\r\n await handleChange('USA');\r\n setDisplayStates(true);\r\n StateSelectOptions = StatesDefaultList.filter(({ abbreviation: id1 }) => regionStores.some(({ STATE: id2 }) => id2 === id1));\r\n setStateList(StateSelectOptions);\r\n };\r\n\r\n useEffect(() => {\r\n if (cart && !storeRegion && cart.cart.ExtensionProperties) {\r\n const userCountry = cart.cart.ExtensionProperties?.find((x: any) => x.Key === 'Country')?.Value?.StringValue;\r\n setStoreRegion(userCountry);\r\n void handleChange(userCountry!);\r\n }\r\n if (storeRegion === 'USA' && !displayState) {\r\n void getAvailableState();\r\n } else if (storeRegion !== 'USA') {\r\n setDisplayStates(false);\r\n }\r\n\r\n if (RegionList && !filteredRegions) {\r\n const sortedRegions = RegionList.sort((a, b) =>\r\n a.CountryName! > b.CountryName! ? 1 : b.CountryName! > a.CountryName! ? -1 : 0\r\n );\r\n setRegionList(sortedRegions);\r\n void filterFunction();\r\n }\r\n\r\n if (regionStores.length >= 1) {\r\n formattedStoreHours = regionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n setStoreHours(formattedStoreHours);\r\n }\r\n if (!storesFound && filteredRegions && filteredRegions[0]) {\r\n void handleChange(filteredRegions[0].countryRegionId);\r\n }\r\n }, [storeRegion, regionStores, RegionList, storesFound, filteredRegions]);\r\n\r\n const handleChange = async (value: string) => {\r\n const getRegionStores = await getStoreHoursAsync({ callerContext: props.context.actionContext }, value);\r\n if (getRegionStores[0] !== undefined) {\r\n const sortedRegionStores = getRegionStores.sort((a: any, b: any) => {\r\n const compareStrings = (str1: any, str2: any) => {\r\n const trimmedStr1 = str1.startsWith('DS ') ? str1.slice(3) : str1.startsWith('Deseret Book ') ? str1.slice(13) : str1;\r\n const trimmedStr2 = str2.startsWith('DS ') ? str2.slice(3) : str2.startsWith('Deseret Book ') ? str2.slice(13) : str2;\r\n\r\n for (let i = 0; i < Math.min(trimmedStr1.length, trimmedStr2.length); i++) {\r\n const charCode1 = trimmedStr1.charCodeAt(i);\r\n const charCode2 = trimmedStr2.charCodeAt(i);\r\n\r\n if (charCode1 < charCode2) {\r\n return -1;\r\n } else if (charCode1 > charCode2) {\r\n return 1;\r\n }\r\n }\r\n\r\n if (trimmedStr1.length < trimmedStr2.length) {\r\n return -1;\r\n } else if (trimmedStr1.length > trimmedStr2.length) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n return compareStrings(a.NAME, b.NAME);\r\n });\r\n\r\n // formattedStoreHours = getRegionStores.map(store => {\r\n // return buildStoreHours(store, StoreHoursContext);\r\n // });\r\n formattedStoreHours = sortedRegionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n\r\n setStoreHours(formattedStoreHours);\r\n\r\n // setRegionStores(getRegionStores);\r\n setRegionStores(sortedRegionStores);\r\n setStoreRegion(value);\r\n setStoresFound(true);\r\n } else {\r\n setStoresFound(false);\r\n }\r\n };\r\n\r\n const handleClick = async (state: string) => {\r\n const getStores = await getStoreHoursAsync({ callerContext: props.context.actionContext }, storeRegion);\r\n setState(state);\r\n\r\n const filteredStores = state\r\n ? getStores.filter(store => {\r\n return store.STATE === state;\r\n })\r\n : null;\r\n let sortedRegionStores;\r\n if (filteredStores) {\r\n sortedRegionStores = filteredStores.sort((a: any, b: any) => {\r\n const compareStrings = (str1: any, str2: any) => {\r\n const trimmedStr1 = str1.startsWith('DS ') ? str1.slice(3) : str1.startsWith('Deseret Book ') ? str1.slice(13) : str1;\r\n const trimmedStr2 = str2.startsWith('DS ') ? str2.slice(3) : str2.startsWith('Deseret Book ') ? str2.slice(13) : str2;\r\n\r\n for (let i = 0; i < Math.min(trimmedStr1.length, trimmedStr2.length); i++) {\r\n const charCode1 = trimmedStr1.charCodeAt(i);\r\n const charCode2 = trimmedStr2.charCodeAt(i);\r\n\r\n if (charCode1 < charCode2) {\r\n return -1;\r\n } else if (charCode1 > charCode2) {\r\n return 1;\r\n }\r\n }\r\n\r\n if (trimmedStr1.length < trimmedStr2.length) {\r\n return -1;\r\n } else if (trimmedStr1.length > trimmedStr2.length) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n // Compare the strings using the custom comparison function\r\n return compareStrings(a.NAME, b.NAME);\r\n });\r\n }\r\n\r\n // if (filteredStores) {\r\n // formattedStoreHours = filteredStores.map(store => {\r\n // return buildStoreHours(store, StoreHoursContext);\r\n // });\r\n // setStoreHours(formattedStoreHours);\r\n // }\r\n if (sortedRegionStores) {\r\n formattedStoreHours = sortedRegionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n setStoreHours(formattedStoreHours);\r\n }\r\n\r\n // setRegionStores(filteredStores ? filteredStores : getStores);\r\n setRegionStores(sortedRegionStores ? sortedRegionStores : getStores);\r\n };\r\n\r\n const { storeLocatorHeader, storeLocatorMessage } = props.resources;\r\n\r\n return (\r\n
\r\n
\r\n <>\r\n

{storeLocatorHeader}

\r\n

{storeLocatorMessage}

\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LdsStoreLocatorView;\r\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 { 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 { 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 { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\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, StringExtensions } 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.cart?.hasInvoiceLine || 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, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\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 {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\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 { 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 { 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 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 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\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 { 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"],"names":["AccountProfileEdit","React","constructor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","text","target","value","onTextBoxChange","id","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","resources","invalidEmailAddressError","map","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","Object","assign","EmailRegex","defaultRegex","source","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","render","viewProps","_objectSpread","viewState","isShowLoading","accountProfileEdit","moduleProps","className","classnames","loading","modal","tag","Modal","isOpen","modalBody","ModalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","Msdyn365","editProps","onEdit","requestContext","accountProfileEditLocalAccount","_renderLocalAccount","renderView","str","e","document","createElement","innerHTML","childNodes","length","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","key","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","push","emailAddressLabelText","undefined","type","labelText","maxLength","pattern","wrapper","label","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","onChange","__decorate","observable","observer","AccountWelcomeTile","accountInfo","accountInformation","result","FirstName","_ref","description","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","link","index","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","links","onTextChange","AccountWishlistTile","handleLinkTextChange","linkIndex","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","format","LinksComponent","DescriptionComponent","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","date","cultureFormatter","year","month","day","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","item","isMobile","mobileExcludedColumns","includes","name","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","isNaN","Number","parseInt","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","MsDyn365","isBrowser","URL","location","href","requestUrl","isSingleSelectOnly","actions","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","Heading","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","isChannelTypeB2B","actionContext","b2bRequestsStatus","table","computed","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","AccountProfileEditItem","Node","AccountProfileEditLoading","_ref3","Module","_ref2","error","button","LocalAccount","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","setState","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","Button","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","disabled","onClick","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","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","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","toFixed","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","hasError","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","split","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","ref","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","innerRef","editRef","title","_saveAttributes","_disableAttributes","phoneSectionHeading","_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","isNullOrWhitespace","attributePayloadData","isMandatory","current","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","AccountNumber","updateCustomerAttributes","initialCustomerAttributes","exception","element","focus","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","editButtonAriaLabel","shouldRenderAttributes","editLink","get","accountProfileWrapper","emailSection","_renderEmailSection","Email","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","editProfileUrl","LastName","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleTextChange","handleParagraphChange","paragraph","handleSubmit","orderNumber","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","redirectUrl","searchParameters","searchParams","set","fieldName","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_heading$tag","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","onSubmit","orderNumberInput","submitButton","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","callerContext","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","FormInput","isRequired","fieldReference","placeholder","GetMaxLength","FormLabel","asteriskText","htmlFor","FormButton","FormFieldError","_ref4","errorClassName","parsedMaxLength","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","formType","Add","referenceBack","addUserButtonReference","isModalOpen","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_promoteToSeller","promoteToSellerUrl","getUrlSync","_requestStatement","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","_toggleModal","bind","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","canSubmitStatementRequest","selectedUserName","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","requestStatementModal","RequestStatementModal","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","modalHeaderLabel","onSubmitRequest","selectedUser","selectedOrganizationLabel","modalAriaLabel","maxDateString","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","IsB2bAdmin","CatalogPicker","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","assembleNode","itemIndex","_item$links","headingNode","renderHeading","additionalContentHeading","handleAdditionalTextChange","paragraphNode","subtext","renderParagraph","additionalContentParagraphText","linksNode","ctaLink","renderLinks","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","btnClass","onTelemetryClick","ContentBlock","_this$props$context$r","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","backgroundColor","imageProps","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockContainerStyle","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","viewport","navigationMenuSource","menuItemList","static","locale","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","viewports","q","h","xl","lazyload","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","_getCMSNestedChildren","Cms","shouldOpenNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","SocialShare","slots","socialShareItems","cookies","isConsentGiven","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","LdsContactUs","secondsToTime","seconds","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","buildStoreHoursString","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","StoreLocationSelector","storeRegion","handleChange","handleClick","regionList","displayState","stateList","regionStores","storeLocatorCountryLabel","defaultDropdown","region","countryRegionId","Id","CountryName","storeLocatorStateLabel","defalutDropdown","abbreviation","width","justifyContent","Waiting","StoreLocatorTable","storeLocatorTableHeader","storeLocatorTableHeaderHours","store","storeIndex","NAME","STREET","STREETNUMBER","DISTRICTNAME","CITY","STATE","ZIPCODE","PHONE","padding","storeLocatorStoreHoursMessage","flexDirection","storeHoursClosedText","_props$data$countries","_props$data$cart","StatesDefaultList","setStateList","useState","setStoreRegion","setRegionList","setDisplayStates","setRegionStores","setStoreHours","filteredRegions","setFilteredRegions","storesFound","setStoresFound","RegionList","countries","formattedStoreHours","StoreHoursContext","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityInfoHeader","availabilityText","closedText","outOfStock","outOfStockText","inStock","inStockText","currentLocation","selectedStoreLocationText","selectLocation","selectStoreText","selectLocationAriaLabelFormat","selectStoreAriaFormatText","setAsPreferredStoreText","setAsPreferredStoreTextAriaLabel","preferredStoreText","preferredStoreAriaLabel","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","StateSelectOptions","cart","useEffect","_cart$cart$ExtensionP","userCountry","x","Key","id1","id2","getAvailableState","sortedRegions","sort","a","b","storesWithHours","getStoreHoursAsync","el","f","COUNTRYREGIONID","filterFunction","getRegionStores","sortedRegionStores","compareStrings","str1","str2","trimmedStr1","startsWith","slice","trimmedStr2","i","min","charCode1","charCodeAt","charCode2","storeLocatorHeader","storeLocatorMessage","getStores","filteredStores","BusinessFormItem","BusinessUserForm","modalFooter","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","autoFocus","fade","applicationNode","ModalHeader","ModalFooter","ButtonList","_getForm","formProps","CatalogPickerViewFunctionComponent","renderAdditionalContent","_additionalContent$ad","_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","errors","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","payInvoicesDisplayText","groupTitle","IsInvoiceLine","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_ref8","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","moreButton","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","body","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","SocialShareView","SocialShareElement","successClassName"],"sourceRoot":""}