{"version":3,"file":"authentication.967fadaae62ef67d911a.js","mappings":"+DAAIA,E,gECGG,SAASC,EAAUC,EAAkBC,GAC1C,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAOC,MAAMJ,EAAO,EAAIA,EAAO,EAAI,GAAIK,EAAO,EAAGA,EAAOL,EAAMK,IAC9FF,EAAKE,EAAO,GAAKJ,UAAUI,GAG7B,OAAO,KAAKC,WAAMC,EAAW,CAAC,KAAiBT,EAAkBC,GAAQS,OAAOL,GAClF,CAEO,SAASM,EAAWX,EAAkBC,GAC3C,IAAK,IAAIW,EAAQT,UAAUC,OAAQC,EAAOC,MAAMM,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACpGR,EAAKQ,EAAQ,GAAKV,UAAUU,GAG9B,OAAO,KAAKL,WAAMC,EAAW,CAAC,KAAkBT,EAAkBC,GAAQS,OAAOL,GACnF,C,6DCbe,SAASM,EAAWX,EAAkBC,GACnD,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAOC,MAAMJ,EAAO,EAAIA,EAAO,EAAI,GAAIK,EAAO,EAAGA,EAAOL,EAAMK,IAC9FF,EAAKE,EAAO,GAAKJ,UAAUI,GAG7B,IAAIO,EAAQ,CAAEC,MAAM,EAAOC,OAAO,OAAKhB,IACnCiB,EAAQ,SAAeC,GACzB,MAAO,CAAEH,MAAM,EAAOC,MAAO,KAAKR,WAAMC,EAAW,CAACR,GAAQS,OAAOL,EAAM,CAACa,KAC5E,EACIC,EAAU,SAAiBC,GAC7B,MAAO,CAAEL,MAAM,EAAOC,OAAO,QAAOI,GACtC,EAEIA,OAAO,EACPC,OAAS,EACTC,EAAU,SAAiBC,GAC7B,OAAOH,EAAOG,CAChB,EACIC,EAAY,SAAmBN,GACjC,OAAOG,EAASH,CAClB,EAEA,OAAO,QAAY,CACjBO,GAAI,WACF,MAAO,CAAC,KAAMX,EAAOU,EACvB,EACAE,GAAI,WACF,OAAOL,IAAW,KAAM,CAAC,MAAQD,EAAO,CAAC,KAAMD,EAAQC,IAAS,CAAC,KAAMH,EAAMI,GAASC,EACxF,EACAK,GAAI,WACF,MAAO,CAAC,KAAMV,EAAMI,GAASC,EAC/B,GACC,KAAM,eAAgB,QAAStB,GAAoB,KAAOC,EAAO2B,KAAO,IAC7E,C,+nCCpBMC,EAAwC,CAC5CC,OAAQ,YACRf,KAAM,oBACNgB,MAAO,iBAGF,SAAUC,EAAmBC,EAA0BC,G,wDAK5C,OAJhBD,GAAW,IAAAE,UAASF,EAAUJ,GAExBO,EAAU,gBAAsB,IAAaC,QAASJ,EAASH,QAAQ,EAAMI,GAEnE,GAAM,OAAaE,I,OAEnC,OAFgB,SAGP,CAAP,EAAO,SAAe,CACpBE,GAAIF,EAAQE,GACZC,KAAM,IAAaF,QACnBG,QAASP,EAASlB,KAClB0B,gBAAgB,KAGX,CAAP,EAAO,SAAe,CACpBH,GAAIF,EAAQE,GACZC,KAAM,IAAaG,MACnBF,QAASP,EAASF,MAClBU,gBAAgB,K,IAuCf,SAAUE,I,+DACTC,GAAqB,YAGzB,OAA4BA,EAAmBN,IAC/C,IAAM,QAAI,OAAaM,MAFrB,M,OAEF,S,6GC9EEC,EAAc,SAACC,GAAoB,OAAAA,EAAMC,GAAN,EAEnCC,GAAwB,QAC5BH,GACA,SAAAE,GAAO,OAAAA,EAAIE,aAAJ,IAGHC,GAAmB,QACvBL,GACA,SAAAE,GAAO,OAAAA,EAAII,QAAJ,IAGIC,GAAwB,QACnCJ,GACA,SAAAK,GAAU,OAAAA,EAAOC,qBAAP,IAGCC,GAAW,QACtBP,GACA,SAAAK,GAAU,OAAAA,EAAOG,aAAP,IAGCC,GAAiB,QAC5BT,GACA,SAAAK,GAAU,OAAAA,EAAOK,cAAP,IAQCC,IALW,QACtBX,GACA,SAAAK,GAAU,OAAAA,EAAOO,SAAP,KAGU,QACpBZ,GACA,SAAAK,GAAU,OAAAA,EAAOQ,MAAP,KAaCC,IAVe,QAC1Bd,GACA,SAAAK,GAAU,OAAAA,EAAOU,iBAAP,KAGkB,QAC5Bf,GACA,SAAAK,GAAU,OAAAA,EAAOW,QAAP,KAGa,QACvBhB,GACA,SAAAK,GAAU,OAAAA,EAAOY,MAAP,KAmBCC,IAhBgB,QAC3BlB,EACAc,GACA,SAACT,EAAQc,GAAW,WAAAC,MAAKf,EAAOgB,OAAO,SAAAC,GAAQ,OAAAA,EAAKC,KAAOJ,CAAZ,GAA3B,KAGK,QACzBnB,GACA,SAAAK,GAAU,OAAAA,EAAOmB,SAAP,KAGsB,QAChCxB,GACA,SAAAK,GAAU,OAAAA,EAAOoB,cAAP,KAGmB,QAC7BvB,GACA,SAAAC,GAAY,OAAAA,EAASuB,YAAT,KAGDC,GAAgC,QAC3Cb,EACAI,GACA,SAACC,EAAQS,GAAiB,OAAAA,EAAaC,QAAO,SAAAC,GAAK,OAAAA,EAAEX,SAAWA,CAAb,GAAzB,IAQfY,IALoB,QAC/BJ,GACA,SAAAC,GAAgB,WAAAI,MAAKJ,GAAc,SAACK,GAA6B,OAAAA,EAAYC,UAAZ,GAAjD,KAGmB,QACnC3B,EACAW,GACA,SAACiB,EAAOP,GAAiB,WAAAR,MAAKQ,GAAc,SAAA7B,GAAO,OAAAA,EAAIT,KAAO6C,CAAX,GAA1B,MAGK,QAC9BjC,GACA,SAAAC,GAAY,OAAAA,EAASiC,aAAT,KAGqB,QACjClB,GACA,SAAAU,GAAgB,WAAAS,OAAMT,GAAc,SAAAE,GAAK,OAAAA,EAAExC,EAAF,GAAzB,KAGW,QAC3BY,GACA,SAAAC,GAAY,OAAAA,EAASmC,UAAT,G,mNC5FRtC,GAAwB,SAFV,SAACF,GAAoB,OAAAA,EAAMC,GAAN,IAIvC,SAAAA,GAAO,OAAAA,EAAIE,aAAJ,IAQIsC,IALwB,QACnCvC,GACA,SAAAK,GAAU,OAAAA,EAAOmC,qBAAP,KAG0B,QACpCxC,GACA,SAAAK,GAAU,OAAAA,EAAOoC,sBAAP,KAGCC,GAA2B,QACtCH,GACA,SAAAI,GACE,OAAAA,EAAEC,QAAQ,WAAa,GAAKD,EAAEC,QAAQ,cAAgB,GAAKD,EAAEC,QAAQ,uBAAyB,CAA9F,IAoBSrC,IAjB4B,QACvCgC,EACAG,GACA,SAAAC,GACC,OAAAD,EAA2BC,EAAI,IAA/B,KAGmC,QACpC3C,GACA,SAAAK,GAAU,OAAAA,EAAOwC,mBAAP,KAGkB,QAC5B7C,GACA,SAAAK,GAAU,OAAAA,EAAOyC,WAAP,KAGY,QACtB9C,GACA,SAAAK,GAAU,OAAAA,EAAOG,aAAP,KAGCuC,GAAmB,QAC9B/C,GACA,SAAAK,GAAU,OAAAA,EAAOC,qBAAP,IAGCQ,GAAY,QACvBd,GACA,SAAAK,GAAU,OAAAA,EAAOY,MAAP,IAGC+B,GAAoB,QAC/BhD,GACA,SAAAK,GAAU,OAAAA,EAAOK,cAAP,IAQCuC,IALe,QAC1BjD,GACA,SAAAK,GAAU,OAAAA,EAAOO,SAAP,KAGmB,QAC7BZ,GACA,SAAAK,GAAU,OAAAA,EAAO6C,QAAP,KAGCC,GAA4B,QACvCF,GACA,SAAAG,GAAM,OAAAA,EAAGR,QAAQ,2CAA6C,CAAxD,IAGKS,GAA4B,QACvCJ,GACA,SAAAG,GAAM,OAAAA,EAAGR,QAAQ,gBAAkB,CAA7B,IAQKU,IAL6B,QACxCL,GACA,SAAAG,GAAM,OAAAA,EAAGR,QAAQ,0BAA4B,CAAvC,KAGwC,QAC9C5C,GACA,SAAAK,GAAU,OAAAA,EAAOkD,4BAAP,KAGCC,GAAwB,QACnCxD,GACA,SAAAK,GAAU,OAAAA,EAAOoD,iCAAP,IAGCC,GAAwB,QACnC1D,GACA,SAAAK,GAAU,OAAAA,EAAOsD,4BAAP,IAGCC,GAA8B,QACzCN,EACAE,EACAE,GACA,SAACG,EAAOC,EAAKC,GAAQ,OAAAF,GAASC,GAAOC,CAAhB,IAGVC,GAAe,QAC1BhE,GACA,SAAAK,GAAU,OAAAA,EAAO4D,cAAP,IAICC,GAAa,QACxBlE,GACA,SAAAK,GAAU,OAAAA,EAAO8D,cAAP,IAICC,GAAa,QACxBpE,GACA,SAAAK,GAAU,OAAAA,EAAOgE,YAAP,IAGCC,GAAqB,QAChCtE,GACA,SAAAK,GAAU,OAAAA,EAAO4D,gBAAkB5D,EAAO8D,gBAAkB9D,EAAOgE,YAAzD,IAGCE,GAAgB,QAC3BvE,GACA,SAAAK,GAAU,OAAAA,EAAOmE,UAAP,IAQCC,IALiB,QAC5BF,GACA,SAAAG,GAAc,WAAAtD,MAAK,MAAc,SAACuD,GAAmB,OAAAA,EAAErF,IAAMoF,CAAR,GAAvC,KAGQ,QACtB1E,GACA,SAAAK,GAAU,OAAAA,EAAOgB,KAAP,KAQCuD,IALmB,QAC9BH,GACA,SAAAI,GAAS,OAAAA,EAAMzH,OAAS,CAAf,KAGmB,QAC5BqH,GACA,SAAAI,GACE,IAAMC,GAAgB,SACtB,OAAO,IAAA1D,MAAKyD,GAAO,SAAAE,GAAK,OAAAA,EAAExD,KAAOuD,CAAT,GAC1B,KAGWE,GAAe,QAC1BJ,GACA,SAAAtD,GACE,QAAOA,GAA8B,UAAvBA,EAAK2D,aACrB,IAiCWC,IA9BmB,QAC9BN,GACA,SAAAtD,GACE,QAAOA,GAAOA,EAAK6D,YAAc,KAAUC,YAC7C,KAG8C,QAC9CX,EACAzB,GACA,SAAC6B,EAAOpE,GACN,IAAM4E,GAAc,IAAAjE,MAAKyD,GAAO,SAAAE,GAAK,OAAAA,EAAExD,KAAO+D,SAAS7E,EAAgB,GAAlC,IACrC,OAAO4E,GAAeA,EAAYE,uBACpC,KAGoC,QACpCd,EACAzB,GACA,SAAC6B,EAAOpE,GACN,IAAM4E,GAAc,IAAAjE,MAAKyD,GAAO,SAAAE,GAAK,OAAAA,EAAExD,KAAO+D,SAAS7E,EAAgB,GAAlC,IACrC,OAAO4E,GAAeA,EAAYG,QACpC,KAG+B,QAC/BZ,GACA,SAAAtD,GAAQ,QAAC,IAAAmE,OAAMnE,EAAP,KAGoB,QAC5BtB,GACA,SAAAK,GAAU,OAAAA,EAAOoB,cAAP,KAGCiE,GAAsB,QACjC1F,GACA,SAAAK,GAAU,OAAAA,EAAOsF,mBAAP,IAGCC,GAAiB,QAC5BV,EACAQ,GACA,SAACR,EAAgBQ,GAAwB,OAAAR,IAAmBQ,CAAnB,IAK9BG,GAAsB,SACjC,WACE,OAAAC,SAASC,cAAc,sEAAvB,IACF,SAAAC,GAAS,WAAAC,KAAID,EAAO,QAAX,IAqBEE,IAlBoC,QAC/CL,GACA,SAAAM,GAAS,OACPC,2BAA4BD,EADrB,KAKY,QACrBnG,GACA,SAACK,GAAiB,OAChBgG,SAAUhG,EAAOiG,UACjBhH,GAAIe,EAAOkG,QACXC,YAAY,OAAanG,EAAOkG,SAChCE,UAAWpG,EAAOqG,UAClBC,UAAU,EALM,KASG,QACrB3G,GACA,SAAAK,GAAU,OAAAA,EAAOuG,IAAP,KAQCC,IALwB,QACnC7G,GACA,SAAAK,GAAU,OAAAA,EAAOyG,kBAAP,KAGmB,QAC7B9G,GACA,SAAAK,GAAU,OAAAA,EAAO0G,oBAAP,KAkBCC,IAfgB,QAC3BhH,GACA,SAAAK,GAAU,OAAAA,EAAO4G,aAAP,KAGgB,QAC1BjH,GACA,SAAAK,GAAU,OAAAA,EAAO6G,sBAAP,KAGgC,QAC1ClH,GACA,SAAAK,GAAU,OAAAA,EAAO8G,4BAAP,KAGkB,QAC1BnC,EACA7B,EACAE,GACA,SAAC2B,EAAc7B,EAA2BE,GACtC,QAAKF,IAA6B6B,IAAgB3B,EAStD,I,4QCrJS+D,EAAwB,CACnCC,GAAI,CACFC,OAAQ,CACNC,MAAO,KACPC,SAAU,KACVC,MAAO,CACLC,QAAS,UACTC,UAAW,WAEbC,KAAM,CACJC,SAAU,KAAgBC,WAC1BC,OAAQ,KAAgBC,UAE1BC,KAAM,KACNC,MAAO,KACPC,OAAQ,KACRC,KAAM,KACNC,OAAQ,KACRC,KAAM,KACNC,IAAK,KACLC,SAAU,KACVC,KAAM,KACNC,KAAM,KACNC,OAAQ,KACRC,KAAM,IACNC,OAAQ,KACRC,OAAQ,KACRC,QAAS,MAEXC,eAAA,SAAeC,GAEb,IAAI,IAAAxD,OAAMwD,GACR,MAAO,GAGT,GAAc,gBAAVA,EACF,OAAO,KAAmBC,YAE5B,GAAc,UAAVD,EACF,OAAO,KAAmBE,MAE5B,GAAc,UAAVF,EACF,OAAO,KAAmBG,MAG5B,IAAMC,EAAaJ,EAAMK,QAAQ,eAAgB,IAGjD,OAAQC,KAAKjC,OAAe+B,GAAYJ,EAC1C,EACAO,kBAAmB,uCACnBC,gBAAiB,iEACjBC,MAAO,CACLC,SAAU,yCAGdD,MAAO,CACLC,SAAU,wCAEZC,QAAS,CACPC,IAAK,uCACLC,SAAU,mCACVC,SAAU,gCACVC,MAAO,oCAET1C,OAAQ,CACN2C,OAAQ,CACNC,KAAM,OACNC,MAAO,UACPR,SAAU,UACVT,YAAa,mBAEfd,KAAM,CACJgC,QAAS,OACTF,KAAM,UACNP,SAAU,UACVQ,MAAO,OACPE,QAAS,UACTC,SAAU,WAEZC,MAAO,CACLL,KAAM,UACNP,SAAU,UACVQ,MAAO,UACPK,UAAW,WAEbC,QAAS,CACPL,QAAS,UACTF,KAAM,UACNP,SAAU,UACVQ,MAAO,WAETO,KAAM,CACJtB,MAAO,OACPuB,WAAY,UACZrC,KAAM,UACNJ,MAAO,UACPE,KAAM,UACNwC,SAAU,UACVC,UAAW,OACXxC,OAAQ,UACRE,IAAK,UACLY,MAAO,OACPN,OAAQ,UACRiC,IAAK,OACLC,IAAK,OACLC,MAAO,QAETrB,SAAU,CACRR,MAAO,OACP8B,MAAO,UACPC,eAAgB,WAElB3C,IAAK,CACH2B,KAAM,UACNC,MAAO,UACPR,SAAU,WAEZrB,KAAM,CACJ4B,KAAM,UACNC,MAAO,UACPR,SAAU,WAEZwB,UAAW,CACTxB,SAAU,UACVQ,MAAO,UACPD,KAAM,WAERkB,MAAO,CACLzB,SAAU,UACVQ,MAAO,UACPD,KAAM,WAERhC,MAAO,CACLgC,KAAM,UACNC,MAAO,UACPR,SAAU,UACV0B,QAAS,WAEXC,UAAW,CACTnB,MAAO,UACPR,SAAU,UACVa,UAAW,WAEbe,SAAU,EAAF,eACH,MACA,MACA,MACA,MACA,MACA,MACA,MAELC,OAAQ,M,oQCzRCC,EAA2C,SAAAC,GAEpD,IAAAC,EAUED,EAAK,OATPE,EASEF,EAAK,SARPG,EAQEH,EAAK,aAPPI,EAOEJ,EAAK,SANPK,EAMEL,EAAK,SALPM,EAKEN,EAAK,cAJPO,EAIEP,EAAK,QAHPQ,EAGER,EAAK,YAFPS,EAEET,EAAK,OADPU,EACEV,EAAK,QACH,GAA0B,IAAAW,WAAS,GAAlCC,EAAQ,KAAEC,EAAW,MAE5B,IAAAC,kBAAgB,WACVN,EAEFO,YAAW,WAAM,OAAAF,GAAY,EAAZ,GAAmB,GAEpCA,GAAY,EAEhB,GAAG,IAEH,IAAMG,EAAgB,CACpBC,WAAY,WAAWZ,EAAQ,MAAMI,EACrCC,QAASV,EAAMkB,OAAS,EAAIR,EAC5BS,WAAYnB,EAAMkB,OAAS,SAAW,WAElCE,EAAwB,CAC5BC,SAAU,CAAEX,QAAO,EAAES,WAAY,WACjCG,QAAS,CAAEZ,QAAO,EAAES,WAAY,WAChCI,QAAS,CAAEb,QAASV,EAAMwB,QAAU,EAAId,EAASS,WAAY,WAC7DM,OAAQ,CAAEf,QAAS,EAAGS,WAAY,WAE9BO,EAAQ,WAAeC,KAAKzB,GAElC,OACE,gBAAC,EAAA0B,WAAU,CACTC,GAAItB,EACJuB,QAASzB,EACTJ,OAAQA,EACRG,SAAUA,EACVD,aAAcA,EACdG,cAAeA,IAEd,SAAClM,GACA,IAAM2N,EAAQ,EAAH,KACNf,GACCJ,EAAWQ,EAAiBhN,GAAS,CAAC,GAE5C,OAAO,eAAmBsN,EAAO,CAAEK,MAAK,GAC1C,GAGN,EACAhC,EAAKiC,aAAe,CAClB/B,QAAQ,EACRG,SAAU,WAAM,EAChBD,cAAc,EACdG,eAAe,EACfY,QAAQ,EACRM,SAAS,EACTd,QAAS,EACTD,OAAQ,c,oXCxDV,SAASwB,EACPC,EACAC,EACAC,G,MAEA,OAAO,EAAP,YACE,WAAYpC,GAAZ,MACE,YAAMA,IAAM,K,OACZ,EAAKqC,gBAAkB,EAAKA,gBAAgBC,KAAK,GAEjD,EAAKlO,MAAQ,CACXmO,cAAc,G,CAElB,CAmDF,OA3DgC,OAiB9B,YAAAC,eAAA,WACE3E,KAAK4E,cAAgB5E,KAAKmC,MAAMmC,SAC5BA,EACAtE,KAAKmC,MAAMoC,SACXA,EACAF,UAEyC,IAAlCrE,KAAK4E,aAAaC,aAC3B7E,KAAK4E,aAAaC,YAAY7E,KAAKwE,iBAGrCxE,KAAK8E,SAAS,CAAEJ,aAAc1E,KAAK4E,aAAaG,SAClD,EAEA,YAAAC,iBAAA,WACMhF,KAAK4E,cACP5E,KAAK4E,aAAaK,eAAejF,KAAKwE,gBAE1C,EAEA,YAAAU,kBAAA,WACElF,KAAK2E,gBACP,EAEA,YAAAQ,qBAAA,WACEnF,KAAKgF,kBACP,EAEA,YAAAI,mBAAA,SAAmBC,GACbrF,KAAKmC,MAAMmC,UAAYe,EAAUf,WACnCtE,KAAKgF,mBACLhF,KAAK2E,iBAET,EAEA,YAAAH,gBAAA,SAAgBc,GACdtF,KAAK8E,SAAS,CAAEJ,aAAcY,EAAEP,SAClC,EAEA,YAAAQ,OAAA,WACE,OAAOvF,KAAKzJ,MAAMmO,aAAe,gCAAG1E,KAAKmC,MAAME,UAAe,IAChE,EACF,EA3DA,CAAgC,cAYvB8B,aAAsB,CAC3BG,UAAU,EACVC,UAAU,G,CA8ChB,CAEqBH,EACnB,KACA,KACA,MAHK,IAKMoB,EAASpB,EACpB,KACA,KACA,MAEWqB,EAAQrB,EACnB,KACA,KACA,K,oCC3FmC,QAPD,SAACjC,GACnC,cAAS,CACPuD,QAAS,QACTC,QAAS,UACTC,aAAc,aAAazD,EAAM0D,MAAM9H,OAAO2C,OAAOE,OAHvD,KAe4B,QAPD,WAAc,OACzC8E,QAAS,QACTI,MAAO,MACPC,MAAO,OACPJ,QAAS,MAJgC,GAOyB,M,urBCJpE,2B,8CAmBA,QAnBgC,OAgB9B,YAAAJ,OAAA,WACE,OAAO,gBAAC,IAAc,MAAK,IAAAS,MAAKhG,KAAKmC,MAAO,CAAC,qBAAsB,eACrE,EAjBO,EAAAgC,aAAY,GAQjB8B,UAAW,WACXC,kBAAmB,UACnBC,oBAAqB,UACrBC,sBAAuB,WACpB,KAMP,C,CAnBA,CAAgC,aAsBhC,2B,8CAmBA,QAnBuC,OAgBrC,YAAAb,OAAA,WACE,OAAO,gBAAC,IAAc,MAAK,IAAAS,MAAKhG,KAAKmC,MAAO,CAAC,qBAAsB,eACrE,EAjBO,EAAAgC,aAAY,GAQjB8B,UAAW,cACXC,kBAAmB,UACnBC,oBAAqB,aACrBC,sBAAuB,eACpB,KAMP,C,CAnBA,CAAuC,Y,8rBCnCvC,2B,8CA2BA,QA3BgC,OAkB9B,YAAAb,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,E,yUAAK,GAApB,cAEN,OACE,gBAAC,IAAU,KAAKA,EAAK,CAAEkE,gBAAgB,gBACpChE,EAGP,EAzBO,EAAA8B,aAAY,OASd,KAAY,CACf8B,UAAW,WACXK,wBAAyB,cACzBJ,kBAAmB,UACnBK,qBAAsB,UACtBC,uBAAwB,YAY5B,C,CA3BA,CAAgC,a,w2BCWhC,2B,8CAgBA,QAhBoC,OAWlC,YAAAjB,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,IAApB,cAEN,OAAO,gBAAC,IAAU,KAAKA,GAAQE,EACjC,EAdO,EAAA8B,aAAY,OACd,KAAY,CACf8B,UAAW,QACXI,gBAAiB,WACjBE,qBAAsB,WACtBC,uBAAwB,WACxBN,kBAAmB,UACnBI,wBAAyB,YAQ7B,C,CAhBA,CAAoC,aAmBpC,2B,8CAgBA,QAhB4B,OAW1B,YAAAf,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,IAApB,cAEN,OAAO,gBAAC,IAAU,KAAKA,GAAQE,EACjC,EAdO,EAAA8B,aAAY,OACd,KAAY,CACf8B,UAAW,UACXI,gBAAiB,aACjBE,qBAAsB,cACtBC,uBAAwB,cACxBN,kBAAmB,UACnBI,wBAAyB,YAQ7B,C,CAhBA,CAA4B,cAmB5B,yB,8CAgBA,CAhBkC,OAWhC,YAAAf,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,IAApB,cAEN,OAAO,gBAAC,IAAU,KAAKA,GAAQE,EACjC,EAdO,EAAA8B,aAAY,OACd,KAAY,CACf8B,UAAW,QACXI,gBAAiB,SACjBE,qBAAsB,SACtBC,uBAAwB,SACxBN,kBAAmB,UACnBI,wBAAyB,W,CAR7B,CAAkC,Y,mkBC1C5BG,EAA6C,CACjDC,aAAc,cACdC,qBAAsB,WACtBC,cAAe,cACfC,sBAAuB,eAKzB,2B,8CAcA,QAd8B,OAW5B,YAAAtB,OAAA,WACE,OAAO,gBAAC,IAAoB,KAAKvF,KAAKmC,OACxC,EAZO,EAAAgC,aAAY,SAGd,KACAsC,GAAkB,CACrBK,cAAe,qBACfC,YAAa,mBACb1R,UAAMnB,IAMV,C,CAdA,CAA8B,cAkB9B,yB,8CAcA,CAdiC,OAW/B,YAAAqR,OAAA,WACE,OAAO,gBAAC,IAAoB,KAAKvF,KAAKmC,OACxC,EAZO,EAAAgC,aAAY,SAGd,KACAsC,GAAkB,CACrBO,eAAe,EACfF,cAAe,kBACfC,YAAa,a,CARjB,CAAiC,Y,+FCV3BE,EAAsB,SAAC,G,IAAEC,EAAI,OAAEC,EAAM,SAAEC,EAAU,aAAmB,gBACxEjF,G,QAEA,cACE,CACEA,EAAMkF,SAAwB,MAAblF,EAAMmF,I,GAErB5H,MAAO,IAAM5B,GAAGC,OAAOM,KAAKC,UAC5B,EAAC,UAAkB,CACjBoB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,QAE9B,EAAC,WAAmB,CAClBkB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,QAE9B,EAAC,UAAkB,CACjBkB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,QAE9B,EAAA+I,OAAQ,U,IAGZ,GACIpF,EAAMzC,O,GAENA,MAAO,IAAM5B,GAAG2B,eAAe0C,EAAMzC,QACrC,EAAC,UAAkB,CACjBA,MAAO,IAAM5B,GAAG2B,eAAe0C,EAAMzC,QAEvC,EAAC,WAAmB,CAClBA,MAAO,IAAM5B,GAAG2B,eAAe0C,EAAMzC,QAEvC,EAAC,UAAkB,CACjBA,MAAO,IAAM5B,GAAG2B,eAAe0C,EAAMzC,Q,IAI3C,CACEyC,EAAMqF,KACN,CACEC,WAAY,MAGhB,GACItF,EAAMiF,WACR,CACEA,WAAYjF,EAAMiF,aAGtB,GACIjF,EAAMuF,SACR,CACEA,SAAUvF,EAAMuF,WAGpB,GACIvF,EAAMsF,WACR,CACEA,WAAYtF,EAAMsF,aAGtB,CACEtF,EAAMwF,OACN,CACEjC,QAAS,WAGb,CACEvD,EAAMyF,iBACN,CACEC,SAAU,SACVC,aAAc,aAGlB,GACI3F,EAAM4F,UACR,CACEC,UAAW7F,EAAM4F,YAGrB,GACI5F,EAAM8F,mBACR,CACEA,mBAAoB9F,EAAM8F,qBAG9B,GACI9F,EAAM+F,WACR,CACEA,WAAY/F,EAAM+F,aAGtB,GACI/F,EAAMgG,aACR,CACEA,aAAchG,EAAMgG,eA1F1B,CA6FE,CACAzC,QAAS,QACT0C,KAAM,GAAG,IAAMjI,MACfT,MAAO,IAAM5B,GAAG2B,eAAe,WAC/BiI,SAAaR,EAAI,MACjBO,WAAYN,EACZC,WAAY,GAAGA,GAnGjB,CAHwE,EAyG7DiB,GAAK,OAChBpB,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,QAEd,MAGWkB,GAAK,OAChBrB,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,QAEd,MAYWmB,IATK,OAChBtB,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,MAEd,OAGgB,OAChBH,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,QAEd,OA8BWoB,IA3BY,OACvBvB,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,OAEd,MAGkB,OAClBH,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,QAEd,MAGuB,OACvBH,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,OAEd,MAGkB,OAClBH,EAAoB,CAClBC,KAAM,IACNC,OAAQ,IACRC,WAAY,QAEd,MAGFoB,EAAKrE,aAAe,CAClBkD,SAAS,IAWc,QARF,WAAc,OACnCoB,oBAAqB,SACrBC,oBAAqB,MACrBR,WAAY,SACZxI,MAAO,KAAYiJ,QACnBC,oBAAqB,KAAiBC,YALH,GAQ6B,I,2EC/LrDC,GAAmB,EAAAC,EAAA,IAZhC,SAAgC5G,GAC9B,OAAO,OAAe,CACpBA,EAAM6G,iBACN,CACElD,MAAO,SAHJ,CAKJ,CACDnQ,SAAU,WACV+P,QAAS,gBAEb,IAgEauD,GAAqB,EAAAF,EAAA,IA5DlC,SAAkC5G,EAAgC+G,GAChE,IAAMC,EAAkB,sCAClBC,EAA8B,kDAoBpC,OAAO,OACL,CACEjH,EAAMO,QACN,CACE2G,UAAcH,EAASI,eACrBnH,EAAMoH,WAdgB,W,MAAM,aACjC,MAAc,CACbC,UAAW,oCAEb,EAAC,QAAgB,CACfA,UAAWJ,G,CALqB,EATlB,W,MAAM,aACrB,MAAc,CACbI,UAAW,wBAEb,EAAC,QAAgB,CACfA,UAAWL,G,CALS,EAwBhBhH,GACD,0CAGL,CACEA,EAAMoH,WACN,CACEE,MAAO,IACPC,KAAM,UACNF,UAAWJ,EACXlB,WAAY,SACZpC,MAAO,SAjBN,CAoBL,CACA4D,KAAM,MACNC,IAAK,IACLH,UAAWL,EACXxT,SAAU,WACViU,OAAQ,IACRvD,gBAAiB,IAAMvI,GAAG2B,eAAe,YACzCC,MAAO,IAAM5B,GAAG2B,eAAe,SAC/BkG,QAAS,YACTkE,aAAc,MACdnC,SAAU,OACVD,WAAY,IACZqC,UAAW,SACXhE,MAAO,OACPiE,SAAU,SAEd,IAUaC,GAAiB,EAAAjB,EAAA,IAN9B,WACE,MAAO,CACLrD,QAAS,QAEb,GAE6E,QAgBhEuE,GAAiB,EAAAlB,EAAA,IAd9B,WAEE,OAAO,SAAiB,CACtBpT,SAAU,WACVuU,OAAWC,OACXT,KAAM,MACNF,UAAW,iCACX1D,MAAO,OACPsE,OAAQ,OACR/D,gBAAiB,IAAMvI,GAAG2B,eAAe,YACzCiG,QAAS,SAEb,I,gBCjGa2E,EAAqD,SAAC,G,IACjEhI,EAAQ,WACRiI,EAAK,QACL5H,EAAO,UACP6G,EAAU,aACVgB,EAAS,YACTvB,EAAgB,mBAEhB,OACE,gBAACF,EAAgB,CAACE,iBAAkBA,GACjC3G,EACD,gBAAC,IAAI,CAACK,QAASA,EAASF,SAAUE,EAAU,IAAM,KAChD,gBAACuG,EAAkB,CAACvG,QAASA,EAAS6G,WAAYA,IAC9CgB,GAAa,gBAACN,EAAc,MAC9B,gBAACD,EAAc,KACb,gBAAC,IAAU,CAACQ,KAAM,gBAAC,KAAI,CAACxU,KAAK,OAAOyU,IAAI,UAAU/K,MAAM,WAAa4K,MAMjF,C,4CC3BaI,EAA4C,SAAAvI,GACvD,IAAMwI,EAAU,oCAAoCxI,EAAM+E,KACpD0D,EAAc,gDAAgDzI,EAAM+E,KACpE2D,EAAc,gDAAgD1I,EAAM+E,KAE1E,OAA0B,IAAtB/E,EAAM2I,YAEN,wBAAMC,UAAWJ,GACf,wBAAMI,UAAWH,GAAczI,EAAMqI,MACrC,wBAAMO,UAAWF,GAAc1I,EAAME,WAMzC,uBAAK0I,UAAWJ,GACd,uBAAKI,UAAU,mBAAmB5I,EAAMqI,MACxC,uBAAKO,UAAU,mBAAmB5I,EAAME,UAG9C,EAEAqI,EAAUvG,aAAe,CACvB+C,KAAM,KACN4D,aAAa,E,gKCbTE,EAAmB,SAAC7I,GACxB,IAAM8I,EAAiB,CACrBC,WAAY,OACZpF,MAAU3D,EAAM+E,KAAI,KACpBkD,OAAWjI,EAAM+E,KAAI,KACrBvB,SAAaxD,EAAM+E,KAAO/E,EAAMgJ,UAAY,EAAC,KAC7CC,eAAgB,OAChBC,QAAS,OACTxB,aAAc,MACdtC,OAAQ,UACR7H,MAAO,OACPgG,QAAS,QACTgC,SAAU,EACVrB,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASsJ,SAGlD,OAAO,OACL,CACEnJ,EAAMoJ,UACN,CACE,SAAU,CACRlF,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASwJ,SAElD,UAAW,CACTnF,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASyJ,SAElD,SAAU,CACRpF,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASyJ,WAItD,CACEtJ,EAAMwF,OACN,CACEjC,QAAS,eACTgG,cAAe,QAGnB,GACIvJ,EAAMwJ,YACR,CACEA,YAAgBxJ,EAAMwJ,YAAW,OAGrC,GACIxJ,EAAMyJ,WACR,CACEA,WAAezJ,EAAMyJ,WAAU,OAGnC,CACkB,YAAhBzJ,EAAMzC,MACN,CACE2G,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOmD,QAAQd,WAGnD,CACkB,SAAhB+B,EAAMzC,MACN,CACE2G,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAAS6J,UAGpD,CACkB,WAAhB1J,EAAMzC,OACN,OAAe,CACbyC,EAAMoJ,UACN,CACE,SAAU,CACRlF,gBAAiB,cACjB3F,OAAQ,aAAayB,EAAM0D,MAAM9H,OAAO2C,OAAOC,KAC/CjB,MAAOyC,EAAM0D,MAAM9H,OAAOoD,KAAKtC,MAEjC,UAAW,CACT2K,UAAW,kBACXnD,gBAAiB,wBACjB3F,OAAQ,aAAayB,EAAM0D,MAAM9H,OAAO2C,OAAOC,KAC/CjB,MAAOyC,EAAM0D,MAAM9H,OAAOoD,KAAKtC,MAEjC,SAAU,CACR2K,UAAW,kBACXnD,gBAAiB,wBACjB3F,OAAQ,aAAayB,EAAM0D,MAAM9H,OAAO2C,OAAOC,KAC/CjB,MAAOyC,EAAM0D,MAAM9H,OAAOoD,KAAKtC,QAlBrC,CAqBG,CACDwH,gBAAiB,cACjB3F,OAAQ,aAAayB,EAAM0D,MAAM9H,OAAO2C,OAAON,SAC/CV,MAAOyC,EAAM0D,MAAM9H,OAAOoD,KAAKtC,QAGnC,CACkB,gBAAhBsD,EAAMzC,OACN,OAAe,CACbyC,EAAMoJ,UACN,CACE,SAAU,CACRlF,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAASwJ,QAC7C9L,MAAO,QAET,UAAW,CACT2G,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAASyJ,QAC7C/L,MAAO,QAET,SAAU,CACR2G,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAASyJ,QAC7C/L,MAAO,UAbb,CAgBG,CACD2G,gBAAiB,cACjB3G,MAAOyC,EAAM0D,MAAM9H,OAAOoD,KAAKtC,QAGnC,CACkB,SAAhBsD,EAAMzC,OACN,OAAe,CACbyC,EAAMoJ,UACN,CACE,SAAU,CACRlF,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAAS8J,QAC7CpM,MAAO,QAET,UAAW,CACT2G,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAAS+J,QAC7CrM,MAAO,QAET,SAAU,CACR2G,gBAAiBlE,EAAM0D,MAAM9H,OAAOiE,SAAS+J,QAC7CrM,MAAO,UAbb,CAgBG,CACD2G,gBAAiB,cACjB3G,MAAOyC,EAAM0D,MAAM9H,OAAOiE,SAAS8J,WAtHlC,CAyHLb,EACJ,GAE0B,EAAAe,EAAA,GAAuBhB,EAAkB,MAAO,CAAC,UAAW,cAE3E7G,aAAe,CACxB+C,KAAM,GACNiE,SAAU,GACVQ,YAAa,EACbC,WAAY,EACZjE,QAAQ,EACR4D,WAAW,IAGmB,EAAAS,EAAA,GAAuBhB,EAAkB,IAAK,CAC5E,OACA,cAGe7G,aAAe,CAC9B+C,KAAM,GACNiE,SAAU,GACVQ,YAAa,EACbC,WAAY,EACZjE,QAAQ,EACR4D,WAAW,G,2NChJAU,EAA2C,SAAA9J,G,MAChD+J,EAAa,MAAU,GAEzB,cAA6B,YAAd/J,EAAMsI,IACrB,YAA2B,SAAdtI,EAAMsI,MAClB,SAAStI,EAAMnM,MAAuB,YAAdmM,EAAMsI,IAC/B,EAAItI,EAAMnM,KAAI,SAAwB,SAAdmM,EAAMsI,IAC9B,EAAC,QAAQtI,EAAM+E,QAAU,IAAAhL,OAAMiG,EAAM+E,MACrC,EAAC,gBAAgB/E,EAAMiI,aAA4BlW,IAAjBiO,EAAMiI,OACxC,gBAAiC,UAAnBjI,EAAMgK,SACpB,iBAAkC,WAAnBhK,EAAMgK,SACrB,iBAAehK,EAAMiK,OACrB,EAAAb,YAAY,IAAArP,OAAMiG,EAAMkK,S,IAE1B,QAAkBlK,EAAMzC,OACxB,GAAGyC,EAAMmK,cAGLrB,EAAuC,CAAC,EAC1C9I,EAAMoK,UACRtB,EAAOvL,MAAQ,IAAM5B,GAAG2B,eAAe0C,EAAMoK,UAE3CpK,EAAMwF,SACRsD,EAAOvF,QAAU,gBAGnB,IAAM8G,EAAY,CAChBzB,UAAWmB,EACXG,QAASlK,EAAMkK,QACfnI,MAAO,EAAF,KAAO+G,GAAY9I,EAAM8I,QAAU,CAAC,GACzCwB,MAAOtK,EAAMsK,QAGX,IAAAC,SAAQzB,WACHuB,EAAUtI,MAGf/B,EAAMwK,cACRH,EAAUtI,MAAQ,EAAH,KACVsI,EAAUtI,OAAK,CAClB0H,WAAY,OACZD,YAAa,UAIjB,IAAMiB,EAAe,4BAAUJ,IAE/B,OAAI,IAAAtQ,OAAMiG,EAAME,UACPuK,EAIP,gBAAC,IAAI,CAACC,MAAM,SAASC,QAAQ,cAC3B,gBAAC,IAAI,CAACC,MAAO5K,EAAM6K,OAAS,EAAI,GAC9B,gBAAC,KAAO,CAACtD,KAAMvH,EAAM6K,YAAS9Y,EAAY,IAAKuV,MAAOtH,EAAM8K,WAAQ/Y,EAAY,KAC7E0Y,IAIJzK,EAAME,SAGb,EAEA4J,EAAK9H,aAAe,CAClBsG,IAAK,OACLvD,KAAM,GACNlR,KAAM,WACNsW,aAAc,GACdH,SAAU,KACVC,QAAQ,EACRzE,QAAQ,E,0WC7FV,cACE,WAAYxF,GAAZ,MACE,YAAMA,IAAM,K,OAkBP,EAAA5L,MAAe,CACpB4K,KAAM,IA+CR,EAAA+L,SAAmB,EAhEjB,EAAK3W,MAAQ,CAAE4K,KAAMgB,EAAMhB,KAAOgB,EAAMhB,KAAO,IAE/C,EAAKgM,YAAc,EAAKA,YAAY1I,KAAK,GACzC,EAAK2I,SAAW,EAAKA,SAAS3I,KAAK,GACnC,EAAK4I,aAAe,EAAKA,aAAa5I,KAAK,G,CAC7C,CAqGF,OA9G4B,OAW1B,YAAA6I,0BAAA,SAA0BC,GACpBA,EAAUpM,OAASnB,KAAKmC,MAAMhB,MAChCnB,KAAK8E,SAAS,CAAE3D,KAAMoM,EAAUpM,OAE9BoM,EAAUC,QAAUxN,KAAKmC,MAAMqL,OAASD,EAAUC,QACpDxN,KAAKkN,SAAU,EAEnB,EAaA,YAAAC,YAAA,WACEnN,KAAK8E,UAAS,WACZ,MAAO,CAAE3D,KAAM,GACjB,IACAnB,KAAKyN,YAAYD,QACjBxN,KAAKmC,MAAMuL,QAAQ,IAEf1N,KAAKmC,MAAMwL,UACb3N,KAAKmC,MAAMwL,UAEf,EAEA,YAAAP,SAAA,SAAS9H,GACO,WAAVA,EAAEsI,IACJ5N,KAAKmN,cACc,UAAV7H,EAAEsI,KACP5N,KAAKmC,MAAMwL,UACb3N,KAAKmC,MAAMwL,UAGjB,EAEA,YAAAN,aAAA,SAAaQ,GACX,IAAM1M,EAAO0M,EAAMC,OAAOrZ,MAC1BuL,KAAK8E,SAAS,CAAE3D,KAAMA,IACtBnB,KAAKmC,MAAMuL,QAAQvM,EACrB,EAEA,YAAA+D,kBAAA,WACMlF,KAAKmC,MAAMqL,QACbxN,KAAKyN,YAAYD,QACbjR,SAASwR,eAAiB/N,KAAKyN,cACjCzN,KAAKkN,SAAU,GAGrB,EAIA,YAAA9H,mBAAA,WACMpF,KAAKkN,UACPlN,KAAKkN,SAAU,EACflN,KAAKyN,YAAYD,QAErB,EAEA,YAAAjI,OAAA,eACMyI,EADN,OAWE,OARIhO,KAAKzJ,MAAM4K,KAAKtN,OAAS,IAC3Bma,EACE,0BAAQjD,UAAU,4BAA4BsB,QAASrM,KAAKmN,aAC1D,gBAAC,KAAI,CAAC1C,IAAI,UAAUvD,KAAM,GAAIlR,KAAK,gBAMvC,uBAAK+U,UAAU,sBACb,uBAAKA,UAAU,6BAA6BiD,GAC5C,uBAAKjD,UAAU,4BACb,gBAAC,KAAI,CAAC7D,KAAM,GAAIlR,KAAK,SAASsW,aAAa,qBAE7C,yBACEvB,UAAU,4BACVkD,YAAY,YACZxZ,MAAOuL,KAAKzJ,MAAM4K,KAClB+M,IAAK,SAAAzR,GACH,EAAKgR,YAAchR,CACrB,EACA0R,SAAUnO,KAAKqN,aACfe,SAAU,EACVC,QAASrO,KAAKoN,SACdkB,OAAQtO,KAAKmC,MAAMwL,SACnB3X,KAAK,SAIb,EArFc,EAAAmO,aAAqC,CACjD8J,YAAa,YACbT,OAAO,GAoFX,C,CA9GA,CAA4B,Y,mRCQtBe,GAAY,QATM,SAACpM,GACvB,cAAS,EAAD,CACNuD,QAAS,UACN,QAAoB,CACrB/P,SAAU,WACV6Y,aAAiBrM,EAAM2D,MAAK,QAJhC,IAsBI2I,GAAU,QAZM,SAACtM,GAA+B,UACpDuD,QAAS,UACN,QAAoB,CACrB/P,SAAU,WACV8T,MAAO,IACPE,IAAK,IACL7D,MAAU3D,EAAM2D,MAAK,KACrB4I,YAAgBvM,EAAMwM,OAAM,KAC5BvE,OAAQ,SAR0C,IAczCwE,EAAgD,SAAAzM,GAAS,OACpE,gBAACoM,EAAS,KAAKpM,GACZA,EAAME,SACP,gBAACoM,EAAO,KAAKtM,GAAQA,EAAM0M,SAHuC,EAOtED,EAAczK,aAAe,CAC3BwK,OAAQ,G,iSCLJG,EAAqB,SAAC9Y,GA2B1B,OA1B+B,SAACmM,GAC9B,cACE,GAAE,IAAAuK,SAAQvK,EAAM4M,aAAcC,EAAqBhZ,EAAMmM,EAAM4M,YAAa,OAC5E,GACG,IAAArC,SAAQvK,EAAM8M,kBACfD,EAAqBhZ,EAAMmM,EAAM8M,iBAAkB,OAErD,GACG,IAAAvC,SAAQvK,EAAM+M,eACfF,EAAqBhZ,EAAMmM,EAAM+M,cAAe,OAElD,GACG,IAAAxC,SAAQvK,EAAMgN,cACfH,EAAqBhZ,EAAMmM,EAAMgN,aAAc,OAEjD,GACG,IAAAzC,SAAQvK,EAAMiN,sBACfJ,EAAqBhZ,EAAMmM,EAAMiN,qBAAsB,OAEzD,GACG,IAAA1C,SAAQvK,EAAMkN,mBACfL,EAAqBhZ,EAAMmM,EAAMkN,kBAAmB,OAEtD,CAAClN,EAAMwF,OAAQ,CAAEjC,QAAS,iBAtB5B,CAuBE4J,EAAsBtZ,EAAMmM,GAvB9B,CA0BJ,EAEMoN,EAAyBT,EAAmB,WAC5CU,EAAwBV,EAAmB,UAEjD,SAASE,EACPhZ,EACAyZ,EACAC,GAEA,OAAOA,EAAWJ,EAAsBtZ,EAAMyZ,GAChD,CAEA,SAASH,EACPtZ,EACAyZ,EACAvL,G,uBAAA,IAAAA,IAAAA,EAAA,IAEA,IAAMyL,EAAQF,EAAUE,OAAS,KAC3BC,GAAkB,OACtB,GACG,IAAA1T,OAAMuT,EAAUI,M,KAEf,EAAI7Z,EAAI,OAAQ,GAAGyZ,EAAUI,IAAMF,EACnC,EAAI3Z,EAAI,UAAW,GAAGyZ,EAAUI,IAAMF,EACtC,EAAI3Z,EAAI,QAAS,GAAGyZ,EAAUI,IAAMF,EACpC,EAAI3Z,EAAI,SAAU,GAAGyZ,EAAUI,IAAMF,E,IAGzC,GACG,IAAAzT,OAAMuT,EAAU9F,M,KAEf,EAAI3T,EAAI,OAAQ,GAAGyZ,EAAU9F,IAAMgG,E,IAGvC,GACG,IAAAzT,OAAMuT,EAAUvF,S,KAEf,EAAIlU,EAAI,UAAW,GAAGyZ,EAAUvF,OAASyF,E,IAG7C,GACG,IAAAzT,OAAMuT,EAAU/F,O,KAEf,EAAI1T,EAAI,QAAS,GAAGyZ,EAAU/F,KAAOiG,E,IAGzC,GACG,IAAAzT,OAAMuT,EAAUhG,Q,KAEf,EAAIzT,EAAI,SAAU,GAAGyZ,EAAUhG,MAAQkG,E,IAG3C,GACG,IAAAzT,OAAMuT,EAAUK,qB,KAEf,EAAC,iBAAqB,KACpB,EAAI9Z,EAAI,OAAQ,EAChB,EAAIA,EAAI,UAAW,EACnB,EAAIA,EAAI,QAAS,EACjB,EAAIA,EAAI,SAAU,E,OAzCF,CA6CtBkO,GAEF,OAAIuL,EAAUM,aACL,QAAgBH,GAGrBH,EAAUO,mBACL,QAAoBJ,GAGzBH,EAAUQ,YACL,QAAqBL,GAGvBA,CACT,CAEA,IAAMM,GAAmB,OAAuBX,EAAwB,MAAO,CAAC,eAC1EY,GAAkB,OAAuBX,EAAuB,MAAO,CAAC,eAIxEY,EAAyB,SAC7BC,EACAC,GAEA,IAAMC,EAAsE,SAAC,GAC3E,IAAAC,EAAe,kBACfnO,EAAQ,WACLF,E,yUAAK,GAHmE,gCAKrEsO,EAAiB,WAAeC,IAAIrO,GAAU,SAAAwB,GAClD,OAAI2M,EACK,gBAACH,EAAe,KAAKlO,GAAQ0B,GAG/BA,CACT,IAEA,OAAI2M,EACK,gCAAGC,GAGL,gBAACJ,EAAe,KAAKlO,GAAQE,EACtC,EAkBA,OAhBAkO,EAAqBpM,aAAe,CAClCwF,IAAK,KACLO,OAAQ,KACRR,KAAM,KACND,MAAO,KACPsF,YAAa,CAAC,EACdG,cAAe,CAAC,EAChBD,iBAAkB,CAAC,EACnBE,aAAc,CAAC,EACfC,qBAAsB,CAAC,EACvBC,kBAAmB,CAAC,EACpBmB,iBAAiB,EACjBb,MAAO,MAETY,EAAqBD,YAAcA,EAE5BC,CACT,EAEaI,EAAUP,EAAuBF,EAAkB,WACnDU,EAASR,EAAuBD,EAAiB,S,6GC/LnC,EAAAnE,EAAA,IALD,SAAC7J,GAA6B,OACtDwD,QAAS,YACTC,aAAc,aAAazD,EAAM0D,MAAM9H,OAAO2C,OAAON,SAFC,I,UC2B7B,EAAA4L,EAAA,IAtBD,SAAC7J,GACzB,IAAM8I,EAAS,CACbtF,QAAS,OACTkL,UAAW,aAAa1O,EAAM0D,MAAM9H,OAAO2C,OAAON,UAGpD,OAAO,OACL,CACE+B,EAAM2O,SACN,CACEpQ,OAAQ,SAGZ,CACEyB,EAAM4O,aACN,CACEpL,QAAS,SAVR,CAaLsF,EACJ,I,wiBCTA,2B,8CA4BA,QA5BoB,OAUlB,YAAA1F,OAAA,WACE,OACE,gBAAC,IAAS,KAAKvF,KAAKmC,OACjBnC,KAAKmC,MAAM6O,OACXhR,KAAKiR,cACN,gBAAC,KAAS,KAAKjR,KAAKmC,MAAM+O,WAAYlR,KAAKmC,MAAME,UAChDrC,KAAKmC,MAAMgP,OAGlB,EAEA,YAAAF,YAAA,sBACE,OAAIjR,KAAKmC,MAAMiP,UACN,gBAAC,IAAU,CAAC/E,QAAS,WAAM,SAAKlK,MAAM6L,MAAM,EAAK7L,MAAMpM,GAA5B,IAG7B,IACT,EA1BO,EAAAoO,aAA+B,CACpC2B,MAAO,IACPqL,OAAQ,KACRH,OAAQ,KACRI,WAAW,EACXC,sBAAsB,EACtBH,UAAW,CAAC,GAqBhB,C,CA5BA,CAAoB,Y,mGCRPI,EAA+C,SAAAnP,GAC1D,IAAMwI,EAAU,IACd,iBACA,CACE,wBAAyC,UAAhBxI,EAAMzC,MAC/B,uBAAwC,SAAhByC,EAAMzC,MAC9B,4BAA6ByC,EAAM2O,SACnC,0BAA6C,OAAlB3O,EAAMwD,QACjC,gCAAmD,OAAlBxD,EAAMwD,QACvC,oCAAuD,cAAlBxD,EAAMwD,SAE7CxD,EAAMmK,cAGR,OAAO,uBAAKvB,UAAWJ,GAAUxI,EAAME,SACzC,EAEAiP,EAAanN,aAAe,CAC1BzE,MAAO,OACPiG,QAAS,KACTmL,UAAU,GAGZ,WAsCwB,QANM,WAAc,OAC1CpL,QAAS,OACT6L,SAAU,SACVC,eAAgB,gBAH0B,KAYzB,QAJM,WAAc,OACrCpK,WAAY,OADyB,G,mcCmF1BqK,GAAQ,QA3ID,SAACtP,GACnB,IAAMuP,EAAe,CACnB/L,QAAS,OACTkE,aAAc,MACdnJ,OAAQ,aAAayB,EAAM0D,MAAM9H,OAAO2C,OAAON,UAGjD,OAAO,OACL,CACiB,SAAf+B,EAAMnM,K,GAEJqQ,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOc,KAAKiC,QAC5C6Q,YAAa,GAAGxP,EAAM0D,MAAM9H,OAAO2C,OAAON,WACvC,OAAe,GACd+B,EAAMkK,QACR,CACE9E,OAAQ,UACRlB,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAAS6J,QAChD,SAAU,CACRxF,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAAS4P,SAElD,UAAW,CACTvL,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASwJ,WATnD,CAYA,CAAC,KAGR,CACiB,WAAfrJ,EAAMnM,KACN,CACEqQ,gBAAiB,UACjBsL,YAAa,UACbE,gBAAiB,MACjBhI,aAAc,EACdlE,QAAS,cAGb,CACiB,SAAfxD,EAAMnM,KACN,CACEqQ,gBAAiB,UACjBsL,YAAa,YAGjB,CACiB,QAAfxP,EAAMnM,KACN,CACEqQ,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAAS8P,MAChDH,YAAa,GAAGxP,EAAM0D,MAAM9H,OAAOiE,SAAS+P,SAGhD,CACiB,SAAf5P,EAAMnM,KACN,CACEqQ,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOiE,SAASgQ,OAChDL,YAAa,GAAGxP,EAAM0D,MAAM9H,OAAOiE,SAASiQ,UAGhD,CACiB,mBAAf9P,EAAMnM,KACN,CACEqQ,gBAAiB,GAAGlE,EAAM0D,MAAM9H,OAAOqC,SAASuB,eAChDgQ,YAAa,GAAGxP,EAAM0D,MAAM9H,OAAOqC,SAASuB,iBAGhD,CACiB,YAAfQ,EAAMnM,MAAqC,aAAfmM,EAAMnM,KAClC,CACE2b,YAAaxP,EAAM0D,MAAM9H,OAAOY,MAAMmD,QACtCpC,MAAOyC,EAAM0D,MAAM9H,OAAOY,MAAMmD,UAGpC,CACiB,YAAfK,EAAMnM,KACN,CACEqQ,gBAAiB,YAGrB,CACiB,aAAflE,EAAMnM,KACN,CACEqQ,gBAAiB,0BAGrB,CACElE,EAAM+P,WACN,CACExR,OAAQ,SAGZ,CACEyB,EAAMgQ,eACN,CACEC,WAAY,MACZC,cAAe,MAGnB,GACIlQ,EAAMmQ,gBACR,CACEF,WAAejQ,EAAMmQ,gBAAe,KACpCD,cAAkBlQ,EAAMmQ,gBAAe,OAG3C,GACInQ,EAAMoQ,kBACR,CACE7D,YAAgBvM,EAAMoQ,kBAAiB,KACvC/D,aAAiBrM,EAAMoQ,kBAAiB,OAG5C,CACEpQ,EAAMqQ,OACN,CACEC,UAAW,2DAGf,CACEtQ,EAAMuQ,QACN,CACEC,UAAW,SAGf,EACGxQ,EAAMyQ,QACP,CACE/I,aAAc,MAGlB,CACE1H,EAAMxC,YACN,CACE0G,gBAAiB,gBA9HhB,CAiILqL,EACJ,GAEyD,MAAO,CAAC,YAEjED,EAAMtN,aAAe,CACnBnO,KAAM,KACNmc,gBAAgB,EAChBG,gBAAiB,KACjBC,kBAAmB,KACnBL,YAAY,EACZM,QAAQ,EACRE,SAAS,EACTE,SAAS,EACTjT,aAAa,GAGf,S,8JC5CYkT,E,uPAjHNC,EAAoB,SAACpT,GACzB,OAAO,IAAW,CAChB,aAAwB,UAAVA,EACd,aAAwB,UAAVA,EACd,YAAuB,SAAVA,EACb,aAAwB,UAAVA,EACd,YAAuB,SAAVA,EACb,YAAuB,SAAVA,EACb,WAAsB,QAAVA,EACZ,aAAwB,UAAVA,EACd,cAAyB,WAAVA,EACf,cAAyB,WAAVA,GAEnB,EAeMqT,EAAwB,SAAChL,GAC7B,OAAO,IAAW,CAChB,YAA2B,SAAdA,EACb,cAA6B,WAAdA,EACf,aAA4B,UAAdA,GAElB,EAsCMiL,EAA2C,SAAA7Q,GAC/C,IAzB0B8Q,EAVA9L,EArBFD,EAwDlBgF,EAAa,IACjB,CACE,iBAAmC,OAAjB/J,EAAMiI,OACxB,iBAAmC,OAAjBjI,EAAMiI,OACxB,iBAAmC,OAAjBjI,EAAMiI,OACxB,iBAAmC,OAAjBjI,EAAMiI,OACxB,iBAAkBjI,EAAM+Q,UACxB,kBAAmB/Q,EAAMgR,KACzB,gBAAiBhR,EAAMiR,SACvB,aAAcjR,EAAMkR,MACpB,YAAalR,EAAMmR,KACnB,2BAA4BnR,EAAMoR,aAEpCR,EAAsB5Q,EAAM4F,YArENb,EAsEL/E,EAAM+E,KArElB,IAAW,CAChB,iBAA2B,SAATA,EAClB,kBAA4B,UAATA,EACnB,mBAA6B,WAATA,EACpB,kBAA4B,UAATA,KAkEnB4L,EAAkB3Q,EAAMzC,QAlDAyH,EAmDLhF,EAAMgF,OAlDpB,IAAW,CAChB,qBAAiC,WAAXA,EACtB,wBAAoC,cAAXA,EACzB,mBAA+B,SAAXA,MAMI8L,EA0CL9Q,EAAM8Q,OAzCpB,IAAW,CAChB,oBAAgC,UAAXA,EACrB,qBAAiC,WAAXA,EACtB,2BAAuC,iBAAXA,MAyCxBO,EAAmC,CAAC,EAM1C,OAJK,IAAAtX,OAAMiG,EAAMsK,SACf+G,EAAa/G,MAAQtK,EAAMsK,OAI3B,uBAAG1B,UAAWmB,GAAgBsH,GAC3BrR,EAAME,SAGb,EAEA2Q,EAAK7O,aAAe,CAClBgP,MAAM,EACND,WAAW,EACXE,UAAU,EACVC,OAAO,GAGT,SAAYR,GACV,wBACA,uBACA,uBACA,yBACA,wBACA,uBACD,CAPD,CAAYA,IAAAA,EAAe,KAc3B,IAAMY,EAAuD,SAAAtR,GAC3D,IAAM+J,EAAa,IACjB,aACA,CACE,aAAc/J,EAAMkR,OAEtBN,EAAsB5Q,EAAM4F,YAG9B,OAAO,uBAAKgD,UAAWmB,GAAa/J,EAAME,SAC5C,EAEA,S,iRC5IMqR,EAAW,SAAC/D,GAChB,OAAOA,GAAgB,IACzB,EA0BagE,GAAQ,QAxBD,SAACxR,GACnB,cACE,GACG,IAAAjG,OAAMiG,EAAMyR,oB,MAER,QAAoB,CACrB9N,MAAO,GAAG3D,EAAMyR,mBAAqBF,EAASvR,EAAMwN,WAI1D,CAACxN,EAAMiK,OAAQ,CAAEyH,OAAQ,WACzB,CACE1R,EAAMwF,OACN,CACEjC,QAAS,eACTgG,cAAe,QAdrB,CAiBE,CACAhG,QAAS,QACTI,MAAO,GAAG3D,EAAM2D,MAAQ4N,EAASvR,EAAMwN,OACvC5F,SAAU,GAAG5H,EAAM2D,MAAQ4N,EAASvR,EAAMwN,QApB5C,KAuEsB,QArCD,SAACxN,GACtB,cACE,CACEA,EAAMiK,OACN,CACEyH,OAAQ,WAGZ,GACG,IAAA3X,OAAMiG,EAAM2D,OACb,CACEA,MAAO,OACPiE,SAAU,GAAG5H,EAAM2D,MAAQ4N,EAASvR,EAAMwN,SAG9C,GACG,IAAAzT,OAAMiG,EAAM2R,qB,MAER,QAAqB,CACtBhO,MAAO,OACPiE,SAAU,GAAG5H,EAAM2R,oBAAsBJ,EAASvR,EAAMwN,WAI9D,GACG,IAAAzT,OAAMiG,EAAMyR,oB,MAER,QAAoB,CACrB9N,MAAO,OACPiE,SAAU,GAAG5H,EAAMyR,mBAAqBF,EAASvR,EAAMwN,WA5B/D,CAgCE,CACAjK,QAASvD,EAAMwF,OAAS,eAAiB,SAjC3C,GAoCqE,OAE9DxD,aAAe,CACtBwL,MAAO,KACPvD,QAAQ,E,gCC5FV,IAUa2H,EAAS,CACpBC,eAXqB,6CAYrBC,eAXqB,6CAYrBC,gBALsB,kBAMtBC,eAZqB,6CAarBC,aAZmB,sDAanBC,iBAZuB,6CAavBC,SAZe,+C,4YCHXC,EAAgB,KAChBC,EAAe,KACfC,EAAc,KACPC,EAAe,IAGfC,EAAc,CACzBC,YAHkB,EAIlBF,aAAY,EACZD,YAAW,EACXD,aAAY,EACZD,cAAa,GAGFM,EAAoB,SAAC5J,GAAmB,OAAA6J,EAAe7J,EAAQsJ,EAAvB,EAMxCQ,EAAmB,SAAC9J,GAC/B,OAAA6J,EAAe7J,EAAQuJ,EAAcD,EAArC,EAKWS,EAAsB,SAAC/J,GAAmB,OAAA6J,EAAe7J,EAAQwJ,EAAvB,EAI1CQ,EAAsB,SAAChK,GAClC,OAAA6J,EAAe7J,OAAQ/W,EAAWugB,EAAlC,EAEWS,EAAuB,SAACjK,GAAmB,OAAA6J,EAAe7J,EAAQyJ,EAAvB,EAE3CS,EAAmB,SAAClK,GAC/B,OAAA6J,EAAe7J,EAAQyJ,EAAcD,EAArC,EAMWW,EAAkB,SAACnK,GAC9B,OAAA6J,EAAe7J,EAvCG,EAuCkByJ,EAApC,EAEWW,EAAyB,SAACC,GACrC,OAAAC,OAAOC,WAAW,+BAA+BF,EAAU,MAA3D,EAEWG,EAAyB,SAACH,GACrC,OAAAC,OAAOC,WAAW,gCAA+BF,EAAa,GAAC,MAA/D,EAEWI,EAAkB,SAACJ,EAAoBK,GAClD,OAAAJ,OAAOC,WACL,+BAA+BF,EAAU,wBAAuBK,EAAiB,GAAC,MADpF,EAIWC,EAAsB,WAAM,OAAAF,EApDrB,EAoDkDhB,EAA7B,EAC5BmB,EAA0B,WAAM,OAAAR,EArDzB,EAqDyB,EAEhCS,EAAuB,WAAM,OAAAJ,EAAgBhB,EAAcD,EAA9B,EAC7BsB,EAA2B,WAAM,OAAAV,EAAuBX,EAAvB,EACjCsB,EAA2B,WAAM,OAAAP,EAAuBhB,EAAvB,EAEjCwB,EAAsB,WAAM,OAAAP,EAAgBjB,EAAaD,EAA7B,EAC5B0B,EAA0B,WAAM,OAAAb,EAAuBZ,EAAvB,EAChC0B,EAA0B,WAAM,OAAAV,EAAuBjB,EAAvB,EAEtC,SAASM,EACd7J,EACAmL,EACArM,G,UAGA,QAJA,IAAAqM,IAAAA,OAAA,QACA,IAAArM,IAAAA,OAAA,GAGIqM,GAAY,IAAK,IAAAla,OAAM6N,GACzB,OAAO,EAAP,IACG,sCAAsCqM,EAAQ,OAAK,KAC/CnL,G,EAKJ,IAAI,IAAA/O,OAAMka,IAAarM,GAAY,EACtC,OAAO,EAAP,IACG,uCAAsCA,EAAW,GAAC,OAAK,KACnDkB,G,EAKJ,GAAImL,GAAY,GAAKrM,GAAY,EACpC,OAAO,EAAP,IACG,sCAAsCqM,EAAQ,wBAAuBrM,EAAW,GAAC,OAAK,KAClFkB,G,EAIP,MAAM,IAAIoL,MAAM,mDAEpB,C,8TC3FaC,GAAoB,EAAAtK,EAAA,IAND,WAAc,OAC5CrC,IAAK,IACLD,KAAM,IACNU,OAAQ,OACRtE,MAAO,OAJqC,IA0CjCyQ,GAAgB,EAAAxN,EAAA,IAlCD,WAAc,gBACxC1C,gBAAiB,IAAMtI,OAAOqC,SAASR,MACvCwW,SAAU,QACVtQ,MAAO,QAEJ,QACD,CACEJ,QAAS,QACT0Q,SAAU,IACVtQ,MAAO,QAET6O,EAAA,GAAYC,YACZ,QAGC,QACD,CACEjP,QAAS,oBAEX,QAGC,QACD,CACEA,QAAS,QAEXgP,EAAA,GAAYD,aACZ,QAGC,QAAgB,CACjB/O,QAAS,qBA/B6B,IAwC7B6Q,GAAuB,EAAAzN,EAAA,IAJD,WAAc,OAC/CgB,SAAU,QACV8J,OAAQ,SAFuC,IAmBpC4C,GAAa,EAAA1N,EAAA,IAbD,W,MAAc,UACrCtB,WAAY,IACZ/H,MAAO,IAAM5B,GAAGC,OAAOM,KAAKC,WAC3B,UAAkB,CACjBoB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,QAE9B,EAAC,WAAmB,CAClBkB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,QAE9B,EAAC,UAAkB,CACjBkB,MAAO,IAAM5B,GAAGC,OAAOM,KAAKG,Q,CAVO,GAa8B,KAKxDkY,GAAoB,EAAA3N,EAAA,IAHD,WAAc,OAC5Cf,UAAW,SADiC,IAQjC2O,GAAY,EAAA5N,EAAA,IAHD,WAAc,OACpCjD,MAAO,QAD6B,GAG6B,OAkBtD8Q,GAAe,EAAA7N,EAAA,IAhBD,WAAc,YACvC8N,UAAW,OACXC,aAAc,SAEX,QACD,CACED,UAAW,QAEblC,EAAA,GAAYD,aACZ,QAGC,QAAgB,CACjBhP,QAAS,SAb4B,GAgBgC,OAS5DqR,GAAsB,EAAAhO,EAAA,IAPD,WAAc,UAC9CpT,SAAU,aAEP,QAAgB,CACjBkhB,UAAW,SAJiC,IAiBnCG,GAAiB,EAAAjO,EAAA,IARD,WAAc,OACzCkO,WAAY,SACZvR,QAAS,OACT0E,OAAQ,OACRzU,SAAU,WACVgU,IAAK,EACLF,MAAO,EANkC,IA+B9ByN,GAAiB,EAAAlL,EAAA,IAhBD,SAAC7J,GAAuC,UACnEuD,QAAS,OACTuR,WAAY,SACZzF,eAAgB,SAChB1L,MAAO,OACPO,gBAAiBlE,EAAMgV,UAAY,UAAY,QAC/C/T,WAAY,kCAET,QACD,CACEsC,QAAS,QAEXiP,EAAA,GAAYC,YACZ,MAbiE,IAyBxDwC,GAAwB,EAAApL,EAAA,IAPD,WAAc,OAChDtG,QAAS,OACT2R,cAAe,SACfxD,OAAQ,SACR9J,SAAU,QACVjE,MAAO,OALyC,IAiBrCwR,GAAoB,EAAAvO,EAAA,IARD,WAAc,OAC5CrD,QAAS,QACTqE,SAAU,QACVwN,UAAW,QACXnN,OAAQ,OACRtE,MAAO,OACP+N,OAAQ,SANoC,GAQqC,OAStE2D,GAA+B,EAAAzO,EAAA,IAPD,WAAc,OACvDrD,QAAS,QACTqE,SAAU,QACVwN,UAAW,QACXzR,MAAO,OACP+N,OAAQ,SAL+C,IAuB5C4D,GAAkB,EAAAzL,EAAA,IARD,SAAC7J,GAAwC,OACrEzC,MAAOyC,EAAMgV,UAAY,IAAMrZ,GAAG2B,eAAe,SAAW,IAAM3B,GAAG2B,eAAe,eACpFiI,SAAU,SACVN,WAAY,SACZ2C,SAAU,QACV6B,WAAY,OACZD,YAAa,OANwD,GAQD,K,OC3KzD+L,GAAqB,EAAA1L,EAAA,IAND,WAAc,OAE3CtG,QAAS,OAFkC,I,OCmDlCiS,GAAY,EAAA3L,EAAA,IA7CD,SAAC7J,GACvB,cACE,CACEA,EAAMyV,SACN,CACEnF,UAAW,gBAAgB,IAAM3U,GAAG2B,eAAe,WACnDgI,WAAY,MAGhB,CACEtF,EAAM0V,SACN,CACEnY,MAAO,IAAM5B,GAAG2B,eAAe,WAC/B4G,gBAAiB,IAAMvI,GAAG2B,eAAe,SACzC8H,OAAQ,UACRkL,UAAW,SAGf,CACEtQ,EAAMyV,UAAYzV,EAAM0V,SACxB,CACE,SAAU,CACRxR,gBAAiB,IAAMvI,GAAG2B,eAAe,UAE3C,UAAW,CACT4G,gBAAiB,IAAMvI,GAAG2B,eAAe,YAxBjD,CA4BE,CACAC,MAAO,IAAM5B,GAAG2B,eAAe,WAC/BkG,QAAS,SACTyE,OAAQ,OACRhD,WAAY,OACZY,UAAW,SACXT,OAAQ,UACRW,WAAY,SACZ,SAAU,CACR7B,gBAAiB,IAAMvI,GAAG2B,eAAe,WAE3C,UAAW,CACT4G,gBAAiB,IAAMvI,GAAG2B,eAAe,aAxC7C,GA4CwD,MAAO,CAAC,Y,gNC7CrDqY,GAAyB,EAAA9L,EAAA,IALD,WAAc,OACjDtG,QAAS,QACTE,aAAc,aAAa,IAAM9H,GAAG2B,eAAe,eAFF,IAwBtCsY,GAA4B,EAAA/L,EAAA,IAXD,SAAC7J,GAAyB,OAAC,GACjEwD,QAASxD,EAAM6V,UAAY,GAAK,SAChCvF,UAAW,oBAAoB,IAAM3U,GAAG2B,eAAe,eACvDiG,QAASvD,EAAMoR,YAAc,eAAiB,KAE3C,QAAgB,CACjB7E,YAAavM,EAAM8V,kBAAoB,GAAK,OAC5CzJ,aAAcrM,EAAM8V,kBAAoB,GAAK,SAPiB,I,gBCVrDC,GAAkB,EAAAlM,EAAA,IAND,WAAc,OAC1C2G,UAAW,OACXwF,UAAW,SACXC,eAAgB,SAH0B,GAM0B,MAAO,CAAC,a,gNCajEC,GAAmB,EAAAtP,EAAA,IAXD,SAAC5G,GAC9B,cAAe,CACbA,EAAMmW,W,GAEJ5S,QAAS,SACN,QAAiB,CAClBA,QAASvD,EAAMoW,eAAiB,QAAU,WALhD,CAQG,CAAC,EARJ,ICEWC,EAAmD,SAAC,G,IAC/DnW,EAAQ,WACRoW,EAAU,aACVH,EAAU,aACVI,EAAW,cACXC,EAAW,cAELC,GAAsC,IAAAC,QAAO,CACjDC,QAAS,CACPC,WAAY,EACZC,YAAa,KACbC,YAAa,QAGX,GAAwC,IAAAnW,UAAS,EAAC,GAAO,IAAxDoW,EAAe,KAAEC,EAAkB,KACpC,GAAsC,IAAArW,WAAS,GAA9CyV,EAAc,KAAEa,EAAiB,MAUxC,IAAAC,YAAU,WARU,IACVP,EACFQ,EACAC,EADAD,GADER,EAAYF,EAAY,SACKI,YAC/BO,EAAuBT,EAAQG,YAErCG,EAAkBE,EAAuBC,EAK3C,GAAG,IAEH,IAQMC,EAAmB,SAACC,QAAA,IAAAA,IAAAA,GAAA,GAChB,IAAAX,EAAYF,EAAY,QAC1Bc,EAAcZ,EAAQC,WACtBO,EAAuBR,EAAQE,YAC/BO,EAAuBT,EAAQG,YAErC,QAAKQ,KAAU,IAAAvd,OAAMwd,MAAgB,IAAAxd,OAAMod,KAKxCG,GAAUC,GAAeJ,EAAuBC,IAC/CE,GAAUC,GAAe,CAE/B,EAEMC,EAAwB,WAC5BR,EAAmB,CAACK,IAAoBA,GAAiB,IAC3D,EAEMI,EAAe,SAACH,QAAA,IAAAA,IAAAA,GAAA,GACb,IAAAI,EAA8BX,EAAe,GAA/BY,EAAgBZ,EAAe,GAEpD,OACE,gBAAC,KAAU,CACT1O,KAAMiP,EAAS,gBAAkB,eACjC5B,SAAU2B,EAAiBC,IAAYA,GAAUK,IAAmBL,GAAUI,EAC9ExN,SAAS,IAAA0N,cAAY,WACnB,IAnCAC,EAEAC,EAiCMC,GAnCNF,EAmCiDP,EAnCzB,GAAK,EAE7BQ,EADarB,EAAaE,QAAQC,WACVN,EAAauB,EAEpCG,KAAKC,MAAMD,KAAKE,IAAI,EAAGJ,KAgCxBrB,EAAaE,QAAQC,WAAamB,EAClCP,IAEIF,KAAW,IAAAvd,OAAMwc,IACnBA,EAAYwB,GAGTT,IAAW,IAAAvd,OAAMyc,IACpBA,EAAYuB,EAEhB,GAAG,KAGT,EAEA,OACE,gBAAC,IAAI,KACH,gBAAC7B,EAAgB,CACfC,WAAYA,EACZC,eAAgBA,EAAc,eAChBA,GAEbqB,KAEH,gBAAC1B,EAAe,CACdoC,SAAUX,EACVY,SAAW3B,GAEVvW,GAEH,gBAACgW,EAAgB,CACfC,WAAYA,EACZC,eAAgBA,EAAc,eAChBA,GAEbqB,GAAa,IAItB,EC1GaY,EAAuD,SAAC,G,IACnEnY,EAAQ,WACRoW,EAAU,aACVT,EAAS,YACTC,EAAiB,oBACjB1E,EAAW,cACXkH,EAAW,cACP,OACJ,gBAAC1C,EAAyB,CACxBC,UAAWA,EACXC,kBAAmBA,EACnB1E,YAAaA,GAEZkH,EACC,gBAAC3C,EAAsB,KAAEzV,GAEzB,gBAACmW,EAAgB,CAACC,WAAYA,EAAYH,YAAU,GAClD,gBAACR,EAAsB,KAAEzV,IAV3B,EAgBNmY,EAAqBrW,aAAe,CAClCsU,WAAY,KClCd,I,ECJYiC,EDMCC,GAAU,EAAA3O,EAAA,IAFD,WAAc,OAAG,CAAH,IEQvB4O,EAAsC,SAAC,G,IAAEvY,EAAQ,WAC5D,OAAO,2BAAMA,EACf,E,SCCMwY,EAAuC,SAAC,G,IAC5CxY,EAAQ,WACRyY,EAAkB,qBAClB9C,EAAS,YACTC,EAAiB,oBACjB1E,EAAW,cACXkH,EAAW,cAQLM,EANmB,WAAeC,QAAQ3Y,GAAU/J,QAAO,SAAAuL,GAAS,wBAAqBA,EAArB,IAM9B6M,KAAI,SAAC7M,GAC/C,WAAAoX,MAAKpX,EAAM1B,MAAO,CAAC,KAAM,QAAS,WAAY,WAAY,UAAW,WAArE,IAOI+Y,EC4CD,SAAoCJ,EAA4BC,GACrE,IAAI,IAAArO,SAAQqO,GACV,OAAO,EAGT,IAAI,IAAA7e,OAAM4e,GACR,OAAO,EAGT,IAAMK,GAAY,IAAAtjB,MAAKkjB,GAAS,SAAA/lB,GAAK,OAAAA,EAAEe,KAAO+kB,CAAT,IAErC,IAAI,IAAA5e,OAAMif,GACR,MAAM,IAAI9E,MAAM,mBAAmByE,GAGrC,OAAOK,EAAUtD,QACnB,CD5DuBuD,CAA2BN,EAAoBC,IAChE,IAAAljB,MAAKkjB,GAAS,SAAA/lB,GAAK,OAACA,EAAE6iB,QAAH,IAAa9hB,GAChC+kB,EASE,GAAgC,IAAAhY,UAASoY,GAAxCG,EAAW,KAAEC,EAAc,KAC5BC,EChCD,SACLR,EACAM,EACAC,GAEA,GAAuB,IAAnBP,EAAQlnB,OACV,MAAM,IAAIwiB,MAAM,iBAGlB,OAAO0E,EAAQrK,KAAI,SAAA8K,GACjB,OAAAA,EAAIC,SAAWD,EAAI3D,SACjB,gBAAC,IAAO,CACNjK,IAAK4N,EAAIzlB,GACTuU,MACE,gCACGkR,EAAIC,QAAQnR,MACb,4BAGJjM,KAAMmd,EAAIC,QAAQpd,KAClBqd,SAAUF,EAAIC,QAAQC,SACtBC,cAAeH,EAAIC,QAAQE,eAE3B,gBAAChE,EAAS,CACR/J,IAAK4N,EAAIzlB,GACT6hB,SAAUyD,IAAgBG,EAAIzlB,GAC9BsW,QAAS,WACHmP,EAAI3D,WAGRyD,EAAeE,EAAIzlB,MACD,IAAAmG,OAAMsf,EAAInP,UAAYmP,EAAInP,UAC9C,EACAwL,SAAU2D,EAAI3D,UAEb2D,EAAI/O,QAIT,gBAACkL,EAAS,CACR/J,IAAK4N,EAAIzlB,GACT6hB,SAAUyD,IAAgBG,EAAIzlB,GAC9BsW,QAAS,WACHmP,EAAI3D,WAGRyD,EAAeE,EAAIzlB,MACD,IAAAmG,OAAMsf,EAAInP,UAAYmP,EAAInP,UAC9C,EACAwL,SAAU2D,EAAI3D,UAEb2D,EAAI/O,MAzCT,GA6CJ,CDvBqBmP,CAAcb,EAASM,EAAaC,GAGjDO,GADgB,IAAAhkB,MAAKkjB,GAAS,SAAA/lB,GAAK,OAAAA,EAAEe,KAAOslB,CAAT,IACLhZ,SACpC,OACE,gCACE,gBAACmY,EAAoB,CACnBxC,UAAWA,EACXC,kBAAmBA,EACnBwC,YAAaA,EACblH,YAAaA,GAEb,gBAACmE,EAAkB,KAAE6D,IAEvB,gBAACZ,EAAO,KAAEkB,GAGhB,E,sOE1CaC,GAAoB,EAAA9P,EAAA,IAbD,SAAC7J,GAAyB,OAAC,KACzDzC,MAAO,IAAM5B,GAAGC,OAAOE,SAAS4K,YAChCnD,QAAS,SACTsC,UAAW,SACX2B,IAAK,EACLF,MAAO,IACJ,QAAqB,CACtB/D,QAASvD,EAAM4Z,SAAW,OAAS,aAElC,QAAgB,CACjBrW,QAASvD,EAAM4Z,SAAW,SAAW,SAViB,ICD7CC,EAAmD,SAAC7Z,GAC/D,OACE,gBAAC2Z,EAAiB,CAACC,SAAU5Z,EAAM4Z,U,yBAEjC,gBAACtF,EAAU,CAACwF,KAAK,WAAS,gBAGhC,E,gDCDaC,GAAsC,WAC3C,OAA2C,IAAApZ,WAAS,GAAnDqZ,EAAgB,KAAEC,EAAoB,KACvC,GAA+C,IAAAtZ,WAAS,GAAvDuZ,EAAiB,KAAEC,EAAuB,KAE3CC,GAAmB,SAAoB,CAAC,GACxCC,GAAa,SAAoB,cACjCC,GAAY,SAAoB,aAEhC,GAAgC,IAAA3Z,WAAS,GAAxC4Z,EAAY,KAAEC,EAAa,KAGlC,OACE,wBAAMC,OAAO,OAAO9nB,OAAO,UAAS,kBAAiB,SACnD,yBAAOkB,KAAK,SAASvB,MAAO8nB,EAAkBlnB,KAAK,+BACnD,yBAAOW,KAAK,SAASvB,MAAO+nB,EAAYnnB,KAAK,eAC7C,yBAAOW,KAAK,SAASvB,MAAOgoB,EAAWpnB,KAAK,cAC5C,gBAAC,IAAI,CAACwnB,UAAU,UACd,gBAAC,KAAM,CAAClT,IAAK,GAAIO,OAAQ,IACvB,gBAAC,MAAK,CACJlU,KAAK,QACLR,MAAOknB,EAAe,KAAO,qCAC7BpS,MAAM,gBACNjV,KAAK,eACLiZ,OAAQ,SAAAhJ,GAAK,OAdHwX,EAccxX,EAAEwI,OAAOrZ,MAdLkoB,GAAc,QAAaG,IAA9C,IAACA,CAcG,EACb1O,SAAU,KAGd,gBAAC,KAAM,CAAClE,OAAQ,IACd,gBAAC,MAAK,CACJlU,KAAMmmB,EAAmB,OAAS,WAClC7R,MAAM,WACNjV,KAAK,WACL0nB,UACE,gBAAC,KAAI,CACHtS,IAAI,OACJzU,KAAK,MACLuW,QAAS,cACTF,QAAS,WAAM,OAAA+P,GAAsBD,EAAtB,IAGnB/N,SAAU,KAGd,gBAAC,KAAM,CAAClE,OAAQ,GAAIR,KAAM,OACxB,gBAAC,MAAQ,CACPsT,QAASX,EACTlO,SAAU,WAAM,OAAAmO,GAAyBD,EAAzB,EAChBhnB,KAAK,aACL4nB,SAAO,mBAKX,gBAAC,KAAc,CAAClnB,GAAG,6BAA6BC,KAAK,SAASoY,SAAU,GAAC,WAGzE,gBAAC,KAAM,CAACzE,IAAK,GAAIO,OAAQ,IACvB,gBAACwM,EAAiB,KAChB,gBAACD,EAAU,CAAC1gB,GAAG,2BAA2BkmB,KAAK,mBAAmB7N,SAAU,GAAC,4BAQzF,E,ygBCzDa8O,GAAwC,CAAC,EA6ChDC,IAAgB,EAAAnR,EAAA,IA3CE,SAAC7J,GACvB,cACE,CACEA,EAAMib,eACN,CACEhL,WAAY,OACZC,cAAe,OACfgL,UAAW,OACX5V,WAAY,IACZmC,OAAQ,KAGZ,EACGzH,EAAMib,eACP,CACEhL,WAAY,OACZC,cAAe,OACfgL,UAAW,OACXxT,aAAc,MACdpC,WAAY,MAlBlB,CAqBE,IAEA9R,SAAU,WACV+P,QAAS,QACTgJ,YAAa,OACbF,aAAc,OAEdnI,gBAAiBlE,EAAM0D,MAAM/H,GAAG2B,eAAe0C,EAAMkE,iBACrD3G,MAAOyC,EAAM0D,MAAM/H,GAAG2B,eAAe0C,EAAM8D,WAC3C+B,UAAW7F,EAAMmb,YAAc,SAAW,OAC1C5c,OAAQyB,EAAMwP,YACV,aAAaxP,EAAM0D,MAAM/H,GAAG2B,eAAe0C,EAAMwP,aACjD,KAEJjK,SAAU,OACVN,WAAY,SACT,QAAgB,CACjB1B,QAAS,UAtCb,GA0CqE,MAAO,CAAC,OAgBzE6X,IAA4B,EAAAvR,EAAA,IAXP,SAAC,G,IAAEwR,EAAiB,oBAC7C,cAAe,CACbA,E,IAEE7R,YAAa,SACV,QAAgB,CACjBA,YAAa,WALnB,CAQG,CAAC,EARJ,IAYF,4B,8CA0BA,QA1B+B,QAC7B,YAAApG,OAAA,WACE,IAAM,EAAoCvF,KAAKmC,MAAvCE,EAAQ,WAAEob,EAAS,YAAKtb,E,yUAAK,GAA/B,0BACAqb,IAAqB,IAAAthB,OAAMuhB,GACjC,OACE,gBAACN,GAAa,MAAKhb,GACjB,gBAACob,GAAyB,CAACC,kBAAmBA,GAC3Cnb,GAEFmb,GACC,gBAAC,KAAI,CACHnR,QAASoR,EACThT,IAAK,UACLzU,KAAM,QACNuW,QAASpK,EAAMwP,YACfhK,QAAM,EACNsD,OAAQ,CACNtV,SAAU,WACV8T,MAAO,OACPE,IAAK,UAMjB,EACF,EA1BA,CAA+B,EAAA+T,W,i3BCvE/B,yB,8CAcA,CAdmC,QASjC,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cAEN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,QACXI,gBAAiB,WACjBiX,aAAa,EACbF,gBAAgB,G,CANpB,CAAmC,EAAAM,WAkBnC,yB,8CAcA,CAduC,QAUrC,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,QACXI,gBAAiB,WACjBsL,iBAAazd,EACbopB,aAAa,EACbF,gBAAgB,G,CAPpB,CAAuC,EAAAM,WAkBvC,yB,8CAcA,CAdmC,QAUjC,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,UACXI,gBAAiB,WACjBsL,iBAAazd,EACbopB,aAAa,EACbF,gBAAgB,G,CAPpB,CAAmC,EAAAM,WAkBnC,yB,8CAcA,CAdkC,QAUhC,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,QACXI,gBAAiB,SACjBsL,iBAAazd,EACbopB,aAAa,EACbF,gBAAgB,G,CAPpB,CAAkC,EAAAM,W,22BCtDlC,4B,8CAcA,QAdoC,QAUlC,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,UACXI,gBAAiB,UACjBsL,YAAa,WACb2L,aAAa,EACbF,gBAAgB,IAOpB,C,CAdA,CAAoC,EAAAM,YAkBpC,yB,8CAcA,CAdgC,QAU9B,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,UACXI,gBAAiB,UACjBsL,YAAa,WACb2L,aAAa,EACbF,gBAAgB,G,EAPpB,CAAgC,EAAAM,WAkBhC,yB,8CAcA,CAd+B,QAU7B,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,UACXI,gBAAiB,QACjBsL,YAAa,SACb2L,aAAa,EACbF,gBAAgB,G,CAPpB,CAA+B,EAAAM,WAkB/B,yB,8CAcA,CAdgC,QAU9B,YAAAnY,OAAA,WACE,IAAM,EAAyBvF,KAAKmC,MAA5BE,EAAQ,WAAKF,EAAK,KAApB,cACN,OAAO,gBAACwb,GAAS,MAAKxb,GAAQE,EAChC,EAZO,EAAA8B,aAAY,SACd+Y,IAAgB,CACnBjX,UAAW,UACXI,gBAAiB,UACjBsL,YAAa,WACb2L,aAAa,EACbF,gBAAgB,G,CAPpB,CAAgC,EAAAM,WTvEhC,SAAYhD,GACV,kBACA,0BACA,oBACA,qBACD,CALD,CAAYA,IAAAA,EAAgB,K,uNUyCfkD,IAAmB,EAAA5R,EAAA,IA/BD,SAAC7J,G,MAAyC,OAAC,QACxEkE,gBAAiBlE,EAAMkE,gBACvB3F,OAAQ,OACRmJ,aAAc,MACdnK,MAAO,QACP6H,OAAQ,UACRG,SAAU,OACVD,WAAY,IACZqP,aAAc,OACdnR,QAAS,OACThQ,SAAU,WACVqS,UAAW,SACX5E,WAAY,gCACZ0C,MAAO,QAEN,UAAkB,CACjBpG,MAAO,QACPmD,QAAS,IACV,EACA,WAAmB,CAClBnD,MAAO,QACPmD,QAAS,IACV,EACA,UAAkB,CACjBnD,MAAO,SACR,IACE,QAAgB,CACjBoX,aAAc,OACdnR,QAAS,SA5B4D,GA+BD,IAAK,CAAC,SC1BjEkY,GAA+C,SAAC1b,GAC3D,IAUyB2b,EAInBC,EAdiB,SAACC,GACtB,OAAQA,GACN,KAAKtD,EAAiBuD,OACpB,OAAO,IAAMlgB,OAAOkE,OAAOic,OAE7B,KAAKxD,EAAiByD,WACpB,OAAO,IAAMpgB,OAAOkE,OAAOmc,OAEjC,CAMoBC,CAAelc,EAAMmc,YACnCC,EAJgB,gBADGT,EAKY3b,EAAMmc,YAJN,SAAWR,EAMhD,OACE,gBAACF,GAAgB,CAAC3B,KAAM9Z,EAAM9D,KAAMgI,gBAAiB0X,GAClDQ,EAGP,EC9BaC,GAAwC,WACnD,OACE,gBAAC,KAAO,CAAC7U,IAAK,GAAIO,OAAQ,IACxB,gBAAC,KAAO,CAACA,OAAQ,IACf,gBAACuU,GAAc,KACb,uC,2DAGJ,gBAAC,IAAI,CAAC3R,QAAQ,gBAAgB4R,KAAK,QACjC,gBAACb,GAAY,CAACS,WAAY5D,EAAiBuD,OAAQ5f,KAAK,mCACxD,gBAACwf,GAAY,CAACS,WAAY5D,EAAiByD,WAAY9f,KAAK,4BAIpE,ECHasgB,GAAuC,WAAM,OACxD,gBAACpI,EAAa,KACZ,gBAACC,EAAoB,KACnB,gBAAC,IAAI,CAAC1J,QAAQ,gBAAgBD,MAAM,UAClC,gBAAC8J,EAAS,CAACiI,IAAI,cAAcC,IAAI,2CACjC,gBAAC7C,EAAgB,OAEnB,gBAACpF,EAAY,KACX,gBAAC,EAAAvO,GAAE,CAACjB,WAAY,QAAM,YAExB,gBAAC2P,EAAmB,KAClB,gBAAC8D,EAAI,CAAC7C,WAAS,EAACC,mBAAiB,EAAC1E,aAAW,GAC3C,gBAACqH,EAAG,CAAC7kB,GAAG,SAAS0W,MAAO,WACtB,gBAACyP,GAAU,OAEb,gBAACtB,EAAG,CAAC7kB,GAAG,SAAS0W,MAAO,iBACtB,gBAAC+R,GAAY,QAGjB,gBAACxH,EAAc,KACb,gBAACP,EAAU,CAACwF,KAAK,cACf,gBAAC,IAAI,CAACpP,MAAM,SAASzC,OAAO,QAC1B,+CACA,gBAAC,KAAM,CAACF,OAAQ,EAAGR,KAAM,GACvB,gBAAC,KAAI,CAACxC,KAAM,GAAIuD,IAAK,UAAWzU,KAAM,gBAAiB2R,QAAM,SAMvE,gBAACqU,EAAgB,CAACD,UAAQ,KA9B0B,E,2BCE7C+C,GAAyC,SAAA3c,GACpD,IAAM4c,EAAa,sBAAsB5c,EAAM6c,WAAWC,SAASlf,QAAQ,KAAM,KAEjF,OACE,gBAACmX,EAAc,CAACC,UAAWhV,EAAM6c,WAAW7H,WAC1C,gBAACC,EAAqB,KACpB,gBAAC,MAAY,CAAC8H,cAAkBH,EAAU,iBACxC,qBAAG9C,KAAM9Z,EAAM6c,WAAWG,WAAYrR,OAAO,WAC1C,SAAgB3L,EAAM6c,WAAWI,cAChC,gBAAC9H,EAAiB,CAChBuH,IAAK1c,EAAM6c,WAAWI,aACtBR,IAAKzc,EAAM6c,WAAWK,gBACtBjV,OAAQ,QACRtE,MAAO,UAGT,gBAAC0R,EAA4B,QAKnC,gBAAC,KAAO,CAAC7N,IAAK,MACZ,uBAAKoB,WAAW,SAAsB,WACpC,gBAAC,EAAAzC,GAAE,CAAC5I,MAAOyC,EAAM6c,WAAW7H,UAAY,QAAU,WAAYhV,EAAM6c,WAAWK,iBAE/E,gBAAC,KAAO,CAAC1V,IAAK,KAAMO,OAAQ,MAC1B,gBAACuN,EAAe,CAACN,UAAWhV,EAAM6c,WAAW7H,WAAYhV,EAAM6c,WAAWM,uBAG5E,gBAAC,MAAY,CAACJ,cAAkBH,EAAU,gBACxC,gBAAC,KAAI,CACHrf,MAAOyC,EAAM6c,WAAW7H,UAAY,UAAY,WAChD8E,KAAM9Z,EAAM6c,WAAWG,WACvB1X,WAAY,IACZqG,OAAO,UAEN3L,EAAM6c,WAAWO,oBAQlC,E,kBCvCMC,IAAkB,KAAAC,SACtB,MACA,SAACC,GAAuB,OACtBA,SAAQ,EADc,GAFF,EARkC,SAAC,G,IAAErd,EAAQ,WAAEqd,EAAQ,WAK7E,OAJA,IAAArG,YAAU,WACRqG,EAAS,MAAwB,QACnC,IAEO,gBAACpJ,EAAiB,KAAEjU,EAC7B,I,SChBasd,IAAe,UAFL,SAACppB,GAAoB,OAAAA,EAAMqpB,eAAeC,MAArB,IAI1C,SAAAF,GAAgB,OAAAA,EAAaG,MAAb,IAGLC,IAAkB,SAC7BJ,IACA,SAACA,GAA+B,OAC9BV,SAAUU,EAAaV,SACvBG,aAAcO,EAAaP,aAC3BC,gBAAiBM,EAAaN,gBAC9BC,qBAAsBK,EAAaL,qBACnCH,WAAYQ,EAAaR,WACzBI,eAAgBI,EAAaJ,eAC7BpI,UAAWwI,EAAaxI,UAPM,ICX5B6I,IAAe,E,MAAA,IAAoB,WAE5BC,GAAoBD,GAAa,wBAEjCE,GAAqBF,GAAoC,yBAEzDG,GAA8BH,GAAa,mCAC3CI,GAAgCJ,GAC3C,qCAEWK,GAA6BL,GAAoB,kC,kBCUjDM,IAAgB,KAAAC,yBAjBK,CAChCC,SAAU,CACRhrB,MAAO,KACPirB,YAAY,EACZC,YAAY,GAEdZ,OAAQ,CACNb,SAAU,GACVG,aAAc,GACdC,gBAAiB,GACjBC,qBAAsB,GACtBH,WAAY,GACZI,eAAgB,GAChBpI,WAAW,KAKZwJ,KAAK,IAAqC,SAAApqB,GACzC,eAAoBA,EAAO,WAAY,CACrCmqB,YAAY,EACZD,YAAY,EACZjrB,MAAO,MAHT,IAMDmrB,KAAK,IAA4B,SAACpqB,EAAOopB,GACxC,IAAMiB,EAAuC,iBAAjBjB,EAA4BkB,KAAKC,MAAMnB,GAAgBA,EAGnF,OAFAiB,EAAaxB,aAAe,sBAAsBwB,EAAaxB,cAExD,EAAA2B,GAAA,GAAcxqB,EAAO,CAC1BupB,OAAQc,GAEZ,IACCD,KAAK,IAAuC,SAAApqB,GAC3C,eAAoBA,EAAO,WAAY,CACrCf,MAAO,KACPirB,YAAY,EACZC,YAAY,GAHd,I,mkCC7BEM,IAAU,IAAAC,YACd,IAAAvkB,MAAI,IAAAA,KAAI6Y,OAAQ,sBAAuB,CAAC,GAAI,WAC5C,2BAGI2L,IAAkB,SAAuBF,GAAS,OAElDG,IAAwB,SAC5B,CACEC,MAAO,GACP5sB,KAAM,GACNgB,MAAO,IAET,sBACA,CAAC,EACD0rB,GACA,CAAEG,iBAAiB,IAErB,SAAU,K,mDACR,UAAM,SAAKF,K,cAAX,S,QAGF,SAAUG,K,yDAEwC,UAAM,QAClD,GAAsCtrB,O,OAGxC,OAJMlB,EAAwC,SAI9C,IAAM,SAAI,GAA2BA,EAAOe,W,cAA5C,S,0CCvCS0rB,IAAiB,SAAoB,sBC0CrCC,IAAe,KAAA/B,UAC1B,SAAAlpB,GAAS,OAAGyoB,WAAY,GAA0BzoB,GAAzC,IACT,SAACmpB,GAAuB,OACtBO,kBAAmB,WAAM,OAAAP,EAASO,KAAT,EADH,GAFE,EAhBqC,SAAA9d,GAK/D,OAJA,IAAAkX,YAAU,WACRlX,EAAM8d,mBACR,GAAG,IAGD,gBAAC,GAAM,KAEL,gBAAC,IAAI,CAAC/b,MAAO,CAAEmZ,UAAW,SACxB,gBAACsB,GAAW,MACZ,gBAACG,GAAY,CAACE,WAAY7c,EAAM6c,cAIxC,ICnCayC,IAAS,WAAY,OAE7BF,GAAevrB,MAAO,S,IAEzB,IAGW0rB,IAAU,SAAmB,CAAC,CAACH,GAAgB,M,mNCGtDI,IAAwB,IAAAC,iBAAgB,CAC5C/B,OAAQ,KAGJ,IAAoB,IAAAgC,GACxB,iBACAF,GACA,CJqBK,W,mDACL,UAAM,SAAW,GAA0B3rB,KAAM,K,OACjD,OADA,SACA,IAAM,SAAKsrB,K,cAAX,S,UItBA,IAAG,MAEE,IAEL,CAAC,IACD,CAAC,GATKQ,GAAG,O,IAAU,Y,OCPfC,GAAmC,SAAC,G,IAAE1f,EAAQ,WAAO,OACzD,uBAAK6B,MAAO,CAAEkG,OAAQ,SAAW/H,EADwB,EAW9C2f,IAAiB,KAAAvC,UAAoB,SAAClpB,GAA+B,OAChF0rB,QAAQ,SAAgB1rB,GACxB2rB,cAAc,SAAgB3rB,GAFkD,GAApD,EAPmC,SAAC,G,IAAE0rB,EAAM,SAAEC,EAAY,eAItF,OAHe,OAAXD,IACFA,EAASF,IAEJ,gBAACE,EAAM,KAAEC,EAAe,gBAACA,EAAY,MAAM,KACpD,ICTA,SACE,gBAACJ,GAAG,KACF,gBAAC,IAAa,KACZ,gBAAC,KAAa,MACd,gBAACE,GAAc,QAGnBzlB,SAAS4lB,eAAe,Q,2HCLpBC,EAAmB,SAAC7rB,GAAoB,OAAAA,EAAM8rB,QAAN,EACxCC,EAAkB,SAAC/rB,GAAoB,OAAAA,EAAMgsB,OAAN,EAEtC,SAASC,EAA6BC,EAAeC,GAC1D,YAD0D,IAAAA,IAAAA,OAAA,IACnD,QACLN,GACA,SAAAC,GAAY,WAAA3lB,KAAI2lB,EAAU,SAASI,EAASC,EAAhC,GAEhB,CAEqCF,EAAiB,SAAU,UAAzD,IAEMG,GAAc,QACzBP,GACA,SAAAC,GAAY,OAAAA,EAASO,QAAT,IAGDC,GAAc,QACzBT,GACA,SAAAC,GAAY,OAAAA,EAASrsB,IAAT,IAGD8sB,GAAa,QACxBV,GACA,SAAAC,GAAY,OAAAA,EAASxsB,OAAT,IAGDktB,GAAW,QACtBX,GACA,SAAAC,GAAY,OAAAA,EAASI,KAAT,IAUDO,IAPsB,QACjCH,EACAC,EACAC,GACA,SAACV,EAAUxsB,EAAS4sB,GAAU,OAAGJ,SAAQ,EAAExsB,QAAO,EAAE4sB,MAAK,EAA3B,KAGP,QACvBL,GACA,SAAAC,GAAY,OAAAA,EAASY,MAAT,KAGDC,GAAU,QACrBd,GACA,SAAAC,GAAY,OAAAA,EAASc,IAAT,IAuBRC,IApBiB,QACrBhB,GACA,SAAAC,GAAY,OAAAA,EAASgB,IAAT,KAGiB,QAC7BH,GACA,SAAAC,GAAQ,OAAAA,EAAKntB,IAAL,KAGoB,QAC5BktB,GACA,SAAAC,GAAQ,OAAAA,EAAKttB,OAAL,KAGqB,QAC7BqtB,GACA,SAAAC,GAAQ,OAAAA,EAAKP,QAAL,IAGYJ,EAAiB,UACjCc,EAAmBd,EAAiB,YACpCe,EAAiBf,EAAiB,UAa3BgB,IAXW,QACtBJ,GACA,SAACK,GAAyC,OAAAA,CAAA,KASd,QAC5BL,EACAE,EACAC,GACA,SAACE,EAAsCC,EAAUC,GAAgC,OAC/EF,MAAK,EACLC,SAAQ,EACRC,OAAM,EAHyE,KAyEtEC,IAlEmB,QAC9BR,EACAE,EACAC,GACA,SAACE,EAAsCC,EAAUC,GAC/C,QAAIF,IAGQC,IAAYC,EAE1B,KA2CwC,SAxCT,SAACptB,GAChC,IAEIktB,EAaAE,EACAD,EAhBE,EAA0CF,EAAejtB,GAAhDstB,EAAQ,QAAKC,E,yUAAe,GAArC,WAIN,OAAQD,GACN,KAAK,KACL,KAAK,KACL,KAAK,KACHJ,EAAQI,EACR,MACF,QACEJ,EAAQ,KAyBZ,OAlBKK,EAAgBJ,UAAaI,EAAgBH,QAUhDA,EAAS,IAAOG,EAAgBH,QAC7BI,QACAC,MACHN,EAAW,IAAOI,EAAgBJ,UAC/BK,QACAC,QAdHL,EAAS,QAAW,IAAIM,MACpBR,IAAU,KACZC,EAAWC,EAAOI,QAAQG,SAAS,EAAG,QAC7BT,IAAU,KACnBC,EAAWC,EAAOI,QAAQG,SAAS,EAAG,QAC7BT,IAAU,OACnBC,EAAWC,EAAOI,QAAQG,SAAS,GAAI,UAWpC,CAAET,MAAK,EAAEC,SAAQ,EAAEC,OAAM,EAClC,IAIE,SAAC,G,IAAED,EAAQ,WAAEC,EAAM,SAAEF,EAAK,QAAO,OAC/BC,SAAUA,EAASS,SACnBR,OAAQA,EAAOQ,SACfV,MAAK,EAH0B,KAOD,QAChCnB,GACA,SAAA8B,GAAU,OAAAA,EAAOpuB,IAAP,KAEmB,QAC7BssB,GACA,SAAAC,GAAW,OAAAA,EAAQ8B,SAAR,KAEAC,GAAkB,QAC7BhC,GACA,SAAAC,GAAW,OAAAA,EAAQtP,MAAR,G,gSCzKAsR,EAAgC,SAC3CC,EACAptB,EACAqtB,GAGA,YAHA,IAAAA,IAAAA,EAAA,IAEAA,EAAa,EAAH,CAAKC,EAAGttB,GAAWqtB,GACtBE,OAAS,UAAc,IAAIH,GAAO,QAAiBC,GAAe,CACvEG,QAAS,CAAC,EACVhI,OAAQ,MACRiI,YAAa,YAEZC,MAAK,QAAuB,QAC5BA,KAAK,MACLA,MAAK,QAAa,MAClBA,KAAK,MACLC,OAAM,SAAAvvB,GACL,MAAM,IAAI6gB,MAAM,wBAAwBmO,EAAI,KAAKhvB,EAAMS,QACzD,GACJ,EAsBa+uB,EAAY,SACvBR,EACAptB,EACAqtB,EACAQ,QADA,IAAAR,IAAAA,EAAA,SACA,IAAAQ,IAAAA,GAAA,GAEA,IAAMC,EAAkB,CAAER,EAAGttB,GAE7B,OAAOutB,OAAS,UAAc,IAAIH,GAAO,QAAiBU,GAAoB,CAC5EtI,OAAQ,OACRiI,YAAa,UACbD,QAAS,CACPO,OAAQ,qCACR,gBAAiB,WACjB,eAAgBF,EAAa,oCAAsC,oBAErEG,KAAMH,GAAa,QAA8BR,GAAc5D,KAAKwE,UAAUZ,KAE7EK,MAAK,QAAuB,SAC5BA,KAAK,MACLA,MAAK,QAAa,MAClBA,KAAK,MACLC,OAAM,SAAAvvB,GACL,MAAM,IAAI6gB,MAAM,qBAAqBmO,EAAI,KAAKhvB,EAAMS,QACtD,GACJ,EAEaqvB,EAAc,SAACd,EAAcptB,EAAgBqtB,QAAA,IAAAA,IAAAA,EAAA,IACxD,IAAMS,EAAkB,CAAER,EAAGttB,GAC7B,OAAOutB,OAAS,UAAc,IAAIH,GAAO,QAAiBU,GAAoB,CAC5EtI,OAAQ,SACRiI,YAAa,UACbD,QAAS,CACPO,OAAQ,qCACR,gBAAiB,WACjB,eAAgB,oBAElBC,KAAMvE,KAAKwE,UAAUZ,KAEpBK,MAAK,QAAuB,WAC5BA,KAAK,MACLA,MAAK,QAAa,MAClBA,KAAK,MACLC,OAAM,SAAAvvB,GACL,MAAM,IAAI6gB,MAAM,yBAAyBmO,EAAI,KAAKhvB,EAAMS,QAC1D,GACJ,EAEasvB,EAAe,SAC1Bf,EACAptB,EACAqtB,GAGA,YAHA,IAAAA,IAAAA,EAAA,IAEAA,EAAa,EAAH,CAAKC,EAAGttB,GAAWqtB,GACtBE,OAAS,SAAc,IAAIH,GAAO,QAAiBC,GAAe,CACvEG,QAAS,CAAC,EACVY,KAAM,OACN5I,OAAQ,QAEPkI,MAAK,QAAuB,QAC5BA,KAAK,MACLA,MAAK,QAAa,MAClBA,KAAK,MACLC,OAAM,SAAAvvB,GACL,MAAM,IAAI6gB,MAAM,4BAA4BmO,EAAI,KAAKhvB,EAAMS,QAC7D,GACJ,EA+CawvB,EAAY,SAACjB,EAAcptB,EAAgBqtB,EAAsBiB,QAAtB,IAAAjB,IAAAA,EAAA,IACtD,IAAMS,EAAkB,CAAER,EAAGttB,GAC7B,OAAOutB,OAAS,SAAc,IAAIH,GAAO,QAAiBU,GAAoB,CAC5EM,KAAM,OACN5I,OAAQ,OACRgI,QAAS,CACPO,OAAQ,qCACR,eAAgB,oBAElBC,KAAMvE,KAAKwE,UAAUZ,GACrBiB,YAA0B,IAAXA,EAAyBA,EAAS,OAEhDZ,MAAK,QAAuB,SAC5BA,KAAK,MACLA,MAAK,QAAa,MAClBA,KAAK,MACLC,OAAM,SAAAvvB,GACL,MAAM,IAAI6gB,MAAM,yBAAyBmO,EAAI,KAAKhvB,EAAMS,QAC1D,GACJ,C,oJC/KO,SAAS0vB,EAAuBC,EAAkBhJ,GACvD,OAAO,SAAC4H,EAAcqB,EAAiBpB,GACrC,YADqC,IAAAA,IAAAA,EAAA,IACrCE,MAASiB,EAAQ,IAAIpB,EAAOsB,EAAiBrB,GAAe,CAC1DG,QAAS,CAAC,EACVY,KAAM,OACN5I,OAAM,IAELkI,KAAKiB,EAAuBnJ,IAC5BkI,KAAKkB,GACLlB,KAAKmB,EAPR,CAQJ,CAEO,SAASD,EAAYE,GAC1B,IAAKA,EAASC,GACZ,OAAQD,EAASE,QACf,KAAK,IACH,MAAM,IAAI/P,MAAM,IAAOrC,gBACzB,KAAK,IACH,MAAM,IAAIqC,MAAM,IAAOlC,gBACzB,KAAK,IACL,KAAK,IACH,MAAM,IAAIkC,MAAM,IAAOjC,cACzB,KAAK,IACH,MAAM,IAAIiC,MAAM,IAAOhC,kBACzB,KAAK,IACH,MAAM,IAAIgC,MAAM,IAAOpC,gBACzB,KAAK,IACH,MAAM,IAAIoC,MAAM,IAAO/B,UACzB,QACE,MAAM,IAAI+B,MAAM,cAAc6P,EAASE,QAI7C,OAAOF,CACT,CAaO,SAASJ,EAAiBrB,GAC/B,OAAI,IAAA/X,SAAQ+X,GACH,GAGF,YAA0BA,EAAY,CAAE4B,gBAAgB,EAAMC,oBAAoB,GAC3F,CAQO,SAASC,IACd,IAAMC,EAAOjR,OAAOhZ,SAAS8lB,SAASmE,KAGtC,OAAI,IAAAtqB,OAAMsqB,IAAkB,cAATA,GAAiC,KAATA,EAClC,eAGFA,EAAO,KAAKA,EAAS,cAC9B,CAEO,SAASC,IACd,OAAO,IAAA/pB,KAAI6Y,OAAQ,gCACrB,CAsBO,SAAS0Q,EAAkBC,GAChC,IAAMQ,EAAcR,EAAStB,QAAQloB,IAAI,gBAEzC,OAAKgqB,IAA4D,IAA7CA,EAAYrtB,QAAQ,oBAIjC6sB,EAAS/kB,OAAO2jB,MAAK,SAAA3jB,GAC1B,IAAKA,EACH,MAAO,GAET,IACE,OAAO0f,KAAKC,MAAM3f,E,CAClB,MAAOmE,GACP,OAAOnE,C,CAEX,IAZS+kB,EAAS/kB,MAapB,CAEO,SAASwlB,EAAaC,GAC3B,OAAO,SAACV,GACN,WAAIW,SAAQ,SAAA/kB,GACN,KACFoB,YAAW,WAAM,OAAApB,EAAQokB,EAAR,GAAmBU,GAEpC9kB,EAAQokB,EAEZ,GANA,CAOJ,CAEO,SAASY,EAA8BC,GAC5C,OAAO,YAA0BA,EAAK,CAAEC,YAAa,UACvD,CAEO,SAASjB,EAAuBnJ,GACrC,OAAO,SAACsJ,GACE,IAAAE,EAAgBF,EAAQ,OAAhBe,EAAQf,EAAQ,IAE1BgB,EAAuC,MAAzBd,EAAOe,WAAW,GAQtC,OANA,QAAgB,cAAcF,EAAOC,EAAc,OAAS,QAAS,CACnEd,OAAQA,EACRa,IAAKA,EACLrK,OAAQA,IAGHsJ,CACT,CACF,C,sDCxJMM,EAAOjR,OAAOhZ,SAAS8lB,SAASmE,KAAOjR,OAAOhZ,SAAS8lB,SAASmE,KAAO,GAEhEY,GAA4C,IAAlCZ,EAAKntB,QAAQ,kBAAyD,IAA/BmtB,EAAKntB,QAAQ,aAI9DguB,GAFSb,EAAKntB,QAAQ,YAEqD,SAAvD,IAAAqD,KAAI6Y,OAAQ,kCAAmC,I,8DCJhF,SAAS+R,IACP,MAAwB,oBAAVC,SAA0B,IAAArrB,OAAMqrB,MAChD,CAEO,SAASC,IACVF,KACFC,MAAM,aAAc,CAClBvxB,KAAM,WACNwuB,KAAM,GAAGjP,OAAO8M,SAASO,UAG/B,CAWO,SAAS6E,EAASniB,EAAUoiB,GACjC,QADiC,IAAAA,IAAAA,EAAA,MAC7BJ,IAAa,CACf,IAAMzxB,EAA8B,CAClCL,MAAO8P,IAGJ,IAAApJ,OAAMwrB,KACT7xB,EAAQ6xB,WAAaA,GAGvBH,MAAM,OAAQ1xB,E,CAElB,CAkBO,SAAS8xB,EACd1xB,EACA2xB,EACAC,GAEIP,KACFC,MAAM,mBAAoB,CACxBtxB,QAAO,EACP2xB,MAAK,EACLC,SAAQ,GAGd,C,8DC7DO,SAASC,EACdla,EACAma,EACAC,QADA,IAAAD,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAiBzS,OAAO8M,SAASY,QAEjC,IAAM8D,EATD,SAA8BiB,GACnC,YADmC,IAAAA,IAAAA,EAAiBzS,OAAO8M,SAASY,QAC7D,UAAS+E,EAAgB,CAAEC,mBAAmB,GACvD,CAOcC,CAAqBF,GAEjC,OAAO,IAAAtrB,KAAIqqB,EAAKnZ,EAAKma,EACvB,C,gECUII,E,qmCAEG,SAASC,EAAWpzB,GACzBmzB,EAAUnzB,CACZ,CAQO,SAASqzB,EACdC,EAQAC,EACArD,EACAsD,EACAC,GAEA,YAJA,IAAAvD,IAAAA,EAAA,SACA,IAAAsD,IAAAA,EAAA,WACA,IAAAC,IAAAA,EAAA,CAA2CpH,iBAAiB,IAErD,SAAUvsB,G,oFAED,OADRe,GAAU,IAAA6G,KAAI5H,EAAQ,WACd,IAAM,W,OAAdyB,EAAQ,S,gDAGR+xB,EAAelH,MACjB,IAAM,QAAIkH,EAAelH,UADvB,M,cACF,S,aAEMsH,EAAUJ,EAAeK,iBAAiB9yB,G,IAE3B,EAAA6yB,E,wBAAA,YAAhB,OACH,IAAM,QAAI,KADgB,M,OAC1B,S,wBADmB,I,aAOV,OAFPhX,EAAO+W,EAAQpH,gBAAkB8G,EAAU,GAEpC,IAAM,QACjBK,EACA,GAAG9W,IAAO,QAAW6W,GAAUA,EAAO1yB,EAASU,GAASgyB,IACxD,QAAOhyB,IACP,QAAW2uB,GAAmBA,EAAgB3uB,EAAOV,GAAWqvB,I,cAJ5D0D,EAAO,SAOTN,EAAe9zB,KACjB,IAAM,QAAI8zB,EAAe9zB,KAAKo0B,KAD5B,O,eACF,S,eAEMF,EAAUJ,EAAeO,gBAAgBD,EAAM/yB,EAASU,G,IAEzC,EAAAmyB,E,0BAAA,YAAhB,OACH,IAAM,QAAI,KADgB,O,QAC1B,S,0BADmB,I,sDAKvBI,QAAQtzB,MAAM,GAEV8yB,EAAe9yB,MACjB,IAAM,QAAI8yB,EAAe9yB,MAAM,KAD7B,O,eACF,S,eAEMkzB,EAAUJ,EAAeS,iBAAiB,EAAGlzB,G,IAE9B,EAAA6yB,E,0BAAA,YAAhB,OACH,IAAM,QAAI,KADgB,O,QAC1B,S,0BADmB,I,kDAM7B,CAkEA,SAAUM,EAAsDt1B,EAAwBoB,G,yDACjF,QAAWA,GAAZ,MACF,IAAM,QAAKpB,EAAQoB,I,OAAnB,S,+BAIG,SAASm0B,EACdC,EACAx1B,GAEA,OAAO,QAA8Bw1B,EAASF,EAA2Bt1B,EAC3E,CAEO,SAASy1B,EAAiBr0B,GAC/B,QAAQ,IAAAoH,OAAMpH,EAAOkB,KAAKozB,MAAM,cAClC,C,mDCpEO,IAAMC,EAAkB,SAAC50B,GAC9B,QAAC,IAAAyH,OAAMzH,MAAW,IAAAiY,SAAQjY,EAAM0yB,aAAe1yB,EAAM0yB,WAAWmC,OAAOz1B,OAAS,CAAhF,C,4CC5FK,SAAS01B,EAAWC,GACzB,QAAI,IAAAttB,OAAMstB,SAIuBt1B,IAAfs1B,EAAKv1B,KACzB,C,gDC1BO,SAASw1B,EAAa3M,EAAe4M,GAC1C,QAD0C,IAAAA,IAAAA,GAAA,GACvCA,EAAgB,CACjB,IAAMC,EAAS7M,EAAM8M,MAAM,KAC3B,OAAO,IAAAC,OAAMF,GAAQ,SAAArkB,GACnB,QAAGA,EAAEgkB,OAAOz1B,OAAS,IACZyR,EAAEjM,QAAQ,MAAQ,GAAKiM,EAAEskB,MAAM,KAAK,GAAG/1B,OAAS,CAI3D,G,CAGF,OAAOipB,EAAMzjB,QAAQ,MAAQ,GAAKyjB,EAAM8M,MAAM,KAAK,GAAG/1B,OAAS,CACjE,C,GCdIi2B,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB91B,IAAjB+1B,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CACjDj0B,GAAIi0B,EACJI,QAAQ,EACRF,QAAS,CAAC,GAUX,OANAG,EAAoBL,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG3EI,EAAOC,QAAS,EAGTD,EAAOD,OACf,CAGAH,EAAoBQ,EAAIF,E7E5BpB92B,EAAW,GACfw2B,EAAoBS,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAAS1vB,EAAI,EAAGA,EAAI7H,EAASM,OAAQuH,IAAK,CAGzC,IAFA,IAAKsvB,EAAUC,EAAIC,GAAYr3B,EAAS6H,GACpC2vB,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAAS72B,OAAQm3B,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAaK,OAAOC,KAAKnB,EAAoBS,GAAGX,OAAOjc,GAASmc,EAAoBS,EAAE5c,GAAK8c,EAASM,MAC9IN,EAASS,OAAOH,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbx3B,EAAS43B,OAAO/vB,IAAK,GACrB,IAAIgwB,EAAIT,SACEz2B,IAANk3B,IAAiBX,EAASW,EAC/B,CACD,CACA,OAAOX,CAnBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIxvB,EAAI7H,EAASM,OAAQuH,EAAI,GAAK7H,EAAS6H,EAAI,GAAG,GAAKwvB,EAAUxvB,IAAK7H,EAAS6H,GAAK7H,EAAS6H,EAAI,GACrG7H,EAAS6H,GAAK,CAACsvB,EAAUC,EAAIC,EAqBjB,E8EzBdb,EAAoBsB,EAAKlB,IACxB,IAAImB,EAASnB,GAAUA,EAAOoB,WAC7B,IAAOpB,EAAiB,QACxB,IAAM,EAEP,OADAJ,EAAoByB,EAAEF,EAAQ,CAAE/yB,EAAG+yB,IAC5BA,CAAM,ECLdvB,EAAoByB,EAAI,CAACtB,EAASuB,KACjC,IAAI,IAAI7d,KAAO6d,EACX1B,EAAoB2B,EAAED,EAAY7d,KAASmc,EAAoB2B,EAAExB,EAAStc,IAC5Eqd,OAAOU,eAAezB,EAAStc,EAAK,CAAEge,YAAY,EAAMlvB,IAAK+uB,EAAW7d,IAE1E,ECNDmc,EAAoB8B,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO9rB,MAAQ,IAAI+rB,SAAS,cAAb,EAChB,CAAE,MAAOzmB,GACR,GAAsB,iBAAXiQ,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBwU,EAAoBiC,IAAO7B,KAC1BA,EAASc,OAAOgB,OAAO9B,IACX9nB,WAAU8nB,EAAO9nB,SAAW,IACxC4oB,OAAOU,eAAexB,EAAQ,UAAW,CACxCyB,YAAY,EACZnhB,IAAK,KACJ,MAAM,IAAI4L,MAAM,0FAA4F8T,EAAOp0B,GAAG,IAGjHo0B,GCTRJ,EAAoB2B,EAAI,CAAC3E,EAAKmF,IAAUjB,OAAOkB,UAAUC,eAAe9B,KAAKvD,EAAKmF,GCClFnC,EAAoBqB,EAAKlB,IACH,oBAAXmC,QAA0BA,OAAOC,aAC1CrB,OAAOU,eAAezB,EAASmC,OAAOC,YAAa,CAAE73B,MAAO,WAE7Dw2B,OAAOU,eAAezB,EAAS,aAAc,CAAEz1B,OAAO,GAAO,ECL9Ds1B,EAAoBwC,IAAOpC,IAC1BA,EAAOqC,MAAQ,GACVrC,EAAO9nB,WAAU8nB,EAAO9nB,SAAW,IACjC8nB,GCHRJ,EAAoBvuB,EAAI,G,MCKxB,IAAIixB,EAAkB,CACrB,IAAK,GAaN1C,EAAoBS,EAAEQ,EAAK0B,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BhE,KACvD,IAGIoB,EAAU0C,GAHThC,EAAUmC,EAAaC,GAAWlE,EAGhBxtB,EAAI,EAC3B,GAAGsvB,EAASjyB,MAAM1C,GAAgC,IAAxB02B,EAAgB12B,KAAa,CACtD,IAAIi0B,KAAY6C,EACZ9C,EAAoB2B,EAAEmB,EAAa7C,KACrCD,EAAoBQ,EAAEP,GAAY6C,EAAY7C,IAGhD,GAAG8C,EAAS,IAAIrC,EAASqC,EAAQ/C,EAClC,CAEA,IADG6C,GAA4BA,EAA2BhE,GACrDxtB,EAAIsvB,EAAS72B,OAAQuH,IACzBsxB,EAAUhC,EAAStvB,GAChB2uB,EAAoB2B,EAAEe,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAO3C,EAAoBS,EAAEC,EAAO,EAGjCsC,EAAqBC,KAAiC,2BAAIA,KAAiC,4BAAK,GACpGD,EAAmBE,QAAQN,EAAqBloB,KAAK,KAAM,IAC3DsoB,EAAmBG,KAAOP,EAAqBloB,KAAK,KAAMsoB,EAAmBG,KAAKzoB,KAAKsoB,G,KC7CvF,IAAII,EAAsBpD,EAAoBS,OAAEt2B,EAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,MAAM,IAAO61B,EAAoB,OACxHoD,EAAsBpD,EAAoBS,EAAE2C,E","sources":["webpack://raygun-website/webpack/runtime/chunk loaded","webpack://raygun-website/./node_modules/redux-saga/es/internal/io-helpers.js","webpack://raygun-website/./node_modules/redux-saga/es/internal/sagaHelpers/takeLatest.js","webpack://raygun-website/./scripts/react/app/notifications/sagas.ts","webpack://raygun-website/./scripts/react/app/selectors/application.ts","webpack://raygun-website/./scripts/react/app/selectors/configuration.ts","webpack://raygun-website/./scripts/react/app/theme/index.ts","webpack://raygun-website/./scripts/react/components/animated/fade.tsx","webpack://raygun-website/./scripts/react/components/breakpoints/index.tsx","webpack://raygun-website/./scripts/react/components/dropdown/buttons.tsx","webpack://raygun-website/./scripts/react/components/ds/button/icon/index.tsx","webpack://raygun-website/./scripts/react/components/ds/button/standard/text.tsx","webpack://raygun-website/./scripts/react/components/ds/button/standard/contained.tsx","webpack://raygun-website/./scripts/react/components/ds/selection/index.tsx","webpack://raygun-website/./scripts/react/components/ds/text/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tooltip/actiontip/components.ts","webpack://raygun-website/./scripts/react/components/ds/tooltip/actiontip/index.tsx","webpack://raygun-website/./scripts/react/components/icon/iconAfter.tsx","webpack://raygun-website/./scripts/react/components/icon/button.tsx","webpack://raygun-website/./scripts/react/components/icon/index.tsx","webpack://raygun-website/./scripts/react/components/input/search.tsx","webpack://raygun-website/./scripts/react/components/layout/sidebarLayout.tsx","webpack://raygun-website/./scripts/react/components/layout/spacing.tsx","webpack://raygun-website/./scripts/react/components/modal/modal/header.tsx","webpack://raygun-website/./scripts/react/components/modal/modal/footer.tsx","webpack://raygun-website/./scripts/react/components/modal/modal/index.tsx","webpack://raygun-website/./scripts/react/components/module/header.tsx","webpack://raygun-website/./scripts/react/components/panel.tsx","webpack://raygun-website/./scripts/react/components/text/index.tsx","webpack://raygun-website/./scripts/react/components/width.tsx","webpack://raygun-website/./scripts/react/constants/errors.ts","webpack://raygun-website/./scripts/react/fela-rules/breakpoints.ts","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/styles.ts","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tabButtonContainer/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tabButton/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tabNavigationContainer/index.tsx","webpack://raygun-website/./scripts/react/components/ds/horizontalScroll/components/overflowWrapper.tsx","webpack://raygun-website/./scripts/react/components/ds/horizontalScroll/components/navButtonWrapper.tsx","webpack://raygun-website/./scripts/react/components/ds/horizontalScroll/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tabNavigationControl/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tabPane.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/socialButton/models.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/components/tab.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/index.tsx","webpack://raygun-website/./scripts/react/components/ds/tabs/utils/index.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/startTrialModule/styles.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/startTrialModule/startTrialModule.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/tabContent/signInTab.tsx","webpack://raygun-website/./scripts/react/components/ds/alerts/banner/base.tsx","webpack://raygun-website/./scripts/react/components/ds/alerts/banner/banners.tsx","webpack://raygun-website/./scripts/react/components/ds/alerts/banner/box.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/socialButton/styles.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/socialButton/socialButton.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/tabContent/socialTab.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/leftSection.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/rightSection.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/components/layout.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/selectors/index.ts","webpack://raygun-website/./scripts/react/sections/authentication/signIn/actions/index.ts","webpack://raygun-website/./scripts/react/sections/authentication/signIn/reducers/index.ts","webpack://raygun-website/./scripts/react/sections/authentication/signIn/sagas/index.ts","webpack://raygun-website/./scripts/react/sections/authentication/routing/authentication.ts","webpack://raygun-website/./scripts/react/sections/authentication/signIn/screens/index.tsx","webpack://raygun-website/./scripts/react/sections/authentication/signIn/navigation.ts","webpack://raygun-website/./scripts/react/sections/authentication/app.tsx","webpack://raygun-website/./scripts/react/sections/authentication/authentication.tsx","webpack://raygun-website/./scripts/react/sections/authentication/index.tsx","webpack://raygun-website/./scripts/react/selectors/router.ts","webpack://raygun-website/./scripts/react/utils/fetching/index.ts","webpack://raygun-website/./scripts/react/utils/fetching/utils.ts","webpack://raygun-website/./scripts/react/utils/host.ts","webpack://raygun-website/./scripts/react/utils/raygun.ts","webpack://raygun-website/./scripts/react/utils/routing/queryString.ts","webpack://raygun-website/./scripts/react/utils/sagas.ts","webpack://raygun-website/./scripts/react/utils/string/index.ts","webpack://raygun-website/./scripts/react/utils/types.ts","webpack://raygun-website/./scripts/react/utils/validation/index.ts","webpack://raygun-website/webpack/bootstrap","webpack://raygun-website/webpack/runtime/compat get default export","webpack://raygun-website/webpack/runtime/define property getters","webpack://raygun-website/webpack/runtime/global","webpack://raygun-website/webpack/runtime/harmony module decorator","webpack://raygun-website/webpack/runtime/hasOwnProperty shorthand","webpack://raygun-website/webpack/runtime/make namespace object","webpack://raygun-website/webpack/runtime/node module decorator","webpack://raygun-website/webpack/runtime/publicPath","webpack://raygun-website/webpack/runtime/jsonp chunk loading","webpack://raygun-website/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import { fork } from './io';\nimport { takeEveryHelper, takeLatestHelper, throttleHelper } from './sagaHelpers';\n\nexport function takeEvery(patternOrChannel, worker) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(undefined, [takeEveryHelper, patternOrChannel, worker].concat(args));\n}\n\nexport function takeLatest(patternOrChannel, worker) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(undefined, [takeLatestHelper, patternOrChannel, worker].concat(args));\n}\n\nexport function throttle(ms, pattern, worker) {\n for (var _len3 = arguments.length, args = Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) {\n args[_key3 - 3] = arguments[_key3];\n }\n\n return fork.apply(undefined, [throttleHelper, ms, pattern, worker].concat(args));\n}","import fsmIterator, { qEnd, safeName } from './fsmIterator';\nimport { cancel, take, fork } from '../io';\nimport { END } from '../channel';\n\nexport default function takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = { done: false, value: take(patternOrChannel) };\n var yFork = function yFork(ac) {\n return { done: false, value: fork.apply(undefined, [worker].concat(args, [ac])) };\n };\n var yCancel = function yCancel(task) {\n return { done: false, value: cancel(task) };\n };\n\n var task = void 0,\n action = void 0;\n var setTask = function setTask(t) {\n return task = t;\n };\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return ['q2', yTake, setAction];\n },\n q2: function q2() {\n return action === END ? [qEnd] : task ? ['q3', yCancel(task)] : ['q1', yFork(action), setTask];\n },\n q3: function q3() {\n return ['q1', yFork(action), setTask];\n }\n }, 'q1', 'takeLatest(' + safeName(patternOrChannel) + ', ' + worker.name + ')');\n}","/** @format */\n\nimport { defaults } from 'lodash';\nimport { SagaIterator } from 'redux-saga';\nimport { put, take, fork } from 'redux-saga/effects';\nimport { EmptyActionCreator, ActionCreator } from 'typescript-fsa';\n\nimport * as Models from './models';\nimport * as Actions from './actions';\nimport { clearNotificationFromCookie, getNotificationFromCookie } from './utils';\n\nexport type SavingMessages = {\n saving?: string;\n done?: string;\n error?: string;\n};\n\nconst savingMessageDefaults: SavingMessages = {\n saving: 'Saving...',\n done: 'Saving successful',\n error: 'Saving failed',\n};\n\nexport function* savingNotification(messages: SavingMessages, position: Models.Position): any {\n messages = defaults(messages, savingMessageDefaults);\n\n const payload = Actions.createPayload(Models.TYPES.SUCCESS, messages.saving, true, position);\n\n const success = yield Actions.show(payload);\n\n if (success) {\n return Actions.update({\n id: payload.id,\n type: Models.TYPES.SUCCESS,\n message: messages.done,\n disableDismiss: false,\n });\n } else {\n return Actions.update({\n id: payload.id,\n type: Models.TYPES.ERROR,\n message: messages.error,\n disableDismiss: false,\n });\n }\n}\n\nexport function createSavingSaga(\n actions: {\n start: EmptyActionCreator | ActionCreator;\n done: EmptyActionCreator | ActionCreator;\n error: EmptyActionCreator | ActionCreator;\n },\n messages?: SavingMessages,\n position: Models.Position = Models.Position.CENTRE_TOP,\n): any {\n return fork(createSavingSagaHelper, actions, messages, position);\n}\n\nfunction* createSavingSagaHelper(\n actions: {\n start: EmptyActionCreator | ActionCreator;\n done: EmptyActionCreator | ActionCreator;\n error: EmptyActionCreator | ActionCreator;\n },\n messages: SavingMessages,\n position: Models.Position,\n): any {\n while (true) {\n yield take(actions.start.type);\n\n const saving = savingNotification(messages, position);\n yield put(saving.next().value);\n\n const action = yield take([actions.done.type, actions.error.type]);\n\n const success = action.type === actions.done.type;\n yield put(saving.next(success).value);\n }\n}\n\nexport function* HydrateNotificationsFromCookie(): SagaIterator {\n const cookieNotification = getNotificationFromCookie();\n\n if (cookieNotification) {\n clearNotificationFromCookie(cookieNotification.id);\n yield put(Actions.show(cookieNotification));\n }\n}\n","/** @format */\n\nimport { find, keyBy, some } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { AppState } from 'interfaces/appState';\nimport { Application } from 'interfaces/application';\nimport { PlanLevel } from 'interfaces/plan';\n\nconst appSelector = (state: AppState) => state.app;\n\nconst configurationSelector = createSelector(\n appSelector,\n app => app.configuration,\n);\n\nconst pageDataSelector = createSelector(\n appSelector,\n app => app.pageData,\n);\n\nexport const applicationIdentifier = createSelector(\n configurationSelector,\n config => config.ApplicationIdentifier,\n);\n\nexport const getAppId = createSelector(\n configurationSelector,\n config => config.ApplicationId,\n);\n\nexport const planIdentifier = createSelector(\n configurationSelector,\n config => config.PlanIdentifier,\n);\n\nexport const planName = createSelector(\n configurationSelector,\n config => config.PlanTitle,\n);\n\nexport const apiKey = createSelector(\n configurationSelector,\n config => config.ApiKey,\n);\n\nexport const getAppApiKey = createSelector(\n configurationSelector,\n config => config.ApplicationApiKey,\n);\n\nexport const getTaggedUsers = createSelector(\n configurationSelector,\n config => config.TagUsers,\n);\n\nexport const getPlanId = createSelector(\n configurationSelector,\n config => config.PlanId,\n);\n\nexport const getActivePlan = createSelector(\n configurationSelector,\n getPlanId,\n (config, planId) => find(config.Plans, plan => plan.Id === planId),\n);\n\nexport const isPlanOwner = createSelector(\n configurationSelector,\n config => config.PlanOwner,\n);\n\nexport const isInPlanOwnersTeam = createSelector(\n configurationSelector,\n config => config.IsInOwnersTeam,\n);\n\nexport const getApplications = createSelector(\n pageDataSelector,\n pageData => pageData.Applications,\n);\n\nexport const getApplicationsForCurrentPlan = createSelector(\n getPlanId,\n getApplications,\n (planId, applications) => applications.filter(a => a.planId === planId),\n);\n\nexport const hasApmApplication = createSelector(\n getApplicationsForCurrentPlan,\n applications => some(applications, (application: Application) => application.apmEnabled),\n);\n\nexport const getCurrentApplication = createSelector(\n getAppId,\n getApplications,\n (appId, applications) => find(applications, app => app.id === appId),\n);\n\nexport const getNoAPMDataSent = createSelector(\n pageDataSelector,\n pageData => pageData.NoAPMDataSent,\n);\n\nexport const getApplicationsById = createSelector(\n getApplications,\n applications => keyBy(applications, a => a.id),\n);\n\nexport const getDashboards = createSelector(\n pageDataSelector,\n pageData => pageData.Dashboards,\n);","/** @format */\n/* tslint:disable:max-file-line-count */\n\nimport { createSelector } from 'reselect';\nimport { find, get, isNil } from 'lodash';\n\nimport { AppState } from 'interfaces/appState';\nimport { Environments, Environment } from 'interfaces/environments';\nimport { User } from 'interfaces/user';\nimport { PlanLevel } from \"interfaces/plan\";\n\nimport { getDefaultPlanId } from 'utils/plans';\nimport { toIdentifier } from 'utils/linking';\n\nexport { ErrorDashboardPlugin } from 'interfaces/configuration';\n\nconst appSelector = (state: AppState) => state.app;\n\nconst configurationSelector = createSelector(\n appSelector,\n app => app.configuration,\n);\n\nexport const errorDashboardPlugins = createSelector(\n configurationSelector,\n config => config.ErrorDashboardPlugins,\n);\n\nexport const enabledApmIntegrations = createSelector(\n configurationSelector,\n config => config.EnabledApmIntegrations,\n);\n\nexport const hasSourceCodeIntegration = createSelector(\n enabledApmIntegrations,\n s =>\n s.indexOf('github') > -1 || s.indexOf('bitbucket') > -1 || s.indexOf('visualstudioonline') > -1,\n);\n\nexport const getSourceCodeIntegrations = createSelector(\n enabledApmIntegrations,\n hasSourceCodeIntegration,\n s =>\n hasSourceCodeIntegration ? s : null,\n);\n\nexport const getDashboardIdentifier = createSelector(\n configurationSelector,\n config => config.DashboardIdentifier,\n);\n\nexport const getDashboardId = createSelector(\n configurationSelector,\n config => config.DashboardId,\n);\n\nexport const getAppId = createSelector(\n configurationSelector,\n config => config.ApplicationId,\n);\n\nexport const getAppIdentifier = createSelector(\n configurationSelector,\n config => config.ApplicationIdentifier,\n);\n\nexport const getPlanId = createSelector(\n configurationSelector,\n config => config.PlanId,\n);\n\nexport const getPlanIdentifier = createSelector(\n configurationSelector,\n config => config.PlanIdentifier,\n);\n\nexport const getPlanTitle = createSelector(\n configurationSelector,\n config => config.PlanTitle,\n);\n\nexport const getFeatureFlags = createSelector(\n configurationSelector,\n config => config.Features,\n);\n\nexport const planContainsLegacyProduct = createSelector(\n getFeatureFlags,\n ff => ff.indexOf('EnableCrossLegacyAndPricing2023Support') > -1,\n);\n\nexport const hasPricing2023FeatureFlag = createSelector(\n getFeatureFlags,\n ff => ff.indexOf('Pricing2023') > -1,\n);\n\nexport const hasSelfServeSSOFeatureFlag = createSelector(\n getFeatureFlags,\n ff => ff.indexOf('SelfServeSingleSignOn') > -1,\n);\n\nexport const getCrashReportingHasReceivedData = createSelector(\n configurationSelector,\n config => config.ApplicationHasReceivedErrors,\n);\n\nexport const getRUMHasReceivedData = createSelector(\n configurationSelector,\n config => config.ApplicationHasReceivedPulseEvents,\n);\n\nexport const getAPMHasReceivedData = createSelector(\n configurationSelector,\n config => config.ApplicationHasReceivedTraces,\n);\n\nexport const allProductsHaveReceivedData = createSelector(\n getCrashReportingHasReceivedData,\n getRUMHasReceivedData,\n getAPMHasReceivedData,\n (crash, rum, apm) => crash && rum && apm,\n);\n\nexport const crashOnTrial = createSelector(\n configurationSelector,\n config => config.CrashIsInTrial,\n);\n\n\nexport const rumOnTrial = createSelector(\n configurationSelector,\n config => config.PulseIsInTrial,\n);\n\n\nexport const apmOnTrial = createSelector(\n configurationSelector,\n config => config.APMIsInTrial,\n);\n\nexport const allProductsOnTrial = createSelector(\n configurationSelector,\n config => config.CrashIsInTrial && config.PulseIsInTrial && config.APMIsInTrial,\n);\n\nexport const getPlatformId = createSelector(\n configurationSelector,\n config => config.PlatformId,\n);\n\nexport const getEnvironment = createSelector(\n getPlatformId,\n platformId => find(Environments, (i: Environment) => i.id == platformId),\n);\n\nexport const getPlans = createSelector(\n configurationSelector,\n config => config.Plans,\n);\n\nexport const hasMultiplePlans = createSelector(\n getPlans,\n plans => plans.length > 1,\n);\n\nexport const getPlanForPage = createSelector(\n getPlans,\n plans => {\n const planIdForPage = getDefaultPlanId();\n return find(plans, p => p.Id === planIdForPage);\n },\n);\n\nexport const hasBasicPlan = createSelector(\n getPlanForPage,\n plan => {\n return plan ? plan.PlanLevelEnum === 'Basic' : false;\n },\n);\n\nexport const isTrialLevelPlan = createSelector(\n getPlanForPage,\n plan => {\n return plan ? plan.PlanLevel === PlanLevel.FreeAndTrial : false; \n }\n);\n\nexport const getExternalProviderStatusForPlan = createSelector(\n getPlans,\n getPlanIdentifier,\n (plans, planIdentifier) => {\n const currentPlan = find(plans, p => p.Id === parseInt(planIdentifier, 36));\n return currentPlan && currentPlan.IsUsingExternalProvider;\n },\n);\n\nexport const getHerokuStatusForPlan = createSelector(\n getPlans,\n getPlanIdentifier,\n (plans, planIdentifier) => {\n const currentPlan = find(plans, p => p.Id === parseInt(planIdentifier, 36));\n return currentPlan && currentPlan.IsHeroku;\n },\n);\n\nexport const isOnPlanLevelPage = createSelector(\n getPlanForPage,\n plan => !isNil(plan),\n);\n\nexport const isInOwnersTeam = createSelector(\n configurationSelector,\n config => config.IsInOwnersTeam,\n);\n\nexport const hasReachedUserLimit = createSelector(\n configurationSelector,\n config => config.HasReachedUserLimit,\n);\n\nexport const canInviteUsers = createSelector(\n isInOwnersTeam,\n hasReachedUserLimit,\n (isInOwnersTeam, hasReachedUserLimit) => isInOwnersTeam && !hasReachedUserLimit,\n);\n\n// Get the ASP.NET anti-forgery token out of the DOM\n// Note: This is required in the payload for requests to endpoints with the [ValidateAntiForgeryToken] attribute\nexport const getAntiForgeryToken = createSelector(\n () =>\n document.querySelector('#global-anti-forgery-token input[name=\"__RequestVerificationToken\"]'),\n input => get(input, 'value'),\n);\n\nexport const getRequestVerificationTokenObject = createSelector(\n getAntiForgeryToken,\n token => ({\n __RequestVerificationToken: token,\n }),\n);\n\nexport const getUser = createSelector(\n configurationSelector,\n (config): User => ({\n fullName: config.UsersName,\n id: config.UsersId,\n identifier: toIdentifier(config.UsersId),\n avatarUrl: config.AvatarUrl,\n external: false,\n }),\n);\n\nexport const getPage = createSelector(\n configurationSelector,\n config => config.Page,\n);\n\nexport const hasDeploymentsEnabled = createSelector(\n configurationSelector,\n config => config.DeploymentsEnabled,\n);\n\nexport const getAppAvatarUrl = createSelector(\n configurationSelector,\n config => config.ApplicationAvatarUrl,\n);\n\nexport const hasRumEnabled = createSelector(\n configurationSelector,\n config => config.PulseUnlocked,\n);\n\nexport const hasCrEnabled = createSelector(\n configurationSelector,\n config => config.CrashReportingUnlocked,\n);\n\nexport const defaultApplicationIdentifier = createSelector(\n configurationSelector,\n config => config.DefaultApplicationIdentifier,\n);\n\nexport const isFeatureGated = createSelector(\n hasBasicPlan,\n planContainsLegacyProduct,\n hasPricing2023FeatureFlag,\n (hasBasicPlan, planContainsLegacyProduct, hasPricing2023FeatureFlag) => {\n if (!planContainsLegacyProduct && hasBasicPlan && hasPricing2023FeatureFlag) {\n return true;\n } else if (planContainsLegacyProduct && hasBasicPlan && hasPricing2023FeatureFlag) {\n // we want customers where they a plan with 1 or more bonus events product (which is at a basic level)\n // and one or more legacy roduct to be able to use all the features.\n return false;\n } else {\n return false;\n }\n },\n);","/**\n * @prettier\n */\n/* tslint:disable:max-file-line-count */\n\nimport * as Material from './material';\nimport * as MaterialDS from './materialDS';\nimport { isNil } from 'lodash';\n\nexport type ThemeRulesType = {\n ds: {\n colors: {\n blue: MaterialDS.BLUE_TYPES;\n blueGrey: MaterialDS.BLUE_GREY_TYPES;\n grey: MaterialDS.GREY_TYPES;\n cyan: MaterialDS.CYAN_TYPES;\n teal: MaterialDS.TEAL_TYPES;\n green: MaterialDS.GREEN_TYPES;\n greenL: MaterialDS.GREENL_TYPES;\n purple: MaterialDS.PURPLE_TYPES;\n red: MaterialDS.RED_TYPES;\n amber: MaterialDS.AMBER_TYPES;\n pink: MaterialDS.PINK_TYPES;\n indigo: MaterialDS.INDIGO_TYPES;\n lime: MaterialDS.LIME_TYPES;\n yellow: MaterialDS.YELLOW_TYPES;\n orange: MaterialDS.ORANGE_TYPES;\n semantic: MaterialDS.SEMANTIC_TYPES;\n special: MaterialDS.SPECIAL_TYPES;\n brand: {\n primary: MaterialDS.BLUE_TYPES['blue1000'];\n secondary: MaterialDS.BLUE_TYPES['blue1700'];\n };\n link: {\n inactive: MaterialDS.BLUE_TYPES['blueRG1050'];\n active: MaterialDS.BLUE_TYPES['blue1500'];\n };\n };\n getColorByName(color: MaterialDS.COLORS): string;\n fonts: {\n standard: '\"Open Sans\", arial, helvetica, serif';\n };\n standardBoxShadow: '0 2px 3px -1px rgba(38, 45, 58, 0.1)';\n dialogBoxShadow: '0 14px 28px 0 rgba(0,0,0,0.25), 0 10px 10px 0 rgba(0,0,0,0.25)';\n };\n fonts: {\n standard: '\"Open Sans\", arial, helvetica, serif';\n };\n shadows: {\n box: '0 2px 3px -1px rgba(38, 45, 58, 0.1)';\n boxHeavy: '0 7px 15px rgba(38, 45, 58, 0.1)';\n dropdown: string;\n modal: string;\n };\n colors: {\n border: {\n dark: '#BBB';\n light: '#E8E8E8';\n standard: '#D3D3D3';\n transparent: 'rgba(0,0,0,0.2)';\n };\n grey: {\n darkest: '#BBB';\n dark: '#CFCFCD';\n standard: '#D8D8D8';\n light: '#DDD';\n lighter: '#F1F1F1';\n lightest: '#FAFAFA';\n };\n ember: {\n dark: '#DC280A';\n standard: '#F73415';\n light: '#FA5028';\n highlight: '#FFE1DF';\n };\n stealth: {\n darkest: '#262d3a';\n dark: '#262d3a';\n standard: '#303847';\n light: '#5A606B';\n };\n text: {\n black: '#333';\n blackLight: '#666666';\n blue: '#4285F4';\n green: '#8BC34A';\n grey: '#808080';\n greyDark: '#4A4A4A';\n greyLight: '#BBB';\n purple: '#8A4DC7';\n red: '#DB4437';\n white: '#FFF';\n yellow: '#EFB11C';\n one: '#333';\n two: '#666';\n three: '#999';\n };\n standard: {\n white: '#FFF';\n azure: '#158FEF';\n azureHighlight: '#ECF4FF';\n };\n lightning: {\n standard: '#FFC539';\n light: '#F4E216';\n highlight: '#FFF5DB';\n };\n green: {\n standard: '#1CC526';\n light: '#46D04E';\n dark: '#00AD09';\n success: '#43A047';\n };\n blue: {\n standard: '#158FEF';\n light: '#5EB2F4';\n dark: '#0369D2';\n };\n byzantine: {\n standard: '#8a4dc7';\n light: '#8a4dc7';\n dark: '#511a8c';\n };\n flame: {\n standard: '#FB7A31';\n light: '#fb8c4c';\n dark: '#fa610b';\n };\n red: {\n standard: '#F73415';\n light: '#FA5028';\n dark: '#DC280A';\n };\n material: Material.BLUE_TYPES &\n Material.GREY_TYPES &\n Material.RED_TYPES &\n Material.GREEN_TYPES &\n Material.AMBER_TYPES &\n Material.YELLOW_TYPES;\n social: Material.SOCIAL_TYPES;\n };\n};\n\nexport type ThemeType = {\n theme?: ThemeRulesType;\n};\n\nexport const Theme: ThemeRulesType = {\n ds: {\n colors: {\n amber: MaterialDS.AMBER,\n blueGrey: MaterialDS.BLUE_GREY,\n brand: {\n primary: '#158FEF',\n secondary: '#062A47',\n },\n link: {\n inactive: MaterialDS.BLUE.blueRG1050,\n active: MaterialDS.BLUE.blue1500,\n },\n cyan: MaterialDS.CYAN,\n green: MaterialDS.GREEN,\n greenL: MaterialDS.GREENL,\n grey: MaterialDS.GREY,\n purple: MaterialDS.PURPLE,\n blue: MaterialDS.BLUE,\n red: MaterialDS.RED,\n semantic: MaterialDS.SEMANTIC,\n teal: MaterialDS.TEAL,\n pink: MaterialDS.PINK,\n indigo: MaterialDS.INDIGO,\n lime: MaterialDS.LIME,\n yellow: MaterialDS.YELLOW,\n orange: MaterialDS.ORANGE,\n special: MaterialDS.SPECIAL,\n },\n getColorByName(color: MaterialDS.COLORS) {\n // Catches when the color is initially undefined. Fela's just been catching this all the time instead of us\n if (isNil(color)) {\n return '';\n }\n\n if (color === 'transparent') {\n return MaterialDS.SPECIAL.transparent;\n }\n if (color === 'white') {\n return MaterialDS.SPECIAL.white;\n }\n if (color === 'black') {\n return MaterialDS.SPECIAL.black;\n }\n\n const colorGroup = color.replace(/[A-Z]*[0-9]+/, '');\n\n // tslint:disable-next-line:no-invalid-this\n return (this.colors as any)[colorGroup][color];\n },\n standardBoxShadow: '0 2px 3px -1px rgba(38, 45, 58, 0.1)',\n dialogBoxShadow: '0 14px 28px 0 rgba(0,0,0,0.25), 0 10px 10px 0 rgba(0,0,0,0.25)',\n fonts: {\n standard: '\"Open Sans\", arial, helvetica, serif',\n },\n },\n fonts: {\n standard: '\"Open Sans\", arial, helvetica, serif',\n },\n shadows: {\n box: '0 2px 3px -1px rgba(38, 45, 58, 0.1)',\n boxHeavy: '0 7px 15px rgba(38, 45, 58, 0.1)',\n dropdown: '0 2px 12px rgba(#262D3A, 0.2)',\n modal: '0 2px 12px rgba(38, 45, 58, 0.2)',\n },\n colors: {\n border: {\n dark: '#BBB',\n light: '#E8E8E8',\n standard: '#D3D3D3',\n transparent: 'rgba(0,0,0,0.2)',\n },\n grey: {\n darkest: '#BBB',\n dark: '#CFCFCD',\n standard: '#D8D8D8',\n light: '#DDD',\n lighter: '#F1F1F1',\n lightest: '#FAFAFA',\n },\n ember: {\n dark: '#DC280A',\n standard: '#F73415',\n light: '#FA5028',\n highlight: '#FFE1DF',\n },\n stealth: {\n darkest: '#262d3a',\n dark: '#262d3a',\n standard: '#303847',\n light: '#5A606B',\n },\n text: {\n black: '#333',\n blackLight: '#666666',\n blue: '#4285F4',\n green: '#8BC34A',\n grey: '#808080',\n greyDark: '#4A4A4A',\n greyLight: '#BBB',\n purple: '#8A4DC7',\n red: '#DB4437',\n white: '#FFF',\n yellow: '#EFB11C',\n one: '#333',\n two: '#666',\n three: '#999',\n },\n standard: {\n white: '#FFF',\n azure: '#158FEF',\n azureHighlight: '#ECF4FF',\n },\n red: {\n dark: '#DC280A',\n light: '#FA5028',\n standard: '#F73415',\n },\n blue: {\n dark: '#0369D2',\n light: '#5EB2F4',\n standard: '#158FEF',\n },\n byzantine: {\n standard: '#8a4dc7',\n light: '#8a4dc7',\n dark: '#511a8c',\n },\n flame: {\n standard: '#FB7A31',\n light: '#fb8c4c',\n dark: '#fa610b',\n },\n green: {\n dark: '#00AD09',\n light: '#46D04E',\n standard: '#1CC526',\n success: '#43A047',\n },\n lightning: {\n light: '#F4E216',\n standard: '#FFC539',\n highlight: '#FFF5DB',\n },\n material: {\n ...Material.BLUE,\n ...Material.RED,\n ...Material.GREY,\n ...Material.GREEN,\n ...Material.AMBER,\n ...Material.YELLOW,\n ...Material.GREENL,\n },\n social: Material.SOCIAL,\n },\n};\n","/** @format */\n\nimport React, { useLayoutEffect, useState } from 'react';\nimport { Transition } from 'react-transition-group';\n\nexport type FadeProps = {\n appear?: boolean;\n visible: boolean;\n duration: number;\n onExited?: () => void;\n mountOnEnter?: boolean;\n unmountOnExit?: boolean;\n fadeIn?: boolean;\n fadeOut?: boolean;\n easing?: string;\n withTimeout?: boolean;\n opacity?: number;\n};\n\nexport const Fade: React.FunctionComponent = props => {\n const {\n appear,\n children,\n mountOnEnter,\n onExited,\n duration,\n unmountOnExit,\n visible,\n withTimeout,\n easing,\n opacity,\n } = props;\n const [rendered, setRendered] = useState(false);\n\n useLayoutEffect(() => {\n if (withTimeout) {\n // This timeout is here due to the component needed to use the default styles on first render.\n setTimeout(() => setRendered(true), 0);\n } else {\n setRendered(true);\n }\n }, []);\n\n const defaultStyles = {\n transition: `opacity ${duration}ms ${easing}`,\n opacity: props.fadeIn ? 0 : opacity,\n visibility: props.fadeIn ? 'hidden' : 'visible',\n };\n const transitionStyles: any = {\n entering: { opacity, visibility: 'visible' },\n entered: { opacity, visibility: 'visible' },\n exiting: { opacity: props.fadeOut ? 0 : opacity, visibility: 'visible' },\n exited: { opacity: 0, visibility: 'hidden' },\n };\n const child = React.Children.only(children) as any;\n\n return (\n \n {(state: any) => {\n const style = {\n ...defaultStyles,\n ...(rendered ? transitionStyles[state] : {}),\n };\n return React.cloneElement(child, { style });\n }}\n \n );\n};\nFade.defaultProps = {\n appear: false,\n onExited: () => undefined,\n mountOnEnter: false,\n unmountOnExit: false,\n fadeIn: true,\n fadeOut: true,\n opacity: 1,\n easing: 'ease-in-out',\n};\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\nimport {\n breakpointSmallOnly,\n breakpointSmallAndAbove,\n breakpointMediumOnly,\n breakpointMediumAndAbove,\n breakpointMediumAndBelow,\n breakpointLargeOnly,\n breakpointLargeAndAbove,\n breakpointLargeAndBelow,\n} from 'fela-rules/breakpoints';\n\ntype MediaQueryCall = () => MediaQueryList;\n\ntype Props = {\n andAbove?: boolean;\n andBelow?: boolean;\n};\n\ntype State = {\n mediaMatches: boolean;\n};\n\nfunction mediaQueryFactory(\n baseQuery: MediaQueryCall,\n andAbove: MediaQueryCall,\n andBelow?: MediaQueryCall,\n) {\n return class MediaQuery extends React.Component {\n constructor(props: Props) {\n super(props);\n this.checkBreakpoint = this.checkBreakpoint.bind(this);\n\n this.state = {\n mediaMatches: false,\n };\n }\n\n currentQuery: MediaQueryList;\n\n static defaultProps: Props = {\n andAbove: false,\n andBelow: false,\n };\n\n bindMediaQuery() {\n this.currentQuery = (this.props.andAbove\n ? andAbove\n : this.props.andBelow\n ? andBelow\n : baseQuery)();\n\n if (typeof this.currentQuery.addListener !== 'undefined') {\n this.currentQuery.addListener(this.checkBreakpoint);\n }\n\n this.setState({ mediaMatches: this.currentQuery.matches });\n }\n\n unbindMediaQuery() {\n if (this.currentQuery) {\n this.currentQuery.removeListener(this.checkBreakpoint);\n }\n }\n\n componentDidMount() {\n this.bindMediaQuery();\n }\n\n componentWillUnmount() {\n this.unbindMediaQuery();\n }\n\n componentDidUpdate(prevProps: Props) {\n if (this.props.andAbove != prevProps.andAbove) {\n this.unbindMediaQuery();\n this.bindMediaQuery();\n }\n }\n\n checkBreakpoint(e: MediaQueryListEvent) {\n this.setState({ mediaMatches: e.matches });\n }\n\n render() {\n return this.state.mediaMatches ? <>{this.props.children} : null;\n }\n };\n}\n\nexport const Small = mediaQueryFactory(\n breakpointSmallOnly,\n breakpointSmallAndAbove,\n breakpointSmallOnly,\n);\nexport const Medium = mediaQueryFactory(\n breakpointMediumOnly,\n breakpointMediumAndAbove,\n breakpointMediumAndBelow,\n);\nexport const Large = mediaQueryFactory(\n breakpointLargeOnly,\n breakpointLargeAndAbove,\n breakpointLargeAndBelow,\n);\n","/** @format */\n\nimport * as React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { ThemeType } from 'app/theme';\nimport { applyModifiers } from 'fela-rules/modifiers';\nimport { clearfix } from 'fela-rules/layout';\n\nconst StyledDropdownButtonSection = (props: ThemeType): IStyle =>\n clearfix({\n display: 'block',\n padding: '8px 4px',\n borderBottom: `1px solid ${props.theme.colors.border.light}`,\n });\n\nexport const DropdownButtonSection = createComponent(StyledDropdownButtonSection);\n\nconst StyledDropdownButton = (): IStyle => ({\n display: 'block',\n width: '50%',\n float: 'left',\n padding: '4px',\n});\n\nexport const DropdownButton = createComponent(StyledDropdownButton, 'div');\n","/**\n * @prettier\n */\n/* tslint:disable:max-classes-per-file */\n/* ignore file coverage */\n\nimport React from 'react';\nimport { omit } from 'lodash';\n\nimport {\n BaseIconButton,\n BaseDefaultProps,\n DefaultProps,\n PublicBaseIconButtonProps,\n} from './component';\n\ntype IconButtonProps = {\n hoverInteractiveOpacity?: number;\n focusInteractiveOpacity?: number;\n} & PublicBaseIconButtonProps;\n\nexport class IconButton extends React.Component {\n static defaultProps: Pick<\n IconButtonProps,\n | 'textColor'\n | 'disabledTextColor'\n | 'hoverHighlightColor'\n | 'pressedHighlightColor'\n | keyof BaseDefaultProps\n > = {\n textColor: 'blue1000',\n disabledTextColor: 'grey300',\n hoverHighlightColor: 'blue100',\n pressedHighlightColor: 'blue200',\n ...DefaultProps,\n };\n\n render() {\n return ;\n }\n}\n\ntype UtilityIconButtonProps = PublicBaseIconButtonProps;\nexport class UtilityIconButton extends React.Component {\n static defaultProps: Pick<\n UtilityIconButtonProps,\n | 'textColor'\n | 'disabledTextColor'\n | 'hoverHighlightColor'\n | 'pressedHighlightColor'\n | keyof BaseDefaultProps\n > = {\n textColor: 'blueGrey600',\n disabledTextColor: 'grey400',\n hoverHighlightColor: 'blueGrey50',\n pressedHighlightColor: 'blueGrey100',\n ...DefaultProps,\n };\n\n render() {\n return ;\n }\n}\n","/** @format **/\n\nimport React from 'react';\nimport { Omit } from 'utils/types';\n\nimport { BaseButton, BaseButtonProps, BaseDefaultProps, DefaultProps } from './base';\n\ntype TextButtonProps = Omit;\nexport class TextButton extends React.Component {\n static defaultProps: Pick<\n TextButtonProps,\n | 'textColor'\n | 'disabledTextColor'\n | 'disabledBackgroundColor'\n | 'hoverBackgroundColor'\n | 'pressedBackgroundColor'\n | keyof BaseDefaultProps\n > = {\n ...DefaultProps,\n textColor: 'blue1000',\n disabledBackgroundColor: 'transparent',\n disabledTextColor: 'grey400',\n hoverBackgroundColor: 'blue100',\n pressedBackgroundColor: 'blue200',\n };\n\n render() {\n const { children, ...props } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}","/**\n * @prettier\n */\n/* tslint:disable:max-classes-per-file */\n/* ignore file coverage */\n\nimport React from 'react';\n\nimport { BaseButton, BaseButtonProps, BaseDefaultProps, DefaultProps } from './base';\n\ntype DefaultPropKeys =\n | 'textColor'\n | 'disabledTextColor'\n | 'backgroundColor'\n | 'hoverBackgroundColor'\n | 'pressedBackgroundColor'\n | 'disabledBackgroundColor'\n | keyof BaseDefaultProps;\ntype EmphasisButtonProps = BaseButtonProps;\nexport class EmphasisButton extends React.Component {\n static defaultProps: Pick = {\n ...DefaultProps,\n textColor: 'white',\n backgroundColor: 'blue1000',\n hoverBackgroundColor: 'blue1200',\n pressedBackgroundColor: 'blue1300',\n disabledTextColor: 'grey400',\n disabledBackgroundColor: 'grey200',\n };\n\n render() {\n const { children, ...props } = this.props;\n\n return {children};\n }\n}\n\ntype ButtonProps = BaseButtonProps;\nexport class Button extends React.Component {\n static defaultProps: Pick = {\n ...DefaultProps,\n textColor: 'grey800',\n backgroundColor: 'blueGrey50',\n hoverBackgroundColor: 'blueGrey100',\n pressedBackgroundColor: 'blueGrey200',\n disabledTextColor: 'grey400',\n disabledBackgroundColor: 'grey200',\n };\n\n render() {\n const { children, ...props } = this.props;\n\n return {children};\n }\n}\n\ntype DangerButtonProps = BaseButtonProps;\nexport class DangerButton extends React.Component {\n static defaultProps: Pick = {\n ...DefaultProps,\n textColor: 'white',\n backgroundColor: 'red600',\n hoverBackgroundColor: 'red700',\n pressedBackgroundColor: 'red900',\n disabledTextColor: 'grey400',\n disabledBackgroundColor: 'grey200',\n };\n\n render() {\n const { children, ...props } = this.props;\n\n return {children};\n }\n}\n","/** @format **/\n/* tslint:disable:max-classes-per-file */\n\nimport React from 'react';\n\nimport { BaseDefaultPropsType, BaseDefaultProps, BaseSelectionControl, PublicProps } from './base';\nimport { Switch } from './switch';\n\nexport { Switch };\n\ntype SharedDefaultPropsType = Pick<\n PublicProps,\n 'disabledColor' | 'disabledSelectedColor' | 'enabledColor' | 'enabledSelectedColor'\n>;\n\nconst SharedDefaultProps: SharedDefaultPropsType = {\n enabledColor: 'blueGrey300',\n enabledSelectedColor: 'blue1500',\n disabledColor: 'blueGrey400',\n disabledSelectedColor: 'blueGrey400',\n};\n\ntype CheckboxProps = PublicProps;\n\nexport class Checkbox extends React.Component {\n static defaultProps: SharedDefaultPropsType &\n BaseDefaultPropsType &\n Pick = {\n ...BaseDefaultProps,\n ...SharedDefaultProps,\n uncheckedIcon: 'checkbox-unchecked',\n checkedIcon: 'checkbox-checked',\n name: undefined,\n };\n\n render() {\n return ;\n }\n}\n\n// This isn't meant to be used stand alone, need to build a RadioGroup control to contain these\ntype RadioButtonProps = PublicProps;\nexport class RadioButton extends React.Component {\n static defaultProps: SharedDefaultPropsType &\n BaseDefaultPropsType &\n Pick = {\n ...BaseDefaultProps,\n ...SharedDefaultProps,\n isRadioButton: true,\n uncheckedIcon: 'radio-unchecked',\n checkedIcon: 'radio-big',\n };\n\n render() {\n return ;\n }\n}\n","/** @format */\n\nimport { IStyle } from 'fela';\nimport * as CssTypes from 'csstype';\nimport { createComponentWithProxy } from 'react-fela';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\nimport * as Colors from 'app/theme/materialDS';\nimport { Theme } from 'app/theme';\n\ntype TextStyles = {\n size: number;\n weight: 400 | 600;\n lineHeight: string | number;\n};\n\ntype TextProps = {\n forLink?: boolean;\n bold?: boolean;\n lineHeight?: string;\n fontSize?: string;\n fontWeight?: CssTypes.FontWeightProperty;\n color?: Colors.COLORS;\n inline?: boolean;\n wrapWithEllipsis?: boolean;\n alignment?: CssTypes.TextAlignProperty;\n title?: string;\n textDecorationLine?: CssTypes.TextDecorationLineProperty;\n whiteSpace?: CssTypes.WhiteSpaceProperty;\n overflowWrap?: CssTypes.OverflowWrapProperty;\n};\n\nconst StyledTextGenerator = ({ size, weight, lineHeight }: TextStyles) => (\n props: TextProps & { as: string },\n): IStyle =>\n applyModifiers(\n [\n props.forLink || props.as === 'a',\n {\n color: Theme.ds.colors.link.inactive,\n [':hover' as any]: {\n color: Theme.ds.colors.link.active,\n },\n [':active' as any]: {\n color: Theme.ds.colors.link.active,\n },\n [':focus' as any]: {\n color: Theme.ds.colors.link.active,\n },\n cursor: 'pointer',\n },\n ],\n [\n !!props.color,\n {\n color: Theme.ds.getColorByName(props.color),\n [':hover' as any]: {\n color: Theme.ds.getColorByName(props.color),\n },\n [':active' as any]: {\n color: Theme.ds.getColorByName(props.color),\n },\n [':focus' as any]: {\n color: Theme.ds.getColorByName(props.color),\n },\n },\n ],\n [\n props.bold,\n {\n fontWeight: 600,\n },\n ],\n [\n !!props.lineHeight,\n {\n lineHeight: props.lineHeight,\n },\n ],\n [\n !!props.fontSize,\n {\n fontSize: props.fontSize,\n },\n ],\n [\n !!props.fontWeight,\n {\n fontWeight: props.fontWeight,\n },\n ],\n [\n props.inline,\n {\n display: 'inline',\n },\n ],\n [\n props.wrapWithEllipsis,\n {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n ],\n [\n !!props.alignment,\n {\n textAlign: props.alignment,\n },\n ],\n [\n !!props.textDecorationLine,\n {\n textDecorationLine: props.textDecorationLine,\n },\n ],\n [\n !!props.whiteSpace,\n {\n whiteSpace: props.whiteSpace,\n },\n ],\n [\n !!props.overflowWrap,\n {\n overflowWrap: props.overflowWrap,\n },\n ],\n )({\n display: 'block',\n font: `${Theme.fonts}`,\n color: Theme.ds.getColorByName('grey800'),\n fontSize: `${size}rem`,\n fontWeight: weight,\n lineHeight: `${lineHeight}`,\n });\n\nexport const H1 = createComponentWithProxy(\n StyledTextGenerator({\n size: 2.4,\n weight: 600,\n lineHeight: 1.333,\n }),\n 'h1',\n);\n\nexport const H2 = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.8,\n weight: 600,\n lineHeight: 1.333,\n }),\n 'h2',\n);\n\nexport const H3 = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.6,\n weight: 600,\n lineHeight: 1.5,\n }),\n 'h3',\n);\n\nexport const H4 = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.4,\n weight: 600,\n lineHeight: 1.714,\n }),\n 'h4',\n);\n\nexport const LargeBody = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.6,\n weight: 400,\n lineHeight: 1.75,\n }),\n 'p',\n);\n\nexport const Body = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.4,\n weight: 400,\n lineHeight: 1.714,\n }),\n 'p',\n);\n\nexport const SmallBody = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.3,\n weight: 400,\n lineHeight: 1.850,\n }),\n 'p',\n);\n\nexport const Link = createComponentWithProxy(\n StyledTextGenerator({\n size: 1.4,\n weight: 400,\n lineHeight: 1.714,\n }),\n 'a',\n);\n\nLink.defaultProps = {\n forLink: true,\n};\n\nconst UnderlineStyle = (): IStyle => ({\n textDecorationStyle: 'dashed',\n textUnderlineOffset: '2px',\n whiteSpace: 'nowrap',\n color: Colors.GREY.grey800,\n textDecorationColor: Colors.BLUE_GREY.blueGrey300,\n});\n\nexport const Underline = createComponentWithProxy(UnderlineStyle, 'u');","/** @format **/\n\nimport { IRenderer, IStyle } from 'fela';\nimport { createComponentWithProxy } from 'react-fela';\n\nimport { applyModifiers } from 'fela-rules/modifiers';\n\nimport { Theme } from 'app/theme';\n\ntype ActiontipWrapperProps = {\n fullWidthTrigger?: boolean;\n};\n\ntype ActiontipContainerProps = {\n visible: boolean;\n alignRight?: boolean;\n};\n\nfunction StyledActiontipWrapper(props: ActiontipWrapperProps): IStyle {\n return applyModifiers([\n props.fullWidthTrigger,\n {\n width: '100%',\n },\n ])({\n position: 'relative',\n display: 'inline-block',\n });\n}\n\nexport const ActiontipWrapper = createComponentWithProxy(StyledActiontipWrapper);\n\nfunction StyledActiontipContainer(props: ActiontipContainerProps, renderer: IRenderer): IStyle {\n const transformString = 'translate(-50%, calc(-100% - 16px))';\n const rightAlignedTransformString = 'translate(calc(50% - 33px), calc(-100% - 16px))';\n\n const animateIn = () => ({\n ['0%' as any]: {\n transform: 'translate(-50%, 0px)',\n },\n ['100%' as any]: {\n transform: transformString,\n },\n });\n\n const rightAlignedAnimateIn = () => ({\n ['0%' as any]: {\n transform: 'translate(calc(50% - 33px), 0px)',\n },\n ['100%' as any]: {\n transform: rightAlignedTransformString,\n },\n });\n\n return applyModifiers(\n [\n props.visible,\n {\n animation: `${renderer.renderKeyframe(\n props.alignRight ? rightAlignedAnimateIn : animateIn,\n props,\n )} 0.4s cubic-bezier(0.0, 0.0, 0.2, 1);`,\n },\n ],\n [\n props.alignRight,\n {\n right: '0',\n left: 'initial',\n transform: rightAlignedTransformString,\n whiteSpace: 'nowrap',\n width: 'auto',\n },\n ],\n )({\n left: '50%',\n top: '0',\n transform: transformString,\n position: 'absolute',\n zIndex: 1000,\n backgroundColor: Theme.ds.getColorByName('green500'),\n color: Theme.ds.getColorByName('white'),\n padding: '10px 16px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 600,\n fontStyle: 'normal',\n width: '100%',\n maxWidth: '246px',\n });\n}\n\nexport const ActiontipContainer = createComponentWithProxy(StyledActiontipContainer);\n\nfunction StyledActiontipLabel(): IStyle {\n return {\n display: 'block',\n };\n}\n\nexport const ActiontipLabel = createComponentWithProxy(StyledActiontipLabel, 'span');\n\nfunction StyledActiontipArrow(): IStyle {\n const arrowWidthDelta = -(8 / 2) + 1;\n return applyModifiers()({\n position: 'absolute',\n bottom: `${arrowWidthDelta}px`,\n left: '50%',\n transform: 'translateX(-50%) rotate(45deg)',\n width: '16px',\n height: '16px',\n backgroundColor: Theme.ds.getColorByName('green500'),\n display: 'block',\n });\n}\n\nexport const ActiontipArrow = createComponentWithProxy(StyledActiontipArrow);\n","/** @format **/\n\nimport React from 'react';\n\nimport { Fade } from 'components/animated/fade';\n\nimport { ActiontipArrow, ActiontipContainer, ActiontipLabel, ActiontipWrapper } from './components';\nimport { IconBefore } from '../../../icon/iconBefore';\nimport { Icon } from 'components/icon';\n\nexport type ActiontipProps = {\n label: React.ReactNode;\n visible: boolean;\n hideArrow?: boolean;\n fullWidthTrigger?: boolean;\n alignRight?: boolean;\n};\nexport const Actiontip: React.FunctionComponent = ({\n children,\n label,\n visible,\n alignRight,\n hideArrow,\n fullWidthTrigger,\n}) => {\n return (\n \n {children}\n \n \n {!hideArrow && }\n \n }>{label}\n \n \n \n \n );\n};\n","/** @format */\n\nimport * as React from 'react';\nimport { Icon, IconProps } from './index';\n\ninterface Props {\n spanElement?: boolean;\n size?: '16' | '20' | '24' | '32' | '40';\n icon: React.ReactNode;\n}\n\nexport const IconAfter: React.FunctionComponent = props => {\n const classes = `text-icon-after text-icon-after--${props.size}`;\n const textClasses = `text-icon-after__icon text-icon-after__icon--${props.size}`;\n const iconClasses = `text-icon-after__text text-icon-after__text--${props.size}`;\n\n if (props.spanElement === false) {\n return (\n \n {props.icon}\n {props.children}\n \n );\n }\n\n return (\n
\n
{props.icon}
\n
{props.children}
\n
\n );\n};\n\nIconAfter.defaultProps = {\n size: '16',\n spanElement: false,\n};\n\nexport default IconAfter;\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { ThemeType } from 'app/theme';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ntype Props = {\n size?: 40 | 32 | 24;\n iconSize?: number;\n inline?: boolean;\n marginLeft?: number;\n marginRight?: number;\n color?: 'stealth' | 'grey' | 'transparent' | 'border' | 'blue';\n border?: boolean;\n clickable?: boolean;\n className?: string;\n};\n\nconst StyledIconButton = (props: Props & ThemeType): IStyle => {\n const styles: IStyle = {\n userSelect: 'none',\n width: `${props.size}px`,\n height: `${props.size}px`,\n padding: `${(props.size - props.iconSize) / 2}px`,\n textDecoration: 'none',\n outline: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n color: `#fff`,\n display: 'block',\n fontSize: 0,\n backgroundColor: `${props.theme.colors.material.grey500}`,\n };\n\n return applyModifiers(\n [\n props.clickable,\n {\n ':hover': {\n backgroundColor: `${props.theme.colors.material.grey400}`,\n },\n ':active': {\n backgroundColor: `${props.theme.colors.material.grey600}`,\n },\n ':focus': {\n backgroundColor: `${props.theme.colors.material.grey600}`,\n },\n },\n ],\n [\n props.inline,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n [\n !!props.marginRight,\n {\n marginRight: `${props.marginRight}px`,\n },\n ],\n [\n !!props.marginLeft,\n {\n marginLeft: `${props.marginLeft}px`,\n },\n ],\n [\n props.color === 'stealth',\n {\n backgroundColor: `${props.theme.colors.stealth.standard}`,\n },\n ],\n [\n props.color === 'grey',\n {\n backgroundColor: `${props.theme.colors.material.grey300}`,\n },\n ],\n [\n props.color === 'border',\n applyModifiers([\n props.clickable,\n {\n ':hover': {\n backgroundColor: 'transparent',\n border: `1px solid ${props.theme.colors.border.dark}`,\n color: props.theme.colors.text.grey,\n },\n ':active': {\n transform: 'translateY(1px)',\n backgroundColor: 'rgba(255,255,255,0.2)',\n border: `1px solid ${props.theme.colors.border.dark}`,\n color: props.theme.colors.text.grey,\n },\n ':focus': {\n transform: 'translateY(1px)',\n backgroundColor: 'rgba(255,255,255,0.2)',\n border: `1px solid ${props.theme.colors.border.dark}`,\n color: props.theme.colors.text.grey,\n },\n },\n ])({\n backgroundColor: 'transparent',\n border: `1px solid ${props.theme.colors.border.standard}`,\n color: props.theme.colors.text.grey,\n }),\n ],\n [\n props.color === 'transparent',\n applyModifiers([\n props.clickable,\n {\n ':hover': {\n backgroundColor: props.theme.colors.material.grey400,\n color: '#fff',\n },\n ':active': {\n backgroundColor: props.theme.colors.material.grey600,\n color: '#fff',\n },\n ':focus': {\n backgroundColor: props.theme.colors.material.grey600,\n color: '#fff',\n },\n },\n ])({\n backgroundColor: 'transparent',\n color: props.theme.colors.text.grey,\n }),\n ],\n [\n props.color === 'blue',\n applyModifiers([\n props.clickable,\n {\n ':hover': {\n backgroundColor: props.theme.colors.material.blue400,\n color: '#fff',\n },\n ':active': {\n backgroundColor: props.theme.colors.material.blue600,\n color: '#fff',\n },\n ':focus': {\n backgroundColor: props.theme.colors.material.blue600,\n color: '#fff',\n },\n },\n ])({\n backgroundColor: 'transparent',\n color: props.theme.colors.material.blue400,\n }),\n ],\n )(styles);\n};\n\nexport const IconButton = createComponent(StyledIconButton, 'div', ['onClick', 'className']);\n\nIconButton.defaultProps = {\n size: 24,\n iconSize: 16,\n marginRight: 0,\n marginLeft: 0,\n inline: false,\n clickable: true,\n};\n\nexport const IconButtonAsLink = createComponent(StyledIconButton, 'a', [\n 'href',\n 'className',\n]);\n\nIconButtonAsLink.defaultProps = {\n size: 24,\n iconSize: 16,\n marginRight: 0,\n marginLeft: 0,\n inline: false,\n clickable: true,\n};\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\nimport classnames from 'classnames';\n\nimport { getTextColorClass, COLOR_TYPES } from 'components/text';\nimport { SIZES, HEIGHTS } from './constants';\nimport { isEmpty, isNil } from 'lodash';\nimport { Flex } from 'components/flex';\nimport { Padding } from 'components/layout';\nimport { COLORS } from 'app/theme/materialDS';\nimport { Theme } from 'app/theme';\n\nexport * from './iconBefore';\nexport * from './iconAfter';\nexport * from './disc';\nexport * from './button';\nexport * from './integration';\n\nexport interface IconProps {\n set?: 'icomoon' | 'flat';\n size?: SIZES | null;\n height?: HEIGHTS;\n type?: string;\n color?: COLOR_TYPES;\n dsColor?: COLORS;\n extraClasses?: string;\n inButton?: 'after' | 'before' | null;\n center?: boolean;\n alignCenter?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n inline?: boolean;\n after?: boolean;\n before?: boolean;\n styles?: object;\n title?: string;\n}\n\nexport const Icon: React.FunctionComponent = props => {\n const classNames = classnames(\n {\n 'raygun-icon': props.set === 'icomoon',\n 'flat-icon': props.set === 'flat',\n [`icon--${props.type}`]: props.set === 'icomoon',\n [`${props.type}-icon`]: props.set === 'flat',\n [`icon-${props.size}`]: !isNil(props.size),\n [`icon--height-${props.height}`]: props.height !== undefined,\n 'icon-after': props.inButton === 'after',\n 'icon-before': props.inButton === 'before',\n 'icon-center': props.center,\n clickable: !isNil(props.onClick),\n },\n getTextColorClass(props.color),\n `${props.extraClasses}`,\n );\n\n const styles: { [styleName: string]: any } = {};\n if (props.dsColor) {\n styles.color = Theme.ds.getColorByName(props.dsColor);\n }\n if (props.inline) {\n styles.display = 'inline-block';\n }\n\n const spanProps = {\n className: classNames,\n onClick: props.onClick,\n style: { ...styles, ...(props.styles || {}) },\n title: props.title,\n };\n\n if (isEmpty(styles)) {\n delete spanProps.style;\n }\n\n if (props.alignCenter) {\n spanProps.style = {\n ...spanProps.style,\n marginLeft: 'auto',\n marginRight: 'auto',\n };\n }\n\n const renderedIcon = ;\n\n if (isNil(props.children)) {\n return renderedIcon;\n }\n\n return (\n \n \n \n {renderedIcon}\n \n \n\n {props.children}\n \n );\n};\n\nIcon.defaultProps = {\n set: 'flat',\n size: 16,\n type: 'dropdown',\n extraClasses: '',\n inButton: null,\n center: false,\n inline: false,\n};\n","/** @format */\n\nimport * as React from 'react';\n\nimport { Icon } from 'components/icon';\n\ninterface State {\n text: string;\n}\n\nexport interface SearchProps {\n onInput: (text: string) => void;\n onSubmit?: () => void;\n placeholder?: string;\n focus?: boolean;\n text?: string;\n}\n\nexport class Search extends React.Component {\n constructor(props: SearchProps) {\n super(props);\n\n this.state = { text: props.text ? props.text : '' };\n\n this.emptySearch = this.emptySearch.bind(this);\n this.onSearch = this.onSearch.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentWillReceiveProps(nextProps: SearchProps) {\n if (nextProps.text !== this.props.text) {\n this.setState({ text: nextProps.text });\n }\n if (nextProps.focus !== this.props.focus && nextProps.focus) {\n this.refocus = true;\n }\n }\n\n public state: State = {\n text: '',\n };\n\n public static defaultProps: Partial = {\n placeholder: 'Search...',\n focus: false,\n };\n\n searchInput: HTMLInputElement;\n\n emptySearch() {\n this.setState(() => {\n return { text: '' };\n });\n this.searchInput.focus();\n this.props.onInput('');\n\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n }\n\n onSearch(e: React.KeyboardEvent) {\n if (e.key === 'Escape') {\n this.emptySearch();\n } else if (e.key === 'Enter') {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n }\n }\n\n handleChange(event: React.ChangeEvent) {\n const text = event.target.value;\n this.setState({ text: text });\n this.props.onInput(text);\n }\n\n componentDidMount() {\n if (this.props.focus) {\n this.searchInput.focus();\n if (document.activeElement != this.searchInput) {\n this.refocus = true;\n }\n }\n }\n\n refocus: boolean = false;\n\n componentDidUpdate() {\n if (this.refocus) {\n this.refocus = false;\n this.searchInput.focus();\n }\n }\n\n render() {\n let close;\n\n if (this.state.text.length > 0) {\n close = (\n \n );\n }\n\n return (\n
\n
{close}
\n
\n \n
\n {\n this.searchInput = input;\n }}\n onChange={this.handleChange}\n tabIndex={1}\n onKeyUp={this.onSearch}\n onBlur={this.props.onSubmit}\n type=\"text\"\n />\n
\n );\n }\n}\n\nexport default Search;\n","/** @format */\n\nimport * as React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { clearfix } from 'fela-rules/layout';\nimport { screenLargeAndAbove } from 'fela-rules/breakpoints';\n\ntype PassedProps = {\n width: number;\n gutter?: number;\n};\n\ntype Props = {\n sidebar: React.ReactNode;\n} & PassedProps;\n\nconst StyledContainer = (props: PassedProps): IStyle =>\n clearfix({\n display: 'block',\n ...screenLargeAndAbove({\n position: 'relative',\n paddingRight: `${props.width}px`,\n }),\n });\n\nconst Container = createComponent(StyledContainer);\n\nconst StyledSidebar = (props: PassedProps): IStyle => ({\n display: 'block',\n ...screenLargeAndAbove({\n position: 'absolute',\n right: '0',\n top: '0',\n width: `${props.width}px`,\n paddingLeft: `${props.gutter}px`,\n height: '100%',\n }),\n});\n\nconst Sidebar = createComponent(StyledSidebar);\n\nexport const SidebarLayout: React.FunctionComponent = props => (\n \n {props.children}\n {props.sidebar}\n \n);\n\nSidebarLayout.defaultProps = {\n gutter: 16,\n};\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent, FelaInjectedProps } from 'react-fela';\nimport { isEmpty, isNil } from 'lodash';\n\nimport { applyModifiers } from 'fela-rules/modifiers';\nimport {\n screenLargeAndAbove,\n screenLargeAndBelow,\n screenMediumAndAbove,\n screenMediumOnly,\n screenSmallOnly,\n screenXLargeOnly,\n} from 'fela-rules/breakpoints';\nimport { ReactComponent } from 'utils/types';\n\ntype BaseProps = {\n top?: string | number;\n bottom?: string | number;\n left?: string | number;\n right?: string | number;\n applyToChildren?: boolean;\n inline?: boolean;\n onlyOnSmall?: boolean;\n notOnSmall?: boolean;\n onlyLargeAndBelow?: boolean;\n all?: string | number;\n units?: string;\n removeForLastChild?: boolean;\n};\n\ntype Props = BaseProps & {\n smallScreen?: BaseProps;\n mediumScreens?: BaseProps;\n mediumScreenOnly?: BaseProps;\n largeScreens?: BaseProps;\n largeScreensAndBelow?: BaseProps;\n xLargeScreensOnly?: BaseProps;\n as?: string;\n};\n\nconst LayoutStyleFactory = (type: 'padding' | 'margin') => {\n const StyledSpacingComponent = (props: Props): IStyle =>\n applyModifiers(\n [!isEmpty(props.smallScreen), applyBreakpointProps(type, props.smallScreen, screenSmallOnly)],\n [\n !isEmpty(props.mediumScreenOnly),\n applyBreakpointProps(type, props.mediumScreenOnly, screenMediumOnly),\n ],\n [\n !isEmpty(props.mediumScreens),\n applyBreakpointProps(type, props.mediumScreens, screenMediumAndAbove),\n ],\n [\n !isEmpty(props.largeScreens),\n applyBreakpointProps(type, props.largeScreens, screenLargeAndAbove),\n ],\n [\n !isEmpty(props.largeScreensAndBelow),\n applyBreakpointProps(type, props.largeScreensAndBelow, screenLargeAndBelow),\n ],\n [\n !isEmpty(props.xLargeScreensOnly),\n applyBreakpointProps(type, props.xLargeScreensOnly, screenXLargeOnly),\n ],\n [props.inline, { display: 'inline-block' }],\n )(applyPaddingModifiers(type, props));\n\n return StyledSpacingComponent;\n};\n\nconst StyledPaddingComponent = LayoutStyleFactory('padding');\nconst StyledMarginComponent = LayoutStyleFactory('margin');\n\nfunction applyBreakpointProps(\n type: 'padding' | 'margin',\n baseProps: BaseProps,\n mediaQuery: (query: IStyle) => IStyle,\n): IStyle {\n return mediaQuery(applyPaddingModifiers(type, baseProps));\n}\n\nfunction applyPaddingModifiers(\n type: 'padding' | 'margin',\n baseProps: BaseProps,\n style: IStyle = {},\n): IStyle {\n const units = baseProps.units || 'px';\n const builtStyleRules = applyModifiers(\n [\n !isNil(baseProps.all),\n {\n [`${type}Top`]: `${baseProps.all}${units}`,\n [`${type}Bottom`]: `${baseProps.all}${units}`,\n [`${type}Left`]: `${baseProps.all}${units}`,\n [`${type}Right`]: `${baseProps.all}${units}`,\n },\n ],\n [\n !isNil(baseProps.top),\n {\n [`${type}Top`]: `${baseProps.top}${units}`,\n },\n ],\n [\n !isNil(baseProps.bottom),\n {\n [`${type}Bottom`]: `${baseProps.bottom}${units}`,\n },\n ],\n [\n !isNil(baseProps.left),\n {\n [`${type}Left`]: `${baseProps.left}${units}`,\n },\n ],\n [\n !isNil(baseProps.right),\n {\n [`${type}Right`]: `${baseProps.right}${units}`,\n },\n ],\n [\n !isNil(baseProps.removeForLastChild),\n {\n ['&:last-child' as any]: {\n [`${type}Top`]: 0,\n [`${type}Bottom`]: 0,\n [`${type}Left`]: 0,\n [`${type}Right`]: 0,\n },\n },\n ],\n )(style);\n\n if (baseProps.onlyOnSmall) {\n return screenSmallOnly(builtStyleRules);\n }\n\n if (baseProps.onlyLargeAndBelow) {\n return screenLargeAndBelow(builtStyleRules);\n }\n\n if (baseProps.notOnSmall) {\n return screenMediumAndAbove(builtStyleRules);\n }\n\n return builtStyleRules;\n}\n\nconst PaddingComponent = createComponent(StyledPaddingComponent, 'div', ['aria-label']);\nconst MarginComponent = createComponent(StyledMarginComponent, 'div', ['aria-label']);\n\ntype LayoutComponentProps = Props & FelaInjectedProps & React.HTMLProps;\n\nconst LayoutComponentFactory = (\n LayoutComponent: ReactComponent,\n displayName: string,\n): React.FunctionComponent => {\n const BuiltLayoutComponent: React.FunctionComponent = ({\n applyToChildren,\n children,\n ...props\n }) => {\n const mappedChildren = React.Children.map(children, child => {\n if (applyToChildren) {\n return {child};\n }\n\n return child;\n });\n\n if (applyToChildren) {\n return <>{mappedChildren};\n }\n\n return {children};\n };\n\n BuiltLayoutComponent.defaultProps = {\n top: null,\n bottom: null,\n left: null,\n right: null,\n smallScreen: {},\n mediumScreens: {},\n mediumScreenOnly: {},\n largeScreens: {},\n largeScreensAndBelow: {},\n xLargeScreensOnly: {},\n applyToChildren: false,\n units: 'px',\n };\n BuiltLayoutComponent.displayName = displayName;\n\n return BuiltLayoutComponent;\n};\n\nexport const Padding = LayoutComponentFactory(PaddingComponent, 'Padding');\nexport const Margin = LayoutComponentFactory(MarginComponent, 'Margin');\n","/** @format */\n\nimport * as React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { ThemeType } from 'app/theme';\n\nconst StyledModalHeader = (props: ThemeType): IStyle => ({\n padding: '12px 24px',\n borderBottom: `1px solid ${props.theme.colors.border.standard}`,\n});\n\nexport const ModalHeader = createComponent(StyledModalHeader);\n\nexport const ModalHeaderWithTitle: React.FunctionComponent<{}> = ({ children }) => {\n return (\n \n
\n {children}\n
\n
\n );\n};\n","/** @format */\n\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { ThemeType } from 'app/theme';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ntype FooterProps = {\n noBorder?: boolean;\n smallPadding?: boolean;\n};\n\nconst StyledModalFooter = (props: FooterProps & ThemeType): IStyle => {\n const styles = {\n padding: '24px',\n borderTop: `1px solid ${props.theme.colors.border.standard}`,\n };\n\n return applyModifiers(\n [\n props.noBorder,\n {\n border: 'none',\n },\n ],\n [\n props.smallPadding,\n {\n padding: '12px',\n },\n ],\n )(styles);\n};\n\nexport const ModalFooter = createComponent(StyledModalFooter);\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\n\nimport { PopupProps as ModalProps } from 'app/popups/models';\n\nimport { ModalHeader, ModalHeaderWithTitle } from './header';\nimport { ModalFooter } from './footer';\nimport { ModalClose } from './close';\nimport { ModalBody, ModalBodyContent, ModalBodyProps } from './body';\nimport { ModalMessage } from './message';\nimport { ModalBase, ModalBaseProps } from './modalbase';\n\ntype Props = {\n header: React.ReactNode;\n footer?: React.ReactNode;\n showClose?: boolean;\n modalBody?: Partial;\n} & ModalBaseProps &\n ModalProps;\n\nclass Modal extends React.Component {\n static defaultProps: Partial = {\n width: 640,\n footer: null,\n header: null,\n showClose: true,\n closeOnBackdropClick: true,\n modalBody: {},\n };\n\n render() {\n return (\n \n {this.props.header}\n {this.renderClose()}\n {this.props.children}\n {this.props.footer}\n \n );\n }\n\n renderClose() {\n if (this.props.showClose) {\n return this.props.close(this.props.id)} />;\n }\n\n return null;\n }\n}\n\nexport {\n ModalProps,\n ModalBase,\n Modal,\n ModalHeader,\n ModalHeaderWithTitle,\n ModalFooter,\n ModalClose,\n ModalBodyContent,\n ModalMessage,\n};\n","/** @format */\n\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\n\ntype Props = {\n color?: 'grey' | 'white' | null;\n noBorder?: boolean;\n padding?: '12' | '24' | 'top-tight' | null;\n extraClasses?: string;\n};\n\nexport const ModuleHeader: React.FunctionComponent = props => {\n const classes = classnames(\n 'module__header',\n {\n 'module__header--white': props.color === 'white',\n 'module__header--grey': props.color === 'grey',\n 'module__header--no-border': props.noBorder,\n 'module__header--padding': props.padding === '24',\n 'module__header--padding-tight': props.padding === '12',\n 'module__header--padding-top-tight': props.padding === 'top-tight',\n },\n props.extraClasses,\n );\n\n return
{props.children}
;\n};\n\nModuleHeader.defaultProps = {\n color: 'grey',\n padding: null,\n noBorder: false,\n};\n\nexport default ModuleHeader;\n\ntype ModuleHeaderWithButtonProps = {\n button: React.ReactNode;\n largeButton?: boolean;\n} & Props;\n\nexport const ModuleHeaderWithNoButton: React.FunctionComponent = props => {\n return (\n \n {props.children}\n \n );\n};\n\nexport const ModuleHeaderWithButton: React.FunctionComponent<\n ModuleHeaderWithButtonProps\n> = props => {\n const moduleSettingClasses = classnames('module-header-setting', {\n 'module-header-setting--large-button': props.largeButton,\n });\n\n return (\n \n
\n
{props.children}
\n
{props.button}
\n
\n
\n );\n};\n\nconst StyledHeaderContainer = (): IStyle => ({\n display: 'flex',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n});\n\nconst HeaderContainer = createComponent(StyledHeaderContainer);\n\nconst StyledHeaderItem = (): IStyle => ({\n lineHeight: '20px',\n});\n\nconst HeaderItem = createComponent(StyledHeaderItem);\n\ntype ModuleHeaderWithTextProps = {\n link: React.ReactNode;\n} & Props;\n\nexport const ModuleHeaderWithText: React.FunctionComponent = props => (\n \n \n {props.children}\n {props.link}\n \n \n);\n","/** @format */\n\nimport * as React from 'react';\n\nimport { ThemeType } from 'app/theme';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ntype Props = {\n type?: 'grey' | 'red' | 'dark' | 'azureHighlight' | 'blue' | 'success' | 'accepted' | 'yellow';\n paddingVertical?: '40' | '8' | string;\n paddingHorizontal?: string;\n paddingTopOnly?: boolean;\n shadow?: boolean;\n scrollX?: boolean;\n borderless?: boolean;\n rounded?: boolean;\n transparent?: boolean;\n onClick?: (e: React.MouseEvent) => void;\n};\n\nconst StyledPanel = (props: Props & ThemeType): IStyle => {\n const base: IStyle = {\n padding: '16px',\n borderRadius: '4px',\n border: `1px solid ${props.theme.colors.border.standard}`,\n };\n\n return applyModifiers(\n [\n props.type === 'grey',\n {\n backgroundColor: `${props.theme.colors.grey.lighter}`,\n borderColor: `${props.theme.colors.border.standard}`,\n ...applyModifiers([\n !!props.onClick,\n {\n cursor: 'pointer',\n backgroundColor: `${props.theme.colors.material.grey300}`,\n ':hover': {\n backgroundColor: `${props.theme.colors.material.grey200}`,\n },\n ':active': {\n backgroundColor: `${props.theme.colors.material.grey400}`,\n },\n },\n ])({}),\n },\n ],\n [\n props.type === 'yellow',\n {\n backgroundColor: '#FFF8E1',\n borderColor: '#FFBF00',\n borderLeftWidth: '6px',\n borderRadius: 0,\n padding: '20px 24px',\n },\n ],\n [\n props.type === 'dark',\n {\n backgroundColor: '#272822',\n borderColor: `#272822`,\n },\n ],\n [\n props.type === 'red',\n {\n backgroundColor: `${props.theme.colors.material.red50}`,\n borderColor: `${props.theme.colors.material.red500}`,\n },\n ],\n [\n props.type === 'blue',\n {\n backgroundColor: `${props.theme.colors.material.blue50}`,\n borderColor: `${props.theme.colors.material.blue500}`,\n },\n ],\n [\n props.type === 'azureHighlight',\n {\n backgroundColor: `${props.theme.colors.standard.azureHighlight}`,\n borderColor: `${props.theme.colors.standard.azureHighlight}`,\n },\n ],\n [\n props.type === 'success' || props.type === 'accepted',\n {\n borderColor: props.theme.colors.green.success,\n color: props.theme.colors.green.success,\n },\n ],\n [\n props.type === 'success',\n {\n backgroundColor: '#F5FAF5',\n },\n ],\n [\n props.type === 'accepted',\n {\n backgroundColor: `rgba(67, 160, 71, .1)`,\n },\n ],\n [\n props.borderless,\n {\n border: 'none',\n },\n ],\n [\n props.paddingTopOnly,\n {\n paddingTop: '8px',\n paddingBottom: '0',\n },\n ],\n [\n !!props.paddingVertical,\n {\n paddingTop: `${props.paddingVertical}px`,\n paddingBottom: `${props.paddingVertical}px`,\n },\n ],\n [\n !!props.paddingHorizontal,\n {\n paddingLeft: `${props.paddingHorizontal}px`,\n paddingRight: `${props.paddingHorizontal}px`,\n },\n ],\n [\n props.shadow,\n {\n boxShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)',\n },\n ],\n [\n props.scrollX,\n {\n overflowX: 'auto',\n },\n ],\n [\n !props.rounded,\n {\n borderRadius: '0',\n },\n ],\n [\n props.transparent,\n {\n backgroundColor: 'transparent',\n },\n ],\n )(base);\n};\n\nexport const Panel = createComponent(StyledPanel, 'div', ['onClick']);\n\nPanel.defaultProps = {\n type: null,\n paddingTopOnly: false,\n paddingVertical: null,\n paddingHorizontal: null,\n borderless: false,\n shadow: false,\n scrollX: false,\n rounded: true,\n transparent: false,\n};\n\nexport default Panel;\n","/** @format */\n\nimport * as React from 'react';\nimport classnames from 'classnames';\nimport { isNil } from 'lodash';\n\ntype COLOR_TYPES =\n | 'white'\n | 'black'\n | 'grey'\n | 'light'\n | 'dark'\n | 'blue'\n | 'red'\n | 'green'\n | 'yellow'\n | 'purple';\n\nconst getTextColorClass = (color: COLOR_TYPES) => {\n return classnames({\n 'text-white': color === 'white',\n 'text-black': color === 'black',\n 'text-grey': color === 'grey',\n 'text-light': color === 'light',\n 'text-dark': color === 'dark',\n 'text-blue': color === 'blue',\n 'text-red': color === 'red',\n 'text-green': color === 'green',\n 'text-yellow': color === 'yellow',\n 'text-purple': color === 'purple',\n });\n};\n\ntype TEXT_SIZES = 'tiny' | 'small' | 'medium' | 'large';\n\nconst getTextSizeClass = (size: TEXT_SIZES) => {\n return classnames({\n 'text-size-tiny': size === 'tiny', // 10px\n 'text-size-small': size === 'small', // 12px\n 'text-size-medium': size === 'medium', // 14px\n 'text-size-large': size === 'large', // 16px\n });\n};\n\ntype ALIGNMENTS = 'left' | 'right' | 'center';\n\nconst getTextAlignmentClass = (alignment: ALIGNMENTS) => {\n return classnames({\n 'text-left': alignment === 'left',\n 'text-center': alignment === 'center',\n 'text-right': alignment === 'right',\n });\n};\n\ntype WEIGHTS = 'normal' | 'semi-bold' | 'bold';\n\nconst getTextWeightClass = (weight: WEIGHTS) => {\n return classnames({\n 'text-weight-normal': weight === 'normal',\n 'text-weight-semi-bold': weight === 'semi-bold',\n 'text-weight-bold': weight === 'bold',\n });\n};\n\ntype LAYOUTS = 'block' | 'inline' | 'inline-block';\n\nconst getTextLayoutClass = (layout: LAYOUTS) => {\n return classnames({\n 'text-layout-block': layout === 'block',\n 'text-layout-inline': layout === 'inline',\n 'text-layout-inline-block': layout === 'inline-block',\n });\n};\n\ninterface TextProps {\n size?: 'tiny' | 'small' | 'medium' | 'large';\n height?: '16' | '24' | '32' | '40';\n alignment?: ALIGNMENTS;\n color?: COLOR_TYPES;\n uppercase?: boolean;\n caps?: boolean;\n ellipsis?: boolean;\n break?: boolean;\n mono?: boolean;\n weight?: WEIGHTS;\n layout?: LAYOUTS;\n title?: string;\n inlineBlock?: boolean;\n}\n\nconst Text: React.FunctionComponent = props => {\n const classNames = classnames(\n {\n 'line-height-16': props.height === '16',\n 'line-height-24': props.height === '24',\n 'line-height-32': props.height === '32',\n 'line-height-40': props.height === '40',\n 'text-uppercase': props.uppercase,\n 'text-capitalize': props.caps,\n 'text-ellipsis': props.ellipsis,\n 'text-break': props.break,\n 'text-mono': props.mono,\n 'text-layout-inline-block': props.inlineBlock,\n },\n getTextAlignmentClass(props.alignment),\n getTextSizeClass(props.size),\n getTextColorClass(props.color),\n getTextWeightClass(props.weight),\n getTextLayoutClass(props.layout),\n );\n\n const elementProps: { title?: string } = {};\n\n if (!isNil(props.title)) {\n elementProps.title = props.title;\n }\n\n return (\n

\n {props.children}\n

\n );\n};\n\nText.defaultProps = {\n caps: false,\n uppercase: false,\n ellipsis: false,\n break: false,\n};\n\nexport enum HEADING_CLASSES {\n ZERO = 'heading-size-0',\n ONE = 'heading-size-1',\n TWO = 'heading-size-2',\n THREE = 'heading-size-3',\n FOUR = 'heading-size-4',\n FIVE = 'heading-size-5',\n}\n\ntype TypographyProps = {\n alignment?: ALIGNMENTS;\n break?: boolean;\n};\n\nconst Typography: React.FunctionComponent = props => {\n const classNames = classnames(\n 'typography',\n {\n 'text-break': props.break,\n },\n getTextAlignmentClass(props.alignment),\n );\n\n return
{props.children}
;\n};\n\nexport default Text;\n\nexport {\n getTextSizeClass,\n getTextColorClass,\n getTextAlignmentClass,\n COLOR_TYPES,\n Text,\n Typography,\n};\n\nexport { AlignText } from './alignText';\n","/** @format */\n\nimport * as React from 'react';\nimport { createComponent } from 'react-fela';\nimport { isNil } from 'lodash';\n\nimport { screenLargeAndAbove, screenMediumAndAbove } from \"fela-rules/breakpoints\";\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ninterface Props {\n width: string | number;\n largeAndAboveWidth?: number;\n units?: string;\n inline?: boolean;\n center?: boolean;\n}\n\nconst getUnits = (units: string) => {\n return units ? units : 'px';\n};\n\nconst StyledWidth = (props: Props) =>\n applyModifiers(\n [\n !isNil(props.largeAndAboveWidth),\n {\n ...screenLargeAndAbove({\n width: `${props.largeAndAboveWidth}${getUnits(props.units)}`,\n }),\n },\n ],\n [props.center, { margin: '0 auto' }],\n [\n props.inline,\n {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n ],\n )({\n display: 'block',\n width: `${props.width}${getUnits(props.units)}`,\n maxWidth: `${props.width}${getUnits(props.units)}`,\n });\n\nexport const Width = createComponent(StyledWidth);\n\ntype MaxWidthProps = {\n width?: string | number;\n mediumAndAboveWidth?: string | number;\n largeAndAboveWidth?: string | number;\n units?: string;\n center?: boolean;\n inline?: boolean;\n};\n\nconst StyledMaxWidth = (props: MaxWidthProps) =>\n applyModifiers(\n [\n props.center,\n {\n margin: '0 auto',\n },\n ],\n [\n !isNil(props.width),\n {\n width: '100%',\n maxWidth: `${props.width}${getUnits(props.units)}`,\n },\n ],\n [\n !isNil(props.mediumAndAboveWidth),\n {\n ...screenMediumAndAbove({\n width: '100%',\n maxWidth: `${props.mediumAndAboveWidth}${getUnits(props.units)}`,\n }),\n },\n ],\n [\n !isNil(props.largeAndAboveWidth),\n {\n ...screenLargeAndAbove({\n width: '100%',\n maxWidth: `${props.largeAndAboveWidth}${getUnits(props.units)}`,\n }),\n },\n ],\n )({\n display: props.inline ? 'inline-block' : 'block',\n });\n\nexport const MaxWidth = createComponent(StyledMaxWidth, 'div');\n\nMaxWidth.defaultProps = {\n units: 'px',\n center: false,\n};","/** @format */\n\n// Constants used for error messages\n\n// Our defined errors\nconst SERVER_FAILURE = \"Status code '500' received from fetch call\";\nconst WRONG_PATH_404 = \"Status code '404' received from fetch call\";\nconst ALREADY_EXISTS = \"Status code '400' received from fetch call\";\nconst UNAUTHORIZED = \"Status code '401' or '403' received from fetch call\";\nconst PAYMENT_REQUIRED = \"Status code '402' received from fetch call\";\nconst CONFLICT = \"Status code '409' received from network call\";\n\n// Browser thrown\nconst FAILED_TO_FETCH = 'Failed to fetch';\n\nexport const ERRORS = {\n SERVER_FAILURE,\n WRONG_PATH_404,\n FAILED_TO_FETCH,\n ALREADY_EXISTS,\n UNAUTHORIZED,\n PAYMENT_REQUIRED,\n CONFLICT,\n};\n","/** @format */\n\nimport { IStyle } from 'fela';\nimport { isNil } from 'lodash';\n\nconst preSidebar = 200;\nconst scrollbarWidth = 20;\nconst screenXXLarge = 1440;\nconst screenXLarge = 960 + scrollbarWidth + preSidebar;\nconst screenLarge = 840 + scrollbarWidth + preSidebar;\nexport const screenMedium = 640;\nconst screenSmall = 0;\n\nexport const breakpoints = {\n screenSmall,\n screenMedium,\n screenLarge,\n screenXLarge,\n screenXXLarge,\n};\n\nexport const screenXXLargeOnly = (styles: IStyle) => makeMediaQuery(styles, screenXXLarge);\n\nexport const screenXXLargeBelow = (styles: IStyle) =>\n makeMediaQuery(styles, undefined, screenXXLarge);\n\nexport const screenXLargeAndAbove = (styles: IStyle) => makeMediaQuery(styles, screenXLarge);\nexport const screenXLargeOnly = (styles: IStyle) =>\n makeMediaQuery(styles, screenXLarge, screenXXLarge);\n\nexport const screenXLargeAndBelow = (styles: IStyle) =>\n makeMediaQuery(styles, undefined, screenXLarge);\n\nexport const screenLargeAndAbove = (styles: IStyle) => makeMediaQuery(styles, screenLarge);\nexport const screenLargeOnly = (styles: IStyle) =>\n makeMediaQuery(styles, screenLarge, screenXLarge);\n\nexport const screenLargeAndBelow = (styles: IStyle) =>\n makeMediaQuery(styles, undefined, screenLarge);\n\nexport const screenMediumAndAbove = (styles: IStyle) => makeMediaQuery(styles, screenMedium);\n\nexport const screenMediumOnly = (styles: IStyle) =>\n makeMediaQuery(styles, screenMedium, screenLarge);\n\nexport const screenMediumAndBelow = (styles: IStyle) =>\n makeMediaQuery(styles, undefined, screenMedium);\n\nexport const screenSmallAndAbove = (styles: IStyle) => makeMediaQuery(styles, screenSmall);\nexport const screenSmallOnly = (styles: IStyle) =>\n makeMediaQuery(styles, screenSmall, screenMedium);\n\nexport const matchBreakpointOrAbove = (breakpoint: number) =>\n window.matchMedia(`only screen and (min-width: ${breakpoint}px)`);\n\nexport const matchBreakpointOrBelow = (breakpoint: number) =>\n window.matchMedia(`only screen and (max-width: ${breakpoint - 1}px)`);\n\nexport const matchBreakpoint = (breakpoint: number, nextBreakpoint: number) =>\n window.matchMedia(\n `only screen and (min-width: ${breakpoint}px) and (max-width: ${nextBreakpoint - 1}px)`,\n );\n\nexport const breakpointSmallOnly = () => matchBreakpoint(screenSmall, screenMedium);\nexport const breakpointSmallAndAbove = () => matchBreakpointOrAbove(screenSmall);\n\nexport const breakpointMediumOnly = () => matchBreakpoint(screenMedium, screenLarge);\nexport const breakpointMediumAndAbove = () => matchBreakpointOrAbove(screenMedium);\nexport const breakpointMediumAndBelow = () => matchBreakpointOrBelow(screenLarge);\n\nexport const breakpointLargeOnly = () => matchBreakpoint(screenLarge, screenXLarge);\nexport const breakpointLargeAndAbove = () => matchBreakpointOrAbove(screenLarge);\nexport const breakpointLargeAndBelow = () => matchBreakpointOrBelow(screenXLarge);\n\nexport function makeMediaQuery(\n styles: IStyle,\n minWidth: number = undefined,\n maxWidth: number = undefined,\n) {\n // breakpoint up\n if (minWidth >= 0 && isNil(maxWidth)) {\n return {\n [`@media only screen and (min-width: ${minWidth}px)`]: {\n ...styles,\n },\n };\n }\n // breakpoint down\n else if (isNil(minWidth) && maxWidth >= 0) {\n return {\n [`@media only screen and (max-width: ${maxWidth - 1}px)`]: {\n ...styles,\n },\n };\n }\n // breakpoint only\n else if (minWidth >= 0 && maxWidth >= 0) {\n return {\n [`@media only screen and (min-width: ${minWidth}px) and (max-width: ${maxWidth - 1}px)`]: {\n ...styles,\n },\n };\n } else {\n throw new Error('must specify one of or both of minWidth/maxWidth');\n }\n}\n","/** @format **/\n\nimport { IStyle } from 'fela';\nimport { createComponent, createComponentWithProxy } from 'react-fela';\nimport { screenSmallOnly, makeMediaQuery, breakpoints } from 'fela-rules/breakpoints';\n\nimport { Theme } from 'app/theme';\n\nconst StyledContainersWrapper = (): IStyle => ({\n top: '0',\n left: '0',\n height: '100%',\n width: '100%',\n});\nexport const ContainersWrapper = createComponent(StyledContainersWrapper);\n\nconst StyledLeftContainer = (): IStyle => ({\n backgroundColor: Theme.colors.standard.white,\n minWidth: '520px',\n width: '50%',\n\n ...makeMediaQuery(\n {\n display: 'block',\n minWidth: '0',\n width: '100%',\n },\n breakpoints.screenSmall,\n 1024,\n ),\n\n ...makeMediaQuery(\n {\n padding: '32px 64px 0 64px',\n },\n 1024,\n ),\n\n ...makeMediaQuery(\n {\n padding: '24px',\n },\n breakpoints.screenMedium,\n 1024,\n ),\n\n ...screenSmallOnly({\n padding: '24px 24px 0 24px',\n }),\n});\nexport const LeftContainer = createComponentWithProxy(StyledLeftContainer);\n\nconst StyledLeftContainerWrapper = (): IStyle => ({\n maxWidth: '480px',\n margin: '0 auto',\n});\nexport const LeftContainerWrapper = createComponentWithProxy(StyledLeftContainerWrapper);\n\nconst StyledSignInLink = (): IStyle => ({\n fontWeight: 600,\n color: Theme.ds.colors.link.inactive,\n [':hover' as any]: {\n color: Theme.ds.colors.link.active,\n },\n [':active' as any]: {\n color: Theme.ds.colors.link.active,\n },\n [':focus' as any]: {\n color: Theme.ds.colors.link.active,\n },\n});\nexport const SignInLink = createComponentWithProxy(StyledSignInLink, 'a');\n\nconst StyledSignInLinkWrapper = (): IStyle => ({\n textAlign: 'center',\n});\nexport const SignInLinkWrapper = createComponentWithProxy(StyledSignInLinkWrapper);\n\nconst StyledLogoImage = (): IStyle => ({\n width: '152px',\n});\nexport const LogoImage = createComponentWithProxy(StyledLogoImage, 'img');\n\nconst StyledTitleWrapper = (): IStyle => ({\n marginTop: '96px',\n marginBottom: '32px',\n\n ...makeMediaQuery(\n {\n marginTop: '64px',\n },\n breakpoints.screenMedium,\n 1024,\n ),\n\n ...screenSmallOnly({\n display: 'none',\n }),\n});\nexport const TitleWrapper = createComponentWithProxy(StyledTitleWrapper, 'div');\n\nconst StyledSignInFormContainer = (): IStyle => ({\n position: 'relative',\n\n ...screenSmallOnly({\n marginTop: '24px',\n }),\n});\nexport const SignInFormContainer = createComponentWithProxy(StyledSignInFormContainer);\n\nconst StyledSSOLinkWrapper = (): IStyle => ({\n alignItems: 'center',\n display: 'flex',\n height: '40px',\n position: 'absolute',\n top: 0,\n right: 0,\n});\nexport const SSOLinkWrapper = createComponentWithProxy(StyledSSOLinkWrapper);\n\n// Marketing image container styles ------------\ntype RightContainerProps = {\n darkTheme: boolean;\n};\n\nconst StyledRightContainer = (props: RightContainerProps): IStyle => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n backgroundColor: props.darkTheme ? '#001642' : 'unset',\n transition: 'background-color 0.3s ease-in',\n\n ...makeMediaQuery(\n {\n display: 'none',\n },\n breakpoints.screenSmall,\n 1024,\n ),\n});\nexport const RightContainer = createComponent(StyledRightContainer);\n\nconst StyledRightContainerWrapper = (): IStyle => ({\n display: 'flex',\n flexDirection: 'column',\n margin: '2.4rem',\n maxWidth: '539px',\n width: '100%',\n});\nexport const RightContainerWrapper = createComponent(StyledRightContainerWrapper);\n\nconst StyledSignInAdvertImage = (): IStyle => ({\n display: 'block',\n maxWidth: '437px',\n maxHeight: '437px',\n height: 'auto',\n width: '100%',\n margin: '0 auto',\n});\nexport const SignInAdvertImage = createComponentWithProxy(StyledSignInAdvertImage, 'img');\n\nconst StyledSignInAdvertImagePlaceholder = (): IStyle => ({\n display: 'block',\n maxWidth: '437px',\n maxHeight: '437px',\n width: '100%',\n margin: '0 auto',\n});\nexport const SignInAdvertImagePlaceholder = createComponentWithProxy(\n StyledSignInAdvertImagePlaceholder,\n);\n\ntype DescriptionTextProps = {\n darkTheme: boolean;\n};\n\nconst StyledDescriptionText = (props: DescriptionTextProps): IStyle => ({\n color: props.darkTheme ? Theme.ds.getColorByName('white') : Theme.ds.getColorByName('blueGrey600'),\n fontSize: '1.4rem',\n lineHeight: '2.4rem',\n maxWidth: '400px',\n marginLeft: 'auto',\n marginRight: 'auto',\n});\nexport const DescriptionText = createComponent(StyledDescriptionText, 'p');","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\n\nimport { createComponent } from 'react-fela';\nimport { Theme } from 'app/theme';\n\nconst StyledTabButtonContainer = (): IStyle => (\n {\n display: 'flex'\n }\n);\n\nexport const TabButtonContainer = createComponent(StyledTabButtonContainer);\n","/** @format **/\n\nimport React from 'react';\nimport { createComponent } from 'react-fela';\nimport { IStyle } from 'fela';\n\nimport { Theme } from 'app/theme';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ntype TabButtonProps = {\n selected: boolean;\n disabled?: boolean;\n};\n\nconst StyledTabButton = (props: TabButtonProps): IStyle =>\n applyModifiers(\n [\n props.selected,\n {\n boxShadow: `inset 0 -4px ${Theme.ds.getColorByName('blue900')}`,\n fontWeight: 600,\n },\n ],\n [\n props.disabled,\n {\n color: Theme.ds.getColorByName('grey400'),\n backgroundColor: Theme.ds.getColorByName('white'),\n cursor: 'default',\n boxShadow: 'none',\n },\n ],\n [\n props.selected || props.disabled,\n {\n ':hover': {\n backgroundColor: Theme.ds.getColorByName('white'),\n },\n ':active': {\n backgroundColor: Theme.ds.getColorByName('white'),\n },\n },\n ],\n )({\n color: Theme.ds.getColorByName('grey800'),\n padding: '0 16px',\n height: '40px',\n lineHeight: '40px',\n textAlign: 'center',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n ':hover': {\n backgroundColor: Theme.ds.getColorByName('grey50'),\n },\n ':active': {\n backgroundColor: Theme.ds.getColorByName('grey100'),\n },\n });\n\nexport const TabButton = createComponent(StyledTabButton, 'div', ['onClick']);\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\n\nimport { createComponent } from 'react-fela';\nimport { Theme } from 'app/theme';\nimport { screenSmallOnly } from 'fela-rules/breakpoints';\n\nconst StyledTabNavigationContainer = (): IStyle => ({\n display: 'table', // Ensure the border expands 100% of the width\n borderBottom: `1px solid ${Theme.ds.getColorByName('blueGrey100')}`,\n});\n\nexport const TabNavigationContainer = createComponent(StyledTabNavigationContainer);\n\ntype Props = {\n noPadding?: boolean;\n noPaddingOnMobile?: boolean;\n inlineBlock?: boolean;\n};\n\nconst StyledTabNavigationOuterWrapper = (props: Props): IStyle => ({\n padding: props.noPadding ? '' : '0 24px',\n boxShadow: `inset 0 -1px 0 0 ${Theme.ds.getColorByName('blueGrey100')}`,\n display: props.inlineBlock ? 'inline-block' : '',\n\n ...screenSmallOnly({\n paddingLeft: props.noPaddingOnMobile ? '' : '16px',\n paddingRight: props.noPaddingOnMobile ? '' : '16px',\n }),\n});\n\nexport const TabNavigationOuterWrapper = createComponent(StyledTabNavigationOuterWrapper);\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from \"fela\";\nimport { createComponent } from 'react-fela';\n\nconst StyledOverflowWrapper = (): IStyle => ({\n overflowX: 'auto',\n overflowY: 'hidden',\n scrollBehavior: 'smooth',\n});\n\nexport const OverflowWrapper = createComponent(StyledOverflowWrapper, 'div', ['onScroll']);\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponentWithProxy } from 'react-fela';\n\nimport { screenMediumOnly } from 'fela-rules/breakpoints';\nimport { applyModifiers } from 'fela-rules/modifiers';\n\ntype Props = {\n mediumOnly: boolean;\n buttonsVisible: boolean;\n};\n\nconst StyledNavButtonWrapper = (props: Props): IStyle =>\n applyModifiers([\n props.mediumOnly,\n {\n display: 'none',\n ...screenMediumOnly({\n display: props.buttonsVisible ? 'block' : 'none',\n }),\n },\n ])({});\n\nexport const NavButtonWrapper = createComponentWithProxy(StyledNavButtonWrapper);\n","/** @format **/\n\nimport React, { useRef, useState, useCallback, MutableRefObject, useEffect } from 'react';\nimport { isNil } from 'lodash';\n\nimport { Flex } from 'components/flex';\nimport { IconButton } from 'components/ds/button';\n\nimport { OverflowWrapper, NavButtonWrapper } from './components';\n\ntype Props = {\n scrollStep: number;\n mediumOnly?: boolean;\n onPrevClick?: (scrollLeft: number) => void;\n onNextClick?: (scrollLeft: number) => void;\n};\n\nexport const HorizontalScroll: React.FunctionComponent = ({\n children,\n scrollStep,\n mediumOnly,\n onNextClick,\n onPrevClick,\n}) => {\n const containerRef: MutableRefObject = useRef({\n current: {\n scrollLeft: 0,\n scrollWidth: null,\n offsetWidth: null,\n },\n });\n const [disabledButtons, setDisabledButtons] = useState([false, false]);\n const [buttonsVisible, setButtonsVisible] = useState(false);\n\n const showButtons = () => {\n const { current } = containerRef;\n const containerScrollWidth = current.scrollWidth;\n const containerOffsetWidth = current.offsetWidth;\n\n setButtonsVisible(containerScrollWidth > containerOffsetWidth);\n };\n\n useEffect(() => {\n showButtons();\n }, []);\n\n const getNextScrollPosition = (increase: boolean): number => {\n const multiplier = increase ? 1 : -1;\n const scrollLeft = containerRef.current.scrollLeft;\n const newValue = scrollLeft + scrollStep * multiplier;\n\n return Math.floor(Math.max(0, newValue));\n };\n\n const isButtonDisabled = (isNext: boolean = false) => {\n const { current } = containerRef;\n const currentLeft = current.scrollLeft;\n const containerScrollWidth = current.scrollWidth;\n const containerOffsetWidth = current.offsetWidth;\n\n if (!isNext && isNil(currentLeft) && isNil(containerScrollWidth)) {\n return true;\n }\n\n return (\n (isNext && currentLeft >= containerScrollWidth - containerOffsetWidth) ||\n (!isNext && currentLeft <= 0)\n );\n };\n\n const updateDisabledButtons = () => {\n setDisabledButtons([isButtonDisabled(), isButtonDisabled(true)]);\n };\n\n const getNavButton = (isNext: boolean = false) => {\n const [prevDisabled, nextDisabled] = disabledButtons;\n\n return (\n {\n const nextScrollPosition = getNextScrollPosition(isNext);\n containerRef.current.scrollLeft = nextScrollPosition;\n updateDisabledButtons();\n\n if (isNext && !isNil(onNextClick)) {\n onNextClick(nextScrollPosition);\n }\n\n if (!isNext && !isNil(onPrevClick)) {\n onPrevClick(nextScrollPosition);\n }\n }, [])}\n />\n );\n };\n\n return (\n \n \n {getNavButton()}\n \n void}\n >\n {children}\n \n \n {getNavButton(true)}\n \n \n );\n};\n","/** @format **/\n\nimport React from 'react';\n\nimport { HorizontalScroll } from 'components/ds/horizontalScroll';\n\nimport { TabNavigationContainer, TabNavigationOuterWrapper } from '../tabNavigationContainer';\n\ntype Props = {\n scrollStep?: number;\n noPadding?: boolean;\n noPaddingOnMobile?: boolean;\n inlineBlock?: boolean;\n withHelpTip?: boolean;\n};\n\nexport const TabNavigationControl: React.FunctionComponent = ({\n children,\n scrollStep,\n noPadding,\n noPaddingOnMobile,\n inlineBlock,\n withHelpTip,\n}) => (\n \n {withHelpTip ? (\n {children}\n ) : (\n \n {children}\n \n )}\n \n);\n\nTabNavigationControl.defaultProps = {\n scrollStep: 250,\n};\n","/** @format **/\n\nimport React from 'react';\nimport { createComponent } from 'react-fela';\nimport { IStyle } from 'fela';\n\nconst StyledTabPane = (): IStyle => ({});\n\nexport const TabPane = createComponent(StyledTabPane);\n","/** @format **/\n\nexport enum SocialButtonType {\n Github = 'GitHub',\n GooglePlus = 'GooglePlus',\n Twitter = 'Twitter',\n Facebook = 'Facebook',\n}\n","/** @format **/\n\nimport React from 'react';\nimport { TabProps } from '../types';\n\ntype Props = {} & TabProps;\n\n/**\n * A wrapper component which allows us to define a Tab\n * This doesn't get rendered directly\n * We use this component to define properties for building out a set of Tabs\n * The child elements of this function will be the content of the Tab pane\n */\n\nexport const Tab: React.FunctionComponent = ({ children }) => {\n return
{children}
;\n};\n","/** @format **/\n\nimport React, { useState } from 'react';\nimport { find, pick } from 'lodash';\n\nimport { TabData } from './types';\nimport { TabButtonContainer, TabNavigationControl, TabPane, Tab } from './components';\nimport { getTabButtons, isDefaultActiveTabDisabled } from './utils';\n\ntype Props = {\n defaultActiveTabId?: string;\n noPadding?: boolean;\n noPaddingOnMobile?: boolean;\n inlineBlock?: boolean;\n withHelpTip?: boolean;\n};\n\nconst Tabs: React.FunctionComponent = ({\n children,\n defaultActiveTabId,\n noPadding,\n noPaddingOnMobile,\n inlineBlock,\n withHelpTip,\n}) => {\n const filteredChildren = React.Children.toArray(children).filter(child => React.isValidElement(child));\n\n /**\n * If there are any coniditonally rendered tabs, remove the tabs that aren't returned as true to show\n */\n\n const tabData: TabData[] = filteredChildren.map((child: React.ReactElement) =>\n pick(child.props, ['id', 'title', 'children', 'disabled', 'onClick', 'helptip']),\n );\n\n /**\n * If the default tab is disabled or the default tab is not defined, we'll use the first tab in\n * the set which isn't disabled\n */\n const initialState = isDefaultActiveTabDisabled(defaultActiveTabId, tabData)\n ? find(tabData, t => !t.disabled).id\n : defaultActiveTabId;\n\n /**\n * Retrieve activeTabId out of the state\n * Used in two places:\n * - Decide the selected tab button\n * - Decide the content to show\n */\n\n const [activeTabId, setActiveTabId] = useState(initialState);\n const tabButtons = getTabButtons(tabData, activeTabId, setActiveTabId);\n\n const activeTabData = find(tabData, t => t.id === activeTabId);\n const activeContent = activeTabData.children;\n return (\n <>\n \n {tabButtons}\n \n {activeContent}\n \n );\n};\n\nexport { Tabs, Tab };\n","/** @format **/\n\nimport React, { SetStateAction } from 'react';\nimport { find, isNil, isEmpty } from 'lodash';\n\nimport { Helptip } from 'components/ds/tooltip/helptip';\n\nimport { TabButton } from '../components/tabButton';\nimport { TabData } from '../types';\n\n/**\n * getTabButtons generates an array of tab button components based on the state and data from parent component\n * @param tabData\n * @param activeTabId\n * @param setActiveTabId\n * @param withHelpTip\n * @param helpTextData\n */\n\nexport function getTabButtons(\n tabData: TabData[],\n activeTabId: string,\n setActiveTabId: (value: SetStateAction) => void,\n) {\n if (tabData.length === 0) {\n throw new Error('No tabs found');\n }\n\n return tabData.map(tab =>\n tab.helptip && tab.disabled ? (\n \n {tab.helptip.label}\n
\n \n }\n link={tab.helptip.link}\n linkText={tab.helptip.linkText}\n arrowPosition={tab.helptip.arrowPosition}\n >\n {\n if (tab.disabled) {\n return;\n }\n setActiveTabId(tab.id);\n const _ignored = !isNil(tab.onClick) && tab.onClick();\n }}\n disabled={tab.disabled}\n >\n {tab.title}\n \n \n ) : (\n {\n if (tab.disabled) {\n return;\n }\n setActiveTabId(tab.id);\n const _ignored = !isNil(tab.onClick) && tab.onClick();\n }}\n disabled={tab.disabled}\n >\n {tab.title}\n \n ),\n );\n}\n\n/**\n * isDefaultActiveTabDisabled checks if the tab which corresponds to the default active tab id supplied is currently disabled\n *\n * @param defaultActiveTabId\n * @param tabData\n */\n\nexport function isDefaultActiveTabDisabled(defaultActiveTabId: string, tabData: TabData[]) {\n if (isEmpty(tabData)) {\n return false;\n }\n\n if (isNil(defaultActiveTabId)) {\n return true;\n }\n\n const activeTab = find(tabData, t => t.id === defaultActiveTabId);\n\n if (isNil(activeTab)) {\n throw new Error(`Invalid tab ID: ${defaultActiveTabId}`);\n }\n\n return activeTab.disabled;\n}\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\n\nimport { Theme } from 'app/theme';\nimport { screenMediumAndAbove, screenSmallOnly } from 'fela-rules/breakpoints';\n\ntype Props = {\n isMobile?: boolean;\n};\n\nconst StyledStartTrialWrapper = (props: Props): IStyle => ({\n color: Theme.ds.colors.blueGrey.blueGrey300,\n display: 'static',\n textAlign: 'center',\n top: 0,\n right: 0,\n ...screenMediumAndAbove({\n display: props.isMobile ? `none` : `static`,\n }),\n ...screenSmallOnly({\n display: props.isMobile ? `static` : `none`,\n }),\n});\nexport const StartTrialWrapper = createComponent(StyledStartTrialWrapper);\n","/** @format **/\n\nimport React from 'react';\n\nimport { SignInLink } from '../styles';\n\nimport { StartTrialWrapper } from './styles';\n\ntype Props = {\n isMobile?: boolean;\n};\n\nexport const StartTrialModule: React.FunctionComponent = (props: Props) => {\n return (\n \n Don't have an account?\n Start trial\n \n );\n};\n","/** @format **/\n\nimport React, { useState } from 'react';\n\nimport { getAntiForgeryToken } from 'app/selectors/configuration';\n\nimport { Checkbox } from 'components/ds/selection';\nimport { EmphasisButton } from 'components/ds/button';\nimport { Input } from 'components/ds/inputs';\nimport { Flex } from 'components/flex';\nimport { Margin } from 'components/layout';\nimport { Icon } from 'components/icon';\n\nimport { getQueryStringParam } from 'utils/routing/queryString';\nimport { emailAddress } from 'utils/validation';\n\nimport { SignInLink, SignInLinkWrapper } from '../styles';\n\nexport const SignInForm: React.FunctionComponent = () => {\n const [isUnmaskPassword, toggleUnmaskPassword] = useState(false);\n const [rememberMeChecked, toggleRememberMeChecked] = useState(false);\n\n const antiForgeryToken = getAntiForgeryToken({});\n const returnSite = getQueryStringParam('returnsite');\n const returnUrl = getQueryStringParam('ReturnUrl');\n\n const [isEmailValid, setEmailValid] = useState(true);\n const checkEmail = (email: string) => setEmailValid(emailAddress(email));\n\n return (\n
\n \n \n \n \n \n checkEmail(e.target.value)}\n tabIndex={1}\n />\n \n \n toggleUnmaskPassword(!isUnmaskPassword)}\n />\n }\n tabIndex={2}\n />\n \n \n toggleRememberMeChecked(!rememberMeChecked)}\n name=\"RememberMe\"\n forForm\n >\n Remember me\n \n \n \n Sign in\n \n \n \n \n Forgot your password?\n \n \n \n \n
\n );\n};\n","/**\n * @prettier\n */\n\nimport React, { Component } from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\nimport { isNil } from 'lodash';\n\nimport { COLORS } from 'app/theme/materialDS';\nimport { ThemeType } from 'app/theme';\nimport { applyModifiers } from 'fela-rules/modifiers';\nimport { screenSmallOnly } from 'fela-rules/breakpoints';\nimport { Icon } from '../../../icon';\n\nexport type BaseAlertProps = {\n textColor: COLORS;\n backgroundColor: COLORS;\n borderColor?: COLORS;\n centerAlign?: boolean;\n renderAsBanner: boolean;\n onDismiss?: () => void;\n id?: string;\n};\n\nexport type BaseDefaultPropKeys = {};\n\nexport const BaseDefaultProps: BaseDefaultPropKeys = {};\n\nconst StyledBaseAlert = (props: BaseAlertProps & ThemeType): IStyle =>\n applyModifiers(\n [\n props.renderAsBanner,\n {\n paddingTop: '12px',\n paddingBottom: '12px',\n minHeight: '48px',\n fontWeight: 600,\n zIndex: 50,\n },\n ],\n [\n !props.renderAsBanner,\n {\n paddingTop: '16px',\n paddingBottom: '16px',\n minHeight: '56px',\n borderRadius: '2px',\n fontWeight: 400,\n },\n ],\n )({\n // positioning\n position: 'relative',\n display: 'block',\n paddingLeft: '16px',\n paddingRight: '16px',\n // colors\n backgroundColor: props.theme.ds.getColorByName(props.backgroundColor),\n color: props.theme.ds.getColorByName(props.textColor),\n textAlign: props.centerAlign ? 'center' : 'left',\n border: props.borderColor\n ? `1px solid ${props.theme.ds.getColorByName(props.borderColor)}`\n : null,\n // fonts\n fontSize: '14px',\n lineHeight: '24px',\n ...screenSmallOnly({\n display: 'flex',\n }),\n });\n\nconst FelaBaseAlert = createComponent(StyledBaseAlert, 'div', ['id']);\n\ntype StyledAlertContentProps = {\n showDismissButton: boolean;\n};\nconst StyledAlertContent = ({ showDismissButton }: StyledAlertContentProps): IStyle =>\n applyModifiers([\n showDismissButton,\n {\n marginRight: '40px',\n ...screenSmallOnly({\n marginRight: '32px',\n }),\n },\n ])({});\n\nconst FelaAlertContentContainer = createComponent(StyledAlertContent);\n\nexport class BaseAlert extends Component {\n render() {\n const { children, onDismiss, ...props } = this.props;\n const showDismissButton = !isNil(onDismiss);\n return (\n \n \n {children}\n \n {showDismissButton && (\n \n )}\n \n );\n }\n}\n","/**\n * @prettier\n */\n/* tslint:disable:max-classes-per-file */\n/* ignore file coverage */\n\nimport React, { Component } from 'react';\nimport { BaseAlert, BaseAlertProps, BaseDefaultPropKeys, BaseDefaultProps } from './base';\n\ntype DefaultPropKeys =\n | 'textColor'\n | 'backgroundColor'\n | 'borderColor'\n | 'centerAlign'\n | 'renderAsBanner'\n | keyof BaseDefaultPropKeys;\n\ntype SuccessBannerProps = BaseAlertProps;\n\nexport class SuccessBanner extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'white',\n backgroundColor: 'green500',\n centerAlign: true,\n renderAsBanner: true,\n };\n\n render() {\n const { children, ...props } = this.props;\n\n return {children};\n }\n}\n\ntype InformationBannerProps = BaseAlertProps;\n\nexport class InformationBanner extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'white',\n backgroundColor: 'blue1000',\n borderColor: undefined,\n centerAlign: true,\n renderAsBanner: true,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n\ntype WarningBannerProps = BaseAlertProps;\n\nexport class WarningBanner extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'grey800',\n backgroundColor: 'amber700',\n borderColor: undefined,\n centerAlign: true,\n renderAsBanner: true,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n\ntype DangerBannerProps = BaseAlertProps;\n\nexport class DangerBanner extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'white',\n backgroundColor: 'red600',\n borderColor: undefined,\n centerAlign: true,\n renderAsBanner: true,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n","/**\n * @prettier\n */\n/* tslint:disable:max-classes-per-file */\n/* ignore file coverage */\n\nimport React, { Component } from 'react';\nimport { BaseAlert, BaseAlertProps, BaseDefaultPropKeys, BaseDefaultProps } from './base';\n\ntype DefaultPropKeys =\n | 'textColor'\n | 'backgroundColor'\n | 'borderColor'\n | 'centerAlign'\n | 'renderAsBanner'\n | keyof BaseDefaultPropKeys;\n\ntype InformationBoxProps = BaseAlertProps;\n\nexport class InformationBox extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'grey800',\n backgroundColor: 'blue100',\n borderColor: 'blue1000',\n centerAlign: false,\n renderAsBanner: false,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n\ntype WarningBoxProps = BaseAlertProps;\n\nexport class WarningBox extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'grey800',\n backgroundColor: 'amber50',\n borderColor: 'amber700',\n centerAlign: false,\n renderAsBanner: false,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n\ntype DangerBoxProps = BaseAlertProps;\n\nexport class DangerBox extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'grey800',\n backgroundColor: 'red50',\n borderColor: 'red600',\n centerAlign: false,\n renderAsBanner: false,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n\ntype SuccessBoxProps = BaseAlertProps;\n\nexport class SuccessBox extends Component {\n static defaultProps: Pick = {\n ...BaseDefaultProps,\n textColor: 'grey800',\n backgroundColor: 'green50',\n borderColor: 'green600',\n centerAlign: false,\n renderAsBanner: false,\n };\n\n render() {\n const { children, ...props } = this.props;\n return {children};\n }\n}\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\nimport { createComponent } from 'react-fela';\n\nimport { screenSmallOnly } from 'fela-rules/breakpoints';\n\ntype SocialButtonBaseProps = {\n backgroundColor: string;\n};\n\nconst StyledSocialButtonBase = (props: SocialButtonBaseProps): IStyle => ({\n backgroundColor: props.backgroundColor,\n border: 'none',\n borderRadius: '2px',\n color: 'white',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 600,\n marginBottom: '24px',\n padding: '16px',\n position: 'relative',\n textAlign: 'center',\n transition: 'background-color 200ms linear',\n width: '47%',\n\n [':hover' as any]: {\n color: 'white',\n opacity: 0.8,\n },\n [':active' as any]: {\n color: 'white',\n opacity: 0.8,\n },\n [':focus' as any]: {\n color: 'white',\n },\n ...screenSmallOnly({\n marginBottom: '16px',\n padding: '12px',\n }),\n});\nexport const SocialButtonBase = createComponent(StyledSocialButtonBase, 'a', ['href']);\n","/** @format **/\n\nimport React from 'react';\nimport { IStyle } from 'fela';\n\nimport { Theme } from 'app/theme';\n\nimport { SocialButtonType } from './models';\nimport { SocialButtonBase } from './styles';\n\nexport type SocialButtonProps = {\n socialType: SocialButtonType;\n link: string;\n};\n\ntype Props = SocialButtonProps;\n\nexport const SocialButton: React.FunctionComponent = (props: Props) => {\n const getButtonColor = (socialButtonType: SocialButtonType) => {\n switch (socialButtonType) {\n case SocialButtonType.Github:\n return Theme.colors.social.github;\n\n case SocialButtonType.GooglePlus:\n return Theme.colors.social.google;\n }\n };\n\n const getPlatformName = (platform: string) => {\n return platform === 'GooglePlus' ? 'Google' : platform;\n };\n\n const buttonColor = getButtonColor(props.socialType);\n const platformName = getPlatformName(props.socialType);\n\n return (\n \n {platformName}\n \n );\n};\n","/** @format **/\n\nimport React from 'react';\n\nimport { Flex } from 'components/flex';\nimport { Padding } from 'components/layout';\nimport { InformationBox } from 'components/ds/alerts';\n\nimport { SocialButton, SocialButtonType } from '../socialButton';\n\nexport const SocialSignIn: React.FunctionComponent = () => {\n return (\n \n \n \n Note: Social sign in is only available for legacy accounts.\n \n \n \n \n \n \n \n );\n};\n","/** @format **/\nimport React from 'react';\n\nimport { Tab, Tabs } from 'components/ds/tabs';\nimport { H1 } from 'components/ds/text';\nimport { Flex } from 'components/flex';\nimport { Icon } from 'components/icon';\nimport { Margin, Padding } from 'components/layout';\n\nimport { StartTrialModule } from './startTrialModule';\nimport {\n LeftContainer,\n LeftContainerWrapper,\n LogoImage,\n SSOLinkWrapper,\n SignInFormContainer,\n SignInLink,\n TitleWrapper,\n} from './styles';\nimport { SignInForm, SocialSignIn } from './tabContent';\n\nexport const LeftSection: React.FunctionComponent = () => (\n \n \n \n \n \n \n \n

Sign in

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
Sign in with SSO
\n \n \n \n
\n
\n
\n
\n \n
\n
\n);","/** @format **/\nimport React, { FunctionComponent } from 'react';\n\nimport { isNotNilOrEmpty } from 'utils/string';\n\nimport { H2, Link } from \"components/ds/text\";\nimport { Padding } from 'components/layout';\nimport { getTextAlignmentClass } from 'components/text';\nimport { SnowplowLink } from \"components/snowplow\";\n\nimport { SignInBanner } from '../models';\nimport {\n DescriptionText,\n RightContainer,\n RightContainerWrapper,\n SignInAdvertImage,\n SignInAdvertImagePlaceholder,\n} from './styles';\n\ntype Props = {\n bannerData: SignInBanner;\n};\n\nexport const RightSection: FunctionComponent = props => {\n const snowplowId = `sp-app-auth-signin-${props.bannerData.bannerId.replace(/ /g, '-')}`;\n \n return (\n \n \n \n \n {isNotNilOrEmpty(props.bannerData.bannerImgSrc) ? (\n \n ) : (\n \n )}\n \n \n \n \n
\n

{props.bannerData.bannerImgHeader}

\n \n \n {props.bannerData.bannerImgDescription}\n \n\n \n \n {props.bannerData.bannerLinkText}\n \n \n
\n
\n
\n
\n );\n};","/** @format **/\n\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { Dispatch } from 'redux';\n\nimport * as ChromeActions from 'app/actions/chrome';\n\nimport { ContainersWrapper } from './styles';\n\ntype StateProps = {};\n\ntype DispatchProps = {\n dispatch: Dispatch;\n};\n\ntype PassedProps = {};\n\ntype Props = PassedProps & StateProps & DispatchProps;\n\nconst UnconnectedLayout: React.FunctionComponent = ({ children, dispatch }) => {\n useEffect(() => {\n dispatch(ChromeActions.setLayout('none'));\n });\n\n return {children};\n};\n\nconst ConnectedLayout = connect(\n null,\n (dispatch: Dispatch) => ({\n dispatch,\n }),\n)(UnconnectedLayout);\n\nexport { ConnectedLayout as Layout };\n","/** @format **/\n\nimport { createSelector } from 'reselect';\n\nimport { AppState } from 'interfaces/appState';\n\nimport { SignInBanner } from '../models';\n\nconst signInSelector = (state: AppState) => state.authentication.signIn;\n\nexport const signInBanner = createSelector(\n signInSelector,\n signInBanner => signInBanner.banner,\n);\n\nexport const getSignInBanner = createSelector(\n signInBanner,\n (signInBanner): SignInBanner => ({\n bannerId: signInBanner.bannerId,\n bannerImgSrc: signInBanner.bannerImgSrc,\n bannerImgHeader: signInBanner.bannerImgHeader,\n bannerImgDescription: signInBanner.bannerImgDescription,\n bannerLink: signInBanner.bannerLink,\n bannerLinkText: signInBanner.bannerLinkText,\n darkTheme: signInBanner.darkTheme,\n }),\n);","/** @format **/\n\nimport createActionFactory from 'typescript-fsa';\n\nimport { SignInBanner, NetworkSignInBanner } from '../models';\n\nconst createAction = createActionFactory('sign-in');\n\nexport const fetchSignInBanner = createAction('FETCH_SIGN_IN_BANNER');\n\nexport const updateSignInBanner = createAction('UPDATE_SIGN_IN_BANNER');\n\nexport const signInBannerFetchingStarted = createAction('SIGN_IN_BANNER_FETCHING_STARTED');\nexport const signInBannerFetchingSucceeded = createAction(\n 'SIGN_IN_BANNER_FETCHING_SUCCEEDED',\n);\nexport const signInBannerFetchingFailed = createAction('SIGN_IN_BANNER_FETCHING_FAILED');\n","/** @format **/\n\nimport { reducerWithInitialState } from 'typescript-fsa-reducers';\n\nimport { nestedReducerUpdate, reducerUpdate } from 'utils/reducerUpdate';\n\nimport * as Actions from '../actions';\nimport { SignInState } from '../state';\n\nconst initialState: SignInState = {\n fetching: {\n error: null,\n hasErrored: false,\n isFetching: false,\n },\n banner: {\n bannerId: '',\n bannerImgSrc: '',\n bannerImgHeader: '',\n bannerImgDescription: '',\n bannerLink: '',\n bannerLinkText: '',\n darkTheme: false,\n },\n};\n\nexport const SignInReducer = reducerWithInitialState(initialState)\n .case(Actions.signInBannerFetchingStarted, state =>\n nestedReducerUpdate(state, 'fetching', {\n isFetching: true,\n hasErrored: false,\n error: null,\n }),\n )\n .case(Actions.updateSignInBanner, (state, signInBanner) => {\n const parsedBanner = typeof signInBanner === 'string' ? JSON.parse(signInBanner) : signInBanner;\n parsedBanner.bannerImgSrc = `https://raygun.com/${parsedBanner.bannerImgSrc}`;\n\n return reducerUpdate(state, {\n banner: parsedBanner,\n });\n })\n .case(Actions.signInBannerFetchingSucceeded, state =>\n nestedReducerUpdate(state, 'fetching', {\n error: null,\n hasErrored: false,\n isFetching: false,\n }),\n );","/** @format **/\n\nimport { SagaIterator } from 'redux-saga';\nimport { call, fork, put, take, takeLatest } from 'redux-saga/effects';\nimport { Action } from 'typescript-fsa';\nimport { get, defaultTo } from 'lodash';\n\nimport { AppState } from 'interfaces/appState';\nimport { createFetchSaga } from 'utils/sagas';\nimport { externalRequestFactory } from 'utils/fetching/utils';\n\nimport * as Actions from '../actions';\nimport { NetworkSignInBanner } from '../models';\n\nconst BlogUrl = defaultTo(\n get(get(window, 'RaygunConfiguration', {}), 'BlogUrl'),\n 'https://raygun.com/blog',\n);\n\nconst externalRequest = externalRequestFactory(BlogUrl, 'GET');\n\nconst fetchSignInBannerSaga = createFetchSaga(\n {\n start: Actions.signInBannerFetchingStarted,\n done: Actions.signInBannerFetchingSucceeded,\n error: Actions.signInBannerFetchingFailed,\n },\n 'sign-in-banner.json',\n {},\n externalRequest,\n { includeBaseName: false },\n);\nfunction* fetchSignInBanner() {\n yield call(fetchSignInBannerSaga as any);\n}\n\nfunction* forwardSignInBannerToStore() {\n while (true) {\n const action: Action = yield take(\n Actions.signInBannerFetchingSucceeded.type,\n );\n\n yield put(Actions.updateSignInBanner(action.payload));\n }\n}\n\nexport function* Saga(): SagaIterator {\n yield takeLatest(Actions.fetchSignInBanner.type, fetchSignInBanner);\n yield fork(forwardSignInBannerToStore);\n}","/** @format */\nimport { createRoutingAction } from 'utils/routing';\n\nexport const GoToSignInStep = createRoutingAction('GO_TO_SIGN_IN_STEP');\n","/** @format **/\n\nimport React, { FunctionComponent, useEffect } from 'react';\nimport { Dispatch } from 'redux';\nimport { connect } from 'react-redux';\n\nimport { AppState } from 'interfaces/appState';\n\nimport { Flex } from 'components/flex';\nimport { Icon } from 'components/icon';\nimport { Margin } from 'components/layout';\nimport { Tab, Tabs } from 'components/ds/tabs';\n\nimport { ContainersWrapper, RightSection, LeftSection, Layout } from '../components';\n\nimport { fetchSignInBanner } from '../actions';\nimport * as Selectors from '../selectors';\nimport { SignInBanner } from '../models';\n\ntype StateProps = {\n bannerData: SignInBanner;\n};\n\ntype DispatchProps = {\n fetchSignInBanner: () => void;\n};\n\ntype Props = StateProps & DispatchProps;\n\nexport const UnconnectedSignInScreen: FunctionComponent = props => {\n useEffect(() => {\n props.fetchSignInBanner();\n }, []);\n\n return (\n \n {/* Height 100% required for IE */}\n \n \n \n \n \n );\n};\n\nexport const SignInScreen = connect(\n state => ({ bannerData: Selectors.getSignInBanner(state) }),\n (dispatch: Dispatch) => ({\n fetchSignInBanner: () => dispatch(fetchSignInBanner()),\n }),\n)(UnconnectedSignInScreen);\n","/** @format **/\n\nimport { makeRouteMap, makeRoutingReducer } from 'utils/routing';\n\nimport { GoToSignInStep } from '../routing/authentication';\n\nimport * as Screens from './screens';\n\nexport const Routes = makeRouteMap(\n {\n [GoToSignInStep.type]: 'signIn',\n },\n '',\n);\n\nexport const Reducer = makeRoutingReducer([[GoToSignInStep, Screens.SignInScreen]]);\n","/** @format */\n\nimport * as React from 'react';\nimport { combineReducers } from 'redux';\n\nimport AppFactory from 'app/index';\nimport { AppState } from 'interfaces/appState';\n\nimport * as SignIn from './signIn';\n\nexport type AuthenticationStateAtom = {\n authentication: {\n signIn: SignIn.State;\n };\n};\n\nexport type AuthenticationState = AppState & AuthenticationStateAtom;\n\nconst AuthenticationReducer = combineReducers({\n signIn: SignIn.Reducer,\n});\n\nconst { App, reducers } = AppFactory(\n 'authentication',\n AuthenticationReducer,\n [SignIn.Saga],\n `/`,\n {\n ...SignIn.Navigation.Routes,\n },\n [SignIn.Navigation.Reducer],\n {},\n);\n\nexport { App, reducers as AppReducers };\n","/** @format */\n\nimport React, { FunctionComponent, ComponentClass } from 'react';\nimport { connect } from 'react-redux';\n\nimport { getActiveLayout } from 'selectors/router';\nimport { getActiveScreen } from 'selectors/router';\n\nimport { AuthenticationState } from './';\n\ntype StateProps = {\n Layout: ComponentClass | FunctionComponent;\n ActiveScreen: ComponentClass | FunctionComponent;\n};\n\nconst DefaultLayout: FunctionComponent = ({ children }) => (\n
{children}
\n);\n\nconst UnconnectedAuthentication: FunctionComponent = ({ Layout, ActiveScreen }) => {\n if (Layout === null) {\n Layout = DefaultLayout;\n }\n return {ActiveScreen ? : null};\n};\n\nexport const Authentication = connect((state: AuthenticationState) => ({\n Layout: getActiveLayout(state),\n ActiveScreen: getActiveScreen(state),\n}))(UnconnectedAuthentication);\n","/**\n * @prettier\n */\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\nimport 'app/polyfills';\nimport Notifications from 'app/notifications';\n\nimport { ErrorBoundary } from 'components/errorBoundary';\n\nimport { App, AuthenticationState } from './app';\nimport { Authentication } from './authentication';\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n\nexport { AuthenticationState };\n","/**\n * @prettier\n */\n\nimport { createSelector } from 'reselect';\nimport moment, { Moment } from 'moment';\nimport { get } from 'lodash';\n\nimport { AppState } from 'interfaces/appState';\nimport {\n DateTimeFilterPredefinedRange,\n DEFAULT_DATE_TIME_FILTER_RANGE,\n ONE_DAY,\n SEVEN_DAYS,\n THIRTY_DAYS,\n} from 'constants/dateTimeFilter';\n\nconst locationSelector = (state: AppState) => state.location;\nconst screensSelector = (state: AppState) => state.screens;\n\nexport function selectorForQuery(query: string, fallback: string = undefined) {\n return createSelector(\n locationSelector,\n location => get(location, `query.${query}`, fallback) as T,\n );\n}\n\nexport const statusForCurrentRoute = selectorForQuery('status', 'active');\n\nexport const getPathname = createSelector(\n locationSelector,\n location => location.pathname,\n);\n\nexport const getLocation = createSelector(\n locationSelector,\n location => location.type,\n);\n\nexport const getPayload = createSelector(\n locationSelector,\n location => location.payload as any,\n);\n\nexport const getQuery = createSelector(\n locationSelector,\n location => location.query,\n);\n\nexport const getCurrentRouteData = createSelector(\n getLocation,\n getPayload,\n getQuery,\n (location, payload, query) => ({ location, payload, query }),\n);\n\nexport const getSearch = createSelector(\n locationSelector,\n location => location.search,\n);\n\nexport const getPrev = createSelector(\n locationSelector,\n location => location.prev,\n);\n\nexport const getKind = createSelector(\n locationSelector,\n location => location.kind,\n);\n\nexport const getPrevLocation = createSelector(\n getPrev,\n prev => prev.type,\n);\n\nexport const getPrevPayload = createSelector(\n getPrev,\n prev => prev.payload,\n);\n\nexport const getPrevPathname = createSelector(\n getPrev,\n prev => prev.pathname,\n);\n\nconst getRangeQuery = selectorForQuery('range');\nconst getDateFromQuery = selectorForQuery('dateFrom');\nconst getDateToQuery = selectorForQuery('dateTo');\n\nexport const getRange = createSelector(\n getRangeQuery,\n (range: DateTimeFilterPredefinedRange) => range,\n);\n\nexport type DateTimeFilterProps = {\n range: DateTimeFilterPredefinedRange;\n dateFrom: string;\n dateTo: string;\n};\n\nexport const getDateTimeRaw = createSelector(\n getRangeQuery,\n getDateFromQuery,\n getDateToQuery,\n (range: DateTimeFilterPredefinedRange, dateFrom, dateTo): DateTimeFilterProps => ({\n range,\n dateFrom,\n dateTo,\n }),\n);\n\nexport const isCustomDateTime = createSelector(\n getRangeQuery,\n getDateFromQuery,\n getDateToQuery,\n (range: DateTimeFilterPredefinedRange, dateFrom, dateTo): boolean => {\n if (range) {\n return false;\n } else {\n return !!(dateFrom || dateTo);\n }\n },\n);\n\nexport const getDateTimeFilter = (state: AppState) => {\n const { range: rawRange, ...dateTimeQueries } = getDateTimeRaw(state);\n\n let range: DateTimeFilterPredefinedRange;\n\n switch (rawRange) {\n case ONE_DAY:\n case SEVEN_DAYS:\n case THIRTY_DAYS:\n range = rawRange;\n break;\n default:\n range = DEFAULT_DATE_TIME_FILTER_RANGE;\n break;\n }\n\n let dateTo: Moment;\n let dateFrom: Moment;\n\n if (!dateTimeQueries.dateFrom && !dateTimeQueries.dateTo) {\n dateTo = moment.utc(new Date());\n if (range === ONE_DAY) {\n dateFrom = dateTo.clone().subtract(1, 'days');\n } else if (range === SEVEN_DAYS) {\n dateFrom = dateTo.clone().subtract(7, 'days');\n } else if (range === THIRTY_DAYS) {\n dateFrom = dateTo.clone().subtract(30, 'days');\n }\n } else {\n dateTo = moment(dateTimeQueries.dateTo)\n .clone()\n .utc();\n dateFrom = moment(dateTimeQueries.dateFrom)\n .clone()\n .utc();\n }\n\n return { range, dateFrom, dateTo };\n};\n\nexport const getDateTimeFilterFormatted = createSelector(\n getDateTimeFilter,\n ({ dateFrom, dateTo, range }) => ({\n dateFrom: dateFrom.format(),\n dateTo: dateTo.format(),\n range,\n }),\n);\n\nexport const getActiveRouteType = createSelector(\n screensSelector,\n screen => screen.type,\n);\nexport const getActiveScreen = createSelector(\n screensSelector,\n screens => screens.component,\n);\nexport const getActiveLayout = createSelector(\n screensSelector,\n screens => screens.layout,\n);\n","/** @format */\n\nimport {\n checkStatus,\n convertObjectToFormDataString,\n delayRequest,\n expandParameters,\n getWebApiUri,\n getWebAppUri,\n NetworkFunction,\n parseAsJsonOrText,\n QueryParameters,\n logRequestAsBreadcrumb,\n} from './utils';\n\nexport const fetchFromApp: NetworkFunction = (\n path: string,\n apiKey: string,\n parameters: QueryParameters = {},\n): Promise => {\n parameters = { k: apiKey, ...parameters };\n return fetch(`${getWebAppUri()}/${path}${expandParameters(parameters)}`, {\n headers: {},\n method: 'GET',\n credentials: 'include',\n })\n .then(logRequestAsBreadcrumb('GET'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to fetch from ${path}: ${error.message}`);\n });\n};\n\nexport const putToApp = (path: string, apiKey: string, parameters: any = {}): Promise => {\n const queryParameters = { k: apiKey };\n return fetch(`${getWebAppUri()}/${path}${expandParameters(queryParameters)}`, {\n method: 'PUT',\n credentials: 'include',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(parameters),\n })\n .then(logRequestAsBreadcrumb('PUT'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to PUT to ${path}: ${error.message}`);\n });\n};\n\nexport const postToApp = (\n path: string,\n apiKey: string,\n parameters: any = {},\n isFormData = false,\n): Promise => {\n const queryParameters = { k: apiKey };\n\n return fetch(`${getWebAppUri()}/${path}${expandParameters(queryParameters)}`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Cache-Control': 'no-cache',\n 'Content-Type': isFormData ? 'application/x-www-form-urlencoded' : 'application/json',\n },\n body: isFormData ? convertObjectToFormDataString(parameters) : JSON.stringify(parameters),\n })\n .then(logRequestAsBreadcrumb('POST'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to POST to ${path}: ${error.message}`);\n });\n};\n\nexport const deleteOnApp = (path: string, apiKey: string, parameters: any = {}): Promise => {\n const queryParameters = { k: apiKey };\n return fetch(`${getWebAppUri()}/${path}${expandParameters(queryParameters)}`, {\n method: 'DELETE',\n credentials: 'include',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Cache-Control': 'no-cache',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(parameters),\n })\n .then(logRequestAsBreadcrumb('DELETE'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to DELETE from ${path}: ${error.message}`);\n });\n};\n\nexport const fetchFromAPI = (\n path: string,\n apiKey: string,\n parameters: QueryParameters = {},\n): Promise => {\n parameters = { k: apiKey, ...parameters };\n return fetch(`${getWebApiUri()}/${path}${expandParameters(parameters)}`, {\n headers: {},\n mode: 'cors',\n method: 'GET',\n })\n .then(logRequestAsBreadcrumb('GET'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to fetch from API ${path}: ${error.message}`);\n });\n};\n\nexport const putToAPI = (path: string, apiKey: string, parameters: any = {}): Promise => {\n const queryParameters = { k: apiKey };\n return fetch(`${getWebApiUri()}/${path}${expandParameters(queryParameters)}`, {\n mode: 'cors',\n method: 'PUT',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(parameters),\n })\n .then(logRequestAsBreadcrumb('PUT'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to PUT to API ${path}: ${error.message}`);\n });\n};\n\nexport const putToAPIWithBody = (\n path: string,\n apiKey: string,\n body: any,\n parameters: QueryParameters = {},\n): Promise => {\n const queryParameters = { k: apiKey, ...parameters };\n return fetch(`${getWebApiUri()}/${path}${expandParameters(queryParameters)}`, {\n mode: 'cors',\n method: 'PUT',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n })\n .then(logRequestAsBreadcrumb('PUT'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to PUT to API ${path}: ${error.message}`);\n });\n};\n\nexport const postToAPI = (path: string, apiKey: string, parameters: any = {}, signal?: AbortSignal,): Promise => {\n const queryParameters = { k: apiKey };\n return fetch(`${getWebApiUri()}/${path}${expandParameters(queryParameters)}`, {\n mode: 'cors',\n method: 'POST',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(parameters),\n signal: typeof signal !== 'undefined' ? signal : null\n })\n .then(logRequestAsBreadcrumb('POST'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to POST to API ${path}: ${error.message}`);\n });\n};\n\nexport const deleteFromAPI = (path: string, apiKey: string, parameters: any = {}): Promise => {\n const queryParameters = { k: apiKey };\n return fetch(`${getWebApiUri()}/${path}${expandParameters(queryParameters)}`, {\n mode: 'cors',\n method: 'DELETE',\n headers: {\n Accept: 'application/json, text/plain, */*;',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(parameters),\n })\n .then(logRequestAsBreadcrumb('DELETE'))\n .then(checkStatus)\n .then(delayRequest(1000))\n .then(parseAsJsonOrText)\n .catch(error => {\n throw new Error(`Failed to DELETE from API ${path}: ${error.message}`);\n });\n};\n","/** @format **/\n\nimport {isNil, isEmpty, get} from 'lodash';\nimport * as querySerializer from 'qs';\n\nimport * as Host from 'utils/host';\nimport { ERRORS } from 'constants/errors';\nimport { trackBreadcrumb } from 'utils/raygun';\nimport { FormDataObject } from './types';\n\nexport type HTTP_METHODS = 'GET' | 'POST' | 'DELETE' | 'PUT';\n\nexport function externalRequestFactory(basename: string, method: 'GET' | 'POST' | 'PUT') {\n return (path: string, _apiKey: string, parameters: QueryParameters = {}): Promise =>\n fetch(`${basename}/${path}${expandParameters(parameters)}`, {\n headers: {},\n mode: 'cors',\n method,\n })\n .then(logRequestAsBreadcrumb(method))\n .then(checkStatus)\n .then(parseAsJsonOrText);\n}\n\nexport function checkStatus(response: Response): Response {\n if (!response.ok) {\n switch (response.status) {\n case 500:\n throw new Error(ERRORS.SERVER_FAILURE);\n case 400:\n throw new Error(ERRORS.ALREADY_EXISTS);\n case 401:\n case 403:\n throw new Error(ERRORS.UNAUTHORIZED);\n case 402:\n throw new Error(ERRORS.PAYMENT_REQUIRED);\n case 404:\n throw new Error(ERRORS.WRONG_PATH_404);\n case 409:\n throw new Error(ERRORS.CONFLICT);\n default:\n throw new Error(`HTTP Error ${response.status}`);\n }\n }\n\n return response;\n}\n\ntype ArrayQueryParameter = { name: string; value: QueryParameter };\ntype QueryParameter =\n | QueryParameters\n | ArrayQueryParameter[]\n | string[]\n | number[]\n | string\n | number\n | boolean;\nexport type QueryParameters = { [key: string]: any };\n\nexport function expandParameters(parameters: QueryParameters): string {\n if (isEmpty(parameters)) {\n return '';\n }\n\n return querySerializer.stringify(parameters, { addQueryPrefix: true, strictNullHandling: true });\n}\n\nexport type NetworkFunction = (\n path: string,\n apiKey: string,\n parameters?: QueryParameters,\n) => Promise;\n\nexport function getWebAppUri() {\n const host = window.document.location.host;\n\n // Make it work in Jest\n if (isNil(host) || host === 'localhost' || host === '') {\n return '//raygun.com';\n }\n\n return host ? `//${host}` : `//raygun.com`;\n}\n\nexport function getWebApiUri() {\n return get(window, 'RaygunConfiguration.WebApiUri');\n}\n\nexport function getPublicApiUri(withTrailingSlash = true) {\n const trailingSlash = withTrailingSlash ? '/' : '';\n\n if (Host.isBeta) {\n return `//publicapi.beta.raygun.io${trailingSlash}`;\n }\n if (Host.isLocal) {\n return `//localhost:5010${trailingSlash}`;\n }\n\n return `//publicapi.raygun.com${trailingSlash}`;\n}\n\nfunction getDomain(defaultVal: string = 'com') {\n if (window.document.domain) {\n return window.document.domain.split('.').pop();\n }\n return defaultVal;\n}\n\nexport function parseAsJsonOrText(response: Response) {\n const contentType = response.headers.get('content-type');\n\n if (!contentType || contentType.indexOf('application/json') === -1) {\n return response.text();\n }\n\n return response.text().then(text => {\n if (!text) {\n return '';\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n });\n}\n\nexport function delayRequest(milliseconds: number) {\n return (response: Response) =>\n new Promise(success => {\n if (Host.isLocal) {\n setTimeout(() => success(response), milliseconds);\n } else {\n success(response);\n }\n });\n}\n\nexport function convertObjectToFormDataString(obj: FormDataObject): string {\n return querySerializer.stringify(obj, { arrayFormat: 'repeat' });\n}\n\nexport function logRequestAsBreadcrumb(method: string): (response: Response) => Response {\n return (response: Response): Response => {\n const { status, url } = response;\n\n const is2XXStatus = status.toString()[0] === '2';\n\n trackBreadcrumb(`Request to ${url}`, is2XXStatus ? 'info' : 'error', {\n status: status,\n url: url,\n method: method,\n });\n\n return response;\n };\n}\n","/** @format */\n\nimport { get } from 'lodash';\n\nconst host = window.document.location.host ? window.document.location.host : '';\n\nexport const isLocal = host.indexOf('raygun.local') !== -1 || host.indexOf('localhost') !== -1;\n\nexport const isBeta = host.indexOf('app.beta') !== -1;\n\nexport const isIntegrationTest = get(window, 'RaygunConfiguration.Environment', '') === 'E2E';\n","/** @format */\n\nimport { isNil } from 'lodash';\n\ndeclare const rg4js: any;\n\nfunction hasRaygun() {\n return typeof rg4js !== 'undefined' && !isNil(rg4js);\n}\n\nexport function trackPage() {\n if (hasRaygun()) {\n rg4js('trackEvent', {\n type: 'pageView',\n path: `${window.location.pathname}`,\n });\n }\n}\n\ntype RaygunCustomData = {\n [key: string]: string;\n};\n\ntype RaygunErrorPayload = {\n error: Error;\n customData?: RaygunCustomData;\n};\n\nexport function logError(e: Error, customData: RaygunCustomData = null) {\n if (hasRaygun()) {\n const payload: RaygunErrorPayload = {\n error: e,\n };\n\n if (!isNil(customData)) {\n payload.customData = customData;\n }\n\n rg4js('send', payload);\n }\n}\n\nexport function trackCustomTiming(name: string, duration: number) {\n if (hasRaygun()) {\n rg4js('trackEvent', {\n type: 'customTiming',\n name: `${name}`,\n duration: duration,\n });\n }\n}\n\nexport type BreadcrumbLevels = 'debug' | 'info' | 'warning' | 'error';\n\nexport type BreadcrumbMetaData = {\n [key: string]: number | string;\n};\n\nexport function trackBreadcrumb(\n message: string,\n level: BreadcrumbLevels,\n metadata: BreadcrumbMetaData,\n) {\n if (hasRaygun()) {\n rg4js('recordBreadcrumb', {\n message,\n level,\n metadata,\n });\n }\n}\n","/** @format **/\n\nimport qs from 'qs';\nimport { get } from 'lodash';\n\nexport function getQueryStringObject(urlSearchQuery = window.location.search) {\n return qs.parse(urlSearchQuery, { ignoreQueryPrefix: true });\n}\n\nexport function getQueryStringParam(\n key: string,\n defaultValue: any = null,\n urlSearchQuery = window.location.search,\n) {\n const obj = getQueryStringObject(urlSearchQuery);\n\n return get(obj, key, defaultValue);\n}\n\nexport function sanitizeQueryString(\n key: string\n) {\n const currentQueryString = window.location.search;\n const searchParams = new URLSearchParams(currentQueryString);\n\n searchParams.delete(key);\n\n const sanitizedQueryString = searchParams.toString();\n\n const newUrl = `${window.location.pathname}${sanitizedQueryString}`;\n window.history.replaceState(null, '', newUrl);\n}","/**\n * @prettier\n */\n\nimport { Action as NavigationAction } from 'redux-first-router';\nimport { ActionCreator, EmptyActionCreator, Action } from 'typescript-fsa';\nimport {\n call,\n put,\n select,\n takeLatest,\n HelperFunc0,\n Pattern,\n ForkEffect,\n} from 'redux-saga/effects';\nimport { get, omit, isNil, fromPairs } from 'lodash';\n\nimport { fetchFromAPI } from 'utils/fetching';\nimport { apiKey } from 'app/selectors/application';\nimport { createSavingSaga } from 'app/notifications/sagas';\nimport { isFunction } from 'utils/types';\nimport * as RouterSelectors from 'selectors/router';\nimport { isRedirect } from 'utils/routing';\nimport { QueryParameters } from 'utils/fetching/utils';\n\nexport { createSavingSaga };\n\nlet baseUri: string;\n\nexport function setBaseUri(t: string) {\n baseUri = t;\n}\n\ntype apiFunctions = (\n path: string,\n apiKey: string,\n parameters?: QueryParameters,\n) => Promise;\n\nexport function createFetchSaga(\n actionCreators: {\n start?: EmptyActionCreator;\n startWithPayload?: (payload: P) => Action[];\n error?: ActionCreator;\n errorWithPayload?: (e: Error, payload: P) => Action[];\n done?: ActionCreator;\n doneWithPayload?: (response: any, payload: P, state?: S) => Action[];\n },\n apiUrl: string | { (payload: P, state: S): string },\n queryParameters: QueryParameters | { (state: S, payload: P): QueryParameters } = {},\n apiFunction: apiFunctions = fetchFromAPI,\n options: { includeBaseName?: boolean } = { includeBaseName: true },\n) {\n return function*(action: { payload: P }) {\n const payload = get(action, 'payload') as P;\n const state = yield select();\n\n try {\n if (actionCreators.start) {\n yield put(actionCreators.start());\n } else {\n const actions = actionCreators.startWithPayload(payload);\n\n for (const action of actions) {\n yield put(action);\n }\n }\n\n const base = options.includeBaseName ? baseUri : '';\n\n const data = yield call(\n apiFunction,\n `${base}${isFunction(apiUrl) ? apiUrl(payload, state) : apiUrl}`,\n apiKey(state),\n isFunction(queryParameters) ? queryParameters(state, payload) : queryParameters,\n );\n\n if (actionCreators.done) {\n yield put(actionCreators.done(data));\n } else {\n const actions = actionCreators.doneWithPayload(data, payload, state);\n\n for (const action of actions) {\n yield put(action);\n }\n }\n } catch (e) {\n console.error(e);\n\n if (actionCreators.error) {\n yield put(actionCreators.error(e));\n } else {\n const actions = actionCreators.errorWithPayload(e, payload);\n\n for (const action of actions) {\n yield put(action);\n }\n }\n }\n };\n}\n\nexport function* persistToQueryString(queryKey: string, value: string) {\n const state = yield select();\n\n const query = omit(RouterSelectors.getQuery(state), queryKey);\n\n if (!isNil(value) && value.length > 1) {\n query[queryKey] = value;\n }\n\n const action = {\n type: RouterSelectors.getLocation(state),\n payload: RouterSelectors.getPayload(state),\n meta: {\n query,\n location: {\n kind: 'redirect',\n },\n },\n };\n yield put(action);\n}\n\nexport function* persistObjectToQueryString(\n object: { [key: number]: any } | { [key: string]: any },\n) {\n const state = yield select();\n\n const action = {\n type: RouterSelectors.getLocation(state),\n payload: RouterSelectors.getPayload(state),\n meta: {\n query: {\n ...RouterSelectors.getQuery(state),\n ...object,\n },\n location: {\n kind: 'redirect',\n },\n },\n };\n yield put(action);\n}\n\nexport function* persistMultipleToQueryString(queryParams: [string, string][]) {\n const state = yield select();\n\n const queryStringItems = fromPairs(queryParams);\n\n const action = {\n type: RouterSelectors.getLocation(state),\n payload: RouterSelectors.getPayload(state),\n meta: {\n query: {\n ...RouterSelectors.getQuery(state),\n ...queryStringItems,\n },\n location: {\n kind: 'redirect',\n },\n },\n };\n yield put(action);\n}\n\nfunction* takeLatestNavActionHelper(worker: HelperFunc0, action: A) {\n if (!isRedirect(action)) {\n yield call(worker, action);\n }\n}\n\nexport function takeLatestNavAction(\n pattern: Pattern,\n worker: HelperFunc0,\n): ForkEffect {\n return takeLatest>(pattern, takeLatestNavActionHelper, worker);\n}\n\nexport function anyRoutingAction(action: Action) {\n return !isNil(action.type.match(/routing\\/*/));\n}\n\nexport function scrollToTop() {\n window.scrollTo(0, 0);\n}\n","/** @format **/\n\nimport { drop, isEmpty, isNil, trim } from 'lodash';\n\nexport * from './toNumber';\n\nexport function uppercaseFirstCharacter(word: string) {\n return `${word.substr(0, 1).toUpperCase()}${word.substr(1)}`;\n}\n\nexport function currentWordIndexes(\n value: string,\n searchIndex: number,\n): {\n start: number;\n end: number;\n} {\n let start = -1;\n let end = searchIndex;\n\n const letters = value.split('');\n const startSearchAt = searchIndex - 1;\n\n for (let i = startSearchAt; i >= 0; i--) {\n if (letters[i] === ' ' || letters[i] === '\\n') {\n start = startSearchAt - (startSearchAt - i);\n end = startSearchAt;\n break;\n }\n }\n\n return {\n start: start,\n end: end,\n };\n}\n\nexport function replaceWord(\n currentValue: string,\n newWord: string,\n cursorIndex: number,\n): {\n value: string;\n newIndexStart: number;\n newIndexEnd: number;\n} {\n const indexToReplace = currentWordIndexes(currentValue, cursorIndex);\n const newValue = `${currentValue.substr(\n 0,\n indexToReplace.start + 1,\n )}${newWord} ${currentValue.substr(indexToReplace.end + 1)}`;\n\n return {\n value: newValue,\n newIndexStart: indexToReplace.start,\n newIndexEnd: indexToReplace.start + newValue.length,\n };\n}\n\nexport function findPreviousWord(value: string, index: number) {\n const letters = value.split('');\n const startSearchAt = index - 1;\n let word = '';\n\n for (let i = startSearchAt; i >= 0; i--) {\n if (letters[i] === ' ' || letters[i] === '\\n') {\n break;\n }\n\n word = letters[i] + word;\n }\n\n return word;\n}\n\nexport function ellipseCallsFromStart(value: string, depth: number = 3): string {\n const split = value.split('.');\n\n if (split.length <= depth) {\n return value;\n }\n\n return `...${drop(split, split.length - depth).join('.')}`;\n}\n\nexport function convertCommaSeparatedListToArray(str: string): string[] {\n if (str.indexOf(',') === -1) {\n return [str];\n }\n\n const arr = str.split(',');\n\n return arr.filter(a => !isNil(a) && trim(a).length > 0);\n}\n\nexport function isUnknown(value: string): boolean {\n return value.trim().toLowerCase() === 'unknown';\n}\n\nexport function pluralize(\n descriptor: string,\n amount: number | string,\n suffix: string = 's',\n): string {\n let result = descriptor;\n\n if (amount !== 1) {\n result += suffix;\n }\n\n return result;\n}\n\nexport const isNotNilOrEmpty = (value: any) =>\n !isNil(value) && !isEmpty(value.toString()) && value.toString().trim().length > 0;\n\nexport const unescapeCSharpString = (value: string) => {\n return value\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\b/g, '\\b')\n .replace(/\\\\f/g, '\\f')\n .replace(/\\\\'/g, '\\'')\n .replace(/\\\\\"/g, '\\\"')\n .replace(/\\\\\\\\/g, '\\\\')\n .replace(/\\\\\\//g, '/');\n};","/** @format */\n\nimport * as React from 'react';\nimport { ComponentType } from 'react';\nimport { Action } from 'redux-first-router';\nimport { startsWith, isNil } from 'lodash';\nimport { MomentInput } from 'moment';\n\nimport { ROUTE_ACTION_BASE } from 'utils/routing';\n\nexport type ReactComponent

= React.ComponentClass

| React.FunctionComponent

;\n\nexport type DateInput = Omit;\n\nexport function isComponent(arg: any): arg is ComponentType {\n if (isNil(arg)) {\n return false;\n }\n\n return typeof arg === 'function' || (arg.prototype && arg.prototype.isReactComponent);\n}\n\nexport function isFunction(arg: any): arg is Function {\n if (isNil(arg)) {\n return false;\n }\n\n return (arg).apply !== undefined;\n}\n\nexport function isString(arg: any): arg is string {\n return (arg).toLowerCase !== undefined;\n}\n\nexport function isNavigationAction(arg: any): arg is Action {\n return startsWith((arg).type, ROUTE_ACTION_BASE);\n}\n\nexport type Omit = Pick>;\n\nexport type Subtract = Omit;\n\n/**\n * Acquire the props for a Component {T}\n */\nexport type PropsOf = T extends (props: infer P) => React.ReactElement | null // Try to infer for SFCs\n ? P\n : T extends new (props: infer P) => React.Component // Otherwise try to infer for classes\n ? P\n : never;\n\nexport type PropsOfWithDefaults> = P extends any\n ? string extends keyof P\n ? P\n : Pick> &\n Partial>> &\n Partial>>\n : never;\n\nexport type PartialRecursive = T extends object\n ? { [K in keyof T]?: PartialRecursive }\n : T;\n","import { every } from \"lodash\";\n\nexport function emailAddress(email: string, multipleEmails: boolean = false) {\n if(multipleEmails) {\n const emails = email.split(';');\n return every(emails, e => {\n if(e.trim().length > 0) {\n return e.indexOf('@') > -1 && e.split('@')[1].length > 2;\n }\n\n return true;\n });\n }\n\n return email.indexOf('@') > -1 && email.split('@')[1].length > 2;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t995: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkraygun_website\"] = self[\"webpackChunkraygun_website\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [432,717,440,211,218,40,807,523], () => (__webpack_require__(887)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","takeEvery","patternOrChannel","worker","_len","arguments","length","args","Array","_key","apply","undefined","concat","takeLatest","_len2","_key2","yTake","done","value","yFork","ac","yCancel","task","action","setTask","t","setAction","q1","q2","q3","name","savingMessageDefaults","saving","error","savingNotification","messages","position","defaults","payload","SUCCESS","id","type","message","disableDismiss","ERROR","HydrateNotificationsFromCookie","cookieNotification","appSelector","state","app","configurationSelector","configuration","pageDataSelector","pageData","applicationIdentifier","config","ApplicationIdentifier","getAppId","ApplicationId","planIdentifier","PlanIdentifier","apiKey","PlanTitle","ApiKey","getPlanId","ApplicationApiKey","TagUsers","PlanId","getApplications","planId","find","Plans","plan","Id","PlanOwner","IsInOwnersTeam","Applications","getApplicationsForCurrentPlan","applications","filter","a","getCurrentApplication","some","application","apmEnabled","appId","NoAPMDataSent","keyBy","Dashboards","enabledApmIntegrations","ErrorDashboardPlugins","EnabledApmIntegrations","hasSourceCodeIntegration","s","indexOf","DashboardIdentifier","DashboardId","getAppIdentifier","getPlanIdentifier","getFeatureFlags","Features","planContainsLegacyProduct","ff","hasPricing2023FeatureFlag","getCrashReportingHasReceivedData","ApplicationHasReceivedErrors","getRUMHasReceivedData","ApplicationHasReceivedPulseEvents","getAPMHasReceivedData","ApplicationHasReceivedTraces","allProductsHaveReceivedData","crash","rum","apm","crashOnTrial","CrashIsInTrial","rumOnTrial","PulseIsInTrial","apmOnTrial","APMIsInTrial","allProductsOnTrial","getPlatformId","PlatformId","getPlans","platformId","i","getPlanForPage","plans","planIdForPage","p","hasBasicPlan","PlanLevelEnum","isInOwnersTeam","PlanLevel","FreeAndTrial","currentPlan","parseInt","IsUsingExternalProvider","IsHeroku","isNil","hasReachedUserLimit","HasReachedUserLimit","canInviteUsers","getAntiForgeryToken","document","querySelector","input","get","getPage","token","__RequestVerificationToken","fullName","UsersName","UsersId","identifier","avatarUrl","AvatarUrl","external","Page","getAppAvatarUrl","DeploymentsEnabled","ApplicationAvatarUrl","isFeatureGated","PulseUnlocked","CrashReportingUnlocked","DefaultApplicationIdentifier","Theme","ds","colors","amber","blueGrey","brand","primary","secondary","link","inactive","blueRG1050","active","blue1500","cyan","green","greenL","grey","purple","blue","red","semantic","teal","pink","indigo","lime","yellow","orange","special","getColorByName","color","transparent","white","black","colorGroup","replace","this","standardBoxShadow","dialogBoxShadow","fonts","standard","shadows","box","boxHeavy","dropdown","modal","border","dark","light","darkest","lighter","lightest","ember","highlight","stealth","text","blackLight","greyDark","greyLight","one","two","three","azure","azureHighlight","byzantine","flame","success","lightning","material","social","Fade","props","appear","children","mountOnEnter","onExited","duration","unmountOnExit","visible","withTimeout","easing","opacity","useState","rendered","setRendered","useLayoutEffect","setTimeout","defaultStyles","transition","fadeIn","visibility","transitionStyles","entering","entered","exiting","fadeOut","exited","child","only","Transition","in","timeout","style","defaultProps","mediaQueryFactory","baseQuery","andAbove","andBelow","checkBreakpoint","bind","mediaMatches","bindMediaQuery","currentQuery","addListener","setState","matches","unbindMediaQuery","removeListener","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","e","render","Medium","Large","display","padding","borderBottom","theme","width","float","omit","textColor","disabledTextColor","hoverHighlightColor","pressedHighlightColor","backgroundColor","disabledBackgroundColor","hoverBackgroundColor","pressedBackgroundColor","SharedDefaultProps","enabledColor","enabledSelectedColor","disabledColor","disabledSelectedColor","uncheckedIcon","checkedIcon","isRadioButton","StyledTextGenerator","size","weight","lineHeight","forLink","as","cursor","bold","fontWeight","fontSize","inline","wrapWithEllipsis","overflow","textOverflow","alignment","textAlign","textDecorationLine","whiteSpace","overflowWrap","font","H1","H2","H4","Link","textDecorationStyle","textUnderlineOffset","grey800","textDecorationColor","blueGrey300","ActiontipWrapper","createComponentWithProxy","fullWidthTrigger","ActiontipContainer","renderer","transformString","rightAlignedTransformString","animation","renderKeyframe","alignRight","transform","right","left","top","zIndex","borderRadius","fontStyle","maxWidth","ActiontipLabel","ActiontipArrow","bottom","arrowWidthDelta","height","Actiontip","label","hideArrow","icon","set","IconAfter","classes","textClasses","iconClasses","spanElement","className","StyledIconButton","styles","userSelect","iconSize","textDecoration","outline","grey500","clickable","grey400","grey600","verticalAlign","marginRight","marginLeft","grey300","blue400","blue600","createComponent","Icon","classNames","inButton","center","onClick","extraClasses","dsColor","spanProps","title","isEmpty","alignCenter","renderedIcon","align","justify","order","before","after","refocus","emptySearch","onSearch","handleChange","componentWillReceiveProps","nextProps","focus","searchInput","onInput","onSubmit","key","event","target","activeElement","close","placeholder","ref","onChange","tabIndex","onKeyUp","onBlur","Container","paddingRight","Sidebar","paddingLeft","gutter","SidebarLayout","sidebar","LayoutStyleFactory","smallScreen","applyBreakpointProps","mediumScreenOnly","mediumScreens","largeScreens","largeScreensAndBelow","xLargeScreensOnly","applyPaddingModifiers","StyledPaddingComponent","StyledMarginComponent","baseProps","mediaQuery","units","builtStyleRules","all","removeForLastChild","onlyOnSmall","onlyLargeAndBelow","notOnSmall","PaddingComponent","MarginComponent","LayoutComponentFactory","LayoutComponent","displayName","BuiltLayoutComponent","applyToChildren","mappedChildren","map","Padding","Margin","borderTop","noBorder","smallPadding","header","renderClose","modalBody","footer","showClose","closeOnBackdropClick","ModuleHeader","flexWrap","justifyContent","Panel","base","borderColor","grey200","borderLeftWidth","red50","red500","blue50","blue500","borderless","paddingTopOnly","paddingTop","paddingBottom","paddingVertical","paddingHorizontal","shadow","boxShadow","scrollX","overflowX","rounded","HEADING_CLASSES","getTextColorClass","getTextAlignmentClass","Text","layout","uppercase","caps","ellipsis","break","mono","inlineBlock","elementProps","Typography","getUnits","Width","largeAndAboveWidth","margin","mediumAndAboveWidth","ERRORS","SERVER_FAILURE","WRONG_PATH_404","FAILED_TO_FETCH","ALREADY_EXISTS","UNAUTHORIZED","PAYMENT_REQUIRED","CONFLICT","screenXXLarge","screenXLarge","screenLarge","screenMedium","breakpoints","screenSmall","screenXXLargeOnly","makeMediaQuery","screenXLargeOnly","screenLargeAndAbove","screenLargeAndBelow","screenMediumAndAbove","screenMediumOnly","screenSmallOnly","matchBreakpointOrAbove","breakpoint","window","matchMedia","matchBreakpointOrBelow","matchBreakpoint","nextBreakpoint","breakpointSmallOnly","breakpointSmallAndAbove","breakpointMediumOnly","breakpointMediumAndAbove","breakpointMediumAndBelow","breakpointLargeOnly","breakpointLargeAndAbove","breakpointLargeAndBelow","minWidth","Error","ContainersWrapper","LeftContainer","LeftContainerWrapper","SignInLink","SignInLinkWrapper","LogoImage","TitleWrapper","marginTop","marginBottom","SignInFormContainer","SSOLinkWrapper","alignItems","RightContainer","darkTheme","RightContainerWrapper","flexDirection","SignInAdvertImage","maxHeight","SignInAdvertImagePlaceholder","DescriptionText","TabButtonContainer","TabButton","selected","disabled","TabNavigationContainer","TabNavigationOuterWrapper","noPadding","noPaddingOnMobile","OverflowWrapper","overflowY","scrollBehavior","NavButtonWrapper","mediumOnly","buttonsVisible","HorizontalScroll","scrollStep","onNextClick","onPrevClick","containerRef","useRef","current","scrollLeft","scrollWidth","offsetWidth","disabledButtons","setDisabledButtons","setButtonsVisible","useEffect","containerScrollWidth","containerOffsetWidth","isButtonDisabled","isNext","currentLeft","updateDisabledButtons","getNavButton","prevDisabled","nextDisabled","useCallback","multiplier","newValue","nextScrollPosition","Math","floor","max","onScroll","innerRef","TabNavigationControl","withHelpTip","SocialButtonType","TabPane","Tab","Tabs","defaultActiveTabId","tabData","toArray","pick","initialState","activeTab","isDefaultActiveTabDisabled","activeTabId","setActiveTabId","tabButtons","tab","helptip","linkText","arrowPosition","getTabButtons","activeContent","StartTrialWrapper","isMobile","StartTrialModule","href","SignInForm","isUnmaskPassword","toggleUnmaskPassword","rememberMeChecked","toggleRememberMeChecked","antiForgeryToken","returnSite","returnUrl","isEmailValid","setEmailValid","method","direction","email","iconRight","checked","forForm","BaseDefaultProps","FelaBaseAlert","renderAsBanner","minHeight","centerAlign","FelaAlertContentContainer","showDismissButton","onDismiss","Component","BaseAlert","SocialButtonBase","SocialButton","platform","buttonColor","socialButtonType","Github","github","GooglePlus","google","getButtonColor","socialType","platformName","SocialSignIn","InformationBox","wrap","LeftSection","alt","src","RightSection","snowplowId","bannerData","bannerId","interactionId","bannerLink","bannerImgSrc","bannerImgHeader","bannerImgDescription","bannerLinkText","ConnectedLayout","connect","dispatch","signInBanner","authentication","signIn","banner","getSignInBanner","createAction","fetchSignInBanner","updateSignInBanner","signInBannerFetchingStarted","signInBannerFetchingSucceeded","signInBannerFetchingFailed","SignInReducer","reducerWithInitialState","fetching","hasErrored","isFetching","case","parsedBanner","JSON","parse","reducerUpdate","BlogUrl","defaultTo","externalRequest","fetchSignInBannerSaga","start","includeBaseName","forwardSignInBannerToStore","GoToSignInStep","SignInScreen","Routes","Reducer","AuthenticationReducer","combineReducers","A","App","DefaultLayout","Authentication","Layout","ActiveScreen","getElementById","locationSelector","location","screensSelector","screens","selectorForQuery","query","fallback","getPathname","pathname","getLocation","getPayload","getQuery","getSearch","search","getPrev","prev","getRangeQuery","kind","getDateFromQuery","getDateToQuery","getDateTimeRaw","range","dateFrom","dateTo","getActiveScreen","rawRange","dateTimeQueries","clone","utc","Date","subtract","format","screen","component","getActiveLayout","fetchFromApp","path","parameters","k","fetch","headers","credentials","then","catch","postToApp","isFormData","queryParameters","Accept","body","stringify","deleteOnApp","fetchFromAPI","mode","postToAPI","signal","externalRequestFactory","basename","_apiKey","expandParameters","logRequestAsBreadcrumb","checkStatus","parseAsJsonOrText","response","ok","status","addQueryPrefix","strictNullHandling","getWebAppUri","host","getWebApiUri","contentType","delayRequest","milliseconds","Promise","convertObjectToFormDataString","obj","arrayFormat","url","is2XXStatus","toString","isLocal","isIntegrationTest","hasRaygun","rg4js","trackPage","logError","customData","trackBreadcrumb","level","metadata","getQueryStringParam","defaultValue","urlSearchQuery","ignoreQueryPrefix","getQueryStringObject","baseUri","setBaseUri","createFetchSaga","actionCreators","apiUrl","apiFunction","options","actions","startWithPayload","data","doneWithPayload","console","errorWithPayload","takeLatestNavActionHelper","takeLatestNavAction","pattern","anyRoutingAction","match","isNotNilOrEmpty","trim","isFunction","arg","emailAddress","multipleEmails","emails","split","every","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","g","globalThis","Function","hmd","create","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","push","__webpack_exports__"],"sourceRoot":""}