{"version":3,"file":"static/js/19.31934044818cb398b5bc.chunk.js","mappings":";kIAAO,IAAKA,EAsBAC,EAOAC,EAOAC,EASAC,EASAC,EAMAC,0EA5DZ,SAAYN,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,uCACAA,EAAAA,EAAA,iDACAA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,gCACAA,EAAAA,EAAA,cACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,kBACAA,EAAAA,EAAA,kBAEAA,EAAAA,EAAA,sBAnBJ,CAAYA,IAAAA,EAAY,KAsBxB,SAAYC,GACRA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,4BACAA,EAAAA,EAAA,gBACAA,EAAAA,EAAA,8BACAA,EAAAA,EAAA,sBALJ,CAAYA,IAAAA,EAAiB,KAO7B,SAAYC,GACRA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,sBALJ,CAAYA,IAAAA,EAAiB,KAO7B,SAAYC,GACRA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,uCACAA,EAAAA,EAAA,iDACAA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,2BACAA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,eAPJ,CAAYA,IAAAA,EAA8B,KAS1C,SAAYC,GACRA,EAAAA,EAAA,eACAA,EAAAA,EAAA,cACAA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,wBACAA,EAAAA,EAAA,gCACAA,EAAAA,EAAA,wBANJ,CAAYA,IAAAA,EAA4B,KASxC,SAAYC,GACRA,EAAAA,EAAA,kBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,sBAHJ,CAAYA,IAAAA,EAAuB,KAMnC,SAAYC,GACRA,EAAA,kDACAA,EAAA,kEACAA,EAAA,gEAHJ,CAAYA,IAAAA,EAAwB,yKChCpC,MAiQMC,EAAqBC,GAEnBC,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKJ,EAAWK,yBAChBL,EAAWM,iBACXN,EAAWO,oBACXP,EAAWQ,kBAMtBC,EAAmBA,CACrBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,KAC6B,IAAAC,EAC7B,MAAM,cACFC,EAAa,oBACbC,EAAmB,mBACnBC,EAAkB,yBAClBC,EAAwB,wBACxBC,EAAuB,iBACvBC,EAAgB,gBAChBC,EAAe,eACfC,EAAc,kBACdC,EAAiB,kBACjBC,EAAiB,yBACjBC,GACAxB,GACE,wBAAEyB,EAAuB,kBAAEC,EAAiB,uBAAEC,GAAwC,QAAhBd,EAAGf,EAAM8B,eAAO,IAAAf,OAAA,EAAbA,EAAegB,QAAQC,IAAIC,OACpGC,EAAcA,KAChB,MAAMC,EAAc,GAAGnC,EAAM8B,QAAQC,QAAQK,KAAKC,sCAClDC,aAAaC,QAAQJ,EAAaK,KAAKC,UAAUlC,KAE/CmC,EAAuBC,IACzB,MAAMC,EAAOD,EAAEE,OAAOD,KAChBE,EAAQH,EAAEE,OAAOC,MACjBC,EAAQxC,EAAayC,MAAKD,GAASA,EAAMH,OAASA,IACxDG,EAAME,YAAcH,EAChBpC,EAAmBoC,IACnBC,EAAMG,kBAAoB,GAC1BH,EAAMI,mBAAoB,IAE1BJ,EAAMG,kBACe,IAAjBJ,EAAMM,OACAL,EAAMM,UACFlC,EACAF,EACJ8B,EAAMM,UACNjC,EACAF,EACV6B,EAAMI,mBAAoB,GAE9B3C,EAAgB,IAAID,IACpB,MAAM+C,EAAa/C,EAAayC,MAAKO,IAA6B,IAAxBA,EAAEJ,qBACN,KAAlCG,MAAAA,OAAU,EAAVA,EAAYH,mBACZ1C,GAAmB,GAEnBA,GAAmB,IAI3B,GAAIJ,EACA,OAAOd,EAAAA,cAAAA,EAAAA,SAAA,KAAGc,GAEd,GAAIJ,EACA,OAAOA,EAAUuD,KAAI,CAACC,EAAUC,KAAS,IAAAC,EAAAC,EAAAC,EAAAC,EACrC,MAAMC,GAEW,QAAbJ,EAAAF,EAASO,YAAI,IAAAL,GAA0B,QAA1BA,EAAbA,EAAeM,SAASC,uBAAe,IAAAP,GAAqD,QAArDA,EAAvCA,EAAyCX,MAAKmB,GAAQA,EAAKC,OAASzC,WAAwB,IAAAgC,OAAA,EAA5FA,EAA8FU,YAAa,GACzGC,GAEW,QAAbV,EAAAH,EAASO,YAAI,IAAAJ,GAA0B,QAA1BA,EAAbA,EAAeK,SAASC,uBAAe,IAAAN,GAA+C,QAA/CA,EAAvCA,EAAyCZ,MAAKmB,GAAQA,EAAKC,OAASxC,WAAkB,IAAAgC,OAAA,EAAtFA,EAAwFS,YAAa,GACnGE,GAEW,QAAbV,EAAAJ,EAASO,YAAI,IAAAH,GAA0B,QAA1BA,EAAbA,EAAeI,SAASC,uBAAe,IAAAL,GAAoD,QAApDA,EAAvCA,EAAyCb,MAAKmB,GAAQA,EAAKC,OAASvC,WAAuB,IAAAgC,OAAA,EAA3FA,EAA6FQ,YAAa,GACxGzB,EAAO,GAAGtB,IAAkBmC,EAASe,aACrCC,EAAU,GAAGnD,IAAkBmC,EAASe,eACxCvB,EAAc1C,EAAayC,MAAKD,GAASA,EAAMH,OAASA,IACxDS,EAAYJ,MAAAA,OAAW,EAAXA,EAAaI,UACzBqB,EAAoBX,EAAeY,SAAS,MAC5CZ,EACKa,MAAM,MACNpB,KAAKqB,GAAgBA,MAAAA,OAAG,EAAHA,EAAKC,OAAOC,gBACjCC,KAAK,KACVjB,EAAegB,cACfE,EAAeV,KAAgBrF,EAAAA,GAA+D,QAAnC4E,EAAGQ,EAAkBM,MAAM,MAAM,UAAE,IAAAd,OAAA,EAAhCA,EAAkCgB,YAASI,EAE/G,OACI3F,EAAAA,cAAA,OAAK4F,UAAU,sBAAsBC,IAAK1B,GACrCD,EAASQ,SACTS,GAAanF,EAAAA,cAAA,OAAK4F,UAAU,cAAc,GAAG5D,KAAkBmD,KAC/DO,GAAgB1F,EAAAA,cAAA,OAAK4F,UAAU,cAAc,GAAG3D,KAAqByD,KACrErE,EAAiB,KAAOyE,EAAkB5B,EAAUvD,EAAWC,EAAeQ,EAAkBE,GAChGC,GAAmBuC,EAChB9D,EAAAA,cAAA,OAAK4F,UAAU,0BACX5F,EAAAA,cAAA,SAAO+F,QAAS1C,GACXS,EAAY5B,EAAoBJ,EACjC9B,EAAAA,cAAA,QAAM4F,UAAU,WAAWzD,IAE/BnC,EAAAA,cAAA,SACI4F,UAAW,aACXvC,KAAMA,EACN2C,GAAI3C,EAAI,mBACU6B,EAClB3B,MAAOG,MAAAA,OAAW,EAAXA,EAAaA,YACpBuC,SAAU9C,EACV+C,UAAWC,SAAS1F,EAAMiC,OAAO0D,sBACjCC,UAAWF,SAAS1F,EAAMiC,OAAO4D,sBACjCC,OAAQ5D,IAEZ3C,EAAAA,cAAA,QAAMgG,GAAId,EAASU,UAAU,yBACU,KAAlClC,MAAAA,OAAW,EAAXA,EAAaC,mBAA0BD,MAAAA,OAAW,EAAXA,EAAaC,kBAAoB,OAGjF,KACHtC,EACGrB,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,sCACXY,EAAuBtC,EAAUvD,EAAWC,EAAeQ,EAAkBE,GAC7E4C,EAASuC,QAEdvC,EAASwC,mBACT1G,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,gCAAgC1B,EAASuC,QAEzDzG,EAAAA,cAAAA,EAAAA,SAAA,KAAGkE,EAASuC,YAKzB,CAEH,MAAME,GAAoBC,EAAAA,EAAAA,IAAW,OAAQnG,EAAM8B,QAAQsE,gBAAkB,IACvE,mCAAEC,GAAuCnG,EACzCoG,EACF/G,EAAAA,cAACgH,EAAAA,OAAM,CAACpB,UAAU,+BAA+BqB,KAAMN,EAAmBO,MAAOJ,GAC5EA,GAIT,OAAO/F,EACHf,EAAAA,cAAA,OAAK4F,UAAU,wBACX5F,EAAAA,cAAA,KAAG4F,UAAU,iBAAiBnE,GAC7BsF,GAGL/G,EAAAA,cAAAA,EAAAA,SAAA,KAAGa,KAKTiF,EAAoBA,CACtB5B,EACAvD,EACAC,EACAQ,EACAE,KACoB,IAAA6F,EAEpB,IAAKjD,EAASkD,gBAAkBxG,IAA8B,QAAbuG,EAAAjD,EAASO,YAAI,IAAA0C,OAAA,EAAbA,EAAezC,SAAS2C,gBAAiB/F,EACtF,OAAO,KAGX,MAAM,uBACFgG,EAAsB,yBACtBC,EAAwB,oBACxBC,EAAmB,8BACnBC,EAA6B,uBAC7BC,GACA/G,EAEEgH,EAAkBzD,EAASkD,cAAcO,gBAOzCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAmB0G,EAAAA,kBAAkBC,eACzEC,GAAyBC,EAAAA,EAAAA,wBAAuB7G,EAAmBwG,GAEzE,OACI5H,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK+D,EAASkD,cAAcc,gBAC7BlI,EAAAA,cAAA,OAAK4F,UAAU,+BACV+B,EACG3H,EAAAA,cAAA,QAAM4F,UAAU,WAAW6B,GAE3BzH,EAAAA,cAAA,QAAM4F,UAAU,QAAQ2B,IAG/BI,GACG3H,EAAAA,cAAA,OAAK4F,UAAU,oCACX5F,EAAAA,cAAA,QAAM4F,UAAU,0CAA0C1B,EAASkD,cAAce,aACjFnI,EAAAA,cAACgH,EAAAA,OAAM,CAACpB,UAAU,mCAAmCwC,QAlBhDC,GACVnE,EAASkD,eAAiBlD,EAASkD,cAAckB,UAAUC,aAAY,IAkB7Db,IAIb1H,EAAAA,cAACgH,EAAAA,OAAM9G,OAAAC,OAAA,CAACyF,UAAU,4BAA+BoC,EAAsB,CAAEI,QA1B5DC,GACVnE,EAASkD,eAAiBlD,EAASkD,cAAckB,UAAUC,aAAaZ,KA0BtEA,EAAkBL,EAAyBE,KAMtDgB,EAAqBC,GAClBA,GAAyC,IAA5BA,EAAUC,OAAO7E,OAI/B7D,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKsI,EAAUE,SACfF,EAAUG,OACVH,EAAUC,QALR,KAUTG,EAA2BA,CAC7BC,EACAC,EACAtI,IAEKqI,EAID9I,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4I,GACLtI,EAAMuI,UACNF,EAAkBG,SAClBH,EAAkBI,SAClBJ,EAAkBK,YAClBL,EAAkBM,IAClBN,EAAkBO,eAAiBP,EAAkBO,eAAiB,KACtEP,EAAkBQ,YAVhB,KAeTC,EAA6BA,CAC/BC,EACAT,EACAtI,IAEK+I,EAKDxJ,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4I,GACLS,EAAoBC,SACpBD,EAAoBE,SACpBF,EAAoBG,QACpBH,EAAoBF,aARzB7I,EAAM8B,QAAQqH,UAAUC,MAAM,uDACvB,MAYTC,EAAwBA,CAC1BrJ,EACAE,EACAY,EACAP,EACAC,EACAC,EACAC,KAEA,MAAM,cAAEM,GAAkBd,EACmC,IAAAoJ,EAA7D,OAAItJ,EAAMuJ,gBAAkBvJ,EAAMuJ,eAAenG,OAAS,EAElD7D,EAAAA,cAAA,OAAK4F,UAAU,wBACU,QADYmE,EAChCtJ,EAAMuJ,sBAAc,IAAAD,OAAA,EAApBA,EAAsB9F,KAAIgG,IAAY,IAAAC,EAEnC,OACIlK,EAAAA,cAAA,OAAK4F,UAAU,+BACVuE,EAA4BF,EAAU,GAAItJ,EAAWyJ,EAAYH,IACjEzJ,EACGC,EACAwJ,EACAxJ,EAAME,UACNF,EAAMG,cACNH,EAAMI,iBACNJ,EAAMK,kBACNL,EAAMM,eACNC,EACAC,EACAC,EACAC,EACAV,EAAMW,iBACNX,EAAM4J,sBAC4C,QADvBH,EAC3BzJ,EAAM8B,QAAQsE,cAAcyD,eAAeC,eAAO,IAAAL,OAAA,EAAlDA,EAAoDM,sBACpDjJ,QAQjBd,EAAMM,eACTf,EAAAA,cAAA,OAAK4F,UAAU,uBACX5F,EAAAA,cAAA,OAAK4F,UAAU,wBACX5F,EAAAA,cAAA,KAAG4F,UAAU,iBAAiBnE,GAC7BhB,EAAMgK,uBAIfzK,EAAAA,cAAAA,EAAAA,SAAA,KAAGS,EAAMI,mBAKfsJ,EAA8BA,CAACjG,EAA+BvD,EAA2B+J,KAAiB,IAAAC,EAC5G,MAAMhD,EAAkBzD,MAAAA,GAAuB,QAAfyG,EAARzG,EAAUkD,qBAAa,IAAAuD,OAAA,EAAvBA,EAAyBhD,iBAC3C,WAAEiD,EAAU,aAAEC,GAAiBlK,EACrC,OACIX,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAAA,OAAK4F,UAAU,8CACV+B,EACG3H,EAAAA,cAAA,KAAG4F,UAAU,2DAEb5F,EAAAA,cAAA,KAAG4F,UAAU,yDAEhB+B,EACG3H,EAAAA,cAAA,KAAG4F,UAAU,qDAAqDgF,GAElE5K,EAAAA,cAAA,KAAG4F,UAAU,mDAAmDiF,GAEnEC,EAA2B5G,EAAUvD,EAAW+J,MAM3DlE,EAAyBA,CAC3BtC,EACAvD,EACAC,EACAQ,EACAE,KACoB,IAAAyJ,EAEpB,IAAK7G,EAASkD,gBAAkBxG,IAA8B,QAAbmK,EAAA7G,EAASO,YAAI,IAAAsG,OAAA,EAAbA,EAAerG,SAAS2C,gBAAiB/F,EACtF,OAAO,KAGX,MAAM,uBAAEoG,EAAsB,uBAAEJ,EAAsB,oBAAEE,GAAwB7G,EAE1EgH,EAAkBzD,EAASkD,cAAcO,gBAOzCC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAmB0G,EAAAA,kBAAkBC,eACzEC,GAAyBC,EAAAA,EAAAA,wBAAuB7G,EAAmBwG,GAEzE,OACI5H,EAAAA,cAACA,EAAAA,SAAc,KACV2H,EACG3H,EAAAA,cAACgH,EAAAA,OAAM,CAACpB,UAAU,qCAAqCwC,QAT9CC,GACVnE,EAASkD,eAAiBlD,EAASkD,cAAckB,UAAUC,aAAY,IASjEb,GAEL,KACJ1H,EAAAA,cAACgH,EAAAA,OAAM9G,OAAAC,OAAA,CAACyF,UAAU,sCAAyCoC,EAAsB,CAAEI,QAhBtEC,GACVnE,EAASkD,eAAiBlD,EAASkD,cAAckB,UAAUC,aAAaZ,KAgBtEA,EAAkBL,EAAyBE,KAMtD4C,EAAelG,IACjB,IAAI8G,EAAY,EAIhB,OAHAA,EAAY9G,EAAS+G,QAAO,CAACP,EAAOQ,KAAQ,IAAAC,EACxC,OAAOT,IAAkB,QAATS,EAAAD,EAAKzG,YAAI,IAAA0G,OAAA,EAATA,EAAWzG,SAAS0G,WAAY,KACjD,GACIJ,GAGLF,EAA6BA,CAAC5G,EAA+BvD,EAA2B+J,KAAiB,IAAAW,EAAAC,EAAAC,EAC3G,MAAM5D,EAAkBzD,MAAAA,GAAuB,QAAfmH,EAARnH,EAAUkD,qBAAa,IAAAiE,OAAA,EAAvBA,EAAyB1D,iBAC3C,UAAE6D,EAAS,WAAEC,GAAe9K,EAC5B+K,EAAShB,EAAQ,EAAIe,EAAaD,EACxC,OACIxL,EAAAA,cAACA,EAAAA,SAAc,KACXA,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,oDACX+B,EACG3H,EAAAA,cAAA,KAAG4F,UAAU,uDACR1B,MAAAA,GAAuB,QAAfoH,EAARpH,EAAUkD,qBAAa,IAAAkE,OAAA,EAAvBA,EAAyBK,eACzB,KACAzH,MAAAA,GAAuB,QAAfqH,EAARrH,EAAUkD,qBAAa,IAAAmE,OAAA,EAAvBA,EAAyBpD,aAE9B,KAEAnI,EAAAA,cAAA,KAAG4F,UAAU,uDAAqD,IAC5D8E,EAAK,IAAGgB,EAAM,QAQxC,EAppBIjL,IACA,IAAAmL,EAAAC,EAAAC,EAAAC,EACA,MAAM,0BAAEC,EAAyB,wBAAEC,EAAuB,wBAAEC,EAAuB,YAAEC,GAAgB1L,EAAMiC,QACrG,WACF0J,EAAU,oBACVC,EAAmB,yBACnBC,EAAwB,aACxBC,EAAY,0BACZC,EAAyB,gBACzBzK,GACAtB,EAAME,WACHK,EAAcC,GAAmBjB,EAAAA,SAA+B,KACjE,0BAAEyM,EAAyB,4BAAEC,EAA2B,qBAAEC,GAAyBlM,EAAM8B,QAAQE,IAAIC,OACrGkK,EAAcnM,EAAMoM,MAAQpM,EAAMoM,KAAKA,KAAKC,WAAkD,IAArCrM,EAAMoM,KAAKA,KAAKC,UAAUjJ,QACnF,gBAAEkJ,GAAoBtM,EAAM8B,QAAQC,QAAQK,MAwB3CtB,GAAmBvB,EAAAA,SAtBHgN,MAAK,IAAAC,EACxB,MAAMC,EAAsBzM,EAAMgE,KAAKyI,oBAAoBC,OACrDC,EAAuB3M,EAAMgE,KAAK2I,qBAAqBD,OAMlD,IAAAE,EAMJC,EATP,YAAwB3H,KAFAuH,MAAAA,GAA+B,QAAZD,EAAnBC,EAAqBK,kBAAU,IAAAN,GAAmD,QAAnDA,EAA/BA,EAAiCxJ,MAAK+J,GAAKA,EAAE3I,OAAS6H,WAA4B,IAAAO,GAAgB,QAAhBA,EAAlFA,EAAoFQ,sBAAc,IAAAR,OAAA,EAAlGA,EAClBS,cAEiC,KAA/BR,MAAAA,OAAmB,EAAnBA,EAAqBS,QAKjB,UADAP,MAAAA,GAAuE,QAAnDC,EAApBD,EAAsB3J,MAAK+J,GAAKA,EAAE3I,OAAS6H,WAA4B,IAAAW,GAAc,QAAdA,EAAvEA,EAAyEO,oBAAY,IAAAP,GAAa,QAAbA,EAArFA,EAAuFK,mBAAW,IAAAL,OAAA,EAAlGA,EAAoGQ,eAQtD,UAFlDX,MAAAA,GAA+B,QAAZI,EAAnBJ,EAAqBK,kBAAU,IAAAD,GAE9B,QAF8BA,EAA/BA,EAAiC7J,MAC7B+J,GAAKA,EAAE3I,OAAS6H,WACnB,IAAAY,GAAgB,QAAhBA,EAFDA,EAEGG,sBAAc,IAAAH,GAAa,QAAbA,EAFjBA,EAEmBI,mBAAW,IAAAJ,OAAA,EAF9BA,EAEgCO,gBAIHb,IAAoBD,IACtDe,EAAiB5M,GAAsBlB,EAAAA,UAAe,IACtD+N,EAAWC,GAAgBhO,EAAAA,UAAe,GAC3CiO,EAAmC,QAAzBrC,EAAGnL,EAAMgE,KAAKoI,KAAKM,cAAM,IAAAvB,GAAgB,QAAhBA,EAAtBA,EAAwBiB,KAAKC,iBAAS,IAAAlB,OAAA,EAAtCA,EAAwC/H,QACpDqK,EAAWC,GAAgBnO,EAAAA,UAAe,IAC1CoO,EAASC,GAAcrO,EAAAA,UAAe,IACvC,yBAAEsO,GAA6B7N,EAAME,WACrC,qBAAE4N,GAAyB9N,EAAMiC,OACvC1C,EAAAA,WAAgB,MACZwO,iBACI,MAAM5L,EAAc,GAAGnC,EAAM8B,QAAQC,QAAQK,KAAKC,sCAC5C2L,EAAkC,GACxC,IAAK,IAAItK,EAAQ,EAAGA,GAAkB,QAAbuK,EAAGjO,EAAMoM,YAAI,IAAA6B,GAAgB,QAAhBA,EAAVA,EAAY7B,KAAKC,iBAAS,IAAA4B,OAAA,EAA1BA,EAA4B7K,QAASM,IAAS,KAAAuK,EAAAC,EAAAC,EAAAC,EACtE,MAAMjK,EAAiB,QAAb+J,EAAGlO,EAAMoM,YAAI,IAAA8B,OAAA,EAAVA,EAAY9B,KAAKC,UAAW3I,GACnC2K,GAASlK,MAAAA,OAAI,EAAJA,EAAMmK,SAAU,GAEzBvL,GAAoC,QAApBoL,EAAAhK,EAAKD,uBAAe,IAAAiK,GAAuD,QAAvDA,EAApBA,EAAsBnL,MAAKuL,GAAQA,EAAKnK,OAAS4H,WAA0B,IAAAmC,OAAA,EAA3EA,EAA6E9J,YAAa,GAC1GqI,QAAe8B,EAAAA,EAAAA,yBACjB,CAAEC,cAAezO,EAAM8B,QAAQsE,cAAesI,oBAAqB,IACnEvK,MAAAA,OAAI,EAAJA,EAAMwK,UACN3O,EAAM8B,QAAQC,QAAQ6M,YAAYC,UAClC,GAEEC,GACFpC,MAAAA,GAAsF,QAAhF0B,EAAN1B,EAAQ1J,MAAKuL,IAAI,IAAAQ,EAAA,OAAa,QAATA,EAAAR,EAAKnK,YAAI,IAAA2K,OAAA,EAATA,EAAW3B,kBAAkBlB,MAAAA,OAAoB,EAApBA,EAAsBkB,yBAAc,IAAAgB,OAAA,EAAtFA,EAAwFY,gBAAgB,EACtGC,EAAWlM,EAAM6B,MAAM,MACvBsK,EAAaJ,EAAqBG,EAAS7L,OAAS,EAAI6L,EAAS,GAAKA,EAAS,GAAMlM,EACrFoM,EAAW,CACbvM,KAAM,GAAGtB,IAAkB+M,IAC3BpL,YAAaiM,EACbb,OAAQA,EACRlL,kBAAmBzC,EAAmBwO,GACtChM,kBAAmB,GACnBG,UAAWyL,GAETM,EAAqC5M,KAAK6M,MAAM/M,aAAagN,QAAQnN,IAAgB,MAC3F6L,EAAgBuB,KACZhP,EAAayC,MAAK+J,GAAKA,EAAEsB,SAAWc,EAASd,UACzCe,EAAmBpM,MAAK+J,GAAKA,EAAEsB,SAAWc,EAASd,UACnDc,GAGZ7M,aAAaC,QAAQJ,EAAaK,KAAKC,UAAUuL,IACjD,MAAMwB,EAAaxB,EAAgByB,MAAKxM,IAAiD,IAAlCA,EAAYE,oBACnE1C,EAAmB+O,GACnBhP,EAAgBwN,GAEpB0B,KACD,CAAW,QAAXtE,EAACpL,EAAMoM,YAAI,IAAAhB,GAAgB,QAAhBA,EAAVA,EAAYgB,KAAKC,iBAAS,IAAAjB,OAAA,EAA1BA,EAA4BhI,SAEhC,MAAMuM,EAAY3P,EAAM8B,QAAQC,QAAQK,KAAKuN,UACvCC,GAAmBzJ,EAAAA,EAAAA,IAAW,WAAYnG,EAAM8B,QAAQsE,gBAAkB,GAC1EyJ,EACN,SAAyBvD,EAA0BsD,EAA0BD,GACzE,GAAIrD,EACA,OAAOsD,EAEX,MAAME,EAAoB,IAAIC,OAAO,kBAAmB,KAClDC,GAAU7J,EAAAA,EAAAA,IAAW,OAAQnG,EAAM8B,QAAQsE,eAC3C6J,EAAgBH,EAAkBI,KAAKF,GAC7C,IAAIG,EAAYH,EACZI,EAAAA,GAASC,YAAcJ,IACvBE,EAAY,GAAGG,OAAOC,SAASC,SAASR,KAE5C,MAAO,GAAGL,IAAaA,EAAUhL,SAAS,KAAa,IAAN,SAAewL,IAZhDM,CAAgBnE,EAAiBsD,EAAkBD,GAAa,IAepF,MAAMjP,EAAsBuC,IAEpBA,MAAAA,OAAW,EAAXA,EAAaG,SAAUsC,SAAS1F,EAAMiC,OAAO0D,wBAC7C1C,MAAAA,OAAW,EAAXA,EAAaG,SAAUsC,SAAS1F,EAAMiC,OAAO4D,sBAI/C6K,EAAkB3C,MAAAA,IACpBR,GAAa,GACb,IACI,GAAIzM,GAAmBP,EAAakP,MAAK1M,GAASA,EAAMM,YAAY,KAAAsN,EAAAC,EAChE,MAAM3Q,GAAsB,QAAV0Q,EAAA3Q,EAAMoM,YAAI,IAAAuE,OAAA,EAAVA,EAAYvE,KAAKC,YAAa,GAChD9L,EAAasQ,SAAQ9N,IACjB,MAAMoB,EAAOlE,EAAU+C,MAAKmB,GAAQA,EAAKmK,SAAWvL,EAAMsL,SAC1D,GAAIlK,EAAM,KAAA2M,EACN,MAAM5B,EAAanM,EAAMM,UAAY,qBAAqBN,EAAME,cAAgBF,EAAME,YAChF8N,GAA+B,QAApBD,EAAA3M,EAAKD,uBAAe,IAAA4M,OAAA,EAApBA,EAAsBE,QAAOzC,GAAQA,EAAKnK,OAAS4H,MAA8B,GAClG+E,EAASxB,MAAK0B,EAAAA,EAAAA,GAAmBjF,EAA2BkD,IAC5D/K,EAAKD,gBAAkB6M,MAG/B/Q,EAAMoM,YAAe8E,EAAAA,EAAAA,sBAAqB,CAAEzC,cAAezO,EAAM8B,QAAQsE,eAAiBpG,EAAMoM,KAAKA,KAAK+E,GAAIlR,SAC9F,QAAhB2Q,EAAM5Q,EAAMoM,YAAI,IAAAwE,OAAA,EAAVA,EAAYQ,YAAY,KAElCd,OAAOC,SAAS7Q,OAAO2R,GACzB,MAAAC,GACE/D,GAAa,GACbK,GAAW,KAGb2D,EAA2BA,MACtBjF,IACDxL,EACIuM,GAAmBM,EACnBpN,EAAakP,MAAK1M,GAASA,EAAMM,YAAcN,EAAMI,qBAGnE,OACI5D,EAAAA,cAAA,MAAAE,OAAAC,OAAA,CAAKyF,UAAWnF,EAAMmF,UAAWI,GAAIvF,EAAMuF,IAAQvF,EAAMwR,uBAAuBxR,IAC5ET,EAAAA,cAAA,OAAK4F,UAAU,aAAanF,EAAMgK,sBACjChK,EAAMyG,MACNiF,GAAe+B,GACZlO,EAAAA,cAAA,OAAK4F,UAAU,uCACX5F,EAAAA,cAAA,OAAK4F,UAAU,gBACX5F,EAAAA,cAAA,QAAM4F,UAAU,wCAChB5F,EAAAA,cAAA,MAAI4F,UAAU,eAAeoG,GAC7BhM,EAAAA,cAAA,UAAQ4F,UAAU,8BAA8BwC,QAAShF,GAAK+K,GAAa,IACvEnO,EAAAA,cAAA,QAAM4F,UAAU,QAAQwG,GACxBpM,EAAAA,cAAA,QAAM4F,UAAU,mCAGxB5F,EAAAA,cAAA,OAAK4F,UAAU,cACX5F,EAAAA,cAAA,SAAIiM,GACJjM,EAAAA,cAAA,SAAIkM,KAIfzL,EAAMyR,kBAAoBpS,EAAkBW,EAAMyR,kBAClDzR,EAAM4J,sBACHP,EACIrJ,EACAA,EAAME,UACNY,EACAP,EACAC,EACAC,EACAC,GAGJnB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKM,EAAM0R,kBACX3R,EACGC,EACAA,EAAMwJ,UACNxJ,EAAME,UACNF,EAAMG,cACNH,EAAMI,iBACNJ,EAAMK,kBACNL,EAAMM,eACNC,EACAC,EACAC,EACAC,EACAV,EAAMW,iBACNX,EAAM4J,sBAC4C,QADvByB,EAC3BrL,EAAM8B,QAAQsE,cAAcyD,eAAeC,eAAO,IAAAuB,OAAA,EAAlDA,EAAoDtB,sBACpDjJ,IAIXd,EAAM2R,qBACHpS,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKM,EAAM4R,qBACX5R,EAAM2R,oBAGHpS,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,gCAAgC0M,IAAI,KAC/ChE,EAAwB,IAAGL,GAIzB,QAAVlC,EAAAtL,EAAMoM,YAAI,IAAAd,GAAVA,EAAYwG,eACPhJ,EAA2B9I,EAAM+R,wBAAyB/R,EAAMsI,kBAAmBtI,GACnFoI,EAAyBpI,EAAMgS,sBAAuBhS,EAAMsI,kBAAmBtI,GACpF+H,EAAkB/H,EAAMiS,oBACxBtE,GAAWpO,EAAAA,cAAA,QAAM4F,UAAU,yBAAyB4G,GACrDxM,EAAAA,cAAA,OAAK4F,UAAU,WACTgH,EASE,KARA5M,EAAAA,cAACgH,EAAAA,OAAM,CACHoB,QAASA,IAAM+I,EAAgBb,GAC/BqC,SAAUX,IACVpM,UAAU,yBACVsB,MAAOmF,GAENA,GAGPkC,GAAyB3B,GAAgBG,EASvC,KARA/M,EAAAA,cAACgH,EAAAA,OAAM,CACHoB,QAASA,IAAM+I,EAAgBd,GAC/BsC,SAAUX,IACVpM,UAAU,8BACVsB,MAAOoF,GAENA,GAGRyB,EACG/N,EAAAA,cAAA,OAAK4F,UAAU,gBACX5F,EAAAA,cAAA,OAAK4F,UAAU,iBAAiBgN,KAAK,UACjC5S,EAAAA,cAAA,QAAM4F,UAAU,WAAW2G,IAE/BvM,EAAAA,cAAA,SAAIuM,IAER,8ZC/P5B,MAQasG,EAAmDC,IAAA,IAAC,cAAEC,EAAa,MAAEC,EAAK,SAAEhC,GAAU8B,EAAA,OAC/F9S,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4S,GACLC,EACAhC,IAIIiC,EAAmDC,IAAA,IAAC,cAAEC,EAAa,MAAEH,GAAOE,EAAA,OAAKlT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKgT,GAAgBH,IAE3GI,EAAyCC,IAAA,IAAC,SAAEC,EAAQ,KAAEpI,EAAI,cAAEqI,EAAa,cAAEC,GAAeH,EAAA,OACnGrT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmT,GACLpI,EACAqI,GAAiBvT,EAAAA,cAAC6S,EAAsB3S,OAAAC,OAAA,GAAKoT,IAC7CC,GAAiBxT,EAAAA,cAACiT,EAAsB/S,OAAAC,OAAA,GAAKqT,MAIzCC,EAA2DC,IAAA,IAAC,sBAAEC,EAAqB,aAAEC,EAAY,QAAEC,EAAO,UAAEC,GAAWJ,EAAA,OAChI1T,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwT,GACLE,EACD7T,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyT,GACLE,EAAU7P,KAAI8P,GACX/T,EAAAA,cAACoT,EAAiBlT,OAAAC,OAAA,CAAC0F,IAAKkO,EAAShF,QAAYgF,SAMhDC,EAA6EC,IAAA,IAAC,sBACvFN,EAAqB,aACrBC,EAAY,QACZC,EAAO,UACPC,EAAS,eACTI,EAAc,mBACdC,GACHF,EAAA,OACGjU,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwT,GACLQ,EACAD,EACAL,EACD7T,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyT,GACLE,EAAU7P,KAAI8P,GACX/T,EAAAA,cAACoU,EAAmClU,OAAAC,OAAA,CAAC0F,IAAKkO,EAAShF,QAAYgF,SAMlEK,EAA2DC,IAAA,IAAC,SAAEf,EAAQ,KAAEpI,EAAI,cAAEqI,EAAa,cAAEC,GAAea,EAAA,OACrHrU,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmT,GACLpI,EACAsI,GAAiBxT,EAAAA,cAACiT,EAAsB/S,OAAAC,OAAA,GAAKqT,MAIzCc,EAAqEC,IAAA,IAAC,cAAExB,EAAa,MAAEC,EAAK,SAAEhC,GAAUuD,EAAA,OACjHvU,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4S,GACLC,EACAhC,IAIIwD,EAA2CC,IAAA,IAAC,UACrDC,EAAS,SACTC,EAAQ,eACRC,EAAc,aACdC,EAAY,cACZC,EAAa,iCACbC,GACHN,EAAA,OACGzU,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKuU,QACgC/O,IAArCoP,GAAkDH,GAAkB5U,EAAAA,cAACyT,EAAsBvT,OAAAC,OAAA,GAAKyU,SAC3DjP,IAArCoP,GAAkDD,GAAiB9U,EAAAA,cAACyT,EAAsBvT,OAAAC,OAAA,GAAK2U,SAC1DnP,IAArCoP,GAAkDF,GAAgB7U,EAAAA,cAACyT,EAAsBvT,OAAAC,OAAA,GAAK0U,SACzDlP,IAArCoP,EACKA,EAAiC9Q,KAAI,CAACiH,EAAM/G,IACjCnE,EAAAA,cAACgU,EAAwC9T,OAAAC,OAAA,GAAK+K,EAAI,CAAErF,IAAK1B,OAEpE,KACNnE,EAAAA,cAACC,EAAAA,KAAI,CAACqS,IAAI,MAAM1M,UAAU,2BACrB+O,KAKPK,EAAyEC,IAAoD,IAAAC,EAAA,IAAnD,QAAErB,EAAO,MAAEsB,EAAK,UAAErB,EAAS,UAAEnT,EAAS,MAAEF,GAAOwU,EAC3H,MAAOG,EAAQC,GAAarV,EAAAA,UAAe,GAErCiO,EAAuC,QAA7BiH,EAAGzU,EAAMgE,KAAK6Q,SAASnI,cAAM,IAAA+H,GAA6B,QAA7BA,EAA1BA,EAA4BK,aAAa1I,KAAKC,iBAAS,IAAAoI,OAAA,EAAvDA,EAAyDrR,OAC5E,OACI7D,EAAAA,cAAA,OAAK4F,UAAU,6BACViO,EACD7T,EAAAA,cAAA,OAAK4F,UAAU,4BACVuP,GACGnV,EAAAA,cAAAA,EAAAA,SAAA,KACKmV,EAAMlM,SACNkM,EAAMjM,SACNiM,EAAMhM,YACNgM,EAAM/L,IACN+L,EAAM9L,eACN8L,EAAMxL,QACNwL,EAAMzL,SACNyL,EAAM7L,aAInBtJ,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,qCAAqC0M,IAAI,OACrDtS,EAAAA,cAACwV,EAAAA,EAAU,CACPC,SAAU,EACV7P,UAAWwP,EAAS,SAAW,GAC/BhN,QAASA,IAAMiN,GAAUK,IAAWA,IACpCC,WAAYA,IAAMN,GAAUK,IAAWA,KAEtC/U,EAAU2N,yBACVL,GAELjO,EAAAA,cAAC4V,EAAAA,EAAQ,CAACR,OAAQA,GACdpV,EAAAA,cAAC6V,EAAAA,EAAI,KACD7V,EAAAA,cAAC8V,EAAAA,EAAQ,KAAEhC,GAAa9T,EAAAA,cAACwU,EAAkBtU,OAAAC,OAAA,GAAK2T,UAQlEiC,EAA4DC,IAAA,IAAC,QAAEnC,EAAO,MAAEsB,GAAOa,EAAA,OACjFhW,EAAAA,cAAA,OAAK4F,UAAU,+BACViO,EACD7T,EAAAA,cAAA,OAAK4F,UAAU,8BACVuP,GACGnV,EAAAA,cAAAA,EAAAA,SAAA,KACKmV,EAAM1L,SACN0L,EAAMzL,SACNyL,EAAMxL,QACNwL,EAAM7L,eAiG3B,EAnFwE7I,IAAQ,IAAAwV,EAC5E,MAAM,QACFC,EAAO,cACPC,EAAa,YACbC,EAAW,cACXC,EAAa,eACb9D,EAAc,UACd+D,EAAS,UACTC,EAAS,iBACTC,EAAgB,UAChBC,EAAS,sBACTC,EAAqB,uBACrBC,EAAsB,wBACtBC,EAAuB,kBACvBC,EAAiB,QACjBC,EAAO,MACPC,EAAK,MACL7P,EAAK,WACL8P,EAAU,aACVC,EAAY,sBACZC,EAAqB,UACrBpD,EAAS,iBACTqD,EAAgB,mBAChBC,EAAkB,QAClB7U,GACA9B,EACJT,EAAAA,WAAgB,KAAK,IAAAqX,EAAAC,EACjB,MAAM1U,EAAc,GAAGnC,EAAM8B,QAAQC,QAAQK,KAAKC,qCACtC,QAAZuU,EAAAtU,oBAAY,IAAAsU,GAAZA,EAAcrU,QAAQJ,EAAaK,KAAKC,UAAU4Q,MAAAA,GAAuB,QAAdwD,EAATxD,EAAWe,oBAAY,IAAAyC,GAAW,QAAXA,EAAvBA,EAAyBxD,iBAAS,IAAAwD,OAAA,EAAlCA,EAAoCzT,WACvF,CAACiQ,MAAAA,GAAuB,QAAdmC,EAATnC,EAAWe,oBAAY,IAAAoB,GAAW,QAAXA,EAAvBA,EAAyBnC,iBAAS,IAAAmC,OAAA,EAAlCA,EAAoCpS,SAExC,MAAO0T,EAAmBC,GAAwBxX,EAAAA,UAAwB,GAvCjDwO,OAAAA,IAIK,IAAAiJ,EAC9B,MAAMC,QAAkBC,EAAAA,EAAAA,cAAapV,EAAQsE,eAC7C,OAAO6Q,MAAAA,OAAS,EAATA,EAAW7K,KAAKC,YAA8C,KAAjC4K,MAAAA,GAAe,QAAND,EAATC,EAAW7K,YAAI,IAAA4K,OAAA,EAAfA,EAAiBG,cAkCrDC,CAAqBtV,GAASuV,MAAKC,GAAOP,EAAqBO,KAS/D,OACI/X,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKgW,IACNE,GAAiBrW,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKiW,GAAclP,IACzCmP,GACErW,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmW,GACLQ,EACAC,EACAb,GACGlW,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKoW,GACLS,EACDhX,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyW,GAA0BQ,IAjBrD3W,EAAMiC,OAAOuV,sBAGhBV,IAFAvX,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKqW,GAAmBW,IAmBbnX,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKsW,GACJlE,EASI2E,GAAyBlX,EAAAA,cAAC+V,EAAuB7V,OAAAC,OAAA,GAAK+W,IARtDD,GACIjX,EAAAA,cAACgV,EAAqB9U,OAAAC,OAAA,GACd8W,EAAY,CAChBnD,UAAWA,EACXnT,UAAWF,EAAME,UACjBF,MAAOA,KAIrBT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKuW,GACN1W,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyW,GAA0BQ,IAExCpX,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwW,GACN3W,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyW,GAA0BQ,OAQ3Df,GAAiBQ,gJCjF9B,MAAMqB,EAAsBC,IACxB,MAAMC,EAAWD,GAAsBA,EAAmBhL,OAC1D,OAAOnN,EAAAA,cAAAA,EAAAA,SAAA,KAAGoY,EAAWA,EAASC,WAAaD,EAASvT,KAAO,KAqG/D,SAASyT,EAAqBC,GAC1B,OACIvY,EAAAA,cAACA,EAAAA,SAAc,KACVuY,GAASA,EAAM1U,OACV0U,EAAMtU,KAAI,CAACuU,EAAuBrU,IACvBnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQqU,KAExC,MAKlB,QA3QkE/X,IAC9D,MAAM,UAAEgY,EAAS,gBAAEC,EAAe,sBAAEC,EAAqB,QAAEC,EAAO,OAAElW,GAAWjC,GACzE,YAAEoY,EAAW,aAAEC,GAAiBpW,GAChC,aACFqW,EAAY,WACZ3M,EAAU,aACV4M,EAAY,oBACZC,EAAmB,wBACnBC,EAAuB,kBACvBC,EAAiB,SACjBC,EAAQ,yBACRC,EAAwB,kBACxBC,GACA7Y,EAAME,WACH4Y,EAAOC,GAAYxZ,EAAAA,UAAe,IAClCyZ,EAAWC,GAAgB1Z,EAAAA,UAAe,GAC3C2Z,EAASA,IAAMH,GAAUD,GACzBK,EAAaA,IAAMF,GAAcD,GACvC,OACIzZ,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC6Z,EAAAA,EAAK,CAACjH,KAAK,WAAU,kBAAiB,mBAAmBhN,UAAU,eAAewP,OAAQmE,EAAOI,OAAQA,GACtG3Z,EAAAA,cAAA,OAAK4F,UAAU,gBACX5F,EAAAA,cAAA,MAAIgG,GAAG,mBAAmByP,SAAU,EAAG7P,UAAU,eAC5CmT,GAEL/Y,EAAAA,cAAA,UAAQ4F,UAAU,0CAA0CwC,QAASuR,GAChEvN,IAITpM,EAAAA,cAAC8Z,EAAAA,EAAS,CAAClU,UAAU,qBACjB5F,EAAAA,cAAA,WACIA,EAAAA,cAAA,SAAO+F,QAAQ,cAAciT,GAC5BV,EAAqB7X,EAAMsZ,QAC3BtZ,EAAMuZ,kBAInBha,EAAAA,cAAC6Z,EAAAA,EAAK,CAACjH,KAAK,WAAU,kBAAiB,qBAAqBhN,UAAU,eAAewP,OAAQqE,EAAWE,OAAQC,GAC5G5Z,EAAAA,cAAA,OAAK4F,UAAU,gBACX5F,EAAAA,cAAA,MAAIgG,GAAG,qBAAqByP,SAAU,EAAG7P,UAAU,eAC9CqT,GAELjZ,EAAAA,cAAA,UAAQ4F,UAAU,0CAA0CwC,QAASwR,GAChExN,IAITpM,EAAAA,cAAC8Z,EAAAA,EAAS,CAACG,MAAO,CAAEC,QAAS,IACzBla,EAAAA,cAAA,OAAK4F,UAAU,iCACX5F,EAAAA,cAAA,UAAKkZ,GACJzY,EAAM0Z,cAGfna,EAAAA,cAACoa,EAAAA,EAAW,KACRpa,EAAAA,cAAA,SAAImZ,KAMZnZ,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKsY,GACRzY,EAAAA,cAAA,OAAK4F,UAAU,WAmI/B,SAA6BnF,EAA4C4Z,GACrE,MAAM,mCAAEC,EAAkC,0CAAEC,EAAyC,YAAEC,EAAW,WAAEC,EAAU,aAAEC,GAAiBja,EAC3H2X,EAAW3X,EAAMgE,KAAK0T,mBAAmBhL,OAE/C,GAAImN,EAAoC,CACpC,MAAMK,EAAmBC,GAAAA,CACrBN,EAAmC1U,UACnCyU,EAAkB,iBAAmB,mBAEzC,GAAIE,EACA,OACIva,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKma,EAAkC,CAAE1U,UAAW+U,IAuBzE,SACIvC,EACA3X,GAA0C,IAAAoa,EAAAC,EAAAC,EAE1C,MAAM3Z,GAAmB4Z,EAAAA,EAAAA,oBAAmBva,EAAM8B,QAAQC,QAAQyY,kBAAoBxa,EAAMya,aAAcza,EAAMmJ,YAC1G,WAAEuR,GAAe1a,EAAME,UACvBiH,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAkB0G,EAAAA,kBAAkBsT,WACxEC,GAAapT,EAAAA,EAAAA,wBAAuB7G,EAAkBwG,GACtD0T,EAAc,GAAGH,KAAc/C,EAAWA,EAASC,WAAaD,EAASvT,UAAOc,IACtF,OACIyS,GACAkD,GACItb,EAAAA,cAACgH,EAAAA,OAAM9G,OAAAC,OAAA,CACHob,SAAyD,QAAjDV,EAAEpa,EAAM8Z,iDAAyC,IAAAM,OAAA,EAA/CA,EAAiDvX,OAC3DsC,UAAU,4BAA2B,mBACpB,mBACjBwC,QAAwD,QAAjD0S,EAAEra,EAAM8Z,iDAAyC,IAAAO,OAAA,EAA/CA,EAAiDnB,OAC1D6B,MAAM,OAAM,aACAF,EAAW,gBACuC,QADvCP,EACRta,EAAM8Z,iDAAyC,IAAAQ,OAAA,EAA/CA,EAAiD3F,QAC5DiG,GAEJrb,EAAAA,cAAA,QAAM4F,UAAU,0BAA0B0V,IA3CrCG,CAA8BrD,EAAU3X,GAEzCT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKoa,KACLG,GAAeA,EAAazW,KAAKyX,GAA0BA,IAC3DlB,IAIV,GAAIC,EACP,OACIza,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKma,EAAkC,CAAE1U,UAAW+U,IACpDF,GAMjB,OAAO,KAjK+BkB,CAAoBlb,GAAO,IACrDT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKuY,GACN1Y,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwY,GACN3Y,EAAAA,cAAA,OAAK4F,UAAU,mBACVnF,EAAMmb,KACP5b,EAAAA,cAAA,OAAK4F,UAAU,cACX5F,EAAAA,cAAA,cAASoZ,GACTpZ,EAAAA,cAAA,OAAK4F,UAAU,uBACX5F,EAAAA,cAAA,QAAM4F,UAAU,WACXiT,EACD7Y,EAAAA,cAAA,UAAQ4S,KAAK,SAAQ,aAAakG,EAAY,eAAgBA,EAAclT,UAAU,YAClF5F,EAAAA,cAAA,QAAM4F,UAAU,eAGxB5F,EAAAA,cAAA,UAAQ4F,UAAU,eAAewC,QAASwR,GACrCP,MAMjBrZ,EAAAA,cAAA,OAAK4F,UAAU,sBACX5F,EAAAA,cAAA,QAAM4F,UAAU,WACXiT,EACD7Y,EAAAA,cAAA,qBAAkB8Y,EAAc5R,MAAO4R,EAAclT,UAAU,YAC3D5F,EAAAA,cAAA,QAAM4F,UAAU,eAGxB5F,EAAAA,cAAA,UAAQ4F,UAAU,eAAewC,QAASwR,GACrCP,IAGTrZ,EAAAA,cAAA,OAAK4F,UAAU,oBACVnF,EAAMob,QACP7b,EAAAA,cAAA,OAAK4F,UAAU,iCACX5F,EAAAA,cAAA,OAAK4F,UAAU,oBACX5F,EAAAA,cAAA,UAAQ4F,UAAU,0BAA0BwC,QAASuR,GAChDL,KASbtZ,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyY,IACTnY,EAAMqb,WAWnC,SAA6Brb,GACzB,MAAM,QACFmY,EAAO,yBACPmD,EAAwB,oBACxBC,EACArb,WAAW,cAAEsb,IACbxb,EACJ,OACIT,EAAAA,cAAC6Z,EAAAA,EAAK,CACFjH,KAAK,WAAU,kBACC,eAChBhN,UAAW,6CACXwP,QAAS4G,GAEThc,EAAAA,cAAA,OAAK4F,UAAU,gBACX5F,EAAAA,cAAA,MAAIgG,GAAG,eAAeyP,SAAU,EAAG7P,UAAU,eACxCqW,GAEJxb,EAAMob,SAEX7b,EAAAA,cAAC8Z,EAAAA,EAAS,KACN9Z,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4b,GAgB1B,SAAmCtb,EAAyB4Z,GACxD,MAAM,mCAAEC,EAAkC,YAAEE,EAAW,WAAEC,EAAU,KAAEhW,EAAI,aAAEiW,GAAiBja,EAE5F,GAAI6Z,EAAoC,CACpC,MAAMK,EAAmBC,GAAAA,CACrB,oBACAN,EAAmC1U,UACnCyU,EAAkB,iBAAmB,mBAGzC,GAAIK,EACA,OACI1a,EAAAA,cAACkc,EAAAA,OAAM,CACHtW,UAAW+U,EACXwB,UAAU,yBACVC,WAAW,0BACXC,eAAe,MACfC,iBAAkBpE,EAAmBzT,EAAK0T,qBAE1CnY,EAAAA,cAAA,aACK0a,GAAeA,EAAazW,KAAKyX,GAA0BA,IAC3DlB,IAIV,GAAIC,EACP,OACIza,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKma,EAAkC,CAAE1U,UAAW+U,IACpDF,GAKjB,OAAO,KAhDU8B,CAA0B9b,GAAO,IAGtCT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyY,IACTN,EAAqB7X,EAAM+b,WAlCvBC,CAAoBhc,GACrBT,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAW,2BAA4B0S,EAAqB7X,EAAM+b,gGC7H5F,MA4CA,EA5C4G/b,IACxG,MAAM,qBAAEic,EAAoB,+BAAEC,EAA8B,mCAAEC,EAAkC,2BAAEC,GAA+Bpc,EAE3Hqc,EACFD,GACAE,EAAAA,gBAAgBC,YAAYH,IAC5BA,EAA2BpL,QAAOwL,IAAQC,EAAAA,iBAAiBC,kBAAkBF,MAE3E,wBAAEG,GAA4B3c,EAAMiC,OAC1C,GAAIoa,GAAWM,GAA2BA,EAAwBvZ,OAAS,GAAKiZ,EAAQjZ,OAAS,EAAG,CAChG,IAAK,IAAIM,EAAQ,EAAGA,EAAQiZ,EAAwBvZ,OAAQM,IAAS,CAMjE,MAAMkZ,EAAWP,EAAQQ,WAAUL,MAC3BA,GAAOA,EAAIxc,OAASwc,EAAIxc,MAAM8c,UAAYN,EAAIxc,MAAM8c,SAAS9c,OAASwc,EAAIxc,MAAM8c,SAAS9c,MAAM+c,aAAeJ,GAA2BA,EAAwBjZ,KAC1J8Y,EAAIxc,MAAM8c,SAAS9c,MAAM+c,YAAY3P,cAActI,SAAW6X,EAAwBjZ,GAAO0J,cAActI,SAKtH8X,GAAY,GACZP,EAAQW,OAAOJ,EAAU,GAGjC,OAAOK,IAEP,OAAOA,IAGX,SAASA,IACL,OAAOZ,GAAWC,EAAAA,gBAAgBC,YAAYF,GAC1C9c,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKuc,GACPjc,EAAMyG,MACPlH,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwc,GACN3c,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyc,GAAqCE,KAGvD,kFC1CZ,QAAgBrc,GACLT,EAAAA,cAAAA,EAAAA,SAAA,KAAG2d,EAAkBld,IAgB1Bkd,EAAqBld,IACvB,MAAM,WAAEmd,GAAend,EACvB,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKyd,GAhBOnd,CAAAA,IAAgD,IAAAod,EACvE,MAAM,0BAAEC,GAA8Brd,EACtC,OACIT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK2d,EAAyB,CAAE1V,QAAS3H,EAAMsd,oBAChD/d,EAAAA,cAAA,WACsC,QADtC6d,EACKpd,EAAMud,mCAA2B,IAAAH,OAAA,EAAjCA,EAAmC5Z,KAAI,CAACiH,EAAM/G,IACpCnE,EAAAA,cAAA,OAAK6F,IAAK1B,GAAQ+G,QAWhC+S,CAAkBxd,qsBCN/B,MAAMyd,UAA2Ble,EAAAA,cAG7Bme,YAAY1d,GACR2d,MAAM3d,GA0CH,KAAA4d,oBAAuBhW,GAA0CiW,KAAK7d,MAAMiC,OAAOmR,QAAS0K,KAAOlW,EAAM/E,OAAOC,MAEhH,KAAAib,qBAAwBC,GAAuBpW,IAC9CiW,KAAK7d,MAAMiC,OAAOgc,OAASJ,KAAK7d,MAAMiC,OAAOgc,MAAMD,KACnDH,KAAK7d,MAAMiC,OAAOgc,MAAMD,GAAWE,SAAWtW,EAAM/E,OAAOC,QA7C/D+a,KAAKld,kBAAmB4Z,EAAAA,EAAAA,oBACpBsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAIZgV,SACH,MAAM,OAAElc,GAAW4b,KAAK7d,OAClB,UAAEmF,EAAS,QAAEiO,EAAO,MAAE6K,GAAUhc,EAEhCmc,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACbmF,UAAAA,EACAsY,mBAAoB,CAChBa,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAW,0BAA2BlY,EAAOkD,YAE5DiO,QAASA,GAAWA,EAAQ0K,MACxBve,EAAAA,cAACgf,EAAAA,GAAa,CACVpZ,UAAU,mCACV0M,IAAKuB,EAAQvB,KAAO,KACpBiM,KAAM1K,EAAQ0K,KACdU,UAAW,CAAEC,OAAQZ,KAAKD,oBAAqB/T,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAG1Fkc,MAAOA,GAASA,EAAM7a,OAAS,GAC3B7D,EAAAA,cAACmf,EAAAA,EAAcjf,OAAAC,OAAA,GACP,CACAue,MAAAA,EACAU,aAAcd,KAAKE,qBACnBlU,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCpB,iBAAkBkd,KAAKld,sBAMvC,OAAOkd,KAAK7d,MAAM4e,WAAWR,IAYrC,qFCtEA,MAWA,EAXuEpe,IACnE,MAAM,mBAAEyd,EAAkB,QAAErK,EAAO,MAAE6K,GAAUje,EAE/C,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAK+d,GACPrK,EACA6K,uECMb,MAcMY,EAAoBA,CAACC,EAAwBne,KAC/C,IAAKme,GAAgC,IAApBA,EAAS1b,OACtB,OAAO,KAEX,MAAM2b,EAAuC,GACvC5X,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAmB,IAgB7D,OAfAme,EAASjO,SAAQ,CAACoK,EAAMvX,KACpByD,EAAQ6X,cAAcC,MAAQhE,EAAKiD,SACnC,MAAMtD,GAAapT,EAAAA,EAAAA,wBAAuB7G,EAAmBwG,GACvD+X,EAAoC,CACtCC,UAAWlE,EAAKkE,UAChBha,UAAW,gCACX+Y,SAAUjD,EAAKiD,SACfkB,QAASnE,EAAKmE,QAAQC,eACtBC,aAAcrE,EAAKqE,aACnBnN,KAAM,OACNoN,qBAAsB3E,GAE1BmE,EAAcxP,KAAK2P,MAGhBH,GAGX,EAtCoE1M,IAA8D,IAA7D,MAAE4L,EAAK,iBAAEtd,EAAgB,eAAEkJ,EAAc,aAAE8U,GAActM,EAC1H,GAAqB,IAAjB4L,EAAM7a,OACN,OAAO,KAEX,MAAM2b,EAAgBF,EAAkBZ,EAAOtd,GAC/C,OACIpB,EAAAA,cAAA,OAAK4F,UAAU,kCACV4Z,GAAiBA,EAAc3b,OAAS,EACrC7D,EAAAA,cAACgf,EAAAA,GAAc,CAACN,MAAOc,EAAeP,UAAW,CAAEG,aAAAA,EAAc9U,eAAAA,KACjE,sHCRhB,MAAM2V,EAAmB,+BAEZC,EAA6DpN,IAA8D,IAA7D,MAAE4L,EAAK,iBAAEtd,EAAgB,aAAEge,EAAY,eAAE9U,GAAgBwI,EAChI,IAAKiK,EAAAA,gBAAgBC,YAAY0B,GAC7B,OAAO,KAEX,MAAMc,EAAgBF,EAAkBZ,EAAOtd,GAC/C,OACIpB,EAAAA,cAAA,OAAK4F,UAAW,GAAGqa,YACdlD,EAAAA,gBAAgBC,YAAYwC,GACzBxf,EAAAA,cAACgf,EAAAA,GAAc,CAACN,MAAOc,EAAeP,UAAW,CAAEG,aAAAA,EAAc9U,eAAAA,KACjE,OAKVgV,EAAoBA,CAACC,EAAwBne,KAC/C,IAAK2b,EAAAA,gBAAgBC,YAAYuC,GAC7B,OAAO,KAGX,MAAM3X,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAmB,IAE7D,OAAOme,EAAStb,KAAIyX,IAChB9T,EAAQ6X,cAAcC,MAAQhE,EAAKiD,SACnC,MAAMtD,GAAapT,EAAAA,EAAAA,wBAAuB7G,EAAmBwG,GAC7D,MAAO,CACHgY,UAAWlE,EAAKkE,UAChBha,UAAW,GAAGqa,UACdtB,SAAUjD,EAAKiD,SACfkB,QAASnE,EAAKmE,QAAQC,eACtBC,aAAcrE,EAAKqE,aACnBnN,KAAM,OACNoN,qBAAsB3E,4kBC5BlC,MAAM8E,UAAwBngB,EAAAA,cAG1Bme,YAAY1d,GACR2d,MAAM3d,GA8CH,KAAA4d,oBAAuBhW,GAA0CiW,KAAK7d,MAAMiC,OAAOmR,QAAQ0K,KAAOlW,EAAM/E,OAAOC,MAE/G,KAAAib,qBAAwBC,GAAuBpW,IAC9CiW,KAAK7d,MAAMiC,OAAOgc,OAASJ,KAAK7d,MAAMiC,OAAOgc,MAAMD,KACnDH,KAAK7d,MAAMiC,OAAOgc,MAAMD,GAAWE,SAAWtW,EAAM/E,OAAOC,QAjD/D+a,KAAKld,kBAAmB4Z,EAAAA,EAAAA,oBACpBsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAIZgV,SACH,MAAM,OAAElc,GAAW4b,KAAK7d,OAClB,UAAEmF,EAAS,QAAEiO,EAAO,MAAE6K,GAAUhc,EAEhCud,EAAmB,+BAEzB,KAAKG,EAAAA,EAAAA,IAAiB9B,KAAK7d,MAAM8B,QAAQsE,cAAcyD,gBACnD,OAAO,KAGX,MAAMuU,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACbmF,UAAAA,EACAya,gBAAiB,CACbtB,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAWqF,EAAkBvd,EAAOkD,YAEnDiO,QAASA,GAAWA,EAAQ0K,MACxBve,EAAAA,cAACgf,EAAAA,GAAa,CACVpZ,UAAW,GAAGqa,aACd3N,IAAKuB,EAAQvB,IACbiM,KAAM1K,EAAQ0K,KACdU,UAAW,CAAEC,OAAQZ,KAAKD,oBAAqB/T,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAG1Fkc,MAAO3B,EAAAA,gBAAgBC,YAAY0B,IAC/B1e,EAAAA,cAACkgB,EAAoB,CACjBxB,MAAOA,EACPU,aAAcd,KAAKE,qBACnBlU,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCpB,iBAAkBkd,KAAKld,qBAKnC,OAAOkd,KAAK7d,MAAM4e,WAAWR,IAYrC,qFC7EA,MAWA,EAXiEpe,IAC7D,MAAM,gBAAE4f,EAAe,QAAExM,EAAO,MAAE6K,GAAUje,EAE5C,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKkgB,GACPxM,EACA6K,kECEb,MAkBA,EAlBoF5L,IAQ/E,IARgF,GACjF9M,EAAE,UACFJ,EAAS,KACT2Y,EAAI,UACJqB,EAAS,iBACTxe,EAAgB,SAChBuR,EAAQ,QACRvK,GACH0K,EACG,MAAMlL,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAmBmd,GACvDlD,GAAapT,EAAAA,EAAAA,wBAAuB7G,EAAmBwG,GAC7D,OACI5H,EAAAA,cAACgH,EAAAA,OAAM9G,OAAAC,OAAA,CAAC6F,GAAIA,EAAIJ,UAAWA,EAAS,aAAcga,EAAWjN,SAAUA,EAAUvK,QAASA,GAAaiT,GAClGkD,kEChBb,MAUA,EAVuFzL,IAA8C,IAA7C,GAAE9M,EAAE,UAAEJ,EAAS,KAAE0a,EAAO,OAAM,QAAEC,GAASzN,EAC7H,MAAM0N,EAAiB,GAAG5a,MAAc0a,UAExC,OACItgB,EAAAA,cAAA,OAAKgG,GAAIA,EAAIJ,UAAWgV,GAAAA,CAAW4F,EAAgB,QAAS,GAAGF,UAAc1N,KAAK,QAAO,YAAW,YAAW,cAAa,QACxH5S,EAAAA,cAAA,KAAG4F,UAAW,GAAG4a,UAAwBD,wDCQrD,MAAME,EAAgBva,IAClB,GAAIA,EAAW,CACX,MAAMwa,EAAkBC,OAAOxa,SAASD,EAAW,IACnD,IAAK0a,MAAMF,GACP,OAAOA,IA4BnB,EArBuF5N,IAAA,IAAC,GACpF9M,EAAE,KACFsa,EAAI,MACJ/c,EAAK,QACLsd,EAAO,UACPjb,EAAS,UACTM,EAAS,SACTD,GACH6M,EAAA,OACG9S,EAAAA,cAAA,SACIgG,GAAIA,EACJsa,KAAMA,EACN/c,MAAOA,EACPqC,UAAW,GAAGA,WAAmBA,KAAaI,IAC9C6a,QAAqB,KAAZA,EAAiBA,OAAUlb,EAAS,gBAC/B,OACdO,UAAWua,EAAava,GACxBD,SAAUA,kDC1ClB,MAMA,EANkF6M,IAAA,IAAC,GAAE9M,EAAE,MAAE8a,EAAK,UAAElb,EAAS,KAAE2Y,GAAMzL,EAAA,OAC7G9S,EAAAA,cAAA,SAAOgG,GAAI,GAAGA,UAAYJ,UAAW,GAAGA,UAAmBG,QAAS+a,GAC/DvC,iDCLT,MAIA,EAJ8FzL,IAAA,IAAC,UAAElN,GAAWkN,EAAA,OACxG9S,EAAAA,cAAA,OAAK4F,UAAW,GAAGA,kECAvB,MAIA,EAJoGkN,IAAA,IAAC,UAAElN,EAAS,QAAE2a,GAASzN,EAAA,OACvH9S,EAAAA,cAAA,OAAK4F,UAAW,GAAGA,sBAA+B2a,kECEtD,MAUA,EAVsFzN,IAA8C,IAA7C,GAAE9M,EAAE,UAAEJ,EAAS,KAAE0a,EAAO,OAAM,QAAEC,GAASzN,EAC5H,MAAMiO,EAAmB,GAAGnb,MAAc0a,YAE1C,OACItgB,EAAAA,cAAA,QAAMgG,GAAIA,EAAIJ,UAAWgV,GAAAA,CAAWmG,EAAkB,GAAGT,UAAc1N,KAAK,QAAO,YAAW,YAAW,cAAa,QAClH5S,EAAAA,cAAA,KAAG4F,UAAW,GAAGmb,UAA0BR,iyBCoDvD,IAAMS,EAAN,cAAwChhB,EAAAA,UAcpCme,YAAY1d,GACR2d,MAAM3d,GAdO,KAAAwgB,gBAA0B,iCA8FpC,KAAA5C,oBAAuBhW,GAA0CiW,KAAK7d,MAAMiC,OAAOmR,QAAS0K,KAAOlW,EAAM/E,OAAOC,MAGhH,KAAA2d,QAAU,KACb5C,KAAK6C,mBACL7C,KAAK8C,sBAGL9C,KAAK+C,oBAAsBC,aAAY,KACnChD,KAAKiD,gCACN,KACHC,YAAW,KACPC,cAAcnD,KAAK+C,uBACpB,MAIU,KAAAE,4BAA8B,KAEvCxQ,QAAUA,OAAe,QAAKA,OAAe,OAA4B,2BACzE0Q,cAAcnD,KAAK+C,qBACnB/C,KAAKoD,eAAgB,IAgPZ,KAAAC,SAAW,CAACC,EAAiBC,IACtCvD,KAAKwD,gBAC2B,OAAzBxD,KAAKwD,gBAA2BF,EAAUC,EAE9C,GAxVPvD,KAAKyD,WAAaC,EAAAA,WAAWC,aAAaC,OAC1C5D,KAAKoD,eAAgB,EACrBpD,KAAKwD,gBAAkB,GACvBxD,KAAKld,kBAAmB4Z,EAAAA,EAAAA,oBACpBsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAIZuY,oBACH7D,KAAK4C,UAIFkB,qBAEC9D,KAAKoD,eAAiB3Q,QAAUA,OAAiB,UAAKA,OAAiB,SAAc,YAErFA,OAAiB,SAAc,aAIhCsR,sBACHC,EACAC,GAEA,OAAIjE,KAAKkE,QAAUD,GAAajE,KAAK7d,MAAMgE,OAAS6d,EAAU7d,KAM3Dma,SACH,MAAM,OAAElc,EAAM,UAAE/B,GAAc2d,KAAK7d,MAE7Boe,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACbgiB,UAAW,CACPC,eAAgBpE,KAAKoD,eAEzBiB,0BAA2B,CACvB5D,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAW0D,KAAK2C,gBAAiBve,EAAOkD,YAEvDkR,QAAS,CACLyC,MAAO,CACHjH,IAAKuH,EAAAA,MACLzE,QAAQ,GAEZwN,UAAW,CACPtQ,IAAKwH,EAAAA,WAET+I,KAAM7iB,EAAAA,cAAC8iB,EAAAA,EAA6C,CAACld,UAAW0Y,KAAK2C,kBACrEV,QACIvgB,EAAAA,cAAC+iB,EAAAA,EAAgD,CAACnd,UAAW0Y,KAAK2C,gBAAiBV,QAAS5f,EAAUqiB,kBAG9GC,mBAAoB,CAChBjd,GAAI,MACJiU,MAAO,CAAEiJ,QAAS,SAEtBC,YAAa,CACTnd,GAAIsY,KAAKoD,cAAgB,MAAQ,KACjC9b,UAAW,GAAG0Y,KAAK2C,8BAEvBpN,QAASnR,EAAOmR,SACZ7T,EAAAA,cAACgf,EAAAA,GAAa9e,OAAAC,OAAA,CACVyF,UAAW,GAAG0Y,KAAK2C,4BACfve,EAAOmR,QAAO,CAClBoL,UAAW,CAAEC,OAAQZ,KAAKD,oBAAqB/T,eAAgBgU,KAAK7d,MAAM8B,QAAQC,YAG1F4gB,sCAAuC9E,KAAK+E,wBAGhD,OAAO/E,KAAK7d,MAAM4e,WAAWR,GA4BzBsC,mBAEApQ,OAAkB,WAAKA,OAAkB,UAAmB,kBAE5DA,OAAkB,UAAmB,gBAAE9M,KAAKqf,IACX,UAAzBA,EAAIC,GAAG1V,cACPyQ,KAAKyD,WAAauB,EAAIE,IACU,6BAAzBF,EAAIC,GAAG1V,gBACdyQ,KAAKwD,gBAAkB,SAG1BxD,KAAKwD,kBACNxD,KAAKwD,gBAAkB,OAK3BV,sBAEJ,GAAIrQ,QAAUA,OAAgB,QAAG,CAC7B,MAAMwP,EAAU,CACZkD,gBAAiBnF,KAAK7d,MAAME,UAAUqiB,gBAI1C9iB,OAAOC,OAAO4Q,OAAgB,QAAGwP,IAIjC8C,sBACJ,MAAM,UAAE1iB,GAAc2d,KAAK7d,MAC3B,MAAO,CACHijB,aAAc,CACV1d,GAAI,gBACJJ,UAAW,GAAG0Y,KAAK2C,uCAEvB0C,2BAA4B,CACxB3d,GAAI,2BACJJ,UAAW,GAAG0Y,KAAK2C,4EAEvB1I,MAAO,CACH+F,KAAKsF,aAAa,QAAS,QAASjjB,EAAUkjB,2BAAuBle,EAAW2Y,KAAKyD,YACrFzD,KAAKsF,aACDtF,KAAKqD,SAAS,kBAAmB,yBACjC,OACAhhB,EAAUmjB,+BACVne,OACAA,EACA,qBAGRoe,eAAgB,CACZ/jB,EAAAA,cAACgkB,EAAAA,EAAyC,CACtCne,IAAI,aACJG,GAAIsY,KAAKqD,SAAS,aAAc,yCAChC/b,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAUsjB,8BAGvBjkB,EAAAA,cAACgkB,EAAAA,EAAyC,CACtCne,IAAI,gBACJG,GAAIsY,KAAKqD,SAAS,gBAAiB,4CACnC/b,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAUujB,+BAG3BC,aAAc,CACVnkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,yCACJG,GAAG,yCACHJ,UAAW0Y,KAAK2C,kBAEpBjhB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,mBACJG,GAAG,mBACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU0jB,aAEvBrkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,sBACJG,GAAG,sBACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU2jB,uBAEvBtkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,uBACJG,GAAG,uBACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU4jB,iBAEvBvkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,0BACJG,GAAG,0BACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU6jB,mBAEvBxkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,oBACJG,GAAG,oBACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU8jB,cAEvBzkB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,yBACJG,GAAG,yBACHJ,UAAW0Y,KAAK2C,gBAChBV,QAAS5f,EAAU+jB,oBAEvB1kB,EAAAA,cAACokB,EAAAA,EAAuC,CACpCve,IAAI,+BACJG,GAAG,+BACHJ,UAAW0Y,KAAK2C,mBAGxB0D,2BAA4B,CACxB/e,UAAW,GAAG0Y,KAAK2C,+CAA+C3C,KAAKqD,SAAS,SAAU,MAC1F,gBAAiB,SAErBiD,oBAAqB,CACjB5kB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,qBACJG,GAAIsY,KAAKqD,SAAS,qBAAsB,0CACxC/b,UAAW,GAAG0Y,KAAK2C,8CACf3C,KAAK2C,sCACc3C,KAAKqD,SAAS,aAAc,cACnD/B,UAAWjf,EAAUmkB,wBACrBvG,KAAM5d,EAAUokB,mBAChB3jB,iBAAkBkd,KAAKld,mBAE3BpB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,uBACJG,GAAIsY,KAAKqD,SAAS,uBAAwB,4CAC1C/b,UAAW,GAAG0Y,KAAK2C,8CACf3C,KAAK2C,wCACgB3C,KAAKqD,SAAS,eAAgB,gBACvD/B,UAAWjf,EAAUqkB,0BACrBzG,KAAM5d,EAAUskB,qBAChB7jB,iBAAkBkd,KAAKld,mBAE3BpB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,uBACJG,GAAIsY,KAAKqD,SAAS,uBAAwB,8CAC1C/b,UAAW,GAAG0Y,KAAK2C,8CACf3C,KAAK2C,wCACgB3C,KAAKqD,SAAS,aAAc,iBACrD/B,UAAWjf,EAAUukB,0BACrB3G,KAAM5d,EAAUwkB,qBAChB/jB,iBAAkBkd,KAAKld,mBAE3BpB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,qBACJG,GAAIsY,KAAKqD,SAAS,qBAAsB,8CACxC/b,UAAW,GAAG0Y,KAAK2C,8CACf3C,KAAK2C,sCACc3C,KAAKqD,SAAS,aAAc,kBACnD/B,UAAWjf,EAAUykB,2BACrB7G,KAAM5d,EAAU0kB,sBAChBjkB,iBAAkBkd,KAAKld,oBAG/BkkB,eAAgB,CACZ1f,UAAW,GAAG0Y,KAAK2C,4BAEvBsE,QAAS,CACLvlB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,WACJG,GAAG,WACHJ,UAAW,GAAG0Y,KAAK2C,mCACnBrB,UAAWjf,EAAU6kB,wBACrBjH,KAAM5d,EAAU8kB,mBAChBrkB,iBAAkBkd,KAAKld,mBAE3BpB,EAAAA,cAAC6kB,EAAAA,EAAwC,CACrChf,IAAI,SACJG,GAAG,SACHJ,UAAW,GAAG0Y,KAAK2C,iCACnBrB,UAAWjf,EAAU+kB,sBACrBnH,KAAM5d,EAAUglB,oBAGxBC,yBAA0B,CACtBhgB,UAAW,GAAG0Y,KAAK2C,oDAEvB4E,gCAAiC,CAC7B7f,GAAI,kBACJJ,UAAW,GAAG0Y,KAAK2C,6CAKvB2C,aACJ5d,EACAsa,EACAwF,EACA5f,EACA2a,EACAkF,GAEA,MAAMngB,EAAY,GAAG0Y,KAAK2C,gCAC1B,MAAO,CACH+E,QAAS,CACLpgB,UAAWgV,GAAAA,CAAWhV,EAAW,GAAGA,KAAaI,IAAM,aAAc,YAAa+f,IAEtFlgB,IAAKG,EACLgN,MACIhT,EAAAA,cAACimB,EAAAA,EAAuC/lB,OAAAC,OAAA,GAChC,CACA6F,GAAAA,EACA8a,MAAO9a,EACPJ,UAAAA,EACA2Y,KAAMuH,KAIlB3B,aACInkB,EAAAA,cAACokB,EAAAA,EAAuClkB,OAAAC,OAAA,GAChC,CACAyF,UAAW0Y,KAAK2C,gBAChBX,KAAM,UAIlB4F,MACIlmB,EAAAA,cAACmmB,EAAAA,EAAuCjmB,OAAAC,OAAA,GAChC,CACA6F,GAAAA,EACAsa,KAAAA,EACApa,UAAAA,EACA2a,QAAAA,EACAjb,UAAAA,SAxVRwgB,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,kCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,qCAECD,EAAAA,EAAAA,IAAA,CAAXC,EAAAA,IAAU,sCATTrF,GAAyBoF,EAAAA,EAAAA,IAAA,CAD9BE,EAAAA,IACKtF,GA4WN,qFCraA,MAAMuF,EAA0EzT,IAA4C,IAA3C,QAAEkT,EAAO,MAAEhT,EAAK,aAAEmR,EAAY,MAAE+B,GAAOpT,EACpH,OACI9S,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK6lB,GACLhT,EACAmR,EACA+B,IAwDPM,EAAgFnT,IAAwC,IAAvC,MAAEkG,EAAK,UAAEqJ,EAAS,KAAEC,EAAI,QAAEtC,GAASlN,EACtH,OACIrT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKoZ,GACNvZ,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKyiB,GACLC,EACAtC,KA6BjB,EAvBqF9f,IACjF,MAAM,0BACFkiB,EAAyB,UACzBF,EAAS,QACT3L,EAAO,mBACPmM,EAAkB,YAClBE,EAAW,QACXtP,EAAO,sCACPuP,GACA3iB,EAEJ,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKwiB,GACPF,EAAUC,eAAiB1iB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK8iB,IACrCR,EAAUC,eAAiB1iB,EAAAA,cAACwmB,EAAgCtmB,OAAAC,OAAA,GAAK2W,IAClE9W,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKgjB,GACLtP,EA9EsDX,CAAAA,IAYlE,IAZmE,aACpEwQ,EAAY,2BACZC,EAA0B,MAC1BpL,EAAK,eACLwL,EAAc,aACdI,EAAY,2BACZQ,EAA0B,oBAC1BC,EAAmB,eACnBU,EAAc,QACdC,EAAO,yBACPK,EAAwB,gCACxBC,GACH3S,EACG,OACIlT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKujB,GACN1jB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwjB,GACLI,GACGA,EAAe9f,KAAI,CAACsc,EAA0Bpc,IACnCnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQoc,KAE3ChI,GACGA,EAAMtU,KAAKiH,GAEAlL,EAAAA,cAACumB,EAA6BrmB,OAAAC,OAAA,GAAK+K,MAEjDiZ,GACGA,EAAalgB,KAAI,CAAC4F,EAAwB1F,IAC/BnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQ0F,KAE5C7J,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKwkB,GACLC,GACGA,EAAoB3gB,KAAI,CAACwiB,EAAyBtiB,IACvCnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQsiB,MAIhDzmB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmlB,GACLC,GACGA,EAAQthB,KAAI,CAACwiB,EAAyBtiB,IAC3BnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQsiB,MAIhDzmB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKylB,GACN5lB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK0lB,QAmCba,CAAatD,yICtFvB,MAAMuD,EAAwB7T,IAA2E,IAA1E,KAAEyL,EAAI,UAAE3Y,EAAS,KAAEqB,EAAI,UAAE2Y,EAAS,MAAEzb,EAAK,QAAEyiB,EAAO,iBAAExlB,GAAkB0R,EACxG,MAAMlL,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAkB,GAAI,IAE1Dud,OAAoBhZ,IAAT4Y,EAAqBA,EAAO,GAC7C3W,EAAQ6X,cAAcC,MAAQf,EAG9B,MAAMkI,GAAY5e,EAAAA,EAAAA,wBAAuB7G,EAAkBwG,GAE3D,OACI5H,EAAAA,cAAA,IAAAE,OAAAC,OAAA,GACQ0mB,EAAS,CACbjhB,UAAWA,EACXqB,KAAMA,EAAI,aACE2Y,EACZxX,SAAS0e,EAAAA,EAAAA,kBAAiB1lB,EAAkBwG,EAAS+W,IAChDiI,GAAW,CAAE,iBAAiB,IAEnC5mB,EAAAA,cAAA,QAAM+mB,SAAS,QAAQpI,GACvB3e,EAAAA,cAAA,QAAM+mB,SAAS,WAAWC,QAAS7iB,MC1BlC8iB,EAAkCnU,IAAA,IAAC,UAAEoU,GAAWpU,EAAA,OACzD9S,EAAAA,cAAA,sBAAkB,QACb,IACAknB,EACA,2kBCmBT,MAAMC,UAAmBnnB,EAAAA,cAAzBme,cAAA,oBACqB,KAAAiJ,UAAgC9I,KAAK7d,MAAM8B,QAAQC,QAAQ6kB,UAAUC,SAErE,KAAAlmB,kBAAsC4Z,EAAAA,EAAAA,oBACnDsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WA8DE,KAAA2d,aAAe,KAC5B,MAAM,KAAEC,GAASlJ,KAAK7d,MAAMiC,OAC5B,OAAK8kB,GAASA,EAAK3H,SAAY2H,EAAK3H,QAAQC,eAKxC9f,EAAAA,cAAC2mB,EAAI,CACDpI,KAAMiJ,EAAK7I,SACXiB,UAAW4H,EAAK5H,WAAa4H,EAAK7I,SAClC1X,KAAMugB,EAAK3H,SAAW2H,EAAK3H,QAAQC,eACnC3b,MAAM,IACNyB,UAAU,qBACVxE,iBAAkBkd,KAAKld,oBAV3Bkd,KAAK7d,MAAM8B,QAAQqH,UAAUC,MAAM,0DAC5B,OAcE,KAAA4d,0BAA6BC,IAC1C,MAAM,MAAEhJ,GAAUJ,KAAK7d,MAAMiC,OAE7B,IAAKgc,GAA0B,IAAjBA,EAAM7a,OAEhB,OADAya,KAAK7d,MAAM8B,QAAQqH,UAAUC,MAAM,wDAC5B,KAGX,OAAO6U,EAAMza,KAAI,CAACV,EAAmBY,KACjCujB,IACA,MAAMC,EAAWxjB,EACjB,OAAOA,IAAUua,EAAM7a,OAJI,EAKvB7D,EAAAA,cAAC2mB,EAAI,CACD9gB,IAAK1B,EACLoa,KAAMhb,EAAMob,SACZiB,UAAWrc,EAAMqc,WAAarc,EAAMob,SACpC1X,KAAM1D,EAAMsc,SAAWtc,EAAMsc,QAAQC,eACrC3b,MAAO,CAAEujB,aAAAA,GAAeE,WACxBhiB,UAAU,qBACVxE,iBAAkBkd,KAAKld,mBAG3BpB,EAAAA,cAAA,OAAK6F,IAAK8hB,EAAU/hB,UAAU,iDACzBrC,EAAMob,cAMN,KAAAkJ,sBAAyBH,IACtC,MAAM,KAAEjjB,GAAS6Z,KAAK7d,MAChBqnB,EAAoBrjB,EAAKqjB,kBAAkB3a,OACjD,OAAK2a,EAIEA,EAAkB7jB,KAAI,CAACV,EAA0BY,KACpDujB,IAEA,MAAMxM,EAAeoD,KAAKyJ,iBAAiBzJ,KAAK7d,MAAM8B,QAAQC,QAAQwlB,OAAQzkB,EAAM0kB,kBAEpF,OACIjoB,EAAAA,cAAC2mB,EAAI,CACD9gB,IAAK1B,EACLoa,KAAMrD,EACN0E,UAAW1E,EACXjU,KAAM1D,EAAM2kB,IACZ/jB,MAAOujB,EAAaE,WACpBhiB,UAAU,qBACVghB,QAASziB,IAAU2jB,EAAkBjkB,OAAS,EAC9CzC,iBAAkBkd,KAAKld,uBAjB/Bkd,KAAK7d,MAAM8B,QAAQqH,UAAUC,MAAM,2DAC5B,OA4BE,KAAAke,iBAAmB,CAACC,EAAgBG,KAAiE,IAAAC,EAClH,IAAIC,EAUJ,OATIL,GAAUG,GAAoBpL,EAAAA,gBAAgBC,YAAYmL,KAC1DE,EAAkBF,EAAiB1kB,MAAKyH,GAAQA,EAAKod,SAAUza,gBAAkBma,EAAOna,sBAIpElI,IAApB0iB,GAAiCtL,EAAAA,gBAAgBC,YAAYmL,KAC7DE,EAAkBF,EAAiB,IAGjB,QAAtBC,EAAOC,SAAe,IAAAD,OAAA,EAAfA,EAAiBG,MAGX,KAAAC,aAAgBd,IAC7B,MAAM,KAAEjjB,EAAI,OAAE/B,GAAW4b,KAAK7d,MACxBqnB,EAAoBrjB,EAAKgkB,cAActb,OACvCub,EAAUjkB,EAAKikB,QAAQvb,OACvB2E,EAAMwM,KAAK7d,MAAM8B,QAAQC,QAAQsP,IAAI6W,WAAW1hB,KACtD,IAAK6gB,EAED,OADAxJ,KAAK7d,MAAM8B,QAAQqH,UAAUC,MAAM,kDAC5B,KAEX,MAAM6U,EAAuB,GA8B7B,OA5BAoJ,EAAkB7jB,KAAI,CAACV,EAAqBY,KACxCujB,IACAhJ,EAAM1O,KACFhQ,EAAAA,cAAC2mB,EAAI,CACD9gB,IAAK1B,EACLoa,KAAMhb,EAAMsB,KACZ+a,UAAWrc,EAAMsB,KACjBoC,KAAM1D,EAAM2kB,IACZ/jB,MAAOujB,EAAaE,WACpBhiB,UAAU,qBACVxE,iBAAkBkd,KAAKld,uBAI/BsnB,IAAYhmB,EAAOkmB,kBACnBlB,IACAhJ,EAAM1O,KACFhQ,EAAAA,cAAC2mB,EAAI,CACDpI,KAAMmK,EAAQ7jB,KACd+a,UAAW8I,EAAQ7jB,KACnBoC,KAAM6K,EACN3N,MAAOujB,EAAaE,WACpBhB,SAAO,EACPhhB,UAAU,qBACVxE,iBAAkBkd,KAAKld,qBAI5Bsd,GAGM,KAAAmK,QAAU,KACvB9X,OAAO+X,QAAQC,QAGF,KAAAC,kBAAoB,IAE7B1K,KAAK7d,MAAM8B,SAAW+b,KAAK7d,MAAM8B,QAAQC,SAAW8b,KAAK7d,MAAM8B,QAAQC,QAAQymB,OAAS3K,KAAK7d,MAAM8B,QAAQC,QAAQymB,MAAMF,KAIzHlY,EAAAA,GAASC,YAAoC,KAAtBoY,SAASC,UAAmBpY,OAAO+X,QAAQjlB,OAAS,GACpE,KAGP7D,EAAAA,cAAA,KACI4F,UAAU,4BACVgN,KAAK,SACL3L,KAAK,sBACLmB,QAASkW,KAAKuK,QAAO,aACTvK,KAAK7d,MAAME,UAAUyoB,mBAEhC9K,KAAK7d,MAAME,UAAUyoB,mBAbnB,KA3MRxK,SACH,MAAM,UAAEhZ,GAAc0Y,KAAK7d,MAAMiC,OACjC,IAAI2mB,EAAW,KACXC,EAAkB,KAClBC,EAAsB,KAC1BF,EAAW/K,KAAKiJ,eAChB,MAAMG,EAAe2B,EAAW,EAAI,EACpC,GAAuB,aAAnB/K,KAAK8I,UACLkC,EAAkBhL,KAAKmJ,0BAA0BC,GAC5C4B,IACDA,EAAkBhL,KAAKuJ,sBAAsBH,SAE9C,GAAuB,YAAnBpJ,KAAK8I,WAEZ,GADAkC,EAAkBhL,KAAKmJ,0BAA0BC,IAC5C4B,EAAiB,CAClB,MAAME,EAAgBlL,KAAK7d,MAAM8B,QAAQE,IAAIC,OAAO+mB,eAC9B,aAAlBD,IACAF,EAAkBhL,KAAKkK,aAAad,IAElB,oBAAlB8B,IACAD,EAAsBjL,KAAK0K,oBAC3BM,EAAkBhL,KAAKkK,aAAad,IAElB,SAAlB8B,IACAD,EAAsBjL,KAAK0K,oBACC,OAAxBO,IACAD,EAAkBhL,KAAKkK,aAAad,WAKhD4B,EAAkBhL,KAAKmJ,0BAA0BC,GAErD,MAAMgC,EAAgB1pB,EAAAA,cAACinB,EAAS,CAACC,UAAU,MAErCyC,EAAmB7K,EAAAA,EAAA,GAClBR,KAAK7d,OAAK,IACbmpB,oBAAqB,CACjB7K,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAW,gBAAiBhV,GACvC0M,IAAK,MACLM,KAAM,cAEViX,eAAgB,CACZvX,IAAK,KACL1M,UAAW,sBAEfkkB,mBAAoB,CAChBxX,IAAK,KACL1M,UAAW,sBAEf4hB,KAAM6B,EACN3K,MAAO4K,EACPS,WAAYR,EACZrC,UAAWwC,IAEf,OAAOpL,KAAK7d,MAAM4e,WAAWsK,IAsKrC,sGC9PA,MAoCA,EApCuDlpB,IACnD,MAAM,KAAE+mB,EAAI,MAAE9I,EAAK,WAAEqL,EAAU,oBAAEH,EAAmB,eAAEC,EAAc,mBAAEC,EAAkB,UAAE5C,GAAczmB,EACxG,OAAK+mB,GAAS9I,GAAUqL,EAKpB/pB,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKypB,GACR5pB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK0pB,GACLrC,GACGxnB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK2pB,GACLtC,EACA9I,GAASwI,GAGjB6C,GAAc/pB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK2pB,GAAqBC,GAC7CrL,GACGA,EAAMza,KAAI,CAACyX,EAAMvX,IACbnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GACjBnE,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GACG2pB,EAAkB,CACtBlkB,UAAWgV,GAAAA,CACPkP,EAAmBlkB,UACnBzB,IAAUua,EAAM7a,OAAS,EAAI,0BAA4B,MAG5D6X,EACAgD,EAAMva,EAAQ,IAAM+iB,SAxB7CzmB,EAAM8B,QAAQqH,UAAUC,MAAM,mDACvB,uNCIR,MAAMmgB,EAAqDlX,IAS7D,IAT8D,GAC/D9M,EAAE,UACFJ,EAAS,KACT2Y,EAAI,UACJqB,EAAS,iBACTxe,EAAgB,SAChBuR,EAAQ,KACR+I,EAAI,QACJtT,GACH0K,EACG,MAAMlL,GAAUC,EAAAA,EAAAA,kBAAiB,QAASzG,EAAkBmd,GACtDlD,GAAapT,EAAAA,EAAAA,wBAAuB7G,EAAkBwG,GAC5D,OACI5H,EAAAA,cAACgH,EAAAA,OAAM9G,OAAAC,OAAA,CACH6F,GAAIA,EACJJ,UAAWA,EAAS,aACRga,EACZjN,SAAUA,EACVvK,QAASA,EACTwK,KAAK,SAAQ,gBACED,EACf1L,KAAMyU,GACFL,GAEHkD,IC5BA0L,EAAmDnX,IAA8C,IAA7C,GAAE9M,EAAE,UAAEJ,EAAS,KAAE0a,EAAO,OAAM,QAAEC,GAASzN,EACtG,MAAM0N,EAAiB,GAAG5a,MAAc0a,UAExC,OACItgB,EAAAA,cAAA,OACIgG,GAAIA,EACJJ,UAAWgV,GAAAA,CAAW4F,EAAgB,QAAS,GAAGF,UAClD1N,KAAK,QAAO,YACF,YAAW,aACV,oHAEX5S,EAAAA,cAAA,KAAG4F,UAAW,GAAG4a,UAAwBD,KCI/CE,EAAgBva,IAClB,GAAIA,EAAW,CACX,MAAMwa,EAAkBC,OAAOxa,SAASD,EAAW,IACnD,IAAK0a,MAAMF,GACP,OAAOA,IAONwJ,EAAmDpX,IAU3D,IAV4D,GAC7D9M,EAAE,KACFsa,EAAI,MACJ/c,EAAK,QACLsd,EAAO,UACPjb,EAAS,UACTM,EAAS,WACTikB,EAAU,SACVlkB,EAAQ,eACRmkB,GACHtX,EACG,OAAIwN,IAAS+J,EAAUC,SAEftqB,EAAAA,cAAA,YACIgG,GAAIA,EACJ3C,KAAM2C,EACNzC,MAAOA,EACPqC,UAAW,GAAGA,gBAAwBA,KAAaI,IAAI,gBACxCmkB,EACfjkB,UAAWua,EAAava,GACxBD,SAAUA,IAMlBjG,EAAAA,cAAA,SACIgG,GAAIA,EACJsa,KAAMA,EACN/c,MAAOA,EACPqC,UAAW,GAAGA,WAAmBA,KAAaI,IAC9C6a,QAAqB,KAAZA,EAAiBA,OAAUlb,EAAS,gBAC9BwkB,EACfjkB,UAAWua,EAAava,GACxBD,SAAUA,EACVskB,IAAKH,KC9DJI,EAAmD1X,IAAA,IAAC,GAAE9M,EAAE,MAAE8a,EAAK,UAAElb,EAAS,KAAE2Y,GAAMzL,EAAA,OAC3F9S,EAAAA,cAAA,SAAOgG,GAAI,GAAGA,UAAYJ,UAAW,GAAGA,UAAmBG,QAAS+a,GAC/DvC,ICMIkM,EAAmFhqB,IAC5F,MAAM,GAAEuF,EAAE,KAAE3C,EAAI,MAAEE,EAAK,MAAEyP,EAAK,UAAEpN,EAAS,SAAEK,GAAaxF,EACxD,OACIT,EAAAA,cAAA,OAAK4F,UAAWA,GACZ5F,EAAAA,cAAA,SAAOsgB,KAAK,QAAQta,GAAIA,EAAI3C,KAAMA,EAAME,MAAOA,EAAO0C,SAAUA,IAChEjG,EAAAA,cAAA,SAAO+F,QAASC,GAAKgN,0kBC2C1B,IAAKqX,EASAK,GATZ,SAAYL,GAERA,EAAA,YACAA,EAAA,kBACAA,EAAA,cACAA,EAAA,oBACAA,EAAA,0BANJ,CAAYA,IAAAA,EAAS,KASrB,SAAYK,GACRA,EAAA,sBACAA,EAAA,oBACAA,EAAA,qBACAA,EAAA,0BACAA,EAAA,yBACAA,EAAA,oBACAA,EAAA,mBACAA,EAAA,wBACAA,EAAA,kBACAA,EAAA,4BAVJ,CAAYA,IAAAA,EAAO,KAaZ,MAAMC,EAAqBA,CAC9BC,EACAhlB,EACAilB,EACAC,EACAC,EACAC,EACAC,IAEOL,EAAO3mB,KAAI,CAACinB,EAAS/mB,KACxB,MAAM,GACF6B,EAAE,KACFsa,EAAI,MACJtN,EAAK,SACLmY,EAAQ,WACRhB,EAAU,QACVtJ,EAAO,YACPuK,EAAW,MACX7nB,EAAK,eACL6mB,EAAc,mBACdiB,EAAkB,sBAClBC,GACAJ,EAEEK,EAAsC,CACxCvF,QAAS,CACLpgB,UAAWgV,GAAAA,CAAWhV,EAAW,GAAGA,KAAaI,IAAMolB,IAE3DplB,GAAAA,EACAgN,MAAOhT,EAAAA,cAACwqB,EAAWtqB,OAAAC,OAAA,GAAK,CAAE6F,GAAAA,EAAI8a,MAAO9a,EAAIJ,UAAAA,EAAW2Y,KAAMvL,KAC1DmR,aAAcnkB,EAAAA,cAACiqB,EAAW/pB,OAAAC,OAAA,GAAK,CAAEyF,UAAAA,EAAW0a,KAAM,WA+CtD,OA5CIA,IAAS+J,EAAUmB,QACfR,GACAO,EAAeE,gBAAiB,EAChCF,EAAerF,MACXlmB,EAAAA,cAAAA,EAAAA,SAAA,KACKA,EAAAA,aAAmBgrB,EAAmC,CACnDU,WAAYT,EACZU,SAAUZ,EACVZ,gBAA2BxkB,IAAfwkB,GAAmCA,EAC/CyB,aAAcf,MAM1BD,EAAOnN,OAAOtZ,EAAO,GAElBmc,IAAS+J,EAAUwB,YAC1BN,EAAerF,MACXlmB,EAAAA,cAAA,OAAK4F,UAAW0lB,GACXD,GACGA,EAAmBpnB,KAAI,CAACinB,EAAS/mB,IACtBnE,EAAAA,cAACyqB,EAA+BvqB,OAAAC,OAAA,CAAC0F,IAAK1B,GAAW+mB,OAKxEK,EAAerF,MACXlmB,EAAAA,cAACkqB,EAAWhqB,OAAAC,OAAA,GACJ,CACA6F,GAAAA,EACAsa,KAAAA,EACA/c,MAAAA,EACA2C,UAAWilB,EACXtK,QAAAA,EACAjb,UAAAA,EACAukB,gBAA2BxkB,IAAfwkB,GAAmCA,EAC/ClkB,SAAU6kB,EACVV,eAAAA,KAMTmB,KAUf,MAAMO,UAAuB9rB,EAAAA,UAmHzBme,YAAY1d,GAAmC,IAAAsrB,EAC3C3N,MAAM3d,GAAMsrB,EAAAzN,KAnHC,KAAA2C,gBAA0B,sBAC1B,KAAA+K,wBAAkC,gCAI5C,KAAAC,4BAA2C,CAC9C,CACIjmB,GAAI0kB,EAAQwB,aACZ5L,KAAM+J,EAAUwB,YAChB7Y,MAAOsL,KAAK7d,MAAME,UAAUwrB,kBAC5B5oB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YACbE,sBAAuB,yBACvBD,mBAAoB,CAChB,CACIrlB,GAAI,GAAG0kB,EAAQwB,qBACf7oB,KAAMib,KAAK0N,wBACXzoB,MAAO,IACPyP,MAAOsL,KAAK7d,MAAME,UAAUyrB,uBAC5BxmB,UAAW,GAAG0Y,KAAK2C,iDACnBhb,SAAUqY,KAAK+N,eAAeC,KAAKhO,OAEvC,CACItY,GAAI,GAAG0kB,EAAQwB,sBACf7oB,KAAMib,KAAK0N,wBACXzoB,MAAO,IACPqC,UAAW,GAAG0Y,KAAK2C,iDACnBjO,MAAOsL,KAAK7d,MAAME,UAAU4rB,wBAC5BtmB,SAAUqY,KAAK+N,eAAeC,KAAKhO,SAI/C,CACItY,GAAI0kB,EAAQrS,UACZiI,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAU6rB,eAC5BjpB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQ+B,SACZnM,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAU+rB,cAC5BnpB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQiC,MACZrM,KAAM+J,EAAUsC,MAChB3Z,MAAOsL,KAAK7d,MAAME,UAAUisB,kBAC5BrpB,MAAO,GACP4mB,YAAY,EACZtJ,QAASmB,EAAAA,WAAWC,aAAaC,OACjCkJ,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQmC,YACZvM,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAUmsB,aAC5BvpB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQqC,WACZzM,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAUqsB,gBAC5BzpB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQuC,SACZ3M,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAUusB,cAC5B3pB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQyC,KACZ7M,KAAM+J,EAAU9B,KAChBvV,MAAOsL,KAAK7d,MAAME,UAAUysB,iBAC5B7pB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,YAEjB,CACIplB,GAAI0kB,EAAQc,QACZlL,KAAM+J,EAAUmB,QAChBxY,MAAOsL,KAAK7d,MAAME,UAAU0sB,oBAC5B9pB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,aAEjB,CACIplB,GAAI0kB,EAAQ4C,QACZhN,KAAM+J,EAAUC,SAChBtX,MAAOsL,KAAK7d,MAAME,UAAU4sB,aAC5BhqB,MAAO,GACP4mB,YAAY,EACZiB,YAAa,cAIJ,KAAAoC,mBAAwDxtB,EAAAA,YAEjE,KAAAytB,cAAwB,EAgEzB,KAAApP,oBAAuBhW,IAC1BiW,KAAK7d,MAAMiC,OAAOmR,QAAQ0K,KAAOlW,EAAM/E,OAAOC,OA4FjC,KAAAmqB,iBAAmB,CAAChlB,EAAiBilB,KAElD,MAAMC,EAAUtP,KAAKkE,MAAMqL,UACrBC,EAAcF,EAAQnqB,MAAKyH,GACtBA,EAAKoV,OAAS+J,EAAUmB,UAI/BsC,IACAA,EAAYC,QAAUJ,EAGtBrP,KAAK0P,SACD,CACIH,UAAWD,EACXK,iBAAkBvlB,EAClBwlB,mBAAmB,IAEvB,KACI5P,KAAK0P,SAAS,CAAEG,QAAS7P,KAAK8P,sBAM7B,KAAAA,aAAe,KAC5B,MAAM,UAAEP,GAAcvP,KAAKkE,MAE3B,IAAK,MAAM6L,KAAgBR,EAAW,CAQlC,GAAIQ,EAAalE,WACb,GAAIkE,EAAa/N,OAAS+J,EAAUmB,SAChC,GAAIlN,KAAKkE,MAAMyL,iBACX,OAAO,OAER,QAA2BtoB,IAAvB0oB,EAAa9qB,OAA8C,KAAvB8qB,EAAa9qB,MACxD,OAAO,EAGf,QAA6BoC,IAAzB0oB,EAAaxN,SAA4E,OAAnDwN,EAAa9qB,MAAM+qB,MAAMD,EAAaxN,SAC5E,OAAO,EAIf,OAAO,GAGM,KAAA0N,UAAalmB,IAC1B,GAAIiW,KAAKkE,MAAMyL,iBAMX,OALA3P,KAAK0P,SAAS,CACVE,mBAAmB,SAGvB7lB,EAAMmmB,iBAIV,MAAM,OAAE9rB,EAAM,QAAEH,GAAY+b,KAAK7d,MAG3BguB,EAAYnQ,KAAKoQ,SAAShE,EAAQrS,WAClCsW,EAAWrQ,KAAKoQ,SAAShE,EAAQ+B,UACjCmC,EAActQ,KAAKoQ,SAAShE,EAAQmC,aACpCgC,EAAevQ,KAAKoQ,SAAShE,EAAQiC,OACrCmC,EAAiBxQ,KAAKoQ,SAAShE,EAAQc,SAAS,GAChDuD,EAAWzQ,KAAKoQ,SAAShE,EAAQuC,UACjC+B,EAAa1Q,KAAKoQ,SAAShE,EAAQqC,YACnCkC,EAAc3Q,KAAKoQ,SAAShE,EAAQyC,MACpC+B,EAAW5Q,KAAKoQ,SAAShE,EAAQ4C,SACjC6B,EAAe7Q,KAAKoQ,SAAShE,EAAQwB,cAGvC2C,GAAgBA,EAAatrB,OAASurB,GAAkBA,EAAef,UACvEe,EAAef,QAAQpB,MAAQkC,EAAatrB,OAGhD,MAAM6rB,EAAsC,CACxC/W,UAAWoW,GAAaA,EAAUlrB,MAClCkpB,SAAUkC,GAAYA,EAASprB,MAC/BspB,YAAa+B,GAAeA,EAAYrrB,MACxCioB,QAASsD,GAAkBA,EAAef,SAAWe,EAAef,QACpEd,SAAU8B,GAAYA,EAASxrB,MAC/BwpB,WAAYiC,GAAcA,EAAWzrB,MACrC8rB,YAAcJ,GAAetO,OAAOxa,SAAS8oB,EAAY1rB,MAAO,KAAQ,EACxE+rB,SAAUJ,GAAYA,EAAS3rB,MAC/BgsB,kBAAoBJ,GAAgBxO,OAAOxa,SAASgpB,EAAa5rB,MAAO,KAAQ,GAGpF+a,KAAK0P,SAAS,CACVG,SAAS,KAIbqB,EAAAA,EAAAA,qBAAoB,CAAEtgB,cAAe3M,EAAQsE,eAAiBuoB,GACzDtX,MAAK,KACF,MAAM2X,EACD/sB,EAAOgtB,kBAAoBhtB,EAAOgtB,iBAAiB7P,SAAWnd,EAAOgtB,iBAAiB7P,QAAQC,iBAC/FlZ,EAAAA,EAAAA,IAAW,OAAQ0X,KAAK7d,MAAM8B,QAAQsE,gBACtC,GACJkK,OAAOC,SAAS/J,KAAOwoB,KAE1BE,OAAM,KACHrR,KAAK0P,SAAS,CACV4B,iBAAiB,QAKhB,KAAAC,UAAY,KAEzB,MAAMC,EAAYxR,KAAKkE,MAAMqL,UAC7BiC,EAAUxe,SAAQ4U,IACdA,EAAM3iB,MAAQ,MAIlB+a,KAAKmP,cAAe,EAEpBnP,KAAK0P,SAAS,CACVG,SAAS,EACTN,UAAWiC,EACX7B,kBAAkB,EAClBC,mBAAmB,EACnB0B,iBAAiB,KAIR,KAAAlB,SAAW,SAAC1oB,GAA0C,IAA9BlC,EAAAisB,UAAAlsB,OAAA,QAAA8B,IAAAoqB,UAAA,IAAAA,UAAA,GACrC,OAAIjsB,EACOioB,EAAKvJ,MAAMqL,UAAUpqB,MAAKyH,GACtBA,EAAKlF,KAAOA,GAAMkF,EAAK6iB,UAG/BhC,EAAKvJ,MAAMqL,UAAUpqB,MAAKyH,GACtBA,EAAKlF,KAAOA,GAAqB,KAAfkF,EAAK3H,SAlSlC+a,KAAKkE,MAAQ,CACT2L,SAAS,EACTN,UAAWvP,KAAK7d,MAAMotB,WAAavP,KAAK0R,kBACxC/B,kBAAkB,EAClBC,mBAAmB,EACnB0B,iBAAiB,GAErBtR,KAAKld,kBAAmB4Z,EAAAA,EAAAA,oBACpBsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAIZuY,oBAAiB,IAAA8N,EACW,QAA/BA,EAAA3R,KAAKkP,mBAAmB0C,eAAO,IAAAD,GAA/BA,EAAiCE,QAG9B9N,sBAAsBC,EAAyCC,GAClE,OAAIjE,KAAKkE,QAAUD,GAAajE,KAAK7d,MAAMgE,OAAS6d,EAAU7d,KAM3Dma,SACH,MAAM,OAAElc,GAAW4b,KAAK7d,OAClB,UAAEotB,GAAcvP,KAAKkE,OACrB,UAAE5c,EAAS,QAAEiO,GAAYnR,EAEzBmc,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACb2vB,eAAgB,CACZrR,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAW0D,KAAK2C,gBAAiBrb,IAEhDyqB,iBAAkB,CACdzqB,UAAW,GAAG0Y,KAAK2C,8BAEvBpN,QACI7T,EAAAA,cAACuoB,EAAAA,GAAIroB,OAAAC,OAAA,CACDyF,UAAW,GAAG0Y,KAAK2C,4BACfpN,EAAO,CACXoL,UAAW,CAAEC,OAAQZ,KAAKD,oBAAqB/T,eAAgBgU,KAAK7d,MAAM8B,QAAQC,YAG1F8tB,mBAAoBhS,KAAKiS,cACzB1C,UAAAA,IAGJ,OAAOvP,KAAK7d,MAAM4e,WAAWR,GAWzB0R,cACJ,MAAM,OAAE7tB,EAAM,UAAE/B,EAAS,MAAE6vB,GAAUlS,KAAK7d,OACpC,kBAAEytB,EAAiB,gBAAE0B,EAAe,QAAEzB,EAAO,UAAEN,GAAcvP,KAAKkE,OAClE,sBACFiO,EAAqB,iBACrBC,EAAgB,sBAChBC,EAAqB,iBACrBhL,EAAgB,aAChBxB,EAAY,2BACZyM,GACAjwB,EACEqqB,EAAewF,GAASA,EAAMK,aAAeL,EAAMK,YAAYhtB,OAAS,GAAK2sB,EAAMK,YAAY,SAAOlrB,EAEtGmrB,EAAO,CACTC,YAAa,CACTnrB,UAAW,GAAG0Y,KAAK2C,0BAEvB1I,MAAOoS,EACHkD,EACA,GAAGvP,KAAK2C,6BACR3C,KAAKmP,aACLnP,KAAK+N,eAAeC,KAAKhO,MACzB4P,EACAlD,EACA1M,KAAKoP,kBAETnI,QAAS,CACLvlB,EAAAA,cAACgqB,EAAY,CACTnkB,IAAI,WACJG,GAAG,WACHJ,UAAW,GAAG0Y,KAAK2C,iCACnBrB,UAAW6Q,EACXlS,KAAMmS,EACN/d,UAAWwb,EACX/lB,QAASkW,KAAKiQ,UACdntB,iBAAkBkd,KAAKld,mBAE3BpB,EAAAA,cAACgqB,EAAY,CACTnkB,IAAI,SACJG,GAAG,SACHJ,UAAW,GAAG0Y,KAAK2C,iCACnBrB,UAAW+Q,EACXpS,KAAMoH,EACNvd,QAASkW,KAAKuR,UACdzuB,iBAAkBkd,KAAKld,oBAG/B+iB,aAAc,CACVyL,GAAmB5vB,EAAAA,cAACiqB,EAAW,CAACpkB,IAAI,QAAQG,GAAG,QAAQJ,UAAW0Y,KAAK2C,gBAAiBV,QAAS4D,IACjG+J,GACIluB,EAAAA,cAACiqB,EAAW,CAACpkB,IAAI,QAAQG,GAAG,QAAQJ,UAAW0Y,KAAK2C,gBAAiBV,QAASqQ,KAGtFI,WAAYtuB,EAAOsuB,YACfhxB,EAAAA,cAACixB,EAAAA,GAAiB,CAACrrB,UAAW,GAAG0Y,KAAK2C,8BAA+B1C,KAAM7b,EAAOsuB,cAQ1F,OAJI1S,KAAKmP,eACLnP,KAAKmP,cAAe,GAGjBqD,EAGHzE,eAAehkB,GACnB,MAAMulB,EAAUtP,KAAKkE,MAAMqL,UAC3BD,EAAQtc,SAAQpG,KACRA,EAAKoV,OAAS+J,EAAUwB,aAAexjB,EAAM/E,OAAOD,OAASib,KAAK0N,yBAE3D9gB,EAAKlF,KAAOqC,EAAM/E,OAAO0C,MADhCkF,EAAK3H,MAAQ8E,EAAM/E,OAAOC,UAOlC+a,KAAK0P,SAAS,CACVG,QAAS7P,KAAK8P,eACdP,UAAWD,EACXgC,iBAAiB,IAIjBI,kBACJ,MAAMkB,EAAgB5S,KAAK2N,4BAE3B,OADAiF,EAAc,GAAG9G,eAAiB9L,KAAKkP,mBAChC0D,GAoJf,qFCtkBA,MAAMC,EAAoDre,IAA4D,IAA3D,QAAEkT,EAAO,MAAEhT,EAAK,aAAEmR,EAAY,MAAE+B,EAAK,eAAEuF,GAAgB3Y,EAE9G,OACI9S,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK6lB,IACJyF,GAAkBzY,GAClByY,GAAkBtH,EACnB+B,IAkCb,EA7B8DzlB,IAC1D,MAAM,eAAE2vB,EAAc,iBAAEC,EAAgB,QAAExc,EAAO,mBAAEyc,GAAuB7vB,GAEpE,YAAEswB,EAAW,QAAExL,EAAO,MAAEhN,EAAK,aAAE4L,EAAY,WAAE6M,GAAeV,EAElE,OACItwB,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKiwB,GACRpwB,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKkwB,GACLxc,EACD7T,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4wB,GACLxY,GACGA,EAAMtU,KAAKiH,GACAlL,EAAAA,cAACmxB,EAAkBjxB,OAAAC,OAAA,CAAC0F,IAAKqF,EAAKlF,IAAQkF,MAEpDiZ,GACGA,EAAalgB,KAAI,CAAC4F,EAAwB1F,IAC/BnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQ0F,KAE3C0b,GACGA,EAAQthB,KAAI,CAACwiB,EAAyBtiB,IAC3BnE,EAAAA,cAACA,EAAAA,SAAc,CAAC6F,IAAK1B,GAAQsiB,KAE3CuK,6MCzBd,MAAMI,UAAkBpxB,IAAAA,UAC3Bme,YAAY1d,GACR2d,MAAM3d,GAsBO,KAAA4wB,mBAAsBC,IACnChT,KAAK0P,SAAS,CACVuD,WAAYD,EAAGhuB,OAAOC,SAIb,KAAAiuB,SAAW,KACxBlT,KAAK7d,MAAM+wB,SAASlT,KAAKkE,MAAM+O,aAGlB,KAAAE,YAAeppB,IACxBA,EAAMqpB,UAAYC,EAAAA,SAASC,OAC3BtT,KAAKkT,YAjCTlT,KAAKkE,MAAQ,CACT+O,WAAY,IAIb3S,SACH,MAAM,UAAEhZ,EAAS,uBAAEisB,GAA2BvT,KAAK7d,MACnD,OACIT,IAAAA,cAAA,OAAK4F,UAAW,GAAGA,aACf5F,IAAAA,cAAA,SACIsgB,KAAK,OACL1a,UAAW,GAAGA,eACdksB,YAAaD,EACb5rB,SAAUqY,KAAK+S,mBACfU,QAASzT,KAAKmT,cAElBzxB,IAAAA,cAAA,UAAQ4F,UAAW,GAAGA,kBAA2BwC,QAASkW,KAAKkT,SAAUtqB,MAAO2qB,MC6DzF,MAAMG,UAAwBhyB,IAAAA,UACjCme,YAAY1d,GACR2d,MAAM3d,GAkEO,KAAAwxB,iBAAmB,KAChC,MAAMrsB,EAAY,GAAG0Y,KAAK7d,MAAMmF,oBAC1BssB,EAAe,GAAGtsB,SACxB,OACI5F,IAAAA,cAAA,SAAO4F,UAAWA,GACd5F,IAAAA,cAAA,MAAI4F,UAAWssB,GACV5T,KAAK7d,MAAM0xB,QAAQluB,KAAImuB,GACpBpyB,IAAAA,cAAA,MAAI6F,IAAKusB,EAAOC,SAAUzsB,UAAWwsB,EAAOxsB,WACvCwsB,EAAO/uB,WAcf,KAAAivB,cAAgB,CAACpnB,EAAa/G,KAC3C,MAAM+tB,EAAe,GAAG5T,KAAK7d,MAAMmF,iBACnC,OACI5F,IAAAA,cAAA,MAAI4F,UAAWssB,EAAcrsB,IAAK1B,GAC7Bma,KAAK7d,MAAM0xB,QAAQluB,KAAImuB,IACpB,IAAIG,EAAoBvyB,IAAAA,cAAAA,IAAAA,SAAA,MAMxB,OALIoyB,EAAOI,SACPD,EAAOH,EAAOI,SAAStnB,GAChBknB,EAAOK,YACdF,EAAOvyB,IAAAA,cAAA,YAASkL,EAA+CknB,EAAOK,aAGtEzyB,IAAAA,cAAA,MAAI6F,IAAKusB,EAAOC,SAAUzsB,UAAWwsB,EAAOxsB,UAAWwC,QAASA,KAAA,IAAAsqB,EAAA,OAAoB,QAApBA,EAAMN,EAAOhqB,eAAO,IAAAsqB,OAAA,EAAdA,EAAAC,KAAAP,EAAiBlnB,KAClFqnB,QAYR,KAAAK,iBAAmBpkB,UAChC,GAAK8P,KAAK7d,MAAM8B,QAAQsE,cAAcyD,eAAezH,KAAKkK,gBAM1D,IACI,MAAMI,QAAemR,KAAK7d,MAAMoyB,WAChCvU,KAAK0P,SAAS,CACVjgB,WAAW,EACXtJ,KAAM0I,IAEZ,MAAO/J,GAAI,IAAD0vB,EACRxU,KAAK0P,SAAS,CACVjgB,WAAW,EACXoW,cAAe/gB,MAAAA,GAAuC,QAAN0vB,EAAjC1vB,EAAmCqB,YAAI,IAAAquB,OAAA,EAAvCA,EAAyCC,mBAAoBzU,KAAK7d,MAAME,UAAUqyB,2BAdrG1U,KAAK0P,SAAS,CACVjgB,WAAW,KAkBN,KAAAyjB,SAAYD,IACzBjT,KAAK0P,SAAS,CACViF,OAAQ,CAAE9uB,MAAO,GACjBsN,OAAQ,CAAE8f,WAAAA,MAID,KAAA2B,SAAW,KACxB5U,KAAK0P,SAAS,CACViF,OAAQ,CAAE9uB,MAAOma,KAAKkE,MAAMyQ,OAAO9uB,MAAQ,MAIlC,KAAAgvB,SAAW,KACxB,MAAMC,EAAU9U,KAAKkE,MAAM4Q,QAC3B,IAAKA,EACD,OAAO9U,KAAKkE,MAAM/d,KAEtB,MAAM,UAAEguB,EAAS,UAAEY,GAAcD,EACjC,OAAO9U,KAAKkE,MAAM/d,KAAK6uB,MAAK,CAACC,EAAcC,KACvC,IAAIC,EAAWF,EAAgDd,GAC3DiB,EAAWF,EAAgDf,GACzC,iBAAXgB,GAAyC,iBAAXC,IACrCD,EAASA,EAAO5lB,cAChB6lB,EAASA,EAAO7lB,eAEpB,MAAM8lB,EAAgBF,EAASC,EAAS,EAAID,EAASC,GAAU,EAAI,EACnE,OAAOL,EAAYM,GAAiC,EAAjBA,MAI1B,KAAAC,WAAa,KAC1B,MAAMxB,EAAS9T,KAAK7d,MAAM0xB,QAAQ1uB,MAAKowB,GAAKA,EAAEC,eACxCvC,EAAajT,KAAKkE,MAAM/Q,OAAO8f,WACrC,OAAOjT,KAAK6U,WAAW1hB,QAAOvG,IAC1B,GAAKknB,MAAAA,IAAAA,EAAQK,YAAclB,EACvB,OAAO,EAEX,MAAMwC,EAAgB7oB,EAA+CknB,EAAOK,WAC5E,OAAOsB,GAAeA,EAAYlmB,cAAcmmB,QAAQzC,EAAWhsB,OAAOsI,gBAAkB,MAInF,KAAAomB,iBAAmB,KAChC,MAAMhmB,GAAcqQ,KAAK7d,MAAMyzB,UAzLf,KAyL+C5V,KAAKkE,MAAMyQ,OAAO9uB,MAAQ,GAEzF,OADsBma,KAAKsV,aACNO,MAAM,EAAGlmB,IAGjB,KAAAmmB,QAAU,KACvB,MAAMnmB,GAAcqQ,KAAK7d,MAAMyzB,UA/Lf,KA+L+C5V,KAAKkE,MAAMyQ,OAAO9uB,MAAQ,GAEzF,OADsBma,KAAKsV,aACN/vB,OAASoK,GAzL9BqQ,KAAKkE,MAAQ,CACT/d,KAAM,GACN2uB,QAAS3yB,EAAM4zB,eACfpB,OAAQ,CAAE9uB,MAAO,GACjBsN,OAAQ,CAAE8f,WAAY,IACtBxjB,WAAW,EACXoW,aAAc,IAIfhC,oBACH7D,KAAKsU,mBAGFvQ,sBAAsBC,EAA4CC,GACrE,OACIjE,KAAK7d,MAAMuF,KAAOsc,EAAUtc,IAC5BsY,KAAK7d,MAAM0xB,UAAY7P,EAAU6P,SACjC7T,KAAKkE,MAAM/d,OAAS8d,EAAU9d,MAC9B6Z,KAAKkE,MAAMyQ,SAAW1Q,EAAU0Q,QAChC3U,KAAKkE,MAAM/Q,SAAW8Q,EAAU9Q,QAChC6M,KAAKkE,MAAMzU,YAAcwU,EAAUxU,WACnCuQ,KAAKkE,MAAM2B,eAAiB5B,EAAU4B,aAIvCvF,SACH,MAAMna,EAAO6Z,KAAK2V,mBACZG,EAAU9V,KAAK8V,UACrB,OAAI9V,KAAKkE,MAAM2B,aACJnkB,IAAAA,cAACs0B,EAAAA,MAAK,CAAC9Y,MAAM,UAAU8C,KAAKkE,MAAM2B,cAEzC7F,KAAKkE,MAAMzU,UACJ/N,IAAAA,cAAA,QAAM4F,UAAW,GAAGqb,cAA6B3C,KAAK7d,MAAME,UAAU4L,cAE5EwQ,EAAAA,gBAAgBC,YAAYvY,GAS7BzE,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACoxB,EAASlxB,OAAAC,OAAA,GAAKme,KAAK7d,MAAK,CAAE+wB,SAAUlT,KAAKkT,YAC1CxxB,IAAAA,cAAA,SAAO4F,UAAW0Y,KAAK7d,MAAMmF,WACxB0Y,KAAK2T,mBACLxtB,EAAKR,KAAI,CAACiH,EAAM/G,IAAUma,KAAKgU,cAAcpnB,EAAM/G,MAEvDiwB,GACGp0B,IAAAA,cAAA,OAAK4F,UAAW,GAAG0Y,KAAK7d,MAAMmF,wBAC1B5F,IAAAA,cAACgH,EAAAA,OAAM,CAACoB,QAASkW,KAAK4U,SAAUttB,UAAW,GAAG0Y,KAAK7d,MAAMmF,4BACpD0Y,KAAK7d,MAAME,UAAU4zB,2BAhBlCv0B,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACoxB,EAASlxB,OAAAC,OAAA,GAAKme,KAAK7d,MAAK,CAAE+wB,SAAUlT,KAAKkT,YAC1CxxB,IAAAA,cAAA,KAAG4F,UAAW,GAAGqb,oBAAmC3C,KAAK7d,MAAME,UAAU6zB,slBCxGtF,MAAMC,UAAkCz0B,IAAAA,UAA/Cme,cAAA,oBAqBqB,KAAAuW,WAAa,KAC1B,MAAMC,EAAsG,QAArFC,EAAAA,EAAAA,UAAS,CAAEC,QAASC,EAAAA,YAAYC,SAAUxyB,QAAS+b,KAAK7d,MAAM8B,QAAQC,UAE7F,MAAO,CACH,CACI6vB,SAAU,OACVhvB,KAAMib,KAAK7d,MAAME,UAAUq0B,iCAC3BlB,cAAc,EACdrB,UAAW,OACXrqB,QAASkW,KAAK7d,MAAMw0B,SACpBzC,SAAW/tB,GAAwCzE,IAAAA,cAAA,KAAG4S,KAAK,UAAUnO,EAAKpB,OAE9E,CACIgvB,SAAU,QACVhvB,KAAMib,KAAK7d,MAAME,UAAUu0B,kCAC3BzC,UAAW,QACXrqB,QAASkW,KAAK7d,MAAMw0B,UAExB,CACI5C,SAAU,gBACVhvB,KAAMib,KAAK7d,MAAME,UAAUw0B,0CAC3BvvB,UAAW,GAAG0Y,KAAK7d,MAAMmF,qCACzB6sB,UAAW,gBACXrqB,QAAUusB,OAAuChvB,EAAtB2Y,KAAK7d,MAAMw0B,YASjC,KAAAG,wBAA0B5mB,gBACR6mB,EAAAA,4BAAAA,cAC3B,CACInmB,cAAeoP,KAAK7d,MAAM8B,QAAQsE,cAClCyuB,YAAa,MACbnmB,oBAAqB,IAEzBmP,KAAK7d,MAAM80B,gBAAgBC,oBAG1B/jB,QAAO5O,GAA6B,IAArBA,EAAK4yB,cACpBxxB,KAAIpB,GACDic,EAAAA,EAAA,GACOjc,GAAI,IACPQ,KAAM,GAAGR,EAAKwV,aAAaxV,EAAK4pB,WAChCiJ,cACI11B,IAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,kBACVsX,EAAAA,iBAAiBC,kBAAkBta,EAAK8yB,eAEpC,GADArX,KAAK7d,MAAM8B,QAAQqzB,iBAAiBC,eAAehzB,EAAK8yB,cAAc/N,YAE1E1K,EAAAA,iBAAiBC,kBAAkBta,EAAK8yB,gBAAyC,IAAvB9yB,EAAK8yB,cAQ7D,GAPA31B,IAAAA,cAAA,OACI4F,UAAU,0BAAyB,aACvB,GAAG0Y,KAAK7d,MAAME,UAAUm1B,+CAEpC91B,IAAAA,cAAA,KAAG4F,UAAU,iBAAgB,cAAa,eA7EnEyc,sBAAsBC,GACzB,OAAOhE,KAAK7d,MAAMuF,KAAOsc,EAAUtc,GAGhC4Y,SACH,OACI5e,IAAAA,cAACgyB,EAAQ9xB,OAAAC,OAAA,GACDme,KAAK7d,MAAK,CACdoyB,SAAUvU,KAAK8W,wBACfjD,QAAS7T,KAAKoW,aACdL,eAAgB,CAAE5B,UAAW,OAAQY,WAAW,GAChDxB,uBAAwBvT,KAAK7d,MAAME,UAAUo1B,kCCvBtD,MAAMC,UAA8Bh2B,IAAAA,UAA3Cme,cAAA,oBAqBqB,KAAAuW,WAAa,IACnB,CACH,CACIrC,SAAU,OACVhvB,KAAMib,KAAK7d,MAAME,UAAUs1B,oBAC3BnC,cAAc,EACdrB,UAAW,OACXrqB,QAASkW,KAAK7d,MAAMw0B,SACpBzC,SAAW/tB,GAA0BzE,IAAAA,cAAA,KAAG4S,KAAK,UAAUnO,EAAKI,QASvD,KAAAqxB,oBAAsB1nB,eACJ6mB,EAAAA,4BAAAA,gCAA4D,CACvFnmB,cAAeoP,KAAK7d,MAAM8B,QAAQsE,cAClCyuB,YAAa,MACbnmB,oBAAqB,KAzCtBkT,sBAAsBC,GACzB,OAAOhE,KAAK7d,MAAMuF,KAAOsc,EAAUtc,GAGhC4Y,SACH,OACI5e,IAAAA,cAACgyB,EAAQ9xB,OAAAC,OAAA,GACDme,KAAK7d,MAAK,CACdoyB,SAAUvU,KAAK4X,oBACf/D,QAAS7T,KAAKoW,aACdL,eAAgB,CAAE5B,UAAW,OAAQY,WAAW,GAChDxB,uBAAwBvT,KAAK7d,MAAME,UAAUw1B,smBCStD,MAAMlV,EAA0B,uBAKvC,MAAMmV,UAAyBp2B,EAAAA,UAC3Bme,YAAY1d,GACR2d,MAAM3d,GAmGO,KAAA41B,wBAA2Bd,IACxCjX,KAAK0P,SAAS,CACVsI,wBAAyBf,KAQhB,KAAAgB,4BAA8B/nB,MAAAA,IAC3C,GAAIgoB,EAAoBC,cAAe,CACnCnY,KAAK0P,SAAS,CACV0I,4BAA6BF,IAGjClY,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQC,2BAA0B,EAAMJ,EAAoBC,eACvF,MAAMI,QAAkBvY,KAAKwY,+BAC7BC,EAAAA,EAAAA,mBAAkBF,GAClB,MAAMG,EAAUhY,EAAAA,GAAoB,OAAQV,KAAK7d,MAAM8B,QAAQsE,eAC/D,GAAImwB,GAAWhY,EAAAA,GAA0BlO,gBAA2BnL,IAAdkxB,EAAyB,CAC3E,MAAMI,EAAU,IAAIC,IAAIF,EAASjmB,OAAOC,SAAS/J,MACjDgwB,EAAQE,aAAaC,IAAI,YAAa,GAAGP,KACzC9lB,OAAOC,SAAS/J,KAAOgwB,EAAQhwB,UAE/BqX,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQU,iCAQ9B,KAAAP,4BAA8BtoB,UAC3C8P,KAAK0P,SAAS,CACVsJ,kBAAkB,IAGtB,MAAMhtB,EAAiBgU,KAAK7d,MAAM8B,QAAQC,QACpC8M,EAAYhF,EAAe+E,YAAYC,UAAYqR,OAAOrW,EAAe+E,YAAYC,WAAa,EAExG,IAAK,IAADioB,EACA,MAAMC,QAAwBC,EAAAA,oBAAAA,iBAC1B,CAAEvoB,cAAeoP,KAAK7d,MAAM8B,QAAQsE,eACpCyI,GACA,GAKJ,OAHAgP,KAAK0P,SAAS,CACVsJ,kBAAkB,KAEG,QAAlBC,EAAAC,EAAgB,UAAE,IAAAD,OAAA,EAAlBA,EAAoBG,WAAY,EACzC,MAAOt0B,GAAI,IAAD0vB,EAMR,YALAxU,KAAK0P,SAAS,CACVsJ,kBAAkB,EAClBK,yBACKv0B,MAAAA,GAAuC,QAAN0vB,EAAjC1vB,EAAmCqB,YAAI,IAAAquB,OAAA,EAAvCA,EAAyCC,mBAAoBzU,KAAK7d,MAAME,UAAUqyB,wBAzJ/F1U,KAAKkE,MAAQ,GAGVL,oBACH7D,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQU,+BAGhChV,sBAAsBC,EAA0DC,GACnF,OAAIjE,KAAKkE,QAAUD,GAAajE,KAAK7d,MAAMgE,OAAS6d,EAAU7d,KAM3Dma,SACH,MACIlc,QAAQ,UAAEkD,EAAS,SAAEsuB,EAAQ,wBAAE0D,EAAuB,4BAAEC,IACxDvZ,KAAK7d,MACHoe,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACbi2B,4BAA6BpY,KAAKkE,MAAMkU,4BACxCoB,sBAAuB,CACnB/Y,YAAaT,KAAK7d,MAClBmF,UAAWmyB,GAAAA,CAAU9W,EAAiBrb,IAE1CgyB,yBAA0BtZ,KAAKkE,MAAM8T,yBAA2BsB,GAA2BA,EAAwBrZ,MAC/Gve,EAAAA,cAACgf,EAAAA,GAAa,CACVpZ,UAAW,GAAGqb,aACd3O,IAAKslB,EAAwBtlB,IAC7BiM,KAAMqZ,EAAwBrZ,OAGtCsZ,4BAA6BvZ,KAAKkE,MAAM8T,yBACpCuB,GACAA,EAA4BtZ,MACxBve,EAAAA,cAACgf,EAAAA,GAAa,CACVpZ,UAAW,GAAGqb,aACd3O,IAAKulB,EAA4BvlB,IACjCiM,KAAMsZ,EAA4BtZ,OAG9CyZ,sBAAwB1Z,KAAKkE,MAAM8T,6BAQ/B3wB,EAPA3F,EAAAA,cAACg2B,EAAqB91B,OAAAC,OAAA,GACdme,KAAK7d,MAAK,CACdyzB,SAAUA,EACVtuB,UAAW,GAAGqb,gBACdgU,SAAU3W,KAAK+X,2BAKvB4B,0BAA2B3Z,KAAKkE,MAAM8T,wBAClCt2B,EAAAA,cAACy0B,EAAyBv0B,OAAAC,OAAA,GAClBme,KAAK7d,MAAK,CACdyzB,SAAUA,EACVtuB,UAAW,GAAGqb,gBACdgU,SAAU3W,KAAKiY,4BACfhB,gBAAiBjX,KAAKkE,MAAM8T,gCAGhC3wB,EAEJuyB,2BAA4B5Z,KAAKkE,MAAM8T,wBACnCt2B,EAAAA,cAAA,KACI4F,UAAW,GAAGqb,eACdrO,KAAK,SACLxK,QAASA,KACLkW,KAAK+X,4BAGR/X,KAAK7d,MAAME,UAAUu3B,iCAG1BvyB,EAEJwyB,wBAAyB7Z,KAAKkE,MAAM8U,iBAChCt3B,EAAAA,cAAA,QAAM4F,UAAW,GAAGqb,cAA6B3C,KAAK7d,MAAME,UAAU4L,mBAEtE5G,EAEJyyB,2BAA4B9Z,KAAKkE,MAAMmV,wBACnC33B,EAAAA,cAAA,QAAM4F,UAAW,GAAGqb,YAA2B3C,KAAKkE,MAAMmV,8BAE1DhyB,EAEJ0yB,kCAAoC/Z,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQ2B,sBAGnE3yB,EAFA3F,EAAAA,cAACs0B,EAAAA,MAAK,CAAC9Y,MAAM,UAAU8C,KAAK7d,MAAME,UAAU43B,gCAKpD,OAAOja,KAAK7d,MAAM4e,WAAWR,IAqErC,qFCvMA,MA+BA,EA/BmEpe,GAC3DA,EAAMi2B,4BAEF12B,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKM,EAAMq3B,uBACbr3B,EAAMm3B,wBACNn3B,EAAM03B,wBACN13B,EAAM23B,4BAKf33B,EAAM43B,kCAEFr4B,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKM,EAAMq3B,uBACbr3B,EAAMm3B,wBACNn3B,EAAM43B,mCAMfr4B,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKM,EAAMq3B,uBACbr3B,EAAMy3B,2BACNz3B,EAAMm3B,wBACNn3B,EAAMo3B,4BACNp3B,EAAMu3B,sBACNv3B,EAAMw3B,0tBCeZ,MAAMO,UAAsBx4B,EAAAA,cAW/Bme,YAAmB1d,GACf2d,MAAM3d,GAXO,KAAAg4B,mBAAuCzd,EAAAA,EAAAA,oBACpDsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAGE,KAAA8uB,yBAAmC,oBAEnC,KAAAC,sBAAwB,OAuFzB,KAAAC,WAAa,KACzBta,KAAK0P,SAAS,CACV6K,aAAa,KA+GJ,KAAAC,6BAA+B,KAAW,IAAAC,EACvD,MAAMC,EAA0D,QAA5CD,EAAGza,KAAK7d,MAAM8B,QAAQC,QAAQy2B,sBAAc,IAAAF,OAAA,EAAzCA,EAA2CC,eAClE,GAAIA,EAAgB,CAChB,MAAME,EAAa5a,KAAK6a,qBAAqBH,GAC7C1a,KAAK8a,eAAe9a,KAAKoa,yBAA0BQ,GAEvD5a,KAAKsa,cASQ,KAAAS,aAAe,CAACC,EAAqBC,IAA0B,KAC5Ejb,KAAK8a,eAAeE,EAAYC,IAQnB,KAAAH,eAAiB,CAACE,EAAqBC,KACpD,IAAKD,IAAeC,EAChB,OAEJ,MAAMC,EAAmC,CAAEC,QAAQ,EAAMC,SAAU,QACnEF,EAAcG,OAASrb,KAAKqa,sBAC5Bra,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQS,IAAIkC,EAAYC,EAAcC,IAQpD,KAAAL,qBAAwBS,GAC7BA,EAAQx0B,SAAS,YAAqCw0B,EAAvB,WAAWA,IA3OlD,IAAIC,GAA4B,EAC5Bp5B,EAAM8B,QAAQC,QAAQm0B,QAAQmD,IAAIxb,KAAKoa,0BAA0Bn1B,QACjEs2B,GAAmB,GAEvBvb,KAAKkE,MAAQ,CACTqW,aAAcgB,QAAkEl0B,IAA9C2Y,KAAK7d,MAAM8B,QAAQC,QAAQy2B,gBAI9Dra,SAAM,IAAAmb,EACT,MAAM,QAAElmB,EAAO,WAAEmmB,EAAU,YAAEC,EAAW,WAAEC,GAAe5b,KAAK7d,MAAMiC,OAIpE,IAFuB4b,KAAK7d,MAAM8B,QAAQC,QAAQm0B,QAAQ2B,iBAGtD,OAAO,KAGX,MAAM6B,EAAuBtmB,GACzB7T,EAAAA,cAAC6Q,EAAAA,GAAa,CACVjL,UAAU,6BACV0M,IAAgB,QAAbynB,EAAElmB,EAAQvB,WAAG,IAAAynB,EAAAA,EAAI,KACpBxb,KAAM1K,EAAQ0K,KACdU,UAAW,CAAEC,OAAQZ,KAAK8b,iBAAkB9vB,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAIjF63B,EAA0BL,GAC5Bh6B,EAAAA,cAAC6Q,EAAAA,GAA0B,CACvB0N,KAAMyb,EACNp0B,UAAU,gCACVqZ,UAAW,CAAEC,OAAQZ,KAAKgc,sBAAuBhwB,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAItF+3B,EAA0BL,GAAc5b,KAAKkc,WAAWN,GACxDO,EACFz6B,EAAAA,cAACgH,EAAAA,OAAM,CAACpB,UAAU,kCAAkCwC,QAASkW,KAAKwa,6BAA8BrjB,SAAU,GACrG6I,KAAK7d,MAAME,UAAU+5B,6BAIxBC,EAAS7b,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACb+hB,MAAOlE,KAAKkE,MACZqW,YAAava,KAAKkE,MAAMqW,YACxB+B,eAAgB,CACZ7b,YAAaT,KAAK7d,MAClB6R,IAAKuH,EAAAA,MACLjU,UAAW,4BACXwP,QAAQ,EACR,aAAc,iBACduE,OAAQ2E,KAAKsa,WACbiC,gBAAiB,CAAEC,QAAS,GAC5BC,iCAAiC,GAErCC,qBAAsB,CAClB1oB,IAAK2oB,EAAAA,YACLr1B,UAAW,kCACX+T,OAAQ2E,KAAKsa,WACbsC,oBAAqB,GAEzBC,qBAAsB,CAClB7oB,IAAK8H,EAAAA,YACLxU,UAAW,kCAEfw1B,mBAAoB,CAChB9oB,IAAKwH,EAAAA,UACLlU,UAAW,gCAEfiO,QAASsmB,EACTH,WAAYK,EACZ3e,KAAM6e,EACNN,YAAaA,GAAe3b,KAAK+c,oBACjCC,wBAAyBb,IAG7B,OAAOnc,KAAK7d,MAAM4e,WAAWsb,GAY1BL,sBAAsBjyB,GACzBiW,KAAK7d,MAAMiC,OAAOs3B,WAAa3xB,EAAM/E,OAAOC,MAGzC62B,iBAAiB/xB,GACpBiW,KAAK7d,MAAMiC,OAAOmR,QAAS0K,KAAOlW,EAAM/E,OAAOC,MAG5Cib,qBAAqBnW,GAAoC,IAAAkzB,EAC5B,QAAhCA,EAAIjd,KAAK7d,MAAMiC,OAAOw3B,kBAAU,IAAAqB,GAA5BA,EAA8B5c,WAC9BL,KAAK7d,MAAMiC,OAAOw3B,WAAWvb,SAAWtW,EAAM/E,OAAOC,OAItDi3B,WAAW9e,GACd,IAAK8f,EAAAA,iBAAiBC,cAAc/f,MAAAA,OAAI,EAAJA,EAAMmE,QAAQC,gBAAiB,CAAC,IAAD4b,EAC/D,MAAM/c,EAAyB,QAAjB+c,EAAGhgB,MAAAA,OAAI,EAAJA,EAAMiD,gBAAQ,IAAA+c,EAAAA,EAAI,GAC7B9zB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASyW,KAAKma,kBAAmB,GAAI,IAChEpd,GAAapT,EAAAA,EAAAA,wBAAuBqW,KAAKma,kBAAmB7wB,GAC5D+X,EAAoC,CACtCC,UAAWlE,MAAAA,OAAI,EAAJA,EAAMkE,UACjBha,UAAW,yBACX+Y,SAAAA,EACAkB,QAASnE,MAAAA,OAAI,EAAJA,EAAMmE,QAAQC,eACvBC,aAAcrE,MAAAA,OAAI,EAAJA,EAAMqE,aACpBnN,KAAM,OACNoN,qBAAsB3E,EACtBjT,SAAS0e,EAAAA,EAAAA,kBAAiBxI,KAAKma,kBAAmB7wB,EAAS+W,IAE/D,OACI3e,EAAAA,cAAC6Q,EAAAA,GAAa,CACV6K,KAAMiE,EACNV,UAAW,CAAEG,aAAcd,KAAKE,qBAAsBlU,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAIrG,OAAO,KAGJ64B,oBACH,MAAMpC,EAAiB3a,KAAK7d,MAAM8B,QAAQC,QAAQy2B,eAClD,IAAKA,EACD,OAOJ,OALoBA,EAAe0C,YACF13B,KAAKV,GAC3B+a,KAAKsd,cAAcr4B,KAM3Bq4B,cAAcC,GAAwB,IAAAC,EAAAC,EACzC,MAAM9B,EAAc3b,KAAK7d,MAAMiC,OAAOu3B,YACtC,IAAIL,EAAUiC,EAAWG,cACzBpC,EAAUtb,KAAK6a,qBAAqBS,GACpC,MAAMqC,EAAqBhC,MAAAA,OAAW,EAAXA,EAAax2B,MAAKyH,GAAQA,EAAK4G,MAAQ8nB,IAClE,IAAKqC,EACD,OAAO,KAEX,MAAMC,EAA6B,CAAEC,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GAC5DC,EAAgD,CAClDC,UAAW,CACPC,GAAIN,EACJO,GAAIP,EACJQ,GAAIR,GAERS,UAAU,GAERC,EAAQX,EAAmBW,MAC3BC,EAAa,CACfC,aAAcxe,KAAK7d,MAAM8B,QAAQC,QAAQs6B,aACzCC,cAAmC,QAAtBjB,EAAEc,MAAAA,OAAK,EAALA,EAAOG,qBAAa,IAAAjB,EAAAA,EAAIQ,GAE3C,OACIt8B,EAAAA,cAAA,KACI6F,IAAKo2B,EAAmBe,cACxBp3B,UAAU,yCACV6P,SAAU,EACVxO,KAAMg1B,EAAmBnqB,IAAG,aAChBmqB,EAAmBe,cAC/B50B,QAASkW,KAAK+a,aAAa/a,KAAKoa,yBAA0BuD,EAAmBnqB,MAE5E8qB,GACG58B,EAAAA,cAAC6Q,EAAAA,GAAc,CACXvG,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCoD,UAAU,wCACVC,IAAKo2B,EAAmBe,cACxBC,IAAc,QAAXlB,EAAEa,EAAMK,WAAG,IAAAlB,EAAAA,EAAI,GAClBe,aAAcD,EAAWC,aACzBC,cAAeF,EAAWE,cAC1BG,QAASN,EAAMM,QACfC,oBAAoB,OACpBC,uBAAqB,IAG7Bp9B,EAAAA,cAAA,OAAK4F,UAAU,6CACX5F,EAAAA,cAAA,QAAM4F,UAAU,mDAAmDq2B,EAAmBe,eACtFh9B,EAAAA,cAAA,QAAM4F,UAAU,sDAAsDq2B,EAAmBoB,qBAoD7G,6GCrSO,MAAMC,EAAwD78B,IACjE,MAAM,YACFo4B,EAAW,eACX+B,EAAc,qBACdI,EAAoB,mBACpBI,EAAkB,QAClBvnB,EAAO,qBACPsnB,EAAoB,WACpBnB,EAAU,KACVte,EAAI,YACJue,EAAW,wBACXqB,GACA76B,EACJ,OAAOo4B,GAAeoB,EAClBj6B,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKy6B,GACR56B,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK66B,GACLnnB,EACAmmB,GAELh6B,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKi7B,GACLnB,EAAYh2B,KAAIs5B,GACbv9B,EAAAA,cAAAA,EAAAA,SAAA,KAAGu9B,MAGXv9B,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKg7B,GACLG,EACA5f,IAGT,MAGR,wEC/BA,MAAM8hB,UAAsBx9B,EAAAA,cAQxBme,YAAY1d,GACR2d,MAAM3d,GARO,KAAAwe,UAAqC,CAClD3U,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnC0c,OAAS7W,GAA0CiW,KAAK7d,MAAMiC,OAAO+6B,cAAgBp1B,EAAM/E,OAAOC,OAOlG+a,KAAKld,kBAAmB4Z,EAAAA,EAAAA,oBACpBsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WAIZgV,SACH,OAAKN,KAAK7d,MAAMiC,OAAOg7B,YAMnB19B,EAAAA,cAAC29B,EAAAA,UAAS,CACN12B,KAAMqX,KAAK7d,MAAMiC,OAAOg7B,YACxBx2B,MAAOoX,KAAK7d,MAAMiC,OAAOwE,MAAK,aAClBoX,KAAK7d,MAAMiC,OAAOkd,UAC9Bha,UAAU,iBACVqZ,UAAWX,KAAKW,UAChBV,KAAMD,KAAK7d,MAAMiC,OAAO+6B,cACxBr8B,iBAAkBkd,KAAKld,oBAZ3Bkd,KAAK7d,MAAMmJ,UAAUC,MAAM,oEACpB,OAiBnB,sqBC/BA,MAAM+zB,UAAuB59B,EAAAA,cAClB4e,SACH,IAAKN,KAAK7d,MAAM+vB,QAAUlS,KAAK7d,MAAM+vB,MAAMxJ,SAA+C,IAApC1I,KAAK7d,MAAM+vB,MAAMxJ,QAAQnjB,OAE3E,OADAya,KAAK7d,MAAM8B,QAAQqH,UAAUC,MAAM,qDAC5B,KAEX,MAAM8wB,EAAS7b,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACbo9B,WAAYvf,KAAK7d,MAAM+vB,MAAMxJ,QAC7B8W,WAAY,CACR/e,YAAaT,KAAK7d,MAClBmF,UAAWgV,GAAAA,CAAW,kBAAmB0D,KAAK7d,MAAMiC,OAAOkD,WAC3D0M,IAAK,MAETyrB,eAAgB,CACZn4B,UAAWgV,GAAAA,CAAW,uBAAwB0D,KAAK7d,MAAMiC,OAAOkD,WAChE0M,IAAK,QAIb,OAAOgM,KAAK7d,MAAM4e,WAAWsb,IAIrC,uHCpCO,MAAMqD,EAAyDv9B,IAClE,MAAM,WAAEo9B,EAAU,WAAEC,EAAU,eAAEC,GAAmBt9B,EACnD,OAAKo9B,GAAoC,IAAtBA,EAAWh6B,OAK1B7D,IAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAK29B,GACPD,EAAW55B,KAAI,CAACg6B,EAAqB95B,IAE9BnE,IAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK49B,EAAc,CAAEl4B,IAAK1B,IAC1B85B,OARjBx9B,EAAM8B,QAAQqH,UAAUC,MAAM,+CACvB,OAef,oICIA,MA8Faq0B,EAAqFC,EAAAA,GAAiBC,gBAGjH,gCAAiC,CAAEC,UA1E+B59B,IAChE,MAAM,UACFmF,EACAnB,MAAM,eAAE65B,GAAgB,UACxB39B,EAAS,QACT49B,GACA99B,EAEE+9B,EAAoB79B,EAAU89B,eAAeC,QAAQ,MAAOJ,EAAet4B,IAE3E24B,EAC8B,IAAhCL,EAAenpB,MAAMtR,OACflD,EAAUi+B,iBACVj+B,EAAUk+B,kBAAkBH,QAAQ,MAAOJ,EAAenpB,MAAMtR,OAAO+jB,YAE3EkX,EAAgC,GAAGl5B,4BACnCm5B,EAA8B,GAAGD,0BACjCE,EAAqB,GAAGD,gBACxBE,EAAyB,GAAGD,eAC5BE,EAAwB,GAAGF,aAE3BG,EAAmB,GAAGv5B,aACtBw5B,EAAyB,GAAGN,oBAC5BO,GA9Ce98B,EA8Ca9B,EAAM8B,aA7C3BoD,KAD+B25B,EA8CKhB,EAAeiB,aA5CrD,GAGJh9B,EAAQqzB,iBAAiB4J,WAAWF,EADH,CAAEG,KAAM,UAAWC,MAAO,UAAWC,IAAK,aAJ9DC,IAACr9B,EAAuB+8B,EAgD5C,MAAMO,EAxCaC,EAACv9B,EAAuB+8B,SAC9B35B,IAAT25B,EACO,GAGJ/8B,EAAQqzB,iBAAiB4J,WAAWF,EADH,CAAEG,KAAM,UAAWC,MAAO,OAAQC,IAAK,YAoC/DG,CAAer/B,EAAM8B,QAAS+7B,EAAeuB,SACvDE,EAAcp/B,EAAUq/B,0BAA0BtB,QAAQ,MAAOmB,GACjEI,GAAsBC,EAAAA,EAAAA,IAAaz/B,EAAM8B,QAAQC,SAEvD,OACIxC,IAAAA,cAAA,OAAK4F,UAAWA,GACZ5F,IAAAA,cAAA,OAAK4F,UAAW,GAAGA,iBAA0B44B,GAC7Cx+B,IAAAA,cAAA,OAAK4F,UAAWk5B,GACZ9+B,IAAAA,cAAA,OAAK4F,UAAWm5B,GACZ/+B,IAAAA,cAAA,OAAK4F,UAAWo5B,GACZh/B,IAAAA,cAAA,OAAK4F,UAAW,GAAGq5B,KACfj/B,IAAAA,cAAA,OAAK4F,UAAW,GAAGq5B,sBACdt+B,EAAUw/B,qBACXngC,IAAAA,cAAA,SAAIs+B,EAAe8B,gBAG3BpgC,IAAAA,cAAA,OAAK4F,UAAWs5B,GACZl/B,IAAAA,cAAA,OAAK4F,UAAW,GAAGs5B,iBAAsCG,GACzDr/B,IAAAA,cAAA,OAAK4F,UAAW,GAAGs5B,wBAA6CP,MAI5E3+B,IAAAA,cAAA,OAAK4F,UAAWw5B,GACZp/B,IAAAA,cAAA,OAAK4F,UAAW,GAAGw5B,sBAA4Cz+B,EAAU0/B,sBACzErgC,IAAAA,cAAA,OAAK4F,UAAW,GAAGw5B,wBAxDlBkB,EAAC/9B,EAAuBg+B,EAA4BC,SACtD76B,IAAX46B,EACO,GAEJh+B,EAAQqzB,iBAAiBC,eAAe0K,EAAQC,GAqDlCF,CAAa7/B,EAAM8B,QAAS+7B,EAAemC,UAAWnC,EAAekC,eAE1ExgC,IAAAA,cAAA,OAAK4F,UAAW,GAAGw5B,sBAA4CW,KAGvE//B,IAAAA,cAAA,OAAK4F,UAAWu5B,GACZn/B,IAAAA,cAAC0gC,EAAAA,oBAAmB,CAChBn+B,QAAS9B,EAAM8B,QACfqD,UAAW,GAAGu5B,iBACdx+B,UAAWF,EAAME,UACjBqF,GAAI,GAAGm5B,MAAqBb,EAAet4B,KAC3C26B,SAAUlgC,EAAMkgC,SAChBl8B,KAAM,CAAEm8B,QAAStC,GACjB3rB,SAAUstB,EACV1B,QAASA,8BClF7B,MAoEasC,EAAqG1C,EAAAA,GAAiBC,gBAGjI,wCAAyC,CAAEC,UAtEzC59B,IAEA,MAAM,UACFmF,EACAnB,MAAM,sBAAEq8B,GAAuB,UAC/BngC,GACAF,EAEEsgC,EAAgB,GAAGn7B,UAEnBuP,EAAoC,GAqC1C,OApCK+H,EAAAA,iBAAiBC,kBAAkB2jB,EAAsBE,gBAC1D7rB,EAAMnF,KAAK,CACPgD,MAAOrS,EAAUsgC,wBACjB19B,MAAOu9B,EAAsBE,cAC7Bp7B,UAAW,GAAGm7B,qBAGjB7jB,EAAAA,iBAAiBC,kBAAkB2jB,EAAsB73B,WAC1DkM,EAAMnF,KAAK,CACPgD,MAAOrS,EAAUugC,uBACjB39B,MAAOu9B,EAAsB73B,SAC7BrD,UAAW,GAAGm7B,eAGjB7jB,EAAAA,iBAAiBC,kBAAkB2jB,EAAsBK,eAC1DhsB,EAAMnF,KAAK,CACPgD,MAAOrS,EAAUygC,sBACjB79B,MAAOu9B,EAAsBK,aAC7Bv7B,UAAW,GAAGm7B,oBAGjB7jB,EAAAA,iBAAiBC,kBAAkB2jB,EAAsBO,WAC1DlsB,EAAMnF,KAAK,CACPgD,MAAOrS,EAAU2gC,kBACjB/9B,MAAOu9B,EAAsBO,SAC7Bz7B,UAAW,GAAGm7B,gBAGjB7jB,EAAAA,iBAAiBC,kBAAkB2jB,EAAsBS,cAC1DpsB,EAAMnF,KAAK,CACPgD,MAAOrS,EAAU6gC,2BACjBj+B,MAAOu9B,EAAsBS,YAC7B37B,UAAW,GAAGm7B,mBAIjBhkB,EAAAA,gBAAgBC,YAAY7H,GAK7BnV,IAAAA,cAAA,OAAK4F,UAAWA,GACXuP,EAAMlR,KAAIW,GAEH5E,IAAAA,cAAA,OAAK4F,UAAWgV,GAAAA,CAAWhW,EAAKgB,UAAWm7B,GAAgBl7B,IAAKjB,EAAKoO,OACjEhT,IAAAA,cAAA,OAAK4F,UAAW,GAAGm7B,YAAyBn8B,EAAKoO,OACjDhT,IAAAA,cAAA,OAAK4F,UAAW,GAAGm7B,YACdtgC,EAAM8B,QAAQqzB,iBAAiBC,eAAejxB,EAAKrB,MAAOu9B,EAAsBN,mBAV9F,QCKTF,EAAeA,CAAC/9B,EAAuBg+B,EAA4BC,SACtD76B,IAAX46B,EACO,GAEJh+B,EAAQqzB,iBAAiBC,eAAe0K,EAAQC,GAsD9CiB,EAAyFtD,EAAAA,GAAiBC,gBAGrH,kCAAmC,CAAEC,UAtDiC59B,IACpE,MAAM,UACFmF,EACAnB,MAAM,eAAE65B,GAAgB,UACxB39B,GACAF,EAEEihC,EAAmB,GAAG97B,kBACtB+7B,EAAgC,GAAGD,4BACnCE,EAA0B,GAAGD,qBAC7BE,EAA+B,GAAGD,mBAExC,OACI5hC,IAAAA,cAAA,OAAK4F,UAAWA,GACX04B,EAAenpB,MAAMlR,KAAIykB,IACtB,MAAMoZ,EAAWpZ,EAAQtd,UAAY,EAErC,IAAI22B,EAAa,GAKjB,OAJK7kB,EAAAA,iBAAiBC,kBAAkBuL,EAAQsZ,cAAiB9kB,EAAAA,iBAAiBC,kBAAkBuL,EAAQtZ,aACxG2yB,GAAaE,EAAAA,EAAAA,uBAAsBvZ,EAAQsZ,YAAatZ,EAAQtZ,UAAW3O,EAAM8B,QAAQsE,gBAIzF7G,IAAAA,cAAA,OAAK4F,UAAW87B,EAAkB77B,IAAK6iB,EAAQgP,UAC3C13B,IAAAA,cAAA,OAAK4F,UAAW+7B,GAvEZO,EACxBt8B,EACArD,EACAmmB,EACAqU,KACoB,IAAAoF,EAWhBpF,IACAA,EAAcqF,iBAAkB,GAGpC,MAAMC,GAAgBC,EAAAA,EAAAA,qBAClB5Z,EAAQ6Z,OACRhgC,EAAQsE,cAAcyD,eAAe+E,YAClB,QAD6B8yB,EAChD5/B,EAAQC,QAAQC,WAAG,IAAA0/B,GAAQ,QAARA,EAAnBA,EAAqBz/B,cAAM,IAAAy/B,OAAA,EAA3BA,EAA6BK,kBAEjC,OACIxiC,IAAAA,cAACyiC,EAAAA,GAAK,CACFn4B,eAAgB/H,EAAQsE,cAAcyD,eACtC1E,UAAWA,EACXs3B,QAASxU,EAAQsZ,YACjB96B,MAAOwhB,EAAQsZ,YACf/E,IAAKvU,EAAQga,iBAAmB,GAChCC,YAAaN,EACbvF,aAAcv6B,EAAQC,QAAQs6B,aAC9BC,cAAeA,GA5BsB,CACzCR,UAAW,CACPC,GAAI,CAAEL,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GACnCI,GAAI,CAAEN,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,GACrCK,GAAI,CAAEP,EAAG,kBAAmBC,EAAG,EAAGC,EAAG,IAEzCM,UAAU,EACVyF,iBAAiB,GAsBbjF,oBAAoB,WAqCH+E,CAAoB,GAAGP,mBAAgDlhC,EAAM8B,QAASmmB,GACvF1oB,IAAAA,cAAA,OAAK4F,UAAWg8B,GACZ5hC,IAAAA,cAAA,KAAGiH,KAAM86B,EAAYn8B,UAAW,GAAGg8B,WAC9BlZ,EAAQsZ,aAEbhiC,IAAAA,cAAA,OAAK4F,UAAWi8B,GAjGfe,EAC7Bh9B,EACAjF,EACA+nB,IAGI1oB,IAAAA,cAAA,OAAK4F,UAAWA,GACX41B,EAAAA,iBAAiBqH,mBAAmBna,EAAQoa,WAAa,KACtD9iC,IAAAA,cAAA,WAAMW,EAAUoiC,oBAAoBrE,QAAQ,MAAOhW,EAAQoa,YAE9DtH,EAAAA,iBAAiBqH,mBAAmBna,EAAQsa,UAAY,KACrDhjC,IAAAA,cAAA,WAAMW,EAAUsiC,mBAAmBvE,QAAQ,MAAOhW,EAAQsa,WAE7DxH,EAAAA,iBAAiBqH,mBAAmBna,EAAQwa,WAAa,KACtDljC,IAAAA,cAAA,WAAMW,EAAUwiC,oBAAoBzE,QAAQ,MAAOhW,EAAQwa,aAoFtCN,CAAyB,GAAGf,gBAA4ClhC,EAAW+nB,GACpF1oB,IAAAA,cAAA,OAAK4F,UAAW,GAAGi8B,YACdvB,EAAa7/B,EAAM8B,QAASmmB,EAAQ0a,MAAO9E,EAAekC,eAE/DxgC,IAAAA,cAAA,OAAK4F,UAAW,GAAGi8B,eACdlhC,EAAU0iC,gBAAgB3E,QAAQ,MAAOoD,EAASla,gBAKnE5nB,IAAAA,cAAA,OAAK4F,UAAW,GAAG87B,kBACdpB,EAAa7/B,EAAM8B,QAASmmB,EAAQ4a,UAAWhF,EAAekC,umBCrHpF,MAAM+C,EA6BTplB,YAAmByiB,EAAuBtC,EAA8BkF,GACpEllB,KAAKtY,GAAK46B,EAAQhvB,IAAM,GACxB0M,KAAKihB,YAAcqB,EAAQ6C,YAAc,IAAIC,KAAK9C,EAAQ6C,kBAAe99B,EACzE2Y,KAAK8hB,aAAeQ,EAAQ+C,aAC5BrlB,KAAKuhB,QAAUe,EAAQgD,eAAiB,IAAIF,KAAK9C,EAAQgD,qBAAkBj+B,EAC3E2Y,KAAKmiB,UAAYG,EAAQiD,cACzBvlB,KAAKwlB,OAASlD,EAAQmD,uBACtBzlB,KAAKnJ,OAASmpB,EAAe0F,kBAAoB,IAAI//B,KAAIW,IAAO,IAAAq/B,EAK5D,OAJiBnlB,EAAAA,EAAA,GACVla,GAAI,IACP89B,gBAA8E,QAA/DuB,EAAET,EAAS//B,MAAKilB,GAAWA,EAAQgP,WAAa9yB,EAAKwK,mBAAU,IAAA60B,OAAA,EAA7DA,EAA+DC,qBAKxF5lB,KAAK0iB,cAAgB1C,EAAe6F,cACpC7lB,KAAKrV,SAAWq1B,EAAe8F,gBAC/B9lB,KAAK6iB,aAAe7C,EAAe+F,aACnC/lB,KAAK+iB,SAAW/C,EAAegG,eAC/BhmB,KAAKijB,YAAcX,EAAQhpB,YAC3B0G,KAAKkiB,aAAeI,EAAQ2D,aAGhC,gBACI,OAAOjmB,KAAKwlB,SAAWU,EAAAA,kBAAkBC,2kBCxCjD,MAAMC,UAAuB1kC,EAAAA,cAGzBme,YAAmB1d,GACf2d,MAAM3d,GAEN6d,KAAKkE,MAAQ,CAAEmiB,WAAY,CAAExgB,aAAc,GAAIygB,WAAY,KAC3DtmB,KAAKumB,mBAAqBvmB,KAAKumB,mBAAmBvY,KAAKhO,MACvDA,KAAKwmB,8BAAgCxmB,KAAKwmB,8BAA8BxY,KAAKhO,MAG1E,0BACH,MAAMsiB,QAAgBtiB,KAAK7d,MAAMgE,KAAKm8B,QAChCtC,QAAuBhgB,KAAK7d,MAAMgE,KAAK65B,eAEvCkF,QAAiBllB,KAAKymB,aAAazG,EAAe0F,iBAAkB1F,EAAe0G,WAEnFC,EAAsB,IAAI1B,EAAoB3C,EAAStC,EAAgBkF,GAE7EllB,KAAK0P,SAAS,CACVsQ,eAAgB2G,EAChBC,0BAA0B,EAC1BP,WAAY,CAAExgB,aAAc,GAAIygB,WAAY,MAI7ChmB,SACH,IAAKN,KAAKkE,MAAM8b,eACZ,OAAO,KAGX,MAAM11B,EAAS0V,KAAK6mB,gBACd3B,EAAWllB,KAAK8mB,kBAChBC,EAAiB/mB,KAAKgnB,wBACtBC,EAAkBjnB,KAAKknB,uBAEvB/kC,EAAKqe,EAAAA,EAAA,GACHR,KAAK7d,OAAmD,IAC5Dse,YAAa,CACTA,YAAaT,KAAK7d,MAClBmF,UAAW8+B,EAAee,YAE9B78B,OAAAA,EACA46B,SAAAA,EACA6B,eAAAA,EACAE,gBAAAA,IAGJ,OAAOjnB,KAAK7d,MAAM4e,WAAW5e,GAGzB,qBAA4E,IAAlB6O,EAAkBygB,UAAAlsB,OAAA,EAAAksB,UAAA,QAAApqB,EAChF,MAAM+/B,GADiB3V,UAAAlsB,OAAA,QAAA8B,IAAAoqB,UAAA,GAAAA,UAAA,GAAmC,IAErDte,QAAOiX,GAAWA,EAAQtZ,YAC1BnL,KACGykB,GACI,IAAIid,EAAAA,aACAjd,EAAQtZ,UACRkP,KAAK7d,MAAM8B,QAAQC,QAAQ6M,YAC3BC,OACA3J,EACA2Y,KAAK7d,MAAM8B,QAAQsE,cAAcyD,kBAGjD,OAAOs7B,EAAAA,EAAAA,yBAAwBF,EAAepnB,KAAK7d,MAAM8B,QAAQsE,eAG7Ds+B,gBACJ,MAAM7G,EAAiBhgB,KAAKkE,MAAM8b,eAClC,OACIt+B,EAAAA,cAACk+B,EAA6B,CAC1Bt4B,UAAW,GAAG8+B,EAAee,qBAC7Bz/B,GAAI,GAAG0+B,EAAee,eAAenH,EAAet4B,KACpDvB,KAAM,CAAE65B,eAAAA,GACRqC,SAAUriB,KAAK7d,MAAMkgC,SACrBp+B,QAAS+b,KAAK7d,MAAM8B,QACpB5B,UAAW2d,KAAK7d,MAAME,UACtB49B,QAASjgB,KAAKumB,qBAKlBO,kBACJ,MAAM9G,EAAiBhgB,KAAKkE,MAAM8b,gBAC5B,cAAEvB,GAAkBze,KAAK7d,MAAMiC,OACrC,OACI1C,EAAAA,cAACyhC,EAA+B,CAC5B77B,UAAW,GAAG8+B,EAAee,uBAC7Bz/B,GAAI,GAAG0+B,EAAee,eAAenH,EAAet4B,KACpDvB,KAAM,CAAE65B,eAAAA,GACRqC,SAAUriB,KAAK7d,MAAMkgC,SACrBp+B,QAAS+b,KAAK7d,MAAM8B,QACpB5B,UAAW2d,KAAK7d,MAAME,UACtBo8B,cAAeA,IAKnBuI,wBACJ,MAAMhH,EAAiBhgB,KAAKkE,MAAM8b,eAClC,OACIt+B,EAAAA,cAAC6gC,EAAqC,CAClCj7B,UAAW,GAAG8+B,EAAee,8BAC7Bz/B,GAAI,GAAG0+B,EAAee,eAAenH,EAAet4B,KACpDvB,KAAM,CAAEq8B,sBAAuBxC,GAC/BqC,SAAUriB,KAAK7d,MAAMkgC,SACrBp+B,QAAS+b,KAAK7d,MAAM8B,QACpB5B,UAAW2d,KAAK7d,MAAME,YAK1BkkC,mBAAmBgB,GACvB,MAAMlB,EAAU7lB,EAAA,GAAQ+mB,GACxBlB,EAAWmB,UAAY,mBAInBnB,GACyB,uEAAzBA,EAAWoB,WACXpB,EAAWC,YAEXtmB,KAAK0P,SAAS,CAAE2W,WAAYA,IAGhCrmB,KAAK0P,SAAS,CAAEkX,0BAA0B,IAGtCJ,gCACJxmB,KAAK0P,SAAS,CAAEkX,0BAA0B,IAGtCM,uBAAoB,IAAAQ,EACxB,MACIrlC,WAAW,4BACPslC,EAA2B,oCAC3BC,EAAmC,0CACnCC,EAAyC,8CACzCC,EAA6C,4CAC7CC,IAEJ/nB,KAAK7d,MAEHgQ,GAAU7J,EAAAA,EAAAA,IAAW,OAAQ0X,KAAK7d,MAAM8B,QAAQsE,gBAAkB,GAElE2Z,EAAiB,GAAGkkB,EAAee,qBAEzC,OACIzlC,EAAAA,cAACsmC,EAAAA,sBAAqB,CAClBtgC,GAAIwa,EACJmgB,SAAUriB,KAAK7d,MAAMkgC,SACrBl8B,KAAM,GACNlC,QAAS+b,KAAK7d,MAAM8B,QACpB2iC,yBAA0B5mB,KAAKkE,MAAM0iB,2BAA4B,EACjEqB,WAAW,EACXC,kBAAmBP,EACnBQ,0BAA2BP,EAE3BQ,iCAAsD,QAArBV,EAAA1nB,KAAKkE,MAAMmiB,kBAAU,IAAAqB,OAAA,EAArBA,EAAuBpB,aAAcuB,EACtEQ,oCAAqCP,EACrCQ,kCAAmCP,EACnC51B,QAASA,EACTo2B,6BAA8BvoB,KAAKwmB,iCAjKvBJ,EAAAe,WAAqB,sBAuKjD,8GCnMO,MAAMqB,EAAyDrmC,IAClE,MAAM,OAAEmI,EAAM,SAAE46B,EAAQ,eAAE6B,EAAc,gBAAEE,GAAoB9kC,EAE9D,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKM,EAAMse,aACbnW,EACA46B,EACA6B,EACAE,IAKb,grBCOO,MAAMwB,UAAkB/mC,EAAAA,cAG3Bme,YAAmB1d,GACf2d,MAAM3d,GAsEH,KAAA25B,iBAAoB/xB,IACvBiW,KAAK7d,MAAMiC,OAAOmR,QAAS0K,KAAOlW,EAAM/E,OAAOC,OAO5C,KAAA+2B,sBAAyBjyB,IAC5BiW,KAAK7d,MAAMiC,OAAOskC,UAAY3+B,EAAM/E,OAAOC,OA9E3C+a,KAAK2oB,sBAAwBjnC,EAAAA,YAG1B4e,SAAM,IAAAmb,EACT,MAAM,QAAElmB,EAAO,UAAEmzB,GAAc1oB,KAAK7d,MAAMiC,OAIpCwkC,EAAqBF,GACvBhnC,EAAAA,cAACgf,EAAAA,GAA0B,CACvBT,KAAMyoB,EACNphC,UAAU,8BACVqZ,UAAW,CAAEC,OAAQZ,KAAKgc,sBAAuBhwB,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAItF2kC,EAAmBtzB,GACrB7T,EAAAA,cAACgf,EAAAA,GAAa,CACVpZ,UAAU,iCACV0M,IAAgB,QAAbynB,EAAElmB,EAAQvB,WAAG,IAAAynB,EAAAA,EAAI,KACpBxb,KAAM1K,EAAQ0K,KACdU,UAAW,CAAEC,OAAQZ,KAAK8b,iBAAkB9vB,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAGjFqc,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACb2mC,WAAY9oB,KAAK8b,iBACjBiN,UAAW,CACPtoB,YAAaT,KAAK7d,MAClBmF,UAvBgB,gBAyBpB0hC,mBAAoB,CAChB1hC,UAAW,yBAEfiO,QAASszB,EACT5oB,KAAM2oB,EACNK,cAAe,CACX3hC,UAAW,8BACX0M,IAAK,OACL,aAAcgM,KAAK7d,MAAME,UAAU6mC,uBACnCnkC,KAAM,gBACNuP,KAAM,OACN60B,aAAc,OAElBC,WAAY,CACR9hC,UAAW,qCACX0M,IAAK,QACLiY,IAAKjM,KAAK2oB,sBACV3mB,KAAM,QACN,aAAchC,KAAK7d,MAAME,UAAUgnC,4BACnC7V,YAAaxT,KAAK7d,MAAME,UAAUinC,+BAEtCC,aAAc,CACVjiC,UAAW,sCACX0M,IAAKtL,EAAAA,OACL,aAAcsX,KAAK7d,MAAME,UAAUmnC,6BACnCxnB,KAAM,SACNpZ,MAAOoX,KAAK7d,MAAME,UAAUonC,sBAEhCC,sBAAuB1pB,KAAK7d,MAAME,UAAUonC,uBAGhD,OAAOzpB,KAAK7d,MAAM4e,WAAWR,IAoBrC,yGCvGA,MAAMopB,EAAY5/B,IACdA,EAAMmmB,kBAQG0Z,EAA+CznC,IAAQ,IAAA0nC,EAAAC,EAAAC,EAChE,MAAM,UAAEhB,EAAS,mBAAEC,EAAkB,QAAEzzB,EAAO,KAAE0K,EAAI,cAAEgpB,EAAa,WAAEG,EAAU,aAAEG,GAAiBpnC,EAClG,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKknC,GACRrnC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmnC,EAAkB,CAAE1hC,UAAW0hC,EAAmB1hC,YACvDiO,EACA0K,EACDve,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKonC,EAAa,CAAEU,SAAUA,EAAUriC,UAAmC,QAA1BuiC,EAAEZ,MAAAA,OAAa,EAAbA,EAAe3hC,iBAAS,IAAAuiC,EAAAA,EAAI,KAChFnoC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKunC,EAAU,CAAE9hC,UAAgC,QAAvBwiC,EAAEV,MAAAA,OAAU,EAAVA,EAAY9hC,iBAAS,IAAAwiC,EAAAA,EAAI,MAC1DpoC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK0nC,EAAY,CAAEjiC,UAAkC,QAAzByiC,EAAER,MAAAA,OAAY,EAAZA,EAAcjiC,iBAAS,IAAAyiC,EAAAA,EAAI,KACzD5nC,EAAMunC,2BAQ/B,mICdO,MAAMM,UAAsBtoC,EAAAA,cAAnCme,cAAA,oBAoBqB,KAAAmB,kBAAqBC,IAClC,IAAKxC,EAAAA,gBAAgBC,YAAYuC,GAC7B,OAAO,KAEX,MAAMC,EAAuC,GAC7C,IAAK,MAAM9D,KAAQ6D,EAAU,CAEzB,MAAM3X,GAAUC,EAAAA,EAAAA,kBAAiB,QAASyW,KAAK7d,MAAMW,iBAAkB,GAAI,IACrEud,EAAWjD,EAAKiD,SAAWjD,EAAKiD,SAAW,GACjD/W,EAAQ6X,cAAcC,MAAQf,EAC9B,MAAMtD,GAAapT,EAAAA,EAAAA,wBAAuBqW,KAAK7d,MAAMW,iBAAkBwG,GACjE+X,EAAoC,CACtCC,UAAWlE,EAAKkE,UAChBha,UAAW,qBACX+Y,SAAUjD,EAAKiD,SACfkB,QAASnE,EAAKmE,QAAQC,eACtBC,aAAcrE,EAAKqE,aACnBnN,KAAM,SACNoN,qBAAsB3E,EACtBjT,SAAS0e,EAAAA,EAAAA,kBAAiBxI,KAAK7d,MAAMW,iBAAkBwG,EAAS+W,IAEpEa,EAAcxP,KAAK2P,GAGvB,OAAOH,GA3CJZ,SACH,MAAMY,EAAgBlB,KAAKgB,kBAAkBhB,KAAK7d,MAAMie,OACxD,OACI1e,EAAAA,cAAA,OAAK4F,UAAU,uBACV4Z,GAAiBzC,EAAAA,gBAAgBC,YAAYwC,GAC1Cxf,EAAAA,cAACgf,EAAAA,GAAc,CACXN,MAAOc,EACPP,UAAW,CAAEG,aAAcd,KAAK7d,MAAM2e,aAAc9U,eAAgBgU,KAAK7d,MAAM6J,kBAEnF,OAqCpB,+kBCxCO,MAAMi+B,UAAqBvoC,EAAAA,cAO9Bme,YAAmB1d,GACf2d,MAAM3d,GAPO,KAAAg4B,mBAAuCzd,EAAAA,EAAAA,oBACpDsD,KAAK7d,MAAM8B,QAAQC,QAAQyY,kBAC3BqD,KAAK7d,MAAMya,aACXoD,KAAK7d,MAAMmJ,WA6DR,KAAAyU,oBAAuBhW,IAC1BiW,KAAK7d,MAAMiC,OAAOmR,QAAS0K,KAAOlW,EAAM/E,OAAOC,OAO5C,KAAA+2B,sBAAyBjyB,IAC5BiW,KAAK7d,MAAMiC,OAAOskC,UAAY3+B,EAAM/E,OAAOC,OAQxC,KAAAib,qBAAwBC,GAAuBpW,IAA8C,IAAAmgC,EACrE,QAA3BA,EAAIlqB,KAAK7d,MAAMiC,OAAOgc,aAAK,IAAA8pB,GAAvBA,EAA0B7nB,OAAOlC,MACjCH,KAAK7d,MAAMiC,OAAOgc,MAAMiC,OAAOlC,IAAYE,SAAWtW,EAAM/E,OAAOC,QAzEpEqb,SACH,MAAM,QAAE/K,EAAO,UAAEmzB,EAAS,gBAAEyB,EAAe,eAAEC,EAAc,eAAEC,EAAc,MAAEjqB,GAAUJ,KAAK7d,MAAMiC,OAC5FkmC,EAAgBlqB,GAAS3B,EAAAA,gBAAgBC,YAAY0B,IACvD1e,EAAAA,cAACsoC,EAAa,CACV5pB,MAAOA,EACPU,aAAcd,KAAKE,qBACnBlU,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCpB,iBAAkBkd,KAAKma,oBAGzBoQ,EAAwB,CAC1Bv2B,IAAK,IACL1M,UAAW,yBACXgN,KAAM,OACN3L,KAAM0hC,MAAAA,OAAc,EAAdA,EAAgB9oB,QAAQC,eAC9B,aAAc6oB,MAAAA,OAAc,EAAdA,EAAgB/oB,UAC9Btc,OAAQqlC,MAAAA,GAAAA,EAAgB5oB,aAAe,cAAWpa,GAOhDkZ,EAASC,EAAAA,EAAA,GACRR,KAAK7d,OAAK,IACboT,QAASyK,KAAKwqB,eAAej1B,GAC7BmzB,UAAW1oB,KAAKyqB,iBAAiB/B,GACjCyB,gBAAiBnqB,KAAK0qB,uBAAuBP,GAC7CC,eAAgBpqB,KAAK2qB,sBAAsBP,GAC3ChqB,MAAOkqB,EACPM,aAAc,CACVnqB,YAAaT,KAAK7d,MAClBmF,UAAW,IAEfujC,kBAAmBR,EAAiBE,EAfR,CAC5Bv2B,IAAK,SACL1M,UAAW,0BAcXwjC,uBAAwB,CACpBxjC,UAAW,uBAEfyjC,gCAAiC,CAC7BzjC,UAAW,gCACX,cAAe,QAEnB0jC,yBAA0B,CACtB1jC,UAAW,2BAInB,OAAO0Y,KAAK7d,MAAM4e,WAAWR,GA8BzBkqB,iBAAiBxqB,GACrB,OAAKA,EAIDve,EAAAA,cAACgf,EAAAA,GAA0B,CACvBT,KAAMA,EACN3Y,UAAU,qBACVqZ,UAAW,CAAEC,OAAQZ,KAAKgc,sBAAuBhwB,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WANjF,KAWPsmC,eAAej1B,GAAsB,IAAAkmB,EACzC,OAAKlmB,EAGD2nB,EAAAA,iBAAiBqH,mBAAmBhvB,EAAQ0K,MACrC,KAIPve,EAAAA,cAACgf,EAAAA,GAAa,CACV1M,IAAgB,QAAbynB,EAAElmB,EAAQvB,WAAG,IAAAynB,EAAAA,EAAI,KACpBxb,KAAM1K,EAAQ0K,KACd3Y,UAAU,sBACVqZ,UAAW,CAAEC,OAAQZ,KAAKD,oBAAqB/T,eAAgBgU,KAAK7d,MAAM8B,QAAQC,WAX/E,KAgBPwmC,uBAAuB99B,EAA4Bq+B,GAA+B,IAAAC,EAAAC,EAGtF,MAUMC,EAAwBx+B,MAAAA,GAAmB,QAAfs+B,EAAJt+B,EAAM6xB,qBAAa,IAAAyM,GAAnBA,EAAqBjN,UAAYrxB,EAAK6xB,cAVd,CAClDR,UAAW,CACPC,GAAI,CAAEL,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCsN,GAAI,CAAExN,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCuN,GAAI,CAAEzN,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCI,GAAI,CAAEN,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,KACvCK,GAAI,CAAEP,EAAG,kBAAmBC,EAAG,IAAKC,EAAG,MAE3CM,UAAU,GAId,OACI38B,EAAAA,cAACgf,EAAAA,GAAc9e,OAAAC,OAAA,GACP+K,EAAI,CACRZ,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCs6B,aAAcxe,KAAK7d,MAAM8B,QAAQC,QAAQs6B,aACzCC,cAAe2M,EACfvM,oBAAoB,UAAS,cAChBoM,EACbtqB,UAAW,CACPpZ,IAAsC,QAAnC4jC,EAAEnrB,KAAK7d,MAAMiC,OAAO+lC,uBAAe,IAAAgB,EAAAA,EAAI,GAC1Cn/B,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCqnC,WAAYvrB,KAAK7d,MAAMkgC,SACvBmJ,kBAAmB,YAM3Bb,sBACJ/9B,EACA6+B,EACAR,GAA+B,IAAAS,EAE/B,OAAK9+B,EAGDswB,EAAAA,iBAAiBqH,mBAAmB33B,EAAK+xB,KAClC,KAIPj9B,EAAAA,cAACgf,EAAAA,GAAc9e,OAAAC,OAAA,GACP+K,EAAI,CACR4xB,aAAcxe,KAAK7d,MAAM8B,QAAQC,QAAQs6B,aACzCC,cAAegN,EACf5M,oBAAoB,UAAS,cAChBoM,EACbtqB,UAAW,CACPpZ,IAAqC,QAAlCmkC,EAAE1rB,KAAK7d,MAAMiC,OAAOgmC,sBAAc,IAAAsB,EAAAA,EAAI,GACzC1/B,eAAgBgU,KAAK7d,MAAM8B,QAAQC,QACnCqnC,WAAYvrB,KAAK7d,MAAMkgC,SACvBmJ,kBAAmB,QAGnBG,OAAS3rB,KAAK7d,MAAMiC,OAAewnC,2BApBpC,MA2BnB,qHC3MA,MAgCaC,EAA8D1pC,IACvE,MAAM,aAAEyoC,GAAiBzoC,EACzB,OAAOT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAK+oC,GAlCYzoC,CAAAA,IAC/B,MAAM,QACFoT,EAAO,UACPmzB,EAAS,gBACTyB,EAAe,MACf/pB,EAAK,eACLgqB,EAAc,kBACdS,EAAiB,uBACjBC,EAAsB,gCACtBC,EAA+B,yBAC/BC,GACA7oC,EAEJ,OACIT,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKgpC,GACNnpC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKipC,GAAyBX,GACnCzoC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKmpC,GACLz1B,EACAmzB,EACAtoB,GAEL1e,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKkpC,GAAkCX,KAalB0B,CAA0B3pC,KAGhE,mWCnBA,MAOM4pC,GAA8C/jB,EAAAA,EAAAA,KAAU7lB,IAC1D,MAAM,UACF6pC,EAAS,aACTC,EACA9lC,MAAM,KAAEoI,IACRpM,EAGE+pC,EAAW39B,EAAOA,EAAK49B,iBAFQ,EAGrC,IAAIC,EAAmB,GAInBA,EADAF,EAF4B,GACC,OAIlBG,EAAAA,EAAAA,QAAOJ,EAAcC,GAEpC,MAAMx3B,GAAQ23B,EAAAA,EAAAA,QAAOL,EAAWE,GAG1B5iC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpH,EAAMW,iBAAmB,YAAa,IAC1Eia,GAAapT,EAAAA,EAAAA,wBAAuBxH,EAAMW,iBAAmBwG,GAC7DqS,EAA6B,CAC/B2wB,WAAY/9B,EAAO,UAAY,UAEnC,OACI7M,EAAAA,cAAA,MAAAE,OAAAC,OAAA,CAAKyF,UAAU,gBAAgBgN,KAAK,SAAQ,aAAaI,EAAO9L,MAAO8L,GAAWqI,GAC9Erb,EAAAA,cAAA,OAAK4F,UAAU,uBAAsB,iBAAaqU,MAAOA,GACpDywB,OAMJG,EAAsE1M,EAAAA,GAAiB2M,wBAGlG,gXAAUhsB,CAAA,CAAIuf,UAAWgM,GA5CM,KA8CjC,+EC9DA,MAAMU,EAA2BC,IAA8D,IAAAC,EAC3F,OACIjrC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK6qC,EAAkBE,uBACiB,QADID,EAC5CD,EAAkBG,8BAAsB,IAAAF,OAAA,EAAxCA,EAA0ChnC,KAAKiH,GAExClL,EAAAA,cAAAA,EAAAA,SAAA,KACKkL,EAAK2I,QACN7T,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK+K,EAAKkgC,gCACVlgC,EAAKqT,KACNve,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK+K,EAAKmgC,4BAA6BngC,EAAKwT,aAkE7E,EApD2Dje,IACvD,MAAM,sBACF6qC,EAAqB,eACrBC,EAAc,iBACdC,EAAgB,MAChBtkC,EAAK,KACLqX,EAAI,MACJG,EAAK,MACLke,EAAK,sBACL6O,EAAqB,UACrBC,EAAS,eACTC,EAAc,kBACdX,GACAvqC,EAIEmrC,EADoBhP,EAAMn8B,MAAMw8B,IACA,GAAGuO,EAAiB5lC,sBAAwB,GAAG4lC,EAAiB5lC,yBAEtG,OAAI8lC,EAEI1rC,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKmrC,GACRtrC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GACGsrC,EAAqB,CACzBxkC,KAAMykC,EACN9lC,UAAW6lC,EAAwBA,EAAsB7lC,UAAY,GAAE,aAC3D+lC,IAEZ3rC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKorC,GAAiB3O,IAE/B58B,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKqrC,GACLtkC,EACAqX,EACAG,EACAssB,GAAqBD,EAAwBC,KAM1DhrC,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAKmrC,GACRtrC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAKorC,GAAiB3O,GAC3B58B,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAWgmC,GACZ1kC,EACAqX,EACAG,EACAssB,GAAqBD,EAAwBC,6HC5D9D,MA8Baa,EAC+CprC,IACxD,MAAM,kBAEFqrC,EAAiB,eACjBC,EAAc,cACdC,EAAa,OACblI,EAAM,cACNmI,EAAa,QACbp4B,EAAO,eACPq4B,EAAc,0BACdC,EAAyB,4BACzBC,GACA3rC,EAEJ,OACIT,EAAAA,cAACgY,EAAAA,OAAM9X,OAAAC,OAAA,GAAK2rC,GACPj4B,EACD7T,EAAAA,cAACC,EAAAA,KAAI,CAAC2F,UAAU,IACA,YAAXk+B,GAA0BiI,GAAmBG,GAAmBnvB,EAAAA,gBAAgBC,YAAYkvB,GAOzFC,EANAnsC,EAAAA,cAAA,OAAK4F,UAAU,iCACX5F,EAAAA,cAAA,MAAI4F,UAAU,yCAAyCnF,EAAME,UAAU0rC,kCACvErsC,EAAAA,cAAA,KAAG4F,UAAU,sCAAsCnF,EAAME,UAAU2rC,+BAClEH,GAKRC,GAEO,YAAXtI,GAAwBmI,EACxBF,GAAkBG,GAAkBnvB,EAAAA,gBAAgBC,YAAYkvB,IAC7DlsC,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,GAAK4rC,GACLG,EAAejoC,KAAIsoC,GA/DZC,EAACD,EAA8CE,KAEvE,MAAM,IAAE5mC,EAAG,gBAAE6mC,EAAe,mBAAEC,EAAkB,2BAAEC,EAA0B,aAAEC,EAAY,kBAAEC,GAAsBP,EAE5GQ,EAAiDJ,EACjDK,EAAyBD,EAA0BtsC,MAAM8c,SAAS1Z,OAGxE,GAAImpC,EAF8B,EAG9B,IAAK,IAAI7oC,EAAQ,EAAGA,EAHU,EAG0B6oC,EAAwB7oC,IAC5E4oC,EAA0BtsC,MAAM8c,SAASvN,KAAKhQ,EAAAA,cAAA,iBAItD,OACIA,EAAAA,cAACC,EAAAA,KAAIC,OAAAC,OAAA,CAAC0F,IAAKA,EAAKD,UAAW6mC,EAAwB7mC,WAAe6mC,GAC7DK,EACAH,EACAD,EACAG,EACAD,IA4CkBJ,CAAoBD,EAAeP,QAQlE","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/b2b/utilities/propertyTypeEnum.ts?c903","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/cart.view.tsx?b500","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/checkout.view.tsx?a006","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/header.view.tsx?5f10","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/product-specification.view.tsx?79c9","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/site-picker.view.tsx?3875","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-button.tsx?e1d9","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-error.tsx?7f8a","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-input.tsx?5bbe","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-label.tsx?4988","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-radio-button.tsx?f8c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.tsx?13a2","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.view.tsx?e2f8","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/search-bar.tsx?63c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/data-grid.tsx?ddec","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partner-users-table.tsx?c677","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partners-table.tsx?8b1d","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.tsx?57a6","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.view.tsx?b34e","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-header.tsx?a6c6","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-payment-summary.tsx?3434","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-products.tsx?8f29","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/helpers/invoice-data.ts?608f","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.tsx?b51a","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/components/links.tsx?c969","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/carticon.component.tsx?3c7c","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6"],"sourcesContent":["export enum PropertyType {\r\n none = 0,\r\n address = 1,\r\n legalDescription = 2,\r\n legalDescriptionCondo = 3,\r\n rollNumber = 4,\r\n lincNumber = 5,\r\n titleNumber = 6,\r\n cpid = 7,\r\n community = 8,\r\n sdab = 9,\r\n quadrant = 10,\r\n blockProfile = 11,\r\n ats = 12,\r\n cityWide = 13,\r\n document = 14,\r\n lcsab = 15,\r\n ptweb = 16,\r\n //exit case\r\n default = 17\r\n}\r\n\r\nexport enum PropertyMaxLength {\r\n rollNumber = 9,\r\n lincNumber = 10,\r\n cpid = 10,\r\n titleNumber = 12,\r\n default = 12\r\n}\r\nexport enum PropertyMinLength {\r\n rollNumber = 8,\r\n lincNumber = 8,\r\n cpid = 8,\r\n titleNumber = 5,\r\n default = 10\r\n}\r\nexport enum PropertyInformationSearchTypes {\r\n address = PropertyType.address,\r\n legalDescription = PropertyType.legalDescription,\r\n legalDescriptionCondo = PropertyType.legalDescriptionCondo,\r\n rollNumber = PropertyType.rollNumber,\r\n lincNumber = PropertyType.lincNumber,\r\n titleNumber = PropertyType.titleNumber,\r\n cpid = PropertyType.cpid\r\n}\r\nexport enum WithDocumentNamePropertyType {\r\n none = PropertyType.none,\r\n ats = PropertyType.ats,\r\n community = PropertyType.community,\r\n quadrant = PropertyType.quadrant,\r\n blockProfile = PropertyType.blockProfile,\r\n cityWide = PropertyType.cityWide\r\n}\r\n\r\nexport enum nonDownloadableProperty {\r\n lcsab = PropertyType.lcsab,\r\n sdab = PropertyType.sdab,\r\n default = PropertyType.default\r\n}\r\n\r\nexport enum TaxPropertyAttributeName {\r\n propertyTaxInformation = 'Property_Tax_Information',\r\n propertyTaxStatementOfAccount = 'Property_Tax_Statement_of_Account',\r\n propertyTaxCertificateRequestByEmail = 'Property_Tax_Certificate',\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { ICartlinesViewProps, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\r\nimport { ICartResources } from '../definition-extensions/cart.ext.props.autogenerated';\r\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\r\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n ITelemetryContent,\r\n Node,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ICartProps } from '../definition-extensions/cart.ext.props.autogenerated';\r\nimport MsDyn365, { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { ICustomerAttributeData } from './cart.data';\r\nimport getAttributeObject from '../utilities/buybox/get-address-attribute-object';\r\nimport { WithDocumentNamePropertyType } from '../utilities/propertyTypeEnum';\r\nimport { updateCartLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { getAttributeValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nconst FOLIO_NUMBERS_STORAGE_NAME = 'FOLIO_NUMBERS';\r\n\r\ninterface IFolioNumber {\r\n name: string;\r\n folioNumber: string;\r\n folioNumberStatus: boolean;\r\n validationMessage: string;\r\n lineId: string;\r\n isAddress: boolean;\r\n}\r\n\r\nconst CartView: React.FC> = (\r\n props: ICartViewProps & ICartProps\r\n) => {\r\n const { downloadUnavailableHeader, downloadUnavailableBody, downloadUnavailableDate, showInfoBox } = props.config;\r\n const {\r\n closeLabel,\r\n checkoutButtonTitle,\r\n guestCheckoutButtonTitle,\r\n loadingLabel,\r\n refreshAndTryAgainMessage,\r\n folioNumberText\r\n } = props.resources;\r\n const [folioNumbers, setFolioNumbers] = React.useState([]);\r\n const { folioNumberValueAttribute, folioNumberActivationStatus, encroachmentProducts } = props.context.app.config;\r\n const isCartEmpty = props.cart && props.cart.cart.CartLines && props.cart.cart.CartLines.length === 0;\r\n const { isAuthenticated } = props.context.request.user;\r\n\r\n const getFolioStatus = () => {\r\n const customerInformation = props.data.customerInformation.result;\r\n const attributeDefinitions = props.data.attributeDefinitions.result;\r\n const folioActivation = customerInformation?.Attributes?.find(x => x.Name === folioNumberActivationStatus)?.AttributeValue\r\n ?.StringValue;\r\n if (folioActivation === undefined) {\r\n if (customerInformation?.IsB2b === false) {\r\n return false;\r\n } else {\r\n return (\r\n attributeDefinitions?.find(x => x.Name === folioNumberActivationStatus)?.DefaultValue?.StringValue?.toLowerCase() ===\r\n 'true'\r\n );\r\n }\r\n } else {\r\n return (\r\n customerInformation?.Attributes?.find(\r\n x => x.Name === folioNumberActivationStatus\r\n )?.AttributeValue?.StringValue?.toLowerCase() === 'true'\r\n );\r\n }\r\n };\r\n const [showFolioNumber] = React.useState(getFolioStatus() && isAuthenticated);\r\n const [disableCheckout, setDisableCheckout] = React.useState(true);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const itemsCount = props.data.cart.result?.cart.CartLines?.length;\r\n const [showAlert, setShowAlert] = React.useState(true);\r\n const [isError, setIsError] = React.useState(false);\r\n const { itemsInCurrentOrderLabel } = props.resources;\r\n const { disableGuestCheckout } = props.config;\r\n React.useEffect(() => {\r\n async function addresshandling() {\r\n const storageName = `${props.context.request.user.customerAccountNumber}-${FOLIO_NUMBERS_STORAGE_NAME}`;\r\n const newFolioNumbers: IFolioNumber[] = [];\r\n for (let index = 0; index < props.cart?.cart.CartLines?.length!; index++) {\r\n const line = props.cart?.cart.CartLines![index];\r\n const lineId = line?.LineId || '';\r\n //@ts-ignore\r\n const folio: string = line.AttributeValues?.find(attr => attr.Name === folioNumberValueAttribute)?.TextValue || '';\r\n const result = await getAttributeValuesAsync(\r\n { callerContext: props.context.actionContext, queryResultSettings: {} },\r\n line?.ProductId!,\r\n props.context.request.apiSettings.channelId,\r\n 0\r\n );\r\n const checkEncroachment =\r\n result?.find(attr => attr.Name?.toLowerCase() === encroachmentProducts?.toLowerCase())?.BooleanValue || false;\r\n const folioArr = folio.split('||');\r\n const folioValue = checkEncroachment ? (folioArr.length > 0 ? folioArr[1] : folioArr[0]) : folio;\r\n const folioObj = {\r\n name: `${folioNumberText}${lineId}`,\r\n folioNumber: folioValue,\r\n lineId: lineId,\r\n folioNumberStatus: isValidFolioNumber(folioValue),\r\n validationMessage: '',\r\n isAddress: checkEncroachment\r\n };\r\n const localStorageFolios: IFolioNumber[] = JSON.parse(localStorage.getItem(storageName) || '[]');\r\n newFolioNumbers.push(\r\n folioNumbers.find(x => x.lineId === folioObj.lineId) ||\r\n localStorageFolios.find(x => x.lineId === folioObj.lineId) ||\r\n folioObj\r\n );\r\n }\r\n localStorage.setItem(storageName, JSON.stringify(newFolioNumbers));\r\n const isDisabled = newFolioNumbers.some(folioNumber => folioNumber.folioNumberStatus === false);\r\n setDisableCheckout(isDisabled);\r\n setFolioNumbers(newFolioNumbers);\r\n }\r\n addresshandling();\r\n }, [props.cart?.cart.CartLines?.length]);\r\n\r\n const signInUrl = props.context.request.user.signInUrl;\r\n const guestCheckoutUrl = getUrlSync('checkout', props.context.actionContext) || '';\r\n const checkoutURL = _getCheckoutURL(isAuthenticated, guestCheckoutUrl, signInUrl || '');\r\n function _getCheckoutURL(isAuthenticated: boolean, guestCheckoutUrl: string, signInUrl: string): string {\r\n if (isAuthenticated) {\r\n return guestCheckoutUrl;\r\n }\r\n const absoluteUrlRegExp = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n const cartUrl = getUrlSync('cart', props.context.actionContext)!;\r\n const isAbsoluteUrl = absoluteUrlRegExp.test(cartUrl);\r\n let returnURL = cartUrl;\r\n if (MsDyn365.isBrowser && !isAbsoluteUrl) {\r\n returnURL = `${window.location.origin}${cartUrl}`;\r\n }\r\n return `${signInUrl}${!signInUrl.includes('?') ? '?' : '&'}ru=${returnURL}`;\r\n }\r\n\r\n const isValidFolioNumber = (folioNumber: string): boolean => {\r\n return (\r\n folioNumber?.length <= parseInt(props.config.folioNumberMaxLength!) &&\r\n folioNumber?.length >= parseInt(props.config.folioNumberMinLength!)\r\n );\r\n };\r\n\r\n const onCheckoutClick = async (url: string) => {\r\n setIsLoading(true);\r\n try {\r\n if (showFolioNumber || folioNumbers.some(folio => folio.isAddress)) {\r\n const cartLines = props.cart?.cart.CartLines || [];\r\n folioNumbers.forEach(folio => {\r\n const line = cartLines.find(line => line.LineId === folio.lineId);\r\n if (line) {\r\n const folioValue = folio.isAddress ? `MunicipalAddress||${folio.folioNumber}` : folio.folioNumber;\r\n const newAttrs = line.AttributeValues?.filter(attr => attr.Name !== folioNumberValueAttribute) || [];\r\n newAttrs.push(getAttributeObject(folioNumberValueAttribute, folioValue));\r\n line.AttributeValues = newAttrs;\r\n }\r\n });\r\n props.cart && (await updateCartLinesAsync({ callerContext: props.context.actionContext }, props.cart.cart.Id, cartLines));\r\n await props.cart?.refreshCart({});\r\n }\r\n window.location.assign(url);\r\n } catch {\r\n setIsLoading(false);\r\n setIsError(true);\r\n }\r\n };\r\n const isDisabledCheckoutButton = () => {\r\n return isAuthenticated\r\n ? showFolioNumber\r\n ? disableCheckout || isError\r\n : folioNumbers.some(folio => folio.isAddress && !folio.folioNumberStatus)\r\n : false;\r\n };\r\n return (\r\n
\r\n
{props.backToShoppingButton}
\r\n {props.title}\r\n {showInfoBox && showAlert && (\r\n
\r\n
\r\n \r\n

{downloadUnavailableHeader}

\r\n \r\n
\r\n
\r\n

{downloadUnavailableBody}

\r\n

{downloadUnavailableDate}

\r\n
\r\n
\r\n )}\r\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\r\n {props.multiplePickUpEnabled ? (\r\n _renderCartLinesGroup(\r\n props,\r\n props.resources,\r\n showFolioNumber,\r\n folioNumbers,\r\n setFolioNumbers,\r\n setDisableCheckout,\r\n isValidFolioNumber\r\n )\r\n ) : (\r\n \r\n {_renderCartlines(\r\n props,\r\n props.cartlines,\r\n props.resources,\r\n props.storeSelector,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult,\r\n folioNumbers,\r\n setFolioNumbers,\r\n setDisableCheckout,\r\n isValidFolioNumber,\r\n props.telemetryContent,\r\n props.multiplePickUpEnabled,\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode,\r\n showFolioNumber\r\n )}\r\n \r\n )}\r\n {props.orderSummaryHeading && (\r\n \r\n {props.orderSummaryHeading}\r\n {/* VSI-Customization -- START Display count of items in cart */}\r\n {\r\n \r\n {itemsInCurrentOrderLabel} {itemsCount}\r\n \r\n }\r\n {/* VSI-Customization -- END */}\r\n {props.cart?.hasInvoiceLine\r\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\r\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\r\n {_renderErrorBlock(props.OrderSummaryErrors)}\r\n {isError && {refreshAndTryAgainMessage}}\r\n
\r\n {!isCartEmpty ? (\r\n onCheckoutClick(checkoutURL)}\r\n disabled={isDisabledCheckoutButton()}\r\n className='msc-cart__btn-checkout'\r\n title={checkoutButtonTitle}\r\n >\r\n {checkoutButtonTitle}\r\n \r\n ) : null}\r\n {!disableGuestCheckout && !isCartEmpty && !isAuthenticated ? (\r\n onCheckoutClick(guestCheckoutUrl)}\r\n disabled={isDisabledCheckoutButton()}\r\n className='msc-cart__btn-guestcheckout'\r\n title={guestCheckoutButtonTitle}\r\n >\r\n {guestCheckoutButtonTitle}\r\n \r\n ) : null}\r\n {isLoading ? (\r\n
\r\n
\r\n {loadingLabel}\r\n
\r\n

{loadingLabel}

\r\n
\r\n ) : null}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\r\n return (\r\n \r\n \r\n {promotions.promotionMessage}\r\n {promotions.promotionSeeAllLink}\r\n {promotions.promotionDialog}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderCartlines = (\r\n props: ICartViewProps & ICartProps<{}>,\r\n cartLines: ICartlinesViewProps[] | undefined,\r\n resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined,\r\n waitingComponent: React.ReactNode,\r\n cartLoadingStatus: string,\r\n cartDataResult: boolean,\r\n folioNumbers: IFolioNumber[],\r\n setFolioNumbers: React.Dispatch>,\r\n setDisableCheckout: React.Dispatch>,\r\n isValidFolioNumber: (str: string) => boolean,\r\n telemetryContent?: ITelemetryContent,\r\n mulitplePickUp?: boolean,\r\n emailDeliveryModeCode?: string,\r\n showFolioNumber?: boolean\r\n): JSX.Element[] | JSX.Element => {\r\n const {\r\n emptyCartText,\r\n folioNumberRequired,\r\n folioNumberInvalid,\r\n municipalAddressRequired,\r\n municipalAddressInvalid,\r\n folioNumberLabel,\r\n folioNumberText,\r\n searchKeyLabel,\r\n documentNameLabel,\r\n addressValueLabel,\r\n folioNumberRequiredLabel\r\n } = resources;\r\n const { searchKeyValueAttribute, documentAttribute, searchKeyNameAttribute } = props.context?.request.app.config;\r\n const onInputBlur = () => {\r\n const storageName = `${props.context.request.user.customerAccountNumber}-${FOLIO_NUMBERS_STORAGE_NAME}`;\r\n localStorage.setItem(storageName, JSON.stringify(folioNumbers));\r\n };\r\n const onFolioNumberChange = (e: React.ChangeEvent) => {\r\n const name = e.target.name;\r\n const value = e.target.value;\r\n const folio = folioNumbers.find(folio => folio.name === name)!;\r\n folio.folioNumber = value;\r\n if (isValidFolioNumber(value)) {\r\n folio.validationMessage = '';\r\n folio.folioNumberStatus = true;\r\n } else {\r\n folio.validationMessage =\r\n value.length === 0\r\n ? folio.isAddress\r\n ? municipalAddressRequired\r\n : folioNumberRequired\r\n : folio.isAddress\r\n ? municipalAddressInvalid\r\n : folioNumberInvalid;\r\n folio.folioNumberStatus = false;\r\n }\r\n setFolioNumbers([...folioNumbers]);\r\n const checkFolio = folioNumbers.find(f => f.folioNumberStatus === false);\r\n if (checkFolio?.folioNumberStatus === false) {\r\n setDisableCheckout(true);\r\n } else {\r\n setDisableCheckout(false);\r\n }\r\n };\r\n\r\n if (cartLoadingStatus) {\r\n return <>{cartLoadingStatus};\r\n }\r\n if (cartLines) {\r\n return cartLines.map((cartLine, index) => {\r\n const attributeValue: string =\r\n //@ts-ignore\r\n cartLine.data?.cartline.AttributeValues?.find(line => line.Name === searchKeyValueAttribute)?.TextValue || '';\r\n const attributeDocument: string =\r\n //@ts-ignore\r\n cartLine.data?.cartline.AttributeValues?.find(line => line.Name === documentAttribute)?.TextValue || '';\r\n const propertyType: string =\r\n //@ts-ignore\r\n cartLine.data?.cartline.AttributeValues?.find(line => line.Name === searchKeyNameAttribute)?.TextValue || '';\r\n const name = `${folioNumberText}${cartLine.cartlineId!}`;\r\n const errorId = `${folioNumberText}${cartLine.cartlineId!}Er`;\r\n const folioNumber = folioNumbers.find(folio => folio.name === name);\r\n const isAddress = folioNumber?.isAddress;\r\n const searchKey: string = attributeValue.includes('||')\r\n ? attributeValue\r\n .split('||')\r\n .map((val: string) => val?.trim().toUpperCase())\r\n .join(' ')\r\n : attributeValue.toUpperCase();\r\n const documentName = propertyType in WithDocumentNamePropertyType ? attributeDocument.split('||')[1]?.trim() : undefined;\r\n\r\n return (\r\n
\r\n {cartLine.cartline}\r\n {searchKey &&
{`${searchKeyLabel} ${searchKey}`}
}\r\n {documentName &&
{`${documentNameLabel} ${documentName}`}
}\r\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {showFolioNumber || isAddress ? (\r\n
\r\n \r\n \r\n \r\n {folioNumber?.validationMessage != '' ? folioNumber?.validationMessage : null}\r\n \r\n
\r\n ) : null}\r\n {mulitplePickUp ? (\r\n \r\n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {cartLine.remove}\r\n \r\n ) : cartLine.addToOrderTemplate ? (\r\n {cartLine.remove}\r\n ) : (\r\n <>{cartLine.remove}\r\n )}\r\n
\r\n );\r\n });\r\n } else {\r\n /* VSI-Customization -- START Display continue shopping button with different label/text */\r\n const backToShoppingUrl = getUrlSync('home', props.context.actionContext) || '';\r\n const { continueShoppingBrowserOurProducts } = resources;\r\n const continueShoppingBrowserOurProductsButton = (\r\n \r\n );\r\n /* VSI-Customization -- END */\r\n return cartDataResult ? (\r\n
\r\n

{emptyCartText}

\r\n {continueShoppingBrowserOurProductsButton}\r\n
\r\n ) : (\r\n <>{waitingComponent}\r\n );\r\n }\r\n};\r\n\r\nconst _renderBOPISBlock = (\r\n cartLine: ICartlinesViewProps,\r\n resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element | null => {\r\n // If it is electronic item cart line, then return null for BOPISBlock.\r\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\r\n return null;\r\n }\r\n\r\n const {\r\n shipInsteadDisplayText,\r\n shipToAddressDisplayText,\r\n pickItUpDisplayText,\r\n pickUpAtStoreWithLocationText,\r\n changeStoreDisplayText\r\n } = resources;\r\n\r\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\r\n const toggleBopis = (event: React.MouseEvent) => {\r\n return cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\r\n };\r\n const changeStore = (event: React.MouseEvent) => {\r\n return cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\r\n };\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n
\r\n {isBopisSelected ? (\r\n {pickUpAtStoreWithLocationText}\r\n ) : (\r\n {shipToAddressDisplayText}\r\n )}\r\n
\r\n {isBopisSelected && (\r\n
\r\n {cartLine.pickUpInStore.orgUnitName}\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\r\n if (!errorData || errorData.errors.length === 0) {\r\n return null;\r\n }\r\n return (\r\n \r\n {errorData.header}\r\n {errorData.errors}\r\n \r\n );\r\n};\r\n\r\nconst _renderOrderSummarylines = (\r\n orderSummaryLines: IOrderSummaryLines | undefined,\r\n OrderSummaryItems: INodeProps,\r\n props: ICartViewProps & ICartProps<{}>\r\n): JSX.Element | null => {\r\n if (!orderSummaryLines) {\r\n return null;\r\n }\r\n return (\r\n \r\n {props.promoCode}\r\n {orderSummaryLines.subtotal}\r\n {orderSummaryLines.shipping}\r\n {orderSummaryLines.otherCharge}\r\n {orderSummaryLines.tax}\r\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\r\n {orderSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\nconst _renderInvoiceSummarylines = (\r\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\r\n OrderSummaryItems: INodeProps,\r\n props: ICartViewProps\r\n): JSX.Element | null => {\r\n if (!invoiceSummaryLines) {\r\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {invoiceSummaryLines.invoices}\r\n {invoiceSummaryLines.giftCard}\r\n {invoiceSummaryLines.loyalty}\r\n {invoiceSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\nconst _renderCartLinesGroup = (\r\n props: ICartViewProps & ICartProps<{}>,\r\n resources: ICartResources,\r\n showFolioNumber: boolean,\r\n folioNumbers: IFolioNumber[],\r\n setFolioNumbers: React.Dispatch>,\r\n setDisableCheckout: React.Dispatch>,\r\n isValidFolioNumber: (str: string) => boolean\r\n): JSX.Element | undefined => {\r\n const { emptyCartText } = resources;\r\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\r\n return (\r\n
\r\n {props.cartLinesGroup?.map(cartlines => {\r\n // tslint:disable-next-line:jsx-key\r\n return (\r\n
\r\n {_renderCartLinesGroupHeader(cartlines[0], resources, _countItems(cartlines))}\r\n {_renderCartlines(\r\n props,\r\n cartlines,\r\n props.resources,\r\n props.storeSelector,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult,\r\n folioNumbers,\r\n setFolioNumbers,\r\n setDisableCheckout,\r\n isValidFolioNumber,\r\n props.telemetryContent,\r\n props.multiplePickUpEnabled,\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode,\r\n showFolioNumber\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n } else {\r\n return props.cartDataResult ? (\r\n
\r\n
\r\n

{emptyCartText}

\r\n {props.backToShoppingButton}\r\n
\r\n
\r\n ) : (\r\n <>{props.waitingComponent}\r\n );\r\n }\r\n};\r\n\r\nconst _renderCartLinesGroupHeader = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\r\n const isBopisSelected = cartLine?.pickUpInStore?.isBopisSelected;\r\n const { pickUpText, shippingText } = resources;\r\n return (\r\n \r\n
\r\n {isBopisSelected ? (\r\n

\r\n ) : (\r\n

\r\n )}\r\n {isBopisSelected ? (\r\n

{pickUpText}

\r\n ) : (\r\n

{shippingText}

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

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

\r\n ) : null}\r\n {\r\n

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

\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CartView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./checkout';\r\nimport { IEmailDelivery } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./components';\r\nimport { IInvoicePaymentSummary } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./components/get-invoice-payment-summary';\r\nimport { ICheckoutProps, ICheckoutResources } from '../definition-extensions/checkout.ext.props.autogenerated';\r\nimport { Collapse, CardBody, Card, CardHeader } from 'reactstrap';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\nconst NUMBER_OF_ITEMS = 'ITEM_NUMBERS';\r\n\r\ninterface IOrderSummaryExtended {\r\n lineItems?: ILineItems;\r\n resources: ICheckoutResources;\r\n props: ICheckoutViewProps & ICheckoutProps<{}>;\r\n}\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n {editLink}\r\n \r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines, lineItems, resources, props }) => {\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n // NOTE: Need to check for other shipment products (ship, email, pickup)\r\n const itemsCount = props.data.checkout.result?.checkoutCart.cart.CartLines?.length;\r\n return (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n \r\n setIsOpen(prevSt => !prevSt)}\r\n onKeyPress={() => setIsOpen(prevSt => !prevSt)}\r\n >\r\n {resources.itemsInCurrentOrderLabel}\r\n {itemsCount}\r\n \r\n \r\n \r\n {lineItems && }\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\nconst getShowButtonFrmCart = async (\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>\r\n): Promise => {\r\n const cartState = await getCartState(context.actionContext);\r\n return cartState?.cart.CartLines && cartState?.cart?.TotalAmount === 0;\r\n};\r\nconst CheckoutView: React.FC> = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n context\r\n } = props;\r\n React.useEffect(() => {\r\n const storageName = `${props.context.request.user.customerAccountNumber}-${NUMBER_OF_ITEMS}`;\r\n localStorage?.setItem(storageName, JSON.stringify(lineItems?.itemsForShip?.lineItems?.length));\r\n }, [lineItems?.itemsForShip?.lineItems?.length]);\r\n\r\n const [showButtonFrmCart, setShowButtonFrmCart] = React.useState(false);\r\n getShowButtonFrmCart(context).then(res => setShowButtonFrmCart(res!));\r\n\r\n const getPlaceOrderButton = () => {\r\n return props.config.showPlaceOrderButton ? (\r\n {placeOrderButton}\r\n ) : (\r\n showButtonFrmCart && {placeOrderButton}\r\n );\r\n };\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n {termsAndConditions}\r\n {getPlaceOrderButton()}\r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && (\r\n \r\n )\r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {termsAndConditions}\r\n {/* {getPlaceOrderButton()} */}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport ModalFooter from 'reactstrap/lib/ModalFooter';\r\nimport { Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider, config } = props;\r\n const { siteSubtext, siteInfotext } = config;\r\n const {\r\n searchHeader,\r\n closeLabel,\r\n lookForLabel,\r\n switchProfileHeader,\r\n profilesAvailableHeader,\r\n switchProfileNote,\r\n siteName,\r\n switchProfileButtonLabel,\r\n searchButtonLabel\r\n } = props.resources;\r\n const [modal, setModal] = React.useState(false);\r\n const [modalSite, setModalSite] = React.useState(false);\r\n const toggle = () => setModal(!modal);\r\n const toggleSite = () => setModalSite(!modalSite);\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n {searchHeader}\r\n

\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {switchProfileHeader}\r\n

\r\n \r\n
\r\n\r\n \r\n
\r\n

{profilesAvailableHeader}

\r\n {props.siteOptions}\r\n
\r\n
\r\n \r\n

{switchProfileNote}

\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
{_renderAccountBlock(props, false)}
\r\n \r\n \r\n
\r\n {props.logo}\r\n
\r\n {siteName}\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {props.navIcon}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* {_renderReactFragment(props.search)}\r\n {props.preferredStore} */}\r\n\r\n {/* {props.wishListIconDesktop} */}\r\n \r\n {props.cartIcon}\r\n
\r\n
\r\n {_renderCollapseMenu(props)}\r\n {_renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps & IHeaderProps<{}>): JSX.Element | null {\r\n const {\r\n Divider,\r\n MobileMenuLinksContainer,\r\n mobileMenuCollapsed,\r\n resources: { navMenuHeader }\r\n } = props;\r\n return (\r\n \r\n
\r\n \r\n {props.navIcon}\r\n
\r\n \r\n \r\n {_renderMobileAccountBlock(props, true)}\r\n {/* {props.wishListIconMobile} */}\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return <>{customer ? customer.FirstName || customer.Name : ''};\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n 'ms-header__drawer',\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps & IHeaderProps<{}>, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, AccountInfoDropdownPopoverConentContainer, signOutLink, signInLink, accountLinks } = props;\r\n const customer = props.data.accountInformation.result;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {/* VSI-Customization -- START Display username with Hello */}\r\n {_getAccountInfoDropdownButton(customer, props)}\r\n {/* VSI-Customization -- END */}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n// Display user name with Hello as per Design document.\r\nfunction _getAccountInfoDropdownButton(\r\n customer: Customer | undefined,\r\n props: IHeaderViewProps & IHeaderProps<{}>\r\n): React.ReactNode | undefined {\r\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n const { helloLabel } = props.resources;\r\n const payLoad = getPayloadObject('click', telemetryContent, TelemetryConstant.MyProfile);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n const displayName = `${helloLabel} ${customer ? customer.FirstName || customer.Name : undefined}`;\r\n return (\r\n customer &&\r\n displayName && (\r\n \r\n {displayName}\r\n \r\n )\r\n );\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\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 { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IProductSpecificationViewProps } from '@msdyn365-commerce-modules/product-specification/src/modules/product-specification/./product-specification';\r\nimport { IProductSpecificationProps } from '../definition-extensions/product-specification.ext.props.autogenerated';\r\n\r\nconst ProductSpecificationView: React.FC> = props => {\r\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\r\n\r\n const rowdata =\r\n productSpecificationResult &&\r\n ArrayExtensions.hasElements(productSpecificationResult) &&\r\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\r\n\r\n const { productAttributesToHide } = props.config;\r\n if (rowdata && productAttributesToHide && productAttributesToHide.length > 0 && rowdata.length > 0) {\r\n for (let index = 0; index < productAttributesToHide.length; index++) {\r\n // const rowIndex = rowdata.findIndex(\r\n // row => row?.props.productName.toLowerCase() === productAttributesToHide[index].toLowerCase().trim()\r\n // );\r\n \r\n // Fix for product description broken on 10.0.39 - Fixed by Prasanna Ruwangana\r\n const rowIndex = rowdata.findIndex(row => {\r\n if (row && row.props && row.props.children && row.props.children.props && row.props.children.props.productName && productAttributesToHide && productAttributesToHide[index]) {\r\n return row.props.children.props.productName.toLowerCase().trim() === productAttributesToHide[index].toLowerCase().trim();\r\n }\r\n return false; // Handle case where row, row.props, or row.props.productName is undefined\r\n });\r\n\r\n if (rowIndex >= 0) {\r\n rowdata.splice(rowIndex, 1);\r\n }\r\n }\r\n return _renderRowData();\r\n } else {\r\n return _renderRowData();\r\n }\r\n\r\n function _renderRowData(): React.ReactElement> | null {\r\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\r\n \r\n {props.title}\r\n \r\n {rowdata}\r\n \r\n \r\n ) : null;\r\n }\r\n};\r\n\r\nexport default ProductSpecificationView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ISitePickerViewProps } from '@msdyn365-commerce-modules/site-picker/src/modules/site-picker/./site-picker';\r\n\r\nexport default (props: ISitePickerViewProps) => {\r\n return <>{_renderSitePicker(props)};\r\n};\r\n\r\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePickerMobileContainer } = props;\r\n return (\r\n \r\n
\r\n {props.SitePickerMenuListItemArray?.map((item, index) => {\r\n return
{item}
;\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\r\n const { SitePicker } = props;\r\n return (\r\n \r\n {_renderMobileView(props)}\r\n \r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\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 } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\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 AccountGenericTile;\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 { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\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-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\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 AccountGenericTileLinks: 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-generic-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 AccountGenericTileLinks;\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 } 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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\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 React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \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 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\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 { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n
\n \n );\n};\n\nexport default BreadCrumbView;\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 IBusinessSignUpButtonProps {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n link?: string;\n telemetryContent: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const SignUpButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n link,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent, text);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n

{message}

\n
\n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n id?: string;\n type: InputType;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IBusinessSignUpInput {\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\nexport const SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n onChange,\n fieldReference\n}) => {\n if (type === InputType.TextArea) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpLabelProps {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpRadioButtonProps {\n id: string;\n isRequired: boolean;\n options: IBusinessSignUpRadioButtonOptionProps[];\n}\n\nexport interface IBusinessSignUpRadioButtonOptionProps {\n id: string;\n name: string;\n value: string;\n label: string;\n className: string;\n onChange(event: React.ChangeEvent): void;\n}\n\nexport const BusinessSignUpRadioButtonOption: React.FC = props => {\n const { id, name, value, label, className, onChange } = props;\n return (\n
\n \n \n
\n );\n};\n\nexport default BusinessSignUpRadioButtonOption;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } 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 { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\nimport { IBusinessSignUpRadioButtonOptionProps, BusinessSignUpRadioButtonOption } from './components/sign-up-radio-button';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\n formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n wrapper: INodeProps;\n isAddressInput?: boolean;\n id: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n isReady: boolean;\n formItems: IFormItem[];\n addressHasErrors: boolean;\n showAddressErrors: boolean;\n hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n FormWrapper: INodeProps;\n items: IBusinessSignUpItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n className: string;\n businessSignUp: IModuleProps;\n ContainerWrapper: INodeProps;\n heading: React.ReactNode;\n businessSignUpForm: IBusinessSignUpLocalAccount;\n formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n address?: Address;\n customClass?: string;\n fieldReference?: React.RefObject;\n radioButtonOptions?: IBusinessSignUpRadioButtonOptionProps[];\n radioButtonGroupClass?: string;\n}\n\nexport enum InputType {\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n Text = 'text',\n Address = 'address',\n Email = 'email',\n TextArea = 'textarea',\n RadioButton = 'radiobutton'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n Email = 'CompanyEmail',\n CompanyName = 'CompanyName',\n Address = 'CompanyAddress',\n JobTitle = 'JobTitle',\n Size = 'CompanySize',\n Department = 'Department',\n Comment = 'Comment',\n ProspectType = 'ProspectType'\n}\n\nexport const renderInputSection = (\n inputs: IFormItem[],\n className: string,\n needToReset: boolean,\n onInputChange: (event: React.ChangeEvent) => void,\n showErrors: boolean,\n addressForm?: React.ReactNode,\n updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n return inputs.map((element, index) => {\n const {\n id,\n type,\n label,\n maxChars,\n isRequired,\n pattern,\n customClass,\n value,\n fieldReference,\n radioButtonOptions,\n radioButtonGroupClass\n } = element;\n\n const baseSignUpItem: IBusinessSignUpItem = {\n wrapper: {\n className: classnames(className, `${className}-${id}`, customClass)\n },\n id,\n label: ,\n errorMessage: \n };\n\n if (type === InputType.Address) {\n if (addressForm) {\n baseSignUpItem.isAddressInput = true;\n baseSignUpItem.input = (\n <>\n {React.cloneElement(addressForm as React.ReactElement, {\n updateForm: updateAddress,\n hasError: showErrors,\n isRequired: isRequired === undefined ? false : isRequired,\n resetAddress: needToReset\n })}\n \n );\n } else {\n // If the address slot is not filled, remove this input from the form\n inputs.splice(index, 1);\n }\n } else if (type === InputType.RadioButton) {\n baseSignUpItem.input = (\n
\n {radioButtonOptions &&\n radioButtonOptions.map((element, index) => {\n return ;\n })}\n
\n );\n } else {\n baseSignUpItem.input = (\n \n );\n }\n\n return baseSignUpItem;\n });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component>}\n */\nclass BusinessSignUp extends React.Component {\n private readonly moduleClassName: string = 'ms-business-sign-up';\n private readonly prospectRadioButtonName: string = 'business-sign-up-radio-button';\n\n // Used as default data\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public BusinessSignUpDefaultInputs: IFormItem[] = [\n {\n id: InputID.ProspectType,\n type: InputType.RadioButton,\n label: this.props.resources.prospectTypeLabel,\n value: '',\n isRequired: true,\n customClass: 'width-100',\n radioButtonGroupClass: 'radio-option-container',\n radioButtonOptions: [\n {\n id: `${InputID.ProspectType}-buyer`,\n name: this.prospectRadioButtonName,\n value: '1', // Buyer\n label: this.props.resources.prospectTypeBuyerLabel,\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n onChange: this._onInputChange.bind(this)\n },\n {\n id: `${InputID.ProspectType}-seller`,\n name: this.prospectRadioButtonName,\n value: '2', // Seller\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n label: this.props.resources.prospectTypeSellerLabel,\n onChange: this._onInputChange.bind(this)\n }\n ]\n },\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.firstNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.lastNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.emailAddressLabel,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-50'\n },\n {\n id: InputID.CompanyName,\n type: InputType.Text,\n label: this.props.resources.companyLabel,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Department,\n type: InputType.Text,\n label: this.props.resources.departmentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.JobTitle,\n type: InputType.Text,\n label: this.props.resources.jobTitleLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Size,\n type: InputType.Text,\n label: this.props.resources.companySizeLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Address,\n type: InputType.Address,\n label: this.props.resources.companyAddressLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n },\n {\n id: InputID.Comment,\n type: InputType.TextArea,\n label: this.props.resources.commentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n }\n ];\n\n private readonly formChildReference: React.RefObject = React.createRef();\n\n private needsToReset: boolean = false;\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBusinessSignUpExtendedProps) {\n super(props);\n\n this.state = {\n isReady: false,\n formItems: this.props.formItems || this._addedReference(),\n addressHasErrors: false,\n showAddressErrors: false,\n hasSubmitErrors: false\n };\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.formChildReference.current?.focus();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): 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 } = this.props;\n const { formItems } = this.state;\n const { className, heading } = config;\n\n const viewProps = {\n ...this.props,\n businessSignUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n ContainerWrapper: {\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n businessSignUpForm: this._renderForm(),\n formItems\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle the heading change event.\n * @param event - Content Editable Event.\n */\n public handleHeadingChange = (event: ContentEditableEvent): void => {\n this.props.config.heading.text = event.target.value;\n };\n\n private _renderForm(): IBusinessSignUpLocalAccount {\n const { config, resources, slots } = this.props;\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n const {\n signUpButtonArialabel,\n signUpButtonText,\n cancelButtonArialabel,\n cancelButtonText,\n errorMessage,\n partialAddressErrorMessage\n } = resources;\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n\n const form = {\n FormWrapper: {\n className: `${this.moduleClassName}__form `\n },\n items: renderInputSection(\n formItems,\n `${this.moduleClassName}__form-item`,\n this.needsToReset,\n this._onInputChange.bind(this),\n showAddressErrors,\n addressForm,\n this._onAddressChange\n ),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasSubmitErrors && ,\n showAddressErrors && (\n \n )\n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n\n if (this.needsToReset) {\n this.needsToReset = false;\n }\n\n return form;\n }\n\n private _onInputChange(event: React.ChangeEvent): void {\n const newForm = this.state.formItems;\n newForm.forEach(item => {\n if (item.type === InputType.RadioButton && event.target.name === this.prospectRadioButtonName) {\n item.value = event.target.value;\n } else if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n this.setState({\n isReady: this._isFormReady(),\n formItems: newForm,\n hasSubmitErrors: false\n });\n }\n\n private _addedReference(): IFormItem[] {\n const newFormFields = this.BusinessSignUpDefaultInputs;\n newFormFields[0].fieldReference = this.formChildReference;\n return newFormFields;\n }\n\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n // Find address item\n const newForm = this.state.formItems;\n const addressItem = newForm.find(item => {\n return item.type === InputType.Address;\n });\n\n // If found --> set to currentAddress\n if (addressItem) {\n addressItem.address = currentAddress;\n\n // Update state with new values and set errors to false if address is not required field\n this.setState(\n {\n formItems: newForm,\n addressHasErrors: errors,\n showAddressErrors: false\n },\n () => {\n this.setState({ isReady: this._isFormReady() });\n }\n );\n }\n };\n\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const currentInput of formItems) {\n // Will return FALSE if:\n // - input field is required\n // IF is address AND addressHasErrors === true\n // ELSE value is undefined OR empty\n // OR\n // - pattern provided and value does not match pattern\n\n if (currentInput.isRequired) {\n if (currentInput.type === InputType.Address) {\n if (this.state.addressHasErrors) {\n return false;\n }\n } else if (currentInput.value === undefined || currentInput.value === '') {\n return false;\n }\n }\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _onSubmit = (event: React.MouseEvent) => {\n if (this.state.addressHasErrors) {\n this.setState({\n showAddressErrors: true\n });\n\n event.preventDefault();\n return;\n }\n\n const { config, context } = this.props;\n\n // Check for matching id and if not empty\n const firstName = this._getItem(InputID.FirstName);\n const lastName = this._getItem(InputID.LastName);\n const companyName = this._getItem(InputID.CompanyName);\n const companyEmail = this._getItem(InputID.Email);\n const companyAddress = this._getItem(InputID.Address, true);\n const jobTitle = this._getItem(InputID.JobTitle);\n const department = this._getItem(InputID.Department);\n const companySize = this._getItem(InputID.Size);\n const comments = this._getItem(InputID.Comment);\n const prospectType = this._getItem(InputID.ProspectType);\n\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n companyAddress.address.Email = companyEmail.value;\n }\n\n const newPartner: BusinessPartnerProspect = {\n FirstName: firstName && firstName.value,\n LastName: lastName && lastName.value,\n CompanyName: companyName && companyName.value,\n Address: companyAddress && companyAddress.address && companyAddress.address,\n JobTitle: jobTitle && jobTitle.value,\n Department: department && department.value,\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n Comments: comments && comments.value,\n ProspectTypeValue: (prospectType && Number.parseInt(prospectType.value, 10)) || 0\n };\n\n this.setState({\n isReady: false\n });\n\n // Create business partner request\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\n .then(() => {\n const successPageURL =\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n getUrlSync('home', this.props.context.actionContext) ||\n '';\n window.location.href = successPageURL;\n })\n .catch(() => {\n this.setState({\n hasSubmitErrors: true\n });\n });\n };\n\n private readonly _onCancel = () => {\n // Reset values of the form\n const cleanForm = this.state.formItems;\n cleanForm.forEach(input => {\n input.value = '';\n });\n\n // Set reset flag so address input will get reset on next renderInputSection() call\n this.needsToReset = true;\n\n this.setState({\n isReady: false,\n formItems: cleanForm,\n addressHasErrors: true,\n showAddressErrors: false,\n hasSubmitErrors: false\n });\n };\n\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\n if (isAddress) {\n return this.state.formItems.find(item => {\n return item.id === id && item.address;\n });\n }\n return this.state.formItems.find(item => {\n return item.id === id && item.value !== '';\n });\n };\n}\n\nexport default BusinessSignUp;\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 { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n // Hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items &&\n items.map((item: IBusinessSignUpItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n \n \n );\n};\n\nexport default BusinesSignUpView;\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';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
\n \n
\n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { CommerceException } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n errorMessage: string;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n\n /**\n * Event when the table cell is clicked.\n */\n onClick?(item: Tdata): void;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n errorMessage: ''\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.errorMessage !== nextState.errorMessage\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.errorMessage) {\n return {this.state.errorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

{this.props.resources.noDataMessage}

\n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
\n {hasMore && (\n
\n \n
\n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n let cell: JSX.Element = <>;\n if (column.onRender) {\n cell = column.onRender(item);\n } else if (column.fieldName) {\n cell = {((item as unknown) as { [key: string]: string })[column.fieldName]};\n }\n return (\n column.onClick?.(item)}>\n {cell}\n \n );\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch (e) {\n this.setState({\n isLoading: false,\n errorMessage: (e as { data: CommerceException })?.data?.LocalizedMessage || this.props.resources.genericErrorMessage\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { ReactNode } from 'react';\nimport { isMobile, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimit: ReactNode;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n isSearchable: true,\n fieldName: 'name',\n onClick: this.props.onSelect,\n onRender: (data: IBusinessPartnerUserViewModel) => {data.name}\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email',\n onClick: this.props.onSelect\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimit',\n onClick: !isMobileDevice ? this.props.onSelect : undefined\n }\n ];\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => {\n return {\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimit: (\n \n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''}\n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit) && user.SpendingLimit === 0 ? (\n \n