{"version":3,"file":"static/js/2a5b238946129b0c99a7.bundle.js","mappings":"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,UACT,QAAS,UACT,QAAS,WACT,QAAS,QACT,QAAS,QACT,QAAS,SACT,QAAS,WACT,QAAS,mBACT,QAAS,WACT,QAAS,MACT,QAAS,QACT,QAAS,MACT,QAAS,WACT,QAAS,WACT,QAAS,iCACT,QAAS,iBACT,QAAS,kBACT,QAAS,QACT,QAAS,SACT,QAAS,sBACT,QAAS,wBACT,QAAS,SACT,QAAS,UACT,aAAc,SACd,QAAS,aACT,QAAS,YACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,MACT,QAAS,SACT,QAAS,aACT,QAAS,OACT,QAAS,cASAC,EAA2C,CACpD,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MACT,QAAS,MACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,MAQAC,EACK,eADLA,EAES,mBAFTA,EAGa,uBAHbA,EAwCK,eAxCLA,EAyCK,eAzCLA,EA0CM,gBA1CNA,EAiEM,gBAjENA,EAuEO,iBAvEPA,EAyFC,WAzFDA,EA0FK,eA1FLA,EAuGU,oBAvGVA,EAwGS,mBAyBTC,EAAwB,CACjCC,mBAAoB,aACpBC,cAAe,OACfC,eAAgB,QAChBC,eAAgB,QAChBC,gBAAiB,eACjBC,cAAe,OACfC,gBAAiB,SACjBC,oBAAqB,cACrBC,wBAAyB,mBACzBC,iBAAkB,SAClBC,gBAAiB,SACjBC,aAAc,WACdC,iBAAkB,eAClBC,iBAAkB,eAClBC,uBAAwB,sBACxBC,mBAAoB,iBACpBC,aAAc,eACdC,kBAAmB,qBACnBC,iBAAkB,MAClBC,qBAAsB,gBACtBC,aAAc,YACdC,aAAc,OACdC,cAAe,aACfC,eAAgB,QAChBC,cAAe,OACfC,cAAe,OACfC,eAAgB,QAChBC,cAAe,OACfC,iBAAkB,UAClBC,aAAc,MACdC,eAAgB,QAChBC,gBAAiB,SACjBC,oBAAqB,SACrBC,qBAAsB,UACtBC,iCAAkC,wBAClCC,6BAA8B,mBAC9BC,+BAAgC,qBAChCC,mCAAoC,0BACpCC,2BAA4B,iBAC5BC,aAAc,YACdC,qBAAsB,UACtBC,wBAAyB,cACzBC,mBAAoB,QACpBC,qBAAsB,UACtBC,mBAAoB,QACpBC,cAAe,aACfC,WAAY,YACZC,WAAY,WACZC,WAAY,WACZC,WAAY,WACZC,WAAY,WACZC,eAAgB,oDAChBC,yBAA0B,mBAC1BC,2BAA4B,qBAC5BC,gBAAiB,eACjBC,aAAc,KACdC,eAAgB,OAChBC,cAAe,MACfC,cAAe,MACfC,cAAe,MACfC,mBAAoB,kBACpBC,mBAAoB,kBACpBC,6BAA8B,YAC9BC,8BAA+B,cAC/BC,wBAAyB,UACzBC,0BAA2B,SAC3BC,2BAA4B,UAC5BC,gBAAiB,eACjBC,kBAAmB,iBACnBC,SAAU,SAQC,MAAMC,EAGjBC,YAAmBpR,GACfnB,KAAKwS,gBAAkBrR,EAQpBsR,kBAAkBjI,GACrB,OAAOxK,KAAKwS,gBAAgBhI,IAAQuD,EAAsBvD,IAAQ,GAS/DkI,0BAA0BC,GAC7B,OAAO9E,EAAgB8E,IAAW,GAS/BC,0BAA0BD,GAC7B,OAAO/E,EAAoB+E,IAAW3S,KAAKyS,kBAAkB3E,IC1btD,MAAM+E,EAOjBN,YAAmBpR,EAAuB2R,EAA4BC,GAClE/S,KAAKgT,eAAiB7R,EACtBnB,KAAK8S,aAAeA,EACpB9S,KAAK+S,mBAAqBA,EAGvBE,2BACH,SAAIjT,KAAKgT,eAAeE,SAAWlT,KAAKgT,eAAeE,QAAQlN,OAAS,GAMrEmN,uBACH,GAAInT,KAAKgT,eAAeE,SAAWlT,KAAKgT,eAAeE,QAAQlN,OAAS,EAAG,CACvE,MAAMkN,EAAUlT,KAAKgT,eAAeE,QAE9BE,EAAiC,GAEvC,IAAK,MAAMC,KAAUH,EAEjB,IAAKG,EAAOC,QAAUD,EAAOC,SAAWC,EAAAA,mBAAmBC,KAAM,CAC7D,MAAMC,EAAOzT,KAAK+S,mBAAmBL,0BAA0BW,EAAOV,OAAOe,eAEvEC,EAA8B,CAChCC,GAAI5T,KAAK8S,aAAae,YAAYR,EAAOV,QACzCmB,MAAOlG,EAAoByF,EAAOV,QAClCoB,SAAUN,EACVlS,KAAM8R,EAAOV,OACbqB,UAAU,EACVC,YAAY,EACZC,gBAAgB,EAChBC,UAAW,GAAGvG,EAAoByF,EAAOV,WAAW3S,KAAK+S,mBAAmBN,kBACxE3E,MAGRsF,EAAY1L,KAAKiM,GAyBzB,OArBAP,EAAY1L,KAAK,CACbkM,GAAI5T,KAAK8S,aAAae,YAAY,cAClCC,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDkG,UAAU,EACVC,YAAY,EACZG,QAASpU,KAAKqU,mCAIlBjB,EAAYkB,QAAQ,CAChBV,GAAI5T,KAAK8S,aAAae,YAAY,OAClCC,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDkG,UAAU,EACVzS,KAAM,MACN0S,YAAY,EACZC,gBAAgB,EAChBC,UAAW,GAAGnU,KAAK+S,mBAAmBN,kBAClC3E,MACC9N,KAAK+S,mBAAmBN,kBAAkB3E,OAG5C,CACHyG,SAAUC,EAAAA,eAAeC,cACzBb,GAAI5T,KAAK8S,aAAae,YAAYW,EAAAA,eAAeC,eACjDX,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjD4G,MAAOtB,GAGf,OAAO,KAGJuB,+BACHC,EACAC,EACAC,GAEA,GAAID,IAAeE,EAAAA,4BAA4BC,UAAW,CACtD,MAAMC,EAAcC,EAAAA,wBAAwBJ,GAE5C,MAAO,CACHK,aAAcP,EAA6BO,aAC3CC,eAAgBR,EAA6BQ,eAC7CC,sBAAuBJ,EAAYI,sBACnCC,wBAAyBL,EAAYK,wBACrCC,WAAYN,EAAYM,WACxBC,gBAAiBP,EAAYO,gBAC7BC,UAAWR,EAAYQ,UACvBC,aAAcT,EAAYS,aAC1BC,UAAWV,EAAYU,UACvBC,OAAQd,GAGhB,OAAI9U,KAAK6V,gBAAgBhB,EAAYC,IACjCF,EAA6BG,EAAAA,4BAA4BC,WAAa,OACtEJ,EAA6BC,GAAcC,EACpCF,GAEJA,EAQJkB,8BAA8BnD,GACjC,IAAI3J,EAAc,GAClB,MAAMkK,EAAUlT,KAAKgT,eAAeE,QACpC,IAAK,MAAMG,KAAUH,EACbG,EAAOV,SAAWA,IAClB3J,EAAMqK,EAAOrK,KAGrB,OAAOA,EAUH6M,gBAAgBhB,EAAoBC,GACxC,MAAMiB,EAAUC,EAAAA,0BAA0BnB,GAC1C,GAAIkB,EAAS,CACT,MAAME,EAASC,EAAAA,8BAA8BH,EAAQE,QACrD,OAAOA,GAAUA,EAAOE,IAAIrB,GAEhC,MAAO,GAOHT,iCAIJ,MAAM+B,EAAuC,GAE7C,IAAK,MAAMvB,KAAcpK,OAAOC,KAAKsL,EAAAA,2BAA4B,CAC7D,MAAMD,EAAUC,EAAAA,0BAA0BnB,GAEpCoB,EAASC,EAAAA,8BAA8BH,EAAQE,QAC/CI,EAAoC,GAG1C,IAAK,MAAMvB,KAAamB,EAAOE,IAC3BE,EAAe3O,KAAK,CAChBkM,GAAI5T,KAAKsW,iBAAiBzB,EAAYC,GACtChB,MAAO9T,KAAK+S,mBAAmBN,kBAAkB,GAAGwD,EAAOM,MAAMzB,KACjEb,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChB3S,KAAM,GAAGsT,KAAcC,MAK/BuB,EAAe/B,QAAQ,CACnBV,GAAI,GACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB,MAAMoC,KACvDV,UAAW,GAAGU,+BACdZ,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChBsC,cAAc,IAGlBJ,EAAkB1O,KAAK,CACnBkM,GAAI5T,KAAK8S,aAAae,YAAY,GAAGgB,UACrCf,MAAO9T,KAAK+S,mBAAmBN,kBAAkB,MAAMoC,KACvDZ,YAAY,EACZG,QAAS,CACLR,GAAI5T,KAAKyW,qBAAqB5B,GAC9BN,SAAUC,EAAAA,eAAekC,sBACzBhC,MAAO2B,EACPvC,MAAO9T,KAAK+S,mBAAmBN,kBAAkB,MAAMoC,QAKnEuB,EAAkB9B,QAAQ,CACtBV,GAAI,GACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDqG,UAAW,uCACXF,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChBsC,cAAc,IAGlB,MAAMG,EAA4B,CAC9B/C,GAAI5T,KAAK8S,aAAae,YAAYW,EAAAA,eAAekC,uBACjD5C,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDyG,SAAUC,EAAAA,eAAekC,sBACzBhC,MAAO0B,GAILQ,EAAiC,GAEvC,IAAK,MAAMhB,KAAUnL,OAAOC,KAAKwK,EAAAA,yBAA0B,CAEvD,MAAM2B,EAAqB3B,EAAAA,wBAAwBU,GAC7CkB,EAAeD,EAAcpB,UAC7BsB,EAAgBF,EAActB,WAE9ByB,GAAiBzS,EAAAA,EAAAA,IACnBvE,KAAK+S,mBAAmBN,kBAAkB3E,GAC1C,GACA9N,KAAK+S,mBAAmBN,kBAAkB3E,GAC1C9N,KAAK+S,mBAAmBN,kBAAkB,gBAAgBqE,KAC1D9W,KAAK+S,mBAAmBN,kBAAkB3E,GAC1C9N,KAAK+S,mBAAmBN,kBAAkB,YAAYsE,MAG1DH,EAAYlP,KAAK,CACbkM,GAAI5T,KAAKsW,iBAAiBvB,EAAAA,4BAA4BC,UAAWY,GACjE9B,MAAO9T,KAAK+S,mBAAmBN,kBAAkB,MAAMmD,KACvDrU,KAAM,UAAUqU,IAChB3B,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChBC,UAAW6C,EACXC,qBAAqB,IA8B7B,OA1BAL,EAAYlP,KAAK,CACbkM,GAAI5T,KAAK8S,aAAae,YAAY,gBAClCC,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDsG,QAASuC,EACTM,qBAAqB,IAGzBL,EAAYlP,KAAK,CACbkM,GAAI,QACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDvM,KAAM,QACN2S,gBAAgB,EAChB+C,qBAAqB,IAGzBL,EAAYtC,QAAQ,CAChBV,GAAI,GACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDqG,UAAW,uCACXF,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChBsC,cAAc,EACdS,qBAAqB,IAGlB,CACHrD,GAAI5T,KAAKyW,qBAAqB1B,EAAAA,4BAA4BC,WAC1DlB,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDyG,SAAUC,EAAAA,eAAekC,sBACzBhC,MAAOkC,GAUPN,iBAAiBY,EAAmBC,GACxC,OAAOnX,KAAK8S,aAAae,YAAY,MAAMqD,KAAaC,KAQpDV,qBAAqBS,GACzB,OAAOlX,KAAK8S,aAAae,YAAY,MAAMqD,kBCzRpC,MAAME,EAOjB7E,YAAmBpR,EAAqB4R,EAAwCsE,GA+GzE,KAAAC,gBAAkB,CAACC,EAAmBC,KACzCC,QAAQC,IAAI,eAAeH,gBAAwBC,MA/GnDxX,KAAK2X,YAAcxW,EACnBnB,KAAK+S,mBAAqBA,EAC1B/S,KAAK4X,gBAAkBP,EAGpBQ,cAIH,OAHA7X,KAAK8X,iBACL9X,KAAK+X,cACL/X,KAAKgY,kBACEhY,KAAK2X,YAAYM,WAAWC,SAGhCC,kBAAkBhX,GACrBnB,KAAK2X,YAAcxW,EACnBnB,KAAKoY,4BAGFC,gBACH,MAAMC,EAActY,KAAKuY,sBACzB,GAAoB,OAAhBD,EACA,OAAO,KAEX,MAAME,EAAqC,GAU3C,OARAA,EAAgB9Q,KAAK,CACjBkM,GAAI5T,KAAK6T,YAAY,eACrBC,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDkG,UAAU,EACVC,YAAY,EACZG,QAASkE,IAGN,CACH/D,SAAUC,EAAAA,eAAeiE,QACzB7E,GAAI5T,KAAK6T,YAAYW,EAAAA,eAAeiE,SACpC3E,MAAO,UACPY,MAAO8D,GAQRE,oBACH,IAAIC,EAAiB,GAerB,OAdK3Y,KAAK2X,YAAYM,WAAWW,QAAQC,iBAAmB7Y,KAAK2X,YAAYM,WAAWC,SAASY,iBAC7FH,EAAiB3Y,KAAK+Y,uBAAuB/Y,KAAK2X,YAAYM,WAAWC,SAASY,gBAC9E9Y,KAAK2X,YAAYM,WAAWW,QAAQI,qBAEhCL,EADAA,EAAeM,QAAQ,KAAO,EACb,GAAGN,OAAyBO,EAAAA,gBAAgBF,wBACzDE,EAAAA,gBAAgBC,sBAGH,GAAGR,OAAyBO,EAAAA,gBAAgBF,wBACzDE,EAAAA,gBAAgBC,wBAKzBR,EAGJS,qBACH,IAAIC,EAAwB,CACxBrQ,IAAK,GACLsQ,UAAWC,EAAAA,WAAWC,IACtBC,QAASC,EAAAA,aAAaC,IAE1B,MAAMC,EAAgC5Z,KAAK2X,YAAYM,WAAWC,SAE5D2B,EAAe7Z,KAAK8Z,oBAAoBP,EAAAA,WAAWC,IAAKI,EAAcG,YAE5E,GAAI/Z,KAAK4X,iBAAmB5X,KAAK2X,YAAYM,WAAWW,QAAQoB,mBAAoB,CAChF,MAAMC,EAAkBja,KAAKka,uBACzBla,KAAK2X,YAAYM,WAAWW,QAAQoB,mBAAmBG,cACvDN,GAEJ,GAAII,EACA,OAAOA,EAIf,MAAMG,EAAcpa,KAAKka,uBAAuBR,EAAAA,aAAaW,IAAKR,GAClE,GAAoB,OAAhBO,EACAf,EAAYe,MACT,CACH,MAAME,EAActa,KAAKka,uBAAuBR,EAAAA,aAAaa,GAAIV,GACjE,GAAoB,OAAhBS,EACAjB,EAAYiB,MACT,CACH,MAAME,EAAcxa,KAAKka,uBAAuBR,EAAAA,aAAae,GAAIZ,GACjE,GAAoB,OAAhBW,EACAnB,EAAYmB,MACT,CACH,MAAME,EAAc1a,KAAKka,uBAAuBR,EAAAA,aAAaC,GAAIE,GAC7C,OAAhBa,IACArB,EAAYqB,KAK5B,OAAOrB,EAYJsB,mBAAmBla,GACtB,YAAcP,IAAVO,GAAiC,KAAVA,EAWxBoT,YAAY+G,GACf,MAAMlU,EAAS1G,KAAK2a,mBAAmB3a,KAAK2X,YAAYkD,UAAY,KAAO,GAAG7a,KAAK2X,YAAYkD,YAE/F,OAAOnU,KAAWD,EAAAA,EAAAA,IAAWmU,EAASlU,GAAQ,GAASA,EAASkU,EAAUA,EAQvEE,eAAeF,GAClB,MAAMlU,EAAS1G,KAAK2a,mBAAmB3a,KAAK2X,YAAYkD,UAAY,KAAO,GAAG7a,KAAK2X,YAAYkD,YAE/F,OAAOnU,IAAUD,EAAAA,EAAAA,IAAWmU,EAASlU,GAAQ,GAASkU,EAAQG,UAAUrU,EAAOV,QAAU4U,EAGrFrC,sBACJ,MAAMyC,EAA0C,GAC1CpB,EAAgC5Z,KAAK2X,YAAYM,WAAWC,SAClE,QAAkChY,IAA9B0Z,EAActB,aAA6BsB,EAActB,YAAYtS,OAAS,EAAG,CAEjF,IAAIiV,EAA6B,EACjC,IAAK,MAAMC,KAAStB,EAActB,YAC1B4C,EAAMC,oBACNF,IAIR,IAAIG,EAAqB,EACzB,IAAK,MAAMC,KAAczB,EAActB,YAAa,CAChD,IAAIxE,EACAwH,EAAuB,GAC3B,GAAID,EAAWF,mBAAoB,CAK/B,MAAMI,EAAwBvb,KAAK+S,mBAAmBN,kBAAkB3E,GACxE,GAAImN,EAA6B,EAAG,CAEhCnH,EAAQ,GAAGyH,OADMvb,KAAK+S,mBAAmBH,0BAA0ByI,EAAWC,qBAG9ExH,EAAQyH,EAEZD,EAAe,UAAUD,EAAWC,aAAa5H,qBAGjDI,EAAQ9T,KAAK+S,mBAAmBH,0BAA0ByI,EAAWC,cACrEA,EAAeD,EAAWC,aAAa5H,cAG3C,MAAM8H,EAAiC,CACnC1H,MAAAA,EACAC,SAAUuH,EACV/Z,KAAM8Z,EAAWrS,IACjB4K,GAAI5T,KAAK6T,YAAY,SAASuH,KAC9BpH,UAAU,EACVC,YAAY,EACZC,gBAAgB,GAGpB8G,EAAqBtT,KAAK8T,GAC1BJ,IAuBJ,OApBAJ,EAAqB1G,QAAQ,CACzBV,GAAI,GACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDqG,UAAWnU,KAAK+S,mBAAmBN,kBAAkB3E,GACrDiG,SAAU,UACVxS,KAAM,UACN0S,YAAY,EACZD,UAAU,EACVE,gBAAgB,IAGpB8G,EAAqB1G,QAAQ,CACzBV,GAAI,GACJE,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjDqG,UAAW,GAAGnU,KAAK+S,mBAAmBN,kBAAkB3E,gCACxDmG,YAAY,EACZD,UAAU,EACVE,gBAAgB,EAChBsC,cAAc,IAEX,CACHjC,SAAUC,EAAAA,eAAeiH,YACzB7H,GAAI5T,KAAK6T,YAAYW,EAAAA,eAAeiH,aACpC3H,MAAO9T,KAAK+S,mBAAmBN,kBAAkB3E,GACjD4G,MAAOsG,GAGf,OAAO,KAGH5C,4BACJpY,KAAK2X,YAAYM,WAAWC,SAAS6B,WAAa,GAClD/Z,KAAK2X,YAAYM,WAAWC,SAASI,YAAc,GACnDtY,KAAK2X,YAAYM,WAAWC,SAAShF,QAAU,GAG3C6E,cACJ,MAAM6B,EAAgC5Z,KAAK2X,YAAYM,WAAWC,SAC5DhF,EAAqB,GAC3B,KAAM0G,EAAc1G,SAAW0G,EAAc1G,QAAQlN,OAAS,IACtD4T,EAAc8B,uBAAyB9B,EAAc8B,sBAAsB1V,OAAS,EAAG,CACvF,IAAK,MAAM2V,KAAa/B,EAAc8B,sBAElC,GACKC,EAAUC,WAAqC,SAAxBD,EAAUC,WACd,sCAApBD,EAAUE,MACZ,CACE,MAAMxI,EAAkB,CACpBC,OAAQC,EAAAA,mBAAmBC,KAC3Bb,OAAQgJ,EAAUhJ,OAClB3J,IAAK2S,EAAUG,YAEnB5I,EAAQxL,KAAK2L,GAGrBrT,KAAK2X,YAAYM,WAAWC,SAAShF,QAAUA,GAKnD8E,kBACJ,MAAM4B,EAAgC5Z,KAAK2X,YAAYM,WAAWC,SAC5DI,EAA6B,GACnC,GAAIsB,EAAc8B,uBAAyB9B,EAAc8B,sBAAsB1V,OAAS,EACpF,IAAK,MAAM2V,KAAa/B,EAAc8B,sBAClC,GAAIC,EAAUE,OAA6B,yBAApBF,EAAUE,MAAkC,CAC/D,MAAMR,EAA0B,CAC5BF,mBAA4C,qBAAxBQ,EAAUI,UAC9BC,QAASL,EAAUK,QACnBV,kBAAmCpb,IAArByb,EAAUhJ,OAAuB,GAAKgJ,EAAUhJ,OAC9DsJ,KAAMN,EAAUO,MAChBlT,IAAK2S,EAAUQ,YAEnB7D,EAAY5Q,KAAK2T,GAI7Brb,KAAK2X,YAAYM,WAAWC,SAASI,YAAcA,EAG/CR,iBACJ,MAAM8B,EAAgC5Z,KAAK2X,YAAYM,WAAWC,SAClE,IAAK0B,EAAcG,YAAkD,IAApCH,EAAcG,WAAW/T,OAAc,CACpE,MAAM+T,EAA2B,GAC3BqC,EAAuCxC,EAAc8B,sBAC3D,GAAIU,GAAoBA,EAAiBpW,OAAS,EAC9C,IAAK,MAAM2V,KAAaS,EACpB,GAAIT,EAAUpX,OAAQ,CAElB,GAAyB,SAArBoX,EAAUpX,OACV,SAIJ,MAAM8X,EAAsBrc,KAAKsc,wBAAwBX,EAAUpX,QACnE,IAAIgY,EAEAA,EADAF,EAAoB/C,YAAcC,EAAAA,WAAWC,IACpCmC,EAAUQ,WAEVR,EAAUG,WAGnBS,IACAA,EAASvc,KAAK+Y,uBAAuBwD,IAGrCA,GACAxC,EAAWrS,KAAK,CACZsB,IAAKuT,EACL9C,QAAS4C,EAAoB5C,QAC7BH,UAAW+C,EAAoB/C,UAC/BkD,WAAYb,EAAUpX,SAM1CvE,KAAK2X,YAAYM,WAAWC,SAAS6B,WAAaA,GASlDuC,wBAAwB/X,GAC5B,IAAIkY,EAAoBlD,EAAAA,WAAWC,IAC/BkD,EAAyBhD,EAAAA,aAAae,GAE1C,OAAQlW,GACJ,IAAK,MACDkY,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAaC,GACxB,MACJ,IAAK,MACD8C,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAae,GACxB,MACJ,IAAK,MACDgC,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAaa,GACxB,MACJ,IAAK,MACDkC,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAaW,IACxB,MACJ,IAAK,MACDoC,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAaiD,GACxB,MACJ,IAAK,OACDF,EAAQlD,EAAAA,WAAWqD,OACnB,MACJ,IAAK,OACDH,EAAQlD,EAAAA,WAAWsD,IACnB,MACJ,IAAK,OACDJ,EAAQlD,EAAAA,WAAWuD,KACnB,MACJ,QACIL,EAAQlD,EAAAA,WAAWC,IACnBkD,EAAWhD,EAAAA,aAAae,GAGhC,MAAO,CACHnB,UAAWmD,EACXhD,QAASiD,GAST3D,uBAAuB/P,GAC3B,OAAOA,EAAI5C,QAAQ,gBAAiB,MAShC8T,uBAAuBT,EAAuBM,GAClD,IAAIV,EAAY,KAChB,IAAK,MAAM0D,KAAQhD,EACf,GAAIgD,EAAKtD,UAAYA,EAAS,CAC1BJ,EAAY0D,EACZ,MAIR,OAAO1D,EASHS,oBAAoBR,EAAuBS,GAC/C,MAAMV,EAA0B,GAChC,IAAK,MAAM0D,KAAQhD,EACXgD,EAAKzD,YAAcA,GACnBD,EAAU3R,KAAKqV,GAGvB,OAAO1D,0FC/YT2D,EAAyB,CAC3BC,gBAAA,SACIC,EACA/b,EACAgc,GAEA,IAAM1c,EAAQ2c,OAAOC,SAASH,EAAM5S,OAAO7J,MAAO,IAClD0c,EAAU,CAAEG,OAAQ7c,EAAO8c,mBAAoB9c,IAE3CU,EAAMqc,UACNrc,EAAMqc,SAAS/c,IAGvBgd,aAAA,SAAaC,EAA0BJ,EAAsBH,GACzDA,EAAU,CAAEG,OAAQA,EAAOC,mBAAoBA,mBAAoBD,EAAOC,sBAE9EI,YAAA,SAAYT,EAAsCI,EAAsBH,GACpEA,EAAU,CAAEG,OAAQM,EAASV,GAAQK,mBAAoBD,EAAOC,sBAEpEpZ,QAAA,SAAQ+Y,EAAsC/b,EAA8Bgc,GACxE,IAAKhc,EAAM0c,SAAU,CACjB,IAAMvX,EAAQsX,EAASV,GACvBC,EAAU,CAAEG,OAAQhX,EAAOiX,mBAAoBjX,IAE3CnF,EAAMqc,UACNrc,EAAMqc,SAASlX,MAMzBwX,EAA0C,SAAC3c,GAA4B,MACnE4c,EAAgB5c,EAAM0c,SAAW1c,EAAM6c,UAAY7c,EAAM4c,eAAiB,EAC1E1c,GAAAwC,EAAAA,EAAAA,KAAsBoa,EAAAA,EAAAA,UAAS,CAAEX,OAAQS,EAAeR,mBAAoBQ,IAAgB,GAA3FT,EAAMjc,EAAA,GAAE8b,EAAS9b,EAAA,IACxB6c,EAAAA,EAAAA,YAAU,WACN,IAAMC,EAAYhd,EAAM0c,SAAW1c,EAAM6c,UAAY7c,EAAM4c,eAAiB,EAC5EZ,EAAU,CAAEG,OAAQa,EAAWZ,mBAAoBY,MACpD,CAAChd,IACJ,IAcMid,EADoF,QAAxC9c,EAAGH,EAAMkd,uCAA+B,IAAA/c,GAAAA,GACO,iBAAnBH,EAAMmd,SAEpF,OACIxb,IAAAA,cAAA,OAAKC,UAAW,gBAAeua,EAAOA,OAAS,EAAI,iBAAmB,IAAE,KAAInc,EAAM4B,UAAY5B,EAAM4B,UAAY,KAC3Gwb,EAAYpd,EAAM0c,SAAUP,EAAOA,OAAQnc,EAAMgT,UAAWhT,EAAMqd,sBAlB1D,SAACtB,GACdF,EAAuBC,gBAAgBC,EAAO/b,EAAOgc,MAkBjDra,IAAAA,cAAA,wBAAiB2a,aAActc,EAAM0c,cAAW3d,EAhBnC,SAACgd,GAClBF,EAAuBS,aAAaP,EAAOI,EAAQH,IAe2Bpa,UAAU,qBAC/E0b,EAAYnB,EAAOA,OAAQnc,GAdpB,SAAC+b,GACjBF,EAAuBW,YAAYT,EAAOI,EAAQH,MAEtC,SAACD,GACbF,EAAuB7Y,QAAQ+Y,EAAO/b,EAAOgc,OAYxChc,EAAMud,aACH5b,IAAAA,cAAA,2BAAoBC,UAAU,qBACzB,IACAqb,EAA2Bjd,EAAM6c,UAAS,SAAS7c,EAAMud,YAAW,IAAMvd,EAAMud,YAChF,OAQrBZ,EAAOa,aAAe,CAClBX,UAAW,GAYf,IAAMO,EAAc,SAChBV,EACAe,EACAzK,EACA0K,EACArB,GAEA,OAAIK,EACO/a,IAAAA,cAAA,OAAKC,UAAU,6BAAgCoR,GAAY0K,EAAuB,IAAIA,EAAyB,KAItH/b,IAAAA,cAAA,SACIgc,KAAK,QACL/b,UAAU,oBACVoJ,IAAK,EACL4S,IAAK,EACLC,KAAM,EACNve,MAAOme,EAAa,gBACL,EAAC,gBACD,EAAC,gBACDA,EACfpB,SAAUA,EAAQ,aACNrJ,KAKlBsK,EAAc,SAChBnB,EACAnc,EACA8d,EACA9a,GAQA,IANA,IAAM+a,EAAQ9S,KAAK8S,MAAM5B,GACnB6B,EAAY7B,EAAS4B,EACrBE,EAASD,EA7HQ,IA6HiBD,EAAQA,EAAQ,EAClDG,EA7HkB,KA6HIF,GAAaA,EA9HlB,IA8H2CC,EAAS,EAAI,EACzEE,EAAQ,GAELrV,EAAI,EAAGA,GA/HM,EA+HUA,IAAK,CACjC,IAAMsV,EAAaH,GAAUnV,EAAI,mBAAqBoV,IAASpV,EAAI,wBAA0B,yBAC7FqV,EAAM5X,KACF5E,IAAAA,cAAA,QACIC,UAAWwc,EAAU,aACTtV,EACZO,IAAKP,EACL0T,YAAaxc,EAAM0c,cAAW3d,EAAY+e,EAC1C9a,QAASA,EACTqb,KAAK,kBAKjB,OAAOF,GAGL1B,EAAW,SAACV,GACd,IAAM5S,EAAS4S,EAAM5S,OACrB,OAAO8S,OAAOC,SAAS/S,EAAOmV,aAAa,cAAgB,KAIlDC,EAAkEpc,EAAAA,GAAiBC,gBAC5F,UAAQC,EAAAA,EAAAA,IAAA,CACNC,UAAWqa,GAAWd,02GC7Kf2C,EAAwC,SAACxe,GAC1C,IAAAye,EAAuCze,EAAKye,SAAlC7c,EAA6B5B,EAAK4B,UAAvB8c,EAAkB1e,EAAK0e,cAEpD,OACI/c,EAAAA,cAAA,OAAKC,UAAcA,EAAS,cACvB+c,EAA0B3e,EAAMa,QAAYe,EAAS,aAAc6c,EAAUC,KAKpFE,EAA2B,SAAC/d,EAAuBe,EAAmBX,EAAsByd,GAA8B,cAS5H,OACI/c,EAAAA,cAAA,OAAKC,UAAcA,EAAS,iBACxBD,EAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgBje,EAAQke,cAAcD,eACtCE,IAA2C,QAAxC7e,EAAEc,EAAQge,eAAeC,uBAAe,IAAA/e,EAAAA,EAAI,GAC/Cgf,YAKK,QALM1c,GACP2c,EAAAA,EAAAA,qBACIne,EAAQge,eAAeI,OACvBxe,EAAQke,cAAcD,eAAeQ,YACV,QADqBrf,EAC7B,QAD6BC,EAChDW,EAAQ0e,QAAQC,WAAG,IAAAtf,OAAA,EAAAA,EAAEuf,cAAM,IAAAxf,OAAA,EAAAA,EAAEyf,yBAChC,IAAAjd,EAAAA,EAAI,GAETkd,aAAc9e,EAAQ0e,QAAQI,aAC9BjB,cAAeA,MAAAA,EAAAA,EArBkB,CACzCkB,UAAW,CACPC,GAAI,CAAEvT,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAE1T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCE,GAAI,CAAE3T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,IAEzCG,UAAU,GAgBFC,oBAAoB,QACpBC,QAAoC,QAA7B3c,EAAExC,EAAQge,eAAeoB,YAAI,IAAA5c,EAAAA,EAAI,YAMlDkb,EAA4B,SAC9B9d,EACAe,EACA6c,EACAC,GAEA,OACI/c,EAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,EAAAA,cAAA,OAAKC,UAAU,OACXD,EAAAA,cAAA,OAAKC,UAAU,UACV6c,EAAS5Z,OAAS,GAAK+Z,EAAyB/d,EAASe,EAAW6c,EAAS,GAAIC,IAEtF/c,EAAAA,cAAA,OAAKC,UAAU,UACV6c,EAAS5Z,OAAS,GAAK+Z,EAAyB/d,EAASe,EAAW6c,EAAS,GAAIC,KAG1F/c,EAAAA,cAAA,OAAKC,UAAU,OACXD,EAAAA,cAAA,OAAKC,UAAU,UACV6c,EAAS5Z,OAAS,GAAK+Z,EAAyB/d,EAASe,EAAW6c,EAAS,GAAIC,IAEtF/c,EAAAA,cAAA,OAAKC,UAAU,UACV6c,EAAS5Z,OAAS,GAAK+Z,EAAyB/d,EAASe,EAAW6c,EAAS,GAAIC,w3GC8D1F4B,0GC5GCC,EAAgB,SAACC,GAA6B,UAEnDC,EAAqB,EAAE,IAE3B,IAAmB,IAAAC,GAAAC,EAAAA,EAAAA,IAAAH,GAAUI,EAAAF,EAAAG,QAAAD,EAAAvhB,KAAAuhB,EAAAF,EAAAG,OAAE,CAC3BJ,GAAwB,QAAdvgB,EADC0gB,EAAAthB,MACQwhB,aAAK,IAAA5gB,EAAAA,EAJI,GAIe,iGAG/C,OAAOugB,GCnBEM,EAA4D,SAAC5gB,GAAgB,IAAd6gB,EAAY7gB,EAAA6gB,aACpF,OAAIC,EAAAA,iBAAiBC,cAAcF,GACxB,KAIPrf,EAAAA,cAAA,QAAMC,UAAU,8BACZD,EAAAA,cAAA,QAAMC,UAAU,2BAA0B,cAAa,SACvDD,EAAAA,cAAA,YAAOqf,KCWNG,EAAkC,SAACC,GAExC,IAYmB,EAZnBC,EAMAD,EAAWC,cALXzf,EAKAwf,EAAWxf,UAJXf,EAIAugB,EAAWvgB,QAHXygB,EAGAF,EAAWE,YAFX5C,EAEA0C,EAAW1C,cADHD,EACR2C,EAAWhhB,KAAAqe,SAUT8C,GACFne,EAAAA,EAAAA,QAAOie,EAAcG,2BAA4BjB,EAAc9B,GAAUtgB,YAAckjB,EAAcI,2BACnGC,GAActe,EAAAA,EAAAA,QAAOie,EAAcM,2BAA4BlD,EAAS5Z,OAAO1G,YAE/EyjB,EAA8BnD,EAASzJ,KAAI,SAAA6M,GAC7C,MAAO,CAAE5C,eAAgB4C,EAAK5gB,YAGlC,OACIU,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQT,EAAa1f,UAAWA,EAAWogB,OAAQZ,EAAYa,SAClEtgB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQZ,EAAYa,SACxEtgB,IAAAA,cAAA,SAAI+f,GACJ/f,IAAAA,cAAA,YAAO0f,EAAcI,6BAEzB9f,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAASA,EACTe,UAAcA,EAAS,WACvB6c,SAAUmD,EACVlD,cAAeA,IAEnB/c,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,kCAAmC2f,IAEnE5f,IAAAA,cAACof,EAAwB,CAACC,aAAcI,EAAYC,cAAce,qCAG1EzgB,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,6BACvB0gB,MAAOjB,EAAckB,mBACrBC,KAnCoC,QAAhDriB,GAAOsiB,EAAAA,EAAAA,IAAW,OAAQ5hB,EAAQke,sBAAc,IAAA5e,EAAAA,EAAI,IAqCvCkhB,EAAckB,oBAEnB5gB,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,8BACvB0gB,MAAOjB,EAAcqB,iBACrB1f,QAASoe,EAAYa,SAEpBZ,EAAcqB,4CCrEnCC,EAAA,SAAAC,GAMI,SAAAD,EAAmB3iB,GAAoD,OACnE4iB,EAAA9kB,KAAA,KAAMkC,IAAM,KA+GpB,OAtHsE6iB,EAAAA,EAAAA,IAAAF,EAAAC,GAU3DD,EAAAG,UAAAC,OAAP,qBACUC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpkB,KAAKmB,MAAMkjB,aAAaC,iBAAkBC,EAAAA,kBAAkBC,kBAEhGC,GACwC,QAA1CnjB,EAAAtB,KAAKmB,MAAMkjB,aAAariB,QAAQ2e,IAAIC,cAAM,IAAAtf,OAAA,EAAAA,EAAEojB,2BAE4B,SAAxE1kB,KAAKmB,MAAMkjB,aAAariB,QAAQ2e,IAAIC,OAAO8D,yBAC/CP,EAAQQ,cAAcC,MAAQL,EAAAA,kBAAkBM,mBAChD,IAAMC,GAAmBC,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMkjB,aAAaC,iBAAkBH,GACpFa,GAAmBzE,EAAAA,EAAAA,qBACrBvgB,KAAKmB,MAAMkjB,aAAajiB,QAAQoe,OAChCxgB,KAAKmB,MAAMkjB,aAAariB,QAAQke,cAAcD,eAAeQ,YAClB,QAD6Brf,EACrC,QADqCC,EACxErB,KAAKmB,MAAMkjB,aAAariB,QAAQ2e,WAAG,IAAAtf,OAAA,EAAAA,EAAEuf,cAAM,IAAAxf,OAAA,EAAAA,EAAEyf,kBAE7C7gB,KAAKmB,MAAMkjB,aAAaxE,gBACxB7f,KAAKmB,MAAMkjB,aAAaxE,cAAcoF,iBAAkB,GAG5D,IAAMC,EAA4BllB,KAAKmB,MAAMkjB,aAAajiB,QAAQ+iB,WAC5DnlB,KAAKmB,MAAMkjB,aAAajiB,QAAQ+iB,WAAWC,QAAe,SAACC,EAAKC,GAC5D,OAAIA,EAAiBC,gBAAkBD,EAAiBC,eAAeC,MAC/DH,EACUA,EAAG,KAAKC,EAAiBC,eAAeC,MAG/C,GAAGF,EAAiBC,eAAeC,MAGvCH,IACR,IACH,GAEAI,EAAmBC,EAAAA,oBAAoB3iB,UACvC4iB,EAAkBC,EAAAA,mBAAmB7iB,UAE3C,OACID,IAAAA,cAAA,OAAK0c,KAAK,QAAQzc,UAAW+gB,EAAiD/gB,WAC1ED,IAAAA,cAAC+iB,EAAAA,4BAA2B,CAACxB,aAAcrkB,KAAKmB,MAAMkjB,cAClDvhB,IAAAA,cAACgjB,EAAAA,+BAA8B,CAACzB,aAAcrkB,KAAKmB,MAAMkjB,cACrDvhB,IAAAA,cAACijB,EAAAA,qBAAoB,CAAC1B,aAAcrkB,KAAKmB,MAAMkjB,cAC3CvhB,IAAAA,cAACkjB,EAAAA,mBAAkB,CAAC3B,aAAcrkB,KAAKmB,MAAMkjB,cACzCvhB,IAAAA,cAACmjB,EAAAA,kBAAiB,CAAC5B,aAAcrkB,KAAKmB,MAAMkjB,eAC5CvhB,IAAAA,cAACojB,EAAAA,wBAAuB,CAAC7B,aAAcrkB,KAAKmB,MAAMkjB,gBAEtDvhB,IAAAA,cAAC4iB,EAAAA,oBAAmB,CAACrB,aAAcrkB,KAAKmB,MAAMkjB,cAC1CvhB,IAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgBjgB,KAAKmB,MAAMkjB,aAAariB,QAAQke,cAAcD,eAC9Dld,UAAc0iB,EAAgB,UAC9BtF,IAAKngB,KAAKmB,MAAMkjB,aAAajiB,QAAQie,iBAAmB,GACxDC,YAAa0E,EACbzD,QAASvhB,KAAKmB,MAAMkjB,aAAajiB,QAAQof,KACzCV,aAAc9gB,KAAKmB,MAAMkjB,aAAavD,cAAgB,GACtDjB,cAAe7f,KAAKmB,MAAMkjB,aAAaxE,cACvCyB,oBAAoB,UAExBxe,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,kBAC/B3iB,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,mBAAoBzlB,KAAKmB,MAAMkjB,aAAajiB,QAAQof,MACtFxhB,KAAKmB,MAAMkjB,aAAa7iB,MACrBsB,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,mBAC/B3iB,IAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CAAEC,MAAOxB,KAAKmB,MAAMkjB,aAAa7iB,OACvCQ,QAAShC,KAAKmB,MAAMkjB,aAAariB,QACjC4R,GAAI5T,KAAKmB,MAAMkjB,aAAazQ,GAC5B0K,SAAUte,KAAKmB,MAAMkjB,aAAa/F,SAClCvc,cAAe/B,KAAKmB,MAAMkjB,aAAa8B,UAAUpkB,cACjDyD,kBAAmBxF,KAAKmB,MAAMkjB,aAAa8B,UAAU3gB,kBACrDC,iBAAkBzF,KAAKmB,MAAMkjB,aAAa8B,UAAU1gB,oBAI5D,GAEHzF,KAAKmB,MAAMkjB,aAAajiB,QAAQgkB,sBAAwB3B,EACrD3hB,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,6BAC/B3iB,IAAAA,cAAA,YAAO9C,KAAKmB,MAAMkjB,aAAajiB,QAAQgkB,uBAG3C,GAEHhE,EAAAA,iBAAiBiE,mBAAmBnB,GAAqB,KACtDpiB,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,sBAAuBP,GAE9DpiB,IAAAA,cAAA,OAAKC,UAAc0iB,EAAgB,sBAC9BzlB,KAAKmB,MAAMkjB,aAAa8B,UAAUG,kBAAkBlgB,QACjD,MACApG,KAAKmB,MAAMkjB,aAAakC,gBAAgBjnB,eAKxDwD,IAAAA,cAAC8iB,EAAAA,mBAAkB,CAACvB,aAAcrkB,KAAKmB,MAAMkjB,cACxCrkB,KAAKmB,MAAMkjB,aAAamC,eACrB1jB,IAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAAc4iB,EAAe,eAC7BhC,KAAM3jB,KAAKmB,MAAMkjB,aAAamC,cAC9B/C,MAAOzjB,KAAKmB,MAAMkjB,aAAa8B,UAAUM,cACrC3B,GAEH9kB,KAAKmB,MAAMkjB,aAAa8B,UAAUM,oBAxGhD3C,EAAA/gB,UAAoB,mDAkH/C+gB,EAtHA,CAAsE4C,EAAAA,2BCNtEC,EAAA,SAAA5C,GA6BI,SAAA4C,EACI3kB,EACAmkB,EACAtG,EACAiB,EACA1e,EACAZ,EACA+kB,EACAC,EACAlC,EACAsC,EACAtI,GAXJ,IAAAuI,EAaI9C,EAAA9kB,KAAA,OAAO,KAGDyjB,EADc,IAEhB6D,EACMJ,EAAUW,mBACVviB,EAAAA,EAAAA,QAAO4hB,EAAUY,qBAAsBR,EAAgBjnB,YAmBL,OAjB5DunB,EAAKpD,MAAQ,MAAMf,EAAW,aAAayD,EAAUa,kBAAiB,UAEtEH,EAAK7kB,QAAUA,EACf6kB,EAAKV,UAAYA,EACjBU,EAAKhH,cAAgBA,EACrBgH,EAAK/F,aAAeA,EACpB+F,EAAKzkB,QAAUA,EACfykB,EAAKrlB,MAAQA,EACbqlB,EAAKN,gBAAkBA,EACvBM,EAAKL,cAAgBA,EACrBK,EAAKvC,iBAAmBA,EACxBuC,EAAKD,YAAcA,EACnBC,EAAKvI,SAAWA,EAEhBuI,EAAKI,UAAW,EAChBJ,EAAK1Y,eAAiBgY,EAAUe,uBAEhCL,EAAKM,OAAOC,SAASC,EAAAA,mBAAmBC,MAAO,IAAIC,EAAAA,OAAQ,EAOnE,OA1E6DvD,EAAAA,EAAAA,IAAA2C,EAAA5C,GAsElD4C,EAAA1C,UAAAuD,MAAP,iBACIxnB,KAAKinB,UAAW,EAC8B,QAA9C3lB,EAAAtB,KAAKmnB,OAAOM,SAASJ,EAAAA,mBAAmBC,cAAM,IAAAhmB,GAAAA,EAAEomB,WAxE3Cf,GAAuCgB,EAAAA,EAAAA,IAAA,EADnDC,EAAAA,EAAAA,2BAA0B9D,IACd6C,GAAb,CAA6DkB,EAAAA,yBCa7DC,EAAA,SAAA/D,GAMI,SAAA+D,EAAmB3mB,GAA0D,OACzE4iB,EAAA9kB,KAAA,KAAMkC,IAAM,KAwDpB,OA/D4E6iB,EAAAA,EAAAA,IAAA8D,EAAA/D,GAUjE+D,EAAA7D,UAAAC,OAAP,WACI,IAAMC,GAAUC,EAAAA,EAAAA,kBAAiB,QAASpkB,KAAKmB,MAAMkjB,aAAaC,iBAAkBC,EAAAA,kBAAkBC,kBACtGL,EAAQQ,cAAcC,MAAQL,EAAAA,kBAAkBM,mBAChD,IAAMC,GAAmBC,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMkjB,aAAaC,iBAAkBH,GACtFnkB,KAAKmB,MAAMkjB,aAAaxE,gBACxB7f,KAAKmB,MAAMkjB,aAAaxE,cAAcoF,iBAAkB,GAG5D,IAAMlC,EAA8B/iB,KAAKmB,MAAMkjB,aAAazE,SAASzJ,KAAI,SAAA6M,GACrE,MAAO,CAAE5C,eAAgB4C,EAAK5gB,YAG5BW,EAAY+kB,EAAuD/kB,UACnE4iB,EAAkBC,EAAAA,mBAAmB7iB,UAC3C,OACID,IAAAA,cAAA,OAAK0c,KAAK,QAAQzc,UAAWA,GACzBD,IAAAA,cAAC+iB,EAAAA,4BAA2B,CAACxB,aAAcrkB,KAAKmB,MAAMkjB,cAClDvhB,IAAAA,cAACgjB,EAAAA,+BAA8B,CAACzB,aAAcrkB,KAAKmB,MAAMkjB,cACrDvhB,IAAAA,cAACijB,EAAAA,qBAAoB,CAAC1B,aAAcrkB,KAAKmB,MAAMkjB,cAC3CvhB,IAAAA,cAACkjB,EAAAA,mBAAkB,CAAC3B,aAAcrkB,KAAKmB,MAAMkjB,cACzCvhB,IAAAA,cAACmjB,EAAAA,kBAAiB,CAAC5B,aAAcrkB,KAAKmB,MAAMkjB,eAC5CvhB,IAAAA,cAACojB,EAAAA,wBAAuB,CAAC7B,aAAcrkB,KAAKmB,MAAMkjB,gBAEtDvhB,IAAAA,cAAC4iB,EAAAA,oBAAmB,CAACrB,aAAcrkB,KAAKmB,MAAMkjB,cAC1CvhB,IAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAAShC,KAAKmB,MAAMkjB,aAAariB,QACjCe,UAAU,oCACV6c,SAAUmD,EACVlD,cAAe7f,KAAKmB,MAAMkjB,aAAaxE,gBAE3C/c,IAAAA,cAACilB,EAAAA,wBAAuB,CAAC1D,aAAcrkB,KAAKmB,MAAMkjB,eAClDvhB,IAAAA,cAACof,EAAwB,CACrBC,aAAcniB,KAAKmB,MAAMkjB,aAAa8B,UAAU5C,oCAGxDzgB,IAAAA,cAAC8iB,EAAAA,mBAAkB,CAACvB,aAAcrkB,KAAKmB,MAAMkjB,cACxCrkB,KAAKmB,MAAMkjB,aAAamC,eACrB1jB,IAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAAc4iB,EAAe,eAC7BhC,KAAM3jB,KAAKmB,MAAMkjB,aAAamC,cAC9B/C,MAAOzjB,KAAKmB,MAAMkjB,aAAa8B,UAAUzC,oBACrCoB,GAEH9kB,KAAKmB,MAAMkjB,aAAa8B,UAAUzC,0BAjDhDoE,EAAA/kB,UAAoB,uCA2D/C+kB,EA/DA,CAA4EpB,EAAAA,2BCb5EsB,EAAA,SAAAjE,GA4BI,SAAAiE,EACIhmB,EACAmkB,EACAtG,EACAiB,EACAlB,EACA4G,EACAlC,EACAsC,EACAtI,GATJ,IAAAuI,EAWI9C,EAAA9kB,KAAA,OAAO,KAEDyjB,GAAcne,EAAAA,EAAAA,QAAO4hB,EAAUxD,2BAA4BjB,EAAc9B,GAAUtgB,YACnFujB,GAActe,EAAAA,EAAAA,QAAO4hB,EAAUrD,2BAA4BlD,EAAS5Z,OAAO1G,YAmBrB,OAjB5DunB,EAAKpD,MAAQ,MAAMZ,EAAW,aAAasD,EAAUvD,2BAA0B,UAC/EiE,EAAKoB,iBAAmB,GACxBpB,EAAKoB,iBAAiBvgB,KAAK,MAAMgb,EAAW,aAAayD,EAAUvD,2BAA0B,WAE7FiE,EAAK7kB,QAAUA,EACf6kB,EAAKV,UAAYA,EACjBU,EAAKhH,cAAgBA,EACrBgH,EAAK/F,aAAeA,EACpB+F,EAAKjH,SAAWA,EAChBiH,EAAKL,cAAgBA,EACrBK,EAAKvC,iBAAmBA,EACxBuC,EAAKD,YAAcA,EACnBC,EAAKvI,SAAWA,EAEhBuI,EAAKI,UAAW,EAChBJ,EAAK1Y,eAAiBgY,EAAUtC,iBAEhCgD,EAAKM,OAAOC,SAASC,EAAAA,mBAAmBC,MAAO,IAAIC,EAAAA,OAAQ,EAOnE,OApEmEvD,EAAAA,EAAAA,IAAAgE,EAAAjE,GAgExDiE,EAAA/D,UAAAuD,MAAP,iBACIxnB,KAAKinB,UAAW,EAC8B,QAA9C3lB,EAAAtB,KAAKmnB,OAAOM,SAASJ,EAAAA,mBAAmBC,cAAM,IAAAhmB,GAAAA,EAAEomB,WAlE3CM,GAA6CL,EAAAA,EAAAA,IAAA,EADzDC,EAAAA,EAAAA,2BAA0BE,IACdE,GAAb,CAAmEH,EAAAA,0BPoHnE,SAAYpG,GAIRA,EAAA,oBAKAA,EAAA,sBAKAA,EAAA,4BAKAA,EAAA,oCAKAA,EAAA,kBAxBJ,CAAYA,IAAAA,EAAiB,KA2B7B,IAQMyG,EAAkB,SAAC/mB,EAAiCL,GAClDK,EAAMgnB,OACNhnB,EAAMgnB,MAAMrnB,IASdsnB,EAAiB,SAACjnB,EAAiCL,GACjDK,EAAMknB,SACNlnB,EAAMknB,QAAQvnB,IAShBwnB,EAA6B,SAAOnnB,GAA+B,OAAAonB,EAAAA,EAAAA,SAAA,oHAarE,OAZM3I,EAAqC,QAA7Bte,EAAGH,EAAMqnB,4BAAoB,IAAAlnB,OAAA,EAAAA,EAAEmnB,QAAO,SAAArmB,GAAW,OAACsmB,EAAAA,iBAAiBtpB,kBAAkBgD,EAAQumB,kBACrGC,EAA0E,QAArDvnB,EAAGF,EAAMa,QAAQke,cAAcD,eAAe4I,eAAO,IAAAxnB,OAAA,EAAAA,EAAEynB,sBAC5EC,EAAQnJ,MAAAA,OAAQ,EAARA,EAAUzJ,KAAI,SAAA/T,GACxB,IAAM4mB,EAAiB5mB,EAAQ6mB,UAAUC,aACzC,MAAO,CACH9mB,QAASA,EAAQumB,cACjB1G,MAAOyG,EAAAA,iBAAiBtpB,kBAAkBgD,EAAQ6mB,UAAUE,UApChD,EAoC8E/mB,EAAQ6mB,UAAUE,SAC5GC,UAAWhnB,EAAQ6mB,UAAUI,UAC7BC,6BAA8BN,GAAkBA,IAAmBJ,MAIvEW,EAAAA,gBAAgBC,YAAYT,GACtB,CAAN,EAAOA,GAGPQ,EAAAA,gBAAgBC,YAAYroB,EAAMye,WAC5BM,EAAgB/e,EAAMa,QAAQke,cAC9BuJ,EAAcvJ,EAAcD,eAAeQ,YAE3C2I,EAA2B,QAAlBhoB,EAAGD,EAAMioB,iBAAS,IAAAhoB,EAAAA,GAAIsoB,EAAAA,EAAAA,IAAavoB,EAAMa,QAAQke,cAAcD,iBAC9E0J,EAAAA,EAAAA,mBAAkBP,GAEZQ,EAA6C,CAC/CC,QAAS,CACLC,UAAWL,EAAYM,UACvBV,UAAWD,GAEfY,mBAAmB,EACnBC,IAAK9oB,EAAMye,SAASzJ,KAAI,SAAA/T,GAAW,OAAAA,EAAQ8nB,cAG1B,GAAMC,EAAAA,oBAAAA,sBAA0C,CAAEC,cAAelK,GAAiB0J,KAhBvG,MAgB2H,OAY3H,OAZMS,EAAerlB,EAAAslB,OACfC,EAAiCF,EAAalU,KAAI,SAAAqU,GACpD,IAAMC,GAAsBjnB,EAAAA,EAAAA,IAAA,GAAQgnB,GAC9BE,GAAcC,EAAAA,EAAAA,yBAAwBF,EAAwBhB,GAMpE,OAJIiB,IACAD,EAAuBpK,gBAAkBqK,GAGtCD,KAGL,CAAN,EAAOtpB,EAAMye,SAASzJ,KAAI,SAAA6M,GAAI,MACpB4H,EAAcL,EAA+BM,MAAK,SAAAzoB,GAAW,OAAAA,EAAQ0oB,WAAa9H,EAAKkH,aAgB7F,MAAO,CACH9nB,QAfAwoB,GACapnB,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAA,GACNonB,GAAW,CACdvoB,iBAAkBC,EAAAA,YAAYyoB,QAC9BtpB,cAAempB,EAAYI,MAC3BrpB,UAAgC,QAAvBL,EAAEspB,EAAYjpB,iBAAS,IAAAL,EAAAA,EAAIspB,EAAYI,QAIpC,CACZF,SAAU9H,EAAKkH,WAMnBjI,MAAOe,EAAKiI,SACZ7B,UAAWpG,EAAKoG,eAEtB,OAGN,OAAc,QAAdxlB,EAAIzC,EAAMI,YAAI,IAAAqC,OAAA,EAAAA,EAAExB,SACN,CAAN,EAAO,CACH,CACIA,QAASjB,EAAMI,KAAKa,QACpB6f,MAAqB,QAAhBrd,EAAEzD,EAAM8pB,gBAAQ,IAAArmB,EAAAA,EAvGb,EAwGRwkB,UAAWjoB,EAAMioB,aAKvB,CAAN,EAAO,YASL8B,EAAmB,SACrB/pB,EACAgqB,EACAC,GAAoC,OAAA7C,EAAAA,EAAAA,SAAA,gHAMb,OAHjB8C,EAAoBlqB,EAAMa,QAAQ2e,IAAIC,OAAOyK,kBAC7C9pB,EAAOJ,EAAMI,KAEI,GAAM+mB,EAA2BnnB,IAAM,OAI5C,OAJZmqB,EAAiBtmB,EAAAslB,OACjBloB,EAAUkpB,EAAe,GAAGlpB,QAC5B6oB,EAAWK,EAAe,GAAGrJ,MAEjB,IAAMsJ,EAAAA,EAAAA,cAAapqB,EAAMa,QAAQke,gBAAc,OACzC,SADNlb,EAAAslB,OACsBkB,iBAAiB,CACrDppB,QAAOA,EACP6f,MAAOgJ,EACPQ,kBAA4C,QAA3BnqB,EAAEH,EAAMuqB,2BAAmB,IAAApqB,OAAA,EAAAA,EAAEqqB,kBAC9CC,qBAAsB,CAAEC,iBAAkB1qB,EAAM2qB,qCAEhDC,iBAAkB5qB,EAAMa,QAAQ2e,IAAIC,OAAOmL,iBAC3CC,eAAgB7qB,EAAM6qB,eACtBC,YAAa9qB,EAAM6qB,eAAiB7qB,EAAM+qB,uBAAoBhsB,EAC9DopB,6BAA8BnoB,EAAMmoB,6BACpC6C,uBAAwBhrB,EAAMgrB,uBAC9B/C,UAAWkC,EAAe,GAAGlC,aAC/B,OA0CoB,MAxCS,aAdzBgD,EAAkBpnB,EAAAslB,QAcJ1gB,QACZzI,EAAMqhB,eAAiB6I,IAAsB5J,EAAkB4K,WAC/DlB,GAAY,GACZC,GAAU,IACHjqB,EAAMqhB,eAAiB6I,IAAsB5J,EAAkB6K,kBACtEnB,GAAY,GACN9G,EAAe,IAAIsC,EACrBxlB,EAAMa,QACNb,EAAMqhB,cACNrhB,EAAM0e,cACN1e,EAAM2f,aACN1e,EACAb,MAAAA,OAAI,EAAJA,EAAMC,MACNypB,EACA9pB,EAAMqlB,cACNrlB,EAAMmjB,iBACNnjB,EAAMyS,GACNzS,EAAMmd,UAEViO,EAAAA,qBAAqBC,WAAWC,gBAAgBpI,KAEhDqI,EAAAA,GAASC,YACTxrB,EAAMqlB,eACLrlB,EAAMyrB,qCACgB1sB,IAAtBmrB,GAAmCA,IAAsB5J,EAAkBoL,SAI5E1B,GAAY,GAFZhiB,OAAO2jB,SAASC,OAAO5rB,EAAMqlB,eAIjC0B,EAAgB/mB,EAAOirB,KAEvBG,EAAAA,qBAAqBC,WAAWC,gBAC5B,IAAIO,EAAAA,kBAC8C,QAD7B5rB,EACW,QADXC,EACjB+qB,EAAgBa,oBAAY,IAAA5rB,OAAA,EAAAA,EAAE6rB,wBAAgB,IAAA9rB,EAAAA,EAAI,qBACP,QAD2BwD,EACnD,QADmDhB,EACtEzC,EAAMqhB,qBAAa,IAAA5e,OAAA,EAAAA,EAAEsjB,8BAAsB,IAAAtiB,EAAAA,EAAI,KAIvDwjB,EAAejnB,EAAO,CAAEgsB,cAAe,mBAAoBC,iBAAkBhB,IAC7EjB,GAAY,IAAM,YAcpBkC,EAA8B,SAChClsB,EACAgqB,EACAmC,EACAC,EACAC,EACAlC,EAIAc,GAAkC,OAAA7D,EAAAA,EAAAA,SAAA,kHAGkB,SAAMkF,EAAAA,iBAAAA,yBACtD,CAAErD,cAAejpB,EAAMa,QAAQke,cAAewN,YAAa,QAC3DF,EAAUG,KAAKC,GACfJ,EAAUG,KAAKE,UAClB,OAgDuC,OApDlCC,EAA8C/oB,EAAAulB,OAK9CyD,GAA4D,QAA/CzsB,EAACwsB,EAAiBE,qCAA6B,IAAA1sB,EAAAA,EAAI,IAAI0E,OACjD,EACnBioB,EADmB,IACPF,EAAqD,QAApB1sB,EAACF,EAAMqhB,qBAAa,IAAAnhB,OAAA,EAAAA,EAAE6sB,aAAkC,QAApB9sB,EAACD,EAAMqhB,qBAAa,IAAAphB,OAAA,EAAAA,EAAE+sB,gBACvGhM,EACF4L,EA/NK,GA+NexpB,EAAAA,EAAAA,QAAkD,QAA5CK,EAAoB,QAApBhB,EAACzC,EAAMqhB,qBAAa,IAAA5e,OAAA,EAAAA,EAAEwqB,8BAAsB,IAAAxpB,EAAAA,EAAI,GAAImpB,EAAWzuB,WAAY2uB,GAAa,GAEtHV,EAAgBpL,GAGVkJ,EAAoBlqB,EAAMa,QAAQ2e,IAAIC,OAAOyK,kBAE/ClqB,EAAMqhB,eAAiB6I,IAAsB5J,EAAkB4K,WAC/DlB,GAAY,GACZmC,GAA8B,IACvBnsB,EAAMqhB,eAAiB6I,IAAsB5J,EAAkB6K,kBACtEnB,GAAY,GACNkD,EAAiD,CACnD3K,mBAAoBviB,EAAMqhB,cAAciE,aACxC5C,iBAAkB1iB,EAAMqhB,cAAc0E,uBACtCtE,2BAA4BzhB,EAAMqhB,cAAcwE,kBAChDrE,2BAA4BxhB,EAAMqhB,cAAcuE,qBAChDjE,2BAAqE,QAA3C9d,EAAE7D,EAAMqhB,cAAc8L,6BAAqB,IAAAtpB,EAAAA,EAAI,MACzEue,iCAAkCpB,GAGhCkC,EAAe,IAAI2D,EACrB7mB,EAAMa,QACNqsB,EACAltB,EAAM0e,cACN1e,EAAM2f,aACNwK,EACAnqB,EAAMqlB,cACNrlB,EAAMmjB,iBACNnjB,EAAMyS,GACNzS,EAAMmd,UAEViO,EAAAA,qBAAqBC,WAAWC,gBAAgBpI,KAEhDqI,EAAAA,GAASC,YACTxrB,EAAMqlB,eACLrlB,EAAMyrB,qCACgB1sB,IAAtBmrB,GAAmCA,IAAsB5J,EAAkBoL,SAI5E1B,GAAY,GAFZhiB,OAAO2jB,SAASC,OAAO5rB,EAAMqlB,eAIjC0B,EAAgB/mB,EAAOirB,GAAgB,YAUrCmC,EAAiB,SACnBptB,EACAgqB,EACAmC,EACAC,GAA0C,OAAAhF,EAAAA,EAAAA,SAAA,0GAEnB,SAAMD,EAA2BnnB,IAAM,OAE9D,OAFMmqB,EAAiBvmB,EAAAulB,OAElBf,EAAAA,gBAAgBC,YAAY8B,GAIf,IAAMC,EAAAA,EAAAA,cAAapqB,EAAMa,QAAQke,gBAHzC,CAAN,GAG6D,OACzC,UADlBsN,EAAYzoB,EAAAulB,QACsBkE,kBAAkBlD,IAAe,OAAC,MAE3C,aAFzBc,EAAkBrnB,EAAAulB,QAEJ1gB,OAAhB,MACA,GAAMyjB,EACFlsB,EACAgqB,EACAmC,EACAC,EACAC,EACAlC,EACAc,IACH,OAAC,OARFrnB,EAAAulB,OAQC,cAEsB,QAAvBhpB,EAAIH,EAAMqhB,qBAAa,IAAAlhB,OAAA,EAAAA,EAAEmtB,2BAErBlC,EAAAA,qBAAqBC,WAAWC,gBAC5B,IAAIO,EAAAA,kBACA7rB,EAAMqhB,cAAciM,0BACkC,QADTptB,EAC7CF,EAAMqhB,cAAckM,0CAAkC,IAAArtB,EAAAA,EAAI,KAIlEkrB,EAAAA,qBAAqBC,WAAWC,gBAC5B,IAAIO,EAAAA,kBAC8C,QAD7BppB,EACW,QADXxC,EACjBgrB,EAAgBa,oBAAY,IAAA7rB,OAAA,EAAAA,EAAE8rB,wBAAgB,IAAAtpB,EAAAA,EAAI,qBACP,QAD2BoB,EACnD,QADmDJ,EACtEzD,EAAMqhB,qBAAa,IAAA5d,OAAA,EAAAA,EAAEsiB,8BAAsB,IAAAliB,EAAAA,EAAI,KAK3DojB,EAAejnB,EAAO,CAAEgsB,cAAe,mBAAoBC,iBAAkBhB,IAC7EjB,GAAY,GAAO,EAAD,iCAuDpBwD,EAA4B,CAC9BxqB,QApCY,SACZuZ,EACAvc,EACAgqB,EACAC,EACAkC,EACAC,GAA0C,OAAAhF,EAAAA,EAAAA,SAAA,gGAE1C,IAAKgB,EAAAA,gBAAgBC,YAAYroB,EAAMye,UAAW,CAG9C,GAFMgP,EAAYC,EAAe1tB,GAI7B,OADAinB,EAAejnB,EAAOytB,GAChB,CAAN,GAGJzD,GAAY,GAOmD,OAJ7D2D,EACFvF,EAAAA,gBAAgBC,YAAYroB,EAAMqnB,uBAAyBrnB,EAAMqnB,qBAAqBxiB,OAvWtE,EAwWd+oB,EAAcxF,EAAAA,gBAAgBC,YAAYroB,EAAMye,WAAaze,EAAMye,SAAS5Z,OAxW9D,EA0WdgpB,EAAsBF,GAA2BC,EAEnD5tB,EAAMgrB,wBAA0B6C,EAChC,GAAMT,EAAeptB,EAAOgqB,EAAamC,EAA+BC,IADxE,MACwF,OAAC,OAAzFjsB,EAAAgpB,OAAwF,aAExF,SAAMY,EAAiB/pB,EAAOgqB,EAAaC,IAAU,OAArD9pB,EAAAgpB,OAAsD,EAAD,kCAgBhD2E,EAAmE,SAAC9tB,GAA+B,4CACtG+tB,GAAArrB,EAAAA,EAAAA,KAA0Boa,EAAAA,EAAAA,WAAS,GAAM,GAAxCkR,EAAQD,EAAA,GAAE/D,EAAW+D,EAAA,GACtBE,GAAAvrB,EAAAA,EAAAA,KAA4Boa,EAAAA,EAAAA,WAAS,GAAM,GAA1CoR,EAASD,EAAA,GAAEE,EAAYF,EAAA,GACxBG,GAAA1rB,EAAAA,EAAAA,KAAgEoa,EAAAA,EAAAA,WAAS,GAAM,GAA9EuR,EAA4BD,EAAA,GAAEjC,EAA6BiC,EAAA,GAC5DE,GAAA5rB,EAAAA,EAAAA,KAAkCoa,EAAAA,EAAAA,UAAS,IAAG,GAA7CkE,EAAYsN,EAAA,GAAElC,EAAekC,EAAA,GAC9BC,GAAA7rB,EAAAA,EAAAA,KAAsCoa,EAAAA,EAAAA,UAK1C,IAAG,GALEqN,EAAcoE,EAAA,GAAEC,EAAiBD,EAAA,GAclCE,EAA8B9sB,IAAAA,aAAkB,WAClDwqB,GAA8B,KAC/B,IAEGuC,GAA2B,QAAVvuB,EAAAH,EAAMI,YAAI,IAAAD,OAAA,EAAAA,EAAEE,OAC/BsB,IAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CAAEC,MAAOL,EAAMI,KAAKC,OAC1BQ,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvc,cAAkC,QAArBV,EAAEF,EAAMqhB,qBAAa,IAAAnhB,OAAA,EAAAA,EAAEU,cACpCyD,kBAAsC,QAArBpE,EAAED,EAAMqhB,qBAAa,IAAAphB,OAAA,EAAAA,EAAEoE,kBACxCC,iBAAqC,QAArB7B,EAAEzC,EAAMqhB,qBAAa,IAAA5e,OAAA,EAAAA,EAAE6B,mBAG3C,GAGEqqB,EAA0B,CAC5B9tB,QAASb,EAAMa,QACfe,UAAW,kBACX6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChB/c,KAAM,CAAEa,QAA0B,QAAnBwC,EAAE0mB,EAAe,UAAE,IAAA1mB,OAAA,EAAAA,EAAExC,QAASZ,MAAiB,QAAZwD,EAAE7D,EAAMI,YAAI,IAAAyD,OAAA,EAAAA,EAAExD,OAChEghB,cAAerhB,EAAMqhB,cACrB3C,cAAe1e,EAAM0e,cACrBiB,aAAc3f,EAAMa,QAAQ0e,QAAQI,aACpCyF,qBAA8CrmB,KAAZ,QAAjB6E,EAAAumB,EAAe,UAAE,IAAAvmB,OAAA,EAAAA,EAAEkd,OAAuC,QAAlB8N,EAACzE,EAAe,UAAE,IAAAyE,OAAA,EAAAA,EAAE9N,MA7a7D,EA8ahB4N,eAAcA,EACdrJ,cAAerlB,EAAMqlB,cACrB6I,UAASA,EACTC,aAAYA,EACZhL,iBAAkBnjB,EAAMmjB,kBAGtB+J,EAAiD,CACnD3K,mBAAqD,QAAnCsM,EAAqB,QAArBC,EAAE9uB,EAAMqhB,qBAAa,IAAAyN,OAAA,EAAAA,EAAExJ,oBAAY,IAAAuJ,EAAAA,EAAI,GACzDnM,iBAA6D,QAA7CqM,EAAqB,QAArBC,EAAEhvB,EAAMqhB,qBAAa,IAAA2N,OAAA,EAAAA,EAAEjJ,8BAAsB,IAAAgJ,EAAAA,EAAI,QACjEtN,2BAAkE,QAAxCwN,EAAqB,QAArBC,EAAElvB,EAAMqhB,qBAAa,IAAA6N,OAAA,EAAAA,EAAErJ,yBAAiB,IAAAoJ,EAAAA,EAAI,GACtEzN,2BAAqE,QAA3C2N,EAAqB,QAArBC,EAAEpvB,EAAMqhB,qBAAa,IAAA+N,OAAA,EAAAA,EAAExJ,4BAAoB,IAAAuJ,EAAAA,EAAI,GACzExN,2BAAsE,QAA5C0N,EAAqB,QAArBC,EAAEtvB,EAAMqhB,qBAAa,IAAAiO,OAAA,EAAAA,EAAEnC,6BAAqB,IAAAkC,EAAAA,EAAI,MAC1EjN,iCAAkCpB,GAGhCuO,EAAmB5tB,IAAAA,cAAC6tB,EAAAA,OAAKntB,EAAAA,EAAAA,IAAA,GAAKssB,IAC9Bhc,GAAQ8c,EAAYzvB,GACpB0vB,IAAUzM,EAAAA,EAAAA,kBAAiB0M,EAAAA,GAAeC,UAAW5vB,EAAMmjB,iBAAmBxQ,GAAO,IACrFkd,IAAajM,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBuM,IAC7DI,GAAkB9vB,EAAMgrB,uBAAyB,GAAK,mBAe5D,OAbArpB,IAAAA,WAAgB,YAImBylB,EAAAA,EAAAA,SAAA,0FACJ,SAAMD,EAA2BnnB,IAAM,OAC5B,OAD5B+vB,EAAiB5vB,EAAAgpB,OACvBqF,EAAkBuB,GAAe,aAKtC,CAAC/vB,EAAOwuB,IAGP7sB,IAAAA,cAAAA,IAAAA,SAAA,KACK4tB,EACD5tB,IAAAA,cAAA,UAAAU,EAAAA,EAAAA,IAAA,CACIT,UAAWiB,GAAAA,CAAWitB,GAAiB9vB,EAAM4B,WAAU,aAClB,QADkBouB,EAC3ChwB,EAAMiwB,2BAAmB,IAAAD,EAAAA,EAAIrd,GACzC2P,MAAgC,QAA3B4N,EAAElwB,EAAMiwB,2BAAmB,IAAAC,EAAAA,EAAIvd,IAChCkd,GAAU,CACd7sB,QA9EW,SAAO+Y,GAAoC,OAAAqL,EAAAA,EAAAA,SAAA,oFAC9D,SAAMoG,EAA0BxqB,QAAQ+Y,EAAO/b,EAAOgqB,EAAamE,EAAchC,EAA+BC,IAAgB,OAAC,OAAjIjsB,EAAAgpB,OAAgI,YA8ExH6E,SAAUhuB,EAAMguB,UAAYA,GAAYmC,EAAoBnwB,IAAUowB,EAAqBpwB,GAAO,KAEjG2S,IAELhR,IAAAA,cAACwf,EAA+B,CAC5Bvf,UAAU,iCACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAe6L,EACf9sB,KAAM,CACFqe,SAAU0L,GAEd7I,YAAa+M,EACbpM,QAASwM,MAOzBX,EAA6BtQ,aAAe,CACxCsM,SAhfoB,GAwfxB,IAAM2F,EAAc,SAACzvB,GACjB,OAAOowB,EAAqBpwB,GAAO,IAAUA,EAAMqwB,eAAiBrwB,EAAMqwB,eAAiBrwB,EAAMswB,eAQ/F5C,EAAiB,SAAC1tB,GAA+B,MAE/CI,EAQAJ,EAAKI,KAPLmqB,EAOAvqB,EAAKuqB,oBANLgG,EAMAvwB,EAAKuwB,sBALLxF,EAKA/qB,EAAK+qB,kBAJLyF,EAIAxwB,EAAKwwB,kBAHLC,EAGAzwB,EAAKywB,kBAFLvwB,EAEAF,EAAK0wB,yBAFLA,OAAwB,IAAAxwB,EAAG,IAAGA,EAC9BD,EACAD,EAAK2wB,yBADLA,OAAwB,IAAA1wB,EAAG,GAAEA,EAGjC,IAAKG,IAASA,EAAKa,QAAQ0oB,SAEvB,MAAO,CAAEqC,cAAe,cAG5B,GAAI5rB,EAAKa,QAAQ+iB,WAAY,CACzB,IAAM4M,EAAoBxwB,EAAKa,QAAQ+iB,WAAWsD,QAC9C,SAAAuJ,GAAa,QAAEA,EAAUzM,gBAAkByM,EAAUzM,eAAeC,UAGxE,GAAI+D,EAAAA,gBAAgBC,YAAYuI,GAE5B,MAAO,CAAE5E,cAAe,mBAAoB4E,kBAAiBA,GAIrE,GAAIR,EAAqBpwB,GAAO,GAAO,CACnC,IACMsqB,EAA0D,QAAzCnqB,EAAGoqB,MAAAA,OAAmB,EAAnBA,EAAqBC,yBAAiB,IAAArqB,EAAAA,EAD/B,EAIjC,MAAO,CAAE6rB,cAAe,aAAc8E,UAFpB7lB,KAAK2S,IAAI0M,EAFM,IAQrC,OACIiG,KACExF,GACEA,GAAqByF,GAAqBE,IAC1C3F,GAAqB0F,GAAqBE,IAEvC,CAAE3E,cAAe,4BAN5B,GAmBEoE,EAAuB,SAACpwB,EAAiC+wB,GAA+B,MAC1F,QAAkDhyB,IAA9CiB,EAAMa,QAAQ2e,IAAIC,OAAOmL,mBAAgF,IAA9C5qB,EAAMa,QAAQ2e,IAAIC,OAAOmL,iBACpF,OAAO,EAIX,GAAI5qB,EAAMgrB,uBACN,OAAO,EAGX,GACIhrB,EAAMgxB,WACNhxB,EAAMixB,0BACNjxB,EAAMkxB,qBACNlxB,EAAMmxB,0BACNnxB,EAAMoxB,2BACNpxB,EAAMqxB,uBAGN,OAAO,EAGX,IAAKrxB,EAAMI,OAASJ,EAAMI,KAAKa,QAAQ0oB,SAEnC,OAAO,EAIX,KADuD,QAA7BxpB,EAAGH,EAAMsxB,4BAAoB,IAAAnxB,GAAAA,GAEnD,OAAO,EAGX,GAAIH,EAAMI,KAAKa,QAAQ+iB,YACfhkB,EAAMI,KAAKa,QAAQ+iB,WAAW0F,MAAK,SAAAmH,GAAa,QAAEA,EAAUzM,gBAAkByM,EAAUzM,eAAeC,UAEvG,OAAO,EAIf,IAAMkN,EAAyBR,GAA0B/wB,EAAM8pB,SAAW9pB,EAAM8pB,SAhmB5D,EAkmBpB,QACI9pB,EAAMuqB,0BAC0CxrB,IAAhDiB,EAAMuqB,oBAAoBC,mBAC1BxqB,EAAMuqB,oBAAoBC,mBAAqB+G,IAIjDpB,EAAsB,SAACnwB,GAA+B,MACxD,SAAc,QAAdG,EAAIH,EAAMI,YAAI,IAAAD,OAAA,EAAAA,EAAEc,QAAQ+iB,cAChBhkB,EAAMI,KAAKa,QAAQ+iB,WAAW0F,MAAK,SAAAmH,GAAa,QAAEA,EAAUzM,gBAAkByM,EAAUzM,eAAeC,eAM1GrkB,EAAMgxB,WAAchxB,EAAMkxB,qBAAwBlxB,EAAMmxB,0BAA6BnxB,EAAMoxB,4BAQvFI,EAAwErvB,EAAAA,GAAiBC,gBAClG,aAAWC,EAAAA,EAAAA,IAAA,CACTC,UAAWwrB,GAAiCN,YQvxBlDiE,EAAA,WAgBI,SAAAA,EAAmB3J,EAAsBN,EAA+BkK,GACpE7yB,KAAKipB,UAAYA,EACjBjpB,KAAK2oB,cAAgBA,EACrB3oB,KAAK8yB,YAAa,EAClB9yB,KAAK+yB,oBAAsBrK,EAAAA,iBAAiBtpB,kBAAkBupB,GAC9D3oB,KAAK6yB,WAAaA,EAE1B,OArBIlL,EAAAA,EAAAA,IAAA,CADCqL,EAAAA,IAAU,iCAsBfJ,EAvBA,2GCgHIK,EC1FAA,oGCQSC,EAAyB,SAAC3Q,GAE/B,IAAAC,EAMAD,EAAWC,cALXzf,EAKAwf,EAAWxf,UAJXf,EAIAugB,EAAWvgB,QAHXqtB,EAGA9M,EAAW8M,UAFXxP,EAEA0C,EAAW1C,cADXve,EACAihB,EAAWhhB,KADH4xB,EAAa7xB,EAAA6xB,cAAEvT,EAAQte,EAAAse,SAAEwT,EAAU9xB,EAAA8xB,WAOzC5L,EAAoB,WACtBjF,EAAYa,WAGViQ,EACa,IAAfD,EACM5Q,EAAc8Q,mCACd9Q,EAAc+Q,sCAAsCntB,QAAQ,MAAOgtB,EAAW9zB,YAExF,OACIwD,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAW,GAAGA,EAAaogB,OAAQqE,GACzD1kB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQqE,GAC5D1kB,IAAAA,cAAA,SAAI0f,EAAcgR,oCAClB1wB,IAAAA,cAAA,YAAO0f,EAAciR,oCAEzB3wB,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAASA,EACTe,UAAcA,EAAS,WACvB6c,SAAUA,EACVC,cAAeA,IAEnB/c,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,iCAAkCowB,EAAc3R,MAC5E1e,IAAAA,cAAA,OAAKC,UAAcA,EAAS,kCAAmCswB,MAI3EvwB,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,6BACvB0gB,MAAOjB,EAAckB,mBACrBC,MApCLC,EAAAA,EAAAA,IAAW,OAAQ5hB,EAAQke,gBAAkB,IAsCvCsC,EAAckB,oBAEnB5gB,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,8BACvB0gB,MAAOjB,EAAckR,6BACrBvvB,QAASqjB,GAERhF,EAAckR,iCFC7B/E,EAA4B,CAC9BxqB,QA1CY,SACZuZ,EACAvc,EACAwyB,EACAvI,EACAwI,EACAC,EACAtG,GAA0C,OAAAhF,EAAAA,EAAAA,SAAA,4GAE1C6C,GAAU,GACVuI,EAAgB,WACR3xB,EAA2Bb,EAAKa,QAAvBwgB,EAAkBrhB,EAAKqhB,cAElC4G,EAA2B,QAAlB9nB,EAAGH,EAAMioB,iBAAS,IAAA9nB,EAAAA,GAAIooB,EAAAA,EAAAA,IAAavoB,EAAMa,QAAQke,cAAcD,iBAC9E0J,EAAAA,EAAAA,mBAAkBP,GACZ0K,EAAsC3yB,EAAM2yB,sCAAuC,EACnFC,EAA8BD,EAC9B,IAAIE,EAAAA,4BAA4B7yB,EAAMI,KAAK4xB,cAAcc,YAAYrG,GAAIkG,GACzE,IAAIE,EAAAA,4BAA4B7yB,EAAMI,KAAK4xB,cAAcc,YAAYrG,IAAI,EAAD,eAExD,OAFwD,sBAExD,IAAMrC,EAAAA,EAAAA,cAAavpB,EAAQke,gBAAc,OAEiC,OAFtFsN,EAAYpsB,EAAAkpB,OACZqD,EAAOH,EAAUG,MACiB,QAAlBtsB,EAAGssB,MAAAA,OAAI,EAAJA,EAAMuG,iBAAS,IAAA7yB,OAAA,EAAAA,EAAEwpB,MAAK,SAAAsJ,GAAY,OAA2B,IAA3BA,EAASC,mBAEhE7G,EAAgB,sDAChBoG,EAAgB,UAAS,OAFzB,MAEyB,OAEF,UAAMU,EAAAA,EAAAA,8BAA6BN,EAA6B/xB,EAAQke,gBAAc,OAAvGoU,EAAiBlzB,EAAAkpB,OACvBuJ,EAAmBS,EAAetuB,QAClColB,GAAU,GACVmJ,YAAW,WACPX,GAA8B,KAC/B,KACHrG,EAAgB,IAAI,EAAD,kCAIG,OAJH,SAGvBA,EAAgB/K,EAAcgS,2BAC9Bb,EAAgB,UAAS,gCAkHpBc,EAETnxB,EAAAA,GAAiBC,gBAAkD,oBAAkBC,EAAAA,EAAAA,IAAA,CACjFC,UAtFkE,SAACtC,GACjE,IAAAG,GAAAuC,EAAAA,EAAAA,KAAkCoa,EAAAA,EAAAA,UAAuC,WAAU,GAAlFyW,EAAYpzB,EAAA,GAAEqyB,EAAeryB,EAAA,GAC9BD,GAAAwC,EAAAA,EAAAA,KAA4Boa,EAAAA,EAAAA,WAAS,GAAM,GAA1CoR,EAAShuB,EAAA,GAAEiuB,EAAYjuB,EAAA,GACxBD,GAAAyC,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAAS,GAAE,GAAlD0W,EAAevzB,EAAA,GAAEyyB,EAAkBzyB,EAAA,GACpCwC,GAAAC,EAAAA,EAAAA,KAA8Doa,EAAAA,EAAAA,WAAS,GAAM,GAA5E2W,EAA0BhxB,EAAA,GAAEgwB,EAA6BhwB,EAAA,GAC1DgB,GAAAf,EAAAA,EAAAA,KAAkCoa,EAAAA,EAAAA,UAAS,IAAG,GAA7CkE,EAAYvd,EAAA,GAAE2oB,EAAe3oB,EAAA,GAoB9BiwB,EA9CY,SAACjrB,EAAsCzI,EAA8C2zB,GAC/F,IAAAtS,EAAkBrhB,EAAKqhB,cACvBuS,EAA8EvS,EAAauS,wBAAlEC,EAAqDxS,EAAawS,wBAAzCC,EAA4BzS,EAAayS,wBAEnG,MAAe,YAAXrrB,EACUqrB,EAAuB,MAGtB,YAAXrrB,EACOorB,EAGI,WAAXprB,EACoB,OAAbkrB,EAAoBA,EAAWC,EAGnC,GA8BWG,CAAcR,EAAcvzB,EAAOghB,GAC/CgT,EAAqBT,EAAahhB,cAClC8O,EAAgB,CAAE4S,sBAAuBj0B,EAAMqhB,cAAc4S,uBAC7DjR,GAAUC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmBC,EAAAA,kBAAkB8Q,wBAC/EC,GAA4BvQ,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAE5E2L,EAAkC,CACpCtN,cAAaA,EACbzf,UAAW,iCACXoyB,mBAAkBA,EAClBI,KAAMV,EACNxF,UAASA,EACTC,aAAYA,GAGVoB,EAAmB5tB,IAAAA,cAAC0yB,EAAAA,eAAahyB,EAAAA,EAAAA,IAAA,GAAKssB,IAEtClQ,EAAWze,EAAMI,KAAK4xB,cAAcsC,mBACrCtf,KAAI,SAAAuf,GAAQ,OAAAA,EAAKC,eACjBlN,QAAO,SAAAkN,GAAe,OAAAA,KACrB7B,EAAsC3yB,EAAM2yB,sCAAuC,EACzF,OACIhxB,IAAAA,cAAAA,IAAAA,SAAA,KACK4tB,EACD5tB,IAAAA,cAAA,UAAAU,EAAAA,EAAAA,IAAA,CACIT,UAAWiB,GAAAA,CACP,yCACA7C,EAAM4B,UACkC,IAAxC5B,EAAMI,KAAK4xB,cAAcyC,WAAmB,WAAa,IAC5D,aACWz0B,EAAMswB,cAClBtC,SAAkD,IAAxChuB,EAAMI,KAAK4xB,cAAcyC,WACnC9W,KAAK,SACL3a,QAnDW,SAAO+Y,GAAoC,OAAAqL,EAAAA,EAAAA,SAAA,oFAE9D,OADA0K,EAAuB/V,EAAM5S,OAC7B,GAAMqkB,EAA0BxqB,QAC5B+Y,EACA/b,EACAwyB,EACArE,EACAsE,EACAC,EACAtG,IACH,OAAC,OARFjsB,EAAAgpB,OAQC,aA0CWgL,GAEHn0B,EAAMswB,eAEX3uB,IAAAA,cAACowB,GAAsB1vB,EAAAA,EAAAA,IAAA,CACnBT,UAAU,iCACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAMqhB,cAAcqT,gCACnCt0B,KAAM,CACF6xB,WAAYuB,EACZxB,cAAehyB,EAAMI,KAAK4xB,cAAcc,YACxCrU,SAAQA,GAEZyP,UAAWuF,EACXxR,QAxDwB,WAChCwQ,GAA8B,GAC9BrG,EAAgB,IAChB0F,MAAAA,GAAAA,EAAsB6C,SAsDdhC,oCAAqCA,IAAuC,GACvEA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,gBAUpEuF,YG5KEoH,EAA0B,SAACxT,GAEhC,IAAAyT,EAUAzT,EAAWyT,eATXC,EASA1T,EAAW0T,sBARXzT,EAQAD,EAAWC,cAPXzf,EAOAwf,EAAWxf,UANXssB,EAMA9M,EAAW8M,UALXC,EAKA/M,EAAW+M,aAJX4G,EAIA3T,EAAW2T,SAHXC,EAGA5T,EAAW4T,UAFXn0B,EAEAugB,EAAWvgB,QADXo0B,EACA7T,EAAW6T,iBAEf,IAAK5T,EACD,OAAO,KAGL,IAAAlhB,GAAAuC,EAAAA,EAAAA,KAA4Coa,EAAAA,EAAAA,UAASsE,EAAY8T,mBAAkB,GAAlFA,EAAiB/0B,EAAA,GAAEg1B,EAAoBh1B,EAAA,GAExCi1B,EAAqB,iBACvBjH,GAAa,GACb4G,IACAI,EAAqB,IACjBF,IACwB,QAAxB90B,EAAA80B,EAAiBI,eAAO,IAAAl1B,GAAAA,EAAEw0B,UAgClC,OACIhzB,IAAAA,cAACmgB,EAAAA,MAAK,CACFC,OAAQmM,EACRtsB,UAAcA,EAAS,4BACvBogB,OAAQoT,EAAM,aACF/T,EAAciU,6BAE1B3zB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQoT,GAC5DzzB,IAAAA,cAAA,oBAAgB,aAAa0f,EAAckU,2BAE/C5zB,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAA,SACIC,UAAcA,EAAS,sCACvB4zB,QAAY5zB,EAAS,iCAEpByf,EAAcoU,yBAEnB9zB,IAAAA,cAAA,SACIC,UAAcA,EAAS,gCACvB+b,KAAK,OAAM,aACC0D,EAAcqU,2BAC1BC,YAAatU,EAAcuU,yBAC3BvZ,SA3BY,SAACN,GAC7BoZ,EAAqBpZ,EAAM5S,OAAO7J,QA2BlBA,MAAO41B,EACPW,UAAW,MAEfl0B,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBAA0Byf,EAAcyU,4BAG5En0B,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,yCACvB0gB,MAAOjB,EAAc0U,yBAAwB,aACjC1U,EAAc0U,yBAC1B/yB,QA/DoB,kBAAAokB,EAAAA,EAAAA,SAAA,4FAEhC,OADAhG,EAAY8T,kBAAoBA,GAAqB7T,EAAcuU,yBAC/D3U,EAAAA,iBAAiBiE,mBAAmB9D,EAAY8T,mBAC1C,CAAN,GAEAL,EACIC,GACAA,EAAsBzU,KAAOe,EAAY8T,kBACnCtN,EAAwC,IAAIoO,EAAAA,+BAA+BlB,GAC9C,IAAMmB,EAAAA,EAAAA,2BAA0BrO,EAAO/mB,EAAQke,iBAHlF,MADJ,MAIoG,OAEhG,OAFMiT,EAA6B7xB,EAAAgpB,OACnCgF,GAAa,GACb,GAAM6G,EAAUhD,IAAc,OAAC,OAA/B7xB,EAAAgpB,OAA8B,aAG9B,MADAtoB,EAAQq1B,UAAUC,MAAM,qDAClB,IAAIC,MAAM,0DAA0D,KAAD,qBAI1C,OAD7BxO,EAAkC,IAAIyO,EAAAA,yBAAyBjV,EAAY8T,mBAC9C,IAAMoB,EAAAA,EAAAA,qBAAoB1O,EAAO/mB,EAAQke,gBAAc,OAE1F,OAFMiT,EAA6B7xB,EAAAgpB,OACnCgF,GAAa,GACb,GAAM6G,EAAUhD,IAAc,OAA9B7xB,EAAAgpB,OAA+B,EAAD,kCA6CrB9H,EAAc0U,0BAEnBp0B,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,0BACvB0gB,MAAOjB,EAAckV,+BAA8B,aACvClV,EAAckV,+BAC1BvzB,QAASoyB,GAER/T,EAAckV,mCCvHtBC,EAAyB,SAACx2B,GAC3B,IAAAgyB,EAA4ChyB,EAAKgyB,cAAlCpwB,EAA6B5B,EAAK4B,UAAvB8c,EAAkB1e,EAAK0e,cAMnDD,EAAWuT,EAAcsC,mBAAmBtf,KAAI,SAAAuf,GAAQ,OAAAA,EAAKC,eAAalN,QAAO,SAAAkN,GAAe,OAAAA,KAEtG,OACI7yB,EAAAA,cAAA,OAAKC,UAAcA,EAAS,eACxBD,EAAAA,cAAA,OAAKC,UAAcA,EAAS,iBACxBD,EAAAA,cAAA,OAAKC,UAAcA,EAAS,WAAYowB,EAAcc,YAAYzS,MAClE1e,EAAAA,cAAA,OAAKC,UAAcA,EAAS,YAAYwB,EAAAA,EAAAA,QAAOpD,EAAMy2B,cAAezE,EAAcyC,cAEtF9yB,EAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAASb,EAAMa,QACfe,UAAWA,EACX6c,SAAUA,EACVC,cAAeA,IAEnB/c,EAAAA,cAAA,OAAKC,UAAcA,EAAS,YACxBD,EAAAA,cAACmB,EAAAA,OAAM,CAAClB,UAAcA,EAAS,kBAAmB0gB,MAAOtiB,EAAM02B,iBAAkB1zB,QAnBjE,WACxB,OAAOhD,EAAM22B,oBAAoB32B,EAAMgyB,cAAcc,eAmBxC9yB,EAAM02B,qBCuErBE,EAA2D,SAC7DxV,EACAxf,EACAi1B,EACAC,EACAC,GAGI,IAnBY3C,EAAc4C,EACxBC,EAkBFC,EAGA9V,EAAW8V,kCAFXhJ,EAEA9M,EAAW8M,UADHiJ,EACR/V,EAAWhhB,KAAA+2B,eAETC,EAA8B,IAAGC,EAAAA,EAAAA,IAAS,mDAAoDjW,EAAYvgB,QAAQ0e,SAExH,OACI5d,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAcA,EAAS,4BAA6BogB,OAAQ6U,GAClFl1B,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQ6U,GAC5Dl1B,IAAAA,cAAA,YAAOu1B,EAAkCI,2BAE7C31B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,0CAlChCwyB,EAmCoB8C,EAAkCK,oBAnCxCP,EAmC6DG,EAAetyB,OAAO1G,WAlC3G84B,EAAgB,MAElBt1B,IAAAA,cAAAA,IAAAA,SAAA,KACKyyB,EAAKrtB,MAAM,EAAGqtB,EAAKtc,QAAQmf,IAC5Bt1B,IAAAA,cAAA,SAAIq1B,GACH5C,EAAKrtB,MAAMqtB,EAAKtc,QAAQmf,GAAiBA,EAAcpyB,WA+B5ClD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,uCACxBD,IAAAA,cAAA,OACIC,UAAWiB,GAAAA,CACJjB,EAAS,4CACTA,EAAS,+DAGhBD,IAAAA,cAACkd,EAAAA,GAAK,CACFuB,QAAS8W,EAAkCM,iCAC3C1Y,eAAgBsC,EAAYvgB,QAAQke,cAAcD,eAClDld,UAAcA,EAAS,oEACvBod,IAAKoY,EACLzX,aAAcyB,EAAYvgB,QAAQ0e,QAAQI,aAC1CQ,oBAAoB,UAExBxe,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,qEACvBoB,QAAS8zB,GAERI,EAAkCM,mCAG1CL,EAAeniB,KAAI,SAACgd,EAAe7sB,GAChC,OACIxD,IAAAA,cAAC60B,EAAsB,CACnBntB,IAAKlE,EACLvD,UAAcA,EAAS,iCACvBowB,cAAeA,EACfnxB,QAASugB,EAAYvgB,QACrB61B,iBAAkBQ,EAAkCO,wBACpDhB,cAAeS,EAAkCT,cACjDE,oBAAqBI,aAYhDW,EAA2B,SAACtW,GAEjC,IAsBAuW,EAtBAxJ,EAGA/M,EAAW+M,aAFHgJ,EAER/V,EAAWhhB,KAAA+2B,eADXv1B,EACAwf,EAAWxf,UAETi1B,EAAc,WAChB1I,GAAa,IAGXhuB,GAAAuC,EAAAA,EAAAA,KAAoEoa,EAAAA,EAAAA,WAAS,GAAM,GAAlF8a,EAA+Bz3B,EAAA,GAAE03B,EAA8B13B,EAAA,GAChE22B,EAA8B,WAChC3I,GAAa,GACbiF,YAAW,WACPyE,GAA+B,KAChC,MA0BP,OAhBIF,EAD0B,IAA1BR,EAAetyB,OACY+xB,EACvBxV,EACGxf,EAAS,aACZi1B,EACAC,EACA1V,EAAY0W,yBAxKuC,SAC3D1W,EACAxf,EACAi1B,EACAC,GAEQ,IAAAI,EAAiD9V,EAAW8V,kCAAzBhJ,EAAc9M,EAAW8M,UAE9DkJ,EAA8B,IAAGC,EAAAA,EAAAA,IAAS,mDAAoDjW,EAAYvgB,QAAQ0e,SAExH,OACI5d,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAcA,EAAS,4BAA6BogB,OAAQ6U,GAClFl1B,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQ6U,GAC5Dl1B,IAAAA,cAAA,YAAOu1B,EAAkCI,2BAE7C31B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,mDACxBD,IAAAA,cAACkd,EAAAA,GAAK,CACFuB,QAAS8W,EAAkCM,iCAC3C1Y,eAAgBsC,EAAYvgB,QAAQke,cAAcD,eAClDld,UAAcA,EAAS,wCACvBod,IAAKoY,EACLzX,aAAcyB,EAAYvgB,QAAQ0e,QAAQI,aAC1CQ,oBAAoB,WAG5Bxe,IAAAA,cAAA,OAAKC,UAAcA,EAAS,gCACvBs1B,EAAkCa,yBAEvCp2B,IAAAA,cAAA,OAAKC,UAAcA,EAAS,4CACvBs1B,EAAkCc,+BAI/Cr2B,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,yCACvB0gB,MAAO4U,EAAkCe,gCACzCj1B,QAAS8zB,GAERI,EAAkCe,iCAEvCt2B,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,0BACvB0gB,MAAO4U,EAAkCgB,sCACzCl1B,QAAS6zB,GAERK,EAAkCgB,0CA0HxBC,CACvB/W,EACGxf,EAAS,UACZi1B,EACAC,GAKJn1B,IAAAA,cAAAA,IAAAA,SAAA,KACKg2B,EACDh2B,IAAAA,cAACizB,EAAuB,CACpBhzB,UAAU,iCACVssB,UAAW0J,EACX/C,gBAAgB,EAChB1G,aAAc0J,EACdh3B,QAASugB,EAAYvgB,QACrB4R,GAAI2O,EAAY3O,GAChBrS,KAAM,GACN+c,SAAUiE,EAAYjE,SACtBkE,cAAeD,EAAYgX,mCAC3BrD,SArCwB,WAChC3B,YAAW,WACPjF,GAAa,KACd,MAmCK6G,UAAW5T,EAAY0W,4CCrM1BO,EAAkC,SAACjX,GAExC,IASMvZ,EACAgE,EAVNwV,EAMAD,EAAWC,cALXzf,EAKAwf,EAAWxf,UAJXf,EAIAugB,EAAWvgB,QAHXqtB,EAGA9M,EAAW8M,UAFXxP,EAEA0C,EAAW1C,cADXve,EACAihB,EAAWhhB,KADH4xB,EAAa7xB,EAAA6xB,cAAEvT,EAAQte,EAAAse,SAAE6Z,EAAUn4B,EAAAm4B,WAAErG,EAAU9xB,EAAA8xB,WASrD5L,EAAQ1kB,IAAAA,aAAkB,WAC5BqG,OAAO2jB,SAAS4M,QAAO,KACxB,IAEGhX,EACa,IAAf+W,EACMjX,EAAcmX,4CACdnX,EAAcoX,+CAA+CxzB,QAAQ,MAAOqzB,EAAWn6B,YAC3F+zB,EACa,IAAfD,EACM5Q,EAAcqX,4CACdrX,EAAcsX,+CAA+C1zB,QAAQ,MAAOgtB,EAAW9zB,YAE3Fy6B,EAAgBna,EAAS6I,QAC3B,SAAArmB,GAAO,MACH,QAAkC,QAAlCd,EAACc,EAAQge,eAAe+E,kBAAU,IAAA7jB,OAAA,EAAAA,EAAEupB,MAChC,SAAAmH,GAAS,IAAA1wB,EAAI,OAAA0wB,EAAUgI,qBAAuBC,EAAAA,qBAAqBC,OAA6C,YAAZ,QAAxB54B,EAAA0wB,EAAUzM,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,cAG5G2U,EAAmBva,EAAS6I,QAAO,SAAArmB,GAAO,IAAAd,EAAA,OACX,QADWA,EAC5Cc,EAAQge,eAAe+E,kBAAU,IAAA7jB,OAAA,EAAAA,EAAEupB,MAC/B,SAAAmH,GAAS,IAAA1wB,EAAI,OAAA0wB,EAAUgI,qBAAuBC,EAAAA,qBAAqBC,OAA6C,YAAZ,QAAxB54B,EAAA0wB,EAAUzM,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,aAI9G,OACI1iB,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAW,GAAGA,EAAaogB,OAAQqE,GACzD1kB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQqE,GAC5D1kB,IAAAA,cAAA,SAAIuwB,GACJvwB,IAAAA,cAAA,oBAAgB,aAAa0f,EAAc4X,6CAE/Ct3B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAASA,EACTe,UAAcA,EAAS,WACvB6c,SAAUma,EACVla,cAAeA,IAEnB/c,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,iCAAkCowB,EAAc3R,MAC5E1e,IAAAA,cAAA,OAAKC,UAAcA,EAAS,kCAAmC2f,IAElE6G,EAAAA,gBAAgBC,YAAY2Q,GACzBr3B,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACu3B,EAAAA,MAAK,CAACtjB,MAAM,SAASujB,WAAS,eAAa9X,EAAc+X,sDACtDz3B,IAAAA,cAAA,OAAKC,UAAU,qBACXD,IAAAA,cAAA,QAAMC,UAAU,6BAChBD,IAAAA,cAAA,YAAO0f,EAAc+X,wDAG7Bz3B,IAAAA,cAAC6c,EAAAA,EAAqC,CAClC3d,QAASA,EACTe,UAAcA,EAAS,WACvB6c,SAAUua,EACVta,cAAeA,KAGvB,OAGZ/c,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,uCACvB0gB,MAAOjB,EAAcgY,4BACrB7W,MAtEN3a,GAAM4a,EAAAA,EAAAA,IAAW,gBAAiB5hB,EAAQke,gBAAkB,GAC5DlT,EAAYhE,EAAI5B,SAAS,KAAO,IAAM,IACrC,GAAG4B,EAAMgE,EAAS,MAAMmmB,EAAcvF,KAsEhCpL,EAAcgY,6BAEnB13B,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,8BACvB0gB,MAAOjB,EAAciY,2BACrBt2B,QAASqjB,GAERhF,EAAciY,+BC7DtBC,EAAkF,SAC3Fv5B,GAEM,IAAAG,GAAAuC,EAAAA,EAAAA,KAAgDoa,EAAAA,EAAAA,eAAkC/d,GAAU,GAA3Fy6B,EAAmBr5B,EAAA,GAAEs5B,EAAsBt5B,EAAA,GAC5CD,GAAAwC,EAAAA,EAAAA,KAAoCoa,EAAAA,EAAAA,eAAoC/d,GAAU,GAAjF65B,EAAa14B,EAAA,GAAEw5B,EAAgBx5B,EAAA,GAChCD,GAAAyC,EAAAA,EAAAA,KAAoEoa,EAAAA,EAAAA,WAAS,GAAM,GAAlF6c,EAA6B15B,EAAA,GAAE25B,EAAgC35B,EAAA,GAChEwC,GAAAC,EAAAA,EAAAA,KAAoFoa,EAAAA,EAAAA,WAAS,GAAM,GAAlG+c,EAAqCp3B,EAAA,GAAEq3B,EAAwCr3B,EAAA,GAChFgB,GAAAf,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAAS,GAAE,GAAlD0W,EAAe/vB,EAAA,GAAEivB,EAAkBjvB,EAAA,GACpCI,GAAAnB,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAAS,GAAE,GAAlDid,EAAel2B,EAAA,GAAEm2B,EAAkBn2B,EAAA,GAMpCi0B,EAA0Bn2B,IAAAA,aAC5B,SAAOqwB,GAA0B,OAAA5K,EAAAA,EAAAA,SAAA,kHAC7BqS,EAAuBzH,GAEjB/J,EAA2B,QAAlB/nB,EAAGF,EAAMioB,iBAAS,IAAA/nB,EAAAA,GAAIqoB,EAAAA,EAAAA,IAAavoB,EAAMa,QAAQke,cAAcD,iBAC9E0J,EAAAA,EAAAA,mBAAkBP,GACZ0K,EAAsC3yB,EAAM2yB,sCAAuC,EACnFsH,EAAgCj6B,EAAMI,KAAKqe,SAASzJ,KAAI,SAAAuf,GAC1D,OAAAlyB,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAA,GACOkyB,GACC5B,GAAuC,CAAE1K,UAAWsM,EAAKrM,WAAaD,IAAY,CACtFiS,cAAelI,EAAcvF,QAI/B0N,EAAuC,GAAG,IAChD,IAAuBC,GAAAzZ,EAAAA,EAAAA,IAAAsZ,GAAUI,EAAAD,EAAAvZ,QAAAwZ,EAAAh7B,KAAAg7B,EAAAD,EAAAvZ,QAAtByZ,EAAQD,EAAA/6B,OACFi7B,WACTJ,EAAiB5zB,KACb,IAAIi0B,EAAAA,iBACAF,EAASC,UACTv6B,EAAMa,QAAQke,cAAcD,eAAeQ,aAC3Cmb,EAAAA,EAAAA,0CAAyCz6B,EAAMa,QAAQke,eACvD/e,EAAMa,QAAQke,cAAcD,iBAEnC,iGAIW,UAAM4b,EAAAA,EAAAA,iBAAgBP,EAAkBn6B,EAAMa,QAAQke,gBAAc,OAErE,OAFb4b,EAAc16B,EAAAkpB,OAED,GAAMyR,EAAAA,wBAAAA,yBACrB,CAAE3R,cAAejpB,EAAMa,QAAQke,eAC/BiT,EAAcvF,GACdwN,IACH,OAUoB,OAdfY,EAAa56B,EAAAkpB,OAMb2R,EAAaD,EAAW7lB,KAAI,SAAAuf,GAAI,IAAAp0B,EAAA,OAAiB,QAAjBA,EAAIo0B,EAAKvM,gBAAQ,IAAA7nB,EAAAA,EAAI,KAC3DuyB,EAAmBmI,EAAWh2B,QAC9Bm1B,EAAmB5R,EAAAA,gBAAgBC,YAAYyS,GAAc1S,EAAAA,gBAAgB2S,aAAaD,GAAc,GACxGpB,EAAiBiB,GAEjBf,GAAiC,GACjCxG,YAAW,WACP0G,GAAyC,KAjEhC,KAkEO,aAExB,CAAC95B,EAAMa,QAAQke,cAAe/e,EAAMI,KAAKqe,WAGvCuc,EAAoCr5B,IAAAA,aAAkB,WACxDi4B,GAAiC,KAClC,IAEH,KAAKqB,EAAAA,EAAAA,IAAiBj7B,EAAMa,QAAQke,cAAcD,gBAC9C,OAAO,KAGX,IAAMoc,EAAkEv5B,IAAAA,YAClEgxB,EAAsC3yB,EAAM2yB,sCAAuC,EACzF,OACIhxB,IAAAA,cAAA,OAAKC,UAAW5B,EAAM4B,WAClBD,IAAAA,cAAC+1B,GAAwBr1B,EAAAA,EAAAA,IAAA,CACrBT,UAAU,mCACV6Q,GAAG,GACH0K,SAAS,GACT+Q,UAAWyL,EACXxL,aAAcyL,EACd/4B,QAASb,EAAMa,QACfT,KAAM,CAAE+2B,eAAgBn3B,EAAMI,KAAK+2B,gBACnCD,kCAAmCl3B,EAAMglB,UACzCoT,mCAAoCp4B,EAAMglB,UAC1C8S,wBAAyBA,EACzBnF,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAElEuR,GAAuBZ,GACpBj3B,IAAAA,cAAC02B,GAA+Bh2B,EAAAA,EAAAA,IAAA,CAC5BT,UAAU,2CACV6Q,GAAG,GACH0K,SAAS,GACTtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAMglB,UACrB5kB,KAAM,CACF6xB,WAAYuB,EACZ8E,WAAYyB,EACZ/H,cAAewH,EACf/a,SAAUma,GAEd1K,UAAW2L,EACXlH,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAGvEtmB,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAc5B,EAAM4B,UAAS,eAC7BoB,QAASg4B,EACT1Y,MAAOtiB,EAAMglB,UAAUmW,iCACvBC,SAAUF,EACVlN,SAAUhuB,EAAMq7B,YAEfr7B,EAAMglB,UAAUmW,oCC9JpBG,EAAgD,SAACla,GAClD,IAAAC,EAAiED,EAAWC,cAA7Dzf,EAAkDwf,EAAWxf,UAAlDssB,EAAuC9M,EAAW8M,UAAvCqN,EAA4Bna,EAAWma,wBAEpF,OACI55B,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAW,GAAGA,EAAaogB,OAAQZ,EAAY2T,UACrEpzB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQZ,EAAY2T,UACxEpzB,IAAAA,cAAA,YAAO0f,MAAAA,OAAa,EAAbA,EAAema,2BAE1B75B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBAA0Byf,MAAAA,OAAa,EAAbA,EAAeoa,iCAG7E95B,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,mCACvB0gB,MAAOjB,MAAAA,OAAa,EAAbA,EAAeqa,yBACtB14B,QAASu4B,GAERla,MAAAA,OAAa,EAAbA,EAAeqa,0BAEpB/5B,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,0BACvB0gB,MAAOjB,MAAAA,OAAa,EAAbA,EAAesa,+BACtB34B,QAASoe,EAAY2T,UAEpB1T,MAAAA,OAAa,EAAbA,EAAesa,4CCmBvBC,EAAiC,SAACxa,GAEvC,IASMvZ,EACAgE,EAVNwV,EAMAD,EAAWC,cALXzf,EAKAwf,EAAWxf,UAJXf,EAIAugB,EAAWvgB,QAHXqtB,EAGA9M,EAAW8M,UAFXxP,EAEA0C,EAAW1C,cADXve,EACAihB,EAAWhhB,KADHy7B,EAAe17B,EAAA07B,gBAAE56B,EAAOd,EAAAc,QAAE66B,EAAY37B,EAAA27B,aAAEhS,EAAQ3pB,EAAA2pB,SAStDzD,EAAoB,WACtBre,OAAO2jB,SAAS4M,QAAO,IAGrBhX,EACW,IAAbuI,EACMzI,EAAc0a,0CACd1a,EAAc2a,6CAA6C/2B,QAAQ,MAAO6kB,EAAS3rB,YAE7F,OACIwD,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAW,GAAGA,EAAaogB,OAAQqE,GACzD1kB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQqE,GAC5D1kB,IAAAA,cAAA,SAAI4f,GACJ5f,IAAAA,cAAA,YAAO0f,EAAc4a,4CAEzBt6B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBAhEX,SAACf,EAAuBe,EAAmBX,EAAwByd,GAA8B,QACxHmF,GAAmBzE,EAAAA,EAAAA,qBACrBne,EAAQoe,OACRxe,EAAQke,cAAcD,eAAeQ,YACV,QADqBpf,EAC7B,QAD6BC,EAChDU,EAAQ0e,QAAQC,WAAG,IAAArf,OAAA,EAAAA,EAAEsf,cAAM,IAAAvf,OAAA,EAAAA,EAAEwf,kBAcjC,OAZIhB,IACAA,EAAcoF,iBAAkB,GAYhCniB,IAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgBje,EAAQke,cAAcD,eACtCld,UAAcA,EAAS,gBACvBod,IAAK/d,EAAQie,iBAAmB,GAChCkB,QAASnf,EAAQof,KACjBlB,YAAa0E,EACblE,aAAc9e,EAAQ0e,QAAQI,aAC9BjB,cAAeA,GAjBsB,CACzCkB,UAAW,CACPC,GAAI,CAAEvT,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAE1T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCE,GAAI,CAAE3T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,IAEzCG,UAAU,EACV4D,iBAAiB,GAWb3D,oBAAoB,UAsCXvB,CAAyB/d,EAAYe,EAAS,WAAYX,EAASyd,GACpE/c,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,0BAA2BX,EAAQof,MAC/D1e,IAAAA,cAAA,OAAKC,UAAcA,EAAS,2BACvBk6B,GACGn6B,IAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CAAEC,MAAOy7B,GACfj7B,QAASugB,EAAYvgB,QACrB4R,GAAI2O,EAAY3O,GAChB0K,SAAUiE,EAAYjE,SACtBvc,cAAewgB,EAAYC,cAAczgB,cACzCyD,kBAAmB+c,EAAYC,cAAchd,kBAC7CC,iBAAkB8c,EAAYC,cAAc/c,oBAIvDrD,EAAQ+iB,YACLriB,IAAAA,cAAA,OAAKC,UAAcA,EAAS,gCACvBX,EAAQ+iB,WAAWhP,KAAI,SAAA6b,GAAS,IAAA1wB,EAAA,OAA4B,QAA5BA,EAAI0wB,EAAUzM,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,SAC1DiD,QAAO,SAAAhoB,GAAS,OAAAA,KAChB48B,KAAK,UAM9Bv6B,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,uCACvB0gB,MAAOjB,EAAcgY,4BACrB7W,MApDN3a,GAAM4a,EAAAA,EAAAA,IAAW,gBAAiB5hB,EAAQke,gBAAkB,GAC5DlT,EAAYhE,EAAI5B,SAAS,KAAO,IAAM,IACrC,GAAG4B,EAAMgE,EAAS,MAAMgwB,IAoDlBxa,EAAcgY,6BAEnB13B,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,8BACvB0gB,MAAOjB,EAAciY,2BACrBt2B,QAASqjB,GAERhF,EAAciY,+BClB7B6C,EAAqC,CACvCn5B,QA1BY,SACZuZ,EACAvc,EACAo8B,EACAnS,GAAoC,OAAA7C,EAAAA,EAAAA,SAAA,mEAIpC,OAFQiV,EAASr8B,EAAMa,QAAQ0e,QAAO8c,KAElCD,EAAME,QACA,CAAN,IAGCD,EAAKE,iBAAmBF,EAAKG,WAAax0B,QAC3CA,OAAO2jB,SAASC,OAAOyQ,EAAKG,WACtB,CAAN,KAGJC,EAAmBz8B,EAAOiqB,GAC1BmS,EAAMM,YAAW,GAAM,YASvBC,UANc,SAACP,GACfA,EAAMQ,WAAW,CAAEhnB,MAAO,UAAWinB,WAAW,MAmP9CJ,EAAqB,SAACz8B,EAA0CiqB,GAC1D,IAAA6S,EAAwB98B,EAAK88B,oBAErC,GAAI98B,EAAMI,KAAKa,QAAQ+iB,aAAe8Y,EAAqB,CACvD,IAAMlM,EAAoB5wB,EAAMI,KAAKa,QAAQ+iB,WAAWsD,QACpD,SAAAuJ,GAAa,QAAEA,EAAUzM,gBAAkByM,EAAUzM,eAAeC,UAGxE,GAAIuM,EAAkB/rB,OAAS,EAG3B,YADAoiB,EAAejnB,EAAO,CAAEyI,OAAQ,oBAAqBmoB,kBAAiBA,IAK9E3G,GAAU,IAGRhD,EAAiB,SAACjnB,EAA0CL,GACtD,IAAAunB,EAAYlnB,EAAKknB,QAErBA,GACAA,EAAQvnB,IAIHo9B,EAA0F56B,EAAAA,GAAiBC,gBAGtH,sBAAoBC,EAAAA,EAAAA,IAAA,CAAIC,UA7P8C,SAACtC,GACrE,KAAKi7B,EAAAA,EAAAA,IAAiBj7B,EAAMa,QAAQke,cAAcD,gBAC9C,OAAO,KAGL,IAAA3e,GAAAuC,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,WAAS,GAAM,GAAtCwf,EAAOn8B,EAAA,GAAEu8B,EAAUv8B,EAAA,GACpBD,GAAAwC,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,UAAS,IAAG,GACpCsf,EAAyC,CAC3CE,QAAOA,EACPU,QAHU98B,EAAA,GAKVw8B,WAAUA,EACVE,WANsB18B,EAAA,IASpBD,GAAAyC,EAAAA,EAAAA,KAAgEoa,EAAAA,EAAAA,WAAS,GAAM,GAA9EmgB,EAA2Bh9B,EAAA,GAAEi9B,EAA8Bj9B,EAAA,GAE5DwC,GAAAC,EAAAA,EAAAA,KAAoDoa,EAAAA,EAAAA,eAA6B/d,GAAU,GAA1Fo+B,EAAqB16B,EAAA,GAAE26B,EAAwB36B,EAAA,GAChDgB,GAAAf,EAAAA,EAAAA,KAAkCoa,EAAAA,EAAAA,UAA8B,MAAK,GAApEgf,EAAYr4B,EAAA,GAAE45B,EAAe55B,EAAA,GAC9BI,GAAAnB,EAAAA,EAAAA,KAA8Eoa,EAAAA,EAAAA,WAAS,GAAM,GAA5FwgB,EAAkCz5B,EAAA,GAAE05B,EAAqC15B,EAAA,GAC1ED,GAAAlB,EAAAA,EAAAA,KAA4Goa,EAAAA,EAAAA,WAAS,GAAM,GAA1H0gB,EAAiD55B,EAAA,GAAE65B,EAAoD75B,EAAA,GACxGqkB,EAAYjoB,EAAMioB,WACxBO,EAAAA,EAAAA,mBAAkBP,GAClB,IAAM0K,EAAsC3yB,EAAM2yB,sCAAuC,EAuFrF+K,EAYA19B,EAAK09B,6BAXLC,EAWA39B,EAAK29B,kBAVLC,EAUA59B,EAAK49B,eATLh8B,EASA5B,EAAK4B,UARLosB,EAQAhuB,EAAKguB,SAPL6P,EAOA79B,EAAK69B,kBANLC,EAMA99B,EAAK89B,8BALLC,EAKA/9B,EAAK+9B,cAJLC,EAIAh+B,EAAKg+B,gBAHLC,EAGAj+B,EAAKi+B,gCAFL/G,EAEAl3B,EAAKk3B,kCADLkB,EACAp4B,EAAKo4B,mCAKHplB,EAAY0qB,EACZQ,EAA4Dv8B,IAAAA,YAC5Dw8B,OAAoCp/B,IAAtB4+B,GAAkCA,EAChDS,OAAoCr/B,IAAtB8+B,GAAkCA,EAChDQ,OAAmCt/B,IAAtB8+B,EAAkCG,EAAkB,UAEjEM,EAA4C,CAC9CnH,eAAgBn3B,EAAMI,KAAK+2B,gBAO/B,OACIx1B,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,UACIC,UAAWiB,GAAAA,CACPjB,GAC2B5B,EAAMI,KAAKa,QAEhC,kCACNm7B,EAAME,QAAU,0CAA4C,IAC/D,aACWtpB,EACZhQ,QAAS+6B,OAAgBh/B,EAhBlB,SAACgd,GACpB,OAAOogB,EAAmCn5B,QAAQ+Y,EAAO/b,EAAOo8B,EAAOc,IAgB3DlP,SAAUA,EACVuQ,IAAKL,GAEJN,EAAiB5qB,EAAY,IAEjCorB,GACGz8B,IAAAA,cAAC68B,EAAAA,oBAAmB,CAACC,UAAWJ,EAAY9X,QAAQ,cAAcpd,OAAQ+0B,GACrEJ,EAAgCG,EAAkCjrB,IAI9EopB,EAAMY,QAAQH,WAAasB,EACxBx8B,IAAAA,cAAA,OAAKC,UAAU,2CACXD,IAAAA,cAACu3B,EAAAA,MAAK,CAACtjB,MAAOwmB,EAAMY,QAAQpnB,MAAOmM,OAAQqa,EAAMY,QAAQH,UAAW7a,OA3C3D,WACrBma,EAAmCQ,UAAUP,KA2C5BA,EAAMY,QAAQ0B,2BAIvB,GAEJ/8B,IAAAA,cAAC+1B,GAAwBr1B,EAAAA,EAAAA,IAAA,CACrBT,UAAU,mCACVssB,UAAW+O,EACX9O,aAAc+O,EACdr8B,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChB/c,KAAMk+B,EACNpH,kCAAmCA,EACnCkB,mCAAoCA,EACpCN,wBAhK0B,SAAO9F,GAA0B,OAAA5K,EAAAA,EAAAA,SAAA,0FAiBnE,OAhBAgW,EAAyBpL,EAAcvF,IACjC7E,EAAQ+K,EACR,IAAIgM,EAAAA,4BACA3M,EAAcvF,GACdzsB,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMI,KAAK0pB,SACX9pB,EAAMI,KAAKa,QAAQgkB,sBAAwB,KAC3C0N,EACA1K,GAEJ,IAAI0W,EAAAA,4BACA3M,EAAcvF,GACdzsB,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMI,KAAK0pB,SACX9pB,EAAMI,KAAKa,QAAQgkB,sBAAwB,MAErD,IAAM2Z,EAAAA,EAAAA,wBAAuBhX,EAAO5nB,EAAMa,QAAQke,eAC7C8f,MAAK,SAAMl/B,GAAM,OAAAynB,EAAAA,EAAAA,SAAA,0FACgB,UAAM0X,EAAAA,EAAAA,4BAChC,IAAIC,EAAAA,6BACA/+B,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMa,QAAQke,cAAcD,eAAeQ,YAAYsJ,UACvD5oB,EAAMI,KAAKa,SAEfjB,EAAMa,QAAQke,gBACjB,OAKO,OAZFigB,EAAwB7+B,EAAAgpB,OAQ9BkU,EAAgB2B,GAChB9B,GAA+B,GAC/B9J,YAAW,WACPmK,GAAsC,KACvC,KAAI,cAEV0B,OAAM,SAAA9I,GAAK,MACR,MAA0B,yDAAX,QAAXh2B,EAAAg2B,EAAMA,aAAK,IAAAh2B,OAAA,EAAAA,EAAE2a,MACNokB,EAAAA,YAAYC,OAAOhJ,IAE9B+G,GAA+B,GAC/B9J,YAAW,WACPqK,GAAqD,KACtD,KACIyB,EAAAA,YAAYE,eACrB,OAAC,OAzBPj/B,EAAAgpB,OAyBM,YAuHEwJ,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAElEkV,GAAyBrB,GACtBn6B,IAAAA,cAACi6B,GAA8Bv5B,EAAAA,EAAAA,IAAA,CAC3BT,UAAU,0CACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAMq/B,wCACrB3gB,mBAAuC3f,IAAxBiB,EAAM0e,cAA8B1e,EAAM0e,mBAAgB3f,EACzEqB,KAAM,CACFa,QAASjB,EAAMI,KAAKa,QACpB6oB,SAAU9pB,EAAMI,KAAK0pB,SACrB+R,gBAAiBsB,EACjBrB,aAAYA,GAEhB5N,UAAWoP,EACX3K,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAGvEtmB,IAAAA,cAAC25B,EAA6C,CAC1C15B,UAAU,2DACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAMs/B,uDACrBl/B,KAAM,GACN8tB,UAAWsP,EACXjC,wBA3Ia,kBAAAnU,EAAAA,EAAAA,SAAA,4FAgBrB,OAfMQ,EAAQ+K,EACR,IAAI4M,EAAAA,yBACApC,EACAn9B,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMI,KAAK0pB,SACX9pB,EAAMI,KAAKa,QAAQgkB,sBAAwB,KAC3C0N,EACA1K,GAEJ,IAAIsX,EAAAA,yBACApC,EACAn9B,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMI,KAAK0pB,SACX9pB,EAAMI,KAAKa,QAAQgkB,sBAAwB,MAErD,IAAMua,EAAAA,EAAAA,2BAA0B5X,EAAO5nB,EAAMa,QAAQke,gBAAc,OAErC,OAF9B5e,EAAAgpB,OAE8B,IAAM2V,EAAAA,EAAAA,4BAChC,IAAIC,EAAAA,6BACA/+B,EAAMI,KAAKa,QAAQ0oB,SACnB3pB,EAAMa,QAAQke,cAAcD,eAAeQ,YAAYsJ,UACvD5oB,EAAMI,KAAKa,SAEfjB,EAAMa,QAAQke,gBACjB,OAKO,OAZFigB,EAAwB7+B,EAAAgpB,OAQ9BkU,EAAgB2B,GAChBvB,GAAqD,GACrDrK,YAAW,WACPmK,GAAsC,KACvC,KAAI,YA8GCxI,SAnJoB,WAC5B0I,GAAqD,GACrDrK,YAAW,WACP8J,GAA+B,KAChC,WAoLiDf,ICxU/CsD,EAAwB,SAACre,GAE9B,IAAAC,EAKAD,EAAWC,cAJXzf,EAIAwf,EAAWxf,UAHXf,EAGAugB,EAAWvgB,QAFXqtB,EAEA9M,EAAW8M,UADX/tB,EACAihB,EAAWhhB,KADHa,EAAOd,EAAAc,QAAE66B,EAAY37B,EAAA27B,aAAEhS,EAAQ3pB,EAAA2pB,SAOrCzD,EAAoB,WACtBjF,EAAYa,WAGVV,EACW,IAAbuI,EACMzI,EAAcqe,iCACdre,EAAcse,oCAAoC16B,QAAQ,MAAO6kB,EAAS3rB,YAEpF,OACIwD,IAAAA,cAACmgB,EAAAA,MAAK,CAACC,OAAQmM,EAAWtsB,UAAW,GAAGA,EAAaogB,OAAQqE,GACzD1kB,IAAAA,cAACugB,EAAAA,YAAW,CAACtgB,UAAcA,EAAS,mBAAoBogB,OAAQqE,GAC5D1kB,IAAAA,cAAA,SAAI4f,GACJ5f,IAAAA,cAAA,YAAO0f,EAAcue,mCAEzBj+B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UAAcA,EAAS,kBAC9BD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,qBAzDxB,SAACf,EAAuBe,EAAmBX,EAAwByd,GAA8B,QAC3GmF,GAAmBzE,EAAAA,EAAAA,qBACrBne,EAAQoe,OACRxe,EAAQke,cAAcD,eAAeQ,YACV,QADqBpf,EAC7B,QAD6BC,EAChDU,EAAQ0e,QAAQC,WAAG,IAAArf,OAAA,EAAAA,EAAEsf,cAAM,IAAAvf,OAAA,EAAAA,EAAEwf,kBAUjC,OACI/d,IAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgBje,EAAQke,cAAcD,eACtCld,UAAcA,EAAS,gBACvBod,IAAK/d,EAAQie,iBAAmB,GAChCkB,QAASnf,EAAQof,KACjBlB,YAAa0E,EACblE,aAAc9e,EAAQ0e,QAAQI,aAC9BjB,cAAeA,GAhBsB,CACzCkB,UAAW,CACPC,GAAI,CAAEvT,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCC,GAAI,CAAE1T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,GACrCE,GAAI,CAAE3T,EAAG,kBAAmBwT,EAAG,EAAGC,EAAG,IAEzCG,UAAU,GAWNC,oBAAoB,UAmCX0f,CAAYh/B,EAAYe,EAAS,WAAYX,GAC9CU,IAAAA,cAAA,OAAKC,UAAcA,EAAS,yBACxBD,IAAAA,cAAA,OAAKC,UAAcA,EAAS,0BAA2BX,EAAQof,MAC/D1e,IAAAA,cAAA,OAAKC,UAAcA,EAAS,2BACvBk6B,GACGn6B,IAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CAAEC,MAAOy7B,GACfj7B,QAASugB,EAAYvgB,QACrB4R,GAAI2O,EAAY3O,GAChB0K,SAAUiE,EAAYjE,SACtBvc,cAAewgB,EAAYC,cAAczgB,cACzCyD,kBAAmB+c,EAAYC,cAAchd,kBAC7CC,iBAAkB8c,EAAYC,cAAc/c,oBAIvDrD,EAAQ+iB,YACLriB,IAAAA,cAAA,OAAKC,UAAcA,EAAS,gCACvBX,EAAQ+iB,WAAWhP,KAAI,SAAA6b,GAAS,IAAA1wB,EAAA,OAA4B,QAA5BA,EAAI0wB,EAAUzM,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,SAC1DiD,QAAO,SAAAhoB,GAAS,OAAAA,KAChB48B,KAAK,UAM9Bv6B,IAAAA,cAAC0gB,EAAAA,YAAW,CAACzgB,UAAcA,EAAS,oBAChCD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,6BACvB0gB,MAAOjB,EAAckB,mBACrBC,MAlDLC,EAAAA,EAAAA,IAAW,OAAQ5hB,EAAQke,gBAAkB,IAoDvCsC,EAAckB,oBAEnB5gB,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,8BACvB0gB,MAAOjB,EAAckR,6BACrBvvB,QAASqjB,GAERhF,EAAckR,iCVhEtBuN,EAA4F39B,EAAAA,GAAiBC,gBAGxH,uBAAqBC,EAAAA,EAAAA,IAAA,CAAIC,UA5C+C,SAACtC,GAE3D,IAAAgyB,EAIRhyB,EAAKI,KAAA4xB,cAHL+N,EAGA//B,EAAK+/B,8BAFLC,EAEAhgC,EAAKggC,iCADLn/B,EACAb,EAAKa,QACHV,GAAAuC,EAAAA,EAAAA,IAAkEf,IAAAA,UAAe,GAAM,GAAtFs+B,EAA6B9/B,EAAA,GAAE03B,EAA8B13B,EAAA,GAUpE,OACIwB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACmB,EAAAA,OAAM,CAAClB,UAAU,uDAAuDoB,QANrD,SAAC+Y,GACzB+V,EAAuB/V,EAAM5S,OAC7B0uB,GAA+B,KAKtBkI,GAELp+B,IAAAA,cAACizB,EAAuB,CACpBE,sBAAuB9C,EACvB6C,gBAAc,EACdjzB,UAAU,iCACVssB,UAAW+R,EACX9R,aAAc0J,EACdh3B,QAASA,EACT4R,GAAIzS,EAAMyS,GACVrS,KAAMJ,EAAMI,KACZ80B,kBAAmBl1B,EAAMI,KAAK4xB,cAAc3R,KAC5ClD,SAAUnd,EAAMmd,SAChBkE,cAAe2e,EACfjL,SA1BsB,WAC9Bl0B,EAAQq1B,UAAUgK,MAAM,oCACxBpO,MAAAA,GAAAA,EAAsB6C,SAyBdK,UAAWh1B,EAAMmgC,sBAtCW,qBWkDtCC,EAAiC,CACnCzD,UALc,SAACP,GACfA,EAAMQ,WAAW,CAAEhnB,MAAO,UAAWinB,WAAW,MA4NvCwD,EAAoGl+B,EAAAA,GAAiBC,gBAGhI,2BAAyBC,EAAAA,EAAAA,IAAA,CAAIC,UAxNmD,SAACtC,GAC/E,KAAKi7B,EAAAA,EAAAA,IAAiBj7B,EAAMa,QAAQke,cAAcD,gBAC9C,OAAO,KAGL,IAAA3e,GAAAuC,EAAAA,EAAAA,KAAgDoa,EAAAA,EAAAA,eAAkC/d,GAAU,GAA3Fy6B,EAAmBr5B,EAAA,GAAEs5B,EAAsBt5B,EAAA,GAC5CD,GAAAwC,EAAAA,EAAAA,KAAoCoa,EAAAA,EAAAA,eAAoC/d,GAAU,GAAjF65B,EAAa14B,EAAA,GAAEw5B,EAAgBx5B,EAAA,GAChCD,GAAAyC,EAAAA,EAAAA,KAAgEoa,EAAAA,EAAAA,WAAS,GAAM,GAA9EmgB,EAA2Bh9B,EAAA,GAAEi9B,EAA8Bj9B,EAAA,GAC5DwC,GAAAC,EAAAA,EAAAA,KAAgFoa,EAAAA,EAAAA,WAAS,GAAM,GAA9FwjB,EAAmC79B,EAAA,GAAE89B,EAAsC99B,EAAA,GAC5EgB,GAAAf,EAAAA,EAAAA,KAA4Goa,EAAAA,EAAAA,WAAS,GAAM,GAA1H0gB,EAAiD/5B,EAAA,GAAEg6B,EAAoDh6B,EAAA,GACxGI,GAAAnB,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAAS,GAAE,GAAlD0W,EAAe3vB,EAAA,GAAE6uB,EAAkB7uB,EAAA,GACpCD,GAAAlB,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAAS,GAAE,GAAlDid,EAAen2B,EAAA,GAAEo2B,EAAkBp2B,EAAA,GAGtCszB,EAIAl3B,EAAKk3B,kCAHLkB,EAGAp4B,EAAKo4B,mCAFLoI,EAEAxgC,EAAKwgC,kCADLC,EACAzgC,EAAKygC,yCAQH9N,EAAsC3yB,EAAM2yB,sCAAuC,EAuCnF+N,EAAyB,SAACC,GAC5B,IAAMC,EAAoC,GAa1C,OAZAD,EAAaE,SAAQ,SAAAC,GACbA,EAAMvG,WACNqG,EAAcr6B,KACV,IAAIi0B,EAAAA,iBACAsG,EAAMvG,UACNv6B,EAAMa,QAAQke,cAAcD,eAAeQ,aAC3Cmb,EAAAA,EAAAA,0CAAyCz6B,EAAMa,QAAQke,eACvD/e,EAAMa,QAAQke,cAAcD,oBAKrC8hB,GAqDLG,EAAoB,SAACD,GACvBpO,EAAmBoO,EAAMj8B,QACzBm1B,EAAmB8G,EAAM9rB,KAAI,SAAAuf,GAAQ,OAAAA,EAAKvM,UAAY,KAAG/D,QAAO,SAAC+c,EAAeC,GAAmB,OAAAD,EAAgBC,OAMjHC,EAA2G,IAA7ElhC,EAAMI,KAAK+gC,UAAU7Z,QAAO,SAAA8Z,GAAY,OAACA,EAASC,kBAAgBx8B,OAEhGq5B,EAA4Dv8B,IAAAA,YAElE,OACIA,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC+1B,GAAwBr1B,EAAAA,EAAAA,IAAA,CACrBT,UAAU,mCACVssB,UAAW+O,EACX9O,aAAc+O,EACdr8B,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChB/c,KAAM,CAAE+2B,eAAgBn3B,EAAMI,KAAK+2B,gBACnCD,kCAAmCA,EACnCkB,mCAAoCA,EACpCN,wBA1EoB,SAAO9F,GAA0B,OAAA5K,EAAAA,EAAAA,SAAA,kGAazC,OAZpBqS,EAAuBzH,GACjBsP,EAA0C,QAAvBnhC,EAAGH,EAAMI,KAAK+gC,iBAAS,IAAAhhC,OAAA,EAAAA,EAAE6U,KAAI,SAAAge,GAOlD,MAN8C,CAC1CkH,cAAelI,EAAcvF,GAC7B8N,UAAWvH,EAASuH,UACpBvS,SAAUgL,EAAShL,SACnBuZ,cAAevO,EAASwO,wBAK1BrH,EAAuCuG,EAAuBY,GAChD,IAAM5G,EAAAA,EAAAA,iBAAgBP,EAAkBn6B,EAAMa,QAAQke,gBAAc,OAiBxF,OAjBM4b,EAAcz6B,EAAAipB,OAGdsY,EAA2BzhC,EAAMI,KAAK+gC,UACvC7Z,QAAO,SAAA8Z,GAAY,OAACA,EAASC,kBAC7BrsB,KAAI,SAAAge,GASD,OAR0B3wB,EAAAA,EAAAA,IAAA,CACtB63B,cAAelI,EAAcvF,GAC7B8N,UAAWvH,EAASuH,UACpBvS,SAAUgL,EAAShL,SACnBuZ,cAAevO,EAASwO,qBACpB7O,GAAuC,CAAE1K,UAAW+K,EAAS9K,eAM7E,IAAMwZ,EAAAA,EAAAA,0BAAyB,CAAEzY,cAAejpB,EAAMa,QAAQke,eAAiBiT,EAAcvF,GAAIgV,GAC5F5C,MAAK,SAAA8C,GACFZ,EAAkBY,GAClBjI,EAAiBiB,GACjBuC,GAA+B,GAC/B9J,YAAW,WACPmN,GAAuC,KACxC,QAENtB,OAAM,SAAA9I,GACH,MAAmB,wDAAfA,EAAMrb,KACCokB,EAAAA,YAAYC,OAAOhJ,IAE9B+G,GAA+B,GAC/B9J,YAAW,WACPqK,GAAqD,KACtD,KACIyB,EAAAA,YAAYE,eACrB,OAAC,OAlBPl/B,EAAAipB,OAkBM,YA2BEwJ,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAElEuR,GAAuBZ,GACpBj3B,IAAAA,cAAC02B,GAA+Bh2B,EAAAA,EAAAA,IAAA,CAC5BT,UAAU,2CACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAM4hC,yCACrBxhC,KAAM,CACF6xB,WAAYuB,EACZ8E,WAAYyB,EACZ/H,cAAewH,EACf/a,SAAUma,GAEd1K,UAAWoS,EACX3N,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAGvEtmB,IAAAA,cAAC25B,GAA6Cj5B,EAAAA,EAAAA,IAAA,CAC1CT,UAAU,2DACV6Q,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBtc,QAASb,EAAMa,QACfwgB,cAAerhB,EAAMs/B,uDACrBl/B,KAAM,GACN8tB,UAAWsP,EACXjC,wBA/Ja,kBAAAnU,EAAAA,EAAAA,SAAA,wGACfya,EAAsC,GAAG,EAAD,SAEnC7O,GAAQ,oEAEI,OADb8O,EAAgB,IAAIC,EAAAA,yBAAyBvI,MAAAA,OAAmB,EAAnBA,EAAqB/M,GAAKuG,EAASuH,UAAWp8B,YAC9E,IAAM6jC,EAAAA,EAAAA,qBAAoBF,EAAe9hC,EAAMa,QAAQke,gBAAc,OAGxF,OAHMkjB,EAAa9hC,EAAAgpB,OACJ,OACT+Y,EAAgBD,EAAWnB,MAAMxZ,QAAO,SAAAiN,GAAQ,OAAAA,EAAK4N,gBAAgB5H,YAAcvH,EAASuH,cAChF11B,OAAmB,iBAI/Bu9B,EAAeF,EAAc,GAAGC,iBACzBZ,cAAgBvO,EAASwO,qBAAuB,KAC7DY,EAAapa,SAAWgL,EAAShL,SAC7B2K,IACAyP,EAAala,UAAY8K,EAAS9K,WAEtC2Z,EAAiBt7B,KAAK67B,GAAa,kDAfhBjiC,GAAAwgB,EAAAA,EAAAA,IAAA3gB,EAAMI,KAAK+gC,WAASjhC,EAAAC,EAAA0gB,OAAA,sCAAhCmS,EAAQ9yB,EAAAZ,MAAA,KAAR0zB,KAAQ,kNAkBnB,UAAMqP,EAAAA,EAAAA,6BACF,CACIpZ,cAAejpB,EAAMa,QAAQke,eAEjCya,EAAqB/M,GACrBoV,GACFhD,MAAK,SAAMyD,GAAY,OAAAlb,EAAAA,EAAAA,SAAA,4FAGD,OAFpB2Z,EAAkBuB,GACZnI,EAAuCuG,EAAuB4B,GAChD,IAAM5H,EAAAA,EAAAA,iBAAgBP,EAAkBn6B,EAAMa,QAAQke,gBAAc,OAKhF,OALF4b,EAAcx6B,EAAAgpB,OACpBuQ,EAAiBiB,GACjB8C,GAAqD,GACrDrK,YAAW,WACPmN,GAAuC,KACxC,KAAI,eACT,OAAC,OAfH99B,EAAA0mB,OAeE,YA4HM4L,SAvKoB,WAC5B0I,GAAqD,GACrDrK,YAAW,WACP8J,GAA+B,KAChC,MAoKKvK,oCAAqCA,GAChCA,GAAuC,CAAE1K,UAAWjoB,EAAMioB,aAEnEtmB,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAW,mCAAkCs/B,EAA8B,YAAc,IACzFl+B,QAASk+B,OAA8BniC,EAzDZ,WACnCm+B,GAA+B,IAyDvB5a,MAAOke,EACPpF,SAAU8C,GAETsC,GAEJU,GACGv/B,IAAAA,cAAC68B,EAAAA,oBAAmB,CAChB58B,UAAU,0CACV68B,UAAU,YACVlY,QAAQ,cACRpd,OAAQ+0B,GAEPuC,MAUiDL,iwDCrRzDmC,EAA8E,SAACviC,GAChF,IAAAa,EAAwDb,EAAKa,QAApD2hC,EAA+CxiC,EAAKwiC,cAArCC,EAAgCziC,EAAKyiC,SAA3BC,EAAsB1iC,EAAK0iC,kBAE/DC,EAAehhC,IAAAA,aACjB,SAACkgB,GACG6gB,EAAkB7hC,EAASghB,EAAM2gB,KAErC,CAACE,EAAmB7hC,EAAS2hC,IAGjC,OAAIpa,EAAAA,gBAAgBC,YAAYoa,GACrB9gC,IAAAA,cAACihC,EAAAA,gBAAe,CAACtjB,YAAaze,EAAQ0e,QAAQD,YAAaujB,KAAMJ,EAAUE,aAAcA,IAG7FhhC,IAAAA,cAAA,OAAKC,UAAU,+IC7BnB,MAAMkhC,EAAQ,uCA+Bd,MAAMC,EA4JT3xB,YAAmB4xB,GArJZ,KAAAC,cAAwB,4BAQxB,KAAAC,mBAA6B,oCAQ7B,KAAAC,uBAAiC,sCAQjC,KAAAC,kBAA4B,qCAQ5B,KAAAC,SAAmB,GAQnB,KAAAC,eAAyB,GAQzB,KAAAC,yBAAmC,EAQnC,KAAAC,kBAA4B,EAQ5B,KAAAC,cAAwB,IAQxB,KAAAC,kBAA4B,QAQ5B,KAAAC,8BAAyD,KAQzD,KAAAC,yBAAoD,KAQpD,KAAAC,eAAwB,CAAEC,KAAM,GAAIC,QAAS,IAQ7C,KAAAC,mBAA8C,CACjDC,gBAAiB,cACjBruB,MAAO,UACPsuB,UAAW,MACXC,QAAS,OACTC,aAAc,SACdC,OAAQ,OACRC,WAAY,UACZC,SAAU,KACVC,UAAW,SACXC,WAAY,SACZC,WAAY,SACZC,QAAS,IACTC,OAAQ,OACRC,SAAU,SACVC,QAAS,IACTC,eAAgB,SAChBC,UAAW,QACXC,eAAgB,OAChBC,YAAa,OACbC,YAAa,SACbC,WAAY,UACZC,WAAY,SACZC,YAAa,QASV,KAAAC,QAAmC,GAgBtC1mC,KAAK0mC,QAAQC,QAAU,mDACvB3mC,KAAK0mC,QAAQE,eAAiB,UAC9B5mC,KAAK0mC,QAAQG,kBAAoB,yBACjC7mC,KAAK0mC,QAAQI,mBAAqB,mDAClC9mC,KAAK0mC,QAAQK,sBAAwB,oBACrC/mC,KAAK0mC,QAAQM,OAAS,UACtBhnC,KAAK0mC,QAAQO,QAAU,uCACvBjnC,KAAK0mC,QAAQQ,UAAY,mBAGzBlnC,KAAK0mC,QAAQS,UAAY,mDACzBnnC,KAAK0mC,QAAQU,UAAY,oBACzBpnC,KAAK0mC,QAAQW,MAAQ,yBAEjBlD,IACA/5B,EAAAA,EAAAA,IAAOpK,KAAMmkC,IC5JlB,MAAMmD,EAAb/0B,cAscqB,KAAAg1B,gBAAkB,CAC/BzgC,EACA0gC,EACAC,KAEA,IAAIC,EACAC,EACJ,MAAM1rB,EAAOjc,KAAK4nC,sBAAsB9gC,GACxC,IAAI+gC,EAAW,GACXC,EAAY,GAChB,OAAQ7rB,GACJ,IAAK,cACD6rB,EAAY,OAIhB,IAAK,2BACL,IAAK,YACL,IAAK,WACDD,EAAW,MACX,MACJ,IAAK,SACDA,EAAW,IACX,MACJ,IAAK,YACDA,EAAW,OACX,MACJ,IAAK,UACDA,EAAW,KAKnB,MAAMroB,EAAOuoB,EAAWC,eAAelhC,EAAS,OAAQ9G,KAAKioC,SAAS1D,mBAElE/kB,IACAsoB,GAAa,IAAItoB,KAGrB,MAAM0oB,EAAQH,EAAWC,eAAelhC,EAAS,QAAS9G,KAAKioC,SAAS1D,mBAexE,GAbI2D,IACAJ,GAAa,IAAII,KAIR,WAAT1oB,EACAqoB,EAAW,OACK,eAATroB,EACPqoB,EAAW,KACK,eAATroB,IACPqoB,EAAW,QAGVthC,EAAAA,EAAAA,IAAmBshC,GAAW,CAC/BH,EAAcJ,EAAYa,cAAcnoC,KAAKooC,cAAcj+B,cAAc09B,KACzE7gC,EAAAA,EAAAA,IAAS0gC,GAAalhC,EAAAA,EAAAA,IAAKshC,IAE3B,MAAMrkB,EAAQskB,EAAWC,eAAelhC,EAAS,QAAS9G,KAAKioC,SAAS1D,mBAEpE9gB,GACAikB,EAAYW,aAAa,QAAS5kB,GAGtC,MAAM7P,EAAKm0B,EAAWC,eAAelhC,EAAS,KAAMm9B,GAEhDrwB,GAAM5T,KAAKioC,SAASzD,UAGpBkD,EAAYW,aAAa,KAAMroC,KAAKioC,SAASzD,SAAW5wB,GAG/C,gBAATqI,IAGA0rB,EAAYD,EAAYY,YAAYhB,EAAYa,cAAcnoC,KAAKooC,cAAcj+B,cAAc,SAC/Fw9B,EAAUU,aAAa,QAAS,4FAChCV,EAAYA,EAAUW,YAAYhB,EAAYa,cAAcnoC,KAAKooC,cAAcj+B,cAAc,UAC7F7B,EAAAA,EAAAA,IAAIq/B,EAAW,UAAW,cAGtBH,EAAmBjC,eACnBvlC,KAAKuoC,gBAAgBtsB,EAAM0rB,EAAW,CAAEpC,aAAciC,EAAmBjC,eAGzEiC,EAAmBjC,aAAe,KAQtCkC,GAA0B,cAATxrB,IACjB0rB,EAAYD,EAAYY,YAAYhB,EAAYa,cAAcnoC,KAAKooC,cAAcj+B,cAAc,WAC/F7B,EAAAA,EAAAA,IAAIq/B,EAAW,cAAe,SAKlCr/B,EAAAA,EAAAA,IAAIo/B,EAAa,WAAY,WAC7Bp/B,EAAAA,EAAAA,IAAIo/B,EAAa,QAAS,QAG1B1nC,KAAKuoC,gBAAgBtsB,EAAMyrB,EAAaF,GAG5C,MAAO,CAAEgB,UAAWd,EAAcC,UAAWA,GAA0BD,IA5anE,gCAAgCe,GACpC,IAAIrC,EAAiB,GACrB,MAAMsC,EAAQD,EAAmB97B,MAAM,OAGvC,IAAK,MAAMlM,KAASioC,EAEhB,OAAQjoC,GACJ,IAAK,OACL,IAAK,cACL,IAAK,gBACL,IAAK,aACD2lC,EAAiB,OAK7B,IAAK,MAAM3lC,KAASioC,EAChB,OAAQjoC,GACJ,IAAK,OACL,IAAK,cACL,IAAK,gBACL,IAAK,aACD,MACJ,IAAK,cACD2lC,GAAkB,gBAClB,MACJ,QACIA,GAAkB,IAAI3lC,IAIlC,OAAO+F,EAAAA,EAAAA,IAAK4/B,GAYR,uBAAuBrvB,GAC3B,IAAI4xB,EAAc5xB,EAIlB,IAFAA,EAAQA,EAAMrD,eAEJjN,WAAW,QAAS,CAC1B,MAAMiiC,EAAQpB,EAAYsB,UAAUn8B,KAAKsK,GAEzC,GAAI2xB,GAA0B,IAAjBA,EAAM1iC,OAAc,CAC7B,MAAM6iC,EAAMH,EAAM,GACZI,EAAQJ,EAAM,GACdK,EAAOL,EAAM,GACbM,EAAQ5rB,OAAOC,SAASqrB,EAAM,GAAI,IAExCC,GAAcpkC,EAAAA,EAAAA,IAAO,wBAAyBskC,EAAKC,EAAOC,EAAM38B,KAAK68B,MAAe,IAARD,EAAe,KAAO,WAEnG,GAAIjyB,EAAMtQ,WAAW,MAAyB,IAAjBsQ,EAAM/Q,OAAc,CACpD,MAAM6iC,EAAMzrB,OAAOC,SAAStG,EAAMmyB,OAAO,EAAG,GAAI,IAC1CJ,EAAQ1rB,OAAOC,SAAStG,EAAMmyB,OAAO,EAAG,GAAI,IAC5CH,EAAO3rB,OAAOC,SAAStG,EAAMmyB,OAAO,EAAG,GAAI,IAC3CF,EAAQ5rB,OAAOC,SAAStG,EAAMmyB,OAAO,EAAG,GAAI,IAElDP,GAAcpkC,EAAAA,EAAAA,IAAO,wBAAyBskC,EAAKC,EAAOC,EAAM38B,KAAK68B,MAAe,IAARD,EAAe,KAAO,UAC3F1B,EAAY6B,kBAAkBpyB,KACrC4xB,EAAcrB,EAAY6B,kBAAkBpyB,IAGhD,OAAO4xB,EAQH,qBAAqB7hC,GAOzB,OALAwB,EAAAA,EAAAA,IAAIxB,EAAS,mBAAoBwgC,EAAY6B,kBAAkBC,cAC/D9gC,EAAAA,EAAAA,IAAIxB,EAAS,SAAU,MACvBwB,EAAAA,EAAAA,IAAIxB,EAAS,SAAU,MACvBwB,EAAAA,EAAAA,IAAIxB,EAAS,UAAW,MACxBwB,EAAAA,EAAAA,IAAIxB,EAAS,SAAU,KAChBA,EAOJuiC,iBAAiBjB,GACpBpoC,KAAKooC,cAAgBA,EASlBkB,+BAA+BC,GAClC,QACmB,OAAfA,GACEvpC,KAAKioC,SAASlD,0BACZwE,EAAWj+B,QAAUtL,KAAKioC,SAASlD,yBAAyBz5B,OAC5Di+B,EAAW/9B,SAAWxL,KAAKioC,SAASlD,yBAAyBv5B,UAEjExL,KAAKioC,SAASlD,yBAA2B,CACrCz5B,MAAOi+B,EAAWj+B,MAClBE,OAAQ+9B,EAAW/9B,SAGhB,GAURg+B,YACH,OAAOxpC,KAAKmnB,UAAYnnB,KAAKmnB,OAAOnhB,OAMjCyjC,qBACHzpC,KAAK0pC,cAAgB,GAQlBC,oBAAoBC,GACvB,MAAMC,EAAa7pC,KAAK8pC,2BAA2BF,GAG7CG,EAAsB/pC,KAAK0pC,cAAgB1pC,KAAK0pC,cAAc1jC,OAAS,EAG7E,GAAI+jC,KAFqBF,EAAaA,EAAW7jC,OAAS,GAKtD,OAFAhG,KAAKgqC,kBAAoBJ,EACzB5pC,KAAK0pC,cAAgBG,GACd,EAGX,GAAI7pC,KAAK0pC,cACL,IAAK,IAAIpjC,EAAQ,EAAGA,EAAQyjC,EAAqBzjC,IAC7C,GAAItG,KAAK0pC,cAAcpjC,GAAOsjC,OAASC,EAAWvjC,GAAOsjC,KAGrD,OAFA5pC,KAAKgqC,kBAAoBJ,EACzB5pC,KAAK0pC,cAAgBG,GACd,EAKnB,OAAO,EAQJI,QAAQL,GACX,IAAIM,EAAsB,GAEtBlqC,KAAKgqC,oBAAsBJ,GAC3B5pC,KAAK2pC,oBAAoBC,GAI7B,MAAMnC,EAAyE,aAAzDM,EAAWC,eAAehoC,KAAKmqC,KAAM,QAASlG,GAC9DmG,EAA0BpqC,KAAKqqC,OAASrqC,KAAKqqC,OAAOC,uBAAuBtqC,KAAKioC,SAAS7D,cAAe,UAAY,GAE1H,IAAK,MAAMmG,KAAUH,EAAS,CAC1B,MAAMI,EAAWzC,EAAWC,eAAeuC,EAAQ,KAAMtG,GACnDwG,EAAcF,EAAO9qB,aAAa,oBAExC,GAAIgrB,GAAeD,EAAU,CACzB,MAAM9C,EAAc1nC,KAAK0qC,WAAWH,EAAQvqC,KAAKioC,SAAS9C,mBAAoBsC,EAAemC,EAAM5pC,KAAKunC,iBAExG,GAAIG,EAAYc,WAAad,EAAYC,UAAW,CAChD,MAAMA,EAAYD,EAAYC,UACxBa,EAAYd,EAAYc,UAK9B,IAAK,MAAMtrB,KAASld,KAAKmnB,OACrB,GAAIjK,EAAMpW,SACF9G,KAAK2qC,YAAYztB,EAAMpW,QAAS2jC,EAAc,GAAKD,GAAW,CAC9D,MAAMI,EAAc5qC,KAAK6qC,OACrB3tB,EAAMpW,QACN4gC,EAAYoD,oBACZrD,EACAmC,EACA5pC,KAAKunC,iBAET,IAAIwD,EAA0BH,EAAYI,cAErCJ,EAAYK,sBAAuBF,IAAYvkC,EAAAA,EAAAA,KAAKK,EAAAA,EAAAA,IAAQkkC,IAAU/kC,SACvE+kC,EAAU,MAGVA,GACApD,EAAUW,YAAYyC,GAMtC,MAAMG,EAA+D,WAAlD1C,EAAU/oB,aAAa,wBAEtCyrB,GAAcvD,EAAUwD,SAASnlC,UAC7BklC,GAEA1C,EAAU4C,gBAAgB,uBAG9BlB,EAAKxiC,KAAK8gC,MAO1B,GAAI0B,EAAKlkC,OAAQ,CACb,MAAMqlC,EAAMrrC,KAAK0qC,WAAW1qC,KAAKsrC,oBAAqB,CAAEtF,SAAU,SAAUC,QAAS,MAAO,EAAO2D,EAAM5pC,KAAKunC,iBAE9G,IAAK,MAAMgE,KAAOrB,EACdmB,EAAI1D,UAAWW,YAAYiD,GAG/BrB,EAAO,GACPA,EAAKxiC,KAAK2jC,EAAI7C,WAGlB,OAAO0B,EASHJ,2BAA2BF,GAC/B,OAAO5pC,KAAKmnB,OAAOsB,QAAOvL,IACfA,EAAMpW,SAAU9G,KAAKwrC,oBAAoBtuB,EAAMpW,QAAS8iC,KAU/D4B,oBAAoB1kC,EAAkB8iC,GAC1C,OACKxsB,OAAOC,SAASvW,EAAQ2Y,aAAa,mBAAqB,KAAO,IAAMmqB,GACxEA,GAAQxsB,OAAOC,SAASvW,EAAQ2Y,aAAa,iBAAmB,KAAO,GAavEirB,WACJ5jC,EACA2kC,EACAhE,EACAmC,EACA8B,GAEA,IAAIhE,EACAiE,EAEJ,GAAI3rC,KAAKwrC,oBAAoB1kC,EAAS8iC,GAAO,CACzC,MAAMgC,EAAM5rC,KAAK4nC,sBAAsB9gC,GAIvC,GAFA6kC,EAAmB3rC,KAAK6rC,qBAAqB/kC,EAAS2kC,EAAmBG,EAAKhC,GAE7C,SAA7B+B,EAAiBrG,QAAoB,CAKrC,OAFAoC,EAAcgE,EAAW5kC,EAFE9G,KAAK8rC,uBAAuBH,EAAkBC,GAEnBnE,GAE/C,CACHe,UAAWd,EAAYc,UACvBb,UAAWD,EAAYC,UACvBmD,oBAAqB9qC,KAAK+rC,wBAAwBJ,KAK9D,MAAO,CAAEnD,UAAW,KAAMb,UAAW,KAAMmD,oBAAqB,MA8H5DvC,gBAAgByD,EAAiBllC,EAAsB0gC,GAC3D,IAAK,MAAMh/B,KAASg/B,EACZA,EAAmBh/B,IACnBxI,KAAKisC,YAAYnlC,EAASklC,EAASxjC,EAAOg/B,EAAmBh/B,IAgBjEqiC,OACJ/jC,EACA2kC,EACAhE,EACAmC,EACA8B,GACgC,IAE5BlD,EAFJ0D,EAAAnmC,UAAAC,OAAA,QAAA9F,IAAA6F,UAAA,IAAAA,UAAA,GAGIklC,GAAsB,EAEtBvD,EAAc1nC,KAAK0qC,WAAW5jC,EAAS2kC,EAAmBhE,EAAemC,EAAM8B,GAEnF,GAA8B,OAA1BhE,EAAYc,UAAoB,CAChC,MAAMoD,EAAM5rC,KAAK4nC,sBAAsB9gC,GAEvC0hC,EAAYd,EAAYc,UACxB,IAAIb,EAAYD,EAAYC,UAE5B,IAAK,MAAMwE,KAAS5kC,EAAAA,EAAAA,IAAsBT,EAAQslC,YAC9C,GAAID,EAAME,WAAaC,KAAKC,mBAErB,GAAIJ,EAAME,WAAaC,KAAKE,UAC/B7E,EAAWW,YAAYvgC,SAAS0kC,eAAsBN,EAAO5qC,OAEzDkmC,GAAyB,cAARmE,IACjBX,GAAsB,OAEvB,CACH,IAAIyB,EAAqBjF,EACzB,MAAMkF,EAAY5E,EAAWC,eAAwBmE,EAAO,QAASlI,GAEjE0I,IACAD,EAAmC,aAAdC,GAGzB,MAAMC,EAAc5sC,KAAK6qC,OACZsB,EACTzE,EAAYoD,oBACZ4B,EACA9C,EACA8B,GACA,GAGJT,EAAsBA,GAAuB2B,EAAY3B,oBAErD2B,EAAY5B,eACZrD,EAAWW,YAAYsE,EAAY5B,eAM/C,IAAKkB,EAAiB,CAClB,IAAIW,EAAoB/lC,EAAQgmC,WAEhC,KAAoB,OAAbD,GAAqBA,EAASR,WAAaC,KAAKS,cAAgBF,IAAa7sC,KAAKgtC,OACrFtF,EAAc1nC,KAAK0qC,WAAWmC,EAAUpB,EAAmBhE,EAAemC,EAAM8B,GAC5EhE,EAAYc,YACZb,EAAYD,EAAYC,UACxBA,EAAWW,YAAYE,GACvBA,EAAYd,EAAYc,UAK5BqE,EAAoBA,EAASC,YAKzC,MAAO,CAAE9B,cAAexC,EAAYyC,oBAAAA,GAYhCY,qBACJ/kC,EACA2kC,EACAO,EACApC,GAGA,MAAM+B,GAAmBvhC,EAAAA,EAAAA,IAAO,GAAIqhC,IAGpCrhC,EAAAA,EAAAA,IAAOuhC,EAAkB3rC,KAAKitC,cAAc7vB,OAAOC,SAASvW,EAAQ2Y,aAAa,iBAAmB,MAGpG,MAAMytB,EAAOpmC,EAAQwjC,uBAAuBtqC,KAAKioC,SAAS7D,cAAe,OAEzE,IAAK,MAAM+I,KAAO5lC,EAAAA,EAAAA,IAAgB2lC,GAC1BltC,KAAKwrC,oBAA6B2B,EAAKvD,IACvC7B,EAAWqF,kBAAkBptC,KAAKioC,SAAU0D,EAA2BwB,GAI/E,GAAgB,WAAZnB,GAAwD,WAAhCL,EAAiB9F,WAAyB,CAMlE,MAAMwH,EAAYrtC,KAAKstC,qBAAqBxmC,EAAS9G,KAAK+rC,wBAAwBJ,GAAmB/B,EAAM,IAEvGyD,IACA1B,EAAiB,uBAAyB0B,GAIlD,OAAO1B,EASHG,uBAAuBH,EAA2CK,GACtE,MAAMxE,EAA8C,GAIhDmE,EAAiBnG,QAAUxlC,KAAKutC,mBAAmBvB,EAAS,YAC5DxE,EAAmBhC,OAASmG,EAAiBnG,QAK7CmG,EAAiB50B,OAAS/W,KAAKutC,mBAAmBvB,EAAS,WAC3DxE,EAAmBzwB,MAAQ40B,EAAiB50B,OAGhD,IAAK,MAAMvO,KAASmjC,EACZ3rC,KAAKutC,mBAAmBvB,EAASxjC,KACjCg/B,EAAmBh/B,GAASmjC,EAAiBnjC,IAIrD,OAAOg/B,EAYH+F,mBAAmBvB,EAAiBxjC,GACxC,OAAQA,GACJ,IAAK,kBACL,IAAK,UACL,IAAK,aACD,MAAO,mFAAmFpB,SAAS4kC,GAIvG,IAAK,aACL,IAAK,WACL,IAAK,YACL,IAAK,aACD,MAAO,2BAA2B5kC,SAAS4kC,GAE/C,IAAK,QACL,IAAK,iBACL,IAAK,cACL,IAAK,aACD,MAAO,oBAAoB5kC,SAAS4kC,GAExC,IAAK,YACL,IAAK,cACD,MAAO,2BAA2B5kC,SAAS4kC,GAE/C,IAAK,eACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,iBACL,IAAK,cACL,IAAK,SACD,MAAO,uCAAuC5kC,SAAS4kC,GAE3D,IAAK,SACD,MAAO,+CAA+C5kC,SAAS4kC,GAEnE,IAAK,sBACL,IAAK,aACL,IAAK,YACD,MAAO,SAAS5kC,SAAS4kC,GAE7B,QACI,OAAO,GAWXD,wBAAwBJ,GAC5B,MAAMF,EAA6C,GAEnD,IAAK,MAAMjjC,KAASmjC,EAChB,GAAIA,EAAiBhhC,eAAenC,GAChC,OAAQA,GACJ,IAAK,kBACL,IAAK,sBACL,IAAK,UACL,IAAK,eACL,IAAK,SACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,iBACL,IAAK,cACL,IAAK,cACL,IAAK,SACD,MACJ,QACIijC,EAAkBjjC,GAASmjC,EAAiBnjC,GAK5D,OAAOijC,EAYH6B,qBAAqBxmC,EAAkB2kC,EAA4C7B,EAAcnpC,GACrG,IAAK,MAAM0rC,KAAS5kC,EAAAA,EAAAA,IAAyBT,EAAQslC,YACjD,GAAID,EAAME,WAAaC,KAAKS,aAAc,CAGtC,GAAY,cAFA/sC,KAAK4nC,sBAAsBuE,GAEd,CACrB,MAAMR,EAAmB3rC,KAAK6rC,qBAAqBM,EAAOV,EAAmB,YAAa7B,GACpFlE,EAAWiG,EAAiBjG,SAE9BA,IACAjlC,IAAUA,EAAQ,IAAM,IAAMilC,GAGlCjlC,EAAQT,KAAKstC,qBAAqBnB,EAAOnsC,KAAK+rC,wBAAwBJ,GAAmB/B,EAAMnpC,IAK3G,OAAOA,EAUHkqC,YAAY7jC,EAAkB0jC,GAGlC,IAAKA,EACD,OAAO,EAGX,MAAMgD,EAAazF,EAAWC,eAAelhC,EAAS,SAAU9G,KAAKioC,SAAS7D,eAI9E,GAAIoJ,IAAehD,EACf,OAAO,EAGX,IAAKgD,EAAY,CAIb,IAAIX,EAAoB/lC,EAAQgmC,WAEhC,KAAoB,OAAbD,GAAqBA,EAASR,WAAaC,KAAKS,cAAc,CACjE,MAAMn5B,EAAK5T,KAAKytC,aAAaZ,GAC7B,GAAIj5B,EACA,OAAOA,IAAO42B,EAElBqC,EAAoBA,EAASC,WAKjC,IAAK,MAAMY,KAAQnmC,EAAAA,EAAAA,IAAgBT,EAAQuB,qBAAqB,MAC5D,GAAIrI,KAAKytC,aAAsBC,KAAUlD,EACrC,OAAO,EAMnB,OAAO,EAQHiD,aAAa3mC,GACjB,IAAI0jC,EAUJ,OARI1jC,EAAQulC,WAAaC,KAAKS,cAAgBjmC,EAAQ6mC,eAAiB3tC,KAAKioC,SAAS7D,gBAE7EoG,EADwC,WAAxCzC,EAAW6F,gBAAgB9mC,GAChBihC,EAAWC,eAAelhC,EAAS,KAAMm9B,GAEzC8D,EAAWC,eAAelhC,EAAS,SAAU9G,KAAKioC,SAAS7D,gBAIvEoG,EAQH5C,sBAAsB9gC,GAC1B,MAAMklC,EAAUjE,EAAW6F,gBAAgB9mC,GACrC+mC,EAAY/mC,EAAQ6mC,aAE1B,OAAIE,IAAc7tC,KAAKioC,SAAS7D,cACrB,QAAQ4H,IAGD,iCAAd6B,EACO7B,EAGJ,GAWHC,YAAYnlC,EAAsBklC,EAAiBxjC,EAAe/H,GACtE,IAAIqtC,EAAcrtC,EAElB,OAAQ+H,GACJ,IAAK,QACL,IAAK,kBAGD,OAFAslC,EAAcxG,EAAYyG,gBAAgBttC,QAC1C6H,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,YACL,IAAK,UAGD,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,eAED,OAAQrtC,GACJ,IAAK,SACDqtC,EAAc,MACd,MACJ,IAAK,SACDA,EAAc,SACd,MACJ,IAAK,QACDA,EAAc,SAItB,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS,iBAAkBgnC,GAInC,IAAK,SAAU,CACX,IAAIxiC,EACAE,EAEJ,GAAc,SAAV/K,EAAkB,CAElB,MAAMutC,EAASvtC,EAAMkM,MAAM,OAEL,IAAlBqhC,EAAOhoC,SACPsF,EAAQtL,KAAKiuC,gBAAgBD,EAAO,IAAI,GACxCxiC,EAASxL,KAAKiuC,gBAAgBD,EAAO,IAAI,IAsBjD,OAlBK1iC,IACDA,EAAQ,IAAItL,KAAKioC,SAASnD,8BACpB9kC,KAAKioC,SAASnD,8BAA8Bx5B,MAC5CtL,KAAKioC,SAASlD,yBAA0Bz5B,OAC5ChM,eACFkM,EAAS,IAAIxL,KAAKioC,SAASnD,8BACrB9kC,KAAKioC,SAASnD,8BAA8Bt5B,OAC5CxL,KAAKioC,SAASlD,yBAA0Bv5B,QAC5ClM,iBAGNgJ,EAAAA,EAAAA,IAAIxB,EAAS,WAAY,aACzBwB,EAAAA,EAAAA,IAAIxB,EAAS,QAASwE,IACtBhD,EAAAA,EAAAA,IAAIxB,EAAS,YAAawE,IAC1BhD,EAAAA,EAAAA,IAAIxB,EAAS,YAAawE,IAC1BhD,EAAAA,EAAAA,IAAIxB,EAAS,SAAU0E,IACvBlD,EAAAA,EAAAA,IAAIxB,EAAS,aAAc0E,QAC3BlD,EAAAA,EAAAA,IAAIxB,EAAS,aAAc0E,GAI/B,IAAK,aAWD,OAVIxL,KAAKioC,SAASvB,SAAW1mC,KAAKioC,SAASvB,QAAQjmC,KAC/CqtC,EAAc9tC,KAAKioC,SAASvB,QAAQjmC,IAG1B,cAAVA,IAEA6H,EAAAA,EAAAA,IAAIxB,EAAS,cAAe,mBAGhCwB,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,WAAY,CACb,MAAMpF,EAAQjoC,EAAMkM,MAAM,OAGpBuhC,EAAOxF,EAAM1iC,OAAS,EAAI0iC,EAAM,GAAKA,EAAM,GAMjD,OAHAoF,EAAc9tC,KAAKmuC,mBAAmBD,GAAM,EAAO,IAAkB,gBAAZlC,QAEzD1jC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,YACL,IAAK,aAGD,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,aAMD,OAHAA,EAAwB,WAAVrtC,EAAqBA,EAAQT,KAAKmuC,mBAAmB1tC,GAAO,QAE1E6H,EAAAA,EAAAA,IAAIxB,EAAS,cAAegnC,GAIhC,IAAK,sBAAuB,CACxB,MAAMM,EAAS3tC,EAAMkM,MAAM,KAC3B,IAAIoS,GAAO,EAEX,IAAK,MAAM2mB,KAAY0I,EAInB,GAFAN,EAAc9tC,KAAKmuC,mBAAmBzI,GAAU,GAE5CoI,GAAeA,EAAY70B,QAAQ,QAAU60B,EAAY9nC,OAAS,EAAG,CACrE,MAAMwF,EAAS4R,OAAOixB,WAAWP,EAAY5E,OAAO,EAAG4E,EAAY9nC,OAAS,KAEvEsoC,MAAM9iC,IAAWA,EAASuT,IAC3BA,EAAMvT,GASlB,YAJIuT,GAAO,IACPzW,EAAAA,EAAAA,IAAIxB,EAAS,cAAe,GAAGiY,QAMvC,IAAK,SACD,GAAc,SAAVte,EAAkB,CAElB,MAAMutC,EAASvtC,EAAMkM,MAAM,OAEL,IAAlBqhC,EAAOhoC,UACPsC,EAAAA,EAAAA,IAAIxB,EAAS,WAAY,aACzBwB,EAAAA,EAAAA,IAAIxB,EAAS,OAAQ9G,KAAKiuC,gBAAgBD,EAAO,IAAI,KACrD1lC,EAAAA,EAAAA,IAAIxB,EAAS,MAAO9G,KAAKiuC,gBAAgBD,EAAO,IAAI,KAI5D,OAGJ,IAAK,UAGD,YADA1lC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,UAAW,CACZ,MAAMS,GAAcnjC,EAAAA,EAAAA,IAActE,GAG5B4hC,EAAQjoC,EAAMkM,MAAM,OAC1B,IAAI6hC,EACAC,EACAC,EACAC,EAGJ,OAAQjG,EAAM1iC,QACV,KAAK,EAEDwoC,EAAQxuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CE,EAASzuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAM6F,GAC9CT,GAAcvpC,EAAAA,EAAAA,IAAO,kBAAmBiqC,EAAOC,GAC/C,MACJ,KAAK,EAEDD,EAAQxuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CE,EAASzuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAM6F,GAC9CT,GAAcvpC,EAAAA,EAAAA,IAAO,kBAAmBiqC,EAAOC,GAC/C,MACJ,KAAK,EAEDD,EAAQxuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CE,EAASzuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAM6F,GAC9CG,EAAQ1uC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CT,GAAcvpC,EAAAA,EAAAA,IAAO,kBAAmBiqC,EAAOC,EAAQC,GACvD,MACJ,KAAK,EAEDF,EAAQxuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CE,EAASzuC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAM6F,GAC9CG,EAAQ1uC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAO6F,GAC9CI,EAAQ3uC,KAAKiuC,gBAAgBvF,EAAM,IAAI,EAAM6F,GAC7CT,GAAcvpC,EAAAA,EAAAA,IAAO,kBAAmBiqC,EAAOC,EAAQC,EAAOC,GActE,OAVArmC,EAAAA,EAAAA,IAAIxB,EAAS,aAAc,eAI3BwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,UAC7BwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,oBAI7BwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgBgnC,GAUjC,IAAK,YAED,OAAQrtC,GACJ,IAAK,QACDqtC,EAAc,OACd,MACJ,IAAK,MACDA,EAAc,QAItB,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS,aAAcgnC,GAI/B,IAAK,iBAGD,OAFAA,EAAcxG,EAAYsH,yBAAyBnuC,QACnD6H,EAAAA,EAAAA,IAAIxB,EAAS,kBAAmBgnC,GAIpC,IAAK,cAAe,CAChB,MAAMe,GAAevmC,EAAAA,EAAAA,IAAIxB,EAAS,SAElC,YADAwB,EAAAA,EAAAA,IAAIxB,EAAS,cAAe9G,KAAK8uC,sBAAsBhB,EAAae,IAIxE,IAAK,cAGD,OAAQpuC,GACJ,IAAK,eACDqtC,EAAc,gBAGtB,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS,eAAgBgnC,GAIjC,IAAK,aAGD,YADAxlC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,IAAK,cAED,OAAQrtC,GACJ,IAAK,KACL,IAAK,OAID,OAHA6H,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,kBAC7BwB,EAAAA,EAAAA,IAAIxB,EAAS,uBAAwB,sBACrCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,SAGjC,IAAK,KACL,IAAK,OAID,OAHAwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,kBAC7BwB,EAAAA,EAAAA,IAAIxB,EAAS,uBAAwB,sBACrCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,SAGjC,IAAK,OAMD,OALAwB,EAAAA,EAAAA,IAAIxB,EAAS,mBAAoB,YACjCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,gBAC7BwB,EAAAA,EAAAA,IAAIxB,EAAS,2BAA4B,YACzCwB,EAAAA,EAAAA,IAAIxB,EAAS,uBAAwB,oBACrCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,SAGjC,IAAK,KACL,IAAK,OAMD,OALAwB,EAAAA,EAAAA,IAAIxB,EAAS,mBAAoB,YACjCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,gBAC7BwB,EAAAA,EAAAA,IAAIxB,EAAS,2BAA4B,YACzCwB,EAAAA,EAAAA,IAAIxB,EAAS,uBAAwB,oBACrCwB,EAAAA,EAAAA,IAAIxB,EAAS,eAAgB,SAIrC,OAGJ,IAAK,aAED,YADAwB,EAAAA,EAAAA,IAAIxB,EAAS,cAAyB,WAAVrG,EAAqB,SAAqB,QAAVA,EAAkB,MAAQ,UAI1F,IAAK,SAED,YADA6H,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,GAIxB,SACIxlC,EAAAA,EAAAA,IAAIxB,EAAS0B,EAAOslC,IAYxBG,gBAAgBc,EAAmBzjC,EAAgBijC,GACvD,IAAIS,EAAWD,EAEf,GAAIA,EAAW,CACX,MAAME,EAAOF,EAAUG,OAAOH,EAAU/oC,OAAS,GAGjD,GAAa,MAATipC,GAAyB,MAATA,EAAc,CAC9B,MAAME,EAAYnvC,KAAKioC,SAASnD,8BAC1B9kC,KAAKioC,SAASnD,8BACd9kC,KAAKioC,SAASlD,yBACd/+B,EAASoX,OAAOixB,WAAWU,EAAU7F,OAAO,EAAG6F,EAAU/oC,OAAS,IACxE,IACIvF,EADA2uC,EAAgB9jC,EAAQ6jC,EAAW7jC,MAAQ6jC,EAAW3jC,OAG1D,GAAa,MAATyjC,EAAc,CAGdxuC,EAASuF,EAASopC,GAFD9jC,EAAQtL,KAAKioC,SAASjD,eAAeE,QAAUllC,KAAKioC,SAASjD,eAAeC,UAG7E,MAATgK,IAEHV,IACAa,EAAgB9jC,EAAQijC,EAAYjjC,MAAQijC,EAAY/iC,QAK5D/K,EAAS2uC,EAAgBppC,EAAU,KAIvCvF,EAAQ2L,KAAK68B,MAAe,GAATxoC,GAAe,GAClCuuC,EAAW,GAAGvuC,OAItB,OAAOuuC,EAWHb,mBAAmBY,EAAmBzjC,GAAkE,IAAlD+jC,EAAAtpC,UAAAC,OAAA,QAAA9F,IAAA6F,UAAA,GAAAA,UAAA,GAAsB,EAAGupC,EAAAvpC,UAAAC,OAAA,QAAA9F,IAAA6F,UAAA,IAAAA,UAAA,GAC/EipC,EAAWD,EAEf,GAAIA,EAAW,CACX,MAAME,EAAOF,EAAUG,OAAOH,EAAU/oC,OAAS,GAGjD,GAAa,MAATipC,GAAiBK,GAAqB,MAATL,EAAe,CAC5C,MAAME,EAAYnvC,KAAKioC,SAASnD,8BAC1B9kC,KAAKioC,SAASnD,8BACd9kC,KAAKioC,SAASlD,yBAIpB,IAAItkC,EAHW2c,OAAOixB,WAAWU,EAAU7F,OAAO,EAAG6F,EAAU/oC,OAAS,KAClDsF,EAAQ6jC,EAAW7jC,MAAQ6jC,EAAW3jC,SAC3CF,EAAQtL,KAAKioC,SAASjD,eAAeE,QAAUllC,KAAKioC,SAASjD,eAAeC,MAGhF,MAATgK,IAEAxuC,GAAS,KAIbA,EAAQ2L,KAAK8S,MAAMze,EAAQ4uC,EAAc,IAAM,GAE/CL,EAAW,GAAGvuC,OAItB,OAAOuuC,EASHF,sBAAsBzI,EAAqBwI,GAC/C,IAAIU,EAAa,OAEjB,KAAKhpC,EAAAA,EAAAA,IAAmB8/B,IAAgC,SAAhBA,EAAwB,CAC5D,IAAIqC,EAAkBrC,EAAY15B,MAAM,OACpCoK,EAAgB,GAChBy4B,EAAoB,GACpBC,EAAe,GAEnB,GAAqB,IAAjB/G,EAAM1iC,OACN+Q,EAAQ83B,EACRW,EAAY9G,EAAM,GAClB+G,EAAO,QACJ,GAAqB,IAAjB/G,EAAM1iC,OACb+Q,EAAQ2xB,EAAM,GACd8G,EAAY9G,EAAM,GAClB+G,EAAO/G,EAAM,QACV,GAAqB,IAAjBA,EAAM1iC,OAAc,CAC3B,MAAM0pC,EAAYhH,EAAM,GAAGwG,OAAO,GAE9BQ,GAAa,KAAOA,GAAa,KACjC34B,EAAQ83B,EACRW,EAAY9G,EAAM,GAClB+G,EAAO/G,EAAM,KAEb3xB,EAAQ2xB,EAAM,GACd8G,EAAY9G,EAAM,GAClB+G,EAAO,IAYf,GALAA,EAAOzvC,KAAKmuC,mBAAmBsB,GAAM,EAAO,KAC5CD,EAAYxvC,KAAKmuC,mBAAmBqB,GAAW,EAAO,KAEtD9G,EAAkBpB,EAAYqI,YAAYljC,KAAK+iC,GAE3C9G,GAA0B,IAAjBA,EAAM1iC,OAAc,CAC7B,MAAMsF,EAAQc,KAAK68B,MAAM7rB,OAAOixB,WAAW3F,EAAM,KAC3CkH,EAAQlH,EAAM,GAEpB6G,EAAa,GAEb,IAAK,IAAIM,GAAKvkC,EAAOukC,GAAKvkC,EAAOukC,IAC7B,IAAK,IAAIC,GAAKxkC,EAAOwkC,GAAKxkC,EAAOwkC,IACnB,IAAND,GAAiB,IAANC,IACXP,IAAchrC,EAAAA,EAAAA,IAAO,0BAA2BsrC,EAAGC,EAAGL,EAAMnI,EAAYyG,gBAAgBh3B,GAAQ64B,IAKxGL,IACAA,EAAaA,EAAWrG,OAAO,EAAGqG,EAAWvpC,OAAS,KAKlE,OAAOupC,GAx4CajI,EAAAqI,YAAsB,wBAStBrI,EAAAsB,UAAoB,gFASpBtB,EAAA6B,kBAA6C,CACjEC,YAAa,gBACb2G,MAAO,gBACPC,OAAQ,sBACRC,KAAM,sBACNC,MAAO,sBACPC,OAAQ,kBACRtH,IAAK,kBACLuH,OAAQ,oBACRC,QAAS,oBACTC,QAAS,oBACTxH,MAAO,kBACPyH,KAAM,kBACNC,MAAO,oBACPC,OAAQ,oBACRC,KAAM,kBACN3H,KAAM,kBACN4H,KAAM,oBACNC,KAAM,oBACNC,KAAM,qBChGP,MAAMC,EA4CTv+B,YAAmBw+B,EAAyBC,GACxChxC,KAAKykC,eAAiBsM,EACtB/wC,KAAK4kC,cAAgBoM,EAQlBC,MAAMC,GACT,IAAKA,EACD,OAAO,EAGX,MAAMC,EAAeL,EAAeM,kBAAkB3kC,KAAKykC,GAE3D,GAAIC,GAAgBA,EAAanrC,OAAS,EAAG,CACzC,MAAMqrC,EAA+C,GAAvCj0B,OAAOC,SAAS8zB,EAAa,GAAI,IAAW,GACpDG,EAAiD,GAAvCl0B,OAAOC,SAAS8zB,EAAa,GAAI,IAC3CI,EAAUn0B,OAAOC,SAAS8zB,EAAa,GAAI,IACjD,IAAIK,EAAa,EAUjB,OARIL,EAAa,KACbK,EAAkD,IAArCp0B,OAAOixB,WAAW8C,EAAa,KAG5CA,EAAa,KACbK,EAAaplC,KAAK68B,MAAM7rB,OAAOixB,WAAW8C,EAAa,IAAMnxC,KAAKyxC,uBAAuB,OAGxD,KAA7BJ,EAAQC,EAAUC,GAAkBC,EAGhD,MAAME,EAAeZ,EAAea,kBAAkBllC,KAAKykC,GAE3D,OAAIQ,GAAgBA,EAAa1rC,OAAS,EAC/BoG,KAAK68B,MAAM7rB,OAAOixB,WAAWqD,EAAa,IAAM1xC,KAAKyxC,uBAAuBC,EAAa,KAG7F,EAQHD,uBAAuBG,GAC3B,OAAQA,GACJ,IAAK,IACD,OAAO,KACX,IAAK,KACD,OAAO,EACX,IAAK,IACD,OAAO,IACX,IAAK,IACD,OAAO,IACX,IAAK,IACD,OAAO,IAAO5xC,KAAKykC,eACvB,IAAK,IACD,OAAO,IAAOzkC,KAAK4kC,cACvB,QACI,OAAO,IAhGKkM,EAAAM,kBAA4B,sDAU5BN,EAAAa,kBAA4B,8BCSjD,MAAM5J,EAyBF,uBAAuB2F,GAE1B,OAAiBA,EAAMmE,WAAmBnE,EAAMoE,SAY7C,sBAAsBhrC,EAAkBmV,EAAc81B,GACzD,IAAIjxC,EAASgG,EAAQkhC,eAAe+J,EAAW91B,GAE/C,IAAKnb,EAED,IAAK,MAAMkxC,KAAazqC,EAAAA,EAAAA,IAAgBT,EAAQkqB,YAE5C,GAAUghB,EAAWH,YAAc51B,GAAQ+1B,EAAUC,mBAAyBD,EAAWtrC,UAAYqrC,EAAW,CAE5GjxC,EAAekxC,EAAWvxC,MAC1B,MAKZ,OAAOK,EASJ,aAAaoxC,EAA2B/N,GAC3C+N,EAAuC,iBAAjBA,EAA4BnK,EAAWoK,UAAUD,GAAgBA,EAEvF,MAAME,EAAc,IAAI9K,EASxB,GANA8K,EAAYnK,SAAW,IAAI/D,EAAaC,GACxCiO,EAAYjI,KAAOpC,EAAWsK,YAAYH,EAAcE,GACxDA,EAAYpF,KAAOjF,EAAWuK,4BAA4BF,EAAYjI,KAAM,OAAQiI,EAAYnK,SAAS7D,eACzGgO,EAAYjrB,OAAS,GACrBirB,EAAYnF,cAAgB,GAExBmF,EAAYpF,KAAM,CAElBjF,EAAWwK,cAAcH,GAGzB,MAAMI,EAAOzK,EAAW0K,eAAeL,GAEjCM,EACF3K,EAAWC,eAAeoK,EAAYjI,KAAM,WAAYiI,EAAYnK,SAAS3D,yBAA2B,QAE5G,GAAI8N,EAAYnK,SAASpD,kBAAkBz9B,SAASsrC,GAAW,CAE3D3K,EAAW4K,uBAAuBP,EAAaA,EAAYpF,MAE3D,MAAM4F,EAAa,IAAI9B,EAAesB,EAAYnK,SAASxD,eAAgB2N,EAAYnK,SAASrD,eAGhGmD,EAAW8K,aACPT,EACAA,EAAYjI,KACZ,CAAE2I,MAAO/K,EAAWgL,WAAYC,IAAKjL,EAAWkL,WAChD,EACAL,GAIJ7K,EAAWmL,cAAcd,EAAaI,GAK1CJ,EAAYjrB,OAAOzf,KAAK,CAAEkiC,KAAM7B,EAAWkL,SAAUnsC,aAAS5G,IAG9DkyC,EAAYjrB,OAAOgsB,MAAK,CAACC,EAAoBC,IAClCD,EAAOxJ,KAAOyJ,EAAOzJ,OAIpC,OAAOwI,EASJ,yBAAyBnK,EAAwBqL,EAAmCxsC,GACvF,IAAK,MAAMkrC,KAAazqC,EAAAA,EAAAA,IAAgBT,EAAQkqB,YACxCghB,EAAUrE,eAAiB1F,EAAS5D,qBAEpCiP,EAASvL,EAAW6F,gBAAgBoE,KAAcxrC,EAAAA,EAAAA,IAAKwrC,EAAUuB,YAUrE,iBAAiBC,GACrB,IAAIC,EAEJ,GAAItqC,OAAOuqC,UAAW,CAElBD,GADkB,IAAItqC,OAAOuqC,WACbC,gBAAgBH,EAAW,uBACxC,CAEH,MAAMI,EAAY,IAAUzqC,OAAQ0qC,cAAc,oBAClDD,EAAUE,OAAQ,EAClBF,EAAUG,QAAQP,GAClBC,EAAmBG,EAEvB,OAAOH,EAUH,mBAAmBvB,EAA2BE,GAClD,IAAIjI,EACJ,MAAM6J,EAAY9B,EAAa+B,gBAa/B,MAX8C,OAA1ClM,EAAW6F,gBAAgBoG,KACI,8BAA3BA,EAAUrG,eACVyE,EAAYnK,SAAS7D,cAAgB4P,EAAUrG,aAC/CyE,EAAYnK,SAAS5D,mBAAqB,GAAG+N,EAAYnK,SAAS7D,wBAClEgO,EAAYnK,SAAS3D,uBAAyB,GAAG8N,EAAYnK,SAAS7D,0BACtEgO,EAAYnK,SAAS1D,kBAAoB,GAAG6N,EAAYnK,SAAS7D,0BAGrE+F,EAAO6J,GAGJ7J,EAOH,qBAAqBiI,GACzB,MAAM8B,EAAUnM,EAAWC,eAAeoK,EAAYjI,KAAM,iBAAkBiI,EAAYnK,SAAS3D,wBAC7FkB,EAASuC,EAAWC,eAAeoK,EAAYjI,KAAM,SAAUiI,EAAYnK,SAAS5D,oBAC1F,IAAI8P,EAAyB,KAE7B,GAAID,EAAS,CACT,MAAMxL,GAAQliC,EAAAA,EAAAA,IAAK0tC,GAASvnC,MAAM,OAElC,GAAqB,IAAjB+7B,EAAM1iC,OAAc,CACpB,MAAMk/B,EAAU94B,KAAK68B,MAAM7rB,OAAOixB,WAAW3F,EAAM,KAC7CzD,EAAO74B,KAAK68B,MAAM7rB,OAAOixB,WAAW3F,EAAM,KAE5CzD,EAAO,GAAKC,EAAU,IACtBiP,EAAW,CAAElP,KAAAA,EAAMC,QAAAA,KAS/B,GAJIiP,IACA/B,EAAYnK,SAASjD,eAAiBmP,GAGtC3O,GACe,SAAXA,EAAmB,CAEnB,MAAMwI,EAASxI,EAAO74B,MAAM,OAE5B,GACsB,IAAlBqhC,EAAOhoC,QACoC,OAA3CgoC,EAAO,GAAG9E,OAAO8E,EAAO,GAAGhoC,OAAS,IACO,OAA3CgoC,EAAO,GAAG9E,OAAO8E,EAAO,GAAGhoC,OAAS,GACtC,CACE,MAAMsF,EAAQ8R,OAAOixB,WAAWL,EAAO,GAAG9E,OAAO,EAAG8E,EAAO,GAAGhoC,OAAS,IACjEwF,EAAS4R,OAAOixB,WAAWL,EAAO,GAAG9E,OAAO,EAAG8E,EAAO,GAAGhoC,OAAS,IAGxEosC,EAAYnK,SAASnD,8BAAgC,CAAEx5B,MAAOc,KAAK68B,MAAM39B,GAAQE,OAAQY,KAAK68B,MAAMz9B,MAW5G,sBAAsB4mC,GAE1BA,EAAY9G,oBAAsB8G,EAAYjI,KAAK/B,cAAcgM,gBAC7DhC,EAAYnK,SAAS7D,cACrB,uBAGJgO,EAAYjI,KAAK7B,YAAY8J,EAAY9G,qBAEzC,MAAM+I,EAAUjC,EAAYnK,SAASnD,+BAC/BvgC,EAAAA,EAAAA,IACI,cACA6tC,EAAYnK,SAASnD,8BAA8Bx5B,MACnD8mC,EAAYnK,SAASnD,8BAA8Bt5B,QAEvD,OAEN4mC,EAAY9G,oBAAoBgJ,eAAelC,EAAYnK,SAAS5D,mBAAoB,SAAUgQ,GAElG,IAAI7B,EAAOzK,EAAWuK,4BAA4BF,EAAYjI,KAAM,OAAQiI,EAAYnK,SAAS7D,eAG5FoO,IAEDA,EAAOJ,EAAYjI,KAAK/B,cAAcgM,gBAAgBhC,EAAYnK,SAAS7D,cAAe,QAC1FgO,EAAYjI,KAAK7B,YAAYkK,IAIjCJ,EAAY/H,OAAStC,EAAWuK,4BAA4BE,EAAM,SAAUJ,EAAYnK,SAAS7D,eAE5FgO,EAAY/H,SAEb+H,EAAY/H,OAAS+H,EAAYjI,KAAK/B,cAAcgM,gBAAgBhC,EAAYnK,SAAS7D,cAAe,UACxGgO,EAAYjI,KAAK7B,YAAY8J,EAAY/H,SAM7C,IAFgB+H,EAAY/H,OAAOC,uBAAuB8H,EAAYnK,SAAS7D,cAAe,UAEjFp+B,OAAQ,CACjB,MAAMuuC,EAAkBnC,EAAYjI,KAAK/B,cAAcgM,gBAAgBhC,EAAYnK,SAAS7D,cAAe,UAE3GmQ,EAAgBD,eAAerQ,EAAO,KAAM,aAC5CsQ,EAAgBlM,aAAa,mBAAoB,KACjD+J,EAAY/H,OAAO/B,YAAYiM,GAE/BnC,EAAYpF,KAAKsH,eAAelC,EAAYnK,SAAS7D,cAAe,SAAU,aAGlF,OAAOoO,EAQH,8BAA8BJ,EAA0BtrC,GAE5D,GAAIihC,EAAWyM,SAAS1tC,EAAS,IAAKsrC,EAAYnK,SAAS7D,eAAgB,CACvE,MAAMqQ,EAA2B,GACjC,IAAIC,EAAuB,EAE3B,IAAK,MAAMvI,KAAS5kC,EAAAA,EAAAA,IAAgBT,EAAQslC,YACpCD,EAAME,WAAaC,KAAKE,YACpBkI,IAAiBpI,KAAKE,WACtBiI,EAAe/sC,KAAK,IAGxB+sC,EAAeA,EAAezuC,OAAS,GAAG0B,KAAKykC,IAGnDuI,EAAevI,EAAME,SAGzB,IAAK,MAAMsI,KAASF,EAAgB,CAChC,MAAMG,EAAWxC,EAAYjI,KAAK/B,cAAcgM,gBAAgBhC,EAAYnK,SAAS7D,cAAe,QAEpGwQ,EAAStM,YAAYqM,EAAM,GAAG7H,WAAY+H,aAAaD,EAAUD,EAAM,KAEvE,IAAK,IAAIruC,EAAQ,EAAGA,EAAQquC,EAAM3uC,OAAQM,IACtCsuC,EAAStM,YAAYqM,EAAMruC,KAMvC,IAAK,MAAM6lC,KAAS5kC,EAAAA,EAAAA,IAAyBT,EAAQslC,YACjDpsC,KAAK2yC,uBAAuBP,EAAajG,GAezC,oBACJiG,EACAtrC,EACAguC,EACAC,EACAnC,GAEA,MAAMoC,EAAiBjN,EAAWC,eAAelhC,EAAS,QAASsrC,EAAYnK,SAAS7D,eACxF,IAAI6Q,EAAYD,EAAiBpC,EAAW3B,MAAM+D,GAAkBF,EAAMhC,MACtEoC,EAAU,EAGVC,EAAW,EACXnC,EAAM,EACV,MAAMoC,EAAoBrN,EAAWC,eAAelhC,EAAS,MAAOsrC,EAAYnK,SAAS7D,eACnFiR,EAAetN,EAAWC,eAAelhC,EAAS,MAAOsrC,EAAYnK,SAAS7D,eAEpF,GAAKgR,GAAsBC,EAWpB,GAAID,GAAqBC,EAAc,CAE1CF,EAAWvC,EAAW3B,MAAMmE,GAC5BpC,EAAMJ,EAAW3B,MAAMoE,GACvB,MAAMC,EAASlpC,KAAKD,IAAI8oC,EAAYE,EAAUL,EAAMhC,MAAQE,GAC5DkC,EAAU9oC,KAAKD,IAAImpC,EAAQR,EAAM9B,UAC1BqC,GAEPrC,EAAMJ,EAAW3B,MAAMoE,GACvBH,EAAU9oC,KAAKD,IAAI2oC,EAAMhC,MAAQE,EAAK8B,EAAM9B,OAG5CmC,EAAWvC,EAAW3B,MAAMmE,GAC5BF,EAAU9oC,KAAKD,IAAI8oC,EAAYE,EAAUL,EAAM9B,WArB3C+B,IAGIG,EADAD,GAAaH,EAAM9B,IACT8B,EAAM9B,IAEN,GAmBlBkC,EAAUD,IACVC,EAAUD,GAGdA,EAAY7oC,KAAK8S,MAAM+1B,GACvBC,EAAU9oC,KAAK8S,MAAMg2B,GAErBpuC,EAAQuhC,aAAa,kBAAmB4M,EAAU31C,YAClDwH,EAAQuhC,aAAa,gBAAiB6M,EAAQ51C,YAG1C21C,GAAa,GACb7C,EAAYjrB,OAAOsB,QAAOvL,GACfA,EAAM0sB,OAASqL,IACvBjvC,QAAU,GAEbosC,EAAYjrB,OAAOzf,KAAK,CAAEkiC,KAAMqL,EAAWnuC,QAAAA,IAG/C,IAAIgsC,EAAQmC,EAEZ,IAAK,MAAM9I,KAAS5kC,EAAAA,EAAAA,IAAyBT,EAAQslC,YAC7CD,EAAME,WAAaC,KAAKS,eAEwE,QAA5FhF,EAAWC,eAAelhC,EAAS,gBAAiBsrC,EAAYnK,SAAS7D,eACzEpkC,KAAK6yC,aAAaT,EAAajG,EAAO,CAAE2G,MAAOmC,EAAWjC,IAAKkC,IAAW,EAAMtC,IAEhF5yC,KAAK6yC,aAAaT,EAAajG,EAAO,CAAE2G,MAAAA,EAAOE,IAAKkC,IAAW,EAAOtC,GACtEE,EAAQ11B,OAAOC,SAAS8uB,EAAM1sB,aAAa,iBAAmB,MAWtE,qBAAqB2yB,EAA0BI,GAEnD,MAAM+C,EAAUxN,EAAWuK,4BAA4BE,EAAM,UAAWJ,EAAYnK,SAAS7D,eACvFoR,EAASD,GAAUhuC,EAAAA,EAAAA,IAAgBguC,EAAQjL,uBAAuB8H,EAAYnK,SAAS7D,cAAe,UAAY,GAGxH,IAAK,MAAMt9B,KAAWS,EAAAA,EAAAA,IAAgB6qC,EAAYjI,KAAKhiC,iBAAiB,MACpEnI,KAAKisC,YAAYmG,EAAatrC,EAAoB0uC,GAYlD,mBAAmBpD,EAA0BtrC,EAAkB0uC,GACnE,MAAMlC,EAAoC,GAG1CtzC,KAAKy1C,iBAAiBrD,EAAYnK,SAAUqL,EAAUxsC,EAAS0uC,GAC/DzN,EAAWqF,kBAAkBgF,EAAYnK,SAAUqL,EAAUxsC,GAE7D,IAAI4uC,GAAQ,EAEZ,IAAK,MAAMltC,KAAS8qC,EAEhB,GAAIA,EAAS3oC,eAAenC,GAAQ,CAChCktC,GAAQ,EACR,MAIHA,IAED5uC,EAAQuhC,aAAa,gBAAiB+J,EAAYnF,cAAcjnC,OAAO1G,YACvE8yC,EAAYnF,cAAcvlC,KAAK4rC,IAY/B,wBAAwBrL,EAAwBqL,EAAmCxsC,EAAkB0uC,GAEzG,MAAMG,EAAiB5N,EAAWC,eAAelhC,EAAS,QAASmhC,EAAS7D,eACtEwR,EAAMD,EAAiBA,EAAehpC,MAAM,OAAS,GAE3D,IAAK,MAAMkpC,KAAWD,EAClB,IAAK,MAAMptC,KAASgtC,EAEZzN,EAAWC,eAAex/B,EAAO,KAAMy7B,KAAW4R,IAElD71C,KAAKy1C,iBAAiBxN,EAAUqL,EAAU9qC,EAAOgtC,GAGjDzN,EAAWqF,kBAAkBnF,EAAUqL,EAAU9qC,IAM7D,GAAIu/B,EAAWyM,SAAS1tC,EAAS,SAAUmhC,EAAS7D,eAEhD,IAAK,MAAM57B,KAASjB,EAAAA,EAAAA,IAAgBT,EAAQwjC,uBAAuBrC,EAAS7D,cAAe,UACvF2D,EAAWqF,kBAAkBnF,EAAUqL,EAAmB9qC,GAa9D,gBAAgB1B,EAAkBklC,EAAiB+F,GACvD,OAAOjrC,EAAQ6mC,eAAiBoE,GAAa/xC,KAAK4tC,gBAAgB9mC,KAAaklC,EAU3E,mCAAmChqC,EAAkBgqC,EAAiB+F,GAC1E,IAAIjxC,EACJ,GAAIkB,EAAS,CACT,MAAM8zC,EAAU9zC,EAAQsoC,uBAAuByH,EAAW/F,GAEtD8J,GAAWA,EAAQ9vC,SACnBlF,EAASg1C,EAAQ,IAIzB,OAAOh1C,GAngBainC,EAAAgL,YAAsB,EAUtBhL,EAAAkL,SAAmB,uBC5BhC,MAAM8C,UAAuBjzC,EAAAA,UAyCxCyP,YAAmBpR,GACf60C,MAAM70C,GA1BF,KAAA80C,gBAAsC,CAC1C1gB,KAAM,GACNpsB,OAAQ,IAGK,KAAA+sC,iBAAoDpzC,EAAAA,YAU7D,KAAAqzC,iBAA2B,EAQ3B,KAAA/D,YAAmC,KAIvCpyC,KAAKo2C,gBACLp2C,KAAKq2C,QAAUr2C,KAAKq2C,QAAQC,KAAKt2C,MAG9BkkB,SACH,MAAM,UAAEnhB,GAAc/C,KAAKmB,MACrBo1C,EAAwB,CAC1BC,OAAQx2C,KAAKmB,MAAMs1C,sBAAwB,QAAU,IACrDC,WAAY,0BAEhB,OACI5zC,EAAAA,cAAA,OACI0c,KAAK,OACLzc,UAAWA,EACX28B,IAAK1/B,KAAKk2C,iBAAgB,eACZl2C,KAAKmB,MAAMw1C,mBACzBnuC,MAAO+tC,EACPpyC,QAASnE,KAAKq2C,UAKnBA,UACHr2C,KAAKmB,MAAMy1C,uBAGRC,oBACC72C,KAAKmB,MAAM21C,OACX92C,KAAK+2C,eAAe/2C,KAAKmB,MAAM21C,OAEnC3tC,QACIA,OAAOE,iBAAiB,UAAU,KAC1BrJ,KAAKmB,MAAMw1C,oBACX32C,KAAKg3C,eAAeh3C,KAAKmB,MAAM81C,gBAKxCC,sBAAsBC,GACzB,IAAIC,GAAe,EAInB,OAHID,EAAUR,oBAAsB32C,KAAKmB,MAAMw1C,qBAAuBQ,EAAUR,sBAC5ES,GAAe,GAEZA,EAGJC,uBACHluC,QACIA,OAAOmuC,oBAAoB,UAAU,KAC7Bt3C,KAAKmB,MAAMw1C,oBACX32C,KAAKg3C,eAAeh3C,KAAKmB,MAAM81C,gBAKxCM,mBAAmBC,GAClBx3C,KAAKmB,MAAMw1C,qBACPa,EAAUC,aAAgBz3C,KAAKmB,MAAMs2C,YACjCz3C,KAAKmB,MAAM21C,OACX92C,KAAK+2C,eAAe/2C,KAAKmB,MAAM21C,OAGvC92C,KAAK03C,gBACL13C,KAAKo2C,gBACLp2C,KAAKg3C,eAAeh3C,KAAKmB,MAAM81C,aAC3BO,EAAUf,wBAA0Bz2C,KAAKmB,MAAMs1C,wBAC/Cz2C,KAAK03C,gBACL13C,KAAKo2C,gBAGLjtC,OAAOorB,YAAW,KACdv0B,KAAKg3C,eAAeh3C,KAAKmB,MAAM81C,eAChC,OAQRU,qBACH33C,KAAKoyC,YAAc,KACnB,MAAMwF,GAA4B,IAAIlE,WAAYC,gBAC9C,u7BAuBA,YAGJ3zC,KAAK63C,wBAAwBD,GAC7B,MAAMrO,GAAan+B,EAAAA,EAAAA,IAAcpL,KAAKk2C,iBAAiB1f,SACvDx2B,KAAKoyC,YAAa9I,+BAA+BC,GACjDvpC,KAAKk2C,iBAAiB1f,QAAShuB,MAAMguC,OAAS,SAO3CQ,eAAec,GAClB,IAAIC,EAAiB,GAGrB,GAFA/3C,KAAKm2C,iBAAmB2B,EAEpB93C,KAAKoyC,aAAepyC,KAAKoyC,YAAY5I,YAAa,CAClD,MAAMwO,EAAO5rC,KAAK8S,MAAqB,IAAf44B,GAElBvO,GAAan+B,EAAAA,EAAAA,IAAcpL,KAAKk2C,iBAAiB1f,SAMvD,GALIx2B,KAAKoyC,YAAY9I,+BAA+BC,IAEhDvpC,KAAKo2C,gBAGLp2C,KAAKoyC,YAAYzI,oBAAoBqO,GAAO,EAC5CtvC,EAAAA,EAAAA,IAAgB1I,KAAKk2C,iBAAiB1f,SAEtC,IAAK,MAAM+U,KAAOvrC,KAAKoyC,YAAYnI,QAAQ+N,GACvCh4C,KAAKi4C,+BAA+B1M,IAKpCjjC,EAAAA,EAAAA,IAAIijC,EAAK,mBAAoB,IAC7BwM,EAASxM,EAAI2M,UAGjBl4C,KAAKk2C,iBAAiB1f,QAAS5tB,UAAYmvC,IAShD3B,gBACCp2C,KAAKoyC,aACLpyC,KAAKoyC,YAAY3I,qBAGjBzpC,KAAKk2C,iBAAiB1f,UACtB9tB,EAAAA,EAAAA,IAAgB1I,KAAKk2C,iBAAiB1f,SAE1Cx2B,KAAK03C,gBAMFA,gBACH,MAAMS,EAAiC,GAEjCC,EAAkBp4C,KAAKmB,MAAMk3C,2BAC7Br4C,KAAKmB,MAAMk3C,2BACXr4C,KAAKmB,MAAMm3C,8BAEjB,IAAK,MAAMzjC,KAAcujC,EACrB,GAAIA,EAAgBztC,eAAekK,GAAa,CAC5C,MAAM0jC,EAAcv4C,KAAK6V,gBAAgBhB,EAAYujC,EAAgBvjC,IAEjE0jC,IACAJ,EAAMtjC,GAAc,GAAGmB,EAAAA,GAA0BnB,GAAYpU,QAAQ83C,KAKjFv4C,KAAKi2C,gBAAgB1gB,KAAOv1B,KAAKw4C,aAAaL,EAAO,QACrDn4C,KAAKi2C,gBAAgB9sC,OAASnJ,KAAKw4C,aAAaL,EAAO,UAOnDM,oBAAoB90B,GACxB5a,EAAAA,GAAc2vC,KACV/0B,GAEC7iB,IACGd,KAAK63C,wBAAwB/2C,MAEjC,KACQd,KAAKmB,MAAMw3C,eACX34C,KAAKmB,MAAMw3C,cAAc,CACrBphC,UAAW,uCACXqhC,UAAW,uBAAuBj1B,SAW9Ck0B,wBAAwB3F,GAC5B,IAAKA,EAOD,YANIlyC,KAAKmB,MAAMw3C,eACX34C,KAAKmB,MAAMw3C,cAAc,CACrBphC,UAAW,8CACXqhC,UAAW,2BAQvB,MACMzU,EAAmC,CACrCK,SAFOxkC,KAAKk2C,iBAAiB1f,QAAS5iB,GAAK,GAAG5T,KAAKk2C,iBAAiB1f,QAAS5iB,SAAW,GAGxF8yB,QAAS,CAAEC,QAAS,mBACpB5B,0BAA0B35B,EAAAA,EAAAA,IAAcpL,KAAKk2C,iBAAiB1f,UAGlE,IACIx2B,KAAKoyC,YAAcrK,EAAWkJ,MAAMiB,EAAc/N,GAE9CnkC,KAAKoyC,cACLpyC,KAAKoyC,YAAY/I,iBAAiBrpC,KAAKk2C,iBAAiB1f,QAAS4R,eAE7DpoC,KAAKoyC,YAAY5I,aACjBxpC,KAAKg3C,eAAeh3C,KAAKm2C,mBAGnC,MAAO7e,GACDt3B,KAAKmB,MAAMw3C,eACX34C,KAAKmB,MAAMw3C,cAAc,CACrBphC,UAAW,iDACXqhC,UAAW,iCAAiCthB,EAAM9f,aAU1DygC,+BAA+B1M,GACnC,GAAKvrC,KAAKi2C,gBAAV,CAIA,GAAIj2C,KAAKi2C,gBAAgB1gB,KACrB,IAAK,MAAMzuB,KAAWa,EAAAA,EAAAA,IAAe,WAAY4jC,GAC7C,IAAK,MAAMhjC,KAAYvI,KAAKi2C,gBAAgB1gB,KACpCv1B,KAAKi2C,gBAAgB1gB,KAAK5qB,eAAepC,KACzCD,EAAAA,EAAAA,IAAIxB,EAASyB,EAAUvI,KAAKi2C,gBAAgB1gB,KAAKhtB,IAMjE,GAAIvI,KAAKi2C,gBAAgB9sC,OAAQ,CAC7B,MAAM0vC,GAAiChwC,EAAAA,EAAAA,IAAmB,IAAK0iC,GAC/D,GAAIsN,EACA,IAAK,MAAMtwC,KAAYvI,KAAKi2C,gBAAgB9sC,OACpCnJ,KAAKi2C,gBAAgB9sC,OAAOwB,eAAepC,KAC3CD,EAAAA,EAAAA,IAAIuwC,EAAYtwC,EAAUvI,KAAKi2C,gBAAgB9sC,OAAOZ,MAWlEwuC,eAAepzB,GACnB3jB,KAAKoyC,YAAc,KACnBpyC,KAAKo2C,gBACAzyB,GAGL3jB,KAAKy4C,oBAAoB90B,GAQrB9N,gBAAgBhB,EAAoBC,GACxC,MAAMiB,EAAUC,EAAAA,GAA0BnB,GAC1C,GAAIkB,EAAS,CACT,MAAME,EAASC,EAAAA,GAA8BH,EAAQE,QACrD,OAAOA,GAAUA,EAAOE,IAAIrB,GAEhC,MAAO,GAQH0jC,aAAaL,EAAgCzxC,GACjD,MAAMoyC,EAAoC,GAG1C,IAAK,MAAMC,KAAQZ,EACf,GAAIA,EAAMxtC,eAAeouC,GAAO,CAC5B,MAAMC,EAAUb,EAAMY,GAEtB,GAAIA,EAAKtyC,WAAWC,KAAYqyC,EAAK3xC,SAAS,YACtC4xC,GAAWA,EAAQhzC,OAAS,EAAG,CAC/B,MAAMwvC,EAASwD,EAAQrsC,MAAM,KAE7B,IAAK,MAAMnE,KAASgtC,EAAQ,CACxB,MAAMyD,EAAOzwC,EAAMmE,MAAM,KAErBssC,EAAKjzC,OAAS,IACd8yC,EAASG,EAAK,GAAGzyC,QAAUyyC,EAAK,GAAGzyC,UAU3D,IAAK,MAAMuyC,KAAQZ,EACf,GAAIA,EAAMxtC,eAAeouC,GAAO,CAC5B,MAAMC,EAAUb,EAAMY,GACtB,GAAIA,EAAKtyC,WAAWC,IAAWqyC,EAAK9/B,QAAQ,WAAa,EAAG,CACxD,MAAMggC,EAAOD,EAAQrsC,MAAM,KAE3B,GAAIssC,EAAKjzC,OAAS,EAAG,CACjB,MAAMkzC,EAAaJ,EAASG,EAAK,GAAGzyC,QAC9B2yC,EAAeF,EAAK,GAAGzyC,OAC7BsyC,EAASG,EAAK,GAAGzyC,QAAUxG,KAAKo5C,cAAcF,EAAYC,KAM1E,OAAOL,EASHM,cAAcC,EAAkBvT,GACpC,IAAIhlC,GAASyD,EAAAA,EAAAA,IAAO,kBAAmBuhC,GACvC,MAAMwT,EAAaD,EAAWA,EAASpgC,QAAQ,MAAQ,EAEvD,GAAIqgC,GAAc,EAAG,CACjB,MAAMC,EAAkBF,EAASnQ,OAAOoQ,EAAa,GAC/CE,EAAcD,EAAgBvzC,OAAS,EAE7C,GAAIwzC,EAAc,EAAG,CACjB,MAAM3Q,EAAMzrB,OAAOC,SAASk8B,EAAgBrQ,OAAO,EAAGsQ,GAAc,IAC9D1Q,EAAQ1rB,OAAOC,SAASk8B,EAAgBrQ,OAAOsQ,EAAaA,GAAc,IAC1EzQ,EAAO3rB,OAAOC,SAASk8B,EAAgBrQ,OAAqB,EAAdsQ,EAAiBA,GAAc,IACnF14C,GAASyD,EAAAA,EAAAA,IAAO,wBAAyBskC,EAAKC,EAAOC,EAAMjD,IAInE,OAAOhlC,8DChcH24C,UAAZ,SAAYA,GACRA,EAAA,oBACAA,EAAA,kBACAA,EAAA,sBACAA,EAAA,YACAA,EAAA,oBACAA,EAAA,8BANJ,CAAYA,IAAAA,EAAW,KA0BhB,IAAMC,EAAoD,SAAAv4C,GAC7D,IAGMgf,EAAMhf,EAAMgf,KAAOhf,EAAMgf,IAAIA,IACnC,OACIrd,EAAAA,cAAA,OACIqB,QANe,SAAC+Y,GACpBy8B,EAAcx4C,IAMVgf,IAAKA,EACLy5B,IAAKz4C,EAAM04C,iBAAmB14C,EAAM24C,YACpCr2B,MAAOtiB,EAAM04C,iBAAmB14C,EAAM24C,eAK5CH,EAAgB,SAACx4C,GACnB,IAEI6H,EAFE+wC,EAAUC,mBAAmB74C,EAAM84C,SACnCC,EAAanyC,SAASoyC,kBAAkB,iBAAiB,GAAG16B,aAAa,WAE/E,OAAQte,EAAM24C,aACV,KAAKL,EAAYW,SACbpxC,EAAM,yCAAyC+wC,EAC/C,MACJ,KAAKN,EAAYY,QACbrxC,EAAM,iCAAiC+wC,GAAU54C,EAAMm5C,UAAY,SAASn5C,EAAMm5C,UAAc,IAChG,MACJ,KAAKb,EAAYc,UACbvxC,EAAM,oDAAoD+wC,GAAUG,EAAa,UAAUA,EAAe,KACtG/4C,EAAMm5C,UAAY,gBAAgBn5C,EAAMm5C,UAAc,IAE1D,MACJ,KAAKb,EAAYe,KACbxxC,EAAM,0CAA0C+wC,GAAU54C,EAAMm5C,UAAY,YAAYn5C,EAAMm5C,UAAc,IAC5G,MACJ,KAAKb,EAAYgB,SACbzxC,EAAM,uDAAuD+wC,GAAU54C,EAAMm5C,UAAY,UAAUn5C,EAAMm5C,UAAc,IACvH,MACJ,KAAKb,EAAYiB,cACb1xC,EAAM7H,EAAMw5C,gBAAkB,GAAGx5C,EAAMw5C,eAAiBZ,EAKhE/wC,GAGJ,SAAoBA,GAChB,IAAM4xC,GAAQC,OAAOvvC,MAAQ,KAAO,EAE9BwvC,EAAS,8DADFD,OAAOrvC,OAAS,KAAO,EAC2C,WAAWovC,EAK1FzxC,OAAOW,KAAKd,EAAK,YAAa8xC,GAXvBC,CAAW/xC,kHCDP,MAAMgyC,UAAel4C,EAAAA,UAuHhCyP,YAAmBpR,GACf60C,MAAM70C,GA3EF,KAAA85C,kBAA4B,EAInB,KAAAC,OAA4Cp4C,EAAAA,YAE5C,KAAAq4C,MAA2Cr4C,EAAAA,YAE3C,KAAAs4C,gBAAmDt4C,EAAAA,YAEnD,KAAAu4C,aAA+Cv4C,EAAAA,YAE/C,KAAAizC,eAAkDjzC,EAAAA,YAElD,KAAAw4C,iBAA6Cx4C,EAAAA,YAEtD,KAAAy4C,SAAmB,GAEnB,KAAA5iC,eAAyB,GAEzB,KAAA6iC,SAA0B,KAQ1B,KAAAC,oBAAkD,KAElD,KAAAC,kBAAwC,KAExC,KAAAC,YAAkC,KAElC,KAAAC,6BAA8C,GAE9C,KAAAC,wBAAkC,EAElC,KAAAC,gBAA0B,EA2TjB,KAAAC,sBAAwB,IAEjCj5C,EAAAA,cAACizC,EAAAA,eAAc,CACXrW,IAAK1/B,KAAK+1C,eACVhzC,UAAW,GAAGi5C,EAAAA,iBAAiBC,kCAC/BtF,mBAAoB32C,KAAKu9B,MAAMoZ,mBAC/BM,YAAaj3C,KAAKu9B,MAAMua,aAAab,YACrCQ,WAAYz3C,KAAKu9B,MAAM2e,sBACvBpF,MAAO92C,KAAKu9B,MAAM4e,kBAClBxD,cAAe34C,KAAK8S,aAAawE,gBACjCm/B,sBAAuBz2C,KAAKu9B,MAAM6e,uBAAyBp8C,KAAKu9B,MAAM8e,oBACtE/D,8BAA+Bt4C,KAAKu9B,MAAM+a,8BAC1CD,2BAA4Br4C,KAAKu9B,MAAM8a,2BACvCzB,qBAAsB52C,KAAKs8C,oBAWtB,KAAAC,wBAA0B,CAACtuC,EAAuBuuC,KAC/D,MACIvkC,YACIW,SACI6jC,SAAUC,EACVC,iBAAkBC,EAClBC,SAAUC,EAAiB,8BAC3BC,KAGR/8C,KAAKmB,MAET,OAAKurB,EAAAA,GAA0BC,WAAaiwB,GAAsBF,GAAkBK,EAEzEj6C,EAAAA,cAAA,OAAKC,UAAW,GAAGi5C,EAAAA,iBAAiBC,uDAG3CW,GAAwBE,IAAqB98C,KAAKu9B,MAAMyf,kBAAsBh9C,KAAKu9B,MAAM0f,sBAA7F,EAEQn6C,EAAAA,cAACo6C,EAAAA,iBAAgB,CACbn6C,UAAW,GAAGi5C,EAAAA,iBAAiBC,yCAC/BzzC,MAAOg0C,EACPh/B,SAAUxd,KAAKs8C,kBACfa,QAASn9C,KAAKu9B,MAAM6f,QAAO,eACbp9C,KAAKu9B,MAAM8f,aACzBpvC,cAAeA,EACfC,eAAgBlO,KAAK+S,mBAAmBN,kBAAkB,kBAC1D6qC,QAASt9C,KAAKu9C,gBACdC,OAAQx9C,KAAKy9C,eACbn5B,iBAAkBtkB,KAAKmB,MAAMmjB,oBAa5B,KAAAo5B,qBAAwBzvC,IACrC,MACIgK,YACIW,SAAWikC,SAAUC,KAEzB98C,KAAKmB,MAET,GAAI27C,IAAsB98C,KAAKu9B,MAAMyf,mBAAqBh9C,KAAKu9B,MAAM0f,iBACjE,OACIn6C,EAAAA,cAAC66C,EAAAA,cAAa,CACVje,IAAK1/B,KAAKq7C,aACVt4C,UAAW,GAAGi5C,EAAAA,iBAAiBC,kCAC3Bj8C,KAAKu9B,MAAM6e,uBAAyBp8C,KAAKu9B,MAAM8e,oBAAsB,OAAS,SAChF,gBACar8C,KAAKu9B,MAAM6e,uBAAyBp8C,KAAKu9B,MAAM8e,qBAC9DuB,YAAa59C,KAAKs8C,kBAClBc,QAASp9C,KAAKu9B,MAAM6f,QACpB1B,kBAAmB17C,KAAK07C,kBACxBmC,WAAY79C,KAAK27C,YACjBmC,eAAgB5kC,EAAAA,gBAAgB6kC,wBAChCC,gBAAiB9kC,EAAAA,gBAAgB+kC,yBACjCC,QAASl+C,KAAKu9B,MAAM2gB,QACpBC,YAAan+C,KAAKo+C,UAClBC,eAAgBr+C,KAAKs+C,gBACrBC,iBAAkBv+C,KAAKw+C,kBACvB1G,aAAc93C,KAAKu9B,MAAMua,aACzB2G,6BAA8Bz+C,KAAKu9B,MAAM2e,sBACzCwC,cAAe1+C,KAAKu9B,MAAMmhB,cAC1BC,eAAgB3+C,KAAKu9B,MAAMohB,eAC3BC,iBAAkB5+C,KAAK6+C,kBACvBC,6BAA8B9+C,KAAK++C,4BACnC3C,sBAAuBp8C,KAAKu9B,MAAM6e,uBAAyBp8C,KAAKu9B,MAAM8e,oBACtEiB,QAASt9C,KAAKg/C,sBACdxB,OAAQx9C,KAAKi/C,qBACbC,gBAAiBl/C,KAAKm/C,uBACtBC,gBAAiBp/C,KAAKq/C,uBACtBC,eAAgBt/C,KAAKu/C,sBACrBC,kBAAmBx/C,KAAKu9B,MAAMiiB,kBAC9BC,qBAAsBz/C,KAAKu9B,MAAMkiB,qBACjC7qC,6BAA8B5U,KAAKu9B,MAAM+a,8BACzCjhC,eAAgBrX,KAAKqX,eACrBiN,iBAAkBtkB,KAAKmB,MAAMmjB,iBAC7B6B,UAAW,CACPlY,cAAAA,EACAC,eAAgBlO,KAAK+S,mBAAmBN,kBAAkB,kBAC1DpE,cAAerO,KAAK+S,mBAAmBN,kBAAkB,iBACzDnE,gBAAiBtO,KAAK+S,mBAAmBN,kBAAkB,mBAC3DlE,oBAAqBvO,KAAK+S,mBAAmBN,kBAAkB,uBAC/DjE,wBAAyBxO,KAAK+S,mBAAmBN,kBAAkB,2BACnE9D,aAAc3O,KAAK+S,mBAAmBN,kBAAkB,gBACxD3D,uBAAwB9O,KAAK+S,mBAAmBN,kBAAkB,0BAClE1D,mBAAoB/O,KAAK+S,mBAAmBN,kBAAkB,sBAC9DitC,kBAAmB1/C,KAAK+S,mBAAmBN,kBAAkB,mBAC7D7D,iBAAkB5O,KAAK+S,mBAAmBN,kBAAkB,oBAC5D5D,iBAAkB7O,KAAK+S,mBAAmBN,kBAAkB,wBAY/D,KAAAktC,eAAiB,IAE1B78C,EAAAA,cAAC88C,EAAAA,QAAO,CACJlgB,IAAK1/B,KAAKs7C,iBACVuE,cAAe7/C,KAAK8/C,0BAAyB,eAC/B9/C,KAAKu9B,MAAM0f,iBACzB8C,UAAW//C,KAAKgT,eAAegtC,aA9ZvC,MACI/nC,YACIW,SAAS,8BACLmkC,EACAN,SAAUwD,EACVtD,iBAAkBC,EAClBsD,QAASC,EACTtD,SAAUC,EACVsD,KAAMlC,EACNmC,SAAUC,EAAY,eACtBjpC,KAGRrX,KAAKmB,MAETnB,KAAKqX,eAAiBrX,KAAKugD,aAAelpC,EAE1CrX,KAAKwgD,kBAAkBxgD,KAAKqX,iBAAkB0lC,IAAwCkD,EAEtF,MAAM1iB,EAAQ,CACV6f,SAAS,EACTC,aAAcT,IAAwB58C,KAAKwgD,gBAC3CpE,uBAAwBQ,EACxBP,qBAAqB,EACrBW,iBAAkBJ,IAAwB58C,KAAKwgD,iBAAmB1D,EAClE4B,cAAeR,IAAYl+C,KAAKqX,eAAiB,EAAoC,IAAhC6B,EAAAA,gBAAgBunC,cACrEC,eAAgB,EAChBxC,QAASA,MAAAA,GAAAA,EACTS,gBAAgB,EAChBgC,aAAa,EACb1D,iBAAkBkD,IAAsBngD,KAAKwgD,gBAC7CI,kBAAkB,EAClBC,iBAAkB,GAClB3E,sBAAuB,MACvBsD,kBAAmB,UACnBC,qBAAsB,GACtB9I,oBAAoB,EACpBmK,SAAS,EACTxI,8BAA+B,CAC3B1iC,OAAQmrC,EAAAA,8BAA8BnrC,OACtCH,UAAWsrC,EAAAA,8BAA8BtrC,UACzCF,WAAYwrC,EAAAA,8BAA8BxrC,WAC1CG,aAAcqrC,EAAAA,8BAA8BrrC,aAC5CC,UAAWorC,EAAAA,8BAA8BprC,UACzCH,gBAAiBurC,EAAAA,8BAA8BvrC,gBAC/CH,sBAAuB0rC,EAAAA,8BAA8B1rC,sBACrDC,wBAAyByrC,EAAAA,8BAA8BzrC,wBACvDH,aAAc4rC,EAAAA,8BAA8B5rC,aAC5CC,eAAgB2rC,EAAAA,8BAA8B3rC,gBAElD+mC,kBAAmB,GACnB6E,kBAAmB,CACfv9B,MAAO,GACPjM,QAAS,IAEbsgC,aAAc,CACVb,YAAa,EACbhC,UAAW,EACXC,QAAS,EACT+L,iBAAkB,GAEtB5I,gCAA4Bn4C,GAGhCF,KAAKkhD,YAAc,OACnBlhD,KAAKs8C,kBAAoBt8C,KAAKs8C,kBAAkBhG,KAAKt2C,MACrDA,KAAKmhD,cAAgBnhD,KAAKmhD,cAAc7K,KAAKt2C,MAC7CA,KAAKohD,QAAUphD,KAAKohD,QAAQ9K,KAAKt2C,MACjCA,KAAKqhD,SAAWrhD,KAAKqhD,SAAS/K,KAAKt2C,MACnCA,KAAKshD,eAAiBthD,KAAKshD,eAAehL,KAAKt2C,MAC/CA,KAAKuhD,oBAAsBvhD,KAAKuhD,oBAAoBjL,KAAKt2C,MACzDA,KAAKw+C,kBAAoBx+C,KAAKw+C,kBAAkBlI,KAAKt2C,MACrDA,KAAKo+C,UAAYp+C,KAAKo+C,UAAU9H,KAAKt2C,MACrCA,KAAKs+C,gBAAkBt+C,KAAKs+C,gBAAgBhI,KAAKt2C,MACjDA,KAAKwhD,qBAAuBxhD,KAAKwhD,qBAAqBlL,KAAKt2C,MAC3DA,KAAK6+C,kBAAoB7+C,KAAK6+C,kBAAkBvI,KAAKt2C,MACrDA,KAAKyhD,gBAAkBzhD,KAAKyhD,gBAAgBnL,KAAKt2C,MACjDA,KAAK++C,4BAA8B/+C,KAAK++C,4BAA4BzI,KAAKt2C,MACzEA,KAAK0hD,mBAAqB1hD,KAAK0hD,mBAAmBpL,KAAKt2C,MACvDA,KAAK2hD,iBAAmB3hD,KAAK2hD,iBAAiBrL,KAAKt2C,MACnDA,KAAKu9C,gBAAkBv9C,KAAKu9C,gBAAgBjH,KAAKt2C,MACjDA,KAAKy9C,eAAiBz9C,KAAKy9C,eAAenH,KAAKt2C,MAC/CA,KAAKg/C,sBAAwBh/C,KAAKg/C,sBAAsB1I,KAAKt2C,MAC7DA,KAAKi/C,qBAAuBj/C,KAAKi/C,qBAAqB3I,KAAKt2C,MAC3DA,KAAKm/C,uBAAyBn/C,KAAKm/C,uBAAuB7I,KAAKt2C,MAC/DA,KAAKq/C,uBAAyBr/C,KAAKq/C,uBAAuB/I,KAAKt2C,MAC/DA,KAAKu/C,sBAAwBv/C,KAAKu/C,sBAAsBjJ,KAAKt2C,MAC7DA,KAAK8/C,0BAA4B9/C,KAAK8/C,0BAA0BxJ,KAAKt2C,MACrEA,KAAK4hD,sBAAwB5hD,KAAK4hD,sBAAsBtL,KAAKt2C,MAC7DA,KAAK+S,mBAAqB,IAAIT,EAAAA,mBAAmBtS,KAAKmB,MAAMqR,iBAC5DxS,KAAK8S,aAAe,IAAIsE,EAAAA,aAAapX,KAAKmB,MAAOnB,KAAK+S,mBAAoB/S,KAAKqX,gBAC/ErX,KAAK6a,SAAW7a,KAAK8S,aAAa6H,mBAAmB3a,KAAKmB,MAAM0Z,UAAY,QAAU7a,KAAKmB,MAAM0Z,SACjG7a,KAAKgT,eAAiBhT,KAAK8S,aAAa+E,cACxC7X,KAAKu9B,MAAQA,EACbv9B,KAAK2Y,eAAiB3Y,KAAK8S,aAAa4F,oBACxC1Y,KAAKmkB,SAAUC,EAAAA,EAAAA,kBAAiB,QAASpkB,KAAKmB,MAAMmjB,iBAAmB,IAElEg8B,IACDtgD,KAAKu7C,SAAWv7C,KAAK8S,aAAasG,qBAAqBpQ,KA3HvD,oCAEJ,MAAM64C,EAAM95C,SACZ,OACI85C,EAAIC,mBACJD,EAAIE,sBACJF,EAAIG,yBACJH,EAAII,0BACJJ,EAAIK,oBAQJ,iCAEJ,MAAML,EAAM95C,SACZ,OAAO85C,EAAIM,mBAAqBN,EAAIO,sBAAwBP,EAAIQ,yBAA2BR,EAAIS,oBA4G5FpL,sBAAsBC,EAAyBoL,GAClD,OAAIviD,KAAKu9B,QAAUglB,GAAaviD,KAAKmB,MAAM8W,WAAWW,UAAYu+B,EAAUl/B,WAAWW,QAMpFsL,SACH,MACIjM,YACIW,SAAW4pC,KAAMC,KAErBziD,KAAKmB,MAEHq7C,EAAsC,GAC5CA,EAAepX,gBAAkBplC,KAAK0iD,qBAElC1iD,KAAKmB,MAAMwhD,WACX3iD,KAAK8S,aAAaqF,kBAAkBnY,KAAKmB,OACzCnB,KAAKgT,eAAiBhT,KAAK8S,aAAa+E,cACpC7X,KAAK2Y,iBAAmB3Y,KAAK8S,aAAa4F,sBAC1C1Y,KAAK2Y,eAAiB3Y,KAAK8S,aAAa4F,qBAExC1Y,KAAK87C,gBAAkB97C,KAAKu7C,WAAav7C,KAAK8S,aAAasG,qBAAqBpQ,KAChFhJ,KAAK4iD,eAIb,MAAMC,EAAe7iD,KAAKwgD,gBAAkB,OAAS,WAGrD,IAAIvyC,EAAwB,GAO5B,OALIA,EADAjO,KAAKgT,eAAeyQ,MACJ,GAAGzjB,KAAK+S,mBAAmBN,kBAAkB,oBAAoBzS,KAAKgT,eAAeyQ,QAErF1V,EAAAA,sBAAsBC,mBAItClL,EAAAA,cAAA,OACI0c,KAAK,OACLzc,UAAW,GAAGi5C,EAAAA,iBAAiBC,uBAC/Bvc,IAAK1/B,KAAKo7C,gBACV0H,UAAW9iD,KAAK2hD,iBAChBoB,aAAc/iD,KAAKmhD,cACnB1jC,aAAczd,KAAKmhD,cAAa,gBACjBnhD,KAAK6a,UAEpB/X,EAAAA,cAAA,OAAKC,UAAW,GAAGi5C,EAAAA,iBAAiBC,iCACE,KAAjCj8C,KAAKu9B,MAAMiiB,mBAAgE,KAApCx/C,KAAKu9B,MAAMkiB,sBAC/C38C,EAAAA,cAAA,SACI48B,IAAK1/B,KAAKm7C,MACV6H,QAAQ,OACR7iC,IAAKngB,KAAKu9B,MAAMkiB,qBAChBwD,MAAOjjD,KAAKu9B,MAAM2gB,QAClBsE,KAAMC,IAGd3/C,EAAAA,cAAA,SACIC,UAAW,GAAGi5C,EAAAA,iBAAiBC,8BAC/Bvc,IAAK1/B,KAAKk7C,OACV8H,QAASH,EACTK,SAAUljD,KAAKwgD,gBACfyC,MAAOjjD,KAAKu9B,MAAM2gB,QAClBsE,KAAMC,EACNU,OAAQnjD,KAAKohD,QACbgC,QAASpjD,KAAKqhD,SACdl9C,QAAUnE,KAAKu9B,MAAM0f,iBAA4Cj9C,KAAKqhD,SAA9BrhD,KAAKs8C,kBAC7Cn8B,IAAKngB,KAAKu7C,SACV8H,cAAerjD,KAAK4hD,sBACpB0B,OAAQtjD,KAAK2Y,eACb4qC,aAAW,gBACC,SAEhBzgD,EAAAA,cAAA,OACIC,UAAW,GAAGi5C,EAAAA,iBAAiBC,qCAC/Bz8B,KAAK,SAAQ,eACCxf,KAAKu9B,MAAMqjB,kBAEzB99C,EAAAA,cAAA,OAAKC,UAAW,GAAGi5C,EAAAA,iBAAiBC,+CAChCn5C,EAAAA,cAAA,KAAGC,UAAW,GAAGi5C,EAAAA,iBAAiBC,+CAC7Bj8C,KAAKu9B,MAAMyjB,kBAAkBv9B,SAI1C3gB,EAAAA,cAAA,OAAKC,UAAW,GAAGi5C,EAAAA,iBAAiBC,qCAAoC,YAAY,aAC/Ej8C,KAAKu9B,MAAMsjB,kBAEhB/9C,EAAAA,cAAA,OACIC,UAAW,GAAGi5C,EAAAA,iBAAiBC,gCAC/Bz8B,KAAK,SAAQ,eACCxf,KAAKu9B,MAAMojB,aAEzB79C,EAAAA,cAAC0gD,EAAAA,QAAO,CAACzgD,UAAW,GAAGi5C,EAAAA,iBAAiBC,mCAE3Cj8C,KAAKmB,MAAM8W,WAAWW,QAAQsnC,SAAWlgD,KAAK2/C,iBAC9C3/C,KAAKu8C,wBAAwBtuC,EAAeuuC,GAC5Cx8C,KAAKu9B,MAAMoZ,oBAAsB32C,KAAK+7C,wBACtC/7C,KAAK09C,qBAAqBzvC,KASpCw1C,OACHzjD,KAAKk7C,OAAO1kB,QAASitB,OAAOrjB,OAAM,KAC9BpgC,KAAK0jD,mBAEL1jD,KAAKm7C,MAAM3kB,SACXx2B,KAAKm7C,MAAM3kB,QAAQitB,OAAOrjB,OAAM,KAC5BpgC,KAAK2jD,mBAQVC,QACH5jD,KAAKk7C,OAAO1kB,QAASotB,QACjB5jD,KAAKm7C,MAAM3kB,SACXx2B,KAAKm7C,MAAM3kB,QAAQotB,QAIpB/M,oBACH,MACI5+B,YACIW,SAAW+jC,iBAAkBC,EAAoByD,SAAUC,KAE/DtgD,KAAKmB,MACJm/C,IACDtgD,KAAK6jD,qBACL7jD,KAAKyhD,iBAAgB,KAGrBzhD,KAAKwgD,iBAAoBF,IAAiB1D,IAAwB0D,IAClEtgD,KAAK4iD,cAET76C,SAASsB,iBAAiB,mBAAoBrJ,KAAKwhD,sBACnDz5C,SAASsB,iBAAiB,sBAAuBrJ,KAAKwhD,sBACtDz5C,SAASsB,iBAAiB,yBAA0BrJ,KAAKwhD,sBACzDz5C,SAASsB,iBAAiB,qBAAsBrJ,KAAKwhD,sBAErDz5C,SAASsB,iBAAiB,kBAAmBrJ,KAAK0hD,oBAClD35C,SAASsB,iBAAiB,qBAAsBrJ,KAAK0hD,oBACrD35C,SAASsB,iBAAiB,wBAAyBrJ,KAAK0hD,oBACxD35C,SAASsB,iBAAiB,oBAAqBrJ,KAAK0hD,oBAGjDrK,uBACH,GAAIr3C,KAAKk7C,OAAO1kB,QACZ,IAAK,MAAMstB,KAAcC,EAAAA,YACrB/jD,KAAKk7C,OAAO1kB,QAAQ8gB,oBAAoBwM,EAAY9jD,KAAKshD,gBAGjEv5C,SAASuvC,oBAAoB,mBAAoBt3C,KAAKwhD,sBACtDz5C,SAASuvC,oBAAoB,sBAAuBt3C,KAAKwhD,sBACzDz5C,SAASuvC,oBAAoB,yBAA0Bt3C,KAAKwhD,sBAC5Dz5C,SAASuvC,oBAAoB,qBAAsBt3C,KAAKwhD,sBAExDz5C,SAASuvC,oBAAoB,kBAAmBt3C,KAAK0hD,oBACrD35C,SAASuvC,oBAAoB,qBAAsBt3C,KAAK0hD,oBACxD35C,SAASuvC,oBAAoB,wBAAyBt3C,KAAK0hD,oBAC3D35C,SAASuvC,oBAAoB,oBAAqBt3C,KAAK0hD,oBAsJnDkB,cACJ,GAAI5iD,KAAKk7C,OAAO1kB,QAAS,CACrBx2B,KAAKk7C,OAAO1kB,QAAQwtB,OAAShkD,KAAKu9B,MAAMmhB,cAAgB,IAGxD,IAAK,MAAMoF,KAAcC,EAAAA,YACrB/jD,KAAKk7C,OAAO1kB,QAAQntB,iBAAiBy6C,EAAY9jD,KAAKshD,gBAc9D,IAVIthD,KAAKmB,MAAM8W,WAAWW,QAAQynC,UAAYrgD,KAAKmB,MAAMwhD,YACrD3iD,KAAKu7C,SAAWv7C,KAAK8S,aAAasG,qBAAqBpQ,IACnDhJ,KAAKk7C,OAAO1kB,UACZx2B,KAAKk7C,OAAO1kB,QAAQrW,IAAMngB,KAAKu7C,SAC/Bv7C,KAAKk7C,OAAO1kB,QAAQytB,SAI5BjkD,KAAK87C,gBAAiB,EAElB97C,KAAKmB,MAAM8W,WAAWW,QAAQikC,SAAU,CACxC78C,KAAKy7C,oBAAsB,IAAI5oC,EAAAA,oBAAoB7S,KAAKgT,eAAgBhT,KAAK8S,aAAc9S,KAAK+S,oBAChG/S,KAAK07C,kBAAoB17C,KAAKy7C,oBAAoBtoC,uBAClDnT,KAAK27C,YAAc37C,KAAK8S,aAAauF,gBACrC,MAAMnF,EAAUlT,KAAKgT,eAAeE,QACpC,QAAgBhT,IAAZgT,GAAyBA,EAAQlN,OAAS,EAAG,CAC7C,MAAMk+C,EAAmBlkD,KAAKmB,MAAM8W,YAAcjY,KAAKmB,MAAM8W,WAAWW,QAAQurC,aAChF,IAAIC,EAAoC,KACxC,IAAK,MAAM/wC,KAAUH,GACZkxC,GAAsBF,GAAoB7wC,EAAOV,OAAOvL,SAAS88C,KAClEE,EAAqB/wC,EAAOV,QAGpC3S,KAAK47C,6BAA+BwI,GAC/B79C,EAAAA,EAAAA,oBAAmBvG,KAAK47C,+BACzB57C,KAAKqkD,SAAS,CACVnI,sBAAuBl8C,KAAK47C,6BAC5BO,kBAAmBn8C,KAAKy7C,oBAAoB3lC,8BAA8B9V,KAAK47C,8BAC/EjF,oBAAoB,MAUhCmJ,4BACA9/C,KAAKs7C,iBAAiB9kB,QAAS8tB,oBAC/BtkD,KAAKu7C,SAAWv7C,KAAK8S,aAAasG,qBAAqBpQ,IACvDhJ,KAAKqkD,SAAS,CAAEpH,kBAAkB,MAElCj9C,KAAKqkD,SAAS,CAAEpH,kBAAkB,IAClCj9C,KAAKukD,qBAAqB,CAAE9gC,MAAO,wCAInCu7B,wBAEJh/C,KAAKqkD,SAAS,CAAEhI,qBAAqB,IAGjC4C,uBAEJj/C,KAAKyhD,iBAAgB,GAErBzhD,KAAKqkD,SAAS,CAAEhI,qBAAqB,IAGjCgD,uBAAuBh7B,GAC3B,GAAIA,EAAa9iB,MAAQ8iB,EAAa9iB,KAAK0X,QAAQ,KAAO,EAAG,CACvCoL,EAAa9iB,KAAKoL,MAAM,KACb,KACVoI,EAAAA,4BAA4BC,YACF,QAArChV,KAAKu9B,MAAM2e,sBACXl8C,KAAKqkD,SACD,CACI1N,oBAAoB,IAExB,KACI32C,KAAK+1C,eAAevf,QAASmhB,qBAC7B33C,KAAKwkD,eAAengC,GAAc,MAI1CrkB,KAAKwkD,eAAengC,GAAc,QAGE,QAArCrkB,KAAKu9B,MAAM2e,uBAClBl8C,KAAKqkD,SAAS,CACV1N,oBAAoB,IAKxB4I,wBACJv/C,KAAKwkD,eAAe,CAChBjwC,SAAUC,EAAAA,eAAekC,sBACzB9C,GAAI,GACJrS,KAAM,YAIN49C,uBAAuB96B,GAC3B,OAAQA,EAAa9P,UACjB,KAAKC,EAAAA,eAAeC,cAChBzU,KAAKykD,OAAOpgC,EAAazQ,IACzB,MAGJ,KAAKY,EAAAA,eAAekC,sBAChB1W,KAAKwkD,eAAengC,GACpB,MAGJ,KAAK7P,EAAAA,eAAeiH,YAChBzb,KAAKgY,gBAAgBqM,IAWzBogC,OAAOC,GAEX,IAAIC,EAAiC,KAErC,IAHAD,EAAe1kD,KAAK8S,aAAagI,eAAe4pC,KAG5B1kD,KAAKgT,eAAeE,QACpC,IAAK,MAAMG,KAAUrT,KAAKgT,eAAeE,QACrC,GAAIG,EAAOV,SAAW+xC,KAAkBrxC,EAAOC,QAAUD,EAAOC,SAAWC,EAAAA,mBAAmBC,MAAO,CACjGmxC,EAAiBtxC,EACjB,MAKS,QAAjBqxC,EACA1kD,KAAKqkD,SAAS,CACVnI,sBAAuB,MACvBC,kBAAmB,GACnBxF,oBAAoB,IAGxB32C,KAAKqkD,SAAS,CACVnI,sBAAuByI,EAAgBhyC,OACvCwpC,kBAAmBwI,EAAgB37C,IACnC2tC,oBAAoB,IAUxB6N,eAAengC,EAAgDugC,GACnE,GAA0B,UAAtBvgC,EAAa9iB,KACbvB,KAAKqkD,SACD,CACI/L,8BAA+ByI,EAAAA,gCAEnC,KACwC,OAAhC/gD,KAAK+1C,eAAevf,UACpBx2B,KAAK+1C,eAAevf,QAAQkhB,gBAC5B13C,KAAK+1C,eAAevf,QAAQ4f,gBAC5Bp2C,KAAK+1C,eAAevf,QAAQwgB,eAAeh3C,KAAKu9B,MAAMua,aAAab,sBAI5E,GAA0B,YAAtB5yB,EAAa9iB,KACpBvB,KAAKqkD,SAAS,CACVhM,gCAA4Bn4C,IAGS,QAArCF,KAAKu9B,MAAM2e,uBACXl8C,KAAKqkD,SAAS,CACV1N,oBAAoB,QAGzB,CACH,MAAMkO,EAAYxgC,EAAa9iB,KAAMoL,MAAM,KAC3C,IAAKk4C,EACD,OAEJ,MAAMhwC,EAAagwC,EAAU,GACvB/vC,EAAY+vC,EAAU,GACtBC,EAAiB9kD,KAAKy7C,oBAAqB9mC,+BAC7C3U,KAAKu9B,MAAM+a,8BACXzjC,EACAC,QAEsB5U,IAAtB0kD,GAAmCA,EACnC5kD,KAAKqkD,SACD,CACIhM,gCAA4Bn4C,EAC5Bo4C,8BAA+BwM,IAEnC,KACQ9kD,KAAK+1C,eAAevf,UACpBx2B,KAAK+1C,eAAevf,QAAQkhB,gBAC5B13C,KAAK+1C,eAAevf,QAAQ4f,gBAC5Bp2C,KAAK+1C,eAAevf,QAAQwgB,eAAeh3C,KAAKu9B,MAAMua,aAAab,iBAK/Ej3C,KAAKqkD,SAAS,CACVhM,2BAA4ByM,KAMpC9sC,gBAAgBqM,GACpB,MAAM9iB,EAAOwjD,KAAK9T,MAAM5sB,EAAa9iB,MACnB,YAAdA,EAAKkS,KACLzT,KAAKqkD,SACD,CACI7E,kBAAmB,UACnBC,qBAAsB,KAE1B,KACIz/C,KAAKk7C,OAAO1kB,QAASwtB,OAAShkD,KAAKu9B,MAAMmhB,cAAgB,OAIjE1+C,KAAKqkD,SACD,CACI7E,kBAAmBj+C,EAAKkS,KACxBgsC,qBAAsBl+C,EAAKyH,MAE/B,KAII,GAHAhJ,KAAKm7C,MAAM3kB,QAASygB,YAAcj3C,KAAKk7C,OAAO1kB,QAASygB,YACvDj3C,KAAKm7C,MAAM3kB,QAASwtB,OAAShkD,KAAKu9B,MAAMmhB,cAAgB,IACxD1+C,KAAKk7C,OAAO1kB,QAASwtB,OAAS,GACzBhkD,KAAKk7C,OAAO1kB,QAASwuB,OAAQ,CAC9BhlD,KAAKm7C,MAAM3kB,QAASytB,OACpB,IAAK,MAAMH,KAAcC,EAAAA,YACrB/jD,KAAKm7C,MAAM3kB,QAASntB,iBAAiBy6C,EAAY9jD,KAAKuhD,yBAQtEA,oBAAoBrkC,GACxB,OAAQA,EAAM4B,KAAKpL,eACf,IAAK,QACD1T,KAAK2jD,gBACL,MACJ,IAAK,UACwB,YAArB3jD,KAAKkhD,cACLlhD,KAAK67C,wBAAyB,EAC9B77C,KAAK4jD,SAET,MAEJ,IAAK,aACG5jD,KAAK67C,yBACL77C,KAAK67C,wBAAyB,EAC9B77C,KAAKyjD,QAEJzjD,KAAKk7C,OAAO1kB,QAASwuB,QACtBhlD,KAAKyjD,QAQbnC,eAAepkC,GACnB,OAAQA,EAAM4B,KAAKpL,eACf,IAAK,UACL,IAAK,iBACD,MAEJ,IAAK,QACD1T,KAAK0jD,gBACL,MAEJ,IAAK,OACD,MAEJ,IAAK,QACD1jD,KAAKilD,aAAa,UACdjlD,KAAKmB,MAAM8W,WAAWW,QAAQ+jC,kBAC9B38C,KAAKqkD,SAAS,CACVhH,cAAc,IAGtB,MAEJ,IAAK,UACwB,UAArBr9C,KAAKkhD,aAA2BlhD,KAAKk7C,OAAO1kB,QAAS0uB,UACrDllD,KAAKw7C,SAAWx7C,KAAKk7C,OAAO1kB,QAASygB,YACrCj3C,KAAKilD,aAAa,YAEtB,MAEJ,IAAK,SACD,MAAME,EAAgBnlD,KAAKk7C,OAAO1kB,QAC5BygB,EAAckO,EAAelO,YACV,UAArBj3C,KAAKkhD,aAA2BlhD,KAAKk7C,OAAO1kB,QAAS0uB,SAAWllD,KAAKw7C,WAAavE,IAClFj3C,KAAKw7C,SAAW,MAEpBx7C,KAAKilD,aAAaE,EAAeH,OAAS,SAAW,WACrD,MAEJ,IAAK,UACDhlD,KAAKilD,aAAa,aAClB,MAEJ,IAAK,iBACD,MAEJ,IAAK,aACDjlD,KAAK6jD,qBACA7jD,KAAKwgD,iBACNxgD,KAAKyhD,iBAAgB,GAEzB,MAEJ,IAAK,aACDzhD,KAAKolD,gBACL,MAEJ,IAAK,QACDplD,KAAKilD,aAAa,SAClBjlD,KAAKqlD,QACL,MAEJ,IAAK,UACDrlD,KAAKilD,aAAa,YAUtBtB,gBACJ3jD,KAAK4jD,QAEL5jD,KAAKukD,qBADwC,CAAE9gC,MAAO,qEAEtDzjB,KAAKgY,gBAAgB,CAAEzD,SAAU,cAAehT,KAAM,kCAAmCqS,GAAI,KAC7F2gB,YAAW,KACPv0B,KAAKqkD,SACD,CACIzD,kBAAkB,IAEtB,KACI5gD,KAAKyjD,YAGd,KAGCC,gBACJ1jD,KAAKilD,aAAa,SAClB,MAAM3tB,EAAgCt3B,KAAKslD,YAC3C,IAAInjC,EAAe,GACnB,GAAImV,MAAAA,GAAAA,EAAOiuB,UAAW,CAClB,OAAQjuB,EAAMiuB,WACV,KAAKC,EAAAA,gBAAgBC,kBACjBtjC,EAAe,6BACf,MACJ,KAAKqjC,EAAAA,gBAAgBE,kBACjBvjC,EAAe,2BACf,MACJ,KAAKqjC,EAAAA,gBAAgBG,iBACjBxjC,EAAe,wBACf,MACJ,KAAKqjC,EAAAA,gBAAgBI,6BACjBzjC,EAAe,gCACf,MACJ,QACIA,EAAe,yBAGvBniB,KAAK6lD,WAAW1jC,QAEhBniB,KAAK6lD,aAILA,WAAWC,GACXA,IACA9lD,KAAKukD,qBAAqB,CAAE9gC,MAAOqiC,IACnC9lD,KAAKilD,aAAa,YAQlBV,qBAAqBpiC,GACzBniB,KAAKqkD,SAAS,CAAErD,kBAAmB,CAAEv9B,MAAOtB,EAAasB,MAAOjM,QAAS2K,EAAa3K,WACtFxX,KAAKqkD,SAAS,CAAEzD,kBAAkB,IAO9B0E,YACJ,IAAIS,EACJ,GAAI/lD,KAAKk7C,OAAO1kB,QAASc,MAAO,CAE5B,OAAQt3B,KAAKk7C,OAAO1kB,QAASc,MAAM0uB,MAC/B,KAAKhmD,KAAKk7C,OAAO1kB,QAASc,MAAM2uB,kBAC5BF,EAAmBP,EAAAA,gBAAgBC,kBACnC,MACJ,KAAKzlD,KAAKk7C,OAAO1kB,QAASc,MAAM4uB,kBAC5BH,EAAmBP,EAAAA,gBAAgBE,kBACnC,MACJ,KAAK1lD,KAAKk7C,OAAO1kB,QAASc,MAAM6uB,iBAC5BJ,EAAmBP,EAAAA,gBAAgBG,iBACnC,MACJ,KAAK3lD,KAAKk7C,OAAO1kB,QAASc,MAAM8uB,4BAC5BL,EAAmBP,EAAAA,gBAAgBI,6BACnC,MACJ,QACIG,EAAmBP,EAAAA,gBAAgBa,kBAE3C,MAAO,CAAEd,UAAWQ,GAExB,OAAO,KAGHhH,4BAA4BrxC,GAChC,MACM44C,EADe54C,EACO64C,QAK5B,OAJAvmD,KAAKyhD,iBAAgB,GAIb6E,GACJ,KAAK1gD,EAAAA,SAAS4gD,KACV94C,EAAE+4C,kBACF/4C,EAAEg5C,iBACF1mD,KAAKk7C,OAAO1kB,QAASygB,YAAc,EAC/Bj3C,KAAKm7C,MAAM3kB,UACXx2B,KAAKm7C,MAAM3kB,QAAQygB,YAAc,GAErC,MACJ,KAAKrxC,EAAAA,SAAS+gD,IACVj5C,EAAE+4C,kBACF/4C,EAAEg5C,iBACF1mD,KAAKk7C,OAAO1kB,QAASygB,YAAcj3C,KAAKu9B,MAAMua,aAAa5C,QACvDl1C,KAAKm7C,MAAM3kB,UACXx2B,KAAKm7C,MAAM3kB,QAAQygB,YAAcj3C,KAAKu9B,MAAMua,aAAa5C,SAE7D,MACJ,KAAKtvC,EAAAA,SAASghD,UACd,KAAKhhD,EAAAA,SAASihD,WACVn5C,EAAE+4C,kBACF/4C,EAAEg5C,iBACF,IAAII,EACAR,IAAY1gD,EAAAA,SAASghD,UACf5mD,KAAKu9B,MAAMua,aAAab,YAAc/9B,EAAAA,gBAAgB6kC,wBACtD/9C,KAAKu9B,MAAMua,aAAab,YAAc/9B,EAAAA,gBAAgB6kC,wBAChE+I,EAAa16C,KAAKD,IAAIC,KAAK2S,IAAI/e,KAAKu9B,MAAMua,aAAa7C,UAAW6R,GAAa9mD,KAAKu9B,MAAMua,aAAa5C,SACvGl1C,KAAKk7C,OAAO1kB,QAASygB,YAAc6P,EAC/B9mD,KAAKm7C,MAAM3kB,UACXx2B,KAAKm7C,MAAM3kB,QAAQygB,YAAc6P,GAErC,MACJ,KAAKlhD,EAAAA,SAASmhD,QACd,KAAKnhD,EAAAA,SAASohD,UACVt5C,EAAE+4C,kBACF/4C,EAAEg5C,iBACF1mD,KAAKq7C,aAAa7kB,QAASywB,mBAAkB,GAAMhoD,KAAKe,MACxD,MAAMgkD,EACFsC,IAAY1gD,EAAAA,SAASohD,UACf56C,KAAK2S,KAAK/e,KAAKu9B,MAAMmhB,cAAgBxlC,EAAAA,gBAAgB+kC,0BAA4B,IAAK,GACtF7xC,KAAKD,KAAKnM,KAAKu9B,MAAMmhB,cAAgBxlC,EAAAA,gBAAgB+kC,0BAA4B,IAAK,GAChGj+C,KAAKqkD,SAAS,CAAE3F,cAAetyC,KAAK68B,MAAe,IAAT+a,KACtChkD,KAAKm7C,MAAM3kB,QACXx2B,KAAKm7C,MAAM3kB,QAAQwtB,OAASA,EAE5BhkD,KAAKk7C,OAAO1kB,QAASwtB,OAASA,EAEnB,IAAXA,EACAhkD,KAAKqkD,SAAS,CAAEnG,SAAS,IAEzBl+C,KAAKqkD,SAAS,CAAEnG,SAAS,KAOjCkD,UACJphD,KAAKqkD,SAAS,CAAEjH,SAAS,IAGrBiE,WACJrhD,KAAKqkD,SAAS,CAAEjH,SAAS,IAGrBkB,gBAAgBj6B,GACpBrkB,KAAKqkD,SAAS,CAAE3F,cAAer6B,EAAa6iC,kBACxClnD,KAAKm7C,MAAM3kB,QACXx2B,KAAKm7C,MAAM3kB,QAAQwtB,OAAS3/B,EAAa6iC,gBAAkB,IAE3DlnD,KAAKk7C,OAAO1kB,QAASwtB,OAAS3/B,EAAa6iC,gBAAkB,IAG5B,IAAjC7iC,EAAa6iC,gBACblnD,KAAKqkD,SAAS,CAAEnG,SAAS,IAClBl+C,KAAKu9B,MAAM2gB,SAAW75B,EAAa6iC,gBAAkB,GAC5DlnD,KAAKqkD,SAAS,CAAEnG,SAAS,IAIzBE,YACJ,GAAIp+C,KAAKu9B,MAAM2gB,QAAS,CACpB,MAAMiJ,EAA0C,IAA9BnnD,KAAKu9B,MAAMmjB,eAAuD,IAAhCxnC,EAAAA,gBAAgBunC,cAAsBzgD,KAAKu9B,MAAMmjB,eAEjG1gD,KAAKm7C,MAAM3kB,QACXx2B,KAAKm7C,MAAM3kB,QAAQwtB,OAASmD,EAAY,IAExCnnD,KAAKk7C,OAAO1kB,QAASwtB,OAASmD,EAAY,IAE9CnnD,KAAKqkD,SAAS,CAAEnG,SAAS,EAAOQ,cAAeyI,IAC/CnnD,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,qBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBO,iBAAiBrP,KAAKe,WAEzGA,KAAKqkD,SAAS,CAAEnG,SAAS,EAAMwC,eAA8C,IAA9B1gD,KAAKk7C,OAAO1kB,QAASwtB,OAActF,cAAe,IACjG1+C,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,mBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBM,eAAepP,KAAKe,MAIvG2hD,iBAAiBj0C,GACAA,EACO64C,UAEZ3gD,EAAAA,SAAS0hD,KACrBtnD,KAAKunD,4BAILpG,cAAcjkC,GACdld,KAAKmB,MAAM8W,WAAWW,QAAQikC,UAC9B78C,KAAKyhD,mBAEJzhD,KAAKu9B,MAAMyf,kBAAoBh9C,KAAKu9B,MAAM6f,SAC3Cp9C,KAAKqkD,SAAS,CAAEhH,aAA6B,eAAfngC,EAAM4B,OAIpC2iC,kBAAwC,IAAxB+F,IAAAzhD,UAAAC,OAAA,QAAA9F,IAAA6F,UAAA,KAAAA,UAAA,GACf/F,KAAKu9B,MAAMyf,kBAAqBh9C,KAAKu9B,MAAM0f,mBACvCj9C,KAAKu9B,MAAM6e,uBACZp8C,KAAKqkD,SAAS,CAAEjI,uBAAuB,IAEvCp8C,KAAKi7C,oBACL9xC,QAAUA,OAAOs+C,aAAaznD,KAAKi7C,mBACnCj7C,KAAKi7C,kBAAoB,GAEzBuM,IACAxnD,KAAKi7C,kBACD9xC,QACAA,OAAOorB,YAAW,KACdv0B,KAAK0nD,oBACNxuC,EAAAA,gBAAgByuC,8BAK3BD,kBACJv+C,QAAUA,OAAOs+C,aAAaznD,KAAKi7C,mBACnCj7C,KAAKi7C,kBAAoB,EACzBj7C,KAAKqkD,SAAS,CAAEjI,uBAAuB,IAGnCoF,uBACJxhD,KAAKu9B,MAAMohB,eAAiB3+C,KAAK4nD,oBAAsB5nD,KAAK6nD,qBAMxDA,qBACJ7nD,KAAKqkD,SAAS,CACV1F,gBAAgB,IAOhBiJ,oBACJ5nD,KAAKqkD,SAAS,CACV1F,gBAAgB,IAIhBE,oBACJ7+C,KAAKu9B,MAAMohB,eAAiB3+C,KAAK8nD,kBAAoB9nD,KAAK+nD,mBAGtDrG,qBACJ1hD,KAAKqkD,SAAS,CACV1F,gBAAgB,IAIhBoJ,mBACJ,IAAK/M,EAAOgN,6BACR,OAIJ,MAAM7F,EAAoBniD,KAAKo7C,gBAAgB5kB,QACzCyxB,EAAsBjN,EAAOkN,0BAGnC,GAAI/F,IAAsB8F,EAAqB,EAEvC9F,EAAkBgG,mBAClBhG,EAAkBiG,qBAClBjG,EAAkBkG,sBAClBlG,EAAkBmG,yBAClBnG,EAAkBoG,uBAENtpD,KAAKkjD,GACrBniD,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,qBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBQ,qBAAqBtP,KAAKe,OAI7G8nD,kBACJ,IAAK9M,EAAOgN,6BACR,OAIJ,MAAM7F,EAAoBniD,KAAKo7C,gBAAgB5kB,QACzCyxB,EAAsBjN,EAAOkN,0BAInC,GAAI/F,GAAqBA,IAAsB8F,EAAqB,CAEhE,MAAMpG,EAAM95C,UACa85C,EAAI2G,kBAAoB3G,EAAI4G,kBAAoB5G,EAAI6G,qBAAuB7G,EAAI8G,wBAEvF1pD,KAAK4iD,GACtB7hD,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,yBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBS,yBAAyBvP,KAAKe,OAIjH6jD,qBAEJ,GADA7jD,KAAKilD,aAAa,SACdjlD,KAAKmB,MAAM8W,WAAWW,QAAQikC,SAAU,CACxC,MAAM+L,EAAW5oD,KAAK6oD,mBACtB7oD,KAAKqkD,SAAS,CAAEvM,aAAc8Q,KAI9BxD,gBACJ,GAAIplD,KAAKmB,MAAM8W,WAAWW,QAAQikC,SAAU,CACxC,MAAM+L,EAAW5oD,KAAK6oD,mBAGtBD,EAAS1T,QAAUl1C,KAAKu9B,MAAMua,aAAa5C,QAC3Cl1C,KAAKqkD,SAAS,CAAEvM,aAAc8Q,IAC1B5oD,KAAKu9B,MAAM6f,SACc,cAArBp9C,KAAKkhD,aACLlhD,KAAKilD,aAAa,YAM1B6D,uBACJ,IAAIC,EAAW,EAIf,OAHI/oD,KAAKk7C,OAAO1kB,QAASuyB,UAAY/oD,KAAKk7C,OAAO1kB,QAASuyB,SAAS/iD,SAC/D+iD,EAAW/oD,KAAKk7C,OAAO1kB,QAASuyB,SAAS/V,IAAIhzC,KAAKk7C,OAAO1kB,QAASuyB,SAAS/iD,OAAS,IAEjF+iD,EAGHF,mBACJ,MAAM5H,EAAmBjhD,KAAK8oD,uBAC9B,MAAO,CACH7R,YAAaj3C,KAAKk7C,OAAO1kB,QAASygB,YAClChC,UAAW,EACXC,QAASl1C,KAAKk7C,OAAO1kB,QAAS2e,SAC9B8L,iBAAAA,GAIAzC,kBAAkBn6B,GACtB,IAAIulB,EAAOvlB,EAAa6iC,gBACxB,MAAM0B,EAAW5oD,KAAK6oD,mBACtBjf,EAAOx9B,KAAK2S,IAAI6pC,EAAS3T,UAAW7oC,KAAKD,IAAIy9B,EAAMgf,EAAS1T,UAExD9oC,KAAK48C,IAAIpf,EAAOgf,EAAS3R,cAAgB/9B,EAAAA,gBAAgB+vC,iCACzDjpD,KAAKk7C,OAAO1kB,QAASygB,YAAcrN,EAC/B5pC,KAAKm7C,MAAM3kB,UACXx2B,KAAKm7C,MAAM3kB,QAAQygB,YAAcrN,IAKrC0S,oBACJ,MAAM6I,EAAgBnlD,KAAKk7C,OAAO1kB,QAC7Bx2B,KAAK87C,eAGCqJ,EAAeH,QACtBhlD,KAAKyjD,OACLzjD,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,sBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBE,eAAehP,KAAKe,MACnGA,KAAKq7C,aAAa7kB,SAClBx2B,KAAKq7C,aAAa7kB,QAAQ0yB,oBAG9BlpD,KAAK4jD,QACL5jD,KAAKonD,2BAA2BpnD,KAAK+S,mBAAmBN,kBAAkB,qBAC1E40C,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBG,gBAAgBjP,KAAKe,MACpGA,KAAKq7C,aAAa7kB,SAClBx2B,KAAKq7C,aAAa7kB,QAAQ2yB,mBAd9BnpD,KAAK4iD,cACL5iD,KAAKk7C,OAAO1kB,QAASimB,UAAW,GAiBhCz8C,KAAKu9B,MAAMyf,mBACXh9C,KAAKqkD,SAAS,CAAErH,kBAAkB,IAAS,KACvCzoB,YAAW,KACHv0B,KAAKq7C,aAAa7kB,SAClBx2B,KAAKq7C,aAAa7kB,QAAQ0yB,oBAE/B,SAEP7B,EAAAA,EAAAA,kBAAiBrnD,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,QAASpW,EAAAA,sBAAsBG,gBAAgBjP,KAAKe,MACpGA,KAAKmB,MAAM8W,WAAWW,QAAQwwC,gBAC9BppD,KAAK+nD,oBAKT1C,QASJ,IAPI35C,EAAAA,EAAAA,YAEA1L,KAAKqpD,MAHyB,IAK9BrpD,KAAKqpD,MAAM,GAGXrpD,KAAKmB,MAAM8W,WAAWW,QAAQikC,SAAU,CACxC78C,KAAK4jD,QACL,MAAM9L,EAAe93C,KAAK6oD,mBAC1B/Q,EAAa5C,QAAUl1C,KAAKu9B,MAAMua,aAAa5C,QAC/Cl1C,KAAKqkD,SAAS,CAAEvM,aAAAA,IACZ93C,KAAKm7C,MAAM3kB,SACXx2B,KAAKm7C,MAAM3kB,QAAQotB,SAKvByF,MAAMzf,GACV,MAAMgf,EAAW5oD,KAAK6oD,mBACtBjf,EAAOx9B,KAAK2S,IAAI6pC,EAAS3T,UAAW7oC,KAAKD,IAAIy9B,EAAMgf,EAAS1T,UAExD9oC,KAAK48C,IAAIpf,EAAOgf,EAAS3R,cAAgB/9B,EAAAA,gBAAgB+vC,iCACzDjpD,KAAKw7C,SAAWoN,EAAS3R,YACzBj3C,KAAKk7C,OAAO1kB,QAASygB,YAAcrN,EAC/B5pC,KAAKm7C,MAAM3kB,UACXx2B,KAAKm7C,MAAM3kB,QAAQygB,YAAcrN,IASrC8Y,qBACJ,IAAI5hD,EAAiB,GACrB,GAAId,KAAKu9B,MAAMyf,iBAAkB,CAC7B,MAAMsM,EAAYtpD,KAAKmB,MAAM8W,WAAWW,QAAQ0wC,WAAapwC,EAAAA,gBAAgBqwC,iBAC7EzoD,GAASyD,EAAAA,EAAAA,QAAO,kBAAmB6Y,OAAOksC,GAAa,KAE3D,OAAOxoD,EAOHmkD,aAAauE,GACZA,GAAYA,IAAaxpD,KAAKkhD,cAInClhD,KAAKkhD,YAAcsI,EAEnBxpD,KAAKunD,4BACLvnD,KAAKypD,4BAMDA,2BACJ,OAAQzpD,KAAKkhD,aACT,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACDlhD,KAAK0pD,eACL,MACJ,QACI1pD,KAAK2pD,gBAOTpC,4BACJ,OAAQvnD,KAAKkhD,aACT,IAAK,QACL,IAAK,UACL,IAAK,OACDlhD,KAAK0nD,kBACL,MACJ,IAAK,QACD1nD,KAAKyhD,iBAAgB,GACrB,MACJ,IAAK,QACL,IAAK,SACL,IAAK,UACDzhD,KAAKyhD,iBAAgB,GACrB,MACJ,QACIzhD,KAAKyhD,iBAAgB,IAIzBiI,eACJ1pD,KAAKqkD,SAAS,CAAE1D,aAAa,IAGzBgJ,eACJ3pD,KAAKqkD,SAAS,CAAE1D,aAAa,IAMzBpD,kBACJv9C,KAAKqkD,SAAS,CAAEhH,cAAc,IAM1BI,kBACCz9C,KAAKu9B,MAAMyf,kBAAoBh9C,KAAKu9B,MAAM6f,SAC3Cp9C,KAAKqkD,SAAS,CAAEhH,cAAc,IAQ9B+J,2BAA2B7xB,GAC/Bv1B,KAAKqkD,SAAS,CACVxD,iBAAkBtrB,IAQlBqsB,sBAAsBl0C,GAC1BA,EAAEg5C,iBAOEnG,YACJ,GAAI7zB,EAAAA,GAA0BC,UAAW,CACrC,MAAM9gB,EAAY1C,OAAOwC,UAAUE,UAC7B+9C,IAAa/9C,EAAUxF,MAAM,WAC7BwjD,IAAWh+C,EAAUxF,MAAM,SAC3ByjD,IAAmBj+C,EAAUxF,MAAM,kBACnC0jD,GAAaD,IAAmBD,KAAYh+C,EAAUxF,MAAM,aAClE,OAAOujD,GAAYE,GAAkBC,EAEzC,OAAO,GA76CG/O,EAAAr8B,aAAsC,CAChD1G,WAAY,CACRW,QAAS,CACL6jC,UAAU,EACVyD,SAAS,EACTE,MAAM,EACNoC,MAAM,EACN7F,kBAAkB,EAClBE,UAAU,EACVhkC,iBAAiB,EACjBwnC,UAAU,GAEdnoC,SAAU,CACN8xC,WAAY,cACZC,QAAS,GACTxmC,MAAO,GACPymC,YAAa,GACb/U,SAAU,EACVr8B,eAAgB,GAChBqxC,SAAU,GACVpwC,WAAY,GACZqwC,kBAAmB,GACnBC,iBAAkB,GAClB3uC,sBAAuB,KAG/BlJ,gBAAiB,CACbvE,cAAeF,EAAAA,sBAAsBE,cACrCC,eAAgBH,EAAAA,sBAAsBG,eACtCC,eAAgBJ,EAAAA,sBAAsBI,eACtCE,cAAeN,EAAAA,sBAAsBM,cACrCC,gBAAiBP,EAAAA,sBAAsBO,gBACvCC,oBAAqBR,EAAAA,sBAAsBQ,oBAC3CC,wBAAyBT,EAAAA,sBAAsBS,wBAC/CE,gBAAiBX,EAAAA,sBAAsBW,gBACvCD,iBAAkBV,EAAAA,sBAAsBU,iBACxCE,aAAcZ,EAAAA,sBAAsBY,aACpCG,uBAAwBf,EAAAA,sBAAsBe,uBAC9CC,mBAAoBhB,EAAAA,sBAAsBgB,mBAC1CH,iBAAkBb,EAAAA,sBAAsBa,iBACxCC,iBAAkBd,EAAAA,sBAAsBc,yzPCxGrC,MAAMy7C,UAAqBxnD,EAAAA,cAKtCyP,YAAmBpR,GACf60C,MAAM70C,GALO,KAAAopD,QAA2CznD,EAAAA,YAEpD,KAAA0nD,cAAoC,KAIxCxqD,KAAKyqD,SAAWzqD,KAAKyqD,SAASnU,KAAKt2C,MAGhC0qD,0BAAuB,IAAAC,EAK1B,OAJA3qD,KAAKwqD,cAAgB,KACG,QAAxBG,EAAI3qD,KAAKuqD,QAAQ/zB,eAAO,IAAAm0B,GAApBA,EAAsBxjD,SAASY,SAAS6iD,iBACxC5qD,KAAKwqD,cAAgBziD,SAAS6iD,eAE3B,KAGJ1mC,SACH,MAAA2mC,EAA6D7qD,KAAKmB,OAA5D,UAAE4B,EAAS,SAAEooC,EAAQ,QAAEgS,EAAO,SAAE3/B,GAAoBqtC,EAAP1pD,GAAK2pD,EAAAA,EAAAA,GAAAD,EAAAE,GAClDC,EAAU,gBAAgBjoD,EAAY,IAAM,KAAKA,GAAa,KACpE,OAA0C,IAAnCD,EAAAA,SAAemf,MAAMkpB,GAAkB,KAC1CroC,EAAAA,cAAA,MAAA2H,OAAAsiB,OAAA,CAAKhqB,UAAWioD,GAAa7pD,EAAK,CAAEu+B,IAAK1/B,KAAKuqD,UACzCznD,EAAAA,SAAeqT,IAAIg1B,GAAU,CAACgB,EAAwB7lC,KACnD,MAAM2kD,GAAW3kD,KAAW62C,KAAe72C,IAAU62C,EAGrD,OAAOr6C,EAAAA,aAAmBqpC,EAAc,CAAE,cAAe8e,EAAQ9mD,QAASnE,KAAKyqD,eAMvFA,SAASvtC,GAKb,GAJAA,EAAMupC,kBACFzmD,KAAKmB,MAAMqc,UACXxd,KAAKmB,MAAMqc,SAAS,CAAE5J,GAAI5T,KAAKmB,MAAMyS,GAAIs3C,aAAclrD,KAAMm9C,UAAWn9C,KAAKmB,MAAMg8C,QAASjgC,MAAAA,IAE5Fld,KAAKuqD,QAAQ/zB,SAAWx2B,KAAKwqD,cAAe,CAC5C,MAAMW,EAAcnrD,KAAKuqD,QAAQ/zB,QAAQ2U,SAASnrC,KAAKmB,MAAMg8C,QAAU,EAAI,GACvEgO,IAAgBpjD,SAAS6iD,eACzBO,EAAYr1B,s1DC9Bb,MAAM8pB,UAAgB98C,EAAAA,cAOjCyP,YAAmBpR,GACf60C,MAAM70C,GAHO,KAAAiqD,WAA8CtoD,EAAAA,YAwCxD,KAAAwhD,iBAAmB,KACtB,MAAM+G,EAAcjuC,OAAOpd,KAAKu9B,MAAM+tB,UAChCC,EAAgBnuC,OAAOpd,KAAKu9B,MAAMiuB,YAClCC,EAAeruC,OAAOpd,KAAKu9B,MAAMmuB,WACjCC,EAAc,IAAIC,KACxB,IAAIC,EAAMF,EAAMG,cAAgBL,EAChC,MAAMM,EAA0CJ,EAAMK,WAAa,EAAIT,EACjEU,EAAwCN,EAAMK,WAAa,IAAMT,GAASI,EAAMO,UAAYb,GAC9FU,GAAkCE,IAElCJ,IAGJ,OAAIA,GADgBzuC,OAAOpd,KAAKmB,MAAM4+C,YA2BzB,KAAAoM,kBAAoB,KACjC,MACMC,EAAW,GACjB,IAAK,IAAIb,EAAQ,EAAGA,GAFF,GAEsBA,IACpCa,EAAS1kD,KAAK6jD,GAElB,MAAMc,EAAYD,EAASj2C,KAAIo1C,GAEvBzoD,EAAAA,cAAA,UAAQ0c,KAAK,WAAWhV,IAAK+gD,EAAO9qD,MAAO8qD,GACtCA,EAAMe,QAAQ,MAI3B,OACIxpD,EAAAA,cAAA,0BACkB,QACdC,UAAW,GAAGi5C,EAAAA,iBAAiBC,wCAC/Bz8B,KAAK,OACLhC,SAAUxd,KAAKusD,qBACf9rD,MAAOT,KAAKu9B,MAAMiuB,WAAU,aACjB,4BACXvvC,KAAK,cACLrI,GAAG,eAEH9Q,EAAAA,cAAA,UAAQ0c,KAAK,YAAU,SACtB6sC,IAKI,KAAAG,gBAAkB,KAC/B,MACMC,EAAS,GACf,IAAK,IAAIpB,EAAM,EAAGA,GAFA,GAEkBA,IAChCoB,EAAO/kD,KAAK2jD,GAEhB,MAAMqB,EAAUD,EAAOt2C,KAAIk1C,GAEnBvoD,EAAAA,cAAA,UAAQ0c,KAAK,WAAWhV,IAAK6gD,GACxBA,EAAIiB,QAAQ,MAIzB,OACIxpD,EAAAA,cAAA,0BACkB,QACdC,UAAW,GAAGi5C,EAAAA,iBAAiBC,wCAC/Bz8B,KAAK,OACLhC,SAAUxd,KAAKusD,qBACf9rD,MAAOT,KAAKu9B,MAAM+tB,SAAQ,aACf,0BACXrvC,KAAK,YACLrI,GAAG,aAEH9Q,EAAAA,cAAA,UAAQ0c,KAAK,YAAU,OACtBktC,IAKI,KAAAC,iBAAmB,KAChC,MACMC,GAAW,IAAIhB,MAAOE,cACtBe,EAAU,GAChB,IAAK,IAAIpB,EAAO,EAAGA,GAHD,IAGoBA,IAClCoB,EAAQnlD,KAAKklD,EAAWnB,GAE5B,MAAMqB,EAAWD,EAAQ12C,KAAIs1C,GAErB3oD,EAAAA,cAAA,UAAQ0c,KAAK,WAAWhV,IAAKihD,GACxBA,EAAKa,QAAQ,MAI1B,OACIxpD,EAAAA,cAAA,0BACkB,QACdC,UAAW,GAAGi5C,EAAAA,iBAAiBC,wCAC/Bz8B,KAAK,OACLhC,SAAUxd,KAAKusD,qBACf9rD,MAAOT,KAAKu9B,MAAMmuB,UAAS,aAChB,2BACXzvC,KAAK,aACLrI,GAAG,cAEH9Q,EAAAA,cAAA,UAAQ0c,KAAK,YAAU,QACtBstC,IAjKT9sD,KAAKusD,qBAAuBvsD,KAAKusD,qBAAqBjW,KAAKt2C,MAC3DA,KAAKu9B,MAAQ,CACTiuB,WAAY,QACZF,SAAU,MACVI,UAAW,QAIZxnC,SACH,MAAM6oC,EACF7zC,EAAAA,gBAAgB8zC,8BAA8BhlD,KAAKhI,KAAKu9B,MAAM+tB,WAC9DpyC,EAAAA,gBAAgB8zC,8BAA8BhlD,KAAKhI,KAAKu9B,MAAMiuB,aAC9DtyC,EAAAA,gBAAgB8zC,8BAA8BhlD,KAAKhI,KAAKu9B,MAAMmuB,WAClE,OACI5oD,EAAAA,cAAA,OACIC,UAAW,GAAGi5C,EAAAA,iBAAiBC,2CAC/Bvc,IAAK1/B,KAAKorD,WAAU,cACPprD,KAAKmB,MAAM,gBAExB2B,EAAAA,cAAA,WACIA,EAAAA,cAAA,WACIA,EAAAA,cAAA,wCACAA,EAAAA,cAAA,gBACIA,EAAAA,cAAA,WAAM9C,KAAKmsD,qBACXrpD,EAAAA,cAAA,WAAM9C,KAAKwsD,mBACX1pD,EAAAA,cAAA,WAAM9C,KAAK2sD,oBACX7pD,EAAAA,cAAA,UAAQqsB,UAAW49B,EAAS5oD,QAASnE,KAAKmB,MAAM0+C,eAAa,cA8B7E0M,qBAAqBrvC,GACzB,OAAQA,EAAM5S,OAAOsJ,IACjB,IAAK,YACD5T,KAAKqkD,SAAS,CAAEiH,SAAUpuC,EAAM5S,OAAO7J,QACvC,MAEJ,IAAK,cACDT,KAAKqkD,SAAS,CAAEmH,WAAYtuC,EAAM5S,OAAO7J,QACzC,MAEJ,IAAK,aACDT,KAAKqkD,SAAS,CAAEqH,UAAWxuC,EAAM5S,OAAO7J,UA3EtCm/C,EAAAjhC,aAAuC,CACjDohC,UAAW,uFClBZ,MAAM7mC,EAAkB,CAC3BunC,cAAe,GACfxC,yBAA0B,EAC1BF,wBAAyB,EACzB4J,2BAA4B,KAC5BsB,+BAAgC,GAChCM,iBAAkB,GAClB0D,qBAAsB,cACtBC,sBAAuB,eACvBC,qBAAsB,mBACtBC,uBAAwB,oBACxBC,2BAA4B,gBAC5BC,+BAAgC,kBAChCC,4BAA6B,2BAC7Bv0C,mBAAoB,KACpBG,oBAAqB,IACrBq0C,cAAe,YACf7+C,aAAc,WACdq+C,8BAA+B,YAC/BS,YAAa,SACbC,cAAe,UAMN1R,EAAmB,CAC5BC,qBAAsB,kBACtB3iC,UAAW,aAMF9E,EAAiB,CAC1BiH,YAAa,eACbhH,cAAe,gBACfiC,sBAAuB,cACvBi3C,cAAe,iBACfC,QAAS,UACTC,MAAO,QACPC,SAAU,WACVr1C,QAAS,WAMAsrC,EAAc,CACvB,QACA,UACA,iBACA,UACA,QACA,QACA,aACA,iBACA,YACA,QACA,OACA,UACA,WACA,aACA,mBACA,SACA,UACA,UACA,UACA,aACA,eACA,WA8EG,IAAKyB,GAAZ,SAAYA,GAERA,EAAAA,EAAA,2DAGAA,EAAAA,EAAA,4CACAA,EAAAA,EAAA,4CACAA,EAAAA,EAAA,0CACAA,EAAAA,EAAA,kEACAA,EAAAA,EAAA,4CAGAA,EAAAA,EAAA,oDAZJ,CAAYA,IAAAA,EAAe,kCC7HpB,IAAKjsC,EAWAG,EAYAnG,EASAw6C,sCAhCZ,SAAYx0C,GACRA,EAAA,UACAA,EAAA,YACAA,EAAA,gBACAA,EAAA,UAJJ,CAAYA,IAAAA,EAAU,KAWtB,SAAYG,GACRA,EAAA,QACAA,EAAA,UACAA,EAAA,QACAA,EAAA,QACAA,EAAA,QALJ,CAAYA,IAAAA,EAAY,KAYxB,SAAYnG,GACRA,EAAA,UACAA,EAAA,YAFJ,CAAYA,IAAAA,EAAkB,KAS9B,SAAYw6C,GACRA,EAAA,wBACAA,EAAA,cACAA,EAAA,cACAA,EAAA,0BAJJ,CAAYA,IAAAA,EAAsB,wFCpD3B,MAAMh5C,EAA8B,CACvCC,UAAW,UAOF+rC,EAAgE,CACzEnrC,OAAQ,UACRH,UAAW,wBACXF,WAAY,QACZG,aAAc,MACdC,UAAW,UACXH,gBAAiB,OACjBH,sBAAuB,QACvBC,wBAAyB,MACzBH,aAAc,QACdC,eAAgB,KAOPY,EAAwD,CACjEP,UAAW,CAAEhV,MAAO,eAAgBwV,OAAQ,QAC5CV,WAAY,CAAE9U,MAAO,SAAUwV,OAAQ,SACvCN,UAAW,CAAElV,MAAO,aAAcwV,OAAQ,aAC1CT,gBAAiB,CAAE/U,MAAO,eAAgBwV,OAAQ,mBAClDP,aAAc,CAAEjV,MAAO,SAAUwV,OAAQ,WACzCZ,sBAAuB,CAAE5U,MAAO,cAAewV,OAAQ,SACvDX,wBAAyB,CAAE7U,MAAO,cAAewV,OAAQ,WACzDd,aAAc,CAAE1U,MAAO,cAAewV,OAAQ,SAC9Cb,eAAgB,CAAE3U,MAAO,cAAewV,OAAQ,YA+BvCf,EAAoD,CAC7D84C,QAAS,CACLv4C,UAAW,wBACXF,WAAY,QACZG,aAAc,MACdL,sBAAuB,QACvBC,wBAAyB,OAE7B24C,QAAS,CACLx4C,UAAW,kBACXF,WAAY,QACZG,aAAc,MACdL,sBAAuB,QACvBC,wBAAyB,OAE7B44C,QAAS,CACLz4C,UAAW,wBACXF,WAAY,SACZG,aAAc,MACdL,sBAAuB,QACvBC,wBAAyB,OAE7B64C,QAAS,CACL14C,UAAW,wBACXF,WAAY,OACZG,aAAc,MACdL,sBAAuB,OACvBC,wBAAyB,OAE7B84C,QAAS,CACL34C,UAAW,SACXF,WAAY,QACZG,aAAc,MACdL,sBAAuB,QACvBC,wBAAyB,QAQpBY,EAA2D,CACpEY,KAAM,CACFP,IAAK,gBACLJ,IAAK,CACD6wB,OAAQ,8BACRC,QAAS,yDACTonB,oBAAqB,qEACrBC,gBAAiB,8BACjBC,sBAAuB,uCACvBC,kBAAmB,4CACnBC,cAAe,uDAGvBC,QAAS,CACLn4C,IAAK,cACLJ,IAAK,CACDw4C,EAAG,IACHC,GAAI,MACJC,GAAI,OACJC,IAAK,MAGbn5C,UAAW,CACPY,IAAK,gBACLJ,IAAK,CACD44C,MAAO,MACPpoB,QAAS,OACTqoB,MAAO,OACPC,WAAY,OACZC,QAAS,SAGjBn4C,MAAO,CACHR,IAAK,YACLJ,IAAK,CACD+5B,MAAO,UACPH,MAAO,UACPhH,KAAM,UACN8H,KAAM,UACN/H,MAAO,UACPqmB,KAAM,UACN7e,QAAS,UACTzH,IAAK,UACL4H,OAAQ,YAGhBj7B,gBAAiB,CACbe,IAAK,sBACLJ,IAAK,CACDi5C,KAAM,OACNC,UAAW,kCACXC,WAAY,iBACZC,OAAQ,mCACRC,QAAS,kJC5JN,MAAMC,UAAa3sD,EAAAA,UAG9ByP,YAAmBpR,GACf60C,MAAM70C,GAHO,KAAAmJ,OAA0CxH,EAAAA,YAIvD9C,KAAK0vD,oBAAsB1vD,KAAK0vD,oBAAoBpZ,KAAKt2C,MACzDA,KAAK2vD,WAAa3vD,KAAK2vD,WAAWrZ,KAAKt2C,MACvCA,KAAK4vD,SAAW5vD,KAAK4vD,SAAStZ,KAAKt2C,MAGhC62C,oBACH,CAAC,QAAS,cAAc7U,SAAS9kB,IAC7B/T,QAAUA,OAAOE,iBAAiB6T,EAAOld,KAAK0vD,qBAAqB,MAIpErY,uBACH,CAAC,QAAS,cAAcrV,SAAS9kB,IAC7B/T,QAAUA,OAAOmuC,oBAAoBp6B,EAAOld,KAAK0vD,qBAAqB,MAIvEG,eACH,OAAO7vD,KAAKsK,OAAOksB,QAASs5B,YAGzB5Y,sBAAsBC,GACzB,IAAIC,GAAe,EAInB,OAHID,EAAU4Y,aAAe/vD,KAAKmB,MAAM4uD,aACpC3Y,GAAe,GAEZA,EAGJlzB,SACH,MAAM,UAAEnhB,EAAS,MAAEyF,GAAUxI,KAAKmB,MAC5B6uD,EAA8BhwD,KAAKmB,MAAM4uD,WAAWr7C,MACpDuN,EAAgB+tC,EAAUhqD,OAChC,OACIlD,EAAAA,cAAA,OAAKC,UAAWA,EAAWyF,MAAOA,EAAOk3B,IAAK1/B,KAAKsK,OAAM,gBAAiBtK,KAAKmB,MAAM4uD,WAAWx7C,UAC5FzR,EAAAA,cAAA,MAAI0c,KAAK,OAAOzc,UAAW,GAAGA,UAAmB+/C,UAAW9iD,KAAK2vD,WAAYM,QAASjwD,KAAK4vD,UACtFI,EAAU75C,KAAI,CAAC+5C,EAA0B5pD,IAElCxD,EAAAA,cAACqtD,EAAAA,SAAQ1lD,OAAAsiB,OAAA,CACLnZ,GAAIs8C,EAASt8C,GACbpJ,IAAKlE,EACLwN,MAAOo8C,EAASp8C,MAChB/Q,UAAW,GAAGA,cACdgR,SAAUm8C,EAASn8C,SACnBxS,KAAM2uD,EAAS3uD,KACfiV,aAAc05C,EAAS15C,aACvB45C,MAAOF,EAASE,MAChBC,SAAUH,EAASG,SACnBC,UAAWruC,EACXsuC,UAAWjqD,EACXkqD,MAAON,EAASM,MAChBx8C,SAAUk8C,EAASl8C,SACnBC,WAAYi8C,EAASj8C,WACrBC,eAAgBg8C,EAASh8C,gBACpBg8C,EAASt8C,GAAGxM,SAAS,aAAe,GAAK,CAAE+M,UAAW+7C,EAAS/7C,WAAY,CAChFC,QAAS87C,EAAS97C,QAClB6C,oBAAqBi5C,EAASj5C,oBAC9Bw5C,oBAC4BvwD,IAArBgwD,EAAS97C,SAAyB87C,EAAS97C,QAAQM,OAASw7C,EAAS97C,QAAQM,MAAM1O,OAAS,GAEnG7B,QAASnE,KAAKmB,MAAM+9C,gBACpB5B,QAASt9C,KAAKmB,MAAMm8C,QACpBE,OAAQx9C,KAAKmB,MAAMq8C,OACnBsF,UAAW9iD,KAAKmB,MAAM2hD,UACtBmN,QAASjwD,KAAKmB,MAAM8uD,QACpBtyC,YAAa3d,KAAKmB,MAAMwc,YACxB+yC,WAAY1wD,KAAKmB,MAAMuvD,WACvBC,SAAUT,EAASS,gBASxCjB,oBAAoBhiD,GACvB,MAAMpD,EAASoD,EAAEpD,YAEGpK,IAAhBF,KAAKsK,QACqB,OAAxBtK,KAAKsK,OAAOksB,UAAqB9oB,EAAEpD,SAAWtK,KAAKsK,OAAOksB,SAAWx2B,KAAKsK,OAAOksB,QAAQrvB,SAASmD,KAEpGtK,KAAKmB,MAAMyvD,gBAAgBljD,GAI3BiiD,WAAWzyC,GACfld,KAAKmB,MAAM2hD,UAAY5lC,GAGnB0yC,SAAS1yC,GACbld,KAAKmB,MAAM8uD,QAAU/yC,wFCjGd,MAAMizC,UAAiBrtD,IAAAA,cAGlCyP,YAAmBpR,GACf60C,MAAM70C,GAHO,KAAA+uD,SAA+CptD,IAAAA,YAI5D9C,KAAKyqD,SAAWzqD,KAAKyqD,SAASnU,KAAKt2C,MACnCA,KAAK6wD,SAAW7wD,KAAK6wD,SAASva,KAAKt2C,MACnCA,KAAK8wD,aAAe9wD,KAAK8wD,aAAaxa,KAAKt2C,MAC3CA,KAAK+wD,YAAc/wD,KAAK+wD,YAAYza,KAAKt2C,MACzCA,KAAK2vD,WAAa3vD,KAAK2vD,WAAWrZ,KAAKt2C,MACvCA,KAAK4vD,SAAW5vD,KAAK4vD,SAAStZ,KAAKt2C,MACnCA,KAAKgxD,QAAUhxD,KAAKgxD,QAAQ1a,KAAKt2C,MAG9BkkB,SACH,MAAA2mC,EAAqB7qD,KAAKmB,MAAfA,EAAKsJ,OAAAsiB,OAAA,KAAAkkC,EAAAA,EAAAA,GAAApG,GAAAA,IAChB,IAAI9nD,EAAY/C,KAAKmB,MAAM4B,UAC3B,MAAM0tD,IAAgBtvD,EAAMiT,QAQ5B,OAPIq8C,EACA1tD,GAAa,sCACN/C,KAAKmB,MAAM6S,SAClBjR,GAAa,wCACN/C,KAAKmB,MAAMqV,eAClBzT,GAAa,oCAGbD,IAAAA,cAAA,MAAI8Q,GAAIzS,EAAMyS,GAAI4L,KAAK,gBACnB1c,IAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,CACI2S,IAAK1/B,KAAKkwD,SACVntD,UAAWA,EAAS,oBACD0tD,GACdtvD,EAAMI,KAAO,CAAE,YAAaJ,EAAMI,MAAS,GAAG,CACnDie,KAAMre,EAAM8S,WAAa,gBAAkB,WAAU,eACvC9S,EAAMmvD,UAAS,gBACdnvD,EAAMovD,UAAa,EAAC,iBACnBpvD,EAAMovD,UAAU,oBACbpvD,EAAMqV,cACpBrV,EAAM8S,YAAc9S,EAAM6S,SAAW,CAAE,iBAAiB,EAAM,gBAAgB,GAAS,GACvF7S,EAAM8S,WAAa,CAAE,yBAAyB,GAAS,GACvDw8C,EAAc,CAAE,iBAAiB,EAAO,iBAAiB,GAAS,GAClEtvD,EAAM+S,eAAiB,CAAE,gBAAgB,GAAS,GAClD/S,EAAMgT,UAAY,CAAE,aAAchT,EAAMgT,WAAc,GACtDhT,EAAM4S,SAAW,CAAEN,KAAMtS,EAAM4S,UAAa,GAC5C5S,EAAM8V,oBAAsB,CAAE,kBAAmB9V,EAAM8V,qBAAwB,GAAG,CACvF9S,QAASnE,KAAKyqD,SACdnN,QAASt9C,KAAK6wD,SACdlzC,YAAa3d,KAAK8wD,aAClBJ,WAAY1wD,KAAK+wD,YACjBjO,UAAW9iD,KAAK2vD,WAChBM,QAASjwD,KAAK4vD,SACdpS,OAAQx9C,KAAKgxD,UAEZ7vD,EAAMivD,OAASttD,IAAAA,cAAA,OAAKqd,IAAKhf,EAAMivD,MAAOxW,IAAKz4C,EAAMkvD,UAAY,GAAIttD,UAAU,gBAC3E5B,EAAM2S,QAMhB+iC,oBACC72C,KAAKmB,MAAMwvD,UACXp8B,YAAW,KACPv0B,KAAKkwD,SAAS15B,QAASV,UACxB,GAIJyhB,qBACCv3C,KAAKmB,MAAMwvD,UACXp8B,YAAW,KACPv0B,KAAKkwD,SAAS15B,QAASV,UACxB,GAIH20B,SAASvtC,GACbld,KAAKmB,MAAMgD,QAAU+Y,GAGjB2zC,SAAS3zC,GACbld,KAAKmB,MAAMm8C,QAAUpgC,GAGjB4zC,aAAa5zC,GACjBld,KAAKmB,MAAMwc,YAAcT,GAGrB6zC,YAAY7zC,GAChBld,KAAKmB,MAAMuvD,WAAaxzC,GAGpByyC,WAAWzyC,GACfA,EAAMupC,kBACNzmD,KAAKmB,MAAM2hD,UAAY5lC,GAGnB0yC,SAAS1yC,GACbA,EAAMupC,kBACNzmD,KAAKmB,MAAM8uD,QAAU/yC,GAGjB8zC,QAAQ9zC,GACZld,KAAKmB,MAAMq8C,OAAStgC,knBCnGb,MAAMggC,UAAyBp6C,EAAAA,cAY1CyP,YAAmBpR,GACf60C,MAAM70C,GAPO,KAAA+vD,QAA8CpuD,EAAAA,YAE9C,KAAAquD,SAA+CruD,EAAAA,YAM5D9C,KAAKmkB,SAAUC,EAAAA,EAAAA,kBAAiB,QAASpkB,KAAKmB,MAAMmjB,iBAAmB,IAGpEJ,SACH,MAAA2mC,EAAsE7qD,KAAKmB,OAArE,UAAE4B,EAAS,cAAEkL,EAAa,eAAEC,EAAc,MAAE1F,GAAiBqiD,EAAP1pD,GAAK2pD,EAAAA,EAAAA,GAAAD,EAAAE,GACjE/qD,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKmB,MAAMg8C,QAAUpvC,EAAAA,GAAsBG,eAAiBH,EAAAA,GAAsBE,cACrH,MAAM+jC,GAAYjtB,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAC5E,OACIrhB,EAAAA,cAAA,OAAKC,UAAW,GAAGA,eAAwBoB,QAASnE,KAAKmB,MAAMqc,SAAUhV,MAAOA,EAAOgX,KAAK,QACxF1c,EAAAA,cAACwnD,EAAAA,aAAY7/C,OAAAsiB,OAAA,CAAChqB,UAAW/C,KAAKmB,MAAM4B,WAAe5B,GAC/C2B,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,cAAoB9e,EAAelL,UAAW,GAAGA,aAAsB28B,IAAK1/B,KAAKkxD,SAAalf,IAC9FlvC,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,cAAoB7e,EAAgBnL,UAAW,GAAGA,cAAuB28B,IAAK1/B,KAAKmxD,UAAcnf,KAErGlvC,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKkxD,SACnD,IACAjjD,GAELnL,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKmxD,UACnD,IACAjjD,KAhCHgvC,EAAAv+B,aAAgD,CAC1D1Q,cAAe,OACfC,eAAgB,0aC0BjB,MAAMkjD,EACM,gBADNA,EAEA,UAUE,MAAMzT,UAAsB76C,EAAAA,cAqEvCyP,YAAmBpR,GACf60C,MAAM70C,GA/CF,KAAAkwD,kBAA8B,GAQrB,KAAAC,gBAAmDxuD,EAAAA,YAEnD,KAAAyuD,cAAoDzuD,EAAAA,YAEpD,KAAA0uD,eAAqD1uD,EAAAA,YAErD,KAAA2uD,iBAAuD3uD,EAAAA,YAEvD,KAAA4uD,gBAAsD5uD,EAAAA,YAEtD,KAAA6uD,oBAA0D7uD,EAAAA,YAE1D,KAAA8uD,wBAA8D9uD,EAAAA,YAE9D,KAAA+uD,gBAAmD/uD,EAAAA,YAEnD,KAAAgvD,uBAA0DhvD,EAAAA,YAE1D,KAAAivD,gBAAmDjvD,EAAAA,YAEnD,KAAAkvD,QAAiClvD,EAAAA,YAEjC,KAAAmvD,cAAoDnvD,EAAAA,YAEpD,KAAAovD,gBAAsDpvD,EAAAA,YAEtD,KAAAqvD,qBAAwDrvD,EAAAA,YA2KlE,KAAAmkD,kBAAqBmL,GAAuB,KAC/C,MAAMC,EAAiBryD,KAAKsyD,mBAAmBtyD,KAAKsxD,iBACpDnoD,QAAUA,OAAOs+C,aAAaznD,KAAKuyD,qBAEnCvyD,KAAKqkD,SAAS,CACVmO,kBAAkB,EAClBC,yBAA0BJ,EAAeK,WACzCC,wBAAyBN,EAAeO,UAlPd,IAkPkD,IAE5ER,GAAYrqD,SAAS6iD,cAAejiD,gBAAkB3I,KAAKsxD,gBAAgB96B,QAASq8B,aACpF7yD,KAAKuyD,oBACDppD,QACAA,OAAOorB,YAAW,KACdv0B,KAAK8yD,uBACNnV,EAAcoV,yBAkFZ,KAAAC,iBAAoBtlD,IACjC,MAAMpD,EAASoD,EAAEpD,QAGRtK,KAAKizD,cAAgB7B,GACjB9mD,IAAWtK,KAAK8xD,uBAAuBt7B,QAASq8B,YAC7CvoD,EAAO3B,gBAAkB3I,KAAK8xD,uBAAuBt7B,QAASq8B,cACrE7yD,KAAKizD,cAAgB7B,GACjB9mD,IAAWtK,KAAK+xD,gBAAgBv7B,QAASq8B,YACtCvoD,EAAO3B,gBAAkB3I,KAAK+xD,gBAAgBv7B,QAASq8B,aAGnE7yD,KAAKqkD,SAAS,CACV6O,UAAWlzD,KAAKu9B,MAAM21B,YAmSjB,KAAAC,2BAA6B,IAEtCrwD,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,mDAAoD1zB,IAAK1/B,KAAK8xD,wBAC3FhvD,EAAAA,cAAA,UACI48B,IAAK1/B,KAAKyxD,iBAAgB,aACdzxD,KAAKmB,MAAMglB,UAAUpX,mBACjChM,UAAW,GAAG46C,EAAcyV,2CAC5BjvD,QAASnE,KAAKqzD,wBAElBvwD,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKyxD,kBACnDzxD,KAAKmB,MAAMglB,UAAUpX,qBAUrB,KAAAukD,oBAAsB,IAE/BxwD,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,iDAAkD1zB,IAAK1/B,KAAK+xD,iBACzFjvD,EAAAA,cAAA,UACI48B,IAAK1/B,KAAK0xD,gBAAe,aACb1xD,KAAKmB,MAAMglB,UAAUu5B,kBACjC38C,UAAW,GAAG46C,EAAcyV,yCAC5BjvD,QAASnE,KAAKuzD,wBAElBzwD,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAK0xD,iBACnD1xD,KAAKmB,MAAMglB,UAAUu5B,oBAUrB,KAAA8T,wBAA0B,KACvCxzD,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKmB,MAAMw9C,eACxC5wC,EAAAA,GAAsBS,wBACtBT,EAAAA,GAAsBQ,oBAC5B,MAAMyjC,GAAYjtB,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAC5E,OACIrhB,EAAAA,cAAA,OAAK48B,IAAK1/B,KAAKmyD,qBAAsBpvD,UAAW,GAAG46C,EAAcyV,oDAC7DtwD,EAAAA,cAACwnD,EAAAA,aAAY,CACT9sC,SAAUxd,KAAKmB,MAAMy9C,iBACrBzB,QAASn9C,KAAKmB,MAAMw9C,eACpB57C,UAAW,GAAG46C,EAAcyV,kDAE5BtwD,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,CACI2S,IAAK1/B,KAAK2xD,oBAAmB,aACjB3xD,KAAKmB,MAAMglB,UAAU5X,oBACjCxL,UAAW,GAAG46C,EAAcyV,yCACxBphB,IAERlvC,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,CACI2S,IAAK1/B,KAAK4xD,wBAAuB,aACrB5xD,KAAKmB,MAAMglB,UAAU3X,wBACjCzL,UAAW,GAAG46C,EAAcyV,6CACxBphB,KAGZlvC,EAAAA,cAAC68B,EAAAA,oBAAmB,CAChB58B,UAAW,GAAG46C,EAAcyV,iDAC5B1rC,QAAQ,cACRpd,OAAQtK,KAAK2xD,qBAEZ,IACA3xD,KAAKmB,MAAMglB,UAAU5X,qBAE1BzL,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAK4xD,yBACnD,IACA5xD,KAAKmB,MAAMglB,UAAU3X,2BAUrB,KAAAilD,oBAAsB,KACnCzzD,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKmB,MAAM+8C,QAAUnwC,EAAAA,GAAsBO,gBAAkBP,EAAAA,GAAsBM,cACtH,MAAM2jC,GAAYjtB,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SACtEuvC,EAAoB,CACtB3wD,UAAW,GAAG46C,EAAcyV,iDAC5B51C,SAAUxd,KAAKmB,MAAMg9C,YACrBhB,QAASn9C,KAAKmB,MAAM+8C,QACpBZ,QAASt9C,KAAKinD,oBACdzJ,OAAQx9C,KAAK8yD,mBACbn1C,YAAa3d,KAAKinD,oBAClByJ,WAAY1wD,KAAK8yD,oBAGrB,OACIhwD,EAAAA,cAACwnD,EAAAA,aAAY7/C,OAAAsiB,OAAA,GAAK2mC,GACd5wD,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,cACgB/sB,KAAKmB,MAAMglB,UAAU9X,cACjCqxB,IAAK1/B,KAAKiyD,cACVlvD,UAAW,GAAG46C,EAAcyV,mCACxBphB,IAERlvC,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,cACgB/sB,KAAKmB,MAAMglB,UAAU7X,gBACjCoxB,IAAK1/B,KAAKkyD,gBACVnvD,UAAW,GAAG46C,EAAcyV,qCACxBphB,MAUH,KAAA2hB,mBAAqB,KAClC,MAAMC,EAA2B,CAC7BhgD,GAAI,cACJigD,QAAQ,EACR9wD,UAAW,GAAG46C,EAAcyV,0CAC5BjnD,IAAKnM,KAAKmB,MAAM22C,aAAa7C,UAC7Bl2B,IAAK/e,KAAKmB,MAAM22C,aAAa5C,QAC7B/gC,UAAWnU,KAAKmB,MAAMglB,UAAUxX,aAChCmlD,eAAgB9zD,KAAKmB,MAAM22C,aAAamJ,iBACxCjiC,KAAMhf,KAAKmB,MAAM28C,gBAAkB,EACnCiW,YAAa,aACbC,iBAAiB,EACjBx2C,SAAUxd,KAAKmB,MAAMo9C,iBACrB0V,YAAY,EACZ10B,aAAa,EACb20B,yBAAyB,EACzBC,kBAAmBn0D,KAAKo0D,2BAA2Bp0D,KAAKmB,MAAM22C,aAAab,aAC3Eod,aAAc,CACV,CACIzgD,GAAI,mBACJnT,MAAOT,KAAKmB,MAAM22C,aAAab,YAC/Bqd,cAAet0D,KAAKmB,MAAM22C,aAAab,YAAY33C,WACnD6U,UAAWnU,KAAKmB,MAAMglB,UAAUvX,oBAK5C,OAAO9L,EAAAA,cAACyxD,EAAAA,OAAM9pD,OAAAsiB,OAAA,GAAK6mC,KAON,KAAAY,oBAAsB,KACnC,MAAMC,EAAkC,CACpC7gD,GAAI,eACJigD,QAAQ,EACR9wD,UAAW,GAAG46C,EAAcyV,uCAC5BjnD,IAAK,EACL4S,IAAK,IACLC,KAAMhf,KAAKmB,MAAM68C,iBAAmB,EACpC+V,YAAa,WACbC,iBAAiB,EACjBx2C,SAAUxd,KAAKmB,MAAMk9C,eACrBf,QAASt9C,KAAKinD,oBACdzJ,OAAQx9C,KAAK8yD,mBACbmB,YAAY,EACZ10B,aAAa,EACb20B,yBAAyB,EACzBG,aAAc,CACV,CACIzgD,GAAI,oBACJnT,MAAO2L,KAAK68B,MAAMjpC,KAAKmB,MAAMu9C,eAC7B4V,cAAeloD,KAAK68B,MAAMjpC,KAAKmB,MAAMu9C,eAAep/C,WACpD6U,UAAWnU,KAAKmB,MAAMglB,UAAUtX,oBAI5C,OAAO/L,EAAAA,cAACyxD,EAAAA,OAAM9pD,OAAAsiB,OAAA,GAAK0nC,KA0DN,KAAAL,2BAA8BM,GAAoB,IACxD10D,KAAK20D,qBAAqBD,GA3xBjC10D,KAAKuyD,oBAAsB,EAC3BvyD,KAAK40D,qBAAuB,EAC5B50D,KAAKizD,YAAc,GACnBjzD,KAAK8yD,mBAAqB9yD,KAAK8yD,mBAAmBxc,KAAKt2C,MACvDA,KAAK60D,iBAAmB70D,KAAK60D,iBAAiBve,KAAKt2C,MACnDA,KAAK80D,iBAAmB90D,KAAK80D,iBAAiBxe,KAAKt2C,MACnDA,KAAKqzD,sBAAwBrzD,KAAKqzD,sBAAsB/c,KAAKt2C,MAC7DA,KAAKgzD,iBAAmBhzD,KAAKgzD,iBAAiB1c,KAAKt2C,MACnDA,KAAKuzD,sBAAwBvzD,KAAKuzD,sBAAsBjd,KAAKt2C,MAC7DA,KAAK+0D,YAAc/0D,KAAK+0D,YAAYze,KAAKt2C,MACzCA,KAAKg1D,aAAeh1D,KAAKg1D,aAAa1e,KAAKt2C,MAC3CA,KAAK8wD,aAAe9wD,KAAK8wD,aAAaxa,KAAKt2C,MAC3CA,KAAK+wD,YAAc/wD,KAAK+wD,YAAYza,KAAKt2C,MACzCA,KAAKi1D,eAAiBj1D,KAAKi1D,eAAe3e,KAAKt2C,MAC/CA,KAAKk1D,aAAel1D,KAAKk1D,aAAa5e,KAAKt2C,MAC3CA,KAAKu9B,MAAQ,CACTi1B,kBAAkB,EAClBC,yBAA0B,EAC1BE,yBAA0B,IAC1BO,UAAU,EACViC,iBAAkB,EAClBlC,YAAajzD,KAAKmB,MAAMu6C,kBACxB0Z,aAAc,IAIlBp1D,KAAKmkB,SAAUC,EAAAA,EAAAA,kBAAiB,QAASpkB,KAAKmB,MAAMmjB,iBAAmB,IApCpE,gCAAgCnjB,EAA4Bo8B,GAC/D,MAAMglB,uWAAS8S,CAAA,GAAQ93B,GAIvB,OAHKp8B,EAAMi7C,wBACPmG,EAAU2Q,UAAW,GAElB3Q,EAkCJhL,mBAAmB+d,GAGlBt1D,KAAKmB,MAAMs9C,+BAAiC6W,EAAc7W,8BAC1Dz+C,KAAKmB,MAAMyT,+BAAiC0gD,EAAc1gD,8BAC1D5U,KAAKmB,MAAMq+C,oBAAsB8V,EAAc9V,mBAE/Cx/C,KAAKu1D,sBAINrxC,SACH,MAAA2mC,EAAgC7qD,KAAKmB,OAA/B,UAAE4B,GAAqB8nD,EAAP1pD,GAAK2pD,EAAAA,EAAAA,GAAAD,EAAAE,GAErB9T,EAAcj3C,KAAK20D,qBAAqBxzD,EAAM22C,aAAab,aAC3D/B,EAAUl1C,KAAK20D,qBAAqBxzD,EAAM22C,aAAa5C,SAEvDsgB,EAAiB,CACnBC,IAAKz1D,KAAKu9B,MAAMo1B,wBAChB/X,KAAM56C,KAAKu9B,MAAMk1B,0BAGfiD,EAAe,CACjB9a,KAAM56C,KAAKu9B,MAAM43B,kBAGrBn1D,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKmB,MAAMi8C,QAAUrvC,EAAAA,GAAsBG,eAAiBH,EAAAA,GAAsBE,cACrH,MAAM+jC,GAAYjtB,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAC5E,OACIrhB,EAAAA,cAAA,OACIC,UAAWA,EACX28B,IAAK1/B,KAAK6xD,gBACVryC,KAAK,OACLsjC,UAAW9iD,KAAKmB,MAAM29C,6BACtBtB,OAAQx9C,KAAKmB,MAAMq8C,OACnBF,QAASt9C,KAAKmB,MAAMm8C,SAEpBx6C,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,mCAC7BtwD,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,mDAC7BtwD,EAAAA,cAACwnD,EAAAA,aAAY,CACTvnD,UAAW,GAAG46C,EAAcyV,gDAC5B51C,SAAUxd,KAAKmB,MAAMy8C,YACrBT,QAASn9C,KAAKmB,MAAMi8C,SAEpBt6C,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,CACI2S,IAAK1/B,KAAKuxD,cAAa,aACXvxD,KAAKmB,MAAMglB,UAAUlY,cACjClL,UAAW,GAAG46C,EAAcyV,mCACxBphB,IAERlvC,EAAAA,cAAA,SAAA2H,OAAAsiB,OAAA,CACI2S,IAAK1/B,KAAKwxD,eAAc,aACZxxD,KAAKmB,MAAMglB,UAAUjY,eACjCnL,UAAW,GAAG46C,EAAcyV,oCACxBphB,KAGZlvC,EAAAA,cAAC68B,EAAAA,oBAAmB,CAAC58B,UAAW/C,KAAKu9B,MAAM63B,aAAc1tC,QAAQ,cAAcpd,OAAQtK,KAAKuxD,eACvF,IACAvxD,KAAKmB,MAAMglB,UAAUlY,eAE1BnL,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKwxD,gBACnD,IACAxxD,KAAKmB,MAAMglB,UAAUjY,iBAG9BpL,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,gCAC7BtwD,EAAAA,cAAA,OACIC,UAAW,GAAG46C,EAAcyV,6CAA4C,cAC3DpzD,KAAKmB,MAAMkW,eAAc,YAC5B,UAET,GAAGrX,KAAKmB,MAAMglB,UAAUrX,0BAA0BmoC,OAAiB/B,KAExEpyC,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,qCAAoC,cAAc,QAC9Enc,EAAW,MAAK/B,IAGzBpyC,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,6CAA8CpzD,KAAK2zD,sBACnF3zD,KAAKmB,MAAMu6C,mBAAqB17C,KAAKmzD,6BACrCnzD,KAAKmB,MAAM08C,YAAc79C,KAAKszD,sBAC9BtzD,KAAKu9B,MAAM21B,UACRpwD,EAAAA,cAAC2sD,EAAAA,KAAI,CACD/vB,IAAK1/B,KAAKgyD,QACVjvD,UAAW,GAAG46C,EAAcyV,+BAC5BrD,WAAY/vD,KAAKu9B,MAAM01B,YACvBzqD,MAAOktD,EACP9E,gBAAiB5wD,KAAKgzD,iBACtB9T,gBAAiBl/C,KAAK60D,iBACtBvX,QAASt9C,KAAKg1D,aACdxX,OAAQx9C,KAAK+0D,YACbp3C,YAAa3d,KAAK8wD,aAClBJ,WAAY1wD,KAAK+wD,YACjBjO,UAAW9iD,KAAKi1D,eAChBhF,QAASjwD,KAAKk1D,gBAGpBl1D,KAAKmB,MAAMkW,gBACTvU,EAAAA,cAAA,OAAKC,UAAW,GAAG46C,EAAcyV,mDAAoD1zB,IAAK1/B,KAAKsxD,iBAC1FtxD,KAAKyzD,wBAGZzzD,KAAKmB,MAAMkW,gBACTvU,EAAAA,cAAA,OACIC,UAAW,GAAG46C,EAAcyV,mDACxBpzD,KAAKu9B,MAAMi1B,iBAAmB,OAAS,SAE3ClV,QAASt9C,KAAKinD,oBACdzJ,OAAQx9C,KAAK8yD,mBACbn1C,YAAa3d,KAAKinD,oBAClByJ,WAAY1wD,KAAK8yD,mBACjBtqD,MAAOgtD,EACPh2C,KAAK,gBAEJxf,KAAKw0D,uBAGbx0D,KAAKwzD,4BA6BfrK,iBACH50B,YAAW,KACHv0B,KAAKuxD,cAAc/6B,SACnBx2B,KAAKuxD,cAAc/6B,QAAQV,UAEhC,GAGAozB,kBACH30B,YAAW,KACHv0B,KAAKwxD,eAAeh7B,SACpBx2B,KAAKwxD,eAAeh7B,QAAQV,UAEjC,GAGA6/B,uBAEC31D,KAAKmB,MAAMi7C,wBACPp8C,KAAKizD,cAAgB7B,EACrBpxD,KAAKyxD,iBAAiBj7B,QAASV,QAE/B91B,KAAK0xD,gBAAgBl7B,QAASV,SAKnC+gB,oBAGoB,IAAD+e,GAFtBzsD,QAAUA,OAAOE,iBAAiB,SAAUrJ,KAAK80D,kBACjD90D,KAAK80D,mBACD90D,KAAK61D,eAC4B,QAAjCD,EAAA51D,KAAKmyD,qBAAqB37B,eAAO,IAAAo/B,GAAjCA,EAAmCvtB,aAAa,SAAU,SAI3DgP,uBACHluC,QAAUA,OAAOmuC,oBAAoB,SAAUt3C,KAAK80D,kBAGhDA,mBACJ,MAAMgB,EAAS91D,KAAK6xD,gBAAgBr7B,QAAS2U,SAAS,GACtD,IAAI4qB,EAAyB,EAI7B,IAAK,IAAI9rD,EAAI,EAAGA,EAAI6rD,EAAO3qB,SAASnlC,OAAQiE,SACD/J,IAAnC41D,EAAO3qB,SAASlhC,GAAGkhC,SAAS,IAAoB2qB,EAAO3qB,SAASlhC,GAAGkhC,SAAS,GAAGpoC,UAAUqE,SAAS,mBAClG2uD,GAA0BD,EAAO3qB,SAASlhC,GAAGsB,aAIrD,MAAMyqD,EAAcD,EAAyB,IAK7C,GAJAD,EAAO3qB,SAAS,GAAG9C,aAAa,QAAS,sBAA2B2tB,QAChEh2D,KAAKu9B,MAAMi1B,kBACXxyD,KAAK8yD,sBAEJ9yD,KAAKmB,MAAMkW,eAAgB,CAC5B,MAAMg7C,EAAiBryD,KAAKsyD,mBAAmBtyD,KAAKsxD,iBACpDtxD,KAAKqkD,SAAS,CACVoO,yBAA0BJ,EAAeK,WACzCC,wBAAyBN,EAAeO,UAzTlB,MA4T1B5yD,KAAKu9B,MAAM21B,UACXlzD,KAAKqkD,SAAS,CACV6O,UAAU,IAIlB,MAAM+C,EAAoBj2D,KAAK6xD,gBAAgBr7B,QAASjrB,YAClD2qD,EAAc/sD,QAAUA,OAAOgtD,WACrCn2D,KAAKo2D,gCAAgCH,EAAmBC,GAyBpDlB,aAAatnD,GACjB,MAAM2oD,EAA4B3oD,EAAEpD,OAClB+rD,EAAO52C,aAAa,oBAElCzf,KAAKmB,MAAMi+C,gBAAgB,CACvB7qC,SAAU8hD,EAAO1tD,cAAeA,cAAeA,cAAe8W,aAAa,iBAC3E7L,GAAIyiD,EAAO1tD,cAAeiL,GAC1BrS,KAAM80D,EAAO52C,aAAa,eAK9Bs1C,YAAYrnD,GACkBA,EAAEpD,OACXmV,aAAa,oBAElCzf,KAAKmB,MAAMm+C,iBAIXwR,aAAapjD,GACjB,MAAM2oD,EAA4B3oD,EAAEpD,OAClB+rD,EAAO52C,aAAa,oBAElCzf,KAAKmB,MAAMi+C,gBAAgB,CACvB7qC,SAAU8hD,EAAO1tD,cAAeA,cAAeA,cAAe8W,aAAa,iBAC3E7L,GAAIyiD,EAAO1tD,cAAeiL,GAC1BrS,KAAM80D,EAAO52C,aAAa,eAK9BsxC,YAAYrjD,GACkBA,EAAEpD,OACXmV,aAAa,oBAElCzf,KAAKmB,MAAMm+C,iBAIX2V,eAAevnD,GACnB1N,KAAKs2D,kBAAmB5oD,GAGpBwnD,aAAah4C,GACNA,EACGqpC,UAEF3gD,EAAAA,GAAS2wD,OACjBr5C,EAAMwpC,iBAQN4P,kBAAkBp5C,GACtB,MAAM1S,EAAM0S,EAAMqpC,QACZj8C,EAAS4S,EAAM5S,OACfksD,EAAkBx2D,KAAKu9B,MAAM01B,YAInC,OAHAjzD,KAAKy2D,0BAA0BD,GAGvBhsD,GACJ,KAAK5E,EAAAA,GAASghD,UACd,KAAKhhD,EAAAA,GAASihD,WACV3pC,EAAMupC,kBACNvpC,EAAMwpC,iBACFl8C,IAAQ5E,EAAAA,GAASihD,YAA2D,SAA7Cv8C,EAAOmV,aAAa,sBACnDzf,KAAK60D,iBAAiB33C,GAEtB1S,IAAQ5E,EAAAA,GAASghD,WAA0D,SAA7Ct8C,EAAOmV,aAAa,sBAClDzf,KAAK60D,iBAAiB33C,GAE1B,MAEJ,KAAKtX,EAAAA,GAAS8wD,MACd,KAAK9wD,EAAAA,GAAS2wD,MACVr5C,EAAMwpC,iBACN1mD,KAAK60D,iBAAiB33C,GACtB,MAEJ,KAAKtX,EAAAA,GAASmhD,QACd,KAAKnhD,EAAAA,GAASohD,UACV9pC,EAAMupC,kBACNvpC,EAAMwpC,iBAEFl8C,IAAQ5E,EAAAA,GAASmhD,SACjB/mD,KAAK40D,sBAAwB,EACzB50D,KAAK40D,qBAAuB,IAC5B50D,KAAK40D,qBAAuB4B,EAAgB9hD,MAAM1O,OAAS,IAG/DhG,KAAK40D,sBAAwB50D,KAAK40D,qBAAuB,GAAK4B,EAAgB9hD,MAAM1O,OAGxFwwD,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SACD,CACI4O,YAAauD,IAEjB,KACQx2D,KAAKgyD,QAAQx7B,SACbx2B,KAAKgyD,QAAQx7B,QAAQmgC,iBAIjC,MAEJ,KAAK/wD,EAAAA,GAASgxD,OACd,KAAKhxD,EAAAA,GAAS4gD,KACVtpC,EAAMupC,kBACNvpC,EAAMwpC,iBACN1mD,KAAK40D,qBAAuB,EAC5B4B,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SACD,CACI4O,YAAauD,IAEjB,KACQx2D,KAAKgyD,QAAQx7B,SACbx2B,KAAKgyD,QAAQx7B,QAAQmgC,iBAIjC,MAEJ,KAAK/wD,EAAAA,GAAS+gD,IACd,KAAK/gD,EAAAA,GAASixD,SACV35C,EAAMupC,kBACNvpC,EAAMwpC,iBACN1mD,KAAK40D,qBAAuB4B,EAAgB9hD,MAAM1O,OAAS,EAC3DwwD,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SACD,CACI4O,YAAauD,IAEjB,KACQx2D,KAAKgyD,QAAQx7B,SACbx2B,KAAKgyD,QAAQx7B,QAAQmgC,iBAIjC,MAEJ,KAAK/wD,EAAAA,GAASkxD,OACV92D,KAAK21D,uBACL31D,KAAKqkD,SAAS,CACV6O,UAAU,IAEd,MACJ,KAAKttD,EAAAA,GAAS0hD,KAELtnD,KAAK40D,qBAAuB4B,EAAgB9hD,MAAM1O,OAAS,GACvDhG,KAAK40D,uBAAyB4B,EAAgB9hD,MAAM1O,OAAS,GAAKkX,EAAM65C,WAC7E/2D,KAAK40D,sBAAwB,IACG,IAA9B50D,KAAK40D,uBAA8B13C,EAAM65C,WAE3C/2D,KAAK40D,sBAAwB13C,EAAM65C,UAAY,EAAI,EAEnDP,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SAAS,CACV4O,YAAauD,MAGjBt5C,EAAMupC,kBACNvpC,EAAMwpC,iBACN1mD,KAAKqkD,SAAS,CACV6O,UAAU,IAEVh2C,EAAM65C,SACN/2D,KAAK21D,uBACE31D,KAAKizD,cAAgB7B,GAAiCpxD,KAAK0xD,gBAAgBl7B,QAClFx2B,KAAK0xD,gBAAgBl7B,QAAQV,QAE7B91B,KAAKmB,MAAM+8C,QAAUl+C,KAAKkyD,gBAAgB17B,QAASV,QAAU91B,KAAKiyD,cAAcz7B,QAASV,UAMrG++B,iBAAiBnnD,GACrB,MAAM2oD,EAA4B3oD,EAAEspD,cACpC,GAAkD,SAA9CX,EAAO52C,aAAa,qBAAkC,CACtD,MAAMnZ,EAAgB8W,OAAOi5C,EAAO52C,aAAa,mBACjDzf,KAAKqxD,kBAAkB3pD,KAAKpB,GAC5B,MAAMkwD,EAAkBx2D,KAAKi3D,2BAC7Bj3D,KAAK40D,qBAAuB,EAC5B4B,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SAAS,CACV4O,YAAauD,SAEd,GAAkD,SAA9CH,EAAO52C,aAAa,qBAAkC,CAC7Dzf,KAAK40D,qBAAuB50D,KAAKqxD,kBAAkB6F,MACnD,MAAMV,EAAkBx2D,KAAKi3D,2BAC7BT,EAAgB9hD,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC5D3wD,KAAKqkD,SAAS,CACV4O,YAAauD,QAEd,CACH,MAAMA,EAAkBx2D,KAAKi3D,2BAC7Bj3D,KAAKy2D,0BAA0BD,GAC/B,MAAMlwD,EAAgB8W,OAAOi5C,EAAO52C,aAAa,mBACjDzf,KAAK40D,qBAAuBtuD,EAC5B,MAAM/E,EACFvB,KAAKizD,cAAgB7B,EACfiF,EAAO52C,aAAa,aACpBslC,KAAKoS,UAAU,CAAEnuD,IAAKqtD,EAAO52C,aAAa,aAAehM,KAAM4iD,EAAO52C,aAAa,UAC7Fzf,KAAKmB,MAAM+9C,gBAAgB,CACvB3qC,SAAU8hD,EAAO1tD,cAAeA,cAAeA,cAAe8W,aAAa,iBAC3E7L,GAAIyiD,EAAO1tD,cAAeiL,GAC1BrS,KAAMA,IAGdvB,KAAKu1D,sBAGDkB,0BAA0BxD,GAC9BA,EAAYv+C,MAAMstB,SAAQhf,GAASA,EAAK2tC,UAAW,IAG/CsG,2BACJ,IAAI/G,EAAWlwD,KAAKizD,cAAgB7B,EAAgCpxD,KAAKmB,MAAMu6C,kBAAqB17C,KAAKmB,MAAM08C,WAE/G,IAAK,IAAI5zC,EAAI,EAAGA,EAAIjK,KAAKqxD,kBAAkBrrD,OAAQiE,IAC/CimD,EAAWA,EAASx7C,MAAM1U,KAAKqxD,kBAAkBpnD,IAAImK,QAEzD,OAAO87C,EAGHqF,sBACJ,MAAMiB,EAAkBx2D,KAAKi3D,2BAC7B,GAAIT,EAAiB,CAEjB,OAAQA,EAAgBjiD,UACpB,KAAKC,EAAAA,eAAeC,cAChB+hD,EAAgB9hD,MAAMstB,SAAQhf,IACtBA,EAAKzhB,MAAQyhB,EAAKzhB,OAASvB,KAAKmB,MAAMs9C,6BACtCz7B,EAAKhP,UAAW,EAEhBgP,EAAKhP,UAAW,KAGxB,MACJ,KAAKQ,EAAAA,eAAekC,sBAChB8/C,EAAgB9hD,MAAMstB,SAAQhf,IAE1B,IAAK,MAAMjN,KAAW/V,KAAKmB,MAAMyT,6BAA8B,CAC3D,MAAMrT,EAAO,GAAGwU,KAAW/V,KAAKmB,MAAMyT,6BAA6BmB,KACnE,GAAIiN,EAAKzhB,MAAQyhB,EAAKzhB,OAASA,EAAM,CACjCyhB,EAAKhP,UAAW,EAChB,MAEAgP,EAAKhP,UAAW,MAI5B,MACJ,KAAKQ,EAAAA,eAAeiH,YAChB+6C,EAAgB9hD,MAAMstB,SAAQhf,IACtBA,EAAKjP,UAAYiP,EAAKjP,WAAa/T,KAAKmB,MAAMq+C,kBAC9Cx8B,EAAKhP,UAAW,EAEhBgP,EAAKhP,UAAW,KAKhChU,KAAKqkD,SACD,CACI4O,YAAauD,IAEjB,KACQx2D,KAAKgyD,QAAQx7B,SACbx2B,KAAKgyD,QAAQx7B,QAAQmgC,kBAiMjCrE,mBAAmB8E,GACvB,MAAMC,EAAcD,EAAO5gC,QAAS2U,SAAS,GAAG5/B,YAC1C+rD,EAAeF,EAAO5gC,QAASs5B,YAGrC,MAAO,CACH4C,WAHe0E,EAAO5gC,QAASk8B,YAAc4E,EAAeD,GAAe,EAI3EzE,UAHcwE,EAAO5gC,QAASo8B,WAO9BS,wBACJrzD,KAAKizD,YAAc7B,EACnB,MAAMsB,EAAa1yD,KAAKsyD,mBAAmBtyD,KAAK8xD,wBAAwBY,WACxE1yD,KAAK40D,qBAAuB,EAC5B50D,KAAKqxD,kBAAoB,GACzB,MAAM3V,EAAoB17C,KAAKmB,MAAMu6C,kBACrC17C,KAAKy2D,0BAA0B/a,GAC/BA,EAAkBhnC,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EAC9D3wD,KAAKqkD,SAAS,CACV6O,SAAUlzD,KAAKizD,cAAgB7B,IAAkCpxD,KAAKu9B,MAAM21B,SAC5EiC,iBAAkBzC,EAAa,IAC/BO,YAAavX,IAEjB17C,KAAKu1D,sBAGDhC,wBACJvzD,KAAKizD,YAAc7B,EACnB,MAAMsB,EAAa1yD,KAAKsyD,mBAAmBtyD,KAAK+xD,iBAAiBW,WACjE1yD,KAAK40D,qBAAuB,EAC5B50D,KAAKqxD,kBAAoB,GACzB,MAAMxT,EAAa79C,KAAKmB,MAAM08C,WAC9B79C,KAAKy2D,0BAA0B5Y,GAC/BA,EAAWnpC,MAAM1U,KAAK40D,sBAAsBjE,UAAW,EACvD3wD,KAAKqkD,SAAS,CACV6O,SAAUlzD,KAAKizD,cAAgB7B,IAA4BpxD,KAAKu9B,MAAM21B,SACtEiC,iBAAkBzC,EAAa,IAC/BO,YAAapV,IAEjB79C,KAAKu1D,sBAGDzC,qBACJ3pD,QAAUA,OAAOs+C,aAAaznD,KAAKuyD,qBACnCvyD,KAAKqkD,SAAS,CACVmO,kBAAkB,IAalBmC,qBAAqBpjB,GACzB,MAAMgmB,EAAWhmB,EAAU,EACvBgmB,IACAhmB,IAAY,GAGhB,MAAMF,EAAQjlC,KAAK8S,MAAMqyB,EAAU,MAC7BpyB,EAAYoyB,EAAU,KACtBD,EAAUllC,KAAK8S,MAAMC,EAAY,IAEvC,IAAIq4C,EAAc,GAOlB,OANAA,EAAcnmB,EAAQ,EAAI,GAAGA,KAAW,GAExCE,EAAUnlC,KAAK8S,MAAMC,EAAY,IACjCq4C,GAAe,KAAIlmB,EAAU,GAAK,IAAM,IAAMA,EAAQhyC,YACtDk4D,GAAe,KAAgB,IAAZjmB,EAAgB,MAAQA,EAAU,GAAK,IAAM,IAAMA,EAAQjyC,YAEvEi4D,EAAW,IAAIC,IAAgBA,EAGlCpB,gCAAgCH,EAA2BC,GAC3DD,GACAj2D,KAAKqkD,SAAS,CACV+Q,aACIa,EAAoBj2D,KAAKmB,MAAMs2D,aAAgBxB,EAAoBC,EAC7D,GAAGvY,EAAcyV,gDACjB,KAKdyC,YAEJ,SADkB1sD,QAAUA,OAAOwC,UAAUE,WAC1BxF,MAAM,YAr4Bfs3C,EAAAh/B,aAA6C,CACvDwH,UAAW,CACPlY,cAAeF,EAAAA,GAAsBE,cACrCC,eAAgBH,EAAAA,GAAsBG,eACtCC,eAAgBJ,EAAAA,GAAsBI,eACtCE,cAAeN,EAAAA,GAAsBM,cACrCC,gBAAiBP,EAAAA,GAAsBO,gBACvCC,oBAAqBR,EAAAA,GAAsBQ,oBAC3CC,wBAAyBT,EAAAA,GAAsBS,wBAC/CE,gBAAiBX,EAAAA,GAAsBW,gBACvCD,iBAAkBV,EAAAA,GAAsBU,iBACxCE,aAAcZ,EAAAA,GAAsBY,aACpCG,uBAAwBf,EAAAA,GAAsBe,uBAC9CC,mBAAoBhB,EAAAA,GAAsBgB,oBAE9C0oD,YAAa,KAGO9Z,EAAAyV,uBAAiC,GAAGpX,EAAAA,iBAAiBC,iCAErD0B,EAAAoV,sBAAgC,+HClE5D,QAAejwD,EAAAA,cAAqC,CAChDuiC,UAAW,uBCM0C,QAAzD,SAAAthB,GAWI,SAAA2zC,EAAYv2D,GAAZ,IAAA0lB,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KAW6B,OAGtC0lB,EAAA8wC,QAAU,SAACjqB,EAAmBkqB,GACjC/wC,EAAKw9B,SAAS,CAAEwT,gBAAgB,IAC5BhxC,EAAK1lB,MAAMw2D,SACX9wC,EAAK1lB,MAAMw2D,QAAQjqB,EAAMkqB,IAI1B/wC,EAAAixC,WAAa,SAACpqB,EAAmBkqB,GAEpC,IAAMG,EAAerqB,EAAKqqB,aAM1B,OALAlxC,EAAKw9B,SAAS,CAAEwT,gBAAgB,IAC5BhxC,EAAK1lB,MAAM22D,YACXjxC,EAAK1lB,MAAM22D,WAAWpqB,EAAMkqB,GAGzBG,GAGJlxC,EAAAmxC,OAAS,SAACtqB,GACb7mB,EAAKw9B,SAAS,CAAEwT,gBAAgB,IAC5BhxC,EAAK1lB,MAAM62D,QACXnxC,EAAK1lB,MAAM62D,OAAOtqB,IAInB7mB,EAAAoxC,UAAY,SAACvqB,GAChB7mB,EAAKw9B,SAAS,CAAEwT,gBAAgB,IAChCnqB,EAAKwqB,cAAc,IAAIC,YAAY,sBAC/BtxC,EAAK1lB,MAAM82D,WACXpxC,EAAK1lB,MAAM82D,UAAUvqB,IAItB7mB,EAAAuxC,SAAW,SAAC1qB,GACfA,EAAKwqB,cAAc,IAAIC,YAAY,qBAC/BtxC,EAAK1lB,MAAMi3D,UACXvxC,EAAK1lB,MAAMi3D,SAAS1qB,IAjDxB7mB,EAAK1lB,MAAQA,EAEb0lB,EAAK0W,MAAQ,CACTs6B,gBAAgB,GAGpBhxC,EAAK8wC,QAAU9wC,EAAK8wC,QAAQrhB,KAAKzvB,GACjCA,EAAKixC,WAAajxC,EAAKixC,WAAWxhB,KAAKzvB,GACvCA,EAAKmxC,OAASnxC,EAAKmxC,OAAO1hB,KAAKzvB,GAC/BA,EAAKoxC,UAAYpxC,EAAKoxC,UAAU3hB,KAAKzvB,GACrCA,EAAKuxC,SAAWvxC,EAAKuxC,SAAS9hB,KAAKzvB,GAAK,EA6HhD,OApJ0C7C,EAAAA,EAAAA,IAAA0zC,EAAA3zC,GAkE/B2zC,EAAAzzC,UAAAizB,sBAAP,SAA6BC,GACzB,SAAIA,EAAUkhB,OAASr4D,KAAKmB,MAAMk3D,QAAUlhB,EAAUkhB,QAMnDX,EAAAzzC,UAAAC,OAAP,eAAA2C,EAAA,KACUvlB,EAsBFtB,KAAKmB,MArBLgqC,EAAQ7pC,EAAA6pC,SACRmtB,EAASh3D,EAAAg3D,UACTD,EAAK/2D,EAAA+2D,MACLzsB,EAAGtqC,EAAAsqC,IACH7oC,EAASzB,EAAAyB,UAELw1D,EAAUj3D,EAAAk3D,GACdC,EAAYn3D,EAAAm3D,aACZC,EAAap3D,EAAAo3D,cACbC,EAAMr3D,EAAAq3D,OACNC,EAAKt3D,EAAAs3D,MACLC,EAAIv3D,EAAAu3D,KACJC,EAAOx3D,EAAAw3D,QAQJC,GAPIz3D,EAAAq2D,QACGr2D,EAAAw2D,WACDx2D,EAAA03D,UACH13D,EAAA02D,OACG12D,EAAA22D,UACD32D,EAAA82D,UAEKa,EAAAA,EAAAA,IAAA33D,EArBX,8LAwBA43D,EAAmBJ,GAAWK,EAAAA,mBAAmBC,SACjDC,EAAMztB,GAAO,MACb0tB,EAAkB,CACpBd,GAAID,EACJE,aAAYA,EACZC,cAAaA,EACbC,OAAMA,EACNC,MAAKA,EACLC,KAAIA,EACJC,QAASI,GAGb,OACIp2D,EAAAA,cAACy2D,EAAgBC,SAAQ,MACpB,SAACl4D,GAAa,IAAX+jC,EAAS/jC,EAAA+jC,UAAO,OAChBviC,EAAAA,cAAC22D,EAAAA,IAAUj2D,EAAAA,EAAAA,IAAA,GACH81D,EAAe,CACnBV,MAAOP,EACPQ,KAAMR,EACNG,GAAID,EACJZ,QAAS9wC,EAAK8wC,QACdG,WAAYjxC,EAAKixC,WACjBE,OAAQnxC,EAAKmxC,OACbC,UAAWpxC,EAAKoxC,UAChBG,SAAUvxC,EAAKuxC,YAEd,SAACxuD,GACE,IAAM8vD,EAAsB,YAAX9vD,GAAmC,YAAXA,EACnC+vD,GACU,aAAX/vD,GAAoC,YAAXA,IAC1Bid,EAAK0W,MAAMs6B,iBACI,UAAdxyB,EAAwB,2BAA6B,6BACpDu0B,EACS,aAAXhwD,IAAwC,UAAdy7B,EAAwB,2BAA6B,4BAC7Ew0B,GAAcC,EAAAA,EAAAA,iBAChBC,GAAAA,CAAWh3D,EAAW,qBAAsB22D,GAAY,SAAUC,EAAoBC,GACtFtB,GAGJ,OACIx1D,EAAAA,cAACu2D,GAAG71D,EAAAA,EAAAA,IAAA,CAACT,UAAW82D,GAAiBd,GAC5B5tB,UA1InBusB,EAAA/4C,aAA4C,CACtDitB,IAAK,MACLktB,QAASK,EAAAA,mBAAmBC,SAC5Bf,OAAO,GAgJfX,EApJA,CAA0C50D,EAAAA,WCYW,QAArD,SAAAihB,GAsCI,SAAAq1C,EAAYj4D,GAAZ,IAAA0lB,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KAqBiF,OAlChF0lB,EAAAmzC,kBAA4B,OAE5BnzC,EAAAozC,kBAA4B,OAM5BpzC,EAAAqzC,yBAAmC,IA8D7CrzC,EAAAszC,YAAc,SAACh5D,QAAA,IAAAA,IAAAA,EAAwB0lB,EAAK1lB,OAE/C0lB,EAAKuzC,gBAEG,IAAAC,EAAuBl5D,EAAKk5D,SAAlB5d,EAAat7C,EAAKs7C,SAChC4d,IAA2B,IAAb5d,IACd51B,EAAKyzC,cAAgBH,aACjB,WACIh5D,EAAM6gB,SAGVq4C,KAKLxzC,EAAAuzC,cAAgB,WACnBA,cAAcvzC,EAAKyzC,gBAGhBzzC,EAAA0zC,WAAa,SAAC7sD,GACX,IAAApM,EAAwBulB,EAAK1lB,MAA3ByiD,EAAKtiD,EAAAsiD,MAAE4W,EAAUl5D,EAAAk5D,WAEX,UAAV5W,GACA/8B,EAAKuzC,gBAGLI,GACAA,EAAW9sD,IAIZmZ,EAAA4zC,SAAW,SAAC/sD,GACT,IAAApM,EAAwBulB,EAAK1lB,MAA3ByiD,EAAKtiD,EAAAsiD,MAAE8W,EAAUp5D,EAAAo5D,WAEX,UAAV9W,GACA/8B,EAAKszC,cAGLO,GACAA,EAAWhtD,IAKZmZ,EAAA8zC,eAAiB,SAACjtD,GACf,IAAApM,EAA+BulB,EAAK1lB,MAAlCy5D,EAAQt5D,EAAAs5D,SAAEC,EAAQv5D,EAAAu5D,SAAE74C,EAAI1gB,EAAA0gB,KAE5B44C,IACkB,KAAdltD,EAAE64C,QACFsU,IACqB,KAAdntD,EAAE64C,SACTvkC,MAKL6E,EAAAi0C,YAAc,SAACC,EAAkCh4D,GAC9C,IAAAzB,EAAgEulB,EAAK1lB,MAAnEk3D,EAAK/2D,EAAA+2D,MAAE2C,EAAe15D,EAAA05D,gBAAEC,EAAc35D,EAAA25D,eAAEC,EAAW55D,EAAA45D,YAAExwD,EAAIpJ,EAAAoJ,KAE3DywD,EAAS5xC,EAAAA,gBAAgBC,YAAYuxC,GACrCA,EAAc5kD,KAAI,SAACilD,EAA8B90D,GAC7C,OACIxD,EAAAA,cAAC40D,EAAY,CAACltD,IAAKE,EAAOA,EAAKpE,GAASA,EAAO2xD,UAAW+C,EAAiB5C,SAAU6C,GAChFG,MAIb,GAEN,OACIt4D,EAAAA,cAAA,OAAKC,UAAWA,GAEXo4D,EAAOhlD,KAAI,SAAC6M,EAAW1c,GACpB,IAAM+0D,EAAO/0D,IAAU40D,EAEvB,OAAOp4D,EAAAA,aAAmBkgB,EAAM,CAC5Bw1C,GAAI6C,EACJhD,MAAKA,SAyNRxxC,EAAAy0C,oBAAsB,SAAC5tD,GAClB,KAAdA,EAAE64C,UACF74C,EAAEg5C,iBACF7/B,EAAK1lB,MAAM05D,aAIFh0C,EAAA00C,oBAAsB,SAAC7tD,GAElB,KAAdA,EAAE64C,UACF74C,EAAEg5C,iBACF7/B,EAAK1lB,MAAM6gB,SA1Wf6E,EAAK1lB,MAAQA,EACb0lB,EAAK20C,kBAAoB30C,EAAK1lB,MAAMs6D,WAAa50C,EAAKqzC,yBACtDrzC,EAAK8zC,eAAiB9zC,EAAK8zC,eAAerkB,KAAKzvB,GAC/CA,EAAK60C,kBAAoB70C,EAAK60C,kBAAkBplB,KAAKzvB,GACrDA,EAAK80C,gBAAkB90C,EAAK80C,gBAAgBrlB,KAAKzvB,GACjDA,EAAKi0C,YAAcj0C,EAAKi0C,YAAYxkB,KAAKzvB,GACzCA,EAAK0zC,WAAa1zC,EAAK0zC,WAAWjkB,KAAKzvB,GACvCA,EAAK+0C,qBAAsD17D,IAApC2mB,EAAK1lB,MAAM06D,qBAAqCh1C,EAAK1lB,MAAM06D,qBAAuB,IACzGh1C,EAAK0W,MAAQ,CACT8H,UAAW,QACXy2B,kBAAkB,GAEtBj1C,EAAKk1C,aAAel1C,EAAKk1C,aAAazlB,KAAKzvB,GAC3CA,EAAKm1C,aAAen1C,EAAKm1C,aAAa1lB,KAAKzvB,GAC3CA,EAAKy0C,oBAAsBz0C,EAAKy0C,oBAAoBhlB,KAAKzvB,GACzDA,EAAK00C,oBAAsB10C,EAAK00C,oBAAoBjlB,KAAKzvB,GACzDA,EAAKo1C,YAAcn5D,EAAAA,YACnB+jB,EAAKq1C,YAAcp5D,EAAAA,YACnB+jB,EAAK1C,SAAUC,EAAAA,EAAAA,kBAAiB,QAASyC,EAAK1lB,MAAMmjB,iBAAmB,IACvEuC,EAAKs1C,8BAAgCC,GAAAA,CAASv1C,EAAKm1C,aAAcn1C,EAAK20C,mBACtE30C,EAAKw1C,kCAAoCD,GAAAA,CAASv1C,EAAKk1C,aAAcl1C,EAAK20C,mBAAkB,EAgWpG,OA5ZsCx3C,EAAAA,EAAAA,IAAAo1C,EAAAr1C,GA+D3Bq1C,EAAAn1C,UAAA4yB,kBAAP,WAE4B,aAApB72C,KAAKmB,MAAMm7D,MACXt8D,KAAKm6D,cAGLn6D,KAAKmB,MAAMy5D,UACX7yD,SAASsB,iBAAiB,QAASrJ,KAAK26D,iBAKzCvB,EAAAn1C,UAAAs4C,0BAAP,SAAiCplB,GAC7Bn3C,KAAKm6D,YAAYhjB,GAET,IAAA+jB,EAAgBl7D,KAAKmB,MAAK+5D,YAEd,OAAhBA,IAEIA,EAAc/jB,EAAU+jB,YACxBl7D,KAAKqkD,SAAS,CAAEhf,UAAW,UACpB61B,EAAc/jB,EAAU+jB,aAC/Bl7D,KAAKqkD,SAAS,CAAEhf,UAAW,SAE/BrlC,KAAKqkD,SAAS,CAAEyX,kBAAkB,MAInC1C,EAAAn1C,UAAAozB,qBAAP,WACIr3C,KAAKo6D,gBACLryD,SAASuvC,oBAAoB,QAASt3C,KAAK26D,iBAwFxCvB,EAAAn1C,UAAAizB,sBAAP,SAA6BC,EAA2BoL,GACpD,IAAMia,EAAiBjzC,EAAAA,gBAAgBC,YAAYxpB,KAAKmB,MAAMuJ,MACxD+xD,EAAclzC,EAAAA,gBAAgBC,YAAY2tB,EAAUzsC,MACpDgyD,EAAiBF,GAAkBC,IAAgBlzC,EAAAA,gBAAgBozC,OAAO38D,KAAKmB,MAAMuJ,KAAOysC,EAAUzsC,MAC5G,OACI1K,KAAKu9B,QAAUglB,GACfviD,KAAKmB,MAAM6gB,OAASm1B,EAAUn1B,MAC9BhiB,KAAKmB,MAAM05D,WAAa1jB,EAAU0jB,UAClC2B,IAAmBC,GACnBC,GAIDtD,EAAAn1C,UAAAC,OAAP,WACU,IAAA5iB,EAUFtB,KAAKmB,MATLm3D,EAASh3D,EAAAg3D,UACTv1D,EAASzB,EAAAyB,UACT65D,EAAct7D,EAAAs7D,eACdC,EAAcv7D,EAAAu7D,eACdC,EAAWx7D,EAAAw7D,YACXC,EAAqBz7D,EAAAy7D,sBACrBroD,EAAKpT,EAAAoT,MACLsoD,EAAa17D,EAAA07D,cACbC,EAAuB37D,EAAA27D,wBAe3B,IAAM19B,OAAwCr/B,IAA1B68D,GAAsCA,EAEpDG,GAAepD,EAAAA,EAAAA,iBAAgBC,GAAAA,CAAWh3D,EAAW,eAb3D,SAAuBo6D,GACnB,OAAQA,GACJ,IAAK,QACD,MAAO,QACX,IAAK,OACD,MAAO,gBACX,QACI,OAAO,MAMwDC,CAAcR,IAAkBtE,GACrG+E,GAAevD,EAAAA,EAAAA,iBAAgBC,GAAAA,CAAW,uBAAwBzB,GAClEgF,EAAUT,GAAkB78D,KAAKu9D,yBACjCC,GAAcR,GAAiBh9D,KAAKy9D,kBAAkBl+B,GACtDm+B,GAAoBZ,GAAe98D,KAAK29D,wBAAwBp+B,GAChE8F,EAAY,CAAEA,UAAWrlC,KAAKu9B,MAAM8H,WAC1C,OAAI3wB,GAASA,EAAM1O,OAGXlD,EAAAA,cAACy2D,EAAgBqE,SAAQ,CAACn9D,MAAO4kC,GAC7BviC,EAAAA,cAAA,OACIC,UAAWm6D,EACXna,aAAcka,OAA0B/8D,EAAYF,KAAKu6D,WACzD98C,aAAcw/C,OAA0B/8D,EAAYF,KAAKy6D,SACzDoD,aAAcZ,OAA0B/8D,EAAYF,KAAK07D,kBACzDoC,WAAYb,OAA0B/8D,EAAYF,KAAK27D,iBAEtDjnD,GAASA,EAAM1O,QAAUhG,KAAK86D,YAAYpmD,EAAO2oD,IAChDJ,GAA2BvoD,GAASA,EAAM1O,OAAS,GAAK03D,GACxDT,GAA2BvoD,GAASA,EAAM1O,OAAS,GAAKw3D,EACzDF,IAKV,MAGHlE,EAAAn1C,UAAAy3C,kBAAR,SAA0BqC,GACK,IAAvBA,EAAIC,QAAQh4D,OACZhG,KAAKi+D,iBAAc/9D,EAEnBF,KAAKi+D,YAAcF,EAAIC,QAAQ,GAAGE,SAIlC9E,EAAAn1C,UAAA03C,gBAAR,SAAwBoC,GACpB,GAAIA,EAAII,eAAen4D,OAAS,QAA0B9F,IAArBF,KAAKi+D,YAA2B,CAC3D,IAAA38D,EAAqBtB,KAAKmB,MAAxB05D,EAAQv5D,EAAAu5D,SAAE74C,EAAI1gB,EAAA0gB,KAGhBo8C,EAFoBL,EAAII,eAAe,GAAGD,QAEtBl+D,KAAKi+D,YAE3BG,EAAQp+D,KAAK47D,iBACbf,IAGAuD,GAASp+D,KAAK47D,iBACd55C,IAIRhiB,KAAKi+D,iBAAc/9D,GAGfk5D,EAAAn1C,UAAAw5C,kBAAR,SAA0Bl+B,GAA1B,IAAA1Y,EAAA,KACUvlB,EAAiFtB,KAAKmB,MAApFuT,EAAKpT,EAAAoT,MAAEwmD,EAAW55D,EAAA45D,YAAE5C,EAASh3D,EAAAg3D,UAAE+F,EAAwB/8D,EAAA+8D,yBAAEC,EAAiBh9D,EAAAg9D,kBAE5EC,GAAczE,EAAAA,EAAAA,iBAAgB,2BAA4BxB,GAC1DkF,EACF9oD,GACAA,EAAM1O,QAEN0O,EAAMyB,KAAI,SAAC6M,EAAWw7C,GAClB,IAAMC,GAAmB3E,EAAAA,EAAAA,iBAAgBC,GAAAA,CAAW,CAAE2E,OAAQxD,IAAgBsD,IAAQlG,GAEhFxkD,EAAQwqD,GAAoB/5D,EAAAA,EAAAA,QAAO+5D,EAAmBE,EAAM,GAAK,GACjEG,EAAc,kBAAsBH,EAAM,GAChD33C,EAAK1C,QAAQQ,cAAcC,OAAS45C,EAAM,GAAGl/D,WAC7C,IAAM0yC,GAAYjtB,EAAAA,EAAAA,wBAAuB8B,EAAK1lB,MAAMmjB,iBAAmBuC,EAAK1C,SAE5E,OACIrhB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,MAAAU,EAAAA,EAAAA,IAAA,CACIoQ,GAAI+qD,EAAW,aACH7qD,EAAK,eACHY,EAAM1O,OAAM,gBACXw4D,EAAM,EAAC,gBACPtD,IAAgBsD,EAC/Bh0D,IAAK,IAAGwY,EAAKxY,KAAOwY,EAAK7C,KAAM6C,EAAK47C,QAAU57C,EAAKzB,QACnD/B,KAAK,MACLpb,SAAU,EACVrB,UAAW07D,EACXt6D,QAAS,SAAAuJ,GACLA,EAAEg5C,iBACF2X,EAAyBG,GACzB33C,EAAKw9B,SAAS,CAAEyX,kBAAkB,MAElC9pB,IAEPzS,GACGz8B,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQ,GAAGq0D,GACjD7qD,OAOzB,OACIhR,EAAAA,cAAA,MAAIC,UAAWw7D,EAAa/+C,KAAK,WAC5Bg+C,IAKLpE,EAAAn1C,UAAA05C,wBAAR,SAAgCp+B,GACtB,IAAAj+B,EAAsDtB,KAAKmB,MAAzDm3D,EAASh3D,EAAAg3D,UAAE0B,EAAiB14D,EAAA04D,kBAAEC,EAAiB34D,EAAA24D,kBAEjD4E,GAAoB/E,EAAAA,EAAAA,iBAAgB,8BAA+BxB,GACnEwG,GAAoBhF,EAAAA,EAAAA,iBAAgB,8BAA+BxB,GACnEyG,GAAkBjF,EAAAA,EAAAA,iBAAgB,oCAAqCxB,GACvE0G,GAAkBlF,EAAAA,EAAAA,iBAAgB,oCAAqCxB,GACvE2G,GAAsBnF,EAAAA,EAAAA,iBAAgB,qBAAsBxB,GAElEt4D,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKg6D,kBACxC,IAAMkF,GAAgBn6C,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAChFnkB,KAAKmkB,QAAQQ,cAAcC,MAAQ5kB,KAAKi6D,kBACxC,IAAMkF,GAAgBp6C,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAEhF,OACIrhB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIT,UAAW87D,EACXr/C,KAAK,SACLpb,SAXgB,EAYhBD,QAASnE,KAAKq8D,kCACdpM,QAASjwD,KAAKs7D,oBACd57B,IAAK1/B,KAAKi8D,aACNiD,GAEJp8D,EAAAA,cAAA,QAAMC,UAAWg8D,EAAe,cAAc,SAC9Cj8D,EAAAA,cAAA,QAAMC,UAAWk8D,GAAsBjF,GAAqBh6D,KAAKg6D,oBAEpEz6B,GACGz8B,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKi8D,aACnDjC,GAGTl3D,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIT,UAAW+7D,EACXt/C,KAAK,SACLpb,SA5BgB,EA6BhBD,QAASnE,KAAKm8D,8BACdlM,QAASjwD,KAAKu7D,oBACd77B,IAAK1/B,KAAKk8D,aACNiD,GAEJr8D,EAAAA,cAAA,QAAMC,UAAWi8D,EAAe,cAAc,SAC9Cl8D,EAAAA,cAAA,QAAMC,UAAWk8D,GAAsBhF,GAAqBj6D,KAAKi6D,oBAEpE16B,GACGz8B,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQtK,KAAKk8D,aACnDjC,KAObb,EAAAn1C,UAAA83C,aAAR,SAAqBruD,GACjBA,EAAEg5C,iBACF1mD,KAAKmB,MAAM05D,YAGPzB,EAAAn1C,UAAA+3C,aAAR,SAAqBtuD,GACjBA,EAAEg5C,iBACF1mD,KAAKmB,MAAM6gB,QAkBPo3C,EAAAn1C,UAAAs5C,uBAAR,WACU,IAAAj8D,EAAqDtB,KAAKmB,MAAxDi+D,EAAqB99D,EAAA89D,sBAAEC,EAAuB/9D,EAAA+9D,wBACtD,OACIv8D,EAAAA,cAAA,UAAQC,UAAU,sCAAqC,aAAas8D,EAAyBl7D,QAASi7D,KAxZhGhG,EAAAz6C,aAAwC,CAClD07C,SAAU,IACVzW,MAAO,QACPgX,UAAU,EACVvC,OAAO,EACP2E,eAAe,GAsZvB5D,EA5ZA,CAAsCt2D,EAAAA,kGCKhCw8D,GAA8CC,EAAAA,EAAAA,KAAS,SAACp+D,GAEtD,IAAAq+D,EAGAr+D,EAAKq+D,UAFLC,EAEAt+D,EAAKs+D,aADG9xC,EACRxsB,EAAKI,KAAAosB,KACH+xC,GAAW97C,EAAAA,EAAAA,IAAW,OAAQziB,EAAMa,QAAQke,eAG5Cy/C,EAAWhyC,EAAOA,EAAKiyC,iBAAmB,EAC1CC,GAAWt7D,EAAAA,EAAAA,QAAOk7D,EAAcE,GAChC7rD,GAAQvP,EAAAA,EAAAA,QAAOi7D,EAAWG,GAG1Bx7C,GAAUC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmB,YAAa,IAC1E0M,GAAajM,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAC7D3b,EAA6B,CAC/B+9B,WAAY5Y,EAAO,UAAY,UAEnC,OACI7qB,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIigB,MAAO3P,EACP/Q,UAAU,wBACV4gB,KAAM+7C,EAAQ,aACF5rD,GACRkd,EAAU,CACd7sB,SAASkjD,EAAAA,EAAAA,kBAAiBlmD,EAAMmjB,iBAAmBH,EAAS,eAE5DrhB,EAAAA,cAAA,OAAKC,UAAU,uBAAsB,iBAAayF,MAAOA,GACpDq3D,OAOJC,EAAsEx8D,EAAAA,GAAiBC,gBAChG,YAAUC,EAAAA,EAAAA,IAAA,CACRC,UAAW67D,GA7CgB,4FC4BjCS,EAAA,SAAAh8C,GAGI,SAAAg8C,EAAY5+D,EAAwBo8B,GAApC,IAAA1W,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KAOV,OAuBW0lB,EAAAm5C,eAAiB,SAACtyD,GAC/B,IAAM4pB,EAA2B,KAAnB5pB,EAAEpD,OAAO7J,MAAe,GAAKomB,EAAK0W,MAAMjG,MACtDzQ,EAAKw9B,SAAS,CACV4b,oBAAqBvyD,EAAEpD,OAAO7J,MAAM+F,OACpC8wB,MAAKA,EACL4oC,WAAYxyD,EAAEpD,OAAO7J,SAIZomB,EAAAs5C,gBAAkB,SAAC3yC,GAChC,GAAKA,GAAcA,EAAUG,KAA7B,CAGA,IAAMyyC,EAAev5C,EAAK0W,MAAM0iC,oBAEhCzyC,EACK6yC,aAAa,CAAEC,UAAWF,IAC1BpgC,MAAK,SAAAl/B,GACoB,YAAlBA,EAAO8I,OAEPid,EAAKw9B,SAAS,CAAE4b,oBAAqB,GAAI3oC,MAAO,GAAI4oC,UAAU,IAClC,iBAArBp/D,EAAOy/D,UACd15C,EAAKw9B,SAAS,CAAE/sB,MAAOzQ,EAAK1lB,MAAMq/D,8BAElC35C,EAAKw9B,SAAS,CAAE/sB,MAAOzQ,EAAK1lB,MAAMs/D,+BAGzCrgC,OAAM,SAAA9I,GACHzQ,EAAKw9B,SAAS,CAAE/sB,MAAOzQ,EAAK1lB,MAAMu/D,qCAI7B75C,EAAA85C,YAAc,SAACC,EAA8BC,EAAkCrzC,GAC5F,IAOMwD,GAAajM,EAAAA,EAAAA,wBAAuB8B,EAAK1lB,MAAMmjB,iBAAmBuC,EAAK1C,SAE7E,OACIrhB,EAAAA,cAAA,QAAMg+D,SAVQ,SAAC5jD,GACfA,EAAMwpC,iBACN7/B,EAAKs5C,gBAAgB3yC,IAQMzqB,UAAU,kCACjCD,EAAAA,cAAA,OAAKC,UAAU,yBACXD,EAAAA,cAAA,SACIC,UAAU,4BAA2B,aACzB69D,EACZpjD,SAAUqJ,EAAKm5C,eACfv/D,MAAOomB,EAAK0W,MAAM0iC,oBAClBnpC,YAAa8pC,IAEjB99D,EAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHigB,MAAOo9C,EACP99D,UAAU,gCACVoB,QAlBQ,SAAC+Y,GACrB2J,EAAKs5C,gBAAgB3yC,IAkBT2B,UAAWtI,EAAK0W,MAAM2iC,UAClBlvC,GAEH6vC,MAOJh6C,EAAAk6C,iBAAmB,SAACvzC,EAAmCtQ,GACpE,GAAKsQ,EAAL,CAGA,IAAMw4B,EAAO9oC,EAAM85C,cAAcv3C,aAAa,eAAiB,GAC/D+N,EACKwzC,iBAAiB,CACdC,WAAY,CAACjb,KAEhBhmB,MAAK,SAAAl/B,GACoB,YAAlBA,EAAO8I,QACPid,EAAKw9B,SAAS,CAAE/sB,MAAO,QAG9B8I,OAAM,WACHvZ,EAAKw9B,SAAS,CAAE/sB,MAAOzQ,EAAK1lB,MAAM+/D,wCAI7Br6C,EAAAs6C,mBAAqB,SAACnb,EAAcx4B,GAAiC,YAClF,GAAKA,GAAcA,EAAUG,MAASH,EAAUG,KAAKuG,WAAiD,IAApC1G,EAAUG,KAAKuG,UAAUluB,QAAiBggD,EAA5G,CAGA,IAAIob,EAAiB,EAAE,IACvB,IAAmB,IAAAhgE,GAAA0gB,EAAAA,EAAAA,IAAA0L,EAAUG,KAAKuG,WAAStwB,EAAAxC,EAAA4gB,QAAApe,EAAApD,KAAAoD,EAAAxC,EAAA4gB,OAAE,CAAxC,IAAM0T,EAAI9xB,EAAAnD,MACX,GAAIi1B,EAAK2rC,cAAgB,IACrB,IAA2B,IAAAz8D,GAAA08D,OAAA,GAAAx/C,EAAAA,EAAAA,IAAA4T,EAAK2rC,gBAAar8D,EAAAJ,EAAAod,QAAAhd,EAAAxE,KAAAwE,EAAAJ,EAAAod,OAAE,CAA1C,IAAMu/C,EAAYv8D,EAAAvE,MACf8gE,EAAaC,eAAiBxb,IAC9Bob,GAAkBG,EAAaE,eAAa,oMAK5D,OAAyB,EAAlBL,IAGMv6C,EAAA66C,wBAA0B,SAACvgE,GAAsB,UAC9D,GAAKA,EAAMwsB,MAASxsB,EAAMwsB,KAAKA,MAASxsB,EAAMwsB,KAAKA,KAAKg0C,SAAaxgE,EAAMwsB,KAAKA,KAAKg0C,QAAQ37D,OAAS,EAAtG,CAIA,IAAM+6D,EAAmB,SAAC7jD,GACtB2J,EAAKk6C,iBAAiB5/D,EAAMwsB,KAAMzQ,IAElC0kD,EAA4B,EAAE,IAClC,IAAqB,IAAAxgE,GAAA0gB,EAAAA,EAAAA,IAAA3gB,EAAMwsB,KAAKA,KAAKg0C,SAAO/9D,EAAAxC,EAAA4gB,QAAApe,EAAApD,KAAAoD,EAAAxC,EAAA4gB,OAAE,CAAzC,IAAM6/C,EAAMj+D,EAAAnD,MACP2gE,EAAiBv6C,EAAKs6C,mBAA8B,QAAZ9/D,EAACwgE,EAAOC,YAAI,IAAAzgE,EAAAA,EAAI,GAAIF,EAAMwsB,MACpEyzC,IACAQ,GAA6BR,IAAc,iGAInD,OACIt+D,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKC,UAAU,4BACXD,EAAAA,cAAA,OAAKC,UAAU,oCAAoC8jB,EAAK1lB,MAAM4gE,6BAC9Dj/D,EAAAA,cAACO,EAAAA,eAAc,CACX9B,KAAM,CACFC,MAAO,CACH2B,wBAAyBy+D,IAGjC5/D,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,oCAGjB5B,EAAMwsB,KAAKA,KAAKg0C,QAAQxrD,KAAI,SAAC0rD,GAC1B,IAAM1tD,EAAYhT,EAAM6gE,4BAClBz9D,EAAAA,EAAAA,QAAOpD,EAAM6gE,2BAA4B7gE,EAAM8gE,gBAAiBJ,EAAOC,MACvE,GAEN,OACIh/D,EAAAA,cAAA,OAAK0H,IAAKq3D,EAAOC,KAAM/+D,UAAU,kCAC7BD,EAAAA,cAAA,OAAKC,UAAU,8BACV8+D,EAAOC,KACP,IACDh/D,EAAAA,cAACO,EAAAA,eAAc,CACX9B,KAAM,CACFC,MAAO,CACH2B,wBAAyB0jB,EAAKs6C,mBAAmBU,EAAOC,MAAQ,GAAI3gE,EAAMwsB,QAGlF3rB,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,yCAGlBD,EAAAA,cAACmB,EAAAA,OAAM,CACHwf,MAAOtiB,EAAM8gE,gBACbl/D,UAAU,mCACVoB,QAAS48D,EAAgB,aACbc,EAAOC,KAAI,aACX3tD,GAEXhT,EAAM8gE,wBAhM/Bp7C,EAAK1C,SAAUC,EAAAA,EAAAA,kBAAiB,QAASyC,EAAK1lB,MAAMmjB,iBAAmBC,EAAAA,kBAAkB29C,gBACzFr7C,EAAK0W,MAAQ,CACT4kC,gBAAgB,EAChBlC,oBAAqB,GACrB3oC,MAAO,GACP4oC,UAAU,GACb,EAkMT,OA7MwBl8C,EAAAA,EAAAA,IAAA+7C,EAAAh8C,GAcbg8C,EAAA97C,UAAAizB,sBAAP,SAA6BC,GACzB,OAAIn3C,KAAKmB,MAAM4gE,8BAAgC5qB,EAAU4qB,6BAMtDhC,EAAA97C,UAAAC,OAAP,WACI,OACIphB,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKC,UAAU,0BAA0B/C,KAAKmB,MAAMihE,sBACnDpiE,KAAK2gE,YAAY3gE,KAAKmB,MAAMy/D,qBAAsB5gE,KAAKmB,MAAM0/D,yBAA0B7gE,KAAKmB,MAAMwsB,MACnG7qB,EAAAA,cAAA,KAAGC,UAAW/C,KAAKu9B,MAAMjG,MAAQ,mBAAqB,GAAE,YAAY,aAC/Dt3B,KAAKu9B,MAAMjG,OAEft3B,KAAK0hE,wBAAwB1hE,KAAKmB,SAgLnD4+D,EA7MA,CAAwBj9D,EAAAA,WAgNXu/D,EAA+D/+D,EAAAA,GAAiBC,gBACzF,aAAWC,EAAAA,EAAAA,IAAA,CACTC,UAAWs8D,GAhOiB,uDCL9BuC,wDAxBEC,EAAqB,kBACrBC,EAA+BD,iCA0FxBE,EAAiEn/D,EAAAA,GAAiBC,gBAC3F,sBACA,CAAEE,UA3C4D,SAACtC,GAAuB,cAChF6D,GAAAnB,EAAAA,EAAAA,IAAgCf,IAAAA,UAAe,GAAM,GAApD4/D,EAAW19D,EAAA,GAAE29D,EAAc39D,EAAA,GAE9BmmC,EAAyB,QAAjB7pC,EAAGH,EAAMgqC,gBAAQ,IAAA7pC,EAAAA,EAAI,GACjC6pC,EAAWjlC,MAAM4E,QAAQqgC,GAAYA,EAAW,CAACA,GAQjD,OADiC,QAAlB9pC,EAAGF,EAAMyhE,iBAAS,IAAAvhE,GAAAA,EAM7ByB,IAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAAWw/D,IACxCz/D,IAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAAWiB,GAAAA,CACPw+D,EACAE,EAAiBF,EAAyB,UAAY,GACtDrhE,EAAMq7B,WAAgBgmC,EAAyB,YAAc,IAEjE/+C,MAAkB,QAAbriB,EAAED,EAAMsiB,aAAK,IAAAriB,EAAAA,EAAI,GACtB+tB,WAAYhuB,EAAMq7B,WAAU,aACc,QADd53B,EACD,QADChB,EAChBzC,EAAMgT,iBAAS,IAAAvQ,EAAAA,EAAIzC,EAAM2S,aAAK,IAAAlP,EAAAA,EAAI,GAAE,kBAC/BzD,EAAMq7B,WACvBr4B,QAtBW,kBAzBZ,SAAC0+D,EAAwBF,GACpC,IAAMG,GAAqBD,EACvBC,GACIR,GACAA,GAAuB,GAE3BK,EAAeG,GACfR,EAAyBK,IAEzBL,OAAyBpiE,EACzByiE,EAAeG,IAgBf3/C,CAAOu/C,EAAaC,GACP,QAAbrhE,EAAAH,EAAMgD,eAAO,IAAA7C,GAAAA,EAAArC,KAAbkC,EAAgBuhE,KAqBJvhE,EAAM4hE,qBAET5hE,EAAM2S,OAEV4uD,GAAe5/D,IAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAjFPu+D,uCAiF+Cp3B,IApBrEroC,IAAAA,cAAAA,IAAAA,SAAA,yICkCTkgE,EAAgC,CAClC7+D,QAhCY,SACZuZ,EACAvc,EACAo8B,GAAiC,OAAAhV,EAAAA,EAAAA,SAAA,4FAKjC,OAHQiV,EAASr8B,EAAMa,QAAQ0e,QAAO8c,KAChCp7B,EAAYjB,EAAMI,KAAIa,QAExBm7B,EAAME,QACA,CAAN,IAGCD,EAAKE,iBAAmBF,EAAKG,WAAax0B,QAC3CA,OAAO2jB,SAASC,OAAOyQ,EAAKG,WAEtB,CAAN,KAGJJ,EAAMM,YAAW,QACkB39B,IAA7BiB,EAAM8hE,mBAAR,MACW,GAAM9hE,EAAM8hE,qBAAkB,OAAzC7gE,EAAWd,EAAAgpB,QAAmCnpB,EAAMI,KAAKa,QAAQ,EAAD,eAGpE,SAAO8gE,EAA2B9gE,EAASjB,GAASgiE,EAAmB/gE,EAASjB,EAAOo8B,GAAS6lC,EAAchhE,EAASjB,EAAOo8B,IAAQ,KAAD,EAC7G,OADxBj8B,EAAAgpB,OACAiT,EAAMM,YAAW,GAAM,YASvBC,UANc,SAACP,GACfA,EAAMQ,WAAW,CAAEhnB,MAAO,UAAWinB,WAAW,MAsH9CklC,EAA6B,SAAC9gE,EAAwBjB,GAAmC,QACnFkiE,EAAcliE,EAAMI,KAAI8hE,UAEhC,IAAKA,IAAcA,EAAU,GACzB,OAAO,EAGH,IAAAC,EAAsBD,EAAU,GAAEC,kBAE1C,IAAKA,GAAkD,IAA7BA,EAAkBt9D,OACxC,OAAO,EAAK,IAGhB,IAA2B,IAAAu9D,GAAAzhD,EAAAA,EAAAA,IAAAwhD,GAAiBE,EAAAD,EAAAvhD,QAAAwhD,EAAAhjE,KAAAgjE,EAAAD,EAAAvhD,OAAE,CAC1C,GADmBwhD,EAAA/iE,MACFi7B,YAAct5B,EAAQ0oB,SACnC,OAAO,GAAI,iGAInB,OAAO,GAGL24C,EAAmB,SAACtiE,EAAqCL,GACnD,IAAAq1B,EAAwBh1B,EAAKg1B,UAAlBoM,EAAaphC,EAAKohC,SAEjCpM,IACAoM,EAAWpM,EAAUr1B,EAAQK,EAAMohC,UAAYpM,EAAUr1B,KAI3DsnB,EAAiB,SAACjnB,EAAqCL,GACjD,IAAAunB,EAAYlnB,EAAKknB,QAErBA,GACAA,EAAQvnB,IAIVsiE,EAAgB,SAClBhhE,EACAjB,EACAo8B,GAAiC,OAAAhV,EAAAA,EAAAA,SAAA,wGAIjC,OAFQ0V,EAAiC98B,EAAK88B,oBAAjBj8B,EAAYb,EAAKa,QAE1CI,EAAQ+iB,aAAe8Y,IACjBlM,EAAoB3vB,EAAQ+iB,WAAWsD,QAAO,SAAAuJ,GAAa,QAAEA,EAAUzM,gBAAkByM,EAAUzM,eAAeC,WAElGxf,OAAS,GAE3BoiB,EAAejnB,EAAO,CAAEyI,OAAQ,mBAAoBmoB,kBAAiBA,IAE/D,CAAN,EAAOsO,EAAAA,YAAYE,YAIvBv+B,EAAQ0e,QAAQ8c,KAAKE,gBAChBv8B,EAAMI,KAAK8hE,WAA6C,IAAhCliE,EAAMI,KAAK8hE,UAAUr9D,OAA9C,OACM09D,EAAeviE,EAAMwiE,eACV,GAAMC,EAAmBziE,KAH9C,MAGoD,OAAC,KAA3C0iE,EAAWviE,EAAAgpB,UACDu5C,EAASC,cAArB,YACMC,EAAyB,CAC3BC,WAAYH,EAASC,cACrBtiD,KAAMkiD,EAGNO,sBAAuB,EACvBr2C,GAAI,GACN,EAAD,eAGwB,OAHxB,sBAGwB,IAAMs2C,EAAAA,EAAAA,IAAwB,CAAE95C,cAAepoB,EAAQke,eAAiB6jD,IAAS,OACtG,OADMI,EAAe7iE,EAAAgpB,OACf,CAAN,EAAO85C,EAAoBjjE,EAAOo8B,EAAO4mC,EAAav2C,GAAIxrB,EAAQ0oB,WAAS,OAM/B,OAN+B,WAEvE9oB,EAAQq1B,YACRr1B,EAAQq1B,UAAUgtC,QAAQC,GAC1BtiE,EAAQq1B,UAAUgK,MAAM,gCAE5BjZ,EAAejnB,EAAO,CAAEyI,OAAQ,WAAW,gCAG/C5H,EAAQq1B,UAAUgK,MAAM,mCAAmC,EAAD,kCAG9D,MAAM,CAAN,EAAO+iC,EAAoBjjE,EAAOo8B,EAAOp8B,EAAMI,KAAK8hE,UAAU,GAAGz1C,GAAIxrB,EAAQ0oB,WAAS,OAI9F,MAAM,CAAN,EAAOuV,EAAAA,YAAYE,mBAGjB6jC,EAAsB,SACxBjjE,EACAo8B,EACAgnC,EACAr6C,GAAiB,OAAA3B,EAAAA,EAAAA,SAAA,gGAETvmB,EAAYb,EAAKa,QAAV,iBAGM,OAHN,sBAGM,GAAM4hE,EAAmBziE,IAAM,OAAC,OAA3C0iE,EAAWviE,EAAAgpB,SACDu5C,EAASC,cACO,IAAMU,EAAAA,EAAAA,IAAc,CAAEp6C,cAAepoB,EAAQke,eAAiBqkD,EAAY,EAClGE,EAAAA,EAAAA,mBAAkBv6C,EAAW25C,EAASC,cAAeS,MAFzD,MAGE,OAW2C,OAbvCG,EAAsBpjE,EAAAgpB,OAG5BtoB,EAAQke,cAAcykD,QAAOC,EAAAA,EAAAA,IAAyB,GAAI,MAAO,CAACF,IAC9D1iE,EAAQq1B,WACRr1B,EAAQq1B,UAAUgK,MAAM,8BAA8BqjC,GAE1DnnC,EAAMsnC,cAAa,GACnBtnC,EAAMQ,WAAW,CACbhnB,MAAO,UACPinB,WAAW,EACX8mC,oBAAqB3jE,EAAM4jE,qBAAuB5jE,EAAM4jE,qBAAuB,2BAEnFtB,EAAiBtiE,EAAO,CAAEyI,OAAQ,UAAU,aAE5C5H,EAAQq1B,UAAUgK,MAAM,mCAAmC,EAAD,kCAalB,OAbkB,WAG1Dr/B,EAAQq1B,YACRr1B,EAAQq1B,UAAUgtC,QAAQW,GAC1BhjE,EAAQq1B,UAAUgK,MAAM,kCAAkC2jC,IAG9DznC,EAAMQ,WAAW,CACbhnB,MAAO,SACPinB,WAAW,EACX8mC,oBAAqB3jE,EAAM8jE,yBAE/B78C,EAAejnB,EAAO,CAAEyI,OAAQ,WAAW,+BAI7Cu5D,EAAqB,SACvB/gE,EACAjB,EACAo8B,GAAiC,OAAAhV,EAAAA,EAAAA,SAAA,8GAID,GAFxBvmB,EAA2Eb,EAAKa,QAAvET,EAAkEJ,EAAKI,KAAjE2jE,EAA4D/jE,EAAK+jE,2BAArCC,EAAgChkE,EAAKgkE,4BAChF9B,EAAc9hE,EAAI8hE,UAClBnjD,EAA6Ble,EAAOke,cAArBmX,EAAcr1B,EAAOq1B,WAGxCr1B,EAAQ0e,QAAQ8c,KAAKE,gBAArB,gBACI2lC,IAAaA,EAAU,GAAvB,YACuG,KAAjG+B,EAAe/B,EAAU,GAAGC,kBAAmBz4C,MAAK,SAAA6K,GAAQ,OAAAA,EAAKgG,YAAct5B,EAAQ0oB,aAEzF,6BAEqB,OAFrB,sBAEqB,GAAM84C,EAAmBziE,IAAM,OAC3B,OADf0iE,EAAWviE,EAAAgpB,OACI,IAAM+6C,EAAAA,EAAAA,IAAiB,CAAEj7C,cAAelK,GAAiBmjD,EAAU,GAAGz1C,GAAI,CAACw3C,KAAc,OAgB/D,OAhBzCjB,EAAe7iE,EAAAgpB,OACjBu5C,EACA7hE,EAAQke,cAAcykD,QAAOC,EAAAA,EAAAA,IAAyB,GAAI,MAAO,CAACT,IAElE9sC,EAAUgK,MAAM,mCAGhBhK,GACAA,EAAUgK,MAAM,oBAAoBj/B,EAAQ0oB,SAAQ,0BAA0Bq5C,EAAav2C,IAE/F2P,EAAMsnC,cAAa,GACnBtnC,EAAMQ,WAAW,CACbhnB,MAAO,UACPinB,WAAW,EACX8mC,oBAAqBI,GAA0D,mCAEnFzB,EAAiBtiE,EAAO,CAAEyI,OAAQ,YAAY,aAWF,OAXE,WAE1CytB,IACAA,EAAUgtC,QAAQiB,GAClBjuC,EAAUgK,MAAM,2DAGpB9D,EAAMQ,WAAW,CACbhnB,MAAO,SACP+tD,oBAAqBK,IAEzB/8C,EAAejnB,EAAO,CAAEyI,OAAQ,WAAW,gCAG5CytB,GACPA,EAAUgK,MAAM,qGAAoG,iBAI5H,MAAM,CAAN,EAAOhB,EAAAA,YAAYE,mBAGjBqjC,EAAqB,SAACziE,GAChB,IAAAa,EAAYb,EAAKa,QACnBujE,EAAgB,IAAIC,EAAAA,iBAAiBxjE,EAAQke,cAAcD,eAAeQ,aAChF,OAAOglD,EAAAA,EAAAA,aAAYF,EAAevjE,EAAQke,gBAGjCwlD,EAAgFpiE,EAAAA,GAAiBC,gBAG5G,iBAAeC,EAAAA,EAAAA,IAAA,CAAIC,UApTyC,SAACtC,GACrD,IAAAG,GAAAuC,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,WAAS,GAAM,GAAtCwf,EAAOn8B,EAAA,GAAEu8B,EAAUv8B,EAAA,GACpBD,GAAAwC,EAAAA,EAAAA,KAA4Boa,EAAAA,EAAAA,UAASilD,EAA2B/hE,EAAMI,KAAKa,QAASjB,IAAO,GAA1FwkE,EAAStkE,EAAA,GAAEwjE,EAAYxjE,EAAA,GACxBD,GAAAyC,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,UAAS,IAAG,GAAnCkgB,EAAO/8B,EAAA,GAAE28B,EAAU38B,EAAA,GACpBm8B,EAAoC,CACtCE,QAAOA,EACPkoC,UAASA,EACTxnC,QAAOA,EAEPN,WAAUA,EACVgnC,aAAYA,EACZ9mC,WAAUA,GAGdj7B,IAAAA,WAAgB,WACZ+hE,EAAa3B,EAA2B/hE,EAAMI,KAAKa,QAASjB,MAC7D,CAACA,IAGA,IAAAykE,EAUAzkE,EAAKykE,6BATLC,EASA1kE,EAAK0kE,wBARLC,EAQA3kE,EAAK2kE,SAPLhnC,EAOA39B,EAAK29B,kBANLinC,EAMA5kE,EAAK4kE,iBALLhnC,EAKA59B,EAAK49B,eAJLh8B,EAIA5B,EAAK4B,UAHLosB,EAGAhuB,EAAKguB,SAFL6P,EAEA79B,EAAK69B,kBADLG,EACAh+B,EAAKg+B,gBAEH6mC,EAAiB,SAAC9oD,GACpB,OAAO8lD,EAA8B7+D,QAAQ+Y,EAAO/b,EAAOo8B,IAKzDppB,EAAYopB,EAAMooC,UAAYC,EAA+BC,EAC7DI,EAAuDnjE,IAAAA,YACvDojE,EAA4DpjE,IAAAA,YAC5Dw8B,OAAoCp/B,IAAtB4+B,GAAkCA,EAEhDS,OAAoCr/B,IAAtB8+B,GAAkCA,EAChDQ,OAAmCt/B,IAAtB8+B,EAAkCG,EAAkB,QACjEgnC,OAA4BjmE,IAAb4lE,EAAyBA,EAAW,OAEzD,OAAIvoC,EAAMooC,kBAL8BzlE,IAArB6lE,GAAiCA,GAMzC,KAIPjjE,IAAAA,cAAAA,IAAAA,SAAA,KACKi8B,EACGj8B,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,UACIC,UAAWiB,GAAAA,CACP,sBACAjB,EACAw6B,EAAME,QAAU,+BAAiC,GACjDF,EAAMooC,UAAY,gCAAkC,IACvD,aACWxxD,EACZhQ,QAAS6hE,EACT72C,SAAUA,EACVuQ,IAAKumC,EACLzmD,KAAM2mD,GAELhyD,GAEJorB,GACGz8B,IAAAA,cAAC68B,EAAAA,oBAAmB,CAACC,UAAWJ,EAAY9X,QAAQ,cAAcpd,OAAQ27D,GACrE9xD,IAKbrR,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,UACIC,UAAWiB,GAAAA,CACP,sBACAjB,EACAw6B,EAAME,QAAU,+BAAiC,GACjDF,EAAMooC,UAAY,gCAAkC,IACvD,aACWxxD,EACZhQ,QAAS6hE,EACT72C,SAAUA,EACVuQ,IAAKwmC,EACL1mD,KAAM2mD,IAET5mC,GACGz8B,IAAAA,cAAC68B,EAAAA,oBAAmB,CAACC,UAAWJ,EAAY9X,QAAQ,cAAcpd,OAAQ27D,GACrE9xD,IAKhBopB,EAAMY,QAAQH,WAAasB,EACxBx8B,IAAAA,cAAA,OAAKC,UAAU,qCACXD,IAAAA,cAACu3B,EAAAA,MAAK,CAACtjB,MAAOwmB,EAAMY,QAAQpnB,MAAOmM,OAAQqa,EAAMY,QAAQH,UAAW7a,OAjE3D,WACrB6/C,EAA8BllC,UAAUP,KAiEvBA,EAAMY,QAAQ2mC,sBAIvB,MA4MkC9B,wJChYlDoD,EAAA,SAAAriD,GAKI,SAAAqiD,EAAmBjlE,GAAnB,IAAA0lB,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KAkCd,OArCe0lB,EAAAw/C,SAAmB,IAyBnBx/C,EAAAy/C,cAAgB,SAAOC,GAAgB,OAAAh+C,EAAAA,EAAAA,IAAA1B,OAAA,iEAW9C,OAVF7mB,KAAKwmE,qBACLxmE,KAAKwmE,oBAAoBjwC,SAG7Bv2B,KAAKwmE,oBAAsBC,GAAAA,EAAS,kBAAAl+C,EAAAA,EAAAA,IAAA1B,OAAA,mFAChC,SAAM7mB,KAAKmB,MAAMqsB,UAAUk5C,oBAAoB,CAAEC,WAAsC,QAA5BrlE,EAAEtB,KAAKmB,MAAMgzB,SAASyyC,cAAM,IAAAtlE,EAAAA,EAAI,KAAME,MAAO+kE,KAAW,OAAC,OAApHllE,EAAAipB,OAAmH,aACpHtqB,KAAKqmE,UAER9xC,YAAW,WACP1N,EAAK2/C,wBACN,GAAE,WACR,EACL,OAzCyCxiD,EAAAA,EAAAA,IAAAoiD,EAAAriD,GAS9BqiD,EAAAniD,UAAAC,OAAP,WAGI,OACIphB,EAAAA,cAAC+jE,EAAAA,YAAW,CACR9jE,UAAW/C,KAAKmB,MAAM4B,UACtBojB,UAAWnmB,KAAKmB,MAAMglB,UACtB2gD,cAAe9mE,KAAKmB,MAAMgzB,SAASnJ,MACnC+7C,aAAc/mE,KAAKmB,MAAMgzB,SAAS6yC,cAClCC,aARa,IASbC,aAAclnE,KAAKsmE,iBAsBnCF,EAzCA,CAAyCtjE,EAAAA,eCuPnCqkE,EAAwB,CAC1BC,wBAAyB,SAACC,EAAwBC,GAC9C,OAAKD,GAAYA,EAAQliD,WAIlBkiD,EAAQliD,WAAWhP,KAAI,SAAAmP,GAAgB,UAC1C,OAA4C,IAAxCA,EAAiB0U,mBAEbl3B,EAAAA,cAAA,OAAK0H,IAAQ68D,EAAQv8C,SAAQ,qBAAsB/nB,UAAU,uCACzDD,EAAAA,cAAA,QAAMC,UAAU,wCACXukE,EAAiBC,YAClBzkE,EAAAA,cAAA,QAAMC,UAAU,QAAQuiB,EAAiBC,gBAAkBD,EAAiBC,eAAeC,SAM/D,IAAxCF,EAAiB0U,mBAEbl3B,EAAAA,cAAA,OAAK0H,IAAQ68D,EAAQv8C,SAAQ,qBAAsB/nB,UAAU,uCACzDD,EAAAA,cAAA,QAAMC,UAAU,wCACXukE,EAAiBE,aAClB1kE,EAAAA,cAAA,QAAMC,UAAU,QAAuC,QAAjCzB,EAAEgkB,EAAiBC,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,SAM7B,IAAxCF,EAAiB0U,mBAEbl3B,EAAAA,cAAA,OAAK0H,IAAQ68D,EAAQv8C,SAAQ,qBAAsB/nB,UAAU,uCACzDD,EAAAA,cAAA,QAAMC,UAAU,uCACXukE,EAAiBG,WAClB3kE,EAAAA,cAAA,QAAMC,UAAU,QAAuC,QAAjC1B,EAAEikB,EAAiBC,sBAAc,IAAAlkB,OAAA,EAAAA,EAAEmkB,SAM7B,IAAxCF,EAAiB0U,mBAEbl3B,EAAAA,cAAA,OAAK0H,IAAQ68D,EAAQv8C,SAAQ,qBAAsB/nB,UAAU,uCACzDD,EAAAA,cAAA,QAAMC,UAAU,wCACXskE,EAAQK,WAAaJ,EAAiBK,aAAeL,EAAiBM,YACvE9kE,EAAAA,cAAA,QAAMC,UAAU,QAAuC,QAAjC3B,EAAEkkB,EAAiBC,sBAAc,IAAAnkB,OAAA,EAAAA,EAAEokB,SAKlE,QA/CA,IAkDfqiD,oBAAqB,SAAC1mE,GAClB,OAAKA,EAAMI,KAAK4yB,SAASktC,eAA8D,IAA7ClgE,EAAMI,KAAK4yB,SAASktC,cAAcr7D,OAIrE7E,EAAMI,KAAK4yB,SAASktC,cAAclrD,KAAI,SAACorD,EAAcj7D,GACxD,OACIxD,EAAAA,cAAA,OAAK0H,IAAK+2D,EAAauG,SAAWxhE,EAAOvD,UAAU,uCAC/CD,EAAAA,cAAA,QAAMC,UAAU,wCACXw+D,EAAawG,UAAYxG,EAAawG,UAAY,GAAE,IAAG,KAAI5mE,EAAMglB,UAAU6hD,oBAAsB,YAAU,KAEhHllE,EAAAA,cAAA,QAAMC,UAAU,8BACXw+D,EAAaE,cACV3+D,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACO,EAAAA,EAAc,CACX9B,KACIJ,EAAM8mE,YACA,CACIzmE,MAAO,CACH2B,wBAA0BhC,EAAMI,KAAK4yB,SAAuB+zC,mBAGpE,CACI1mE,MAAO,CACH2B,wBAAyBhC,EAAMI,KAAK4yB,SAASg0C,eAC7CxmE,UAAWR,EAAMI,KAAK4yB,SAASg0C,iBAIjDnmE,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,gCACVjB,aAAcX,EAAMinE,kBAKpCtlE,EAAAA,cAAA,YAAO,WAA0C5C,IAArCqhE,EAAa8G,oBAAoC9G,EAAa8G,oBAAsB,IAAE,UApCnG,MAyCfC,qBAAsB,SAACnnE,GACnB,IAAKA,EAAMonE,0BACP,OAAO,KAEX,IAAMC,EAAmBrnE,EAAMsnE,wBACzB,0CAA0CtnE,EAAMsnE,wBAChD,yCACN,OAAO3lE,EAAAA,cAAA,QAAMC,UAAWylE,GAAmBrnE,EAAMonE,4BAQrDG,oBAAqB,SAACvnE,GAElB,IACIA,EAAMa,QAAQ2e,IAAIC,QAChBzf,EAAMa,QAAQ2e,IAAIC,OAAO8D,0BAAkF,SAAtDvjB,EAAMa,QAAQ2e,IAAIC,OAAO8D,yBAFpF,CAOA,IAAMtiB,EAAUjB,EAAMI,KAAKa,QAC3B,GAAKA,GAAYA,EAAQgkB,qBAIzB,OACItjB,EAAAA,cAAA,OAAKC,UAAU,yCACXD,EAAAA,cAAA,YAAOV,EAAQgkB,yBAI3BuiD,oBAAqB,SAACxnE,GAAqB,QACjCynE,EAAsD,QAAhCtnE,EAAGH,EAAMa,QAAQ0e,QAAQmI,eAAO,IAAAvnB,OAAA,EAAAA,EAAEunE,uBACxDC,EAA8B3nE,EAAM2nE,4BACpCvmC,EAAWphC,EAAMI,KAAK4yB,SAU5B,QARoCj0B,IAAhC4oE,KAEIvmC,EAASrZ,gBAC0C,QAD9B7nB,EACrBynE,EAA4BC,+BAAuB,IAAA1nE,OAAA,EAAAA,EAAE2nE,MAAK,SAAAC,GAAgB,OAAAA,IAAiB1mC,EAASrZ,qBAGjFqZ,EAASrZ,cAAgBqZ,EAASrZ,eAAiB0/C,GAE9E,CAIA,IAAMM,GAAuB3mC,EAAS4mC,aAAe,IAAI1gD,QAAO,SAAA2gD,GAAc,OAAAA,EAAWC,cAEzF,GAAmC,IAA/BH,EAAoBljE,OAAxB,CAIA,IAAMsjE,EAAaJ,EAAoB9jD,QAAO,SAACmkD,EAAaH,GACxD,OAAOG,GAAeH,EAAWI,kBAAoB,KACtD,GAEG35C,EACF/sB,EAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CACFC,MAAO,CACH2B,wBAAyBmmE,IAGjCvnE,cAAc,OACdC,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,gCACVjB,aAAcX,EAAMinE,gBAG5B,OACItlE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,SAAOC,UAAU,gCAAmC5B,EAAMglB,UAAUsjD,oBAAmB,KACvF3mE,EAAAA,cAAA,QAAMC,UAAU,kBAAkB8sB,OAI9C65C,mBAAoB,SAACvoE,GAAqB,MAEhCwoE,EAAmC,QAAvBroE,EADDH,EAAMI,KAAK4yB,SACEg1C,mBAAW,IAAA7nE,OAAA,EAAAA,EAAEmnB,QAAO,SAAAmhD,GAAc,OAACA,EAAWP,cAE5E,OACKM,GACGA,EAAaxzD,KAAI,SAAC0zD,EAAar/D,GAC3B,OAAOq/D,GAAeA,EAAYL,iBAC9B1mE,EAAAA,cAAA,OAAKC,UAAU,+BAA+ByH,IAAKA,GAC/C1H,EAAAA,cAAA,SAAOC,UAAU,sCAAyC8mE,EAAYC,YAAW,KACjFhnE,EAAAA,cAAA,QAAMC,UAAU,sBACZD,EAAAA,cAACO,EAAAA,EAAc,CACX9B,KAAM,CACFC,MAAO,CACH2B,wBAAyB0mE,EAAYL,mBAG7CxnE,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,sCACVjB,aAAcX,EAAMinE,kBAKhC,YAGZloE,GASR6pE,2BAA4B,SAAC5oE,GACzB,OAAuD,IAAnDA,EAAMI,KAAK4yB,SAAS61C,2BACb,KAEJlnE,EAAAA,cAAA,OAAKC,UAAU,yCAAyC5B,EAAMglB,UAAUjiB,4BAGnF+lE,wBAAyB,SAAC9oE,GACtB,IAAKA,EAAM8mE,kBAA2C/nE,IAA5BiB,EAAM+oE,mBAAmC9nD,EAAAA,iBAAiBC,cAAclhB,EAAM+oE,mBACpG,OAAO,KAEX,IAAMC,EAAkB,qCACxB,OACIrnE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAMC,UAAWonE,GAAkBhpE,EAAMglB,UAAUikD,wBACnDtnE,EAAAA,cAAA,QAAMC,UAAWonE,GAAkBhpE,EAAM+oE,qBAKrDG,0BAA2B,SAAClpE,GACxB,IAAKA,EAAM8mE,kBAA6C/nE,IAA9BiB,EAAMmpE,qBAAqCloD,EAAAA,iBAAiBC,cAAclhB,EAAMmpE,qBACtG,OAAO,KAEX,IAAMC,EAAiB,uCACvB,OACIznE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,QAAMC,UAAWwnE,GAAiBppE,EAAMglB,UAAUqkD,0BAClD1nE,EAAAA,cAAA,QAAMC,UAAWwnE,GAAiBppE,EAAMmpE,wBAWlDG,EAAkD,SAACtpE,GACrD,IAAMioB,EAAYjoB,EAAMI,KAAK4yB,SAAS9K,UAGtC,IAFAM,EAAAA,EAAAA,mBAAkBP,KAEbgT,EAAAA,EAAAA,IAAiBj7B,EAAMa,QAAQke,cAAcD,kBAAoBmJ,IAAcG,EAAAA,gBAAgBC,YAAYroB,EAAMI,KAAKmpE,UACvH,OAAO,KAGX,IAAMC,EAAUxpE,EAAMI,KAAKmpE,SAAS7/C,MAAK,SAAA7H,GAAQ,OAAAA,EAAK8H,WAAa1B,KAEnE,OAAKuhD,GAAYA,EAAQnpD,KAIlB1e,EAAAA,cAAA,OAAKC,UAAU,gCAAgC4nE,EAAQnpD,MAHnD,MAsPFopD,EAAiEtnE,EAAAA,GAAiBC,gBAA2B,gBAAcC,EAAAA,EAAAA,IAAA,CACpIC,UAhPuC,SAACtC,GAAqB,YACrD8mE,EAAuC9mE,EAAK8mE,YAA/Bp1C,EAA0B1xB,EAAK0xB,WAAnB1M,EAAchlB,EAAKglB,UAC9CvhB,EAAwBzD,EAAMI,KAA5Ba,EAAOwC,EAAAxC,QAAE+xB,EAAQvvB,EAAAuvB,SAEnB02C,EAA2B,CAC7BpD,WAAYthD,EAAUshD,WACtBF,YAAaphD,EAAUohD,YACvBK,YAAazhD,EAAUyhD,YACvBJ,aAAcrhD,EAAUqhD,aACxBG,aAAcxhD,EAAUwhD,cAEtB3iD,EACF5iB,IACAme,EAAAA,EAAAA,qBACIne,EAAQoe,OACRrf,EAAMa,QAAQke,cAAcD,eAAeQ,YAClB,QAD6Bpf,EACrC,QADqCC,EACtDH,EAAMa,QAAQ2e,WAAG,IAAArf,OAAA,EAAAA,EAAEsf,cAAM,IAAAvf,OAAA,EAAAA,EAAEwf,kBAE7BhB,EAAgB1e,EAAM0e,cAC5BA,EAAcoF,iBAAmByD,EAAAA,iBAAiBtpB,kBAAkBygB,GAC5D,IAAAirD,EAA2B3pE,EAAMglB,UAAS2kD,uBAC5CC,EAAoB3oE,GAAW+kE,EAAsBC,wBAAwBhlE,EAASyoE,GACtFhD,EAAsBV,EAAsBU,oBAAoB1mE,GAChEmnE,EAAuBnB,EAAsBmB,qBAAqBnnE,GAClEunE,EAAsBvB,EAAsBuB,oBAAoBvnE,GAChEwnE,EAAsBxB,EAAsBwB,oBAAoBxnE,GAChEuoE,EAAqBvC,EAAsBuC,mBAAmBvoE,GAC9D8oE,EAA0B9C,EAAsB8C,wBAAwB9oE,GACxE4oE,EAA6B5C,EAAsB4C,2BAA2B5oE,GAC9EgjB,GAAUC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmB,GAAIliB,MAAAA,OAAO,EAAPA,EAAS0oB,SAASxrB,YACnF0rE,GAAgBjmD,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAChE8mD,GAAc7oE,MAAAA,OAAO,EAAPA,EAASof,OAAQ2S,EAAS21C,YACxCoB,EAAgB/pE,EAAMI,KAAK4yB,SAASC,cAAgB,+BAAiC,+BAErF+2C,EAAwB,WAC1B,OAAIhqE,EAAMghB,aAEFrf,EAAAA,cAAA,OAAKC,UAAU,kDACXD,EAAAA,cAAA,QAAMC,UAAU,6BAChBD,EAAAA,cAAA,YAAO3B,EAAMghB,eAKlB,MAGLipD,EAAkB,SAACluD,GACjB/b,EAAMkqE,kBACNlqE,EAAMkqE,iBAAiBlqE,EAAMI,KAAK4yB,SAAU/W,OAAOC,SAASH,EAAM5S,OAAO7J,MAAO,IAAKU,EAAMmqE,YAkB7FC,EAAsB,SAACtgD,EAAkBugD,GAC3C,OACI1oE,EAAAA,cAAA,UACIC,UAAU,uCAAsC,aACpC+nE,EACZrqE,MAAO+qE,EACPhuD,SAAU4tD,GApBA,SAACngD,GAGnB,IAFA,IAAMwgD,EAAQ,GAELxhE,EAAI,EAAGA,GAAKghB,EAAUhhB,IAC3BwhE,EAAM/jE,KACF5E,EAAAA,cAAA,UAAQC,UAAU,6CAA6CtC,MAAOwJ,GACjEA,IAKb,OAAOwhE,EAWEC,CAAczgD,KAKrB0gD,EAA4B,iBACxBF,EAAQ,GAEd,OAAItqE,EAAMyqE,aACC,MAINzqE,EAAMI,KAAK4yB,SAASC,gBACjBjzB,EAAM0qE,sBAAyC,QAAnBvqE,EAACH,EAAMI,KAAKa,eAAO,IAAAd,OAAA,EAAAA,EAAEomE,YACjD+D,EAAM/jE,KAAK6jE,EAAoBpqE,EAAM2qE,aAAe,GAAI3qE,EAAMqqE,kBAE9DC,EAAM/jE,KACF5E,EAAAA,cAAA,OAAKC,UAAWg3D,GAAAA,CAAW,0BAA2B,CAAE,kBAAoD,IAAjC54D,EAAMI,KAAK4yB,SAAShL,YAC3FrmB,EAAAA,cAAA,SAAOC,UAAU,kBAAkBojB,EAAU4lD,uBAC7CjpE,EAAAA,cAAA,QAAMC,UAAU,kBAAkB5B,EAAMI,KAAK4yB,SAAShL,aAMtEsiD,EAAM/jE,KACF5E,EAAAA,cAAA,OAAKC,UAAU,gCACXD,EAAAA,cAACO,EAAAA,EAAc,CACX9B,KACI0mE,EACM,CACIzmE,MAAO,CACH2B,wBAA0BhC,EAAMI,KAAK4yB,SAAuB63C,6BAC5DrqE,UAAYR,EAAMI,KAAK4yB,SAAuB83C,cAGtD,CACIzqE,MAAO,CACH2B,wBAA0BhC,EAAMI,KAAK4yB,SAAsB+3C,cAC3DvqE,UAAWR,EAAMI,KAAK4yB,SAASg4C,WAIjDnqE,QAASb,EAAMa,QACf4R,GAAIzS,EAAMyS,GACV0K,SAAUnd,EAAMmd,SAChBvb,UAAU,iBACVyC,kBAAmB2gB,EAAU3gB,kBAC7BC,iBAAkB0gB,EAAU1gB,iBAC5B2mE,qBAAsBjrE,EAAMI,KAAK4yB,SAAS61C,2BAC1CloE,aAAcX,EAAMinE,kBAKzBqD,IAGX,GAA0B,YAAtBtqE,EAAMkrE,YAA2B,CACjC,IAAMnnD,GAA4B9iB,MAAAA,OAAO,EAAPA,EAAS+iB,YACrC/iB,EAAQ+iB,WAAWC,QAAe,SAACC,EAAKC,GAAgB,MACpD,OAAmC,QAAnChkB,EAAIgkB,EAAiBC,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,OAC7BH,EACUA,EAAG,KAAKC,EAAiBC,eAAeC,MAG/C,GAAGF,EAAiBC,eAAeC,MAGvCH,IACR,IACH,GAEN,OACIviB,EAAAA,cAAA,OAAKC,UAAU,wCACXD,EAAAA,cAAA,OAAKC,UAAWmoE,GACZpoE,EAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgB9e,EAAMa,QAAQke,cAAcD,eAC5CE,IAA0B,QAAvB/e,EAAED,EAAMmrE,uBAAe,IAAAlrE,EAAAA,EAAI,QAC9Bkf,YAAa0E,EACbzD,QAAS0pD,EACTnqD,aAAc3f,EAAM2f,aACpBjB,cAAeA,EACfyB,oBAAoB,WAG5Bxe,EAAAA,cAAA,OAAKC,UAAU,0BACV2pB,EAAAA,GAASC,UACN7pB,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CAAGT,UAAU,gCAAmCioE,EAAa,CAAErnD,KAAMkP,EAAYroB,IAAKqoB,IACjFo4C,GAEL,KACmB,KAAtB/lD,EAA2BpiB,EAAAA,cAAA,OAAKC,UAAU,mCAAmCmiB,GAA2B,GACxGwjD,EACAiD,IACAxqE,EAAMI,KAAK4yB,SAASC,eAAiBjzB,EAAMI,KAAKisB,WAAarsB,EAAMglB,UAAUomD,sBAC1EzpE,EAAAA,cAACsjE,EAAmB,CAChBrjE,UAAU,wCACVf,QAASb,EAAMa,QACfmkB,UAAWhlB,EAAMglB,UAAUomD,qBAC3B/+C,UAAWrsB,EAAMI,KAAKisB,UACtB2G,SAAUhzB,EAAMI,KAAK4yB,YAIhCg3C,KAKb,OACIroE,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,OAAKC,UAAU,iBACXD,EAAAA,cAAA,OAAKC,UAAWmoE,GACZpoE,EAAAA,cAACkd,EAAAA,GAAK,CACFC,eAAgB9e,EAAMa,QAAQke,cAAcD,eAC5CE,IAA0B,QAAvBvc,EAAEzC,EAAMmrE,uBAAe,IAAA1oE,EAAAA,EAAI,GAC9B0c,YAAa0E,EACbzD,QAAS0pD,EACTnqD,aAAc3f,EAAM2f,aACpBjB,cAAeA,EACfyB,oBAAoB,WAG5Bxe,EAAAA,cAAA,OAAKC,UAAU,0BACXD,EAAAA,cAAA,OAAKC,UAAU,0BACXD,EAAAA,cAAC2nE,GAAqBjnE,EAAAA,EAAAA,IAAA,GAAKrC,IAC1BurB,EAAAA,GAASC,UACN7pB,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CAAGT,UAAU,gCAAmCioE,EAAa,CAAErnD,KAAMkP,EAAYroB,IAAKqoB,IACjFo4C,GAEL,KACH1hD,EAAAA,gBAAgBC,YAAYuhD,GACzBjoE,EAAAA,cAAA,OAAKC,UAAU,mCAAmCgoE,GAElD,GAEHrC,EACAb,EACAS,EACAnnE,EAAMqrE,iCAAmC1pE,EAAAA,cAAA,OAAKC,UAAU,0BAA0B4lE,GAClFe,EACAO,EACAF,GAEJ4B,IACAxqE,EAAMI,KAAK4yB,SAASC,eAAiBjzB,EAAMI,KAAKisB,WAAarsB,EAAMglB,UAAUomD,sBAC1EzpE,EAAAA,cAACsjE,EAAmB,CAChBrjE,UAAU,wCACVf,QAASb,EAAMa,QACfmkB,UAAWhlB,EAAMglB,UAAUomD,qBAC3B/+C,UAAWrsB,EAAMI,KAAKisB,UACtB2G,SAAUhzB,EAAMI,KAAK4yB,aAKpCg3C,OAQNhE,8FC1wBMsF,EAA0E,SAACtrE,GAC5E,IAAAa,EAAwDb,EAAKa,QAApD2hC,EAA+CxiC,EAAKwiC,cAArCC,EAAgCziC,EAAKyiC,SAA3BC,EAAsB1iC,EAAK0iC,kBAE/DC,EAAehhC,IAAAA,aACjB,SAACkgB,GACG6gB,EAAkB7hC,EAASghB,EAAM2gB,KAErC,CAACE,EAAmB7hC,EAAS2hC,IAEjC,OAAIpa,EAAAA,gBAAgBC,YAAYoa,GACrB9gC,IAAAA,cAACihC,EAAAA,gBAAe,CAACtjB,YAAaze,EAAQ0e,QAAQD,YAAaujB,KAAMJ,EAAUE,aAAcA,IAG7FhhC,IAAAA,cAAA,OAAKC,UAAU,6HCuD1B,IAmhBa2pE,EAAoEppE,EAAAA,GAAiBC,gBAC9F,WAASC,EAAAA,EAAAA,IAAA,CACPC,UArhBgD,SAACnC,GAqBtD,YApBGC,EAAID,EAAAC,KACJS,EAAOV,EAAAU,QACP6d,EAAave,EAAAue,cACbna,EAAWpE,EAAAoE,YACX3D,EAAaT,EAAAS,cACbyD,EAAiBlE,EAAAkE,kBACjBC,EAAgBnE,EAAAmE,iBAChBknE,EAAerrE,EAAAqrE,gBACfnuD,EAAoBld,EAAAkd,qBACpBouD,EAAStrE,EAAAsrE,UACTtuD,EAAQhd,EAAAgd,SACR1K,EAAEtS,EAAAsS,GACF0Q,EAAgBhjB,EAAAgjB,iBAChBuoD,EAAevrE,EAAAurE,gBACfC,EAAuBxrE,EAAAwrE,wBACvBC,EAAczrE,EAAAyrE,eACd5qE,EAAoBb,EAAAa,qBACpBc,EAAc3B,EAAA2B,eACd+pE,EAAuB1rE,EAAA0rE,wBACvBC,EAAmB3rE,EAAA2rE,oBAEb7qE,EAAUb,EAAKa,QACf66B,EAAe17B,EAAK07B,aAEpBiwC,EADmBlrE,EACkC2e,IAAIC,OAAOssD,kCAStE,SAASC,EAAiBC,EAA+BC,EAA2BC,GAChF,IAAMC,EAAY,IAAIC,IAAIJ,EAAuBC,EAAY3sD,QAAQD,YAAYgtD,SAQjF,OAPIF,EAAUG,OACVH,EAAUG,QAAU,IAAIJ,EAExBC,EAAUG,QAAUJ,EAGL,IAAIE,IAAID,EAAU5pD,MACnBgqD,SAAWJ,EAAUG,OAQ3C,SAASE,EAAyBhjD,GAAiC,QAC/D,IAAKA,IAAgBA,EAAYijD,gBAC7B,OAAO,KAGX,IAAMC,EAEL,QAFsBxsE,EAAGspB,EAAYijD,gBAAgBhjD,MAClD,SAAAkjD,GAAc,IAAAzsE,EAAI,OAAsB,QAAtBA,EAAAysE,EAAeC,eAAO,IAAA1sE,OAAA,EAAAA,EAAEsF,uBAAwBsmE,YACrE,IAAA5rE,OAAA,EAAAA,EAAE2sE,SAEH,OAAK1kD,EAAAA,gBAAgBC,YAAYskD,GAI4C,QAA1DzsE,EAAGysE,EAAkBjjD,MAAK,SAAA7H,GAAQ,OAAmB,IAAnBA,EAAKkrD,oBAAmB,IAAA7sE,EAAAA,EAAIysE,EAAkB,GAHxF,KA6Cf,IAAIj7C,EAAazwB,GAAU+rE,EAAAA,EAAAA,uBAAkC,QAAb9sE,EAACe,EAAQof,YAAI,IAAAngB,EAAAA,EAAI,GAAIe,EAAQ0oB,SAAU9oB,EAAQke,mBAAehgB,GAAa,GACvH0sE,GAAa/5C,IACbA,EAAas6C,EAAiBt6C,EAAY7wB,EAAS,cAGvD,IArC6CqrE,EAA2BziD,EAC9DwjD,EACAC,EAmCJC,EAAiF,QArC1CjB,EAqCyBrrE,EApC5DosE,EAAgBR,EAD8ChjD,EAqCOxoB,GAnCrEisE,EAAyBD,MAAAA,OAAa,EAAbA,EAAeG,iBAmCnBntE,EAlCtBmoB,EAAAA,gBAAgBC,YAAY6kD,IAI1BG,EAAAA,EAAAA,kBAAiBH,EAAuB,GAAIhB,EAAY3sD,QAAQD,aAH5DmK,MAAAA,OAAW,EAAXA,EAAavK,uBAiC2D,IAAAjf,EAAAA,EAAIgB,MAAAA,OAAO,EAAPA,EAASie,gBAC9FouD,EAA2F,QAAnE7qE,EArB9B,SACIypE,EACAx6C,EACAjI,GAEA,IAAMwjD,EAAgBR,EAAyBhjD,GAC/C,KAAKwjD,MAAAA,OAAa,EAAbA,EAAeM,aAChB,OAAO77C,EAGX,IAAM87C,EAAqB30B,mBAAmBo0B,EAAcM,aAE5D,OAAOvB,EAAiBt6C,EAAYw6C,EADbH,EAAiC,IAAIyB,GAU/BC,CAAmC5sE,EAAS6wB,EAAYzwB,UAAQ,IAAAwB,EAAAA,EAAIivB,EAE/F7tB,GAAAnB,EAAAA,EAAAA,KAAsCoa,EAAAA,EAAAA,UAAiBwwD,GAAyB,GAA/EI,EAAc7pE,EAAA,GAAE8pE,EAAiB9pE,EAAA,GAClCD,GAAAlB,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAA6BqwD,GAA0B,GAA9FS,EAAehqE,EAAA,GAAEiqE,EAAkBjqE,EAAA,GACnCkqE,GAADprE,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,UAAS,IAAIixD,EAAAA,YAA0C,GAA3D,GAEpBnjD,GAAmB/pB,EAAQ2e,IAAIC,OAAOmL,iBAOtCojD,GAAwBrsE,IAAAA,aAC1B,SAACuqE,EAA2B+B,GACxB,IAAMzrC,EAAgByrC,EAAWzrC,cAEjC,GADAsrC,EAAoB7nD,SAASuc,EAAeyrC,IACxChtD,EAAAA,iBAAiBiE,mBAAmB+oD,EAAW3uE,OAAnD,CAGA,IAAM6sE,EAAiB3pC,EAAa,IAAIyrC,EAAW3uE,MAC/C4uE,EAA2B,GAC/B,GAAIR,EAAeznE,SAASu8B,GAAgB,CACxC,IAAM2rC,EAAS,IAAI9B,IAAIqB,EAAgBxB,EAAY3sD,QAAQD,YAAYgtD,SACvE6B,EAAOC,aAAaC,OAAO7rC,GAC3B0rC,EAA2BlC,EAAiBmC,EAAOhwE,WAAY0C,EAASsrE,QAExE+B,EAA2BlC,EAAiB0B,EAAgB7sE,EAASsrE,GAGzE,GADAwB,EAAkBO,GACd1rC,IAAkBupC,EAAmC,CACrD,IAAMuC,EAAwBlmD,EAAAA,gBAAgBC,YAAY4lD,EAAWM,kBAC/DN,EAAWM,iBAAiB,QAC5BxvE,EACAwqB,GAAc8jD,EAAAA,EAAAA,kBAAiBiB,EAAuBpC,EAAY3sD,QAAQD,aAChFuuD,EAAmBtkD,OAG3B,CAACukD,EAAqBjtE,EAAS6sE,IAGnC,IAAKzsE,EACD,OAAO,KAGX,IAuEmCutE,GAsNRzlB,GAtOS0lB,GAiHhC3zD,GACAza,GACA8b,GACAuyD,GACAC,GACAC,GACAC,GAEMC,GAhLJC,GAAc3mD,EAAAA,gBAAgB4mD,YACT,QADoBvrE,EAC3CxC,EAAQyrE,uBAAe,IAAAjpE,OAAA,EAAAA,EAAEuR,KAAI,SAAA6M,GAAI,YACvBotD,EAAoD,QAAlC/uE,EAAe,QAAfC,EAAG0hB,EAAKgrD,eAAO,IAAA1sE,OAAA,EAAAA,EAAEsF,2BAAiB,IAAAvF,EAAAA,EAAM,GAMhE,KAL8BgvE,EAAAA,EAAAA,8BAC1BD,EACApuE,EACAsuE,EAAAA,4BAA4BC,aAG5B,OAAO,KAGX,IAAM5sC,EAAgBysC,EAChBxsC,EAiBD,QAjBShgC,EACG,QADHxC,EACV4hB,EAAKirD,gBAAQ,IAAA7sE,OAAA,EAAAA,EAAE+U,KAAiB,SAAAi5D,GAAU,YACtC,MAAO,CACHoB,QAAwB,QAAhBlvE,EAAG0hB,EAAK8H,gBAAQ,IAAAxpB,EAAAA,EAAI,IAAE,IAAI8uE,EAAkB,KAA0B,QAA1B/uE,EAAI+tE,EAAWV,mBAAW,IAAArtE,EAAAA,EAAI,IAClFZ,MAA6B,QAAxBW,EAAEguE,EAAWV,mBAAW,IAAAttE,EAAAA,EAAI,GACjCuiC,cAAaA,EACb8sC,aAAcrB,EAAWsB,mBACzBC,SAAUvB,EAAWwB,eACrBlB,iBAAkBN,EAAWb,iBAC7BsC,UAAWzB,EAAWlB,UACtBjB,oBAAqBA,GAAsB1oE,EAAAA,EAAAA,QAAO0oE,EAAqBtpC,GAAiB,GACxFnH,WACIzQ,KAE2F,QAF3EnoB,EAChBopE,MAAAA,OAAuB,EAAvBA,EAAyBniD,MACrB,SAAAimD,GAAqB,IAAAxvE,EAAI,OAAAwvE,EAAsBrwE,SAAiC,QAAvBa,EAAC8tE,EAAWV,mBAAW,IAAAptE,EAAAA,EAAI,cAAG,IAAAsC,OAAA,EAAAA,EACxF44B,uBAEd,IAAA54B,EAAAA,EAAK,GAQV,OANI+/B,IAAkBupC,GAClB3jD,EAAAA,gBAAgBC,YAAYoa,KAC3BA,EAASolC,MAAK,SAAA+H,GAAU,OAAAA,EAAOF,eAEhCjtC,EAAS,GAAGitC,WAAY,GAErB,CAAEG,SAAUhuD,EAAK8H,SAAU8Y,SAAQA,OAK5Czf,IAAUC,EAAAA,EAAAA,kBAAiB,QAASE,EAAmB,GAAIliB,EAAQ0oB,SAASxrB,YAE5E0yC,IAAYjtB,EAAAA,EAAAA,wBAAuBT,EAAmBH,IAGtD8sD,GAAyBjvE,EAAQ2e,IAAIC,QAA0D,oBAAhD5e,EAAQ2e,IAAIC,OAAO8D,yBAwFxE,SAASwsD,GAAmB5zD,EAAiBuyD,GACzC,GAAIvyD,GAAUuyD,EAAqB,CAC/B,IAAMsB,EAAgB7zD,EAAOgvC,QAAQ,GACrC,OAAO/nD,EAAAA,EAAAA,QAAOsrE,GAAuB,GAAIsB,EAAe,KAE5D,MAAO,GASX,SAASC,GAAmBtB,EAAsBC,GAC9C,OAAID,GAAeC,GACRxrE,EAAAA,EAAAA,QAAOwrE,GAA4B,GAAID,GAE3C,GAgLX,OACIhtE,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACImgB,KAAMkrD,EACN1qE,SAASkjD,EAAAA,EAAAA,kBAAiB/iC,EAAmBH,GAAS/hB,EAAQof,MAAM,cAtK5EvF,GAwKY7Z,EAAQof,KAvKpBhgB,GAwKYQ,EAAQC,iBAAiBL,eAAeQ,EAAQ4oB,OAvK5D1N,GAwKYlb,EAAQivE,cAvKpBxB,GAwKYlD,EAvKZmD,GAwKY1tE,EAAQkvE,aAvKpBvB,GAwKYvxD,EAvKZwxD,GAwKYjD,EAtKNkD,GAA2BmB,GAAmBtB,GAAaC,MAAAA,GAAAA,GAA4B,KACnF9zD,MAAAA,GAAAA,GAAQ,IAAE,KAAIza,MAAAA,GAAAA,GAAS,IAAE,IAAI0vE,GAAmB5zD,GAAQuyD,KAC9DI,GAA2B,IAAIA,GAA6B,IAAE,KAC9DD,MAAAA,GAAAA,GAAgB,KAqKZjtE,UAAU,eACNivC,IAEJlvC,IAAAA,cAAA,OAAKC,UAAU,sBA3J3B,SACIwuE,EACAzwD,EACA6vD,EACA3rD,EACAzD,EACAtB,GAEA,IAAK0wD,IAAa7vD,IAAiBywD,EAC/B,OAAO,KAGX,IAAMC,EAAwBxvE,EAAQ2e,IAAIC,OAAO6wD,qBAC7CC,EAAsB1sD,EACtBwsD,GAAyBxsD,IACzB0sD,EAAyB1sD,EAAgB,IAAIwsD,GAEjD,IAAMphB,EAAoB,CACtBjwC,IAAKwwD,EACLpvD,QAASA,GAAoB,GAC7BjB,YAAaoxD,GAEXC,EAA0B,CAAE7wD,aAAYA,GAK9C,OAHA6wD,EAAW7wD,aAAeA,EAC1B6wD,EAAW9xD,cAAgB0xD,EAC3BI,EAAW9xD,cAAcoF,iBAAkB,EACpCniB,IAAAA,cAACkd,EAAAA,IAAKxc,EAAAA,EAAAA,IAAA,GAAK4sD,EAAWuhB,EAAU,CAAErwD,oBAAoB,QAAQrB,eAAgBA,EAAgB2xD,qBAAmB,KAiI3GC,CACGhyD,EACA7d,EAAQ0e,QAAQI,aAChBiuD,EACA3sE,EAAQie,gBACRje,EAAQof,KACRxf,EAAQke,cAAcD,iBAG9Bnd,IAAAA,cAAA,MAAIC,UAAU,sBAAsBX,EAAQof,OA7Q/C+H,EAAAA,gBAAgBC,YAAY0mD,IAK7BptE,IAAAA,cAAA,OAAKC,UAAU,2BACVmtE,GAAY/5D,KAAI,SAAA6M,GACb,OACIlgB,IAAAA,cAAC2pE,EAA+B,CAC5BjiE,IAAKwY,EAAKguD,SACVhvE,QAASA,EACT6hC,kBAAmBsrC,GACnBvrC,SAAU5gB,EAAK4gB,eAXxB,KA+QP9gC,IAAAA,cAAA,OAAKC,UAAU,wBA7HvB,SACIsqE,EACAyE,EACAC,EACAvnD,EACAwnD,EACAC,EACAC,EACAC,EACAl1C,GAEA,IAAM76B,EAAyB,CAE3BC,iBAAkBmoB,EAAoB4nD,gBAAkB9vE,EAAAA,YAAYC,OAASD,EAAAA,YAAY+vE,YAGvF7wE,EACFy7B,MAAAA,EAAAA,EACC,CACGt7B,UAAW6oB,EAAoB7oB,UAC/BF,cAAe+oB,EAAoBQ,MACnC7nB,wBAAyBqnB,EAAoBQ,MAG7CtoB,gBAAiB8nB,EAAoB9nB,gBAAkB8nB,EAAoB9nB,gBAAkB8nB,EAAoBQ,MACjHvoB,gBAAiB+nB,EAAoB/nB,gBAAkB+nB,EAAoB/nB,gBAAkB+nB,EAAoBQ,OAGzH,OACIloB,IAAAA,cAACO,EAAAA,EAAc,CACXrB,QAASqrE,EACTz5D,GAAIm+D,EACJzzD,SAAUwzD,EACV1vE,QAASA,EACTb,KAAM,CAAEC,MAAKA,GACbkE,YAAassE,EACbjwE,cAAekwE,EACfzsE,kBAAmB0sE,EACnBzsE,iBAAkB0sE,EAClBhwE,qBAAsBA,EACtBc,eAAgBA,IAsFfqvE,CAAYtwE,EAASsc,EAAU1K,EAAIxR,EAASsD,EAAa3D,EAAeyD,EAAmBC,EAAkBw3B,GAC7Gg0C,MAnTuBrB,GAmT8BxtE,EAAQgkB,sBA9SlEtjB,IAAAA,cAAA,OAAKC,UAAU,gCACXD,IAAAA,cAAA,YAAO8sE,KAJJ,OAoOY1lB,GA8EI9nD,EAAQ0nE,YA7E5BhnE,IAAAA,cAAA,KAAGC,UAAU,qBAAqBmnD,MA8E/BloD,EAAQ2e,IAAIC,OAAO2xD,YAjEjC,SACIlF,EACAyE,EACAC,EACA/zD,EACAw0D,EACAr+D,GAEA,IAAK6J,EACD,OAAO,KAGX,IAAMy0D,GAAgBD,MAAAA,OAAY,EAAZA,EAAclzE,kBAAcY,EAC5C2vE,EAAsBqB,GAAmBlzD,EAAW7J,GACpD47D,EAA2BqB,GAAmBh0D,OAAOq1D,GAAgBj0D,GAE3E,OACI1b,IAAAA,cAAC4c,EAAAA,EAAe,CACZ1d,QAASqrE,EACTz5D,GAAIm+D,EACJzzD,SAAUwzD,EACV9zD,UAAWA,EACXU,YAAa+zD,EACb50D,UAAQ,EACR1J,UAAW07D,EACXrxD,qBAAsBuxD,EACtBxuE,KAAM,KAwCFmxE,CAAa1wE,EAASsc,EAAU1K,EAAIxR,EAAQivE,cAAejvE,EAAQkvE,aAAc3E,IAtS9DgD,GAuSI5C,IAtS+B,KAA/B4C,GAK/B7sE,IAAAA,cAAA,OAAKC,UAAU,6BACXD,IAAAA,cAAA,YAAO6sE,KALJ,MAuSN9C,GA9PT,SAAyB8F,EAA4B3vD,GACjD,GAAkB,OAAd2vD,EAAJ,CAGA,IAAMC,EAAyC3D,EAAoB4D,YAAY18D,KAAsB,SAAAytB,GACjG,MAAO,CACH5J,oBAAoB84C,EAAAA,EAAAA,4CAA2ClvC,EAASD,eACxEpe,eAAgB,CACZuF,SAAU,EACVtF,MAAOoe,EAASnjC,WAI5B,OAAOqC,IAAAA,aAAmB6vE,EAAiC,CAAEI,kBAAmB/vD,EAAM4vD,mBAAkBA,KAiPhFI,CAAgBnG,EAAiBzqE,EAAQ0oB,UAC5DgiD,GAvhBb,SACIA,EACA1qE,EACAgnB,GAGA,OADAO,EAAAA,EAAAA,mBAAkBP,GACXtmB,IAAAA,aAAmBgqE,EAA+C,CAAE1qE,QAAOA,EAAEgnB,UAASA,IAihBzD6pD,CAA8BnG,EAAyB1qE,GAASsnB,EAAAA,EAAAA,IAAa1nB,EAAQ0e,aAhiB/F,mFCrD9BwyD,EAAA,SAAAnvD,GAKI,SAAAmvD,EAAmB/xE,GAAnB,IAAA0lB,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KALC0lB,EAAAssD,WAAiDrwE,EAAAA,YAgEjD+jB,EAAAusD,WAAa,SAAOl2D,GAA2C,OAAAqL,EAAAA,EAAAA,IAAA1B,OAAA,6EACvB,OAArD7mB,KAAKqkD,SAAS,CAAEgvB,cAAen2D,EAAM5S,OAAO7J,QAExCT,KAAKmB,MAAMqc,SACX,GAAMxd,KAAKmB,MAAMqc,SAAS,CACtB81D,WAAYtzE,KAAKmB,MAAMmyE,WACvBC,SAAUr2D,EAAM5S,OAAO7J,MACvB+yE,cAAet2D,EAAM5S,OAAOmpE,aAJhC,MAKE,OAJFnyE,EAAAgpB,OAIG,EAAD,iCAjEFzD,EAAK1lB,MAAMuyE,cACX7sD,EAAK1lB,MAAMuyE,aAAa,CACpBC,qBAAsB9sD,EAAK1lB,MAAMmyE,aAIzC,IAAMM,EAAe/sD,EAAK1lB,MAAM0yE,aAAahpD,MAAK,SAAA7H,GAAQ,OAAAA,EAAK6tD,aAkB4B,OAjBvF+C,GACA/sD,EAAK0W,MAAQ,CACT81C,cAAeO,EAAahgE,GAAGtU,YAE/BunB,EAAK1lB,MAAMqc,UAEXqJ,EAAK1lB,MAAMqc,SAAS,CAChB81D,WAAYzsD,EAAK1lB,MAAMmyE,WACvBC,SAAUK,EAAahgE,GACvB4/D,cAAeI,EAAanzE,SAIpComB,EAAK0W,MAAQ,CACT81C,cAAe,IAGvBxsD,EAAK1C,SAAUC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmBuC,EAAK1lB,MAAM2yE,cAAa,EA4ClG,OA5E8B9vD,EAAAA,EAAAA,IAAAkvD,EAAAnvD,GAmCnBmvD,EAAAjvD,UAAAC,OAAP,eAAA2C,EAAA,KACUvlB,EAAiEtB,KAAKmB,MAApEmyE,EAAUhyE,EAAAgyE,WAAEO,EAAYvyE,EAAAuyE,aAAEC,EAAYxyE,EAAAwyE,aAAEC,EAAkBzyE,EAAAyyE,mBAC5D/hC,GAAYjtB,EAAAA,EAAAA,wBAAuB/kB,KAAKmB,MAAMmjB,iBAAmBtkB,KAAKmkB,SAC5E,OACIrhB,EAAAA,cAAA,UAAAU,EAAAA,EAAAA,IAAA,CACIoQ,GAAI,uBAAuB0/D,EAC3B5zC,IAAK1/B,KAAKmzE,WAAU,aACRW,EACZ/wE,UAAU,uBACVya,SAAUxd,KAAKozE,YACXphC,GAEJlvC,EAAAA,cAAA,UAAQrC,MAAM,GAAE,gBAA6C,KAA7BT,KAAKu9B,MAAM81C,cAAsBr/D,SAAuC,KAA7BhU,KAAKu9B,MAAM81C,cAAsBpoB,QAAM,EAAC97B,UAAQ,GACtH4kD,GAEJF,EAAa19D,KAAI,SAAC6M,GAA6B,OAC5ClgB,EAAAA,cAAA,UACIrC,MAAOuiB,EAAKpP,GACZpJ,IAAKwY,EAAKpP,GACVI,SAAU6S,EAAK0W,MAAM81C,gBAAkBrwD,EAAKpP,GAAGtU,WAAU,gBAC1CunB,EAAK0W,MAAM81C,gBAAkBrwD,EAAKpP,GAAGtU,WACpDyD,UAAWigB,EAAKwZ,WAAa,sCAAmCt8B,GAE/D8iB,EAAKviB,YAkB9ByyE,EA5EA,CAA8BpwE,EAAAA,mFCF1BwhB,wCAGE9G,EAAW,SACb6G,EACA2vD,GAAqF,OAAAzrD,EAAAA,EAAAA,SAAA,oFAErF,SAAMyrD,GAAkB3vD,EAAaivD,WAAYjvD,EAAakvD,WAAS,OAAC,OAAxEjyE,EAAAgpB,OAAuE,YAGrE2pD,EAA0B,SAC5B5vD,EACA6vD,GAEIA,GACAA,EAAoB7vD,EAAasvD,uBAuD5BQ,EAAsB,SAC/BC,EACApyE,EACAqyE,EACAh9C,EACAi9C,EACAnuD,EACAouD,EACAnyE,EACA2oE,EACAyJ,GAEQ,IAAAC,EAAoBF,EAASE,gBAErC,GAAKryE,GAAY2oE,EAAjB,CAIA,IAAM2J,EAAY,SAAOrwD,GAAoD,OAAAkE,EAAAA,EAAAA,SAAA,mCAAAosD,EAAAA,EAAAA,IAAA,eAAArzE,GACzE,SAAAkc,EAAS6G,EAAckwD,EAAUK,gCAE/BC,EAAyB,SAAOxwD,GAA+C,OAAAkE,EAAAA,EAAAA,SAAA,mCAAAosD,EAAAA,EAAAA,IAAA,eAAArzE,GACjF,SAAA2yE,EAAwB5vD,EAAckwD,EAAUL,6BAIpD,GAFA5vD,GAAmBwwD,EAAAA,EAAAA,oBAAmB9yE,EAAQ0e,QAAQq0D,kBAAoBV,EAAUh9C,GAE/E9N,EAAAA,gBAAgBC,YAAYuhD,GAAjC,CAIA,IAAMiK,EAAYjK,EAAkB50D,KAAI,SAAC8+D,GACrC,OAjF2C,SAC/CA,EACAb,EACAE,EACAnuD,EACAsuD,EACAS,EACAL,EACAL,GAEA,IAAMV,EAAeW,EAAgBQ,EAAqBj7C,mBAAoB7T,GACxEmtD,EAAa2B,EAAqBj7C,mBAAmB16B,WACrDy0E,EAAqBO,EAA4BluE,QAAQ,MAAO0tE,EAAaltE,qBAC7EitE,EAAqCoB,EAAqBE,gBAC1DF,EAAqBE,gBAAgBh/D,KAAwB,SAAAi/D,GACzD,MAAO,CAAE30E,MAAO20E,EAAG5vD,OAAS,GAAI5R,GAAIwhE,EAAGtqD,SAASxrB,eAEpD,GACA6iB,EAAeqyD,EAAkBA,EAAgBlB,GAAc,GAErE,MAAO,CACH+B,eAAgB,CACZtyE,UAAcqxE,EAAU,cAE5BkB,oBAAqB,CACjB1pC,IAAK,QACL7oC,UAAcqxE,EAAU,4BACxBz9C,QAAYy9C,EAAU,4BAA4Bd,GAEtDiC,OAAQpzD,GACJrf,EAAAA,cAAA,QAAMC,UAAU,iDACZD,EAAAA,cAAA,QAAMC,UAAU,2BAA0B,cAAa,SACvDD,EAAAA,cAAA,YAAOqf,IAGfqzD,QAAS1yE,EAAAA,cAAA,WAAMgxE,GACf2B,OACI3yE,EAAAA,cAACowE,EAAAA,SAAQ,CACLI,WAAYA,EACZQ,aAAcA,EACdC,mBAAoBA,EACpBF,aAAcA,EACdr2D,SAAU03D,EACVxB,aAAcmB,EACdvwD,iBAAkBA,KAqC1BoxD,CACIT,EACAb,EACAE,EACAnuD,EACAsuD,EACAC,EACAG,EACAL,MAAAA,OAAe,EAAfA,EAAiBA,oBAIzB,MAAO,CACHa,eAAgB,CACZtyE,UAAcqxE,EAAU,eAE5BY,UAASA,qGC3FJW,EAAkD,SAACx0E,GACpD,IAAA2xB,EAA8C3xB,EAAK2xB,WAAvC/vB,EAAkC5B,EAAK4B,UAA5B+gC,EAAuB3iC,EAAK2iC,aAAd9gB,EAAS7hB,EAAK6hB,KACnDwtD,EAA8ExtD,EAAIwtD,OAA1E/vE,EAAsEuiB,EAAIviB,MAAnEgwE,EAA+DztD,EAAIytD,aAArDE,EAAiD3tD,EAAI2tD,SAA3C1D,EAAuCjqD,EAAIiqD,oBAAtBtpC,EAAkB3gB,EAAI2gB,cAEpFn7B,EAA6B,GAE/BotE,GAAY,EAEVC,GAAYzzD,EAAAA,iBAAiBiE,mBAAmBoqD,GAChDqF,GAAY1zD,EAAAA,iBAAiBiE,mBAAmBsqD,GAEhDoF,EAAajzE,EAAAA,aAAkB,WACjCghC,EAAa9gB,KACd,CAAC8gB,EAAc9gB,IAEZgzD,EAAmB70E,EAAM80E,mBAAqBF,OAAa71E,EAEjE,GAAI41E,EAAU,CACV,IAAMI,GAAeC,EAAAA,EAAAA,wBAAuBxF,EAAWxvE,EAAMsf,aAC7D,OACI3d,EAAAA,cAAA,OACI0H,IAAQgmE,EAAM,KAAIxtD,EAAKwZ,WAAa,WAAa,WACjDrc,IAAK+1D,EACLnzE,UAAWiB,GAAAA,CACPjB,EACGA,EAAS,IAAIytE,EACbztE,EAAS,UACZ+vB,EAAgB/vB,EAAS,aAAkBA,EAAS,eACpDigB,EAAKwZ,WAAgBz5B,EAAS,kBAAe7C,GAEjDsI,MAAOA,EACPrE,QAAS6xE,EACTI,WAAYJ,EACZvyD,MAAOhjB,EAAK,aACAA,EACZm5C,IAAKn5C,IAGNo1E,IACPrtE,EAAM48B,gBAAkBqrC,EACxBmF,GAAY,GAGhB,IAAMS,GAAqBT,EAE3B,OACI9yE,EAAAA,cAAA,UAAAU,EAAAA,EAAAA,IAAA,CACIgc,KAAK,QACLhV,IAAQgmE,EAAM,KAAIxtD,EAAKwZ,WAAa,WAAa,WACjDz5B,UAAWiB,GAAAA,CACPjB,EACGA,EAAS,IAAIytE,EAChB19C,EAAgB/vB,EAAS,aAAkBA,EAAS,eACpD6yE,EAAe7yE,EAAS,YAAiBA,EAAS,cAClDigB,EAAKwZ,WAAgBz5B,EAAS,kBAAe7C,GAEjDsI,MAAOA,EACPrE,QAAS6xE,EACTI,WAAYJ,EACZvyD,MAAOhjB,GACFwsE,EAAsB,CAAE,cAAc1oE,EAAAA,EAAAA,QAAO0oE,EAAqBtpC,EAAeljC,IAAW,KAC5FU,EAAMm1E,aAAe,CAAElyE,SAAU,GAAM,KAAK,gBACnC0uB,IAEbujD,GAAqB51E,IChFrBsjC,EAA0C,SAAC5iC,GAAmB,MACjEo1E,EAAqB,uBAErBl1E,GAAAwC,EAAAA,EAAAA,IAAsCf,EAAAA,cAAmC5C,GAAU,GAAlFs2E,EAAcn1E,EAAA,GAAEo1E,EAAiBp1E,EAAA,GAClCD,GAAAyC,EAAAA,EAAAA,IAA4Cf,EAAAA,UAAwB,GAAM,GAAzE4zE,EAAiBt1E,EAAA,GAAEu1E,EAAoBv1E,EAAA,GAExC60E,EAA6C,QAA3B30E,EAAGH,EAAM80E,0BAAkB,IAAA30E,GAAAA,EAE7Cs1E,EAAuBz1E,EAAM2iC,aAE7BA,EAAehhC,EAAAA,aACjB,SAACkgB,GACGyzD,EAAkBzzD,EAAKwtD,QAClB9nD,EAAAA,iBAAiBtpB,kBAAkBw3E,IACpCA,EAAqB5zD,GAEzB2zD,GAAqB,KAEzB,CAACF,EAAmBG,IAGxB,IAAKF,EAAmB,CACpB,IAAMG,EAAc11E,EAAM6iC,KAAKnZ,MAAK,SAAA7H,GAAQ,OAAAA,EAAK6tD,aAC7CgG,GAAeA,EAAYrG,SAAWgG,IACtCC,EAAkBI,EAAYrG,QACzB9nD,EAAAA,iBAAiBtpB,kBAAkBw3E,IACpCA,EAAqBC,IAIjC,OACI/zE,EAAAA,cAAA,OAAAU,EAAAA,EAAAA,IAAA,CACIgc,KAAK,aACLzc,UAAWiB,GAAAA,CAAWuyE,EAAoBp1E,EAAM4B,YAC3C5B,EAAMm1E,aAAe,CAAE,eAAe,GAAS,MAEnDn1E,EAAM6iC,KAAK7tB,KAAI,SAAA6M,GACZ,IAAMwtD,EAASxtD,EAAKwtD,OACd19C,EAAa0jD,IAAmBhG,EAEtC,OACI1tE,EAAAA,cAAC6yE,EAAmB,CAChBnrE,IAAQgmE,EAAM,KAAIxtD,EAAKwZ,WAAa,WAAa,WACjDz5B,UAAcwzE,EAAkB,SAChCvzD,KAAMA,EACN8gB,aAAcA,EACdhR,WAAYA,EACZrS,YAAatf,EAAMsf,YACnBw1D,mBAAoBA,EACpBK,aAAcn1E,EAAMm1E,i3DC7C/BQ,EAAsG,SAC/G31E,GAEQ,IAQJ41E,EARIh0E,EAAoB5B,EAAK4B,UAAdigB,EAAS7hB,EAAK6hB,KACzBwtD,EAA0CxtD,EAAIwtD,OAAtC/vE,EAAkCuiB,EAAIviB,MAA/BgwE,EAA2BztD,EAAIytD,aAAjBE,EAAa3tD,EAAI2tD,SAEhDnoE,EAA6B,GAE7BqtE,GAAYzzD,EAAAA,iBAAiBiE,mBAAmBoqD,GAChDqF,GAAY1zD,EAAAA,iBAAiBiE,mBAAmBsqD,GAGhDqG,EAA2B,uBAC3BC,EAA4BD,6BAClC,GAAInB,EACArtE,EAAM48B,gBAAkBqrC,EACxBsG,EACIj0E,EAAAA,cAAA,QACI0H,IAAKgmE,EACLztE,UAAWiB,GAAAA,CAAWizE,EAA2BA,EAAsB,aACvEzuE,MAAOA,EACPib,MAAOhjB,EAAK,aACAA,SAGjB,GAAIq1E,EAAU,CACjB,IAAMI,GAAeC,EAAAA,EAAAA,wBAAuBxF,EAAWxvE,EAAMsf,aAC7Ds2D,EACIj0E,EAAAA,cAAA,OACI0H,IAAKgmE,EACLrwD,IAAK+1D,EACLnzE,UAAWiB,GAAAA,CAAWizE,EAA2BA,EAAsB,WACvEzuE,MAAOA,EACPib,MAAOhjB,EAAK,aACAA,EACZm5C,IAAKn5C,IAKjB,OACIqC,EAAAA,cAAA,QAAMC,UAAWiB,GAAAA,CAAWjB,EAAcA,EAAS,IAAIytE,IAClDuG,GAAiBj0E,EAAAA,cAAA,QAAMC,UAAWi0E,GAA2BD,GAC9Dj0E,EAAAA,cAAA,QAAMC,UAAcA,EAAS,WAAYtC,KCvCxCy2E,EAAmB,SAACvzC,EAAuBxd,GACpD,OAAQwd,GACJ,KAAK1J,EAAAA,qBAAqBk9C,MACtB,OAAOhxD,EAAUixD,0BACrB,KAAKn9C,EAAAA,qBAAqBo9C,cACtB,OAAOlxD,EAAUmxD,kCACrB,KAAKr9C,EAAAA,qBAAqBs9C,KACtB,OAAOpxD,EAAUqxD,yBACrB,KAAKv9C,EAAAA,qBAAqBC,MACtB,OAAO/T,EAAUsxD,0BACrB,QACI,MAAO,KAsBbX,EAAsG,SACxG31E,GAEA,IAAMu2E,EAAyB50E,IAAAA,aAAkB,WAC7C3B,EAAMw2E,sBAAsBx2E,EAAMwiC,iBACnC,CAACxiC,IAEEsiB,EAAQyzD,EAAiB/1E,EAAMwiC,cAAexiC,EAAMglB,WAC1D,OACIrjB,IAAAA,cAACmB,EAAAA,OAAM,CAACuG,IAAKrJ,EAAMwiC,cAAe5gC,UAAW5B,EAAM4B,UAAW0gB,MAAOA,EAAOtf,QAASuzE,GAChFj0D,IAUAm0D,EAAgH,SACzHz2E,GAEA,IAAM02E,EAA0B/0E,IAAAA,YAC1BxB,GAAAuC,EAAAA,EAAAA,IAAsCf,IAAAA,UAAe,GAAM,GAA1Dg1E,EAAcx2E,EAAA,GAAEy2E,EAAiBz2E,EAAA,GAClCD,GAAAwC,EAAAA,EAAAA,IAAkDf,IAAAA,SAAe3B,EAAM62E,sBAAqB,GAA3FA,EAAoB32E,EAAA,GAAE42E,EAAuB52E,EAAA,GAC9CD,GAAAyC,EAAAA,EAAAA,IAA4Df,IAAAA,SAC9Do0E,EAAiB/1E,EAAM62E,qBAAsB72E,EAAMglB,YACtD,GAFM+xD,EAAyB92E,EAAA,GAAE+2E,EAA4B/2E,EAAA,GAIxDg3E,EAAsBj3E,EAAM4B,UAAS,YAErCs1E,EAAuBv1E,IAAAA,aAAkB,WAC3Ci1E,GAAmBD,KACpB,CAACA,IAEEJ,EAAyB50E,IAAAA,aAC3B,SAAC6gC,GACGxiC,EAAMm3E,sBAAsBN,EAAsBr0C,GAClDs0C,EAAwBt0C,GACxBw0C,EAA6BjB,EAAiBvzC,EAAexiC,EAAMglB,cAEvE,CAAC6xD,EAAsB72E,IAG3B,OACI2B,IAAAA,cAAA,OAAKC,UAAW5B,EAAM4B,WAClBD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAc5B,EAAM4B,UAAS,kBAC7B0gB,MAAOy0D,EACP37C,SAAUs7C,EAAuB,gBAClBC,EAAc,mBACX32E,EAAM4B,UACxBoB,QAASk0E,GAERH,GAELp1E,IAAAA,cAACy1E,EAAAA,QAAO,CACJx1E,UAAWq1E,EACXx4C,UAAU,eACV1c,OAAQ40D,EACRxtE,OAAQutE,EACR10D,OAAQk1D,GAERv1E,IAAAA,cAAA,OAAKC,UAAcq1E,EAAgB,aAC9Bj3E,EAAMq3E,eAAeriE,KAAI,SAAAwtB,GACtB,OACI7gC,IAAAA,cAACg0E,EAA6C,CAC1CtsE,IAAKm5B,EACL5gC,UAAcq1E,EAAgB,kBAC9BjyD,UAAWhlB,EAAMglB,UACjBwd,cAAeA,EACfg0C,sBAAuBD,WCvGjDe,EAA8H,SAChIt3E,GAEM,IAAAG,GAAAuC,EAAAA,EAAAA,IAAwCf,IAAAA,SAAe3B,EAAMu3E,iBAAgB,GAA5ElN,EAAelqE,EAAA,GAAEq3E,EAAkBr3E,EAAA,GAEpCs3E,EAAuB91E,IAAAA,aACzB,SAAC+1E,GAEG,OADAF,EAAmBE,MAAAA,EAAAA,EAAe13E,EAAMu3E,kBACjC,IAEX,CAACv3E,EAAMu3E,kBAGLI,EAAiBh2E,IAAAA,aAAkB,WAErC,OADA3B,EAAM43E,aAAavN,IACZ,IACR,CAACrqE,EAAOqqE,IAEX,OACI1oE,IAAAA,cAAA,OAAKC,UAAW5B,EAAM4B,WAClBD,IAAAA,cAAA,OAAKC,UAAc5B,EAAM4B,UAAS,oBAC7B5B,EAAMglB,UAAU6yD,uDAErBl2E,IAAAA,cAACm2E,EAAAA,oBAAmB,CAChBC,aAAc/3E,EAAMu3E,gBACpBl7D,SAAUo7D,EACV9N,uBAAwB3pE,EAAMglB,UAAUgzD,8CACxChtE,IAAKhL,EAAMi4E,iBACXr6D,IAAK5d,EAAMk4E,iBACXC,yBAA0Bn4E,EAAMglB,UAAUozD,kEAC1CC,yBAA0Br4E,EAAMglB,UAAUszD,oEAE9C32E,IAAAA,cAAA,OAAKC,UAAc5B,EAAM4B,UAAS,kBAAmB5B,EAAMglB,UAAUuzD,mDACrE52E,IAAAA,cAAA,OAAKC,UAAc5B,EAAM4B,UAAS,4BAC9BD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAc5B,EAAM4B,UAAS,mCAC7B0gB,MAAOtiB,EAAMglB,UAAUwzD,wDACvBx1E,QAAS20E,GAER33E,EAAMglB,UAAUwzD,4DAYxBC,EAAgH,SACzHz4E,GAEA,IAAM02E,EAA0B/0E,IAAAA,YAC1BxB,GAAAuC,EAAAA,EAAAA,IAAsCf,IAAAA,UAAe,GAAM,GAA1Dg1E,EAAcx2E,EAAA,GAAEy2E,EAAiBz2E,EAAA,GAElC82E,EAAsBj3E,EAAM4B,UAAS,YAErCs1E,EAAuBv1E,IAAAA,aAAkB,WAC3Ci1E,GAAmBD,KACpB,CAACA,IAEEgB,EAAiBh2E,IAAAA,aACnB,SAAC0oE,GACGuM,GAAkB,GAClB52E,EAAM43E,aAAavN,KAEvB,CAACrqE,IAGL,OACI2B,IAAAA,cAAA,OAAKC,UAAW5B,EAAM4B,WAClBD,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAc5B,EAAM4B,UAAS,kBAC7B0gB,MAAOtiB,EAAMglB,UAAU0zD,oDACvBt9C,SAAUs7C,EAAuB,gBAClBC,EAAc,mBACX32E,EAAM4B,UACxBoB,QAASk0E,GAERl3E,EAAMglB,UAAU0zD,qDAErB/2E,IAAAA,cAACy1E,EAAAA,QAAO,CACJx1E,UAAWq1E,EACXx4C,UAAU,eACV1c,OAAQ40D,EACRxtE,OAAQutE,EACR10D,OAAQk1D,GAERv1E,IAAAA,cAAC21E,GAAgEj1E,EAAAA,EAAAA,IAAA,GACzDrC,EAAK,CACT4B,UAAcq1E,EAAgB,YAC9BW,aAAcD,QCP5BgB,EAAiB,SAAC9nD,GAAqD,cACzE,OAAsC,QAA/B1wB,EAAG0wB,EAAUgI,0BAAkB,IAAA14B,EAAAA,EAAI,IAAE,KAAsC,QAAtCF,EAA4B,QAA5BC,EAAI2wB,EAAUzM,sBAAc,IAAAlkB,OAAA,EAAAA,EAAEypB,gBAAQ,IAAA1pB,EAAAA,EAAI,IAAE,KAAmC,QAAnCwD,EAA4B,QAA5BhB,EAAIouB,EAAUzM,sBAAc,IAAA3hB,OAAA,EAAAA,EAAE4hB,aAAK,IAAA5gB,EAAAA,EAAI,KA0BtHm1E,EAAuB,SAChCC,EACAzwC,EACA3oB,GAGA,OADyBA,EAAOmL,kBArBQ,SACxCiuD,EACAzwC,EACA0wC,GAEA,IAAMjoD,EAAYuX,EAAW1e,MAAK,SAAA7H,GAAQ,OAAA82D,EAAe92D,KAAUg3D,KACnE,OAAOE,EAAAA,EAAAA,yCAAwCloD,EAAWioD,GAmBnDE,CAAoCH,EAAazwC,EAAY3oB,EAAOq5D,kBAAoBG,EAAAA,qBAAqBC,YAqBlHC,EAA4B,SAC9BC,EACAhxC,EACA3oB,EACA83D,GAAuB,QAEvB,IAAKnvD,EAAAA,gBAAgBC,YAAY+wD,GAC7B,MAAO,GAGX,GAA4B,IAAxBA,EAAav0E,OACb,OAAOu0E,EAAa,GAAGpkE,KAAI,SAAA6jE,GACvB,IAAMQ,EAAcT,EAAqBC,EAAazwC,EAAY3oB,GAClE,MAAO,CACH25D,aAAc,CAACP,GACfQ,YAAWA,EACXvvD,SAAUuvD,EAAc9B,EAAkB,MAKtD,IAAMjN,EAAQ6O,EAA0BC,EAAaryE,MAAM,GAAIqhC,EAAY3oB,EAAQ83D,GAC/E+B,EAA2C,GAAE,WACtC/sC,GACP+sC,EAAWA,EAASC,OAChBH,EAAa,GAAGpkE,KAAI,SAAA6b,GAChB,IAAM2oD,EAAkBjtC,EAAK8sC,aAAeT,EAAqB/nD,EAAWuX,EAAY3oB,GAOxF,MAN+C,CAC3C25D,aAAc7sC,EAAK6sC,aAAaG,OAAO1oD,GACvCwoD,YAAaG,EACb1vD,SAAU0vD,EAAkBjtC,EAAKziB,SAAW,QAKvD,IAZL,IAAmB,IAAA2vD,GAAA94D,EAAAA,EAAAA,IAAA2pD,GAAKoP,EAAAD,EAAA54D,QAAA64D,EAAAr6E,KAAAq6E,EAAAD,EAAA54D,OAAA,CAAT,EAAA64D,EAAAp6E,QAAA,iGAef,OAAOg6E,GASLK,EAAsB,SACxBvxC,EACAwxC,GAA6D,QAE7D,IAAIA,MAAAA,OAAc,EAAdA,EAAgB/0E,UAAWujC,EAAWvjC,OACtC,MAAO,CACH,CACIwyE,eAAgBuC,EAAe5kE,KAAI,SAAA6b,GAAa,OAAAA,EAAUgI,wBAKtE,IAAIl5B,EAEE,GAAG,IAET,IAAwB,IAAAk6E,GAAAl5D,EAAAA,EAAAA,IAAAynB,GAAU0xC,EAAAD,EAAAh5D,QAAAi5D,EAAAz6E,KAAAy6E,EAAAD,EAAAh5D,OAAE,CAA/B,IAAMgQ,EAASipD,EAAAx6E,MAChB,KAAIs6E,MAAAA,OAAc,EAAdA,EAAgB3zE,SAAS4qB,IAA7B,CAGA,IAAMkpD,EAAoBH,EAAiBA,EAAeL,OAAO1oD,GAAa,CAACA,GACzEmpD,EAAgBL,EAAoBvxC,EAAY2xC,GACtDp6E,EAASA,EAAO45E,OAAOS,KAAc,iGAGzC,OAAOr6E,GAcXs6E,EAAA,SAAAr3D,GAaI,SAAAq3D,EAAmBj6E,GAAnB,IAAA0lB,EACI9C,EAAA9kB,KAAA,KAAMkC,IAAM,KAyIC0lB,EAAAw0D,0BAA4B,SAACzI,GAC1C/rD,EAAKw9B,UAAS,SAAA9mB,GACV,IAGM+9C,EAHez0D,EAAK00D,kBAAkB1wD,MAAK,SAAApqB,GAC7C,OAAOA,EAAM+3E,eAAen7C,KAAK,OAASu1C,EAAmBjuB,eAAen6C,OAE7CguE,eAAeriE,KAC9C,SAAAwtB,GAAiB,OAAApG,EAAMi+C,gBAAgB3wD,MAAK,SAAA7H,GAAQ,OAAAA,EAAKgX,qBAAuB2J,QAKpF,MAAO,CACH63C,gBAAiBF,EACjB7P,MAJa5kD,EAAK40D,8BAA8BlyD,EAAAA,gBAAgBmyD,QAAQJ,GAAgB/9C,EAAMkuC,OAK9FkQ,kBAAmB/vB,KAAKgwB,WAuCnB/0D,EAAAg1D,qBAAuB,SAAChD,GACrChyD,EAAKw9B,UAAS,SAAA9mB,GACV,IAAMkuC,EAAQluC,EAAMkuC,MAAMt1D,KAAI,SAAAu3B,GAC1B,OAAAlqC,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAA,GACOkqC,GAAI,CACPziB,SAAUyiB,EAAK8sC,YAAc3B,EAAc,OAG7C58C,EAAawvC,EAAMt1D,KAAI,SAAAu3B,GAAQ,OAAAA,EAAKziB,YAC1C,MAAO,CACHwgD,MAAKA,EACLqQ,cAAevyD,EAAAA,gBAAgBC,YAAYyS,GAAc1S,EAAAA,gBAAgB2S,aAAaD,GAAc,EACpG0/C,kBAAmB/vB,KAAKgwB,WAQnB/0D,EAAAk1D,oBAAsB,WACnCl1D,EAAKg1D,qBAAqBT,EAAwBY,sBAAsBtD,kBA+E3D7xD,EAAAo1D,yBAA2B,SAACjC,GAAwB,kBACjEnzD,EAAKw9B,UAAS,SAAA9mB,GACV,IAAM2+C,EAAa3+C,EAAM4+C,sBAAsBC,yBAAyBpC,GAAa,GAGrF,OAFAz8C,EAAM4+C,sBAAsB/0D,SAAS4yD,GAAckC,GAE5C,CACHC,sBAAuB5+C,EAAM4+C,sBAC7BE,0BAA2BzwB,KAAKgwB,YAiD3B/0D,EAAAy1D,2BAA6B,SAACC,EAA+BC,GAC1E31D,EAAKw9B,UACD,SAAA9mB,GACI,IAAMk/C,EAAoBl/C,EAAMi+C,gBAAgB3wD,MAAK,SAAA7H,GAAQ,OAAAA,EAAKgX,qBAAuBuiD,KACnFG,EAAen/C,EAAMi+C,gBAAgB3wD,MAAK,SAAA7H,GAAQ,OAAAA,EAAKgX,qBAAuBwiD,KAE9ElB,EAAgB/9C,EAAMi+C,gBAAgBrlE,KAAI,SAAA6M,GAC5C,OAAIA,IAASy5D,EACFC,EAEP15D,IAAS05D,EACFD,EAEJz5D,KAKX,MAAO,CACHw4D,gBAAiBF,EACjB7P,MAJa5kD,EAAK40D,8BAA8BH,EAAe/9C,EAAMkuC,OAKrEkQ,kBAAmB/vB,KAAKgwB,UAGhC,WACI/0D,EAAK1lB,MAAMw7E,mBAAqB91D,EAAK1lB,MAAMw7E,wBAsYtC91D,EAAA+1D,sBAAwB,SAAClvC,GAAuC,gBAAC64B,GAC9E,QAD8E,IAAAA,IAAAA,EAAA,GACzE74B,EAAK8sC,YAAV,CAIA,IAAMqC,EAAatW,EAAW74B,EAAKziB,SACnCyiB,EAAKziB,SAAWs7C,EAChB1/C,EAAKw9B,UAAS,SAAA9mB,GACV,MAAO,CACHu+C,cAAev+C,EAAMu+C,cAAgBe,SAhwB7C,IAAMxlE,EAAsG,QAArFylE,EAAAA,EAAAA,UAAS,CAAEC,QAASC,EAAAA,YAAYC,SAAUj7E,QAAS6kB,EAAK1lB,MAAMa,QAAQ0e,UAEvF6oB,EAAapoC,EAAMI,KAAKgoC,WACxBkiC,EAAQ2P,EAAwB8B,eAAe7lE,EAAiBkS,EAAAA,gBAAgBmyD,QAAQnyC,GAAcA,EAAYpoC,GAClH86B,EAAawvC,EAAMt1D,KAAI,SAAAu3B,GAAQ,OAAAA,EAAKziB,YAmBE,OAlB5CpE,EAAK0W,MAAQ,CACTi+C,gBAAiBjyC,EACjBkiC,MAAKA,EACLqQ,cAAevyD,EAAAA,gBAAgBC,YAAYyS,GAAc1S,EAAAA,gBAAgB2S,aAAaD,GAAc,EACpG0/C,kBAAmB/vB,KAAKgwB,MACxBO,sBAAuB,IAAIjN,EAAAA,WAM3BmN,0BAA2BzwB,KAAKgwB,OAGpC/0D,EAAK00D,kBAAoBT,EAAoBvxC,GAEzCjmC,EAAAA,GAAiBqpB,WAEjB9F,EAAKs2D,oCAAmC,EA6uBpD,OApxB6Cn5D,EAAAA,EAAAA,IAAAo3D,EAAAr3D,GA4C1Bq3D,EAAA8B,eAAf,SAA8B3zC,EAAwDpoC,GAAoC,QAChHo5E,EAAehxD,EAAAA,gBAAgB4mD,YACjC5mC,EAAWpzB,KAAI,SAAA6b,GAAS,IAAA1wB,EAAI,OAAAioB,EAAAA,gBAAgB4mD,YAAkD,QAAvC7uE,EAAC0wB,EAAUorD,oCAA4B,IAAA97E,OAAA,EAAAA,EAAE6U,IAAI2jE,QAGlGuD,EAAiB9zD,EAAAA,gBAAgB+zD,QAAQ/zC,EAAWpzB,KAAI,SAAA6b,GAAa,OAAAA,EAAUorD,iCAE/E3R,EAAQ6O,EACVC,EACA8C,EACAl8E,EAAMa,QAAQ2e,IAAIC,OAClBw6D,EAAwBY,sBAAsBtD,iBACjD,WAEUhrC,GAAI,QACL6vC,EAAiBF,EAAe50D,QAAO,SAAAuJ,GAAa,OAAA0b,EAAK6sC,aAAanzE,SAAS0yE,EAAe9nD,OAEhGwrD,OAAU,EAAsB,WACzBxrD,GACP,IAAMyrD,EAAsBzrD,EAAU0rD,WACtC,OAAKn0D,EAAAA,gBAAgBC,YAAYi0D,QAGdv9E,IAAfs9E,GACAA,EAAaC,EAAmB,iBAGpCD,EAAaA,EAAW/0D,QAAO,SAAAyB,GAAa,OAAAuzD,EAAoBr2E,SAAS8iB,OAPlB,YAO6B,IATxF,IAAwB,IAAAyzD,GAAAC,OAAA,GAAA97D,EAAAA,EAAAA,IAAAy7D,IAAcM,EAAAF,EAAA37D,QAAA67D,EAAAr9E,KAAAq9E,EAAAF,EAAA37D,OAAA,CAAlB,EAAA67D,EAAAp9E,QAAA,iGAWO,KAAvB+8E,MAAAA,OAAU,EAAVA,EAAYx3E,UACZ0nC,EAAKxjB,UAAYszD,EAAW,KAAE,IAhBtC,IAAmB,IAAAM,GAAAh8D,EAAAA,EAAAA,IAAA2pD,GAAKsS,EAAAD,EAAA97D,QAAA+7D,EAAAv9E,KAAAu9E,EAAAD,EAAA97D,OAAA,CAAT,EAAA+7D,EAAAt9E,QAAA,iGAoBf,OAAOgrE,GAII2P,EAAA4C,uBAAf,SAAsCj7E,GAClC,OAAOD,EAAAA,cAAA,OAAK0H,IAAI,oBAAoBzH,UAAWA,KAG5Cq4E,EAAAn3D,UAAAC,OAAP,WACI,OAAKqF,EAAAA,gBAAgBC,YAAYxpB,KAAKu9B,MAAMkuC,OAKxC3oE,EAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAWhE,KAAKmB,MAAM4B,UAAWq4E,EAAwB6C,aACpEj+E,KAAKk+E,cAAiB9C,EAAwB6C,WAAU,YACxDj+E,KAAKm+E,cAAiB/C,EAAwB6C,WAAU,YACxDj+E,KAAKo+E,cAAiBhD,EAAwB6C,WAAU,aAPtD,MAYF7C,EAAAn3D,UAAAk5D,kCAAb,6JAIoF,GAH1EK,EAAax9E,KAAKu9B,MAAMkuC,MAAMt1D,KAAI,SAAAu3B,GAAQ,OAAAA,EAAKxjB,aAC/ChK,EAAgBlgB,KAAKmB,MAAMa,QAAQke,cACnC6L,EAAmB/rB,KAAKmB,MAAMa,QAAQ2e,IAAIC,OAAOmL,iBACjDsyD,EAAuBr+E,KAAKmB,MAAMa,QAAQ2e,IAAIC,OAAOy9D,qBAEtDtyD,EAAD,gBACA,IAAmB1qB,GAAAygB,EAAAA,EAAAA,IAAA9hB,KAAKu9B,MAAMkuC,OAAKrqE,EAAAC,EAAA2gB,QAAA5gB,EAAAZ,KAAAY,EAAAC,EAAA2gB,QAAxB0rB,EAAItsC,EAAAX,OACN+5E,aAAc,EAAI,oHAWJ,OARjB8D,EAAoE,CACtEZ,WAAYF,EACZe,sBAAuB,EACvBC,iCAAiC,EACjCC,4BAA6Bv1D,EAAAA,aAAaw1D,SAC1CC,qBAA+C,eAAzBN,GAGH,GAAMl0D,EAAAA,oBAAAA,8BACzB,CAAEC,cAAelK,GACjBo+D,IACH,OAHKM,EAAiB7uD,EAAAzF,OAGrB,EAAD,SAEUojB,GACP,IA/NYhiB,EAAmDuuD,EA+NzDjK,EAAsE,QAA1D1uE,EAAGs9E,EAAeC,gDAAwC,IAAAv9E,OAAA,EAAAA,EAAEupB,MAC1E,SAAA7H,GAAQ,OAAAA,EAAK0Y,YAAcgS,EAAKxjB,aAEpCwjB,EAAK8sC,iBACgBt6E,IAAjB8vE,IAnOQtkD,EAmOyCskD,EAnOUiK,EAmOI6E,EAAK39E,MAAMa,QAAQ2e,IAAIC,OAAOq5D,gBAlOtG8E,EAAAA,EAAAA,8CAA6CrzD,EAAqBuuD,KAAoBG,EAAAA,qBAAqBC,aAkOU,WALpH,IAAmBz2E,GAAAke,EAAAA,EAAAA,IAAA9hB,KAAKu9B,MAAMkuC,OAAK7mE,EAAAhB,EAAAoe,QAAApd,EAAApE,KAAAoE,EAAAhB,EAAAoe,OAAxB0rB,EAAI9oC,EAAAnE,MAAA,EAAJitC,GAAI,kHAWhB,OAFH1tC,KAAKqkD,SAAS,CACVs3B,kBAAmB/vB,KAAKgwB,QAC1B,YAGER,EAAAn3D,UAAAi6D,cAAR,SAAsBn7E,GAClB,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACX/C,KAAKg/E,6BAAgCj8E,EAAS,mBAC9C/C,KAAKi/E,eAAkBl8E,EAAS,eA4BrCq4E,EAAAn3D,UAAA+6D,6BAAR,SAAqCj8E,GAArC,IAAA8jB,EAAA,KAGI,KAF4G,QAArFi2D,EAAAA,EAAAA,UAAS,CAAEC,QAASC,EAAAA,YAAYC,SAAUj7E,QAAShC,KAAKmB,MAAMa,QAAQ0e,WAGzF,OAAO,KAGX,IAAMs0D,EAAYh1E,KAAKu7E,kBAAkBplE,KAAI,SAAA1V,GACzC,MAAO,CACH+J,IAAK/J,EAAM+3E,eAAen7C,KAAK,KAC/B58B,MAAOA,EAAM+3E,eACRriE,KAAI,SAAA6b,GAAa,OAAAklD,EAAiBllD,EAAWnL,EAAK1lB,MAAMglB,cACxDkX,KAAKxW,EAAK1lB,MAAMglB,UAAU+4D,kDAIvC,OACIp8E,EAAAA,cAAA,OAAKC,UAAWA,GACZD,EAAAA,cAACq8E,EAAAA,gBAAe,CACZC,eAAmBr8E,EAAS,UAC5Bs8E,UAAWr/E,KAAKmB,MAAMglB,UAAUm5D,yCAChCC,gBAAiBvK,EACjBrwB,eAAgBqwB,EAAU,GAC1BwK,kBAAsBz8E,EAAS,aAC/B08E,eAAgBz/E,KAAKq7E,8BAkC7BD,EAAAn3D,UAAAg7D,eAAR,SAAuBl8E,GACnB,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACX/C,KAAK0/E,0BAA6B38E,EAAS,oCAC3C/C,KAAK2/E,0BAA6B58E,EAAS,sCAKhDq4E,EAAAn3D,UAAAy7D,0BAAR,SAAkC38E,GAC9B,IAAM68E,EAA6B5/E,KAAKmB,MAAMa,QAAQ2e,IAAIC,OAAOg/D,2BACjE,OACI98E,EAAAA,cAAC82E,EAAkD,CAC/C72E,UAAWA,EACXojB,UAAWnmB,KAAKmB,MAAMglB,UACtBuyD,gBAAiB0C,EAAwBY,sBAAsBtD,gBAC/DU,iBAAkBgC,EAAwBY,sBAAsB6D,YAChExG,iBAAkBuG,GAA8BxE,EAAwBY,sBAAsBlQ,YAC9FiN,aAAc/4E,KAAK67E,wBAKvBT,EAAAn3D,UAAA07D,0BAAR,SAAkC58E,GAC9B,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACZD,EAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAcA,EAAS,WACvB0gB,MAAOzjB,KAAKmB,MAAMglB,UAAU25D,oCAC5B37E,QAASnE,KAAK+7E,qBAEb/7E,KAAKmB,MAAMglB,UAAU25D,uCAM9B1E,EAAAn3D,UAAA87D,qBAAR,SAA6Bh9E,GAA7B,IAAA8jB,EAAA,KACUm5D,EAAkBj9E,EAAS,QAC3Bk9E,EAAmBD,EAAY,SAC/B3C,EAAiB9zD,EAAAA,gBAAgB+zD,QAAQt9E,KAAKu9B,MAAMi+C,gBAAgBrlE,KAAI,SAAA6b,GAAa,OAAAA,EAAUorD,iCAC/Fn4C,EAAOjlC,KAAKkgF,yBAAyBF,EAAc3C,EAAgB,GAAI,GAAGp4C,KAE1Ek7C,EAAqB52D,EAAAA,gBAAgBmyD,QAAQ17E,KAAKu9B,MAAMi+C,iBAE9D,OACI14E,EAAAA,cAAA,OAAKC,UAAWA,EAAWyH,IAAKu6C,KAAKoS,UAAUn3D,KAAKu9B,MAAMi+C,kBACrDx7E,KAAKogF,8BAAiCr9E,EAAS,sBAAuBo9E,GACvEr9E,EAAAA,cAAA,OAAKC,UAAcA,EAAS,aACxBD,EAAAA,cAAA,OAAKC,UAAWi9E,GACXG,EAAmBhqE,KAAI,SAAC6b,EAAW1rB,GAAK,MACrC,OAAIA,IAAU65E,EAAmBn6E,OAAS,EACO,QAA7C1E,EAAO0wB,EAAUorD,oCAA4B,IAAA97E,OAAA,EAAAA,EAAE6U,KAAI,SAAA6M,GAC/C,OAAA6D,EAAKw5D,2BAA2BJ,EAAej9D,MAGhDo4D,EAAwB4C,uBAAuBiC,OAG7Dh7C,EAAK9uB,KAAI,SAAAmqE,GACN,OACIx9E,EAAAA,cAAA,OAAKC,UAAWi9E,EAAcx1E,IAAI,SAC7B81E,SA0BrBlF,EAAAn3D,UAAAs8D,oBAAR,SAA4Bx9E,GACxB,IAAMy9E,EAAgBj3D,EAAAA,gBAAgB+zD,QAAQt9E,KAAKu9B,MAAMi+C,gBAAgBrlE,KAAI,SAAA6b,GAAa,OAAAA,EAAUorD,iCAE9FqD,EAA8B19E,EAAS,qBAEvC29E,EADmB39E,EAAS,SACmB,wBAErD,OACID,EAAAA,cAAA,OACIC,UAAWiB,GAAAA,CAAWjB,EAAiD,IAAtC/C,KAAKu9B,MAAMi+C,gBAAgBx1E,OAAey6E,EAA2B,IACtGj2E,IAAQu6C,KAAKoS,UAAUn3D,KAAKu9B,MAAMi+C,iBAAgB,IAAIx7E,KAAKu9B,MAAMo+C,mBAEhE37E,KAAK2gF,wBAAwBD,EAA8BF,EAAe,GAAI,GAAGv7C,OAKtFm2C,EAAAn3D,UAAAk6D,cAAR,SAAsBp7E,GAGlB,MAF4G,QAArF+5E,EAAAA,EAAAA,UAAS,CAAEC,QAASC,EAAAA,YAAYC,SAAUj7E,QAAShC,KAAKmB,MAAMa,QAAQ0e,UAMtF1gB,KAAKugF,oBAAuBx9E,EAAS,YAHjC/C,KAAK+/E,qBAAqBh9E,IAMjCq4E,EAAAn3D,UAAAw3D,8BAAR,SACIH,EACA7P,GAEA,OAAO2P,EAAwB8B,eAAe5B,EAAet7E,KAAKmB,OAAOgV,KAAI,SAAAu3B,GACzE,IAAMkzC,EAAenV,EAAM5gD,MAAK,SAAAg2D,GAAY,OAAAt3D,EAAAA,gBAAgBu3D,cAAcpzC,EAAK6sC,aAAcsG,EAAStG,iBAGtG,OAFA7sC,EAAKziB,SAAW21D,EAAa31D,SAC7ByiB,EAAK8sC,YAAcoG,EAAapG,YACzB9sC,MAuCP0tC,EAAAn3D,UAAAm8D,8BAAR,SAAsCr9E,EAAmBwmC,GAAzD,IAAA1iB,EAAA,KACUo5D,EAAmBl9E,EAAS,SAC5Bs6E,EAAiB9zC,EAAWpzB,KAAI,SAAA6b,GAAa,OAAAA,EAAUgI,sBAE7D,OACIl3B,EAAAA,cAAA,OAAKC,UAAWA,GACXs6E,EAAelnE,KAAI,SAAAwtB,GAChB,OACI7gC,EAAAA,cAAC80E,EAAkD,CAC/CptE,IAAKm5B,EACL5gC,UAAWk9E,EACX95D,UAAWU,EAAK1lB,MAAMglB,UACtBqyD,eAAgB6E,EAChBrF,qBAAsBr0C,EACtB20C,sBAAuBzxD,EAAKy1D,kCAQ5ClB,EAAAn3D,UAAA88D,iCAAR,SACIh+E,EACAivB,EACAmM,GAEA,IAAM67C,EAAcF,EAAe9nD,GAC7BkqD,EAAal8E,KAAKu9B,MAAM4+C,sBAAsBC,yBAAyBpC,GAAa,GAEpFgH,EAA2Bj+E,EAAS,kBACpCk+E,EAAuBl+E,EAAS,aAChCm+E,EAA2BD,EAAiB,SAElD,OACIn+E,EAAAA,cAAA,OAAKC,UAAWA,EAAWyH,IAAQwvE,EAAW,KAAIkC,EAAa,WAAa,aAAW,IAAIl8E,KAAKu9B,MAAMo+C,mBAClG74E,EAAAA,cAACmB,EAAAA,OAAM,CAAClB,UAAWi+E,EAAuB78E,QAASnE,KAAKi8E,yBAAyBjC,GAAY,gBAAiBkC,GACzGl8E,KAAKqgF,2BAA8BW,EAAqB,cAAehvD,IAE5ElvB,EAAAA,cAACq+E,EAAAA,SAAQ,CAACp+E,UAAWk+E,EAAmB/9D,OAAQg5D,GAC5Cp5E,EAAAA,cAAA,OAAKC,UAAWm+E,GAAwB/iD,MAMhDi9C,EAAAn3D,UAAA08D,wBAAR,SACI59E,EACAwmC,EACA63C,EACAC,GAEA,IAAMvgF,EAAsC,CACxCmkC,KAAM,GACNq8C,aAAcD,GAGlB,GAAIA,GAAarhF,KAAKu9B,MAAMkuC,MAAMzlE,OAC9B,OAAOlF,EAGX,IAAM4sC,EAAO1tC,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAC/BC,EAAyB7zC,EAAK6sC,aAAav0E,OAC3Cw7E,EAA4BJ,EAAkBp7E,OAC9Cy7E,EAAqB/zC,EAAK6sC,aAAaiH,GACvCE,EAAmBn4C,EAAW1e,MAAK,SAAAmH,GAAa,OAAA8nD,EAAe9nD,KAAeyvD,KAE9ExB,EAAmBl9E,EAAS,SAElC,GAAIw+E,IAA2BC,EAA4B,EAAG,CAG1D,GAFA1gF,EAAOmkC,KAAKv9B,KAAK,IAEgB,IAA7BgmC,EAAK6sC,aAAav0E,OAAc,CAChC,IADiC,IAAD,aAE5B,IAAMg0E,EAAc2H,EAAKpkD,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,GACjEI,EAAgBr4C,EAAW1e,MAAK,SAAAmH,GAAa,OAAA8nD,EAAe9nD,KAAegoD,KAEjFl5E,EAAOmkC,KAAK,GAAGv9B,KACX5E,EAAAA,cAAA,OAAKC,UAAWk9E,GACX0B,EAAKtB,2BAA8BJ,EAAa,oBAAqB2B,GACrED,EAAKE,kBAAqB5B,EAAa,YAAan/E,EAAOwgF,mBAEnE,OATExgF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QAAM,IAWpD,OAAOlF,EAUX,GAPAA,EAAOmkC,KAAK,GAAGv9B,KACX5E,EAAAA,cAAA,OAAKC,UAAWk9E,GACXjgF,KAAKqgF,2BAA8BJ,EAAa,oBAAqByB,GACrE1hF,KAAK6hF,kBAAqB5B,EAAa,YAAan/E,EAAOwgF,kBAIhEE,EAA4B,EAG5B,IAFA,IAAM/E,EAAoB2E,EAAkBI,EAA4B,GAAE,aAMtE,IAAMxH,EAAc8H,EAAKvkD,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,GACjEI,EAAgBr4C,EAAW1e,MAAK,SAAAmH,GAAa,OAAA8nD,EAAe9nD,KAAegoD,KACjFl5E,EAAOmkC,KAAK,GAAGv9B,KACX5E,EAAAA,cAAA,OAAKC,UAAWk9E,GACX6B,EAAKzB,2BAA8BJ,EAAa,oBAAqB2B,GACrEE,EAAKD,kBAAqB5B,EAAa,YAAan/E,EAAOwgF,mBAEnE,OAVDxgF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QACvCy2E,IAAsBz8E,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,EAA4B,IAAE,IAa/G,OAAO1gF,EAGX,IAAMmkC,EAAOjlC,KAAK2gF,wBAAwB59E,EAAWwmC,EAAY63C,EAAkB1G,OAAO+G,GAAqB3gF,EAAOwgF,cAatH,GAZAxgF,EAAOwgF,aAAer8C,EAAKq8C,aACO,IAA9BE,EACA1gF,EAAOmkC,KAAKv9B,KAAK,CAAC1H,KAAK+gF,iCAAoCh+E,EAAS,mBAAoB2+E,EAAkB5+E,EAAAA,cAAAA,EAAAA,SAAA,KAAGmiC,EAAKA,SAElHnkC,EAAOmkC,KAAKv9B,KAAK,CACb5E,EAAAA,cAAA,OAAKC,UAAcA,EAAS,cAAeyH,IAAKi3E,GAC3CzhF,KAAKqgF,2BAA8Bt9E,EAAS,yBAA0B2+E,GACvE5+E,EAAAA,cAAA,OAAKC,UAAcA,EAAS,sBAAuBkiC,EAAKA,SAKhEu8C,EAA4B,EAE5B,IADM/E,EAAoB2E,EAAkBI,EAA4B,GAEpE1gF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QACvCy2E,IAAsBz8E,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,EAA4B,IACvG,CACE,IAAMO,EAAW/hF,KAAK2gF,wBAAwB59E,EAAWwmC,EAAY63C,EAAmBtgF,EAAOwgF,cAC/FxgF,EAAOmkC,KAAOnkC,EAAOmkC,KAAKy1C,OAAOqH,EAAS98C,MAC1CnkC,EAAOwgF,aAAeS,EAAST,kBAGnC,KAAOxgF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QAAQ,CAC5C+7E,EAAW/hF,KAAK2gF,wBAAwB59E,EAAWwmC,EAAY63C,EAAmBtgF,EAAOwgF,cAC/FxgF,EAAOmkC,KAAOnkC,EAAOmkC,KAAKy1C,OAAOqH,EAAS98C,MAC1CnkC,EAAOwgF,aAAeS,EAAST,aAIvC,OAAOxgF,GAGHs6E,EAAAn3D,UAAAi8D,yBAAR,SACIn9E,EACAwmC,EACA63C,EACAC,GAJJ,IAAAx6D,EAAA,KAMU/lB,EAAsC,CACxCmkC,KAAM,GACNq8C,aAAcD,GAGlB,GAAIA,GAAarhF,KAAKu9B,MAAMkuC,MAAMzlE,OAC9B,OAAOlF,EAGX,IAAM4sC,EAAO1tC,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAC/BC,EAAyB7zC,EAAK6sC,aAAav0E,OAC3Cw7E,EAA4BJ,EAAkBp7E,OAC9Cy7E,EAAqB/zC,EAAK6sC,aAAaiH,GACvCE,EAAmBn4C,EAAW1e,MAAK,SAAAmH,GAAa,OAAA8nD,EAAe9nD,KAAeyvD,KAE9ExB,EAAmBl9E,EAAS,SAElC,GAAIw+E,IAA2BC,EAA4B,EAAG,CAG1D,GAFA1gF,EAAOmkC,KAAKv9B,KAAK,IAEgB,IAA7BgmC,EAAK6sC,aAAav0E,OAAc,CAChC,KAAOlF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QAC1ClF,EAAOmkC,KAAK,GAAGv9B,KAAK1H,KAAK6hF,kBAAkB5B,EAAen/E,EAAOwgF,iBAErE,OAAOxgF,EAKX,GAFAA,EAAOmkC,KAAK,GAAGv9B,KAAK1H,KAAK6hF,kBAAkB5B,EAAen/E,EAAOwgF,iBAE7DE,EAA4B,EAG5B,IAFA,IAAM/E,EAAoB2E,EAAkBI,EAA4B,GAGpE1gF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QACvCy2E,IAAsBz8E,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,EAA4B,IAErG1gF,EAAOmkC,KAAK,GAAGv9B,KAAK1H,KAAK6hF,kBAAkB5B,EAAen/E,EAAOwgF,iBAIzE,OAAOxgF,EAGX,IAAMmkC,EAAOjlC,KAAKkgF,yBACdn9E,EACAwmC,EACA63C,EAAkB1G,OAAO+G,GACzB3gF,EAAOwgF,cAYX,GAVAxgF,EAAOmkC,KAAOnkC,EAAOmkC,KAAKy1C,OACtBz1C,EAAKA,KAAK9uB,KAAI,SAACmqE,EAAOh6E,GAClB,OAAc,IAAVA,EACO,CAACugB,EAAKw5D,2BAA2BJ,EAAeyB,IAAmBhH,OAAO4F,GAE9E,CAAClF,EAAwB4C,uBAAuBiC,IAAgBvF,OAAO4F,OAGtFx/E,EAAOwgF,aAAer8C,EAAKq8C,aAEvBE,EAA4B,EAE5B,IADM/E,EAAoB2E,EAAkBI,EAA4B,GAEpE1gF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QACvCy2E,IAAsBz8E,KAAKu9B,MAAMkuC,MAAM3qE,EAAOwgF,cAAc/G,aAAaiH,EAA4B,IACvG,CACE,IAAMO,EAAW/hF,KAAKkgF,yBAAyBn9E,EAAWwmC,EAAY63C,EAAmBtgF,EAAOwgF,cAChGxgF,EAAOmkC,KAAOnkC,EAAOmkC,KAAKy1C,OAAOqH,EAAS98C,MAC1CnkC,EAAOwgF,aAAeS,EAAST,kBAGnC,KAAOxgF,EAAOwgF,aAAethF,KAAKu9B,MAAMkuC,MAAMzlE,QAAQ,CAC5C+7E,EAAW/hF,KAAKkgF,yBAAyBn9E,EAAWwmC,EAAY63C,EAAmBtgF,EAAOwgF,cAChGxgF,EAAOmkC,KAAOnkC,EAAOmkC,KAAKy1C,OAAOqH,EAAS98C,MAC1CnkC,EAAOwgF,aAAeS,EAAST,aAIvC,OAAOxgF,GAGHs6E,EAAAn3D,UAAAo8D,2BAAR,SAAmCt9E,EAAmBivB,GAAqD,YACjGgoD,EAAcF,EAAe9nD,GAEnC,OACIlvB,EAAAA,cAAA,OAAKC,UAAWA,EAAWyH,IAAKwvE,GAC5Bl3E,EAAAA,cAACg0E,EAA6C,CAC1C/zE,UAAcA,EAAS,mBACvB0d,YAAazgB,KAAKmB,MAAMa,QAAQ0e,QAAQD,YACxCuC,KAAM,CACFwtD,OAAQwJ,EACRv5E,MAAsC,QAAjCY,EAA0B,QAA1BC,EAAE0wB,EAAUzM,sBAAc,IAAAjkB,OAAA,EAAAA,EAAEkkB,aAAK,IAAAnkB,EAAAA,EAAI,GAC1CovE,aAAsC,QAA1BrvE,EAAE4wB,EAAUzM,sBAAc,IAAAnkB,OAAA,EAAAA,EAAE4gF,aACxCrR,SAAkC,QAA1B/sE,EAAEouB,EAAUzM,sBAAc,IAAA3hB,OAAA,EAAAA,EAAEq+E,cAOhD7G,EAAAn3D,UAAA49D,kBAAR,SAA0B9+E,EAAmBs+E,GACzC,IAAM3zC,EAAO1tC,KAAKu9B,MAAMkuC,MAAM4V,GAE9B,OACIv+E,EAAAA,cAAA,OACI0H,IAAQu6C,KAAKoS,UAAUzpB,EAAK6sC,cAAa,IAAIv6E,KAAKu9B,MAAMo+C,kBACxD54E,UAAWiB,GAAAA,CAAWjB,EAAW2qC,EAAK8sC,YAAiBz3E,EAAS,cAAmBA,EAAS,kBAE3F2qC,EAAK8sC,YAAcx6E,KAAKkiF,0BAA0Bx0C,GAAQ1tC,KAAKmiF,4BAA+Bp/E,EAAS,oBAK5Gq4E,EAAAn3D,UAAAk+D,4BAAR,SAAoCp/E,GAChC,OACID,EAAAA,cAAA,OAAKC,UAAWA,EAAWyH,IAAI,gBAC1BxK,KAAKmB,MAAMglB,UAAUi8D,yCAK1BhH,EAAAn3D,UAAAi+D,0BAAR,SAAkCx0C,GAC9B,IAAMkyC,EAA6B5/E,KAAKmB,MAAMa,QAAQ2e,IAAIC,OAAOg/D,2BACjE,OACI98E,EAAAA,cAACqmB,EAAAA,SAAQ,CACL3e,IAAQu6C,KAAKoS,UAAUzpB,EAAK6sC,cAAa,IAAIv6E,KAAKu9B,MAAMo+C,kBACxDzC,aAAcxrC,EAAKziB,SACnBzN,SAAUxd,KAAK48E,sBAAsBlvC,GACrCo9B,uBAAwB9qE,KAAKmB,MAAMglB,UAAUgzD,8CAC7ChtE,IAAKivE,EAAwBY,sBAAsB6D,YACnD9gE,IAAK6gE,GAA8BxE,EAAwBY,sBAAsBlQ,eAKrFsP,EAAAn3D,UAAAo+D,oBAAR,SAA4Bt/E,GACxB,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACZD,EAAAA,cAAA,OAAKC,UAAcA,EAAS,oBAAqB/C,KAAKu9B,MAAMu+C,eAC5Dh5E,EAAAA,cAAA,OAAKC,UAAcA,EAAS,0BAA2B/C,KAAKmB,MAAMglB,UAAUm8D,0CAKhFlH,EAAAn3D,UAAAs+D,kBAAR,WACI,OAAOviF,KAAKu9B,MAAMkuC,MACbhjD,QAAO,SAAAilB,GAAQ,OAAAA,EAAKxjB,WAA+B,IAAlBwjB,EAAKziB,YACtC9U,KAAI,SAAAu3B,GACD,MAAO,CACHxjB,UAAWwjB,EAAKxjB,UAChBe,SAAUyiB,EAAKziB,cAKvBmwD,EAAAn3D,UAAAu+D,0BAAR,SAAkCz/E,GAC9B,OAAI2lB,EAAAA,iBAAiBtpB,kBAAkBY,KAAKmB,MAAMI,KAAK+2B,gBAC5C,KAIPx1B,EAAAA,cAAC43B,EAAAA,GAAmC,CAChC33B,UAAWA,EACXf,QAAShC,KAAKmB,MAAMa,QACpBT,KAAM,CACF+2B,eAAgBt4B,KAAKmB,MAAMI,KAAK+2B,eAChC1Y,SAAU5f,KAAKuiF,oBAAoBpsE,KAAI,SAAA6M,GACnC,MAAO,CACH0Y,UAAW1Y,EAAKkH,UAChBf,SAAUnG,EAAKiI,SACfyX,cAAe,OAGvB+/C,oBAAqBziF,KAAKmB,MAAMI,KAAKkhF,qBAEzCt8D,UAAWnmB,KAAKmB,MAAMglB,UACtBqW,WAAyC,IAA7Bx8B,KAAKu9B,MAAMu+C,cACvBhoD,oCAAqC9zB,KAAKmB,MAAM2yB,oCAChD1K,UAAWppB,KAAKmB,MAAMioB,aAK1BgyD,EAAAn3D,UAAAy+D,iBAAR,SAAyB3/E,GAAzB,IAAA8jB,EAAA,KACI,OACI/jB,EAAAA,cAACmsB,EAAAA,GAA4B,CACzBzkB,IAAK,GAAGu6C,KAAKoS,UAAUn3D,KAAKu9B,MAAMkuC,OAClCh6C,cAAezxB,KAAKmB,MAAMglB,UAAUw8D,gDACpCvxD,oBAAqBpxB,KAAKmB,MAAMglB,UAAUw8D,gDAC1C/uE,GAAG,GACH0K,SAAS,GACTvb,UAAWA,EACXyjB,eAAe5C,EAAAA,EAAAA,IAAW,OAAQ5jB,KAAKmB,MAAMa,QAAQke,eACrDle,QAAShC,KAAKmB,MAAMa,QACpBwgB,cAAexiB,KAAKmB,MAAMglB,UAC1BgG,wBAAsB,EACtB5qB,UAAMrB,EACN0f,SAAU5f,KAAKuiF,oBACfpzD,SAAuC,IAA7BnvB,KAAKu9B,MAAMu+C,cACrBzzD,QAAS,SAACvnB,GAAM,SAC6B,QAAzCO,EAA2B,QAA3BC,EAAIR,EAAOssB,wBAAgB,IAAA9rB,OAAA,EAAAA,EAAE2rB,oBAAY,IAAA5rB,OAAA,EAAAA,EAAE6rB,mBACvCrG,EAAK1lB,MAAMyhF,eAAe9hF,EAAOssB,iBAAiBH,aAAaC,sBAO3EkuD,EAAAn3D,UAAAm6D,cAAR,SAAsBr7E,GAClB,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACX/C,KAAKqiF,oBAAuBt/E,EAAS,mBACrC/C,KAAK6iF,qBAAwB9/E,EAAS,eAK3Cq4E,EAAAn3D,UAAA4+D,qBAAR,SAA6B9/E,GACzB,OACID,EAAAA,cAAA,OAAKC,UAAWA,GACX/C,KAAKwiF,0BAA6Bz/E,EAAS,2BAC3C/C,KAAK0iF,iBAAoB3/E,EAAS,mBA5vBvBq4E,EAAA6C,WAAqB,gCAErB7C,EAAAY,sBAAwB,CAC5CtD,gBAAiB,EACjBmH,YAAa,EACb/T,YAAa,KA8wBrBsP,EApxBA,CAA6Ct4E,EAAAA,+GCtQjCggF,EAQAC,UA0DL,SAASC,EACZC,EACAC,GAA6C,YAEvCC,EAAgD,GAClDC,GAAqB,EAAM,IAG/B,IAAgC,IAAAC,GAAAvhE,EAAAA,EAAAA,IAAAohE,GAAyBI,EAAAD,EAAArhE,QAAAshE,EAAA9iF,KAAA8iF,EAAAD,EAAArhE,OAAE,CAAtD,IAAMuhE,EAAiBD,EAAA7iF,MACxB,GAAI+iF,EAA8BP,EAAuBQ,gBAAiBF,IAEtE,GADAH,GAAqB,EACjBH,EAAuBS,YAAa,CACpC,IAAM1hE,GAAIxe,EAAAA,EAAAA,KAAAA,EAAAA,EAAAA,IAAA,GACH+/E,GAAiB,CACpBI,cAC0CzjF,IAAtC+iF,EAAuBW,WACjB,GAAGX,EAAuBW,WAC1BL,EAAkBI,SAC5BE,cACwC3jF,IAApC+iF,EAAuBa,SAAyB,GAAGb,EAAuBa,SAAaP,EAAkBM,WAEjHV,EAA0Bz7E,KAAKsa,SAInCmhE,EAA0Bz7E,KAAK67E,IAAkB,iGAIzD,IAAKH,EAAoB,CACfphE,GAAIxe,EAAAA,EAAAA,IAAA,GACHy/E,EAAuBQ,iBAM9B,GAHAN,EAA0Bz7E,KAAKsa,GAG3BihE,EAAuBc,mBAAmBC,YAAclB,EAAmBmB,aAAc,CAAC,IAAD,WAC9E93C,GACP,GAAMA,EAAM+3C,gBAAkBliE,EAAKkiE,eAAiB/3C,EAAMr4B,QAAUkO,EAAKlO,MAAQ,CAC7E,IAAMqwE,EAAgBhB,EAA0BiB,WAAU,SAAAC,GAAa,OAAAb,EAA8Br3C,EAAOk4C,MAExGF,GAAiB,GACjBhB,EAA0Bj5E,OAAOi6E,EAAe,KAAE,IAL9D,IAAoB,IAAA/iF,GAAA0gB,EAAAA,EAAAA,IAAAmhE,EAAuBc,mBAAmBO,cAAY1gF,EAAAxC,EAAA4gB,QAAApe,EAAApD,KAAAoD,EAAAxC,EAAA4gB,OAAA,CAA1D,EAAApe,EAAAnD,QAAA,mGAYxB,OAAO0iF,EASJ,SAASK,EAA8Be,EAAgCC,GAC1E,OACIA,EAAoBN,gBAAkBK,EAAaL,eACnDM,EAAoB1wE,QAAUywE,EAAazwE,OAC3CywE,EAAaE,kBAAoBD,EAAoBC,iBAjI7D,SAAY3B,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,6BAFJ,CAAYA,IAAAA,EAAkB,KAQ9B,SAAYC,GACRA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,yBAFJ,CAAYA,IAAAA,EAAe,uDC4BrB2B,EAAgE,SAACvjF,GAC3D,IAAA4B,EAAsE5B,EAAK4B,UAAhEwyB,EAA2Dp0B,EAAKo0B,KAA1DphB,EAAqDhT,EAAKgT,UAA/CqoB,EAA0Cr7B,EAAKq7B,WAAnClY,EAA8BnjB,EAAKmjB,iBAAjBngB,EAAYhD,EAAKgD,QAG7EwgF,GAAyB5/D,EAAAA,EAAAA,wBAC3B5jB,EAAMmjB,kBACNF,EAAAA,EAAAA,kBAAiB,QAASE,EAAmBC,EAAAA,kBAAkBqgE,eAGnE,OACI9hF,EAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAAWiB,GAAAA,CAAWjB,EAnCC,qBAoCvBosB,SAAUqN,EAAU,aACRroB,MAAAA,EAAAA,EAAaohB,EAAI,gBACdiH,EACfr4B,QAASA,GACLwgF,GAEHpvD,IAQAsvD,EAAqEvhF,EAAAA,GAAiBC,gBAC/F,gBACA,CACIE,UAAWX,EAAAA,KAAW4hF,0BCxDxBniB,EAA6B,6BAkD7BuiB,EAAgF,SAAC3jF,GAE/E,IAAA4B,EASA5B,EAAK4B,UARLgiF,EAQA5jF,EAAK4jF,aAPLjxE,EAOA3S,EAAK2S,MANLkxE,EAMA7jF,EAAK6jF,gBALLC,EAKA9jF,EAAK8jF,aAJL92E,EAIAhN,EAAKgN,eAHG+2E,EAGR/jF,EAAKI,KAAA2jF,gBAFLC,EAEAhkF,EAAKgkF,cADLC,EACAjkF,EAAKikF,gBAuBHC,EAAuBviF,EAAAA,aACzB,SAACwiF,GAA0C,gBAACpoE,GACxCA,EAAMwpC,iBACNxpC,EAAMupC,kBAEN,IAAM8+B,EAAmBroE,EAAM85C,cAE/BmuB,EAAc,CACVG,oBAAmBA,EACnBE,gBAAgB,EAChBC,gBAAiBF,EAAiBG,iBAG1C,CAACP,IAGCQ,EAAyB7iF,EAAAA,aAC3B,WAAM,gBAACoa,GACHA,EAAMwpC,iBACNxpC,EAAMupC,kBAEN,IAAM8+B,EAAmBroE,EAAM85C,cAE/BouB,EAAgB,CACZE,yBAAqBplF,EACrBslF,gBAAgB,EAChBC,gBAAiBF,EAAiBG,iBAG1C,CAACN,IAICjhE,GAAoBC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmB,IAC7EH,EAAQQ,cAAcC,MAAQmgE,EAC9B,IAAMa,GAAqB7gE,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAE3E,OACIrhB,EAAAA,cAAA,OAAKC,UAAWw/D,GACXh5C,EAAAA,gBAAgBC,YAAY07D,IAAoBpxE,GAAShR,EAAAA,cAAA,QAAMC,UA1H1Cw/D,qCA0HsEzuD,GAC5FhR,EAAAA,cAAA,MAAIC,UAAWiB,GAAAA,CAAWjB,EA1HLw/D,mCA0H+B,kBAC/Ch5C,EAAAA,gBAAgBC,YAAY07D,IACzBA,EAAgB/uE,KAAI,SAAC0vE,EAAYv/E,GAC7B,IAAMw/E,EA3DP,SAACC,GAAmC,UAE7CC,EAAgBf,MAAAA,EAAAA,EAAgB,MAEhCgB,EAAuBF,EAAkBjyE,MAC3CywE,EAA8C,QAAlCjjF,EAAWykF,EAAkBtlF,aAAK,IAAAa,EAAAA,EAAI,GACtD,GAAIykF,EAAkBG,WAAanD,EAAgBoD,UAAW,CAC1D,IAAMC,EAAoD,QAArC/kF,EAAW0kF,EAAkBpC,gBAAQ,IAAAtiF,EAAAA,EAAI,GACxDglF,EAAoD,QAArCjlF,EAAW2kF,EAAkBlC,gBAAQ,IAAAziF,EAAAA,EAAI,GAC9DmjF,EAAe,YAAYn+E,QAAQ,MAAOggF,GAAiBhgF,QAAQ,MAAOigF,GAG9E,OAAOL,EAAc5/E,QAAQ,MAAO6/E,GAAc7/E,QAAQ,MAAOm+E,GA+C1B+B,CAAWT,GAGlC1hE,EAAQQ,cAAcC,MAAQkhE,EAC9B,IAAMS,GAAsBxhE,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAE5E,OACIrhB,EAAAA,cAAA,MAAIC,UAnIKw/D,wCAmIyB/3D,IAAKlE,GACnCxD,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIgH,IAAKq7E,EAAW3B,cAChBnhF,UArIHw/D,mCAsIG/iD,KAAK,SAAQ,aACEsmE,EAAc,KAAId,MAAAA,EAAAA,EAAmB,IACpD7gF,QAASkhF,EAAqBQ,IAC1BU,GAEHT,EACDhjF,EAAAA,cAAA,QACIC,UAAWiB,GAAAA,CA5INu+D,wCACLA,qCA4IA/iD,KAAK,SAAQ,aACDrR,UAOvCob,EAAAA,gBAAgBC,YAAY07D,IAAoBH,GAC7CjiF,EAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIT,UArJuBw/D,wCAqJW,aACtBp0D,EACZhK,QAASwhF,KACLC,GAEHb,KAURyB,EAAqFljF,EAAAA,GAAiBC,gBAGjH,yBAA0B,CAAEE,UAAWX,EAAAA,KAAWgiF,KChL9CviB,EAA6B,qBAuB7BkkB,EAAkE,SAACtlF,GAC7D,IAAA4B,EAA+C5B,EAAK4B,UAAzC2jF,EAAoCvlF,EAAKulF,kBAAtBC,EAAiBxlF,EAAKwlF,aAE5D,OACI7jF,EAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAWjB,EAAWw/D,IAClCz/D,EAAAA,cAAA,OAAKC,UA3B0Bw/D,+BA4B1BokB,GAAgB7jF,EAAAA,cAAA,OAAKC,UA3BUw/D,qCA2BgCokB,GAC/DD,GAAqB5jF,EAAAA,cAAC+hF,GAAqBrhF,EAAAA,EAAAA,IAAA,GAAKkjF,OASpDE,EAAuEtjF,EAAAA,GAAiBC,gBAEnG,iBAAkB,CAChBE,UAAWX,EAAAA,KAAW2jF,KCjBpBI,EAAkE,SAAC1lF,GAC7D,IAAA4B,EAAgE5B,EAAK4B,UAA1DwyB,EAAqDp0B,EAAKo0B,KAApDphB,EAA+ChT,EAAKgT,UAAzCqoB,EAAoCr7B,EAAKq7B,WAA7B0/C,EAAwB/6E,EAAK+6E,WAAjB/3E,EAAYhD,EAAKgD,QAE7E,OACIrB,EAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAWiB,GAAAA,CAAWjB,EAAWm5E,EA9BP3Z,sCACCA,wCA8B3BpzC,SAAUqN,EAAU,aACRroB,MAAAA,EAAAA,EAAaohB,EAAI,kBACZ2mD,EAAU,gBACZ1/C,EACfr4B,QAASA,GAERoxB,IAQAuxD,EAAuExjF,EAAAA,GAAiBC,gBAEnG,iBAAkB,CAChBE,UAAWX,EAAAA,KAAW+jF,KC9CpBtkB,EAAqB,mBAKrBwkB,EAAmBxkB,2BAyCnBykB,EAA8D,SAAC7lF,GAAwB,UACnFyC,GAAAC,EAAAA,EAAAA,IAAwCf,IAAAA,SAAe3B,EAAM8lF,mBAAkB,GAA9EC,EAAetjF,EAAA,GAAEujF,EAAkBvjF,EAAA,GAe1C,OACId,IAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAAWw/D,IACvCh5C,EAAAA,gBAAgBC,YAAYroB,EAAMI,KAAKqX,UACpC9V,IAAAA,cAAA,SAAO8Q,GA7DJ2uD,0BA6DiB5rC,QAASowD,EAAehkF,UA3DlCw/D,2BA4DLphE,EAAM2S,MACPhR,IAAAA,cAAA,UACI8Q,GAAImzE,EACJrnD,IA1EpB0nD,UA2EoBrkF,UArEQw/D,iCAsER9hE,MAAOymF,MAAAA,OAAe,EAAfA,EAAiBzmF,MACxBgjB,MAAsB,QAAjBniB,EAAEH,EAAMgT,iBAAS,IAAA7S,EAAAA,EAAI,GAC1B6tB,SAAUhuB,EAAMq7B,WAAU,aACC,QADDn7B,EACdF,EAAMgT,iBAAS,IAAA9S,EAAAA,EAAI,GAAE,gBAClBF,EAAMq7B,WACrBhf,SA3BU,SAACN,GAA2C,QAChEzc,EAAQyc,EAAM5S,OAAO7J,MACrB4mF,EAA+B,QAArB/lF,EAAGH,EAAMI,KAAKqX,eAAO,IAAAtX,OAAA,EAAAA,EAAEupB,MAAK,SAAC5U,GAA+B,OAAAA,EAAOxV,QAAUA,KAC7F0mF,EAAmBE,GACC,QAApBhmF,EAAAF,EAAMs+E,sBAAc,IAAAp+E,GAAAA,EAAApC,KAApBkC,EAAuBkmF,KAyBY,QAFYjmF,EAE9BD,EAAMI,KAAKqX,eAAO,IAAAxX,OAAA,EAAAA,EAAE+U,KAAI,SAACF,GACtB,OACInT,IAAAA,cAAA,UACI0H,IAAKyL,EAAOxV,MACZA,MAAOwV,EAAOxV,MAAK,aACPwV,EAAOnC,MAAK,gBACTmC,EAAOxV,SAAUymF,MAAAA,OAAe,EAAfA,EAAiBzmF,OACjDsC,UAAWiB,GAAAA,CAnFhBu+D,gCAqFStsD,EAAOxV,SAAUymF,MAAAA,OAAe,EAAfA,EAAiBzmF,OApFnC8hE,yCAoFyE,KAG3EtsD,EAAOnC,cAc/BwzE,EAAmEhkF,EAAAA,GAAiBC,gBAC7F,eACA,CAAEE,UAAWX,IAAAA,KAAWkkF,KCzGtBzkB,EAAqB,qBA0BrBglB,EAAkE,SAACpmF,GAC7D,IAAA4B,EAA4B5B,EAAK4B,UAAtB4jF,EAAiBxlF,EAAKwlF,aAEzC,OACI7jF,EAAAA,cAACwpC,EAAAA,KAAI,CAACvpC,UAAWiB,GAAAA,CAAWjB,EAAWw/D,IAClCphE,EAAMqmF,oBAAsB1kF,EAAAA,cAACgkF,GAAsBtjF,EAAAA,EAAAA,IAAA,GAAKrC,EAAMqmF,qBAC9DrmF,EAAMsmF,2BACH3kF,EAAAA,cAAA,OAAKC,UAhCoBw/D,8CAiCrBz/D,EAAAA,cAAC0jF,GAA6BhjF,EAAAA,EAAAA,IAAA,GAAKrC,EAAMsmF,6BAGjD3kF,EAAAA,cAAA,OAAKC,UAnCsBw/D,4CAoCtBphE,EAAMumF,kBAAoB5kF,EAAAA,cAACwkF,GAAoB9jF,EAAAA,EAAAA,IAAA,GAAKrC,EAAMumF,mBAC1Df,GAAgB7jF,EAAAA,cAAA,OAAKC,UApCEw/D,6CAoCwCokB,MASnEgB,EAAuErkF,EAAAA,GAAiBC,gBAEnG,iBAAkB,CAChBE,UAAWX,EAAAA,KAAWykF,KCvDpBhlB,EAAqB,yBA2BrBqlB,EAAwE,SAACzmF,GACnE,IAAA4B,EAAkG5B,EAAK4B,UAA5Fy5B,EAAuFr7B,EAAKq7B,WAAhF1oB,EAA2E3S,EAAK2S,MAAzEK,EAAoEhT,EAAKgT,UAA9D0zE,EAAyD1mF,EAAK0mF,eAA9CC,EAAyC3mF,EAAK2mF,UAAnC3jF,EAA8BhD,EAAKgD,QAA1BmgB,EAAqBnjB,EAAKmjB,iBAE3GyjE,EAAoBF,EAAiB,gBAAkB,eAC3DE,EAAoBD,EAAeC,EAAiB,WAAaA,EAGjE,IAAM5jE,GAAoBC,EAAAA,EAAAA,kBAAiB,QAASE,EAAmB,IACvEH,EAAQQ,cAAcC,MAAQ9Q,EAC9B,IAAMk0E,GAAwBjjE,EAAAA,EAAAA,wBAAuBT,EAAmBH,GASxE,OACIrhB,IAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACIY,SAAU,EACVrB,UAAWiB,GAAAA,CAAWjB,EAAWw/D,EAAoBwlB,EAAmBvrD,EAAa,WAAa,IAClGhd,KAAMqoE,EAAiB,QAAU,WAAU,aAC/B1zE,MAAAA,EAAAA,EAAaL,EAAK,eAChBg0E,EAAS,gBACRtrD,EACfr4B,QAfe,SAAC+Y,GACpBA,EAAMwpC,iBACNxpC,EAAMupC,mBAELtlD,EAAMq7B,YAAcr4B,MAYb6jF,GAEJllF,IAAAA,cAAA,QAAMC,UAvDQw/D,gCAuDiB,cAAc,QACxCzuD,KASJm0E,EAA6E3kF,EAAAA,GAAiBC,gBAGzG,qBAAsB,CACpBE,UAAWX,IAAAA,KAAW8kF,KCnEpBrlB,EAAqB,6BAOrB2lB,EAAqB3lB,wCACrB4lB,EAAqB5lB,wCAiCrB6lB,EAAgF,SAACjnF,GAE/E,IAAA4B,EAcA5B,EAAK4B,UAbLslF,EAaAlnF,EAAKknF,cAZLC,EAYAnnF,EAAKmnF,cAXLC,EAWApnF,EAAKonF,kBAVLC,EAUArnF,EAAKqnF,kBATLhsD,EASAr7B,EAAKq7B,WARLisD,EAQAtnF,EAAKsnF,cAPLC,EAOAvnF,EAAKunF,cANLC,EAMAxnF,EAAKwnF,wBALLC,EAKAznF,EAAKynF,gBAJLC,EAIA1nF,EAAK0nF,iBAHLC,EAGA3nF,EAAK2nF,iBAFLC,EAEA5nF,EAAK4nF,eADLC,EACA7nF,EAAK6nF,eACH1nF,GAAAuC,EAAAA,EAAAA,IAA0Cf,IAAAA,SAAe2lF,GAAc,GAAtEQ,EAAgB3nF,EAAA,GAAE4nF,EAAmB5nF,EAAA,GACtCD,GAAAwC,EAAAA,EAAAA,IAA0Cf,IAAAA,SAAe4lF,GAAc,GAAtES,EAAgB9nF,EAAA,GAAE+nF,EAAmB/nF,EAAA,GACtCD,GAAAyC,EAAAA,EAAAA,IAAsEf,IAAAA,SAAe,IAAG,GAAvFumF,EAA8BjoF,EAAA,GAAEkoF,EAAiCloF,EAAA,GAcxE,SAASmoF,EAAcC,EAAkBt6B,GACrC,OAAIy5B,GAA2Ba,GAAWt6B,GAAWs6B,EAAUt6B,GAC3Do6B,EAAkCX,IAC3B,IAEXW,EAAkC,KAC3B,GAqBX,OACIxmF,IAAAA,cAAA,QACIC,UAAWiB,GAAAA,CAAWjB,EAAWw/D,GAAmB,gBACrC/lC,EAAU,cACb,qCAEZ15B,IAAAA,cAAA,SAAO8Q,GAtGG2uD,wCAsGa5rC,QAASuxD,EAAiBnlF,UA1GhCw/D,yCA2GZ8lB,EACDvlF,IAAAA,cAAA,SACIC,UA3GSw/D,wCA4GTzjD,KAAK,OACLtB,SAlDgB,SAACN,GAC7B,IAAMusE,EAAyBvsE,EAAM5S,OAAO7J,MAC5CyoF,EAAoBO,GACpBZ,MAAAA,GAAAA,EAAmBY,IAgDPjsC,OA9Bc,SAACtgC,GAC3B,IAAMwsE,EAAuBxsE,EAAM5S,OAAO7J,MAC1CyoF,EAAoBQ,GACpB,IAAMC,EAAkBD,EACpBH,EAAcI,EAAiBR,KAC/BJ,MAAAA,GAAAA,EAAiBY,KA0BTlpF,MAAOwoF,EACPr1E,GAAIs0E,EACJxoD,IA3HhBkqD,UA2H6B,aACDrB,MAAAA,EAAAA,EAAqBF,EAAa,gBAC/B7rD,EACfqtD,QAASjB,KAGjB9lF,IAAAA,cAAA,SAAO8Q,GApHG2uD,wCAoHa5rC,QAASwxD,EAAiBplF,UAxHhCw/D,yCAyHZ+lB,EACDxlF,IAAAA,cAAA,SACIC,UAzHSw/D,wCA0HTzjD,KAAK,OACLtB,SA3DgB,SAACN,GAC7B,IAAMusE,EAAyBvsE,EAAM5S,OAAO7J,MAC5C2oF,EAAoBK,GACpBX,MAAAA,GAAAA,EAAmBW,IAyDPjsC,OApCc,SAACtgC,GAC3B,IAAM4sE,EAAuB5sE,EAAM5S,OAAO7J,MAC1C2oF,EAAoBU,GACpB,IAAMC,EAAkBD,EACpBP,EAAcN,EAAkBc,KAChCf,MAAAA,GAAAA,EAAiBe,KAgCTtpF,MAAO0oF,EACPv1E,GAAIu0E,EACJzoD,IAxIhBsqD,UAwI6B,aACDxB,MAAAA,EAAAA,EAAqBF,EAAa,gBAC/B9rD,EACfqtD,QAASjB,KAGhBS,GAAqE,KAAnCA,GAC/BvmF,IAAAA,cAAA,QAAMC,UAjIqBw/D,qCAiIwB8mB,KAStDY,EAAqF3mF,EAAAA,GAAiBC,gBAEjH,yBAA0B,CAAEE,UAAWX,IAAAA,KAAWslF,KCzJ9C8B,EAA0B,oBAyFnBC,EAA4E,SAAChpF,GAC9E,IAAAo0B,EAA2Cp0B,EAAKo0B,KAA1CpxB,EAAqChD,EAAKgD,QAAjCgQ,EAA4BhT,EAAKgT,UAAtBooB,EAAiBp7B,EAAKo7B,SAAZ3oB,EAAOzS,EAAKyS,GACxD,OACI9Q,IAAAA,cAAA,UAAQ8Q,GAAIA,EAAI7Q,UAvFiBmnF,2BAuFuB,aAAc/1E,EAAWhQ,QAASA,EAASu7B,IAAKnD,GACnGhH,IAUP60D,EAAgE,SAACjpF,GACnE,OACI2B,IAAAA,cAAAA,IAAAA,SAAA,KACKA,IAAAA,aA5DK,SAAC3B,GACf,OACI2B,IAAAA,cAACmgB,EAAAA,MAAK,CACFonE,WAAS,EACTC,gBAAgB,aAChBC,eAAgBppF,EAAMqpF,UACtBtnE,OAAQ/hB,EAAM+hB,OACdC,OAAQhiB,EAAMspF,SACd1nF,UAAWmnF,EACXQ,OAAQ,OAoDJC,CAAUxpF,GACV,GA3CQ,SAACA,GACrB,OAAO2B,IAAAA,cAACugB,EAAAA,YAAW,CAACF,OAAQhiB,EAAMspF,UAAWtpF,EAAMypF,YA2CvCC,CAAgB1pF,GAChB2B,IAAAA,cAACwgB,EAAAA,UAAS,CAACvgB,UA5GMmnF,8BA6GbpnF,IAAAA,cAAA,OAAKC,UA5GemnF,8BA6GhBpnF,IAAAA,cAAA,OAAKC,UA5GYmnF,uCA6GZ/oF,EAAMumF,kBAAoB5kF,IAAAA,cAACwkF,GAAoB9jF,EAAAA,EAAAA,IAAA,GAAKrC,EAAMumF,mBAC1DvmF,EAAM2pF,gBACH3pF,EAAM2pF,eAAe30E,KAAI,SAAC6M,EAAM1c,GAAU,OAAAxD,IAAAA,cAACA,IAAAA,SAAc,CAAC0H,IAAKlE,GAAQ0c,SAzC/E,SAAC7hB,GACrB,OACI2B,IAAAA,cAAC0gB,EAAAA,YAAW,KACR1gB,IAAAA,cAACmB,EAAAA,OAAM,CAACE,QAAShD,EAAMspF,SAAU1nF,UA5EdmnF,4BA6Ed/oF,EAAM4pF,uBAyCPC,CAAgB7pF,MASnB8pF,EAAiF3nF,EAAAA,GAAiBC,gBAG7G,uBAAwB,CACtBE,UAAWX,IAAAA,KAAWqnF,KAMbe,EAAqE5nF,EAAAA,GAAiBC,gBAC/F,gBACA,CACIE,UAAWX,IAAAA,KAAWsnF,KC9HxB7nB,EAAqB,sBAIrB4oB,EAAuB5oB,iCAyBvB6oB,EAAoE,SAACjqF,GAA2B,QAE9F4B,EAUA5B,EAAK4B,UATLf,EASAb,EAAKa,QARD+vE,EAQJ5wE,EAAKyS,GAPL0K,EAOAnd,EAAKmd,SANL/c,EAMAJ,EAAKI,KALLi7B,EAKAr7B,EAAKq7B,WAJL6uD,EAIAlqF,EAAKkqF,wBAHLC,EAGAnqF,EAAKmqF,cAFLhnE,EAEAnjB,EAAKmjB,iBADLinE,EACApqF,EAAKoqF,iBAEHnqF,GAAAyC,EAAAA,EAAAA,IAAgDf,IAAAA,SAAeuoF,GAAwB,GAAtFG,EAAmBpqF,EAAA,GAAEqqF,EAAsBrqF,EAAA,GAC5CwC,GAAAC,EAAAA,EAAAA,IAA4Cf,IAAAA,UAAe,GAAM,GAAhE4oF,EAAiB9nF,EAAA,GAAE+nF,EAAoB/nF,EAAA,GAExCk0D,EAAah1D,IAAAA,aAAkB,WACjC6oF,GAAsBD,KACvB,CAACA,IAEEE,EAAyB9oF,IAAAA,aAAkB,WAC7C2oF,GAAwBD,KACzB,CAACA,IAEEK,EAAqB/oF,IAAAA,aACvB,SAACwiF,GAA0C,kBACvCiG,EAAiB,CACbxH,mBAAoBxiF,EACpBkiF,gBAAiB6B,EACjB5B,aAAc4B,EAAoBwC,eAG1C,CAACyD,EAAkBhqF,IAGjBuqF,EAAmBhpF,IAAAA,aACrB,SAACwiF,GAA0C,gBAACyG,GACxCR,EAAiB,CACbxH,mBAAoBxiF,EACpBkiF,gBAAiB6B,EACjB5B,aAAa,EACbE,WAAYmI,OAGpB,CAACR,EAAkBhqF,IAGjByqF,EAAmBlpF,IAAAA,aACrB,SAACwiF,GAA0C,gBAAC2G,GACxCV,EAAiB,CACbxH,mBAAoBxiF,EACpBkiF,gBAAiB6B,EACjB5B,aAAa,EACbI,SAAUmI,OAGlB,CAACV,EAAkBhqF,IAmEvB,OACIuB,IAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAWjB,EAAWw/D,EAAoB,aAAuB,QAAXjhE,EAAEC,EAAK0a,YAAI,IAAA3a,EAAAA,EAAI,IAAKkJ,IAAKjJ,EAAK0a,MAChGnZ,IAAAA,cAACmB,EAAAA,OAAM,CACHlB,UAAWyoF,EA3JEjpB,uCACCA,wCA0JyD,aAC3DhhE,EAAK0a,KAAI,gBACNuvE,EACfrnF,QAASynF,GAERrqF,EAAK0a,MAEVnZ,IAAAA,cAACq+E,EAAAA,SAAQ,CACLj+D,OAAQsoE,EACR1zB,WAAYA,EACZgB,QAASwyB,MAAAA,EAAAA,EA3KsB,KA6K/BxoF,IAAAA,cAAA,MAAIC,UAAWiB,GAAAA,CArKNu+D,4BAqKyC,QAAXlhE,EAAEE,EAAK0a,YAAI,IAAA5a,EAAAA,EAAI,IAAG,aAAcE,EAAK0a,MACpD1a,EAAK+iF,aA1EjBnuE,KAAI,SAAC+1E,EAAa5lF,GAAK,gBACjC6lF,EAAsB5qF,EAAKyiF,YAAclB,EAAmBmB,aAC5DrQ,EAAeryE,EAAK6qF,qBAAqBvhE,MAAK,SAAC+oD,GACjD,OAAA4P,EAA8B0I,EAAatY,MAG/CsY,EAAYpE,YAAclU,EAC1BsY,EAAYvI,SAAW/P,MAAAA,OAAY,EAAZA,EAAc+P,SACrCuI,EAAYrI,SAAWjQ,MAAAA,OAAY,EAAZA,EAAciQ,SAErC,IAAMwI,EAAwB,CAC1BrqF,QAASA,EACT4R,GAAIm+D,EACJzzD,SAAUA,EACV/c,KAAM2qF,EACNp4E,MAAwB,QAAnBxS,EAAE4qF,EAAYp4E,aAAK,IAAAxS,EAAAA,EAAI,GAC5B6S,UAA4B,QAAnB9S,EAAE6qF,EAAYp4E,aAAK,IAAAzS,EAAAA,EAAI,GAChCymF,UAAWoE,EAAYpE,UACvBD,eAAgBsE,EAChB3vD,WAAYA,EACZlY,iBAAkBA,EAClBngB,QAAS0nF,EAAmBK,IAGhC,OAAQA,EAAYhG,UAChB,KAAKnD,EAAgBoD,UACjB,IAAMmG,EAAwB,CAC1BtqF,QAASA,EACT4R,GAAIm+D,EACJzzD,SAAUA,EACV/c,KAAM2qF,EACN7D,cAAmC,QAAtBjnF,EAAE8qF,EAAYK,gBAAQ,IAAAnrF,EAAAA,EAAI,GACvCknF,cAAmC,QAAtB1kF,EAAEsoF,EAAYM,gBAAQ,IAAA5oF,EAAAA,EAAI,GACvC2kF,kBAAuC,QAAtB3jF,EAAEsnF,EAAYK,gBAAQ,IAAA3nF,EAAAA,EAAI,GAC3C4jF,kBAAuC,QAAtBxjF,EAAEknF,EAAYM,gBAAQ,IAAAxnF,EAAAA,EAAI,GAC3CyjF,cAAeyD,EAAYvI,SAC3B+E,cAAewD,EAAYrI,SAC3BrnD,WAAYA,EACZusD,eAAgB+C,EAAiBI,GACjClD,eAAgBgD,EAAiBE,IAGrC,OACIppF,IAAAA,cAAA,MAAIC,UAAWooF,EAAmBv3E,GAAOs4E,EAAYp4E,MAAK,IAAIxN,EAASkE,IAAK0hF,EAAYhI,eACpFphF,IAAAA,cAACmlF,GAAyBzkF,EAAAA,EAAAA,IAAA,GAAK6oF,IAC9BH,EAAYpE,WAAahlF,IAAAA,cAACmnF,GAA6BzmF,EAAAA,EAAAA,IAAA,GAAK8oF,KAGzE,QACI,OACIxpF,IAAAA,cAAA,MAAIC,UAAWooF,EAAmBv3E,GAAOs4E,EAAYp4E,MAAK,IAAIxN,EAASkE,IAAK0hF,EAAYhI,eACpFphF,IAAAA,cAACmlF,GAAyBzkF,EAAAA,EAAAA,IAAA,GAAK6oF,aAiC9CI,EAAyEnpF,EAAAA,GAAiBC,gBAGrG,kBAAmB,CACjBE,UAAWX,IAAAA,KAAWsoF,KC1LpB7oB,EAA6B,cAG7BmqB,EAAyCnqB,4CAyE/C,IAAMoqB,EAAsD,SAACxrF,GACzD,IAAMyrF,EAAezrF,EAAM0rF,cAAgB1rF,EAAM2rF,kBAEjD,OACIhqF,EAAAA,cAACwpC,EAAAA,KAAI,CAACvpC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAAWw/D,IACxCqqB,GAvDb,SAAqCzrF,GAAoB,QAC/CsmF,EAAoD,QAA3BnmF,EAAGH,EAAM4rF,0BAAkB,IAAAzrF,OAAA,EAAAA,EAAEmmF,0BAE5D,OACI3kF,EAAAA,cAAAA,EAAAA,SAAA,KACK2kF,GAA6B3kF,EAAAA,cAAC0jF,GAA6BhjF,EAAAA,EAAAA,IAAA,GAAKikF,IAChEtmF,EAAM6rF,yBACHlqF,EAAAA,cAAA,OAAKC,UAAW2pF,GACZ5pF,EAAAA,cAACmoF,GAA2BznF,EAAAA,EAAAA,IAAA,GAAKrC,EAAM6rF,0BACvClqF,EAAAA,cAAA,OAAKC,UA/ByB2pF,oEAgCD,QAAxBrrF,EAAAF,EAAM4rF,0BAAkB,IAAA1rF,OAAA,EAAAA,EAAEslF,eACvB7jF,EAAAA,cAAA,OAAKC,UAhCkB2pF,oEAgCmCvrF,EAAM4rF,mBAAmBpG,gBAKlGxlF,EAAM2rF,mBAAqBhqF,EAAAA,cAACooF,GAAqB1nF,EAAAA,EAAAA,IAAA,GAAKrC,EAAM2rF,qBAuC5CG,CAA4B9rF,IAC3CyrF,GAnCd,SAAsCzrF,GAC1B,IAAA2pF,EAA+B3pF,EAAK2pF,eAApB5O,EAAe/6E,EAAK+6E,WAE5C,OACIp5E,EAAAA,cAAAA,EAAAA,SAAA,KACK3B,EAAM4rF,oBAAsBjqF,EAAAA,cAAC6kF,GAAsBnkF,EAAAA,EAAAA,IAAA,GAAKrC,EAAM4rF,qBAE9DjC,GAAkBvhE,EAAAA,gBAAgBC,YAAYshE,IAAmB5O,GAC9Dp5E,EAAAA,cAACwpC,EAAAA,KAAI,CAACvpC,UAtD4Bw/D,wBAuD9Bz/D,EAAAA,cAACwpC,EAAAA,KAAI,CAACvpC,UAtDwBw/D,iCAuDzBuoB,EAAe30E,KAAI,SAAC6M,EAAM1c,GAAU,OACjCxD,EAAAA,cAACA,EAAAA,SAAc,CAAC0H,IAAKlE,GAAQ0c,OAIpC7hB,EAAM+rF,oBAAsBpC,GAAkBvhE,EAAAA,gBAAgBC,YAAYshE,IAAmB5O,GAC1Fp5E,EAAAA,cAAC8jF,GAAsBpjF,EAAAA,EAAAA,IAAA,GAAKrC,EAAM+rF,uBAmB5BC,CAA6BhsF,KAQ9CisF,EAA2D9pF,EAAAA,GAAiBC,gBAAmC,UAAW,CACnIE,UAAWX,EAAAA,KAAW6pF,oHC/FpBpqB,EAAqB,iBAoJd8qB,EAA+D/pF,EAAAA,GAAiBC,gBACzF,qBACA,CAAEE,UA3F0D,SAACtC,GAAsB,8BAC7EivB,GAAAvsB,EAAAA,EAAAA,IAA4Cf,IAAAA,SAAe3B,EAAMmsF,qBAAoB,GAApFC,EAAiBn9D,EAAA,GAAEo9D,EAAoBp9D,EAAA,GACxCG,GAAA1sB,EAAAA,EAAAA,IAAwCf,IAAAA,SAAe3B,EAAMssF,mBAAkB,GAA9EC,EAAen9D,EAAA,GAAEo9D,EAAkBp9D,EAAA,GA6BpCq9D,GAAyB7oE,EAAAA,EAAAA,wBAC3B5jB,EAAMmjB,kBACNF,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmBC,EAAAA,kBAAkBspE,SAGzE,OACI/qF,IAAAA,cAAA,OAAKC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAAWw/D,IACvCh5C,EAAAA,gBAAgBC,YAAYroB,EAAMI,KAAKqX,UACpC9V,IAAAA,cAAA,UACIC,UAlGcw/D,iCAmGd9+C,MAAsB,QAAjBniB,EAAEH,EAAMglB,iBAAS,IAAA7kB,OAAA,EAAAA,EAAEwsF,uBAAsB,aACnB,QADmBzsF,EAClCF,EAAMglB,iBAAS,IAAA9kB,OAAA,EAAAA,EAAEysF,uBAC7BtwE,SAvCc,SAACN,GAA2C,QAChEzc,EAAQyc,EAAM85C,cAAcv2D,MAC5BstF,EAAiC,QAArBzsF,EAAGH,EAAMI,KAAKqX,eAAO,IAAAtX,OAAA,EAAAA,EAAEupB,MAAK,SAAC5U,GAA6B,OAAAA,EAAOxV,QAAUA,KAC7F+sF,EAAqBO,GACjB5sF,EAAM6sF,+BACNL,EAAmB,IAEH,QAApBtsF,EAAAF,EAAMs+E,sBAAc,IAAAp+E,GAAAA,EAAApC,KAApBkC,EAAuB4sF,KAkCQ,QAFY3sF,EAE9BD,EAAMI,KAAKqX,eAAO,IAAAxX,OAAA,EAAAA,EAAE+U,KAAI,SAACF,GACtB,OACInT,IAAAA,cAAA,UACI0H,IAAKyL,EAAOxV,MACZA,MAAOwV,EAAOxV,MAAK,aACPwV,EAAOnC,MAAK,gBACTmC,EAAOxV,SAAU8sF,MAAAA,OAAiB,EAAjBA,EAAmB9sF,OACnDsC,UAAWiB,GAAAA,CA7GVu+D,gCA+GGtsD,EAAOxV,SAAU8sF,MAAAA,OAAiB,EAAjBA,EAAmB9sF,OA9G/B8hE,yCA8GuE,KAG/EtsD,EAAOnC,WAM5BhR,IAAAA,cAAA,SACIgc,KAAK,OACL/b,UAAWiB,GAAAA,CAxHGu+D,8BAwH4Bh5C,EAAAA,gBAAgBC,YAAYroB,EAAMI,KAAKqX,SAAW,GAAK,cACjGke,YAA4B,QAAjBlzB,EAAEzC,EAAMglB,iBAAS,IAAAviB,OAAA,EAAAA,EAAEqqF,qBAC9BxqE,MAAsB,QAAjB7e,EAAEzD,EAAMglB,iBAAS,IAAAvhB,OAAA,EAAAA,EAAEspF,mBAAkB,aACf,QADelpF,EAC9B7D,EAAMglB,iBAAS,IAAAnhB,OAAA,EAAAA,EAAEkpF,mBAC7BztF,MAAOitF,EACPlwE,SAxDY,SAACN,GAAyC,MACxDzc,EAAQyc,EAAM85C,cAAcv2D,MAClCktF,EAAmBltF,GACL,QAAda,EAAAH,EAAMqc,gBAAQ,IAAAlc,GAAAA,EAAArC,KAAdkC,EAAiBosF,EAAmB9sF,IAsD5B+8C,OAnDU,SAACtgC,GAAyC,MACtDzc,EAAQyc,EAAM85C,cAAcv2D,MAClCktF,EAAmBltF,GACP,QAAZa,EAAAH,EAAMq8C,cAAM,IAAAl8C,GAAAA,EAAArC,KAAZkC,EAAeosF,EAAmB9sF,MAkD9BqC,IAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAhIWw/D,gCAgIe,aACwB,QADxBxyC,EACC,QADDhrB,EACd5D,EAAMglB,iBAAS,IAAAphB,OAAA,EAAAA,EAAEopF,6BAAqB,IAAAp+D,EAAAA,EAAmB,QAAnBE,EAAI9uB,EAAMglB,iBAAS,IAAA8J,OAAA,EAAAA,EAAEm+D,kBACvE3qE,MAA6C,QAAxC0M,EAAiB,QAAjBH,EAAE7uB,EAAMglB,iBAAS,IAAA6J,OAAA,EAAAA,EAAEm+D,6BAAqB,IAAAh+D,EAAAA,EAAmB,QAAnBD,EAAI/uB,EAAMglB,iBAAS,IAAA+J,OAAA,EAAAA,EAAEk+D,kBAClEjqF,QAnDW,iBACN,QAAb7C,EAAAH,EAAMgD,eAAO,IAAA7C,GAAAA,EAAArC,KAAbkC,EAAgBosF,EAAmBG,KAmDvBE,GAEY,QAFUv9D,EAEzBlvB,EAAMglB,iBAAS,IAAAkK,OAAA,EAAAA,EAAE+9D,8GCvItBC,gDAVN9rB,EAAqB,aAU3B,SAAY8rB,GACRA,EAAA,YACAA,EAAA,gBACAA,EAAA,gBACAA,EAAA,YAJJ,CAAYA,IAAAA,EAAoB,KA+DhC,IA+BaC,EAAmEhrF,EAAAA,GAAiBC,gBAC7F,uBACA,CAAEE,UAjC8D,SAACtC,GAAwB,QAEzF,KADiC,QAAlBG,EAAGH,EAAMyhE,iBAAS,IAAAthE,GAAAA,GAE7B,OAAOwB,IAAAA,cAAAA,IAAAA,SAAA,MAGX,IAAIqoC,EAAyB,QAAjB9pC,EAAGF,EAAMgqC,gBAAQ,IAAA9pC,EAAAA,EAAI,GAGjC,OAFA8pC,EAAWjlC,MAAM4E,QAAQqgC,GAAYA,EAAW,CAACA,GAG7CroC,IAAAA,cAAA,SAAOC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAlFhBw/D,sBAmFfz/D,IAAAA,cAAA,MAAIC,UAlFcw/D,yBAmFbh5C,EAAAA,gBAAgBC,YAAY2hB,IACzBA,EAASh1B,KAAI,SAACg2B,EAAO7lC,GAAK,MAEtB,OAD4C,QAAxBhF,EAAG6qC,EAAMhrC,MAAMyhE,iBAAS,IAAAthE,GAAAA,IAGpCwB,IAAAA,cAAA,MAAI0H,IAAKlE,EAAOvD,UAAWiB,GAAAA,CAAWmoC,EAAMhrC,MAAM4B,UAvFnDw/D,yBAuFmFp2B,EAAMhrC,MAAMotF,cACzFpiD,EAAMhrC,MAAMgqC,kBAoDpCqjD,EAA6DlrF,EAAAA,GAAiBC,gBACvF,oBACA,CAAEE,UA/BwD,SAACtC,GAAqB,QAEhF,KADiC,QAAlBG,EAAGH,EAAMyhE,iBAAS,IAAAthE,GAAAA,GAE7B,OAAOwB,IAAAA,cAAAA,IAAAA,SAAA,MAGX,IAAIqoC,EAAyB,QAAjB9pC,EAAGF,EAAMgqC,gBAAQ,IAAA9pC,EAAAA,EAAI,GAGjC,OAFA8pC,EAAWjlC,MAAM4E,QAAQqgC,GAAYA,EAAW,CAACA,GAG7CroC,IAAAA,cAAA,MAAIC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAxHhBw/D,mBAyHXh5C,EAAAA,gBAAgBC,YAAY2hB,IACzBA,EAASh1B,KAAI,SAACg2B,EAAO7lC,GAAK,MAEtB,OAD4C,QAAxBhF,EAAG6qC,EAAMhrC,MAAMyhE,iBAAS,IAAAthE,GAAAA,IAGpCwB,IAAAA,cAAA,MAAI0H,IAAKlE,EAAOvD,UAAWiB,GAAAA,CAAWmoC,EAAMhrC,MAAM4B,UA7HlDw/D,sBA6H+Ep2B,EAAMhrC,MAAMotF,cACtFpiD,EAAMhrC,MAAMgqC,iBA6BhCsjD,EAA+DnrF,EAAAA,GAAiBC,gBAG3F,qBAAsB,CAAEE,UAVsC,SAACtC,GAC7D,OAAO2B,IAAAA,cAAAA,IAAAA,SAAA,KAAG3B,EAAMgqC,aAuBPujD,EAAuDprF,EAAAA,GAAiBC,gBAAiC,iBAAkB,CACpIE,UARoD,SAACtC,GACrD,OAAO2B,IAAAA,cAAA,SAAOC,UAAWiB,GAAAA,CAAW7C,EAAM4B,UAAWw/D,IAAsBphE,EAAMgqC,4GC9GxEwjD,EAA8ErrF,EAAAA,GAAiBC,gBAG1G,gBAAcC,EAAAA,EAAAA,IAAA,CAAIC,UA1CwC,SAACtC,GACzD,IAAMytF,EAAsD9rF,EAAAA,YACtDyyB,EAAOp0B,EAAM0tF,oBACbC,EAAwB3tF,EAAM69B,kBAC9B+vD,GAAcnrE,EAAAA,EAAAA,IAAW,WAAYziB,EAAMa,QAAQke,eACnDyd,EAAex8B,EAAMa,QAAQ0e,QAAQ8c,KAAKG,UAAS,OAAOoxD,EAC1D/lF,EAAM7H,EAAMa,QAAQ0e,QAAQ8c,KAAKE,gBAAkBqxD,EAAcpxD,EACjE4B,OAAwCr/B,IAA1B4uF,GAAsCA,EACpDE,OAAkD9uF,IAAhCiB,EAAM8tF,uBAAsC9tF,EAAM8tF,sBACpEC,OAAgDhvF,IAA7BiB,EAAMguF,mBAAmChuF,EAAMguF,mBAAqB,GACvFC,OAA4ClvF,IAAxBiB,EAAMkuF,cAA8BluF,EAAMkuF,cAAgB,GAC9EC,GAAa/qF,EAAAA,EAAAA,QAAO2qF,EAAkBE,GAGtCjrE,GAAUC,EAAAA,EAAAA,kBAAiB,QAASjjB,EAAMmjB,iBAAmBiR,EAAM,IACnEvE,GAAajM,EAAAA,EAAAA,wBAAuB5jB,EAAMmjB,iBAAmBH,GAEnE,OACIrhB,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACmB,EAAAA,QAAMT,EAAAA,EAAAA,IAAA,CACHT,UAAWwsF,GAAAA,CAAU,oBAAqBpuF,EAAM4B,WAChD4gB,KAAM3a,EAAG,aACGusB,EACZgH,SAAUqyD,GACN59D,EAAU,CACd7sB,SAASkjD,EAAAA,EAAAA,kBAAiBlmD,EAAMmjB,iBAAmBH,EAASoR,KAE3Dy5D,GAAmBlsF,EAAAA,cAAA,OAAKC,UAAU,4BAA4BusF,GAC/DxsF,EAAAA,cAAA,QAAMC,UAAU,2BAA2BwyB,IAE9CgK,GACGz8B,EAAAA,cAAC68B,EAAAA,oBAAmB,CAACjY,QAAQ,cAAcpd,OAAQskF,GAC9Cr5D,MAvCgB,sECY9B,IAAKi6D,GAAZ,SAAYA,GACRA,EAAA,UACAA,EAAA,QACAA,EAAA,QACAA,EAAA,QAJJ,CAAYA,IAAAA,EAAkB,qRC0lBuDlsF,EAAAA,GAAiBC,gBAClG,aAAWC,EAAAA,EAAAA,IAAA,CACTC,UApiBoD,SAACtC,GAA+B,YAElFI,EAoBAJ,EAAKI,KAnBLS,EAmBAb,EAAKa,QAlBL6d,EAkBA1e,EAAK0e,cAjBLna,EAiBAvE,EAAKuE,YAhBL3D,EAgBAZ,EAAKY,cAfLyD,EAeArE,EAAKqE,kBAdLC,EAcAtE,EAAKsE,iBAbLknE,EAaAxrE,EAAKwrE,gBAZLnuD,EAYArd,EAAKqd,qBAXLixE,EAWAtuF,EAAKsuF,YAVLnxE,EAUAnd,EAAKmd,SATL1K,EASAzS,EAAKyS,GARL0Q,EAQAnjB,EAAKmjB,iBAPLuoD,EAOA1rE,EAAK0rE,gBANLC,EAMA3rE,EAAK2rE,wBALLC,EAKA5rE,EAAK4rE,eAJL5qE,EAIAhB,EAAKgB,qBAHLc,EAGA9B,EAAK8B,eAFL+pE,EAEA7rE,EAAK6rE,wBADLC,EACA9rE,EAAK8rE,oBACH7qE,EAAUb,EAAKa,QASrB,SAAS+qE,EAAiBC,EAA+BC,EAA2BC,GAChF,IAAMC,EAAY,IAAIC,IAAIJ,EAAuBC,EAAY3sD,QAAQD,YAAYgtD,SAQjF,OAPIF,EAAUG,OACVH,EAAUG,QAAU,IAAIJ,EAExBC,EAAUG,QAAUJ,EAGL,IAAIE,IAAID,EAAU5pD,MACnBgqD,SAAWJ,EAAUG,OAQ3C,SAASgiB,EAA8B9kE,GAAkC,MACrE,IAAKA,IAAgBA,EAAY+kE,gBAC7B,OAAO,KAGX,IAAMC,EAAiBhlE,EAAY+kE,gBAAgB9kE,MAC/C,SAAAkjD,GAAc,IAAAzsE,EAAI,OAAsB,QAAtBA,EAAAysE,EAAe8hB,eAAO,IAAAvuF,OAAA,EAAAA,EAAEsF,uBAAwBkpF,EAAAA,eAAe/4E,SAErF,OAAKwS,EAAAA,gBAAgBC,YAAYomE,MAAAA,OAAc,EAAdA,EAAgBhsD,UAImC,QAAjEtiC,EAAGsuF,EAAgBhsD,SAAS/Y,MAAK,SAAA7H,GAAQ,OAAmB,IAAnBA,EAAK6tD,oBAAmB,IAAAvvE,EAAAA,EAAIsuF,EAAgBhsD,SAAS,GAHtG,KAmDf,IAAI/Q,EAAazwB,GAAU+rE,EAAAA,EAAAA,uBAAkC,QAAb7sE,EAACc,EAAQ6Z,YAAI,IAAA3a,EAAAA,EAAI,GAAIc,EAAQ4uE,SAAUhvE,EAAQke,mBAAehgB,GAAa,GACvHuvF,GAAe58D,IACfA,EAAas6C,EAAiBt6C,EAAY7wB,EAAS,cAEvD,IAAMssE,EAAsF,QAA7DjtE,EA1C/B,SAAkDgsE,EAA2BziD,GAGzE,GAFoByiD,EACkC1sD,IAAIC,OAAOssD,oCACvB4iB,EAAAA,eAAe1gC,KACrD,OAAOxkC,MAAAA,OAAW,EAAXA,EAAa0hD,gBAExB,IAAM8B,EAAgBshB,EAA8B9kE,GACpD,OAAOwjD,GAAiB7kD,EAAAA,gBAAgBC,YAAY4kD,EAAcsB,mBAC5DlB,EAAAA,EAAAA,kBAAiBJ,EAAcsB,iBAAiB,GAAIrC,EAAY3sD,QAAQD,aACxEmK,MAAAA,OAAW,EAAXA,EAAa0hD,gBAiCWyjB,CAAyC/tF,EAASI,UAAQ,IAAAf,EAAAA,EAAIe,MAAAA,OAAO,EAAPA,EAASkqE,gBACnGmC,EAA2F,QAAnErtE,EAxB9B,SACIisE,EACAx6C,EACAjI,GAIA,GAFoByiD,EACkC1sD,IAAIC,OAAOssD,oCACvB4iB,EAAAA,eAAe1gC,KACrD,OAAOv8B,EAEX,IAAMu7C,EAAgBshB,EAA8B9kE,GACpD,OAAKwjD,GAAkBA,EAAc4hB,YAK9B7iB,EAAiBt6C,EAAYw6C,EADhB,SAASe,EAAc4hB,aAHhCn9D,EAYkB+7C,CAAmC5sE,EAAS6wB,EAAYzwB,UAAQ,IAAAhB,EAAAA,EAAIyxB,EAC/FjuB,GAAAf,EAAAA,EAAAA,KAAsCoa,EAAAA,EAAAA,UAAiBwwD,GAAyB,GAA/EI,EAAcjqE,EAAA,GAAEkqE,EAAiBlqE,EAAA,GAClCI,GAAAnB,EAAAA,EAAAA,KAAwCoa,EAAAA,EAAAA,UAA6BqwD,GAA0B,GAA9FS,EAAe/pE,EAAA,GAAEgqE,EAAkBhqE,EAAA,GACnCiqE,GAADprE,EAAAA,EAAAA,KAAwBoa,EAAAA,EAAAA,UAAS,IAAIixD,EAAAA,YAA0C,GAA3D,GAEpBnjD,EAAmB/pB,EAAQ2e,IAAIC,OAAOmL,iBAOtCojD,EAAwBrsE,IAAAA,aAC1B,SAACuqE,EAA2B+B,GACxB,IAAMzrC,EAAgByrC,EAAWzrC,cAEjC,GADAsrC,EAAoB7nD,SAASuc,EAAeyrC,IACxChtD,EAAAA,iBAAiBiE,mBAAmB+oD,EAAW3uE,OAAnD,CAGA,IAAM6sE,EAAiB3pC,EAAa,IAAIyrC,EAAW3uE,MAC/C4uE,EAA2B,GAC/B,GAAIR,EAAeznE,SAASu8B,GAAgB,CACxC,IAAM2rC,EAAS,IAAI9B,IAAIqB,EAAgBxB,EAAY3sD,QAAQD,YAAYgtD,SACvE6B,EAAOC,aAAaC,OAAO7rC,GAC3B0rC,EAA2BlC,EAAiBmC,EAAOhwE,WAAY0C,EAASsrE,QAExE+B,EAA2BlC,EAAiB0B,EAAgB7sE,EAASsrE,GAGzE,GADAwB,EAAkBO,GACd1rC,IAAkBmsD,EAAAA,eAAe/4E,MAAO,CACxC,IAAM04D,EAAwBlmD,EAAAA,gBAAgBC,YAAY4lD,EAAWM,kBAC/DN,EAAWM,iBAAiB,QAC5BxvE,EACAwqB,GAAc8jD,EAAAA,EAAAA,kBAAiBiB,EAAuBpC,EAAY3sD,QAAQD,aAChFuuD,EAAmBtkD,OAG3B,CAACukD,EAAqBjtE,EAAS6sE,IAGnC,IAAKzsE,EACD,OAAO,KAGX,IA0EmCutE,EAkNRzlB,EAlOS0lB,EAiHhC3zD,EACAza,EACA8b,GACAuyD,GACAC,GACAC,GACAC,GAEMC,GAnLJC,GAAc3mD,EAAAA,gBAAgB4mD,YACT,QADoBvsE,EAC3CxB,EAAQutF,uBAAe,IAAA/rF,OAAA,EAAAA,EAAEuS,KAAI,SAAA6M,GAAI,YACvBotD,EAAoD,QAAlC/uE,EAAe,QAAfC,EAAG0hB,EAAK6sE,eAAO,IAAAvuF,OAAA,EAAAA,EAAEsF,2BAAiB,IAAAvF,EAAAA,EAAM,GAMhE,KAL8BgvE,EAAAA,EAAAA,8BAC1BD,EACApuE,EACAsuE,EAAAA,4BAA4BC,aAG5B,OAAO,KAGX,IACMrD,EADclrE,EACkC2e,IAAIC,OAAOssD,kCAC3DvpC,EAAgBysC,EAChBxsC,EAiBD,QAjBShgC,EACG,QADHxC,EACV4hB,EAAK4gB,gBAAQ,IAAAxiC,OAAA,EAAAA,EAAE+U,KAAiB,SAAAi5D,GAAU,YACtC,MAAO,CACHoB,QAAwB,QAAhBlvE,EAAG0hB,EAAKguD,gBAAQ,IAAA1vE,EAAAA,EAAI,IAAE,IAAI8uE,EAAkB,KAA0B,QAA1B/uE,EAAI+tE,EAAW4gB,mBAAW,IAAA3uF,EAAAA,EAAI,IAClFZ,MAA6B,QAAxBW,EAAEguE,EAAW4gB,mBAAW,IAAA5uF,EAAAA,EAAI,GACjCuiC,cAAaA,EACb8sC,aAAcrB,EAAW6gB,mBACzBtf,SAAUvB,EAAW8gB,eACrBxgB,iBAAkBN,EAAWM,iBAC7BmB,UAAWzB,EAAWyB,UACtB5D,oBAAqBA,GAAsB1oE,EAAAA,EAAAA,QAAO0oE,EAAqBtpC,GAAiB,GACxFnH,WACIzQ,IAE2F,QAF3EnoB,EAChBopE,MAAAA,OAAuB,EAAvBA,EAAyBniD,MACrB,SAAAimD,GAAqB,IAAAxvE,EAAI,OAAAwvE,EAAsBrwE,SAAiC,QAAvBa,EAAC8tE,EAAW4gB,mBAAW,IAAA1uF,EAAAA,EAAI,cAAG,IAAAsC,OAAA,EAAAA,EACxF44B,uBAEd,IAAA54B,EAAAA,EAAK,GASV,OAPIspE,IAAsC4iB,EAAAA,eAAe1gC,MACrD7lC,EAAAA,gBAAgBC,YAAYoa,KAC3BA,EAASolC,MAAK,SAAA+H,GAAU,OAAAA,EAAOF,cAChCltC,IAAkBmsD,EAAAA,eAAe/4E,QAEjC6sB,EAAS,GAAGitC,WAAY,GAErB,CAAEG,SAAUhuD,EAAKguD,SAAUptC,SAAQA,OAK5Czf,IAAUC,EAAAA,EAAAA,kBAAiB,QAASE,EAAmB,GAAIliB,EAAQ4uE,SAAS1xE,YAE5E0yC,IAAYjtB,EAAAA,EAAAA,wBAAuBT,EAAmBH,IAGtD8sD,GAAyBjvE,EAAQ2e,IAAIC,QAA0D,oBAAhD5e,EAAQ2e,IAAIC,OAAO8D,yBAwFxE,SAASwsD,GAAmB5zD,EAAiBuyD,GACzC,GAAIvyD,GAAUuyD,EAAqB,CAC/B,IAAMsB,EAAgB7zD,EAAOgvC,QAAQ,GACrC,OAAO/nD,EAAAA,EAAAA,QAAOsrE,GAAuB,GAAIsB,EAAe,KAE5D,MAAO,GASX,SAASC,GAAmBtB,EAAsBC,GAC9C,OAAID,GAAeC,GACRxrE,EAAAA,EAAAA,QAAOwrE,GAA4B,GAAID,GAE3C,GA4KX,OACIhtE,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAA,KAAAU,EAAAA,EAAAA,IAAA,CACImgB,KAAMkrD,EACN1qE,SAASkjD,EAAAA,EAAAA,kBAAiB/iC,EAAmBH,GAAS/hB,EAAQ6Z,MAAM,cAlK5EA,EAoKY7Z,EAAQ6Z,KAnKpBza,EAoKYQ,EAAQC,iBAAiBL,eAAeQ,EAAQZ,OAnK5D8b,GAoKYlb,EAAQ+tF,cAnKpBtgB,GAoKYlD,EAnKZmD,GAoKY1tE,EAAQowE,aAnKpBzC,GAoKYvxD,EAnKZwxD,GAoKYjD,EAlKNkD,GAA2BmB,GAAmBtB,GAAaC,MAAAA,GAAAA,GAA4B,KACnF9zD,MAAAA,EAAAA,EAAQ,IAAE,KAAIza,MAAAA,EAAAA,EAAS,IAAE,IAAI0vE,GAAmB5zD,GAAQuyD,KAC9DI,GAA2B,IAAIA,GAA6B,IAAE,KAC9DD,MAAAA,GAAAA,GAAgB,KAiKZjtE,UAAU,eACNivC,IAEJlvC,IAAAA,cAAA,OAAKC,UAAU,sBAvJ3B,SACIwuE,EACAzwD,EACA6vD,EACA3rD,EACAzD,EACAtB,GAEA,IAAK0wD,IAAa7vD,IAAiBywD,EAC/B,OAAO,KAGX,IAAMC,EAAwBxvE,EAAQ2e,IAAIC,OAAO6wD,qBAC7CC,EAAsB1sD,EACtBwsD,GAAyBxsD,IACzB0sD,EAAyB1sD,EAAgB,IAAIwsD,GAEjD,IAAMphB,EAAoB,CACtBjwC,IAAKwwD,EACLpvD,QAASA,GAAoB,GAC7BjB,YAAaoxD,GAEXC,EAA0B,CAAE7wD,aAAYA,GAK9C,OAHA6wD,EAAW7wD,aAAeA,EAC1B6wD,EAAW9xD,cAAgB0xD,EAC3BI,EAAW9xD,cAAcoF,iBAAkB,EACpCniB,IAAAA,cAACkd,EAAAA,IAAKxc,EAAAA,EAAAA,IAAA,GAAK4sD,EAAWuhB,EAAU,CAAErwD,oBAAoB,QAAQrB,eAAgBA,EAAgB2xD,qBAAmB,KA6H3GC,CACGhyD,EACA7d,EAAQ0e,QAAQI,aAChBiuD,EACA3sE,EAAQkqE,gBACRlqE,EAAQ6Z,KACRja,EAAQke,cAAcD,iBAG9Bnd,IAAAA,cAAA,OAAKC,UAAU,sBAAsBX,EAAQ6Z,OAzQhDsN,EAAAA,gBAAgBC,YAAY0mD,IAK7BptE,IAAAA,cAAA,OAAKC,UAAU,2BACVmtE,GAAY/5D,KAAI,SAAA6M,GACb,OACIlgB,IAAAA,cAAC4gC,EAAAA,EAAiC,CAC9Bl5B,IAAKwY,EAAKguD,SACVhvE,QAASA,EACT6hC,kBAAmBsrC,EACnBvrC,SAAU5gB,EAAK4gB,eAXxB,KA2QP9gC,IAAAA,cAAA,OAAKC,UAAU,wBAvHvB,SACIsqE,EACAyE,EACAC,EACAqe,EACAC,EACAC,EACAztF,EACAmvE,EACAC,EACAC,EACAC,GAEA,IAAM3wE,EAAQ,CACVG,UAAWyuF,EACX3uF,cAAe4uF,EACfltF,wBAAyBktF,EACzB3tF,gBAAiB4tF,GAAkDD,EACnE5tF,gBAAiBI,GAAoCwtF,GAGnDE,EAAgBljB,EAAY3sD,QAAQmI,QAC1C,OACI/lB,IAAAA,cAACO,EAAAA,EAAc,CACXrB,QAASqrE,EACTz5D,GAAIm+D,EACJzzD,SAAUwzD,EACVvwE,KAAM,CAAEC,MAAKA,GACbkE,YAAassE,EACbjwE,cAAekwE,EACfzsE,kBAAmB0sE,EACnBzsE,iBAAkB0sE,EAClBhwE,qBAAsBA,EACtBc,eAAgBA,EAChBnB,aAAcyuF,MAAAA,OAAa,EAAbA,EAAeC,WAsF5Ble,CACGtwE,EACAsc,EACA1K,EACAxR,EAAQquF,UACRruF,EAAQZ,MACRY,EAAQQ,gBACRR,EAAQS,gBACR6C,EACA3D,EACAyD,EACAC,GAEHwrE,MA3TuBrB,EA2T8BxtE,EAAQsuF,sBAtTlE5tF,IAAAA,cAAA,OAAKC,UAAU,gCACXD,IAAAA,cAAA,YAAO8sE,IAJJ,OAgOY1lB,EA0FI9nD,EAAQ8nD,YAzF5BpnD,IAAAA,cAAA,KAAGC,UAAU,qBAAqBmnD,KA0F/BloD,EAAQ2e,IAAIC,OAAO2xD,YA7EjC,SACIlF,EACAyE,EACAC,EACA/zD,EACAw0D,EACAr+D,GAAkB,MAElB,IAAK6J,EACD,OAAO,KAGX,IAAMy0D,EAAsC,QAAzBnxE,EAAGkxE,MAAAA,OAAY,EAAZA,EAAclzE,kBAAQ,IAAAgC,EAAAA,OAAMpB,EAC5C2vE,EAAsBqB,GAAmBlzD,EAAW7J,GACpD47D,EAA2BqB,GAAmBh0D,OAAOq1D,GAAgBj0D,GAE3E,OACI1b,IAAAA,cAAC4c,EAAAA,EAAe,CACZ1d,QAASqrE,EACTz5D,GAAIm+D,EACJzzD,SAAUwzD,EACV9zD,UAAWA,EACXU,YAAa+zD,EACb50D,UAAQ,EACR1J,UAAW07D,EACXrxD,qBAAsBuxD,EACtBxuE,KAAM,KAoDFmxE,CAAa1wE,EAASsc,EAAU1K,EAAIxR,EAAQ+tF,cAAe/tF,EAAQowE,aAAc7F,IA9S9DgD,EA+SI5C,IA9S+B,KAA/B4C,EAK/B7sE,IAAAA,cAAA,OAAKC,UAAU,6BACXD,IAAAA,cAAA,YAAO6sE,IALJ,MA+SN9C,GAtQT,SAAyB8F,EAA4B3vD,GACjD,GAAkB,OAAd2vD,EAAJ,CAGA,IAAMC,EAA0C3D,EAAoB4D,YAAY18D,KAAuB,SAAAytB,GACnG,MAAO,CACHwsC,oBAAoB0C,EAAAA,EAAAA,4CAA2ClvC,EAASD,eACxEpe,eAAgB,CACZuF,SAAU,EACVtF,MAAOoe,EAASnjC,WAI5B,OAAOqC,IAAAA,aAAmB6vE,EAAiC,CAAEI,kBAAmB/vD,EAAM4vD,mBAAkBA,KAyPhFI,CAAgBnG,EAAiBzqE,EAAQ4uE,UAC5DlE,GAxiBb,SACIA,EACA1qE,EACAgnB,GAGA,OADAO,EAAAA,EAAAA,mBAAkBP,GACXtmB,IAAAA,aAAmBgqE,EAA+C,CAAE1qE,QAAOA,EAAEgnB,UAASA,IAkiBzD6pD,CAA8BnG,EAAyB1qE,GAASsnB,EAAAA,EAAAA,IAAa1nB,EAAQ0e,aAjjB/F","sources":["webpack://bestseller.commerce.online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?2985","webpack://bestseller.commerce.online/./src/price/price.components.tsx?7295","webpack://bestseller.commerce.online/./src/video-player-utilities/components/utilities/key-codes.ts?1004","webpack://bestseller.commerce.online/./src/video-player-utilities/components/utilities/string-extensions.ts?3689","webpack://bestseller.commerce.online/./src/video-player-utilities/components/utilities/html-extensions.ts?9642","webpack://bestseller.commerce.online/./src/video-player-utilities/components/utilities/player-utility.ts?33e3","webpack://bestseller.commerce.online/./src/video-player-utilities/components/utilities/utilities.ts?65c9","webpack://bestseller.commerce.online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?1008","webpack://bestseller.commerce.online/./src/video-player-utilities/components/helper/localization-helper.ts?26d0","webpack://bestseller.commerce.online/./src/video-player-utilities/components/helper/closed-caption-helper.ts?8eff","webpack://bestseller.commerce.online/./src/video-player-utilities/components/helper/player-helper.ts?800e","webpack://bestseller.commerce.online/./src/rating/rating.component.tsx?1ba8","webpack://bestseller.commerce.online/./src/order-template/order-templates-list/order-template-products-preview.tsx?832a","webpack://bestseller.commerce.online/./src/add-to-cart/add-to-cart.component.tsx?c15a","webpack://bestseller.commerce.online/./src/add-to-cart/items-added-to-cart.ts?4f10","webpack://bestseller.commerce.online/./src/add-to-cart/items-added-to-cart-error-component.tsx?3e3e","webpack://bestseller.commerce.online/./src/add-to-cart/items-added-to-cart-dialog-component.tsx?3a1e","webpack://bestseller.commerce.online/./src/add-to-cart/notifications/item-successfully-added-to-cart-notification-component.tsx?1092","webpack://bestseller.commerce.online/./src/add-to-cart/notifications/item-successfully-added-to-cart-notification.ts?b5b4","webpack://bestseller.commerce.online/./src/add-to-cart/notifications/multi-items-successfully-added-to-cart-notification-component.tsx?ec23","webpack://bestseller.commerce.online/./src/add-to-cart/notifications/multi-items-successfully-added-to-cart-notification.ts?4d32","webpack://bestseller.commerce.online/./src/add-to-cart/product-model.ts?91f1","webpack://bestseller.commerce.online/./src/order-template/add-order-template-to-cart/add-order-template-to-cart.component.tsx?b3bb","webpack://bestseller.commerce.online/./src/order-template/rename-order-template/rename-order-template.component.tsx?22f7","webpack://bestseller.commerce.online/./src/order-template/lines-added-to-cart-dialog/lines-added-to-cart-dialog.component.tsx?3b78","webpack://bestseller.commerce.online/./src/order-template/order-template-name-dialog/order-template-name-dialog.component.tsx?aa9c","webpack://bestseller.commerce.online/./src/order-template/order-templates-list/order-template-list.tsx?9a9e","webpack://bestseller.commerce.online/./src/order-template/add-to-order-template-dialog/add-to-order-template-dialog.component.tsx?94ad","webpack://bestseller.commerce.online/./src/order-template/lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component.tsx?8a37","webpack://bestseller.commerce.online/./src/order-template/add-products-to-order-template/add-products-to-order-template.component.tsx?bf4c","webpack://bestseller.commerce.online/./src/order-template/duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component.tsx?1ec3","webpack://bestseller.commerce.online/./src/order-template/item-added-to-order-template-dialog/item-added-to-order-template-dialog.component.tsx?017f","webpack://bestseller.commerce.online/./src/order-template/add-to-order-template/add-to-order-template.component.tsx?0066","webpack://bestseller.commerce.online/./src/order-template/item-added-to-cart-dialog/item-added-to-cart-dialog.component.tsx?9757","webpack://bestseller.commerce.online/./src/order-template/save-cart-to-order-template/save-cart-to-order-template.component.tsx?c47e","webpack://bestseller.commerce.online/./src/product-card-v2/components/product-component-swatch-v2.tsx?1bc1","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/ttml-settings.ts?ff45","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/ttml-context.ts?2af4","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/ttml-time-parser.ts?72f5","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/ttml-parser.ts?6362","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/video-closed-captions.tsx?4d40","webpack://bestseller.commerce.online/./src/social-media/social-media.components.tsx?9b27","webpack://bestseller.commerce.online/./src/video-player-utilities/player.tsx?8176","webpack://bestseller.commerce.online/./src/video-player-utilities/components/action-toggle/action-toggle.tsx?246b","webpack://bestseller.commerce.online/./src/video-player-utilities/components/age-gate/age-gate.tsx?96c8","webpack://bestseller.commerce.online/./src/video-player-utilities/components/data/player-constants.ts?0a75","webpack://bestseller.commerce.online/./src/video-player-utilities/components/data/player-metadata.ts?24d6","webpack://bestseller.commerce.online/./src/video-player-utilities/components/closed-captions/video-closed-captions-settings.ts?2fc2","webpack://bestseller.commerce.online/./src/video-player-utilities/components/menu/menu.tsx?4ce6","webpack://bestseller.commerce.online/./src/video-player-utilities/components/menu-item/menu-item.tsx?471c","webpack://bestseller.commerce.online/./src/video-player-utilities/components/play-pause-trigger/play-pause-trigger.tsx?3fa4","webpack://bestseller.commerce.online/./src/video-player-utilities/components/video-controls/video-controls.tsx?32a5","webpack://bestseller.commerce.online/./src/carousel/CarouselContext.tsx?5738","webpack://bestseller.commerce.online/./src/carousel/CarouselItem.tsx?ecad","webpack://bestseller.commerce.online/./src/carousel/Carousel.tsx?9349","webpack://bestseller.commerce.online/./src/cart-icon/cart-icon.component.tsx?ef29","webpack://bestseller.commerce.online/./src/promocode/promocode.component.tsx?37c7","webpack://bestseller.commerce.online/./src/action-menu/action-menu.component.tsx?7298","webpack://bestseller.commerce.online/./src/add-to-wishlist/add-to-wishlist.component.tsx?0a03","webpack://bestseller.commerce.online/./src/cartline/components/cart-line-price-editor.tsx?6767","webpack://bestseller.commerce.online/./src/cartline/cartlineitem.component.tsx?be39","webpack://bestseller.commerce.online/./src/product-card/components/product-component-swatch.tsx?a399","webpack://bestseller.commerce.online/./src/product-card/product.component.tsx?32e2","webpack://bestseller.commerce.online/./src/product-dimension/dropdown/dropdown.tsx?9ac3","webpack://bestseller.commerce.online/./src/product-dimension/product-dimension.component.tsx?387b","webpack://bestseller.commerce.online/./src/product-dimension/swatch/swatch-item.tsx?72c2","webpack://bestseller.commerce.online/./src/product-dimension/swatch/swatch.tsx?6550","webpack://bestseller.commerce.online/./src/product-dimensions-matrix/components/product-dimensions-matrix-dimension-item.tsx?0f56","webpack://bestseller.commerce.online/./src/product-dimensions-matrix/components/product-dimensions-matrix-dimension-selection.tsx?2e77","webpack://bestseller.commerce.online/./src/product-dimensions-matrix/components/product-dimensions-matrix-enter-all-quantity-button.tsx?43c1","webpack://bestseller.commerce.online/./src/product-dimensions-matrix/product-dimensions-matrix.tsx?50f3","webpack://bestseller.commerce.online/./src/refiner/common.tsx?5431","webpack://bestseller.commerce.online/./src/refiner/refiner-apply.component.tsx?c65c","webpack://bestseller.commerce.online/./src/refiner/refiner-choice-summary.component.tsx?bb08","webpack://bestseller.commerce.online/./src/refiner/refiner-footer.component.tsx?922c","webpack://bestseller.commerce.online/./src/refiner/refiner-toggle.component.tsx?191b","webpack://bestseller.commerce.online/./src/refiner/refiner-sort.component.tsx?6742","webpack://bestseller.commerce.online/./src/refiner/refiner-header.component.tsx?f32a","webpack://bestseller.commerce.online/./src/refiner/refiner-item-check.component.tsx?49ea","webpack://bestseller.commerce.online/./src/refiner/refiner-item-daterange.component.tsx?a87f","webpack://bestseller.commerce.online/./src/refiner/refiner-modal.component.tsx?e1db","webpack://bestseller.commerce.online/./src/refiner/refiner-options.component.tsx?7d6b","webpack://bestseller.commerce.online/./src/refiner/refiner.component.tsx?4a59","webpack://bestseller.commerce.online/./src/search-bar/search-bar.component.tsx?4f38","webpack://bestseller.commerce.online/./src/table/table.component.tsx?d5d2","webpack://bestseller.commerce.online/./src/wishlist-icon/wishlist-icon.component.tsx?a133","webpack://bestseller.commerce.online/./src/video-player-utilities/components/data/player-options.ts?0c9c","webpack://bestseller.commerce.online/./src/product-card-v2/product-v2.component.tsx?2a5e"],"sourcesContent":["'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\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 { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ProductPrice, ProductType, SalesAgreementPriceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { Button, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst defaultPrice: number = 0;\nconst freePrice: number = 0;\n\n/**\n * Interface for price component resources.\n * @param {string} priceRangeSeparator - The price range separator.\n */\nexport interface IPriceComponentResources {\n priceRangeSeparator?: string;\n salesAgreementPricePrompt?: string;\n salesAgreementExpirationDatePrompt?: string;\n salesAgreementCommittedQuantityPrompt?: string;\n salesAgreementRemainingQuantityPrompt?: string;\n}\n\n/**\n * Interface for price component props.\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\n * @param {IPriceComponentResources} priceResources - The price range resources.\n */\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\n className?: string;\n product?: SimpleProduct;\n savingsText?: string;\n freePriceText?: string;\n originalPriceText?: string;\n currentPriceText?: string;\n isPriceMinMaxEnabled?: boolean;\n isSalesAgreementPriceFeatureEnabled?: boolean;\n salesAgreementLineId?: number;\n priceResources?: IPriceComponentResources;\n salesAgreementDetailCollapseProps?: ICollapseProps;\n currencyCode?: string;\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\n}\n\n/**\n * The interface of price component.\n */\nexport interface IPriceComponent extends IComponent {}\n\nconst priceComponentActions = {};\n\n/**\n * Get the original price from price component props.\n * @param props - The IPriceComponentProps.\n * @returns The original price.\n */\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\n return props.data.price.AdjustedPrice ?? props.data.price.TradeAgreementPrice ?? props.data.price.BasePrice ?? defaultPrice;\n};\n\nconst getActivePrice = (props: IPriceComponentProps): number => {\n if (showPriceRangeForMasterProduct(props) && props.data.price.MinVariantPrice !== undefined) {\n return props.data.price.MinVariantPrice;\n }\n\n if (props.data.price.CustomerContextualPrice !== undefined) {\n return props.data.price.CustomerContextualPrice;\n }\n\n return getOriginalPrice(props);\n};\n\n/**\n * Get the formatted currency.\n * @param props - The props.\n * @param price - The price.\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\n * @returns The formatted currency.\n */\nconst formatCurrency = (\n props: IPriceComponentProps,\n price: number | undefined,\n shouldUseFreePriceText: boolean | undefined,\n currencyCode?: string | undefined\n): string => {\n if (price === undefined) {\n return '';\n }\n\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\n return props.freePriceText;\n }\n\n return props.context.cultureFormatter.formatCurrency(price, currencyCode);\n};\n\nconst showPriceRangeForMasterProduct = (props: IPriceComponentProps): boolean => {\n return (\n (props.isPriceMinMaxEnabled ?? false) &&\n (props.product?.ProductTypeValue === ProductType.Master || props.product?.ProductTypeValue === ProductType.KitMaster) &&\n props.data.price.MinVariantPrice !== undefined &&\n props.data.price.MaxVariantPrice !== undefined\n );\n};\n\n/**\n * ShowStrikethroughPricing.\n * @param props - The props.\n * @returns True if showStrikethroughPricing, false otherwise.\n */\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\n const originalSalesPrice = getOriginalPrice(props);\n const activeSalesPrice = showPriceRangeForMasterProduct(props)\n ? props.data.price.MinVariantPrice\n : props.data.price.CustomerContextualPrice;\n\n if (activeSalesPrice && originalSalesPrice) {\n return activeSalesPrice < originalSalesPrice;\n }\n\n return false;\n};\n\n/**\n * Render current price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\n const maxVariantPrice: string = formatCurrency(props, props.data.price.MaxVariantPrice, false, props.currencyCode);\n const minVariantPrice: string = formatCurrency(props, props.data.price.MinVariantPrice, false, props.currencyCode);\n if (\n props.isPriceMinMaxEnabled &&\n props.data.price.MaxVariantPrice &&\n props.data.price.MinVariantPrice &&\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\n ) {\n return (\n \n \n {minVariantPrice}\n \n \n {props.priceResources?.priceRangeSeparator}\n \n \n {maxVariantPrice}\n \n \n );\n }\n\n return (\n \n {formatCurrency(props, getActivePrice(props), true, props.currencyCode)}\n \n );\n};\n\n/**\n * Render active sales price with original sales price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\n const initialPrice: string = formatCurrency(props, getOriginalPrice(props), true);\n\n return (\n <>\n \n {` `}\n {props.originalPriceText}\n {` `}\n {initialPrice}\n {` `}\n {props.currentPriceText}\n {` `}\n {renderCurrentPrice(props)}\n \n \n \n {props.savingsText && {props.savingsText}}\n \n );\n};\n\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\n // In most cases there should be only one sales agreement line.\n // If there are more than one, only the first one will be shown.\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\n return (\n

\n

\n {/* Available date */}\n {` · ${format(\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\n )}`}\n

\n

\n {/* Quantity commitment */}\n {` · ${format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}`}\n

\n

\n {/* Remaining quantity to qualify */}\n {` · ${format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}`}\n

\n

\n );\n};\n\n/**\n * Price.\n * @param props - The props.\n * @returns The JSX.Element.\n */\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\n // CustomerContextualPrice could be zero\n if (props.data.price.CustomerContextualPrice === undefined) {\n return null;\n }\n\n // Determine if contract price is avaiable/applied by:\n // isFeatureEnabled and SA price != 0, for PDP.\n // SA line id != 0, for cart line.\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\n const [isExpanded, setIsExpanded] = React.useState(false);\n const toggle = () => {\n setIsExpanded(!isExpanded);\n };\n return (\n \n \n

\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\n

\n \n {props.priceResources?.salesAgreementPricePrompt}\n \n {isExpanded && renderSalesAgreementDetail(props)}\n
\n
\n );\n }\n\n return (\n \n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\n \n );\n};\n\n/**\n * The PriceComponent.\n */\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponent('Price', {\n component: Price,\n ...priceComponentActions\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * KeyCodes Enum.\n */\nexport enum KeyCodes {\n Back = 8,\n Tab = 9,\n Enter = 13,\n Shift = 16,\n Ctrl = 17,\n Alt = 18,\n Break = 19,\n CapsLock = 20,\n Escape = 27,\n Space = 32,\n PageUp = 33,\n PageDown = 34,\n End = 35,\n Home = 36,\n ArrowLeft = 37,\n ArrowUp = 38,\n ArrowRight = 39,\n ArrowDown = 40,\n Print = 44,\n Insert = 45,\n Delete = 46,\n Colon2 = 59, // Opera and Firefox\n Equals2 = 61, // Opera\n Equals3 = 107, // Firefox\n Minus2 = 109, // Opera and Firefox\n Period = 190,\n WindowsLeft = 91,\n WindowsRight = 92,\n WindowsOpera = 219, // Opera\n Menu = 93,\n NumPad0 = 96,\n NumPad1 = 97,\n NumPad2 = 98,\n NumPad3 = 99,\n NumPad4 = 100,\n NumPad5 = 101,\n NumPad6 = 102,\n NumPad7 = 103,\n NumPad8 = 104,\n NumPad9 = 105,\n NumPadMultiply = 106,\n NumPadPlus = 107,\n NumPadMinus = 109,\n NumPadDot = 110,\n NumPadDivide = 111,\n Function1 = 112,\n Function2 = 113,\n Function3 = 114,\n Function4 = 115,\n Function5 = 116,\n Function6 = 117,\n Function7 = 118,\n Function8 = 119,\n Function9 = 120,\n Function10 = 121,\n Function11 = 122,\n Function12 = 123,\n NavigationUp = 138,\n NavigationDown = 139,\n NavigationLeft = 140,\n NavigationRight = 141,\n NavigationAccept = 142,\n NumLock = 144,\n ScrollLock = 145,\n Colon = 186,\n Equals = 187,\n Comma = 188,\n Minus = 189,\n ForwardSlash = 191,\n Tilde = 192,\n GamepadA = 195,\n GamepadB = 196,\n GamepadX = 197,\n GamepadY = 198,\n GamepadRightButton = 199,\n GamepadLeftButton = 200,\n GamepadLeftTrigger = 201,\n GamepadRightTrigger = 202,\n GamepadDPadUp = 203,\n GamepadDPadDown = 204,\n GamepadDPadLeft = 205,\n GamepadDPadRight = 206,\n GamepadSelect = 207,\n GamepadStart = 208,\n GamepadLeftThumbstick = 209,\n GamepadRightThumbstick = 210,\n GamepadLeftThumbstickUp = 211,\n GamepadLeftThumbstickDown = 212,\n GamepadLeftThumbstickRight = 213,\n GamepadLeftThumbstickLeft = 214,\n GamepadRightThumbstickUp = 215,\n GamepadRightThumbstickDown = 216,\n GamepadRightThumbstickRight = 217,\n GamepadRightThumbstickLeft = 218,\n OpenBracket = 219,\n BackSlash = 220,\n CloseBracket = 221,\n Quote = 222\n}\n\n/**\n * Here for test coverage.\n */\nexport class KeycodesClass {\n public testCoverage(): string {\n return ':(';\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Format the passed string.\n * @param formatSpecifier - FormatSpecifier.\n * @param parameters -- Any number of parameters.\n * @returns The formated string.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(formatSpecifier: string, ...parameters: any[]): string {\n if (!formatSpecifier) {\n return '';\n }\n\n return formatSpecifier.replace(/{(\\d+)}/g, (match: string, index: number) => {\n if (index >= parameters.length) {\n return match;\n }\n\n const value = parameters[index];\n\n if (typeof value !== 'number' && !value) {\n return '';\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n return value.toString();\n });\n}\n\n/**\n * Determines if the specified string is undefined, null, empty, or whitespace.\n * @param value - The string to examine.\n * @returns - True if the value is undefined, null, empty, or whitespace, otherwise false.\n */\nexport function isNullOrWhiteSpace(value: string): boolean {\n return !value || typeof value !== 'string' || !trim(value);\n}\n\n/**\n * Trims leading and trailing whitespace from the string.\n * @param value - The string to examine.\n * @returns - The trimmed string.\n */\nexport function trim(value: string): string {\n // Any flavor of !value (ie. null/undefined/'') should return itself.\n if (!value || typeof value !== 'string') {\n return value;\n }\n\n if (value.trim) {\n return value.trim();\n }\n\n return value.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determines if the specified string starts with the specified value.\n * @param value - The string to look in.\n * @param prefix - The prefix to look for.\n * @param ignoreCase - Ignore Case.\n * @returns - True if the string starts with the prefix, otherwise false.\n */\nexport function startsWith(value: string, prefix: string, ignoreCase: boolean = true): boolean {\n if (!value || !prefix) {\n return false;\n }\n\n if (ignoreCase) {\n value = value.toLocaleLowerCase();\n prefix = prefix.toLocaleLowerCase();\n }\n\n if (value.startsWith) {\n return value.startsWith(prefix);\n }\n\n return value.startsWith(prefix);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { isNullOrWhiteSpace, trim } from './string-extensions';\n\n/**\n * Get the text of the element.\n * @param element - HTML element.\n * @returns The content of the element.\n */\nexport function getText(element?: HTMLElement | Element): string {\n return element ? element.textContent || '' : '';\n}\n\n/**\n * Add a css class to an element.\n * @param element - The element to add the css class to.\n * @param cssClass - The css class to add.\n */\nexport function addClass(element: HTMLElement, cssClass: string): void {\n if (element && !isNullOrWhiteSpace(cssClass) && !hasClass(element, cssClass)) {\n if (element.classList) {\n element.classList.add(cssClass);\n } else {\n element.className = trim(`${element.className} ${cssClass}`);\n }\n }\n}\n\n/**\n * Checks for the presence of a css class on an element.\n * @param element - The element to check the css class of.\n * @param cssClass - The css class to check for.\n * @returns True if the element's className has the specified class, otherwise false.\n */\nexport function hasClass(element: HTMLElement, cssClass: string): boolean {\n if (!element || isNullOrWhiteSpace(cssClass)) {\n return false;\n } else if (element.classList) {\n return element.classList.contains(cssClass);\n }\n return `' ' ${element.className} ' '`.includes(`' ' ${trim(cssClass)} ' '`);\n}\n\n/**\n * Convert node list to array.\n * @param nodeList - Node List.\n * @returns Array of the node list.\n */\nexport function nodeListToArray(\n nodeList: NodeListOf | NodeListOf | HTMLCollection | NodeList | NamedNodeMap\n): T[] {\n if (!nodeList) {\n return [];\n }\n\n const elements: T[] = [];\n\n for (let n = 0; n < nodeList.length; n++) {\n elements.push(nodeList[n]);\n }\n\n return elements;\n}\n\n/**\n * Select elements in a context.\n * @param selector - Can be class, id or tag selector.\n * @param [context] - Any element to scope the selection. It's optional. If not provided document will be assumed.\n * @returns HTMLElement[].\n */\nexport function selectElements(selector: string, context?: HTMLElement): HTMLElement[] {\n return selectElementsT(selector, context);\n}\n\n/**\n * Select elements in a context.\n * @param selector - Can be class, id or tag selector.\n * @param [context] - Any element to scope the selection. It's optional. If not provided document will be assumed.\n * @returns T[].\n */\nexport function selectElementsT(selector: string, context?: HTMLElement): T[] {\n if (isNullOrWhiteSpace(selector) || selector === '#') {\n return [];\n }\n\n const currentContext: HTMLElement | Document = context || document;\n\n // Check if the first character is class or id.\n if (/^[#.]?[\\w-]+$/.test(selector)) {\n // eslint-disable-next-line default-case\n switch (selector[0]) {\n case '.':\n if (currentContext.getElementsByClassName) {\n return nodeListToArray(currentContext.getElementsByClassName(selector.slice(1)));\n }\n return nodeListToArray(currentContext.querySelectorAll(selector));\n\n case '#':\n const element = currentContext.querySelector(selector);\n return (element ? [element] : []);\n }\n\n return nodeListToArray(currentContext.getElementsByTagName(selector));\n }\n\n return nodeListToArray(currentContext.querySelectorAll(selector));\n}\n\n/**\n * Sets or gets CSS properties.\n * @param element - HTML Element.\n * @param property - The CSS property name.\n * @param [value] - The value to set on the CSS property.\n * @returns - The value of the CSS property.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function css(element: HTMLElement | Node, property: string, value?: any): any {\n if (!element) {\n return null;\n }\n\n if (value || value === '') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (element).style[property] = value;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = (element).style[property];\n\n if (isNullOrWhiteSpace(value)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = getComputedStyle(element as any);\n value = value[property];\n }\n\n return value;\n }\n}\n\n/**\n * Remove all inner HTML from a parent element - used to delete child elements.\n * @param parentElement - The parent element from which all children should be removed.\n */\nexport function removeInnerHtml(parentElement: HTMLElement): void {\n if (parentElement) {\n parentElement.innerHTML = '';\n }\n}\n\n/**\n * Select first element from the selected elements using provided selector.\n * @param selector - Element selector.\n * @param [context] - An optional context to scope the selection.\n * @returns - The first element from the match.\n */\nexport function selectFirstElement(selector: string, context?: HTMLElement): HTMLElement | null {\n const elementsSelected = selectElementsT(selector, context);\n return !elementsSelected || !elementsSelected.length ? null : elementsSelected[0];\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let window: any;\n\n/**\n * @name - XDomainRequest\n * @description - typescript declaration for XDomainRequest object.\n * @type {object}\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeclare let XDomainRequest: any;\n\n/**\n * PlayerUtilities class.\n * @classdesc - The PlayerOptions class is used to pass player options settings to the player.\n * It supplies default values which can be overridden via overrides passed to the constructor.\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class PlayerUtility {\n /**\n * @name - pendingAjaxRequests\n * @description - array to hold pending ajax requests.\n * @private\n * @static\n * @returns {any}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static readonly pendingAjaxRequests: any = [];\n\n /**\n * Gets request data using ajax call.\n * @param url - Url from where to fetch data.\n * @param done - On success callback function.\n * @param failed - On failed callback function.\n */\n public static ajax(url: string, done: Function, failed?: Function): void {\n if (!url) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let ajaxRequest: any = null;\n\n // For IE 9 and below use XDomainRequest\n if (window.XDomainRequest) {\n ajaxRequest = new XDomainRequest();\n\n ajaxRequest.addEventListener('load', () => {\n done && done(ajaxRequest.responseText);\n PlayerUtility._removeFromPendingAjaxRequests(ajaxRequest);\n });\n\n // IE8 and IE9 have a bug where garbage collector will clear XDomainRequest object\n // before the call is completed. Thus add a reference to the object so that request\n // is not aborted by garbage collector.\n PlayerUtility.pendingAjaxRequests.push(ajaxRequest);\n } else if (window.XMLHttpRequest) {\n ajaxRequest = new XMLHttpRequest();\n\n ajaxRequest.onreadystatechange = () => {\n if (ajaxRequest.readyState === 4) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = null;\n if (ajaxRequest.status === 200) {\n result = ajaxRequest.responseText;\n }\n done && done(result);\n } else {\n // The following console.log useful for debugging and is left in commented out for easy restoration.\n // console.log('Localization-helper: readystate(' + xhttp.readyState + ') status(' + xhttp.status + ')');\n }\n };\n }\n\n // Attach common event handlers and make the request.\n if (ajaxRequest) {\n ajaxRequest.ontimeout = ajaxRequest.addEventListener('error', () => {\n PlayerUtility._removeFromPendingAjaxRequests(ajaxRequest);\n failed && failed();\n });\n ajaxRequest.open('GET', url, true);\n ajaxRequest.send();\n }\n }\n\n /**\n * Removes object from array to hold pending ajax requests.\n * @param obj - Object.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private static _removeFromPendingAjaxRequests(obj: any): void {\n // When the call is completed remove it from the array\n let index = -1;\n for (let i = 0; i < PlayerUtility.pendingAjaxRequests.length; i++) {\n if (obj === PlayerUtility.pendingAjaxRequests[i]) {\n index = i;\n break;\n }\n }\n if (index >= 0) {\n PlayerUtility.pendingAjaxRequests.splice(index, 1);\n }\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Client Dimension Interface.\n */\nexport interface IClientDimension {\n width: number;\n height: number;\n}\n\n/**\n * Dictionary String Interface.\n */\nexport interface IDictionaryStringString {\n [key: string]: string;\n}\n\n/**\n * @interface IGrid\n * @classdesc - The IGrid interface contract.\n */\nexport interface IGrid {\n rows: number;\n columns: number;\n}\n\n/**\n * Clamp position between a range.\n * @param value - Value to be clamped.\n * @param min - Minimum value in range.\n * @param max - Maximum value in range.\n * @returns The clap value if min passed is less than max else returns 0.\n */\nexport function clamp(value: number, min: number, max: number): number {\n if (min <= max) {\n return Math.min(Math.max(value, min), max);\n }\n return 0;\n}\n\n/**\n * Upper case the first letter of the string, if only one char exists on the string, uppercase it.\n * @param value - Value to be upper cased.\n * @returns The upper cased string of the passed value, if it has just one char uppercase it.\n */\nexport function toUpperCaseFirstChar(value: string): string {\n if (value.length > 1) {\n return value.charAt(0).toUpperCase() + value.substr(1);\n }\n if (value.length === 1) {\n return value.charAt(0).toUpperCase();\n }\n return '';\n}\n\n/**\n * HTML collectio to Array.\n * @param nodeList - Html Collection.\n * @returns - An array of the HTML Element.\n */\nexport function htmlCollectionToArray(nodeList: HTMLCollection): HTMLElement[] {\n return Array.prototype.slice.call(nodeList);\n}\n\n/**\n * Get CSS for the Element.\n * @param element - The HTML Element.\n * @param property - The HTML property.\n * @returns - The value of the required property.\n */\nexport function getCSS(element: HTMLElement, property: string): string {\n let style = element.style[property];\n\n if (!style) {\n style = getComputedStyle(element)[property];\n }\n\n return style;\n}\n\n/**\n * Create Throttled Event.\n * @param listener - The Event Listener.\n * @param threshold - The threshold number.\n * @returns The event.\n */\nexport function createThrottledEvent(listener: EventListener, threshold: number): (event: Event) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timer: any;\n let last = 0;\n\n return (event: Event) => {\n const now = Date.now();\n\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n\n if (last && now < last + threshold) {\n timer = setTimeout(() => {\n last = Date.now();\n listener(event);\n }, threshold - (now - last));\n } else {\n last = now;\n listener(event);\n }\n };\n}\n\n/**\n * Add the Throrrled Event.\n * @param target - Event Targer.\n * @param name - Name of the Event.\n * @param listener - The Event Listener.\n * @param threshold - The Threshold number.\n * @returns - Returns the Throttled Event.\n */\nexport function addThrottledEvent(\n target: EventTarget,\n name: string,\n listener: EventListener,\n threshold: number = 150\n): (event: Event) => void {\n const throttledEventHandler = createThrottledEvent(listener, threshold);\n target.addEventListener(name, throttledEventHandler, false);\n\n return throttledEventHandler;\n}\n\n/**\n * Map the CSS to the modules.\n * @param className - Class name.\n * @param cssModule - CSS modules.\n * @returns - Returns the map CSS.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapToCssModules(className: string = '', cssModule: any): string {\n if (!cssModule) {\n return className;\n }\n\n return className\n .split(' ')\n .map((c: string) => cssModule[c] || c)\n .join(' ');\n}\n\n/**\n * Check the raget object is reference.\n * @param target - Target object.\n * @returns Returns boolean.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isRef(target: any): boolean {\n if (!target) {\n return false;\n }\n\n return (>target).current !== undefined;\n}\n\n/**\n * Check if the passed target is element.\n * @param target - Target element.\n * @returns Returns boolean.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isElement(target: any): boolean {\n if (!target) {\n return false;\n }\n\n return (target).addEventListener !== undefined;\n}\n\n/**\n * KeyCodes Enum.\n */\nexport const keyCodes = {\n esc: 27,\n space: 32,\n tab: 9,\n up: 38,\n down: 40,\n enter: 13\n};\n\n/**\n * Map Interface.\n */\ninterface IMap {\n [key: string]: T;\n}\nconst warned: IMap = {};\n\n/**\n * Warn once.\n * @param message - Message to warned.\n */\nexport function warnOnce(message: string): void {\n if (!warned[message]) {\n if (typeof console !== 'undefined') {\n throw new Error(message);\n }\n warned[message] = true;\n }\n}\n\n/**\n * Can use DOM..\n */\nexport const canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Find the required DOM element.\n * @param target - Targert Dom Element.\n * @returns - The DOM Element or string or null.\n */\nexport function findDOMElements(target: string): NodeListOf | string | null {\n try {\n if (typeof target === 'string' && canUseDOM) {\n let selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(`#${target}`);\n }\n\n if (!selection.length) {\n throw new Error();\n }\n return selection;\n }\n\n return target;\n } catch {\n console.error(`The target '${target}' could not be identified in the dom, tip: check spelling`);\n return null;\n }\n}\n\n/**\n * Get the Target element.\n * @param target - Target Element.\n * @returns - Returns the HTMLElement or null or string.\n */\nexport function getTarget(target: string | HTMLElement | React.Ref): HTMLElement | React.Ref | null | string {\n const selection = findDOMElements(target);\n if (selection && selection.length) {\n return selection[0];\n }\n\n return target;\n}\n\n/**\n * Get the Target element.\n * @param target - Target Element.\n * @returns - Returns the HTMLElement or null or string.\n */\nexport function getTargetElement(target: string | HTMLElement | React.Ref): HTMLElement | null {\n const targetElement = getTarget(target);\n if (isRef(targetElement)) {\n return (>targetElement).current;\n }\n if (isElement(targetElement)) {\n return targetElement;\n }\n\n return null;\n}\n\n/**\n * Transition Timeouts.\n */\nexport const TransitionTimeouts = {\n Fade: 150,\n Collapse: 350,\n Modal: 300,\n Carousel: 600\n};\n\n/**\n * Transition Statuses.\n */\nexport type TransitionStatuses = 'entering' | 'entered' | 'exiting' | 'exited';\n\n/**\n * Focusable Elements.\n */\nexport const focusableElements = [\n 'a[href]',\n 'area[href]',\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'object',\n 'embed',\n '[tabindex]:not(.modal)',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])'\n];\n\n/**\n * Extends an object with properties/values from one or more others.\n * @param parameters - The objects to merge together.\n * @returns - The extended object.\n */\n// eslint-disable-next-line complexity, @typescript-eslint/no-explicit-any\nexport function extend(...parameters: any[]): any {\n if (!parameters || !parameters.length) {\n return null;\n }\n\n const recursive = typeof parameters[0] === 'boolean' && parameters[0];\n\n if (parameters.length < 2) {\n return recursive ? null : parameters[0];\n }\n\n if (recursive && parameters.length < 3) {\n return parameters[1];\n }\n\n const target = recursive ? parameters[1] : parameters[0];\n\n for (let paramIndex = recursive ? 2 : 1; paramIndex < parameters.length; paramIndex++) {\n if (parameters[paramIndex] !== undefined) {\n for (const key of Object.keys(parameters[paramIndex])) {\n if (parameters[paramIndex].hasOwnProperty(key)) {\n const source = parameters[paramIndex][key];\n\n if (recursive) {\n let isSourceArray = Array.isArray ? Array.isArray(source) : {}.toString.call(source) === '[object Array]';\n let isTargetArray =\n !!target[key] &&\n (Array.isArray ? Array.isArray(target[key]) : {}.toString.call(target[key]) === '[object Array]');\n let isSourceObject = !isSourceArray && typeof source === 'object';\n let isTargetObject = !isTargetArray && !!target[key] && typeof target[key] === 'object';\n\n if (isSourceArray && isTargetArray) {\n for (const [arrayIndex, element] of source.entries()) {\n isSourceArray = Array.isArray ? Array.isArray(element) : {}.toString.call(element) === '[object Array]';\n isTargetArray =\n !!target[key][arrayIndex] &&\n (Array.isArray\n ? Array.isArray(target[key][arrayIndex])\n : {}.toString.call(target[key][arrayIndex]) === '[object Array]');\n isSourceObject = !isSourceArray && typeof element === 'object';\n isTargetObject = !isTargetArray && !!target[key][arrayIndex] && typeof target[key][arrayIndex] === 'object';\n\n if (isSourceArray) {\n target[key][arrayIndex] = extend(true, isTargetArray ? target[key][arrayIndex] : [], element);\n } else if (isSourceObject) {\n target[key][arrayIndex] = extend(true, isTargetObject ? target[key][arrayIndex] : {}, element);\n } else {\n target[key][arrayIndex] = element;\n }\n }\n continue;\n } else if (isSourceArray) {\n target[key] = extend(true, [], source);\n continue;\n } else if (isSourceObject) {\n target[key] = extend(true, isTargetObject ? target[key] : {}, source);\n continue;\n }\n }\n\n target[key] = source;\n }\n }\n }\n }\n\n return target;\n}\n\n/**\n * Gets the dimension of an element.\n * @param containerElement - The container element.\n * @returns - {IClientDimension} - The client dimension.\n * {IClientDimension.width} - The client width.\n * {IClientDimension.height} - The client height.\n */\nexport function getDimensions(containerElement: HTMLElement): IClientDimension | null {\n if (containerElement === null) {\n return null;\n }\n return {\n width: containerElement.clientWidth,\n height: containerElement.clientHeight\n };\n}\n\n/**\n * Check if the browser is Safari or not.\n * @returns Ture or false.\n */\nexport function isSafari(): boolean {\n if (navigator.vendor && navigator.userAgent) {\n return navigator.vendor.includes('Apple') && !navigator.userAgent.includes('CriOS') && !navigator.userAgent.includes('FxiOS');\n }\n return false;\n}\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IPlayerResources } from '../data';\nimport { IDictionaryStringString } from '../utilities';\n\n/**\n * @name - ccCultureLocStrings\n * @description - The localized names for the close caption menu options.\n * @constant\n * @type {IDictionaryStringString}\n */\nexport const ccCultureLocStrings: IDictionaryStringString = {\n 'ar-ab': 'عربي',\n 'ar-xm': 'عربي',\n 'ar-ma': 'عربي',\n 'ar-sa': 'عربي',\n 'eu-es': 'Euskara',\n 'bg-bg': 'Български',\n 'ca-es': 'Català',\n 'zh-cn': '简体中文',\n 'zh-hk': '繁體中文',\n 'zh-tw': '繁體中文',\n 'hr-hr': 'Hrvatski',\n 'cs-cz': 'Čeština',\n 'da-dk': 'Dansk',\n 'nl-be': 'Nederlands',\n 'nl-nl': 'Nederlands',\n 'en-ab': 'English',\n 'en-aa': 'English',\n 'en-au': 'English',\n 'en-ca': 'English',\n 'en-eu': 'English',\n 'en-hk': 'English',\n 'en-in': 'English',\n 'en-id': 'English',\n 'en-ie': 'English',\n 'en-jm': 'English',\n 'en-my': 'English',\n 'en-nz': 'English',\n 'en-pk': 'English',\n 'en-ph': 'English',\n 'en-sg': 'English',\n 'en-za': 'English',\n 'en-tt': 'English',\n 'en-gb': 'English',\n 'en-us': 'English',\n 'et-ee': 'Eesti',\n 'fi-fi': 'Suomi',\n 'fr-ab': 'Français',\n 'fr-be': 'Français',\n 'fr-ca': 'Français',\n 'fr-fr': 'Français',\n 'fr-xf': 'Français',\n 'fr-ch': 'Français',\n 'gl-es': 'Galego',\n 'de-de': 'Deutsch',\n 'de-at': 'Deutsch',\n 'de-ch': 'Deutsch',\n 'el-gr': 'Ελληνικά',\n 'he-il': 'עברית',\n 'hi-in': 'हिंदी',\n 'hu-hu': 'Magyar',\n 'is-is': 'Íslenska',\n 'id-id': 'Bahasa Indonesia',\n 'it-it': 'Italiano',\n 'ja-jp': '日本語',\n 'kk-kz': 'Қазақ',\n 'ko-kr': '한국어',\n 'lv-lv': 'Latviešu',\n 'lt-lt': 'Lietuvių',\n 'ms-my': 'Bahasa Melayu (Asia Tenggara)‎',\n 'nb-no': 'Norsk (bokmål)',\n 'nn-no': 'Norsk (nynorsk)',\n 'fa-ir': 'فارسی',\n 'pl-pl': 'Polski',\n 'pt-br': 'Português (Brasil)‎',\n 'pt-pt': 'Português (Portugal)‎',\n 'ro-ro': 'Română',\n 'ru-ru': 'Русский',\n 'sr-latn-rs': 'Srpski',\n 'sk-sk': 'Slovenčina',\n 'sl-si': 'Slovenski',\n 'es-ar': 'Español',\n 'es-cl': 'Español',\n 'es-co': 'Español',\n 'es-cr': 'Español',\n 'es-do': 'Español',\n 'es-ec': 'Español',\n 'es-us': 'Español',\n 'es-gt': 'Español',\n 'es-hn': 'Español',\n 'es-xl': 'Español',\n 'es-mx': 'Español',\n 'es-ni': 'Español',\n 'es-pa': 'Español',\n 'es-py': 'Español',\n 'es-pe': 'Español',\n 'es-pr': 'Español',\n 'es-es': 'Español',\n 'es-uy': 'Español',\n 'es-ve': 'Español',\n 'sv-se': 'Svenska',\n 'tl-ph': 'Tagalog',\n 'th-th': 'ไทย',\n 'tr-tr': 'Türkçe',\n 'uk-ua': 'Українська',\n 'ur-pk': 'اردو',\n 'vi-vn': 'Tiếng Việt'\n};\n\n/**\n * @name - ccLanguageCodes\n * @description - The 2 character language codes for use with the lang attribute .\n * @constant\n * @type {IDictionaryStringString}\n */\nexport const ccLanguageCodes: IDictionaryStringString = {\n 'ar-ab': 'ar',\n 'ar-xm': 'ar',\n 'ar-ma': 'ar',\n 'ar-sa': 'ar',\n 'eu-es': 'eu',\n 'bg-bg': 'bg',\n 'ca-es': 'ca',\n 'zh-cn': 'zh',\n 'zh-hk': 'zh',\n 'zh-tw': 'zh',\n 'hr-hr': 'hr',\n 'cs-cz': 'cs',\n 'da-dk': 'da',\n 'nl-be': 'nl',\n 'nl-nl': 'nl',\n 'en-ab': 'en',\n 'en-aa': 'en',\n 'en-au': 'en',\n 'en-ca': 'en',\n 'en-eu': 'en',\n 'en-hk': 'en',\n 'en-in': 'en',\n 'en-id': 'en',\n 'en-ie': 'en',\n 'en-jm': 'en',\n 'en-my': 'en',\n 'en-nz': 'en',\n 'en-pk': 'en',\n 'en-ph': 'en',\n 'en-sg': 'en',\n 'en-za': 'en',\n 'en-tt': 'en',\n 'en-gb': 'en',\n 'en-us': 'en',\n 'et-ee': 'et',\n 'fi-fi': 'fi',\n 'fr-ab': 'fr',\n 'fr-be': 'fr',\n 'fr-ca': 'fr',\n 'fr-fr': 'fr',\n 'fr-xf': 'fr',\n 'fr-ch': 'fr',\n 'gl-es': 'gl',\n 'de-de': 'de',\n 'de-at': 'de',\n 'de-ch': 'de',\n 'el-gr': 'el',\n 'he-il': 'he',\n 'hi-in': 'hi',\n 'hu-hu': 'hu',\n 'is-is': 'is',\n 'id-id': 'id',\n 'it-it': 'it',\n 'ja-jp': 'ja',\n 'kk-kz': 'kk',\n 'ko-kr': 'ko',\n 'lv-lv': 'lv',\n 'lt-lt': 'lt',\n 'ms-my': 'ms‎',\n 'nb-no': 'nb',\n 'nn-no': 'nn',\n 'fa-ir': 'fa',\n 'pl-pl': 'pl',\n 'pt-br': 'pt‎',\n 'pt-pt': 'pt‎',\n 'ro-ro': 'ro',\n 'ru-ru': 'ru',\n 'sr-latn-rs': 'sr',\n 'sk-sk': 'sk',\n 'sl-si': 'sl',\n 'es-ar': 'es',\n 'es-cl': 'es',\n 'es-co': 'es',\n 'es-cr': 'es',\n 'es-do': 'es',\n 'es-ec': 'es',\n 'es-us': 'es',\n 'es-gt': 'es',\n 'es-hn': 'es',\n 'es-xl': 'es',\n 'es-mx': 'es',\n 'es-ni': 'es',\n 'es-pa': 'es',\n 'es-py': 'es',\n 'es-pe': 'es',\n 'es-pr': 'es',\n 'es-es': 'es',\n 'es-uy': 'es',\n 'es-ve': 'es',\n 'sv-se': 'sv',\n 'tl-ph': 'tl',\n 'th-th': 'th',\n 'tr-tr': 'tr',\n 'uk-ua': 'uk',\n 'ur-pk': 'ur',\n 'vi-vn': 'vi'\n};\n\n/**\n * @name - playerLocKeys\n * @description - Key names to get localized values.\n * @constant\n */\nexport const PlayerLocKeys = {\n audio_tracks: 'audio_tracks',\n closecaption_off: 'closecaption_off',\n audio_tracks_default: 'audio_tracks_default',\n geolocation_error: 'geolocation_error',\n media_err_aborted: 'media_err_aborted',\n media_err_decode: 'media_err_decode',\n media_err_network: 'media_err_network',\n media_err_src_not_supported: 'media_err_src_not_supported',\n media_err_unknown_error: 'media_err_unknown_error',\n media_err_amp_encrypt: 'media_err_amp_encrypt',\n media_err_amp_player_mismatch: 'media_err_amp_player_mismatch',\n browserunsupported: 'browserunsupported',\n browserunsupported_download: 'browserunsupported_download',\n expand: 'expand',\n mute: 'mute',\n nullvideoerror: 'nullvideoerror',\n pause: 'pause',\n play: 'play',\n play_video: 'play_video',\n playing: 'playing',\n paused: 'paused',\n play_pause_button_tooltip: 'play_pause_button_tooltip',\n live_caption: 'live_caption',\n live_label: 'live_label',\n playbackerror: 'playbackerror',\n standarderror: 'standarderror',\n time: 'time',\n more_caption: 'more_caption',\n data_error: 'data_error',\n seek: 'seek',\n unexpand: 'unexpand',\n unmute: 'unmute',\n volume: 'volume',\n quality: 'quality',\n quality_hd: 'quality_hd',\n quality_hq: 'quality_hq',\n quality_lo: 'quality_lo',\n quality_sd: 'quality_sd',\n quality_auto: 'quality_auto',\n cc_customize: 'cc_customize',\n cc_text_font: 'cc_text_font',\n cc_text_color: 'cc_text_color',\n cc_color_black: 'cc_color_black',\n cc_color_blue: 'cc_color_blue',\n cc_color_cyan: 'cc_color_cyan',\n cc_color_green: 'cc_color_green',\n cc_color_grey: 'cc_color_grey',\n cc_color_magenta: 'cc_color_magenta',\n cc_color_red: 'cc_color_red',\n cc_color_white: 'cc_color_white',\n cc_color_yellow: 'cc_color_yellow',\n cc_font_name_casual: 'cc_font_name_casual',\n cc_font_name_cursive: 'cc_font_name_cursive',\n cc_font_name_monospacedsansserif: 'cc_font_name_monospacedsansserif',\n cc_font_name_proportionalsansserif: 'cc_font_name_proportionalsansserif',\n cc_font_name_monospacedserif: 'cc_font_name_monospacedserif',\n cc_font_name_proportionalserif: 'cc_font_name_proportionalserif',\n cc_font_name_smallcapitals: 'cc_font_name_smallcapitals',\n cc_text_size: 'cc_text_size',\n cc_text_size_default: 'cc_text_size_default',\n cc_text_size_extralarge: 'cc_text_size_extralarge',\n cc_text_size_large: 'cc_text_size_large',\n cc_text_size_maximum: 'cc_text_size_maximum',\n cc_text_size_small: 'cc_text_size_small',\n cc_appearance: 'cc_appearance',\n cc_preset1: 'cc_preset1',\n cc_preset2: 'cc_preset2',\n cc_preset3: 'cc_preset3',\n cc_preset4: 'cc_preset4',\n cc_preset5: 'cc_preset5',\n cc_presettings: 'cc_presettings',\n cc_text_background_color: 'cc_text_background_color',\n cc_text_background_opacity: 'cc_text_background_opacity',\n cc_text_opacity: 'cc_text_opacity',\n cc_percent_0: 'cc_percent_0',\n cc_percent_100: 'cc_percent_100',\n cc_percent_25: 'cc_percent_25',\n cc_percent_50: 'cc_percent_50',\n cc_percent_75: 'cc_percent_75',\n cc_text_edge_color: 'cc_text_edge_color',\n cc_text_edge_style: 'cc_text_edge_style',\n cc_text_edge_style_depressed: 'cc_text_edge_style_depressed',\n cc_text_edge_style_dropshadow: 'cc_text_edge_style_dropshadow',\n cc_text_edge_style_none: 'cc_text_edge_style_none',\n cc_text_edge_style_raised: 'cc_text_edge_style_raised',\n cc_text_edge_style_uniform: 'cc_text_edge_style_uniform',\n cc_window_color: 'cc_window_color',\n cc_window_opacity: 'cc_window_opacity',\n cc_reset: 'cc_reset',\n closecaption: 'closecaption',\n close_text: 'close_text',\n playbackspeed: 'playbackspeed',\n playbackspeed_normal: 'playbackspeed_normal',\n sharing_label: 'sharing_label',\n sharing_facebook: 'sharing_facebook',\n sharing_twitter: 'sharing_twitter',\n sharing_linkedin: 'sharing_linkedin',\n sharing_skype: 'sharing_skype',\n sharing_mail: 'sharing_mail',\n sharing_copy: 'sharing_copy',\n loading_value_text: 'loading_value_text',\n loading_aria_label: 'loading_aria_label',\n descriptive_audio: 'descriptive_audio',\n unknown_language: 'unknown_language',\n download_label: 'download_label',\n download_transcript: 'download_transcript',\n download_audio: 'download_audio',\n download_video: 'download_video',\n download_videoWithCC: 'download_videoWithCC',\n agegate_day: 'agegate_day',\n agegate_month: 'agegate_month',\n agegate_year: 'agegate_year',\n agegate_enterdate: 'agegate_enterdate',\n agegate_enterdate_arialabel: 'agegate_enterdate_arialabel',\n agegate_fail: 'agegate_fail',\n agegate_verifyyourage: 'agegate_verifyyourage',\n agegate_submit: 'agegate_submit',\n agegate_dateorder: 'agegate_dateorder',\n previous_menu_aria_label: 'previous_menu_aria_label',\n reactive_menu_aria_label: 'reactive_menu_aria_label',\n reactive_menu_aria_label_closedcaption: 'reactive_menu_aria_label_closedcaption',\n interactivity_show: 'interactivity_show',\n interactivity_hide: 'interactivity_hide'\n};\n\n/**\n * Localization Constants.\n */\nexport const LocalizationConstants = {\n playVideoAriaLabel: 'play video',\n playAriaLabel: 'play',\n pauseAriaLabel: 'pause',\n closeAriaLabel: 'close',\n optionAriaLabel: 'More options',\n muteAriaLabel: 'mute',\n unMuteAriaLabel: 'unmute',\n fullScreenAriaLabel: 'full screen',\n exitFullScreenAriaLabel: 'exit full screen',\n playingAriaLabel: 'paying',\n pausedAriaLabel: 'paused',\n seekBarLabel: 'Seek bar',\n sliderThumbLabel: 'Slider thumb',\n volumeThumbLabel: 'Volume thumb',\n videoTimeDurationLabel: 'Video time duration',\n closedCaptionLabel: 'Closed caption',\n audio_tracks: 'Audio Tracks',\n descriptive_audio: 'Audio descriptions',\n closecaption_off: 'Off',\n audio_tracks_default: 'Default Track',\n cc_customize: 'Customize',\n cc_text_font: 'Font',\n cc_text_color: 'Text color',\n cc_color_black: 'Black',\n cc_color_blue: 'Blue',\n cc_color_cyan: 'Cyan',\n cc_color_green: 'Green',\n cc_color_grey: 'Grey',\n cc_color_magenta: 'Magenta',\n cc_color_red: 'Red',\n cc_color_white: 'White',\n cc_color_yellow: 'Yellow',\n cc_font_name_casual: 'Casual',\n cc_font_name_cursive: 'Cursive',\n cc_font_name_monospacedsansserif: 'Monospaced Sans Serif',\n cc_font_name_monospacedserif: 'Monospaced Serif',\n cc_font_name_proportionalserif: 'Proportional Serif',\n cc_font_name_proportionalsansserif: 'Proportional Sans Serif',\n cc_font_name_smallcapitals: 'Small Capitals',\n cc_text_size: 'Text size',\n cc_text_size_default: 'Default',\n cc_text_size_extralarge: 'Extra Large',\n cc_text_size_large: 'Large',\n cc_text_size_maximum: 'Maximum',\n cc_text_size_small: 'Small',\n cc_appearance: 'Appearance',\n cc_preset1: 'Preset 1 ',\n cc_preset2: 'Preset 2',\n cc_preset3: 'Preset 3',\n cc_preset4: 'Preset 4',\n cc_preset5: 'Preset 5',\n cc_presettings: 'Close captions appearance {0}: ({1}:{2}, {3}:{4})',\n cc_text_background_color: 'Background color',\n cc_text_background_opacity: 'Background opacity',\n cc_text_opacity: 'Text opacity',\n cc_percent_0: '0%',\n cc_percent_100: '100%',\n cc_percent_25: '25%',\n cc_percent_50: '50%',\n cc_percent_75: '75%',\n cc_text_edge_color: 'Text edge color',\n cc_text_edge_style: 'Text edge style',\n cc_text_edge_style_depressed: 'Depressed',\n cc_text_edge_style_dropshadow: 'Drop shadow',\n cc_text_edge_style_none: 'No edge',\n cc_text_edge_style_raised: 'Raised',\n cc_text_edge_style_uniform: 'Uniform',\n cc_window_color: 'Window color',\n cc_window_opacity: 'Window opacity',\n cc_reset: 'Reset'\n};\n\n/**\n *\n * Closed Caption helper class.\n *\n */\nexport default class LocalizationHelper {\n private readonly playerResources: IPlayerResources;\n\n public constructor(props: IPlayerResources) {\n this.playerResources = props;\n }\n\n /**\n * Gets the localized value for given key.\n * @param key - The key to look for.\n * @returns The localization string.\n */\n public getLocalizedValue(key: string): string {\n return this.playerResources[key] || LocalizationConstants[key] || '';\n }\n\n /**\n * Converts from a locale ID to a 2 character language code.\n * @public\n * @param locale - Locale ID string.\n * @returns The localization string.\n */\n public getLanguageCodeFromLocale(locale: string): string {\n return ccLanguageCodes[locale] || '';\n }\n\n /**\n * Converts from language ID or locale name to a localized language name.\n * @public\n * @param locale - Language ID string or locale name string.\n * @returns Language Name from locale.\n */\n public getLanguageNameFromLocale(locale: string): string {\n return ccCultureLocStrings[locale] || this.getLocalizedValue(PlayerLocKeys.unknown_language);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n closedCaptionsPresetMap,\n closedCaptionsSettingsMap,\n closedCaptionsSettingsOptions,\n videoClosedCaptionsConstant\n} from '../closed-captions';\nimport { ClosedCaptionTypes, ICurrentClosedCaptionsSettings, IPlayerMenu, IPlayerMenuItem, IVideoMetadata, MenuCategories } from '../data';\nimport { format } from '../utilities';\nimport LocalizationHelper, { ccCultureLocStrings, PlayerLocKeys } from './localization-helper';\nimport PlayerHelper from './player-helper';\n\n/**\n *\n * Closed Caption helper class.\n *\n */\nexport default class ClosedCaptionHelper {\n private readonly playerMetaData: IVideoMetadata;\n\n private readonly playerHelper: PlayerHelper;\n\n private readonly localizationHelper: LocalizationHelper;\n\n public constructor(props: IVideoMetadata, playerHelper: PlayerHelper, localizationHelper: LocalizationHelper) {\n this.playerMetaData = props;\n this.playerHelper = playerHelper;\n this.localizationHelper = localizationHelper;\n }\n\n public checkClosedCaptionsFiles(): boolean {\n if (this.playerMetaData.ccFiles && this.playerMetaData.ccFiles.length > 0) {\n return true;\n }\n return false;\n }\n\n public getClosedCaptionMenu(): IPlayerMenu | null {\n if (this.playerMetaData.ccFiles && this.playerMetaData.ccFiles.length > 0) {\n const ccFiles = this.playerMetaData.ccFiles;\n\n const ccMenuItems: IPlayerMenuItem[] = [];\n\n for (const ccFile of ccFiles) {\n // If ccType is not provided we default to TTML\n if (!ccFile.ccType || ccFile.ccType === ClosedCaptionTypes.TTML) {\n const lang = this.localizationHelper.getLanguageCodeFromLocale(ccFile.locale.toLowerCase());\n\n const ccMenuItem: IPlayerMenuItem = {\n id: this.playerHelper.addIdPrefix(ccFile.locale),\n label: ccCultureLocStrings[ccFile.locale],\n language: lang,\n data: ccFile.locale,\n selected: false,\n selectable: true,\n persistOnClick: true,\n ariaLabel: `${ccCultureLocStrings[ccFile.locale]} ${this.localizationHelper.getLocalizedValue(\n PlayerLocKeys.closecaption\n )}`\n };\n ccMenuItems.push(ccMenuItem);\n }\n }\n\n ccMenuItems.push({\n id: this.playerHelper.addIdPrefix('appearance'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n selected: false,\n selectable: false,\n subMenu: this._getClosedCaptionsSettingsMenu()\n });\n\n // Add 'off' option to the top of the list\n ccMenuItems.unshift({\n id: this.playerHelper.addIdPrefix('off'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption_off),\n selected: false,\n data: 'off',\n selectable: true,\n persistOnClick: true,\n ariaLabel: `${this.localizationHelper.getLocalizedValue(\n PlayerLocKeys.closecaption_off\n )} ${this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption)}`\n });\n\n return {\n category: MenuCategories.ClosedCaption,\n id: this.playerHelper.addIdPrefix(MenuCategories.ClosedCaption),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.closecaption),\n items: ccMenuItems\n };\n }\n return null;\n }\n\n public getUpdatedClosedCaptionSetting(\n currentClosedCaptionsSetting: ICurrentClosedCaptionsSettings,\n settingKey: string,\n optionKey: string\n ): ICurrentClosedCaptionsSettings {\n if (settingKey === videoClosedCaptionsConstant.presetKey) {\n const presetValue = closedCaptionsPresetMap[optionKey];\n\n return {\n window_color: currentClosedCaptionsSetting.window_color,\n window_opacity: currentClosedCaptionsSetting.window_opacity,\n text_background_color: presetValue.text_background_color,\n text_background_opacity: presetValue.text_background_opacity,\n text_color: presetValue.text_color,\n text_edge_style: presetValue.text_edge_style,\n text_font: presetValue.text_font,\n text_opacity: presetValue.text_opacity,\n text_size: presetValue.text_size,\n preset: optionKey\n };\n }\n if (this._getOptionValue(settingKey, optionKey)) {\n currentClosedCaptionsSetting[videoClosedCaptionsConstant.presetKey] = 'none';\n currentClosedCaptionsSetting[settingKey] = optionKey;\n return currentClosedCaptionsSetting;\n }\n return currentClosedCaptionsSetting;\n }\n\n /**\n * Gets the value of closed captions URL from the locale.\n * @param locale - Locale.\n * @returns Returns the closed caption URL.\n */\n public getClosedCaptionURLFromLocale(locale: string): string {\n let url: string = '';\n const ccFiles = this.playerMetaData.ccFiles!;\n for (const ccFile of ccFiles) {\n if (ccFile.locale === locale) {\n url = ccFile.url;\n }\n }\n return url;\n }\n\n /**\n * Gets the value of closed captions settings option.\n * @private\n * @param settingKey - The closed ceptions settings key.\n * @param optionKey - The closed captions option key.\n * @returns - The option value.\n */\n private _getOptionValue(settingKey: string, optionKey: string): string {\n const setting = closedCaptionsSettingsMap[settingKey];\n if (setting) {\n const option = closedCaptionsSettingsOptions[setting.option];\n return option && option.map[optionKey];\n }\n return '';\n }\n\n /**\n * Gets the closed captions settings menu to be added to options menu.\n * @returns - The player menu.\n */\n private _getClosedCaptionsSettingsMenu(): IPlayerMenu {\n // Const currentSettings = currentClosedCaptionsSetting;\n\n // create customize settings menu\n const settingsMenuItems: IPlayerMenuItem[] = [];\n\n for (const settingKey of Object.keys(closedCaptionsSettingsMap)) {\n const setting = closedCaptionsSettingsMap[settingKey];\n\n const option = closedCaptionsSettingsOptions[setting.option];\n const optionMenuItem: IPlayerMenuItem[] = [];\n\n // eslint-disable-next-line guard-for-in\n for (const optionKey in option.map) {\n optionMenuItem.push({\n id: this._getCCMenuItemId(settingKey, optionKey),\n label: this.localizationHelper.getLocalizedValue(`${option.pre}${optionKey}`),\n selectable: true,\n selected: false,\n persistOnClick: true,\n data: `${settingKey}:${optionKey}`\n });\n }\n\n // Add back button\n optionMenuItem.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`),\n ariaLabel: `${settingKey} - go back to previous menu`,\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n\n settingsMenuItems.push({\n id: this.playerHelper.addIdPrefix(`${settingKey}_item`),\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`),\n selectable: false,\n subMenu: {\n id: this._getCCSettingsMenuId(settingKey),\n category: MenuCategories.ClosedCaptionSettings,\n items: optionMenuItem,\n label: this.localizationHelper.getLocalizedValue(`cc_${settingKey}`)\n }\n });\n }\n\n settingsMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n ariaLabel: 'Customize - go back to previous menu',\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n\n const settingsMenu: IPlayerMenu = {\n id: this.playerHelper.addIdPrefix(MenuCategories.ClosedCaptionSettings),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n category: MenuCategories.ClosedCaptionSettings,\n items: settingsMenuItems\n };\n\n // Create preset items menu\n const presetItems: IPlayerMenuItem[] = [];\n\n for (const preset of Object.keys(closedCaptionsPresetMap)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const presetSetting: any = closedCaptionsPresetMap[preset];\n const font: string = presetSetting.text_font;\n const color: string = presetSetting.text_color;\n\n const ariaLabelValue = format(\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_presettings),\n '',\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_text_font),\n this.localizationHelper.getLocalizedValue(`cc_font_name_${font}`),\n this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_text_color),\n this.localizationHelper.getLocalizedValue(`cc_color_${color}`)\n );\n\n presetItems.push({\n id: this._getCCMenuItemId(videoClosedCaptionsConstant.presetKey, preset),\n label: this.localizationHelper.getLocalizedValue(`cc_${preset}`),\n data: `preset:${preset}`,\n selectable: true,\n selected: false,\n persistOnClick: true,\n ariaLabel: ariaLabelValue,\n hasMouseHoverEvents: true\n });\n }\n\n presetItems.push({\n id: this.playerHelper.addIdPrefix('cc-customize'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_customize),\n subMenu: settingsMenu,\n hasMouseHoverEvents: true\n });\n\n presetItems.push({\n id: 'reset',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_reset),\n data: 'reset',\n persistOnClick: true,\n hasMouseHoverEvents: true\n });\n\n presetItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n ariaLabel: 'Appreance - go back to previous menu',\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true,\n hasMouseHoverEvents: true\n });\n\n return {\n id: this._getCCSettingsMenuId(videoClosedCaptionsConstant.presetKey),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.cc_appearance),\n category: MenuCategories.ClosedCaptionSettings,\n items: presetItems\n };\n }\n\n /**\n * Gets the close captions setting menu item id.\n * @param settingId - The setting key.\n * @param optionId - The option key.\n * @returns - Menu Id.\n */\n private _getCCMenuItemId(settingId: string, optionId: string): string {\n return this.playerHelper.addIdPrefix(`cc-${settingId}-${optionId}`);\n }\n\n /**\n * Gets the close captions setting menu id.\n * @param settingId - The setting key.\n * @returns Setting menu Id.\n */\n private _getCCSettingsMenuId(settingId: string): string {\n return this.playerHelper.addIdPrefix(`cc-${settingId}`);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ClosedCaptionTypes,\n IAudioTrack,\n IBinaryReference,\n ICCFile,\n IPlayerMenu,\n IPlayerMenuItem,\n IPlayerProps,\n IVideoFile,\n IVideoMetadata,\n MediaQuality,\n MediaTypes,\n MenuCategories,\n PlayerConstants\n} from '../data';\nimport { startsWith } from '../utilities';\nimport LocalizationHelper, { PlayerLocKeys } from './localization-helper';\n\n/**\n *\n * Player helper class.\n *\n */\nexport default class PlayerHelper {\n private playerProps: IPlayerProps;\n\n private readonly localizationHelper: LocalizationHelper;\n\n private readonly _isMobileDevice?: boolean;\n\n public constructor(props: IPlayerProps, localizationHelper: LocalizationHelper, isMobileDevice?: boolean) {\n this.playerProps = props;\n this.localizationHelper = localizationHelper;\n this._isMobileDevice = isMobileDevice;\n }\n\n public getMetadata(): IVideoMetadata {\n this._mapVideoFiles();\n this._setCCFiles();\n this._setAudioTracks();\n return this.playerProps.playerData.metaData;\n }\n\n public updatePlayerProps(props: IPlayerProps): void {\n this.playerProps = props;\n this._clearVideoPlayerMetaData();\n }\n\n public getOptionMenu(): IPlayerMenu | null {\n const audioTracks = this._getAudioTracksMenu();\n if (audioTracks === null) {\n return null;\n }\n const optionMenuItems: IPlayerMenuItem[] = [];\n\n optionMenuItems.push({\n id: this.addIdPrefix('audioTracks'),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n selected: false,\n selectable: false,\n subMenu: audioTracks\n });\n\n return {\n category: MenuCategories.Options,\n id: this.addIdPrefix(MenuCategories.Options),\n label: 'Options',\n items: optionMenuItems\n };\n }\n\n /**\n * Get Poster Frame URL.\n * @returns Returns the poster image URL.\n */\n public getPosterFrameUrl(): string {\n let posterFrameUrl = '';\n if (!this.playerProps.playerData.options.hidePosterFrame && this.playerProps.playerData.metaData.posterframeUrl) {\n posterFrameUrl = this._removeProtocolFromUrl(this.playerProps.playerData.metaData.posterframeUrl);\n if (this.playerProps.playerData.options.thumbnailFullWidth) {\n if (posterFrameUrl.indexOf('?') > 0) {\n posterFrameUrl = `${posterFrameUrl}${'&w='}${PlayerConstants.thumbnailFullWidth}${'&h='}${\n PlayerConstants.thumbnailFullHeight\n }`;\n } else {\n posterFrameUrl = `${posterFrameUrl}${'?w='}${PlayerConstants.thumbnailFullWidth}${'&h='}${\n PlayerConstants.thumbnailFullHeight\n }`;\n }\n }\n }\n return posterFrameUrl;\n }\n\n public getVideoFileToPlay(): IVideoFile {\n let videoFile: IVideoFile = {\n url: '',\n mediaType: MediaTypes.MP4,\n quality: MediaQuality.LO\n };\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n\n const mpVideoFiles = this._getVideoFileByType(MediaTypes.MP4, videoMetaData.videoFiles!);\n\n if (this._isMobileDevice && this.playerProps.playerData.options.mobileVideoQuality) {\n const mobileVideoFile = this._getVideoFileByQuality(\n this.playerProps.playerData.options.mobileVideoQuality.toUpperCase() as MediaQuality,\n mpVideoFiles\n );\n if (mobileVideoFile) {\n return mobileVideoFile;\n }\n }\n\n const hdVideoFile = this._getVideoFileByQuality(MediaQuality.HDX, mpVideoFiles);\n if (hdVideoFile !== null) {\n videoFile = hdVideoFile;\n } else {\n const hqVideoFile = this._getVideoFileByQuality(MediaQuality.HQ, mpVideoFiles);\n if (hqVideoFile !== null) {\n videoFile = hqVideoFile;\n } else {\n const sdVideoFile = this._getVideoFileByQuality(MediaQuality.SD, mpVideoFiles);\n if (sdVideoFile !== null) {\n videoFile = sdVideoFile;\n } else {\n const loVideoFile = this._getVideoFileByQuality(MediaQuality.LO, mpVideoFiles);\n if (loVideoFile !== null) {\n videoFile = loVideoFile;\n }\n }\n }\n }\n return videoFile;\n }\n\n /**\n * Callback function when error happen.\n * @param errorType - Error Type.\n * @param message - Error message.\n */\n public onErrorCallback = (errorType: string, message: string): void => {\n console.log(`ErrorType : ${errorType}, Message : ${message}`);\n };\n\n public isEmptyOrUndefined(value?: string): boolean {\n if (value === undefined || value === '') {\n return true;\n }\n return false;\n }\n\n /**\n * Adds the id prefix to form a child id.\n * @param childId - The child id to prefix.\n * @returns - The prefixed id or the original id if no prefix is built.\n */\n public addIdPrefix(childId: string): string {\n const prefix = this.isEmptyOrUndefined(this.playerProps.playerId) ? null : `${this.playerProps.playerId}-`;\n\n return prefix && !startsWith(childId, prefix, false) ? prefix + childId : childId;\n }\n\n /**\n * Removes the id prefix from a child id.\n * @param childId - The child id to prefix.\n * @returns - The un-prefixed id or the original id if no prefix was found.\n */\n public removeIdPrefix(childId: string): string {\n const prefix = this.isEmptyOrUndefined(this.playerProps.playerId) ? null : `${this.playerProps.playerId}-`;\n\n return prefix && startsWith(childId, prefix, false) ? childId.substring(prefix.length) : childId;\n }\n\n private _getAudioTracksMenu(): IPlayerMenu | null {\n const audioTracksMenuItems: IPlayerMenuItem[] = [];\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n if (videoMetaData.audioTracks !== undefined && videoMetaData.audioTracks.length > 0) {\n // Check if there are multiple \"Descriptive Audio\" tracks, in which case we will want to show language\n let descriptiveAudioTrackCount = 0;\n for (const track of videoMetaData.audioTracks) {\n if (track.isDescriptiveAudio) {\n descriptiveAudioTrackCount++;\n }\n }\n\n let trackIndex: number = 0;\n for (const audioTrack of videoMetaData.audioTracks) {\n let label: string;\n let languageCode: string = '';\n if (audioTrack.isDescriptiveAudio) {\n // Descriptive audio labels look like:\n // \"Descriptive audio\" -- when only one descriptive audio track exists\n // or\n // \"Descriptive audio - English\" -- if there is more than one descriptive audio track\n const descriptiveAudioLabel = this.localizationHelper.getLocalizedValue(PlayerLocKeys.descriptive_audio);\n if (descriptiveAudioTrackCount > 1) {\n const language = this.localizationHelper.getLanguageNameFromLocale(audioTrack.languageCode);\n label = `${descriptiveAudioLabel} - ${language}`;\n } else {\n label = descriptiveAudioLabel;\n }\n languageCode = `daudio-${audioTrack.languageCode.toLowerCase()}`;\n } else {\n // Regular tracks display language of the stream only.\n label = this.localizationHelper.getLanguageNameFromLocale(audioTrack.languageCode);\n languageCode = audioTrack.languageCode.toLowerCase();\n }\n\n const audioMenuItem: IPlayerMenuItem = {\n label,\n language: languageCode,\n data: audioTrack.url,\n id: this.addIdPrefix(`audio-${trackIndex}`),\n selected: false,\n selectable: true,\n persistOnClick: true\n };\n\n audioTracksMenuItems.push(audioMenuItem);\n trackIndex++;\n }\n\n audioTracksMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks_default),\n ariaLabel: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks_default),\n language: 'default',\n data: 'default',\n selectable: true,\n selected: false,\n persistOnClick: true\n });\n\n audioTracksMenuItems.unshift({\n id: '',\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n ariaLabel: `${this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks)} - go back to previous menu`,\n selectable: false,\n selected: false,\n persistOnClick: false,\n isBackButton: true\n });\n return {\n category: MenuCategories.AudioTracks,\n id: this.addIdPrefix(MenuCategories.AudioTracks),\n label: this.localizationHelper.getLocalizedValue(PlayerLocKeys.audio_tracks),\n items: audioTracksMenuItems\n };\n }\n return null;\n }\n\n private _clearVideoPlayerMetaData(): void {\n this.playerProps.playerData.metaData.videoFiles = [];\n this.playerProps.playerData.metaData.audioTracks = [];\n this.playerProps.playerData.metaData.ccFiles = [];\n }\n\n private _setCCFiles(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n const ccFiles: ICCFile[] = [];\n if (!(videoMetaData.ccFiles && videoMetaData.ccFiles.length > 0)) {\n if (videoMetaData.videoBinaryReferences && videoMetaData.videoBinaryReferences.length > 0) {\n for (const binaryRef of videoMetaData.videoBinaryReferences) {\n // Skip all other format except ttml/closedcaption\n if (\n (binaryRef.extension && binaryRef.extension === 'ttml') ||\n binaryRef.$type === 'videoClosedCaptionBinaryReference'\n ) {\n const ccFile: ICCFile = {\n ccType: ClosedCaptionTypes.TTML,\n locale: binaryRef.locale!,\n url: binaryRef.sourceHref!\n };\n ccFiles.push(ccFile);\n }\n }\n this.playerProps.playerData.metaData.ccFiles = ccFiles;\n }\n }\n }\n\n private _setAudioTracks(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n const audioTracks: IAudioTrack[] = [];\n if (videoMetaData.videoBinaryReferences && videoMetaData.videoBinaryReferences.length > 0) {\n for (const binaryRef of videoMetaData.videoBinaryReferences) {\n if (binaryRef.$type && binaryRef.$type === 'audioBinaryReference') {\n const audioTrack: IAudioTrack = {\n isDescriptiveAudio: binaryRef.audioType === 'descriptiveAudio',\n bitrate: binaryRef.bitrate!,\n languageCode: binaryRef.locale === undefined ? '' : binaryRef.locale,\n name: binaryRef.alias!,\n url: binaryRef.clientHref!\n };\n audioTracks.push(audioTrack);\n }\n }\n }\n this.playerProps.playerData.metaData.audioTracks = audioTracks;\n }\n\n private _mapVideoFiles(): void {\n const videoMetaData: IVideoMetadata = this.playerProps.playerData.metaData;\n if (!videoMetaData.videoFiles || videoMetaData.videoFiles.length === 0) {\n const videoFiles: IVideoFile[] = [];\n const videoBinaryFiles: IBinaryReference[] = videoMetaData.videoBinaryReferences!;\n if (videoBinaryFiles && videoBinaryFiles.length > 0) {\n for (const binaryRef of videoBinaryFiles) {\n if (binaryRef.format) {\n // Skip the unsupported 1001 format\n if (binaryRef.format === '1001') {\n continue;\n }\n\n // Handle all other video/audio format\n const mediaTypeAndQuality = this._getMediaTypeAndQuality(binaryRef.format);\n let urlRef;\n if (mediaTypeAndQuality.mediaType === MediaTypes.MP4) {\n urlRef = binaryRef.clientHref;\n } else {\n urlRef = binaryRef.sourceHref;\n }\n\n if (urlRef) {\n urlRef = this._removeProtocolFromUrl(urlRef);\n }\n\n if (urlRef) {\n videoFiles.push({\n url: urlRef,\n quality: mediaTypeAndQuality.quality,\n mediaType: mediaTypeAndQuality.mediaType,\n formatCode: binaryRef.format\n });\n }\n }\n }\n }\n this.playerProps.playerData.metaData.videoFiles = videoFiles;\n }\n }\n\n /**\n * Gets video quality and media type from stream name.\n * @param format - The stream name.\n * @returns The mediaType and MediaQuality.\n */\n private _getMediaTypeAndQuality(format: string): { mediaType: MediaTypes; quality: MediaQuality } {\n let mType: MediaTypes = MediaTypes.MP4;\n let mQuality: MediaQuality = MediaQuality.SD;\n\n switch (format) {\n case '101':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.LO;\n break;\n case '102':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.SD;\n break;\n case '103':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HQ;\n break;\n case '104':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HDX;\n break;\n case '105':\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.HD;\n break;\n case '1004':\n mType = MediaTypes.SMOOTH;\n break;\n case '1006':\n mType = MediaTypes.HLS;\n break;\n case '1007':\n mType = MediaTypes.DASH;\n break;\n default:\n mType = MediaTypes.MP4;\n mQuality = MediaQuality.SD;\n }\n\n return {\n mediaType: mType,\n quality: mQuality\n };\n }\n\n /**\n * Removes protocol from url.\n * @param url - The url.\n * @returns The URL.\n */\n private _removeProtocolFromUrl(url: string): string {\n return url.replace(/(^\\w+:|^)\\/\\//, '//');\n }\n\n /**\n * Gets the video file of specified quality.\n * @param quality - The desired quality to look for.\n * @param videoFiles - The video files.\n * @returns Returns the video file.\n */\n private _getVideoFileByQuality(quality: MediaQuality, videoFiles: IVideoFile[]): IVideoFile | null {\n let videoFile = null;\n for (const file of videoFiles) {\n if (file.quality === quality) {\n videoFile = file;\n break;\n }\n }\n\n return videoFile;\n }\n\n /**\n * Gets the video file of specified type.\n * @param mediaType - The media type to look for.\n * @param videoFiles - The video files.\n * @returns Returns the video file.\n */\n private _getVideoFileByType(mediaType: MediaTypes, videoFiles: IVideoFile[]): IVideoFile[] {\n const videoFile: IVideoFile[] = [];\n for (const file of videoFiles) {\n if (file.mediaType === mediaType) {\n videoFile.push(file);\n }\n }\n return videoFile;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport React, { useEffect, useState } from 'react';\n\nexport interface IRatingComponentProps extends IComponentProps<{}> {\n readOnly: boolean;\n ariaLabel: string;\n avgRating: number;\n ratingCount?: string;\n initialRating?: number;\n hideCount?: boolean;\n shouldShowFullRatingDescription?: boolean;\n className?: string;\n ratingCountAriaLabel?: string;\n onChange?(value: number): void;\n}\nexport interface IRatingComponent extends IComponent {\n onSliderChanged(): (\n event: React.ChangeEvent,\n props: IRatingComponentProps,\n setRating: (rating: IRatingState) => void\n ) => void;\n onMouseOver(): (event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void) => void;\n onClick(): (event: React.MouseEvent, props: IRatingComponentProps, setRating: (rating: IRatingState) => void) => void;\n onMouseLeave(): (event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void) => void;\n}\n\ninterface IRatingState {\n rating: number;\n lastSelectedRating: number;\n}\n\nconst roundUpMin: number = 0.75;\nconst roundMidMin: number = 0.25;\nconst maxRating: number = 5;\n\nconst RatingComponentActions = {\n onSliderChanged(\n event: React.ChangeEvent,\n props: IRatingComponentProps,\n setRating: (rating: IRatingState) => void\n ): void {\n const value = Number.parseInt(event.target.value, 10);\n setRating({ rating: value, lastSelectedRating: value });\n\n if (props.onChange) {\n props.onChange(value);\n }\n },\n onMouseLeave(_event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void): void {\n setRating({ rating: rating.lastSelectedRating, lastSelectedRating: rating.lastSelectedRating });\n },\n onMouseOver(event: React.MouseEvent, rating: IRatingState, setRating: (rating: IRatingState) => void): void {\n setRating({ rating: getIndex(event), lastSelectedRating: rating.lastSelectedRating });\n },\n onClick(event: React.MouseEvent, props: IRatingComponentProps, setRating: (rating: IRatingState) => void): void {\n if (!props.readOnly) {\n const index = getIndex(event);\n setRating({ rating: index, lastSelectedRating: index });\n\n if (props.onChange) {\n props.onChange(index);\n }\n }\n }\n};\n\nconst Rating: React.FC = (props: IRatingComponentProps) => {\n const initialRating = props.readOnly ? props.avgRating : props.initialRating || 0;\n const [rating, setRating] = useState({ rating: initialRating, lastSelectedRating: initialRating });\n useEffect(() => {\n const newRating = props.readOnly ? props.avgRating : props.initialRating || 0;\n setRating({ rating: newRating, lastSelectedRating: newRating });\n }, [props]);\n const onChange = (event: React.ChangeEvent) => {\n RatingComponentActions.onSliderChanged(event, props, setRating);\n };\n const onMouseLeave = (event: React.MouseEvent) => {\n RatingComponentActions.onMouseLeave(event, rating, setRating);\n };\n const onMouseOver = (event: React.MouseEvent) => {\n RatingComponentActions.onMouseOver(event, rating, setRating);\n };\n const onClick = (event: React.MouseEvent) => {\n RatingComponentActions.onClick(event, props, setRating);\n };\n\n const shouldShowFullRatingDescriptionConfiguration = props.shouldShowFullRatingDescription ?? false;\n const shouldShowDescription = shouldShowFullRatingDescriptionConfiguration || props.typeName === 'reviews-list';\n\n return (\n
0 ? 'msc-no-ratings' : ''} ${props.className ? props.className : ''}`}>\n {starControl(props.readOnly, rating.rating, props.ariaLabel, props.ratingCountAriaLabel, onChange)}\n
\n {renderStars(rating.rating, props, onMouseOver, onClick)}\n
\n {props.ratingCount && (\n \n {` `}\n {shouldShowDescription ? `${props.avgRating} / 5 (${props.ratingCount})` : props.ratingCount}\n {` `}\n \n )}\n
\n );\n};\n\n// Set default props\nRating.defaultProps = {\n avgRating: 0\n} as Partial;\n\n/**\n * Rating Review ariaLabel.\n * @param readOnly - Boolean.\n * @param currentRating - Current rating number.\n * @param ariaLabel - Rating AriaLabel.\n * @param reviewCountAriaLabel - Product review count.\n * @param onChange - On Change function.\n * @returns Jsx element.\n */\nconst starControl = (\n readOnly: boolean,\n currentRating: number,\n ariaLabel: string,\n reviewCountAriaLabel: string | undefined,\n onChange: (event: React.ChangeEvent) => void\n): JSX.Element => {\n if (readOnly) {\n return
{`${ariaLabel}${reviewCountAriaLabel ? ` ${reviewCountAriaLabel}` : ''}`}
;\n }\n\n return (\n \n );\n};\n\nconst renderStars = (\n rating: number,\n props: IRatingComponentProps,\n mouseOver: (event: React.MouseEvent) => void,\n onClick: (event: React.MouseEvent) => void\n): JSX.Element[] => {\n const floor = Math.floor(rating);\n const remainder = rating - floor;\n const filled = remainder < roundUpMin ? floor : floor + 1;\n const half = roundMidMin <= remainder && remainder < roundUpMin ? filled + 1 : 0;\n const stars = [];\n\n for (let i = 1; i <= maxRating; i++) {\n const glyphClass = filled >= i ? 'msc-rating__star' : half === i ? 'msc-rating__half-star' : 'msc-rating__empty-star'!;\n stars.push(\n \n );\n }\n\n return stars;\n};\n\nconst getIndex = (event: React.MouseEvent): number => {\n const target = event.target as HTMLElement;\n return Number.parseInt(target.getAttribute('data-index')!, 10);\n};\n\n// @ts-expect-error\nexport const RatingComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'Rating',\n { component: Rating, ...RatingComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nexport interface IOrderTemplateProductsPreviewComponentProps {\n className: string;\n products: FullProduct[];\n context: ICoreContext;\n imageSettings?: IImageSettings;\n}\n\nexport const OrderTemplateProductsPreviewComponent = (props: IOrderTemplateProductsPreviewComponentProps) => {\n const { products, className, imageSettings } = props;\n\n return (\n
\n {renderOrderTemplateImages(props.context, `${className}__products`, products, imageSettings)}\n
\n );\n};\n\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: FullProduct, imageSettings?: IImageSettings) => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n
\n \n
\n );\n};\n\nconst renderOrderTemplateImages = (\n context: ICoreContext,\n className: string,\n products: FullProduct[],\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n return (\n
\n
\n
\n {products.length > 0 && renderOrderTemplateImage(context, className, products[0], imageSettings)}\n
\n
\n {products.length > 1 && renderOrderTemplateImage(context, className, products[1], imageSettings)}\n
\n
\n
\n
\n {products.length > 2 && renderOrderTemplateImage(context, className, products[2], imageSettings)}\n
\n
\n {products.length > 3 && renderOrderTemplateImage(context, className, products[3], imageSettings)}\n
\n
\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n getCatalogId,\n IComponent,\n IComponentProps,\n IGridSettings,\n IImageSettings,\n msdyn365Commerce,\n TelemetryEvent\n} from '@msdyn365-commerce/core';\nimport { getCartState, ICartActionResult, ICartState } from '@msdyn365-commerce/global-state';\nimport {\n CartLineValidationResults,\n CartsDataActions,\n format,\n ProductAvailableQuantity,\n ProductDimension,\n ProductPrice,\n ProductsDataActions,\n ProductSearchCriteria,\n ProductType,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ErrorNotification, NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions, generateProductImageUrl, ObjectExtensions, validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, IPopupProps, ITelemetryContent, Popup } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { PriceComponent } from '../price';\nimport { IItemsAddedToCartResources } from './items-added-to-cart';\nimport { ItemsAddedToCartDialogComponent } from './items-added-to-cart-dialog-component';\nimport { ItemSuccessfullyAddedToCartNotification } from './notifications/item-successfully-added-to-cart-notification';\nimport { MultiItemsSuccessfullyAddedToCartNotification } from './notifications/multi-items-successfully-added-to-cart-notification';\nimport { OrderDetailsProduct } from './product-model';\n\n/**\n * Interface for add to cart resources.\n */\nexport interface IAddToCartResources {\n goToCartText: string;\n continueShoppingText: string;\n closeNotificationLabel: string;\n headerItemOneText: string;\n headerItemFormatText: string;\n headerLinesFormatText?: string;\n headerMessageText: string;\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n addedQuantityText: string;\n buyAgainNotificationTitle?: string;\n buyAgainNotificationCloseAriaLabel?: string;\n validationErrorMessage?: string;\n oneErrorText?: string;\n multiErrorsText?: string;\n}\n\n/**\n * Interface for add to cart components props.\n */\nexport interface IAddToCartComponentProps extends IComponentProps<{ product: SimpleProduct; price?: ProductPrice } | undefined> {\n className?: string;\n addToCartText: string;\n outOfStockText?: string;\n disabled?: boolean;\n quantity?: number;\n navigationUrl?: string;\n productAvailability?: ProductAvailableQuantity;\n getSelectedProduct?: Promise;\n isNavigationToCartPageDisabled?: boolean;\n shouldSkipSiteSettings?: boolean;\n addToCartArialLabel?: string;\n products?: {\n productId: number;\n quantity: number;\n catalogId?: number;\n }[];\n orderDetailsProducts?: OrderDetailsProduct[];\n hasAvailableProducts?: boolean;\n imageSettings?: IImageSettings;\n gridSettings?: IGridSettings;\n\n isLoading?: boolean;\n isUpdatingDimension?: boolean;\n isLoadingDeliveryOptions?: boolean;\n isUpdatingDeliveryOptions?: boolean;\n isAddServiceItemToCart?: boolean;\n isAddEmailDeliveryItemToCart?: boolean;\n isPriceKeyedIn?: boolean;\n customPriceAmount?: number;\n isOrderQuantityLimitsFeatureEnabled?: boolean;\n\n dialogStrings?: IAddToCartResources;\n\n telemetryContent?: ITelemetryContent;\n\n catalogId?: number;\n\n isCustomPriceSelected?: boolean;\n maximumKeyInPrice?: number;\n minimumKeyInPrice?: number;\n defaultMaximumKeyInPrice?: number;\n defaultMinimumKeyInPrice?: number;\n isProductQuantityLoading?: boolean;\n\n onAdd?(result: ICartActionResult): void;\n onError?(result: IAddToCartFailureResult): void;\n changeUpdatingDimension?(isUpdatingDimension: boolean): void;\n changeUpdatingDeliveryOptions?(isUpdatingDeliveryOptions: boolean): void;\n}\n\n/**\n * Cart action Failure reason type.\n */\nexport declare type ICartActionFailureReason =\n | 'EMPTYINPUT'\n | 'MISSINGDIMENSION'\n | 'OUTOFSTOCK'\n | 'CARTACTIONFAILED'\n | 'INVALIDCUSTOMAMOUNT';\n\n/**\n * Interface for add to cart failure result.\n */\nexport interface IAddToCartFailureResult {\n failureReason: ICartActionFailureReason;\n\n stockLeft?: number;\n cartActionResult?: ICartActionResult;\n missingDimensions?: ProductDimension[];\n}\n\n/**\n * This setting defines the experience when a product is added to cart. Corresponds to the configuration in Fabrikam.\n */\nexport enum AddToCartBehavior {\n /**\n * Navigate to cart page.\n */\n goToCart = 'goToCart',\n\n /**\n * Show item added to cart popup.\n */\n showModal = 'showModal',\n\n /**\n * Show mini cart popup.\n */\n showMiniCart = 'showMiniCart',\n\n /**\n * Show item added to cart notification.\n */\n showNotification = 'showNotification',\n\n /**\n * Do nothing and stay on the page.\n */\n nothing = 'nothing'\n}\n\nconst zero = 0;\nconst defaultQuantity = 1;\n\n/**\n * The propagate result.\n * @param props -- The add to cart component props.\n * @param result -- The cart action result.\n */\nconst propagateResult = (props: IAddToCartComponentProps, result: ICartActionResult): void => {\n if (props.onAdd) {\n props.onAdd(result);\n }\n};\n\n/**\n * The propagate error.\n * @param props -- The add to cart component props.\n * @param result -- The add to cart failure result.\n */\nconst propagateError = (props: IAddToCartComponentProps, result: IAddToCartFailureResult): void => {\n if (props.onError) {\n props.onError(result);\n }\n};\n\n/**\n * Retrieves add to cart input from the component props.\n * @param props - Add to cart component props.\n * @returns Add to cart input.\n */\nconst getAddToCartInputFromProps = async (props: IAddToCartComponentProps) => {\n const products = props.orderDetailsProducts?.filter(product => !ObjectExtensions.isNullOrUndefined(product.simpleProduct));\n const emailDeliveryModeCode = props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode;\n const input = products?.map(product => {\n const deliveryOption = product.salesLine.DeliveryMode;\n return {\n product: product.simpleProduct!,\n count: ObjectExtensions.isNullOrUndefined(product.salesLine.Quantity) ? defaultQuantity : product.salesLine.Quantity,\n catalogId: product.salesLine.CatalogId,\n isAddEmailDeliveryItemToCart: deliveryOption && deliveryOption === emailDeliveryModeCode\n };\n });\n\n if (ArrayExtensions.hasElements(input)) {\n return input;\n }\n\n if (ArrayExtensions.hasElements(props.products)) {\n const actionContext = props.context.actionContext;\n const apiSettings = actionContext.requestContext.apiSettings;\n\n const catalogId = props.catalogId ?? getCatalogId(props.context.actionContext.requestContext);\n validateCatalogId(catalogId);\n\n const searchCriteriaInput: ProductSearchCriteria = {\n Context: {\n ChannelId: apiSettings.channelId,\n CatalogId: catalogId\n },\n IncludeAttributes: false,\n Ids: props.products.map(product => product.productId)\n };\n\n const searchResult = await ProductsDataActions.searchByCriteriaAsync({ callerContext: actionContext }, searchCriteriaInput);\n const productSearchResultsWithImages = searchResult.map(productSearchResult => {\n const newProductSearchResult = { ...productSearchResult };\n const newImageUrl = generateProductImageUrl(newProductSearchResult, apiSettings);\n\n if (newImageUrl) {\n newProductSearchResult.PrimaryImageUrl = newImageUrl;\n }\n\n return newProductSearchResult;\n });\n\n return props.products.map(item => {\n const productData = productSearchResultsWithImages.find(product => product.RecordId === item.productId);\n let simpleProduct: SimpleProduct;\n if (productData) {\n simpleProduct = {\n ...productData,\n ProductTypeValue: ProductType.Variant,\n AdjustedPrice: productData.Price,\n BasePrice: productData.BasePrice ?? productData.Price\n };\n } else {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Cast to simple product since only record id is available.\n simpleProduct = {\n RecordId: item.productId\n } as SimpleProduct;\n }\n\n return {\n product: simpleProduct,\n count: item.quantity,\n catalogId: item.catalogId\n };\n });\n }\n\n if (props.data?.product) {\n return [\n {\n product: props.data.product,\n count: props.quantity ?? defaultQuantity,\n catalogId: props.catalogId\n }\n ];\n }\n\n return [];\n};\n\n/**\n * Add one item to cart when it is not buy again.\n * @param props -- The props.\n * @param setDisabled -- The set disable call back.\n * @param openModal -- The open modal call back.\n */\nconst addOneItemToCart = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n openModal: (opened: boolean) => void\n): Promise => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n const addToCartBehavior = props.context.app.config.addToCartBehavior;\n const data = props.data;\n\n const addToCartInput = await getAddToCartInputFromProps(props);\n const product = addToCartInput[0].product;\n const quantity = addToCartInput[0].count;\n\n const cartState = await getCartState(props.context.actionContext);\n const addToCartResult = await cartState.addProductToCart({\n product,\n count: quantity,\n availableQuantity: props.productAvailability?.AvailableQuantity,\n additionalProperties: { validateQuantity: props.isOrderQuantityLimitsFeatureEnabled },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n enableStockCheck: props.context.app.config.enableStockCheck,\n isPriceKeyedIn: props.isPriceKeyedIn,\n customPrice: props.isPriceKeyedIn ? props.customPriceAmount : undefined,\n isAddEmailDeliveryItemToCart: props.isAddEmailDeliveryItemToCart,\n shouldSkipSiteSettings: props.shouldSkipSiteSettings,\n catalogId: addToCartInput[0].catalogId\n });\n\n if (addToCartResult.status === 'SUCCESS') {\n if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showModal) {\n setDisabled(false);\n openModal(true);\n } else if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showNotification) {\n setDisabled(false);\n const notification = new ItemSuccessfullyAddedToCartNotification(\n props.context,\n props.dialogStrings,\n props.imageSettings,\n props.gridSettings,\n product,\n data?.price,\n quantity,\n props.navigationUrl,\n props.telemetryContent!,\n props.id,\n props.typeName\n );\n NotificationsManager.instance().addNotification(notification);\n } else if (\n MsDyn365.isBrowser &&\n props.navigationUrl &&\n !props.isNavigationToCartPageDisabled &&\n (addToCartBehavior === undefined || addToCartBehavior === AddToCartBehavior.goToCart)\n ) {\n window.location.assign(props.navigationUrl);\n } else {\n setDisabled(false);\n }\n propagateResult(props, addToCartResult);\n } else {\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n addToCartResult.errorDetails?.LocalizedMessage ?? 'Add to cart failed',\n props.dialogStrings?.closeNotificationLabel ?? ''\n )\n );\n\n propagateError(props, { failureReason: 'CARTACTIONFAILED', cartActionResult: addToCartResult });\n setDisabled(false);\n }\n};\n\n/**\n * Callback to handle success of adding to cart.\n * @param props - Add to cart component props.\n * @param setDisabled - Callback to update disabled state of the component.\n * @param setItemsAddedToCartDialogOpen - Callback to update disabled state of the component.\n * @param setErrorMessage - Callback to update error message state of the component.\n * @param cartState - Current cart state.\n * @param addToCartInput - Input used for adding to cart.\n * @param addToCartResult - Result of adding to cart.\n */\nconst handleAddItemsToCartSuccess = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void,\n cartState: ICartState,\n addToCartInput: {\n product: SimpleProduct;\n count: number;\n }[],\n addToCartResult: ICartActionResult\n) => {\n // Validate cart for line errors.\n const validationResult: CartLineValidationResults = await CartsDataActions.validateForCheckoutAsync(\n { callerContext: props.context.actionContext, bypassCache: 'none' },\n cartState.cart.Id,\n cartState.cart.Version\n );\n const errorCount = (validationResult.ValidationFailuresByCartLines ?? []).length;\n const singleErrorCount = 1;\n const errorText = errorCount === singleErrorCount ? props.dialogStrings?.oneErrorText : props.dialogStrings?.multiErrorsText;\n const errorMessage =\n errorCount > zero ? format(props.dialogStrings?.validationErrorMessage ?? '', errorCount.toString(), errorText) : '';\n\n setErrorMessage(errorMessage);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- read config file.\n const addToCartBehavior = props.context.app.config.addToCartBehavior;\n\n if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showModal) {\n setDisabled(false);\n setItemsAddedToCartDialogOpen(true);\n } else if (props.dialogStrings && addToCartBehavior === AddToCartBehavior.showNotification) {\n setDisabled(false);\n const itemsAddedResource: IItemsAddedToCartResources = {\n viewCartButtonText: props.dialogStrings.goToCartText,\n closeButtonLabel: props.dialogStrings.closeNotificationLabel,\n itemsAddedToCartHeaderText: props.dialogStrings.headerMessageText,\n itemsAddedToCartFormatText: props.dialogStrings.headerItemFormatText,\n linesAddedToCartFormatText: props.dialogStrings.headerLinesFormatText ?? '{0}',\n itemsAddedValidationErrorMessage: errorMessage\n };\n\n const notification = new MultiItemsSuccessfullyAddedToCartNotification(\n props.context,\n itemsAddedResource,\n props.imageSettings,\n props.gridSettings,\n addToCartInput,\n props.navigationUrl,\n props.telemetryContent!,\n props.id,\n props.typeName\n );\n NotificationsManager.instance().addNotification(notification);\n } else if (\n MsDyn365.isBrowser &&\n props.navigationUrl &&\n !props.isNavigationToCartPageDisabled &&\n (addToCartBehavior === undefined || addToCartBehavior === AddToCartBehavior.goToCart)\n ) {\n window.location.assign(props.navigationUrl);\n } else {\n setDisabled(false);\n }\n propagateResult(props, addToCartResult);\n};\n\n/**\n * Add one or multi item to cart from buy again.\n * @param props -- The props.\n * @param setDisabled -- The set disable call back.\n * @param setItemsAddedToCartDialogOpen -- The open modal call back.\n * @param setErrorMessage -- The set error message call back.\n */\nconst addItemsToCart = async (\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void\n): Promise => {\n const addToCartInput = await getAddToCartInputFromProps(props);\n\n if (!ArrayExtensions.hasElements(addToCartInput)) {\n return;\n }\n\n const cartState = await getCartState(props.context.actionContext);\n const addToCartResult = await cartState.addProductsToCart(addToCartInput);\n\n if (addToCartResult.status === 'SUCCESS') {\n await handleAddItemsToCartSuccess(\n props,\n setDisabled,\n setItemsAddedToCartDialogOpen,\n setErrorMessage,\n cartState,\n addToCartInput,\n addToCartResult\n );\n } else {\n if (props.dialogStrings?.buyAgainNotificationTitle) {\n // For buy again show simple error notification.\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n props.dialogStrings.buyAgainNotificationTitle,\n props.dialogStrings.buyAgainNotificationCloseAriaLabel ?? ''\n )\n );\n } else {\n NotificationsManager.instance().addNotification(\n new ErrorNotification(\n addToCartResult.errorDetails?.LocalizedMessage ?? 'Add to cart failed',\n props.dialogStrings?.closeNotificationLabel ?? ''\n )\n );\n }\n\n propagateError(props, { failureReason: 'CARTACTIONFAILED', cartActionResult: addToCartResult });\n setDisabled(false);\n }\n};\n\n/**\n * Interface for add to cart component.\n */\nexport interface IAddtoCartComponent extends IComponent {\n onClick(): (event: React.MouseEvent, props: IAddToCartComponentProps) => void;\n}\n\n/**\n * On click function.\n * @param _event - The mouse event.\n * @param props - The props.\n * @param setDisabled - Flag to define whether the element is disabled.\n * @param openModal - Flag to specify if it should open in a modal window.\n * @param setItemsAddedToCartDialogOpen - Sets items added to cart while dialog is open.\n * @param setErrorMessage - Error message.\n */\nconst onClick = async (\n _event: React.MouseEvent,\n props: IAddToCartComponentProps,\n setDisabled: (disabled: boolean) => void,\n openModal: (opened: boolean) => void,\n setItemsAddedToCartDialogOpen: (opened: boolean) => void,\n setErrorMessage: (message: string) => void\n): Promise => {\n if (!ArrayExtensions.hasElements(props.products)) {\n const cartError = addToCartError(props);\n\n if (cartError) {\n propagateError(props, cartError);\n return;\n }\n\n setDisabled(true);\n }\n\n const hasOrderDetailsProducts =\n ArrayExtensions.hasElements(props.orderDetailsProducts) && props.orderDetailsProducts.length > defaultQuantity;\n const hasProducts = ArrayExtensions.hasElements(props.products) && props.products.length > defaultQuantity;\n\n const hasMultipleProducts = hasOrderDetailsProducts || hasProducts;\n\n if (props.shouldSkipSiteSettings && hasMultipleProducts) {\n await addItemsToCart(props, setDisabled, setItemsAddedToCartDialogOpen, setErrorMessage);\n } else {\n await addOneItemToCart(props, setDisabled, openModal);\n }\n};\n\n/**\n * Add to cart component action constant.\n */\nconst AddToCartComponentActions = {\n onClick\n};\n\n/**\n * Add to cart component.\n * @param props - The props.\n * @returns - The add to cart component.\n */\nexport const AddToCartFunctionalComponent: React.FC = (props: IAddToCartComponentProps) => {\n const [disabled, setDisabled] = useState(false);\n const [modalOpen, setModalOpen] = useState(false);\n const [isItemsAddedToCartDialogOpen, setItemsAddedToCartDialogOpen] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [addToCartInput, setAddToCartInput] = useState<\n {\n product: SimpleProduct;\n count: number;\n }[]\n >([]);\n\n const onClickHandler = async (event: React.MouseEvent) => {\n await AddToCartComponentActions.onClick(event, props, setDisabled, setModalOpen, setItemsAddedToCartDialogOpen, setErrorMessage);\n };\n\n /**\n * Close dialog.\n */\n const closeItemsAddedToCartDialog = React.useCallback(() => {\n setItemsAddedToCartDialogOpen(false);\n }, []);\n\n const priceComponent = props.data?.price ? (\n \n ) : (\n ''\n );\n\n const popupProps: IPopupProps = {\n context: props.context,\n className: 'msc-add-to-cart',\n id: props.id,\n typeName: props.typeName,\n data: { product: addToCartInput[0]?.product, price: props.data?.price }, // addToCartInput[0]?.product?.Price },\n dialogStrings: props.dialogStrings,\n imageSettings: props.imageSettings,\n gridSettings: props.context.request.gridSettings,\n productQuantity: addToCartInput[0]?.count !== undefined ? addToCartInput[0]?.count : defaultQuantity,\n priceComponent,\n navigationUrl: props.navigationUrl,\n modalOpen,\n setModalOpen,\n telemetryContent: props.telemetryContent\n };\n\n const itemsAddedResource: IItemsAddedToCartResources = {\n viewCartButtonText: props.dialogStrings?.goToCartText ?? '',\n closeButtonLabel: props.dialogStrings?.closeNotificationLabel ?? 'Close',\n itemsAddedToCartHeaderText: props.dialogStrings?.headerMessageText ?? '',\n itemsAddedToCartFormatText: props.dialogStrings?.headerItemFormatText ?? '',\n linesAddedToCartFormatText: props.dialogStrings?.headerLinesFormatText ?? '{0}',\n itemsAddedValidationErrorMessage: errorMessage\n };\n\n const renderModalPopup = ;\n const label = getLinkText(props);\n const payload = getPayloadObject(TelemetryEvent.AddToCart, props.telemetryContent!, label, '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payload);\n const buttonClassName = props.shouldSkipSiteSettings ? '' : 'msc-add-to-cart ';\n\n React.useEffect(() => {\n /**\n * Retrieves add to cart input and updates the state.\n */\n const retrieveAddToCartInput = async () => {\n const retrievedInput = await getAddToCartInputFromProps(props);\n setAddToCartInput(retrievedInput);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises -- Call async method as per the documentation of react useEffect.\n retrieveAddToCartInput();\n }, [props, setAddToCartInput]);\n\n return (\n <>\n {renderModalPopup}\n \n {label}\n \n \n \n );\n};\n\n// Set default props\nAddToCartFunctionalComponent.defaultProps = {\n quantity: defaultQuantity\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @returns Gets the link text.\n */\nconst getLinkText = (props: IAddToCartComponentProps): string => {\n return shouldShowOutOfStock(props, false) && props.outOfStockText ? props.outOfStockText : props.addToCartText;\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @returns The add to cart failure result.\n */\nconst addToCartError = (props: IAddToCartComponentProps): IAddToCartFailureResult | undefined => {\n const {\n data,\n productAvailability,\n isCustomPriceSelected,\n customPriceAmount,\n maximumKeyInPrice,\n minimumKeyInPrice,\n defaultMaximumKeyInPrice = 100,\n defaultMinimumKeyInPrice = 10\n } = props;\n\n if (!data || !data.product.RecordId) {\n // No product exists, won't be able to add to cart\n return { failureReason: 'EMPTYINPUT' };\n }\n\n if (data.product.Dimensions) {\n const missingDimensions = data.product.Dimensions.filter(\n dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value)\n );\n\n if (ArrayExtensions.hasElements(missingDimensions)) {\n // At least one dimension with no value exists on the product, won't be able to add to cart\n return { failureReason: 'MISSINGDIMENSION', missingDimensions };\n }\n }\n\n if (shouldShowOutOfStock(props, true)) {\n const defaultAvailableQuantity = 0; // Showing as out of stock if no available products found.\n const availableQuantity = productAvailability?.AvailableQuantity ?? defaultAvailableQuantity;\n const stockLeft = Math.max(availableQuantity, defaultAvailableQuantity);\n\n return { failureReason: 'OUTOFSTOCK', stockLeft };\n }\n\n // When Custom price is selected, if there is no keyed-in price or keyed-in price is out of limit, should return error.\n if (\n isCustomPriceSelected &&\n (!customPriceAmount ||\n customPriceAmount > (maximumKeyInPrice || defaultMaximumKeyInPrice) ||\n customPriceAmount < (minimumKeyInPrice || defaultMinimumKeyInPrice))\n ) {\n return { failureReason: 'INVALIDCUSTOMAMOUNT' };\n }\n\n // Only allow adding to cart if not showing out of stock\n return undefined;\n};\n\n/**\n * Resolves whether product is in stock.\n * @param props - The add to cart component props.\n * @param includeCurrentQuantity - Flag to specify whether current quantity should be included.\n * @returns The dialog element.\n */\nconst shouldShowOutOfStock = (props: IAddToCartComponentProps, includeCurrentQuantity: boolean): boolean => {\n if (props.context.app.config.enableStockCheck === undefined || props.context.app.config.enableStockCheck === false) {\n return false;\n }\n\n // When skip site settings do not need show out of stock on adding to cart\n if (props.shouldSkipSiteSettings) {\n return false;\n }\n\n if (\n props.isLoading ||\n props.isProductQuantityLoading ||\n props.isUpdatingDimension ||\n props.isLoadingDeliveryOptions ||\n props.isUpdatingDeliveryOptions ||\n props.isAddServiceItemToCart\n ) {\n // Out of stock turn off, don't bother showing out of stock\n return false;\n }\n\n if (!props.data || !props.data.product.RecordId) {\n // No product exists, don't bother showing out of stock\n return false;\n }\n\n const hasAvailableProducts = props.hasAvailableProducts ?? true;\n if (!hasAvailableProducts) {\n return true;\n }\n\n if (props.data.product.Dimensions) {\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\n // At least one dimension with no value exists on the product, so also don't show out of stock\n return false;\n }\n }\n\n const includedQuantityNumber = includeCurrentQuantity && props.quantity ? props.quantity : defaultQuantity;\n\n return !(\n props.productAvailability &&\n props.productAvailability.AvailableQuantity !== undefined &&\n props.productAvailability.AvailableQuantity >= includedQuantityNumber\n );\n};\n\nconst isIntermediateState = (props: IAddToCartComponentProps): boolean => {\n if (props.data?.product.Dimensions) {\n if (props.data.product.Dimensions.find(dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value))) {\n // At least one dimension with no value exists on the product, so also not in intermediate state\n return false;\n }\n }\n\n if (!props.isLoading && !props.isUpdatingDimension && !props.isLoadingDeliveryOptions && !props.isUpdatingDeliveryOptions) {\n return false;\n }\n\n return true;\n};\n\n// @ts-expect-error\nexport const AddToCartComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'AddToCart',\n { component: AddToCartFunctionalComponent, ...AddToCartComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Interface for multi items added to cart resource.\n */\nexport interface IItemsAddedToCartResources {\n viewCartButtonText: string;\n closeButtonLabel: string;\n itemsAddedToCartHeaderText: string;\n itemsAddedToCartFormatText: string;\n linesAddedToCartFormatText: string;\n itemsAddedValidationErrorMessage?: string;\n}\n\n/**\n * Interface for add to cart input.\n */\nexport interface IAddToCartInput {\n product: SimpleProduct;\n count?: number;\n}\n\n/**\n * The total number of items.\n * @param addedInput -- The added to cart input.\n * @returns The total number of items.\n */\nexport const getTotalItems = (addedInput: IAddToCartInput[]): number => {\n const defaultQuantity: number = 1;\n let totalCount: number = 0;\n\n for (const item of addedInput) {\n totalCount += item.count ?? defaultQuantity;\n }\n\n return totalCount;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\n/**\n * Items added to cart error message.\n */\nexport interface IItemsAddedErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Items added error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing items added errors.\n */\nexport const ItemsAddedErrorComponent: React.FC = ({ errorMessage }) => {\n if (StringExtensions.isNullOrEmpty(errorMessage)) {\n return null;\n }\n\n return (\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { format } from '@msdyn365-commerce/retail-proxy';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-template/order-templates-list/order-template-products-preview';\nimport { getTotalItems, IAddToCartInput, IItemsAddedToCartResources } from './items-added-to-cart';\nimport { ItemsAddedErrorComponent } from './items-added-to-cart-error-component';\n\n/**\n * Interface for items added to cart data.\n */\nexport interface IItemsAddedToCartDialogData {\n products: IAddToCartInput[];\n}\n\n/**\n * Interface for items added to cart props.\n */\nexport interface IItemsAddedToCartDialogProps extends IComponentProps {\n className: string;\n dialogStrings: IItemsAddedToCartResources;\n\n imageSettings?: IImageSettings;\n isModalOpen?: boolean;\n\n onClose(): void;\n}\n\n/**\n * Items added to cart dialog.\n * @param dialogProps -- The dialog props.\n * @returns The dialog element.\n */\nexport const ItemsAddedToCartDialogComponent = (dialogProps: IItemsAddedToCartDialogProps): JSX.Element => {\n const {\n dialogStrings,\n className,\n context,\n isModalOpen,\n imageSettings,\n data: { products }\n } = dialogProps;\n\n /**\n * Get cart page URL.\n * @returns The URL of cart page.\n */\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) ?? '';\n };\n\n const itemsString =\n format(dialogStrings.itemsAddedToCartFormatText, getTotalItems(products).toString()) + dialogStrings.itemsAddedToCartHeaderText;\n const linesString = format(dialogStrings.linesAddedToCartFormatText, products.length.toString());\n\n const fullProducts: FullProduct[] = products.map(item => {\n return { ProductDetails: item.product };\n });\n\n return (\n \n \n {linesString}\n {dialogStrings.itemsAddedToCartHeaderText}\n \n \n
\n \n
\n
{itemsString}
\n
\n \n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.closeButtonLabel}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Image } from '@msdyn365-commerce/core';\nimport {\n BaseNotificationComponent,\n ClosableNotificationWrapper,\n DismissibleNotificationWrapper,\n INotificationCloseButtonProps,\n INotificationProps,\n NotificationCloseButton,\n NotificationContent,\n NotificationFooter,\n NotificationHeader,\n NotificationInstance,\n NotificationTitle\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { getFallbackImageUrl, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getPayloadObject, getTelemetryAttributes, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\nimport { ItemSuccessfullyAddedToCartNotification } from './item-successfully-added-to-cart-notification';\n\nexport interface IItemSuccessfullyAddedToCartNotificationProps\n extends INotificationProps,\n INotificationCloseButtonProps {}\n\nexport class ItemSuccessfullyAddedToCartNotificationComponent extends BaseNotificationComponent<\n ItemSuccessfullyAddedToCartNotification,\n IItemSuccessfullyAddedToCartNotificationProps\n> {\n public static readonly className: string = 'msc-notification-item-successfully-added-to-cart';\n\n public constructor(props: IItemSuccessfullyAddedToCartNotificationProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n const payLoad = getPayloadObject('click', this.props.notification.telemetryContent, TelemetryConstant.ContinueShopping);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n const shouldDisplayUnitOfMeasure =\n this.props.notification.context.app.config?.unitOfMeasureDisplayType &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n this.props.notification.context.app.config.unitOfMeasureDisplayType !== 'none';\n payLoad.contentAction.etext = TelemetryConstant.ViewBagAndCheckout;\n const viewBagAttribute = getTelemetryAttributes(this.props.notification.telemetryContent, payLoad);\n const fallbackImageUrl = getFallbackImageUrl(\n this.props.notification.product.ItemId,\n this.props.notification.context.actionContext.requestContext.apiSettings,\n this.props.notification.context.app?.config?.OmniChannelMedia\n );\n if (this.props.notification.imageSettings) {\n this.props.notification.imageSettings.cropFocalRegion = true;\n }\n\n const reducedDimensions: string = this.props.notification.product.Dimensions\n ? this.props.notification.product.Dimensions.reduce((str, productDimension) => {\n if (productDimension.DimensionValue && productDimension.DimensionValue.Value) {\n if (str) {\n return `${str}, ${productDimension.DimensionValue.Value}`;\n }\n\n return `${productDimension.DimensionValue.Value}`;\n }\n\n return str;\n }, '')\n : '';\n\n const contentClassName = NotificationContent.className;\n const footerClassName = NotificationFooter.className;\n\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n
{this.props.notification.product.Name}
\n {this.props.notification.price ? (\n
\n \n
\n ) : (\n ''\n )}\n {this.props.notification.product.DefaultUnitOfMeasure && shouldDisplayUnitOfMeasure ? (\n
\n {this.props.notification.product.DefaultUnitOfMeasure}\n
\n ) : (\n ''\n )}\n {StringExtensions.isNullOrWhitespace(reducedDimensions) ? null : (\n
{reducedDimensions}
\n )}\n
\n {this.props.notification.resources.addedQuantityText.replace(\n '{0}',\n this.props.notification.productQuantity.toString()\n )}\n
\n
\n
\n \n {this.props.notification.navigationUrl && (\n \n {this.props.notification.resources.goToCartText}\n \n )}\n \n
\n
\n
\n
\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, ICoreContext, IGeneric, IGridSettings, IImageSettings, RichText } from '@msdyn365-commerce/core';\nimport { format, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n DismissibleNotification,\n IClosableNotification,\n ITitledNotification,\n NotificationEvents,\n withNotificationComponent\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Event } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport { IAddToCartResources } from '../add-to-cart.component';\nimport { ItemSuccessfullyAddedToCartNotificationComponent } from './item-successfully-added-to-cart-notification-component';\n\n/**\n * Notification which will be shown after the user adds an item to the cart.\n */\n@withNotificationComponent(ItemSuccessfullyAddedToCartNotificationComponent)\nexport class ItemSuccessfullyAddedToCartNotification extends DismissibleNotification implements ITitledNotification, IClosableNotification {\n public readonly context: ICoreContext>;\n\n public readonly resources: IAddToCartResources;\n\n public readonly imageSettings?: IImageSettings;\n\n public readonly gridSettings?: IGridSettings;\n\n public readonly product: SimpleProduct;\n\n public readonly price?: ProductPrice;\n\n public readonly productQuantity: number;\n\n public readonly navigationUrl?: string;\n\n public readonly telemetryContent: ITelemetryContent;\n\n public readonly closeAriaLabel: string;\n\n public readonly title: RichText;\n\n public readonly componentId: string;\n\n public readonly typeName: string;\n\n public isClosed: boolean;\n\n public constructor(\n context: ICoreContext>,\n resources: IAddToCartResources,\n imageSettings: IImageSettings | undefined,\n gridSettings: IGridSettings | undefined,\n product: SimpleProduct,\n price: ProductPrice | undefined,\n productQuantity: number,\n navigationUrl: string | undefined,\n telemetryContent: ITelemetryContent,\n componentId: string,\n typeName: string\n ) {\n super();\n\n const quantityOne = 1;\n const itemsString =\n productQuantity === quantityOne\n ? resources.headerItemOneText\n : format(resources.headerItemFormatText, productQuantity.toString());\n\n this.title = `${itemsString}${resources.headerMessageText}`;\n\n this.context = context;\n this.resources = resources;\n this.imageSettings = imageSettings;\n this.gridSettings = gridSettings;\n this.product = product;\n this.price = price;\n this.productQuantity = productQuantity;\n this.navigationUrl = navigationUrl;\n this.telemetryContent = telemetryContent;\n this.componentId = componentId;\n this.typeName = typeName;\n\n this.isClosed = false;\n this.closeAriaLabel = resources.closeNotificationLabel;\n\n this.events.setValue(NotificationEvents.Close, new Event());\n }\n\n public close(): void {\n this.isClosed = true;\n this.events.getValue(NotificationEvents.Close)?.trigger();\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport {\n BaseNotificationComponent,\n ClosableNotificationWrapper,\n DismissibleNotificationWrapper,\n INotificationCloseButtonProps,\n INotificationProps,\n NotificationCloseButton,\n NotificationContent,\n NotificationDescription,\n NotificationFooter,\n NotificationHeader,\n NotificationInstance,\n NotificationTitle\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Button, getPayloadObject, getTelemetryAttributes, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../../order-template/order-templates-list/order-template-products-preview';\nimport { ItemsAddedErrorComponent } from '../items-added-to-cart-error-component';\nimport { MultiItemsSuccessfullyAddedToCartNotification } from './multi-items-successfully-added-to-cart-notification';\n\n/**\n * Interface of props for multiple items are successfully added to cart notification.\n */\nexport interface IMultiItemsSuccessfullyAddedToCartNotificationProps\n extends INotificationProps,\n INotificationCloseButtonProps {}\n\n/**\n * Multiple items are successfully added to cart notification.\n */\nexport class MultiItemsSuccessfullyAddedToCartNotificationComponent extends BaseNotificationComponent<\n MultiItemsSuccessfullyAddedToCartNotification,\n IMultiItemsSuccessfullyAddedToCartNotificationProps\n> {\n public static readonly className: string = 'msc-notification-items-added-to-cart';\n\n public constructor(props: IMultiItemsSuccessfullyAddedToCartNotificationProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n const payLoad = getPayloadObject('click', this.props.notification.telemetryContent, TelemetryConstant.ContinueShopping);\n payLoad.contentAction.etext = TelemetryConstant.ViewBagAndCheckout;\n const viewBagAttribute = getTelemetryAttributes(this.props.notification.telemetryContent, payLoad);\n if (this.props.notification.imageSettings) {\n this.props.notification.imageSettings.cropFocalRegion = true;\n }\n\n const fullProducts: FullProduct[] = this.props.notification.products.map(item => {\n return { ProductDetails: item.product };\n });\n\n const className = MultiItemsSuccessfullyAddedToCartNotificationComponent.className;\n const footerClassName = NotificationFooter.className;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.notification.navigationUrl && (\n \n {this.props.notification.resources.viewCartButtonText}\n \n )}\n \n \n \n \n
\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAny, ICoreContext, IGeneric, IGridSettings, IImageSettings, RichText } from '@msdyn365-commerce/core';\nimport { format } from '@msdyn365-commerce/retail-proxy';\nimport {\n DismissibleNotification,\n IClosableNotification,\n ITitledNotification,\n NotificationEvents,\n withNotificationComponent\n} from '@msdyn365-commerce-modules/notifications-core';\nimport { Event } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\n\nimport { getTotalItems, IAddToCartInput, IItemsAddedToCartResources } from '../items-added-to-cart';\nimport { MultiItemsSuccessfullyAddedToCartNotificationComponent } from './multi-items-successfully-added-to-cart-notification-component';\n\n/**\n * Notification which will be shown after the user adds multi items to the cart.\n */\n@withNotificationComponent(MultiItemsSuccessfullyAddedToCartNotificationComponent)\nexport class MultiItemsSuccessfullyAddedToCartNotification extends DismissibleNotification\n implements ITitledNotification, IClosableNotification {\n public readonly context: ICoreContext>;\n\n public readonly resources: IItemsAddedToCartResources;\n\n public readonly imageSettings?: IImageSettings;\n\n public readonly gridSettings?: IGridSettings;\n\n public readonly products: IAddToCartInput[];\n\n public readonly navigationUrl?: string;\n\n public readonly telemetryContent: ITelemetryContent;\n\n public readonly closeAriaLabel: string;\n\n public readonly title: RichText;\n\n public readonly descriptionLines: RichText[];\n\n public readonly componentId: string;\n\n public readonly typeName: string;\n\n public isClosed: boolean;\n\n public constructor(\n context: ICoreContext>,\n resources: IItemsAddedToCartResources,\n imageSettings: IImageSettings | undefined,\n gridSettings: IGridSettings | undefined,\n products: IAddToCartInput[],\n navigationUrl: string | undefined,\n telemetryContent: ITelemetryContent,\n componentId: string,\n typeName: string\n ) {\n super();\n\n const itemsString = format(resources.itemsAddedToCartFormatText, getTotalItems(products).toString());\n const linesString = format(resources.linesAddedToCartFormatText, products.length.toString());\n\n this.title = `${linesString}${resources.itemsAddedToCartHeaderText}`;\n this.descriptionLines = [];\n this.descriptionLines.push(`${itemsString}${resources.itemsAddedToCartHeaderText}`);\n\n this.context = context;\n this.resources = resources;\n this.imageSettings = imageSettings;\n this.gridSettings = gridSettings;\n this.products = products;\n this.navigationUrl = navigationUrl;\n this.telemetryContent = telemetryContent;\n this.componentId = componentId;\n this.typeName = typeName;\n\n this.isClosed = false;\n this.closeAriaLabel = resources.closeButtonLabel;\n\n this.events.setValue(NotificationEvents.Close, new Event());\n }\n\n public close(): void {\n this.isClosed = true;\n this.events.getValue(NotificationEvents.Close)?.trigger();\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SalesLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { observable } from 'mobx';\n\n/**\n * Represents a product from order details.\n */\nexport class OrderDetailsProduct {\n @observable\n public isSelected: boolean;\n\n public readonly isProductAvailable: boolean;\n\n public readonly salesLine: SalesLine;\n\n /**\n * Simple product info.\n * May be undefined for the removed/unavailable product.\n */\n public readonly simpleProduct?: SimpleProduct;\n\n public readonly productUrl?: string;\n\n public constructor(salesLine: SalesLine, simpleProduct?: SimpleProduct, productUrl?: string) {\n this.salesLine = salesLine;\n this.simpleProduct = simpleProduct;\n this.isSelected = false;\n this.isProductAvailable = !ObjectExtensions.isNullOrUndefined(simpleProduct);\n this.productUrl = productUrl;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { IComponent, IComponentProps, getCatalogId, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport {\n addOrderTemplateToCartAction,\n AddOrderTemplateToCartInput,\n OrderTemplate,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n IPopupProductsProps,\n ITelemetryContent,\n PopupProducts,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport {\n ILinesAddedToCartDialogResources,\n LinesAddedToCartDialog\n} from '../lines-added-to-cart-dialog/lines-added-to-cart-dialog.component';\n\nexport interface IAddOrderTemplateToCartComponentData {\n orderTemplate: OrderTemplate;\n}\n\nexport interface IAddOrderTemplateToCartComponentProps extends IComponentProps {\n className?: string;\n parentElementRef?: React.RefObject\n \n \n );\n};\n\nexport const AddOrderTemplateToCartComponent: React.FunctionComponent =\n // @ts-expect-error -- As per design, custom component\n msdyn365Commerce.createComponent('AddOrderTemplate', {\n component: AddOrderTemplate,\n ...AddToCartComponentActions\n });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport {\n IOrderTemplateNameDialogResources,\n OrderTemplateNameDialog\n} from '../order-template-name-dialog/order-template-name-dialog.component';\n\nexport interface IRenameOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n renameOrderTemplateDialogStrings: IOrderTemplateNameDialogResources;\n renameOrderTemplateButtonText: string;\n onRenameTemplate(orderTemplate: ProductList): Promise;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\ninterface IRenameOrderTemplateData {\n orderTemplate: ProductList;\n}\n\nexport interface IRenameOrderTemplateComponent extends IComponent {}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention -- For backward compatibility\nconst RenameOrderTemplateComponentActions = {};\nlet buttonEventReference: HTMLButtonElement | undefined;\n\nconst RenameOrderTemplate: React.FC = (props: IRenameOrderTemplateComponentProps) => {\n const {\n data: { orderTemplate },\n renameOrderTemplateButtonText,\n renameOrderTemplateDialogStrings,\n context\n } = props;\n const [renameOrderTemplateDialogOpen, setOrderTemplateNameDialogOpen] = React.useState(false);\n const onOrderTemplateNameCancel = () => {\n context.telemetry.debug('Rename of template was canceled.');\n buttonEventReference?.focus();\n };\n\n const onRenameButtonClick = (event: React.MouseEvent) => {\n buttonEventReference = event.target as HTMLButtonElement;\n setOrderTemplateNameDialogOpen(true);\n };\n return (\n <>\n \n \n \n );\n};\n\nexport const RenameOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IRenameOrderTemplateComponent\n>('RenameOrderTemplate', { component: RenameOrderTemplate, ...RenameOrderTemplateComponentActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-templates-list/order-template-products-preview';\n\nexport interface ILinesAddedToCartDialogResources {\n viewCartButtonText: string;\n orderTemplateCloseButtonText: string;\n linesAddedToCartHeaderItemsOneText: string;\n linesAddedToCartHeaderLinesOneText: string;\n linesAddedToCartHeaderLinesFormatText: string;\n linesAddedToCartHeaderMessageText: string;\n}\n\nexport interface ILinesAddedToCartDialogData {\n linesCount: number;\n orderTemplate: ProductList;\n products: FullProduct[];\n}\n\nexport interface ILinesAddedToCartDialogProps extends IComponentProps {\n className: string;\n imageSettings?: IImageSettings;\n\n dialogStrings: ILinesAddedToCartDialogResources;\n\n modalOpen: boolean | undefined;\n onClose(): void;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const LinesAddedToCartDialog = (dialogProps: ILinesAddedToCartDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplate, products, linesCount }\n } = dialogProps;\n\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) || '';\n };\n\n const close: () => void = () => {\n dialogProps.onClose();\n };\n\n const lineItemsString =\n linesCount === 1\n ? dialogStrings.linesAddedToCartHeaderLinesOneText\n : dialogStrings.linesAddedToCartHeaderLinesFormatText.replace('{0}', linesCount.toString());\n\n return (\n \n \n {dialogStrings.linesAddedToCartHeaderItemsOneText}\n {dialogStrings.linesAddedToCartHeaderMessageText}\n \n \n
\n \n
\n
{orderTemplate.Name}
\n
{lineItemsString}
\n
\n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.orderTemplateCloseButtonText}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport {\n createOrderTemplate,\n CreateOrderTemplateInput,\n StringExtensions,\n updateOrderTemplateHeader,\n UpdateOrderTemplateHeaderInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nexport interface IOrderTemplateNameDialogResources {\n orderTemplateHeaderLabel: string;\n orderTemplateTitleLabel: string;\n orderTemplateNameAriaLabel: string;\n orderTemplateDescription: string;\n defaultOrderTemplateName: string;\n orderTemplateButtonLabel: string;\n orderTemplateCancelButtonLabel: string;\n orderTemplateModalAriaLabel?: string;\n}\n\nexport interface IOrderTemplateNameDialogProps extends IComponentProps {\n isUpdateDialog: boolean | undefined;\n existingOrderTemplate?: ProductList;\n className: string;\n orderTemplateName?: string;\n dialogStrings: IOrderTemplateNameDialogResources;\n modalOpen: boolean | undefined;\n parentElementRef?: React.RefObject;\n setModalOpen(newValue: boolean): void;\n onCancel(): void;\n onSuccess(orderTemplate: ProductList): Promise;\n}\n\nexport const OrderTemplateNameDialog = (dialogProps: IOrderTemplateNameDialogProps) => {\n const {\n isUpdateDialog,\n existingOrderTemplate,\n dialogStrings,\n className,\n modalOpen,\n setModalOpen,\n onCancel,\n onSuccess,\n context,\n parentElementRef\n } = dialogProps;\n\n if (!dialogStrings) {\n return null;\n }\n\n const [orderTemplateName, setOrderTemplateName] = useState(dialogProps.orderTemplateName);\n\n const cancel: () => void = () => {\n setModalOpen(false);\n onCancel();\n setOrderTemplateName('');\n if (parentElementRef) {\n parentElementRef.current?.focus();\n }\n };\n\n const submit: () => Promise = async () => {\n dialogProps.orderTemplateName = orderTemplateName || dialogStrings.defaultOrderTemplateName;\n if (StringExtensions.isNullOrWhitespace(dialogProps.orderTemplateName)) {\n return;\n }\n if (isUpdateDialog) {\n if (existingOrderTemplate) {\n existingOrderTemplate.Name = dialogProps.orderTemplateName;\n const input: UpdateOrderTemplateHeaderInput = new UpdateOrderTemplateHeaderInput(existingOrderTemplate);\n const orderTemplate: ProductList = await updateOrderTemplateHeader(input, context.actionContext);\n setModalOpen(false);\n await onSuccess(orderTemplate);\n } else {\n context.telemetry.error('You need to pass ProductList instance for update.');\n throw new Error('Unexpected error: existing order template was not set.');\n }\n } else {\n const input: CreateOrderTemplateInput = new CreateOrderTemplateInput(dialogProps.orderTemplateName);\n const orderTemplate: ProductList = await createOrderTemplate(input, context.actionContext);\n setModalOpen(false);\n await onSuccess(orderTemplate);\n }\n };\n\n const updateOrderTemplateName = (event: React.ChangeEvent) => {\n setOrderTemplateName(event.target.value);\n };\n\n return (\n \n \n {dialogStrings.orderTemplateHeaderLabel}\n \n \n
\n \n {dialogStrings.orderTemplateTitleLabel}\n \n \n
{dialogStrings.orderTemplateDescription}
\n
\n
\n \n \n {dialogStrings.orderTemplateButtonLabel}\n \n \n {dialogStrings.orderTemplateCancelButtonLabel}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from './order-template-products-preview';\n\nexport interface IOrderTemplateComponentProps {\n className: string;\n orderTemplate: OrderTemplate;\n context: ICoreContext;\n imageSettings?: IImageSettings;\n actionButtonText: string;\n lineItemsText: string;\n orderTemplateAction(orderTemplate: ProductList): Promise;\n}\n\nexport const OrderTemplateComponent = (props: IOrderTemplateComponentProps) => {\n const { orderTemplate, className, imageSettings } = props;\n\n const onActionButtonClick = () => {\n return props.orderTemplateAction(props.orderTemplate.productList);\n };\n\n const products = orderTemplate.orderTemplateLines.map(line => line.fullProduct).filter(fullProduct => fullProduct);\n\n return (\n
\n
\n
{orderTemplate.productList.Name}
\n
{format(props.lineItemsText, orderTemplate.totalLines)}
\n
\n \n
\n \n
\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getAsset, IComponentProps, Image } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { OrderTemplate } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport {\n IOrderTemplateNameDialogResources,\n OrderTemplateNameDialog\n} from '../order-template-name-dialog/order-template-name-dialog.component';\nimport { OrderTemplateComponent } from '../order-templates-list/order-template-list';\n\nexport interface IAddToOrderTemplateDialogData {\n orderTemplates: OrderTemplate[];\n}\n\nexport interface IAddToOrderTemplateDialogResources {\n addToOrderTemplateHeader: string;\n\n noOrderTemplatesMessage: string;\n noOrderTemplatesDescription: string;\n\n createAnOrderTemplateButtonText: string;\n createNewOrderTemplateButtonText: string;\n cancelOrderTemplateCreationButtonText: string;\n\n selectTemplatesText: string;\n addToTemplateButtonText: string;\n lineItemsText: string;\n}\n\nexport interface IAddToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n\n modalOpen: boolean | undefined;\n setModalOpen(newValue: boolean): void;\n onOrderTemplateSelected(orderTemplate: ProductList): Promise;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nconst renderAddToOrderTemplatesWhenEmptyOrderTemplatesDialog = (\n dialogProps: IAddToOrderTemplateDialogProps,\n className: string,\n closeDialog: () => void,\n showOrderTemplateNameDialog: () => void\n) => {\n const { addToOrderTemplateDialogResources, modalOpen } = dialogProps;\n\n const createOrderTemplateImageUrl = `${getAsset('images/order-templates/create-order-template.svg', dialogProps.context.request)}`;\n\n return (\n <>\n \n \n {addToOrderTemplateDialogResources.addToOrderTemplateHeader}\n \n \n
\n
\n \n
\n
\n {addToOrderTemplateDialogResources.noOrderTemplatesMessage}\n
\n
\n {addToOrderTemplateDialogResources.noOrderTemplatesDescription}\n
\n
\n
\n \n \n {addToOrderTemplateDialogResources.createAnOrderTemplateButtonText}\n \n \n {addToOrderTemplateDialogResources.cancelOrderTemplateCreationButtonText}\n \n \n
\n \n );\n};\n\nconst formatBold = (text: string, boldText: string) => {\n const patternToFind = '{0}';\n return (\n <>\n {text.slice(0, text.indexOf(patternToFind))}\n {boldText}\n {text.slice(text.indexOf(patternToFind) + patternToFind.length)}\n \n );\n};\n\nconst renderAddToOrderTemplatesForExistingOrderTemplatesDialog = (\n dialogProps: IAddToOrderTemplateDialogProps,\n className: string,\n closeDialog: () => void,\n showOrderTemplateNameDialog: () => void,\n onAddToOrderTemplateButtonClick: (orderTemplate: ProductList) => Promise\n) => {\n const {\n addToOrderTemplateDialogResources,\n modalOpen,\n data: { orderTemplates }\n } = dialogProps;\n\n const createOrderTemplateImageUrl = `${getAsset('images/order-templates/create-order-template.svg', dialogProps.context.request)}`;\n\n return (\n <>\n \n \n {addToOrderTemplateDialogResources.addToOrderTemplateHeader}\n \n \n
\n
\n {formatBold(addToOrderTemplateDialogResources.selectTemplatesText, orderTemplates.length.toString())}\n
\n
\n \n \n \n {addToOrderTemplateDialogResources.createNewOrderTemplateButtonText}\n \n
\n {orderTemplates.map((orderTemplate, index) => {\n return (\n \n );\n })}\n
\n \n
\n
\n \n );\n};\n\nexport const AddToOrderTemplateDialog = (dialogProps: IAddToOrderTemplateDialogProps) => {\n const {\n setModalOpen,\n data: { orderTemplates },\n className\n } = dialogProps;\n\n const closeDialog = () => {\n setModalOpen(false);\n };\n\n const [isCreateOrderTemplateDialogOpen, setOrderTemplateNameDialogOpen] = useState(false);\n const showOrderTemplateNameDialog = () => {\n setModalOpen(false);\n setTimeout(() => {\n setOrderTemplateNameDialogOpen(true);\n }, 500);\n };\n const onCreateOrderTemplateCancel = () => {\n setTimeout(() => {\n setModalOpen(true);\n }, 500);\n };\n\n let addToOrderTemplateDialog: JSX.Element;\n if (orderTemplates.length !== 0) {\n addToOrderTemplateDialog = renderAddToOrderTemplatesForExistingOrderTemplatesDialog(\n dialogProps,\n `${className}__existing`,\n closeDialog,\n showOrderTemplateNameDialog,\n dialogProps.onOrderTemplateSelected\n );\n } else {\n addToOrderTemplateDialog = renderAddToOrderTemplatesWhenEmptyOrderTemplatesDialog(\n dialogProps,\n `${className}__empty`,\n closeDialog,\n showOrderTemplateNameDialog\n );\n }\n\n return (\n <>\n {addToOrderTemplateDialog}\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 { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { getUrlSync, IComponentProps, IImageSettings } from '@msdyn365-commerce/core';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy';\nimport { ProductDimensionType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { OrderTemplateProductsPreviewComponent } from '../order-templates-list/order-template-products-preview';\n\nexport interface ILinesAddedToOrderTemplateDialogResources {\n viewOrderTemplateButtonText: string;\n continueShoppingButtonText: string;\n linesAddedToOrderTemplateHeaderItemsOneText: string;\n linesAddedToOrderTemplateHeaderItemsFormatText: string;\n linesAddedToOrderTemplateHeaderLinesOneText: string;\n linesAddedToOrderTemplateHeaderLinesFormatText: string;\n linesAddedToOrderTemplateHeaderMessageText: string;\n linesAddedToOrderTemplateCustomPriceAlertMessageText?: string;\n}\n\nexport interface ILinesAddedToOrderTemplateDialogData {\n itemsCount: number;\n linesCount: number;\n orderTemplate: ProductList;\n products: FullProduct[];\n}\n\nexport interface ILinesAddedToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n imageSettings?: IImageSettings;\n\n dialogStrings: ILinesAddedToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const LinesAddedToOrderTemplateDialog = (dialogProps: ILinesAddedToOrderTemplateDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplate, products, itemsCount, linesCount }\n } = dialogProps;\n\n const getOrderTemplatePageUrl = (): string => {\n const url = getUrlSync('ordertemplate', context.actionContext) || '';\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}id=${orderTemplate.Id}`;\n };\n\n const close = React.useCallback(() => {\n window.location.reload(true);\n }, []);\n\n const itemsString =\n itemsCount === 1\n ? dialogStrings.linesAddedToOrderTemplateHeaderItemsOneText\n : dialogStrings.linesAddedToOrderTemplateHeaderItemsFormatText.replace('{0}', itemsCount.toString());\n const lineItemsString =\n linesCount === 1\n ? dialogStrings.linesAddedToOrderTemplateHeaderLinesOneText\n : dialogStrings.linesAddedToOrderTemplateHeaderLinesFormatText.replace('{0}', linesCount.toString());\n\n const addedProducts = products.filter(\n product =>\n !product.ProductDetails.Dimensions?.find(\n dimension => dimension.DimensionTypeValue === ProductDimensionType.Style && dimension.DimensionValue?.Value === 'Custom'\n )\n );\n const filteredProducts = products.filter(product =>\n product.ProductDetails.Dimensions?.find(\n dimension => dimension.DimensionTypeValue === ProductDimensionType.Style && dimension.DimensionValue?.Value === 'Custom'\n )\n );\n\n return (\n \n \n {lineItemsString}\n {dialogStrings.linesAddedToOrderTemplateHeaderMessageText}\n \n \n
\n \n
\n
{orderTemplate.Name}
\n
{itemsString}
\n
\n {ArrayExtensions.hasElements(filteredProducts) ? (\n <>\n \n
\n \n {dialogStrings.linesAddedToOrderTemplateCustomPriceAlertMessageText}\n
\n
\n \n \n ) : null}\n
\n
\n \n \n {dialogStrings.viewOrderTemplateButtonText}\n \n \n {dialogStrings.continueShoppingButtonText}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { ICoreContext, getCatalogId, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { Customer, ProductList, ProductListLine, ProductListsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n FullProductInput,\n getFullProducts,\n getProductDetailsCriteriaFromActionInput,\n OrderTemplate,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n ILinesAddedToOrderTemplateDialogResources,\n LinesAddedToOrderTemplateDialog\n} from '../lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\n\n/**\n * Data for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n products: ProductListLine[];\n\n customerInformation?: Customer;\n}\n\n/**\n * Resources for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateResources\n extends IAddToOrderTemplateDialogResources,\n IOrderTemplateNameDialogResources,\n ILinesAddedToOrderTemplateDialogResources {\n addProductsToOrderTemplateButton: string;\n addProductsToOrderTemplateButtonTooltip: string;\n}\n\n/**\n * Props for the add products to order template component.\n */\nexport interface IAddProductsToOrderTemplateProps {\n className: string;\n\n context: ICoreContext;\n\n data: IAddProductsToOrderTemplateData;\n\n resources: IAddProductsToOrderTemplateResources;\n\n isDisabled?: boolean;\n\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nconst modalTimeoutTime = 500;\n\n/**\n * Add products to order template component.\n * @param props - Component props.\n * @returns React node.\n */\nexport const AddProductsToOrderTemplateComponent: React.FC = (\n props: IAddProductsToOrderTemplateProps\n) => {\n const [chosenOrderTemplate, setChosenOrderTemplate] = useState(undefined);\n const [addedProducts, setAddedProducts] = useState(undefined);\n const [isAddToOrderTemplateModalOpen, setIsAddToOrderTemplateModalOpen] = useState(false);\n const [isLinesAddedToOrderTemplateDialogOpen, setIsLinesAddedToOrderTemplateDialogOpen] = useState(false);\n const [addedLinesCount, setAddedLinesCount] = useState(0);\n const [addedItemsCount, setAddedItemsCount] = useState(0);\n\n /**\n * Adds product to the selected order template.\n * @param orderTemplate - Order template to use for adding products.\n */\n const onOrderTemplateSelected = React.useCallback(\n async (orderTemplate: ProductList) => {\n setChosenOrderTemplate(orderTemplate);\n // assuming selected catalogId will be passed to component and if not passed then get from context\n const catalogId = props.catalogId ?? getCatalogId(props.context.actionContext.requestContext);\n validateCatalogId(catalogId);\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const linesToAdd: ProductListLine[] = props.data.products.map(line => {\n return {\n ...line,\n ...(isMultipleCatalogFeatureEnabledInHq && { catalogId: line.CatalogId || catalogId }),\n ProductListId: orderTemplate.Id\n };\n });\n\n const allProductInputs: FullProductInput[] = [];\n for (const listLine of linesToAdd) {\n if (listLine.ProductId) {\n allProductInputs.push(\n new FullProductInput(\n listLine.ProductId,\n props.context.actionContext.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(props.context.actionContext),\n props.context.actionContext.requestContext\n )\n );\n }\n }\n\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n\n const addedLines = await ProductListsDataActions.addProductListLinesAsync(\n { callerContext: props.context.actionContext },\n orderTemplate.Id,\n linesToAdd\n );\n\n const quantities = addedLines.map(line => line.Quantity ?? 0);\n setAddedLinesCount(addedLines.length);\n setAddedItemsCount(ArrayExtensions.hasElements(quantities) ? ArrayExtensions.calculateSum(quantities) : 0);\n setAddedProducts(allProducts);\n\n setIsAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setIsLinesAddedToOrderTemplateDialogOpen(true);\n }, modalTimeoutTime);\n },\n [props.context.actionContext, props.data.products]\n );\n\n const onAddProductsToOrderTemplateClick = React.useCallback(() => {\n setIsAddToOrderTemplateModalOpen(true);\n }, []);\n\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const addToOrderTemplateReference: React.RefObject = React.createRef();\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n return (\n
\n \n {chosenOrderTemplate && addedProducts && (\n \n )}\n \n {props.resources.addProductsToOrderTemplateButton}\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IDuplicateItemsWhenAddingToOrderTemplateDialogResources {\n duplicatedProductsHeader: string;\n\n duplicatedProductsDescription: string;\n\n updateQuantityButtonText: string;\n cancelDuplicateItemsButtonText: string;\n}\n\nexport interface IDuplicateItemsWhenAddingToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings?: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n executeOverrideQuantity(): Promise;\n onCancel(): void;\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n}\n\nexport const DuplicateItemsWhenAddingToOrderTemplateDialog = (dialogProps: IDuplicateItemsWhenAddingToOrderTemplateDialogProps) => {\n const { dialogStrings, className, modalOpen, executeOverrideQuantity } = dialogProps;\n\n return (\n \n \n {dialogStrings?.duplicatedProductsHeader}\n \n \n
\n
{dialogStrings?.duplicatedProductsDescription}
\n
\n
\n \n \n {dialogStrings?.updateQuantityButtonText}\n \n \n {dialogStrings?.cancelDuplicateItemsButtonText}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\n\nexport interface IItemAddedToOrderTemplateDialogResources {\n viewOrderTemplateButtonText: string;\n continueShoppingButtonText: string;\n itemAddedToOrderTemplateHeaderItemOneText: string;\n itemAddedToOrderTemplateHeaderItemFormatText: string;\n itemAddedToOrderTemplateHeaderMessageText: string;\n\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n}\n\nexport interface IItemAddedToOrderTemplateDialogData {\n product: SimpleProduct;\n productPrice: ProductPrice;\n quantity: number;\n orderTemplateId: string;\n}\n\nexport interface IItemAddedToOrderTemplateDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings: IItemAddedToOrderTemplateDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n imageSettings?: IImageSettings;\n}\n\nconst renderOrderTemplateImage = (context: ICoreContext, className: string, product: SimpleProduct, imageSettings?: IImageSettings) => {\n const fallbackImageUrl = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n return (\n \n );\n};\n\nexport const ItemAddedToOrderTemplateDialog = (dialogProps: IItemAddedToOrderTemplateDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n imageSettings,\n data: { orderTemplateId, product, productPrice, quantity }\n } = dialogProps;\n\n const getOrderTemplatePageUrl = (): string => {\n const url = getUrlSync('ordertemplate', context.actionContext) || '';\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}id=${orderTemplateId}`;\n };\n\n const close: () => void = () => {\n window.location.reload(true);\n };\n\n const itemsString =\n quantity === 1\n ? dialogStrings.itemAddedToOrderTemplateHeaderItemOneText\n : dialogStrings.itemAddedToOrderTemplateHeaderItemFormatText.replace('{0}', quantity.toString());\n\n return (\n \n \n {itemsString}\n {dialogStrings.itemAddedToOrderTemplateHeaderMessageText}\n \n \n
\n {renderOrderTemplateImage(context, `${className}__dialog`, product, imageSettings)}\n
\n
{product.Name}
\n
\n {productPrice && (\n \n )}\n
\n {product.Dimensions && (\n
\n {product.Dimensions.map(dimension => dimension.DimensionValue?.Value)\n .filter(value => value)\n .join(', ')}\n
\n )}\n
\n
\n
\n \n \n {dialogStrings.viewOrderTemplateButtonText}\n \n \n {dialogStrings.continueShoppingButtonText}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce, isChannelTypeB2B, IImageSettings } from '@msdyn365-commerce/core';\nimport { AsyncResult, Customer, ProductDimension, ProductList, ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport {\n addItemToOrderTemplate,\n AddItemToOrderTemplateInput,\n getPriceForSelectedVariant,\n OrderTemplate,\n PriceForSelectedVariantInput,\n updateOrderTemplateAction,\n UpdateOrderTemplateInput,\n validateCatalogId\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, UncontrolledTooltip } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Popper from 'popper.js';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogData,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n DuplicateItemsWhenAddingToOrderTemplateDialog,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources\n} from '../duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component';\nimport {\n IItemAddedToOrderTemplateDialogResources,\n ItemAddedToOrderTemplateDialog\n} from '../item-added-to-order-template-dialog/item-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\n\nexport interface IAddToOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n itemAddedToOrderTemplateDialogResources: IItemAddedToOrderTemplateDialogResources;\n duplicateItemsWhenAddingToOrderTemplateDialogResources: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n\n addToOrderTemplateButtonText: string;\n addToOrderTemplateButtonTooltip: string;\n\n addToOrderTemplateMessage?: string;\n addItemToOrderTemplateError?: string;\n\n showButtonText?: boolean;\n showButtonTooltip?: boolean;\n shouldShowButtonFailedTooltip?: boolean;\n disableButton?: boolean;\n tooltipPosition?: Popper.Placement;\n showStatusMessage?: boolean;\n disabled?: boolean;\n canAddMasterProduct?: boolean;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n\n imageSettings?: IImageSettings;\n\n onSuccess?(): void;\n onError?(result: IOrderTemplateActionErrorResult): void;\n}\n\nexport interface IOrderTemplateActionErrorResult {\n status: 'FAILED' | 'MISSING_DIMENSION';\n\n missingDimensions?: ProductDimension[];\n}\n\ninterface IAddToOrderTemplateStateManager {\n waiting: boolean;\n content: IAddToOrderTemplateContentState;\n\n setWaiting(newWaiting: boolean): void;\n setContent(newContent: IAddToOrderTemplateContentState): void;\n}\n\ninterface IAddToOrderTemplateContentState {\n showAlert?: boolean;\n orderTemplateTextMessage?: string;\n color?: string;\n}\n\ninterface IAddToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n\n product: SimpleProduct;\n quantity: number;\n\n customerInformation?: Customer;\n isChannelTypeB2B?: boolean;\n}\n\nexport interface IAddToOrderTemplateComponent extends IComponent {\n onClick(): (\n event: React.MouseEvent,\n props: IAddToOrderTemplateComponentProps,\n state: IAddToOrderTemplateStateManager\n ) => void;\n}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IAddToOrderTemplateComponentProps,\n state: IAddToOrderTemplateStateManager,\n openModal: (opened: boolean) => void\n): Promise => {\n const { user } = props.context.request;\n\n if (state.waiting) {\n return;\n }\n\n if (!user.isAuthenticated && user.signInUrl && window) {\n window.location.assign(user.signInUrl);\n return;\n }\n\n addToOrderTemplate(props, openModal);\n state.setWaiting(false);\n};\n\nconst onDismiss = (state: IAddToOrderTemplateStateManager): void => {\n state.setContent({ color: 'success', showAlert: false });\n};\n\nconst AddToOrderTemplateComponentActions = {\n onClick,\n onDismiss\n};\n\nconst hasProductInOrderTemplates = (productToFind: SimpleProduct) => {\n /*\n TODO: Currently API does not support filtering by products.\n await getProductListLinesAsync(context, '',)\n return orderTemplates.filter(orderTemplate =>\n orderTemplate.orderTemplateLines.filter(\n product => product.productListLine.ProductId === productToFind.RecordId).length !== 0).length !== 0;\n */\n return false;\n};\n\nconst AddToOrderTemplate: React.FC = (props: IAddToOrderTemplateComponentProps) => {\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const [waiting, setWaiting] = useState(false);\n const [content, setContent] = useState({});\n const state: IAddToOrderTemplateStateManager = {\n waiting,\n content,\n\n setWaiting,\n setContent\n };\n\n const [addToOrderTemplateModalOpen, setAddToOrderTemplateModalOpen] = useState(false);\n\n const [chosenOrderTemplateId, setChosenOrderTemplateId] = useState(undefined);\n const [productPrice, setProductPrice] = useState(null);\n const [itemAddedToOrderTemplateDialogOpen, setItemAddedToOrderTemplateDialogOpen] = useState(false);\n const [duplicateItemsWhenAddingToOrderTemplateDialogOpen, setDuplicateItemsWhenAddingToOrderTemplateDialogOpen] = useState(false);\n const catalogId = props.catalogId;\n validateCatalogId(catalogId);\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const executeAddItemToOrderTemplate = async (orderTemplate: ProductList) => {\n setChosenOrderTemplateId(orderTemplate.Id);\n const input = isMultipleCatalogFeatureEnabledInHq\n ? new AddItemToOrderTemplateInput(\n orderTemplate.Id,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea',\n isMultipleCatalogFeatureEnabledInHq,\n catalogId\n )\n : new AddItemToOrderTemplateInput(\n orderTemplate.Id,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea'\n );\n await addItemToOrderTemplate(input, props.context.actionContext)\n .then(async result => {\n const retrievedProductPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(\n props.data.product.RecordId,\n props.context.actionContext.requestContext.apiSettings.channelId,\n props.data.product\n ),\n props.context.actionContext\n );\n setProductPrice(retrievedProductPrice);\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setItemAddedToOrderTemplateDialogOpen(true);\n }, 500);\n })\n .catch(error => {\n if (error.error?.name !== 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\n return AsyncResult.reject(error);\n }\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(true);\n }, 500);\n return AsyncResult.resolve();\n });\n };\n\n const onDuplicateDialogCancel = () => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setAddToOrderTemplateModalOpen(true);\n }, 500);\n };\n\n const overrideQuantity = async () => {\n const input = isMultipleCatalogFeatureEnabledInHq\n ? new UpdateOrderTemplateInput(\n chosenOrderTemplateId!,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea',\n isMultipleCatalogFeatureEnabledInHq,\n catalogId\n )\n : new UpdateOrderTemplateInput(\n chosenOrderTemplateId!,\n props.data.product.RecordId,\n props.data.quantity,\n props.data.product.DefaultUnitOfMeasure || 'ea'\n );\n await updateOrderTemplateAction(input, props.context.actionContext);\n\n const retrievedProductPrice = await getPriceForSelectedVariant(\n new PriceForSelectedVariantInput(\n props.data.product.RecordId,\n props.context.actionContext.requestContext.apiSettings.channelId,\n props.data.product\n ),\n props.context.actionContext\n );\n setProductPrice(retrievedProductPrice);\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setItemAddedToOrderTemplateDialogOpen(true);\n }, 500);\n };\n\n const {\n addToOrderTemplateButtonText,\n showStatusMessage,\n showButtonText,\n className,\n disabled,\n showButtonTooltip,\n shouldShowButtonFailedTooltip,\n disableButton,\n tooltipPosition,\n addToOrderTemplateButtonTooltip,\n addToOrderTemplateDialogResources,\n createOrderTemplateDialogResources\n } = props;\n\n const onDismissHandler = () => {\n AddToOrderTemplateComponentActions.onDismiss(state);\n };\n const ariaLabel = addToOrderTemplateButtonText;\n const addToOrderTemplateRef: React.RefObject = React.createRef();\n const showMessage = showStatusMessage !== undefined ? showStatusMessage : true;\n const showTooltip = showButtonTooltip !== undefined ? showButtonTooltip : true;\n const tooltipPos = showButtonTooltip !== undefined ? tooltipPosition : 'top-end';\n\n const dialogData: IAddToOrderTemplateDialogData = {\n orderTemplates: props.data.orderTemplates\n };\n\n const onClickHandler = (event: React.MouseEvent) => {\n return AddToOrderTemplateComponentActions.onClick(event, props, state, setAddToOrderTemplateModalOpen);\n };\n\n return (\n <>\n <>\n \n {showButtonText ? ariaLabel : ''}\n \n {showTooltip && (\n \n {shouldShowButtonFailedTooltip ? addToOrderTemplateButtonTooltip : ariaLabel}\n \n )}\n \n {state.content.showAlert && showMessage ? (\n
\n \n {state.content.orderTemplateTextMessage}\n \n
\n ) : (\n ''\n )}\n \n {chosenOrderTemplateId && productPrice && (\n \n )}\n \n \n );\n};\n\nconst addToOrderTemplate = (props: IAddToOrderTemplateComponentProps, openModal: (opened: boolean) => void): void => {\n const { canAddMasterProduct } = props;\n\n if (props.data.product.Dimensions && !canAddMasterProduct) {\n const missingDimensions = props.data.product.Dimensions.filter(\n dimension => !(dimension.DimensionValue && dimension.DimensionValue.Value)\n );\n\n if (missingDimensions.length > 0) {\n // At least one dimension with no value exists on the product, won't be able to proceed.\n propagateError(props, { status: 'MISSING_DIMENSION', missingDimensions });\n return;\n }\n }\n\n openModal(true);\n};\n\nconst propagateError = (props: IAddToOrderTemplateComponentProps, result: IOrderTemplateActionErrorResult): void => {\n const { onError } = props;\n\n if (onError) {\n onError(result);\n }\n};\n\nexport const AddToOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IAddToOrderTemplateComponent\n>('AddToOrderTemplate', { component: AddToOrderTemplate, ...AddToOrderTemplateComponentActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IComponentProps, ICoreContext, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ProductPrice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { PriceComponent } from '../../price/price.components';\n\nexport interface IItemAddedToCartDialogResources {\n viewCartButtonText: string;\n orderTemplateCloseButtonText: string;\n itemAddedToCartHeaderItemOneText: string;\n itemAddedToCartHeaderItemFormatText: string;\n itemAddedToCartHeaderMessageText: string;\n\n freePriceText: string;\n originalPriceText: string;\n currentPriceText: string;\n}\n\nexport interface IItemAddedToCartDialogData {\n product: SimpleProduct;\n productPrice: ProductPrice;\n quantity: number;\n}\n\nexport interface IItemAddedToCartDialogProps extends IComponentProps {\n className: string;\n\n dialogStrings: IItemAddedToCartDialogResources;\n\n modalOpen: boolean | undefined;\n\n // as required passing in components for later user\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n onClose(): void;\n}\n\nconst renderImage = (context: ICoreContext, className: string, product: SimpleProduct, imageSettings?: IImageSettings) => {\n const fallbackImageUrl = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n lg: { q: 'w=140&h=140&m=6', w: 0, h: 0 },\n xl: { q: 'w=140&h=140&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n};\n\nexport const ItemAddedToCartDialog = (dialogProps: IItemAddedToCartDialogProps) => {\n const {\n dialogStrings,\n className,\n context,\n modalOpen,\n data: { product, productPrice, quantity }\n } = dialogProps;\n\n const getCartPageUrl = (): string => {\n return getUrlSync('cart', context.actionContext) || '';\n };\n\n const close: () => void = () => {\n dialogProps.onClose();\n };\n\n const itemsString =\n quantity === 1\n ? dialogStrings.itemAddedToCartHeaderItemOneText\n : dialogStrings.itemAddedToCartHeaderItemFormatText.replace('{0}', quantity.toString());\n\n return (\n \n \n {itemsString}\n {dialogStrings.itemAddedToCartHeaderMessageText}\n \n \n
\n {renderImage(context, `${className}__dialog`, product)}\n
\n
{product.Name}
\n
\n {productPrice && (\n \n )}\n
\n {product.Dimensions && (\n
\n {product.Dimensions.map(dimension => dimension.DimensionValue?.Value)\n .filter(value => value)\n .join(', ')}\n
\n )}\n
\n
\n
\n \n \n {dialogStrings.viewCartButtonText}\n \n \n {dialogStrings.orderTemplateCloseButtonText}\n \n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { FullProduct } from '@msdyn365-commerce/commerce-entities';\nimport { IComponent, IComponentProps, msdyn365Commerce, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { AsyncResult, CartLine, Customer, ProductList, ProductListLine } from '@msdyn365-commerce/retail-proxy';\nimport {\n addProductListLinesAsync,\n updateProductListLinesAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductListsDataActions.g';\nimport {\n FullProductInput,\n getFullProducts,\n getProductDetailsCriteriaFromActionInput,\n getProductListLines,\n GetProductListLinesInput,\n OrderTemplate\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, UncontrolledTooltip } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport {\n AddToOrderTemplateDialog,\n IAddToOrderTemplateDialogResources\n} from '../add-to-order-template-dialog/add-to-order-template-dialog.component';\nimport {\n ILinesAddedToOrderTemplateDialogResources,\n LinesAddedToOrderTemplateDialog\n} from '../lines-added-to-order-template-dialog/lines-added-to-order-template-dialog.component';\nimport { IOrderTemplateNameDialogResources } from '../order-template-name-dialog/order-template-name-dialog.component';\nimport {\n DuplicateItemsWhenAddingToOrderTemplateDialog,\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources\n} from '../duplicate-items-when-adding-to-order-template-dialog/duplicate-items-when-adding-to-order-template-dialog.component';\nexport interface ISaveCartToOrderTemplateComponentProps extends IComponentProps {\n className?: string;\n isMultipleCatalogFeatureEnabledInHq?: boolean;\n catalogId?: number;\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\n linesAddedToOrderTemplateDialogResources: ILinesAddedToOrderTemplateDialogResources;\n\n createOrderTemplateFromCartButton: string;\n createOrderTemplateFromCartButtonTooltip: string;\n\n duplicateItemsWhenAddingToOrderTemplateDialogResources?: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\n}\n\ninterface ISaveCartToOrderTemplateData {\n orderTemplates: OrderTemplate[];\n cartLines: CartLine[];\n customerInformation?: Customer;\n isChannelTypeB2B?: boolean;\n}\n\ninterface ISaveCartToOrderTemplateContentState {\n showAlert?: boolean;\n orderTemplateTextMessage?: string;\n color?: string;\n}\n\ninterface ISaveCartToOrderTemplateStateManager {\n waiting: boolean;\n content: ISaveCartToOrderTemplateContentState;\n\n setWaiting(newWaiting: boolean): void;\n setContent(newContent: ISaveCartToOrderTemplateContentState): void;\n}\n\nexport interface ISaveCartToOrderTemplateComponent extends IComponent {\n onClick(): (\n event: React.MouseEvent,\n props: ISaveCartToOrderTemplateComponentProps,\n state: ISaveCartToOrderTemplateStateManager\n ) => void;\n}\n\nconst onDismiss = (state: ISaveCartToOrderTemplateStateManager): void => {\n state.setContent({ color: 'success', showAlert: false });\n};\n\nconst SaveCartToOrderTemplateActions = {\n onDismiss\n};\n\nconst SaveCartToOrderTemplate: React.FC = (props: ISaveCartToOrderTemplateComponentProps) => {\n if (!isChannelTypeB2B(props.context.actionContext.requestContext)) {\n return null;\n }\n\n const [chosenOrderTemplate, setChosenOrderTemplate] = useState(undefined);\n const [addedProducts, setAddedProducts] = useState(undefined);\n const [addToOrderTemplateModalOpen, setAddToOrderTemplateModalOpen] = useState(false);\n const [linesAddedToOrderTemplateDialogOpen, setLinesAddedToOrderTemplateDialogOpen] = useState(false);\n const [duplicateItemsWhenAddingToOrderTemplateDialogOpen, setDuplicateItemsWhenAddingToOrderTemplateDialogOpen] = useState(false);\n const [addedLinesCount, setAddedLinesCount] = useState(0);\n const [addedItemsCount, setAddedItemsCount] = useState(0);\n\n const {\n addToOrderTemplateDialogResources,\n createOrderTemplateDialogResources,\n createOrderTemplateFromCartButton,\n createOrderTemplateFromCartButtonTooltip\n } = props;\n\n const onDuplicateDialogCancel = () => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setAddToOrderTemplateModalOpen(true);\n }, 500);\n };\n const isMultipleCatalogFeatureEnabledInHq = props.isMultipleCatalogFeatureEnabledInHq || false;\n const overrideQuantity = async () => {\n const newLinesToupdate: ProductListLine[] = [];\n\n for (const cartLine of props.data.cartLines) {\n const getLinesInput = new GetProductListLinesInput(chosenOrderTemplate?.Id!, cartLine.ProductId!.toString());\n const linesState = await getProductListLines(getLinesInput, props.context.actionContext);\n const length = 1;\n const linesToUpdate = linesState.lines.filter(line => line.productListLine.ProductId === cartLine.ProductId);\n if (linesToUpdate.length !== length) {\n // skip new line if not exist already top update\n continue;\n }\n const lineToUpdate = linesToUpdate[0].productListLine;\n lineToUpdate.UnitOfMeasure = cartLine.UnitOfMeasureSymbol || 'ea';\n lineToUpdate.Quantity = cartLine.Quantity!;\n if (isMultipleCatalogFeatureEnabledInHq) {\n lineToUpdate.CatalogId = cartLine.CatalogId;\n }\n newLinesToupdate.push(lineToUpdate);\n }\n\n await updateProductListLinesAsync(\n {\n callerContext: props.context.actionContext\n },\n chosenOrderTemplate!.Id,\n newLinesToupdate\n ).then(async updatedLines => {\n updateLinesCounts(updatedLines);\n const allProductInputs: FullProductInput[] = getFullProductsDetails(updatedLines);\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n setAddedProducts(allProducts);\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(false);\n setTimeout(() => {\n setLinesAddedToOrderTemplateDialogOpen(true);\n }, 500);\n });\n };\n const getFullProductsDetails = (productLines: ProductListLine[]) => {\n const allProdInputs: FullProductInput[] = [];\n productLines.forEach(lines => {\n if (lines.ProductId) {\n allProdInputs.push(\n new FullProductInput(\n lines.ProductId,\n props.context.actionContext.requestContext.apiSettings,\n getProductDetailsCriteriaFromActionInput(props.context.actionContext),\n props.context.actionContext.requestContext\n )\n );\n }\n });\n return allProdInputs;\n };\n\n const onOrderTemplateSelected = async (orderTemplate: ProductList) => {\n setChosenOrderTemplate(orderTemplate);\n const allProductListLines = props.data.cartLines?.map(cartLine => {\n const productListLineToAdd: ProductListLine = {\n ProductListId: orderTemplate.Id,\n ProductId: cartLine.ProductId,\n Quantity: cartLine.Quantity,\n UnitOfMeasure: cartLine.UnitOfMeasureSymbol\n };\n return productListLineToAdd;\n });\n\n const allProductInputs: FullProductInput[] = getFullProductsDetails(allProductListLines);\n const allProducts = await getFullProducts(allProductInputs, props.context.actionContext);\n\n // Filter out products with keyed in price\n const filteredProductListLines = props.data.cartLines\n .filter(cartline => !cartline.IsPriceKeyedIn)\n .map(cartLine => {\n const productListLineToAdd: ProductListLine = {\n ProductListId: orderTemplate.Id,\n ProductId: cartLine.ProductId,\n Quantity: cartLine.Quantity,\n UnitOfMeasure: cartLine.UnitOfMeasureSymbol,\n ...(isMultipleCatalogFeatureEnabledInHq && { catalogId: cartLine.CatalogId })\n };\n\n return productListLineToAdd;\n });\n\n await addProductListLinesAsync({ callerContext: props.context.actionContext }, orderTemplate.Id, filteredProductListLines)\n .then(filteredAddedLines => {\n updateLinesCounts(filteredAddedLines);\n setAddedProducts(allProducts);\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setLinesAddedToOrderTemplateDialogOpen(true);\n }, 500);\n })\n .catch(error => {\n if (error.name !== 'Microsoft_Dynamics_Commerce_Runtime_DuplicateObject') {\n return AsyncResult.reject(error);\n }\n setAddToOrderTemplateModalOpen(false);\n setTimeout(() => {\n setDuplicateItemsWhenAddingToOrderTemplateDialogOpen(true);\n }, 500);\n return AsyncResult.resolve();\n });\n };\n const updateLinesCounts = (lines: ProductListLine[]) => {\n setAddedLinesCount(lines.length);\n setAddedItemsCount(lines.map(line => line.Quantity || 1).reduce((firstQuantity, secondQuantity) => firstQuantity + secondQuantity));\n };\n const onSaveCartToOrderTemplateClick = () => {\n setAddToOrderTemplateModalOpen(true);\n };\n\n const areAllCartlinesPriceKeyedIn = props.data.cartLines.filter(cartline => !cartline.IsPriceKeyedIn).length === 0;\n\n const addToOrderTemplateRef: React.RefObject = React.createRef();\n\n return (\n <>\n \n {chosenOrderTemplate && addedProducts && (\n \n )}\n \n \n {createOrderTemplateFromCartButton}\n \n {areAllCartlinesPriceKeyedIn && (\n \n {createOrderTemplateFromCartButtonTooltip}\n \n )}\n \n );\n};\n\nexport const SaveCartToOrderTemplateComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n ISaveCartToOrderTemplateComponent\n>('SaveCartToOrderTemplate', { component: SaveCartToOrderTemplate, ...SaveCartToOrderTemplateActions });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICoreContext } from '@msdyn365-commerce/core-internal';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { ISwatchItem, SwatchComponent } from '../../product-dimension';\n\n/**\n * Props for product component swatch.\n */\nexport interface IProductComponentV2SwatchProps {\n context: ICoreContext;\n swatches: ISwatchItem[];\n dimensionType?: string;\n onSelectDimension(coreContext: ICoreContext, swatchItem: ISwatchItem, dimensionType?: string): void;\n}\n\n/**\n * Swatch for the product component.\n * @param props - Swatch props.\n * @returns React element.\n */\nexport const ProductComponentV2SwatchComponent: React.FC = (props: IProductComponentV2SwatchProps) => {\n const { context, dimensionType, swatches, onSelectDimension } = props;\n\n const onSelectItem = React.useCallback(\n (item: ISwatchItem) => {\n onSelectDimension(context, item, dimensionType);\n },\n [onSelectDimension, context, dimensionType]\n );\n\n if (ArrayExtensions.hasElements(swatches)) {\n return ;\n }\n\n return
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { extend, IClientDimension, IDictionaryStringString, IGrid } from '../utilities';\n\n/**\n * Timed Text Markup Language (TTML).\n * See http://www.w3.org/TR/ttml1/ for more details.\n */\nexport const xmlNS = 'http://www.w3.org/XML/1998/namespace';\n\n/**\n * @interface ITtmlSettings\n * @classdesc - The ITtmlSettings interface contract.\n */\nexport interface ITtmlSettings {\n ttmlNamespace?: string;\n ttmlStyleNamespace?: string;\n ttmlParameterNamespace?: string;\n ttmlMetaNamespace?: string;\n idPrefix?: string;\n mediaFrameRate?: number;\n mediaFrameRateMultiplier?: number;\n mediaSubFrameRate?: number;\n mediaTickRate?: number;\n supportedTimeBase?: string;\n rootContainerRegionDimensions?: IClientDimension | null;\n relatedMediaObjectRegion?: IClientDimension | null;\n cellResolution?: IGrid;\n defaultRegionStyle?: IDictionaryStringString;\n fontMap?: IDictionaryStringString;\n log?: Function;\n}\n\n/**\n *\n * The TtmlSettings class.\n * The TtmlSettings class is used to pass settings between the ttml parser, the ttml context, and the outside world.\n * It supplies default values which can be overridden via overrides passed to the constructor.\n */\nexport class TtmlSettings implements ITtmlSettings {\n /**\n * @name - ttmlNamespace\n * @description - The ttml namespace to use.\n * @public\n * @type {string}\n */\n public ttmlNamespace: string = 'http://www.w3.org/ns/ttml';\n\n /**\n * @name - ttmlStyleNamespace\n * @description - The ttml style namespace to use.\n * @public\n * @type {string}\n */\n public ttmlStyleNamespace: string = 'http://www.w3.org/ns/ttml#styling';\n\n /**\n * @name - ttmlParameterNamespace\n * @description - The ttml parameter namespace to use.\n * @public\n * @type {string}\n */\n public ttmlParameterNamespace: string = 'http://www.w3.org/ns/ttml#parameter';\n\n /**\n * @name - ttmlMetaNamespace\n * @description - The ttml metadata namespace to use.\n * @public\n * @type {string}\n */\n public ttmlMetaNamespace: string = 'http://www.w3.org/ns/ttml#metadata';\n\n /**\n * @name - idPrefix\n * @description - The id prefix to use so ids copied from the ttml doc are unique.\n * @public\n * @type {string}\n */\n public idPrefix: string = '';\n\n /**\n * @name - mediaFrameRate\n * @description - The media frame rate to use.\n * @public\n * @type {number}\n */\n public mediaFrameRate: number = 30;\n\n /**\n * @name - mediaFrameRateMultiplier\n * @description - The media frame rate multiplier to use.\n * @public\n * @type {number}\n */\n public mediaFrameRateMultiplier: number = 1;\n\n /**\n * @name - mediaSubFrameRate\n * @description - The media sub frame rate to use.\n * @public\n * @type {number}\n */\n public mediaSubFrameRate: number = 1;\n\n /**\n * @name - mediaTickRate\n * @description - The media tick rate to use.\n * @public\n * @type {number}\n */\n public mediaTickRate: number = 1000;\n\n /**\n * @name - supportedTimeBase\n * @description - The support timebase value.\n * @public\n * @type {string}\n */\n public supportedTimeBase: string = 'media';\n\n /**\n * @name - rootContainerRegionDimensions\n * @description - The root container's dimensions.\n * @public\n * @type {IClientDimension}\n */\n public rootContainerRegionDimensions: IClientDimension | null = null;\n\n /**\n * @name - relatedMediaObjectRegion\n * @description - The media object's dimensions.\n * @public\n * @type {IClientDimension}\n */\n public relatedMediaObjectRegion: IClientDimension | null = null;\n\n /**\n * @name - cellResolution\n * @description - The default cell grid.\n * @public\n * @type {IGrid}\n */\n public cellResolution: IGrid = { rows: 15, columns: 32 };\n\n /**\n * @name - defaultRegionStyle\n * @description - The default region style.\n * @public\n * @type {IDictionaryStringString}\n */\n public defaultRegionStyle: IDictionaryStringString = {\n backgroundColor: 'transparent',\n color: '#E8E9EA',\n direction: 'ltr',\n display: 'auto',\n displayAlign: 'before',\n extent: 'auto',\n fontFamily: 'default',\n fontSize: '1c',\n fontStyle: 'normal',\n fontWeight: 'normal',\n lineHeight: 'normal',\n opacity: '1',\n origin: 'auto',\n overflow: 'hidden',\n padding: '0',\n showBackground: 'always',\n textAlign: 'start',\n textDecoration: 'none',\n textOutline: 'none',\n unicodeBidi: 'normal',\n visibility: 'visible',\n wrapOption: 'normal',\n writingMode: 'lrtb'\n };\n\n /**\n * @name - fontMap\n * @description - The default font map.\n * @public\n * @type {IDictionaryStringString}\n */\n public fontMap: IDictionaryStringString = {};\n\n /**\n * @name - log\n * @description - The logging function to use in debug mode.\n * @public\n * @type {Function}\n */\n public log: Function | undefined;\n\n /*\n * Constructor for the TtmlSettings class.\n */\n public constructor(settingsOverrides?: ITtmlSettings) {\n // These are from the Simple Delivery Profile\n // Per spec recommendation that default be monospace sans serif.\n this.fontMap.default = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.monospaceSerif = 'Courier';\n this.fontMap.proportionalSerif = 'Times New Roman, Serif';\n this.fontMap.monospaceSansSerif = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.proportionalSansSerif = 'Arial, Sans-serif';\n this.fontMap.casual = 'Verdana';\n this.fontMap.cursive = 'Zapf-Chancery, Segoe script, Cursive';\n this.fontMap.smallCaps = 'Arial, Helvetica';\n\n // These are others from the broader ttml (v1.0)\n this.fontMap.monospace = 'Lucida sans typewriter, Lucida console, Consolas';\n this.fontMap.sansSerif = 'Arial, Sans-serif';\n this.fontMap.serif = 'Times New Roman, Serif';\n\n if (settingsOverrides) {\n extend(this, settingsOverrides);\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 {\n addClass,\n css,\n extend,\n format,\n getDimensions,\n getText,\n IClientDimension,\n IDictionaryStringString,\n isNullOrWhiteSpace,\n nodeListToArray,\n trim\n} from '../utilities';\nimport { ITtmlEvent, TtmlParser } from './ttml-parser';\nimport { TtmlSettings, xmlNS } from './ttml-settings';\n\n// Timed Text Markup Language (TTML).\n// See http://www.w3.org/TR/ttml1/ for more details.\n\n/**\n * @interface ITtmlContext\n * @classdesc - The TtmlContext interface contract.\n */\nexport interface ITtmlContext {\n setOwnerDocument(ownerDocument: Document): void;\n updateRelatedMediaObjectRegion(dimensions: IClientDimension): boolean;\n resetCurrentEvents(): void;\n hasEvents(): boolean;\n updateCurrentEvents(time: number): boolean;\n getCues(time: number): HTMLElement[];\n}\n\n/**\n * @interface ITtmlTranslationResult\n * @classdesc - The ITtmlTranslationResult interface contract.\n */\ninterface ITtmlTranslationResult {\n outerNode: HTMLElement | null;\n innerNode: HTMLElement | null;\n inheritableStyleSet?: IDictionaryStringString | null;\n}\n\n/**\n * @interface ITtmlPruneResult\n * @classdesc - The ITtmlPruneResult interface contract.\n */\ninterface ITtmlPruneResult {\n prunedElement: Element;\n hasPreservedContent: boolean;\n}\n\n/**\n * The TtmlContext. An instance of this class is returned from the TttmlParser.parse() method after it parses a ttml file.\n * This context is then used by the VideoClosedCaptions object to get the captions for any play position of the video.\n */\nexport class TtmlContext implements ITtmlContext {\n /**\n * @name - lengthRegEx\n * The regular expression pattern used in ttml->css text outline conersion.\n * @static\n * @private\n * @type {RegExp}\n */\n private static readonly lengthRegEx: RegExp = /\\s*(\\d+\\.*\\d*)(.*)\\s*/;\n\n /**\n * @name - rgbaRegEx\n * The regular expression pattern used in ttml->css color conersion.\n * @static\n * @private\n * @type {RegExp}\n */\n private static readonly rgbaRegEx: RegExp = /\\s*rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)\\s*/;\n\n /**\n * @name - TtmlNamedColorMap\n * The table used to map named ttml color values to css color values.\n * @static\n * @private\n * @type {IDictionaryStringString}\n */\n private static readonly TtmlNamedColorMap: IDictionaryStringString = {\n transparent: 'rgba(0,0,0,0)',\n black: 'rgba(0,0,0,1)',\n silver: 'rgba(192,192,192,1)',\n gray: 'rgba(128,128,128,1)',\n white: 'rgba(255,255,255,1)',\n maroon: 'rgba(128,0,0,1)',\n red: 'rgba(255,0,0,1)',\n purple: 'rgba(128,0,128,1)',\n fuchsia: 'rgba(255,0,255,1)',\n magenta: 'rgba(255,0,255,1)',\n green: 'rgba(0,128,0,1)',\n lime: 'rgba(0,255,0,1)',\n olive: 'rgba(128,128,0,1)',\n yellow: 'rgba(255,255,0,1)',\n navy: 'rgba(0,0,128,1)',\n blue: 'rgba(0,0,255,1)',\n teal: 'rgba(0,128,128,1)',\n aqua: 'rgba(0,255,255,1)',\n cyan: 'rgba(0,255,255,1)'\n };\n\n /**\n * @name - events\n * The set of all ttml events.\n * @public\n * @type {ITtmlEvent[]}\n */\n public events!: ITtmlEvent[];\n\n /**\n * @name - settings\n * The ttml settings.\n * @public\n * @type {TtmlSettings}\n */\n public settings!: TtmlSettings;\n\n /**\n * @name - styleSetCache\n * The ttml styleSet cache.\n * @public\n * @type {IDictionaryStringString[]}\n */\n public styleSetCache!: IDictionaryStringString[];\n\n /**\n * @name - rootContainerRegion\n * The root container region.\n * @public\n * @type {Element}\n */\n public rootContainerRegion!: Element;\n\n /**\n * @name - root\n * The root element.\n * @public\n * @type {Element}\n */\n public root!: Element;\n\n /**\n * @name - body\n * The body element.\n * @public\n * @type {Element}\n */\n public body!: Element;\n\n /**\n * @name - layout\n * The layout element.\n * @public\n * @type {Element}\n */\n public layout!: Element;\n\n /**\n * @name - ownerDocument\n * The owner document for this context. Used to create html elements.\n * @private\n * @type {Document}\n */\n private ownerDocument!: Document;\n\n /**\n * @name - currentEvents\n * The current set of temporally active events.\n * @private\n * @type {ITtmlEvent[]}\n */\n private currentEvents!: ITtmlEvent[];\n\n /**\n * @name - currentEventsTime\n * The time the currentEvents was populated.\n * @private\n * @type {number}\n */\n private currentEventsTime!: number;\n\n /**\n * Converts a ttml text decoration style value to a css one.\n * @param ttmlTextDecoration - The ttml value.\n * @returns - The css value.\n */\n private static _ttmlToCssTextDecoration(ttmlTextDecoration: string): string {\n let textDecoration = '';\n const parts = ttmlTextDecoration.split(/\\s+/);\n\n // Since we have no CSS for the 'no' values just replace them all with a none at the front of the list.\n for (const value of parts) {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'none':\n case 'noUnderline':\n case 'noLineThrough':\n case 'noOverline':\n textDecoration = 'none';\n }\n }\n\n // Then append all the others.\n for (const value of parts) {\n switch (value) {\n case 'none':\n case 'noUnderline':\n case 'noLineThrough':\n case 'noOverline':\n break;\n case 'lineThrough':\n textDecoration += ' line-through';\n break;\n default:\n textDecoration += ` ${value}`;\n }\n }\n\n return trim(textDecoration);\n }\n\n /**\n * Converts a ttml text color style value to a css one.\n * #RRGGBB and rgb(rrr,ggg,bbb) do not need conversion and are not modified.\n * #RRGGBBAA is modified because css doesn't support it (at least as implemented in todays browsers).\n * rgba(rrr,ggg,bbb,aaa) is converted to rgba(rrr,ggg,bbb,0-1).\n * ttml namedColors are converted to rgb(rrr,ggg,bbb) in the unlikely event that their alpha (only) is overridden.\n * @param color - The ttml value.\n * @returns - The css value.\n */\n private static _ttmlToCssColor(color: string): string {\n let mappedColor = color;\n\n color = color.toLowerCase();\n\n if (color.startsWith('rgba')) {\n const parts = TtmlContext.rgbaRegEx.exec(color);\n\n if (parts && parts.length === 5) {\n const red = parts[1];\n const green = parts[2];\n const blue = parts[3];\n const alpha = Number.parseInt(parts[4], 10);\n\n mappedColor = format('rgba({0},{1},{2},{3})', red, green, blue, Math.round((alpha * 100) / 255) / 100);\n }\n } else if (color.startsWith('#') && color.length === 9) {\n const red = Number.parseInt(color.substr(1, 2), 16);\n const green = Number.parseInt(color.substr(3, 2), 16);\n const blue = Number.parseInt(color.substr(5, 2), 16);\n const alpha = Number.parseInt(color.substr(7, 2), 16);\n\n mappedColor = format('rgba({0},{1},{2},{3})', red, green, blue, Math.round((alpha * 100) / 255) / 100);\n } else if (TtmlContext.TtmlNamedColorMap[color]) {\n mappedColor = TtmlContext.TtmlNamedColorMap[color];\n }\n\n return mappedColor;\n }\n\n /**\n * Applies default styles to the element to match the ttml defaults.\n * @param element - The element to set the default styles on.\n * @returns - The specified element (for chaining).\n */\n private static _defaultStyle(element: HTMLElement): HTMLElement {\n // Set some element styles to our ttml defaults for them.\n css(element, 'background-color', TtmlContext.TtmlNamedColorMap.transparent);\n css(element, 'offset', '0');\n css(element, 'margin', '0');\n css(element, 'padding', '0');\n css(element, 'border', '0');\n return element;\n }\n\n /**\n * Set the context's owner document. It will use this to create elements during translation.\n * @param ownerDocument - The owner document for this context.\n */\n public setOwnerDocument(ownerDocument: Document): void {\n this.ownerDocument = ownerDocument;\n }\n\n /**\n * Updates the context's media object region.\n * @public\n * @param dimensions - The desired dimensions for the region.\n * @returns - True if the dimensions where changed, otherwise false.\n */\n public updateRelatedMediaObjectRegion(dimensions: IClientDimension): boolean {\n if (\n dimensions !== null &&\n (!this.settings.relatedMediaObjectRegion ||\n dimensions.width !== this.settings.relatedMediaObjectRegion.width ||\n dimensions.height !== this.settings.relatedMediaObjectRegion.height)\n ) {\n this.settings.relatedMediaObjectRegion = {\n width: dimensions.width,\n height: dimensions.height\n };\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Indicates whether or not the context has events.\n * @returns - True if the context has events, otherwise false.\n */\n public hasEvents(): boolean {\n return this.events && !!this.events.length;\n }\n\n /**\n * Resets the context's currentEvents.\n */\n public resetCurrentEvents(): void {\n this.currentEvents = [];\n }\n\n /**\n * Updates the context's currentEvents if there are new events for the specified time.\n * @param time - The time to get events for.\n * @returns - True if the events for the specified time are different than the currentEvents, otherwise false.\n */\n public updateCurrentEvents(time: number): boolean {\n const timeEvents = this._getTemporallyActiveEvents(time);\n\n // As a shortcut compare lengths first.\n const currentEventsLength = this.currentEvents ? this.currentEvents.length : 0;\n const timeEventsLength = timeEvents ? timeEvents.length : 0;\n\n if (currentEventsLength !== timeEventsLength) {\n this.currentEventsTime = time;\n this.currentEvents = timeEvents;\n return true;\n }\n\n if (this.currentEvents) {\n for (let index = 0; index < currentEventsLength; index++) {\n if (this.currentEvents[index].time !== timeEvents[index].time) {\n this.currentEventsTime = time;\n this.currentEvents = timeEvents;\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * The set of cues that apply to the specified time.\n * @param time - The time to get cues for.\n * @returns - The set of cues for the specified time, otherwise an empty [].\n */\n public getCues(time: number): HTMLElement[] {\n let cues: HTMLElement[] = [];\n\n if (this.currentEventsTime !== time) {\n this.updateCurrentEvents(time);\n }\n\n // Find all the region elements in the TTML namespace.\n const preserveSpace = TtmlParser.getAttributeNS(this.root, 'space', xmlNS) === 'preserve';\n const regions = (this.layout ? this.layout.getElementsByTagNameNS(this.settings.ttmlNamespace, 'region') : []);\n\n for (const region of regions) {\n const regionId = TtmlParser.getAttributeNS(region, 'id', xmlNS);\n const anonymousId = region.getAttribute('data-isanonymous');\n\n if (anonymousId || regionId) {\n const translation = this._translate(region, this.settings.defaultRegionStyle, preserveSpace, time, this.translateToHtml);\n\n if (translation.outerNode && translation.innerNode) {\n const innerNode = translation.innerNode;\n const outerNode = translation.outerNode;\n\n // Create a new subtree for the body element, prune elements\n // not associated with the region, and if its not empty then\n // select it into this region by adding it to div container.\n for (const event of this.events) {\n if (event.element) {\n if (this._isInRegion(event.element, anonymousId ? '' : regionId)) {\n const pruneResult = this._prune(\n event.element,\n translation.inheritableStyleSet!,\n preserveSpace,\n time,\n this.translateToHtml\n );\n let cueBody: Element | null = pruneResult.prunedElement;\n\n if (!pruneResult.hasPreservedContent && cueBody && !trim(getText(cueBody)).length) {\n cueBody = null;\n }\n\n if (cueBody) {\n innerNode.appendChild(cueBody);\n }\n }\n }\n }\n\n const showAlways = outerNode.getAttribute('data-showBackground') === 'always';\n\n if (showAlways || innerNode.children.length) {\n if (showAlways) {\n // Just needed internally for the previous check, don't pass through on the cue.\n outerNode.removeAttribute('data-showBackground');\n }\n\n cues.push(outerNode);\n }\n }\n }\n }\n\n // If we ended up with any displayable cues add them all to the rootContainerRegion cue.\n if (cues.length) {\n const rcr = this._translate(this.rootContainerRegion, { overflow: 'hidden', padding: '0' }, false, time, this.translateToHtml);\n\n for (const cue of cues) {\n rcr.innerNode!.appendChild(cue);\n }\n\n cues = [];\n cues.push(rcr.outerNode!);\n }\n\n return cues;\n }\n\n /**\n * Get the list of temporally active events for the specified time.\n * @private\n * @param time - The time to get the active events for.\n * @returns - The set of active events for the specified time, otherwise an empty [].\n */\n private _getTemporallyActiveEvents(time: number): ITtmlEvent[] {\n return this.events.filter(event => {\n return event.element ? this._isTemporallyActive(event.element, time) : true;\n });\n }\n\n /**\n * Determines whether or not the specified element is temporally active at the specified time.\n * @param element - The element to check.\n * @param time - The time to check against.\n * @returns - True if the element is active at the specified time, otherwise false.\n */\n private _isTemporallyActive(element: Element, time: number): boolean {\n return (\n (Number.parseInt(element.getAttribute('data-time-start')!, 10) || 0) <= time &&\n time < (Number.parseInt(element.getAttribute('data-time-end')!, 10) || 0)\n );\n }\n\n /**\n * Convert a ttml element into the equivalent in another format via the supplied translator function.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The element's inherited style set.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param translator - The translator function to use. Originally supported both xml/html but is always using html in MWF.\n * @returns - A ITtmlTranslationResult instance containing the translation results.\n */\n private _translate(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n preserveSpace: boolean,\n time: number,\n translator: Function\n ): ITtmlTranslationResult {\n let translation: ITtmlTranslationResult;\n let computedStyleSet: IDictionaryStringString;\n\n if (this._isTemporallyActive(element, time)) {\n const tag = this._getTagNameEquivalent(element);\n\n computedStyleSet = this._getComputedStyleSet(element, inheritedStyleSet, tag, time);\n\n if (computedStyleSet.display !== 'none') {\n const applicableStyleSet = this._getApplicableStyleSet(computedStyleSet, tag);\n\n translation = translator(element, applicableStyleSet, preserveSpace);\n\n return {\n outerNode: translation.outerNode,\n innerNode: translation.innerNode,\n inheritableStyleSet: this._getInheritableStyleSet(computedStyleSet)\n };\n }\n }\n\n return { outerNode: null, innerNode: null, inheritableStyleSet: null };\n }\n\n /**\n * Convert a ttml element into the its equivalent html element.\n * @param element - The ttml element to translate.\n * @param applicableStyleSet - The style set applicable to this element.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @returns - A ITtmlTranslationResult instance containing the translation results.\n */\n private readonly translateToHtml = (\n element: Element,\n applicableStyleSet: IDictionaryStringString,\n preserveSpace: boolean\n ): ITtmlTranslationResult => {\n let translation: HTMLElement;\n let innerNode: HTMLElement;\n const name = this._getTagNameEquivalent(element);\n let htmlName = '';\n let htmlClass = '';\n switch (name) {\n case 'ttml:region':\n htmlClass = 'cue ';\n\n /* Falls through */\n // break;\n case 'ttml:rootcontainerregion':\n case 'ttml:body':\n case 'ttml:div':\n htmlName = 'div';\n break;\n case 'ttml:p':\n htmlName = 'p';\n break;\n case 'ttml:span':\n htmlName = 'span';\n break;\n case 'ttml:br':\n htmlName = 'br';\n break;\n default:\n }\n\n const role = TtmlParser.getAttributeNS(element, 'role', this.settings.ttmlMetaNamespace);\n\n if (role) {\n htmlClass += ` ${role}`;\n }\n\n const agent = TtmlParser.getAttributeNS(element, 'agent', this.settings.ttmlMetaNamespace);\n\n if (agent) {\n htmlClass += ` ${agent}`;\n }\n\n // Hack until display:ruby on other elements works.\n if (role === 'x-ruby') {\n htmlName = 'ruby';\n } else if (role === 'x-rubybase') {\n htmlName = 'rb';\n } else if (role === 'x-rubytext') {\n htmlName = 'rt';\n }\n\n if (!isNullOrWhiteSpace(htmlName)) {\n translation = TtmlContext._defaultStyle(this.ownerDocument.createElement(htmlName));\n addClass(translation, trim(htmlClass));\n\n const title = TtmlParser.getAttributeNS(element, 'title', this.settings.ttmlMetaNamespace);\n\n if (title) {\n translation.setAttribute('title', title);\n }\n\n const id = TtmlParser.getAttributeNS(element, 'id', xmlNS);\n\n if (id && this.settings.idPrefix) {\n // Migrate the ttml doc id's over to the html markup.\n // Use idPrefix to ensure there are no name clases on id's already in target doc.\n translation.setAttribute('id', this.settings.idPrefix + id);\n }\n\n if (name === 'ttml:region') {\n // To get a to display properly we are actually going to need to create two nested
s\n // This is because for displayAlign to work we need a table-cell
inside a table
.\n innerNode = translation.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('div')));\n innerNode.setAttribute('style', 'display:table; border-spacing:0; cell-spacing:0; cell-padding:0; width:100%; height:100%');\n innerNode = innerNode.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('div')));\n css(innerNode, 'display', 'table-cell');\n\n // Apply the displayAlign style to inner table-cell
\n if (applicableStyleSet.displayAlign) {\n this._translateStyle(name, innerNode, { displayAlign: applicableStyleSet.displayAlign });\n\n // Then remove displayAlign from the applicableStyleSet so as not to also later apply it to the outer table
\n applicableStyleSet.displayAlign = '';\n }\n }\n\n // If we're preserving space add an inner with 'white-space: pre'.\n // This is how we implement preserving space in css and we need an inner\n // span because the 'real' span will already be setting it's css white-space\n // value to either normal or nowrap and we can't collide with that.\n if (preserveSpace && name === 'ttml:span') {\n innerNode = translation.appendChild(TtmlContext._defaultStyle(this.ownerDocument.createElement('span')));\n css(innerNode, 'white-space', 'pre');\n }\n\n // Default some css properties that we don't want to inadvertantly end up\n // inheriting values for that might cause adverse layout impacts for us.\n css(translation, 'position', 'static');\n css(translation, 'width', '100%');\n\n // Copy style from element over to html, translating into CSS as we go.\n this._translateStyle(name, translation, applicableStyleSet);\n }\n\n return { outerNode: translation!, innerNode: innerNode! ? innerNode! : translation! };\n };\n\n /**\n * Translate the ttml styles in a styleSet to their equivalent css styles and apply them to the specified html element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param element - The ttml element to translate.\n * @param applicableStyleSet - The style set applicable to this element.\n */\n private _translateStyle(tagName: string, element: HTMLElement, applicableStyleSet: IDictionaryStringString): void {\n for (const style in applicableStyleSet) {\n if (applicableStyleSet[style]) {\n this._applyStyle(element, tagName, style, applicableStyleSet[style]);\n }\n }\n }\n\n /**\n * Convert the element if it is in the region, then recurse into its contents.\n * If it ends up with no children then we dont add it to the region, we prune it.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The style set inherited by this element.\n * @param preserveSpace - Indicates whether or not space should be preserved.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param translator - The translator function to use. Originally supported both xml/html but is always using html in MWF.\n * @param [ignoreAncestors] - Specifies whether or not to ignore the element's ancestors.\n * @returns - A ITtmlPruneResult instance containing the prune results.\n */\n private _prune(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n preserveSpace: boolean,\n time: number,\n translator: Function,\n ignoreAncestors: boolean = false\n ): ITtmlPruneResult {\n let outerNode: Element;\n let hasPreservedContent = false;\n\n let translation = this._translate(element, inheritedStyleSet, preserveSpace, time, translator);\n\n if (translation.outerNode !== null) {\n const tag = this._getTagNameEquivalent(element);\n\n outerNode = translation.outerNode;\n let innerNode = translation.innerNode;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.COMMENT_NODE) {\n // Do nothing.\n } else if (child.nodeType === Node.TEXT_NODE) {\n innerNode!.appendChild(document.createTextNode((child).data));\n\n if (preserveSpace && tag === 'ttml:span') {\n hasPreservedContent = true;\n }\n } else {\n let childPreserveSpace = preserveSpace;\n const spaceAttr = TtmlParser.getAttributeNS(child, 'space', xmlNS);\n\n if (spaceAttr) {\n childPreserveSpace = spaceAttr === 'preserve';\n }\n\n const pruneRecord = this._prune(\n child,\n translation.inheritableStyleSet!,\n childPreserveSpace,\n time,\n translator,\n true\n );\n\n hasPreservedContent = hasPreservedContent || pruneRecord.hasPreservedContent;\n\n if (pruneRecord.prunedElement) {\n innerNode!.appendChild(pruneRecord.prunedElement);\n }\n }\n }\n\n // Now traverse back till the body and build the corresponding structures.\n if (!ignoreAncestors) {\n let ancestor = element.parentNode;\n\n while (ancestor !== null && ancestor.nodeType === Node.ELEMENT_NODE && ancestor !== this.body) {\n translation = this._translate(ancestor, inheritedStyleSet, preserveSpace, time, translator);\n if (translation.outerNode) {\n innerNode = translation.innerNode;\n innerNode!.appendChild(outerNode);\n outerNode = translation.outerNode;\n } else {\n break;\n }\n\n ancestor = ancestor.parentNode;\n }\n }\n }\n\n return { prunedElement: outerNode!, hasPreservedContent };\n }\n\n /**\n * Build this element's ttml computed styleset.\n * This is used as the base styleSet to filter the inherited styleSet from for an element's children.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The styleSet inherited by this element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @returns - The resulting computed styleSet.\n */\n private _getComputedStyleSet(\n element: Element,\n inheritedStyleSet: IDictionaryStringString,\n tagName: string,\n time: number\n ): IDictionaryStringString {\n // Start off with a clone of the inherited styleset.\n const computedStyleSet = extend({}, inheritedStyleSet);\n\n // Iterate over this nodes ttml styles and pave them onto it's computed styleset.\n extend(computedStyleSet, this.styleSetCache[Number.parseInt(element.getAttribute('data-styleSet')!, 10)]);\n\n // Apply any temporally active style animations.\n const sets = element.getElementsByTagNameNS(this.settings.ttmlNamespace, 'set');\n\n for (const set of nodeListToArray(sets)) {\n if (this._isTemporallyActive(set, time)) {\n TtmlParser.applyInlineStyles(this.settings, computedStyleSet, set);\n }\n }\n\n if (tagName === 'ttml:p' && computedStyleSet.lineHeight === 'normal') {\n // Special case for

's with tts:lineHeight='normal'\n // This means use the largest tts:fontSize value of any\n // of it's descendant 's. Since we don't know what\n // values those might be until translateStyle we'll just\n // save them all and figure it out then.\n const fontSizes = this._appendSpanFontSizes(element, this._getInheritableStyleSet(computedStyleSet), time, '');\n\n if (fontSizes) {\n computedStyleSet['computed-lineHeight'] = fontSizes;\n }\n }\n\n return computedStyleSet;\n }\n\n /**\n * Build this tags ttml applicable styleset from the specified computed styleSet to apply only to it.\n * @param computedStyleSet - The style set inherited by this element.\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @returns - The resulting applicable styleSet.\n */\n private _getApplicableStyleSet(computedStyleSet: IDictionaryStringString, tagName: string): IDictionaryStringString {\n const applicableStyleSet: IDictionaryStringString = {};\n\n // Special case extent to the front of the list as later processing of\n // padding will depend on it having already been set first.\n if (computedStyleSet.extent && this._isStyleApplicable(tagName, 'extent')) {\n applicableStyleSet.extent = computedStyleSet.extent;\n }\n\n // Special case color to the front of the list as later processing of\n // textOutline will depend on it having already been set first.\n if (computedStyleSet.color && this._isStyleApplicable(tagName, 'color')) {\n applicableStyleSet.color = computedStyleSet.color;\n }\n\n for (const style in computedStyleSet) {\n if (this._isStyleApplicable(tagName, style)) {\n applicableStyleSet[style] = computedStyleSet[style];\n }\n }\n\n return applicableStyleSet;\n }\n\n /**\n * Determines if the specified style applies to the specified ttml tagName.\n * NOTE: The ttml spec doesn't mention ttml:br in the styles 'applies to' sections but\n * as noted in the span section everything that applies to ttml:span also applies to ttml:br.\n * @private\n * @param tagName - The ttml element tagName. All styles do not apply to all tagNames.\n * @param style - The style to check against the tagName.\n * @returns - True if the ttml:style applies to the ttml:tag, otherwise false.\n */\n private _isStyleApplicable(tagName: string, style: string): boolean {\n switch (style) {\n case 'backgroundColor':\n case 'display':\n case 'visibility':\n return 'ttml:body ttml:div ttml:p ttml:region ttml:rootcontainerregion ttml:span ttml:br'.includes(tagName);\n\n // Technically these font styles do not apply to

s but for some reason the resulting html/css\n // for span/br doesnt compute line-height correctly if the entire containing

(div) isn't all the same...\n case 'fontFamily':\n case 'fontSize':\n case 'fontStyle':\n case 'fontWeight':\n return 'ttml:p ttml:span ttml:br'.includes(tagName);\n\n case 'color':\n case 'textDecoration':\n case 'textOutline':\n case 'wrapOption':\n return 'ttml:span ttml:br'.includes(tagName);\n\n case 'direction':\n case 'unicodeBidi':\n return 'ttml:p ttml:span ttml:br'.includes(tagName);\n\n case 'displayAlign':\n case 'opacity':\n case 'origin':\n case 'overflow':\n case 'padding':\n case 'showBackground':\n case 'writingMode':\n case 'zIndex':\n return 'ttml:region ttml:rootcontainerregion'.includes(tagName);\n\n case 'extent':\n return 'ttml:tt ttml:region ttml:rootcontainerregion'.includes(tagName);\n\n case 'computed-lineHeight':\n case 'lineHeight':\n case 'textAlign':\n return 'ttml:p'.includes(tagName);\n\n default:\n return false;\n }\n }\n\n /**\n * Filters a computed styleSet into an inheritable styleSet subset to pass on to children.\n * Not all styles are inheritable.\n * @private\n * @param computedStyleSet - The computed styleSet to filter.\n * @returns - The resulting inheritable styleSet.\n */\n private _getInheritableStyleSet(computedStyleSet: IDictionaryStringString): IDictionaryStringString {\n const inheritedStyleSet: IDictionaryStringString = {};\n\n for (const style in computedStyleSet) {\n if (computedStyleSet.hasOwnProperty(style)) {\n switch (style) {\n case 'backgroundColor':\n case 'computed-lineHeight':\n case 'display':\n case 'displayAlign':\n case 'extent':\n case 'opacity':\n case 'origin':\n case 'overflow':\n case 'padding':\n case 'showBackground':\n case 'unicodeBidi':\n case 'writingMode':\n case 'zIndex':\n break;\n default:\n inheritedStyleSet[style] = computedStyleSet[style];\n }\n }\n }\n\n return inheritedStyleSet;\n // eslint-disable-next-line max-lines\n }\n\n /**\n * Recurses through an element and it's descendants finding the font sizess of all it's 's.\n * @param element - The ttml element to translate.\n * @param inheritedStyleSet - The element's inherited styleSet.\n * @param time - The time to translate against. Elements and styles are temporally transient.\n * @param value - The list of font sizes to append to.\n * @returns - The value with any additional font sizes appended to it.\n */\n private _appendSpanFontSizes(element: Element, inheritedStyleSet: IDictionaryStringString, time: number, value: string): string {\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n const tag = this._getTagNameEquivalent(child);\n\n if (tag === 'ttml:span') {\n const computedStyleSet = this._getComputedStyleSet(child, inheritedStyleSet, 'ttml:span', time);\n const fontSize = computedStyleSet.fontSize;\n\n if (fontSize) {\n value += (value ? ',' : '') + fontSize;\n }\n\n value = this._appendSpanFontSizes(child, this._getInheritableStyleSet(computedStyleSet), time, value);\n }\n }\n }\n\n return value;\n }\n\n /**\n * Determines whether or not the specified element is associated with the specified region.\n * Ttml defines 5 ordered rules, where the first rule satisfied is used and remaining rules are skipped.\n * @param element - The ttml element to check.\n * @param regionId - The id of the region to see if the element is associated with.\n * @returns - True if the specified element is within the specified region, otherwise false.\n */\n private _isInRegion(element: Element, regionId: string): boolean {\n // Quick test: Out of normal order, but makes following rules simpler.\n // This is a shortcut to check step #4 first\n if (!regionId) {\n return true;\n }\n\n const elemRegion = TtmlParser.getAttributeNS(element, 'region', this.settings.ttmlNamespace);\n\n // 1. If the element specifies a region attribute, then the element is\n // associated with the region referenced by that attribute;\n if (elemRegion === regionId) {\n return true;\n }\n\n if (!elemRegion) {\n // 2. If some ancestor of that element specifies a region attribute, then the element is\n // associated with the region referenced by the most immediate ancestor that specifies\n // this attribute;\n let ancestor = element.parentNode;\n\n while (ancestor !== null && ancestor.nodeType === Node.ELEMENT_NODE) {\n const id = this._getRegionId(ancestor);\n if (id) {\n return id === regionId;\n }\n ancestor = ancestor.parentNode;\n }\n\n // 3. If the element contains a descendant element that specifies a region attribute,\n // then the element is associated with the region referenced by that attribute;\n for (const node of nodeListToArray(element.getElementsByTagName('*'))) {\n if (this._getRegionId(node) === regionId) {\n return true;\n }\n }\n }\n\n // 5. The element is not associated with any region.\n return false;\n }\n\n /**\n * Gets the region id for the specified element.\n * @param element - The ttml element to check.\n * @returns - The id of the region the element is associated with.\n */\n private _getRegionId(element: Element): string {\n let regionId: string;\n\n if (element.nodeType === Node.ELEMENT_NODE && element.namespaceURI === this.settings.ttmlNamespace) {\n if (TtmlParser.getLocalTagName(element) === 'region') {\n regionId = TtmlParser.getAttributeNS(element, 'id', xmlNS);\n } else {\n regionId = TtmlParser.getAttributeNS(element, 'region', this.settings.ttmlNamespace);\n }\n }\n\n return regionId!;\n }\n\n /**\n * Gets the tagName of the element with the current ttml namespace prepended if non-standard.\n * @param element - The ttml element to get the tagName of.\n * @returns - The tagName or '' if the namespace isn't one of the ttml ones.\n */\n private _getTagNameEquivalent(element: Element): string {\n const tagName = TtmlParser.getLocalTagName(element);\n const nameSpace = element.namespaceURI;\n\n if (nameSpace === this.settings.ttmlNamespace) {\n return `ttml:${tagName}`;\n }\n\n if (nameSpace === 'http://www.w3.org/1999/xhtml') {\n return tagName;\n }\n\n return '';\n }\n\n /**\n * Translates the ttml style/value into one or more css styles/values and applies them to the element.\n * @param element - The ttml element to apply the css style(s) too.\n * @param tagName - The ttml tagName associated with the element.\n * @param style - The ttml style name.\n * @param value - The ttml style value.\n */\n // eslint-disable-next-line complexity\n private _applyStyle(element: HTMLElement, tagName: string, style: string, value: string): void {\n let mappedValue = value;\n\n switch (style) {\n case 'color':\n case 'backgroundColor': {\n mappedValue = TtmlContext._ttmlToCssColor(value);\n css(element, style, mappedValue);\n return;\n }\n\n case 'direction':\n case 'display': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'displayAlign': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'before':\n mappedValue = 'top';\n break;\n case 'center':\n mappedValue = 'middle';\n break;\n case 'after':\n mappedValue = 'bottom';\n }\n\n css(element, 'vertical-align', mappedValue);\n return;\n }\n\n case 'extent': {\n let width: string;\n let height: string;\n\n if (value !== 'auto') {\n // Get the individual components.\n const coords = value.split(/\\s+/);\n\n if (coords.length === 2) {\n width = this._ttmlToCssUnits(coords[0], true);\n height = this._ttmlToCssUnits(coords[1], false);\n }\n }\n\n if (!width!) {\n width = `${(this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions.width\n : this.settings.relatedMediaObjectRegion!.width\n ).toString()}px`;\n height = `${(this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions.height\n : this.settings.relatedMediaObjectRegion!.height\n ).toString()}px`;\n }\n\n css(element, 'position', 'absolute');\n css(element, 'width', width!);\n css(element, 'min-width', width!);\n css(element, 'max-width', width!);\n css(element, 'height', height!);\n css(element, 'min-height', height!);\n css(element, 'max-height', height!);\n return;\n }\n\n case 'fontFamily': {\n if (this.settings.fontMap && this.settings.fontMap[value]) {\n mappedValue = this.settings.fontMap[value];\n }\n\n if (value === 'smallCaps') {\n // Need to additionally add font-variant: small-caps.\n css(element, 'fontVariant', 'small-caps');\n }\n\n css(element, style, mappedValue);\n return;\n }\n\n case 'fontSize': {\n const parts = value.split(/\\s+/);\n\n // For two part fontSize values we use the vertical size which is in the second part.\n const size = parts.length > 1 ? parts[1] : parts[0];\n\n // Set the fontsize scaleFactor to 75% (of cell size) to account for ascenders/descenders etc.\n mappedValue = this._ttmlToCssFontSize(size, false, 0.75, tagName === 'ttml:region');\n\n css(element, style, mappedValue);\n return;\n }\n\n case 'fontStyle':\n case 'fontWeight': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'lineHeight': {\n // Spec doesn't qualify what % lengths mean so I'm going to assume it's % of a\n // cell and therefore use fontSize conversion method.\n mappedValue = value === 'normal' ? value : this._ttmlToCssFontSize(value, false);\n\n css(element, 'line-height', mappedValue);\n return;\n }\n\n case 'computed-lineHeight': {\n const values = value.split(',');\n let max = -1;\n\n for (const fontSize of values) {\n // Computed-lineHeight is based off of fontSize so use fontSize conversion method.\n mappedValue = this._ttmlToCssFontSize(fontSize, false);\n\n if (mappedValue && mappedValue.indexOf('px') === mappedValue.length - 2) {\n const height = Number.parseFloat(mappedValue.substr(0, mappedValue.length - 2));\n\n if (!isNaN(height) && height > max) {\n max = height;\n }\n }\n }\n\n if (max >= 0) {\n css(element, 'line-height', `${max}px`);\n }\n\n return;\n }\n\n case 'origin': {\n if (value !== 'auto') {\n // Get the individual components.\n const coords = value.split(/\\s+/);\n\n if (coords.length === 2) {\n css(element, 'position', 'absolute');\n css(element, 'left', this._ttmlToCssUnits(coords[0], true));\n css(element, 'top', this._ttmlToCssUnits(coords[1], false));\n }\n }\n\n return;\n }\n\n case 'opacity': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'padding': {\n const contextRect = getDimensions(element);\n\n // Get the individual components.\n const parts = value.split(/\\s+/);\n let first: string;\n let second: string;\n let third: string;\n let forth: string;\n\n // eslint-disable-next-line default-case\n switch (parts.length) {\n case 1:\n // Value is used for all 4 sides.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[0], true, contextRect!);\n mappedValue = format('{0} {1} {0} {1}', first, second);\n break;\n case 2:\n // First is top/bottom, second is left/right.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n mappedValue = format('{0} {1} {0} {1}', first, second);\n break;\n case 3:\n // First is top, second is left/right, third is bottom.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n third = this._ttmlToCssUnits(parts[2], false, contextRect!);\n mappedValue = format('{0} {1} {2} {1}', first, second, third);\n break;\n case 4:\n // Top, right, bottom, left.\n first = this._ttmlToCssUnits(parts[0], false, contextRect!);\n second = this._ttmlToCssUnits(parts[1], true, contextRect!);\n third = this._ttmlToCssUnits(parts[2], false, contextRect!);\n forth = this._ttmlToCssUnits(parts[3], true, contextRect!);\n mappedValue = format('{0} {1} {2} {3}', first, second, third, forth);\n }\n\n // Using border width to implement tts:padding as neither padding nor margin fix the size (height) of the content area.\n css(element, 'box-sizing', 'border-box');\n\n // TODO: See if we work in FF without the following commented out -moz-box-sizing line now and if so remove it.\n /// /// css(element, '-moz-box-sizing', 'border-box');\n css(element, 'border-style', 'solid');\n css(element, 'border-color', 'transparent');\n\n // It can be helpful when debugging to change the border-color from transparent to something like rgba(255,255,200,0.5)\n // css(element, 'border-color', 'rgba(255,255,200,0.5)');\n css(element, 'border-width', mappedValue);\n return;\n }\n\n // If you know what this was for please document it here and uncomment it.\n // As of now the caller appeared to be doing nothing with it so commenting it out.\n /// /// case 'showBackground': {\n /// /// return this.getAttribute('data-showBackground', value);\n /// /// }\n\n case 'textAlign': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'start':\n mappedValue = 'left'; // TODO: handle rtl correctly.\n break;\n case 'end':\n mappedValue = 'right'; // TODO: handle rtl correctly.\n }\n\n css(element, 'text-align', mappedValue);\n return;\n }\n\n case 'textDecoration': {\n mappedValue = TtmlContext._ttmlToCssTextDecoration(value);\n css(element, 'text-decoration', mappedValue);\n return;\n }\n\n case 'textOutline': {\n const defaultColor = css(element, 'color');\n css(element, 'text-shadow', this._ttmlToCssTextOutline(mappedValue, defaultColor));\n return;\n }\n\n case 'unicodeBidi': {\n // TODO: Handle multiple options correctly.\n // eslint-disable-next-line default-case\n switch (value) {\n case 'bidiOverride':\n mappedValue = 'bidi-override';\n }\n css(element, 'unicode-bidi', mappedValue);\n return;\n }\n\n case 'visibility': {\n // No change.\n css(element, style, mappedValue);\n return;\n }\n\n case 'writingMode': {\n // eslint-disable-next-line default-case\n switch (value) {\n case 'lr':\n case 'lrtb': {\n css(element, 'writing-mode', 'horizontal-tb'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-writing-mode', 'horizontal-tb'); // Webkit for Chrome\n css(element, 'writing-mode', 'lr-tb'); // IE specific\n return;\n }\n case 'rl':\n case 'rltb': {\n css(element, 'writing-mode', 'horizontal-tb'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-writing-mode', 'horizontal-tb'); // Webkit for Chrome\n css(element, 'writing-mode', 'rl-tb'); // IE specific\n return;\n }\n case 'tblr': {\n css(element, 'text-orientation', 'upright'); // CCS3 standard: Doesn't work yet\n css(element, 'writing-mode', 'vertical-lr'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-text-orientation', 'upright'); // Webkit for Chrome\n css(element, '-webkit-writing-mode', 'vertical-lr'); // Webkit for Chrome\n css(element, 'writing-mode', 'tb-lr'); // IE specific\n return;\n }\n case 'tb':\n case 'tbrl': {\n css(element, 'text-orientation', 'upright'); // CCS3 standard: Doesn't work yet\n css(element, 'writing-mode', 'vertical-rl'); // CCS3 standard: Doesn't work yet\n css(element, '-webkit-text-orientation', 'upright'); // Webkit for Chrome\n css(element, '-webkit-writing-mode', 'vertical-rl'); // Webkit for Chrome\n css(element, 'writing-mode', 'tb-rl'); // IE specific\n return;\n }\n }\n return;\n }\n\n case 'wrapOption': {\n css(element, 'white-space', value === 'noWrap' ? 'nowrap' : value === 'pre' ? 'pre' : 'normal');\n return;\n }\n\n case 'zIndex': {\n css(element, style, mappedValue); // Requires global information...\n return;\n }\n\n default: {\n css(element, style, mappedValue);\n }\n }\n }\n\n /**\n * Converts a ttml unit string to a css one.\n * @param ttmlUnits - The ttml value.\n * @param width - Indicates whether to perform a width based or a height based conversion.\n * @param [contextRect] - The context rectangle to use for conversion.\n * @returns - The css value.\n */\n private _ttmlToCssUnits(ttmlUnits: string, width: boolean, contextRect?: IClientDimension): string {\n let cssUnits = ttmlUnits;\n\n if (ttmlUnits) {\n const unit = ttmlUnits.charAt(ttmlUnits.length - 1);\n\n // Need to special case handle ttml cell metrics.\n if (unit === 'c' || unit === '%') {\n const container = this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions\n : this.settings.relatedMediaObjectRegion;\n const length = Number.parseFloat(ttmlUnits.substr(0, ttmlUnits.length - 1));\n let containerSize = width ? container!.width : container!.height;\n let value: number;\n\n if (unit === 'c') {\n const gridSize = width ? this.settings.cellResolution.columns : this.settings.cellResolution.rows;\n\n value = (length * containerSize) / gridSize;\n } else if (unit === '%') {\n // If % units calls also specify a contextRect use that instead of the container.\n if (contextRect) {\n containerSize = width ? contextRect.width : contextRect.height;\n }\n\n // Have to convert % to px because padding and vertical-align (displayAlign) are not\n // working together if the extent width/height are % instead of px.\n value = (containerSize * length) / 100;\n }\n\n // Round to 1 decimal place\n value = Math.round(value! * 10) / 10;\n cssUnits = `${value}px`;\n }\n }\n\n return cssUnits;\n }\n\n /**\n * Converts a ttml font size to a css one.\n * @param ttmlUnits - The ttml value.\n * @param width - Indicates whether to perform a width based or a height based conversion.\n * @param [scaleFactor] - The scale factor to use for conversion.\n * @param [isRegion] - Indicates whether or not the conversion is being done for a .\n * @returns - The css value.\n */\n private _ttmlToCssFontSize(ttmlUnits: string, width: boolean, scaleFactor: number = 1, isRegion: boolean = false): string {\n let cssUnits = ttmlUnits;\n\n if (ttmlUnits) {\n const unit = ttmlUnits.charAt(ttmlUnits.length - 1);\n\n // Need to special case handle ttml cell metrics and % units.\n if (unit === 'c' || (isRegion && unit === '%')) {\n const container = this.settings.rootContainerRegionDimensions\n ? this.settings.rootContainerRegionDimensions\n : this.settings.relatedMediaObjectRegion;\n const length = Number.parseFloat(ttmlUnits.substr(0, ttmlUnits.length - 1));\n const containerSize = width ? container!.width : container!.height;\n const gridSize = width ? this.settings.cellResolution.columns : this.settings.cellResolution.rows;\n let value = (length * containerSize) / gridSize;\n\n if (unit === '%') {\n // Length is % so divide by 100.\n value /= 100;\n }\n\n // Apply the scale factor and limit to one decimal place precision.\n value = Math.floor(value * scaleFactor * 10) / 10;\n\n cssUnits = `${value}px`;\n }\n }\n\n return cssUnits;\n }\n\n /**\n * Converts a ttml text outline style value to a css one.\n * @param textOutline - The ttml value.\n * @param defaultColor - Default value of the outline color.\n * @returns - The css value.\n */\n private _ttmlToCssTextOutline(textOutline: string, defaultColor: string): string {\n let textShadow = 'none';\n\n if (!isNullOrWhiteSpace(textOutline) && textOutline !== 'none') {\n let parts: string[] = textOutline.split(/\\s+/);\n let color: string = '';\n let thickness: string = '';\n let blur: string = '';\n\n if (parts.length === 1) {\n color = defaultColor;\n thickness = parts[0];\n blur = '';\n } else if (parts.length === 3) {\n color = parts[0];\n thickness = parts[1];\n blur = parts[2];\n } else if (parts.length === 2) {\n const firstChar = parts[0].charAt(0);\n\n if (firstChar >= '0' && firstChar <= '9') {\n color = defaultColor;\n thickness = parts[0];\n blur = parts[1];\n } else {\n color = parts[0];\n thickness = parts[1];\n blur = '';\n }\n }\n\n // Spec doesn't qualify what % lengths mean so I'm going to assume it's % of a cell\n // and therefore use fontSize conversion method with the same scaleFactor applied\n // to fontSize since it's the font that we're outlining here.\n blur = this._ttmlToCssFontSize(blur, false, 0.75);\n thickness = this._ttmlToCssFontSize(thickness, false, 0.75);\n\n parts = TtmlContext.lengthRegEx.exec(thickness);\n\n if (parts && parts.length === 3) {\n const width = Math.round(Number.parseFloat(parts[1]));\n const units = parts[2];\n\n textShadow = '';\n\n for (let x = -width; x <= width; x++) {\n for (let y = -width; y <= width; y++) {\n if (x !== 0 || y !== 0) {\n textShadow += format('{0}{4} {1}{4} {2} {3}, ', x, y, blur, TtmlContext._ttmlToCssColor(color), units);\n }\n }\n }\n\n if (textShadow) {\n textShadow = textShadow.substr(0, textShadow.length - 2);\n }\n }\n }\n\n return textShadow;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * TtmlTimeParser class.\n * @classdesc - The TtmlTimeParser class is used to parse ttml time expressions which can be absolute or relative.\n */\nexport class TtmlTimeParser {\n /**\n * @name - absoluteTimeRegex\n * Regex to parse absolute ttml times. (clock-time).\n * Hours \":\" minutes \":\" seconds ( fraction | \":\" frames ( \".\" sub-frames )? )?.\n * NOTE: (johnlemi) Our clocktime regex matches 1 or 2 digits for hours instead of 2 because even.\n * though the spec says 2 we have some existing ttml from the Office team with end attrs with 1 hour digit.\n * @static\n * @private\n * @type {string}\n */\n private static readonly absoluteTimeRegex: RegExp = /^(\\d+):(\\d{2}):(\\d{2})((\\.\\d+)|:(\\d{2,}(\\.\\d+)?))?$/;\n\n /**\n * @name - relativeTimeRegex\n * Regex to parse relative ttml times. (offset-time).\n * time-count fraction? metric.\n * @static\n * @private\n * @type {string}\n */\n private static readonly relativeTimeRegex: RegExp = /^(\\d+(\\.\\d+)?)(ms|[fhmst])$/;\n\n /**\n * @name - mediaFrameRate.\n * @description - mediaFrameRate.\n * @private\n * @type {string}\n */\n private readonly mediaFrameRate: number;\n\n /**\n * @name - mediaTickRate.\n * @description - mediaTickRate.\n * @private\n * @type {string}\n */\n private readonly mediaTickRate: number;\n\n /**\n * Constructor for the TtmlTimeParser class.\n * @param _mediaFrameRate - The ttml media frame rate.\n * @param _mediaTickRate - The ttml media tick rate.\n */\n public constructor(_mediaFrameRate: number, _mediaTickRate: number) {\n this.mediaFrameRate = _mediaFrameRate;\n this.mediaTickRate = _mediaTickRate;\n }\n\n /**\n * Parses a ttml time expression string into a number.\n * @param ttmlTime - The time expression to parse.\n * @returns - The number the time expression represents, or 0 if the exression doesn't match.\n */\n public parse(ttmlTime: string): number {\n if (!ttmlTime) {\n return 0;\n }\n\n const absoluteTime = TtmlTimeParser.absoluteTimeRegex.exec(ttmlTime);\n\n if (absoluteTime && absoluteTime.length > 3) {\n const hours = Number.parseInt(absoluteTime[1], 10) * 60 * 60;\n const minutes = Number.parseInt(absoluteTime[2], 10) * 60;\n const seconds = Number.parseInt(absoluteTime[3], 10);\n let subseconds = 0;\n\n if (absoluteTime[5]) {\n subseconds = Number.parseFloat(absoluteTime[4]) * 1000;\n }\n\n if (absoluteTime[6]) {\n subseconds = Math.round(Number.parseFloat(absoluteTime[6]) * this._getTimeUnitMultiplier('f'));\n }\n\n return (hours + minutes + seconds) * 1000 + subseconds;\n }\n\n const relativeTime = TtmlTimeParser.relativeTimeRegex.exec(ttmlTime);\n\n if (relativeTime && relativeTime.length > 3) {\n return Math.round(Number.parseFloat(relativeTime[1]) * this._getTimeUnitMultiplier(relativeTime[3]));\n }\n\n return 0;\n }\n\n /**\n * Converts a ttml time unit expression string into a multiplier number.\n * @param timeUnit - The time unit expression.\n * @returns - The multiplier value, or 0 if the unit exression doesn't match.\n */\n private _getTimeUnitMultiplier(timeUnit: string): number {\n switch (timeUnit) {\n case 'h':\n return 1000 * 60 * 60;\n case 'ms':\n return 1;\n case 'm':\n return 1000 * 60;\n case 's':\n return 1000;\n case 'f':\n return 1000 / this.mediaFrameRate;\n case 't':\n return 1000 / this.mediaTickRate;\n default:\n return 0;\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 { format, IDictionaryStringString, IGrid, nodeListToArray, trim } from '../utilities';\nimport { ITtmlContext, TtmlContext } from './ttml-context';\nimport { ITtmlSettings, TtmlSettings, xmlNS } from './ttml-settings';\nimport { TtmlTimeParser } from './ttml-time-parser';\n\n// Timed Text Markup Language (TTML).\n// See http://www.w3.org/TR/ttml1/ for more details.\n\n/**\n * @interface ITtmlEvent\n * @classdesc - The ITtmlEvent interface contract.\n * @export\n */\nexport interface ITtmlEvent {\n time: number;\n element?: Element;\n}\n\n/**\n * @interface ITtmlTimingBounds\n * @classdesc - The ITtmlTimingBounds interface contract.\n * @export\n */\ninterface ITtmlTimingBounds {\n start: number;\n end: number;\n}\n\n/**\n *\n * The TtmlParser class.\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class TtmlParser {\n /**\n * @name - mediaStart\n * Used as the start time for applyTiming when applying to the entire document.\n * @static\n * @private\n * @type {number}\n */\n private static readonly mediaStart: number = -1;\n\n /**\n * @name - mediaEnd\n * Used as the end time for applyTiming when applying to the entire document.\n * Picking a number that should always be greater than any real media end time.\n * @static\n * @private\n * @type {number}\n */\n private static readonly mediaEnd: number = 99_999_999;\n\n /**\n * Gets the local tagName of a Node.\n * @param node - The node to get the tagName of.\n * @returns - The tagName.\n */\n public static getLocalTagName(node: Node): string {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (node).localName || (node).baseName;\n }\n\n /**\n * Gets the value of a namespaced attribute. First tries element.getAttributeNS() but falls back\n * to scanning each attribute if that fails.\n * If you know which cases go into the fallback code please document it here.\n * @param element - The element to get the attribute of.\n * @param name - The attribute name.\n * @param namespace - The attribute namespace.\n * @returns - The attribute value. Or an empty string if a matching attribute is not found.\n */\n public static getAttributeNS(element: Element, name: string, namespace: string): string {\n let result = element.getAttributeNS(namespace, name);\n\n if (!result) {\n // Go through all the attributes looking for a match.\n for (const attribute of nodeListToArray(element.attributes)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((attribute).localName === name && attribute.lookupNamespaceURI((attribute).prefix) === namespace) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = (attribute).value;\n break;\n }\n }\n }\n\n return result!;\n }\n\n /**\n * Parses a ttml document and builds a ttmlContext instance from it.\n * @param ttmlDocument - The ttml document to parse.\n * @param settingsOverrides - The ttml settings overrides to use.\n * @returns - The resulting ttmlContext instance that can be used to get cues by time.\n */\n public static parse(ttmlDocument: XMLDocument, settingsOverrides: ITtmlSettings): ITtmlContext {\n ttmlDocument = typeof ttmlDocument === 'string' ? TtmlParser._parseXml(ttmlDocument) : ttmlDocument;\n\n const ttmlContext = new TtmlContext();\n\n // Start initializing the context.\n ttmlContext.settings = new TtmlSettings(settingsOverrides);\n ttmlContext.root = TtmlParser._verifyRoot(ttmlDocument, ttmlContext);\n ttmlContext.body = TtmlParser._getFirstElementByTagNameNS(ttmlContext.root, 'body', ttmlContext.settings.ttmlNamespace);\n ttmlContext.events = [];\n ttmlContext.styleSetCache = [];\n\n if (ttmlContext.body) {\n // Parse the root attributes.\n TtmlParser._parseTtAttrs(ttmlContext);\n\n // Set up our regions.\n const head = TtmlParser._ensureRegions(ttmlContext);\n\n const timeBase =\n TtmlParser.getAttributeNS(ttmlContext.root, 'timeBase', ttmlContext.settings.ttmlParameterNamespace) || 'media';\n\n if (ttmlContext.settings.supportedTimeBase.includes(timeBase)) {\n // Process textnodes into anonymous spans.\n TtmlParser._processAnonymousSpans(ttmlContext, ttmlContext.body);\n\n const timeParser = new TtmlTimeParser(ttmlContext.settings.mediaFrameRate, ttmlContext.settings.mediaTickRate);\n\n // Apply the intervals over the tree.\n TtmlParser._applyTiming(\n ttmlContext,\n ttmlContext.root,\n { start: TtmlParser.mediaStart, end: TtmlParser.mediaEnd },\n true,\n timeParser\n );\n\n // Apply the style inheritance over the tree.\n TtmlParser._applyStyling(ttmlContext, head);\n }\n\n // Add an dummy end event for the captions to appear until end of video.\n // Not sure why we need to do this, please add to this comment if you know.\n ttmlContext.events.push({ time: TtmlParser.mediaEnd, element: undefined });\n\n // Sort events into temporal order.\n ttmlContext.events.sort((event1: ITtmlEvent, event2: ITtmlEvent) => {\n return event1.time - event2.time;\n });\n }\n\n return ttmlContext;\n }\n\n /**\n * Applies the elements inline styles into the styleSet.\n * @param settings - The TtmlSettings for this document.\n * @param styleSet - The styleSet to build upon.\n * @param element - The element to apply the styles of.\n */\n public static applyInlineStyles(settings: TtmlSettings, styleSet: IDictionaryStringString, element: Element): void {\n for (const attribute of nodeListToArray(element.attributes)) {\n if (attribute.namespaceURI === settings.ttmlStyleNamespace) {\n // Trim() because we see lots of ttml attribute values with trailing space...\n styleSet[TtmlParser.getLocalTagName(attribute)] = trim(attribute.nodeValue!);\n }\n }\n }\n\n /**\n * Parses an xml document in string format to an XMLDocument.\n * @param xmlString - The xml string to parse.\n * @returns - The resulting XMLDocument, or null if the xml string failed to parse.\n */\n private static _parseXml(xmlString: string): XMLDocument {\n let xml: XMLDocument;\n\n if (window.DOMParser) {\n const domParser = new window.DOMParser();\n xml = domParser.parseFromString(xmlString, 'application/xml');\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const domParser = new (window).ActiveXObject('Microsoft.XMLDOM');\n domParser.async = false;\n domParser.loadXML(xmlString);\n xml = domParser;\n }\n return xml;\n }\n\n /**\n * Verifies that root of the specified document is the expected ttml tagName and\n * updates the settings namespaces from it if they are non standard.\n * @param ttmlDocument - The ttml document to verify.\n * @param ttmlContext - The ttmlContext for this document.\n * @returns - The valid root Element, or or null if the root Element was not valid.\n */\n private static _verifyRoot(ttmlDocument: XMLDocument, ttmlContext: TtmlContext): Element {\n let root: Element;\n const candidate = ttmlDocument.documentElement;\n\n if (TtmlParser.getLocalTagName(candidate) === 'tt') {\n if (candidate.namespaceURI !== 'http://www.w3.org/ns/ttml') {\n ttmlContext.settings.ttmlNamespace = candidate.namespaceURI!;\n ttmlContext.settings.ttmlStyleNamespace = `${ttmlContext.settings.ttmlNamespace}#styling`;\n ttmlContext.settings.ttmlParameterNamespace = `${ttmlContext.settings.ttmlNamespace}#parameter`;\n ttmlContext.settings.ttmlMetaNamespace = `${ttmlContext.settings.ttmlNamespace}#metadata`;\n }\n\n root = candidate;\n }\n\n return root!;\n }\n\n /**\n * Parses the tag attributes and initializes ttmlContext properties from them.\n * @param ttmlContext - The ttmlContext for this document.\n */\n private static _parseTtAttrs(ttmlContext: TtmlContext): void {\n const cellRes = TtmlParser.getAttributeNS(ttmlContext.root, 'cellResolution', ttmlContext.settings.ttmlParameterNamespace);\n const extent = TtmlParser.getAttributeNS(ttmlContext.root, 'extent', ttmlContext.settings.ttmlStyleNamespace);\n let cellGrid: IGrid | null = null;\n\n if (cellRes) {\n const parts = trim(cellRes).split(/\\s+/);\n\n if (parts.length === 2) {\n const columns = Math.round(Number.parseFloat(parts[0]));\n const rows = Math.round(Number.parseFloat(parts[1]));\n\n if (rows > 0 && columns > 0) {\n cellGrid = { rows, columns };\n }\n }\n }\n\n if (cellGrid) {\n ttmlContext.settings.cellResolution = cellGrid;\n }\n\n if (extent) {\n if (extent !== 'auto') {\n // Get the individual components.\n const coords = extent.split(/\\s+/);\n\n if (\n coords.length === 2 &&\n coords[0].substr(coords[0].length - 2) === 'px' &&\n coords[1].substr(coords[1].length - 2) === 'px'\n ) {\n const width = Number.parseFloat(coords[0].substr(0, coords[0].length - 2));\n const height = Number.parseFloat(coords[1].substr(0, coords[1].length - 2));\n\n // Round to integer.\n ttmlContext.settings.rootContainerRegionDimensions = { width: Math.round(width), height: Math.round(height) };\n }\n }\n }\n }\n\n /**\n * Ensures we have the elements/regions we require by either finding them or creating them if they are not present.\n * @param ttmlContext - The ttmlContext for this document.\n * @returns - The element.\n */\n private static _ensureRegions(ttmlContext: TtmlContext): Element {\n // Create our rootContainerRegion\n ttmlContext.rootContainerRegion = ttmlContext.root.ownerDocument.createElementNS(\n ttmlContext.settings.ttmlNamespace,\n 'rootcontainerregion'\n );\n\n ttmlContext.root.appendChild(ttmlContext.rootContainerRegion);\n\n const extents = ttmlContext.settings.rootContainerRegionDimensions\n ? format(\n '{0}px {1}px',\n ttmlContext.settings.rootContainerRegionDimensions.width,\n ttmlContext.settings.rootContainerRegionDimensions.height\n )\n : 'auto';\n\n ttmlContext.rootContainerRegion.setAttributeNS(ttmlContext.settings.ttmlStyleNamespace, 'extent', extents);\n\n let head = TtmlParser._getFirstElementByTagNameNS(ttmlContext.root, 'head', ttmlContext.settings.ttmlNamespace);\n\n // Ensure we have a \n if (!head) {\n // No so we need to create that now.\n head = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'head');\n ttmlContext.root.appendChild(head);\n }\n\n // Ensure we have a \n ttmlContext.layout = TtmlParser._getFirstElementByTagNameNS(head, 'layout', ttmlContext.settings.ttmlNamespace);\n\n if (!ttmlContext.layout) {\n // No so we need to create that now.\n ttmlContext.layout = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'layout');\n ttmlContext.root.appendChild(ttmlContext.layout);\n }\n\n // Create an anonymous region if we have no regions.\n const regions = ttmlContext.layout.getElementsByTagNameNS(ttmlContext.settings.ttmlNamespace, 'region');\n\n if (!regions.length) {\n const anonymousRegion = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'region');\n\n anonymousRegion.setAttributeNS(xmlNS, 'id', 'anonymous');\n anonymousRegion.setAttribute('data-isanonymous', '1');\n ttmlContext.layout.appendChild(anonymousRegion);\n\n ttmlContext.body.setAttributeNS(ttmlContext.settings.ttmlNamespace, 'region', 'anonymous');\n }\n\n return head;\n }\n\n /**\n * Recurses through all the

elements in the document and groups all the contiguous TEXT_NODES together into 's.\n * @param ttmlContext - The ttmlContext for this document.\n * @param element - The element to process the TEXT_NODES of.\n */\n private static _processAnonymousSpans(ttmlContext: TtmlContext, element: Element): void {\n // If this element is

then group all contiguous textnodes together in \n if (TtmlParser._isTagNS(element, 'p', ttmlContext.settings.ttmlNamespace)) {\n const textNodeGroups: Node[][] = [];\n let prevNodeType: number = 0;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE) {\n if (prevNodeType !== Node.TEXT_NODE) {\n textNodeGroups.push([]);\n }\n\n textNodeGroups[textNodeGroups.length - 1].push(child);\n }\n\n prevNodeType = child.nodeType;\n }\n\n for (const group of textNodeGroups) {\n const anonSpan = ttmlContext.root.ownerDocument.createElementNS(ttmlContext.settings.ttmlNamespace, 'span');\n\n anonSpan.appendChild(group[0].parentNode!.replaceChild(anonSpan, group[0]));\n\n for (let index = 1; index < group.length; index++) {\n anonSpan.appendChild(group[index]);\n }\n }\n }\n\n // Then recurse through the contents doing the same thing for those.\n for (const child of nodeListToArray(element.childNodes)) {\n this._processAnonymousSpans(ttmlContext, child);\n }\n }\n\n /**\n * Recurses through the document element tree to determine the absolute start and end times of all the elements\n * using the TTML subset of the SMIL timing model. The reference times passed in 'bound' are absolute times.\n * The result of calling this is to set the local start time and end time to absolute times between these two\n * reference times, based on the begin, end and dur attributes and to recursively set all of the children.\n * @param ttmlContext - The ttmlContext for this document.\n * @param element - The element to apply the timing to.\n * @param bound - The bounds for the timing.\n * @param isParallelContext - Indicates whether or not this element is in a parallel timing context.\n * @param timeParser - The TtmlTimeParser to use to parse this elements time attributes.\n */\n private static _applyTiming(\n ttmlContext: TtmlContext,\n element: Element,\n bound: ITtmlTimingBounds,\n isParallelContext: boolean,\n timeParser: TtmlTimeParser\n ): void {\n const beginAttribute = TtmlParser.getAttributeNS(element, 'begin', ttmlContext.settings.ttmlNamespace);\n let startTime = beginAttribute ? timeParser.parse(beginAttribute) : bound.start;\n let endTime = 0;\n\n // Compute the simple duration of the interval.\n let duration = 0;\n let end = 0;\n const durationAttribute = TtmlParser.getAttributeNS(element, 'dur', ttmlContext.settings.ttmlNamespace);\n const endAttribute = TtmlParser.getAttributeNS(element, 'end', ttmlContext.settings.ttmlNamespace);\n\n if (!durationAttribute && !endAttribute) {\n // No direct timing attested, so use default based on context.\n // Parallel children have indefinite default duration, truncated by bounds.\n if (isParallelContext) {\n // Sequential children have zero default duration.\n if (startTime <= bound.end) {\n endTime = bound.end;\n } else {\n endTime = 0;\n }\n }\n } else if (durationAttribute && endAttribute) {\n // Both duration and end attested, the minimum interval applies.\n duration = timeParser.parse(durationAttribute);\n end = timeParser.parse(endAttribute);\n const minEnd = Math.min(startTime + duration, bound.start + end);\n endTime = Math.min(minEnd, bound.end);\n } else if (endAttribute) {\n // Only end attested.\n end = timeParser.parse(endAttribute);\n endTime = Math.min(bound.start + end, bound.end);\n } else {\n // Only dur attested.\n duration = timeParser.parse(durationAttribute);\n endTime = Math.min(startTime + duration, bound.end);\n }\n\n if (endTime < startTime) {\n endTime = startTime;\n }\n\n startTime = Math.floor(startTime);\n endTime = Math.floor(endTime);\n\n element.setAttribute('data-time-start', startTime.toString());\n element.setAttribute('data-time-end', endTime.toString());\n\n if (\n startTime >= 0 &&\n ttmlContext.events.filter(event => {\n return event.time === startTime;\n }).length <= 0\n ) {\n ttmlContext.events.push({ time: startTime, element });\n }\n\n let start = startTime;\n\n for (const child of nodeListToArray(element.childNodes)) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n // Parallel is the default so null is OK here.\n if (TtmlParser.getAttributeNS(element, 'timeContainer', ttmlContext.settings.ttmlNamespace) !== 'seq') {\n this._applyTiming(ttmlContext, child, { start: startTime, end: endTime }, true, timeParser);\n } else {\n this._applyTiming(ttmlContext, child, { start, end: endTime }, false, timeParser);\n start = Number.parseInt(child.getAttribute('data-time-end')!, 10);\n }\n }\n }\n }\n\n /**\n * Recurses through all the elements in applying the ttml sytling to them based on the