{"version":3,"file":"static/js/application.async.landing~4fa3eff4.7022d971.chunk.js","mappings":"kuBAAO,IAAMA,EAA8B,WAAC,MAA6B,CACvE,SAAU,CACRC,WAAY,GAEd,oBAAqB,CACnB,MAAO,CACL,2CAA4C,CAC1CA,WAAY,EACZC,YAAa,KAIpB,E,yGCGYC,EAA4B,SAAAC,GAAA,SAAAD,IAAA,OAAAE,EAAAA,EAAAA,GAAA,KAAAF,IAAAG,EAAAA,EAAAA,GAAA,KAAAH,EAAAI,UAAA,QAAAC,EAAAA,EAAAA,GAAAL,EAAAC,IAAAK,EAAAA,EAAAA,GAAAN,EAAA,EAAAO,IAAA,aAAAC,MACvC,WAA0B,IAADC,EAAA,KAAdC,EAAON,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,GACpBS,EAAAA,EAAAA,GAAAb,EAAA,oBAAAa,CAAA,CAAiBH,IAEjBI,KAAKC,UAAUC,eAAeC,WAAU,SAACC,GACvC,IAAMC,EAASC,IAAAA,OAASF,GAAK,SAAAG,GAAI,OAAKD,IAAAA,QAAUC,EAAKC,OAASF,IAAAA,QAAUC,EAAKE,MAAM,IAEnFd,EAAKe,QAAQ,0BAA2B,CAAEC,QAAShB,EAAKgB,UAAWC,iBAAkBP,GACvF,GACF,IAAC,CATsC,CAASQ,EAAAA,I,YCX3C,SAASC,EAAgBC,GAE5B,IACEC,EAFJC,EAAEF,EAAFE,GAAIvB,EAAKqB,EAALrB,MAAOwB,EAAQH,EAARG,SAAUC,EAAUJ,EAAVI,WAAYC,EAAWL,EAAXK,YAAaC,EAAsBN,EAAtBM,uBAIxCC,GAA4BC,EAAAA,EAAAA,cAAY,SAAAC,GAEvC,IADLb,EAAOa,EAAPb,QAA2Bc,EAAmBD,EAArCZ,iBAETM,EAAS,CAAEP,QAAAA,EAASjB,MAAO+B,GAC7B,GAAG,CAACP,IAuBJ,OArBAQ,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAO,IAAIzC,EAA6B,CAC5C0C,KAAMT,EACNP,iBAAkBlB,EAClB0B,YAAAA,EACAC,uBAAAA,IAKF,OAHAM,EAAKE,GAAG,0BAA2BP,GACnCK,EAAKG,SAASC,IAAIC,SAAShB,GAEpB,WACLW,EAAKM,QACP,CAOF,GAAG,KAGDC,EAAAA,EAAAA,KAAA,OAAKjB,GAAIA,EAAIkB,IAAK,SAACA,GAAUnB,EAAYmB,CAAK,GAElD,CAaArB,EAAiBsB,aAAe,CAC9Bf,wBAAwB,GCnDnB,ICIqBgB,EDJfC,EAAgBC,EAAAA,gB,6CCChBC,EAAa,SAAAC,GAAY,OAAI,SAAAC,GAAK,OAAIA,GAAUA,EAAMC,WAAaF,CAAc,CAAD,EAChFG,EAAmB,SAAAC,GAAc,OAC5C,SAAAH,GAAK,OAAIA,IAASI,EAAAA,EAAAA,UAASJ,EAAMC,SAAUE,EAAgB,CAAD,EAE/CE,EAAK,SAACC,EAAIC,GAAE,OAAK,SAAAC,GAAI,OAAIF,EAAGE,IAASD,EAAGC,EAAM,CAAD,EAC7CC,EAAM,SAACH,EAAIC,GAAE,OAAK,SAAAC,GAAI,OAAIF,EAAGE,IAASD,EAAGC,EAAM,CAAD,EAE9CE,EAAuB,WAAH,IAAIC,EAAG/D,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAMgE,EAAAA,EAAAA,UAASD,GAC1DA,EAAG,GAAAE,OACAF,EAAIG,QAAO,KAAAD,OAAIF,EAAII,KAAI,KAAAF,OAAIF,EAAIV,SAAU,EAEjCe,EAAe,SAAAC,GAAgB,OAAKA,IAC9CA,EAAiBC,cAChB,CAAEC,qBAAsBF,EAAiBH,SACzCG,EAAiBH,SAAWG,EAAiBF,MAAQE,EAAiBG,aAAgB,EAAG,EAEhFC,EAAoBhB,GAbLV,EAaqB,WAbb,SAAAK,GAAK,OAAIA,IAASsB,EAAAA,EAAAA,SAAQtB,EAAMe,KAAMpB,EAAM,GAalBG,EAAW,eAC5DyB,EAAgB,SAAAvB,GAAK,OAAIA,IAAUA,EAAMC,WAAaoB,EAAkBrB,EAAO,ECbtFwB,EAAY3B,EAAAA,MAAW,SAAAxB,GAAwC,IAArCoD,EAAMpD,EAANoD,OAAQC,EAAWrD,EAAXqD,YAAaC,EAAQtD,EAARsD,SAC7CC,GAAkBC,EAAAA,EAAAA,UAElBC,GAAiBC,EAAAA,EAAAA,UACrB,kBAAMC,EAAAA,EAAAA,OAAMP,GACTQ,KAAKvB,GACLwB,OAAOR,GACPS,IAAInB,GACJhE,OAAO,GACV,CAACyE,EAAQC,IAaX,OAVA1C,EAAAA,EAAAA,YAAU,YACJyC,GAAWA,EAAOW,YAAcC,EAAAA,EAAAA,SAAQP,KAE1CL,EAAOW,WAAY,EACnBR,EAAgBU,QAAQC,eAAe,CACrCC,SAAU,WAGhB,GAAG,CAACV,EAAgBL,KAGlBgB,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAA,OAAKC,IAAKmC,EAAiBc,MAAO,CAAEC,SAAU,WAAYC,QAAS,WAClEjB,GACDnC,EAAAA,EAAAA,KAACqD,EAAAA,cAAa,CAACC,SAAUhB,MAG/B,IAWAN,EAAU9B,aAAe,CACvBiC,cAAUvE,EACVqE,OAAQ,IAGH,IAAMsB,EAASlD,EAAAA,MAAW,SAAAf,GAAA,IAAW4C,EAAW5C,EAAnBoD,OAAqBP,EAAQ7C,EAAR6C,SAAQ,OAC/DnC,EAAAA,EAAAA,KAACI,EAAcoD,SAAQ,CAAArB,SACpB,SAAAF,GAAM,OACLjC,EAAAA,EAAAA,KAACgC,EAAS,CAACC,OAAQA,EAAQC,YAAaA,EAAYC,SACjDA,GACS,GAES,ICvDpB,SAASsB,EAAc5E,GAE1B,IACEC,EAFJC,EAAEF,EAAFE,GAAIvB,EAAKqB,EAALrB,MAAOwB,EAAQH,EAARG,SAAUC,EAAUJ,EAAVI,WAIfyE,GAA0BrE,EAAAA,EAAAA,cAAY,SAAAC,GAErC,IADLb,EAAOa,EAAPb,QAAyBkF,EAAiBrE,EAAjCsE,eAET5E,EAAS,CAAEP,QAAAA,EAASjB,MAAOmG,GAC7B,GAAG,CAAC3E,IAuBJ,OArBAQ,EAAAA,EAAAA,YAAU,WACR,IAAMC,EAAO,IAAIoE,EAAAA,GAAmB,CAClCnE,KAAMT,EACN6E,UAAU,EACVF,eAAgBpG,EAChBuG,iBAAiB,IAKnB,OAHAtE,EAAKE,GAAG,yBAA0B+D,GAClCjE,EAAKG,SAASC,IAAIC,SAAShB,GAEpB,WACLW,EAAKM,QACP,CAOF,GAAG,KAGDC,EAAAA,EAAAA,KAAA,OAAKjB,GAAIA,EAAIkB,IAAK,SAACA,GAAUnB,EAAYmB,CAAK,GAElD,CDuBAsD,EAAOS,UAAY,CACjB7B,SAAU8B,IAAAA,KACVvB,OAAQuB,IAAAA,KAAeC,YAGzBX,EAAOrD,aAAe,CACpBiC,cAAUvE,GClBZ6F,EAAevD,aAAe,CAC5B1C,MAAO,I,2BC9CI2G,GAAiBC,EAAAA,EAAAA,YAAU,SAAAC,GAAK,OAC3CpB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWD,EAAME,eAAepC,SAAA,EACnCnC,EAAAA,EAAAA,KAACwE,EAAAA,WAASC,EAAAA,EAAAA,GAAA,GACJrG,IAAAA,KAAOiG,EAAO,iBAAkB,WAErCA,EAAMK,UACH,I,mCCNKC,GACXC,EAAAA,EAAAA,IAAU,SAACP,GACT,IACaQ,GACTC,EAAAA,EAAAA,yBAAwB,CAC1B5F,YAAamF,EAAMnF,YACnB6F,QAASV,EAAM3E,KAAKsF,cAHpBC,UAKF,OAAOC,EAAAA,EAAAA,QACL,CAAC,EACDb,EACA,CAAEQ,oBAAAA,GAEN,GAAGM,EAAAA,GChBCC,EAA8B,SAAAC,GAAQ,OAAI,SAACC,GAC/CA,EAAiBC,UAAUtH,UAAUoH,GACrCC,EAAiBE,YAAYvH,UAAUoH,GACvCC,EAAiBG,QAAQxH,UAAUoH,GACnCC,EAAiBI,UAAUzH,UAAUoH,EACvC,CAAE,EAWWM,EAAuC,SAAClG,EAAM4F,GACzD,IAAkBtH,EAAc0B,EAAxBmG,SACR7H,EAAU8H,UAAU5H,UAAUoH,GAC9BtH,EAAU+H,QAAQ7H,UAAUoH,GAC5BtH,EAAUgI,uBAAuB9H,UAAUoH,GAC3CtH,EAAUiI,cAAc/H,UAdG,SAAAoH,GAAQ,OAAI,SAACY,GACxCZ,IACAjH,IAAAA,KAAO6H,GAAS,SAAApH,GAA0C,IAAvCqH,EAAMrH,EAANqH,OAAeZ,EAAgBzG,EAAvBrB,MACV,UAAX0I,GACFd,EAA4BC,EAA5BD,CAAsCE,EAE1C,GACF,CAAE,CAOkCa,CAAqBd,QAAWzH,EAAW,eAC7EQ,IAAAA,KAAOL,EAAUiI,gBAAiBZ,EAA4BC,IAC9DtH,EAAUqI,oBAAoBnI,UAAUoH,EAC1C,ECpBA,SAASgB,EAAUxH,GAEf,IAEEC,EAHJC,EAAEF,EAAFE,GAAIuH,EAAoBzH,EAApByH,qBAAsB9I,EAAKqB,EAALrB,MAAOwB,EAAQH,EAARG,SAAUuH,EAAmB1H,EAAnB0H,oBAErC9G,GAAO4C,EAAAA,EAAAA,UAGPmE,GAAWnH,EAAAA,EAAAA,cAAY,WAC3BL,EAAS,CACPP,QAASgB,EAAKqD,QAAQ0D,WACtBhJ,MAAOiC,EAAKqD,QAAQ2D,YAExB,GAAG,CAACzH,EAAUS,IA2Bd,OAzBAD,EAAAA,EAAAA,YAAU,WAgBR,OAfAC,EAAKqD,QAAU,IAAIwD,EAAqBlI,IAAAA,OACtC,CAAC,EACD,CACEsI,WAAY,oBACZC,aAAc,sBACdC,MAAOpJ,GAAS,CAAC,EACjB+I,oBAAAA,IAED,CAACA,IAEJZ,EAAqClG,EAAKqD,QAAS0D,GAEnD/G,EAAKqD,QAAQlD,SACbH,EAAKqD,QAAQjD,IAAIC,SAAShB,GAEnB,WAAQW,EAAKqD,QAAQ/C,QAAU,CAOxC,GAAG,KAGDC,EAAAA,EAAAA,KAAA,OACEjB,GAAIA,EACJuF,UAAU,kBACVrE,IAAK,SAACA,GAAUnB,EAAYmB,CAAK,GAGvC,CAeO,SAAS4G,EAAoBP,GAClC,OAAO1B,EAAAA,EAAAA,GAAU,CAAE0B,qBAAAA,GAAwBD,EAC7C,CC/DO,SAASS,EAAiBzC,GAC/B,OACErE,EAAAA,EAAAA,KAACK,EAAAA,SAAc,CAAA8B,UACbnC,EAAAA,EAAAA,KAACmE,GAAcM,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACbsC,YAAa1C,EAAM3E,KAAKsH,UAAUC,8BAC9B7I,IAAAA,KAAOiG,EAAO,oBAAkB,IACpCK,MAAO,WAAF,OAAQ1E,EAAAA,EAAAA,KAAA,QAAMsE,UAAWD,EAAM6C,gBAAgB/E,SAAEkC,EAAM3E,KAAKsH,UAAUC,qEAAiF,MAIpK,CD8CAZ,EAAWnG,aAAe,CACxB1C,WAAOI,EACP2I,qBAAqB,GCvCvBO,EAAiB5G,aAAe,CAC9BgH,gBAAiB,ICvBnB,IAmBMC,EAA0B,CAC9B,SACA,MACA,OACA,UACA,QACA,WACA,QACA,SACA,WACA,oBACA,YACA,aACA,QACA,QACA,WACA,QAGIC,EAAyB,CAC7B,SACA,OACA,UACA,QACA,WACA,QACA,SACA,WACA,oBACA,YACA,aACA,QACA,QACA,WACA,OACA,gBAGIC,EAA2B,CAC/B,WAGIC,EAAmC,CACvCC,eAAgBJ,EAChBK,MAAOH,EACPI,IAAKL,GAcMM,EAAkC,SAACC,GAC9C,IAAMC,EAHgC,SAAAD,GAAY,OAAIE,EAAAA,EAAAA,QAAOP,EAAkCK,EAAc,CAGjFG,CAAgCH,GAI5D,OAHeC,EACb,SAAAG,GAAa,OAAIC,EAAAA,EAAAA,UAASJ,EAAqBG,EAAcE,cAAc,GAC3EC,EAAAA,EAAAA,WAAS,EAEb,EAEaC,EAA6B,CACxCC,cAvFoB,CACpB,SACA,MACA,OACA,UACA,QACA,WACA,QACA,SACA,WACA,oBACA,YACA,aACA,QACA,QACA,WACA,QAwEAjB,wBAAAA,EACAE,yBAAAA,EACAD,uBAAAA,EACAiB,6CAxBmD,CACnD,SACA,aACA,QACA,eACA,YACA,a,iCCjCWC,GACX,SAAC5I,EAAM6I,GAAM,IAAEC,EAAYpL,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmD,EAAYnD,UAAAO,OAAA,EAAAP,UAAA,QAAAQ,EAAA,OAAK,SAAC6K,GAClD,OAAIA,EAASxG,QACJyG,EAAAA,EAAAA,KACL/F,EAAAA,EAAAA,KACE8F,EAASxG,OAxCa,SAACuG,EAAcjI,GAAY,OAAK,SAACC,GAG/D,OAFAA,EAAMmI,MAAOd,EAAAA,EAAAA,QAAOW,EAAchI,EAAMmI,KAAMnI,EAAMmI,MACpDnI,EAAMoI,SAAWrI,EACVC,CACT,CAAE,CAqCQqI,CAAwBL,EAAcjI,IAExCb,EACA6I,GAIGE,CACT,CAAE,EAYSK,GACX,SAACpJ,EAAM6I,GAAM,IAAEC,EAAYpL,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAG2L,EAAoB3L,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAK,SAACqL,GAC/D,OAAIA,EAASxG,QACJyG,EAAAA,EAAAA,KACL/F,EAAAA,EAAAA,KACE8F,EAASxG,QACT+G,EAAAA,EAAAA,SA3DW,SAAAR,GAAY,OAAI,SAAChI,GACpC,IAAMyI,GAAsBpB,EAAAA,EAAAA,QAAOW,EAAchI,EAAMoI,SAAU,CAAC,GAGlE,OADApI,EAAMmI,MAAOd,EAAAA,EAAAA,QAAOoB,EAAqBzI,EAAMmI,KAAMnI,EAAMmI,MACpDnI,CACT,CAAE,CAuDU0I,CAAaV,GAjDA,SAAAO,GAAoB,OAAI,SAACvI,GAEhD,OADAA,EAAMoI,UAAWf,EAAAA,EAAAA,QAAOkB,EAAsBvI,EAAMmI,KAAMnI,EAAMoI,UACzDpI,CACT,CAAE,CA+CU2I,CAAiBJ,KAGrBrJ,EACA6I,GAIGE,CACT,CAAE,EAKSW,GACX,SAAC1J,EAAM6I,GAAM,IAJKc,EAIHb,EAAYpL,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGmD,EAAYnD,UAAAO,OAAA,EAAAP,UAAA,QAAAQ,EAAE0L,EAAOlM,UAAAO,OAAA,EAAAP,UAAA,QAAAQ,EAAA,OACrD2L,IAAAA,QACWD,GACRE,OAPaH,EAOKf,GAA0B5I,EAAM6I,EAAQC,EAAcjI,GAPnD,SAACS,GAAW,MAAMqI,EAAKrI,EAAO,GAOqC,EC9FlFyI,GAA2B,SAAAjJ,GAAK,OAC1CA,aAAiBkJ,MAAQlJ,EAAQmJ,KAAKC,UAAUpJ,EAAM,C,iaCD5CqJ,EAAmB,CAC9BC,KAAM7C,OACN8C,aAAc9C,iBACd+C,YAAa/C,eACbgD,UAAWhD,aACXiD,SAAUjD,WACVkD,eAAgBlD,mBAChBmD,UAAWnD,YACXoD,YAAapD,eACbqD,OAAQrD,SACRsD,OAAQtD,SACRuD,UAAWvD,cACXwD,UAAWxD,cACXyD,YAAazD,gBACb0D,SAAU1D,WACV2D,SAAU3D,YACV4D,WAAY5D,eACZ6D,UAAW7D,YACX8D,SAAU9D,WACV+D,KAAM/D,OACNgE,gBAAiBhE,mBACjBiE,SAAUjE,YACVkE,WAAYlE,eACZmE,YAAanE,eACboE,SAAUpE,WACVqE,SAAUrE,aACVsE,WAAYtE,eACZuE,SAAUvE,WACVwE,QAASxE,UACTyE,aAAczE,gBACd0E,WAAY1E,eACZ2E,SAAU3E,WACV4E,WAAY5E,cACZ6E,cAAe7E,mBACf8E,WAAY9E,cACZ+E,cAAe/E,kBACfgF,WAAYhF,cACZiF,UAAWjF,cACXkF,YAAalF,iB,YC7BR,SAASmF,EAAcvN,GAE1B,IADFyF,EAASzF,EAATyF,UAAWvF,EAAEF,EAAFE,GAAIC,EAAQH,EAARG,SAAiBqN,EAAQxN,EAAfrB,MAAiBkC,EAAIb,EAAJa,KAE1C4M,GAAgDC,EAAAA,EAAAA,UAASF,GAASG,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA3DI,EAAgBF,EAAA,GAAEG,EAAmBH,EAAA,GAE5C,OACEvJ,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAC4M,EAAAA,OAAM,CACL7N,GAAIA,EACJuF,UAAWA,EACX9G,MAAOkP,EACP1N,SAAU,SAAC6N,GACT,IAAMC,EAAWD,EAAME,OAAOvP,MAC9BmP,EAAoBG,GACpB9N,EAAS8N,EACX,EAAE3K,SAED/D,IAAAA,MAAQyL,GAAkBlH,KAAI,SAAArD,GAAA,IAAA0N,GAAAP,EAAAA,EAAAA,GAAAnN,EAAA,GAAE/B,EAAGyP,EAAA,GAAExP,EAAKwP,EAAA,UAEvChN,EAAAA,EAAAA,KAAA,UAAkBxC,MAAOD,EAAI4E,SAC1BzC,EAAKsH,UAAUxJ,IADLD,EAEJ,OAGfyC,EAAAA,EAAAA,KAACiN,EAAAA,MAAK,CACJ3L,QAAS5B,EAAKsH,UA3BAC,sfA4BdiG,MAAM,OACNC,MAAOnN,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBACtB8I,aAAa,MAIrB,CAYAhB,EAAelM,aAAe,CAC5BnB,QAAInB,EACJJ,MAAO,Q,gBCjDH6P,EAAmB,CACvBC,IAAKrG,MACLsG,IAAKtG,MACLuG,IAAKvG,MACLwG,IAAKxG,MACLyG,IAAKzG,MACL0G,IAAK1G,MACL2G,IAAK3G,MACL4G,IAAK5G,MACL6G,IAAK7G,MACL8G,IAAK9G,MACL+G,IAAK/G,MACLgH,IAAKhH,MACLiH,IAAKjH,MACLkH,IAAKlH,MACLmH,IAAKnH,MACLoH,IAAKpH,MACLqH,IAAKrH,MACLsH,IAAKtH,MACLuH,IAAKvH,MACLwH,IAAKxH,MACLyH,IAAKzH,MACL0H,IAAK1H,MACL2H,IAAK3H,MACL4H,IAAK5H,MACL6H,IAAK7H,MACL8H,IAAK9H,MACL+H,IAAK/H,MACLgI,IAAKhI,MACLiI,IAAKjI,MACLkI,IAAKlI,MACLmI,IAAKnI,MACLoI,IAAKpI,MACLqI,IAAKrI,MACLsI,IAAKtI,MACLuI,IAAKvI,MACLwI,IAAKxI,MACLyI,IAAKzI,MACL0I,IAAK1I,MACL2I,IAAK3I,OAaA,SAAS4I,EAAchR,GAE1B,IADFyF,EAASzF,EAATyF,UAAWvF,EAAEF,EAAFE,GAAIC,EAAQH,EAARG,SAAiBqN,EAAQxN,EAAfrB,MAAiBkC,EAAIb,EAAJa,KAAMR,EAAWL,EAAXK,YAM1C4Q,EAjBe,SAAAA,GAAU,OAC/B1R,IAAAA,MAAQ0R,GACLC,QAAO,SAACC,EAAMC,GACb,IAAMC,EAAUF,EAEhB,OADAE,EAAQD,GAAY5C,EAAiB4C,GAC9BC,CACT,GAAG,CAAC,GACHC,QACA3S,OAAQ,CASQ4S,EAJItL,EAAAA,EAAAA,yBAAwB,CAC7C5F,YAAAA,EACA6F,QAASrF,EAAKsF,cAFRqL,YAKR/D,GAAgDC,EAAAA,EAAAA,UAASF,GAASG,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA3DgE,EAAgB9D,EAAA,GAAE+D,EAAmB/D,EAAA,GAE5C,OACExM,EAAAA,EAAAA,KAAC4M,EAAAA,OAAM,CACL7N,GAAIA,EACJuF,UAAWA,EACX9G,MAAO8S,EACPtR,SAAU,SAAC6N,GACT,IAAM2D,EAAW3D,EAAME,OAAOvP,MAC9B+S,EAAoBC,GACpBxR,EAASwR,EACX,EAAErO,SAED2N,EAAWnN,KAAI,SAAArD,GAAA,IAAA0N,GAAAP,EAAAA,EAAAA,GAAAnN,EAAA,GAAE/B,EAAGyP,EAAA,GAAExP,EAAKwP,EAAA,UAE1BhN,EAAAA,EAAAA,KAAA,UAAkBxC,MAAOD,EAAI4E,SAC1BzC,EAAKsH,UAAUxJ,IADLD,EAEJ,KAIjB,CAaAsS,EAAe3P,aAAe,CAC5BnB,QAAInB,EACJJ,MAAO,O,gBCtGIiT,EACO,mBADPA,EAEM,kBAFNA,EAGW,uBAHXA,EAIU,sBAGjBC,EACE,OADFA,EAEE,OAGD,SAASC,EAAyB/J,GAkBvC,OAhB6B,OAAzBA,EAAMgK,eACJhK,EAAMiK,mBAAqBH,EACbD,EAEAA,EAEY,OAArB7J,EAAMkK,WACXlK,EAAMiK,mBAAqBH,EACbD,EAEAA,EAGFA,CAIpB,CAEO,IAAMM,EAAa,SAAAC,GAAa,OACrCA,IAAkBP,GAClBO,IAAkBP,CAAuC,EAErDQ,EAAS,SAAAD,GAAa,OAC1BA,IAAkBP,GAClBO,IAAkBP,CAAsC,EAE7CS,EAAyB,SAACF,EAAepK,GAAK,MAAM,CAC/DiK,iBAAkBI,EAAOD,GACvBN,EACAA,EACFE,eAAgBG,EAAWC,GAAiBpK,EAAMgK,eAAiB,KACnEE,WAAYC,EAAWC,GAAiB,KAAOpK,EAAMkK,WACtD,EClCKK,GAAcC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBX,EAAqCxJ,qBACrCwJ,EAAoCxJ,oBACpCwJ,EAAyCxJ,2BACzCwJ,EAAwCxJ,0BAG3C,SAASoK,EAAmBxS,GAExB,IADFyF,EAASzF,EAATyF,UAAWvF,EAAEF,EAAFE,GAAIC,EAAQH,EAARG,SAAiBqN,EAAQxN,EAAfrB,MAAiBkC,EAAIb,EAAJa,KAE1C4M,GAA0DC,EAAAA,EAAAA,UAASF,GAASG,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAArEgF,EAAqB9E,EAAA,GAAE+E,EAAwB/E,EAAA,GAEtD,OACExM,EAAAA,EAAAA,KAAC4M,EAAAA,OAAM,CACL7N,GAAIA,EACJuF,UAAWA,EACX9G,MAAO8T,EACPtS,SAAU,SAAC6N,GACT,IAAM2D,EAAW3D,EAAME,OAAOvP,MAC9B+T,EAAyBf,GACzBxR,EAASwR,EACX,EAAErO,SAED/D,IAAAA,MAAQ+S,GAAgBxO,KAAI,SAAArD,GAAA,IAAA0N,GAAAP,EAAAA,EAAAA,GAAAnN,EAAA,GAAE/B,EAAGyP,EAAA,GAAExP,EAAKwP,EAAA,UAErChN,EAAAA,EAAAA,KAAA,UAAkBxC,MAAOD,EAAI4E,SAC1BzC,EAAKsH,UAAUxJ,IADLD,EAEJ,KAInB,CAYA8T,EAAoBnR,aAAe,CACjCnB,QAAInB,EACJJ,MAAOiT,GAGT,IAAMe,GAAYC,EAAAA,EAAAA,WAAU,CAC1BC,YAAUjN,EAAAA,EAAAA,GAAA,GACLrG,IAAAA,KAAOuT,EAAAA,qBAAqBD,WAAY,mBAAoB,iBAAkB,iBAI/EE,EAAS,SAACZ,GACd,IAAMa,GAASJ,EAAAA,EAAAA,WAAUD,GAKzB,OAHAK,EAAOH,WAAWd,eAAekB,SAAWf,EAAWC,GACvDa,EAAOH,WAAWZ,WAAWgB,UAAYf,EAAWC,GAE7Ca,CACT,EAEO,SAASE,EAAaC,GAGzB,IAFFxU,EAAKwU,EAALxU,MAAOwB,EAAQgT,EAARhT,SAAUU,EAAIsS,EAAJtS,KAAMT,EAAU+S,EAAV/S,WAAYF,EAAEiT,EAAFjT,GAAIkT,EAA4BD,EAA5BC,6BACvCC,EAAmBF,EAAnBE,oBAAqBC,EAAUH,EAAVG,WAAYjL,EAAe8K,EAAf9K,gBAEjCkL,GAA0C7F,EAAAA,EAAAA,UAASoE,EAAyBnT,IAAO6U,GAAA5F,EAAAA,EAAAA,GAAA2F,EAAA,GAA5EpB,EAAaqB,EAAA,GAAEC,EAAgBD,EAAA,GACtCE,GACEhG,EAAAA,EAAAA,WAAQ9H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIyM,EAAuBF,EAAexT,IAAM,IAAEwT,cAAAA,KAAgBwB,GAAA/F,EAAAA,EAAAA,GAAA8F,EAAA,GADvEE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEpBG,GAA4BpG,EAAAA,EAAAA,UAASqF,EAAOZ,IAAe4B,GAAAnG,EAAAA,EAAAA,GAAAkG,EAAA,GAApDd,EAAMe,EAAA,GAAEC,EAASD,EAAA,GAyBxB,OACE3P,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAACqR,EAAmB,CAClB/M,UAAWwO,IAAWb,EAA8B,8CACpDlT,GAAIA,EACJvB,MAAOwT,EACPhS,SA7BwB,SAAC+T,GAC7BL,GAAQ,SAACM,GACP,IAAMC,GAAUxO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACXuO,GACA9B,EAAuB6B,EAAkBC,IAAY,IAExDhC,cAAe+B,IAKjB,OAHAT,EAAiBS,GACjBF,EAAUjB,EAAOmB,IACjB/T,EAASiU,GACFA,CACT,GACF,EAiBMvT,KAAMA,KAERuD,EAAAA,EAAAA,MAACiQ,EAAAA,gBAAe,CACdC,gBAAiB,CACftB,OAAAA,EACAnS,KAAMT,EACNwT,KAAAA,EACAW,WAtBW,SAAHC,GAA2B,IAAfC,EAAOD,EAAbZ,KACpBC,GAAQ,SAACM,GACP,IAAMC,GAAUxO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQuO,GAAgBM,GAExC,OADAtU,EAASiU,GACFA,CACT,GACF,GAiBQ9Q,SAAA,CAED4O,EAAWC,KACVhR,EAAAA,EAAAA,KAACmE,EAAAA,GAAc,CACbI,eAAgB2N,EAChB5N,UAAW6N,EACXpT,GAAG,iBACHoU,gBAAiB,CACfI,MAAO,kBAET7O,MAAO,WAAF,OAAQ1E,EAAAA,EAAAA,KAAA,QAAMsE,UAAW4C,EAAgB/E,SAAE3E,EAAMgW,cAAoB,KAG5EzC,EAAWC,KACXhR,EAAAA,EAAAA,KAACmE,EAAAA,GAAc,CACbI,eAAgB2N,EAChB5N,UAAW6N,EACXpT,GAAG,gBACHoU,gBAAiB,CACfI,MAAO,cAET7O,MAAO,WAAF,OAAQ1E,EAAAA,EAAAA,KAAA,QAAMsE,UAAW4C,EAAgB/E,SAAC,KAAQ,SAMnE,CAkBA4P,EAAc7R,aAAe,CAC3B1C,WAAOI,G,gBCnKH6V,EAAyB,IACzBC,EAAmC,IAEnCC,EAAoB,CACxBvQ,QAAS,OACTwQ,eAAgB,aAChBC,UAAW,OACXC,WAAY,WACZC,aAAc,OAGVC,GAAqB,CACzBD,aAAc,QClBHE,GACL,OADKA,GAEG,eAFHA,GAGI,gBAGV,SAASC,GAA+BtN,GAU7C,OAR4B,OAAxBA,EAAMuN,cACcF,GACc,OAA3BrN,EAAMwN,iBACOH,GAEAA,EAI1B,CAEO,IAAMI,GAAkB,SAAAC,GAAmB,OAChDA,IAAwBL,EAAsC,EAEnDM,GAAiB,SAAAD,GAAmB,OAC/CA,IAAwBL,EAAqC,EAElDO,GAA+B,SAACF,EAAqB1N,GAAK,MAAM,CAC3EuN,cAAeE,GAAgBC,GAAuB1N,EAAMuN,cAAgB,KAC5EC,iBAAkBG,GAAeD,GAAuB1N,EAAMwN,iBAAmB,KAClF,ECdKK,IAAoBrD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvB6C,GAA+BhN,QAC/BgN,GAAuChN,kBACvCgN,GAAwChN,kBAG3C,SAASyN,GAAqB7V,GAE1B,IADFyF,EAASzF,EAATyF,UAAWvF,EAAEF,EAAFE,GAAIC,EAAQH,EAARG,SAAiBqN,EAAQxN,EAAfrB,MAAiBkC,EAAIb,EAAJa,KAE1C4M,GAAsEC,EAAAA,EAAAA,UAASF,GAASG,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAjFqI,EAA2BnI,EAAA,GAAEoI,EAA8BpI,EAAA,GAElE,OACExM,EAAAA,EAAAA,KAAC4M,EAAAA,OAAM,CACL7N,GAAIA,EACJuF,UAAWA,EACX9G,MAAOmX,EACP3V,SAAU,SAAC6N,GACT,IAAQrP,EAAUqP,EAAME,OAAhBvP,MACRoX,EAA+BpX,GAC/BwB,EAASxB,EACX,EAAE2E,SAED/D,IAAAA,MAAQqW,IAAsB9R,KAAI,SAAArD,GAAA,IAAA0N,GAAAP,EAAAA,EAAAA,GAAAnN,EAAA,GAAE/B,EAAGyP,EAAA,GAAExP,EAAKwP,EAAA,UAE3ChN,EAAAA,EAAAA,KAAA,UAAkBxC,MAAOD,EAAI4E,SAC1BzC,EAAKsH,UAAUxJ,IADLD,EAEJ,KAInB,CAYAmX,GAAsBxU,aAAe,CACnCnB,QAAInB,EACJJ,MAAO,QAGT,IAAMgU,IAAYC,EAAAA,EAAAA,WAAU,CAC1BC,YAAUjN,EAAAA,EAAAA,GAAA,GACLrG,IAAAA,KAAOuT,EAAAA,qBAAqBD,WAAY,gBAAiB,uBAI1DE,GAAS,SAAC0C,GACd,IAAMzC,GAASJ,EAAAA,EAAAA,WAAUD,IAKzB,OAHAK,EAAOH,WAAWyC,cAAcrC,SAAWuC,GAAgBC,GAC3DzC,EAAOH,WAAW0C,iBAAiBtC,SAAWyC,GAAeD,GAEtDzC,CACT,EAEO,SAASgD,GAAe7C,GAG3B,IAFFxU,EAAKwU,EAALxU,MAAOwB,EAAQgT,EAARhT,SAAUU,EAAIsS,EAAJtS,KAAMT,EAAU+S,EAAV/S,WAAYF,EAAEiT,EAAFjT,GAAI+V,EAAkC9C,EAAlC8C,mCACvC5C,EAAmBF,EAAnBE,oBAAqBC,EAAUH,EAAVG,WAAYjL,EAAe8K,EAAf9K,gBAEjCkL,GACI7F,EAAAA,EAAAA,UAAS2H,GAA+B1W,IAAO6U,GAAA5F,EAAAA,EAAAA,GAAA2F,EAAA,GAD5CkC,EAAmBjC,EAAA,GAAE0C,EAAsB1C,EAAA,GAElDE,GACEhG,EAAAA,EAAAA,WAAQ9H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAI+P,GAA6BF,EAAqB9W,IAAM,IAAE8W,oBAAAA,KAAsB9B,GAAA/F,EAAAA,EAAAA,GAAA8F,EAAA,GADzFE,EAAID,EAAA,GAAEE,EAAOF,EAAA,GAEpBG,GAA4BpG,EAAAA,EAAAA,UAASqF,GAAO0C,IAAqB1B,GAAAnG,EAAAA,EAAAA,GAAAkG,EAAA,GAA1Dd,EAAMe,EAAA,GAAEC,EAASD,EAAA,GAyBxB,OACE3P,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAC0U,GAAqB,CACpBpQ,UAAWwO,IAAWgC,EAAoC,gDAC1D/V,GAAIA,EACJvB,MAAO8W,EACPtV,SA7B8B,SAACgW,GACnCtC,GAAQ,SAACM,GACP,IAAMC,GAAUxO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACXuO,GACAwB,GAA6BQ,EAAwBhC,IAAY,IAEpEsB,oBAAqBU,IAKvB,OAHAD,EAAuBC,GACvBnC,EAAUjB,GAAOoD,IACjBhW,EAASiU,GACFA,CACT,GACF,EAiBMvT,KAAMA,KAERuD,EAAAA,EAAAA,MAACiQ,EAAAA,gBAAe,CACdC,gBAAiB,CACftB,OAAAA,EACAnS,KAAMT,EACNwT,KAAAA,EACAW,WAtBW,SAAHC,GAA2B,IAAfC,EAAOD,EAAbZ,KACpBC,GAAQ,SAACM,GACP,IAAMC,GAAUxO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQuO,GAAgBM,GAExC,OADAtU,EAASiU,GACFA,CACT,GACF,GAiBQ9Q,SAAA,CAEDkS,GAAgBC,KACftU,EAAAA,EAAAA,KAACmE,EAAAA,GAAc,CACbI,eAAgB2N,EAChB5N,UAAW6N,EACXpT,GAAG,iBACHoU,gBAAiB,CACfI,MAAO,iBAET7O,MAAO,WAAQ,IAGlB6P,GAAeD,KACdtU,EAAAA,EAAAA,KAACmE,EAAAA,GAAc,CACbI,eAAgB2N,EAChB5N,UAAW6N,EACXpT,GAAG,oBACHoU,gBAAiB,CACfI,MAAO,oBAET7O,MAAO,WAAF,OAAQ1E,EAAAA,EAAAA,KAAA,QAAMsE,UAAW4C,EAAgB/E,SAAE3E,EAAMgW,cAAoB,SAMtF,CAkBAqB,GAAgB3U,aAAe,CAC7B1C,WAAOI,G,iBCpKHqX,GAAoB,CACxBC,IAAK,cAGDC,GAAkB9U,EAAAA,MAAW,SAAAxB,GAG5B,IAFLrB,EAAKqB,EAALrB,MAAOwB,EAAQH,EAARG,SAAUU,EAAIb,EAAJa,KAAMX,EAAEF,EAAFE,GAAIuF,EAASzF,EAATyF,UAAW8Q,EAAgBvW,EAAhBuW,iBACtCC,EAAkBxW,EAAlBwW,mBAAoBC,EAAgBzW,EAAhByW,iBAAkBC,EAAwB1W,EAAxB0W,yBAEtCjJ,GAAkCC,EAAAA,EAAAA,UAAS/O,EAAMgY,oBAAmBhJ,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA7DzG,EAAS2G,EAAA,GAAEiJ,EAAYjJ,EAAA,GAC9B4F,GAA8B7F,EAAAA,EAAAA,UAAS/O,EAAMkY,kBAAiBrD,GAAA5F,EAAAA,EAAAA,GAAA2F,EAAA,GAAvDtM,EAAOuM,EAAA,GAAEsD,EAAUtD,EAAA,GAC1BE,GAAsEhG,EAAAA,EAAAA,WAAS,GAAMiG,GAAA/F,EAAAA,EAAAA,GAAA8F,EAAA,GAA9EqD,EAA2BpD,EAAA,GAAEqD,EAA8BrD,EAAA,GAClEG,GAAkEpG,EAAAA,EAAAA,WAAS,GAAMqG,GAAAnG,EAAAA,EAAAA,GAAAkG,EAAA,GAA1EmD,EAAyBlD,EAAA,GAAEmD,EAA4BnD,EAAA,GAExDpM,GAAWnH,EAAAA,EAAAA,cAAY,WAC3B,IAAM2W,EACHnQ,GAAanG,EAAKuW,UAAUpQ,EAAUqQ,OAAO,EAAG,IAAKjB,KACtDpP,EACIsQ,EACHrQ,GAAWpG,EAAKuW,UAAUnQ,EAAQoQ,OAAO,EAAG,IAAKjB,KAClDnP,EAEIxC,EAAW,GAejB,OAbI6S,GAAiBH,GAAmBA,EAAkBG,GACxD7S,EAAS8S,KAAK1W,EAAKsH,UAAUC,gDAI3B2O,IAAiCxX,IAAAA,QAAUyH,IAAkC,OAApBmQ,IAC3D1S,EAAS8S,KAAK1W,EAAKsH,UAAUC,wBAG3B6O,IAA+B1X,IAAAA,QAAU0H,IAA8B,OAAlBqQ,IACvD7S,EAAS8S,KAAK1W,EAAKsH,UAAUC,qBAGxB3D,CACT,GAAG,CAACuC,EAAWC,EAASpG,EAAMkW,EAA6BE,KAE3DtW,EAAAA,EAAAA,YAAU,WACRiW,EAAajY,EAAMgY,oBACnBG,EAAWnY,EAAMkY,iBACnB,GAAG,CAAClY,EAAMgY,mBAAoBhY,EAAMkY,oBAEpClW,EAAAA,EAAAA,YAAU,WACR,IAAM6W,EAAgB7P,IACtB4O,EAAiBiB,EACnB,GAAG,CAACxQ,EAAWC,EAASU,EAAU4O,KAElC5V,EAAAA,EAAAA,YAAU,WACRR,EAAS,CAAEwW,mBAAoB3P,EAAW6P,iBAAkB5P,GAC9D,GAAG,CAAC9G,EAAU6G,EAAWC,IAEzB,IAAMwQ,GAAoBjX,EAAAA,EAAAA,cAAY,SAACmW,GACrCC,EAAaD,GACbK,GAA+B,EACjC,GAAG,IAEGU,GAAkBlX,EAAAA,EAAAA,cAAY,SAACqW,GACnCC,EAAWD,GACXK,GAA6B,EAC/B,GAAG,IAEGS,GAAmBnX,EAAAA,EAAAA,cAAY,WACnCoW,OAAa7X,GACbiY,GAA+B,EACjC,GAAG,IAEGY,GAAiBpX,EAAAA,EAAAA,cAAY,WACjCsW,OAAW/X,GACXmY,GAA6B,EAC/B,GAAG,IAEGW,EAAgB7Q,EAAYA,EAAUqQ,OAAO,EAAG,IAAMrQ,EACtD8Q,EAAc7Q,EAAUA,EAAQoQ,OAAO,EAAG,IAAMpQ,EAEtD,OACE7C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWA,EAAWvF,GAAIA,EAAGoD,SAAA,EAChCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAW+Q,EAAoBtW,GAAG,aAAYoD,UACjDnC,EAAAA,EAAAA,KAAC4W,GAAAA,sBAAqB,CACpBlX,KAAMA,EACNV,SAAUsX,EACVO,QAASL,EACThZ,MAAOkZ,EACPzB,kBAAmBA,QAGvBjV,EAAAA,EAAAA,KAAA,QAAMsE,UAAWiR,EAAyBpT,SAAC,OAC3CnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWgR,EAAkBvW,GAAG,WAAUoD,UAC7CnC,EAAAA,EAAAA,KAAC4W,GAAAA,sBAAqB,CACpBlX,KAAMA,EACNV,SAAUuX,EACVM,QAASJ,EACTjZ,MAAOmZ,EACP1B,kBAAmBA,SAM7B,IAAG,SAAC6B,EAAWC,GAAS,OAAKD,EAAUtZ,MAAMgY,qBAAuBuB,EAAUvZ,MAAMgY,oBAC/EsB,EAAUtZ,MAAMkY,mBAAqBqB,EAAUvZ,MAAMkY,gBAAgB,IAgB1EP,GAAgBjV,aAAe,CAC7B1C,WAAOI,GAGF,IAAMoZ,IACX5S,EAAAA,EAAAA,YAAU6S,EAAAA,EAAAA,sBAAqB9B,KC7HpB+B,GAAqB,SAAAtQ,GAAK,OACpCA,EAAMoK,eAAiBD,EAAWnK,EAAMoK,iBACvCpK,EAAMoK,eAAiBD,EAAWJ,EAAyB/J,KAC5DA,EAAM0N,qBAAuBC,GAAe3N,EAAM0N,uBACjD1N,EAAM0N,qBAAuBC,GAAeL,GAA+BtN,GAAS,ECiClFwF,IAAiBhI,EAAAA,EAAAA,YAAU+S,EAAAA,EAAAA,gBAAeC,EAAoBC,EAAAA,iBAC9D1S,IAAiBP,EAAAA,EAAAA,YAAU+S,EAAAA,EAAAA,gBAAeG,EAAAA,GAAoBD,EAAAA,iBAC9DxH,IAAiBzL,EAAAA,EAAAA,YAAU+S,EAAAA,EAAAA,gBAAeI,EAAoBF,EAAAA,iBAE9DG,GAAgC,CAAC,KAAM,WAAY,WAAY,mBAAoB,iBAAkB,aAAc,mBAAoB,gBAAiB,gBAAiB,qBAAsB,mBAAoB,kBAAmB,YAAa,iBAAkB,sBAAuB,sBAAuB,cAEzT,SAASC,GAAWC,GAClB,IAAMC,EAASvZ,IAAAA,KAAOsZ,EAAS,GAADrW,OACzBmW,IAA6BI,EAAAA,EAAAA,GAC5BV,GAAmBQ,GAAY,CAAC,gBAAkB,MAIlDhZ,EAAmBN,IAAAA,OACvBuZ,EAAOE,qBACP,SAAAxZ,GAAI,OAAKD,IAAAA,QAAUC,EAAKC,OAASF,IAAAA,QAAUC,EAAKE,MAAM,IAExD,OAAOH,IAAAA,OAAS,CAAC,EAAGuZ,EAAQ,CAAEE,oBAAqBnZ,GACrD,CAEO,IAAMoZ,GAA2B,SAAHjZ,GAgB9B,IAfLkZ,EAAOlZ,EAAPkZ,QACAC,EAASnZ,EAATmZ,UACAtY,EAAIb,EAAJa,KACYuY,EAASpZ,EAArBI,WAEaiZ,EAAUrZ,EADvB4T,KACEuF,UAEFG,EAAetZ,EAAfsZ,gBACAC,EAASvZ,EAATuZ,UACAC,EAASxZ,EAATwZ,UACAC,EAAQzZ,EAARyZ,SACApZ,EAAWL,EAAXK,YAEkBoH,EAAoBzH,EADtC0Z,KACEC,eAGIC,EAAYT,KAAeA,EAAUU,GAEnCC,GAAapW,EAAAA,EAAAA,UAAQ,kBAAM4V,EAAgBS,0BAA0B,CAC3EC,aAAc,wBACdC,aAAcL,EAAY,kBAAoB,qBAC9C,GAAE,CAACN,EAAiBM,IAHdE,SAKRrM,GAAoCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5CyM,EAAUvM,EAAA,GAAEwM,EAAaxM,EAAA,GAChC4F,GAA8B7F,EAAAA,EAAAA,WAAS,GAAM8F,GAAA5F,EAAAA,EAAAA,GAAA2F,EAAA,GAAtC3T,EAAO4T,EAAA,GAAE4G,EAAU5G,EAAA,GAC1BE,GAAoChG,EAAAA,EAAAA,UAAS,IAAGiG,GAAA/F,EAAAA,EAAAA,GAAA8F,EAAA,GAAzC2G,EAAU1G,EAAA,GAAE2G,EAAa3G,EAAA,GAE1B4G,GAAkB7W,EAAAA,EAAAA,UAAQ,kBAC7B8W,EAAAA,EAAAA,iBAAgB3Z,EAAM,CAAC4Z,EAAAA,oBAAqBC,EAAAA,GAAqB,GAAG,CAAC7Z,IAClE8Y,GACJjW,EAAAA,EAAAA,UAAQ,kBAAMsE,EAAAA,EAAAA,IAAoBP,EAAqB,GAAE,CAACA,IAEpDkT,EAAuCta,EAAvCsa,mCAEFC,EAAchC,IAAUhT,EAAAA,EAAAA,GAAC,CAC7BiV,SAAUF,EAAqC,oBAAsB,UACrEG,SAAU,OACV9I,iBAAkB,OAClBD,eAAgB,KAChBE,WAAY,KACZqD,cAAe,KACfC,iBAAkB,KAClBwF,gBAAiB,GACjBC,UAAW,GACXC,aAAc,GACdjC,oBAAqB,IAClBG,GACFrG,EAAAA,sBAEGoI,KAAiC/B,IACpCA,EAAUgC,sBACThC,EAAUvU,gBACTrF,IAAAA,QAAU4Z,EAAUH,sBAEzBlF,GAAwBpG,EAAAA,EAAAA,UAASkN,GAAY7G,GAAAnG,EAAAA,EAAAA,GAAAkG,EAAA,GAAtCF,GAAIG,EAAA,GAAEF,GAAOE,EAAA,GACpBqH,IAAgC1N,EAAAA,EAAAA,UAASkN,GAAYS,IAAAzN,EAAAA,EAAAA,GAAAwN,GAAA,GAA9CE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAC5BG,IAA4C9N,EAAAA,EAAAA,UAAS,CAAC,GAAE+N,IAAA7N,EAAAA,EAAAA,GAAA4N,GAAA,GAAjDE,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GACxCG,IAA0DlO,EAAAA,EAAAA,WAAS,GAAKmO,IAAAjO,EAAAA,EAAAA,GAAAgO,GAAA,GAAjEE,GAAqBD,GAAA,GAAEE,GAAwBF,GAAA,GACtDG,IAA8DtO,EAAAA,EAAAA,WAAS,GAAKuO,IAAArO,EAAAA,EAAAA,GAAAoO,GAAA,GAArEE,GAAuBD,GAAA,GAAEE,GAA0BF,GAAA,GAC1DG,IAA8C1O,EAAAA,EAAAA,UAASkN,GAAYyB,IAAAzO,EAAAA,EAAAA,GAAAwO,GAAA,GAA5DE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GAEpCG,IAAehc,EAAAA,EAAAA,cAAY,SAAAic,GAAI,OAAI,kBAAOf,GAAee,EAAK,IAAE,CAACf,KAEjEgB,IAAelc,EAAAA,EAAAA,cAAY,WAC/Bmb,GAAkB,CAAC,EACrB,GAAG,IAEGgB,IAAqBnc,EAAAA,EAAAA,cAAY,SAACiU,GACtClV,IAAAA,KAAOkV,GAAS,SAAC9V,EAAOD,GACV,QAARA,GAAkBa,IAAAA,QAAUA,IAAAA,OAAS+b,GAAU5c,EAAK,MAAOa,IAAAA,OAASkV,EAAS/V,EAAK,QACpFid,IAAiB/V,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACd8V,IAAc,IAAAnJ,EAAAA,EAAAA,GAAA,GAChB7T,GAAM,IAGb,GACF,GAAG,CAAC4c,GAAUI,KAERkB,GAAoBvE,GAAmBzE,IAGzCgJ,KAAsBhJ,GAAKe,cAC7Bd,IAAQ,SAAAM,GAAW,OAAAvO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUuO,GAAW,IAAEQ,aAAc,OAAK,IAG/D,IAAMJ,IAAa/T,EAAAA,EAAAA,cAAY,SAAAC,GAA6C,IAAjCoc,EAAUpc,EAAnBb,QAA2B6U,EAAOhU,EAAbmT,KACrDwG,EAAWyC,GACXhJ,IAAQ,SAAAM,GAAW,OAAAvO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUuO,GAAgBM,EAAO,GACtD,GAAG,IAEGqI,IAAetc,EAAAA,EAAAA,cAAY,SAACiU,GAChCkI,GAAmBlI,GACnBZ,IAAQ,SAAAM,GAAW,OAAAvO,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUuO,GAAgBM,EAAO,GACtD,GAAG,CAACkI,KAEEI,IAA2Bvc,EAAAA,EAAAA,cAAY,SAAA2N,GAAqC,IAAzB0O,EAAU1O,EAAnBvO,QAAqBjB,EAAKwP,EAALxP,MACnEwd,GAA2BU,GAC3BC,GAAa,CAAE9D,oBAAqBra,GACtC,GAAG,CAACme,KAEEE,IAAyBxc,EAAAA,EAAAA,cAAY,SAAA2S,GAAqC,IAAzB0J,EAAU1J,EAAnBvT,QAAqBjB,EAAKwU,EAALxU,MACjEod,GAAyBc,GACzBC,GAAa,CAAElY,eAAgBjG,GACjC,GAAG,CAACme,KAEEG,IAAmBzc,EAAAA,EAAAA,cAAY,SAAAgU,GAAqC,IAAzBqI,EAAUrI,EAAnB5U,QAAqBjB,EAAK6V,EAAL7V,MAC3D4d,GAAmBM,GACnBC,GAAa,CAAEtV,WAAY7I,GAC7B,GAAG,CAACme,KAEEI,IAAgB1c,EAAAA,EAAAA,cAAY,WAChC,IAAM2c,EAAerD,EAASsD,eAAe,mBAC7CD,EAAaE,QAEb9B,GAAY3H,IAEZuG,GAAc,GACdd,EACGiE,OAAO1E,GAAWhF,KAClB2J,MAAK,SAACC,GACLL,EAAaM,MAAK,IACD7D,EAAYJ,EAAYD,GAChCX,GAAW4E,GACtB,IAAG,SAACpa,GAEF,IAAIsa,EADJP,EAAaM,MAAK,GAEdle,IAAAA,QAAU6D,EAAOA,QACnBsa,GAAgB7T,EAAAA,EAAAA,IAAezG,EAAOA,OAAQvC,GACrCuC,aAAkBiW,EAAWsE,iBACtCD,EAAgB,CAACta,GACR7D,IAAAA,QAAU6D,GACnBsa,EAAgBta,GAEhB+Z,EAAaxb,MAAM,qBAADa,QAAsBoI,EAAAA,EAAAA,IAAyBxH,KACjEsa,EAAgB,CAAC7c,EAAKsH,UA7JVC,mGA+JdkS,EAAcoD,EAChB,IACCE,SAAQ,WACPlB,KACAvC,GAAc,EAChB,GACJ,GAAG,CAACvG,GAAM/S,EAAM+Y,EAAWL,EAAWC,EAAWH,EAAYS,EAAU4C,KAE/DmB,GAAkCxd,EAAlCwd,8BAGR,OACE1c,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8B,+BAAgC,YAAU,qBAAoB3Q,UACrHnC,EAAAA,EAAAA,KAAC2c,EAAAA,UAAS,CAACC,SAAU7D,EAAY8D,YAAand,EAAKsH,UAAUC,cAAoB9E,UAC/EnC,EAAAA,EAAAA,KAACI,EAAAA,GAAc0c,SAAQ,CAACtf,MAAO0b,EAAW/W,UACxCnC,EAAAA,EAAAA,KAAA,OACEsE,UAAWwO,IACT,6BACAiF,EAAQgF,wBACR5a,UAEFc,EAAAA,EAAAA,MAAA,OACEqB,UAAWwO,IACTiF,EAAQiF,mBACRjF,EAAQkF,0BACRlF,EAAQmF,YACR/a,SAAA,EAEFc,EAAAA,EAAAA,MAACiQ,EAAAA,gBAAe,CACdC,gBAAiB,CACftB,OAAQF,EAAAA,qBACRjS,KAAM0Z,EACN3G,KAAAA,GACAW,WAAAA,IACAjR,SAAA,EAEFc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQoF,2BAA4BpF,EAAQqF,kBAAkBjb,SAAA,EACvFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,WAAUnb,SAAEzC,EAAKsH,UAAUC,eAC1CjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,uCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ0F,2BAA4B1F,EAAQ2F,aAAavb,UAClFnC,EAAAA,EAAAA,KAACoM,GAAc,CACbrN,GAAG,WACHuF,UAAWwO,IAAWiF,EAAQ4F,eAAgB,wCAC9CxK,gBAAiB,CACfI,MAAO,YAET7T,KAAMA,OAGVuD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ6F,2BAA4B7F,EAAQ8F,oBAAqB9F,EAAQ+F,yBAAyB3b,SAAA,EAC3Hc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQgG,wCAAyChG,EAAQqF,kBAAkBjb,SAAA,EACpGnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,WAAUnb,SAAEzC,EAAKsH,UAAUC,eAC1CjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,uCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQiG,wCAAyCjG,EAAQ2F,aAAavb,UAC/FnC,EAAAA,EAAAA,KAAC2E,GAAc,CACb5F,GAAG,WACHuF,UAAU,uCACV6O,gBAAiB,CACfI,MAAO,YAET7T,KAAMA,EACNR,YAAaA,MAGhBuc,KACCxY,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQgG,wCAAyChG,EAAQkG,oBAAoB9b,SAAA,EACtGnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,WAAUnb,SAAEzC,EAAKsH,UAAUC,eAC1CjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,sCAGnB/B,KACCzb,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQiG,wCAAyCjG,EAAQmG,qBAAqB/b,UACvGnC,EAAAA,EAAAA,KAAC6P,GAAc,CACb9Q,GAAG,WACHuF,UAAU,uCACV6O,gBAAiB,CACfI,MAAO,gBAET7T,KAAMA,EACNR,YAAaA,UAKrB+D,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQoG,2BAA4BpG,EAAQqF,kBAAkBjb,SAAA,EACvFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,qBAAoBnb,SAAEzC,EAAKsH,UAAUC,gDACpDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,qDAElBva,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQqG,2BAA4BrG,EAAQ2F,aAAavb,SAAA,EAClFnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQsG,MAAMlc,UAC5BnC,EAAAA,EAAAA,KAACiN,EAAAA,MAAK,CACJ3L,QAAS5B,EAAKsH,UAAUC,oMACxBiG,MAAM,OACNC,MAAOnN,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBACtB8I,aAAa,OAGjBpN,EAAAA,EAAAA,KAACgX,GAA6B,CAC5BjY,GAAG,qBACHuF,UAAWwO,IAAWiF,EAAQuG,0BAC9B5e,KAAMA,EACNlC,MAAOY,IAAAA,KAAOqU,GAAM,qBAAsB,oBAC1CzT,SAAU2c,GACVtG,mBAAoB0C,EAAQwG,sBAC5BjJ,iBAAkByC,EAAQwG,sBAC1BhJ,yBAA0BwC,EAAQxC,+BAGtCtS,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQyG,2BAA4BzG,EAAQqF,kBAAkBjb,SAAA,EACvFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,iBAAgBnb,SAAEzC,EAAKsH,UAAUC,WAChDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,mCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ0G,2BAA4B1G,EAAQ2F,aAAavb,UAClFnC,EAAAA,EAAAA,KAAC0e,EAAAA,MAAK,CACJ3f,GAAG,iBACHoU,gBAAiB,CACfI,MAAO,sBAIbtQ,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ4G,2BAA4B5G,EAAQqF,kBAAkBjb,SAAA,EACvFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,YAAWnb,SAAEzC,EAAKsH,UAAUC,gBAC3CjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,uCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ6G,2BAA4B7G,EAAQ2F,aAAavb,UAClFnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,cAAcxa,EAAAA,EAAAA,KAAGH,EAAAA,EAAAA,IAAiB,cAAcJ,EAAAA,EAAAA,IAAW,eAAe6B,UACzGnC,EAAAA,EAAAA,KAAC6e,EAAAA,GAAiB,CAChB9f,GAAG,YACHwU,MAAM,YACN/V,MAAOiV,GACPZ,OAAQF,EAAAA,qBACR3S,SAAU2c,GACVmD,mBAAoBhM,IAAWiF,EAAQgH,aAAc,oBACrDC,gBAAiBjH,EAAQkH,yBAI/Bhc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQmH,4BAA6BnH,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,mBAAkBnb,SAAEzC,EAAKsH,UAAUC,iBAClDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,wCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQoH,4BAA6BpH,EAAQ2F,aAAavb,UACnFnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,oBAAoBxa,EAAAA,EAAAA,KAAGP,EAAAA,EAAAA,IAAW,oBAAoBA,EAAAA,EAAAA,IAAW,qBAAqB6B,UACrHnC,EAAAA,EAAAA,KAAC6e,EAAAA,GAAiB,CAChB9f,GAAG,mBACHwU,MAAM,kBACN/V,MAAOiV,GACPZ,OAAQF,EAAAA,qBACR3S,SAAU2c,GACVmD,mBAAoBhM,IAAWiF,EAAQgH,aAAc,2BACrDC,gBAAiBjH,EAAQkH,yBAI/Bhc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQqH,4BAA6BrH,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,iBAAgBnb,SAAEzC,EAAKsH,UAAUC,qBAChDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,wCAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQsH,4BAA6BtH,EAAQ2F,aAAavb,UACnFnC,EAAAA,EAAAA,KAAC+R,EAAa,CACZhT,GAAG,iBACHkT,6BAA8B8F,EAAQuH,6BACtCpN,oBAAqB6F,EAAQwH,mBAC7BpN,WAAY4F,EAAQyH,UACpBtY,gBAAiB6Q,EAAQ0H,oBACzB/f,KAAMA,EACNT,WAAYma,EACZ5b,MAAOY,IAAAA,KAAOqU,GAAM,mBAAoB,iBAAkB,aAAc,gBACxEzT,SAAU2c,QAGd1Y,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ2H,4BAA6B3H,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,mBAAkBnb,SAAEzC,EAAKsH,UAAUC,wBAClDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,2CAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4H,4BAA6B5H,EAAQ2F,aAAavb,UACnFnC,EAAAA,EAAAA,KAAC6U,GAAe,CACd9V,GAAG,mBACH+V,mCAAoCiD,EAAQuH,6BAC5CpN,oBAAqB6F,EAAQwH,mBAC7BpN,WAAY4F,EAAQyH,UACpBtY,gBAAiB6Q,EAAQ0H,oBACzB/f,KAAMA,EACNT,WAAYma,EACZ5b,MAAOY,IAAAA,KAAOqU,GAAM,gBAAiB,mBAAoB,gBACzDzT,SAAU2c,QAGd1Y,EAAAA,EAAAA,MAAC2c,EAAAA,EAAK,CACJC,gBAAiB9F,EACjBzV,UAAWwO,IAAWiF,EAAQ+H,iBAAkB,qBAAqB3d,SAAA,EAErEnC,EAAAA,EAAAA,KAAC4f,EAAAA,EAAMG,QAAO,CAAA5d,UACZnC,EAAAA,EAAAA,KAAC4f,EAAAA,EAAMI,MAAK,CAACC,QAAM,EAAC3b,UAAWwO,IAAWiF,EAAQmI,6BAA6B/d,SAC5EzC,EAAKsH,UAAUC,oBAGpBjH,EAAAA,EAAAA,KAAC4f,EAAAA,EAAMO,SAAQ,CAAAhe,UACbc,EAAAA,EAAAA,MAAC2c,EAAAA,EAAMQ,KAAI,CAAAje,SAAA,EACTc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQsI,4BAA6BtI,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,wBAAuBnb,SAAEzC,EAAKsH,UAAUC,wBACvDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,kDAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQuI,4BAA6BvI,EAAQ2F,aAAavb,UACnFnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,wBAAwB/a,EAAAA,EAAAA,IAAW,wBAAwB6B,UAC1FnC,EAAAA,EAAAA,KAAC8G,EAAAA,GAAgB,CACf/H,GAAG,wBACHW,KAAMA,EACNyT,gBAAiB,CACfI,MAAO,6BAKdmJ,KACCzZ,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQwI,4BAA6BxI,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,mBAAkBnb,SAAEzC,EAAKsH,UAAUC,uBAClDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,0CAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyI,4BAA6BzI,EAAQ2F,aAAavb,UACnFnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,mBAAmB/a,EAAAA,EAAAA,IAAW,mBAAmB6B,UAChFnC,EAAAA,EAAAA,KAACyD,EAAAA,GAAc,CACb1E,GAAG,mBACHE,WAAYma,EACZ5b,MAAOiV,GAAKhP,eACZzE,SAAU6c,aAMpB5Y,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ0I,4BAA6B1I,EAAQqF,kBAAkBjb,SAAA,EACxFnC,EAAAA,EAAAA,KAACqd,EAAAA,MAAK,CAACC,QAAQ,oBAAmBnb,SAAEzC,EAAKsH,UAAUC,wBACnDjH,EAAAA,EAAAA,KAACud,EAAAA,GAAQ,CAACC,MAAM,+CAElBxd,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ2I,4BAA6B3I,EAAQ8F,qBAAqB1b,UAC3FnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,wBAAwB/a,EAAAA,EAAAA,IAAW,wBAAwB6B,UAC1FnC,EAAAA,EAAAA,KAACpB,EAAAA,GAAgB,CACfG,GAAG,oBACHC,SAAU4c,GACVpe,MAAOiV,GAAKoF,oBACZ5Y,WAAYma,EACZla,YAAaA,iBAOzBc,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4I,4BAA6B5I,EAAQ6I,iBAAiBze,UACvFnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,QAAQzB,EAAAA,EAAAA,IAAIoa,GAAa,cAAexZ,EAAAA,IAAmBM,UACjEnC,EAAAA,EAAAA,KAACwY,EAAc,CACbzZ,GAAG,aACHE,WAAYma,EACZla,YAAaA,EACb1B,MAAOiV,GAAKpM,WACZrH,SAAU8c,aAKlB9b,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ8I,4BAA6B9I,EAAQ9V,OAAQ,eAAeE,UAC7FnC,EAAAA,EAAAA,KAACuD,EAAAA,EAAM,CAACb,OAAQX,EAAAA,QAElBkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ+I,4BAA6B/I,EAAQgJ,SAAS5e,SAAA,CAC9EsW,IACCzY,EAAAA,EAAAA,KAACiN,EAAAA,MAAK,CACJ3L,QAAS2W,EAAUjR,UAAU,6BAC7BkG,MAAM,OACNC,MAAOnN,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBACtB8I,aAAa,KAGjBpN,EAAAA,EAAAA,KAACiN,EAAAA,MAAK,CACJ3L,QAAS2W,EAAUjR,UAAU,gCAC7BkG,MAAM,OACNC,MAAOnN,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBACtB8I,aAAa,QAGjBnK,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQiJ,4BAA6BjJ,EAAQkJ,mBAAmB9e,SAAA,EACzFnC,EAAAA,EAAAA,KAACkhB,EAAAA,OAAM,CAAC5c,UAAWwO,IAAW,OAAQ,oCAAqCqO,SAAS,UAAUC,QAAQ,UAAUC,UAAW5iB,IAAYsc,KAA4BJ,KAA0BQ,GAAiBmG,QAASvF,GAAc5Z,SAAEzC,EAAKsH,UAAUC,WACtPjH,EAAAA,EAAAA,KAACkhB,EAAAA,OAAM,CAAC5c,UAAWwO,IAAW,SAAU,sCAAuCwO,QAAShJ,EAASnW,SAAEzC,EAAKsH,UAAUC,yBASlI,EAoCA6Q,GAAyB5X,aAAe,CACtC8X,UAAW,KACXG,gBAAiB,CACfoJ,cAAenjB,IAAAA,KACfojB,cAAepjB,IAAAA,KACfqjB,WAAYrjB,IAAAA,KACZsjB,YAAatjB,IAAAA,KACbujB,eAAgBvjB,IAAAA,SAAWA,IAAAA,OAE7BwjB,wBAAyB,CACvBC,aAAc,CAAC,EACfC,aAAc,CAAC,IAIZ,IAAMC,IAAiCC,EAAAA,EAAAA,IAAmBC,EAAAA,EAAAA,mBAC/DnK,ILzgBA,SAACoK,GAAU,IAAEC,EAAK/kB,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAEglB,QAAS,CAAC,GAAG,OAAA3d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAClC4d,UAAW,CACTnd,QAAQod,EAAAA,EAAAA,MACR,mBAAmB,OAADjhB,OAASoS,EAAsB,OAAApS,OAAMqS,EAAgC,qBACvF6O,oBAAoB,OAADlhB,OAASoS,EAAsB,OAAApS,OAAMqS,EAAgC,sBAG1FqJ,uBAAwB,CACtB7X,QAAQod,EAAAA,EAAAA,MACR,mBAAmB,OAADjhB,OAASoS,EAAsB,OAAApS,OAAMqS,EAAgC,UACvF6O,oBAAoB,OAADlhB,OAASoS,EAAsB,OAAApS,OAAMqS,EAAgC,aAGvF8O,EAAAA,EAAAA,KAAiB,EAAO,YAAa,IAAE,IAE1CxF,mBAAoB,CAClB9X,QAAQud,EAAAA,EAAAA,IAAmB,IAG7BC,cAAe,CACbxd,QAAQud,EAAAA,EAAAA,IAAmB,IAG7BvF,WAAY,CACVhY,QAAQod,EAAAA,EAAAA,MACR,mBAAoB,OACpBC,oBAAqB,UAGpBC,EAAAA,EAAAA,KAAiB,EAAO,aAAc,KAAG,IAE5C1E,wBAAyB,CACvB5Y,QAAQod,EAAAA,EAAAA,MACR,mBAAoB,mBACpBC,oBAAqB,sBAGpBC,EAAAA,EAAAA,KAAiB,EAAO,0BAA2B,IAAE,IAExDvE,mBAAoB,CAClB/Y,OAAQ,CAACyO,GAAmB8O,EAAAA,EAAAA,IAAmB,KAGjDvE,oBAAqB,CACnBhZ,OAAQ,CAAC8O,IAAoByO,EAAAA,EAAAA,IAAmB,KAGlDrF,iBAAkB,CAChBlY,OAAQ,CAACyO,GAAmB8O,EAAAA,EAAAA,IAAmB,KAGjD/E,YAAa,CACXxY,OAAQ,CAAC8O,IAAoByO,EAAAA,EAAAA,IAAmB,KAGlD5E,oBAAqB,CACnB3Y,QAAQud,EAAAA,EAAAA,IAAmB,IAG7B9E,eAAgB,CACd5J,aAAc,MAEd,oCAAqC,CACnC3Q,QAAS,OACTuf,MAAO,UACPC,aAAc,QAIlBvE,MAAO,CACL,kCAAmC,CACjCjb,QAAS,QAEX2Q,aAAc,OAGhBuK,yBAA0B,CACxBlb,QAAS,QAGXmb,sBAAuB,CACrBsE,SAAU,GAGZtN,yBAA0B,CACxBuN,QAAS,CAAC,CAAC,EAAG,IACdC,UAAW,UAGbzD,6BAA8B,CAC9B,EAEAC,mBAAoB,CAClBnc,QAAS,OACT4f,UAAW,QAGbxD,UAAW,CACTmD,MAAO,SAGTlD,oBAAqB,CACnBsD,UAAW,SACXjmB,WAAY,OAGdiiB,aAAc,CACZ3b,QAAS,QAGX6b,kBAAmB,CACjB0D,MAAO,OACP5lB,YAAa,QAGf+iB,iBAAkB,CAChB5a,QAAQud,EAAAA,EAAAA,IAAmB,GAE3BQ,OAAQ,OACRlP,aAAc,OAEd,mBAAoB,CAClB+O,QAAS,EACTI,aAAc,OAEd,iBAAkB,CAChBC,SAAU,GACV,QAAS,CACPrmB,WAAY,OACZsmB,MAAOjB,EAAMC,QAAQiB,aACrBP,QAAS,EACT,oBAAqB,CACnBM,MAAOjB,EAAMC,QAAQkB,YACrBC,eAAgB,OAChBC,gBAAiB,UAIrB,cAAe,CACbL,SAAU,GACVM,WAAY,SACZX,QAAS,UACTY,QAAS,YAKX,kCAAmC,CACjCC,UAAW,iBACXC,gBAAiB,gBACjBC,WAAY,yBAGd,sBAAuB,CACrBF,UAAW,QACXC,gBAAiB,QACjBC,WAAY,WAKlB,oBAAqB,CACnBb,UAAW,GAEX,gBAAiB,CACfF,QAAS,EACTgB,SAAU,YAKhBlD,iBAAenc,EAAAA,EAAAA,GAAA,CACbS,QAAQud,EAAAA,EAAAA,IAAmB,KAExB5lB,EAAAA,EAAAA,IAA4BqlB,EAAYC,IAG7CpB,QAAS,CACP7b,QAAQ6e,EAAAA,EAAAA,IAAuB,GAE/B,kCAAmC,CACjCpB,MAAO,UAIX1B,kBAAmB,CACjB/b,QAAQud,EAAAA,EAAAA,IAAmB,GAC3BO,UAAW,OAEX,oBAAqB,CACnBlmB,WAAY,SAIhBmF,OAAQ,CACN,iBAAkB,CAChB8R,aAAc,GAEd,aAAc,CACZqP,MAAO,cAGZ,K,wBMhOQY,GAAsB,CACjC/c,iCACAA,2BACAA,gCACAA,0BACAA,4BACAA,yBACAA,oCACAA,iBACAA,uBACAA,oBACA8I,QAAO,SAACkU,EAAGC,GAAkB,OAAVD,EAAEC,GAAKA,EAAUD,CAAG,GAAG,CAAC,GCJhCE,GAA+B,SAAAnjB,GAAI,OAAIkE,EAAAA,EAAAA,QAAO,CACzD2E,iBAAAA,EACAma,oBAAAA,GACArT,yBAAAA,EACAuD,+BAAAA,IACClT,EAAM,EAEIojB,GAAwB,SAAApjB,GAAI,OAAIqjB,KAAgBF,GAA6BnjB,GAAO,C,6FCd1F,IAAMsjB,EAAwB,CACnCC,cAAe,gBACfC,YAAa,cACbC,eAAgB,iBAChBC,QAAS,UACTC,kBAAmB,oBACnBC,UAAW,YACXC,iBAAkB,iBAClBC,MAAO,QACPC,WAAY,aACZC,mBAAoB,qBACpBC,gBAAiB,mBAGNC,EAA6B,CACxCC,mBAAoB,qBACpBC,yBAA0B,2BAC1BC,4BAA6B,8BAC7BC,mCAAoC,qCACpCC,kCAAmC,oC,0QCf/BC,EAAuB,CAC3BC,qBAAsB,GACtBC,UAAW,GACXC,kBAAmB,IAGRC,EAAmB,SAACC,EAAUnmB,GAAI,OAAKtB,IAAAA,SAClD,CAAC,EACDA,IAAAA,UAAYynB,EAASC,eAAe,SAAA5nB,GAAG,OAAIwB,EAAKsH,UAAU9I,EAAI,IAC9DsnB,EACA,EAuBWO,EAAkB,SAAHlnB,GAIrB,IAHLmnB,EAAMnnB,EAANmnB,OACAC,EAAiBpnB,EAAjBonB,kBACAC,EAAmBrnB,EAAnBqnB,oBAEQC,EAAoBH,EAApBG,IAAKC,EAAeJ,EAAfI,WAETC,EAAeF,GATgB,sBAW7BG,EAAkBloB,IAAAA,KAAO8nB,GAE1BD,IACHI,GAAeE,EAAAA,EAAAA,YAAWJ,GAAO,IAAIK,IAAIL,GAAKM,OAASN,GAGzD,IAAMO,EAA0BtoB,IAAAA,SAAWA,IAAAA,KAAO4nB,EAAQM,GAAkBJ,GAE5E,OAAO9nB,IAAAA,OAASsoB,EAAyB,CACvCP,IAAKE,EACLD,WAAAA,GAEJ,ECpDMO,EAAyB,CAC7BC,cAAe3f,eACf4f,aAAc5f,6CACd6f,YAAa7f,uBACb8f,aAAc9f,iBCJV0f,EAAyB,CAC7BC,cAAe3f,eACf4f,aAAc5f,6CACd6f,YAAa7f,uBACb8f,aAAc9f,gBACd+f,aAAc/f,gCAGHggB,EAA0B,SAAHpoB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3C7iB,EAKEuhB,EALFvhB,UACA8iB,EAIEvB,EAJFuB,gBACAC,EAGExB,EAHFwB,mBACAC,EAEEzB,EAFFyB,eACAC,EACE1B,EADF0B,WAGIrB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEH,UAAAA,EACAmjB,aAAAA,EACAJ,mBAAAA,EACAE,WAAAA,EACAD,eAAAA,GACGF,GACAtB,GACAoB,EAEP,EC3CMP,EAAyB,CAC7BC,cAAe3f,iBACf4f,aAAc5f,gBACd6f,YAAa7f,UACb8f,aAAc9f,gBACd+f,aAAc/f,gCCLV0f,EAAyB,CAC7BC,cAAe3f,iBACf4f,aAAc5f,gBACd6f,YAAa7f,UACb8f,aAAc9f,gBACd+f,aAAc/f,gCCLV0f,EAAyB,CAC7BC,cAAe3f,iBACf4f,aAAc5f,gBACd6f,YAAa7f,UACb8f,aAAc9f,gBACd+f,aAAc/f,gCCLV0f,EAAyB,CAC7BC,cAAe3f,iBACf8f,aAAc9f,YAGHggB,EAA0B,SAAHpoB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3C7iB,EAKEuhB,EALFvhB,UACA8iB,EAIEvB,EAJFuB,gBACAC,EAGExB,EAHFwB,mBACAC,EAEEzB,EAFFyB,eACAC,EACE1B,EADF0B,WAGIrB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEH,UAAAA,EACAmjB,aAAAA,EACAJ,mBAAAA,EACAE,WAAAA,EACAD,eAAAA,GACGF,GACAtB,GACAoB,EAEP,ECxCMP,EAAyB,CAC7BC,cAAe3f,GACf4f,aAAc5f,GACd6f,YAAa7f,GACb8f,aAAc9f,GACd+f,aAAc/f,ICLV0f,EAAyB,CAC7BE,aAAc5f,uDACd6f,YAAa7f,mECFT0f,EAAyB,CAC7Be,SAAUzgB,mCACV6f,YAAa,ICIFa,GAA2BC,EAAA,IAAAxW,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAwW,EACrCtD,EAAAA,EAAsBG,gBTAc,SAAH5lB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3CC,EAGEvB,EAHFuB,gBACAC,EAEExB,EAFFwB,mBACAC,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEgjB,aAAAA,EACAJ,mBAAAA,EACAC,eAAAA,GACGF,GACAtB,GACAoB,EAEP,IS9BG5C,EAAAA,EAAsBE,YAAcqD,GACpCvD,EAAAA,EAAsBI,SPDc,SAAH7lB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3C7iB,EAIEuhB,EAJFvhB,UACA8iB,EAGEvB,EAHFuB,gBACAC,EAEExB,EAFFwB,mBACAC,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEH,UAAAA,EACAmjB,aAAAA,EACAJ,mBAAAA,EACAC,eAAAA,GACGF,GACAtB,GACAoB,EAEP,IO/BG5C,EAAAA,EAAsBC,eNHc,SAAH1lB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3CC,EAGEvB,EAHFuB,gBACAC,EAEExB,EAFFwB,mBACAC,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEgjB,aAAAA,EACAJ,mBAAAA,EACAC,eAAAA,GACGF,GACAtB,GACAoB,EAEP,IM3BG5C,EAAAA,EAAsBK,mBLHc,SAAH9lB,GAK7B,IAJLmnB,EAAMnnB,EAANmnB,OACA8B,EAAcjpB,EAAdipB,eACAjC,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3CC,EAGEvB,EAHFuB,gBACAC,EAEExB,EAFFwB,mBACAC,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzE+B,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,mBAAmB,EACnBC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEgjB,aAAAA,EACAJ,mBAAAA,EACAC,eAAAA,EACAQ,eAAAA,GACGV,GACAtB,GACAoB,EAEP,IK5BG5C,EAAAA,EAAsBM,WHJc,SAAH/lB,GAI7B,IAHLmnB,EAAMnnB,EAANmnB,OACAH,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,EAAsB9oB,IAAAA,KAAOynB,EAAUsB,EAAAA,IAE3CC,EAGEvB,EAHFuB,gBACAC,EAEExB,EAFFwB,mBACAC,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,GACpBrG,IAAAA,UAAYuoB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEzEO,EAAoBmB,EAAgBI,iBACpCC,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,kBAAAA,EACAC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEgjB,aAAAA,EACAJ,mBAAAA,EACAC,eAAAA,GACGF,GACAtB,GACAoB,EAEP,IG1BG5C,EAAAA,EAAsBO,iBAAmBgD,GACzCvD,EAAAA,EAAsBQ,MAAQiD,GAC9BzD,EAAAA,EAAsBS,WAAagD,GACnCzD,EAAAA,EAAsBU,oBFXc,SAAHnmB,GAK7B,IAJLmnB,EAAMnnB,EAANmnB,OACA8B,EAAcjpB,EAAdipB,eACAjC,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,GAAsBc,EAAAA,EAAAA,MAAKnC,EAAUsB,EAAAA,IAEzCC,EAEEvB,EAFFuB,gBACAE,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,IACpBwjB,EAAAA,EAAAA,WAAUtB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEvE+B,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,mBAAmB,EACnBC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACE/E,KAAAA,EACA+nB,aAAAA,EACAH,eAAAA,EACAQ,eAAAA,GACGZ,GACApB,GACAsB,EAEP,KEpB2EhW,EAAAA,EAAAA,GAAAwW,EACxEtD,EAAAA,EAAsBW,iBDZc,SAAHpmB,GAK7B,IAJLmnB,EAAMnnB,EAANmnB,OACA8B,EAAcjpB,EAAdipB,eACAjC,EAAQhnB,EAARgnB,SACAnmB,EAAIb,EAAJa,KAEMomB,EAAgBF,EAAiBC,EAAUnmB,GAC3CwnB,GAAsBc,EAAAA,EAAAA,MAAKnC,EAAUsB,EAAAA,IAEzCC,EAEEvB,EAFFuB,gBACAE,EACEzB,EADFyB,eAGIpB,GAAmBzhB,EAAAA,EAAAA,GAAA,IACpBwjB,EAAAA,EAAAA,WAAUtB,GAAwB,SAAAjB,GAAS,OAAIhmB,EAAKsH,UAAU0e,EAAU,KAEvE+B,EAAe1B,EAAgB,CACnCC,OAAAA,EACAC,mBAAmB,EACnBC,oBAAAA,IAGF,OAAAzhB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACE/E,KAAAA,EACA+nB,aAAAA,EACAH,eAAAA,EACAQ,eAAAA,GACGZ,GACApB,GACAsB,EAEP,K,6CE1Cac,EAA2B,WAAH,MAAU,CAC7CC,gBAAiB,CAAC,EACnB,E,YCMYC,EAAkB,SAAHvpB,GAA+B,IAAzBwpB,EAAiBxpB,EAAjBwpB,kBAC1BtQ,GAAUuQ,EAAAA,EAAAA,kBAAiBJ,GAEjC,OACEloB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,mBAAoBiF,EAAQoQ,iBAAiBhmB,SACrEkmB,KAGP,E,4DCPME,EAAkB,SAAAC,GACtB,SAAAD,EAAYlkB,GAAQ,IAAD5G,EAMf,OANeP,EAAAA,EAAAA,GAAA,KAAAqrB,IACjB9qB,GAAAN,EAAAA,EAAAA,GAAA,KAAAorB,EAAA,CAAMlkB,KAwBRokB,cAAgB,WAGd,IAAIC,OAAOC,mBAAX,CAIAlrB,EAAKmrB,0BACL,IAAAC,EAA4BprB,EAAK4G,MAAzBykB,EAAKD,EAALC,MAAOC,EAAQF,EAARE,SAETC,EAAavrB,EAAKwrB,YAAYnmB,SAAWrF,EAAKwrB,YAAYnmB,QAAQomB,cAAc,iEAGhFC,EAAgBH,GAAcA,EAAWI,kBAC3CC,EAAYP,EAAQ,EAGpBO,GAAaF,IACfE,EAAY,GAGd5rB,EAAK6rB,mBAAqBC,YAAW,WAEnC9rB,EAAK+rB,SAAS,CACZC,UAAW,SAEbV,EAASM,GACT5rB,EAAKgrB,eACP,GAAG,IAvBH,CAwBF,EAAChrB,EAEDmrB,wBAA0B,WACpBnrB,EAAK6rB,qBACPI,aAAajsB,EAAK6rB,oBAClB7rB,EAAK6rB,mBAAqB,KAE9B,EAAC7rB,EAEDksB,aAAe,SAACC,EAAe1F,GAC7BzmB,EAAK+rB,SAAS,CACZC,UAAWvF,EAAEuF,YACZ,kBAAMhsB,EAAKmrB,yBAAyB,IAEvCnrB,EAAK4G,MAAM0kB,SAASa,EACtB,EAlEEnsB,EAAKwrB,YAAc5oB,EAAAA,YACnB5C,EAAKosB,MAAQ,CACXJ,UAAW,MACXhsB,CACJ,CAAC,OAAAJ,EAAAA,EAAAA,GAAAkrB,EAAAC,IAAAlrB,EAAAA,EAAAA,GAAAirB,EAAA,EAAAhrB,IAAA,oBAAAC,MAED,WACMM,KAAKuG,MAAMylB,gBACbhsB,KAAK2qB,eAET,GAAC,CAAAlrB,IAAA,qBAAAC,MAED,WACMM,KAAKuG,MAAMylB,iBAAmBhsB,KAAKwrB,oBACrCxrB,KAAK2qB,eAET,GAAC,CAAAlrB,IAAA,uBAAAC,MAED,WACEM,KAAK8qB,yBACP,GAAC,CAAArrB,IAAA,SAAAC,MAgDD,WACE,IASIusB,EATIN,EAAc3rB,KAAK+rB,MAAnBJ,UACRO,EAMIlsB,KAAKuG,MALP4lB,EAAeD,EAAfC,gBACAnB,EAAKkB,EAALlB,MACAoB,EAA8BF,EAA9BE,+BACAC,EAA8BH,EAA9BG,+BACApS,EAAOiS,EAAPjS,QAaF,OAPEgS,EADEG,GAA6D,IAA3BD,EAAgBtsB,OAClCoa,EAAQqS,eAERD,EACdrX,IAAWiF,EAAQsS,yBAA0B,wCAC7CtS,EAAQuS,oBAIZtqB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQwS,aAActqB,IAAKnC,KAAKmrB,YAAY9mB,UAC1DnC,EAAAA,EAAAA,KAACwqB,EAAAA,SAAQ,CACPC,YAAa3B,EACbW,UAAWA,EACXiB,SAAU5sB,KAAK6rB,aACfgB,UAAU,EACVC,UAAW9sB,KAAKuG,MAAM3E,KAAKsH,UAAUC,mBACrC4jB,UAAW/sB,KAAKuG,MAAM3E,KAAKsH,UAAUC,uBAKrC3C,UAAWylB,EAAgB5nB,SAGzB8nB,EAAgBtnB,KAAI,SAAAmoB,GAAc,OAChC9qB,EAAAA,EAAAA,KAACwqB,EAAAA,SAASO,KAAI,CAAA5oB,SACX2oB,GACa,OAM5B,IAAC,CArHqB,CAASzqB,EAAAA,eA2IjCkoB,EAAmBroB,aAAe,CAChCgqB,gCAAgC,EAChCC,gCAAgC,EAChCL,gBAAgB,GAGX,IAAMkB,EAAkB,SAAC3mB,GAC9B,IAAQijB,EAAoCjjB,EAApCijB,eAAgB2C,EAAoB5lB,EAApB4lB,gBAElBgB,GAAwB1oB,EAAAA,EAAAA,UAAQ,WACpC,OAAO0f,EAAAA,EAAAA,mBAAkBsG,EC5JW,SAAH1pB,GAAA,IAAAqsB,EAAArsB,EAAMyoB,eAAAA,OAAc,IAAA4D,EAAG,CAAC,EAACA,EAAEC,EAAgBtsB,EAAhBssB,iBAAgB,OAAO,SAAC/sB,EAACkB,GAA8D,IAAD8rB,EAAA9rB,EAAzD8iB,QAAAA,OAAO,IAAAgJ,EAAG,CAAC,EAACA,EAAAC,EAAA/rB,EAAEgsB,eAAAA,OAAc,IAAAD,EAAG,oBAAmBA,EACvIE,GAAYvD,EAAAA,EAAAA,MAAKV,EAAgB,CACrC,eACA,2BACA,uBAGF,MAAO,CACLiD,cAAcrlB,EAAAA,EAAAA,QAAO,CACnB,oBAAqB,CACnBsmB,cAAe,GACf,mBAAoB,CAClBC,YAAa,GACb7I,aAAc,KAGlB,2BAA4B,CAC1Bzf,SAAU,WACVuoB,OAAQ,EACR/I,MAAO,OAEP,OAAQ,CACNgJ,WAAY,OACZ1I,OAAQ,oBACR2I,aAAc,GACdC,OAAQ,aACRC,OAAQ,GACRnJ,MAAO,IAGT,cAAe,CACbgJ,WAAYvJ,EAAQiB,aACpBJ,OAAO,aAAD5hB,OAAe+gB,EAAQiB,gBAIjC,uBAAwB,CACtBjgB,QAAS,QAGX,sBAAuB,CACrBggB,MAAOhB,EAAQiB,aACflgB,SAAU,WACV4oB,KAAM,OACNC,IAAK,OACLC,MAAO,EACPP,OAAQ,EACRI,OAAQ,GACRnJ,MAAO,GACPkJ,OAAQ,YACRK,WAAY,OAEZ,UAAW,CACTC,QAAQ,aAAD9qB,OAAe+gB,EAAQgK,mBAGhC,SAAU,CACRrvB,YAAa,IAGf,wDAAyD,CACvDsvB,WAAYf,EACZnoB,SAAU,WACV6oB,IAAK,OACLC,MAAO,OACPP,OAAQ,OACRK,KAAM,OACNF,OAAQ,EACR1I,SAAU,GACVmJ,WAAY,EACZC,cAAe,KAGlBhB,EAAUhB,cACbF,0BAA0BnlB,EAAAA,EAAAA,QAAO,CAC/B,2BAA4B,CAC1B/B,SAAU,WACV4oB,KAAM,EACNjvB,WAAY,GACZC,YAAa,GACbimB,UAAW,GACX0I,QAAS,EACTC,WAAY,eAEd,4BAA6B,CAC3BxoB,SAAU,WACV4oB,KAAM,EACNL,QAAS,EACT1I,UAAW,GACXlmB,WAAa,IAAM,EAAO,GAAKquB,EAAoB,EACnDQ,WAAY,eAEd,yBAA0B,CACxBI,KAAM,kBACNF,OAAQ,wBAEV,mCAAoC,CAClCJ,YAAa,EACb7I,aAAc,IAEf2I,EAAUlB,0BACbC,oBAAoBplB,EAAAA,EAAAA,QAAO,CACzB,2BAA4B,CAC1B/B,SAAU,WACV4oB,KAAM,EACNjvB,WAAY,GACZ4uB,QAAS,GAEX,4BAA6B,CAC3BvoB,SAAU,WACV4oB,KAAM,GACNL,QAAS,EACT5uB,WAAY,KAEd,yBAA0B,CACxBivB,KAAM,SAEPR,EAAUjB,oBACbF,eAAgB,CACd,sBAAuB,CACrBhnB,QAAS,mBAEX,yBAA0B,CACxBA,QAAS,oBAIjB,CAAE,CD6B+CopB,CAAyB,CAAElF,eAAgBA,EAAemF,gBAAiBtB,iBAAkBlB,EAAgBtsB,SAC5J,GAAG,CAAC2pB,EAAgB2C,IAEpB,OACEjqB,EAAAA,EAAAA,KAACirB,GAAqBxmB,EAAAA,EAAAA,GAAA,GAChBJ,GAGV,EASA2mB,EAAgB9qB,aAAe,CAC7BonB,eAAgB,CAAC,G,gBEhKboF,EAA8B,SAAH7tB,GAG1B,IAFL8tB,EAAK9tB,EAAL8tB,MACArF,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBClBkC,SAAHzpB,GAAA,IAAAqsB,EAAArsB,EAC/CyoB,eAAAA,OAAc,IAAA4D,EAAG,CAAC,EAACA,EAAA,OACf,iBAAO,CACXyB,OAAOznB,EAAAA,EAAAA,QAAO,CACZie,SAAU,GACVM,WAAY,SACZ6I,WAAY,OACZT,OAAQ,sBACR,wBAAyB,CACvB9uB,YAAa,EACbqG,QAAS,iBAEVkkB,EAAeqF,OACnB,CAAE,CDKgCC,CAAqC,CAAEtF,eAAAA,KAExE,OACEtnB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,mBAAoBiF,EAAQ4U,OAAOxqB,SAC3DwqB,GAGP,EAOAD,EAA4BxsB,aAAe,CACzConB,eAAgB,CAAC,GAGnB,IAAMuF,EAA4B,SAAHvtB,GAUxB,IATLwpB,EAAKxpB,EAALwpB,MACAgE,EAAextB,EAAfwtB,gBACAC,EAAkBztB,EAAlBytB,mBACAC,EAAoB1tB,EAApB0tB,qBACAC,EAAsB3tB,EAAtB2tB,uBACAC,EAAgB5tB,EAAhB4tB,iBACAC,EAAmB7tB,EAAnB6tB,oBACAC,EAAM9tB,EAAN8tB,OACA9F,EAAchoB,EAAdgoB,eAEM5nB,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBCV+B,SAAHtb,GAAA,IAAAugB,EAAAvgB,EAC5Csa,eAAAA,OAAc,IAAAiG,EAAG,CAAC,EAACA,EAAA,OACf,iBAAO,CACXC,SAAStoB,EAAAA,EAAAA,QAAO,CAAC,EAAGoiB,EAAekG,SACnCC,eAAevoB,EAAAA,EAAAA,QAAO,CACpB9B,QAAS,eACTyf,SAAU,EACV9lB,YAAa,GACb8W,UAAW,UACVyT,EAAemG,eACnB,CAAE,CDAgCC,CAAkC,CAAEpG,eAAAA,KAG/DpjB,GAAa3B,EAAAA,EAAAA,UAAQ,WACzB,OAAOyqB,EAAqBlE,EAC9B,GAAG,CAACkE,EAAsBlE,IAGpB6E,GAAgBprB,EAAAA,EAAAA,UAAQ,WAC5B,OACEvC,EAAAA,EAAAA,KAAA,UACEsE,UAAWwO,IAAW,8CAA+CiF,EAAQyV,SAC7ElM,QAAS,WAAF,OAAQ6L,EAAoBF,EAAuBnE,GAAO,EACjEzH,SAAUnd,EACV,aAAY4kB,EAAM3mB,SAEhBzC,EAAKsH,UAAUC,YAGvB,GAAG,CAAC6hB,EAAOppB,EAAMytB,EAAqBpV,EAAS7T,EAAY+oB,IAE3D,OACEjtB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,qBAAsB,eAAgBiF,EAAQ0V,eAAetrB,SACpF2qB,GAWE7pB,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACX4qB,IACA/sB,EAAAA,EAAAA,KAAA,UACEsE,UAAU,oCACVgd,QAAS,WAAF,OAAQ8L,EAAOH,EAAuBnE,GAAO,EACpD,aAAYA,EACZ6D,MAAOjtB,EAAKsH,UAAUC,qBAA2B9E,SAE/CzC,EAAKsH,UAAUC,uBAGpB/C,EACAipB,IACCntB,EAAAA,EAAAA,KAAC4tB,EAAAA,YAAW,CACVlK,QAAShkB,EAAKsH,UAAUC,sDACxB4mB,aAAc,CAAEC,SAAU,GAAI3rB,SAE5BwrB,IAGDR,GAAuBQ,KA9B/BT,IACCltB,EAAAA,EAAAA,KAAA,UACEsE,UAAU,8CACVgd,QAAS,WAAF,OAAQ4L,EAAiBD,EAAuBnE,GAAO,EAC9D,aAAYA,EAAM3mB,SAEhBzC,EAAKsH,UAAUC,cA+B7B,EAcA4lB,EAA0B3sB,aAAe,CACvCgtB,sBAAkBtvB,EAClBuvB,yBAAqBvvB,EACrB0pB,eAAgB,CAAC,GAGnB,IAAMyG,EAAuB,SAAH/gB,GAKnB,IAJL8b,EAAK9b,EAAL8b,MACAkF,EAAMhhB,EAANghB,OACAC,EAASjhB,EAATihB,UACA3G,EAActa,EAAdsa,eAEM5nB,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBCtF2B,SAAHtW,GAAA,IAAAkc,EAAAlc,EACxCsV,eAAAA,OAAc,IAAA4G,EAAG,CAAC,EAACA,EAAA,OACf,iBAAO,CACXC,QAAQjpB,EAAAA,EAAAA,QAAO,CAAC,EAAGoiB,EAAe6G,QAClCC,SAASlpB,EAAAA,EAAAA,QAAO,CAAC,EAAGoiB,EAAe8G,SACpC,CAAE,CDiFgCC,CAA8B,CAAE/G,eAAAA,KAEjE,OACErkB,EAAAA,EAAAA,MAAA,OAAAd,SAAA,EACEnC,EAAAA,EAAAA,KAAA,UACEsE,UAAWwO,IAAW,oCAAqCiF,EAAQoW,QACnE7M,QAAS,WAAF,OAAQ0M,EAAOlF,EAAM,EAC5B,aAAYA,EAAM3mB,SAEhBzC,EAAKsH,UAAUC,cAEnBjH,EAAAA,EAAAA,KAAA,UACEsE,UAAWwO,IAAW,uCAAwCiF,EAAQqW,SACtE9M,QAAS,WAAF,OAAQ2M,EAAUnF,EAAM,EAC/B,aAAYA,EAAM3mB,SAEhBzC,EAAKsH,UAAUC,eAIzB,EASA8mB,EAAqB7tB,aAAe,CAClConB,eAAgB,CAAC,GAGnB,IAAMgH,EAAmC,SAAHtc,GAQ/B,IAPL8W,EAAK9W,EAAL8W,MACA6D,EAAK3a,EAAL2a,MACA4B,EAAiBvc,EAAjBuc,kBACAC,EAAaxc,EAAbwc,cACAlH,EAActV,EAAdsV,eACA0F,EAAoBhb,EAApBgb,qBACAC,EAAsBjb,EAAtBib,uBAEMlV,GAAUuQ,EAAAA,EAAAA,kBCnKuC,SAAHhpB,GAAA,IAAAmvB,EAAAnvB,EACpDgoB,eAAAA,OAAc,IAAAmH,EAAG,CAAC,EAACA,EAAA,OACf,iBAAO,CACXC,YAAYxpB,EAAAA,EAAAA,QAAO,CACjB9B,QAAS,OACTurB,cAAe,MACf7a,WAAY,UACXwT,EAAeoH,YAClB/B,OAAOznB,EAAAA,EAAAA,QAAO,CACZie,SAAU,GACVM,WAAY,SACZ6I,WAAY,OACZT,OAAQ,sBACR,wBAAyB,CACvB9uB,YAAa,EACbqG,QAAS,iBAEVkkB,EAAeqF,OAClBiC,SAAS1pB,EAAAA,EAAAA,QAAO,CACd2d,SAAU,GACTyE,EAAesH,SACnB,CAAE,CD8IgCC,CAA0C,CAAEvH,eAAAA,KACrE0G,EAAWO,EAAXP,OAER,OACE/qB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,iBAAkBiF,EAAQ2W,YAAYvsB,SAAA,EAC/DnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,mBAAoB,sBAAuBiF,EAAQ4U,OAAOxqB,SAClFwqB,KAEH3sB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,YAAaiF,EAAQ6W,WAC9CZ,GACAhuB,EAAAA,EAAAA,KAAC+tB,GAAoBtpB,EAAAA,EAAAA,GAAA,CACnBqkB,MAAOA,EACPxB,eAAgBA,GACZiH,KAENvuB,EAAAA,EAAAA,KAAC6sB,GAAyBpoB,EAAAA,EAAAA,GAAA,CACxBqkB,MAAOA,EACPgE,gBAAiB0B,EAAcM,WAC/B/B,mBAAoByB,EAAczB,mBAClCzF,eAAgBA,EAChB0F,qBAAsBA,EACtBC,uBAAwBA,GACpBsB,MAId,EAcAD,EAAiCpuB,aAAe,CAC9ConB,eAAgB,CAAC,GAGZ,IAAMyH,EAAS,SAAC1qB,GACrB,IACEykB,EAUEzkB,EAVFykB,MACAkG,EASE3qB,EATF2qB,wBACAhC,EAQE3oB,EARF2oB,qBACAwB,EAOEnqB,EAPFmqB,cACAD,EAMElqB,EANFkqB,kBACAU,EAKE5qB,EALF4qB,kBACAC,EAIE7qB,EAJF6qB,aACA5H,EAGEjjB,EAHFijB,eACA2F,EAEE5oB,EAFF4oB,uBACAkC,EACE9qB,EADF8qB,+BAGIxC,GAAQpqB,EAAAA,EAAAA,UAAQ,kBAAMysB,EAAwBlG,EAAM,GAAE,CAACA,EAAOkG,IACpDI,EAAiB9H,EAAzB+H,OAER,OAAKJ,GAAqBC,GAAgBX,IAAsBY,EAA+BrG,IAE3F9oB,EAAAA,EAAAA,KAACsuB,EAAgC,CAC/BxF,MAAOA,EACP6D,MAAOA,EACP6B,cAAeA,EACfD,kBAAmBA,EACnBjH,eAAgB8H,EAChBpC,qBAAsBA,EACtBC,uBAAwBA,KAM5BjtB,EAAAA,EAAAA,KAAC0sB,EAA2B,CAC1BC,MAAOA,EACPrF,eAAgB8H,GAGtB,EAiBAL,EAAO7uB,aAAe,CACpB+uB,mBAAmB,EACnBV,kBAAmB,KACnBjH,eAAgB,CAAC,GEvRZ,ICQMgI,EAAoB,SAAHzwB,GAMvB,IALLiqB,EAAKjqB,EAALiqB,MACA0F,EAAa3vB,EAAb2vB,cACAU,EAAYrwB,EAAZqwB,aACAK,EAAiB1wB,EAAjB0wB,kBACAjI,EAAczoB,EAAdyoB,eAEM5nB,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBDhBwB,SAAHzpB,GAAA,IAAAqsB,EAAArsB,EACrCyoB,eAAAA,OAAc,IAAA4D,EAAG,CAAC,EAACA,EAAA,OACf,iBAAO,CACXsE,iBAAiBtqB,EAAAA,EAAAA,QAAO,CACtBie,SAAU,GACVmJ,WAAY,EACZvvB,YAAa,GACbqG,QAAS,QACTuf,MAAO,OACP9O,UAAW,UACVyT,EAAekI,iBACnB,CAAE,CCKgCC,CAA2B,CAAEnI,eAAgBA,EAAeoI,qBAE7F,IAA8C,IAA1CtxB,IAAAA,OAASowB,EAAe,gBAErBU,EAAc,CACjB,IAAAS,EAAgCJ,EAAkBzG,GAA1C8G,EAAQD,EAARC,SAAUC,EAASF,EAATE,UAIlB,OACE7vB,EAAAA,EAAAA,KAAA,QAAMsE,UAAWwO,IAAW,eAAgBiF,EAAQyX,iBAAiBrtB,SAEjEzC,EAAKsH,UALaC,gGAKc,CAC9B0b,MAAOiN,EACP9D,OAAQ+D,KAKlB,CAGF,OAAO,IACT,EAYAP,EAAkBpvB,aAAe,CAC/BonB,eAAgB,CAAC,GCpDZ,ICMMwI,EAAoB,SAAHjxB,GAGvB,IAFL8mB,EAAiB9mB,EAAjB8mB,kBACA2B,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDVwB,SAAHzpB,GAAA,IAAAqsB,EAAArsB,EACrCyoB,eAAAA,OAAc,IAAA4D,EAAG,CAAC,EAACA,EAAA,OACf,WACJ,IAAMK,EAAYntB,IAAAA,KAAOkpB,EAAgB,CACvC,iBACA,yBAGF,MAAO,CACLyI,eAAgB3xB,IAAAA,OAAS,CACvB+kB,SAAU,GACVmJ,WAAY,OACZzY,UAAW,OACXiP,QAAS,oBACRyI,EAAUwE,gBACbC,qBAAsB5xB,IAAAA,OAAS,CAAC,EAAGmtB,EAAUyE,sBAEjD,CAAE,CCPiCC,CAA2B,CAAE3I,eAAgBA,EAAe3B,qBAE7F,OAAIA,GAEA3lB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQgY,gBAAgB5tB,UACpEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQiY,sBAAsB7tB,SAChFwjB,MAMF,IACT,EASAmK,EAAkB5vB,aAAe,CAC/BylB,kBAAmB,GACnB2B,eAAgB,CAAC,GClCZ,ICOM4I,EAAe,SAAHrxB,GAKlB,IAJLiqB,EAAKjqB,EAALiqB,MACA0F,EAAa3vB,EAAb2vB,cACA2B,EAAiBtxB,EAAjBsxB,kBACA7I,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDbmB,SAAHzpB,GAAA,IAAAqsB,EAAArsB,EAChCyoB,eAAAA,OAAc,IAAA4D,EAAG,CAAC,EAACA,EAAA,OACf,SAAC9sB,EAACkB,GAAA,IAAA8rB,EAAA9rB,EAAI8iB,QAAAA,OAAO,IAAAgJ,EAAG,CAAC,EAACA,EAAA,MAAQ,CAC9BgF,cAAclrB,EAAAA,EAAAA,QAAO,CACnB/B,SAAU,WACVktB,MAAO,QACP3E,OAAQ,IACRtI,MAAOhB,EAAQiB,aACf,YAAa,CACX2I,IAAK,EACL7I,SAAU,KAEXmE,EAAe8I,cACnB,CAAE,CCAgCE,CAAsB,CAAEhJ,eAAgBA,EAAe8I,gBAExF,GAAID,EAAmB,CACrB,IACE7O,EAIE6O,EAJF7O,QACAiP,EAGEJ,EAHFI,aACAC,EAEEL,EAFFK,WACAC,EACEN,EADFM,gBAGF,OACEzwB,EAAAA,EAAAA,KAAC0wB,EAAAA,aAAY,CACXpsB,UAAWwO,IAAW2d,EAAiB1Y,EAAQqY,cAC/CG,aAAcA,EACdjP,QAAS,WAAF,OAAQA,EAAQ,CAAEwH,MAAAA,EAAO0F,cAAAA,GAAgB,EAACrsB,SAE/CquB,GAGR,CAEA,OAAO,IACT,EAgBAN,EAAahwB,aAAe,CAC1BiwB,kBAAmB,KACnB7I,eAAgB,CAAC,G,gBCtDNqJ,EAA8B,WAAH,MAAU,CAChDC,qBAAsB,CACpB,mBAAoB,CAClBjO,MAAO,MACP,wCAAyC,CACvCA,MAAO,OAGX,kCAAmC,CACjCmJ,OAAQ,OACR1oB,QAAS,OACTurB,cAAe,SACf,oBAAqB,CACnBvrB,QAAS,OACTurB,cAAe,MACf7a,WAAY,SAEZ,0CAA2C,CACzC/W,YAAa,EACbqG,QAAS,eACTyf,SAAU,GAGZ,eAAgB,CACdA,SAAU,GAGZ,qCAAsC,CACpCzf,QAAS,eACTyf,SAAU,EACV,aAAc,CACZ9lB,YAAa,OAMxB,EAEY8zB,GAAsB,WAAH,MAAU,CACxCC,SAAU,CACRhF,OAAQ,OACRiF,UAAW,KAEbC,cAAe,CACb5tB,QAAS,OACTurB,cAAe,SACf7C,OAAQ,OACRiF,UAAW,IACX,0BAA2B,CACzBlO,SAAU,EACVzf,QAAS,OACTurB,cAAe,SACf,yCAA0C,CACxC9L,SAAU,EACVzf,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZ,iBAAkB,CAChB1Q,QAAS,OACTyf,SAAU,EACV8L,cAAe,SACf,+BAAgC,CAC9BvrB,QAAS,OACTyf,SAAU,EACV8L,cAAe,WAGnB,oCAAqC,CACnCvrB,QAAS,QACTD,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACVoN,UAAW,+EACXtF,aAAc,KACdD,WAAY,OACZE,OAAQ,OACRG,IAAK,GAEP,mCAAoC,CAClC7oB,SAAU,SACV0Q,UAAW,UAEb,oBAAqB,CACnB1Q,SAAU,YAIhB,kBAAmB,CACjB0Q,UAAW,SACXsP,SAAU,GACVmJ,WAAY,IAGjB,EC/EK6E,GAAqB,SAAHtyB,GAQjB,IAPLuyB,EAAMvyB,EAANuyB,OACAC,EAASxyB,EAATwyB,UACA/sB,EAASzF,EAATyF,UACAgtB,EAAiBzyB,EAAjByyB,kBACAC,EAAU1yB,EAAV0yB,WACAC,EAAY3yB,EAAZ2yB,aACAC,EAAU5yB,EAAV4yB,WAEM1Z,GAAUuQ,EAAAA,EAAAA,kBAAiBqI,GAE3BtsB,EAAQ,CACZ+sB,OAAAA,EACAC,UAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAC,aAAAA,EACAC,WAAAA,GAGF,OACEzxB,EAAAA,EAAAA,KAAA,OAAAmC,UACEnC,EAAAA,EAAAA,KAAC0xB,EAAAA,GAA4BjtB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTC,UAAWwO,IAAWiF,EAAQ6Y,qBAAsBtsB,OAI5D,EAYA6sB,GAAmBjxB,aAAe,CAChCoE,UAAW,GACXmtB,WAAY,KAGP,ICvDDE,GAAoB,SAAH9yB,GAahB,IAZLiqB,EAAKjqB,EAALiqB,MACA8I,EAAgB/yB,EAAhB+yB,iBACA3H,EAAeprB,EAAforB,gBACA4H,EAAmBhzB,EAAnBgzB,oBACA7C,EAAuBnwB,EAAvBmwB,wBACAE,EAAYrwB,EAAZqwB,aACAlC,EAAoBnuB,EAApBmuB,qBACAuC,EAAiB1wB,EAAjB0wB,kBACAhB,EAAiB1vB,EAAjB0vB,kBACAjH,EAAczoB,EAAdyoB,eAIAwK,EDyCmC,SAAHxyB,GAW3B,IAVL2qB,EAAe3qB,EAAf2qB,gBACA2H,EAAgBtyB,EAAhBsyB,iBACArD,EAAiBjvB,EAAjBivB,kBACAS,EAAuB1vB,EAAvB0vB,wBACAE,EAAY5vB,EAAZ4vB,aACAlC,EAAoB1tB,EAApB0tB,qBACAuC,EAAiBjwB,EAAjBiwB,kBACAjI,EAAchoB,EAAdgoB,eACA6H,EAA8B7vB,EAA9B6vB,+BACAlC,EAAsB3tB,EAAtB2tB,uBAEA3gB,GAA4BC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAApC8kB,EAAM5kB,EAAA,GAAEulB,EAASvlB,EAAA,GAClB9M,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBAAiBuI,IAE3BQ,GAAYhyB,EAAAA,EAAAA,cAAY,WAC5B0yB,GAAU,EACZ,GAAG,IAEGP,GAAenyB,EAAAA,EAAAA,cAAY,SAACypB,GAChC,IAAMgC,EAAiBb,EAAgBnB,GACjC0F,EAAgBoD,EAAiB9I,GAEvC,OACE7lB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,2BAA4BiF,EAAQ+Y,UAAU3uB,SAAA,EACvEnC,EAAAA,EAAAA,KAAC+uB,EAAM,CACLjG,MAAOA,EACP0F,cAAeA,EACfQ,wBAAyBA,EACzBT,kBAAmBA,EACnBvB,qBAAsBA,EACtBkC,aAAcA,EACd5H,gBAAc7iB,EAAAA,EAAAA,GAAA,CACZ4qB,OAAQ,CACN5B,cAAe,CACb,uBAAwB,CACtB1wB,YAAa,MAIhBuqB,GAEL6H,+BAAgCA,EAChClC,uBAAwBA,KAE1BjtB,EAAAA,EAAAA,KAACsvB,EAAiB,CAChBxG,MAAOA,EACP0F,cAAeA,EACfU,aAAcA,EACdK,kBAAmBA,EACnBjI,eAAgBA,KAElBtnB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,iBAAkBiF,EAAQiZ,eAAe7uB,SACjE2oB,MAIT,GAAG,CACD/S,EACAkS,EACA2H,EACArD,EACAS,EACAE,EACAK,EACAjI,EACA0F,EACAmC,EACAlC,IA8BF,MAAO,CACL+E,cA3BmBzvB,EAAAA,EAAAA,UAAQ,WAC3B,OACEvC,EAAAA,EAAAA,KAACmxB,GAAkB,CACjBC,OAAQA,EACRC,UAAWA,EACX/sB,UAAU,4BACVgtB,kBAAmB,EACnBC,WAAYtH,EAAgBtsB,OAC5B6zB,aAAcA,EACdC,WAAY,KAGlB,GAAG,CAACL,EAAQC,EAAWpH,EAAiBuH,IAgBtCrB,mBAbwB5tB,EAAAA,EAAAA,UAAQ,WAChC,MAAO,CACL+e,QAAS,WAAF,OAAQyQ,GAAU,EAAK,EAC9BxB,aAAc,WAAF,OACVvwB,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,0BAA2B,EAE7CksB,WAAY9wB,EAAKsH,UAAUC,2BAC3BwpB,gBAAiB,kBAErB,GAAG,CAAC/wB,IAMN,CChJ8CuyB,CAAsB,CAChEhI,gBAAAA,EACA4H,oBAAAA,EACAtD,kBAAAA,EACAS,wBAAAA,EACAE,aAAAA,EACAlC,qBAAAA,EACAuC,kBAAAA,EACAjI,eAAAA,EACA6H,+BAZ4BtwB,EAA9BswB,+BAaEyC,iBAAAA,EACA3E,uBAboBpuB,EAAtBouB,yBAEQ+E,EAAYF,EAAZE,aAAc7B,EAAiB2B,EAAjB3B,kBActB,OACEltB,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAACkwB,EAAY,CACXpH,MAAOA,EACP0F,cAAeoD,EAAiB9I,GAChCqH,kBAAmBA,EACnB7I,eAAgBA,IAEhB0K,IAGR,EAiBAL,GAAkBzxB,aAAe,CAC/BquB,kBAAmB,KACnBjH,eAAgB,CAAC,GAGZ,IAAM4K,GAAgB,SAAC7tB,GAG5B,OAFqCA,EAA7B8tB,0BAIJnyB,EAAAA,EAAAA,KAAC2xB,IAAiBltB,EAAAA,EAAAA,GAAA,GACZJ,IAKH,IACT,EAMA6tB,GAAchyB,aAAe,CAC3BiyB,0BAA0B,GCjErB,IAAMC,GAAwB,SAAC/tB,GACpC,IACE4lB,EAQE5lB,EARF4lB,gBACA4H,EAOExtB,EAPFwtB,oBACAQ,EAMEhuB,EANFguB,yBACAvI,EAKEzlB,EALFylB,eACAxC,EAIEjjB,EAJFijB,eACA2H,EAGE5qB,EAHF4qB,kBACA/E,EAEE7lB,EAFF6lB,+BACAoI,EACEjuB,EADFiuB,6BAGI5yB,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBZiG4B,SAAHtb,GAAA,IAAAugB,EAAAvgB,EAAMsa,eAAAA,OAAc,IAAAiG,EAAG,CAAC,EAACA,EAAA,OAAO,iBAAO,CAChFgF,MAAMrtB,EAAAA,EAAAA,QAAO,CACX+d,OAAQ,oBACR4I,OAAQ,EACRlJ,MAAO,OACPiN,SAAU,KACTtI,EAAeiL,MACnB,CAAE,CYxGgCC,CAA+B,CAAElL,eAAAA,KAClEhb,GAA0BC,EAAAA,EAAAA,UAAS,GAAEC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA9Bwc,EAAKtc,EAAA,GAAEuc,EAAQvc,EAAA,GAChBimB,GAAelwB,EAAAA,EAAAA,UAAQ,kBAAM+vB,EAA6BxJ,EAAM,GAAE,CAACwJ,EAA8BxJ,IAEjG8I,GAAmBvyB,EAAAA,EAAAA,cAAY,SAACqzB,GAGpC,OAF8BJ,EAA6BI,GAGlDb,EAAoBa,GAGtB,CACL5D,YAAY,EACZ6D,eAAe,EAEnB,GAAG,CAACL,EAA8BT,IAE5BrD,GAAgBjsB,EAAAA,EAAAA,UAAQ,WAC5B,OAAIkwB,EACKZ,EAAoB/I,GAEtB,CACLgG,YAAY,EACZ6D,eAAe,EAEnB,GAAG,CAACd,EAAqB/I,EAAO2J,IAE1BvD,GAAe3sB,EAAAA,EAAAA,UAAQ,WAC3B,OAAKkwB,GAGEJ,EAAyBvJ,EAClC,GAAG,CAACuJ,EAA0BvJ,EAAO2J,IAErC,OACExvB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,0CAA2CiF,EAAQwa,MAAMpwB,SAAA,EAClFnC,EAAAA,EAAAA,KAAC+uB,GAAMtqB,EAAAA,EAAAA,GAAA,CACLqkB,MAAOA,EACP0F,cAAeA,EACfS,kBAAmBA,EACnBC,aAAcA,GACV7qB,KAENrE,EAAAA,EAAAA,KAACsvB,GAAiB7qB,EAAAA,EAAAA,GAAA,CAChBqkB,MAAOA,EACP0F,cAAeA,EACfU,aAAcA,GACV7qB,KAENrE,EAAAA,EAAAA,KAACgrB,EAAe,CACdtrB,KAAMA,EACNuqB,gBAAiBA,EACjBnB,MAAOA,EACPC,SAAUA,EACVe,eAAgBA,EAChBI,+BAAgCA,EAChC5C,eAAgBA,KAElBtnB,EAAAA,EAAAA,KAAC8vB,GAAiBrrB,EAAAA,EAAAA,GAAA,GACZJ,KAENrE,EAAAA,EAAAA,KAACkwB,GAAYzrB,EAAAA,EAAAA,GAAA,CACXqkB,MAAOA,EACP0F,cAAeA,GACXnqB,KAENrE,EAAAA,EAAAA,KAACkyB,IAAaztB,EAAAA,EAAAA,GAAA,CACZqkB,MAAOA,EACP8I,iBAAkBA,EAClB1C,aAAcA,GACV7qB,MAIZ,EA6BA+tB,GAAsBlyB,aAAe,CACnCgqB,gCAAgC,EAChCqE,kBAAmB,KACnB5I,kBAAmB,GACnBwK,kBAAmB,KACnB7I,eAAgB,CAAC,EACjBwC,gBAAgB,EAChBmF,mBAAmB,GChJd,IAAM2D,GAAwB,WAAH,MAAU,CAC1CjI,SAAU,CACRvnB,QAAS,OACTooB,cAAe,GAGjBqH,eAAgB,CACd/1B,WAAY,QAGdg2B,eAAgB,CACdnH,WAAY,UACZC,aAAc,EACdsF,UAAW,4BAEX,oBAAqB,CACnB9tB,QAAS,QAGX,mCAAoC,CAClCA,QAAS,QAGX,+BAAgC,CAC9B2vB,UAAW,eAIfC,cAAe,CACb5vB,QAAS,QAEZ,EAEY6vB,GAA4B,WAAH,MAAU,CAC9CC,kBAAmB,CACjB,8CAA+C,CAC7CjQ,OAAQ,QAGV,sBAAuB,CACrBE,SAAU,GACV0I,OAAQ,EACR/I,QAAS,IAGX,iCAAkC,CAChC1f,QAAS,QAGX,sBAAuB,CACrB,oBAAqB,CACnBooB,cAAe,IAEjB,sBAAuB,CACrBG,WAAY,eAEd,2BAA4B,CAC1BI,KAAM,mBACNpI,UAAW,mBACXkI,OAAQ,UAEV,4BAA6B,CAC3BE,KAAM,mBACNpI,UAAW,mBACXkI,OAAQ,UAEV,yBAA0B,CACxBzoB,QAAS,OACT+vB,IAAK,OACLpH,KAAM,iBACNpI,UAAW,mBACXkI,OAAQ,oBAER,OAAQ,CACNA,OAAQ,QAKjB,ECrEYuH,GAAuB,SAAC/uB,GACnC,IACE3E,EAIE2E,EAJF3E,KACA2zB,EAGEhvB,EAHFgvB,OACAC,EAEEjvB,EAFFivB,eACAC,EACElvB,EADFkvB,uBAEIxb,GAAUuQ,EAAAA,EAAAA,kBAAiBsK,IAEjC,OAAsB,IAAlBS,EAAO11B,OAAqB,MAG9BqC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQ4S,UAAUxoB,UAC9DnC,EAAAA,EAAAA,KAACwzB,EAAAA,MAAK,CACJC,YAAaH,EACbI,YAAa,SAAAr1B,GAAI,OAAIk1B,EAAuBl1B,EAAKgG,MAAMsvB,QAAQ,EAACxxB,SAG9D/D,IAAAA,IAAMi1B,GAAQ,SAAAO,GAAK,OACjB5zB,EAAAA,EAAAA,KAAC6zB,EAAAA,UAAS,CAERF,QAASC,EAAMr2B,IACfu2B,WAAYp0B,EAAKsH,UAAU4sB,EAAMG,QAF5BH,EAAMr2B,IAGX,OAMd,EC3Bay2B,GAAkB,SAAC3vB,GAC9B,IACEgvB,EAQEhvB,EARFgvB,OACAY,EAOE5vB,EAPF4vB,aACAC,EAME7vB,EANF6vB,WACAlO,EAKE3hB,EALF2hB,OACA8B,EAIEzjB,EAJFyjB,eACAqM,EAGE9vB,EAHF8vB,OACA5F,EAEElqB,EAFFkqB,kBACA6F,EACE/vB,EADF+vB,oBAGI10B,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAClBvV,GAAUuQ,EAAAA,EAAAA,kBAAiBsK,IAC3B7I,GAAkBzB,EAAAA,EAAAA,kBAAiB2K,IAEzC3mB,GAA4CC,EAAAA,EAAAA,UAAS8mB,EAAO,GAAG91B,KAAIiP,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5DgnB,EAAc9mB,EAAA,GAAE6nB,EAAiB7nB,EAAA,GAElC8nB,GAA0Bj1B,EAAAA,EAAAA,cAAY,SAACk1B,GAC3CF,EAAkBE,GAClBH,EAAoBG,EACtB,GAAG,CAACH,IAQJ,OANA50B,EAAAA,EAAAA,YAAU,WACJy0B,GACFI,EAAkBJ,EAEtB,GAAG,CAACA,KAGFhxB,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,mBAAkBnC,SAAA,EAC/BnC,EAAAA,EAAAA,KAACozB,GAAoB,CACnB1zB,KAAMA,EACN2zB,OAAQA,EACRC,eAAgBA,EAChBC,uBAAwBe,KAE1Bt0B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ+a,eAAe3wB,SAEnC/D,IAAAA,IAAMi1B,GAAQ,SAAAx0B,GAAc,IAAXtB,EAAGsB,EAAHtB,IACTi3B,EAAYN,EAAW32B,GAE7B,OACEyC,EAAAA,EAAAA,KAAA,OACEsE,UAAWwO,IACT,kBACAiX,EAAgBmJ,kBAChB31B,IAAQ+1B,GAAkBvb,EAAQib,eAClC7wB,UAEFnC,EAAAA,EAAAA,KAACw0B,EAAS,CAERxO,OAAQA,EACR8B,eAAgBA,EAChB2M,gBAAiBN,EACjB5F,kBAAmBA,EACnBrE,gCAA8B,GALzB3sB,IASb,QAKV,EAqBAy2B,GAAgB9zB,aAAe,CAC7B+zB,aAAc,KACdG,oBAAqBh2B,IAAAA,KACrB0pB,eAAgB,CAAC,EACjBqM,OAAQ,I,sDC9FGO,GAAW,SAAH71B,GAGd,IAFL81B,EAAY91B,EAAZ81B,aACArN,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCRe,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,SAACpD,EAAC5kB,GAAwB,IAAD8rB,EAAA9rB,EAAnB8iB,QAAAA,OAAO,IAAAgJ,EAAG,CAAC,EAACA,EACzE,MAAO,CACLwJ,SAAUx2B,IAAAA,OAAS,CACjBglB,MAAOhB,EAAQyS,MACfhJ,OAAQ,EACRiJ,QAAS,MACThS,QAAS,sBACT3f,SAAU,WACVggB,SAAU,GACVyI,aAAc,EACdpI,gBAAiBpB,EAAQ2S,OACxBzN,EAAesN,UAEtB,CAAE,CDLiCI,CAAkB,CAAE1N,eAAAA,KAErD,OACEtnB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,YAAaiF,EAAQ6c,UAAUzyB,SACvDwyB,GAGP,EAOAD,GAASx0B,aAAe,CACtBonB,eAAgB,CAAC,GExBZ,IAAM2N,GAAiB,SAAHp2B,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACL4N,cAAe92B,IAAAA,OAAS,CACtB+E,SAAU,WACV4oB,KAAM,EACNC,IAAK,EACLrJ,MAAO,OACPQ,SAAU,GACVC,MAAO,QACPF,aAAc,oBACduI,YAAa,IACZnE,EAAe4N,eAClBC,aAAc/2B,IAAAA,OAAS,CACrBuwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,kBACX,aAAc,CACZ5P,aAAc,IAEhB,UAAW,CACToP,SAAU,KAEXmE,EAAe6N,cAEtB,CAAE,ECzBWC,GAAgB,SAAHv2B,GAGnB,IAFLsB,EAAItB,EAAJsB,KACAmnB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBAAiB2M,GAAe,CAAE3N,eAAAA,KAElD,OACEtnB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,oBAAqBiF,EAAQmd,eAAe/yB,SACpEhC,GAGP,EAOAi1B,GAAcl1B,aAAe,CAC3BonB,eAAgB,CAAC,GAGZ,IAAM+N,GAAe,SAAH/1B,GAKlB,IAJLg2B,EAAWh2B,EAAXg2B,YACAC,EAAQj2B,EAARi2B,SACAC,EAAQl2B,EAARk2B,SACAlO,EAAchoB,EAAdgoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBAAiB2M,GAAe,CAAE3N,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,gBAAiBiF,EAAQod,cAAchzB,SAAA,EAChEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,UAASnC,SAAGmzB,KAC3Bt1B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAGozB,KACxBv1B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAGqzB,MAG9B,EASAH,GAAan1B,aAAe,CAC1BonB,eAAgB,CAAC,GCnDZ,ICIMmO,GAAsB,SAAH52B,GAMzB,IALLkoB,EAAYloB,EAAZkoB,aACArnB,EAAIb,EAAJa,KACAg2B,EAAQ72B,EAAR62B,SACAC,EAAS92B,EAAT82B,UACArO,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDX0B,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAClE,MAAO,CACLsO,oBAAqBx3B,IAAAA,OAAS,CAC5B4kB,UAAW,EACXF,QAAS,QACTgB,SAAU,SACV+R,aAAc,WACdC,WAAY,UACXxO,EAAesO,qBAEtB,CAAE,CCCiCG,CAA6B,CAAEzO,eAAAA,KAEhE,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,yBAA0BiF,EAAQ6d,qBAAqBzzB,SAAA,CAE9EwzB,IACA31B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,WAAUnC,SACvBzC,EAAKsH,UAAUC,SAGjByuB,IACD11B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,gBAAenC,SAC5B4kB,MAKX,EAYA0O,GAAoBv1B,aAAe,CACjCw1B,UAAU,EACVC,WAAW,EACXrO,eAAgB,CAAC,GC3CZ,ICIM0O,GAAe,SAAHn3B,GAIlB,IAHLo3B,EAAUp3B,EAAVo3B,WACAC,EAAWr3B,EAAXq3B,YACA5O,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDTmB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,SAACpD,EAAC5kB,GAAwB,IAAD8rB,EAAA9rB,EAAnB8iB,QAAAA,OAAO,IAAAgJ,EAAG,CAAC,EAACA,EAC7E,MAAO,CACL+K,aAAc/3B,IAAAA,OAAS,CACrBglB,MAAOhB,EAAQ2S,MACf9R,OAAQ,OACR6R,QAAS,MACT3xB,SAAU,WACVggB,SAAU,OACVM,WAAY,OACZmI,aAAc,GACdpI,gBAAiB,WAChB8D,EAAe6O,cAClBC,cAAeh4B,IAAAA,OAAS,CACxB,EAAGkpB,EAAe8O,eAEtB,CAAE,CCNiCC,CAAsB,CAAE/O,eAAAA,KAEzD,OACErkB,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAA,UAAQsE,UAAWwO,IAAW,gBAAiBiF,EAAQoe,cAAch0B,SAClE8zB,IAGDC,IACAl2B,EAAAA,EAAAA,KAAA,UAAQsE,UAAWwO,IAAW,iBAAkBiF,EAAQqe,eAAej0B,SACpE+zB,MAKX,EAQAF,GAAa91B,aAAe,CAC1Bg2B,YAAa,GACb5O,eAAgB,CAAC,GClCZ,ICIMgP,GAAmB,SAAHz3B,GAOtB,IAAD03B,EAAA13B,EANJ4T,KACE+jB,EAAID,EAAJC,KACAC,EAAOF,EAAPE,QACAC,EAAaH,EAAbG,cAEFpP,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDZuB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC/D,MAAO,CACLxoB,UAAWV,IAAAA,OAAS,CAClBgF,QAAS,OACT0Q,WAAY,SACZqf,IAAK,MACLrQ,QAAS,OACRwE,EAAeqP,2BAClBF,QAASr4B,IAAAA,OAAS,CAChBukB,MAAO,OACPmJ,OAAQ,OACRF,aAAc,OACbtE,EAAesP,yBAClBC,UAAWz4B,IAAAA,OAAS,CAClB+kB,SAAU,OACVmJ,WAAY,OACZ7I,WAAY,OACZL,MAAO,WACNkE,EAAewP,2BAClBC,eAAgB34B,IAAAA,OAAS,CACvB+kB,SAAU,OACVC,MAAO,WACNkE,EAAe0P,gCAEtB,CAAE,CCZiCC,CAA0B,CAAE3P,eAAAA,KAE7D,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,oBAAqBiF,EAAQjZ,WAAWqD,SAAA,EACjEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQ0e,SAAUS,IAAKT,EAASU,IAAKX,KACnFvzB,EAAAA,EAAAA,MAAA,OAAAd,SAAA,EACEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,eAAgBiF,EAAQ8e,WAAW10B,SAAEq0B,KAChEx2B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,oBAAqBiF,EAAQgf,gBAAgB50B,SAAEu0B,SAIlF,EAWAJ,GAAiBp2B,aAAe,CAC9BonB,eAAgB,CAAC,GCnCZ,I,8GCOM8P,GAAmB,SAAHv4B,GAMtB,IAAD03B,EAAA13B,EALJ4T,KACE4kB,EAAKd,EAALc,MACAC,EAAOf,EAAPe,QAEFhQ,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBDduB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC/D,MAAO,CACLxoB,UAAWV,IAAAA,OAAS,CAClBgF,QAAS,OACT+vB,IAAK,MACLrf,WAAY,SACZkP,UAAW,OACVsE,EAAeiQ,mCAClBC,QAASp5B,IAAAA,OAAS,CAChBgF,QAAS,OACT0Q,WAAY,SACZqf,IAAK,OACJ7L,EAAemQ,iCAClBC,aAAct5B,IAAAA,OAAS,CACrB+kB,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,WACNkE,EAAeqQ,sCAClBC,WAAYx5B,IAAAA,OAAS,CACnB+kB,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,WACNkE,EAAeuQ,oCAClB1qB,KAAM/O,IAAAA,OAAS,CACbgF,QAAS,eACT0oB,OAAQ,OACRnJ,MAAO,OACP4J,cAAe,YACdjF,EAAewQ,8BAEtB,CAAE,CChBiCC,CAA0B,CAAEzQ,eAAAA,KAE7D,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,8BAA+BiF,EAAQjZ,WAAWqD,SAAA,CAEzEm1B,IACAr0B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,kBAAmBiF,EAAQyf,SAASr1B,SAAA,EAC7DnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,eAAgBiF,EAAQ5K,MAAOgqB,IAAI,GAAGD,IAAKc,MACtEh4B,EAAAA,EAAAA,KAAA,QAAMsE,UAAWwO,IAAW,gBAAiBiF,EAAQ2f,cAAcv1B,SAAEm1B,OAGvED,IACAp0B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,gBAAiBiF,EAAQyf,SAASr1B,SAAA,EAExDm1B,IACDt3B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,aAAciF,EAAQ5K,MAAOgqB,IAAI,GAAGD,IAAKe,MAEtEj4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,cAAeiF,EAAQ6f,YAAYz1B,SAAEk1B,SAK1E,EAUAD,GAAiBl3B,aAAe,CAC9BuS,KAAM,CAAC,EACP6U,eAAgB,CAAC,G,0GC1CN4Q,GAAY,SAAHr5B,GAEf,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCVY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACL6Q,MAAO/5B,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAe8Q,cAClBC,aAAcj6B,IAAAA,OAAS,CACrB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,GACPhR,EAAe8Q,cAClBG,SAAUn6B,IAAAA,OAAS,CACjB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNtI,WAAY,IACZN,SAAU,EACVC,MAAO,UACPkV,OAAQ,GACPhR,EAAe8Q,cAClBI,UAAWp6B,IAAAA,OAAS,CAClB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNH,aAAc,EACdnI,WAAY,IACZN,SAAU,EACVF,OAAQ,uBACRH,QAAS,oBACTM,MAAO,UACPkV,OAAQ,GACPhR,EAAe8Q,cAEtB,CAAE,CD/BiCK,CAAe,CAAEnR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,mBAAoBiF,EAAQ2gB,iBAAiBv2B,SAAA,EACtEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKiB,MACtFn4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQsgB,cAAelB,IAAI,GAAGD,IAAKmB,MAC5Fr4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQwgB,UAAWpB,IAAI,GAAEh1B,SACpE8E,qBAEHjH,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQygB,WAAYrB,IAAI,GAAEh1B,SACrE8E,gBAIT,EAMAixB,GAAUh4B,aAAe,CACvBonB,eAAgB,CAAC,G,2DExBNqR,GAAa,SAAH95B,GAEhB,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCVY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACL6Q,MAAO/5B,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAe8Q,cAClBC,aAAcj6B,IAAAA,OAAS,CACrB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,GACPhR,EAAe8Q,cAClBG,SAAUn6B,IAAAA,OAAS,CACjB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNtI,WAAY,IACZN,SAAU,EACVC,MAAO,UACPkV,OAAQ,GACPhR,EAAe8Q,cAClBI,UAAWp6B,IAAAA,OAAS,CAClB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNH,aAAc,EACdnI,WAAY,IACZN,SAAU,EACVF,OAAQ,uBACRH,QAAS,oBACTM,MAAO,UACPkV,OAAQ,GACPhR,EAAe8Q,cAEtB,CAAE,CD/BiCK,CAAe,CAAEnR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,mBAAoBiF,EAAQ2gB,iBAAiBv2B,SAAA,EACtEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKiB,MACtFn4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQsgB,cAAelB,IAAI,GAAGD,IAAKmB,MAC5Fr4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQwgB,UAAWpB,IAAI,GAAEh1B,SACpE8E,qBAEHjH,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,kBAAmBiF,EAAQygB,WAAYrB,IAAI,GAAEh1B,SACrE8E,gBAIT,EAMA0xB,GAAWz4B,aAAe,CACxBonB,eAAgB,CAAC,G,iEEzBNsR,GAAkB,SAAH/5B,GAErB,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCTY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACLpL,MAAO9d,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAeuR,cAClBC,YAAa16B,IAAAA,OAAS,CACpBukB,MAAO,IACPmJ,OAAQ,GACR3oB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNvI,gBAAiB,UACjBP,OAAQ,qBACPqE,EAAeuR,cAEtB,CAAE,CDdiCE,CAAe,CAAEzR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,uBAAwBiF,EAAQihB,iBAAiB72B,SAAA,EAC1EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAK+B,MAC1Fj5B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ+gB,iBAGnE,EAMAF,GAAgB14B,aAAe,CAC7BonB,eAAgB,CAAC,G,gEElBN4R,GAAiB,SAAHr6B,GAEpB,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCTY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACLpL,MAAO9d,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAeuR,cAClBC,YAAa16B,IAAAA,OAAS,CACpBukB,MAAO,IACPmJ,OAAQ,GACR3oB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNvI,gBAAiB,UACjBP,OAAQ,qBACPqE,EAAeuR,cAEtB,CAAE,CDdiCE,CAAe,CAAEzR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,uBAAwBiF,EAAQihB,iBAAiB72B,SAAA,EAC1EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKiC,MAC1Fn5B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ+gB,iBAGnE,EAMAI,GAAeh5B,aAAe,CAC5BonB,eAAgB,CAAC,G,iEElBN8R,GAAkB,SAAHv6B,GAErB,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCTY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACLpL,MAAO9d,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAeuR,cAClBC,YAAa16B,IAAAA,OAAS,CACpBukB,MAAO,IACPmJ,OAAQ,GACR3oB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNvI,gBAAiB,UACjBP,OAAQ,qBACPqE,EAAeuR,cAEtB,CAAE,CDdiCE,CAAe,CAAEzR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,uBAAwBiF,EAAQihB,iBAAiB72B,SAAA,EAC1EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKmC,MAC1Fr5B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ+gB,iBAGnE,EAMAM,GAAgBl5B,aAAe,CAC7BonB,eAAgB,CAAC,G,gEElBNgS,GAAiB,SAAHz6B,GAEpB,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCTY,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACpD,MAAO,CACLpL,MAAO9d,IAAAA,OAAS,CACduwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,mBACV2D,EAAeuR,cAClBC,YAAa16B,IAAAA,OAAS,CACpBukB,MAAO,IACPmJ,OAAQ,GACR3oB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNvI,gBAAiB,UACjBP,OAAQ,qBACPqE,EAAeuR,cAEtB,CAAE,CDdiCE,CAAe,CAAEzR,eAAAA,KAElD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,uBAAwBiF,EAAQihB,iBAAiB72B,SAAA,EAC1EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKqC,MAC1Fv5B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,yBAA0BiF,EAAQ+gB,iBAGnE,EAMAQ,GAAep5B,aAAe,CAC5BonB,eAAgB,CAAC,G,wIEhBNkS,GAAW,SAAH36B,GAEd,IADLyoB,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,EAAAA,kBCXe,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACvD,MAAO,CACLmS,gBAAiBr7B,IAAAA,OAAS,CACxBuwB,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,kBACX,aAAc,CACZ5P,aAAc,IAEhB,UAAW,CACToP,SAAU,KAEXmE,EAAemS,iBAClBtsB,KAAM/O,IAAAA,OAAS,CACbgF,QAAS,eACT0oB,OAAQ,OACRnJ,MAAO,OACP4J,cAAe,YACdjF,EAAewQ,8BAClB4B,QAASt7B,IAAAA,OAAS,CAChB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,GACPhR,EAAewQ,8BAClB6B,UAAWv7B,IAAAA,OAAS,CAClB+E,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,GACPhR,EAAewQ,8BAEtB,CAAE,CD3BiC8B,CAAkB,CAAEtS,eAAAA,KAErD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,uBAAwBiF,EAAQ8hB,oBAAoB13B,SAAA,EAC7EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8BiF,EAAQ4T,YAAawL,IAAI,GAAGD,IAAKqB,MAC1Fv4B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,qBAAsBiF,EAAQ2hB,SAAUvC,IAAI,GAAGD,IAAKwC,MAC/E15B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,uBAAwBiF,EAAQ4hB,WAAYxC,IAAI,GAAGD,IAAKyC,OAGzF,EAMAH,GAASt5B,aAAe,CACtBonB,eAAgB,CAAC,G,iBEhBbwS,GAAgBz5B,EAAAA,YAAiB,SAAAxB,EAIpCoB,GAAG,IAHJqE,EAASzF,EAATyF,UACAy1B,EAAal7B,EAAbk7B,cACA55B,EAAItB,EAAJsB,KAAI,OAEJ45B,GACE/5B,EAAAA,EAAAA,KAACg6B,GAAAA,sBAAqB,CACpB/5B,IAAKA,EACLqE,UAAWA,EACXnE,KAAMA,KAENH,EAAAA,EAAAA,KAAA,OAAKsE,UAAWA,EAAUnC,SACvBhC,GAEJ,IAGL25B,GAAc91B,UAAY,CACxBM,UAAWL,KAAAA,OAAiBC,WAC5B61B,cAAe91B,KAAAA,KAAeC,WAC9B/D,KAAM8D,KAAAA,OAAiBC,YAGlB,IAAM+1B,GAAc55B,EAAAA,YAAiB,SAAAf,EAMzCW,GAAS,IALVqnB,EAAchoB,EAAdgoB,eACA4S,EAAuB56B,EAAvB46B,wBACApT,EAAWxnB,EAAXwnB,YACAqT,EAAY76B,EAAZ66B,aACAxF,EAAYr1B,EAAZq1B,aAEM5c,GAAUuQ,EAAAA,EAAAA,kBCzCkB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC1D,MAAO,CACLR,YAAa1oB,IAAAA,OAAS,CACtB,EAAGkpB,EAAeR,aAClBsT,kBAAmBh8B,IAAAA,OAAS,CAC5B,EAAGkpB,EAAe8S,mBAEtB,CAAE,CDkCiCC,CAAqB,CAAE/S,eAAAA,KAExD,OACErkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,qBAAsBiF,EAAQqiB,mBAAmBj4B,SAAA,CAExEg4B,IACAn6B,EAAAA,EAAAA,KAAC00B,GAAQ,CACPC,aAAcA,EACdrN,eAAgBA,KAGpBtnB,EAAAA,EAAAA,KAAC85B,GAAa,CACZ75B,IAAKA,EACL85B,cAAeG,EACf51B,UAAWwO,IAAW,cAAeiF,EAAQ+O,aAC7C3mB,KAAM2mB,MAId,IAUAmT,GAAY/5B,aAAe,CACzBonB,eAAgB,CAAC,EACjB6S,cAAc,EACdxF,aAAc,IAIT,IAAM2F,GAAWj6B,EAAAA,YAAiB,SAAA2M,EAKtC/M,GAAS,IAJVqnB,EAActa,EAAdsa,eACAE,EAAgBxa,EAAhBwa,iBACA+S,EAAQvtB,EAARutB,SACAnU,EAAUpZ,EAAVoZ,WAEMrO,GAAUuQ,EAAAA,EAAAA,kBEnFe,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WACvD,MAAO,CACLiT,SAAUn8B,IAAAA,OAAS,CACnB,EAAGkpB,EAAeiT,UAEtB,CAAE,CF8EiCC,CAAkB,CAAElT,eAAAA,KAErD,OACEtnB,EAAAA,EAAAA,KAAC85B,GAAa,CACZ75B,IAAKA,EACL85B,cAAevS,EACfljB,UAAWwO,IAAW,YAAaiF,EAAQwiB,UAC3Cp6B,KAAMimB,GAAcmU,GAG1B,IASAD,GAASp6B,aAAe,CACtBkmB,WAAY,KACZkB,eAAgB,CAAC,GAGZ,IAAMmT,GAAep6B,EAAAA,YAAiB,SAAA2R,EAI1C/R,GAAS,IAHVqnB,EAActV,EAAdsV,eACAoT,EAA4B1oB,EAA5B0oB,6BACA7T,EAAY7U,EAAZ6U,aAEM9O,GAAUuQ,EAAAA,EAAAA,kBGhHmB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC3D,MAAO,CACLT,aAAczoB,IAAAA,OAAS,CACvB,EAAGkpB,EAAeT,cAEtB,CAAE,CH2GiC8T,CAAsB,CAAErT,eAAAA,KAEzD,OACEtnB,EAAAA,EAAAA,KAAC85B,GAAa,CACZ75B,IAAKA,EACL85B,cAAeW,EACfp2B,UAAWwO,IAAW,gBAAiBiF,EAAQ8O,cAC/C1mB,KAAM0mB,GAGZ,IAQA4T,GAAav6B,aAAe,CAC1BonB,eAAgB,CAAC,GAGZ,IAAMsT,GAAgBv6B,EAAAA,YAAiB,SAAAgT,EAI3CpT,GAAS,IAHVqnB,EAAcjU,EAAdiU,eACAuT,EAA0BxnB,EAA1BwnB,2BACAjU,EAAavT,EAAbuT,cAEM7O,GAAUuQ,EAAAA,EAAAA,kBI3IoB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC5D,MAAO,CACLV,cAAexoB,IAAAA,OAAS,CACtBqlB,WAAY,IACZ+H,cAAe,OACdlE,EAAeV,eAEtB,CAAE,CJoIiCkU,CAAuB,CAAExT,eAAAA,KAE1D,OACEtnB,EAAAA,EAAAA,KAAC85B,GAAa,CACZ75B,IAAKA,EACL85B,cAAec,EACfv2B,UAAWwO,IAAW,iBAAkBiF,EAAQ6O,eAChDzmB,KAAMymB,GAGZ,IAQAgU,GAAc16B,aAAe,CAC3BonB,eAAgB,CAAC,G,gBKjINyT,GAA2B,CACtC/2B,UAAW,CAETzG,IAAK0G,KAAAA,OACLK,UAAWL,KAAAA,OACX+2B,SAAU/2B,KAAAA,QAAkBA,KAAAA,MAAgB,CAC1C0oB,MAAO1oB,KAAAA,OACPg3B,KAAMh3B,KAAAA,OACNgyB,WAAYhyB,KAAAA,OACZi3B,IAAKj3B,KAAAA,UAEPk3B,MAAOC,GAAAA,EACPC,KAAMD,GAAAA,EACN3T,aAAcxjB,KAAAA,MAAgB,CAC5B2iB,cAAe3iB,KAAAA,OACf4iB,aAAc5iB,KAAAA,OACd6iB,YAAa7iB,KAAAA,OACb8iB,aAAc9iB,KAAAA,OACdkiB,IAAKliB,KAAAA,OACL+iB,aAAc/iB,KAAAA,OACdmiB,WAAYniB,KAAAA,SACXC,WACH4jB,eAAgB7jB,KAAAA,MAAgB,CAAC,GACjCqjB,eAAgBrjB,KAAAA,MAAgB,CAAC,GAGjCq3B,YAAar3B,KAAAA,OACbiyB,YAAajyB,KAAAA,OACbojB,mBAAoBpjB,KAAAA,OACpBsjB,WAAYtjB,KAAAA,OACZwhB,qBAAsBxhB,KAAAA,OAAiBC,WACvCyhB,kBAAmB1hB,KAAAA,OAGnBs3B,WAAYt3B,KAAAA,KACZu3B,yBAA0Bv3B,KAAAA,KAC1Bk2B,aAAcl2B,KAAAA,KACdw3B,kCAAmCx3B,KAAAA,KACnCy3B,6BAA8Bz3B,KAAAA,KAC9B03B,kBAAmB13B,KAAAA,KACnB23B,iBAAkB33B,KAAAA,KAClB43B,sBAAuB53B,KAAAA,KACvB63B,iBAAkB73B,KAAAA,KAClB83B,gBAAiB93B,KAAAA,KACjB+3B,aAAc/3B,KAAAA,KACdg4B,aAAch4B,KAAAA,KACdi4B,UAAWj4B,KAAAA,KACXk4B,kBAAmBl4B,KAAAA,KACnBm4B,SAAUn4B,KAAAA,KACVo4B,iBAAkBp4B,KAAAA,KAClBi2B,wBAAyBj2B,KAAAA,KACzBy2B,6BAA8Bz2B,KAAAA,KAC9Bq4B,uBAAwBr4B,KAAAA,KACxBs4B,sBAAuBt4B,KAAAA,KACvBu4B,cAAev4B,KAAAA,KACfw4B,eAAgBx4B,KAAAA,KAChBy4B,wBAAyBz4B,KAAAA,KACzB04B,kBAAmB14B,KAAAA,KACnB42B,2BAA4B52B,KAAAA,KAC5B24B,oBAAqB34B,KAAAA,KACrB44B,mBAAoB54B,KAAAA,KACpB64B,oBAAqB74B,KAAAA,KACrB84B,mBAAoB94B,KAAAA,KACpB+4B,QAAS/4B,KAAAA,KACTujB,iBAAkBvjB,KAAAA,KAClBg5B,qBAAsBh5B,KAAAA,KACtBi5B,6BAA8Bj5B,KAAAA,KAC9Bk5B,aAAcl5B,KAAAA,MAEhB/D,aAAc,CACZ3C,IAAK,GACL+G,UAAW,GACX62B,MAAO,KACPH,SAAU,GACVK,KAAM,KACNvT,eAAgB,CAAC,EAEjBoO,YAAa,GACb3O,WAAY,GACZ+T,YAAa,EACbjU,mBAAoB,IACpB1B,kBAAmB,GAEnB4V,YAAY,EACZC,0BAA0B,EAC1BrB,cAAc,EACdsB,mCAAmC,EACnCC,8BAA8B,EAC9BC,mBAAmB,EACnBC,kBAAkB,EAClBC,uBAAuB,EACvBC,kBAAkB,EAClBC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,EACdC,WAAW,EACXC,mBAAmB,EACnBC,UAAU,EACVC,kBAAkB,EAClBnC,yBAAyB,EACzBQ,8BAA8B,EAC9B4B,wBAAwB,EACxBC,uBAAuB,EACvBa,WAAW,EACXV,yBAAyB,EACzBC,mBAAmB,EACnB9B,4BAA4B,EAC5B+B,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBC,SAAS,EACTxV,kBAAkB,EAClB2V,cAAc,IAIZE,GAA8B,SAAA7U,GAClC,SAAA6U,EAAYh5B,EAAOi5B,GAAU,IAAD7/B,EAOxB,OAPwBP,EAAAA,EAAAA,GAAA,KAAAmgC,IAC1B5/B,GAAAN,EAAAA,EAAAA,GAAA,KAAAkgC,EAAA,CAAMh5B,EAAOi5B,KAERC,kBAAoB,CACvBl9B,EAAAA,YACAA,EAAAA,YACAA,EAAAA,aACA5C,CACJ,CAAC,OAAAJ,EAAAA,EAAAA,GAAAggC,EAAA7U,IAAAlrB,EAAAA,EAAAA,GAAA+/B,EAAA,EAAA9/B,IAAA,qBAAAC,MAED,WACEM,KAAKy/B,kBAAkBC,SAAQ,SAACv9B,GAC1BA,EAAI6C,SACN7C,EAAI6C,QAAQ26B,aAEhB,GACF,GAAC,CAAAlgC,IAAA,SAAAC,MAED,WACE,IAAAqrB,EAwBI/qB,KAAKuG,MAvBPm3B,EAAwB3S,EAAxB2S,yBACAE,EAA4B7S,EAA5B6S,6BACAb,EAA0BhS,EAA1BgS,2BACAH,EAA4B7R,EAA5B6R,6BACAlT,EAAgBqB,EAAhBrB,iBACA0U,EAASrT,EAATqT,UACAvW,EAAiBkD,EAAjBlD,kBACAuQ,EAAWrN,EAAXqN,YACA+F,EAAYpT,EAAZoT,aACAjB,EAAQnS,EAARmS,SACAvT,EAAYoB,EAAZpB,aACAK,EAAce,EAAdf,eACAuT,EAAIxS,EAAJwS,KACAe,EAAQvT,EAARuT,SACAlC,EAAuBrR,EAAvBqR,wBACAniB,EAAO8Q,EAAP9Q,QACA4jB,EAAiB9S,EAAjB8S,kBACAC,EAAgB/S,EAAhB+S,iBACAI,EAAYnT,EAAZmT,aACAG,EAAiBtT,EAAjBsT,kBACAI,EAAqB1T,EAArB0T,sBACA9W,EAAoBoD,EAApBpD,qBACA6B,EAAcuB,EAAdvB,eAEIoW,EAAyBxB,GAAap+B,KAAKuG,MAAM82B,OAASr9B,KAAKuG,MAAM82B,MAAMwC,SAEjF,OACE16B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,4BAA2BnC,SAAA,EACxCc,EAAAA,EAAAA,MAAA,KACEqB,UAAWwO,IAAW,gCAAiCiF,EAAQ6lB,gBAC/D7wB,OAAO,SACP8wB,IAAI,sBACJC,KAAMrW,EAAatB,IAAIhkB,SAAA,CAGrBrE,KAAKuG,MAAMo4B,iBACXz8B,EAAAA,EAAAA,KAAC24B,GAAU,CACTrR,eAAgBA,IAIlBxpB,KAAKuG,MAAMm4B,gBACXx8B,EAAAA,EAAAA,KAACk4B,GAAS,CACR5Q,eAAgBA,IAIlBxpB,KAAKuG,MAAMu4B,sBACX58B,EAAAA,EAAAA,KAAC44B,GAAe,CACdtR,eAAgBA,IAIlBxpB,KAAKuG,MAAMw4B,qBACX78B,EAAAA,EAAAA,KAACk5B,GAAc,CACb5R,eAAgBA,IAIlBxpB,KAAKuG,MAAMy4B,sBACX98B,EAAAA,EAAAA,KAACo5B,GAAe,CACd9R,eAAgBA,IAIlBxpB,KAAKuG,MAAM04B,qBACX/8B,EAAAA,EAAAA,KAACs5B,GAAc,CACbhS,eAAgBA,IAIlBxpB,KAAKuG,MAAM84B,eACXn9B,EAAAA,EAAAA,KAACw5B,GAAQ,CACPlS,eAAgBA,IAIlBxpB,KAAKuG,MAAM44B,uBACXj9B,EAAAA,EAAAA,KAACs2B,GAAgB,CACf7jB,KACErU,IAAAA,SAAW0pB,EAAeiW,QAAS,CACjCrH,cAAe54B,KAAKuG,MAAM3E,KAAKsH,UAAUC,eAG7CqgB,eAAgBA,KAGpBrkB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,kBAAmBiF,EAAQimB,eAAgBhC,EAAejkB,EAAQkmB,SAAW,IAAI97B,SAAA,CAEtGrE,KAAKuG,MAAM81B,eACXn6B,EAAAA,EAAAA,KAAC00B,GAAQ,CACPC,aAAc72B,KAAKuG,MAAM3E,KAAKsH,UAAUC,MACxCqgB,eAAgBA,IAIpB6U,IACAn8B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,WAAYiF,EAAQmmB,iBAG/ChC,GAAap+B,KAAKuG,MAAM82B,QACxBn7B,EAAAA,EAAAA,KAACm+B,GAAAA,EAAgB,CACfC,kBAAmBtgC,KAAKuG,MAAMgjB,mBAC9B6P,IAAKwG,EACLW,cAAevgC,KAAKuG,MAAM82B,MAAMmD,MAChCC,eAAgBzgC,KAAKuG,MAAM82B,MAAMqD,OACjCC,QAAS3gC,KAAKuG,MAAM82B,MAAMuD,aAAaD,QACvCE,QAAS7gC,KAAKuG,MAAM82B,MAAMuD,aAAaC,QACvCC,YAAa9gC,KAAKuG,MAAM82B,MAAMuD,aAAaE,YAC3CC,aAAc/gC,KAAKuG,MAAM82B,MAAMuD,aAAaG,aAC5CvD,YAAax9B,KAAKuG,MAAMi3B,iBAK5BK,IACA37B,EAAAA,EAAAA,KAACo1B,GAAa,CAACj1B,KAAMrC,KAAKuG,MAAM3E,KAAKsH,UAAUC,YAAmBqgB,eAAgBA,IAGlFsU,IACA57B,EAAAA,EAAAA,KAACq1B,GAAY,CACXC,YAAax3B,KAAKuG,MAAM3E,KAAKsH,UAAUC,oEACvCsuB,SAAUz3B,KAAKuG,MAAM3E,KAAKsH,UAAUC,SACpCuuB,SAAU13B,KAAKuG,MAAM3E,KAAKsH,UAAUC,uBACpCqgB,eAAgBA,IAGnB8U,GAAYf,IACXr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBAAgBnC,UAC7BnC,EAAAA,EAAAA,KAACm+B,GAAAA,EAAgB,CACfC,kBAAmBtgC,KAAKuG,MAAMkjB,WAC9B2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,MAMjBW,GACAjB,EAASr4B,KAAI,SAACo8B,EAASjW,GAAK,OAE1B7lB,EAAAA,EAAAA,MAAA,OAAKqB,UAAS,UAAAjD,OAAYynB,GAAQ3mB,SAAA,EAChCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBAAenC,SAAG48B,EAAQpS,SACzC3sB,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBAAgBnC,SAAG48B,EAAQ9I,eAAiB,GAAA50B,OAFlB09B,EAAQpS,OAAKtrB,OAAGynB,GAGrD,KAIV7lB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,qBAAsBiF,EAAQinB,eAAe78B,SAAA,CAElErE,KAAKuG,MAAMw3B,uBAAyB/9B,KAAKuG,MAAMy3B,mBAC/C97B,EAAAA,EAAAA,KAACy1B,GAAmB,CAClBE,UAAW+F,EACXh8B,KAAM5B,KAAKuG,MAAM3E,KACjBqnB,aAAcU,EAAaV,aAC3BO,eAAgBA,IAIpBxpB,KAAKuG,MAAMi4B,yBACXt8B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,uBAAwBiF,EAAQknB,sBAGzDnhC,KAAKuG,MAAMs4B,oBAET38B,EAAAA,EAAAA,KAAC46B,GAAa,CACZ36B,IAAKnC,KAAKy/B,kBAAkB,GAC5B1C,2BAA4BA,EAC5BvT,eAAgBA,EAChBV,cAAea,EAAab,gBAKhC9oB,KAAKuG,MAAMg4B,mBAETr8B,EAAAA,EAAAA,KAACy6B,GAAY,CACXx6B,IAAKnC,KAAKy/B,kBAAkB,GAC5B7C,6BAA8BA,EAC9BpT,eAAgBA,EAChBT,aAAcY,EAAaZ,eAKjC/oB,KAAKuG,MAAMq4B,0BACX18B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,wBAAyBiF,EAAQmnB,uBAG1DphC,KAAKuG,MAAM24B,UAETh9B,EAAAA,EAAAA,KAACs6B,GAAQ,CACPr6B,IAAKnC,KAAKy/B,kBAAkB,GAC5B/V,iBAAkBA,EAClBF,eAAgBA,EAChBiT,SAAU9S,EAAatB,IACvBC,WAAYqB,EAAarB,aAK7BtoB,KAAKuG,MAAM03B,kBAET/7B,EAAAA,EAAAA,KAACi6B,GAAW,CACVh6B,IAAKnC,KAAKy/B,kBAAkB,GAC5BrD,wBAAyBA,EACzBC,aAAcr8B,KAAKuG,MAAMo3B,kCACzB9G,aAAc72B,KAAKuG,MAAM3E,KAAKsH,UAAUC,MACxCqgB,eAAgBA,EAChBR,YAAaW,EAAaX,cAK9BhpB,KAAKuG,MAAMy3B,mBAAqBh+B,KAAKuG,MAAMw3B,wBAC3C77B,EAAAA,EAAAA,KAACy1B,GAAmB,CAClBE,UAAW+F,EACXh8B,KAAM5B,KAAKuG,MAAM3E,KACjBqnB,aAAcU,EAAaV,aAC3BO,eAAgBA,IAIlBxpB,KAAKuG,MAAMk3B,YACX9T,EAAaT,eACbhnB,EAAAA,EAAAA,KAACg2B,GAAY,CACXC,WAAYxO,EAAaT,aAAaoH,QAAQ,WAAY,OAC1D8H,YAAaA,EACb5O,eAAgBA,IAIlBxpB,KAAKuG,MAAM64B,+BACXl9B,EAAAA,EAAAA,KAACo3B,GAAgB,CACf3kB,KAAMqV,EAAeqX,gBACrB7X,eAAgBA,UAMxBiV,IACAv8B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,iBAAkBiF,EAAQqnB,mBAAmBj9B,SACrEsjB,IAIH+V,IACAx7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,gCAAiCiF,EAAQsnB,sBAAsBl9B,SACvFwjB,MAKX,IAAC,CAzRiC,CAAStlB,EAAAA,eAiS7Cg9B,GAA+Bn9B,cAAYuE,EAAAA,EAAAA,GAAA,GACtCs2B,GAAyB76B,cAGvB,IAAMo/B,GAAyB,SAACj7B,GACrC,IAAQijB,EAAmBjjB,EAAnBijB,eAEFiY,GAAkBh9B,EAAAA,EAAAA,UAAQ,WAC9B,OAAOi9B,EAAAA,EAAAA,mBAAiBvd,EAAAA,EAAAA,mBAAkBob,GC5bR,SAAHx+B,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,WAC5D,IAAMiE,EAAYntB,IAAAA,KAAOkpB,EAAgB,CACvC,WACA,WACA,iBACA,gBACA,iBACA,oBACA,gBACA,qBACA,sBACA,yBAGF,MAAO,CACL2W,SAAU7/B,IAAAA,OAAS,CACnB,EAAGmtB,EAAU0S,UACbD,eAAgB5/B,IAAAA,OAAS,CAAC,EAAGmtB,EAAUyS,gBACvCE,cAAe9/B,IAAAA,OAAS,CACxB,EAAGmtB,EAAU2S,eACbN,eAAgBx/B,IAAAA,OAAS,CACvBgF,QAAS,QACTD,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACVoN,UAAW,+EACXtF,aAAc,KACdD,WAAY,OACZE,OAAQ,OACRG,IAAK,GACJT,EAAUqS,gBACbwB,kBAAmBhhC,IAAAA,OAAS,CAC1B2tB,KAAM,EACNpJ,MAAO,OACPxf,SAAU,WACV0Q,UAAW,SACX4rB,WAAY,GACZtc,SAAU,OACVuI,OAAQ,GACRY,WAAY,QACXf,EAAU6T,mBACbJ,cAAe5gC,IAAAA,OAAS,CACtB+kB,SAAU,OACVmJ,WAAY,QACXf,EAAUyT,eACbC,mBAAoB7gC,IAAAA,OAAS,CAAC,EAAGmtB,EAAU0T,oBAC3CC,oBAAqB9gC,IAAAA,OAAS,CAAC,EAAGmtB,EAAU2T,qBAC5CG,qBAAsBjhC,IAAAA,OAAS,CAC7B+kB,SAAU,GACVmJ,WAAY,OACZzY,UAAW,OACX6X,OAAQ,EACR5I,QAAS,SACT3f,SAAU,WACVwf,MAAO,OACPoJ,KAAM,GACLR,EAAU8T,sBAEjB,CAAE,CDkY4EK,CAAuB,CAAEpY,eAAAA,KACrG,GAAG,CAACA,IAEJ,OACEtnB,EAAAA,EAAAA,KAACu/B,GAAe96B,EAAAA,EAAAA,GAAA,GACVJ,GAGV,EE5bas7B,GAA8B,CACzC37B,WAASS,EAAAA,EAAAA,GAAA,CACPtC,SAAU8B,KAAAA,KACVqjB,eAAgBrjB,KAAAA,MAAgB,CAAC,GACjC27B,gBAAiB37B,KAAAA,KACjB47B,YAAa57B,KAAAA,OACb67B,eAAgB77B,KAAAA,OAChBvE,KAAMuE,KAAAA,MAAgB,CACpB+C,UAAW/C,KAAAA,KAAeC,aACzBA,YACA62B,GAAyB/2B,WAE9B9D,cAAYuE,EAAAA,EAAAA,GAAA,CACVtC,SAAU,KACVmlB,eAAgB,CAAC,EACjBsY,iBAAiB,EACjBC,YAAa,GACbC,eAAgB,IACb/E,GAAyB76B,eAInBilB,GAAqB,SAAC9gB,GACjC,IACEijB,EAOEjjB,EAPFijB,eACAnlB,EAMEkC,EANFlC,SACAy9B,EAKEv7B,EALFu7B,gBACAC,EAIEx7B,EAJFw7B,YACAC,EAGEz7B,EAHFy7B,eACA3E,EAEE92B,EAFF82B,MAIIrM,GAFFzqB,EADF63B,WAG6Bf,GAASA,EAAMrM,WAExC/W,GAAUuQ,EAAAA,EAAAA,kBC3CgB,SAAHzpB,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAgBwH,EAAUjwB,EAAViwB,WAAU,OAAO,WACpE,IAAMvD,EAAYntB,IAAAA,KAAOkpB,EAAgB,qBAAsB,cAAe,cAE9E,MAAO,CACLyY,mBAAoB3hC,IAAAA,OAAS,CAC3BykB,SAAU,EACVzf,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZghB,QAAShG,EAAa,OAAS,OAC9BvD,EAAUwU,oBACbC,WAAY5hC,IAAAA,OAAS,CACrB,EAAGmtB,EAAUyU,YACbH,YAAazhC,IAAAA,OAAS,CACtB,EAAGmtB,EAAUsU,aAEjB,CAAE,CD2BiCI,CAAmB,CAAE3Y,eAAAA,EAAgBwH,WAAAA,KAEhEoR,EAAY9hC,IAAAA,KAChBiG,EACAjG,IAAAA,KAAO28B,GAAyB/2B,YAGlC,OACEhE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,uBAAwBotB,EAAU57B,WAAWnC,UACtEc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,sCAAuCiF,EAAQgoB,oBAAoB59B,SAAA,EAC5Fc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,cAAeiF,EAAQioB,YAAY79B,SAAA,CAE1Dy9B,IACA5/B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,eAAgBiF,EAAQ8nB,aAAa19B,UAC9DnC,EAAAA,EAAAA,KAAA,OAAKk3B,IAAK2I,EAAa1I,IAAK2I,OAGhC9/B,EAAAA,EAAAA,KAACs/B,IAAsB76B,EAAAA,EAAAA,GAAA,GAAKy7B,OAE7B/9B,MAIT,EAMAgjB,GAAmBjlB,cAAYuE,EAAAA,EAAAA,GAAA,GAC1Bk7B,GAA4Bz/B,cE5DjC,IAAQigC,GAA4BC,EAAAA,GAA5BD,wBAEFE,IAAuBjvB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC1B8T,EAAAA,EAA2BC,mBAAqBA,IAChDD,EAAAA,EAA2BE,yBAA2BA,GAAAA,IACtDF,EAAAA,EAA2BG,4BAA8BA,GAAAA,IACzDH,EAAAA,EAA2BI,mCAAqCA,GAAAA,IAChEJ,EAAAA,EAA2BK,kCAAoCA,GAAAA,IAG5D+a,IAA4BlvB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC/B8T,EAAAA,EAA2BC,mBAAqB/mB,IAAAA,KAAOuhC,GAA4B37B,YACnFkhB,EAAAA,EAA2BE,yBAA2BhnB,IAAAA,KAAOmiC,GAAAA,GAAkCv8B,YAC/FkhB,EAAAA,EAA2BG,4BAA8BjnB,IAAAA,KAAOoiC,GAAAA,GAAqCx8B,YACrGkhB,EAAAA,EAA2BI,mCAAqClnB,IAAAA,KAAOoiC,GAAAA,GAAqCx8B,YAC5GkhB,EAAAA,EAA2BK,kCAAoCnnB,IAAAA,KAAOoiC,GAAAA,GAAqCx8B,YAGjGy8B,GAAwB,SAAH5hC,GAI3B,IAHLgnB,EAAQhnB,EAARgnB,SACA6a,EAAuB7hC,EAAvB6hC,wBACAhhC,EAAIb,EAAJa,KAEQihC,EAAkB9a,EAAlB8a,cACFC,EAAYP,GAAwBM,GACpCE,EAAoBP,GAA6BK,GAEvD,MAAO,CACLG,mBAAoB,SAAFxhC,GASX,IAPL0mB,EAAM1mB,EAAN0mB,OAEAyO,EAAen1B,EAAfm1B,gBAEA3M,EAAcxoB,EAAdwoB,eAEAuT,EAAI/7B,EAAJ+7B,KAGM0F,GAAmBx+B,EAAAA,EAAAA,UAAQ,kBAAMnE,IAAAA,KAAOq2B,GAAiB,SAAAznB,GAAkB,OAAAA,EAAfg0B,gBAAsC/4B,gBAAkBk4B,GAAwBta,GAAU5d,aAAa,GAAC,GAAE,CAACwsB,IAEvKwM,GAAsB1+B,EAAAA,EAAAA,UAAQ,kBAAMm+B,EAAwB,CAChE1a,OAAAA,EACA8B,eAAAA,EACAjC,SAAAA,EACAnmB,KAAAA,GACA,GAAE,CAACsmB,EAAQ8B,IAEPoZ,EAAiB9iC,IAAAA,KAAO6iC,EAAqBJ,GAEnD,OACE7gC,EAAAA,EAAAA,KAAC4gC,GAASn8B,EAAAA,EAAAA,GAAA,CACR02B,MAAO4F,EACP1F,KAAMA,GACF6F,GAGV,EAEJ,E,wDCpDEf,GASEC,EAAAA,GATFD,wBACAgB,GAQEf,EAAAA,GARFe,4BACAC,GAOEhB,EAAAA,GAPFgB,sBACAC,GAMEjB,EAAAA,GANFiB,6BACAC,GAKElB,EAAAA,GALFkB,iCACAC,GAIEnB,EAAAA,GAJFmB,0BACAC,GAGEpB,EAAAA,GAHFoB,2BACAC,GAEErB,EAAAA,GAFFqB,sBACAC,GACEtB,EAAAA,GADFsB,8BA+BWC,GAAuB,SAAH30B,GAI1B,IAHL40B,EAAS50B,EAAT40B,UACAC,EAAwB70B,EAAxB60B,yBACAC,EAA+B90B,EAA/B80B,gCAEMC,EAAqBC,EAAAA,GAA0BJ,GAEjDK,EAAiBJ,EAA2BzjC,IAAAA,OAAS2jC,GAAoB,SAAAlc,GAAQ,OAAIgc,EAAyBhc,EAAS,IAAIkc,EAM/H,OAJID,IACFG,EAAiB7jC,IAAAA,IAAM6jC,GAAgB,SAAApc,GAAQ,OAAIic,EAAgCjc,EAAS,KAGvFoc,CACT,EAoCaC,GAA4B,SAAHC,GAAkF,IAA5EP,EAASO,EAATP,UAAWC,EAAwBM,EAAxBN,yBAA0BC,EAA+BK,EAA/BL,gCAO/E,OANgBv/B,EAAAA,EAAAA,UAAQ,kBAnCe,SAAHyP,GAAkF,IAA5E4vB,EAAS5vB,EAAT4vB,UAAWC,EAAwB7vB,EAAxB6vB,yBAA0BC,EAA+B9vB,EAA/B8vB,gCACzEG,EAAiBN,GAAqB,CAAEC,UAAAA,EAAWC,yBAAAA,EAA0BC,gCAAAA,IAC7EpB,EAA0B/Y,EAA4Bia,GAG5D,OAAOxjC,IAAAA,IAAM6jC,GAAgB,SAACpc,GAC5B,MAAO,CACLA,SAAAA,EAEAuc,sBAAuB,SAAF/uB,GAA2C,IAAtC2S,EAAM3S,EAAN2S,OAAQmO,EAAM9gB,EAAN8gB,OAAQrM,EAAczU,EAAdyU,eAClCpoB,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAChBwT,GAAuBv+B,EAAAA,EAAAA,UAAQ,kBAAMk+B,GAAsB,CACjE5a,SAAAA,EACA6a,wBAAAA,EACAhhC,KAAAA,GACA,GAAE,CAACA,IAJGohC,mBAOR,OACE9gC,EAAAA,EAAAA,KAACooB,EAAe,CACdC,kBAAmB,WAAF,OACfroB,EAAAA,EAAAA,KAAC8gC,EAAkB,CACjB9a,OAAQA,EACRyO,gBAAiBN,EACjBrM,eAAgBA,GAChB,GAIV,EAEJ,GACF,CAGgCua,CAA0B,CAAET,UAAAA,EAAWC,yBAAAA,EAA0BC,gCAAAA,GAAkC,GAAE,CACjIF,EACAC,EACAC,GAIJ,EAGaQ,GAA2B,SAAHC,GAK9B,IAJLX,EAASW,EAATX,UACAC,EAAwBU,EAAxBV,yBACAC,EAA+BS,EAA/BT,gCACAU,EAAkBD,EAAlBC,mBAEM9B,EAA0B/Y,EAA4Bia,GACtDK,EAAiBN,GAAqB,CAAEC,UAAAA,EAAWC,yBAAAA,EAA0BC,gCAAAA,IAE7EW,EAAiC,SAACp+B,GACtC,IACE2hB,EASE3hB,EATF2hB,OACAyO,EAQEpwB,EARFowB,gBACA4G,EAOEh3B,EAPFg3B,KACAvT,EAMEzjB,EANFyjB,eACAyG,EAKElqB,EALFkqB,kBACAvB,EAIE3oB,EAJF2oB,qBACAgC,EAGE3qB,EAHF2qB,wBACAC,EAEE5qB,EAFF4qB,kBACA/E,EACE7lB,EADF6lB,+BAEF5d,GAA0CC,EAAAA,EAAAA,UAAS,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA/Co2B,EAAal2B,EAAA,GAAEm2B,EAAgBn2B,EAAA,GAEhCo2B,GAAuBvgC,EAAAA,EAAAA,QAAO,MAC9BwgC,GAAgCxgC,EAAAA,EAAAA,SAAO,GAEvC3C,GAAO2tB,EAAAA,EAAAA,YAAWC,EAAAA,aAElBwV,GAAmBvgC,EAAAA,EAAAA,UAAQ,kBAAiC,IAA3BkyB,EAAgB92B,MAAY,GAAE,CAAC82B,IAEhEsO,GAAoBxgC,EAAAA,EAAAA,UAAQ,kBAvHJygC,EAuHmCf,EAtH9C7jC,IAAAA,OAASkjC,GAAiC0B,IAAY,SAAAnkC,GAAc,OAAAA,EAAXy8B,WAA6B,IAEvF39B,OAAS,EAHE,IAACqlC,CAuHkD,GAAE,CAACf,KAEnFziC,EAAAA,EAAAA,YAAU,WACJujC,IACED,EAEGF,EAAqB9/B,QASd+/B,EAA8B//B,UACxC6/B,GAAgB/qB,EAAAA,EAAAA,GACXgrB,EAAqB9/B,UAE1B+/B,EAA8B//B,SAAU,GApIX,SAACkgC,GAAiD,IAAtCC,EAAiB7lC,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG8lC,GACjEC,EAAe/kC,IAAAA,OAASkjC,GAAiC0B,IAAY,SAAA1jC,GAAc,OAAAA,EAAXg8B,WAA6B,IAkB3G,OAjBqB8H,EAAAA,GAAAA,IAA2BH,GAC7C7mB,MAAK,SAACinB,GACL,IAAMC,GAAgBC,EAAAA,GAAAA,IAA8B,CAClDC,oBAAqBH,EACrBF,aAAAA,IAUF,OAPA/kC,IAAAA,KAAOklC,GAAe,SAACnI,GAErBA,EAAMrM,YAAa,EAEnBqM,EAAMj3B,YAAa,CACrB,IAEOo/B,CACT,GAGJ,CAoGYG,CAAiCxB,EAAgBO,GAC9CpmB,MAAK,SAACsnB,GACLd,EAAqB9/B,QAAU4gC,EAC/Bf,GAAgB/qB,EAAAA,EAAAA,GACX8rB,IAELb,EAA8B//B,SAAU,CAC1C,KAQJ6/B,GAAgB/qB,EAAAA,EAAAA,GACX6c,IAELoO,EAA8B//B,SAAU,GAG9C,GAAG,CAAC2xB,EAAiBqO,EAAkBC,IAEvC,IAAMY,GAAsBphC,EAAAA,EAAAA,UAAQ,WAWlC,OAVsBnE,IAAAA,IAAM6jC,GAAgB,SAACpc,GAO3C,OAN+B4a,GAAsB,CACnD5a,SAAAA,EACA6a,wBAAAA,EACAhhC,KAAAA,IAHMohC,kBAOV,GAGF,GAAG,CAACphC,EAAMgjC,IAEJzY,GAAkB1nB,EAAAA,EAAAA,UAAQ,WAC9B,OAAImgC,EAAc/kC,OAAS,IAAMolC,EAEX3kC,IAAAA,IAAMulC,GAAqB,SAAC7C,GAC9C,OACE9gC,EAAAA,EAAAA,KAAC8gC,EAAkB,CACjB9a,OAAQA,EACRyO,gBAAiBiO,EACjB5a,eAAgBA,EAChBuT,KAAMA,GAGZ,IAIK,EACT,GAAG,CAACrV,EAAQ0c,EAAe5a,EAAgB6b,IAErC9R,GAAsBxyB,EAAAA,EAAAA,cAAY,SAACypB,GACvC,IAAM8a,EAAYzD,GAAwB8B,EAAenZ,IAEzD,OAAO1qB,IAAAA,KAAOskC,GAAe,SAAAmB,GAAkB,OAAAA,EAAf7C,kBAA0C4C,CAAS,GACrF,GAAG,CAAClB,IAEEoB,GAA8BzkC,EAAAA,EAAAA,cAAY,SAACypB,GAG/C,OAFckG,EAA0BA,EAAwBlG,GAASqY,GAA4Bc,EAAenZ,GAAQ8Y,EAAWliC,EAGzI,GAAG,CAACsvB,IAQEqD,GAA2BhzB,EAAAA,EAAAA,cAAY,SAACypB,GAC5C,GAAIga,EACF,OAAO,EAGT,IAAMiB,EAAYlS,EAAoB/I,GAEtC,OAAOuY,GAA6BY,EAAenZ,GAAQib,EAC7D,GAAG,CAAClS,EAAqBiR,IAEnBkB,GAA2B3kC,EAAAA,EAAAA,cAAY,SAACypB,GAG5C,OAFmBkE,EAAuBA,EAAqBlE,EAAOmZ,EAAenZ,IAAUyY,GAA0BU,EAAenZ,GAG1I,GAAG,CAACkE,IAEEC,GAAyB5tB,EAAAA,EAAAA,cAAY,SAACypB,GAG1C,OAFa0Y,GAA2BS,EAAenZ,GAGzD,GAAG,IAEGmb,GAAmC5kC,EAAAA,EAAAA,cAAY,SAAC6kC,EAAMC,EAAcC,GAExE,IAAMtb,EAAQ1qB,IAAAA,UAAY6jC,GAAgB,SAACpc,GACzC,OAAO2b,GAA2B3b,KAAcqe,CAClD,IACMN,EAAYzD,GAAwB8B,EAAenZ,IAEzD6Z,GAAiB,SAAC0B,GAMhB,OAFAA,EAHmBjmC,IAAAA,UAAYimC,GAAY,SAAAC,GAAkB,OAAAA,EAAftD,kBAA0C4C,CAAS,KAG1E9U,WAAasV,GAEpCxsB,EAAAA,EAAAA,GACKysB,EAEP,IAEAF,EAAaD,EACf,GAAG,IAEGK,GAA2BhiC,EAAAA,EAAAA,UAAQ,WACvC,GAAIgsB,GAAqBA,EAAkBrB,iBAAkB,CAC3D,IAAMsX,EAAe,CACnBpX,OAAQmB,EAAkBnB,OAG5BoX,iBAAgC,SAACN,GAC/BD,EAAiCC,EAAM3V,EAAkBrB,kBAAkB,EAC7E,EAEAsX,oBAAmC,SAACN,GAClCD,EAAiCC,EAAM3V,EAAkBpB,qBAAqB,EAChF,GAEA,OAAOqX,CACT,CACA,OAAOjW,CACT,GAAG,CAAC0V,EAAkC1V,IAEhC+D,GAA+BjzB,EAAAA,EAAAA,cAAY,SAACypB,GAChD,IAAMjD,EAAWoc,EAAenZ,GAEhC,OAAO2Y,GAAsB5b,EAC/B,GAAG,IAEG4e,GAAuCplC,EAAAA,EAAAA,cAAY,SAACypB,GACxD,IAAMjD,EAAWoc,EAAenZ,GAEhC,OAAO4Y,GAA8B7b,EACvC,GAAG,IAGGsJ,GAAiC9vB,EAAAA,EAAAA,cACrC,SAAAypB,GAAK,OAAI2b,EAAqC3b,KAAWwJ,EAA6BxJ,EAAM,GAC1F,CAAC2b,EAAsCnS,IAG3C,OACEtyB,EAAAA,EAAAA,KAACoyB,IAAqB3tB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAChBJ,GAAK,IACT4lB,gBAAiBA,EACjB4H,oBAAqBA,EACrB7C,wBAAyB8U,EACzBvU,kBA5FuB,SAACzG,GAC1B,IAAMjD,EAAWoc,EAAenZ,GAEhC,OAAOsY,GAAsBvb,EAC/B,EAyFIwM,yBAA0BA,EAC1BpF,uBAAwBA,EACxBD,qBAAsBgX,EACtB/U,kBAAmBA,GAAqB6T,EACxCvU,kBAAmBgW,EACnBpV,+BAAgCA,EAChCmD,6BAA8BA,EAC9BpI,+BAAgCA,IAGtC,EA6BA,OAXAuY,EAA+BviC,aAAe,CAC5CquB,kBAAmB,KACnBkG,gBAAiB,GACjB3M,eAAgB,CAAC,EACjBkF,qBAAsB,KACtBgC,wBAAyB,KACzBC,kBAAmB,KACnB/E,gCAAgC,EAChCmR,KAAM,MAGD,CACLjJ,sBAAuBqQ,EAE3B,EAEaiC,GAA2B,SAAHC,GAK9B,IAJL/C,EAAS+C,EAAT/C,UACAC,EAAwB8C,EAAxB9C,yBACAC,EAA+B6C,EAA/B7C,gCACAU,EAAkBmC,EAAlBnC,mBASA,OAPejgC,EAAAA,EAAAA,UAAQ,kBAAM+/B,GAAyB,CACpDV,UAAAA,EACAC,yBAAAA,EACAC,gCAAAA,EACAU,mBAAAA,GACA,GAAE,CAACZ,EAAWC,EAA0BC,EAAiCU,GAG7E,EAmDaoC,GAA2B,SAAHC,GAG9B,IAFLC,EAAiBD,EAAjBC,kBACAtC,EAAkBqC,EAAlBrC,mBAOA,OALejgC,EAAAA,EAAAA,UAAQ,kBArDe,SAAHwiC,GAG9B,IAFLD,EAAiBC,EAAjBD,kBACAtC,EAAkBuC,EAAlBvC,mBAEMtO,EAAa91B,IAAAA,MAAQ0mC,GACxBniC,KAAI,SAAAqiC,GAKE,IAJLznC,EAAGynC,EAAHznC,IACAqkC,EAASoD,EAATpD,UACAC,EAAwBmD,EAAxBnD,yBACAC,EAA+BkD,EAA/BlD,gCAUA,MAAO,CAACvkC,EAPN+kC,GAAyB,CACvBV,UAAAA,EACAC,yBAAAA,EACAW,mBAAAA,EACAV,gCAAAA,IALI1P,sBASV,IACC6S,SACAznC,QAEG0nC,EAA2B,SAAA7gC,GAAK,OACpCrE,EAAAA,EAAAA,KAACg0B,IAAevvB,EAAAA,EAAAA,GAAA,CACd4uB,OAAQyR,EACR5Q,WAAYA,GACR7vB,GACJ,EAeJ,OALA6gC,EAAyBhlC,aAAe,CACtC4nB,eAAgB,CAAC,EACjBqM,OAAQ,IAGH,CACLH,gBAAiBkR,EAErB,CAM+BC,CAAyB,CACpDL,kBAAAA,EACAtC,mBAAAA,GACA,GAAE,CAACsC,EAAmBtC,GAG1B,C,qJC3aa4C,EAA0B,CCVT,CAC5BzE,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,WACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBP,0BAA0B,EAC1BX,4BAA4B,EAC5BrT,kBAAkB,EAClB0S,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,WAET4b,cAAe,CACblc,QAAS,OACTM,MAAO,UCvEe,CAC1Bud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBX,cAAc,EACdnB,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGblO,cAAe,CACbxD,MAAO,QACP0I,OAAQ,GACR3I,SAAU,GACVmJ,WAAY,UACZ3J,MAAO,IACP5O,aAAc,GACd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAGZkS,eAAgB,CACd,UAAW,CACT,oBAAqB,CACnB+H,eAAgB,cAGpBhjB,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SChFY,CAC3Bid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,kBACNlD,gBAAiB,oBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,sCACtBye,UAAWze,YAEbmgB,gBAAiB,CACf8U,WAAW,EACXG,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTtC,8BAA8B,EAC9BlT,kBAAkB,EAClB0S,yBAAyB,GAE3B5S,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,QACP1M,UAAW,uBACXhB,MAAO,QACPmJ,OAAQ,OACRD,OAAQ,OAEVmT,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZR,OAAQ,OACRhI,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,UCrDY,CAC1Bwd,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXG,kBAAkB,EAClBL,cAAc,EACdtB,8BAA8B,GAEhCpT,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGbjO,aAAc,CACZ1D,SAAU,GACVmJ,WAAY,QAEdsR,eAAgB,CACd9R,OAAQ,IACRtI,gBAAiB,mBAEnBwb,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,kEACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SCnEU,CACzBid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,eACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXG,kBAAkB,EAClBL,cAAc,EACdtB,8BAA8B,GAEhCpT,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGbjO,aAAc,CACZzD,MAAO,QACP0I,OAAQ,GACRnJ,MAAO,IACPQ,SAAU,GACVmJ,WAAY,OAEdsR,eAAgB,CACdjb,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SCtEU,CACzBid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,sBACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXG,kBAAkB,EAClB3B,8BAA8B,EAC9Bc,0BAA0B,GAE5BlU,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAET4b,cAAe,CACblc,QAAS,YACTM,MAAO,OACP0I,OAAQ,MCtDgB,CAC5B6U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,IACb4I,KAAM,eACNlD,gBAAiB,kBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,WAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBlB,4BAA4B,EAC5BW,0BAA0B,EAC1BtB,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACPK,WAAY,IACZ+H,cAAe,GAEjBwT,cAAe,CACblc,QAAS,OACTM,MAAO,UCtEa,CACxBud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,IACfxf,cAAe,CACbL,qBAAsBxe,qBACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACdjb,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,mBClEc,CAC1B8U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,mBACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BW,0BAA0B,GAE5BlU,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,iBAEV0O,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,UC9EW,CACzBwd,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,IACb4I,KAAM,cACNlD,gBAAiB,mBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,sBACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BmB,cAAc,GAEhB1U,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGblO,cAAe,CACbxD,MAAO,QACP0I,OAAQ,GACR3I,SAAU,GACVmJ,WAAY,IACZ3J,MAAO,IACP6I,cAAe,GAEjBoS,eAAgB,CACd,UAAW,CACT,oBAAqB,CACnB+H,eAAgB,cAGpBhjB,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,UCKjB,EAjF8B,CAC5Bid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACN3mC,IAAK,eACL+G,UAAW,eACX08B,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,WACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBP,0BAA0B,EAC1BX,4BAA4B,EAC5BrT,kBAAkB,EAClB0S,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPT,MAAO,IACPmJ,OAAQ,KAEVlF,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,WAET4b,cAAe,CACblc,QAAS,OACTM,MAAO,UCWb,EAvF4B,CAC1Bud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACN3mC,IAAK,eACL+G,UAAW,eACX08B,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBX,cAAc,EACdnB,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGblO,cAAe,CACbxD,MAAO,QACP0I,OAAQ,GACR3I,SAAU,GACVmJ,WAAY,UACZ3J,MAAO,IACP5O,aAAc,GACd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAGZkS,eAAgB,CACd,UAAW,CACT,oBAAqB,CACnB+H,eAAgB,cAGpBhjB,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SCFjB,EA/E8B,CAC5Bid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,IACb4I,KAAM,eACN3mC,IAAK,eACL+G,UAAW,eACX08B,gBAAiB,kBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,WAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBlB,4BAA4B,EAC5BW,0BAA0B,EAC1BtB,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPT,MAAO,IACPmJ,OAAQ,KAEVlF,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACPK,WAAY,IACZ+H,cAAe,GAEjBwT,cAAe,CACblc,QAAS,OACTM,MAAO,UCAb,EA1E0B,CACxBud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACN3mC,IAAK,eACL+G,UAAW,eACX08B,gBAAiB,oBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,IACfxf,cAAe,CACbL,qBAAsBxe,qBACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACdjb,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,EACTE,UAAW,KAEbgb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,mBCkBd,EAvF4B,CAC1B8U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACN3mC,IAAK,WACL+G,UAAW,WACX08B,gBAAiB,mBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,mBACtBye,UAAWze,QACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BW,0BAA0B,GAE5BlU,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,EACTE,UAAW,KAEbgb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,iBAEV0O,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,UC5EH0iB,EAAuB,CAClCC,EACAC,EACAC,EACAC,EACAC,ECXqB,CACrBvF,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,mBACL2mC,KAAM,iBACN5/B,UAAW,mBACX08B,gBAAiB,iBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,mCACtBye,UAAWze,IAEbmgB,gBAAiB,CACfuV,mBAAmB,EACnBZ,iBAAiB,EACjBD,kBAAkB,EAClBD,uBAAuB,EACvB1B,cAAc,EACdmC,wBAAwB,EACxBI,yBAAyB,GAE3BpV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,oBACRiO,UAAW,OACXtB,SAAU,IACVhE,aAAc,EACd5I,UAAW,KAEb4R,SAAU,CACRpR,gBAAiB,OACjBoI,aAAc,EACdE,OAAQ,GACRS,cAAe,SACfzJ,QAAS,QACTH,MAAO,OACPvf,QAAS,eACTD,SAAU,SACV0oB,OAAQ,YACR1I,SAAU,GACVC,MAAO,SAETwS,oBAAqB,CACnBxyB,QAAS,eACTggB,MAAO,QACPuiB,eAAgB,OAChB3iB,UAAW,EACXjmB,YAAa,GACbwvB,cAAe,UAEjByR,eAAgB,CACd56B,QAAS,gBAEX47B,cAAe,CACb57B,QAAS,gBAEX67B,mBAAoB,CAClBhc,OAAQ,aACR7f,QAAS,eACT0f,QAAS,MACTa,UAAW,iCACX+hB,YAAa,kBACb3oC,YAAa,IAEf6pB,cAAe,CACbxjB,QAAS,eACTggB,MAAO,OACPN,QAAS,GAEXoc,oBAAqB,CACnB97B,QAAS,eACT0f,QAAS,EACTM,MAAO,OACP,UAAW,CACTM,QAAS,QAGb0W,kBAAmB,CACjBh3B,QAAS,eACTggB,MAAO,QACPuiB,eAAgB,OAChB7iB,QAAS,GAEXgE,YAAa,CACX1jB,QAAS,kBCnFW,CACxBu9B,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,sBACL2mC,KAAM,oBACN5/B,UAAW,sBACX08B,gBAAiB,oBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,IAEbmgB,gBAAiB,CACfuV,mBAAmB,EACnBZ,iBAAiB,EACjBD,kBAAkB,EAClBD,uBAAuB,EACvBH,8BAA8B,GAEhCpU,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,oBACRiO,UAAW,OACXvO,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,oBACTE,UAAW,KAEb4S,oBAAqB,CACnBxyB,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,GACVgjB,SAAU,IACV5Z,cAAe,SACfD,WAAY,OACZtJ,UAAW,EACX,cAAe,CACbQ,gBAAiB,OACjBoI,aAAc,EACdE,OAAQ,GACRS,cAAe,SACfzJ,QAAS,QACTH,MAAO,OACPvf,QAAS,eACTD,SAAU,SACV0oB,OAAQ,YACR1I,SAAU,GACVC,MAAO,QACPkJ,WAAY,SAGhB1F,cAAe,CACbxjB,QAAS,QACT+f,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEd8N,kBAAmB,CACjBh3B,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEdxF,YAAa,CACX1jB,QAAS,mBCwBf,EA1F4B,CAC1Bu9B,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb/9B,IAAK,eACL+G,UAAW,eACX4/B,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,SACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBX,cAAc,EACdnB,4BAA4B,EAC5BrT,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGblO,cAAe,CACbxD,MAAO,QACP0I,OAAQ,GACR3I,SAAU,GACVmJ,WAAY,UACZ3J,MAAO,IACP5O,aAAc,GACd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAGZkS,eAAgB,CACd,UAAW,CACT,oBAAqB,CACnB+H,eAAgB,cAGpBhjB,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SCHjB,EAjF8B,CAC5Bid,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,eACL+G,UAAW,eACXg3B,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,WACtBye,UAAWze,UAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBP,0BAA0B,EAC1BX,4BAA4B,EAC5BrT,kBAAkB,EAClB0S,yBAAyB,EACzBqC,uBAAuB,GAEzBjV,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,GACVgjB,SAAU,KAEZvI,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACP+iB,SAAU,KAEZnH,cAAe,CACblc,QAAS,OACTM,MAAO,UCWb,EAvF4B,CAC1Bud,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,WACL+G,UAAW,WACXg3B,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,mBACtBye,UAAWze,OAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BW,0BAA0B,EAC1BhU,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,iBAEV0O,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,UCFhB,EAhF4B,CAC1Bwd,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,UACL+G,UAAW,UACXg3B,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,eACtBye,UAAWze,OAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACThB,cAAc,EACdxU,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdR,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvI,SAAU,GACVhgB,SAAU,YAEZy6B,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACP0I,OAAQ,IACRnJ,MAAO,KAETiE,cAAe,CACbxD,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACVM,WAAY,IACZ+H,cAAe,GAEjB+O,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVuI,OAAQ,GACRvoB,SAAU,YAEZ67B,cAAe,CACbjT,KAAM,EACN5oB,SAAU,WACVmpB,WAAY,IACZb,YAAa,GACbC,OAAQ,GACRvI,SAAU,IAEZ8a,SAAU,CACR2H,gBAAiB,wDACjBjjB,MAAO,OACPmJ,OAAQ,IACR1oB,QAAS,QACTD,SAAU,YAEZgzB,aAAc,CACZrT,QAAS,oBACT3f,SAAU,cCShB,EApF8B,CAC5Bw9B,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,UACL+G,UAAW,UACXg3B,YAAa,GACb4I,KAAM,WACNlD,gBAAiB,gBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,OAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACTxV,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsN,SAAU,CACRpR,gBAAiB,SAEnBya,SAAU,CACR2H,gBAAiB,wDACjBjjB,MAAO,OACPmJ,OAAQ,IACR1oB,QAAS,QACTD,SAAU,YAEZ2jB,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACP0I,OAAQ,KAEVlF,cAAe,CACbzD,SAAU,GACVhgB,SAAU,WACVigB,MAAO,QACPsI,OAAQ,GACRjI,WAAY,IACZ+H,cAAe,GAEjB+O,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVuI,OAAQ,GACRvoB,SAAU,YAEZgzB,aAAc,CACZrT,QAAS,oBACT3f,SAAU,WACV6oB,IAAK,EACL7I,SAAU,GACVyI,aAAc,GAEhBoT,cAAe,CACbjT,KAAM,EACN5oB,SAAU,WACVmpB,WAAY,IACZb,YAAa,GACbC,OAAQ,GACRvI,SAAU,MCChB,EAhF0B,CACxBwd,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,UACL+G,UAAW,UACXg3B,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,gBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,aACtBye,UAAWze,OAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACThB,cAAc,EACdxU,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsN,SAAU,CACR3I,MAAO,KACPzI,gBAAiB,SAEnBsD,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVmJ,WAAY,OACZnpB,SAAU,WACVigB,MAAO,QACPoI,cAAe,EACf/H,WAAY,IACZiI,OAAQ,IAEVsT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,EACN5I,SAAU,GACVmJ,WAAY,OACZb,YAAa,IAEf8O,SAAU,CACRnX,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZgT,aAAc,CACZ/S,MAAO,OACP0R,QAAS,MACThS,QAAS,oBACT3f,SAAU,WACVqgB,gBAAiB,UCAvB,EA3E0B,CACxBmd,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,eACL+G,UAAW,eACXg3B,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,IACfxf,cAAe,CACbL,qBAAsBxe,qBACtBye,UAAWze,UAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BrT,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACdjb,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,mBCUd,EAhF8B,CAC5B8U,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,eACL+G,UAAW,eACXg3B,YAAa,IACb4I,KAAM,eACNlD,gBAAiB,kBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,SAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBlB,4BAA4B,EAC5BW,0BAA0B,EAC1BtB,yBAAyB,EACzB1S,kBAAkB,EAClB+U,uBAAuB,GAEzBjV,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,GACVgjB,SAAU,KAEZvI,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACPK,WAAY,IACZ+H,cAAe,GAEjBwT,cAAe,CACblc,QAAS,OACTM,MAAO,UCFb,EAzEmC,CACjCud,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,cACL+G,UAAW,cACXg3B,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,gCACtBye,UAAWze,UAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACTT,uBAAuB,GAEzBjV,eAAgB,CACdsN,SAAU,CACRpR,gBAAiB,SAEnBsD,YAAa,CACX1D,MAAO,QACP+iB,SAAU,IACVC,SAAU,aACVxjB,aAAc,GACdO,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVM,WAAY,IACZ1P,aAAc,EACdyX,cAAe,EACfpI,MAAO,SAET4b,cAAe,CACblc,QAAS,qBACTqjB,SAAU,yBACVxjB,MAAO,IACP2J,WAAY,KAEdiO,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVpP,aAAc,GAEhBoiB,aAAc,CACZlK,MAAO,GACPP,OAAQ,GACR5I,QAAS,oBACTK,SAAU,GACVM,WAAY,OACZmI,aAAc,MCGpB,EAvE2B,CACzB+U,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,YACL+G,UAAW,YACX4/B,KAAM,WACNlD,gBAAiB,WACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTtC,8BAA8B,EAC9BlT,kBAAkB,EAClB0S,yBAAyB,EACzBuB,mCAAmC,EACnCc,uBAAuB,GAEzBjV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,OACRiO,UAAW,OACXvO,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,YAEX8R,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiO,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZR,OAAQ,OACRhI,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPhgB,QAAS,eACT+f,SAAU,OACVN,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,UCpEFijC,EAAyB,yrUCiFtC,EA7E2B,CACzB1F,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,oBACL+G,UAAW,oBACX4/B,KAAM,kBACNlD,gBAAiB,kBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,GACX64B,eAAgB74B,gBAElBmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTtC,8BAA8B,EAC9BlT,kBAAkB,EAClB0S,yBAAyB,EACzBuB,mCAAmC,EACnCmE,iBAAiB,EACjBC,YAAawG,EACb9J,uBAAuB,GAEzBjV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,OACRiO,UAAW,OACXvO,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,YAEX8R,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiO,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZR,OAAQ,OACRhI,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,OACV/f,QAAS,eACTyf,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,QAEXy8B,YAAa,CACX/T,OAAQ,OCiBd,EA3F2B,CACzB6U,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,mBACL+G,UAAW,mBACX4/B,KAAM,iBACNlD,gBAAiB,iBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTtC,8BAA8B,EAC9BlT,kBAAkB,EAClB0S,yBAAyB,EACzBuB,mCAAmC,EACnCc,uBAAuB,GAEzBjV,eAAgB,CACdyY,mBAAoB,CAClB9c,OAAQ,oBACR9f,SAAU,WACV+f,aAAc,OACd0I,aAAc,gBACdjJ,MAAO,KAETiS,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiP,WAAY,CACVnU,OAAQ,mBACR3I,aAAc,OACd0I,aAAc,EACdJ,cAAe,EACf,WAAY,CACVQ,IAAK,GACLD,KAAM,MACN9I,OAAQ,oBACRS,QAAS,KACTvgB,SAAU,WACVyoB,aAAc,IAGlBgS,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,YAEXkc,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZR,OAAQ,OACRhI,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,OACV/f,QAAS,eACTyf,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,UCEf,EAxFuB,CACrBu9B,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,mBACL+G,UAAW,mBACX4/B,KAAM,iBACNlD,gBAAiB,iBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,mCACtBye,UAAWze,IAEbmgB,gBAAiB,CACfuV,mBAAmB,EACnBZ,iBAAiB,EACjBD,kBAAkB,EAClBD,uBAAuB,EACvB1B,cAAc,EACdmC,wBAAwB,EACxBI,yBAAyB,EACzBH,uBAAuB,GAEzBjV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,oBACRiO,UAAW,OACXtB,SAAU,IACVhE,aAAc,GAEhBgJ,SAAU,CACRpR,gBAAiB,OACjBoI,aAAc,EACdE,OAAQ,GACRS,cAAe,SACfzJ,QAAS,QACTH,MAAO,OACPvf,QAAS,eACTD,SAAU,SACV0oB,OAAQ,YACR1I,SAAU,GACVC,MAAO,SAETwS,oBAAqB,CACnBxyB,QAAS,eACTggB,MAAO,QACPuiB,eAAgB,OAChB3iB,UAAW,EACXjmB,YAAa,GACbwvB,cAAe,UAEjByR,eAAgB,CACd56B,QAAS,gBAEX47B,cAAe,CACb57B,QAAS,gBAEX67B,mBAAoB,CAClBhc,OAAQ,aACR7f,QAAS,eACT0f,QAAS,MACTa,UAAW,iCACX+hB,YAAa,kBACb3oC,YAAa,IAEf6pB,cAAe,CACbxjB,QAAS,eACTggB,MAAO,OACPN,QAAS,GAEXoc,oBAAqB,CACnB97B,QAAS,eACT0f,QAAS,EACTM,MAAO,OACP,UAAW,CACTM,QAAS,QAGb0W,kBAAmB,CACjBh3B,QAAS,eACTggB,MAAO,QACPuiB,eAAgB,OAChB7iB,QAAS,GAEXgE,YAAa,CACX1jB,QAAS,kBCtEFkjC,EAAmB,CAC9BR,EACAC,EACAC,EACAE,EACAD,EACAM,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,ECzBwB,CACxBlG,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,sBACL+G,UAAW,sBACX4/B,KAAM,oBACNlD,gBAAiB,oBACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,IAEbmgB,gBAAiB,CACfuV,mBAAmB,EACnBZ,iBAAiB,EACjBD,kBAAkB,EAClBD,uBAAuB,EACvBH,8BAA8B,EAC9Ba,uBAAuB,GAEzBjV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,oBACRiO,UAAW,OACXvO,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,qBAEX8S,oBAAqB,CACnBxyB,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,GACVgjB,SAAU,IACV5Z,cAAe,SACfD,WAAY,OACZtJ,UAAW,EACX,cAAe,CACbQ,gBAAiB,OACjBoI,aAAc,EACdE,OAAQ,GACRS,cAAe,SACfzJ,QAAS,QACTH,MAAO,OACPvf,QAAS,eACTD,SAAU,SACV0oB,OAAQ,YACR1I,SAAU,GACVC,MAAO,QACPkJ,WAAY,SAGhB1F,cAAe,CACbxjB,QAAS,QACT+f,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEd8N,kBAAmB,CACjBh3B,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEdxF,YAAa,CACX1jB,QAAS,kBDvCb0jC,GE6CF,EAxEmC,CACjCnG,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,gCACtBye,UAAWze,YAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,GAEX1V,eAAgB,CACdsN,SAAU,CACRpR,gBAAiB,SAEnBsD,YAAa,CACX1D,MAAO,QACP+iB,SAAU,IACVC,SAAU,aACVxjB,aAAc,GACdO,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPwI,aAAc,EACdsF,UAAW,QAEbtK,cAAe,CACbzD,SAAU,GACVM,WAAY,IACZ1P,aAAc,EACdyX,cAAe,EACfpI,MAAO,SAET4b,cAAe,CACblc,QAAS,qBACTqjB,SAAU,yBACVxjB,MAAO,IACP2J,WAAY,KAEdiO,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVpP,aAAc,GAEhBoiB,aAAc,CACZlK,MAAO,GACPP,OAAQ,GACR5I,QAAS,oBACTK,SAAU,GACVM,WAAY,OACZmI,aAAc,MCWpB,EA9E4B,CAC1B+U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,6BACtBye,UAAWze,SAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACTb,mBAAmB,GAErB7U,eAAgB,CACdR,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvI,SAAU,GACVhgB,SAAU,YAEZy6B,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACP0I,OAAQ,IACRnJ,MAAO,IACPiJ,aAAc,EACdsF,UAAW,QAEbtK,cAAe,CACbxD,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACVM,WAAY,IACZ+H,cAAe,GAEjB+O,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVuI,OAAQ,GACRvoB,SAAU,YAEZ67B,cAAe,CACbjT,KAAM,EACN5oB,SAAU,WACVmpB,WAAY,IACZb,YAAa,GACbC,OAAQ,GACRvI,SAAU,IAEZ+a,cAAe,CACb0H,gBAAiB,wDACjBjjB,MAAO,OACPmJ,OAAQ,IACR1oB,QAAS,QACTD,SAAU,YAEZgzB,aAAc,CACZrT,QAAS,oBACT3f,SAAU,cCtEH4jC,EAAyB,CCHZ,CACxBpG,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,gBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,2BACtBye,UAAWze,SAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACTb,mBAAmB,GAErB7U,eAAgB,CACdsN,SAAU,CACR3I,MAAO,KACPzI,gBAAiB,SAEnBsD,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZ+a,cAAe,CACb0H,gBAAiB,sDACjBjjB,MAAO,OACPmJ,OAAQ,IACR1oB,QAAS,QACTD,SAAU,YAEZy6B,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPwI,aAAc,EACdsF,UAAW,QAEbtK,cAAe,CACbzD,SAAU,GACVmJ,WAAY,OACZnpB,SAAU,WACVigB,MAAO,QACPoI,cAAe,EACf/H,WAAY,IACZiI,OAAQ,IAEVsT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,EACN5I,SAAU,GACVmJ,WAAY,OACZb,YAAa,IAEf8O,SAAU,CACRnX,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZgT,aAAc,CACZ/S,MAAO,OACP0R,QAAS,MACThS,QAAS,oBACT3f,SAAU,WACVqgB,gBAAiB,UD3ErBwjB,EACAC,EEN4B,CAC5BtG,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,GACb4I,KAAM,WACNlD,gBAAiB,gBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,+BACtBye,UAAWze,SAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,GAEX1V,eAAgB,CACdsN,SAAU,CACRpR,gBAAiB,SAEnBya,SAAU,CACR2H,gBAAiB,wDACjBjjB,MAAO,OACPmJ,OAAQ,IACR1oB,QAAS,QACTD,SAAU,YAEZ2jB,YAAa,CACX1D,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACP0I,OAAQ,IACRF,aAAc,EACdsF,UAAW,QAEbtK,cAAe,CACbzD,SAAU,GACVhgB,SAAU,WACVigB,MAAO,QACPsI,OAAQ,GACRjI,WAAY,IACZ+H,cAAe,GAEjB+O,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVuI,OAAQ,GACRvoB,SAAU,YAEZgzB,aAAc,CACZrT,QAAS,oBACT3f,SAAU,WACV6oB,IAAK,EACL7I,SAAU,GACVyI,aAAc,GAEhBoT,cAAe,CACbjT,KAAM,EACN5oB,SAAU,WACVmpB,WAAY,IACZb,YAAa,GACbC,OAAQ,GACRvI,SAAU,OCvEH+jB,EAA6B,CCNf,CACzBvG,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,YACL2mC,KAAM,WACNlD,gBAAiB,WACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClB3B,8BAA8B,EAC9BqB,iBAAiB,EACjB7B,yBAAyB,EACzB8C,SAAS,EACTxV,kBAAkB,EAClBiU,mCAAmC,EACnCc,uBAAuB,EACvBW,8BAA8B,GAEhC5V,eAAgB,CACdsW,eAAgB,CACd9a,QAAS,GACTiQ,UAAW,aACX+C,WAAY,WACZlG,SAAU,KAEZoP,cAAe,CACbmH,SAAU,SAEZvR,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,UAEZ0jB,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZyE,UAAW,OACXhd,aAAc,MACd+P,SAAU,SACVqjB,aAAc,aACdtR,aAAc,WACdzS,MAAO,WAETmX,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,OACR+J,aAAc,WACdC,WAAY,UAEdhP,YAAa,CACX1D,MAAO,OACPhgB,QAAS,SACT+f,SAAU,QAEZiX,kBAAmB,CACjBtW,SAAU,SACVqjB,aAAc,aACdtR,aAAc,cCvEU,CAC5B8K,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,WACtBye,UAAWze,WACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBlB,4BAA4B,EAC5BrT,kBAAkB,EAClB0S,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPT,MAAO,IACPmJ,OAAQ,KAEVlF,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,WAET4b,cAAe,CACblc,QAAS,OACTM,MAAO,UCzEe,CAC1Bud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,iCACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBX,cAAc,EACdnB,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB,mBAAoB,CAClBzS,SAAU,GACVmJ,WAAY,QACZxI,SAAU,SACV+R,aAAc,YAEhB,cAAe,CACb1S,SAAU,GACVmJ,WAAY,QACZT,OAAQ,YACRF,WAAY,cACZC,aAAc,EACdxI,MAAO,OACPiJ,WAAY,yCACZ5I,WAAY,IACZX,QAAS,WACTG,OAAQ,gCACR6R,QAAS,KAGblO,cAAe,CACbxD,MAAO,QACP0I,OAAQ,GACR3I,SAAU,GACVmJ,WAAY,UACZ3J,MAAO,IACP5O,aAAc,GACd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAGZkS,eAAgB,CACd,UAAW,CACT,oBAAqB,CACnB+H,eAAgB,cAGpBhjB,MAAO,IACPmJ,OAAQ,KAEVkT,cAAe,CACb77B,SAAU,WACVigB,MAAO,UACPsI,OAAQ,GACRK,KAAM,GACN5I,SAAU,GACVmJ,WAAY,QAEd2R,SAAU,CACR,UAAW,CACT76B,QAAS,QACTD,SAAU,WACVyiC,gBAAiB,wDACjB5iB,WAAY,IACZ8I,OAAQ,IACRnJ,MAAO,OACPe,QAAS,SC/Ea,CAC5Bid,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,IACb4I,KAAM,eACNlD,gBAAiB,kBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,WAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnBZ,iBAAiB,EACjBlB,4BAA4B,EAC5BX,yBAAyB,GAE3B5S,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGbgE,YAAa,CACXgF,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,OACPT,MAAO,IACPmJ,OAAQ,KAEVlF,cAAe,CACbzD,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACR3oB,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACPK,WAAY,IACZ+H,cAAe,GAEjBwT,cAAe,CACblc,QAAS,OACTM,MAAO,UCvEa,CACxBud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,IACfxf,cAAe,CACbL,qBAAsBxe,qBACtBye,UAAWze,YAEbmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACdjb,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,mBClEc,CAC1B8U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,GACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,mBACtBye,UAAWze,QACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,GAE9BvT,eAAgB,CACdsO,oBAAqB,CACnB9S,QAAS,QACTE,UAAW,EACX,cAAe,CACbC,OAAQ,qBACRG,MAAO,UACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UACZkZ,wBAAyB,OACzBC,eAAgB,OAChB7Z,aAAc,MACdD,WAAY,OACZ7I,QAAS,WACT+I,OAAQ,aAEV,mBAAoB,CAClBzI,MAAO,OACPD,SAAU,GACVmJ,WAAY,WACZxJ,QAAS,UAGb8a,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,GAEXkb,eAAgB,CACd3N,MAAO,OACP1M,UAAW,OACXhB,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,OAEVmT,cAAe,CACb5b,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAEd1F,cAAe,CACbnD,WAAY,IACZN,SAAU,GACVmJ,WAAY,MACZR,OAAQ,GACRhI,SAAU,SACV+H,OAAQ,iBAEV0O,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,QAEVhF,YAAa,CACX1D,MAAO,OACPD,SAAU,UC9EM,CACpBwd,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,oBACL+9B,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjB3Z,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfrW,mBAAmB,EACnBnJ,cAAe,CACbL,qBAAsBxe,WACtBye,UAAWze,QACX0e,kBAAmB1e,6LAErBmgB,gBAAiB,CACfsU,8BAA8B,EAC9BI,kBAAkB,EAClBI,WAAW,EACXS,mBAAmB,EACnB9B,4BAA4B,EAC5BkB,iBAAiB,EACjBiB,SAAS,EACTC,sBAAsB,GAExB3V,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,QACPkN,UAAW,QACX/M,QAAS,GAEXkc,cAAe,CACb77B,SAAU,WACV2f,QAAS,MACT6I,WAAY,UACZkE,UAAW,QAEbjJ,cAAe,CACb5D,UAAW,OACXc,SAAU,SACViN,UAAW,OACX5N,SAAU,OACVM,WAAY,IACZL,MAAO,WAETmX,SAAU,CACRp3B,SAAU,WACV6oB,IAAK,MACLlI,SAAU,SACV+R,aAAc,WACdlT,MAAO,QACPmJ,OAAQ,OACR3I,SAAU,OACVC,MAAO,WAET0D,YAAa,CACX3D,SAAU,OACVC,MAAO,WCzDAgkB,EAAqB,CCDR,CACxBzG,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,iBACL+9B,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,sBACjB3Z,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,gCACtBye,UAAWze,UAEbmgB,gBAAiB,CACf+S,cAAc,EACd+B,WAAW,EACXH,iBAAiB,EACjBY,mBAAmB,EACnBnB,0BAA0B,EAC1BD,YAAY,EACZyB,SAAS,EACTT,uBAAuB,GAEzBjV,eAAgB,CACdsN,SAAU,CACRpR,gBAAiB,SAEnBsD,YAAa,CACX1D,MAAO,UACP+iB,SAAU,IACVC,SAAU,aACVxjB,aAAc,GACdO,SAAU,IAEZya,eAAgB,CACd/R,OAAQ,OACRF,WAAY,OACZ1I,OAAQ,QACRyiB,YAAa,OACbtiB,MAAO,QAETwD,cAAe,CACbzD,SAAU,GACVM,WAAY,IACZ+H,cAAe,EACfpI,MAAO,WAET4b,cAAe,CACblc,QAAS,qBACTqjB,SAAU,yBACVxjB,MAAO,IACP2J,WAAY,KAEdiO,SAAU,CACRnX,MAAO,QACPD,SAAU,GACVpP,aAAc,GAEhBoiB,aAAc,CACZlK,MAAO,GACPP,OAAQ,GACR5I,QAAS,oBACTK,SAAU,GACVM,WAAY,OACZmI,aAAc,MClEO,CACzB+U,cAAezb,EAAAA,EAA2BC,mBAC1C5nB,IAAK,YACL2mC,KAAM,WACNlD,gBAAiB,WACjBqE,oBAAqB,EACrBvf,cAAe,CACbL,qBAAsBxe,iBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTtC,8BAA8B,EAC9BlT,kBAAkB,EAClB0S,yBAAyB,EACzBuB,mCAAmC,EACnCc,uBAAuB,GAEzBjV,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,OACRiO,UAAW,OACXvO,MAAO,IACPoO,UAAW,IACXjO,QAAS,WACTgB,SAAU,UAEZ8Q,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiO,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZR,OAAQ,OACRhI,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV2I,OAAQ,OACR/X,aAAc,OAEhB+S,YAAa,CACX1D,MAAO,OACPhgB,QAAS,eACT+f,SAAU,OACVN,SAAU,EACV9O,aAAc,QAEhBqmB,kBAAmB,CACjBh3B,QAAS,WCzDFikC,EAA4B,CACvCvB,EACAC,EACAC,EACAC,EACAC,ECfuB,CACvBvF,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,IACb4I,KAAM,eACN5/B,UAAW,gBACX08B,gBAAiB,sBACjBtb,UAAW,sCACX2B,mBAAoB,IACpBigB,eAAgB,eAChBpjC,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfxf,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,qBAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBP,kBAAkB,EAClByL,0BAA0B,EAC1BC,qBAAqB,EACrBzL,iBAAiB,EACjB0L,WAAW,EACXxL,cAAc,EACdL,kBAAkB,EAClBM,WAAW,GAEb5U,eAAgB,CACd0Y,WAAY,CACV,mBAAoB,CAClBrR,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,kBACX,aAAc,CACZ5P,aAAc,IAEhB,UAAW,CACToP,SAAU,KAGd,wBAAyB,CACvB/f,QAAS,OACT6oB,MAAO,GACPD,IAAK,GACL5I,MAAO,QACPsI,OAAQ,QACRK,KAAM,QACNjJ,QAAS,GACTK,SAAU,EACVhgB,SAAU,WACVwrB,cAAe,SACf7a,WAAY,SACZF,eAAgB,SAChB+O,MAAO,GACPmJ,OAAQ,GACRtI,gBAAiB,UACjBsR,QAAS,GACTlJ,aAAc,GAEhB,cAAe,CACbzoB,SAAU,WACVigB,MAAO,QACP4I,IAAK,GACLD,KAAM,GACN3oB,QAAS,OACT0f,QAAS,GACT6L,cAAe,SACf7a,WAAY,SACZF,eAAgB,SAChB+O,MAAO,IACPmJ,OAAQ,IACR3I,SAAU,EACVK,gBAAiB,UACjBsR,QAAS,GACTlJ,aAAc,EACd,oBAAqB,CACnB5I,UAAW,GACX0kB,OAAQ,YAGZ,cAAe,CACbvkC,SAAU,WACVigB,MAAO,QACP4I,IAAK,MACLD,KAAM,MACNjJ,QAAS,GACTa,UAAW,wBACXvgB,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZF,eAAgB,SAChB+O,MAAO,IACPmJ,OAAQ,IACR3I,SAAU,EACVK,gBAAiB,UACjBsR,QAAS,GACTlJ,aAAc,EACd,oBAAqB,CACnB5I,UAAW,GACX0kB,OAAQ,YAGZ,cAAe,CACbvkC,SAAU,WACVigB,MAAO,QACP4I,IAAK,IACLC,MAAO,GACPnJ,QAAS,GACT1f,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZF,eAAgB,SAChB+O,MAAO,IACPmJ,OAAQ,IACR3I,SAAU,EACVK,gBAAiB,UACjBsR,QAAS,GACTlJ,aAAc,EACd,oBAAqB,CACnB5I,UAAW,GACX0kB,OAAQ,eC9HD,CACf/G,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,WACNlD,gBAAiB,mBACjBtb,UAAW,kCACX4hB,eAAgB,WAChBpjC,YAAY,EACZmjB,mBAAoB,IACpBge,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,gBACtBye,UAAWze,iBAEbmgB,gBAAiB,CACfugB,wBAAyB,sBACzBhL,mBAAmB,EACnBN,kBAAkB,EAClBP,kBAAkB,EAClB0L,qBAAqB,EACrBzL,iBAAiB,EACjBR,YAAY,EACZW,WAAW,EACXP,mBAAmB,GAErBrU,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClClc,SAAU,qBACVnB,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,EACd3I,OAAQ,oBACRH,QAAS,OACT3f,SAAU,uBAEZ,uBAAwB,CACtBA,SAAU,WACV4oB,KAAM,EACNC,IAAK,EACLrJ,MAAO,OACPQ,SAAU,GACVC,MAAO,QACPF,aAAc,oBACduI,YAAa,IAEf,qBAAsB,CACpBO,IAAK,GACL7oB,SAAU,YAEZ,oBAAqB,CACnB4oB,KAAM,GACNC,IAAK,IACL7oB,SAAU,WACVwf,MAAO,IACPQ,SAAU,GACVM,WAAY,OACZL,MAAO,SAET,iBAAkB,CAChB2I,KAAM,GACNC,IAAK,IACL7I,SAAU,GACVhgB,SAAU,WACVigB,MAAO,SAET,mBAAoB,CAClBjgB,SAAU,WACV4oB,KAAM,GACNC,IAAK,IACL/I,OAAQ,OACR2I,aAAc,qBC1EJ,CAChB+U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,kBACNlD,gBAAiB,wBACjB3Z,mBAAoB,IACpB/iB,UAAW,mBACXijB,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,aACtBye,UAAWze,cAEbmgB,gBAAiB,CACfugB,wBAAyB,mBACzBvL,UAAU,EACVO,mBAAmB,EACnB4K,0BAA0B,EAC1BlL,kBAAkB,EAClBd,YAAY,EACZO,kBAAkB,EAClBI,WAAW,EACX0L,aAAa,GAEftgB,eAAgB,CACd0Y,WAAY,CACVhd,UAAW,OACXjP,aAAc,OACd,mCAAoC,CAClC4O,MAAO,mBACPmJ,OAAQ,GACRtI,gBAAiB,WAEnB,oBAAqB,CACnBrgB,SAAU,WACV6oB,IAAK,MACLD,KAAM,GACNpI,UAAW,oBAEb,oBAAqB,CACnBxgB,SAAU,WACV6oB,IAAK,EACLD,KAAM,EACN5I,SAAU,GACVR,MAAO,IACPS,MAAO,SAET,mBAAoB,CAClBjgB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACN5I,SAAU,GACVC,MAAO,YCvDM,CACnBud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb0F,gBAAiB,gCACjBkD,KAAM,eACN5/B,UAAW,qBACX+iB,mBAAoB,IACpBE,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,gBACtBye,UAAWze,iBAEbmgB,gBAAiB,CACfugB,wBAAyB,qBACzBvL,UAAU,EACVO,mBAAmB,EACnB6K,qBAAqB,EACrBzL,iBAAiB,EACjBR,YAAY,EACZO,kBAAkB,EAClBI,WAAW,EACX0L,aAAa,EACb1R,YAAajvB,WAEfqgB,eAAgB,CACd0Y,WAAY,CACVhd,UAAW,OACXjP,aAAc,OACd,mCAAoC,CAClC4O,MAAO,mBACPmJ,OAAQ,IACRtI,gBAAiB,WAEnB,oBAAqB,CACnBrgB,SAAU,WACV6oB,IAAK,GACLD,KAAM,IAER,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,IACPQ,SAAU,GACVC,MAAO,QACPK,WAAY,QAEd,iBAAkB,CAChBtgB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,GACV4I,KAAM,GACNpJ,MAAO,IACPS,MAAO,SAET,mBAAoB,CAClBjgB,SAAU,WACV4oB,KAAM,GACNC,IAAK,IACL5I,MAAO,QACPT,MAAO,IACPa,gBAAiB,QACjBP,OAAQ,OACR6I,OAAQ,GACR3I,SAAU,kBACVyI,aAAc,kBAEhB,oBAAqB,CACnBzoB,SAAU,WACV4oB,KAAM,IACNC,IAAK,IACLrJ,MAAO,IACPS,MAAO,QACPI,gBAAiB,QACjBP,OAAQ,OACR6I,OAAQ,GACRF,aAAc,qBChFP,CACb+U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,YACjB18B,UAAW,eACX+iB,mBAAoB,IACpBE,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,SACtBye,UAAWze,UAEbmgB,gBAAiB,CACfgV,UAAU,EACVO,mBAAmB,EACnBpB,YAAY,EACZO,kBAAkB,EAClBI,WAAW,EACX0L,aAAa,EACb1R,YAAajvB,WAEfqgB,eAAgB,CACd0Y,WAAY,CACVhd,UAAW,OACXjP,aAAc,OACd,mCAAoC,CAClC+X,OAAQ,GACRnJ,MAAO,oBAET,oBAAqB,CACnBxf,SAAU,WACV6oB,IAAK,MACLD,KAAM,GACNpI,UAAW,oBAEb,oBAAqB,CACnBxgB,SAAU,WACV6oB,IAAK,MACLD,KAAM,GACN5I,SAAU,GACVC,MAAO,QACPO,UAAW,mBACXhB,MAAO,KAET,mBAAoB,CAClBxf,SAAU,WACV6oB,IAAK,MACLD,KAAM,IACNjJ,QAAS,WACTG,OAAQ,OACRG,MAAO,QACP0I,OAAQ,OACRnJ,MAAO,OACPiJ,aAAc,GACdpI,gBAAiB,UACjBG,UAAW,mBACXR,SAAU,mBAEZ,oBAAqB,CACnBhgB,SAAU,WACV6oB,IAAK,MACLD,KAAM,IACN9I,OAAQ,OACRH,QAAS,WACT8I,aAAc,GACdxI,MAAO,QACPO,UAAW,uBCtEA,CACjBgd,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,MACb4I,KAAM,eACNlD,gBAAiB,sBACjBtb,UAAW,sCACX2B,mBAAoB,IACpBigB,eAAgB,eAChBhjC,UAAW,cACXJ,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,2BACtBye,UAAWze,4BAEbmgB,gBAAiB,CACfugB,wBAAyB,cACzB7L,kBAAkB,EAClBO,kBAAkB,EAClBkL,0BAA0B,EAC1BE,WAAW,EACXvL,WAAW,GAEb5U,eAAgB,CACd0Y,WAAY,CACVpU,aAAc,EACd,mCAAoC,CAClCjJ,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACVwf,MAAO,OACPmJ,OAAQ,IACRE,IAAK,GAEP,mBAAoB,CAClB7oB,SAAU,WACVwf,MAAO,IACPQ,SAAU,GACV4I,KAAM,GACNC,IAAK,IACL5I,MAAO,QACPK,WAAY,KAEd,4BAA6B,CAC3BtgB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN3I,MAAO,YCpDQ,CACrBud,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,eACNlD,gBAAiB,oBACjB18B,UAAW,kBACX+iB,mBAAoB,IACpBnjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,YACtBye,UAAWze,aAEbmgB,gBAAiB,CACf2U,iBAAiB,EACjBY,mBAAmB,EACnBb,kBAAkB,EAClByL,0BAA0B,EAC1BC,qBAAqB,EACrBjM,YAAY,EACZW,WAAW,GAEb5U,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,oBAEV,oBAAqB,CACnBC,KAAM,GACNC,IAAK,IACL7oB,SAAU,WACVsgB,WAAY,OACZL,MAAO,SAET,iBAAkB,CAChB2I,KAAM,GACNC,IAAK,IACL7I,SAAU,GACVhgB,SAAU,WACVigB,MAAO,SAET,mBAAoB,CAClBI,gBAAiB,UACjBrgB,SAAU,WACV4oB,KAAM,GACNC,IAAK,IACLlJ,QAAS,EACTK,SAAU,GACVF,OAAQ,OACRG,MAAO,QACPwI,aAAc,OCyBtB,EA7EqB,CACnB+U,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,KACb4I,KAAM,wBACN5/B,UAAW,iBACX08B,gBAAiB,iBACjBtb,UAAW,qCACX2B,mBAAoB,IACpBwgB,kBAAmB,IACnBP,eAAgB,iBAChBpjC,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,KAAM,MAChBC,QAAS,CAAC,KAAM,MAChBzf,cAAe,CACbL,qBAAsBxe,oCACtBye,UAAWze,qCAEbmgB,gBAAiB,CACfugB,wBAAyB,iBACzB7L,kBAAkB,EAClBD,uBAAuB,EACvBc,mBAAmB,EACnB8K,WAAW,EACXtK,cAAc,EACdC,WAAW,EACX0K,WAAW,EACX5L,WAAW,GAEb5U,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACV2oB,OAAQ,IACRnJ,MAAO,IACPqJ,IAAK,GACLD,KAAM,GACNH,aAAc,KACd,wBAAyB,CACvBE,OAAQ,IACRnJ,MAAO,IACPxf,SAAU,WACV6oB,IAAK,EACLJ,aAAc,KACdmc,UAAW,UAGf,wBAAyB,CACvB5kC,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,EACVM,WAAY,IACZd,MAAO,IACPS,MAAO,SAET,4BAA6B,CAC3BjgB,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,UACPK,WAAY,IACZN,SAAU,OCoBpB,EA3F4B,CAC1Bwd,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,sBACNlD,gBAAiB,kBACjBsG,eAAgB,kBAChBjgB,mBAAoB,IACpB/iB,UAAW,oBACXijB,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,IAAM,KAChBzf,cAAe,CACbL,qBAAsBxe,qCACtBye,UAAWze,sCAEbmgB,gBAAiB,CACfugB,wBAAyB,oBACzBvL,UAAU,EACVO,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBI,cAAc,EACdrB,kBAAkB,EAClBD,uBAAuB,EACvBK,WAAW,EACXuL,WAAW,GAEbngB,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,kBACPmJ,OAAQ,kBACRF,aAAc,KACd,wBAAyB,CACvBE,OAAQ,kBACRnJ,MAAO,kBACPxf,SAAU,WACV6oB,IAAK,EACLJ,aAAc,KAEd,QAAS,CACPjJ,MAAO,kBACPmJ,OAAQ,kBACRhvB,WAAY,eACZirC,UAAW,WAIjB,wBAAyB,CACvB5kC,SAAU,WACV6oB,IAAK,GACLD,KAAM,IACN,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,GACVM,WAAY,IACZd,MAAO,IACPS,MAAO,aAET,4BAA6B,CAC3BjgB,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,YACPK,WAAY,IACZN,SAAU,GACVR,MAAO,IACPvf,QAAS,QACT,qBAAsB,EACtB,qBAAsB,WACtB0gB,SAAU,SACV,gBAAiB,gBCO3B,EA3F2B,CACzB6c,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,qBACNlD,gBAAiB,kBACjBsG,eAAgB,kBAChBjgB,mBAAoB,IACpB/iB,UAAW,oBACXijB,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,IAAM,KAChBzf,cAAe,CACbL,qBAAsBxe,oCACtBye,UAAWze,qCAEbmgB,gBAAiB,CACfugB,wBAAyB,oBACzBvL,UAAU,EACVO,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBI,cAAc,EACdrB,kBAAkB,EAClBD,uBAAuB,EACvBK,WAAW,EACXuL,WAAW,GAEbngB,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,kBACPmJ,OAAQ,kBACRF,aAAc,KACd,wBAAyB,CACvBE,OAAQ,kBACRnJ,MAAO,kBACPxf,SAAU,WACV6oB,IAAK,EACLJ,aAAc,KAEd,QAAS,CACPjJ,MAAO,kBACPmJ,OAAQ,kBACRhvB,WAAY,eACZirC,UAAW,WAIjB,wBAAyB,CACvB5kC,SAAU,WACV6oB,IAAK,GACLD,KAAM,IACN,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,GACVM,WAAY,IACZd,MAAO,IACPS,MAAO,WAET,4BAA6B,CAC3BjgB,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,YACPK,WAAY,IACZN,SAAU,GACVR,MAAO,IACPvf,QAAS,QACT,qBAAsB,EACtB,qBAAsB,WACtB0gB,SAAU,SACV,gBAAiB,gBCG3B,EAvF4B,CAC1B6c,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,sBACNlD,gBAAiB,kBACjBsG,eAAgB,kBAChBjgB,mBAAoB,IACpB/iB,UAAW,oBACXijB,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,IAAM,KAChBzf,cAAe,CACbL,qBAAsBxe,qCACtBye,UAAWze,sCAEbmgB,gBAAiB,CACfugB,wBAAyB,oBACzBvL,UAAU,EACVO,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBI,cAAc,EACdrB,kBAAkB,EAClBD,uBAAuB,EACvBK,WAAW,EACXuL,WAAW,GAEbngB,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNH,aAAc,KACd,wBAAyB,CACvBzoB,SAAU,WACV6oB,IAAK,EACLJ,aAAc,KAEd,QAAS,CACPjJ,MAAO,kBACPmJ,OAAQ,kBACRhvB,WAAY,eACZirC,UAAW,WAIjB,wBAAyB,CACvB5kC,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,GACVM,WAAY,IACZd,MAAO,IACPS,MAAO,aAET,4BAA6B,CAC3BjgB,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,YACPK,WAAY,IACZN,SAAU,GACVR,MAAO,IACPvf,QAAS,QACT,qBAAsB,EACtB,qBAAsB,WACtB0gB,SAAU,SACV,gBAAiB,gBCO3B,EAvF2B,CACzB6c,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,qBACNlD,gBAAiB,kBACjBsG,eAAgB,kBAChBjgB,mBAAoB,IACpB/iB,UAAW,oBACXijB,WAAY,GACZrjB,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,IAAM,KAChBzf,cAAe,CACbL,qBAAsBxe,oCACtBye,UAAWze,qCAEbmgB,gBAAiB,CACfugB,wBAAyB,oBACzBvL,UAAU,EACVO,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBI,cAAc,EACdrB,kBAAkB,EAClBD,uBAAuB,EACvBK,WAAW,EACXuL,WAAW,GAEbngB,eAAgB,CACd0Y,WAAY,CACV,mCAAoC,CAClCrd,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNH,aAAc,KACd,wBAAyB,CACvBzoB,SAAU,WACV6oB,IAAK,EACLJ,aAAc,KAEd,QAAS,CACPjJ,MAAO,kBACPmJ,OAAQ,kBACRhvB,WAAY,eACZirC,UAAW,WAIjB,wBAAyB,CACvB5kC,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN,oBAAqB,CACnB5oB,SAAU,WACV6oB,IAAK,GACL7I,SAAU,GACVM,WAAY,IACZd,MAAO,IACPS,MAAO,WAET,4BAA6B,CAC3BjgB,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,YACPK,WAAY,IACZN,SAAU,GACVR,MAAO,IACPvf,QAAS,QACT,qBAAsB,EACtB,qBAAsB,WACtB0gB,SAAU,SACV,gBAAiB,gBCkC3B,EAlHqB,CACnB6c,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,mBACNlD,gBAAiB,aACjBtb,UAAW,kCACX2B,mBAAoB,IACpBigB,eAAgB,aAChBhjC,UAAW,aACXJ,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,4CACtBye,UAAWze,6CAEbmgB,gBAAiB,CACfugB,wBAAyB,aACzB7L,kBAAkB,EAClBD,uBAAuB,EACvBW,eAAe,EACfsL,WAAW,EACX3K,cAAc,EACdsK,WAAW,EACXvL,WAAW,EACXE,UAAU,EACVO,mBAAmB,GAErBrV,eAAgB,CACd0Y,WAAY,CACVpU,aAAc,EACd,mCAAoC,CAClCjJ,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WAEV2oB,OAAQ,IACRnJ,MAAO,IACPoJ,KAAM,GACNC,IAAK,GAEL,wBAAyB,CACvBF,OAAQ,IACRnJ,MAAO,IACPxf,SAAU,WACVyoB,aAAc,EACd3I,OAAQ,mBAGZ,4BAA6B,CAC3B0I,WAAY,qFACZjI,QAAS,KACTf,MAAO,OACPmJ,OAAQ,OACR1oB,QAAS,QACTD,SAAU,WACVm1B,OAAQ,EACR1M,aAAc,GAEhB,oBAAqB,CACnBzoB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNuM,OAAQ,EACR,wBAAyB,CACvBxU,SAAU,SACVgI,OAAQ,mBACRnJ,MAAO,mBACPiJ,aAAc,EACd,QAAS,CACPmc,UAAW,QACXplB,MAAO,oBACPmJ,OAAQ,uBAId,wBAAyB,CACvB3oB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,EACR,oBAAqB,CACnBn1B,SAAU,WACV6oB,IAAK,GACL7I,SAAU,EACVM,WAAY,IACZd,MAAO,IACPS,MAAO,QACP4kB,aAAc,WACd,qBAAsB,WACtB,qBAAsB,EACtB7B,SAAU,KAEZ,4BAA6B,CAC3BhjC,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,UACPK,WAAY,IACZN,SAAU,EACV6kB,aAAc,WACd,qBAAsB,WACtB,qBAAsB,EACtB7B,SAAU,SC3Gd8B,EAAgB,CACpBtH,cAAezb,EAAAA,EAA2BC,mBAC1CmW,YAAa,EACb4I,KAAM,oBACNlD,gBAAiB,aACjBtb,UAAW,kCACX2B,mBAAoB,IACpBigB,eAAgB,aAChBhjC,UAAW,aACXJ,YAAY,EACZmhC,oBAAqB,EACrBC,QAAS,CAAC,IAAK,KACfC,QAAS,CAAC,EAAG,GACbzf,cAAe,CACbL,qBAAsBxe,6CACtBye,UAAWze,8CAEbmgB,gBAAiB,CACfugB,wBAAyB,aACzB7L,kBAAkB,EAClBD,uBAAuB,EACvBY,gBAAgB,EAChBqL,WAAW,EACX3K,cAAc,EACdsK,WAAW,EACXvL,WAAW,EACXE,UAAU,EACVO,mBAAmB,GAErBrV,eAAgB,CACd0Y,WAAY,CACVpU,aAAc,EACd,mCAAoC,CAClCjJ,MAAO,mBACPmJ,OAAQ,mBACRH,WAAY,sBAEd,qBAAsB,CACpBxoB,SAAU,WAEV2oB,OAAQ,IACRnJ,MAAO,IACPoJ,KAAM,GACNC,IAAK,GAEL,wBAAyB,CACvBF,OAAQ,IACRnJ,MAAO,IACPxf,SAAU,WACVyoB,aAAc,EACd3I,OAAQ,mBAGZ,4BAA6B,CAC3B0I,WAAY,qFACZjI,QAAS,KACTf,MAAO,OACPmJ,OAAQ,OACR1oB,QAAS,QACTD,SAAU,WACVm1B,OAAQ,EACR1M,aAAc,GAEhB,oBAAqB,CACnBzoB,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNuM,OAAQ,EACR,wBAAyB,CACvBxU,SAAU,SACVgI,OAAQ,mBACRnJ,MAAO,mBACPiJ,aAAc,EACd,QAAS,CACPmc,UAAW,QACXplB,MAAO,oBACPmJ,OAAQ,uBAId,wBAAyB,CACvB3oB,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNuM,OAAQ,EACR,oBAAqB,CACnBn1B,SAAU,WACV6oB,IAAK,GACL7I,SAAU,EACVM,WAAY,IACZd,MAAO,IACPS,MAAO,QACP4kB,aAAc,WACd,qBAAsB,WACtB,qBAAsB,EACtB7B,SAAU,KAEZ,4BAA6B,CAC3BhjC,SAAU,WACV6oB,IAAK,EACLhJ,UAAW,EACXI,MAAO,UACPK,WAAY,IACZN,SAAU,EACV6kB,aAAc,WACd,qBAAsB,WACtB,qBAAsB,EACtB7B,SAAU,SCrGP+B,EAA2B,CACtCC,EACAC,EACAC,EACAC,EDwGF,ECtGEC,EACAC,GAGWC,EAAsB,CDkGnC,EChGEF,EACAC,GCjBWE,EAA8B,CCFX,CAC9B/H,cAAezb,EAAAA,EAA2BG,4BAC1C9nB,IAAK,oBACL+G,UAAW,oBACX4/B,KAAM,qBACNlD,gBAAiB,qBACjBlb,cAAe,CACbL,qBAAsBxe,uBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTvB,mCAAmC,EACnCkN,kBAAkB,EAClBpM,uBAAuB,EACvBqM,oBAAoB,EACpBC,wBAAyB,KACzBxhB,mBAAoB,KAEtBC,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,OACRiO,UAAW,OACXvO,MAAO,QACPkN,UAAW,QACX/M,QAAS,YAEX8R,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiO,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZuD,UAAW,OACX/L,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV0M,UAAW,QAEb/I,YAAa,CACX1D,MAAO,OACPD,SAAU,OACV/f,QAAS,eACTyf,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,UChEwB,CACrCu9B,cAAezb,EAAAA,EAA2BI,mCAC1C/nB,IAAK,4BACL+G,UAAW,4BACX4/B,KAAM,4BACNlD,gBAAiB,4BACjBlb,cAAe,CACbL,qBAAsBxe,uBACtBye,UAAWze,GACX64B,eAAgB74B,gBAElBmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTvB,mCAAmC,EACnCkN,kBAAkB,EAClB/I,iBAAiB,EACjBC,YAAawG,EACb9J,uBAAuB,EACvBqM,oBAAoB,EACpBC,wBAAyB,KACzBxhB,mBAAoB,KAEtBC,eAAgB,CACdsW,eAAgB,CACd3a,OAAQ,OACRiO,UAAW,OACXvO,MAAO,QACPkN,UAAW,QACX/M,QAAS,YAEX8R,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiO,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZuD,UAAW,OACX/L,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV0M,UAAW,QAEb/I,YAAa,CACX1D,MAAO,OACPD,SAAU,OACV/f,QAAS,eACTyf,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,QAEXy8B,YAAa,CACX/T,OAAQ,OC1EwB,CACpC6U,cAAezb,EAAAA,EAA2BK,kCAC1ChoB,IAAK,2BACL+G,UAAW,2BACX4/B,KAAM,2BACNlD,gBAAiB,2BACjBlb,cAAe,CACbL,qBAAsBxe,uBACtBye,UAAWze,IAEbmgB,gBAAiB,CACfiV,kBAAkB,EAClBN,iBAAiB,EACjBiB,SAAS,EACTvB,mCAAmC,EACnCkN,kBAAkB,EAClBpM,uBAAuB,EACvBqM,oBAAoB,EACpBC,wBAAyB,KACzBxhB,mBAAoB,KAEtBC,eAAgB,CACdyY,mBAAoB,CAClB9c,OAAQ,oBACR9f,SAAU,WACV+f,aAAc,OACd0I,aAAc,gBACdjJ,MAAO,SAETib,eAAgB,CACd3a,OAAQ,mBACRN,MAAO,QACPkN,UAAW,QACX/M,QAAS,YAEX8R,SAAU,CACR3R,OAAQ,iBACRH,QAAS,QACTK,SAAU,GACVM,WAAY,IACZ6I,WAAY,EACZV,aAAc,EACdC,OAAQ,YACRzoB,QAAS,SACTggB,MAAO,UACP0R,QAAS,OACT3xB,SAAU,SACV4tB,UAAW,IAEbiP,WAAY,CACVnU,OAAQ,mBACR3I,aAAc,OACd0I,aAAc,EACdJ,cAAe,EACf,WAAY,CACVQ,IAAK,GACLD,KAAM,MACN9I,OAAQ,oBACRS,QAAS,KACTvgB,SAAU,WACVyoB,aAAc,IAGlBoT,cAAe,CACbnT,OAAQ,mBAEVhF,aAAc,CACZpD,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZuD,UAAW,OACX/L,SAAU,UAEZyW,SAAU,CACRzW,SAAU,SACVV,MAAO,UACPD,SAAU,OACV0M,UAAW,QAEb/I,YAAa,CACX1D,MAAO,OACPD,SAAU,OACV/f,QAAS,eACTyf,SAAU,GAEZuX,kBAAmB,CACjBh3B,QAAS,WCtFF0lC,EAA2B,CCAX,CAC3BnI,cAAezb,EAAAA,EAA2BE,yBAC1C7nB,IAAK,iBACL+G,UAAW,iBACX4/B,KAAM,kBACNlD,gBAAiB,kBACjBlb,cAAe,CACbL,qBAAsBxe,oBACtBye,UAAWze,IAEbmgB,gBAAiB,CAAC,EAClBE,eAAgB,CAAC,ICAN0a,GAAyB+G,EAAA,IAAA33B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA23B,EACnCzkB,EAAAA,EAAsBG,eAAiB2gB,GACvC9gB,EAAAA,EAAsBE,YAAcqhB,GACpCvhB,EAAAA,EAAsBI,QAAU4hB,GAChChiB,EAAAA,EAAsBC,cAAgBwiB,GACtCziB,EAAAA,EAAsBK,kBAAoBuiB,GAC1C5iB,EAAAA,EAAsBM,UAAYwiB,GAClC9iB,EAAAA,EAAsBO,iBAAmBwiB,GACzC/iB,EAAAA,EAAsBQ,MAAQ2jB,GAC9BnkB,EAAAA,EAAsBS,WAAamjB,GACnC5jB,EAAAA,EAAsBU,mBAAqB0jB,IAA2Bt3B,EAAAA,EAAAA,GAAA23B,EACtEzkB,EAAAA,EAAsBW,gBAAkB6jB,I,oCCjB9B3hB,EAA2B,CACtC,cACA,OACA,kBACA,aACA,sBACA,UACA,WA4EIia,EAAwB,WAAH,IAAyB4H,GAAzB5rC,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAuB,CAAC,GAAlBkoC,QAAAA,OAAO,IAAA0D,EAAG,GAAEA,EAAA,MAAa,CACxDpZ,SAAU0V,EAAQ,GAClBzV,UAAWyV,EAAQ,GACpB,EAqCYlF,EAAsB,CACjCD,wBA5G8B,SAAAta,GAAQ,OAAIA,EAASmb,eAAgB,EA6GnEG,4BArGkC,SAACtb,EAAU+b,EAAWliC,GACxD,IACIitB,EADI7G,EAAmCD,EAAnCC,cAAesB,EAAoBvB,EAApBuB,gBAGjBkU,EAAc57B,EAAKsH,UAAU8e,EAAcJ,WAC3CujB,EAAgBvpC,EAAKsH,UAAUC,4CAAmD,CAAEq0B,YAAAA,IAE1F,OAAQsG,GACN,KAAKtd,EAAAA,EAAsBG,eAC3B,KAAKH,EAAAA,EAAsBC,cAC3B,KAAKD,EAAAA,EAAsBK,kBAEvBgI,EADEvF,EAAgB8U,WAEhBl8B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,2BAA0BnC,SAAE8mC,IAGtC,KAEV,MACF,KAAK3kB,EAAAA,EAAsBE,YAEvBmI,EADE2O,GAEAt7B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,2BAA0BnC,SAAE8mC,KAI5CjpC,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,2BAA0BnC,SAAEzC,EAAKsH,UAAU8e,EAAcL,wBAG7E,MACF,KAAKnB,EAAAA,EAAsBI,QACzBiI,GACE1pB,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,2BAA0BnC,SAAEzC,EAAKsH,UAAU8e,EAAcJ,cACzE1lB,EAAAA,EAAAA,KAAA,QACEsE,UAAU,6BACVqoB,MAAOjtB,EAAKsH,UAAU8e,EAAcL,sBAAsBtjB,SAEzDzC,EAAKsH,UAAU8e,EAAcL,2BAGpC,MACF,KAAKnB,EAAAA,EAAsBQ,MAC3B,KAAKR,EAAAA,EAAsBS,WACzB4H,GACE3sB,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,2BAA0BnC,SAAEzC,EAAKsH,UAAU8e,EAAcL,wBAE3E,MACF,KAAKnB,EAAAA,EAAsBU,mBAC3B,KAAKV,EAAAA,EAAsBW,gBACzB0H,EAAQ,KACR,MACF,QACEA,EAAQjtB,EAAKsH,UAAUC,cAI3B,OAAO0lB,CACT,EA4CEyU,sBAAAA,EACAC,6BAxCmC,SAACxb,EAAUsV,GAC9C,IAAA+N,EAAwC9H,EAAsBvb,GAASsjB,EAAAD,EAA/DtZ,SAAAA,OAAQ,IAAAuZ,EAAG,EAACA,EAAAC,EAAAF,EAAErZ,UAAAA,OAAS,IAAAuZ,EAAG,EAACA,EAEnC,GAAIjO,EAAO,CACT,IAAMkO,EAAgBlO,EAAMmO,WAAanO,EAAMmO,UAAU5K,cAAgBvD,EAAMmO,UAAU5K,aAAaE,aAAgBzD,EAAMmD,MACtHiL,EAAiBpO,EAAMmO,WAAanO,EAAMmO,UAAU5K,cAAgBvD,EAAMmO,UAAU5K,aAAaG,cAAiB1D,EAAMqD,OAE9H,OAAQ6K,GAAgBzZ,GAAc2Z,GAAiB1Z,CACzD,CACA,OAAO,CACT,EA+BEyR,iCA7BuC,SAAC0B,GACxC,IAAMwG,EAAmB,GAiBzB,OAfAC,EAAAA,EAAAA,MAAKzG,GAAW,SAACnd,GACf,IACEyV,EAIEzV,EAJFyV,YACA4I,EAGEre,EAHFqe,KACAlD,EAEEnb,EAFFmb,gBACAsE,EACEzf,EADFyf,QAEFkE,EAAiBpzB,KAAK,CACpBklB,YAAAA,EACA4I,KAAAA,EACAlD,gBAAAA,EACAsE,QAAAA,GAEJ,IAEOkE,CACT,EAWEE,gCAvHsC,SAACC,GACvC,IAAM3G,EAAYhB,EAA0B2H,GAE5C,OAAOhnC,EAAAA,EAAAA,KAAIqgC,GAAW,SAAAnkC,GAAkB,OAAAA,EAAfmiC,eAAqC,GAChE,EAoHEQ,2BAhHiC,SAAA3b,GAAQ,OAAIA,EAASqe,IAAK,EAiH3D3C,0BAXgC,SAAHv0B,GAAgB,OAAAA,EAAV9I,UAA4B,EAY/Du9B,sBAhH4B,SAAA5b,GAAQ,OAAIA,EAASuB,gBAAgB8U,SAAU,EAiH3EwF,8BA/GoC,SAAA7b,GAAQ,OAAIA,EAASoJ,iBAAkB,E,8iBCrBvE2a,EAAiB,SAACC,GAWtB,OAVgB,SAAHhrC,GAAoD,IAA9CirC,EAAgBjrC,EAAhBirC,iBAAkB5qC,EAAWL,EAAXK,YAAgB6qC,GAAIC,EAAAA,EAAAA,GAAAnrC,EAAAorC,GACjDC,GAAa3nC,EAAAA,EAAAA,UAAQ,kBAAMunC,IAAoBK,EAAAA,EAAAA,GAA+BjrC,EAAY,GAAE,CAAC4qC,EAAkB5qC,IAErH,OACEc,EAAAA,EAAAA,KAAC6pC,GAAcplC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTslC,GAAI,IACRD,iBAAkBI,IAGxB,CAEF,EAEaE,EAAiCR,EAAeS,EAAAA,IAChDC,EAAmCV,EAAeW,EAAAA,ICrBlDC,E,UAAgBC,U,qBCChBC,EACU,sBADVA,EAEU,sBAFVA,EAGU,sBAHVA,EAIS,qBAJTA,EAKE,cALFA,EAME,cANFA,EAOE,cAPFA,EAQE,cARFA,EASE,cATFA,EAUE,cAVFA,EAWE,cAXFA,EAYE,cAZFA,EAaC,aAbDA,EAcE,cAdFA,EAeE,cAfFA,EAgBE,cAhBFA,EAiBE,cAjBFA,EAkBE,cAlBFA,EAmBY,wBAnBZA,EAoBY,wBApBZA,EAqBY,wBArBZA,EAsBY,wBAtBZA,EAuBY,wBAvBZA,EAwBY,wBAxBZA,EAyBY,wBAzBZA,EA0BY,wBA1BZA,EA2BW,uBA3BXA,EA4BQ,oBA5BRA,EA6BQ,oBA7BRA,EA8BQ,oBA9BRA,EA+BQ,oBA/BRA,EAgCQ,oBAhCRA,EAiCQ,oBAjCRA,EAkCQ,oBAKRC,IAAoCC,EAAA,IAAAx5B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAw5B,EAC9CF,EAA4C,CAACG,EAAAA,GAAIC,oBACjDJ,EAA4C,CAACG,EAAAA,GAAIE,6BACjDL,EAA4C,CAACG,EAAAA,GAAIG,sBACjDN,EAA2C,CAACG,EAAAA,GAAII,wBAEhDP,EAAoC,CAACG,EAAAA,GAAIK,mCAAoCL,EAAAA,GAAIM,4BACjFT,EAAoC,CAACG,EAAAA,GAAIO,yCACzCV,OAAoC9sC,GACpC8sC,EAAoC,CAACG,EAAAA,GAAIQ,4BAA6BR,EAAAA,GAAIS,yCAC1EZ,OAAoC9sC,GACpC8sC,EAAoC,CAACG,EAAAA,GAAIU,4BAAyBn6B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAw5B,EAClEF,EAAoC,CAACG,EAAAA,GAAIW,6BACzCd,EAAoC,CAACG,EAAAA,GAAIY,iCAAkCZ,EAAAA,GAAIa,mCAC/EhB,OAAmC9sC,GACnC8sC,EAAoC,CAACG,EAAAA,GAAIc,uCAAwCd,EAAAA,GAAIe,oDACrFlB,EAAoC,CAACG,EAAAA,GAAIgB,yBACzCnB,EAAoC,CAACG,EAAAA,GAAIiB,kCAAmCjB,EAAAA,GAAIkB,wCAChFrB,EAAoC,CAACG,EAAAA,GAAImB,4BAA6BnB,EAAAA,GAAIoB,kCAC1EvB,EAAoC,CAACG,EAAAA,GAAIqB,gCAEzCxB,EAA8C,CAACG,EAAAA,GAAIsB,4CACnDzB,EAA8C,CAC7CG,EAAAA,GAAIuB,8CACJvB,EAAAA,GAAIwB,qDACLj7B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAw5B,EACAF,EAA8C,CAACG,EAAAA,GAAIyB,gDACnD5B,EAA8C,CAACG,EAAAA,GAAI0B,qCACnD7B,EAA8C,CAACG,EAAAA,GAAI2B,qCACnD9B,EAA8C,CAACG,EAAAA,GAAI4B,kCACnD/B,EAA8C,CAC7CG,EAAAA,GAAI6B,kCACJ7B,EAAAA,GAAI8B,iDACJ9B,EAAAA,GAAI+B,kDAELlC,EAA8C,CAACG,EAAAA,GAAIgC,0CACnDnC,EAA6C,CAACG,EAAAA,GAAIiC,oCAElDpC,EAA0C,CAACG,EAAAA,GAAIkC,wCAAyClC,EAAAA,GAAImC,kCAC5FtC,EAA0C,CAACG,EAAAA,GAAIoC,wCAC/CvC,EAA0C,CAACG,EAAAA,GAAIqC,iCAA8B97B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAw5B,EAC7EF,EAA0C,CAACG,EAAAA,GAAIsC,kCAC/CzC,EAA0C,CAACG,EAAAA,GAAIuC,8CAC/C1C,EAA0C,CAACG,EAAAA,GAAIwC,6BAC/C3C,EAA0C,CAACG,EAAAA,GAAIyC,0BAIrCC,IAAmCC,EAAA,IAAAp8B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAo8B,EAE7C3C,EAAAA,GAAIC,kBAAoBJ,GACxBG,EAAAA,GAAIE,2BAA6BL,GACjCG,EAAAA,GAAIG,oBAAsBN,GAC1BG,EAAAA,GAAII,sBAAwBP,GAG5BG,EAAAA,GAAIK,mCAAqCR,GACzCG,EAAAA,GAAIO,uCAAyCV,GAC7CG,EAAAA,GAAIU,yBAA2Bb,GAC/BG,EAAAA,GAAIW,2BAA6Bd,GACjCG,EAAAA,GAAIY,iCAAmCf,GAGvCG,EAAAA,GAAIc,uCAAyCjB,IAAiCt5B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAo8B,EAC9E3C,EAAAA,GAAIgB,uBAAyBnB,GAC7BG,EAAAA,GAAIM,0BAA4BT,GAChCG,EAAAA,GAAIQ,4BAA8BX,GAClCG,EAAAA,GAAIiB,kCAAoCpB,GACxCG,EAAAA,GAAImB,4BAA8BtB,GAClCG,EAAAA,GAAIqB,8BAAgCxB,GACpCG,EAAAA,GAAIa,iCAAmChB,GAGvCG,EAAAA,GAAIkC,wCAA0CrC,GAC9CG,EAAAA,GAAIoC,sCAAwCvC,GAC5CG,EAAAA,GAAIuC,4CAA8C1C,IAAuCt5B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAo8B,EACzF3C,EAAAA,GAAIqC,8BAAgCxC,GACpCG,EAAAA,GAAIsC,gCAAkCzC,GACtCG,EAAAA,GAAIyC,uBAAyB5C,GAC7BG,EAAAA,GAAImC,gCAAkCtC,GACtCG,EAAAA,GAAIwC,2BAA6B3C,GAEjCG,EAAAA,GAAIe,kDAAoDlB,GACxDG,EAAAA,GAAIS,uCAAyCZ,GAC7CG,EAAAA,GAAIoB,gCAAkCvB,GACtCG,EAAAA,GAAIkB,sCAAwCrB,GAI5CG,EAAAA,GAAIsB,0CAA4CzB,IAA2Ct5B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAo8B,EAG3F3C,EAAAA,GAAIuB,8CAAgD1B,GACpDG,EAAAA,GAAIwB,kDAAoD3B,GAExDG,EAAAA,GAAIyB,8CAAgD5B,GACpDG,EAAAA,GAAI0B,mCAAqC7B,GACzCG,EAAAA,GAAI2B,mCAAqC9B,GACzCG,EAAAA,GAAI4B,gCAAkC/B,GAGtCG,EAAAA,GAAI6B,kCAAoChC,GACxCG,EAAAA,GAAI8B,iDAAmDjC,GACvDG,EAAAA,GAAI+B,gDAAkDlC,GAEtDG,EAAAA,GAAIgC,wCAA0CnC,IAA2Ct5B,EAAAA,EAAAA,GAAAo8B,EACzF3C,EAAAA,GAAIiC,kCAAoCpC,I,gDCnHrC+C,GAAyB,SAACC,GAC9B,IAAA7uC,EAA4C6uC,GAAS,CAAC,EAA9CC,EAAkB9uC,EAAlB8uC,mBAAoBC,EAAW/uC,EAAX+uC,YACtBC,EAAiBlD,GAAqCgD,GAC5D,OAAKvvC,IAAAA,QAAUyvC,GAGR,GAFEzvC,IAAAA,IAAMyvC,GAAgB,SAAAC,GAAa,MAAK,CAAEA,cAAAA,EAAeC,SAAUH,EAAa,GAG3F,EAuBMI,GAAiB,SAAC7S,GACtB,OAAKA,GAAS/8B,IAAAA,SAAW+8B,GAChBA,EAtBiB,SAACA,GAC3B,IAAA77B,EAEI67B,GAAS,CAAC,EADZp8B,EAAEO,EAAFP,GAAIonB,EAAG7mB,EAAH6mB,IAAKxD,EAAKrjB,EAALqjB,MAAOmJ,EAAMxsB,EAANwsB,OAAQmiB,EAAW3uC,EAAX2uC,YAAa5P,EAAa/+B,EAAb++B,cAAeE,EAAcj/B,EAAdi/B,eAAgB2P,EAAqB5uC,EAArB4uC,sBAAuBC,EAAiB7uC,EAAjB6uC,kBAAmBC,EAAO9uC,EAAP8uC,QAASC,EAAY/uC,EAAZ+uC,aAezH,MAbmB,CACjBtvC,GAAAA,EACAonB,IAAAA,EACAxD,MAAAA,EACAmJ,OAAAA,EACAmiB,YAAAA,EACA5P,cAAAA,EACAE,eAAAA,EACA+P,cAAeJ,EACfK,mBAAoBnwC,IAAAA,QAAUA,IAAAA,IAAM+vC,EAAmBV,KACvDW,QAAAA,EACAC,aAAAA,EAGJ,CAMSG,CAAoBrT,EAC7B,EAeasT,GAAoB,SAACC,EAAiB73B,GAEjD,IAAM83B,GAAoBpsC,EAAAA,EAAAA,UAAQ,kBAAMnE,IAAAA,IAAMswC,GAAiB,SAAA1hC,GAAA,IAAGmuB,EAAKnuB,EAALmuB,MAAOyT,EAAa5hC,EAAb4hC,cAAa,MAAQ,CAC5FzT,MAAO6S,GAAe7S,GACtByT,cAAAA,EACD,GAAE,GAAE,CAACF,IAENG,GAIIC,EAAAA,EAAAA,IAAsBH,EAAmB93B,GAHvBk4B,EAAsBF,EAA1CG,mBACqBC,EAAuBJ,EAA5CK,oBACGnF,GAAIC,EAAAA,EAAAA,GAAA6E,EAAA5E,IAIH+E,GAAqB3vC,EAAAA,EAAAA,cAAY,SAAC8vC,GACtC,IAAMC,EAAYhxC,IAAAA,IAAM+wC,GAAQ,SAAAn9B,GAAA,IAAGmpB,EAAKnpB,EAALmpB,MAAOyT,EAAa58B,EAAb48B,cAAa,MAAQ,CAC7DzT,MAAO6S,GAAe7S,GACtByT,cAAAA,EACD,IACD,OAAOG,EAAuBK,EAChC,GAAG,CAACL,IAEEG,GAAsB3sC,EAAAA,EAAAA,UAAQ,WA0BlC,OAzBYnE,IAAAA,IAAM6wC,GAAyB,SAAA57B,GAA4B,IAAzB8nB,EAAK9nB,EAAL8nB,MAAOkU,EAAUh8B,EAAVg8B,WAC7Cf,EAAgBnT,EAAMmU,mBAAqBnU,EAAMmT,cAAgB,KACjEH,EAAoB/vC,IAAAA,MAAQixC,GAC/B1sC,KAAI,SAAAw/B,GAA+D,IAA5DoN,EAAapN,EAAboN,cAAeD,EAAkBnN,EAAlBmN,mBAAoBE,EAAiBrN,EAAjBqN,kBACzC,OAAIF,EACK,CAAE3B,mBAAoBJ,GAAoCgC,EAAczB,eAAgBF,YAAa4B,GAEvG,IACT,IACCC,UACA1/B,QAAO,SAAC2/B,EAAKF,GAEZ,IAAQ7B,EAAuB6B,EAAvB7B,mBAIR,OAHK+B,EAAI/B,KACP+B,EAAI/B,GAAsB6B,GAErBE,CACT,GAAG,CAAC,GACHlyC,QAEH,MAAO,CACLmyC,aAAcrB,EACdH,kBAAmB/vC,IAAAA,QAAUA,IAAAA,OAAS+vC,KAAuB,GAEjE,GAEF,GAAG,CAACc,IAEJ,OAAAxqC,EAAAA,EAAAA,GAAA,CAASuqC,mBAAAA,EAAoBE,oBAAAA,GAAwBnF,EACvD,E,aChIa6F,GAA8B,SAACC,EAAiBC,GAyD3D,OAtD6B,SAAHjxC,GAAyD,IAAnDkxC,EAASlxC,EAATkxC,UAAWzB,EAAazvC,EAAbyvC,cAAe0B,EAAiBnxC,EAAjBmxC,kBAExD,GAAI1B,EACF,OAAO2B,EAAAA,EAAAA,IAA4B,CAAEF,UAAAA,EAAWzB,cAAAA,EAAe0B,kBAAAA,IAGjE,IAAME,EAAsB9xC,IAAAA,IAAM4xC,GAAmB,SAACT,GAEpD,MAAO,CAAEjU,YADwBiU,EAAzBjU,YACcgK,QADWiK,EAAZjK,QAEvB,IAEA,OAAOuK,EAAgBM,kBAAkB,CACvCC,SAAUL,EAAU9B,YACpBE,kBAAmB+B,IAClB9zB,MAAK,SAACi0B,GAsBP,OArBYjyC,IAAAA,IAAM4xC,GAAmB,SAACT,GACpC,IAAMe,EAAQlyC,IAAAA,KAAOiyC,GAAQ,SAAA/wC,GAAc,OAAAA,EAAXixC,cAAkChB,EAAciB,cAAc,IAC9F,GAAIF,EAAO,CACT,IAAMG,EAAgB,CACpB7R,YAAa0R,EAAMhS,MACnBO,aAAcyR,EAAM9R,OACpBC,QAAS6R,EAAMI,EACf/R,QAAS2R,EAAMK,GAEXC,GAAuBC,EAAAA,GAAAA,IAA0B,CACrDC,cAAe,CAAEnuB,MAAOotB,EAAU1R,cAAevS,OAAQikB,EAAUxR,eAAgBO,IAAKiR,EAAU9B,aAClG0B,aAAcc,EACd7gB,SAAU2f,EAAcjK,QAAQ,GAChCzV,UAAW0f,EAAcjK,QAAQ,GACjChK,YAAaiU,EAAcjU,YAC3BwU,kBAAAA,IAEF,MAAO,CAAEP,cAAAA,EAAekB,cAAeG,EAAuBH,EAAgB,KAChF,CACA,MAAO,CAAElB,cAAAA,EAAekB,cAAe,KACzC,GAEF,IAAGjnC,OAAM,WACP,IACC4S,MAAK,SAAC20B,GAEP,IAAMC,EAAiC5yC,IAAAA,OAAS2yC,GAA+B,SAAA/jC,GAAgB,OAAAA,EAAbyjC,aAAkC,IAChHQ,EAAe,KACnB,GAAK7yC,IAAAA,QAAU4yC,GAKbC,EAAe7yC,IAAAA,IAAM2yC,GAA+B,SAAA19B,GAAgB,MAAQ,CAAEm8B,kBAAVn8B,EAAbo9B,cAAyD,QALlE,CAC9C,IAAMS,GAAsBjB,EAAAA,EAAAA,IAA4B,CAAEF,UAAAA,EAAWzB,cAAAA,EAAe0B,kBAAAA,IAEpFiB,EAAe7yC,IAAAA,IAAM2yC,GAA+B,SAAA/+B,EAAoBm/B,GAAG,IAApBV,EAAaz+B,EAAby+B,cAAa,OAAaA,EAAgB,CAAEjB,kBAAmBiB,GAAkBS,EAAoBC,EAAI,GAClK,CAGA,OAAOF,CACT,GACF,CAGF,E,mGCrDaG,IAAgCC,EAAA,IAAAjgC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAC1CC,EAAAA,GAAexG,kBAAoB,iBACnCwG,EAAAA,GAAevG,2BAA6B,uBAC5CuG,EAAAA,GAAetG,oBAAsB,oBACrCsG,EAAAA,GAAerG,sBAAwB,iBAGvCqG,EAAAA,GAAepG,mCAAqC,uBACpDoG,EAAAA,GAAe7F,iCAAmC,oBAClD6F,EAAAA,GAAelG,uCAAyC,qBACxDkG,EAAAA,GAAe/F,yBAA2B,mBAC1C+F,EAAAA,GAAe9F,2BAA6B,qBAG5C8F,EAAAA,GAAe3F,uCAAyC,sBAAmBv6B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAC3EC,EAAAA,GAAe5F,iCAAmC,oBAClD4F,EAAAA,GAAezF,uBAAyB,qBACxCyF,EAAAA,GAAenG,0BAA4B,uBAC3CmG,EAAAA,GAAepF,8BAAgC,qBAC/CoF,EAAAA,GAAejG,4BAA8B,qBAC7CiG,EAAAA,GAAexF,kCAAoC,qBACnDwF,EAAAA,GAAetF,4BAA8B,qBAG7CsF,EAAAA,GAAeC,kCAAoC,qBACnDD,EAAAA,GAAeE,kCAAoC,qBACnDF,EAAAA,GAAeG,kCAAoC,sBAAmBrgC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EACtEC,EAAAA,GAAeI,kCAAoC,qBACnDJ,EAAAA,GAAeK,kCAAoC,qBACnDL,EAAAA,GAAeM,kCAAoC,qBACnDN,EAAAA,GAAeO,iCAAmC,oBAClDP,EAAAA,GAAeQ,gCAAkC,uBACjDR,EAAAA,GAAeS,wBAA0B,oBACzCT,EAAAA,GAAeU,iCAAmC,uBAClDV,EAAAA,GAAeW,wBAA0B,qBAGzCX,EAAAA,GAAenF,0CAA4C,uBAC3DmF,EAAAA,GAAezE,wCAA0C,qBAAkBz7B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAC3EC,EAAAA,GAAelF,8CAAgD,qBAC/DkF,EAAAA,GAAejF,kDAAoD,qBACnEiF,EAAAA,GAAehF,8CAAgD,qBAC/DgF,EAAAA,GAAe/E,mCAAqC,qBACpD+E,EAAAA,GAAe9E,mCAAqC,qBACpD8E,EAAAA,GAAe7E,gCAAkC,mBACjD6E,EAAAA,GAAe5E,kCAAoC,qBACnD4E,EAAAA,GAAe3E,iDAAmD,qBAClE2E,EAAAA,GAAe1E,gDAAkD,qBACjE0E,EAAAA,GAAexE,kCAAoC,qBAAkB17B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EACrEC,EAAAA,GAAeY,+BAAiC,uBAChDZ,EAAAA,GAAea,yCAA2C,qBAC1Db,EAAAA,GAAec,2CAA6C,oBAE5Dd,EAAAA,GAAee,6BAA+B,iBAC9Cf,EAAAA,GAAegB,sCAAwC,uBACvDhB,EAAAA,GAAeiB,+BAAiC,oBAChDjB,EAAAA,GAAekB,iCAAmC,iBAGlDlB,EAAAA,GAAemB,8CAAgD,uBAC/DnB,EAAAA,GAAeoB,4CAA8C,oBAC7DpB,EAAAA,GAAeqB,kDAAoD,sBAAmBvhC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EACtFC,EAAAA,GAAesB,oCAAsC,mBACrDtB,EAAAA,GAAeuB,sCAAwC,qBAEvDvB,EAAAA,GAAewB,2CAA6C,uBAC5DxB,EAAAA,GAAeyB,mCAAqC,oBACpDzB,EAAAA,GAAe0B,4CAA8C,uBAC7D1B,EAAAA,GAAe2B,mCAAqC,qBAGpD3B,EAAAA,GAAe4B,kDAAoD,qBACnE5B,EAAAA,GAAe6B,4CAA8C,oBAC7D7B,EAAAA,GAAe8B,kCAAoC,qBACnD9B,EAAAA,GAAe+B,qCAAuC,wBAAqBjiC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAC3EC,EAAAA,GAAegC,yCAA2C,qBAC1DhC,EAAAA,GAAeiC,uCAAyC,qBACxDjC,EAAAA,GAAekC,6CAA+C,qBAC9DlC,EAAAA,GAAemC,uCAAyC,qBAGxDnC,EAAAA,GAAeoC,wCAA0C,uBACzDpC,EAAAA,GAAeqC,uCAAyC,uBACxDrC,EAAAA,GAAesC,iDAAmD,uBAClEtC,EAAAA,GAAeuC,oDAAsD,uBACrEvC,EAAAA,GAAewC,uCAAyC,uBAExDxC,EAAAA,GAAeyC,qCAAuC,qBAAkB3iC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EACxEC,EAAAA,GAAe0C,oCAAsC,oBACrD1C,EAAAA,GAAe2C,8CAAgD,oBAC/D3C,EAAAA,GAAe4C,iDAAmD,oBAClE5C,EAAAA,GAAe6C,oCAAsC,oBAErD7C,EAAAA,GAAe8C,sCAAwC,sBACvD9C,EAAAA,GAAe+C,gDAAkD,sBACjE/C,EAAAA,GAAegD,mDAAqD,sBACpEhD,EAAAA,GAAeiD,sCAAwC,sBAGvDjD,EAAAA,GAAehE,uBAAyB,iBACxCgE,EAAAA,GAAetE,gCAAkC,wBAAqB57B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EACtEC,EAAAA,GAAejE,2BAA6B,iBAC5CiE,EAAAA,GAAevE,wCAA0C,uBACzDuE,EAAAA,GAAerE,sCAAwC,oBACvDqE,EAAAA,GAAelE,4CAA8C,qBAC7DkE,EAAAA,GAAepE,8BAAgC,mBAC/CoE,EAAAA,GAAenE,gCAAkC,qBAEjDmE,EAAAA,GAAe1F,kDAAoD,qBACnE0F,EAAAA,GAAehG,uCAAyC,qBACxDgG,EAAAA,GAAerF,gCAAkC,qBACjDqF,EAAAA,GAAevF,sCAAwC,sBAAmB36B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAC1EC,EAAAA,GAAekD,6BAA+B,uBAC9ClD,EAAAA,GAAemD,qCAAuC,oBAGtDnD,EAAAA,GAAeoD,kCAAoC,iBACnDpD,EAAAA,GAAeqD,2CAA6C,uBAC5DrD,EAAAA,GAAesD,sCAAwC,iBACvDtD,EAAAA,GAAeuD,mDAAqD,uBACpEvD,EAAAA,GAAewD,iDAAmD,oBAClExD,EAAAA,GAAeyD,uDAAyD,qBACxEzD,EAAAA,GAAe0D,yCAA2C,mBAC1D1D,EAAAA,GAAe2D,2CAA6C,sBAAmB7jC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAigC,EAG/EC,EAAAA,GAAe4D,iCAAmC,aAClD5D,EAAAA,GAAe6D,4BAA8B,qBAC7C7D,EAAAA,GAAe8D,wCAA0C,oBACzD9D,EAAAA,GAAe+D,4BAA8B,uBAG7C/D,EAAAA,GAAegE,6DAA+D,qBAC9EhE,EAAAA,GAAeiE,kDAAoD,qBACnEjE,EAAAA,GAAekE,2CAA6C,qBAC5DlE,EAAAA,GAAemE,iDAAmD,qBAClEnE,EAAAA,GAAeoE,wCAA0C,uBACzDpE,EAAAA,GAAeqE,gDAAkD,qBAoB9DC,GAAwB,SAACC,GAC7B,IAAKA,EACH,OAAO,KAET,IAAA7oC,EAAgD6oC,GAAkB,CAAC,EAA3DC,EAAS9oC,EAAT8oC,UAAWC,EAAa/oC,EAAb+oC,cAAeC,EAAShpC,EAATgpC,UAClChkC,EAA4D+jC,GAAiB,CAAC,EAAtEE,EAAcjkC,EAAdikC,eAAgBzyB,EAAexR,EAAfwR,gBAAiB0yB,EAAclkC,EAAdkkC,eAMzC,OALyBF,EAAY,CACnCG,WAAYL,EACZM,YAAaH,GAAkBzyB,GAAmB0yB,EAClDF,UAAAA,GACE,IAEN,EA0BMK,GAAoC,SAACC,EAAqBC,EAA0BC,EAAuBC,GAE/G,IAAIC,EAAYt4C,IAAAA,QAAUA,IAAAA,IAAMm4C,GAA0B,SAACI,GACzD,IAAMtH,EAAajxC,IAAAA,OAASu4C,GAAqB,SAAAtjC,GAAS,OAAAA,EAANujC,MAAoB,IACxE,OAAOx4C,IAAAA,QAAUixC,GAAc,KAAOA,CACxC,MAAO,GAEPqH,EA3B8B,SAACH,GAE/B,IAAIM,GAAU,EACRC,EAAe,GAUrB,OATA14C,IAAAA,QAAUm4C,GAA0B,SAACQ,GAEnC,IAAMC,EAAmB54C,IAAAA,QAAU24C,EAAe,OAC5CE,EAAU74C,IAAAA,KAAO44C,GACvBH,EAAUA,GAAWI,EAAQt5C,OAAS,EACtCs5C,EAAQzZ,SAAQ,SAACtG,GACf4f,EAAa1gC,KAAK4gC,EAAiB9f,GACrC,GACF,IACO2f,EAAUC,EAAeP,CAClC,CAacW,CAAwBR,GAEpC,IAAMS,EAAoBV,EAA4BW,EAAAA,GAA0BC,EAAAA,GAiHhF,OA/GyBj5C,IAAAA,IAAMs4C,GAAW,SAACC,GAEzC,IAAI5G,EAAY,KACZzB,EAAgB,KAChBgJ,EAAmB,KACnBC,GAA0B,EAExB3I,EAAgBxwC,IAAAA,IAAMk4C,GAAqB,SAAAnU,GAA2C,IAAxCqV,EAAgBrV,EAAhBqV,iBAAkB3J,EAAc1L,EAAd0L,eA0FpE,MAJqB,CACnBrX,KAAMghB,EACNT,cAvFoB34C,IAAAA,IAAMyvC,GAAgB,SAACC,GAC3C,IAAMyB,EAAgB4H,EAAkBrJ,IAAkB,CAAC,EAGrD2J,EAAqBrG,GAAiCtD,IAAkB,GAGxE4J,EAAYt5C,IAAAA,KAAOu4C,GAAqB,SAAApU,GAAA,IAAGvB,EAAeuB,EAAfvB,gBAAe,OAAOA,GAAmByW,GAAuBzW,EAAgB/4B,gBAAkBwvC,EAAmBxvC,aAAc,IAEpL,IAAKyvC,EACH,MAAO,CACLnI,cAAAA,EACAC,kBAAmB,KACnBmI,qBAAsB,KACtBrI,oBAAoB,EACpBsI,qBAAqB,EAErBC,wBAAwB,GAK5B,IAAMC,EAAYJ,EAAUpO,WAAa,CAAC,EAErCyG,IACHA,EAAY,CACVhxC,GAAI+4C,EAAUC,UAAYD,EAAUp/B,IAAMg/B,EAAUh/B,GACpDyN,IAAKuxB,EAAU5Y,KAAO4Y,EAAUM,aAAeF,EAAUhZ,KAAOgZ,EAAUE,YAC1Er1B,MAAOm1B,EAAUxZ,OAASwZ,EAAUG,eAAiBP,EAAUpZ,OAASoZ,EAAUO,cAClFnsB,OAAQgsB,EAAUtZ,QAAUsZ,EAAUI,gBAAkBR,EAAUlZ,QAAUkZ,EAAUQ,eACtFjK,YAAa6J,EAAUE,aAAeF,EAAUhZ,KAAO4Y,EAAUM,aAAeN,EAAU5Y,IAC1FT,cAAeyZ,EAAUG,eAAiBH,EAAUxZ,OAASoZ,EAAUO,eAAiBP,EAAUpZ,MAClGC,eAAgBuZ,EAAUI,gBAAkBJ,EAAUtZ,QAAUkZ,EAAUQ,gBAAkBR,EAAUlZ,SAKrG8P,IACHA,EAAgBwJ,EAAUpZ,cAIvB4Y,IACHA,EAAmB1B,GAAsBkC,EAAUK,iBAIjDL,EAAUM,kBACZb,EAA0BA,GAA2BO,EAAUM,mBAIjE,IAAIT,EAAuB,MACvBD,EAAUS,gBAAoBL,EAAUK,gBAAkBT,EAAUS,eAAenC,YAAc8B,EAAUK,eAAenC,YAC5H2B,EAAuB/B,GAAsB8B,EAAUS,iBAGzD,IAAAE,EAnI8B,SAACX,EAAWY,GAChD,IAAAz5C,EAEI64C,GAAa,CAAC,EADhBa,EAAkB15C,EAAlB05C,mBAAoB5I,EAAY9wC,EAAZ8wC,aAAc6I,EAAyB35C,EAAzB25C,0BAE5BC,GAAiB9I,GAAgB,CAAC,GAAlC8I,aAER,OAAOC,EAAAA,EAAAA,IAAqB,CAC1BH,mBAAAA,EACAI,iBAAkBjB,EAAUkB,sBAC5BC,mBAAoBnB,EAAUmB,mBAC9BC,oBAAqBpB,EAAUoB,oBAC/BC,0BAA2BrB,EAAUqB,0BACrCP,0BAAAA,EACAQ,WAAY,WAAF,OAAQV,GAAkBG,IAAiBQ,GAAAA,GAAgBC,UAAU,KAC3E,CAAC,CACT,CAyHYC,CAA8BzB,EAAWJ,GAAoBK,GAJ/DoB,EAAyBV,EAAzBU,0BACAJ,EAAgBN,EAAhBM,iBACAE,EAAkBR,EAAlBQ,mBACAC,EAAmBT,EAAnBS,oBAIIM,GAAqB7J,EAAc8J,oBAAsB7C,EAG/D,MAAO,CACLjH,cAAAA,EACAC,kBAAmBkI,EAAUhZ,cAAgB,KAE7CiZ,qBAAAA,EACArI,mBAAqBoI,EAAUU,iBAAmBV,EAAUU,oBAAsB,EAClFR,oBAAqBF,EAAU5oB,aAAc,EAE7C+oB,wBAAwB,EACxBc,iBAAkBS,EAAoBT,OAAmB/6C,EACzDi7C,mBAAoBO,EAAoBP,OAAqBj7C,EAC7Dk7C,oBAAqBM,EAAoBN,OAAsBl7C,EAC/Dm7C,0BAA2BK,EAAoBL,OAA4Bn7C,EAE/E,IAQF,IAUA,MAAO,CAAE07C,aARY,CACnBvJ,UAAAA,EACAzB,cAAAA,EACAgJ,iBAAAA,EACAhI,mBAAoBiI,GAIC3I,cAAAA,EACzB,GAGF,EAQa2K,GAAmC,SAAC7K,EAAiB8K,EAAkBhD,GAClF,IAAA3H,GAKIC,EAAAA,EAAAA,MAJF2K,EAAkB5K,EAAlB4K,mBACAzK,EAAkBH,EAAlBG,mBACA0K,EAAuB7K,EAAvB6K,wBACG3P,GAAIC,EAAAA,EAAAA,GAAA6E,EAAA5E,IAGH/qC,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBACzBlD,EAA4Br4C,IAAAA,IAAMc,EAAa,CAAC,UAAW,qBAE3D06C,GAAqBv6C,EAAAA,EAAAA,cAAY,SAAC0wC,GACtC,IAAQ5pB,GAAQ4pB,GAAa,CAAC,GAAtB5pB,IACF0zB,EAAiBL,IAAqBp7C,IAAAA,SAAWo7C,GAAoBA,EAAmBA,EAAiBrzB,KAC/G,OAAOA,GAAO0zB,GAAkB1zB,IAAQ0zB,CAC1C,GAAG,CAACL,IAGEM,GAA+Bv3C,EAAAA,EAAAA,UAAQ,WAC3C,IAAIs0C,GAAU,EACRkD,EAAM37C,IAAAA,IAAMs7C,GAAyB,SAAApV,GAA0C,IAAvCkT,EAAgBlT,EAAhBkT,iBAAkBT,EAAazS,EAAbyS,cAO9D,MAAO,CAAES,iBAAAA,EAAkBT,cANF34C,IAAAA,IAAM24C,GAAe,SAACW,GAC7C,IAAQvjB,GAAWujB,GAAa,IAAxBvjB,OACF6lB,EAAY57C,IAAAA,OAAS+1B,GAAQ,SAAA4Q,GAAA,IAAG8S,EAAsB9S,EAAtB8S,uBAAwB9H,EAAShL,EAATgL,UAAS,OAAO8H,GAA0B+B,EAAmB7J,EAAU,KAAK,GAE1I,OADA8G,EAAUA,GAAWmD,EAAUr8C,SAAWw2B,EAAOx2B,QACjD8G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAYizC,GAAS,IAAEvjB,OAAQ6lB,GACjC,IAEF,IACA,OAAOnD,EAAUkD,EAAML,CACzB,GAAG,CAACE,EAAoBF,IAElBO,GAAmC56C,EAAAA,EAAAA,cAAY,SAACk3C,EAA0B2D,EAAoBC,GAClG,IAAMC,EAAwB/D,GAAkC3H,EAAiB6H,EAA0BC,EAAuBC,GAClI,GAAKr4C,IAAAA,QAAUg8C,GAGJZ,GAETxK,EAAmB,CAAC,CAAE7T,MAAOqe,EAAkB5K,cAAeF,SALzB,CACrC,IAAM2L,EAAuBD,GAAyBA,EAAsBz3C,KAAI,SAAC23C,EAAKxxB,GAAK,OAAKA,CAAK,IACrG2wB,EAAmB,CAAEW,sBAAAA,EAAuBF,mBAAoBA,GAAsBG,GAAwB,CAAC,GAAIF,eAAAA,GACrH,CAIF,GAAG,CAAC3D,EAAuBgD,EAAkB9K,EAAiB+K,EAAoBzK,EAAoByH,IAEtG,OAAAhyC,EAAAA,EAAAA,GAAA,CACEw1C,iCAAAA,EACAP,wBAAAA,EACAI,6BAAAA,GACG/P,EAEP,ECvRawQ,GAAsB/P,EAAcgQ,EAAAA,IACpCC,GAAiCjQ,EAAckQ,EAAAA,IAC/CrQ,GAA0BG,EAAcJ,GACxCG,GAA4BC,EAAcF,GAC1CqQ,GAAkCnQ,EAAcoQ,EAAAA,IAMhDC,IAJ6BrQ,EAAcsQ,EAAAA,IACLtQ,EAAcuQ,EAAAA,IACrBvQ,EAAcwQ,EAAAA,IACZxQ,EAAcyQ,EAAAA,IACbzQ,EAAc0Q,EAAAA,KAoFhDC,IAlFuC3Q,EAAc4Q,EAAAA,IAChB5Q,EAAc6Q,EAAAA,IACD7Q,EAAc8Q,EAAAA,IACtB9Q,EAAc+Q,EAAAA,IACV/Q,EAAcgR,EAAAA,IAEPhR,EAAciR,EAAAA,IACpBjR,EAAckR,EAAAA,IACvBlR,EAAcmR,EAAAA,IACXnR,EAAcoR,EAAAA,IACVpR,EAAcqR,EAAAA,IAChBrR,EAAcsR,EAAAA,IACTtR,EAAcuR,EAAAA,IACnBvR,EAAcwR,EAAAA,GAErBxR,EAAcyR,EAAAA,IACRzR,EAAc0R,EAAAA,IACtB1R,EAAc2R,EAAAA,IACpB3R,EAAc4R,EAAAA,IACX5R,EAAc6R,EAAAA,IACpB7R,EAAc8R,EAAAA,IACJ9R,EAAc+R,EAAAA,IACd/R,EAAcgS,EAAAA,IAEbhS,EAAciS,EAAAA,IACHjS,EAAckS,EAAAA,IACZlS,EAAcmS,EAAAA,IAChBnS,EAAcoS,EAAAA,IACjBpS,EAAcqS,EAAAA,IACdrS,EAAcsS,EAAAA,IACnBtS,EAAcuS,EAAAA,IACVvS,EAAcwS,EAAAA,IACTxS,EAAcyS,EAAAA,IACfzS,EAAc0S,EAAAA,IAC3B1S,EAAc2S,EAAAA,IACL3S,EAAc4S,EAAAA,IAE9B5S,EAAc6S,EAAAA,IAEX7S,EAAc8S,EAAAA,IACP9S,EAAc+S,EAAAA,IACf/S,EAAcgT,EAAAA,IAEFhT,EAAciT,EAAAA,IACrBjT,EAAckT,EAAAA,IACZlT,EAAcmT,EAAAA,IAClBnT,EAAcoT,EAAAA,IACOpT,EAAcqT,EAAAA,IACtBrT,EAAcsT,EAAAA,IACVtT,EAAcuT,EAAAA,IACvBvT,EAAcwT,EAAAA,IACZxT,EAAcyT,EAAAA,IACzBzT,EAAc0T,EAAAA,IACf1T,EAAc2T,EAAAA,IACjB3T,EAAc4T,EAAAA,IAER5T,EAAc6T,EAAAA,IACf7T,EAAc8T,EAAAA,IACL9T,EAAc+T,EAAAA,IACX/T,EAAcgU,EAAAA,IAC1BhU,EAAciU,EAAAA,IAEpBjU,EAAckU,EAAAA,IAClBlU,EAAcmU,EAAAA,IACJnU,EAAcoU,EAAAA,IACzBpU,EAAcqU,EAAAA,IACdrU,EAAcsU,EAAAA,IAgBJtU,EAAcuU,EAAAA,KACpDC,GAA4BxU,EAAcyU,EAAAA,IAC1CC,GAA0B1U,EAAc2U,EAAAA,IACxCC,GAA8B5U,EAAc6U,EAAAA,IAC5CC,GAA6B9U,EAAc+U,EAAAA,IAC3CC,IAA8BpuC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxCquC,EAAAA,GAAmBC,SAAWJ,IAC9BG,EAAAA,GAAmBE,QAAUX,IAC7BS,EAAAA,GAAmBG,UAAYR,IAC/BK,EAAAA,GAAmBI,kBAAoB1E,IACvCsE,EAAAA,GAAmBK,MAAQZ,G,4tEChNxBa,EAAa,CAAE79B,WAAY,CAAC,EAAG89B,KAAM,CAAC,GAkCrC,IAAMC,EAAuB,SAACC,EAAkBC,EAAWziD,GAAO,OA3BlE,SAA0BwiD,EAAkBC,EAAWziD,GAC5D,IAPqBkjC,EAOrB/hC,EAIInB,GAAW,CAAC,EAHd0iD,EAAevhD,EAAfuhD,gBACAC,EAAYxhD,EAAZwhD,aACAC,EAAazhD,EAAbyhD,cAGIC,EAAM,SAACl8C,GAEX,IACA/E,EADkB+E,EAAV8d,OAC8B49B,EAA9B79B,EAAU5iB,EAAV4iB,WAAY89B,EAAI1gD,EAAJ0gD,KAEdQ,GAAej+C,EAAAA,EAAAA,UAAQ,kBAAM49C,EAAUj+B,EAAY89B,EAAK,GAAE,CAAC99B,EAAY89B,IAEvEjoC,GADYxV,EAAAA,EAAAA,UAAQ,kBAAMk+C,EAAAA,EAAAA,iBAAgBD,EAAcJ,EAAkB,CAAE5pB,KAAM4pB,QAAoBxiD,EAAU,GAAE,CAAC4iD,GACzGE,IAAe,CAAC,EAChC,OACE1gD,EAAAA,EAAAA,KAACkgD,GAAgBz7C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAE0T,QAASA,EAASyoC,aAAcH,EAAeG,OAAe5iD,IAE/F,EAMA,OAJA2iD,EAAII,YAAW,oBAAAt/C,OAAuBi/C,IA1BjB1f,EA0BiDsf,GA1B1BS,aAAe/f,EAAUpK,MAAQ,YA0BU,KAEvFoqB,IAAqBL,EAAKL,GAEnBK,CACT,CAE8EM,CAAiBX,EAAkBC,GAAS17C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAO/G,GAAO,IAAE0iD,gBAAiB,SAAU,E,0CCtC/JU,EAAwB,CAC5B39C,SAAU,sBACV2f,QAAS,sBACT+I,OAAQ,uBACRF,WAAY,yBACZvI,MAAO,qBACPkJ,WAAY,mBACZnJ,SAAU,kBACVM,WAAY,iBACZ4I,WAAY,qCACZpJ,OAAQ,gCACR2I,aAAc,kBCXVk1B,EAAwB,CAC5B39C,SAAU,sBACV2f,QAAS,sBACT+I,OAAQ,uBACRF,WAAY,yBACZvI,MAAO,qBACPkJ,WAAY,mBACZnJ,SAAU,kBACVM,WAAY,iBACZ4I,WAAY,qCACZpJ,OAAQ,gCACR2I,aAAc,kBAqBHm1B,EAAmD,SAAC5+B,GAE/D,IAAM6+B,EApBgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAOnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3B,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,KAER,kCAAmC,CACjC5I,MAAO,QACPuiB,eAAgB,aAElBhjB,MAAO,mBACPmJ,OAAQ,MAGVu1B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,GACL4Z,gBAAiB,wDACjB9hB,SAAU,UAGZq9B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,EACR5I,QAAS,GACTK,SAAU,GACVC,MAAO,WAGTk+B,uBAAwB,CACtBl+B,MAAO,QACPT,MAAO,IACPmJ,OAAQ,OACR3I,SAAU,GACV4N,UAAW,IACXtN,WAAY,MACZ6I,WAAY,OACZvY,aAAc,EACdyX,cAAe,GAGjBm2B,kCAAmC,CACjC7+B,QAAS,mBACT+I,OAAQ,6BACR1I,SAAU,kBACVmJ,WAAY,kBACZX,WAAY,yBACZvI,MAAO,sCACPwI,aAAc,iBAEd,gBAAcnnB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxBj1B,OAAQ,eACRzI,MAAO,sCACPuI,WAAY,yBACZ1I,OAAQ,gDACR6R,QAAS,eACT3R,SAAU,kBACVmJ,WAAY,oBAEd,mBAAoB,CAClBlJ,MAAO,gCACPN,QAAS,yBAIjB,EAEa8+B,EAAoC,SAACz/B,GAEhD,IAAM6+B,EAhGgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAmFnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,GACRhJ,QAAS,iBACT6I,WAAY,OACZgD,cAAe,mBAGjBuyB,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,IACPmJ,OAAQ,GACR/uB,YAAa,IAGfokD,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBl+B,MAAO,sBACP0I,OAAQ,GACRD,OAAQ,gBACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZd,cAAe,GAGjBm2B,kCAAmC,CACjC7+B,QAAS,mBACT8I,aAAc,iBAEd,gBAAcnnB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxB19B,MAAO,+BACPD,SAAU,oBAEZ,mBAAoB,CAClBL,QAAS,iBAIjB,EAEa++B,EAAuC,SAAC1/B,GAEnD,IAAM6+B,EAtJgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAyInC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRhJ,QAAS,mBAGXq+B,uBAAwB,CACtBx+B,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,GACT6I,WAAY,2DACZxI,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBn+C,SAAU,WACV6oB,IAAK,EACL5I,MAAO,UACPT,MAAO,IACP0J,WAAY,gCACZy1B,UAAW,SACX3+B,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpBr+B,MAAO,UACPT,MAAO,IACPQ,SAAU,GACVkJ,WAAY,gCACZy1B,UAAW,SACXj2B,OAAQ,YACRS,WAAY,KACZ7I,WAAY,KAGdk+B,kCAAmC,CACjCh/B,MAAO,IACPG,QAAS,mBACT+I,OAAQ,6BACR1I,SAAU,kBACVmJ,WAAY,kBACZV,aAAc,iBACdzoB,SAAU,WACVuoB,OAAQ,GACRC,WAAY,yBAEZ,gBAAclnB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxBj1B,OAAQ,eACRzI,MAAO,+BACP0R,QAAS,eACT3R,SAAU,kBACVmJ,WAAY,kBACZD,WAAY,8CAEd,mBAAoB,CAClBvJ,QAAS,uBACTuJ,WAAY,6CAEd,cAAe,CACbgE,MAAO,QACP0xB,MAAO,GACPj2B,OAAQ,KAIhB,EAEak2B,EAAyC,SAAC7/B,GACrD,IAAM6+B,EAnOgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAsNnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3B,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,IAERrJ,MAAO,mBACPmJ,OAAQ,MAGVu1B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,IACL4Z,gBAAiB,yDAGnBub,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTm+B,sBAAuB,CACrB5+B,MAAO,IACPQ,SAAU,GAEV2I,OAAQ,IACRrI,WAAY,IACZ1P,aAAc,EACdqP,MAAO,QACPkJ,WAAY,OAEZ,+BAAgC,CAC9BnpB,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,gBAAcl9C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxB19B,MAAO,qBACP0R,QAAS,eACT7R,OAAQ,qBAEV,mBAAoB,CAClBH,QAAS,eACTM,MAAO,sBAET,cAAe,CACbiN,MAAO,QACP0xB,MAAO,GACPj2B,OAAQ,KAIhB,EAEam2B,EAA8C,SAAC9/B,GAE1D,IAAM6+B,EAvSgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAyRnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,MAGVq1B,uBAAwB,CACtBr+B,QAAS,GACTH,MAAO,IACPmJ,OAAQ,GACR1I,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdi1B,sBAAuB,CACrBv1B,KAAM,EACN5I,MAAO,UACPT,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,EACR1oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,QAGdq1B,kCAAmC,CACjC7+B,QAAS,mBACT,gBAAcre,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxBl1B,aAAc,iBACdkJ,QAAS,iBAEX,mBAAoB,CAClBhS,QAAS,eACTM,MAAO,oBAIf,EAEa8+B,EAAyC,SAAC//B,GAErD,IAAM6+B,EApVgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAuUnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRhJ,QAAS,EACT6L,cAAe,mBAGjBuyB,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,iBAGVs1B,uBAAwB,CACtBr+B,QAAS,EACTM,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBl+B,MAAO,UACP0I,OAAQ,GACRhI,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZxJ,QAAS,SAGX6+B,kCAAmC,CACjCh/B,MAAO,IACPG,QAAS,yBACT,gBAAcre,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxBj1B,OAAQ,eACRiJ,QAAS,iBAEX,mBAAoB,CAClBhS,QAAS,uBACT+I,OAAQ,wBAEV,cAAe,CACbwE,MAAO,QACP0xB,MAAO,GACPj2B,OAAQ,KAIhB,EAuEaq2B,EAA6C,SAAChgC,GAEzD,IAAM6+B,EAndgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAscnC,MAAO,CAELqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3B79B,MAAO,OACPT,MAAO,mBACPmJ,OAAQ,GACRhJ,QAAS,EACT6I,WAAY,OACZgD,cAAe,mBAGjBuyB,wBAAyB,CACvB7wB,MAAO,QACP1N,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtBrkD,WAAY,EACZqmB,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBl+B,MAAO,QACP0I,OAAQ,GACRD,OAAQ,QACR/H,SAAU,SACVX,SAAU,GACVkJ,WAAY,WACZ5I,WAAY,IACZ6I,WAAY,OACZd,cAAe,GAGjBm2B,kCAAmC,CACjCr1B,WAAY,kBACZD,WAAY,WACZvJ,QAAS,mBACT3f,SAAU,WACV6oB,IAAK,GACL,gBAAcvnB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxBj1B,OAAQ,eACRzI,MAAO,qBACPH,OAAQ,6CACR6R,QAAS,eACT3R,SAAU,oBAEZ,mBAAoB,CAClBhgB,SAAU,sBACV2f,QAAS,kBACT+I,OAAQ,eACRzI,MAAO,qBACPD,SAAU,oBAIlB,E,iGCpdai/B,EAAmC,SAACjgC,GAC/C,IAAAkgC,EA5EqD,CACrDpB,cAAe,CACb79C,QAAS,OACTurB,cAAe,SACf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACV6H,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZq1B,uBAAwB,CACtBt1B,OAAQ,gBACR1I,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,WAGT,6BAA8B,CAC5BhgB,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,YAIrB4yB,sBAAuB,CACrBz1B,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZxI,SAAU,SACVnB,MAAO,QAET6+B,kBAAmB,CACjB11B,OAAQ,GACR3I,SAAU,GACVC,MAAO,WAETm/B,8BAA+B,CAC7Bn/C,QAAS,QAEXg+C,kBAAmB,CACjBj+C,SAAU,oBACVigB,MAAO,qBACPH,OAAQ,4BACR4I,OAAQ,uBACRzoB,QAAS,SACT0xB,QAAS,kBACThS,QAAS,mBACTiO,UAAW,GACXtN,WAAY,IACZ6I,WAAY,EACZV,aAAc,kBAEhB61B,qBAAsB,CACpBr+B,MAAO,OACPhgB,QAAS,eACT+f,SAAU,GACVN,SAAU,IAKJo+B,EAAaoB,EAAbpB,cAAeE,EAAsBkB,EAAtBlB,uBAA2BH,GAAUhX,EAAAA,EAAAA,GAAAqY,EAAApY,GA2B5D,OA1BYxlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBt+B,MAAO,IACPkN,UAAW,IACX/M,QAAS,WACThP,WAAY,eAEdqtC,wBAAsB18C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjB08C,GAAsB,IACzB,4DAA6D,CAC3D/9B,MAAO,OACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,UAGhBk2B,uBAAwB,CACtB5/B,aAAc,EACd,wBAAyB,CACvBgJ,aAAc,KAKtB,EAEa62B,EAA0C,SAACtgC,GACtD,IAAAugC,EA3GqD,CACrDzB,cAAe,CACb79C,QAAS,OACTurB,cAAe,SACf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACV6H,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZq1B,uBAAwB,CACtBt1B,OAAQ,gBACR1I,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,WAGT,6BAA8B,CAC5BhgB,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,YAIrB4yB,sBAAuB,CACrBz1B,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZxI,SAAU,SACVnB,MAAO,QAET6+B,kBAAmB,CACjB11B,OAAQ,GACR3I,SAAU,GACVC,MAAO,WAETm/B,8BAA+B,CAC7Bn/C,QAAS,QAEXg+C,kBAAmB,CACjBj+C,SAAU,oBACVigB,MAAO,qBACPH,OAAQ,4BACR4I,OAAQ,uBACRzoB,QAAS,SACT0xB,QAAS,kBACThS,QAAS,mBACTiO,UAAW,GACXtN,WAAY,IACZ6I,WAAY,EACZV,aAAc,kBAEhB61B,qBAAsB,CACpBr+B,MAAO,OACPhgB,QAAS,eACT+f,SAAU,GACVN,SAAU,IAoCJo+B,EAAayB,EAAbzB,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAA0Y,EAAAC,GA6BpC,OA5BYl+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChB79C,QAAS,QACTuf,MAAO,IACPmJ,OAAQ,IACRE,IAAK,EACLlJ,QAAS,WACToO,UAAW,SAIb0xB,+BAAgC,CAC9Bx/C,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZ,kBAAmB,CACjB3Q,SAAU,WACV4oB,MAAO,GACPD,OAAQ,IACR,QAAS,CACPS,cAAe,aAMzB,EAEas2B,EAAyC,SAAC1gC,GACrD,IAAA2gC,EA5IqD,CACrD7B,cAAe,CACb79C,QAAS,OACTurB,cAAe,SACf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACV6H,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZq1B,uBAAwB,CACtBt1B,OAAQ,gBACR1I,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,WAGT,6BAA8B,CAC5BhgB,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,YAIrB4yB,sBAAuB,CACrBz1B,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZxI,SAAU,SACVnB,MAAO,QAET6+B,kBAAmB,CACjB11B,OAAQ,GACR3I,SAAU,GACVC,MAAO,WAETm/B,8BAA+B,CAC7Bn/C,QAAS,QAEXg+C,kBAAmB,CACjBj+C,SAAU,oBACVigB,MAAO,qBACPH,OAAQ,4BACR4I,OAAQ,uBACRzoB,QAAS,SACT0xB,QAAS,kBACThS,QAAS,mBACTiO,UAAW,GACXtN,WAAY,IACZ6I,WAAY,EACZV,aAAc,kBAEhB61B,qBAAsB,CACpBr+B,MAAO,OACPhgB,QAAS,eACT+f,SAAU,GACVN,SAAU,IAqEJo+B,EAAa6B,EAAb7B,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAA8Y,EAAAC,GA0CpC,OAzCYt+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChB79C,QAAS,QACTuf,MAAO,IACPM,OAAQ,mBACR6I,OAAQ,IACRhJ,QAAS,WACToO,UAAW,+EACXtF,aAAc,OAEhBo3B,8BAA+B,CAC7B5/C,QAAS,OACTyf,SAAU,EACV8L,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVwf,MAAO,IACPmS,QAAS,OACT7R,OAAQ,oBACR2I,aAAc,gBACd1I,aAAc,OACd,yCAA0C,CACxC2I,OAAQ,mBACR3I,aAAc,OACd0I,aAAc,EACdJ,cAAe,EAEf,WAAY,CACVroB,SAAU,WACV6oB,IAAK,GACLD,KAAM,MACN9I,OAAQ,oBACRS,QAAS,KACTkI,aAAc,MAMxB,E,wCChKaq3B,EAAkC,SAAC9gC,GAC9C,IAAA+gC,EAxBkD,CAClDjC,cAAe,CACb79C,QAAS,QACT6f,OAAQ,oBACR4I,OAAQ,OACR/H,SAAU,SACV3gB,SAAU,sBACVwoB,WAAY,OACZsF,UAAW,cACXC,UAAW,OAEX,4BAA6B,CAC3BvO,MAAO,OACPmJ,OAAQ,SAGZq1B,4BAAwBvjD,EACxB+jD,uCAAmC/jD,EACnC0jD,4BAAwB1jD,EACxB6jD,0BAAsB7jD,EACtB4kD,4BAAwB5kD,GAIhBqjD,EAAaiC,EAAbjC,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAkZ,EAAAjZ,GAqFpC,OApFYxlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBt+B,MAAO,IACPmJ,OAAQ,GACRF,aAAc,SACd9I,QAAS,oBAET,4BAA6B,CAC3B1f,QAAS,OACTurB,cAAe,SAInBwyB,uBAAwB,CACtB/9C,QAAS,QACT+f,SAAU,kBACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,YAIXu+B,kCAAmC,CACjCv+B,MAAO,mBACPD,SAAU,kBACVgjB,SAAU,IACVnjB,UAAW,iBACXsJ,WAAY,kBACZC,cAAe,SAEf,eAAgB,CACdnJ,MAAO,mBACPT,MAAO,OACPmJ,OAAQ,GACRD,OAAQ,uBACRzoB,QAAS,0BACT0f,QAAS,mBACTwJ,WAAY,kBACZC,cAAe,SACf/I,gBAAiB,kBACjBP,OAAQ,mBACR2I,aAAc,iBACdzoB,SAAU,sBACVggB,SAAU,mBAGZ,mBAAoB,CAClBC,MAAO,mBACPN,QAAS,mBACTK,SAAU,mBACVH,UAAW,mBACXsJ,WAAY,qBAIhBg1B,uBAAwB,CACtBn+B,SAAU,GACVH,UAAW,EACXS,WAAY,IACZ6I,WAAY,SACZd,cAAe,GAGjBi2B,qBAAsB,CACpBr+B,MAAO,QACPD,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAGdk2B,uBAAwB,CACtB/iB,WAAY,EACZ7c,aAAc,GACd,wBAAyB,CACvBgJ,aAAc,SAKtB,EAEau3B,EAA+B,SAAChhC,GAC3C,IAAAihC,EAjHkD,CAClDnC,cAAe,CACb79C,QAAS,QACT6f,OAAQ,oBACR4I,OAAQ,OACR/H,SAAU,SACV3gB,SAAU,sBACVwoB,WAAY,OACZsF,UAAW,cACXC,UAAW,OAEX,4BAA6B,CAC3BvO,MAAO,OACPmJ,OAAQ,SAGZq1B,4BAAwBvjD,EACxB+jD,uCAAmC/jD,EACnC0jD,4BAAwB1jD,EACxB6jD,0BAAsB7jD,EACtB4kD,4BAAwB5kD,GA6FhBqjD,EAAamC,EAAbnC,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAoZ,EAAAT,GA4GpC,OA3GYl+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbqC,mBAAoB,CAClBjgD,QAAS,OACTurB,cAAe,SACf7a,WAAY,SACZ+X,OAAQ,QAGVo1B,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBrxB,SAAU,IACVhE,aAAc,EAEd,4BAA6B,CAC3BxoB,QAAS,OACTurB,cAAe,MACf7a,WAAY,YAIhBqtC,uBAAwB,CACtB/9C,QAAS,SACT+f,SAAU,kBACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SAEV,qCAAsC,CACpC1gB,QAAS,eACTD,SAAU,aAIdw+C,kCAAmC,CACjCv+C,QAAS,0BACTyoB,OAAQ,8BACRU,cAAe,SAEf,eAAgB,CACdnJ,MAAO,mBACPT,MAAO,OACPmJ,OAAQ,GACRD,OAAQ,uBACRzoB,QAAS,0BACT0f,QAAS,mBACTwJ,WAAY,kBACZC,cAAe,SACf/I,gBAAiB,kBACjBP,OAAQ,mBACR2I,aAAc,iBACdkJ,QAAS,iBACT9I,KAAM,IACN7oB,SAAU,sBACVggB,SAAU,mBAGZ,mBAAoB,CAClBC,MAAO,mBACPD,SAAU,kBACVmJ,WAAY,kBACZxJ,QAAS,uBAIbw+B,uBAAwB,CACtBl+C,QAAS,eACTggB,MAAO,OACPN,QAAS,EACTW,WAAY,IACZ+H,cAAe,EACf,WAAY,CACV9H,QAAS,MACTT,OAAQ,aACR7f,QAAS,eACT0f,QAAS,MACTa,UAAW,iCACX+hB,YAAa,kBACb3oC,YAAa,GACboG,SAAU,WACV4oB,MAAO,GAET,WAAY,CACVrI,QAAS,MACTtgB,QAAS,SACT0f,QAAS,EACTM,MAAO,OACPjgB,SAAU,WACV4oB,KAAM,IAIV01B,qBAAsB,CACpBr+C,QAAS,eACTggB,MAAO,QACPN,QAAS,GAGX0/B,uBAAwB,CACtB1/B,QAAS,CAAC,EAAG,EAAG,EAAG,GACnB,wBAAyB,CACvB8I,aAAc,SAKtB,EC3Ma03B,EAAsC,SAAAnhC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAnBR,CAC9Cw8C,cAAe,CACbr1B,aAAc,gBAEhB23B,yBAAqB3lD,EACrB4lD,0BAAsB5lD,EACtB6lD,yBAAqB7lD,EACrB8lD,mBAAe9lD,EACf+lD,0BAAsB/lD,EACtBgmD,0BAAsBhmD,EACtBsjD,6BAAyBtjD,EACzBimD,+BAA2BjmD,EAC3BkmD,uBAAmBlmD,EACnB4jD,uBAAmB5jD,EACnB8jD,2BAAuB9jD,IAOmB,IAG1CqjD,cAAe,CACbn1B,OAAQ,OACRqH,IAAK,kBACL1H,YAAa,kBACb7I,aAAc,kBACd4I,cAAe,iBACf,mBAAoB,qBAEtB+3B,oBAAqB,CACnBxvC,aAAc,SACd0X,YAAa,SACb7I,aAAc,SACd+L,cAAe,SACf7a,WAAY,SACZ,wBAAyB,sBAE3B4vC,cAAe,CACb/gC,MAAO,OACPmJ,OAAQ,QAEV63B,qBAAsB,CACpBvgC,MAAO,UACPiJ,WAAY,WACZlJ,SAAU,MACV2+B,UAAW,SACXr+B,WAAY,IACZ6I,WAAY,WACZy3B,cAAe,YAEjBH,qBAAsB,CACpBzgC,SAAU,qBACVC,MAAO,UACPkJ,WAAY,uBAEdu3B,0BAA2B,CACzB7gC,UAAW,MACXyI,YAAa,SACb7I,aAAc,SACd7O,aAAc,SACdoP,SAAU,uBAEZqgC,qBAAsB,CACpBpgD,QAAS,QAEX89C,wBAAyB,CACzB,EACAuC,oBAAqB,CACnBrgD,QAAS,OACTq8B,WAAY,SACZjU,cAAe,SACfC,YAAa,SACb7I,aAAc,SACd8iB,YAAa,MACb9xB,eAAgB,gBAChB+X,WAAY,WAEdm4B,kBAAmB,CACjBj4B,OAAQ,iBACR/H,SAAU,oBACV1gB,QAAS,yBACT4gD,gBAAiB,sBACjBC,gBAAiB,eACjBnhC,QAAS,iBACTK,SAAU,qBACVM,WAAY,iBACZL,MAAO,sBAETo+B,kBAAmB,CACjB31B,OAAQ,MACR/I,QAAS,MACTG,OAAQ,MACR7f,QAAS,mBACT+f,SAAU,qBACVC,MAAO,sBAETs+B,sBAAuB,CACrBY,OAAQ,qBACR4B,mBAAoB,kBACpBr0B,UAAW,kBACXD,SAAU,iBACVhE,aAAc,sBACd/X,UAAW,oBACXsP,SAAU,qBACVM,WAAY,iBACZ6I,WAAY,qBACZ4E,UAAW,+BACX9N,MAAO,qBACPhgB,QAAS,OACT0oB,OAAQ,OACRhJ,QAAS,kBACTlP,eAAgB,SAChBE,WAAY,SACZ0P,gBAAiB,uBAClB,EAQU2gC,EAA8C,SAAAhiC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA7HhB,CAC9Cw8C,cAAe,CACbr1B,aAAc,gBAEhB23B,yBAAqB3lD,EACrB4lD,0BAAsB5lD,EACtB6lD,yBAAqB7lD,EACrB8lD,mBAAe9lD,EACf+lD,0BAAsB/lD,EACtBgmD,0BAAsBhmD,EACtBsjD,6BAAyBtjD,EACzBimD,+BAA2BjmD,EAC3BkmD,uBAAmBlmD,EACnB4jD,uBAAmB5jD,EACnB8jD,2BAAuB9jD,IAiHmB,IAG1CqjD,cAAe,CACbn1B,OAAQ,OACR,mBAAoB,qBAEtB43B,cAAe,CACb/gC,MAAO,kBACPmJ,OAAQ,mBAEV63B,qBAAsB,CACpBvgC,MAAO,qBACPiJ,WAAY,sBACZlJ,SAAU,qBACV2+B,UAAW,oBACXr+B,WAAY,iBACZ6I,WAAY,sBACZy3B,cAAe,sBACfE,gBAAiB,eACjBD,gBAAiB,sBACjBlnD,WAAY,kBAEd0mD,qBAAsB,CACpBpgD,QAAS,mBAEXqgD,oBAAqB,CACnBrgD,QAAS,kBACTurB,cAAe,qBACf8Q,WAAY,SACZtM,IAAK,sBAEP2wB,kBAAmB,CACjB1gC,MAAO,qBACPiJ,WAAY,sBACZlJ,SAAU,qBACV2+B,UAAW,oBACXr+B,WAAY,iBACZ6I,WAAY,sBACZy3B,cAAe,sBACf3gD,QAAS,2BAEXghD,qBAAsB,CACpBhhD,QAAS,2BAEXihD,gBAAiB,CACfjhD,QAAS,0BACT0Q,WAAY,WACZF,eAAgB,iBAElB8tC,sBAAuB,CACrBt+C,QAAS,kBACT0f,QAAS,6BACTlP,eAAgB,oBAChBE,WAAY,oBACZ8X,aAAc,qBACdD,WAAY,qBACZU,WAAY,sBACZlJ,SAAU,qBACV2+B,UAAW,oBACXr+B,WAAY,iBACZ6I,WAAY,kBACZlJ,MAAO,qBACPwM,SAAU,mBACX,E,gFCjIU00B,EAAwC,SAACniC,GAEpD,IAAM6+B,EAhE0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAgDnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAM3B99C,SAAU,sBACV0oB,OAAQ,eACRE,KAAM,MACNC,IAAK,iBACLrI,UAAW,wBACXhB,MAAO,kBACPmJ,OAAQ,mBAER,mBAAoB,CAClB6C,cAAe,SACf7a,WAAY,SACZ3Q,SAAU,WACVC,QAAS,OACTwQ,eAAgB,gBAChBoY,IAAK,GACLD,KAAM,MACN3I,MAAO,QACPO,UAAW,kBACX2I,WAAY,OACZ,UAAW,CACTnJ,SAAU,IAEZ,UAAW,CACTA,SAAU,EACVsI,YAAa,MAInB01B,uBAAwB,CACtB/9C,QAAS,OACTurB,cAAe,SACf/a,eAAgB,SAChBE,WAAY,SACZ3Q,SAAU,WACV6oB,IAAK,GACLD,KAAM,QACNE,MAAO,GACPP,OAAQ,QACR/I,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,GACTM,MAAO,QACP0R,QAAS,GACT3R,SAAU,EACVmJ,WAAY,OACZV,aAAc,EACdD,WAAY,eAEd44B,uBAAwB,CACtBphD,SAAU,WACV6oB,IAAK,IACLD,KAAM,IACNpJ,MAAO,GACPQ,SAAU,IAEZqhC,0BAA2B,CACzBrhD,SAAU,WACV6oB,IAAK,EACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,IAEV24B,+BAAgC,CAC9BrhC,MAAO,QACPD,SAAU,EACVtP,UAAW,SACXmP,UAAW,GACXsJ,WAAY,OAEdo4B,yBAA0B,CACxBvhD,SAAU,WACV6oB,IAAK,EACLD,KAAM,GACNpJ,MAAO,IAETgiC,oBAAqB,CACnBxhD,SAAU,WACV6oB,IAAK,EACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,IAEVy1B,sBAAuB,CACrBn+B,MAAO,QACPD,SAAU,EACVtP,UAAW,SACXmP,UAAW,GACXsJ,WAAY,OAEdm1B,qBAAsB,CACpBr+B,MAAO,QACPD,SAAU,EACVtP,UAAW,SACXmP,UAAW,EACXsJ,WAAY,OAEds4B,wBAAyB,CACvBzhD,SAAU,WACV6oB,IAAK,EACLD,MAAO,IACPpJ,MAAO,IAETkiC,2BAA4B,CAC1B1hD,SAAU,WACV6oB,IAAK,EACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,IAEVg5B,6BAA8B,CAC5B1hC,MAAO,QACPD,SAAU,EACVtP,UAAW,SACXmP,UAAW,GACXsJ,WAAY,OAEdy4B,kBAAmB,CACjB5hD,SAAU,WACV6oB,IAAK,IACLD,KAAM,IACNpJ,MAAO,GACPmJ,OAAQ,IAEVk5B,qBAAsB,CACpB7hD,SAAU,WACV6oB,IAAK,IACLD,KAAM,IACNpJ,MAAO,EACPmJ,OAAQ,IAGd,E,qBC5Mam5B,EAAsB,SAAHpmD,GAAA,IAAMyoB,EAAczoB,EAAdyoB,eAAc,OAAO,SAACpD,EAAC5kB,GAAA,IAAA8rB,EAAA9rB,EAAI8iB,QAAAA,OAAO,IAAAgJ,EAAG,CAAC,EAACA,EAAA,MAC3E,CACE85B,0BAA0BhgD,EAAAA,EAAAA,QAAO,CAC/Bke,MAAOhB,EAAQiB,aACfF,SAAU,OACVmJ,WAAY,OACZb,YAAa,OACZnE,EAAe49B,0BAElBC,iBAAiBjgD,EAAAA,EAAAA,QAAO,CACtB,sBAAuB,CACrBse,gBAAiB,QACjBJ,MAAO,UACPD,SAAU,OACVmJ,WAAY,OACZqZ,eAAgB,YAChBla,YAAa,MACbxI,OAAQ,SAETqE,EAAe69B,iBAElBC,mBAAmBlgD,EAAAA,EAAAA,QAAO,CACxB,qBAAsB,CACpByd,MAAO,QACPG,QAAS,QAEX,iBAAkB,CAChBU,gBAAiB,QACjBP,OAAQ,OACRoN,MAAO,QACPrN,UAAW,QAEb,WAAY,CACVI,MAAO,UACPrP,aAAc,QAEhB,aAAc,CACZA,aAAc,OAEhB,oBAAqB,CACnBqP,MAAOhB,EAAQiB,aACfF,SAAU,OACVmJ,WAAY,SAEbhF,EAAe89B,mBACnB,CACD,E,4FC1CIC,EAA2C,SAAArE,GAAU,OAAAv8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEpDu8C,GAAU,IAEbsE,2BAAyB7gD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACpBu8C,EAAWsE,2BAAyB,IAEvCliD,QAAS,SAGX69C,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAE3Bn1B,OAAQ,QACR+D,UAAW,QACX/M,QAAS,uBAGXq+B,wBAAsB18C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBu8C,EAAWG,wBAAsB,IAEpCmB,OAAQ,UAGVf,uBAAqB98C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAChBu8C,EAAWO,uBAAqB,IAEnCz1B,OAAQ,QACR+D,UAAW,SAGb0yB,+BAA6B99C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBu8C,EAAWuB,+BAA6B,IAE3Cv/B,UAAW,QAGbuiC,sBAAoB9gD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfu8C,EAAWuE,sBAAoB,IAElCniD,QAAS,QAET,MAAO,CACLA,QAAS,aAEZ,EA6CQoiD,EAA6C,SAACrjC,GACzD,IAAAsjC,EAAwEJ,EAAyCxC,KAAzG5B,EAAawE,EAAbxE,cAAe+B,EAA6ByC,EAA7BzC,8BAAkChC,GAAUhX,EAAAA,EAAAA,GAAAyb,EAAA1C,GAuBnE,OAtBYt+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAEhBt+B,MAAO,UAGTqgC,+BAA6Bv+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBu+C,GAA6B,IAEhCrgC,MAAO,QACP5O,aAAc,SAGhB2xC,gBAAcjhD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTu8C,EAAW0E,gBAAc,IAE5B75B,OAAQ,aAId,EC7Fa85B,EAAgD,SAACxjC,GAE5D,IAAM6+B,EA7BgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GAO5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRhJ,QAAS,iBACTG,OAAQ,kCAGVi+B,yBAAuBz8C,EAAAA,EAAAA,GAAA,CACrBke,MAAO,IACPmJ,OAAQ,KACLk1B,EAAWE,yBAGhBC,uBAAwB,CACtBx+B,MAAO,IACPmJ,OAAQ,KAGV85B,uBAAwB,CACtB95B,OAAQ,IACRhJ,QAAS,cACTmO,UAAW,cAGb60B,0BAA2B,CACzB1iD,QAAS,OACT2Q,aAAc,GAGhByuC,uBAAwB,CACtB12B,OAAQ,GACRnJ,MAAO,GACP5lB,YAAa,EACb,wBAAyB,CACvB6uB,aAAc,iBACd,QAAS,CACPW,cAAe,SAKrBs5B,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,sBAGTk+B,uBAAwB,CACtBl+B,MAAO,qBACPiJ,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZvY,aAAc,EACd+X,OAAQ,IAGV21B,qBAAsB,CACpBr+B,MAAO,qBACPiJ,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZwJ,WAAY,SACZD,aAAc,WACd/R,SAAU,UAGZkiC,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,WACT1f,QAAS,OACT0Q,WAAY,UAGdoyC,wBAAyB,CACvBnpD,YAAa,GAGfopD,2BAA4B,CAC1BtjC,SAAU,EACViJ,OAAQ,IAGVm6B,kBAAmB,CACjB7iD,QAAS,eACTmpB,cAAe,OAGjBm1B,sBAAuB,CACrBz+B,OAAQ,mCACRH,QAAS,UACT8I,aAAc,MACdxI,MAAO,sBACPiJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZ9I,gBAAiB,eAGnBuiC,4BAA6B,CAC3B9iC,OAAQ,OACRG,MAAO,uBACPiJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,QAGlB,EAEa85B,EAAkD,SAACjkC,GAE9D,IAAM6+B,EAtJgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GAgI5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,iBACdsF,UAAW,4FACX,4BAA6B,CAC3B9tB,QAAS,OACTurB,cAAe,4BAInBuyB,yBAAuBz8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACrBwsB,UAAW,aACXtO,MAAO,IACPmJ,OAAQ,OACRhJ,QAAS,iBACNk+B,EAAWE,yBAAuB,IACrC,wBAAyB,CACvBt1B,aAAc,oBAIlBu1B,uBAAwB,CACtBt+B,SAAU,EACViJ,OAAQ,QAGVg6B,0BAA2B,CACzB/xC,aAAc,GAGhB8xC,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,sBAGTwiC,uBAAwB,CACtB95B,OAAQ,GACRhJ,QAAS,YACTmO,UAAW,cAGbqwB,uBAAwB,CACtBj1B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,sBAGT4iC,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,UACT1f,QAAS,OACT0Q,WAAY,UAGdqyC,2BAA4B,CAC1BtjC,SAAU,EACViJ,OAAQ,IAGVm6B,kBAAmB,CACjB7iD,QAAS,eACTmpB,cAAe,OAGrB,EAEa85B,EAAkD,SAAClkC,GAC9D,IAAM6+B,EApOgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GA8M5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,iBACdsF,UAAW,oBAGbgwB,yBAAuBz8C,EAAAA,EAAAA,GAAA,CACrBke,MAAO,OACPmJ,OAAQ,QACLk1B,EAAWE,yBAGhBC,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNE,MAAO,EACPP,OAAQ,EACR/I,MAAO,OACPmJ,OAAQ,QACRH,WAAY,0EAGdi6B,uBAAwB,CACtBnmB,WAAY,OACZ3T,OAAQ,QACRmF,UAAW,cAGbswB,sBAAuB,CACrBz+B,QAAS,WACTuJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,yBACPhgB,QAAS,cACT,qBAAsB,WACtB,qBAAsB,EACtB0gB,SAAU,UAGZkiC,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,WACT1f,QAAS,OACT0Q,WAAY,UAGdqyC,2BAA4B,CAC1BppD,YAAa,EACb+uB,OAAQ,IAGVm6B,kBAAmB,CACjBK,YAAa,sCACbljC,MAAO,oBAGTyiC,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZzJ,SAAU,EACVO,MAAO,SAGb,EAEamjC,EAA4D,SAACpkC,GAExE,IAAM6+B,EAjTgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GA2R5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Br1B,aAAc,iBACdjJ,MAAO,mBACPmJ,OAAQ,MAGVq1B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNE,MAAO,EACPP,OAAQ,EACR/I,MAAO,OACPmJ,OAAQ,SAGVu1B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRH,WAAY,8IAGdi6B,uBAAwB,CACtB9iC,QAAS,gBACT+M,UAAW,OACXoB,UAAW,aACXtF,WAAY,qKAGdm6B,0BAA2B,CACzB1iD,QAAS,OACT2Q,aAAc,GAGhByuC,uBAAwB,CACtB12B,OAAQ,GACRnJ,MAAO,GACP5lB,YAAa,EACb,wBAAyB,CACvB6uB,aAAc,iBACd,QAAS,CACPW,cAAe,SAKrBs5B,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,SAGTk+B,uBAAwB,CACtBl+B,MAAO,QACPiJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,QAGd05B,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,WACT1f,QAAS,OACT0Q,WAAY,SACZ6X,WAAY,sFAGdu6B,wBAAyB,CACvBnpD,YAAa,GAGfopD,2BAA4B,CAC1BtjC,SAAU,EACViJ,OAAQ,IAGVm6B,kBAAmB,CACjB7iD,QAAS,eACTmpB,cAAe,MACf+5B,YAAa,sCACbljC,MAAO,oBAGTs+B,sBAAuB,CACrBz+B,OAAQ,YACRujC,kBAAmB,oFACnB1jC,QAAS,UACT8I,aAAc,MACdxI,MAAO,yBACPiJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZ9I,gBAAiB,6BAGnBuiC,4BAA6B,CAC3B9iC,OAAQ,OACRG,MAAO,QACPiJ,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZ9I,gBAAiB,eAGvB,EAEaijC,EAAuD,SAACtkC,GAEnE,IAAM6+B,EAvagD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GAgZ5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,kBACdsF,UAAW,8FAGbgwB,yBAAuBz8C,EAAAA,EAAAA,GAAA,CACrBqnB,OAAQ,KACLk1B,EAAWE,yBAGhB0E,uBAAwB,CACtB9iC,QAAS,cACT/O,aAAc,GACd+X,OAAQ,GACRmF,UAAW,cAGbswB,sBAAuB,CACrBl1B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,uBAGT4iC,8BAA+B,CAC7BljC,QAAS,WAGX+iC,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,uBAGb,EAEasjC,GAA6C,SAACvkC,GAEzD,IAAM6+B,EArdgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GA+b5B,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,iBACdsF,UAAW,4FACX,4BAA6B,CAC3B9tB,QAAS,OACTurB,cAAe,oBAInBuyB,yBAAuBz8C,EAAAA,EAAAA,GAAA,CACrBke,MAAO,IACPmJ,OAAQ,KACLk1B,EAAWE,yBAGhBC,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,OACZR,OAAQ,KAGV85B,uBAAwB,CACtB9iC,QAAS,YACT/O,aAAc,GACd+X,OAAQ,GACRmF,UAAW,cAGbqwB,uBAAwB,CACtBj1B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,sBAGT4iC,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,UACT1f,QAAS,OACT0Q,WAAY,UAGdqyC,2BAA4B,CAC1BppD,YAAa,EACb+uB,OAAQ,IAGV+5B,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,sBAGb,EAEaujC,GAAsD,SAACxkC,GAElE,IAAM6+B,EAzhBgD,CACtDC,cAAe,CAGb,EAEFC,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBgoD,4BAAwBhoD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB4kD,4BAAwB5kD,EACxBioD,oCAAgCjoD,EAChC0jD,4BAAwB1jD,EACxBkoD,+BAA2BloD,EAC3B2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvBmoD,iCAA6BnoD,EAC7B+jD,uCAAmC/jD,EACnCooD,mCAA+BpoD,EAC/BqoD,uBAAmBroD,EACnBsoD,6BAAyBtoD,EACzBuoD,gCAA4BvoD,GAmgB5B,MAAO,CAELqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRhJ,QAAS,OACT6I,WAAY,OACZC,aAAc,iBACd3I,OAAQ,mEACRiO,UAAW,iDACX,4BAA6B,CAC3B9tB,QAAS,OACTurB,cAAe,4BAInBuyB,yBAAuBz8C,EAAAA,EAAAA,GAAA,CACrBke,MAAO,IACPmJ,OAAQ,IACRhvB,WAAY,IACTkkD,EAAWE,yBAGhB4E,0BAA2B,CACzB1iD,QAAS,OACT2Q,aAAc,GAGhByuC,uBAAwB,CACtB12B,OAAQ,GACRnJ,MAAO,GACP5lB,YAAa,EACb,wBAAyB,CACvB6uB,aAAc,iBACd,QAAS,CACPW,cAAe,SAKrBs5B,+BAAgC,CAC9Bx5B,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,sBAGT+9B,uBAAwB,CACtBt+B,SAAU,GAGZ+iC,uBAAwB,CACtB7xC,aAAc,GACd+X,OAAQ,IAGVw1B,uBAAwB,CACtBj1B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,sBAGT4iC,8BAA+B,CAC7Bl6B,OAAQ,GACRmF,UAAW,aACXnO,QAAS,MACT1f,QAAS,OACT0Q,WAAY,UAGdqyC,2BAA4B,CAC1BtjC,SAAU,EACViJ,OAAQ,IAGVm6B,kBAAmB,CACjB7iD,QAAS,eACTmpB,cAAe,OAGrB,EChnBaq6B,GAA2C,WA6HtD,MA5He,CACbvD,mBAAoB,CAClBx3B,OAAQ,OACRlJ,MAAO,OACPmJ,OAAQ,OACR1oB,QAAS,OACT0Q,WAAY,SACZF,eAAgB,SAChBizC,UAAW,QAGb5F,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,qBACT1f,QAAS,OACT0Q,WAAY,SACZwuC,OAAQ,UAER,4BAA6B,CAC3Bl/C,QAAS,OACTurB,cAAe,MACf7a,WAAY,SACZgY,OAAQ,QAGV,UAAW,CACTtI,gBAAiB,2BAIrBsjC,gBAAiB,CACfj7B,OAAQ,UACRC,OAAQ,EACRnJ,MAAO,GAGTw+B,uBAAwB,CACtB/9C,QAAS,QACTD,SAAU,WACV2oB,OAAQ,OACRnJ,MAAO,KAGTsjC,kBAAmB,CACjB9iD,SAAU,WACV8oB,MAAO,GACPD,IAAK,EACLrJ,MAAO,GACPmJ,OAAQ,kBACRF,aAAc,iBACd3I,OAAQ,4CACRH,QAAS,qBACTmO,UAAW,wBACXpd,UAAW,oBACX4P,WAAY,iBACZN,SAAU,kBACVmJ,WAAY,kBACZlJ,MAAO,mCAGT2jC,SAAU,CACR5jD,SAAU,WACV8oB,MAAO,EACPD,IAAK,GAGP21B,kCAAmC,CACjCt1B,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBj1B,WAAY,WACZlJ,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZlJ,MAAO,yBAGT4jC,sBAAuB,CACrB5jD,QAAS,OACT6jD,SAAU,SACVnzC,WAAY,UAGd4tC,sBAAuB,CACrBwF,WAAY,EACZp7B,OAAQ,OACRF,aAAc,MACd3I,OAAQ,mCACRO,gBAAiB,cACjBV,QAAS,UACTuJ,WAAY,WACZ5I,WAAY,IACZN,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,sBACPtmB,WAAY,MACZm0B,UAAW,cAGbwwB,qBAAsB,CACpBr+B,MAAO,sBACPD,SAAU,GACVmJ,WAAY,OACZD,WAAY,WACZ5I,WAAY,IACZqS,WAAY,SACZD,aAAc,WACd/R,SAAU,SACVjB,SAAU,GAGZ2/B,uBAAwB,CACtB7/B,MAAO,GACP5lB,YAAa,GACb,wBAAyB,CACvB6uB,aAAc,mBAKtB,EAEau7B,GAAwC,WAyHnD,MAxHe,CACb9D,mBAAoB,CAClBx3B,OAAQ,OACRlJ,MAAO,OACPmJ,OAAQ,OACR1oB,QAAS,OACT0Q,WAAY,SACZ+yC,UAAW,QAGb5F,cAAe,CACbt+B,MAAO,KACPmJ,OAAQ,GACRF,aAAc,EACdxoB,QAAS,OACTurB,cAAe,MACfu4B,WAAY,EACZpzC,WAAY,SACZ0P,gBAAiB,QACjBN,aAAc,uEACdgO,UAAW,gDACXtO,aAAc,GACdqO,UAAW,aAEX,4BAA6B,CAC3B7tB,QAAS,OACTurB,cAAe,MACf7a,WAAY,SACZgY,OAAQ,OACRjJ,SAAU,IAIdikC,gBAAiB,CACf1jD,QAAS,OACT0Q,WAAY,SACZgY,OAAQ,OACRnJ,MAAO,GACP,iBAAkB,CAChBmJ,OAAQ,OACRnJ,MAAO,MACPa,gBAAiB,wBACjBE,QAAS,GACTtgB,QAAS,SAGX,kBAAmB,CACjBuf,MAAO,GACPmJ,OAAQ,GACRhvB,WAAY,IAIhBqkD,uBAAwB,CACtBh+C,SAAU,WACVC,QAAS,OACT0Q,WAAY,SACZgY,OAAQ,OACRjJ,SAAU,EACVC,QAAS,kBACTmO,UAAW,aAEX,qCAAsC,CACpC7tB,QAAS,eACTD,SAAU,aAId8iD,kBAAmB,CACjB9iD,SAAU,WACV4oB,KAAM,IACNC,IAAK,EACLrJ,MAAO,GACPmJ,OAAQ,kBACR7I,OAAQ,4CACRH,QAAS,qBACTmO,UAAW,wBACXpd,UAAW,oBACX+X,aAAc,iBACdnI,WAAY,iBACZN,SAAU,kBACVmJ,WAAY,kBACZlJ,MAAO,mCAGT2jC,SAAU,CACR5jD,SAAU,WACV4oB,KAAM,IACNC,IAAK,GAGP21B,kCAAmC,CACjCh/B,MAAO,IACP5lB,YAAa,IAGfukD,uBAAwB,CACtBvkD,YAAa,EACbsvB,WAAY,WACZ5I,WAAY,MACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,yBAGTq+B,qBAAsB,CACpBp1B,WAAY,WACZ5I,WAAY,IACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,uBAGTo/B,uBAAwB,CACtB7/B,MAAO,GACP,wBAAyB,CACvBiJ,aAAc,mBAKtB,ECnPMw7B,GAAuB,SAAHvoD,GASnB,IARLwoD,EAASxoD,EAATwoD,UACAlhC,EAAGtnB,EAAHsnB,IACAxD,EAAK9jB,EAAL8jB,MACAmJ,EAAMjtB,EAANitB,OACA3pB,EAAQtD,EAARsD,SACAmlD,EAAyBzoD,EAAzByoD,0BACAvvC,EAAOlZ,EAAPkZ,QACA0+B,EAAyB53C,EAAzB43C,0BAEM8Q,GAAShlD,EAAAA,EAAAA,UAAQ,kBAAQogB,GAASmJ,EAAW,CACjDnJ,MAAOA,EAAK,GAAAthB,OAAMshB,EAAK,WAAO/kB,EAC9BkuB,OAAQA,EAAM,GAAAzqB,OAAMyqB,EAAM,WAAOluB,QAC9BA,CAAS,GAAG,CAACkuB,EAAQnJ,IAE1B,OACE1f,EAAAA,EAAAA,MAAA,OAAKC,MAAOqkD,EAAQjjD,UAAWwO,IAAW2jC,EAA4B1+B,EAAQyvC,8BAAgCzvC,EAAQ0vC,sBAAuBJ,GAAatvC,EAAQ2vC,yBAA0BJ,EAA2B,6BAA6BnlD,SAAA,CACjPgkB,IACCnmB,EAAAA,EAAAA,KAAA,KACEsE,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAM3X,EAAIhkB,SAETA,KAGHgkB,IACAnmB,EAAAA,EAAAA,KAAA,OACEsE,UAAU,yBAAwBnC,SAEjCA,MAKX,EAeAilD,GAAqBlnD,aAAe,CAClCmnD,WAAW,EACXlhC,SAAKvoB,EACL+kB,WAAO/kB,EACPkuB,YAAQluB,EACR0pD,+BAA2B1pD,GAGtB,IAAM+pD,GAAmB1H,EAC9BmH,ICnEoC,WAAC,MAAiB,CACtDI,8BAA+B,CAC7BpkD,QAAS,OACTurB,cAAe,SAEf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,aACXnN,SAAU,SACVoN,UAAW,2EACXtF,aAAc,EACdD,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZ27B,qBAAsB,CACpBrkD,QAAS,OACTurB,cAAe,SAEf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACVoN,UAAW,+EACXtF,aAAc,KACdD,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZ47B,yBAA0B,CACxB5yB,QAAS,IAEZ,GD2BC,CAAEwrB,cAAe,sBEjENsH,GAA4B,SAAH/oD,GAM/B,IALL07B,EAAQ17B,EAAR07B,SACAnU,EAAUvnB,EAAVunB,WACAyhC,EAAehpD,EAAfgpD,gBACAC,EAAkCjpD,EAAlCipD,mCACA3lD,EAAQtD,EAARsD,SAEA,OAAI0lD,GAEA7nD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWg1C,EAAoC,0BAA0B3lD,SACtFA,KAKLnC,EAAAA,EAAAA,KAAA,KACEsE,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAMvD,GAAYnU,EAAWjkB,SAE5BA,GAGP,EAUAylD,GAA0B1nD,aAAe,CACvCq6B,cAAU38B,EACVwoB,gBAAYxoB,EACZiqD,iBAAiB,EACjBC,wCAAoClqD,GCnCtC,IAAMmqD,GAAc,SAAHlpD,GAAA,IACfa,EAAIb,EAAJa,KAAMumD,EAAiBpnD,EAAjBonD,kBAAmBluC,EAAOlZ,EAAPkZ,QAAS0+B,EAAyB53C,EAAzB43C,0BAAyB,OAE3Dz2C,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW2jC,EAA4B1+B,EAAQiwC,qBAAuBjwC,EAAQkwC,YAAahC,GAAmB9jD,SAC3HzC,EAAKsH,UAAU,OACZ,EAaR+gD,GAAY7nD,aAAe,CACzB+lD,uBAAmBroD,GAGd,IAAMsqD,GAAUjI,EACrB8H,IC9B8B,WAAC,MAAiB,CAChDE,YAAa,CACX9kD,SAAU,WACVqgB,gBAAiB,QACjBJ,MAAO,QACPD,SAAU,GACVyI,aAAc,EACd9I,QAAS,sBACT+I,OAAQ,EACRiJ,QAAS,OAGXkzB,qBAAsB,CACpB5kD,QAAS,eACTmpB,cAAe,MACfX,aAAc,MACd3I,OAAQ,oCACRH,QAAS,UACTgJ,OAAQ,GACRmF,UAAW,aACX5E,WAAY,WACZ5I,WAAY,IACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,yBAEV,GDMC,CAAEk9B,cAAe,YEvBN6H,GAA+B,SAAHtpD,GAAA,IACvCkoB,EAAYloB,EAAZkoB,aACAoT,EAAYt7B,EAAZs7B,aACAiuB,EAAWvpD,EAAXupD,YACA1oD,EAAIb,EAAJa,KACA2oD,EAAaxpD,EAAbwpD,cACAtwC,EAAOlZ,EAAPkZ,QACA0+B,EAAyB53C,EAAzB43C,0BAAyB,OAEzBxzC,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW2jC,EAA4B1+B,EAAQuwC,uBAAyBvwC,EAAQwwC,6BAA8BF,GAAelmD,SAAA,CAEzIg4B,IAAgBn6B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,YAAWnC,SAAEzC,EAAKsH,UAAUC,QAG5D8f,IAAgB/mB,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,gBAAenC,SAAE4kB,IAGjDqhC,IAAepoD,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,WAAW6yB,IAAI,OAAOD,IAnBvC,i+BAqBX,EAgBRixB,GAA6BjoD,aAAe,CAC1C6mB,kBAAcnpB,EACdyqD,mBAAezqD,EACfu8B,cAAc,EACdiuB,aAAa,GAGR,IAAMI,GAA2BvI,EACtCkI,ICpD8C,WAAC,MAAiB,CAChEI,6BAA8B,CAC5BzlC,QAAS,CAAC,EAAG,GACbgB,SAAU,SACVd,UAAW,EACX8S,WAAY,SACZD,aAAc,WACdzS,MAAO,OACPD,SAAU,GACVmJ,WAAY,OAEZ,eAAgB,CACdnpB,SAAU,WACV2f,QAAS,WACT+I,OAAQ,YACRF,WAAY,cACZvI,MAAO,UACPkJ,WAAY,MACZnJ,SAAU,OACVM,WAAY,MACZ4I,WAAY,qCACZpJ,OAAQ,qBACR2I,aAAc,OAGhB,mBAAoB,CAClB9H,SAAU,SACVgS,WAAY,SACZD,aAAc,WACdzS,MAAO,OACPD,SAAU,GACVmJ,WAAY,MACZxJ,QAAS,QACTE,UAAW,IAIfslC,uBAAwB,CACtBj8B,WAAY,WACZ5I,WAAY,IACZN,SAAU,OACVmJ,WAAY,OACZlJ,MAAO,oBAEV,GDUC,CAAEk9B,cAAe,8BE/CbmI,GAAe,SAAH5pD,GAAA,IAChB6pD,EAAiB7pD,EAAjB6pD,kBAAmB3wC,EAAOlZ,EAAPkZ,QAAO,OAE1B/X,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4wC,0BAA2BD,IAAsB,EAUtFD,GAAavoD,aAAe,CAC1BwoD,uBAAmB9qD,GAGd,IAAMgrD,GAAoB3I,EAC/BwI,ICzBwC,WAAC,MAAiB,CAC1DE,0BAA2B,CACzBvlD,QAAS,QACTD,SAAU,WACVwf,MAAO,OACPmJ,OAAQ,QAEX,GDoBC,CAAEw0B,cAAe,uB,qCExBNuI,GAAW,SAAC3I,GACvB,IAAM4I,EAAMzoD,EAAAA,MAAW,SAAAgE,GAAK,OAC1BrE,EAAAA,EAAAA,KAAA,KACEsE,UAAU,iBACVw5B,KAAMz5B,EAAMk2B,SACZsD,IAAI,sBACJ9wB,OAAO,SAAQ5K,UAEfnC,EAAAA,EAAAA,KAACkgD,GAAgBz7C,EAAAA,EAAAA,GAAA,GAAKJ,KACpB,IAON,OAJAykD,EAAI9kD,UAAY,CACdu2B,SAAUt2B,KAAAA,OAAiBC,YAGtB4kD,CACT,ECbaC,GAAgB1oD,EAAAA,YAAiB,SAAAxB,EAI3CoB,GAAG,IAHJE,EAAItB,EAAJsB,KACA6oD,EAAWnqD,EAAXmqD,YACAC,EAAsBpqD,EAAtBoqD,uBAAsB,OAEtBD,GACEhpD,EAAAA,EAAAA,KAACg6B,GAAAA,sBAAqB,CACpB/5B,IAAKA,EACLqE,UAAWwO,IAAWm2C,GACtB9oD,KAAMA,KAENH,EAAAA,EAAAA,KAAA,OAAKsE,UAAW2kD,EAAuB9mD,SACpChC,GAEJ,IAGL4oD,GAAc/kD,UAAY,CACxB7D,KAAM8D,KAAAA,OACN+kD,YAAa/kD,KAAAA,KAAeC,WAC5B+kD,uBAAwBhlD,KAAAA,QAG1B8kD,GAAc7oD,aAAe,CAC3B+oD,4BAAwBrrD,EACxBuC,UAAMvC,GAKD,IAAMsrD,GAAoB7oD,EAAAA,YAAiB,SAAAf,EAI/CW,GAAG,IAHJkpD,EAAY7pD,EAAZ6pD,aACAH,EAAW1pD,EAAX0pD,YACAI,EAA0B9pD,EAA1B8pD,2BAA0B,OAE1BppD,EAAAA,EAAAA,KAAC+oD,GAAa,CACZ9oD,IAAKA,EACL+oD,YAAaA,EACb7oD,KAAMgpD,EACNF,uBAAwBn2C,IAAWs2C,IACnC,IAGJF,GAAkBllD,UAAY,CAC5BmlD,aAAcllD,KAAAA,OACd+kD,YAAa/kD,KAAAA,KACbmlD,2BAA4BnlD,KAAAA,QAG9BilD,GAAkBhpD,aAAe,CAC/BipD,kBAAcvrD,EACdorD,aAAa,EACbI,gCAA4BxrD,GAGvB,IAAMyrD,GAA4BR,GAASK,IAIrCI,GAAoBjpD,EAAAA,YAAiB,SAAA2M,EAK/C/M,GAAG,IAJJ+oD,EAAWh8C,EAAXg8C,YACAzuB,EAAQvtB,EAARutB,SACAnU,EAAUpZ,EAAVoZ,WACAmjC,EAA0Bv8C,EAA1Bu8C,2BAA0B,OAE1BvpD,EAAAA,EAAAA,KAAC+oD,GAAa,CACZ9oD,IAAKA,EACL+oD,YAAaA,EACb7oD,KAAMimB,GAAcmU,EACpB0uB,uBAAwBn2C,IAAWy2C,IACnC,IAGJD,GAAkBtlD,UAAY,CAC5Bu2B,SAAUt2B,KAAAA,OACVmiB,WAAYniB,KAAAA,OACZ+kD,YAAa/kD,KAAAA,KACbslD,2BAA4BtlD,KAAAA,QAG9BqlD,GAAkBppD,aAAe,CAC/Bq6B,cAAU38B,EACVwoB,gBAAYxoB,EACZ2rD,gCAA4B3rD,EAC5BorD,aAAa,GAGR,IAAMQ,GAA4BX,GAASS,IAIrCG,GAAuBppD,EAAAA,YAAiB,SAAA2R,EAIlD/R,GAAG,IAHJ6mB,EAAW9U,EAAX8U,YACAkiC,EAAWh3C,EAAXg3C,YACAU,EAA6B13C,EAA7B03C,8BAA6B,OAE7B1pD,EAAAA,EAAAA,KAAC+oD,GAAa,CACZ9oD,IAAKA,EACL+oD,YAAaA,EACb7oD,KAAM2mB,EACNmiC,uBAAwBn2C,IAAW42C,IACnC,IAGJD,GAAqBzlD,UAAY,CAC/B8iB,YAAa7iB,KAAAA,OACb+kD,YAAa/kD,KAAAA,KACbylD,8BAA+BzlD,KAAAA,QAGjCwlD,GAAqBvpD,aAAe,CAClC4mB,iBAAalpB,EACb8rD,mCAA+B9rD,EAC/BorD,aAAa,GCpHR,IAAMW,GAAkB,SAAH9qD,GAAA,IAC1Bo3B,EAAUp3B,EAAVo3B,WACA2zB,EAAwB/qD,EAAxB+qD,yBAAwB,OACnB3zB,GACLj2B,EAAAA,EAAAA,KAAA,UAAQsE,UAAWwO,IAAW82C,GAA0BznD,SACrD8zB,IACS,IAAI,EAQlB0zB,GAAgBzpD,aAAe,CAC7B+1B,gBAAYr4B,EACZgsD,8BAA0BhsD,G,iBCdfisD,GAAiB,SAAHhrD,GAOpB,IANLa,EAAIb,EAAJa,KACAy7B,EAAKt8B,EAALs8B,MACA2uB,EAAUjrD,EAAVirD,WACAC,EAAuBlrD,EAAvBkrD,wBACAC,EAAkBnrD,EAAlBmrD,mBACAC,EAAuBprD,EAAvBorD,wBAEA,OAAI9uB,GAASA,EAAMjE,IACb4yB,GAEA9pD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWm3C,EAAyB,4BAA4B9nD,UAC9EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfS,YAAazD,EAAMwU,aAAexU,EAAMwU,aAAa/Q,YAAc,EACnEH,QAAStD,EAAMwU,aAAexU,EAAMwU,aAAalR,QAAU,EAC3DE,QAASxD,EAAMwU,aAAexU,EAAMwU,aAAahR,QAAU,EAC3DrD,YAAayuB,EACbxrB,eAAgBpD,EAAMrP,OACtBuS,cAAelD,EAAMxY,MACrByb,kBAAmB4rB,EACnB9yB,IAAKiE,EAAMjE,SAKXl3B,EAAAA,EAAAA,KAACkqD,GAAAA,EAAK,CACZ5lD,UAAWwO,IAAWm3C,EAAyB,4BAC/C/yB,IAAKiE,EAAMjE,IACXpL,OAAQk+B,EACR7yB,IAAKz3B,EAAKsH,UAAUC,oBACpBkjD,cAAY,IAGT,IACT,EAyBAN,GAAe3pD,aAAe,CAC5Bi7B,MAAO,CAAC,EACR2uB,YAAY,EACZC,wBAAyB,KACzBC,mBAAoB,IACpBC,wBAAyB,I,iFC7DdG,GAA2B/pD,EAAAA,YAAiB,SAAAxB,EAItDoB,GAAS,IAHVP,EAAIb,EAAJa,KACA2qD,EAAUxrD,EAAVwrD,WACA/iC,EAAczoB,EAAdyoB,eAEMvP,GAAUuQ,EAAAA,GAAAA,kBAAiB28B,EAAoB,CAAE39B,eAAAA,KAEvD,OAAQzkB,EAAAA,EAAAA,SAAQwnD,IAA+C,mBAAhCA,EAAWC,iBAStC,MARFtqD,EAAAA,EAAAA,KAACuqD,GAAAA,EAAI,CACHjmD,UAAWwO,IAAW,iBAAkBiF,EAAQmtC,0BAChDjlD,IAAKA,EACL8M,OAAO,SACP+wB,MAAM0sB,EAAAA,EAAAA,OAAMH,EAAWxwC,WAAW1X,SAEjCzC,EAAKsH,UAAUC,cAGtB,IAaAmjD,GAAyBlqD,aAAe,CACtCmqD,WAAY,CAAC,EACb/iC,eAAgB,CAAC,GAGZ,IAAMmjC,GAAkB,SAAHnrD,GAIrB,IAHLI,EAAIJ,EAAJI,KACA2qD,EAAU/qD,EAAV+qD,WACA/iC,EAAchoB,EAAdgoB,eAEMvP,GAAUuQ,EAAAA,GAAAA,kBAAiB28B,EAAoB,CAAE39B,eAAAA,KACvDhb,GAAsCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,GAAAA,GAAAH,EAAA,GAA9Co+C,EAAWl+C,EAAA,GAAEm+C,EAAcn+C,EAAA,GAC5BvM,GAAMoC,EAAAA,EAAAA,UAEZ,OAAQQ,EAAAA,EAAAA,SAAQwnD,IAA+C,UAAhCA,EAAWC,iBAoCtC,MAnCFrnD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAW,mBAAoBiF,EAAQotC,iBAAiBhjD,SAAA,EACtEnC,EAAAA,EAAAA,KAAA,UACEsE,UAAU,mBACVgd,QAAS,WAAF,OAAQqpC,GAAgBD,EAAY,EAC3CzqD,IAAKA,EAAIkC,SAERkoD,EAAWrqC,QAEb0qC,IACCznD,EAAAA,EAAAA,MAAC08C,GAAAA,EAAO,CACNr7C,UAAWwO,IAAW,qBAAsBiF,EAAQqtC,mBACpDwF,gBAAgBC,EAAAA,GAAAA,GAAM,oBACtBC,iBAAiBD,EAAAA,GAAAA,GAAM,0BACvB99C,OAAQ9M,GAAOA,EAAI6C,QACnBioD,gBAAiBC,GAAAA,EAAgBC,eACjCn9B,SAAU,EACVo9B,eAAe,EACfC,iBAAe,EACf95B,UAAW,WAAF,OAAQs5B,GAAe,EAAM,EAACxoD,SAAA,EAEvCnC,EAAAA,EAAAA,KAAA,UAAQsE,UAAU,QAAQ,aAAY5E,EAAKsH,UAAUC,SAAgBqa,QAAS,WAAF,OAAQqpC,GAAe,EAAM,EAACxoD,UACxGnC,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,4BAElBtE,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,QAAQvF,IAAI8rD,EAAAA,GAAAA,GAAM,oBAAoB1oD,SAClDzC,EAAKsH,UAAUC,iBAElBjH,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,UAAUvF,IAAI8rD,EAAAA,GAAAA,GAAM,0BAA0B1oD,SAC1DkoD,EAAWe,aAEdprD,EAAAA,EAAAA,KAACuqD,GAAAA,EAAI,CAACjmD,UAAU,iBAAiB+c,UAAUxe,EAAAA,EAAAA,SAAQwnD,EAAWxwC,WAAYikB,MAAM0sB,EAAAA,EAAAA,OAAMH,EAAWxwC,YAAc,GAAI9M,OAAO,SAAQ5K,SAC/HzC,EAAKsH,UAAU,qBAM5B,EAeAyjD,GAAgBvqD,aAAe,CAC7BmqD,WAAY,CAAC,EACb/iC,eAAgB,CAAC,GCtGZ,IAAM+jC,GAAuB,SAAHxsD,GAAA,IAC/BkoB,EAAYloB,EAAZkoB,aACAqV,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KACA9T,EAAU1oB,EAAV0oB,WACAxP,EAAOlZ,EAAPkZ,QAAO,OAEP9U,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ+tC,0BAA2B,2BAA2B3jD,SAAA,CACtFi6B,GAAYf,IACXr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmB7W,GAAc,GACjC2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,MAIlBvU,IAAgB/mB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ8tC,+BAAgC,sBAAsB1jD,SAAE4kB,MACxG,EAyBRskC,GAAqBnrD,aAAe,CAClC6mB,kBAAcnpB,EACd2pB,WAAY,GACZ8T,UAAMz9B,GCnDR,IAAM0tD,GAAa,SAAHzsD,GAAA,IAAMqnD,EAAuBrnD,EAAvBqnD,wBAAuB,OAC3ClmD,EAAAA,EAAAA,KAAA,OAAKsE,UAAW4hD,EAAyBvjC,MAAM,KAAKmJ,OAAO,KAAKy/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BtpD,UAChInC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,mjDAAmjDF,KAAK,UAAUG,YAAY,UACllD,EAGFC,GAAmB,SAAHtsD,GAAA,IAAM4mD,EAAuB5mD,EAAvB4mD,wBAAuB,OACjDlmD,EAAAA,EAAAA,KAAA,OAAKsE,UAAW4hD,EAAyBvjC,MAAM,KAAKmJ,OAAO,KAAKy/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BtpD,UAChInC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,qjDAAqjDF,KAAK,aAC9jD,EAGKK,GAA6B,SAAH7+C,GAWhC,IAVL+Z,EAAY/Z,EAAZ+Z,aACA+U,EAAgB9uB,EAAhB8uB,iBACAgwB,EAAU9+C,EAAV8+C,WACAC,EAAc/+C,EAAd++C,eACAC,EAAgBh/C,EAAhBg/C,iBACAhlC,EAAYha,EAAZga,aACAilC,EAAsBj/C,EAAtBi/C,uBACAl0C,EAAO/K,EAAP+K,QACArY,EAAIsN,EAAJtN,KACAwsD,EAAyBl/C,EAAzBk/C,0BAEMC,EAAsBH,GAAoBhlC,EAEhD,OACE/jB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQiuC,8BAA+B,2BAA2B7jD,SAAA,CAC1FgqD,GAAuBJ,IAAmBG,GAA4BlsD,EAAAA,EAAAA,KAAC4rD,GAAgB,CAAC1F,wBAAyBnuC,EAAQmuC,2BAA8BlmD,EAAAA,EAAAA,KAACsrD,GAAU,CAACpF,wBAAyBnuC,EAAQmuC,2BACpM4F,IACC9rD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQouC,2BAA2BhkD,UAACnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACzR,2BAAyB,EAACwP,kBAAmBluC,EAAQkuC,kBAAmBvmD,KAAMA,MAE5Io8B,GAAoB/U,IAAgB/mB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ8tC,+BAAgC,sBAAsB1jD,SAAE4kB,KAC9HolC,GAAuBJ,IAAmBG,GAA4BlsD,EAAAA,EAAAA,KAAC4rD,GAAgB,KAAM5rD,EAAAA,EAAAA,KAACsrD,GAAU,KACzGU,GAAoBhlC,IAAgBhnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B92C,IAAWiF,EAAQ2pC,sBAAuBuK,GAA0Bl0C,EAAQguC,iCAGvN,EAgBA8F,GAA2B3rD,aAAe,CACxC6mB,kBAAcnpB,EACdouD,kBAAkB,EAClBhlC,kBAAcppB,EACdquD,wBAAwB,GCjDMhM,GARH,SAAHphD,GAAA,IAAMkZ,EAAOlZ,EAAPkZ,QAASq0C,EAAmBvtD,EAAnButD,oBAAmB,OAC1DpsD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQs0C,cAAeD,GAAqBjqD,UACrEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQu0C,UAAW3pC,MAAM,IAAImJ,OAAO,KAAKy/B,QAAQ,WAAWC,KAAK,OAAOC,MAAM,6BAA4BtpD,UACxHnC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,sBAAsBa,OAAO,QAAQC,YAAY,IAAIC,cAAc,QAAQC,eAAe,aAEhG,ICXkC,WAAC,MAAiB,CAC1DL,cAAe,CACb1pC,MAAO,GACPmJ,OAAQ,GACRtI,gBAAiB,wBACjB0N,UAAW,sCACXtF,aAAc,QAEhB0gC,UAAW,CACTnpD,SAAU,WACV6oB,IAAK,EACLD,KAAM,EACNE,MAAO,EACPP,OAAQ,EACRG,OAAQ,QAEX,GDCC,CAAEy0B,cAAe,oBAXnB,IEJaqM,GAAW,SAAH9tD,GAAA,IAAM+tD,EAAiB/tD,EAAjB+tD,kBAAiB,OAC1C5sD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWsoD,EAAmBjqC,MAAM,KAAKmJ,OAAO,KAAKy/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BtpD,UAC1HnC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,qUAAqUF,KAAK,aAC9U,ECHKqB,GAAyB,SAAHhuD,GAAA,IAAMiuD,EAAyBjuD,EAAzBiuD,0BAAyB,OAChE7pD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwoD,EAA0B3qD,SAAA,EACxCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBACftE,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAeqe,MAAM,KAAKmJ,OAAO,KAAKy/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4BtpD,UACrHnC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,8TAA8TF,KAAK,gBAEzU,EAGKuB,GAAyB,SAAHztD,GAAA,IAAMwtD,EAAyBxtD,EAAzBwtD,0BAAyB,OAChE9sD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwoD,EAA2BnqC,MAAM,IAAImJ,OAAO,IAAIy/B,QAAQ,UAAUC,KAAK,OAAOC,MAAM,6BAA4BtpD,UAC9HnC,EAAAA,EAAAA,KAAA,QAAM0rD,EAAE,0HAA0HF,KAAK,aACnI,ECTKwB,GAAwB,SAAHnuD,GAAA,IAChCmqD,EAAWnqD,EAAXmqD,YACAliC,EAAWjoB,EAAXioB,YACAmmC,EAA8BpuD,EAA9BouD,+BACAvD,EAA6B7qD,EAA7B6qD,8BACAwD,EAA8BruD,EAA9BquD,+BACAC,EAAoCtuD,EAApCsuD,qCACAlB,EAAsBptD,EAAtBotD,uBACAjlC,EAAYnoB,EAAZmoB,aAAY,OAEZ/jB,EAAAA,EAAAA,MAAA,OAAKqB,UAAW2oD,EAA+B9qD,SAAA,EAC7CnC,EAAAA,EAAAA,KAAC+oD,GAAa,CACZC,YAAaA,EACb7oD,KAAM2mB,EACNmiC,uBAAwBn2C,IAAW42C,KAEpC1iC,IAAgBhnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B92C,IAAWo6C,EAAgCjB,GAA0BkB,OAClL,E,wCCHKC,GAAqB,SAAHvuD,GAwCxB,IAWDwuD,EAlDJC,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UAEA1qB,EAAiB99B,EAAjB89B,kBACA/V,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBAEAlxB,EAAgBx9B,EAAhBw9B,iBACAxV,EAAYhoB,EAAZgoB,aACA2mC,EAAuB3uD,EAAvB2uD,wBAEAC,EAAY5uD,EAAZ4uD,aACAlzB,EAAQ17B,EAAR07B,SACAmzB,EAAmB7uD,EAAnB6uD,oBACAtnC,EAAUvnB,EAAVunB,WACAunC,EAAqB9uD,EAArB8uD,sBAEA5xB,EAAel9B,EAAfk9B,gBACAjV,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBAEA5B,EAAgBntD,EAAhBmtD,iBACAhlC,EAAYnoB,EAAZmoB,aAEA6mC,EAAWhvD,EAAXgvD,YACA7xB,EAAYn9B,EAAZm9B,aAEAF,EAAgBj9B,EAAhBi9B,iBACA/U,EAAYloB,EAAZkoB,aACA+mC,EAAuBjvD,EAAvBivD,wBACA1F,EAAWvpD,EAAXupD,YAEAhsB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KAEA0yB,EAAQlvD,EAARkvD,SAEAruD,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEAzY,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAEIuiC,GAAiB,CAAC,EADpB6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YAAa/T,EAAUva,EAAVua,WAAY8mC,EAAiBrhD,EAAjBqhD,kBAIpCxmB,EAAoBumB,EAAgB9yB,EAO1C,GAJIqyB,IAAyBpnC,EAAAA,EAAAA,YAAWgU,KACtC8yB,EAAiB,IAAI7mC,IAAI+T,GAAU9T,SAGhC6mC,IAAkBvd,EACrB,OAAO,KAGT,IAAMhC,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC0kD,GAAgB,CAACxhC,IAAKoU,EAAU5X,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,EAChIc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAAA,CACzD0rD,IAAe7tD,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,oBAC/DplB,IAAgBh8B,EAAAA,EAAAA,KAAC4oD,GAAiB,CAACF,kBAAmB3wC,EAAQspC,oBAE7DtR,EAAU5pB,MACVnmB,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,aACnCjT,aAAcyiC,QAIpBprD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,CACxDi6B,GAAYf,IACXp4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,0BAAyBnC,SAAA,EACtCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmB7W,GAAc,GACjC2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAGjBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,YAAWnC,SAAA,EACxBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ8tC,+BAAgC,sBAAsB1jD,SAAE4kB,IAC1F0mC,IACCztD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,GAAcinC,EAC1BrE,YAAa0E,EACbnE,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,qBAM3EuM,IACC/tD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQu2C,kBAAmBn3B,IAAI,GAAGD,IAAKq3B,KAExD5xB,IACC38B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,oBAG1EjlB,IACCr8B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,YAAawE,EACbpE,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,qBAGvEnlB,IAAaf,IAASoyB,IACvBztD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,GAAcinC,EAC1BrE,YAAa0E,EACbnE,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,eAGrEzlB,IACC/7B,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,iBAG3E3lB,IACC97B,EAAAA,EAAAA,KAACwoD,GAAwB,CACvBruB,aAAc2zB,EACd/mC,aAAcA,EACdqhC,YAAaA,EACb1oD,KAAMA,EACN2oD,cAAev1C,IAAWiF,EAAQ4pC,kCAAmC,4BAGxEqK,GAAoBhlC,IACnBhnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B7xC,EAAQ2pC,6BAKlH,EAuEA0L,GAAmBltD,aAAe,CAChCmnD,WAAW,EAEX1qB,mBAAmB,EACnBN,kBAAkB,EAClBoxB,cAAc,EACdE,uBAAuB,EACvB5xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACdF,kBAAkB,EAClBgyB,yBAAyB,EACzB1xB,UAAU,EACVgsB,aAAa,EAEbxhC,mBAAehpB,EACf2vD,0BAA0B,EAC1B1mC,kBAAcjpB,EACd4vD,yBAAyB,EACzBjzB,cAAU38B,EACVwoB,gBAAYxoB,EACZ8vD,qBAAqB,EACrB5mC,iBAAalpB,EACbgwD,wBAAwB,EACxB5mC,kBAAcppB,EACdmpB,kBAAcnpB,EACdy9B,UAAMz9B,EACNmwD,UAAU,GC1QL,IAAMS,GAA6BvO,GACxC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,ICoCkC,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA3DG,CAC9Cw8C,cAAe,CACbh+B,OAAQ,mBAEVi+B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACb7I,aAAc,GACdO,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UAMqB,IAGnC09B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNE,MAAO,EACPP,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,QAEdg1B,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETg+B,kBAAmB,CACjBn1B,MAAO,GAETo1B,kBAAmB,CACjBzb,gBAAiB,wDAClB,GD5DD,CAAE0a,cAAe,+BAGNmO,GAAsCxO,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAc,EACdF,kBAAkB,EAClBM,UAAQ,IACR,IC+C2C,SAAAja,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAzFN,CAC9Cw8C,cAAe,CACbh+B,OAAQ,mBAEVi+B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACb7I,aAAc,GACdO,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UAoCqB,IAGnC09B,uBAAwB,CACtBr+B,QAAS,qBACTK,SAAU,GACVmJ,WAAY,IACZ6Z,SAAU,yBAEV,6BAA8B,CAC5B/iC,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,SACf,wBAAyB,CACvBvL,MAAO,OACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,WAKpBg1B,uBAAwB,CACtBn+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVpP,aAAc,EACd0P,WAAY,MACZ+H,cAAe,GAEjBg2B,kBAAmB,CACjBr+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVpP,aAAc,GAEhB0tC,qBAAsB,CACpBt+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVgjB,SAAU,IACVC,SAAU,aACVxjB,aAAc,IAEhB8+B,sBAAuB,CACrBt+B,MAAO,QACP6I,MAAO,GACPhJ,OAAQ,OACRyI,OAAQ,GACRoJ,QAAS,MACThS,QAAS,oBACT3f,SAAU,WACVggB,SAAU,GACVM,WAAY,OACZmI,aAAc,GACdpI,gBAAiB,WAEnBg/B,uBAAwB,CACtB/iB,WAAY,EACZ7c,aAAc,EACd,wBAAyB,CACvBgJ,aAAc,EACd3I,OAAQ,uBAEX,GDjHD,CAAEq9B,cAAe,wCAGNoO,GAA+BzO,GAC1C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,ICqGoC,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAjKC,CAC9Cw8C,cAAe,CACbh+B,OAAQ,mBAEVi+B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACb7I,aAAc,GACdO,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UA4GqB,IAGnC+9B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,QACPI,gBAAiB,UACjBsR,QAAS,MACTrR,WAAY,SACb,GD7HD,CAAE68B,cAAe,iCAGNqO,GAAiC1O,GAC5C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,ICiHsC,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA/LD,CAC9Cw8C,cAAe,CACbh+B,OAAQ,mBAEVi+B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACb7I,aAAc,GACdO,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UA0IqB,IAGnC+9B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACV6oB,IAAK,EACL5I,MAAO,QACPH,OAAQ,oBACR6R,QAAS,MACThS,QAAS,oBACTK,SAAU,GACVM,WAAY,OACZmI,aAAc,EACdpI,gBAAiB,YAClB,GDpID,CAAE88B,cAAe,mCEpENsO,GAAuC3O,GAClD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB9xB,kBAAgB,EAChBgyB,yBAAuB,IACvB,IlCA4C,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAdD,CACpDw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAKM,IAGzCqjD,cAAe,CAEb79B,MAAO,OACPH,OAAQ,QACRyiB,YAAa,QAGfyb,uBAAwB,CACtBr+B,QAAS,GACTM,MAAO,OACPD,SAAU,GACVmJ,WAAY,OACZ6Z,SAAU,0BAGZmb,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAGZw+B,kCAAmC,CACjC,eAAgBb,IACjB,GkCpCD,CAAER,cAAe,yCAGNuO,GAAkD5O,GAC7D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IlCoBuD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAxDZ,CACpDw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA+CM,IAEzCqjD,cAAe,CACb,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,KAERrJ,MAAO,oBAITw+B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTi+B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,IACL4Z,gBAAiB,yDAGnB0b,uBAAwB,CACtB79B,WAAY,MACZN,SAAU,GACVmJ,WAAY,UACZlJ,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR/X,aAAc,GAEd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,gBAAcl9C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxB19B,MAAO,kBACP0R,QAAS,iBACT7R,OAAQ,6CAEV,mBAAoB,CAClBG,MAAO,wBAEV,GkCxED,CAAEk9B,cAAe,oDAGNwO,GAA0C7O,GACrD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB5mC,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IlCwD+C,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAlHJ,CACpDw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAyGM,IAGzCqjD,cAAe,CAEb79B,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb/Z,WAAY,QAGdw1B,uBAAwB,CACtBr+B,QAAS,GAETM,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,IAGZw+B,kCAAmC,CACjC,eAAgBb,IACjB,GkC7FD,CAAER,cAAe,4CAGNyO,GAA8C9O,GACzD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IlC6EmD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA7JR,CACpDw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAoJM,IAGzCqjD,cAAe,CACbt+B,MAAO,mBACPmJ,OAAQ,GACR1I,MAAO,OAEPsiB,YAAa,OACb/Z,WAAY,OACZgD,cAAe,kBAGjBuyB,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,gBACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,GAGjBm2B,kCAAmC,CACjC,eAAgBb,IACjB,GkClHD,CAAER,cAAe,gDAGN0O,GAAqC/O,GAChD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IlCkG0C,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAxMC,CACpDw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA+LM,IAGzCqjD,cAAe,CACbt+B,MAAO,mBACPmJ,OAAQ,GACR1I,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb/Z,WAAY,OACZgD,cAAe,kBAGjBuyB,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,gBACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,GAGjBm2B,kCAAmC,CACjC,eAAgBb,IACjB,GkCvID,CAAER,cAAe,uC,aCjHN2O,GAAuB,SAAHpwD,GAsC1B,IArCLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UAEA1qB,EAAiB99B,EAAjB89B,kBACA/V,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBACA2B,EAAqBrwD,EAArBqwD,sBAEA7yB,EAAgBx9B,EAAhBw9B,iBACAxV,EAAYhoB,EAAZgoB,aACA2mC,EAAuB3uD,EAAvB2uD,wBAEAjzB,EAAQ17B,EAAR07B,SAEAwB,EAAel9B,EAAfk9B,gBACAjV,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBAEA5B,EAAgBntD,EAAhBmtD,iBACAhlC,EAAYnoB,EAAZmoB,aAEAD,EAAYloB,EAAZkoB,aACAooC,EAA2BtwD,EAA3BswD,4BACA/yB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KAEA+zB,EAAoBvwD,EAApBuwD,qBACAC,EAA8BxwD,EAA9BwwD,+BACAvD,EAAUjtD,EAAVitD,WACAC,EAAcltD,EAAdktD,eACAE,EAAsBptD,EAAtBotD,uBACAC,EAAyBrtD,EAAzBqtD,0BAEAxsD,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QACAikB,EAAYn9B,EAAZm9B,aACqBszB,EAAmBzwD,EAAxC0wD,oBAEAjwD,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAEIuiC,GAAiB,CAAC,EADpB6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YAAa/T,EAAUva,EAAVua,WAAY8mC,EAAiBrhD,EAAjBqhD,kBAIpCxmB,EAAoBumB,EAAgB9yB,EAE1C,IAAKgyB,IAAkBvd,EACrB,OAAO,KAGT,IAAMhC,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC0kD,GAAgB,CAACxhC,IAAKoU,EAAU5X,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAexK,2BAAyB,EAAAt0C,SAAA,EAC1JnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAExD4tC,EAAU5pB,MACVnmB,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,aACnCjT,aAAcyiC,OAIpBprD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,CACxD65B,IAAgBh8B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQspC,qBACzCp+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQ6tC,wBAAwBzjD,SAAA,CACxDgtD,IACCnvD,EAAAA,EAAAA,KAACqrD,GAAoB,CACnBtkC,aAAcA,EACdqV,SAAUA,EACVf,KAAMA,EACN9T,WAAYA,EACZxP,QAASA,IAGZ4kB,IACC38B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB4N,GAAyBn3C,EAAQy3C,kBAAmB,oBAG9HnzB,IACCr8B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,YAAawE,EACbpE,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB2N,GAAyBn3C,EAAQy3C,kBAAmB,mBAG7HzzB,IACC/7B,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,oBAI7E2N,IACCpvD,EAAAA,EAAAA,KAAC6rD,GAA0B,CACzBnsD,KAAMA,EACNqY,QAASA,EACTgP,aAAcA,EACd+U,iBAAkBuzB,EAClBvD,WAAYA,EACZC,eAAgBA,EAChBC,iBAAkBA,EAClBhlC,aAAcA,EACdilC,uBAAwBA,EACxBC,0BAA2BA,OAIhCoD,IAAuBtvD,EAAAA,EAAAA,KAACsvD,EAAmB,CAAClD,oBAAqBr0C,EAAQ03C,mBAGhF,ECxGaC,IAAqDC,EAAAA,GAAAA,kBAAgB,SAACC,GACjF,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAEzBkW,EAD4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBACpF3P,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAA0B,EAC1BlxB,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClBmD,6BAA2B,EAC3BC,sBAAoB,EACpBtD,YAAU,EACVC,gBAAc,EACdG,2BAAyB,EACzBplC,iBAAalpB,EACbopB,kBAAcppB,EACdo+B,cAAY,EACZI,UAAQ,IACR,GAEJmqB,EACA,CAAEjG,cAAe,uDACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,GAEJ/M,EACA,CAAET,cAAe,uDAEnB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAEaE,IAAsCH,EAAAA,GAAAA,kBAAgB,SAACC,GAClE,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzBkW,EAF4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBAEpF3P,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClBoD,sBAAoB,EACpB7B,0BAA0B,EAC1BzmC,iBAAalpB,EACbopB,kBAAcppB,EACdyxD,gCAA8B,EAC9BvD,YAAU,EACVC,gBAAgB,IAChB,GAEJrF,GACA,CAAEpG,cAAe,wCACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,GAEJlM,EACA,CAAEtB,cAAe,wCAEnB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAEaG,IAAyCJ,EAAAA,GAAAA,kBAAgB,SAACC,GACrE,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzBkW,EAF4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBAGrI3P,GACE,SAAA+P,GAAM,OACJhwD,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfurD,GAAM,IACVrzB,mBAAiB,EACjBN,kBAAkB,EAClBN,iBAAe,EACfiwB,kBAAkB,EAClB4B,wBAAwB,EACxBuB,6BAA2B,EAC3BC,sBAAoB,EACpBC,gCAAgC,EAChCvD,YAAU,EACVC,gBAAc,EACd3vB,UAAQ,IACR,GAEJupB,EACA,CAAErF,cAAe,2CAGnBL,GACE,SAAA+P,GAAM,OACJhwD,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACburD,GAAM,IACVrzB,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB9xB,kBAAgB,EAChBgyB,yBAAuB,EACvB1F,aAAW,IACX,GAEJvG,EACA,CAAEvB,cAAe,2CAGrB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAEaK,IAA2CN,EAAAA,GAAAA,kBAAgB,SAACC,GACvE,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAEzBkW,EAD4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBAErI3P,GACE,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBN,iBAAiB,EACjBiwB,kBAAkB,EAClBmD,6BAA6B,EAC7BC,sBAAoB,EACpB5B,yBAAyB,EACzB1mC,iBAAalpB,EACbopB,kBAAcppB,EACdyxD,gCAA8B,EAC9BvD,YAAU,EACVI,2BAAyB,EACzBH,gBAAc,IACd,GAEJ1F,EACA,CAAE/F,cAAe,6CAGnBL,GACE,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBC,yBAAuB,EACvB1mC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,EACvB1F,aAAW,IACX,GAEJpG,EACA,CAAE1B,cAAe,6CAGrB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAEaM,IAAgDP,EAAAA,GAAAA,kBAAgB,SAACC,GAC5E,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzBkW,EAF4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBAEpF3P,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClBoD,sBAAoB,EACpBC,gCAA8B,EAC9BrzB,cAAc,EACdwxB,yBAAyB,EACzBxmC,kBAAcppB,EACdkuD,YAAY,EACZC,gBAAgB,IAChB,GAEJtF,EACA,CAAEnG,cAAe,kDACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBC,yBAAuB,EACvBI,wBAAsB,EACtB5mC,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,GAEJ7L,EACA,CAAE3B,cAAe,kDAEnB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAEaO,IAA2CR,EAAAA,GAAAA,kBAAgB,SAACC,GACvE,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAEzBkW,EAD4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBACpF3P,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClBuB,0BAA0B,EAC1BzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBqzB,6BAA2B,EAC3B/yB,UAAU,EACVgzB,sBAAoB,EACpBC,gCAAgC,EAChCvD,YAAU,EACVC,gBAAc,IACd,GAEJ3F,EACA,CAAE9F,cAAe,6CACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,EACvB1F,aAAW,IACX,GAEJlG,EACA,CAAE5B,cAAe,6CAEnB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IAoDaQ,GAA6CnQ,GACxD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,InCakD,SAAC3rC,GAEvD,IAAM6+B,EA9YgD,CACtDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAgYnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3B,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,KAER,kCAAmC,CACjC2Z,eAAgB,aAElBhjB,MAAO,mBACPmJ,OAAQ,MAGVu1B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,EACL4Z,gBAAiB,yDAGnBub,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBl+B,MAAO,QACPT,MAAO,IACPQ,SAAU,GACVkJ,WAAY,oBACZ5I,WAAY,MACZ6I,WAAY,OACZvY,aAAc,GACdyX,cAAe,GAGjBm2B,kCAAmC,CACjCx+C,SAAU,WACVuoB,QAAS,GACTjI,WAAY,MACZ6I,WAAY,MACZnJ,SAAU,GACVL,QAAS,yBACT,gBAAcre,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTq8C,GAAqB,IACxB19B,MAAO,gCACPD,SAAU,kBACVM,WAAY,iBACZR,OAAQ,2CACR6R,QAAS,iBAEX,mBAAoB,CAClBhS,QAAS,eACT+I,OAAQ,eACRzI,MAAO,gCACPK,WAAY,mBAIpB,GmC7EE,CAAE68B,cAAe,+CAGN+P,IAA+CV,EAAAA,GAAAA,kBAAgB,SAACC,GAC3E,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzBkW,EAF4BzxD,IAAAA,IAAMc,EAAa,CAAC,UAAW,sBAAwBd,IAAAA,IAAMwxD,EAAQ,CAAC,mBAAoB,UAAW,qBAEpF3P,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACivD,IAAoBxqD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClBuB,0BAA0B,EAC1BzmC,iBAAalpB,EACbopB,kBAAcppB,EACdwxD,sBAAoB,EACpBD,6BAA2B,EAC3BrD,YAAU,EACVC,gBAAc,EACd3vB,UAAQ,IACR,GAEJuqB,GACA,CAAErG,cAAe,iDACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,GAEJ3L,EACA,CAAE7B,cAAe,iDAEnB,OAAOtgD,EAAAA,EAAAA,KAAC6vD,GAAcprD,EAAAA,EAAAA,GAAA,GAAKmrD,GAC7B,IChbaU,GAAoCrQ,GAC/C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB5mC,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IClByC,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAhBO,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAKW,IAG9CqjD,cAAe,CACbn1B,OAAQ,IACR1I,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb9Z,aAAc,gBAGhBu1B,uBAAwB,CACtBr+B,QAAS,GACTM,MAAO,OACPD,SAAU,GACVmJ,WAAY,OACZ6Z,SAAU,0BAGZmb,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,KACX,GDfD,CAAEm9B,cAAe,sCAGNiQ,GAA+CtQ,GAC1D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICDoD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAvDJ,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA4CW,IAG9CqjD,cAAe,CACb,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,KAERJ,aAAc,eACdjJ,MAAO,oBAGTw+B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTi+B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,IACL4Z,gBAAiB,yDAGnB0b,uBAAwB,CACtB79B,WAAY,MACZN,SAAU,GACVmJ,WAAY,UACZlJ,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR/X,aAAc,GAEd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,eAAgB,CACdv+B,MAAO,kBACP0R,QAAS,GACT7R,OAAQ,4CAEV,mBAAoB,CAClBG,MAAO,wBAEV,GDnDD,CAAEk9B,cAAe,iDAGNkQ,GAAiDvQ,GAC5D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnB4wB,0BAA0B,EAC1BlxB,kBAAgB,EAChBmxB,yBAAuB,EACvBC,cAAY,EACZC,qBAAmB,EACnB3xB,iBAAe,EACf6xB,wBAAsB,EACtB5B,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACdF,kBAAkB,EAClBgyB,yBAAyB,IACzB,ICkCsD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAjHN,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAsGW,IAG9CqjD,cAAe,CACbt+B,MAAO,mBACPmJ,OAAQ,IACR7I,OAAQ,mBACRH,QAAS,EACT8I,aAAc,gBAGhBs1B,wBAAyB,CACvB7wB,MAAO,QACP1N,MAAO,IACPkJ,OAAQ,EACRlI,UAAW,wBAGbw9B,uBAAwB,CACtBt1B,OAAQ,kBACR1I,SAAU,GACVmJ,WAAY,QAGdi1B,sBAAuB,CACrBn+B,MAAO,UACP0I,OAAQ,GACRhI,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,QAGdk1B,kBAAmB,CACjBp+B,MAAO,UACP0I,OAAQ,GACRhI,SAAU,SACVX,SAAU,IAGZs+B,qBAAsB,CACpBr+B,MAAO,OACPD,SAAU,GACV0M,UAAW,KACZ,GD7ED,CAAEywB,cAAe,mDAGNmQ,GAA+CxQ,GAC1D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnB4wB,0BAA0B,EAC1BlxB,kBAAgB,EAChBmxB,yBAAuB,EACvBC,cAAc,EACdC,qBAAqB,EACrB3xB,iBAAiB,EACjB6xB,wBAAwB,EACxB5B,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,IC4DoD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAlKJ,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAuJW,IAG9CqjD,cAAe,CACbt+B,MAAO,mBACPmJ,OAAQ,IACRtI,gBAAiB,6BACjBoI,aAAc,eACd9H,SAAU,SACV3gB,SAAU,WAEV,6BAA8B,CAC5B2oB,OAAQ,mBACRE,KAAM,MAIVm1B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,IAGV61B,sBAAuB,CACrBp+B,SAAU,GACVmJ,WAAY,kBACZlJ,MAAO,sBAGTu+B,kCAAmC,CACjC,eAAgB,CACd1+B,OAAQ,2CACRG,MAAO,kBACP0R,QAAS,IAEX,mBAAoB,CAClB1R,MAAO,uBAIXi+B,kBAAmB,CACjBl+C,SAAU,WACV2oB,OAAQ,mBACR9I,WAAY,IACZ4iB,gBAAiB,oEAClB,GDxGD,CAAE0a,cAAe,iDAGNoQ,GAA4CzQ,GACvD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnB4wB,0BAA0B,EAC1BlxB,kBAAgB,EAChBmxB,yBAAuB,EACvBC,cAAc,EACdC,qBAAqB,EACrB3xB,iBAAiB,EACjB6xB,wBAAwB,EACxB5B,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICuFiD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GApND,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAyMW,IAG9CqjD,cAAe,CACb,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,IAGRrJ,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,gBAGhBu1B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTi+B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,IACL4Z,gBAAiB,yDAGnB2b,sBAAuB,CACrB99B,WAAY,MACZN,SAAU,GACVmJ,WAAY,UACZlJ,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR/X,aAAc,GAEd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,eAAgB,CACdv+B,MAAO,kBACP0R,QAAS,GACT7R,OAAQ,4CAEV,mBAAoB,CAClBG,MAAO,wBAEV,GD7ID,CAAEk9B,cAAe,8CAGNqQ,GAA4C1Q,GACvD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnB4wB,0BAA0B,EAC1BlxB,kBAAgB,EAChBmxB,yBAAuB,EACvBC,cAAc,EACdC,qBAAqB,EACrB3xB,iBAAiB,EACjB6xB,wBAAwB,EACxB5B,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,IC4HiD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAhRD,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAqQW,IAG9CqjD,cAAe,CACb79C,QAAS,QACTD,SAAU,WACV2gB,SAAU,SACVnB,MAAO,mBACPmJ,OAAQ,IACRD,OAAQ,OACR/I,QAAS,EACT8I,aAAc,eACd8Z,YAAa,OACbtiB,MAAO,OACPH,OAAQ,SAGVk+B,uBAAwB,CACtBr1B,OAAQ,GACRhJ,QAAS,YACTM,MAAO,OACPD,SAAU,GACVmJ,WAAY,oBACb,GDlJD,CAAEg0B,cAAe,8CAGNsQ,GAAuC3Q,GAClD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAAwB,EACxBlxB,kBAAkB,EAClBmxB,yBAAyB,EACzBC,cAAc,EACdC,qBAAqB,EACrB3xB,iBAAe,EACf6xB,wBAAsB,EACtB5B,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICiI4C,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA5SI,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAiSW,IAG9CqjD,cAAe,CACbr1B,aAAc,eACdE,OAAQ,IACR1I,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb/Z,WAAY,QAGdw1B,uBAAwB,CACtBr+B,QAAS,GACTgJ,OAAQ,GACR1I,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,KACX,GDnKD,CAAEm9B,cAAe,yCAGNuQ,GAA2C5Q,GACtD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAAwB,EACxBlxB,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACdF,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICqJgD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GApVA,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAyUW,IAG9CqjD,cAAe,CACbr1B,aAAc,eACdjJ,MAAO,mBACPmJ,OAAQ,GACR1I,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb/Z,WAAY,QAGdu1B,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,gBACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,IAChB,GDtLD,CAAE80B,cAAe,6CAGNwQ,GAAkC7Q,GAC7C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAAwB,EACxBlxB,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICmWuC,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAtjBS,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA2iBW,IAG9CqjD,cAAe,CACbr1B,aAAc,eACdjJ,MAAO,mBACPmJ,OAAQ,GACR1I,MAAO,OACPH,OAAQ,QACRyiB,YAAa,OACb/Z,WAAY,QAGdu1B,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,gBACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,IAChB,GDpYD,CAAE80B,cAAe,oCAGNyQ,GAA2C9Q,GACtD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAAwB,EACxBlxB,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZF,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICsXgD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA7lBA,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAklBW,IAG9CqjD,cAAe,CACb,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,KAGRrJ,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,gBAGhBy1B,kBAAmB,CACjBj+C,QAAS,QACT0oB,OAAQ,mBACRE,IAAK,GACL4Z,gBAAiB,yDAGnBub,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTk+B,uBAAwB,CACtB3+B,MAAO,IACPmJ,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,IACZlJ,MAAO,QACPoI,cAAe,EAEf,+BAAgC,CAC9BroB,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,eAAgB,CACd1+B,OAAQ,2CACRG,MAAO,kBACP0R,QAAS,IAEX,mBAAoB,CAClB1R,MAAO,wBAEV,GD3aD,CAAEk9B,cAAe,6CElJN0Q,GAAgD/Q,GAvElB,SAAHphD,GAOjC,IANLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UACAxgC,EAAYhoB,EAAZgoB,aACA0T,EAAQ17B,EAAR07B,SACAzT,EAAWjoB,EAAXioB,YACA/O,EAAOlZ,EAAPkZ,QAGAzY,EAAuCguD,GAAiB,CAAC,EAAjD/d,EAAajwC,EAAbiwC,cAAa0hB,EAAA3xD,EAAE60B,OAAAA,OAAM,IAAA88B,EAAG,GAAEA,EAClCjkD,EAAuCuiC,GAAiB,CAAC,EAAjD6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YAGjB41B,GAAoB3uD,EAAAA,EAAAA,UACxB,iBAAM,CAAC,EAAG,EAAG,EAAG,GAAGI,KAAI,SAAAmmB,GAAK,OAAKqL,GAAUA,EAAOrL,IAAW1qB,IAAAA,KAAO+1B,EAAO,GAAC,GAC5E,CAACA,IAGH,IAAKm5B,IAAkB/d,GAAiBnxC,IAAAA,QAAU+1B,GAChD,OAAO,KAGT,IAAM0T,EAAoBumB,EAAgB9yB,EAE1C,OACEr4B,EAAAA,EAAAA,MAAC0kD,GAAgB,CAAChlC,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,EACjHc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDnC,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,aAAW,EACXI,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,oBAExEvhD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVyuB,aAAW,EACXO,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,gBAEpExhD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,aAAW,EACXU,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,qBAG5EzhD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAExD+uD,EAAkBvuD,KAAI,SAAAqP,EAEnBm/B,GAAS,IADVpB,EAAS/9B,EAAT+9B,UAAWP,EAAiBx9B,EAAjBw9B,kBAAmBwe,EAAiBh8C,EAAjBg8C,kBAAmBC,EAAmBj8C,EAAnBi8C,oBAAqBC,EAAoBl8C,EAApBk8C,qBAEhEngB,EAF+G/7B,EAAzBm8C,2BAE9C3e,EAC9C,OAEExvC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gCAA+BnC,UAC5CnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,gBAVasS,EAaxD,QAKV,IDqS2D,SAAAhvB,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA3XL,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAgXW,IAG9CqjD,cAAe,CACbr1B,aAAc,eACdjJ,MAAO,mBACPmJ,OAAQ,IACR1I,MAAO,OACPH,OAAQ,mBACRiO,UAAW,kBACXpO,QAAS,GACThP,WAAY,aACZF,eAAgB,iBAGlButC,uBAAwB,CACtBh+C,SAAU,WACV6oB,KAAM,EACNrJ,MAAO,mBAGT4+B,sBAAuB,CACrBn+B,MAAO,UACPD,SAAU,GACVM,WAAY,OACZ6I,WAAY,QAGdk1B,kBAAmB,CACjBr+C,SAAU,WACV6oB,KAAM,EACN5I,MAAO,UACPD,SAAU,GACVmJ,WAAY,QAGdm1B,qBAAsB,CACpBt+C,SAAU,WACV6oB,KAAM,EACN5I,MAAO,OACPD,SAAU,GACVmJ,WAAY,OACZT,OAAQ,mBAGVq1B,wBAAyB,CACvB99C,QAAS,OACTurB,cAAe,MACfxrB,SAAU,WACV4oB,MAAO,EACPC,IAAK,EAEL,mCAAoC,CAClCrJ,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,mBACRa,SAAU,SACV/mB,YAAa,EACb6uB,aAAc,KAEjB,GC9VD,CAAE00B,cAAe,kD,aCmBN6Q,GAA+ClR,GA3FxB,SAAHphD,GAQ1B,IAPLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UACAxgC,EAAYhoB,EAAZgoB,aACA0T,EAAQ17B,EAAR07B,SACAzT,EAAWjoB,EAAXioB,YACApnB,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAGAzL,GAA0CC,EAAAA,EAAAA,UAAS,CAAEuc,MAAO,EAAGW,UAAW,OAAOjd,GAAAC,EAAAA,GAAAA,GAAAH,EAAA,GAA1E8kD,EAAa5kD,EAAA,GAAE6kD,EAAgB7kD,EAAA,GAEtClN,EAAuCguD,GAAiB,CAAC,EAAjD/d,EAAajwC,EAAbiwC,cAAa0hB,EAAA3xD,EAAE60B,OAAAA,OAAM,IAAA88B,EAAG,GAAEA,EAClCjkD,EAAuCuiC,GAAiB,CAAC,EAAjD6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YAGjB41B,GAAoB3uD,EAAAA,EAAAA,UACxB,iBAAM,CAAC,EAAG,EAAG,EAAG,GAAGI,KAAI,SAAAmmB,GAAK,OAAKqL,GAAUA,EAAOrL,IAAW1qB,IAAAA,KAAO+1B,EAAO,GAAC,GAC5E,CAACA,IAIG0T,EAAoBumB,EAAgB9yB,EAEpC3R,GAAetqB,EAAAA,EAAAA,cAAY,SAACuqB,EAAe1F,GAC/CmtC,EAAiB,CACfvoC,MAAOc,EACPH,UAAWvF,EAAEuF,WAEjB,GAAG,IAEH,OAAK6jC,GAAkB/d,IAAiBnxC,IAAAA,QAAU+1B,IAKhDlxB,EAAAA,EAAAA,MAAC0kD,GAAgB,CAAChlC,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,EACjHnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,UAC1DnC,EAAAA,EAAAA,KAACwqB,GAAAA,SAAQ,CACPC,YAAa2mC,EAActoC,MAC3BW,UAAW2nC,EAAc3nC,UACzBiB,SAAUf,EACVgB,UAAU,EACV2mC,MAAM,EACNhtD,UAAU,iCAAgCnC,SAGxC+uD,EAAkBvuD,KAAI,SAAAqP,EAEnBm/B,GAAS,IADVpB,EAAS/9B,EAAT+9B,UAAWP,EAAiBx9B,EAAjBw9B,kBAAmBwe,EAAiBh8C,EAAjBg8C,kBAAmBC,EAAmBj8C,EAAnBi8C,oBAAqBC,EAAoBl8C,EAApBk8C,qBAEhEngB,EAF+G/7B,EAAzBm8C,2BAE9C3e,EAC9C,OACEvsC,EAAAA,EAAAA,MAACunB,GAAAA,SAASO,KAAI,CAAA5oB,SAAA,EACZnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACjC,kBAAmBluC,EAAQqpC,kBAAmB1hD,KAAMA,KAC7DM,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,iBACnC,GAAAx9B,OAZmB0uC,EAAUhxC,IAAMoyC,GAc3C,SAINluC,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDnC,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,aAAW,EACXI,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,oBAExEvhD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVyuB,aAAW,EACXO,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,gBAEpExhD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,aAAW,EACXU,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,uBApDvE,IAyDX,IFgV0D,SAAAt/B,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA5bJ,CACzDw8C,cAAe,CACbr1B,aAAc,gBAEhBs1B,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAibW,IAG9CqjD,cAAe,CACb79C,QAAS,mBACTwoB,aAAc,iBACdxI,MAAO,OACPH,OAAQ,mBACRiO,UAAW,mBAGbkwB,kBAAmB,CAEjBp1B,IAAK,GACLD,KAAM,EACN3I,MAAO,kBACPH,OAAQ,4BACRH,QAAS,6BACTwJ,WAAY,QACZV,aAAc,iBACdpI,gBAAiB,kBACjBqI,OAAQ,eACR1I,SAAU,kBACV2R,QAAS,gBAGXqsB,uBAAwB,CACtBh+C,SAAU,WACVwf,MAAO,mBACPmJ,OAAQ,IACRhJ,QAAS,GACTwJ,WAAY,QAGdi1B,sBAAuB,CACrBn+B,MAAO,UACP0I,OAAQ,GACR3I,SAAU,GACVM,WAAY,KAGd+9B,kBAAmB,CACjBp+B,MAAO,UACP0I,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZP,aAAc,iBACdnP,aAAc,EACdyX,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZT,OAAQ,mBAGVq1B,wBAAyB,CACvB,oCAAqC,CACnC,oBAAqB,CACnB11B,cAAe,kBAEjB,yBAA0B,CACxBroB,SAAU,WACV4oB,KAAM,EACNpJ,MAAO,OACP+I,OAAQ,EACRG,OAAQ,YAER,OAAQ,CACNlJ,MAAO,GACPmJ,OAAQ,GACR7I,OAAQ,oBACR4I,OAAQ,aACRF,WAAY,2BACZC,aAAc,GAEd,WAAY,CACV3I,OAAQ,oBACR0I,WAAY,aAKlB,sBAAuB,CACrBxoB,SAAU,WACV6oB,IAAK,OACLD,KAAM,OACNE,MAAO,EACPP,OAAQ,EACR/I,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,YACRjJ,aAAc,EACdQ,MAAO,UACPuI,WAAY,2BACZO,WAAY,OAEZ,SAAU,CACRnvB,YAAa,IAGf,4EAA6E,CAC3EomB,SAAU,GACV6I,IAAK,OACLD,KAAM,OACNE,MAAO,OACPP,OAAQ,OACRG,OAAQ,EACR1oB,SAAU,WACVmpB,WAAY,EACZC,cAAe,OAItB,GElcD,CAAE+zB,cAAe,iDCjHNja,GAAyB,yrU,sBCqBhCkrB,GAA0B,SAAH1yD,GAAA,IAC3ByuD,EAAazuD,EAAbyuD,cACAzmC,EAAYhoB,EAAZgoB,aACA0T,EAAQ17B,EAAR07B,SACAnU,EAAUvnB,EAAVunB,WACAU,EAAWjoB,EAAXioB,YACAC,EAAYloB,EAAZkoB,aACA8gC,EAAehpD,EAAfgpD,gBACAzrB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KACA37B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QACA5V,EAAQtD,EAARsD,SACAqvD,EAA6B3yD,EAA7B2yD,8BAA6B,OAE7BxxD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,6BAA6B9+C,UAC7Ec,EAAAA,EAAAA,MAAC2kD,GAAyB,CAACC,gBAAiBA,EAAiBttB,SAAUA,EAAUnU,WAAYA,EAAWjkB,SAAA,EACtGc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,CACxDi6B,GAAYf,IACXp4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,0BAAyBnC,SAAA,EACtCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAoBkvB,GAAiBA,EAAc/d,eAAiB+d,EAAc/d,cAAchoB,YAAe,GAC/G2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAGjBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,YAAWnC,SAAA,EACxBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,qBAAoBnC,SAAE4kB,KACrC/mB,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,aAAW,EACXO,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,sBAK1ExhD,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,aAAW,EACXI,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,qBAErEnlB,IAAaf,KACdr7B,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,aAAW,EACXO,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,gBAGtEv+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQwqC,8BAA+B,0BAA0BpgD,SAAA,EAC1FnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,qBAChDphD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,aAAW,EACXU,8BAA+B3xC,EAAQ0pC,6BAI5Ct/C,IACCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW0+C,EAA+Bz5C,EAAQ05C,sBAAsBtvD,SACrFA,QAIH,EAuCRovD,GAAwBrxD,aAAe,CACrC2mB,kBAAcjpB,EACd28B,cAAU38B,EACVwoB,gBAAYxoB,EACZkpB,iBAAalpB,EACbmpB,kBAAcnpB,EACdiqD,iBAAiB,EACjBzrB,UAAU,EACVf,UAAMz9B,EACN4zD,mCAA+B5zD,GAG1B,IAAM8zD,GAA4BzR,GACvC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACuxD,IAAuB9sD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAE+3B,UAAQ,IAAG,GAEjDgmB,EACA,CAAE9B,cAAe,8BAGNqR,GAAmC1R,GAC9C,SAAA3gD,GAAA,IAAGyY,EAAOzY,EAAPyY,QAASrY,EAAIJ,EAAJI,KAAS2E,GAAK2lC,EAAAA,EAAAA,GAAA1qC,EAAA2qC,IAAA,OACxBhnC,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ6qC,+BAA+BzgD,SAAA,EACrDnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAcnC,UAC3BnC,EAAAA,EAAAA,KAAA,OAAKk3B,IAAKmP,GAAwBlP,IAAKz3B,EAAKsH,UAAUC,qBAExDjH,EAAAA,EAAAA,KAACuxD,IAAuB9sD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAE0T,QAASA,EAASrY,KAAMA,OACxD,GAER+iD,EACA,CAAEnC,cAAe,qCAGNsR,GAAkC3R,GAC7C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQirC,8BAA8B7gD,UAC1DnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,sCAAqCnC,UAClDnC,EAAAA,EAAAA,KAACuxD,IAAuB9sD,EAAAA,EAAAA,GAAA,GAAKJ,OAE3B,GAERw+C,EACA,CAAEvC,cAAe,oCCzJbuR,GAAuB,SAAHhzD,GAAA,IACxByuD,EAAazuD,EAAbyuD,cACAvmC,EAAYloB,EAAZkoB,aACAH,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBACAhzB,EAAQ17B,EAAR07B,SACAnU,EAAUvnB,EAAVunB,WACAU,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBACAxxB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KACA37B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAAO,OAEP/X,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,6BAA6B9+C,UAC7Ec,EAAAA,EAAAA,MAAA,KACEqB,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAMvD,GAAYnU,EAAWjkB,SAAA,CAE5Bi6B,GAAYf,IACXr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAoBkvB,GAAiBA,EAAc/d,eAAiB+d,EAAc/d,cAAchoB,YAAe,GAC/G2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAInBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDnC,EAAAA,EAAAA,KAACwoD,GAAwB,CACvBruB,cAAY,EACZpT,aAAcA,EACdrnB,KAAMA,EACN2oD,cAAev1C,IAAWiF,EAAQ4pC,kCAAmC,6BAEvE3hD,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,qBAEzEthD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,wBAI1E,EAuCRoQ,GAAqB3xD,aAAe,CAClC6mB,kBAAcnpB,EACdgpB,mBAAehpB,EACf2vD,0BAA0B,EAC1BhzB,cAAU38B,EACVwoB,gBAAYxoB,EACZkpB,iBAAalpB,EACbgwD,wBAAwB,EACxBxxB,UAAU,EACVf,UAAMz9B,GAGR,IAAMk0D,GAAgC,SAAHxyD,GAAA,IACjCguD,EAAahuD,EAAbguD,cACAvmC,EAAYznB,EAAZynB,aACAH,EAAatnB,EAAbsnB,cACA2mC,EAAwBjuD,EAAxBiuD,yBACAhzB,EAAQj7B,EAARi7B,SACAnU,EAAU9mB,EAAV8mB,WACAU,EAAWxnB,EAAXwnB,YACA8mC,EAAsBtuD,EAAtBsuD,uBACAxxB,EAAQ98B,EAAR88B,SACA21B,EAAYzyD,EAAZyyD,aACA12B,EAAI/7B,EAAJ+7B,KACA37B,EAAIJ,EAAJI,KACAqY,EAAOzY,EAAPyY,QACAi6C,EAAyB1yD,EAAzB0yD,0BACAhrC,EAAY1nB,EAAZ0nB,aACAilC,EAAsB3sD,EAAtB2sD,uBAC2BgG,EAAyB3yD,EAApD4yD,0BAAyB,OAEzBjvD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQkpC,cAAe,6BAA6B9+C,SAAA,CAC5E8vD,IAA6BjyD,EAAAA,EAAAA,KAACiyD,EAAyB,CAACnF,0BAA2B/0C,EAAQ+uC,mBAC5F7jD,EAAAA,EAAAA,MAAA,KACEqB,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAMvD,GAAYnU,EAAWjkB,SAAA,CAE5Bi6B,GAAYf,IACXr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAoBkvB,GAAiBA,EAAc/d,eAAiB+d,EAAc/d,cAAchoB,YAAe,GAC/G2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAInBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACzR,2BAAyB,EAACwP,kBAAmBluC,EAAQkuC,kBAAmBvmD,KAAMA,IACtFqyD,IAAgB/xD,EAAAA,EAAAA,KAAC2sD,GAAQ,CAACC,kBAAmB70C,EAAQgvC,YACtD/mD,EAAAA,EAAAA,KAACwoD,GAAwB,CACvB/R,2BAAyB,EACzBtc,cAAc,EACdpT,aAAcA,EACdrnB,KAAMA,EACN2oD,cAAev1C,IAAWiF,EAAQ4pC,kCAAmC,6BAEvE3hD,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,oBAExE0Q,GAA4BhyD,EAAAA,EAAAA,KAACgtD,GAAqB,CACjDhE,YAAa4E,EACb9mC,YAAaA,EACbmmC,+BAAgCl1C,EAAQivC,sBACxCkG,+BAAgCn1C,EAAQ2pC,sBACxCyL,qCAAsCp1C,EAAQguC,4BAC9CkG,uBAAwBA,EACxBjlC,aAAcA,EACd0iC,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,kBACrEzhD,EAAAA,EAAAA,KAACypD,GAAoB,CACxB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,yBAI1E,EAGK0Q,IAA2BxC,EAAAA,GAAAA,kBAAgB,SAACC,GACvD,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzByY,EAF4Bh0D,IAAAA,IAAMc,EAAa,CAAC,UAAW,qBAElB+gD,GAC7C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQsrC,mBAAmBlhD,UAC/CnC,EAAAA,EAAAA,KAAC8xD,IAA6BrtD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBJ,GAAK,IACTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,EACR21B,cAAY,EACZG,0BAA2BnF,OAEzB,GAERnG,GACA,CAAEtG,cAAe,6BACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC6xD,IAAoBptD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,IACR,GAEJ6mB,EACA,CAAE3C,cAAe,6BAGnB,OAAOtgD,EAAAA,EAAAA,KAACoyD,GAAU3tD,EAAAA,EAAAA,GAAA,GAAKmrD,GACzB,IAEayC,IAAwB1C,EAAAA,GAAAA,kBAAgB,SAACC,GACpD,IAAM1wD,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBAGzByY,EAF4Bh0D,IAAAA,IAAMc,EAAa,CAAC,UAAW,qBAElB+gD,GAC7C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQsrC,mBAAmBlhD,UAC/CnC,EAAAA,EAAAA,KAAC8xD,IAA6BrtD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACxBJ,GAAK,IACTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,EACR81B,0BAA2BrF,GAC3BkF,cAAY,MAEV,GAER5K,GACA,CAAE7G,cAAe,0BACfL,GACF,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQsrC,mBAAmBlhD,UAC/CnC,EAAAA,EAAAA,KAAC6xD,IAAoBptD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,MAEN,GAER+mB,EACA,CAAE7C,cAAe,0BAGnB,OAAOtgD,EAAAA,EAAAA,KAACoyD,GAAU3tD,EAAAA,EAAAA,GAAA,GAAKmrD,GACzB,I,qHCxQa0C,GAAqC,SAAHzzD,GA4BxC,IA3BLa,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEAu1C,EAAazuD,EAAbyuD,cAGAiF,EAAe1zD,EAAf0zD,gBACAC,EAAmB3zD,EAAnB2zD,oBACAj4B,EAAQ17B,EAAR07B,SACAk4B,EAAgB5zD,EAAhB4zD,iBACA/qC,EAAQ7oB,EAAR6oB,SACAV,EAAYnoB,EAAZmoB,aAMA0rC,EAAU7zD,EAAV6zD,WACAC,EAAoB9zD,EAApB8zD,qBACAC,EAAY/zD,EAAZ+zD,aACAC,EAAUh0D,EAAVg0D,WACAC,EAAmBj0D,EAAnBi0D,oBACAC,EAA4Bl0D,EAA5Bk0D,6BAMAzzD,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAAuCuiC,GAAiB,CAAC,EAAjD6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YACvB,IAAKgyB,IAAkBvd,EACrB,OAAO,KAGT,IAAMlI,EAAoBumB,EAAgB9yB,EAEpCyS,EAAWogB,GAA6B3e,EA+BxCwjB,EAAqB,WAAH,OACtBhzD,EAAAA,EAAAA,KAACkhB,GAAAA,EAAM,CAAC+xC,WAAW,YAAY3uD,UAAWwO,IAAWiF,EAAQ2pC,uBAAuBv/C,SACjF6kB,GACM,EA2BX,OACEhnB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,6BAA8B5P,MAAO,CAAEyf,MAAM,GAADthB,OAAKwmC,EAAiB,OAAO1lC,UAClGnC,EAAAA,EAAAA,KAACkzD,GAAAA,EAAc,CAAC/wC,MAAOgxC,GAAAA,EAAchxD,UACnCc,EAAAA,EAAAA,MAACmwD,GAAAA,EAAI,CAAC9uD,UAAWwO,IAAWiF,EAAQkpC,eAAe9+C,SAAA,CAEhDuwD,IA/DP1yD,EAAAA,EAAAA,KAACqzD,GAAAA,EAAU,CACT/uD,UAAWwO,IAAWiF,EAAQwrC,qBAC9BpoB,OAAOn7B,EAAAA,EAAAA,KAACkqD,GAAAA,EAAK,CAAC5lD,UAAWwO,IAAWiF,EAAQ2rC,eAAgBxsB,IAAKs7B,EAAqBr7B,IAAKz3B,EAAKsH,UAAUC,wBAC1GooB,QAAQrvB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4rC,sBAAsBxhD,UAACnC,EAAAA,EAAAA,KAAA,KAAAmC,SAAIowD,MACtEzrC,aAAa9mB,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQ6rC,sBAAsBzhD,SAAEzC,EAAKsH,UAAUC,gBA6DnF0rD,IAAwB3yD,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQ8rC,2BAA2B1hD,SAAEswD,KAE1FxvD,EAAAA,EAAAA,MAAA,OAAAd,SAAA,EA1DNnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SACzD4tC,GAAaA,EAAU5pB,MACxBnmB,EAAAA,EAAAA,KAACuzD,GAAAA,EAAW,CAACjvD,UAAWwO,IAAWiF,EAAQyrC,sBAAsBrhD,UAC/DnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,mBAiDhCg0B,IAAeC,IAnCxB7vD,EAAAA,EAAAA,MAACuwD,GAAAA,EAAU,CAAClvD,UAAWwO,IAAWiF,EAAQ0rC,qBAAqBthD,SAAA,EAC7Dc,EAAAA,EAAAA,MAAA,OAAAd,SAAA,EACEnC,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQ+rC,mBAAmB3hD,SAAEulB,IACxDkrC,IAAgB5yD,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQypC,mBAAmBr/C,SAAEo4B,OAE3EvT,GAAgBgsC,OA+BVH,GAAcC,IA1BvB7vD,EAAAA,EAAAA,MAACuwD,GAAAA,EAAU,CAAClvD,UAAWwO,IAAWiF,EAAQ0rC,qBAAqBthD,SAAA,EAC7DnC,EAAAA,EAAAA,KAAA,OAAAmC,UAAKnC,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQ+rC,mBAAmB3hD,SAAEulB,MAC7DqrC,IAAgC/yD,EAAAA,EAAAA,KAACszD,GAAAA,EAAI,CAAChvD,UAAWwO,IAAWiF,EAAQ8rC,2BAA2B1hD,SAAEswD,KAClGxvD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQssC,iBAAiBliD,SAAA,EAClDc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQqsC,sBAAsBjiD,SAAA,EACvDnC,EAAAA,EAAAA,KAACkqD,GAAAA,EAAK,CAAC5lD,UAAWwO,IAAWiF,EAAQ2rC,eAAgBxsB,IAAKs7B,EAAqBr7B,IAAKz3B,EAAKsH,UAAUC,yBACnGjH,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4rC,sBAAsBxhD,SAAEowD,OAE5DvrC,GAAgBgsC,mBAwBzB,EAsBAV,GAAmCpyD,aAAe,CAChDotD,cAAe,CAAC,EAChBiF,qBAAiB30D,EACjB40D,yBAAqB50D,EACrB28B,cAAU38B,EACV60D,sBAAkB70D,EAClB8pB,cAAU9pB,EACVopB,kBAAcppB,EACd80D,YAAY,EACZC,sBAAsB,EACtBE,YAAY,EACZC,qBAAqB,EACrBC,8BAA8B,EAC9BH,cAAc,GCrJT,IAAMa,GAAwCxT,GACnD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACsyD,IAAkC7tD,EAAAA,EAAAA,GAAA,CACjCiuD,YAAU,EACVC,sBAAoB,EACpBE,YAAU,EACVC,qBAAqB,EACrBF,cAAY,GACRvuD,GACJ,GACJi/C,EACA,CAAEhD,cAAe,0CAGNoT,GAAuCzT,GAClD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACsyD,IAAkC7tD,EAAAA,EAAAA,GAAA,CACjCiuD,YAAU,EACVC,sBAAoB,EACpBE,YAAU,EACVC,qBAAqB,EACrBF,cAAY,GACRvuD,GACJ,IzCoF4C,SAAA8d,GAAK,OAAA1d,EAAAA,EAAAA,GAAA,GAClD6+C,IAA0C,GyClF7C,CAAEhD,cAAe,yCAGNqT,GAAgD1T,GAC3D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACsyD,IAAkC7tD,EAAAA,EAAAA,GAAA,CACjCiuD,YAAY,EACZC,sBAAsB,EACtBE,YAAU,EACVC,qBAAmB,EACnBF,cAAc,GACVvuD,GACJ,GAEJ8/C,EACA,CAAE7D,cAAe,kDAGNsT,GAAmD3T,GAC9D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACsyD,IAAkC7tD,EAAAA,EAAAA,GAAA,CACjCiuD,YAAY,EACZC,sBAAsB,EACtBE,YAAU,EACVE,8BAA4B,EAC5BD,qBAAmB,EACnBF,cAAc,GACVvuD,GACJ,IzC8HwD,SAAA8d,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC9D0/C,KAAkD,IAErDN,0BAA2B,CACzB/3B,OAAQ,sBACRo7B,WAAY,eACZnkC,UAAW,qBACXK,MAAO,qBACPiJ,WAAY,sBACZlJ,SAAU,qBACV2+B,UAAW,oBACXr+B,WAAY,iBACZ6I,WAAY,sBACZy3B,cAAe,uBAEjBK,qBAAsB,CACpBhhD,QAAS,2BAEXihD,gBAAiB,CACfjhD,QAAS,0BACTwQ,eAAgB,gBAChB+a,cAAe,SACfwE,IAAK,WACN,GyClJD,CAAEmtB,cAAe,qDAGNuT,GAAuC5T,GAClD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACsyD,IAAkC7tD,EAAAA,EAAAA,GAAA,CACjCiuD,YAAU,EACVC,sBAAoB,EACpBE,YAAU,EACVC,qBAAqB,EACrBgB,sBAAsB,EACtBf,8BAA8B,EAC9BH,cAAc,GACVvuD,GACJ,IzCuI4C,SAAA8d,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAClD0/C,KAAkD,IAErDZ,oBAAqB,CACnBzvC,WAAY,oBACZ6a,cAAe,oBACf,wBAAyB,qBAE3B+0B,cAAe,CACb/gC,MAAO,OACPmJ,OAAQ,QAEV63B,qBAAsB,CACpBvgC,MAAO,UACPiJ,WAAY,WACZlJ,SAAU,MACV2+B,UAAW,SACXr+B,WAAY,IACZ6I,WAAY,WACZy3B,cAAe,YAEjBM,gBAAiB,CACfjhD,QAAS,0BACTwQ,eAAgB,gBAChB+a,cAAe,SACfwE,IAAK,UAEPywB,qBAAsB,CACpBzgC,SAAU,qBACVC,MAAO,UACPkJ,WAAY,uBAEdu3B,0BAA2B,CACzB1gC,SAAU,uBAEZsgC,oBAAqB,CACnBhkB,WAAY,SACZ7rB,eAAgB,gBAChB+a,cAAe,oBAChB,GyC3KD,CAAE2xB,cAAe,yCCpFNyT,GAAsB,SAAHl1D,GAAA,IAC9BkZ,EAAOlZ,EAAPkZ,QACA5V,EAAQtD,EAARsD,SAAQ,OAERnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW,4BAA6BiF,EAAQi8C,iBAAkB,mBAAmB7xD,UACnGnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,mCAAmC9+C,UACnFnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQk8C,mBAAmB9xD,SACnDA,OAGD,EAYR4xD,GAAoB7zD,aAAe,CACjC6X,QAAS,CAAC,EACV5V,SAAU,M,kKC1BC+xD,GAA+B,WAAH,MAAU,CACjDjT,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,oCACRkxC,qBAAsB,OACtBC,oBAAqB,OACrBlxC,aAAc,QAEhB8wC,iBAAkB,CAChB5wD,QAAS,OACTwQ,eAAgB,UAElBqgD,kBAAmB,CACjBjxC,UAAW,GACXjP,aAAc,GACd+X,OAAQ,MACRhvB,WAAY,GACZC,YAAa,GACb6uB,aAAc,IAEhByoC,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPa,gBAAiB,QACjBoI,aAAc,IAEjB,EAEY0oC,GAAwB,WACnC,IAAAC,EAKI/O,IAJFvE,EAAasT,EAAbtT,cACAE,EAAsBoT,EAAtBpT,uBACAmE,EAAyBiP,EAAzBjP,0BACGvb,GAAIC,EAAAA,EAAAA,GAAAuqB,EAAAtqB,IAETuqB,EApCiD,CACjDvT,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,oCACRkxC,qBAAsB,OACtBC,oBAAqB,OACrBlxC,aAAc,QAEhB8wC,iBAAkB,CAChB5wD,QAAS,OACTwQ,eAAgB,UAElBqgD,kBAAmB,CACjBjxC,UAAW,GACXjP,aAAc,GACd+X,OAAQ,MACRhvB,WAAY,GACZC,YAAa,GACb6uB,aAAc,IAEhByoC,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPa,gBAAiB,QACjBoI,aAAc,KAWO6oC,EAAmBD,EAAlCvT,cAAuCyT,GAAY1qB,EAAAA,EAAAA,GAAAwqB,EAAA7R,IAE3D,OAAAl+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKslC,GACA2qB,GAAY,IACfzT,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GACAwT,GAAmB,IACtB9xC,MAAO,QACPmJ,OAAQ,UAEVq1B,wBAAsB18C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjB08C,GAAsB,IACzBwT,KAAM,MAERrP,2BAAyB7gD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACpB6gD,GAAyB,IAC5BtiC,UAAW,GACXkO,UAAW,+EACXtF,aAAc,SACd3I,OAAQ,mBACR0I,WAAY,OACZ,2BAA4B,CAC1BG,OAAQ,OACRhJ,QAAS,WAIjB,EC1Da8xC,GAA4B3U,GACvC,SAAC57C,GACC,IACE0T,EAKE1T,EALF0T,QACAu1C,EAIEjpD,EAJFipD,cACAvmC,EAGE1iB,EAHF0iB,aACAD,EAEEziB,EAFFyiB,YACApnB,EACE2E,EADF3E,KAGFb,EAEIyuD,GAAiB,CAAC,EADpB/d,EAAa1wC,EAAb0wC,cAAeC,EAAiB3wC,EAAjB2wC,kBAAmBO,EAASlxC,EAATkxC,UAAWie,EAAiBnvD,EAAjBmvD,kBAAmBC,EAAmBpvD,EAAnBovD,oBAAqBC,EAAoBrvD,EAApBqvD,qBAAsBC,EAAyBtvD,EAAzBsvD,0BAE7G7uD,EAAuCiwC,GAAiB,CAAC,EAAjD6e,EAAa9uD,EAAb8uD,cAAe9yB,EAAWh8B,EAAXg8B,YACvB,IAAKgyB,IAAkBvd,EACrB,OAAO,KAGT,IAAMhC,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC8wD,GAAmB,CAClBh8C,QAASA,EAAQ5V,SAAA,EAEjBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ88C,kBAAkB1yD,UACxCnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,kBAGvC7+B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ+8C,0BAA0B3yD,UAChDnC,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbpnB,KAAMA,EACNgqD,8BAA+B3xC,EAAQg9C,oBAG3C/0D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQi9C,gBAAgB7yD,UACtCnC,EAAAA,EAAAA,KAACwoD,GAAwB,CACvBruB,cAAY,EACZpT,aAAcA,EACdrnB,KAAMA,EACN2oD,cAAetwC,EAAQk9C,kCAKjC,IDqFsC,WACtC,IAAAC,EAlJiD,CACjDjU,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,oCACRkxC,qBAAsB,OACtBC,oBAAqB,OACrBlxC,aAAc,QAEhB8wC,iBAAkB,CAChB5wD,QAAS,OACTwQ,eAAgB,UAElBqgD,kBAAmB,CACjBjxC,UAAW,GACXjP,aAAc,GACd+X,OAAQ,MACRhvB,WAAY,GACZC,YAAa,GACb6uB,aAAc,IAEhByoC,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPa,gBAAiB,QACjBoI,aAAc,KAyHO6oC,EAAmBS,EAAlCjU,cAAuCyT,GAAY1qB,EAAAA,EAAAA,GAAAkrB,EAAAC,IAE3D,OAAA1wD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKiwD,GAAY,IACfzT,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRgwD,GAAmB,IACtB3oC,OAAQ,QACRnJ,MAAO,UAEToyC,eAAgB,CACdt1B,WAAY,MACZhc,WAAY,MACZN,SAAU,QAEZ0xC,kBAAmB,CACjB,wBAAyB,CACvBjpC,aAAc,SAItB,GCxGE,CAAE00B,cAAe,8BC/CNuR,GAAuB,SAAHhzD,GAAA,IAC/ByuD,EAAazuD,EAAbyuD,cACAvmC,EAAYloB,EAAZkoB,aACAH,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBACAhzB,EAAQ17B,EAAR07B,SACAnU,EAAUvnB,EAAVunB,WACAU,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBACAxxB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KACA37B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QACAq9C,EAAev2D,EAAfu2D,gBAAe,OAEfp1D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,4BAA6BmU,GAAiBjzD,UAC9Fc,EAAAA,EAAAA,MAAA,KACEqB,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAMvD,GAAYnU,EAAWjkB,SAAA,CAC9B,SAAOi6B,GAAYf,IAClBr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAoBkvB,GAAiBA,EAAc/d,eAAiB+d,EAAc/d,cAAchoB,YAAe,GAC/G2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAIjBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,uBAAwB,kBAAkBh/C,SAAA,EAC3EnC,EAAAA,EAAAA,KAACwoD,GAAwB,CACvBruB,cAAY,EACZpT,aAAcA,EACdrnB,KAAMA,EACN2oD,cAAev1C,IAAWiF,EAAQ4pC,kCAAmC,6BAEvE3hD,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,qBAEzEthD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,wBAI1E,EAuCRoQ,GAAqB3xD,aAAe,CAClC6mB,kBAAcnpB,EACdgpB,mBAAehpB,EACf2vD,0BAA0B,EAC1BhzB,cAAU38B,EACVwoB,gBAAYxoB,EACZkpB,iBAAalpB,EACbgwD,wBAAwB,EACxBwH,qBAAiBx3D,EACjBw+B,UAAU,EACVf,UAAMz9B,GAGD,IAAMy3D,GAAqCpV,GAChD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC6xD,IAAoBptD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IAGTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,IACR,IC9GmD,SAACja,GACxD,IAAA+gC,EAxB2C,CAC3CjC,cAAe,CACb79C,QAAS,QACT6f,OAAQ,oBACR4I,OAAQ,OACR/H,SAAU,SACV3gB,SAAU,sBACVwoB,WAAY,OACZsF,UAAW,cACXC,UAAW,OAEX,4BAA6B,CAC3BvO,MAAO,OACPmJ,OAAQ,SAGZq1B,4BAAwBvjD,EACxB+jD,uCAAmC/jD,EACnC0jD,4BAAwB1jD,EACxB6jD,0BAAsB7jD,EACtB4kD,4BAAwB5kD,GAIhBqjD,EAAaiC,EAAbjC,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAkZ,EAAAjZ,GAoFpC,OAnFYxlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBn1B,OAAQ,GACRF,aAAc,SACd9I,QAAS,oBACT,4BAA6B,CAC3B1f,QAAS,OACTurB,cAAe,SAInBwyB,uBAAwB,CACtB/9C,QAAS,QACT+f,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,YAIXu+B,kCAAmC,CACjCv+B,MAAO,mBACPD,SAAU,kBACVgjB,SAAU,IACVnjB,UAAW,iBACXsJ,WAAY,kBACZC,cAAe,SAEf,eAAgB,CACdnJ,MAAO,mBACPT,MAAO,OACPmJ,OAAQ,GACRD,OAAQ,uBACRzoB,QAAS,eACT0f,QAAS,mBACTwJ,WAAY,kBACZC,cAAe,SACf/I,gBAAiB,kBACjBP,OAAQ,mBACR2I,aAAc,kBAGhB,mBAAoB,CAClBxI,MAAO,mBACPN,QAAS,mBACTK,SAAU,mBACVH,UAAW,mBACXsJ,WAAY,qBAIhBg1B,uBAAwB,CACtBn+B,SAAU,GACVH,UAAW,EACXS,WAAY,IACZ6I,WAAY,SACZd,cAAe,GAGjBi2B,qBAAsB,CACpBr+B,MAAO,QACPD,SAAU,GACVH,UAAW,EACXsJ,WAAY,SACZxI,SAAU,SACV+R,aAAc,WACdlT,MAAO,OACPmT,WAAY,UAEd0sB,uBAAwB,CACtB/iB,WAAY,EACZ7c,aAAc,GACd,wBAAyB,CACvBgJ,aAAc,SAKtB,GD2BE,CAAE00B,cAAe,6BAGNgV,GAAkCrV,GAC7C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQsrC,mBAAmBlhD,UAC/CnC,EAAAA,EAAAA,KAAC6xD,IAAoBptD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACfJ,GAAK,IACTkpD,0BAA0B,EAC1BK,wBAAwB,EACxBxxB,UAAQ,MAEN,ICrC4C,SAACja,GACrD,IAAAihC,EAhH2C,CAC3CnC,cAAe,CACb79C,QAAS,QACT6f,OAAQ,oBACR4I,OAAQ,OACR/H,SAAU,SACV3gB,SAAU,sBACVwoB,WAAY,OACZsF,UAAW,cACXC,UAAW,OAEX,4BAA6B,CAC3BvO,MAAO,OACPmJ,OAAQ,SAGZq1B,4BAAwBvjD,EACxB+jD,uCAAmC/jD,EACnC0jD,4BAAwB1jD,EACxB6jD,0BAAsB7jD,EACtB4kD,4BAAwB5kD,GA4FhBqjD,EAAamC,EAAbnC,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAoZ,EAAAT,GAoHpC,OAnHYl+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbqC,mBAAoB,CAClBjgD,QAAS,OACTurB,cAAe,SACf7a,WAAY,UAGdmtC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBr1B,aAAc,EACdjJ,MAAO,OACPsO,UAAW,aACXhO,OAAQ,OACR,4BAA6B,CAC3B7f,QAAS,OACTurB,cAAe,MACfiB,SAAU,EACV3M,OAAQ,uBAIZk+B,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV1gB,QAAS,OACTurB,cAAe,MACf7a,WAAY,SACZgiB,WAAY,SACZlG,SAAU,EACV,qCAAsC,CACpCxsB,QAAS,eACTD,SAAU,aAIdw+C,kCAAmC,CACjCv+C,QAAS,0BACTyoB,OAAQ,8BACRU,cAAe,SAEf,eAAgB,CACdnJ,MAAO,mBACPT,MAAO,OACPmJ,OAAQ,GACRD,OAAQ,uBACRzoB,QAAS,eACT0f,QAAS,mBACTwJ,WAAY,kBACZC,cAAe,SACf/I,gBAAiB,kBACjBP,OAAQ,mBACR2I,aAAc,iBACdkJ,QAAS,MACT3xB,SAAU,WACV6oB,KAAM,KAGR,mBAAoB,CAClB5I,MAAO,mBACPD,SAAU,kBACVmJ,WAAY,kBACZxJ,QAAS,uBAIbw+B,uBAAwB,CACtBl+C,QAAS,eACTggB,MAAO,OACPN,QAAS,EACTW,WAAY,IACZ+H,cAAe,EACf,WAAY,CACV9H,QAAS,MACTT,OAAQ,aACR7f,QAAS,eACT0f,QAAS,MACTa,UAAW,iCACX+hB,YAAa,kBACb3oC,YAAa,GACboG,SAAU,WACV4oB,MAAO,GAET,WAAY,CACVrI,QAAS,MACTtgB,QAAS,SACT0f,QAAS,EACTM,MAAO,OACPjgB,SAAU,WACV4oB,KAAM,IAIV01B,qBAAsB,CACpBr+C,QAAS,eACTggB,MAAO,QACPN,QAAS,EACT6xC,KAAM,UACN7wC,SAAU,SACV+R,aAAc,WACdlT,MAAO,OACP6I,cAAe,GAGjBg3B,uBAAwB,CACtB1/B,QAAS,CAAC,EAAG,EAAG,EAAG,GACnB,wBAAyB,CACvB8I,aAAc,SAKtB,GD9EE,CAAE00B,cAAe,0B,sKEjJNiV,GAA6BtV,GAAqB,SAAC57C,GAC9D,IACEipD,EAYEjpD,EAZFipD,cACAvmC,EAWE1iB,EAXF0iB,aACAH,EAUEviB,EAVFuiB,cACA2mC,EASElpD,EATFkpD,yBACAzmC,EAQEziB,EARFyiB,YACA8mC,EAOEvpD,EAPFupD,uBACAvyB,EAMEh3B,EANFg3B,KACAd,EAKEl2B,EALFk2B,SACAnU,EAIE/hB,EAJF+hB,WACA1mB,EAGE2E,EAHF3E,KACAqY,EAEE1T,EAFF0T,QACGgyB,GAAIC,EAAAA,EAAAA,GACL3lC,EAAK4lC,IAET,OACEjqC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQy9C,QAAQrzD,UAC9BnC,EAAAA,EAAAA,KAAC6xD,IAAoBptD,EAAAA,EAAAA,GAAA,CACnB42B,KAAMA,EACNtU,aAAcA,EACdH,cAAeA,EACf2mC,yBAA0BA,EAC1BzmC,YAAaA,EACb8mC,uBAAwBA,EACxBluD,KAAMA,EACNqY,QAASA,EACTu1C,cAAeA,EACf/yB,SAAUA,EACVnU,WAAYA,GACR2jB,KAKZ,IJ2ByC,WACvC,IAAA0rB,EAnEiD,CACjDxU,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,oCACRkxC,qBAAsB,OACtBC,oBAAqB,OACrBlxC,aAAc,QAEhB8wC,iBAAkB,CAChB5wD,QAAS,OACTwQ,eAAgB,UAElBqgD,kBAAmB,CACjBjxC,UAAW,GACXjP,aAAc,GACd+X,OAAQ,MACRhvB,WAAY,GACZC,YAAa,GACb6uB,aAAc,IAEhByoC,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPa,gBAAiB,QACjBoI,aAAc,KA0CO6oC,EAAmBgB,EAAlCxU,cAAuCyT,GAAY1qB,EAAAA,EAAAA,GAAAyrB,EAAA1S,IAE3D,OAAAt+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKiwD,GAAY,IACfzT,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRgwD,GAAmB,IACtBrxD,QAAS,OACTuf,MAAO,QACPmJ,OAAQ,QACR,4BAA6B,CAC3BA,OAAQ,QACRhJ,QAAS,OACToO,UAAW,+EACXlO,UAAW,GACXC,OAAQ,mBACR0I,WAAY,OACZhJ,MAAO,UAGX6yC,QAAS,CACPpyD,QAAS,OACTwQ,eAAgB,UAElBgqB,eAAgB,CACd3a,OAAQ,oBACRiO,UAAW,OACXvO,MAAO,IACPmJ,OAAQ,GACRhJ,QAAS,oBACTE,UAAW,KAEb2+B,kCAAmC,CACjCv+C,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,kBACVgjB,SAAU,IACV5Z,cAAe,SACfD,WAAY,OACZtJ,UAAW,EACX,eAAgB,CACdQ,gBAAiB,kBACjBoI,aAAc,EACdE,OAAQ,GACRS,cAAe,SACfzJ,QAAS,mBACTH,MAAO,OACPvf,QAAS,eACTD,SAAU,SACV0oB,OAAQ,YACR1I,SAAU,GACVC,MAAO,mBACPkJ,WAAY,QAEd,mBAAoB,CAClBnJ,SAAU,oBAGdm+B,uBAAwB,CACtBl+C,QAAS,QACT+f,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEdm1B,qBAAsB,CACpBr+C,QAAS,QACTggB,MAAO,QACPuiB,eAAgB,OAChBxiB,SAAU,GACVH,UAAW,EACXsJ,WAAY,UAEdxF,YAAa,CACX1jB,QAAS,iBAGf,GIxG8B,CAAEk9C,cAAe,+BC1BlC9f,GAAuC,CAClDx8B,UAAW,CACTtE,KAAMuE,KAAAA,MAAgB,CACpB+C,UAAW/C,KAAAA,OACVC,WACH6T,QAAS9T,KAAAA,MAAgB,CACvBqhD,0BAA2BrhD,KAAAA,OAC3Bg9C,cAAeh9C,KAAAA,OACfk9C,uBAAwBl9C,KAAAA,OACxBm9C,kBAAmBn9C,KAAAA,OACnBs9C,sBAAuBt9C,KAAAA,OACvBu9C,kBAAmBv9C,KAAAA,OACnBs+C,8BAA+Bt+C,KAAAA,OAC/Bw9C,qBAAsBx9C,KAAAA,OACtByhD,eAAgBzhD,KAAAA,OAChBshD,qBAAsBthD,KAAAA,SACrBC,WACH4jB,eAAgB7jB,KAAAA,MAAgB,CAC9BomD,WAAYpmD,KAAAA,MAAgB,CAC1BqmD,iBAAkBrmD,KAAAA,SAEpBwgB,eAAgBxgB,KAAAA,MAAgB,CAC9Bk3B,MAAOl3B,KAAAA,MAAgB,CAAC,GACxB6lD,WAAY7lD,KAAAA,SAGhB0kC,iBAAkB1kC,KAAAA,KAClB2kC,mBAAoB3kC,KAAAA,KACpB8lD,wBAAyB9lD,KAAAA,OACzB+lD,mBAAoB/lD,KAAAA,OACpBwjB,aAAcxjB,KAAAA,MAAgB,CAC5B4iB,aAAc5iB,KAAAA,OACd6iB,YAAa7iB,KAAAA,OACbmiB,WAAYniB,KAAAA,OACZkiB,IAAKliB,KAAAA,SACJC,YAGLhE,aAAc,CACZyoC,kBAAkB,EAClBC,oBAAoB,EACpBmhB,wBAAyB,KACzBC,mBAAoB,IACpBliC,eAAgB,CAAC,IAIR4tC,GAAkC,SAACrxD,GAC9C,IACE3E,EAaE2E,EAbF3E,KACAqY,EAYE1T,EAZF0T,QACA4wB,EAWEtkC,EAXFskC,iBACAC,EAUEvkC,EAVFukC,mBACAmhB,EASE1lD,EATF0lD,wBACAC,EAQE3lD,EARF2lD,mBACAliC,EAOEzjB,EAPFyjB,eAAc6tC,EAOZtxD,EANFojB,aACEZ,EAAY8uC,EAAZ9uC,aACAC,EAAW6uC,EAAX7uC,YACAV,EAAUuvC,EAAVvvC,WACAD,EAAGwvC,EAAHxvC,IAIJ,OACEnmB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,6BAA6B9+C,UAC7Ec,EAAAA,EAAAA,MAAC2kD,GAAyB,CACxBE,mCAAoC/vC,EAAQutC,0BAC5CuC,iBAAe,EAAA1lD,SAAA,EAEfc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQopC,uBAAuBh/C,SAAA,EAC7CnC,EAAAA,EAAAA,KAACqpD,GAAyB,CACxB9uB,SAAUpU,EACVgjC,aAActiC,EACduiC,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,oBAExEt+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQwtC,qBAAqBpjD,SAAA,EAC3CnC,EAAAA,EAAAA,KAACwpD,GAAyB,CACxBjvB,SAAUpU,EACVC,WAAYA,EACZmjC,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,eAGlE7Y,GAAoB7gB,EAAeuiC,YAA6D,UAA/CviC,EAAeuiC,WAAWC,mBAC3EtqD,EAAAA,EAAAA,KAACyqD,GAAe,CACd/qD,KAAMA,EACN2qD,WAAYviC,EAAeuiC,iBAIjCpnD,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQwqC,8BAA+BxqC,EAAQwtC,qBAAsB,gBAAgBpjD,SAAA,EAC9GnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,qBAChDphD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACb4iC,8BAA+B3xC,EAAQ0pC,uBAGvC9Y,GAAoB7gB,EAAeuiC,YAA6D,mBAA/CviC,EAAeuiC,WAAWC,mBAC3EtqD,EAAAA,EAAAA,KAACoqD,GAAwB,CACvB1qD,KAAMA,EACN2qD,WAAYviC,EAAeuiC,mBAMjCzhB,GAAsB9gB,EAAerD,gBAAkBqD,EAAerD,eAAe0W,QACrFn7B,EAAAA,EAAAA,KAAC6pD,GAAc,CACbnqD,KAAMA,EACNy7B,MAAOrT,EAAerD,eAAe0W,MACrC2uB,WAAYhiC,EAAerD,eAAeqlC,WAC1CC,wBAAyBA,EACzBC,mBAAoBA,EACpBC,wBAAyBlyC,EAAQ2tC,qBAM7C,EAIAgQ,GAAgCx1D,aAAesgC,GAAqCtgC,a,yGCnIvE01D,GAAgC,SAACvxD,GAC5C,IACEuiB,EAQEviB,EARFuiB,cACAE,EAOEziB,EAPFyiB,YACAV,EAME/hB,EANF+hB,WACAD,EAKE9hB,EALF8hB,IACAmnC,EAIEjpD,EAJFipD,cACAv1C,EAGE1T,EAHF0T,QACA6wB,EAEEvkC,EAFFukC,mBACGmB,GAAIC,EAAAA,EAAAA,GACL3lC,EAAK4lC,IAETprC,EASIyuD,GAAiB,CAAC,EARpB/d,EAAa1wC,EAAb0wC,cACAC,EAAiB3wC,EAAjB2wC,kBACAO,EAASlxC,EAATkxC,UACAie,EAAiBnvD,EAAjBmvD,kBACAC,EAAmBpvD,EAAnBovD,oBACAC,EAAoBrvD,EAApBqvD,qBACAC,EAAyBtvD,EAAzBsvD,0BACA7f,EAAazvC,EAAbyvC,cAGIP,EAAWogB,GAA6B3e,EAC9ClwC,EAAuCiwC,GAAiB,CAAC,EAAjD6e,EAAa9uD,EAAb8uD,cAAe9yB,EAAWh8B,EAAXg8B,YAEjBxT,EAAiB8gB,GAAsB,CAC3CnkB,eAAgB,CACd0W,MAAO,CACLjE,IAAK82B,GAAqBje,EAAU5pB,IACpCxD,MAAOsrC,GAAuBle,EAAUptB,MACxCmJ,OAAQoiC,GAAwBne,EAAUjkB,OAC1C6jB,aAAc,CACZ/Q,YAAamP,EAASnP,YACtBH,QAASsP,EAAStP,QAClBE,QAASoP,EAASpP,UAGtBmrB,YAAY,GAEdA,WAAYxb,GAGd,OACEtuC,EAAAA,EAAAA,KAAC01D,IAA+BjxD,EAAAA,EAAAA,GAAA,CAC9BslD,wBAAyBzuB,EACzB0uB,mBAAoBoE,EACpB3mC,aAAc,CACVZ,aAAcD,EACdE,YAAAA,EACAV,WAAAA,EACAD,IAAAA,GAEJyiB,oBAAkB,EAClB9gB,eAAgBA,EAChB/P,QAASA,GACLgyB,GAGV,EAEa8rB,GAA4B5V,GACvC,SAAA57C,GAAK,OAAIrE,EAAAA,EAAAA,KAAC41D,IAA6BnxD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAEukC,oBAAkB,IAAG,GACxE0rB,GACA,CAAEhU,cAAe,8BAGNwV,GAAgC7V,GAC3C,SAAA57C,GAAK,OAAIrE,EAAAA,EAAAA,KAAC41D,IAA6BnxD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAEukC,oBAAoB,IAAS,GAChF0rB,GACA,CAAEhU,cAAe,kCCpENyV,GAAuC9V,GAClD,SAAC57C,GACC,IACE0T,EAIE1T,EAJF0T,QACAu1C,EAGEjpD,EAHFipD,cACA1mC,EAEEviB,EAFFuiB,cACAlnB,EACE2E,EADF3E,KAGFb,EAEIyuD,GAAiB,CAAC,EADpB/d,EAAa1wC,EAAb0wC,cAAeC,EAAiB3wC,EAAjB2wC,kBAAmBO,EAASlxC,EAATkxC,UAAWie,EAAiBnvD,EAAjBmvD,kBAAmBC,EAAmBpvD,EAAnBovD,oBAAqBC,EAAoBrvD,EAApBqvD,qBAAsBC,EAAyBtvD,EAAzBsvD,0BAE7G7uD,EAAuCiwC,GAAiB,CAAC,EAAjD6e,EAAa9uD,EAAb8uD,cAAe9yB,EAAWh8B,EAAXg8B,YACvB,IAAKgyB,IAAkBvd,EACrB,OAAO,KAGT,IAAMhC,EAAWogB,GAA6B3e,EAE9C,OACExvC,EAAAA,EAAAA,KAAC+zD,GAAmB,CAACh8C,QAASA,EAAQ5V,UACpCc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQi+C,gBAAgB7zD,SAAA,EACtCnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,gBAErC7+B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ+8C,0BAA0B3yD,UAChDnC,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdwiC,2BAA4BrxC,EAAQk+C,oBACpCv2D,KAAMA,UAMlB,IPsHwC,WACxC,IAAAw2D,EAzKiD,CACjDjV,cAAe,CACbt+B,MAAO,IACPmJ,OAAQ,IACR7I,OAAQ,oCACRkxC,qBAAsB,OACtBC,oBAAqB,OACrBlxC,aAAc,QAEhB8wC,iBAAkB,CAChB5wD,QAAS,OACTwQ,eAAgB,UAElBqgD,kBAAmB,CACjBjxC,UAAW,GACXjP,aAAc,GACd+X,OAAQ,MACRhvB,WAAY,GACZC,YAAa,GACb6uB,aAAc,IAEhByoC,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPa,gBAAiB,QACjBoI,aAAc,KAgJO6oC,EAAmByB,EAAlCjV,cAAuCyT,GAAY1qB,EAAAA,EAAAA,GAAAksB,EAAAC,IAE3D,OAAA1xD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKiwD,GAAY,IACfzT,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRgwD,GAAmB,IACtB3oC,OAAQ,QACRnJ,MAAO,UAETqzC,gBAAiB,CACf5yD,QAAS,OACTurB,cAAe,SACf/a,eAAgB,SAChBE,WAAY,WAGlB,GOrIE,CAAEwsC,cAAe,yCC7CN8V,GAAsC,SAAHv3D,GAGzC,IAFLkZ,EAAOlZ,EAAPkZ,QACAs+C,EAAMx3D,EAANw3D,OAEQn/B,GAAQm/B,GAAUA,EAAO14D,OAAS,EAAI04D,EAAO,GAAK,CAAC,GAAnDn/B,IAEFo/B,GAAWj0D,EAAAA,EAAAA,UAQjB,OANA7C,EAAAA,EAAAA,YAAU,WACJ82D,EAASxzD,SACXwzD,EAASxzD,QAAQyzD,MAErB,GAAG,CAACr/B,KAGFl3B,EAAAA,EAAAA,KAAC+zD,GAAmB,CAClBh8C,QAASA,EAAQ5V,UAEjBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQs8C,gBAAgBlyD,UACtCc,EAAAA,EAAAA,MAAA,SACE0nB,UAAQ,EACR6rC,yBAAuB,EACvBC,aAAa,0DACbvzD,MAAO,CAAE4oB,OAAQ,OAAQnJ,MAAO,OAAQiJ,aAAc,QACtD3rB,IAAKq2D,EAASn0D,SAAA,EAEdnC,EAAAA,EAAAA,KAAA,UAAQk3B,IAAKA,KACbl3B,EAAAA,EAAAA,KAAA,SACE02D,KAAK,WACLx/B,IAAI,GACJy/B,QAAQ,KACR5iC,MAAM,UACN6iC,SAAO,UAMnB,EAWAR,GAAoCl2D,aAAe,CACjD6X,QAAS,CAAC,EACVs+C,OAAQ,MAGH,IAAMQ,GAAiC5W,GAC5C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACo2D,IAAmC3xD,EAAAA,EAAAA,GAAA,GAAKJ,GAAS,GAEpD6vD,GACA,CAAE5T,cAAe,6BC7Db8G,GAAuB,SAAHvoD,GAAA,IACxBwoD,EAASxoD,EAATwoD,UACAlhC,EAAGtnB,EAAHsnB,IACAhkB,EAAQtD,EAARsD,SACAmlD,EAAyBzoD,EAAzByoD,0BACAvvC,EAAOlZ,EAAPkZ,QAAO,OAIL/X,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ0vC,sBAAuBJ,GAAatvC,EAAQ2vC,yBAA0BJ,EAA2B,6BAA6BnlD,UAC/Jc,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,cAAanC,SAAA,CACzBgkB,IACDnmB,EAAAA,EAAAA,KAAA,KACEsE,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAM3X,EAAIhkB,SAETA,KAGDgkB,IACFnmB,EAAAA,EAAAA,KAAA,OACEsE,UAAU,yBAAwBnC,SAEjCA,QAID,EAaVilD,GAAqBlnD,aAAe,CAClCmnD,WAAW,EACXlhC,SAAKvoB,EACL0pD,+BAA2B1pD,GAGtB,IAAMk5D,GAA6B7W,EACxCmH,ICxD8C,WAAH,MAAU,CACrDK,qBAAsB,CACpBrkD,QAAS,OACTurB,cAAe,SACf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACV6H,WAAY,cACZE,OAAQ,OAER,iBAAkB,CAChBlJ,MAAO,OACP,4BAA6B,CAC3BuO,UAAW,+EACXjO,OAAQ,kBACR2I,aAAc,KACdxoB,QAAS,OACTurB,cAAe,SACf7K,SAAU,SACV+H,OAAQ,OACR1oB,SAAU,cAIhBukD,yBAA0B,CACxB5yB,QAAS,IAEZ,GD6BC,CAAEwrB,cAAe,sBExCNyW,GAA+B,SAAHl4D,GAsClC,IArCLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UACA+N,EAAev2D,EAAfu2D,gBACA/tC,EAAkBxoB,EAAlBwoB,mBAEAsV,EAAiB99B,EAAjB89B,kBACA/V,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBAEAlxB,EAAgBx9B,EAAhBw9B,iBACAxV,EAAYhoB,EAAZgoB,aACA2mC,EAAuB3uD,EAAvB2uD,wBAEAC,EAAY5uD,EAAZ4uD,aACAlzB,EAAQ17B,EAAR07B,SACAmzB,EAAmB7uD,EAAnB6uD,oBACAtnC,EAAUvnB,EAAVunB,WAEA2V,EAAel9B,EAAfk9B,gBACAjV,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBAEA5B,EAAgBntD,EAAhBmtD,iBACAhlC,EAAYnoB,EAAZmoB,aAEA6mC,EAAWhvD,EAAXgvD,YACA7xB,EAAYn9B,EAAZm9B,aAEAF,EAAgBj9B,EAAhBi9B,iBACA/U,EAAYloB,EAAZkoB,aACA+mC,EAAuBjvD,EAAvBivD,wBAEA1xB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KAEA37B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEAzY,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAAmDuiC,GAAiB,CAAC,EAA7D6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YAAa/T,EAAUva,EAAVua,WACpC,IAAK+lC,IAAkBvd,EACrB,OAAO,KAGT,IAAMinB,EAA0B3vC,EAAqB,EAAIA,EAAqB+mC,EAExErgB,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC6zD,GAA0B,CAAC3wC,IAAKoU,EAAU8sB,UAAWA,EAAWC,0BAA2Bx0C,IAAWiF,EAAQkpC,cAAemU,GAAiBjzD,SAAA,EAC7Ic,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAAA,CACzD0rD,IAAe7tD,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,oBAC/DplB,IAAgBh8B,EAAAA,EAAAA,KAAC4oD,GAAiB,CAACF,kBAAmB3wC,EAAQspC,oBAE7DtR,EAAU5pB,MACRnmB,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmB44B,EACnB17B,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,mBAI3C57B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,uBAAwB,kBAAkBh/C,SAAA,CAC1Ei6B,GAAYf,IACbp4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,0BAAyBnC,SAAA,EACtCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmB7W,GAAc,GACjC2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAGjBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,YAAWnC,SAAA,EACxBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,qBAAoBnC,SAAE4kB,IACpC0mC,IACDztD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,YAAa0E,EACbnE,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,qBAMvE7kB,IACD38B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,oBAGxEjlB,IACDr8B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,YAAawE,EACbpE,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,qBAGrEnlB,IAAaf,IAASoyB,IACzBztD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,YAAa0E,EACbnE,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,eAGnEzlB,IACD/7B,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,iBAGzE3lB,IACD97B,EAAAA,EAAAA,KAACwoD,GAAwB,CACvBruB,aAAc2zB,EACd/mC,aAAcA,EACdrnB,KAAMA,EACN2oD,cAAev1C,IAAWiF,EAAQ4pC,kCAAmC,4BAGtEqK,GAAoBhlC,IACrBhnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B7xC,EAAQ2pC,6BAKhH,EAwDAqV,GAA6B72D,aAAe,CAC1CmnD,WAAW,EACX+N,gBAAiB,GACjB/tC,oBAAqB,EAErBsV,mBAAmB,EACnBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAiB,EACjBiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACdF,kBAAkB,EAClBgyB,yBAAyB,EACzB1xB,UAAU,EAEVxV,mBAAehpB,EACf2vD,0BAA0B,EAC1B1mC,kBAAcjpB,EACd4vD,yBAAyB,EACzBjzB,cAAU38B,EACVwoB,gBAAYxoB,EACZ8vD,qBAAqB,EACrB5mC,iBAAalpB,EACbgwD,wBAAwB,EACxB5mC,kBAAcppB,EACdmpB,kBAAcnpB,EACdy9B,UAAMz9B,GCzOD,IAAMq5D,GAAuChX,GAClD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,ICmC4C,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA1Dd,CACvCy8C,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACV2S,WAAY,SACZhS,SAAU,SACV+R,aAAc,YAEhB4rB,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UAMqB,IAGnC09B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,QAEdg1B,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETg+B,kBAAmB,CACjBn1B,MAAO,GAETo1B,kBAAmB,CACjBzb,gBAAiB,wDAClB,GD1DD,CAAE0a,cAAe,+BAGN4W,GAAgDjX,GAC3D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAc,EACdF,kBAAkB,EAClBM,UAAQ,IACR,IC6CqD,SAAAja,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAvFvB,CACvCy8C,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACV2S,WAAY,SACZhS,SAAU,SACV+R,aAAc,YAEhB4rB,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UAmCqB,IAGnC09B,uBAAwB,CACtBr+B,QAAS,qBACTK,SAAU,GACVmJ,WAAY,IACZ6Z,SAAU,yBACV,6BAA8B,CAC5B/iC,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,SACf,wBAAyB,CACvBvL,MAAO,OACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,WAKpBg1B,uBAAwB,CACtBn+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVpP,aAAc,EACd0P,WAAY,MACZ+H,cAAe,GAEjBg2B,kBAAmB,CACjBr+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVpP,aAAc,GAEhB0tC,qBAAsB,CACpBt+C,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVgjB,SAAU,IACVC,SAAU,aACVxjB,aAAc,IAEhB8+B,sBAAuB,CACrBt+B,MAAO,QACP6I,MAAO,GACPhJ,OAAQ,OACRyI,OAAQ,GACRoJ,QAAS,MACThS,QAAS,oBACT3f,SAAU,WACVggB,SAAU,GACVM,WAAY,OACZmI,aAAc,GACdpI,gBAAiB,WAEnBg/B,uBAAwB,CACtB/iB,WAAY,EACZ7c,aAAc,EACd,wBAAyB,CACvBgJ,aAAc,EACd3I,OAAQ,uBAEX,GD9GD,CAAEq9B,cAAe,wCAGN6W,GAAyClX,GACpD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,ICkG8C,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA9JhB,CACvCy8C,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACV2S,WAAY,SACZhS,SAAU,SACV+R,aAAc,YAEhB4rB,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UA0GqB,IAGnC+9B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZs+B,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,QACPI,gBAAiB,UACjBsR,QAAS,MACTrR,WAAY,SACb,GD1HD,CAAE68B,cAAe,iCAGN8W,GAA2CnX,GACtD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAY,EACZ1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAW,EACX7xB,cAAY,EACZF,kBAAkB,IAClB,IC8GgD,SAAA3Z,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA5LlB,CACvCy8C,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,EACNL,OAAQ,GACRD,YAAa,GACbtI,SAAU,GACVmJ,WAAY,KAEd80B,uBAAmBxjD,EACnByjD,kBAAmB,CACjBzb,gBAAiB,yDAEnB0b,uBAAwB,CACtBn+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACVuoB,OAAQ,GACRF,cAAe,EACf/H,WAAY,MACZN,SAAU,GACVC,MAAO,SAETo+B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,GACV2S,WAAY,SACZhS,SAAU,SACV+R,aAAc,YAEhB4rB,qBAAsB,CACpBr+B,MAAO,QACPsI,OAAQ,EACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACVyoB,aAAc,GACd3I,OAAQ,OACRH,QAAS,oBACTK,SAAU,GACVC,MAAO,OACPI,gBAAiB,OACjBsR,QAAS,MACTrR,WAAY,UAwIqB,IAGnC+9B,kBAAmB,CACjBp+B,MAAO,QACPsI,OAAQ,GACRvoB,SAAU,WACVggB,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACV6oB,IAAK,EACL5I,MAAO,QACPH,OAAQ,oBACR6R,QAAS,MACThS,QAAS,oBACTK,SAAU,GACVM,WAAY,OACZmI,aAAc,EACdpI,gBAAiB,YAClB,GDjID,CAAE88B,cAAe,mCEpEN+W,GAAiDpX,GAC5D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB9xB,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICdsD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAdlB,CAC7Cw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAKM,IAEzCujD,uBAAwB,CACtBr+B,QAAS,GACTM,MAAO,OACPD,SAAU,GACVmJ,WAAY,OACZ6Z,SAAU,0BAGZmb,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,KACX,GDVD,CAAEm9B,cAAe,yCAGNgX,GAA4DrX,GACvE,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAY,EACZuxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICNiE,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA5C7B,CAC7Cw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAmCM,IAEzCsjD,wBAAyB,CACvB/9C,SAAU,YAGZ89C,cAAe,CACb,6BAA8B,CAC5Bn1B,OAAQ,mBACRE,KAAM,MAKVm1B,uBAAwB,CACtBh+C,SAAU,WACV4oB,KAAM,GACNL,OAAQ,GACRvI,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,WAGTi+B,kBAAmB,CACjBj+C,QAAS,QACTuf,MAAO,OACPmJ,OAAQ,mBACRE,IAAK,GACL4Z,gBAAiB,yDAGnB0b,uBAAwB,CACtB79B,WAAY,MACZN,SAAU,GACVmJ,WAAY,UACZlJ,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR/X,aAAc,GAEd,+BAAgC,CAC9B5Q,SAAU,WACVuoB,OAAQ,KAIZi2B,kCAAmC,CACjC,eAAgB,CACdv+B,MAAO,kBACP0R,QAAS,GACT7R,OAAQ,4CAEV,mBAAoB,CAClBG,MAAO,wBAEV,GDhDD,CAAEk9B,cAAe,oDAGNiX,GAAoDtX,GAC/D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBK,wBAAsB,EACtB5mC,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICgCyD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAxGrB,CAC7Cw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA+FM,IAGzCqjD,cAAe,CACbt1B,WAAY,QAGdw1B,uBAAwB,CACtBr+B,QAAS,GAETM,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBt1B,KAAM,EACN5I,MAAO,UACP0I,OAAQ,GACR3oB,SAAU,WACVggB,SAAU,GACVmJ,WAAY,IACZ7I,WAAY,IACZ+H,cAAe,GAGjBi2B,qBAAsB,CACpB31B,OAAQ,GACRD,OAAQ,eACR1I,SAAU,KACX,GD7DD,CAAEm9B,cAAe,4CAGNkX,GAAwDvX,GACnE,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,IC6C6D,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GA3IzB,CAC7Cw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IAkIM,IAGzCqjD,cAAe,CACbn1B,OAAQ,GACRH,WAAY,OACZ7H,SAAU,mBACV,iBAAkB,CAChB,4BAA6B,CAC3B6K,cAAe,iBACf1L,OAAQ,kBACR6I,OAAQ,MAKdo1B,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,IACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,cACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,IAChB,GDjFD,CAAE80B,cAAe,gDAGNmX,GAA+CxX,GAC1D,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC+2D,IAA4BtyD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACvBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAkB,EAClBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAkB,EAClB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAAwB,EACxBzmC,iBAAalpB,EACbopB,kBAAcppB,EACdk+B,kBAAgB,EAChBgyB,yBAAuB,IACvB,ICiEoD,SAAA3rC,GAAK,OAAA1d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GArLhB,CAC7Cw8C,mBAAerjD,EACfsjD,6BAAyBtjD,EACzBujD,4BAAwBvjD,EACxBwjD,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,IA4KM,IAGzCqjD,cAAe,CACbn1B,OAAQ,GACRH,WAAY,OACZ,iBAAkB,CAChB,4BAA6B,CAC3BgD,cAAe,iBACf7C,OAAQ,MAKdo1B,wBAAyB,CACvB7wB,MAAO,OACP1N,MAAO,GACPmJ,OAAQ,GACRD,OAAQ,GAGVs1B,uBAAwB,CACtB/9B,MAAO,OACPD,SAAU,GACVmJ,WAAY,QAGdg1B,uBAAwB,CACtBx1B,OAAQ,GACRD,OAAQ,cACR/H,SAAU,SACVX,SAAU,GACVM,WAAY,IACZ6I,WAAY,MACZd,cAAe,IAChB,GDnGD,CAAE80B,cAAe,uCEtGbiR,GAA0B,SAAH1yD,GAAA,IAC3ByuD,EAAazuD,EAAbyuD,cACA3wB,EAAiB99B,EAAjB89B,kBACA/V,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBAEAlxB,EAAgBx9B,EAAhBw9B,iBACAxV,EAAYhoB,EAAZgoB,aACA2mC,EAAuB3uD,EAAvB2uD,wBAEAC,EAAY5uD,EAAZ4uD,aACArxB,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KACAd,EAAQ17B,EAAR07B,SACAmzB,EAAmB7uD,EAAnB6uD,oBACAtnC,EAAUvnB,EAAVunB,WAEAU,EAAWjoB,EAAXioB,YACAC,EAAYloB,EAAZkoB,aACA6mC,EAAsB/uD,EAAtB+uD,uBAEAluD,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QACAq9C,EAAev2D,EAAfu2D,gBACAjzD,EAAQtD,EAARsD,SACAqvD,EAA6B3yD,EAA7B2yD,8BAA6B,OAE7BxxD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,4BAA6BmU,GAAiBjzD,UAC9FnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,cAAanC,UAC1Bc,EAAAA,EAAAA,MAAA,KACEqB,UAAU,yBACVyI,OAAO,SACP8wB,IAAI,sBACJC,KAAMvD,GAAYnU,EAAWjkB,SAAA,EAE7Bc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,uBAAwB,kBAAkBh/C,SAAA,CAC1Ei6B,GAAYf,IACbp4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,0BAAyBnC,SAAA,EACtCnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAoBkvB,GAAiBA,EAAc/d,eAAiB+d,EAAc/d,cAAchoB,YAAe,GAC/G2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAGjBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,YAAWnC,SAAA,EACxBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,qBAAoBnC,SAAE4kB,KACrC/mB,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,aAAW,EACXO,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,qBAKvE7kB,IACC38B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,oBAG1EjlB,IACCr8B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,YAAawE,EACbpE,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,qBAGvEnlB,IAAaf,IAASoyB,IACvBztD,EAAAA,EAAAA,KAACspD,GAAiB,CAChB/uB,SAAUA,EACVnU,WAAYA,EACZ4iC,YAAa0E,EACbnE,2BAA4Bz2C,IAAWiF,EAAQypC,kBAAmB,gBAGtEv+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQwqC,8BAA+B,0BAA0BpgD,SAAA,EAC1FnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,qBAChDphD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B3xC,EAAQ0pC,6BAI5Ct/C,IACDnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAW0+C,EAA+Bz5C,EAAQ05C,sBAAsBtvD,SACrFA,UAKH,EAqDRovD,GAAwBrxD,aAAe,CACrCy8B,mBAAmB,EACnBN,kBAAkB,EAClBoxB,cAAc,EAEd7mC,mBAAehpB,EACf2vD,0BAA0B,EAC1B1mC,kBAAcjpB,EACd4vD,yBAAyB,EACzBjzB,cAAU38B,EACVwoB,gBAAYxoB,EACZ8vD,qBAAqB,EACrB5mC,iBAAalpB,EACbgwD,wBAAwB,EACxBwH,qBAAiBx3D,EACjBmpB,kBAAcnpB,EACdw+B,UAAU,EACVf,UAAMz9B,EACN0vD,cAAe,CAAC,GAGX,IAAMoK,GAAsCzX,GACjD,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACuxD,IAAuB9sD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAClBJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBoxB,cAAY,EACZF,0BAAwB,EACxBC,yBAAuB,EACvBI,wBAAsB,EACtBF,qBAAmB,IACnB,IC9HoD,SAACvrC,GACzD,IAAAkgC,EA7E8C,CAC9CpB,cAAe,CACb79C,QAAS,OACTurB,cAAe,SACf7a,WAAY,SAEZ3Q,SAAU,WACV8tB,UAAW,cACXnN,SAAU,SACV6H,WAAY,OACZE,OAAQ,OAER,4BAA6B,CAC3BlJ,MAAO,OACPmJ,OAAQ,SAGZq1B,uBAAwB,CACtBt1B,OAAQ,gBACR1I,SAAU,GACVmJ,WAAY,OACZlJ,MAAO,UACPk/B,OAAQ,UACRx+B,SAAU,SACV,UAAW,CACTV,MAAO,WAET,6BAA8B,CAC5BhgB,QAAS,OACTurB,cAAe,MACfnD,cAAe,EACf,eAAgB,CACdpoB,QAAS,OACTurB,cAAe,YAIrB2yB,4BAAwB1jD,EACxB2jD,sBAAuB,CACrBz1B,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZxI,SAAU,SACVnB,MAAO,QAET6+B,kBAAmB,CACjB11B,OAAQ,GACR3I,SAAU,GACVC,MAAO,WAETm/B,8BAA+B,CAC7Bn/C,QAAS,QAEXg+C,kBAAmB,CACjBj+C,SAAU,oBACVigB,MAAO,qBACPH,OAAQ,4BACR4I,OAAQ,uBACRzoB,QAAS,SACT0xB,QAAS,kBACThS,QAAS,mBACTiO,UAAW,GACXtN,WAAY,IACZ6I,WAAY,EACZV,aAAc,kBAEhB61B,qBAAsB,CACpBr+B,MAAO,OACPhgB,QAAS,eACT+f,SAAU,GACVN,SAAU,EACViB,SAAU,WAKJm9B,EAAaoB,EAAbpB,cAAeO,EAAiBa,EAAjBb,kBAAsBR,GAAUhX,EAAAA,EAAAA,GAAAqY,EAAApY,GAkCvD,OAjCYxlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAChBn1B,OAAQ,IACRhJ,QAAS,WACThP,WAAY,aACZ6X,WAAY,cACZ,iBAAkB,CAChBhJ,MAAO,QAET,4BAA6B,CAC3BA,MAAO,OACPvf,QAAS,QACT0gB,SAAU,SACVmN,UAAW,gBAIfuwB,mBAAiB/8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACZ+8C,GAAiB,IACpB1rB,WAAY,SACZhS,SAAU,SACV+R,aAAc,aAEhB2sB,uBAAwB,CACtB5/B,aAAc,EACd,wBAAyB,CACvBgJ,aAAc,KAKtB,GD6FE,CAAE00B,cAAe,8B,uKE3LbqX,GAA0B,SAAH94D,GAStB,IARLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UACA9sB,EAAQ17B,EAAR07B,SACA1T,EAAYhoB,EAAZgoB,aACAC,EAAWjoB,EAAXioB,YACAkU,EAAQn8B,EAARm8B,SACAt7B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEAzY,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAAuCuiC,GAAiB,CAAC,EAAjD6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YACvB,IAAKgyB,IAAkBvd,EACrB,OAAO,KAIT,IAAMlI,EAAoBumB,EAAgB9yB,EAEpCyS,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC0kD,GAAgB,CAACxhC,IAAKoU,EAAU5X,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,EAChInC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAExD4tC,EAAU5pB,MACVnmB,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,kBAIzC57B,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,gBAAenC,SAAA,EAC5BnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAGzC,EAAKsH,UAAUC,YACvCjH,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAGzC,EAAKsH,UAAUC,6BAEzChE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQwsC,uBAAuBpiD,SAAA,EAC7CnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQysC,0BAA2BrtB,IAAI,GAAGD,IAAK0gC,MAC/D53D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ0sC,+BAA+BtiD,SAEjD64B,GAAYA,EAAS,IAAgC,WAA1BA,EAAS,GAAG0c,YAGrCz0C,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,WAAUnC,SAAA,EACvBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBAAenC,SAAG64B,EAAS,GAAGrO,SAC7C3sB,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAcnC,SAAG64B,EAAS,GAAGC,QAC5Cj7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBAAgBnC,SAAG64B,EAAS,GAAG/E,cAC9Cj2B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,cAAanC,SAAG64B,EAAS,GAAGE,QAAU,GAAA75B,OAJrB25B,EAAS,GAAGrO,MAAK,YAU7D1pB,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ2sC,yBAAyBviD,SAAA,EAC/CnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ4sC,oBAAqBxtB,IAAI,GAAGD,IAAK2gC,MACzD73D,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACduiC,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,oBAExEvhD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACb4iC,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,qBAG5Ex+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ6sC,wBAAwBziD,SAAA,EAC9CnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ8sC,2BAA4B1tB,IAAI,GAAGD,IAAK0gC,MAChE53D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ+sC,6BAA6B3iD,SAEjD64B,GAAYA,EAAS,IAAgC,YAA1BA,EAAS,GAAG0c,YAGrCz0C,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,WAAUnC,SAAA,EACvBnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,gBAAenC,SAAG64B,EAAS,GAAGrO,SAC7C3sB,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAcnC,SAAG64B,EAAS,GAAGC,QAC5Cj7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBAAgBnC,SAAG64B,EAAS,GAAG/E,eAAiB,GAAA50B,OAH/B25B,EAAS,GAAGrO,MAAK,eAU7D3sB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQgtC,kBAAmB5tB,IAAI,GAAGD,IAAK4gC,MACvD93D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQitC,qBAAsB7tB,IAAI,GAAGD,IAAK6gC,OAGhE,EAkCAJ,GAAwBz3D,aAAe,CACrCmnD,WAAW,EACXxgC,kBAAcjpB,EACd28B,cAAU38B,EACVkpB,iBAAalpB,EACbo9B,SAAU,IAGL,IAAMg9B,GAA0C/X,EACrD0X,GACArT,EACA,CAAEhE,cAAe,4C,iKCxFbpE,GAA+B+D,ED2FU0X,I5DsbgB,SAACx1C,GAI9D,OAFmBmiC,GAGrB,G6DnhBE,CAAEhE,cAAe,sDC9DN2X,GAAoChY,GAC/C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAmB,EACnBN,kBAAgB,EAChBoxB,cAAc,EACd1xB,iBAAe,EACfiwB,kBAAgB,EAChB6B,aAAa,EACb7xB,cAAc,EACduxB,0BAA0B,EAC1BC,yBAAuB,EACvB1xB,kBAAkB,EAClBgyB,yBAAyB,EACzB1F,aAAa,IACb,I9DNyC,SAACjmC,GAE9C,IAAM6+B,EAvB0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAOnC,MAAO,CACLqjD,eAAax8C,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAGhBE,uBAAwB,CACtBh+C,SAAU,WACVgjC,SAAU,MACVvW,SAAU,IACV5D,IAAK,MACLD,KAAM,MACNjJ,QAAS,GACT8I,aAAc,EACdxI,MAAO,OACPI,gBAAiB,4BACjBL,SAAU,GACVmJ,WAAY,QAGdi1B,sBAAuB,CACrBp+B,SAAU,GACVpP,aAAc,EACd0P,WAAY,QAGdg+B,qBAAsB,CACtB,EAEAC,sBAAuB,CACrBt+B,MAAO,QACPI,gBAAiB,UACjBP,OAAQ,OACRD,UAAW,GAGjB,G8D9BE,CAAEs9B,cAAe,sCAGN4X,GAAmCjY,GAC9C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACT+3B,UAAQ,EACRC,kBAAgB,EAChB2vB,kBAAgB,EAChB+B,UAAQ,IACR,I9D0bwC,SAAC5rC,GAE7C,IAAM6+B,EAre0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAqdnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRH,WAAY,uEACZC,aAAc,iBACd3I,OAAQ,kCACRiO,UAAW,wCAEbgwB,wBAAyB,CACvB/9C,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,IACPmJ,OAAQ,KAEV02B,uBAAwB,CACtBr/C,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,IAEV+5B,+BAAgC,CAC9B1iD,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,GACR1I,MAAO,iCACPN,QAAS,gBAEXy+B,sBAAuB,CACrBp+C,SAAU,WACVwf,MAAO,mBACPqJ,IAAK,IACLD,KAAM,GACND,OAAQ,GACR1I,MAAO,sBACPD,SAAU,GACVM,WAAY,IACZ6I,WAAY,WAEdo1B,sBAAuB,CACrBv+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,IACNpJ,MAAO,GACPmJ,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZL,MAAO,sBACPuI,WAAY,4BACZ1I,OAAQ,YACRujC,kBAAmB,oFACnB56B,aAAc,QACd5I,UAAW,GAEbsrC,kBAAmB,CACjBnrD,SAAU,WACV6oB,IAAK,GACLC,MAAO,GACPtJ,MAAO,GACPmJ,OAAQ,KAGd,G8D/fE,CAAEw0B,cAAe,qCAGN6X,GAAmClY,GAC9C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACotD,IAAkB3oD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACbJ,GAAK,IACTs4B,mBAAiB,EACjB4wB,0BAAwB,EACxBxxB,iBAAe,EACfiwB,kBAAgB,IAChB,I9DsfwC,SAAC7pC,GAE7C,IAAM6+B,EA/iB0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GA+hBnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,MAEVw1B,uBAAwB,CACtBn+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNE,MAAO,GACP7I,MAAO,QACPK,WAAY,OACZN,SAAU,GACVqI,cAAe,GAEjBi2B,qBAAsB,CACpBt+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN3I,MAAO,QACPD,SAAU,IAEZu+B,sBAAuB,CACrBv+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN5I,SAAU,GACVC,MAAO,QACPH,OAAQ,OACRH,QAAS,MACT8I,aAAc,EACdpI,gBAAiB,YAGvB,G8D3hBE,CAAE88B,cAAe,qC,0CCzCb8X,GAA2B,SAAHv5D,GA6BvB,IA5BLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UAEAgR,EAAax5D,EAAbw5D,cAEA17B,EAAiB99B,EAAjB89B,kBACA/V,EAAa/nB,EAAb+nB,cACA2mC,EAAwB1uD,EAAxB0uD,yBAEAlxB,EAAgBx9B,EAAhBw9B,iBACAxV,EAAYhoB,EAAZgoB,aACA2mC,EAAuB3uD,EAAvB2uD,wBAEAjzB,EAAQ17B,EAAR07B,SAEAwB,EAAel9B,EAAfk9B,gBACAjV,EAAWjoB,EAAXioB,YACA8mC,EAAsB/uD,EAAtB+uD,uBAEA5B,EAAgBntD,EAAhBmtD,iBACAhlC,EAAYnoB,EAAZmoB,aACAsxC,EAAiBz5D,EAAjBy5D,kBAEAl8B,EAAQv9B,EAARu9B,SACAf,EAAIx8B,EAAJw8B,KAEA37B,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEA,IAAKu1C,IAAkBA,EAAc/d,cACnC,OAAO,KAET,IAAQhoB,EAAe+lC,EAAc/d,cAA7BhoB,WAER,OACEtkB,EAAAA,EAAAA,MAAC0kD,GAAgB,CAACxhC,IAAKoU,EAAU8sB,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,CACpGi6B,GAAYf,IACZr7B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyqC,uBAAwB,kBAAkBrgD,UAC3EnC,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmB7W,GAAc,GACjC2P,IAAKmE,EAAKyD,IACVT,cAAehD,EAAKiD,MACpBC,eAAgBlD,EAAKmD,OACrBC,QAASpD,EAAKqD,aAAaD,QAC3BE,QAAStD,EAAKqD,aAAaC,QAC3BC,YAAavD,EAAKqD,aAAaE,YAC/BC,aAAcxD,EAAKqD,aAAaG,aAChCvD,YAAa,OAInBr4B,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,CACxDk2D,IACCp1D,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQwgD,4BAA4Bp2D,SAAA,EAClDnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQygD,oBAAqBrhC,IAAI,GAAGD,IAAKuhC,MACzDz4D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQ2gD,uBAAuBv2D,SAAEzC,EAAKsH,UAAUC,mBAGpEhE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ4gD,0BAA0Bx2D,SAAA,CAC/Cw6B,IACC38B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,YAAauE,EACbnE,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,oBAG1EjlB,IACCr8B,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAActiC,EACdmiC,YAAawE,EACbpE,2BAA4Bt2C,IAAWiF,EAAQwpC,sBAAuB,mBAGzExlB,IACC/7B,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACbkiC,YAAa4E,EACblE,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,qBAI9Ex+C,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ6gD,yBAAyBz2D,SAAA,CAC9C6pD,GAAoBhlC,IACnBhnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B7xC,EAAQ2pC,wBAEzGsK,GAAoBhlC,GAAgBsxC,IACnCt4D,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYv2B,EAAKsH,UAAUC,aAAoB2iD,yBAA0B7xC,EAAQ8gD,iCAM9G,EA6CAT,GAAyBl4D,aAAe,CACtCmnD,WAAW,EACXgR,eAAe,EACf17B,mBAAmB,EACnBN,kBAAkB,EAClBN,iBAAiB,EACjBu8B,mBAAmB,EACnBtM,kBAAkB,EAClB5vB,UAAU,EACVxV,eAAe,EACf2mC,0BAA0B,EAC1B1mC,kBAAcjpB,EACd4vD,yBAAyB,EACzBjzB,cAAU38B,EACVkpB,iBAAalpB,EACbgwD,wBAAwB,EACxB5mC,kBAAcppB,EACdy9B,UAAMz9B,GAGD,IAAMk7D,GAA4B7Y,GACvC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACo4D,IAAwB3zD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACnBJ,GAAK,IACTs4B,mBAAiB,EACjBN,kBAAgB,EAChBD,UAAQ,EACRmxB,0BAAwB,IACxB,I/D2FiC,SAACprC,GAEtC,IAAM6+B,EApR0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAoQnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,GACRtI,gBAAiB,uBAEnBg/B,uBAAwB,CACtBr/C,SAAU,WACV6oB,IAAK,GACLD,KAAM,GAERu1B,uBAAwB,CACtBn+C,SAAU,WACV4oB,KAAM,EACNC,IAAK,EACLrJ,MAAO,IACPmJ,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZL,MAAO,SAETm+B,sBAAuB,CACrBp+C,SAAU,WACV4oB,KAAM,GACNC,IAAK,GACL5I,MAAO,QACPD,SAAU,GACVR,MAAO,IACPmJ,OAAQ,KAGd,G+D7HE,CAAEw0B,cAAe,8BAENyY,GAA+B9Y,GAC1C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACo4D,IAAwB3zD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACnBJ,GAAK,IACTg0D,eAAa,EACb17B,mBAAiB,EACjBZ,iBAAe,EACfK,UAAQ,EACRmxB,0BAAwB,EACxBvB,kBAAgB,EAChBsM,mBAAiB,IACjB,I/DkH8B,SAACn2C,GAEnC,IAAM6+B,EA3T0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GA2SnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRtI,gBAAiB,qBACjB8U,OAAQ,IAEVkqB,uBAAwB,CACtBr/C,SAAU,WACV6oB,IAAK,GACLD,KAAM,GACNpJ,MAAO,GACPmJ,OAAQ,GACRwM,OAAQ,GAEVigC,4BAA6B,CAC3Bp1D,SAAU,WACV6oB,IAAK,EACLD,KAAM,EACNE,MAAO,EACPtJ,MAAO,IACPmJ,OAAQ,IAEV0sC,oBAAqB,CACnBr1D,SAAU,WACVigB,MAAO,QACPT,MAAO,GACPmJ,OAAQ,GACRE,IAAK,GACLD,KAAM,KAER2sC,uBAAwB,CACtBv1D,SAAU,WACVigB,MAAO,QACPD,SAAU,GACVmJ,WAAY,OACZ7I,WAAY,IACZd,MAAO,GACPmJ,OAAQ,GACRE,IAAK,GACLD,KAAM,IACNlY,UAAW,UAEb8kD,0BAA2B,CACzBx1D,SAAU,WACV4oB,KAAM,GACNC,IAAK,GACLrJ,MAAO,IACPmJ,OAAQ,IACRtI,gBAAiB,QACjB8U,OAAQ,GAEVgpB,uBAAwB,CACtBn+C,SAAU,WACV4oB,KAAM,GACNC,IAAK,GACL5I,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR3I,SAAU,GACVM,WAAY,IACZ6I,WAAY,OACZd,cAAe,EACf8M,OAAQ,GAEVmpB,qBAAsB,CACpBt+C,SAAU,WACV4oB,KAAM,GACNC,IAAK,GACL5I,MAAO,QACPD,SAAU,GACVR,MAAO,IACPmJ,OAAQ,GACRrI,WAAY,IACZ6I,WAAY,OACZgM,OAAQ,GAEVsgC,yBAA0B,CACxBx1D,QAAS,OACTwQ,eAAgB,gBAChBzQ,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACNpJ,MAAO,IACPmJ,OAAQ,GAERqH,IAAK,EACLmF,OAAQ,GAEVopB,sBAAuB,CACrBt+B,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR7I,OAAQ,sCACR2I,aAAc,SACdsF,UAAW,iDACXpO,QAAS,SACTU,gBAAiB,SAEnBq1C,uBAAwB,CACtBz1C,MAAO,QACPT,MAAO,IACPmJ,OAAQ,GACR7I,OAAQ,sCACR2I,aAAc,SACdsF,UAAW,iDACXpO,QAAS,SACTU,gBAAiB,UAGvB,G+DnOE,CAAE88B,cAAe,iCAEN0Y,GAAyB/Y,GACpC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACo4D,IAAwB3zD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACnBJ,GAAK,IACT+3B,UAAQ,EACRO,mBAAiB,EACjB4wB,0BAAwB,EACxBvB,kBAAgB,EAChBsM,mBAAiB,IACjB,I/D0N8B,SAACn2C,GAEnC,IAAM6+B,EAjb0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAianC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,KAEV02B,uBAAwB,CACtBr/C,SAAU,WACV6oB,IAAK,MACLD,KAAM,GACNpI,UAAW,oBAEb29B,uBAAwB,CACtBn+C,SAAU,WACV6oB,IAAK,MACLD,KAAM,GACN3I,MAAO,QACPT,MAAO,IACPQ,SAAU,GACVQ,UAAW,mBACX6H,cAAe,GAEjBotC,yBAA0B,CACxBx1D,QAAS,OACT0Q,WAAY,SACZ3Q,SAAU,WACV6oB,IAAK,EACLN,OAAQ,EACRO,MAAO,IAETy1B,sBAAuB,CACrBt+B,MAAO,QACPH,OAAQ,OACRH,QAAS,WACT8I,aAAc,GACdpI,gBAAiB,UACjBzmB,YAAa,IAEf87D,uBAAwB,CACtBz1C,MAAO,QACPH,OAAQ,OACRH,QAAS,WACT8I,aAAc,KAGpB,G+DzQE,CAAE00B,cAAe,2BCzMbnE,GAAuB,SAAHt9C,GASnB,IARLyuD,EAAazuD,EAAbyuD,cACAjG,EAASxoD,EAATwoD,UACA9sB,EAAQ17B,EAAR07B,SACA3T,EAAa/nB,EAAb+nB,cACAE,EAAWjoB,EAAXioB,YACAE,EAAYnoB,EAAZmoB,aACAtnB,EAAIb,EAAJa,KACAqY,EAAOlZ,EAAPkZ,QAEAzY,EAEIguD,GAAiB,CAAC,EADpB/d,EAAajwC,EAAbiwC,cAAeC,EAAiBlwC,EAAjBkwC,kBAAmBO,EAASzwC,EAATywC,UAAWie,EAAiB1uD,EAAjB0uD,kBAAmBC,EAAmB3uD,EAAnB2uD,oBAAqBC,EAAoB5uD,EAApB4uD,qBAAsBC,EAAyB7uD,EAAzB6uD,0BAE7GnhD,EAAuCuiC,GAAiB,CAAC,EAAjD6e,EAAaphD,EAAbohD,cAAe9yB,EAAWtuB,EAAXsuB,YACvB,IAAKgyB,IAAkBvd,EACrB,OAAO,KAIT,IAAMlI,EAAoBumB,EAAgB9yB,EAEpCyS,EAAWogB,GAA6B3e,EAE9C,OACEvsC,EAAAA,EAAAA,MAAC0kD,GAAgB,CAACxhC,IAAKoU,EAAU5X,MAAOklB,EAAmBwf,UAAWA,EAAWC,0BAA2BvvC,EAAQkpC,cAAc9+C,SAAA,EAChInC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQmpC,yBAAyB/+C,SAExD4tC,EAAU5pB,MACVnmB,EAAAA,EAAAA,KAACm+B,EAAAA,EAAgB,CACfC,kBAAmBgwB,EACnB9yB,YAAaA,EACbpE,IAAK82B,GAAqBje,EAAU5pB,IACpCkY,cAAe4vB,GAAuBle,EAAU1R,cAChDE,eAAgB2vB,GAAwBne,EAAUxR,eAClDE,QAASsP,GAAYA,EAAStP,QAC9BE,QAASoP,GAAYA,EAASpP,QAC9BC,YAAamP,GAAYA,EAASnP,YAClCC,aAAckP,GAAYA,EAASlP,kBAIzC7+B,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,oBAAmBnC,SAAEzC,EAAKsH,UAAUC,eACnDhE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQopC,wBAAwBh/C,SAAA,EACzDnC,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAcviC,EACdoiC,aAAW,EACXI,2BAA4Bt2C,IAAWiF,EAAQupC,uBAAwB,qBAEzEthD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACb4iC,8BAA+B52C,IAAWiF,EAAQ0pC,qBAAsB,iBAEzEz6B,IACChnB,EAAAA,EAAAA,KAAC2pD,GAAe,CAAC1zB,WAAYjP,EAAaoH,QAAQ,WAAY,OAAQw7B,yBAA0B7xC,EAAQ2pC,6BAKlH,EAaAvF,GAAqBj8C,aAAe,CAClCmnD,WAAW,EACXzgC,mBAAehpB,EACf28B,cAAU38B,EACVkpB,iBAAalpB,EACbopB,kBAAcppB,GAGT,IAAMq7D,GAAkChZ,EAC7C9D,IhEiH2C,SAACh6B,GAE5C,IAAM6+B,EAlN0C,CAChDC,cAAe,CACbh+B,OAAQ,oBACRiO,UAAW,mBACXtF,aAAc,kBAEhBs1B,6BAAyBtjD,EACzBujD,uBAAwB,CACtBh+B,SAAU,GACVmJ,WAAY,QAEd80B,uBAAmBxjD,EACnByjD,uBAAmBzjD,EACnB0jD,4BAAwB1jD,EACxB2jD,2BAAuB3jD,EACvB4jD,uBAAmB5jD,EACnB6jD,0BAAsB7jD,EACtB8jD,2BAAuB9jD,EACvB+jD,uCAAmC/jD,GAkMnC,OAAA6G,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKu8C,GAAU,IACbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRu8C,EAAWC,eAAa,IAC3Bt+B,MAAO,mBACPmJ,OAAQ,IACRF,aAAc,iBAEd,uBAAwB,CACtBzoB,SAAU,WACV6oB,IAAK,EACLD,KAAM,EACN3I,MAAO,kBACPT,MAAO,OACPQ,SAAU,GACVM,WAAY,IACZgI,YAAa,GACbvI,aAAc,+BACdJ,QAAS,qBACTwJ,WAAY,OAGhB40B,wBAAyB,CACvB/9C,SAAU,WACV6oB,IAAK,GACLrJ,MAAO,IACPmJ,OAAQ,IACRhJ,QAAS,WACT+I,OAAQ,iBAEVy1B,uBAAwB,CACtBn+C,SAAU,WACVwf,MAAO,IACPqJ,IAAK,IACLD,KAAM,GACN3I,MAAO,QACPD,SAAU,GACVM,WAAY,IACZ+H,cAAe,IAEjBi2B,qBAAsB,CACpBt+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN3I,MAAO,QACPD,SAAU,GACVR,MAAO,KAET++B,sBAAuB,CACrBv+C,SAAU,WACV6oB,IAAK,IACLD,KAAM,GACN9I,OAAQ,OACRH,QAAS,EACTK,SAAU,GACVyI,aAAc,EACdpI,gBAAiB,cACjBsI,OAAQ,KAGd,GgE/KE,CAAEw0B,cAAe,oC,sBCtFNj7B,GAA8B46B,GACzC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAC01D,IAA+BjxD,EAAAA,EAAAA,GAAA,GAAKJ,GAAS,I/D0CE,SAAC8d,GACnD,IAAAoyC,EAAyClP,EAAyCjD,KAA1EnB,EAAasT,EAAbtT,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAuqB,EAAAtqB,GAiBpC,OAhBYxlC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAEhBt+B,MAAO,QACP5O,aAAc,SAGhB2xC,gBAAcjhD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTu8C,EAAW0E,gBAAc,IAE5B75B,OAAQ,aAId,G+D1DE,CAAEy0B,cAAe,gCAGNh7B,GAAqC26B,GAChD,SAAAphD,GAAA,IAAGkZ,EAAOlZ,EAAPkZ,QAASrY,EAAIb,EAAJa,KAAS2E,GAAK2lC,EAAAA,EAAAA,GAAAnrC,EAAAorC,IAAA,OACxBhnC,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ6qC,+BAA+BzgD,SAAA,EACrDnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAcnC,UAC3BnC,EAAAA,EAAAA,KAAA,OAAKk3B,IAAKmP,GAAwBlP,IAAKz3B,EAAKsH,UAAUC,qBAExDjH,EAAAA,EAAAA,KAAC01D,IAA+BjxD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKJ,GAAK,IAAE0T,QAASA,EAASrY,KAAMA,OAChE,I/DkDiD,SAACyiB,GAC1D,IAAA+2C,EAAyC7T,EAAyC5C,KAA1ExB,EAAaiY,EAAbjY,cAAkBD,GAAUhX,EAAAA,EAAAA,GAAAkvB,EAAAvW,GAgBpC,OAfYl+C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACPu8C,GAAU,IAEbC,eAAax8C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACRw8C,GAAa,IAEhBt+B,MAAO,UAGT+iC,gBAAcjhD,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACTu8C,EAAW0E,gBAAc,IAE5B75B,OAAQ,sBAId,G+DjEE,CAAEy0B,cAAe,uCAGN/6B,GAAoC06B,GAC/C,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWD,EAAM0T,QAAQirC,8BAA8B7gD,UAC1DnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,sCAAqCnC,UAClDnC,EAAAA,EAAAA,KAAC01D,IAA+BjxD,EAAAA,EAAAA,GAAA,GAAKJ,OAEnC,GAERmhD,EACA,CAAElF,cAAe,sCC3BN/f,GAAoC,CAC/Cv8B,UAAW,CACTtE,KAAMuE,KAAAA,MAAgB,CACpB+C,UAAW/C,KAAAA,OACVC,WACH6T,QAAS9T,KAAAA,MAAgB,CACvBqhD,0BAA2BrhD,KAAAA,OAC3Bg9C,cAAeh9C,KAAAA,OACfk9C,uBAAwBl9C,KAAAA,OACxBm9C,kBAAmBn9C,KAAAA,OACnBk1D,oBAAqBl1D,KAAAA,OACrBs+C,8BAA+Bt+C,KAAAA,OAC/Bw9C,qBAAsBx9C,KAAAA,SACrBC,WACHujB,aAAcxjB,KAAAA,MAAgB,CAC5B4iB,aAAc5iB,KAAAA,OACd6iB,YAAa7iB,KAAAA,OACbmiB,WAAYniB,KAAAA,OACZkiB,IAAKliB,KAAAA,SACJC,YAELhE,aAAc,CACd,GAGWk5D,GAA+B,SAAC/0D,GAC3C,IACE3E,EAQE2E,EARF3E,KACAqY,EAOE1T,EAPF0T,QAAO49C,EAOLtxD,EANFojB,aACEC,EAAQiuC,EAARjuC,SACAZ,EAAW6uC,EAAX7uC,YACAyT,EAAQo7B,EAARp7B,SACAnU,EAAUuvC,EAAVvvC,WAIJ,OACEpmB,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQkpC,cAAe,6BAA6B9+C,UAC7Ec,EAAAA,EAAAA,MAAC2kD,GAAyB,CACxBE,mCAAoC/vC,EAAQutC,0BAA0BnjD,SAAA,EAEtEnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQshD,2BAA2Bl3D,UACjDc,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQopC,uBAAuBh/C,SAAA,EAC7CnC,EAAAA,EAAAA,KAACkpD,GAAiB,CAChBC,aAAczhC,EACd0hC,2BAA4Bt2C,IAAWiF,EAAQ+rC,kBAAmB,eAEpE9jD,EAAAA,EAAAA,KAACwpD,GAAyB,CACxBjvB,SAAUA,EACVnU,WAAYA,EACZmjC,2BAA4Bz2C,IAAWiF,EAAQuhD,aAAc,gBAE/Dr2D,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQwqC,8BAA+B,gBAAgBpgD,SAAA,EAChFnC,EAAAA,EAAAA,KAACkoD,GAAO,CAACxoD,KAAMA,EAAMumD,kBAAmBluC,EAAQqpC,qBAChDphD,EAAAA,EAAAA,KAACypD,GAAoB,CACnB3iC,YAAaA,EACb4iC,8BAA+B3xC,EAAQ0pC,gCAK/CzhD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQwhD,oBAAoBp3D,SACzCzC,EAAKsH,UAAUC,kCAK1B,EAIAmyD,GAA6Bl5D,aAAeqgC,GAAkCrgC,aAEvE,IAAMklB,GAA2B66B,GACtC,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACo5D,IAA4B30D,EAAAA,EAAAA,GAAA,GAAKJ,GAAS,IC1FE,WAAH,MAAU,CACtD48C,cAAe,CACbt1B,WAAY,QACZC,aAAc,MACdsF,UAAW,mFACXpO,QAAS,YACTH,MAAO,SAET02C,2BAA4B,CAC1B1tC,WAAY,UACZkE,UAAW,QACX/M,QAAS,OACT1f,QAAS,OACT0Q,WAAY,SACZF,eAAgB,UAElButC,uBAAwB,CACtBr+B,QAAS,sBACT8I,aAAc,MACd3I,OAAQ,oBACR0I,WAAY,QACZuF,UAAW,sCACXzN,WAAY,MACZd,MAAO,SAET4iC,qBAAsB,CACpBniD,QAAS,eAEX0gD,kBAAmB,CACjB1gC,MAAO,UACPD,SAAU,OACVmJ,WAAY,QAEdi2B,8BAA+B,CAC7Bn/C,QAAS,cACT0Q,WAAY,YAEd2tC,qBAAsB,CACpBr+B,MAAO,OACPD,SAAU,OACVmJ,WAAY,OACZyG,UAAW,cAEbumC,aAAc,CACZl2C,MAAO,UACPD,SAAU,OACVmJ,WAAY,OACZxI,SAAU,SACV+R,aAAc,YAEhBurB,kBAAmB,CACjBj+C,SAAU,oBACVigB,MAAO,kBACPH,OAAQ,4BACR2I,aAAc,iBACdzI,SAAU,kBACV0I,OAAQ,uBACR/I,QAAS,oBAEXy2C,oBAAqB,CACnBn2C,MAAO,UACPD,SAAU,OACVM,WAAY,MACZ6I,WAAY,OACZtJ,UAAW,OACXnP,UAAW,UAEd,GD0BC,CAAEysC,cAAe,6BEpFNkZ,GAAsB,SAAH36D,GAGzB,IAFLkZ,EAAOlZ,EAAPkZ,QACAs+C,EAAMx3D,EAANw3D,OAEA/2D,EAA+B+2D,GAAUA,EAAO14D,OAAS,EAAI04D,EAAO,GAAK,CAAC,EAAlEn/B,EAAG53B,EAAH43B,IAAKpL,EAAMxsB,EAANwsB,OAAQnJ,EAAKrjB,EAALqjB,MAEf2zC,GAAWj0D,EAAAA,EAAAA,UAIXo3D,GADkBl3D,EAAAA,EAAAA,UAAQ,kBAAMupB,EAASnJ,CAAK,GAAE,CAACmJ,EAAQnJ,IAChB5K,EAAQ2hD,oBAAsB3hD,EAAQs8C,gBAQrF,OANA70D,EAAAA,EAAAA,YAAU,WACJ82D,EAASxzD,SACXwzD,EAASxzD,QAAQyzD,MAErB,GAAG,CAACr/B,KAGFl3B,EAAAA,EAAAA,KAAA,OAAKsE,UAAWq1D,IAAW5hD,EAAQkpC,cAAe,6BAA6B9+C,UAC7EnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWm1D,EAAqBt3D,UACnCc,EAAAA,EAAAA,MAAA,SAAO0nB,UAAQ,EAACznB,MAAO,CAAE4oB,OAAQ,OAAQnJ,MAAO,OAAQiJ,aAAc,QAAU3rB,IAAKq2D,EAASn0D,SAAA,EAC5FnC,EAAAA,EAAAA,KAAA,UAAQk3B,IAAKA,KACbl3B,EAAAA,EAAAA,KAAA,SACE02D,KAAK,WACLx/B,IAAI,GACJy/B,QAAQ,KACR5iC,MAAM,UACN6iC,SAAO,UAMnB,EAWA4C,GAAoBt5D,aAAe,CACjC6X,QAAS,CAAC,EACVs+C,OAAQ,MAGH,IAAMuD,GAAiB3Z,GAC5B,SAAA57C,GAAK,OACHrE,EAAAA,EAAAA,KAACw5D,IAAmB/0D,EAAAA,EAAAA,GAAA,GAAKJ,GAAS,IC7DC,WAAH,MAAU,CAC5C48C,cAAe,CACbt+B,MAAO,OACPmJ,OAAQ,OACR1oB,QAAS,OACTwQ,eAAgB,SAChBE,WAAY,UAEd4lD,oBAAqB,CACnB5tC,OAAQ,QACRnJ,MAAO,QACPG,QAAS,OACT8I,aAAc,GACdxoB,QAAS,OACTwQ,eAAgB,SAChBE,WAAY,UAEdugD,gBAAiB,CACfvoC,OAAQ,OACRnJ,MAAO,OACPvf,QAAS,OACT0f,QAAS,OACTlP,eAAgB,SAChBE,WAAY,UAEf,GDuCC,CAAEwsC,cAAe,mBEzDbuZ,GAAgB,SAACx1D,GACrB,IACEy1D,EAYEz1D,EAZFy1D,UACAr7D,EAWE4F,EAXF5F,QACAs7D,EAUE11D,EAVF01D,eACA1xC,EASEhkB,EATFgkB,kBACA2xC,EAQE31D,EARF21D,eACA73D,EAOEkC,EAPFlC,SACA4V,EAME1T,EANF0T,QACAkiD,EAKE51D,EALF41D,0BACAC,EAIE71D,EAJF61D,yBACAC,EAGE91D,EAHF81D,wBACAC,EAEE/1D,EAFF+1D,yBACAC,EACEh2D,EADFg2D,4BAGF,OACEp3D,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQuiD,oBAAqB77D,GAAWsZ,EAAQwiD,wBAAyBN,GAA2B93D,SAAA,EAC7HnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQyiD,yBAA0BN,EAA0B,oBAAoB/3D,SACxG43D,EAAiBA,EAAe11D,GAC/By1D,IAAa95D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ0iD,wBAAyBN,GAAyBh4D,SAAE23D,OAGxG95D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ2iD,4BAA6BL,EAA6B,wBAAwBl4D,SAClHkmB,EAAoBA,EAAkBhkB,GAASlC,KAElDnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ4iD,yBAA0BP,GAA0Bj4D,SACpF63D,EAAiBA,IAAmB,SAI7C,EAwBAH,GAAc35D,aAAe,CAC3B45D,eAAWl8D,EACXm8D,oBAAgBn8D,EAChBo8D,oBAAgBp8D,EAChByqB,uBAAmBzqB,EACnBa,SAAS,EACTw7D,+BAA2Br8D,EAC3Bs8D,8BAA0Bt8D,EAC1Bu8D,6BAAyBv8D,EACzBw8D,8BAA0Bx8D,EAC1By8D,iCAA6Bz8D,GAGxB,IAAMi9C,GAAkCoF,EAC7C4Z,IC5E6C,SAAC33C,GAAU,IAAuB04C,GAAvBx9D,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAqB,CAAC,GAAlBglB,QAAY,MAAa,CACrFk4C,mBAAoB,CAClBl3D,QAAS,OACTurB,cAAe,SACfhD,WAAY,QACZuF,UAAW,0EACXtF,aAAc,GAEhB2uC,wBAAyB,CACvBt3C,OAAO,aAAD5hB,aAT2D,IAAAu5D,EAAG,CAAC,EAACA,GASzCC,SAE/BL,yBAA0B,CACxBp3D,QAAS,OACT0f,QAAS,CAAC,GAAI,GAAI,EAAG,IACrBhP,WAAY,SACZF,eAAgB,iBAElB6mD,wBAAyB,CACzB,EACAC,4BAA6B,CAC3B7uC,OAAQ,QAEV8uC,yBAA0B,CACxBv3D,QAAS,OACTwQ,eAAgB,iBAEnB,GDoDC,CAAE0sC,cAAe,oC,8DE3EZ,I,GAAMwa,GAAe,CAC1BC,SAAU,WACVC,SAAU,WACVC,SAAU,WACVC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,aAAc,eACdC,YAAa,eAGFC,GACK,iBCzBLC,GAAmB,CAE9BxxB,kBAAmB,oBACnBC,2BAA4B,6BAC5BC,oBAAqB,sBACrBC,sBAAuB,wBAGvBC,mCAAoC,qCACpCO,iCAAkC,mCAClCL,uCAAwC,yCACxCG,yBAA0B,2BAC1BC,2BAA4B,6BAG5BG,uCAAwC,yCACxCD,iCAAkC,mCAClCG,uBAAwB,yBACxBV,0BAA2B,4BAC3Be,8BAA+B,gCAC/Bb,4BAA6B,8BAC7BS,kCAAmC,oCACnCE,4BAA6B,8BAG7BsB,uBAAwB,yBACxBN,gCAAiC,kCACjCK,2BAA4B,6BAC5BN,wCAAyC,0CACzCE,sCAAuC,wCACvCG,4CAA6C,8CAC7CF,8BAA+B,gCAC/BC,gCAAiC,kCAEjCvB,kDAAmD,oDACnDN,uCAAwC,yCACxCW,gCAAiC,kCACjCF,sCAAuC,wCACvCyI,6BAA8B,+BAC9B+nB,WAAY,aACZ9nB,qCAAsC,uCAGtClD,kCAAmC,oCACnCC,kCAAmC,oCACnCC,kCAAmC,oCACnCC,kCAAmC,oCACnCC,kCAAmC,oCACnCC,kCAAmC,oCACnCC,iCAAkC,mCAClCC,gCAAiC,kCACjCC,wBAAyB,0BACzByqB,iBAAkB,mBAClBC,oBAAqB,sBACrBC,aAAc,eACd1qB,iCAAkC,mCAClCC,wBAAyB,0BAGzBC,+BAAgC,iCAChCC,yCAA0C,2CAC1CC,2CAA4C,6CAC5CjG,0CAA2C,4CAC3CU,wCAAyC,0CACzCT,8CAA+C,gDAC/CC,kDAAmD,oDACnDC,8CAA+C,gDAC/CC,mCAAoC,qCACpCC,mCAAoC,qCACpCC,gCAAiC,kCACjCC,kCAAmC,oCACnCC,iDAAkD,mDAClDC,gDAAiD,kDACjDE,kCAAmC,oCAGnC6vB,oBAAqB,oBACrBC,iBAAkB,iBAClBC,mBAAoB,iBACpBC,oBAAqB,kBACrBC,iBAAkB,WAGlB1qB,6BAA8B,+BAC9BC,sCAAuC,wCACvCC,+BAAgC,iCAChCC,iCAAkC,mCAGlCC,8CAA+C,gDAC/CC,4CAA6C,8CAC7CC,kDAAmD,oDACnDC,oCAAqC,sCACrCC,sCAAuC,wCAGvCK,kDAAmD,oDACnDC,4CAA6C,8CAC7CC,kCAAmC,oCACnCC,qCAAsC,uCACtCC,yCAA0C,2CAC1CC,uCAAwC,yCACxCC,6CAA8C,+CAC9CC,uCAAwC,yCAGxCupB,+BAAgC,8BAChCC,4BAA6B,2BAC7BC,4BAA6B,qBAG7BpqB,2CAA4C,6CAC5CC,mCAAoC,qCACpCoqB,4BAA6B,8BAC7BC,+BAAgC,iCAChCC,wBAAyB,0BACzBrqB,4CAA6C,8CAC7CC,mCAAoC,qCAGpCqqB,kBAAmB,mBACnBC,0BAA2B,0BAC3BC,yBAA0B,yBAG1B9oB,kCAAmC,oCACnCC,2CAA4C,6CAC5CC,sCAAuC,wCACvCC,mDAAoD,qDACpDC,iDAAkD,mDAClDC,uDAAwD,yDACxDC,yCAA0C,2CAC1CC,2CAA4C,6CAE5CK,6DAA8D,+DAC9DC,kDAAmD,oDACnDC,2CAA4C,6CAC5CC,iDAAkD,mDAClDC,wCAAyC,0CACzCC,gDAAiD,kDAGjD8nB,eAAgB,gBAGhB/pB,wCAAyC,0CACzCC,uCAAwC,yCACxCC,iDAAkD,mDAClDC,oDAAqD,sDACrDC,uCAAwC,yCAExCC,qCAAsC,uCACtCC,oCAAqC,sCACrCC,8CAA+C,gDAC/CC,iDAAkD,mDAClDC,oCAAqC,sCAErCC,sCAAuC,wCACvCC,gDAAiD,kDACjDC,mDAAoD,qDACpDC,sCAAuC,wCAEvCW,iCAAkC,mCAClCC,4BAA6B,8BAC7BuoB,iCAAkC,mCAClCtoB,wCAAyC,0CACzCuoB,6BAA8B,+BAC9BtoB,4BAA6B,+BC1KlBoK,GAAqB,CAChCC,SAAU,WACVC,QAAS,UACTC,UAAW,YACXC,kBAAmB,oBACnBC,MAAO,SCEIzI,IAAsBumB,GAAA,IAAAxsD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GAChCC,GAAG/yB,kBAAoB,CACtBgD,cAAe+vB,GAAG/yB,kBAClBlH,UAAWk3B,GAAaE,SACxB1/B,YAAa,EAEbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG9yB,2BAA6B,CAC/B+C,cAAe+vB,GAAG9yB,2BAClBnH,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG7yB,oBAAsB,CACxB8C,cAAe+vB,GAAG7yB,oBAClBpH,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5yB,sBAAwB,CAC1B6C,cAAe+vB,GAAG5yB,sBAClBrH,UAAWk3B,GAAaG,SACxB3/B,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAIhBu4B,GAAG3yB,mCAAqC,CACvC4C,cAAe+vB,GAAG3yB,mCAClBtH,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGzyB,uCAAyC,CAC3C0C,cAAe+vB,GAAGzyB,uCAClBxH,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtyB,yBAA2B,CAC7BuC,cAAe+vB,GAAGtyB,yBAClB3H,UAAWk3B,GAAaS,aACxBjgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGryB,2BAA6B,CAC/BsC,cAAe+vB,GAAGryB,2BAClB5H,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGpyB,iCAAmC,CACrCqC,cAAe+vB,GAAGpyB,iCAClB7H,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAIhBu4B,GAAG7wB,gCAAkC,CACpCc,cAAe+vB,GAAG7wB,gCAClBpJ,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGvwB,uBAAyB,CAC3BQ,cAAe+vB,GAAGvwB,uBAClB1J,UAAWk3B,GAAaE,SACxB1/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGxwB,2BAA6B,CAC/BS,cAAe+vB,GAAGxwB,2BAClBzJ,UAAWk3B,GAAaG,SACxB3/B,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5wB,sCAAwC,CAC1Ca,cAAe+vB,GAAG5wB,sCAClBrJ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG9wB,wCAA0C,CAC5Ce,cAAe+vB,GAAG9wB,wCAClBnJ,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG3wB,8BAAgC,CAClCY,cAAe+vB,GAAG3wB,8BAClBtJ,UAAWk3B,GAAaS,aACxBjgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG1wB,gCAAkC,CACpCW,cAAe+vB,GAAG1wB,gCAClBvJ,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGzwB,4CAA8C,CAChDU,cAAe+vB,GAAGzwB,4CAClBxJ,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGjyB,kDAAoD,CACtDkC,cAAe+vB,GAAGjyB,kDAClBhI,UAAWk3B,GAAaY,aACxBpgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGvyB,uCAAyC,CAC3CwC,cAAe+vB,GAAGvyB,uCAClB1H,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5xB,gCAAkC,CACpC6B,cAAe+vB,GAAG5xB,gCAClBrI,UAAWk3B,GAAae,aACxBvgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAG9xB,sCAAwC,CAC1C+B,cAAe+vB,GAAG9xB,sCAClBnI,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGrpB,6BAA+B,CACjC1G,cAAe+vB,GAAGrpB,6BAClB5Q,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAKhBu4B,GAAGlyB,uCAAyC,CAC3CmC,cAAe+vB,GAAGlyB,uCAClB/H,UAAWk3B,GAAaY,aACxBpgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhyB,uBAAyB,CAC3BiC,cAAe+vB,GAAGhyB,uBAClBjI,UAAWk3B,GAAaa,aACxBrgC,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG1yB,0BAA4B,CAC9B2C,cAAe+vB,GAAG1yB,0BAClBvH,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGxyB,4BAA8B,CAChCyC,cAAe+vB,GAAGxyB,4BAClBzH,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/xB,kCAAoC,CACtCgC,cAAe+vB,GAAG/xB,kCAClBlI,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG7xB,4BAA8B,CAChC8B,cAAe+vB,GAAG7xB,4BAClBpI,UAAWk3B,GAAae,aACxBvgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAG3xB,8BAAgC,CAClC4B,cAAe+vB,GAAG3xB,8BAClBtI,UAAWk3B,GAAagB,aACxBxgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGnyB,iCAAmC,CACrCoC,cAAe+vB,GAAGnyB,iCAClB9H,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGtB,WAAa,CACfzuB,cAAe+vB,GAAGtB,WAClB34B,UAAWy4B,GACX/gC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAKhBu4B,GAAGtsB,kCAAoC,CACtCzD,cAAe+vB,GAAGtsB,kCAClB3N,UAAWk3B,GAAaa,aACxBrgC,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGrsB,kCAAoC,CACtC1D,cAAe+vB,GAAGrsB,kCAClB5N,UAAWk3B,GAAaiB,aACxBzgC,YAAa,MACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGpsB,kCAAoC,CACtC3D,cAAe+vB,GAAGpsB,kCAClB7N,UAAWk3B,GAAakB,aACxB1gC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGnsB,kCAAoC,CACtC5D,cAAe+vB,GAAGnsB,kCAClB9N,UAAWk3B,GAAamB,aACxB3gC,YAAa,MACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGlsB,kCAAoC,CACtC7D,cAAe+vB,GAAGlsB,kCAClB/N,UAAWk3B,GAAaoB,aACxB5gC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGjsB,kCAAoC,CACtC9D,cAAe+vB,GAAGjsB,kCAClBhO,UAAWk3B,GAAaqB,aACxB7gC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhsB,iCAAmC,CACrC/D,cAAe+vB,GAAGhsB,iCAClBjO,UAAWk3B,GAAasB,YACxB9gC,YAAa,IACbkV,eAAgB,SAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/rB,gCAAkC,CACpChE,cAAe+vB,GAAG/rB,gCAClBlO,UAAWk3B,GAAaI,aACxB5/B,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG9rB,wBAA0B,CAC5BjE,cAAe+vB,GAAG9rB,wBAClBnO,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGrB,iBAAmB,CACrB1uB,cAAe+vB,GAAGrB,mBAEnBqB,GAAGpB,oBAAsB,CACxB3uB,cAAe+vB,GAAGpB,oBAClBl1C,WAAY,KAEbs2C,GAAGnB,aAAe,CACjB5uB,cAAe+vB,GAAGnB,aAClBn1C,WAAY,KAEbs2C,GAAG7rB,iCAAmC,CACrClE,cAAe+vB,GAAG7rB,iCAClBpO,UAAWk3B,GAAaI,aACxB5/B,YAAa,MACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5rB,wBAA0B,CAC5BnE,cAAe+vB,GAAG5rB,wBAClBrO,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAKhBu4B,GAAG1xB,0CAA4C,CAC9C2B,cAAe+vB,GAAG1xB,0CAClBvI,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGzxB,8CAAgD,CAClD0B,cAAe+vB,GAAGzxB,8CAClBxI,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGxxB,kDAAoD,CACtDyB,cAAe+vB,GAAGxxB,kDAClBzI,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,KACf+T,oBAAoB,IAErBwkB,GAAGvxB,8CAAgD,CAClDwB,cAAe+vB,GAAGvxB,8CAClB1I,UAAWk3B,GAAaM,aACxB9/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtxB,mCAAqC,CACvCuB,cAAe+vB,GAAGtxB,mCAClB3I,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGrxB,mCAAqC,CACvCsB,cAAe+vB,GAAGrxB,mCAClB5I,UAAWk3B,GAAaQ,aACxBhgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGpxB,gCAAkC,CACpCqB,cAAe+vB,GAAGpxB,gCAClB7I,UAAWk3B,GAAaS,aACxBjgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGnxB,kCAAoC,CACtCoB,cAAe+vB,GAAGnxB,kCAClB9I,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGlxB,iDAAmD,CACrDmB,cAAe+vB,GAAGlxB,iDAClB/I,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,IACfw4B,gBAAgB,EAChBzkB,oBAAoB,IAErBwkB,GAAGjxB,gDAAkD,CACpDkB,cAAe+vB,GAAGjxB,gDAClBhJ,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,IACfw4B,gBAAgB,EAChBzkB,oBAAoB,IAErBwkB,GAAGhxB,wCAA0C,CAC5CiB,cAAe+vB,GAAGhxB,wCAClBjJ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/wB,kCAAoC,CACtCgB,cAAe+vB,GAAG/wB,kCAClBlJ,UAAWk3B,GAAaW,YACxBngC,YAAa,IACbkV,eAAgB,SAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,KACf+T,oBAAoB,IAErBwkB,GAAG3rB,+BAAiC,CACnCpE,cAAe+vB,GAAG3rB,+BAClBtO,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,KACf+T,oBAAoB,IAErBwkB,GAAG1rB,yCAA2C,CAC7CrE,cAAe+vB,GAAG1rB,yCAClBvO,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,KACf+T,oBAAoB,IAErBwkB,GAAGzrB,2CAA6C,CAC/CtE,cAAe+vB,GAAGzrB,2CAClBxO,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GAGAC,GAAGlB,oBAAsB,CACxB7uB,cAAe+vB,GAAGlB,oBAClBp1C,WAAY,KAEbs2C,GAAGjB,iBAAmB,CACrB9uB,cAAe+vB,GAAGjB,iBAClBr1C,WAAY,KAEbs2C,GAAGhB,mBAAqB,CACvB/uB,cAAe+vB,GAAGhB,qBAEnBgB,GAAGf,oBAAsB,CACxBhvB,cAAe+vB,GAAGf,sBAEnBe,GAAGd,iBAAmB,CACrBjvB,cAAe+vB,GAAGd,iBAClBx1C,WAAY,KAGbs2C,GAAGxrB,6BAA+B,CACjCvE,cAAe+vB,GAAGxrB,6BAClBzO,UAAWk3B,GAAaE,SACxB1/B,YAAa,EAEbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGvrB,sCAAwC,CAC1CxE,cAAe+vB,GAAGvrB,sCAClB1O,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtrB,+BAAiC,CACnCzE,cAAe+vB,GAAGtrB,+BAClB3O,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGrrB,iCAAmC,CACrC1E,cAAe+vB,GAAGrrB,iCAClB5O,UAAWk3B,GAAaG,SACxB3/B,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAIhBu4B,GAAGprB,8CAAgD,CAClD3E,cAAe+vB,GAAGprB,8CAClB7O,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGlrB,kDAAoD,CACtD7E,cAAe+vB,GAAGlrB,kDAClB/O,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGjrB,oCAAsC,CACxC9E,cAAe+vB,GAAGjrB,oCAClBhP,UAAWk3B,GAAaS,aACxBjgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhrB,sCAAwC,CAC1C/E,cAAe+vB,GAAGhrB,sCAClBjP,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGnrB,4CAA8C,CAChD5E,cAAe+vB,GAAGnrB,4CAClB9O,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAIhBu4B,GAAG3qB,kDAAoD,CACtDpF,cAAe+vB,GAAG3qB,kDAClBtP,UAAWk3B,GAAaY,aACxBpgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGzqB,kCAAoC,CACtCtF,cAAe+vB,GAAGzqB,kCAClBxP,UAAWk3B,GAAaa,aACxBrgC,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGxqB,qCAAuC,CACzCvF,cAAe+vB,GAAGxqB,qCAClBzP,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtqB,uCAAyC,CAC3CzF,cAAe+vB,GAAGtqB,uCAClB3P,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGrqB,6CAA+C,CACjD1F,cAAe+vB,GAAGrqB,6CAClB5P,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGpqB,uCAAyC,CAC3C3F,cAAe+vB,GAAGpqB,uCAClB7P,UAAWk3B,GAAae,aACxBvgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGvqB,yCAA2C,CAC7CxF,cAAe+vB,GAAGvqB,yCAClB1P,UAAWk3B,GAAagB,aACxBxgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG1qB,4CAA8C,CAChDrF,cAAe+vB,GAAG1qB,4CAClBvP,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAGhBu4B,GAAGlpB,2CAA6C,CAC/C7G,cAAe+vB,GAAGlpB,2CAClB/Q,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGnpB,kCAAoC,CACtC5G,cAAe+vB,GAAGnpB,kCAClB9Q,UAAWk3B,GAAaE,SACxB1/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGjpB,sCAAwC,CAC1C9G,cAAe+vB,GAAGjpB,sCAClBhR,UAAWk3B,GAAaG,SACxB3/B,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/oB,iDAAmD,CACrDhH,cAAe+vB,GAAG/oB,iDAClBlR,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhpB,mDAAqD,CACvD/G,cAAe+vB,GAAGhpB,mDAClBjR,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG7oB,yCAA2C,CAC7ClH,cAAe+vB,GAAG7oB,yCAClBpR,UAAWk3B,GAAaS,aACxBjgC,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5oB,2CAA6C,CAC/CnH,cAAe+vB,GAAG5oB,2CAClBrR,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAG9oB,uDAAyD,CAC3DjH,cAAe+vB,GAAG9oB,uDAClBnR,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GAEAC,GAAGb,+BAAiC,CACnClvB,cAAe+vB,GAAGb,+BAClBz1C,WAAY,KAEbs2C,GAAGZ,4BAA8B,CAChCnvB,cAAe+vB,GAAGZ,4BAClB11C,WAAY,KAEbs2C,GAAGX,4BAA8B,CAChCpvB,cAAe+vB,GAAGX,8BAGnBW,GAAGvoB,6DAA+D,CACjExH,cAAe+vB,GAAGvoB,6DAClB1R,UAAWk3B,GAAaY,aACxBpgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtoB,kDAAoD,CACtDzH,cAAe+vB,GAAGtoB,kDAClB3R,UAAWk3B,GAAaO,aACxB//B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGroB,2CAA6C,CAC/C1H,cAAe+vB,GAAGroB,2CAClB5R,UAAWk3B,GAAae,aACxBvgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGpoB,iDAAmD,CACrD3H,cAAe+vB,GAAGpoB,iDAClB7R,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGnoB,wCAA0C,CAC5C5H,cAAe+vB,GAAGnoB,wCAClB9R,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAIhBu4B,GAAG/qB,2CAA6C,CAC/ChF,cAAe+vB,GAAG/qB,2CAClBlP,UAAWk3B,GAAaI,aACxB5/B,YAAa,IACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG9qB,mCAAqC,CACvCjF,cAAe+vB,GAAG9qB,mCAClBnP,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAGV,4BAA8B,CAChCrvB,cAAe+vB,GAAGV,8BAEnBU,GAAGT,+BAAiC,CACnCtvB,cAAe+vB,GAAGT,+BAClB71C,WAAY,KAEbs2C,GAAGR,wBAA0B,CAC5BvvB,cAAe+vB,GAAGR,wBAClB91C,WAAY,KAEbs2C,GAAG7qB,4CAA8C,CAChDlF,cAAe+vB,GAAG7qB,4CAClBpP,UAAWk3B,GAAaI,aACxB5/B,YAAa,MACbkV,eAAgB,UAChB4d,cAAe,IACf7mC,WAAY,GACZ8mC,kBAAmB,EACnB/oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5qB,mCAAqC,CACvCnF,cAAe+vB,GAAG5qB,mCAClBrP,UAAWk3B,GAAaK,aACxB7/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAGhBu4B,GAAGnqB,wCAA0C,CAC5C5F,cAAe+vB,GAAGnqB,wCAClB9P,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGlqB,uCAAyC,CAC3C7F,cAAe+vB,GAAGlqB,uCAClB/P,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGjqB,iDAAmD,CACrD9F,cAAe+vB,GAAGjqB,iDAClBhQ,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhqB,oDAAsD,CACxD/F,cAAe+vB,GAAGhqB,oDAClBjQ,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,GACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/pB,uCAAyC,CAC3ChG,cAAe+vB,GAAG/pB,uCAClBlQ,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GAEAC,GAAG9pB,qCAAuC,CACzCjG,cAAe+vB,GAAG9pB,qCAClBnQ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG7pB,oCAAsC,CACxClG,cAAe+vB,GAAG7pB,oCAClBpQ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG5pB,8CAAgD,CAClDnG,cAAe+vB,GAAG5pB,8CAClBrQ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG3pB,iDAAmD,CACrDpG,cAAe+vB,GAAG3pB,iDAClBtQ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG1pB,oCAAsC,CACxCrG,cAAe+vB,GAAG1pB,oCAClBvQ,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAGhBu4B,GAAGzpB,sCAAwC,CAC1CtG,cAAe+vB,GAAGzpB,sCAClBxQ,UAAWk3B,GAAaiD,SACxBziC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGxpB,gDAAkD,CACpDvG,cAAe+vB,GAAGxpB,gDAClBzQ,UAAWk3B,GAAaiD,SACxBziC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGvpB,mDAAqD,CACvDxG,cAAe+vB,GAAGvpB,mDAClB1Q,UAAWk3B,GAAaiD,SACxBziC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGtpB,sCAAwC,CAC1CzG,cAAe+vB,GAAGtpB,sCAClB3Q,UAAWk3B,GAAaiD,SACxBziC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG3oB,iCAAmC,CACrCpH,cAAe+vB,GAAG3oB,iCAClBtR,UAAWy4B,GACX/gC,YAAa,GACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAChBl0B,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAwsD,GACAC,GAAG1oB,4BAA8B,CAChCrH,cAAe+vB,GAAG1oB,4BAClBvR,UAAWk3B,GAAaU,aACxBlgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,MAEhBu4B,GAAGH,iCAAmC,CACrC5vB,cAAe+vB,GAAGH,mCAEnBG,GAAGzoB,wCAA0C,CAC5CtH,cAAe+vB,GAAGzoB,wCAClBxR,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGF,6BAA+B,CACjC7vB,cAAe+vB,GAAGF,+BAEnBE,GAAGxoB,4BAA8B,CAChCvH,cAAe+vB,GAAGxoB,4BAClBzR,UAAWk3B,GAAaI,aACxB5/B,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAKN8R,IAAwB3yC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAChC4yC,IAAqB,IAAAjmC,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAA,GACvBysD,GAAGnyB,iCAAmC,CACrCoC,cAAe+vB,GAAGnyB,iCAClB9H,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG/xB,kCAAoC,CACtCgC,cAAe+vB,GAAG/xB,kCAClBlI,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGhyB,uBAAyB,CAC3BiC,cAAe+vB,GAAGhyB,uBAClBjI,UAAWk3B,GAAaa,aACxBrgC,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG9xB,sCAAwC,CAC1C+B,cAAe+vB,GAAG9xB,sCAClBnI,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGppB,qCAAuC,CACzC3G,cAAe+vB,GAAGppB,qCAClB7Q,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAG1qB,4CAA8C,CAChDrF,cAAe+vB,GAAG1qB,4CAClBvP,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGrqB,6CAA+C,CACjD1F,cAAe+vB,GAAGrqB,6CAClB5P,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGzqB,kCAAoC,CACtCtF,cAAe+vB,GAAGzqB,kCAClBxP,UAAWk3B,GAAaa,aACxBrgC,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGpoB,iDAAmD,CACrD3H,cAAe+vB,GAAGpoB,iDAClB7R,UAAWk3B,GAAac,aACxBtgC,YAAa,KACbkV,eAAgB,UAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,OAEhBu4B,GAAGloB,gDAAkD,CACpD7H,cAAe+vB,GAAGloB,gDAClB/R,UAAWk3B,GAAaC,SACxBz/B,YAAa,EACbkV,eAAgB,MAChB4d,cAAe,IACf9oB,QAAS,CAAC,IAAK,QAkBN04B,GAAsC,SAACC,GAClD,IAAMC,EAAQ9/D,IAAAA,QAAU6/D,GACxB,GAAI7/D,IAAAA,QAAU8/D,GACZ,MAAO,GAET,IAAMluB,EAAoBmuB,OAAOC,OAAO/mB,IAOxC,OANYj5C,IAAAA,MAAQ8/D,GACjBv7D,KAAI,SAAA07D,GAAO,OAAIjgE,IAAAA,OAAS4xC,GAAmB,SAAAnxC,GAAA,IAAG+kC,EAAS/kC,EAAT+kC,UAAS,OAAOy6B,GAAWz6B,GAAcA,EAAU37B,gBAAkBo2D,EAAQp2D,aAAc,GAAC,IAC1Iq2D,UACA7uB,UACAhtC,OACAjF,OAEL,ECpiCA,SAAS+gE,GAAmBC,EAAmBC,GAC7C,IAAKD,IAAsBC,EACzB,MAAO,EAAC,EAAOD,GAEjB,IAAKA,IAAsBC,EACzB,MAAO,EAAC,EAAMA,GAKhB,IAFA,IAAI5nB,EAAU2nB,EAAkB7gE,SAAW8gE,EAAiB9gE,OACtD+gE,EAAmB,GAAGC,EAAA,WAE1B,IAAMC,EAAkBH,EAAiBI,GACnCC,EAAmB1gE,IAAAA,KAAOogE,GAAmB,SAAAl/D,GAAO,OAAAA,EAAJk3B,OAAoBooC,EAAgBpoC,IAAI,IAC9F,GAAIsoC,EAAkB,CACpB,IAAAC,EA5CN,SAA4BC,EAAmBC,GAC7C,IAAKD,IAAsBC,EACzB,MAAO,EAAC,EAAOD,GAEjB,IAAKA,IAAsBC,EACzB,MAAO,EAAC,EAAMA,GAKhB,IAFA,IAAIpoB,EAAUmoB,EAAkBrhE,SAAWshE,EAAiBthE,OACtDuhE,EAAmB,GAAGC,EAAA,WAE1B,IAAMC,EAAeH,EAAiBJ,GACtC,GAAIO,EAAc,CAChB,IAAMC,EAAgBjhE,IAAAA,KAAO4gE,GAAmB,SAAAngE,GAAgB,OAAAA,EAAb0wC,cAAkCzB,gBAAkBsxB,EAAa7vB,cAAczB,aAAa,IAC3IuxB,GAAiBjhE,IAAAA,QAAUihE,EAAeD,GAE5CF,EAAiB9oD,KAAKipD,IAEtBH,EAAiB9oD,KAAKgpD,GACtBvoB,GAAU,EAEd,CACF,EAZSgoB,EAAI,EAAGA,EAAII,EAAiBthE,OAAQkhE,GAAK,EAACM,IAcnD,MAAO,CACLtoB,EACAA,EAAUqoB,EAAmBF,EAEjC,CAgBgDM,CAAmBR,EAAiB/nB,cAAe6nB,EAAgB7nB,eAAcwoB,GAAA9yD,EAAAA,GAAAA,GAAAsyD,EAAA,GAApHS,EAAaD,EAAA,GAAEL,EAAgBK,EAAA,GACtCb,EAAiBtoD,KAAKopD,GAAa/6D,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQm6D,GAAe,IAAE7nB,cAAemoB,IAAqBJ,GAChGjoB,EAAUA,GAAW2oB,CACvB,MACEd,EAAiBtoD,KAAKwoD,GACtB/nB,GAAU,CAEd,EAXSgoB,EAAI,EAAGA,EAAIJ,EAAiB9gE,OAAQkhE,GAAK,EAACF,IAanD,MAAO,CAAC9nB,EAASA,EAAU6nB,EAAmBF,EAChD,CA8CO,SAASiB,GAAmBC,EAAWC,GAC5C,IAAKD,IAAcC,EACjB,MAAO,EAAC,EAAOD,GAGjB,IAAKA,IAAcC,EACjB,MAAO,EAAC,EAAMA,GAGhB,IACyBC,EAGrBF,EAHFtlB,sBACgBylB,EAEdH,EAFFvlB,eACoB2lB,EAClBJ,EADFxlB,mBAIuB6lB,EAGrBJ,EAHFvlB,sBACgB4lB,EAEdL,EAFFxlB,eACoB8lB,EAClBN,EADFzlB,mBAGFgmB,EAjEF,SAA2CC,EAA2BC,GACpE,IAAKD,IAA8BC,EACjC,MAAO,EAAC,EAAOD,GAEjB,IAAKA,IAA8BC,EACjC,MAAO,EAAC,EAAMA,GAEhB,GAAID,IAA8BC,EAChC,MAAO,EAAC,EAAOD,GAMjB,IAHA,IAAItpB,EAAUspB,EAA0BxiE,SAAWyiE,EAAyBziE,OACtE0iE,GAA6BzoD,EAAAA,GAAAA,GAAOuoD,GACpCG,EAA2B,GAAGC,EAAA,WAElC,IAAMC,EAA0BJ,EAAyBvB,GACnD1tB,EAAM/yC,IAAAA,UAAYiiE,GAA+B,SAAArzD,GAAA,IAAGssC,EAAYtsC,EAAZssC,aAAY,OACpEA,EAAavJ,WAAaywB,EAAwBlnB,aAAavJ,WAC3DuJ,EAAavJ,UAAU5pB,MAAQq6C,EAAwBlnB,aAAavJ,UAAU5pB,GAAI,IACxF,GAAIgrB,GAAO,EAAG,CACZ,IAAMsvB,EAA2BJ,EAA8BlvB,GACzCuvB,EAAuDD,EAArEnnB,aAA+CklB,EAAsBiC,EAArC7xB,cAClB+xB,EAAqDH,EAAnElnB,aAA8CmlB,EAAqB+B,EAApC5xB,cAEjCgyB,GAAyBxiE,IAAAA,QAAUsiE,EAAkBC,GAC3DE,EAAmDtC,GAAmBC,EAAmBC,GAAiBqC,GAAAr0D,EAAAA,GAAAA,GAAAo0D,EAAA,GAAnGE,EAAsBD,EAAA,GAAEpC,EAAgBoC,EAAA,GAC/CR,EAAyBlqD,KAAKwqD,GAAyBG,EAAyB,CAAEznB,aAAcqnB,EAAiB/xB,cAAe8vB,GAAqB+B,GACrJ5pB,EAAUA,GAAWkqB,GAA0BH,EAG/CP,EAA8BW,OAAO7vB,EAAK,EAC5C,MACEmvB,EAAyBlqD,KAAKoqD,GAC9B3pB,GAAU,CAEd,EArBSgoB,EAAI,EAAGA,EAAIuB,EAAyBziE,OAAQkhE,GAAK,EAAC0B,IA0B3D,MAAO,CAFP1pB,EAAUA,GAAWwpB,EAA8B1iE,OAAS,EAE3Ck5C,EAAUypB,EAA2BH,EACxD,CAwBmDc,CAAkCrB,EAAkBG,GAAgBmB,GAAAz0D,EAAAA,GAAAA,GAAAyzD,EAAA,GAA9GiB,EAAqBD,EAAA,GAAEE,EAAeF,EAAA,GACvCG,GAA+BjjE,IAAAA,QAAU0hE,EAAwBG,GACjEppB,EAAUgpB,IAAuBG,GAAqBqB,GAA+BF,EAE3F,MAAO,CACLtqB,EACAA,EAAU,CACRuD,sBAAuB+mB,EAAwBC,EAAkBxB,EACjEzlB,eAAgB6lB,EAChB9lB,mBAAoBmnB,EAA8BpB,EAAwBH,GACxEJ,EAER,C,gBClIM4B,GACqB,0BADrBA,GAE+B,oCAF/BA,GAGmC,wCAHnCA,GAIiD,sDAJjDA,GAK2B,gCAgB3BC,GAAsD,CAC1DnnB,sBAAuB,KACvBD,gBAAgB,EAChBD,mBAAoB,MAwEtB,SAASsnB,GAAiB33C,EAAO43C,GAC/B,IAAcC,EAA8BD,EAApCv9B,KAAqBy9B,GAAU33B,EAAAA,EAAAA,GAAKy3B,EAAMx3B,IAClD,OAAQy3B,GACN,KAAKJ,GACH,IAAQM,EAA2BD,EAA3BC,SACR,GADmCD,EAAjBE,aACA,CAChB,IAAAxuD,EAAsEuuD,GAAY,CAAC,EAA3ExnB,EAAqB/mC,EAArB+mC,sBAAuBF,EAAkB7mC,EAAlB6mC,mBAM/B,MALmB,CACjBE,sBAAAA,EACAD,eAH+D9mC,EAAd8mC,iBAGf,EAClCD,mBAAAA,EAGJ,CAEA,IAAA4nB,EAA+BrC,GAAmB51C,EAAO+3C,GAASG,GAAAt1D,EAAAA,GAAAA,GAAAq1D,EAAA,GAA3DjrB,EAAOkrB,EAAA,GAAEC,EAAWD,EAAA,GAC3B,OAAQlrB,GAAepyC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAClBu9D,GAAW,IACd7nB,eAAgB6nB,EAAY7nB,iBAAkB,IAF9BtwB,EAMpB,KAAKy3C,GACH,IAAQhB,EAAyCqB,EAAzCrB,yBAA0B5tC,EAAeivC,EAAfjvC,WAC1B0nB,GAA0BvwB,GAAS,CAAC,GAApCuwB,sBACR,GAAIA,GAAyBA,EAAsB1nB,GAAa,CAC9D,IAAMkvC,GAAQhqD,EAAAA,GAAAA,GAAOwiC,GAMrB,OALAwnB,EAASlvC,GAAc4tC,EAEnBsB,EAASlvC,IAAekvC,EAASlvC,GAAY4mB,eAC/CsoB,EAASlvC,GAAY4mB,aAAahK,oBAAqB,GAElD,CACL8K,sBAAuBwnB,EACvBznB,gBAAgB,EAEpB,CACA,OAAOtwB,EAGT,KAAKy3C,GACH,IACExzB,EACE6zB,EADF7zB,cAAeC,EACb4zB,EADa5zB,SAAUrb,EACvBivC,EADuBjvC,WAAY8kB,EACnCmqB,EADmCnqB,iBAERmoB,GAAa91C,GAAS,CAAC,GAA9CuwB,sBACR,GAAIulB,GAAYA,EAASjtC,GAAa,CACpC,IAAMuvC,EAAwBtC,EAASjtC,GACjC4tC,EAnHsB,SAClC2B,EACAzqB,EACA1J,EACAC,GAEA,IAAAlvC,EAAwCojE,GAAyB,CAAC,EAA1D3oB,EAAYz6C,EAAZy6C,aAAc1K,EAAa/vC,EAAb+vC,cAClBiI,GAAU,EAER6nB,EAAmBtgE,IAAAA,IAAMwwC,GAAe,SAACszB,GAC7C,IAAA5iE,EAAgC4iE,GAAgB,CAAC,EAAzC1rC,EAAIl3B,EAAJk3B,KAAMugB,EAAaz3C,EAAby3C,cACd,GAAIvgB,IAASghB,EAAkB,CAE7B,IAAM0nB,EAAmB9gE,IAAAA,IAAM24C,GAAe,SAACW,GAC7C,OAAIA,EAAUnI,cAAczB,gBAAkBA,GAEvC1vC,IAAAA,QAAUs5C,EAAUlI,kBAAmBzB,GAOvC2J,GANHb,GAAU,GACVpyC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKizC,GAAS,IAAElI,kBAAmBzB,EAAUuB,oBAAoB,EAAM6e,+BAA2BvwD,EAAWowD,uBAAmBpwD,EAAWqwD,yBAAqBrwD,EAAWswD,0BAAsBtwD,IAKvM,IAEA,OAAOi5C,EAAU,CAAErgB,KAAAA,EAAMugB,cAAemoB,GAAqBgD,CAC/D,CACA,OAAOA,CACT,IAEA,OAAOrrB,EAAU,CAAEyC,aAAAA,EAAc1K,cAAe8vB,GAAqBuD,CACvE,CAmFyCE,CAA4BF,EAAuBzqB,EAAkB1J,EAAeC,GAErH,GAAIk0B,IAA0B3B,EAA0B,CACtD,IAAMsB,GAAQhqD,EAAAA,GAAAA,GAAO+nD,GAErB,OADAiC,EAASZ,OAAOtuC,EAAY,EAAG4tC,GACxB,CAAElmB,sBAAuBwnB,EAAUznB,gBAAgB,EAC5D,CACF,CACA,OAAOtwB,EAGT,KAAKy3C,GACH,IACE19B,EACE+9B,EADF/9B,UAAWmK,EACT4zB,EADS5zB,SAAUrb,EACnBivC,EADmBjvC,WAAY8kB,EAC/BmqB,EAD+BnqB,iBAEJmoB,GAAa91C,GAAS,CAAC,GAA9CuwB,sBACR,GAAIulB,GAAYA,EAASjtC,GAAa,CACpC,IAAMuvC,EAAwBtC,EAASjtC,GACjC4tC,EAlGiC,SAC7C2B,EACAzqB,EACA5T,EACAmK,GAEA,IAAA/gC,EAAwCi1D,GAAyB,CAAC,EAA1D3oB,EAAYtsC,EAAZssC,aAAc1K,EAAa5hC,EAAb4hC,cAClBiI,GAAU,EAER6nB,EAAmBtgE,IAAAA,IAAMwwC,GAAe,SAACszB,GAC7C,IAAAlwD,EAAgCkwD,GAAgB,CAAC,EAAzC1rC,EAAIxkB,EAAJwkB,KAAMugB,EAAa/kC,EAAb+kC,cACd,GAAIvgB,IAASghB,EAAkB,CAE7B,IAAM0nB,EAAmB9gE,IAAAA,IAAM24C,GAAe,SAACW,GAC7C,OAAIA,EAAUnI,cAAc3L,YAAcA,GAEnCxlC,IAAAA,QAAUs5C,EAAUlI,kBAAmBzB,GAOvC2J,GANHb,GAAU,GACVpyC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKizC,GAAS,IAAElI,kBAAmBzB,EAAUuB,oBAAoB,EAAM6e,+BAA2BvwD,EAAWowD,uBAAmBpwD,EAAWqwD,yBAAqBrwD,EAAWswD,0BAAsBtwD,IAKvM,IAEA,OAAOi5C,EAAU,CAAErgB,KAAAA,EAAMugB,cAAemoB,GAAqBgD,CAC/D,CACA,OAAOA,CACT,IACA,OAAOrrB,EAAU,CAAEyC,aAAAA,EAAc1K,cAAe8vB,GAAqBuD,CACvE,CAmEyCG,CAAuCH,EAAuBzqB,EAAkB5T,EAAWmK,GAE5H,GAAIk0B,IAA0B3B,EAA0B,CACtD,IAAM+B,GAAgBzqD,EAAAA,GAAAA,GAAO+nD,GAE7B,OADA0C,EAAiB3vC,GAAc4tC,EACxB,CAAElmB,sBAAuBioB,EAAkBloB,gBAAgB,EACpE,CACF,CACA,OAAOtwB,EAGT,KAAKy3C,GACH,IAAQpnB,EAAuBynB,EAAvBznB,mBACR5V,EAA6Eza,GAAS,CAAC,EAA/EuwB,EAAqB9V,EAArB8V,sBAA2C6lB,EAAqB37B,EAAzC4V,mBACzBooB,EAAalkE,IAAAA,QAAUg8C,GAAyB,GAAKh8C,IAAAA,MAAQ87C,GAChEz3C,OACA8/D,SACA7/D,QAAO,SAAAm8D,GAAC,OAAIzgE,IAAAA,SAAWygE,IAAMA,GAAK,GAAKA,EAAIzkB,EAAsBz8C,MAAM,IACvEH,QACH,OAAKY,IAAAA,QAAUkkE,EAAYrC,GAGpBp2C,GAFLplB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAYolB,GAAK,IAAEqwB,mBAAoBooB,IAI3C,QACE,OAAOz4C,EAEb,CAEO,IC3LM24C,GAA2B,SAACC,EAAmBnnC,GAC1D,IAIMonC,EADFD,EAFF7jC,YAEE6jC,EADF5jC,aAGI8Q,EAAevxC,IAAAA,SAAW,CAAC,EAAGqkE,GAEpC,GAAIE,KAAKC,IAAIF,EAAgBpnC,GAbF,IAezB,GAAIA,GAAeonC,EAAe,CAEhC,IAAMG,EAAoBF,KAAKG,MAAMnzB,EAAa9Q,aAAevD,GAI3DynC,EACJJ,KAAKG,OAAOnzB,EAAa/Q,YAAcikC,GAAqB,GAAKlzB,EAAalR,QAEhFkR,EAAa/Q,YAAcikC,EAC3BlzB,EAAalR,QAAUskC,CACzB,KAAO,CAEL,IAAMC,EAAqBL,KAAKG,MAAMnzB,EAAa/Q,YAActD,GAI3D2nC,EAAUN,KAAKG,OACnBnzB,EAAa9Q,aAAemkC,GAAsB,GAAKrzB,EAAahR,QAEtEgR,EAAa9Q,aAAemkC,EAC5BrzB,EAAahR,QAAUskC,CACzB,CAGF,OAAOtzB,CACT,EAGaM,GAA8B,SAAHpxC,GAKjC,IAJLkxC,EAASlxC,EAATkxC,UACAzB,EAAazvC,EAAbyvC,cACA0B,EAAiBnxC,EAAjBmxC,kBAAiBkzB,EAAArkE,EACjBskE,qBAAAA,OAAoB,IAAAD,GAAQA,EAEtBvgD,EAAQwgD,EAAuBpzB,EAAU1R,cAAgB0R,EAAUptB,MACnEmJ,EAASq3C,EAAuBpzB,EAAUxR,eAAiBwR,EAAUjkB,OACrEs3C,EAAa90B,GAAiB,CAClC1P,YAAajc,EACbkc,aAAc/S,EACd2S,QAAS,EACTE,QAAS,GAELwE,EAAe/kC,IAAAA,MAAQ4xC,EAAmB,eAOhD,OAN2B5xC,IAAAA,IAAM+kC,GAAc,SAACkgC,GAE9C,MAAO,CACL7zB,kBAFmBgzB,GAAyBY,EAAYC,GAI5D,GAEF,E,gLC1DaC,GAA+B,SAACnvC,GAE3C,IAAI3F,EAAgBpwB,IAAAA,KAAO+1B,GAAQ,SAAAmmB,GAAG,OAAIA,GAAOA,EAAI1C,qBAAuB0C,EAAIvK,SAAS,IAQzF,OANKvhB,IACHA,EAAgBpwB,IAAAA,KAAO+1B,GAAQ,SAAAmmB,GAAG,OAAIA,GAAOA,EAAIvK,SAAS,KAEvDvhB,IACHA,EAAgBpwB,IAAAA,MAAQ+1B,IAEnB3F,CACT,EAOM+0C,GAAe,SAACpoC,EAAOtkB,GAE3B,IC5B6BsP,ED4BvBq9C,EAAeplE,IAAAA,SAAW+8B,IC5BHhV,ED6BVgV,EC5BZ,IAAI5xB,KAAJ,EAAY,SAACk6D,EAASC,GAC3B,IAAMvoC,EAAQ,IAAI+uB,MAClB/uB,EAAMwoC,OAAS,WACb,IAAA9kE,EAA6Cs8B,GAAS,CAAC,EAA/CjE,EAAGr4B,EAAHq4B,IAAK0sC,EAAY/kE,EAAZ+kE,aAAcC,EAAahlE,EAAbglE,cAC3BJ,EAAQ,CAAEvsC,IAAAA,EAAKvU,MAAOihD,EAAc93C,OAAQ+3C,GAC9C,EACA1oC,EAAM2oC,QAAU,WACdJ,EAAO,IAAIh6D,MAAM,8BAADrI,OAA+B8kB,IACjD,EACAgV,EAAMjE,IAAM/Q,CACd,KDkB0B/J,MAAK,SAAAvd,GAAA,IAAGq4B,EAAGr4B,EAAHq4B,IAAKvU,EAAK9jB,EAAL8jB,MAAOmJ,EAAMjtB,EAANitB,OAAM,MAAQ,CACxD3F,IAAK+Q,EAAKvU,MAAAA,EAAOmJ,OAAAA,EAAQmiB,YAAa/W,EAAKmH,cAAe1b,EAAO4b,eAAgBzS,EAClF,IACCviB,KAAAA,QAAgB4xB,GAEd4oC,EAAQP,EAAapnD,MAAK,SAAC4nD,GAC/B,IAAA1kE,EAEI0kE,GAAe,CAAC,EADlBjlE,EAAEO,EAAFP,GAAIonB,EAAG7mB,EAAH6mB,IAAKxD,EAAKrjB,EAALqjB,MAAOmJ,EAAMxsB,EAANwsB,OAAQmiB,EAAW3uC,EAAX2uC,YAAa5P,EAAa/+B,EAAb++B,cAAeE,EAAcj/B,EAAdi/B,eAAgB+P,EAAahvC,EAAbgvC,cAAeC,EAAkBjvC,EAAlBivC,mBAOrF,MAAO,CAAEwB,UAHS,CAChBhxC,GAAAA,EAAIonB,IAAAA,EAAKxD,MAAAA,EAAOmJ,OAAAA,EAAQmiB,YAAAA,EAAa5P,cAAAA,EAAeE,eAAAA,EAAgB6P,QAL0C9uC,EAAP8uC,QAK1BC,aAL+C/uC,EAAZ+uC,cAO9FC,cAAAA,EAAe21B,yBAA0B11B,EAC/D,IAAG/kC,OAAM,SAACrI,GAIR,OAHI0V,GACFA,EAAQ1V,GAEH,IACT,IAEA,OAAO4iE,CACT,EAQA,SAASG,GAAgBn0B,EAAWzB,EAAe21B,EAA0BE,EAAmB1tB,GAE9F,IAAQe,EAAiG2sB,EAAjG3sB,iBAAkB3J,EAA+Es2B,EAA/Et2B,eAAcu2B,EAAiED,EAA/DE,6BAAAA,OAA4B,IAAAD,EAAGn0B,GAA2Bm0B,EAG9Fp0B,EJq+BgC,SAACnC,EAAgB4I,GACvD,IAAMU,EAAoBV,EAA4BW,GAA0BC,GAC1E6mB,EAAQ9/D,IAAAA,QAAUyvC,GAExB,OAAIzvC,IAAAA,QAAU8/D,GACL,GAEG9/D,IAAAA,IACV8/D,GACA,SAAApwB,GAAa,OAAIqJ,EAAkBrJ,EAAc,GAGrD,CIj/B4Bw2B,CAAyBz2B,EAAgB4I,GAGnE,OAAOltC,KAAAA,QAAgB86D,EAA6B,CAAEt0B,UAAAA,EAA2BzB,cAAAA,EAAe0B,kBAAAA,KAC7F5zB,MAAK,WAA+B,IAA9BmoD,EAAmBnnE,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,GAErB25C,EAAgB34C,IAAAA,IAAM4xC,GAAmB,SAACT,EAAezmB,GAE7D,IAAkB07C,GAAmBpmE,IAAAA,KAAO6lE,GAA0B,SAAA5lE,GAAI,OAAIA,EAAKyvC,gBAAkByB,EAAczB,aAAa,KAAK,CAAC,GAA9HC,SACR/7B,EAEIuyD,EAAoBz7C,IAAU,CAAC,EADjC0mB,EAAiBx9B,EAAjBw9B,kBAAmBsJ,EAAmB9mC,EAAnB8mC,oBAAqBD,EAAkB7mC,EAAlB6mC,mBAAoBF,EAAgB3mC,EAAhB2mC,iBAAkBI,EAAyB/mC,EAAzB+mC,0BAEhF,MAAQ,CACNxJ,cAAAA,EACAC,kBAAmBg1B,GAAkBh1B,EAIrCF,qBAAsBk1B,EACtB7rB,iBAAkB6rB,OAAiB5mE,EAAY+6C,EAC/CG,oBAAqB0rB,OAAiB5mE,EAAYk7C,EAClDD,mBAAoB2rB,OAAiB5mE,EAAYi7C,EACjDE,0BAA2ByrB,OAAiB5mE,EAAYm7C,EAE5D,IACA,MAAO,CAAEviB,KAAMghB,EAAkBT,cAAAA,EACnC,GACJ,CAQA,SAAS0tB,GAA2BpxD,GAEhC,IADF08B,EAAS18B,EAAT08B,UAAWzB,EAAaj7B,EAAbi7B,cAAe21B,EAAwB5wD,EAAxB4wD,yBAA0BS,EAAkBrxD,EAAlBqxD,mBAAoBjuB,EAAyBpjC,EAAzBojC,0BAoBxE,OAlBYltC,KAAAA,IACVm7D,GACA,SAAAh3B,GAAK,OAAIw2B,GAAgBn0B,EAAWzB,EAAe21B,EAA0Bv2B,EAAO+I,EAA0B,GAC9G,CAAEkuB,YAAa,IACfvoD,MAAK,SAACwyB,GAYN,MAXe,CACb0K,aAAc,CACZvJ,UAAAA,EACAzB,cAAAA,EAIAgB,qBAAsBhB,GAExBM,cAAAA,EAGJ,GAEF,CAIO,IAAMH,GAAoB,SAACC,EAAiB73B,GAGjD,IAAM+tD,GAAwBviE,EAAAA,EAAAA,QAAOqsC,GAE/BxvC,GAAcmuB,EAAAA,EAAAA,YAAWssB,GAAAA,oBACzBlD,EAA4Br4C,IAAAA,IAAMc,EAAa,CAAC,UAAW,qBAEjE2lE,EF0DiC,WAAuC,IAAtCC,EAAS1nE,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAGmkE,GAC9CwD,GAAmCC,EAAAA,EAAAA,YAAWxD,GAAkBsD,GAAUG,GAAAx4D,EAAAA,GAAAA,GAAAs4D,EAAA,GAAnEG,EAAcD,EAAA,GAAEE,EAAQF,EAAA,GAC/BtgC,EAAsEugC,GAAkB,CAAC,EAAjF9qB,EAAqBzV,EAArByV,sBAAuBD,EAAcxV,EAAdwV,eAAgBD,EAAkBvV,EAAlBuV,mBAOzCT,GAAqBp6C,EAAAA,EAAAA,cAAY,SAACuiE,GACtCuD,EAAS,CAAEjhC,KAAMo9B,GAA+CM,SAAAA,EAAUC,aADdzkE,UAAAO,OAAA,QAAAC,IAAAR,UAAA,IAAAA,UAAA,IAE9D,GAAG,IAEGgoE,GAAsB/lE,EAAAA,EAAAA,cAAY,SAACihE,GACvC6E,EAAS,CAAEjhC,KAAMo9B,GAAyDhB,yBAAAA,EAA0B5tC,WADMt1B,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,GAE/G,GAAG,IAEGioE,GAA0BhmE,EAAAA,EAAAA,cAAY,SAACimE,GAC3C,IAAAvgC,EAEIugC,GAAU,CAAC,EAACC,EAAAxgC,EADdrS,WAAAA,OAAU,IAAA6yC,EAAG,EAACA,EAAE/tB,EAAgBzS,EAAhByS,iBAAkB1J,EAAa/I,EAAb+I,cAAeC,EAAQhJ,EAARgJ,SAEnDo3B,EAAS,CACPjhC,KAAMo9B,GAA6DxzB,cAAAA,EAAeC,SAAAA,EAAUrb,WAAAA,EAAY8kB,iBAAAA,GAE5G,GAAG,IAEGguB,GAAqCnmE,EAAAA,EAAAA,cAAY,SAACimE,GACtD,IAAAtgC,EAEIsgC,GAAU,CAAC,EAACG,EAAAzgC,EADdtS,WAAAA,OAAU,IAAA+yC,EAAG,EAACA,EAAEjuB,EAAgBxS,EAAhBwS,iBAAkB5T,EAASoB,EAATpB,UAAWmK,EAAQ/I,EAAR+I,SAE/Co3B,EAAS,CACPjhC,KAAMo9B,GAA2E19B,UAAAA,EAAWmK,SAAAA,EAAUrb,WAAAA,EAAY8kB,iBAAAA,GAEtH,GAAG,IAEGkuB,GAAwBrmE,EAAAA,EAAAA,cAAY,WAAiB,IAAD,IAAAsmE,EAAAvoE,UAAAO,OAAZioE,EAAO,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAPF,EAAOE,GAAA1oE,UAAA0oE,GACnDX,EAAS,CAAEjhC,KAAMo9B,GAAqDpnB,mBAAoB0rB,GAC5F,GAAG,IAEH,MAAO,CACLxrB,sBAAAA,EACAD,eAAAA,EACAD,mBAAAA,EACAT,mBAAAA,EACA2rB,oBAAAA,EACAC,wBAAAA,EACAG,mCAAAA,EACAE,sBAAAA,EAEJ,CElGMK,GARF3rB,EAAqByqB,EAArBzqB,sBACAD,EAAc0qB,EAAd1qB,eACAV,EAAkBorB,EAAlBprB,mBACqBusB,EAAwBnB,EAA7CO,oBACyBa,EAA4BpB,EAArDQ,wBACoCa,EAAuCrB,EAA3EW,mCACAtrB,EAAkB2qB,EAAlB3qB,mBACAwrB,EAAqBb,EAArBa,sBAGIN,GAAsB/lE,EAAAA,EAAAA,cAAY,SAAC8mE,GAAsC,IAApBzzC,EAAUt1B,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAAG,EAGtEmlC,GAD0B6X,GAAyBA,EAAsB1nB,IAAgB,CAAC,GAAlF4mB,cAC6C,CAAC,EAA9CvJ,EAASxN,EAATwN,UAAWzB,EAAa/L,EAAb+L,cAGXM,GAAmBg2B,EAAsB9hE,SAAW8hE,EAAsB9hE,QAAQ4vB,IAAgB,CAAC,GAAnGkc,cAEJA,GAAiBmB,GAAao2B,IAAqB/nE,IAAAA,QAAUkwC,EAAe63B,IAC9E1B,GAA4B,CAC1B10B,UAAAA,EAAWzB,cAAe63B,EAAkBlC,8BAA0BrmE,EAAW8mE,mBAAoB91B,EAAe6H,0BAAAA,IACnHr6B,MAAK,SAACgqD,GACPJ,EAAyBI,EAAqB1zC,EAChD,GAEJ,GAAG,CAAC0nB,EAAuB4rB,IAQrBX,GAA0BhmE,EAAAA,EAAAA,cAAY,SAACimE,GAC3C,IAAAhhC,EAEIghC,GAAU,CAAC,EADbe,EAAoB/hC,EAApB+hC,qBAAsB7uB,EAAgBlT,EAAhBkT,iBAAkB1J,EAAaxJ,EAAbwJ,cAAaw4B,EAAAhiC,EAAE5R,WAGzDuzC,EAA6B,CAC3BvzC,gBAJiE,IAAA4zC,EAAG,EAACA,EAIzD9uB,iBAAAA,EAAkB1J,cAAAA,EAAeC,SAAUs4B,GAE3D,GAAG,CAACJ,IAQET,GAAqCnmE,EAAAA,EAAAA,cAAY,SAACimE,GACtD,IAAA3gC,EAEI2gC,GAAU,CAAC,EADbe,EAAoB1hC,EAApB0hC,qBAAsB7uB,EAAgB7S,EAAhB6S,iBAAkB5T,EAASe,EAATf,UAAS2iC,EAAA5hC,EAAEjS,WAGrDwzC,EAAwC,CACtCxzC,gBAJ6D,IAAA6zC,EAAG,EAACA,EAIrD/uB,iBAAAA,EAAkB5T,UAAAA,EAAWmK,SAAUs4B,GAEvD,GAAG,CAACH,IAGEM,GAAqBnkE,EAAAA,EAAAA,QAAO,MAI5BokE,GAAkBpnE,EAAAA,EAAAA,cAAY,SAACqnE,GAGnC,IAAMC,EAAiBvoE,IAAAA,QAAUsoE,GACjC,IAAItoE,IAAAA,QAAUuoE,KAKVvoE,IAAAA,QAAUooE,EAAmB1jE,QAAS6jE,GAA1C,CAGAH,EAAmB1jE,QAAU6jE,EAG7B/B,EAAsB9hE,QAAU6jE,EAEhC,IAAAC,GAAAC,EAAAA,GAAAA,GAAuCF,GAAhCG,EAAWF,EAAA,GAAKG,EAAYH,EAAAI,MAAA,GAGnCzD,GAAauD,EAAY3rC,MAAOtkB,GAASuF,MAAK,SAAC6qD,GAE7C,IAAKA,EACH,OAAO,KAET,IAAQl3B,EAAuDk3B,EAAvDl3B,UAAWzB,EAA4C24B,EAA5C34B,cAAe21B,EAA6BgD,EAA7BhD,yBASlC,OAHAxqB,EAAmB,CAAEW,sBAAuB,CAJX,CAC/Bd,aAAc,CAAEvJ,UAAAA,EAAWzB,cAAAA,EAAegB,qBAAsBhB,GAChEM,cAAe,OAKV61B,GAA4B,CACjC10B,UAAAA,EAAWzB,cAAAA,EAAe21B,yBAAAA,EAA0BS,mBAAoBoC,EAAYl4B,cAAe6H,0BAAAA,IAClGr6B,MAAK,SAAC8qD,GACHA,IAEFztB,EAAmB,CAAEW,sBAAuB,CAAC8sB,KAExC9oE,IAAAA,QAAU2oE,IACbx9D,KAAAA,IACEw9D,GACA,SAAA53B,GAAM,OAAIo0B,GAAap0B,EAAOhU,MAAOtkB,GAASuF,MAAK,SAAC+qD,GAClD,OAAIA,EACK1C,GAA4B,CACjC10B,UAAWo3B,EAAQp3B,UACnBzB,cAAe64B,EAAQ74B,cACvB21B,yBAA0BkD,EAAQlD,yBAClCS,mBAAoBv1B,EAAOP,cAC3B6H,0BAAAA,IAGG,IACT,GAAE,GACF,CAAEkuB,YAAa,IACfvoD,MAAK,SAAC29B,GAEN,IAAMqtB,EAAqBhpE,IAAAA,QAAU27C,GAChC37C,IAAAA,QAAUgpE,IACb3tB,EAAmB,CAAEW,sBAAsB,CAAE8sB,GAAiB7lE,QAAAuW,EAAAA,GAAAA,GAAKwvD,KAEvE,IAGN,GACF,GAxDA,CAyDF,GAAG,CAACvwD,EAAS4iC,KAEbj6C,EAAAA,EAAAA,YAAU,WACHpB,IAAAA,QAAUswC,IACb+3B,EAAgB/3B,EAGpB,GAAG,CAACA,IAKJ,IAAM24B,GAA4BhoE,EAAAA,EAAAA,cAAY,SAACioE,GAC7C,GAAIlpE,IAAAA,QAAUg8C,GACZ,MAAO,GAGT,IAAMmtB,EAAqB,GAGvBC,EAA8BptB,EAqDlC,OApDIktB,IAAqBlpE,IAAAA,QAAU87C,KACjCstB,EAA8BppE,IAAAA,QAAUA,IAAAA,IAAM87C,GAAoB,SAAA/I,GAAG,OAAIiJ,EAAsBjJ,EAAI,MAMrG/yC,IAAAA,KAAOopE,GAA6B,SAAAziC,GAA8C,IAA7B0iC,EAAM1iC,EAApBuU,aAAsB1K,EAAa7J,EAAb6J,cAC3D5J,EAAuDyiC,GAAU,CAAC,EAA1D13B,EAAS/K,EAAT+K,UAAWzB,EAAatJ,EAAbsJ,cAAegJ,EAAgBtS,EAAhBsS,iBAIlCl5C,IAAAA,KAAOwwC,GAAe,SAAA/J,GAAgD,IAAvC2S,EAAgB3S,EAAtBrO,KAAwBugB,EAAalS,EAAbkS,cAE3C2wB,EAAwBH,EAAmBI,MAAK,SAAAtpE,GAAI,OAAIA,EAAKm5C,mBAAqBA,CAAgB,IACjGkwB,IACHA,EAAwB,CAAElwB,iBAAAA,EAAkBT,cAAe,IAC3DwwB,EAAmBnxD,KAAKsxD,IAK1BtpE,IAAAA,KAAO24C,GAAe,SAAA6wB,GAEf,IADLr4B,EAAaq4B,EAAbr4B,cAAeC,EAAiBo4B,EAAjBp4B,kBAAmBmI,EAAoBiwB,EAApBjwB,qBAAsBC,EAAmBgwB,EAAnBhwB,oBAAqBe,EAAgBivB,EAAhBjvB,iBAAkBG,EAAmB8uB,EAAnB9uB,oBAAqBD,EAAkB+uB,EAAlB/uB,mBAAoBE,EAAyB6uB,EAAzB7uB,0BAA8BhP,GAAIC,EAAAA,EAAAA,GAAA49B,EAAA39B,IAEpK49B,GAAcpjE,EAAAA,EAAAA,GAAA,CAClBsrC,UAAAA,EACAzB,cAAAA,EACAgJ,iBAAAA,EACA9H,kBAAAA,EACAmI,qBAAAA,EACAqW,kBAAoBrW,GAAwBA,EAAqB3B,WAAesB,GAAoBA,EAAiBtB,WAAc2C,GAAqB5I,IAAcA,EAAU9B,aAAe8B,EAAU5pB,KACzM8nC,oBAAqBpV,GAAuB9I,GAAaA,EAAU1R,cACnE6vB,qBAAsBpV,GAAwB/I,GAAaA,EAAUxR,eACrE4vB,0BAA2BpV,EAC3BnB,oBAAAA,GACG7N,GAEC+9B,EAAU1pE,IAAAA,UAAYspE,EAAsB3wB,eAAgB,SAAA14C,GAAI,OAAIA,EAAKkxC,cAAczB,gBAAkByB,EAAczB,aAAa,IACtIg6B,GAAW,GACbJ,EAAsB3wB,cAAc+wB,GAAS3zC,OAAO/d,KAAKyxD,GACzDH,EAAsB3wB,cAAc+wB,GAASlwB,oBACzCA,GAAuB8vB,EAAsB3wB,cAAc+wB,GAASlwB,qBAExE8vB,EAAsB3wB,cAAc3gC,KAAK,CACvCm5B,cAAAA,EAAeqI,oBAAAA,EAAqBzjB,OAAQ,CAAC0zC,IAGnD,GACF,GACF,IAEON,CACT,GAAG,CAACrtB,EAAoBE,IAElB2tB,GAAmCxlE,EAAAA,EAAAA,UAAQ,kBAAM8kE,GAA0B,EAAM,GAAE,CAACA,IACpFW,GAAyCzlE,EAAAA,EAAAA,UAAQ,kBAAM8kE,GAA0B,EAAK,GAAE,CAACA,IAMzFY,GAAoC1lE,EAAAA,EAAAA,UAAQ,WAYhD,OAXYnE,IAAAA,IAAM2pE,GAAkC,SAAAG,GAA0C,IAAvC1wB,EAAgB0wB,EAAhB1wB,iBAAkBT,EAAamxB,EAAbnxB,cASvE,MAAO,CAAES,iBAAAA,EAAkBT,cARd34C,IAAAA,IAAM24C,GAAe,SAAAoxB,GAAqD,IAAlD54B,EAAa44B,EAAb54B,cAAeqI,EAAmBuwB,EAAnBvwB,oBAAqBzjB,EAAMg0C,EAANh0C,OACjE3F,EAAgB80C,GAA6BnvC,GACnD,OAAA1vB,EAAAA,EAAAA,GAAA,CACE8qC,cAAAA,EACAqI,oBAAAA,GACGppB,EAEP,IAEF,KACc,EAChB,GAAG,CAACu5C,IAEEK,GAA0C7lE,EAAAA,EAAAA,UAAQ,WAYtD,OAXYnE,IAAAA,IAAM4pE,GAAwC,SAAAK,GAA0C,IAAvC7wB,EAAgB6wB,EAAhB7wB,iBAAkBT,EAAasxB,EAAbtxB,cAS7E,MAAO,CAAES,iBAAAA,EAAkBT,cARd34C,IAAAA,IAAM24C,GAAe,SAAAuxB,GAAqD,IAAlD/4B,EAAa+4B,EAAb/4B,cAAeqI,EAAmB0wB,EAAnB1wB,oBAAqBzjB,EAAMm0C,EAANn0C,OACjE3F,EAAgB80C,GAA6BnvC,GACnD,OAAA1vB,EAAAA,EAAAA,GAAA,CACE8qC,cAAAA,EACAqI,oBAAAA,GACGppB,EAEP,IAEF,KACc,EAChB,GAAG,CAACw5C,IAEEO,GAAahmE,EAAAA,EAAAA,UAAQ,WAEzB,OADyBnE,IAAAA,MAAQg8C,IAA0B,CAAC,GAApDd,YAEV,GAAG,CAACc,IAEEouB,GAAYjmE,EAAAA,EAAAA,UAAQ,WAExB,OADanE,IAAAA,IAAMg8C,GAAuB,SAAAquB,GAAe,OAAAA,EAAZnvB,YAA+B,KAC7D,EACjB,GAAG,CAACc,IAEEsuB,GAAenmE,EAAAA,EAAAA,UAAQ,WAC3B,GAAInE,IAAAA,QAAU87C,GACZ,MAAO,GAET,IAAMH,EAAM37C,IAAAA,IAAM87C,GAAoB,SAAApxB,GAAK,OAAIsxB,EAAsBtxB,IAAUsxB,EAAsBtxB,GAAOwwB,YAAY,IACxH,OAAOl7C,IAAAA,QAAU27C,IAAQ,EAC3B,GAAG,CAACK,EAAuBF,IAIrBhL,GAAsB3sC,EAAAA,EAAAA,UAAQ,WAgBlC,OAdYnE,IAAAA,IAAMg8C,GAAuB,SAAAuuB,GAAsC,IAAnCrvB,EAAYqvB,EAAZrvB,aAAc1K,EAAa+5B,EAAb/5B,cAClDzT,GAAK12B,EAAAA,EAAAA,GAAA,GAAQ60C,GACbjK,EAAa,GAUnB,OARAjxC,IAAAA,KAAOwwC,GAAe,SAAAg6B,GAAwB,IAArB7xB,EAAa6xB,EAAb7xB,cAEvB34C,IAAAA,KAAO24C,GAAe,SAACW,GACjBA,EAAUpI,oBACZD,EAAWj5B,KAAKshC,EAEpB,GACF,IACO,CAAEvc,MAAAA,EAAOkU,WAAAA,EAClB,KACc,EAChB,GAAG,CAAC+K,IAEEyuB,GAA4BxpE,EAAAA,EAAAA,cAAY,SAACuiE,GAC7CnoB,EAAmBmoB,GACnB4E,EAAmB1jE,QAAU,IAC/B,GAAG,CAAC22C,IAEJ,MAAO,CAELS,mBAAAA,EACAwrB,sBAAAA,EACAjsB,mBAAoBovB,EAEpB75B,mBAAoBy3B,EACpBrB,oBAAAA,EACAC,wBAAAA,EACAG,mCAAAA,EACA9rB,wBAAyBsuB,EACzBc,yBAA0BV,EAC1BL,iCAAAA,EACAE,kCAAAA,EACAM,WAAAA,EACAC,UAAAA,EACAE,aAAAA,EACAvuB,eAAAA,EACAjL,oBAAAA,EAEJ,EE3ba65B,GAAwB,CACnCC,IAAK,CACHC,UAAW3M,GAAiBxxB,kBAC5Bo+B,eAAgB5M,GAAiBvxB,2BACjCo+B,YAAa7M,GAAiBtxB,oBAC9Bo+B,cAAe9M,GAAiBrxB,uBAGlCo+B,KAAM,CACJJ,UAAW3M,GAAiBpxB,mCAC5Bi+B,YAAa7M,GAAiB7wB,iCAC9B69B,qBAAsBhN,GAAiBlxB,uCACvCm+B,aAAcjN,GAAiB/wB,yBAC/Bi+B,iBAAkBlN,GAAiB9wB,4BAGrCi+B,OAAQ,CACNC,eAAgBpN,GAAiB3wB,uCACjCg+B,aAAcrN,GAAiB5wB,iCAC/Bk+B,WAAYtN,GAAiBzwB,uBAC7Bg+B,UAAWvN,GAAiBnxB,0BAC5B2+B,cAAexN,GAAiBpwB,8BAChC69B,YAAazN,GAAiBjxB,4BAC9B2+B,iBAAkB1N,GAAiBxwB,kCACnCm+B,YAAa3N,GAAiBtwB,6BAGhCk+B,KAAM,CACJC,oBAAqB7N,GAAiBrvB,sCACtCm9B,kBAAmB9N,GAAiBvvB,wCACpCs9B,kBAAmB/N,GAAiBtvB,gCACpCs9B,iBAAkBhO,GAAiBjvB,2BACnCk9B,aAAcjO,GAAiBhvB,uBAC/Bi8B,aAAcjN,GAAiBpvB,8BAC/Bs8B,iBAAkBlN,GAAiBnvB,gCACnCm8B,qBAAsBhN,GAAiBlvB,4CACvCo9B,oBAAqBlO,GAAiB1wB,kDACtC6+B,uBAAwBnO,GAAiBhxB,uCACzCo/B,iBAAkBpO,GAAiBrwB,gCACnC0+B,sBAAuBrO,GAAiBvwB,sCACxC6+B,cAAetO,GAAiB9nB,6BAChCq2B,MAAOvO,GAAiBC,WACxBoN,aAAcrN,GAAiB7nB,sCAGjCq2B,OAAQ,CACNX,oBAAqB7N,GAAiBrvB,sCACtCm9B,kBAAmB9N,GAAiBvvB,wCACpCs9B,kBAAmB/N,GAAiBtvB,gCACpCs9B,iBAAkBhO,GAAiBjvB,2BACnCk9B,aAAcjO,GAAiBhvB,uBAC/Bk9B,oBAAqBlO,GAAiB1wB,kDACtC6+B,uBAAwBnO,GAAiBhxB,uCACzCo/B,iBAAkBpO,GAAiBrwB,gCACnC0+B,sBAAuBrO,GAAiBvwB,sCACxC6+B,cAAetO,GAAiB9nB,6BAChCq2B,MAAOvO,GAAiBC,WACxBoN,aAAcrN,GAAiB7nB,sCAGjCs2B,MAAO,CACLC,yBAA0B1O,GAAiB/qB,kCAC3C05B,yBAA0B3O,GAAiB9qB,kCAC3C05B,yBAA0B5O,GAAiB7qB,kCAC3C05B,yBAA0B7O,GAAiB5qB,kCAC3C05B,yBAA0B9O,GAAiB3qB,kCAC3C05B,yBAA0B/O,GAAiB1qB,kCAC3C05B,wBAAyBhP,GAAiBzqB,iCAC1C05B,iBAAkBjP,GAAiBxqB,gCACnC05B,aAAclP,GAAiBvqB,wBAC/B05B,UAAWnP,GAAiBE,iBAC5BkP,aAAcpP,GAAiBG,oBAC/BkP,OAAQrP,GAAiBI,aACzBkP,iBAAkBtP,GAAiBtqB,iCACnC65B,UAAWvP,GAAiBrqB,yBAG9B65B,SAAU,CACRlB,cAAetO,GAAiBpqB,+BAChCu4B,uBAAwBnO,GAAiBnqB,yCACzCw3B,aAAcrN,GAAiBlqB,2CAE/B62B,UAAW3M,GAAiBnwB,0CAC5Bg9B,YAAa7M,GAAiBzvB,wCAE9Bk/B,qBAAsBzP,GAAiBhwB,8CACvCg9B,qBAAsBhN,GAAiBlwB,8CAEvC4/B,kBAAmB1P,GAAiB/vB,mCACpC0/B,kBAAmB3P,GAAiB9vB,mCACpC+8B,aAAcjN,GAAiB7vB,gCAC/B+8B,iBAAkBlN,GAAiB5vB,kCACnCw/B,kBAAmB5P,GAAiBxvB,kCAEpCq/B,uBAAwB7P,GAAiBjwB,kDACzC+/B,sBAAuB9P,GAAiB3vB,iDACxC0/B,qBAAsB/P,GAAiB1vB,iDAGzC0/B,QAAS,CACPC,OAAQjQ,GAAiBK,oBACzB6P,IAAKlQ,GAAiBM,kBAGxB6P,WAAY,CACVF,OAAQjQ,GAAiBO,mBACzB6P,QAASpQ,GAAiBQ,oBAC1BxJ,KAAMgJ,GAAiBS,kBAGzB4P,WAAY,CACV3D,IAAK,CACHC,UAAW3M,GAAiBjqB,6BAC5B62B,eAAgB5M,GAAiBhqB,sCACjC62B,YAAa7M,GAAiB/pB,+BAC9B62B,cAAe9M,GAAiB9pB,kCAGlC62B,KAAM,CACJJ,UAAW3M,GAAiB7pB,8CAC5B02B,YAAa7M,GAAiB5pB,4CAC9B42B,qBAAsBhN,GAAiB3pB,kDACvC42B,aAAcjN,GAAiB1pB,oCAC/B42B,iBAAkBlN,GAAiBzpB,uCAGrC42B,OAAQ,CACNC,eAAgBpN,GAAiBppB,kDACjCy2B,aAAcrN,GAAiBnpB,4CAC/By2B,WAAYtN,GAAiBlpB,kCAC7By2B,UAAWvN,GAAiBjpB,qCAC5By2B,cAAexN,GAAiBhpB,yCAChCy2B,YAAazN,GAAiB/oB,uCAC9By2B,iBAAkB1N,GAAiB9oB,6CACnCy2B,YAAa3N,GAAiB7oB,wCAGhC64B,QAAS,CACPC,OAAQjQ,GAAiBU,+BACzBwP,IAAKlQ,GAAiBW,6BAGxBwP,WAAY,CACVnZ,KAAMgJ,GAAiBY,6BAGzB6N,MAAO,CACLQ,iBAAkBjP,GAAiBxpB,2CACnC04B,aAAclP,GAAiBvpB,mCAC/B04B,UAAWnP,GAAiBa,4BAC5BuO,aAAcpP,GAAiBc,+BAC/BuO,OAAQrP,GAAiBe,wBACzBuO,iBAAkBtP,GAAiBtpB,4CACnC64B,UAAWvP,GAAiBrpB,oCAG9Bi3B,KAAM,CACJC,oBAAqB7N,GAAiBxnB,iDACtCs1B,kBAAmB9N,GAAiBznB,mDACpCw1B,kBAAmB/N,GAAiB3nB,2CACpC21B,iBAAkBhO,GAAiB1nB,sCACnC21B,aAAcjO,GAAiB5nB,kCAC/B60B,aAAcjN,GAAiBtnB,yCAC/Bw0B,iBAAkBlN,GAAiBrnB,2CACnCq0B,qBAAsBhN,GAAiBvnB,uDACvCy1B,oBAAqBlO,GAAiBhnB,6DACtCm1B,uBAAwBnO,GAAiB/mB,kDACzCm1B,iBAAkBpO,GAAiB9mB,2CACnCm1B,sBAAuBrO,GAAiB7mB,iDACxCm1B,cAAetO,GAAiB5mB,wCAChCi0B,aAAcrN,GAAiB3mB,iDAGjCm1B,OAAQ,CACNX,oBAAqB7N,GAAiBrvB,sCACtCm9B,kBAAmB9N,GAAiBvvB,wCACpCs9B,kBAAmB/N,GAAiBtvB,gCACpCs9B,iBAAkBhO,GAAiBjvB,2BACnCk9B,aAAcjO,GAAiBhvB,uBAC/Bk9B,oBAAqBlO,GAAiB1wB,kDACtC6+B,uBAAwBnO,GAAiBhxB,uCACzCo/B,iBAAkBpO,GAAiBrwB,gCACnC0+B,sBAAuBrO,GAAiBvwB,sCACxC6+B,cAAetO,GAAiB9nB,6BAChCm1B,aAAcrN,GAAiB7nB,uCAInC6I,iBAAkB,CAChBgW,KAAMgJ,GAAiBgB,kBACvBoP,QAASpQ,GAAiBiB,0BAC1BgP,OAAQjQ,GAAiBkB,0BAG3BngB,cAAe,CACbuvB,QAAStQ,GAAiBmB,gBAG5BoP,SAAU,CACRC,UAAW,CACTC,mBAAoBzQ,GAAiB5oB,wCACrCs5B,kBAAmB1Q,GAAiB3oB,wCAEtCs5B,OAAQ,CACNF,mBAAoBzQ,GAAiBvoB,qCACrCi5B,kBAAmB1Q,GAAiBtoB,qCAEtCk5B,SAAU,CACRF,kBAAmB1Q,GAAiBloB,wCAIxC+4B,cAAe,CACbC,gBAAiB9Q,GAAiBpnB,iCAClCm4B,YAAa/Q,GAAiBqB,6BAC9B2P,WAAYhR,GAAiBjnB,4BAC7Bk4B,sBAAuBjR,GAAiBlnB,wCACxCq3B,WAAYnQ,GAAiBnnB,4BAC7Bq4B,eAAgBlR,GAAiBoB,mCAIrCqL,GAAsBC,IAAIyE,IAAM,CAC9BnR,GAAiBxxB,kBACjBwxB,GAAiBvxB,2BACjBuxB,GAAiBtxB,oBACjBsxB,GAAiBrxB,uBAGnB89B,GAAsBM,KAAKoE,IAAM,CAC/BnR,GAAiBpxB,mCACjBoxB,GAAiBlxB,uCACjBkxB,GAAiB/wB,yBACjB+wB,GAAiB9wB,2BACjB8wB,GAAiB7wB,kCAGnBs9B,GAAsBU,OAAOgE,IAAM,CACjCnR,GAAiB3wB,uCACjB2wB,GAAiBzwB,uBACjBywB,GAAiBnxB,0BACjBmxB,GAAiBjxB,4BACjBixB,GAAiBxwB,kCACjBwwB,GAAiBtwB,4BACjBswB,GAAiBpwB,8BACjBowB,GAAiB5wB,kCAGnBq9B,GAAsBmB,KAAKuD,IAAM,CAC/BnR,GAAiBhvB,uBACjBgvB,GAAiBvvB,wCACjBuvB,GAAiBtvB,gCACjBsvB,GAAiBlvB,4CACjBkvB,GAAiBpvB,8BACjBovB,GAAiBnvB,gCACjBmvB,GAAiBrvB,sCACjBqvB,GAAiBjvB,4BAGnB07B,GAAsB+B,OAAO2C,IAAM,CACjCnR,GAAiBhvB,uBACjBgvB,GAAiBvvB,wCACjBuvB,GAAiBtvB,gCACjBsvB,GAAiBrvB,sCACjBqvB,GAAiBjvB,2BACjBivB,GAAiB1wB,kDACjB0wB,GAAiBhxB,uCACjBgxB,GAAiBvwB,sCACjBuwB,GAAiBrwB,iCAGnB88B,GAAsB+B,OAAO4C,MAAQ,CACnCpR,GAAiBhvB,uBACjBgvB,GAAiBtvB,gCACjBsvB,GAAiB7nB,qCACjB6nB,GAAiBjvB,2BACjBivB,GAAiB1wB,kDACjB0wB,GAAiBhxB,uCACjBgxB,GAAiBvwB,sCACjBuwB,GAAiBrwB,gCACjBqwB,GAAiB9nB,8BAGnBu0B,GAAsB+C,SAAS2B,IAAM,CACnCnR,GAAiBnwB,0CACjBmwB,GAAiBlwB,8CACjBkwB,GAAiBjwB,kDACjBiwB,GAAiBhwB,8CACjBgwB,GAAiB/vB,mCACjB+vB,GAAiB9vB,mCACjB8vB,GAAiB7vB,gCACjB6vB,GAAiB5vB,kCACjB4vB,GAAiB3vB,iDACjB2vB,GAAiB1vB,gDACjB0vB,GAAiBzvB,wCACjByvB,GAAiBxvB,mCAGnBi8B,GAAsB+C,SAAS4B,MAAQ,CACrCpR,GAAiBpqB,+BACjBoqB,GAAiBjwB,kDACjBiwB,GAAiBhwB,8CACjBgwB,GAAiBnqB,yCACjBmqB,GAAiB3vB,iDACjB2vB,GAAiB1vB,gDACjB0vB,GAAiBlqB,2CACjBkqB,GAAiBlwB,8CACjBkwB,GAAiB9vB,mCACjB8vB,GAAiB7vB,gCACjB6vB,GAAiB5vB,kCACjB4vB,GAAiBxvB,mCAGnBi8B,GAAsB0D,WAAWgB,IAAM,CACrCnR,GAAiBS,iBACjBT,GAAiBQ,oBACjBR,GAAiBO,oBAGnBkM,GAAsBgC,MAAM0C,IAAM,CAChCnR,GAAiB/qB,kCACjB+qB,GAAiB9qB,kCACjB8qB,GAAiB7qB,kCACjB6qB,GAAiB5qB,kCACjB4qB,GAAiB3qB,kCACjB2qB,GAAiB1qB,kCACjB0qB,GAAiBzqB,iCACjByqB,GAAiBxqB,gCACjBwqB,GAAiBvqB,wBACjBuqB,GAAiBE,iBACjBF,GAAiBG,oBACjBH,GAAiBI,aACjBJ,GAAiBtqB,iCACjBsqB,GAAiBrqB,yBAGnB82B,GAAsBzrB,iBAAiBmwB,IAAM,CAC3CnR,GAAiBgB,kBACjBhB,GAAiBiB,0BACjBjB,GAAiBkB,0BAGnBuL,GAAsB1rB,cAAcowB,IAAM,CACxCnR,GAAiBmB,gBAGnBsL,GAAsB8D,SAASY,IAAM,CACnCnR,GAAiB5oB,wCACjB4oB,GAAiB3oB,uCAEjB2oB,GAAiBvoB,qCACjBuoB,GAAiBtoB,oCAEjBsoB,GAAiBloB,uC,oBCjWNsE,GAAuB,SAAH75C,GAQ1B,IAPL05C,EAAkB15C,EAAlB05C,mBACAI,EAAgB95C,EAAhB85C,iBACAE,EAAkBh6C,EAAlBg6C,mBACAC,EAAmBj6C,EAAnBi6C,oBACAC,EAAyBl6C,EAAzBk6C,0BACAP,EAAyB35C,EAAzB25C,0BAAyBm1B,EAAA9uE,EACzBm6C,WAAAA,OAAU,IAAA20B,OAAG/vE,EAAS+vE,EAEtB,OAAKp1B,GAAsBA,IAAuBq1B,GAAAA,GAAsB9jE,KAIpE0uC,GAA6BD,IAAuBq1B,GAAAA,GAAsBC,aAAer1B,EAA0BC,eAAiBQ,GAAAA,GAAgB60B,WAIpJv1B,IAAuBq1B,GAAAA,GAAsBG,mBAHxC,KAOJh1B,EAIDC,GAAcA,IACT,KAGF,CACLH,mBAAAA,EACAC,oBAAAA,EACAC,0BAAAA,EACAJ,iBAAAA,GAXO,KAZA,IAyBX,EAEaq1B,GAAyB,SAAH1uE,GAK5B,IAJLywC,EAASzwC,EAATywC,UACAzB,EAAahvC,EAAbgvC,cACA0B,EAAiB1wC,EAAjB0wC,kBAAiBi+B,EAAA3uE,EACjB6jE,qBAAAA,OAAoB,IAAA8K,GAAQA,EAExBC,EAAe,CAAC,EACpB,GAAIn+B,EAAU1B,aAAc,CAC1B,IAAQA,EAAiB0B,EAAjB1B,aACR6/B,EAAe,CACbv1B,iBAAkBtK,EAAasK,iBAC/BE,mBAAoBxK,EAAawK,mBACjCC,oBAAqBzK,EAAayK,oBAClCC,0BAA2B1K,EAAa0K,0BACxCP,0BAA2BnK,EAAamK,0BACxCD,mBAAoBlK,EAAakK,mBAErC,KAAO,KAAIxI,EAAU3B,QAGnB,MAAO,GAFP8/B,GAAeC,EAAAA,GAAAA,IAAWp+B,EAAU3B,QAAS2B,EAAU5pB,IAGzD,CAEA,IAAAioD,EAOIF,EANFr1B,EAAkBu1B,EAAlBv1B,mBACAC,EAAmBs1B,EAAnBt1B,oBAC2Bu1B,EAAiCD,EAA5Dr1B,0BACAP,EAAyB41B,EAAzB51B,0BACAG,EAAgBy1B,EAAhBz1B,iBACAJ,EAAkB61B,EAAlB71B,mBAGIpV,EAAe/kC,IAAAA,MAAQ4xC,EAAmB,eAC1CrtB,EAAQwgD,EAAuBpzB,EAAU1R,cAAgB0R,EAAUptB,MACnEmJ,EAASq3C,EAAuBpzB,EAAUxR,eAAiBwR,EAAUjkB,OACrEs3C,EAAa90B,GAAiB,CAClC1P,YAAajc,EACbkc,aAAc/S,EACd2S,QAAS,EACTE,QAAS,GAGL2vC,EAA+BlwE,IAAAA,IAAM+kC,GAAc,SAACkgC,GACxD,IAAMkL,EAAcnwE,IAAAA,KAAOiwE,GAAmC,SAAArhE,GAAc,OAAAA,EAAXujC,cAAkC8yB,CAAK,IACxG,OAAOkL,EAAcA,EAAY3gC,iBAAchwC,CACjD,IAEM4wE,EAA+BpwE,IAAAA,IAAM+kC,GAAc,SAACkgC,GACxD,IAAMkL,EAAcnwE,IAAAA,KAAOo6C,GAA2B,SAAAxmC,GAAc,OAAAA,EAAXu+B,cAAkC8yB,CAAK,IAChG,OAAOkL,EAAcA,EAAY3gC,aAAWnpC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAQ+9D,GAAyBY,EAAYC,IAAM,IAAE5qB,aAAcQ,GAAAA,GAAgBw1B,YACjI,IAwBA,OAtBsBrwE,IAAAA,IAAMkwE,GAA8B,SAACI,EAAqB5lD,GAC9E,IAAM6lD,EAAoBj2B,GAAqB,CAC7CH,mBAAAA,EACAI,iBAAAA,EACAE,mBAAAA,EACAC,oBAAAA,EACAC,0BAA2B21B,EAC3Bl2B,0BAA2Bg2B,EAA6B1lD,KAG1D,OAAI6lD,GACFlqE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACKkqE,GAAiB,IACpBn/B,kBAAmBg/B,EAA6B1lD,KAI7C,CACL0mB,kBAAmBg/B,EAA6B1lD,GAEpD,GAGF,EChBM8lD,IAAuBC,GAAA,IAAAz9D,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAE1BhR,GAAGmL,IAAIC,UAAYza,IACnBqP,GAAGmL,IAAIE,eAAiBza,IACxBoP,GAAGmL,IAAIG,YAAcza,IACrBmP,GAAGmL,IAAII,cAAgBza,IAGvBkP,GAAGwL,KAAKJ,UAAYra,IACpBiP,GAAGwL,KAAKF,YAAcna,IACtB6O,GAAGwL,KAAKC,qBAAuBza,IAC/BgP,GAAGwL,KAAKE,aAAeza,IACvB+O,GAAGwL,KAAKG,iBAAmBza,IAE3B8O,GAAG4L,OAAOC,eAAiBha,KAAkDt+C,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC7EhR,GAAG4L,OAAOE,aAAetZ,IACzBwN,GAAG4L,OAAOG,WAAa9Z,IACvB+N,GAAG4L,OAAOI,UAAY9Z,IACtB8N,GAAG4L,OAAOK,cAAgB1Z,IAC1ByN,GAAG4L,OAAOM,YAAc9Z,IACxB4N,GAAG4L,OAAOO,iBAAmB9Z,IAC7B2N,GAAG4L,OAAOQ,YAAc9Z,IAGxB0N,GAAGqM,KAAKC,oBAAsBnb,IAC9B6O,GAAGqM,KAAKE,kBAAoBxb,IAC5BiP,GAAGqM,KAAKG,kBAAoB5b,KAAmCr9C,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC/DhR,GAAGqM,KAAKI,iBAAmB3b,IAC3BkP,GAAGqM,KAAKK,aAAe/b,IACvBqP,GAAGqM,KAAKX,aAAeza,IACvB+O,GAAGqM,KAAKV,iBAAmBza,IAC3B8O,GAAGqM,KAAKZ,qBAAuBza,IAC/BgP,GAAGqM,KAAKM,oBAAsB9a,IAC9BmO,GAAGqM,KAAKO,uBAAyBxa,IACjC4N,GAAGqM,KAAKQ,iBAAmBva,IAC3B0N,GAAGqM,KAAKS,sBAAwBza,IAChC2N,GAAGqM,KAAKU,cAAgB7a,KAAsC3+C,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC9DhR,GAAGqM,KAAKW,MAAQjR,IAChBiE,GAAGqM,KAAKP,aAAetZ,IAGvBwN,GAAGiO,SAAS7C,UAAY3Y,IACxBuN,GAAGiO,SAASxC,qBAAuB/Y,IACnCsN,GAAGiO,SAASK,uBAAyB3b,IACrCqN,GAAGiO,SAASC,qBAAuBtb,IACnCoN,GAAGiO,SAASE,kBAAoBtb,IAChCmN,GAAGiO,SAASG,kBAAoBtb,IAChCkN,GAAGiO,SAASvC,aAAe3Y,IAC3BiN,GAAGiO,SAAStC,iBAAmB3Y,KAAwCz/C,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACvEhR,GAAGiO,SAASM,sBAAwBpb,IACpC6M,GAAGiO,SAASO,qBAAuBlb,IACnC0M,GAAGiO,SAAS3C,YAAcrY,IAC1B+M,GAAGiO,SAASI,kBAAoBnb,IAChC8M,GAAGiO,SAASlB,cAAgB7a,IAC5B8N,GAAGiO,SAASrB,uBAAyBxa,IACrC4N,GAAGiO,SAASnC,aAAetZ,IAG3BwN,GAAGyO,QAAQC,OAASpa,IACpB0L,GAAGyO,QAAQE,IAAMna,IACjBwL,GAAG4O,WAAWF,OAAS3a,KAA+BxgD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACtDhR,GAAG4O,WAAWC,QAAU/a,IACxBkM,GAAG4O,WAAWnZ,KAAO5B,IAGrBmM,GAAG8O,WAAW3D,IAAIC,UAAYhS,IAC9B4G,GAAG8O,WAAW3D,IAAIE,eAAiBhS,IACnC2G,GAAG8O,WAAW3D,IAAIG,YAAchS,IAChC0G,GAAG8O,WAAW3D,IAAII,cAAgBhS,IAGlCyG,GAAG8O,WAAWtD,KAAKJ,UAAY5R,IAC/BwG,GAAG8O,WAAWtD,KAAKF,YAAc1R,IACjCoG,GAAG8O,WAAWtD,KAAKC,qBAAuBhS,IAC1CuG,GAAG8O,WAAWtD,KAAKE,aAAehS,KAAiDnmD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACnFhR,GAAG8O,WAAWtD,KAAKG,iBAAmBhS,IAEtCqG,GAAG8O,WAAWlD,OAAOC,eAAiBha,IACtCmO,GAAG8O,WAAWlD,OAAOE,aAAetZ,IACpCwN,GAAG8O,WAAWlD,OAAOG,WAAa9Z,IAClC+N,GAAG8O,WAAWlD,OAAOI,UAAY9Z,IACjC8N,GAAG8O,WAAWlD,OAAOK,cAAgB1Z,IACrCyN,GAAG8O,WAAWlD,OAAOM,YAAc9Z,IACnC4N,GAAG8O,WAAWlD,OAAOO,iBAAmB9Z,IACxC2N,GAAG8O,WAAWlD,OAAOQ,YAAc9Z,IAGnC0N,GAAG8O,WAAWL,QAAQC,OAASlX,KAAkCjkD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACjEhR,GAAG8O,WAAWL,QAAQE,IAAMlX,IAC5BuI,GAAG8O,WAAWF,WAAWnZ,KAAOoE,IAGhCmG,GAAGxgB,cAAcuvB,QAAUxnD,IAG3By4C,GAAGvgB,iBAAiBgW,KAAOjuC,IAC3Bw4C,GAAGvgB,iBAAiBovB,QAAUpnD,IAC9Bu4C,GAAGvgB,iBAAiBivB,OAAShnD,IAG7Bs4C,GAAG8O,WAAW5B,MAAMQ,kBtB5H0C,SAAHhpC,GAAA,IAC5D6yB,EAAe7yB,EAAf6yB,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAAzH,EAAAusC,IAAA,OAEP9uE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,0CAA2C,sCAAsCjzD,UAC3HnC,EAAAA,EAAAA,KAACk8C,IAA4Bz3C,EAAAA,EAAAA,GAAA,GAAKslC,KAC9B,IsBuHL8zB,GAAG8O,WAAW5B,MAAMS,ctBzLkC,SAAH3sE,GAAA,IACpDu2D,EAAev2D,EAAfu2D,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAAnrC,EAAAorC,IAAA,OAEPjqC,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,2CAA2CjzD,UACrFnC,EAAAA,EAAAA,KAACi5D,IAA+Bx0D,EAAAA,EAAAA,GAAA,GAAKslC,KACjC,IsBoLL8zB,GAAG8O,WAAW5B,MAAMU,WtB/J4B,SAAHz5D,GAAA,IAC9CojD,EAAepjD,EAAfojD,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAAh4B,EAAAmjD,IAAA,OAEPn1D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,0CAA2C,+BAA+BjzD,UACpHnC,EAAAA,EAAAA,KAAC84D,IAAyBr0D,EAAAA,EAAAA,GAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUslC,GAAI,IAAEsd,WAAW,OACjD,IsB0JLwW,GAAG8O,WAAW5B,MAAMW,ctBvJ+B,SAAHr4D,GAAA,IACjD+hD,EAAe/hD,EAAf+hD,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAA32B,EAAA8iD,IAAA,OAEPn2D,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,0CAA2C,kCAAkCjzD,UACvHnC,EAAAA,EAAAA,KAAC+4D,IAA4Bt0D,EAAAA,EAAAA,GAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUslC,GAAI,IAAEsd,WAAW,OACpD,KsBiJoEj2C,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACzEhR,GAAG8O,WAAW5B,MAAMY,QtB/IyB,SAAHxpC,GAAA,IAC3CizB,EAAejzB,EAAfizB,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAA7H,EAAA4sC,IAAA,OAEP/uE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,0CAA2C,2BAA2BjzD,UAChHnC,EAAAA,EAAAA,KAACg5D,IAAsBv0D,EAAAA,EAAAA,GAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAUslC,GAAI,IAAEsd,WAAW,OAC9C,IsB0ILwW,GAAG8O,WAAW5B,MAAMa,kBtBpLmC,SAAHtsE,GAAA,IACrD81D,EAAe91D,EAAf81D,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAA1qC,EAAAqjD,IAAA,OAEP3iD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,2CAA2CjzD,UACrFnC,EAAAA,EAAAA,KAACk4D,IAAgCzzD,EAAAA,EAAAA,GAAA,GAAKslC,KAClC,IsB+KL8zB,GAAG8O,WAAW5B,MAAMc,WtB5KmC,SAAH7+D,GAAA,IACrDooD,EAAepoD,EAAfooD,gBACGrrB,GAAIC,EAAAA,EAAAA,GAAAh9B,EAAA+1C,IAAA,OAEP/iD,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWsiD,EAAiB,2CAA2CjzD,UACrFnC,EAAAA,EAAAA,KAACm4D,IAAgC1zD,EAAAA,EAAAA,GAAA,GAAKslC,KAClC,IsByKL8zB,GAAG8O,WAAWzC,KAAKC,oBAAsB1S,IACzCoG,GAAG8O,WAAWzC,KAAKE,kBAAoB/S,IACvCwG,GAAG8O,WAAWzC,KAAKG,kBAAoBnT,IACvC2G,GAAG8O,WAAWzC,KAAKI,iBAAmBlT,IACtCyG,GAAG8O,WAAWzC,KAAKK,aAAetT,IAClC4G,GAAG8O,WAAWzC,KAAKX,aAAehS,IAClCsG,GAAG8O,WAAWzC,KAAKV,iBAAmBhS,KAAqDpmD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC3FhR,GAAG8O,WAAWzC,KAAKZ,qBAAuBhS,IAC1CuG,GAAG8O,WAAWzC,KAAKM,oBAAsB9a,IACzCmO,GAAG8O,WAAWzC,KAAKO,uBAAyBxa,IAC5C4N,GAAG8O,WAAWzC,KAAKQ,iBAAmBva,IACtC0N,GAAG8O,WAAWzC,KAAKS,sBAAwBza,IAC3C2N,GAAG8O,WAAWzC,KAAKU,cAAgB7a,IACnC8N,GAAG8O,WAAWzC,KAAKP,aAAetZ,IAGlCwN,GAAGkN,MAAMC,yBAA2B/S,IACpC4F,GAAGkN,MAAME,yBAA2BhT,IACpC4F,GAAGkN,MAAMG,yBAA2BjT,KAAiC7mD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GACrEhR,GAAGkN,MAAMI,yBAA2BlT,IACpC4F,GAAGkN,MAAMK,yBAA2BnT,IACpC4F,GAAGkN,MAAMM,yBAA2BpT,IACpC4F,GAAGkN,MAAMO,wBAA0BrT,IACnC4F,GAAGkN,MAAMQ,iBAAmBvT,IAC5B6F,GAAGkN,MAAMS,aAAevS,IACxB4E,GAAGkN,MAAMU,UAAY3S,IACrB+E,GAAGkN,MAAMW,aAAe3S,IACxB8E,GAAGkN,MAAMY,OAAS3S,IAClB6E,GAAGkN,MAAMa,iBAAmB1T,KAAgC9mD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC5DhR,GAAGkN,MAAMc,UAAY1T,IAGrB0F,GAAGgP,SAASC,UAAUC,mBAAqBtZ,IAC3CoK,GAAGgP,SAASC,UAAUE,kBAAoBtZ,IAE1CmK,GAAGgP,SAASI,OAAOF,mBAAqBtZ,IACxCoK,GAAGgP,SAASI,OAAOD,kBAAoBtZ,IAEvCmK,GAAGgP,SAASK,SAASF,kBAAoBtZ,IAGzCmK,GAAGsP,cAAcC,gBAAkBvW,IACnCgH,GAAGsP,cAAcV,WAAa5W,IAC9BgI,GAAGsP,cAAcK,eAAiB1X,IAClC+H,GAAGsP,cAAcI,sBAAwBxX,KAAoC3kD,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,GAAAy9D,GAC7EhR,GAAGsP,cAAcE,YAAc9X,IAC/BsI,GAAGsP,cAAcG,WAAa1Y,KAGpBoa,GAA0B,SAAAlhC,GAAa,OAAI8gC,GAAwB9gC,EAAe,E,8BCjMlFyM,GAAsB0F,GAxCkB,SAArCphD,GAMT,IALLk4C,EAAal4C,EAAbk4C,cACA1uB,EAAiBxpB,EAAjBwpB,kBACA4mD,EAAiBpwE,EAAjBowE,kBACAC,EAA4BrwE,EAA5BqwE,6BACAn3D,EAAOlZ,EAAPkZ,QAEMo3D,GAAY5sE,EAAAA,EAAAA,UAAQ,WACxB,OAAI0sE,EACKA,EAAkBl4B,GAEpB,IACT,GAAG,CAACk4B,EAAmBl4B,IAEjBq4B,GAAyB7sE,EAAAA,EAAAA,UAAQ,WAgBrC,OAfYnE,IAAAA,IAAM24C,GAAe,SAACW,EAAW5uB,GAC3C,IAAAxpB,EAA2Co4C,GAAa,CAAC,EAAjDnI,EAAajwC,EAAbiwC,cAAepb,EAAM70B,EAAN60B,OAAW4V,GAAIC,EAAAA,EAAAA,GAAA1qC,EAAA2qC,IACtCj9B,EAA0CuiC,GAAiB,CAAC,EAApDzB,EAAa9gC,EAAb8gC,cAAegwB,EAAc9wD,EAAd8wD,eACjBuR,EAAuBL,GAAwBlhC,GACrD,GAAIuhC,EAAsB,CAExB,IAAIC,EAAe53B,EACnB,IAAKomB,IAAmB1/D,IAAAA,QAAU+1B,GAAS,CACzC,IAAM3F,EAAgB80C,GAA6BnvC,IAAW,CAAC,EAC/Dm7C,GAAY7qE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAK8qC,cAAAA,GAAkB/gB,GAAkBub,EACvD,CACA,OAAO1hB,EAAkBinD,EAAcD,EAAsBvmD,EAC/D,CACA,OAAO,IACT,GAEF,GAAG,CAACT,EAAmB0uB,IAEvB,OAAQ34C,IAAAA,QAAUgxE,GAIdD,GAHFnvE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQw3D,6BAA8BL,GAA8B/sE,SAC5FitE,GAGP,IC/D4C,WAAC,MAA6C,CACxFG,6BAA8B,CAC5BnsE,QAAS,QAEZ,GDgEC,CAAEk9C,cAAe,wB,8BEAN7F,GAAiCwF,GA1ChB,SAAHphD,GAOpB,IANLyuD,EAAazuD,EAAbyuD,cACAjlC,EAAiBxpB,EAAjBwpB,kBACA4mD,EAAiBpwE,EAAjBowE,kBACAO,EAAwB3wE,EAAxB2wE,yBAAwBC,EAAA5wE,EACxB6wE,aAAAA,OAAY,IAAAD,GAAOA,EACnB13D,EAAOlZ,EAAPkZ,QAEMo3D,GAAY5sE,EAAAA,EAAAA,UAAQ,WACxB,OAAI0sE,EACKA,EAAkB3hB,GAEpB,IACT,GAAG,CAAC2hB,EAAmB3hB,IAEjBqiB,GAAqBptE,EAAAA,EAAAA,UAAQ,WACjC,IAAAjD,EAA2CguD,GAAiB,CAAC,EAArD/d,EAAajwC,EAAbiwC,cAAepb,EAAM70B,EAAN60B,OAAW4V,GAAIC,EAAAA,EAAAA,GAAA1qC,EAAA2qC,IACtCj9B,EAAkDuiC,GAAiB,CAAC,EAA5DzB,EAAa9gC,EAAb8gC,cAAa8hC,EAAA5iE,EAAE8wD,eAAAA,OAAc,IAAA8R,GAAQA,EACvCP,EAAuBL,GAAwBlhC,GACrD,GAAIuhC,EAAsB,CAExB,IAAKvR,IAAmB1/D,IAAAA,QAAU+1B,GAAS,CACzC,IAAM3F,EAAgB80C,GAA6BnvC,IAAW,CAAC,EACzDm7C,GAAY7qE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAK8qC,cAAAA,GAAkB/gB,GAAkBub,GAC3D,OAAO1hB,EAAkBinD,EAAcD,EACzC,CACA,OAAOhnD,EAAkBilC,EAAe+hB,EAC1C,CACA,OAAO,IACT,GAAG,CAAChnD,EAAmBilC,IAEvB,OAAOoiB,GACL1vE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWwO,IAAWiF,EAAQ83D,yBAA0BL,EAA0B,oBAAoBrtE,SACxGwtE,GAAsBR,KAGzBnvE,EAAAA,EAAAA,KAAA8vE,EAAAA,SAAA,CAAA3tE,SACGwtE,GAAsBR,GAG7B,IClEuD,WAAC,MAA6C,CACnGU,yBAA0B,CAC1B,EACD,GDoEC,CAAEvvB,cAAe,mC,4HElEbyvB,GAAU,CACdC,QAAS,YAWEC,GAAiB,SAAC5rE,GAC7B,IAAM4kB,GAAc5mB,EAAAA,EAAAA,QAAO,MAIzBooB,GAKEpmB,EAPFsmB,SAOEtmB,EANF2kB,WAME3kB,EALFomB,aACAtoB,EAIEkC,EAJFlC,SACA+tE,EAGE7rE,EAHF6rE,iBACAC,EAEE9rE,EAFF8rE,yBACGpmC,GAAIC,EAAAA,EAAAA,GACL3lC,EAAK4lC,IAET39B,GAAgDC,EAAAA,EAAAA,UAAS,MAAKC,GAAAC,EAAAA,GAAAA,GAAAH,EAAA,GAAvD8jE,EAAgB5jE,EAAA,GAAE6jE,EAAmB7jE,EAAA,IAE5ChN,EAAAA,EAAAA,YAAU,WACH4wE,GACHC,EAAoBpnD,EAAYnmB,QAEpC,GAAG,CAACstE,IAEJ,IAAAE,GAA8C/tE,EAAAA,EAAAA,UAAQ,WACpD,OAAI6tE,EACKA,EAAiBG,gBAAc9rE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAIJ,GAAK,IAAE0rE,QAAAA,MAE9C,MAACnyE,OAAWA,EACrB,GAAG,CAACwyE,EAAkB/rE,IAAOmsE,GAAA/jE,EAAAA,GAAAA,GAAA6jE,EAAA,GALtBG,EAAgBD,EAAA,GAAEE,EAAiBF,EAAA,GAO1C,OACEvtE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWq1D,IAAW,mBAAoBwW,GAA0BhuE,SAAA,EACvEnC,EAAAA,EAAAA,KAAC2wE,GAAAA,GAAUlsE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACTxE,IAAKgpB,EACLwB,YAAaA,EACbE,UAAU,EACV3B,YAAY,GACR+gB,GAAI,IAAA5nC,SAEPA,MAEHc,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,0CAAyCnC,SAAA,CAErDsuE,EACAL,EAAmBA,EAAiBQ,iBAAiBzuE,EAAUsoB,EAAaslD,IAAW,KACvFW,EAECR,GAAmBjtE,EAAAA,EAAAA,MAAA6sE,EAAAA,SAAA,CAAA3tE,SAAA,CAAE,IAAE+tE,EAAiB,OAAO,UAKzD,EAWAD,GAAe/vE,cAAYuE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEtBksE,GAAAA,EAAWzwE,cAAY,IAE1ByqB,UAAU,EACV3B,YAAY,EACZ7mB,SAAU,KACV+tE,iBAAkB,KAClBC,yBAA0B,OAG5BF,GAAeY,QAAUF,GAAAA,EAAWE,QACpCZ,GAAellD,KAAO4lD,GAAAA,EAAW5lD,K,gEC1EpB8e,GAAiB,SAAHhrC,GAkBpB,IAjBL4rB,EAAW5rB,EAAX4rB,YACAqmD,EAAcjyE,EAAdiyE,eACA/4D,EAAOlZ,EAAPkZ,QACAg5D,EAA2BlyE,EAA3BkyE,4BACAC,EAA0BnyE,EAA1BmyE,2BACAC,EAA4BpyE,EAA5BoyE,6BACAnnC,EAAgBjrC,EAAhBirC,iBACAonC,EAAiBryE,EAAjBqyE,kBACAxxE,EAAIb,EAAJa,KACAuvE,EAAiBpwE,EAAjBowE,kBACA5mD,EAAiBxpB,EAAjBwpB,kBACA8oD,EAAmBtyE,EAAnBsyE,oBACApX,EAAcl7D,EAAdk7D,eACAhjB,EAAal4C,EAAbk4C,cACAq6B,EAAoBvyE,EAApBuyE,qBACAC,EAAiBxyE,EAAjBwyE,kBACAC,EAA8BzyE,EAA9ByyE,+BAEAhlE,GAA0BC,EAAAA,EAAAA,UAAS,GAAEC,GAAAC,EAAAA,GAAAA,GAAAH,EAAA,GAA9Bwc,EAAKtc,EAAA,GAAEuc,EAAQvc,EAAA,GAGhB+kE,EAAkBnzE,IAAAA,YAAcqsB,GAA6B3B,EAAd2B,EAC/C+mD,EAAcV,GAAkB/nD,EAEtC3W,GAAkC7F,EAAAA,EAAAA,UAAS,QAAO8F,GAAA5F,EAAAA,GAAAA,GAAA2F,EAAA,GAA3CqX,EAASpX,EAAA,GAAEo/D,EAAYp/D,EAAA,GAC9BE,GAAwBhG,EAAAA,EAAAA,UAASu9B,GAAoBonC,GAAkB1+D,GAAA/F,EAAAA,GAAAA,GAAA8F,EAAA,GAAhEm/D,EAAIl/D,EAAA,GAAEm/D,EAAOn/D,EAAA,GACpBG,GAA4DpG,EAAAA,EAAAA,WAAS,GAAMqG,GAAAnG,EAAAA,GAAAA,GAAAkG,EAAA,GAApEi/D,EAAsBh/D,EAAA,GAAEi/D,EAAyBj/D,EAAA,GAElD0W,GAAqBjnB,EAAAA,EAAAA,QAAO,MAE5B8sE,GAAY5sE,EAAAA,EAAAA,UAAQ,WACxB,OAAI0sE,EACKA,EAAkBl4B,GAEpB,IACT,GAAG,CAACk4B,EAAmBl4B,IAEjBq4B,GAAyB7sE,EAAAA,EAAAA,UAAQ,WAgBrC,OAfYI,EAAAA,EAAAA,KAAIo0C,GAAe,SAACW,EAAWmnB,GACzC,IAAAv/D,EAA2Co4C,GAAa,CAAC,EAAjDnI,EAAajwC,EAAbiwC,cAAepb,EAAM70B,EAAN60B,OAAW4V,GAAIC,EAAAA,EAAAA,GAAA1qC,EAAA2qC,IACtCj9B,EAA0CuiC,GAAiB,CAAC,EAApDzB,EAAa9gC,EAAb8gC,cAAegwB,EAAc9wD,EAAd8wD,eACjBuR,EAAuBL,GAAwBlhC,GACrD,GAAIuhC,EAAsB,CAExB,IAAIC,EAAe53B,EACnB,IAAKomB,KAAmBj7D,EAAAA,EAAAA,SAAQsxB,GAAS,CACvC,IAAM3F,EAAgB80C,GAA6BnvC,IAAW,CAAC,EAC/Dm7C,GAAY7qE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAK8qC,cAAAA,GAAkB/gB,GAAkBub,EACvD,CACA,MAAO,CAAC1hB,EAAkBinD,EAAcD,EAAsBxQ,GAAInnB,EACpE,CACA,MAAO,CAAC,KAAMA,EAChB,GAEF,GAAG,CAACrvB,EAAmB0uB,IAEjB+6B,GAAyBzyE,EAAAA,EAAAA,cAAY,WACzC,GAAI06D,EAAgB,CAClB,IAAMriB,EAAYX,EAAgBA,EAAcw6B,GAAkB,KAClEv/D,EAA2C0lC,GAAa,CAAC,EAAjDnI,EAAav9B,EAAbu9B,cAAepb,EAAMniB,EAANmiB,OAAW4V,GAAIC,EAAAA,EAAAA,GAAAh4B,EAAA2wC,IAElC2sB,EAAe53B,EACnB,KAF2BnI,GAAiB,CAAC,GAArCuuB,kBAEgBj7D,EAAAA,EAAAA,SAAQsxB,GAAS,CACvC,IAAM3F,EAAgB80C,GAA6BnvC,IAAW,CAAC,EAC/Dm7C,GAAY7qE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAK8qC,cAAAA,GAAkB/gB,GAAkBub,EACvD,CACA,OAAOgwB,EAAeuV,EAAciC,EACtC,CACA,OAAO,IACT,GAAG,CAACA,EAAgBxX,EAAgBhjB,IAE9BnuB,GAA0BvpB,EAAAA,EAAAA,cAAY,WACtCiqB,EAAmBxmB,UACrB4mB,aAAaJ,EAAmBxmB,SAChCwmB,EAAmBxmB,QAAU,KAEjC,GAAG,IAEGonC,GAAa7qC,EAAAA,EAAAA,cAAY,SAAC0yE,GAC9B,GAAKL,KAAQ7uE,EAAAA,EAAAA,SAAQk0C,GAArB,CAKA86B,GAA0B,GAE1B,IAAM1oD,EAAe4tB,EAAcp5C,OAC/B0rB,EAAY0oD,EAAe,EAC3B1oD,GAAaF,IACfE,EAAY,GAGdC,EAAmBxmB,QAAUymB,YAAW,WACtCioD,EAAYnoD,GACZooD,EAAa,QACbvnC,EAAW7gB,EACb,GAnGuB,IAqFvB,CAeF,GAAG,CAACqoD,EAAMF,EAAaz6B,IAEjB76B,GAAQ7c,EAAAA,EAAAA,cAAY,WACxBoyE,EAAa,QACbE,GAAQ,EACV,GAAG,IAEGr1D,GAAOjd,EAAAA,EAAAA,cAAY,WACnBqyE,IACFC,GAAQ,GACR/oD,IACAipD,GAA0B,GAE9B,GAAG,CAACjpD,EAAyB8oD,IAEvBhnD,GAAWrrB,EAAAA,EAAAA,cAAY,SAACuqB,EAAe1F,GAC3C5H,IACAk1D,EAAY5nD,GAAiB,GAC7B6nD,EAAavtD,EAAEuF,UACjB,GAAG,CAAC+nD,EAAal1D,KAGjB9c,EAAAA,EAAAA,YAAU,WACJkyE,IAASE,GACX1nC,EAAWqnC,EAEf,GAAG,CAACrnC,EAAYwnC,EAAME,EAAwBL,KAE9C/xE,EAAAA,EAAAA,YAAU,WACJ2xE,GACFA,EAAoBI,EAExB,GAAG,CAACA,EAAgBJ,KAEpB3xE,EAAAA,EAAAA,YAAU,kBAAM,WACdopB,GACF,CAAC,GAAE,CAACA,KAEJppB,EAAAA,EAAAA,YAAU,WACJu3C,GAAiBA,EAAcp5C,OAAS,GAAK4zE,GAAkBx6B,EAAcp5C,QAC/EmzE,EAAe,EAEnB,GAAG,CAACS,EAAgBx6B,EAAe+5B,IAEnC,IAAMkB,EAAoBX,EAAoBpB,GAAiBzlD,GAAAA,SACzDynD,GAAoB1vE,EAAAA,EAAAA,UACxB,kBAAO8uE,EAAoB,CACzBlB,yBAA0Br9D,IAAWw+D,EAAgCv5D,EAAQm6D,wBAC3E,CAAC,CAAC,GACN,CAACn6D,EAAQm6D,sBAAuBZ,EAAgCD,IAGlE,OAAQxuE,EAAAA,EAAAA,SAAQusE,GAmCZD,GAlCFlsE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWwO,IAAWiF,EAAQo6D,wBAAyBpB,EAA6B,2CAA2C5uE,SAAA,EAClInC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,iBAAgBnC,SAC5B2vE,OAEH9xE,EAAAA,EAAAA,KAACgyE,GAAiBvtE,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAChBgmB,YAAa8mD,EAAiBx6B,EAAcp5C,OAAS4zE,EAAiB,EACtE9nD,UAAWA,EACXkB,UAAU,EACVD,SAAUA,EACVwlD,iBAAkBpmC,GAAmB9pC,EAAAA,EAAAA,KAACoyE,GAAAA,EAAgB,CACpDC,QAAS3yE,EACT4yE,UAAWZ,EACXa,KAAMr2D,EACNs2D,MAAOl2D,EACP8vC,oBAAqB6kB,GAAgCl5D,EAAQ06D,mBAC1D,KACL7nD,UAAWlrB,EAAKsH,UAAUC,mBAC1B4jB,UAAWnrB,EAAKsH,UAAUC,uBAC1B3C,UAAWwO,KAAYs+D,GAAwBr5D,EAAQ26D,kBAAmB1B,GAA8Bj5D,EAAQ46D,yBAA0B,yBACtIV,GAAiB,IAAA9vE,SAGnBitE,EAAuBzsE,KAAI,SAAAw/B,EAAkCgP,GAAS,IAAD5O,GAAA91B,EAAAA,GAAAA,GAAA01B,EAAA,GAAxCwtC,EAAkBptC,EAAA,GAC7CsB,EADwDtB,EAAA,IACE,CAAC,EAAnDgN,EAAa1L,EAAb0L,cAAeye,EAAiBnqB,EAAjBmqB,kBACvB,OAEEhuD,EAAAA,EAAAA,KAACwqB,GAAAA,SAASO,KAAI,CAAA5oB,SACXwtE,GAAkB,OAAAtuE,OADMkuC,EAAgBA,EAAczB,cAAgBqD,EAAG,KAAA9vC,OAAI2sD,EAAiB,KAAA3sD,OAAI8vC,GAIzG,SAKV,EA6BAtH,GAAe3pC,aAAe,CAC5BuqB,iBAAa7sB,EACbkzE,oBAAgBlzE,EAChBmzE,4BAA6B,KAC7BC,2BAA4B,KAC5BC,6BAA8B,KAC9BnnC,kBAAkB,EAClBonC,mBAAmB,EACnBjC,kBAAmB,KACnBkC,oBAAqB,KACrBpX,eAAgB,KAChBqX,sBAAsB,EACtBC,mBAAmB,EACnBC,+BAAgC,KAChCv5D,QAAS,CAAC,GAGL,IAAMsyB,GAA0B4V,EAAqBpW,ICvPrB,SAAC3nB,GAAU,IAAArjB,EAAAzB,UAAAO,OAAA,QAAAC,IAAAR,UAAA,GAAAA,UAAA,GAA2D,CAAC,EAACw9D,EAAA/7D,EAAzDujB,QAAAA,OAAO,IAAAw4C,EAAG,CAAC,EAACA,EAAAgY,EAAA/zE,EAAEysB,eAAAA,OAAc,IAAAsnD,EAAG,oBAAmBA,EAAA,MAAa,CACnHT,wBAAyB,CACvBhvE,SAAU,WACVwf,MAAO,QAGT+vD,kBAAmB,CACjBvvE,SAAU,WAEV,oBAAqB,CACnBqoB,cAAe,IAOjB,2BAA4B,CAC1BroB,SAAU,WACVwf,MAAO,OAEP,OAAQ,CACNgJ,WAAY,OACZ1I,OAAQ,oBACR2I,aAAc,GACdC,OAAQ,aACRC,OAAQ,GACRnJ,MAAO,IAGT,cAAe,CACbgJ,WAAYvJ,EAAQiB,aACpBJ,OAAO,aAAD5hB,OAAe+gB,EAAQiB,gBAIjC,uBAAwB,CACtBjgB,QAAS,QAGX,sBAAuB,CACrBggB,MAAOhB,EAAQiB,aACflgB,SAAU,WACV4oB,KAAM,OACNC,IAAK,OACLC,MAAO,EACPP,OAAQ,EACRI,OAAQ,GACRnJ,MAAO,GACPkJ,OAAQ,YACRK,WAAY,OACZP,WAAY,QAEZ,UAAW,CACTQ,QAAQ,aAAD9qB,OAAe+gB,EAAQgK,mBAGhC,SAAU,CACRjpB,SAAU,YAGZ,UAAW,CACTA,SAAU,YAGZ,wDAAyD,CACvDkpB,WAAYf,EACZnoB,SAAU,WACV6oB,IAAK,OACLC,MAAO,OACPP,OAAQ,OACRK,KAAM,OACNF,OAAQ,EACR1I,SAAU,GACVmJ,WAAY,EACZC,cAAe,KAIrBomD,yBAA0B,CACxB,2BAA4B,CAC1BjnD,OAAQ,EACRK,KAAM,GACNF,OAAQ,aAEV,2BAA4B,CAC1BE,MAAO,EACPL,QAAS,GAEX,4BAA6B,CAC3BK,KAAM,IACNL,QAAS,IAGb+mD,iBAAkB,CAChBtvE,SAAU,WACV4oB,KAAM,IACNL,OAAQ,KACRtoB,QAAS,qBAET,SAAU,CACRggB,MAAOhB,EAAQiB,eAInB6uD,sBAAuB,CACrB,6CAA8C,CAC5C9uE,QAAS,OACTurB,cAAe,MACf7a,WAAY,SACZ3Q,SAAU,WACVuoB,OAAQ,EACRG,OAAQ,CAAC,GAAI,IAEb,2BAA4B,CAC1B1oB,SAAU,sBACV6oB,IAAK,mBACLD,KAAM,mBACNE,MAAO,mBACPP,OAAQ,iBACRG,OAAQ,8BACR/I,QAAS,mBACTH,MAAO,OAEP,OAAQ,CACNgJ,WAAY,OACZ1I,OAAQ,oBACR2I,aAAc,GACdC,OAAQ,aACRC,OAAQ,GACRnJ,MAAO,IAET,cAAe,CACbgJ,WAAYvJ,EAAQiB,aACpBJ,OAAO,aAAD5hB,OAAe+gB,EAAQiB,gBAIjC,sBAAuB,CACrBlgB,SAAU,sBACV0oB,OAAQ,iBACRF,WAAY,QACZK,IAAK,mBACLD,KAAM,mBACNE,MAAO,mBACPP,OAAQ,mBACRtI,MAAOhB,EAAQiB,aAEfyI,OAAQ,GACRnJ,MAAO,GACPuJ,WAAY,OAEZ,UAAW,CACTC,QAAQ,aAAD9qB,OAAe+gB,EAAQgK,mBAGhC,wDAAyD,CACvDC,WAAYf,EACZnoB,SAAU,WACV6oB,IAAK,OACLC,MAAO,OACPP,OAAQ,OACRK,KAAM,OACNF,OAAQ,EACR1I,SAAU,GACVmJ,WAAY,EACZC,cAAe,IAInB,sBAAuB,CACrBppB,SAAU,sBACVC,QAAS,qBACT2oB,KAAM,mBACNC,IAAK,mBACLN,OAAQ,oBAIf,GDoEoG,CAAE40B,cAAe,4BAEzG3F,GAAkC9Q,GAKlCU,GAA4B,SAAClmC,GACxC,IAAQwuE,EAAYxuE,EAAZwuE,QACFC,GAAkBzzE,EAAAA,EAAAA,cACtB,SAAA2wD,GAAM,OAAIhwD,EAAAA,EAAAA,KAACqqC,IAAuB5lC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKurD,GAAM,IAAE6iB,QAASA,IAAW,GACnE,CAACA,IAEH,OAAO7yE,EAAAA,EAAAA,KAAC8yE,GAAeruE,EAAAA,EAAAA,GAAA,GAAKJ,GAC9B,EE9PM06C,GAA6B,SAAHlgD,GAAA,IAC9BkZ,EAAOlZ,EAAPkZ,QACAg7D,EAAal0E,EAAbk0E,cAAa,OAEb/yE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQi7D,oCAAoC7wE,SACzD4wE,EAAcpwE,KAAI,SAAArD,GAAA,IAAG2zE,EAAQ3zE,EAAR2zE,SAAUC,EAAK5zE,EAAL4zE,MAAK,OACnCjwE,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,yBAAwBnC,SAAA,CACpC8wE,IAAYjzE,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,WAAUnC,SAAA,GAAAd,OAAK4xE,EAAQ,QACnDC,IAASlzE,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,QAAOnC,SAAE+wE,EAAMC,KAAK,UAC1C,KAEJ,EAaRp0B,GAA2B7+C,aAAe,CACxC6X,QAAS,CAAC,EACVg7D,cAAe,IAGV,IAAM53B,GAAsC8E,EACjDlB,ICkDiD,WAAH,MAAU,CACxDi0B,oCAAqC,CACnC,cAAe,CACb5vD,MAAO,UACPiJ,WAAY,SACZ5I,WAAY,MACZ6I,WAAY,QAEd,WAAY,CACVlJ,MAAO,UACPiJ,WAAY,SACZC,WAAY,SAGjB,GD/DsC,CAAEg0B,cAAe,wCE/BlDrB,GAAmB,SAAHpgD,GAAA,IACpBkZ,EAAOlZ,EAAPkZ,QACAg7D,EAAal0E,EAAbk0E,cAAa,OAEb/yE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQq7D,0BAA0BjxE,UAChDnC,EAAAA,EAAAA,KAAA,QAAAmC,SAAO4wE,EAAcpwE,KAAI,SAAArD,GAAO,OAAAA,EAAJg0D,IAAe,IAAE6f,KAAK,aAC9C,EAYRl0B,GAAiB/+C,aAAe,CAC9B6X,QAAS,CAAC,EACVg7D,cAAe,IAGV,IAAM/zB,GAA4BiB,EACvChB,ID/BuC,WAAH,MAAU,CAC9Cm0B,0BAA2B,CACzBhwD,MAAO,UACPiJ,WAAY,SACZC,WAAY,QAEf,GC0B4B,CAAEg0B,cAAe,8BCzBxCnB,GAAiB,SAAHtgD,GAAA,IAClBkZ,EAAOlZ,EAAPkZ,QACAg7D,EAAal0E,EAAbk0E,cAAa,OAEb/yE,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQs7D,wBAAwBlxE,SAE5C4wE,EAAcpwE,KAAI,SAAArD,EAEfwpB,GAAK,IADNiG,EAAMzvB,EAANyvB,OAAQkL,EAAW36B,EAAX26B,YAAaq5C,EAAQh0E,EAARg0E,SAAUxzB,EAAKxgD,EAALwgD,MAAOjmC,EAASva,EAATua,UAAS,OAE/C5W,EAAAA,EAAAA,MAAC5C,EAAAA,SAAc,CAAA8B,SAAA,EACbnC,EAAAA,EAAAA,KAAA,KAAG89B,KAAMjkB,EAAU,GAAG1X,SAAE4sB,KACxB/uB,EAAAA,EAAAA,KAAA,QAAAmC,SAAA,MAAAd,OAAa44B,EAAW,QACxBj6B,EAAAA,EAAAA,KAAA,OAAAmC,SAAA,GAAAd,OAASiyE,EAAWxzB,KACnBh3B,EAAQiqD,EAAcp1E,OAAS,IAAKqC,EAAAA,EAAAA,KAAA,QAAAmC,SAAO,aAC7B,KAGjB,EAgBRg9C,GAAej/C,aAAe,CAC5B6X,QAAS,CAAC,EACVg7D,cAAe,IAGV,IAAM7zB,GAA0Be,EACrCd,IFtCqC,WAAH,MAAU,CAC5Ck0B,wBAAyB,CACvBjwD,MAAO,UACPiJ,WAAY,SACZC,WAAY,OACZ,MAAO,CACLlJ,MAAO,WAET,QAAS,CACPhgB,QAAS,iBAGd,GE2B0B,CAAEk9C,cAAe,4B,wCCvCtCjB,GAAqB,SAAHxgD,GAAA,IACtBkZ,EAAOlZ,EAAPkZ,QACa,OAAAlZ,EAAbk0E,cAEcpwE,KAAI,SAAArD,GAAA,IAChBqa,EAAQra,EAARqa,SAAU5H,EAAazS,EAAbyS,cAAewhE,EAAaj0E,EAAbi0E,cAAe1+D,EAAevV,EAAfuV,gBAAiB2+D,EAASl0E,EAATk0E,UAAWC,EAAWn0E,EAAXm0E,YAAaC,EAAkBp0E,EAAlBo0E,mBAAoBC,EAAYr0E,EAAZq0E,aAAY,OAEjH1wE,EAAAA,EAAAA,MAAA,OAAKqB,UAAWyT,EAAQ67D,4BAA4BzxE,SAAA,EAClDc,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,iBAAgBnC,SAAA,CAC5BsxE,IAAezzE,EAAAA,EAAAA,KAAA,QAAAmC,SAAA,GAAAd,OAAUsY,EAAQ,SAClC3Z,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,WAAUnC,SAAE4P,KAC5B/R,EAAAA,EAAAA,KAAA,QAAAmC,SAAA,SAAAd,OAAakyE,KACZG,IAAsB1zE,EAAAA,EAAAA,KAAA,QAAAmC,SAAA,SAAAd,OAAawT,KACnC8+D,IAAgB3zE,EAAAA,EAAAA,KAAA,QAAAmC,SAAA,SAAAd,OAAamyE,SAEhCvwE,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,iBAAgBnC,SAAA,EAC7BnC,EAAAA,EAAAA,KAAA,QAAAmC,SAAM,SACNnC,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,eAAcnC,UAC1ByV,EAAAA,GAAAA,GAAIiuD,MAAM,IAAIljE,KAAI,kBACjB3C,EAAAA,EAAAA,KAAA,OAAKk3B,IAAK28C,GAAM18C,IAAI,QAAS,OAGjCn3B,EAAAA,EAAAA,KAAA,QAAMsE,UAAU,UAASnC,SAAC,yBAExB,GACN,EAmBJk9C,GAAmBn/C,aAAe,CAChC6X,QAAS,CAAC,EACVg7D,cAAe,IAGV,IAAM3zB,GAA8Ba,EACzCZ,IHpCyC,WAAH,MAAU,CAChDu0B,4BAA6B,CAC3BxwE,QAAS,OACTurB,cAAe,SACf,oBAAqB,CACnB,SAAU,CACRvL,MAAO,UACPiJ,WAAY,SACZC,WAAY,QAEd,cAAe,CACblJ,MAAO,YAGX,oBAAqB,CACnBhgB,QAAS,OACT0Q,WAAY,SACZqf,IAAK,MACL,SAAU,CACR/P,MAAO,UACPiJ,WAAY,SACZ5I,WAAY,MACZ6I,WAAY,QAEd,kBAAmB,CACjBtJ,UAAW,OACX5f,QAAS,QAEX,aAAc,CACZggB,MAAO,UACPK,WAAY,SAInB,GGG8B,CAAE68B,cAAe,gCCpD1Cf,GAAoB,SAAH1gD,GA6BrB,IA1BK,IAFLkZ,EAAOlZ,EAAPkZ,QACAg7D,EAAal0E,EAAbk0E,cAEMe,GAAez0E,EAAAA,EAAAA,cAAY,SAAAC,GAE1B,IACDy0E,EAFJC,EAAW10E,EAAX00E,YAAaC,EAAY30E,EAAZ20E,aAAcC,EAAY50E,EAAZ40E,aAAcC,EAAc70E,EAAd60E,eAAgBt6D,EAASva,EAATua,UAGzD,GAAIs6D,EACFJ,EAAUI,OACL,GAAIt6D,GAAaA,EAAUlc,OAAS,EAAG,CAC3Co2E,GAD2CtnE,EAAAA,GAAAA,GAChCoN,EAAS,GAAb,EACV,MACEk6D,EAAU,GAMZ,OAJIA,GAAuC,IAA5BA,EAAQK,QAAQ,UAC7BL,EAAO,UAAA1yE,OAAa0yE,KAIpB9wE,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,gBAAenC,SAAA,EAC5BnC,EAAAA,EAAAA,KAAA,KAAGsE,UAAU,QAAQw5B,KAAMi2C,EAAShnE,OAAO,SAAS8wB,IAAI,aAAY17B,SAAE6xE,IACrEC,IAAgBj0E,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAE8xE,IACvCC,IAAgBl0E,EAAAA,EAAAA,KAAA,OAAKsE,UAAU,OAAMnC,SAAE+xE,MAG9C,GAAG,IAEGG,EAAQ,GACLxV,EAAI,EAAGA,EAAIkU,EAAcp1E,OAAQkhE,GAAK,EAAG,CAChD,IAAM/7D,EAAUiwE,EAAclU,GACxByV,EAAOzV,EAAI,EAAIkU,EAAcp1E,OAASo1E,EAAclU,EAAI,GAAK,KACnEwV,EAAMj+D,MACJnT,EAAAA,EAAAA,MAAA,OAAKqB,UAAU,eAAcnC,SAAA,CAC1B2xE,EAAahxE,GACbwxE,GAAQR,EAAaQ,MAG5B,CAEA,OACEt0E,EAAAA,EAAAA,KAAA,OAAKsE,UAAWyT,EAAQw8D,2BAA2BpyE,SAChDkyE,GAGP,EAeA90B,GAAkBr/C,aAAe,CAC/B6X,QAAS,CAAC,EACVg7D,cAAe,IAGV,IAAMzzB,GAA6BW,EACxCV,IJfwC,WAAH,MAAU,CAC/Cg1B,2BAA4B,CAC1BnxE,QAAS,OACTurB,cAAe,SACf,kBAAmB,CACjBvrB,QAAS,OACT+vB,IAAK,OACLnQ,UAAW,OACX,mBAAoB,CAClBL,MAAO,QACPvf,QAAS,OACTurB,cAAe,SACfwE,IAAK,MACL,WAAY,CACV/P,MAAO,UACPiJ,WAAY,SACZlJ,SAAU,OACVmJ,WAAY,QAEd,UAAW,CACTlJ,MAAO,OACPiJ,WAAY,SACZC,WAAY,WAKrB,GIX6B,CAAEg0B,cAAe,8B,wKC1ElCstB,EAAwB,CACnC9jE,KAAM,OACN0qE,aAAc,eAEd3G,YAAa,cACbE,mBAAoB,sBAGT90B,EAAkB,CAC7BC,WAAY,aACZu1B,WAAY,aACZX,UAAW,YACX2G,QAAS,WCTE77B,EAAsB,SAACL,EAAoBrhB,EAAKw9C,EAAc77B,EAAoBC,GAC7F,IAAKP,GAAsBA,IAAuBq1B,EAAsB9jE,KAEtE,OAAO,KAGT,IAAM6qE,GAAYv2E,IAAAA,QAAU84B,IAAQA,EAAIk9C,QAAQ,KAAO,EACjDQ,EAAeD,EAAWz9C,EAAG,GAAA71B,OAAM61B,EAAG,KACxC29C,EAAc,GAClB,GAAIt8B,IAAuBq1B,EAAsBC,YAC/CgH,EAAcF,EAAW,WAAa,eACjC,IAAIp8B,IAAuBq1B,EAAsB4G,cACpDj8B,IAAuBq1B,EAAsBG,sBAE/C8G,EAAW,GAAAxzE,OAAMszE,EAAW,IAAM,GAAE,MAAAtzE,OAAKw3C,EAAkB,OAAAx3C,OAAMy3C,GAC7D47B,GAAc,CAChB,IAAMvjC,EAAMujC,EAAaN,QAAQ,KACjCS,GAAW,QAAAxzE,OAAYqzE,EAAa1N,MAAM71B,EAAM,GAClD,CAGF,MAAM,GAAN9vC,OAAUuzE,GAAYvzE,OAAGwzE,EAC3B,EAEa1G,EAAa,SAAC//B,EAASgC,GAClC,IAAKhC,IAAYgC,EACf,MAAO,CAAC,EAEV,IACE,IAAM0kC,EAAanrE,KAAKorE,MAAM3mC,GACxBmK,EAAqBu8B,EAAWE,mBAChCn8B,EAAqBN,IAAuBq1B,EAAsBC,YAAciH,EAAWG,eAAiBH,EAAWI,kBACvHp8B,EAAsBP,IAAuBq1B,EAAsBC,YAAciH,EAAWK,gBAAkBL,EAAWM,mBACzHV,EAAeI,EAAWO,aAC1Bt8B,EAA4B+7B,EAAWQ,iBAAmBl3E,IAAAA,IAAM02E,EAAWQ,kBAAkB,SAAAz2E,GAAA,IAAGy8B,EAAWz8B,EAAXy8B,YAA0Bi6C,EAAE12E,EAAf0vE,YAAW,MAAY,CACxIh+B,YAAajV,EACbsS,YAAa,CACX/O,aAAc02C,EAAGC,aAAc52C,YAAa22C,EAAGE,YAAah3C,QAAS82C,EAAGG,QAAS/2C,QAAS42C,EAAGI,SAEhG,IAAK,KACAC,EAAer9B,IAAuBq1B,EAAsBC,YAAc50B,EAAgBw1B,WAAax1B,EAAgB60B,UAS7H,MAAO,CACLj1B,mBAAAA,EACAC,oBAAAA,EACAC,0BAAAA,EACAP,0BAZgCs8B,EAAWe,yBAA2Bz3E,IAAAA,IAAM02E,EAAWe,0BAA0B,SAAAv2E,GAAA,IAAGg8B,EAAWh8B,EAAXg8B,YAA0Bi6C,EAAEj2E,EAAfivE,YAAW,MAAY,CACxJh+B,YAAajV,EACbsS,YAAa,CACX/O,aAAc02C,EAAGC,aAAc52C,YAAa22C,EAAGE,YAAah3C,QAAS82C,EAAGG,QAAS/2C,QAAS42C,EAAGI,QAASl9B,aAAcm9B,GAEvH,IAAK,KAQJj9B,iBAPuBC,EAAoBL,EAAoBnI,EAAUskC,EAAc77B,EAAoBC,GAQ3GP,mBAAAA,EACAm8B,aAAAA,EAEJ,CAAE,MAAOxwD,GACP,MAAO,CAAC,CACV,CACF,C,yBChEA,IAAI4xD,EAAM,EAAQ,QA6GlBC,EAAOC,QA3GP,SAAkBC,GAAS,IAAoCC,EAAhCC,EAAW,GAAqCC,EAAmBH,GAAU,CAAC,EA0GutB,OA1GntB,SAAUjyD,EAAqBna,EAAkB4I,EAAMyB,EAAgCvD,EAA0BjR,GAAO,IACrO22E,EACAC,EACJ,OAH6P3lE,EAAyB8B,IAIpR,IAAK,uBACH4jE,EAAuBryD,EAAoB,kCAC3CsyD,EAAwB,CAAEC,iBAAkB72E,EAAK82E,eAAe/jE,EAAK7B,eAAgB6B,EAAKe,eAC1F,MACF,IAAK,mBACH6iE,EAAuBryD,EAAoB,4BAC3CsyD,EAAwB,CAAEC,iBAAkB72E,EAAK82E,eAAe/jE,EAAK7B,eAAgB6B,EAAKe,eAC1F,MACF,IAAK,sBACH6iE,EAAuBryD,EAAoB,iCAC3CsyD,EAAwB,CAAEG,gBAAiB/2E,EAAKg3E,cAAcjkE,EAAK3B,WAAa,MAChF,MACF,IAAK,kBACHulE,EAAuBryD,EAAoB,2BAC3CsyD,EAAwB,CAAEG,gBAAiB/2E,EAAKg3E,cAAcjkE,EAAK3B,WAAa,MAGpF,IAII6lE,EAJAC,EAAyBl3E,EAAKsH,UAAUqvE,EAAsBC,GAE9DO,EAAkB3iE,EAA+BzB,GACjDqkE,EAAyB,GAEzBC,EAA2B,GAC3BrD,EAAyC,SAApBmD,EACzB,GAAInD,EAAoB,CACtB,OAAQmD,GACN,IAAK,eACHC,EAAyB9yD,EAAoB,6BAC7C2yD,EAA0B,CAAEK,OAAQt3E,EAAK82E,eAAe/jE,EAAK2B,iBAAkB3B,EAAKe,eACpF,MACF,IAAK,gBACHsjE,EAAyB9yD,EAAoB,0BAC7C2yD,EAA0B,CAAEM,cAAexkE,EAAK0B,eAGpD4iE,EAA2Br3E,EAAKsH,UAAU8vE,EAAwBH,EACpE,CAEA,IACIO,EADAC,EAAmB,GAEnBC,EAAqB,GACrBC,EAAmB,GAEvB,SAASC,EAAoBC,GAC3B,MAAMC,EAAY93E,EAAKuW,UACrBshE,EAAkBE,UAAU,EAAG,IAC/B,CACEviE,IAAK,aACLwiE,SAAU,OAId,OAAOh4E,EAAKi4E,WAAWH,EAAW,CAAEI,SAAU,OAAQF,SAAU,MAClE,CAEA,IAAIG,EAAqB,GACrBlE,EAAelhE,EAAK+C,oBAAsB/C,EAAKiD,iBAC/Ci+D,IACElhE,EAAK+C,qBACP4hE,EAAqBE,EAAoB7kE,EAAK+C,qBAE5C/C,EAAKiD,mBACP2hE,EAAmBC,EAAoB7kE,EAAKiD,mBAE1C0hE,GAAsBC,EACpBD,IAAuBC,GACzBF,EAAmBnzD,EAAoB,qCACvCkzD,EAAoB,CAAErxE,UAAWuxE,EAAoBtxE,QAASuxE,KAE9DF,EAAmBnzD,EAAoB,kBACvCkzD,EAAoB,CAAEY,KAAMV,IAErBA,GACTD,EAAmBnzD,EAAoB,wBACvCkzD,EAAoB,CAAErxE,UAAWuxE,IACxBC,IACTF,EAAmBnzD,EAAoB,oBACvCkzD,EAAoB,CAAEpxE,QAASuxE,IAEjCQ,EAAqBn4E,EAAKsH,UAAUmwE,EAAkBD,IAGxD,IAAIzD,EAAgC,SAAlBhhE,EAAKkH,SACnBo+D,EAAgBrE,GAAsBC,EAE1CwC,GAAsB,kCAClB1C,IACJ0C,EAAWA,EAAYL,EAAIkC,OAAO,OAAS9B,EAAax2E,EAAKsH,UAAU6C,EAAiB4I,EAAKkH,YAAc,GAAKu8D,GAAe,OAE/HC,EAAWA,EAAYL,EAAIkC,OAAO,OAAS9B,EAAaU,GAA0B,GAAKV,GAAe,IAAOJ,EAAIkC,OAAO,OAAS9B,EAAazjE,EAAK8gE,eAAiB,GAAK2C,GAAe,SACpL6B,IACJ5B,GAAsB,kCAClBzC,IACJyC,GAAuBL,EAAIkC,OAAO,OAAS9B,EAAaa,GAA4B,GAAKb,GACrFvC,IACJwC,GAAsB,aAGlBxC,IACJwC,GAAuBL,EAAIkC,OAAO,OAAS9B,EAAa2B,GAAsB,GAAK3B,IAEnFC,GAAsB,SACrB,EAAE8B,KAAKn6E,KAAK,wBAAyBs4E,EAAgBA,EAAgBpyD,oBAAiD,qBAAtBA,oBAAkCA,yBAAoBpmB,EAAU,qBAAsBw4E,EAAgBA,EAAgBvsE,iBAA2C,qBAAnBA,iBAA+BA,sBAAiBjM,EAAU,SAAUw4E,EAAgBA,EAAgB3jE,KAAmB,qBAAPA,KAAmBA,UAAK7U,EAAU,mCAAoCw4E,EAAgBA,EAAgBliE,+BAAuE,qBAAjCA,+BAA6CA,oCAA+BtW,EAAU,6BAA8Bw4E,EAAgBA,EAAgBzlE,yBAA2D,qBAA3BA,yBAAuCA,8BAAyB/S,EAAU,SAAUw4E,EAAgBA,EAAgB12E,KAAmB,qBAAPA,KAAmBA,UAAK9B,GAAoBu4E,CAAS,C","sources":["../../../../ad-extensions/packages/ad-extensions-shared/src/common-styles.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/custom-params-realtime-view.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/custom-parameters.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/error-context.js","../../../../ad-extensions/packages/ad-extensions-shared/src/rules/errors.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/errors.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/final-url-suffix.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/input-with-extra.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/language-select.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/scheduling-view-realtime-subscription.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/scheduling.js","../../../../ad-extensions/packages/ad-extensions-shared/src/components/tracking-template.js","../../../../ad-extensions/packages/ad-extensions-shared/src/rules/campaign-type-check.js","../../../../ad-extensions/packages/ad-extensions-shared/src/rules/odata-errors.js","../../../../ad-extensions/packages/ad-extensions-shared/src/rules/stringify-error.js","../../../../ad-extensions/packages/promotion-extension/src/i18n/occasion-i18n-keys.js","../../../../ad-extensions/packages/promotion-extension/src/controls/occasion-select.js","../../../../ad-extensions/packages/promotion-extension/src/controls/currency-select.js","../../../../ad-extensions/packages/promotion-extension/src/rules/promotion-type.js","../../../../ad-extensions/packages/promotion-extension/src/controls/promotion-type.js","../../../../ad-extensions/packages/promotion-extension/src/promotion-extension-editor-style.js","../../../../ad-extensions/packages/promotion-extension/src/rules/promotion-detail.js","../../../../ad-extensions/packages/promotion-extension/src/controls/promotion-detail.js","../../../../ad-extensions/packages/promotion-extension/src/controls/start-and-end-date.js","../../../../ad-extensions/packages/promotion-extension/src/rules/currency.js","../../../../ad-extensions/packages/promotion-extension/src/promotion-extension-editor.js","../../../../ad-extensions/packages/promotion-extension/src/i18n/item-preview-i18n-keys.js","../../../../ad-extensions/packages/promotion-extension/src/templates/index.js","../../../../ad-preview-library/packages/ad-placement-consts/src/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/common/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/image-extension/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/msan-image-ad/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/perf-max/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/search-image-ad/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/streamlined-signup/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/app-ad/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/ad-library/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/responsive-search-ad/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/dynamic-search-ad/index.js","../../../../ad-preview-library/packages/ad-placement-connector/src/index.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/single-placement/styles.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/single-placement/index.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/preview-carousel.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/styles.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/header.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/styles/header.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/styles/validation-message.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/validation-message.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/styles/disclaimer-message.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/disclaimer-message.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/styles/footer-button.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/footer-button.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/all-placements-panel/styles.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/all-placements-panel/index.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/carousel-decorators/all-placements.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/carousel/index.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/groups/styles.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/groups/controls.js","../../../../ad-preview-library/packages/ad-placement-layouts/src/groups/index.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/ads-label.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/ads-label.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/boost.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/boost.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/business-name-with-ads.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/business-name-with-ads.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/call-to-action.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/call-to-action.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/persona.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/persona.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/contact.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/contact.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win-prong-dark.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win-prong-dark-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win-prong-light.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win-prong-light-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win11-start-light-background.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win11-start-light-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win11-start-dark-background.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win11-start-dark-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win10-start-light-background.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win10-start-light-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win10-start-dark-background.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win10-start-dark-style.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/win-store.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/win-store.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/text-container.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/description.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/final-url.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/long-headline.js","../../../../ad-preview-library/packages/ad-placement-view/src/decorators/styles/short-headline.js","../../../../ad-preview-library/packages/ad-placement-view/src/ad-placement-card-preview.js","../../../../ad-preview-library/packages/ad-placement-view/src/styles/ad-placement-card-preview.js","../../../../ad-preview-library/packages/ad-placement-view/src/ad-placement-preview.js","../../../../ad-preview-library/packages/ad-placement-view/src/styles/ad-placement-preview.js","../../../../ad-preview-library/packages/ad-placement-view/src/index.js","../../../../ad-preview-library/packages/ad-placement-factory/src/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-191-100-audience-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-178-100-edge-single.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-178-100-bing-desktop.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-172-100-edge-medium.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-169-100-msn-single.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-155-100-msn-medium.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-150-100-msn-in-article.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-133-100-msn-small.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-1-1-audience-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/image-extension/image-093-100-msn-double.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/image-191-100-audience-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/image-178-100-edge-single.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/image-150-100-msn-in-article.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/image-133-100-msn-small.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/image-1-1-audience-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/text-outlook-web.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-image-ad/text-outlook-mobile.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-178-100-edge-single.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-191-100-audience-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-1-1-audience-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-1-1-mma-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-1-2-mma-vertical.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-4-1-mma-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-133-100-msn-small.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-150-100-msn-in-article.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/image-191-100-mma-landscape.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/text-bing.js","../../../../ad-preview-library/packages/ad-placement-templates/src/media/bing-desktop-header.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/text-bing-desktop.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/text-bing-mobile.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/text-outlook-web.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/perf-max-ad/text-outlook-mobile.js","../../../../ad-preview-library/packages/ad-placement-templates/src/search-image-ad/image-191-100-mma-landscape.js","../../../../ad-preview-library/packages/ad-placement-templates/src/search-image-ad/image-1-1-mma-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/search-image-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/search-image-ad/image-4-1-mma-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/search-image-ad/image-1-2-mma-vertical.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/text-bing.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/image-191-100-audience-wide.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/image-178-100-edge-single.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/image-150-100-msn-in-article.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/image-133-100-msn-small.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/image-1-1-audience-square.js","../../../../ad-preview-library/packages/ad-placement-templates/src/streamlined-signup/social-1-1-facebook.js","../../../../ad-preview-library/packages/ad-placement-templates/src/ad-library/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/ad-library/image-191-100-ad-library.js","../../../../ad-preview-library/packages/ad-placement-templates/src/ad-library/text-bing.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-windows-spotlight.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-discover.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-start-menu.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-action-center.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-banner.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-prong.js","../../../../ad-preview-library/packages/ad-placement-templates/src/msan-boost-ad/image-coachmark.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-windows-store-spotlight.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win11-start-menu-light.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win11-start-menu-dark.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win10-start-menu-light.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win10-start-menu-dark.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win-prong-dark.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/app-image-win-prong-light.js","../../../../ad-preview-library/packages/ad-placement-templates/src/app-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/responsive-search-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/responsive-search-ad/responsive-search.js","../../../../ad-preview-library/packages/ad-placement-templates/src/responsive-search-ad/responsive-search-desktop.js","../../../../ad-preview-library/packages/ad-placement-templates/src/responsive-search-ad/responsive-search-mobile.js","../../../../ad-preview-library/packages/ad-placement-templates/src/dynamic-search-ad/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/dynamic-search-ad/dynamic-search.js","../../../../ad-preview-library/packages/ad-placement-templates/src/index.js","../../../../ad-preview-library/packages/ad-placement-templates/src/utils/utils.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/src/carousel-layout-wrapper.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/with-cmui-theme.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/src/media-placement-type-enum.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/src/use-ad-preview-model-wrapper.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/src/get-smart-cropped-image.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/src/use-image-experience-ad-preview-model.js","../../../../ad-preview-library/packages/unified-ad-preview-library-cmui/index.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/with-themed-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/mma-in-msan-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/mma-in-msan-v2-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/bing-search-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/outlook-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/linkedin-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/boost-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/disclaimer-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/responsive-search-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/mma-in-msan-v2-refreshed-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/outlook-ad-refreshed-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/mma-placement-card.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/placement-card-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/placement-content-container.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/ad-label.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/ad-label-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/business-name-with-ads.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/business-name-with-ads-label-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/placement-gradient.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/placement-gradient-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/with-link.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/placement-text.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/placement-action.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/placement-image.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/disclaimer.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/business-name-with-logo.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/business-name-with-choice-icon.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/circle-right-arrow.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/shared-components/large-ad-choice-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/three-dot.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/outlookUnreadIcon.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/shared-components/description-with-action.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/mma-ad-placement-base.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/mma-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/mma-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/mma-in-msan-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/mma-ad-placements-v2/mma-ad-placement-base-v2.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/mma-in-msan-v2-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/image-extension-ad-placements/single-image-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/image-extension-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/image-extension-ad-placements/bing-desktop-multi-image-133x100.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/image-extension-ad-placements/bing-mobile-multi-image-133x100.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/media/bing-desktop-header.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/bing-search-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/outlook-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/linkedin-ad-placements/li-single-image-ad-placement-base.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/linkedin-ad-placements/li-single-image-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-base-placement.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/app-ads-ad-placement-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-msn-display-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-outlook-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/responsive-components/responsive-outlook-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-m365-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-search-ad-placements/responsive-search-ad-placement-base.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-bing-search-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-casual-games-placement.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/app-ads-ad-placements/app-ads-video-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-mma-placement-card.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/responsive-components/responsive-placement-card-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-mma-ad-placement-base.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-mma-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/responsive-components/responsive-mma-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-mma-in-msan-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/responsive-components/responsive-mma-in-msan-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-bing-search-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/responsive-components/responsive-bing-search-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/boost-ad-placements/boost-windows-spotlight-placement.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-ad-placements/responsive-boost-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/boost-ad-placements/boost-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/boost-ad-placements/boost-text-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/boost-ad-placements/boost-discover-card-placement.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/responsive-search-ad-placements/responsive-search-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/dynamic-search-ad-placements/dynamic-search-ad-placements.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/dynamic-search-ad-placements-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-components/video-placement.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-placement-components/video-placement-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-placement-containers/index.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-preview-container-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/@types/image-video-type-enum.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/@types/placement-type-enum.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/@types/ad-extension-type-enum.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/placement-meta-list.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/merge-reducer-state-util.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/use-ad-preview-reducer.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/get-central-crop-settings.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/use-ad-preview-model.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/load-image-by-url.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/model-constants.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-preview-model/get-crop-settings-from-roi.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/layout-components/get-ad-placement-component.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/layout-components/grid-layout.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/layout-components/grid-layout-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/layout-components/single-placement-layout.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/layout-components/single-placement-layout-style.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/layout-components/custom-carousel-component.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/layout-components/carousel-layout.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/layout-components/carousel-layout-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-extension-components/structured-snippet-extension.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/styles/ad-extension-components/ad-extension-component-styles.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-extension-components/callout-extension.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-extension-components/price-extension.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-extension-components/promotion-extension.js","../../../../ad-preview-library/packages/unified-ad-preview-library-core/src/ad-extension-components/sitelink-extension.js","../../../../ad-preview-library/packages/unified-ad-preview-library-util/src/constants.js","../../../../ad-preview-library/packages/unified-ad-preview-library-util/src/utils.js","../../../../ad-extensions/packages/promotion-extension/src/templates/universal-item-template.pug"],"sourcesContent":["export const legacySchedulingPanelStyles = (/* components, theme */) => ({\r\n '& .row': {\r\n marginLeft: 0,\r\n },\r\n '& label.accordion': {\r\n '& a': {\r\n '& span.expandedImage, span.expanderImage': {\r\n marginLeft: 0,\r\n marginRight: 8,\r\n },\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport { CustomParametersView } from '@bingads-webui-campaign/upgrade-url';\r\n\r\n/**\r\n * This CustomParametersView subclass extends the base view\r\n * by subscribing to updates and triggering 'change:customParameters'\r\n * every time user changes them.\r\n * Note there are many places creating similar classes, due to apparent\r\n * broken logic in the base view. See:\r\n * - private\\ui-legacy\\Assets\\component\\form\\view\\control\\custom-params.es\r\n * - private\\ui-legacy\\Assets\\campaignui\\feature\\auto-targets\\view\\dynamic-target\r\n * \\custom-params-adapter.es\r\n * This class, hovewer, makes updates propagated\r\n * as Backbone events instead of Knockout observable changes.\r\n */\r\nexport class CustomParametersRealtimeView extends CustomParametersView {\r\n initialize(options = {}) {\r\n super.initialize(options);\r\n\r\n this.viewModel.parameterArray.subscribe((val) => {\r\n const newVal = _.filter(val, item => !_.isEmpty(item.Key) || !_.isEmpty(item.Value));\r\n\r\n this.trigger('change:customParameters', { isValid: this.isValid(), customParameters: newVal });\r\n });\r\n }\r\n}\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CustomParametersRealtimeView } from './custom-params-realtime-view';\r\n\r\nexport function CustomParameters({\r\n id, value, onChange, legacyI18n, permissions, forceUseIncreasedCount,\r\n}) {\r\n let container;\r\n\r\n const onCustomParametersUpdated = useCallback(({\r\n isValid, customParameters: newCustomParameters,\r\n }) => {\r\n onChange({ isValid, value: newCustomParameters });\r\n }, [onChange]);\r\n\r\n useEffect(() => {\r\n const view = new CustomParametersRealtimeView({\r\n i18n: legacyI18n,\r\n customParameters: value,\r\n permissions,\r\n forceUseIncreasedCount,\r\n });\r\n view.on('change:customParameters', onCustomParametersUpdated);\r\n view.render().$el.appendTo(container);\r\n\r\n return () => {\r\n view.remove();\r\n };\r\n // We want the view to be created only once,\r\n // hence ignoring all dependencies of this \"effect\".\r\n // This means that view will ignore changes to all props.\r\n // If need be to make view pick props updates, the view\r\n // need to provide a way to communicate such update to it.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n
{ container = ref; }} />\r\n );\r\n}\r\n\r\nCustomParameters.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n legacyI18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n forceUseIncreasedCount: PropTypes.bool,\r\n};\r\n\r\nCustomParameters.defaultProps = {\r\n forceUseIncreasedCount: false,\r\n};\r\n","import React from 'react';\r\n\r\nexport const ErrorsContext = React.createContext();\r\n","import { isString } from 'underscore';\r\nimport { include, endsWith } from 'underscore.string';\r\n\r\nexport const propertyIs = propertyName => error => error && (error.property === propertyName);\r\nexport const propertySuffixIs = propertySuffix =>\r\n error => error && endsWith(error.property, propertySuffix);\r\nexport const codeContains = text => error => error && include(error.code, text);\r\nexport const or = (f1, f2) => arg0 => f1(arg0) || f2(arg0);\r\nexport const and = (f1, f2) => arg0 => f1(arg0) && f2(arg0);\r\n\r\nexport const uniqueErrorTransform = (err = {}) => (isString(err) ?\r\n err :\r\n `${err.message}|${err.code}|${err.property}`);\r\n\r\nexport const errorMessage = campaignApiError => (campaignApiError &&\r\n (campaignApiError.isHtmlMessage ?\r\n { DangerousHtmlMessage: campaignApiError.message } :\r\n campaignApiError.message || campaignApiError.code || campaignApiError.toString())) || '';\r\n\r\nexport const isSchedulingError = or(codeContains('Schedule'), propertyIs('Scheduling'));\r\nexport const unmappedError = error => error && !error.property && !isSchedulingError(error);\r\n","import { isEmpty, chain } from 'underscore';\r\nimport React, { useEffect, useRef, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { ErrorsContext } from './error-context';\r\nimport { errorMessage, uniqueErrorTransform } from '../rules/errors';\r\n\r\nconst ErrorItem = React.memo(({ errors, errorFilter, children }) => {\r\n const focusElementRef = useRef();\r\n\r\n const filteredErrors = useMemo(\r\n () => chain(errors)\r\n .uniq(uniqueErrorTransform)\r\n .filter(errorFilter)\r\n .map(errorMessage)\r\n .value(),\r\n [errors, errorFilter]\r\n );\r\n\r\n useEffect(() => {\r\n if (errors && !errors.isHandled && !isEmpty(filteredErrors)) {\r\n // eslint-disable-next-line no-param-reassign\r\n errors.isHandled = true;\r\n focusElementRef.current.scrollIntoView({\r\n behavior: 'smooth',\r\n });\r\n }\r\n }, [filteredErrors, errors]);\r\n\r\n return (\r\n \r\n
\r\n {children}\r\n \r\n \r\n );\r\n});\r\n\r\nErrorItem.propTypes = {\r\n children: PropTypes.node,\r\n errors: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({}),\r\n ])),\r\n errorFilter: PropTypes.func.isRequired,\r\n};\r\n\r\nErrorItem.defaultProps = {\r\n children: undefined,\r\n errors: [],\r\n};\r\n\r\nexport const Errors = React.memo(({ filter: errorFilter, children }) => (\r\n \r\n {errors => (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n));\r\n\r\nErrors.propTypes = {\r\n children: PropTypes.node,\r\n filter: PropTypes.func.isRequired,\r\n};\r\n\r\nErrors.defaultProps = {\r\n children: undefined,\r\n // filter: constant(true), // TODO: decide on the best default value\r\n};\r\n","import React, { useCallback, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FinalUrlSuffixView } from '@bingads-webui-campaign/upgrade-url';\r\n\r\nexport function FinalUrlSuffix({\r\n id, value, onChange, legacyI18n,\r\n}) {\r\n let container;\r\n\r\n const onFinalUrlSuffixUpdated = useCallback(({\r\n isValid, finalUrlSuffix: newFinalUrlSuffix,\r\n }) => {\r\n onChange({ isValid, value: newFinalUrlSuffix });\r\n }, [onChange]);\r\n\r\n useEffect(() => {\r\n const view = new FinalUrlSuffixView({\r\n i18n: legacyI18n,\r\n editMode: true,\r\n finalUrlSuffix: value,\r\n showPlaceholder: true,\r\n });\r\n view.on('finalUrlSuffix:updated', onFinalUrlSuffixUpdated);\r\n view.render().$el.appendTo(container);\r\n\r\n return () => {\r\n view.remove();\r\n };\r\n // We want the view to be created only once,\r\n // hence ignoring all dependencies of this \"effect\".\r\n // This means that view will ignore changes to all props.\r\n // If need be to make view pick props updates, the view\r\n // need to provide a way to communicate such update to it.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n
{ container = ref; }} />\r\n );\r\n}\r\n\r\nFinalUrlSuffix.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string,\r\n legacyI18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nFinalUrlSuffix.defaultProps = {\r\n value: '',\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport { withError } from '@bingads-webui-react/validation';\r\nimport { InputLite } from '@bingads-webui-react/primitive-validation';\r\n\r\nexport const InputWithExtra = withError(props => (\r\n
\r\n \r\n {props.extra()}\r\n
\r\n));\r\n","import { extend } from 'underscore';\r\nimport { withProps } from '@bingads-webui-react/with-props';\r\nimport { LanguageSelect as LanguageSelectControl } from '@bingads-webui-campaign-react/language-select';\r\nimport { globalizationModelSetup } from '@bingads-webui-campaign/ads-globalization';\r\n\r\nexport const LanguageSelect =\r\n withProps((props) => {\r\n const {\r\n LANGUAGES: enabledLanguageList,\r\n } = globalizationModelSetup({\r\n permissions: props.permissions,\r\n culture: props.i18n.getLocale(),\r\n });\r\n return extend(\r\n {},\r\n props,\r\n { enabledLanguageList }\r\n );\r\n }, LanguageSelectControl);\r\n","import _ from 'underscore';\r\n\r\nconst subscribeToDayTimeViewModel = callback => (dayTimeViewModel) => {\r\n dayTimeViewModel.startHour.subscribe(callback);\r\n dayTimeViewModel.startMinute.subscribe(callback);\r\n dayTimeViewModel.endHour.subscribe(callback);\r\n dayTimeViewModel.endMinute.subscribe(callback);\r\n};\r\n\r\nconst validateDayTimeRange = callback => (changes) => {\r\n callback();\r\n _.each(changes, ({ status, value: dayTimeViewModel }) => {\r\n if (status === 'added') {\r\n subscribeToDayTimeViewModel(callback)(dayTimeViewModel);\r\n }\r\n });\r\n};\r\n\r\nexport const subscribeToSchedulingViewLiveUpdates = (view, callback) => {\r\n const { ko_model: viewModel } = view;\r\n viewModel.startDate.subscribe(callback);\r\n viewModel.endDate.subscribe(callback);\r\n viewModel.flattenedDayTimeRanges.subscribe(callback);\r\n viewModel.dayTimeRanges.subscribe(validateDayTimeRange(callback), undefined, 'arrayChange');\r\n _.each(viewModel.dayTimeRanges(), subscribeToDayTimeViewModel(callback));\r\n viewModel.useSearcherTimeZone.subscribe(callback);\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withProps } from '@bingads-webui-react/with-props';\r\nimport { subscribeToSchedulingViewLiveUpdates } from './scheduling-view-realtime-subscription';\r\n\r\nfunction Scheduling({\r\n id, LegacySchedulingView, value, onChange, hideStartAndEndDate,\r\n}) {\r\n const view = useRef();\r\n let container;\r\n\r\n const validate = useCallback(() => {\r\n onChange({\r\n isValid: view.current.validate(),\r\n value: view.current.toObject(),\r\n });\r\n }, [onChange, view]);\r\n\r\n useEffect(() => {\r\n view.current = new LegacySchedulingView(_.extend(\r\n {},\r\n {\r\n labelClass: 'scheduling__label',\r\n controlClass: 'scheduling__control',\r\n model: value || {},\r\n hideStartAndEndDate,\r\n }\r\n ), [hideStartAndEndDate]);\r\n\r\n subscribeToSchedulingViewLiveUpdates(view.current, validate);\r\n\r\n view.current.render();\r\n view.current.$el.appendTo(container);\r\n\r\n return () => { view.current.remove(); };\r\n // We want the view to be created only once,\r\n // hence ignoring all dependencies of this \"effect\".\r\n // This means that view will ignore changes to all props.\r\n // If need be to make view pick props updates, the view\r\n // need to provide a way to communicate such update to it.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n { container = ref; }}\r\n />\r\n );\r\n}\r\n\r\nScheduling.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.shape({}),\r\n LegacySchedulingView: PropTypes.func.isRequired,\r\n hideStartAndEndDate: PropTypes.bool,\r\n};\r\n\r\nScheduling.defaultProps = {\r\n value: undefined,\r\n hideStartAndEndDate: false,\r\n};\r\n\r\nexport function buildSchedulingView(LegacySchedulingView) {\r\n return withProps({ LegacySchedulingView }, Scheduling);\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { InputWithExtra } from './input-with-extra';\r\n\r\nexport function TrackingTemplate(props) {\r\n return (\r\n \r\n {props.i18n.getString(_TL_('Example: http://www.trackingtool.com/tracking?url={lpurl}&type=1'))}}\r\n />\r\n \r\n );\r\n}\r\n\r\nTrackingTemplate.propTypes = {\r\n inputExtraClass: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nTrackingTemplate.defaultProps = {\r\n inputExtraClass: '',\r\n};\r\n","import { constant, contains, result } from 'underscore';\r\n\r\nconst allExtensions = [\r\n 'action',\r\n 'app',\r\n 'call',\r\n 'callout',\r\n 'image',\r\n 'location',\r\n 'price',\r\n 'review',\r\n 'sitelink',\r\n 'structuredsnippet',\r\n 'promotion',\r\n 'filterlink',\r\n 'flyer',\r\n 'video',\r\n 'leadform',\r\n 'logo',\r\n];\r\n\r\nconst pmaxSupportedExtentions = [\r\n 'action',\r\n 'app',\r\n 'call',\r\n 'callout',\r\n 'image',\r\n 'location',\r\n 'price',\r\n 'review',\r\n 'sitelink',\r\n 'structuredsnippet',\r\n 'promotion',\r\n 'filterlink',\r\n 'flyer',\r\n 'video',\r\n 'leadform',\r\n 'logo',\r\n];\r\n\r\nconst appSupportedExtensions = [\r\n 'action',\r\n 'call',\r\n 'callout',\r\n 'image',\r\n 'location',\r\n 'price',\r\n 'review',\r\n 'sitelink',\r\n 'structuredsnippet',\r\n 'promotion',\r\n 'filterlink',\r\n 'flyer',\r\n 'video',\r\n 'leadform',\r\n 'logo',\r\n 'businessinfo',\r\n];\r\n\r\nconst hotelSupportedExtentions = [\r\n 'callout',\r\n];\r\n\r\nconst campaignType2SupportedExtensions = {\r\n PerformanceMax: pmaxSupportedExtentions,\r\n Hotel: hotelSupportedExtentions,\r\n App: appSupportedExtensions,\r\n};\r\n\r\nconst DomesticSimplifiedChineseSupportedExtentions = [\r\n 'action',\r\n 'filterlink',\r\n 'image',\r\n 'businessinfo',\r\n 'promotion',\r\n 'sitelink',\r\n];\r\n\r\nconst campaignTypeSupportedExtensions = campaignType => result(campaignType2SupportedExtensions, campaignType);\r\n\r\nexport const campaignTypeExtensionTypeFilter = (campaignType) => {\r\n const supportedExtensions = campaignTypeSupportedExtensions(campaignType);\r\n const filter = supportedExtensions ?\r\n extensionType => contains(supportedExtensions, extensionType.toLowerCase()) :\r\n constant(true);\r\n return filter;\r\n};\r\n\r\nexport const extensionCampaignTypeCheck = {\r\n allExtensions,\r\n pmaxSupportedExtentions,\r\n hotelSupportedExtentions,\r\n appSupportedExtensions,\r\n DomesticSimplifiedChineseSupportedExtentions,\r\n};\r\n","import { map, result, compose } from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { getODataErrors } from '@bingads-webui-campaign/api-errors';\r\n\r\n/* eslint-disable no-param-reassign */\r\n// Maps single OData error to another error code and remaps the property to the\r\n// specified in `propertyName` property. The error code map is Code -> Code.\r\nconst mapErrorCodeForProperty = (errorCodeMap, propertyName) => (error) => {\r\n error.Code = result(errorCodeMap, error.Code, error.Code);\r\n error.Property = propertyName;\r\n return error;\r\n};\r\n\r\n// Maps a single OData error to another error code based on property specific\r\n// error codes mappings. The error code map is Property -> Code -> Code.\r\nconst mapErrorCode = errorCodeMap => (error) => {\r\n const propertySpecificMap = result(errorCodeMap, error.Property, {});\r\n\r\n error.Code = result(propertySpecificMap, error.Code, error.Code);\r\n return error;\r\n};\r\n\r\n// Maps a single OData error to another property. The error to property map is\r\n// Code -> Property.\r\n// This is usefull when MT doesn't include property information, but the error code\r\n// is applicable to a single property.\r\nconst mapErrorProperty = errorCodePropertyMap => (error) => {\r\n error.Property = result(errorCodePropertyMap, error.Code, error.Property);\r\n return error;\r\n};\r\n/* eslint-enable no-param-reassign */\r\n\r\n/**\r\n * Used on OData error response to a direct OData request promise, based on a single\r\n * model property. Remaps all errors to the specified in `propertyName` property,\r\n * first remapping properties based on error codes specified in the optional `errorCodePropertyMap`\r\n * @param {Object} i18n - the i18n instance\r\n * @param {Object} logger - the optional logger instance\r\n * @param {ErrorCodeMap} errorCodeMap - the error code to erro code map\r\n * @param {*} propertyName - the property to set all errors to\r\n * @returns {mapODataErrorsForPropertyFunc} - the mapping function\r\n */\r\nexport const mapODataErrorsForProperty =\r\n (i18n, logger, errorCodeMap = {}, propertyName) => (response) => {\r\n if (response.errors) {\r\n return getODataErrors(\r\n map(\r\n response.errors,\r\n mapErrorCodeForProperty(errorCodeMap, propertyName)\r\n ),\r\n i18n,\r\n logger\r\n );\r\n }\r\n\r\n return response;\r\n };\r\n\r\n/**\r\n * Used in legacy repository. Used on OData error response. Remaps all errors to the\r\n * specified in `propertyName` property, first remapping properties based on error\r\n * codes specified in the optional `errorCodePropertyMap`\r\n * @param {Object} i18n - the i18n instance\r\n * @param {Object} logger - the optional logger instance\r\n * @param {ErrorCodeMap} errorCodeMap - the error code to erro code map\r\n * @param {ErrorCodePropertyMap} errorCodePropertyMap - the error code to property map\r\n * @returns {mapODataErrorsFunc} - the mapping function\r\n */\r\nexport const mapODataErrors =\r\n (i18n, logger, errorCodeMap = {}, errorCodePropertyMap = {}) => (response) => {\r\n if (response.errors) {\r\n return getODataErrors(\r\n map(\r\n response.errors,\r\n compose(\r\n mapErrorCode(errorCodeMap),\r\n mapErrorProperty(errorCodePropertyMap)\r\n )\r\n ),\r\n i18n,\r\n logger\r\n );\r\n }\r\n\r\n return response;\r\n };\r\n\r\nconst throwReturn = func => (arg0) => { throw func(arg0); };\r\n\r\n// Used to wrap and process direct OData request promise based on single model property\r\nexport const withAsyncOdataErrorForProperty =\r\n (i18n, logger, errorCodeMap = {}, propertyName, promise) =>\r\n Promise\r\n .resolve(promise)\r\n .catch(throwReturn(mapODataErrorsForProperty(i18n, logger, errorCodeMap, propertyName)));\r\n","export const stringifyUnexpectedError = error =>\r\n (error instanceof Error ? error : JSON.stringify(error));\r\n","export const OccasionI18nKeys = {\r\n None: _TL_('None'),\r\n BackToSchool: _TL_('Back to School'),\r\n BlackFriday: _TL_('Black Friday'),\r\n BoxingDay: _TL_('Boxing Day'),\r\n Carnival: _TL_('Carnival'),\r\n ChineseNewYear: _TL_('Chinese New Year'),\r\n Christmas: _TL_('Christmas'),\r\n CyberMonday: _TL_('Cyber Monday'),\r\n Diwali: _TL_('Diwali'),\r\n Easter: _TL_('Easter'),\r\n EidAlAdha: _TL_('Eid al-Adha'),\r\n EidAlFitr: _TL_('Eid al-Fitr'),\r\n EndOfSeason: _TL_('End of Season'),\r\n Epiphany: _TL_('Epiphany'),\r\n FallSale: _TL_('Fall Sale'),\r\n FathersDay: _TL_(\"Father's Day\"),\r\n Halloween: _TL_('Halloween'),\r\n Hanukkah: _TL_('Hanukkah'),\r\n Holi: _TL_('Holi'),\r\n IndependenceDay: _TL_('Independence Day'),\r\n LaborDay: _TL_('Labor Day'),\r\n MothersDay: _TL_(\"Mother's Day\"),\r\n NationalDay: _TL_('National Day'),\r\n Navratri: _TL_('Navratri'),\r\n NewYears: _TL_(\"New Year's\"),\r\n ParentsDay: _TL_(\"Parent's Day\"),\r\n Passover: _TL_('Passover'),\r\n Ramadan: _TL_('Ramadan'),\r\n RoshHashanah: _TL_('Rosh Hashanah'),\r\n SinglesDay: _TL_(\"Single's Day\"),\r\n Songkran: _TL_('Songkran'),\r\n SpringSale: _TL_('Spring Sale'),\r\n StNicholasDay: _TL_('St. Nicholas Day'),\r\n SummerSale: _TL_('Summer Sale'),\r\n ValentinesDay: _TL_(\"Valentine's Day\"),\r\n WinterSale: _TL_('Winter Sale'),\r\n WomensDay: _TL_(\"Women's Day\"),\r\n YearEndGift: _TL_('Year-End Gift'),\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Select } from '@bingads-webui-react/primitive';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { OccasionI18nKeys } from '../i18n/occasion-i18n-keys';\r\n\r\nconst OCCASION_HINT = _TL_('After choosing an occasion from the list, be sure to set your promotion extension’s Start date and End date below Selected days and hours. Otherwise, the promotion extension will serve every year during the occasion’s predefined date range. Please note that your promotion extension will show continuously if you set the occasion to None and don’t enter the Start date and End date. Learn more');\r\n\r\nexport function OccasionSelect({\r\n className, id, onChange, value: selected, i18n,\r\n}) {\r\n const [selectedOccasion, setSelectedOccasion] = useState(selected);\r\n\r\n return (\r\n \r\n {\r\n const occasion = event.target.value;\r\n setSelectedOccasion(occasion);\r\n onChange(occasion);\r\n }}\r\n >\r\n {_.pairs(OccasionI18nKeys).map(([key, value]) =>\r\n (\r\n \r\n ))}\r\n \r\n )}\r\n dismissible={false}\r\n />\r\n \r\n );\r\n}\r\n\r\nOccasionSelect.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nOccasionSelect.defaultProps = {\r\n id: undefined,\r\n value: 'None',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Select } from '@bingads-webui-react/primitive';\r\nimport { globalizationModelSetup } from '@bingads-webui-campaign/ads-globalization';\r\n\r\nconst CURRENCY_STRINGS = {\r\n ALL: _TL_('ALL'),\r\n AED: _TL_('AED'),\r\n ARS: _TL_('ARS'),\r\n AUD: _TL_('AUD'),\r\n BAM: _TL_('BAM'),\r\n BRL: _TL_('BRL'),\r\n CAD: _TL_('CAD'),\r\n CHF: _TL_('CHF'),\r\n CLP: _TL_('CLP'),\r\n CNY: _TL_('CNY'),\r\n COP: _TL_('COP'),\r\n DKK: _TL_('DKK'),\r\n EUR: _TL_('EUR'),\r\n GBP: _TL_('GBP'),\r\n HKD: _TL_('HKD'),\r\n IDR: _TL_('IDR'),\r\n ILS: _TL_('ILS'),\r\n INR: _TL_('INR'),\r\n ISK: _TL_('ISK'),\r\n JPY: _TL_('JPY'),\r\n MKD: _TL_('MKD'),\r\n MXN: _TL_('MXN'),\r\n MYR: _TL_('MYR'),\r\n NGN: _TL_('NGN'),\r\n NZD: _TL_('NZD'),\r\n PEN: _TL_('PEN'),\r\n PHP: _TL_('PHP'),\r\n PLN: _TL_('PLN'),\r\n RSD: _TL_('RSD'),\r\n SAR: _TL_('SAR'),\r\n SEK: _TL_('SEK'),\r\n SGD: _TL_('SGD'),\r\n THB: _TL_('THB'),\r\n TRY: _TL_('TRY'),\r\n TWD: _TL_('TWD'),\r\n USD: _TL_('USD'),\r\n VEF: _TL_('VEF'),\r\n VND: _TL_('VND'),\r\n ZAR: _TL_('ZAR'),\r\n};\r\n\r\nconst pickCurrencies = currencies =>\r\n _.chain(currencies)\r\n .reduce((memo, currency) => {\r\n const outMemo = memo;\r\n outMemo[currency] = CURRENCY_STRINGS[currency];\r\n return outMemo;\r\n }, {})\r\n .pairs()\r\n .value(); // [ [currency, currencyString], ... ]\r\n\r\nexport function CurrencySelect({\r\n className, id, onChange, value: selected, i18n, permissions,\r\n}) {\r\n const { CURRENCIES } = globalizationModelSetup({\r\n permissions,\r\n culture: i18n.getLocale(),\r\n });\r\n const currencies = pickCurrencies(CURRENCIES);\r\n const [selectedCurrency, setSelectedCurrency] = useState(selected);\r\n\r\n return (\r\n {\r\n const language = event.target.value;\r\n setSelectedCurrency(language);\r\n onChange(language);\r\n }}\r\n >\r\n {currencies.map(([key, value]) =>\r\n (\r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nCurrencySelect.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nCurrencySelect.defaultProps = {\r\n id: undefined,\r\n value: 'USD',\r\n};\r\n","export const promotionTypesMap = {\r\n MonetaryDiscount: 'MonetaryDiscount',\r\n PercentDiscount: 'PercentDiscount',\r\n UptoMonetaryDiscount: 'UptoMonetaryDiscount',\r\n UptoPercentDiscount: 'UptoPercentDiscount',\r\n};\r\n\r\nconst discountModifierMap = {\r\n UpTo: 'UpTo', // 1\r\n None: 'None', // 2\r\n};\r\n\r\nexport function getPromotionTypeForModel(model) {\r\n let promotionType;\r\n if (model.MoneyAmountOff !== null) {\r\n if (model.DiscountModifier === discountModifierMap.UpTo) {\r\n promotionType = promotionTypesMap.UptoMonetaryDiscount;\r\n } else {\r\n promotionType = promotionTypesMap.MonetaryDiscount;\r\n }\r\n } else if (model.PercentOff !== null) {\r\n if (model.DiscountModifier === discountModifierMap.UpTo) {\r\n promotionType = promotionTypesMap.UptoPercentDiscount;\r\n } else {\r\n promotionType = promotionTypesMap.PercentDiscount;\r\n }\r\n } else {\r\n promotionType = promotionTypesMap.MonetaryDiscount;\r\n }\r\n\r\n return promotionType;\r\n}\r\n\r\nexport const isMonetary = promotionType =>\r\n promotionType === promotionTypesMap.MonetaryDiscount ||\r\n promotionType === promotionTypesMap.UptoMonetaryDiscount;\r\n\r\nconst isUpTo = promotionType =>\r\n promotionType === promotionTypesMap.UptoMonetaryDiscount ||\r\n promotionType === promotionTypesMap.UptoPercentDiscount;\r\n\r\nexport const cleanPromotionTypeData = (promotionType, model) => ({\r\n DiscountModifier: isUpTo(promotionType) ?\r\n discountModifierMap.UpTo :\r\n discountModifierMap.None,\r\n MoneyAmountOff: isMonetary(promotionType) ? model.MoneyAmountOff : null,\r\n PercentOff: isMonetary(promotionType) ? null : model.PercentOff,\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { Select } from '@bingads-webui-react/primitive';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { PromotionAdExtension } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InputWithExtra } from '@bingads-webui-campaign/ad-extensions-shared';\r\nimport {\r\n promotionTypesMap, isMonetary, getPromotionTypeForModel, cleanPromotionTypeData,\r\n} from '../rules/promotion-type';\r\n\r\nconst promotionTypes = {\r\n [promotionTypesMap.MonetaryDiscount]: _TL_('Monetary discount'),\r\n [promotionTypesMap.PercentDiscount]: _TL_('Percent discount'),\r\n [promotionTypesMap.UptoMonetaryDiscount]: _TL_('Up to monetary discount'),\r\n [promotionTypesMap.UptoPercentDiscount]: _TL_('Up to percent discount'),\r\n};\r\n\r\nfunction PromotionTypeSelect({\r\n className, id, onChange, value: selected, i18n,\r\n}) {\r\n const [selectedPromotionType, setSelectedPromotionType] = useState(selected);\r\n\r\n return (\r\n {\r\n const language = event.target.value;\r\n setSelectedPromotionType(language);\r\n onChange(language);\r\n }}\r\n >\r\n {_.pairs(promotionTypes).map(([key, value]) =>\r\n (\r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nPromotionTypeSelect.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nPromotionTypeSelect.defaultProps = {\r\n id: undefined,\r\n value: promotionTypesMap.MonetaryDiscount,\r\n};\r\n\r\nconst SubSchema = cloneDeep({\r\n properties: {\r\n ..._.pick(PromotionAdExtension.properties, 'DiscountModifier', 'MoneyAmountOff', 'PercentOff'),\r\n },\r\n});\r\n\r\nconst Schema = (promotionType) => {\r\n const schema = cloneDeep(SubSchema);\r\n\r\n schema.properties.MoneyAmountOff.required = isMonetary(promotionType);\r\n schema.properties.PercentOff.required = !isMonetary(promotionType);\r\n\r\n return schema;\r\n};\r\n\r\nexport function PromotionType({\r\n value, onChange, i18n, legacyI18n, id, promotionTypeSelectClassName,\r\n inputContainerClass, inputClass, inputExtraClass,\r\n}) {\r\n const [promotionType, setPromotionType] = useState(getPromotionTypeForModel(value));\r\n const [data, setData] =\r\n useState({ ...cleanPromotionTypeData(promotionType, value), promotionType });\r\n const [schema, setSchema] = useState(Schema(promotionType));\r\n\r\n const onPromotionTypeChange = (newPromotionType) => {\r\n setData((currentData) => {\r\n const mergedData = {\r\n ...currentData,\r\n ...cleanPromotionTypeData(newPromotionType, currentData),\r\n // Injecting UI state to help interconnected components, e.g. Currency\r\n promotionType: newPromotionType,\r\n };\r\n setPromotionType(newPromotionType);\r\n setSchema(Schema(newPromotionType));\r\n onChange(mergedData);\r\n return mergedData;\r\n });\r\n };\r\n\r\n const onValidate = ({ data: newData }) => {\r\n setData((currentData) => {\r\n const mergedData = { ...currentData, ...newData };\r\n onChange(mergedData);\r\n return mergedData;\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isMonetary(promotionType) &&\r\n {value.CurrencyCode}}\r\n />\r\n }\r\n {!isMonetary(promotionType) &&\r\n %}\r\n />\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nPromotionType.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n promotionTypeSelectClassName: PropTypes.string.isRequired,\r\n inputContainerClass: PropTypes.string.isRequired,\r\n inputClass: PropTypes.string.isRequired,\r\n inputExtraClass: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.shape({}),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n legacyI18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nPromotionType.defaultProps = {\r\n value: undefined,\r\n};\r\n","import {\r\n flexibleGrid, flexibleGridColumn,\r\n flexibleGridRows, flexibleGridColumnSpan,\r\n} from '@bingads-webui-campaign-react/flexible-grid-styles';\r\nimport { legacySchedulingPanelStyles } from '@bingads-webui-campaign/ad-extensions-shared';\r\n\r\nconst FIELDS_COLUMN_WIDTH_PX = 383;\r\nconst SCHEDULING_EXTRA_COLUMN_WIDTH_PX = 490 - FIELDS_COLUMN_WIDTH_PX;\r\n\r\nconst genericFieldLabel = {\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n textAlign: 'left',\r\n alignItems: 'baseline',\r\n marginBottom: '5px',\r\n};\r\n\r\nconst genericEditorField = {\r\n marginBottom: '28px',\r\n};\r\n\r\nexport const getPromotionExtensionEditorStyles =\r\n (components, theme = { palette: {} }) => ({\r\n outerGrid: {\r\n extend: flexibleGrid(),\r\n '-ms-grid-columns': `8px ${FIELDS_COLUMN_WIDTH_PX}px ${SCHEDULING_EXTRA_COLUMN_WIDTH_PX}px 60px 458px 8px`,\r\n gridTemplateColumns: `8px ${FIELDS_COLUMN_WIDTH_PX}px ${SCHEDULING_EXTRA_COLUMN_WIDTH_PX}px 60px 458px 8px`,\r\n },\r\n\r\n outerGridWithOneColumn: {\r\n extend: flexibleGrid(),\r\n '-ms-grid-columns': `8px ${FIELDS_COLUMN_WIDTH_PX}px ${SCHEDULING_EXTRA_COLUMN_WIDTH_PX}px 8px`,\r\n gridTemplateColumns: `8px ${FIELDS_COLUMN_WIDTH_PX}px ${SCHEDULING_EXTRA_COLUMN_WIDTH_PX}px 8px`,\r\n },\r\n\r\n ...flexibleGridRows(false, 'outerGrid', 1),\r\n\r\n editorFieldsColumn: {\r\n extend: flexibleGridColumn(2),\r\n },\r\n\r\n previewColumn: {\r\n extend: flexibleGridColumn(4),\r\n },\r\n\r\n fieldsGrid: {\r\n extend: flexibleGrid(),\r\n '-ms-grid-columns': '100%',\r\n gridTemplateColumns: '100%',\r\n },\r\n\r\n ...flexibleGridRows(false, 'fieldsGrid', 30),\r\n\r\n languageAndCurrencyGrid: {\r\n extend: flexibleGrid(),\r\n '-ms-grid-columns': '257px 16px 110px',\r\n gridTemplateColumns: '257px 16px 110px',\r\n },\r\n\r\n ...flexibleGridRows(false, 'languageAndCurrencyGrid', 2),\r\n\r\n currencyFieldLabel: {\r\n extend: [genericFieldLabel, flexibleGridColumn(3)],\r\n },\r\n\r\n currencyEditorField: {\r\n extend: [genericEditorField, flexibleGridColumn(3)],\r\n },\r\n\r\n editorFieldLabel: {\r\n extend: [genericFieldLabel, flexibleGridColumn(1)],\r\n },\r\n\r\n editorField: {\r\n extend: [genericEditorField, flexibleGridColumn(1)],\r\n },\r\n\r\n editorFieldNoMargin: {\r\n extend: flexibleGridColumn(1),\r\n },\r\n\r\n occasionSelect: {\r\n marginBottom: '9px',\r\n\r\n '& ~ .alert.alert-info[role=alert]': {\r\n display: 'flex',\r\n width: 'initial',\r\n paddingRight: '8px',\r\n },\r\n },\r\n\r\n alert: {\r\n '& .alert.alert-info[role=alert]': {\r\n display: 'flex',\r\n },\r\n marginBottom: '9px',\r\n },\r\n\r\n startAndEndDateContainer: {\r\n display: 'flex',\r\n },\r\n\r\n startAndEndDatePicker: {\r\n flexGrow: 1,\r\n },\r\n\r\n startAndEndDateSeparator: {\r\n padding: [[0, 8]],\r\n alignSelf: 'center',\r\n },\r\n\r\n promotionTypeAndDetailSelect: {\r\n },\r\n\r\n typeInputContainer: {\r\n display: 'flex',\r\n marginTop: '16px',\r\n },\r\n\r\n typeInput: {\r\n width: '152px',\r\n },\r\n\r\n typeInputExtraExtra: {\r\n alignSelf: 'center',\r\n marginLeft: '8px',\r\n },\r\n\r\n urlContainer: {\r\n display: 'flex',\r\n },\r\n\r\n urlProtocolSelect: {\r\n width: 'auto',\r\n marginRight: '10px',\r\n },\r\n\r\n collapsiblePanel: {\r\n extend: flexibleGridColumn(1),\r\n\r\n border: 'none',\r\n marginBottom: '28px',\r\n\r\n '& .panel-heading': {\r\n padding: 0,\r\n borderBottom: 'none',\r\n\r\n '& .panel-title': {\r\n fontSize: 14,\r\n '& > a': {\r\n marginLeft: '-8px', // compensate 8px padding on the left of icon\r\n color: theme.palette.themePrimary,\r\n padding: 0,\r\n '&:hover, &:active': {\r\n color: theme.palette.themeDarker,\r\n textTecoration: 'none',\r\n backgroundColor: 'unset',\r\n },\r\n },\r\n\r\n '& > a:after': {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n padding: '0px 8px',\r\n content: '\"\\\\E96E\"',\r\n },\r\n\r\n // Reversing transformation after changing the\r\n // glyphicon to the one used in legacy code\r\n '& a[aria-expanded=\"true\"]:after': {\r\n transform: 'rotate(180deg)',\r\n transformOrigin: 'center center',\r\n transition: 'transform 0.1s linear',\r\n },\r\n\r\n '& a.collapsed:after': {\r\n transform: 'unset',\r\n transformOrigin: 'unset',\r\n transition: 'unset',\r\n },\r\n },\r\n },\r\n\r\n '& .panel-collapse': {\r\n marginTop: 20,\r\n\r\n '& .panel-body': {\r\n padding: 0,\r\n overflow: 'hidden',\r\n },\r\n },\r\n },\r\n\r\n schedulingPanel: {\r\n extend: flexibleGridColumn(1),\r\n\r\n ...legacySchedulingPanelStyles(components, theme),\r\n },\r\n\r\n notices: {\r\n extend: flexibleGridColumnSpan(2),\r\n\r\n '& .alert.alert-info[role=alert]': {\r\n width: 'unset',\r\n },\r\n },\r\n\r\n editorButtonGroup: {\r\n extend: flexibleGridColumn(1),\r\n marginTop: '20px',\r\n\r\n '& button ~ button': {\r\n marginLeft: '16px',\r\n },\r\n },\r\n\r\n errors: {\r\n '& [role=alert]': {\r\n marginBottom: 18,\r\n\r\n '& .error a': {\r\n color: '#D90026',\r\n },\r\n },\r\n },\r\n });\r\n","export const promotionDetailTypesMap = {\r\n None: 'None',\r\n OnOrdersOver: 'OnOrdersOver',\r\n PromotionCode: 'PromotionCode',\r\n};\r\n\r\nexport function getPromotionDetailTypeForModel(model) {\r\n let promotionDetailType;\r\n if (model.PromotionCode !== null) {\r\n promotionDetailType = promotionDetailTypesMap.PromotionCode;\r\n } else if (model.OrdersOverAmount !== null) {\r\n promotionDetailType = promotionDetailTypesMap.OnOrdersOver;\r\n } else {\r\n promotionDetailType = promotionDetailTypesMap.None;\r\n }\r\n\r\n return promotionDetailType;\r\n}\r\n\r\nexport const isPromotionCode = promotionDetailType =>\r\n promotionDetailType === promotionDetailTypesMap.PromotionCode;\r\n\r\nexport const isOnOrdersOver = promotionDetailType =>\r\n promotionDetailType === promotionDetailTypesMap.OnOrdersOver;\r\n\r\nexport const cleanPromotionDetailTypeData = (promotionDetailType, model) => ({\r\n PromotionCode: isPromotionCode(promotionDetailType) ? model.PromotionCode : null,\r\n OrdersOverAmount: isOnOrdersOver(promotionDetailType) ? model.OrdersOverAmount : null,\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { Select } from '@bingads-webui-react/primitive';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { PromotionAdExtension } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InputWithExtra } from '@bingads-webui-campaign/ad-extensions-shared';\r\nimport {\r\n promotionDetailTypesMap, isPromotionCode, isOnOrdersOver, getPromotionDetailTypeForModel,\r\n cleanPromotionDetailTypeData,\r\n} from '../rules/promotion-detail';\r\n\r\nconst promotionDetailTypes = {\r\n [promotionDetailTypesMap.None]: _TL_('None'),\r\n [promotionDetailTypesMap.OnOrdersOver]: _TL_('On orders over'),\r\n [promotionDetailTypesMap.PromotionCode]: _TL_('Promotion code'),\r\n};\r\n\r\nfunction PromotionDetailSelect({\r\n className, id, onChange, value: selected, i18n,\r\n}) {\r\n const [selectedPromotionDetailType, setSelectedPromotionDetailType] = useState(selected);\r\n\r\n return (\r\n {\r\n const { value } = event.target;\r\n setSelectedPromotionDetailType(value);\r\n onChange(value);\r\n }}\r\n >\r\n {_.pairs(promotionDetailTypes).map(([key, value]) =>\r\n (\r\n \r\n ))}\r\n \r\n );\r\n}\r\n\r\nPromotionDetailSelect.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nPromotionDetailSelect.defaultProps = {\r\n id: undefined,\r\n value: 'None',\r\n};\r\n\r\nconst SubSchema = cloneDeep({\r\n properties: {\r\n ..._.pick(PromotionAdExtension.properties, 'PromotionCode', 'OrdersOverAmount'),\r\n },\r\n});\r\n\r\nconst Schema = (promotionDetailType) => {\r\n const schema = cloneDeep(SubSchema);\r\n\r\n schema.properties.PromotionCode.required = isPromotionCode(promotionDetailType);\r\n schema.properties.OrdersOverAmount.required = isOnOrdersOver(promotionDetailType);\r\n\r\n return schema;\r\n};\r\n\r\nexport function PromotionDetail({\r\n value, onChange, i18n, legacyI18n, id, promotionDetailTypeSelectClassName,\r\n inputContainerClass, inputClass, inputExtraClass,\r\n}) {\r\n const [promotionDetailType, setPromotionDetailType]\r\n = useState(getPromotionDetailTypeForModel(value));\r\n const [data, setData] =\r\n useState({ ...cleanPromotionDetailTypeData(promotionDetailType, value), promotionDetailType });\r\n const [schema, setSchema] = useState(Schema(promotionDetailType));\r\n\r\n const onPromotionDetailTypeChange = (newPromotionDetailType) => {\r\n setData((currentData) => {\r\n const mergedData = {\r\n ...currentData,\r\n ...cleanPromotionDetailTypeData(newPromotionDetailType, currentData),\r\n // Injecting UI state to help interconnected components, e.g. Currency\r\n promotionDetailType: newPromotionDetailType,\r\n };\r\n setPromotionDetailType(newPromotionDetailType);\r\n setSchema(Schema(newPromotionDetailType));\r\n onChange(mergedData);\r\n return mergedData;\r\n });\r\n };\r\n\r\n const onValidate = ({ data: newData }) => {\r\n setData((currentData) => {\r\n const mergedData = { ...currentData, ...newData };\r\n onChange(mergedData);\r\n return mergedData;\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isPromotionCode(promotionDetailType) &&\r\n { }}\r\n />\r\n }\r\n {isOnOrdersOver(promotionDetailType) &&\r\n {value.CurrencyCode}}\r\n />\r\n }\r\n \r\n \r\n );\r\n}\r\n\r\nPromotionDetail.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n promotionDetailTypeSelectClassName: PropTypes.string.isRequired,\r\n inputContainerClass: PropTypes.string.isRequired,\r\n inputClass: PropTypes.string.isRequired,\r\n inputExtraClass: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.shape({}),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n legacyI18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nPromotionDetail.defaultProps = {\r\n value: undefined,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withCustomValidation, withError } from '@bingads-webui-react/validation';\r\nimport { KendoStringDatePicker } from '@bingads-webui-react/kendo-date-picker';\r\n\r\nconst dateMethodOptions = {\r\n raw: 'yyyy-MM-dd',\r\n};\r\n\r\nconst StartAndEndDate = React.memo(({\r\n value, onChange, i18n, id, className, updateValidation,\r\n startDateClassName, endDateClassName, startAndEndDateSeparator,\r\n}) => {\r\n const [startDate, setStartDate] = useState(value.PromotionStartDate);\r\n const [endDate, setEndDate] = useState(value.PromotionEndDate);\r\n const [isPromotionStartDateInvalid, setIsPromotionStartDateInvalid] = useState(false);\r\n const [isPromotionEndDateInvalid, setIsPromotionEndDateInvalid] = useState(false);\r\n\r\n const validate = useCallback(() => {\r\n const startDateObject =\r\n (startDate && i18n.parseDate(startDate.substr(0, 10), dateMethodOptions)) ||\r\n startDate;\r\n const endDateObject =\r\n (endDate && i18n.parseDate(endDate.substr(0, 10), dateMethodOptions)) ||\r\n endDate;\r\n\r\n const messages = [];\r\n\r\n if (endDateObject && startDateObject && startDateObject > endDateObject) {\r\n messages.push(i18n.getString(_TL_('End date cannot be earlier than start date')));\r\n }\r\n\r\n // Raw date is non-empty string instead of Date object if invalid date entered.\r\n if (isPromotionStartDateInvalid || (!_.isEmpty(startDate) && startDateObject === null)) {\r\n messages.push(i18n.getString(_TL_('Invalid start date')));\r\n }\r\n\r\n if (isPromotionEndDateInvalid || (!_.isEmpty(endDate) && endDateObject === null)) {\r\n messages.push(i18n.getString(_TL_('Invalid end date')));\r\n }\r\n\r\n return messages;\r\n }, [startDate, endDate, i18n, isPromotionStartDateInvalid, isPromotionEndDateInvalid]);\r\n\r\n useEffect(() => {\r\n setStartDate(value.PromotionStartDate);\r\n setEndDate(value.PromotionEndDate);\r\n }, [value.PromotionStartDate, value.PromotionEndDate]);\r\n\r\n useEffect(() => {\r\n const errorMessages = validate();\r\n updateValidation(errorMessages);\r\n }, [startDate, endDate, validate, updateValidation]);\r\n\r\n useEffect(() => {\r\n onChange({ PromotionStartDate: startDate, PromotionEndDate: endDate });\r\n }, [onChange, startDate, endDate]);\r\n\r\n const onStartTimeChange = useCallback((PromotionStartDate) => {\r\n setStartDate(PromotionStartDate);\r\n setIsPromotionStartDateInvalid(false);\r\n }, []);\r\n\r\n const onEndTimeChange = useCallback((PromotionEndDate) => {\r\n setEndDate(PromotionEndDate);\r\n setIsPromotionEndDateInvalid(false);\r\n }, []);\r\n\r\n const onStartTimeError = useCallback((/* error */) => {\r\n setStartDate(undefined);\r\n setIsPromotionStartDateInvalid(true);\r\n }, []);\r\n\r\n const onEndTimeError = useCallback((/* error */) => {\r\n setEndDate(undefined);\r\n setIsPromotionEndDateInvalid(true);\r\n }, []);\r\n\r\n const usedStartTime = startDate ? startDate.substr(0, 10) : startDate;\r\n const usedEndTime = endDate ? endDate.substr(0, 10) : endDate;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n -\r\n
\r\n \r\n
\r\n
\r\n );\r\n// eslint-disable-next-line max-len\r\n}, (prevProps, nextProps) => prevProps.value.PromotionStartDate === nextProps.value.PromotionStartDate\r\n && prevProps.value.PromotionEndDate === nextProps.value.PromotionEndDate);\r\n\r\nStartAndEndDate.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n className: PropTypes.string.isRequired,\r\n startDateClassName: PropTypes.string.isRequired,\r\n endDateClassName: PropTypes.string.isRequired,\r\n startAndEndDateSeparator: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.shape({}),\r\n updateValidation: PropTypes.func.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nStartAndEndDate.defaultProps = {\r\n value: undefined,\r\n};\r\n\r\nexport const StartAndEndDateWithValidation =\r\n withError(withCustomValidation(StartAndEndDate));\r\n","import { getPromotionTypeForModel, isMonetary } from './promotion-type';\r\nimport { getPromotionDetailTypeForModel, isOnOrdersOver } from './promotion-detail';\r\n\r\nexport const isCurrencyRequired = model =>\r\n (model.promotionType && isMonetary(model.promotionType)) ||\r\n (!model.promotionType && isMonetary(getPromotionTypeForModel(model))) ||\r\n (model.promotionDetailType && isOnOrdersOver(model.promotionDetailType)) ||\r\n (!model.promotionDetailType && isOnOrdersOver(getPromotionDetailTypeForModel(model)));\r\n","import _ from 'underscore';\r\nimport React, { useState, useMemo, useCallback } from 'react';\r\nimport { Panel } from 'react-bootstrap';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withThemeFromProps } from '@bingads-webui-react/with-theme-from-props';\r\nimport { UiBlocker } from '@bingads-webui-react/ui-blocker';\r\nimport { withValidation, withError, GenericAdapter } from '@bingads-webui-react/validation';\r\nimport { Input, ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { Button, Label } from '@bingads-webui-react/primitive';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { PromotionAdExtension } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { ValidationStringMap } from '@bingads-webui/validation-string-map';\r\nimport { UpgradeUrlStringMap } from '@bingads-webui-campaign/upgrade-url-string-map';\r\nimport { buildLegacyI18n } from '@bingads-webui/build-legacy-i18n';\r\nimport { UrlEditorForArray } from '@bingads-webui-campaign-react/url-editor';\r\nimport {\r\n LanguageSelect as LanguageSelectPure,\r\n FinalUrlSuffix,\r\n TrackingTemplate,\r\n CustomParameters,\r\n buildSchedulingView,\r\n stringifyUnexpectedError,\r\n ErrorsContext,\r\n Errors,\r\n and, or, propertyIs, propertySuffixIs, isSchedulingError, unmappedError,\r\n} from '@bingads-webui-campaign/ad-extensions-shared';\r\nimport { getODataErrors } from '@bingads-webui-campaign/api-errors';\r\nimport { OccasionSelect as OccasionSelectPure } from './controls/occasion-select';\r\nimport { CurrencySelect as CurrencySelectPure } from './controls/currency-select';\r\nimport { PromotionType } from './controls/promotion-type';\r\nimport { getPromotionExtensionEditorStyles } from './promotion-extension-editor-style';\r\nimport { PromotionDetail } from './controls/promotion-detail';\r\nimport { StartAndEndDateWithValidation } from './controls/start-and-end-date';\r\nimport { isCurrencyRequired } from './rules/currency';\r\n\r\nconst GENERIC_ERROR = _TL_(\"We've encountered an error and can't continue. Please contact support for further assistance.\");\r\n\r\nconst OccasionSelect = withError(withValidation(OccasionSelectPure, GenericAdapter));\r\nconst LanguageSelect = withError(withValidation(LanguageSelectPure, GenericAdapter));\r\nconst CurrencySelect = withError(withValidation(CurrencySelectPure, GenericAdapter));\r\n\r\nconst whitelistedSchemaPropertyKeys = ['Id', 'Language', 'Occasion', 'DiscountModifier', 'MoneyAmountOff', 'PercentOff', 'OrdersOverAmount', 'PromotionCode', 'PromotionItem', 'PromotionStartDate', 'PromotionEndDate', 'FinalMobileUrls', 'FinalUrls', 'FinalUrlSuffix', 'TrackingUrlTemplate', 'UrlCustomParameters', 'Scheduling'];\r\n\r\nfunction cleanModel(rawModel) {\r\n const stage1 = _.pick(rawModel, [\r\n ...whitelistedSchemaPropertyKeys,\r\n ...(isCurrencyRequired(rawModel) ? ['CurrencyCode'] : []),\r\n ]);\r\n // Cleaning UrlCustomParameters of initial item added by validation\r\n // where both Key and Value are undefined.\r\n const customParameters = _.filter(\r\n stage1.UrlCustomParameters,\r\n item => !_.isEmpty(item.Key) || !_.isEmpty(item.Value)\r\n );\r\n return _.extend({}, stage1, { UrlCustomParameters: customParameters });\r\n}\r\n\r\nexport const PromotionExtensionEditor = ({\r\n classes,\r\n extension,\r\n i18n,\r\n legacyI18n: adExtI18n, // passed from legacy-ui, if needed\r\n data: {\r\n extension: repository,\r\n },\r\n instrumentation,\r\n onCreated,\r\n onUpdated,\r\n onCancel,\r\n permissions,\r\n deps: {\r\n SchedulingView: LegacySchedulingView,\r\n },\r\n}) => {\r\n const isEditing = extension && !!extension.Id;\r\n\r\n const { scenario } = useMemo(() => instrumentation.createScenarioAndActivity({\r\n scenarioName: 'PromotionAdExtensions',\r\n activityName: isEditing ? 'EditAdExtension' : 'CreateAdExtension',\r\n }), [instrumentation, isEditing]);\r\n\r\n const [isBlocking, setIsBlocking] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [formErrors, setFormErrors] = useState([]);\r\n\r\n const localLegacyI18n = useMemo(() =>\r\n (buildLegacyI18n(i18n, [ValidationStringMap, UpgradeUrlStringMap])), [i18n]);\r\n const SchedulingView =\r\n useMemo(() => buildSchedulingView(LegacySchedulingView), [LegacySchedulingView]);\r\n\r\n const { IsDomesticSimplifiedChineseEnabled } = permissions;\r\n\r\n const initialData = cleanModel({\r\n Language: IsDomesticSimplifiedChineseEnabled ? 'SimplifiedChinese' : 'English',\r\n Occasion: 'None',\r\n DiscountModifier: 'None',\r\n MoneyAmountOff: null,\r\n PercentOff: null,\r\n PromotionCode: null,\r\n OrdersOverAmount: null,\r\n FinalMobileUrls: [],\r\n FinalUrls: [],\r\n FinalAppUrls: [],\r\n UrlCustomParameters: [],\r\n ...extension,\r\n }, PromotionAdExtension);\r\n\r\n const urlOptionsExpandedInitially = !!(extension &&\r\n (extension.TrackingUrlTemplate ||\r\n extension.FinalUrlSuffix ||\r\n !_.isEmpty(extension.UrlCustomParameters)));\r\n\r\n const [data, setData] = useState(initialData);\r\n const [prevData, setPrevData] = useState(initialData);\r\n const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});\r\n const [isFinalUrlSuffixValid, setIsFinalUrlSuffixValid] = useState(true);\r\n const [isCustomParametersValid, setIsCustomParametersValid] = useState(true);\r\n const [isScheduleValid, setIsScheduleValid] = useState(initialData);\r\n\r\n const hasNoChanges = useCallback(prop => () => !dirtyFieldsMap[prop], [dirtyFieldsMap]);\r\n\r\n const resetIsDirty = useCallback(() => {\r\n setDirtyFieldsMap({});\r\n }, []);\r\n\r\n const registerDataChange = useCallback((newData) => {\r\n _.each(newData, (value, key) => {\r\n if (key !== 'url' && !_.isEqual(_.result(prevData, key, null), _.result(newData, key, null))) {\r\n setDirtyFieldsMap({\r\n ...dirtyFieldsMap,\r\n [key]: true,\r\n });\r\n }\r\n });\r\n }, [prevData, dirtyFieldsMap]);\r\n\r\n const isCurrencyVisible = isCurrencyRequired(data);\r\n // If we for the first time enable currency field,\r\n // set the CurrencyCode to the default value\r\n if (isCurrencyVisible && !data.CurrencyCode) {\r\n setData(currentData => ({ ...currentData, CurrencyCode: 'USD' }));\r\n }\r\n\r\n const onValidate = useCallback(({ isValid: newIsValid, data: newData }) => {\r\n setIsValid(newIsValid);\r\n setData(currentData => ({ ...currentData, ...newData }));\r\n }, []);\r\n\r\n const onDataChange = useCallback((newData) => {\r\n registerDataChange(newData);\r\n setData(currentData => ({ ...currentData, ...newData }));\r\n }, [registerDataChange]);\r\n\r\n const onCustomParametersChange = useCallback(({ isValid: newIsValid, value }) => {\r\n setIsCustomParametersValid(newIsValid);\r\n onDataChange({ UrlCustomParameters: value });\r\n }, [onDataChange]);\r\n\r\n const onFinalUrlSuffixChange = useCallback(({ isValid: newIsValid, value }) => {\r\n setIsFinalUrlSuffixValid(newIsValid);\r\n onDataChange({ FinalUrlSuffix: value });\r\n }, [onDataChange]);\r\n\r\n const onScheduleChange = useCallback(({ isValid: newIsValid, value }) => {\r\n setIsScheduleValid(newIsValid);\r\n onDataChange({ Scheduling: value });\r\n }, [onDataChange]);\r\n\r\n const onSaveClicked = useCallback(() => {\r\n const saveActivity = scenario.createActivity('SaveAdExtension');\r\n saveActivity.start();\r\n\r\n setPrevData(data);\r\n\r\n setIsBlocking(true);\r\n repository\r\n .create(cleanModel(data))\r\n .then((newModel) => {\r\n saveActivity.stop(true);\r\n const callback = isEditing ? onUpdated : onCreated;\r\n callback(cleanModel(newModel));\r\n }, (errors) => {\r\n saveActivity.stop(false);\r\n let newFormErrors;\r\n if (_.isArray(errors.errors)) {\r\n newFormErrors = getODataErrors(errors.errors, i18n);\r\n } else if (errors instanceof repository.BadResponseError) {\r\n newFormErrors = [errors];\r\n } else if (_.isArray(errors)) {\r\n newFormErrors = errors;\r\n } else {\r\n saveActivity.error(`Unexpected error: ${stringifyUnexpectedError(errors)}`);\r\n newFormErrors = [i18n.getString(GENERIC_ERROR)];\r\n }\r\n setFormErrors(newFormErrors);\r\n })\r\n .finally(() => {\r\n resetIsDirty();\r\n setIsBlocking(false);\r\n });\r\n }, [data, i18n, isEditing, onCreated, onUpdated, repository, scenario, resetIsDirty]);\r\n\r\n const { IsFinalURLSuffixPhase4Enabled } = permissions;\r\n\r\n /* eslint-disable max-len */\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n {isCurrencyVisible &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {isCurrencyVisible &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Displayed start date – Displayed end date matches your promotion extension’s Start date and End date below Selected days and hours.'))}\r\n level=\"Info\"\r\n icon={(
)}\r\n dismissible={false}\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {i18n.getString(_TL_('URL options'))}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {IsFinalURLSuffixPhase4Enabled &&\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {isEditing &&\r\n )}\r\n dismissible={false}\r\n />\r\n }\r\n )}\r\n dismissible={false}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n );\r\n /* eslint-enable max-len */\r\n};\r\n\r\nPromotionExtensionEditor.propTypes = {\r\n classes: PropTypes.shape({}).isRequired,\r\n onCreated: PropTypes.func.isRequired,\r\n onUpdated: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n extension: PropTypes.shape({\r\n Id: PropTypes.number,\r\n }),\r\n i18n: PropTypes.shape({ getString: PropTypes.func }).isRequired,\r\n legacyI18n: PropTypes.shape({ getString: PropTypes.func }).isRequired,\r\n data: PropTypes.shape({\r\n extension: PropTypes.shape({\r\n create: PropTypes.func,\r\n }),\r\n }).isRequired,\r\n instrumentation: PropTypes.shape({\r\n startScenario: PropTypes.func,\r\n startActivity: PropTypes.func,\r\n logMessage: PropTypes.func,\r\n endActivity: PropTypes.func,\r\n asLoggingStart: PropTypes.func,\r\n }),\r\n instrumentationSettings: PropTypes.shape({\r\n ACTIVITYNAME: PropTypes.shape({}),\r\n SCENARIONAME: PropTypes.shape({}),\r\n }),\r\n permissions: PropTypes.shape({\r\n IsDomesticSimplifiedChineseEnabled: PropTypes.bool,\r\n }).isRequired,\r\n deps: PropTypes.shape({\r\n SchedulingView: PropTypes.func.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nPromotionExtensionEditor.defaultProps = {\r\n extension: null,\r\n instrumentation: {\r\n startScenario: _.noop,\r\n startActivity: _.noop,\r\n logMessage: _.noop,\r\n endActivity: _.noop,\r\n asLoggingStart: _.constant(_.noop),\r\n },\r\n instrumentationSettings: {\r\n ACTIVITYNAME: {},\r\n SCENARIONAME: {},\r\n },\r\n};\r\n\r\nexport const StyledPromotionExtensionEditor = withThemeFromProps(withDefaultStyles(\r\n PromotionExtensionEditor,\r\n getPromotionExtensionEditorStyles\r\n));\r\n","export const ItemPreviewI18nKeys = [\r\n _TL_('Up to {{monetaryDiscount}} off'),\r\n _TL_('{{monetaryDiscount}} off'),\r\n _TL_('Up to {{percentDiscount}} off'),\r\n _TL_('{{percentDiscount}} off'),\r\n _TL_('On orders over {{amount}}'),\r\n _TL_('Code {{promotionCode}}'),\r\n _TL_('Valid {{startDate}} - {{endDate}}'),\r\n _TL_('Valid {{date}}'),\r\n _TL_('Starts {{startDate}}'),\r\n _TL_('Ends {{endDate}}'),\r\n].reduce((m, e) => { m[e] = e; return m; }, {}); // eslint-disable-line no-param-reassign\r\n","import { extend } from 'underscore';\r\nimport rawItemTemplate from './universal-item-template.pug';\r\nimport { OccasionI18nKeys } from '../i18n/occasion-i18n-keys';\r\nimport { ItemPreviewI18nKeys } from '../i18n/item-preview-i18n-keys';\r\nimport { getPromotionTypeForModel } from '../rules/promotion-type';\r\nimport { getPromotionDetailTypeForModel } from '../rules/promotion-detail';\r\n\r\nexport const getPromotionDataFormatConfig = arg0 => extend({\r\n OccasionI18nKeys,\r\n ItemPreviewI18nKeys,\r\n getPromotionTypeForModel,\r\n getPromotionDetailTypeForModel,\r\n}, arg0);\r\n\r\nexport const universalItemTemplate = arg0 => rawItemTemplate(getPromotionDataFormatConfig(arg0));\r\n","export const AdPlacementsGroupType = {\r\n searchImageAd: 'searchImageAd',\r\n msanImageAd: 'msanImageAd',\r\n imageExtension: 'imageExtension',\r\n perfMax: 'perfMax',\r\n streamlinedSignup: 'streamlinedSignup',\r\n adLibrary: 'adLibrary',\r\n msanBoostImageAd: 'msanBoostImage',\r\n appAd: 'appAd',\r\n appAdStart: 'appAdStart',\r\n responsiveSearchAd: 'responsiveSearchAd',\r\n dynamicSearchAd: 'dynamicSearchAd',\r\n};\r\n\r\nexport const AdPlacementsComponentTypes = {\r\n AdPlacementPreview: 'AdPlacementPreview',\r\n AdPlacementDynamicSearch: 'AdPlacementDynamicSearch',\r\n AdPlacementResponsiveSearch: 'AdPlacementResponsiveSearch',\r\n AdPlacementResponsiveSearchDesktop: 'AdPlacementResponsiveSearchDesktop',\r\n AdPlacementResponsiveSearchMobile: 'AdPlacementResponsiveSearchMobile',\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\n\r\nconst defaultLocalizedText = {\r\n previewTypeStringKey: '',\r\n stringKey: '',\r\n disclaimerMessage: '',\r\n};\r\n\r\nexport const getLocalizedText = (template, i18n) => _.defaults(\r\n {},\r\n _.mapObject(template.localizedText, val => i18n.getString(val)),\r\n defaultLocalizedText\r\n);\r\n\r\n// handle style overrides dependent on ad data\r\n// for preview workflows with include/exclude behavior\r\nexport const updateOpacityBasedOnIncludeState = (template, adData) => {\r\n const { image: { IsIncluded } } = adData;\r\n\r\n const styleOverrides = {\r\n ...template.styleOverrides,\r\n placementContainer: {\r\n ...template.styleOverrides.placementContainer,\r\n opacity: IsIncluded ? 100 : 50,\r\n },\r\n };\r\n\r\n return {\r\n ...template,\r\n styleOverrides,\r\n };\r\n};\r\n\r\nexport const defaultPreviewTextUrl = 'https://example.com';\r\n\r\nexport const getPreviewTexts = ({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n}) => {\r\n const { url, displayUrl } = adData;\r\n\r\n let processedUrl = url || defaultPreviewTextUrl;\r\n\r\n const previewTextKeys = _.keys(defaultPreviewTexts);\r\n\r\n if (!skipUrlValidation) {\r\n processedUrl = isValidUrl(url) ? new URL(url).origin : url;\r\n }\r\n\r\n const previewTextWithDefaults = _.defaults(_.pick(adData, previewTextKeys), defaultPreviewTexts);\r\n\r\n return _.extend(previewTextWithDefaults, {\r\n url: processedUrl,\r\n displayUrl,\r\n });\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Title part 1'),\r\n longHeadline: _TL_('Title part 1 | Title part 2 | Title part 3'),\r\n description: _TL_('Ad text 1. Ad text 2'),\r\n businessName: _TL_('Business name'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n previewTexts,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Title part 1'),\r\n longHeadline: _TL_('Title part 1 | Title part 2 | Title part 3'),\r\n description: _TL_('Ad text 1. Ad text 2'),\r\n businessName: _TL_('Business name'),\r\n callToAction: _TL_('Please select language first'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n className,\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n logoHeight,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n className,\r\n previewTexts,\r\n imagePreviewHeight,\r\n logoHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Short headline'),\r\n longHeadline: _TL_('Long headline'),\r\n description: _TL_('Ad text'),\r\n businessName: _TL_('Business name'),\r\n callToAction: _TL_('Please select language first'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n className,\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n className,\r\n previewTexts,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Short headline'),\r\n longHeadline: _TL_('Long headline'),\r\n description: _TL_('Ad text'),\r\n businessName: _TL_('Business name'),\r\n callToAction: _TL_('Please select language first'),\r\n};\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n previewTexts,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Short headline'),\r\n longHeadline: _TL_('Long headline'),\r\n description: _TL_('Ad text'),\r\n businessName: _TL_('Business name'),\r\n callToAction: _TL_('Please select language first'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n decoratorsData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation: true,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n previewTexts,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n decoratorsData,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_('Short headline'),\r\n businessName: _TL_('App name'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n className,\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n logoHeight,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n className,\r\n previewTexts,\r\n imagePreviewHeight,\r\n logoHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n shortHeadline: _TL_(''),\r\n longHeadline: _TL_(''),\r\n description: _TL_(''),\r\n businessName: _TL_(''),\r\n callToAction: _TL_(''),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = _.pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ..._.mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const skipUrlValidation = previewSettings.showUrlMultiline;\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n previewTexts,\r\n imagePreviewHeight,\r\n styleOverrides,\r\n ...previewSettings,\r\n ...localizedText,\r\n ...carryOverProperties,\r\n };\r\n};\r\n","import { mapObject, pick } from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n longHeadline: _TL_('Freshly Delivered Flowers | Save 10% | Free Delivery'),\r\n description: _TL_('Sustainably Grown Flowers On Sale and Ready To Ship. Order Now.'),\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n decoratorsData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ...mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation: true,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n i18n,\r\n previewTexts,\r\n styleOverrides,\r\n decoratorsData,\r\n ...carryOverProperties,\r\n ...localizedText,\r\n ...previewSettings,\r\n };\r\n};\r\n","import { mapObject, pick } from 'underscore';\r\n\r\nimport { staticTemplateProperties } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { getLocalizedText, getPreviewTexts } from '../common/index';\r\n\r\nconst defaultPreviewTextKeys = {\r\n headline: _TL_('{Dynamically generated headline}'),\r\n description: '',\r\n};\r\n\r\nexport const transformToTemplateData = ({\r\n adData,\r\n decoratorsData,\r\n template,\r\n i18n,\r\n}) => {\r\n const localizedText = getLocalizedText(template, i18n);\r\n const carryOverProperties = pick(template, staticTemplateProperties);\r\n const {\r\n previewSettings,\r\n styleOverrides,\r\n } = template;\r\n\r\n const defaultPreviewTexts = {\r\n ...mapObject(defaultPreviewTextKeys, stringKey => i18n.getString(stringKey)),\r\n };\r\n const previewTexts = getPreviewTexts({\r\n adData,\r\n skipUrlValidation: true,\r\n defaultPreviewTexts,\r\n });\r\n\r\n return {\r\n i18n,\r\n previewTexts,\r\n styleOverrides,\r\n decoratorsData,\r\n ...carryOverProperties,\r\n ...localizedText,\r\n ...previewSettings,\r\n };\r\n};\r\n","import { AdPlacementsGroupType } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nimport { transformToTemplateData as imageExtensionTransformer } from './image-extension/index';\r\nimport { transformToTemplateData as msanImageAdTransformer } from './msan-image-ad/index';\r\nimport { transformToTemplateData as perfMaxTransformer } from './perf-max/index';\r\nimport { transformToTemplateData as searchImageAdTransformer } from './search-image-ad/index';\r\nimport { transformToTemplateData as streamlinedSignupTransformer } from './streamlined-signup/index';\r\nimport { transformToTemplateData as appAdTransformer } from './app-ad/index';\r\nimport { transformToTemplateData as adLibraryTransformer } from './ad-library/index';\r\nimport { transformToTemplateData as responsiveSearchAdTransformer } from './responsive-search-ad/index';\r\nimport { transformToTemplateData as dynamicSearchAdTransformer } from './dynamic-search-ad/index';\r\n\r\nexport const GroupTypeTransformerMapping = {\r\n [AdPlacementsGroupType.imageExtension]: imageExtensionTransformer,\r\n [AdPlacementsGroupType.msanImageAd]: msanImageAdTransformer,\r\n [AdPlacementsGroupType.perfMax]: perfMaxTransformer,\r\n [AdPlacementsGroupType.searchImageAd]: searchImageAdTransformer,\r\n [AdPlacementsGroupType.streamlinedSignup]: streamlinedSignupTransformer,\r\n [AdPlacementsGroupType.adLibrary]: adLibraryTransformer,\r\n [AdPlacementsGroupType.msanBoostImageAd]: msanImageAdTransformer,\r\n [AdPlacementsGroupType.appAd]: appAdTransformer,\r\n [AdPlacementsGroupType.appAdStart]: appAdTransformer,\r\n [AdPlacementsGroupType.responsiveSearchAd]: responsiveSearchAdTransformer,\r\n [AdPlacementsGroupType.dynamicSearchAd]: dynamicSearchAdTransformer,\r\n};\r\n","export const getSinglePlacementStyles = () => ({\r\n singlePlacement: {},\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getSinglePlacementStyles } from './styles';\r\n\r\nexport const SinglePlacement = ({ onRenderPlacement }) => {\r\n const classes = useDefaultStyles(getSinglePlacementStyles);\r\n\r\n return (\r\n
\r\n {onRenderPlacement()}\r\n
\r\n );\r\n};\r\n\r\nSinglePlacement.propTypes = {\r\n onRenderPlacement: PropTypes.func.isRequired,\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Carousel } from '@bingads-webui-react/primitive-unthemed';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getPreviewCarouselStyles } from './styles';\r\n\r\nclass PreviewCarouselRaw extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.carouselRef = React.createRef();\r\n this.state = {\r\n direction: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.enableAutoPlay) {\r\n this.setAutoRotate();\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.props.enableAutoPlay && !this.autoRotateListener) {\r\n this.setAutoRotate();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.clearAutoRotateListener();\r\n }\r\n\r\n setAutoRotate = () => {\r\n // disable auto-rotate in test\r\n /* istanbul ignore if */\r\n if (window.e2eTestEnvironment) {\r\n return;\r\n }\r\n\r\n this.clearAutoRotateListener();\r\n const { index, setIndex } = this.props;\r\n\r\n const indicators = this.carouselRef.current && this.carouselRef.current.querySelector('.new-preview-carousel-container-adprelib .carousel-indicators');\r\n\r\n // make sure we have the correct preview to rotate\r\n const previewCount = (indicators && indicators.childElementCount);\r\n let nextIndex = index + 1;\r\n\r\n /* istanbul ignore next */\r\n if (nextIndex >= previewCount) {\r\n nextIndex = 0;\r\n }\r\n\r\n this.autoRotateListener = setTimeout(() => {\r\n /* istanbul ignore next */\r\n this.setState({\r\n direction: 'next',\r\n });\r\n setIndex(nextIndex);\r\n this.setAutoRotate();\r\n }, 3000);\r\n };\r\n\r\n clearAutoRotateListener = () => {\r\n if (this.autoRotateListener) {\r\n clearTimeout(this.autoRotateListener);\r\n this.autoRotateListener = null;\r\n }\r\n };\r\n\r\n handleSelect = (selectedIndex, e) => {\r\n this.setState({\r\n direction: e.direction,\r\n }, () => this.clearAutoRotateListener());\r\n\r\n this.props.setIndex(selectedIndex);\r\n };\r\n\r\n render() {\r\n const { direction } = this.state;\r\n const {\r\n previewElements,\r\n index,\r\n hideNavigationControlsIfSingle,\r\n moveNavigationControlsToBottom,\r\n classes,\r\n } = this.props;\r\n\r\n let carouselClasses;\r\n\r\n if (hideNavigationControlsIfSingle && previewElements.length === 1) {\r\n carouselClasses = classes.hideNavigation;\r\n } else {\r\n carouselClasses = moveNavigationControlsToBottom\r\n ? classnames(classes.bottomCarouselNavigation, 'new-carousel-navigation-mma-adprelib')\r\n : classes.carouselNavigation;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {\r\n previewElements.map(previewElement => (\r\n \r\n {previewElement}\r\n \r\n ))\r\n }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nPreviewCarouselRaw.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n parseDecimal: PropTypes.func.isRequired,\r\n }).isRequired,\r\n previewElements: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n classes: PropTypes.shape({\r\n carouselRoot: PropTypes.string.isRequired,\r\n carouselNavigation: PropTypes.string.isRequired,\r\n bottomCarouselNavigation: PropTypes.string.isRequired,\r\n hideNavigation: PropTypes.string.isRequired,\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n setIndex: PropTypes.func.isRequired,\r\n hideNavigationControlsIfSingle: PropTypes.bool,\r\n moveNavigationControlsToBottom: PropTypes.bool,\r\n enableAutoPlay: PropTypes.bool,\r\n};\r\n\r\nPreviewCarouselRaw.defaultProps = {\r\n hideNavigationControlsIfSingle: false,\r\n moveNavigationControlsToBottom: true,\r\n enableAutoPlay: true,\r\n};\r\n\r\nexport const PreviewCarousel = (props) => {\r\n const { styleOverrides, previewElements } = props;\r\n // eslint-disable-next-line arrow-body-style\r\n const StyledPreviewCarousel = useMemo(() => {\r\n return withDefaultStyles(PreviewCarouselRaw, getPreviewCarouselStyles({ styleOverrides: styleOverrides.previewCarousel, numberOfElements: previewElements.length }));\r\n }, [styleOverrides, previewElements]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nPreviewCarousel.propTypes = {\r\n styleOverrides: PropTypes.shape({\r\n previewCarousel: PropTypes.shape({}),\r\n }),\r\n previewElements: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nPreviewCarousel.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","import { pick, extend } from 'underscore';\r\n\r\nexport const getPreviewCarouselStyles = ({ styleOverrides = {}, numberOfElements }) => (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => {\r\n const overrides = pick(styleOverrides, [\r\n 'carouselRoot',\r\n 'bottomCarouselNavigation',\r\n 'carouselNavigation',\r\n ]);\r\n\r\n return {\r\n carouselRoot: extend({\r\n '& .carousel-inner': {\r\n paddingBottom: 64,\r\n '& > .item.active': {\r\n paddingLeft: 24,\r\n paddingRight: 24,\r\n },\r\n },\r\n '& ol.carousel-indicators': {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: 'auto',\r\n\r\n '& li': {\r\n background: 'none',\r\n border: '1px solid #605E5C',\r\n borderRadius: 10,\r\n margin: '0 10px 0 0',\r\n height: 10,\r\n width: 10,\r\n },\r\n\r\n '& li.active': {\r\n background: palette.themePrimary,\r\n border: `1px solid ${palette.themePrimary}`,\r\n },\r\n },\r\n\r\n '& .carousel-controls': {\r\n display: 'none',\r\n },\r\n\r\n '& .carousel-control': {\r\n color: palette.themePrimary,\r\n position: 'absolute',\r\n left: 'auto',\r\n top: 'auto',\r\n right: 0,\r\n bottom: 0,\r\n height: 32,\r\n width: 20,\r\n margin: '20px 24px',\r\n textShadow: 'none',\r\n\r\n '&:focus': {\r\n outline: `1px solid ${palette.neutralSecondary}`,\r\n },\r\n\r\n '&.left': {\r\n marginRight: 76,\r\n },\r\n\r\n '& .glyphicon-chevron-left, & .glyphicon-chevron-right': {\r\n fontFamily: iconFontFamily,\r\n position: 'relative',\r\n top: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n left: 'auto',\r\n margin: 0,\r\n fontSize: 16,\r\n lineHeight: 1,\r\n verticalAlign: 0,\r\n },\r\n },\r\n }, overrides.carouselRoot),\r\n bottomCarouselNavigation: extend({\r\n '& .carousel-control.left': {\r\n position: 'absolute',\r\n left: 0,\r\n marginLeft: 15,\r\n marginRight: 76,\r\n marginTop: 20,\r\n bottom: -7,\r\n background: 'transparent',\r\n },\r\n '& .carousel-control.right': {\r\n position: 'absolute',\r\n left: 0,\r\n bottom: -7,\r\n marginTop: 20,\r\n marginLeft: (145 / 3) + ((65 * numberOfElements) / 3),\r\n background: 'transparent',\r\n },\r\n '& .carousel-indicators': {\r\n left: '20px !important',\r\n margin: '20px 24px !important',\r\n },\r\n '& .carousel-inner > .item.active': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n },\r\n }, overrides.bottomCarouselNavigation),\r\n carouselNavigation: extend({\r\n '& .carousel-control.left': {\r\n position: 'absolute',\r\n left: 0,\r\n marginLeft: 15,\r\n bottom: -7,\r\n },\r\n '& .carousel-control.right': {\r\n position: 'absolute',\r\n left: 45,\r\n bottom: -7,\r\n marginLeft: 155,\r\n },\r\n '& .carousel-indicators': {\r\n left: '20px',\r\n },\r\n }, overrides.carouselNavigation),\r\n hideNavigation: {\r\n '& .carousel-control': {\r\n display: 'none !important',\r\n },\r\n '& .carousel-indicators': {\r\n display: 'none !important',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getPreviewCarouselLayoutStyles = ({ styleOverrides = {} }) => () => ({\r\n root: extend({\r\n border: '1px solid #C8C8C8',\r\n margin: 0,\r\n width: '100%',\r\n minWidth: 669,\r\n }, styleOverrides.root),\r\n});\r\n","import React, { useContext, useMemo } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { TooltipHost } from '@bingads-webui-react/fabric-control';\r\n\r\nimport {\r\n getSimplePreviewCarouselHeaderStyles,\r\n getPreviewCarouselHeaderWithButtonsStyles,\r\n getIncludeExcludeEditButtonStyles,\r\n getReCropReplaceButtonsStyles,\r\n} from './styles/header';\r\n\r\nconst SimplePreviewCarouselHeader = ({\r\n title,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getSimplePreviewCarouselHeaderStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {title}\r\n
\r\n );\r\n};\r\n\r\nSimplePreviewCarouselHeader.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nSimplePreviewCarouselHeader.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\nconst IncludeExcludeEditButtons = ({\r\n index,\r\n isIncludedImage,\r\n isRecommendedImage,\r\n getIsRequiredByIndex,\r\n getTemplateTypeByIndex,\r\n onAddAspectRatio,\r\n onRemoveAspectRatio,\r\n onEdit,\r\n styleOverrides,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getIncludeExcludeEditButtonStyles({ styleOverrides }));\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const isRequired = useMemo(() => {\r\n return getIsRequiredByIndex(index);\r\n }, [getIsRequiredByIndex, index]);\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const excludeButton = useMemo(() => {\r\n return (\r\n onRemoveAspectRatio(getTemplateTypeByIndex(index))}\r\n disabled={isRequired}\r\n data-index={index}\r\n >\r\n { i18n.getString(_TL_('Exclude')) }\r\n \r\n );\r\n }, [index, i18n, onRemoveAspectRatio, classes, isRequired, getTemplateTypeByIndex]);\r\n\r\n return (\r\n
\r\n {!isIncludedImage ?\r\n (onAddAspectRatio &&\r\n onAddAspectRatio(getTemplateTypeByIndex(index))}\r\n data-index={index}\r\n >\r\n { i18n.getString(_TL_('Include')) }\r\n \r\n ) :\r\n (\r\n \r\n {!isRecommendedImage &&\r\n onEdit(getTemplateTypeByIndex(index))}\r\n data-index={index}\r\n title={i18n.getString(_TL_('Edit aspect ratio'))}\r\n >\r\n { i18n.getString(_TL_('Edit aspect ratio')) }\r\n \r\n }\r\n {isRequired ?\r\n (onRemoveAspectRatio &&\r\n \r\n { excludeButton }\r\n \r\n )\r\n : (onRemoveAspectRatio && excludeButton)\r\n }\r\n \r\n )\r\n }\r\n
\r\n );\r\n};\r\n\r\nIncludeExcludeEditButtons.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n isIncludedImage: PropTypes.bool.isRequired,\r\n isRecommendedImage: PropTypes.bool.isRequired,\r\n getIsRequiredByIndex: PropTypes.func.isRequired,\r\n onAddAspectRatio: PropTypes.func,\r\n onRemoveAspectRatio: PropTypes.func,\r\n onEdit: PropTypes.func.isRequired,\r\n getTemplateTypeByIndex: PropTypes.func.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nIncludeExcludeEditButtons.defaultProps = {\r\n onAddAspectRatio: undefined,\r\n onRemoveAspectRatio: undefined,\r\n styleOverrides: {},\r\n};\r\n\r\nconst ReCropReplaceButtons = ({\r\n index,\r\n onCrop,\r\n onReplace,\r\n styleOverrides,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getReCropReplaceButtonsStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n onCrop(index)}\r\n data-index={index}\r\n >\r\n { i18n.getString(_TL_('Re-crop')) }\r\n \r\n onReplace(index)}\r\n data-index={index}\r\n >\r\n { i18n.getString(_TL_('Replace'))}\r\n \r\n
\r\n );\r\n};\r\n\r\nReCropReplaceButtons.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n onCrop: PropTypes.func.isRequired,\r\n onReplace: PropTypes.func.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nReCropReplaceButtons.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\nconst PreviewCarouselHeaderWithButtons = ({\r\n index,\r\n title,\r\n headerButtonProps,\r\n selectedImage,\r\n styleOverrides,\r\n getIsRequiredByIndex,\r\n getTemplateTypeByIndex,\r\n}) => {\r\n const classes = useDefaultStyles(getPreviewCarouselHeaderWithButtonsStyles({ styleOverrides }));\r\n const { onCrop } = headerButtonProps;\r\n\r\n return (\r\n
\r\n
\r\n {title}\r\n
\r\n
\r\n { onCrop ?\r\n :\r\n }\r\n
\r\n );\r\n};\r\n\r\nPreviewCarouselHeaderWithButtons.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n title: PropTypes.string.isRequired,\r\n headerButtonProps: PropTypes.shape({\r\n onCrop: PropTypes.func,\r\n }).isRequired,\r\n selectedImage: PropTypes.shape({}).isRequired,\r\n getIsRequiredByIndex: PropTypes.func.isRequired,\r\n getTemplateTypeByIndex: PropTypes.func.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nPreviewCarouselHeaderWithButtons.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\nexport const Header = (props) => {\r\n const {\r\n index,\r\n getCarouselTitleByIndex,\r\n getIsRequiredByIndex,\r\n selectedImage,\r\n headerButtonProps,\r\n hideHeaderButtons,\r\n isImageValid,\r\n styleOverrides,\r\n getTemplateTypeByIndex,\r\n shouldHideHeaderButtonsByIndex,\r\n } = props;\r\n\r\n const title = useMemo(() => getCarouselTitleByIndex(index), [index, getCarouselTitleByIndex]);\r\n const { header: headerStyles } = styleOverrides;\r\n\r\n if (!hideHeaderButtons && isImageValid && headerButtonProps && !shouldHideHeaderButtonsByIndex(index)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n selectedImage: PropTypes.shape({}).isRequired,\r\n getCarouselTitleByIndex: PropTypes.func.isRequired,\r\n getIsRequiredByIndex: PropTypes.func.isRequired,\r\n isImageValid: PropTypes.bool.isRequired,\r\n getTemplateTypeByIndex: PropTypes.func.isRequired,\r\n shouldHideHeaderButtonsByIndex: PropTypes.func.isRequired,\r\n hideHeaderButtons: PropTypes.bool,\r\n headerButtonProps: PropTypes.shape({}),\r\n styleOverrides: PropTypes.shape({\r\n header: PropTypes.shape({}),\r\n }),\r\n};\r\n\r\nHeader.defaultProps = {\r\n hideHeaderButtons: false,\r\n headerButtonProps: null,\r\n styleOverrides: {},\r\n};\r\n","import { extend } from 'underscore';\r\n\r\nexport const getSimplePreviewCarouselHeaderStyles = ({\r\n styleOverrides = {},\r\n}) => () => ({\r\n title: extend({\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n lineHeight: '24px',\r\n margin: '20px 24px 16px 24px',\r\n '&.with-additional-tag': {\r\n marginRight: 8,\r\n display: 'inline-block',\r\n },\r\n }, styleOverrides.title),\r\n});\r\n\r\nexport const getPreviewCarouselHeaderWithButtonsStyles = ({\r\n styleOverrides = {},\r\n}) => () => ({\r\n headerRoot: extend({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n }, styleOverrides.headerRoot),\r\n title: extend({\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n lineHeight: '24px',\r\n margin: '20px 24px 16px 24px',\r\n '&.with-additional-tag': {\r\n marginRight: 8,\r\n display: 'inline-block',\r\n },\r\n }, styleOverrides.title),\r\n buttons: extend({\r\n flexGrow: 1,\r\n }, styleOverrides.buttons),\r\n});\r\n\r\nexport const getIncludeExcludeEditButtonStyles = ({\r\n styleOverrides = {},\r\n}) => () => ({\r\n exclude: extend({}, styleOverrides.exclude),\r\n actionButtons: extend({\r\n display: 'inline-block',\r\n flexGrow: 0,\r\n marginRight: 16,\r\n textAlign: 'center',\r\n }, styleOverrides.actionButtons),\r\n});\r\n\r\nexport const getReCropReplaceButtonsStyles = ({\r\n styleOverrides = {},\r\n}) => () => ({\r\n recrop: extend({}, styleOverrides.recrop),\r\n replace: extend({}, styleOverrides.replace),\r\n});\r\n","import { extend } from 'underscore';\r\n\r\nexport const getValidationMessageStyles = ({\r\n styleOverrides = {},\r\n}) => () => ({\r\n validationError: extend({\r\n fontSize: 14,\r\n lineHeight: 2,\r\n marginRight: 16,\r\n display: 'block',\r\n width: '100%',\r\n textAlign: 'center',\r\n }, styleOverrides.validationError),\r\n});\r\n","import React, { useContext } from 'react';\r\nimport classnames from 'classnames';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { getValidationMessageStyles } from './styles/validation-message';\r\n\r\nexport const ValidationMessage = ({\r\n index,\r\n selectedImage,\r\n isImageValid,\r\n getMinSizeByIndex,\r\n styleOverrides,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getValidationMessageStyles({ styleOverrides: styleOverrides.validationMessage }));\r\n\r\n if (_.result(selectedImage, 'isIncluded') !== true) {\r\n // todo need to handle not supported state??\r\n if (!isImageValid) {\r\n const { minWidth, minHeight } = getMinSizeByIndex(index);\r\n\r\n const messageTemplate = _TL_('To include this aspect ratio, add a new image that is at least {{width}} x {{height}} pixels.');\r\n\r\n return (\r\n \r\n {\r\n i18n.getString(messageTemplate, {\r\n width: minWidth,\r\n height: minHeight,\r\n })\r\n }\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nValidationMessage.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n selectedImage: PropTypes.shape({}).isRequired,\r\n getMinSizeByIndex: PropTypes.func.isRequired,\r\n isImageValid: PropTypes.bool.isRequired,\r\n styleOverrides: PropTypes.shape({\r\n validationMessage: PropTypes.shape({}),\r\n }),\r\n};\r\n\r\nValidationMessage.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const getDisclaimerMessageStyles = ({\r\n styleOverrides = {},\r\n}) => () => {\r\n const overrides = _.pick(styleOverrides, [\r\n 'disclaimerInfo',\r\n 'disclaimerInfoInline',\r\n ]);\r\n\r\n return {\r\n disclaimerInfo: _.extend({\r\n fontSize: 12,\r\n lineHeight: '20px',\r\n textAlign: 'left',\r\n padding: '0 24px 20px 24px',\r\n }, overrides.disclaimerInfo),\r\n disclaimerInfoInline: _.extend({}, overrides.disclaimerInfoInline),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getDisclaimerMessageStyles } from './styles/disclaimer-message';\r\n\r\nexport const DisclaimerMessage = ({\r\n disclaimerMessage,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getDisclaimerMessageStyles({ styleOverrides: styleOverrides.disclaimerMessage }));\r\n\r\n if (disclaimerMessage) {\r\n return (\r\n
\r\n
\r\n {disclaimerMessage}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nDisclaimerMessage.propTypes = {\r\n disclaimerMessage: PropTypes.string,\r\n styleOverrides: PropTypes.shape({\r\n disclaimerMessage: PropTypes.shape({}),\r\n }),\r\n};\r\n\r\nDisclaimerMessage.defaultProps = {\r\n disclaimerMessage: '',\r\n styleOverrides: {},\r\n};\r\n","import { extend } from 'underscore';\r\n\r\nexport const getFooterButtonStyles = ({\r\n styleOverrides = {},\r\n}) => (_, { palette = {} }) => ({\r\n footerButton: extend({\r\n position: 'relative',\r\n float: 'right',\r\n bottom: 113,\r\n color: palette.themePrimary,\r\n '& .iconba': {\r\n top: 1,\r\n fontSize: 16,\r\n },\r\n }, styleOverrides.footerButton),\r\n});\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ActionButton } from '@bingads-webui-react/fabric-control';\r\n\r\nimport { getFooterButtonStyles } from './styles/footer-button';\r\n\r\nexport const FooterButton = ({\r\n index,\r\n selectedImage,\r\n footerButtonProps,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getFooterButtonStyles({ styleOverrides: styleOverrides.footerButton }));\r\n\r\n if (footerButtonProps) {\r\n const {\r\n onClick,\r\n onRenderIcon,\r\n buttonText,\r\n buttonClassName,\r\n } = footerButtonProps;\r\n\r\n return (\r\n onClick({ index, selectedImage })}\r\n >\r\n { buttonText }\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nFooterButton.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n selectedImage: PropTypes.shape({}).isRequired,\r\n footerButtonProps: PropTypes.shape({\r\n onClick: PropTypes.func,\r\n onRenderIcon: PropTypes.func,\r\n buttonText: PropTypes.string,\r\n buttonClassName: PropTypes.string,\r\n }),\r\n styleOverrides: PropTypes.shape({\r\n footerButton: PropTypes.shape({}),\r\n }),\r\n};\r\n\r\nFooterButton.defaultProps = {\r\n footerButtonProps: null,\r\n styleOverrides: {},\r\n};\r\n","\r\nexport const getGridPreviewCarouselStyle = () => ({\r\n gridPreviewContainer: {\r\n '& .ms-Panel-main': {\r\n width: '90%',\r\n '@media screen and (min-width: 1377px)': {\r\n width: 1377,\r\n },\r\n },\r\n '& .placements-grid-preview-cell': {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .preview-header': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n\r\n '& .ad-preview-title.with-additional-tag': {\r\n marginRight: 8,\r\n display: 'inline-block',\r\n flexGrow: 0,\r\n },\r\n\r\n '& .flex-grow': {\r\n flexGrow: 1,\r\n },\r\n\r\n '& .ad-preview-actions.inline-title': {\r\n display: 'inline-block',\r\n flexGrow: 0,\r\n '& > button': {\r\n marginRight: 8,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getAdPlacementStyle = () => ({\r\n cellRoot: {\r\n height: '100%',\r\n maxHeight: 482,\r\n },\r\n placementRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n maxHeight: 422,\r\n '& .ad-placement-preview': {\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .new-responsive-ad-preview-container': {\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& .card-parent': {\r\n display: 'flex',\r\n flexGrow: 1,\r\n flexDirection: 'column',\r\n '& .ad-placement-card-preview': {\r\n display: 'flex',\r\n flexGrow: 1,\r\n flexDirection: 'column',\r\n },\r\n },\r\n '& a.responsive-ad-preview-content': {\r\n display: 'block',\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n borderRadius: 5.11,\r\n background: '#fff',\r\n margin: 'auto',\r\n top: 0,\r\n },\r\n '& .additional-disclaimer-message': {\r\n position: 'static',\r\n textAlign: 'center',\r\n },\r\n '& .preview-string': {\r\n position: 'static',\r\n },\r\n },\r\n },\r\n '& .action-label': {\r\n textAlign: 'center',\r\n fontSize: 16,\r\n lineHeight: 2,\r\n },\r\n },\r\n});\r\n","import React, {\r\n useState,\r\n useCallback,\r\n useMemo,\r\n useContext,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { AdPlacementsGridPreviewPanel } from '@bingads-webui-campaign-react/ad-placements-grid-preview';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { getGridPreviewCarouselStyle, getAdPlacementStyle } from './styles';\r\nimport { Header } from '../header';\r\nimport { ValidationMessage } from '../validation-message';\r\n\r\nconst AllPlacementsPanel = ({\r\n isOpen,\r\n onDismiss,\r\n className,\r\n cellsNumberPerRow,\r\n totalCount,\r\n onRenderCell,\r\n cellHeight,\r\n}) => {\r\n const classes = useDefaultStyles(getGridPreviewCarouselStyle);\r\n\r\n const props = {\r\n isOpen,\r\n onDismiss,\r\n cellsNumberPerRow,\r\n totalCount,\r\n onRenderCell,\r\n cellHeight,\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nAllPlacementsPanel.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n cellsNumberPerRow: PropTypes.number.isRequired,\r\n totalCount: PropTypes.number.isRequired,\r\n onRenderCell: PropTypes.func.isRequired,\r\n className: PropTypes.string,\r\n cellHeight: PropTypes.number,\r\n};\r\n\r\nAllPlacementsPanel.defaultProps = {\r\n className: '',\r\n cellHeight: 482,\r\n};\r\n\r\nexport const useAllPlacementsPanel = ({\r\n previewElements,\r\n getSelectedImage,\r\n headerButtonProps,\r\n getCarouselTitleByIndex,\r\n isImageValid,\r\n getIsRequiredByIndex,\r\n getMinSizeByIndex,\r\n styleOverrides,\r\n shouldHideHeaderButtonsByIndex,\r\n getTemplateTypeByIndex,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getAdPlacementStyle);\r\n\r\n const onDismiss = useCallback(() => {\r\n setIsOpen(false);\r\n }, []);\r\n\r\n const onRenderCell = useCallback((index) => {\r\n const previewElement = previewElements[index];\r\n const selectedImage = getSelectedImage(index);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {previewElement}\r\n
\r\n
\r\n );\r\n }, [\r\n classes,\r\n previewElements,\r\n getSelectedImage,\r\n headerButtonProps,\r\n getCarouselTitleByIndex,\r\n isImageValid,\r\n getMinSizeByIndex,\r\n styleOverrides,\r\n getIsRequiredByIndex,\r\n shouldHideHeaderButtonsByIndex,\r\n getTemplateTypeByIndex,\r\n ]);\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const panelElement = useMemo(() => {\r\n return (\r\n \r\n );\r\n }, [isOpen, onDismiss, previewElements, onRenderCell]);\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n const footerButtonProps = useMemo(() => {\r\n return {\r\n onClick: () => setIsOpen(true),\r\n onRenderIcon: () => (\r\n \r\n ),\r\n buttonText: i18n.getString(_TL_('View example placements')),\r\n buttonClassName: 'view-placements',\r\n };\r\n }, [i18n]);\r\n\r\n return {\r\n panelElement,\r\n footerButtonProps,\r\n };\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useAllPlacementsPanel } from './all-placements-panel';\r\nimport { FooterButton } from './footer-button';\r\n\r\nconst AllPlacementsCore = ({\r\n index,\r\n getSelectedImage,\r\n previewElements,\r\n getImageInfoByIndex,\r\n getCarouselTitleByIndex,\r\n isImageValid,\r\n getIsRequiredByIndex,\r\n getMinSizeByIndex,\r\n headerButtonProps,\r\n styleOverrides,\r\n shouldHideHeaderButtonsByIndex,\r\n getTemplateTypeByIndex,\r\n}) => {\r\n const { panelElement, footerButtonProps } = useAllPlacementsPanel({\r\n previewElements,\r\n getImageInfoByIndex,\r\n headerButtonProps,\r\n getCarouselTitleByIndex,\r\n isImageValid,\r\n getIsRequiredByIndex,\r\n getMinSizeByIndex,\r\n styleOverrides,\r\n shouldHideHeaderButtonsByIndex,\r\n getSelectedImage,\r\n getTemplateTypeByIndex,\r\n });\r\n\r\n return (\r\n \r\n \r\n { panelElement }\r\n \r\n );\r\n};\r\n\r\nAllPlacementsCore.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n getSelectedImage: PropTypes.func.isRequired,\r\n previewElements: PropTypes.arrayOf(PropTypes.func).isRequired,\r\n getImageInfoByIndex: PropTypes.func.isRequired,\r\n getCarouselTitleByIndex: PropTypes.func.isRequired,\r\n isImageValid: PropTypes.bool.isRequired,\r\n getMinSizeByIndex: PropTypes.func.isRequired,\r\n getIsRequiredByIndex: PropTypes.func.isRequired,\r\n shouldHideHeaderButtonsByIndex: PropTypes.func.isRequired,\r\n getTemplateTypeByIndex: PropTypes.func.isRequired,\r\n headerButtonProps: PropTypes.shape({}),\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nAllPlacementsCore.defaultProps = {\r\n headerButtonProps: null,\r\n styleOverrides: {},\r\n};\r\n\r\nexport const AllPlacements = (props) => {\r\n const { enableAllPlacementsPanel } = props;\r\n\r\n if (enableAllPlacementsPanel) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nAllPlacements.propTypes = {\r\n enableAllPlacementsPanel: PropTypes.bool,\r\n};\r\n\r\nAllPlacements.defaultProps = {\r\n enableAllPlacementsPanel: false,\r\n};\r\n","import React, {\r\n useContext,\r\n useState,\r\n useMemo,\r\n useCallback,\r\n} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { PreviewCarousel } from './preview-carousel';\r\nimport { Header } from './carousel-decorators/header';\r\nimport { ValidationMessage } from './carousel-decorators/validation-message';\r\nimport { DisclaimerMessage } from './carousel-decorators/disclaimer-message';\r\nimport { FooterButton } from './carousel-decorators/footer-button';\r\nimport { AllPlacements } from './carousel-decorators/all-placements';\r\n\r\nimport { getPreviewCarouselLayoutStyles } from './styles';\r\n\r\nexport const PreviewCarouselLayout = (props) => {\r\n const {\r\n previewElements,\r\n getImageInfoByIndex,\r\n validateImageSizeByIndex,\r\n enableAutoPlay,\r\n styleOverrides,\r\n hideHeaderButtons,\r\n hideNavigationControlsIfSingle,\r\n doesTemplateShowImageByIndex,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getPreviewCarouselLayoutStyles({ styleOverrides }));\r\n const [index, setIndex] = useState(0);\r\n const isImageShown = useMemo(() => doesTemplateShowImageByIndex(index), [doesTemplateShowImageByIndex, index]);\r\n\r\n const getSelectedImage = useCallback((imageIndex) => {\r\n const isImageBasedPlacement = doesTemplateShowImageByIndex(imageIndex);\r\n\r\n if (isImageBasedPlacement) {\r\n return getImageInfoByIndex(imageIndex);\r\n }\r\n\r\n return {\r\n isIncluded: true,\r\n isRecommended: false,\r\n };\r\n }, [doesTemplateShowImageByIndex, getImageInfoByIndex]);\r\n\r\n const selectedImage = useMemo(() => {\r\n if (isImageShown) {\r\n return getImageInfoByIndex(index);\r\n }\r\n return {\r\n isIncluded: true,\r\n isRecommended: false,\r\n };\r\n }, [getImageInfoByIndex, index, isImageShown]);\r\n\r\n const isImageValid = useMemo(() => {\r\n if (!isImageShown) {\r\n return true;\r\n }\r\n return validateImageSizeByIndex(index);\r\n }, [validateImageSizeByIndex, index, isImageShown]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nPreviewCarouselLayout.propTypes = {\r\n previewElements: PropTypes.arrayOf(PropTypes.func).isRequired,\r\n hideNavigationControlsIfSingle: PropTypes.bool,\r\n // helper methods\r\n getImageInfoByIndex: PropTypes.func.isRequired,\r\n getCarouselTitleByIndex: PropTypes.func.isRequired,\r\n getMinSizeByIndex: PropTypes.func.isRequired,\r\n validateImageSizeByIndex: PropTypes.func.isRequired,\r\n doesTemplateShowImageByIndex: PropTypes.func.isRequired,\r\n hideHeaderButtons: PropTypes.bool,\r\n\r\n // header decorator props\r\n headerButtonProps: PropTypes.shape({}),\r\n\r\n // disclaimer message props\r\n disclaimerMessage: PropTypes.string,\r\n\r\n // footer button props\r\n footerButtonProps: PropTypes.shape({}),\r\n\r\n // custom style overrides\r\n styleOverrides: PropTypes.shape({}),\r\n\r\n // enable behavior in carousel to auto play through carousel items\r\n enableAutoPlay: PropTypes.bool,\r\n};\r\n\r\nPreviewCarouselLayout.defaultProps = {\r\n hideNavigationControlsIfSingle: false,\r\n headerButtonProps: null,\r\n disclaimerMessage: '',\r\n footerButtonProps: null,\r\n styleOverrides: {},\r\n enableAutoPlay: true,\r\n hideHeaderButtons: false,\r\n};\r\n","export const getGroupsLayoutStyles = () => ({\r\n controls: {\r\n display: 'flex',\r\n paddingBottom: 8,\r\n },\r\n\r\n channelControl: {\r\n marginLeft: 'auto',\r\n },\r\n\r\n groupContainer: {\r\n background: '#ffffff',\r\n borderRadius: 4,\r\n boxShadow: '0 2px 4px rgba(0,0,0,0.1)',\r\n\r\n '& .preview-string': {\r\n display: 'none',\r\n },\r\n\r\n '& .additional-disclaimer-message': {\r\n display: 'none',\r\n },\r\n\r\n '& .multi-line-processed-text': {\r\n wordBreak: 'break-word',\r\n },\r\n },\r\n\r\n inactiveGroup: {\r\n display: 'none',\r\n },\r\n});\r\n\r\nexport const getCarouselOverrideStyles = () => ({\r\n carouselContainer: {\r\n '& .new-preview-carousel-container-adprelib ': {\r\n border: 'none',\r\n },\r\n\r\n '& .ad-preview-title': {\r\n fontSize: 14,\r\n margin: 0,\r\n padding: 20,\r\n },\r\n\r\n '& .exclude-aspect-ratio-button': {\r\n display: 'none',\r\n },\r\n\r\n '& .carousel-wrapper': {\r\n '& .carousel-inner': {\r\n paddingBottom: 24,\r\n },\r\n '& .carousel-control': {\r\n background: 'transparent',\r\n },\r\n '& .carousel-control.left': {\r\n left: 'calc(50% - 65px)',\r\n transform: 'translateX(-50%)',\r\n margin: '15px 0',\r\n },\r\n '& .carousel-control.right': {\r\n left: 'calc(50% + 60px)',\r\n transform: 'translateX(-50%)',\r\n margin: '15px 0',\r\n },\r\n '& .carousel-indicators': {\r\n display: 'flex',\r\n gap: '10px',\r\n left: '50% !important',\r\n transform: 'translateX(-50%)',\r\n margin: '20px 0 !important',\r\n\r\n '& li': {\r\n margin: '0',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Pivot, PivotItem } from '@bingads-webui-react/fabric-control';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getGroupsLayoutStyles } from './styles';\r\n\r\nexport const GroupsLayoutControls = (props) => {\r\n const {\r\n i18n,\r\n groups,\r\n activeGroupKey,\r\n onChangeActiveGroupKey,\r\n } = props;\r\n const classes = useDefaultStyles(getGroupsLayoutStyles);\r\n\r\n if (groups.length === 1) return null;\r\n\r\n return (\r\n
\r\n onChangeActiveGroupKey(item.props.itemKey)}\r\n >\r\n {\r\n _.map(groups, group => (\r\n \r\n ))\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nGroupsLayoutControls.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n groups: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n })).isRequired,\r\n activeGroupKey: PropTypes.string.isRequired,\r\n onChangeActiveGroupKey: PropTypes.func.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { GroupsLayoutControls } from './controls';\r\nimport { getCarouselOverrideStyles, getGroupsLayoutStyles } from './styles';\r\n\r\n\r\nexport const GroupsPreviewer = (props) => {\r\n const {\r\n groups,\r\n defaultGroup,\r\n previewers,\r\n adData,\r\n decoratorsData,\r\n images,\r\n headerButtonProps,\r\n onActiveGroupChange,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getGroupsLayoutStyles);\r\n const carouselClasses = useDefaultStyles(getCarouselOverrideStyles);\r\n\r\n const [activeGroupKey, setActiveGroupKey] = useState(groups[0].key);\r\n\r\n const handleSetActiveGroupKey = useCallback((groupKey) => {\r\n setActiveGroupKey(groupKey);\r\n onActiveGroupChange(groupKey);\r\n }, [onActiveGroupChange]);\r\n\r\n useEffect(() => {\r\n if (defaultGroup) {\r\n setActiveGroupKey(defaultGroup);\r\n }\r\n }, [defaultGroup]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n {\r\n _.map(groups, ({ key }) => {\r\n const Previewer = previewers[key];\r\n\r\n return (\r\n \r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nGroupsPreviewer.propTypes = {\r\n groups: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n predicate: PropTypes.func.isRequired,\r\n })).isRequired,\r\n defaultGroup: PropTypes.string,\r\n onActiveGroupChange: PropTypes.func,\r\n previewers: PropTypes.shape({}).isRequired,\r\n adData: PropTypes.shape({}).isRequired,\r\n decoratorsData: PropTypes.shape({}),\r\n images: PropTypes.arrayOf(PropTypes.shape({})),\r\n headerButtonProps: PropTypes.shape({\r\n onEdit: PropTypes.func.isRequired,\r\n onAddAspectRatio: PropTypes.func.isRequired,\r\n onRemoveAspectRatio: PropTypes.func.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nGroupsPreviewer.defaultProps = {\r\n defaultGroup: null,\r\n onActiveGroupChange: _.noop,\r\n decoratorsData: {},\r\n images: [],\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getAdsLabelStyles } from './styles/ads-label';\r\n\r\nexport const AdsLabel = ({\r\n adsLabelText,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getAdsLabelStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {adsLabelText}\r\n
\r\n );\r\n};\r\n\r\nAdsLabel.propTypes = {\r\n adsLabelText: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nAdsLabel.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\n\r\nimport _ from 'underscore';\r\n\r\nexport const getAdsLabelStyles = ({ styleOverrides }) => (e, { palette = {} }) => {\r\n return {\r\n adsLabel: _.extend({\r\n color: palette.black,\r\n margin: 7,\r\n opacity: '90%',\r\n padding: '1.2px 6px 1.8px 6px',\r\n position: 'absolute',\r\n fontSize: 11,\r\n borderRadius: 5,\r\n backgroundColor: palette.white,\r\n }, styleOverrides.adsLabel),\r\n };\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getBoostStyles = ({ styleOverrides }) => () => {\r\n return {\r\n boostDiscover: _.extend({\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n fontSize: 16,\r\n color: 'black',\r\n borderBottom: '1px solid #C8C8C8',\r\n paddingLeft: 10,\r\n }, styleOverrides.boostDiscover),\r\n boostWindows: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n '& .welcome': {\r\n marginBottom: 10,\r\n },\r\n '& .time': {\r\n fontSize: 40,\r\n },\r\n }, styleOverrides.boostWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getBoostStyles } from './styles/boost';\r\n\r\nexport const BoostDiscover = ({\r\n text,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getBoostStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {text}\r\n
\r\n );\r\n};\r\n\r\nBoostDiscover.propTypes = {\r\n text: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nBoostDiscover.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\nexport const BoostWindows = ({\r\n welcomeText,\r\n timeText,\r\n dateText,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getBoostStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n
{welcomeText}
\r\n
{timeText}
\r\n
{dateText}
\r\n
\r\n );\r\n};\r\n\r\nBoostWindows.propTypes = {\r\n welcomeText: PropTypes.string.isRequired,\r\n timeText: PropTypes.string.isRequired,\r\n dateText: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nBoostWindows.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\n","/* eslint-disable arrow-body-style */\r\n\r\nimport _ from 'underscore';\r\n\r\nexport const getBusinessNameWithAdsStyles = ({ styleOverrides }) => () => {\r\n return {\r\n businessNameWithAds: _.extend({\r\n marginTop: 9,\r\n padding: '1px 0',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n }, styleOverrides.businessNameWithAds),\r\n };\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getBusinessNameWithAdsStyles } from './styles/business-name-with-ads';\r\n\r\nexport const BusinessNameWithAds = ({\r\n businessName,\r\n i18n,\r\n onlyIcon,\r\n showLabel,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getBusinessNameWithAdsStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {\r\n showLabel &&\r\n \r\n {i18n.getString(_TL_('Ad'))}\r\n \r\n }\r\n { !onlyIcon &&\r\n \r\n {businessName}\r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nBusinessNameWithAds.propTypes = {\r\n businessName: PropTypes.string.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n onlyIcon: PropTypes.bool,\r\n showLabel: PropTypes.bool,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nBusinessNameWithAds.defaultProps = {\r\n onlyIcon: false,\r\n showLabel: false,\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\n\r\nimport _ from 'underscore';\r\n\r\nexport const getCallToActionStyles = ({ styleOverrides }) => (e, { palette = {} }) => {\r\n return {\r\n actionButton: _.extend({\r\n color: palette.white,\r\n border: 'none',\r\n opacity: '90%',\r\n position: 'absolute',\r\n fontSize: '16px',\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n backgroundColor: '#a19f9d',\r\n }, styleOverrides.actionButton),\r\n dismissButton: _.extend({\r\n }, styleOverrides.dismissButton),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getCallToActionStyles } from './styles/call-to-action';\r\n\r\nexport const CallToAction = ({\r\n actionText,\r\n dismissText,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getCallToActionStyles({ styleOverrides }));\r\n\r\n return (\r\n \r\n \r\n {\r\n dismissText &&\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nCallToAction.propTypes = {\r\n actionText: PropTypes.string.isRequired,\r\n dismissText: PropTypes.string,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nCallToAction.defaultProps = {\r\n dismissText: '',\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\n\r\nimport _ from 'underscore';\r\n\r\nexport const getPersonaDecoratorStyles = ({ styleOverrides }) => () => {\r\n return {\r\n container: _.extend({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n padding: '8px',\r\n }, styleOverrides.personaDecoratorContainer),\r\n picture: _.extend({\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '50%',\r\n }, styleOverrides.personaDecoratorPicture),\r\n nameLabel: _.extend({\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n fontWeight: 'bold',\r\n color: '#323130',\r\n }, styleOverrides.personaDecoratorNameLabel),\r\n sponsoredLabel: _.extend({\r\n fontSize: '10px',\r\n color: '#323130',\r\n }, styleOverrides.personaDecoratorSponsoredLabel),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getPersonaDecoratorStyles } from './styles/persona';\r\n\r\nexport const PersonaDecorator = ({\r\n data: {\r\n name,\r\n picture,\r\n sponsoredText,\r\n },\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getPersonaDecoratorStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {name}\r\n
\r\n
{name}
\r\n
{sponsoredText}
\r\n
\r\n
\r\n );\r\n};\r\n\r\nPersonaDecorator.propTypes = {\r\n data: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n picture: PropTypes.string.isRequired,\r\n sponsoredText: PropTypes.string.isRequired,\r\n }).isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nPersonaDecorator.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\n\r\nimport _ from 'underscore';\r\n\r\nexport const getContactDecoratorStyles = ({ styleOverrides }) => () => {\r\n return {\r\n container: _.extend({\r\n display: 'flex',\r\n gap: '8px',\r\n alignItems: 'center',\r\n marginTop: '8px',\r\n }, styleOverrides.phoneAndAddressDecoratorContainer),\r\n section: _.extend({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n }, styleOverrides.phoneAndAddressDecoratorSection),\r\n addressLabel: _.extend({\r\n fontSize: '13px',\r\n lineHeight: '16px',\r\n color: '#001BA0',\r\n }, styleOverrides.phoneAndAddressDecoratorAddressLabel),\r\n phoneLabel: _.extend({\r\n fontSize: '13px',\r\n lineHeight: '16px',\r\n color: '#605e5c',\r\n }, styleOverrides.phoneAndAddressDecoratorPhoneLabel),\r\n icon: _.extend({\r\n display: 'inline-block',\r\n height: '16px',\r\n width: '16px',\r\n verticalAlign: 'text-top',\r\n }, styleOverrides.phoneAndAddressDecoratorIcon),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getContactDecoratorStyles } from './styles/contact';\r\n\r\nimport locationIcon from './assets/contact-address-icon.svg';\r\nimport phoneIcon from './assets/contact-phone-icon.svg';\r\n\r\nexport const ContactDecorator = ({\r\n data: {\r\n phone,\r\n address,\r\n },\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getContactDecoratorStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {\r\n address &&\r\n
\r\n \"\"\r\n {address}\r\n
\r\n }\r\n { phone &&\r\n
\r\n {\r\n !address &&\r\n \"\"\r\n }\r\n
{phone}
\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nContactDecorator.propTypes = {\r\n data: PropTypes.shape({\r\n phone: PropTypes.string,\r\n address: PropTypes.string,\r\n }),\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nContactDecorator.defaultProps = {\r\n data: {},\r\n styleOverrides: {},\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport prong from './assets/prong-dark-bgimage.svg';\r\nimport winStoreLogo from './assets/winStoreLogo.svg';\r\nimport { getProngStyles } from './styles/win-prong-dark-style';\r\n\r\n\r\nexport const ProngDark = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getProngStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n {_TL_('Microsoft store')}\r\n
\r\n
\r\n {_TL_('Sponsored')}\r\n
\r\n
\r\n );\r\n};\r\n\r\nProngDark.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nProngDark.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getProngStyles = ({ styleOverrides }) => () => {\r\n return {\r\n prong: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.prongWindows),\r\n winStoreLogo: _.extend({\r\n position: 'absolute',\r\n top: 117,\r\n left: 83,\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n winStore: _.extend({\r\n position: 'absolute',\r\n top: 118,\r\n left: 93,\r\n fontWeight: 400,\r\n fontSize: 5,\r\n color: '#FFFFFF',\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n sponsored: _.extend({\r\n position: 'absolute',\r\n top: 169,\r\n left: 83,\r\n borderRadius: 2,\r\n fontWeight: 400,\r\n fontSize: 5,\r\n border: '0.25px solid #FFFFFF',\r\n padding: '0.5px 2px 0px 2px',\r\n color: '#FFFFFF',\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport prong from './assets/prong-light-bgimage.svg';\r\nimport winStoreLogo from './assets/winStoreLogo.svg';\r\nimport { getProngStyles } from './styles/win-prong-light-style';\r\n\r\n\r\nexport const ProngLight = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getProngStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n {_TL_('Microsoft store')}\r\n
\r\n
\r\n {_TL_('Sponsored')}\r\n
\r\n
\r\n );\r\n};\r\n\r\nProngLight.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nProngLight.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getProngStyles = ({ styleOverrides }) => () => {\r\n return {\r\n prong: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.prongWindows),\r\n winStoreLogo: _.extend({\r\n position: 'absolute',\r\n top: 117,\r\n left: 83,\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n winStore: _.extend({\r\n position: 'absolute',\r\n top: 118,\r\n left: 93,\r\n fontWeight: 400,\r\n fontSize: 5,\r\n color: '#FFFFFF',\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n sponsored: _.extend({\r\n position: 'absolute',\r\n top: 169,\r\n left: 83,\r\n borderRadius: 2,\r\n fontWeight: 400,\r\n fontSize: 5,\r\n border: '0.25px solid #FFFFFF',\r\n padding: '0.5px 2px 0px 2px',\r\n color: '#FFFFFF',\r\n zIndex: 2,\r\n }, styleOverrides.prongWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport win11StartLightBackground from './assets/win11-start-light-bgimage.svg';\r\nimport { getStartStyles } from './styles/win11-start-light-style';\r\n\r\n\r\nexport const Win11StartLight = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getStartStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nWin11StartLight.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nWin11StartLight.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getStartStyles = ({ styleOverrides }) => () => {\r\n return {\r\n start: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.startWindows),\r\n adContainer: _.extend({\r\n width: 300,\r\n height: 59,\r\n position: 'absolute',\r\n top: 50,\r\n left: 57,\r\n backgroundColor: '#DDDFE3',\r\n border: '1px solid #0078D4',\r\n }, styleOverrides.startWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport win11StartDarkBackground from './assets/win11-start-dark-bgimage.svg';\r\nimport { getStartStyles } from './styles/win11-start-dark-style';\r\n\r\n\r\nexport const Win11StartDark = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getStartStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nWin11StartDark.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nWin11StartDark.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getStartStyles = ({ styleOverrides }) => () => {\r\n return {\r\n start: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.startWindows),\r\n adContainer: _.extend({\r\n width: 300,\r\n height: 59,\r\n position: 'absolute',\r\n top: 65,\r\n left: 57,\r\n backgroundColor: '#2F3C5D',\r\n border: '1px solid #0078D4',\r\n }, styleOverrides.startWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport win10StartLightBackground from './assets/win10-start-light-bgimage.svg';\r\nimport { getStartStyles } from './styles/win10-start-light-style';\r\n\r\n\r\nexport const Win10StartLight = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getStartStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nWin10StartLight.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nWin10StartLight.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getStartStyles = ({ styleOverrides }) => () => {\r\n return {\r\n start: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.startWindows),\r\n adContainer: _.extend({\r\n width: 300,\r\n height: 59,\r\n position: 'absolute',\r\n top: 116,\r\n left: 30,\r\n backgroundColor: '#DDDFE3',\r\n border: '1px solid #0078D4',\r\n }, styleOverrides.startWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport win10StartDarkBackground from './assets/win10-start-dark-bgimage.svg';\r\nimport { getStartStyles } from './styles/win10-start-dark-style';\r\n\r\n\r\nexport const Win10StartDark = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getStartStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nWin10StartDark.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nWin10StartDark.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getStartStyles = ({ styleOverrides }) => () => {\r\n return {\r\n start: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n }, styleOverrides.startWindows),\r\n adContainer: _.extend({\r\n width: 300,\r\n height: 59,\r\n position: 'absolute',\r\n top: 116,\r\n left: 30,\r\n backgroundColor: '#2F3C5D',\r\n border: '1px solid #0078D4',\r\n }, styleOverrides.startWindows),\r\n };\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport winStore from './assets/winStore.svg';\r\nimport adBadge from './assets/adBadge.svg';\r\nimport getButton from './assets/getButton.svg';\r\nimport { getWinStoreStyles } from './styles/win-store';\r\n\r\n\r\nexport const WinStore = ({\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getWinStoreStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n \"\"\r\n \"\"\r\n \"\"\r\n
\r\n );\r\n};\r\n\r\nWinStore.propTypes = {\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nWinStore.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getWinStoreStyles = ({ styleOverrides }) => () => {\r\n return {\r\n winStoreWindows: _.extend({\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n '& .welcome': {\r\n marginBottom: 10,\r\n },\r\n '& .time': {\r\n fontSize: 40,\r\n },\r\n }, styleOverrides.winStoreWindows),\r\n icon: _.extend({\r\n display: 'inline-block',\r\n height: '16px',\r\n width: '16px',\r\n verticalAlign: 'text-top',\r\n }, styleOverrides.phoneAndAddressDecoratorIcon),\r\n adBadge: _.extend({\r\n position: 'absolute',\r\n top: 140,\r\n left: 94,\r\n zIndex: 1,\r\n }, styleOverrides.phoneAndAddressDecoratorIcon),\r\n getButton: _.extend({\r\n position: 'absolute',\r\n top: 187,\r\n left: 94,\r\n zIndex: 1,\r\n }, styleOverrides.phoneAndAddressDecoratorIcon),\r\n };\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { MultiLineEllipsisText } from '@bingads-webui-react/multiline-ellipsis';\r\n\r\nimport { AdsLabel } from './ads-label';\r\n\r\nimport { getDescriptionStyles } from './styles/description';\r\nimport { getFinalUrlStyles } from './styles/final-url';\r\nimport { getLongHeadlineStyles } from './styles/long-headline';\r\nimport { getShortHeadlineStyles } from './styles/short-headline';\r\n\r\nconst TextContainer = React.forwardRef(({\r\n className,\r\n showMultiline,\r\n text,\r\n}, ref) => (\r\n showMultiline ?\r\n : (\r\n
\r\n {text}\r\n
\r\n )\r\n));\r\n\r\nTextContainer.propTypes = {\r\n className: PropTypes.string.isRequired,\r\n showMultiline: PropTypes.bool.isRequired,\r\n text: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const Description = React.forwardRef(({\r\n styleOverrides,\r\n showMultipleDescription,\r\n description,\r\n showAdsLabel,\r\n adsLabelText,\r\n}, ref) => {\r\n const classes = useDefaultStyles(getDescriptionStyles({ styleOverrides }));\r\n\r\n return (\r\n
\r\n {\r\n showAdsLabel &&\r\n \r\n }\r\n \r\n
\r\n );\r\n});\r\n\r\nDescription.propTypes = {\r\n showMultipleDescription: PropTypes.bool.isRequired,\r\n description: PropTypes.string.isRequired,\r\n showAdsLabel: PropTypes.bool,\r\n adsLabelText: PropTypes.string,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nDescription.defaultProps = {\r\n styleOverrides: {},\r\n showAdsLabel: false,\r\n adsLabelText: '',\r\n};\r\n\r\n\r\nexport const FinalUrl = React.forwardRef(({\r\n styleOverrides,\r\n showUrlMultiline,\r\n finalUrl,\r\n displayUrl,\r\n}, ref) => {\r\n const classes = useDefaultStyles(getFinalUrlStyles({ styleOverrides }));\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nFinalUrl.propTypes = {\r\n showUrlMultiline: PropTypes.bool.isRequired,\r\n finalUrl: PropTypes.string.isRequired,\r\n displayUrl: PropTypes.string,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nFinalUrl.defaultProps = {\r\n displayUrl: null,\r\n styleOverrides: {},\r\n};\r\n\r\nexport const LongHeadline = React.forwardRef(({\r\n styleOverrides,\r\n showMultipleLineLongHeadline,\r\n longHeadline,\r\n}, ref) => {\r\n const classes = useDefaultStyles(getLongHeadlineStyles({ styleOverrides }));\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nLongHeadline.propTypes = {\r\n showMultipleLineLongHeadline: PropTypes.bool.isRequired,\r\n longHeadline: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nLongHeadline.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n\r\nexport const ShortHeadline = React.forwardRef(({\r\n styleOverrides,\r\n showShortHeadlineMultiline,\r\n shortHeadline,\r\n}, ref) => {\r\n const classes = useDefaultStyles(getShortHeadlineStyles({ styleOverrides }));\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nShortHeadline.propTypes = {\r\n showShortHeadlineMultiline: PropTypes.bool.isRequired,\r\n shortHeadline: PropTypes.string.isRequired,\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nShortHeadline.defaultProps = {\r\n styleOverrides: {},\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getDescriptionStyles = ({ styleOverrides }) => () => {\r\n return {\r\n description: _.extend({\r\n }, styleOverrides.description),\r\n descriptionParent: _.extend({\r\n }, styleOverrides.descriptionParent),\r\n };\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getFinalUrlStyles = ({ styleOverrides }) => () => {\r\n return {\r\n finalUrl: _.extend({\r\n }, styleOverrides.finalUrl),\r\n };\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getLongHeadlineStyles = ({ styleOverrides }) => () => {\r\n return {\r\n longHeadline: _.extend({\r\n }, styleOverrides.longHeadline),\r\n };\r\n};\r\n","/* eslint-disable arrow-body-style */\r\nimport _ from 'underscore';\r\n\r\nexport const getShortHeadlineStyles = ({ styleOverrides }) => () => {\r\n return {\r\n shortHeadline: _.extend({\r\n fontWeight: 200,\r\n paddingBottom: '5px',\r\n }, styleOverrides.shortHeadline),\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { ImageModelPropTypes } from '@bingads-webui-campaign/image-experience-proptypes';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\n\r\nimport {\r\n AdsLabel,\r\n BoostDiscover,\r\n BoostWindows,\r\n BusinessNameWithAds,\r\n CallToAction,\r\n ContactDecorator,\r\n Description,\r\n FinalUrl,\r\n LongHeadline,\r\n PersonaDecorator,\r\n ProngDark,\r\n ProngLight,\r\n ShortHeadline,\r\n Win11StartDark,\r\n Win11StartLight,\r\n Win10StartDark,\r\n Win10StartLight,\r\n CroppedImageView,\r\n WinStore,\r\n} from './decorators/index';\r\nimport { getPlacementCardStyles } from './styles/ad-placement-card-preview';\r\n\r\nexport const AdPlacementCardPropTypes = {\r\n propTypes: {\r\n // data props\r\n key: PropTypes.string,\r\n className: PropTypes.string,\r\n hotspots: PropTypes.arrayOf(PropTypes.shape({\r\n title: PropTypes.string,\r\n desc: PropTypes.string,\r\n actionText: PropTypes.string,\r\n uri: PropTypes.string,\r\n })),\r\n image: ImageModelPropTypes,\r\n logo: ImageModelPropTypes,\r\n previewTexts: PropTypes.shape({\r\n shortHeadline: PropTypes.string,\r\n longHeadline: PropTypes.string,\r\n description: PropTypes.string,\r\n businessName: PropTypes.string,\r\n url: PropTypes.string,\r\n callToAction: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n }).isRequired,\r\n decoratorsData: PropTypes.shape({}),\r\n styleOverrides: PropTypes.shape({}),\r\n\r\n // rendering props\r\n aspectRatio: PropTypes.number,\r\n dismissText: PropTypes.string,\r\n imagePreviewHeight: PropTypes.number,\r\n logoHeight: PropTypes.number,\r\n previewTypeStringKey: PropTypes.string.isRequired,\r\n disclaimerMessage: PropTypes.string,\r\n\r\n // toggle props\r\n showAction: PropTypes.bool,\r\n showAdditionalDisclaimer: PropTypes.bool,\r\n showAdsLabel: PropTypes.bool,\r\n showAdsLabelInlineWithDescription: PropTypes.bool,\r\n showAdsLabelWithBusinessName: PropTypes.bool,\r\n showBoostDiscover: PropTypes.bool,\r\n showBoostWindows: PropTypes.bool,\r\n showBusinessNameFirst: PropTypes.bool,\r\n showBusinessName: PropTypes.bool,\r\n showDescription: PropTypes.bool,\r\n showGradient: PropTypes.bool,\r\n showHotspots: PropTypes.bool,\r\n showImage: PropTypes.bool,\r\n showImageGradient: PropTypes.bool,\r\n showLogo: PropTypes.bool,\r\n showLongHeadline: PropTypes.bool,\r\n showMultipleDescription: PropTypes.bool,\r\n showMultipleLineLongHeadline: PropTypes.bool,\r\n showPreHeadlineDivider: PropTypes.bool,\r\n showPreviewTypeString: PropTypes.bool,\r\n showProngDark: PropTypes.bool,\r\n showProngLight: PropTypes.bool,\r\n showPostHeadlineDivider: PropTypes.bool,\r\n showShortHeadline: PropTypes.bool,\r\n showShortHeadlineMultiline: PropTypes.bool,\r\n showWin11StartLight: PropTypes.bool,\r\n showWin11StartDark: PropTypes.bool,\r\n showWin10StartLight: PropTypes.bool,\r\n showWin10StartDark: PropTypes.bool,\r\n showUrl: PropTypes.bool,\r\n showUrlMultiline: PropTypes.bool,\r\n showPersonaDecorator: PropTypes.bool,\r\n showPhoneAndAddressDecorator: PropTypes.bool,\r\n showWinStore: PropTypes.bool,\r\n },\r\n defaultProps: {\r\n key: '',\r\n className: '',\r\n image: null,\r\n hotspots: [],\r\n logo: null,\r\n decoratorsData: {},\r\n\r\n dismissText: '',\r\n logoHeight: 24,\r\n aspectRatio: 1,\r\n imagePreviewHeight: 150,\r\n disclaimerMessage: '',\r\n\r\n showAction: false,\r\n showAdditionalDisclaimer: false,\r\n showAdsLabel: false,\r\n showAdsLabelInlineWithDescription: false,\r\n showAdsLabelWithBusinessName: false,\r\n showBoostDiscover: false,\r\n showBoostWindows: false,\r\n showBusinessNameFirst: false,\r\n showBusinessName: false,\r\n showDescription: false,\r\n showGradient: false,\r\n showHotspots: false,\r\n showImage: false,\r\n showImageGradient: false,\r\n showLogo: false,\r\n showLongHeadline: false,\r\n showMultipleDescription: false,\r\n showMultipleLineLongHeadline: false,\r\n showPreHeadlineDivider: false,\r\n showPreviewTypeString: true,\r\n showProng: false,\r\n showPostHeadlineDivider: false,\r\n showShortHeadline: false,\r\n showShortHeadlineMultiline: false,\r\n showWin11StartLight: false,\r\n showWin11StartDark: false,\r\n showWin10StartLight: false,\r\n showWin10StartDark: false,\r\n showUrl: false,\r\n showUrlMultiline: false,\r\n showWinStore: false,\r\n },\r\n};\r\n\r\nclass UnstyledAdPlacementCardPreview extends React.PureComponent {\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.multiLineTextRefs = [\r\n React.createRef(),\r\n React.createRef(),\r\n React.createRef(),\r\n ];\r\n }\r\n\r\n componentDidUpdate() {\r\n this.multiLineTextRefs.forEach((ref) => {\r\n if (ref.current) {\r\n ref.current.processText();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n showAdditionalDisclaimer,\r\n showAdsLabelWithBusinessName,\r\n showShortHeadlineMultiline,\r\n showMultipleLineLongHeadline,\r\n showUrlMultiline,\r\n showImage,\r\n disclaimerMessage,\r\n dismissText,\r\n showHotspots,\r\n hotspots,\r\n previewTexts,\r\n decoratorsData,\r\n logo,\r\n showLogo,\r\n showMultipleDescription,\r\n classes,\r\n showBoostDiscover,\r\n showBoostWindows,\r\n showGradient,\r\n showImageGradient,\r\n showPreviewTypeString,\r\n previewTypeStringKey,\r\n styleOverrides,\r\n } = this.props;\r\n const srcForCroppedImageView = showImage && this.props.image && this.props.image.FinalSrc;\r\n\r\n return (\r\n
\r\n \r\n {\r\n this.props.showProngLight &&\r\n \r\n }\r\n {\r\n this.props.showProngDark &&\r\n \r\n }\r\n {\r\n this.props.showWin11StartLight &&\r\n \r\n }\r\n {\r\n this.props.showWin11StartDark &&\r\n \r\n }\r\n {\r\n this.props.showWin10StartLight &&\r\n \r\n }\r\n {\r\n this.props.showWin10StartDark &&\r\n \r\n }\r\n {\r\n this.props.showWinStore &&\r\n \r\n }\r\n {\r\n this.props.showPersonaDecorator &&\r\n \r\n }\r\n
\r\n {\r\n this.props.showAdsLabel &&\r\n \r\n }\r\n {\r\n showImageGradient &&\r\n
\r\n }\r\n {\r\n showImage && this.props.image &&\r\n \r\n }\r\n
\r\n {\r\n showBoostDiscover &&\r\n \r\n }\r\n {\r\n showBoostWindows &&\r\n \r\n }\r\n {showLogo && logo &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {\r\n showHotspots &&\r\n hotspots.map((hotspot, index) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
\r\n
{hotspot.title}
\r\n
{hotspot.actionText}
\r\n
\r\n ))\r\n }\r\n\r\n
\r\n {\r\n this.props.showBusinessNameFirst && this.props.showBusinessName &&\r\n \r\n }\r\n {\r\n this.props.showPreHeadlineDivider &&\r\n
\r\n }\r\n {\r\n this.props.showShortHeadline &&\r\n (\r\n \r\n )\r\n }\r\n {\r\n this.props.showLongHeadline &&\r\n (\r\n \r\n )\r\n }\r\n {\r\n this.props.showPostHeadlineDivider &&\r\n
\r\n }\r\n {\r\n this.props.showUrl &&\r\n (\r\n \r\n )\r\n }\r\n {\r\n this.props.showDescription &&\r\n (\r\n \r\n )\r\n }\r\n {\r\n this.props.showBusinessName && !this.props.showBusinessNameFirst &&\r\n \r\n }\r\n {\r\n this.props.showAction &&\r\n previewTexts.callToAction &&\r\n \r\n }\r\n {\r\n this.props.showPhoneAndAddressDecorator &&\r\n \r\n }\r\n
\r\n \r\n {\r\n showPreviewTypeString &&\r\n
\r\n {previewTypeStringKey}\r\n
\r\n }\r\n {\r\n showAdditionalDisclaimer &&\r\n
\r\n {disclaimerMessage}\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nUnstyledAdPlacementCardPreview.propTypes = {\r\n classes: PropTypes.shape({}).isRequired,\r\n ...AdPlacementCardPropTypes.propTypes,\r\n};\r\n\r\nUnstyledAdPlacementCardPreview.defaultProps = {\r\n ...AdPlacementCardPropTypes.defaultProps,\r\n};\r\n\r\nexport const AdPlacementCardPreview = (props) => {\r\n const { styleOverrides } = props;\r\n // eslint-disable-next-line arrow-body-style\r\n const StyledComponent = useMemo(() => {\r\n return withI18nConsumer(withDefaultStyles(UnstyledAdPlacementCardPreview, getPlacementCardStyles({ styleOverrides })));\r\n }, [styleOverrides]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n// just the prop for the Component combining HOCs\r\n// see UnstyledAdPlacementCardPreview for actual component props\r\nAdPlacementCardPreview.propTypes = {\r\n styleOverrides: PropTypes.shape({}).isRequired,\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const getPlacementCardStyles = ({ styleOverrides }) => () => {\r\n const overrides = _.pick(styleOverrides, [\r\n 'adsLabel',\r\n 'gradient',\r\n 'imageContainer',\r\n 'imageGradient',\r\n 'previewContent',\r\n 'previewTypeString',\r\n 'textContainer',\r\n 'preHeadlineDivider',\r\n 'postHeadlineDivider',\r\n 'additionalDisclaimer',\r\n ]);\r\n\r\n return {\r\n gradient: _.extend({\r\n }, overrides.gradient),\r\n imageContainer: _.extend({}, overrides.imageContainer),\r\n imageGradient: _.extend({\r\n }, overrides.imageGradient),\r\n previewContent: _.extend({\r\n display: 'block',\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n borderRadius: 5.11,\r\n background: '#fff',\r\n margin: 'auto',\r\n top: 0,\r\n }, overrides.previewContent),\r\n previewTypeString: _.extend({\r\n left: 0,\r\n width: '100%',\r\n position: 'absolute',\r\n textAlign: 'center',\r\n paddingTop: 12,\r\n fontSize: '14px',\r\n bottom: 40,\r\n lineHeight: '20px',\r\n }, overrides.previewTypeString),\r\n textContainer: _.extend({\r\n fontSize: '10px',\r\n lineHeight: '16px',\r\n }, overrides.textContainer),\r\n preHeadlineDivider: _.extend({}, overrides.preHeadlineDivider),\r\n postHeadlineDivider: _.extend({}, overrides.postHeadlineDivider),\r\n additionalDisclaimer: _.extend({\r\n fontSize: 12,\r\n lineHeight: '20px',\r\n textAlign: 'left',\r\n bottom: 0,\r\n padding: '0 24px',\r\n position: 'absolute',\r\n width: '100%',\r\n left: 0,\r\n }, overrides.additionalDisclaimer),\r\n };\r\n};\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { AdPlacementCardPreview, AdPlacementCardPropTypes } from './ad-placement-card-preview';\r\nimport { getPlacementStyles } from './styles/ad-placement-preview';\r\n\r\nexport const AdPlacementPreviewPropTypes = {\r\n propTypes: {\r\n children: PropTypes.node,\r\n styleOverrides: PropTypes.shape({}),\r\n showHeaderImage: PropTypes.bool,\r\n headerImage: PropTypes.string,\r\n headerImageAlt: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n ...AdPlacementCardPropTypes.propTypes,\r\n },\r\n defaultProps: {\r\n children: null,\r\n styleOverrides: {},\r\n showHeaderImage: false,\r\n headerImage: '',\r\n headerImageAlt: '',\r\n ...AdPlacementCardPropTypes.defaultProps,\r\n },\r\n};\r\n\r\nexport const AdPlacementPreview = (props) => {\r\n const {\r\n styleOverrides,\r\n children,\r\n showHeaderImage,\r\n headerImage,\r\n headerImageAlt,\r\n image,\r\n showImage,\r\n } = props;\r\n\r\n const isIncluded = showImage ? image && image.isIncluded : true;\r\n\r\n const classes = useDefaultStyles(getPlacementStyles({ styleOverrides, isIncluded }));\r\n\r\n const cardProps = _.pick(\r\n props,\r\n _.keys(AdPlacementCardPropTypes.propTypes)\r\n );\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n showHeaderImage &&\r\n
\r\n {headerImageAlt}\r\n
\r\n }\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n};\r\n\r\nAdPlacementPreview.propTypes = {\r\n ...AdPlacementPreviewPropTypes.propTypes,\r\n};\r\n\r\nAdPlacementPreview.defaultProps = {\r\n ...AdPlacementPreviewPropTypes.defaultProps,\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const getPlacementStyles = ({ styleOverrides, isIncluded }) => () => {\r\n const overrides = _.pick(styleOverrides, 'placementContainer', 'headerImage', 'cardParent');\r\n\r\n return {\r\n placementContainer: _.extend({\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n opacity: isIncluded ? '100%' : '50%',\r\n }, overrides.placementContainer),\r\n cardParent: _.extend({\r\n }, overrides.cardParent),\r\n headerImage: _.extend({\r\n }, overrides.headerImage),\r\n };\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\nimport {\r\n AdPlacementDynamicSearch,\r\n AdPlacementDynamicSearchPropTypes,\r\n AdPlacementResponsiveSearch,\r\n AdPlacementResponsiveSearchDesktop,\r\n AdPlacementResponsiveSearchMobile,\r\n AdPlacementResponsiveSearchPropTypes,\r\n} from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\nimport { templateParserUtils } from '@bingads-webui-campaign-react/ad-placement-templates';\r\n\r\nimport { AdPlacementPreview, AdPlacementPreviewPropTypes } from './ad-placement-preview';\r\n\r\nconst { getImageTypeForTemplate } = templateParserUtils;\r\n\r\nconst AdPlacementsViewMapping = {\r\n [AdPlacementsComponentTypes.AdPlacementPreview]: AdPlacementPreview,\r\n [AdPlacementsComponentTypes.AdPlacementDynamicSearch]: AdPlacementDynamicSearch,\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearch]: AdPlacementResponsiveSearch,\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearchDesktop]: AdPlacementResponsiveSearchDesktop,\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearchMobile]: AdPlacementResponsiveSearchMobile,\r\n};\r\n\r\nconst AdPlacementsViewPropsMapping = {\r\n [AdPlacementsComponentTypes.AdPlacementPreview]: _.keys(AdPlacementPreviewPropTypes.propTypes),\r\n [AdPlacementsComponentTypes.AdPlacementDynamicSearch]: _.keys(AdPlacementDynamicSearchPropTypes.propTypes),\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearch]: _.keys(AdPlacementResponsiveSearchPropTypes.propTypes),\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearchDesktop]: _.keys(AdPlacementResponsiveSearchPropTypes.propTypes),\r\n [AdPlacementsComponentTypes.AdPlacementResponsiveSearchMobile]: _.keys(AdPlacementResponsiveSearchPropTypes.propTypes),\r\n};\r\n\r\nexport const getAdPlacementElement = ({\r\n template,\r\n templateTransformerFunc,\r\n i18n,\r\n}) => {\r\n const { componentType } = template;\r\n const Component = AdPlacementsViewMapping[componentType];\r\n const componentPropKeys = AdPlacementsViewPropsMapping[componentType];\r\n\r\n return {\r\n AdPlacementElement: ({\r\n // eslint-disable-next-line react/prop-types\r\n adData,\r\n // eslint-disable-next-line react/prop-types\r\n imagesToDisplay,\r\n // eslint-disable-next-line react/prop-types\r\n decoratorsData,\r\n // eslint-disable-next-line react/prop-types\r\n logo,\r\n }) => {\r\n // eslint-disable-next-line react/prop-types\r\n const imageForTemplate = useMemo(() => _.find(imagesToDisplay, ({ associationType }) => associationType.toLowerCase() === getImageTypeForTemplate(template).toLowerCase()), [imagesToDisplay]);\r\n\r\n const transformedTemplate = useMemo(() => templateTransformerFunc({\r\n adData,\r\n decoratorsData,\r\n template,\r\n i18n,\r\n }), [adData, decoratorsData]);\r\n\r\n const componentProps = _.pick(transformedTemplate, componentPropKeys);\r\n\r\n return (\r\n \r\n );\r\n },\r\n };\r\n};\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, {\r\n useCallback,\r\n useContext,\r\n useMemo,\r\n useState,\r\n useEffect,\r\n useRef,\r\n} from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { GroupTypeTransformerMapping } from '@bingads-webui-campaign-react/ad-placement-connector';\r\nimport { GroupTypeTemplatesMapping, templateParserUtils } from '@bingads-webui-campaign-react/ad-placement-templates';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { SinglePlacement, PreviewCarouselLayout, GroupsPreviewer } from '@bingads-webui-campaign-react/ad-placement-layouts';\r\nimport { getAdPlacementElement } from '@bingads-webui-campaign-react/ad-placement-view';\r\nimport { getGenericImageObjectAsync, getAutoCroppedImagesForRatios } from '@bingads-webui-campaign/image-experience-utils';\r\n\r\nimport defaultImage from '../media/191to1.jpg';\r\n\r\nconst {\r\n getImageTypeForTemplate,\r\n getCarouselTitleForTemplate,\r\n getMinSizeForTemplate,\r\n validateImageSizeForTemplate,\r\n getCropSettingsInfoFromTemplates,\r\n getIsRequiredFromTemplate,\r\n getTemplateTypeForTemplate,\r\n doesTemplateShowImage,\r\n doesTemplateHideHeaderButtons,\r\n} = templateParserUtils;\r\n\r\nconst doAnyTemplatesHaveImages = (templates) => {\r\n const aspectRatios = _.filter(getCropSettingsInfoFromTemplates(templates), ({ aspectRatio }) => aspectRatio);\r\n\r\n return aspectRatios.length > 0;\r\n};\r\n\r\nconst getGenericImagesForTemplateAsync = (templates, defaultImageToUse = defaultImage) => {\r\n const aspectRatios = _.filter(getCropSettingsInfoFromTemplates(templates), ({ aspectRatio }) => aspectRatio);\r\n const setupPromise = getGenericImageObjectAsync(defaultImageToUse)\r\n .then((imageObject) => {\r\n const croppedImages = getAutoCroppedImagesForRatios({\r\n originalImageToCrop: imageObject,\r\n aspectRatios,\r\n });\r\n\r\n _.each(croppedImages, (image) => {\r\n // eslint-disable-next-line no-param-reassign\r\n image.isIncluded = false;\r\n // eslint-disable-next-line no-param-reassign\r\n image.isRequired = false;\r\n });\r\n\r\n return croppedImages;\r\n });\r\n\r\n return setupPromise;\r\n};\r\n\r\nexport const getFilteredTemplates = ({\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n}) => {\r\n const groupTypeTemplates = GroupTypeTemplatesMapping[groupType];\r\n\r\n let templatesToUse = placementFilterPredicate ? _.filter(groupTypeTemplates, template => placementFilterPredicate(template)) : groupTypeTemplates;\r\n\r\n if (placementCustomizationPredicate) {\r\n templatesToUse = _.map(templatesToUse, template => placementCustomizationPredicate(template));\r\n }\r\n\r\n return templatesToUse;\r\n};\r\n\r\nexport const getSinglePlacementLayouts = ({ groupType, placementFilterPredicate, placementCustomizationPredicate }) => {\r\n const templatesToUse = getFilteredTemplates({ groupType, placementFilterPredicate, placementCustomizationPredicate });\r\n const templateTransformerFunc = GroupTypeTransformerMapping[groupType];\r\n\r\n // eslint-disable-next-line arrow-body-style\r\n return _.map(templatesToUse, (template) => {\r\n return {\r\n template,\r\n // eslint-disable-next-line react/prop-types\r\n SinglePlacementLayout: ({ adData, images, decoratorsData }) => {\r\n const i18n = useContext(I18nContext);\r\n const { AdPlacementElement } = useMemo(() => getAdPlacementElement({\r\n template,\r\n templateTransformerFunc,\r\n i18n,\r\n }), [i18n]);\r\n\r\n // eslint-disable-next-line react/prop-types\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n },\r\n };\r\n });\r\n};\r\n\r\nexport const useSinglePlacementLayouts = ({ groupType, placementFilterPredicate, placementCustomizationPredicate }) => {\r\n const layouts = useMemo(() => getSinglePlacementLayouts({ groupType, placementFilterPredicate, placementCustomizationPredicate }), [\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n ]);\r\n\r\n return layouts;\r\n};\r\n\r\n\r\nexport const getPreviewCarouselLayout = ({\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n customDefaultImage,\r\n}) => {\r\n const templateTransformerFunc = GroupTypeTransformerMapping[groupType];\r\n const templatesToUse = getFilteredTemplates({ groupType, placementFilterPredicate, placementCustomizationPredicate });\r\n\r\n const PreviewCarouselLayoutComponent = (props) => {\r\n const {\r\n adData,\r\n imagesToDisplay,\r\n logo,\r\n decoratorsData,\r\n headerButtonProps,\r\n getIsRequiredByIndex,\r\n getCarouselTitleByIndex,\r\n hideHeaderButtons,\r\n hideNavigationControlsIfSingle,\r\n } = props;\r\n const [displayImages, setDisplayImages] = useState([]);\r\n\r\n const placeholderImagesRef = useRef(null);\r\n const isDisplayingPlaceholderImages = useRef(false);\r\n\r\n const i18n = useContext(I18nContext);\r\n\r\n const isImageListEmpty = useMemo(() => imagesToDisplay.length === 0, [imagesToDisplay]);\r\n\r\n const anyImageTemplates = useMemo(() => doAnyTemplatesHaveImages(templatesToUse), [templatesToUse]);\r\n\r\n useEffect(() => {\r\n if (anyImageTemplates) {\r\n if (isImageListEmpty) {\r\n // no need to regenerate placeholder images if present\r\n if (!placeholderImagesRef.current) {\r\n getGenericImagesForTemplateAsync(templatesToUse, customDefaultImage)\r\n .then((placeholderImages) => {\r\n placeholderImagesRef.current = placeholderImages;\r\n setDisplayImages([\r\n ...placeholderImages,\r\n ]);\r\n isDisplayingPlaceholderImages.current = true;\r\n });\r\n } else if (!isDisplayingPlaceholderImages.current) {\r\n setDisplayImages([\r\n ...placeholderImagesRef.current,\r\n ]);\r\n isDisplayingPlaceholderImages.current = true;\r\n }\r\n } else {\r\n setDisplayImages([\r\n ...imagesToDisplay,\r\n ]);\r\n isDisplayingPlaceholderImages.current = false;\r\n }\r\n }\r\n }, [imagesToDisplay, isImageListEmpty, anyImageTemplates]);\r\n\r\n const placementComponents = useMemo(() => {\r\n const componentList = _.map(templatesToUse, (template) => {\r\n const { AdPlacementElement } = getAdPlacementElement({\r\n template,\r\n templateTransformerFunc,\r\n i18n,\r\n });\r\n\r\n return AdPlacementElement;\r\n });\r\n\r\n return componentList;\r\n }, [i18n, displayImages]);\r\n\r\n const previewElements = useMemo(() => {\r\n if (displayImages.length > 0 || !anyImageTemplates) {\r\n // eslint-disable-next-line arrow-body-style\r\n const elementList = _.map(placementComponents, (AdPlacementElement) => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n return elementList;\r\n }\r\n return [];\r\n }, [adData, displayImages, decoratorsData, placementComponents]);\r\n\r\n const getImageInfoByIndex = useCallback((index) => {\r\n const imageType = getImageTypeForTemplate(templatesToUse[index]);\r\n\r\n return _.find(displayImages, ({ associationType }) => associationType === imageType);\r\n }, [displayImages]);\r\n\r\n const getCarouselTitleByIndexImpl = useCallback((index) => {\r\n const title = getCarouselTitleByIndex ? getCarouselTitleByIndex(index) : getCarouselTitleForTemplate(templatesToUse[index], groupType, i18n);\r\n\r\n return title;\r\n }, [getCarouselTitleByIndex]);\r\n\r\n const getMinSizeByIndex = ((index) => {\r\n const template = templatesToUse[index];\r\n\r\n return getMinSizeForTemplate(template);\r\n });\r\n\r\n const validateImageSizeByIndex = useCallback((index) => {\r\n if (isImageListEmpty) {\r\n return true;\r\n }\r\n\r\n const imageInfo = getImageInfoByIndex(index);\r\n\r\n return validateImageSizeForTemplate(templatesToUse[index], imageInfo);\r\n }, [getImageInfoByIndex, isImageListEmpty]);\r\n\r\n const getIsRequiredByIndexImpl = useCallback((index) => {\r\n const isRequired = getIsRequiredByIndex ? getIsRequiredByIndex(index, templatesToUse[index]) : getIsRequiredFromTemplate(templatesToUse[index]);\r\n\r\n return isRequired;\r\n }, [getIsRequiredByIndex]);\r\n\r\n const getTemplateTypeByIndex = useCallback((index) => {\r\n const type = getTemplateTypeForTemplate(templatesToUse[index]);\r\n\r\n return type;\r\n }, []);\r\n\r\n const headerButtonIncludeMethodWrapper = useCallback((type, originalFunc, newValue) => {\r\n // eslint-disable-next-line arrow-body-style\r\n const index = _.findIndex(templatesToUse, (template) => {\r\n return getTemplateTypeForTemplate(template) === type;\r\n });\r\n const imageType = getImageTypeForTemplate(templatesToUse[index]);\r\n\r\n setDisplayImages((prevImages) => {\r\n const imageIndex = _.findIndex(prevImages, ({ associationType }) => associationType === imageType);\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n prevImages[imageIndex].isIncluded = newValue;\r\n\r\n return [\r\n ...prevImages,\r\n ];\r\n });\r\n\r\n originalFunc(type);\r\n }, []);\r\n\r\n const updatedHeaderButtonProps = useMemo(() => {\r\n if (headerButtonProps && headerButtonProps.onAddAspectRatio) {\r\n const updatedProps = {\r\n onEdit: headerButtonProps.onEdit,\r\n };\r\n\r\n updatedProps.onAddAspectRatio = (type) => {\r\n headerButtonIncludeMethodWrapper(type, headerButtonProps.onAddAspectRatio, true);\r\n };\r\n\r\n updatedProps.onRemoveAspectRatio = (type) => {\r\n headerButtonIncludeMethodWrapper(type, headerButtonProps.onRemoveAspectRatio, false);\r\n };\r\n\r\n return updatedProps;\r\n }\r\n return headerButtonProps;\r\n }, [headerButtonIncludeMethodWrapper, headerButtonProps]);\r\n\r\n const doesTemplateShowImageByIndex = useCallback((index) => {\r\n const template = templatesToUse[index];\r\n\r\n return doesTemplateShowImage(template);\r\n }, []);\r\n\r\n const doesTemplateHideHeaderButtonsByIndex = useCallback((index) => {\r\n const template = templatesToUse[index];\r\n\r\n return doesTemplateHideHeaderButtons(template);\r\n }, []);\r\n\r\n // Hide header buttons if template explicitly hides them or if template does not show an image\r\n const shouldHideHeaderButtonsByIndex = useCallback(\r\n index => doesTemplateHideHeaderButtonsByIndex(index) || !doesTemplateShowImageByIndex(index)\r\n , [doesTemplateHideHeaderButtonsByIndex, doesTemplateShowImageByIndex]\r\n );\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n PreviewCarouselLayoutComponent.propTypes = {\r\n adData: PropTypes.shape({}).isRequired,\r\n headerButtonProps: PropTypes.shape({\r\n onEdit: PropTypes.func,\r\n onAddAspectRatio: PropTypes.func,\r\n onRemoveAspectRatio: PropTypes.func,\r\n }),\r\n imagesToDisplay: PropTypes.arrayOf(PropTypes.shape({})),\r\n decoratorsData: PropTypes.shape({}),\r\n getIsRequiredByIndex: PropTypes.func,\r\n getCarouselTitleByIndex: PropTypes.func,\r\n hideHeaderButtons: PropTypes.bool,\r\n hideNavigationControlsIfSingle: PropTypes.bool,\r\n logo: PropTypes.shape({}),\r\n };\r\n\r\n PreviewCarouselLayoutComponent.defaultProps = {\r\n headerButtonProps: null,\r\n imagesToDisplay: [],\r\n decoratorsData: {},\r\n getIsRequiredByIndex: null,\r\n getCarouselTitleByIndex: null,\r\n hideHeaderButtons: null,\r\n hideNavigationControlsIfSingle: false,\r\n logo: null,\r\n };\r\n\r\n return {\r\n PreviewCarouselLayout: PreviewCarouselLayoutComponent,\r\n };\r\n};\r\n\r\nexport const usePreviewCarouselLayout = ({\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n customDefaultImage,\r\n}) => {\r\n const layout = useMemo(() => getPreviewCarouselLayout({\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n customDefaultImage,\r\n }), [groupType, placementFilterPredicate, placementCustomizationPredicate, customDefaultImage]);\r\n\r\n return layout;\r\n};\r\n\r\nexport const getGroupsPreviewerLayout = ({\r\n groupsDefinitions,\r\n customDefaultImage,\r\n}) => {\r\n const previewers = _.chain(groupsDefinitions)\r\n .map(({\r\n key,\r\n groupType,\r\n placementFilterPredicate,\r\n placementCustomizationPredicate,\r\n }) => {\r\n const { PreviewCarouselLayout: PreviewerLayout } =\r\n getPreviewCarouselLayout({\r\n groupType,\r\n placementFilterPredicate,\r\n customDefaultImage,\r\n placementCustomizationPredicate,\r\n });\r\n\r\n return [key, PreviewerLayout];\r\n })\r\n .object()\r\n .value();\r\n\r\n const GroupsPreviewerComponent = props => (\r\n \r\n );\r\n\r\n GroupsPreviewerComponent.propTypes = {\r\n adData: PropTypes.shape({}).isRequired,\r\n decoratorsData: PropTypes.shape({}),\r\n images: PropTypes.arrayOf(PropTypes.shape({})),\r\n headerButtonProps: PropTypes.shape({}).isRequired,\r\n };\r\n\r\n GroupsPreviewerComponent.defaultProps = {\r\n decoratorsData: {},\r\n images: [],\r\n };\r\n\r\n return {\r\n GroupsPreviewer: GroupsPreviewerComponent,\r\n };\r\n};\r\n\r\nexport const useGroupsPreviewerLayout = ({\r\n groupsDefinitions,\r\n customDefaultImage,\r\n}) => {\r\n const layout = useMemo(() => getGroupsPreviewerLayout({\r\n groupsDefinitions,\r\n customDefaultImage,\r\n }), [groupsDefinitions, customDefaultImage]);\r\n\r\n return layout;\r\n};\r\n","import image191100AudienceWide from './image-191-100-audience-wide';\r\nimport image178100EdgeSingle from './image-178-100-edge-single';\r\nimport image178100BingDesktop from './image-178-100-bing-desktop';\r\nimport image172100EdgeMedium from './image-172-100-edge-medium';\r\nimport image169100MSNSingle from './image-169-100-msn-single';\r\nimport image155100MSNMedium from './image-155-100-msn-medium';\r\nimport image150100MSNInArticle from './image-150-100-msn-in-article';\r\nimport image133100MSNSmall from './image-133-100-msn-small';\r\nimport image11AudienceSquare from './image-1-1-audience-square';\r\nimport image093100MSNDouble from './image-093-100-msn-double';\r\n\r\n\r\nexport const imageExtensionTemplates = [\r\n image191100AudienceWide,\r\n image178100EdgeSingle,\r\n image178100BingDesktop,\r\n image172100EdgeMedium,\r\n image169100MSNSingle,\r\n image155100MSNMedium,\r\n image150100MSNInArticle,\r\n image133100MSNSmall,\r\n image11AudienceSquare,\r\n image093100MSNDouble,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceWide191100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 200,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN feed'),\r\n stringKey: _TL_('1.91 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showAdditionalDisclaimer: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 18,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceWide191100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst edgeSingle178100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.78,\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Edge single carousel'),\r\n stringKey: _TL_('1.78 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showGradient: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n height: 73,\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n width: 590,\r\n marginBottom: 20,\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n previewContent: {\r\n '&:hover': {\r\n '& .short-headline': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n width: 624,\r\n height: 350,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default edgeSingle178100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst bingDesktop178100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.78,\r\n type: 'BingSingleImage',\r\n associationType: 'ImageMedia178X100',\r\n imagePreviewHeight: 45,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing desktop single-image extension'),\r\n stringKey: _TL_('1.78 : 1'),\r\n },\r\n previewSettings: {\r\n showImage: true,\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showMultipleLineLongHeadline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 608,\r\n height: 110,\r\n padding: 3,\r\n },\r\n imageContainer: {\r\n float: 'right',\r\n transform: 'translate(20px,20px)',\r\n width: '100px',\r\n height: '75px',\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n height: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktop178100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst edgeMedium172100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.72,\r\n type: 'Image172x100',\r\n associationType: 'ImageMedia172X100',\r\n imagePreviewHeight: 174,\r\n minimumRequirements: 0,\r\n minSize: [300, 174],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Edge medium headline'),\r\n stringKey: _TL_('1.72 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showLongHeadline: true,\r\n showGradient: true,\r\n showMultipleLineLongHeadline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n longHeadline: {\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n previewContent: {\r\n height: 250,\r\n backgroundColor: 'rgb(46, 46, 46)',\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, rgb(46, 46, 46) 100%)',\r\n marginTop: -279,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default edgeMedium172100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnSingle169100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.69,\r\n type: 'Image169x100',\r\n associationType: 'ImageMedia169X100',\r\n imagePreviewHeight: 368,\r\n minimumRequirements: 0,\r\n minSize: [622, 368],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN carousel'),\r\n stringKey: _TL_('1.69 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showLongHeadline: true,\r\n showGradient: true,\r\n showMultipleLineLongHeadline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n longHeadline: {\r\n color: 'white',\r\n height: 80,\r\n width: 575,\r\n fontSize: 28,\r\n lineHeight: 1.214,\r\n },\r\n previewContent: {\r\n width: 622,\r\n height: 368,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default msnSingle169100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnMedium155100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.55,\r\n type: 'Image155x100',\r\n associationType: 'ImageMedia155X100',\r\n imagePreviewHeight: 194,\r\n minimumRequirements: 0,\r\n minSize: [300, 194],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN medium headline'),\r\n stringKey: _TL_('1.55 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showLongHeadline: true,\r\n showMultipleLineLongHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n textContainer: {\r\n padding: '15px 13px',\r\n color: '#333',\r\n height: 98,\r\n },\r\n },\r\n};\r\n\r\nexport default msnMedium155100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnInArticle150100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.50,\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n imagePreviewHeight: 200,\r\n minimumRequirements: 0,\r\n minSize: [300, 200],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN in-article ad'),\r\n stringKey: _TL_('1.5 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 15,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default msnInArticle150100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnSmall133100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.33,\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [100, 75],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN small headline'),\r\n stringKey: _TL_('1.33 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 100,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 52,\r\n overflow: 'hidden',\r\n margin: '4px 8px 0 8px',\r\n },\r\n },\r\n};\r\n\r\nexport default msnSmall133100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceSquare11Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN square image'),\r\n stringKey: _TL_('1.33 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 80,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 45,\r\n overflow: 'hidden',\r\n margin: '8px 8px 0 8px',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceSquare11Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnDouble094100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 0.93,\r\n type: 'Image93x100',\r\n associationType: 'ImageMedia93X100',\r\n imagePreviewHeight: 333,\r\n minimumRequirements: 0,\r\n minSize: [311, 333],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN double carousel'),\r\n stringKey: _TL_('0.93 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n showGradient: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n height: 54,\r\n fontSize: 20,\r\n lineHeight: 1.3,\r\n width: 280,\r\n paddingBottom: 5,\r\n },\r\n previewContent: {\r\n '&:hover': {\r\n '& .short-headline': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n width: 310,\r\n height: 333,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default msnDouble094100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceWide191100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n key: 'msan_191x100',\r\n className: 'msan_191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 200,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN feed'),\r\n stringKey: _TL_('1.91 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showAdditionalDisclaimer: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n width: 382,\r\n height: 360,\r\n },\r\n shortHeadline: {\r\n fontSize: 18,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceWide191100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst edgeSingle178100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.78,\r\n type: 'Image178x100',\r\n key: 'edge_178x100',\r\n className: 'edge_178x100',\r\n associationType: 'ImageMedia178X100',\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft edge single carousel'),\r\n stringKey: _TL_('1.78 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showGradient: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n height: 73,\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n width: 590,\r\n marginBottom: 20,\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n previewContent: {\r\n '&:hover': {\r\n '& .short-headline': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n width: 624,\r\n height: 350,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default edgeSingle178100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnInArticle150100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.50,\r\n type: 'Image150x100',\r\n key: 'msan_150x100',\r\n className: 'msan_150x100',\r\n associationType: 'ImageMedia15X10',\r\n imagePreviewHeight: 200,\r\n minimumRequirements: 0,\r\n minSize: [300, 200],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN in-article ad'),\r\n stringKey: _TL_('1.5 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n width: 300,\r\n height: 360,\r\n },\r\n shortHeadline: {\r\n fontSize: 15,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default msnInArticle150100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnSmall133100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.33,\r\n type: 'Image133x100',\r\n key: 'msan_133x100',\r\n className: 'msan_133x100',\r\n associationType: 'ImageMedia133X100',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [100, 75],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN small headline'),\r\n stringKey: _TL_('1.33 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n marginTop: 150,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 100,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 52,\r\n overflow: 'hidden',\r\n margin: '4px 8px 0 8px',\r\n },\r\n },\r\n};\r\n\r\nexport default msnSmall133100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceSquare11Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n key: 'msan_1x1',\r\n className: 'msan_1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN square image'),\r\n stringKey: _TL_('1 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n marginTop: 150,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 80,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 45,\r\n overflow: 'hidden',\r\n margin: '8px 8px 0 8px',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceSquare11Raw;\r\n","import image191100AudienceWide from './image-191-100-audience-wide';\r\nimport image178100EdgeSingle from './image-178-100-edge-single';\r\nimport image150100MSNInArticle from './image-150-100-msn-in-article';\r\nimport image133100MSNSmall from './image-133-100-msn-small';\r\nimport image11AudienceSquare from './image-1-1-audience-square';\r\nimport textOutlookWeb from './text-outlook-web';\r\nimport textOutlookMobile from './text-outlook-mobile';\r\n\r\nexport const msanImageAdTemplates = [\r\n image191100AudienceWide,\r\n image178100EdgeSingle,\r\n image150100MSNInArticle,\r\n image133100MSNSmall,\r\n image11AudienceSquare,\r\n textOutlookWeb,\r\n textOutlookMobile,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst textOutlookWeb = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'outlook_text_web',\r\n type: 'TextOutlookWeb',\r\n className: 'outlook_text_web',\r\n associationType: 'TextOutlookWeb',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Outlook web (computer)'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showAdsLabel: true,\r\n showPreHeadlineDivider: true,\r\n showPostHeadlineDivider: true,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '1px solid #C8C8C8',\r\n boxShadow: 'none',\r\n minWidth: 500,\r\n borderRadius: 0,\r\n marginTop: 150,\r\n },\r\n adsLabel: {\r\n backgroundColor: 'blue',\r\n borderRadius: 4,\r\n height: 13,\r\n verticalAlign: 'middle',\r\n padding: '0 4px',\r\n width: 'auto',\r\n display: 'inline-block',\r\n position: 'static',\r\n margin: '0 4px 0 0',\r\n fontSize: 10,\r\n color: 'white',\r\n },\r\n businessNameWithAds: {\r\n display: 'inline-block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n marginTop: 0,\r\n marginRight: 40,\r\n verticalAlign: 'middle',\r\n },\r\n imageContainer: {\r\n display: 'inline-block',\r\n },\r\n textContainer: {\r\n display: 'inline-block',\r\n },\r\n preHeadlineDivider: {\r\n border: 'solid gray',\r\n display: 'inline-block',\r\n padding: '2px',\r\n transform: 'rotate(45deg) translateY(-3px)',\r\n borderWidth: '0 1.5px 1.5px 0',\r\n marginRight: 10,\r\n },\r\n shortHeadline: {\r\n display: 'inline-block',\r\n color: 'blue',\r\n padding: 4,\r\n },\r\n postHeadlineDivider: {\r\n display: 'inline-block',\r\n padding: 4,\r\n color: 'gray',\r\n '&:after': {\r\n content: '\"*\"',\r\n },\r\n },\r\n descriptionParent: {\r\n display: 'inline-block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n padding: 4,\r\n },\r\n description: {\r\n display: 'inline-block',\r\n },\r\n },\r\n};\r\n\r\nexport default textOutlookWeb;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst textOutlookMobile = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'outlook_text_mobile',\r\n type: 'TextOutlookMobile',\r\n className: 'outlook_text_mobile',\r\n associationType: 'TextOutlookMobile',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Outlook web (mobile)'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showAdsLabelWithBusinessName: true,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '1px solid #C8C8C8',\r\n boxShadow: 'none',\r\n width: 340,\r\n height: 80,\r\n padding: '5px 10px 5px 15px',\r\n marginTop: 150,\r\n },\r\n businessNameWithAds: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: 20,\r\n maxWidth: 300,\r\n verticalAlign: 'middle',\r\n lineHeight: '30px',\r\n marginTop: 0,\r\n '& .adslabel': {\r\n backgroundColor: 'blue',\r\n borderRadius: 4,\r\n height: 15,\r\n verticalAlign: 'middle',\r\n padding: '0 4px',\r\n width: 'auto',\r\n display: 'inline-block',\r\n position: 'static',\r\n margin: '0 4px 0 0',\r\n fontSize: 10,\r\n color: 'white',\r\n lineHeight: '15px',\r\n },\r\n },\r\n shortHeadline: {\r\n display: 'block',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n descriptionParent: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n description: {\r\n display: 'inline-block',\r\n },\r\n },\r\n};\r\n\r\nexport default textOutlookMobile;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst edgeSingle178100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.78,\r\n key: 'edge_178x100',\r\n className: 'edge_178x100',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Edge single carousel'),\r\n stringKey: _TL_('1.78:1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showGradient: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n height: 73,\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n width: 590,\r\n marginBottom: 20,\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n previewContent: {\r\n '&:hover': {\r\n '& .short-headline': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n width: 624,\r\n height: 350,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default edgeSingle178100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceWide191100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'msan_191x100',\r\n className: 'msan_191x100',\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 200,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN feed'),\r\n stringKey: _TL_('1.91:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showAdditionalDisclaimer: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n maxWidth: 330,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 18,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n maxWidth: 330,\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceWide191100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceSquare11Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'msan_1x1',\r\n className: 'msan_1x1',\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN square image'),\r\n stringKey: _TL_('1:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 80,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 45,\r\n overflow: 'hidden',\r\n margin: '8px 8px 0 8px',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceSquare11Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image11MMASquareRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'mma_1x1',\r\n className: 'mma_1x1',\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 400,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [470, 470],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Square image'),\r\n stringKey: _TL_('1:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showGradient: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n description: {\r\n color: 'white',\r\n bottom: 8,\r\n fontSize: 14,\r\n position: 'relative',\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n height: 400,\r\n width: 400,\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n bottom: 20,\r\n position: 'relative',\r\n fontSize: 24,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n bottom: 18,\r\n position: 'relative',\r\n },\r\n textContainer: {\r\n left: 0,\r\n position: 'absolute',\r\n lineHeight: 1.1,\r\n paddingLeft: 32,\r\n bottom: 25,\r\n fontSize: 10,\r\n },\r\n gradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n width: '100%',\r\n height: 400,\r\n display: 'block',\r\n position: 'absolute',\r\n },\r\n actionButton: {\r\n padding: '6px 16px 8px 16px',\r\n position: 'relative',\r\n },\r\n },\r\n};\r\n\r\nexport default image11MMASquareRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image12MmaVerticalRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'mma_1x2',\r\n className: 'mma_1x2',\r\n aspectRatio: 0.5,\r\n type: 'Image1x2',\r\n associationType: 'ImageMedia1x2',\r\n imagePreviewHeight: 400,\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [470, 940],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Vertical image'),\r\n stringKey: _TL_('1:2'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n backgroundColor: 'white',\r\n },\r\n gradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n width: '100%',\r\n height: 400,\r\n display: 'block',\r\n position: 'absolute',\r\n },\r\n description: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n height: 400,\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n position: 'relative',\r\n color: 'white',\r\n bottom: 20,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n bottom: 15,\r\n position: 'relative',\r\n },\r\n actionButton: {\r\n padding: '5px 16px 6px 16px',\r\n position: 'relative',\r\n top: 5,\r\n fontSize: 14,\r\n borderRadius: 3,\r\n },\r\n textContainer: {\r\n left: 0,\r\n position: 'absolute',\r\n lineHeight: 1.1,\r\n paddingLeft: 32,\r\n bottom: 25,\r\n fontSize: 10,\r\n },\r\n },\r\n};\r\n\r\nexport default image12MmaVerticalRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image41MmaWideRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'mma_4x1',\r\n className: 'mma_4x1',\r\n aspectRatio: 4,\r\n type: 'Image4x1',\r\n associationType: 'ImageMedia4x1',\r\n imagePreviewHeight: 152,\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [608, 152],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Wide image'),\r\n stringKey: _TL_('4:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showGradient: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n right: '0%',\r\n backgroundColor: 'white',\r\n },\r\n description: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n lineHeight: '16px',\r\n position: 'relative',\r\n color: 'white',\r\n paddingBottom: 5,\r\n fontWeight: 200,\r\n bottom: 15,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 0,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n paddingLeft: 32,\r\n },\r\n finalUrl: {\r\n color: 'white',\r\n bottom: 10,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n actionButton: {\r\n color: '#666',\r\n opacity: '70%',\r\n padding: '7px 16px 8px 16px',\r\n position: 'relative',\r\n backgroundColor: '#EEE',\r\n },\r\n },\r\n};\r\n\r\nexport default image41MmaWideRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnSmall133100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'msan_133x100',\r\n className: 'msan_133x100',\r\n aspectRatio: 1.33,\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [100, 75],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN small headline'),\r\n stringKey: _TL_('1.33:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 100,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 52,\r\n overflow: 'hidden',\r\n margin: '4px 8px 0 8px',\r\n },\r\n },\r\n};\r\n\r\nexport default msnSmall133100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnInArticle150100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'msan_150x100',\r\n className: 'msan_150x100',\r\n aspectRatio: 1.50,\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n imagePreviewHeight: 200,\r\n minimumRequirements: 0,\r\n minSize: [300, 200],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN in-article ad'),\r\n stringKey: _TL_('1.5:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showShortHeadlineMultiline: true,\r\n showAdditionalDisclaimer: true,\r\n showMultipleDescription: true,\r\n showUrlMultiline: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n maxWidth: 250,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 15,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default msnInArticle150100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image191100MmaLandscapeRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'mma_191x100',\r\n className: 'mma_191x100',\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 244,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Landscape Image Multimedia Ad'),\r\n stringKey: _TL_('1.91:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n backgroundColor: 'white',\r\n },\r\n description: {\r\n color: 'black',\r\n maxWidth: 250,\r\n wordWrap: 'break-word',\r\n paddingRight: 16,\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n fontWeight: 200,\r\n marginBottom: 8,\r\n paddingBottom: 5,\r\n color: 'black',\r\n },\r\n textContainer: {\r\n padding: '8px 20px 20px 20px',\r\n maxWidth: '-webkit-fill-available',\r\n width: 466,\r\n lineHeight: 1.1,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n marginBottom: 8,\r\n },\r\n actionButton: {\r\n right: 15,\r\n bottom: 15,\r\n padding: '6px 16px 8px 16px',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n },\r\n },\r\n};\r\n\r\nexport default image191100MmaLandscapeRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst bingDesktopTextRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'bing_text',\r\n className: 'bing_text',\r\n type: 'BingText',\r\n associationType: 'BingText',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showMultipleLineLongHeadline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 608,\r\n height: 110,\r\n padding: '8px 16px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n height: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n display: 'inline-block',\r\n fontSize: '13px',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktopTextRaw;\r\n","export const bingDesktopHeaderImage = 'data:image/png;base64,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';\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nimport { bingDesktopHeaderImage } from '../media/bing-desktop-header';\r\n\r\nconst bingDesktopTextRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'bing_text_desktop',\r\n className: 'bing_text_desktop',\r\n type: 'BingTextDesktop',\r\n associationType: 'BingTextDesktop',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing search ad'),\r\n stringKey: _TL_(''),\r\n headerImageAlt: _TL_('Header Image'),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showMultipleLineLongHeadline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showHeaderImage: true,\r\n headerImage: bingDesktopHeaderImage,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 530,\r\n height: 110,\r\n padding: '8px 16px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n height: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n headerImage: {\r\n height: 100,\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktopTextRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst bingDesktopTextRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'bing_text_mobile',\r\n className: 'bing_text_mobile',\r\n type: 'BingTextMobile',\r\n associationType: 'BingTextMobile',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showMultipleLineLongHeadline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n placementContainer: {\r\n border: '5px solid #605e5c',\r\n position: 'relative',\r\n borderBottom: 'none',\r\n borderRadius: '40px 40px 0 0',\r\n width: 700,\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n cardParent: {\r\n margin: '45px 15px 0 15px',\r\n borderBottom: 'none',\r\n borderRadius: 0,\r\n paddingBottom: 1,\r\n '&:before': {\r\n top: 20,\r\n left: '50%',\r\n border: '5px solid #605e5c',\r\n content: '\"\"',\r\n position: 'absolute',\r\n borderRadius: 5,\r\n },\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 608,\r\n height: 110,\r\n padding: '8px 16px',\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n height: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktopTextRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst textOutlookWeb = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'outlook_text_web',\r\n className: 'outlook_text_web',\r\n type: 'TextOutlookWeb',\r\n associationType: 'TextOutlookWeb',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Outlook web (computer)'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showAdsLabel: true,\r\n showPreHeadlineDivider: true,\r\n showPostHeadlineDivider: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '1px solid #C8C8C8',\r\n boxShadow: 'none',\r\n minWidth: 500,\r\n borderRadius: 0,\r\n },\r\n adsLabel: {\r\n backgroundColor: 'blue',\r\n borderRadius: 4,\r\n height: 13,\r\n verticalAlign: 'middle',\r\n padding: '0 4px',\r\n width: 'auto',\r\n display: 'inline-block',\r\n position: 'static',\r\n margin: '0 4px 0 0',\r\n fontSize: 10,\r\n color: 'white',\r\n },\r\n businessNameWithAds: {\r\n display: 'inline-block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n marginTop: 0,\r\n marginRight: 40,\r\n verticalAlign: 'middle',\r\n },\r\n imageContainer: {\r\n display: 'inline-block',\r\n },\r\n textContainer: {\r\n display: 'inline-block',\r\n },\r\n preHeadlineDivider: {\r\n border: 'solid gray',\r\n display: 'inline-block',\r\n padding: '2px',\r\n transform: 'rotate(45deg) translateY(-3px)',\r\n borderWidth: '0 1.5px 1.5px 0',\r\n marginRight: 10,\r\n },\r\n shortHeadline: {\r\n display: 'inline-block',\r\n color: 'blue',\r\n padding: 4,\r\n },\r\n postHeadlineDivider: {\r\n display: 'inline-block',\r\n padding: 4,\r\n color: 'gray',\r\n '&:after': {\r\n content: '\"*\"',\r\n },\r\n },\r\n descriptionParent: {\r\n display: 'inline-block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n padding: 4,\r\n },\r\n description: {\r\n display: 'inline-block',\r\n },\r\n },\r\n};\r\n\r\nexport default textOutlookWeb;\r\n","import image178100EdgeSingle from './image-178-100-edge-single';\r\nimport image191100AudienceWide from './image-191-100-audience-wide';\r\nimport image11AudienceSquare from './image-1-1-audience-square';\r\nimport image11MMASquare from './image-1-1-mma-square';\r\nimport image12MMAVertical from './image-1-2-mma-vertical';\r\nimport image41MMAWide from './image-4-1-mma-wide';\r\nimport image133100MSNSmall from './image-133-100-msn-small';\r\nimport image150100MSNInArticle from './image-150-100-msn-in-article';\r\nimport image191100MMALandscape from './image-191-100-mma-landscape';\r\nimport textBing from './text-bing';\r\nimport textBingDesktop from './text-bing-desktop';\r\nimport textBingMobile from './text-bing-mobile';\r\nimport textOutlookWeb from './text-outlook-web';\r\nimport textOutlookMobile from './text-outlook-mobile';\r\n\r\nexport const perfMaxTemplates = [\r\n image191100AudienceWide,\r\n image178100EdgeSingle,\r\n image150100MSNInArticle,\r\n image11AudienceSquare,\r\n image133100MSNSmall,\r\n image41MMAWide,\r\n image191100MMALandscape,\r\n image11MMASquare,\r\n image12MMAVertical,\r\n textBing,\r\n textBingDesktop,\r\n textBingMobile,\r\n textOutlookMobile,\r\n textOutlookWeb,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst textOutlookMobile = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'outlook_text_mobile',\r\n className: 'outlook_text_mobile',\r\n type: 'TextOutlookMobile',\r\n associationType: 'TextOutlookMobile',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft Outlook web (mobile)'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showAdsLabelWithBusinessName: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '1px solid #C8C8C8',\r\n boxShadow: 'none',\r\n width: 340,\r\n height: 80,\r\n padding: '5px 10px 5px 15px',\r\n },\r\n businessNameWithAds: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: 20,\r\n maxWidth: 300,\r\n verticalAlign: 'middle',\r\n lineHeight: '30px',\r\n marginTop: 0,\r\n '& .adslabel': {\r\n backgroundColor: 'blue',\r\n borderRadius: 4,\r\n height: 15,\r\n verticalAlign: 'middle',\r\n padding: '0 4px',\r\n width: 'auto',\r\n display: 'inline-block',\r\n position: 'static',\r\n margin: '0 4px 0 0',\r\n fontSize: 10,\r\n color: 'white',\r\n lineHeight: '15px',\r\n },\r\n },\r\n shortHeadline: {\r\n display: 'block',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n descriptionParent: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n description: {\r\n display: 'inline-block',\r\n },\r\n },\r\n};\r\n\r\nexport default textOutlookMobile;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image191100MmaLandscapeRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 244,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Landscape Image Multimedia Ad'),\r\n stringKey: _TL_('1.91 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n backgroundColor: 'white',\r\n },\r\n description: {\r\n color: 'black',\r\n maxWidth: 250,\r\n wordWrap: 'break-word',\r\n paddingRight: 16,\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n borderRadius: 0,\r\n boxShadow: 'none',\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n fontWeight: 200,\r\n marginBottom: 8,\r\n paddingBottom: 5,\r\n color: 'black',\r\n },\r\n textContainer: {\r\n padding: '8px 20px 20px 20px',\r\n maxWidth: '-webkit-fill-available',\r\n width: 466,\r\n lineHeight: 1.1,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n marginBottom: 8,\r\n },\r\n actionButton: {\r\n right: 15,\r\n bottom: 15,\r\n padding: '6px 16px 8px 16px',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n },\r\n },\r\n};\r\n\r\nexport default image191100MmaLandscapeRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image11MMASquareRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 400,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [470, 470],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Square Image Multimedia Ad'),\r\n stringKey: _TL_('1 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showImageGradient: true,\r\n },\r\n styleOverrides: {\r\n description: {\r\n color: 'white',\r\n bottom: 8,\r\n fontSize: 14,\r\n position: 'relative',\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n height: 400,\r\n width: 400,\r\n borderRadius: 0,\r\n boxShadow: 'none',\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n bottom: 20,\r\n position: 'relative',\r\n fontSize: 24,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n bottom: 18,\r\n position: 'relative',\r\n },\r\n textContainer: {\r\n left: 0,\r\n position: 'absolute',\r\n lineHeight: 1.1,\r\n paddingLeft: 32,\r\n bottom: 25,\r\n fontSize: 10,\r\n },\r\n imageGradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n width: '100%',\r\n height: 400,\r\n display: 'block',\r\n position: 'absolute',\r\n },\r\n actionButton: {\r\n padding: '6px 16px 8px 16px',\r\n position: 'relative',\r\n },\r\n },\r\n};\r\n\r\nexport default image11MMASquareRaw;\r\n","import image191100MmaLandscape from './image-191-100-mma-landscape';\r\nimport image11MmaSquare from './image-1-1-mma-square';\r\nimport image41MmaWide from './image-4-1-mma-wide';\r\nimport image12MmaVertical from './image-1-2-mma-vertical';\r\n\r\nexport const searchImageAdTemplates = [\r\n image41MmaWide,\r\n image191100MmaLandscape,\r\n image11MmaSquare,\r\n image12MmaVertical,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image41MmaWideRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 4,\r\n type: 'Image4x1',\r\n associationType: 'ImageMedia4x1',\r\n imagePreviewHeight: 152,\r\n isRequired: false,\r\n minimumRequirements: 0,\r\n minSize: [608, 152],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Wide Image Multimedia Ad'),\r\n stringKey: _TL_('4 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n showImageGradient: true,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n right: '0%',\r\n backgroundColor: 'white',\r\n },\r\n description: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n imageGradient: {\r\n backgroundImage: 'linear-gradient(to left, transparent 0, black 100%)',\r\n width: '100%',\r\n height: 152,\r\n display: 'block',\r\n position: 'absolute',\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n borderRadius: 0,\r\n boxShadow: 'none',\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n lineHeight: '16px',\r\n position: 'relative',\r\n color: 'white',\r\n paddingBottom: 5,\r\n fontWeight: 200,\r\n bottom: 15,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 0,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n paddingLeft: 32,\r\n },\r\n finalUrl: {\r\n color: 'white',\r\n bottom: 10,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n actionButton: {\r\n color: '#666',\r\n opacity: '70%',\r\n padding: '7px 16px 8px 16px',\r\n position: 'relative',\r\n backgroundColor: '#EEE',\r\n },\r\n },\r\n};\r\n\r\nexport default image41MmaWideRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image12MmaVerticalRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 0.5,\r\n type: 'Image1x2',\r\n associationType: 'ImageMedia1x2',\r\n imagePreviewHeight: 400,\r\n isRequired: false,\r\n minimumRequirements: 0,\r\n minSize: [470, 940],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Vertical Image Multimedia Ad'),\r\n stringKey: _TL_('1 : 2'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: true,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: true,\r\n showAction: true,\r\n showUrl: true,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n backgroundColor: 'white',\r\n },\r\n gradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n width: '100%',\r\n height: 400,\r\n display: 'block',\r\n position: 'absolute',\r\n },\r\n description: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n height: 400,\r\n borderRadius: 0,\r\n boxShadow: 'none',\r\n },\r\n shortHeadline: {\r\n fontSize: 24,\r\n position: 'relative',\r\n color: 'white',\r\n bottom: 20,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 10,\r\n bottom: 15,\r\n position: 'relative',\r\n },\r\n actionButton: {\r\n padding: '5px 16px 6px 16px',\r\n position: 'relative',\r\n top: 5,\r\n fontSize: 14,\r\n borderRadius: 3,\r\n },\r\n textContainer: {\r\n left: 0,\r\n position: 'absolute',\r\n lineHeight: 1.1,\r\n paddingLeft: 32,\r\n bottom: 25,\r\n fontSize: 10,\r\n },\r\n },\r\n};\r\n\r\nexport default image12MmaVerticalRaw;\r\n","import textBing from './text-bing';\r\nimport image191100AudienceWide from './image-191-100-audience-wide';\r\nimport image178100EdgeSingle from './image-178-100-edge-single';\r\nimport image150100MSNInArticle from './image-150-100-msn-in-article';\r\nimport image133100MSNSmall from './image-133-100-msn-small';\r\nimport image11AudienceSquare from './image-1-1-audience-square';\r\nimport social11Facebook from './social-1-1-facebook';\r\n\r\nexport const streamlinedSignupTemplates = [\r\n textBing,\r\n image191100AudienceWide,\r\n image178100EdgeSingle,\r\n image150100MSNInArticle,\r\n image133100MSNSmall,\r\n image11AudienceSquare,\r\n social11Facebook,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst bingDesktopTextRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'bing_text',\r\n type: 'BingText',\r\n associationType: 'BingText',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showMultipleLineLongHeadline: false,\r\n showDescription: true,\r\n showMultipleDescription: false,\r\n showUrl: true,\r\n showUrlMultiline: false,\r\n showAdsLabelInlineWithDescription: true,\r\n showPreviewTypeString: false,\r\n showPhoneAndAddressDecorator: true,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n padding: 16,\r\n wordBreak: 'break-word',\r\n whiteSpace: 'pre-wrap',\r\n minWidth: 280,\r\n },\r\n textContainer: {\r\n maxWidth: '350px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '14px',\r\n lineHeight: '18px',\r\n maxHeight: '54px',\r\n marginBottom: '4px',\r\n overflow: 'hidden',\r\n overflowWrap: 'break-word',\r\n textOverflow: 'ellipsis',\r\n color: '#001BA0',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n description: {\r\n color: '#333',\r\n display: 'inline',\r\n fontSize: '13px',\r\n },\r\n descriptionParent: {\r\n overflow: 'hidden',\r\n overflowWrap: 'break-word',\r\n textOverflow: 'ellipsis',\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktopTextRaw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceWide191100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 200,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN feed'),\r\n stringKey: _TL_('1.91 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showShortHeadlineMultiline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n width: 382,\r\n height: 360,\r\n },\r\n shortHeadline: {\r\n fontSize: 18,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceWide191100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst edgeSingle178100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.78,\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Microsoft edge single carousel'),\r\n stringKey: _TL_('1.78 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showGradient: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n '& .business-name': {\r\n fontSize: 11,\r\n lineHeight: '1.364',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n '& .adslabel': {\r\n fontSize: 10,\r\n lineHeight: '1.364',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n borderRadius: 4,\r\n color: '#fff',\r\n fontFamily: '\"Segoe UI\",\"Segoe WP\",Arial,Sans-Serif',\r\n fontWeight: 400,\r\n padding: '.8px 4px',\r\n border: '.5px solid hsla(0,0%,100%,.3)',\r\n opacity: 0.7,\r\n },\r\n },\r\n shortHeadline: {\r\n color: 'white',\r\n height: 73,\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n width: 590,\r\n marginBottom: 20,\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n previewContent: {\r\n '&:hover': {\r\n '& .short-headline': {\r\n textDecoration: 'underline',\r\n },\r\n },\r\n width: 624,\r\n height: 350,\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n color: '#bebebe',\r\n bottom: 25,\r\n left: 20,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n gradient: {\r\n '&:after': {\r\n display: 'block',\r\n position: 'relative',\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n marginTop: -250,\r\n height: 280,\r\n width: '100%',\r\n content: '\\'\\'',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default edgeSingle178100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnInArticle150100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.50,\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n imagePreviewHeight: 200,\r\n minimumRequirements: 0,\r\n minSize: [300, 200],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN in-article ad'),\r\n stringKey: _TL_('1.5 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showShortHeadlineMultiline: true,\r\n showMultipleDescription: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n description: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n width: 300,\r\n height: 360,\r\n },\r\n shortHeadline: {\r\n fontSize: 15,\r\n lineHeight: '1.2',\r\n height: 60,\r\n position: 'relative',\r\n top: -6,\r\n color: '#207697',\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n textContainer: {\r\n padding: '10px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default msnInArticle150100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst msnSmall133100Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.33,\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [100, 75],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN small headline'),\r\n stringKey: _TL_('1.33 : 1'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 100,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 52,\r\n overflow: 'hidden',\r\n margin: '4px 8px 0 8px',\r\n },\r\n },\r\n};\r\n\r\nexport default msnSmall133100Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst audienceSquare11Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('MSN square image'),\r\n stringKey: _TL_('1 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: true,\r\n showBusinessName: true,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: true,\r\n },\r\n styleOverrides: {\r\n businessNameWithAds: {\r\n padding: '1px 0',\r\n marginTop: 9,\r\n '& .adslabel': {\r\n border: '.5px solid #78718a',\r\n color: '#78718a',\r\n fontSize: 10,\r\n fontWeight: 400,\r\n lineHeight: '13.64px',\r\n textDecorationThickness: 'auto',\r\n textSizeAdjust: '100%',\r\n borderRadius: '4px',\r\n background: '#fff',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n },\r\n '& .business-name': {\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: '15.004px',\r\n padding: '1px 0',\r\n },\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: 300,\r\n height: 90,\r\n padding: 0,\r\n },\r\n imageContainer: {\r\n float: 'left',\r\n transform: 'none',\r\n width: 80,\r\n height: 75,\r\n margin: '8px',\r\n },\r\n textContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n shortHeadline: {\r\n fontWeight: 600,\r\n fontSize: 13,\r\n lineHeight: 1.384,\r\n height: 45,\r\n overflow: 'hidden',\r\n margin: '8px 8px 0 8px',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n height: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n },\r\n },\r\n};\r\n\r\nexport default audienceSquare11Raw;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst facebook11Raw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'facebook_image_11',\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n imagePreviewHeight: 266,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n hideHeaderButtons: true,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Facebook'),\r\n stringKey: _TL_('1 : 1'),\r\n disclaimerMessage: _TL_('This is an example of how your ad could appear on other websites on the Microsoft Advertising Network. The final ad format is likely to change to match the look and feel of the website.'),\r\n },\r\n previewSettings: {\r\n showAdsLabelWithBusinessName: false,\r\n showBusinessName: false,\r\n showImage: true,\r\n showShortHeadline: true,\r\n showShortHeadlineMultiline: false,\r\n showDescription: true,\r\n showUrl: true,\r\n showPersonaDecorator: true,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: '266px',\r\n minHeight: '372px',\r\n padding: 0,\r\n },\r\n textContainer: {\r\n position: 'relative',\r\n padding: '8px',\r\n background: '#f0f2f5',\r\n minHeight: '60px',\r\n },\r\n shortHeadline: {\r\n marginTop: '16px',\r\n overflow: 'hidden',\r\n maxHeight: '48px',\r\n fontSize: '12px',\r\n fontWeight: 600,\r\n color: '#000000',\r\n },\r\n finalUrl: {\r\n position: 'absolute',\r\n top: '6px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n width: '250px',\r\n height: '16px',\r\n fontSize: '10px',\r\n color: '#53565C',\r\n },\r\n description: {\r\n fontSize: '12px',\r\n color: '#333',\r\n },\r\n },\r\n};\r\n\r\nexport default facebook11Raw;\r\n","import adLibraryImageAdPreview from '../ad-library/image-191-100-ad-library';\r\nimport adLibraryTextAdPreview from '../ad-library/text-bing';\r\n\r\nexport const adLibraryTemplates = [\r\n adLibraryImageAdPreview,\r\n adLibraryTextAdPreview,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst image191100AdsLib = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: '191x100_AdsLib',\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n imagePreviewHeight: 150,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Landscape Image Multimedia Ad'),\r\n stringKey: _TL_('1.91:1'),\r\n },\r\n previewSettings: {\r\n showAdsLabel: false,\r\n showImage: true,\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showAdditionalDisclaimer: false,\r\n showAction: false,\r\n showUrl: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n adsLabel: {\r\n backgroundColor: 'white',\r\n },\r\n description: {\r\n color: '#605E5C',\r\n maxWidth: 250,\r\n wordWrap: 'break-word',\r\n paddingRight: 16,\r\n fontSize: 12,\r\n },\r\n previewContent: {\r\n margin: 'auto',\r\n background: '#fff',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n },\r\n shortHeadline: {\r\n fontSize: 14,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n color: '#207697',\r\n },\r\n textContainer: {\r\n padding: '8px 20px 20px 20px',\r\n maxWidth: '-webkit-fill-available',\r\n width: 286,\r\n lineHeight: 1.1,\r\n },\r\n finalUrl: {\r\n color: 'green',\r\n fontSize: 12,\r\n marginBottom: 8,\r\n },\r\n actionButton: {\r\n right: 15,\r\n bottom: 15,\r\n padding: '6px 16px 8px 16px',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n },\r\n },\r\n};\r\n\r\nexport default image191100AdsLib;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst bingDesktopTextRaw = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n key: 'bing_text',\r\n type: 'BingText',\r\n associationType: 'BingText',\r\n minimumRequirements: 0,\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Bing search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showMultipleLineLongHeadline: true,\r\n showUrlMultiline: true,\r\n showMultipleDescription: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showPreviewTypeString: false,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: 308,\r\n maxHeight: 260,\r\n padding: '8px 16px',\r\n overflow: 'hidden',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '14px',\r\n lineHeight: '24px',\r\n height: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '12px',\r\n height: '20px',\r\n marginBottom: '5px',\r\n },\r\n description: {\r\n color: '#333',\r\n display: 'inline-block',\r\n fontSize: '12px',\r\n flexGrow: 1,\r\n marginBottom: '10px',\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n },\r\n};\r\n\r\nexport default bingDesktopTextRaw;\r\n","import image191100AudienceWide from '../msan-image-ad/image-191-100-audience-wide';\r\nimport image178100EdgeSingle from '../msan-image-ad/image-178-100-edge-single';\r\nimport image150100MSNInArticle from '../msan-image-ad/image-150-100-msn-in-article';\r\nimport image133100MSNSmall from '../msan-image-ad/image-133-100-msn-small';\r\nimport image11AudienceSquare from '../msan-image-ad/image-1-1-audience-square';\r\nimport windowsSpotlight from './image-windows-spotlight';\r\nimport discover from './image-discover';\r\nimport startMenu from './image-start-menu';\r\nimport actionCenter from './image-action-center';\r\nimport banner from './image-banner';\r\nimport imageProng from './image-prong';\r\nimport imageCoachMark from './image-coachmark';\r\n\r\nexport const msanBoostImageAdTemplates = [\r\n image191100AudienceWide,\r\n image178100EdgeSingle,\r\n image150100MSNInArticle,\r\n image133100MSNSmall,\r\n image11AudienceSquare,\r\n windowsSpotlight,\r\n discover,\r\n startMenu,\r\n actionCenter,\r\n banner,\r\n imageProng,\r\n imageCoachMark,\r\n];\r\n","\r\nimport { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst windowsSpotlight = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.9,\r\n type: 'Image191x100',\r\n className: 'boost-windows',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n imagePreviewHeight: 250,\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [268, 140],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Windows Spotlight'),\r\n stringKey: _TL_('Windows Spotlight'),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showBusinessName: false,\r\n multipleLineLongHeadline: true,\r\n multipleDescription: true,\r\n showDescription: true,\r\n hideLabel: true,\r\n showHotspots: true,\r\n showBoostWindows: true,\r\n showImage: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .hardcode-time': {\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 20,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n '& .welcome': {\r\n marginBottom: 10,\r\n },\r\n '& .time': {\r\n fontSize: 40,\r\n },\r\n },\r\n '& .text-container-apl': {\r\n display: 'flex',\r\n right: 50,\r\n top: 20,\r\n color: 'white',\r\n bottom: 'unset',\r\n left: 'unset',\r\n padding: 10,\r\n fontSize: 8,\r\n position: 'absolute',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 65,\r\n height: 65,\r\n backgroundColor: '#272a14',\r\n opacity: 0.8,\r\n borderRadius: 5,\r\n },\r\n '& .hotspot0': {\r\n position: 'absolute',\r\n color: 'white',\r\n top: 20,\r\n left: 80,\r\n display: 'flex',\r\n padding: 10,\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 130,\r\n height: 130,\r\n fontSize: 8,\r\n backgroundColor: '#272a14',\r\n opacity: 0.8,\r\n borderRadius: 5,\r\n '& .hotspot-action': {\r\n marginTop: 10,\r\n curosr: 'pointer',\r\n },\r\n },\r\n '& .hotspot1': {\r\n position: 'absolute',\r\n color: 'white',\r\n top: '50%',\r\n left: '50%',\r\n padding: 10,\r\n transform: 'translate(-50%, -50%)',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 130,\r\n height: 130,\r\n fontSize: 8,\r\n backgroundColor: '#272a14',\r\n opacity: 0.8,\r\n borderRadius: 5,\r\n '& .hotspot-action': {\r\n marginTop: 10,\r\n curosr: 'pointer',\r\n },\r\n },\r\n '& .hotspot2': {\r\n position: 'absolute',\r\n color: 'white',\r\n top: 250,\r\n right: 80,\r\n padding: 10,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: 130,\r\n height: 130,\r\n fontSize: 8,\r\n backgroundColor: '#272a14',\r\n opacity: 0.8,\r\n borderRadius: 5,\r\n '& .hotspot-action': {\r\n marginTop: 10,\r\n curosr: 'pointer',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default windowsSpotlight;\r\n\r\n","\r\nimport { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst discover = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n imagePreviewHeight: 250,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Discover card'),\r\n stringKey: _TL_('Discover card'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'boost-discover-card',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showBusinessName: false,\r\n multipleDescription: true,\r\n showDescription: true,\r\n showAction: true,\r\n showImage: true,\r\n showBoostDiscover: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n overflow: 'visible !important',\r\n width: '280px !important',\r\n height: 400,\r\n borderRadius: 5,\r\n border: '1px solid #C8C8C8',\r\n padding: '10px',\r\n position: 'relative !important',\r\n },\r\n '& .hardcode-discover': {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n fontSize: 16,\r\n color: 'black',\r\n borderBottom: '1px solid #C8C8C8',\r\n paddingLeft: 10,\r\n },\r\n '& .image-container': {\r\n top: 27,\r\n position: 'absolute',\r\n },\r\n '& .short-headline': {\r\n left: 15,\r\n top: 288,\r\n position: 'absolute',\r\n width: 250,\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n color: 'black',\r\n },\r\n '& .description': {\r\n left: 15,\r\n top: 310,\r\n fontSize: 12,\r\n position: 'absolute',\r\n color: 'black',\r\n },\r\n '& .action-button': {\r\n position: 'absolute',\r\n left: 15,\r\n top: 353,\r\n border: 'none',\r\n borderRadius: '0px !important',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default discover;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst startMenu = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.75,\r\n type: 'SquareLogoMedia',\r\n associationType: 'start-SquareLogoMedia',\r\n imagePreviewHeight: 160,\r\n className: 'boost-start-menu',\r\n logoHeight: 24,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Start Menu'),\r\n stringKey: _TL_('Start Menu'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'boost-start-menu',\r\n showLogo: true,\r\n showShortHeadline: true,\r\n multipleLineLongHeadline: true,\r\n showLongHeadline: true,\r\n showAction: false,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n marginTop: 'auto',\r\n marginBottom: 'auto',\r\n '& .responsive-ad-preview-content': {\r\n width: '280px !important',\r\n height: 60,\r\n backgroundColor: '#262632',\r\n },\r\n '& .logo-container': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 10,\r\n transform: 'translateY(-50%)',\r\n },\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n fontSize: 12,\r\n width: 200,\r\n color: 'white',\r\n },\r\n '& .long-headline': {\r\n position: 'absolute',\r\n top: 15,\r\n left: 40,\r\n fontSize: 12,\r\n color: 'white',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default startMenu;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst actionCenter = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.75,\r\n associationType: 'action-center-SquareLogoMedia',\r\n type: 'Image178x100',\r\n className: 'boost-actionCenter',\r\n imagePreviewHeight: 160,\r\n logoHeight: 48,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Action Center'),\r\n stringKey: _TL_('Action Center'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'boost-actionCenter',\r\n showLogo: true,\r\n showShortHeadline: true,\r\n multipleDescription: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n dismissText: _TL_('Dismiss'),\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n marginTop: 'auto',\r\n marginBottom: 'auto',\r\n '& .responsive-ad-preview-content': {\r\n width: '280px !important',\r\n height: 150,\r\n backgroundColor: '#e8e9eb',\r\n },\r\n '& .logo-container': {\r\n position: 'absolute',\r\n top: 20,\r\n left: 20,\r\n },\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 20,\r\n left: 80,\r\n width: 180,\r\n fontSize: 12,\r\n color: 'black',\r\n fontWeight: 'bold',\r\n },\r\n '& .description': {\r\n position: 'absolute',\r\n top: 50,\r\n fontSize: 12,\r\n left: 80,\r\n width: 180,\r\n color: 'black',\r\n },\r\n '& .action-button': {\r\n position: 'absolute',\r\n left: 20,\r\n top: 120,\r\n color: 'black',\r\n width: 120,\r\n backgroundColor: 'white',\r\n border: 'none',\r\n height: 20,\r\n fontSize: '10px !important',\r\n borderRadius: '0px !important',\r\n },\r\n '& .dismiss-button': {\r\n position: 'absolute',\r\n left: 150,\r\n top: 120,\r\n width: 120,\r\n color: 'black',\r\n backgroundColor: 'white',\r\n border: 'none',\r\n height: 20,\r\n borderRadius: '0px !important',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default actionCenter;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst banner = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n associationType: 'banner-ad',\r\n className: 'boost-banner',\r\n imagePreviewHeight: 160,\r\n logoHeight: 20,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Banner'),\r\n stringKey: _TL_('Banner'),\r\n },\r\n previewSettings: {\r\n showLogo: true,\r\n showShortHeadline: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n dismissText: _TL_('Dismiss'),\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n marginTop: 'auto',\r\n marginBottom: 'auto',\r\n '& .responsive-ad-preview-content': {\r\n height: 35,\r\n width: '500px !important',\r\n },\r\n '& .logo-container': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 10,\r\n transform: 'translateY(-50%)',\r\n },\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 40,\r\n fontSize: 12,\r\n color: 'black',\r\n transform: 'translateY(-50%)',\r\n width: 220,\r\n },\r\n '& .action-button': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 350,\r\n padding: '5px 10px',\r\n border: 'none',\r\n color: 'white',\r\n height: '24px',\r\n width: '60px',\r\n borderRadius: 10,\r\n backgroundColor: '#0078d4',\r\n transform: 'translateY(-50%)',\r\n fontSize: '10px !important',\r\n },\r\n '& .dismiss-button': {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 430,\r\n border: 'none',\r\n padding: '5px 10px',\r\n borderRadius: 10,\r\n color: 'black',\r\n transform: 'translateY(-50%)',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default banner;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst imageProng = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.914,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n imagePreviewHeight: 140,\r\n simplifiedType: 'Image191x100',\r\n className: 'boost-191X1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [268, 140],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Prong 1 / Prong 2 / Feed'),\r\n stringKey: _TL_('Prong 1 / Prong 2 / Feed'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'boost-191X1',\r\n showBusinessName: true,\r\n showLongHeadline: true,\r\n multipleLineLongHeadline: true,\r\n hideLabel: true,\r\n showImage: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n borderRadius: 8,\r\n '& .responsive-ad-preview-content': {\r\n width: '268px !important',\r\n height: '270px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n width: '100%',\r\n height: 140,\r\n top: 0,\r\n },\r\n '& .long-headline': {\r\n position: 'absolute',\r\n width: 250,\r\n fontSize: 18,\r\n left: 20,\r\n top: 180,\r\n color: 'white',\r\n fontWeight: 600,\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 140,\r\n left: 20,\r\n color: 'white',\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default imageProng;\r\n\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst imageCoachMark = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n className: 'boost-coachmark',\r\n imagePreviewHeight: 160,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('CoachMark'),\r\n stringKey: _TL_('CoachMark'),\r\n },\r\n previewSettings: {\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showBusinessName: false,\r\n multipleLineLongHeadline: true,\r\n multipleDescription: true,\r\n showAction: true,\r\n showImage: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '280px !important',\r\n height: '300px !important',\r\n },\r\n '& .short-headline': {\r\n left: 20,\r\n top: 180,\r\n position: 'absolute',\r\n fontWeight: 'bold',\r\n color: 'black',\r\n },\r\n '& .description': {\r\n left: 20,\r\n top: 210,\r\n fontSize: 20,\r\n position: 'absolute',\r\n color: 'black',\r\n },\r\n '& .action-button': {\r\n backgroundColor: '#0078d4',\r\n position: 'absolute',\r\n left: 20,\r\n top: 260,\r\n padding: 8,\r\n fontSize: 15,\r\n border: 'none',\r\n color: 'white',\r\n borderRadius: 5,\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default imageCoachMark;\r\n","\r\nimport { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst windowsStore = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1.69,\r\n type: 'WindowsStoreSpotLight',\r\n className: 'app-ad-windows',\r\n associationType: 'ImageSPOTLIGHT',\r\n stringKey: 'mageExperience_Image_Ratio_169x100',\r\n imagePreviewHeight: 182,\r\n imagePreviewWidth: 325,\r\n simplifiedType: 'ImageSPOTLIGHT',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [1920, 1080],\r\n maxSize: [3840, 2160],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('16:9 Microsoft Store spotlight ad'),\r\n stringKey: _TL_('16:9 Microsoft Store spotlight ad'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-169X100',\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showShortHeadline: true,\r\n hideLabel: true,\r\n showWinStore: true,\r\n showProng: false,\r\n showStart: false,\r\n showImage: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n height: 181,\r\n width: 325,\r\n top: 77,\r\n left: 70,\r\n borderRadius: 2.65,\r\n '& .cropped-image-view': {\r\n height: 181,\r\n width: 325,\r\n position: 'absolute',\r\n top: 0,\r\n borderRadius: 2.65,\r\n objectFit: 'cover',\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 155,\r\n left: 94,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 15,\r\n fontSize: 7,\r\n fontWeight: 300,\r\n width: 200,\r\n color: 'white',\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#FFFFFF',\r\n fontWeight: 350,\r\n fontSize: 8,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default windowsStore;\r\n\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst win11StartMenuLight = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Windows11StartLight',\r\n associationType: 'TransparentLogo',\r\n simplifiedType: 'TransparentLogo',\r\n imagePreviewHeight: 160,\r\n className: 'app-ad-start-menu',\r\n logoHeight: 27,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 300],\r\n maxSize: [1000, 1000],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Windows 11 Start Menu (Light mode)'),\r\n stringKey: _TL_('Windows 11 Start Menu (Light mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-start-menu',\r\n showLogo: false,\r\n showShortHeadline: true,\r\n showWin11StartLight: true,\r\n showWin11StartDark: false,\r\n showWin10StartLight: false,\r\n showWin10StartDark: false,\r\n showWinStore: false,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showImage: true,\r\n hideLabel: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n top: 62,\r\n left: 69,\r\n width: '35px !important',\r\n height: '35px !important',\r\n borderRadius: 2.65,\r\n '& .cropped-image-view': {\r\n height: '35px !important',\r\n width: '35px !important',\r\n position: 'absolute',\r\n top: 0,\r\n borderRadius: 2.65,\r\n\r\n '& img': {\r\n width: '35px !important',\r\n height: '35px !important',\r\n marginLeft: '0 !important',\r\n objectFit: 'cover',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 62,\r\n left: 113,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 18,\r\n fontSize: 13,\r\n fontWeight: 400,\r\n width: 225,\r\n color: '#0000009B',\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#000000E4',\r\n fontWeight: 600,\r\n fontSize: 13,\r\n width: 220,\r\n display: 'block',\r\n '-webkit-line-clamp': 1,\r\n '-webkit-box-orient': 'vertical',\r\n overflow: 'hidden',\r\n 'text-overflow': 'ellipsis',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default win11StartMenuLight;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst win11StartMenuDark = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Windows11StartDark',\r\n associationType: 'TransparentLogo',\r\n simplifiedType: 'TransparentLogo',\r\n imagePreviewHeight: 160,\r\n className: 'app-ad-start-menu',\r\n logoHeight: 27,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 300],\r\n maxSize: [1000, 1000],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Windows 11 Start Menu (Dark mode)'),\r\n stringKey: _TL_('Windows 11 Start Menu (Dark mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-start-menu',\r\n showLogo: false,\r\n showShortHeadline: true,\r\n showWin11StartLight: false,\r\n showWin11StartDark: true,\r\n showWin10StartLight: false,\r\n showWin10StartDark: false,\r\n showWinStore: false,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showImage: true,\r\n hideLabel: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n top: 77,\r\n left: 72,\r\n width: '35px !important',\r\n height: '35px !important',\r\n borderRadius: 2.65,\r\n '& .cropped-image-view': {\r\n height: '35px !important',\r\n width: '35px !important',\r\n position: 'absolute',\r\n top: 0,\r\n borderRadius: 2.65,\r\n\r\n '& img': {\r\n width: '35px !important',\r\n height: '35px !important',\r\n marginLeft: '0 !important',\r\n objectFit: 'cover',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 76,\r\n left: 117,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 18,\r\n fontSize: 13,\r\n fontWeight: 400,\r\n width: 225,\r\n color: '#BBBBBB',\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#FFFFFFE4',\r\n fontWeight: 600,\r\n fontSize: 13,\r\n width: 220,\r\n display: 'block',\r\n '-webkit-line-clamp': 1,\r\n '-webkit-box-orient': 'vertical',\r\n overflow: 'hidden',\r\n 'text-overflow': 'ellipsis',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default win11StartMenuDark;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst win10StartMenuLight = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Windows10StartLight',\r\n associationType: 'TransparentLogo',\r\n simplifiedType: 'TransparentLogo',\r\n imagePreviewHeight: 160,\r\n className: 'app-ad-start-menu',\r\n logoHeight: 27,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 300],\r\n maxSize: [1000, 1000],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Windows 10 Start Menu (Light mode)'),\r\n stringKey: _TL_('Windows 10 Start Menu (Light mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-start-menu',\r\n showLogo: false,\r\n showShortHeadline: true,\r\n showWin11StartLight: false,\r\n showWin11StartDark: false,\r\n showWin10StartLight: true,\r\n showWin10StartDark: false,\r\n showWinStore: false,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showImage: true,\r\n hideLabel: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n top: 132,\r\n left: 42,\r\n borderRadius: 2.65,\r\n '& .cropped-image-view': {\r\n position: 'absolute',\r\n top: 0,\r\n borderRadius: 2.65,\r\n\r\n '& img': {\r\n width: '28px !important',\r\n height: '28px !important',\r\n marginLeft: '0 !important',\r\n objectFit: 'cover',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 126,\r\n left: 77,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 18,\r\n fontSize: 13,\r\n fontWeight: 400,\r\n width: 225,\r\n color: '#0000009B',\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#000000E4',\r\n fontWeight: 600,\r\n fontSize: 13,\r\n width: 220,\r\n display: 'block',\r\n '-webkit-line-clamp': 1,\r\n '-webkit-box-orient': 'vertical',\r\n overflow: 'hidden',\r\n 'text-overflow': 'ellipsis',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default win10StartMenuLight;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst win10StartMenuDark = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'Windows10StartDark',\r\n associationType: 'TransparentLogo',\r\n simplifiedType: 'TransparentLogo',\r\n imagePreviewHeight: 160,\r\n className: 'app-ad-start-menu',\r\n logoHeight: 27,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 300],\r\n maxSize: [1000, 1000],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Windows 10 Start Menu (Dark mode)'),\r\n stringKey: _TL_('Windows 10 Start Menu (Dark mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-start-menu',\r\n showLogo: false,\r\n showShortHeadline: true,\r\n showWin11StartLight: false,\r\n showWin11StartDark: false,\r\n showWin10StartLight: false,\r\n showWin10StartDark: true,\r\n showWinStore: false,\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showImage: true,\r\n hideLabel: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n top: 131,\r\n left: 46,\r\n borderRadius: 2.65,\r\n '& .cropped-image-view': {\r\n position: 'absolute',\r\n top: 0,\r\n borderRadius: 2.65,\r\n\r\n '& img': {\r\n width: '28px !important',\r\n height: '28px !important',\r\n marginLeft: '0 !important',\r\n objectFit: 'cover',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 128,\r\n left: 81,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 18,\r\n fontSize: 13,\r\n fontWeight: 400,\r\n width: 225,\r\n color: '#BBBBBB',\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#FFFFFFE4',\r\n fontWeight: 600,\r\n fontSize: 13,\r\n width: 220,\r\n display: 'block',\r\n '-webkit-line-clamp': 1,\r\n '-webkit-box-orient': 'vertical',\r\n overflow: 'hidden',\r\n 'text-overflow': 'ellipsis',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default win10StartMenuDark;\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst winProngDark = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'WindowsProngDark',\r\n associationType: 'ImagePRONG',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n imagePreviewHeight: 150,\r\n simplifiedType: 'ImagePRONG',\r\n className: 'app-ad-1X1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 304],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('1:1 Windows Widgets Dashboard (Dark mode)'),\r\n stringKey: _TL_('1:1 Windows Widgets Dashboard (Dark mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-1X1',\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showProngDark: true,\r\n showStart: false,\r\n showWinStore: false,\r\n hideLabel: true,\r\n showImage: true,\r\n showLogo: true,\r\n showShortHeadline: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n borderRadius: 8,\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n // width: '100%',\r\n height: 150,\r\n width: 150,\r\n left: 77,\r\n top: 33,\r\n\r\n '& .cropped-image-view': {\r\n height: 152,\r\n width: 150,\r\n position: 'absolute',\r\n borderRadius: 8,\r\n border: '1px solid blue',\r\n },\r\n },\r\n '& .image-container:before': {\r\n background: 'linear-gradient(333.85deg, rgba(0, 0, 0, 0.9) 3.12%, rgba(4, 11, 37, 0.09) 73.66%)',\r\n content: '\\'\\'',\r\n width: '100%',\r\n height: '100%',\r\n display: 'block',\r\n position: 'absolute',\r\n zIndex: 1,\r\n borderRadius: 8,\r\n },\r\n '& .logo-container': {\r\n position: 'absolute',\r\n top: 39,\r\n left: 83,\r\n zIndex: 2,\r\n '& .cropped-image-view': {\r\n overflow: 'hidden',\r\n height: 'unset !important',\r\n width: 'unset !important',\r\n borderRadius: 8,\r\n '& img': {\r\n objectFit: 'cover',\r\n width: '70.5px !important',\r\n height: '70.5px !important',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 128,\r\n left: 83,\r\n zIndex: 2,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 10,\r\n fontSize: 7,\r\n fontWeight: 300,\r\n width: 200,\r\n color: 'white',\r\n textVverflow: 'ellipsis',\r\n '-webkit-box-orient': 'vertical',\r\n '-webkit-line-clamp': 1,\r\n maxWidth: 140,\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#FFFFFF',\r\n fontWeight: 350,\r\n fontSize: 8,\r\n textVverflow: 'ellipsis',\r\n '-webkit-box-orient': 'vertical',\r\n '-webkit-line-clamp': 1,\r\n maxWidth: 140,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default winProngDark;\r\n\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nconst winProngLight = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementPreview,\r\n aspectRatio: 1,\r\n type: 'WindowsProngLight',\r\n associationType: 'ImagePRONG',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n imagePreviewHeight: 150,\r\n simplifiedType: 'ImagePRONG',\r\n className: 'app-ad-1X1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [300, 304],\r\n maxSize: [0, 0],\r\n localizedText: {\r\n previewTypeStringKey: _TL_('1:1 Windows Widgets Dashboard (Light mode)'),\r\n stringKey: _TL_('1:1 Windows Widgets Dashboard (Light mode)'),\r\n },\r\n previewSettings: {\r\n previewContentClassName: 'app-ad-1X1',\r\n showBusinessName: true,\r\n showBusinessNameFirst: true,\r\n showProngLight: true,\r\n showStart: false,\r\n showWinStore: false,\r\n hideLabel: true,\r\n showImage: true,\r\n showLogo: true,\r\n showShortHeadline: true,\r\n },\r\n styleOverrides: {\r\n cardParent: {\r\n borderRadius: 8,\r\n '& .responsive-ad-preview-content': {\r\n width: '418px !important',\r\n height: '300px !important',\r\n background: '#262632 !important',\r\n },\r\n '& .image-container': {\r\n position: 'absolute',\r\n // width: '100%',\r\n height: 150,\r\n width: 150,\r\n left: 77,\r\n top: 33,\r\n\r\n '& .cropped-image-view': {\r\n height: 152,\r\n width: 150,\r\n position: 'absolute',\r\n borderRadius: 8,\r\n border: '1px solid blue',\r\n },\r\n },\r\n '& .image-container:before': {\r\n background: 'linear-gradient(333.85deg, rgba(0, 0, 0, 0.9) 3.12%, rgba(4, 11, 37, 0.09) 73.66%)',\r\n content: '\\'\\'',\r\n width: '100%',\r\n height: '100%',\r\n display: 'block',\r\n position: 'absolute',\r\n zIndex: 1,\r\n borderRadius: 8,\r\n },\r\n '& .logo-container': {\r\n position: 'absolute',\r\n top: 39,\r\n left: 83,\r\n zIndex: 2,\r\n '& .cropped-image-view': {\r\n overflow: 'hidden',\r\n height: 'unset !important',\r\n width: 'unset !important',\r\n borderRadius: 8,\r\n '& img': {\r\n objectFit: 'cover',\r\n width: '70.5px !important',\r\n height: '70.5px !important',\r\n },\r\n },\r\n },\r\n '& .text-container-apl': {\r\n position: 'absolute',\r\n top: 128,\r\n left: 83,\r\n zIndex: 2,\r\n '& .short-headline': {\r\n position: 'absolute',\r\n top: 10,\r\n fontSize: 7,\r\n fontWeight: 300,\r\n width: 200,\r\n color: 'white',\r\n textVverflow: 'ellipsis',\r\n '-webkit-box-orient': 'vertical',\r\n '-webkit-line-clamp': 1,\r\n maxWidth: 140,\r\n },\r\n '& .business-name-with-ads': {\r\n position: 'absolute',\r\n top: 0,\r\n marginTop: 0,\r\n color: '#FFFFFF',\r\n fontWeight: 350,\r\n fontSize: 8,\r\n textVverflow: 'ellipsis',\r\n '-webkit-box-orient': 'vertical',\r\n '-webkit-line-clamp': 1,\r\n maxWidth: 140,\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default winProngLight;\r\n\r\n","import windowsStore from './app-image-windows-store-spotlight';\r\nimport win11StartMenuLight from './app-image-win11-start-menu-light';\r\nimport win11StartMenuDark from './app-image-win11-start-menu-dark';\r\nimport win10StartMenuLight from './app-image-win10-start-menu-light';\r\nimport win10StartMenuDark from './app-image-win10-start-menu-dark';\r\nimport winProngDark from './app-image-win-prong-dark';\r\nimport winProngLight from './app-image-win-prong-light';\r\n\r\nexport const appImageAdStartTemplates = [\r\n win11StartMenuLight,\r\n win11StartMenuDark,\r\n win10StartMenuLight,\r\n win10StartMenuDark,\r\n winProngLight,\r\n winProngDark,\r\n windowsStore,\r\n];\r\n\r\nexport const appImageAdTemplates = [\r\n winProngLight,\r\n winProngDark,\r\n windowsStore,\r\n];\r\n","import { responsiveSearch } from './responsive-search';\r\nimport { responsiveSearchDesktop } from './responsive-search-desktop';\r\nimport { responsiveSearchMobile } from './responsive-search-mobile';\r\n\r\nexport const responsiveSearchAdTemplates = [\r\n responsiveSearch,\r\n responsiveSearchDesktop,\r\n responsiveSearchMobile,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nexport const responsiveSearch = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementResponsiveSearch,\r\n key: 'responsive_search',\r\n className: 'responsive_search',\r\n type: 'ResponsiveSearchAd',\r\n associationType: 'ResponsiveSearchAd',\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Responsive search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showAdDisclaimer: true,\r\n showPreviewTypeString: false,\r\n showImageExtension: true,\r\n imagePreviewAspectRatio: 1.78,\r\n imagePreviewHeight: 100,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: '530px',\r\n minHeight: '110px',\r\n padding: '8px 16px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n minHeight: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n minHeight: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n },\r\n};\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nimport { bingDesktopHeaderImage } from '../media/bing-desktop-header';\r\n\r\nexport const responsiveSearchDesktop = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementResponsiveSearchDesktop,\r\n key: 'responsive_search_desktop',\r\n className: 'responsive_search_desktop',\r\n type: 'ResponsiveSearchAdDesktop',\r\n associationType: 'ResponsiveSearchAdDesktop',\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Responsive search ad'),\r\n stringKey: _TL_(''),\r\n headerImageAlt: _TL_('Header Image'),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showAdDisclaimer: true,\r\n showHeaderImage: true,\r\n headerImage: bingDesktopHeaderImage,\r\n showPreviewTypeString: false,\r\n showImageExtension: true,\r\n imagePreviewAspectRatio: 1.78,\r\n imagePreviewHeight: 100,\r\n },\r\n styleOverrides: {\r\n previewContent: {\r\n border: 'none',\r\n boxShadow: 'none',\r\n width: '530px',\r\n minHeight: '110px',\r\n padding: '8px 16px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n minHeight: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n minHeight: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n headerImage: {\r\n height: 100,\r\n },\r\n },\r\n};\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nexport const responsiveSearchMobile = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementResponsiveSearchMobile,\r\n key: 'responsive_search_mobile',\r\n className: 'responsive_search_mobile',\r\n type: 'ResponsiveSearchAdMobile',\r\n associationType: 'ResponsiveSearchAdMobile',\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Responsive search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showUrl: true,\r\n showAdsLabelInlineWithDescription: true,\r\n showAdDisclaimer: true,\r\n showPreviewTypeString: false,\r\n showImageExtension: true,\r\n imagePreviewAspectRatio: 1.78,\r\n imagePreviewHeight: 100,\r\n },\r\n styleOverrides: {\r\n placementContainer: {\r\n border: '5px solid #605e5c',\r\n position: 'relative',\r\n borderBottom: 'none',\r\n borderRadius: '40px 40px 0 0',\r\n width: '562px',\r\n },\r\n previewContent: {\r\n border: '0.5px solid #ddd',\r\n width: '472px',\r\n minHeight: '110px',\r\n padding: '8px 16px',\r\n },\r\n adsLabel: {\r\n border: '1px solid #ddd',\r\n padding: '0 2px',\r\n fontSize: 11,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: 6,\r\n margin: '0 4px 0 0',\r\n display: 'inline',\r\n color: '#767676',\r\n opacity: '100%',\r\n position: 'static',\r\n maxHeight: 16,\r\n },\r\n cardParent: {\r\n margin: '45px 15px 0 15px',\r\n borderBottom: 'none',\r\n borderRadius: 0,\r\n paddingBottom: 1,\r\n '&:before': {\r\n top: 20,\r\n left: '50%',\r\n border: '5px solid #605e5c',\r\n content: '\"\"',\r\n position: 'absolute',\r\n borderRadius: 5,\r\n },\r\n },\r\n textContainer: {\r\n margin: '4px 8px 0px 8px',\r\n },\r\n longHeadline: {\r\n fontWeight: '400',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n minHeight: '28px',\r\n overflow: 'hidden',\r\n },\r\n finalUrl: {\r\n overflow: 'hidden',\r\n color: '#0b6a0b',\r\n fontSize: '14px',\r\n minHeight: '20px',\r\n },\r\n description: {\r\n color: '#333',\r\n fontSize: '13px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n },\r\n descriptionParent: {\r\n display: 'flex',\r\n },\r\n },\r\n};\r\n","import { dynamicSearch } from './dynamic-search';\r\n\r\nexport const dynamicSearchAdTemplates = [\r\n dynamicSearch,\r\n];\r\n","import { AdPlacementsComponentTypes } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nexport const dynamicSearch = {\r\n componentType: AdPlacementsComponentTypes.AdPlacementDynamicSearch,\r\n key: 'dynamic_search',\r\n className: 'dynamic_search',\r\n type: 'DynamicSearchAd',\r\n associationType: 'DynamicSearchAd',\r\n localizedText: {\r\n previewTypeStringKey: _TL_('Dynamic search ad'),\r\n stringKey: _TL_(''),\r\n },\r\n previewSettings: {},\r\n styleOverrides: {},\r\n};\r\n","import { AdPlacementsGroupType } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nimport { imageExtensionTemplates } from './image-extension/index';\r\nimport { msanImageAdTemplates } from './msan-image-ad';\r\nimport { perfMaxTemplates } from './perf-max-ad';\r\nimport { searchImageAdTemplates } from './search-image-ad';\r\nimport { streamlinedSignupTemplates } from './streamlined-signup';\r\nimport { adLibraryTemplates } from './ad-library';\r\nimport { msanBoostImageAdTemplates } from './msan-boost-ad';\r\nimport { appImageAdTemplates, appImageAdStartTemplates } from './app-ad';\r\nimport { responsiveSearchAdTemplates } from './responsive-search-ad';\r\nimport { dynamicSearchAdTemplates } from './dynamic-search-ad';\r\n\r\nexport const GroupTypeTemplatesMapping = {\r\n [AdPlacementsGroupType.imageExtension]: imageExtensionTemplates,\r\n [AdPlacementsGroupType.msanImageAd]: msanImageAdTemplates,\r\n [AdPlacementsGroupType.perfMax]: perfMaxTemplates,\r\n [AdPlacementsGroupType.searchImageAd]: searchImageAdTemplates,\r\n [AdPlacementsGroupType.streamlinedSignup]: streamlinedSignupTemplates,\r\n [AdPlacementsGroupType.adLibrary]: adLibraryTemplates,\r\n [AdPlacementsGroupType.msanBoostImageAd]: msanBoostImageAdTemplates,\r\n [AdPlacementsGroupType.appAd]: appImageAdTemplates,\r\n [AdPlacementsGroupType.appAdStart]: appImageAdStartTemplates,\r\n [AdPlacementsGroupType.responsiveSearchAd]: responsiveSearchAdTemplates,\r\n [AdPlacementsGroupType.dynamicSearchAd]: dynamicSearchAdTemplates,\r\n};\r\n","import React from 'react';\r\nimport { map, each } from 'underscore';\r\n\r\nimport { AdPlacementsGroupType } from '@bingads-webui-campaign-react/ad-placement-consts';\r\n\r\nimport { GroupTypeTemplatesMapping } from '..';\r\n\r\nexport const staticTemplateProperties = [\r\n 'aspectRatio',\r\n 'type',\r\n 'associationType',\r\n 'isRequired',\r\n 'minimumRequirements',\r\n 'minSize',\r\n 'maxSize',\r\n];\r\n\r\nconst getAllAssociationTypesForAdType = (adType) => {\r\n const templates = GroupTypeTemplatesMapping[adType];\r\n\r\n return map(templates, ({ associationType }) => associationType);\r\n};\r\n\r\nconst getImageTypeForTemplate = template => template.associationType;\r\n\r\nconst getTemplateTypeForTemplate = template => template.type;\r\n\r\nconst doesTemplateShowImage = template => template.previewSettings.showImage;\r\n\r\nconst doesTemplateHideHeaderButtons = template => template.hideHeaderButtons;\r\n\r\nconst getCarouselTitleForTemplate = (template, groupType, i18n) => {\r\n const { localizedText, previewSettings } = template;\r\n let title;\r\n\r\n const aspectRatio = i18n.getString(localizedText.stringKey);\r\n const titleTemplate = i18n.getString(_TL_('Ad preview ({{aspectRatio}} aspect ratio)'), { aspectRatio });\r\n\r\n switch (groupType) {\r\n case AdPlacementsGroupType.imageExtension:\r\n case AdPlacementsGroupType.searchImageAd:\r\n case AdPlacementsGroupType.streamlinedSignup:\r\n if (previewSettings.showImage) {\r\n title = (\r\n {titleTemplate}\r\n );\r\n } else {\r\n title = null;\r\n }\r\n break;\r\n case AdPlacementsGroupType.msanImageAd:\r\n if (aspectRatio) {\r\n title = (\r\n {titleTemplate}\r\n );\r\n } else {\r\n title = (\r\n {i18n.getString(localizedText.previewTypeStringKey)}\r\n );\r\n }\r\n break;\r\n case AdPlacementsGroupType.perfMax:\r\n title = (\r\n \r\n {i18n.getString(localizedText.stringKey)}\r\n \r\n {i18n.getString(localizedText.previewTypeStringKey)}\r\n \r\n );\r\n break;\r\n case AdPlacementsGroupType.appAd:\r\n case AdPlacementsGroupType.appAdStart:\r\n title = (\r\n {i18n.getString(localizedText.previewTypeStringKey)}\r\n );\r\n break;\r\n case AdPlacementsGroupType.responsiveSearchAd:\r\n case AdPlacementsGroupType.dynamicSearchAd:\r\n title = null;\r\n break;\r\n default:\r\n title = i18n.getString(_TL_('Ad preview'));\r\n break;\r\n }\r\n\r\n return title;\r\n};\r\nconst getMinSizeForTemplate = ({ minSize = [] } = {}) => ({\r\n minWidth: minSize[0],\r\n minHeight: minSize[1],\r\n});\r\nconst validateImageSizeForTemplate = (template, image) => {\r\n const { minWidth = 0, minHeight = 0 } = getMinSizeForTemplate(template);\r\n\r\n if (image) {\r\n const widthToCheck = (image.BaseImage && image.BaseImage.CropSettings && image.BaseImage.CropSettings.SourceWidth) || image.Width;\r\n const heightToCheck = (image.BaseImage && image.BaseImage.CropSettings && image.BaseImage.CropSettings.SourceHeight) || image.Height;\r\n\r\n return (widthToCheck >= minWidth) && (heightToCheck >= minHeight);\r\n }\r\n return false;\r\n};\r\n\r\nconst getCropSettingsInfoFromTemplates = (templates) => {\r\n const cropSettingsInfo = [];\r\n\r\n each(templates, (template) => {\r\n const {\r\n aspectRatio,\r\n type,\r\n associationType,\r\n minSize,\r\n } = template;\r\n cropSettingsInfo.push({\r\n aspectRatio,\r\n type,\r\n associationType,\r\n minSize,\r\n });\r\n });\r\n\r\n return cropSettingsInfo;\r\n};\r\n\r\nconst getIsRequiredFromTemplate = ({ isRequired }) => isRequired;\r\n\r\n\r\nexport const templateParserUtils = {\r\n getImageTypeForTemplate,\r\n getCarouselTitleForTemplate,\r\n getMinSizeForTemplate,\r\n validateImageSizeForTemplate,\r\n getCropSettingsInfoFromTemplates,\r\n getAllAssociationTypesForAdType,\r\n getTemplateTypeForTemplate,\r\n getIsRequiredFromTemplate,\r\n doesTemplateShowImage,\r\n doesTemplateHideHeaderButtons,\r\n};\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { isPlayPausePreviewImageEnabled } from '@bingads-webui-campaign-react/play-pause-buttons';\r\nimport {\r\n AdPreviewCarouselLayout,\r\n AdPreviewCarouselLayoutEx,\r\n} from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\n\r\nconst withAutoRotate = (CarouselLayout) => {\r\n const Wrapper = ({ enableAutoRotate, permissions, ...rest }) => {\r\n const autoRotate = useMemo(() => enableAutoRotate && isPlayPausePreviewImageEnabled(permissions), [enableAutoRotate, permissions]);\r\n\r\n return (\r\n \r\n );\r\n };\r\n return Wrapper;\r\n};\r\n\r\nexport const AdPreviewCarouselLayoutWrapper = withAutoRotate(AdPreviewCarouselLayout);\r\nexport const AdPreviewCarouselLayoutWrapperEx = withAutoRotate(AdPreviewCarouselLayoutEx);\r\n","import { withTheme } from 'react-jss';\r\n\r\nexport const withCMUITheme = withTheme;\r\n","import { UAPPlacementType as EPT } from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\n//\r\n// this is the type returned from MT APIs, will map it to a placement type\r\nexport const UAPMediaPlacementType = {\r\n MultiMediaAd400X100: 'MultiMediaAd400X100',\r\n MultiMediaAd191X100: 'MultiMediaAd191X100',\r\n MultiMediaAd100X100: 'MultiMediaAd100X100',\r\n MultiMediaAd50X100: 'MultiMediaAd50X100',\r\n MSAN191X100: 'MSAN191X100',\r\n MSAN178X100: 'MSAN178X100',\r\n MSAN172X100: 'MSAN172X100',\r\n MSAN169X100: 'MSAN169X100',\r\n MSAN155X100: 'MSAN155X100',\r\n MSAN150X100: 'MSAN150X100',\r\n MSAN133X100: 'MSAN133X100',\r\n MSAN100X100: 'MSAN100X100',\r\n MSAN93X100: 'MSAN93X100',\r\n MSAN201X100: 'MSAN201X100',\r\n MSAN200X100: 'MSAN200X100',\r\n MSAN153X100: 'MSAN153X100',\r\n MSAN124X100: 'MSAN124X100',\r\n MSAN120X100: 'MSAN120X100',\r\n ImageExtension191X100: 'ImageExtension191X100',\r\n ImageExtension178X100: 'ImageExtension178X100',\r\n ImageExtension172X100: 'ImageExtension172X100',\r\n ImageExtension169X100: 'ImageExtension169X100',\r\n ImageExtension155X100: 'ImageExtension155X100',\r\n ImageExtension150X100: 'ImageExtension150X100',\r\n ImageExtension133X100: 'ImageExtension133X100',\r\n ImageExtension100X100: 'ImageExtension100X100',\r\n ImageExtension93X100: 'ImageExtension93X100',\r\n AssetGroup191X100: 'AssetGroup191X100',\r\n AssetGroup100X100: 'AssetGroup100X100',\r\n AssetGroup150X100: 'AssetGroup150X100',\r\n AssetGroup133X100: 'AssetGroup133X100',\r\n AssetGroup178X100: 'AssetGroup178X100',\r\n AssetGroup100X200: 'AssetGroup100X200',\r\n AssetGroup400X100: 'AssetGroup400X100',\r\n};\r\n\r\n// todo: not all values are mapped\r\n// each multi-media placement type maps to a list of placement types\r\nexport const MediaPlacementTypeToPlacementTypeMap = {\r\n [UAPMediaPlacementType.MultiMediaAd400X100]: [EPT.MMA_WideImage_4x1],\r\n [UAPMediaPlacementType.MultiMediaAd191X100]: [EPT.MMA_LandscapeImage_191x100],\r\n [UAPMediaPlacementType.MultiMediaAd100X100]: [EPT.MMA_SquareImage_1x1],\r\n [UAPMediaPlacementType.MultiMediaAd50X100]: [EPT.MMA_VerticalImage_1x2],\r\n\r\n [UAPMediaPlacementType.MSAN191X100]: [EPT.Audience_Network_WideImage_191x100, EPT.MsanV2_MSAN_River_191x100],\r\n [UAPMediaPlacementType.MSAN178X100]: [EPT.Microsoft_Edge_Single_Carousel_178x100],\r\n [UAPMediaPlacementType.MSAN172X100]: undefined,\r\n [UAPMediaPlacementType.MSAN169X100]: [EPT.MsanV2_MSN_Carousel_169x100, EPT.PMax_MMAV2_MSN_Single_Carousel_169x100],\r\n [UAPMediaPlacementType.MSAN155X100]: undefined,\r\n [UAPMediaPlacementType.MSAN150X100]: [EPT.MSN_InArticle_Ad_150x100],\r\n [UAPMediaPlacementType.MSAN133X100]: [EPT.MSN_Small_Headline_133x100],\r\n [UAPMediaPlacementType.MSAN100X100]: [EPT.Audience_Network_SquareImage_1x1, EPT.MsanV2_Microsoft_Edge_Mobile_1x1],\r\n [UAPMediaPlacementType.MSAN93X100]: undefined,\r\n [UAPMediaPlacementType.MSAN201X100]: [EPT.MsanV2_Microsoft_Edge_Carouse_l201x100, EPT.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100],\r\n [UAPMediaPlacementType.MSAN200X100]: [EPT.MsanV2_MSAN_Banner_2x1],\r\n [UAPMediaPlacementType.MSAN153X100]: [EPT.MsanV2_MSN_Partner_Stripe_153x100, EPT.PMax_MMAV2_MSN_Partner_Stripe_153x100],\r\n [UAPMediaPlacementType.MSAN124X100]: [EPT.MsanV2_MSN_Restoday_124x100, EPT.PMax_MMAV2_MSN_Restoday_124x100],\r\n [UAPMediaPlacementType.MSAN120X100]: [EPT.MsanV2_MSAN_Rectangle_120x100],\r\n\r\n [UAPMediaPlacementType.ImageExtension191X100]: [EPT.ImgExt_Audience_Network_WideImage_191x100],\r\n [UAPMediaPlacementType.ImageExtension178X100]: [\r\n EPT.ImgExt_Microsoft_Edge_Single_Carousel_178x100,\r\n EPT.ImgExt_Bing_Desktop_SingleImage_Extension_178x100,\r\n ],\r\n [UAPMediaPlacementType.ImageExtension172X100]: [EPT.ImgExt_Microsoft_Edge_Medium_Headline_172x100],\r\n [UAPMediaPlacementType.ImageExtension169X100]: [EPT.ImgExt_MSN_Single_Carousel_169x100],\r\n [UAPMediaPlacementType.ImageExtension155X100]: [EPT.ImgExt_MSN_Medium_Headline_155x100],\r\n [UAPMediaPlacementType.ImageExtension150X100]: [EPT.ImgExt_MSN_InArticle_Ad_150x100],\r\n [UAPMediaPlacementType.ImageExtension133X100]: [\r\n EPT.ImgExt_MSN_Small_Headline_133x100,\r\n EPT.ImgExt_Bing_Desktop_MultiImage_Extension_133x100,\r\n EPT.ImgExt_Bing_Mobile_MultiImage_Extension_133x100,\r\n ],\r\n [UAPMediaPlacementType.ImageExtension100X100]: [EPT.ImgExt_Audience_Network_SquareImage_1x1],\r\n [UAPMediaPlacementType.ImageExtension93X100]: [EPT.ImgExt_MSN_Double_Carousel_93x100],\r\n\r\n [UAPMediaPlacementType.AssetGroup191X100]: [EPT.PMax_Audience_Network_WideImage_191x100, EPT.PMax_MMA_LandscapeImage_191x100],\r\n [UAPMediaPlacementType.AssetGroup100X100]: [EPT.PMax_Audience_Network_SquareImage_1x1],\r\n [UAPMediaPlacementType.AssetGroup150X100]: [EPT.PMax_MSN_InArticle_Ad_150x100],\r\n [UAPMediaPlacementType.AssetGroup133X100]: [EPT.PMax_MSN_Small_Headline_133x100],\r\n [UAPMediaPlacementType.AssetGroup178X100]: [EPT.PMax_Microsoft_Edge_Single_Carousel_178x100],\r\n [UAPMediaPlacementType.AssetGroup100X200]: [EPT.PMax_MMA_VerticalImage_1x2],\r\n [UAPMediaPlacementType.AssetGroup400X100]: [EPT.PMax_MMA_WideImage_4x1],\r\n};\r\n\r\n// multiple placement types may map to the same media placement type\r\nexport const PlacementType2MediaPlacementTypeMap = {\r\n // MMA\r\n [EPT.MMA_WideImage_4x1]: UAPMediaPlacementType.MultiMediaAd400X100,\r\n [EPT.MMA_LandscapeImage_191x100]: UAPMediaPlacementType.MultiMediaAd191X100,\r\n [EPT.MMA_SquareImage_1x1]: UAPMediaPlacementType.MultiMediaAd100X100,\r\n [EPT.MMA_VerticalImage_1x2]: UAPMediaPlacementType.MultiMediaAd50X100,\r\n\r\n // MSAN\r\n [EPT.Audience_Network_WideImage_191x100]: UAPMediaPlacementType.MSAN191X100,\r\n [EPT.Microsoft_Edge_Single_Carousel_178x100]: UAPMediaPlacementType.MSAN178X100,\r\n [EPT.MSN_InArticle_Ad_150x100]: UAPMediaPlacementType.MSAN150X100,\r\n [EPT.MSN_Small_Headline_133x100]: UAPMediaPlacementType.MSAN133X100,\r\n [EPT.Audience_Network_SquareImage_1x1]: UAPMediaPlacementType.MSAN100X100,\r\n\r\n // MSAN V2\r\n [EPT.MsanV2_Microsoft_Edge_Carouse_l201x100]: UAPMediaPlacementType.MSAN201X100,\r\n [EPT.MsanV2_MSAN_Banner_2x1]: UAPMediaPlacementType.MSAN200X100,\r\n [EPT.MsanV2_MSAN_River_191x100]: UAPMediaPlacementType.MSAN191X100,\r\n [EPT.MsanV2_MSN_Carousel_169x100]: UAPMediaPlacementType.MSAN169X100,\r\n [EPT.MsanV2_MSN_Partner_Stripe_153x100]: UAPMediaPlacementType.MSAN153X100,\r\n [EPT.MsanV2_MSN_Restoday_124x100]: UAPMediaPlacementType.MSAN124X100,\r\n [EPT.MsanV2_MSAN_Rectangle_120x100]: UAPMediaPlacementType.MSAN120X100,\r\n [EPT.MsanV2_Microsoft_Edge_Mobile_1x1]: UAPMediaPlacementType.MSAN100X100,\r\n\r\n // pmax\r\n [EPT.PMax_Audience_Network_WideImage_191x100]: UAPMediaPlacementType.AssetGroup191X100,\r\n [EPT.PMax_Audience_Network_SquareImage_1x1]: UAPMediaPlacementType.AssetGroup100X100,\r\n [EPT.PMax_Microsoft_Edge_Single_Carousel_178x100]: UAPMediaPlacementType.AssetGroup178X100,\r\n [EPT.PMax_MSN_InArticle_Ad_150x100]: UAPMediaPlacementType.AssetGroup150X100,\r\n [EPT.PMax_MSN_Small_Headline_133x100]: UAPMediaPlacementType.AssetGroup133X100,\r\n [EPT.PMax_MMA_WideImage_4x1]: UAPMediaPlacementType.AssetGroup400X100,\r\n [EPT.PMax_MMA_LandscapeImage_191x100]: UAPMediaPlacementType.AssetGroup191X100,\r\n [EPT.PMax_MMA_VerticalImage_1x2]: UAPMediaPlacementType.AssetGroup100X200,\r\n // pmax v2\r\n [EPT.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100]: UAPMediaPlacementType.MSAN201X100,\r\n [EPT.PMax_MMAV2_MSN_Single_Carousel_169x100]: UAPMediaPlacementType.MSAN169X100,\r\n [EPT.PMax_MMAV2_MSN_Restoday_124x100]: UAPMediaPlacementType.MSAN124X100,\r\n [EPT.PMax_MMAV2_MSN_Partner_Stripe_153x100]: UAPMediaPlacementType.MSAN153X100,\r\n\r\n //\r\n // Image Extension\r\n [EPT.ImgExt_Audience_Network_WideImage_191x100]: UAPMediaPlacementType.ImageExtension191X100,\r\n\r\n // ImageExtension178X100\r\n [EPT.ImgExt_Microsoft_Edge_Single_Carousel_178x100]: UAPMediaPlacementType.ImageExtension178X100,\r\n [EPT.ImgExt_Bing_Desktop_SingleImage_Extension_178x100]: UAPMediaPlacementType.ImageExtension178X100,\r\n\r\n [EPT.ImgExt_Microsoft_Edge_Medium_Headline_172x100]: UAPMediaPlacementType.ImageExtension172X100,\r\n [EPT.ImgExt_MSN_Single_Carousel_169x100]: UAPMediaPlacementType.ImageExtension169X100,\r\n [EPT.ImgExt_MSN_Medium_Headline_155x100]: UAPMediaPlacementType.ImageExtension155X100,\r\n [EPT.ImgExt_MSN_InArticle_Ad_150x100]: UAPMediaPlacementType.ImageExtension150X100,\r\n\r\n // ImageExtension133X100\r\n [EPT.ImgExt_MSN_Small_Headline_133x100]: UAPMediaPlacementType.ImageExtension133X100,\r\n [EPT.ImgExt_Bing_Desktop_MultiImage_Extension_133x100]: UAPMediaPlacementType.ImageExtension133X100,\r\n [EPT.ImgExt_Bing_Mobile_MultiImage_Extension_133x100]: UAPMediaPlacementType.ImageExtension133X100,\r\n\r\n [EPT.ImgExt_Audience_Network_SquareImage_1x1]: UAPMediaPlacementType.ImageExtension100X100,\r\n [EPT.ImgExt_MSN_Double_Carousel_93x100]: UAPMediaPlacementType.ImageExtension93X100,\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useMemo } from 'react';\r\n\r\nimport {\r\n useAdPreviewModel as useAdPreviewModelCore,\r\n} from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\n\r\nimport {\r\n MediaPlacementTypeToPlacementTypeMap,\r\n PlacementType2MediaPlacementTypeMap,\r\n} from './media-placement-type-enum';\r\n\r\n\r\n// // this is the same shape as MT response\r\n// type MTPlacementCroppingParam = {\r\n// MediaPlacementType: EMediaPlacementType,\r\n// CropSetting: TCropRect,\r\n// }\r\n\r\n// // this is the same shape as MT response\r\n// type MTImageParam = {\r\n// id: number | undefined | null,\r\n// url: string,\r\n// width: number,\r\n// height: number,\r\n// originalUrl: string,\r\n// originalWidth: number,\r\n// originalHeight: number,\r\n// cropSettingOnOriginal: TCropRect | undefined | null,\r\n// placementSettings: Array | undefined | null,\r\n// }\r\n\r\n// const transformCroppingParam = (param: MTPlacementCroppingParam): Array => {\r\nconst transformCroppingParam = (param) => {\r\n const { MediaPlacementType, CropSetting } = param || {};\r\n const placementTypes = MediaPlacementTypeToPlacementTypeMap[MediaPlacementType];\r\n if (!_.isEmpty(placementTypes)) {\r\n return _.map(placementTypes, placementType => ({ placementType, cropping: CropSetting }));\r\n }\r\n return [];\r\n};\r\n\r\n// const transformImageParam = (image: MTImageParam): UAPPreviewImageParam => {\r\nconst transformImageParam = (image) => {\r\n const {\r\n id, url, width, height, originalUrl, originalWidth, originalHeight, cropSettingOnOriginal, placementSettings, roiInfo, expandedMeta,\r\n } = image || {};\r\n const imageParam = {\r\n id,\r\n url,\r\n width,\r\n height,\r\n originalUrl,\r\n originalWidth,\r\n originalHeight,\r\n imageCropping: cropSettingOnOriginal,\r\n placementsCropping: _.flatten(_.map(placementSettings, transformCroppingParam)),\r\n roiInfo,\r\n expandedMeta,\r\n };\r\n return imageParam;\r\n};\r\n\r\nconst transformImage = (image) => {\r\n if (!image || _.isString(image)) {\r\n return image;\r\n }\r\n return transformImageParam(image);\r\n};\r\n\r\n\r\n// type TPlacementConfig = Array<{\r\n// image: string | MTImageParam,\r\n// placementSets: Array<{\r\n// placementSetName: string,\r\n// placementTypes: Array,\r\n// // (params: { imageMeta: TImageMeta, imageCropping: TCropRect, placementMetaList: Array }) => Array;\r\n// getDefaultPlacementsCropping?: Function,\r\n// }>,\r\n// }>;\r\n\r\n// a simple wrapper to adapt the MT type to the core model\r\n// export const useAdPreviewModel = (placementConfig: TPlacementConfig, onError) => {\r\nexport const useAdPreviewModel = (placementConfig, onError) => {\r\n //\r\n const transformedConfig = useMemo(() => _.map(placementConfig, ({ image, placementSets }) => ({\r\n image: transformImage(image),\r\n placementSets,\r\n })), [placementConfig]);\r\n\r\n const {\r\n setPlacementConfig: setPlacementConfigCore,\r\n changedCropSettings: changedCropSettingsCore,\r\n ...rest\r\n } = useAdPreviewModelCore(transformedConfig, onError);\r\n\r\n // const setPlacementConfig = useCallback((config: TPlacementConfig) => {\r\n const setPlacementConfig = useCallback((config) => {\r\n const newConfig = _.map(config, ({ image, placementSets }) => ({\r\n image: transformImage(image),\r\n placementSets,\r\n }));\r\n return setPlacementConfigCore(newConfig);\r\n }, [setPlacementConfigCore]);\r\n\r\n const changedCropSettings = useMemo(() => {\r\n const ret = _.map(changedCropSettingsCore, ({ image, placements }) => {\r\n const imageCropping = image.hasCroppingChanged ? image.imageCropping : null;\r\n const placementSettings = _.chain(placements)\r\n .map(({ placementMeta, hasCroppingChanged, placementCropping }) => {\r\n if (hasCroppingChanged) {\r\n return { MediaPlacementType: PlacementType2MediaPlacementTypeMap[placementMeta.placementType], CropSetting: placementCropping };\r\n }\r\n return null;\r\n })\r\n .compact()\r\n .reduce((acc, placementCropping) => {\r\n // remove duplicated placement settings\r\n const { MediaPlacementType } = placementCropping;\r\n if (!acc[MediaPlacementType]) {\r\n acc[MediaPlacementType] = placementCropping;\r\n }\r\n return acc;\r\n }, {})\r\n .value(); // get chain result\r\n\r\n return {\r\n cropSettings: imageCropping,\r\n placementSettings: _.compact(_.values(placementSettings)) || [],\r\n };\r\n });\r\n return ret;\r\n }, [changedCropSettingsCore]);\r\n\r\n return { setPlacementConfig, changedCropSettings, ...rest };\r\n};\r\n","// derived from private\\component-react\\packages\\image-experience-utils\\src\\get-smart-cropped-image.js\r\n// and remvoed unrelated code/logic, only keep smart cropping handling here\r\n\r\nimport _ from 'underscore';\r\nimport { getCentralCroppedPlacements } from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\nimport { validateSmartCropSettings } from '@bingads-webui-campaign/image-experience-utils';\r\n\r\nexport const getSmartCropSettingsFactory = (mediaRepository, smartCropActivity) => {\r\n //\r\n // todo: defaultOption & isIncluded?\r\n const getSmartCropSettings = ({ imageMeta, imageCropping, placementMetaList }) => {\r\n // if the image is cropped itself, use central cropping for placements intead of smart cropping\r\n if (imageCropping) {\r\n return getCentralCroppedPlacements({ imageMeta, imageCropping, placementMetaList });\r\n }\r\n\r\n const ratioAndMinSizeList = _.map(placementMetaList, (placementMeta) => {\r\n const { aspectRatio, minSize } = placementMeta;\r\n return { aspectRatio, minSize };\r\n });\r\n\r\n return mediaRepository.generateSmartCrop({\r\n imageUrl: imageMeta.originalUrl,\r\n placementSettings: ratioAndMinSizeList, // [{aspectRatio, minSize}]\r\n }).then((assets) => {\r\n const ret = _.map(placementMetaList, (placementMeta) => {\r\n const asset = _.find(assets, ({ AspectRatio }) => AspectRatio === placementMeta.aspectRatioStr);\r\n if (asset) {\r\n const smartCropping = {\r\n SourceWidth: asset.Width,\r\n SourceHeight: asset.Height,\r\n SourceX: asset.X,\r\n SourceY: asset.Y,\r\n };\r\n const isValidSmartCropping = validateSmartCropSettings({\r\n originalImage: { width: imageMeta.originalWidth, height: imageMeta.originalHeight, Src: imageMeta.originalUrl },\r\n cropSettings: smartCropping,\r\n minWidth: placementMeta.minSize[0],\r\n minHeight: placementMeta.minSize[1],\r\n aspectRatio: placementMeta.aspectRatio,\r\n smartCropActivity,\r\n });\r\n return { placementMeta, smartCropping: isValidSmartCropping ? smartCropping : null };\r\n }\r\n return { placementMeta, smartCropping: null };\r\n });\r\n return ret; // [{placementMeta, smartCropping, isValidCropping}]\r\n }).catch(() => {\r\n // swallow the error\r\n }).then((smartPlacementAndCroppingList) => {\r\n // fallback to central cropped placements if no smart cropping available for some placements\r\n const placementsWithoutSmartCropping = _.filter(smartPlacementAndCroppingList, ({ smartCropping }) => !smartCropping);\r\n let croppingList = null;\r\n if (!_.isEmpty(placementsWithoutSmartCropping)) {\r\n const centralCroppingList = getCentralCroppedPlacements({ imageMeta, imageCropping, placementMetaList });\r\n // merge central cropping with smart cropping, smart cropping has high priority\r\n croppingList = _.map(smartPlacementAndCroppingList, ({ smartCropping }, idx) => (smartCropping ? { placementCropping: smartCropping } : centralCroppingList[idx]));\r\n } else {\r\n croppingList = _.map(smartPlacementAndCroppingList, ({ smartCropping }) => ({ placementCropping: smartCropping }));\r\n }\r\n return croppingList;\r\n });\r\n };\r\n\r\n return getSmartCropSettings;\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useMemo, useContext } from 'react';\r\nimport {\r\n useAdPreviewModel as useAdPreviewModelCore,\r\n UAPLPlacementMetaList,\r\n UAPLPlacementMetaListV2,\r\n UAPPlacementType as EPlacementType,\r\n getExpandedImageInfo,\r\n} from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\nimport { UAPCroppingType } from '@bingads-webui-campaign-react/unified-ad-preview-library-util';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\n\r\nexport const PlacementType2AssociationTypeMap = {\r\n [EPlacementType.MMA_WideImage_4x1]: 'ImageMedia4X1',\r\n [EPlacementType.MMA_LandscapeImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.MMA_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.MMA_VerticalImage_1x2]: 'ImageMedia1X2',\r\n\r\n // audience ad (mma in msan)\r\n [EPlacementType.Audience_Network_WideImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Audience_Network_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Microsoft_Edge_Single_Carousel_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.MSN_InArticle_Ad_150x100]: 'ImageMedia15X10',\r\n [EPlacementType.MSN_Small_Headline_133x100]: 'ImageMedia133X100',\r\n\r\n // audience ad (mma in msan) V2\r\n [EPlacementType.MsanV2_Microsoft_Edge_Carouse_l201x100]: 'ImageMedia201X100',\r\n [EPlacementType.MsanV2_Microsoft_Edge_Mobile_1x1]: 'SquareImageMedia',\r\n [EPlacementType.MsanV2_MSAN_Banner_2x1]: 'ImageMedia200X100',\r\n [EPlacementType.MsanV2_MSAN_River_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.MsanV2_MSAN_Rectangle_120x100]: 'ImageMedia120X100',\r\n [EPlacementType.MsanV2_MSN_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.MsanV2_MSN_Partner_Stripe_153x100]: 'ImageMedia153X100',\r\n [EPlacementType.MsanV2_MSN_Restoday_124x100]: 'ImageMedia124X100',\r\n\r\n // boost\r\n [EPlacementType.Boost_Hero_Image_Carousel_200x100]: 'ImageMedia200X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_122x100]: 'ImageMedia122X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_159x100]: 'ImageMedia159X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_180x100]: 'ImageMedia180X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_233x100]: 'ImageMedia233X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_320x100]: 'ImageMedia320X100',\r\n [EPlacementType.Boost_Hero_Image_Carousel_57x100]: 'ImageMedia57X100',\r\n [EPlacementType.Boost_Windows_Spotlight_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Boost_Discover_Card_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Boost_Prong1_Prong2_Feed_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Boost_Coachmark_175x100]: 'ImageMedia178X100',\r\n\r\n // image extension\r\n [EPlacementType.ImgExt_Audience_Network_WideImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.ImgExt_Audience_Network_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.ImgExt_Microsoft_Edge_Single_Carousel_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.ImgExt_Bing_Desktop_SingleImage_Extension_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.ImgExt_Microsoft_Edge_Medium_Headline_172x100]: 'ImageMedia172X100',\r\n [EPlacementType.ImgExt_MSN_Single_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.ImgExt_MSN_Medium_Headline_155x100]: 'ImageMedia155X100',\r\n [EPlacementType.ImgExt_MSN_InArticle_Ad_150x100]: 'ImageMedia15X10',\r\n [EPlacementType.ImgExt_MSN_Small_Headline_133x100]: 'ImageMedia133X100',\r\n [EPlacementType.ImgExt_Bing_Desktop_MultiImage_Extension_133x100]: 'ImageMedia133X100',\r\n [EPlacementType.ImgExt_Bing_Mobile_MultiImage_Extension_133x100]: 'ImageMedia133X100',\r\n [EPlacementType.ImgExt_MSN_Double_Carousel_93x100]: 'ImageMedia93X100',\r\n [EPlacementType.ImgExt_MMAV2_MSN_River_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.ImgExt_MMAV2_MSN_Single_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1]: 'SquareImageMedia',\r\n\r\n [EPlacementType.Responsive_MMA_WideImage_4x1]: 'ImageMedia4X1',\r\n [EPlacementType.Responsive_MMA_LandscapeImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_MMA_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Responsive_MMA_VerticalImage_1x2]: 'ImageMedia1X2',\r\n\r\n // audience ad (mma in msan)\r\n [EPlacementType.Responsive_Audience_Network_WideImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_Audience_Network_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Responsive_Microsoft_Edge_Single_Carousel_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.Responsive_MSN_InArticle_Ad_150x100]: 'ImageMedia15X10',\r\n [EPlacementType.Responsive_MSN_Small_Headline_133x100]: 'ImageMedia133X100',\r\n\r\n [EPlacementType.Responsive_Boost_Windows_Spotlight_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_Boost_Discover_Card_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Responsive_Boost_Prong1_Prong2_Feed_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_Boost_Coachmark_175x100]: 'ImageMedia178X100',\r\n\r\n // audience ad (mma in msan) V2\r\n [EPlacementType.Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100]: 'ImageMedia201X100',\r\n [EPlacementType.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Responsive_MsanV2_MSAN_Banner_2x1]: 'ImageMedia200X100',\r\n [EPlacementType.Responsive_MsanV2_MSAN_River_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_MsanV2_MSAN_Rectangle_120x100]: 'ImageMedia120X100',\r\n [EPlacementType.Responsive_MsanV2_MSN_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.Responsive_MsanV2_MSN_Partner_Stripe_153x100]: 'ImageMedia153X100',\r\n [EPlacementType.Responsive_MsanV2_MSN_Restoday_124x100]: 'ImageMedia124X100',\r\n\r\n // LinkedIn\r\n [EPlacementType.LinkedIn_Single_Image_Desktop_Landscape]: 'LandscapeImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Landscape]: 'LandscapeImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Medium_Rectangle_Landscape]: 'LandscapeImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Interstitial_Landscape]: 'LandscapeImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Native_Landscape]: 'LandscapeImageMedia',\r\n\r\n [EPlacementType.LinkedIn_Single_Image_Desktop_Square]: 'SquareImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Square]: 'SquareImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Medium_Rectangle_Square]: 'SquareImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Interstitial_Square]: 'SquareImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Native_Square]: 'SquareImageMedia',\r\n\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Vertical]: 'PortraitImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Medium_Rectangle_Vertical]: 'PortraitImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Mobile_Interstitial_Vertical]: 'PortraitImageMedia',\r\n [EPlacementType.LinkedIn_Single_Image_Native_Vertical]: 'PortraitImageMedia',\r\n\r\n // Pmax\r\n [EPlacementType.PMax_MMA_WideImage_4x1]: 'ImageMedia4X1',\r\n [EPlacementType.PMax_MMA_LandscapeImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.PMax_MMA_VerticalImage_1x2]: 'ImageMedia1X2',\r\n [EPlacementType.PMax_Audience_Network_WideImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.PMax_Audience_Network_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.PMax_Microsoft_Edge_Single_Carousel_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.PMax_MSN_InArticle_Ad_150x100]: 'ImageMedia15X10',\r\n [EPlacementType.PMax_MSN_Small_Headline_133x100]: 'ImageMedia133X100',\r\n // Pmax v2\r\n [EPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100]: 'ImageMedia201X100',\r\n [EPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.PMax_MMAV2_MSN_Restoday_124x100]: 'ImageMedia124X100',\r\n [EPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100]: 'ImageMedia153X100',\r\n [EPlacementType.PMax_MMAV2_MSN_River_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.PMax_MMAV2_Microsoft_Edge_Mobile_1x1]: 'SquareImageMedia',\r\n\r\n // Pmax responsive\r\n [EPlacementType.Responsive_PMax_MMA_WideImage_4x1]: 'ImageMedia4X1',\r\n [EPlacementType.Responsive_PMax_MMA_LandscapeImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_PMax_MMA_VerticalImage_1x2]: 'ImageMedia1X2',\r\n [EPlacementType.Responsive_PMax_Audience_Network_WideImage_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_PMax_Audience_Network_SquareImage_1x1]: 'SquareImageMedia',\r\n [EPlacementType.Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100]: 'ImageMedia178X100',\r\n [EPlacementType.Responsive_PMax_MSN_InArticle_Ad_150x100]: 'ImageMedia15X10',\r\n [EPlacementType.Responsive_PMax_MSN_Small_Headline_133x100]: 'ImageMedia133X100',\r\n\r\n // unified app preview\r\n [EPlacementType.Unified_App_Ads_Video_Horizontal]: 'Video16x9',\r\n [EPlacementType.Unified_App_Ads_Bing_Search]: 'ImageMedia133X100',\r\n [EPlacementType.Unified_App_Ads_Causal_Games_Dimensions]: 'SquareImageMedia',\r\n [EPlacementType.Unified_App_Ads_MSN_Display]: 'LandscapeImageMedia',\r\n\r\n // Pmax responsive v2\r\n [EPlacementType.Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100]: 'ImageMedia201X100',\r\n [EPlacementType.Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100]: 'ImageMedia169X100',\r\n [EPlacementType.Responsive_PMax_MMAV2_MSN_Restoday_124x100]: 'ImageMedia124X100',\r\n [EPlacementType.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100]: 'ImageMedia153X100',\r\n [EPlacementType.Responsive_PMax_MMAV2_MSN_River_191x100]: 'LandscapeImageMedia',\r\n [EPlacementType.Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1]: 'SquareImageMedia',\r\n};\r\n\r\nconst getExpandedImagePlacementInfo = (placement, hasSmartEffect) => {\r\n const {\r\n imageExpansionType, cropSettings, originalImageCropSettings,\r\n } = placement || {};\r\n const { CroppingType } = cropSettings || {};\r\n\r\n return getExpandedImageInfo({\r\n imageExpansionType,\r\n expandedImageUrl: placement.getExpandedImageUrl(),\r\n expandedImageWidth: placement.expandedImageWidth,\r\n expandedImageHeight: placement.expandedImageHeight,\r\n expandedImageCropSettings: placement.expandedImageCropSettings,\r\n originalImageCropSettings,\r\n extraCheck: () => hasSmartEffect || CroppingType === UAPCroppingType.ManualCrop,\r\n }) || {};\r\n};\r\n\r\nconst convertEffectSettings = (effectSettings) => {\r\n if (!effectSettings) {\r\n return null;\r\n }\r\n const { effectKey, effectOptions, effectSrc } = effectSettings || {};\r\n const { backgroundBlur, backgroundColor, designerEffect } = effectOptions || {};\r\n const imageSmartEffect = effectSrc ? {\r\n effectType: effectKey,\r\n effectValue: backgroundBlur || backgroundColor || designerEffect,\r\n effectSrc,\r\n } : null;\r\n return imageSmartEffect;\r\n};\r\n\r\n// for image extension feature, it supports to replace images for specific placements, which results\r\n// in different images in the 2nd dimension of imageExperienceImageList (placements)\r\n// to handle it, we need to split the 2nd dimension of imageExperienceImageList into multiple parts\r\n// by image src\r\nconst splitPlacementListBySrc = (imageExperienceImageList) => {\r\n // key is src, value is a list of placements with the same src\r\n let changed = false;\r\n const newImageList = [];\r\n _.forEach(imageExperienceImageList, (placementList) => {\r\n // for now, only split 2nd level, in case there may be images (1st dimension) with same URLs\r\n const placementListMap = _.groupBy(placementList, 'src');\r\n const srcList = _.keys(placementListMap);\r\n changed = changed || srcList.length > 1;\r\n srcList.forEach((src) => {\r\n newImageList.push(placementListMap[src]);\r\n });\r\n });\r\n return changed ? newImageList : imageExperienceImageList;\r\n};\r\n\r\n// imageExperienceImageList is a 2-dimensional array of type ImageExperienceImage,\r\n// the first dimension is the 'Image', and the second dimension is the 'Placement' (objects with type of ImageExperienceImage)\r\n// and the settings on image (crop/smart effetc) is presented by using 'baseImage', that is,\r\n// for each 'Placement' list, they should have same 'baseImage' (not the same object, but with the same cropping and smart effects)\r\nconst transformImageExperienceImageList = (placementSetsConfig, imageExperienceImageList, isImageFittingEnabled, isAdPreviewRefreshEnabled) => {\r\n // filter out logos\r\n let imageList = _.compact(_.map(imageExperienceImageList, (imgExpPlacementList) => {\r\n const placements = _.filter(imgExpPlacementList, ({ isLogo }) => !isLogo);\r\n return _.isEmpty(placements) ? null : placements;\r\n })) || [];\r\n\r\n imageList = splitPlacementListBySrc(imageList);\r\n\r\n const PlacementMetaList = isAdPreviewRefreshEnabled ? UAPLPlacementMetaListV2 : UAPLPlacementMetaList;\r\n\r\n const previewImageList = _.map(imageList, (imgExpPlacementList /* [ImageExperienceImage] */) => {\r\n // image level\r\n let imageMeta = null;\r\n let imageCropping = null;\r\n let imageSmartEffect = null;\r\n let hasImageCroppingChanged = false;\r\n\r\n const placementSets = _.map(placementSetsConfig, ({ placementSetName, placementTypes }) => {\r\n const placementList = _.map(placementTypes, (placementType) => {\r\n const placementMeta = PlacementMetaList[placementType] || {};\r\n\r\n // get association type from placement type\r\n const curAssociationType = PlacementType2AssociationTypeMap[placementType] || '';\r\n\r\n // get the ImageExperienceImage object representing the placement\r\n const placement = _.find(imgExpPlacementList, ({ associationType }) => associationType && curAssociationType && (associationType.toLowerCase() === curAssociationType.toLowerCase()));\r\n\r\n if (!placement) {\r\n return {\r\n placementMeta,\r\n placementCropping: null,\r\n placementSmartEffect: null,\r\n hasCroppingChanged: false,\r\n isPlacementIncluded: false,\r\n // mark this placment not initialized\r\n hasImageExperienceData: false,\r\n };\r\n }\r\n\r\n // the BaseImage represents image info (bulk editing on all placements)\r\n const baseImage = placement.BaseImage || {};\r\n\r\n if (!imageMeta) {\r\n imageMeta = {\r\n id: baseImage.IdString || baseImage.Id || placement.Id,\r\n url: placement.Src || placement.OriginalUrl || baseImage.Src || baseImage.OriginalUrl,\r\n width: baseImage.Width || baseImage.OriginalWidth || placement.Width || placement.OriginalWidth,\r\n height: baseImage.Height || baseImage.OriginalHeight || placement.Height || placement.OriginalHeight,\r\n originalUrl: baseImage.OriginalUrl || baseImage.Src || placement.OriginalUrl || placement.Src,\r\n originalWidth: baseImage.OriginalWidth || baseImage.Width || placement.OriginalWidth || placement.Width,\r\n originalHeight: baseImage.OriginalHeight || baseImage.Height || placement.OriginalHeight || placement.Height,\r\n };\r\n }\r\n\r\n // image cropping\r\n if (!imageCropping) {\r\n imageCropping = baseImage.CropSettings;\r\n }\r\n\r\n // image smart effect\r\n if (!imageSmartEffect) {\r\n imageSmartEffect = convertEffectSettings(baseImage.EffectSettings);\r\n }\r\n\r\n // image flag\r\n if (baseImage.isMaunalCropped) {\r\n hasImageCroppingChanged = hasImageCroppingChanged || baseImage.isMaunalCropped();\r\n }\r\n\r\n // only set if there is placement level smart effect\r\n let placementSmartEffect = null;\r\n if (placement.EffectSettings && (!baseImage.EffectSettings || placement.EffectSettings.effectSrc !== baseImage.EffectSettings.effectSrc)) {\r\n placementSmartEffect = convertEffectSettings(placement.EffectSettings);\r\n }\r\n\r\n const {\r\n expandedImageCropSettings,\r\n expandedImageUrl,\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n } = getExpandedImagePlacementInfo(placement, imageSmartEffect || placementSmartEffect);\r\n\r\n // For some scenarios, such as image annotation, we don't want to use imageFitting for the search preview, because DE doesn't support it for now.\r\n const applyImageFitting = !placementMeta.ignoreImageFitting && isImageFittingEnabled;\r\n\r\n // placement info\r\n return {\r\n placementMeta,\r\n placementCropping: placement.CropSettings || null,\r\n // !baseImage.EffectSettings means smart effect is set on placement level\r\n placementSmartEffect,\r\n hasCroppingChanged: (placement.isMaunalCropped && placement.isMaunalCropped()) || false,\r\n isPlacementIncluded: placement.isIncluded || false,\r\n // mark this placment initialized\r\n hasImageExperienceData: true,\r\n expandedImageUrl: applyImageFitting ? expandedImageUrl : undefined,\r\n expandedImageWidth: applyImageFitting ? expandedImageWidth : undefined,\r\n expandedImageHeight: applyImageFitting ? expandedImageHeight : undefined,\r\n expandedImageCropSettings: applyImageFitting ? expandedImageCropSettings : undefined,\r\n };\r\n });\r\n\r\n // placement set\r\n const placementSet = {\r\n name: placementSetName,\r\n placementList,\r\n };\r\n return placementSet;\r\n });\r\n\r\n const previewImage = {\r\n imageMeta,\r\n imageCropping,\r\n imageSmartEffect,\r\n hasCroppingChanged: hasImageCroppingChanged,\r\n };\r\n\r\n // get previewImage and placementSets\r\n return { previewImage, placementSets };\r\n });\r\n\r\n return previewImageList;\r\n};\r\n\r\n// this hook is a wrapper on useAdPreviewModelCore, to initialize hook state by using imageList\r\n// returned from ImageExperience component\r\n// the imageList is a 2-dimensional array of type ImageExperienceImage, the first dimension is the 'Image',\r\n// and the second dimension is the 'Placement'\r\n//\r\n// @placementConfig: Array\r\nexport const useImageExperienceAdPreviewModel = (placementConfig, placeholderImage, isImageFittingEnabled) => {\r\n const {\r\n resetReducerStates,\r\n setPlacementConfig,\r\n multiImagePlacementSets,\r\n ...rest\r\n } = useAdPreviewModelCore();\r\n\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']);\r\n\r\n const isPlaceHolderImage = useCallback((imageMeta) => {\r\n const { url } = imageMeta || {};\r\n const placeHolderUrl = placeholderImage && (_.isString(placeholderImage) ? placeholderImage : placeholderImage.url);\r\n return url && placeHolderUrl && url === placeHolderUrl;\r\n }, [placeholderImage]);\r\n\r\n // only return the placementSets with image experience data\r\n const imageExperiencePlacementSets = useMemo(() => {\r\n let changed = false;\r\n const ret = _.map(multiImagePlacementSets, ({ placementSetName, placementList }) => {\r\n const newPlacementList = _.map(placementList, (placement) => {\r\n const { images } = placement || [];\r\n const newImages = _.filter(images, ({ hasImageExperienceData, imageMeta }) => hasImageExperienceData || isPlaceHolderImage(imageMeta)) || [];\r\n changed = changed || newImages.length !== images.length;\r\n return { ...placement, images: newImages };\r\n });\r\n return { placementSetName, placementList: newPlacementList };\r\n });\r\n return changed ? ret : multiImagePlacementSets;\r\n }, [isPlaceHolderImage, multiImagePlacementSets]);\r\n\r\n const onUpdateImageExperienceImageList = useCallback((imageExperienceImageList, activeImageIndices, hasDataChanged) => {\r\n const previewImageListState = transformImageExperienceImageList(placementConfig, imageExperienceImageList, isImageFittingEnabled, isAdPreviewRefreshEnabled);\r\n if (!_.isEmpty(previewImageListState)) {\r\n const activeImageIndexList = previewImageListState && previewImageListState.map((img, index) => index);\r\n resetReducerStates({ previewImageListState, activeImageIndices: activeImageIndices || activeImageIndexList || [0], hasDataChanged });\r\n } else if (placeholderImage) {\r\n // use placeholder image if no image is set\r\n setPlacementConfig([{ image: placeholderImage, placementSets: placementConfig }]);\r\n }\r\n }, [isImageFittingEnabled, placeholderImage, placementConfig, resetReducerStates, setPlacementConfig, isAdPreviewRefreshEnabled]);\r\n\r\n return {\r\n onUpdateImageExperienceImageList,\r\n multiImagePlacementSets,\r\n imageExperiencePlacementSets,\r\n ...rest,\r\n };\r\n};\r\n","import {\r\n AdPreviewGridLayout as GridLayoutCore,\r\n AdPreviewSinglePlacementLayout as SinglePlacementLayoutCore,\r\n UnstyledAdPreviewCarouselLayout as UnstyledCarouselLayoutCore,\r\n //\r\n AdPlacementMmaWideImage4x1 as MmaWideImage4x1,\r\n AdPlacementMmaLandscapeImage191x100 as MmaLandscapeImage191x100,\r\n AdPlacementMmaSquareImage1x1 as MmaSquareImage1x1,\r\n AdPlacementMmaVerticalImage1x2 as MmaVerticalImage1x2,\r\n AdPreviewPlacementContainerBase as AdPreviewPlacementContainerBaseCore,\r\n //\r\n AdPlacementMmaInMsanWideImage191x100 as MmaInMsanWideImage191x100,\r\n AdPlacementMmaInMsanSquareImage1x1 as MmaInMsanSquareImage1x1,\r\n AdPlacementMmaInMsanMSEdgeSingleCarousel178x100 as MmaInMsanMSEdgeSingleCarousel178x100,\r\n AdPlacementMmaInMsanMSNInArticle150x100 as MmaInMsanMSNInArticle150x100,\r\n AdPlacementMmaInMsanMSNSmallHeadline133x100 as MmaInMsanMSNSmallHeadline133x100,\r\n //\r\n AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100 as MmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1 as MmaInMsanV2MicrosoftEdgeMobile1x1,\r\n AdPlacementMmaInMsanV2MSANBanner2x1 as MmaInMsanV2MSANBanner2x1,\r\n AdPlacementMmaInMsanV2MSANRiver191x100 as MmaInMsanV2MSANRiver191x100,\r\n AdPlacementMmaInMsanV2MSANRectangle191x100 as MmaInMsanV2MSANRectangle191x100,\r\n AdPlacementMmaInMsanV2MSNCarousel169x100 as MmaInMsanV2MSNCarousel169x100,\r\n AdPlacementMmaInMsanV2MSNPartnerStripe153x100 as MmaInMsanV2MSNPartnerStripe153x100,\r\n AdPlacementMmaInMsanV2MSNRestoday124x100 as MmaInMsanV2MSNRestoday124x100,\r\n // Boost\r\n AdPlacementBoostHeroImageCarousel as BoostHeroImageCarousel,\r\n AdPlacementBoostWindowsSpotlight191x100 as BoostWindowsSpotlight191x100,\r\n AdPlacementBoostDiscoverCard1x1 as BoostDiscoverCard1x1,\r\n AdPlacementBoostStartMenu as BoostStartMenu,\r\n AdPlacementBoostActionCenter as BoostActionCenter,\r\n AdPlacementBoostBanner as BoostBanner,\r\n AdPlacementBoostProngFeed191x100 as BoostProngFeed191x100,\r\n AdPlacementBoostCoachmark175x100 as BoostCoachmark175x100,\r\n //\r\n AdPlacementImgExtWideImage191x100 as ImgExtWideImage191x100,\r\n AdPlacementImgExtMSEdgeSingleCarousel178x100 as MSEdgeSingleCarousel178x100,\r\n AdPlacementImgExtBingDesktopSingleImage178x100 as BingDesktopSingleImage178x100,\r\n AdPlacementImgExtMSEdgeMediumHeadline172x100 as MSEdgeMediumHeadline172x100,\r\n AdPlacementImgExtMSNSingleCarousel169x100 as MSNSingleCarousel169x100,\r\n AdPlacementImgExtMSNMediumHeadline155x100 as MSNMediumHeadline155x100,\r\n AdPlacementImgExtMSNInArticle150x100 as MSNInArticle150x100,\r\n AdPlacementImgExtMSNSmallHeadline133x100 as MSNSmallHeadline133x100,\r\n AdPlacementImgExtBingDesktopMultiImage133x100 as BingDesktopMultiImage133x100,\r\n AdPlacementImgExtBingMobileMultiImage133x100 as BingMobileMultiImage133x100,\r\n AdPlacementImgExtSquareImage1x1 as SquareImage1x1,\r\n AdPlacementImgExtMSNDoubleCarousel93x100 as MSNDoubleCarousel93x100,\r\n //\r\n ResponsiveAdPlacementMmaLandscapeImage191x100 as ResponsiveMmaLandscapeImage191x100,\r\n ResponsiveAdPlacementMmaSquareImage1x1 as ResponsiveMmaSquareImage1x1,\r\n ResponsiveAdPlacementMmaVerticalImage1x2 as ResponsiveMmaVerticalImage1x2,\r\n ResponsiveAdPlacementMmaWideImage4x1 as ResponsiveMmaWideImage4x1,\r\n //\r\n ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100 as ResponsiveMmaInMsanMSEdgeSingleCarousel178x100,\r\n ResponsiveAdPlacementMmaInMsanMSNInArticle150x100 as ResponsiveMmaInMsanMSNInArticle150x100,\r\n ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100 as ResponsiveMmaInMsanMSNSmallHeadline133x100,\r\n ResponsiveAdPlacementMmaInMsanSquareImage1x1 as ResponsiveMmaInMsanSquareImage1x1,\r\n ResponsiveAdPlacementMmaInMsanWideImage191x100 as ResponsiveMmaInMsanWideImage191x100,\r\n //\r\n ResponsiveAdPlacementBingSearchText as ResponsiveBingSearchText,\r\n ResponsiveAdPlacementOutlookMobile as ResponsiveOutlookMobile,\r\n ResponsiveAdPlacementOutlookWeb as ResponsiveOutlookWeb,\r\n //\r\n UAPPlacementType,\r\n UAPPlacementTypeAlias,\r\n //\r\n getAdPlacementComponent,\r\n //\r\n getPlacementListMetaDataByImageType,\r\n //\r\n UAPAdExtensionType,\r\n AdPreviewStructuredSnippetExtension as StructuredSnippetExtension,\r\n AdPreviewCalloutExtension as CalloutExtension,\r\n AdPreviewPriceExtension as PriceExtension,\r\n AdPreviewPromotionExtension as PromotionExtension,\r\n AdPreviewSitelinkExtension as SitelinkExtension,\r\n //\r\n AdPlacementDynamicSearch as DynamicSearch,\r\n //\r\n AdPlacementResponsiveSearch as ResponsiveSearch,\r\n AdPlacementResponsiveSearchDesktop as ResponsiveSearchDesktop,\r\n AdPlacementResponsiveSearchMobile as ResponsiveSearchMobile,\r\n //\r\n AdPlacementLinkedInSingleImageDesktop as LinkedInSingleImageDesktop,\r\n AdPlacementLinkedInSingleImageMobile as LinkedInSingleImageMobile,\r\n AdPlacementLinkedInSingleImageMediumRectangle as LinkedInSingleImageMediumRectangle,\r\n AdPlacementLinkedInSingleImageMobileInterstitial as LinkedInSingleImageMobileInterstitial,\r\n AdPlacementLinkedInSingleImageNative as LinkedInSingleImageNative,\r\n\r\n // app ads\r\n AppAdsVideoHorizontalPlacement as UnifiedAppAdsVideoHorizontalPlacement,\r\n AppAdsM365OutlookPlacement as UnifiedAppAdsM365OutlookPlacement,\r\n AppAdsCasualGamesDimensionsPlacement as UnifiedAppAdsCasualGamesDimensionsPlacement,\r\n AppAdsMSNDisplayPlacement as UnifiedAppAdsMSNDisplayPlacement,\r\n AppAdsBingSearchPlacement as UnifiedAppAdsBingSearchPlacement,\r\n\r\n getCropSettingsFromRoi,\r\n} from '@bingads-webui-campaign-react/unified-ad-preview-library-core';\r\n\r\nimport {\r\n AdPreviewCarouselLayoutWrapper,\r\n AdPreviewCarouselLayoutWrapperEx,\r\n} from './src/carousel-layout-wrapper';\r\nimport { withCMUITheme } from './with-cmui-theme';\r\n\r\n//\r\nimport { useAdPreviewModel } from './src/use-ad-preview-model-wrapper';\r\n\r\nexport const AdPreviewGridLayout = withCMUITheme(GridLayoutCore);\r\nexport const AdPreviewSinglePlacementLayout = withCMUITheme(SinglePlacementLayoutCore);\r\nexport const AdPreviewCarouselLayout = withCMUITheme(AdPreviewCarouselLayoutWrapper);\r\nexport const AdPreviewCarouselLayoutEx = withCMUITheme(AdPreviewCarouselLayoutWrapperEx);\r\nexport const UnstyledAdPreviewCarouselLayout = withCMUITheme(UnstyledCarouselLayoutCore);\r\n\r\nexport const AdPlacementMmaWideImage4x1 = withCMUITheme(MmaWideImage4x1);\r\nexport const AdPlacementMmaLandscapeImage191x100 = withCMUITheme(MmaLandscapeImage191x100);\r\nexport const AdPlacementMmaSquareImage1x1 = withCMUITheme(MmaSquareImage1x1);\r\nexport const AdPlacementMmaVerticalImage1x2 = withCMUITheme(MmaVerticalImage1x2);\r\nexport const AdPreviewPlacementContainerBase = withCMUITheme(AdPreviewPlacementContainerBaseCore);\r\n\r\nexport const AdPlacementMmaInMsanWideImage191x100 = withCMUITheme(MmaInMsanWideImage191x100);\r\nexport const AdPlacementMmaInMsanSquareImage1x1 = withCMUITheme(MmaInMsanSquareImage1x1);\r\nexport const AdPlacementMmaInMsanMSEdgeSingleCarousel178x100 = withCMUITheme(MmaInMsanMSEdgeSingleCarousel178x100);\r\nexport const AdPlacementMmaInMsanMSNInArticle150x100 = withCMUITheme(MmaInMsanMSNInArticle150x100);\r\nexport const AdPlacementMmaInMsanMSNSmallHeadline133x100 = withCMUITheme(MmaInMsanMSNSmallHeadline133x100);\r\n\r\nexport const AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100 = withCMUITheme(MmaInMsanV2MicrosoftEdgeCarousel201x100);\r\nexport const AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1 = withCMUITheme(MmaInMsanV2MicrosoftEdgeMobile1x1);\r\nexport const AdPlacementMmaInMsanV2MSANBanner2x1 = withCMUITheme(MmaInMsanV2MSANBanner2x1);\r\nexport const AdPlacementMmaInMsanV2MSANRiver191x100 = withCMUITheme(MmaInMsanV2MSANRiver191x100);\r\nexport const AdPlacementMmaInMsanV2MSANRectangle191x100 = withCMUITheme(MmaInMsanV2MSANRectangle191x100);\r\nexport const AdPlacementMmaInMsanV2MSNCarousel169x100 = withCMUITheme(MmaInMsanV2MSNCarousel169x100);\r\nexport const AdPlacementMmaInMsanV2MSNPartnerStripe153x100 = withCMUITheme(MmaInMsanV2MSNPartnerStripe153x100);\r\nexport const AdPlacementMmaInMsanV2MSNRestoday124x100 = withCMUITheme(MmaInMsanV2MSNRestoday124x100);\r\n\r\nexport const AdPlacementBoostHeroImageCarousel = withCMUITheme(BoostHeroImageCarousel);\r\nexport const AdPlacementBoostWindowsSpotlight191x100 = withCMUITheme(BoostWindowsSpotlight191x100);\r\nexport const AdPlacementBoostDiscoverCard1x1 = withCMUITheme(BoostDiscoverCard1x1);\r\nexport const AdPlacementBoostStartMenu = withCMUITheme(BoostStartMenu);\r\nexport const AdPlacementBoostActionCenter = withCMUITheme(BoostActionCenter);\r\nexport const AdPlacementBoostBanner = withCMUITheme(BoostBanner);\r\nexport const AdPlacementBoostProngFeed191x100 = withCMUITheme(BoostProngFeed191x100);\r\nexport const AdPlacementBoostCoachmark175x100 = withCMUITheme(BoostCoachmark175x100);\r\n\r\nexport const AdPlacementImgExtWideImage191x100 = withCMUITheme(ImgExtWideImage191x100);\r\nexport const AdPlacementImgExtMSEdgeSingleCarousel178x100 = withCMUITheme(MSEdgeSingleCarousel178x100);\r\nexport const AdPlacementImgExtBingDesktopSingleImage178x100 = withCMUITheme(BingDesktopSingleImage178x100);\r\nexport const AdPlacementImgExtMSEdgeMediumHeadline172x100 = withCMUITheme(MSEdgeMediumHeadline172x100);\r\nexport const AdPlacementImgExtMSNSingleCarousel169x100 = withCMUITheme(MSNSingleCarousel169x100);\r\nexport const AdPlacementImgExtMSNMediumHeadline155x100 = withCMUITheme(MSNMediumHeadline155x100);\r\nexport const AdPlacementImgExtMSNInArticle150x100 = withCMUITheme(MSNInArticle150x100);\r\nexport const AdPlacementImgExtMSNSmallHeadline133x100 = withCMUITheme(MSNSmallHeadline133x100);\r\nexport const AdPlacementImgExtBingDesktopMultiImage133x100 = withCMUITheme(BingDesktopMultiImage133x100);\r\nexport const AdPlacementImgExtBingMobileMultiImage133x100 = withCMUITheme(BingMobileMultiImage133x100);\r\nexport const AdPlacementImgExtSquareImage1x1 = withCMUITheme(SquareImage1x1);\r\nexport const AdPlacementImgExtMSNDoubleCarousel93x100 = withCMUITheme(MSNDoubleCarousel93x100);\r\n\r\nexport const AdPlacementDynamicSearch = withCMUITheme(DynamicSearch);\r\n\r\nexport const AdPlacementResponsiveSearch = withCMUITheme(ResponsiveSearch);\r\nexport const AdPlacementResponsiveSearchDesktop = withCMUITheme(ResponsiveSearchDesktop);\r\nexport const AdPlacementResponsiveSearchMobile = withCMUITheme(ResponsiveSearchMobile);\r\n\r\nexport const ResponsiveAdPlacementMmaLandscapeImage191x100 = withCMUITheme(ResponsiveMmaLandscapeImage191x100);\r\nexport const ResponsiveAdPlacementMmaSquareImage1x1 = withCMUITheme(ResponsiveMmaSquareImage1x1);\r\nexport const ResponsiveAdPlacementMmaVerticalImage1x2 = withCMUITheme(ResponsiveMmaVerticalImage1x2);\r\nexport const ResponsiveAdPlacementMmaWideImage4x1 = withCMUITheme(ResponsiveMmaWideImage4x1);\r\nexport const ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100 = withCMUITheme(ResponsiveMmaInMsanMSEdgeSingleCarousel178x100);\r\nexport const ResponsiveAdPlacementMmaInMsanMSNInArticle150x100 = withCMUITheme(ResponsiveMmaInMsanMSNInArticle150x100);\r\nexport const ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100 = withCMUITheme(ResponsiveMmaInMsanMSNSmallHeadline133x100);\r\nexport const ResponsiveAdPlacementMmaInMsanSquareImage1x1 = withCMUITheme(ResponsiveMmaInMsanSquareImage1x1);\r\nexport const ResponsiveAdPlacementMmaInMsanWideImage191x100 = withCMUITheme(ResponsiveMmaInMsanWideImage191x100);\r\nexport const ResponsiveAdPlacementBingSearchText = withCMUITheme(ResponsiveBingSearchText);\r\nexport const ResponsiveAdPlacementOutlookMobile = withCMUITheme(ResponsiveOutlookMobile);\r\nexport const ResponsiveAdPlacementOutlookWeb = withCMUITheme(ResponsiveOutlookWeb);\r\n\r\nexport const AdPlacementLinkedInSingleImageDesktop = withCMUITheme(LinkedInSingleImageDesktop);\r\nexport const AdPlacementLinkedInSingleImageMobile = withCMUITheme(LinkedInSingleImageMobile);\r\nexport const AdPlacementLinkedInSingleImageMediumRectangle = withCMUITheme(LinkedInSingleImageMediumRectangle);\r\nexport const AdPlacementLinkedInSingleImageMobileInterstitial = withCMUITheme(LinkedInSingleImageMobileInterstitial);\r\nexport const AdPlacementLinkedInSingleImageNative = withCMUITheme(LinkedInSingleImageNative);\r\n\r\nexport const AppAdsVideoHorizontalPlacement = withCMUITheme(UnifiedAppAdsVideoHorizontalPlacement);\r\nexport const AppAdsM365OutlookPlacement = withCMUITheme(UnifiedAppAdsM365OutlookPlacement);\r\nexport const AppAdsCasualGamesDimensionsPlacement = withCMUITheme(UnifiedAppAdsCasualGamesDimensionsPlacement);\r\nexport const AppAdsMSNDisplayPlacement = withCMUITheme(UnifiedAppAdsMSNDisplayPlacement);\r\nexport const AppAdsBingSearchPlacement = withCMUITheme(UnifiedAppAdsBingSearchPlacement);\r\n\r\nexport {\r\n UAPPlacementType,\r\n UAPPlacementTypeAlias,\r\n UAPAdExtensionType,\r\n useAdPreviewModel,\r\n getAdPlacementComponent,\r\n getPlacementListMetaDataByImageType,\r\n getCropSettingsFromRoi,\r\n};\r\n\r\nexport { getSmartCropSettingsFactory } from './src/get-smart-cropped-image';\r\n\r\nexport { useImageExperienceAdPreviewModel, PlacementType2AssociationTypeMap } from './src/use-image-experience-ad-preview-model';\r\n\r\nexport const AdPreviewStructuredSnippetExtension = withCMUITheme(StructuredSnippetExtension);\r\nexport const AdPreviewCalloutExtension = withCMUITheme(CalloutExtension);\r\nexport const AdPreviewPriceExtension = withCMUITheme(PriceExtension);\r\nexport const AdPreviewPromotionExtension = withCMUITheme(PromotionExtension);\r\nexport const AdPreviewSitelinkExtension = withCMUITheme(SitelinkExtension);\r\nexport const AdPreviewAdExtensionComponents = {\r\n [UAPAdExtensionType.SiteLink]: AdPreviewSitelinkExtension,\r\n [UAPAdExtensionType.Callout]: AdPreviewCalloutExtension,\r\n [UAPAdExtensionType.Promotion]: AdPreviewPromotionExtension,\r\n [UAPAdExtensionType.StructuredSnippet]: AdPreviewStructuredSnippetExtension,\r\n [UAPAdExtensionType.Price]: AdPreviewPriceExtension,\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { createUseStyles } from 'react-jss';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\n\r\nconst emptyTheme = { components: {}, core: {} };\r\nconst getDisplayName = Component => Component.displayName || Component.name || 'Component';\r\n\r\n// the purpose of the hoc is to deouple the wrapped components with a specific theme provider,\r\n// to make the library as independent as possible\r\n\r\n// use an external theme to decouple the wrapped components with a specific theme provider\r\nexport function withThemedStyles(WrappedComponent, getStyles, options) {\r\n const {\r\n prefixClassName, // the prefix of the class names generated by react-jss\r\n useRawStyles, // also pass down the themed styles to the wrapped component, which may be used in Fluent UI components\r\n componentName, // the description name of WrappedComponent\r\n } = options || {};\r\n\r\n const HOC = (props) => {\r\n // the theme is passed as a prop to the wrapped component, instead of getting if from some theme provider\r\n const { theme } = props;\r\n const { components, core } = theme || emptyTheme;\r\n // handle theme by ourselves instead of using the react-jss theming\r\n const themedStyles = useMemo(() => getStyles(components, core), [components, core]);\r\n const useStyles = useMemo(() => createUseStyles(themedStyles, prefixClassName ? { name: prefixClassName } : undefined), [themedStyles]);\r\n const classes = useStyles() || {};\r\n return (\r\n \r\n );\r\n };\r\n\r\n HOC.displayName = `withThemedStyles(${componentName || getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HOC, WrappedComponent);\r\n\r\n return HOC;\r\n}\r\n\r\nexport const withUAPLThemedStyles = (WrappedComponent, getStyles, options) => withThemedStyles(WrappedComponent, getStyles, { ...options, prefixClassName: 'UAPL' });\r\n\r\n","const defaultAdsLabelStyles = {\r\n position: 'relative !important',\r\n padding: '.8px 4px !important',\r\n margin: '0 5px 0 0 !important',\r\n background: 'transparent !important',\r\n color: '#78718a !important',\r\n lineHeight: '1.364 !important',\r\n fontSize: '10px !important',\r\n fontWeight: '400 !important',\r\n fontFamily: 'Segoe UI,Segoe WP,Arial,Sans-Serif',\r\n border: '.5px solid #78718a !important',\r\n borderRadius: '4px !important',\r\n};\r\n\r\nexport const getMmaInMsanPlacementBaseStyles = () => ({\r\n placementCard: undefined,\r\n placementImageContainer: undefined,\r\n placementTextContainer: undefined,\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n});\r\n\r\nexport const getMmaInMsanWideImage191x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n // height: 364,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n maxWidth: '-webkit-fill-available',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 18,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': defaultAdsLabelStyles,\r\n },\r\n});\r\n\r\nexport const getMmaInMsanMSEdgeSingleCarousel178x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n placementCard: {\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -100,\r\n },\r\n width: '624px !important',\r\n },\r\n\r\n // overrides\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 100,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontWeight: '200',\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n color: 'white',\r\n width: 590,\r\n height: 73,\r\n marginBottom: 20,\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n color: '#fff !important',\r\n opacity: '0.7 !important',\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n});\r\n\r\nexport const getMmaInMsanMSNInArticle150x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n // height: 364,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n // height: 98,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 15,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': defaultAdsLabelStyles,\r\n },\r\n});\r\n\r\nexport const getMmaInMsanMSNSmallHeadline133x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n width: '300px !important',\r\n height: 90,\r\n color: '#ddd',\r\n // border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n flexDirection: 'row !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 100,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 52,\r\n margin: '4px 8px 0 8px',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': defaultAdsLabelStyles,\r\n },\r\n});\r\n\r\nexport const getMmaInMsanSquareImage1x1Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n width: '300px !important',\r\n height: 90,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n flexDirection: 'row !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 80,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 45,\r\n margin: '8px 8px 0 8px',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': defaultAdsLabelStyles,\r\n },\r\n});\r\n","const defaultAdsLabelStyles = {\r\n position: 'relative !important',\r\n padding: '.8px 4px !important',\r\n margin: '0 5px 0 0 !important',\r\n background: 'transparent !important',\r\n color: '#78718a !important',\r\n lineHeight: '1.364 !important',\r\n fontSize: '10px !important',\r\n fontWeight: '400 !important',\r\n fontFamily: 'Segoe UI,Segoe WP,Arial,Sans-Serif',\r\n border: '.5px solid #78718a !important',\r\n borderRadius: '4px !important',\r\n};\r\n\r\nexport const getMmaInMsanV2PlacementBaseStyles = () => ({\r\n placementCard: {\r\n border: '1px solid #c8c8c8',\r\n boxShadow: 'unset !important',\r\n borderRadius: '0px !important',\r\n },\r\n placementImageContainer: undefined,\r\n placementTextContainer: undefined,\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n});\r\n\r\nexport const getMmaInMsanV2MicrosoftEdgeCarousel201x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -145,\r\n },\r\n '&:hover $placementShortHeadline': {\r\n color: 'white',\r\n textDecoration: 'underline',\r\n },\r\n width: '612px !important',\r\n height: 304,\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 55,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n overflow: 'hidden',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n bottom: 0,\r\n padding: 16,\r\n fontSize: 10,\r\n color: '#bebebe',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'white',\r\n width: 592,\r\n height: 'auto',\r\n fontSize: 28,\r\n maxHeight: 108,\r\n fontWeight: '600',\r\n lineHeight: '36px',\r\n marginBottom: 0,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n padding: '4px 0 !important',\r\n margin: '9px 5px 5px 0px !important',\r\n fontSize: '12px !important',\r\n lineHeight: '16px !important',\r\n background: 'transparent !important',\r\n color: 'rgba(255, 255, 255, 0.7) !important',\r\n borderRadius: '2px !important',\r\n\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n margin: '0 !important',\r\n color: 'rgba(255, 255, 255, 0.7) !important',\r\n background: 'transparent !important',\r\n border: '2px solid rgba(255, 255, 255, 0.3) !important',\r\n opacity: '1 !important',\r\n fontSize: '12px !important',\r\n lineHeight: '16px !important',\r\n },\r\n '& .business-name': {\r\n color: 'hsla(0,0%,100%,.7) !important',\r\n padding: '0 0 0 4px !important',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSANBanner2x1Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '360px !important',\r\n height: 88,\r\n padding: '0px !important',\r\n background: '#fff',\r\n flexDirection: 'row !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 180,\r\n height: 90,\r\n marginRight: 10,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'rgba(0, 0, 0, 0.83)',\r\n height: 45,\r\n margin: '8px 8px 8px 0',\r\n overflow: 'hidden',\r\n fontSize: 15,\r\n fontWeight: 600,\r\n lineHeight: '22px',\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n padding: '2px 0 !important',\r\n borderRadius: '2px !important',\r\n\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n color: 'rgba(46,46,46,.7) !important',\r\n fontSize: '11px !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 !important',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSANRiver191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '300px !important',\r\n height: 304,\r\n padding: '0px !important',\r\n },\r\n\r\n placementTextContainer: {\r\n width: 300,\r\n height: 147,\r\n padding: 12,\r\n background: 'linear-gradient(112.05deg, #FFFFFF 35.59%, #E1E1E1 100%)',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n position: 'relative',\r\n top: 0,\r\n color: '#1A1A1A',\r\n width: 268,\r\n fontFamily: 'Segoe UI Variable Static Text',\r\n fontStyle: 'normal',\r\n fontSize: 20,\r\n lineHeight: 1.1,\r\n fontWeight: 600,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n color: '#4D4C4C',\r\n width: 268,\r\n fontSize: 14,\r\n fontFamily: 'Segoe UI Variable Static Text',\r\n fontStyle: 'normal',\r\n margin: '4px 0 0 0',\r\n lineHeight: 1.43,\r\n fontWeight: 400,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n width: 270,\r\n padding: '4px 0 !important',\r\n margin: '9px 5px 0px 0px !important',\r\n fontSize: '11px !important',\r\n lineHeight: '15px !important',\r\n borderRadius: '2px !important',\r\n position: 'absolute',\r\n bottom: 11,\r\n background: 'transparent !important',\r\n\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n margin: '0 !important',\r\n color: 'rgba(43,43,43,.8) !important',\r\n opacity: '1 !important',\r\n fontSize: '11px !important',\r\n lineHeight: '15px !important',\r\n fontFamily: 'Segoe UI Variable Static Small !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 0 0 4px !important',\r\n fontFamily: 'Segoe UI Variable Static Small !important',\r\n },\r\n '& .ads-icon': {\r\n float: 'right',\r\n widht: 16,\r\n height: 16,\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSNCarousel169x100Styles = (theme) => {\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -80,\r\n },\r\n width: '628px !important',\r\n height: 372,\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 120,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementLongHeadline: {\r\n width: 576,\r\n fontSize: 28,\r\n // maxHeight: 108,\r\n height: 108,\r\n fontWeight: 600,\r\n marginBottom: 0,\r\n color: 'white',\r\n lineHeight: '36px',\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n color: '#bebebe !important',\r\n opacity: '1 !important',\r\n border: 'unset !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 !important',\r\n color: '#bebebe !important',\r\n },\r\n '& .ads-icon': {\r\n float: 'right',\r\n widht: 12,\r\n height: 12,\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSNPartnerStripe153x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '302px !important',\r\n height: 296,\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n width: 282,\r\n height: 98,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementLongHeadline: {\r\n top: -6,\r\n color: '#2b2b2b',\r\n width: 282,\r\n height: 40,\r\n margin: 0,\r\n position: 'relative',\r\n fontSize: 14,\r\n lineHeight: '20px',\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n padding: '4px 0 !important',\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n borderRadius: '2px !important',\r\n opacity: '1 !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 !important',\r\n color: '#333 !important',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSNRestoday124x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '306px !important',\r\n height: 100,\r\n padding: 3,\r\n flexDirection: 'row !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 108,\r\n height: 84,\r\n margin: '8px 4px 0 8px',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 2,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: '#2b2b2b',\r\n height: 55,\r\n overflow: 'hidden',\r\n fontSize: 16,\r\n fontWeight: 600,\r\n lineHeight: '22px',\r\n padding: '5px 0',\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n width: 177,\r\n padding: '8px 0 1px 0 !important',\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n margin: '0 !important',\r\n opacity: '1 !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 0 0 4px !important',\r\n margin: '9px 0 0 0 !important',\r\n },\r\n '& .ads-icon': {\r\n float: 'right',\r\n widht: 16,\r\n height: 16,\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MSANRectangle120x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -200,\r\n },\r\n '&:hover $placementShortHeadline': {\r\n textDecoration: 'underline',\r\n },\r\n width: '300px !important',\r\n height: 250,\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 0,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'white',\r\n width: 268,\r\n fontSize: 20,\r\n fontFamily: 'Segoe UI Semibold',\r\n fontWeight: '200',\r\n lineHeight: '26px',\r\n marginBottom: 20,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n position: 'absolute',\r\n bottom: -10,\r\n fontWeight: '600',\r\n lineHeight: 1.364,\r\n fontSize: 12,\r\n padding: '2px 0 4px 0 !important',\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n color: 'hsla(0,0%,100%,.7) !important',\r\n fontSize: '12px !important',\r\n fontWeight: '600 !important',\r\n border: '.5px solid hsla(0,0%,100%,.7) !important',\r\n opacity: '1 !important',\r\n },\r\n '& .business-name': {\r\n padding: '0 !important',\r\n margin: '0 !important',\r\n color: 'hsla(0,0%,100%,.7) !important',\r\n fontWeight: '600 !important',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2MicrosoftEdgeMobile1x1Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n color: '#ddd',\r\n width: '240px !important',\r\n height: 90,\r\n padding: 3,\r\n background: '#fff',\r\n flexDirection: 'row !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'right',\r\n width: 80,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n marginLeft: 8,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'black',\r\n height: 45,\r\n margin: '8px 0',\r\n overflow: 'hidden',\r\n fontSize: 14,\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 600,\r\n lineHeight: '22px',\r\n paddingBottom: 5,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n lineHeight: '20px !important',\r\n fontFamily: 'Segoe UI',\r\n padding: '4px 0 !important',\r\n position: 'relative',\r\n top: 0.5,\r\n '& .ads-label': {\r\n ...defaultAdsLabelStyles,\r\n margin: '0 !important',\r\n color: '#2b2b2b !important',\r\n border: '.5px solid rgba(43, 43, 43, .3) !important',\r\n opacity: '1 !important',\r\n fontSize: '11px !important',\r\n },\r\n '& .business-name': {\r\n position: 'relative !important',\r\n padding: '12px !important',\r\n margin: '0 !important',\r\n color: '#2b2b2b !important',\r\n fontSize: '11px !important',\r\n },\r\n },\r\n };\r\n};\r\n","export const getBingSearchPlacementBaseStyles = () => ({\r\n placementCard: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n background: '#fff',\r\n margin: 'auto',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n placementTextContainer: {\r\n margin: '4px 8px 0 8px',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n '&:hover': {\r\n color: '#004578',\r\n },\r\n\r\n '& .logo-and-text-container': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n paddingBottom: 8,\r\n '& .logo-text': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n },\r\n },\r\n placementLongHeadline: {\r\n height: 28,\r\n fontSize: 20,\r\n fontWeight: 400,\r\n lineHeight: '24px',\r\n overflow: 'hidden',\r\n width: '100%',\r\n },\r\n placementFinalUrl: {\r\n height: 20,\r\n fontSize: 14,\r\n color: '#0b6a0b',\r\n },\r\n placementDescriptionContainer: {\r\n display: 'flex',\r\n },\r\n placementAdsLabel: {\r\n position: 'static !important',\r\n color: '#767676 !important',\r\n border: '1px solid #ddd !important',\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline',\r\n opacity: '100% !important',\r\n padding: '0 2px !important',\r\n maxHeight: 16,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: '6px !important',\r\n },\r\n placementDescription: {\r\n color: '#333',\r\n display: 'inline-block',\r\n fontSize: 13,\r\n flexGrow: 1,\r\n },\r\n});\r\n\r\nexport const getBingSearchTextPlacementStyles = (theme) => {\r\n const { placementCard, placementTextContainer, ...baseStyles } = getBingSearchPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n width: 608,\r\n minHeight: 110,\r\n padding: '8px 16px',\r\n alignItems: 'flex-start',\r\n },\r\n placementTextContainer: {\r\n ...placementTextContainer,\r\n '& .logo-and-text-container .logo-text .logo-business-name': {\r\n color: '#666',\r\n fontSize: 14,\r\n fontWeight: 400,\r\n lineHeight: '22px',\r\n },\r\n },\r\n placementLogoContainer: {\r\n paddingRight: 8,\r\n '& .cropped-image-view': {\r\n borderRadius: 6,\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getBingSearchTextDesktopPlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getBingSearchPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n display: 'block',\r\n width: 530,\r\n height: 110,\r\n top: 0,\r\n padding: '8px 16px',\r\n boxShadow: 'none',\r\n // border: none;\r\n // border-radius: 5.11px;\r\n },\r\n bingSearchDesktopPlacementRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& .header-image': {\r\n position: 'relative',\r\n left: -16,\r\n height: 100,\r\n '& img': {\r\n verticalAlign: 'middle',\r\n },\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getBingSearchTextMobilePlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getBingSearchPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n display: 'block',\r\n width: 608,\r\n border: '0.5px solid #ddd',\r\n height: 110,\r\n padding: '8px 16px',\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n borderRadius: 5.11,\r\n },\r\n bingSearchMobilePlacementRoot: {\r\n display: 'flex',\r\n flexGrow: 1,\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'relative',\r\n width: 700,\r\n opacity: '100%',\r\n border: '5px solid #605e5c',\r\n borderRadius: '40px 40px 0 0',\r\n borderBottom: 'none',\r\n '& .bing-search-mobile-placement-parent': {\r\n margin: '45px 15px 0 15px',\r\n borderBottom: 'none',\r\n borderRadius: 0,\r\n paddingBottom: 1,\r\n\r\n '&:before': {\r\n position: 'absolute',\r\n top: 20,\r\n left: '50%',\r\n border: '5px solid #605e5c',\r\n content: '\"\"',\r\n borderRadius: 5,\r\n },\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n","export const getOutlookPlacementBaseStyles = () => ({\r\n placementCard: {\r\n display: 'block',\r\n border: '1px solid #C8C8C8',\r\n margin: 'auto',\r\n overflow: 'hidden',\r\n position: 'relative !important',\r\n background: '#fff',\r\n boxSizing: 'content-box',\r\n boxShadow: 'none',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n placementTextContainer: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n placementShortHeadline: undefined,\r\n placementDescription: undefined,\r\n placementLogoContainer: undefined,\r\n});\r\n\r\nexport const getOutlookMobilePlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getOutlookPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n width: 340,\r\n height: 80,\r\n borderRadius: '5.11px',\r\n padding: '5px 10px 5px 15px',\r\n\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n display: 'block',\r\n fontSize: '10px !important',\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n '&:hover': {\r\n color: '#004578',\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n color: 'black !important',\r\n fontSize: '20px !important',\r\n maxWidth: 300,\r\n marginTop: '0px !important',\r\n lineHeight: '30px !important',\r\n verticalAlign: 'middle',\r\n\r\n '& .ads-label': {\r\n color: 'white !important',\r\n width: 'auto',\r\n height: 15,\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline-block !important',\r\n padding: '0 4px !important',\r\n lineHeight: '15px !important',\r\n verticalAlign: 'middle',\r\n backgroundColor: 'blue !important',\r\n border: 'unset !important',\r\n borderRadius: '4px !important',\r\n position: 'relative !important',\r\n fontSize: '10px !important',\r\n },\r\n\r\n '& .business-name': {\r\n color: 'unset !important',\r\n padding: 'unset !important',\r\n fontSize: 'unset !important',\r\n marginTop: 'unset !important',\r\n lineHeight: 'unset !important',\r\n },\r\n },\r\n\r\n placementShortHeadline: {\r\n fontSize: 13,\r\n marginTop: 2,\r\n fontWeight: 200,\r\n lineHeight: '19.5px',\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n color: 'black',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n\r\n placementLogoContainer: {\r\n paddingTop: 8,\r\n paddingRight: 16,\r\n '& .cropped-image-view': {\r\n borderRadius: '50%',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getOutlookWebPlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getOutlookPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n outlookWebCardRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n margin: 'auto',\r\n },\r\n\r\n placementCard: {\r\n ...placementCard,\r\n minWidth: 500,\r\n borderRadius: 0,\r\n\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n display: 'inline',\r\n fontSize: '10px !important',\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n\r\n '& .logo-and-businessname-container': {\r\n display: 'inline-block',\r\n position: 'relative',\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n display: 'inline-block !important',\r\n margin: '0px 40px 0px 0px !important',\r\n verticalAlign: 'middle',\r\n\r\n '& .ads-label': {\r\n color: 'white !important',\r\n width: 'auto',\r\n height: 13,\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline-block !important',\r\n padding: '0 4px !important',\r\n lineHeight: '15px !important',\r\n verticalAlign: 'middle',\r\n backgroundColor: 'blue !important',\r\n border: 'unset !important',\r\n borderRadius: '4px !important',\r\n opacity: '90% !important',\r\n top: -2.5,\r\n position: 'relative !important',\r\n fontSize: '10px !important',\r\n },\r\n\r\n '& .business-name': {\r\n color: 'black !important',\r\n fontSize: '10px !important',\r\n lineHeight: '16px !important',\r\n padding: '4px 0px !important',\r\n },\r\n },\r\n\r\n placementShortHeadline: {\r\n display: 'inline-block',\r\n color: 'blue',\r\n padding: 4,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n '&:before': {\r\n content: '\" \"',\r\n border: 'solid gray',\r\n display: 'inline-block',\r\n padding: '2px',\r\n transform: 'rotate(45deg) translateY(-3px)',\r\n borderWidth: '0 1.5px 1.5px 0',\r\n marginRight: 10,\r\n position: 'relative',\r\n left: -4,\r\n },\r\n '&::after': {\r\n content: '\"*\"',\r\n display: 'inline',\r\n padding: 4,\r\n color: 'gray',\r\n position: 'relative',\r\n left: 4,\r\n },\r\n },\r\n\r\n placementDescription: {\r\n display: 'inline-block',\r\n color: 'black',\r\n padding: 4,\r\n },\r\n\r\n placementLogoContainer: {\r\n padding: [2, 8, 2, 8],\r\n '& .cropped-image-view': {\r\n borderRadius: '50%',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n","const getLinkedInSingleImageBaseStyles = () => ({\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n },\r\n placementCardHeader: undefined,\r\n placementCardPreview: undefined,\r\n placementCardFooter: undefined,\r\n placementLogo: undefined,\r\n placementCompanyName: undefined,\r\n placementPromoteText: undefined,\r\n placementImageContainer: undefined,\r\n placementIntroductoryText: undefined,\r\n placementHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementCallToAction: undefined,\r\n});\r\n\r\nexport const getImageExtensionPlacementBaseStyles = () => ({\r\n});\r\nexport const getLinkedInSingleImageDesktopStyles = theme => ({\r\n // base styles\r\n ...getLinkedInSingleImageBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n height: '100%',\r\n gap: '0px !important',\r\n paddingLeft: '0px !important',\r\n paddingRight: '0px !important',\r\n paddingBottom: '0px !important',\r\n '--fui-Card--size': '9.39px !important',\r\n },\r\n placementCardHeader: {\r\n marginBottom: '4.69px',\r\n paddingLeft: '9.39px',\r\n paddingRight: '9.39px',\r\n flexDirection: 'column', // Stack company name and promote text vertically\r\n alignItems: 'center', // Align to the start of the flex container\r\n '--fui-CardHeader--gap': '4.69px !important',\r\n },\r\n placementLogo: {\r\n width: '20px',\r\n height: '20px',\r\n },\r\n placementCompanyName: {\r\n color: '#323130',\r\n fontFamily: 'Segoe UI',\r\n fontSize: 8.216,\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n lineHeight: '11.737px',\r\n letterSpacing: '-0.293px',\r\n },\r\n placementPromoteText: {\r\n fontSize: '7.042px !important',\r\n color: '#323130',\r\n lineHeight: '11.737px !important',\r\n },\r\n placementIntroductoryText: {\r\n marginTop: '0px',\r\n paddingLeft: '9.39px',\r\n paddingRight: '9.39px',\r\n marginBottom: '4.69px',\r\n fontSize: '8.216px !important',\r\n },\r\n placementCardPreview: {\r\n display: 'flex',\r\n },\r\n placementImageContainer: {\r\n },\r\n placementCardFooter: {\r\n display: 'flex',\r\n paddingTop: '4.69px',\r\n paddingBottom: '4.69px',\r\n paddingLeft: '9.39px',\r\n paddingRight: '9.39px',\r\n borderWidth: '1px',\r\n justifyContent: 'space-between',\r\n background: '#ECF1F6',\r\n },\r\n placementHeadline: {\r\n margin: '0px !important',\r\n overflow: 'hidden !important',\r\n display: '-webkit-box !important',\r\n WebkitBoxOrient: 'vertical !important',\r\n WebkitLineClamp: '2 !important',\r\n padding: '0px !important',\r\n fontSize: '8.216px !important',\r\n fontWeight: '600 !important',\r\n color: '#323130 !important',\r\n },\r\n placementFinalUrl: {\r\n margin: '0px',\r\n padding: '0px',\r\n border: '0px',\r\n display: 'block !important',\r\n fontSize: '7.042px !important',\r\n color: '#323130 !important',\r\n },\r\n placementCallToAction: {\r\n cursor: 'pointer !important',\r\n textDecorationLine: 'none !important',\r\n minHeight: '22px !important',\r\n minWidth: '0px !important',\r\n borderRadius: '11.737px !important',\r\n textAlign: 'center !important',\r\n fontSize: '8.216px !important',\r\n fontWeight: '700 !important',\r\n lineHeight: '9.389px !important',\r\n boxShadow: '0 0 0 1px #0a66c2 !important',\r\n color: '#004182 !important',\r\n display: 'flex',\r\n height: 14.084,\r\n padding: '3.521px 7.042px',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: '#ECF1F6 !important',\r\n },\r\n\r\n});\r\n\r\nexport const getLinkedInSingleImageMobileStyles = theme => ({\r\n ...getLinkedInSingleImageDesktopStyles(theme),\r\n});\r\n\r\nexport const getLinkedInSingleImageMediumRectangleStyles = theme => ({\r\n // base styles\r\n ...getLinkedInSingleImageBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n height: '100%',\r\n '--fui-Card--size': '9.39px !important',\r\n },\r\n placementLogo: {\r\n width: '10px !important',\r\n height: '10px !important',\r\n },\r\n placementCompanyName: {\r\n color: '#323130 !important',\r\n fontFamily: 'Segoe UI !important',\r\n fontSize: '8.216px !important',\r\n fontStyle: 'normal !important',\r\n fontWeight: '600 !important',\r\n lineHeight: '11.737px !important',\r\n letterSpacing: '-0.293px !important',\r\n WebkitLineClamp: '1 !important',\r\n WebkitBoxOrient: 'vertical !important',\r\n marginLeft: '5px !important',\r\n },\r\n placementCardPreview: {\r\n display: 'flex !important',\r\n },\r\n placementCardFooter: {\r\n display: 'flex !important',\r\n flexDirection: 'column !important',\r\n paddingTop: '9.39px',\r\n gap: '9.39px !important',\r\n },\r\n placementHeadline: {\r\n color: '#323130 !important',\r\n fontFamily: 'Segoe UI !important',\r\n fontSize: '8.216px !important',\r\n fontStyle: 'normal !important',\r\n fontWeight: '700 !important',\r\n lineHeight: '11.737px !important',\r\n letterSpacing: '-0.293px !important',\r\n display: '-webkit-box !important',\r\n },\r\n placementCompanyMeta: {\r\n display: '-webkit-flex !important',\r\n },\r\n placementHeader: {\r\n display: '-webkit-flex !important',\r\n alignItems: 'flex-end',\r\n justifyContent: 'space-between',\r\n },\r\n placementCallToAction: {\r\n display: 'flex !important',\r\n padding: '2.004px 5.344px !important',\r\n justifyContent: 'center !important',\r\n alignItems: 'center !important',\r\n borderRadius: '2.725px !important',\r\n background: '#355996 !important',\r\n fontFamily: 'Segoe UI !important',\r\n fontSize: '8.216px !important',\r\n fontStyle: 'normal !important',\r\n fontWeight: '400 !important',\r\n lineHeight: '11px !important',\r\n color: '#FFFFFF !important',\r\n minWidth: '0px !important',\r\n },\r\n});\r\n\r\nexport const getLinkedInSingleImageMobileInterstitialStyles = theme => ({\r\n ...getLinkedInSingleImageMediumRectangleStyles(theme),\r\n\r\n placementIntroductoryText: {\r\n height: '60.891px !important',\r\n flexShrink: '0 !important',\r\n alignSelf: 'stretch !important',\r\n color: '#323130 !important',\r\n fontFamily: 'Segoe UI !important',\r\n fontSize: '8.216px !important',\r\n fontStyle: 'normal !important',\r\n fontWeight: '600 !important',\r\n lineHeight: '11.737px !important',\r\n letterSpacing: '-0.293px !important',\r\n },\r\n placementCompanyMeta: {\r\n display: '-webkit-flex !important',\r\n },\r\n placementHeader: {\r\n display: '-webkit-flex !important',\r\n justifyContent: 'space-between',\r\n flexDirection: 'column',\r\n gap: '5.87px',\r\n },\r\n});\r\n\r\nexport const getLinkedInSingleImageNativeStyles = theme => ({\r\n ...getLinkedInSingleImageMediumRectangleStyles(theme),\r\n\r\n placementCardHeader: {\r\n alignItems: 'center !important',\r\n flexDirection: 'column !important',\r\n '--fui-CardHeader--gap': '4.69px !important',\r\n },\r\n placementLogo: {\r\n width: '20px',\r\n height: '20px',\r\n },\r\n placementCompanyName: {\r\n color: '#323130',\r\n fontFamily: 'Segoe UI',\r\n fontSize: 8.216,\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n lineHeight: '11.737px',\r\n letterSpacing: '-0.293px',\r\n },\r\n placementHeader: {\r\n display: '-webkit-flex !important',\r\n justifyContent: 'space-between',\r\n flexDirection: 'column',\r\n gap: '5.87px',\r\n },\r\n placementPromoteText: {\r\n fontSize: '7.042px !important',\r\n color: '#323130',\r\n lineHeight: '11.737px !important',\r\n },\r\n placementIntroductoryText: {\r\n fontSize: '8.216px !important',\r\n },\r\n placementCardFooter: {\r\n paddingTop: '9.39px',\r\n justifyContent: 'space-between',\r\n flexDirection: 'row !important',\r\n },\r\n});\r\n","export const getBoostPlacementBaseStyles = () => ({\r\n placementCard: {\r\n border: '1px solid #c8c8c8',\r\n boxShadow: 'unset !important',\r\n borderRadius: '0px !important',\r\n },\r\n placementImageContainer: undefined,\r\n placementTextContainer: {\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n});\r\n\r\nexport const getBoostHeroImageCarouselStyles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n maxWidth: '40%',\r\n minWidth: 100,\r\n top: '25%',\r\n left: '12%',\r\n padding: 15,\r\n borderRadius: 1,\r\n color: '#333',\r\n backgroundColor: 'rgba(255, 255, 255, 0.85)',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementLongHeadline: {\r\n fontSize: 16,\r\n marginBottom: 4,\r\n fontWeight: 'bold',\r\n },\r\n\r\n placementDescription: {\r\n },\r\n\r\n placementCallToAction: {\r\n color: 'white',\r\n backgroundColor: '#0067b8',\r\n border: 'none',\r\n marginTop: 4,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostWindowsSpotlight191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n /*\r\n todo: setting position and top/left here to make it look exactly same as\r\n current preview but setting loation of placement in this level is not a\r\n good idea, as it may limit the usage of this component in other places\r\n */\r\n position: 'absolute !important',\r\n margin: '0 !important',\r\n left: '50%',\r\n top: '45% !important',\r\n transform: 'translate(-50%, -50%)',\r\n width: '444x !important',\r\n height: '250px !important',\r\n\r\n '& .hardcode-time': {\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n top: 40,\r\n left: '50%',\r\n color: 'white',\r\n transform: 'translate(-50%)',\r\n lineHeight: '22px',\r\n '& .time': {\r\n fontSize: 30,\r\n },\r\n '& .date': {\r\n fontSize: 7,\r\n paddingLeft: 5,\r\n },\r\n },\r\n },\r\n placementTextContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 12,\r\n left: 'unset',\r\n right: 10,\r\n bottom: 'unset',\r\n width: 130,\r\n height: 130,\r\n padding: 10,\r\n color: 'white',\r\n opacity: 0.8,\r\n fontSize: 8,\r\n lineHeight: '16px',\r\n borderRadius: 5,\r\n background: 'transparent',\r\n },\r\n placementCenterSection: {\r\n position: 'absolute',\r\n top: 118,\r\n left: 205,\r\n width: 60,\r\n fontSize: 14,\r\n },\r\n placementSearchIconCenter: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 21,\r\n width: 18,\r\n height: 18,\r\n },\r\n placementHotspotsCenterSection: {\r\n color: 'white',\r\n fontSize: 5,\r\n textAlign: 'center',\r\n marginTop: 13,\r\n lineHeight: '5px',\r\n },\r\n placementTopRightSection: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 25,\r\n width: 60,\r\n },\r\n placementCameraIcon: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 20,\r\n width: 18,\r\n height: 18,\r\n },\r\n placementLongHeadline: {\r\n color: 'white',\r\n fontSize: 5,\r\n textAlign: 'center',\r\n marginTop: 13,\r\n lineHeight: '5px',\r\n },\r\n placementDescription: {\r\n color: 'white',\r\n fontSize: 5,\r\n textAlign: 'center',\r\n marginTop: 2,\r\n lineHeight: '5px',\r\n },\r\n placementTopLeftSection: {\r\n position: 'absolute',\r\n top: 0,\r\n left: -280,\r\n width: 60,\r\n },\r\n placementSearchIconTopLeft: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 20,\r\n width: 18,\r\n height: 18,\r\n },\r\n placementHotspotsLeftSection: {\r\n color: 'white',\r\n fontSize: 5,\r\n textAlign: 'center',\r\n marginTop: 13,\r\n lineHeight: '5px',\r\n },\r\n placementWifiIcon: {\r\n position: 'absolute',\r\n top: 235,\r\n left: 410,\r\n width: 10,\r\n height: 10,\r\n },\r\n placementBatteryIcon: {\r\n position: 'absolute',\r\n top: 235,\r\n left: 425,\r\n width: 9,\r\n height: 9,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostDiscoverCard1x1Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '288px !important',\r\n height: 424,\r\n borderRadius: '5px !important',\r\n\r\n '& .hardcode-discover': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n color: 'rgb(50, 49, 48)',\r\n width: '100%',\r\n fontSize: 14,\r\n fontWeight: 600,\r\n paddingLeft: 10,\r\n borderBottom: '1px solid rgb(232, 232, 232)',\r\n padding: '12px 0px 12px 16px',\r\n lineHeight: 1.4,\r\n },\r\n },\r\n placementImageContainer: {\r\n position: 'absolute',\r\n top: 44,\r\n width: 256,\r\n height: 210,\r\n padding: '0px 24px',\r\n margin: '16px 16px 0px',\r\n },\r\n placementShortHeadline: {\r\n position: 'absolute',\r\n width: 256,\r\n top: 286,\r\n left: 16,\r\n color: 'black',\r\n fontSize: 16,\r\n fontWeight: 600,\r\n paddingBottom: 10,\r\n },\r\n placementDescription: {\r\n position: 'absolute',\r\n top: 314,\r\n left: 16,\r\n color: 'black',\r\n fontSize: 12,\r\n width: 256,\r\n },\r\n placementCallToAction: {\r\n position: 'absolute',\r\n top: 364,\r\n left: 16,\r\n border: 'none',\r\n padding: 0,\r\n fontSize: 12,\r\n borderRadius: 5,\r\n backgroundColor: 'transparent',\r\n height: 60,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostStartMenuStyles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '244px !important',\r\n height: 68,\r\n backgroundColor: '#262632 !important',\r\n },\r\n placementLogoContainer: {\r\n position: 'absolute',\r\n top: 40,\r\n left: 4,\r\n },\r\n placementShortHeadline: {\r\n position: 'absolute',\r\n left: 4,\r\n top: 8,\r\n width: 236,\r\n height: 16,\r\n fontSize: 12,\r\n fontWeight: 400,\r\n color: 'white',\r\n },\r\n placementLongHeadline: {\r\n position: 'absolute',\r\n left: 40,\r\n top: 35,\r\n color: 'white',\r\n fontSize: 12,\r\n width: 204,\r\n height: 32,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostActionStyles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '360px !important',\r\n height: 216,\r\n backgroundColor: '#e8e9eb !important',\r\n zIndex: 1,\r\n },\r\n placementLogoContainer: {\r\n position: 'absolute',\r\n top: 57,\r\n left: 35,\r\n width: 45,\r\n height: 45,\r\n zIndex: 3,\r\n },\r\n placementSuggestedContainer: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n width: 360,\r\n height: 40,\r\n },\r\n placementVectorIcon: {\r\n position: 'absolute',\r\n color: 'black',\r\n width: 16,\r\n height: 16,\r\n top: 16,\r\n left: 117,\r\n },\r\n placementSuggestedText: {\r\n position: 'absolute',\r\n color: 'black',\r\n fontSize: 14,\r\n lineHeight: '16px',\r\n fontWeight: 600,\r\n width: 81,\r\n height: 20,\r\n top: 15,\r\n left: 135,\r\n textAlign: 'center',\r\n },\r\n placementDetailsContainer: {\r\n position: 'absolute',\r\n left: 16,\r\n top: 40,\r\n width: 328,\r\n height: 160,\r\n backgroundColor: 'white',\r\n zIndex: 2,\r\n },\r\n placementShortHeadline: {\r\n position: 'absolute',\r\n left: 90,\r\n top: 16,\r\n color: 'black',\r\n width: 191,\r\n height: 20,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n lineHeight: '20px',\r\n paddingBottom: 5,\r\n zIndex: 3,\r\n },\r\n placementDescription: {\r\n position: 'absolute',\r\n left: 90,\r\n top: 37,\r\n color: 'black',\r\n fontSize: 12,\r\n width: 191,\r\n height: 67,\r\n fontWeight: 400,\r\n lineHeight: '20px',\r\n zIndex: 3,\r\n },\r\n placementActionContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n position: 'absolute',\r\n top: 150,\r\n left: 28,\r\n width: 305,\r\n height: 30,\r\n // margin: '0 10px',\r\n gap: 7,\r\n zIndex: 3,\r\n },\r\n placementCallToAction: {\r\n color: 'black',\r\n width: 149,\r\n height: 30,\r\n border: '0.93px outset rgba(0, 0, 0, 0.0878)',\r\n borderRadius: '3.72px',\r\n boxShadow: 'rgba(0, 0, 0, 0.2622) 0.1px 0.53px 0.1px 0.1px',\r\n padding: '0.93px',\r\n backgroundColor: 'white',\r\n },\r\n placementDismissAction: {\r\n color: 'black',\r\n width: 149,\r\n height: 30,\r\n border: '0.93px outset rgba(0, 0, 0, 0.0878)',\r\n borderRadius: '3.72px',\r\n boxShadow: 'rgba(0, 0, 0, 0.2622) 0.1px 0.53px 0.1px 0.1px',\r\n padding: '0.93px',\r\n backgroundColor: 'white',\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostBannerStyles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '600px !important',\r\n height: 35,\r\n },\r\n placementLogoContainer: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 10,\r\n transform: 'translateY(-50%)',\r\n },\r\n placementShortHeadline: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: 40,\r\n color: 'black',\r\n width: 220,\r\n fontSize: 12,\r\n transform: 'translateY(-50%)',\r\n paddingBottom: 5,\r\n },\r\n placementActionContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 1,\r\n bottom: 0,\r\n right: 30,\r\n },\r\n placementCallToAction: {\r\n color: 'white',\r\n border: 'none',\r\n padding: '5px 10px',\r\n borderRadius: 10,\r\n backgroundColor: '#0078d4',\r\n marginRight: 10,\r\n },\r\n placementDismissAction: {\r\n color: 'black',\r\n border: 'none',\r\n padding: '5px 10px',\r\n borderRadius: 10,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostProngFeed191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '300px !important',\r\n height: 304,\r\n background: 'linear-gradient(140.53deg, #F5F7E1 9.32%, #CDF0FF 58.45%) !important',\r\n borderRadius: '8px !important',\r\n border: '1px solid rgba(0, 0, 0, 0.0578)',\r\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.04)',\r\n },\r\n placementImageContainer: {\r\n position: 'absolute',\r\n top: 48,\r\n left: 16,\r\n width: 268,\r\n height: 140,\r\n },\r\n placementLogoContainer: {\r\n position: 'absolute',\r\n top: 16,\r\n left: 16,\r\n width: 16,\r\n height: 16,\r\n },\r\n placementBusinessNameContainer: {\r\n position: 'absolute',\r\n top: 16,\r\n left: 40,\r\n width: 28,\r\n height: 20,\r\n color: 'rgba(26, 26, 26, 1) !important',\r\n padding: '0 !important',\r\n },\r\n placementLongHeadline: {\r\n position: 'absolute',\r\n width: '268px !important',\r\n top: 200,\r\n left: 16,\r\n height: 72,\r\n color: 'rgba(26, 26, 26, 1)',\r\n fontSize: 18,\r\n fontWeight: 600,\r\n lineHeight: '23.94px',\r\n },\r\n placementCallToAction: {\r\n position: 'absolute',\r\n top: 272,\r\n left: 106,\r\n width: 91,\r\n height: 24,\r\n fontSize: 12,\r\n fontWeight: 400,\r\n color: 'rgba(26, 26, 26, 1)',\r\n background: 'rgba(255, 255, 255, 0.46)',\r\n border: '1px solid',\r\n borderImageSource: 'linear-gradient(180deg, rgba(0, 0, 0, 0.0578) 90.58%, rgba(0, 0, 0, 0.1622) 100%)',\r\n borderRadius: '100px',\r\n marginTop: 4,\r\n },\r\n placementDotsIcon: {\r\n position: 'absolute',\r\n top: 10,\r\n right: 10,\r\n width: 28,\r\n height: 28,\r\n },\r\n };\r\n};\r\n\r\nexport const getBoostCoachmark175x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostPlacementBaseStyles(theme);\r\n\r\n return {\r\n ...baseStyles,\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '280px !important',\r\n height: 300,\r\n },\r\n placementShortHeadline: {\r\n position: 'absolute',\r\n top: 180,\r\n left: 20,\r\n right: 20,\r\n color: 'black',\r\n fontWeight: 'bold',\r\n fontSize: 20,\r\n paddingBottom: 5,\r\n },\r\n placementDescription: {\r\n position: 'absolute',\r\n top: 210,\r\n left: 20,\r\n color: 'black',\r\n fontSize: 20,\r\n },\r\n placementCallToAction: {\r\n position: 'absolute',\r\n top: 260,\r\n left: 20,\r\n fontSize: 15,\r\n color: 'white',\r\n border: 'none',\r\n padding: '8px',\r\n borderRadius: 5,\r\n backgroundColor: '#0078d4',\r\n },\r\n };\r\n};\r\n\r\nexport const getResponsiveBoostWindowsSpotlight191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getBoostWindowsSpotlight191x100Styles(theme);\r\n\r\n return baseStyles;\r\n};\r\n","import { extend } from 'underscore';\r\n\r\nexport const getDisclaimerStyles = ({ styleOverrides }) => (e, { palette = {} }) => (\r\n {\r\n additionalLineDisclaimer: extend({\r\n color: palette.themePrimary,\r\n fontSize: '13px',\r\n lineHeight: '24px',\r\n paddingLeft: '2px',\r\n }, styleOverrides.additionalLineDisclaimer),\r\n\r\n popupDisclaimer: extend({\r\n '& .disclaimer-title': {\r\n backgroundColor: 'white',\r\n color: '#767676',\r\n fontSize: '13px',\r\n lineHeight: '24px',\r\n textDecoration: 'underline',\r\n paddingLeft: '2px',\r\n border: 'none',\r\n },\r\n }, styleOverrides.popupDisclaimer),\r\n\r\n disclaimerCallout: extend({\r\n '& .ms-Callout-main': {\r\n width: '250px',\r\n padding: '15px',\r\n },\r\n '& button.close': {\r\n backgroundColor: 'white',\r\n border: 'none',\r\n float: 'right',\r\n marginTop: '-7px',\r\n },\r\n '& .title': {\r\n color: '#767676',\r\n marginBottom: '10px',\r\n },\r\n '& .content': {\r\n marginBottom: '3px',\r\n },\r\n '& .disclaimer-url': {\r\n color: palette.themePrimary,\r\n fontSize: '13px',\r\n lineHeight: '24px',\r\n },\r\n }, styleOverrides.disclaimerCallout),\r\n }\r\n);\r\n","import {\r\n getBingSearchTextPlacementStyles,\r\n getBingSearchTextDesktopPlacementStyles,\r\n getBingSearchTextMobilePlacementStyles,\r\n} from './bing-search-ad-placements-styles';\r\n\r\nconst getResponsiveSearchAdPlacementBaseStyles = baseStyles => (\r\n {\r\n ...baseStyles,\r\n\r\n placementContentContainer: {\r\n ...baseStyles.placementContentContainer,\r\n\r\n display: 'flex',\r\n },\r\n\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n\r\n height: 'unset',\r\n minHeight: 'unset',\r\n padding: '8px 16px 16px 16px',\r\n },\r\n\r\n placementTextContainer: {\r\n ...baseStyles.placementTextContainer,\r\n\r\n cursor: 'unset',\r\n },\r\n\r\n placementLongHeadline: {\r\n ...baseStyles.placementLongHeadline,\r\n\r\n height: 'unset',\r\n minHeight: '28px',\r\n },\r\n\r\n placementDescriptionContainer: {\r\n ...baseStyles.placementDescriptionContainer,\r\n\r\n marginTop: '4px',\r\n },\r\n\r\n placementInlineItems: {\r\n ...baseStyles.placementInlineItems,\r\n\r\n display: 'block',\r\n\r\n '& *': {\r\n display: 'inline',\r\n },\r\n },\r\n }\r\n);\r\n\r\nexport const getResponsiveSearchAdPlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getResponsiveSearchAdPlacementBaseStyles(getBingSearchTextPlacementStyles(theme));\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n\r\n width: '530px',\r\n marginBottom: '16px',\r\n },\r\n\r\n placementImage: {\r\n ...baseStyles.placementImage,\r\n\r\n margin: '8px 4px',\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getResponsiveSearchAdDesktopPlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getResponsiveSearchAdPlacementBaseStyles(getBingSearchTextDesktopPlacementStyles(theme));\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n\r\n width: '530px',\r\n },\r\n\r\n placementImage: {\r\n ...baseStyles.placementImage,\r\n\r\n margin: '8px 16px 8px 4px',\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getResponsiveSearchAdMobilePlacementStyles = (theme) => {\r\n const { placementCard, bingSearchMobilePlacementRoot, ...baseStyles } = getResponsiveSearchAdPlacementBaseStyles(getBingSearchTextMobilePlacementStyles(theme));\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n\r\n width: '472px',\r\n },\r\n\r\n bingSearchMobilePlacementRoot: {\r\n ...bingSearchMobilePlacementRoot,\r\n\r\n width: '562px',\r\n marginBottom: '16px',\r\n },\r\n\r\n placementImage: {\r\n ...baseStyles.placementImage,\r\n\r\n margin: '8px 0px',\r\n },\r\n };\r\n return styles;\r\n};\r\n","// will replace mma-in-masn-v2-ad-placements-styles after ad preview refreshed GA\r\nexport const getMmaInMsanV2PlacementBaseStyles = () => ({\r\n placementCard: {\r\n // border: '1px solid #c8c8c8',\r\n // boxShadow: 'unset !important',\r\n // borderRadius: '0px !important',\r\n },\r\n placementImageContainer: undefined,\r\n placementTextContainer: undefined,\r\n placementInfoContainer: undefined,\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementLogoContainer: undefined,\r\n placementBusinessNameContainer: undefined,\r\n placementShortHeadline: undefined,\r\n businuessAndLogoContainer: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementCallToActionAsLink: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n businuessAndAdChoiceContainer: undefined,\r\n adsLabelClassName: undefined,\r\n headChoiceIconClassName: undefined,\r\n adsLabelContainerClassName: undefined,\r\n});\r\n\r\nexport const getMmaInMsanV2RefreshedMSANRiver191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '300px !important',\r\n height: 304,\r\n padding: '0px !important',\r\n border: '1px solid rgba(0, 0, 0, 0.05)',\r\n },\r\n\r\n placementImageContainer: {\r\n width: 300,\r\n height: 157,\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n placementTextContainer: {\r\n width: 300,\r\n height: 147,\r\n },\r\n\r\n placementInfoContainer: {\r\n height: 107,\r\n padding: '12px 16px 0',\r\n boxSizing: 'border-box',\r\n },\r\n\r\n businuessAndLogoContainer: {\r\n display: 'flex',\r\n marginBottom: 4,\r\n },\r\n\r\n placementLogoContainer: {\r\n height: 16,\r\n width: 16,\r\n marginRight: 8,\r\n '& .cropped-image-view': {\r\n borderRadius: '2px !important',\r\n '& img': {\r\n verticalAlign: 'top',\r\n },\r\n },\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'rgba(36, 36, 36,1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 600,\r\n fontSize: 20,\r\n lineHeight: '26px',\r\n marginBottom: 4,\r\n height: 52,\r\n },\r\n\r\n placementDescription: {\r\n color: 'rgba(36, 36, 36,1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 14,\r\n lineHeight: '20px',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 40,\r\n boxSizing: 'border-box',\r\n padding: '0px 16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n\r\n headChoiceIconClassName: {\r\n marginRight: 8,\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n flexGrow: 1,\r\n height: 16,\r\n },\r\n\r\n adsLabelClassName: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n },\r\n\r\n placementCallToAction: {\r\n border: '1px solid rgba(209, 209, 209, 1)',\r\n padding: '3px 8px',\r\n borderRadius: '4px',\r\n color: 'rgba(36, 36, 36, 1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n backgroundColor: 'transparent',\r\n },\r\n\r\n placementCallToActionAsLink: {\r\n border: 'none',\r\n color: 'rgba(35, 92, 207, 1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMSNRestoday124x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '306px !important',\r\n height: 100,\r\n borderRadius: '6px !important',\r\n boxShadow: '0px 0px 2.9px 0px rgba(0, 0, 0, 0.11), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13) !important',\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row-reverse !important',\r\n },\r\n },\r\n\r\n placementImageContainer: {\r\n boxSizing: 'border-box',\r\n width: 112,\r\n height: '100%',\r\n padding: '8px 8px 8px 0',\r\n ...baseStyles.placementImageContainer,\r\n '& .cropped-image-view': {\r\n borderRadius: '4px !important',\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n flexGrow: 1,\r\n height: '100%',\r\n },\r\n\r\n businuessAndLogoContainer: {\r\n marginBottom: 4,\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n placementInfoContainer: {\r\n height: 68,\r\n padding: '8px 8px 0',\r\n boxSizing: 'border-box',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 32,\r\n boxSizing: 'border-box',\r\n padding: '0px 8px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n flexGrow: 1,\r\n height: 16,\r\n },\r\n\r\n adsLabelClassName: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMSNCarousel169x100Styles = (theme) => {\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '628px !important',\r\n height: 372,\r\n borderRadius: '6px !important',\r\n boxShadow: 'none !important',\r\n },\r\n\r\n placementImageContainer: {\r\n width: '100%',\r\n height: '100%',\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: '100%',\r\n height: '194px',\r\n background: 'linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.54) 100%)',\r\n },\r\n\r\n placementInfoContainer: {\r\n paddingTop: '80px',\r\n height: '150px',\r\n boxSizing: 'border-box',\r\n },\r\n\r\n placementLongHeadline: {\r\n padding: '0px 16px',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '28px',\r\n lineHeight: '35px',\r\n color: 'rgba(255, 255, 255, 1)',\r\n display: '-webkit-box',\r\n '-webkit-box-orient': 'vertical',\r\n '-webkit-line-clamp': 2, /* Limit to 2 lines */\r\n overflow: 'hidden',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 44,\r\n boxSizing: 'border-box',\r\n padding: '0px 16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n marginRight: 8,\r\n height: 16,\r\n },\r\n\r\n adsLabelClassName: {\r\n borderColor: 'rgba(255, 255, 255, 0.3) !important',\r\n color: 'white !important',\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n flexGrow: 1,\r\n color: 'white',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMicrosoftEdgeCarousel201x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n borderRadius: '8px !important',\r\n width: '612px !important',\r\n height: 304,\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: '100%',\r\n height: '280px',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '178px !important',\r\n background: 'linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 50.03%, rgba(30, 30, 30, 0.34) 88.85%, rgba(0, 0, 0, 0.44) 100%)',\r\n },\r\n\r\n placementInfoContainer: {\r\n padding: '12px 16px 0px',\r\n minHeight: '62px',\r\n boxSizing: 'border-box',\r\n background: 'linear-gradient(360deg, rgba(0, 0, 0, 0.54) 5.47%, rgba(0, 0, 0, 0.54) 55.63%, rgba(0, 0, 0, 0.49) 78.44%, rgba(0, 0, 0, 0.475) 89.43%, rgba(0, 0, 0, 0.44) 100%)',\r\n },\r\n\r\n businuessAndLogoContainer: {\r\n display: 'flex',\r\n marginBottom: 8,\r\n },\r\n\r\n placementLogoContainer: {\r\n height: 16,\r\n width: 16,\r\n marginRight: 8,\r\n '& .cropped-image-view': {\r\n borderRadius: '2px !important',\r\n '& img': {\r\n verticalAlign: 'top',\r\n },\r\n },\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n color: 'white',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'white',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '20px',\r\n lineHeight: '26px',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 40,\r\n boxSizing: 'border-box',\r\n padding: '0px 16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n background: 'var(--backplate-text-backplate-on-image-text-backplate-54451, rgba(0, 0, 0, 0.54))',\r\n },\r\n\r\n headChoiceIconClassName: {\r\n marginRight: 8,\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n flexGrow: 1,\r\n height: 16,\r\n },\r\n\r\n adsLabelClassName: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n borderColor: 'rgba(255, 255, 255, 0.3) !important',\r\n color: 'white !important',\r\n },\r\n\r\n placementCallToAction: {\r\n border: '1px solid',\r\n borderImageSource: 'linear-gradient(180deg, rgba(0, 0, 0, 0.0578) 90.58%, rgba(0, 0, 0, 0.1622) 100%)',\r\n padding: '3px 8px',\r\n borderRadius: '4px',\r\n color: 'rgba(255, 255, 255, 1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n backgroundColor: 'rgba(255, 255, 255, 0.15)',\r\n },\r\n\r\n placementCallToActionAsLink: {\r\n border: 'none',\r\n color: 'white',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n backgroundColor: 'transparent',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMSNPartnerStripe153x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '306px !important',\r\n height: 300,\r\n borderRadius: '4px !important',\r\n boxShadow: '0px 0px 2.9px 0px rgba(0, 0, 0, 0.11), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13) !important',\r\n },\r\n\r\n placementImageContainer: {\r\n height: 200,\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n placementInfoContainer: {\r\n padding: '8px 8px 0px',\r\n marginBottom: 24,\r\n height: 52,\r\n boxSizing: 'border-box',\r\n },\r\n\r\n placementLongHeadline: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n color: 'rgba(36, 36, 36, 1)',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n padding: '0px 8px',\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: 'rgba(36, 36, 36, 1)',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMSANBanner2x1Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '396px !important',\r\n height: 100,\r\n borderRadius: '6px !important',\r\n boxShadow: '0px 0px 2.9px 0px rgba(0, 0, 0, 0.11), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13) !important',\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row !important',\r\n },\r\n },\r\n\r\n placementImageContainer: {\r\n width: 200,\r\n height: 100,\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n height: 100,\r\n },\r\n\r\n placementInfoContainer: {\r\n padding: '8px 8px 0',\r\n marginBottom: 20,\r\n height: 48,\r\n boxSizing: 'border-box',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 32,\r\n boxSizing: 'border-box',\r\n padding: '0px 8px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n marginRight: 6,\r\n height: 16,\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMicrosoftEdgeMobile1x1Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n\r\n return {\r\n\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '398px !important',\r\n height: 145,\r\n padding: '16px',\r\n background: '#fff',\r\n borderRadius: '4px !important',\r\n border: '0.5px solid var(--Neutral-Stroke-3-Rest, rgba(240, 240, 240, 1))',\r\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.04) !important',\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row-reverse !important',\r\n },\r\n },\r\n\r\n placementImageContainer: {\r\n width: 114,\r\n height: 114,\r\n marginLeft: 16,\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n businuessAndLogoContainer: {\r\n display: 'flex',\r\n marginBottom: 4,\r\n },\r\n\r\n placementLogoContainer: {\r\n height: 16,\r\n width: 16,\r\n marginRight: 4,\r\n '& .cropped-image-view': {\r\n borderRadius: '2px !important',\r\n '& img': {\r\n verticalAlign: 'top',\r\n },\r\n },\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n placementTextContainer: {\r\n flexGrow: 1,\r\n },\r\n\r\n placementInfoContainer: {\r\n marginBottom: 18,\r\n height: 80,\r\n },\r\n\r\n placementShortHeadline: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(36, 36, 36,1)',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n height: 16,\r\n boxSizing: 'border-box',\r\n padding: '0px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n\r\n adsLabelContainerClassName: {\r\n flexGrow: 1,\r\n height: 16,\r\n },\r\n\r\n adsLabelClassName: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n },\r\n };\r\n};\r\n\r\nexport const getMmaInMsanV2RefreshedMSANRectangle191x100Styles = (theme) => {\r\n // base styles\r\n const baseStyles = getMmaInMsanV2PlacementBaseStyles(theme);\r\n return {\r\n placementCard: {\r\n ...baseStyles.placementCard,\r\n width: '300px !important',\r\n height: 250,\r\n borderRadius: '6px !important',\r\n },\r\n\r\n placementImageContainer: {\r\n height: 157,\r\n ...baseStyles.placementImageContainer,\r\n },\r\n\r\n placementTextContainer: {\r\n padding: '8px 16px',\r\n },\r\n\r\n placementInfoContainer: {\r\n width: 224,\r\n paddingTop: '6px',\r\n height: 77,\r\n boxSizing: 'border-box',\r\n },\r\n\r\n businuessAndLogoContainer: {\r\n display: 'flex',\r\n marginBottom: 4,\r\n },\r\n\r\n placementLogoContainer: {\r\n width: 16,\r\n marginRight: 4,\r\n '& .cropped-image-view': {\r\n borderRadius: '2px !important',\r\n '& img': {\r\n verticalAlign: 'top',\r\n },\r\n },\r\n },\r\n\r\n placementBusinessNameContainer: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n color: 'rgba(97, 97, 97, 1)',\r\n },\r\n\r\n placementShortHeadline: {\r\n color: 'rgba(26, 26, 26, 1)',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '18px',\r\n lineHeight: '19px',\r\n },\r\n\r\n smallSizeHeadline: {\r\n fontSize: '14px',\r\n },\r\n\r\n customizedArea: {\r\n position: 'absolute',\r\n right: '16px',\r\n bottom: '28.5px',\r\n },\r\n\r\n placementDescription: {\r\n marginTop: 4,\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '400',\r\n fontZize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(26, 26, 26, 1)',\r\n },\r\n\r\n businuessAndAdChoiceContainer: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n width: '16px',\r\n height: '16px',\r\n borderBottomLeftRadius: '5px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: 'rgba(255, 255, 255, 0.7)',\r\n },\r\n };\r\n};\r\n","export const getOutlookMobileRefreshedPlacementStyles = () => {\r\n const styles = {\r\n outlookWebCardRoot: {\r\n margin: 'auto',\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflowX: 'auto',\r\n },\r\n\r\n placementCard: {\r\n width: 375,\r\n height: 85,\r\n padding: '10px 16px 10px 0px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n height: '100%',\r\n },\r\n\r\n '&:hover': {\r\n backgroundColor: 'rgba(245, 245, 245, 1)',\r\n },\r\n },\r\n\r\n unreadClassName: {\r\n margin: '0px 4px',\r\n height: 8,\r\n width: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n display: 'block',\r\n position: 'relative',\r\n height: '100%',\r\n width: 293,\r\n },\r\n\r\n adsLabelClassName: {\r\n position: 'absolute',\r\n right: 26,\r\n top: 3,\r\n width: 24,\r\n height: '18px !important',\r\n borderRadius: '2px !important',\r\n border: '1px solid rgba(0, 120, 212, 1) !important',\r\n padding: '0px 4px !important',\r\n boxSizing: 'border-box !important',\r\n textAlign: 'center !important',\r\n fontWeight: '400 !important',\r\n fontSize: '12px !important',\r\n lineHeight: '16px !important',\r\n color: 'rgba(0, 120, 212, 1) !important',\r\n },\r\n\r\n threeDot: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontFamily: 'Segoe UI',\r\n fontSize: 14,\r\n fontWeight: 600,\r\n lineHeight: '20px',\r\n color: 'rgba(15, 108, 189, 1)',\r\n },\r\n\r\n descriptionWithAction: {\r\n display: 'flex',\r\n flexWrap: 'nowrap',\r\n alignItems: 'center',\r\n },\r\n\r\n placementCallToAction: {\r\n flexShrink: 0,\r\n height: '24px',\r\n borderRadius: '4px',\r\n border: '1px solid rgba(209, 209, 209, 1)',\r\n backgroundColor: 'transparent',\r\n padding: '0px 8px',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: 12,\r\n lineHeight: '22px',\r\n color: 'rgba(36, 36, 36, 1)',\r\n marginLeft: '4px',\r\n boxSizing: 'border-box',\r\n },\r\n\r\n placementDescription: {\r\n color: 'rgba(97, 97, 97, 1)',\r\n fontSize: 14,\r\n lineHeight: '20px',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n flexGrow: 1,\r\n },\r\n\r\n placementLogoContainer: {\r\n width: 38,\r\n marginRight: 13,\r\n '& .cropped-image-view': {\r\n borderRadius: '50% !important',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getOutlookWebRefreshedPlacementStyles = () => {\r\n const styles = {\r\n outlookWebCardRoot: {\r\n margin: 'auto',\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n overflowX: 'auto',\r\n },\r\n\r\n placementCard: {\r\n width: 1089,\r\n height: 36,\r\n borderRadius: 0,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexShrink: 0,\r\n alignItems: 'center',\r\n backgroundColor: 'white',\r\n borderBottom: '1px solid var(--Neutral-colors-neutralLight, rgba(240, 240, 240, 1))',\r\n boxShadow: '0px -1px 0px 0px rgba(240, 240, 240, 1) inset',\r\n paddingRight: 28,\r\n boxSizing: 'border-box',\r\n\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n height: '100%',\r\n flexGrow: 1,\r\n },\r\n },\r\n\r\n unreadClassName: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n width: 28,\r\n '& .unread-flag': {\r\n height: '100%',\r\n width: '4px',\r\n backgroundColor: 'rgba(15, 108, 189, 1)',\r\n content: '',\r\n display: 'block',\r\n },\r\n\r\n '& .unread-arrow': {\r\n width: 16,\r\n height: 16,\r\n marginLeft: 2,\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n flexGrow: 1,\r\n padding: '8px 4px 8px 8px',\r\n boxSizing: 'border-box',\r\n\r\n '& .logo-and-businessname-container': {\r\n display: 'inline-block',\r\n position: 'relative',\r\n },\r\n },\r\n\r\n adsLabelClassName: {\r\n position: 'absolute',\r\n left: 176,\r\n top: 9,\r\n width: 24,\r\n height: '18px !important',\r\n border: '1px solid rgba(0, 120, 212, 1) !important',\r\n padding: '0px 4px !important',\r\n boxSizing: 'border-box !important',\r\n textAlign: 'center !important',\r\n borderRadius: '2px !important',\r\n fontWeight: '400 !important',\r\n fontSize: '12px !important',\r\n lineHeight: '16px !important',\r\n color: 'rgba(0, 120, 212, 1) !important',\r\n },\r\n\r\n threeDot: {\r\n position: 'absolute',\r\n left: 208,\r\n top: 9,\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n width: 224,\r\n marginRight: 16,\r\n },\r\n\r\n placementShortHeadline: {\r\n marginRight: 8,\r\n fontFamily: 'Segoe UI',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(15, 108, 189, 1)',\r\n },\r\n\r\n placementDescription: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(97, 97, 97, 1)',\r\n },\r\n\r\n placementLogoContainer: {\r\n width: 28,\r\n '& .cropped-image-view': {\r\n borderRadius: '50% !important',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getPlacementCardStyles } from '../styles';\r\n\r\nconst MMAPlacementCardImpl = ({\r\n isEnabled,\r\n url,\r\n width, // in pixel\r\n height, // in pixel\r\n children,\r\n mmaPlacementCardClassName,\r\n classes,\r\n isAdPreviewRefreshEnabled,\r\n}) => {\r\n const styles = useMemo(() => ((width || height) ? ({\r\n width: width ? `${width}px` : undefined,\r\n height: height ? `${height}px` : undefined,\r\n }) : undefined), [height, width]);\r\n\r\n return (\r\n
\r\n {url && (\r\n \r\n {children}\r\n \r\n )}\r\n {!url && (\r\n \r\n {children}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nMMAPlacementCardImpl.propTypes = {\r\n isEnabled: PropTypes.bool,\r\n url: PropTypes.string,\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n children: PropTypes.node.isRequired,\r\n mmaPlacementCardClassName: PropTypes.string,\r\n classes: PropTypes.shape({\r\n mmaPlacementCardRoot: PropTypes.string,\r\n mmaPlacementCardDisabled: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nMMAPlacementCardImpl.defaultProps = {\r\n isEnabled: true,\r\n url: undefined,\r\n width: undefined,\r\n height: undefined,\r\n mmaPlacementCardClassName: undefined,\r\n};\r\n\r\nexport const MMAPlacementCard = withUAPLThemedStyles(\r\n MMAPlacementCardImpl,\r\n getPlacementCardStyles,\r\n { componentName: 'MMAPlacementCard ' }\r\n);\r\n","export const getPlacementCardStyles = (/* theme */) => ({\r\n mmaRefreshedPlacementCardRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n // flex: 1,\r\n alignItems: 'center',\r\n\r\n position: 'relative',\r\n boxSizing: 'border-box',\r\n overflow: 'hidden',\r\n boxShadow: '0px 0px 2px 0px rgba(0, 0, 0, 0.12), 0px 2px 4px 0px rgba(0, 0, 0, 0.14)',\r\n borderRadius: 8,\r\n background: '#fff',\r\n margin: 'auto',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n mmaPlacementCardRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n // flex: 1,\r\n alignItems: 'center',\r\n\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n borderRadius: 5.11,\r\n background: '#fff',\r\n margin: 'auto',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n mmaPlacementCardDisabled: {\r\n opacity: 0.5,\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nexport const PlacementContentContainer = ({\r\n finalUrl,\r\n displayUrl,\r\n isClickDisabled,\r\n placementContentContainerClassName,\r\n children,\r\n}) => {\r\n if (isClickDisabled) {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nPlacementContentContainer.propTypes = {\r\n finalUrl: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n isClickDisabled: PropTypes.bool,\r\n placementContentContainerClassName: PropTypes.string,\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nPlacementContentContainer.defaultProps = {\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n isClickDisabled: false,\r\n placementContentContainerClassName: undefined,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getAdLabelStyles } from '../styles';\r\n\r\nconst AdLabelImpl = ({\r\n i18n, adsLabelClassName, classes, isAdPreviewRefreshEnabled,\r\n}) => (\r\n
\r\n {i18n.getString('Ad')}\r\n
\r\n);\r\n\r\nAdLabelImpl.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n adsLabelClassName: PropTypes.string,\r\n classes: PropTypes.shape({\r\n adLabelRoot: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nAdLabelImpl.defaultProps = {\r\n adsLabelClassName: undefined,\r\n};\r\n\r\nexport const AdLabel = withUAPLThemedStyles(\r\n AdLabelImpl,\r\n getAdLabelStyles,\r\n { componentName: 'AdLabel' }\r\n);\r\n","export const getAdLabelStyles = (/* theme */) => ({\r\n adLabelRoot: {\r\n position: 'absolute',\r\n backgroundColor: 'white', // palette.white,\r\n color: 'black', // color: palette.black,\r\n fontSize: 11,\r\n borderRadius: 5,\r\n padding: '1.2px 6px 1.8px 6px',\r\n margin: 7,\r\n opacity: '90%',\r\n },\r\n\r\n adLabelRefreshedRoot: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n borderRadius: '4px',\r\n border: '0.5px solid rgba(26, 26, 26, 0.3)',\r\n padding: '1px 4px',\r\n height: 16,\r\n boxSizing: 'border-box',\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 400,\r\n fontSize: '11px',\r\n lineHeight: '12px',\r\n color: 'rgba(43, 43, 43, 0.8)', // color: palette.black,\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getBusinessNameWithAdLabelStyles } from '../styles';\r\n\r\nconst adsIconImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAotJREFUWIW9lrFWGlEQhr+5cEzLG2R9AxBTpMM6jWBSUAlPID4B+ATKE0gqz4mH3Sq1WOWc6EregE2bxjUdJjApUBS4wC4L+bu9d/b+387cnTMCQNtvIBwBIHT4O2zy6V2H/yCh7VcQzi1bHaRfpfg+2CSAwcihfUsL6FYPzz/H++ZsCkBw/XsgEyF0Ixkx0cxhUxkxlrUAzD5pKaC0ZjmorBNEcH2dXNEaxd3m+Pmi6/Bm4IFk55zQgseTVUtjgHBiRc2PiedyLqC0m0OpgsyaJMyIAQmXhwEH+Ralne2lIJd+Iw6I7Q5EBTm2gqSoo1tXXPqN9QJ4XQfPP8W9PXwCOaMvewg2I4cUdVy/N45PBOB1HXTYRamBtMaHlnMBxfwJfbNt/WPAGcXPB4lTgpd+ITJZ43Iu4CBfXQUkGkAxFzylOgDtEJqmNS4OyJfvWQDBveuBvvoiKVDauY4EtkwXXYc36oHae8hguBe9BG2/gevf4/o9zrvR2nc5FyCyx3SveVZKTqMDjOaFDOCQGSy82ZaX5/Qayax2CcGe0ml5NwVUryZL/EpDPUvHAIgu76YAqTqqBVBLgHbANPiYv14vQNuvYORwqXEpP77k6wFo+xVE6qAOGs14PQDe7RFqaqMaxzNOBqAmi3vXQ+cZE4BUFhknA5jXWEadskFp93PUk9KgEWfChQpRzvhtmlRz0eaLF4CpoVSGWcCWunAmNoHxa4BJqdTwbgFxAAcICc0xw0EVY06fmkqI0uLxsUk52Zg+O5RapZVxXb/eveWXPKz6xdNKY0/tpPp/XkryYefnOoyftWwoDUErSdO8GEDUNjiA0uLBbMf5pVZRGkwTHWYR9kE7qHSS3Oq4+gfBZCnchNpiDQAAAABJRU5ErkJggg==';\r\n\r\nexport const BusinessNameWithAdsLabelImpl = ({\r\n businessName,\r\n showAdsLabel,\r\n showAdsIcon,\r\n i18n,\r\n rootClassName,\r\n classes,\r\n isAdPreviewRefreshEnabled,\r\n}) => (\r\n
\r\n {\r\n showAdsLabel && {i18n.getString(_TL_('Ad'))}\r\n }\r\n {\r\n businessName && {businessName}\r\n }\r\n {\r\n showAdsIcon && \"icon\"\r\n }\r\n
\r\n);\r\n\r\nBusinessNameWithAdsLabelImpl.propTypes = {\r\n businessName: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n showAdsLabel: PropTypes.bool,\r\n rootClassName: PropTypes.string,\r\n classes: PropTypes.shape({\r\n businessNameWithAdsLabelRoot: PropTypes.string,\r\n }).isRequired,\r\n showAdsIcon: PropTypes.bool,\r\n};\r\n\r\nBusinessNameWithAdsLabelImpl.defaultProps = {\r\n businessName: undefined,\r\n rootClassName: undefined,\r\n showAdsLabel: false,\r\n showAdsIcon: false,\r\n};\r\n\r\nexport const BusinessNameWithAdsLabel = withUAPLThemedStyles(\r\n BusinessNameWithAdsLabelImpl,\r\n getBusinessNameWithAdLabelStyles,\r\n { componentName: 'BusinessNameWithAdsLabel ' }\r\n);\r\n","export const getBusinessNameWithAdLabelStyles = (/* theme */) => ({\r\n businessNameWithAdsLabelRoot: {\r\n padding: [1, 0],\r\n overflow: 'hidden',\r\n marginTop: 9,\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n color: '#333', // color: palette.black,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n\r\n '& .ads-label': {\r\n position: 'relative',\r\n padding: '.8px 4px',\r\n margin: '0 5px 0 0',\r\n background: 'transparent',\r\n color: '#78718a',\r\n lineHeight: 1.364,\r\n fontSize: '10px',\r\n fontWeight: '400',\r\n fontFamily: 'Segoe UI,Segoe WP,Arial,Sans-Serif',\r\n border: '.5px solid #78718a',\r\n borderRadius: '4px',\r\n },\r\n\r\n '& .business-name': {\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n color: '#333',\r\n fontSize: 11,\r\n lineHeight: 1.364,\r\n padding: '1px 0',\r\n marginTop: 9,\r\n },\r\n },\r\n\r\n businuessNameRefreshed: {\r\n fontFamily: 'Segoe UI',\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n color: 'rgba(0, 0, 0, 1)',\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getPlacementGradientStyles } from '../styles';\r\n\r\nconst GradientImpl = ({\r\n gradientClassName, classes,\r\n}) => (\r\n
\r\n);\r\n\r\nGradientImpl.propTypes = {\r\n gradientClassName: PropTypes.string,\r\n classes: PropTypes.shape({\r\n placementCardGradientRoot: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nGradientImpl.defaultProps = {\r\n gradientClassName: undefined,\r\n};\r\n\r\nexport const PlacementGradient = withUAPLThemedStyles(\r\n GradientImpl,\r\n getPlacementGradientStyles,\r\n { componentName: 'PlacementGradient ' }\r\n);\r\n","export const getPlacementGradientStyles = (/* theme */) => ({\r\n placementCardGradientRoot: {\r\n display: 'block',\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const withLink = (WrappedComponent) => {\r\n const HoC = React.memo(props => (\r\n \r\n \r\n \r\n ));\r\n\r\n HoC.propTypes = {\r\n finalUrl: PropTypes.string.isRequired,\r\n };\r\n\r\n return HoC;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { MultiLineEllipsisText } from '@bingads-webui-react/multiline-ellipsis';\r\nimport { withLink } from './with-link';\r\n\r\nexport const PlacementText = React.forwardRef(({\r\n text,\r\n isMultiLine,\r\n placementTextClassName,\r\n}, ref) => (\r\n isMultiLine ?\r\n : (\r\n
\r\n {text}\r\n
\r\n )\r\n));\r\n\r\nPlacementText.propTypes = {\r\n text: PropTypes.string,\r\n isMultiLine: PropTypes.bool.isRequired,\r\n placementTextClassName: PropTypes.string,\r\n};\r\n\r\nPlacementText.defaultProps = {\r\n placementTextClassName: undefined,\r\n text: undefined,\r\n};\r\n\r\n\r\n// --------------------------------------------------------------------------------\r\nexport const PlacementHeadline = React.forwardRef(({\r\n headlineText,\r\n isMultiLine,\r\n placementHeadlineClassName,\r\n}, ref) => (\r\n \r\n));\r\n\r\nPlacementHeadline.propTypes = {\r\n headlineText: PropTypes.string,\r\n isMultiLine: PropTypes.bool,\r\n placementHeadlineClassName: PropTypes.string,\r\n};\r\n\r\nPlacementHeadline.defaultProps = {\r\n headlineText: undefined,\r\n isMultiLine: false,\r\n placementHeadlineClassName: undefined,\r\n};\r\n\r\nexport const PlacementHeadlineWithLink = withLink(PlacementHeadline);\r\n\r\n\r\n// --------------------------------------------------------------------------------\r\nexport const PlacementFinalUrl = React.forwardRef(({\r\n isMultiLine,\r\n finalUrl,\r\n displayUrl,\r\n placementFinalUrlClassName,\r\n}, ref) => (\r\n \r\n));\r\n\r\nPlacementFinalUrl.propTypes = {\r\n finalUrl: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n isMultiLine: PropTypes.bool,\r\n placementFinalUrlClassName: PropTypes.string,\r\n};\r\n\r\nPlacementFinalUrl.defaultProps = {\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n placementFinalUrlClassName: undefined,\r\n isMultiLine: false,\r\n};\r\n\r\nexport const PlacementFinalUrlWithLink = withLink(PlacementFinalUrl);\r\n\r\n\r\n// --------------------------------------------------------------------------------\r\nexport const PlacementDescription = React.forwardRef(({\r\n description,\r\n isMultiLine,\r\n placementDescriptionClassName,\r\n}, ref) => (\r\n \r\n));\r\n\r\nPlacementDescription.propTypes = {\r\n description: PropTypes.string,\r\n isMultiLine: PropTypes.bool,\r\n placementDescriptionClassName: PropTypes.string,\r\n};\r\n\r\nPlacementDescription.defaultProps = {\r\n description: undefined,\r\n placementDescriptionClassName: undefined,\r\n isMultiLine: false,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nexport const PlacementAction = ({\r\n actionText,\r\n placementActionClassName,\r\n}) => (actionText ?\r\n : null\r\n);\r\n\r\nPlacementAction.propTypes = {\r\n actionText: PropTypes.string,\r\n placementActionClassName: PropTypes.string,\r\n};\r\n\r\nPlacementAction.defaultProps = {\r\n actionText: undefined,\r\n placementActionClassName: undefined,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { Image } from '@fluentui/react';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nexport const PlacementImage = ({\r\n i18n,\r\n image,\r\n enableCrop,\r\n previewImageAspectRatio,\r\n previewImageHeight,\r\n placementImageClassName,\r\n}) => {\r\n if (image && image.src) {\r\n if (enableCrop) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return ();\r\n }\r\n return null;\r\n};\r\n\r\nPlacementImage.propTypes = {\r\n classes: PropTypes.shape({\r\n placementImage: PropTypes.string,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n image: PropTypes.shape({\r\n src: PropTypes.string,\r\n width: PropTypes.number,\r\n height: PropTypes.number,\r\n cropSettings: PropTypes.shape({\r\n SourceWidth: PropTypes.number,\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n }),\r\n }),\r\n enableCrop: PropTypes.bool,\r\n previewImageAspectRatio: PropTypes.number,\r\n previewImageHeight: PropTypes.number,\r\n placementImageClassName: PropTypes.string,\r\n};\r\n\r\nPlacementImage.defaultProps = {\r\n image: {},\r\n enableCrop: false,\r\n previewImageAspectRatio: 1.78,\r\n previewImageHeight: 100,\r\n placementImageClassName: '',\r\n};\r\n","import { first, isEmpty } from 'underscore';\r\nimport React, { useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { Link, Callout, DirectionalHint, getId } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getDisclaimerStyles } from '../styles';\r\n\r\nexport const AdditionalLineDisclaimer = React.forwardRef(({\r\n i18n,\r\n disclaimer,\r\n styleOverrides,\r\n}, ref) => {\r\n const classes = useDefaultStyles(getDisclaimerStyles({ styleOverrides }));\r\n\r\n return !isEmpty(disclaimer) && disclaimer.DisclaimerLayout === 'AdditionalLine' ? (\r\n \r\n {i18n.getString(_TL_('More Info'))}\r\n \r\n ) : null;\r\n});\r\n\r\nAdditionalLineDisclaimer.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n disclaimer: PropTypes.shape({\r\n DisclaimerLayout: PropTypes.string,\r\n FinalUrls: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nAdditionalLineDisclaimer.defaultProps = {\r\n disclaimer: {},\r\n styleOverrides: {},\r\n};\r\n\r\nexport const PopupDisclaimer = ({\r\n i18n,\r\n disclaimer,\r\n styleOverrides,\r\n}) => {\r\n const classes = useDefaultStyles(getDisclaimerStyles({ styleOverrides }));\r\n const [showCallout, setShowCallout] = useState(false);\r\n const ref = useRef();\r\n\r\n return !isEmpty(disclaimer) && disclaimer.DisclaimerLayout === 'Popup' ? (\r\n
\r\n setShowCallout(!showCallout)}\r\n ref={ref}\r\n >\r\n {disclaimer.Title}\r\n \r\n {showCallout &&\r\n setShowCallout(false)}\r\n >\r\n \r\n
\r\n {i18n.getString(_TL_('Disclaimer'))}\r\n
\r\n
\r\n {disclaimer.PopupText}\r\n
\r\n \r\n {i18n.getString('Learn more')}\r\n \r\n \r\n }\r\n
\r\n ) : null;\r\n};\r\n\r\nPopupDisclaimer.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n disclaimer: PropTypes.shape({\r\n DisclaimerLayout: PropTypes.string,\r\n Title: PropTypes.string,\r\n PopupText: PropTypes.string,\r\n FinalUrls: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n styleOverrides: PropTypes.shape({}),\r\n};\r\n\r\nPopupDisclaimer.defaultProps = {\r\n disclaimer: {},\r\n styleOverrides: {},\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nexport const BusinessNameWithLogo = ({\r\n businessName,\r\n showLogo,\r\n logo,\r\n logoHeight,\r\n classes,\r\n}) => (\r\n
\r\n {showLogo && logo && (\r\n
\r\n \r\n
\r\n )}\r\n {businessName &&
{businessName}
}\r\n
\r\n);\r\n\r\nBusinessNameWithLogo.propTypes = {\r\n businessName: PropTypes.string,\r\n showLogo: PropTypes.bool.isRequired,\r\n classes: PropTypes.shape({\r\n businuessAndLogoContainer: PropTypes.string,\r\n placementLogoContainer: PropTypes.string,\r\n placementBusinessNameContainer: PropTypes.string,\r\n }).isRequired,\r\n logoHeight: PropTypes.number,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n};\r\n\r\nBusinessNameWithLogo.defaultProps = {\r\n businessName: undefined,\r\n logoHeight: 16,\r\n logo: undefined,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { PlacementAction } from './placement-action';\r\nimport { AdLabel } from './ad-label';\r\n\r\nconst ChoiceIcon = ({ headChoiceIconClassName }) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst ChoiceIconBright = ({ headChoiceIconClassName }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const BusinessNameWithChoiceIcon = ({\r\n businessName,\r\n showBusinessName,\r\n showAdIcon,\r\n showChoiceIcon,\r\n showCallToAction,\r\n callToAction,\r\n showCallToActionAsLink,\r\n classes,\r\n i18n,\r\n showBrightStyleChoiceIcon,\r\n}) => {\r\n const showChoiceIconAhead = showCallToAction && callToAction;\r\n\r\n return (\r\n
\r\n {showChoiceIconAhead && showChoiceIcon && (showBrightStyleChoiceIcon ? : )}\r\n {showAdIcon && (\r\n
\r\n )}\r\n {showBusinessName && businessName &&
{businessName}
}\r\n {!showChoiceIconAhead && showChoiceIcon && (showBrightStyleChoiceIcon ? : )}\r\n {showCallToAction && callToAction && }\r\n
\r\n );\r\n};\r\n\r\nBusinessNameWithChoiceIcon.propTypes = {\r\n businessName: PropTypes.string,\r\n showBusinessName: PropTypes.bool.isRequired,\r\n showAdIcon: PropTypes.bool.isRequired,\r\n showChoiceIcon: PropTypes.bool.isRequired,\r\n showCallToAction: PropTypes.bool,\r\n callToAction: PropTypes.string,\r\n classes: PropTypes.shape({\r\n adsLabelClassName: PropTypes.string,\r\n placementCallToAction: PropTypes.string,\r\n }).isRequired,\r\n showCallToActionAsLink: PropTypes.bool,\r\n};\r\n\r\nBusinessNameWithChoiceIcon.defaultProps = {\r\n businessName: undefined,\r\n showCallToAction: false,\r\n callToAction: undefined,\r\n showCallToActionAsLink: false,\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getLargeAdChoiceIconStyles } from '../styles';\r\n\r\nconst CircleRightArrowImpl = ({ classes, customizedClassName }) => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n\r\nexport const CircleRightArrow = withUAPLThemedStyles(\r\n CircleRightArrowImpl,\r\n getLargeAdChoiceIconStyles,\r\n { componentName: 'LargeChoiceIcon' }\r\n);\r\n","export const getLargeAdChoiceIconStyles = (/* theme */) => ({\r\n largeIconRoot: {\r\n width: 36,\r\n height: 36,\r\n backgroundColor: 'rgba(33, 105, 235, 1)',\r\n boxShadow: '0px 3px 6px 0px rgba(0, 0, 0, 0.25)',\r\n borderRadius: '50px',\r\n },\r\n arrowIcon: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 'auto',\r\n },\r\n});\r\n","import React from 'react';\r\n\r\nexport const ThreeDot = ({ threeDotClassName }) => (\r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\n\r\nexport const OutlookPcDesktopUnread = ({ customizedUnreadClassName }) => (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n\r\nexport const OutlookMobileWebUnread = ({ customizedUnreadClassName }) => (\r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { PlacementText } from './placement-text';\r\nimport { PlacementAction } from './placement-action';\r\n\r\nexport const DescriptionWithAction = ({\r\n isMultiLine,\r\n description,\r\n descriptionWithActionClassName,\r\n placementDescriptionClassName,\r\n placementCallToActionClassName,\r\n placementCallToActionAsLinkClassName,\r\n showCallToActionAsLink,\r\n callToAction,\r\n}) => (\r\n
\r\n \r\n {callToAction && }\r\n
\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n MMAPlacementCard,\r\n AdLabel,\r\n PlacementGradient,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n PlacementAction,\r\n BusinessNameWithAdsLabel,\r\n} from '../shared-components';\r\nimport dotsIcon from './media/dots.svg';\r\n\r\nexport const AdPlacementMmaBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n\r\n showShortHeadline,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n\r\n showLongHeadline,\r\n longHeadline,\r\n isMultiLineLongHeadline,\r\n\r\n showFinalUrl,\r\n finalUrl,\r\n isMultiLineFinalUrl,\r\n displayUrl,\r\n displayFinalUrlOrigin,\r\n\r\n showDescription,\r\n description,\r\n isMultiLineDescription,\r\n\r\n showCallToAction,\r\n callToAction,\r\n\r\n showAdLabel,\r\n showGradient,\r\n\r\n showBusinessName,\r\n businessName,\r\n showBusinessNameAdLabel,\r\n showAdsIcon,\r\n\r\n showLogo,\r\n logo,\r\n\r\n showDots,\r\n\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const {\r\n previewHeight, aspectRatio, logoHeight, imageBorderRadius,\r\n } = placementMeta || {};\r\n\r\n // const srcForCroppedImageView = showImage && this.props.image.FinalSrc;\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n let finalUrlOrigin;\r\n if (displayFinalUrlOrigin && isValidUrl(finalUrl)) {\r\n finalUrlOrigin = new URL(finalUrl).origin;\r\n }\r\n\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n {showAdLabel && }\r\n {showGradient && }\r\n {\r\n imageMeta.url &&\r\n \r\n }\r\n
\r\n
\r\n {showLogo && logo &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{businessName}
\r\n {showFinalUrl &&\r\n \r\n }\r\n
\r\n
\r\n }\r\n {showDots && (\r\n \"\"\r\n )}\r\n {showShortHeadline && (\r\n \r\n )}\r\n {showLongHeadline && (\r\n \r\n )}\r\n {(!showLogo || !logo) && showFinalUrl && (\r\n \r\n )}\r\n {showDescription && (\r\n \r\n )}\r\n {showBusinessName && (\r\n \r\n )}\r\n {showCallToAction && callToAction && ( // add a space before each capital letter, e.g. \"ActNow\" => \"Act Now\"\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nAdPlacementMmaBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n isEnabled: PropTypes.bool,\r\n\r\n showShortHeadline: PropTypes.bool,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n\r\n showLongHeadline: PropTypes.bool,\r\n longHeadline: PropTypes.string,\r\n isMultiLineLongHeadline: PropTypes.bool,\r\n\r\n showFinalUrl: PropTypes.bool,\r\n finalUrl: PropTypes.string,\r\n isMultiLineFinalUrl: PropTypes.bool,\r\n displayFinalUrlOrigin: PropTypes.bool,\r\n displayUrl: PropTypes.string,\r\n\r\n showDescription: PropTypes.bool,\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n showCallToAction: PropTypes.bool,\r\n callToAction: PropTypes.string,\r\n\r\n showAdLabel: PropTypes.bool,\r\n showGradient: PropTypes.bool,\r\n\r\n showBusinessName: PropTypes.bool,\r\n businessName: PropTypes.string,\r\n showBusinessNameAdLabel: PropTypes.bool,\r\n showAdsIcon: PropTypes.bool,\r\n\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n\r\n showDots: PropTypes.bool,\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementImageContainer: PropTypes.string,\r\n placementLogoContainer: PropTypes.string,\r\n placementBusinessNameContainer: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementGradient: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementFinalUrl: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n placementCallToAction: PropTypes.string,\r\n placementBusinessNameWithAdsLabel: PropTypes.string,\r\n placementDotsIcon: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nAdPlacementMmaBase.defaultProps = {\r\n isEnabled: true,\r\n\r\n showShortHeadline: false,\r\n showLongHeadline: false,\r\n showFinalUrl: false,\r\n displayFinalUrlOrigin: false,\r\n showDescription: false,\r\n showCallToAction: false,\r\n showAdLabel: false,\r\n showGradient: false,\r\n showBusinessName: false,\r\n showBusinessNameAdLabel: false,\r\n showLogo: false,\r\n showAdsIcon: false,\r\n\r\n shortHeadline: undefined,\r\n isMultiLineShortHeadline: false,\r\n longHeadline: undefined,\r\n isMultiLineLongHeadline: false,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n isMultiLineFinalUrl: false,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n callToAction: undefined,\r\n businessName: undefined,\r\n logo: undefined,\r\n showDots: false,\r\n};\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { AdPlacementMmaBase } from './mma-ad-placement-base';\r\nimport {\r\n getMmaWideImage4x1Styles,\r\n getMmaLandScapeImage191x100Styles,\r\n getMmaSquareImage1x1Styles,\r\n getMmaVerticalImage1x2Styles,\r\n} from '../styles';\r\n\r\nexport const AdPlacementMmaWideImage4x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaWideImage4x1Styles,\r\n { componentName: 'AdPlacementMmaWideImage4x1' }\r\n);\r\n\r\nexport const AdPlacementMmaLandscapeImage191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaLandScapeImage191x100Styles,\r\n { componentName: 'AdPlacementMmaLandscapeImage191x100' }\r\n);\r\n\r\nexport const AdPlacementMmaSquareImage1x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaSquareImage1x1Styles,\r\n { componentName: 'AdPlacementMmaSquareImage1x1' }\r\n);\r\n\r\nexport const AdPlacementMmaVerticalImage1x2 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaVerticalImage1x2Styles,\r\n { componentName: 'AdPlacementMmaVerticalImage1x2' }\r\n);\r\n","export const getMmaPlacementBaseStyles = () => ({\r\n placementCard: {\r\n border: 'solid thin #ddd',\r\n },\r\n placementImageContainer: undefined, // { },\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n bottom: 25,\r\n paddingLeft: 32,\r\n paddingRight: 20,\r\n fontSize: 10,\r\n lineHeight: 1.1,\r\n },\r\n placementAdsLabel: undefined, // { },\r\n placementGradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n bottom: 20,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementLongHeadline: {\r\n position: 'relative',\r\n bottom: 15,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementFinalUrl: {\r\n color: 'white',\r\n bottom: 10,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n placementDescription: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n borderRadius: 32,\r\n border: 'none',\r\n padding: '7px 16px 8px 16px',\r\n fontSize: 16,\r\n color: '#666',\r\n backgroundColor: '#EEE',\r\n opacity: '70%',\r\n fontWeight: 'bold',\r\n },\r\n});\r\n\r\nexport const getMmaWideImage4x1Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 25,\r\n paddingLeft: 32,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n bottom: 15,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementAdsLabel: {\r\n right: 0, // align to right\r\n },\r\n placementGradient: {\r\n backgroundImage: 'linear-gradient(to left, transparent 0, black 100%)',\r\n },\r\n});\r\n\r\nexport const getMmaLandScapeImage191x100Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementTextContainer: {\r\n padding: '8px 20px 20px 20px',\r\n fontSize: 10,\r\n lineHeight: 1.1,\r\n maxWidth: '-webkit-fill-available',\r\n\r\n '& .logo-and-text-container': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n paddingBottom: 4,\r\n '& .logo-text': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .logo-business-name': {\r\n color: '#111',\r\n fontSize: 14,\r\n fontWeight: 400,\r\n lineHeight: '18px',\r\n },\r\n },\r\n },\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n color: 'black',\r\n fontSize: 24,\r\n marginBottom: 8,\r\n fontWeight: '200',\r\n paddingBottom: 5,\r\n },\r\n placementFinalUrl: {\r\n position: 'relative',\r\n color: 'green',\r\n fontSize: 10,\r\n marginBottom: 8,\r\n },\r\n placementDescription: {\r\n position: 'relative',\r\n color: 'black',\r\n fontSize: 14,\r\n maxWidth: 250,\r\n wordWrap: 'break-word',\r\n paddingRight: 16,\r\n },\r\n placementCallToAction: {\r\n color: 'white',\r\n right: 15,\r\n border: 'none',\r\n bottom: 15,\r\n opacity: '90%',\r\n padding: '6px 16px 8px 16px',\r\n position: 'absolute',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n backgroundColor: '#a19f9d',\r\n },\r\n placementLogoContainer: {\r\n paddingTop: 5,\r\n paddingRight: 6,\r\n '& .cropped-image-view': {\r\n borderRadius: 6,\r\n border: 'solid 1px #ECECEC',\r\n },\r\n },\r\n});\r\n\r\nexport const getMmaSquareImage1x1Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementFinalUrl: {\r\n color: 'green',\r\n bottom: 18,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n placementDescription: {\r\n color: 'white',\r\n bottom: 8,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n borderRadius: 32,\r\n border: 'none',\r\n padding: '6px 16px 8px 16px',\r\n fontSize: 16,\r\n color: 'white',\r\n backgroundColor: '#a19f9d',\r\n opacity: '90%',\r\n fontWeight: 'bold',\r\n },\r\n});\r\n\r\nexport const getMmaVerticalImage1x2Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementFinalUrl: {\r\n color: 'green',\r\n bottom: 15,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n top: 5,\r\n color: 'white',\r\n border: 'solid 1px #dddddd',\r\n opacity: '90%',\r\n padding: '5px 16px 6px 16px',\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n borderRadius: 3,\r\n backgroundColor: '#a19f9d',\r\n },\r\n});\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { AdPlacementMmaBase } from './mma-ad-placement-base';\r\n\r\nimport {\r\n getMmaInMsanWideImage191x100Styles,\r\n getMmaInMsanSquareImage1x1Styles,\r\n getMmaInMsanMSEdgeSingleCarousel178x100Styles,\r\n getMmaInMsanMSNInArticle150x100Styles,\r\n getMmaInMsanMSNSmallHeadline133x100Styles,\r\n} from '../styles';\r\n\r\nexport const AdPlacementMmaInMsanWideImage191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanWideImage191x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanWideImage191x100' }\r\n);\r\n\r\nexport const AdPlacementMmaInMsanMSEdgeSingleCarousel178x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanMSEdgeSingleCarousel178x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSEdgeSingleCarousel178x100' }\r\n);\r\n\r\nexport const AdPlacementMmaInMsanMSNInArticle150x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanMSNInArticle150x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSNInArticle150x100' }\r\n);\r\n\r\nexport const AdPlacementMmaInMsanMSNSmallHeadline133x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanMSNSmallHeadline133x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSNSmallHeadline133x100' }\r\n);\r\n\r\nexport const AdPlacementMmaInMsanSquareImage1x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanSquareImage1x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanSquareImage1x1' }\r\n);\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport { MMAPlacementCard, PlacementHeadline, PlacementDescription, BusinessNameWithLogo, BusinessNameWithChoiceIcon } from '../../shared-components';\r\n\r\nexport const AdPlacementMmaBaseV2 = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n\r\n showShortHeadline,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n showSmallSizeHeadline,\r\n\r\n showLongHeadline,\r\n longHeadline,\r\n isMultiLineLongHeadline,\r\n\r\n finalUrl,\r\n\r\n showDescription,\r\n description,\r\n isMultiLineDescription,\r\n\r\n showCallToAction,\r\n callToAction,\r\n\r\n businessName,\r\n showBusinessNameWithLogoTop,\r\n showLogo,\r\n logo,\r\n\r\n showAdChoiceIconArea,\r\n showBusinessNameInAdChoiceArea,\r\n showAdIcon,\r\n showChoiceIcon,\r\n showCallToActionAsLink,\r\n showBrightStyleChoiceIcon,\r\n\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n showGradient,\r\n customizedComponent: CustomizedComponent,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const {\r\n previewHeight, aspectRatio, logoHeight, imageBorderRadius,\r\n } = placementMeta || {};\r\n\r\n // const srcForCroppedImageView = showImage && this.props.image.FinalSrc;\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n {\r\n imageMeta.url &&\r\n \r\n }\r\n
\r\n
\r\n {showGradient &&
}\r\n
\r\n {showBusinessNameWithLogoTop && (\r\n \r\n )}\r\n {showShortHeadline && (\r\n \r\n )}\r\n {showLongHeadline && (\r\n \r\n )}\r\n {showDescription && (\r\n \r\n )}\r\n
\r\n {showAdChoiceIconArea && (\r\n \r\n )}\r\n
\r\n {CustomizedComponent && }\r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport _ from 'underscore';\r\nimport { PermissionsContext, withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { AdPlacementMmaBase } from './mma-ad-placement-base';\r\nimport { AdPlacementMmaBaseV2 } from './mma-ad-placements-v2/mma-ad-placement-base-v2';\r\n// import { CircleRightArrow } from '../shared-components';\r\n\r\nimport {\r\n getMmaInMsanV2MicrosoftEdgeCarousel201x100Styles,\r\n getMmaInMsanV2MSANBanner2x1Styles,\r\n getMmaInMsanV2MSANRiver191x100Styles,\r\n getMmaInMsanV2MSNCarousel169x100Styles,\r\n getMmaInMsanV2MSNPartnerStripe153x100Styles,\r\n getMmaInMsanV2MSNRestoday124x100Styles,\r\n getMmaInMsanV2MSANRectangle120x100Styles,\r\n getMmaInMsanV2MicrosoftEdgeMobile1x1Styles,\r\n getMmaInMsanV2RefreshedMSANRiver191x100Styles,\r\n getMmaInMsanV2RefreshedMSNRestoday124x100Styles,\r\n getMmaInMsanV2RefreshedMSNCarousel169x100Styles,\r\n getMmaInMsanV2RefreshedMicrosoftEdgeCarousel201x100Styles,\r\n getMmaInMsanV2RefreshedMSNPartnerStripe153x100Styles,\r\n getMmaInMsanV2RefreshedMSANBanner2x1Styles,\r\n getMmaInMsanV2RefreshedMicrosoftEdgeMobile1x1Styles,\r\n // getMmaInMsanV2RefreshedMSANRectangle191x100Styles,\r\n} from '../styles';\r\n\r\nexport const AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMicrosoftEdgeCarousel201x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MicrosoftEdgeCarousel201x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100' }\r\n );\r\n return ;\r\n});\r\n\r\nexport const AdPlacementMmaInMsanV2MSANBanner2x1 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMSANBanner2x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSANBanner2x1' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MSANBanner2x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSANBanner2x1' }\r\n );\r\n return ;\r\n});\r\n\r\nexport const AdPlacementMmaInMsanV2MSANRiver191x100 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? (\r\n withUAPLThemedStyles(\r\n props2 => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMSANRiver191x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSANRiver191x100' }\r\n )\r\n ) : (\r\n withUAPLThemedStyles(\r\n props2 => (\r\n \r\n ),\r\n getMmaInMsanV2MSANRiver191x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSANRiver191x100' }\r\n )\r\n );\r\n return ;\r\n});\r\n\r\nexport const AdPlacementMmaInMsanV2MSNCarousel169x100 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? (\r\n withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMSNCarousel169x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNCarousel169x100' }\r\n )\r\n ) : (\r\n withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MSNCarousel169x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNCarousel169x100' }\r\n )\r\n );\r\n return ;\r\n});\r\n\r\nexport const AdPlacementMmaInMsanV2MSNPartnerStripe153x100 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMSNPartnerStripe153x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNPartnerStripe153x100' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MSNPartnerStripe153x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNPartnerStripe153x100' }\r\n );\r\n return ;\r\n});\r\n\r\nexport const AdPlacementMmaInMsanV2MSNRestoday124x100 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMSNRestoday124x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNRestoday124x100' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MSNRestoday124x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSNRestoday124x100' }\r\n );\r\n return ;\r\n});\r\n\r\n// export const AdPlacementMmaInMsanV2MSANRectangle191x100 = withPermissions((props1) => {\r\n// const permissions = useContext(PermissionsContext);\r\n// const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n\r\n// const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n// props => (\r\n// \r\n// ),\r\n// getMmaInMsanV2RefreshedMSANRectangle191x100Styles,\r\n// { componentName: 'AdPlacementMmaInMsanV2MSANRectangle191x100' }\r\n// ) : withUAPLThemedStyles(\r\n// props => (\r\n// \r\n// ),\r\n// getMmaInMsanV2MSANRectangle120x100Styles,\r\n// { componentName: 'AdPlacementMmaInMsanV2MSANRectangle120x100' }\r\n// );\r\n// return ;\r\n// });\r\n\r\n// to be deprecated\r\nexport const AdPlacementMmaInMsanV2MSANRectangle191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MSANRectangle120x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MSANRectangle120x100' }\r\n);\r\n\r\nexport const AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1 = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']) || _.get(props1, ['extraPermissions', 'dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledBaseComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2RefreshedMicrosoftEdgeMobile1x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getMmaInMsanV2MicrosoftEdgeMobile1x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1' }\r\n );\r\n return ;\r\n});\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { AdPlacementMmaBase } from '../mma-ad-placement-base';\r\n\r\nimport {\r\n getImgExtWideImage191x100Styles,\r\n getImgExtMSEdgeSingleCarousel178x100Styles,\r\n getImgExtBingDesktopSingleImage178x100Styles,\r\n getImgExtMSEdgeMediumHeadline172x100Styles,\r\n getImgExtMSNSingleCarousel169x100Styles,\r\n getImgExtMSNMediumHeadline155x100Styles,\r\n getImgExtMSNInArticle150x100Styles,\r\n getImgExtMSNSmallHeadline133x100Styles,\r\n getImgExtSquareImage1x1Styles,\r\n getImgExtMSNDoubleCarousel93x100Styles,\r\n} from '../../styles';\r\n\r\nexport const AdPlacementImgExtWideImage191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtWideImage191x100Styles,\r\n { componentName: 'AdPlacementImgExtWideImage191x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSEdgeSingleCarousel178x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSEdgeSingleCarousel178x100Styles,\r\n { componentName: 'AdPlacementImgExtMSEdgeSingleCarousel178x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtBingDesktopSingleImage178x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtBingDesktopSingleImage178x100Styles,\r\n { componentName: 'AdPlacementImgExtBingDesktopSingleImage178x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSEdgeMediumHeadline172x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSEdgeMediumHeadline172x100Styles,\r\n { componentName: 'AdPlacementImgExtMSEdgeMediumHeadline172x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSNSingleCarousel169x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSNSingleCarousel169x100Styles,\r\n { componentName: 'AdPlacementImgExtMSNSingleCarousel169x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSNMediumHeadline155x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSNMediumHeadline155x100Styles,\r\n { componentName: 'AdPlacementImgExtMSNMediumHeadline155x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSNInArticle150x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSNInArticle150x100Styles,\r\n { componentName: 'AdPlacementImgExtMSNInArticle150x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSNSmallHeadline133x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSNSmallHeadline133x100Styles,\r\n { componentName: 'AdPlacementImgExtMSNSmallHeadline133x100' }\r\n);\r\n\r\nexport const AdPlacementImgExtSquareImage1x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtSquareImage1x1Styles,\r\n { componentName: 'AdPlacementImgExtSquareImage1x1' }\r\n);\r\n\r\nexport const AdPlacementImgExtMSNDoubleCarousel93x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getImgExtMSNDoubleCarousel93x100Styles,\r\n { componentName: 'AdPlacementImgExtMSNDoubleCarousel93x100' }\r\n);\r\n","export const getImageExtensionPlacementBaseStyles = () => ({\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n },\r\n placementImageContainer: undefined,\r\n placementTextContainer: undefined,\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n});\r\n\r\nexport const getImgExtWideImage191x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n height: 364,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n borderRadius: '0 !important',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n maxWidth: '-webkit-fill-available',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 18,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n});\r\n\r\nexport const getImgExtMSEdgeSingleCarousel178x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -100,\r\n },\r\n borderRadius: '0 !important',\r\n width: '624px !important',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 100,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontWeight: '200',\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n color: 'white',\r\n width: 590,\r\n height: 73,\r\n marginBottom: 20,\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n color: '#fff !important',\r\n opacity: 0.7,\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n});\r\n\r\nexport const getImgExtBingDesktopSingleImage178x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n width: '608px !important',\r\n height: 110,\r\n border: '0.5px solid #ddd',\r\n padding: 0,\r\n borderRadius: '0 !important',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'right',\r\n width: 100,\r\n margin: 8,\r\n transform: 'translate(20px,20px)',\r\n },\r\n\r\n placementTextContainer: {\r\n margin: '4px 8px 0px 8px',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementLongHeadline: {\r\n color: '#0078d4',\r\n height: 28,\r\n overflow: 'hidden',\r\n fontSize: 20,\r\n fontWeight: 400,\r\n lineHeight: '24px',\r\n },\r\n\r\n placementFinalUrl: {\r\n color: '#0b6a0b',\r\n height: 20,\r\n overflow: 'hidden',\r\n fontSize: 14,\r\n },\r\n\r\n placementDescription: {\r\n color: '#333',\r\n fontSize: 13,\r\n minHeight: 18,\r\n },\r\n});\r\n\r\nexport const getImgExtMSEdgeMediumHeadline172x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n width: '300px !important',\r\n height: 250,\r\n backgroundColor: 'rgb(46, 46, 46) !important',\r\n borderRadius: '0 !important',\r\n overflow: 'hidden',\r\n position: 'relative',\r\n\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -172,\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n },\r\n\r\n placementLongHeadline: {\r\n fontSize: 10,\r\n lineHeight: '16px !important',\r\n color: '#bebebe !important',\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n color: '#fff !important',\r\n opacity: 0.7,\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n\r\n placementGradient: {\r\n position: 'relative',\r\n height: '280px !important',\r\n marginTop: -105,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, rgb(46, 46, 46) 100%)',\r\n },\r\n});\r\n\r\nexport const getImgExtMSNSingleCarousel169x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -80,\r\n },\r\n\r\n width: '622px !important',\r\n height: 368,\r\n borderRadius: '0 !important',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '280px !important',\r\n top: 120,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementLongHeadline: {\r\n fontWeight: '200',\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n color: 'white',\r\n width: 590,\r\n height: 73,\r\n marginBottom: 20,\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n color: '#fff !important',\r\n opacity: 0.7,\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n});\r\n\r\nexport const getImgExtMSNMediumHeadline155x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n display: 'block',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n width: '300px !important',\r\n height: 296,\r\n margin: 'auto',\r\n padding: 0,\r\n borderRadius: '0 !important',\r\n borderWidth: 'thin',\r\n color: '#ddd',\r\n border: 'solid',\r\n },\r\n\r\n placementTextContainer: {\r\n height: 98,\r\n padding: '15px 13px',\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px !important',\r\n },\r\n});\r\n\r\nexport const getImgExtMSNInArticle150x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n height: 364,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n height: 98,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 15,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n});\r\n\r\nexport const getImgExtMSNSmallHeadline133x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n width: '300px !important',\r\n height: 90,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 100,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 52,\r\n margin: '4px 8px 0 8px',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n});\r\n\r\nexport const getImgExtBingDesktopMultiImage133x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n width: '548px !important',\r\n height: 242,\r\n color: '#333',\r\n border: '0.5px solid #ddd',\r\n boxShadow: 'none !important',\r\n padding: 10,\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'relative',\r\n top: -1,\r\n width: '100% !important',\r\n },\r\n\r\n placementLongHeadline: {\r\n color: '#003DC1',\r\n fontSize: 20,\r\n fontWeight: 'bold',\r\n lineHeight: '27px',\r\n },\r\n\r\n placementFinalUrl: {\r\n position: 'relative',\r\n top: -1,\r\n color: '#0b6a0b',\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementDescription: {\r\n position: 'relative',\r\n top: -1,\r\n color: '#333',\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n margin: '2px 0px 7px 0px',\r\n },\r\n\r\n placementImageContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n position: 'relative',\r\n left: -4,\r\n top: 3,\r\n\r\n '& .bing-desktop-multi-image-item': {\r\n width: 130,\r\n height: 135,\r\n border: '0.5px solid #ddd',\r\n overflow: 'hidden',\r\n marginRight: 5,\r\n borderRadius: 6,\r\n },\r\n },\r\n});\r\n\r\nexport const getImgExtBingMobileMultiImage133x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n display: 'block !important',\r\n borderRadius: '6px !important',\r\n color: '#333',\r\n border: '0.5px solid #ddd',\r\n boxShadow: 'none !important',\r\n },\r\n\r\n placementAdsLabel: {\r\n // position: absolute;\r\n top: 10,\r\n left: 5,\r\n color: '#fff !important',\r\n border: '1px solid #ddd !important',\r\n padding: '5px 1px 7px 1px !important',\r\n lineHeight: '0.1em',\r\n borderRadius: '6px !important',\r\n backgroundColor: '#666 !important',\r\n margin: '0 !important',\r\n fontSize: '14px !important',\r\n opacity: '1 !important',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'relative',\r\n width: '400px !important',\r\n height: 118,\r\n padding: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementLongHeadline: {\r\n color: '#003DC1',\r\n height: 24,\r\n fontSize: 18,\r\n fontWeight: 400,\r\n },\r\n\r\n placementFinalUrl: {\r\n color: '#0b6a0b',\r\n height: 20,\r\n fontSize: 14,\r\n fontWeight: 400,\r\n borderBottom: '1px solid #ddd',\r\n marginBottom: 6,\r\n paddingBottom: 6,\r\n },\r\n\r\n placementDescription: {\r\n height: 40,\r\n fontSize: 14,\r\n fontWeight: 400,\r\n lineHeight: '20px',\r\n margin: '2px 0px 7px 0px',\r\n },\r\n\r\n placementImageContainer: {\r\n '& .multi-image-placement-carousel': {\r\n '& .carousel-inner': {\r\n paddingBottom: '0px !important',\r\n },\r\n '& .carousel-indicators': {\r\n position: 'absolute',\r\n left: 0,\r\n width: 'auto',\r\n bottom: 0,\r\n margin: '20px 24px',\r\n\r\n '& li': {\r\n width: 10,\r\n height: 10,\r\n border: '1px solid #605E5C',\r\n margin: '0 10px 0 0',\r\n background: 'rgba(255, 255, 255, 0.8)',\r\n borderRadius: 10,\r\n\r\n '&.active': {\r\n border: '1px solid #0078d4',\r\n background: '#0078d4',\r\n },\r\n },\r\n },\r\n\r\n '& .carousel-control': {\r\n position: 'absolute',\r\n top: 'auto',\r\n left: 'auto',\r\n right: 0,\r\n bottom: 0,\r\n width: 16,\r\n height: 32,\r\n margin: '20px 24px',\r\n paddingRight: 4,\r\n color: '#0078d4',\r\n background: 'rgba(255, 255, 255, 0.6)',\r\n textShadow: 'none',\r\n\r\n '&.left': {\r\n marginRight: 76,\r\n },\r\n\r\n '& .glyphicon.glyphicon-chevron-left, & .glyphicon.glyphicon-chevron-right': {\r\n fontSize: 16,\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n margin: 0,\r\n position: 'relative',\r\n lineHeight: 1,\r\n verticalAlign: 0,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getImgExtSquareImage1x1Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n borderRadius: '0 !important',\r\n width: '300px !important',\r\n height: 90,\r\n color: '#ddd',\r\n border: 'solid',\r\n borderWidth: 'thin',\r\n background: '#fff',\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 80,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 45,\r\n margin: '8px 8px 0 8px',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n});\r\n\r\nexport const getImgExtMSNDoubleCarousel93x100Styles = theme => ({\r\n // base styles\r\n ...getImageExtensionPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -118,\r\n },\r\n\r\n width: '310px !important',\r\n height: 333,\r\n borderRadius: '0 !important',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n height: '280px !important',\r\n top: 83,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementShortHeadline: {\r\n width: 280,\r\n height: 54,\r\n fontSize: 20,\r\n fontWeight: 200,\r\n lineHeight: 1.3,\r\n color: 'white',\r\n paddingBottom: 5,\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n color: '#fff !important',\r\n opacity: 0.7,\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport classnames from 'classnames';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n// import { MultiLineEllipsisText } from '@bingads-webui-react/multiline-ellipsis';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getImgExtBingDesktopMultiImage133x100Styles } from '../../styles';\r\nimport {\r\n MMAPlacementCard,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n} from '../../shared-components';\r\n\r\n// multi-image placement\r\nconst ImgExtBingDesktopMultiImage133x100 = ({\r\n placementData, // UAPVMPlacement\r\n isEnabled,\r\n longHeadline,\r\n finalUrl,\r\n description,\r\n classes,\r\n}) => {\r\n //\r\n const { placementMeta, images = [] } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n\r\n // there are 4 images in the placement, the last 3 are placeholder images\r\n const imagesWithPadding = useMemo(\r\n () => [0, 1, 2, 3].map(index => (images && images[index]) || _.last(images)),\r\n [images]\r\n );\r\n\r\n if (!placementData || !placementMeta || _.isEmpty(images)) {\r\n return null;\r\n }\r\n\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n imagesWithPadding.map(({\r\n imageMeta, placementCropping, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n }, idx) => {\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n return (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
\r\n \r\n
);\r\n })\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const AdPlacementImgExtBingDesktopMultiImage133x100 = withUAPLThemedStyles(\r\n ImgExtBingDesktopMultiImage133x100,\r\n getImgExtBingDesktopMultiImage133x100Styles,\r\n { componentName: 'AdPlacementImgExtBingDesktopMultiImage133x100' }\r\n);\r\n","import _ from 'underscore';\r\nimport classnames from 'classnames';\r\nimport React, { useCallback, useMemo, useState } from 'react';\r\n\r\nimport { Carousel } from '@bingads-webui-react/primitive-unthemed';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n// import { MultiLineEllipsisText } from '@bingads-webui-react/multiline-ellipsis';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getImgExtBingMobileMultiImage133x100Styles } from '../../styles';\r\nimport {\r\n MMAPlacementCard,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n AdLabel,\r\n} from '../../shared-components';\r\n\r\n// multi-image placement\r\nconst BingMobileMultiImage133x100 = ({\r\n placementData, // UAPVMPlacement\r\n isEnabled,\r\n longHeadline,\r\n finalUrl,\r\n description,\r\n i18n,\r\n classes,\r\n}) => {\r\n //\r\n const [carouselState, setCarouselState] = useState({ index: 0, direction: null });\r\n\r\n const { placementMeta, images = [] } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n\r\n // there are 4 images in the placement, the last 3 are placeholder images\r\n const imagesWithPadding = useMemo(\r\n () => [0, 1, 2, 3].map(index => (images && images[index]) || _.last(images)),\r\n [images]\r\n );\r\n\r\n // const srcForCroppedImageView = showImage && this.props.image.FinalSrc;\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n const handleSelect = useCallback((selectedIndex, e) => {\r\n setCarouselState({\r\n index: selectedIndex,\r\n direction: e.direction,\r\n });\r\n }, []);\r\n\r\n if (!placementData || !placementMeta || _.isEmpty(images)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {\r\n imagesWithPadding.map(({\r\n imageMeta, placementCropping, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n }, idx) => {\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const AdPlacementImgExtBingMobileMultiImage133x100 = withUAPLThemedStyles(\r\n BingMobileMultiImage133x100,\r\n getImgExtBingMobileMultiImage133x100Styles,\r\n { componentName: 'AdPlacementImgExtBingMobileMultiImage133x100' }\r\n);\r\n","export const bingDesktopHeaderImage = 'data:image/png;base64,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';\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n getBingSearchTextPlacementStyles,\r\n getBingSearchTextDesktopPlacementStyles,\r\n getBingSearchTextMobilePlacementStyles,\r\n} from '../styles';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport {\r\n AdLabel,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n PlacementContentContainer,\r\n} from '../shared-components';\r\nimport { bingDesktopHeaderImage } from './media/bing-desktop-header';\r\n\r\nconst BingSearchPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n longHeadline,\r\n finalUrl,\r\n displayUrl,\r\n description,\r\n businessName,\r\n isClickDisabled,\r\n showLogo,\r\n logo,\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n children,\r\n adExtensionContainerClassName,\r\n}) => (\r\n
\r\n \r\n
\r\n {showLogo && logo &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{businessName}
\r\n \r\n
\r\n
\r\n }\r\n \r\n {(!showLogo || !logo) &&\r\n \r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n {children && (\r\n
\r\n {children}\r\n
\r\n )}\r\n
\r\n
\r\n);\r\n\r\nBingSearchPlacementBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n longHeadline: PropTypes.string,\r\n finalUrl: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n description: PropTypes.string,\r\n businessName: PropTypes.string,\r\n isClickDisabled: PropTypes.bool,\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementFinalUrl: PropTypes.string,\r\n placementDescriptionContainer: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n }).isRequired,\r\n adExtensionContainerClassName: PropTypes.string,\r\n};\r\n\r\nBingSearchPlacementBase.defaultProps = {\r\n longHeadline: undefined,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n description: undefined,\r\n businessName: undefined,\r\n isClickDisabled: false,\r\n showLogo: false,\r\n logo: undefined,\r\n adExtensionContainerClassName: undefined,\r\n};\r\n\r\nexport const AdPlacementBingSearchText = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBingSearchTextPlacementStyles,\r\n { componentName: 'AdPlacementBingSearchText' }\r\n);\r\n\r\nexport const AdPlacementBingSearchTextDesktop = withUAPLThemedStyles(\r\n ({ classes, i18n, ...props }) => (\r\n
\r\n
\r\n {i18n.getString(_TL_('Header\r\n
\r\n \r\n
\r\n ),\r\n getBingSearchTextDesktopPlacementStyles,\r\n { componentName: 'AdPlacementBingSearchTextDesktop' }\r\n);\r\n\r\nexport const AdPlacementBingSearchTextMobile = withUAPLThemedStyles(\r\n props => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ),\r\n getBingSearchTextMobilePlacementStyles,\r\n { componentName: 'AdPlacementBingSearchTextMobile' }\r\n);\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\nimport { PermissionsContext, withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\n\r\nimport { getOutlookMobilePlacementStyles, getOutlookWebPlacementStyles, getOutlookWebRefreshedPlacementStyles, getOutlookMobileRefreshedPlacementStyles } from '../styles';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport {\r\n BusinessNameWithAdsLabel,\r\n PlacementHeadline,\r\n PlacementDescription,\r\n AdLabel,\r\n ThreeDot,\r\n OutlookMobileWebUnread,\r\n OutlookPcDesktopUnread,\r\n DescriptionWithAction,\r\n} from '../shared-components';\r\n\r\nconst OutlookPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n businessName,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n finalUrl,\r\n displayUrl,\r\n description,\r\n isMultiLineDescription,\r\n showLogo,\r\n logo,\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n}) => (\r\n
\r\n \r\n {showLogo && logo &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n);\r\n\r\nOutlookPlacementBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n businessName: PropTypes.string,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n finalUrl: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementBusinessNameWithAdsLabel: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nOutlookPlacementBase.defaultProps = {\r\n businessName: undefined,\r\n shortHeadline: undefined,\r\n isMultiLineShortHeadline: false,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n showLogo: false,\r\n logo: undefined,\r\n};\r\n\r\nconst OutlookRefreshedPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n businessName,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n finalUrl,\r\n displayUrl,\r\n description,\r\n isMultiLineDescription,\r\n showLogo,\r\n showThreeDot,\r\n logo,\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n showDescriptionWithAction,\r\n callToAction,\r\n showCallToActionAsLink,\r\n customizedUnreadComponent: CustomizedUnreadComponent,\r\n}) => (\r\n
\r\n {CustomizedUnreadComponent && }\r\n \r\n {showLogo && logo &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n {showThreeDot && }\r\n \r\n \r\n {showDescriptionWithAction ? : }\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const AdPlacementOutlookMobile = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n
\r\n \r\n
\r\n ),\r\n getOutlookMobileRefreshedPlacementStyles,\r\n { componentName: 'AdPlacementOutlookMobile' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getOutlookMobilePlacementStyles,\r\n { componentName: 'AdPlacementOutlookMobile' }\r\n );\r\n\r\n return ;\r\n});\r\n\r\nexport const AdPlacementOutlookWeb = withPermissions((props1) => {\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']);\r\n\r\n const StyledComp = isAdPreviewRefreshEnabled ? withUAPLThemedStyles(\r\n props => (\r\n
\r\n \r\n
\r\n ),\r\n getOutlookWebRefreshedPlacementStyles,\r\n { componentName: 'AdPlacementOutlookWeb' }\r\n ) : withUAPLThemedStyles(\r\n props => (\r\n
\r\n \r\n
\r\n ),\r\n getOutlookWebPlacementStyles,\r\n { componentName: 'AdPlacementOutlookWeb' }\r\n );\r\n\r\n return ;\r\n});\r\n","\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\nimport { Image, Text, Button, Card, CardHeader, CardPreview, CardFooter, FluentProvider, webLightTheme } from '@fluentui/react-components';\r\n\r\n\r\nexport const AdPlacementLinkedInSingleImageBase = ({\r\n i18n,\r\n classes,\r\n // Placement data\r\n placementData,\r\n\r\n // Ad data props\r\n companyPageName,\r\n userProfileImageSrc,\r\n finalUrl,\r\n introductoryText,\r\n headline,\r\n callToAction,\r\n\r\n // State props\r\n // isEnabled\r\n\r\n // Flag props\r\n showHeader,\r\n showIntroductoryText,\r\n showfinalUrl,\r\n showFooter,\r\n showCompanyInFooter,\r\n showIntroductoryTextInFooter,\r\n\r\n // Customization props\r\n // customClassName,\r\n // imagePreviewHeight,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n const renderHeader = () => (\r\n }\r\n header={
{companyPageName}
}\r\n description={{i18n.getString(_TL_('Promoted'))}}\r\n />\r\n );\r\n\r\n const renderImage = () => (\r\n
\r\n {imageMeta && imageMeta.url && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n\r\n const renderCallToAction = () => (\r\n \r\n );\r\n\r\n const renderFooter = () => (\r\n \r\n
\r\n {headline}\r\n {showfinalUrl && {finalUrl}}\r\n
\r\n {callToAction && renderCallToAction()}\r\n
\r\n );\r\n\r\n const renderFooterWithCompany = () => (\r\n \r\n
{headline}
\r\n {showIntroductoryTextInFooter && {introductoryText}}\r\n
\r\n
\r\n {i18n.getString(_TL_('User\r\n
{companyPageName}
\r\n
\r\n {callToAction && renderCallToAction()}\r\n
\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n {showHeader && renderHeader()}\r\n\r\n {showIntroductoryText && {introductoryText}}\r\n\r\n
\r\n {renderImage()}\r\n\r\n {showFooter && !showCompanyInFooter && renderFooter()}\r\n {showFooter && showCompanyInFooter && renderFooterWithCompany()}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAdPlacementLinkedInSingleImageBase.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.shape({}).isRequired,\r\n placementData: PropTypes.shape({}),\r\n companyPageName: PropTypes.string,\r\n userProfileImageSrc: PropTypes.string,\r\n finalUrl: PropTypes.string,\r\n introductoryText: PropTypes.string,\r\n headline: PropTypes.string,\r\n callToAction: PropTypes.string,\r\n showHeader: PropTypes.bool,\r\n showIntroductoryText: PropTypes.bool,\r\n showFooter: PropTypes.bool,\r\n showCompanyInFooter: PropTypes.bool,\r\n showIntroductoryTextInFooter: PropTypes.bool,\r\n showfinalUrl: PropTypes.bool,\r\n};\r\n\r\nAdPlacementLinkedInSingleImageBase.defaultProps = {\r\n placementData: {},\r\n companyPageName: undefined,\r\n userProfileImageSrc: undefined,\r\n finalUrl: undefined,\r\n introductoryText: undefined,\r\n headline: undefined,\r\n callToAction: undefined,\r\n showHeader: false,\r\n showIntroductoryText: false,\r\n showFooter: false,\r\n showCompanyInFooter: false,\r\n showIntroductoryTextInFooter: false,\r\n showfinalUrl: false,\r\n};\r\n","\r\nimport React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { AdPlacementLinkedInSingleImageBase } from './li-single-image-ad-placement-base';\r\nimport {\r\n getLinkedInSingleImageDesktopStyles,\r\n getLinkedInSingleImageMobileStyles,\r\n getLinkedInSingleImageMediumRectangleStyles,\r\n getLinkedInSingleImageMobileInterstitialStyles,\r\n getLinkedInSingleImageNativeStyles,\r\n} from '../../styles';\r\n\r\n\r\nexport const AdPlacementLinkedInSingleImageDesktop = withUAPLThemedStyles(\r\n props => (\r\n ),\r\n getLinkedInSingleImageDesktopStyles,\r\n { componentName: 'AdPlacementLinkedInSingleImageDesktop' }\r\n);\r\n\r\nexport const AdPlacementLinkedInSingleImageMobile = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getLinkedInSingleImageMobileStyles,\r\n { componentName: 'AdPlacementLinkedInSingleImageMobile' }\r\n);\r\n\r\nexport const AdPlacementLinkedInSingleImageMediumRectangle = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getLinkedInSingleImageMediumRectangleStyles,\r\n { componentName: 'AdPlacementLinkedInSingleImageMediumRectangle' }\r\n);\r\n\r\nexport const AdPlacementLinkedInSingleImageMobileInterstitial = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getLinkedInSingleImageMobileInterstitialStyles,\r\n { componentName: 'AdPlacementLinkedInSingleImageMobileInterstitial' }\r\n);\r\n\r\nexport const AdPlacementLinkedInSingleImageNative = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getLinkedInSingleImageNativeStyles,\r\n { componentName: 'AdPlacementLinkedInSingleImageNative' }\r\n);\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const AppAdsBasePlacement = ({\r\n classes,\r\n children,\r\n}) => (\r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n);\r\n\r\nAppAdsBasePlacement.propTypes = {\r\n classes: PropTypes.shape({\r\n placementPreview: PropTypes.string,\r\n placementCard: PropTypes.string,\r\n phoneInnerContent: PropTypes.string,\r\n }),\r\n children: PropTypes.node,\r\n};\r\n\r\nAppAdsBasePlacement.defaultProps = {\r\n classes: {},\r\n children: null,\r\n};\r\n","import { getResponsiveSearchAdMobilePlacementStyles } from '../../styles';\r\n\r\nexport const getAppAdsBasePlacementStyles = () => ({\r\n placementCard: {\r\n width: 300,\r\n height: 600,\r\n border: '10px solid rgba(214, 214, 214, 1)',\r\n borderTopRightRadius: '30px',\r\n borderTopLeftRadius: '30px',\r\n borderBottom: 'none',\r\n },\r\n placementPreview: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n phoneInnerContent: {\r\n marginTop: 30,\r\n marginBottom: 30,\r\n height: '90%',\r\n marginLeft: 10,\r\n marginRight: 10,\r\n borderRadius: 10,\r\n },\r\n videoPlayerRoot: {\r\n height: '100%',\r\n width: '100%',\r\n backgroundColor: 'black',\r\n borderRadius: 10,\r\n },\r\n});\r\n\r\nexport const getAppAdsMobileStyles = () => {\r\n const {\r\n placementCard,\r\n placementTextContainer,\r\n placementContentContainer,\r\n ...rest\r\n } = getResponsiveSearchAdMobilePlacementStyles();\r\n const { placementCard: appAdsPlacementCard, ...appAdsStyles } = getAppAdsBasePlacementStyles();\r\n\r\n return {\r\n ...rest,\r\n ...appAdsStyles,\r\n placementCard: {\r\n ...placementCard,\r\n ...appAdsPlacementCard,\r\n width: '400px',\r\n height: '300px',\r\n },\r\n placementTextContainer: {\r\n ...placementTextContainer,\r\n flex: '1',\r\n },\r\n placementContentContainer: {\r\n ...placementContentContainer,\r\n marginTop: 10,\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n borderRadius: '5.11px',\r\n border: '0.5px solid #ddd',\r\n background: '#fff',\r\n '&.placement-card-content': {\r\n height: 'auto',\r\n padding: '10px',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getAppAdsM365MobileStyles = () => {\r\n const { placementCard: appAdsPlacementCard, ...appAdsStyles } = getAppAdsBasePlacementStyles();\r\n\r\n return {\r\n ...appAdsStyles,\r\n placementCard: {\r\n ...appAdsPlacementCard,\r\n display: 'flex',\r\n width: '300px',\r\n height: '300px',\r\n '& .placement-card-content': {\r\n height: '130px',\r\n padding: '10px',\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n marginTop: 30,\r\n border: '0.5px solid #ddd',\r\n background: '#fff',\r\n width: '100%',\r\n },\r\n },\r\n preview: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n previewContent: {\r\n border: '1px solid #C8C8C8',\r\n boxShadow: 'none',\r\n width: 340,\r\n height: 80,\r\n padding: '5px 10px 5px 15px',\r\n marginTop: 150,\r\n },\r\n placementBusinessNameWithAdsLabel: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: '20px !important',\r\n maxWidth: 300,\r\n verticalAlign: 'middle',\r\n lineHeight: '30px',\r\n marginTop: 0,\r\n '& .ads-label': {\r\n backgroundColor: 'blue !important',\r\n borderRadius: 4,\r\n height: 15,\r\n verticalAlign: 'middle',\r\n padding: '0 4px !important',\r\n width: 'auto',\r\n display: 'inline-block',\r\n position: 'static',\r\n margin: '0 4px 0 0',\r\n fontSize: 10,\r\n color: 'white !important',\r\n lineHeight: '15px',\r\n },\r\n '& .business-name': {\r\n fontSize: '20px !important',\r\n },\r\n },\r\n placementShortHeadline: {\r\n display: 'block',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n placementDescription: {\r\n display: 'block',\r\n color: 'black',\r\n textDecoration: 'none',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n },\r\n description: {\r\n display: 'inline-block',\r\n },\r\n };\r\n};\r\n\r\nexport const getAppAdsMSNMobileStyles = () => {\r\n const { placementCard: appAdsPlacementCard, ...appAdsStyles } = getAppAdsBasePlacementStyles();\r\n\r\n return {\r\n ...appAdsStyles,\r\n placementCard: {\r\n ...appAdsPlacementCard,\r\n height: '300px',\r\n width: '400px',\r\n },\r\n msnDescription: {\r\n paddingTop: '5px',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n },\r\n msnPlacementImage: {\r\n '& .cropped-image-view': {\r\n borderRadius: '5px',\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const getAppAdsCasualGamesStyles = () => {\r\n const { placementCard: appAdsPlacementCard, ...appAdsStyles } = getAppAdsBasePlacementStyles();\r\n\r\n return {\r\n ...appAdsStyles,\r\n placementCard: {\r\n ...appAdsPlacementCard,\r\n height: '350px',\r\n width: '300px',\r\n },\r\n casualGamesBase: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n };\r\n};\r\n","import React from 'react';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport { AppAdsBasePlacement } from './app-ads-base-placement';\r\nimport { getAppAdsMSNMobileStyles } from '../../styles/ad-placement-components/app-ads-ad-placement-styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { PlacementDescription, BusinessNameWithAdsLabel } from '../../shared-components';\r\n\r\nexport const AppAdsMSNDisplayPlacement = withUAPLThemedStyles(\r\n (props) => {\r\n const {\r\n classes,\r\n placementData, // UAPVMSingleImagePlacement\r\n businessName,\r\n description,\r\n i18n, // may need to set window._TL_ in other platforms\r\n } = props;\r\n\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n },\r\n getAppAdsMSNMobileStyles,\r\n { componentName: 'AppAdsMSNDisplayPlacement' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n getResponsiveOutlookMobilePlacementStyles,\r\n getResponsiveOutlookWebPlacementStyles,\r\n} from '../../styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\n\r\nimport {\r\n BusinessNameWithAdsLabel,\r\n PlacementHeadline,\r\n PlacementDescription,\r\n} from '../../shared-components';\r\n\r\nexport const OutlookPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n businessName,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n finalUrl,\r\n displayUrl,\r\n description,\r\n isMultiLineDescription,\r\n showLogo,\r\n logo,\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n customClassName,\r\n}) => (\r\n
\r\n {showLogo && logo &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n);\r\n\r\nOutlookPlacementBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n businessName: PropTypes.string,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n finalUrl: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementBusinessNameWithAdsLabel: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n }).isRequired,\r\n customClassName: PropTypes.string,\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n};\r\n\r\nOutlookPlacementBase.defaultProps = {\r\n businessName: undefined,\r\n shortHeadline: undefined,\r\n isMultiLineShortHeadline: false,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n customClassName: undefined,\r\n showLogo: false,\r\n logo: undefined,\r\n};\r\n\r\nexport const ResponsiveAdPlacementOutlookMobile = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveOutlookMobilePlacementStyles,\r\n { componentName: 'AdPlacementOutlookMobile' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementOutlookWeb = withUAPLThemedStyles(\r\n props => (\r\n
\r\n \r\n
\r\n ),\r\n getResponsiveOutlookWebPlacementStyles,\r\n { componentName: 'AdPlacementOutlookWeb' }\r\n);\r\n","const getOutlookPlacementBaseStyles = () => ({\r\n placementCard: {\r\n display: 'block',\r\n border: '1px solid #C8C8C8',\r\n margin: 'auto',\r\n overflow: 'hidden',\r\n position: 'relative !important',\r\n background: '#fff',\r\n boxSizing: 'content-box',\r\n boxShadow: 'none',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n placementTextContainer: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n placementShortHeadline: undefined,\r\n placementDescription: undefined,\r\n placementLogoContainer: undefined,\r\n});\r\n\r\nexport const getResponsiveOutlookMobilePlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getOutlookPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n height: 80,\r\n borderRadius: '5.11px',\r\n padding: '5px 10px 5px 15px',\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n display: 'block',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n '&:hover': {\r\n color: '#004578',\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n color: 'black !important',\r\n fontSize: '20px !important',\r\n maxWidth: 300,\r\n marginTop: '0px !important',\r\n lineHeight: '30px !important',\r\n verticalAlign: 'middle',\r\n\r\n '& .ads-label': {\r\n color: 'white !important',\r\n width: 'auto',\r\n height: 15,\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline-block',\r\n padding: '0 4px !important',\r\n lineHeight: '15px !important',\r\n verticalAlign: 'middle',\r\n backgroundColor: 'blue !important',\r\n border: 'unset !important',\r\n borderRadius: '4px !important',\r\n },\r\n\r\n '& .business-name': {\r\n color: 'unset !important',\r\n padding: 'unset !important',\r\n fontSize: 'unset !important',\r\n marginTop: 'unset !important',\r\n lineHeight: 'unset !important',\r\n },\r\n },\r\n\r\n placementShortHeadline: {\r\n fontSize: 13,\r\n marginTop: 2,\r\n fontWeight: 200,\r\n lineHeight: '19.5px',\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n color: 'black',\r\n fontSize: 13,\r\n marginTop: 2,\r\n lineHeight: '19.5px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n width: '100%',\r\n whiteSpace: 'nowrap',\r\n },\r\n placementLogoContainer: {\r\n paddingTop: 8,\r\n paddingRight: 16,\r\n '& .cropped-image-view': {\r\n borderRadius: '50%',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n\r\nexport const getResponsiveOutlookWebPlacementStyles = (theme) => {\r\n const { placementCard, ...baseStyles } = getOutlookPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n outlookWebCardRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n\r\n placementCard: {\r\n ...placementCard,\r\n borderRadius: 0,\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n border: 'none',\r\n '& .placement-card-content': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n minWidth: 0,\r\n border: '1px solid #C8C8C8',\r\n },\r\n },\r\n\r\n placementTextContainer: {\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n whiteSpace: 'nowrap',\r\n minWidth: 0,\r\n '& .logo-and-businessname-container': {\r\n display: 'inline-block',\r\n position: 'relative',\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n display: 'inline-block !important',\r\n margin: '0px 10px 0px 0px !important',\r\n verticalAlign: 'middle',\r\n\r\n '& .ads-label': {\r\n color: 'white !important',\r\n width: 'auto',\r\n height: 13,\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline-block',\r\n padding: '0 4px !important',\r\n lineHeight: '15px !important',\r\n verticalAlign: 'middle',\r\n backgroundColor: 'blue !important',\r\n border: 'unset !important',\r\n borderRadius: '4px !important',\r\n opacity: '90%',\r\n position: 'relative',\r\n top: -2.5,\r\n },\r\n\r\n '& .business-name': {\r\n color: 'black !important',\r\n fontSize: '10px !important',\r\n lineHeight: '16px !important',\r\n padding: '4px 0px !important',\r\n },\r\n },\r\n\r\n placementShortHeadline: {\r\n display: 'inline-block',\r\n color: 'blue',\r\n padding: 4,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n '&:before': {\r\n content: '\" \"',\r\n border: 'solid gray',\r\n display: 'inline-block',\r\n padding: '2px',\r\n transform: 'rotate(45deg) translateY(-3px)',\r\n borderWidth: '0 1.5px 1.5px 0',\r\n marginRight: 10,\r\n position: 'relative',\r\n left: -4,\r\n },\r\n '&::after': {\r\n content: '\"*\"',\r\n display: 'inline',\r\n padding: 4,\r\n color: 'gray',\r\n position: 'relative',\r\n left: 4,\r\n },\r\n },\r\n\r\n placementDescription: {\r\n display: 'inline-block',\r\n color: 'black',\r\n padding: 4,\r\n flex: '1 1 0px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n width: '100%',\r\n paddingBottom: 5,\r\n },\r\n\r\n placementLogoContainer: {\r\n padding: [2, 8, 2, 8],\r\n '& .cropped-image-view': {\r\n borderRadius: '50%',\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n","import React from 'react';\r\n\r\nimport { getAppAdsM365MobileStyles } from '../../styles/ad-placement-components/app-ads-ad-placement-styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { OutlookPlacementBase } from '../responsive-ad-placements/responsive-outlook-placements';\r\n\r\nexport const AppAdsM365OutlookPlacement = withUAPLThemedStyles((props) => {\r\n const {\r\n placementData, // UAPVMSingleImagePlacement\r\n businessName,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n description,\r\n isMultiLineDescription,\r\n logo,\r\n finalUrl,\r\n displayUrl,\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n\r\n );\r\n}, getAppAdsM365MobileStyles, { componentName: 'AppAdsM365OutlookPlacement' });\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport {\r\n AdLabel,\r\n AdditionalLineDisclaimer,\r\n PopupDisclaimer,\r\n PlacementHeadlineWithLink,\r\n PlacementFinalUrlWithLink,\r\n PlacementDescription,\r\n PlacementContentContainer,\r\n PlacementImage,\r\n} from '../../shared-components';\r\n\r\nexport const AdPlacementResponsiveSearchPropTypes = {\r\n propTypes: {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementContentContainer: PropTypes.string,\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementFinalUrl: PropTypes.string,\r\n placementDescriptionContainer: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n placementImage: PropTypes.string,\r\n placementInlineItems: PropTypes.string,\r\n }).isRequired,\r\n decoratorsData: PropTypes.shape({\r\n disclaimer: PropTypes.shape({\r\n DisclaimerLayout: PropTypes.string,\r\n }),\r\n imageExtension: PropTypes.shape({\r\n image: PropTypes.shape({}),\r\n enableCrop: PropTypes.bool,\r\n }),\r\n }),\r\n showAdDisclaimer: PropTypes.bool,\r\n showImageExtension: PropTypes.bool,\r\n previewImageAspectRatio: PropTypes.number,\r\n previewImageHeight: PropTypes.number,\r\n previewTexts: PropTypes.shape({\r\n longHeadline: PropTypes.string,\r\n description: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n url: PropTypes.string,\r\n }).isRequired,\r\n },\r\n\r\n defaultProps: {\r\n showAdDisclaimer: false,\r\n showImageExtension: false,\r\n previewImageAspectRatio: 1.78,\r\n previewImageHeight: 100,\r\n decoratorsData: {},\r\n },\r\n};\r\n\r\nexport const ResponsiveSearchAdPlacementBase = (props) => {\r\n const {\r\n i18n,\r\n classes,\r\n showAdDisclaimer,\r\n showImageExtension,\r\n previewImageAspectRatio,\r\n previewImageHeight,\r\n decoratorsData,\r\n previewTexts: {\r\n longHeadline,\r\n description,\r\n displayUrl,\r\n url,\r\n },\r\n } = props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n showAdDisclaimer && decoratorsData.disclaimer && decoratorsData.disclaimer.DisclaimerLayout === 'Popup' &&\r\n \r\n }\r\n
\r\n
\r\n \r\n \r\n {\r\n showAdDisclaimer && decoratorsData.disclaimer && decoratorsData.disclaimer.DisclaimerLayout === 'AdditionalLine' &&\r\n \r\n }\r\n
\r\n
\r\n {\r\n showImageExtension && decoratorsData.imageExtension && decoratorsData.imageExtension.image &&\r\n \r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nResponsiveSearchAdPlacementBase.propTypes = AdPlacementResponsiveSearchPropTypes.propTypes;\r\n\r\nResponsiveSearchAdPlacementBase.defaultProps = AdPlacementResponsiveSearchPropTypes.defaultProps;\r\n","import React from 'react';\r\n\r\nimport { getAppAdsMobileStyles } from '../../styles/ad-placement-components/app-ads-ad-placement-styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { ResponsiveSearchAdPlacementBase } from '../responsive-search-ad-placements/responsive-search-ad-placement-base';\r\n\r\n\r\nexport const AppAdsBingSearchPlacementBase = (props) => {\r\n const {\r\n shortHeadline,\r\n description,\r\n displayUrl,\r\n url,\r\n placementData,\r\n classes,\r\n showImageExtension,\r\n ...rest\r\n } = props;\r\n\r\n const {\r\n placementMeta,\r\n placementCropping,\r\n imageMeta,\r\n effectiveImageUrl,\r\n effectiveImageWidth,\r\n effectiveImageHeight,\r\n expandedPlacementCropping,\r\n imageCropping,\r\n } = placementData || {};\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n\r\n const decoratorsData = showImageExtension && {\r\n imageExtension: {\r\n image: {\r\n src: effectiveImageUrl || imageMeta.url,\r\n width: effectiveImageWidth || imageMeta.width,\r\n height: effectiveImageHeight || imageMeta.height,\r\n cropSettings: {\r\n SourceWidth: cropping.SourceWidth,\r\n SourceX: cropping.SourceX,\r\n SourceY: cropping.SourceY,\r\n },\r\n },\r\n enableCrop: true,\r\n },\r\n enableCrop: imageCropping,\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const AppAdsBingSearchPlacement = withUAPLThemedStyles(\r\n props => ,\r\n getAppAdsMobileStyles,\r\n { componentName: 'AppAdsBingSearchPlacement' }\r\n);\r\n\r\nexport const AppAdsBingSearchPlacementText = withUAPLThemedStyles(\r\n props => ,\r\n getAppAdsMobileStyles,\r\n { componentName: 'AppAdsBingSearchPlacementText' }\r\n);\r\n","import React from 'react';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport { AppAdsBasePlacement } from './app-ads-base-placement';\r\nimport { getAppAdsCasualGamesStyles } from '../../styles/ad-placement-components/app-ads-ad-placement-styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { PlacementHeadline } from '../../shared-components';\r\n\r\n\r\nexport const AppAdsCasualGamesDimensionsPlacement = withUAPLThemedStyles(\r\n (props) => {\r\n const {\r\n classes,\r\n placementData, // UAPVMSingleImagePlacement\r\n shortHeadline,\r\n i18n, // may need to set window._TL_ in other platforms\r\n } = props;\r\n\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n },\r\n getAppAdsCasualGamesStyles,\r\n { componentName: 'AppAdsCasualGamesDimensionsPlacement' }\r\n);\r\n","/* eslint-disable jsx-a11y/media-has-caption */\r\nimport React, { useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\n\r\nimport { getAppAdsBasePlacementStyles } from '../../styles/ad-placement-components/app-ads-ad-placement-styles';\r\nimport { AppAdsBasePlacement } from './app-ads-base-placement';\r\n\r\n\r\nexport const AppAdsVideoHorizontalPlacementInner = ({\r\n classes,\r\n videos,\r\n}) => {\r\n const { src } = videos && videos.length > 0 ? videos[0] : {};\r\n\r\n const videoRef = useRef();\r\n\r\n useEffect(() => {\r\n if (videoRef.current) {\r\n videoRef.current.load();\r\n }\r\n }, [src]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nAppAdsVideoHorizontalPlacementInner.propTypes = {\r\n classes: PropTypes.shape({\r\n videoPlayerRoot: PropTypes.string,\r\n }),\r\n videos: PropTypes.arrayOf(PropTypes.shape({\r\n src: PropTypes.string,\r\n })),\r\n};\r\n\r\nAppAdsVideoHorizontalPlacementInner.defaultProps = {\r\n classes: {},\r\n videos: null,\r\n};\r\n\r\nexport const AppAdsVideoHorizontalPlacement = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getAppAdsBasePlacementStyles,\r\n { componentName: 'AppAdsVideo16x9Placement' }\r\n);\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getResponsivePlacementCardStyles } from '../../styles';\r\n\r\nconst MMAPlacementCardImpl = ({\r\n isEnabled,\r\n url,\r\n children,\r\n mmaPlacementCardClassName,\r\n classes,\r\n}) =>\r\n //\r\n (\r\n
\r\n
\r\n {url && (\r\n \r\n {children}\r\n \r\n )}\r\n {!url && (\r\n \r\n {children}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\nMMAPlacementCardImpl.propTypes = {\r\n isEnabled: PropTypes.bool,\r\n url: PropTypes.string,\r\n children: PropTypes.node.isRequired,\r\n mmaPlacementCardClassName: PropTypes.string,\r\n classes: PropTypes.shape({\r\n mmaPlacementCardRoot: PropTypes.string,\r\n mmaPlacementCardDisabled: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nMMAPlacementCardImpl.defaultProps = {\r\n isEnabled: true,\r\n url: undefined,\r\n mmaPlacementCardClassName: undefined,\r\n};\r\n\r\nexport const ResponsiveMMAPlacementCard = withUAPLThemedStyles(\r\n MMAPlacementCardImpl,\r\n getResponsivePlacementCardStyles,\r\n { componentName: 'MMAPlacementCard ' }\r\n);\r\n","export const getResponsivePlacementCardStyles = () => ({\r\n mmaPlacementCardRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n background: 'transparent',\r\n margin: 'auto',\r\n\r\n '& .card-parent': {\r\n width: '100%',\r\n '& .placement-card-content': {\r\n boxShadow: '0px 0.511px 1.533px rgb(0 0 0 / 10%), 0px 2.72533px 6.132px rgb(0 0 0 / 13%)',\r\n border: 'solid thin #ddd',\r\n borderRadius: 5.11,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n overflow: 'hidden',\r\n margin: 'auto',\r\n position: 'relative',\r\n },\r\n },\r\n },\r\n mmaPlacementCardDisabled: {\r\n opacity: 0.5,\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n AdLabel,\r\n PlacementGradient,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n PlacementAction,\r\n BusinessNameWithAdsLabel,\r\n} from '../../shared-components';\r\n\r\nimport { ResponsiveMMAPlacementCard } from './responsive-mma-placement-card';\r\n\r\nexport const ResponsiveAdPlacementMmaBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n customClassName,\r\n imagePreviewHeight,\r\n\r\n showShortHeadline,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n\r\n showLongHeadline,\r\n longHeadline,\r\n isMultiLineLongHeadline,\r\n\r\n showFinalUrl,\r\n finalUrl,\r\n isMultiLineFinalUrl,\r\n displayUrl,\r\n\r\n showDescription,\r\n description,\r\n isMultiLineDescription,\r\n\r\n showCallToAction,\r\n callToAction,\r\n\r\n showAdLabel,\r\n showGradient,\r\n\r\n showBusinessName,\r\n businessName,\r\n showBusinessNameAdLabel,\r\n\r\n showLogo,\r\n logo,\r\n\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio, logoHeight } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n const finalImagePreviewHeight = imagePreviewHeight > 0 ? imagePreviewHeight : previewHeight;\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n {showAdLabel && }\r\n {showGradient && }\r\n {\r\n imageMeta.url &&\r\n \r\n }\r\n
\r\n
\r\n {showLogo && logo &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{businessName}
\r\n {showFinalUrl &&\r\n \r\n }\r\n
\r\n
\r\n }\r\n {showShortHeadline && (\r\n \r\n )}\r\n {showLongHeadline && (\r\n \r\n )}\r\n {(!showLogo || !logo) && showFinalUrl && (\r\n \r\n )}\r\n {showDescription && (\r\n \r\n )}\r\n {showBusinessName && (\r\n \r\n )}\r\n {showCallToAction && callToAction && ( // add a space before each capital letter, e.g. \"ActNow\" => \"Act Now\"\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nResponsiveAdPlacementMmaBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n isEnabled: PropTypes.bool,\r\n customClassName: PropTypes.string,\r\n imagePreviewHeight: PropTypes.number,\r\n\r\n showShortHeadline: PropTypes.bool,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n\r\n showLongHeadline: PropTypes.bool,\r\n longHeadline: PropTypes.string,\r\n isMultiLineLongHeadline: PropTypes.bool,\r\n\r\n showFinalUrl: PropTypes.bool,\r\n finalUrl: PropTypes.string,\r\n isMultiLineFinalUrl: PropTypes.bool,\r\n displayUrl: PropTypes.string,\r\n\r\n showDescription: PropTypes.bool,\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n showCallToAction: PropTypes.bool,\r\n callToAction: PropTypes.string,\r\n\r\n showAdLabel: PropTypes.bool,\r\n showGradient: PropTypes.bool,\r\n\r\n showBusinessName: PropTypes.bool,\r\n businessName: PropTypes.string,\r\n showBusinessNameAdLabel: PropTypes.bool,\r\n\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({}),\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementImageContainer: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementGradient: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementFinalUrl: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n placementCallToAction: PropTypes.string,\r\n placementBusinessNameWithAdsLabel: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nResponsiveAdPlacementMmaBase.defaultProps = {\r\n isEnabled: true,\r\n customClassName: '',\r\n imagePreviewHeight: -1,\r\n\r\n showShortHeadline: false,\r\n showLongHeadline: false,\r\n showFinalUrl: false,\r\n showDescription: false,\r\n showCallToAction: false,\r\n showAdLabel: false,\r\n showGradient: false,\r\n showBusinessName: false,\r\n showBusinessNameAdLabel: false,\r\n showLogo: false,\r\n\r\n shortHeadline: undefined,\r\n isMultiLineShortHeadline: false,\r\n longHeadline: undefined,\r\n isMultiLineLongHeadline: false,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n isMultiLineFinalUrl: false,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n callToAction: undefined,\r\n businessName: undefined,\r\n logo: undefined,\r\n};\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { ResponsiveAdPlacementMmaBase } from './responsive-mma-ad-placement-base';\r\nimport {\r\n getResponsiveMmaVerticalImage1x2Styles,\r\n getResponsiveMmaSquareImage1x1Styles,\r\n getResponsiveMmaLandScapeImage191x100Styles,\r\n getResponsiveMmaWideImage4x1Styles,\r\n} from '../../styles';\r\n\r\nexport const ResponsiveAdPlacementMmaWideImage4x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaWideImage4x1Styles,\r\n { componentName: 'AdPlacementMmaWideImage4x1' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaLandscapeImage191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaLandScapeImage191x100Styles,\r\n { componentName: 'AdPlacementMmaLandscapeImage191x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaSquareImage1x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaSquareImage1x1Styles,\r\n { componentName: 'AdPlacementMmaSquareImage1x1' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaVerticalImage1x2 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaVerticalImage1x2Styles,\r\n { componentName: 'AdPlacementMmaVerticalImage1x2' }\r\n);\r\n","const getMmaPlacementBaseStyles = () => ({\r\n placementImageContainer: undefined, // { },\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n bottom: 25,\r\n paddingLeft: 32,\r\n fontSize: 10,\r\n lineHeight: 1.1,\r\n },\r\n placementAdsLabel: undefined, // { },\r\n placementGradient: {\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n bottom: 20,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementLongHeadline: {\r\n position: 'relative',\r\n bottom: 15,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementFinalUrl: {\r\n color: 'white',\r\n bottom: 10,\r\n position: 'relative',\r\n fontSize: 10,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n placementDescription: {\r\n color: 'white',\r\n bottom: 5,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n borderRadius: 32,\r\n border: 'none',\r\n padding: '7px 16px 8px 16px',\r\n fontSize: 16,\r\n color: '#666',\r\n backgroundColor: '#EEE',\r\n opacity: '70%',\r\n fontWeight: 'bold',\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaWideImage4x1Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n bottom: 25,\r\n paddingLeft: 32,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n bottom: 15,\r\n paddingBottom: 5,\r\n fontWeight: '200',\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n placementAdsLabel: {\r\n right: 0, // align to right\r\n },\r\n placementGradient: {\r\n backgroundImage: 'linear-gradient(to left, transparent 0, black 100%)',\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaLandScapeImage191x100Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementTextContainer: {\r\n padding: '8px 20px 20px 20px',\r\n fontSize: 10,\r\n lineHeight: 1.1,\r\n maxWidth: '-webkit-fill-available',\r\n '& .logo-and-text-container': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n paddingBottom: 4,\r\n '& .logo-text': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .logo-business-name': {\r\n color: '#111',\r\n fontSize: 14,\r\n fontWeight: 400,\r\n lineHeight: '18px',\r\n },\r\n },\r\n },\r\n },\r\n placementShortHeadline: {\r\n position: 'relative',\r\n color: 'black',\r\n fontSize: 24,\r\n marginBottom: 8,\r\n fontWeight: '200',\r\n paddingBottom: 5,\r\n },\r\n placementFinalUrl: {\r\n position: 'relative',\r\n color: 'green',\r\n fontSize: 10,\r\n marginBottom: 8,\r\n },\r\n placementDescription: {\r\n position: 'relative',\r\n color: 'black',\r\n fontSize: 14,\r\n maxWidth: 250,\r\n wordWrap: 'break-word',\r\n paddingRight: 16,\r\n },\r\n placementCallToAction: {\r\n color: 'white',\r\n right: 15,\r\n border: 'none',\r\n bottom: 15,\r\n opacity: '90%',\r\n padding: '6px 16px 8px 16px',\r\n position: 'absolute',\r\n fontSize: 16,\r\n fontWeight: 'bold',\r\n borderRadius: 32,\r\n backgroundColor: '#a19f9d',\r\n },\r\n placementLogoContainer: {\r\n paddingTop: 5,\r\n paddingRight: 6,\r\n '& .cropped-image-view': {\r\n borderRadius: 6,\r\n border: 'solid 1px #ECECEC',\r\n },\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaSquareImage1x1Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementFinalUrl: {\r\n color: 'green',\r\n bottom: 18,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n placementDescription: {\r\n color: 'white',\r\n bottom: 8,\r\n position: 'relative',\r\n fontSize: 14,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n borderRadius: 32,\r\n border: 'none',\r\n padding: '6px 16px 8px 16px',\r\n fontSize: 16,\r\n color: 'white',\r\n backgroundColor: '#a19f9d',\r\n opacity: '90%',\r\n fontWeight: 'bold',\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaVerticalImage1x2Styles = theme => ({\r\n // base styles\r\n ...getMmaPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementFinalUrl: {\r\n color: 'green',\r\n bottom: 15,\r\n position: 'relative',\r\n fontSize: 10,\r\n },\r\n placementCallToAction: {\r\n position: 'relative',\r\n top: 5,\r\n color: 'white',\r\n border: 'solid 1px #dddddd',\r\n opacity: '90%',\r\n padding: '5px 16px 6px 16px',\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n borderRadius: 3,\r\n backgroundColor: '#a19f9d',\r\n },\r\n});\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { ResponsiveAdPlacementMmaBase } from './responsive-mma-ad-placement-base';\r\n\r\nimport {\r\n getResponsiveMmaInMsanMSEdgeSingleCarousel178x100Styles,\r\n getResponsiveMmaInMsanMSNInArticle150x100Styles,\r\n getResponsiveMmaInMsanMSNSmallHeadline133x100Styles,\r\n getResponsiveMmaInMsanSquareImage1x1Styles,\r\n getResponsiveMmaInMsanWideImage191x100Styles,\r\n} from '../../styles';\r\n\r\nexport const ResponsiveAdPlacementMmaInMsanWideImage191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaInMsanWideImage191x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanWideImage191x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaInMsanMSEdgeSingleCarousel178x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSEdgeSingleCarousel178x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaInMsanMSNInArticle150x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaInMsanMSNInArticle150x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSNInArticle150x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaInMsanMSNSmallHeadline133x100Styles,\r\n { componentName: 'AdPlacementMmaInMsanMSNSmallHeadline133x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementMmaInMsanSquareImage1x1 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveMmaInMsanSquareImage1x1Styles,\r\n { componentName: 'AdPlacementMmaInMsanSquareImage1x1' }\r\n);\r\n","const getMmaInMsanPlacementBaseStyles = () => ({\r\n placementCard: undefined,\r\n placementImageContainer: undefined,\r\n placementTextContainer: undefined,\r\n placementAdsLabel: undefined,\r\n placementGradient: undefined,\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: undefined,\r\n placementFinalUrl: undefined,\r\n placementDescription: undefined,\r\n placementCallToAction: undefined,\r\n placementBusinessNameWithAdsLabel: undefined,\r\n});\r\n\r\nexport const getResponsiveMmaInMsanWideImage191x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n maxWidth: '-webkit-fill-available',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 18,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaInMsanMSEdgeSingleCarousel178x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n placementImageContainer: {\r\n position: 'relative',\r\n },\r\n\r\n placementCard: {\r\n '&:hover $placementGradient': {\r\n height: '480px !important',\r\n top: -100,\r\n },\r\n },\r\n\r\n // overrides\r\n placementTextContainer: {\r\n position: 'absolute',\r\n left: 20,\r\n bottom: 25,\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#bebebe',\r\n },\r\n\r\n placementGradient: {\r\n display: 'block',\r\n width: '100%',\r\n height: '220px !important',\r\n top: 40,\r\n backgroundImage: 'linear-gradient(to bottom, transparent 0, black 100%)',\r\n },\r\n\r\n placementShortHeadline: {\r\n fontWeight: '200',\r\n fontSize: 28,\r\n lineHeight: '33.99px',\r\n color: 'white',\r\n width: 590,\r\n height: 73,\r\n marginBottom: 20,\r\n\r\n '& .multi-line-processed-text': {\r\n position: 'absolute',\r\n bottom: 30,\r\n },\r\n },\r\n\r\n placementBusinessNameWithAdsLabel: {\r\n '& .ads-label': {\r\n color: '#fff !important',\r\n opacity: 0.7,\r\n border: '.5px solid hsla(0,0%,100%,.3) !important',\r\n },\r\n '& .business-name': {\r\n color: '#bebebe !important',\r\n },\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaInMsanMSNInArticle150x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n background: '#fff',\r\n },\r\n\r\n placementTextContainer: {\r\n padding: 10,\r\n // height: 98,\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n top: -6,\r\n color: '#207697',\r\n height: 60,\r\n position: 'relative',\r\n fontSize: 15,\r\n lineHeight: 1.2,\r\n fontWeight: 200,\r\n paddingBottom: 5,\r\n },\r\n\r\n placementDescription: {\r\n height: 45,\r\n margin: '5px 0 10px 0',\r\n fontSize: 14,\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaInMsanMSNSmallHeadline133x100Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n height: 90,\r\n background: '#fff',\r\n overflow: 'unset !important',\r\n '& .card-parent': {\r\n '& .placement-card-content': {\r\n flexDirection: 'row !important',\r\n border: 'none !important',\r\n height: 90,\r\n },\r\n },\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 100,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 52,\r\n margin: '4px 8px 0 0',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n});\r\n\r\nexport const getResponsiveMmaInMsanSquareImage1x1Styles = theme => ({\r\n // base styles\r\n ...getMmaInMsanPlacementBaseStyles(theme),\r\n\r\n // overrides\r\n placementCard: {\r\n height: 90,\r\n background: '#fff',\r\n '& .card-parent': {\r\n '& .placement-card-content': {\r\n flexDirection: 'row !important',\r\n height: 90,\r\n },\r\n },\r\n },\r\n\r\n placementImageContainer: {\r\n float: 'left',\r\n width: 80,\r\n height: 75,\r\n margin: 8,\r\n },\r\n\r\n placementTextContainer: {\r\n color: '#333',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n },\r\n\r\n placementShortHeadline: {\r\n height: 45,\r\n margin: '8px 8px 0 0',\r\n overflow: 'hidden',\r\n fontSize: 13,\r\n fontWeight: 600,\r\n lineHeight: 1.384,\r\n paddingBottom: 5,\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n getResponsiveBingSearchTextPlacementStyles,\r\n} from '../../styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\n\r\nimport {\r\n AdLabel,\r\n PlacementHeadline,\r\n PlacementFinalUrl,\r\n PlacementDescription,\r\n} from '../../shared-components';\r\n\r\nconst BingSearchPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n showShortHeadline,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n\r\n showLongHeadline,\r\n longHeadline,\r\n isMultiLineLongHeadline,\r\n\r\n showFinalUrl,\r\n showLogo,\r\n logo,\r\n finalUrl,\r\n isMultiLineFinalUrl,\r\n displayUrl,\r\n\r\n description,\r\n businessName,\r\n isMultiLineDescription,\r\n\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n customClassName,\r\n children,\r\n adExtensionContainerClassName,\r\n}) => (\r\n
\r\n
\r\n \r\n
\r\n {showLogo && logo &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{businessName}
\r\n \r\n
\r\n
\r\n }\r\n {showShortHeadline && (\r\n \r\n )}\r\n {showLongHeadline && (\r\n \r\n )}\r\n {(!showLogo || !logo) && showFinalUrl && (\r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n
\r\n {children && (\r\n
\r\n {children}\r\n
\r\n )}\r\n \r\n
\r\n
\r\n);\r\n\r\nBingSearchPlacementBase.propTypes = {\r\n showShortHeadline: PropTypes.bool,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n\r\n showLongHeadline: PropTypes.bool,\r\n longHeadline: PropTypes.string,\r\n isMultiLineLongHeadline: PropTypes.bool,\r\n\r\n showFinalUrl: PropTypes.bool,\r\n finalUrl: PropTypes.string,\r\n isMultiLineFinalUrl: PropTypes.bool,\r\n displayUrl: PropTypes.string,\r\n\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n businessName: PropTypes.string,\r\n placementData: PropTypes.shape({}), // UAPVMSingleImagePlacement\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementShortHeadline: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementFinalUrl: PropTypes.string,\r\n placementDescriptionContainer: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n placementLogoContainer: PropTypes.string,\r\n adExtensionContainer: PropTypes.string,\r\n }).isRequired,\r\n customClassName: PropTypes.string,\r\n};\r\n\r\nBingSearchPlacementBase.defaultProps = {\r\n showShortHeadline: false,\r\n showLongHeadline: false,\r\n showFinalUrl: false,\r\n\r\n shortHeadline: undefined,\r\n isMultiLineShortHeadline: false,\r\n longHeadline: undefined,\r\n isMultiLineLongHeadline: false,\r\n finalUrl: undefined,\r\n displayUrl: undefined,\r\n isMultiLineFinalUrl: false,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n customClassName: undefined,\r\n businessName: undefined,\r\n showLogo: false,\r\n logo: undefined,\r\n placementData: {},\r\n};\r\n\r\nexport const ResponsiveAdPlacementBingSearchText = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveBingSearchTextPlacementStyles,\r\n { componentName: 'AdPlacementBingSearchText' }\r\n);\r\n","const getBingSearchPlacementBaseStyles = () => ({\r\n placementCard: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n\r\n position: 'relative',\r\n boxSizing: 'content-box',\r\n overflow: 'hidden',\r\n background: '#fff',\r\n margin: 'auto',\r\n\r\n '& .placement-card-content': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n placementTextContainer: {\r\n margin: '4px 8px 0 8px',\r\n fontSize: 10,\r\n lineHeight: '16px',\r\n color: '#0078d4',\r\n cursor: 'pointer',\r\n overflow: 'hidden',\r\n '&:hover': {\r\n color: '#004578',\r\n },\r\n '& .logo-and-text-container': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n paddingBottom: 8,\r\n '& .logo-text': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n },\r\n },\r\n placementShortHeadline: undefined,\r\n placementLongHeadline: {\r\n height: 28,\r\n fontSize: 20,\r\n fontWeight: 400,\r\n lineHeight: '24px',\r\n overflow: 'hidden',\r\n width: '100%',\r\n },\r\n placementFinalUrl: {\r\n height: 20,\r\n fontSize: 14,\r\n color: '#0b6a0b',\r\n },\r\n placementDescriptionContainer: {\r\n display: 'flex',\r\n },\r\n placementAdsLabel: {\r\n position: 'static !important',\r\n color: '#767676 !important',\r\n border: '1px solid #ddd !important',\r\n margin: '0 4px 0 0 !important',\r\n display: 'inline',\r\n opacity: '100% !important',\r\n padding: '0 2px !important',\r\n maxHeight: 16,\r\n fontWeight: 600,\r\n lineHeight: 1,\r\n borderRadius: '6px !important',\r\n },\r\n placementDescription: {\r\n color: '#333',\r\n display: 'inline-block',\r\n fontSize: 13,\r\n flexGrow: 1,\r\n overflow: 'hidden',\r\n },\r\n});\r\n\r\nexport const getResponsiveBingSearchTextPlacementStyles = (theme) => {\r\n const { placementCard, placementFinalUrl, ...baseStyles } = getBingSearchPlacementBaseStyles(theme);\r\n const styles = {\r\n ...baseStyles,\r\n\r\n placementCard: {\r\n ...placementCard,\r\n height: 110,\r\n padding: '8px 16px',\r\n alignItems: 'flex-start',\r\n background: 'transparent',\r\n '& .card-parent': {\r\n width: '100%',\r\n },\r\n '& .placement-card-content': {\r\n width: '100%',\r\n display: 'block',\r\n overflow: 'hidden',\r\n boxSizing: 'border-box',\r\n },\r\n },\r\n\r\n placementFinalUrl: {\r\n ...placementFinalUrl,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n placementLogoContainer: {\r\n paddingRight: 8,\r\n '& .cropped-image-view': {\r\n borderRadius: 6,\r\n },\r\n },\r\n };\r\n return styles;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getBoostWindowsSpotlight191x100Styles } from '../../styles';\r\nimport {\r\n MMAPlacementCard,\r\n PlacementHeadline,\r\n PlacementDescription,\r\n} from '../../shared-components';\r\nimport searchIcon from '../media/search.svg';\r\nimport cameraIcon from '../media/camera.svg';\r\nimport batteryIcon from '../media/battery.svg';\r\nimport wifiIcon from '../media/wifi.svg';\r\n\r\nconst WindowsSpotlight191x100 = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n finalUrl,\r\n longHeadline,\r\n description,\r\n hotspots,\r\n i18n,\r\n classes,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n // const srcForCroppedImageView = showImage && this.props.image.FinalSrc;\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n {\r\n imageMeta.url &&\r\n \r\n }\r\n
\r\n
\r\n
{i18n.getString(_TL_('10:36'))}
\r\n
{i18n.getString(_TL_('Tuesday, October 18'))}
\r\n
\r\n
\r\n \"\"\r\n
\r\n {\r\n hotspots && hotspots[0] && hotspots[0].placement === 'Center' &&\r\n (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
\r\n
{hotspots[0].title}
\r\n
{hotspots[0].desc}
\r\n
{hotspots[0].actionText}
\r\n
{hotspots[0].uri}
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n \r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n {\r\n hotspots && hotspots[0] && hotspots[0].placement === 'TopLeft' &&\r\n (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
\r\n
{hotspots[0].title}
\r\n
{hotspots[0].desc}
\r\n
{hotspots[0].actionText}
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n );\r\n};\r\n\r\nWindowsSpotlight191x100.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n isEnabled: PropTypes.bool,\r\n longHeadline: PropTypes.string,\r\n finalUrl: PropTypes.string,\r\n description: PropTypes.string,\r\n hotspots: PropTypes.arrayOf(PropTypes.shape({\r\n placement: PropTypes.string,\r\n title: PropTypes.string,\r\n desc: PropTypes.string,\r\n actionText: PropTypes.string,\r\n })),\r\n i18n: PropTypes.shape({}).isRequired,\r\n classes: PropTypes.shape({\r\n placementTextContainer: PropTypes.string,\r\n placementCenterSection: PropTypes.string,\r\n placementHotspotsCenterSection: PropTypes.string,\r\n placementTopRightSection: PropTypes.string,\r\n placementTopLeftSection: PropTypes.string,\r\n placementHotspotsLeftSection: PropTypes.string,\r\n placementImageContainer: PropTypes.string,\r\n placementCard: PropTypes.string,\r\n placementLongHeadline: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n placementSearchIconCenter: PropTypes.string,\r\n placementSearchIconTopLeft: PropTypes.string,\r\n placementCameraIcon: PropTypes.string,\r\n placementWifiIcon: PropTypes.string,\r\n placementBatteryIcon: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nWindowsSpotlight191x100.defaultProps = {\r\n isEnabled: true,\r\n longHeadline: undefined,\r\n finalUrl: undefined,\r\n description: undefined,\r\n hotspots: [],\r\n};\r\n\r\nexport const AdPlacementBoostWindowsSpotlight191x100 = withUAPLThemedStyles(\r\n WindowsSpotlight191x100,\r\n getBoostWindowsSpotlight191x100Styles,\r\n { componentName: 'AdPlacementBoostWindowsSpotlight191x100' }\r\n);\r\n\r\nexport const UnstyledWindowsSpotlight191x100 = WindowsSpotlight191x100;\r\n","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport {\r\n AdPlacementBoostDiscoverCard1x1,\r\n AdPlacementBoostProngFeed191x100,\r\n AdPlacementBoostCoachmark175x100,\r\n AdPlacementBoostStartMenu,\r\n AdPlacementBoostActionCenter,\r\n AdPlacementBoostBanner,\r\n} from '../index';\r\nimport { UnstyledWindowsSpotlight191x100 } from '../boost-ad-placements/boost-windows-spotlight-placement';\r\nimport { getResponsiveBoostWindowsSpotlight191x100Styles } from '../../styles/ad-placement-components/boost-ad-placements-styles';\r\n\r\nexport const ResponsiveAdPlacementBoostDiscoverCard1x1 = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostProngFeed191x100 = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostCoachmark175x100 = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostStartMenu = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostActionCenter = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostBanner = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nconst BoostWindowsSpotlight191x100 = withUAPLThemedStyles(\r\n UnstyledWindowsSpotlight191x100,\r\n getResponsiveBoostWindowsSpotlight191x100Styles,\r\n { componentName: 'ResponsiveAdPlacementBoostWindowsSpotlight191x100' }\r\n);\r\n\r\nexport const ResponsiveAdPlacementBoostWindowsSpotlight191x100 = ({\r\n customClassName,\r\n ...rest\r\n}) => (\r\n
\r\n \r\n
\r\n);\r\n","import React from 'react';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { AdPlacementMmaBase } from '../mma-ad-placement-base';\r\n\r\nimport {\r\n getBoostHeroImageCarouselStyles,\r\n getBoostProngFeed191x100Styles,\r\n getBoostCoachmark175x100Styles,\r\n} from '../../styles';\r\n\r\nexport const AdPlacementBoostHeroImageCarousel = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostHeroImageCarouselStyles,\r\n { componentName: 'AdPlacementBoostHeroImageCarousel' }\r\n);\r\n\r\nexport const AdPlacementBoostProngFeed191x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostProngFeed191x100Styles,\r\n { componentName: 'AdPlacementBoostProngFeed191x100' }\r\n);\r\n\r\nexport const AdPlacementBoostCoachmark175x100 = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostCoachmark175x100Styles,\r\n { componentName: 'AdPlacementBoostCoachmark175x100' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport {\r\n MMAPlacementCard,\r\n PlacementHeadline,\r\n PlacementDescription,\r\n PlacementAction,\r\n} from '../../shared-components';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getBoostStartMenuStyles, getBoostActionStyles, getBoostBannerStyles } from '../../styles';\r\nimport vectorIcon from '../media/vector.svg';\r\n\r\n\r\nconst BoostTextAdPlacementBase = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n\r\n showSuggested,\r\n\r\n showShortHeadline,\r\n shortHeadline,\r\n isMultiLineShortHeadline,\r\n\r\n showLongHeadline,\r\n longHeadline,\r\n isMultiLineLongHeadline,\r\n\r\n finalUrl,\r\n\r\n showDescription,\r\n description,\r\n isMultiLineDescription,\r\n\r\n showCallToAction,\r\n callToAction,\r\n showDismissAction,\r\n\r\n showLogo,\r\n logo,\r\n\r\n i18n, // may need to set window._TL_ in other platforms\r\n classes,\r\n}) => {\r\n if (!placementData || !placementData.placementMeta) {\r\n return null;\r\n }\r\n const { logoHeight } = placementData.placementMeta;\r\n\r\n return (\r\n \r\n { showLogo && logo &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n {showSuggested && (\r\n
\r\n \"\"\r\n
{i18n.getString(_TL_('Suggested'))}
\r\n
\r\n )}\r\n
\r\n {showShortHeadline && (\r\n \r\n )}\r\n {showLongHeadline && (\r\n \r\n )}\r\n {showDescription && (\r\n \r\n )}\r\n
\r\n
\r\n {showCallToAction && callToAction && ( // add a space before each capital letter, e.g. \"ActNow\" => \"Act Now\"\r\n \r\n )}\r\n {showCallToAction && callToAction && showDismissAction && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nBoostTextAdPlacementBase.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n isEnabled: PropTypes.bool,\r\n\r\n showSuggested: PropTypes.bool,\r\n\r\n showShortHeadline: PropTypes.bool,\r\n shortHeadline: PropTypes.string,\r\n isMultiLineShortHeadline: PropTypes.bool,\r\n\r\n showLongHeadline: PropTypes.bool,\r\n longHeadline: PropTypes.string,\r\n isMultiLineLongHeadline: PropTypes.bool,\r\n\r\n finalUrl: PropTypes.string,\r\n\r\n showDescription: PropTypes.bool,\r\n description: PropTypes.string,\r\n isMultiLineDescription: PropTypes.bool,\r\n\r\n showDismissAction: PropTypes.bool,\r\n showCallToAction: PropTypes.bool,\r\n callToAction: PropTypes.string,\r\n\r\n showLogo: PropTypes.bool,\r\n logo: PropTypes.shape({\r\n Src: PropTypes.string,\r\n Width: PropTypes.number,\r\n Height: PropTypes.number,\r\n CropSettings: PropTypes.shape({\r\n SourceX: PropTypes.number,\r\n SourceY: PropTypes.number,\r\n SourceWidth: PropTypes.number,\r\n SourceHeight: PropTypes.number,\r\n }),\r\n }),\r\n\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nBoostTextAdPlacementBase.defaultProps = {\r\n isEnabled: true,\r\n showSuggested: false,\r\n showShortHeadline: false,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showDismissAction: false,\r\n showCallToAction: false,\r\n showLogo: false,\r\n shortHeadline: false,\r\n isMultiLineShortHeadline: false,\r\n longHeadline: undefined,\r\n isMultiLineLongHeadline: false,\r\n finalUrl: undefined,\r\n description: undefined,\r\n isMultiLineDescription: false,\r\n callToAction: undefined,\r\n logo: undefined,\r\n};\r\n\r\nexport const AdPlacementBoostStartMenu = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostStartMenuStyles,\r\n { componentName: 'AdPlacementBoostStartMenu' }\r\n);\r\nexport const AdPlacementBoostActionCenter = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostActionStyles,\r\n { componentName: 'AdPlacementBoostActionCenter' }\r\n);\r\nexport const AdPlacementBoostBanner = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getBoostBannerStyles,\r\n { componentName: 'AdPlacementBoostBanner' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { CroppedImageView } from '@bingads-webui-campaign-react/cropped-image-view';\r\n\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getBoostDiscoverCard1x1Styles } from '../../styles';\r\nimport {\r\n MMAPlacementCard,\r\n PlacementHeadline,\r\n PlacementDescription,\r\n PlacementAction,\r\n} from '../../shared-components';\r\n\r\nconst BoostDiscoverCard1x1 = ({\r\n placementData, // UAPVMSingleImagePlacement\r\n isEnabled,\r\n finalUrl,\r\n shortHeadline,\r\n description,\r\n callToAction,\r\n i18n,\r\n classes,\r\n}) => {\r\n const {\r\n placementMeta, placementCropping, imageMeta, effectiveImageUrl, effectiveImageWidth, effectiveImageHeight, expandedPlacementCropping,\r\n } = placementData || {};\r\n const { previewHeight, aspectRatio } = placementMeta || {};\r\n if (!placementData || !imageMeta) {\r\n return null;\r\n }\r\n\r\n // const srcForCroppedImageView = showImage && this.props.image.FinalSrc;\r\n const imagePreviewWidth = previewHeight * aspectRatio;\r\n\r\n const cropping = expandedPlacementCropping || placementCropping;\r\n\r\n return (\r\n \r\n
\r\n {\r\n imageMeta.url &&\r\n \r\n }\r\n
\r\n
{i18n.getString(_TL_('Discover'))}
\r\n
\r\n \r\n \r\n {callToAction && ( // add a space before each capital letter, e.g. \"ActNow\" => \"Act Now\"\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nBoostDiscoverCard1x1.propTypes = {\r\n placementData: PropTypes.shape({}).isRequired, // UAPVMSingleImagePlacement\r\n isEnabled: PropTypes.bool,\r\n shortHeadline: PropTypes.string,\r\n finalUrl: PropTypes.string,\r\n description: PropTypes.string,\r\n callToAction: PropTypes.string,\r\n i18n: PropTypes.shape({}).isRequired,\r\n classes: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nBoostDiscoverCard1x1.defaultProps = {\r\n isEnabled: true,\r\n shortHeadline: undefined,\r\n finalUrl: undefined,\r\n description: undefined,\r\n callToAction: undefined,\r\n};\r\n\r\nexport const AdPlacementBoostDiscoverCard1x1 = withUAPLThemedStyles(\r\n BoostDiscoverCard1x1,\r\n getBoostDiscoverCard1x1Styles,\r\n { componentName: 'AdPlacementBoostDiscoverCard1x1' }\r\n);\r\n","import React from 'react';\r\n\r\nimport {\r\n getResponsiveSearchAdPlacementStyles,\r\n getResponsiveSearchAdDesktopPlacementStyles,\r\n getResponsiveSearchAdMobilePlacementStyles,\r\n} from '../../styles';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { bingDesktopHeaderImage } from '../media/bing-desktop-header';\r\nimport { ResponsiveSearchAdPlacementBase } from './responsive-search-ad-placement-base';\r\n\r\nexport const AdPlacementResponsiveSearch = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getResponsiveSearchAdPlacementStyles,\r\n { componentName: 'AdPlacementResponsiveSearch' }\r\n);\r\n\r\nexport const AdPlacementResponsiveSearchDesktop = withUAPLThemedStyles(\r\n ({ classes, i18n, ...props }) => (\r\n
\r\n
\r\n {i18n.getString(_TL_('Header\r\n
\r\n \r\n
\r\n ),\r\n getResponsiveSearchAdDesktopPlacementStyles,\r\n { componentName: 'AdPlacementResponsiveSearchDesktop' }\r\n);\r\n\r\nexport const AdPlacementResponsiveSearchMobile = withUAPLThemedStyles(\r\n props => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ),\r\n getResponsiveSearchAdMobilePlacementStyles,\r\n { componentName: 'AdPlacementResponsiveSearchMobile' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { withUAPLThemedStyles } from '../../with-themed-styles';\r\nimport { getDynamicSearchAdPlacementStyles } from '../../styles';\r\n\r\nimport {\r\n AdLabel,\r\n PlacementHeadline,\r\n PlacementFinalUrlWithLink,\r\n PlacementDescription,\r\n PlacementContentContainer,\r\n} from '../../shared-components';\r\n\r\nexport const AdPlacementDynamicSearchPropTypes = {\r\n propTypes: {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n placementContentContainer: PropTypes.string,\r\n placementCard: PropTypes.string,\r\n placementTextContainer: PropTypes.string,\r\n placementAdsLabel: PropTypes.string,\r\n placementDisplayUrl: PropTypes.string,\r\n placementDescriptionContainer: PropTypes.string,\r\n placementDescription: PropTypes.string,\r\n }).isRequired,\r\n previewTexts: PropTypes.shape({\r\n longHeadline: PropTypes.string,\r\n description: PropTypes.string,\r\n displayUrl: PropTypes.string,\r\n url: PropTypes.string,\r\n }).isRequired,\r\n },\r\n defaultProps: {\r\n },\r\n};\r\n\r\nexport const DynamicSearchAdPlacementBase = (props) => {\r\n const {\r\n i18n,\r\n classes,\r\n previewTexts: {\r\n headline,\r\n description,\r\n finalUrl,\r\n displayUrl,\r\n },\r\n } = props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {i18n.getString(_TL_('Dynamically generated ad'))}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nDynamicSearchAdPlacementBase.propTypes = AdPlacementDynamicSearchPropTypes.propTypes;\r\n\r\nDynamicSearchAdPlacementBase.defaultProps = AdPlacementDynamicSearchPropTypes.defaultProps;\r\n\r\nexport const AdPlacementDynamicSearch = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getDynamicSearchAdPlacementStyles,\r\n { componentName: 'AdPlacementDynamicSearch' }\r\n);\r\n","export const getDynamicSearchAdPlacementStyles = () => ({\r\n placementCard: {\r\n background: 'white',\r\n borderRadius: '4px',\r\n boxShadow: '0px 0.3px 0.9px 0px rgba(0, 0, 0, 0.10), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13)',\r\n padding: '20px 16px',\r\n width: '482px',\r\n },\r\n placementTextCardContainer: {\r\n background: '#F5F5F5',\r\n minHeight: '200px',\r\n padding: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n placementTextContainer: {\r\n padding: '20px 10px 20px 20px',\r\n borderRadius: '8px',\r\n border: '1px solid #E1DFDD',\r\n background: 'white',\r\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.05)',\r\n fontWeight: '400',\r\n width: '380px',\r\n },\r\n placementInlineItems: {\r\n display: 'inline-flex',\r\n },\r\n placementHeadline: {\r\n color: '#1A0DAB',\r\n fontSize: '18px',\r\n lineHeight: '22px',\r\n },\r\n placementDescriptionContainer: {\r\n display: 'inline-flex',\r\n alignItems: 'baseline',\r\n },\r\n placementDescription: {\r\n color: '#666',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n wordBreak: 'break-word',\r\n },\r\n placementUrl: {\r\n color: '#006621',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n placementAdsLabel: {\r\n position: 'static !important',\r\n color: '#666 !important',\r\n border: '1px solid #ddd !important',\r\n borderRadius: '2px !important',\r\n fontSize: '11px !important',\r\n margin: '0 4px 0 0 !important',\r\n padding: '0 2px !important',\r\n },\r\n placementDisclaimer: {\r\n color: '#323130',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n marginTop: '20px',\r\n textAlign: 'center',\r\n },\r\n});\r\n","/* eslint-disable jsx-a11y/media-has-caption */\r\nimport React, { useEffect, useRef, useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\n\r\nimport { getVideoPlacementStyles } from '../styles/ad-placement-components/video-placement-styles';\r\n\r\n\r\nexport const VideoPlacementInner = ({\r\n classes,\r\n videos,\r\n}) => {\r\n const { src, height, width } = videos && videos.length > 0 ? videos[0] : {};\r\n\r\n const videoRef = useRef();\r\n\r\n // check for vertical video\r\n const isVerticalVideo = useMemo(() => height > width, [height, width]);\r\n const videoPlayerRootClass = isVerticalVideo ? classes.videoPlayerVertical : classes.videoPlayerRoot;\r\n\r\n useEffect(() => {\r\n if (videoRef.current) {\r\n videoRef.current.load();\r\n }\r\n }, [src]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nVideoPlacementInner.propTypes = {\r\n classes: PropTypes.shape({\r\n videoPlayerRoot: PropTypes.string,\r\n }),\r\n videos: PropTypes.arrayOf(PropTypes.shape({\r\n src: PropTypes.string,\r\n })),\r\n};\r\n\r\nVideoPlacementInner.defaultProps = {\r\n classes: {},\r\n videos: null,\r\n};\r\n\r\nexport const VideoPlacement = withUAPLThemedStyles(\r\n props => (\r\n \r\n ),\r\n getVideoPlacementStyles,\r\n { componentName: 'VideoPlacement' }\r\n);\r\n\r\n","export const getVideoPlacementStyles = () => ({\r\n placementCard: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n videoPlayerVertical: {\r\n height: '520px',\r\n width: '300px',\r\n padding: '10px',\r\n borderRadius: 10,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n videoPlayerRoot: {\r\n height: '100%',\r\n width: '100%',\r\n display: 'flex',\r\n padding: '20px',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getAdPreviewContainerBaseStyles, } from '../styles';\r\n\r\nconst ContainerBase = (props) => {\r\n const {\r\n titleText,\r\n isValid,\r\n onRenderHeader,\r\n onRenderPlacement,\r\n onRenderFooter,\r\n children,\r\n classes,\r\n previewContainerClassName,\r\n containerHeaderClassName,\r\n containerTitleClassName,\r\n containerFooterClassName,\r\n placementContainerClassName,\r\n } = props;\r\n\r\n return (\r\n
\r\n
\r\n {onRenderHeader ? onRenderHeader(props) : (\r\n titleText &&
{titleText}
\r\n )}\r\n
\r\n
\r\n {onRenderPlacement ? onRenderPlacement(props) : children}\r\n
\r\n
\r\n {onRenderFooter ? onRenderFooter() : null}\r\n
\r\n
\r\n );\r\n};\r\n\r\nContainerBase.propTypes = {\r\n titleText: PropTypes.string,\r\n isValid: PropTypes.bool,\r\n onRenderHeader: PropTypes.func,\r\n onRenderFooter: PropTypes.func,\r\n onRenderPlacement: PropTypes.func,\r\n classes: PropTypes.shape({\r\n adPreviewContainer: PropTypes.string,\r\n adPreviewContainerError: PropTypes.string,\r\n adPreviewContainerHeader: PropTypes.string,\r\n adPreviewContainerTitle: PropTypes.string,\r\n adPreviewPlacementContainer: PropTypes.string,\r\n adPreviewContainerFooter: PropTypes.string,\r\n }).isRequired,\r\n children: PropTypes.node.isRequired,\r\n previewContainerClassName: PropTypes.string,\r\n containerHeaderClassName: PropTypes.string,\r\n containerTitleClassName: PropTypes.string,\r\n containerFooterClassName: PropTypes.string,\r\n placementContainerClassName: PropTypes.string,\r\n};\r\n\r\nContainerBase.defaultProps = {\r\n titleText: undefined,\r\n onRenderHeader: undefined,\r\n onRenderFooter: undefined,\r\n onRenderPlacement: undefined,\r\n isValid: true,\r\n previewContainerClassName: undefined,\r\n containerHeaderClassName: undefined,\r\n containerTitleClassName: undefined,\r\n containerFooterClassName: undefined,\r\n placementContainerClassName: undefined,\r\n};\r\n\r\nexport const AdPreviewPlacementContainerBase = withUAPLThemedStyles(\r\n ContainerBase,\r\n getAdPreviewContainerBaseStyles,\r\n { componentName: 'AdPreviewPlacementContainerBase' }\r\n);\r\n","export const getAdPreviewContainerBaseStyles = (components, { palette = {} } = {}) => ({\r\n adPreviewContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: 'white',\r\n boxShadow: '0px 0.6px 1.8px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px rgba(0, 0, 0, 0.13)',\r\n borderRadius: 6,\r\n },\r\n adPreviewContainerError: {\r\n border: `1px solid ${palette.orange}`,\r\n },\r\n adPreviewContainerHeader: {\r\n display: 'flex',\r\n padding: [12, 12, 0, 16],\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n adPreviewContainerTitle: {\r\n },\r\n adPreviewPlacementContainer: {\r\n margin: 'auto',\r\n },\r\n adPreviewContainerFooter: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n});\r\n","//\r\n// each placement will use one of the following image types\r\n// the type defines the image size and aspect ratio\r\nexport const UAPImageType = {\r\n Image1x1: 'Image1x1',\r\n Image4x1: 'Image4x1',\r\n Image1x2: 'Image1x2',\r\n Image191x100: 'Image191x100',\r\n Image178x100: 'Image178x100',\r\n Image172x100: 'Image172x100',\r\n Image169x100: 'Image169x100',\r\n Image155x100: 'Image155x100',\r\n Image150x100: 'Image150x100',\r\n Image133x100: 'Image133x100',\r\n Image93x100: 'Image93x100',\r\n Image201x100: 'Image201x100',\r\n Image200x100: 'Image200x100',\r\n Image153x100: 'Image153x100',\r\n Image124x100: 'Image124x100',\r\n Image120x100: 'Image120x100',\r\n Image122x100: 'Image122x100',\r\n Image159x100: 'Image159x100',\r\n Image180x100: 'Image180x100',\r\n Image233x100: 'Image233x100',\r\n Image320x100: 'Image320x100',\r\n Image57x100: 'Image57x100',\r\n};\r\n\r\nexport const UAPVideoType = {\r\n VideoMedia16X9: 'VideoMedia16X9',\r\n VideoMedia5X4: 'VideoMedia5X4',\r\n VideoMedia1X1: 'VideoMedia1X1',\r\n VideoMedia4X5: 'VideoMedia4X5',\r\n VideoMedia9X16: 'VideoMedia9X16',\r\n};\r\n","//\r\n// uniquely identify a placement on supply side channels\r\n// - if a placement is used in more than one supply channels and share the same look,\r\n// then we could use one placement type to represent them all\r\nexport const UAPPlacementType = {\r\n // mma\r\n MMA_WideImage_4x1: 'MMA_WideImage_4x1',\r\n MMA_LandscapeImage_191x100: 'MMA_LandscapeImage_191x100',\r\n MMA_SquareImage_1x1: 'MMA_SquareImage_1x1',\r\n MMA_VerticalImage_1x2: 'MMA_VerticalImage_1x2',\r\n\r\n // audience ad (mma in msan)\r\n Audience_Network_WideImage_191x100: 'Audience_Network_WideImage_191x100',\r\n Audience_Network_SquareImage_1x1: 'Audience_Network_SquareImage_1x1',\r\n Microsoft_Edge_Single_Carousel_178x100: 'Microsoft_Edge_Single_Carousel_178x100',\r\n MSN_InArticle_Ad_150x100: 'MSN_InArticle_Ad_150x100',\r\n MSN_Small_Headline_133x100: 'MSN_Small_Headline_133x100',\r\n\r\n // audience ad (mma in msan) V2\r\n MsanV2_Microsoft_Edge_Carouse_l201x100: 'MsanV2_Microsoft_Edge_Carouse_l201x100',\r\n MsanV2_Microsoft_Edge_Mobile_1x1: 'MsanV2_Microsoft_Edge_Mobile_1x1',\r\n MsanV2_MSAN_Banner_2x1: 'MsanV2_MSAN_Banner_2x1',\r\n MsanV2_MSAN_River_191x100: 'MsanV2_MSAN_River_191x100',\r\n MsanV2_MSAN_Rectangle_120x100: 'MsanV2_MSAN_Rectangle_120x100',\r\n MsanV2_MSN_Carousel_169x100: 'MsanV2_MSN_Carousel_169x100',\r\n MsanV2_MSN_Partner_Stripe_153x100: 'MsanV2_MSN_Partner_Stripe_153x100',\r\n MsanV2_MSN_Restoday_124x100: 'MsanV2_MSN_Restoday_124x100',\r\n\r\n // pmax\r\n PMax_MMA_WideImage_4x1: 'PMax_MMA_WideImage_4x1',\r\n PMax_MMA_LandscapeImage_191x100: 'PMax_MMA_LandscapeImage_191x100',\r\n PMax_MMA_VerticalImage_1x2: 'PMax_MMA_VerticalImage_1x2',\r\n PMax_Audience_Network_WideImage_191x100: 'PMax_Audience_Network_WideImage_191x100',\r\n PMax_Audience_Network_SquareImage_1x1: 'PMax_Audience_Network_SquareImage_1x1',\r\n PMax_Microsoft_Edge_Single_Carousel_178x100: 'PMax_Microsoft_Edge_Single_Carousel_178x100',\r\n PMax_MSN_InArticle_Ad_150x100: 'PMax_MSN_InArticle_Ad_150x100',\r\n PMax_MSN_Small_Headline_133x100: 'PMax_MSN_Small_Headline_133x100',\r\n // pmax v2\r\n PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100: 'PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100',\r\n PMax_MMAV2_MSN_Single_Carousel_169x100: 'PMax_MMAV2_MSN_Single_Carousel_169x100',\r\n PMax_MMAV2_MSN_Restoday_124x100: 'PMax_MMAV2_MSN_Restoday_124x100',\r\n PMax_MMAV2_MSN_Partner_Stripe_153x100: 'PMax_MMAV2_MSN_Partner_Stripe_153x100',\r\n PMax_MMAV2_MSN_River_191x100: 'PMax_MMAV2_MSN_River_191x100',\r\n PMax_Video: 'PMax_Video',\r\n PMax_MMAV2_Microsoft_Edge_Mobile_1x1: 'PMax_MMAV2_Microsoft_Edge_Mobile_1x1',\r\n\r\n // Boost\r\n Boost_Hero_Image_Carousel_200x100: 'Boost_Hero_Image_Carousel_200x100',\r\n Boost_Hero_Image_Carousel_122x100: 'Boost_Hero_Image_Carousel_122x100',\r\n Boost_Hero_Image_Carousel_159x100: 'Boost_Hero_Image_Carousel_159x100',\r\n Boost_Hero_Image_Carousel_180x100: 'Boost_Hero_Image_Carousel_180x100',\r\n Boost_Hero_Image_Carousel_233x100: 'Boost_Hero_Image_Carousel_233x100',\r\n Boost_Hero_Image_Carousel_320x100: 'Boost_Hero_Image_Carousel_320x100',\r\n Boost_Hero_Image_Carousel_57x100: 'Boost_Hero_Image_Carousel_57x100',\r\n Boost_Windows_Spotlight_191x100: 'Boost_Windows_Spotlight_191x100',\r\n Boost_Discover_Card_1x1: 'Boost_Discover_Card_1x1',\r\n Boost_Start_Menu: 'Boost_Start_Menu',\r\n Boost_Action_Center: 'Boost_Action_Center',\r\n Boost_Banner: 'Boost_Banner',\r\n Boost_Prong1_Prong2_Feed_191x100: 'Boost_Prong1_Prong2_Feed_191x100',\r\n Boost_Coachmark_175x100: 'Boost_Coachmark_175x100',\r\n\r\n // image extension\r\n ImgExt_MMAV2_MSN_River_191x100: 'ImgExt_MMAV2_MSN_River_191x100',\r\n ImgExt_MMAV2_MSN_Single_Carousel_169x100: 'ImgExt_MMAV2_MSN_Single_Carousel_169x100',\r\n ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1: 'ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1',\r\n ImgExt_Audience_Network_WideImage_191x100: 'ImgExt_Audience_Network_WideImage_191x100',\r\n ImgExt_Audience_Network_SquareImage_1x1: 'ImgExt_Audience_Network_SquareImage_1x1',\r\n ImgExt_Microsoft_Edge_Single_Carousel_178x100: 'ImgExt_Microsoft_Edge_Single_Carousel_178x100',\r\n ImgExt_Bing_Desktop_SingleImage_Extension_178x100: 'ImgExt_Bing_Desktop_SingleImage_Extension_178x100',\r\n ImgExt_Microsoft_Edge_Medium_Headline_172x100: 'ImgExt_Microsoft_Edge_Medium_Headline_172x100',\r\n ImgExt_MSN_Single_Carousel_169x100: 'ImgExt_MSN_Single_Carousel_169x100',\r\n ImgExt_MSN_Medium_Headline_155x100: 'ImgExt_MSN_Medium_Headline_155x100',\r\n ImgExt_MSN_InArticle_Ad_150x100: 'ImgExt_MSN_InArticle_Ad_150x100',\r\n ImgExt_MSN_Small_Headline_133x100: 'ImgExt_MSN_Small_Headline_133x100',\r\n ImgExt_Bing_Desktop_MultiImage_Extension_133x100: 'ImgExt_Bing_Desktop_MultiImage_Extension_133x100',\r\n ImgExt_Bing_Mobile_MultiImage_Extension_133x100: 'ImgExt_Bing_Mobile_MultiImage_Extension_133x100',\r\n ImgExt_MSN_Double_Carousel_93x100: 'ImgExt_MSN_Double_Carousel_93x100',\r\n\r\n // text ads\r\n Outlook_Text_Mobile: 'TextOutlookMobile',\r\n Outlook_Text_Web: 'TextOutlookWeb',\r\n Bing_Search_Mobile: 'BingTextMobile',\r\n Bing_Search_Desktop: 'BingTextDesktop',\r\n Bing_Search_Text: 'BingText',\r\n\r\n // responsive mma\r\n Responsive_MMA_WideImage_4x1: 'Responsive_MMA_WideImage_4x1',\r\n Responsive_MMA_LandscapeImage_191x100: 'Responsive_MMA_LandscapeImage_191x100',\r\n Responsive_MMA_SquareImage_1x1: 'Responsive_MMA_SquareImage_1x1',\r\n Responsive_MMA_VerticalImage_1x2: 'Responsive_MMA_VerticalImage_1x2',\r\n\r\n // responsive audience ad (mma in msan)\r\n Responsive_Audience_Network_WideImage_191x100: 'Responsive_Audience_Network_WideImage_191x100',\r\n Responsive_Audience_Network_SquareImage_1x1: 'Responsive_Audience_Network_SquareImage_1x1',\r\n Responsive_Microsoft_Edge_Single_Carousel_178x100: 'Responsive_Microsoft_Edge_Single_Carousel_178x100',\r\n Responsive_MSN_InArticle_Ad_150x100: 'Responsive_MSN_InArticle_Ad_150x100',\r\n Responsive_MSN_Small_Headline_133x100: 'Responsive_MSN_Small_Headline_133x100',\r\n\r\n // responsive audience ad (mma in msan) V2\r\n Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100: 'Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100',\r\n Responsive_MsanV2_Microsoft_Edge_Mobile_1x1: 'Responsive_MsanV2_Microsoft_Edge_Mobile_1x1',\r\n Responsive_MsanV2_MSAN_Banner_2x1: 'Responsive_MsanV2_MSAN_Banner_2x1',\r\n Responsive_MsanV2_MSAN_River_191x100: 'Responsive_MsanV2_MSAN_River_191x100',\r\n Responsive_MsanV2_MSAN_Rectangle_120x100: 'Responsive_MsanV2_MSAN_Rectangle_120x100',\r\n Responsive_MsanV2_MSN_Carousel_169x100: 'Responsive_MsanV2_MSN_Carousel_169x100',\r\n Responsive_MsanV2_MSN_Partner_Stripe_153x100: 'Responsive_MsanV2_MSN_Partner_Stripe_153x100',\r\n Responsive_MsanV2_MSN_Restoday_124x100: 'Responsive_MsanV2_MSN_Restoday_124x100',\r\n\r\n // responsive text ads\r\n Responsive_Outlook_Text_Mobile: 'ResponsiveTextOutlookMobile',\r\n Responsive_Outlook_Text_Web: 'ResponsiveTextOutlookWeb',\r\n Responsive_Bing_Search_Text: 'ResponsiveBingText',\r\n\r\n // responsive boost ads\r\n Responsive_Boost_Windows_Spotlight_191x100: 'Responsive_Boost_Windows_Spotlight_191x100',\r\n Responsive_Boost_Discover_Card_1x1: 'Responsive_Boost_Discover_Card_1x1',\r\n Responsive_Boost_Start_Menu: 'Responsive_Boost_Start_Menu',\r\n Responsive_Boost_Action_Center: 'Responsive_Boost_Action_Center',\r\n Responsive_Boost_Banner: 'Responsive_Boost_Banner',\r\n Responsive_Boost_Prong1_Prong2_Feed_191x100: 'Responsive_Boost_Prong1_Prong2_Feed_191x100',\r\n Responsive_Boost_Coachmark_175x100: 'Responsive_Boost_Coachmark_175x100',\r\n\r\n // responsive search ads\r\n Responsive_Search: 'ResponsiveSearch',\r\n Responsive_Search_Desktop: 'ResponsiveSearchDesktop',\r\n Responsive_Search_Mobile: 'ResponsiveSearchMobile',\r\n\r\n // responsive pmax\r\n Responsive_PMax_MMA_WideImage_4x1: 'Responsive_PMax_MMA_WideImage_4x1',\r\n Responsive_PMax_MMA_LandscapeImage_191x100: 'Responsive_PMax_MMA_LandscapeImage_191x100',\r\n Responsive_PMax_MMA_VerticalImage_1x2: 'Responsive_PMax_MMA_VerticalImage_1x2',\r\n Responsive_PMax_Audience_Network_WideImage_191x100: 'Responsive_PMax_Audience_Network_WideImage_191x100',\r\n Responsive_PMax_Audience_Network_SquareImage_1x1: 'Responsive_PMax_Audience_Network_SquareImage_1x1',\r\n Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100: 'Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100',\r\n Responsive_PMax_MSN_InArticle_Ad_150x100: 'Responsive_PMax_MSN_InArticle_Ad_150x100',\r\n Responsive_PMax_MSN_Small_Headline_133x100: 'Responsive_PMax_MSN_Small_Headline_133x100',\r\n // responsive pmax v2\r\n Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100: 'Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100',\r\n Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100: 'Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100',\r\n Responsive_PMax_MMAV2_MSN_Restoday_124x100: 'Responsive_PMax_MMAV2_MSN_Restoday_124x100',\r\n Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100: 'Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100',\r\n Responsive_PMax_MMAV2_MSN_River_191x100: 'Responsive_PMax_MMAV2_MSN_River_191x100',\r\n Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1: 'Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1',\r\n\r\n // dynamic search ads\r\n Dynamic_Search: 'DynamicSearch',\r\n\r\n // linkedin ads\r\n LinkedIn_Single_Image_Desktop_Landscape: 'LinkedIn_Single_Image_Desktop_Landscape',\r\n LinkedIn_Single_Image_Mobile_Landscape: 'LinkedIn_Single_Image_Mobile_Landscape',\r\n LinkedIn_Single_Image_Medium_Rectangle_Landscape: 'LinkedIn_Single_Image_Medium_Rectangle_Landscape',\r\n LinkedIn_Single_Image_Mobile_Interstitial_Landscape: 'LinkedIn_Single_Image_Mobile_Interstitial_Landscape',\r\n LinkedIn_Single_Image_Native_Landscape: 'LinkedIn_Single_Image_Native_Landscape',\r\n\r\n LinkedIn_Single_Image_Desktop_Square: 'LinkedIn_Single_Image_Desktop_Square',\r\n LinkedIn_Single_Image_Mobile_Square: 'LinkedIn_Single_Image_Mobile_Square',\r\n LinkedIn_Single_Image_Medium_Rectangle_Square: 'LinkedIn_Single_Image_Medium_Rectangle_Square',\r\n LinkedIn_Single_Image_Mobile_Interstitial_Square: 'LinkedIn_Single_Image_Mobile_Interstitial_Square',\r\n LinkedIn_Single_Image_Native_Square: 'LinkedIn_Single_Image_Native_Square',\r\n\r\n LinkedIn_Single_Image_Mobile_Vertical: 'LinkedIn_Single_Image_Mobile_Vertical',\r\n LinkedIn_Single_Image_Medium_Rectangle_Vertical: 'LinkedIn_Single_Image_Medium_Rectangle_Vertical',\r\n LinkedIn_Single_Image_Mobile_Interstitial_Vertical: 'LinkedIn_Single_Image_Mobile_Interstitial_Vertical',\r\n LinkedIn_Single_Image_Native_Vertical: 'LinkedIn_Single_Image_Native_Vertical',\r\n\r\n Unified_App_Ads_Video_Horizontal: 'Unified_App_Ads_Video_Horizontal',\r\n Unified_App_Ads_Bing_Search: 'Unified_App_Ads_Bing_Search',\r\n Unified_App_Ads_Bing_Search_Text: 'Unified_App_Ads_Bing_Search_Text',\r\n Unified_App_Ads_Causal_Games_Dimensions: 'Unified_App_Ads_Causal_Games_Dimensions',\r\n Unified_App_Ads_M365_Outlook: 'Unified_App_Ads_M365_Outlook',\r\n Unified_App_Ads_MSN_Display: 'Unified_App_Ads_MSN_Display',\r\n // todo: video\r\n};\r\n","\r\nexport const UAPAdExtensionType = {\r\n SiteLink: 'SiteLink',\r\n Callout: 'Callout',\r\n Promotion: 'Promotion',\r\n StructuredSnippet: 'StructuredSnippet',\r\n Price: 'Price',\r\n};\r\n","import _ from 'underscore';\r\nimport {\r\n UAPImageType,\r\n UAPPlacementType as PT,\r\n UAPVideoType,\r\n // UAPPlacementMeta,\r\n} from '../@types';\r\n\r\nexport const UAPLPlacementMetaList /* : Record */ = {\r\n [PT.MMA_WideImage_4x1]: {\r\n placementType: PT.MMA_WideImage_4x1,\r\n imageType: UAPImageType.Image4x1,\r\n aspectRatio: 4,\r\n // used to compare ratio values, use string instead of number to avoid precision issue\r\n aspectRatioStr: '4:1', // refer to: private\\ad-creator-tools\\packages\\media-common-utils\\src\\aspect-ratio-config.js\r\n previewHeight: 152,\r\n minSize: [608, 152],\r\n },\r\n [PT.MMA_LandscapeImage_191x100]: {\r\n placementType: PT.MMA_LandscapeImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 244,\r\n minSize: [703, 368],\r\n },\r\n [PT.MMA_SquareImage_1x1]: {\r\n placementType: PT.MMA_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 400,\r\n minSize: [470, 470],\r\n },\r\n [PT.MMA_VerticalImage_1x2]: {\r\n placementType: PT.MMA_VerticalImage_1x2,\r\n imageType: UAPImageType.Image1x2,\r\n aspectRatio: 0.5,\r\n aspectRatioStr: '1:2',\r\n previewHeight: 400,\r\n minSize: [470, 940],\r\n },\r\n\r\n // MMA in MSAN\r\n [PT.Audience_Network_WideImage_191x100]: {\r\n placementType: PT.Audience_Network_WideImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 200,\r\n minSize: [703, 368],\r\n },\r\n [PT.Microsoft_Edge_Single_Carousel_178x100]: {\r\n placementType: PT.Microsoft_Edge_Single_Carousel_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 350,\r\n minSize: [624, 350],\r\n },\r\n [PT.MSN_InArticle_Ad_150x100]: {\r\n placementType: PT.MSN_InArticle_Ad_150x100,\r\n imageType: UAPImageType.Image150x100,\r\n aspectRatio: 1.5,\r\n aspectRatioStr: '150:100',\r\n previewHeight: 200,\r\n minSize: [300, 200],\r\n },\r\n [PT.MSN_Small_Headline_133x100]: {\r\n placementType: PT.MSN_Small_Headline_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 75,\r\n minSize: [100, 75],\r\n },\r\n [PT.Audience_Network_SquareImage_1x1]: {\r\n placementType: PT.Audience_Network_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [300, 300],\r\n },\r\n\r\n // pmax\r\n [PT.PMax_MMA_LandscapeImage_191x100]: {\r\n placementType: PT.PMax_MMA_LandscapeImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 244,\r\n minSize: [703, 368],\r\n },\r\n [PT.PMax_MMA_WideImage_4x1]: {\r\n placementType: PT.PMax_MMA_WideImage_4x1,\r\n imageType: UAPImageType.Image4x1,\r\n aspectRatio: 4,\r\n aspectRatioStr: '4:1',\r\n previewHeight: 152,\r\n minSize: [608, 152],\r\n },\r\n [PT.PMax_MMA_VerticalImage_1x2]: {\r\n placementType: PT.PMax_MMA_VerticalImage_1x2,\r\n imageType: UAPImageType.Image1x2,\r\n aspectRatio: 0.5,\r\n aspectRatioStr: '1:2',\r\n previewHeight: 400,\r\n minSize: [470, 940],\r\n },\r\n [PT.PMax_Audience_Network_SquareImage_1x1]: {\r\n placementType: PT.PMax_Audience_Network_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [300, 300],\r\n },\r\n [PT.PMax_Audience_Network_WideImage_191x100]: {\r\n placementType: PT.PMax_Audience_Network_WideImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 200,\r\n minSize: [703, 368],\r\n },\r\n [PT.PMax_MSN_InArticle_Ad_150x100]: {\r\n placementType: PT.PMax_MSN_InArticle_Ad_150x100,\r\n imageType: UAPImageType.Image150x100,\r\n aspectRatio: 1.5,\r\n aspectRatioStr: '150:100',\r\n previewHeight: 200,\r\n minSize: [300, 200],\r\n },\r\n [PT.PMax_MSN_Small_Headline_133x100]: {\r\n placementType: PT.PMax_MSN_Small_Headline_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 75,\r\n minSize: [100, 75],\r\n },\r\n [PT.PMax_Microsoft_Edge_Single_Carousel_178x100]: {\r\n placementType: PT.PMax_Microsoft_Edge_Single_Carousel_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 350,\r\n minSize: [624, 350],\r\n },\r\n [PT.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100]: {\r\n placementType: PT.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n imageType: UAPImageType.Image201x100,\r\n aspectRatio: 2.01,\r\n aspectRatioStr: '201:100',\r\n previewHeight: 304,\r\n minSize: [612, 304],\r\n },\r\n [PT.PMax_MMAV2_MSN_Single_Carousel_169x100]: {\r\n placementType: PT.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 372,\r\n minSize: [628, 372],\r\n },\r\n [PT.PMax_MMAV2_MSN_Restoday_124x100]: {\r\n placementType: PT.PMax_MMAV2_MSN_Restoday_124x100,\r\n imageType: UAPImageType.Image124x100,\r\n aspectRatio: 1.24,\r\n aspectRatioStr: '124:100',\r\n previewHeight: 84,\r\n minSize: [104, 84],\r\n },\r\n [PT.PMax_MMAV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 197,\r\n minSize: [306, 200],\r\n },\r\n [PT.PMax_MMAV2_MSN_River_191x100]: {\r\n placementType: PT.PMax_MMAV2_MSN_River_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 157,\r\n minSize: [300, 157],\r\n },\r\n\r\n //\r\n // MMA in MSAN V2\r\n [PT.MsanV2_Microsoft_Edge_Carouse_l201x100]: {\r\n placementType: PT.MsanV2_Microsoft_Edge_Carouse_l201x100,\r\n imageType: UAPImageType.Image201x100,\r\n aspectRatio: 2.01,\r\n aspectRatioStr: '201:100',\r\n previewHeight: 304,\r\n minSize: [612, 304],\r\n },\r\n [PT.MsanV2_MSAN_Banner_2x1]: {\r\n placementType: PT.MsanV2_MSAN_Banner_2x1,\r\n imageType: UAPImageType.Image200x100,\r\n aspectRatio: 2,\r\n aspectRatioStr: '2:1',\r\n previewHeight: 90,\r\n minSize: [200, 100],\r\n },\r\n [PT.MsanV2_MSAN_River_191x100]: {\r\n placementType: PT.MsanV2_MSAN_River_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 157,\r\n minSize: [300, 157],\r\n },\r\n [PT.MsanV2_MSN_Carousel_169x100]: {\r\n placementType: PT.MsanV2_MSN_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 372,\r\n minSize: [628, 372],\r\n },\r\n [PT.MsanV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.MsanV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 197,\r\n minSize: [306, 200],\r\n },\r\n [PT.MsanV2_MSN_Restoday_124x100]: {\r\n placementType: PT.MsanV2_MSN_Restoday_124x100,\r\n imageType: UAPImageType.Image124x100,\r\n aspectRatio: 1.24,\r\n aspectRatioStr: '124:100',\r\n previewHeight: 84,\r\n minSize: [104, 84],\r\n },\r\n [PT.MsanV2_MSAN_Rectangle_120x100]: {\r\n placementType: PT.MsanV2_MSAN_Rectangle_120x100,\r\n imageType: UAPImageType.Image120x100,\r\n aspectRatio: 1.2,\r\n aspectRatioStr: '120:100',\r\n previewHeight: 250,\r\n minSize: [300, 250],\r\n },\r\n [PT.MsanV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.MsanV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [114, 114],\r\n },\r\n [PT.PMax_Video]: {\r\n placementType: PT.PMax_Video,\r\n imageType: UAPVideoType.VideoMedia16X9,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 220,\r\n minSize: [360, 640],\r\n },\r\n\r\n //\r\n // Boost\r\n [PT.Boost_Hero_Image_Carousel_200x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_200x100,\r\n imageType: UAPImageType.Image200x100,\r\n aspectRatio: 2,\r\n aspectRatioStr: '2:1',\r\n previewHeight: 320,\r\n minSize: [200, 100],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_122x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_122x100,\r\n imageType: UAPImageType.Image122x100,\r\n aspectRatio: 1.225,\r\n aspectRatioStr: '122:100',\r\n previewHeight: 320,\r\n minSize: [450, 368],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_159x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_159x100,\r\n imageType: UAPImageType.Image159x100,\r\n aspectRatio: 1.59,\r\n aspectRatioStr: '159:100',\r\n previewHeight: 320,\r\n minSize: [585, 368],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_180x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_180x100,\r\n imageType: UAPImageType.Image180x100,\r\n aspectRatio: 1.805,\r\n aspectRatioStr: '180:100',\r\n previewHeight: 320,\r\n minSize: [664, 368],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_233x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_233x100,\r\n imageType: UAPImageType.Image233x100,\r\n aspectRatio: 2.33,\r\n aspectRatioStr: '233:100',\r\n previewHeight: 250,\r\n minSize: [703, 301],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_320x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_320x100,\r\n imageType: UAPImageType.Image320x100,\r\n aspectRatio: 3.20,\r\n aspectRatioStr: '320:100',\r\n previewHeight: 180,\r\n minSize: [703, 219],\r\n },\r\n [PT.Boost_Hero_Image_Carousel_57x100]: {\r\n placementType: PT.Boost_Hero_Image_Carousel_57x100,\r\n imageType: UAPImageType.Image57x100,\r\n aspectRatio: 0.57,\r\n aspectRatioStr: '57:100',\r\n previewHeight: 320,\r\n minSize: [210, 368],\r\n },\r\n [PT.Boost_Windows_Spotlight_191x100]: {\r\n placementType: PT.Boost_Windows_Spotlight_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.9,\r\n aspectRatioStr: '190:100',\r\n previewHeight: 400,\r\n minSize: [268, 140],\r\n },\r\n [PT.Boost_Discover_Card_1x1]: {\r\n placementType: PT.Boost_Discover_Card_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 250,\r\n minSize: [300, 300],\r\n },\r\n [PT.Boost_Start_Menu]: {\r\n placementType: PT.Boost_Start_Menu,\r\n },\r\n [PT.Boost_Action_Center]: {\r\n placementType: PT.Boost_Action_Center,\r\n logoHeight: 48,\r\n },\r\n [PT.Boost_Banner]: {\r\n placementType: PT.Boost_Banner,\r\n logoHeight: 20,\r\n },\r\n [PT.Boost_Prong1_Prong2_Feed_191x100]: {\r\n placementType: PT.Boost_Prong1_Prong2_Feed_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.914,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 140,\r\n minSize: [268, 140],\r\n },\r\n [PT.Boost_Coachmark_175x100]: {\r\n placementType: PT.Boost_Coachmark_175x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.75,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 160,\r\n minSize: [280, 160],\r\n },\r\n\r\n //\r\n // image extension\r\n [PT.ImgExt_Audience_Network_WideImage_191x100]: {\r\n placementType: PT.ImgExt_Audience_Network_WideImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 200,\r\n minSize: [703, 368],\r\n },\r\n [PT.ImgExt_Microsoft_Edge_Single_Carousel_178x100]: {\r\n placementType: PT.ImgExt_Microsoft_Edge_Single_Carousel_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 350,\r\n minSize: [624, 350],\r\n },\r\n [PT.ImgExt_Bing_Desktop_SingleImage_Extension_178x100]: {\r\n placementType: PT.ImgExt_Bing_Desktop_SingleImage_Extension_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 45,\r\n minSize: [624, 350],\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_Microsoft_Edge_Medium_Headline_172x100]: {\r\n placementType: PT.ImgExt_Microsoft_Edge_Medium_Headline_172x100,\r\n imageType: UAPImageType.Image172x100,\r\n aspectRatio: 1.72,\r\n aspectRatioStr: '172:100',\r\n previewHeight: 174,\r\n minSize: [300, 174],\r\n },\r\n [PT.ImgExt_MSN_Single_Carousel_169x100]: {\r\n placementType: PT.ImgExt_MSN_Single_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 368,\r\n minSize: [622, 368],\r\n },\r\n [PT.ImgExt_MSN_Medium_Headline_155x100]: {\r\n placementType: PT.ImgExt_MSN_Medium_Headline_155x100,\r\n imageType: UAPImageType.Image155x100,\r\n aspectRatio: 1.55,\r\n aspectRatioStr: '155:100',\r\n previewHeight: 194,\r\n minSize: [300, 194],\r\n },\r\n [PT.ImgExt_MSN_InArticle_Ad_150x100]: {\r\n placementType: PT.ImgExt_MSN_InArticle_Ad_150x100,\r\n imageType: UAPImageType.Image150x100,\r\n aspectRatio: 1.50,\r\n aspectRatioStr: '150:100',\r\n previewHeight: 200,\r\n minSize: [300, 200],\r\n },\r\n [PT.ImgExt_MSN_Small_Headline_133x100]: {\r\n placementType: PT.ImgExt_MSN_Small_Headline_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 75,\r\n minSize: [100, 75],\r\n },\r\n [PT.ImgExt_Bing_Desktop_MultiImage_Extension_133x100]: {\r\n placementType: PT.ImgExt_Bing_Desktop_MultiImage_Extension_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 100,\r\n minSize: [100, 75],\r\n hasMultiImages: true,\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_Bing_Mobile_MultiImage_Extension_133x100]: {\r\n placementType: PT.ImgExt_Bing_Mobile_MultiImage_Extension_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 310,\r\n minSize: [100, 75],\r\n hasMultiImages: true,\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_Audience_Network_SquareImage_1x1]: {\r\n placementType: PT.ImgExt_Audience_Network_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [300, 300],\r\n },\r\n [PT.ImgExt_MSN_Double_Carousel_93x100]: {\r\n placementType: PT.ImgExt_MSN_Double_Carousel_93x100,\r\n imageType: UAPImageType.Image93x100,\r\n aspectRatio: 0.93,\r\n aspectRatioStr: '93:100',\r\n previewHeight: 333,\r\n minSize: [311, 333],\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_MMAV2_MSN_River_191x100]: {\r\n placementType: PT.ImgExt_MMAV2_MSN_River_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 157,\r\n minSize: [300, 157],\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_MMAV2_MSN_Single_Carousel_169x100]: {\r\n placementType: PT.ImgExt_MMAV2_MSN_Single_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 372,\r\n minSize: [628, 372],\r\n ignoreImageFitting: true,\r\n },\r\n [PT.ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 114,\r\n minSize: [114, 114],\r\n },\r\n\r\n // text ads\r\n [PT.Outlook_Text_Mobile]: {\r\n placementType: PT.Outlook_Text_Mobile,\r\n logoHeight: 32,\r\n },\r\n [PT.Outlook_Text_Web]: {\r\n placementType: PT.Outlook_Text_Web,\r\n logoHeight: 28,\r\n },\r\n [PT.Bing_Search_Mobile]: {\r\n placementType: PT.Bing_Search_Mobile,\r\n },\r\n [PT.Bing_Search_Desktop]: {\r\n placementType: PT.Bing_Search_Desktop,\r\n },\r\n [PT.Bing_Search_Text]: {\r\n placementType: PT.Bing_Search_Text,\r\n logoHeight: 37,\r\n },\r\n\r\n [PT.Responsive_MMA_WideImage_4x1]: {\r\n placementType: PT.Responsive_MMA_WideImage_4x1,\r\n imageType: UAPImageType.Image4x1,\r\n aspectRatio: 4,\r\n // used to compare ratio values, use string instead of number to avoid precision issue\r\n aspectRatioStr: '4:1', // refer to: private\\ad-creator-tools\\packages\\media-common-utils\\src\\aspect-ratio-config.js\r\n previewHeight: 152,\r\n minSize: [608, 152],\r\n },\r\n [PT.Responsive_MMA_LandscapeImage_191x100]: {\r\n placementType: PT.Responsive_MMA_LandscapeImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 244,\r\n minSize: [703, 368],\r\n },\r\n [PT.Responsive_MMA_SquareImage_1x1]: {\r\n placementType: PT.Responsive_MMA_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 400,\r\n minSize: [470, 470],\r\n },\r\n [PT.Responsive_MMA_VerticalImage_1x2]: {\r\n placementType: PT.Responsive_MMA_VerticalImage_1x2,\r\n imageType: UAPImageType.Image1x2,\r\n aspectRatio: 0.5,\r\n aspectRatioStr: '1:2',\r\n previewHeight: 400,\r\n minSize: [470, 940],\r\n },\r\n\r\n // MMA in MSAN\r\n [PT.Responsive_Audience_Network_WideImage_191x100]: {\r\n placementType: PT.Responsive_Audience_Network_WideImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 200,\r\n minSize: [703, 368],\r\n },\r\n [PT.Responsive_Microsoft_Edge_Single_Carousel_178x100]: {\r\n placementType: PT.Responsive_Microsoft_Edge_Single_Carousel_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 350,\r\n minSize: [624, 350],\r\n },\r\n [PT.Responsive_MSN_InArticle_Ad_150x100]: {\r\n placementType: PT.Responsive_MSN_InArticle_Ad_150x100,\r\n imageType: UAPImageType.Image150x100,\r\n aspectRatio: 1.5,\r\n aspectRatioStr: '150:100',\r\n previewHeight: 200,\r\n minSize: [300, 200],\r\n },\r\n [PT.Responsive_MSN_Small_Headline_133x100]: {\r\n placementType: PT.Responsive_MSN_Small_Headline_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 75,\r\n minSize: [100, 75],\r\n },\r\n [PT.Responsive_Audience_Network_SquareImage_1x1]: {\r\n placementType: PT.Responsive_Audience_Network_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [300, 300],\r\n },\r\n\r\n // Responsive MMA in MSAN V2\r\n [PT.Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100]: {\r\n placementType: PT.Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100,\r\n imageType: UAPImageType.Image201x100,\r\n aspectRatio: 2.01,\r\n aspectRatioStr: '201:100',\r\n previewHeight: 304,\r\n minSize: [612, 304],\r\n },\r\n [PT.Responsive_MsanV2_MSAN_Banner_2x1]: {\r\n placementType: PT.Responsive_MsanV2_MSAN_Banner_2x1,\r\n imageType: UAPImageType.Image200x100,\r\n aspectRatio: 2,\r\n aspectRatioStr: '2:1',\r\n previewHeight: 90,\r\n minSize: [200, 100],\r\n },\r\n [PT.Responsive_MsanV2_MSAN_River_191x100]: {\r\n placementType: PT.Responsive_MsanV2_MSAN_River_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 157,\r\n minSize: [300, 157],\r\n },\r\n [PT.Responsive_MsanV2_MSN_Carousel_169x100]: {\r\n placementType: PT.Responsive_MsanV2_MSN_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 372,\r\n minSize: [628, 372],\r\n },\r\n [PT.Responsive_MsanV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.Responsive_MsanV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 197,\r\n minSize: [306, 200],\r\n },\r\n [PT.Responsive_MsanV2_MSN_Restoday_124x100]: {\r\n placementType: PT.Responsive_MsanV2_MSN_Restoday_124x100,\r\n imageType: UAPImageType.Image124x100,\r\n aspectRatio: 1.24,\r\n aspectRatioStr: '124:100',\r\n previewHeight: 84,\r\n minSize: [104, 84],\r\n },\r\n [PT.Responsive_MsanV2_MSAN_Rectangle_120x100]: {\r\n placementType: PT.Responsive_MsanV2_MSAN_Rectangle_120x100,\r\n imageType: UAPImageType.Image120x100,\r\n aspectRatio: 1.2,\r\n aspectRatioStr: '120:100',\r\n previewHeight: 250,\r\n minSize: [300, 250],\r\n },\r\n [PT.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [114, 114],\r\n },\r\n\r\n [PT.Responsive_PMax_MMA_LandscapeImage_191x100]: {\r\n placementType: PT.Responsive_PMax_MMA_LandscapeImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 244,\r\n minSize: [703, 368],\r\n },\r\n [PT.Responsive_PMax_MMA_WideImage_4x1]: {\r\n placementType: PT.Responsive_PMax_MMA_WideImage_4x1,\r\n imageType: UAPImageType.Image4x1,\r\n aspectRatio: 4,\r\n aspectRatioStr: '4:1',\r\n previewHeight: 152,\r\n minSize: [608, 152],\r\n },\r\n [PT.Responsive_PMax_MMA_VerticalImage_1x2]: {\r\n placementType: PT.Responsive_PMax_MMA_VerticalImage_1x2,\r\n imageType: UAPImageType.Image1x2,\r\n aspectRatio: 0.5,\r\n aspectRatioStr: '1:2',\r\n previewHeight: 400,\r\n minSize: [470, 940],\r\n },\r\n [PT.Responsive_PMax_Audience_Network_SquareImage_1x1]: {\r\n placementType: PT.Responsive_PMax_Audience_Network_SquareImage_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 75,\r\n minSize: [300, 300],\r\n },\r\n [PT.Responsive_PMax_Audience_Network_WideImage_191x100]: {\r\n placementType: PT.Responsive_PMax_Audience_Network_WideImage_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 200,\r\n minSize: [703, 368],\r\n },\r\n [PT.Responsive_PMax_MSN_InArticle_Ad_150x100]: {\r\n placementType: PT.Responsive_PMax_MSN_InArticle_Ad_150x100,\r\n imageType: UAPImageType.Image150x100,\r\n aspectRatio: 1.5,\r\n aspectRatioStr: '150:100',\r\n previewHeight: 200,\r\n minSize: [300, 200],\r\n },\r\n [PT.Responsive_PMax_MSN_Small_Headline_133x100]: {\r\n placementType: PT.Responsive_PMax_MSN_Small_Headline_133x100,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 75,\r\n minSize: [100, 75],\r\n },\r\n [PT.Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100]: {\r\n placementType: PT.Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.78,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 350,\r\n minSize: [624, 350],\r\n },\r\n\r\n [PT.Responsive_Outlook_Text_Mobile]: {\r\n placementType: PT.Responsive_Outlook_Text_Mobile,\r\n logoHeight: 24,\r\n },\r\n [PT.Responsive_Outlook_Text_Web]: {\r\n placementType: PT.Responsive_Outlook_Text_Web,\r\n logoHeight: 24,\r\n },\r\n [PT.Responsive_Bing_Search_Text]: {\r\n placementType: PT.Responsive_Bing_Search_Text,\r\n },\r\n\r\n [PT.Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n imageType: UAPImageType.Image201x100,\r\n aspectRatio: 2.01,\r\n aspectRatioStr: '201:100',\r\n previewHeight: 304,\r\n minSize: [612, 304],\r\n },\r\n [PT.Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n imageType: UAPImageType.Image169x100,\r\n aspectRatio: 1.69,\r\n aspectRatioStr: '169:100',\r\n previewHeight: 372,\r\n minSize: [628, 372],\r\n },\r\n [PT.Responsive_PMax_MMAV2_MSN_Restoday_124x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_MSN_Restoday_124x100,\r\n imageType: UAPImageType.Image124x100,\r\n aspectRatio: 1.24,\r\n aspectRatioStr: '124:100',\r\n previewHeight: 84,\r\n minSize: [104, 84],\r\n },\r\n [PT.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 197,\r\n minSize: [306, 200],\r\n },\r\n [PT.Responsive_PMax_MMAV2_MSN_River_191x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_MSN_River_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 157,\r\n minSize: [300, 157],\r\n },\r\n\r\n // responsive boost ads\r\n [PT.Responsive_Boost_Windows_Spotlight_191x100]: {\r\n placementType: PT.Responsive_Boost_Windows_Spotlight_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.9,\r\n aspectRatioStr: '190:100',\r\n previewHeight: 250, // use a smaller value for responsive version\r\n minSize: [268, 140],\r\n },\r\n [PT.Responsive_Boost_Discover_Card_1x1]: {\r\n placementType: PT.Responsive_Boost_Discover_Card_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 200,\r\n minSize: [300, 300],\r\n },\r\n [PT.Responsive_Boost_Start_Menu]: {\r\n placementType: PT.Responsive_Boost_Start_Menu,\r\n },\r\n [PT.Responsive_Boost_Action_Center]: {\r\n placementType: PT.Responsive_Boost_Action_Center,\r\n logoHeight: 48,\r\n },\r\n [PT.Responsive_Boost_Banner]: {\r\n placementType: PT.Responsive_Boost_Banner,\r\n logoHeight: 20,\r\n },\r\n [PT.Responsive_Boost_Prong1_Prong2_Feed_191x100]: {\r\n placementType: PT.Responsive_Boost_Prong1_Prong2_Feed_191x100,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.914,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 140,\r\n logoHeight: 16,\r\n imageBorderRadius: 8,\r\n minSize: [268, 140],\r\n },\r\n [PT.Responsive_Boost_Coachmark_175x100]: {\r\n placementType: PT.Responsive_Boost_Coachmark_175x100,\r\n imageType: UAPImageType.Image178x100,\r\n aspectRatio: 1.75,\r\n aspectRatioStr: '178:100',\r\n previewHeight: 160,\r\n minSize: [280, 160],\r\n },\r\n // LinkedIn\r\n [PT.LinkedIn_Single_Image_Desktop_Landscape]: {\r\n placementType: PT.LinkedIn_Single_Image_Desktop_Landscape,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 180,\r\n minSize: [640, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Mobile_Landscape]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Landscape,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 140,\r\n minSize: [640, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Medium_Rectangle_Landscape]: {\r\n placementType: PT.LinkedIn_Single_Image_Medium_Rectangle_Landscape,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 153,\r\n minSize: [640, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Mobile_Interstitial_Landscape]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Interstitial_Landscape,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 99,\r\n minSize: [640, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Native_Landscape]: {\r\n placementType: PT.LinkedIn_Single_Image_Native_Landscape,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 144,\r\n minSize: [640, 360],\r\n },\r\n\r\n [PT.LinkedIn_Single_Image_Desktop_Square]: {\r\n placementType: PT.LinkedIn_Single_Image_Desktop_Square,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 348,\r\n minSize: [360, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Mobile_Square]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Square,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 275,\r\n minSize: [360, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Medium_Rectangle_Square]: {\r\n placementType: PT.LinkedIn_Single_Image_Medium_Rectangle_Square,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 275,\r\n minSize: [360, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Mobile_Interstitial_Square]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Interstitial_Square,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 188,\r\n minSize: [360, 360],\r\n },\r\n [PT.LinkedIn_Single_Image_Native_Square]: {\r\n placementType: PT.LinkedIn_Single_Image_Native_Square,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 275,\r\n minSize: [360, 360],\r\n },\r\n\r\n [PT.LinkedIn_Single_Image_Mobile_Vertical]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Vertical,\r\n imageType: UAPImageType.Image4x5,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 275,\r\n minSize: [360, 640],\r\n },\r\n [PT.LinkedIn_Single_Image_Medium_Rectangle_Vertical]: {\r\n placementType: PT.LinkedIn_Single_Image_Medium_Rectangle_Vertical,\r\n imageType: UAPImageType.Image4x5,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 220,\r\n minSize: [360, 640],\r\n },\r\n [PT.LinkedIn_Single_Image_Mobile_Interstitial_Vertical]: {\r\n placementType: PT.LinkedIn_Single_Image_Mobile_Interstitial_Vertical,\r\n imageType: UAPImageType.Image4x5,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 150,\r\n minSize: [360, 640],\r\n },\r\n [PT.LinkedIn_Single_Image_Native_Vertical]: {\r\n placementType: PT.LinkedIn_Single_Image_Native_Vertical,\r\n imageType: UAPImageType.Image4x5,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 220,\r\n minSize: [360, 640],\r\n },\r\n [PT.Unified_App_Ads_Video_Horizontal]: {\r\n placementType: PT.Unified_App_Ads_Video_Horizontal,\r\n imageType: UAPVideoType.VideoMedia16X9,\r\n aspectRatio: 0.8,\r\n aspectRatioStr: '4:5',\r\n previewHeight: 220,\r\n minSize: [360, 640],\r\n },\r\n [PT.Unified_App_Ads_Bing_Search]: {\r\n placementType: PT.Unified_App_Ads_Bing_Search,\r\n imageType: UAPImageType.Image133x100,\r\n aspectRatio: 1.33,\r\n aspectRatioStr: '133:100',\r\n previewHeight: 100,\r\n minSize: [100, 75],\r\n },\r\n [PT.Unified_App_Ads_Bing_Search_Text]: {\r\n placementType: PT.Unified_App_Ads_Bing_Search_Text,\r\n },\r\n [PT.Unified_App_Ads_Causal_Games_Dimensions]: {\r\n placementType: PT.Unified_App_Ads_Causal_Games_Dimensions,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 250,\r\n minSize: [300, 300],\r\n },\r\n [PT.Unified_App_Ads_M365_Outlook]: {\r\n placementType: PT.Unified_App_Ads_M365_Outlook,\r\n },\r\n [PT.Unified_App_Ads_MSN_Display]: {\r\n placementType: PT.Unified_App_Ads_MSN_Display,\r\n imageType: UAPImageType.Image191x100,\r\n aspectRatio: 1.91,\r\n aspectRatioStr: '191:100',\r\n previewHeight: 180,\r\n minSize: [640, 360],\r\n },\r\n // TODO: add configs for vertical and square images\r\n};\r\n\r\nexport const UAPLPlacementMetaListV2 /* : Record */ = {\r\n ...UAPLPlacementMetaList,\r\n [PT.MsanV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.MsanV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 114,\r\n minSize: [114, 114],\r\n },\r\n [PT.MsanV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.MsanV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 200,\r\n minSize: [306, 200],\r\n },\r\n [PT.MsanV2_MSAN_Banner_2x1]: {\r\n placementType: PT.MsanV2_MSAN_Banner_2x1,\r\n imageType: UAPImageType.Image200x100,\r\n aspectRatio: 2,\r\n aspectRatioStr: '2:1',\r\n previewHeight: 100,\r\n minSize: [200, 100],\r\n },\r\n [PT.PMax_MMAV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 200,\r\n minSize: [306, 200],\r\n },\r\n [PT.PMax_MMAV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 114,\r\n minSize: [114, 114],\r\n },\r\n [PT.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 114,\r\n minSize: [114, 114],\r\n },\r\n [PT.Responsive_MsanV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.Responsive_MsanV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 200,\r\n minSize: [306, 200],\r\n },\r\n [PT.Responsive_MsanV2_MSAN_Banner_2x1]: {\r\n placementType: PT.Responsive_MsanV2_MSAN_Banner_2x1,\r\n imageType: UAPImageType.Image200x100,\r\n aspectRatio: 2,\r\n aspectRatioStr: '2:1',\r\n previewHeight: 100,\r\n minSize: [200, 100],\r\n },\r\n [PT.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100]: {\r\n placementType: PT.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n imageType: UAPImageType.Image153x100,\r\n aspectRatio: 1.53,\r\n aspectRatioStr: '153:100',\r\n previewHeight: 200,\r\n minSize: [306, 200],\r\n },\r\n [PT.Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1]: {\r\n placementType: PT.Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n imageType: UAPImageType.Image1x1,\r\n aspectRatio: 1,\r\n aspectRatioStr: '1:1',\r\n previewHeight: 114,\r\n minSize: [114, 114],\r\n },\r\n};\r\n\r\nexport const getPlacementListMetaData = (placementTypes, isAdPreviewRefreshEnabled) => {\r\n const PlacementMetaList = isAdPreviewRefreshEnabled ? UAPLPlacementMetaListV2 : UAPLPlacementMetaList;\r\n const types = _.compact(placementTypes);\r\n\r\n if (_.isEmpty(types)) {\r\n return [];\r\n }\r\n const ret = _.map(\r\n types,\r\n placementType => PlacementMetaList[placementType]\r\n );\r\n return ret;\r\n};\r\n\r\nexport const getPlacementListMetaDataByImageType = (imageTypes) => {\r\n const types = _.compact(imageTypes);\r\n if (_.isEmpty(types)) {\r\n return [];\r\n }\r\n const placementMetaList = Object.values(UAPLPlacementMetaList);\r\n const ret = _.chain(types)\r\n .map(imgType => _.filter(placementMetaList, ({ imageType }) => imgType && imageType && (imageType.toLowerCase() === imgType.toLowerCase())))\r\n .flatten()\r\n .compact()\r\n .uniq()\r\n .value();\r\n return ret;\r\n};\r\n","import _ from 'underscore';\r\n\r\nfunction mergePlacementList(prevPlacementList, curPlacementList) {\r\n if (!prevPlacementList && !curPlacementList) {\r\n return [false, prevPlacementList];\r\n }\r\n if (!prevPlacementList || !curPlacementList) {\r\n return [true, curPlacementList];\r\n }\r\n\r\n let changed = prevPlacementList.length !== curPlacementList.length;\r\n const newPlacementList = [];\r\n for (let i = 0; i < curPlacementList.length; i += 1) {\r\n const curPlacement = curPlacementList[i];\r\n if (curPlacement) {\r\n const prevPlacement = _.find(prevPlacementList, ({ placementMeta }) => placementMeta.placementType === curPlacement.placementMeta.placementType);\r\n if (prevPlacement && _.isEqual(prevPlacement, curPlacement)) {\r\n // find same placement\r\n newPlacementList.push(prevPlacement);\r\n } else {\r\n newPlacementList.push(curPlacement);\r\n changed = true;\r\n }\r\n }\r\n }\r\n\r\n return [\r\n changed,\r\n changed ? newPlacementList : prevPlacementList,\r\n ];\r\n}\r\n\r\nfunction mergePlacementSets(prevPlacementSets, curPlacementSets) {\r\n if (!prevPlacementSets && !curPlacementSets) {\r\n return [false, prevPlacementSets];\r\n }\r\n if (!prevPlacementSets || !curPlacementSets) {\r\n return [true, curPlacementSets];\r\n }\r\n\r\n let changed = prevPlacementSets.length !== curPlacementSets.length;\r\n const newPlacementSets = [];\r\n for (let i = 0; i < curPlacementSets.length; i += 1) {\r\n const curPlacementSet = curPlacementSets[i];\r\n const prevPlacementSet = _.find(prevPlacementSets, ({ name }) => name === curPlacementSet.name);\r\n if (prevPlacementSet) {\r\n const [isListChanged, newPlacementList] = mergePlacementList(prevPlacementSet.placementList, curPlacementSet.placementList);\r\n newPlacementSets.push(isListChanged ? { ...curPlacementSet, placementList: newPlacementList } : prevPlacementSet);\r\n changed = changed || isListChanged;\r\n } else {\r\n newPlacementSets.push(curPlacementSet);\r\n changed = true;\r\n }\r\n }\r\n\r\n return [changed, changed ? newPlacementSets : prevPlacementSets];\r\n}\r\n\r\nfunction mergePreviewImageAndPlacementSets(prevImageAndPlacementSets, curImageAndPlacementSets) {\r\n if (!prevImageAndPlacementSets && !curImageAndPlacementSets) {\r\n return [false, prevImageAndPlacementSets];\r\n }\r\n if (!prevImageAndPlacementSets || !curImageAndPlacementSets) {\r\n return [true, curImageAndPlacementSets];\r\n }\r\n if (prevImageAndPlacementSets === curImageAndPlacementSets) {\r\n return [false, prevImageAndPlacementSets];\r\n }\r\n\r\n let changed = prevImageAndPlacementSets.length !== curImageAndPlacementSets.length;\r\n const prevImageAndPlacementSetsCopy = [...prevImageAndPlacementSets];\r\n const newImageAndPlacementSets = [];\r\n for (let i = 0; i < curImageAndPlacementSets.length; i += 1) {\r\n const curImageAndPlacementSet = curImageAndPlacementSets[i];\r\n const idx = _.findIndex(prevImageAndPlacementSetsCopy, ({ previewImage }) =>\r\n previewImage.imageMeta && curImageAndPlacementSet.previewImage.imageMeta\r\n && (previewImage.imageMeta.url === curImageAndPlacementSet.previewImage.imageMeta.url));\r\n if (idx >= 0) {\r\n const prevImageAndPlacementSet = prevImageAndPlacementSetsCopy[idx];\r\n const { previewImage: prevPreviewImage, placementSets: prevPlacementSets } = prevImageAndPlacementSet;\r\n const { previewImage: curPreviewImage, placementSets: curPlacementSets } = curImageAndPlacementSet;\r\n\r\n const isPreviewImageChanged = !_.isEqual(prevPreviewImage, curPreviewImage);\r\n const [isPlacementSetsChanged, newPlacementSets] = mergePlacementSets(prevPlacementSets, curPlacementSets);\r\n newImageAndPlacementSets.push(isPreviewImageChanged || isPlacementSetsChanged ? { previewImage: curPreviewImage, placementSets: newPlacementSets } : prevImageAndPlacementSet);\r\n changed = changed || isPlacementSetsChanged || isPreviewImageChanged;\r\n\r\n // remove the matched item\r\n prevImageAndPlacementSetsCopy.splice(idx, 1);\r\n } else {\r\n newImageAndPlacementSets.push(curImageAndPlacementSet);\r\n changed = true;\r\n }\r\n }\r\n\r\n // there are some remaining items in prevImageAndPlacementSetsCopy, which are not in curImageAndPlacementSets\r\n changed = changed || prevImageAndPlacementSetsCopy.length > 0;\r\n\r\n return [changed, changed ? newImageAndPlacementSets : prevImageAndPlacementSets];\r\n}\r\n\r\n// merge reducer states, try to keep previous sub states if values are not changed\r\nexport function mergeReducerStates(prevState, curState) {\r\n if (!prevState && !curState) {\r\n return [false, prevState];\r\n }\r\n\r\n if (!prevState || !curState) {\r\n return [true, curState];\r\n }\r\n\r\n const {\r\n previewImageListState: prevPreviewState,\r\n hasDataChanged: prevHasDatachanged,\r\n activeImageIndices: prevActiveImageIndices,\r\n } = prevState;\r\n\r\n const {\r\n previewImageListState: curPreviewState,\r\n hasDataChanged: curHasDatachanged,\r\n activeImageIndices: curActiveImageIndices,\r\n } = curState;\r\n\r\n const [isPreviewStateChanged, newPreviewState] = mergePreviewImageAndPlacementSets(prevPreviewState, curPreviewState);\r\n const isActiveImageIndicesChanged = !_.isEqual(prevActiveImageIndices, curActiveImageIndices);\r\n const changed = prevHasDatachanged !== curHasDatachanged || isActiveImageIndicesChanged || isPreviewStateChanged;\r\n\r\n return [\r\n changed,\r\n changed ? {\r\n previewImageListState: isPreviewStateChanged ? newPreviewState : prevPreviewState,\r\n hasDataChanged: curHasDatachanged,\r\n activeImageIndices: isActiveImageIndicesChanged ? curActiveImageIndices : prevActiveImageIndices,\r\n } : prevState,\r\n ];\r\n}\r\n","import _ from 'underscore';\r\nimport { useCallback, useReducer } from 'react';\r\n\r\nimport { mergeReducerStates } from './merge-reducer-state-util';\r\n\r\nconst AdPreviewModelActions = {\r\n ACTION_TYPE_RESET_STATE: 'ACTION_TYPE_RESET_STATE',\r\n ACTION_TYPE_UPDATE_IMAGE_CROPPING: 'ACTION_TYPE_UPDATE_IMAGE_CROPPING',\r\n ACTION_TYPE_UPDATE_PLACEMENT_CROPPING: 'ACTION_TYPE_UPDATE_PLACEMENT_CROPPING',\r\n ACTION_TYPE_UPDATE_PLACEMENT_CROPPING_BY_IMAGE_TYPE: 'ACTION_TYPE_UPDATE_PLACEMENT_CROPPING_BY_IMAGE_TYPE',\r\n ACTION_TYPE_SET_ACTIVE_IMAGES: 'ACTION_TYPE_SET_ACTIVE_IMAGES',\r\n};\r\n\r\n// interface TAdPreviewReducerState {\r\n// // there could be multiple images, each image has multiple placementSets, each placement set has a unique name\r\n// // and each placement set has multiple placements identifyed by placement type\r\n// // to find a placement, the path is [imageIndex][placementSetName][placementType]\r\n// previewImageListState: Array | undefined | null;\r\n// hasDataChanged: boolean | undefined | null;\r\n//\r\n// The activeImageIndices is used to support multiple image scenarios (for both Multi-Image placements and Multiple images to preview mentioned above).\r\n// It is an array because for multi-image placements, there may be more than one active image.\r\n// If this value is not set, all the images are considered as 'active'.\r\n// activeImageIndices: Array | undefined | null;\r\n// }\r\n\r\nconst ADPREVIEW_INIT_STATE /* : TAdPreviewReducerState */ = {\r\n previewImageListState: null,\r\n hasDataChanged: false,\r\n activeImageIndices: null,\r\n};\r\n\r\n// update crop settings for placement specified by placement-set name and placement-type\r\nconst updatePlacementCorpSettings = (\r\n imageAndPlacementSets, // : TImageAndPlacementSets,\r\n placementSetName, // : string,\r\n placementType, // : EPlacementType,\r\n cropping // : TCropRect\r\n) /* : TImageAndPlacementSets */ => {\r\n const { previewImage, placementSets } = imageAndPlacementSets || {};\r\n let changed = false;\r\n // find the placement-set to update\r\n const newPlacementSets = _.map(placementSets, (placementSet) => {\r\n const { name, placementList } = placementSet || {};\r\n if (name === placementSetName) {\r\n // find the placement to update\r\n const newPlacementList = _.map(placementList, (placement) => {\r\n if (placement.placementMeta.placementType === placementType) {\r\n // found the placement to update\r\n if (!_.isEqual(placement.placementCropping, cropping)) {\r\n changed = true;\r\n return {\r\n ...placement, placementCropping: cropping, hasCroppingChanged: true, expandedPlacementCropping: undefined, effectiveImageUrl: undefined, effectiveImageWidth: undefined, effectiveImageHeight: undefined,\r\n };\r\n }\r\n }\r\n return placement;\r\n });\r\n // return a new placement-set with updated placement list\r\n return changed ? { name, placementList: newPlacementList } : placementSet;\r\n }\r\n return placementSet;\r\n });\r\n\r\n return changed ? { previewImage, placementSets: newPlacementSets } : imageAndPlacementSets;\r\n};\r\n\r\n// find all placements with the same image type, and update their crop settings\r\nconst updatePlacementCorpSettingsByImageType = (\r\n imageAndPlacementSets, // : TImageAndPlacementSets,\r\n placementSetName, // : string,\r\n imageType, // : EImageType,\r\n cropping // : TCropRect\r\n) /* : TImageAndPlacementSets */ => {\r\n const { previewImage, placementSets } = imageAndPlacementSets || {};\r\n let changed = false;\r\n // find the placement-set to update\r\n const newPlacementSets = _.map(placementSets, (placementSet) => {\r\n const { name, placementList } = placementSet || {};\r\n if (name === placementSetName) {\r\n // find the placement to update\r\n const newPlacementList = _.map(placementList, (placement) => {\r\n if (placement.placementMeta.imageType === imageType) {\r\n // found the placement to update\r\n if (!_.isEqual(placement.placementCropping, cropping)) {\r\n changed = true;\r\n return {\r\n ...placement, placementCropping: cropping, hasCroppingChanged: true, expandedPlacementCropping: undefined, effectiveImageUrl: undefined, effectiveImageWidth: undefined, effectiveImageHeight: undefined,\r\n };\r\n }\r\n }\r\n return placement;\r\n });\r\n // return new placement-set with updated placement list\r\n return changed ? { name, placementList: newPlacementList } : placementSet;\r\n }\r\n return placementSet;\r\n });\r\n return changed ? { previewImage, placementSets: newPlacementSets } : imageAndPlacementSets;\r\n};\r\n\r\nfunction adPreviewReducer(state, action) {\r\n const { type: actionType, ...actionData } = action;\r\n switch (actionType) {\r\n case AdPreviewModelActions.ACTION_TYPE_RESET_STATE: {\r\n const { newState, forceToReset } = actionData;\r\n if (forceToReset) {\r\n const { previewImageListState, activeImageIndices, hasDataChanged } = newState || {};\r\n const resetState = {\r\n previewImageListState,\r\n hasDataChanged: hasDataChanged || false, // reset to false\r\n activeImageIndices,\r\n };\r\n return resetState;\r\n }\r\n\r\n const [changed, mergedState] = mergeReducerStates(state, newState);\r\n return !changed ? state : {\r\n ...mergedState,\r\n hasDataChanged: mergedState.hasDataChanged || false,\r\n };\r\n }\r\n\r\n case AdPreviewModelActions.ACTION_TYPE_UPDATE_IMAGE_CROPPING: {\r\n const { newImageAndPlacementSets, imageIndex } = actionData;\r\n const { previewImageListState } = state || {};\r\n if (previewImageListState && previewImageListState[imageIndex]) {\r\n const newState = [...previewImageListState];\r\n newState[imageIndex] = newImageAndPlacementSets;\r\n // mark the cropping data changed\r\n if (newState[imageIndex] && newState[imageIndex].previewImage) {\r\n newState[imageIndex].previewImage.hasCroppingChanged = true;\r\n }\r\n return {\r\n previewImageListState: newState,\r\n hasDataChanged: true,\r\n };\r\n }\r\n return state;\r\n }\r\n\r\n case AdPreviewModelActions.ACTION_TYPE_UPDATE_PLACEMENT_CROPPING: {\r\n const {\r\n placementType, cropping, imageIndex, placementSetName,\r\n } = actionData;\r\n const { previewImageListState: curState } = state || {};\r\n if (curState && curState[imageIndex]) {\r\n const imageAndPlacementSets = curState[imageIndex];\r\n const newImageAndPlacementSets = updatePlacementCorpSettings(imageAndPlacementSets, placementSetName, placementType, cropping);\r\n // check if data changed\r\n if (imageAndPlacementSets !== newImageAndPlacementSets) {\r\n const newState = [...curState];\r\n newState.splice(imageIndex, 1, newImageAndPlacementSets);\r\n return { previewImageListState: newState, hasDataChanged: true };\r\n }\r\n }\r\n return state;\r\n }\r\n\r\n case AdPreviewModelActions.ACTION_TYPE_UPDATE_PLACEMENT_CROPPING_BY_IMAGE_TYPE: {\r\n const {\r\n imageType, cropping, imageIndex, placementSetName,\r\n } = actionData;\r\n const { previewImageListState: curState } = state || {};\r\n if (curState && curState[imageIndex]) {\r\n const imageAndPlacementSets = curState[imageIndex];\r\n const newImageAndPlacementSets = updatePlacementCorpSettingsByImageType(imageAndPlacementSets, placementSetName, imageType, cropping);\r\n // check if data changed\r\n if (imageAndPlacementSets !== newImageAndPlacementSets) {\r\n const newPreviewImages = [...curState];\r\n newPreviewImages[imageIndex] = newImageAndPlacementSets;\r\n return { previewImageListState: newPreviewImages, hasDataChanged: true };\r\n }\r\n }\r\n return state;\r\n }\r\n\r\n case AdPreviewModelActions.ACTION_TYPE_SET_ACTIVE_IMAGES: {\r\n const { activeImageIndices } = actionData;\r\n const { previewImageListState, activeImageIndices: curActiveImageIndices } = state || {};\r\n const newIndices = _.isEmpty(previewImageListState) ? [] : _.chain(activeImageIndices)\r\n .uniq()\r\n .sortBy()\r\n .filter(i => _.isNumber(i) && i >= 0 && i < previewImageListState.length)\r\n .value();\r\n if (!_.isEqual(newIndices, curActiveImageIndices)) {\r\n return { ...state, activeImageIndices: newIndices };\r\n }\r\n return state;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport const useAdPreviewReducer = (initState = ADPREVIEW_INIT_STATE) => {\r\n const [adPreviewModel, dispatch] = useReducer(adPreviewReducer, initState);\r\n const { previewImageListState, hasDataChanged, activeImageIndices } = adPreviewModel || {};\r\n\r\n // newState: {\r\n // previewImageListState: Array | undefined | null,\r\n // activeImageIndices: Array | undefined | null,\r\n // hasDataChanged: boolean | undefined | null\r\n // }\r\n const resetReducerStates = useCallback((newState, forceToReset = false) => {\r\n dispatch({ type: AdPreviewModelActions.ACTION_TYPE_RESET_STATE, newState, forceToReset });\r\n }, []);\r\n\r\n const updateImageCropping = useCallback((newImageAndPlacementSets /* : TImageAndPlacementSets */, imageIndex = 0) => {\r\n dispatch({ type: AdPreviewModelActions.ACTION_TYPE_UPDATE_IMAGE_CROPPING, newImageAndPlacementSets, imageIndex });\r\n }, []);\r\n\r\n const updatePlacementCropping = useCallback((params) => {\r\n const {\r\n imageIndex = 0, placementSetName, placementType, cropping,\r\n } = params || {};\r\n dispatch({\r\n type: AdPreviewModelActions.ACTION_TYPE_UPDATE_PLACEMENT_CROPPING, placementType, cropping, imageIndex, placementSetName,\r\n });\r\n }, []);\r\n\r\n const updatePlacementCroppingByImageType = useCallback((params) => {\r\n const {\r\n imageIndex = 0, placementSetName, imageType, cropping,\r\n } = params || {};\r\n dispatch({\r\n type: AdPreviewModelActions.ACTION_TYPE_UPDATE_PLACEMENT_CROPPING_BY_IMAGE_TYPE, imageType, cropping, imageIndex, placementSetName,\r\n });\r\n }, []);\r\n\r\n const setActiveImageIndices = useCallback((...indices) => {\r\n dispatch({ type: AdPreviewModelActions.ACTION_TYPE_SET_ACTIVE_IMAGES, activeImageIndices: indices });\r\n }, []);\r\n\r\n return {\r\n previewImageListState,\r\n hasDataChanged,\r\n activeImageIndices,\r\n resetReducerStates,\r\n updateImageCropping,\r\n updatePlacementCropping,\r\n updatePlacementCroppingByImageType,\r\n setActiveImageIndices,\r\n };\r\n};\r\n","// copied from private/component-react/packages/image-experience-utils/src/get-cropped-image.js\r\nimport _ from 'underscore';\r\n\r\nconst AspectRatioTolerance = 0.01;\r\n\r\n// Attention!!: DO NOT touch this algorithm unless sync with MT/DE.\r\n// This logic is also implemented on DE side.\r\n// originalBoxToCrop { SourceWidth, SourceHeight, SourceX, SourceY }\r\nexport const getCenterCroppedSettings = (originalBoxToCrop, aspectRatio) => {\r\n const {\r\n SourceWidth: centerContainerWidth,\r\n SourceHeight: centerContainerHeight,\r\n } = originalBoxToCrop;\r\n const originalRatio = centerContainerWidth / centerContainerHeight;\r\n const cropSettings = _.defaults({}, originalBoxToCrop);\r\n\r\n if (Math.abs(originalRatio - aspectRatio) > AspectRatioTolerance) {\r\n // If the target ratio is narrower than the original\r\n if (aspectRatio <= originalRatio) {\r\n // Use the same height, get the width from the original height\r\n const scaledSourceWidth = Math.round(cropSettings.SourceHeight * aspectRatio);\r\n\r\n // Since we use the full height, Y is still 0\r\n // Make sure we crop the middle section horionzontally\r\n const centerX =\r\n Math.round((cropSettings.SourceWidth - scaledSourceWidth) / 2) + cropSettings.SourceX;\r\n\r\n cropSettings.SourceWidth = scaledSourceWidth;\r\n cropSettings.SourceX = centerX;\r\n } else {\r\n // Use the same width, get the height from the original width\r\n const scaledSourceHeight = Math.round(cropSettings.SourceWidth / aspectRatio);\r\n\r\n // We use full width, X is 0.\r\n // Make sure we crop the middle section vertically\r\n const middleY = Math.round((\r\n cropSettings.SourceHeight - scaledSourceHeight) / 2) + cropSettings.SourceY;\r\n\r\n cropSettings.SourceHeight = scaledSourceHeight;\r\n cropSettings.SourceY = middleY;\r\n }\r\n }\r\n\r\n return cropSettings;\r\n};\r\n\r\n// todo: handle included/default option\r\nexport const getCentralCroppedPlacements = ({\r\n imageMeta,\r\n imageCropping,\r\n placementMetaList, // Array\r\n useOriginalImageSize = false,\r\n}) => {\r\n const width = useOriginalImageSize ? imageMeta.originalWidth : imageMeta.width;\r\n const height = useOriginalImageSize ? imageMeta.originalHeight : imageMeta.height;\r\n const maxCropBox = imageCropping || {\r\n SourceWidth: width,\r\n SourceHeight: height,\r\n SourceX: 0,\r\n SourceY: 0,\r\n };\r\n const aspectRatios = _.pluck(placementMetaList, 'aspectRatio');\r\n const placementCroppings = _.map(aspectRatios, (ratio) => {\r\n const cropSettings = getCenterCroppedSettings(maxCropBox, ratio);\r\n return {\r\n placementCropping: cropSettings,\r\n };\r\n });\r\n return placementCroppings;\r\n};\r\n\r\nexport const getCentralCroppedPlacementsFromOrigialImage = (imageMeta, aspectRatios) =>\r\n getCenterCroppedSettings(imageMeta, aspectRatios);\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { useEffect, useCallback, useMemo, useRef, useContext } from 'react';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\n\r\nimport { loadImageByUrl } from './load-image-by-url';\r\nimport { getPlacementListMetaData } from './placement-meta-list';\r\nimport { useAdPreviewReducer } from './use-ad-preview-reducer';\r\n\r\nimport { getCentralCroppedPlacements } from './get-central-crop-settings';\r\n\r\nexport const pickSingleImageFromImageList = (images) => {\r\n // try to find the included placement first\r\n let selectedImage = _.find(images, img => img && img.isPlacementIncluded && img.imageMeta);\r\n // try to find a valid image if no placement is included\r\n if (!selectedImage) {\r\n selectedImage = _.find(images, img => img && img.imageMeta);\r\n }\r\n if (!selectedImage) {\r\n selectedImage = _.first(images);\r\n }\r\n return selectedImage;\r\n};\r\n\r\n// const getImageInfo = (image: string | TImageParam) : Promise<{\r\n// imageMeta: TPreviewImageMeta,\r\n// imageCropping: TCropRect | undefined | null,\r\n// manualPlacementCroppings: Array | undefined | null,\r\n// }> => {\r\nconst getImageInfo = (image, onError) => {\r\n // if image is url, load it to get image info\r\n const pLoadedImage = _.isString(image)\r\n ? loadImageByUrl(image).then(({ src, width, height }) => ({\r\n url: src, width, height, originalUrl: src, originalWidth: width, originalHeight: height,\r\n }))\r\n : Promise.resolve(image);\r\n\r\n const p$ret = pLoadedImage.then((loadedImage) => {\r\n const {\r\n id, url, width, height, originalUrl, originalWidth, originalHeight, imageCropping, placementsCropping, roiInfo, expandedMeta,\r\n } = loadedImage || {};\r\n\r\n // get image meta info, including crop settings\r\n const imageMeta = {\r\n id, url, width, height, originalUrl, originalWidth, originalHeight, roiInfo, expandedMeta,\r\n };\r\n return { imageMeta, imageCropping, manualPlacementCroppings: placementsCropping };\r\n }).catch((err) => {\r\n if (onError) {\r\n onError(err);\r\n }\r\n return null;\r\n });\r\n\r\n return p$ret;\r\n};\r\n\r\n// function getPlacementSet(\r\n// imageMeta: TPreviewImageMeta,\r\n// imageCropping: TCropRect | undefined | null,\r\n// manualPlacementCroppings: Array | undefined | null,\r\n// placementSetParam: TPlacementSetParam\r\n// ) : Promise {\r\nfunction getPlacementSet(imageMeta, imageCropping, manualPlacementCroppings, placementSetParam, isAdPreviewRefreshEnabled) {\r\n //\r\n const { placementSetName, placementTypes, getDefaultPlacementsCropping = getCentralCroppedPlacements } = placementSetParam;\r\n\r\n // get placements' meta info (predefined constants) for selected placements\r\n const placementMetaList = getPlacementListMetaData(placementTypes, isAdPreviewRefreshEnabled);\r\n\r\n // get default placement crop settings, it could be async or sync call\r\n return Promise.resolve(getDefaultPlacementsCropping({ imageMeta, /* maxCropBox */imageCropping, placementMetaList }))\r\n .then((defaultCroppingList = []) => {\r\n // merge placements meta info with crop settings (default or manual placement crop settings)\r\n const placementList = _.map(placementMetaList, (placementMeta, index) => {\r\n // manual placement crop settings (set by users) on UI take higher priority\r\n const { cropping: manualCropping } = _.find(manualPlacementCroppings, item => item.placementType === placementMeta.placementType) || {};\r\n const {\r\n placementCropping, expandedImageHeight, expandedImageWidth, expandedImageUrl, expandedImageCropSettings,\r\n } = defaultCroppingList[index] || {};\r\n return ({\r\n placementMeta,\r\n placementCropping: manualCropping || placementCropping,\r\n\r\n // set initial value to true if there is manual cropping for this placement\r\n // the purpose is to inlucde this placement when sending crop MT api request\r\n hasCroppingChanged: !!manualCropping,\r\n expandedImageUrl: manualCropping ? undefined : expandedImageUrl,\r\n expandedImageHeight: manualCropping ? undefined : expandedImageHeight,\r\n expandedImageWidth: manualCropping ? undefined : expandedImageWidth,\r\n expandedImageCropSettings: manualCropping ? undefined : expandedImageCropSettings,\r\n });\r\n });\r\n return { name: placementSetName, placementList };\r\n });\r\n}\r\n\r\n// function getImageAndPlacementSetList(\r\n// imageMeta: TPreviewImageMeta,\r\n// imageCropping: TCropRect | undefined | null,\r\n// manualPlacementCroppings: Array | undefined | null,\r\n// placementSetsParam: Array\r\n// ) : Promise {\r\nfunction getImageAndPlacementSetList({\r\n imageMeta, imageCropping, manualPlacementCroppings, placementSetsParam, isAdPreviewRefreshEnabled,\r\n}) {\r\n const ret = Promise.map(\r\n placementSetsParam,\r\n param => getPlacementSet(imageMeta, imageCropping, manualPlacementCroppings, param, isAdPreviewRefreshEnabled),\r\n { concurrency: 5 }\r\n ).then((placementSets) => {\r\n const result = {\r\n previewImage: {\r\n imageMeta, // todo: update imageMeta.width & height using image cropping? is it needed?\r\n imageCropping,\r\n\r\n // set initial value to true if there is manual cropping for this image\r\n // the purpose is to inlucde this cropping when sending crop MT api request\r\n hasCroppingChanged: !!imageCropping,\r\n },\r\n placementSets,\r\n };\r\n return result;\r\n });\r\n return ret;\r\n}\r\n\r\n// todo: add a simplified interface to support single placement set\r\n// export const useAdPreviewModel = (placementConfig: Array | undefined | null, onError) => {\r\nexport const useAdPreviewModel = (placementConfig, onError) => {\r\n //\r\n // keep a reference to the current model config\r\n const curPlacementConfigRef = useRef(placementConfig);\r\n\r\n const permissions = useContext(PermissionsContext);\r\n const isAdPreviewRefreshEnabled = _.get(permissions, ['dynamic', 'AdPreviewRefresh']);\r\n\r\n const {\r\n previewImageListState, // Array\r\n hasDataChanged,\r\n resetReducerStates,\r\n updateImageCropping: updateImageCroppingState,\r\n updatePlacementCropping: updatePlacementCroppingState,\r\n updatePlacementCroppingByImageType: updatePlacementCroppingByImageTypeState,\r\n activeImageIndices,\r\n setActiveImageIndices,\r\n } = useAdPreviewReducer();\r\n\r\n const updateImageCropping = useCallback((newImageCropping, imageIndex = 0) => {\r\n // get image to update\r\n const { previewImage } = (previewImageListState && previewImageListState[imageIndex]) || {};\r\n const { imageMeta, imageCropping } = previewImage || {};\r\n\r\n // get placement set param\r\n const { placementSets } = (curPlacementConfigRef.current && curPlacementConfigRef.current[imageIndex]) || {};\r\n\r\n if (placementSets && imageMeta && newImageCropping && !_.isEqual(imageCropping, newImageCropping)) {\r\n getImageAndPlacementSetList({\r\n imageMeta, imageCropping: newImageCropping, manualPlacementCroppings: undefined, placementSetsParam: placementSets, isAdPreviewRefreshEnabled,\r\n }).then((imgAndPlacementSets) => {\r\n updateImageCroppingState(imgAndPlacementSets, imageIndex);\r\n });\r\n }\r\n }, [previewImageListState, updateImageCroppingState]);\r\n\r\n // const updatePlacementCropping = useCallback((params: {\r\n // newPlacementCropping: TCropRect,\r\n // placementSetName: string,\r\n // placementType: EPlacementType,\r\n // imageIndex: number,\r\n // }) => {\r\n const updatePlacementCropping = useCallback((params) => {\r\n const {\r\n newPlacementCropping, placementSetName, placementType, imageIndex = 0,\r\n } = params || {};\r\n\r\n updatePlacementCroppingState({\r\n imageIndex, placementSetName, placementType, cropping: newPlacementCropping,\r\n });\r\n }, [updatePlacementCroppingState]);\r\n\r\n // const updatePlacementCroppingByImageType = useCallback((params: {\r\n // newPlacementCropping: TCropRect,\r\n // placementSetName: string,\r\n // imageType: EImageType,\r\n // imageIndex: number,\r\n // }) => {\r\n const updatePlacementCroppingByImageType = useCallback((params) => {\r\n const {\r\n newPlacementCropping, placementSetName, imageType, imageIndex = 0,\r\n } = params || {};\r\n\r\n updatePlacementCroppingByImageTypeState({\r\n imageIndex, placementSetName, imageType, cropping: newPlacementCropping,\r\n });\r\n }, [updatePlacementCroppingByImageTypeState]);\r\n\r\n // to avoid re-initialize model using same placement config\r\n const prevModelConfigRef = useRef(null);\r\n\r\n // model config could be set by using this method, or passing it in hook parameters\r\n // const initializeModel = useCallback((pNewModelConfig: Array | null | undefined) => {\r\n const initializeModel = useCallback((pNewModelConfig) => {\r\n //\r\n // remove invalid entries\r\n const newModelConfig = _.compact(pNewModelConfig);\r\n if (_.isEmpty(newModelConfig)) {\r\n return;\r\n }\r\n\r\n // avoid initializing again using same config\r\n if (_.isEqual(prevModelConfigRef.current, newModelConfig)) {\r\n return;\r\n }\r\n prevModelConfigRef.current = newModelConfig;\r\n\r\n // keep a reference to the current model config\r\n curPlacementConfigRef.current = newModelConfig;\r\n\r\n const [firstConfig, ...otherConfigs] = newModelConfig;\r\n\r\n // load first image first and then others, to unblock UI rendering\r\n getImageInfo(firstConfig.image, onError).then((firstImageInfo) => {\r\n // stop if the 1st image is invalid\r\n if (!firstImageInfo) {\r\n return null;\r\n }\r\n const { imageMeta, imageCropping, manualPlacementCroppings } = firstImageInfo;\r\n // set the partial loaded image data (without placement cropping), to unblock UI rendering (such as UI only needs image info)\r\n const partialFirstPreviewImage = {\r\n previewImage: { imageMeta, imageCropping, hasCroppingChanged: !!imageCropping },\r\n placementSets: [],\r\n };\r\n resetReducerStates({ previewImageListState: [partialFirstPreviewImage] });\r\n\r\n // get placement sets for the first image\r\n return getImageAndPlacementSetList({\r\n imageMeta, imageCropping, manualPlacementCroppings, placementSetsParam: firstConfig.placementSets, isAdPreviewRefreshEnabled,\r\n }).then((firstPreviewImage) => {\r\n if (firstPreviewImage) {\r\n // set the state for the first image first, so UI can render something quickly\r\n resetReducerStates({ previewImageListState: [firstPreviewImage] });\r\n // get image and placement sets for other images\r\n if (!_.isEmpty(otherConfigs)) {\r\n Promise.map(\r\n otherConfigs,\r\n config => getImageInfo(config.image, onError).then((imgInfo) => {\r\n if (imgInfo) {\r\n return getImageAndPlacementSetList({\r\n imageMeta: imgInfo.imageMeta,\r\n imageCropping: imgInfo.imageCropping,\r\n manualPlacementCroppings: imgInfo.manualPlacementCroppings,\r\n placementSetsParam: config.placementSets,\r\n isAdPreviewRefreshEnabled,\r\n });\r\n }\r\n return null;\r\n }),\r\n { concurrency: 5 }\r\n ).then((ret /* Array */) => {\r\n // set all the images now\r\n const otherPreviewImages = _.compact(ret);\r\n if (!_.isEmpty(otherPreviewImages)) {\r\n resetReducerStates({ previewImageListState: [firstPreviewImage, ...otherPreviewImages] });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }, [onError, resetReducerStates]);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(placementConfig)) {\r\n initializeModel(placementConfig);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [placementConfig]);\r\n\r\n //\r\n // transform model state to make it easier to use for rendering components\r\n // const multiImagePlacementSetsViewModel = useMemo((): Array | null => {\r\n const getPlacementSetsViewModel = useCallback((activeImagesOnly) => {\r\n if (_.isEmpty(previewImageListState)) {\r\n return [];\r\n }\r\n\r\n const finalPlacementSets = [];\r\n\r\n // only get active images only\r\n let pickedPreviewImageListState = previewImageListState;\r\n if (activeImagesOnly && !_.isEmpty(activeImageIndices)) {\r\n pickedPreviewImageListState = _.compact(_.map(activeImageIndices, idx => previewImageListState[idx]));\r\n }\r\n\r\n //\r\n // each image in model state\r\n //\r\n _.each(pickedPreviewImageListState, ({ previewImage: pImage, placementSets }) => {\r\n const { imageMeta, imageCropping, imageSmartEffect } = pImage || {};\r\n //\r\n // each placement set\r\n //\r\n _.each(placementSets, ({ name: placementSetName, placementList }) => {\r\n // create a placement set view model if not exist\r\n let placementSetViewModel = finalPlacementSets.find(item => item.placementSetName === placementSetName);\r\n if (!placementSetViewModel) {\r\n placementSetViewModel = { placementSetName, placementList: [] };\r\n finalPlacementSets.push(placementSetViewModel);\r\n }\r\n //\r\n // for each placement\r\n //\r\n _.each(placementList, ({\r\n placementMeta, placementCropping, placementSmartEffect, isPlacementIncluded, expandedImageUrl, expandedImageHeight, expandedImageWidth, expandedImageCropSettings, ...rest\r\n }) => {\r\n const imageViewModel = {\r\n imageMeta,\r\n imageCropping,\r\n imageSmartEffect,\r\n placementCropping,\r\n placementSmartEffect,\r\n effectiveImageUrl: (placementSmartEffect && placementSmartEffect.effectSrc) || (imageSmartEffect && imageSmartEffect.effectSrc) || expandedImageUrl || (imageMeta && (imageMeta.originalUrl || imageMeta.url)),\r\n effectiveImageWidth: expandedImageWidth || (imageMeta && imageMeta.originalWidth),\r\n effectiveImageHeight: expandedImageHeight || (imageMeta && imageMeta.originalHeight),\r\n expandedPlacementCropping: expandedImageCropSettings,\r\n isPlacementIncluded,\r\n ...rest,\r\n };\r\n const fpIndex = _.findIndex(placementSetViewModel.placementList, (item => item.placementMeta.placementType === placementMeta.placementType));\r\n if (fpIndex > -1) {\r\n placementSetViewModel.placementList[fpIndex].images.push(imageViewModel);\r\n placementSetViewModel.placementList[fpIndex].isPlacementIncluded\r\n = isPlacementIncluded || placementSetViewModel.placementList[fpIndex].isPlacementIncluded;\r\n } else {\r\n placementSetViewModel.placementList.push({\r\n placementMeta, isPlacementIncluded, images: [imageViewModel],\r\n });\r\n }\r\n });\r\n });\r\n });\r\n\r\n return finalPlacementSets;\r\n }, [activeImageIndices, previewImageListState]);\r\n\r\n const multiImagePlacementSetsViewModel = useMemo(() => getPlacementSetsViewModel(false), [getPlacementSetsViewModel]);\r\n const activeMultiImagePlacementSetsViewModel = useMemo(() => getPlacementSetsViewModel(true), [getPlacementSetsViewModel]);\r\n\r\n /**\r\n * list of placements to shown, this is a simplified interface for signle image mode\r\n * return type: Array\r\n */\r\n const singleImagePlacementSetsViewModel = useMemo(() => {\r\n const ret = _.map(multiImagePlacementSetsViewModel, ({ placementSetName, placementList }) => {\r\n const ret2 = _.map(placementList, ({ placementMeta, isPlacementIncluded, images }) => {\r\n const selectedImage = pickSingleImageFromImageList(images);\r\n return {\r\n placementMeta,\r\n isPlacementIncluded,\r\n ...selectedImage,\r\n };\r\n });\r\n return { placementSetName, placementList: ret2 };\r\n });\r\n return ret || [];\r\n }, [multiImagePlacementSetsViewModel]);\r\n\r\n const activeSingleImagePlacementSetsViewModel = useMemo(() => {\r\n const ret = _.map(activeMultiImagePlacementSetsViewModel, ({ placementSetName, placementList }) => {\r\n const ret2 = _.map(placementList, ({ placementMeta, isPlacementIncluded, images }) => {\r\n const selectedImage = pickSingleImageFromImageList(images);\r\n return {\r\n placementMeta,\r\n isPlacementIncluded,\r\n ...selectedImage,\r\n };\r\n });\r\n return { placementSetName, placementList: ret2 };\r\n });\r\n return ret || [];\r\n }, [activeMultiImagePlacementSetsViewModel]);\r\n\r\n const firstImage = useMemo(() => {\r\n const { previewImage } = _.first(previewImageListState) || {};\r\n return previewImage;\r\n }, [previewImageListState]);\r\n\r\n const allImages = useMemo(() => {\r\n const imgs = _.map(previewImageListState, ({ previewImage }) => previewImage);\r\n return imgs || [];\r\n }, [previewImageListState]);\r\n\r\n const activeImages = useMemo(() => {\r\n if (_.isEmpty(activeImageIndices)) {\r\n return [];\r\n }\r\n const ret = _.map(activeImageIndices, index => previewImageListState[index] && previewImageListState[index].previewImage);\r\n return _.compact(ret) || [];\r\n }, [previewImageListState, activeImageIndices]);\r\n\r\n // get changed image cropping and placement croppings\r\n // const changedCropSettings: Array<{ image: TPreviewImage, placements: Array }> = useMemo(() => {\r\n const changedCropSettings = useMemo(() => {\r\n // each image in model state\r\n const ret = _.map(previewImageListState, ({ previewImage, placementSets }) => {\r\n const image = { ...previewImage };\r\n const placements = [];\r\n // each placement set\r\n _.each(placementSets, ({ placementList }) => {\r\n // for each placement\r\n _.each(placementList, (placement) => {\r\n if (placement.hasCroppingChanged) {\r\n placements.push(placement);\r\n }\r\n });\r\n });\r\n return { image, placements };\r\n });\r\n return ret || [];\r\n }, [previewImageListState]);\r\n\r\n const resetReducerStatesWrapper = useCallback((newState) => {\r\n resetReducerStates(newState);\r\n prevModelConfigRef.current = null;\r\n }, [resetReducerStates]);\r\n\r\n return {\r\n // previewImageListState,\r\n activeImageIndices,\r\n setActiveImageIndices,\r\n resetReducerStates: resetReducerStatesWrapper,\r\n //\r\n setPlacementConfig: initializeModel, // todo: support partial update? only update one image? or one placement set?\r\n updateImageCropping,\r\n updatePlacementCropping,\r\n updatePlacementCroppingByImageType,\r\n multiImagePlacementSets: activeMultiImagePlacementSetsViewModel,\r\n singleImagePlacementSets: activeSingleImagePlacementSetsViewModel,\r\n multiImagePlacementSetsViewModel,\r\n singleImagePlacementSetsViewModel,\r\n firstImage,\r\n allImages,\r\n activeImages,\r\n hasDataChanged,\r\n changedCropSettings,\r\n };\r\n};\r\n","import Promise from 'bluebird';\r\n\r\n// load an image by url\r\nexport function loadImageByUrl(url) {\r\n return new Promise((resolve, reject) => {\r\n const image = new Image();\r\n image.onload = () => {\r\n const { src, naturalWidth, naturalHeight } = image || {};\r\n resolve({ src, width: naturalWidth, height: naturalHeight });\r\n };\r\n image.onerror = () => {\r\n reject(new Error(`Failed to load image, url: ${url}`));\r\n };\r\n image.src = url;\r\n });\r\n}\r\n","import { UAPPlacementType } from '../@types';\r\n\r\n//\r\n// origanize and alias placement types for easier reference\r\nexport const UAPPlacementTypeAlias = {\r\n MMA: {\r\n WideImage: UAPPlacementType.MMA_WideImage_4x1,\r\n LandscapeImage: UAPPlacementType.MMA_LandscapeImage_191x100,\r\n SquareImage: UAPPlacementType.MMA_SquareImage_1x1,\r\n VerticalImage: UAPPlacementType.MMA_VerticalImage_1x2,\r\n },\r\n\r\n MSAN: {\r\n WideImage: UAPPlacementType.Audience_Network_WideImage_191x100,\r\n SquareImage: UAPPlacementType.Audience_Network_SquareImage_1x1,\r\n MSEdgeSingleCarousel: UAPPlacementType.Microsoft_Edge_Single_Carousel_178x100,\r\n MSNInArticle: UAPPlacementType.MSN_InArticle_Ad_150x100,\r\n MSNSmallHeadline: UAPPlacementType.MSN_Small_Headline_133x100,\r\n },\r\n\r\n MSANV2: {\r\n MSEdgeCarousel: UAPPlacementType.MsanV2_Microsoft_Edge_Carouse_l201x100,\r\n MSEdgeMobile: UAPPlacementType.MsanV2_Microsoft_Edge_Mobile_1x1,\r\n MSANBanner: UAPPlacementType.MsanV2_MSAN_Banner_2x1,\r\n MSANRiver: UAPPlacementType.MsanV2_MSAN_River_191x100,\r\n MSANRectangle: UAPPlacementType.MsanV2_MSAN_Rectangle_120x100,\r\n MSNCarousel: UAPPlacementType.MsanV2_MSN_Carousel_169x100,\r\n MSNPartnerStripe: UAPPlacementType.MsanV2_MSN_Partner_Stripe_153x100,\r\n MSNRestoday: UAPPlacementType.MsanV2_MSN_Restoday_124x100,\r\n },\r\n\r\n PMax: {\r\n AudienceSquareImage: UAPPlacementType.PMax_Audience_Network_SquareImage_1x1,\r\n AudienceWideImage: UAPPlacementType.PMax_Audience_Network_WideImage_191x100,\r\n MMALandscapeImage: UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n MMAVerticalImage: UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n MMAWideImage: UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n MSNInArticle: UAPPlacementType.PMax_MSN_InArticle_Ad_150x100,\r\n MSNSmallHeadline: UAPPlacementType.PMax_MSN_Small_Headline_133x100,\r\n MSEdgeSingleCarousel: UAPPlacementType.PMax_Microsoft_Edge_Single_Carousel_178x100,\r\n MMAV2MSEdgeCarousel: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n MMAV2MSNSingleCarousel: UAPPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n MMAV2MSNRestoday: UAPPlacementType.PMax_MMAV2_MSN_Restoday_124x100,\r\n MMAV2MSNPartnerStripe: UAPPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n MMAV2MSNRiver: UAPPlacementType.PMax_MMAV2_MSN_River_191x100,\r\n Video: UAPPlacementType.PMax_Video,\r\n MSEdgeMobile: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n },\r\n\r\n PMaxV2: {\r\n AudienceSquareImage: UAPPlacementType.PMax_Audience_Network_SquareImage_1x1,\r\n AudienceWideImage: UAPPlacementType.PMax_Audience_Network_WideImage_191x100,\r\n MMALandscapeImage: UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n MMAVerticalImage: UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n MMAWideImage: UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n MMAV2MSEdgeCarousel: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n MMAV2MSNSingleCarousel: UAPPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n MMAV2MSNRestoday: UAPPlacementType.PMax_MMAV2_MSN_Restoday_124x100,\r\n MMAV2MSNPartnerStripe: UAPPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n MMAV2MSNRiver: UAPPlacementType.PMax_MMAV2_MSN_River_191x100,\r\n Video: UAPPlacementType.PMax_Video,\r\n MSEdgeMobile: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n },\r\n\r\n Boost: {\r\n HeroImageCarousel200x100: UAPPlacementType.Boost_Hero_Image_Carousel_200x100,\r\n HeroImageCarousel122x100: UAPPlacementType.Boost_Hero_Image_Carousel_122x100,\r\n HeroImageCarousel159x100: UAPPlacementType.Boost_Hero_Image_Carousel_159x100,\r\n HeroImageCarousel180x100: UAPPlacementType.Boost_Hero_Image_Carousel_180x100,\r\n HeroImageCarousel233x100: UAPPlacementType.Boost_Hero_Image_Carousel_233x100,\r\n HeroImageCarousel320x100: UAPPlacementType.Boost_Hero_Image_Carousel_320x100,\r\n HeroImageCarousel57x100: UAPPlacementType.Boost_Hero_Image_Carousel_57x100,\r\n WindowsSpotlight: UAPPlacementType.Boost_Windows_Spotlight_191x100,\r\n DiscoverCard: UAPPlacementType.Boost_Discover_Card_1x1,\r\n StartMenu: UAPPlacementType.Boost_Start_Menu,\r\n ActionCenter: UAPPlacementType.Boost_Action_Center,\r\n Banner: UAPPlacementType.Boost_Banner,\r\n Prong1Prong2Feed: UAPPlacementType.Boost_Prong1_Prong2_Feed_191x100,\r\n Coachmark: UAPPlacementType.Boost_Coachmark_175x100,\r\n },\r\n\r\n ImageExt: {\r\n MMAV2MSNRiver: UAPPlacementType.ImgExt_MMAV2_MSN_River_191x100,\r\n MMAV2MSNSingleCarousel: UAPPlacementType.ImgExt_MMAV2_MSN_Single_Carousel_169x100,\r\n MSEdgeMobile: UAPPlacementType.ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1,\r\n\r\n WideImage: UAPPlacementType.ImgExt_Audience_Network_WideImage_191x100,\r\n SquareImage: UAPPlacementType.ImgExt_Audience_Network_SquareImage_1x1,\r\n\r\n MSEdgeMediumHeadline: UAPPlacementType.ImgExt_Microsoft_Edge_Medium_Headline_172x100,\r\n MSEdgeSingleCarousel: UAPPlacementType.ImgExt_Microsoft_Edge_Single_Carousel_178x100,\r\n\r\n MSNSingleCarousel: UAPPlacementType.ImgExt_MSN_Single_Carousel_169x100,\r\n MSNMediumHeadline: UAPPlacementType.ImgExt_MSN_Medium_Headline_155x100,\r\n MSNInArticle: UAPPlacementType.ImgExt_MSN_InArticle_Ad_150x100,\r\n MSNSmallHeadline: UAPPlacementType.ImgExt_MSN_Small_Headline_133x100,\r\n MSNDoubleCarousel: UAPPlacementType.ImgExt_MSN_Double_Carousel_93x100,\r\n\r\n BingDesktopSingleImage: UAPPlacementType.ImgExt_Bing_Desktop_SingleImage_Extension_178x100,\r\n BingDesktopMultiImage: UAPPlacementType.ImgExt_Bing_Desktop_MultiImage_Extension_133x100,\r\n BingMobileMultiImage: UAPPlacementType.ImgExt_Bing_Mobile_MultiImage_Extension_133x100,\r\n },\r\n\r\n Outlook: {\r\n Mobile: UAPPlacementType.Outlook_Text_Mobile,\r\n Web: UAPPlacementType.Outlook_Text_Web,\r\n },\r\n\r\n BingSearch: {\r\n Mobile: UAPPlacementType.Bing_Search_Mobile,\r\n Desktop: UAPPlacementType.Bing_Search_Desktop,\r\n Text: UAPPlacementType.Bing_Search_Text,\r\n },\r\n\r\n Responsive: {\r\n MMA: {\r\n WideImage: UAPPlacementType.Responsive_MMA_WideImage_4x1,\r\n LandscapeImage: UAPPlacementType.Responsive_MMA_LandscapeImage_191x100,\r\n SquareImage: UAPPlacementType.Responsive_MMA_SquareImage_1x1,\r\n VerticalImage: UAPPlacementType.Responsive_MMA_VerticalImage_1x2,\r\n },\r\n\r\n MSAN: {\r\n WideImage: UAPPlacementType.Responsive_Audience_Network_WideImage_191x100,\r\n SquareImage: UAPPlacementType.Responsive_Audience_Network_SquareImage_1x1,\r\n MSEdgeSingleCarousel: UAPPlacementType.Responsive_Microsoft_Edge_Single_Carousel_178x100,\r\n MSNInArticle: UAPPlacementType.Responsive_MSN_InArticle_Ad_150x100,\r\n MSNSmallHeadline: UAPPlacementType.Responsive_MSN_Small_Headline_133x100,\r\n },\r\n\r\n MSANV2: {\r\n MSEdgeCarousel: UAPPlacementType.Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100,\r\n MSEdgeMobile: UAPPlacementType.Responsive_MsanV2_Microsoft_Edge_Mobile_1x1,\r\n MSANBanner: UAPPlacementType.Responsive_MsanV2_MSAN_Banner_2x1,\r\n MSANRiver: UAPPlacementType.Responsive_MsanV2_MSAN_River_191x100,\r\n MSANRectangle: UAPPlacementType.Responsive_MsanV2_MSAN_Rectangle_120x100,\r\n MSNCarousel: UAPPlacementType.Responsive_MsanV2_MSN_Carousel_169x100,\r\n MSNPartnerStripe: UAPPlacementType.Responsive_MsanV2_MSN_Partner_Stripe_153x100,\r\n MSNRestoday: UAPPlacementType.Responsive_MsanV2_MSN_Restoday_124x100,\r\n },\r\n\r\n Outlook: {\r\n Mobile: UAPPlacementType.Responsive_Outlook_Text_Mobile,\r\n Web: UAPPlacementType.Responsive_Outlook_Text_Web,\r\n },\r\n\r\n BingSearch: {\r\n Text: UAPPlacementType.Responsive_Bing_Search_Text,\r\n },\r\n\r\n Boost: {\r\n WindowsSpotlight: UAPPlacementType.Responsive_Boost_Windows_Spotlight_191x100,\r\n DiscoverCard: UAPPlacementType.Responsive_Boost_Discover_Card_1x1,\r\n StartMenu: UAPPlacementType.Responsive_Boost_Start_Menu,\r\n ActionCenter: UAPPlacementType.Responsive_Boost_Action_Center,\r\n Banner: UAPPlacementType.Responsive_Boost_Banner,\r\n Prong1Prong2Feed: UAPPlacementType.Responsive_Boost_Prong1_Prong2_Feed_191x100,\r\n Coachmark: UAPPlacementType.Responsive_Boost_Coachmark_175x100,\r\n },\r\n\r\n PMax: {\r\n AudienceSquareImage: UAPPlacementType.Responsive_PMax_Audience_Network_SquareImage_1x1,\r\n AudienceWideImage: UAPPlacementType.Responsive_PMax_Audience_Network_WideImage_191x100,\r\n MMALandscapeImage: UAPPlacementType.Responsive_PMax_MMA_LandscapeImage_191x100,\r\n MMAVerticalImage: UAPPlacementType.Responsive_PMax_MMA_VerticalImage_1x2,\r\n MMAWideImage: UAPPlacementType.Responsive_PMax_MMA_WideImage_4x1,\r\n MSNInArticle: UAPPlacementType.Responsive_PMax_MSN_InArticle_Ad_150x100,\r\n MSNSmallHeadline: UAPPlacementType.Responsive_PMax_MSN_Small_Headline_133x100,\r\n MSEdgeSingleCarousel: UAPPlacementType.Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100,\r\n MMAV2MSEdgeCarousel: UAPPlacementType.Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n MMAV2MSNSingleCarousel: UAPPlacementType.Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n MMAV2MSNRestoday: UAPPlacementType.Responsive_PMax_MMAV2_MSN_Restoday_124x100,\r\n MMAV2MSNPartnerStripe: UAPPlacementType.Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n MMAV2MSNRiver: UAPPlacementType.Responsive_PMax_MMAV2_MSN_River_191x100,\r\n MSEdgeMobile: UAPPlacementType.Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n },\r\n\r\n PMaxV2: {\r\n AudienceSquareImage: UAPPlacementType.PMax_Audience_Network_SquareImage_1x1,\r\n AudienceWideImage: UAPPlacementType.PMax_Audience_Network_WideImage_191x100,\r\n MMALandscapeImage: UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n MMAVerticalImage: UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n MMAWideImage: UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n MMAV2MSEdgeCarousel: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n MMAV2MSNSingleCarousel: UAPPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n MMAV2MSNRestoday: UAPPlacementType.PMax_MMAV2_MSN_Restoday_124x100,\r\n MMAV2MSNPartnerStripe: UAPPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n MMAV2MSNRiver: UAPPlacementType.PMax_MMAV2_MSN_River_191x100,\r\n MSEdgeMobile: UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n },\r\n },\r\n\r\n ResponsiveSearch: {\r\n Text: UAPPlacementType.Responsive_Search,\r\n Desktop: UAPPlacementType.Responsive_Search_Desktop,\r\n Mobile: UAPPlacementType.Responsive_Search_Mobile,\r\n },\r\n\r\n DynamicSearch: {\r\n Dynamic: UAPPlacementType.Dynamic_Search,\r\n },\r\n\r\n LinkedIn: {\r\n Landscape: {\r\n SingleImageDesktop: UAPPlacementType.LinkedIn_Single_Image_Desktop_Landscape,\r\n SingleImageMobile: UAPPlacementType.LinkedIn_Single_Image_Mobile_Landscape,\r\n },\r\n Square: {\r\n SingleImageDesktop: UAPPlacementType.LinkedIn_Single_Image_Desktop_Square,\r\n SingleImageMobile: UAPPlacementType.LinkedIn_Single_Image_Mobile_Square,\r\n },\r\n Vertical: {\r\n SingleImageMobile: UAPPlacementType.LinkedIn_Single_Image_Mobile_Vertical,\r\n },\r\n },\r\n\r\n UnifiedAppAds: {\r\n VideoHorizontal: UAPPlacementType.Unified_App_Ads_Video_Horizontal,\r\n M365Outlook: UAPPlacementType.Unified_App_Ads_M365_Outlook,\r\n MSNDisplay: UAPPlacementType.Unified_App_Ads_MSN_Display,\r\n CasualGamesDimensions: UAPPlacementType.Unified_App_Ads_Causal_Games_Dimensions,\r\n BingSearch: UAPPlacementType.Unified_App_Ads_Bing_Search,\r\n BingSearchText: UAPPlacementType.Unified_App_Ads_Bing_Search_Text,\r\n },\r\n};\r\n\r\nUAPPlacementTypeAlias.MMA.All = [\r\n UAPPlacementType.MMA_WideImage_4x1,\r\n UAPPlacementType.MMA_LandscapeImage_191x100,\r\n UAPPlacementType.MMA_SquareImage_1x1,\r\n UAPPlacementType.MMA_VerticalImage_1x2,\r\n];\r\n\r\nUAPPlacementTypeAlias.MSAN.All = [\r\n UAPPlacementType.Audience_Network_WideImage_191x100,\r\n UAPPlacementType.Microsoft_Edge_Single_Carousel_178x100,\r\n UAPPlacementType.MSN_InArticle_Ad_150x100,\r\n UAPPlacementType.MSN_Small_Headline_133x100,\r\n UAPPlacementType.Audience_Network_SquareImage_1x1,\r\n];\r\n\r\nUAPPlacementTypeAlias.MSANV2.All = [\r\n UAPPlacementType.MsanV2_Microsoft_Edge_Carouse_l201x100,\r\n UAPPlacementType.MsanV2_MSAN_Banner_2x1,\r\n UAPPlacementType.MsanV2_MSAN_River_191x100,\r\n UAPPlacementType.MsanV2_MSN_Carousel_169x100,\r\n UAPPlacementType.MsanV2_MSN_Partner_Stripe_153x100,\r\n UAPPlacementType.MsanV2_MSN_Restoday_124x100,\r\n UAPPlacementType.MsanV2_MSAN_Rectangle_120x100,\r\n UAPPlacementType.MsanV2_Microsoft_Edge_Mobile_1x1,\r\n];\r\n\r\nUAPPlacementTypeAlias.PMax.All = [\r\n UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n UAPPlacementType.PMax_Audience_Network_WideImage_191x100,\r\n UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n UAPPlacementType.PMax_Microsoft_Edge_Single_Carousel_178x100,\r\n UAPPlacementType.PMax_MSN_InArticle_Ad_150x100,\r\n UAPPlacementType.PMax_MSN_Small_Headline_133x100,\r\n UAPPlacementType.PMax_Audience_Network_SquareImage_1x1,\r\n UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n];\r\n\r\nUAPPlacementTypeAlias.PMaxV2.All = [\r\n UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n UAPPlacementType.PMax_Audience_Network_WideImage_191x100,\r\n UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n UAPPlacementType.PMax_Audience_Network_SquareImage_1x1,\r\n UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Restoday_124x100,\r\n];\r\n\r\nUAPPlacementTypeAlias.PMaxV2.AllV2 = [\r\n UAPPlacementType.PMax_MMA_WideImage_4x1,\r\n UAPPlacementType.PMax_MMA_LandscapeImage_191x100,\r\n UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Mobile_1x1,\r\n UAPPlacementType.PMax_MMA_VerticalImage_1x2,\r\n UAPPlacementType.PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Single_Carousel_169x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Partner_Stripe_153x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_Restoday_124x100,\r\n UAPPlacementType.PMax_MMAV2_MSN_River_191x100,\r\n];\r\n\r\nUAPPlacementTypeAlias.ImageExt.All = [\r\n UAPPlacementType.ImgExt_Audience_Network_WideImage_191x100,\r\n UAPPlacementType.ImgExt_Microsoft_Edge_Single_Carousel_178x100,\r\n UAPPlacementType.ImgExt_Bing_Desktop_SingleImage_Extension_178x100,\r\n UAPPlacementType.ImgExt_Microsoft_Edge_Medium_Headline_172x100,\r\n UAPPlacementType.ImgExt_MSN_Single_Carousel_169x100,\r\n UAPPlacementType.ImgExt_MSN_Medium_Headline_155x100,\r\n UAPPlacementType.ImgExt_MSN_InArticle_Ad_150x100,\r\n UAPPlacementType.ImgExt_MSN_Small_Headline_133x100,\r\n UAPPlacementType.ImgExt_Bing_Desktop_MultiImage_Extension_133x100,\r\n UAPPlacementType.ImgExt_Bing_Mobile_MultiImage_Extension_133x100,\r\n UAPPlacementType.ImgExt_Audience_Network_SquareImage_1x1,\r\n UAPPlacementType.ImgExt_MSN_Double_Carousel_93x100,\r\n];\r\n\r\nUAPPlacementTypeAlias.ImageExt.AllV2 = [\r\n UAPPlacementType.ImgExt_MMAV2_MSN_River_191x100,\r\n UAPPlacementType.ImgExt_Bing_Desktop_SingleImage_Extension_178x100,\r\n UAPPlacementType.ImgExt_Microsoft_Edge_Medium_Headline_172x100,\r\n UAPPlacementType.ImgExt_MMAV2_MSN_Single_Carousel_169x100,\r\n UAPPlacementType.ImgExt_Bing_Desktop_MultiImage_Extension_133x100,\r\n UAPPlacementType.ImgExt_Bing_Mobile_MultiImage_Extension_133x100,\r\n UAPPlacementType.ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1,\r\n UAPPlacementType.ImgExt_Microsoft_Edge_Single_Carousel_178x100,\r\n UAPPlacementType.ImgExt_MSN_Medium_Headline_155x100,\r\n UAPPlacementType.ImgExt_MSN_InArticle_Ad_150x100,\r\n UAPPlacementType.ImgExt_MSN_Small_Headline_133x100,\r\n UAPPlacementType.ImgExt_MSN_Double_Carousel_93x100,\r\n];\r\n\r\nUAPPlacementTypeAlias.BingSearch.All = [\r\n UAPPlacementType.Bing_Search_Text,\r\n UAPPlacementType.Bing_Search_Desktop,\r\n UAPPlacementType.Bing_Search_Mobile,\r\n];\r\n\r\nUAPPlacementTypeAlias.Boost.All = [\r\n UAPPlacementType.Boost_Hero_Image_Carousel_200x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_122x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_159x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_180x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_233x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_320x100,\r\n UAPPlacementType.Boost_Hero_Image_Carousel_57x100,\r\n UAPPlacementType.Boost_Windows_Spotlight_191x100,\r\n UAPPlacementType.Boost_Discover_Card_1x1,\r\n UAPPlacementType.Boost_Start_Menu,\r\n UAPPlacementType.Boost_Action_Center,\r\n UAPPlacementType.Boost_Banner,\r\n UAPPlacementType.Boost_Prong1_Prong2_Feed_191x100,\r\n UAPPlacementType.Boost_Coachmark_175x100,\r\n];\r\n\r\nUAPPlacementTypeAlias.ResponsiveSearch.All = [\r\n UAPPlacementType.Responsive_Search,\r\n UAPPlacementType.Responsive_Search_Desktop,\r\n UAPPlacementType.Responsive_Search_Mobile,\r\n];\r\n\r\nUAPPlacementTypeAlias.DynamicSearch.All = [\r\n UAPPlacementType.Dynamic_Search,\r\n];\r\n\r\nUAPPlacementTypeAlias.LinkedIn.All = [\r\n UAPPlacementType.LinkedIn_Single_Image_Desktop_Landscape,\r\n UAPPlacementType.LinkedIn_Single_Image_Mobile_Landscape,\r\n\r\n UAPPlacementType.LinkedIn_Single_Image_Desktop_Square,\r\n UAPPlacementType.LinkedIn_Single_Image_Mobile_Square,\r\n\r\n UAPPlacementType.LinkedIn_Single_Image_Mobile_Vertical,\r\n];\r\n\r\n","import _ from 'underscore';\r\nimport { UAPCroppingType, UAPImageExpansionType, setROIInfo } from '@bingads-webui-campaign-react/unified-ad-preview-library-util';\r\nimport { getCenterCroppedSettings } from './get-central-crop-settings';\r\n\r\nexport const getExpandedImageInfo = ({\r\n imageExpansionType,\r\n expandedImageUrl,\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n expandedImageCropSettings,\r\n originalImageCropSettings,\r\n extraCheck = undefined,\r\n}) => {\r\n if (!imageExpansionType || imageExpansionType === UAPImageExpansionType.None) {\r\n return null;\r\n }\r\n\r\n if (originalImageCropSettings && imageExpansionType !== UAPImageExpansionType.Outpainting && originalImageCropSettings.CroppingType === UAPCroppingType.SmartCrop) {\r\n return null;\r\n }\r\n\r\n if (imageExpansionType === UAPImageExpansionType.SingleColorPadding) {\r\n return null;\r\n }\r\n\r\n if (!expandedImageCropSettings) {\r\n return null;\r\n }\r\n\r\n if (extraCheck && extraCheck()) {\r\n return null;\r\n }\r\n\r\n return {\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n expandedImageCropSettings,\r\n expandedImageUrl,\r\n };\r\n};\r\n\r\nexport const getCropSettingsFromRoi = ({\r\n imageMeta,\r\n imageCropping,\r\n placementMetaList, // Array\r\n useOriginalImageSize = false,\r\n}) => {\r\n let expandedInfo = {};\r\n if (imageMeta.expandedMeta) {\r\n const { expandedMeta } = imageMeta;\r\n expandedInfo = {\r\n expandedImageUrl: expandedMeta.expandedImageUrl,\r\n expandedImageWidth: expandedMeta.expandedImageWidth,\r\n expandedImageHeight: expandedMeta.expandedImageHeight,\r\n expandedImageCropSettings: expandedMeta.expandedImageCropSettings,\r\n originalImageCropSettings: expandedMeta.originalImageCropSettings,\r\n imageExpansionType: expandedMeta.imageExpansionType,\r\n };\r\n } else if (imageMeta.roiInfo) {\r\n expandedInfo = setROIInfo(imageMeta.roiInfo, imageMeta.url);\r\n } else {\r\n return [];\r\n }\r\n\r\n const {\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n expandedImageCropSettings: expandedImageCropSettingsOriginal,\r\n originalImageCropSettings,\r\n expandedImageUrl,\r\n imageExpansionType,\r\n } = expandedInfo;\r\n\r\n const aspectRatios = _.pluck(placementMetaList, 'aspectRatio');\r\n const width = useOriginalImageSize ? imageMeta.originalWidth : imageMeta.width;\r\n const height = useOriginalImageSize ? imageMeta.originalHeight : imageMeta.height;\r\n const maxCropBox = imageCropping || {\r\n SourceWidth: width,\r\n SourceHeight: height,\r\n SourceX: 0,\r\n SourceY: 0,\r\n };\r\n\r\n const expandedImageCropSettingsMap = _.map(aspectRatios, (ratio) => {\r\n const cropSetting = _.find(expandedImageCropSettingsOriginal, ({ AspectRatio }) => AspectRatio === ratio);\r\n return cropSetting ? cropSetting.CropSetting : undefined;\r\n });\r\n\r\n const originalImageCropSettingsMap = _.map(aspectRatios, (ratio) => {\r\n const cropSetting = _.find(originalImageCropSettings, ({ AspectRatio }) => AspectRatio === ratio);\r\n return cropSetting ? cropSetting.CropSetting : { ...getCenterCroppedSettings(maxCropBox, ratio), CroppingType: UAPCroppingType.CenterCrop };\r\n });\r\n\r\n const placementList = _.map(expandedImageCropSettingsMap, (expandedCropSetting, index) => {\r\n const expandedImageInfo = getExpandedImageInfo({\r\n imageExpansionType,\r\n expandedImageUrl,\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n expandedImageCropSettings: expandedCropSetting,\r\n originalImageCropSettings: originalImageCropSettingsMap[index],\r\n });\r\n\r\n if (expandedImageInfo) {\r\n return {\r\n ...expandedImageInfo,\r\n placementCropping: originalImageCropSettingsMap[index],\r\n };\r\n }\r\n\r\n return {\r\n placementCropping: originalImageCropSettingsMap[index],\r\n };\r\n });\r\n\r\n return placementList;\r\n};\r\n","import { UAPPlacementTypeAlias as PT } from '../ad-preview-model';\r\nimport {\r\n // MMA\r\n AdPlacementMmaLandscapeImage191x100,\r\n AdPlacementMmaSquareImage1x1,\r\n AdPlacementMmaVerticalImage1x2,\r\n AdPlacementMmaWideImage4x1,\r\n\r\n // MMA in MSAN\r\n AdPlacementMmaInMsanWideImage191x100,\r\n AdPlacementMmaInMsanSquareImage1x1,\r\n AdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n AdPlacementMmaInMsanMSNInArticle150x100,\r\n AdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n\r\n // MMA in MSAN V2\r\n AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n AdPlacementMmaInMsanV2MSANBanner2x1,\r\n AdPlacementMmaInMsanV2MSANRiver191x100,\r\n AdPlacementMmaInMsanV2MSANRectangle191x100,\r\n AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n AdPlacementMmaInMsanV2MSNPartnerStripe153x100,\r\n AdPlacementMmaInMsanV2MSNRestoday124x100,\r\n\r\n // Image Extension\r\n AdPlacementImgExtWideImage191x100,\r\n AdPlacementImgExtMSEdgeSingleCarousel178x100,\r\n AdPlacementImgExtBingDesktopSingleImage178x100,\r\n AdPlacementImgExtMSEdgeMediumHeadline172x100,\r\n AdPlacementImgExtMSNSingleCarousel169x100,\r\n AdPlacementImgExtMSNMediumHeadline155x100,\r\n AdPlacementImgExtMSNInArticle150x100,\r\n AdPlacementImgExtMSNSmallHeadline133x100,\r\n AdPlacementImgExtBingDesktopMultiImage133x100,\r\n AdPlacementImgExtBingMobileMultiImage133x100,\r\n AdPlacementImgExtSquareImage1x1,\r\n AdPlacementImgExtMSNDoubleCarousel93x100,\r\n\r\n //\r\n AdPlacementBingSearchText,\r\n AdPlacementBingSearchTextDesktop,\r\n AdPlacementBingSearchTextMobile,\r\n AdPlacementOutlookMobile,\r\n AdPlacementOutlookWeb,\r\n\r\n // Responsive\r\n ResponsiveAdPlacementMmaLandscapeImage191x100,\r\n ResponsiveAdPlacementMmaSquareImage1x1,\r\n ResponsiveAdPlacementMmaVerticalImage1x2,\r\n ResponsiveAdPlacementMmaWideImage4x1,\r\n ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n ResponsiveAdPlacementMmaInMsanMSNInArticle150x100,\r\n ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n ResponsiveAdPlacementMmaInMsanSquareImage1x1,\r\n ResponsiveAdPlacementMmaInMsanWideImage191x100,\r\n ResponsiveAdPlacementBingSearchText,\r\n ResponsiveAdPlacementOutlookMobile,\r\n ResponsiveAdPlacementOutlookWeb,\r\n ResponsiveAdPlacementBoostWindowsSpotlight191x100,\r\n ResponsiveAdPlacementBoostDiscoverCard1x1,\r\n ResponsiveAdPlacementBoostProngFeed191x100,\r\n ResponsiveAdPlacementBoostCoachmark175x100,\r\n ResponsiveAdPlacementBoostStartMenu,\r\n ResponsiveAdPlacementBoostActionCenter,\r\n ResponsiveAdPlacementBoostBanner,\r\n\r\n // Responsive Search Ad\r\n AdPlacementResponsiveSearch,\r\n AdPlacementResponsiveSearchDesktop,\r\n AdPlacementResponsiveSearchMobile,\r\n\r\n // Dynamic Search Ad\r\n AdPlacementDynamicSearch,\r\n\r\n // boost\r\n AdPlacementBoostHeroImageCarousel,\r\n AdPlacementBoostWindowsSpotlight191x100,\r\n AdPlacementBoostDiscoverCard1x1,\r\n AdPlacementBoostStartMenu,\r\n AdPlacementBoostActionCenter,\r\n AdPlacementBoostBanner,\r\n AdPlacementBoostProngFeed191x100,\r\n AdPlacementBoostCoachmark175x100,\r\n\r\n // LinkedIn\r\n AdPlacementLinkedInSingleImageDesktop,\r\n AdPlacementLinkedInSingleImageMobile,\r\n\r\n // Unified App Ads\r\n AppAdsVideoHorizontalPlacement,\r\n AppAdsBingSearchPlacement,\r\n AppAdsBingSearchPlacementText,\r\n AppAdsCasualGamesDimensionsPlacement,\r\n AppAdsM365OutlookPlacement,\r\n AppAdsMSNDisplayPlacement,\r\n\r\n VideoPlacement,\r\n} from '../ad-placement-components';\r\n\r\nconst PlacementType2Component = {\r\n // MMA\r\n [PT.MMA.WideImage]: AdPlacementMmaWideImage4x1,\r\n [PT.MMA.LandscapeImage]: AdPlacementMmaLandscapeImage191x100,\r\n [PT.MMA.SquareImage]: AdPlacementMmaSquareImage1x1,\r\n [PT.MMA.VerticalImage]: AdPlacementMmaVerticalImage1x2,\r\n\r\n // MMA in MSAN (Audience Network)\r\n [PT.MSAN.WideImage]: AdPlacementMmaInMsanWideImage191x100,\r\n [PT.MSAN.SquareImage]: AdPlacementMmaInMsanSquareImage1x1,\r\n [PT.MSAN.MSEdgeSingleCarousel]: AdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n [PT.MSAN.MSNInArticle]: AdPlacementMmaInMsanMSNInArticle150x100,\r\n [PT.MSAN.MSNSmallHeadline]: AdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n\r\n [PT.MSANV2.MSEdgeCarousel]: AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n [PT.MSANV2.MSEdgeMobile]: AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n [PT.MSANV2.MSANBanner]: AdPlacementMmaInMsanV2MSANBanner2x1,\r\n [PT.MSANV2.MSANRiver]: AdPlacementMmaInMsanV2MSANRiver191x100,\r\n [PT.MSANV2.MSANRectangle]: AdPlacementMmaInMsanV2MSANRectangle191x100,\r\n [PT.MSANV2.MSNCarousel]: AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n [PT.MSANV2.MSNPartnerStripe]: AdPlacementMmaInMsanV2MSNPartnerStripe153x100,\r\n [PT.MSANV2.MSNRestoday]: AdPlacementMmaInMsanV2MSNRestoday124x100,\r\n\r\n // pmax\r\n [PT.PMax.AudienceSquareImage]: AdPlacementMmaInMsanSquareImage1x1,\r\n [PT.PMax.AudienceWideImage]: AdPlacementMmaInMsanWideImage191x100,\r\n [PT.PMax.MMALandscapeImage]: AdPlacementMmaLandscapeImage191x100,\r\n [PT.PMax.MMAVerticalImage]: AdPlacementMmaVerticalImage1x2,\r\n [PT.PMax.MMAWideImage]: AdPlacementMmaWideImage4x1,\r\n [PT.PMax.MSNInArticle]: AdPlacementMmaInMsanMSNInArticle150x100,\r\n [PT.PMax.MSNSmallHeadline]: AdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n [PT.PMax.MSEdgeSingleCarousel]: AdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n [PT.PMax.MMAV2MSEdgeCarousel]: AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n [PT.PMax.MMAV2MSNSingleCarousel]: AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n [PT.PMax.MMAV2MSNRestoday]: AdPlacementMmaInMsanV2MSNRestoday124x100,\r\n [PT.PMax.MMAV2MSNPartnerStripe]: AdPlacementMmaInMsanV2MSNPartnerStripe153x100,\r\n [PT.PMax.MMAV2MSNRiver]: AdPlacementMmaInMsanV2MSANRiver191x100,\r\n [PT.PMax.Video]: VideoPlacement,\r\n [PT.PMax.MSEdgeMobile]: AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n\r\n // Image Extension\r\n [PT.ImageExt.WideImage]: AdPlacementImgExtWideImage191x100,\r\n [PT.ImageExt.MSEdgeSingleCarousel]: AdPlacementImgExtMSEdgeSingleCarousel178x100,\r\n [PT.ImageExt.BingDesktopSingleImage]: AdPlacementImgExtBingDesktopSingleImage178x100,\r\n [PT.ImageExt.MSEdgeMediumHeadline]: AdPlacementImgExtMSEdgeMediumHeadline172x100,\r\n [PT.ImageExt.MSNSingleCarousel]: AdPlacementImgExtMSNSingleCarousel169x100,\r\n [PT.ImageExt.MSNMediumHeadline]: AdPlacementImgExtMSNMediumHeadline155x100,\r\n [PT.ImageExt.MSNInArticle]: AdPlacementImgExtMSNInArticle150x100,\r\n [PT.ImageExt.MSNSmallHeadline]: AdPlacementImgExtMSNSmallHeadline133x100,\r\n [PT.ImageExt.BingDesktopMultiImage]: AdPlacementImgExtBingDesktopMultiImage133x100,\r\n [PT.ImageExt.BingMobileMultiImage]: AdPlacementImgExtBingMobileMultiImage133x100,\r\n [PT.ImageExt.SquareImage]: AdPlacementImgExtSquareImage1x1,\r\n [PT.ImageExt.MSNDoubleCarousel]: AdPlacementImgExtMSNDoubleCarousel93x100,\r\n [PT.ImageExt.MMAV2MSNRiver]: AdPlacementMmaInMsanV2MSANRiver191x100,\r\n [PT.ImageExt.MMAV2MSNSingleCarousel]: AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n [PT.ImageExt.MSEdgeMobile]: AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n\r\n //\r\n [PT.Outlook.Mobile]: AdPlacementOutlookMobile,\r\n [PT.Outlook.Web]: AdPlacementOutlookWeb,\r\n [PT.BingSearch.Mobile]: AdPlacementBingSearchTextMobile,\r\n [PT.BingSearch.Desktop]: AdPlacementBingSearchTextDesktop,\r\n [PT.BingSearch.Text]: AdPlacementBingSearchText,\r\n\r\n // responsive MMA\r\n [PT.Responsive.MMA.WideImage]: ResponsiveAdPlacementMmaWideImage4x1,\r\n [PT.Responsive.MMA.LandscapeImage]: ResponsiveAdPlacementMmaLandscapeImage191x100,\r\n [PT.Responsive.MMA.SquareImage]: ResponsiveAdPlacementMmaSquareImage1x1,\r\n [PT.Responsive.MMA.VerticalImage]: ResponsiveAdPlacementMmaVerticalImage1x2,\r\n\r\n // responsive MMA in MSAN (Audience Network)\r\n [PT.Responsive.MSAN.WideImage]: ResponsiveAdPlacementMmaInMsanWideImage191x100,\r\n [PT.Responsive.MSAN.SquareImage]: ResponsiveAdPlacementMmaInMsanSquareImage1x1,\r\n [PT.Responsive.MSAN.MSEdgeSingleCarousel]: ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n [PT.Responsive.MSAN.MSNInArticle]: ResponsiveAdPlacementMmaInMsanMSNInArticle150x100,\r\n [PT.Responsive.MSAN.MSNSmallHeadline]: ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n\r\n [PT.Responsive.MSANV2.MSEdgeCarousel]: AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n [PT.Responsive.MSANV2.MSEdgeMobile]: AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n [PT.Responsive.MSANV2.MSANBanner]: AdPlacementMmaInMsanV2MSANBanner2x1,\r\n [PT.Responsive.MSANV2.MSANRiver]: AdPlacementMmaInMsanV2MSANRiver191x100,\r\n [PT.Responsive.MSANV2.MSANRectangle]: AdPlacementMmaInMsanV2MSANRectangle191x100,\r\n [PT.Responsive.MSANV2.MSNCarousel]: AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n [PT.Responsive.MSANV2.MSNPartnerStripe]: AdPlacementMmaInMsanV2MSNPartnerStripe153x100,\r\n [PT.Responsive.MSANV2.MSNRestoday]: AdPlacementMmaInMsanV2MSNRestoday124x100,\r\n\r\n // responsive text\r\n [PT.Responsive.Outlook.Mobile]: ResponsiveAdPlacementOutlookMobile,\r\n [PT.Responsive.Outlook.Web]: ResponsiveAdPlacementOutlookWeb,\r\n [PT.Responsive.BingSearch.Text]: ResponsiveAdPlacementBingSearchText,\r\n\r\n // dynamic search ad\r\n [PT.DynamicSearch.Dynamic]: AdPlacementDynamicSearch,\r\n\r\n // responsive search ad\r\n [PT.ResponsiveSearch.Text]: AdPlacementResponsiveSearch,\r\n [PT.ResponsiveSearch.Desktop]: AdPlacementResponsiveSearchDesktop,\r\n [PT.ResponsiveSearch.Mobile]: AdPlacementResponsiveSearchMobile,\r\n\r\n // responsive boost\r\n [PT.Responsive.Boost.WindowsSpotlight]: ResponsiveAdPlacementBoostWindowsSpotlight191x100,\r\n [PT.Responsive.Boost.DiscoverCard]: ResponsiveAdPlacementBoostDiscoverCard1x1,\r\n [PT.Responsive.Boost.StartMenu]: ResponsiveAdPlacementBoostStartMenu,\r\n [PT.Responsive.Boost.ActionCenter]: ResponsiveAdPlacementBoostActionCenter,\r\n [PT.Responsive.Boost.Banner]: ResponsiveAdPlacementBoostBanner,\r\n [PT.Responsive.Boost.Prong1Prong2Feed]: ResponsiveAdPlacementBoostProngFeed191x100,\r\n [PT.Responsive.Boost.Coachmark]: ResponsiveAdPlacementBoostCoachmark175x100,\r\n\r\n // responsive pmax\r\n [PT.Responsive.PMax.AudienceSquareImage]: ResponsiveAdPlacementMmaInMsanSquareImage1x1,\r\n [PT.Responsive.PMax.AudienceWideImage]: ResponsiveAdPlacementMmaInMsanWideImage191x100,\r\n [PT.Responsive.PMax.MMALandscapeImage]: ResponsiveAdPlacementMmaLandscapeImage191x100,\r\n [PT.Responsive.PMax.MMAVerticalImage]: ResponsiveAdPlacementMmaVerticalImage1x2,\r\n [PT.Responsive.PMax.MMAWideImage]: ResponsiveAdPlacementMmaWideImage4x1,\r\n [PT.Responsive.PMax.MSNInArticle]: ResponsiveAdPlacementMmaInMsanMSNInArticle150x100,\r\n [PT.Responsive.PMax.MSNSmallHeadline]: ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100,\r\n [PT.Responsive.PMax.MSEdgeSingleCarousel]: ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100,\r\n [PT.Responsive.PMax.MMAV2MSEdgeCarousel]: AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100,\r\n [PT.Responsive.PMax.MMAV2MSNSingleCarousel]: AdPlacementMmaInMsanV2MSNCarousel169x100,\r\n [PT.Responsive.PMax.MMAV2MSNRestoday]: AdPlacementMmaInMsanV2MSNRestoday124x100,\r\n [PT.Responsive.PMax.MMAV2MSNPartnerStripe]: AdPlacementMmaInMsanV2MSNPartnerStripe153x100,\r\n [PT.Responsive.PMax.MMAV2MSNRiver]: AdPlacementMmaInMsanV2MSANRiver191x100,\r\n [PT.Responsive.PMax.MSEdgeMobile]: AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1,\r\n\r\n // Boost\r\n [PT.Boost.HeroImageCarousel200x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel122x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel159x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel180x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel233x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel320x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.HeroImageCarousel57x100]: AdPlacementBoostHeroImageCarousel,\r\n [PT.Boost.WindowsSpotlight]: AdPlacementBoostWindowsSpotlight191x100,\r\n [PT.Boost.DiscoverCard]: AdPlacementBoostDiscoverCard1x1,\r\n [PT.Boost.StartMenu]: AdPlacementBoostStartMenu,\r\n [PT.Boost.ActionCenter]: AdPlacementBoostActionCenter,\r\n [PT.Boost.Banner]: AdPlacementBoostBanner,\r\n [PT.Boost.Prong1Prong2Feed]: AdPlacementBoostProngFeed191x100,\r\n [PT.Boost.Coachmark]: AdPlacementBoostCoachmark175x100,\r\n\r\n // LinkedIn\r\n [PT.LinkedIn.Landscape.SingleImageDesktop]: AdPlacementLinkedInSingleImageDesktop,\r\n [PT.LinkedIn.Landscape.SingleImageMobile]: AdPlacementLinkedInSingleImageMobile,\r\n\r\n [PT.LinkedIn.Square.SingleImageDesktop]: AdPlacementLinkedInSingleImageDesktop,\r\n [PT.LinkedIn.Square.SingleImageMobile]: AdPlacementLinkedInSingleImageMobile,\r\n\r\n [PT.LinkedIn.Vertical.SingleImageMobile]: AdPlacementLinkedInSingleImageMobile,\r\n\r\n // Unified App Ads\r\n [PT.UnifiedAppAds.VideoHorizontal]: AppAdsVideoHorizontalPlacement,\r\n [PT.UnifiedAppAds.BingSearch]: AppAdsBingSearchPlacement,\r\n [PT.UnifiedAppAds.BingSearchText]: AppAdsBingSearchPlacementText,\r\n [PT.UnifiedAppAds.CasualGamesDimensions]: AppAdsCasualGamesDimensionsPlacement,\r\n [PT.UnifiedAppAds.M365Outlook]: AppAdsM365OutlookPlacement,\r\n [PT.UnifiedAppAds.MSNDisplay]: AppAdsMSNDisplayPlacement,\r\n};\r\n\r\nexport const getAdPlacementComponent = placementType => PlacementType2Component[placementType];\r\n","/* eslint-disable react/prop-types */\r\nimport _ from 'underscore';\r\nimport classnames from 'classnames';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { getAdPlacementComponent } from './get-ad-placement-component';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getAdPreviewGridLayoutStyles } from '../styles';\r\nimport { pickSingleImageFromImageList } from '../ad-preview-model/use-ad-preview-model';\r\n\r\n// import {\r\n// UAPVMSingleImagePlacement as TSingleImageViewModel,\r\n// UAPVMPlacement as TMultiImageViewModel,\r\n// } from '../@types';\r\n\r\n// interface GridLayoutProps {\r\n// placementList: Array | undefined | null;\r\n// onRenderPlacement: Function;\r\n// onRenderEmptyView?: Function | undefined | null;\r\n// gridLayoutContainerClassName?: String | undefined | null;\r\n// classes: {\r\n// adPreviewGridLayoutContainer: string;\r\n// };\r\n// }\r\n\r\nconst GridLayout /* : React.FC */ = ({\r\n placementList,\r\n onRenderPlacement,\r\n onRenderEmptyView,\r\n gridLayoutContainerClassName,\r\n classes,\r\n}) => {\r\n const emptyView = useMemo(() => {\r\n if (onRenderEmptyView) {\r\n return onRenderEmptyView(placementList);\r\n }\r\n return null;\r\n }, [onRenderEmptyView, placementList]);\r\n\r\n const placementComponentList = useMemo(() => {\r\n const ret = _.map(placementList, (placement, index) => {\r\n const { placementMeta, images, ...rest } = placement || {};\r\n const { placementType, hasMultiImages } = placementMeta || {};\r\n const AdPlacementComponent = getAdPlacementComponent(placementType);\r\n if (AdPlacementComponent) {\r\n // convert multi-image model to single-image model if needed\r\n let newPlacement = placement;\r\n if (!hasMultiImages && !_.isEmpty(images)) {\r\n const selectedImage = pickSingleImageFromImageList(images) || {};\r\n newPlacement = { placementMeta, ...selectedImage, ...rest };\r\n }\r\n return onRenderPlacement(newPlacement, AdPlacementComponent, index);\r\n }\r\n return null;\r\n });\r\n return ret;\r\n }, [onRenderPlacement, placementList]);\r\n\r\n return !_.isEmpty(placementComponentList) ? (\r\n
\r\n {placementComponentList}\r\n
\r\n ) : emptyView;\r\n};\r\n\r\nexport const AdPreviewGridLayout = withUAPLThemedStyles(\r\n GridLayout,\r\n getAdPreviewGridLayoutStyles,\r\n { componentName: 'AdPreviewGridLayout' }\r\n);\r\n","export const getAdPreviewGridLayoutStyles = (/* components, { palette = {} } = {} */) => ({\r\n adPreviewGridLayoutContainer: {\r\n display: 'grid',\r\n },\r\n});\r\n","/* eslint-disable react/prop-types */\r\n\r\nimport _ from 'underscore';\r\nimport classnames from 'classnames';\r\nimport React, { useMemo } from 'react';\r\n\r\nimport { getAdPlacementComponent } from './get-ad-placement-component';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getAdPreviewSinglePlacementLayoutStyles } from '../styles';\r\nimport { pickSingleImageFromImageList } from '../ad-preview-model/use-ad-preview-model';\r\n\r\n// import {\r\n// UAPVMSingleImagePlacement as TSingleImageViewModel,\r\n// UAPVMPlacement as TMultiImageViewModel,\r\n// } from '../@types';\r\n\r\n// interface SinglePlacementLayoutProps {\r\n// placementData: TSingleImageViewModel | TMultiImageViewModel | undefined | null;\r\n// onRenderPlacement: Function;\r\n// onRenderEmptyView?: Function | undefined | null;\r\n// layoutContainerClassName?: String | undefined | null;\r\n// classes: {\r\n// adPreviewLayoutContainer: string;\r\n// };\r\n// }\r\n\r\nconst SinglePlacementLayout = ({\r\n placementData, // SinglePlacementLayoutProps\r\n onRenderPlacement,\r\n onRenderEmptyView,\r\n layoutContainerClassName,\r\n hasContainer = true,\r\n classes,\r\n}) => {\r\n const emptyView = useMemo(() => {\r\n if (onRenderEmptyView) {\r\n return onRenderEmptyView(placementData);\r\n }\r\n return null;\r\n }, [onRenderEmptyView, placementData]);\r\n\r\n const placementComponent = useMemo(() => {\r\n const { placementMeta, images, ...rest } = placementData || {};\r\n const { placementType, hasMultiImages = false } = placementMeta || {};\r\n const AdPlacementComponent = getAdPlacementComponent(placementType);\r\n if (AdPlacementComponent) {\r\n // convert multi-image model to single-image model if needed\r\n if (!hasMultiImages && !_.isEmpty(images)) {\r\n const selectedImage = pickSingleImageFromImageList(images) || {};\r\n const newPlacement = { placementMeta, ...selectedImage, ...rest };\r\n return onRenderPlacement(newPlacement, AdPlacementComponent);\r\n }\r\n return onRenderPlacement(placementData, AdPlacementComponent);\r\n }\r\n return null;\r\n }, [onRenderPlacement, placementData]);\r\n\r\n return hasContainer ? (\r\n
\r\n {placementComponent || emptyView}\r\n
\r\n ) : (\r\n <>\r\n {placementComponent || emptyView}\r\n \r\n );\r\n};\r\n\r\nexport const AdPreviewSinglePlacementLayout = withUAPLThemedStyles(\r\n SinglePlacementLayout,\r\n getAdPreviewSinglePlacementLayoutStyles,\r\n { componentName: 'AdPreviewSinglePlacementLayout' }\r\n);\r\n","export const getAdPreviewSinglePlacementLayoutStyles = (/* components, { palette = {} } = {} */) => ({\r\n adPreviewLayoutContainer: {\r\n },\r\n});\r\n","import classNames from 'classnames';\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Carousel as BsCarousel } from 'react-bootstrap';\r\n\r\nconst bsProps = {\r\n bsClass: 'carousel',\r\n};\r\n\r\n// custom the Carousel component from react-bootstrap to put the\r\n// controls (left/right arrows) and indicators (dots) within a same\r\n// parent div, to make it easy to align them, like this: \"< .... >\"\r\n//\r\n// !!NOTE!!\r\n// The implementation is highly coupled with the internal implementation\r\n// of react-bootstrap Carousel, it calls the internal methods of BsCarousel\r\n// by using reference\r\nexport const CustomCarousel = (props) => {\r\n const carouselRef = useRef(null);\r\n const {\r\n controls, // ignore this prop\r\n indicators, // ignore this prop\r\n activeIndex,\r\n children,\r\n InjectedControls,\r\n carouselWrapperClassName,\r\n ...rest\r\n } = props;\r\n\r\n const [carouselInstance, setCarouselInstance] = useState(null);\r\n\r\n useEffect(() => {\r\n if (!carouselInstance) {\r\n setCarouselInstance(carouselRef.current);\r\n }\r\n }, [carouselInstance]);\r\n\r\n const [leftArrowControl, rightArrowControl] = useMemo(() => {\r\n if (carouselInstance) {\r\n return carouselInstance.renderControls({ ...props, bsProps });\r\n }\r\n return [undefined, undefined];\r\n }, [carouselInstance, props]);\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n {/* render custom controls and indicators in the same parent div */}\r\n {leftArrowControl}\r\n {carouselInstance ? carouselInstance.renderIndicators(children, activeIndex, bsProps) : null}\r\n {rightArrowControl}\r\n {\r\n InjectedControls ? <> {InjectedControls} : null\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nCustomCarousel.propTypes = {\r\n activeIndex: PropTypes.number.isRequired,\r\n controls: PropTypes.bool,\r\n indicators: PropTypes.bool,\r\n children: PropTypes.node,\r\n InjectedControls: PropTypes.element,\r\n carouselWrapperClassName: PropTypes.string,\r\n};\r\n\r\nCustomCarousel.defaultProps = {\r\n // use the default props from react-bootstrap Carousel, including default icons\r\n ...BsCarousel.defaultProps,\r\n //\r\n controls: false,\r\n indicators: false,\r\n children: null,\r\n InjectedControls: null,\r\n carouselWrapperClassName: null,\r\n};\r\n\r\nCustomCarousel.Caption = BsCarousel.Caption;\r\nCustomCarousel.Item = BsCarousel.Item;\r\n","import _, { map, isEmpty } from 'underscore';\r\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Carousel } from '@bingads-webui-react/primitive-unthemed';\r\nimport { PlayPauseButtons } from '@bingads-webui-campaign-react/play-pause-buttons';\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getAdPlacementComponent } from './get-ad-placement-component';\r\nimport { getCarouselLayoutStyles } from '../styles/layout-components/carousel-layout-styles';\r\nimport { pickSingleImageFromImageList } from '../ad-preview-model/use-ad-preview-model';\r\nimport { CustomCarousel } from './custom-carousel-component';\r\n\r\nconst autoRotateInterval = 3000;\r\n\r\nexport const CarouselLayout = ({\r\n activeIndex,\r\n setActiveIndex,\r\n classes,\r\n customCarouselRootClassName,\r\n customCarouselLayoutStyles,\r\n customPlayPauseButtonsStyles,\r\n enableAutoRotate,\r\n startAutoRotating,\r\n i18n,\r\n onRenderEmptyView,\r\n onRenderPlacement,\r\n onActiveIndexChange,\r\n onRenderHeader,\r\n placementList,\r\n disableDefaultStyles,\r\n useCustomCarousel,\r\n customCarouselWrapperClassName,\r\n}) => {\r\n const [index, setIndex] = useState(0);\r\n\r\n // if external activeIndex is provided, use it, otherwise use the internal state\r\n const curActiveIndex = !_.isUndefined(activeIndex) ? activeIndex : index;\r\n const curSetIndex = setActiveIndex || setIndex;\r\n\r\n const [direction, setDirection] = useState('next');\r\n const [auto, setAuto] = useState(enableAutoRotate && startAutoRotating);\r\n const [startAutoRotateListner, setStartAutoRotateListner] = useState(false);\r\n\r\n const autoRotateListener = useRef(null);\r\n\r\n const emptyView = useMemo(() => {\r\n if (onRenderEmptyView) {\r\n return onRenderEmptyView(placementList);\r\n }\r\n return null;\r\n }, [onRenderEmptyView, placementList]);\r\n\r\n const placementComponentList = useMemo(() => {\r\n const ret = map(placementList, (placement, i) => {\r\n const { placementMeta, images, ...rest } = placement || {};\r\n const { placementType, hasMultiImages } = placementMeta || {};\r\n const AdPlacementComponent = getAdPlacementComponent(placementType);\r\n if (AdPlacementComponent) {\r\n // convert multi-image model to single-image model if needed\r\n let newPlacement = placement;\r\n if (!hasMultiImages && !isEmpty(images)) {\r\n const selectedImage = pickSingleImageFromImageList(images) || {};\r\n newPlacement = { placementMeta, ...selectedImage, ...rest };\r\n }\r\n return [onRenderPlacement(newPlacement, AdPlacementComponent, i), placement];\r\n }\r\n return [null, placement];\r\n });\r\n return ret;\r\n }, [onRenderPlacement, placementList]);\r\n\r\n const onRenderCarouselHeader = useCallback(() => {\r\n if (onRenderHeader) {\r\n const placement = placementList ? placementList[curActiveIndex] : null;\r\n const { placementMeta, images, ...rest } = placement || {};\r\n const { hasMultiImages } = placementMeta || {};\r\n let newPlacement = placement;\r\n if (!hasMultiImages && !isEmpty(images)) {\r\n const selectedImage = pickSingleImageFromImageList(images) || {};\r\n newPlacement = { placementMeta, ...selectedImage, ...rest };\r\n }\r\n return onRenderHeader(newPlacement, curActiveIndex);\r\n }\r\n return null;\r\n }, [curActiveIndex, onRenderHeader, placementList]);\r\n\r\n const clearAutoRotateListener = useCallback(() => {\r\n if (autoRotateListener.current) {\r\n clearTimeout(autoRotateListener.current);\r\n autoRotateListener.current = null;\r\n }\r\n }, []);\r\n\r\n const autoRotate = useCallback((currentIndex) => {\r\n if (!auto || isEmpty(placementList)) {\r\n // eslint-disable-next-line no-useless-return\r\n return;\r\n }\r\n\r\n setStartAutoRotateListner(true);\r\n\r\n const previewCount = placementList.length;\r\n let nextIndex = currentIndex + 1;\r\n if (nextIndex >= previewCount) {\r\n nextIndex = 0;\r\n }\r\n\r\n autoRotateListener.current = setTimeout(() => {\r\n curSetIndex(nextIndex);\r\n setDirection('next');\r\n autoRotate(nextIndex);\r\n }, (autoRotateInterval));\r\n }, [auto, curSetIndex, placementList]);\r\n\r\n const start = useCallback(() => {\r\n setDirection('next');\r\n setAuto(true);\r\n }, []);\r\n\r\n const stop = useCallback(() => {\r\n if (auto) {\r\n setAuto(false);\r\n clearAutoRotateListener();\r\n setStartAutoRotateListner(false);\r\n }\r\n }, [clearAutoRotateListener, auto]);\r\n\r\n const onSelect = useCallback((selectedIndex, e) => {\r\n stop();\r\n curSetIndex(selectedIndex || 0);\r\n setDirection(e.direction);\r\n }, [curSetIndex, stop]);\r\n\r\n // auto rotate at initialisation when auto rotate is enabled\r\n useEffect(() => {\r\n if (auto && !startAutoRotateListner) {\r\n autoRotate(curActiveIndex);\r\n }\r\n }, [autoRotate, auto, startAutoRotateListner, curActiveIndex]);\r\n\r\n useEffect(() => {\r\n if (onActiveIndexChange) {\r\n onActiveIndexChange(curActiveIndex);\r\n }\r\n }, [curActiveIndex, onActiveIndexChange]);\r\n\r\n useEffect(() => () => {\r\n clearAutoRotateListener();\r\n }, [clearAutoRotateListener]);\r\n\r\n useEffect(() => {\r\n if (placementList && placementList.length > 0 && curActiveIndex >= placementList.length) {\r\n setActiveIndex(0);\r\n }\r\n }, [curActiveIndex, placementList, setActiveIndex]);\r\n\r\n const CarouselComponent = useCustomCarousel ? CustomCarousel : Carousel;\r\n const moreCarouselProps = useMemo(\r\n () => (useCustomCarousel ? {\r\n carouselWrapperClassName: classnames(customCarouselWrapperClassName, classes.customCarouselWrapper),\r\n } : {}),\r\n [classes.customCarouselWrapper, customCarouselWrapperClassName, useCustomCarousel]\r\n );\r\n\r\n return !isEmpty(placementComponentList) ? (\r\n
\r\n
\r\n {onRenderCarouselHeader()}\r\n
\r\n : null}\r\n nextLabel={i18n.getString(_TL_('Next ad preview'))}\r\n prevLabel={i18n.getString(_TL_('Previous ad preview'))}\r\n className={classnames(!disableDefaultStyles && classes.adPreviewCarousel, customCarouselLayoutStyles || classes.baseCarouselLayoutStyles, 'ad-placement-preview')}\r\n {...moreCarouselProps}\r\n >\r\n {\r\n placementComponentList.map(([placementComponent, placement], idx) => {\r\n const { placementMeta, effectiveImageUrl } = placement || {};\r\n return (\r\n // eslint-disable-next-line react/no-array-index-key\r\n \r\n {placementComponent}\r\n \r\n );\r\n })\r\n }\r\n \r\n
\r\n ) : emptyView;\r\n};\r\n\r\nCarouselLayout.propTypes = {\r\n activeIndex: PropTypes.number,\r\n setActiveIndex: PropTypes.func,\r\n classes: PropTypes.shape({\r\n carouselLayoutContainer: PropTypes.string.isRequired,\r\n adPreviewCarousel: PropTypes.string.isRequired,\r\n baseCarouselLayoutStyles: PropTypes.string.isRequired,\r\n playPauseButtons: PropTypes.string.isRequired,\r\n }),\r\n customCarouselRootClassName: PropTypes.string,\r\n customCarouselLayoutStyles: PropTypes.string,\r\n customPlayPauseButtonsStyles: PropTypes.string,\r\n enableAutoRotate: PropTypes.bool,\r\n startAutoRotating: PropTypes.bool,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n onRenderEmptyView: PropTypes.func,\r\n onRenderHeader: PropTypes.func,\r\n onRenderPlacement: PropTypes.func.isRequired,\r\n placementList: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n onActiveIndexChange: PropTypes.func,\r\n disableDefaultStyles: PropTypes.bool,\r\n useCustomCarousel: PropTypes.bool,\r\n customCarouselWrapperClassName: PropTypes.string,\r\n};\r\n\r\nCarouselLayout.defaultProps = {\r\n activeIndex: undefined,\r\n setActiveIndex: undefined,\r\n customCarouselRootClassName: null,\r\n customCarouselLayoutStyles: null,\r\n customPlayPauseButtonsStyles: null,\r\n enableAutoRotate: false,\r\n startAutoRotating: true,\r\n onRenderEmptyView: null,\r\n onActiveIndexChange: null,\r\n onRenderHeader: null,\r\n disableDefaultStyles: false,\r\n useCustomCarousel: false,\r\n customCarouselWrapperClassName: null,\r\n classes: {},\r\n};\r\n\r\nexport const AdPreviewCarouselLayout = withUAPLThemedStyles(CarouselLayout, getCarouselLayoutStyles, { componentName: 'AdPreviewCarouselLayout' });\r\n\r\nexport const UnstyledAdPreviewCarouselLayout = CarouselLayout;\r\n\r\n// when trying to reuse the Carousel instance with different children count, the carousel behaves\r\n// abnormal, seems its internal states are messed up, fix it by creating a new component when the\r\n// resetOn prop changes\r\nexport const AdPreviewCarouselLayoutEx = (props) => {\r\n const { resetOn } = props;\r\n const LayoutComponent = useCallback(\r\n props2 => ,\r\n [resetOn]\r\n );\r\n return ;\r\n};\r\n\r\n// todo: in addition to above issue, another issue is that the left and right buttons and\r\n// the indicator dots are not in the same parent element, which make it hard to align them,\r\n// need to refactor the Carousel component to fix it\r\n","export const getCarouselLayoutStyles = (components, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' } = {}) => ({\r\n carouselLayoutContainer: {\r\n position: 'relative',\r\n width: '100%',\r\n },\r\n\r\n adPreviewCarousel: {\r\n position: 'relative',\r\n\r\n '& .carousel-inner': {\r\n paddingBottom: 64,\r\n\r\n // '& > .item.active': {\r\n // paddingLeft: 24,\r\n // paddingRight: 24,\r\n // },\r\n },\r\n '& ol.carousel-indicators': {\r\n position: 'absolute',\r\n width: 'auto',\r\n\r\n '& li': {\r\n background: 'none',\r\n border: '1px solid #605E5C',\r\n borderRadius: 10,\r\n margin: '0 10px 0 0',\r\n height: 10,\r\n width: 10,\r\n },\r\n\r\n '& li.active': {\r\n background: palette.themePrimary,\r\n border: `1px solid ${palette.themePrimary}`,\r\n },\r\n },\r\n\r\n '& .carousel-controls': {\r\n display: 'none',\r\n },\r\n\r\n '& .carousel-control': {\r\n color: palette.themePrimary,\r\n position: 'absolute',\r\n left: 'auto',\r\n top: 'auto',\r\n right: 0,\r\n bottom: 0,\r\n height: 32,\r\n width: 20,\r\n margin: '20px 24px',\r\n textShadow: 'none',\r\n background: 'white',\r\n\r\n '&:focus': {\r\n outline: `1px solid ${palette.neutralSecondary}`,\r\n },\r\n\r\n '&.left': {\r\n position: 'absolute',\r\n },\r\n\r\n '&.right': {\r\n position: 'absolute',\r\n },\r\n\r\n '& .glyphicon-chevron-left, & .glyphicon-chevron-right': {\r\n fontFamily: iconFontFamily,\r\n position: 'relative',\r\n top: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n left: 'auto',\r\n margin: 0,\r\n fontSize: 16,\r\n lineHeight: 1,\r\n verticalAlign: 0,\r\n },\r\n },\r\n },\r\n baseCarouselLayoutStyles: {\r\n '& ol.carousel-indicators': {\r\n bottom: 0,\r\n left: 20,\r\n margin: '20px 24px',\r\n },\r\n '& .carousel-control.left': {\r\n left: -5,\r\n bottom: -7,\r\n },\r\n '& .carousel-control.right': {\r\n left: 105,\r\n bottom: -7,\r\n },\r\n },\r\n playPauseButtons: {\r\n position: 'absolute',\r\n left: 156,\r\n bottom: 13.5,\r\n display: 'initial !important',\r\n\r\n '& span': {\r\n color: palette.themePrimary,\r\n },\r\n },\r\n\r\n customCarouselWrapper: {\r\n '& .custom-carousel-controls-and-indicators': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n bottom: 3,\r\n margin: [10, 15],\r\n\r\n '& ol.carousel-indicators': {\r\n position: 'relative !important',\r\n top: 'unset !important',\r\n left: 'unset !important',\r\n right: 'unset !important',\r\n bottom: '2px !important',\r\n margin: '0px 0px 0px 10px !important',\r\n padding: 'unset !important',\r\n width: 'auto',\r\n\r\n '& li': {\r\n background: 'none',\r\n border: '1px solid #605E5C',\r\n borderRadius: 10,\r\n margin: '0 10px 0 0',\r\n height: 10,\r\n width: 10,\r\n },\r\n '& li.active': {\r\n background: palette.themePrimary,\r\n border: `1px solid ${palette.themePrimary}`,\r\n },\r\n },\r\n\r\n '& .carousel-control': {\r\n position: 'relative !important',\r\n margin: '0px !important',\r\n background: 'white',\r\n top: 'unset !important',\r\n left: 'unset !important',\r\n right: 'unset !important',\r\n bottom: 'unset !important',\r\n color: palette.themePrimary,\r\n\r\n height: 32,\r\n width: 20,\r\n textShadow: 'none',\r\n\r\n '&:focus': {\r\n outline: `1px solid ${palette.neutralSecondary}`,\r\n },\r\n\r\n '& .glyphicon-chevron-left, & .glyphicon-chevron-right': {\r\n fontFamily: iconFontFamily,\r\n position: 'relative',\r\n top: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n left: 'auto',\r\n margin: 0,\r\n fontSize: 16,\r\n lineHeight: 1,\r\n verticalAlign: 0,\r\n },\r\n },\r\n\r\n '& $playPauseButtons': {\r\n position: 'relative !important',\r\n display: 'initial !important',\r\n left: 'unset !important',\r\n top: 'unset !important',\r\n bottom: '1px !important',\r\n },\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getStructuredSnippetExtensionStyles } from '../styles';\r\n\r\nconst StructuredSnippetExtension = ({\r\n classes,\r\n extensionData,\r\n}) => (\r\n
\r\n {extensionData.map(({ Category, Texts }) => (\r\n
\r\n {Category && {`${Category}: `}}\r\n {Texts && {Texts.join(', ')}}\r\n
\r\n ))}\r\n
\r\n);\r\n\r\nStructuredSnippetExtension.propTypes = {\r\n classes: PropTypes.shape({\r\n structuredSnippetExtensionContainer: PropTypes.string,\r\n }),\r\n extensionData: PropTypes.arrayOf(PropTypes.shape({\r\n Category: PropTypes.string,\r\n Texts: PropTypes.string,\r\n })),\r\n};\r\n\r\nStructuredSnippetExtension.defaultProps = {\r\n classes: {},\r\n extensionData: [],\r\n};\r\n\r\nexport const AdPreviewStructuredSnippetExtension = withUAPLThemedStyles(\r\n StructuredSnippetExtension,\r\n getStructuredSnippetExtensionStyles, { componentName: 'AdPreviewStructuredSnippetExtension' }\r\n);\r\n","export const getCalloutExtensionStyles = () => ({\r\n calloutExtensionContainer: {\r\n color: '#767676',\r\n fontFamily: 'Roboto',\r\n lineHeight: '22px',\r\n },\r\n});\r\n\r\nexport const getPriceExtensionStyles = () => ({\r\n priceExtensionContainer: {\r\n color: '#4007A2',\r\n fontFamily: 'Roboto',\r\n lineHeight: '22px',\r\n '& a': {\r\n color: '#4007A2',\r\n },\r\n '& div': {\r\n display: 'inline-block',\r\n },\r\n },\r\n});\r\n\r\nexport const getPromotionExtensionStyles = () => ({\r\n promotionExtensionContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .promotion-info': {\r\n '& span': {\r\n color: '#767676',\r\n fontFamily: 'Roboto',\r\n lineHeight: '22px',\r\n },\r\n '& .discount': {\r\n color: '#1A0DAB',\r\n },\r\n },\r\n '& .promotion-rate': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '3px',\r\n '& span': {\r\n color: '#767676',\r\n fontFamily: 'Roboto',\r\n fontWeight: '700',\r\n lineHeight: '22px',\r\n },\r\n '& .rating-icons': {\r\n marginTop: '-2px',\r\n display: 'flex',\r\n },\r\n '& .reviews': {\r\n color: '#767676',\r\n fontWeight: '400',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getSitelinkExtensionStyles = () => ({\r\n sitelinkExtensionContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .sitelink-row': {\r\n display: 'flex',\r\n gap: '48px',\r\n marginTop: '12px',\r\n '& .sitelink-tile': {\r\n width: '270px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '3px',\r\n '& .title': {\r\n color: '#4007A2',\r\n fontFamily: 'Roboto',\r\n fontSize: '20px',\r\n lineHeight: '24px',\r\n },\r\n '& .text': {\r\n color: '#666',\r\n fontFamily: 'Roboto',\r\n lineHeight: '22px',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getStructuredSnippetExtensionStyles = () => ({\r\n structuredSnippetExtensionContainer: {\r\n '& .category': {\r\n color: '#767676',\r\n fontFamily: 'Roboto',\r\n fontWeight: '700',\r\n lineHeight: '22px',\r\n },\r\n '& .texts': {\r\n color: '#767676',\r\n fontFamily: 'Roboto',\r\n lineHeight: '22px',\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getCalloutExtensionStyles } from '../styles';\r\n\r\nconst CalloutExtension = ({\r\n classes,\r\n extensionData,\r\n}) => (\r\n
\r\n {extensionData.map(({ Text }) => Text).join(' · ')}\r\n
\r\n);\r\n\r\nCalloutExtension.propTypes = {\r\n classes: PropTypes.shape({\r\n calloutExtensionContainer: PropTypes.string,\r\n }),\r\n extensionData: PropTypes.arrayOf(PropTypes.shape({\r\n Text: PropTypes.string,\r\n })),\r\n};\r\n\r\nCalloutExtension.defaultProps = {\r\n classes: {},\r\n extensionData: [],\r\n};\r\n\r\nexport const AdPreviewCalloutExtension = withUAPLThemedStyles(\r\n CalloutExtension,\r\n getCalloutExtensionStyles, { componentName: 'AdPreviewCalloutExtension' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getPriceExtensionStyles } from '../styles';\r\n\r\nconst PriceExtension = ({\r\n classes,\r\n extensionData,\r\n}) => (\r\n
\r\n {\r\n extensionData.map(({\r\n Header, Description, Currency, Price, FinalUrls,\r\n }, index) => (\r\n \r\n {Header}\r\n {` - ${Description} `}\r\n
{`${Currency + Price}`}
\r\n {index < extensionData.length - 1 && {' · '}}\r\n
\r\n ))\r\n }\r\n
\r\n);\r\n\r\nPriceExtension.propTypes = {\r\n classes: PropTypes.shape({\r\n priceExtensionContainer: PropTypes.string,\r\n }),\r\n extensionData: PropTypes.arrayOf(PropTypes.shape({\r\n Header: PropTypes.string,\r\n Description: PropTypes.string,\r\n Currency: PropTypes.string,\r\n Price: PropTypes.string,\r\n FinalUrls: PropTypes.arrayOf(PropTypes.string),\r\n })),\r\n};\r\n\r\nPriceExtension.defaultProps = {\r\n classes: {},\r\n extensionData: [],\r\n};\r\n\r\nexport const AdPreviewPriceExtension = withUAPLThemedStyles(\r\n PriceExtension,\r\n getPriceExtensionStyles, { componentName: 'AdPreviewPriceExtension' }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getPromotionExtensionStyles } from '../styles';\r\nimport star from './media/star.svg';\r\n\r\nconst PromotionExtension = ({\r\n classes,\r\n extensionData,\r\n}) => (\r\n extensionData.map(({\r\n Occasion, PromotionType, PromotionItem, PromotionDetail, DateRange, hasOccasion, hasPromotionDetail, hasDateRange,\r\n }) => (\r\n
\r\n
\r\n {hasOccasion && {`${Occasion}: `}}\r\n {PromotionType}\r\n {` · ${PromotionItem}`}\r\n {hasPromotionDetail && {` · ${PromotionDetail}`}}\r\n {hasDateRange && {` · ${DateRange}`}}\r\n
\r\n
\r\n 5/5\r\n
\r\n {[...Array(5)].map(() => (\r\n \"star\"\r\n ))}\r\n
\r\n (1,000 reviews)\r\n
\r\n
\r\n ))\r\n);\r\n\r\nPromotionExtension.propTypes = {\r\n classes: PropTypes.shape({\r\n promotionExtensionContainer: PropTypes.string,\r\n }),\r\n extensionData: PropTypes.arrayOf(PropTypes.shape({\r\n Occasion: PropTypes.string,\r\n PromotionType: PropTypes.string,\r\n PromotionItem: PropTypes.string,\r\n PromotionDetail: PropTypes.string,\r\n DateRange: PropTypes.string,\r\n hasOccasion: PropTypes.bool,\r\n hasPromotionDetail: PropTypes.bool,\r\n hasDateRange: PropTypes.bool,\r\n })),\r\n};\r\n\r\nPromotionExtension.defaultProps = {\r\n classes: {},\r\n extensionData: [],\r\n};\r\n\r\nexport const AdPreviewPromotionExtension = withUAPLThemedStyles(\r\n PromotionExtension,\r\n getPromotionExtensionStyles, { componentName: 'AdPreviewPromotionExtension' }\r\n);\r\n","import React, { useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\n// import classnames from 'classnames';\r\n\r\nimport { withUAPLThemedStyles } from '../with-themed-styles';\r\nimport { getSitelinkExtensionStyles } from '../styles';\r\n\r\nconst SitelinkExtension = ({\r\n classes,\r\n extensionData,\r\n}) => {\r\n const onRenderTile = useCallback(({\r\n DisplayText, Description1, Description2, DestinationUrl, FinalUrls,\r\n }) => {\r\n let distUrl;\r\n if (DestinationUrl) {\r\n distUrl = DestinationUrl;\r\n } else if (FinalUrls && FinalUrls.length > 0) {\r\n [distUrl] = FinalUrls;\r\n } else {\r\n distUrl = '';\r\n }\r\n if (distUrl && distUrl.indexOf('http') !== 0) {\r\n distUrl = `http://${distUrl}`;\r\n }\r\n\r\n return (\r\n
\r\n {DisplayText}\r\n {Description1 &&
{Description1}
}\r\n {Description2 &&
{Description2}
}\r\n
\r\n );\r\n }, []);\r\n\r\n const tiles = [];\r\n for (let i = 0; i < extensionData.length; i += 2) {\r\n const current = extensionData[i];\r\n const next = i + 1 < extensionData.length ? extensionData[i + 1] : null;\r\n tiles.push((\r\n
\r\n {onRenderTile(current)}\r\n {next && onRenderTile(next)}\r\n
\r\n ));\r\n }\r\n\r\n return (\r\n
\r\n {tiles}\r\n
\r\n );\r\n};\r\n\r\nSitelinkExtension.propTypes = {\r\n classes: PropTypes.shape({\r\n sitelinkExtensionContainer: PropTypes.string,\r\n }),\r\n extensionData: PropTypes.arrayOf(PropTypes.shape({\r\n DisplayText: PropTypes.string,\r\n Description1: PropTypes.string,\r\n Description2: PropTypes.string,\r\n DestinationUrl: PropTypes.string,\r\n FinalUrls: PropTypes.arrayOf(PropTypes.string),\r\n })),\r\n};\r\n\r\nSitelinkExtension.defaultProps = {\r\n classes: {},\r\n extensionData: [],\r\n};\r\n\r\nexport const AdPreviewSitelinkExtension = withUAPLThemedStyles(\r\n SitelinkExtension,\r\n getSitelinkExtensionStyles, { componentName: 'AdPreviewSitelinkExtension' }\r\n);\r\n","export const UAPImageExpansionType = {\r\n None: 'None',\r\n WhitePadding: 'WhitePadding',\r\n // Blur: 'Blur',\r\n Outpainting: 'Outpainting',\r\n SingleColorPadding: 'SingleColorPadding',\r\n};\r\n\r\nexport const UAPCroppingType = {\r\n ManualCrop: 'ManualCrop', // 1\r\n CenterCrop: 'CenterCrop', // 2\r\n SmartCrop: 'SmartCrop', // 3\r\n Unknown: 'Unknown', // 4\r\n};\r\n","import _ from 'underscore';\r\nimport { UAPImageExpansionType, UAPCroppingType } from './constants';\r\n\r\nexport const getExpandedImageUrl = (imageExpansionType, src, paddingColor, expandedImageWidth, expandedImageHeight) => {\r\n if (!imageExpansionType || imageExpansionType === UAPImageExpansionType.None) {\r\n // no expanded image\r\n return null;\r\n }\r\n\r\n const hasQuery = !_.isEmpty(src) && src.indexOf('?') > 0;\r\n const srcWithQuery = hasQuery ? src : `${src}?`;\r\n let queryParams = '';\r\n if (imageExpansionType === UAPImageExpansionType.Outpainting) {\r\n queryParams = hasQuery ? '&ustim=1' : 'ustim=1';\r\n } else if (imageExpansionType === UAPImageExpansionType.WhitePadding\r\n || imageExpansionType === UAPImageExpansionType.SingleColorPadding\r\n ) {\r\n queryParams = `${hasQuery ? '&' : ''}w=${expandedImageWidth}&h=${expandedImageHeight}`;\r\n if (paddingColor) {\r\n const idx = paddingColor.indexOf('#');\r\n queryParams += `&pcl=${paddingColor.slice(idx + 1)}`;\r\n }\r\n }\r\n\r\n return `${srcWithQuery}${queryParams}`;\r\n};\r\n\r\nexport const setROIInfo = (roiInfo, imageUrl) => {\r\n if (!roiInfo || !imageUrl) {\r\n return {};\r\n }\r\n try {\r\n const ROIInfoObj = JSON.parse(roiInfo);\r\n const imageExpansionType = ROIInfoObj.ImageExpansionType;\r\n const expandedImageWidth = imageExpansionType === UAPImageExpansionType.Outpainting ? ROIInfoObj.ThumbnailWidth : ROIInfoObj.PaddingImageWidth;\r\n const expandedImageHeight = imageExpansionType === UAPImageExpansionType.Outpainting ? ROIInfoObj.ThumbnailHeight : ROIInfoObj.PaddingImageHeight;\r\n const paddingColor = ROIInfoObj.PaddingColor;\r\n const expandedImageCropSettings = ROIInfoObj.ImageCropSetting ? _.map(ROIInfoObj.ImageCropSetting, ({ aspectRatio, cropSetting: cs }) => ({\r\n AspectRatio: aspectRatio,\r\n CropSetting: {\r\n SourceHeight: cs.sourceHeight, SourceWidth: cs.sourceWidth, SourceX: cs.sourceX, SourceY: cs.sourceY,\r\n },\r\n })) : null;\r\n const croppingType = imageExpansionType === UAPImageExpansionType.Outpainting ? UAPCroppingType.CenterCrop : UAPCroppingType.SmartCrop;\r\n const originalImageCropSettings = ROIInfoObj.OriginalImageCropSetting ? _.map(ROIInfoObj.OriginalImageCropSetting, ({ aspectRatio, cropSetting: cs }) => ({\r\n AspectRatio: aspectRatio,\r\n CropSetting: {\r\n SourceHeight: cs.sourceHeight, SourceWidth: cs.sourceWidth, SourceX: cs.sourceX, SourceY: cs.sourceY, CroppingType: croppingType,\r\n },\r\n })) : null;\r\n const expandedImageUrl = getExpandedImageUrl(imageExpansionType, imageUrl, paddingColor, expandedImageWidth, expandedImageHeight);\r\n\r\n return {\r\n expandedImageWidth,\r\n expandedImageHeight,\r\n expandedImageCropSettings,\r\n originalImageCropSettings,\r\n expandedImageUrl,\r\n imageExpansionType,\r\n paddingColor,\r\n };\r\n } catch (e) {\r\n return {};\r\n }\r\n};\r\n","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ItemPreviewI18nKeys, OccasionI18nKeys, data, getPromotionDetailTypeForModel, getPromotionTypeForModel, i18n) {var promotionType = getPromotionTypeForModel(data);\nvar promotionTypeI18nKey;\nvar promotionTypeI18nData;\nswitch(promotionType) {\n case 'UptoMonetaryDiscount':\n promotionTypeI18nKey = ItemPreviewI18nKeys['Up to {{monetaryDiscount}} off'];\n promotionTypeI18nData = { monetaryDiscount: i18n.formatCurrency(data.MoneyAmountOff, data.CurrencyCode) };\n break;\n case 'MonetaryDiscount':\n promotionTypeI18nKey = ItemPreviewI18nKeys['{{monetaryDiscount}} off'];\n promotionTypeI18nData = { monetaryDiscount: i18n.formatCurrency(data.MoneyAmountOff, data.CurrencyCode) };\n break;\n case 'UptoPercentDiscount':\n promotionTypeI18nKey = ItemPreviewI18nKeys['Up to {{percentDiscount}} off'];\n promotionTypeI18nData = { percentDiscount: i18n.formatPercent(data.PercentOff / 100) };\n break;\n case 'PercentDiscount':\n promotionTypeI18nKey = ItemPreviewI18nKeys['{{percentDiscount}} off'];\n promotionTypeI18nData = { percentDiscount: i18n.formatPercent(data.PercentOff / 100) };\n break;\n}\nvar promotionTypeFormatted = i18n.getString(promotionTypeI18nKey, promotionTypeI18nData);\n\nvar promotionDetail = getPromotionDetailTypeForModel(data);\nvar promotionDetailI18nKey = '';\nvar promotionDetailI18nData;\nvar promotionDetailFormatted = '';\nvar hasPromotionDetail = promotionDetail !== 'None';\nif (hasPromotionDetail) {\n switch (promotionDetail) {\n case 'OnOrdersOver':\n promotionDetailI18nKey = ItemPreviewI18nKeys['On orders over {{amount}}'];\n promotionDetailI18nData = { amount: i18n.formatCurrency(data.OrdersOverAmount, data.CurrencyCode) };\n break;\n case 'PromotionCode':\n promotionDetailI18nKey = ItemPreviewI18nKeys['Code {{promotionCode}}'];\n promotionDetailI18nData = { promotionCode: data.PromotionCode };\n break;\n }\n promotionDetailFormatted = i18n.getString(promotionDetailI18nKey, promotionDetailI18nData);\n}\n\nvar dateRangeI18nKey = '';\nvar dateRangeI18nData;\nvar startDateFormatted = '';\nvar endDateFormatted = '';\nvar DATE_FORMAT_MM_DD = 'MM/dd';\nfunction formatISODateString(isoDatetimeString) {\n const dateToUse = i18n.parseDate(\n isoDatetimeString.substring(0, 10),\n {\n raw: 'yyyy-MM-dd',\n timeZone: null,\n }\n );\n\n return i18n.formatDate(dateToUse, { skeleton: \"MMMd\", timeZone: null });\n}\n\nvar dateRangeFormatted = '';\nvar hasDateRange = data.PromotionStartDate || data.PromotionEndDate;\nif (hasDateRange) {\n if (data.PromotionStartDate) {\n startDateFormatted = formatISODateString(data.PromotionStartDate);\n }\n if (data.PromotionEndDate) {\n endDateFormatted = formatISODateString(data.PromotionEndDate);\n }\n if (startDateFormatted && endDateFormatted) {\n if (startDateFormatted !== endDateFormatted) {\n dateRangeI18nKey = ItemPreviewI18nKeys['Valid {{startDate}} - {{endDate}}'];\n dateRangeI18nData = { startDate: startDateFormatted, endDate: endDateFormatted };\n } else {\n dateRangeI18nKey = ItemPreviewI18nKeys['Valid {{date}}'];\n dateRangeI18nData = { date: startDateFormatted };\n }\n } else if (startDateFormatted) {\n dateRangeI18nKey = ItemPreviewI18nKeys['Starts {{startDate}}'];\n dateRangeI18nData = { startDate: startDateFormatted };\n } else if (endDateFormatted) {\n dateRangeI18nKey = ItemPreviewI18nKeys['Ends {{endDate}}'];\n dateRangeI18nData = { endDate: endDateFormatted };\n }\n dateRangeFormatted = i18n.getString(dateRangeI18nKey, dateRangeI18nData);\n}\n\nvar hasOccasion = data.Occasion !== 'None';\nvar hasSecondLine = hasPromotionDetail || hasDateRange;\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"itemTemplate-text\\\"\\u003E\";\nif (hasOccasion) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.getString(OccasionI18nKeys[data.Occasion])) ? \"\" : pug_interp)) + \":\\n\";\n}\npug_html = pug_html + (pug.escape(null == (pug_interp = promotionTypeFormatted) ? \"\" : pug_interp)) + \" \" + (pug.escape(null == (pug_interp = data.PromotionItem) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif (hasSecondLine) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"itemTemplate-text\\\"\\u003E\";\nif (hasPromotionDetail) {\npug_html = pug_html + (pug.escape(null == (pug_interp = promotionDetailFormatted) ? \"\" : pug_interp));\nif (hasDateRange) {\npug_html = pug_html + \"\\n·\\n\";\n}\n}\nif (hasDateRange) {\npug_html = pug_html + (pug.escape(null == (pug_interp = dateRangeFormatted) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"ItemPreviewI18nKeys\" in locals_for_with?locals_for_with.ItemPreviewI18nKeys:typeof ItemPreviewI18nKeys!==\"undefined\"?ItemPreviewI18nKeys:undefined,\"OccasionI18nKeys\" in locals_for_with?locals_for_with.OccasionI18nKeys:typeof OccasionI18nKeys!==\"undefined\"?OccasionI18nKeys:undefined,\"data\" in locals_for_with?locals_for_with.data:typeof data!==\"undefined\"?data:undefined,\"getPromotionDetailTypeForModel\" in locals_for_with?locals_for_with.getPromotionDetailTypeForModel:typeof getPromotionDetailTypeForModel!==\"undefined\"?getPromotionDetailTypeForModel:undefined,\"getPromotionTypeForModel\" in locals_for_with?locals_for_with.getPromotionTypeForModel:typeof getPromotionTypeForModel!==\"undefined\"?getPromotionTypeForModel:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["legacySchedulingPanelStyles","marginLeft","marginRight","CustomParametersRealtimeView","_CustomParametersView","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_this","options","length","undefined","_superPropGet","this","viewModel","parameterArray","subscribe","val","newVal","_","item","Key","Value","trigger","isValid","customParameters","CustomParametersView","CustomParameters","_ref","container","id","onChange","legacyI18n","permissions","forceUseIncreasedCount","onCustomParametersUpdated","useCallback","_ref2","newCustomParameters","useEffect","view","i18n","on","render","$el","appendTo","remove","_jsx","ref","defaultProps","text","ErrorsContext","React","propertyIs","propertyName","error","property","propertySuffixIs","propertySuffix","endsWith","or","f1","f2","arg0","and","uniqueErrorTransform","err","isString","concat","message","code","errorMessage","campaignApiError","isHtmlMessage","DangerousHtmlMessage","toString","isSchedulingError","include","unmappedError","ErrorItem","errors","errorFilter","children","focusElementRef","useRef","filteredErrors","useMemo","chain","uniq","filter","map","isHandled","isEmpty","current","scrollIntoView","behavior","_jsxs","style","position","display","ErrorMessages","messages","Errors","Consumer","FinalUrlSuffix","onFinalUrlSuffixUpdated","newFinalUrlSuffix","finalUrlSuffix","FinalUrlSuffixView","editMode","showPlaceholder","propTypes","PropTypes","isRequired","InputWithExtra","withError","props","className","containerClass","InputLite","_objectSpread","extra","LanguageSelect","withProps","enabledLanguageList","globalizationModelSetup","culture","getLocale","LANGUAGES","extend","LanguageSelectControl","subscribeToDayTimeViewModel","callback","dayTimeViewModel","startHour","startMinute","endHour","endMinute","subscribeToSchedulingViewLiveUpdates","ko_model","startDate","endDate","flattenedDayTimeRanges","dayTimeRanges","changes","status","validateDayTimeRange","useSearcherTimeZone","Scheduling","LegacySchedulingView","hideStartAndEndDate","validate","toObject","labelClass","controlClass","model","buildSchedulingView","TrackingTemplate","placeholder","getString","_TL_","inputExtraClass","pmaxSupportedExtentions","appSupportedExtensions","hotelSupportedExtentions","campaignType2SupportedExtensions","PerformanceMax","Hotel","App","campaignTypeExtensionTypeFilter","campaignType","supportedExtensions","result","campaignTypeSupportedExtensions","extensionType","contains","toLowerCase","constant","extensionCampaignTypeCheck","allExtensions","DomesticSimplifiedChineseSupportedExtentions","mapODataErrorsForProperty","logger","errorCodeMap","response","getODataErrors","Code","Property","mapErrorCodeForProperty","mapODataErrors","errorCodePropertyMap","compose","propertySpecificMap","mapErrorCode","mapErrorProperty","withAsyncOdataErrorForProperty","func","promise","Promise","catch","stringifyUnexpectedError","Error","JSON","stringify","OccasionI18nKeys","None","BackToSchool","BlackFriday","BoxingDay","Carnival","ChineseNewYear","Christmas","CyberMonday","Diwali","Easter","EidAlAdha","EidAlFitr","EndOfSeason","Epiphany","FallSale","FathersDay","Halloween","Hanukkah","Holi","IndependenceDay","LaborDay","MothersDay","NationalDay","Navratri","NewYears","ParentsDay","Passover","Ramadan","RoshHashanah","SinglesDay","Songkran","SpringSale","StNicholasDay","SummerSale","ValentinesDay","WinterSale","WomensDay","YearEndGift","OccasionSelect","selected","_useState","useState","_useState2","_slicedToArray","selectedOccasion","setSelectedOccasion","Select","event","occasion","target","_ref3","Alert","level","icon","dismissible","CURRENCY_STRINGS","ALL","AED","ARS","AUD","BAM","BRL","CAD","CHF","CLP","CNY","COP","DKK","EUR","GBP","HKD","IDR","ILS","INR","ISK","JPY","MKD","MXN","MYR","NGN","NZD","PEN","PHP","PLN","RSD","SAR","SEK","SGD","THB","TRY","TWD","USD","VEF","VND","ZAR","CurrencySelect","currencies","reduce","memo","currency","outMemo","pairs","pickCurrencies","CURRENCIES","selectedCurrency","setSelectedCurrency","language","promotionTypesMap","discountModifierMap","getPromotionTypeForModel","MoneyAmountOff","DiscountModifier","PercentOff","isMonetary","promotionType","isUpTo","cleanPromotionTypeData","promotionTypes","_defineProperty","PromotionTypeSelect","selectedPromotionType","setSelectedPromotionType","SubSchema","cloneDeep","properties","PromotionAdExtension","Schema","schema","required","PromotionType","_ref4","promotionTypeSelectClassName","inputContainerClass","inputClass","_useState3","_useState4","setPromotionType","_useState5","_useState6","data","setData","_useState7","_useState8","setSchema","classnames","newPromotionType","currentData","mergedData","ValidationGroup","validationProps","onValidate","_ref5","newData","field","CurrencyCode","FIELDS_COLUMN_WIDTH_PX","SCHEDULING_EXTRA_COLUMN_WIDTH_PX","genericFieldLabel","justifyContent","textAlign","alignItems","marginBottom","genericEditorField","promotionDetailTypesMap","getPromotionDetailTypeForModel","PromotionCode","OrdersOverAmount","isPromotionCode","promotionDetailType","isOnOrdersOver","cleanPromotionDetailTypeData","promotionDetailTypes","PromotionDetailSelect","selectedPromotionDetailType","setSelectedPromotionDetailType","PromotionDetail","promotionDetailTypeSelectClassName","setPromotionDetailType","newPromotionDetailType","dateMethodOptions","raw","StartAndEndDate","updateValidation","startDateClassName","endDateClassName","startAndEndDateSeparator","PromotionStartDate","setStartDate","PromotionEndDate","setEndDate","isPromotionStartDateInvalid","setIsPromotionStartDateInvalid","isPromotionEndDateInvalid","setIsPromotionEndDateInvalid","startDateObject","parseDate","substr","endDateObject","push","errorMessages","onStartTimeChange","onEndTimeChange","onStartTimeError","onEndTimeError","usedStartTime","usedEndTime","KendoStringDatePicker","onError","prevProps","nextProps","StartAndEndDateWithValidation","withCustomValidation","isCurrencyRequired","withValidation","OccasionSelectPure","GenericAdapter","LanguageSelectPure","CurrencySelectPure","whitelistedSchemaPropertyKeys","cleanModel","rawModel","stage1","_toConsumableArray","UrlCustomParameters","PromotionExtensionEditor","classes","extension","adExtI18n","repository","instrumentation","onCreated","onUpdated","onCancel","deps","SchedulingView","isEditing","Id","scenario","createScenarioAndActivity","scenarioName","activityName","isBlocking","setIsBlocking","setIsValid","formErrors","setFormErrors","localLegacyI18n","buildLegacyI18n","ValidationStringMap","UpgradeUrlStringMap","IsDomesticSimplifiedChineseEnabled","initialData","Language","Occasion","FinalMobileUrls","FinalUrls","FinalAppUrls","urlOptionsExpandedInitially","TrackingUrlTemplate","_useState9","_useState10","prevData","setPrevData","_useState11","_useState12","dirtyFieldsMap","setDirtyFieldsMap","_useState13","_useState14","isFinalUrlSuffixValid","setIsFinalUrlSuffixValid","_useState15","_useState16","isCustomParametersValid","setIsCustomParametersValid","_useState17","_useState18","isScheduleValid","setIsScheduleValid","hasNoChanges","prop","resetIsDirty","registerDataChange","isCurrencyVisible","newIsValid","onDataChange","onCustomParametersChange","onFinalUrlSuffixChange","onScheduleChange","onSaveClicked","saveActivity","createActivity","start","create","then","newModel","stop","newFormErrors","BadResponseError","finally","IsFinalURLSuffixPhase4Enabled","UiBlocker","blocking","loadingText","Provider","outerGridWithOneColumn","editorFieldsColumn","outerGridFlexibleGridRow1","fieldsGrid","fieldsGridFlexibleGridRow1","editorFieldLabel","Label","htmlFor","HelpIcon","topic","fieldsGridFlexibleGridRow2","editorField","occasionSelect","fieldsGridFlexibleGridRow3","editorFieldNoMargin","languageAndCurrencyGrid","languageAndCurrencyGridFlexibleGridRow1","languageAndCurrencyGridFlexibleGridRow2","currencyFieldLabel","currencyEditorField","fieldsGridFlexibleGridRow4","fieldsGridFlexibleGridRow5","alert","startAndEndDateContainer","startAndEndDatePicker","fieldsGridFlexibleGridRow6","fieldsGridFlexibleGridRow7","Input","fieldsGridFlexibleGridRow8","fieldsGridFlexibleGridRow9","UrlEditorForArray","containerClassName","urlContainer","selectClassName","urlProtocolSelect","fieldsGridFlexibleGridRow10","fieldsGridFlexibleGridRow11","fieldsGridFlexibleGridRow12","fieldsGridFlexibleGridRow13","promotionTypeAndDetailSelect","typeInputContainer","typeInput","typeInputExtraExtra","fieldsGridFlexibleGridRow14","fieldsGridFlexibleGridRow15","Panel","defaultExpanded","collapsiblePanel","Heading","Title","toggle","fieldsGridFlexibleGridRow16","Collapse","Body","fieldsGridFlexibleGridRow17","fieldsGridFlexibleGridRow18","fieldsGridFlexibleGridRow19","fieldsGridFlexibleGridRow20","fieldsGridFlexibleGridRow21","fieldsGridFlexibleGridRow22","fieldsGridFlexibleGridRow23","schedulingPanel","fieldsGridFlexibleGridRow24","fieldsGridFlexibleGridRow25","notices","fieldsGridFlexibleGridRow26","editorButtonGroup","Button","btnStyle","bsStyle","disabled","onClick","startScenario","startActivity","logMessage","endActivity","asLoggingStart","instrumentationSettings","ACTIVITYNAME","SCENARIONAME","StyledPromotionExtensionEditor","withThemeFromProps","withDefaultStyles","components","theme","palette","outerGrid","flexibleGrid","gridTemplateColumns","flexibleGridRows","flexibleGridColumn","previewColumn","width","paddingRight","flexGrow","padding","alignSelf","marginTop","border","borderBottom","fontSize","color","themePrimary","themeDarker","textTecoration","backgroundColor","fontWeight","content","transform","transformOrigin","transition","overflow","flexibleGridColumnSpan","ItemPreviewI18nKeys","m","e","getPromotionDataFormatConfig","universalItemTemplate","rawItemTemplate","AdPlacementsGroupType","searchImageAd","msanImageAd","imageExtension","perfMax","streamlinedSignup","adLibrary","msanBoostImageAd","appAd","appAdStart","responsiveSearchAd","dynamicSearchAd","AdPlacementsComponentTypes","AdPlacementPreview","AdPlacementDynamicSearch","AdPlacementResponsiveSearch","AdPlacementResponsiveSearchDesktop","AdPlacementResponsiveSearchMobile","defaultLocalizedText","previewTypeStringKey","stringKey","disclaimerMessage","getLocalizedText","template","localizedText","getPreviewTexts","adData","skipUrlValidation","defaultPreviewTexts","url","displayUrl","processedUrl","previewTextKeys","isValidUrl","URL","origin","previewTextWithDefaults","defaultPreviewTextKeys","shortHeadline","longHeadline","description","businessName","callToAction","transformToTemplateData","carryOverProperties","staticTemplateProperties","previewSettings","imagePreviewHeight","styleOverrides","logoHeight","showUrlMultiline","previewTexts","headline","GroupTypeTransformerMapping","_GroupTypeTransformer","msanImageAdTransformer","decoratorsData","appAdTransformer","pick","mapObject","getSinglePlacementStyles","singlePlacement","SinglePlacement","onRenderPlacement","useDefaultStyles","PreviewCarouselRaw","_React$PureComponent","setAutoRotate","window","e2eTestEnvironment","clearAutoRotateListener","_this$props","index","setIndex","indicators","carouselRef","querySelector","previewCount","childElementCount","nextIndex","autoRotateListener","setTimeout","setState","direction","clearTimeout","handleSelect","selectedIndex","state","enableAutoPlay","carouselClasses","_this$props2","previewElements","hideNavigationControlsIfSingle","moveNavigationControlsToBottom","hideNavigation","bottomCarouselNavigation","carouselNavigation","carouselRoot","Carousel","activeIndex","onSelect","controls","nextLabel","prevLabel","previewElement","Item","PreviewCarousel","StyledPreviewCarousel","_ref$styleOverrides","numberOfElements","_ref2$palette","_ref2$iconFontFamily","iconFontFamily","overrides","paddingBottom","paddingLeft","bottom","background","borderRadius","margin","height","left","top","right","textShadow","outline","neutralSecondary","fontFamily","lineHeight","verticalAlign","getPreviewCarouselStyles","previewCarousel","SimplePreviewCarouselHeader","title","getSimplePreviewCarouselHeaderStyles","IncludeExcludeEditButtons","isIncludedImage","isRecommendedImage","getIsRequiredByIndex","getTemplateTypeByIndex","onAddAspectRatio","onRemoveAspectRatio","onEdit","useContext","I18nContext","_ref3$styleOverrides","exclude","actionButtons","getIncludeExcludeEditButtonStyles","excludeButton","TooltipHost","calloutProps","gapSpace","ReCropReplaceButtons","onCrop","onReplace","_ref4$styleOverrides","recrop","replace","getReCropReplaceButtonsStyles","PreviewCarouselHeaderWithButtons","headerButtonProps","selectedImage","_ref2$styleOverrides","headerRoot","flexDirection","buttons","getPreviewCarouselHeaderWithButtonsStyles","isIncluded","Header","getCarouselTitleByIndex","hideHeaderButtons","isImageValid","shouldHideHeaderButtonsByIndex","headerStyles","header","ValidationMessage","getMinSizeByIndex","validationError","getValidationMessageStyles","validationMessage","_getMinSizeByIndex","minWidth","minHeight","DisclaimerMessage","disclaimerInfo","disclaimerInfoInline","getDisclaimerMessageStyles","FooterButton","footerButtonProps","footerButton","float","getFooterButtonStyles","onRenderIcon","buttonText","buttonClassName","ActionButton","getGridPreviewCarouselStyle","gridPreviewContainer","getAdPlacementStyle","cellRoot","maxHeight","placementRoot","boxSizing","boxShadow","AllPlacementsPanel","isOpen","onDismiss","cellsNumberPerRow","totalCount","onRenderCell","cellHeight","AdPlacementsGridPreviewPanel","AllPlacementsCore","getSelectedImage","getImageInfoByIndex","_useAllPlacementsPane","setIsOpen","panelElement","useAllPlacementsPanel","AllPlacements","enableAllPlacementsPanel","PreviewCarouselLayout","validateImageSizeByIndex","doesTemplateShowImageByIndex","root","getPreviewCarouselLayoutStyles","isImageShown","imageIndex","isRecommended","getGroupsLayoutStyles","channelControl","groupContainer","wordBreak","inactiveGroup","getCarouselOverrideStyles","carouselContainer","gap","GroupsLayoutControls","groups","activeGroupKey","onChangeActiveGroupKey","Pivot","selectedKey","onLinkClick","itemKey","group","PivotItem","headerText","label","GroupsPreviewer","defaultGroup","previewers","images","onActiveGroupChange","setActiveGroupKey","handleSetActiveGroupKey","groupKey","Previewer","imagesToDisplay","AdsLabel","adsLabelText","adsLabel","black","opacity","white","getAdsLabelStyles","getBoostStyles","boostDiscover","boostWindows","BoostDiscover","BoostWindows","welcomeText","timeText","dateText","BusinessNameWithAds","onlyIcon","showLabel","businessNameWithAds","textOverflow","whiteSpace","getBusinessNameWithAdsStyles","CallToAction","actionText","dismissText","actionButton","dismissButton","getCallToActionStyles","PersonaDecorator","_ref$data","name","picture","sponsoredText","personaDecoratorContainer","personaDecoratorPicture","nameLabel","personaDecoratorNameLabel","sponsoredLabel","personaDecoratorSponsoredLabel","getPersonaDecoratorStyles","src","alt","ContactDecorator","phone","address","phoneAndAddressDecoratorContainer","section","phoneAndAddressDecoratorSection","addressLabel","phoneAndAddressDecoratorAddressLabel","phoneLabel","phoneAndAddressDecoratorPhoneLabel","phoneAndAddressDecoratorIcon","getContactDecoratorStyles","locationIcon","phoneIcon","ProngDark","prong","prongWindows","winStoreLogo","zIndex","winStore","sponsored","getProngStyles","prongBackground","ProngLight","Win11StartLight","startWindows","adContainer","getStartStyles","startBackground","win11StartLightBackground","Win11StartDark","win11StartDarkBackground","Win10StartLight","win10StartLightBackground","Win10StartDark","win10StartDarkBackground","WinStore","winStoreWindows","adBadge","getButton","getWinStoreStyles","winStoreBackground","TextContainer","showMultiline","MultiLineEllipsisText","Description","showMultipleDescription","showAdsLabel","descriptionParent","getDescriptionStyles","FinalUrl","finalUrl","getFinalUrlStyles","LongHeadline","showMultipleLineLongHeadline","getLongHeadlineStyles","ShortHeadline","showShortHeadlineMultiline","getShortHeadlineStyles","AdPlacementCardPropTypes","hotspots","desc","uri","image","ImageModelPropTypes","logo","aspectRatio","showAction","showAdditionalDisclaimer","showAdsLabelInlineWithDescription","showAdsLabelWithBusinessName","showBoostDiscover","showBoostWindows","showBusinessNameFirst","showBusinessName","showDescription","showGradient","showHotspots","showImage","showImageGradient","showLogo","showLongHeadline","showPreHeadlineDivider","showPreviewTypeString","showProngDark","showProngLight","showPostHeadlineDivider","showShortHeadline","showWin11StartLight","showWin11StartDark","showWin10StartLight","showWin10StartDark","showUrl","showPersonaDecorator","showPhoneAndAddressDecorator","showWinStore","showProng","UnstyledAdPlacementCardPreview","context","multiLineTextRefs","forEach","processText","srcForCroppedImageView","FinalSrc","previewContent","rel","href","persona","imageContainer","gradient","imageGradient","CroppedImageView","resizeImageHeight","originalWidth","Width","originalHeight","Height","SourceX","CropSettings","SourceY","SourceWidth","SourceHeight","Src","hotspot","textContainer","preHeadlineDivider","postHeadlineDivider","phoneAndAddress","previewTypeString","additionalDisclaimer","AdPlacementCardPreview","StyledComponent","withI18nConsumer","paddingTop","getPlacementCardStyles","AdPlacementPreviewPropTypes","showHeaderImage","headerImage","headerImageAlt","placementContainer","cardParent","getPlacementStyles","cardProps","getImageTypeForTemplate","templateParserUtils","AdPlacementsViewMapping","AdPlacementsViewPropsMapping","AdPlacementDynamicSearchPropTypes","AdPlacementResponsiveSearchPropTypes","getAdPlacementElement","templateTransformerFunc","componentType","Component","componentPropKeys","AdPlacementElement","imageForTemplate","associationType","transformedTemplate","componentProps","getCarouselTitleForTemplate","getMinSizeForTemplate","validateImageSizeForTemplate","getCropSettingsInfoFromTemplates","getIsRequiredFromTemplate","getTemplateTypeForTemplate","doesTemplateShowImage","doesTemplateHideHeaderButtons","getFilteredTemplates","groupType","placementFilterPredicate","placementCustomizationPredicate","groupTypeTemplates","GroupTypeTemplatesMapping","templatesToUse","useSinglePlacementLayouts","_ref6","SinglePlacementLayout","getSinglePlacementLayouts","getPreviewCarouselLayout","_ref7","customDefaultImage","PreviewCarouselLayoutComponent","displayImages","setDisplayImages","placeholderImagesRef","isDisplayingPlaceholderImages","isImageListEmpty","anyImageTemplates","templates","defaultImageToUse","defaultImage","aspectRatios","getGenericImageObjectAsync","imageObject","croppedImages","getAutoCroppedImagesForRatios","originalImageToCrop","getGenericImagesForTemplateAsync","placeholderImages","placementComponents","imageType","_ref8","getCarouselTitleByIndexImpl","imageInfo","getIsRequiredByIndexImpl","headerButtonIncludeMethodWrapper","type","originalFunc","newValue","prevImages","_ref9","updatedHeaderButtonProps","updatedProps","doesTemplateHideHeaderButtonsByIndex","usePreviewCarouselLayout","_ref10","useGroupsPreviewerLayout","_ref13","groupsDefinitions","_ref11","_ref12","object","GroupsPreviewerComponent","getGroupsPreviewerLayout","imageExtensionTemplates","minimumRequirements","minSize","maxSize","textDecorationThickness","textSizeAdjust","borderWidth","textDecoration","backgroundImage","msanImageAdTemplates","image191100AudienceWide","image178100EdgeSingle","image150100MSNInArticle","image133100MSNSmall","image11AudienceSquare","maxWidth","wordWrap","bingDesktopHeaderImage","perfMaxTemplates","image41MMAWide","image191100MMALandscape","image11MMASquare","image12MMAVertical","textBing","textBingDesktop","textBingMobile","textOutlookWeb","searchImageAdTemplates","image191100MmaLandscape","image11MmaSquare","streamlinedSignupTemplates","overflowWrap","adLibraryTemplates","msanBoostImageAdTemplates","simplifiedType","multipleLineLongHeadline","multipleDescription","hideLabel","curosr","previewContentClassName","showDismiss","imagePreviewWidth","showStart","objectFit","textVverflow","winProngLight","appImageAdStartTemplates","win11StartMenuLight","win11StartMenuDark","win10StartMenuLight","win10StartMenuDark","winProngDark","windowsStore","appImageAdTemplates","responsiveSearchAdTemplates","showAdDisclaimer","showImageExtension","imagePreviewAspectRatio","dynamicSearchAdTemplates","_GroupTypeTemplatesMa","_ref2$minSize","titleTemplate","_getMinSizeForTemplat","_getMinSizeForTemplat2","_getMinSizeForTemplat3","widthToCheck","BaseImage","heightToCheck","cropSettingsInfo","each","getAllAssociationTypesForAdType","adType","withAutoRotate","CarouselLayout","enableAutoRotate","rest","_objectWithoutProperties","_excluded","autoRotate","isPlayPausePreviewImageEnabled","AdPreviewCarouselLayoutWrapper","AdPreviewCarouselLayout","AdPreviewCarouselLayoutWrapperEx","AdPreviewCarouselLayoutEx","withCMUITheme","withTheme","UAPMediaPlacementType","MediaPlacementTypeToPlacementTypeMap","_MediaPlacementTypeTo","EPT","MMA_WideImage_4x1","MMA_LandscapeImage_191x100","MMA_SquareImage_1x1","MMA_VerticalImage_1x2","Audience_Network_WideImage_191x100","MsanV2_MSAN_River_191x100","Microsoft_Edge_Single_Carousel_178x100","MsanV2_MSN_Carousel_169x100","PMax_MMAV2_MSN_Single_Carousel_169x100","MSN_InArticle_Ad_150x100","MSN_Small_Headline_133x100","Audience_Network_SquareImage_1x1","MsanV2_Microsoft_Edge_Mobile_1x1","MsanV2_Microsoft_Edge_Carouse_l201x100","PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100","MsanV2_MSAN_Banner_2x1","MsanV2_MSN_Partner_Stripe_153x100","PMax_MMAV2_MSN_Partner_Stripe_153x100","MsanV2_MSN_Restoday_124x100","PMax_MMAV2_MSN_Restoday_124x100","MsanV2_MSAN_Rectangle_120x100","ImgExt_Audience_Network_WideImage_191x100","ImgExt_Microsoft_Edge_Single_Carousel_178x100","ImgExt_Bing_Desktop_SingleImage_Extension_178x100","ImgExt_Microsoft_Edge_Medium_Headline_172x100","ImgExt_MSN_Single_Carousel_169x100","ImgExt_MSN_Medium_Headline_155x100","ImgExt_MSN_InArticle_Ad_150x100","ImgExt_MSN_Small_Headline_133x100","ImgExt_Bing_Desktop_MultiImage_Extension_133x100","ImgExt_Bing_Mobile_MultiImage_Extension_133x100","ImgExt_Audience_Network_SquareImage_1x1","ImgExt_MSN_Double_Carousel_93x100","PMax_Audience_Network_WideImage_191x100","PMax_MMA_LandscapeImage_191x100","PMax_Audience_Network_SquareImage_1x1","PMax_MSN_InArticle_Ad_150x100","PMax_MSN_Small_Headline_133x100","PMax_Microsoft_Edge_Single_Carousel_178x100","PMax_MMA_VerticalImage_1x2","PMax_MMA_WideImage_4x1","PlacementType2MediaPlacementTypeMap","_PlacementType2MediaP","transformCroppingParam","param","MediaPlacementType","CropSetting","placementTypes","placementType","cropping","transformImage","originalUrl","cropSettingOnOriginal","placementSettings","roiInfo","expandedMeta","imageCropping","placementsCropping","transformImageParam","useAdPreviewModel","placementConfig","transformedConfig","placementSets","_useAdPreviewModelCor","useAdPreviewModelCore","setPlacementConfigCore","setPlacementConfig","changedCropSettingsCore","changedCropSettings","config","newConfig","placements","hasCroppingChanged","placementMeta","placementCropping","compact","acc","cropSettings","getSmartCropSettingsFactory","mediaRepository","smartCropActivity","imageMeta","placementMetaList","getCentralCroppedPlacements","ratioAndMinSizeList","generateSmartCrop","imageUrl","assets","asset","AspectRatio","aspectRatioStr","smartCropping","X","Y","isValidSmartCropping","validateSmartCropSettings","originalImage","smartPlacementAndCroppingList","placementsWithoutSmartCropping","croppingList","centralCroppingList","idx","PlacementType2AssociationTypeMap","_PlacementType2Associ","EPlacementType","Boost_Hero_Image_Carousel_200x100","Boost_Hero_Image_Carousel_122x100","Boost_Hero_Image_Carousel_159x100","Boost_Hero_Image_Carousel_180x100","Boost_Hero_Image_Carousel_233x100","Boost_Hero_Image_Carousel_320x100","Boost_Hero_Image_Carousel_57x100","Boost_Windows_Spotlight_191x100","Boost_Discover_Card_1x1","Boost_Prong1_Prong2_Feed_191x100","Boost_Coachmark_175x100","ImgExt_MMAV2_MSN_River_191x100","ImgExt_MMAV2_MSN_Single_Carousel_169x100","ImgExt_MMAV2_MSN_Microsoft_Edge_Mobile_1x1","Responsive_MMA_WideImage_4x1","Responsive_MMA_LandscapeImage_191x100","Responsive_MMA_SquareImage_1x1","Responsive_MMA_VerticalImage_1x2","Responsive_Audience_Network_WideImage_191x100","Responsive_Audience_Network_SquareImage_1x1","Responsive_Microsoft_Edge_Single_Carousel_178x100","Responsive_MSN_InArticle_Ad_150x100","Responsive_MSN_Small_Headline_133x100","Responsive_Boost_Windows_Spotlight_191x100","Responsive_Boost_Discover_Card_1x1","Responsive_Boost_Prong1_Prong2_Feed_191x100","Responsive_Boost_Coachmark_175x100","Responsive_MsanV2_Microsoft_Edge_Carouse_l201x100","Responsive_MsanV2_Microsoft_Edge_Mobile_1x1","Responsive_MsanV2_MSAN_Banner_2x1","Responsive_MsanV2_MSAN_River_191x100","Responsive_MsanV2_MSAN_Rectangle_120x100","Responsive_MsanV2_MSN_Carousel_169x100","Responsive_MsanV2_MSN_Partner_Stripe_153x100","Responsive_MsanV2_MSN_Restoday_124x100","LinkedIn_Single_Image_Desktop_Landscape","LinkedIn_Single_Image_Mobile_Landscape","LinkedIn_Single_Image_Medium_Rectangle_Landscape","LinkedIn_Single_Image_Mobile_Interstitial_Landscape","LinkedIn_Single_Image_Native_Landscape","LinkedIn_Single_Image_Desktop_Square","LinkedIn_Single_Image_Mobile_Square","LinkedIn_Single_Image_Medium_Rectangle_Square","LinkedIn_Single_Image_Mobile_Interstitial_Square","LinkedIn_Single_Image_Native_Square","LinkedIn_Single_Image_Mobile_Vertical","LinkedIn_Single_Image_Medium_Rectangle_Vertical","LinkedIn_Single_Image_Mobile_Interstitial_Vertical","LinkedIn_Single_Image_Native_Vertical","PMax_MMAV2_MSN_River_191x100","PMax_MMAV2_Microsoft_Edge_Mobile_1x1","Responsive_PMax_MMA_WideImage_4x1","Responsive_PMax_MMA_LandscapeImage_191x100","Responsive_PMax_MMA_VerticalImage_1x2","Responsive_PMax_Audience_Network_WideImage_191x100","Responsive_PMax_Audience_Network_SquareImage_1x1","Responsive_PMax_Microsoft_Edge_Single_Carousel_178x100","Responsive_PMax_MSN_InArticle_Ad_150x100","Responsive_PMax_MSN_Small_Headline_133x100","Unified_App_Ads_Video_Horizontal","Unified_App_Ads_Bing_Search","Unified_App_Ads_Causal_Games_Dimensions","Unified_App_Ads_MSN_Display","Responsive_PMax_MMAV2_Microsoft_Edge_Single_Carousel_201x100","Responsive_PMax_MMAV2_MSN_Single_Carousel_169x100","Responsive_PMax_MMAV2_MSN_Restoday_124x100","Responsive_PMax_MMAV2_MSN_Partner_Stripe_153x100","Responsive_PMax_MMAV2_MSN_River_191x100","Responsive_PMax_MMAV2_Microsoft_Edge_Mobile_1x1","convertEffectSettings","effectSettings","effectKey","effectOptions","effectSrc","backgroundBlur","designerEffect","effectType","effectValue","transformImageExperienceImageList","placementSetsConfig","imageExperienceImageList","isImageFittingEnabled","isAdPreviewRefreshEnabled","imageList","imgExpPlacementList","isLogo","changed","newImageList","placementList","placementListMap","srcList","splitPlacementListBySrc","PlacementMetaList","UAPLPlacementMetaListV2","UAPLPlacementMetaList","imageSmartEffect","hasImageCroppingChanged","placementSetName","curAssociationType","placement","placementSmartEffect","isPlacementIncluded","hasImageExperienceData","baseImage","IdString","OriginalUrl","OriginalWidth","OriginalHeight","EffectSettings","isMaunalCropped","_getExpandedImagePlac","hasSmartEffect","imageExpansionType","originalImageCropSettings","CroppingType","getExpandedImageInfo","expandedImageUrl","getExpandedImageUrl","expandedImageWidth","expandedImageHeight","expandedImageCropSettings","extraCheck","UAPCroppingType","ManualCrop","getExpandedImagePlacementInfo","applyImageFitting","ignoreImageFitting","previewImage","useImageExperienceAdPreviewModel","placeholderImage","resetReducerStates","multiImagePlacementSets","PermissionsContext","isPlaceHolderImage","placeHolderUrl","imageExperiencePlacementSets","ret","newImages","onUpdateImageExperienceImageList","activeImageIndices","hasDataChanged","previewImageListState","activeImageIndexList","img","AdPreviewGridLayout","GridLayoutCore","AdPreviewSinglePlacementLayout","SinglePlacementLayoutCore","UnstyledAdPreviewCarouselLayout","UnstyledCarouselLayoutCore","AdPreviewPlacementContainerBase","MmaWideImage4x1","MmaLandscapeImage191x100","MmaSquareImage1x1","MmaVerticalImage1x2","AdPreviewPlacementContainerBaseCore","AdPreviewStructuredSnippetExtension","MmaInMsanWideImage191x100","MmaInMsanSquareImage1x1","MmaInMsanMSEdgeSingleCarousel178x100","MmaInMsanMSNInArticle150x100","MmaInMsanMSNSmallHeadline133x100","MmaInMsanV2MicrosoftEdgeCarousel201x100","MmaInMsanV2MicrosoftEdgeMobile1x1","MmaInMsanV2MSANBanner2x1","MmaInMsanV2MSANRiver191x100","MmaInMsanV2MSANRectangle191x100","MmaInMsanV2MSNCarousel169x100","MmaInMsanV2MSNPartnerStripe153x100","MmaInMsanV2MSNRestoday124x100","BoostHeroImageCarousel","BoostWindowsSpotlight191x100","BoostDiscoverCard1x1","BoostStartMenu","BoostActionCenter","BoostBanner","BoostProngFeed191x100","BoostCoachmark175x100","ImgExtWideImage191x100","MSEdgeSingleCarousel178x100","BingDesktopSingleImage178x100","MSEdgeMediumHeadline172x100","MSNSingleCarousel169x100","MSNMediumHeadline155x100","MSNInArticle150x100","MSNSmallHeadline133x100","BingDesktopMultiImage133x100","BingMobileMultiImage133x100","SquareImage1x1","MSNDoubleCarousel93x100","DynamicSearch","ResponsiveSearch","ResponsiveSearchDesktop","ResponsiveSearchMobile","ResponsiveMmaLandscapeImage191x100","ResponsiveMmaSquareImage1x1","ResponsiveMmaVerticalImage1x2","ResponsiveMmaWideImage4x1","ResponsiveMmaInMsanMSEdgeSingleCarousel178x100","ResponsiveMmaInMsanMSNInArticle150x100","ResponsiveMmaInMsanMSNSmallHeadline133x100","ResponsiveMmaInMsanSquareImage1x1","ResponsiveMmaInMsanWideImage191x100","ResponsiveBingSearchText","ResponsiveOutlookMobile","ResponsiveOutlookWeb","LinkedInSingleImageDesktop","LinkedInSingleImageMobile","LinkedInSingleImageMediumRectangle","LinkedInSingleImageMobileInterstitial","LinkedInSingleImageNative","UnifiedAppAdsVideoHorizontalPlacement","UnifiedAppAdsM365OutlookPlacement","UnifiedAppAdsCasualGamesDimensionsPlacement","UnifiedAppAdsMSNDisplayPlacement","UnifiedAppAdsBingSearchPlacement","StructuredSnippetExtension","AdPreviewCalloutExtension","CalloutExtension","AdPreviewPriceExtension","PriceExtension","AdPreviewPromotionExtension","PromotionExtension","AdPreviewSitelinkExtension","SitelinkExtension","AdPreviewAdExtensionComponents","UAPAdExtensionType","SiteLink","Callout","Promotion","StructuredSnippet","Price","emptyTheme","core","withUAPLThemedStyles","WrappedComponent","getStyles","prefixClassName","useRawStyles","componentName","HOC","themedStyles","createUseStyles","useStyles","displayName","hoistNonReactStatics","withThemedStyles","defaultAdsLabelStyles","getMmaInMsanV2MicrosoftEdgeCarousel201x100Styles","baseStyles","placementCard","placementImageContainer","placementTextContainer","placementAdsLabel","placementGradient","placementShortHeadline","placementLongHeadline","placementFinalUrl","placementDescription","placementCallToAction","placementBusinessNameWithAdsLabel","getMmaInMsanV2MSANBanner2x1Styles","getMmaInMsanV2MSANRiver191x100Styles","fontStyle","widht","getMmaInMsanV2MSNCarousel169x100Styles","getMmaInMsanV2MSNPartnerStripe153x100Styles","getMmaInMsanV2MSNRestoday124x100Styles","getMmaInMsanV2MicrosoftEdgeMobile1x1Styles","getBingSearchTextPlacementStyles","_getBingSearchPlaceme","cursor","placementDescriptionContainer","placementLogoContainer","getBingSearchTextDesktopPlacementStyles","_getBingSearchPlaceme2","_excluded2","bingSearchDesktopPlacementRoot","getBingSearchTextMobilePlacementStyles","_getBingSearchPlaceme3","_excluded3","bingSearchMobilePlacementRoot","getOutlookMobilePlacementStyles","_getOutlookPlacementB","getOutlookWebPlacementStyles","_getOutlookPlacementB2","outlookWebCardRoot","getLinkedInSingleImageDesktopStyles","placementCardHeader","placementCardPreview","placementCardFooter","placementLogo","placementCompanyName","placementPromoteText","placementIntroductoryText","placementHeadline","letterSpacing","WebkitBoxOrient","WebkitLineClamp","textDecorationLine","getLinkedInSingleImageMediumRectangleStyles","placementCompanyMeta","placementHeader","getBoostWindowsSpotlight191x100Styles","placementCenterSection","placementSearchIconCenter","placementHotspotsCenterSection","placementTopRightSection","placementCameraIcon","placementTopLeftSection","placementSearchIconTopLeft","placementHotspotsLeftSection","placementWifiIcon","placementBatteryIcon","getDisclaimerStyles","additionalLineDisclaimer","popupDisclaimer","disclaimerCallout","getResponsiveSearchAdPlacementBaseStyles","placementContentContainer","placementInlineItems","getResponsiveSearchAdMobilePlacementStyles","_getResponsiveSearchA3","placementImage","getMmaInMsanV2RefreshedMSANRiver191x100Styles","placementInfoContainer","placementBusinessNameContainer","businuessAndLogoContainer","placementCallToActionAsLink","businuessAndAdChoiceContainer","adsLabelClassName","headChoiceIconClassName","adsLabelContainerClassName","getMmaInMsanV2RefreshedMSNRestoday124x100Styles","getMmaInMsanV2RefreshedMSNCarousel169x100Styles","borderColor","getMmaInMsanV2RefreshedMicrosoftEdgeCarousel201x100Styles","borderImageSource","getMmaInMsanV2RefreshedMSNPartnerStripe153x100Styles","getMmaInMsanV2RefreshedMSANBanner2x1Styles","getMmaInMsanV2RefreshedMicrosoftEdgeMobile1x1Styles","getOutlookMobileRefreshedPlacementStyles","overflowX","unreadClassName","threeDot","descriptionWithAction","flexWrap","flexShrink","getOutlookWebRefreshedPlacementStyles","MMAPlacementCardImpl","isEnabled","mmaPlacementCardClassName","styles","mmaRefreshedPlacementCardRoot","mmaPlacementCardRoot","mmaPlacementCardDisabled","MMAPlacementCard","PlacementContentContainer","isClickDisabled","placementContentContainerClassName","AdLabelImpl","adLabelRefreshedRoot","adLabelRoot","AdLabel","BusinessNameWithAdsLabelImpl","showAdsIcon","rootClassName","businuessNameRefreshed","businessNameWithAdsLabelRoot","BusinessNameWithAdsLabel","GradientImpl","gradientClassName","placementCardGradientRoot","PlacementGradient","withLink","HoC","PlacementText","isMultiLine","placementTextClassName","PlacementHeadline","headlineText","placementHeadlineClassName","PlacementHeadlineWithLink","PlacementFinalUrl","placementFinalUrlClassName","PlacementFinalUrlWithLink","PlacementDescription","placementDescriptionClassName","PlacementAction","placementActionClassName","PlacementImage","enableCrop","previewImageAspectRatio","previewImageHeight","placementImageClassName","Image","shouldFadeIn","AdditionalLineDisclaimer","disclaimer","DisclaimerLayout","Link","first","PopupDisclaimer","showCallout","setShowCallout","ariaLabelledBy","getId","ariaDescribedBy","directionalHint","DirectionalHint","bottomLeftEdge","isBeakVisible","setInitialFocus","PopupText","BusinessNameWithLogo","ChoiceIcon","viewBox","fill","xmlns","d","fillOpacity","ChoiceIconBright","BusinessNameWithChoiceIcon","showAdIcon","showChoiceIcon","showCallToAction","showCallToActionAsLink","showBrightStyleChoiceIcon","showChoiceIconAhead","customizedClassName","largeIconRoot","arrowIcon","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ThreeDot","threeDotClassName","OutlookPcDesktopUnread","customizedUnreadClassName","OutlookMobileWebUnread","DescriptionWithAction","descriptionWithActionClassName","placementCallToActionClassName","placementCallToActionAsLinkClassName","AdPlacementMmaBase","finalUrlOrigin","placementData","isMultiLineShortHeadline","isMultiLineLongHeadline","showFinalUrl","isMultiLineFinalUrl","displayFinalUrlOrigin","isMultiLineDescription","showAdLabel","showBusinessNameAdLabel","showDots","effectiveImageUrl","effectiveImageWidth","effectiveImageHeight","expandedPlacementCropping","previewHeight","imageBorderRadius","placementDotsIcon","dotsIcon","AdPlacementMmaWideImage4x1","AdPlacementMmaLandscapeImage191x100","AdPlacementMmaSquareImage1x1","AdPlacementMmaVerticalImage1x2","AdPlacementMmaInMsanWideImage191x100","AdPlacementMmaInMsanMSEdgeSingleCarousel178x100","AdPlacementMmaInMsanMSNInArticle150x100","AdPlacementMmaInMsanMSNSmallHeadline133x100","AdPlacementMmaInMsanSquareImage1x1","AdPlacementMmaBaseV2","showSmallSizeHeadline","showBusinessNameWithLogoTop","showAdChoiceIconArea","showBusinessNameInAdChoiceArea","CustomizedComponent","customizedComponent","smallSizeHeadline","customizedArea","AdPlacementMmaInMsanV2MicrosoftEdgeCarousel201x100","withPermissions","props1","StyledBaseComp","AdPlacementMmaInMsanV2MSANBanner2x1","AdPlacementMmaInMsanV2MSANRiver191x100","props2","AdPlacementMmaInMsanV2MSNCarousel169x100","AdPlacementMmaInMsanV2MSNPartnerStripe153x100","AdPlacementMmaInMsanV2MSNRestoday124x100","AdPlacementMmaInMsanV2MSANRectangle191x100","AdPlacementMmaInMsanV2MicrosoftEdgeMobile1x1","AdPlacementImgExtWideImage191x100","AdPlacementImgExtMSEdgeSingleCarousel178x100","AdPlacementImgExtBingDesktopSingleImage178x100","AdPlacementImgExtMSEdgeMediumHeadline172x100","AdPlacementImgExtMSNSingleCarousel169x100","AdPlacementImgExtMSNMediumHeadline155x100","AdPlacementImgExtMSNInArticle150x100","AdPlacementImgExtMSNSmallHeadline133x100","AdPlacementImgExtSquareImage1x1","AdPlacementImgExtMSNDoubleCarousel93x100","AdPlacementImgExtBingDesktopMultiImage133x100","_ref2$images","imagesWithPadding","AdPlacementImgExtBingMobileMultiImage133x100","carouselState","setCarouselState","wrap","BingSearchPlacementBase","adExtensionContainerClassName","adExtensionContainer","AdPlacementBingSearchText","AdPlacementBingSearchTextDesktop","AdPlacementBingSearchTextMobile","OutlookPlacementBase","OutlookRefreshedPlacementBase","showThreeDot","showDescriptionWithAction","CustomizedUnreadComponent","customizedUnreadComponent","AdPlacementOutlookMobile","StyledComp","AdPlacementOutlookWeb","AdPlacementLinkedInSingleImageBase","companyPageName","userProfileImageSrc","introductoryText","showHeader","showIntroductoryText","showfinalUrl","showFooter","showCompanyInFooter","showIntroductoryTextInFooter","renderCallToAction","appearance","FluentProvider","webLightTheme","Card","CardHeader","Text","CardPreview","CardFooter","AdPlacementLinkedInSingleImageDesktop","AdPlacementLinkedInSingleImageMobile","AdPlacementLinkedInSingleImageMediumRectangle","AdPlacementLinkedInSingleImageMobileInterstitial","AdPlacementLinkedInSingleImageNative","showfinalUrlInFooter","AppAdsBasePlacement","placementPreview","phoneInnerContent","getAppAdsBasePlacementStyles","borderTopRightRadius","borderTopLeftRadius","videoPlayerRoot","getAppAdsMobileStyles","_getResponsiveSearchA","_getAppAdsBasePlaceme","appAdsPlacementCard","appAdsStyles","flex","AppAdsMSNDisplayPlacement","msnPlacementImage","msnPlacementTextContainer","msnDescription","msnBusinessName","msnBusinessNameWithAdsLabel","_getAppAdsBasePlaceme3","_excluded4","customClassName","ResponsiveAdPlacementOutlookMobile","ResponsiveAdPlacementOutlookWeb","AppAdsM365OutlookPlacement","preview","_getAppAdsBasePlaceme2","ResponsiveSearchAdPlacementBase","_props$previewTexts","AppAdsBingSearchPlacementBase","AppAdsBingSearchPlacement","AppAdsBingSearchPlacementText","AppAdsCasualGamesDimensionsPlacement","casualGamesBase","casualGamesHeadline","_getAppAdsBasePlaceme4","_excluded5","AppAdsVideoHorizontalPlacementInner","videos","videoRef","load","disablePictureInPicture","controlsList","kind","srcLang","default","AppAdsVideoHorizontalPlacement","ResponsiveMMAPlacementCard","ResponsiveAdPlacementMmaBase","finalImagePreviewHeight","ResponsiveAdPlacementMmaWideImage4x1","ResponsiveAdPlacementMmaLandscapeImage191x100","ResponsiveAdPlacementMmaSquareImage1x1","ResponsiveAdPlacementMmaVerticalImage1x2","ResponsiveAdPlacementMmaInMsanWideImage191x100","ResponsiveAdPlacementMmaInMsanMSEdgeSingleCarousel178x100","ResponsiveAdPlacementMmaInMsanMSNInArticle150x100","ResponsiveAdPlacementMmaInMsanMSNSmallHeadline133x100","ResponsiveAdPlacementMmaInMsanSquareImage1x1","ResponsiveAdPlacementBingSearchText","WindowsSpotlight191x100","searchIcon","cameraIcon","wifiIcon","batteryIcon","AdPlacementBoostWindowsSpotlight191x100","AdPlacementBoostHeroImageCarousel","AdPlacementBoostProngFeed191x100","AdPlacementBoostCoachmark175x100","BoostTextAdPlacementBase","showSuggested","showDismissAction","placementSuggestedContainer","placementVectorIcon","vectorIcon","placementSuggestedText","placementDetailsContainer","placementActionContainer","placementDismissAction","AdPlacementBoostStartMenu","AdPlacementBoostActionCenter","AdPlacementBoostBanner","AdPlacementBoostDiscoverCard1x1","_getResponsiveSearchA2","placementDisplayUrl","DynamicSearchAdPlacementBase","placementTextCardContainer","placementUrl","placementDisclaimer","VideoPlacementInner","videoPlayerRootClass","videoPlayerVertical","classNames","VideoPlacement","ContainerBase","titleText","onRenderHeader","onRenderFooter","previewContainerClassName","containerHeaderClassName","containerTitleClassName","containerFooterClassName","placementContainerClassName","adPreviewContainer","adPreviewContainerError","adPreviewContainerHeader","adPreviewContainerTitle","adPreviewPlacementContainer","adPreviewContainerFooter","_ref$palette","orange","UAPImageType","Image1x1","Image4x1","Image1x2","Image191x100","Image178x100","Image172x100","Image169x100","Image155x100","Image150x100","Image133x100","Image93x100","Image201x100","Image200x100","Image153x100","Image124x100","Image120x100","Image122x100","Image159x100","Image180x100","Image233x100","Image320x100","Image57x100","UAPVideoType","UAPPlacementType","PMax_Video","Boost_Start_Menu","Boost_Action_Center","Boost_Banner","Outlook_Text_Mobile","Outlook_Text_Web","Bing_Search_Mobile","Bing_Search_Desktop","Bing_Search_Text","Responsive_Outlook_Text_Mobile","Responsive_Outlook_Text_Web","Responsive_Bing_Search_Text","Responsive_Boost_Start_Menu","Responsive_Boost_Action_Center","Responsive_Boost_Banner","Responsive_Search","Responsive_Search_Desktop","Responsive_Search_Mobile","Dynamic_Search","Unified_App_Ads_Bing_Search_Text","Unified_App_Ads_M365_Outlook","_UAPLPlacementMetaLis","PT","hasMultiImages","Image4x5","getPlacementListMetaDataByImageType","imageTypes","types","Object","values","imgType","flatten","mergePlacementSets","prevPlacementSets","curPlacementSets","newPlacementSets","_loop2","curPlacementSet","i","prevPlacementSet","_mergePlacementList","prevPlacementList","curPlacementList","newPlacementList","_loop","curPlacement","prevPlacement","mergePlacementList","_mergePlacementList2","isListChanged","mergeReducerStates","prevState","curState","prevPreviewState","prevHasDatachanged","prevActiveImageIndices","curPreviewState","curHasDatachanged","curActiveImageIndices","_mergePreviewImageAnd","prevImageAndPlacementSets","curImageAndPlacementSets","prevImageAndPlacementSetsCopy","newImageAndPlacementSets","_loop3","curImageAndPlacementSet","prevImageAndPlacementSet","prevPreviewImage","curPreviewImage","isPreviewImageChanged","_mergePlacementSets","_mergePlacementSets2","isPlacementSetsChanged","splice","mergePreviewImageAndPlacementSets","_mergePreviewImageAnd2","isPreviewStateChanged","newPreviewState","isActiveImageIndicesChanged","AdPreviewModelActions","ADPREVIEW_INIT_STATE","adPreviewReducer","action","actionType","actionData","newState","forceToReset","_mergeReducerStates","_mergeReducerStates2","mergedState","imageAndPlacementSets","placementSet","updatePlacementCorpSettings","updatePlacementCorpSettingsByImageType","newPreviewImages","newIndices","sortBy","getCenterCroppedSettings","originalBoxToCrop","originalRatio","Math","abs","scaledSourceWidth","round","centerX","scaledSourceHeight","middleY","_ref$useOriginalImage","useOriginalImageSize","maxCropBox","ratio","pickSingleImageFromImageList","getImageInfo","pLoadedImage","resolve","reject","onload","naturalWidth","naturalHeight","onerror","p$ret","loadedImage","manualPlacementCroppings","getPlacementSet","placementSetParam","_placementSetParam$ge","getDefaultPlacementsCropping","getPlacementListMetaData","defaultCroppingList","manualCropping","getImageAndPlacementSetList","placementSetsParam","concurrency","curPlacementConfigRef","_useAdPreviewReducer","initState","_useReducer","useReducer","_useReducer2","adPreviewModel","dispatch","updateImageCropping","updatePlacementCropping","params","_ref11$imageIndex","updatePlacementCroppingByImageType","_ref12$imageIndex","setActiveImageIndices","_len","indices","Array","_key","useAdPreviewReducer","updateImageCroppingState","updatePlacementCroppingState","updatePlacementCroppingByImageTypeState","newImageCropping","imgAndPlacementSets","newPlacementCropping","_ref9$imageIndex","_ref10$imageIndex","prevModelConfigRef","initializeModel","pNewModelConfig","newModelConfig","_newModelConfig","_toArray","firstConfig","otherConfigs","slice","firstImageInfo","firstPreviewImage","imgInfo","otherPreviewImages","getPlacementSetsViewModel","activeImagesOnly","finalPlacementSets","pickedPreviewImageListState","pImage","placementSetViewModel","find","_ref14","imageViewModel","fpIndex","multiImagePlacementSetsViewModel","activeMultiImagePlacementSetsViewModel","singleImagePlacementSetsViewModel","_ref15","_ref16","activeSingleImagePlacementSetsViewModel","_ref17","_ref18","firstImage","allImages","_ref20","activeImages","_ref21","_ref22","resetReducerStatesWrapper","singleImagePlacementSets","UAPPlacementTypeAlias","MMA","WideImage","LandscapeImage","SquareImage","VerticalImage","MSAN","MSEdgeSingleCarousel","MSNInArticle","MSNSmallHeadline","MSANV2","MSEdgeCarousel","MSEdgeMobile","MSANBanner","MSANRiver","MSANRectangle","MSNCarousel","MSNPartnerStripe","MSNRestoday","PMax","AudienceSquareImage","AudienceWideImage","MMALandscapeImage","MMAVerticalImage","MMAWideImage","MMAV2MSEdgeCarousel","MMAV2MSNSingleCarousel","MMAV2MSNRestoday","MMAV2MSNPartnerStripe","MMAV2MSNRiver","Video","PMaxV2","Boost","HeroImageCarousel200x100","HeroImageCarousel122x100","HeroImageCarousel159x100","HeroImageCarousel180x100","HeroImageCarousel233x100","HeroImageCarousel320x100","HeroImageCarousel57x100","WindowsSpotlight","DiscoverCard","StartMenu","ActionCenter","Banner","Prong1Prong2Feed","Coachmark","ImageExt","MSEdgeMediumHeadline","MSNSingleCarousel","MSNMediumHeadline","MSNDoubleCarousel","BingDesktopSingleImage","BingDesktopMultiImage","BingMobileMultiImage","Outlook","Mobile","Web","BingSearch","Desktop","Responsive","Dynamic","LinkedIn","Landscape","SingleImageDesktop","SingleImageMobile","Square","Vertical","UnifiedAppAds","VideoHorizontal","M365Outlook","MSNDisplay","CasualGamesDimensions","BingSearchText","All","AllV2","_ref$extraCheck","UAPImageExpansionType","Outpainting","SmartCrop","SingleColorPadding","getCropSettingsFromRoi","_ref2$useOriginalImag","expandedInfo","setROIInfo","_expandedInfo","expandedImageCropSettingsOriginal","expandedImageCropSettingsMap","cropSetting","originalImageCropSettingsMap","CenterCrop","expandedCropSetting","expandedImageInfo","PlacementType2Component","_PlacementType2Compon","_excluded7","_excluded6","getAdPlacementComponent","onRenderEmptyView","gridLayoutContainerClassName","emptyView","placementComponentList","AdPlacementComponent","newPlacement","adPreviewGridLayoutContainer","layoutContainerClassName","_ref$hasContainer","hasContainer","placementComponent","_ref3$hasMultiImages","adPreviewLayoutContainer","_Fragment","bsProps","bsClass","CustomCarousel","InjectedControls","carouselWrapperClassName","carouselInstance","setCarouselInstance","_useMemo","renderControls","_useMemo2","leftArrowControl","rightArrowControl","BsCarousel","renderIndicators","Caption","setActiveIndex","customCarouselRootClassName","customCarouselLayoutStyles","customPlayPauseButtonsStyles","startAutoRotating","onActiveIndexChange","disableDefaultStyles","useCustomCarousel","customCarouselWrapperClassName","curActiveIndex","curSetIndex","setDirection","auto","setAuto","startAutoRotateListner","setStartAutoRotateListner","onRenderCarouselHeader","currentIndex","CarouselComponent","moreCarouselProps","customCarouselWrapper","carouselLayoutContainer","PlayPauseButtons","newI18n","isPlaying","play","pause","playPauseButtons","adPreviewCarousel","baseCarouselLayoutStyles","_ref$iconFontFamily","resetOn","LayoutComponent","extensionData","structuredSnippetExtensionContainer","Category","Texts","join","calloutExtensionContainer","priceExtensionContainer","Currency","PromotionItem","DateRange","hasOccasion","hasPromotionDetail","hasDateRange","promotionExtensionContainer","star","onRenderTile","distUrl","DisplayText","Description1","Description2","DestinationUrl","indexOf","tiles","next","sitelinkExtensionContainer","WhitePadding","Unknown","paddingColor","hasQuery","srcWithQuery","queryParams","ROIInfoObj","parse","ImageExpansionType","ThumbnailWidth","PaddingImageWidth","ThumbnailHeight","PaddingImageHeight","PaddingColor","ImageCropSetting","cs","sourceHeight","sourceWidth","sourceX","sourceY","croppingType","OriginalImageCropSetting","pug","module","exports","locals","pug_interp","pug_html","locals_for_with","promotionTypeI18nKey","promotionTypeI18nData","monetaryDiscount","formatCurrency","percentDiscount","formatPercent","promotionDetailI18nData","promotionTypeFormatted","promotionDetail","promotionDetailI18nKey","promotionDetailFormatted","amount","promotionCode","dateRangeI18nData","dateRangeI18nKey","startDateFormatted","endDateFormatted","formatISODateString","isoDatetimeString","dateToUse","substring","timeZone","formatDate","skeleton","dateRangeFormatted","date","hasSecondLine","escape","call"],"sourceRoot":""}