{"version":3,"file":"js/4244-2b6a986f594a8d938f45.js","mappings":"yJA6BA,IAzBc,SAAiBA,GAC7B,IAAIC,EAAQD,EAAKC,MACbC,EAAOF,EAAKE,KACZC,EAAMH,EAAKG,IACXC,EAAYJ,EAAKI,UACjBC,EAAWL,EAAKK,SAChBC,EAAWN,EAAKM,SAChBC,EAAYP,EAAKO,UACrB,OAAoB,gBAAoB,KAAY,OAAS,CAAC,EAAGJ,GAAO,CACtE,WAAYA,GACX,CACDF,MAAOA,EACPC,KAAMA,EACNM,OAAQH,EACRI,QAASL,EACTG,UAAWA,IACI,gBAAoB,OAAO,OAAS,CACnDG,MAAO,CACLC,QAAS,gBAEVR,GAAO,CACR,WAAY,GAAGS,OAAOT,EAAK,WACzBG,GACN,C,qJCgcA,IAhduDO,EACrDC,kBAEA,MAAM,MAAEC,EAAK,SAAEC,IAAaC,EAAAA,EAAAA,OAErBC,EAAMC,IAAWC,EAAAA,EAAAA,UAAiBL,EAAMM,cAAcC,WAAW,oBAAsB,KACvFC,EAAcC,IAAmBJ,EAAAA,EAAAA,UAAiBL,EAAMM,cAAcC,WAAW,6BAA+B,OAChHG,EAAOC,IAAYN,EAAAA,EAAAA,UAAwBL,EAAMM,cAAcC,WAAW,+BAAiCP,EAAMM,cAAcM,aAAe,OAC9IC,EAAoBC,IAAyBT,EAAAA,EAAAA,WAAkB,IAG/DU,IAAeV,EAAAA,EAAAA,WAAiB,IACrBW,OAAOC,SAASC,OAAS,oDACrB,uBAGfC,EAAkBC,IAAuBf,EAAAA,EAAAA,WAAkB,IAC3DgB,EAASC,IAAcjB,EAAAA,EAAAA,WAAkB,IACzCkB,EAAOC,IAAYnB,EAAAA,EAAAA,UAAS,CACjCoB,MAAM,EACNC,IAAK,GACLC,SAAU,GACVC,SAAU,EACVP,SAAS,IAGLQ,EAAW,wFACXC,EAAe,mEAGfC,EAAmB,WAAW5B,4DAA+D0B,mBAA0BC,oCAA+C3B,kBAAqBY,gDAE3LiB,EAAiBA,CAACC,EAAcC,KACpCjC,EAAS,CAAEgC,OAAMC,WAAU,EA4BvBC,GAA4BhC,GAAQgB,GAAoBN,GAAsBQ,EAoH9Ee,EAAwBC,MAAOC,GAAqB,KACxD,IACE,MAAMC,EAAmBC,OAAOC,KAAKzC,EAAMM,cAAgB,CAAC,GAE5D,IAAK,IAAIoC,EAAI,EAAGA,EAAI1C,EAAM2C,WAAWC,OAAQF,IAAK,CAChD,MAAMG,EAAM7C,EAAM2C,WAAWD,GACvBD,EAAOD,OAAOC,KAAKzC,EAAM2C,WAAWD,IAAM,CAAC,GACjD,IAAK,IAAII,EAAI,EAAGA,EAAIL,EAAKG,OAAQE,IAAK,CACpC,MAAMC,EAAkBN,EAAKK,IAAIE,MAAM,KAAKC,MAC5C,IAAKV,EAAiBW,SAASH,GAAkB,SAEjD,MAAMhD,EAAc8C,EAAIJ,EAAKK,KAAK/C,aAAe,GACjD,IAAK,IAAIoD,EAAI,EAAGA,EAAIpD,EAAY6C,OAAQO,IAAK,CAC3C,MAAMC,EAASrD,EAAYoD,IAAIC,QAAU,GACzC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAOR,OAAQS,IAAK,CACtC,MAAMC,EAAQF,EAAOC,IAAM,CAAC,EAC5B,GAAIC,EAAMC,WAAcvD,EAAMM,aAAayC,KAAmBO,EAAME,MAClE,OAAOC,MAAM,GAAGH,EAAMI,mBAAmBC,IAAML,EAAME,sBAEzD,CACF,CACF,CACF,CAEA,MAAMI,EAAW,CACfC,cAAe,IACV7D,EAAMM,aACTC,SAAU,IACLP,EAAMM,aAAaC,SACtB,2BAA4BC,EAC5B,kBAAmBL,EACnB,6BAA8BO,EAC9BoD,6BAA6B,GAE/BlD,YAAaF,IAIXqD,EAAOC,SAASC,cAAc,4BAA4BC,aAAa,WACvEC,EAAU,CACdC,OAAiC,WAAzBpE,EAAMqE,eAA8B,MAAQ,OACpDC,QAAS,IAAIC,QAAQ,CACnB,OAAU,mBACV,eAAgB,mBAChB,eAAgBR,GAAQ,KAE1BS,KAAMC,KAAKC,UAAUd,IAGjBe,QAAiB3D,OAAO4D,MAAM,GAAG5E,EAAM6E,cAAc7D,OAAOC,SAAS6D,SAAUX,GAC/EY,QAAaJ,EAASK,OAE5B,IAAKL,EAASM,GAAI,MAAM,IAAIC,MAAMH,EAAKI,SAAW,sCAE9C7C,GACFd,EAAS,CACPC,MAAM,EACNC,IAAK,+BACLC,SAAU,UACVC,SAAU,IACVP,SAAS,GAGf,CAAE,MAAO+D,GACP5D,EAAS,CACPC,MAAM,EACNC,IAAK0D,EAAMD,QACXxD,SAAU,QACVC,SAAU,IACVP,SAAS,IAEXgE,QAAQD,MAAM,yBAA0BA,EAC1C,CAAC,QACC9D,GAAW,EACb,GA0HF,OA1EAgE,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAcvF,EAAMM,cAAcC,WAAW,oBAAsB,KACnEiF,EAAsBxF,EAAMM,cAAcC,WAAW,6BAA+B,KACtE,OAAhBgF,GACFnF,EAAQmF,GAEkB,OAAxBC,GACF/E,EAAgB+E,EAClB,GACC,CAACxF,EAAMM,gBAEVgF,EAAAA,EAAAA,YAAU,KACV,MAAMG,EAAY,IAAIC,gBAAgB1E,OAAOC,SAAS6D,QAChDa,EAAYF,EAAUG,IAAI,QAC1BC,EAAaJ,EAAUG,IAAI,SAE7BD,GAAa3F,GA9LgBqC,OAAOyD,EAAc3F,KACpD,MAAM4F,EAAW,WAAW5F,mEAAsE0B,mBAA0BC,UAAqBgE,kBAAqB/E,IAEtK,IACE,MAAMiF,QAAsBpB,MAAMmB,EAAU,CAC1C3B,OAAQ,OACRE,QAAS,CACP,eAAgB,uCAIpB,IAAK0B,EAAcf,GACjB,MAAM,IAAIC,MAAM,iCAAiCc,EAAcC,cAGjE,MAAMC,QAAkBF,EAAchB,OAChCmB,EAAcD,EAAUE,aACxB5F,EAAe0F,EAAUG,cAE/B,IAAKF,EACH,MAAM,IAAIjB,MAAM,0BAGlB,MAAMoB,EAAW,WAAWnG,4DACtBoG,QAAsB3B,MAAM0B,EAAU,CAC1ClC,OAAQ,MACRE,QAAS,CACPkC,cAAe,UAAUL,OAI7B,IAAKI,EAActB,GACjB,MAAM,IAAIC,MAAM,2BAA2BqB,EAAcN,cAG3D,MAAMQ,QAAkBF,EAAcvB,OACtC,IAAItE,EAAQ+F,EAAUC,QAAQ,IAAIC,GAElC,IAAKjG,EACH,MAAM,IAAIwE,MAAM,oBAKlB,OAFAxE,EAAQA,EAAMkG,UAAU,EAAG,IAEpB,CAAEpG,eAAcE,QACzB,CAAE,MAAO0E,GAEP,MADAC,QAAQD,MAAM,kCAAmCA,GAC3CA,CACR,GA+IAyB,CAAyBlB,EAAWE,GACjCiB,MAAK,EAAGtG,eAAcE,YACrBD,EAAgBD,GAChBG,EAASD,GACTsB,EAAe+E,EAAAA,GAAU,CAAE,2BAA4BvG,EAAc,6BAA8BE,EAAOE,YAAaF,IAEvH,MAAMsG,EAAe,IAAItB,gBAAgB1E,OAAOC,SAAS6D,QACzDkC,EAAaC,OAAO,QACpBD,EAAaC,OAAO,SACpB,MAAMC,EAAS,GAAGlG,OAAOC,SAASkG,YAAYH,EAAaI,aAC3DpG,OAAOqG,QAAQC,aAAa,CAAC,EAAGtD,SAAS9E,MAAOgI,EAAO,IAExDK,OAAOnC,IACNC,QAAQD,MAAM,yCAA0CA,GACxD5D,EAAS,CACPC,MAAM,EACNC,IAAK,4BACLC,SAAU,QACVC,SAAU,IACVP,SAAS,GACT,GAER,GACC,CAACL,OAAOC,SAAS6D,UAElBQ,EAAAA,EAAAA,YAAU,KACR,GAAI9E,IAAiBQ,OAAOC,SAAS6D,OAAQ,CAChBzC,WACzB,IACEf,GAAW,SACLc,GAAsB,GAE5BZ,EAAS,CACPC,MAAM,EACNC,IAAK,iDACLC,SAAU,UACVC,SAAU,IACVP,SAAS,GAEb,CAAE,MAAO+D,GACP5D,EAAS,CACPC,MAAM,EACNC,IAAK,2CACLC,SAAU,QACVC,SAAU,IACVP,SAAS,IAEXgE,QAAQD,MAAM,8BAA+BA,EAC/C,CAAC,QACC9D,GAAW,EACb,GAGFkG,EACF,IACC,CAAChH,IAGFiH,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,GACbF,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,sBACHC,OAAO,6BACPC,UAAQ,EACRzD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,SAASC,QAAS,GAE1CV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACZ7H,EAAMM,cAAcC,WAAW,4BAC9BkH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAAQ,sBACPZ,EAAAA,cAAA,QAAM9H,MAAO,CAAE2I,MAAO,UAAW,cAGtDb,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAAQ,sBACPZ,EAAAA,cAAA,QAAM9H,MAAO,CAAE2I,MAAO,QAAS,iBAAoB,wBAK5Eb,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACZ7H,EAAMM,cAAcM,aACnB6G,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAAQ,sBACPZ,EAAAA,cAAA,QAAM9H,MAAO,CAAE2I,MAAO,UAAYtI,EAAMM,cAAcM,YAAYgG,UAAU,EAAG,OAKxGa,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,MAAK,8BAK3BZ,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACc,EAAAA,EAAS,CACRC,WAAS,EACTC,MAAM,WACNC,MAAOvI,EACPwI,WArXUC,IACxB,MAAMC,EAAUD,EAAEE,OAAOJ,MAErBG,EAAQE,WAAW,YACrBjI,GAAsB,GAEtBA,GAAsB,GAGxBV,EAAQyI,GACR7G,EAAe+E,EAAAA,GAAU,CAAE,kBAAmB8B,IAdpB,kCACDG,KAeT,WAAWH,KAIzBzH,GAAoB,GAFpBA,GAAoB,EAGtB,EAqWc6H,YAAY,qEAIhBxB,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACZ1G,GACCsG,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,QAAQa,GAAI,CAAEZ,MAAO,QAAS,0BAInDzH,GACC4G,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,QAAQa,GAAI,CAAEZ,MAAO,QAAS,2CAMtDb,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAAC0B,EAAAA,EAAM,CACLd,QAAQ,YACRe,SAAUjH,EACVkH,UAtLahH,UAC3B,GAAKlC,EAAL,CAWAqB,EAAS,CACPC,MAAM,EACNC,IAAK,sCACLC,SAAU,OACVC,SAAU,IACVP,SAAS,IAGX,IACEC,GAAW,QApNmBe,WAChC,IACE,MAAMsC,QAAiB2E,EAAAA,EAAAA,GAAY,CACjCC,YAAa,8BACbC,OAAQ,CAAEC,IAAK1H,GACfM,OAAO,IAGT,OAAQsC,EAAS+E,YACf,KAAK,IAQH,OAPAlI,EAAS,CACPC,MAAM,EACNC,IAAK,4CACLC,SAAU,UACVC,SAAU,IACVP,SAAS,KAEJ,EAET,KAAK,IAQH,OAPAG,EAAS,CACPC,MAAM,EACNC,IAAK,uDACLC,SAAU,QACVC,SAAU,IACVP,SAAS,KAEJ,EAET,KAAK,IAQH,OAPAG,EAAS,CACPC,MAAM,EACNC,IAAK,mDACLC,SAAU,QACVC,SAAU,IACVP,SAAS,KAEJ,EAET,QAQE,OAPAG,EAAS,CACPC,MAAM,EACNC,IAAK,2BAA2BiD,EAAS+E,aACzC/H,SAAU,QACVC,SAAU,IACVP,SAAS,KAEJ,EAEb,CAAE,MAAO+D,GASP,OARA5D,EAAS,CACPC,MAAM,EACNC,IAAK,yCAAyC0D,EAAMD,UACpDxD,SAAU,QACVC,SAAU,IACVP,SAAS,IAEXgE,QAAQD,MAAM,oCAAqCA,IAC5C,CACT,GA0J6BuE,IAEzBC,YAAW,KACT5I,OAAOC,SAAS4I,KAAO9H,CAAgB,GACtC,WAGCK,GAAsB,EAE9B,CAAE,MAAOgD,GACP5D,EAAS,CACPC,MAAM,EACNC,IAAK,2BACLC,SAAU,QACVC,SAAU,IACVP,SAAS,IAEXgE,QAAQD,MAAM,4BAA6BA,EAC7C,CAAC,QACC9D,GAAW,EACb,CAhCA,MAREE,EAAS,CACPC,MAAM,EACNC,IAAK,gCACLC,SAAU,QACVC,SAAU,IACVP,SAAS,GAmCb,GA8IeA,EAAUoG,EAAAA,cAACqC,EAAAA,EAAO,MAAM,mBAE1B9J,EAAM+J,UACLtC,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,QAAQa,GAAI,CAAEZ,MAAO,MAAO0B,WAAY,SAAU,4DAMzEzI,EAAME,MACLgG,EAAAA,cAACwC,EAAAA,EAAe,CACdC,WAAS,EACT7I,QAASE,EAAMF,QACfO,SAAUL,EAAMK,SAChBD,SAAUJ,EAAMI,SAChBwD,QAAS5D,EAAMG,UAOtB,C,+JCxcJ,MAAMyI,EAAoCA,EAC/CC,cACAC,oBAGA,MAAOC,EAAgBC,IAAqBlK,EAAAA,EAAAA,UAA6B,OAClEgB,EAASC,IAAcjB,EAAAA,EAAAA,WAAS,IAChCmK,EAASC,IAAcpK,EAAAA,EAAAA,WAAS,GAGjCqK,EADoB1J,OAAe2J,QACfC,OAAeC,UAKnCC,EAA0B,OAC1BC,EAAmB,UA0DzB,OAlBAzF,EAAAA,EAAAA,YAAU,KACUjD,WAChB,IACE,MAAM0C,OArCqB1C,WAC/B,IAEE,GAAIrB,OAAOC,SAASd,KAAK+C,SAAS,SAEhC,OADA5B,GAAW,GACJ,CAAEoJ,SAAU,OAAQM,YAAa,MAAOC,WAAY,MAAOC,IAAK,MAGzE,MAAMC,EAAW,+DAA+DT,IAC1EU,EAAuB,CAC3BhH,OAAQ,MACRE,QAAS,CACP,kBAAmBoG,EACnB,eAAgB,qBAId/F,QAAiBC,MAAMuG,EAAUC,GAEvC,IAAKzG,EAASM,GAEZ,YADAoG,EAAAA,EAAQC,IAAI,uBAAuB3G,EAAS4G,UAI9C,MAAMxG,QAAaJ,EAASK,OAE5B,OADA1D,GAAW,GACJyD,CACT,CAAE,MAAOK,GAGP,OAFA9D,GAAW,QACX+J,EAAAA,EAAQC,IAAI,gBAAgBlG,IAE9B,GAM2CoG,GACvCjB,EAAkBxF,GACdA,EAAKiG,cAAgBF,GACvBT,EAAc,eAAgB,OAAQ,iCAEpCtF,EAAKkG,YAAkC,QAApBlG,EAAKkG,YAC1BR,GAAW,EAEf,CAAE,MAAOrF,GACPiG,EAAAA,EAAQC,IAAI,mCAAmClG,IACjD,GAEFqG,EAAW,GACV,IAGDhE,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACQ,QAAS,GACvBV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,EAAGqB,GAAI,CAAEwC,aAAc,SAEpCjE,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,yBACHC,OAAO,yBACPC,UAAQ,EACRzD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,UACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KACR,2BAA2B0C,MAGhCrD,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACPvG,EAAUoG,EAAAA,cAACqC,EAAAA,EAAO,MACjBrC,EAAAA,cAACW,EAAAA,EAAU,CAAC5D,KACViD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,OACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KACRkC,GAAgBU,aAAe,gCAAgCV,EAAeU,gBAGlFV,GAAgBU,cAAgBF,GACjCrD,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACkE,EAAAA,EAAI,CAACnH,KAAK,UAAUoH,SAAS,QAAQtD,MAAM,UAAUuD,QAAQ,kDAMxEpE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,EAAGiE,aAAa,cAC7BrE,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAYgB,UAAWA,KAAOrI,OAAO7B,KAAK,qFAAsF,SAAS,GAAG,wCAI9JsI,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,EAAGiE,aAAa,cAC7BrE,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAYgB,UAAWA,KAAOrI,OAAO7B,KAAK,sFAAuF,SAAS,GAAG,8CAOrKsI,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GAAIqB,GAAI,CAAE6C,OAAQ,UAE/BvB,GAAW/C,EAAAA,cAACK,EAAAA,EAAI,CAChBC,GAAG,iBACHC,OAAO,uBACPC,UAAQ,EACRzD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,UACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAAQ,sFAI9BZ,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KACR,2BAA2B2C,MAGhCtD,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACPvG,EAAUoG,EAAAA,cAACqC,EAAAA,EAAO,MACjBrC,EAAAA,cAACW,EAAAA,EAAU,CAAC5D,KACViD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,OACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KACRkC,GAAgBW,YAAc,gCAAgCX,EAAeW,eAGjFX,GAAgBW,aAAeF,GAChCtD,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACkE,EAAAA,EAAI,CAACnH,KAAK,UAAUoH,SAAS,QAAQtD,MAAM,UAAUuD,QAAQ,sDAMxEpE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,EAAGiE,aAAa,cAC7BrE,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAYgB,UAAWA,KAAOrI,OAAO7B,KAAK,gFAAiF,SAAS,GAAI,wCAI1JsI,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,EAAGiE,aAAa,cAC7BrE,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAYgB,UAAWA,KAAOrI,OAAO7B,KAAK,iFAAkF,SAAS,GAAI,+CAQnKsI,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GAEbJ,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,gCACHC,OAAO,4BACPC,UAAQ,EACRzD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,SAASC,QAAS,GAC1CV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,CAAC4D,UAAU,OACpBvE,EAAAA,cAACwE,EAAAA,EAAI,CAAC5D,QAAQ,QAAQ6D,UAAU,QAAQ7C,UAhKxB8C,KAC9BnL,OAAO7B,KAP4B,0MAOO,SAAS,GA+JuC,iCAG5EsI,EAAAA,cAAA,UACEA,EAAAA,cAAA,UAAI,4EACJA,EAAAA,cAAA,UAAI,wFACJA,EAAAA,cAAA,UAAI,+FACJA,EAAAA,cAAA,UAAI,uDACJA,EAAAA,cAAA,UAAI,wUAGJA,EAAAA,cAAA,UAAI,2CACJA,EAAAA,cAAA,UAAI,eACJA,EAAAA,cAAA,UAAI,oJACJA,EAAAA,cAAA,UAAI,wJAQb,C,8QC5JX,IAjD2B2E,KACzB,MAAM,cAAEC,IAAkBC,EAAAA,EAAAA,MACnBC,EAAwBC,IAA0BC,EAAAA,EAAAA,GAAe,2BAExE,IAAKJ,EAAc,mCACjB,OACE5E,EAAAA,cAACiF,EAAAA,EAAK,CAACC,QAAM,EAACtE,QAAQ,WAAW1G,SAAS,UAAU6C,KAAK,mDAAmDrF,MAAM,IAoBtH,OACEsI,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,gCACHvD,KACEgI,EACE/E,EAAAA,cAACqC,EAAAA,EAAO,MACRrC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACmF,EAAAA,GAAmB,KAtBrBP,EAAc,mCACnB5E,EAAAA,cAACoF,EAAAA,EAAW,MAEZpF,EAAAA,cAACiF,EAAAA,EAAK,CAACC,QAAM,EAACtE,QAAQ,WAAW1G,SAAS,OAAO6C,KAAK,8EAA8ErF,MAAM,KAsBpIsI,EAAAA,cAAA,WAEE8E,GACA9E,EAAAA,cAACmF,EAAAA,GAAmB,KApBvBP,EAAc,iCACnB5E,EAAAA,cAACqF,EAAAA,EAAU,MAEXrF,EAAAA,cAACiF,EAAAA,EAAK,CAACC,QAAM,EAACtE,QAAQ,WAAW1G,SAAS,OAAO6C,KAAK,uEAAuErF,MAAM,OAuBnI,C,kOCqgBN,IAjhBoB0N,KAClB,MAAOE,EAASC,IAAc3M,EAAAA,EAAAA,UAAS,KACjC,SAAEmB,IAAayL,EAAAA,EAAAA,MACdC,EAAwBC,IAA6B9M,EAAAA,EAAAA,UAAS,KAC9D+M,EAA2BC,IAAgChN,EAAAA,EAAAA,WAAS,IACpEiN,EAAuBC,IAA4BlN,EAAAA,EAAAA,WAAS,IAC5DmN,EAAsBC,IAA2BC,EAAAA,EAAAA,YACtDC,EAAAA,EACAC,EAAAA,IAEI,SAAEC,EAAQ,UAAEC,EAAS,SAAEC,IAAazB,EAAAA,EAAAA,MACnC0B,EAAwBC,IAA6B5N,EAAAA,EAAAA,WAAS,GAC/D6N,EAAsB,mCACrBC,EAAkBC,IAAuB/N,EAAAA,EAAAA,WAAS,KACvD,MAAMgO,EAAYC,aAAaC,QAAQL,GACvC,OAAqB,OAAdG,GAA0C,SAAdA,CAAoB,IAGnDG,GADUxN,OAAOC,SAASd,KAAK+C,SAAS,aACf,wBAA0B,IAAvC,6BAyCZuL,EAAmBpM,UACvB,IACE,MAAMsC,QAAiB0G,EAAAA,EAAQqD,UAC7B,GAAGF,uBACH,WACAG,EACA,CAAE,OAAU,mBAAoB,eAAgB,mBAAoB,kBAAmBd,GAAUnD,WAE7FxI,QAAgByC,EAASK,OAG7ByI,EAFsB,MAApBvL,GAASqJ,OAEa,CAAEtJ,KAAM,kBAAmBC,QAAS,CAAC,GAErC,CAAED,KAAM,kBAAmBC,WAEvD,CAAE,MAAOkD,GACPiG,EAAAA,EAAQC,IAAI,0CAA0ClG,KACtD5D,EAAS,CACP2D,QAAS,wFACTxD,SAAU,QACViN,UAAWC,KAAKC,OAEpB,IAyBFxJ,EAAAA,EAAAA,YAAU,KAtBWjD,WACnB,IACE,MAAMsC,QAAiB0G,EAAAA,EAAQqD,UAC7B,GAAGF,mBACH,WACAG,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAElD,IAAKhK,EAASM,GACZ,MAAM,IAAIC,MAAMP,EAASsB,YAE3B+G,QAAiBrI,EAASK,OAC5B,CAAE,MAAOI,GACPiG,EAAAA,EAAQC,IAAI,qCAAqClG,KACjD5D,EAAS,CACP2D,QAAS,mFACTxD,SAAU,QACViN,UAAWC,KAAKC,OAEpB,GAIAC,GACAN,IA1EqCpM,WACrC4L,GAA0B,GAC1B,IACE,MAAMtJ,QAAiB0G,EAAAA,EAAQqD,UAC7B,GAAGF,uCAA+CX,GAAUnD,WAC5D,WACAiE,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAElD,IAAKhK,EAASM,GACZ,MAAM,IAAIC,MAAMP,EAASsB,YAE3BoH,QAAmC1I,EAASK,OAC9C,CAAE,MAAOI,GACPiG,EAAAA,EAAQC,IAAI,yDAAyDlG,KACrE5D,EAAS,CACP2D,QAAS,uGACTxD,SAAU,QACViN,UAAWC,KAAKC,OAEpB,CAAC,QACCb,GAA0B,EAC5B,GAqDAe,EAAgC,GAC/B,IAEH,MAqDMC,EAAkB5M,UACtB,MACE6M,OAAQC,EACRC,YAAaC,EACbC,eAAgBC,GACd/B,EAEJnC,EAAAA,EAAQqD,UACN,GAAGF,uBACH,OACA,CACEW,yBACAE,uBACAE,0BACAC,0BAA2B3B,GAAU4B,WAAa,QAClDC,yBAA0B7B,GAAU8B,UAAY,QAChDC,sBAAuB/B,GAAUgC,WAAa,mBAEhD,CAAE,OAAU,mBAAoB,eAAgB,mBAAoB,kBAAmBhC,GAAUnD,WACjG5D,MAAMnC,IACN8I,EAAwB,CAAExL,KAAM,gBAAiBC,SAAS,IACtDyC,EAASM,IACXwJ,IACAlB,GAAyB,GA5EFlL,WAC3B,MAAM,OACJ6M,EACAI,eAAgBC,GACd/B,EAEE9C,EAAWmD,GAAUnD,SAErBoF,EAA+C,sBAA5BP,EAMzBlE,EAAAA,EAAQqD,UACN,GAAGF,qBACH,OACA,CACE9D,WACAqF,YAVgB,UAWhBb,SACAc,aAXiB,KAYjBC,aAXiB,WAYjBC,WAXc,EAYdJ,oBAEF,CAAE,OAAU,mBAAoB,eAAgB,qBAChDhJ,MAAMnC,IACFA,EAASM,IACXkI,EACE,2GAEF3L,EAAS,CACP2D,QAAS,6EACTxD,SAAU,UACViN,UAAWC,KAAKC,SAGlBtN,EAAS,CACP2D,QAAS,0GACTxD,SAAU,QACViN,UAAWC,KAAKC,OAEpB,IACCvH,OAAM,KACP/F,EAAS,CACP2D,QAAS,0GACTxD,SAAU,QACViN,UAAWC,KAAKC,OAChB,GACF,EA2BEqB,IAEA3O,EAAS,CACP2D,QAAS,sFACTxD,SAAU,QACViN,UAAWC,KAAKC,OAEpB,IACCvH,OAAM,KACPkG,EAAwB,CAAExL,KAAM,gBAAiBC,SAAS,IAC1DV,EAAS,CACP2D,QAAS,sFACTxD,SAAU,QACViN,UAAWC,KAAKC,OAChB,GACF,EA4CEsB,EAAuBA,CAACC,EAAiBpO,KAC7C,MAAMkD,EAAmB,WAATlD,EAChB,gGACA,iYAEA,OACEwF,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEqH,OAAQ,SACjB9I,EAAAA,cAACW,EAAAA,EAAU,CACT4D,UAAU,MACV3D,QAAQ,QACR7D,KAAMW,IAERsC,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFsH,gBAAiBC,EAAAA,EAAaC,OAAOC,oBACrCC,WAAY,UACZC,WAAY,QACZC,UAAW,MACXC,YAAa,SAGftJ,EAAAA,cAACW,EAAAA,EAAU,KAAEiI,IAEX,EAyBJW,EAAqBA,IACzBZ,EAAqB,2BAA4B,UAE7Ca,EAAsBA,IAC1Bb,EAAqB,4BAA6B,WAE9Cc,EAA6BA,KACjCC,OA5B0Cd,EA6BxC,qOA5BF5I,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEqH,OAAQ,SACjB9I,EAAAA,cAACW,EAAAA,EAAU,CACT4D,UAAU,MACV3D,QAAQ,QACR7D,KAAK,iGAEPiD,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFsH,gBAAiBC,EAAAA,EAAaC,OAAOC,oBACrCC,WAAY,UACZC,WAAY,QACZC,UAAW,MACXC,YAAa,SAGftJ,EAAAA,cAACW,EAAAA,EAAU,KAAEiI,KAhByBA,KA8BzC,EAEGe,EAAwBA,KAC5B,MAAM,OAAElC,EAAM,YAAEE,EAAW,eAAEE,GAAmB9B,EAChD,OAAQ0B,IAAWE,IAAgBE,CAAc,EAG7C+B,EAAoBA,IACpB7D,EAAqB8D,iBAChBlE,EACL3F,EAAAA,cAAC8J,EAAAA,GAAmB,KAClB9J,EAAAA,cAACiF,EAAAA,EAAK,CACJ8E,aAAW,EACXrS,KAAMgP,EACNxM,SAAS,UACT6C,KAAM0I,EACN7N,UAAWA,IAAM+O,GAAoB,GACrCqD,OACEhK,EAAAA,cAAC0B,EAAAA,EAAM,CACLE,UAAWA,KACT+E,GAAoB,GACpBE,aAAaoD,QAAQxD,EAAqB,QAAQ,EAEpD7F,QAAQ,QACT,uBAOPZ,EAAAA,cAACkK,EAAAA,GAAoB,KACnBlK,EAAAA,cAACiF,EAAAA,EAAK,CAACvN,MAAI,EAACwC,SAAS,OAAO6C,KAAM0I,KAI/BzF,EAAAA,cAAA,YAILmK,EAAuBA,KApUvBpE,EAAqB8D,kBAMrBnE,EALGC,EAMD,oEAJA,2GAmUCI,EAAqB8D,iBAC1B7J,EAAAA,cAAA,YAEAA,EAAAA,cAAA,WACEA,EAAAA,cAACoK,EAAAA,GAAkB,KACjBpK,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SACEgI,KACA5D,EAAqB8D,kBACrBlE,EAEF/D,UAAWA,KACTkE,GAAyB,EAAK,GAEjC,cAQHuE,EAAqBA,IACjBtE,EAAqB8D,iBAG3B7J,EAAAA,cAACmF,EAAAA,GAAmB,KAClBnF,EAAAA,cAAA,WACEA,EAAAA,cAACW,EAAAA,EAAU,KAACX,EAAAA,cAAA,SAAG,mBAEjBA,EAAAA,cAAA,WACEA,EAAAA,cAACW,EAAAA,EAAU,KAAE,GAAGoF,EAAqBuE,sBAAsBvE,EAAqBwE,sBAAsBxE,EAAqByE,oBAE7HxK,EAAAA,cAAA,WACEA,EAAAA,cAACW,EAAAA,EAAU,KA1YD8J,EAACC,EAA2BC,EAAgBrE,IACvDsE,KAAKC,eAAeF,EAAQ,CACjCG,IAAK,UACLC,MAAO,UACPC,KAAM,UACNC,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,SAAU9E,EACV+E,aAAc,UACbC,OAAO,IAAIlE,KAAKmE,OAAOb,KAgYLD,CAAY1E,EAAqByF,YAAanF,EAAWC,MAV1EtG,EAAAA,cAAAA,EAAAA,SAAA,MAgBEyL,EAA8BA,IAClC1F,EAAqB2F,WACnB1L,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFkK,YAAa,SAGf3L,EAAAA,cAACqC,EAAAA,EAAO,CAACuJ,KAAK,WAGhB5L,EAAAA,cAAAA,EAAAA,SAAA,MAGE6L,EAAYA,IAChB7L,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,WACEA,EAAAA,cAACW,EAAAA,EAAU,KAAC,4IAEZX,EAAAA,cAACW,EAAAA,EAAU,KAAC,oCAGdX,EAAAA,cAACmF,EAAAA,GAAmB,KAClBnF,EAAAA,cAACW,EAAAA,EAAU,KAACX,EAAAA,cAAA,SAAG,qBAAqB,IAAE+F,EAAqB0B,QAC3DzH,EAAAA,cAACW,EAAAA,EAAU,KAACX,EAAAA,cAAA,SAAG,2BAA2B,IAAE+F,EAAqB4B,aACjE3H,EAAAA,cAACW,EAAAA,EAAU,KAACX,EAAAA,cAAA,SAAG,8BAA8B,IAAE+F,EAAqB8B,gBACpE7H,EAAAA,cAACW,EAAAA,EAAU,KAACX,EAAAA,cAAA,SAAG,sBAAsB,IAAEoG,GAAU4B,UAAU,IAAE5B,GAAU8B,SAAS,KAAG9B,GAAUgC,UAAU,OAKvG0D,EACJ9L,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC4J,EAAiB,MAClB5J,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEwC,aAAc,SACvBjE,EAAAA,cAACW,EAAAA,EAAU,KAAC,uDAEdX,EAAAA,cAAC+L,EAAAA,GAAM,CACLjQ,UAAQ,EACR6F,SAAUoE,EAAqB8D,iBAC/B7I,MAAM,2BACNQ,YAAY,aACZP,MAAO8E,EAAqB0B,QAAU,GACtCvG,WAAaC,IACX6E,EAAwB,CACtBxL,KAAM,YACNC,QAAU0G,EAAEE,OAAOJ,OAAiB,IACpC,GAIFqE,EAAQ0G,OAAOC,KAAK9L,GAClBH,EAAAA,cAACkM,EAAAA,GAAU,CAACC,IAAKhM,EAAMc,MAAOd,GAC3BA,MAKTH,EAAAA,cAACuJ,EAAkB,MACnBvJ,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6F,SAAUoE,EAAqB8D,iBAC/B7I,MAAM,4BACNE,WAAYA,EAAGG,aACb2E,EAAwB,CACtBxL,KAAM,iBACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8E,EAAqB4B,aAAe,KAE7C3H,EAAAA,cAACwJ,EAAmB,MACpBxJ,EAAAA,cAAC+L,EAAAA,GAAM,CACLjQ,UAAQ,EACR6F,SAAUoE,EAAqB8D,iBAC/B7I,MAAM,4BACNQ,YAAY,aACZP,MAAO8E,EAAqB8B,gBAAkB,GAC9C3G,WAAaC,IACX6E,EAAwB,CACtBxL,KAAM,oBACNC,QAAU0G,EAAEE,OAAOJ,OAAiB,IACpC,GAGJjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,cAAa,cAC/BjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,qBAAoB,sBAExCjB,EAAAA,cAACyJ,EAA0B,MAC3BzJ,EAAAA,cAACmK,EAAoB,MACrBnK,EAAAA,cAACqK,EAAkB,MACnBrK,EAAAA,cAACoM,EAAAA,EAAK,CACJ9L,GAAG,uBACH5I,KAAMmO,EACNtF,OACEP,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFtJ,QAAS,OACTkU,WAAY,SACZC,eAAgB,kBAGlBtM,EAAAA,cAACuM,EAAAA,EAAU,KAAC,uDAGZvM,EAAAA,cAACyL,EAA2B,QAIlC1O,KAAMiD,EAAAA,cAAC6L,EAAS,MAChBW,OACExM,EAAAA,cAACyM,EAAAA,EAAY,KACXzM,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAUoE,EAAqB2F,WAC/B9K,QAAQ,WACRgB,UAAWA,IAAMkE,GAAyB,IAC3C,UAGD9F,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAUoE,EAAqB2F,WAC/B9J,UAAWA,IA7SKhH,WAC1B,MACE6M,OAAQC,EACRC,YAAaC,EACbC,eAAgBC,GACd/B,EAEJC,EAAwB,CAAExL,KAAM,gBAAiBC,SAAS,IAC1DmJ,EAAAA,EAAQqD,UACN,GAAGF,gCACH,OACA,CACEW,yBACAE,uBACAE,0BACAC,0BAA2B3B,GAAU4B,WAAa,QAClDC,yBAA0B7B,GAAU8B,UAAY,QAChDC,sBAAuB/B,GAAUgC,WAAa,mBAEhD,CAAE,OAAU,mBAAoB,eAAgB,qBAChD/I,MAAMnC,IACFA,EAASM,GACXgK,KAEAxB,EAAwB,CAAExL,KAAM,gBAAiBC,SAAS,IAC1DV,EAAS,CACP2D,QAAS,qFACTxD,SAAU,QACViN,UAAWC,KAAKC,QAEpB,IACCvH,OAAM,KACPkG,EAAwB,CAAExL,KAAM,gBAAiBC,SAAS,IAC1DV,EAAS,CACP2D,QAAS,qFACTxD,SAAU,QACViN,UAAWC,KAAKC,OAChB,GACF,EAuQyBqF,IAClB,oBAKL9U,UAAWA,IAAMkO,GAAyB,MAKhD,OACE9F,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,qBACHC,OAAO,gCACPxD,KAAMwJ,EAAyBvG,EAAAA,cAACqC,EAAAA,EAAO,MAAMyJ,EAC7ClL,QAAQ,YACR,C,uCCvjBN,IAAewE,EAAW,C,uNCihB1B,IAvfmBC,KACjB,MAAM,SAAEtL,IAAayL,EAAAA,EAAAA,MACdmH,EAAoBC,IAAyBhU,EAAAA,EAAAA,WAAS,IACtDiU,EAAwBC,IAA6BlU,EAAAA,EAAAA,WAAS,IAC9DmU,EAAiBC,IAAsB/G,EAAAA,EAAAA,YAC5CgH,EAAAA,EACAC,EAAAA,GAGInG,GADUxN,OAAOC,SAASd,KAAK+C,SAAS,aACf,wBAA0B,IAAvC,6BAEZ0R,EAAaC,IACjB,MAAM,YAAEC,GAAgBN,EACxB,OAAOM,EAAY5R,SAAS2R,EAAU,EAOlCE,EAAkB1S,UACtB,IACE,MAAMsC,QAAiB0G,EAAAA,EAAQqD,UAC7B,GAAGF,2BACH,WACAG,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAElD8F,EAAmB,CAAExS,KAAM,iBAAkBC,cAAeyC,EAASK,QACvE,CAAE,MAAOI,GACPiG,EAAAA,EAAQC,IAAI,yCAAyClG,IACvD,IA+GFE,EAAAA,EAAAA,YAAU,KACRyP,GAAiB,GAChB,IAEH,MAAMC,EAAwBA,KAC5BX,GAAuBD,GACvBW,IAnIAN,EAAmB,CAAExS,KAAM,eAoIR,EAGfgT,EAAuBA,KAC3B,MAAM,aACJC,EAAY,UACZC,EAAS,SACTC,EAAQ,SACRC,EAAQ,KACRC,EAAI,UACJpF,EAAS,0BACTqF,GACEf,GAEFU,aAAcM,EACdL,UAAWM,EACXL,SAAUM,EACVL,SAAUM,EACVL,KAAMM,EACN1F,UAAW2F,EACXN,0BAA2BO,GACzBtB,EAAgBuB,iBAEpB,OACEb,IAAiBM,GACjBL,IAAcM,GACdL,IAAaM,GACbL,IAAaM,GACbL,IAASM,GACT1F,IAAc2F,GACdN,IAA8BO,CAIpB,EAGRE,EAA2BA,KAC/B,MAAM,aAAEd,EAAY,UAAEC,EAAS,SAAEC,EAAQ,SAAEC,EAAQ,KAAEC,EAAI,UAAEpF,GACzDsE,EAEF,OACGU,IACAC,IACAC,IACAC,IACAC,IACApF,CAAS,EAIR+F,EAAgB7B,EACpB3M,EAAAA,cAACoK,EAAAA,GAAkB,KACjBpK,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,UAAW6L,KAA0Be,IACrC3M,UAAWA,KA1KQ6M,MACvBzB,EAAmB,CAAExS,KAAM,cAC3B,MACEmT,SAAUe,EAAQ,SAClBd,EAAQ,KACRC,EAAI,UACJpF,EAAS,UACTiF,EACAD,aAAckB,GACZ5B,EAEEhQ,EAAO,CACX2R,WACAd,WACAC,OACApF,YACAiF,YACAiB,WACAC,mBAAoB7B,EAAgBe,2BAGtC,IAAI5Q,EAEFA,EADE6P,EAAgBuB,iBAAiBO,OACxBjL,EAAAA,EAAQqD,UACjB,GAAGF,2BACH,MACAhK,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAGvC6G,EAAAA,EAAQqD,UACjB,GAAGF,2BACH,OACAhK,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAIpDG,EAASmC,MAAK,KACZ2N,EAAmB,CAAExS,KAAM,uBAC3BT,EAAS,CACP2D,QAAS,sDACTxD,SAAU,UACViN,UAAWC,KAAKC,QAElBuF,GAAuBD,GAGvBW,GAAiB,IAChBxN,OAAM,KACPkN,EAAmB,CAAExS,KAAM,oBAC3BT,EAAS,CACP2D,QAAS,0DACTxD,SAAU,QACViN,UAAWC,KAAKC,OAChB,GACF,EAmHIoH,EAAkB,GAErB,QAGDzO,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFc,WAAY,SAGdvC,EAAAA,cAAC0B,EAAAA,EAAM,CACLE,UAAWA,MACJ2M,KAA8Bf,IACjCV,GAA0B,GAE1BS,GACF,GAEH,YAMLvN,EAAAA,cAAAA,EAAAA,SAAA,MAGI8O,EAAwBnC,EAU5B3M,EAAAA,cAAAA,EAAAA,SAAA,MATAA,EAAAA,cAAC0B,EAAAA,EAAM,CACLd,QAAQ,WACRgB,UAAWA,KACTgL,GAAuBD,EAAmB,GAE7C,QAuCGoC,EAAmBrR,GAErBsC,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACF4K,WAAY,SACZlU,QAAS,OACT6W,cAAe,SACf1C,eAAgB,SAChB2C,cAAe,SAGjBjP,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEwC,aAAc,QAAUvG,GACnCsC,EAAAA,cAACqC,EAAAA,EAAO,CAACzB,QAAQ,YAKjBkL,EACJ9L,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,WACEA,EAAAA,cAACW,EAAAA,EAAU,KAAC,mSAMdX,EAAAA,cAACkP,EAAAA,GAA6B,KAC5BlP,EAAAA,cAAA,WACEA,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFtJ,QAAS,OACTwT,YAAa,OACbU,WAAY,WAGdrM,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,YACjBxL,UAAWgL,EACXnS,KAAK,OACLwG,MAAM,0BACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,kBACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBU,eAEzBzN,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACF0N,UAAW,MACXC,OAAQ,UACRjX,QAAS,OACT8W,cAAe,MACf3F,YAAa,SAGftJ,EAAAA,cAACqP,EAAAA,EAAO,CACNzX,UAAWA,OACXC,SAAUA,OACVF,IAAI,GACJF,MAAOuI,EAAAA,cAACW,EAAAA,EAAU,CAAC5D,KAAK,+IAExBiD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACkE,EAAAA,EAAI,CAACtD,QAAQ,WAAW7D,KAAK,OAAOoH,SAAS,gBAO1DnE,EAAAA,cAAA,WACEA,EAAAA,cAACkP,EAAAA,GAA6B,KAC5BlP,EAAAA,cAACsP,EAAAA,GAA0B,KACzBtP,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,aACjBxL,UAAWgL,EACXnS,KAAK,OACLwG,MAAM,uBACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,eACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBW,aAG3B1N,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFtJ,QAAS,SAGX6H,EAAAA,cAACwE,EAAAA,EAAI,CACHpC,KAAK,yHACLf,OAAO,SACPoD,UAAU,OACV5D,MAAOmI,EAAAA,EAAaC,OAAOsG,SAE3BvP,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,WAAU,wBAKtCZ,EAAAA,cAAA,WACEA,EAAAA,cAACkP,EAAAA,GAA6B,KAC5BlP,EAAAA,cAACsP,EAAAA,GAA0B,KACzBtP,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,SACjBxL,UAAWgL,EACXnS,KAAK,OACLwG,MAAM,sBACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,cACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBY,YAG3B3N,EAAAA,cAACsP,EAAAA,GAA0B,KACzBtP,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,SACjBxL,UAAWgL,EACXnS,KAAK,WACLwG,MAAM,0BACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,cACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBa,aAI7B5N,EAAAA,cAACkP,EAAAA,GAA6B,KAC5BlP,EAAAA,cAACsP,EAAAA,GAA0B,KACzBtP,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,YACjBxL,UAAWgL,EACXnS,KAAK,OACLwG,MAAM,sBACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,UACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBc,QAG3B7N,EAAAA,cAACsP,EAAAA,GAA0B,KACzBtP,EAAAA,cAACc,EAAAA,EAAS,CACRhF,UAAQ,EACR6B,MAAOwP,EAAU,aACjBxL,UAAWgL,EACXnS,KAAK,OACLwG,MAAM,sBACNE,WAAYA,EAAGG,aACb2L,EAAmB,CACjBxS,KAAM,eACNC,QAAS4G,EAAOJ,OAChB,EAEJA,MAAO8L,EAAgBtE,cAI7BzI,EAAAA,cAACkP,EAAAA,GAA6B,KAC5BlP,EAAAA,cAACwP,EAAAA,EAAQ,CACPC,QAAS1C,EAAgBe,0BACzBnM,UAAWgL,GAAsB4B,IACjCvN,MAAM,8BACNE,WAAYA,KACL6L,EAAgBe,0BAGnBd,EAAmB,CAAExS,KAAM,6BAhXdI,WACzBoS,EAAmB,CAAExS,KAAM,gBAAiBC,SAAS,IACrD,MACEkT,SAAUe,EAAQ,SAClBd,EAAQ,KACRC,EAAI,UACJpF,EAAS,UACTiF,EACAD,aAAckB,GACZ5B,EAEJnJ,EAAAA,EAAQqD,UACN,GAAGF,oCACH,OACA,CACE2H,WACAd,WACAC,OACApF,YACAiF,YACAiB,YAEF,CAAE,OAAU,mBAAoB,eAAgB,qBAEjDtP,MAAMnC,GAAaA,EAASK,SAC5B8B,MAAM/B,IACAA,EAAKoS,OAWR1C,EAAmB,CAAExS,KAAM,gBAAiBC,SAAS,IACrDuS,EAAmB,CAAExS,KAAM,+BAX3BT,EAAS,CACP2D,QAAS,2DACTxD,SAAU,QACViN,UAAWC,KAAKC,QAElB2F,EAAmB,CACjBxS,KAAM,iBACNC,QAAS6C,EAAKqS,UAKlB,IACC7P,OAAM,KACP/F,EAAS,CACP2D,QAAS,iEACTxD,SAAU,QACViN,UAAWC,KAAKC,OAChB,GACF,EAgUUuI,EAGF,MAKPpB,GAIL,OACExO,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,uBACHvD,KAAM+O,EACNvL,OAAO,sCACPsP,aAAcf,EACdlO,QAAQ,aAGVZ,EAAAA,cAACoM,EAAAA,EAAK,CACJ1U,KAAMqV,EAAgBrB,WACtBpL,GAAG,4BACH1I,UAAWA,OACXmF,KAAMgS,EAAgB,6CAExB/O,EAAAA,cAACoM,EAAAA,EAAK,CACJ1U,KAAMqV,EAAgB+C,OACtBxP,GAAG,wBACH1I,UAAWA,OACXmF,KAAMgS,EAAgB,yCAExB/O,EAAAA,cAACoM,EAAAA,EAAK,CACJ1U,KAAMmV,EACNvM,GAAG,qBACH1I,UAAWA,OACXmF,KA1PFiD,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEqH,OAAQ,SAAU,8DAE3B9I,EAAAA,cAACoK,EAAAA,GAAkB,KACjBpK,EAAAA,cAAC0B,EAAAA,EAAM,CACLd,QAAQ,OACRgB,UAAWA,KACTkL,GAA0B,EAAM,GAEnC,oBAGD9M,EAAAA,cAAC6I,EAAAA,EAAG,CACFpH,GAAI,CACFc,WAAY,SAGdvC,EAAAA,cAAC0B,EAAAA,EAAM,CACLE,UAAWA,KACT2L,IACAT,GAA0B,EAAM,GAEnC,uBAuON,C,sCC7gBP,IAAezH,EAAU,C,gLCWzB,MAAM0K,EAAiC,CACrCtI,OAAQ,GACRE,YAAa,GACbE,eAAgB,GAChByC,mBAAoB,GACpBC,kBAAmB,GACnBC,eAAgB,GAChBgB,YAAa,EACb3B,kBAAkB,EAClB6B,YAAY,GAGRsE,EAAUA,CAACzX,EAAyByR,KACxC,OAAQA,EAAOxP,MACb,IAAK,YACH,MAAO,IAAKjC,EAAOkP,OAAQuC,EAAOvP,SACpC,IAAK,iBACH,MAAO,IAAKlC,EAAOoP,YAAaqC,EAAOvP,SACzC,IAAK,oBACH,MAAO,IAAKlC,EAAOsP,eAAgBmC,EAAOvP,SAC5C,IAAK,wBACH,MAAO,IAAKlC,EAAO+R,mBAAoBN,EAAOvP,SAChD,IAAK,uBACH,MAAO,IAAKlC,EAAOgS,kBAAmBP,EAAOvP,SAC/C,IAAK,oBACH,MAAO,IAAKlC,EAAOiS,eAAgBR,EAAOvP,SAC5C,IAAK,iBACH,MAAO,IAAKlC,EAAOiT,YAAaxB,EAAOvP,SACzC,IAAK,sBACH,MAAO,IAAKlC,EAAOsR,iBAAkBG,EAAOvP,SAC9C,IAAK,kBACH,MAAO,IACFlC,EACHkP,OAAQuC,EAAOvP,QAAQgN,OACvBE,YAAaqC,EAAOvP,QAAQkN,YAC5BE,eAAgBmC,EAAOvP,QAAQoN,eAC/ByC,mBAAoBN,EAAOvP,QAAQwV,cACnC1F,kBAAmBP,EAAOvP,QAAQyV,aAClC1F,eAAgBR,EAAOvP,QAAQ0V,UAC/B3E,YAAaxB,EAAOvP,QAAQ2V,iBAC5BvG,iBAAkBwG,QAAQrG,EAAOvP,QAAQ2V,mBAE7C,IAAK,gBACH,MAAO,IACF7X,EACHmT,WAAY1B,EAAOvP,SAEvB,QACE,OAAOlC,EACX,C,gLC7DF,MAAMwX,EAAe,CACnBtC,aAAc,GACdC,UAAW,GACXC,SAAU,GACVC,SAAU,GACVC,KAAM,GACNpF,UAAW,GACXqF,2BAA2B,EAC3BpC,YAAY,EACZoE,QAAQ,EACRQ,iBAAiB,EACjBhC,iBAAkB,CAChBb,aAAc,GACdC,UAAW,GACXC,SAAU,GACVC,SAAU,GACVC,KAAM,GACNpF,UAAW,GACXqF,2BAA2B,EAC3Be,QAAQ,GAEVxB,YAAa,IAGT2C,EAAUA,CAACzX,EAAOyR,KACtB,OAAQA,EAAOxP,MACb,IAAK,kBACH,MAAO,IAAKjC,EAAOkV,aAAczD,EAAOvP,SAC1C,IAAK,eACH,MAAO,IAAKlC,EAAOmV,UAAW1D,EAAOvP,SACvC,IAAK,cACH,MAAO,IAAKlC,EAAOoV,SAAU3D,EAAOvP,SACtC,IAAK,cACH,MAAO,IAAKlC,EAAOqV,SAAU5D,EAAOvP,SACtC,IAAK,UACH,MAAO,IAAKlC,EAAOsV,KAAM7D,EAAOvP,SAClC,IAAK,eACH,MAAO,IAAKlC,EAAOkQ,UAAWuB,EAAOvP,SACvC,IAAK,2BACH,MAAO,IACFlC,EACHuV,2BAA4BvV,EAAMuV,2BAEtC,IAAK,iBACH,MAAO,IACFvV,EACHkV,aAAczD,EAAOvP,QAAQkU,SAC7BjB,UAAW1D,EAAOvP,QAAQiT,UAC1BC,SAAU3D,EAAOvP,QAAQiU,SACzBd,SAAU5D,EAAOvP,QAAQmT,SACzBC,KAAM7D,EAAOvP,QAAQoT,KACrBpF,UAAWuB,EAAOvP,QAAQgO,UAC1BqF,0BAA2B9D,EAAOvP,QAAQmU,mBAC1CN,iBAAkB,CAChBb,aAAczD,EAAOvP,QAAQkU,SAC7BjB,UAAW1D,EAAOvP,QAAQiT,UAC1BC,SAAU3D,EAAOvP,QAAQiU,SACzBd,SAAU5D,EAAOvP,QAAQmT,SACzBC,KAAM7D,EAAOvP,QAAQoT,KACrBpF,UAAWuB,EAAOvP,QAAQgO,UAC1BqF,0BAA2B9D,EAAOvP,QAAQmU,mBAC1CC,SAAU7E,EAAOvP,QAAQkU,WAG/B,IAAK,iBACH,MAAO,IACFpW,EACH8U,YAAarD,EAAOvP,QACpBiR,YAAY,GAEhB,IAAK,cACH,MAAO,IACFnT,EACH8U,YAAa,IAEjB,IAAK,gBACH,MAAO,IACF9U,EACHmT,WAAY1B,EAAOvP,SAEvB,IAAK,YACH,MAAO,IACFlC,EACHuX,QAAQ,GAEZ,IAAK,qBACH,MAAO,IACFvX,EACHuX,QAAQ,EACRQ,iBAAiB,GAErB,IAAK,kBACH,MAAO,IACF/X,EACHuX,QAAQ,EACRQ,iBAAiB,GAErB,QACE,OAAO/X,EACX,C,gMCjGK,MAAM4M,EAAsBoL,EAAAA,EAAOC,GAAG;;EAIhCpG,EAAqBmG,EAAAA,EAAOC,GAAG;;;;EAM/BlB,EAA6BiB,EAAAA,EAAOC,GAAG;;;EAKvCtB,EAAgCqB,EAAAA,EAAOC,GAAG;;EAI1CtG,EAAuBqG,EAAAA,EAAOC,GAAG;;;;EAMjC1G,EAAsByG,EAAAA,EAAOC,GAAG;;;;6SCftC,MAAMC,EAAiBA,KAC5B,MAAMjY,GAAWkY,EAAAA,EAAAA,OACVC,EAAeC,IAAoBhY,EAAAA,EAAAA,UAAS,KAC5CiY,EAAYC,IAAiBlY,EAAAA,EAAAA,UAAc,CAAC,IAC5CgB,EAASC,IAAcjB,EAAAA,EAAAA,WAAS,IAIhCmY,EAAaC,IAAkBpY,EAAAA,EAAAA,WAAS,IACxCqY,EAAWC,IAAgBtY,EAAAA,EAAAA,UAAS,KACpCuY,EAAgBC,IAAqBxY,EAAAA,EAAAA,WAAS,IAC/C,SAAEmB,IAAayL,EAAAA,EAAAA,MACd6L,EAAgBC,IAAMtM,EAAAA,EAAAA,GAAe,uBAwB5C,OAJAnH,EAAAA,EAAAA,YAAU,KAlBSjD,WACjB,IACEf,GAAW,GACX,MAAMqD,QAAiB0G,EAAAA,EAAQqD,UAZX,6BAYsC,WAAOC,EAAW,CAAE,OAAU,qBACxF,IAAKhK,EAASM,GAAI,MAAMC,MAAMP,EAASsB,YACvC,MAAM,KAAElB,SAAeJ,EAASK,OAChCuT,EAAcxT,GAAQ,CAAC,GACvBsT,EAAyB,MAARtT,EAAe,GAAKA,EAAKiU,aAAe,QAAU,SAC/DjU,GACF9E,EAAS,CAAEgC,KAAMgX,EAAAA,EAAgB/W,QAAS,CAAEgX,SAAS,IAEzD,CAAE,MAAOC,GACP9N,EAAAA,EAAQC,IAAI6N,EACd,CAAC,QACC7X,GAAW,EACb,GAIA8X,EAAY,GACX,IAGD3R,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACoM,EAAAA,EAAK,CACJ9L,GAAG,gCACH5I,KAAMqZ,EACNnZ,UAAWA,IAAMoZ,GAAe,GAChCY,sBAAoB,EACpB7U,KAAMiD,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,KAAK7D,KAAoB,UAAdkU,EApChB,gEADA,6DAsCrBzE,OACExM,EAAAA,cAACyM,EAAAA,EAAY,KACXzM,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,WAAWe,SAAUwP,EAAgBvP,UAAWA,IAAMoP,GAAe,IAAQ,MAG7FhR,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAUwP,EACVvP,UAAWhH,UACT,IACEwW,GAAkB,GAClB,IAAIlU,QAAiBC,MAAM,kDAC3B,IAAKD,EAASM,GAAI,MAAMC,MAAMP,EAASsB,YACvC,MAAM,eAAEqT,SAAyB3U,EAASK,OAC1C,GAAIsU,EACF9X,EAAS,CACP2D,QAAS,yDACTxD,SAAU,gBAEP,CAEL,GADAgD,QAAiBC,MAAM,6CAA2D,UAAd8T,MAC/D/T,EAASM,GAAI,MAAMC,MAAMP,EAASsB,YACvCwS,GAAe,GACfJ,EAAiBK,EACnB,CACF,CAAE,MAAOS,GACP3X,EAAS,CACP2D,QAASgU,EAAIhU,SAAW,wDACxBxD,SAAU,SAEd,CAAC,QACCkX,GAAkB,EACpB,IAEH,UAOLxX,EACAoG,EAAAA,cAACqC,EAAAA,EAAO,MACRrC,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,oBACHC,OACEP,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,IAAE,EAACK,UAAU,SAASC,QAAS,IAClDV,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACkM,WAAW,SAAS3L,QAAS,GAChDV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,MAAK,2BAA0ByQ,GAAkBrR,EAAAA,cAAC8R,EAAAA,EAAI,CAAClG,KAAK,SAAShK,UAAWA,IAAMrI,OAAOC,SAAS4I,KAAO,oBAAqBpB,MAAOhB,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,YAAW,qBAAgCrI,MAAM,YAE/OyH,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAAQ,uDAG3CZ,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAACmR,UAAW,WAGhCtM,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,GACbF,EAAAA,cAACC,EAAAA,EAAI,CAACkM,IAAI,qBAAqBhM,MAAI,EAACC,GAAI,IACtCJ,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,GACbF,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACgS,EAAAA,EAAW,KACVhS,EAAAA,cAACiS,EAAAA,EAAS,KAAC,oBACXjS,EAAAA,cAACkS,EAAAA,EAAU,CACTC,KAAG,EACHC,aAAczB,EACd1P,MAAO0P,GAEP3Q,EAAAA,cAACqS,EAAAA,EAAgB,CACfpR,MAAM,QACNqR,QAAStS,EAAAA,cAACuS,EAAAA,EAAK,CAAC3G,KAAK,WACrB5K,MAAM,aACNwR,SAAWrR,IACT6P,GAAe,GACfE,EAAa/P,EAAEE,OAAOJ,MAAM,IAGhCjB,EAAAA,cAACqS,EAAAA,EAAgB,CACfpR,MAAM,QACNqR,QAAStS,EAAAA,cAACuS,EAAAA,EAAK,CAAC3G,KAAK,WACrB5K,MAAM,QACNwR,SAAWrR,IACT6P,GAAe,GACfE,EAAa/P,EAAEE,OAAOJ,MAAM,QAMxCjB,EAAAA,cAAA,WACoB,UAAlB2Q,GAA6B3Q,EAAAA,cAACyS,EAAAA,EAAK,CAAC5B,WAAYA,IAC9B,UAAlBF,GAA6B3Q,EAAAA,cAAC0S,EAAAA,EAAS,CAAC7B,WAAYA,SAOjE,C,yOCpJA,MAAM6B,EAAYA,EACvBC,mBAAkB,EAClB9B,aAAa,CAAEnC,SAAU,KAAMd,SAAU,KAAMgF,MAAO,KAAMC,SAAS,OAErE,MAAMra,GAAWkY,EAAAA,EAAAA,OACVhC,EAAUoE,IAAela,EAAAA,EAAAA,UAASiY,EAAWnC,WAC7Cd,EAAUmF,IAAena,EAAAA,EAAAA,UAASiY,EAAWjD,SAAW,WAAa,KACrEgF,EAAOI,IAAYpa,EAAAA,EAAAA,UAASiY,EAAW+B,MAAQ,mBAAqB,KACpEK,EAAcC,IAAmBta,EAAAA,EAAAA,WAAS,IAC1Cua,EAAmBC,IAAwBxa,EAAAA,EAAAA,WAAS,IACpDya,EAAWC,IAAgB1a,EAAAA,EAAAA,UAASiY,EAAWgC,UAC/CU,EAAUC,IAAe5a,EAAAA,EAAAA,WAAS,IAClCkX,EAAQ2D,IAAa7a,EAAAA,EAAAA,WAAS,IAC/B,SAAEmB,IAAayL,EAAAA,EAAAA,KAEfkO,GADUna,OAAOC,SAASd,KAAK+C,SAAS,aACT,wBAA0B,IAAvC,+BAClBkY,EAAkBhB,IAAoBY,EACtCpG,GAAauB,IAAad,IAAagF,EAE7C,OACE5S,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,GACbF,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACc,EAAAA,EAAS,CACRC,WAAS,EACTS,YAAY,WACZR,MAAM,WACNlF,UAAQ,EACR0W,SAAWoB,IACTd,EAAYc,EAAMvS,OAAOJ,OACzBuS,GAAY,EAAK,EAEnBvS,MAAOyN,EACPlU,KAAK,OACLmH,SAAUgR,EACVhV,OAAQ+Q,IAAaiE,EACrBkB,WAAanF,GAAaiE,EAAqD,IAAnC,oCAGhD3S,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACc,EAAAA,EAAS,CACRC,WAAS,EACTS,YAAY,WACZR,MAAM,WACNlF,UAAQ,EACRgY,WAAY,CACVC,aACE/T,EAAAA,cAACgU,EAAAA,EAAc,CAACC,SAAS,OACvBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACLwS,KAAMjB,EAAe,iBAAmB,aACxCrR,UAAWA,IAAMsR,GAAiBD,GAClCtR,SAAUgR,MAIlBH,SAAWoB,IACTb,EAAYa,EAAMvS,OAAOJ,OACzBuS,GAAY,EAAK,EAEnBvS,MAAO2M,EACPpT,KAAMyY,EAAe,OAAS,WAC9BtR,SAAUgR,EACVhV,OAAQiQ,IAAa+E,EACrBkB,WAAajG,GAAa+E,EAA2C,IAAzB,0BAGhD3S,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACc,EAAAA,EAAS,CACRC,WAAS,EACTS,YAAY,iBACZR,MAAM,iBACNlF,UAAQ,EACRgY,WAAY,CACVC,aACE/T,EAAAA,cAACgU,EAAAA,EAAc,CAACC,SAAS,OACvBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACLwS,KAAMf,EAAoB,iBAAmB,aAC7CvR,UAAWA,IAAMwR,GAAsBD,GACvCxR,SAAUgR,MAIlBH,SAAWoB,IACTZ,EAASY,EAAMvS,OAAOJ,OACtBuS,GAAY,EAAK,EAEnBvS,MAAO2R,EACPpY,KAAM2Y,EAAoB,OAAS,WACnCxR,SAAUgR,EACVhV,OAAQiV,IAAUD,EAClBkB,WAAajB,GAAUD,EAAiD,IAA/B,gCAG7C3S,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACgS,EAAAA,EAAW,CAACzN,UAAU,WAAW3D,QAAQ,WAAWe,SAAUgR,GAC7D3S,EAAAA,cAACiS,EAAAA,EAAS,KAAC,eACXjS,EAAAA,cAACqS,EAAAA,EAAgB,CACfC,QACEtS,EAAAA,cAACmU,EAAAA,EAAM,CACL1E,QAAS4D,EACTb,SAAUA,CAAC4B,EAAG3E,KACZ6D,EAAa7D,GACb+D,GAAY,EAAK,EAEnB7R,SAAUgR,IAGd3R,MAAM,OAIZhB,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACsB,GAAI,CAAE4H,UAAW,QAAUhF,aAAa,WAAWgI,WAAW,SAASgI,QAAQ,YAClGrU,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEwS,SAAU,aACnBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACL3E,KAAK,OACL4E,SAAUwL,GAAa2C,GAAU6D,EACjC/R,UAAWhH,UACT,IACE6Y,GAAU,GAEV,MAAMvW,QAAiB0G,EAAAA,EAAQqD,UAC7ByM,EACA,MACA,CACEhF,WACAd,WACAgF,QACAS,UAAW,GAAGA,IACdiB,cAAe,SAEjB,CACE,eAAgB,qBAIpB,IAAKpX,EAASM,GAAI,MAAMC,MAAM,uBAE9B,MAAM,OAAEqG,EAAM,QAAEpG,SAAkBR,EAASK,OAE3C,GAAe,UAAXuG,EAAoB,MAAMrG,MAAMC,GAEpClF,EAAS,CAAEgC,KAAMgX,EAAAA,EAAgB/W,QAAS,CAAEgX,SAAS,KAErD1X,EAAS,CACP2D,QAAS,kCACTxD,SAAU,WAEd,CAAE,MAAOwX,GACP9N,EAAAA,EAAQC,IAAI6N,GACZ3X,EAAS,CACP2D,QAASgU,EAAIhU,SAAW,2BACxBxD,SAAU,SAEd,CAAC,QACCuZ,GAAU,EACZ,KAIF3D,GACA9P,EAAAA,cAACuU,EAAAA,EAAgB,CACf3I,KAAM,GACNnK,GAAI,CACFZ,MAAOmI,EAAAA,EAAaC,OAAOuL,QAC3BP,SAAU,WACVQ,IAAK,MACLC,KAAM,OACNrL,UAAW,QACX9G,WAAY,cAOnB,C,+LChLJ,MAAMkQ,EAAQA,EACnBE,mBAAkB,EAClB9B,aAAa,CAAEU,cAAc,EAAOsB,SAAS,OAE7C,MAAMra,GAAWkY,EAAAA,EAAAA,OACViE,EAAYC,IAAiBhc,EAAAA,EAAAA,UAASiY,EAAWgC,UACjDgC,EAAaC,IAAkBlc,EAAAA,EAAAA,WAAUiY,EAAWU,eACpD3X,EAASC,IAAcjB,EAAAA,EAAAA,WAAS,IAChCkB,EAAOC,IAAYnB,EAAAA,EAAAA,UAAS,CACjCoB,MAAM,EACNC,IAAK,GACLC,SAAU,YAGN6a,EAAgB,sCADIxb,OAAe2J,QAC4BC,OAAe6R,8BAC9E5S,EAAO,+CAA+CuS,WAAoBpb,OAAOC,SAASkG,UAAYqV,IA8D5G,OArBAlX,EAAAA,EAAAA,YAAU,KACR,GAAItE,OAAOC,SAAS6D,OAAQ,CAC1BtD,EAAS,IAAKD,EAAOE,MAAM,IAC3B,MACMib,EADS,IAAIhX,gBAAgB1E,OAAOC,SAAS6D,QACvBc,IAAI,gBAE9BpE,EADEkb,EACO,CACPjb,MAAM,EACNC,IAAKgb,EACL/a,SAAU,WAGH,CACPF,MAAM,EACNC,IAAKgb,EACL/a,SAAU,SAGhB,IACC,CAACX,OAAOC,SAAS6D,SAGlB2C,EAAAA,cAAAA,EAAAA,SAAA,KAEIpG,EACAoG,EAAAA,cAACqC,EAAAA,EAAO,MACRrC,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,UACtB3G,EAAME,MAAQgG,EAAAA,cAACwC,EAAAA,EAAe,CAACtI,SAAUJ,EAAMI,SAAUwD,QAAS5D,EAAMG,MAC1E+F,EAAAA,cAACC,EAAAA,EAAI,CAACkM,IAAI,oBAAoBhM,MAAI,EAACC,GAAI,GACrCJ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,GAAG,OAAOiE,aAAa,cAC1CrE,EAAAA,cAACC,EAAAA,EAAI,CAACkM,IAAI,yBAAyBhM,MAAI,GACrCH,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,UAAWkT,EACXzS,KAAMA,GACP,WAIHpC,EAAAA,cAACC,EAAAA,EAAI,CAACkM,IAAI,0BAA0BhM,MAAI,GACtCH,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAUkT,EACVjT,UAAWA,IAhFFhH,WACvB,IACEf,GAAW,GACXE,EAAS,IAAKD,EAAOE,MAAM,IAE3B,IAAIkD,QAAiBC,MAAM,kDAC3B,IAAKD,EAASM,GAAI,MAAMC,MAAMP,EAASsB,YACvC,MAAM,eAAEqT,SAAyB3U,EAASK,OAE1C,GAAIsU,EACFhY,GAAW,GACXE,EAAS,CACPC,MAAM,EACNC,IAAK,yDACLC,SAAU,gBAEP,CAEL,GADAgD,QAAiBC,MAAM,yCAClBD,EAASM,GAAI,MAAMC,MAAMP,EAASsB,YACvC3E,GAAW,GACXrB,EAAS,CAAEgC,KAAMgX,EAAAA,EAAgB/W,QAAS,CAAEgX,SAAS,KACrD1X,EAAS,CACPC,MAAM,EACNC,IAAK,+CACLC,SAAU,YAEZ4a,GAAe,EACjB,CACF,CAAE,MAAOpD,GACP9N,EAAAA,EAAQC,IAAI6N,GACZ7X,GAAW,GACXE,EAAS,CACPC,MAAM,EACNC,IAAK,8DACLC,SAAU,SAEd,GA4C+Bgb,IAClB,aAMPlV,EAAAA,cAACC,EAAAA,EAAI,CAACkM,IAAI,+BAA+BhM,MAAI,EAACC,GAAI,GAChDJ,EAAAA,cAACgS,EAAAA,EAAW,CAACzN,UAAU,WAAW3D,QAAQ,WAAWe,SAAUgR,GAC7D3S,EAAAA,cAACiS,EAAAA,EAAS,KAAC,eACXjS,EAAAA,cAACqS,EAAAA,EAAgB,CACfC,QACEtS,EAAAA,cAACmU,EAAAA,EAAM,CACL1E,QAASkF,EACTnC,SAAUA,CAAC4B,EAAG3E,IAAYmF,EAAcnF,GACxC9N,SAAUgR,IAEd3R,MAAM,QAMf,C,qNCpHP,MAAMmU,EAAc,CAClB,EAAK,UACL,EAAK,UACL,EAAK,UACL,EAAK,gBACL,EAAK,iBACL,EAAK,cACL,EAAK,UACL,EAAK,cACL,EAAK,eACL,EAAK,gBACL,GAAM,UACN,GAAM,iBACN,GAAM,cACN,GAAM,eACN,GAAM,WACN,GAAM,iBACN,GAAM,sBACN,GAAM,kBACN,GAAM,wBACN,GAAM,4BACN,GAAM,SACN,GAAM,aACN,GAAM,uBACN,GAAM,aACN,GAAM,iBACN,GAAM,iBACN,GAAM,YACN,GAAM,gBACN,GAAM,kBACN,GAAM,uBAGFC,EAAe,CACnB,EAAK,gBACL,EAAK,UACL,EAAK,WACL,EAAK,iBACL,EAAK,kBACL,EAAK,wBACL,EAAK,oCACL,EAAK,4BACL,EAAK,WACL,EAAK,kBA0dP,IAvdwCC,EACtCC,iBACAC,wBAEA,MAAOC,EAAiBC,IAAsB7c,EAAAA,EAAAA,UAAS,KAChD8c,EAAeC,IAAoB/c,EAAAA,EAAAA,UAAS,OAC5Cgd,EAAaC,IAAkBjd,EAAAA,EAAAA,UAAS,OACxCkd,EAAgBC,IAAqBnd,EAAAA,EAAAA,WAAS,IAC9CkB,EAAOC,IAAYnB,EAAAA,EAAAA,UAAS,CACjCoB,MAAM,EACNC,IAAK,GACLC,SAAU,YAENgJ,EAAoB3J,OAAe2J,QACnC8S,GAAmBzc,OAAOC,SAASd,KAAK+C,SAAS,SAAW,wBAA0B,IAAtE,sCACfwa,EAAaC,IAAkBtd,EAAAA,EAAAA,UAAS,GAgS/C,OACEoH,EAAAA,cAAAA,EAAAA,SAAA,KACIlG,EAAME,MAAQgG,EAAAA,cAACwC,EAAAA,EAAe,CAACtI,SAAUJ,EAAMI,SAAUwD,QAAS5D,EAAMG,MAC1E+F,EAAAA,cAACoM,EAAAA,EAAK,CACJ9L,GAAG,oBACH5I,KAAM4d,EACN1d,UAAWA,IAAM2d,GAAkB,GACnCxY,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,UACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KAAC,8NAEdX,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAAEmR,UAAW,OAAQ9G,WAAY,UACjDvC,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,MAAM4D,aAAa,cAC3CrE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAG,QACZJ,EAAAA,cAACmW,EAAAA,EAAU,CAACnV,MAAM,kBAAkBC,MAAOyU,EAAexU,WAAaD,GAAU0U,EAAiB1U,GAAQnF,UAAQ,KAEpHkE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAG,QACZJ,EAAAA,cAACmW,EAAAA,EAAU,CAACnV,MAAM,gBAAgBC,MAAO2U,EAAa1U,WAAaD,GAAU4U,EAAe5U,GAAQnF,UAAQ,OAIlHkE,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAAEmR,UAAW,OAAQ9G,WAAY,UACjDvC,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACoW,EAAAA,EAAI,CACHC,UAAU,wBACVpV,MAAOgV,EACP/U,WAAYA,CAACkT,EAAGkC,KACdJ,EAAeI,GACfb,EAAmB,GAAG,EAExB9d,IAAI,yBAEJqI,EAAAA,cAACuW,EAAAA,EAAG,CACFjW,GAAG,kCACH3I,IAAI,kCACJqJ,MAAM,4BACN,gBAAe,KAEjBhB,EAAAA,cAACuW,EAAAA,EAAG,CACFjW,GAAG,sBACH3I,IAAI,sBACJqJ,MAAM,kBACN,gBAAe,OAIrBhB,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACO,IAAhB8V,GAAsBjW,EAAAA,cAACwW,EAAAA,EAAQ,CAACza,KAAK,8BAA8B0a,KA/UxD,CAClBnW,GAAI,KACJW,MAAO,YACPD,MAAO,aACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,gBACPD,MAAO,kBACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,iBACPD,MAAO,kBACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,cACPD,MAAO,eACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,cACPD,MAAO,eACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,eACPD,MAAO,gBACP0V,SAAS,OAMnB,CACEpW,GAAI,IACJW,MAAO,gBACPD,MAAO,iBACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,kBACP0V,SAAS,GAEX,CACEpW,GAAI,KACJW,MAAO,cACPD,MAAO,eACP0V,SAAS,OAMnB,CACEpW,GAAI,KACJW,MAAO,eACPD,MAAO,eACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,WACPD,MAAO,YACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,SAAS,OAMnB,CACEpW,GAAI,KACJW,MAAO,sBACPD,MAAO,uBACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,kBACPD,MAAO,oBACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,wBACPD,MAAO,2BACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,4BACPD,MAAO,gCACP0V,SAAS,SAQvB,CACEpW,GAAI,KACJW,MAAO,SACPD,MAAO,SACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,aACPD,MAAO,cACP0V,SAAS,GAEX,CACEpW,GAAI,KACJW,MAAO,uBACPD,MAAO,yBACP0V,SAAS,KAIf,CACEpW,GAAI,KACJW,MAAO,aACPD,MAAO,cACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,SAAS,GAEX,CACEpW,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,SAAS,KAIf,CACEpW,GAAI,KACJW,MAAO,YACPD,MAAO,aACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,gBACPD,MAAO,kBACP0V,SAAS,KAIf,CACEpW,GAAI,KACJW,MAAO,kBACPD,MAAO,mBACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,sBACPD,MAAO,wBACP0V,SAAS,SA+HoEjB,mBAAoBA,EAAoBkB,gBAAiB,CAAC,KAAM,OAClI,IAAhBV,GAAsBjW,EAAAA,cAACwW,EAAAA,EAAQ,CAACza,KAAK,kBAAkB0a,KAvH3C,CACnBnW,GAAI,KACJW,MAAO,YACPD,MAAO,aACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,gBACPD,MAAO,iBACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,WACPD,MAAO,WACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,iBACPD,MAAO,kBACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,kBACPD,MAAO,oBACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,wBACPD,MAAO,2BACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,oCACPD,MAAO,yCACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,4BACPD,MAAO,gCACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,WACPD,MAAO,WACP0V,SAAS,GAEX,CACEpW,GAAI,IACJW,MAAO,iBACPD,MAAO,mBACP0V,SAAS,KAuDiEjB,mBAAoBA,EAAoBkB,gBAAiB,CAAC,KAAM,SAI5IpW,OACEP,EAAAA,cAACuM,EAAAA,EAAU,CAAC3U,UAAWA,IAAM2d,GAAkB,IAAQ,eAEzD/I,OACExM,EAAAA,cAACyM,EAAAA,EAAY,KACXzM,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,WAAWgB,UAAWA,IAAM2T,GAAkB,IAAQ,UACtEvV,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEmV,EAAE,EAAG3C,SAAU,aACxBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAUmU,EACVlU,UAAWhH,UACT,GAAqB,MAAjB8a,EAKJ,GAAmB,MAAfE,EAKJ,GAA+B,IAA3BJ,EAAgBra,OAKpB,IACE4a,GAAkB,GAClBhc,EAAS,IAAKD,EAAOE,MAAM,IAE3B,MAAM6c,EAAc,GACdC,EAA2B,GAAfb,EAAmBd,EAAcC,EAC/CI,GAAmBA,EAAgBra,OAAS,GAC9Cqa,EAAgBuB,SAASC,IACvBH,EAAYI,KAAKH,EAAUE,GAAK,IAIpC,MAAME,EAAkBhU,EAAQiU,aAAqBD,SAAW,GAEhE,IAAIE,EAA0B,GAC1BC,EAAwB,GAE5BH,EAAQH,SAASO,IACG,oBAAdA,EAAO,KACTF,EAA0BE,EAAO,IAGjB,kBAAdA,EAAO,KACTD,EAAwBC,EAAO,GACjC,IAGF,MAAMpa,QAAiB0G,EAAAA,EAAQqD,UAC7B,GAAG+O,yBACH,OACA,CACEa,cACAU,SAAU7B,EAAc/V,WAAW6X,MAAM,EAAG,IAAM,IAClDC,OAAQ7B,EAAYjW,WAAW6X,MAAM,EAAG,IAAM,KAEhD,CACE,eAAgB,mBAChB,kBAAmBje,OAAO2J,SAASC,QAAQC,WAAagU,EACxD,gBAAiBC,IAIrB,GAAwB,MAApBna,EAAS4G,OAGX,OAFAiS,GAAkB,QAClBhc,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,4DAA6DC,SAAU,UAI/G,GAAwB,MAApBgD,EAAS4G,OAGX,OAFAiS,GAAkB,QAClBhc,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,+EAAgFC,SAAU,YAIlI6b,GAAkB,GAClBhc,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,yCAA0CC,SAAU,WAC5F,CAAE,MAAOyD,GACPiG,EAAAA,EAAQC,IAAIlG,GACZoY,GAAkB,GAClBhc,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,2DAA4DC,SAAU,SAC9G,MAhEE8B,MAAM,oCALNA,MAAM,qCALNA,MAAM,iCA0ER,GAEH,YAIC8Z,GACA9V,EAAAA,cAACuU,EAAAA,EAAgB,CACf3I,KAAM,GACNnK,GAAI,CACFZ,MAAOmI,EAAAA,EAAaC,OAAOuL,QAC3BP,SAAU,WACVQ,IAAK,MACLC,KAAM,MACNrL,UAAW,QACX9G,WAAY,aAOxBqP,sBAAoB,EACpB7Q,WAAS,IAEV,C,gOC/fP,MAAMoU,EAAc,CAClB,EAAK,UACL,EAAK,UACL,EAAK,UACL,EAAK,gBACL,EAAK,iBACL,EAAK,cACL,EAAK,UACL,EAAK,cACL,EAAK,eACL,EAAK,gBACL,GAAM,UACN,GAAM,iBACN,GAAM,cACN,GAAM,eACN,GAAM,WACN,GAAM,iBACN,GAAM,sBACN,GAAM,kBACN,GAAM,wBACN,GAAM,4BACN,GAAM,SACN,GAAM,aACN,GAAM,uBACN,GAAM,aACN,GAAM,iBACN,GAAM,iBACN,GAAM,YACN,GAAM,gBACN,GAAM,kBACN,GAAM,uBAGFC,EAAe,CACnB,EAAK,gBACL,EAAK,UACL,EAAK,WACL,EAAK,iBACL,EAAK,kBACL,EAAK,wBACL,EAAK,oCACL,EAAK,4BACL,EAAK,WACL,EAAK,kBAGDsC,EAAsC,CAC1CpX,GAAI,KACJW,MAAO,YACPD,MAAO,cAGH2W,EAA8C,CAClDrX,GAAI,KACJW,MAAO,YACPD,MAAO,mBAufT,IAjfuC4W,EACrCC,YACAC,eACAC,cAEA,MAAMxf,GAAQyf,EAAAA,EAAAA,OACPxC,EAAiBC,IAAsB7c,EAAAA,EAAAA,UAAS,KAChDqf,EAAkBC,IAAuBtf,EAAAA,EAAAA,UAAS,KAClDuf,EAAgBC,IAAqBxf,EAAAA,EAAAA,UAAS,OAC9Cyf,EAAcC,IAAmB1f,EAAAA,EAAAA,UAAS,OAC1C2f,EAAeC,IAAoB5f,EAAAA,EAAAA,UAAS,OAC5C6f,EAAiBC,IAAsB9f,EAAAA,EAAAA,WAAS,IAChDkB,EAAOC,IAAYnB,EAAAA,EAAAA,UAAS,CACjCoB,MAAM,EACNC,IAAK,GACLC,SAAU,YAENgJ,EAAoB3J,OAAe2J,QAEnCyV,EAAepgB,EAAMM,aAAakf,IAAY,CAAC,EAE/Ca,GAAgBC,EAAAA,EAAAA,UAAQ,IACrB,YAAaF,EAAe,CACjCrY,GAAI,KACJW,MAAO,YACPD,MAAO,aACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,QACjC7gB,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,SAEnC,CACErY,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,SAEnC,CACErY,GAAI,IACJW,MAAO,gBACPD,MAAO,kBACP0V,UAAWiC,EAA4B,eAEzC,CACErY,GAAI,IACJW,MAAO,iBACPD,MAAO,kBACP0V,UAAWiC,EAA6B,gBAE1C,CACErY,GAAI,IACJW,MAAO,cACPD,MAAO,eACP0V,UAAWiC,EAA0B,aAEvC,CACErY,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,QACjC7gB,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,cACPD,MAAO,eACP0V,UAAWiC,EAA0B,YACrC7gB,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,eACPD,MAAO,gBACP0V,UAAWiC,EAA2B,kBAMhD,CACErY,GAAI,IACJW,MAAO,gBACPD,MAAO,iBACP0V,UAAWiC,EAA4B,cACvC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,QACjC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,kBACP0V,UAAWiC,EAA6B,gBAE1C,CACErY,GAAI,KACJW,MAAO,cACPD,MAAO,eACP0V,UAAWiC,EAA0B,iBAM/C,CACErY,GAAI,KACJW,MAAO,eACPD,MAAO,eACP0V,UAAWiC,EAA2B,aACtC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,WACPD,MAAO,YACP0V,UAAWiC,EAAuB,SAClC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,UAAWiC,EAA6B,oBAMlD,CACErY,GAAI,KACJW,MAAO,sBACPD,MAAO,uBACP0V,UAAWiC,EAAkC,oBAC7C7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,kBACPD,MAAO,oBACP0V,UAAWiC,EAA8B,gBACzC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,wBACPD,MAAO,2BACP0V,UAAWiC,EAAoC,sBAC/C7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,4BACPD,MAAO,gCACP0V,UAAWiC,EAAwC,iCAQjE,CACErY,GAAI,KACJW,MAAO,SACPD,MAAO,SACP0V,UAAWiC,EAAqB,OAChC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,aACPD,MAAO,cACP0V,UAAWiC,EAAyB,YAEtC,CACErY,GAAI,KACJW,MAAO,uBACPD,MAAO,yBACP0V,UAAWiC,EAAmC,wBAIpD,CACErY,GAAI,KACJW,MAAO,aACPD,MAAO,cACP0V,UAAWiC,EAAyB,WACpC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,UAAWiC,EAA6B,gBAE1C,CACErY,GAAI,KACJW,MAAO,iBACPD,MAAO,mBACP0V,UAAWiC,EAA6B,kBAI9C,CACErY,GAAI,KACJW,MAAO,YACPD,MAAO,aACP0V,UAAWiC,EAAwB,UACnC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,gBACPD,MAAO,kBACP0V,UAAWiC,EAA4B,iBAI7C,CACErY,GAAI,KACJW,MAAO,kBACPD,MAAO,mBACP0V,UAAWiC,EAA8B,gBACzC7gB,SAAU,CACR,CACEwI,GAAI,KACJW,MAAO,sBACPD,MAAO,wBACP0V,UAAWiC,EAAkC,2BAOvDjB,GACH,CAACnf,EAAMM,aAAakf,KAEjBe,GAAiBD,EAAAA,EAAAA,UAAQ,IACtB,mBAAoBF,EAAe,CACxCrY,GAAI,KACJW,MAAO,YACPD,MAAO,kBACP0V,SAAS,EACT5e,SAAU,CACR,CACEwI,GAAI,IACJW,MAAO,gBACPD,MAAO,iBACP0V,UAAWiC,EAA4B,eAEzC,CACErY,GAAI,IACJW,MAAO,UACPD,MAAO,UACP0V,UAAWiC,EAAsB,SAEnC,CACErY,GAAI,IACJW,MAAO,WACPD,MAAO,WACP0V,UAAWiC,EAAuB,UAEpC,CACErY,GAAI,IACJW,MAAO,iBACPD,MAAO,kBACP0V,UAAWiC,EAA6B,gBAE1C,CACErY,GAAI,IACJW,MAAO,kBACPD,MAAO,oBACP0V,UAAWiC,EAA8B,iBAE3C,CACErY,GAAI,IACJW,MAAO,wBACPD,MAAO,2BACP0V,UAAWiC,EAAoC,uBAEjD,CACErY,GAAI,IACJW,MAAO,oCACPD,MAAO,yCACP0V,UAAWiC,EAAgD,mCAE7D,CACErY,GAAI,IACJW,MAAO,4BACPD,MAAO,gCACP0V,UAAWiC,EAAwC,2BAErD,CACErY,GAAI,IACJW,MAAO,WACPD,MAAO,WACP0V,UAAWiC,EAAuB,UAEpC,CACErY,GAAI,IACJW,MAAO,iBACPD,MAAO,mBACP0V,UAAWiC,EAA6B,kBAG1ChB,GACH,CAACpf,EAAMM,aAAakf,KAEvB,SAASgB,IACP,IAAIrgB,EAAOa,OAAOC,SAASd,KAC3B,OAAIA,EAAK+C,SAAS,sBACT,MACC/C,EAAK+C,SAAS,wBACf,QACC/C,EAAK+C,SAAS,wBACf,QACC/C,EAAK+C,SAAS,wBACf,QACC/C,EAAK+C,SAAS,kBACf,UACC/C,EAAK+C,SAAS,qBACf,UACC/C,EAAK+C,SAAS,qBACf,UACC/C,EAAK+C,SAAS,gBACf,SACC/C,EAAK+C,SAAS,gBACf,SACC/C,EAAK+C,SAAS,aACf,SAEA,SAEX,CAEA,OACEuE,EAAAA,cAAAA,EAAAA,SAAA,KACIlG,EAAME,MAAQgG,EAAAA,cAACwC,EAAAA,EAAe,CAACtI,SAAUJ,EAAMI,SAAUwD,QAAS5D,EAAMG,MAC1E+F,EAAAA,cAACoM,EAAAA,EAAK,CACJ9L,GAAG,cACH5I,KAAMmgB,EACNjgB,UAAWA,IAAMkgB,GAAa,GAC9B/a,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,UACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACW,EAAAA,EAAU,KAAC,qCAEdX,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAAEmR,UAAW,OAAQ9G,WAAY,UACjDvC,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,MAAM4D,aAAa,cAC3CrE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAG,QACZJ,EAAAA,cAACmW,EAAAA,EAAU,CAACnV,MAAM,uBAAuBC,MAAOkX,EAAgBjX,WAAaD,GAAUmX,EAAkBnX,GAAQnF,UAAQ,KAE3HkE,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAG,QACZJ,EAAAA,cAACmW,EAAAA,EAAU,CAACnV,MAAM,qBAAqBC,MAAOoX,EAAcnX,WAAaD,GAAUqX,EAAgBrX,GAAQnF,UAAQ,OAIzHkE,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAAEmR,UAAW,OAAQ9G,WAAY,UAC/CvC,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAG,QACVJ,EAAAA,cAACqS,EAAAA,EAAgB,CACfrR,MAAQ,sBACRsR,QAAWtS,EAAAA,cAACwP,EAAAA,EAAQ,CAACgD,SAAWvR,GAAUuX,EAAiBvX,QAGnEjB,EAAAA,cAAC+R,EAAAA,EAAO,CAAC7Z,MAAO,CAAEmR,UAAW,OAAQ9G,WAAY,UACjDvC,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,OACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACwW,EAAAA,EAAQ,CAACza,KAAK,8BAA8B0a,KAAMmC,EAASnD,mBAAoBA,EAAoBkB,gBAAiB,CAAC,KAAM,QAE9H3W,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAACwW,EAAAA,EAAQ,CAACza,KAAK,kBAAkB0a,KAAMqC,EAAUrD,mBAAoByC,QAM/E3X,OACEP,EAAAA,cAACuM,EAAAA,EAAU,CAAC3U,UAAWA,IAAMkgB,GAAa,IAAQ,kBAEpDtL,OACExM,EAAAA,cAACyM,EAAAA,EAAY,KACXzM,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,WAAWgB,UAAWA,IAAMkW,GAAa,IAAQ,UACjE9X,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEmV,EAAE,EAAG3C,SAAU,aACxBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACLC,SAAU8W,EACV7W,UAAWhH,UAGT,GAFAgJ,EAAAA,EAAQC,IAAIsU,GAEU,MAAlBA,EAKJ,GAAoB,MAAhBE,EAKJ,GAAI,IAAIjR,KAAKA,KAAK4R,MAAMX,IAAeY,UAAY,IAAI7R,KAAKA,KAAK4R,MAAMb,IAAiBc,UArZrF,OAsZDjd,MAAM,uDAIR,GAA+B,IAA3BwZ,EAAgBra,QAA4C,IAA5B8c,EAAiB9c,OAKrD,IACEud,GAAmB,GACnB3e,EAAS,IAAKD,EAAOE,MAAM,IAE3B,MAAM6c,EAAc,GAEhBrB,GAAmBA,EAAgBra,OAAS,GAC9Cqa,EAAgBuB,SAASC,IACvBH,EAAYI,KAAK9B,EAAY6B,GAAK,IAIlCiB,GAAoBA,EAAiB9c,OAAS,GAChD8c,EAAiBlB,SAASC,IACxBH,EAAYI,KAAK7B,EAAa4B,GAAK,IAMvC,IAAII,GAFoBlU,EAAQiU,aAAqBD,SAAW,IAIxDH,SAASO,IACG,oBAAdA,EAAO,KACTF,EAA0BE,EAAO,GACnC,IAGF,IAAI4B,EAAiB,CACnBpX,YAAa,oBACbC,OAAQ,CACN,UAAaqV,EACb,gBAAmBe,EAAexY,WAAW6X,MAAM,EAAG,IAAM,IAC5D,cAAiBW,EAAexY,WAAW6X,MAAM,EAAG,IAAM,IAC1D,YAAeuB,IACf,YAAelC,EAAYsC,KAAK,KAChC,eAAmC,MAAjBZ,GAAyBA,EAAclX,OAAOoO,SAElE7U,OAAO,GAKT,GAAwB,aAFDiH,EAAAA,EAAAA,GAAYqX,IAEtBpV,OAGX,OAFA4U,GAAmB,QACnB3e,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,8DAA+DC,SAAU,UAIjHwe,GAAmB,GACnB3e,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,8CAA+CC,SAAU,WACjG,CAAE,MAAOyD,GACPiG,EAAAA,EAAQC,IAAIlG,GACZ+a,GAAmB,GACnB3e,EAAS,IAAKD,EAAOE,MAAM,EAAMC,IAAK,gEAAiEC,SAAU,SACnH,MA3DE8B,MAAM,yCAVNA,MAAM,0CALNA,MAAM,sCA0ER,GAEH,OAICyc,GACAzY,EAAAA,cAACuU,EAAAA,EAAgB,CACf3I,KAAM,GACNnK,GAAI,CACFZ,MAAOmI,EAAAA,EAAaC,OAAOuL,QAC3BP,SAAU,WACVQ,IAAK,MACLC,KAAM,MACNrL,UAAW,QACX9G,WAAY,aAOxBqP,sBAAoB,EACpB7Q,WAAS,IAEV,C,gZCzgBP,MAAMqY,EAAgBA,EACpBC,OAAO,OACP1X,WACA2X,UACA1f,aAGEoG,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEwS,SAAU,aACnBjU,EAAAA,cAAC0B,EAAAA,EAAM,CACLd,QAAQ,YACRe,SAAUA,EACV2X,QAASA,GAERD,GAGDzf,GACAoG,EAAAA,cAACuU,EAAAA,EAAgB,CACf3I,KAAM,GACNnK,GAAI,CACFZ,MAAOmI,EAAAA,EAAaC,OAAOuL,QAC3BP,SAAU,WACVQ,IAAK,MACLC,KAAM,OACNrL,UAAW,QACX9G,WAAY,YAmmBxB,IA3lBA,WACE,MAAM,MAAEhK,EAAK,SAAEC,IAAaC,EAAAA,EAAAA,MACtBsf,EAAU,eACVwB,EAAuB,IAAIC,IAAoB,CACnD,CAAC,UAAW,GACZ,CAAC,UAAW,GACZ,CAAC,UAAW,GACZ,CAAC,gBAAiB,GAClB,CAAC,iBAAkB,GACnB,CAAC,cAAe,GAChB,CAAC,UAAW,GACZ,CAAC,cAAe,GAChB,CAAC,eAAgB,GACjB,CAAC,gBAAiB,GAClB,CAAC,UAAW,GACZ,CAAC,iBAAkB,GACnB,CAAC,cAAe,GAChB,CAAC,eAAgB,GACjB,CAAC,WAAY,GACb,CAAC,iBAAkB,GACnB,CAAC,sBAAuB,GACxB,CAAC,kBAAmB,GACpB,CAAC,wBAAyB,GAC1B,CAAC,4BAA6B,IAC9B,CAAC,SAAU,GACX,CAAC,aAAc,GACf,CAAC,uBAAwB,GACzB,CAAC,aAAc,GACf,CAAC,iBAAkB,GACnB,CAAC,iBAAkB,GACnB,CAAC,YAAa,GACd,CAAC,gBAAiB,GAClB,CAAC,kBAAmB,GACpB,CAAC,sBAAuB,KAGpBC,EAAoBC,MAAMC,KAAKJ,EAAqBve,QAEpD4e,EAA2B,CAC/B,gBACA,UACA,WACA,iBACA,kBACA,wBACA,oCACA,4BACA,WACA,kBAMIC,EAAuB7Z,EAAAA,cAAA,WAAK,0GAAuGA,EAAAA,cAAA,WAAK,mCAC9GA,EAAAA,cAAA,KAAGoC,KAAK,+FAA8F,uDAAuD,IAACpC,EAAAA,cAAA,WAAK,8GAI5L8Z,EAAmB1F,IAAKpP,EAAAA,EAAAA,GAAe,0BACvCqM,EAAgBC,IAAMtM,EAAAA,EAAAA,GAAe,wBACrCsQ,EAAgBC,IAAqB3c,EAAAA,EAAAA,WAAS,IAC9Cif,EAAWC,IAAgBlf,EAAAA,EAAAA,WAAS,IACrC,SAAEmB,IAAayL,EAAAA,EAAAA,MACduU,EAAkBC,IAAuBphB,EAAAA,EAAAA,WAAS,IACnD,cAAEgM,IAAkBC,EAAAA,EAAAA,MACnBoV,EAAkBC,IAAuBthB,EAAAA,EAAAA,UAAS,iBAClDuhB,EAAUC,KAAexhB,EAAAA,EAAAA,UAAS,gBACnCod,IAAmBzc,OAAOC,SAASd,KAAK+C,SAAS,SAAW,wBAA0B,IAAtE,sCACf4e,GAAQC,KAAa1hB,EAAAA,EAAAA,UAAS,IAoE/B2B,GAAiBA,CAACC,EAAcC,KACpCjC,EAAS,CAAEgC,OAAMC,WAAU,EA0B7B,SAAS8f,GAAgCC,GAEvC,MAAMC,EAAkB,IAAKliB,EAAMM,aAAakf,GAAU2C,OAAO,GAC3DhE,GAAqBiE,GAAqBH,GAChDA,EAAQzD,SAAS6D,IACfH,EAAgBG,GAAUlE,CAAO,IAGnCnc,GAAewd,EAAS0C,EAC1B,CAEA,SAAS/D,GAAQvW,GACf,QAAS5H,EAAMM,aAAakf,KAAW5X,EACzC,CAEA,SAAS0a,KACP,IAAIC,EAASviB,EAAMM,aAAakf,IAAyB,aACzD,OAAc,MAAV+C,EACK,GAEFA,CACT,CAEA,SAASH,GAAqBH,GAC5B,IAAK,MAAMO,KAAcP,EACvB,IAAK9D,GAAQqE,GACX,OAAO,EAGX,OAAO,CACT,CAEA,SAASC,GAAoBR,GAC3B,IAAK,MAAMO,KAAcP,EACvB,GAAI9D,GAAQqE,GACV,OAAO,EAGX,OAAO,CACT,CAEA,SAASE,GAAoBC,GAC3B,OAAOA,EAAMC,QAAQ,kBAAmB,QAC1C,CAyJA,OA/CAtd,EAAAA,EAAAA,YAAU,KACUjD,WAChB,MAAQrB,OAAO6hB,eAAe,kBACtB,IAAIC,SAAQC,GAAWnZ,WAAWmZ,EAAS,OA3GvD,IAAiBC,EAAUC,EACrBC,EADWF,EA8GL,UA9GeC,EA8GJ5gB,iBACjB,MAAMsc,EAAkB3d,OAAO2J,QAAQiU,aAAqBD,SAAW,GACvE,IAAIE,EAA0B,GAC1BC,EAAwB,GAC5BH,EAAQH,SAASO,IACG,oBAAdA,EAAO,KACTF,EAA0BE,EAAO,IAGjB,kBAAdA,EAAO,KACTD,EAAwBC,EAAO,GACjC,IAEFgD,GAAUjD,GAEV,MAAMxa,EAAU,CACd,eAAgB,mBAChB,kBAAmBtD,OAAO2J,SAASC,QAAQC,WAAagU,EACxD,gBAAiBC,IAvHzBzc,eAA0CiC,GACxC,IACE,MAAMmF,EAAMgU,GAAgB,oCACtB9Y,QAA4B0G,EAAAA,EAAQqD,UAAUjF,EAAK,MAAO,KAAMnF,GACtE,IAAKK,EAAU,MAAM,IAAIO,MAAM,wBAC/B,IAAKP,EAASM,GAAI,MAAMC,MAAMP,EAAkB,SAAK,kCACrD,aAAaA,EAASK,MACxB,CAAE,MAAOI,GAGP,OAFAiG,EAAAA,EAAQC,IAAIlG,GAEL,EACT,CACF,EA8GM+d,CAA2B7e,GACxBwC,MAAMsc,KAhFf/gB,eAA0C+gB,GAExC,IACE,MAAMC,EAAc,CAAC,EACrBD,EAAY5E,SAAQ5W,IACduW,GAAQvW,EAAKya,UAAYza,EAAKuW,UAChCkF,EAAYzb,EAAKya,QAAUza,EAAKuW,QAClC,IAEE3b,OAAOC,KAAK4gB,GAAazgB,OAAS,IAEpCygB,EAAmB,OAAI,EACvBrhB,GAAewd,EAAS6D,GAE5B,CAAE,MAAOje,GAEPiG,EAAAA,EAAQC,IAAIlG,EACd,CACF,CA+DUke,CAA2BF,GAE3B,MAAMG,EAAmBH,EAAYI,QAAOC,GAAcA,EAAWtF,UAASuF,OAAMD,GAAcA,EAAWE,YAAa,YAAc,eACxI9B,GAAY0B,GACa,cAArBA,GAjHdlhB,eAAmCiC,GACjC,IACE,MAAMmF,EAAMgU,GAAgB,4BACtB9Y,QAA4B0G,EAAAA,EAAQqD,UAAUjF,EAAK,MAAO,KAAMnF,GACtE,IAAKK,EAAU,MAAM,IAAIO,MAAM,wBAC/B,IAAKP,EAASM,GAAI,MAAMC,MAAMP,EAAkB,SAAK,iEACrD,aAAaA,EAASK,MACxB,CAAE,MAAOI,GAEP,OADAiG,EAAAA,EAAQC,IAAIlG,GACL,IACT,CACF,CAuGYwe,CAAoBtf,GAASwC,MAAK+c,GAAWlC,EAAgC,OAAZkC,GAAoB,SAAWA,EAAQnb,MAAMob,oBAAsB,eAAiBD,EAAQnb,QAC/J,IAtGVrG,eAAiCiC,GAE/B,IACE,MAAMmF,GAASzI,OAAOC,SAASd,KAAK+C,SAAS,SAAW,wBAA0B,IAAtE,uBACNyB,QAA4B0G,EAAAA,EAAQqD,UAAUjF,EAAK,MAAO,KAAMnF,GACtE,IAAKK,EAAU,MAAM,IAAIO,MAAM,wBAC/B,IAAKP,EAASM,GAAI,MAAMC,MAAMP,EAAkB,SAAK,kCACrD,aAAaA,EAASK,MACxB,CAAE,MAAOI,GAGP,OAFAiG,EAAAA,EAAQC,IAAIlG,GAEL,EACT,CACF,CA4FM2e,CAAkBzf,GACfwC,MAAMkd,GAtEf3hB,eAAuC2hB,GAgBrC,IACE,MAAMC,EAAU,CAChBA,aAA0B,IAC1BD,EAAKxF,SAAQ0F,IACXD,EAAsB,aAAEvF,KAAKwF,EAAI,IAE/B1hB,OAAOC,KAAKwhB,GAASrhB,OAAS,GAChCZ,GAAewd,EAASyE,EAE5B,CAAE,MAAO7e,GAEPiG,EAAAA,EAAQC,IAAIlG,EACd,CACF,CA0CU+e,CAAwBH,IAC9B,EAhJEd,EAAWkB,aAAY,WACrBpjB,OAAOgiB,KACTqB,cAAcnB,GACdD,IAEJ,GAAG,IA2IC,EAGJxX,EAAW,GACV,IAEEzL,EAAMskB,cAOT7c,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,SAASC,QAAS,GAC1CV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,2BACHvD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,IAAE,EAACK,UAAU,SAASC,QAAS,IAClDV,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACkM,WAAW,SAAS3L,QAAS,GAChDV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,MAAK,iBAEtCZ,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAxU3B,8DA0UNZ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,GAAG,OAAOiE,aAAa,aAAagI,WAAW,SAASgI,QAAQ,YACnFrU,EAAAA,cAACqV,EAAAA,EAAU,CAACC,eAAgBA,EAAgBC,kBAAmBA,IAC7DuE,GAAqB9Z,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAY0Y,QAASA,IAAM/D,GAAkB,IAAO,eASzGvV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,2BACHvD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,GACbF,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,IAAE,EAACK,UAAU,SAASC,QAAS,IAClDV,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACkM,WAAW,SAAS3L,QAAS,GAChDV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,MAAK,sBAAqByQ,GAAkBrR,EAAAA,cAAC8R,EAAAA,EAAI,CAAClG,KAAK,SAAShK,UAAWA,IAAMrI,OAAOC,SAAS4I,KAAO,gDAAiDpB,MAAOhB,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,YAAW,qBAAgCrI,MAAM,SAAU,KAAc,MAE9RyH,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SAASiZ,KAE1C7Z,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,GAAG,OAAOiE,aAAa,aAAagI,WAAW,SAASgI,QAAQ,YACnFrU,EAAAA,cAACoZ,EAAa,CACZzX,SAAUoY,IAAqBxhB,EAAMM,aAAakf,GAClDuB,QAjVY1e,UAC9B,IAEEof,GAAoB,GAEpB,MAAM8C,EAAiB,GACjBZ,EAAyB,cAAb/B,EAClBpf,OAAOC,KAAKzC,EAAMM,aAAakf,IAAY,CAAC,GAAGhB,SAAQ5K,KACjDsN,EAAkBhe,SAAS0Q,IAAQyN,EAAyBne,SAAS0Q,KACvE2Q,EAAe7F,KAAK,CAClB2D,OAAQzO,EACRuK,QAASne,EAAMM,aAAakf,GAAS5L,GACrC+P,UAAW3jB,EAAMM,aAAakf,GAAS5L,IAAQ+P,GAEnD,IAGF,MAAMrf,EAAU,CACd,eAAgB,mBAChB,kBAAmBtD,OAAO2J,SAASC,QAAQC,UAC3C,gBAAiBiX,IAGnB,IAAInd,QAAiB0G,EAAAA,EAAQqD,UAC3B+O,GAAgB,mBAChB,MACA8G,EACAjgB,GAGF,IAAKK,EAASM,GAAI,CAChB,MAAM,QAAEE,SAAkBR,EAASK,OACnC,MAAME,MAAMC,EACd,CAEA,GAAIwe,IACFhf,QAAiB0G,EAAAA,EAAQqD,UACvB+O,GAAgB,4BAChB,MACA,CACE/U,MAAOgZ,GAETpd,IAGGK,EAASM,IAAI,CAChB,MAAM,QAAEE,SAAkBR,EAASK,OACnC,MAAME,MAAMC,EACd,CAGF3D,EAAS,CACP2D,QAAS,yCACTxD,SAAU,WAEd,CAAE,MAAOwX,GACP9N,EAAAA,EAAQC,IAAI6N,GACZ3X,EAAS,CACP2D,QAASgU,EAAIhU,SAAW,yBACxBxD,SAAU,SAEd,CAAC,QACC8f,GAAoB,EACtB,GAmRkBpgB,QAASmgB,MAIf/Z,EAAAA,cAAA,WACAA,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,MAAM4T,QAAQ,cACtCrU,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACM,UAAU,SAASL,GAAI,GAChCJ,EAAAA,cAACkS,EAAAA,EAAU,CACT/F,IAAI,eACJnL,MAAM,YACNC,MAAOkZ,EACPjZ,WAAaC,IACXiZ,GAAYjZ,EAAEE,OAAOJ,MAAM,GAG7BjB,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACO,UAAU,OACxBT,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACuS,EAAAA,EAAK,CACJ9C,QAAsB,cAAb0K,EACTlZ,MAAM,YACND,MAAM,eAGVhB,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACuS,EAAAA,EAAK,CACJ9C,QAAsB,iBAAb0K,EACTlZ,MAAM,eACND,MAAM,sBAMA,cAAbmZ,GACCna,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACM,UAAU,SAASL,GAAI,GAClCJ,EAAAA,cAAC+L,EAAAA,GAAM,CACL/K,MAAM,sBACNqV,UAAU,6BACVnV,WAAaC,IACX+Y,EAAoB/Y,EAAEE,OAAOJ,MAAM,EAErCO,YAAY,mBACZ1F,SAAuB,cAAbqe,EACVlZ,MAAOgZ,GACPja,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,cACjCjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,cACjCjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,UACjCjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,WACjCjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,YACjCjB,EAAAA,cAACkM,EAAAA,GAAU,CAACjL,MAAM,gBAAe,eAKzCjB,EAAAA,cAAA,YAEFA,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAAC+c,EAAAA,EAAI,CACHtb,GAAI,CAAEub,MAAO,OAAQC,SAAU,IAAKC,QAAS,oBAC7C3Y,UAAU,MACV,kBAAgB,yBAEhBvE,EAAAA,cAACmd,EAAAA,EAAc,CAAC1b,GAAI,CAAE2b,GAAI,GAAI9D,QAASA,IAAMiB,GAAgCd,IAC3EzZ,EAAAA,cAACqd,EAAAA,EAAY,KACXrd,EAAAA,cAACwP,EAAAA,EAAQ,CAACC,QAASkL,GAAqBlB,GAAoB6D,eAAgBtC,GAAoBvB,KAAuBkB,GAAqBlB,MAE9IzZ,EAAAA,cAACud,EAAAA,EAAY,CAACC,QAAQ,+BAExBxd,EAAAA,cAAC+R,EAAAA,EAAO,MACR/R,EAAAA,cAAC+c,EAAAA,EAAI,CAACxY,UAAU,MAAMkZ,gBAAc,GAEhChE,EAAkBxN,KAAK2O,IACrB,IAAIjZ,GAAW,EACXyC,EAA2B,GAK/B,MAJI,CAAC,aAAc,iBAAkB,iBAAkB,YAAa,iBAAiB3I,SAASmf,KAC5FjZ,GAAYiD,EAAc,6BAA+BA,EAAc,6CACvER,EAAUzC,EAAW3B,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,UAAS,kEAA8E,IAGhIZ,EAAAA,cAACqP,EAAAA,EAAO,CAAC5X,MAAO2M,EAASsZ,OAAK,GAC5B1d,EAAAA,cAAA,WACAA,EAAAA,cAACmd,EAAAA,EAAc,CAACxb,SAAUA,EAAUF,GAAI,CAAE2b,GAAI7D,EAAqBpb,IAAIyc,IAAWtB,QAASA,IA7V1FsB,KACzB,MAAMH,EAAkB,IAClBliB,EAAMM,aAAakf,IAAY,CAAC,EACpC,CAAC6C,IAAUlE,GAAQkE,IAErBrgB,GAAewd,EAAS0C,EAAgB,EAwViFkD,CAAkB/C,IACjH5a,EAAAA,cAACqd,EAAAA,EAAY,KACXrd,EAAAA,cAACwP,EAAAA,EAAQ,CAACC,QAASiH,GAAQkE,MAE7B5a,EAAAA,cAACud,EAAAA,EAAY,CAACC,QAASvC,GAAoBL,OAGrC,OAOtB5a,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,GACbJ,EAAAA,cAAC+c,EAAAA,EAAI,CACHtb,GAAI,CAAEub,MAAO,OAAQC,SAAU,IAAKC,QAAS,oBAC7C3Y,UAAU,MACV,kBAAgB,yBAEhBvE,EAAAA,cAACmd,EAAAA,EAAc,CAAC7D,QAASA,IAAMiB,GAAgCX,IAC7D5Z,EAAAA,cAACqd,EAAAA,EAAY,KACXrd,EAAAA,cAACwP,EAAAA,EAAQ,CAACC,QAASkL,GAAqBf,GAA2B0D,eAAgBtC,GAAoBpB,KAA8Be,GAAqBf,MAE5J5Z,EAAAA,cAACud,EAAAA,EAAY,CAACC,QAAQ,qBAExBxd,EAAAA,cAAC+R,EAAAA,EAAO,MACR/R,EAAAA,cAAC+c,EAAAA,EAAI,CAACxY,UAAU,MAAMkZ,gBAAc,GAEhC7D,EAAyB3N,KAAK2O,GAC5B5a,EAAAA,cAACmd,EAAAA,EAAc,CAAC1b,GAAI,CAAE2b,GAAI,GAAKzb,UAAU,GACvC3B,EAAAA,cAACqd,EAAAA,EAAY,KACXrd,EAAAA,cAACwP,EAAAA,EAAQ,CAACC,QAASiH,GAAQkE,MAE7B5a,EAAAA,cAACud,EAAAA,EAAY,CAACC,QAASvC,GAAoBL,eAY/D5a,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GACRH,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,2BACHvD,KACEiD,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,EAACC,GAAI,IACbJ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACmM,WAAW,UACzBrM,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,IAAE,EAACK,UAAU,SAASC,QAAS,IAClDV,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACkM,WAAW,SAAS3L,QAAS,GAChDV,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,MAAK,oBAEtCZ,EAAAA,cAACC,EAAAA,EAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,SA/e1B,0EAifPZ,EAAAA,cAACC,EAAAA,EAAI,CAACC,WAAS,EAACC,MAAI,EAACC,GAAG,OAAOiE,aAAa,aAAagI,WAAW,SAASgI,QAAQ,YACnFrU,EAAAA,cAAC4X,EAAAA,EAAc,CAACC,UAAWA,EAAWC,aAAcA,EAAcC,QAASA,IACzE/X,EAAAA,cAAC0B,EAAAA,EAAM,CAACd,QAAQ,YAAY0Y,QAASA,IAlZ/BiD,KACxB,GAAIA,EAAKphB,OAAS,EAAG,CACnB,IAAIkM,EAAM,IAAID,KACd,GAA0B,MAAtBmV,EAAK,GAAGqB,YAAsBvW,EAAIwW,WAAa,IAAIzW,KAAKA,KAAK4R,MAAMuD,EAAK,GAAGuB,YAAYD,SAEzF,YADA7hB,MAAM,4EAGR,GAA0B,MAAtBugB,EAAK,GAAGqB,YAAsBvW,EAAIwW,WAAa,IAAIzW,KAAKA,KAAK4R,MAAMuD,EAAK,GAAGqB,aAAaC,SAE1F,YADA7hB,MAAM,gEAGV,CACA8b,GAAa,EAAK,EAsY2CiG,CAAiBlD,OAAsB,mBAOhG7a,EAAAA,cAACK,EAAAA,EAAI,CACHC,GAAG,2BACHvD,KACEiD,EAAAA,cAACge,EAAAA,EAAc,CAACzZ,UAAW0Z,EAAAA,GACzBje,EAAAA,cAACke,EAAAA,EAAK,CAACzc,GAAI,CAAE0c,SAAU,KAAO,aAAW,gBACvCne,EAAAA,cAACoe,EAAAA,EAAS,KACRpe,EAAAA,cAACqe,EAAAA,EAAQ,KACPre,EAAAA,cAACse,EAAAA,EAAS,KAAC,UACXte,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,UACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,cACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,eACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,qBACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,wBACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,qBACzBve,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAAQ,0BAG7Bve,EAAAA,cAACwe,EAAAA,EAAS,KACP3D,KAAoB5O,KAAKkG,GACxBnS,EAAAA,cAACqe,EAAAA,EAAQ,CACPlS,IAAKgG,EAAI7R,GACTmB,GAAI,CAAE,mCAAoC,CAAEgd,OAAQ,KAEpDze,EAAAA,cAACse,EAAAA,EAAS,CAAC/Z,UAAU,KAAKma,MAAM,OAC7BvM,EAAI7R,IAEPN,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAIrO,QAC9B9D,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAI2L,WAC9B9d,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAIyL,YAC9B5d,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAIwM,iBAC9B3e,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAIyM,gBAC9B5e,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAI0M,iBAC9B7e,EAAAA,cAACse,EAAAA,EAAS,CAACC,MAAM,SAASpM,EAAI2M,0BApO9C9e,EAAAA,cAACiF,EAAAA,EAAK,CAACC,QAAM,EAACtE,QAAQ,WAAW1G,SAAS,UAAU6C,KAAK,0DAA0DrF,MAAM,GA+O/H,C,8FChpBA,IAfA,UAAyB,QAAE0M,EAAO,MAAE3M,EAAK,KAAE6F,IAEvC,OAAO0C,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EACrBC,MAAM,QAAQ1e,GAAG,eACjBM,QAAQ,WACRL,OACIP,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,YAAYC,MAAOmI,EAAAA,EAAaC,OAAOgW,YAAaliB,KAAMiD,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEtJ,QAAS,SAAWV,EAAM,IAACuI,EAAAA,cAACkE,EAAAA,EAAI,CAACnH,KAAK,OAAOqH,QAASpE,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,QAAQ7D,KAAMqH,SAErLrH,KAAMO,GACF0C,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,KAAK7D,KAAMO,EAAM4hB,WAAS,EAACC,0BAAwB,EAAC/a,QAAS9G,EAAM8hB,QAAM,KAIzG,C,0OCCA,MAAMC,EAA4B,CAC9B,UAAa,CAAEre,MAAO,YAAazI,MAAO,UAAW2b,KAAM,UAC3D,MAAS,CAAElT,MAAO,QAASzI,MAAO,QAAS2b,KAAM,QACjD,QAAW,CAAElT,MAAO,UAAWzI,MAAO,gBAAiB2b,KAAM,WAC7D,gBAAmB,CAAElT,MAAO,QAASzI,MAAO,QAAS2b,KAAM,QAC3D,QAAW,CAAElT,MAAO,UAAWzI,MAAO,OAAQ2b,KAAM,mBACpD,QAAW,CAAElT,MAAO,UAAWzI,MAAO,OAAQ2b,KAAM,mBACpD,QAAW,CAAElT,MAAO,UAAWzI,MAAO,UAAW2b,KAAM,QACvD,SAAY,CAAElT,MAAO,WAAYzI,MAAO,UAAW2b,KAAM,WACzDhN,UAAW,CAAElG,MAAO,UAAWzI,MAAO,UAAW2b,KAAM,YAyQ3D,IAtQA,UAA4B,OAAEoL,IAG1B,MAAOC,EAAWC,IAAgB5mB,EAAAA,EAAAA,UAAqB,KAChD6mB,EAAiBC,IAAsB9mB,EAAAA,EAAAA,UAAiB,MACxD+mB,EAAaC,IAAkBhnB,EAAAA,EAAAA,WAAS,IACxCinB,EAAcC,IAAmBlnB,EAAAA,EAAAA,UAAS,OAC1C4P,EAAcuX,IAAmBnnB,EAAAA,EAAAA,UAAiB,MAEnDmO,GADUxN,OAAOC,SAASd,KAAK+C,SAAS,aACf,wBAA0B,IAAvC,8BAGZ,MAAElD,IAAUE,EAAAA,EAAAA,MACZunB,EAAkBznB,EAAMM,aAAaonB,EAAAA,GACrCC,EAAY3nB,EAAMM,aAAasnB,EAAAA,GAC/BC,EAAoB,GAAG7nB,EAAM6E,YAAY+d,QAAQ,QAASkF,EAAAA,OAG1D,cAAEzb,IAAkBC,EAAAA,EAAAA,KACpByb,EAAwB1b,EAAc,cAAc2b,EAAAA,GAAuBjB,MAE3EkB,EAAuBA,KACzB,GAAIhY,IAAiBqX,GAAcY,YAAcZ,GAAca,cAAe,CAC1E,MAAMC,EAAsB,IAAIvZ,KAAKyY,EAAaY,YAAcZ,EAAaa,cACvEE,IAAqD,IAAIxZ,MAAO6R,UAAY0H,GAAqB1H,WAAa,IAC9G4H,EAAwBC,SAAStY,GACjCuY,EAA2BC,KAAKC,IAAIJ,EAAwBD,GAAkD,KAEpH,OAAIxM,IAAAA,MAAQyM,IAA0BzM,IAAAA,MAAQ2M,IAC1Cnd,EAAAA,EAAQC,IAAI,0EACkBgd,6CACPE,iDACKJ,KACrB,0BAOPE,EAAwBD,EACjB,YAAYI,KAAKE,KAAKL,EAAwB,KAAOA,EAAwB,GAAKA,EAAwB,SAASA,EAAwB,KAAO,WAAa,WAEnK,YAAYG,KAAKE,KAAKH,EAAmB,EAAuB,GAAnBA,EAAwBA,MAAqBA,EAAmB,EAAI,WAAa,UACzI,CACA,MAAO,wBAAwB,EAE7BI,GAAYtI,EAAAA,EAAAA,UACd,IAAM,CACF,CAAEvY,GAAI,IAAK7I,MAAO,qCAAsC2M,QAAS,6JAA8J9G,KAAM0iB,GAAiBoB,mCAAqC,IAC3R,CAAE9gB,GAAI,IAAK7I,MAAO,iCAAkC2M,QAAS,+EAAgF9G,KAAMkjB,KACnJ,CAAElgB,GAAI,IAAK7I,MAAO,mCAAoC2M,QAAS,8JAA+J9G,KAAM,MAExO,CAACkL,EAAcqX,IAIbwB,GAAuCC,EAAAA,EAAAA,cAAY1mB,eACxC2mB,EAAAA,EAAAA,GAAsCnB,EAAmBoB,IACvE,IACGC,GAAeC,EAAAA,EAAAA,IAAgBL,EAAsC9nB,OAAOC,SAASd,KAAMipB,EAAAA,IAmGjG,OAlDA9jB,EAAAA,EAAAA,YAAU,KACN,MAAMV,EAAQvC,UACV,IACIglB,GAAe,GACf,MAAMgC,QAA6BH,EAAazB,EAAiB,CAAE6B,MAAO,IAC1E,IAAKD,EACD,MAAMnkB,MAAM,sCAGhB,GAAqC,IAAjCmkB,GAAsBzmB,OAAc,CACpC2kB,EAAgB8B,EAAqB,IAErC,MAAME,OAlCKlnB,WACvB,IACI,MAAMsC,QAAiB0G,EAAAA,EAAQqD,UAC3B,GAAGF,wCAAgDmZ,GAAW6B,gEAC9D,WACA7a,EACA,CAAE,OAAU,mBAAoB,eAAgB,qBAEpD,IAAKhK,EAASM,GAAI,CACd,MAAMT,QAAaG,EAASK,OAC5B,MAAM,IAAIE,MAAM,6BAA6BV,GAAMW,wBAAwBR,EAASsB,uBAAuB0hB,GAAW6B,wBAC1H,CACA,MAAMC,QAAY9kB,EAASK,OAC3B,GAAmB,IAAfykB,EAAI7mB,OACJ,MAAM,IAAIsC,MAAM,mEAEpB,OAAOukB,EAAI,IAAIC,MAAMpB,qBACzB,CAAE,MAAOljB,GACLiG,EAAAA,EAAQC,IAAI,kCAAkCqc,GAAW6B,iCAAiCpkB,IAC9F,GAekCukB,GACtBnC,EAAgB+B,EACpB,CACAle,EAAAA,EAAQC,IAAI,qCAAsC+d,EAAqBzmB,OAC3E,CAAE,MAAOwC,GACLiG,EAAAA,EAAQC,IAAI,6CAA8ClG,EAC9D,CAAC,QACGiiB,GAAe,EACnB,CAEA,IACIA,GAAe,GACf,MAAMuC,QAtElBvnB,iBACI,IACI,MAAM0B,EAAOC,SAASC,cAAc,2BAA6BC,aAAa,WACxEC,EAAU,CACZC,OAAQ,MACRE,QAAS,IAAIC,QAAQ,CACjB,eAAgB,mBAChB,OAAU,mBACV,eAAgBR,KAGlBY,QAAiB3D,OAAO4D,MAAM,GAAG5E,EAAM6E,YAAY+d,QAAQ,QAAS,iCAAiC6E,GAAiB1f,QAAS5D,GAC/HY,QAAaJ,EAASK,OAC5B,IAAKL,EAASM,GACV,MAAMC,MAAM,qDAAqDuiB,GAAiB1f,gBAAgBhD,EAAKI,wBAAwBR,EAASsB,cAE5I,OAAOlB,CAEX,CAAE,MAAOK,GACLiG,EAAAA,EAAQC,IAAIlG,EAChB,CACJ,CAiDuCykB,GAC3B,IAAKD,GAAgBA,EAAaxkB,MAE9B,YADAiG,EAAAA,EAAQC,IAAI,mCAAmCse,EAAaxkB,SAIhE6hB,EAAa2C,GAAcnW,MAAK,CAACqW,EAAiBC,IAAoB,IAAIlb,KAAKib,EAAEvX,KAAKmO,UAAY,IAAI7R,KAAKkb,EAAExX,KAAKmO,YAC7GhN,KAAK3O,IAAgC,CAAEilB,EAAG,IAAInb,KAAK9J,EAAKwN,KAAK0X,cAAeC,EAAGnlB,EAAKolB,4BACzF,MAAMC,EAAOR,EAAaS,QAAO,CAACC,EAAaC,IACpCD,EAAcC,EAAaJ,wBACnC,GACHhD,EAAmBiD,EAAKI,iBAC5B,CAAE,MAAOplB,GACLiG,EAAAA,EAAQC,IAAI,qBAAsBlG,EACtC,CAAC,QACGiiB,GAAe,EACnB,GAIAU,GAAyBJ,IAAc9L,IAAAA,QAAU4L,IACjD7iB,GACJ,GACD,CAAC+iB,EAAWF,IAGVM,EASDX,QAAmCzY,IAApB8Y,EACRhgB,EAAAA,cAACqC,EAAAA,EAAO,CAAC1K,IAAI,2BAA2BiU,KAAK,UAGnDsU,EAUA9L,IAAAA,QAAU4L,GA4ERhgB,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EAACze,GAAG,kCAAkCvD,KAC3DiD,EAAAA,cAACW,EAAAA,EAAU,CAACE,MAAOmI,EAAAA,EAAaC,OAAO+Z,YAAavhB,GAAI,CAAE4H,UAAW,KAAMpF,aAAc,KAAMgf,UAAW,UAAYriB,QAAQ,QAAQ7D,KAAK,gMA5EpIiD,EAAAA,cAAC6I,EAAAA,EAAG,KACP7I,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EAACze,GAAG,2BAClBC,OAAO,oBAAoBC,UAAQ,EACnC0iB,iBAAe,EACfnmB,KACIiD,EAAAA,cAACC,EAAAA,GAAI,CAACC,WAAS,EAACO,UAAU,UACtBT,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,GACNH,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAEtJ,QAAS,OAAQ6W,cAAe,QACvChP,EAAAA,cAACW,EAAAA,EAAU,CAACc,GAAI,CAAEc,WAAY,MAAOoJ,YAAa,OAAS/K,QAAQ,QAC/DC,MAAOmI,EAAAA,EAAaC,OAAOgW,YAAaliB,KAAK,0BACjDiD,EAAAA,cAAC8R,EAAAA,EAAI,CAAC9Q,MAAOqe,EAA0BQ,GAAc/b,SAAS9C,MACtDzI,MAAO8mB,EAA0BQ,GAAc/b,SAASvL,MACxD2b,KAAMmL,EAA0BQ,GAAc/b,SAASoQ,SAGvElU,EAAAA,cAACC,EAAAA,GAAI,CAACC,WAAS,EAACO,UAAU,OACtBT,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GACXJ,EAAAA,cAACmjB,EAAAA,EAAe,CAAC7lB,KAAM6jB,EAAU,GAAG7jB,KAAO,IAAIsN,KAAKC,eAAe,QAAS,CACxEE,MAAO,OACPD,IAAK,UACLE,KAAM,UACNC,KAAM,UACNC,OAAQ,YACTI,OAAO,IAAIlE,KAAK+Z,EAAU,GAAG7jB,OAAS,4BAA6B7F,MAAO0pB,EAAU,GAAG1pB,MAAO2M,QAAS+c,EAAU,GAAG/c,WAE3HpE,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GACXJ,EAAAA,cAACmjB,EAAAA,EAAe,CAAC7lB,KAAM6jB,EAAU,GAAG7jB,KAAM7F,MAAO0pB,EAAU,GAAG1pB,MAAO2M,QAAS+c,EAAU,GAAG/c,WAE/FpE,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,EAACC,GAAI,GACXJ,EAAAA,cAACmjB,EAAAA,EAAe,CAAC7lB,KAAMmiB,EAAiBhoB,MAAO0pB,EAAU,GAAG1pB,MAAO2M,QAAS+c,EAAU,GAAG/c,eAM7GpE,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EACdze,GAAG,+BACHC,OAAO,cACPC,UAAQ,EACR0iB,iBAAe,EACfnmB,KACIiD,EAAAA,cAAC6I,EAAAA,EAAG,CAACpH,GAAI,CAAE,QAAS,CAAE0C,SAAU,YAC5BnE,EAAAA,cAACW,EAAAA,EAAU,CAACE,MAAOmI,EAAAA,EAAaC,OAAOma,aAAa,gBACpDpjB,EAAAA,cAACqjB,EAAAA,EAAK,CACFC,aAAa,SACb9oB,KAAK,MACL8C,KAAMiiB,EACNgE,UAAWC,EAAAA,EAAeC,IAC1BC,kBAAgB,EAEhBC,mBAAiB,EACjBvf,QAAUwf,GACN5jB,EAAAA,cAACC,EAAAA,GAAI,CAACC,WAAS,EAACuB,GAAI,CAAEqH,OAAQ,OAC1B9I,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,GACNH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,QAAQ7D,KAAMwiB,EAAUqE,EAAMC,YAAYtB,EAAI,IAAI3X,KAAKC,eAAe,QAAS,CAC/FE,MAAO,OACPD,IAAK,UACLE,KAAM,YACPM,OAAO,IAAIlE,KAAKmY,EAAUqE,EAAMC,WAAWtB,IAAM,aAIxDviB,EAAAA,cAACC,EAAAA,GAAI,CAACC,WAAS,EAACO,UAAU,MAAM6L,eAAe,gBAAgB7K,GAAI,CAAE4H,UAAW,QAC5ErJ,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,aAAY,gBAC3CZ,EAAAA,cAACC,EAAAA,GAAI,CAACE,MAAI,GAACH,EAAAA,cAACW,EAAAA,EAAU,CAACC,QAAQ,YAAY7D,KAAMwiB,EAAUqE,EAAMC,WAAWpB,GAAK,eA1E1GziB,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EAACze,GAAG,yCAAyCvD,KAClEiD,EAAAA,cAACW,EAAAA,EAAU,CAACE,MAAOmI,EAAAA,EAAaC,OAAO+Z,YACnCvhB,GAAI,CAAE4H,UAAW,KAAMpF,aAAc,KAAMgf,UAAW,UACtDriB,QAAQ,QACR7D,KAAK,+HAjBNiD,EAAAA,cAACK,EAAAA,EAAI,CAAC0e,cAAY,EAACze,GAAG,uBAAuBvD,KAChDiD,EAAAA,cAACW,EAAAA,EAAU,CAACE,MAAOmI,EAAAA,EAAaC,OAAO+Z,YACnCvhB,GAAI,CAAE4H,UAAW,KAAMpF,aAAc,KAAMgf,UAAW,UACtDriB,QAAQ,QACR7D,KAAK,uHAgGrB,C,4DC/RA,IAJA,WACI,OAAOiD,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQyE,EAAAA,IACtC,C,4DCEA,IAJA,WACI,OAAO/jB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQyE,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAO/jB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQ2E,EAAAA,GACtC,C,6DCEA,IAJA,WACI,OAAOjkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQ2E,EAAAA,GACvC,C,4DCEA,IAJA,WACI,OAAOjkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQ4E,EAAAA,IACtC,C,4DCEA,IAJA,WACI,OAAOlkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQ4E,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOlkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQ6E,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAOnkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQ6E,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOnkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQ8E,EAAAA,IACtC,C,6DCEA,IAJA,WACE,OAAOpkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQ8E,EAAAA,IACrC,C,4DCEA,IAJA,WACI,OAAOpkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQ+E,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAOrkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQ+E,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOrkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQgF,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAOtkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQgF,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOtkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQiF,EAAAA,IACtC,C,6DCEA,IAJA,WACE,OAAOvkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQiF,EAAAA,IACrC,C,4DCEA,IAJA,WACI,OAAOvkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQkF,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAOxkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQkF,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOxkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQmF,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAOzkB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQmF,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAOzkB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQoF,EAAAA,GACtC,C,6DCEA,IAJA,WACI,OAAO1kB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQoF,EAAAA,GACvC,C,0DCEA,IAJA,WACI,OAAO1kB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQqF,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAO3kB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQqF,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAO3kB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQsF,EAAAA,IACtC,C,6DCEA,IAJA,WACI,OAAO5kB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQsF,EAAAA,IACvC,C,6DCEA,IAJA,WACI,OAAO5kB,EAAAA,cAACgkB,EAAAA,EAAkB,CAAC1E,OAAQuF,EAAAA,IACvC,C,4DCEA,IAJA,WACI,OAAO7kB,EAAAA,cAAC8jB,EAAAA,EAAiB,CAACxE,OAAQuF,EAAAA,IACtC,C,uCCgBA,IAnByGjqB,MAAOoH,EAAKwf,KACjH,IACI,MAAMtkB,QAAiBC,MAAM6E,EAAK,CAC9BrF,OAAQ,OACRE,QAAS,CACL,eAAgB,mBAChB,OAAU,mBACV,eAAgBN,SAASC,cAAc,2BAA2BC,aAAa,YAEnFM,KAAMC,KAAKC,UAAUukB,KAGzB,aADmBtkB,EAASK,QAChBunB,YAChB,CAAE,MAAO3jB,GACLyC,EAAAA,EAAQC,IAAI1C,GACZvD,QAAQD,MAAMwD,EAClB,E,ocC0OJ,IA7LyB4jB,EACvBhpB,OACAb,aACAyP,SACAqa,gBACAC,kBACAhiB,WACAiiB,gBAkLEllB,EAAAA,cAAAA,EAAAA,SAAA,KA/KF,SAAsBjE,GACpB,OAAQA,GAIN,IAAK,wBACH,OAAOiE,EAAAA,cAACmlB,EAAAA,GAAS,CAACpN,QAAS,YAAaqN,SAAS,EAAMC,UAAWnqB,EAAsB,YAC1F,IAAK,gCACH,OAAO8E,EAAAA,cAACslB,EAAAA,GAAiB,CAACvN,QAAS,oBAAqBqN,SAAS,IACnE,IAAK,2BACH,OAAOplB,EAAAA,cAACulB,EAAAA,GAAY,CAACxN,QAAQ,eAAeqN,SAAS,IACvD,IAAK,6BAEL,IAAK,4BACH,OACEplB,EAAAA,cAACyQ,EAAAA,GAAc,CACb9F,OAAQA,EACRrS,YAAc4C,EAAmB5C,YACjC0sB,cAAeA,EACfC,gBAAiBA,IAGvB,IAAK,uBACH,OAAOjlB,EAAAA,cAACmlB,EAAAA,GAAS,CAACpN,QAAS,YAAaqN,SAAS,EAAOC,UAAWnqB,EAAsB,YAC3F,IAAK,+BACH,OAAO8E,EAAAA,cAACslB,EAAAA,GAAiB,CAACvN,QAAS,oBAAqBqN,SAAS,IACnE,IAAK,0BACH,OAAOplB,EAAAA,cAACulB,EAAAA,GAAY,CAACxN,QAAQ,eAAeqN,SAAS,IACvD,IAAK,yBACH,OACEplB,EAAAA,cAACwlB,EAAAA,GAAgB,CACf7a,OAAQA,EACRrS,YAAc4C,EAAmB5C,YACjC0sB,cAAeA,EACfC,gBAAiBA,IAGvB,IAAK,oBACH,OAAOjlB,EAAAA,cAACylB,EAAAA,GAAW,CAAC1N,QAAQ,YAAYsN,UAAWnqB,EAAsB,YAC3E,IAAK,uBACH,OAAO8E,EAAAA,cAAC0lB,EAAAA,GAAc,CAAC3N,QAAQ,iBACjC,IAAK,mBACH,OAAO/X,EAAAA,cAAC2lB,EAAAA,EAAY,MACtB,IAAK,qBACH,OAAO3lB,EAAAA,cAAC4lB,EAAAA,EAAiB,MAC3B,IAAK,yBACH,OAAO5lB,EAAAA,cAAC0C,EAAAA,EAAW,CACjBE,cAAesiB,IAEnB,IAAK,sBACH,OAAOllB,EAAAA,cAAC3H,EAAAA,EAAc,CAACC,YAAc4C,EAAmB5C,cAC1D,IAAK,+BACH,OAAO0H,EAAAA,cAAC2E,EAAAA,EAAkB,MAC5B,IAAK,gCACH,OACE3E,EAAAA,cAAC6lB,EAAAA,GAAiB,CAChBlb,OAAQA,EACRrS,YAAc4C,EAAmB5C,YACjC0sB,cAAeA,EACfC,gBAAiBA,IAGvB,IAAK,2BACH,OAAOjlB,EAAAA,cAAC8lB,EAAAA,GAAY,CAAC/N,QAAQ,YAAYsN,UAAWnqB,EAAsB,YAC5E,IAAK,8BACH,OAAO8E,EAAAA,cAAC+lB,EAAAA,GAAe,CAAChO,QAAQ,iBAGlC,IAAK,6BACH,OACE/X,EAAAA,cAACgmB,EAAAA,GAAwB,CACvBrb,OAAQA,EACRrS,YAAc4C,EAAmB5C,YACjC0sB,cAAeA,EACfC,gBAAiBA,IAGvB,IAAK,0BACH,OAAOjlB,EAAAA,cAACimB,EAAAA,GAAW,CAACC,OAAO,YAC7B,IAAK,wBACH,OAAOlmB,EAAAA,cAACmmB,EAAAA,GAAY,CAACD,OAAO,YAE9B,IAAK,6BACH,OACElmB,EAAAA,cAAComB,EAAAA,GAAwB,CACvBzb,OAAQA,EACRrS,YAAc4C,EAAmB5C,YACjC0sB,cAAeA,EACfC,gBAAiBA,IAGvB,IAAK,0BACH,OAAOjlB,EAAAA,cAACimB,EAAAA,GAAW,CAACC,OAAO,YAC7B,IAAK,wBACH,OAAOlmB,EAAAA,cAACmmB,EAAAA,GAAY,CAACD,OAAO,YAE9B,IAAK,2BACL,IAAK,2BACH,OAAOlmB,EAAAA,cAACqmB,EAAAA,GAAe,CAAC/tB,YAAa4C,EAAwB,YAAG6c,QAAQ,iBAE1E,IAAK,wBACH,OAAO/X,EAAAA,cAACsmB,EAAAA,EAAuB,MACjC,IAAK,yBACH,OAAOtmB,EAAAA,cAACumB,EAAAA,EAA6B,MACvC,IAAK,8BACH,OAAOvmB,EAAAA,cAACwmB,EAAAA,EAA6B,MACvC,IAAK,+BACH,OAAOxmB,EAAAA,cAACymB,EAAAA,EAAmC,MAC7C,IAAK,mBACH,OAAOzmB,EAAAA,cAAC0mB,EAAAA,EAA0B,MACpC,IAAK,oBACH,OAAO1mB,EAAAA,cAAC2mB,EAAAA,EAAgC,MAC1C,IAAK,4BACH,OAAO3mB,EAAAA,cAAC4mB,EAAAA,EAA2B,MACrC,IAAK,6BACH,OAAO5mB,EAAAA,cAAC6mB,EAAAA,EAAiC,MAC3C,IAAK,wBACH,OAAO7mB,EAAAA,cAAC8mB,EAAAA,EAAuB,MACjC,IAAK,yBACH,OAAO9mB,EAAAA,cAAC+mB,EAAAA,EAA6B,MACvC,IAAK,yBACH,OAAO/mB,EAAAA,cAACgnB,EAAAA,EAAwB,MAClC,IAAK,0BACH,OAAOhnB,EAAAA,cAACinB,EAAAA,EAA8B,MACxC,IAAK,wBAgBL,IAAK,qBACH,OAAOjnB,EAAAA,cAACknB,EAAAA,EAAuB,MAfjC,IAAK,yBAgBL,IAAK,sBACH,OAAOlnB,EAAAA,cAACmnB,EAAAA,EAA6B,MAfvC,IAAK,qBACH,OAAOnnB,EAAAA,cAAConB,EAAAA,EAAoB,MAC9B,IAAK,sBACH,OAAOpnB,EAAAA,cAACqnB,EAAAA,EAA0B,MACpC,IAAK,kBAYL,IAAK,eACH,OAAOrnB,EAAAA,cAACsnB,EAAAA,EAAiB,MAX3B,IAAK,mBAYL,IAAK,gBACH,OAAOtnB,EAAAA,cAACunB,EAAAA,EAAuB,MAEjC,IAAK,6BACH,OAAOvnB,EAAAA,cAACwnB,EAAAA,EAA4B,MACtC,IAAK,8BACH,OAAOxnB,EAAAA,cAACynB,EAAAA,EAAkC,MAC5C,IAAK,sBACH,OAAOznB,EAAAA,cAAC0nB,EAAAA,EAAqB,MAC/B,IAAK,uBACH,OAAO1nB,EAAAA,cAAC2nB,EAAAA,EAA2B,MACrC,IAAK,+BACH,OAAO3nB,EAAAA,cAAC4nB,EAAAA,EAA8B,MACxC,IAAK,gCACH,OAAO5nB,EAAAA,cAAC6nB,EAAAA,EAAoC,MAC9C,IAAK,uBACH,OAAO7nB,EAAAA,cAAC8nB,EAAAA,EAAsB,MAChC,IAAK,wBACH,OAAO9nB,EAAAA,cAAC+nB,EAAAA,EAA4B,MACtC,IAAK,sBACH,OAAO/nB,EAAAA,cAACgoB,EAAAA,EAAqB,MAC/B,IAAK,uBACH,OAAOhoB,EAAAA,cAACioB,EAAAA,EAA2B,MACrC,QACE,OAAOjoB,EAAAA,cAACkoB,EAAAA,EAAa,CAACC,YAAY,EAAO7nB,GAAI2C,EAAU1C,OAAQrF,EAA8B,kBAAEyP,GAAiB,QAAGrS,YAAa4C,EAAwB,YAAG8pB,cAAeA,EAAeC,gBAAiBA,EAAiBlN,QAAShc,IAE1O,CAGKqsB,CAAarsB,G,wGCvGpB,IA9HoCya,EAAGC,OAAM1a,OAAM0Z,qBAAoBkB,sBACrE,MAAO0R,EAAUC,IAAe1vB,EAAAA,EAAAA,UAAS,IACnC2vB,GAAc1P,EAAAA,EAAAA,UAAQ,IAAM,IAAI2P,IAAIH,IAAW,CAACA,IAChDI,GAAY5P,EAAAA,EAAAA,UAAQ,IAAM6P,EAAkBjS,IAAO,IAEzD,SAASiS,EAAkBC,EAAa1c,EAA2B,CAAC,GAClE,GAAI0c,EAAM7wB,SAAU,CAClBmU,EAAI0c,EAAMroB,IAAMsoB,EAAeD,GAAO5M,QAAQ8M,GAASA,EAAKnS,UAASzK,KAAK4c,GAASA,EAAKvoB,KAAIwoB,OAAO,GACnG,IAAK,MAAMC,KAAaJ,EAAM7wB,SAC5B4wB,EAAkBK,EAAW9c,EAEjC,CACA,OAAOA,CACT,CAEA,SAAS2c,EAAeG,EAAwBC,EAAwB,IACtE,GAAID,IACFC,EAAe/R,KAAK8R,GAChBrP,MAAMuP,QAAQF,EAAUjxB,WAC1B,IAAK,MAAM+wB,KAAQE,EAAUjxB,SAC3B8wB,EAAeC,EAAMG,GAI3B,OAAOA,CACT,CAEA,MA6BME,EAAcA,CAACzZ,EAAkBkZ,KACrC,GAAiB,OAAbA,EAAMroB,GAAa,CACrB,MAAM6oB,EAAQ1Z,EAAU,IAAI4Y,EAAUM,EAAMroB,IAAM+nB,EAAStM,QAAQ9a,GAAUA,IAAU0nB,EAAMroB,KAG7F,OAFAgoB,EAAYa,QACZ1T,EAAmB0T,EAErB,CAEA,MAAM,sBAAEC,EAAqB,KAAEC,GArCZC,EAACX,EAAaroB,KACjC,IACI+oB,EAAiB,GAmBrB,MAAME,EAjBN,SAASC,EAAYX,EAAYvoB,EAAYmpB,GAC3C,IAAI3O,EAAS,KACb,GAAI+N,EAAKvoB,KAAOA,EACd,OAAOuoB,EACF,GAAInP,MAAMuP,QAAQJ,EAAK/wB,UAAW,CACvC,IAAK,IAAIixB,KAAaF,EAAK/wB,SAEzB,GADAgjB,EAAS0O,EAAYT,EAAWzoB,EAAImpB,GAC9B3O,EAEJ,OADA2O,EAAYxS,KAAK4R,EAAKvoB,IACfwa,EAGX,OAAOA,CACT,CACA,OAAOA,CACT,CAEqB0O,CAAYb,EAAOroB,EAAI+oB,GAE5C,MAAO,CACLD,sBAAuBR,EAAeW,EAvBlB,IAuBuCxN,QAAQ8M,GAASA,EAAKnS,UAASzK,KAAK4c,GAASA,EAAKvoB,KAC7G+oB,OACD,EAWuCC,CAAa7S,EAAMkS,EAAMroB,IAEjE,IAAI6oB,EAAQ1Z,EACR,IAAI4Y,KAAae,GACjBf,EACGtM,QAAQ9a,IAAWmoB,EAAsB3tB,SAASwF,KAClD8a,QAAQ9a,IAAWooB,EAAK5tB,SAASwF,KAExCkoB,EAAQA,EAAMpN,QAAO,CAAC9a,EAAOyoB,IAAUP,EAAMQ,QAAQ1oB,KAAWyoB,IAAO3N,QAAQ9a,GAAoB,OAAVA,IAEzFqnB,EAAYa,GACZ1T,EAAmB0T,EAAM,EAGrBS,EAAcjB,IAClB,MAAMkB,EAAsBpB,EAAUE,EAAMroB,KAAK2b,OAAO6N,GAAwBvB,EAAYwB,IAAID,KAC1Fra,IAAUkZ,EAAMjS,UAAwB,OAAbiS,EAAMroB,GAAcioB,EAAYwB,IAAIpB,EAAMroB,KAAOupB,IAAuB,EAAQtB,EAAYwB,IAAIpB,EAAMroB,KAEjIgd,EAAgBmL,EAAUE,EAAMroB,KAAK0pB,MAAMF,GAAwBvB,EAAYwB,IAAID,OAAiB,EAE1G,OACE9pB,EAAAA,cAACiqB,EAAAA,EAAQ,CACP9d,IAAKwc,EAAMroB,GACX4pB,OAAQvB,EAAMroB,GACdU,MACEhB,EAAAA,cAACqS,EAAAA,EAAgB,CACfC,QACEtS,EAAAA,cAACwP,EAAAA,EAAQ,CACPC,QAASA,EACT6N,cAA4B,OAAbqL,EAAMroB,MAAeupB,GAAuBvM,GAC3D9K,SAAWoB,GAAUsV,EAAYtV,EAAMuW,cAAc1a,QAASkZ,GAC9DrP,QAAU1F,GAAUA,EAAMwW,kBAC1BzoB,UAAWgnB,EAAMjS,UAGrB1V,MAAOhB,EAAAA,cAAAA,EAAAA,SAAA,KAAG2oB,EAAM3nB,OAChBmL,IAAK,GAAGwc,EAAM3nB,SAAS2nB,EAAMroB,KAC7BmB,GAAI,CAAE4oB,WAAY,UAKpB3Q,MAAMuP,QAAQN,EAAM7wB,UAChB6wB,EAAM7wB,SAASmU,KAAK4c,GAASe,EAAWf,KACxC,KAEG,EAIf,OACE7oB,EAAAA,cAACsqB,EAAAA,EAAW,CACVhqB,GAAI,GAAGvE,OACPwuB,oBAAqBvqB,EAAAA,cAACwqB,EAAAA,EAAU,MAChCC,kBAAmBzqB,EAAAA,cAAC0qB,EAAAA,EAAY,MAChC/T,gBAAiBA,GAAmB,CAAC,OAEpCiT,EAAWnT,GACA,C","sources":["webpack://app/./node_modules/@platform-ui/design-system/dist/esm/Tooltip/index.js","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/SalesforceCPQ/Connection/TestConnection.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/SalesforceCRM/PackageLink/PackageLink.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/ConnectionSettings.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/AccountInfo.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/index.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/ConfigInfo/ConfigInfo.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/ConfigInfo/index.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/stores/AccountInfo/reducer.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/stores/ConfigInfo/reducer.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/styles/index.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/Authentication/Authentication.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/BasicAuth/BasicAuth.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/OAuth/OAuth.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/SyncSettings/ManualSync.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/SyncSettings/Reconciliation.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDP/SyncSettings/SyncSettings.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/components/MetricsInfoCard.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/components/ZdqConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AuroraMySql/ZdqAuroraMySqlConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AuroraMySql/ZdqAuroraMySqlConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsAthena/ZdqAwsAthenaConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsAthena/ZdqAwsAthenaConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsAuroraPostgres/ZdqAwsAuroraPostgresConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsAuroraPostgres/ZdqAwsAuroraPostgresConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsRdsPostgres/ZdqAwsRdsPostgresConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsRdsPostgres/ZdqAwsRdsPostgresConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsRedshift/ZdqAwsRedshiftConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsRedshift/ZdqAwsRedshiftConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsS3/ZdqAwsS3Connector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AwsS3/ZdqAwsS3ConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AzureBlobStorage/ZdqAzureBlobStorageConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/AzureBlobStorage/ZdqAzureBlobStorageConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/BigQuery/ZdqBigQueryConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/BigQuery/ZdqBigQueryConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/Databricks/ZdqDatabricksConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/Databricks/ZdqDatabricksConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GcpPostgres/ZdqGcpPostgresConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GcpPostgres/ZdqGcpPostgresConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GenericMySql/ZdqGenericMySqlConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GenericMySql/ZdqGenericMySqlConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GenericPostgres/ZdqGenericPostgresConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GenericPostgres/ZdqGenericPostgresConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GoogleCloudStorage/ZdqGoogleCloudStorageConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/GoogleCloudStorage/ZdqGoogleCloudStorageConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/SqlServer/ZdqSqlServerConnector.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/connectors/SqlServer/ZdqSqlServerConnectorStatus.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/ZDQ/fetchTokens/fetchAuthTokenWithExistingDestination.ts","webpack://app/./app/javascript/bundles/IntegrationApps/IntegrationAppDetails/components/CustomTab.tsx","webpack://app/./app/javascript/bundles/TreeView/TreeView.tsx"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\nimport { Tooltip as MuiTooltip } from '@mui/material';\n\nvar Tooltip = function Tooltip(_ref) {\n var title = _ref.title,\n open = _ref.open,\n e2e = _ref.e2e,\n dsOnClose = _ref.dsOnClose,\n dsOnOpen = _ref.dsOnOpen,\n children = _ref.children,\n placement = _ref.placement;\n return /*#__PURE__*/React.createElement(MuiTooltip, _extends({}, e2e && {\n 'data-e2e': e2e\n }, {\n title: title,\n open: open,\n onOpen: dsOnOpen,\n onClose: dsOnClose,\n placement: placement\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n style: {\n display: 'inline-flex'\n }\n }, e2e && {\n 'data-e2e': \"\".concat(e2e, \"-body\")\n }), children));\n};\n\nexport default Tooltip;\n//# sourceMappingURL=index.js.map","import React, { Dispatch, FC, useEffect, useState } from 'react';\nimport { Grid, Typography, Card, Button, TextField, Spinner, ToastController } from '@platform-ui/design-system';\nimport { Action, useStoreContext } from '../../../../Store';\nimport { IADState } from '../../../../IntegrationApps/IntegrationAppDetails/state';\nimport { TEST_CONNECTION, SETTINGS } from '../../../../IntegrationApps/IntegrationAppDetails/action_types';\nimport { windmillRun } from '../../../../Connect/Connect';\n\ninterface TestConnectionProps {\n fieldGroups?: object;\n}\n\nexport const TestConnection: FC = ({\n fieldGroups\n}: TestConnectionProps) => {\n const { state, dispatch } = useStoreContext() as { state: IADState, dispatch: Dispatch };\n \n const [host, setHost] = useState(state.settingsHash?.settings?.[\"Salesforce Host\"] || '');\n const [refreshToken, setRefreshToken] = useState(state.settingsHash?.settings?.[\"Salesforce Refresh Token\"] || null);\n const [orgId, setOrgId] = useState(state.settingsHash?.settings?.[\"Salesforce Organization Id\"] || state.settingsHash?.external_id || null);\n const [httpsIncludedError, setHttpsIncludedError] = useState(false);\n // Local Testing use below\n // const [redirectUri] = useState(window.location.href);\n const [redirectUri] = useState(() => {\n const baseUrl = window.location.origin + '/services/connect/integration_apps/salesforce_cpq';\n const queryParams = '?tabname=settings';\n return baseUrl + queryParams;\n });\n const [invalidHostError, setInvalidHostError] = useState(false);\n const [loading, setLoading] = useState(false);\n const [toast, setToast] = useState({\n show: false,\n msg: '',\n severity: '',\n duration: 0,\n loading: false\n });\n \n const clientId = \"3MVG90tbpWH0j.nld5Cwb1x3loHabIQrFS3H0PI0XCTpdO2WawfP4TfI4AqG0VI6jQCs5oRXeGG994BE3I3EK\";\n const clientSecret = \"385D173F2111C91617B3A91FC3EAB8E408A032B8E7994D91C4826D94FA59A94B\";\n // NOTE(Michael): The client id and secret are scoped only to Zuora domains for redirect and used only to create an app token\n // NOTE(Michael): https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_refresh_token_flow.htm&type=5https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_refresh_token_flow.htm&type=5\n const authorizationUrl = `https://${host}/services/oauth2/authorize?response_type=code&client_id=${clientId}&client_secret=${clientSecret}&scope=refresh_token+full&state=${host}&redirect_uri=${redirectUri}/crm-con/cpqbutton/public/sfdc/auth/callback`;\n \n const handleDispatch = (type: string, payload: any) => {\n dispatch({ type, payload });\n };\n \n const isValidSalesforceUrl = (url: string) => {\n const salesforcePattern = /^https:\\/\\/.*\\.salesforce\\.com$/;\n return salesforcePattern.test(url);\n };\n \n const handleHostChange = (e: React.ChangeEvent) => {\n const newHost = e.target.value;\n \n if (newHost.startsWith(\"https://\")) {\n setHttpsIncludedError(true);\n } else {\n setHttpsIncludedError(false);\n }\n \n setHost(newHost);\n handleDispatch(SETTINGS, { \"Salesforce Host\": newHost });\n \n const fullUrl = `https://${newHost}`;\n if (!isValidSalesforceUrl(fullUrl)) {\n setInvalidHostError(true);\n } else {\n setInvalidHostError(false);\n }\n };\n \n const isTestConnectionDisabled = !host || invalidHostError || httpsIncludedError || loading;\n \n const testAuthorizationEndpoint = async () => {\n try {\n const response = await windmillRun({\n script_path: 'f/cpq/redirect_status_check',\n params: { url: authorizationUrl },\n async: false,\n });\n \n switch (response.statusCode) {\n case 200:\n setToast({\n show: true,\n msg: 'Authorization URL is valid. Proceeding...',\n severity: 'success',\n duration: 3000,\n loading: false,\n });\n return true;\n \n case 400:\n setToast({\n show: true,\n msg: 'Error: The endpoint is not configured in Salesforce.',\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n return false;\n \n case 420:\n setToast({\n show: true,\n msg: 'Error: Invalid Host. Please check your host URL.',\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n return false;\n \n default:\n setToast({\n show: true,\n msg: `Unexpected status code: ${response.statusCode}`,\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n return false;\n }\n } catch (error) {\n setToast({\n show: true,\n msg: `Failed to validate authorization URL: ${error.message}`,\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n console.error(\"Error during authorization check:\", error);\n return false;\n }\n };\n \n const fetchAccessTokenAndOrgId = async (code: string, host: string) => {\n const tokenUrl = `https://${host}/services/oauth2/token?grant_type=authorization_code&client_id=${clientId}&client_secret=${clientSecret}&code=${code}&redirect_uri=${redirectUri}`;\n\n try {\n const tokenResponse = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n });\n \n if (!tokenResponse.ok) {\n throw new Error(`Failed to fetch access token: ${tokenResponse.statusText}`);\n }\n \n const tokenJson = await tokenResponse.json();\n const accessToken = tokenJson.access_token;\n const refreshToken = tokenJson.refresh_token\n \n if (!accessToken) {\n throw new Error(\"Access token not found\");\n }\n \n const orgIdUrl = `https://${host}/services/data/v58.0/query?q=SELECT+Id+FROM+Organization`;\n const orgIdResponse = await fetch(orgIdUrl, {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${accessToken}`,\n },\n });\n \n if (!orgIdResponse.ok) {\n throw new Error(`Failed to fetch Org ID: ${orgIdResponse.statusText}`);\n }\n \n const orgIdJson = await orgIdResponse.json();\n let orgId = orgIdJson.records[0]?.Id;\n \n if (!orgId) {\n throw new Error(\"Org ID not found\");\n }\n // Trimmed ordId, sometimes it comes in more length than needed\n orgId = orgId.substring(0, 15)\n \n return { refreshToken, orgId };\n } catch (error) {\n console.error(\"Error fetching token or Org ID:\", error);\n throw error;\n }\n };\n \n \n const saveSettingsToBackend = async (showSuccessMessage = true) => {\n try {\n const settingsHashKeys = Object.keys(state.settingsHash || {});\n \n for (let i = 0; i < state.tabDetails.length; i++) {\n const tab = state.tabDetails[i];\n const keys = Object.keys(state.tabDetails[i] || {});\n for (let j = 0; j < keys.length; j++) {\n const settingsHashKey = keys[j]?.split('/').pop();\n if (!settingsHashKeys.includes(settingsHashKey)) continue;\n \n const fieldGroups = tab[keys[j]]?.fieldGroups || [];\n for (let k = 0; k < fieldGroups.length; k++) {\n const fields = fieldGroups[k]?.fields || [];\n for (let l = 0; l < fields.length; l++) {\n const field = fields[l] || {};\n if (field.required && (!state.settingsHash[settingsHashKey]?.[field.name])) {\n return alert(`${field.titleTranslations?.en || field.name} is REQUIRED!!!`);\n }\n }\n }\n }\n }\n \n const newState = {\n settings_hash: {\n ...state.settingsHash,\n settings: {\n ...state.settingsHash.settings,\n \"Salesforce Refresh Token\": refreshToken,\n \"Salesforce Host\": host,\n \"Salesforce Organization Id\": orgId,\n tray_migrated_refresh_token: false\n },\n external_id: orgId\n }\n };\n \n const csrf = document.querySelector('meta[name=\"csrf-token\"]')?.getAttribute('content');\n const options = {\n method: state.createOrUpdate === 'update' ? 'PUT' : 'POST',\n headers: new Headers({\n 'Accept': 'application/json',\n 'Content-type': 'application/json',\n 'X-CSRF-Token': csrf || ''\n }),\n body: JSON.stringify(newState)\n };\n \n const response = await window.fetch(`${state.settingsUrl}${window.location.search}`, options);\n const data = await response.json();\n \n if (!response.ok) throw new Error(data.message || 'Failed to save authorization code!');\n \n if (showSuccessMessage) {\n setToast({\n show: true,\n msg: 'Settings saved successfully!',\n severity: 'success',\n duration: 5000,\n loading: false,\n });\n }\n } catch (error) {\n setToast({\n show: true,\n msg: error.message,\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n console.error('Error saving settings:', error);\n } finally {\n setLoading(false);\n }\n };\n \n const handleTestConnection = async () => {\n if (!host) {\n setToast({\n show: true,\n msg: 'Please enter a valid host URL',\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n return;\n }\n \n setToast({\n show: true,\n msg: 'Validating Salesforce Connection...',\n severity: 'info',\n duration: 5000,\n loading: false,\n });\n \n try {\n setLoading(true);\n const isAuthorized = await testAuthorizationEndpoint();\n if (isAuthorized) {\n setTimeout(() => {\n window.location.href = authorizationUrl;\n }, 1000);\n }\n\n await saveSettingsToBackend(false);\n\n } catch (error) {\n setToast({\n show: true,\n msg: 'Error testing connection',\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n console.error('Error testing connection:', error);\n } finally {\n setLoading(false);\n }\n };\n \n useEffect(() => {\n const initialHost = state.settingsHash?.settings?.[\"Salesforce Host\"] || null;\n const initialRefreshToken = state.settingsHash?.settings?.[\"Salesforce Refresh Token\"] || null;\n if (initialHost !== null) {\n setHost(initialHost);\n }\n if (initialRefreshToken !== null) {\n setRefreshToken(initialRefreshToken);\n }\n }, [state.settingsHash]);\n \n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const paramCode = urlParams.get('code');\n const paramState = urlParams.get('state');\n\n if (paramCode && state) {\n fetchAccessTokenAndOrgId(paramCode, paramState)\n .then(({ refreshToken, orgId }) => {\n setRefreshToken(refreshToken);\n setOrgId(orgId);\n handleDispatch(SETTINGS, { \"Salesforce Refresh Token\": refreshToken, \"Salesforce Organization Id\": orgId, external_id: orgId });\n\n const newUrlParams = new URLSearchParams(window.location.search);\n newUrlParams.delete('code');\n newUrlParams.delete('state');\n const newUrl = `${window.location.pathname}?${newUrlParams.toString()}`;\n window.history.replaceState({}, document.title, newUrl);\n })\n .catch((error) => {\n console.error(\"Error during Salesforce OAuth process:\", error);\n setToast({\n show: true,\n msg: \"Failed to retrieve Org ID\",\n severity: \"error\",\n duration: 5000,\n loading: false,\n });\n });\n }\n}, [window.location.search]);\n\n useEffect(() => {\n if (refreshToken && !window.location.search) {\n const saveTokenToBackend = async () => {\n try {\n setLoading(true);\n await saveSettingsToBackend(false);\n \n setToast({\n show: true,\n msg: 'Refresh Token received and saved successfully!',\n severity: 'success',\n duration: 5000,\n loading: false,\n });\n } catch (error) {\n setToast({\n show: true,\n msg: 'Failed to save Refresh Token to backend.',\n severity: 'error',\n duration: 5000,\n loading: false,\n });\n console.error('Error saving refresh token:', error);\n } finally {\n setLoading(false);\n }\n };\n \n saveTokenToBackend();\n }\n }, [refreshToken]);\n\n return (\n \n \n \n \n \n {state.settingsHash?.settings?.[\"Salesforce Refresh Token\"] ? (\n \n Connection Status: Connected\n \n ) : (\n \n Connection Status: Not Connected (No Refresh Token)\n \n )}\n \n\n \n {state.settingsHash?.external_id && (\n \n Salesforce Org ID: {state.settingsHash?.external_id.substring(0, 15)}\n \n )}\n \n \n \n \n Enter the Salesforce Host\n \n \n\n \n \n \n \n \n {invalidHostError && (\n \n Invalid Salesforce URL\n \n )}\n {httpsIncludedError && (\n \n Please remove \"https://\" from the URL.\n \n )}\n \n \n \n \n {loading ? : 'Test Connection'}\n \n {state.modified && (\n \n Please save your changes before testing the connection.\n \n )}\n \n \n {toast.show && (\n \n )}\n \n }\n />\n \n \n );\n};\n\nexport default TestConnection;\n","import { Grid, Typography, Card, Button, Link, Spinner, Icon } from '@platform-ui/design-system';\nimport React, { FC, useEffect, useState } from 'react';\nimport Connect from '../../../../Connect/Connect';\n\ninterface PackageLinkProps {\n packageLink?: string;\n showAlertIcon: (tabName: string, icon: string, tooltip: string) => void;\n}\n\ninterface packageVersionData {\n tenantId: string;\n z360Version: string;\n zquVersion: string;\n}\n\nexport const PackageLink: FC = ({\n packageLink,\n showAlertIcon\n}: PackageLinkProps) => {\n\n const [packageVersion, setPackageVersion] = useState(null);\n const [loading, setLoading] = useState(true);\n const [showCPQ, setShowCPQ] = useState(false);\n\n const connect: Connect = (window as any).connect;\n const tenantId = (connect.tenant as any).tenant_id;\n\n const knowledgeCenterSalesforceCRM = 'https://knowledgecenter.zuora.com/Zuora_Central_Platform/Zuora_Connector_for_Salesforce_CRM/2_Getting_Started_with_Zuora_Data_Sync_for_Salesforce_CRM/1_Zuora_Data_Sync_for_Salesforce_CRM_Installation'\n\n //TODO (Anan): change this hard coded version to something adjustable from outside\n const latestSalesforceVersion = '5.18';\n const latestCPQVersion = '10.31.2';\n\n const openKnowledgeCenterLink = () => {\n window.open(knowledgeCenterSalesforceCRM, '_blank');\n }\n\n const getCurrentPackageVersion = async () => {\n try {\n // This is for LocalHoat testing only\n if (window.location.host.includes(\"local\")) {\n setLoading(false);\n return { tenantId: '1919', z360Version: \"5.1\", zquVersion: '1.1', ttl: 3600 };\n }\n\n const endpoint = `/platform/gateway-proxy-v2/datacon/package/versions/tenants/${tenantId}`;\n const request: RequestInit = {\n method: 'GET',\n headers: {\n 'Zuora-Tenant-Id': tenantId,\n 'Content-Type': 'application/json',\n },\n };\n\n const response = await fetch(endpoint, request);\n\n if (!response.ok) {\n Connect.log(`HTTP error! Status: ${response.status}`);\n return;\n }\n\n const data = await response.json();\n setLoading(false);\n return data;\n } catch (error) {\n setLoading(false);\n Connect.log(`Fetch error: ${error}`);\n return;\n }\n };\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const data: packageVersionData = await getCurrentPackageVersion();\n setPackageVersion(data);\n if (data.z360Version !== latestSalesforceVersion) {\n showAlertIcon('Package Link', 'info', 'New Package Version Available');\n }\n if (data.zquVersion && data.zquVersion !== '0.0') {\n setShowCPQ(true);\n }\n } catch (error) {\n Connect.log(`Error fetching package version: ${error}`);\n }\n };\n fetchData();\n }, []);\n \n return (\n \n \n {/* Left Top Card */}\n \n \n \n {`Latest Package Version: ${latestSalesforceVersion}`}\n \n \n \n {loading ? :\n \n \n \n {packageVersion?.z360Version && `Version Currently Installed: ${packageVersion.z360Version}`}\n \n \n {packageVersion?.z360Version !== latestSalesforceVersion && \n \n \n }\n \n } />\n }\n \n \n \n \n \n \n \n \n }\n />\n \n {/* Left Bottom Card */}\n { showCPQ && \n \n \n Note: Zuora CPQ package must be installed to sync Product Catalog related objects\n \n \n \n \n {`Latest Package Version: ${latestCPQVersion}`}\n \n \n \n {loading ? :\n \n \n \n {packageVersion?.zquVersion && `Version Currently Installed: ${packageVersion.zquVersion}`}\n \n \n {packageVersion?.zquVersion !== latestCPQVersion && \n \n \n }\n \n } />\n }\n \n \n \n \n \n \n \n \n }\n />}\n \n \n {/* Right Card */}\n \n \n \n \n Knowledge Center Instructions\n \n
    \n
  1. Navigate to the URL provided by Zuora and log in to your Salesforce org.
  2. \n
  3. On the Package Installation Details page, review the information and click Continue.
  4. \n
  5. When prompted to approve third-party access, select Yes to grant access and click Continue.
  6. \n
  7. On the Approve Package API Access page, click Next.
  8. \n
  9. \n On the Choose Security Level page, select Select Security Settings to set the level of access that you want to provide for user groups. If you select Grant access to admins only, you must update your security settings in Salesforce to grant permissions to other users to be able to access Zuora Connector for Salesforce CRM.\n
  10. \n
  11. Set access level for each user profile.
  12. \n
  13. Click Next.
  14. \n
  15. On the Install Package page, click Install. The installation process starts, and you will receive an automated email when the process completes.
  16. \n
  17. Select Zuora 360 Sync from the menu at the top right-hand corner to change to the Zuora 360 view. Now you are ready to configure the package.
  18. \n
\n
\n
\n
\n }\n />\n \n \n );\n}\n","import React from 'react';\nimport { Alert, Card, Spinner } from '@platform-ui/design-system';\nimport { ContentPaddingStyle } from './styles';\n\nimport ConfigInfo from './components/ConfigInfo';\nimport AccountInfo from './components/AccountInfo';\nimport { useIdentity } from '../../../IdentityProvider';\n\nimport { useFlipperHook } from '../../../Tables/helpers';\n\nconst ConnectionSettings = () => {\n const { hasPermission } = useIdentity();\n const [snowflakeConfigEnabled, snowflakeConfigLoading] = useFlipperHook('enable_snowflake_config');\n\n if (!hasPermission('permission.SnowflakeSecureShare')) {\n return (\n \n );\n }\n\n const getAccountInfoSection = () => {\n return hasPermission('permission.SnowflakeSecureShare') ? (\n \n ) : (\n \n );\n };\n \n const getConfigInfoSection = () => {\n return hasPermission('permission.PoweredBySnowflake') ? (\n \n ) : (\n \n );\n };\n\n return (\n \n : <>\n \n {getAccountInfoSection()}\n \n
\n { \n snowflakeConfigEnabled &&\n \n {getConfigInfoSection()}\n \n }\n \n }\n />\n );\n};\n\nexport default ConnectionSettings;\n","import React, { useEffect, useReducer, useState } from 'react';\nimport {\n ButtonSectionStyle,\n ContentPaddingStyle,\n TopMessageInProgress,\n TopMessageCompleted\n} from '../../styles';\nimport {\n Alert,\n Button,\n Card,\n Modal,\n ModalActions,\n ModalTitle,\n Select,\n SelectItem,\n Spinner,\n TextField,\n Typography,\n designTokens\n} from '@platform-ui/design-system';\nimport {\n initialState as accountInfoInitialState,\n reducer as accountInfoReducer\n} from '../../stores/AccountInfo';\nimport { Box } from '@mui/material';\nimport { useToast } from '../../../../../ToastProvider';\nimport { useIdentity } from '../../../../../IdentityProvider';\nimport Connect from '../../../../../Connect/Connect';\n\nconst getDatetime = (datetime: string | Number, locale: string, timezone: string) => {\n return Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZone: timezone,\n timeZoneName: 'short'\n }).format(new Date(Number(datetime)));\n};\n\nconst AccountInfo = () => {\n const [regions, setRegions] = useState([]);\n const { setToast } = useToast();\n const [provisionStatusMessage, setProvisionStatusMessage] = useState('');\n const [provisionCompletionStatus, setProvisionCompletionStatus] = useState(false);\n const [confirmationModalOpen, setConfirmationModalOpen] = useState(false);\n const [accountInfoFormState, accountInfoFormDispatch] = useReducer(\n accountInfoReducer,\n accountInfoInitialState\n );\n const { identity, zdsLocale, timezone } = useIdentity();\n const [loadingProvisionStatus, setLoadingProvisionStatus] = useState(true);\n const showSuccessAlertKey = 'ih_snowflake_show_success_alert';\n const [openSuccessAlert, setOpenSuccessAlert] = useState(() => {\n const showAlert = localStorage.getItem(showSuccessAlertKey);\n return showAlert === null ? true : showAlert === 'true';\n });\n const isLocal = window.location.host.includes('localhost');\n const proxyPath = `${isLocal ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2`;\n\n const setTopMessage = () => {\n if (accountInfoFormState.alreadyInstalled) {\n if (!provisionCompletionStatus) {\n setProvisionStatusMessage(\n 'Secure Share setup has been initiated. You will see a status update once your share is ready to access.'\n );\n } else {\n setProvisionStatusMessage(\n 'Secure Share setup is successfully installed and ready to access.'\n );\n }\n }\n };\n\n const fetchProvisionCompletionStatus = async () => {\n setLoadingProvisionStatus(true);\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/provision/completionstatus/${identity?.tenantId}`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n setProvisionCompletionStatus(await response.json());\n } catch (error) {\n Connect.log(`Error fetching snowflake provision completion status: ${error}`);\n setToast({\n message: 'Error fetching snowflake provision completion status! Please refresh the page and try again later!!!',\n severity: 'error',\n keyRender: Date.now()\n });\n } finally {\n setLoadingProvisionStatus(false);\n }\n };\n\n const fetchAccountInfo = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/accountinfo`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json', 'zuora-tenant-id': identity?.tenantId }\n );\n const payload = await response.json();\n if (payload?.status === 500) {\n // Note(Duc): this 500 error returned in the response indicates the tenant does not have SNOWFLAKE created in tenant registry\n accountInfoFormDispatch({ type: 'loadAccountInfo', payload: {} });\n } else {\n accountInfoFormDispatch({ type: 'loadAccountInfo', payload });\n }\n } catch (error) {\n Connect.log(`Error fetching snowflake account info: ${error}`);\n setToast({\n message: 'Error fetching snowflake account info! Please refresh the page and try again later!!!',\n severity: 'error',\n keyRender: Date.now()\n });\n }\n };\n\n const fetchRegions = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/regions`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n setRegions(await response.json());\n } catch (error) {\n Connect.log(`Error fetching snowflake regions: ${error}`);\n setToast({\n message: 'Error fetching snowflake regions! Please refresh the page and try again later!!!',\n severity: 'error',\n keyRender: Date.now()\n });\n }\n };\n\n useEffect(() => {\n fetchRegions();\n fetchAccountInfo();\n fetchProvisionCompletionStatus();\n }, []);\n\n const provisionTenantShare = async () => {\n const {\n region,\n accountEdition: snowflakeAccountEdition\n } = accountInfoFormState;\n\n const tenantId = identity?.tenantId;\n\n const businessCritical = snowflakeAccountEdition === 'Business Critical';\n const serviceType = 'billing';\n const shareObjects = null;\n const shareLatency = 'EVERYDAY';\n const warehouse = false;\n\n Connect.proxyCall(\n `${proxyPath}/shares/provision`,\n 'POST',\n {\n tenantId,\n serviceType,\n region,\n shareObjects,\n shareLatency,\n warehouse,\n businessCritical\n },\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n ).then((response) => {\n if (response.ok) {\n setProvisionStatusMessage(\n 'Secure Share setup has been initiated. You will see a status update once your share is ready to access.'\n );\n setToast({\n message: 'Account information was saved and provisioning was initiated successfully.',\n severity: 'success',\n keyRender: Date.now()\n });\n } else {\n setToast({\n message: 'We encountered a problem with setting up the share. Please verify the details and reinitiate the setup.',\n severity: 'error',\n keyRender: Date.now()\n });\n }\n }).catch(() => {\n setToast({\n message: 'We encountered a problem with setting up the share. Please verify the details and reinitiate the setup.',\n severity: 'error',\n keyRender: Date.now()\n });\n });\n };\n\n const saveAccountInfo = async () => {\n const {\n region: snowflakeAccountRegion,\n accountName: snowflakeAccountName,\n accountEdition: snowflakeAccountEdition\n } = accountInfoFormState;\n\n Connect.proxyCall(\n `${proxyPath}/shares/accountinfo`,\n 'POST',\n {\n snowflakeAccountRegion,\n snowflakeAccountName,\n snowflakeAccountEdition,\n installationUserFirstName: identity?.firstName || 'Admin',\n installationUserLastName: identity?.lastName || 'Admin',\n installationUserEmail: identity?.workEmail || 'admin@zuora.com'\n },\n { 'Accept': 'application/json', 'Content-Type': 'application/json', 'zuora-tenant-id': identity?.tenantId }\n ).then((response) => {\n accountInfoFormDispatch({ type: 'setValidating', payload: false });\n if (response.ok) {\n fetchAccountInfo();\n setConfirmationModalOpen(false);\n provisionTenantShare();\n } else {\n setToast({\n message: 'We encounted a problem installing your account information. Please try again later.',\n severity: 'error',\n keyRender: Date.now()\n });\n }\n }).catch(() => {\n accountInfoFormDispatch({ type: 'setValidating', payload: false });\n setToast({\n message: 'We encounted a problem installing your account information. Please try again later.',\n severity: 'error',\n keyRender: Date.now()\n });\n });\n };\n\n const validateAccountInfo = async () => {\n const {\n region: snowflakeAccountRegion,\n accountName: snowflakeAccountName,\n accountEdition: snowflakeAccountEdition\n } = accountInfoFormState;\n\n accountInfoFormDispatch({ type: 'setValidating', payload: true });\n Connect.proxyCall(\n `${proxyPath}/shares/accountinfo/validate`,\n 'POST',\n {\n snowflakeAccountRegion,\n snowflakeAccountName,\n snowflakeAccountEdition,\n installationUserFirstName: identity?.firstName || 'Admin',\n installationUserLastName: identity?.lastName || 'Admin',\n installationUserEmail: identity?.workEmail || 'admin@zuora.com'\n },\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n ).then((response) => {\n if (response.ok) {\n saveAccountInfo();\n } else {\n accountInfoFormDispatch({ type: 'setValidating', payload: false });\n setToast({\n message: 'We encounted a problem verifying your account information. Please try again later.',\n severity: 'error',\n keyRender: Date.now()\n });\n }\n }).catch(() => {\n accountInfoFormDispatch({ type: 'setValidating', payload: false });\n setToast({\n message: 'We encounted a problem verifying your account information. Please try again later.',\n severity: 'error',\n keyRender: Date.now()\n });\n });\n };\n\n const getInputInstructions = (snippet: string, type: string) => {\n const message = type === 'region' ? \n 'To find this information, navigate to your Snowflake account, then run the following command:' :\n 'To find the account locator, run the following command in your Snowflake account, and if you receive a validation failure, the locator differs from the account name; in that case, retrieve the locator from your Snowflake URL, which is in the format https://..snowflakecomputing.com/..., where the part before the first dot (.) is your Account Locator:'\n\n return (\n \n \n \n {snippet}\n \n \n )\n };\n\n const getInputInstructionsWithoutCommand = (snippet) => (\n \n \n \n {snippet}\n \n \n );\n\n const RegionInstructions = () =>\n getInputInstructions('SELECT CURRENT_REGION();', 'region');\n\n const AccountInstructions = () =>\n getInputInstructions('SELECT CURRENT_ACCOUNT();', 'account');\n\n const AccountEditionInstructions = () =>\n getInputInstructionsWithoutCommand(\n 'For classic UI, click the account name on top right corner and check edition in account information. For Snowsight UI, click the account name in the bottom left corner and hover over the account information to get the edition.',\n );\n\n const hasMissingAccountInfo = () => {\n const { region, accountName, accountEdition } = accountInfoFormState;\n return !region || !accountName || !accountEdition;\n };\n\n const TopMessageSection = () => {\n if (accountInfoFormState.alreadyInstalled) {\n return provisionCompletionStatus ? (\n \n setOpenSuccessAlert(false)}\n action={\n {\n setOpenSuccessAlert(false);\n localStorage.setItem(showSuccessAlertKey, 'false');\n }}\n variant='text'\n >\n Don't Show Again\n \n }\n />\n \n ) : (\n \n \n \n );\n } else {\n return
;\n }\n };\n\n const InstallButtonSection = () => {\n setTopMessage();\n return accountInfoFormState.alreadyInstalled ? (\n
\n ) : (\n
\n \n {\n setConfirmationModalOpen(true);\n }}\n >\n Install\n \n \n
\n );\n };\n\n const InstalledBySection = () => {\n return !accountInfoFormState.alreadyInstalled ? (\n <>\n ) : (\n \n
\n Installed By:\n
\n
\n {`${accountInfoFormState.installerFirstName} ${accountInfoFormState.installerLastName} (${accountInfoFormState.installerEmail})`}\n
\n
\n {getDatetime(accountInfoFormState.installDate, zdsLocale, timezone)}\n
\n
\n );\n };\n\n const AccountInfoLoadingAnimation = () =>\n accountInfoFormState.validating ? (\n \n \n \n ) : (\n <>\n );\n\n const ModalBody = () => (\n <>\n
\n By clicking \"Allow & Install\" below, you are allowing Zuora to transmit\n your Zuora data to the Snowflake account that you have provided.\n This action cannot be reverted.\n
\n\n \n Snowflake Region: {accountInfoFormState.region}\n Snowflake Account Name: {accountInfoFormState.accountName}\n Snowflake Account Edition: {accountInfoFormState.accountEdition}\n Installed By User: {identity?.firstName} {identity?.lastName} ({identity?.workEmail})\n \n \n );\n\n const content = (\n <>\n \n \n Please provide your Snowflake account information.\n \n {\n accountInfoFormDispatch({\n type: 'setRegion',\n payload: (e.target.value as any) || ''\n });\n }}\n >\n {\n regions.sort().map((item) => (\n \n {item}\n \n ))\n }\n \n \n {\n accountInfoFormDispatch({\n type: 'setAccountName',\n payload: target.value\n });\n }}\n value={accountInfoFormState.accountName || ''}\n />\n \n {\n accountInfoFormDispatch({\n type: 'setAccountEdition',\n payload: (e.target.value as any) || ''\n });\n }}\n >\n Enterprise\n Business Critical\n \n \n \n \n \n \n \n ALLOW ZUORA TO CONNECT & TRANSMIT DATA TO SNOWFLAKE\n \n \n \n \n }\n body={}\n footer={\n \n setConfirmationModalOpen(false)}\n >\n Cancel\n \n validateAccountInfo()}\n >\n Allow & Install\n \n \n }\n dsOnClose={() => setConfirmationModalOpen(false)}\n />\n \n );\n\n return (\n : content}\n variant=\"outlined\"\n />\n );\n};\n\nexport default AccountInfo;\n","import AccountInfo from './AccountInfo';\nexport default AccountInfo;","import React, { useEffect, useReducer, useState } from 'react';\nimport {\n ButtonSectionStyle,\n SnowflakeInputRowSectionStyle,\n SnowflakeInputSectionStyle,\n} from '../../styles';\nimport {\n Button,\n Card,\n Checkbox,\n TextField,\n Typography,\n Modal,\n Spinner,\n Tooltip,\n Icon,\n designTokens,\n Link,\n} from '@platform-ui/design-system';\nimport {\n initialState as configInitialState,\n reducer as configReducer,\n} from '../../stores/ConfigInfo';\nimport { Box } from '@mui/material';\nimport { useToast } from '../../../../../ToastProvider';\nimport Connect from '../../../../../Connect/Connect';\n\nconst ConfigInfo = () => {\n const { setToast } = useToast();\n const [configFormEditable, setConfigFormEditable] = useState(false);\n const [showConfirmCancelModal, setShowConfirmCancelModal] = useState(false);\n const [configFormState, configFormDispatch] = useReducer(\n configReducer,\n configInitialState,\n );\n const isLocal = window.location.host.includes('localhost');\n const proxyPath = `${isLocal ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2`;\n\n const hasErrors = (fieldName) => {\n const { fieldErrors } = configFormState;\n return fieldErrors.includes(fieldName);\n };\n\n const clearConfigErrors = () => {\n configFormDispatch({ type: 'clearErrors' });\n };\n\n const fetchConfigInfo = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n configFormDispatch({ type: 'loadConfigInfo', payload: await response.json() });\n } catch (error) {\n Connect.log(`Error fetching snowflake config info: ${error}`);\n }\n };\n\n const upsertConfigInfo = () => {\n configFormDispatch({ type: 'setSaving' });\n const {\n userName: username,\n password,\n role,\n warehouse,\n accountId,\n databaseName: database,\n } = configFormState;\n\n const body = {\n username,\n password,\n role,\n warehouse,\n accountId,\n database,\n poweredBySnowflake: configFormState.poweredBySnowflakeEnabled,\n };\n\n let response;\n if (configFormState.loadedConfigInfo.loaded) {\n response = Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'PUT',\n body,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n } else {\n response = Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'POST',\n body,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n }\n\n response.then(() => {\n configFormDispatch({ type: 'setSavingSucceeded' });\n setToast({\n message: 'The Snowflake configuration was successfully saved.',\n severity: 'success',\n keyRender: Date.now(),\n });\n setConfigFormEditable(!configFormEditable);\n\n //fetch config info to override the loaded values\n fetchConfigInfo();\n }).catch(() => {\n configFormDispatch({ type: 'setSavingFailed' });\n setToast({\n message: 'There was a problem saving the Snowflake configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n });\n };\n\n const validateConfigInfo = async () => {\n configFormDispatch({ type: 'setValidating', payload: true });\n const {\n userName: username,\n password,\n role,\n warehouse,\n accountId,\n databaseName: database,\n } = configFormState;\n\n Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig/validate`,\n 'POST',\n {\n username,\n password,\n role,\n warehouse,\n accountId,\n database,\n },\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n )\n .then((response) => response.json())\n .then((data) => {\n if (!data.valid) {\n setToast({\n message: 'There were errors validating the supplied configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n configFormDispatch({\n type: 'setFieldErrors',\n payload: data.reasons,\n });\n } else {\n configFormDispatch({ type: 'setValidating', payload: false });\n configFormDispatch({ type: 'togglePoweredBySnowflake' });\n }\n }).catch(() => {\n setToast({\n message: 'We encountered an error validating the supplied configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n });\n };\n\n useEffect(() => {\n fetchConfigInfo();\n }, []);\n\n const refreshConfigInfoForm = () => {\n setConfigFormEditable(!configFormEditable);\n fetchConfigInfo();\n clearConfigErrors();\n };\n\n const configInfoHasChanges = () => {\n const {\n databaseName,\n accountId,\n userName,\n password,\n role,\n warehouse,\n poweredBySnowflakeEnabled,\n } = configFormState;\n const {\n databaseName: loadedDatabaseName,\n accountId: loadedAccountId,\n userName: loadedUserName,\n password: loadedPassword,\n role: loadedRole,\n warehouse: loadedWarehouse,\n poweredBySnowflakeEnabled: loadedPoweredBySnowflakeEnabled,\n } = configFormState.loadedConfigInfo;\n\n if (\n databaseName !== loadedDatabaseName ||\n accountId !== loadedAccountId ||\n userName !== loadedUserName ||\n password !== loadedPassword ||\n role !== loadedRole ||\n warehouse !== loadedWarehouse ||\n poweredBySnowflakeEnabled !== loadedPoweredBySnowflakeEnabled\n ) {\n return true;\n }\n return false;\n };\n\n const configInfoHasEmptyFields = () => {\n const { databaseName, accountId, userName, password, role, warehouse } =\n configFormState;\n\n return (\n !databaseName ||\n !accountId ||\n !userName ||\n !password ||\n !role ||\n !warehouse\n );\n };\n\n const buttonSection = configFormEditable ? (\n \n {\n upsertConfigInfo();\n }}\n >\n Save\n \n \n {\n if (!configInfoHasEmptyFields() && configInfoHasChanges()) {\n setShowConfirmCancelModal(true);\n } else {\n refreshConfigInfoForm();\n }\n }}\n >\n Cancel\n \n \n \n ) : (\n <>\n );\n\n const configFormEditButton = !configFormEditable ? (\n {\n setConfigFormEditable(!configFormEditable);\n }}\n >\n Edit\n \n ) : (\n <>\n );\n\n const getConfirmCancelModalContent = () => {\n return (\n \n Are you sure you want to cancel? Your updates will be lost.\n \n {\n setShowConfirmCancelModal(false);\n }}\n >\n Continue Editing\n \n \n {\n refreshConfigInfoForm();\n setShowConfirmCancelModal(false);\n }}\n >\n Confirm Cancel\n \n \n \n \n );\n };\n\n const getModalContent = (message) => {\n return (\n \n {message}\n \n \n );\n };\n\n const content = (\n <>\n
\n \n This option gives Zuora applications (Zuora Reporting, Zuora Data Query, AQuA, Data Source Exports, and Finance Trial Balance reports) \n the option to use Snowflake Compute resources from your Snowflake account\n (Snowflake fees apply) to run queries and reports faster and at higher scale.\n \n
\n \n
\n \n {\n configFormDispatch({\n type: 'setDatabaseName',\n payload: target.value,\n });\n }}\n value={configFormState.databaseName}\n />\n \n {}}\n dsOnOpen={() => {}}\n e2e=\"\"\n title={}\n >\n <>\n \n \n \n \n \n
\n
\n
\n \n \n {\n configFormDispatch({\n type: 'setAccountId',\n payload: target.value,\n });\n }}\n value={configFormState.accountId}\n />\n \n \n \n preferred format\n \n \n \n
\n
\n \n \n {\n configFormDispatch({\n type: 'setUserName',\n payload: target.value,\n });\n }}\n value={configFormState.userName}\n />\n \n \n {\n configFormDispatch({\n type: 'setPassword',\n payload: target.value,\n });\n }}\n value={configFormState.password}\n />\n \n \n \n \n {\n configFormDispatch({\n type: 'setRole',\n payload: target.value,\n });\n }}\n value={configFormState.role}\n />\n \n \n {\n configFormDispatch({\n type: 'setWarehouse',\n payload: target.value,\n });\n }}\n value={configFormState.warehouse}\n />\n \n \n \n {\n if (!configFormState.poweredBySnowflakeEnabled) {\n validateConfigInfo();\n } else {\n configFormDispatch({ type: 'togglePoweredBySnowflake' });\n }\n }}\n />\n \n
\n {buttonSection}\n \n );\n\n return (\n <>\n \n\n {}}\n body={getModalContent('Validating the Snowflake configuration.')}\n />\n {}}\n body={getModalContent('Saving the Snowflake configuration.')}\n />\n {}}\n body={getConfirmCancelModalContent()}\n />\n \n );\n};\n\nexport default ConfigInfo;\n","import ConfigInfo from './ConfigInfo';\nexport default ConfigInfo;","interface AccountInfoState {\n region: String;\n accountName: String;\n accountEdition: String;\n installerFirstName: String;\n installerLastName: String;\n installerEmail: String;\n installDate: Number;\n alreadyInstalled: boolean;\n validating: boolean;\n}\n\nconst initialState: AccountInfoState = {\n region: '',\n accountName: '',\n accountEdition: '',\n installerFirstName: '',\n installerLastName: '',\n installerEmail: '',\n installDate: 0,\n alreadyInstalled: false,\n validating: false,\n};\n\nconst reducer = (state: AccountInfoState, action) => {\n switch (action.type) {\n case 'setRegion':\n return { ...state, region: action.payload };\n case 'setAccountName':\n return { ...state, accountName: action.payload };\n case 'setAccountEdition':\n return { ...state, accountEdition: action.payload };\n case 'setInstallerFirstName':\n return { ...state, installerFirstName: action.payload };\n case 'setInstallerLastName':\n return { ...state, installerLastName: action.payload };\n case 'setInstallerEmail':\n return { ...state, installerEmail: action.payload };\n case 'setInstallDate':\n return { ...state, installDate: action.payload };\n case 'setAlreadyInstalled':\n return { ...state, alreadyInstalled: action.payload };\n case 'loadAccountInfo':\n return {\n ...state,\n region: action.payload.region,\n accountName: action.payload.accountName,\n accountEdition: action.payload.accountEdition,\n installerFirstName: action.payload.userFirstName,\n installerLastName: action.payload.userLastName,\n installerEmail: action.payload.userEmail,\n installDate: action.payload.installationDate,\n alreadyInstalled: Boolean(action.payload.installationDate),\n };\n case 'setValidating':\n return {\n ...state,\n validating: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport { initialState, reducer };","const initialState = {\n databaseName: '',\n accountId: '',\n userName: '',\n password: '',\n role: '',\n warehouse: '',\n poweredBySnowflakeEnabled: false,\n validating: false,\n saving: false,\n savingSucceeded: true,\n loadedConfigInfo: {\n databaseName: '',\n accountId: '',\n userName: '',\n password: '',\n role: '',\n warehouse: '',\n poweredBySnowflakeEnabled: false,\n loaded: false,\n },\n fieldErrors: [],\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'setDatabaseName':\n return { ...state, databaseName: action.payload };\n case 'setAccountId':\n return { ...state, accountId: action.payload };\n case 'setUserName':\n return { ...state, userName: action.payload };\n case 'setPassword':\n return { ...state, password: action.payload };\n case 'setRole':\n return { ...state, role: action.payload };\n case 'setWarehouse':\n return { ...state, warehouse: action.payload };\n case 'togglePoweredBySnowflake':\n return {\n ...state,\n poweredBySnowflakeEnabled: !state.poweredBySnowflakeEnabled,\n };\n case 'loadConfigInfo':\n return {\n ...state,\n databaseName: action.payload.database,\n accountId: action.payload.accountId,\n userName: action.payload.username,\n password: action.payload.password,\n role: action.payload.role,\n warehouse: action.payload.warehouse,\n poweredBySnowflakeEnabled: action.payload.poweredBySnowflake,\n loadedConfigInfo: {\n databaseName: action.payload.database,\n accountId: action.payload.accountId,\n userName: action.payload.username,\n password: action.payload.password,\n role: action.payload.role,\n warehouse: action.payload.warehouse,\n poweredBySnowflakeEnabled: action.payload.poweredBySnowflake,\n loaded: !!action.payload.database,\n },\n };\n case 'setFieldErrors':\n return {\n ...state,\n fieldErrors: action.payload,\n validating: false,\n };\n case 'clearErrors':\n return {\n ...state,\n fieldErrors: [],\n };\n case 'setValidating':\n return {\n ...state,\n validating: action.payload,\n };\n case 'setSaving':\n return {\n ...state,\n saving: true,\n };\n case 'setSavingSucceeded':\n return {\n ...state,\n saving: false,\n savingSucceeded: true,\n };\n case 'setSavingFailed':\n return {\n ...state,\n saving: false,\n savingSucceeded: false,\n };\n default:\n return state;\n }\n};\n\nexport { initialState, reducer };","import styled from '@emotion/styled';\n\nexport const ContentPaddingStyle = styled.div`\n padding-top: 10px;\n`;\n\nexport const ButtonSectionStyle = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 20px;\n`;\n\nexport const SnowflakeInputSectionStyle = styled.div`\n display: inline;\n margin-right: 20px;\n`;\n\nexport const SnowflakeInputRowSectionStyle = styled.div`\n margin-top: 20px;\n`;\n\nexport const TopMessageInProgress = styled.div`\n margin-top: -15px;\n margin-bottom: 15px;\n padding: 5px;\n`;\n\nexport const TopMessageCompleted = styled.div`\n margin-top: -15px;\n margin-bottom: 15px;\n padding: 5px;\n`;","import { FormControl, FormControlLabel, FormLabel, Radio, RadioGroup } from '@mui/material';\nimport Divider from '@mui/material/Divider';\nimport { Button, Card, Chip, Grid, Modal, ModalActions, Spinner, Typography, designTokens } from '@platform-ui/design-system';\nimport React, { useEffect, useState } from 'react';\nimport Connect from '../../../../Connect/Connect';\nimport { useStoreDispatch } from '../../../../Store';\nimport { useToast } from '../../../../ToastProvider';\nimport { BasicAuth } from '../BasicAuth/BasicAuth';\nimport { OAuth } from '../OAuth/OAuth';\nimport { ZDP_AUTH_SETUP } from '../action_types';\nimport { useFlipperHook } from '../../../../Tables/helpers';\n\nexport const Authentication = () => {\n const dispatch = useStoreDispatch();\n const [authSelection, setAuthSelection] = useState('');\n const [savedCreds, setSavedCreds] = useState({});\n const [loading, setLoading] = useState(false);\n const appsV1CredsPath = '/apps/v1/getSfdcCredential';\n const selectOauthMessage = 'Are you sure you want to use OAuth Credentials for sync?';\n const selectBasicMessage = 'Are you sure you want to use Salesforce Credentials for sync?';\n const [openConfirm, setOpenConfirm] = useState(false);\n const [modalData, setModalData] = useState('');\n const [confirmLoading, setConfirmLoading] = useState(false);\n const { setToast } = useToast();\n const [hideLegacyChip, _1] = useFlipperHook('hide_legacy_ui_chip');\n\n const fetchCreds = async () => {\n try {\n setLoading(true);\n const response = await Connect.proxyCall(appsV1CredsPath, 'GET', undefined, { 'Accept': 'application/json' });\n if (!response.ok) throw Error(response.statusText);\n const { data } = await response.json();\n setSavedCreds(data || {});\n setAuthSelection(data == null ? '' : data.oauthEnabled ? 'oauth' : 'basic');\n if (data) {\n dispatch({ type: ZDP_AUTH_SETUP, payload: { authSet: true } });\n }\n } catch (err) {\n Connect.log(err);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n fetchCreds();\n }, []);\n\n return (\n <>\n setOpenConfirm(false)}\n disableBackdropClick\n body={}\n footer={\n \n \n {\n try {\n setConfirmLoading(true);\n let response = await fetch('/apps/SfdcSync.do?method=checkIfSyncInProgress');\n if (!response.ok) throw Error(response.statusText);\n const { syncInprogress } = await response.json();\n if (syncInprogress) {\n setToast({\n message: 'Object syncing is in progress. Please try again later!',\n severity: 'warning'\n });\n } else {\n response = await fetch(`/apps/SfdcSync.do?method=enableOAuth&type=${modalData === 'oauth'}`);\n if (!response.ok) throw Error(response.statusText);\n setOpenConfirm(false);\n setAuthSelection(modalData);\n }\n } catch (err) {\n setToast({\n message: err.message || 'Error setting up credentials. Please try again later!',\n severity: 'error'\n })\n } finally {\n setConfirmLoading(false);\n }\n }}\n >\n Yes\n \n \n }\n />\n {\n loading ?\n :\n \n \n \n \n Salesforce Credentials { !hideLegacyChip && window.location.href = '/apps/SfdcSync.do'} label={Back to Legacy UI} state='info' />}\n \n Set up sync credentials to connect to Salesforce\n \n \n \n \n }\n body={\n \n \n <>\n \n \n \n Credentials Type\n \n }\n label='Salesforce'\n onChange={(e: React.ChangeEvent) => {\n setOpenConfirm(true);\n setModalData(e.target.value);\n }}\n />\n }\n label='OAuth'\n onChange={(e: React.ChangeEvent) => {\n setOpenConfirm(true);\n setModalData(e.target.value);\n }} />\n \n \n \n \n
\n { authSelection === 'oauth' && }\n { authSelection === 'basic' && }\n \n
\n
\n }\n />\n }\n \n )\n};\n","import React, { useState } from 'react';\nimport Connect from '../../../../Connect/Connect';\nimport { useToast } from '../../../../ToastProvider';\nimport { Button, Grid, designTokens } from '@platform-ui/design-system';\nimport { Box, CircularProgress, FormControl, FormControlLabel, FormLabel, InputAdornment, Switch, TextField } from '@mui/material';\nimport { useStoreDispatch } from '../../../../Store';\nimport { ZDP_AUTH_SETUP } from '../action_types';\n\nexport const BasicAuth = ({\n contentDisabled = false,\n savedCreds = { username: null, password: null, token: null, sandbox: false }\n}) => {\n const dispatch = useStoreDispatch();\n const [username, setUsername] = useState(savedCreds.username);\n const [password, setPassword] = useState(savedCreds.password ? '********' : '');\n const [token, setToken] = useState(savedCreds.token ? '****************' : '');\n const [showPassword, setShowPassword] = useState(false);\n const [showSecurityToken, setShowSecurityToken] = useState(false);\n const [isSandbox, setIsSandbox] = useState(savedCreds.sandbox);\n const [isEdited, setIsEdited] = useState(false);\n const [saving, setSaving] = useState(false);\n const { setToast } = useToast();\n const isLocal = window.location.host.includes('localhost');\n const appsV1CredsPath = `${isLocal ? 'http://localhost:8080' : ''}/apps/v1/setupSfdcCredential`;\n const saveBtnDisabled = contentDisabled || !isEdited;\n const hasErrors = !username || !password || !token;\n\n return (\n \n \n {\n setUsername(event.target.value);\n setIsEdited(true);\n }}\n value={username}\n type='text'\n disabled={contentDisabled}\n error={!username && !contentDisabled}\n helperText={!username && !contentDisabled ? 'Salesforce User ID is required' : ' '}\n />\n \n \n \n setShowPassword(!showPassword)}\n disabled={contentDisabled}\n />\n \n }}\n onChange={(event) => {\n setPassword(event.target.value);\n setIsEdited(true);\n }}\n value={password}\n type={showPassword ? 'text' : 'password'}\n disabled={contentDisabled}\n error={!password && !contentDisabled}\n helperText={!password && !contentDisabled ? 'Password is required' : ' '}\n />\n \n \n \n setShowSecurityToken(!showSecurityToken)}\n disabled={contentDisabled}\n />\n \n }}\n onChange={(event) => {\n setToken(event.target.value);\n setIsEdited(true);\n }}\n value={token}\n type={showSecurityToken ? 'text' : 'password'}\n disabled={contentDisabled}\n error={!token && !contentDisabled}\n helperText={!token && !contentDisabled ? 'Security Token is required' : ' '}\n />\n \n \n \n Use Sandbox\n {\n setIsSandbox(checked);\n setIsEdited(true);\n }}\n disabled={contentDisabled}\n />\n }\n label=''\n />\n \n \n \n \n \n {\n try {\n setSaving(true);\n\n const response = await Connect.proxyCall(\n appsV1CredsPath,\n 'PUT',\n {\n username,\n password,\n token,\n isSandbox: `${isSandbox}`,\n isIncremental: 'false'\n },\n {\n 'Content-Type': 'application/json'\n }\n );\n\n if (!response.ok) throw Error('Invalid credentials');\n\n const { status, message } = await response.json();\n\n if (status === 'Error') throw Error(message);\n\n dispatch({ type: ZDP_AUTH_SETUP, payload: { authSet: true } });\n\n setToast({\n message: 'Credentials saved successfully.',\n severity: 'success'\n });\n } catch (err) {\n Connect.log(err);\n setToast({\n message: err.message || 'Error saving credentials',\n severity: 'error'\n });\n } finally {\n setSaving(false);\n }\n }}\n />\n {\n saving &&\n \n }\n \n \n \n \n );\n};","import { AlertColor, FormControl, FormControlLabel, FormLabel, Switch } from '@mui/material';\nimport { Button, Grid, Spinner, ToastController } from '@platform-ui/design-system';\nimport React, { useEffect, useState } from 'react';\nimport Connect from '../../../../Connect/Connect';\nimport { ZDP_AUTH_SETUP } from '../action_types';\nimport { useStoreDispatch } from '../../../../Store';\n\nexport const OAuth = ({\n contentDisabled = false,\n savedCreds = { oauthEnabled: false, sandbox: false }\n}) => {\n const dispatch = useStoreDispatch();\n const [useSandbox, setUseSandbox] = useState(savedCreds.sandbox);\n const [enableSetup, setEnableSetup] = useState(!savedCreds.oauthEnabled);\n const [loading, setLoading] = useState(false);\n const [toast, setToast] = useState({\n show: false,\n msg: '',\n severity: 'success' as AlertColor\n });\n const connect: Connect = (window as any).connect;\n const defaultIHPath = `/services/connect/integration_apps/${(connect.tenant as any).connect_id}/integration_apps`;\n const href = `/apps/SfdcSync.do?method=oauthSetup&sandbox=${useSandbox}&state=${window.location.pathname || defaultIHPath}`;\n\n const deleteOAuthCreds = async () => {\n try {\n setLoading(true);\n setToast({ ...toast, show: false });\n\n let response = await fetch('/apps/SfdcSync.do?method=checkIfSyncInProgress');\n if (!response.ok) throw Error(response.statusText);\n const { syncInprogress } = await response.json();\n\n if (syncInprogress) {\n setLoading(false);\n setToast({\n show: true,\n msg: 'Object syncing is in progress. Please try again later!',\n severity: 'warning'\n });\n } else {\n response = await fetch('/apps/SfdcSync.do?method=deleteOauth');\n if (!response.ok) throw Error(response.statusText);\n setLoading(false);\n dispatch({ type: ZDP_AUTH_SETUP, payload: { authSet: false } });\n setToast({\n show: true,\n msg: 'OAuth credentials were deleted successfully.',\n severity: 'success'\n });\n setEnableSetup(true);\n }\n } catch (err) {\n Connect.log(err);\n setLoading(false);\n setToast({\n show: true,\n msg: 'Failed to delete OAuth credentials. Please try again later!',\n severity: 'error'\n });\n }\n };\n\n useEffect(() => {\n if (window.location.search) {\n setToast({ ...toast, show: false });\n const params = new URLSearchParams(window.location.search);\n const oauthMessage = params.get('oauthMessage');\n if (oauthMessage) {\n setToast({\n show: true,\n msg: oauthMessage,\n severity: 'success'\n });\n } else {\n setToast({\n show: true,\n msg: oauthMessage,\n severity: 'error'\n });\n }\n }\n }, [window.location.search]);\n\n return (\n <>\n {\n loading ?\n :\n \n { toast.show && }\n \n \n \n \n Set Up\n \n \n \n deleteOAuthCreds()}\n >\n Delete\n \n \n \n \n \n \n Use Sandbox\n setUseSandbox(checked)}\n disabled={contentDisabled} />\n }\n label=''\n />\n \n \n \n }\n \n );\n};","import { AlertColor, Box, CircularProgress, Divider } from '@mui/material';\nimport { Button, DatePicker, Grid, Modal, ModalActions, ModalTitle, Tabs, Tab, ToastController, Typography, designTokens } from '@platform-ui/design-system';\nimport React, { Dispatch, FC, SetStateAction, useState } from 'react';\nimport TreeView, { Tree } from '../../../../TreeView/TreeView';\nimport Connect from '../../../../Connect/Connect';\n\ninterface ManualSyncProps {\n openManualSync: boolean;\n setOpenManualSync: Dispatch>;\n}\n\nconst OBJECTS_MAP = {\n '0': 'Account',\n '1': 'Contact',\n '2': 'Product',\n '3': 'UnitOfMeasure',\n '4': 'PaymentGateway',\n '5': 'PaymentTerm',\n '6': 'Invoice',\n '7': 'InvoiceItem',\n '8': 'TaxationItem',\n '9': 'PaymentMethod',\n '10': 'Payment',\n '11': 'InvoicePayment',\n '12': 'PaymentPart',\n '13': 'Subscription',\n '14': 'RatePlan',\n '15': 'RatePlanCharge',\n '16': 'SubscriptionHistory',\n '17': 'RatePlanHistory',\n '18': 'RatePlanChargeHistory',\n '19': 'RatePlanChargeTierHistory',\n '20': 'Refund',\n '21': 'RefundPart',\n '22': 'RefundInvoicePayment',\n '23': 'CreditMemo',\n '24': 'CreditMemoItem',\n '25': 'CreditMemoPart',\n '26': 'DebitMemo',\n '27': 'DebitMemoItem',\n '28': 'PaymentSchedule',\n '29': 'PaymentScheduleItem'\n};\n\nconst PRODUCTS_MAP = {\n '0': 'BillingEntity',\n '1': 'Feature',\n '2': 'Product2',\n '3': 'ProductFeature',\n '4': 'ProductRatePlan',\n '5': 'ProductRatePlanCharge',\n '6': 'ProductRatePlanChargePriceSummary',\n '7': 'ProductRatePlanChargeTier',\n '8': 'ZProduct',\n '9': 'ZUnitOfMeasure'\n};\n\nconst ManualSync: FC = ({\n openManualSync,\n setOpenManualSync\n}: ManualSyncProps) => {\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [syncStartDate, setSyncStartDate] = useState(null);\n const [syncEndDate, setSyncEndDate] = useState(null);\n const [syncInProgress, setSyncInProgress] = useState(false);\n const [toast, setToast] = useState({\n show: false,\n msg: '',\n severity: 'success' as AlertColor\n });\n const connect: Connect = (window as any).connect;\n const dacoProxyPath = `${window.location.host.includes('local') ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2/datacon`;\n const [selectedTab, setSelectedTab] = useState(0);\n\n const OBJECTS: Tree = {\n id: '-1',\n value: 'SelectAll',\n label: 'Select All',\n enabled: true,\n children: [\n {\n id: '0',\n value: 'Account',\n label: 'Account',\n enabled: true,\n children: [\n {\n id: '1',\n value: 'Contact',\n label: 'Contact',\n enabled: true\n },\n {\n id: '2',\n value: 'Product',\n label: 'Product',\n enabled: true\n },\n {\n id: '3',\n value: 'UnitOfMeasure',\n label: 'Unit Of Measure',\n enabled: true\n },\n {\n id: '4',\n value: 'PaymentGateway',\n label: 'Payment Gateway',\n enabled: true\n },\n {\n id: '5',\n value: 'PaymentTerm',\n label: 'Payment Term',\n enabled: true\n },\n {\n id: '6',\n value: 'Invoice',\n label: 'Invoice',\n enabled: true,\n children: [\n {\n id: '7',\n value: 'InvoiceItem',\n label: 'Invoice Item',\n enabled: true,\n children: [\n {\n id: '8',\n value: 'TaxationItem',\n label: 'Taxation Item',\n enabled: true\n }\n ]\n }\n ]\n },\n {\n id: '9',\n value: 'PaymentMethod',\n label: 'Payment Method',\n enabled: true,\n children: [\n {\n id: '10',\n value: 'Payment',\n label: 'Payment',\n enabled: true,\n children: [\n {\n id: '11',\n value: 'InvoicePayment',\n label: 'Invoice Payment',\n enabled: true\n },\n {\n id: '12',\n value: 'PaymentPart',\n label: 'Payment Part',\n enabled: true\n }\n ]\n }\n ]\n },\n {\n id: '13',\n value: 'Subscription',\n label: 'Subscription',\n enabled: true,\n children: [\n {\n id: '14',\n value: 'RatePlan',\n label: 'Rate Plan',\n enabled: true,\n children: [\n {\n id: '15',\n value: 'RatePlanCharge',\n label: 'Rate Plan Charge',\n enabled: true\n }\n ]\n }\n ]\n },\n {\n id: '16',\n value: 'SubscriptionHistory',\n label: 'Subscription History',\n enabled: true,\n children: [\n {\n id: '17',\n value: 'RatePlanHistory',\n label: 'Rate Plan History',\n enabled: true,\n children: [\n {\n id: '18',\n value: 'RatePlanChargeHistory',\n label: 'Rate Plan Charge History',\n enabled: true,\n children: [\n {\n id: '19',\n value: 'RatePlanChargeTierHistory',\n label: 'Rate Plan Charge Tier History',\n enabled: true\n }\n ]\n }\n ]\n }\n ]\n },\n {\n id: '20',\n value: 'Refund',\n label: 'Refund',\n enabled: true,\n children: [\n {\n id: '21',\n value: 'RefundPart',\n label: 'Refund Part',\n enabled: true\n },\n {\n id: '22',\n value: 'RefundInvoicePayment',\n label: 'Refund Invoice Payment',\n enabled: true\n }\n ]\n },\n {\n id: '23',\n value: 'CreditMemo',\n label: 'Credit Memo',\n enabled: true,\n children: [\n {\n id: '24',\n value: 'CreditMemoItem',\n label: 'Credit Memo Item',\n enabled: true\n },\n {\n id: '25',\n value: 'CreditMemoPart',\n label: 'Credit Memo Part',\n enabled: true\n }\n ]\n },\n {\n id: '26',\n value: 'DebitMemo',\n label: 'Debit Memo',\n enabled: true,\n children: [\n {\n id: '27',\n value: 'DebitMemoItem',\n label: 'Debit Memo Item',\n enabled: true\n }\n ]\n },\n {\n id: '28',\n value: 'PaymentSchedule',\n label: 'Payment Schedule',\n enabled: true,\n children: [\n {\n id: '29',\n value: 'PaymentScheduleItem',\n label: 'Payment Schedule Item',\n enabled: true\n }\n ]\n }\n ]\n }\n ]\n };\n\n const PRODUCTS: Tree = {\n id: '-1',\n value: 'SelectAll',\n label: 'Select All',\n enabled: true,\n children: [\n {\n id: '0',\n value: 'BillingEntity',\n label: 'Billing Entity',\n enabled: true\n },\n {\n id: '1',\n value: 'Feature',\n label: 'Feature',\n enabled: true\n },\n {\n id: '2',\n value: 'Product2',\n label: 'Product2',\n enabled: true\n },\n {\n id: '3',\n value: 'ProductFeature',\n label: 'Product Feature',\n enabled: true\n },\n {\n id: '4',\n value: 'ProductRatePlan',\n label: 'Product Rate Plan',\n enabled: true\n },\n {\n id: '5',\n value: 'ProductRatePlanCharge',\n label: 'Product Rate Plan Charge',\n enabled: true\n },\n {\n id: '6',\n value: 'ProductRatePlanChargePriceSummary',\n label: 'Product Rate Plan Charge Price Summary',\n enabled: true\n },\n {\n id: '7',\n value: 'ProductRatePlanChargeTier',\n label: 'Product Rate Plan Charge Tier',\n enabled: true\n },\n {\n id: '8',\n value: 'ZProduct',\n label: 'ZProduct',\n enabled: true\n },\n {\n id: '9',\n value: 'ZUnitOfMeasure',\n label: 'ZUnit Of Measure',\n enabled: true\n }\n ]\n };\n\n return (\n <>\n { toast.show && }\n setOpenManualSync(false)}\n body={\n \n \n This action will initiate a batch sync of updated records in the given timeframe from Zuora to Salesforce. Errors may be reviewed and syncs retried on the Retry page. This may take up to 2 hours for 1 million records.\n \n \n \n \n \n setSyncStartDate(value)} required />\n \n \n setSyncEndDate(value)} required />\n \n \n \n \n \n {\n setSelectedTab(newIndex);\n setSelectedObjects([]);\n }}\n e2e=\"package-tab-selection\"\n >\n \n \n \n \n \n {selectedTab === 0 && ()}\n {selectedTab === 1 && ()}\n \n \n }\n header={\n setOpenManualSync(false)}>Manual Sync\n }\n footer={\n \n \n \n {\n if (syncStartDate == null) {\n alert('Sync Start Date is required!!!');\n return;\n }\n\n if (syncEndDate == null) {\n alert('Sync End Date is required!!!');\n return;\n }\n\n if (selectedObjects.length === 0) {\n alert('Select an object to sync!!!');\n return;\n }\n\n try {\n setSyncInProgress(true);\n setToast({ ...toast, show: false });\n \n const objectTypes = [];\n const objectMap = selectedTab == 0 ? OBJECTS_MAP : PRODUCTS_MAP;\n if (selectedObjects && selectedObjects.length > 0) {\n selectedObjects.forEach((obj) => {\n objectTypes.push(objectMap[obj]);\n });\n }\n\n const cookies: any[] = (connect.current_user as any).cookies || [];\n\n let zuoraTenantIdFromCookie = '';\n let zuoraUserIdFromCookie = '';\n\n cookies.forEach((cookie) => {\n if (cookie[0] === 'Zuora-Tenant-Id') {\n zuoraTenantIdFromCookie = cookie[1];\n }\n\n if (cookie[0] === 'Zuora-User-Id') {\n zuoraUserIdFromCookie = cookie[1];\n }\n });\n\n const response = await Connect.proxyCall(\n `${dacoProxyPath}/cauldron-manual-sync`,\n 'POST',\n {\n objectTypes,\n fromTime: syncStartDate.toString().slice(0, 23) + 'Z',\n toTime: syncEndDate.toString().slice(0, 23) + 'Z'\n },\n {\n 'Content-Type': 'application/json',\n 'Zuora-Tenant-Id': window.connect?.tenant?.tenant_id || zuoraTenantIdFromCookie,\n 'Zuora-User-Id': zuoraUserIdFromCookie\n }\n )\n\n if (response.status === 400) {\n setSyncInProgress(false);\n setToast({ ...toast, show: true, msg: 'Failed to submit a sync request due to a malform payload.', severity: 'error' });\n return;\n }\n\n if (response.status === 417) {\n setSyncInProgress(false);\n setToast({ ...toast, show: true, msg: 'A sync of selected object(s) is currently running. Please try again later!!!', severity: 'warning' });\n return;\n }\n\n setSyncInProgress(false);\n setToast({ ...toast, show: true, msg: 'Successfully submitted a sync request.', severity: 'success' });\n } catch (error) {\n Connect.log(error);\n setSyncInProgress(false);\n setToast({ ...toast, show: true, msg: 'Failed to submit a sync request. Please try again later!', severity: 'error' });\n }\n }}\n >\n Sync Now\n \n {\n syncInProgress &&\n \n }\n \n \n }\n disableBackdropClick\n fullWidth\n />\n \n );\n};\n\nexport default ManualSync;\n","import { AlertColor, Box, Checkbox, CircularProgress, Divider, FormControlLabel, ListItemButton, ListItemIcon } from '@mui/material';\nimport { Button, DatePicker, Grid, Modal, ModalActions, ModalTitle, ToastController, Typography, designTokens } from '@platform-ui/design-system';\nimport React, { Dispatch, FC, SetStateAction, useMemo, useState } from 'react';\nimport TreeView, { Tree } from '../../../../TreeView/TreeView';\nimport Connect, { windmillRun } from '../../../../Connect/Connect';\nimport { useStoreState } from '../../../../Store';\n\ninterface ReconProps {\n openRecon: boolean;\n setOpenRecon: Dispatch>;\n tabName: string;\n}\n\nconst OBJECTS_MAP = {\n '0': 'Account',\n '1': 'Contact',\n '2': 'Product',\n '3': 'UnitOfMeasure',\n '4': 'PaymentGateway',\n '5': 'PaymentTerm',\n '6': 'Invoice',\n '7': 'InvoiceItem',\n '8': 'TaxationItem',\n '9': 'PaymentMethod',\n '10': 'Payment',\n '11': 'InvoicePayment',\n '12': 'PaymentPart',\n '13': 'Subscription',\n '14': 'RatePlan',\n '15': 'RatePlanCharge',\n '16': 'SubscriptionHistory',\n '17': 'RatePlanHistory',\n '18': 'RatePlanChargeHistory',\n '19': 'RatePlanChargeTierHistory',\n '20': 'Refund',\n '21': 'RefundPart',\n '22': 'RefundInvoicePayment',\n '23': 'CreditMemo',\n '24': 'CreditMemoItem',\n '25': 'CreditMemoPart',\n '26': 'DebitMemo',\n '27': 'DebitMemoItem',\n '28': 'PaymentSchedule',\n '29': 'PaymentScheduleItem'\n};\n\nconst PRODUCTS_MAP = {\n '0': 'BillingEntity',\n '1': 'Feature',\n '2': 'Product2',\n '3': 'ProductFeature',\n '4': 'ProductRatePlan',\n '5': 'ProductRatePlanCharge',\n '6': 'ProductRatePlanChargePriceSummary',\n '7': 'ProductRatePlanChargeTier',\n '8': 'ZProduct',\n '9': 'ZUnitOfMeasure'\n};\n\nconst DUMMY_ACCOUNT_SELECT_ALL_TREE: Tree = {\n id: '-1',\n value: 'SelectAll',\n label: 'Select All'\n};\n\nconst DUMMY_PRODUCT_CATALOG_SELECT_ALL_TREE: Tree = {\n id: '-1',\n value: 'SelectAll',\n label: 'Product Catalog'\n};\n\n// 7 days in millis\nconst WINDOW_LIMIT = 604800000\n\nconst Reconciliation: FC = ({\n openRecon,\n setOpenRecon,\n tabName\n}: ReconProps) => {\n const state = useStoreState();\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [selectedProducts, setSelectedProducts] = useState([]);\n const [reconStartDate, setReconStartDate] = useState(null);\n const [reconEndDate, setReconEndDate] = useState(null);\n const [resyncEnabled, setResyncEnabled] = useState(null);\n const [reconInProgress, setReconInProgress] = useState(false);\n const [toast, setToast] = useState({\n show: false,\n msg: '',\n severity: 'success' as AlertColor\n });\n const connect: Connect = (window as any).connect;\n\n const syncSettings = state.settingsHash[tabName] || {};\n\n const OBJECTS: Tree = useMemo(() => {\n return 'Account' in syncSettings ? {\n id: '-1',\n value: 'SelectAll',\n label: 'Select All',\n enabled: true,\n children: [\n {\n id: '0',\n value: 'Account',\n label: 'Account',\n enabled: !!syncSettings['Account'],\n children: [\n {\n id: '1',\n value: 'Contact',\n label: 'Contact',\n enabled: !!syncSettings['Contact']\n },\n {\n id: '2',\n value: 'Product',\n label: 'Product',\n enabled: !!syncSettings['Product']\n },\n {\n id: '3',\n value: 'UnitOfMeasure',\n label: 'Unit Of Measure',\n enabled: !!syncSettings['UnitOfMeasure']\n },\n {\n id: '4',\n value: 'PaymentGateway',\n label: 'Payment Gateway',\n enabled: !!syncSettings['PaymentGateway']\n },\n {\n id: '5',\n value: 'PaymentTerm',\n label: 'Payment Term',\n enabled: !!syncSettings['PaymentTerm']\n },\n {\n id: '6',\n value: 'Invoice',\n label: 'Invoice',\n enabled: !!syncSettings['Invoice'],\n children: [\n {\n id: '7',\n value: 'InvoiceItem',\n label: 'Invoice Item',\n enabled: !!syncSettings['InvoiceItem'],\n children: [\n {\n id: '8',\n value: 'TaxationItem',\n label: 'Taxation Item',\n enabled: !!syncSettings['TaxationItem']\n }\n ]\n }\n ]\n },\n {\n id: '9',\n value: 'PaymentMethod',\n label: 'Payment Method',\n enabled: !!syncSettings['PaymentMethod'],\n children: [\n {\n id: '10',\n value: 'Payment',\n label: 'Payment',\n enabled: !!syncSettings['Payment'],\n children: [\n {\n id: '11',\n value: 'InvoicePayment',\n label: 'Invoice Payment',\n enabled: !!syncSettings['InvoicePayment']\n },\n {\n id: '12',\n value: 'PaymentPart',\n label: 'Payment Part',\n enabled: !!syncSettings['PaymentPart']\n }\n ]\n }\n ]\n },\n {\n id: '13',\n value: 'Subscription',\n label: 'Subscription',\n enabled: !!syncSettings['Subscription'],\n children: [\n {\n id: '14',\n value: 'RatePlan',\n label: 'Rate Plan',\n enabled: !!syncSettings['RatePlan'],\n children: [\n {\n id: '15',\n value: 'RatePlanCharge',\n label: 'Rate Plan Charge',\n enabled: !!syncSettings['RatePlanCharge']\n }\n ]\n }\n ]\n },\n {\n id: '16',\n value: 'SubscriptionHistory',\n label: 'Subscription History',\n enabled: !!syncSettings['SubscriptionHistory'],\n children: [\n {\n id: '17',\n value: 'RatePlanHistory',\n label: 'Rate Plan History',\n enabled: !!syncSettings['RatePlanHistory'],\n children: [\n {\n id: '18',\n value: 'RatePlanChargeHistory',\n label: 'Rate Plan Charge History',\n enabled: !!syncSettings['RatePlanChargeHistory'],\n children: [\n {\n id: '19',\n value: 'RatePlanChargeTierHistory',\n label: 'Rate Plan Charge Tier History',\n enabled: !!syncSettings['RatePlanChargeTierHistory']\n }\n ]\n }\n ]\n }\n ]\n },\n {\n id: '20',\n value: 'Refund',\n label: 'Refund',\n enabled: !!syncSettings['Refund'],\n children: [\n {\n id: '21',\n value: 'RefundPart',\n label: 'Refund Part',\n enabled: !!syncSettings['RefundPart']\n },\n {\n id: '22',\n value: 'RefundInvoicePayment',\n label: 'Refund Invoice Payment',\n enabled: !!syncSettings['RefundInvoicePayment']\n }\n ]\n },\n {\n id: '23',\n value: 'CreditMemo',\n label: 'Credit Memo',\n enabled: !!syncSettings['CreditMemo'],\n children: [\n {\n id: '24',\n value: 'CreditMemoItem',\n label: 'Credit Memo Item',\n enabled: !!syncSettings['CreditMemoItem']\n },\n {\n id: '25',\n value: 'CreditMemoPart',\n label: 'Credit Memo Part',\n enabled: !!syncSettings['CreditMemoPart']\n }\n ]\n },\n {\n id: '26',\n value: 'DebitMemo',\n label: 'Debit Memo',\n enabled: !!syncSettings['DebitMemo'],\n children: [\n {\n id: '27',\n value: 'DebitMemoItem',\n label: 'Debit Memo Item',\n enabled: !!syncSettings['DebitMemoItem']\n }\n ]\n },\n {\n id: '28',\n value: 'PaymentSchedule',\n label: 'Payment Schedule',\n enabled: !!syncSettings['PaymentSchedule'],\n children: [\n {\n id: '29',\n value: 'PaymentScheduleItem',\n label: 'Payment Schedule Item',\n enabled: !!syncSettings['PaymentScheduleItem']\n }\n ]\n }\n ]\n }\n ]\n } : DUMMY_ACCOUNT_SELECT_ALL_TREE;\n }, [state.settingsHash[tabName]]);\n\n const PRODUCTS: Tree = useMemo(() => {\n return 'ProductCatalog' in syncSettings ? {\n id: '-1',\n value: 'SelectAll',\n label: 'Product Catalog',\n enabled: true,\n children: [\n {\n id: '0',\n value: 'BillingEntity',\n label: 'Billing Entity',\n enabled: !!syncSettings['BillingEntity']\n },\n {\n id: '1',\n value: 'Feature',\n label: 'Feature',\n enabled: !!syncSettings['Feature']\n },\n {\n id: '2',\n value: 'Product2',\n label: 'Product2',\n enabled: !!syncSettings['Product2']\n },\n {\n id: '3',\n value: 'ProductFeature',\n label: 'Product Feature',\n enabled: !!syncSettings['ProductFeature']\n },\n {\n id: '4',\n value: 'ProductRatePlan',\n label: 'Product Rate Plan',\n enabled: !!syncSettings['ProductRatePlan']\n },\n {\n id: '5',\n value: 'ProductRatePlanCharge',\n label: 'Product Rate Plan Charge',\n enabled: !!syncSettings['ProductRatePlanCharge']\n },\n {\n id: '6',\n value: 'ProductRatePlanChargePriceSummary',\n label: 'Product Rate Plan Charge Price Summary',\n enabled: !!syncSettings['ProductRatePlanChargePriceSummary']\n },\n {\n id: '7',\n value: 'ProductRatePlanChargeTier',\n label: 'Product Rate Plan Charge Tier',\n enabled: !!syncSettings['ProductRatePlanChargeTier']\n },\n {\n id: '8',\n value: 'ZProduct',\n label: 'ZProduct',\n enabled: !!syncSettings['ZProduct']\n },\n {\n id: '9',\n value: 'ZUnitOfMeasure',\n label: 'ZUnit Of Measure',\n enabled: !!syncSettings['ZUnitOfMeasure']\n }\n ]\n } : DUMMY_PRODUCT_CATALOG_SELECT_ALL_TREE;\n }, [state.settingsHash[tabName]]);\n\n function parseEnvironment() : string {\n let host = window.location.host;\n if (host.includes('staging2.zuora.com')) {\n return 'STG';\n } else if(host.includes('apisandbox.zuora.com')) {\n return 'SBX01'\n } else if(host.includes('sandbox.eu.zuora.com')) {\n return 'SBX00'\n } else if(host.includes('sandbox.na.zuora.com')) {\n return 'SBX08'\n } else if(host.includes('test.zuora.com')) {\n return 'US_CSBX'\n } else if(host.includes('test.eu.zuora.com')) {\n return 'EU_CSBX'\n } else if(host.includes('test.ap.zuora.com')) {\n return 'AP_CSBX'\n } else if(host.includes('eu.zuora.com')) {\n return 'PROD00'\n } else if(host.includes('na.zuora.com')) {\n return 'PROD08'\n } else if(host.includes('zuora.com')) {\n return 'PROD02'\n } else {\n return 'UNKNOWN'\n }\n }\n\n return (\n <>\n { toast.show && }\n setOpenRecon(false)}\n body={\n \n \n Reconciliation Job Configuration\n \n \n \n \n \n setReconStartDate(value)} required />\n \n \n setReconEndDate(value)} required />\n \n \n \n \n \n setResyncEnabled(value)}/>}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n header={\n setOpenRecon(false)}>Reconciliation\n }\n footer={\n \n \n \n {\n Connect.log(reconStartDate)\n\n if (reconStartDate == null) {\n alert('Reconcile Start Date is required!!!');\n return;\n }\n\n if (reconEndDate == null) {\n alert('Reconcile End Date is required!!!');\n return;\n }\n\n if (new Date(Date.parse(reconEndDate)).getTime() - new Date(Date.parse(reconStartDate)).getTime() > WINDOW_LIMIT) {\n alert('Can only reconcile a maximum of 7 days data!!!')\n return;\n }\n\n if (selectedObjects.length === 0 && selectedProducts.length === 0) {\n alert('Select an object to reconcile!!!');\n return;\n }\n\n try {\n setReconInProgress(true);\n setToast({ ...toast, show: false });\n \n const objectTypes = [];\n\n if (selectedObjects && selectedObjects.length > 0) {\n selectedObjects.forEach((obj) => {\n objectTypes.push(OBJECTS_MAP[obj]);\n });\n }\n\n if (selectedProducts && selectedProducts.length > 0) {\n selectedProducts.forEach((obj) => {\n objectTypes.push(PRODUCTS_MAP[obj]);\n });\n }\n\n const cookies: any[] = (connect.current_user as any).cookies || [];\n\n let zuoraTenantIdFromCookie: string;\n\n cookies.forEach((cookie) => {\n if (cookie[0] === 'Zuora-Tenant-Id') {\n zuoraTenantIdFromCookie = cookie[1];\n }\n });\n\n let windmillParams = {\n script_path: 'f/daco/recon_flow',\n params: {\n 'TENANT_ID': zuoraTenantIdFromCookie,\n 'RECON_FROM_DATE': reconStartDate.toString().slice(0, 23) + 'Z',\n 'RECON_TO_DATE': reconStartDate.toString().slice(0, 23) + 'Z',\n 'ENVIRONMENT': parseEnvironment(),\n 'OBJECT_TYPE': objectTypes.join(','),\n 'RESYNC_ENABLED': resyncEnabled != null && resyncEnabled.target.checked,\n },\n async: true,\n }\n\n const response = await windmillRun(windmillParams);\n\n if (response.status === 400) {\n setReconInProgress(false);\n setToast({ ...toast, show: true, msg: 'Failed to submit a sync request due to a malformed payload.', severity: 'error' });\n return;\n }\n\n setReconInProgress(false);\n setToast({ ...toast, show: true, msg: 'Successfully submitted a reconcile request.', severity: 'success' });\n } catch (error) {\n Connect.log(error);\n setReconInProgress(false);\n setToast({ ...toast, show: true, msg: 'Failed to submit a reconcile request. Please try again later!', severity: 'error' });\n }\n }}\n >\n Run\n \n {\n reconInProgress &&\n \n }\n \n \n }\n disableBackdropClick\n fullWidth\n />\n \n );\n};\n\nexport default Reconciliation;\n","import { Box, Button, Checkbox, CircularProgress, Divider, List, ListItemButton, ListItemIcon, ListItemText, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tooltip } from '@mui/material';\nimport { Alert, Card, Chip, RadioGroup, Radio, Select, SelectItem, Grid, Typography, designTokens } from '@platform-ui/design-system';\n\nimport React, { Dispatch, useEffect, useState } from 'react';\nimport Connect from \"../../../../Connect/Connect\";\nimport { IADState } from '../../../../IntegrationApps/IntegrationAppDetails/state';\nimport { Action, useStoreContext } from '../../../../Store';\nimport { useFlipperHook } from '../../../../Tables/helpers';\nimport { useToast } from '../../../../ToastProvider';\nimport ManualSync from './ManualSync';\nimport { useIdentity } from '../../../../IdentityProvider';\nimport Reconciliation from './Reconciliation';\n\ndeclare global {\n interface Window {\n connect: any;\n }\n}\n\ninterface objectEnablement {\n object: string;\n enabled: boolean;\n scheduled: boolean;\n}\n\ninterface syncSchedule {\n value: string;\n}\n\ninterface productCatalogEnablementData {\n group: string;\n enabled: boolean;\n objects: string[];\n}\n\ninterface reconJob {\n id: string;\n startTime: string;\n finishTime: string;\n status: string;\n sourceDiffCount: number;\n sourceDiffLink: string;\n targetDiffCount: number;\n targetDiffLink: string;\n}\n\nconst LoadingButton = ({\n text = 'Save',\n disabled,\n onClick,\n loading\n}) => {\n return (\n \n \n {text}\n \n {\n loading &&\n \n }\n \n );\n};\n\nfunction SyncSettings() {\n const { state, dispatch } = useStoreContext() as { state: IADState, dispatch: Dispatch };\n const tabName = 'syncSettings';\n const accountObjectIndents = new Map([\n ['Account', 2],\n ['Contact', 4],\n ['Product', 4],\n ['UnitOfMeasure', 4],\n ['PaymentGateway', 4],\n ['PaymentTerm', 4],\n ['Invoice', 4],\n ['InvoiceItem', 6],\n ['TaxationItem', 8],\n ['PaymentMethod', 4],\n ['Payment', 6],\n ['InvoicePayment', 8],\n ['PaymentPart', 8],\n ['Subscription', 4],\n ['RatePlan', 6],\n ['RatePlanCharge', 8],\n ['SubscriptionHistory', 4],\n ['RatePlanHistory', 6],\n ['RatePlanChargeHistory', 8],\n ['RatePlanChargeTierHistory', 10],\n ['Refund', 4],\n ['RefundPart', 6],\n ['RefundInvoicePayment', 6],\n ['CreditMemo', 4],\n ['CreditMemoItem', 6],\n ['CreditMemoPart', 6],\n ['DebitMemo', 4],\n ['DebitMemoItem', 6],\n ['PaymentSchedule', 4],\n ['PaymentScheduleItem', 6],\n ]);\n\n const allAccountObjects = Array.from(accountObjectIndents.keys());\n\n const allProductCatalogObjects = [\n 'BillingEntity',\n 'Feature',\n 'Product2',\n 'ProductFeature',\n 'ProductRatePlan',\n 'ProductRatePlanCharge',\n 'ProductRatePlanChargePriceSummary',\n 'ProductRatePlanChargeTier',\n 'ZProduct',\n 'ZUnitOfMeasure',\n ];\n\n const syncSubheader = 'Use this page to push Zuora information into Salesforce.';\n const reconSubheader = 'Compare recent records created in Zuora against those synced to SFDC';\n\n const enablementSubheader = (
This page allows you to control what objects are synced through the Zuora connector for Salesforce CRM.
\n For more information, visit the Zuora Connector for Salesforce CRM knowledge Center.
\n Please allow 15 minutes after saving any changes before verifying that your selected objects are syncing.\n
);\n\n const [manualSyncEnabled, _] = useFlipperHook('ih_enable_manual_sync');\n const [hideLegacyChip, _1] = useFlipperHook('hide_legacy_ui_chip');\n const [openManualSync, setOpenManualSync] = useState(false);\n const [openRecon, setOpenRecon] = useState(false); \n const { setToast } = useToast();\n const [savingAllObjects, setSavingAllObjects] = useState(false);\n const { hasPermission } = useIdentity();\n const [selectedSchedule, setSelectedSchedule] = useState('interval:01H');\n const [syncType, setSyncType] = useState('nearRealTime');\n const dacoProxyPath = `${window.location.host.includes('local') ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2/datacon`;\n const [userId, setUserId] = useState('');\n\n const savingAllObjectsHandler = async () => {\n try {\n\n setSavingAllObjects(true);\n\n const enabledObjects = [];\n const scheduled = syncType === 'scheduled';\n Object.keys(state.settingsHash[tabName] || {}).forEach(key => {\n if (allAccountObjects.includes(key) || allProductCatalogObjects.includes(key)) {\n enabledObjects.push({\n object: key,\n enabled: state.settingsHash[tabName][key],\n scheduled: state.settingsHash[tabName][key] && scheduled\n });\n }\n });\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Zuora-Tenant-Id': window.connect?.tenant?.tenant_id,\n 'Zuora-User-Id': userId\n };\n\n let response = await Connect.proxyCall(\n dacoProxyPath + '/tenant-metadata',\n 'PUT',\n enabledObjects,\n headers\n );\n \n if (!response.ok) {\n const { message } = await response.json();\n throw Error(message);\n }\n\n if (scheduled) {\n response = await Connect.proxyCall(\n dacoProxyPath + '/tenant-metadata/schedule',\n 'PUT',\n {\n value: selectedSchedule\n },\n headers\n );\n\n if (!response.ok) {\n const { message } = await response.json();\n throw Error(message);\n }\n }\n\n setToast({\n message: 'Sync settings was successfuly updated.',\n severity: 'success'\n });\n } catch (err) {\n Connect.log(err);\n setToast({\n message: err.message || 'Error enabling objects',\n severity: 'error'\n });\n } finally {\n setSavingAllObjects(false);\n }\n };\n\n const handleDispatch = (type: string, payload: any) => {\n dispatch({ type, payload });\n };\n\n const handleClickObject = (object: string) => {\n const updatedSettings = {\n ...(state.settingsHash[tabName] || {}),\n [object]: !enabled(object)\n };\n handleDispatch(tabName, updatedSettings);\n };\n\n const handleClickRecon = (jobs: reconJob[]) => {\n if (jobs.length > 0) {\n let now = new Date();\n if (jobs[0].finishTime == null && now.getDay() === new Date(Date.parse(jobs[0].startTime)).getDay()) {\n alert('Please wait for the previous job to complete before starting another job');\n return;\n }\n if (jobs[0].finishTime != null && now.getDay() === new Date(Date.parse(jobs[0].finishTime)).getDay()) {\n alert('Only one recon job can be run per day! Please try again later')\n return;\n }\n }\n setOpenRecon(true);\n }\n\n function updateObjectsEnablementStatuses(objects: string[]) : void {\n // Note(Duc): We do not want to show unsaved changes if there's a mismatch between what we store and what daco returns. We just need to merge these two lists.\n const updatedSettings = { ...state.settingsHash[tabName], merge: true };\n const enabled : boolean = !allObjectsAreEnabled(objects);\n objects.forEach((object: string) => {\n updatedSettings[object] = enabled;\n });\n\n handleDispatch(tabName, updatedSettings);\n }\n\n function enabled(item: string) : boolean {\n return !!state.settingsHash[tabName]?.[item];\n }\n\n function retrieveReconJobs() : reconJob[] {\n let result = state.settingsHash[tabName]?.['reconJobData'];\n if (result == null) {\n return [];\n }\n return result;\n }\n\n function allObjectsAreEnabled(objects: string[]) : boolean {\n for (const objectType of objects) {\n if (!enabled(objectType)) {\n return false;\n }\n }\n return true;\n }\n\n function noObjectsAreEnabled(objects: string[]) : boolean {\n for (const objectType of objects) {\n if (enabled(objectType)) {\n return false;\n }\n }\n return true;\n }\n\n function addSpaceToCamelCase(input: string) : string {\n return input.replace(/([a-z])([A-Z])/g, '$1 $2');\n }\n\n function waitFor(variable, callback) {\n var interval = setInterval(function() {\n if (window[variable]) {\n clearInterval(interval);\n callback();\n }\n }, 200);\n }\n\n async function fetchObjectsEnablementData(headers: any) : Promise {\n try {\n const url = dacoProxyPath + '/tenant-metadata/metadata-ui-only';\n const response : Response = await Connect.proxyCall(url, 'GET', null, headers);\n if (!response) throw new Error('No response received');\n if (!response.ok) throw Error(response['message'] || `Unsuccessful response received`);\n return await response.json();\n } catch (error) {\n Connect.log(error);\n // return an empty array to error out silently instead of blocking the execution\n return []\n }\n }\n\n\n async function fetchScheduleConfig(headers: any) : Promise {\n try {\n const url = dacoProxyPath + '/tenant-metadata/schedule';\n const response : Response = await Connect.proxyCall(url, 'GET', null, headers);\n if (!response) throw new Error('No response received');\n if (!response.ok) throw Error(response['message'] || `Unable to fetch tenant schedule config. Unsucessful response!`);\n return await response.json();\n } catch (error) {\n Connect.log(error);\n return null;\n }\n }\n\n async function fetchReconJobData(headers: any) : Promise {\n // This should never return more than a week's worth of data (~7 rows)\n try {\n const url = `${window.location.host.includes('local') ? 'http://localhost:8070' : ''}/sync/internal/recon`;\n const response : Response = await Connect.proxyCall(url, 'GET', null, headers);\n if (!response) throw new Error('No response received');\n if (!response.ok) throw Error(response['message'] || `Unsuccessful response received`);\n return await response.json();\n } catch (error) {\n Connect.log(error);\n // return a default object to error out silently instead of blocking the execution\n return [];\n }\n }\n\n async function updateObjectEnablementData(enablements: objectEnablement[]) {\n // Expected response format: [{\"object\":\"Account\",\"enabled\":true},{\"object\":\"Contact\",\"enabled\":true}]\n try {\n const newSettings = {};\n enablements.forEach(item => {\n if (enabled(item.object) !== item.enabled) {\n newSettings[item.object] = item.enabled;\n }\n });\n if (Object.keys(newSettings).length > 0) {\n // Note(Duc): We do not want to show unsaved changes if there's a mismatch between what we store and what daco returns. We just need to merge these two lists.\n newSettings['merge'] = true;\n handleDispatch(tabName, newSettings);\n }\n } catch (error) {\n // log the error and error out silently\n Connect.log(error);\n }\n }\n\n\n async function updateReconJobTableData(jobs: reconJob[]) {\n // Expected response format: \n // [\n // {\n // \"id\":\"0e3ae1c8-5ffc-4739-82dd-4e62afdcc089\",\n // \"tenantId\":\"11763\",\n // \"startTime\":\"2025-01-10T02:06:15.327Z\",\n // \"finishTime\":\"2025-01-10T03:06:15.327Z\",\n // \"status\":\"FINISHED\",\n // \"sourceDiffCount\":1234,\n // \"sourceDiffLink\":http://11763_dummy_download_sourceNotTarget.com,\n // \"targetDiffCount\":5678,\n // \"targetDiffLink\":http://11763_dummy_download_targetNotSource.com,\n // \"updatedOn\":\"2025-01-10T02:06:15.383Z\"\n // }\n // ]\n try {\n const newJobs = {};\n newJobs['reconJobData'] = [];\n jobs.forEach(job => {\n newJobs['reconJobData'].push(job);\n });\n if (Object.keys(newJobs).length > 0) {\n handleDispatch(tabName, newJobs);\n }\n } catch (error) {\n // log the error and error out silently\n Connect.log(error);\n }\n }\n\n useEffect(() => {\n const fetchData = async () => {\n while (!window.hasOwnProperty('connect')) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n }\n\n waitFor('connect', async function () {\n const cookies: any[] = (window.connect.current_user as any).cookies || [];\n let zuoraTenantIdFromCookie = '';\n let zuoraUserIdFromCookie = '';\n cookies.forEach((cookie) => {\n if (cookie[0] === 'Zuora-Tenant-Id') {\n zuoraTenantIdFromCookie = cookie[1];\n }\n\n if (cookie[0] === 'Zuora-User-Id') {\n zuoraUserIdFromCookie = cookie[1];\n }\n });\n setUserId(zuoraUserIdFromCookie);\n\n const headers = {\n 'Content-Type': 'application/json',\n 'Zuora-Tenant-Id': window.connect?.tenant?.tenant_id || zuoraTenantIdFromCookie,\n 'Zuora-User-Id': zuoraUserIdFromCookie\n };\n\n fetchObjectsEnablementData(headers)\n .then((enablements: objectEnablement[]) => {\n updateObjectEnablementData(enablements);\n // Sync type is only scheduled if every enabled object is scheduled.\n const computedSyncType = enablements.filter(enablement => enablement.enabled).every(enablement => enablement.scheduled) ? 'scheduled' : 'nearRealTime';\n setSyncType(computedSyncType);\n if (computedSyncType === 'scheduled') {\n fetchScheduleConfig(headers).then(setting => setSelectedSchedule(setting === null || 'none' === setting.value.toLocaleLowerCase() ? 'interval:01H' : setting.value))\n }\n });\n\n fetchReconJobData(headers)\n .then((jobs: reconJob[]) =>\n updateReconJobTableData(jobs));\n });\n };\n\n fetchData();\n }, []);\n\n if (!state.credsModified) {\n return (\n \n );\n }\n\n return (\n \n \n \n \n \n \n \n Manual Sync\n \n {syncSubheader}\n \n \n \n { manualSyncEnabled && }\n \n \n \n \n }\n />\n \n\n \n \n \n \n \n \n Object Enablement { !hideLegacyChip && window.location.href = '/platform/apps/data-connect/object-enablement'} label={Go Back to old UI} state='info'/> } \n \n {enablementSubheader}\n \n \n \n \n \n
\n \n \n {\n setSyncType(e.target.value)\n }}\n >\n \n \n \n \n \n \n \n \n \n \n {syncType === 'scheduled' && (\n \n ) => {\n setSelectedSchedule(e.target.value);\n }}\n placeholder=\"Select Increment\"\n required={syncType === 'scheduled'}\n value={selectedSchedule}>\n 10 Minutes\n 30 Minutes\n 1 Hour\n 6 Hours\n 12 Hours\n 24 Hours\n \n \n )}\n \n
\n
\n \n \n updateObjectsEnablementStatuses(allAccountObjects)}>\n \n \n \n \n \n \n \n {\n allAccountObjects.map((object) => {\n let disabled = false;\n let tooltip: React.ReactNode = '';\n if (['CreditMemo', 'CreditMemoItem', 'CreditMemoPart', 'DebitMemo', 'DebitMemoItem'].includes(object)) {\n disabled = !hasPermission('permission.ARSettlement') && !hasPermission('permission.InvoiceSettlementHarmonization');\n tooltip = disabled ? ARSettlement and InvoiceSettlementHarmonization are turned off : '';\n }\n return (\n \n
\n handleClickObject(object)}>\n \n \n \n \n \n
\n
\n );\n })\n }\n
\n \n
\n \n \n updateObjectsEnablementStatuses(allProductCatalogObjects)}>\n \n \n \n \n \n \n \n {\n allProductCatalogObjects.map((object) => (\n \n \n \n \n \n \n ))\n }\n \n \n \n
\n }\n />\n \n\n \n \n \n \n \n \n Reconciliation\n \n {reconSubheader}\n \n \n \n { }\n \n \n \n \n }\n />\n \n \n \n \n Job Id\n Status\n Start Time\n Finish Time\n Source Diff Count\n Source Diff Download\n Target Diff Count\n Target Diff Download\n \n \n \n {retrieveReconJobs().map((row: reconJob) => (\n \n \n {row.id}\n \n {row.status}\n {row.startTime}\n {row.finishTime}\n {row.sourceDiffCount}\n {row.sourceDiffLink}\n {row.targetDiffCount}\n {row.targetDiffLink}\n \n ))}\n \n
\n \n }\n />\n \n \n );\n}\n\nexport default SyncSettings;\n","import { Box } from \"@mui/material\"\nimport { Card, Icon, Typography, designTokens } from \"@platform-ui/design-system\"\nimport React from \"react\"\n\ninterface MetricsInfo {\n tooltip: string,\n title: string,\n data: string\n}\nfunction MetricsInfoCard({ tooltip, title, data }: MetricsInfo) {\n\n return {title} } />} />\n }\n body={data &&\n \n }>\n \n\n}\n\nexport default MetricsInfoCard","import { Box, Grid } from \"@mui/material\"\nimport { Card, Chart, ChartIntervals, Chip, Spinner, Tooltip, Typography, designTokens } from \"@platform-ui/design-system\"\nimport React, { Dispatch, useCallback, useEffect, useMemo, useState } from \"react\"\nimport { ExistingDestination, useGetTransfers } from \"@prequel/react\";\nimport { DataItem } from \"@platform-ui/design-system/dist/types/Chart\";\nimport { Action, useStoreContext } from \"../../../../Store\";\nimport { IADState } from \"../../../../IntegrationApps/IntegrationAppDetails/state\";\nimport fetchAuthTokenWithExistingDestination from \"../fetchTokens/fetchAuthTokenWithExistingDestination\";\nimport { AUTH_TOKEN_URL, PREQUEL_API_HOST, T9_PERMISSION_MAPPINGS } from \"../Constants\";\nimport Connect from \"../../../../Connect/Connect\";\nimport MetricsInfoCard from \"./MetricsInfoCard\";\nimport { useIdentity } from \"../../../../IdentityProvider\";\nimport { IdentityPermissions } from \"../../../../IdentityProvider/constants/permissions\";\nimport { ZDQ_DESTINATION_DATA, ZDQ_RECIPIENT } from \"../action_types\";\nimport _ from 'lodash';\n\ndeclare type TransferData = {\n day: string,\n total_rows_transferred: number,\n total_transfers_completed: number,\n total_volume_transferred_in_mb: number\n}\n\nconst LAST_SYNC_STATUS_MAPPINGS = {\n \"CANCELLED\": { label: \"Cancelled\", state: \"warning\", icon: \"cancel\" },\n \"ERROR\": { label: \"Error\", state: \"error\", icon: \"info\" },\n \"EXPIRED\": { label: \"Expired\", state: \"indeterminate\", icon: \"warning\" },\n \"PARTIAL_FAILURE\": { label: \"Error\", state: \"error\", icon: \"info\" },\n \"PENDING\": { label: \"Pending\", state: \"info\", icon: \"radio_button_on\" },\n \"RUNNING\": { label: \"Running\", state: \"info\", icon: \"radio_button_on\" },\n \"SUCCESS\": { label: \"Success\", state: \"success\", icon: \"done\" },\n \"ORPHANED\": { label: \"Orphaned\", state: \"warning\", icon: \"warning\" },\n undefined: { label: \"Unknown\", state: \"warning\", icon: \"warning\" },\n}\n\nfunction ZdqConnectorStatus({ vendor }) {\n\n // States\n const [chartData, setChartData] = useState([]);\n const [totalRowsSynced, setTotalRowsSynced] = useState('0');\n const [showSpinner, setShowSpinner] = useState(false);\n const [lastTransfer, setLastTransfer] = useState(null);\n const [shareLatency, setShareLatency] = useState(null);\n const isLocal = window.location.host.includes('localhost');\n const proxyPath = `${isLocal ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2`;\n\n // Context\n const { state } = useStoreContext() as { state: IADState, dispatch: Dispatch };\n const destinationData = state.settingsHash[ZDQ_DESTINATION_DATA];\n const recipient = state.settingsHash[ZDQ_RECIPIENT];\n const fetchAuthTokenUrl = `${state.settingsUrl.replace('.json', AUTH_TOKEN_URL)}`;\n\n // T9 Permissions\n const { hasPermission } = useIdentity();\n const hasPermissionsEnabled = hasPermission(`permission.${T9_PERMISSION_MAPPINGS[vendor]}` as IdentityPermissions);\n\n const getNextTransferTime = (() => {\n if (shareLatency && (lastTransfer?.started_at || lastTransfer?.submitted_at)) {\n const lastTransferAttempt = new Date(lastTransfer.started_at || lastTransfer.submitted_at);\n const lastTransferDifferenceAgainstCurrentTimeInSeconds = (new Date().getTime() - lastTransferAttempt?.getTime()) / 1000;\n const shareLatencyInSeconds = parseInt(shareLatency);\n const nextTransferTime: number = Math.abs(shareLatencyInSeconds - lastTransferDifferenceAgainstCurrentTimeInSeconds) / (60 * 60)\n\n if (_.isNaN(shareLatencyInSeconds) || _.isNaN(nextTransferTime)) {\n Connect.log(`Next transfer time error:\n shareLatencyInMinutes = ${shareLatencyInSeconds}, \n nextTransferTime ${nextTransferTime} \n lastTransferAttempt = ${lastTransferAttempt}`);\n return 'In about unknown hours'\n }\n\n /* Ideally, there should be never be a case when the shareLatencyInSeconds > nextTransferTime because the transfer take place every 'shareLatencyInSeconds' seconds.\n But, megastore works in a way such that it might take more that 'shareLatencyInSeconds' time for the next transfer.\n Therefore, returning the 'shareLatencyInSeconds' value directly until a transfer takes place.\n */\n if (shareLatencyInSeconds < lastTransferDifferenceAgainstCurrentTimeInSeconds) {\n return `In about ${Math.ceil(shareLatencyInSeconds < 3600 ? shareLatencyInSeconds / 60 : shareLatencyInSeconds / 3600)} ${shareLatencyInSeconds < 3600 ? ' minutes' : ' hours'}`;\n }\n return `In about ${Math.ceil(nextTransferTime < 1 ? nextTransferTime * 60 : nextTransferTime)} ${nextTransferTime < 1 ? ' minutes' : ' hours'}`;\n }\n return 'In about unknown hours'\n })\n const gridItems = useMemo(\n () => [\n { id: '1', title: 'Last successful Transfer Completed', tooltip: 'This timestamp marks the completion of the most recent successful data transfer to your destination. It reflects the latest data available in your system.', data: destinationData?.last_successful_transfer_ended_at || '' },\n { id: '2', title: 'Next Scheduled Transfer Starts', tooltip: 'This timestamp indicates when the next synchronization process will commence', data: getNextTransferTime() },\n { id: '3', title: 'Total Rows Synced (last 30 days)', tooltip: 'This indicates the total number of rows synchronized during the last 30 days. It provides insight into the recent data transfer activity for the connector.', data: '' }\n ],\n [shareLatency, lastTransfer]\n );\n\n // Transfer Hook\n const fetchAuthTokenWithDestinationWrapper = useCallback(async (existingDestination: ExistingDestination) => {\n return await fetchAuthTokenWithExistingDestination(fetchAuthTokenUrl, existingDestination);\n }, []);\n const getTransfers = useGetTransfers(fetchAuthTokenWithDestinationWrapper, window.location.host, PREQUEL_API_HOST);\n\n // All transfers to display the chart\n async function fetchAllTransfers() {\n try {\n const csrf = document.querySelector('meta[name=\\'csrf-token\\']').getAttribute('content');\n const options = {\n method: 'GET',\n headers: new Headers({\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': csrf\n })\n };\n const response = await window.fetch(`${state.settingsUrl.replace('.json', `/zdq/transfers?destination_id=${destinationData?.id}`)}`, options);\n const data = await response.json();\n if (!response.ok) {\n throw Error(`Error fetching All transfers for the destination: ${destinationData?.id}, message: ${data.message}, statusText: ${response.statusText}`);\n }\n return data;\n\n } catch (error) {\n Connect.log(error);\n }\n }\n\n // Get the latency for the tenant from tenant-registry\n const fetchTenantLatency = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/tenant-registry/tenantsServiceInfo/${recipient?.id_in_provider_system}?name=ZWAREHOUSECONNECTOR&type=WAREHOUSE`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n if (!response.ok) {\n const body = await response.json()\n throw new Error(`Error fetchTenantLatency: ${body?.message}, statusText: ${response.statusText}, tenant: ${recipient?.id_in_provider_system}`);\n }\n const res = await response.json();\n if (res.length !== 1) {\n throw new Error(\"None or More than one element found in the tenants service info\");\n }\n return res[0]?.info?.shareLatencyInSeconds\n } catch (error) {\n Connect.log(`Error fetching latency for the ${recipient?.id_in_provider_system} tenant: ${error}`);\n }\n };\n\n useEffect(() => {\n const fetch = async () => {\n try {\n setShowSpinner(true);\n const lastTransferResponse = await getTransfers(destinationData, { count: 1 })\n if (!lastTransferResponse) {\n throw Error(\"Error while fetching last transfer\");\n }\n\n if (lastTransferResponse?.length === 1) {\n setLastTransfer(lastTransferResponse[0]);\n // If the lastTransfer is success, only then need to make this lactency call\n const latency = await fetchTenantLatency();\n setShareLatency(latency)\n }\n Connect.log('Zdq last transfer empty response: ', lastTransferResponse.length);\n } catch (error) {\n Connect.log('Zdq last transfer or latency call failed: ', error);\n } finally {\n setShowSpinner(false);\n }\n\n try {\n setShowSpinner(true);\n const allTransfers = await fetchAllTransfers()\n if (!allTransfers || allTransfers.error) {\n Connect.log(`Error while fetching transfers: ${allTransfers.error}`);\n return;\n }\n // TODO: This is done because the dates shown in the chart are not the dates that are fetched (+,- 1 day on both ends). \n setChartData(allTransfers?.sort((a: TransferData, b: TransferData) => new Date(a.day).getTime() - new Date(b.day).getTime())\n .map((data: TransferData) => { return { x: new Date(data.day).toISOString(), y: data.total_rows_transferred } }));\n const temp = allTransfers.reduce((accumulator, currentValue) => {\n return accumulator + currentValue.total_rows_transferred;\n }, 0)\n setTotalRowsSynced(temp.toLocaleString());\n } catch (error) {\n Connect.log('Zdq all transfer: ', error);\n } finally {\n setShowSpinner(false);\n }\n\n }\n\n if (hasPermissionsEnabled && recipient && !_.isEmpty(destinationData)) {\n fetch();\n }\n }, [recipient, destinationData])\n\n\n if (!hasPermissionsEnabled) {\n return }\n />\n }\n\n if (showSpinner || destinationData === undefined) {\n return \n }\n\n if (!recipient) {\n return \n }\n />\n }\n\n if (!_.isEmpty(destinationData)) {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }>\n \n div': { fontSize: '1.5rem' } }}>\n Last 30 days\n \n \n \n \n\n\n \n \n Rows Synced\n \n \n \n }\n />\n \n }\n >\n \n \n }\n return
} />\n}\n\nexport default ZdqConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AURORA_MYSQL } from \"../../Constants\"\n\nfunction ZdqAuroraMySqlConnector() {\n return \n}\n\nexport default ZdqAuroraMySqlConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AURORA_MYSQL } from \"../../Constants\"\n\nfunction ZdqAuroraMySqlConnectorStatus() {\n return \n}\n\nexport default ZdqAuroraMySqlConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AWS_ATHENA } from \"../../Constants\"\n\nfunction ZdqAwsAthenaConnector() {\n return \n}\n\nexport default ZdqAwsAthenaConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AWS_ATHENA } from \"../../Constants\"\n\nfunction ZdqAwsAthenaConnectorStatus() {\n return \n}\n\nexport default ZdqAwsAthenaConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AWS_AURORA_POSTGRES } from \"../../Constants\"\n\nfunction ZdqAwsAuroraPostgresConnector() {\n return \n}\n\nexport default ZdqAwsAuroraPostgresConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AWS_AURORA_POSTGRES } from \"../../Constants\"\n\nfunction ZdqAwsAuroraPostgresConnectorStatus() {\n return \n}\n\nexport default ZdqAwsAuroraPostgresConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AWS_RDS_POSTGRES } from \"../../Constants\"\n\nfunction ZdqAwsRdsPostgresConnector() {\n return \n}\n\nexport default ZdqAwsRdsPostgresConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AWS_RDS_POSTGRES } from \"../../Constants\"\n\nfunction ZdqAwsRdsPostgresConnectorStatus() {\n return \n}\n\nexport default ZdqAwsRdsPostgresConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AWS_REDSHIFT } from \"../../Constants\"\n\nfunction ZdqAwsRedshiftConnector() {\n return \n}\n\nexport default ZdqAwsRedshiftConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AWS_REDSHIFT } from \"../../Constants\"\n\nfunction ZdqAwsRedshiftConnectorStatus() {\n return \n}\n\nexport default ZdqAwsRedshiftConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AWS_S3 } from \"../../Constants\"\n\nfunction ZdqAwsS3Connector() {\n return \n}\n\nexport default ZdqAwsS3Connector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AWS_S3 } from \"../../Constants\"\n\nfunction ZdqAwsS3ConnectorStatus() {\n return \n}\n\nexport default ZdqAwsS3ConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { AZURE_BLOB_STORAGE } from \"../../Constants\"\n\nfunction ZdqAzureBlobStorageConnector() {\n return \n}\n\nexport default ZdqAzureBlobStorageConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { AZURE_BLOB_STORAGE } from \"../../Constants\"\n\nfunction ZdqAzureBlobStorageConnectorStatus() {\n return \n}\n\nexport default ZdqAzureBlobStorageConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { BIGQUERY } from \"../../Constants\"\n\nfunction ZdqBigQueryConnector() {\n return \n}\n\nexport default ZdqBigQueryConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { BIGQUERY } from \"../../Constants\"\n\nfunction ZdqBigQueryConnectorStatus() {\n return \n}\n\nexport default ZdqBigQueryConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { DATABRICKS } from \"../../Constants\"\n\nfunction ZdqDatabricksConnector() {\n return \n}\n\nexport default ZdqDatabricksConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { DATABRICKS } from \"../../Constants\"\n\nfunction ZdqDatabricksConnectorStatus() {\n return \n}\n\nexport default ZdqDatabricksConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { GCP_POSTGRES } from \"../../Constants\"\n\nfunction ZdqGcpPostgresConnector() {\n return \n}\n\nexport default ZdqGcpPostgresConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { GCP_POSTGRES } from \"../../Constants\"\n\nfunction ZdqGcpPostgresConnectorStatus() {\n return \n}\n\nexport default ZdqGcpPostgresConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { GENERIC_MYSQL } from \"../../Constants\"\n\nfunction ZdqGenericMySqlConnector() {\n return \n}\n\nexport default ZdqGenericMySqlConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { GENERIC_MYSQL } from \"../../Constants\"\n\nfunction ZdqGenericMySqlConnectorStatus() {\n return \n}\n\nexport default ZdqGenericMySqlConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { GENERIC_POSTGRES } from \"../../Constants\"\n\nfunction ZdqGenericPostgresConnector() {\n return \n}\n\nexport default ZdqGenericPostgresConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { GENERIC_POSTGRES } from \"../../Constants\"\n\nfunction ZdqGenericPostgresConnectorStatus() {\n return \n}\n\nexport default ZdqGenericPostgresConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { GOOGLE_CLOUD_STORAGE } from \"../../Constants\"\n\nfunction ZdqGoogleCloudStorageConnector() {\n return \n}\n\nexport default ZdqGoogleCloudStorageConnector ","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { GOOGLE_CLOUD_STORAGE } from \"../../Constants\"\n\nfunction ZdqGoogleCloudStorageConnectorStatus() {\n return \n}\n\nexport default ZdqGoogleCloudStorageConnectorStatus","import React from \"react\"\nimport ZdqConnectorStatus from \"../../components/ZdqConnectorStatus\"\nimport { SQL_SERVER } from \"../../Constants\"\n\nfunction ZdqSqlServerConnectorStatus() {\n return \n}\n\nexport default ZdqSqlServerConnectorStatus","import React from \"react\"\nimport ZdqConnectorSetup from \"../../components/ZdqConnectorSetup\"\nimport { SQL_SERVER } from \"../../Constants\"\n\nfunction ZdqSqlServerConnector() {\n return \n}\n\nexport default ZdqSqlServerConnector ","import { ExistingDestination } from \"@prequel/react\";\nimport Connect from \"../../../../Connect/Connect\";\n\nconst fetchAuthTokenWithExistingDestination: (url: string, d?: ExistingDestination) => Promise = async (url, existingDestination) => {\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").getAttribute(\"content\")\n },\n body: JSON.stringify(existingDestination),\n });\n const body = await response.json();\n return body.scoped_token;\n } catch (e) {\n Connect.log(e);\n console.error(e);\n }\n}\n\nexport default fetchAuthTokenWithExistingDestination;","import React from \"react\";\nimport { Authentication, Execution, FieldMapping, SolutionInstances } from '../../../Connectors/CustomTabs/NetSuite';\nimport SyncSettings from '../../../Connectors/CustomTabs/ZDP/SyncSettings/SyncSettings';\nimport { PackageLink } from \"../../../Connectors/CustomTabs/SalesforceCRM\";\nimport ConnectionSettings from '../../../Connectors/CustomTabs/Snowflake/ConnectionSettings';\nimport { Authentication as ZDPAuthentication } from '../../../Connectors/CustomTabs/ZDP/Authentication/Authentication';\nimport {\n Authentication as WDAuthentication,\n Execution as WDExecution,\n FieldMapping as WDFieldMapping\n} from '../../../Connectors/CustomTabs/Workday';\nimport {\n Authentication as WDBAuthentication,\n Execution as WDBExecution,\n FieldMapping as WDBFieldMapping\n} from '../../../Connectors/CustomTabs/WorkdayBilling';\nimport ZdqBigQueryConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/BigQuery/ZdqBigQueryConnector\";\nimport ZdqBigQueryConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/BigQuery/ZdqBigQueryConnectorStatus\";\nimport ZdqGcpPostgresConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/GcpPostgres/ZdqGcpPostgresConnector\";\nimport ZdqGcpPostgresConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/GcpPostgres/ZdqGcpPostgresConnectorStatus\";\nimport ZdqAwsAuroraPostgresConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsAuroraPostgres/ZdqAwsAuroraPostgresConnector\";\nimport ZdqAwsAuroraPostgresConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsAuroraPostgres/ZdqAwsAuroraPostgresConnectorStatus\";\nimport ZdqAwsRdsPostgresConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsRdsPostgres/ZdqAwsRdsPostgresConnector\";\nimport ZdqAwsRdsPostgresConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsRdsPostgres/ZdqAwsRdsPostgresConnectorStatus\";\nimport ZdqGenericPostgresConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/GenericPostgres/ZdqGenericPostgresConnector\";\nimport ZdqGenericPostgresConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/GenericPostgres/ZdqGenericPostgresConnectorStatus\";\nimport ZdqAuroraMySqlConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AuroraMySql/ZdqAuroraMySqlConnector\";\nimport ZdqAuroraMySqlConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AuroraMySql/ZdqAuroraMySqlConnectorStatus\";\nimport ZdqGenericMySqlConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/GenericMySql/ZdqGenericMySqlConnector\";\nimport ZdqGenericMySqlConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/GenericMySql/ZdqGenericMySqlConnectorStatus\";\nimport ZdqAwsRedshiftConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsRedshift/ZdqAwsRedshiftConnector\";\nimport ZdqAwsRedshiftConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsRedshift/ZdqAwsRedshiftConnectorStatus\";\nimport ZdqAwsS3Connector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsS3/ZdqAwsS3Connector\";\nimport ZdqAwsS3ConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsS3/ZdqAwsS3ConnectorStatus\";\nimport ZdqAzureBlobStorageConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AzureBlobStorage/ZdqAzureBlobStorageConnector\";\nimport ZdqAzureBlobStorageConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AzureBlobStorage/ZdqAzureBlobStorageConnectorStatus\";\nimport ZdqAwsAthenaConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsAthena/ZdqAwsAthenaConnector\";\nimport ZdqAwsAthenaConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/AwsAthena/ZdqAwsAthenaConnectorStatus\";\nimport ZdqGoogleCloudStorageConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/GoogleCloudStorage/ZdqGoogleCloudStorageConnector\";\nimport ZdqGoogleCloudStorageConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/GoogleCloudStorage/ZdqGoogleCloudStorageConnectorStatus\";\nimport ZdqDatabricksConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/Databricks/ZdqDatabricksConnector\";\nimport ZdqDatabricksConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/Databricks/ZdqDatabricksConnectorStatus\";\nimport ZdqSqlServerConnector from \"../../../Connectors/CustomTabs/ZDQ/connectors/SqlServer/ZdqSqlServerConnectorStatus\";\nimport ZdqSqlServerConnectorStatus from \"../../../Connectors/CustomTabs/ZDQ/connectors/SqlServer/ZdqSqlServerConnector\";\nimport TestConnection from \"../../../Connectors/CustomTabs/SalesforceCPQ/Connection/TestConnection\";\nimport BasicTemplate from \"../../../BasicTemplate/BasicTemplate\";\nimport {\n Destination,\n SAPBillingAuthentication,\n SAPExecution,\n SAPFieldMapping,\n SAPRevenueAuthentication\n} from '../../../Connectors/CustomTabs/SAP';\n\nexport interface CustomTabProps {\n name: string; // key string from the JSON payload\n tabDetails: object; // tabDetails contains all the values of the JSON payload set in ui_layout for your custom tab\n locale: string; // locale in Rails I18n format https://guides.rubyonrails.org/i18n.html\n lastUpdatedBy: string;\n lastUpdatedDate: string;\n tenantId: string; // Tenant id in Connect's database for calls to the backend, 32 digit uuid\n customIcon: (tabName: string, icon: string, tooltip: string) => void;\n}\n\nexport const CustomTab = ({\n name,\n tabDetails,\n locale,\n lastUpdatedBy,\n lastUpdatedDate,\n tenantId,\n customIcon\n}: CustomTabProps) => {\n\n function renderSwitch(name) {\n switch (name) {\n // When adding a new custom tab, create a case that matches the json key name of your desired tab\n // The check here is case sensitive!\n // NetSuite ERP custom tabs: execution, solutionInstances, and fieldMapping\n case 'NetSuiteERP/execution':\n return ;\n case 'NetSuiteERP/solutionInstances':\n return ;\n case 'NetSuiteERP/fieldMapping':\n return ;\n case 'NetSuiteERP/authentication':\n // NetSuite GL custom tabs: authentication, execution, solutionInstances, and fieldMapping\n case 'NetSuiteGL/authentication':\n return (\n \n );\n case 'NetSuiteGL/execution':\n return ;\n case 'NetSuiteGL/solutionInstances':\n return ;\n case 'NetSuiteGL/fieldMapping':\n return ;\n case 'Workday/authentication':\n return (\n \n );\n case 'Workday/execution':\n return ;\n case 'Workday/fieldMapping':\n return \n case 'ZDP/syncSettings':\n return ;\n case 'ZDP/authentication':\n return ;\n case 'Salesforce/packageLink':\n return ;\n case 'SFDC/testConnection':\n return \n case 'Snowflake/connectionSettings':\n return ;\n case 'WorkdayBilling/authentication':\n return (\n \n );\n case 'WorkdayBilling/execution':\n return ;\n case 'WorkdayBilling/fieldMapping':\n return \n\n // SAP connectors custom tabs \n case 'SAP/Billing/authentication':\n return (\n \n );\n case 'SAP/Billing/destination':\n return ;\n case 'SAP/Billing/execution':\n return ;\n\n case 'SAP/Revenue/authentication':\n return (\n \n );\n case 'SAP/Revenue/destination':\n return ;\n case 'SAP/Revenue/execution':\n return ;\n\n case 'SAP/Billing/fieldMapping':\n case 'SAP/Revenue/fieldMapping':\n return ;\n\n case 'ZDQ/GcpPostgres/setup':\n return \n case 'ZDQ/GcpPostgres/status':\n return \n case 'ZDQ/AwsAuroraPostgres/setup':\n return \n case 'ZDQ/AwsAuroraPostgres/status':\n return \n case 'ZDQ/AwsRds/setup':\n return \n case 'ZDQ/AwsRds/status':\n return \n case 'ZDQ/GenericPostgres/setup':\n return \n case 'ZDQ/GenericPostgres/status':\n return \n case 'ZDQ/AuroraMySql/setup':\n return \n case 'ZDQ/AuroraMySql/status':\n return \n case 'ZDQ/GenericMySql/setup':\n return \n case 'ZDQ/GenericMySql/status':\n return \n case 'ZDQ/AwsRedshift/setup':\n return \n case 'ZDQ/AwsRedshift/status':\n return \n case 'ZDQ/BigQuery/setup':\n return \n case 'ZDQ/BigQuery/status':\n return \n case 'ZDQ/AwsS3/setup':\n return \n case 'ZDQ/AwsS3/status':\n return \n\n\n // TODO: The below 4 cases are for backward compatibility. To be removed later on since these cases will be covered by \n // AwsRedshift and AwsS3\n case 'ZDQ/Redshift/setup':\n return \n case 'ZDQ/Redshift/status':\n return \n case 'ZDQ/S3/setup':\n return \n case 'ZDQ/S3/status':\n return \n\n case 'ZDQ/AzureBlobStorage/setup':\n return \n case 'ZDQ/AzureBlobStorage/status':\n return \n case 'ZDQ/AwsAthena/setup':\n return \n case 'ZDQ/AwsAthena/status':\n return \n case 'ZDQ/GoogleCloudStorage/setup':\n return \n case 'ZDQ/GoogleCloudStorage/status':\n return \n case 'ZDQ/Databricks/setup':\n return \n case 'ZDQ/Databricks/status':\n return \n case 'ZDQ/SqlServer/setup':\n return \n case 'ZDQ/SqlServer/status':\n return \n default:\n return ;\n }\n }\n\n return (\n <>{renderSwitch(name)}\n );\n}\n\nexport default CustomTab","import { ChevronRight, ExpandMore } from '@mui/icons-material';\nimport { Checkbox, FormControlLabel } from '@mui/material';\nimport { TreeView as MUITreeView, TreeItem } from '@mui/x-tree-view';\nimport React, { Dispatch, FC, SetStateAction, useMemo, useState } from 'react';\n\nexport interface Tree {\n id: string;\n label: string;\n value: string;\n enabled?: boolean;\n children?: Tree[];\n}\n\nexport interface TreeViewProps {\n root: Tree;\n name?: string;\n setSelectedObjects?: Dispatch>;\n defaultExpanded?: string[];\n}\n\nconst TreeView: FC = ({ root, name, setSelectedObjects, defaultExpanded }: TreeViewProps) => {\n const [selected, setSelected] = useState([]);\n const selectedSet = useMemo(() => new Set(selected), [selected]);\n const parentMap = useMemo(() => goThroughAllNodes(root), []);\n\n function goThroughAllNodes(nodes: Tree, map: Record = {}) {\n if (nodes.children) {\n map[nodes.id] = getAllChildren(nodes).filter((node) => node.enabled).map((node) => node.id).splice(1);\n for (const childNode of nodes.children) {\n goThroughAllNodes(childNode, map);\n }\n }\n return map;\n };\n\n function getAllChildren(childNode: Tree | null, collectedNodes: any[] = []) {\n if (childNode) {\n collectedNodes.push(childNode);\n if (Array.isArray(childNode.children)) {\n for (const node of childNode.children) {\n getAllChildren(node, collectedNodes);\n }\n }\n }\n return collectedNodes;\n };\n\n const getChildById = (nodes: Tree, id: string) => {\n let array: string[] = [];\n let path: string[] = [];\n\n function getNodeById(node: Tree, id: string, parentsPath: string[]) {\n let result = null;\n if (node.id === id) {\n return node;\n } else if (Array.isArray(node.children)) {\n for (let childNode of node.children) {\n result = getNodeById(childNode, id, parentsPath);\n if (!!result) {\n parentsPath.push(node.id);\n return result;\n }\n }\n return result;\n }\n return result;\n }\n\n const nodeToToggle = getNodeById(nodes, id, path);\n\n return {\n childrenNodesToToggle: getAllChildren(nodeToToggle, array).filter((node) => node.enabled).map((node) => node.id),\n path\n };\n };\n\n const getOnChange = (checked: boolean, nodes: Tree) => {\n if (nodes.id !== '-1') {\n const array = checked ? [...selected, nodes.id] : selected.filter((value) => value !== nodes.id);\n setSelected(array);\n setSelectedObjects(array);\n return;\n }\n\n const { childrenNodesToToggle, path } = getChildById(root, nodes.id);\n \n let array = checked \n ? [...selected, ...childrenNodesToToggle]\n : selected\n .filter((value) => !childrenNodesToToggle.includes(value))\n .filter((value) => !path.includes(value));\n\n array = array.filter((value, index) => array.indexOf(value) === index).filter((value) => value !== '-1');\n\n setSelected(array);\n setSelectedObjects(array);\n };\n\n const renderTree = (nodes: Tree) => {\n const allSelectedChildren = parentMap[nodes.id]?.every((childNodeId: number) => selectedSet.has(childNodeId));\n const checked = nodes.enabled ? (nodes.id === '-1' ? selectedSet.has(nodes.id) || allSelectedChildren || false : selectedSet.has(nodes.id)) : false;\n\n const indeterminate = parentMap[nodes.id]?.some((childNodeId: number) => selectedSet.has(childNodeId)) || false;\n\n return (\n getOnChange(event.currentTarget.checked, nodes)}\n onClick={(event) => event.stopPropagation()}\n disabled={!nodes.enabled}\n />\n }\n label={<>{nodes.label}}\n key={`${nodes.label}-${nodes.id}`}\n sx={{ paddingTop: '3px' }}\n />\n }\n >\n {\n Array.isArray(nodes.children)\n ? nodes.children.map((node) => renderTree(node))\n : null\n }\n \n );\n };\n\n return (\n }\n defaultExpandIcon={}\n defaultExpanded={defaultExpanded || ['-1']}\n >\n {renderTree(root)}\n \n );\n};\n\nexport default TreeView;"],"names":["_ref","title","open","e2e","dsOnClose","dsOnOpen","children","placement","onOpen","onClose","style","display","concat","TestConnection","fieldGroups","state","dispatch","useStoreContext","host","setHost","useState","settingsHash","settings","refreshToken","setRefreshToken","orgId","setOrgId","external_id","httpsIncludedError","setHttpsIncludedError","redirectUri","window","location","origin","invalidHostError","setInvalidHostError","loading","setLoading","toast","setToast","show","msg","severity","duration","clientId","clientSecret","authorizationUrl","handleDispatch","type","payload","isTestConnectionDisabled","saveSettingsToBackend","async","showSuccessMessage","settingsHashKeys","Object","keys","i","tabDetails","length","tab","j","settingsHashKey","split","pop","includes","k","fields","l","field","required","name","alert","titleTranslations","en","newState","settings_hash","tray_migrated_refresh_token","csrf","document","querySelector","getAttribute","options","method","createOrUpdate","headers","Headers","body","JSON","stringify","response","fetch","settingsUrl","search","data","json","ok","Error","message","error","console","useEffect","initialHost","initialRefreshToken","urlParams","URLSearchParams","paramCode","get","paramState","code","tokenUrl","tokenResponse","statusText","tokenJson","accessToken","access_token","refresh_token","orgIdUrl","orgIdResponse","Authorization","orgIdJson","records","Id","substring","fetchAccessTokenAndOrgId","then","SETTINGS","newUrlParams","delete","newUrl","pathname","toString","history","replaceState","catch","saveTokenToBackend","React","Grid","container","item","xs","Card","id","header","titleBar","direction","spacing","Typography","variant","color","TextField","fullWidth","label","value","dsOnChange","e","newHost","target","startsWith","test","placeholder","sx","Button","disabled","dsOnClick","windmillRun","script_path","params","url","statusCode","testAuthorizationEndpoint","setTimeout","href","Spinner","modified","marginLeft","ToastController","closeable","PackageLink","packageLink","showAlertIcon","packageVersion","setPackageVersion","showCPQ","setShowCPQ","tenantId","connect","tenant","tenant_id","latestSalesforceVersion","latestCPQVersion","z360Version","zquVersion","ttl","endpoint","request","Connect","log","status","getCurrentPackageVersion","fetchData","marginBottom","Icon","fontSize","tooltip","alignContent","height","component","Link","underline","openKnowledgeCenterLink","ConnectionSettings","hasPermission","useIdentity","snowflakeConfigEnabled","snowflakeConfigLoading","useFlipperHook","Alert","center","ContentPaddingStyle","AccountInfo","ConfigInfo","regions","setRegions","useToast","provisionStatusMessage","setProvisionStatusMessage","provisionCompletionStatus","setProvisionCompletionStatus","confirmationModalOpen","setConfirmationModalOpen","accountInfoFormState","accountInfoFormDispatch","useReducer","accountInfoReducer","accountInfoInitialState","identity","zdsLocale","timezone","loadingProvisionStatus","setLoadingProvisionStatus","showSuccessAlertKey","openSuccessAlert","setOpenSuccessAlert","showAlert","localStorage","getItem","proxyPath","fetchAccountInfo","proxyCall","undefined","keyRender","Date","now","fetchRegions","fetchProvisionCompletionStatus","saveAccountInfo","region","snowflakeAccountRegion","accountName","snowflakeAccountName","accountEdition","snowflakeAccountEdition","installationUserFirstName","firstName","installationUserLastName","lastName","installationUserEmail","workEmail","businessCritical","serviceType","shareObjects","shareLatency","warehouse","provisionTenantShare","getInputInstructions","snippet","Box","margin","backgroundColor","designTokens","colors","lightActionSelected","fontFamily","lineHeight","marginTop","paddingLeft","RegionInstructions","AccountInstructions","AccountEditionInstructions","getInputInstructionsWithoutCommand","hasMissingAccountInfo","TopMessageSection","alreadyInstalled","TopMessageCompleted","dismissible","action","setItem","TopMessageInProgress","InstallButtonSection","ButtonSectionStyle","InstalledBySection","installerFirstName","installerLastName","installerEmail","getDatetime","datetime","locale","Intl","DateTimeFormat","day","month","year","hour","minute","second","timeZone","timeZoneName","format","Number","installDate","AccountInfoLoadingAnimation","validating","marginRight","size","ModalBody","content","Select","sort","map","SelectItem","key","Modal","alignItems","justifyContent","ModalTitle","footer","ModalActions","validateAccountInfo","configFormEditable","setConfigFormEditable","showConfirmCancelModal","setShowConfirmCancelModal","configFormState","configFormDispatch","configReducer","configInitialState","hasErrors","fieldName","fieldErrors","fetchConfigInfo","refreshConfigInfoForm","configInfoHasChanges","databaseName","accountId","userName","password","role","poweredBySnowflakeEnabled","loadedDatabaseName","loadedAccountId","loadedUserName","loadedPassword","loadedRole","loadedWarehouse","loadedPoweredBySnowflakeEnabled","loadedConfigInfo","configInfoHasEmptyFields","buttonSection","upsertConfigInfo","username","database","poweredBySnowflake","loaded","configFormEditButton","getModalContent","flexDirection","paddingBottom","SnowflakeInputRowSectionStyle","alignSelf","cursor","Tooltip","SnowflakeInputSectionStyle","navy600","Checkbox","checked","valid","reasons","validateConfigInfo","headerAction","saving","initialState","reducer","userFirstName","userLastName","userEmail","installationDate","Boolean","savingSucceeded","styled","div","Authentication","useStoreDispatch","authSelection","setAuthSelection","savedCreds","setSavedCreds","openConfirm","setOpenConfirm","modalData","setModalData","confirmLoading","setConfirmLoading","hideLegacyChip","_1","oauthEnabled","ZDP_AUTH_SETUP","authSet","err","fetchCreds","disableBackdropClick","syncInprogress","Chip","Divider","FormControl","FormLabel","RadioGroup","row","defaultValue","FormControlLabel","control","Radio","onChange","OAuth","BasicAuth","contentDisabled","token","sandbox","setUsername","setPassword","setToken","showPassword","setShowPassword","showSecurityToken","setShowSecurityToken","isSandbox","setIsSandbox","isEdited","setIsEdited","setSaving","appsV1CredsPath","saveBtnDisabled","event","helperText","InputProps","endAdornment","InputAdornment","position","icon","Switch","_","justify","isIncremental","CircularProgress","blue500","top","left","useSandbox","setUseSandbox","enableSetup","setEnableSetup","defaultIHPath","connect_id","oauthMessage","deleteOAuthCreds","OBJECTS_MAP","PRODUCTS_MAP","ManualSync","openManualSync","setOpenManualSync","selectedObjects","setSelectedObjects","syncStartDate","setSyncStartDate","syncEndDate","setSyncEndDate","syncInProgress","setSyncInProgress","dacoProxyPath","selectedTab","setSelectedTab","DatePicker","Tabs","a11yLabel","newIndex","Tab","TreeView","root","enabled","defaultExpanded","m","objectTypes","objectMap","forEach","obj","push","cookies","current_user","zuoraTenantIdFromCookie","zuoraUserIdFromCookie","cookie","fromTime","slice","toTime","DUMMY_ACCOUNT_SELECT_ALL_TREE","DUMMY_PRODUCT_CATALOG_SELECT_ALL_TREE","Reconciliation","openRecon","setOpenRecon","tabName","useStoreState","selectedProducts","setSelectedProducts","reconStartDate","setReconStartDate","reconEndDate","setReconEndDate","resyncEnabled","setResyncEnabled","reconInProgress","setReconInProgress","syncSettings","OBJECTS","useMemo","PRODUCTS","parseEnvironment","parse","getTime","windmillParams","join","LoadingButton","text","onClick","accountObjectIndents","Map","allAccountObjects","Array","from","allProductCatalogObjects","enablementSubheader","manualSyncEnabled","savingAllObjects","setSavingAllObjects","selectedSchedule","setSelectedSchedule","syncType","setSyncType","userId","setUserId","updateObjectsEnablementStatuses","objects","updatedSettings","merge","allObjectsAreEnabled","object","retrieveReconJobs","result","objectType","noObjectsAreEnabled","addSpaceToCamelCase","input","replace","hasOwnProperty","Promise","resolve","variable","callback","interval","fetchObjectsEnablementData","enablements","newSettings","updateObjectEnablementData","computedSyncType","filter","enablement","every","scheduled","fetchScheduleConfig","setting","toLocaleLowerCase","fetchReconJobData","jobs","newJobs","job","updateReconJobTableData","setInterval","clearInterval","credsModified","enabledObjects","List","width","maxWidth","bgcolor","ListItemButton","pl","ListItemIcon","indeterminate","ListItemText","primary","disablePadding","arrow","handleClickObject","finishTime","getDay","startTime","handleClickRecon","TableContainer","Paper","Table","minWidth","TableHead","TableRow","TableCell","align","TableBody","border","scope","sourceDiffCount","sourceDiffLink","targetDiffCount","targetDiffLink","autoDistance","space","coolGray500","truncated","tooltipOnlyWhenTruncated","noWrap","LAST_SYNC_STATUS_MAPPINGS","vendor","chartData","setChartData","totalRowsSynced","setTotalRowsSynced","showSpinner","setShowSpinner","lastTransfer","setLastTransfer","setShareLatency","destinationData","ZDQ_DESTINATION_DATA","recipient","ZDQ_RECIPIENT","fetchAuthTokenUrl","AUTH_TOKEN_URL","hasPermissionsEnabled","T9_PERMISSION_MAPPINGS","getNextTransferTime","started_at","submitted_at","lastTransferAttempt","lastTransferDifferenceAgainstCurrentTimeInSeconds","shareLatencyInSeconds","parseInt","nextTransferTime","Math","abs","ceil","gridItems","last_successful_transfer_ended_at","fetchAuthTokenWithDestinationWrapper","useCallback","fetchAuthTokenWithExistingDestination","existingDestination","getTransfers","useGetTransfers","PREQUEL_API_HOST","lastTransferResponse","count","latency","id_in_provider_system","res","info","fetchTenantLatency","allTransfers","fetchAllTransfers","a","b","x","toISOString","y","total_rows_transferred","temp","reduce","accumulator","currentValue","toLocaleString","coolGray300","textAlign","noPaddingBottom","MetricsInfoCard","coolGray400","Chart","colorPalette","xInterval","ChartIntervals","DAY","yAxisIntegerOnly","showAllXAxisLabel","props","currIndex","ZdqConnectorSetup","AURORA_MYSQL","ZdqConnectorStatus","AWS_ATHENA","AWS_AURORA_POSTGRES","AWS_RDS_POSTGRES","AWS_REDSHIFT","AWS_S3","AZURE_BLOB_STORAGE","BIGQUERY","DATABRICKS","GCP_POSTGRES","GENERIC_MYSQL","GENERIC_POSTGRES","GOOGLE_CLOUD_STORAGE","SQL_SERVER","scoped_token","CustomTab","lastUpdatedBy","lastUpdatedDate","customIcon","Execution","inbound","newLayout","SolutionInstances","FieldMapping","WDAuthentication","WDExecution","WDFieldMapping","SyncSettings","ZDPAuthentication","WDBAuthentication","WDBExecution","WDBFieldMapping","SAPBillingAuthentication","Destination","system","SAPExecution","SAPRevenueAuthentication","SAPFieldMapping","ZdqGcpPostgresConnector","ZdqGcpPostgresConnectorStatus","ZdqAwsAuroraPostgresConnector","ZdqAwsAuroraPostgresConnectorStatus","ZdqAwsRdsPostgresConnector","ZdqAwsRdsPostgresConnectorStatus","ZdqGenericPostgresConnector","ZdqGenericPostgresConnectorStatus","ZdqAuroraMySqlConnector","ZdqAuroraMySqlConnectorStatus","ZdqGenericMySqlConnector","ZdqGenericMySqlConnectorStatus","ZdqAwsRedshiftConnector","ZdqAwsRedshiftConnectorStatus","ZdqBigQueryConnector","ZdqBigQueryConnectorStatus","ZdqAwsS3Connector","ZdqAwsS3ConnectorStatus","ZdqAzureBlobStorageConnector","ZdqAzureBlobStorageConnectorStatus","ZdqAwsAthenaConnector","ZdqAwsAthenaConnectorStatus","ZdqGoogleCloudStorageConnector","ZdqGoogleCloudStorageConnectorStatus","ZdqDatabricksConnector","ZdqDatabricksConnectorStatus","ZdqSqlServerConnector","ZdqSqlServerConnectorStatus","BasicTemplate","showHeader","renderSwitch","selected","setSelected","selectedSet","Set","parentMap","goThroughAllNodes","nodes","getAllChildren","node","splice","childNode","collectedNodes","isArray","getOnChange","array","childrenNodesToToggle","path","getChildById","nodeToToggle","getNodeById","parentsPath","index","indexOf","renderTree","allSelectedChildren","childNodeId","has","some","TreeItem","nodeId","currentTarget","stopPropagation","paddingTop","MUITreeView","defaultCollapseIcon","ExpandMore","defaultExpandIcon","ChevronRight"],"sourceRoot":""}