{"version":3,"file":"main.79c462015369dc98.js","mappings":"0SAAO,MAAMA,EAAY,CACvBC,YAAa,CACXC,QAAS,CACPC,YAAa,KAEfC,UAAW,CACTD,YAAa,KAEfE,YAAa,CACXF,YAAa,KAEfG,gBAAiB,CACfH,YAAa,OAKNI,EAAU,CACrB,CAAC,OAAQ,UACT,CAAC,YAAa,UACd,CAAC,eAAgB,eACjB,CAAC,CAAEC,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,QAC3C,CAAC,aAAc,eAAgB,cAAe,kBAGnCC,EAAiB,CAC5B,CAAC,OAAQ,UACT,CAAC,YAAa,UACd,CAAC,eAAgB,eACjB,CAAC,CAAED,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,QAC3C,CAAC,QACD,CAAC,aAAc,eAAgB,cAAe,kBAGnCE,EAAW,CAAC,CACvBC,KAAM,SACNC,MAAO,KACN,CACDD,KAAM,SACNC,MAAO,KACN,CACDD,KAAM,QACNC,MAAO,KACN,CACDD,KAAM,UACNC,MAAO,KACN,CACDD,KAAM,cACNC,MAAO,KACN,CACDD,KAAM,aACNC,MAAO,KACN,CACDD,KAAM,WACNC,MAAO,KACN,CACDD,KAAM,cACNC,MAAO,MAIIC,EAAc,CACzBC,QAAS,UACTC,MAAO,QACPC,QAAS,OACTC,MAAO,QACPC,aAAc,gBAGHC,EAAiB,CAC5B,CACER,KAAM,SACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,KAET,CACED,KAAM,WACNC,MAAO,KAET,CACED,KAAM,UACNC,MAAO,MAIEQ,EAAc,CACzB,CAAET,KAAM,OAAQC,MAAO,OAAQS,YAAY,GAC3C,CAAEV,KAAM,MAAOC,MAAO,MAAOS,YAAY,GACzC,CAAEV,KAAM,OAAQC,MAAO,OAAQS,YAAY,GAC3C,CAAEV,KAAM,SAAUC,MAAO,SAAUS,YAAY,GAC/C,CAAEV,KAAM,QAASC,MAAO,QAASS,YAAY,IAGlCC,EAAS,CACpB,CACEX,KAAM,OACNC,MAAO,KAET,CACED,KAAM,SACNC,MAAO,MAIEW,EAAmB,CAC9B,CAAEX,MAAO,UAAWD,KAAM,WAC1B,CAAEC,MAAO,SAAUD,KAAM,UACzB,CAAEC,MAAO,QAASD,KAAM,SACxB,CAAEC,MAAO,SAAUD,KAAM,UACzB,CAAEC,MAAO,cAAeD,KAAM,eAC9B,CAAEC,MAAO,aAAcD,KAAM,cAC7B,CAAEC,MAAO,SAAUD,KAAM,UACzB,CAAEC,MAAO,QAASD,KAAM,UAGba,EAAe,CAC1B,CACEb,KAAQ,MACRC,MAAS,OACR,CACDD,KAAQ,KACRC,MAAS,OAGAa,EAAkB,CAC7BC,KAAQ,yWACRC,MAAS,sQACTC,IAAO,4hBACPC,IAAO,kgBACPC,KAAQ,uWAGGC,EAAsB,sEACtBC,EAA4B,0DAC5BC,EAAmC,wDACnCC,EAA8B,0DAE9BC,GAAe,CAC1BC,QAAS,IACTC,UAAW,KACXC,IAAI,IACJC,QAAQ,KAGGC,EAAkB,CAC7B,EAAK,SACL,EAAI,MACJ,EAAI,UACJ,EAAI,OACJ,EAAI,MACJ,EAAI,KACJ,EAAI,SACJ,GAAK,QACL,GAAK,SACL,GAAK,SACL,GAAK,YACL,IAAM,SACN,IAAM,UAGKC,EAAe,CAE1BC,IAAM,CAACC,KAAK,SAASC,IAAI,+BACzBC,IAAM,CAACF,KAAK,SAASG,KAAK,cAC1BC,IAAM,CAACJ,KAAK,UAAUG,KAAK,WAC3BE,KAAO,CAACL,KAAK,kBAAkBG,KAAK,eACpCG,IAAM,CAACN,KAAK,MAAMC,IAAI,0BACtBM,MAAQ,CAACP,KAAK,YAAYG,KAAK,qBAC/BK,KAAO,CAACR,KAAK,kBAAkBG,KAAK,kBACpCM,IAAM,CAACT,KAAK,iBAAiBG,KAAK,mBAClCO,KAAO,CAACV,KAAK,QAAQG,KAAK,mBAC1BQ,IAAM,CAACX,KAAK,eAAeC,IAAI,iCAC/BW,IAAM,CAACZ,KAAK,cAAcC,IAAI,kCAC9BY,KAAO,CAACb,KAAK,kBAAkBG,KAAK,WACpCW,KAAO,CAACd,KAAK,aAAaG,KAAK,QAC/BY,KAAO,CAACf,KAAK,kBAAkBC,IAAI,kCAIxBe,EAAoB,CAC/BC,MAAO,mEAGIC,EAAc,CACzB,CAAEC,GAAI,EAAGnB,KAAM,WACf,CAAEmB,GAAI,EAAGnB,KAAM,YACf,CAAEmB,GAAI,EAAGnB,KAAM,SACf,CAAEmB,GAAI,EAAGnB,KAAM,SACf,CAAEmB,GAAI,EAAGnB,KAAM,OACf,CAAEmB,GAAI,EAAGnB,KAAM,QACf,CAAEmB,GAAI,EAAGnB,KAAM,QACf,CAAEmB,GAAI,EAAGnB,KAAM,UACf,CAAEmB,GAAI,EAAGnB,KAAM,aACf,CAAEmB,GAAI,GAAInB,KAAM,WAChB,CAAEmB,GAAI,GAAInB,KAAM,YAChB,CAAEmB,GAAI,GAAInB,KAAM,aAGLoB,GAAe,iIC9LrB,IAAMC,EAAW,MAAlB,MAAOA,EAWXC,YACUC,GAAAC,KAAAD,iBAXFC,KAAAC,KAAO,IAAIC,IAAgB,MAC3BF,KAAAG,OAA2B,KAE5BH,KAAAI,SAAWJ,KAAKC,KAAKI,eACrBL,KAAAM,gBAAkB,IAAIC,IACtBP,KAAAQ,aAAe,IAAIN,IAA8B,KAOrD,CAGIO,YACL,MAAMC,EAAyBV,KAAKD,eAAeY,IAAI,gBACvD,IAAIC,EAAcZ,KAAKD,eAAeY,IAAI,SAiBtCD,EAAuBG,OAAS,EAClCb,KAAKc,SAASC,KAAKC,MAAMC,mBAAmBP,KAErCE,EAAYC,OAAS,GAC5Bb,KAAKc,SAASC,KAAKC,MAAMC,mBAAmBL,KAE9CZ,KAAKD,eAAemB,OAAO,eAAgB,IAAK,yBAE5B,OAAhBlB,KAAKG,QACPH,KAAKmB,YAET,CAEOL,SAASM,GAEdpB,KAAKqB,oBAELrB,KAAKD,eAAeuB,IAClB,QAASC,mBAAmBR,KAAKS,UAAUJ,IAC3C,CAAEK,KAAM,IAAKC,QAAQ,EAAMC,SAAU,WAGvC3B,KAAKG,OAAS,IAAKiB,EACrB,CAEOQ,WACL,OAAO5B,KAAKG,MACd,CAEOgB,aACLnB,KAAKqB,oBACLrB,KAAK6B,gBACP,CAEOA,iBACLC,OAAOC,SAASC,KAAOC,IAAYC,WAAa,aAAeX,mBAAmBO,OAAOC,SAASC,KACpG,CAEOG,gBACL,OAAOnC,KAAKD,eAAeY,IAAI,QACjC,CAEQU,oBACNrB,KAAKD,eAAemB,OAAO,QAAS,IAAK,yBAAyB,GAClElB,KAAKD,eAAemB,OAAO,QAAS,IACtC,iDAhFWrB,GAAWuC,MAAAC,KAAA,sCAAXxC,EAAWyC,QAAXzC,EAAW0C,UAAAC,WAFV,QAAM,SAEP3C,CAAW,4GCDjB,IAAM4C,EAAc,MAArB,MAAOA,EAEX3C,YACU4C,GAAA1C,KAAA0C,OACN,CAEGC,WAAWhD,GAChB,OAAOK,KAAK0C,MAAM/B,IAAcsB,IAAYW,IAAM,WAAajD,GAC5DkD,QACCC,KAAYC,MAAmBC,KAAW,IAAMD,IAEtD,CAEOE,YAAYC,GACjB,OAAOlD,KAAK0C,MAAMS,KAAiBlB,IAAYW,IAAM,kBAAmBM,GACrEL,QACCC,KAAYC,MAAmBC,KAAW,IAAMD,IAEtD,iDAlBWN,GAAcL,MAAAC,MAAA,sCAAdI,EAAcH,QAAdG,EAAcF,UAAAC,WAFb,QAAM,SAEPC,CAAc,2GCDpB,IAAMW,EAAe,MAAtB,MAAOA,EAEXtD,YACU4C,GAAA1C,KAAA0C,OACN,CAEGW,oBAAoBH,GACzB,OAAOlD,KAAK0C,MAAMS,KAAmClB,IAAYW,IAAO,0BAA2BM,GAChGL,QACCC,KAAWC,MAASC,KAAW,IAAMD,IAE3C,CAEOO,qBAAqBJ,GAC1B,OAAOlD,KAAK0C,MAAMS,KAAWlB,IAAYW,IAAO,4BAA6BM,GAC1EL,QACCC,KAAWC,MAASC,KAAW,IAAMD,IAE3C,CAEOQ,mBAAmBC,GACxB,OAAOxD,KAAK0C,MAAM/B,IAAUsB,IAAYW,IAAO,0BAA4BY,GACxEX,QACCC,KAAWC,MAASC,KAAW,IAAMD,IAE3C,iDAzBWK,GAAehB,MAAAC,MAAA,sCAAfe,EAAed,QAAfc,EAAeb,UAAAC,WAFd,QAAM,SAEPY,CAAe,yICCrB,IAAMK,EAAc,MAArB,MAAOA,EAMX3D,YACU4C,GAAA1C,KAAA0C,QAHH1C,KAAAM,gBAAkB,IAAIC,GAIzB,CAEGmD,mBAAmBC,GACxB,OAAO3D,KAAK0C,MAAM/B,IAAsBsB,IAAYW,IAAO,WAAae,EAAY,aAAad,QAC/Fe,KAAY,IAAC,EACbd,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOc,sBAAsBC,EAAoBZ,GAC/C,OAAOlD,KAAK0C,MAAMS,KAAuBlB,IAAYW,IAAO,WAAakB,EAAa,YAAaZ,GAASL,QAC1GC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOgB,kBAAkBJ,GACvB,OAAO3D,KAAK0C,MAAM/B,IAAqBsB,IAAYW,IAAM,gBAAkBe,GAAWd,QACpFC,KAAYkB,MACHhB,KAAW,IAAMgB,IAG9B,CAEOC,iBAAiBN,GACtB,OAAO3D,KAAK0C,MAAM/B,IAAqBsB,IAAYW,IAAM,WAAae,EAAY,iBAC/Ed,QACCC,KAAYkB,MACHhB,KAAW,IAAMgB,IAGhC,CAEOE,0BAA0BP,GAC/B,MAAMQ,EAAuBnE,KAAKoE,sBAElC,OAAKD,GAAwBR,EACpB3D,KAAK+D,kBAAkBJ,GAC3Bd,QACCwB,KAAKC,IACHtE,KAAKoE,sBAAwBE,EAC7BtE,KAAKM,gBAAgBiE,KAAKD,GAEnBA,MAIbE,WAAW,KACTxE,KAAKM,gBAAgBiE,KAAKJ,EAAoB,GAG3CnE,KAAKM,gBAAgBD,eAE9B,iDAhEWoD,GAAcrB,MAAAC,MAAA,sCAAdoB,EAAcnB,QAAdmB,EAAclB,UAAAC,WAFb,QAAM,SAEPiB,CAAc,yICepB,IAAMgB,EAAY,MAAnB,MAAOA,EAOX3E,YAAoB4E,EAA0BC,GAA1B3E,KAAA0E,OAA0B1E,KAAA2E,OANtC3E,KAAA4E,aAAe,IAAIrE,IAGnBP,KAAA6E,iBAAmB,IAAItE,GAGoC,CAE5DuE,eAAe7E,GACpBD,KAAK4E,aAAaL,KAAKtE,EACzB,CAEO8E,oBACL,OAAO/E,KAAK4E,aAAavE,cAC3B,CAGO2E,eAAe/E,GACpB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,gBAAiB3C,GAAM4C,QAC/DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkC,cAAchF,GACnB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,SAAU3C,GAAM4C,QACxDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmC,YAAYjF,GACjB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,UAAY3C,EAAKkF,UAAWlF,GAAM4C,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAI9B,CAEOqC,cAAcD,GACnB,OAAOnF,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,UAAYuC,EAAY,WAAWtC,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGOsC,aAAa1B,GAClB,OAAO3D,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAae,GAAWd,QAC/DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuC,oBAAoBC,GACzB,OAAOvF,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,kCAAoC5C,KAAK2E,KAAKb,WAAa,SAAWyB,GAAS1C,QACtHC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACOyC,uBAAuBD,GAC5B,OAAOvF,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,SAAWyB,EAAU,gBAAgB1C,QAChHC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGO0C,oBAAoBC,GACzB,OAAO1F,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,kCAAmC8C,GAAa7C,QACxFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAIO4C,YAAY1F,GACjB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,aAAc3C,GAAM4C,QAC5DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6C,cAAc3F,GACnB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,aAAc3C,GAAM4C,QAC5DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO8C,gBAAgBC,GACrB,OAAO9F,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAM,cAAgBkD,GAAWjD,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOgD,mBAAmB9F,EAAgB6F,GACxC,OAAO9F,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,cAAgBkD,EAAU7F,GAAM4C,QACxEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOiD,iBAAiBF,GACtB,OAAO9F,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,cAAgBkD,EAAW,WAAWjD,QAC7EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkD,iBAAiBhG,GACtB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,oBAAqB3C,GAAM4C,QACnEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGOmD,cAAcjG,EAAc0D,GACjC,OAAO3D,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAae,EAAY,qBAAsB1D,GAAM4C,QAC7FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOoD,cAAclG,GACnB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,cAAe7D,GAAM4C,QACjGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqD,iBAAiBnG,EAAkBoG,GACxC,OAAOrG,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,eAAiBuC,EAAQpG,GAAM4C,QAC3GC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuD,iBAAiBD,GACtB,OAAOrG,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,eAAiBuC,EAAS,WAAWxD,QAChHC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGOwD,oBAAoBrD,GACzB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,0BAA2BM,GAASL,QAC5EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyD,4BACL,OAAOxG,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,kCAAkCC,QACzEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0D,mBAAmBvD,GACxB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,mBAAoBM,GAASL,QACrEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2D,sBAAsB/G,EAAYuD,GACvC,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,oBAAsBjD,EAAIuD,GAASL,QAC3EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4D,sBAAsBhH,GAC3B,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,oBAAsBjD,EAAK,WAAWkD,QAC7EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGO6D,eAAe1D,GACpB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,YAAaZ,GAASL,QAClGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO8D,uBAAuBlH,EAAYuD,GACxC,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,aAAenE,EAAIuD,GAASL,QACxGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO+D,eAAenH,GACpB,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,WAAa,aAAenE,EAAK,WAAWkD,QAC1GC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOgE,sBAAsB7D,GAC3B,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,kBAAmBM,GAASL,QACpEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOiE,8BAA8BrH,EAAYuD,GAC/C,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,mBAAqBjD,EAAIuD,GAASL,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkE,sBAAsBtH,GAC3B,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,mBAAqBjD,EAAK,WAAWkD,QAC5EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAGOmE,oBACL,OAAOlH,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,2BAA2BC,QAClEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOoE,kBAAkBjE,GACvB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,iBAAkBM,GAASL,QACnEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqE,iBACL,OAAOpH,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAa5C,KAAK2E,KAAKb,YAAYjB,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsE,oBAAoBnE,EAAiBY,GAC1C,OAAO9D,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAakB,EAAa,YAAaZ,GAASL,QACxFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuE,cAAcrH,GACnB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa3C,EAAK6D,WAAY7D,GAAM4C,QAC5EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwE,YAAYtH,GACjB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,iBAAkB3C,GAAM4C,QAChEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyE,uBAAuB7H,GAC5B,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAajD,GAAIkD,QACxDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0E,uBAAuBxH,EAAmBN,GAC/C,OAAOK,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAajD,EAAIM,GAAM4C,QAC/DC,KAAYC,MACHC,KAAW,IAAMD,IAI9B,CAEO2E,kBAAkBC,EAAiBhI,GACxC,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAajD,EAAK,UAAYgI,EAAU,YAAY9E,QACzFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6E,kBAAkBC,EAAiBlI,GACxC,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAajD,EAAK,UAAYkI,EAAU,YAAYhF,QACzFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO+E,oBAAoBC,EAAmBpI,GAC5C,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAajD,EAAK,YAAcoI,EAAY,YAAYlF,QAC7FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOiF,oBAAoB/H,GACzB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAY3C,GAAM4C,QACxDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkF,iBAAiBtE,GACtB,OAAO3D,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAae,EAAY,WAAWd,QACzEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmF,cAAchF,GACnB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,gBAAiBZ,GAASL,QACpGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOoF,oBACL,OAAOnI,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,aAAajB,QACtFC,KAAYC,MACHC,KAAW,IAAMD,IAI9B,CACOqF,WAAWlF,EAAgBmF,GAChC,OAAOrI,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,SAAWuE,EAAQnF,GAASL,QACtGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuF,QAAQpF,GACb,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,SAAUZ,GAASL,QAC7FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACOwF,WAAWrF,GAChB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,eAAgBZ,GAASL,QACnGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyF,eAAejD,GACpB,OAAOvF,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,SAAWyB,EAAU,gBAAgB1C,QAC9GC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0F,qBAAqBvF,EAAyBqC,GACnD,OAAOvF,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,WAAa5C,KAAK2E,KAAKb,WAAa,SAAWyB,EAAU,eAAgBrC,GAASL,QACxHC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2F,WAAWxF,GAChB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,eAAgBM,GAASL,QAC/DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4F,UAAUzF,GACf,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,iBAAkBM,GAASL,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6F,oBAAoB1F,GACzB,OAAOlD,KAAK0E,KAAKvB,KAAuBlB,IAAYW,IAAM,wBAAyBM,GAASL,QAC1FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO8F,iBAAiBC,GACtB,OAAO9I,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,iBAAmBkG,EAAqB,YAAYjG,QACzFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOgG,wBAAwB7F,GAC7B,OAAKlD,KAAKgJ,uBAA+D,IAAtChJ,KAAKgJ,sBAAsBnI,QAY5D2D,WAAW,KACTxE,KAAK6E,iBAAiBN,KAAKvE,KAAKgJ,sBAAqB,GAIlDhJ,KAAK6E,iBAAiBxE,gBAhBpBL,KAAK4I,oBAAoB1F,GAC7BL,QACCwB,KAAM4E,IACJjJ,KAAKgJ,sBAAwBC,EAC7BjJ,KAAK6E,iBAAiBN,KAAKvE,KAAKgJ,uBAEzBhJ,KAAKgJ,wBAWtB,CAEOE,0BACLlJ,KAAKgJ,sBAAwB,EAC/B,CAEOG,oBAAoBC,GACzB,OAAOpJ,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,iBAAmBwG,EAAW,YAAYvG,QAC/EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsG,sBACL,OAAOrJ,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAW5C,KAAK2E,KAAKb,cAAcjB,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuG,iBAAiBpG,GACtB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,iBAAkBM,GAASL,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACOwG,gBAAgBC,GACrB,OAAOxJ,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAaX,IAAYwH,uBAAyB,iCAAkCD,GAAU3G,QACtIC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO2G,sBAAsBF,GAC3B,OAAOxJ,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAa4G,EAAS1F,WAAa,0BAA2B0F,GAAU3G,QAChHC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CACO4G,mBAAmBC,GACxB,OAAO5J,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,WAAaX,IAAYwH,uBAAyB,2BAA6BG,EAAmB,UAC7I,iDAngBWnF,GAAYrC,MAAAC,MAAAD,MAAAyH,KAAA,sCAAZpF,EAAYnC,QAAZmC,EAAYlC,UAAAC,WAFX,QAAM,SAEPiC,CAAY,mJCflB,IAAMqF,EAAe,MAAtB,MAAOA,EAIXhK,YAAoB4E,EAA0BC,GAA1B3E,KAAA0E,OAA0B1E,KAAA2E,OAHtC3E,KAAA+J,aAAe,IAAIxJ,IACnBP,KAAAgK,cAAgB,IAAIzJ,IACpBP,KAAAiK,aAAe,IAAI1J,GACwC,CAE5D2J,cAAcjK,GACnBD,KAAK+J,aAAaxF,KAAKtE,EACzB,CAEOkK,eACL,OAAOnK,KAAK+J,aAAa1J,cAC3B,CAEO+J,eAAenK,GACpBD,KAAKgK,cAAczF,KAAKtE,EAC1B,CAEOoK,gBACL,OAAOrK,KAAKgK,cAAc3J,cAC5B,CAEOiK,UAAUrK,GACfD,KAAKiK,aAAa1F,KAAKtE,EACzB,CAEOsK,WACL,OAAOvK,KAAKiK,aAAa5J,cAC3B,CAEOmK,kBAAkBvK,GACvB,IAAIuJ,EACJ,OACEA,EADe,YAAbvJ,EAAKwK,KACI,CACTjB,SAAY,CACVkB,QAAW,CACTD,KAAQ,SACRhO,MAAS,CAACuD,KAAK2E,KAAK/C,WAAW8I,QAAQC,aAEzCC,WAAc,CACZH,KAAQ,QACRhO,MAAS,CAACwD,EAAK4K,UAAW5K,EAAK6K,WAGnCC,WAAc,GACdC,YAAe,GAEK,eAAb/K,EAAKwK,KACH,CACTjB,SAAY,CACVyB,SAAY,CAAER,KAAM,QAAShO,MAAO,CAACwD,EAAKiL,aAAcjL,EAAKiL,eAC7DN,WAAc,CAAEH,KAAM,QAAShO,MAAO,CAACwD,EAAKiL,aAAcjL,EAAKiL,gBAEjEC,kBAAqB,QAGD,QAAblL,EAAKwK,KACH,CACTjB,SAAW,CACT4B,eAAkB,CAAEX,KAAM,SAAUhO,MAAO,CAAC,KAC5CwO,SAAY,CAAER,KAAM,SAAUhO,MAAO,CAAC,KACtCmO,WAAc,CAAEH,KAAM,QAAShO,MAAO,CAACwD,EAAKiL,aAAcjL,EAAKiL,gBAEjEC,kBAAqB,OAED,oBAAblL,EAAKwK,KACH,CACTjB,SAAY,CACV4B,eAAkB,CAAEX,KAAM,SAAUhO,MAAO,CAAC,KAC5CmO,WAAc,CAAEH,KAAM,SAAUhO,MAAO,CAACwD,EAAKiL,gBAE/CC,kBAAqB,OAIZ,CACT3B,SAAY,CACVkB,QAAW,CACTD,KAAQ,SACRhO,MAAS,CAACuD,KAAK2E,KAAK/C,WAAW8I,QAAQC,aAEzCM,SAAY,CACVR,KAAQ,SACRhO,MAAS,CAAC,KAEZ2O,eAAkB,CAChBX,KAAQ,SACRhO,MAAS,CAAC,MAGduO,YAAe,EACfG,kBAAqB,OAGzB3B,EAAS6B,YAAiB,SAExB7B,EAASuB,WADM,eAAb9K,EAAKwK,MAAsC,QAAbxK,EAAKwK,MAA+B,oBAAbxK,EAAKwK,KACnC,6IAEA,GAEX,YAAbxK,EAAKwK,OAAoBjB,EAAS8B,cAAkB,cAChDtL,KAAK0E,KAAKvB,KACflB,IAAYW,IAAM,QAAU5C,KAAK2E,KAAK/C,WAAW8I,QAAU,sBAAuBlB,GAAU3G,QAC5FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwI,eAAeC,GACpB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAU4I,EAAOd,QAAU,gBAAiBc,GAAQ3I,QAC5FC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO0I,mBAAmBD,GACxB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAQ4I,EAAOhI,uBAAwBgI,GAAQ3I,QACvFC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO2I,gBAAgBF,EAAaG,GAClC,OAAO3L,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,eAAiB+I,EAAgBH,GAAQ3I,QACjFC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO6I,WAAWJ,GAChB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,eAAgB4I,GAAQ3I,QAChEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO8I,YAAYL,GACjB,OAAOxL,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,eAAiB4I,EAAS,YAAY3I,QAC7EC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO+I,aAAanM,GAClB,IAAI6L,EAAS,CAAEJ,eAAgBW,IAAO,IAAIC,MAAQC,OAAO,qBACzD,OAAOjM,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,eAAiBjD,EAAI6L,GAAQ3I,QACrEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,iDA5JW+G,GAAe1H,MAAAC,MAAAD,MAAAyH,KAAA,sCAAfC,EAAexH,QAAfwH,EAAevH,UAAAC,WAFd,QAAM,SAEPsH,CAAe,4JCCrB,IAAMoC,EAAa,MAApB,MAAOA,EAIXpM,YAAoB4E,EAA0BC,GAA1B3E,KAAA0E,OAA0B1E,KAAA2E,OAHtC3E,KAAAmM,YAAc,IAAI5L,IAClBP,KAAAoM,cAAgB,IAAIlM,IAAqB,IACzCF,KAAAqM,cAAgB,IAAI9L,GACuC,CAE5D+L,iBAAiBrM,GACtBD,KAAKmM,YAAY5H,KAAKtE,EACxB,CAEOsM,kBACL,OAAOvM,KAAKmM,YAAY9L,cAC1B,CAEOmM,gBAAgBC,GACrBzM,KAAKoM,cAAc7H,KAAKkI,EAC1B,CAEOC,iBACL,OAAO1M,KAAKoM,cAAc/L,cAC5B,CAEOsM,gBAAgBF,GACrBzM,KAAKqM,cAAc9H,KAAKkI,EAC1B,CAEOG,iBACL,OAAO5M,KAAKqM,cAAchM,cAC5B,CAEOwM,iBACL,OAAO7M,KAAK0E,KAAK/D,IAAIsB,IAAY6K,MAAQ,YAAc9M,KAAK2E,KAAK/C,WAAW8I,QAAU,WAAW7H,QAC/FC,KAAYkB,MACHhB,KAAW,IAAMgB,IAG9B,CAEO+I,oBACL,OAAO/M,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,4BAA4BC,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOiK,iBAAiBrN,GACtB,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,WAAajD,EAAK,KAAKkD,QAC5DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkK,qBACL,OAAOjN,KAAK0E,KACT/D,IACCsB,IAAYW,IAAM,QAAU5C,KAAK2E,KAAK/C,WAAW8I,QAAU,aAE5D7H,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOmK,YAAYT,GACjB,OAAOzM,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,eAAgB6J,GAAO5J,QAC7DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOoK,kBAAkBV,GACvB,OAAOzM,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,+BAAgC6J,GAAO5J,QAC7EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqK,4BAA4BC,GACjC,OAAOrN,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,2BAA4ByK,GACnDxK,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOuK,gBACL,OAAOtN,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,eAAeC,QACpDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwK,gBACL,OAAOvN,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,eAAeC,QACpDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyK,kBACL,OAAOxN,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,iBAAiBC,QACtDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0K,uBACL,OAAOzN,KAAK0E,KACT/D,IACCsB,IAAYW,IACZ,0BACA5C,KAAK2E,KAAK/C,WAAW8I,SAEtB7H,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO2K,WAAWzN,GAChB,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,OAAQ3C,GAC/B4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO4K,WAAW1N,EAAUyK,GAC1B,OAAO1K,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,QAAU8H,EAASzK,GAC1C4C,QACCC,KAAYC,OACHC,KAAW,IAAMD,KAGhC,CAEO6K,cAAc5C,EAAqBP,GACxC,IAAIjB,GACJ,OACEA,GADW,eAATiB,EACS,CACTY,YAAa,SACb7B,SAAU,CACRqE,UAAW,CACTpD,KAAM,SACNhO,MAAO,CAAC,YAII,gBAATgO,EACE,CACTY,YAAa,SACb7B,SAAU,CACRsE,gBAAiB,CACfrD,KAAM,SACNhO,MAAO,CAAC,SAEVoR,UAAW,CACTpD,KAAM,SACNhO,MAAO,CAAC,UAEVsR,WAAY,CACVtD,KAAM,QACNhO,MAAO,CAAC,IAAKsP,MAASiC,QAExBC,SAAU,CACRxD,KAAM,QACNhO,MAAO,CAACsP,MAASiC,MAAO,OAG5BjD,WAAY,GACZmD,iBAAkB,IAGT,CACT7C,YAAa,SACb7B,SAAU,CACRqE,UAAW,CACTpD,KAAM,SACNhO,MAAO,CAAC,UAGZsO,WACE,8EACFC,YAAaA,EACbkD,iBAAkB,GAClB5C,cAAe,aACfH,kBAAmB,QAGhBnL,KAAK0E,KACTvB,KACClB,IAAYW,IACZ,QACA5C,KAAK2E,KAAK/C,WAAW8I,QACrB,qBACAlB,IAED3G,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOoL,cAAc3E,GACnB,OAAOxJ,KAAK0E,KACTvB,KACClB,IAAYW,IACZ,QACA5C,KAAK2E,KAAK/C,WAAW8I,QACrB,sBACAlB,GAED3G,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOqL,UAAU5E,GACf,OAAOxJ,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,SAAU4G,GAAU3G,QAC1DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,iDAhPWmJ,GAAa9J,MAAAC,MAAAD,MAAAyH,KAAA,sCAAbqC,EAAa5J,QAAb4J,EAAa3J,UAAAC,WAFZ,QAAM,SAEP0J,CAAa,kLCKnB,IAAMmC,EAA0B,MAAjC,MAAOA,EAQXvO,YACkCG,EACxBqO,EACAC,GACAC,IAHwBxO,KAAAC,OACxBD,KAAAsO,iBACAtO,KAAAuO,mBACAvO,KAAAwO,gBAERxO,KAAKyO,iBAAmBxO,EAAKyO,gBAC7B1O,KAAK2O,QAAU1O,EAAK2O,OACpB5O,KAAK6O,aAAe5O,EAAK6O,YACzB9O,KAAK+O,cAAgB9O,EAAK+O,YAC5B,CAEAC,WACA,CAEOC,sBACLlP,KAAKuO,gBAAgBY,gBAAgB,CACjCC,oBAAqBpP,KAAK6O,aAC1BrL,QAASxD,KAAK2O,QACdjE,QAAS1K,KAAK+O,cAAcrE,UAE7B7H,QAAKwM,QACLC,UAAU,CACTvM,MAAQiB,IACNhE,KAAKuO,gBAAgBgB,4BAA4BvL,EAAIwL,QAAO,IAKlExP,KAAKyP,gBAAgB,IAEvB,CAEOC,yBAGL1P,KAAKuO,gBAAgBoB,8BAFG3P,KAAKyO,iBAAiBmB,kBAAoB,MAEE5P,KAAK6O,cACzE7O,KAAKyP,gBAAgB,IACvB,CAEQA,gBAAgBI,GAOtB,MAAMC,EAAqB9P,KAAK+P,oBAAsBF,EAAa,IAE/D7P,KAAK+O,cAAciB,wCAA0CF,GAC/D9P,KAAKsO,eAAe2B,2BAA2BjQ,KAAK+O,cAAcrE,QAAU,CAAEsF,uCAAwCF,IACnHjN,QAAKwM,QACLC,UAAU,CACTvM,MAAOA,KACL/C,KAAKwO,aAAa0B,UAAU,oEAAmE,GAGzG,CAEOC,iBAAiBC,GACtBpQ,KAAK+P,oBAAsBK,EAAMC,OACnC,iDArEWhC,GAA0BjM,MAS3BkO,MAAelO,MAAAC,MAAAD,MAAAyH,GAAAzH,MAAAmO,KAAA,oCATdlC,EAA0BmC,UAAA,8BAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,q7BAAAC,SAAA,SAAAC,EAAAC,IAAA,EAAAD,ICdnCzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC5CA,MAAA,sCAA+BA,QACuBA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAIIA,MAFJ,UAEIA,CAFoB,UAEpBA,CADoC,WACNA,MAAA,gBAASA,QACvCA,MAAA,QAAGA,MAAA,iMAA0LA,QAC7LA,MAAA,QAAGA,MAAA,4FACLA,UAK0CA,MAH1C,WAG0CA,CAHH,gBAGGA,CAFK,WAELA,CADE,aACFA,CAAA,kBAAiBA,MAAA,YAAgBA,UACrEA,MAAA,aACEA,MAAA,aACAA,MAAA,QAAGA,MAAA,gBAASA,QACZA,MAAA,WAAkBA,MAAA,iCACpBA,UACAA,MAAA,gBAA+GA,MAAA,0BAAS0O,GAAA5B,qBAAqB,GAAE9M,MAAA,yCAEnJA,YAIwCA,MAFxC,gBAEwCA,CAFK,WAELA,CADE,aACFA,CAAA,kBAAiBA,MAAA,YAAgBA,UAEnEA,MADF,YACEA,CADuD,QACpDA,MAAA,uBAAgBA,QACnBA,MAAA,QAAGA,MAAA,0BACLA,UACAA,MAAA,gBAAsEA,MAAA,0BAAS0O,GAAApB,wBAAwB,GAAEtN,MAAA,wCAIjHA,gBAGEA,MADF,YACEA,CADqC,sBACvBA,MAAA,kBAAA2O,IAAA,OAAUD,GAAAX,iBAAAY,GAAwB,GAAE3O,MAAA,4BAGtDA,qRD7BaiM,CAA0B,4DEAhC,IAAM2C,EAAkB,MAAzB,MAAOA,EAIXlR,YACUmR,EACAC,EACAxO,GACAyO,GACA3C,IAJAxO,KAAAiR,kBACAjR,KAAAkR,UACAlR,KAAA0C,SACA1C,KAAAmR,WACAnR,KAAAwO,gBAPFxO,KAAAoR,SAAmB,EAQxB,CAEIC,8BACL,OAAOrR,KAAK0C,MAAM/B,IAAgCsB,IAAYW,IAAO,0CACjEC,QACAwM,QAAK,EACLvM,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOuO,mBAOL,OAAOtR,KAAK0C,MAAM/B,IAA8BsB,IAAYW,IAAO,mCANnD,CACd4I,OAAQ,CACN+F,oBAAqBvR,KAAKoR,YAK3BvO,QACCwM,QAAK,EACLvM,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOyO,cAAcxC,EAA8BN,GACjD,OAAQA,GAAmBM,GAC0B,KAAhDN,EAAgB+C,8BAC6B,KAA7CzC,EAAayC,8BAC0C,KAAvDzC,EAAagB,sCACpB,CAEOL,8BAA8B+B,EAAyB5C,GAC5D9O,KAAKwO,aAAamD,YAAY,2CAE9BnN,WAAW,KACT1C,OAAOC,SAASC,KAAO0P,EAAkB,IAAM1R,KAAKiR,gBAAgBW,UAAU9C,EAAW,EACxF,IACL,CAEO+C,gBAAgB/C,EAAqBF,EAAgBI,GAA8BN,IACxF,MAAMgD,GAAkBhD,IAAiBkB,kBAAoB,MAC7D,OAAMlB,IAAoBM,IAC2B,KAAhDN,GAAgB+C,8BAC6B,KAA7CzC,GAAayC,8BAC2C,MAAxDzC,GAAagB,uCAGyC,KAAhDtB,GAAgB+C,6BAEmC,KAAxDzC,IAAcgB,uCACThQ,KAAKmP,gBAAgB,CAC1BC,oBAAqBN,EACrBtL,QAASoL,EACTlE,QAASsE,GAAatE,UAIjB1K,KAAK8R,mBAAmBhD,EAAaF,EAAQI,GAAcN,SAV/D,EAFE1O,KAAK2P,8BAA8B+B,GAAiB5C,EAe/D,CAEOK,gBAAgB3D,GACrB,OAAAxL,KAAKwO,aAAauD,iBAAiB,0EAC5B/R,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,gCAAiC4I,GACzE3I,QACCwM,QAAK,EACLvM,KAAYC,MACHC,KAAW,IAAMD,EAAMA,QAGtC,CAEOwM,4BAA4ByC,GACjChS,KAAKiS,cACLjS,KAAKmR,QAAQe,SAAS,CAAC,mCAAoC,CAAEC,MAAO,CAAEH,SAAUA,IAClF,CAEQC,cACNjS,KAAKoR,SAAWtP,OAAOC,SAASC,IAClC,CAEQ8P,mBAAmBhD,EAAqBF,EAAgBI,GAA8BN,IAC5F1O,KAAKkR,QAAQkB,KAAK/D,EAA4B,CAC5CgE,MAAO,MACPC,UAAW,QACXrS,KAAM,CACJyO,gBAAiBA,GACjBE,OAAQA,EACRE,YAAaA,EACbE,aAAcA,KAGpB,iDA3GWgC,GAAkB5O,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,KAAA,sCAAlBxB,EAAkB1O,QAAlB0O,EAAkBzO,UAAAC,WAFjB,QAAM,SAEPwO,CAAkB,gICTxB,IAAMyB,EAAgB,MAAvB,MAAOA,GAGX3S,cAFOE,KAAA0S,WAAkB,IAAI1G,IAEb,CAEhBiD,WACA,iDANWwD,GAAgB,oCAAhBA,GAAgBjC,UAAA,mBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,0bAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICLzBzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC5CA,MAAA,4BAAqBA,QAEzCA,MADF,aACEA,CAD0E,cAChEA,MAAA,WAEdA,YACAA,MAAA,iBAEEA,MADF,UACEA,CADsB,OACnBA,MAAA,mWAA4VA,QAE/VA,MAAA,UAAyBA,MAAA,iBAAUA,MAAA,eAA0BA,MAAA,kBAAWA,QAAUA,MAAA,iLAAyKA,QAGzPA,MADF,WACEA,CADuB,QACpBA,MAAA,mSAAuRA,MAAA,WAAMA,MAAA,qBAAkCA,QAAOA,MAAA,QAACA,QAC1UA,MAAA,QAAGA,MAAA,oEAAmDA,QACtDA,MAAA,QAAGA,MAAA,4EAAqEA,QACxEA,MAAA,QAAGA,MAAA,oDAA6CA,QAChDA,MAAA,QAAGA,MAAA,kEAA2DA,QAC9DA,MAAA,QAAGA,MAAA,iDAA0CA,QAC7CA,MAAA,QAAGA,MAAA,wgBACLA,UACAA,MAAA,SACIA,MAAJ,QAAIA,CAAA,aAAQA,MAAA,SAAWA,UACvBA,MAAA,UAAyBA,MAAA,gBAASA,MAAA,eAA0BA,MAAA,gBAASA,QAAUA,MAAA,+KAAuKA,QAGpPA,MADF,WACEA,CADuB,QACpBA,MAAA,kVAAsUA,QACzUA,MAAA,QAAGA,MAAA,oEAAmDA,QACtDA,MAAA,QAAGA,MAAA,4EAAqEA,QACxEA,MAAA,QAAGA,MAAA,oDAA6CA,QAChDA,MAAA,QAAGA,MAAA,kEAA2DA,QAC9DA,MAAA,QAAGA,MAAA,iDAA0CA,QAC7CA,MAAA,QAAGA,MAAA,ygBAGPA,YAEEA,MADF,WACEA,CADkC,eACSA,MAAA,YAE/CA,mBA1BsSA,MAAA,IAAAA,YAAA,KAAA0O,EAAA4B,WAAA,kUDPzRD,EAAgB,sDEMnBrQ,MAAA,QAAiCA,MAAA,uBAAiBA,kCAClDA,MAAA,QAAiCA,MAAA,sBAAgBA,kCACjDA,MAAA,QAA+BA,MAAA,gBAAUA,kCACzCA,MAAA,QAAiCA,MAAA,kBAAYA,kCAC7CA,MAAA,QAAiCA,MAAA,iCAA2BA,mCAC5DA,MAAA,QAAoCA,MAAA,mCAA6BA,kCACjEA,MAAA,QAAgCA,MAAA,yBAAmBA,kCACnDA,MAAA,QAAiCA,MAAA,0BAAoBA,kCACrDA,MAAA,QAA+BA,MAAA,6BAAuBA,kCACtDA,MAAA,QAA+CA,MAAA,2CAAqCA,mCACpFA,MAAA,QAA+CA,MAAA,2CAAqCA,SCdvF,IAAMuQ,EAAgC,MAAvC,MAAOA,GAEX7S,YACkC8S,EACzBC,EACAC,GAFyB9S,KAAA4S,aACzB5S,KAAA6S,YACA7S,KAAA8S,SAJF9S,KAAA+S,eAAsB,GAK3B/S,KAAK+S,eAAiBH,CACxB,CAEA3D,WAAmB,CAEZ+D,kBACLhT,KAAK6S,UAAUI,QACfjT,KAAK8S,OAAOV,KAAKc,IAAqB,CACpCb,MAAO,OACPpS,KAAMD,KAAK+S,eAAevP,SAE9B,iDAjBWmP,IAAgCvQ,MAGjCkO,MAAelO,MAAAC,MAAAD,MAAAC,MAAA,oCAHdsQ,GAAgCnC,UAAA,oCAAAC,MAAA,GAAAC,KAAA,GAAAC,OAAA,yZAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDPzCzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,uBACnBA,UACAA,MAAA,iBAGIA,MAFJ,UAEIA,CAFoB,SAEpBA,CADI,OACDA,MAAA,+IACDA,MAAA,SAAqBA,MAAA,0BAAS0O,EAAAkC,iBAAiB,GAAE5Q,MAAA,iBAAUA,QAAKA,MAAA,kEAClEA,QACAA,MAAA,UAAgBA,MAAA,4DAClBA,UACAA,MAAA,SAWEA,MAVA,GAAA+Q,EAAA,WAUA/Q,CAViC,GAAAgR,EAAA,WAUjChR,CATiC,GAAAiR,EAAA,WASjCjR,CAR+B,GAAAkR,EAAA,WAQ/BlR,CAPiC,GAAAmR,EAAA,WAOjCnR,CANiC,GAAAoR,GAAA,WAMjCpR,CALoC,GAAAqR,EAAA,WAKpCrR,CAJgC,GAAAsR,EAAA,WAIhCtR,CAHiC,GAAAuR,EAAA,WAGjCvR,CAF+B,GAAAwR,EAAA,WAE/BxR,CAD+C,GAAAyR,GAAA,YAGnDzR,UAEEA,MADF,WACEA,CADkC,eACSA,MAAA,YAAKA,QAChDA,MAAA,eAAwCA,MAAA,0BAAS0O,EAAAkC,iBAAiB,GAAE5Q,MAAA,kBAExEA,mBAjBWA,MAAA,IAAAA,MAAA,OAAA0O,EAAAiC,eAAAe,OACA1R,cAAA,OAAA0O,EAAAiC,eAAAgB,OACA3R,cAAA,OAAA0O,EAAAiC,eAAAiB,KACA5R,cAAA,OAAA0O,EAAAiC,eAAAkB,OACA7R,cAAA,OAAA0O,EAAAiC,eAAAmB,OACA9R,cAAA,OAAA0O,EAAAiC,eAAAoB,UACA/R,cAAA,OAAA0O,EAAAiC,eAAAqB,MACAhS,cAAA,OAAA0O,EAAAiC,eAAAZ,OACA/P,cAAA,OAAA0O,EAAAiC,eAAAsB,KACAjS,cAAA,OAAA0O,EAAAiC,eAAAuB,qBACAlS,cAAA,OAAA0O,EAAAiC,eAAAwB,4FCdF5B,EAAgC,yCCGtC,IAAM6B,GAAoB,MAA3B,MAAOA,GAEX1U,YACUoR,GAAAlR,KAAAkR,SACP,CAEHjC,WAAkB,CACXwF,uBAAuBC,EAAWC,EAA2BC,EAAWC,EAAepK,GAwC1F,MAvCa,CACTqK,MAAS,IACTtR,QAAWoR,EAAKpR,QAChBuR,OAAU,GACVrK,QAAWgK,EAAKhK,QAChBsK,YAAeJ,EAAKd,MAAQ,IAAMc,EAAKb,MACvCkB,aAAgBL,EAAKM,cAAcjB,MAAQW,EAAKM,cAAcjB,MAAQ,GACtEkB,WAAcP,EAAKZ,IACnBoB,WAAcR,EAAKS,gBAAgBhB,IACnCiB,aAAwB,UAAR7K,EAAmB,MAAQ,SAC3C8K,OAAU,GACVC,sBAAyB,GACzBC,oBAAuB,GACvBC,kBAAqB,GACrBC,aAAgB,IAChBC,YAAe,IACfC,wBAA2B,GAC3BC,uBAA0B,GAC1BC,IAAO,CACLvS,QAAWoR,EAAKpR,QAChBkH,QAAWgK,EAAKhK,QAChBsL,QAAW,YACXhB,YAAeJ,EAAKd,MAAQ,IAAMc,EAAKb,MACvCkC,aAAgBrB,EAAKV,MACrBgC,eAAkBlW,KAAKmW,kBAAkBvB,EAAKS,iBAC9Ce,SAAY,GACZC,aAAgB,GAChBC,WAAc5B,EAAKZ,MAAQ,IAAMY,EAAKX,MACtCwC,YAAe7B,EAAK8B,cAActC,MAClCuC,YAAe/B,EAAKQ,cAAcjB,MAClCyC,cAAiBhC,EAAKW,gBAAgBlB,SAAW,IAAMO,EAAKW,gBAAgBjB,KAAO,KAAOM,EAAKW,gBAAgBsB,SAAW,IAAMjC,EAAKW,gBAAgBhB,IACrJuC,eAAkB/B,EAASgC,cAAgBhC,EAASgC,cAAgB,GACpEC,eAAkB,KAClBC,wBAA2B,GAC3BC,iBAAoBnC,EAASoC,QAAUlL,SAAW8I,EAASoC,SAAShL,OAAO,cAAgB,GAC3FiL,YAAe,GACfC,eAAkBxC,GAI5B,CAEQwB,kBAAkBiB,GACxB,IAAIC,EAAqB,GAKzB,OAJID,GAAiBA,EAAajD,UAAYiD,EAAajD,SAAStT,OAAS,GAAOuW,EAAahD,MAAQgD,EAAahD,KAAKvT,OAAS,GAAOuW,EAAaT,UAAYS,EAAaT,SAAS9V,OAAS,GAAOuW,EAAa/C,KAAO+C,EAAa/C,IAAIxT,OAAS,IAEtPwW,EAAqBD,EAAajD,SAAW,MADlBiD,EAAaE,UAAYF,EAAaE,SAASzW,OAAS,EAAKuW,EAAaE,SAAW,KAAO,IAC7CF,EAAahD,KAAO,KAAOgD,EAAaT,SAAW,IAAMS,EAAa/C,KAE3IgD,CACT,CAEOE,wBAAwBC,GAkB7B,MAjBqB,CACnBC,MAASD,EAAOC,MAChBC,MAASF,EAAO5M,WAAa4M,EAAO5M,WAAa,GACjDjL,GAAM6X,EAAO7L,eACbgM,OAAUH,EAAOI,YACjBC,IAAOL,EAAOvM,SACd6M,cAAiB,CACfpN,QAAW8M,EAAO9M,QAClBoJ,MAAS0D,EAAO1D,MAChBC,MAASyD,EAAOzD,MAChBvQ,QAAWgU,EAAOhU,QAClBuU,YAAeP,EAAOO,YACtBC,WAAcR,EAAOQ,WACrB5M,eAAkBoM,EAAOpM,eACzB6M,oBAAuBT,EAAOS,qBAIpC,CAEOC,aAAaC,EAAyBC,EAAiBC,GAAoB,GAChFvW,OAAOwW,OAAO,EAAG,GAEjB,MAAMC,EAA0B,CAC9B/U,QAAS2U,EAAY3U,QACrBsQ,OAASqE,EAAYrE,MAAMjT,OAC3BkT,OAASoE,EAAYpE,MAAMlT,OAC3BmT,KAAOmE,GAAanE,KAAKnT,OACzBqT,OAASiE,GAAa3B,eAAetC,OAAOrT,OAC5CsT,UAAYgE,GAAa9C,iBAAiBlB,UAAUtT,OACpDuT,MAAQ+D,GAAa9C,iBAAiBjB,MAAMvT,OAC5CsR,OAASgG,GAAa9C,iBAAiBsB,UAAU9V,OACjDwT,KAAO8D,GAAa9C,iBAAiBhB,KAAKxT,QAGtC2X,EAAgB,CACpBnG,MAAO,OAGLgG,KAEAE,EAAwBzE,OACrByE,EAAwBxE,OACxBwE,EAAwBvE,KACxBuE,EAAwBrE,OACxBqE,EAAwBpE,UACxBoE,EAAwBnE,MACxBmE,EAAwBpG,OACxBoG,EAAwBlE,KAK3BrU,KAAKkR,QAAQkB,KADA,OAAXgG,EACgBK,IAGAC,IAHiB,IAAIF,IAK/BH,EAKVrY,KAAKkR,QAAQkB,KAAKO,EAAkC,IAC/C6F,EACHvY,KAAMsY,IANO,QAAXH,GACFpY,KAAKkR,QAAQkB,KAAKK,EAAkB,IAAK+F,GAQ/C,iDAhIWhE,IAAoBpS,MAAAC,MAAA,sCAApBmS,GAAoBlS,QAApBkS,GAAoBjS,WAAA,SAApBiS,EAAoB,0LCM1B,IAAMmE,EAAW,MAAlB,MAAOA,EA0BX7Y,YACU4E,EACAC,GADA3E,KAAA0E,OACA1E,KAAA2E,OA3BF3E,KAAA4Y,aAAe,IAAIrY,IACnBP,KAAA6Y,eAAiB,IAAItY,IACrBP,KAAA8Y,cAAgB,IAAIvY,IAEpBP,KAAA+Y,SAAW,IAAI7Y,IAAqB,IACpCF,KAAAgZ,iBAAmB,IAAI9Y,IAAqB,IAC5CF,KAAAiZ,gBAAkB,IAAI/Y,IAAqB,IAC3CF,KAAAkZ,eAAiB,IAAIhZ,IAAqB,IAC1CF,KAAAmZ,cAAgB,IAAIjZ,IAAqB,IACzCF,KAAAoZ,YAAc,IAAIlZ,IAAqB,IACvCF,KAAAqZ,eAAiB,IAAInZ,IAAqB,IAC1CF,KAAAsZ,mBAAqB,IAAIpZ,IAAqB,IAC9CF,KAAAuZ,iBAAmB,IAAIrZ,IAAqB,IAC5CF,KAAAwZ,iBAAmB,IAAItZ,IAAqB,IAC5CF,KAAAyZ,aAAe,IAAIvZ,IAAqB,IACzCF,KAAA0Z,gBAAkB,IAAInZ,IACrBP,KAAA2Z,cAAgB,IAAIzZ,IAAqB,IACzCF,KAAA4Z,eAAiB,IAAI1Z,IAAqB,IAC1CF,KAAA6Z,eAAiB,IAAI3Z,IAAqB,IAE1CF,KAAA8Z,YAAc,IAAI5Z,IAAiC,MAEpDF,KAAA+Z,aAAuB,GAEvB/Z,KAAAga,cAAwB,CAK/B,CAEOC,QAAQC,GACbla,KAAK8Z,YAAYvV,KAAK2V,EACxB,CAEOC,YACLna,KAAK8Z,YAAYvV,KAAK,KACxB,CAEO6V,iBACL,OAAOpa,KAAK8Z,YAAYO,UAC1B,CAEOC,cACL,OAAOta,KAAK8Z,YAAYzZ,cAC1B,CAEOka,kBAAkBta,GACvBD,KAAK4Y,aAAarU,KAAKtE,EACzB,CAEOua,mBACL,OAAOxa,KAAK4Y,aAAavY,cAC3B,CAEOoa,iBAAiBxa,GACtBD,KAAK6Y,eAAetU,KAAKtE,EAC3B,CAEOya,kBACL,OAAO1a,KAAK6Y,eAAexY,cAC7B,CAEOsa,eAAe1a,GACpBD,KAAK8Y,cAAcvU,KAAKtE,EAC1B,CAEO2a,gBACL,OAAO5a,KAAK8Y,cAAczY,cAC5B,CAEOwa,eAAe5a,GACpBD,KAAK2Z,cAAcpV,KAAKtE,EAC1B,CAEO6a,iBACL,OAAO9a,KAAK2Z,cAActZ,cAC5B,CAIO0a,gBAAgB9a,GACrBD,KAAK4Z,eAAerV,KAAKtE,EAC3B,CAEO+a,kBACL,OAAOhb,KAAK4Z,eAAevZ,cAC7B,CAMO4a,iBAAiBhb,GACtBD,KAAK6Z,eAAetV,KAAKtE,EAC3B,CAEOib,mBACL,OAAOlb,KAAK6Z,eAAexZ,cAC7B,CAIO8a,YAAYlb,GACjB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,oBAAqB3C,GAAM4C,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqY,SAAStX,GAWd,OAAO9D,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,cAV5B,CACVyI,YAAa,SACb7B,SAAU,CACR1F,WAAYA,GAEdiH,WAAY,sBACZC,YAAa,EACbM,cAAe,QACfH,kBAAmB,QAEyCtI,QAC5DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsY,eAAepb,GACpB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,sBAAuB3C,GAAM4C,QACnEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuY,YAAY9X,GAWjB,OAAOxD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,mBAV7B,CACT4G,SAAU,CACRhG,QAASA,GAEX6H,YAAa,SACbC,cAAe,UACfH,kBAAmB,OACnBJ,WACE,2FAE8DlI,QAChEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwY,yBAAyBtb,GAC9B,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,iCAAkC3C,GACzD4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOyY,yBAAyBvb,GAC9B,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,iCAAkC3C,GACzD4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO0Y,gBAAgBjY,EAAiBvD,GACtC,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,gBAAiBvD,GAC5D4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO2Y,gBAAgBhR,EAAiBzK,GACtC,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,QAAU8H,EAAU,gBAAiBzK,GAC5D4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO4Y,WAAWC,GAChB,IAAIpQ,EACJ,OAAQoQ,EAAa5f,aACnB,IAAK,UACHwP,EAAS,CACPH,YAAa,SACb7B,SAAU,CACRxN,YAAa,CACXyO,KAAM,SACNhO,MAAO,CAACof,KAAoB/f,YAAYC,QAAQC,cAElD8H,WAAY,CACV2G,KAAM,SACNhO,MAAO,CAACmf,EAAa9X,aAEvB4G,QAAS,CACPD,KAAM,SACNhO,MAAO,CAACmf,EAAalR,WAGzBK,WAAY,GACZC,YAAa,EACbkD,iBAAkB,GAClB4N,gBAAiB,GAEnB,MACF,IAAK,YACHtQ,EAAS,CACPH,YAAa,SACb7B,SAAU,CACRxN,YAAa,CACXyO,KAAM,SACNhO,MAAO,CAACof,KAAoB/f,YAAYG,UAAUD,cAEpD8H,WAAY,CACV2G,KAAM,SACNhO,MAAO,CAACmf,EAAa9X,aAEvB4G,QAAS,CACPD,KAAM,SACNhO,MAAO,CAACmf,EAAalR,UAEvBqR,aAAc,CACZtR,KAAM,MACNhO,MAAOmf,EAAa3f,YAGxB8O,WAAY,GACZC,YAAa,EACbkD,iBAAkB,GAClB4N,gBAAiB,GAEnB,MACF,IAAK,cACHtQ,EAAS,CACPH,YAAa,SACb7B,SAAU,CACRxN,YAAa,CACXyO,KAAM,SACNhO,MAAO,CAACof,KAAoB/f,YAAYI,YAAYF,cAEtD8H,WAAY,CACV2G,KAAM,SACNhO,MAAO,CAACmf,EAAa9X,aAEvB4G,QAAS,CACPD,KAAM,SACNhO,MAAO,CAACmf,EAAalR,WAGzBK,WAAY,GACZC,YAAa,EACbkD,iBAAkB,GAClB4N,gBAAiB,GAEnB,MACF,IAAK,mBACHtQ,EAASoQ,EAAazf,iBACfqN,SAASxN,YAAc,CAC5ByO,KAAM,SACNhO,MAAO,CAACof,KAAoB/f,YAAYK,gBAAgBH,cAE1DwP,EAAOhC,SAAS1F,WAAa,CAC3B2G,KAAM,SACNhO,MAAO,CAACmf,EAAa9X,aAEvB0H,EAAOhC,SAASkB,QAAU,CACxBD,KAAM,SACNhO,MAAO,CAACmf,EAAalR,UAI3B,OAAO1K,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,cAAe4I,GAAQ3I,QAC7DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOiZ,eAAeC,GACpB,OAAOjc,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,0BAA4BqZ,GAAQpZ,QACzEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmZ,WAAW1Q,GAChB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,OAAQ4I,GAAQ3I,QACxDC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOoZ,iBAAiB9H,GACtB,OAAOrU,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,qBAAqByR,KAAOxR,QACnEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO6I,WAAWJ,GAChB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,eAAgB4I,GAAQ3I,QAChEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOqZ,sBAAsBxN,GAc3B,OAAO5O,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,+BAb7B,CACXyI,YAAe,SACf7B,SAAY,CACRhG,QAAW,CACTiH,KAAQ,SACRhO,MAAS,CAACmS,KAGhBV,iBAAmB,KACnBlD,YAAc,IACdD,WAAc,KAGkElI,QAChFC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOsZ,yBAAyBpc,GAC9B,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,yBAA0B3C,GAAM4C,QACtEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuZ,cAAcrc,EAAWwK,GAC9B,OAAOzK,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAU6H,EAAO,IAAKxK,GAAM4C,QAClEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwZ,qBAAqBtc,GAC1B,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,cAAe3C,GAAM4C,QAC3DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyZ,kBAAkBhZ,EAAeuR,GACtC,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAUY,EAAU,QAAUuR,EAAS,YAAYlS,QACxFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0Z,sBAAsBjZ,EAAeuR,GAC1C,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAUY,EAAU,oBAAsBuR,EAAS,YAAYlS,QACpGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2Z,sBAAsBzc,GAC3B,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,6BAA8B3C,GAAM4C,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4Z,mBAAmBnZ,EAAcvD,GACtC,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,mBAAqBvD,GAAM4C,QACrFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6Z,kBAAkBlS,GAIvB,OAAO1K,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,oBAH/B,CACT8H,QAAS,CAACA,KAEyD7H,QACnEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO8Z,iBAAiBC,GACtB,IAAI7c,EAAO,CACT6D,WAAc9D,KAAK2E,KAAKb,WACxB4G,QAAW1K,KAAK2E,KAAK/C,WAAW8I,QAChCqS,mBAAsB,IACtB9c,KAAQ,sBACR+c,UAAaF,EACbG,eAAkBlR,MAASE,OAAO,OAEpC,OAAOjM,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,aAAc3C,GAAM4C,QAC5DC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOma,eAAe1Z,GACpB,OAAOxD,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,GAASX,QAC1DC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOoa,eAAe3Z,GACpB,OAAOxD,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,EAAQ,QAAQX,QACjEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAGOqa,eAAe5Z,GACpB,OAAOxD,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,EAAQ,gBAAgBX,QACzEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOsa,cAAc7Z,EAAgB8Z,GACnC,OAAOtd,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,EAAQ,aAAa8Z,GAAUza,QAChFC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOwa,gBAAgB/Z,GACrB,OAAOxD,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,EAAQ,gBAAgBX,QACzEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOya,UAAUha,GACf,OAAOxD,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAUY,EAAQ,aAAaX,QACtEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO0a,cAAchT,GACnB,IAAIjB,EACA1F,EACJ,MAAa,aAAT2G,GACFjB,EAAW,CACT6B,YAAe,SAAU7B,SAAY,CAAE1F,WAAc,CAAE2G,KAAQ,SAAUhO,MAAS,CAACwF,IAAYwH,0BAA6BsB,WAAc,IAE5IjH,EAAa7B,IAAYwH,yBAEzBD,EAAW,CACT6B,YAAe,SACf7B,SAAY,CACV1F,WAAc,CACZ2G,KAAQ,SACRhO,MAAS,CAACuD,KAAK2E,KAAKb,cAGxBiH,WAAc,GACdO,cAAiB,UACjBH,kBAAqB,OAEvBrH,EAAa9D,KAAK2E,KAAKb,YAElB9D,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAakB,EAAa,qBAAsB0F,GAAU3G,QAClGC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO2a,gBAAgBla,EAAiBvD,GACtC,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,sBAAuBvD,GAAM4C,QACvFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4a,gBAAgBza,GACrB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,eAAgBM,GAASL,QACjEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO6a,gBAAgBpa,EAAiBvD,GACtC,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAUY,EAASvD,GAAM4C,QACjEwM,QAAK,EACLvM,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO8a,iBAAiBrS,GACtB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAQ5C,KAAK8d,aAAata,iBAAkBgI,GAAQ3I,QAC5FC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOgb,eAAeC,GACpB,OAAOhe,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,wCAAwC5C,KAAK8d,aAAata,yBAAyBwa,KAAanb,QACvIC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOkb,gBAAgBhe,GACrB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAS3C,GAAM4C,QACrDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmb,mBAAmB1S,GACxB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,sBAAuB4I,GAAQ3I,QACvEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAGOwG,gBAAgB4U,GAcrB,OAAOne,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,WAAaX,IAAYwH,uBAAyB,iCAb7E,CACb4B,YAAe,SACf7B,SAAY,CACV2U,cAAiB,CACf1T,KAAQ,SACRhO,MAAS,CAAC0hB,KAGdpT,WAAc,uCACdC,YAAe,EACfM,cAAiB,gBACjBH,kBAAqB,QAEiHtI,QACtIC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOqb,sBAAsB5S,GAC3B,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,mBAAoB4I,GAAQ3I,QACpEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOsb,mBAAmB7a,EAAiB8a,GACzC,OAAOte,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAUY,EAAU,gBAAkB8a,EAAkB,WAAWzb,QACxGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwb,eAAe/S,GACpB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAQ5C,KAAK8d,aAAata,uBAAwBgI,GAAQ3I,QAClGC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOwI,eAAeC,GACpB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAQ5C,KAAK2E,MAAM6Z,cAAc9T,uBAAwBc,GAAQ3I,QACzGC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO0b,mBAAmBjb,EAAiB8a,EAAyBre,GAClE,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,gBAAkB8a,EAAiBre,GAAM4C,QACnGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2b,yBACL,OAAO1e,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,2BAA2BC,QAChEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkD,iBAAiBhG,GACtB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,oBAAqB3C,GAAM4C,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4b,YAAYC,GACjB,OAAO5e,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,gBAAgBgc,KAAa/b,QACpEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO8b,aAAapS,GAClBzM,KAAK+Y,SAASxU,KAAKkI,EACrB,CAEOqS,cACL,OAAO9e,KAAK+Y,SAAS1Y,cACvB,CAEO0e,uBAAuBvb,EAAiBvD,GAC7C,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,eAAgBvD,GAAM4C,QAChFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOic,mBAAmBxT,EAAahI,GACrC,OAAOxD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAQY,iBAAwBgI,GAAQ3I,QAChFC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOkc,wBAAwBtf,GAC7B,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,eAAejD,KAAMkD,QAC5DC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOmc,uBAAuBvf,GAC5B,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,eAAejD,YAAakD,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOoc,cACL,OAAOnf,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,cAAcC,QACnDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqc,gBAAgBnf,GACrB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,2BAA4B3C,GAAM4C,QACxEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsc,eAAenc,GACpB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,qBAAsBM,GAASL,QACrEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOuc,aAAapc,GAClB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,cAAeM,GAASL,QAC9DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOwc,qBAAqB9S,GAC1BzM,KAAKgZ,iBAAiBzU,KAAKkI,EAC7B,CAEO+S,sBACL,OAAOxf,KAAKgZ,iBAAiB3Y,cAC/B,CAEOof,oBAAoBhT,GACzBzM,KAAKiZ,gBAAgB1U,KAAKkI,EAC5B,CAEOiT,qBACL,OAAO1f,KAAKiZ,gBAAgB5Y,cAC9B,CAEOsf,qBAAqB1f,GAC1B,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,OAAQ3C,GAAM4C,QACtDC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO6c,mBAAmB3f,GACxB,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,0BAA2B3C,GAAM4C,QAAKC,KAAWC,MAClFC,KAAW,IAAMD,IAG5B,CAEO8c,qBAAqB5f,GAC1B,OAAOD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,oBAAqB3C,GAAM4C,QACnEC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO+c,oBAAoBpV,EAAiBzK,GAC1C,OAAOD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,QAAU8H,EAAU,gBAAiBzK,GAC5D4C,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOgd,eAAe9f,GACpB,OAAOD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,kBAAmB3C,GAAM4C,QAC/DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOid,qBAAqBC,EAAeC,GACzC,MAAMC,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQJ,EAAS,IACjC,MAAMK,EAAU,IAAIC,KAAY,CAAEC,cAAiB,UAAiBxgB,KAAK+Z,aAAc,eAAgB,KACvG,OAAO/Z,KAAK0E,KAAK+b,IAAIxe,IAAYW,IAAM,kBAAoBsd,EAAsB,cAAeC,EAAU,CAAEG,QAASA,IAAWzd,QAC9HC,KAAYC,OACHC,KAAW,IAAMD,KAG9B,CAEO2d,mBAAmB/gB,GAExB,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,cAAejD,EAAI,CAACghB,aAAc,SAAS9d,QAChFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6d,sBAAsBjhB,GAC3B,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,sBAAuBjD,EAAI,CAACghB,aAAc,SAAS9d,QACxFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO8d,8BAA8BlhB,GACnC,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,4BAA6BjD,EAAI,CAACghB,aAAc,SAAS9d,QAC9FC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO+d,oBAAoBrU,GACzBzM,KAAKkZ,eAAe3U,KAAKkI,EAC3B,CAEOsU,qBACL,OAAO/gB,KAAKkZ,eAAe7Y,cAC7B,CAEO2gB,4BAA4Bxd,EAAiBN,GAClD,OAAOlD,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,QAAUY,EAAU,mCAAoCN,GAC/EL,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOke,gBAAgBzV,GACrB,OAAOxL,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,cAAe4I,GACtC3I,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOme,mBAAmB1V,GACxB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,OAAQ4I,GAAQ3I,QACxDC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOoe,uBAAuBxhB,GAC5B,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAQjD,KAAMkD,QACrDC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CACOqe,oBAAoBzhB,GACzB,OAAOK,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,kBAAkBjD,KAAMkD,QAC/DC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOse,eAAe5U,GACpBzM,KAAKmZ,cAAc5U,KAAKkI,EAC1B,CAEO6U,gBACL,OAAOthB,KAAKmZ,cAAc9Y,cAC5B,CAEOkhB,uBACL,OAAOvhB,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,aAAaC,QACpDC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOye,eAAeC,GACpB,OAAOzhB,KAAK0E,KAAK/D,IAAKsB,IAAYW,IAAO,QAAU6e,EAAUje,QAAU,QAAUie,EAAU1M,OAAS,yBAAyBlS,QAC3HC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO2e,eAAele,EAAiBuR,EAAgB4M,GACrD,OAAO3hB,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAUY,EAAU,QAAUuR,EAAQ4M,GAAc9e,QAC5FC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEO6e,kBAAkBH,EAA4BtB,GACnD,OAAOngB,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,QAAU6e,EAAUje,QAAU,QAAUie,EAAU1M,OAAQoL,GAAUtd,QAC5GC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAGO8e,iBAAiBrW,GACtB,OAAOxL,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,wBAAyB4I,GAChD3I,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEO+e,WAAWniB,GAChB,OAAOK,KAAK0E,KACT/D,IAAIsB,IAAYW,IAAM,YAAYjD,KAClCkD,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOgf,cAAcvW,GACnB,OAAOxL,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,kBAAmB4I,GAC1C3I,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOif,qBAAqBxW,GAC1B,OAAOxL,KAAK0E,KACTvB,KAAKlB,IAAYW,IAAM,aAAc4I,GACrC3I,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOkf,mBACL,OAAOjiB,KAAK0E,KACT/D,IAAIsB,IAAYW,IAAM,6BACtBC,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOmf,eAAeC,EAAqB3e,GACzC,OAAOxD,KAAK0E,KACT/D,IAAIsB,IAAYW,IAAM,YAAYuf,UAAoB3e,KACtDX,QACCC,KAAYC,MACHC,KAAW,IAAMD,IAGhC,CAEOqf,gBAAgB3V,GACrBzM,KAAKoZ,YAAY7U,KAAKkI,EACxB,CAEO4V,iBACL,OAAOriB,KAAKoZ,YAAY/Y,cAC1B,CAEOiiB,iBAAiB7V,GACtBzM,KAAKqZ,eAAe9U,KAAKkI,EAC3B,CAEO8V,kBACL,OAAOviB,KAAKqZ,eAAehZ,cAC7B,CAEOmiB,qBAAqB/V,GAC1BzM,KAAKsZ,mBAAmB/U,KAAKkI,EAC/B,CAEOgW,sBACL,OAAOziB,KAAKsZ,mBAAmBjZ,cACjC,CAEOqiB,qBAAqBjW,GAC1BzM,KAAKuZ,iBAAiBhV,KAAKkI,EAC7B,CAEOkW,sBACL,OAAO3iB,KAAKuZ,iBAAiBlZ,cAC/B,CAEOuiB,aAAa1f,GAElB,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,aAAcM,GAASL,QAC7DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO8f,UAAUtN,GACf,OAAOvV,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,OAAS2S,EAAS,SAAS1S,QAChEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO+f,WAAWlU,EAAgBmU,GAChC,OAAO/iB,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAUgM,EAAS,SAAWmU,EAAS,WAAWlgB,QACvFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOigB,QAAQpU,EAAgB1L,GAC7B,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUgM,EAAS,QAAS1L,GAASL,QAC3EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOkgB,aAAarU,EAAgB1L,GAClC,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUgM,EAAS,QAAS1L,GAASL,QAC3EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmgB,WAAWtU,EAAgBmU,EAAa7f,GAC7C,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,QAAUgM,EAAS,SAAWmU,EAAQ7f,GAASL,QACrFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOogB,qBAAqBpO,GAC1B,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,4BAA8BmS,GAAQlS,QAC3EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqgB,aAAa5f,EAAiBuR,GACnC,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAUY,EAAU,QAAUuR,EAAS,mBAAoB,CAAE4L,aAAc,gBAAiB9d,QACjIC,KAAYC,GACW,MAAjBA,EAAMsgB,QAAW,EACZC,WAAGC,IAAS,EAEZvgB,KAAW,IAAMD,IAIhC,CAEOygB,cAAczO,GACnB,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,OAASmS,EAAS,oBAAoBlS,QAC3EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO0gB,wBAAwBvgB,GAC7B,OAAOlD,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,uBAAwBM,GAASL,QACvEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2gB,wBAAwBlY,EAAWmY,EAAc,OACvD,IAAIzgB,EAAe,CAChBmI,YAAe,SACf7B,SAAYxJ,KAAK4jB,uBAAuBpY,GACxCmY,OAASA,GAGX,OAAO3jB,KAAK0E,KAAKvB,KAAKlB,IAAYW,IAAM,+BAAgCM,GAASL,QAC/EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6gB,uBAAuBpa,GAC7B,IAAIqa,EAAqB,GACzB,MAAMC,EAAe,CACpB,UACA,UACA,MACE,UAGH,UAAWC,KAAYva,EAErBA,QAASua,IAEiB,KAAvBva,EAASua,IACc,IAAvBva,EAASua,IACqB,IAA9Bva,EAASua,GAAUljB,QAInBijB,EAAaE,QAAQD,IAAY,IACpCF,EAAeE,GAAY,CAC1BtZ,KAAM,SACNhO,MAAO,CAAC+M,EAASua,GAAUpZ,cAI9B,OAAOkZ,CACR,CAEOI,UAAUlP,GACf,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,kCAAoCmS,GAAQlS,QACjFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOmhB,eAAenP,GACpB,OAAO/U,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,uCAAyCmS,GAAQlS,QACtFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,iDAxnCW4V,GAAWvW,MAAAC,MAAAD,MAAAyH,KAAA,sCAAX8O,EAAWrW,QAAXqW,EAAWpW,UAAAC,WAFV,QAAM,SAEPmW,CAAW,oECZjB,IAAMwL,EAAkB,MAAzB,MAAOA,EAKXrkB,cAAe,CAEfskB,SAASC,GACPrkB,KAAKskB,MAAQD,CACf,CAEAE,cAAcC,GACZxkB,KAAKykB,IAAMD,CACb,CAEQE,WAAW9T,GACjB5Q,KAAKykB,IAAIE,QACT3kB,KAAKykB,IAAIG,mBAAmBhU,EAC9B,CAEAwB,KAAKxB,GACH,OAAA5Q,KAAK0kB,WAAW9T,GACT5Q,KAAKskB,MAAMlS,MACpB,CAEAa,QACE,OAAOjT,KAAKskB,MAAMrR,OACpB,CAEA4R,SACE,OAAO7kB,KAAKskB,MAAMO,QACpB,iDA/BWV,EAAkB,sCAAlBA,EAAkB7hB,QAAlB6hB,EAAkB5hB,UAAAC,WAFjB,QAAM,SAEP2hB,CAAkB,4GCGxB,IAAMW,EAAc,MAArB,MAAOA,EAEXhlB,YAAoB4E,GAAA1E,KAAA0E,MAAoB,CAEjCqgB,cAAc7hB,GACnB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,SAAUM,GAASL,QAC3DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACOiiB,WAAW9hB,GAEhB,IAAI+hB,EAAY,GAGhB,OAAO/hB,EAAQgiB,aACb,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,MACHD,EAAY,qBACZ,MACF,IAAK,cACHA,EAAY,iCAIhB,OAAOjlB,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAOqiB,EAAW/hB,GAASL,QAC5DC,KAAYC,MACHC,KAAW,IAAMD,IAI9B,CAEOoiB,oBAAoBjiB,GACzB,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,sBAAuBM,GAASL,QACxEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqiB,oBAAoBzlB,GACzB,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,+BAAgCjD,EAAI,CAACghB,aAAc,SAAS9d,QACjGC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsiB,wBAAwBniB,GAC7B,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,0BAA2BM,GAClEL,QACCC,KAAYC,MAASC,KAAW,IAAMD,IAE5C,CAEOuiB,wBAAwB3lB,GAC7B,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,mCAAoCjD,EAAI,CAAEghB,aAAc,SAC5F9d,QACCC,KAAYC,MAASC,KAAW,IAAMD,IAE5C,CAEOwiB,0BAA0BriB,GAC/B,OAAOlD,KAAK0E,KAAKvB,KAAMlB,IAAYW,IAAO,4BAA6BM,GACpEL,QACCC,KAAYC,MAASC,KAAW,IAAMD,IAE5C,CAEOyiB,0BAA0B7lB,GAC/B,OAAOK,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,qCAAsCjD,EAAI,CAAEghB,aAAc,SAC9F9d,QACCC,KAAYC,MAASC,KAAW,IAAMD,IAE5C,iDA9EW+hB,GAAc1iB,MAAAC,MAAA,sCAAdyiB,EAAcxiB,QAAdwiB,EAAcviB,UAAAC,WAFb,QAAM,SAEPsiB,CAAc,0ICEpB,IAAMW,EAAW,MAAlB,MAAOA,EAKX3lB,YACU4C,EACAgjB,GADA1lB,KAAA0C,QACA1C,KAAA0lB,eALF1lB,KAAA2lB,uBAAyB,IAAIplB,IAC7BP,KAAA4lB,4BAAoD,IAKxD,CAEGC,YAAYC,GACjB,OAAO9lB,KAAK0C,MAAM/B,IAAYsB,IAAYW,IAAO,QAAUkjB,GACxDjjB,QACCC,KAAWC,MAAkBC,KAAW,IAAMD,IAEpD,CAEOgjB,aAAa9lB,EAAgB6D,GAClC,OAAO9D,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,WAAakB,EAAa,eAAgB7D,GAAM4C,QACzFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOijB,6BAA6BF,GAClC,OAAO9lB,KAAK0C,MAAM/B,IAAYsB,IAAYW,IAAO,QAAUkjB,EAAS,gBAAiB,CAAEG,QAAS,aAC7FpjB,QACCC,KAAWC,MAAkBC,KAAW,IAAMD,IAEpD,CAEOmjB,mBAAmBjmB,EAAW6lB,GACnC,OAAO9lB,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAUkjB,EAAQ7lB,GAAM4C,QACjEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOojB,cAAcL,GACnB,OAAO9lB,KAAK0C,MAAM/B,IAAKsB,IAAYW,IAAO,QAAUkjB,EAAS,eAAejjB,QAC1EC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOqjB,YAAYN,GACjB,OAAO9lB,KAAK0C,MAAM/B,IAAKsB,IAAYW,IAAO,QAAUkjB,GAAQjjB,QAC1DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOsjB,gBAAgBP,GACrB,OAAO9lB,KAAK0C,MAAM/B,IAAoBsB,IAAYW,IAAO,QAAUkjB,EAAS,aACzEjjB,QACCe,KAAY,IAAC,EACbd,KAAYC,MAAmBC,KAAW,IAAMD,IAEtD,CAEOujB,mBAAmBrmB,EAAqB6lB,GAC7C,OAAO9lB,KAAK0C,MAAMS,KAAqBlB,IAAYW,IAAO,QAAUkjB,EAAS,YAAa7lB,GACvF4C,QACCC,KAAYC,MAAmBC,KAAW,IAAMD,IAEtD,CAEOwjB,gBAAgBtmB,EAAWN,GAChC,OAAOK,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAUjD,EAAK,0BAA2BM,GAAM4C,QACzFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOyjB,0BAA0BV,EAAgBW,EAAuBC,GACtE,OAAO1mB,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAUkjB,EAAS,oBAAsBW,EAAgB,kBAAmBC,GAAmB7jB,QACxIC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO4jB,WAAWb,GAChB,OAAO9lB,KAAK0C,MAAM/B,IAAKsB,IAAYW,IAAO,QAAUkjB,EAAS,WAAWjjB,QACtEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO6jB,WAAW3mB,EAAW6lB,GAC3B,OAAO9lB,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAUkjB,EAAS,eAAgB7lB,GAAM4C,QAClFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACO8jB,cAAc5mB,GACnB,OAAOD,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,kCAAmC3C,GAAM4C,QAClFC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO+jB,YAAY7mB,GACjB,OAAOD,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,cAAe3C,GAAM4C,QAC9DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEO2K,WAAWzN,GAChB,OAAOD,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,OAAQ3C,GAAM4C,QACvDC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOgkB,uBAAuB9mB,GAC5B,OAAOD,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,cAAe3C,GAAM4C,QAC9DC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CAEOikB,eAAeC,GACpB,OAAOjnB,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,kBAAmBqkB,GAASpkB,QACrEC,KAAYC,MACHC,KAAW,IAAMD,IAG9B,CACOmkB,WAAWpB,GAChB,OAAO9lB,KAAK0C,MAAM/B,IAAKsB,IAAYW,IAAO,QAAQkjB,EAAO,gBAAgBjjB,QACvEC,KAAYC,MACHC,KAAW,IAAMD,IAE9B,CAEOokB,kBAAkBzc,EAAclB,GACrC,OAAOxJ,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAU8H,EAAU,6BAA8BlB,GAAU3G,QACrGC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOqkB,wBAAwB1c,EAAclB,GAC3C,OAAOxJ,KAAK0C,MAAMS,KAAMlB,IAAYW,IAAO,QAAU8H,EAAU,sBAAuBlB,GAAU3G,QAC9FC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,CAEOskB,uBAAuB3c,EAAciM,GAC1C,OAAO3W,KAAK0C,MAAM/B,IAAKsB,IAAYW,IAAO,QAAU8H,EAAU,uBAAyBiM,GAAU9T,QAC/FC,KAAWC,MACFC,KAAW,IAAMD,IAG9B,iDA1KW0iB,GAAWrjB,MAAAC,MAAAD,MAAAyH,KAAA,sCAAX4b,EAAWnjB,QAAXmjB,EAAWljB,UAAAC,WAFV,QAAM,SAEPijB,CAAW,uFCiBjB,IAAM6B,EAAkB,MAAzB,MAAOA,oDAAkB,mCAAlBA,GAAkB,wCATlB,CAACC,MAASC,QAAA,CADXC,KAAcC,MAAY,SAUzBJ,CAAkB,4WCnB3BllB,MAAA,GACEA,MAAA,gCAA4DA,MAAA,yBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAewlB,EAAAC,aAAa,GAAE,GACxFzlB,MAAA,OAAGA,MAAA,GACLA,0CAFsCA,cAAA,OAAAwlB,EAAApY,QAAA/E,MACjCrI,MAAA,GAAAA,MAAAwlB,EAAApY,QAAAhT,kCAQC4F,MAAA,mBAAmFA,MAAA,GAAaA,mCAAjCA,MAAA,QAAA0lB,EAAAtpB,MAAoB4D,cAAA0lB,EAAAtpB,iCAQjF4D,MAAA,mBAAgFA,MAAA,GAA0BA,mCAA3DA,MAAA,QAAA2lB,EAAAC,mBAAiC5lB,cAAA2lB,EAAAC,8CAIhF5lB,MAAA,mBAAgEA,MAAA,GAAQA,mCAAvBA,MAAA,QAAA6lB,GAAe7lB,cAAA6lB,8BADlE7lB,MAAA,qBACEA,MAAA,EAAA8lB,EAAA,qBACF9lB,8BAD+BA,cAAA,UAAAwlB,EAAAO,4CAI7B/lB,MAAA,mBAA8EA,MAAA,GAA0BA,mCAA3DA,MAAA,QAAAgmB,EAAAJ,mBAAiC5lB,cAAAgmB,EAAAJ,8CADhF5lB,MAAA,qBACEA,MAAA,EAAAimB,EAAA,qBACFjmB,8BAD+BA,cAAA,UAAAwlB,EAAAU,wCAYjClmB,MAFJ,QAEIA,CAF4I,sBAE5IA,CADuB,eACZA,MAAA,eAASA,QACpBA,MAAA,mBACEA,MAAA,mBACAA,MAAA,mBAA2BA,MAAA,GAAQA,QACnCA,MAAA,mBAA4BA,MAAA,GAGlCA,oCAJkBA,MAAA,GAAAA,MAAA,QAAAwlB,EAAAW,MAAenmB,cAAAwlB,EAAAW,MACfnmB,cAAA,QAAAwlB,EAAAY,OAAgBpmB,cAAAwlB,EAAAY,QCnCjC,IAAMC,GAA2B,MAAlC,MAAOA,EAoBX3oB,YACkC4K,EACxBge,EACAC,EACAC,GACA/V,GACAgW,GACAC,GACAC,IAPwB/oB,KAAA0K,UACxB1K,KAAA0oB,eACA1oB,KAAA2oB,cACA3oB,KAAA4oB,MACA5oB,KAAA6S,aACA7S,KAAA6oB,eACA7oB,KAAA8oB,eACA9oB,KAAA+oB,mBAtBF/oB,KAAAgpB,YAAmB,GAGnBhpB,KAAAmgB,SAAgB,GAEjBngB,KAAAipB,YAAmB,GACnBjpB,KAAAsoB,YAAmB,GACnBtoB,KAAAkpB,aAAuB,EACvBlpB,KAAAmpB,cAAqB,GACrBnpB,KAAAmoB,gBAAuB,GAGvBnoB,KAAAwP,QAAe,GAYpBxP,KAAKopB,iBAAmBppB,KAAK4oB,GAAGS,MAAM,CACpC7qB,KAAM,IAAI8qB,KAAY,GAAIC,KAAWC,UACrCxB,kBAAmB,IAAIsB,KAAY,GAAIC,KAAWC,UAClDC,qBAAsB,IAAIH,KAAY,GAAIC,KAAWC,UACrDE,mBAAoB,IAAIJ,KAAY,KAExC,CAEAra,WACEjP,KAAK2pB,kBACL3pB,KAAKqf,iBACLrf,KAAK4f,qBACL5f,KAAK4pB,sBACP,CAEQD,kBAYN3pB,KAAK6pB,iBAAmB7pB,KAAK2oB,YAAY1lB,YAX3B,CACZuG,SAAU,CACRsgB,WAAY,CACVrf,KAAM,QACNhO,MAAO,CAAC,IAAK,OAGjBsO,WAAY,0CACZC,YAAa,EACbK,YAAa,WAE+CiE,UAAU,CACtE/K,KAAOwlB,IACL/pB,KAAKipB,YAAcc,EACnB/pB,KAAKopB,iBAAiBY,WAAW,CAC/BxrB,KAAMwB,KAAKipB,YAAYzqB,MACxB,EAEHuE,MAAQiB,IACNhE,KAAKwP,QAAUxP,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,SAAS,GACjExP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAUA,QAGd,CAGQ5K,iBAWNrf,KAAKkqB,gBAAkBlqB,KAAK8oB,YAAYzJ,eAV1B,CACZ7V,SAAU,CACR2gB,gBAAiB,CACf1f,KAAM,QACNhO,MAAO,CAAC,EAAG,OAGfsO,WAAY,GACZM,YAAa,WAEiDiE,UAAU,CACxE/K,KAAOwlB,IACDA,IACF/pB,KAAKsoB,YAAcyB,EACnB/pB,KAAKopB,iBAAiBY,WAAW,CAC/BhC,kBAAmBhoB,KAAKsoB,YAAYN,oBACrC,EAGLjlB,MAAQiB,IACNhE,KAAKwP,QAAUxP,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,SAAS,GACjExP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAUA,QAEd,CAGQrK,qBAWN5f,KAAKoqB,oBAAsBpqB,KAAK8oB,YAAYlJ,mBAV9B,CACZpW,SAAU,CACR6gB,YAAa,CACX5f,KAAM,QACNhO,MAAO,CAAC,EAAG,OAGfsO,WAAY,GACZM,YAAa,WAEyDiE,UAAU,CAChF/K,KAAOwlB,MAEPhnB,MAAQiB,IACNhE,KAAKwP,QAAUxP,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,SAAS,GACjExP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAUA,QAGd,CAGOxkB,oBAAoB2K,GACzB,IAAIka,EAAetqB,KAAKipB,YAAYsB,OAAQC,GAAaA,EAAIhsB,MAAQ4R,EAAM3T,OAC3EuD,KAAKyqB,kBAAoBH,EAAa,GAAGR,WACrC9pB,KAAKyqB,oBAIPzqB,KAAK0qB,iBAAmB1qB,KAAK0oB,aAAajjB,oBAH5B,CACZC,YAAa1F,KAAKyqB,oBAEmDnb,UAAU,CAC/E/K,KAAOwlB,KACL/pB,KAAKmpB,cAAgBY,GACrB/pB,KAAKkpB,aAAc,EACnB,IAAIyB,GAAc3qB,KAAKmpB,cAAc9kB,IAAK0lB,IAAuBA,GAAK/B,mBACtEhoB,KAAKgpB,YAAchpB,KAAKsoB,YAAYjkB,IAAK0lB,IAAuBA,GAAK/B,mBACrEhoB,KAAKmoB,gBAAkBnoB,KAAKgpB,YAAYuB,OAAQR,KAAoD,GAA7BY,GAAY3G,QAAQ+F,IAAa,EAE1GhnB,MAAQiB,KACNhE,KAAKwP,QAAUxP,KAAK+oB,gBAAgB7Y,UAAUlM,GAAIjB,MAAMyM,SAAS,GACjExP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAUA,SAKhB,CAGOW,cAAcxa,GACnB,IAAIka,EAAetqB,KAAKsoB,YAAYiC,OAAQC,GAAaA,EAAIxC,mBAAqB5X,EAAM3T,OACxFuD,KAAK6qB,kBAAoBP,EAAa,GAAGH,eAC3C,CAGOW,WACL,GAAI9qB,KAAKopB,iBAAiB2B,MAAO,CAC/B/qB,KAAKmgB,SAAWngB,KAAKopB,iBAAiB3sB,MACtC,IAAIwD,EAAO,CACTwpB,qBAAsBzpB,KAAKmgB,SAASsJ,qBACpCK,WAAY9pB,KAAKyqB,kBACjBf,mBAAoB1pB,KAAKmgB,SAASuJ,mBAClCS,gBAAiBnqB,KAAK6qB,mBAEpB5qB,IACFD,KAAKgrB,eAAiBhrB,KAAK6oB,YAAYjC,WAAW3mB,EAAMD,KAAK0K,SAAS4E,UAAU,CAC9E/K,KAAOwlB,IACDA,IACF/pB,KAAKwP,QAAUxP,KAAK+oB,gBAAgBpX,YAAY,oDAAoD,GACpG3R,KAAK6nB,aAAa,MAClBrjB,WAAW,KACTxE,KAAK6S,UAAUI,MAAM8W,EAAI,EACxB,KAAI,EAIXhnB,MAAQiB,IACNhE,KAAKwP,QAAUxP,KAAK+oB,gBAAgB7Y,UAAU,8EAA8E,GAC5HlQ,KAAK6nB,aAAa,KAClBrjB,WAAW,KACTxE,KAAK6S,UAAUI,OAAK,EACnB,IAAI,EAETgX,SAAUA,SAGhB,CACF,CAEQL,uBACN5pB,KAAKuoB,UAAWvc,MAAOif,cACvBjrB,KAAKwoB,WAAYxc,MAAOif,cAAgB,CAC1C,CAGOpD,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAK+oB,gBAAgBoC,cAAY,EAC/CD,EACL,CAEAE,cACMprB,KAAK6pB,kBACP7pB,KAAK6pB,iBAAiBwB,cACpBrrB,KAAKkqB,iBACPlqB,KAAKkqB,gBAAgBmB,cACnBrrB,KAAKoqB,qBACPpqB,KAAKoqB,oBAAoBiB,cACvBrrB,KAAK0qB,kBACP1qB,KAAK0qB,iBAAiBW,cACpBrrB,KAAKgrB,gBACPhrB,KAAKgrB,eAAeK,aACxB,iDAzNW5C,GAA2BrmB,MAqB5BkO,MAAelO,MAAAC,KAAAD,MAAAyH,KAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,MAAA,oCArBd9C,EAA2BjY,UAAA,+BAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,utCAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDdpCzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,8BAAwBA,QAC+BA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAEAA,MAAA,wBACEA,MAAA,EAAAopB,GAAA,sBAQMppB,MAHN,YAGMA,CAH+B,WAG/BA,CAF6B,sBAE7BA,CAD4B,gBACjBA,MAAA,cAAOA,QAClBA,MAAA,mBAA2EA,MAAA,2BAAA2O,IAAA,OAAmBD,EAAArL,oBAAAsL,GAA2B,GACvH3O,MAAA,GAAAqpB,GAAA,qBAEJrpB,UAGEA,MADF,sBACEA,CAD4B,gBACjBA,MAAA,mBAAYA,QACvBA,MAAA,oBAAwFA,MAAA,2BAAA2O,IAAA,OAAmBD,EAAA8Z,cAAA7Z,GAAqB,GAC9H3O,MAAA,sBACEA,MAAA,GAAAspB,EAAA,qBACFtpB,QAMAA,MAJA,GAAAupB,EAAA,sBAIAvpB,CAJwE,GAAAwpB,EAAA,uBAQ5ExpB,UAGEA,MADF,sBACEA,CAD4B,gBACjBA,MAAA,2BAAoBA,QAC/BA,MAAA,eAEJA,UACAA,MAAA,GAAAypB,EAAA,cAWJzpB,UAGIA,MAFJ,wBAEIA,CAFgB,YAEhBA,CADmC,gBACmBA,MAAA,aAAMA,QAC5DA,MAAA,gBAAuFA,MAAA,0BAAS0O,EAAAga,UAAU,GAAE1oB,MAAA,UAGlHA,qBAtDmBA,MAAA,GAAAA,MAAA,OAAA0O,EAAAtB,QAAA/E,MAKTrI,cAAA,YAAA0O,EAAAsY,kBAKiDhnB,MAAA,GAAAA,MAAA,UAAA0O,EAAAmY,aAQhB7mB,MAAA,GAAAA,MAAA,UAAA0O,EAAAqY,eAGqB/mB,cAAA,QAAA0O,EAAAoY,aAIA9mB,cAAA,OAAA0O,EAAAoY,aAWpD9mB,MAAA,GAAAA,MAAA,6BAAA0O,EAAAsY,iBAAA3sB,MAAAurB,mBAAA,mBAAAlX,EAAAsY,iBAAA3sB,MAAAurB,mBAe2C5lB,MAAA,GAAAA,MAAA,WAAA0O,EAAAsY,iBAAA0C,uOC5C1CrD,CAA2B,2CCfpCrmB,MAAA,YACIA,MAAA,qBAEJA,mDACAA,MAAA,8BAAqDA,MAAA,yBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAewlB,EAAAC,eAAc,GAC9EzlB,MAAA,OAAGA,MAAA,GACPA,kCADOA,MAAA,GAAAA,MAAAwlB,EAAA5V,WCKJ,IAAM+Z,EAAoB,MAA3B,MAAOA,EAOXjsB,YACkCG,EACxB4S,EACAgW,GAFwB7oB,KAAAC,OACxBD,KAAA6S,YACA7S,KAAA6oB,cARF7oB,KAAAgsB,UAAiB,GAClBhsB,KAAAisB,cAAqB,GACrBjsB,KAAAksB,WAAiB,EACjBlsB,KAAAgS,SAA0B,IAM7B,CAEJ/C,WACEjP,KAAKisB,cAAgBjsB,KAAKC,KAC1BD,KAAKmsB,iBACP,CAGQA,kBACNnsB,KAAKC,KAAKoE,IAAK0lB,IACb/pB,KAAKgsB,UAAUI,KAAKrC,EAAKsC,gBAAe,EAE5C,CAGOC,cACLtsB,KAAKksB,WAAY,EAIjBlsB,KAAKusB,kBAAoBvsB,KAAK6oB,YAAYhC,cAH5B,CACZ2F,iBAAkBxsB,KAAKgsB,YAEwC1c,UAAU,CACzE/K,KAAOwlB,IACL/pB,KAAKksB,WAAY,EACjBlsB,KAAK6S,UAAUI,MAAM8W,EAAI,EAG3BhnB,MAAQiB,IACNhE,KAAKksB,WAAY,EACjBlsB,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,SAChCxP,KAAK6S,UAAUI,OAAK,EAEtBgX,SAAUA,QAEd,CAEQwC,iBAAiBza,GACvBhS,KAAKgS,SAAWA,EAChBxN,WAAW,KACTxE,KAAKgS,SAAW,MACf,IACL,CAEO6V,eACL7nB,KAAKgS,SAAW,IAClB,CACAoZ,cACMprB,KAAKusB,mBACPvsB,KAAKusB,kBAAkBlB,aAC3B,iDA3DWU,GAAoB3pB,MAQrBkO,MAAelO,MAAAC,MAAAD,MAAAyH,KAAA,oCARdkiB,EAAoBvb,UAAA,uBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,+hBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDXjCzO,MAAA,WAKIA,MAJA,EAAAsqB,EAAA,YAIAtqB,CAJiD,EAAAuqB,GAAA,+BASLvqB,MAF5C,UAE4CA,CAFpB,UAEoBA,CADK,WACLA,CAAA,gBAAiBA,MAAA,aAAkBA,UAEnEA,MADJ,QACIA,CADC,OACEA,MAAA,wEAGfA,cAEIA,MADJ,WACIA,CADgC,eAC0BA,MAAA,0BAAS0O,EAAAwb,aAAa,GAAElqB,MAAA,UAAGA,QACrFA,MAAA,eAAsDA,MAAA,SAE9DA,mBAnBoCA,cAAA,OAAA0O,EAAAob,WAIR9pB,cAAA,OAAA0O,EAAAkB,0FCMf+Z,CAAoB,4WCH7B3pB,MAAA,YACEA,MAAA,qBACFA,mDAGEA,MADF,WACEA,CADyI,UAChHA,MAAA,oCAA8BA,MAAA,aAA8BA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAgF,OAAAhF,EAAAiF,gBAAApwB,MAA6B,cAAa,GAAE2F,MAAA,cAAQA,QAAQA,MAAA,mBAC5JA,qDAGEA,MAAA,GACEA,MAAA,gCAA4DA,MAAA,yBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,MAAA,UAAAA,MAAewlB,EAAAC,aAAa,GAAE,GACxFzlB,MAAA,OAAGA,MAAA,GACLA,2CAFsCA,cAAA,OAAAwlB,EAAApY,QAAA/E,MACjCrI,MAAA,GAAAA,MAAAwlB,EAAApY,QAAAhT,iCAFP4F,MAAA,EAAA2qB,GAAA,4CAAe3qB,MAAA,aAAAwlB,EAAApY,QAAA,KAAAoY,EAAApY,QAAA/E,+BAgBLrI,MAAA,eAAqEA,MAAA,6BAAuBA,iCAK5FA,MAAA,eAAqEA,MAAA,4BAAsBA,oCAG3FA,MADF,SACEA,CADyC,aACRA,MAAA,mBAAaA,QAC9CA,MAAA,aACEA,MAAA,GACJA,gCAFQA,MAAA,GAAAA,MAAA,UAAAA,MAAA,EAAA4qB,IAAA,MAAApF,EAAAqF,gBAAA,KAAArF,EAAAqF,gBAAAviB,WAAA,MAAAkd,EAAAsF,cAAA,KAAAtF,EAAAsF,cAAAC,wBAAA,MAAAvF,EAAAqF,gBAAA,KAAArF,EAAAqF,gBAAAviB,WAAA,MAAAkd,EAAAsF,cAAA,KAAAtF,EAAAsF,cAAAC,yBACJ/qB,cAAA,IAAAwlB,EAAAwF,eAAA,gCAkBNhrB,MAAA,SACEA,MAAA,kBACFA,8BADoCA,cAAA,OAAAwlB,EAAAyF,SAAA3iB,QAAA,kDAEpCtI,MAAA,SACEA,MAAA,kBACFA,8BADoCA,cAAA,OAAAwlB,EAAAyF,SAAA3iB,QAAA,kDAEpCtI,MAAA,SACEA,MAAA,oBACFA,8BADyCA,cAAA,OAAAwlB,EAAAyF,SAAA3iB,QAAA,+CAQnCtI,MAAA,WAAkGA,MAAA,cAAQA,mDAC1GA,MAAA,yBAA6FA,MAAA,yBAAA2O,GAAA3O,MAAAkrB,GAAA,MAAA1F,GAAAxlB,qBAAAwlB,GAAAiF,gBAAApwB,MAAA8wB,OAAAxc,KAAA6W,GAAAiF,gBAAApwB,MAAA8wB,OAAAxc,GAAA3O,MAAA2O,EAAA,GAA0G3O,gCAA1GA,MAAA,UAAAwlB,EAAAiF,gBAAApwB,MAAA8wB,QAA2CnrB,MAAA,iBAAAA,MAAA,EAAAorB,gCAcxIprB,MAAA,mCACqFA,MAArF,kBAAAwlB,EAAAyF,SAAA,KAAAzF,EAAAyF,SAAA3iB,UAAAkd,EAAA6F,YAAA7rB,WAAA8I,QAAqFtI,CAArB,2CAE9DA,MAAA,mBAAoEA,MAAA,GAAkBA,mCAA3CA,MAAA,QAAA6lB,EAAAyF,WAAyBtrB,cAAA6lB,EAAAyF,uCADtEtrB,MAAA,mBACEA,MAAA,EAAAurB,GAAA,qBACFvrB,8BAD+BA,cAAA,UAAAwlB,EAAAgG,oCAiD/BxrB,MAAA,eAA6DA,MAAA,uBAAiBA,MAAA,YAAQA,MAAA,6BAAuBA,QAASA,MAAA,OAACA,oCAN3HA,MADF,QACEA,CAD8B,WACQA,MAAA,cAAQA,QAG1CA,MAFJ,WAEIA,CAFoC,sBAEpCA,CAD8B,eACnBA,MAAA,cAAQA,QACnBA,MAAA,cACAA,MAAA,iBAAuBA,MAAA,mDAA6CA,QACpEA,MAAA,GAAAyrB,GAAA,oBAGNzrB,wCAHkBA,MAAA,IAAAA,MAAA,cAAA0rB,EAAAlG,EAAAiF,gBAAAlsB,IAAA,mBAAAmtB,EAAAhC,kCAWZ1pB,MAAA,eAA2EA,MAAA,+CAAyCA,mDAHpHA,MADF,sBACEA,CAD6D,eAClDA,MAAA,sBAAgBA,QAC3BA,MAAA,cACAA,MAAA,iBAAoBA,MAAA,mBAAAA,MAAA2rB,GAAA,MAAAnG,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAoG,iBAAiB,WAAU,GAAuB5rB,MAAA,GAAsDA,QACrIA,MAAA,EAAA6rB,GAAA,oBACF7rB,uCAHoDA,MAAA,GAAAA,MAAA,OAAAwlB,EAAAsG,kBAC6B9rB,MAAA,GAAAA,MAAAwlB,EAAAuG,oBAAA,+BACnE/rB,cAAA,cAAAgsB,EAAAxG,EAAAiF,gBAAAlsB,IAAA,2BAAAytB,EAAAC,OAAA,KAAAD,EAAAC,OAAAvC,kCAWZ1pB,MAAA,eAAsFA,MAAA,sDAAgDA,iCAKxIA,MADF,QACEA,CAD+D,OAC5DA,MAAA,0CAAoCA,QAErCA,MADF,OACEA,CADE,QACEA,MAAA,2BAAqBA,QACzBA,MAAA,QAAIA,MAAA,+BAAyBA,QAC7BA,MAAA,QAAIA,MAAA,iCAA2BA,QAC/BA,MAAA,SAAIA,MAAA,wBAAiBA,QACrBA,MAAA,SAAIA,MAAA,iDACNA,UACAA,MAAA,QAAGA,MAAA,wDACLA,qDA/BAA,MADF,QACEA,CADmE,WAClCA,MAAA,qBAAeA,QAChDA,MAAA,YACEA,MAAA,EAAAksB,GAAA,yBAOElsB,MADF,sBACEA,CAD8B,eACnBA,MAAA,mBAAaA,QACxBA,MAAA,cACAA,MAAA,iBAAoBA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAA3G,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAoG,iBAAiB,OAAM,GAAuB5rB,MAAA,IAC7EA,UAEEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,wBAAiBA,QAC5BA,MAAA,eACAA,MAAA,kBAAoBA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAA3G,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAoG,iBAAiB,WAAU,GAAuB5rB,MAAA,IAAsDA,QACrIA,MAAA,GAAAosB,GAAA,oBAEJpsB,UAEAA,MAAA,GAAAqsB,GAAA,eAWFrsB,wCA9BqBA,MAAA,GAAAA,MAAA,eAAAwlB,EAAAyF,UAAAzF,EAAAyF,SAAAqB,cAQRtsB,MAAA,GAAAA,MAAA,OAAAwlB,EAAA+G,cACoEvsB,MAAA,GAAAA,MAAAwlB,EAAAgH,gBAAA,+BAIpExsB,MAAA,GAAAA,MAAA,OAAAwlB,EAAAiH,kBACwEzsB,MAAA,GAAAA,MAAAwlB,EAAAkH,oBAAA,+BACnE1sB,cAAA,cAAA2sB,EAAAnH,EAAAiF,gBAAAlsB,IAAA,2BAAAouB,EAAAV,OAAA,KAAAU,EAAAV,OAAAW,oBAIV5sB,cAAA,cAAA6sB,EAAArH,EAAAiF,gBAAAlsB,IAAA,uBAAAsuB,EAAAZ,OAAA,KAAAY,EAAAZ,OAAAa,oDAgBF9sB,MAAA,eAAiGA,MAAA,mBAAAA,MAAA+sB,GAAA,MAAAvH,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAwH,iBAAgB,GACxHhtB,MAAA,iBAA+BA,MAAA,SACjCA,sCAHAA,MAFJ,QAEIA,CAF8B,WAE9BA,CAD+B,WACOA,MAAA,2BAAqBA,QAC3DA,MAAA,EAAAitB,GAAA,iBAGFjtB,QAEEA,MADF,QACEA,CADG,OACAA,MAAA,wBAEPA,mCAP6BA,MAAA,GAAAA,MAAA,2BAAAwlB,EAAAyF,SAAA,KAAAzF,EAAAyF,SAAA5iB,kCAJ/BrI,MAAA,SACEA,MAAA,EAAAktB,GAAA,cAWFltB,8BAXQA,cAAA,OAAAwlB,EAAA2H,iEAiBNntB,MAAA,eAAyEA,MAAA,mBAAAA,MAAAotB,GAAA,MAAA5H,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAA6H,WAAU,GAC1FrtB,MAAA,iBACEA,MAAA,kBAAWA,QACXA,MAAA,aAAmCA,MAAA,2BACvCA,mCAHYA,cAAA,UAAAA,MAAA,EAAAstB,GAAA9H,EAAA+H,yCAFdvtB,MAAA,YACEA,MAAA,EAAAwtB,GAAA,iBAKFxtB,8BALyBA,cAAA,QAAAwlB,EAAA2H,uBAAA,MAAA3H,EAAAyF,SAAA,KAAAzF,EAAAyF,SAAA3iB,mCAWvBtI,MAAA,aAAgEA,MAAA,OAACA,mDACjEA,MAAA,gBAAyFA,MAAA,mBAAAA,MAAAytB,GAAA,MAAAjI,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAwH,iBAAgB,GAChHhtB,MAAA,cAAUA,MAAA,SACZA,qDACAA,MAAA,gBAAwFA,MAAA,mBAAAA,MAAA0tB,GAAA,MAAAlI,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAmI,mBAAkB,GACjH3tB,MAAA,cAAUA,MAAA,YACZA,qDAVAA,MADF,WACEA,CADyE,WACnCA,MAAA,cAAQA,QAC9CA,MAAA,0BAAmDA,MAAA,yBAAA2O,GAAA3O,MAAA4tB,GAAA,MAAApI,GAAAxlB,qBAAAwlB,GAAAiF,gBAAApwB,MAAAwzB,eAAAlf,KAAA6W,GAAAiF,gBAAApwB,MAAAwzB,eAAAlf,GAAA3O,MAAA2O,EAAA,GACnD3O,QACAA,MAAA,WAAsCA,MAAA,GAA4DA,QAKlGA,MAJA,EAAA8tB,GAAA,cAIA9tB,CAJgE,EAAA+tB,GAAA,iBAIhE/tB,CAHoH,EAAAguB,GAAA,kBAMtHhuB,gCAVqDA,MAAA,GAAAA,MAAA,UAAAwlB,EAAAiF,gBAAApwB,MAAAwzB,gBAAmD7tB,MAAA,iBAAAA,MAAA,EAAAorB,KAEhEprB,MAAA,GAAAA,MAAA,GAAAwlB,EAAAiF,gBAAApwB,MAAAwzB,eAAA,YAChC7tB,cAAA,QAAAwlB,EAAA2H,sBACGntB,cAAA,QAAAwlB,EAAA2H,sBAGAntB,cAAA,QAAAwlB,EAAA2H,8CAWDntB,MAAA,sDAEEA,MADF,WACEA,CADiC,sBACnBA,MAAA,yBAAA2O,GAAA,MAAAsf,GAAAjuB,MAAAkuB,GAAAC,UAAA3I,GAAAxlB,MAAA,GAAAA,aAAAwlB,GAAA4I,eAAAH,GAAAhE,iBAAAtb,KAAA6W,GAAA4I,eAAAH,GAAAhE,iBAAAtb,GAAA3O,MAAA2O,EAAA,GAAwF3O,MAAA,kBAAA2O,GAAA,MAAAsf,GAAAjuB,MAAAkuB,GAAAC,UAAA3I,GAAAxlB,MAAA,UAAAA,MAAUwlB,GAAA6I,SAAA1f,EAAAsf,IAAoB,GAAEjuB,MAAA,cACxIA,kDADgBA,cAAA,UAAAwlB,EAAA4I,eAAAH,EAAAhE,kBAAkDjqB,MAAA,iBAAAA,MAAA,EAAAorB,8BAHpEprB,MAAA,OAEEA,MADA,EAAAsuB,GAAA,aACAtuB,CADsC,EAAAuuB,GAAA,8CAMtCvuB,MAAA,YAAsDA,MAAA,mBAAaA,oCACnEA,MAAA,YAAoCA,MAAA,GAA0BA,mCAA1BA,cAAA,IAAAwuB,EAAAC,kBAAA,8BAIpCzuB,MAAA,YAAuDA,MAAA,oBAAaA,oCACpEA,MAAA,YAAoCA,MAAA,GAA0BA,mCAA1BA,cAAA,IAAA0uB,EAAA9I,kBAAA,8BAIpC5lB,MAAA,YAAuDA,MAAA,4BACvDA,oCACAA,MAAA,YAAoCA,MAAA,GAA6BA,mCAA7BA,cAAA,IAAA2uB,EAAAtH,qBAAA,8BAIpCrnB,MAAA,YAAuDA,MAAA,oBAAaA,oCACpEA,MAAA,YAAoCA,MAAA,GACpCA,mCADoCA,cAAA,IAAA4uB,EAAAtH,mBAAAsH,EAAAtH,mBAAA,mCAGtCtnB,MAAA,mCACAA,MAAA,sDAedA,MAAA,gBAAwDA,MAAA,mBAAAA,MAAA6uB,GAAA,MAAArJ,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAsJ,eAAc,GAAE9uB,MAAA,WAAKA,iCACtFA,MAAA,gBAAwEA,MAAA,YAAMA,mDAC9EA,MAAA,gBAAmCA,MAAA,mBAAAA,MAAA+uB,GAAA,MAAAvJ,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAgF,OAAAhF,EAAAiF,gBAAApwB,MAA6B,cAAa,GAC/D2F,MAAA,GAAsCA,gCAA7DA,MAAA,WAAAwlB,EAAAsE,WAAuB9pB,cAAA,MAAAwlB,EAAAyF,UAAAzF,EAAAyF,SAAA3iB,QAAA,2DACvBtI,MAAA,gBAAmCA,MAAA,mBAAAA,MAAAgvB,GAAA,MAAAxJ,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAgF,OAAAhF,EAAAiF,gBAAApwB,MAA6B,SAAQ,GAA0G2F,MAAA,oBAAcA,gCAArCA,MAAA,WAAAwlB,EAAAsE,YC9OnK,IAAMmF,GAAoB,MAA3B,MAAOA,EA4DXvxB,YACkCutB,EACxBzE,EACA0I,EACAC,GACAze,GACA0e,GACA3e,GACAgW,GACA4I,EACA3I,EACAJ,EACAgJ,EACAhtB,EACAitB,GACDlE,IAdyBztB,KAAAqtB,WACxBrtB,KAAA4oB,KACA5oB,KAAAsxB,gBACAtxB,KAAAuxB,YACAvxB,KAAA8S,UACA9S,KAAAwxB,OACAxxB,KAAA6S,aACA7S,KAAA6oB,eACA7oB,KAAAyxB,gBACAzxB,KAAA8oB,cACA9oB,KAAA0oB,eACA1oB,KAAA0xB,gBACA1xB,KAAA0E,OACA1E,KAAA2xB,kBACD3xB,KAAAytB,eA3DDztB,KAAA4xB,qBAAuB,IAAIrxB,IAI3BP,KAAAssB,YAAmB,GACnBtsB,KAAA6xB,wBAA+B,GAC/B7xB,KAAA8xB,cAAqB,GACtB9xB,KAAAitB,gBAAuB,GACvBjtB,KAAAktB,cAAqB,GAErBltB,KAAA+xB,sBAAwB,IAAIC,KAC5BhyB,KAAAiyB,cAAgB,CAAC,OAAQ,MAAO,SAAU,QAAS,QACnDjyB,KAAAkyB,cAAgB,CAAC,OAAQ,QAAS,QAClClyB,KAAAmyB,gBAAkB,CAAC,OAAQ,UAAW,WAAY,UAAW,SAC7DnyB,KAAAoyB,4BAAwC,CAAC,oBAAqB,oBAAqB,uBAAwB,sBAC3GpyB,KAAAqyB,WAAkB,GAClBryB,KAAA2vB,aAAuB,EACvB3vB,KAAAuvB,sBAAgC,EAChCvvB,KAAAsyB,WAAqB,EACrBtyB,KAAAksB,WAAqB,EACrBlsB,KAAAuyB,WAAqB,EAErBvyB,KAAAwyB,aAAe,EACfxyB,KAAAyyB,YAAsB,EAEtBzyB,KAAAotB,eAAgC,KAChCptB,KAAA4tB,UAAiB,GACjB5tB,KAAA0yB,gBAA0B,EAC1B1yB,KAAA2yB,cAAwB,EACxB3yB,KAAAwP,QAAe,GACfxP,KAAAwwB,eAAsB,GACtBxwB,KAAAkuB,iBAAwB,WACxBluB,KAAA2uB,aAAoB,WACpB3uB,KAAA6uB,iBAAwB,WACxB7uB,KAAAmuB,qBAA+B,EAC/BnuB,KAAA4uB,iBAA2B,EAC3B5uB,KAAA8uB,qBAA+B,EAC/B9uB,KAAA4yB,eAAyB,EAmGzB5yB,KAAAguB,iBAAoBvxB,KACX,YAAVA,IACFuD,KAAKmuB,oBAAgD,YAAzBnuB,KAAKkuB,iBACjCluB,KAAKkuB,iBAA6C,YAAzBluB,KAAKkuB,iBAAkC,OAAS,YACtD,QAAVzxB,IACTuD,KAAK4uB,gBAAwC,YAArB5uB,KAAK2uB,aAC7B3uB,KAAK2uB,aAAqC,YAArB3uB,KAAK2uB,aAA8B,OAAS,aAEjE3uB,KAAK8uB,oBAAgD,YAAzB9uB,KAAK6uB,iBACjC7uB,KAAK6uB,iBAA6C,YAAzB7uB,KAAK6uB,iBAAkC,OAAS,aAyxBtE7uB,KAAA6yB,WAAa,CAACC,GAAqBC,KACjC/yB,KAAK6sB,gBAAgBmG,SAASF,IAAaG,SAASF,IA92BhC,aAAvB/yB,KAAKqtB,UAAU5iB,OACjBzK,KAAKkzB,aAAelzB,KAAKqtB,UAAU4C,eACnCjwB,KAAKoyB,4BAA4Be,OAAO,EAAG,EAAG,eAEhDnzB,KAAK6sB,gBAAkB7sB,KAAK4oB,GAAGS,MAAM,CACnCvV,MAAO,IAAIwV,KAAY,GAAIC,KAAWC,UACtCzV,MAAO,IAAIuV,KAAY,GAAIC,KAAWC,UACtC4J,OAAQ,IAAI9J,KAAY,IACxB+J,QAAS,IAAI/J,KAAY,IACzBgK,OAAQtzB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAKwzB,cAC5BC,OAAQzzB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAK0zB,aAC5BC,UAAW3zB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAK4zB,eAC/BC,SAAU,IAAIvK,KAAY,IAC1B5e,QAAS,IAAI4e,KAAY,IACzB2G,eAAgB,IAAI3G,KAAY,IAChCoE,UAAW,IAAIpE,KAAY,QAASC,KAAWC,UAC/CsK,kBAAmB,IAAIxK,KAAY,IACnCyK,iBAAkB,IAAIzK,KAAY,IAClCiE,OAAQ,IAAIjE,MAAY,GACxB0K,IAAK,IAAI1K,KAAY,IACrBxlB,WAAY,IAAIwlB,KAAY,IAC5B2K,sBAAuB,IAAI3K,KAAY,IACvC4K,uBAAwB,IAAI5K,KAAY,IACxC6K,aAAc,IAAI7K,KAAY,IAC9B8K,gBAAiB,IAAI9K,KAAY,GAAIC,KAAW8K,QAAQ,KAExDC,YAAa,IAAIhL,KAAY,GAAIC,KAAW8K,QAAQ,CAClD9K,KAAW2F,QAAQ,kFAErBqF,gBAAiB,IAAIjL,KAAY,GAAIC,KAAW8K,QAAQ,MAEvD,CACDG,aAAWC,KAAmB,cAAe,qBAE1CpH,GAAU3iB,SACb1K,KAAK6sB,gBAAgB6H,WAAW,YAAa,IAAIpL,KAAY,GAAIC,KAAWC,WAE9ExpB,KAAK20B,iBAAmB30B,KAAK8oB,YAAY/H,qBAAqBzR,UAAUslB,KAClEA,KACF50B,KAAKsyB,WAAY,EACD,eAAZsC,KACF50B,KAAK4yB,eAAgB,KAI7B,CAEOiC,cACL70B,KAAK80B,+BACL90B,KAAK+xB,sBAAsBgD,UAAY/0B,KAAKg1B,uBAC5Ch1B,KAAK+xB,sBAAsBkD,KAAOj1B,KAAKk1B,gBACzC,CAEOC,qBACLn1B,KAAK+xB,sBAAsBgD,UAAY/0B,KAAKg1B,uBAC5Ch1B,KAAK+xB,sBAAsBkD,KAAOj1B,KAAKk1B,gBACzC,CAGOJ,+BACL,MAAMM,EAAep1B,KAAK6sB,gBAAgBpwB,MAC1CuD,KAAK6sB,gBAAgBwI,aAAaxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU7S,IACjFuD,KAAK6sB,gBAAgB0I,QACvBv1B,KAAK4yB,eAAgB,EACrB5yB,KAAKsyB,UAAYkD,OAAOC,KAAKL,GAAcM,KAAKC,GAAO31B,KAAK6sB,gBAAgBpwB,MAAMk5B,IAChFP,EAAaO,KAEb31B,KAAK6sB,gBAAgB9B,OACvB/qB,KAAK41B,iBAAe,GAGxB51B,KAAK41B,iBACP,CAiBQA,kBACN51B,KAAK20B,iBAAmB30B,KAAK8oB,YAAY/H,qBAAqBzR,UAAUslB,IACtE,IAAIiB,EAAe71B,KAAK6sB,gBAAgBpwB,MAAM62B,OAC1CwC,EAAcD,EAAatL,OAAQld,IAAgC,IAAnBA,GAAI0oB,aACpDC,GAAkBh2B,KAAK6sB,gBAAgBpwB,MAAMk3B,UAC7CsC,GAAgBD,GAAgBzL,OAAQld,IAAkC,IAArBA,GAAI6oB,eACzDC,GAAen2B,KAAK6sB,gBAAgBpwB,MAAMg3B,OAC1C2C,GAAcD,GAAa5L,OAAQld,IAAgC,IAAnBA,GAAIgpB,aAEtDr2B,KAAKsyB,UADHwD,EAAYj1B,QAAUg1B,EAAah1B,QAAUu1B,GAAYv1B,QAAUs1B,GAAat1B,QAAUo1B,GAAcp1B,QAAUm1B,GAAgBn1B,MAInH,EAIvB,CAEOoO,WACLjP,KAAKsyB,WAAY,EACjBtyB,KAAK4yB,eAAgB,EACrB5yB,KAAK6sB,gBAAgB7C,WAAW,CAAEoK,gBAAiB,GAAIE,YAAa,GAAIC,gBAAiB,KAEzFv0B,KAAKqyB,WAAcpyB,EACnBD,KAAKs2B,mBACLt2B,KAAKu2B,mBACLv2B,KAAKw2B,qBACLx2B,KAAK+lB,eACD/lB,KAAKqtB,UAAU3iB,QACjB1K,KAAKy2B,kBAELz2B,KAAK2yB,cAAe,EACpB3yB,KAAKgN,iBAAiBhN,KAAKytB,YAAY3pB,aAEzC9D,KAAK80B,+BAEL90B,KAAK0yB,eAAkB1yB,KAAKytB,YAAY7rB,WAAW8I,SAAW1K,KAAKqtB,UAAU3iB,QAE7E5I,OAAO40B,iBAAiB,eAAiBtmB,IACnCpQ,KAAK6sB,gBAAgB8J,WACtBvmB,EAAMwmB,YAAc,8DAIzB52B,KAAK6sB,gBAAgBlsB,IAAI,aAAak2B,UACtC72B,KAAK6sB,gBAAgBlsB,IAAI,YAAYk2B,UACrC72B,KAAK6sB,gBAAgBlsB,IAAI,2BAA2Bk2B,UACpD72B,KAAK6sB,gBAAgBlsB,IAAI,sBAAsBk2B,UAC/C72B,KAAK6sB,gBAAgBlsB,IAAI,qBAAqBk2B,UAC9C72B,KAAK6sB,gBAAgBlsB,IAAI,iBAAiBk2B,UAC1C72B,KAAK6sB,gBAAgBlsB,IAAI,eAAek2B,UACxC72B,KAAK6sB,gBAAgBlsB,IAAI,0BAA0Bk2B,UAC/C72B,KAAKqtB,UAAU3iB,SAAW1K,KAAKytB,YAAY7rB,WAAW8I,SACxD1K,KAAK6sB,gBAAgBlsB,IAAI,cAAck2B,UAEd,aAAvB72B,KAAKqtB,UAAU5iB,MACjBzK,KAAK6sB,gBAAgBlsB,IAAI,iBAAiBm2B,QAE9C,CAIA,UAAWxD,GACT,OAAOtzB,KAAK6sB,gBAAgBlsB,IAAI,SAClC,CAGQ6yB,YACN,OAAOxzB,KAAK4oB,GAAGS,MAAM,CACnB0N,WAAY,CAAC,QACb7iB,MAAO,IAAIoV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAWyN,UAAU,MACtEC,UAAW,CAAC,IACZC,SAAU,CAAC,IACXnB,YAAa,CAAC,IACd74B,WAAY,IAEhB,CAMA,UAAWu2B,GACT,OAAOzzB,KAAK6sB,gBAAgBlsB,IAAI,SAClC,CAEQ+yB,WACN,OAAO1zB,KAAK4oB,GAAGS,MAAM,CACnB8N,WAAY,CAAC,QACbljB,MAAO,IAAIqV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQ1vB,MAAkBC,SACtFue,SAAU,CAAC,IACXqY,YAAa,CAAC,IACdn5B,WAAY,IAEhB,CAMA,aAAWy2B,GACT,OAAO3zB,KAAK6sB,gBAAgBlsB,IAAI,YAClC,CAEQizB,aACN,OAAO5zB,KAAK4oB,GAAGS,MAAM,CACnB+N,gBAAiB,CAAC,QAClBjjB,SAAU,IAAImV,KAAY,GAAI,CAACC,KAAWC,WAC1ClS,SAAU,GACVlD,KAAM,IAAIkV,KAAY,GAAI,CAACC,KAAWC,WACtC7S,SAAU,IAAI2S,KAAY,GAAI,CAACC,KAAWC,WAC1CnV,IAAK,IAAIiV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAWyN,UAAU,KACpEK,WAAY,CAAC,IACbC,IAAK,CAAC,IACNC,WAAY,CAAC,IACbC,YAAa,CAAC,IACdC,MAAO,CAAC,IACRvB,cAAe,CAAC,IAChBh5B,WAAY,IAEhB,CAKQu5B,iBACNz2B,KAAK03B,kBAAoB13B,KAAK6oB,YAAYhD,YAAY7lB,KAAKqtB,UAAU3iB,SAAS4E,UAAU,CACtF/K,KAAOqwB,IACDA,IACF50B,KAAKitB,gBAAkB2H,EACnB50B,KAAKitB,kBACPjtB,KAAK6sB,gBAAgB7C,WAAW,CAC9BlW,MAAO9T,KAAKitB,gBAAgBnZ,MAC5BC,MAAO/T,KAAKitB,gBAAgBlZ,MAC5Bqf,OAAQpzB,KAAKitB,gBAAgBmG,OAC7BC,QAASrzB,KAAKitB,gBAAgBoG,QAC9BQ,SAAU7zB,KAAKitB,gBAAgB0K,gBAAgB,IAAIC,MACnDltB,QAAS1K,KAAKitB,gBAAgBviB,QAC9BulB,eAAqC,KAArBjwB,KAAKkzB,aACrBxF,UAAW1tB,KAAKitB,gBAAgBS,UAChCoG,kBAAmB9zB,KAAKuxB,SAAS3f,UAAU5R,KAAKitB,gBAAgB6G,kBAAmB,cACnFC,iBAAkB/zB,KAAKuxB,SAAS3f,UAAU5R,KAAKitB,gBAAgB8G,iBAAkB,cACjFC,IAAKh0B,KAAKitB,gBAAgB+G,IAC1BlwB,WAAY9D,KAAKitB,gBAAgBnpB,WAEjCowB,uBAAwBl0B,KAAKuxB,SAAS3f,UAAU5R,KAAKitB,gBAAgBiH,uBAAwB,cAC7FC,aAAcn0B,KAAKitB,gBAAgB4K,OACnCtK,OAAuC,GAA/BvtB,KAAKitB,gBAAgBM,SAE/BvtB,KAAK6sB,gBAAgBiL,WAAW,SAAU93B,KAAK0xB,cAAcqG,iBAAiB/3B,KAAKitB,gBAAgBqG,OAAQtzB,KAAKitB,gBAAgBzW,cAAc0gB,SAAmC,KACjLl3B,KAAK6sB,gBAAgBiL,WAAW,SAAU93B,KAAK0xB,cAAcsG,iBAAiBh4B,KAAKitB,gBAAgBwG,OAAQzzB,KAAKitB,gBAAgB/X,cAAc8I,SAAmC,KACjLhe,KAAK6sB,gBAAgBiL,WAAW,YAAa93B,KAAK0xB,cAAcuG,mBAAmBj4B,KAAKitB,gBAAgB0G,UAAW3zB,KAAKitB,gBAAgB5X,gBAAgBgiB,WAAqC,KAC7Lr3B,KAAK2yB,cAAe,EACpB3yB,KAAK0oB,aAAa5jB,eAAe,iBAEnC9E,KAAKgN,iBAAiBhN,KAAKitB,gBAAgBnpB,YAC3C9D,KAAKk4B,wBACLl4B,KAAKsyB,WAAY,IAGrBvvB,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KACRjqB,KAAKsyB,WAAY,IAGvB,CAGQ4F,wBACN,GAAIl4B,KAAKitB,gBAAiB,CACxB,IAAIkL,EAAiB,CACnBztB,QAAS,CAAED,KAAQ,SAAUhO,MAAS,CAACuD,KAAKitB,gBAAgBviB,WAEzD1K,KAAKitB,gBAAgBviB,gBAAgBytB,EAAKztB,QAQ/C1K,KAAKo4B,mBAAqBp4B,KAAKsxB,cAAclkB,4BAN7C,CACE/B,YAAe,SACf7B,SAAY2uB,EACZptB,WAAc,0JAG8DuE,UAAU,CACtF/K,KAAOqwB,IACL,GAAuB,IAAnBA,EAASyD,OACXr4B,KAAKuvB,sBAAuB,EAE5BvvB,KAAK+xB,sBAAsB9xB,KAAO,OAE/B,CACHD,KAAKuvB,sBAAuB,EAC5BvvB,KAAK6xB,wBAA0B+C,EAE/B50B,KAAK+xB,sBAAsB9xB,KAAOD,KAAK6xB,wBACvC7xB,KAAK6xB,wBAAwBoD,KAAK,CAACqD,GAAQC,KAAWD,GAAEzH,kBAAkB2H,cAAcD,GAAE1H,oBAC1F7wB,KAAKwyB,aAAeoC,EAAS/zB,OAC7Bb,KAAK+xB,sBAAsBgD,UAAY/0B,KAAKg1B,uBAC5Ch1B,KAAK+xB,sBAAsBkD,KAAOj1B,KAAKk1B,iBAEvC,MAAMuD,GAAkB,CAAElL,OAAQ,oBAAqBmL,UAAW,OAC9D14B,KAAKk1B,mBACPl1B,KAAKk1B,iBAAiB3H,OAASkL,GAAUlL,OACzCvtB,KAAKk1B,iBAAiBwD,UAAYD,GAAUC,UAC5C14B,KAAKk1B,iBAAiByD,WAAWC,KAAKH,IAE1C,GAEF11B,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KACRjqB,KAAKsyB,WAAY,IAGvB,CACF,CAGO7C,WACLzvB,KAAK2vB,aAAe3vB,KAAK2vB,YACzB3vB,KAAK+xB,sBAAsBgD,UAAY/0B,KAAKg1B,uBAC5Ch1B,KAAK+xB,sBAAsBkD,KAAOj1B,KAAKk1B,gBACzC,CAGQloB,iBAAiBrN,GACvBK,KAAK64B,qBAAuB74B,KAAKsxB,cAActkB,iBAAiBrN,GAAI2P,UAAU,CAC5E/K,KAAOqwB,IACDA,IACF50B,KAAKktB,cAAgB0H,EAEnB50B,KAAKotB,eADHptB,KAAKitB,gBAAgBviB,SAAW1K,KAAKktB,cAAcC,sBAC/B,MAEA,KAExBntB,KAAK6sB,gBAAgB7C,WAAW,CAC9BlmB,WAAY9D,KAAKktB,cAAcppB,WAC/BmwB,sBAAuBj0B,KAAKktB,cAAc4L,oBAAsB,IAAM94B,KAAKktB,cAAc6L,sBAE3F/4B,KAAKsyB,WAAY,EACjBtyB,KAAKksB,WAAY,IAGrBnpB,MAAQiB,IAAUhE,KAAKksB,WAAY,EAAOlsB,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EACjFya,SAAUA,KACRjqB,KAAKsyB,WAAY,IAGvB,CAEQvM,eAYN/lB,KAAKg5B,iBAAmBh5B,KAAK6oB,YAAY9C,aAX3B,CACZvc,SAAY,CACV1F,WAAc,CACZ2G,KAAQ,SACRhO,MAAS,CAAwB,aAAvBuD,KAAKqtB,UAAU5iB,KAAsBzK,KAAKqtB,UAAUvpB,WAAa9D,KAAKytB,YAAY3pB,cAGhGiH,WAAc,GACdC,YAAe,EACfK,YAAe,UAE8CrL,KAAKytB,YAAY3pB,YAAYwL,UAAU,CACpG/K,KAAOimB,IACLxqB,KAAK4tB,UAAYpD,GAEnBznB,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAGd,CAGO2C,OAAOzM,EAAe1V,GAC3B,GAAIzK,KAAK6sB,gBAAgBf,QAEvB,YADA9rB,KAAKuyB,WAAY,GAGnBvyB,KAAKksB,WAAY,EACjB,IAAI+M,EACAC,GACAC,GAEAC,GAAejZ,EAASwT,UACxB0F,GAAiBD,GAAa7O,OAAQld,IAA+B,GAAlBA,GAAInQ,YAC3Dk8B,GAAeA,GAAa7O,OAAQld,IAAkC,IAArBA,GAAI6oB,eAIrD,IACIoD,EADArD,EADkB9V,EAASwT,UACKpJ,OAAQld,IAAkC,IAArBA,GAAI6oB,eAEzDD,GACFA,EAAcsD,QAASC,KACrBF,EAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKqtB,UAAU3iB,QAAU,YAAc8uB,GAAQnC,WAAa,YAC5GiC,GAASt5B,KAAK8xB,cAAc1F,KAAKkN,EAAO,GAI5CF,KACFH,EAAgBj5B,KAAK0xB,cAAc+H,aAAaL,KAGlD,IAAIM,EAAavZ,EAASsT,OAC1BiG,EAAaA,EAAWnP,OAAQld,IAAgC,IAAnBA,GAAIgpB,aAEjD,IAAIsD,EAAeD,EAAWnP,OAAQld,IAA+B,GAAlBA,GAAInQ,YAGnDk5B,GADejW,EAASsT,OACGlJ,OAAQld,IAAgC,IAAnBA,GAAIgpB,aACpDD,IACFA,GAAYmD,QAASC,KACnBF,EAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKqtB,UAAU3iB,QAAU,UAAY8uB,GAAQxb,SAAW,YACxGsb,GAASt5B,KAAK8xB,cAAc1F,KAAKkN,EAAO,GAI5CI,IACFR,GAAcl5B,KAAK0xB,cAAckI,UAAUF,GAC3CR,GAAcA,GAAY3O,OAAQiP,IAAkC,IAAjBA,GAAQvlB,QAG7D,IAAI4lB,GAAa1Z,EAASmT,OAC1BuG,GAAaA,GAAWtP,OAAQld,IAAgC,IAAnBA,GAAI0oB,aAEjD,IAAI+D,GAAeD,GAAWtP,OAAQld,IAA+B,GAAlBA,GAAInQ,YAGnD44B,GADe3V,EAASmT,OACG/I,OAAQld,IAAgC,IAAnBA,GAAI0oB,aAexD,GAdID,IACFA,GAAYyD,QAASC,KACnBF,EAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKqtB,UAAU3iB,QAAU,UAAY8uB,GAAQtC,SAAW,YACxGoC,GAASt5B,KAAK8xB,cAAc1F,KAAKkN,EAAO,GAIhDt5B,KAAKkzB,aAA4D,GAA7ClzB,KAAK6sB,gBAAgBpwB,MAAMwzB,eAA0B,IAAM,IAE3E4J,KACFV,GAAcn5B,KAAK0xB,cAAcqI,UAAUF,IAC3CV,GAAcA,GAAY5O,OAAQiP,IAAkC,IAAjBA,GAAQtlB,QAGzDlU,KAAK8xB,cAAcjxB,OAAS,GAC9Bm5B,OAASh6B,KAAK8xB,eAAexiB,UAAU,CACrC/K,KAAOqwB,KACL50B,KAAKi6B,sBAAsB9Z,EAAU1V,EAAMwuB,EAAeE,GAAaD,GAAaY,GAAcH,EAAcN,GAAc,EAEhIt2B,MAAQiB,KAAehE,KAAKksB,WAAY,EAAOlsB,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,QAAO,EACtFya,SAAUA,aAEP,CACL,MAAM9J,GAAWngB,KAAK6sB,gBAAgBqN,cACtCl6B,KAAKi6B,sBAAsB9Z,GAAU1V,EAAMwuB,EAAeE,GAAaD,GAAaY,GAAcH,EAAcN,GAClH,CACF,CAEQY,sBAAsB9Z,EAAe1V,EAAWwuB,EAAoBE,GAC1ED,GAAkBY,GAAmBH,GAAmBN,IACxD,MAAMc,EAAWn6B,KAAK6sB,gBAAgBlsB,IAAI,aAC1C,IAAIy5B,EAAgBp6B,KAAK4tB,UAAUrD,OAAQR,GAClCA,EAAK2D,WAAayM,GAAU19B,OAErC,GAAKuD,KAAKqtB,UAAU3iB,QAiEb,CACL,IAAI8L,EACJA,EAAgB,CACdA,eAAe,EACftC,MAAO4lB,GAAa,IAAI5lB,MAAQ4lB,GAAa,IAAI5lB,MAAQilB,GAAY,IAAIjlB,MACzE+iB,UAAW6C,GAAa,IAAI7C,UAAY6C,GAAa,IAAI7C,UAAYkC,GAAY,IAAIlC,UACrFC,SAAU4C,GAAa,IAAI5C,SAAW4C,GAAa,IAAI5C,SAAWiC,GAAY,IAAIjC,SAClFH,WAAY+C,GAAa,IAAI/C,WAAa+C,GAAa,IAAI/C,WAAaoC,GAAY,IAAIpC,YAE9D,IAAxBvgB,GAAetC,QACjBsC,EAAgB,IAElB,IAAInJ,EAAa,CACfwqB,OAAQ1X,EAASgU,gBACU,aAAvBn0B,KAAKqtB,UAAU5iB,MAAwB,CAAEwlB,eAAgBjwB,KAAKkzB,cAClEc,IAAK7T,EAAS6T,IACdX,QAASlT,EAASkT,QAClBgH,IAAKr6B,KAAKitB,gBAAgBoN,IAC1BC,eAAgBt6B,KAAKitB,gBAAgBqN,eACrCxmB,MAAOqM,EAASrM,MAChBC,MAAOoM,EAASpM,MAChBqf,OAAQjT,EAASiT,OACjBtvB,WAAYqc,EAASrc,WACrBmwB,sBAAuBj0B,KAAKktB,cAAc+G,sBAC1C1uB,QAAS60B,EAAc,GAAG70B,QAC1BmoB,UAAW0M,EAAc,GAAG1M,UAC5BoG,kBAAmB9zB,KAAKyxB,cAAc8I,eAAepa,EAAS2T,mBAC9D0G,YAAara,EAASqa,YACtBzG,iBAAkB5T,EAAS4T,iBAAmB5T,EAAS4T,iBAAmB,GAC1ExG,OAA2B,GAAnBpN,EAASoN,OAAiB,IAAM,IACxCkN,kBAAmBz6B,KAAKitB,gBAAgBwN,kBACxC9G,UAAWsF,EACXxF,OAAQyF,GACR5F,OAAQ6F,GAAY,IAAIjlB,MAAQilB,GAAc,GAC9C3iB,cAAeA,EACftB,cAAe,CACbA,eAAe,EACfjB,MAAO0lB,GAAa,IAAI1lB,MAAQ0lB,GAAa,IAAI1lB,MAAQilB,GAAY,IAAIjlB,MACzE+J,SAAU2b,GAAa,IAAI3b,SAAW2b,GAAa,IAAI3b,SAAWkb,GAAY,IAAIlb,SAClFmZ,WAAYwC,GAAa,IAAIxC,WAAawC,GAAa,IAAIxC,WAAa+B,GAAY,IAAI/B,YAG1F9hB,gBAAiB,CACfA,iBAAiB,EACjBlB,SAAUklB,GAAe,IAAIllB,SAAWklB,GAAe,IAAIllB,SAAW8kB,EAAc,IAAI9kB,SACxFmD,SAAU+hB,GAAe,IAAI/hB,SAAW+hB,GAAe,IAAI/hB,SAAW2hB,EAAc,IAAI3hB,SACxF+f,WAAYgC,GAAe,IAAIhC,WAAagC,GAAe,IAAIhC,WAAa4B,EAAc,IAAI5B,WAC9FD,gBAAiBiC,GAAe,IAAIjC,gBAAkBiC,GAAe,IAAIjC,gBAAkB6B,EAAc,IAAI7B,gBAC7GE,IAAK+B,GAAe,IAAI/B,IAAM+B,GAAe,IAAI/B,IAAM2B,EAAc,IAAI3B,IACzEljB,KAAMilB,GAAe,IAAIjlB,KAAOilB,GAAe,IAAIjlB,KAAO6kB,EAAc,IAAI7kB,KAC5EmjB,WAAY8B,GAAe,IAAI9B,WAAa8B,GAAe,IAAI9B,WAAa0B,EAAc,IAAI1B,WAC9FC,YAAa6B,GAAe,IAAI7B,YAAc6B,GAAe,IAAI7B,YAAcyB,EAAc,IAAIzB,YACjG7gB,SAAU0iB,GAAe,IAAI1iB,SAAW0iB,GAAe,IAAI1iB,SAAWsiB,EAAc,IAAItiB,SACxFtC,IAAKglB,GAAe,IAAIhlB,IAAMglB,GAAe,IAAIhlB,IAAM4kB,EAAc,IAAI5kB,IACzEojB,MAAO4B,GAAe,IAAI5B,MAAQ4B,GAAe,IAAI5B,MAAQwB,EAAc,IAAIxB,OAEjFE,gBAAiB,CAAC,CAChBC,MAAO53B,KAAKitB,gBAAgB0K,gBAAgB,GAAGC,MAC/C8C,SAAUva,EAASmU,YACnBqG,QAAS,QACTC,oBAAqB56B,KAAKitB,gBAAgB0K,gBAAgB,GAAGiD,sBAE/DlwB,QAAS1K,KAAKitB,gBAAgBviB,SAIhC,GADKyV,EAASmU,oBAAoBjnB,EAAIsqB,gBAClCxX,EAASiU,iBAAmBjU,EAASmU,aAAgBnU,EAASmU,aAAenU,EAASoU,gBAAkB,CAC1G,IAAIoD,EAAkB33B,KAAKitB,gBAAgB0K,gBAAgB,GAO3D33B,KAAK66B,mBAAqB76B,KAAK6oB,YAAYrC,0BAA0BrG,EAASzV,QAASitB,EAAgBiD,oBAN/E,CACtBhD,MAASD,EAAgBC,MACzB8C,SAAYva,EAASiU,gBACrBuG,QAAW,QACXG,aAAgB3a,EAASmU,cAEoHhlB,UAAU,CACvJ/K,KAAOqwB,KACL50B,KAAK+6B,WAAW1tB,EAAK5C,EAAMzK,KAAKqtB,SAAS3iB,SACzClG,WAAW,KACTxE,KAAK6sB,gBAAgB7C,WAAW,CAAEoK,gBAAiB,GAAIE,YAAa,GAAIC,gBAAiB,KACzFv0B,KAAK4yB,eAAgB,EACrB5yB,KAAKsyB,WAAY,GAChB,IAAI,EAETvvB,MAAQiB,KACNhE,KAAKksB,WAAY,EACjBlsB,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,SAChCxP,KAAK6sB,gBAAgBlsB,IAAI,oBAAoBq6B,UAAU,CAAElP,SAAS,GAAM,EAE1E7B,SAAUA,KACRjqB,KAAKsyB,WAAY,EACjBtyB,KAAK4yB,eAAgB,IAG3B,MACE5yB,KAAK+6B,WAAW1tB,EAAK5C,EAAMzK,KAAKqtB,SAAS3iB,QAE7C,KAjK6B,CAC3B,IAAI2C,EAAM,CACRvJ,WAAYqc,EAASrc,WACrB6vB,UAAWsF,EACXgC,mBAAoB,GACpB5lB,gBAAiB,GACjBie,OAAQ6F,GACR+B,iBAAkB,GAClB1kB,cAAe,GACfid,OAAQyF,GACRiC,iBAAkB,GAClBjmB,cAAe,GACf3P,QAAS60B,EAAc,GAAG70B,QAC1BuO,MAAOqM,EAASrM,MAChBC,MAAOoM,EAASpM,MAChBqf,OAAQjT,EAASiT,OACjBY,IAAK7T,EAAS6T,IACdX,QAASlT,EAASkT,QAClBsE,gBAAiB,CAAC,CAChBC,MAAOzX,GAAUib,UACjBV,SAAU16B,KAAKq7B,yBACfV,QAAS,UAGX7G,kBAAmB3T,EAAS2T,mBAAqB9zB,KAAKyxB,cAAc8I,eAAe,IAAIvuB,OAEzFhM,KAAKs7B,YAAct7B,KAAK6oB,YAAYnb,WAAWL,GAAKiC,UAAU,CAC5D/K,KAAOqwB,IACDA,IACF50B,KAAKqtB,SAAS3iB,QAAUkqB,GAAUlqB,QAClC1K,KAAK6oB,YAAY3B,WAAWlnB,KAAKqtB,SAAS3iB,SAAS4E,UAAU,CAC3D/K,KAAOwlB,IACL/pB,KAAKwP,QAAU,CACb/E,KAAM,UACNjO,KAAM,yCAAyCwD,KAAKytB,YAAY3pB,eAElE9D,KAAK6nB,aAAa,KAAK,EAEzB9kB,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,SAEZjqB,KAAKuyB,WAAY,EACjBvyB,KAAKu7B,UACLv7B,KAAKitB,gBAAkB,GACvBjtB,KAAKy2B,iBACLz2B,KAAKksB,WAAY,EACL,SAARzhB,GACFzK,KAAK6S,UAAUI,MAAM2hB,GACrB50B,KAAK8S,OAAO0oB,YAEZx7B,KAAK6sB,gBAAgB4O,iBAAc,EAIzC14B,MAAQiB,IACNhE,KAAKksB,WAAY,EACjBlsB,KAAKuyB,WAAY,EACjBvyB,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KACRjqB,KAAKsyB,WAAY,IAGvB,CAiGF,CAEQyI,WAAW1tB,EAAU5C,EAAWixB,GACtC17B,KAAK27B,eAAiB37B,KAAKsxB,cAAc3jB,WAAWN,EAAKquB,GAAQpsB,UAAU,CACzE/K,KAAOqwB,KACDA,KACyB,aAAvB50B,KAAKqtB,UAAU5iB,OACbzK,KAAKqtB,SAASuO,aAAc,GAE9B57B,KAAKqtB,UAAU3iB,SAAW1K,KAAKytB,YAAY7rB,WAAW8I,SACxD1K,KAAKytB,YAAYjP,aAAeoW,GAChC50B,KAAKytB,YAAYjtB,aAAa+D,KAAKqwB,IACnC50B,KAAK67B,oBAAsB77B,KAAK6oB,YAAY7C,6BAA6BhmB,KAAKqtB,UAAU3iB,SAAS4E,UAAU,CACzG/K,KAAOqwB,KACL50B,KAAKytB,YAAYjP,aAAahW,eAAoBzH,KAAKC,MAAM4zB,GAAStU,QAAQ3f,IAAI,sBAAwB,MAC1GX,KAAKytB,YAAYjP,aAAasd,KAAUlH,GAAStU,QAAQ3f,IAAI,eAC7DX,KAAK8oB,YAAYhI,oBAAoB,IACzB,SAARrW,GACFzK,KAAK8S,OAAO0oB,WACZx7B,KAAK2xB,eAAehgB,YAAY,oCAEhC3R,KAAK6sB,gBAAgB4O,iBACrBz7B,KAAKy2B,iBAAc,EAGvB1zB,MAAQiB,KACNhE,KAAKksB,WAAY,EACjBlsB,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KAAQjqB,KAAKsyB,WAAY,MAGzB,SAAR7nB,GACyB,aAAvBzK,KAAKqtB,UAAU5iB,MAAuBzK,KAAKqtB,SAASuO,YACxD57B,KAAK6S,UAAUI,OAAM,GAErBjT,KAAK8S,OAAO0oB,WACZx7B,KAAK2xB,eAAehgB,YAAY,oCAEhC3R,KAAK6sB,gBAAgB4O,iBACrBz7B,KAAKy2B,kBAGTz2B,KAAK8xB,cAAgB,GACrB9xB,KAAKuyB,WAAY,EACjBvyB,KAAKwP,QAAU,CACb/E,KAAM,UACNjO,KAAM,kCAERwD,KAAK6nB,aAAa,MAClB7nB,KAAKksB,WAAY,IAGrBnpB,MAAQiB,KACNhE,KAAKksB,WAAY,EACjBlsB,KAAKuyB,WAAY,EACjBvyB,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KACRjqB,KAAKsyB,WAAY,EACjBtyB,KAAK4yB,eAAgB,IAG3B,CAEQyI,yBAMN,QADI7+B,GAAO,GACFu/B,GAAI,EAAGA,GAAI,EAAGA,KACrBv/B,IANiB,6BAMIw/B,OAAOC,KAAKC,MAAsBC,GAAhBF,KAAKG,WAC9C,IAASL,GAAI,EAAGA,GAAI,EAAGA,KACrBv/B,IANW,aAMIw/B,OAAOC,KAAKC,MAAsBG,GAAhBJ,KAAKG,WACxC,IAASL,GAAI,EAAGA,GAAI,EAAGA,KACrBv/B,IATiB,6BASIw/B,OAAOC,KAAKC,MAAsBI,GAAhBL,KAAKG,WAC9C,IAASL,GAAI,EAAGA,GAAI,EAAGA,KACrBv/B,IATY,WASIw/B,OAAOC,KAAKC,MAAsBK,EAAhBN,KAAKG,WACzC,OAAO5/B,EACT,CAGQ85B,mBACNt2B,KAAKw8B,iBAAmBx8B,KAAKsxB,cAAchkB,gBAAgBgC,UAAU,CACnE/K,KAAOqwB,IACDA,IACF50B,KAAKy8B,YAAc7H,IAGvB7xB,MAAQiB,IAAUhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EACzDya,SAAUA,QAEd,CAGQsM,mBACNv2B,KAAK08B,iBAAmB18B,KAAKsxB,cAAc/jB,gBAAgB+B,UAAU,CACnE/K,KAAOqwB,IACDA,IACF50B,KAAK28B,YAAc/H,IAGvB7xB,MAAQiB,IAAUhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EACzDya,SAAUA,QAEd,CAGQuM,qBACNx2B,KAAK48B,mBAAqB58B,KAAKsxB,cAAc9jB,kBAAkB8B,UAAU,CACvE/K,KAAOqwB,IACDA,IACF50B,KAAK68B,aAAejI,IAGxB7xB,MAAQiB,IAAUhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EACzDya,SAAUA,QAEd,CAGOmF,iBACepvB,KAAK8S,OAAOV,KAAKqW,GAA6B,CAChEpW,MAAO,MACPpS,KAAMD,KAAKqtB,UAAU3iB,UAEXoyB,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWkb,IAC1EA,GACFxqB,KAAKk4B,uBAAqB,EAGhC,CAGOzH,SAASrgB,EAA0B2sB,GAExC,GADA/8B,KAAKsyB,WAAY,EACbliB,EAAMC,QACRrQ,KAAKssB,YAAYF,KAAK2Q,OAEnB,CACH,IAAIC,EAAQh9B,KAAKssB,YAAYtI,QAAQ+Y,GACjCC,GAAQ,GACVh9B,KAAKssB,YAAY6G,OAAO6J,EAAO,EAEnC,CACF,CAGOjN,mBACD/vB,KAAKssB,YAAYzrB,QAAU,EACJb,KAAK8S,OAAOV,KAAK2Z,EAAsB,CAC9D1Z,MAAO,MACPpS,KAAMD,KAAKssB,cAEIwQ,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,IAC/EA,IACF/pB,KAAKk4B,wBACLl4B,KAAKssB,YAAc,MAMLtsB,KAAK8S,OAAOV,KAAK6qB,KAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,mDACRiO,KAAQ,OAKhB,CAGQ8wB,UACNv7B,KAAKyyB,YAAa,EAClBjuB,WAAW,KACTxE,KAAKyyB,YAAa,GACjB,KACL,CAEQhG,iBAAiBza,GACvBhS,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwV,GAERhS,KAAK6nB,aAAa,IACpB,CAGOA,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAK2xB,eAAexG,cAAY,EAC9CD,EACL,CAEOgG,eACDlxB,KAAK6sB,gBAAgB8J,SAGI,aAAvB32B,KAAKqtB,UAAU5iB,MAAuBzK,KAAKqtB,UAAUuO,YAEvD57B,KAAK6S,UAAUI,OAAM,GAEvBjT,KAAK8S,OAAO0oB,WANZx7B,KAAK0xB,cAAcwL,sBAQvB,CAEO9R,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WACtBjqB,KAAK03B,mBACP13B,KAAK03B,kBAAkBrM,cAErBrrB,KAAK64B,sBACP74B,KAAK64B,qBAAqBxN,cAExBrrB,KAAKs7B,aACPt7B,KAAKs7B,YAAYjQ,cAEfrrB,KAAKw8B,kBACPx8B,KAAKw8B,iBAAiBnR,cAEpBrrB,KAAK08B,kBACP18B,KAAK08B,iBAAiBrR,cAEpBrrB,KAAKo4B,oBACPp4B,KAAKo4B,mBAAmB/M,cAEtBrrB,KAAK48B,oBACP58B,KAAK48B,mBAAmBvR,cAEtBrrB,KAAKg5B,kBACPh5B,KAAKg5B,iBAAiB3N,cAEpBrrB,KAAKm9B,mBACPn9B,KAAKm9B,kBAAkB9R,cAErBrrB,KAAKo9B,iBACPp9B,KAAKo9B,gBAAgB/R,cAEnBrrB,KAAKq9B,iBACPr9B,KAAKq9B,gBAAgBhS,cAEnBrrB,KAAK27B,gBACP37B,KAAK27B,eAAetQ,cAElBrrB,KAAK20B,kBACP30B,KAAK20B,iBAAiBtJ,cAEpBrrB,KAAK67B,qBACP77B,KAAK67B,oBAAoBxQ,cAEvBrrB,KAAK66B,oBACP76B,KAAK66B,mBAAmBxP,cAE1BrrB,KAAK6sB,gBAAgB4O,gBACvB,iDAx7BWpK,GAAoBjvB,MA6DrBkO,MAAelO,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,mBAAAmQ,MAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,KAAAnpB,MAAAk7B,KAAAl7B,MAAAm7B,MAAAn7B,MAAAo7B,MAAAp7B,MAAAq7B,MAAAr7B,MAAAs7B,KAAA,oCA7DdrM,EAAoB7gB,UAAA,uBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,sBAwDpB+sB,KAAY,w+LDvFrBx7B,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAChCA,MAAA,kBAAYA,QAC8BA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBACAA,MAAA,0BASEA,MARA,EAAAy7B,GAAA,YAQAz7B,CARiD,GAAA07B,GAAA,aAQjD17B,CAJ2I,GAAA27B,GAAA,yBAAA37B,OAgBnIA,MAJR,SAIQA,CAJH,aAIGA,CAHiD,YAGjDA,CAFoC,YAEpCA,CADiB,YACqBA,MAAA,uBAAgBA,QAGlDA,MAFJ,YAEIA,CAF6B,uBAE7BA,CAD4B,gBACjBA,MAAA,iBAAUA,QACrBA,MAAA,eACAA,MAAA,GAAA47B,GAAA,oBACF57B,QAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,gBAASA,QACpBA,MAAA,eACAA,MAAA,GAAA67B,GAAA,oBACF77B,QACAA,MAAA,GAAA87B,GAAA,YAKF97B,QAGIA,MAFJ,YAEIA,CAF6B,uBAE7BA,CAD4B,gBACjBA,MAAA,aAAMA,QAEfA,MADF,mBACEA,CAD2E,oBACrDA,MAAA,YACtBA,QACAA,MAAA,oBAAsBA,MAAA,cAG1BA,YAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,cAAOA,QAClBA,MAAA,eAEJA,UAOAA,MANA,GAAA+7B,GAAA,aAMA/7B,CAN0B,GAAAg8B,GAAA,aAM1Bh8B,CAH0B,GAAAi8B,GAAA,cAM5Bj8B,QAIMA,MAHN,YAGMA,CAHkB,SAGlBA,CAFC,YAEDA,CADgD,YACVA,MAAA,mBAAYA,QAClDA,MAAA,aAEEA,MADA,GAAAk8B,GAAA,YACAl8B,CADkG,GAAAm8B,GAAA,2BAGtGn8B,UAGIA,MAFJ,YAEIA,CAFoC,uBAEpCA,CAD8B,gBACnBA,MAAA,eAAQA,QACnBA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,cAAOA,QAClBA,MAAA,eACFA,QAEEA,MADF,uBACEA,CADoJ,gBACzIA,MAAA,gBAASA,QAGpBA,MAFA,GAAAo8B,GAAA,eAEAp8B,CADqG,GAAAq8B,GAAA,qBAKzGr8B,UAGIA,MAFJ,YAEIA,CAFkD,uBAElDA,CAD8B,gBAClBA,MAAA,qCAA6BA,QACzCA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,wBAAiBA,QAC5BA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,qBAAcA,QACzBA,MAAA,eAEJA,UAGIA,MAFJ,YAEIA,CAFoC,uBAEpCA,CAD8B,gBACnBA,MAAA,UAAGA,QACdA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD2F,gBAChFA,MAAA,mBAAYA,QACvBA,MAAA,eAGNA,YAEEA,MADF,SACEA,CADG,YACmCA,MAAA,cAAOA,QAGzCA,MAFJ,YAEIA,CAFoC,uBAEpCA,CAD4C,gBACjCA,MAAA,iBAAUA,QACrBA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD6C,iBAClCA,MAAA,0BAAkBA,QAC7BA,MAAA,gBAGNA,YA8CAA,MA7CA,IAAAs8B,GAAA,cA6CAt8B,CA7CgC,IAAAu8B,GAAA,cA6ChCv8B,CAlCqE,IAAAw8B,EAAA,cAgDzEx8B,UAEEA,MADF,UACEA,CADG,cASDA,MAPA,IAAAy8B,EAAA,aAOAz8B,CAPsE,IAAA08B,GAAA,cAoBxE18B,QAKQA,MAJR,UAIQA,CAJH,aAIGA,CAHoG,aAGpGA,CAFsI,aAEtIA,CADwD,kBAEtDA,MAAA,IAAA28B,GAAA,uBAMA38B,MAAA,QAEEA,MADA,IAAA48B,GAAA,YACA58B,CADsD,IAAA68B,GAAA,qBAIxD78B,MAAA,QAEEA,MADA,IAAA88B,GAAA,YACA98B,CADsD,IAAA+8B,GAAA,qBAIxD/8B,MAAA,QAGEA,MAFA,IAAAg9B,GAAA,YAEAh9B,CAFsD,IAAAi9B,GAAA,qBAKxDj9B,MAAA,QAEEA,MADA,IAAAk9B,GAAA,YACAl9B,CADsD,IAAAm9B,GAAA,qBAKxDn9B,MADA,IAAAo9B,GAAA,YACAp9B,CADgF,IAAAq9B,GAAA,aAIpFr9B,UACAA,MAAA,0BAQdA,oBAEEA,MADF,yBACEA,CADkB,cAMhBA,MAJA,IAAAs9B,GAAA,gBAIAt9B,CAJiF,IAAAu9B,GAAA,gBAIjFv9B,CAHwE,IAAAw9B,GAAA,gBAGxEx9B,CADuB,IAAAy9B,GAAA,iBAI7Bz9B,+CA1QoCA,MAAA,GAAAA,MAAA,OAAA0O,EAAAob,WAIS9pB,QAAkFA,MAAlF,OAAA0O,EAAAwhB,YAAA,MAAAxhB,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAAAoG,EAAA+b,gBAAA9B,OAAAja,EAAA8hB,cAAkFxwB,CAAA,WAAA09B,IAanH19B,MAAA,GAAAA,MAAA,YAAA0O,EAAA+b,iBAQgBzqB,MAAA,IAAAA,MAAA,eAAAgsB,GAAAtd,EAAA+b,gBAAAlsB,IAAA,eAAAytB,GAAAC,SAAAvd,EAAAyhB,WAKAnwB,MAAA,GAAAA,MAAA,eAAA29B,GAAAjvB,EAAA+b,gBAAAlsB,IAAA,eAAAo/B,GAAA1R,SAAAvd,EAAAyhB,WAEVnwB,cAAA,aAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,SAqBAtI,MAAA,IAAAA,MAAA,OAAA0O,EAAA6hB,cAGAvwB,cAAA,OAAA0O,EAAA6hB,cAGAvwB,cAAA,OAAA0O,EAAA6hB,cASgDvwB,MAAA,GAAAA,MAAA,cAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAAqB,eAAA,MAAA5d,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAC7BtI,cAAA,cAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAAqB,eAAA,MAAA5d,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAMqDtI,MAAA,GAAAA,MAAA,eAIDA,MAAA,GAAAA,MAAA,eAEzCA,cAAA,eAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAAAoG,EAAA2c,YAAA7rB,WAAA8I,QAAA,qDAEetI,MAAA,GAAAA,MAAA,cAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAAAoG,EAAA2c,YAAA7rB,WAAA8I,SAEoCtI,cAAA,cAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAAAoG,EAAA2c,YAAA7rB,WAAA8I,SAQKtI,MAAA,GAAAA,MAAA,eAILA,MAAA,GAAAA,MAAA,eAIDA,MAAA,GAAAA,MAAA,eAQlDA,MAAA,GAAAA,MAAA,oBAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,MAAA,oBAEiBrI,MAAA,GAAAA,MAAA,oBAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,MAAA,kBAS2BrI,MAAA,GAAAA,MAAA,eAIWA,MAAA,GAAAA,MAAA,eAIrFA,cAAA,eAAA0O,EAAAuc,UAAAvc,EAAAuc,SAAA3iB,UAWAtI,cAAA,eAAA0O,EAAAuc,UAAAvc,EAAAuc,SAAAqB,cAAA,oBAAA5d,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,OAkCArI,cAAA,OAAA0O,EAAAye,wBAAA,MAAAze,EAAAuc,UAAAvc,EAAAuc,SAAA3iB,UAiBctI,MAAA,GAAAA,MAAA,QAAA0O,EAAAye,uBAAA,MAAAze,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAOdtI,cAAA,2BAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,OAeDrI,MAAA,GAAAA,MAAA,SAAA0O,EAAA6e,aAAA,mBAAA7e,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,QAAAqG,EAAAihB,sBAAAzH,aAAAzpB,QACEuB,cAAA,SAAA0O,EAAAye,wBAAA,MAAAze,EAAAuc,UAAAvc,EAAAuc,SAAA3iB,UAAA,mBAAAoG,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,QAAAqG,EAAAihB,sBAAAzH,aAAAzpB,QAEwBuB,MAAA,GAAAA,MAAA,aAAA0O,EAAAihB,uBACkB3vB,MAAA,GAAAA,MAAA,2BAAA0O,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA5iB,OA2BrBrI,MAAA,IAA8CA,MAA9C,kBAAA0O,EAAAshB,4BAA8ChwB,CAAA,4BACjCA,cAAA,mBAAA0O,EAAAshB,6BAIsChwB,QAAwBA,MAAxB,SAAA0O,EAAA0hB,aAAwBpwB,CAAD,kBAAAA,MAAA,GAAA49B,KAWnG59B,MAAA,GAAAA,MAAA,QAAA0O,EAAAwhB,WACAlwB,cAAA,OAAA0O,EAAAwhB,WACgFlwB,cAAA,OAAA0O,EAAAwhB,WAAAxhB,EAAA8hB,eAAA9hB,EAAA+b,gBAAA9B,OAEL3oB,cAAA,OAAA0O,EAAAwhB,WAAAxhB,EAAA8hB,gBAAA,MAAA9hB,EAAAuc,SAAA,KAAAvc,EAAAuc,SAAA3iB,UAAAoG,EAAA+b,gBAAA9B,4qBC9O7EsG,CAAoB,+HC9B3B,SAAU4O,EAAsBC,GAAmBC,EAAgBt1B,EAAmBC,GACxF,OAAQs1B,IACJ,MAAMC,EAAaD,EAAUpN,SAASkN,IAChCI,EAAWF,EAAUpN,SAASmN,GAC9BI,EAAcH,EAAUpN,SAASnoB,GACjC21B,GAAWJ,EAAUpN,SAASloB,GAChCiB,IAAOw0B,EAAW9jC,OAAOwP,OAAO,cAAgBF,IAAOy0B,GAAS/jC,OAAOwP,OAAO,cAC9Es0B,EAAWvF,UAAU,CAAEyF,eAAe,IAC/B10B,IAAOw0B,EAAW9jC,OAAOwP,OAAO,eAAiBF,IAAOy0B,GAAS/jC,OAAOwP,OAAO,cAClFo0B,EAAW5jC,MAAQ6jC,EAAS7jC,MAC5B4jC,EAAWrF,UAAU,CAAEyF,eAAe,KAEtCJ,EAAWrF,UAAU,MACrBuF,EAAWvF,UAAU,OAGpBjvB,IAAOw0B,EAAW9jC,OAAOwP,OAAO,cAAgBF,IAAOy0B,GAAS/jC,OAAOwP,OAAO,cACnFs0B,EAAWvF,UAAU,MAEhBqF,EAAW5jC,MAAQ6jC,EAAS7jC,MACjC4jC,EAAWrF,UAAU,CAAEyF,eAAe,KAEtCJ,EAAWrF,UAAU,MACrBuF,EAAWvF,UAAU,MAAI,CAGrC,qSC5BI54B,MAAA,8BAAqDA,MAAA,yBAAAA,MAAAs+B,GAAA,MAAAC,EAAAv+B,QAAA,OAAAA,MAAeu+B,EAAA9Y,eAAc,GAChFzlB,MAAA,OAAGA,MAAA,GACLA,mCADKA,MAAA,GAAAA,MAAAu+B,EAAA3uB,qDAMK5P,MADF,WACEA,CADmF,UAC1DA,MAAA,iBAAWA,QACpCA,MAAA,wBAAyGA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAAqT,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAC,kBAAiB,GACjIx+B,MAAA,cAAUA,MAAA,SAEdA,uDASEA,MAAA,wBAA8IA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAAoS,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAE,qBAAoB,GACzKz+B,MAAA,cAAUA,MAAA,YACZA,qDACAA,MAAA,wBAAkKA,MAAA,mBAAAA,MAAA2rB,GAAA,MAAA4S,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAC,kBAAiB,GAC1Lx+B,MAAA,cAAUA,MAAA,SACZA,sDAXEA,MAFJ,WAEIA,CAFqC,sBAErCA,CAD4B,eACjBA,MAAA,eAASA,QACpBA,MAAA,cAA8DA,MAAA,yBAAA2O,GAAA3O,MAAA0+B,GAAA,MAAAH,EAAAv+B,qBAAAu+B,EAAAI,SAAAhwB,KAAA4vB,EAAAI,SAAAhwB,GAAA3O,MAAA2O,EAAA,GAA9D3O,QACAA,MAAA,aAAwBA,MAAA,iBAAA2O,GAAA3O,MAAA0+B,GAAA,MAAAH,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAK,eAAA,MAAAL,EAAAM,gBAAA,MAAAN,EAAAM,eAAAnpB,cAAA,KAAA6oB,EAAAM,eAAAnpB,cAAAtU,QAAAuN,GAA6D,GAC5F3O,MAAA,UAAsFA,MAAA,GAE1FA,YAIAA,MAHA,EAAA8+B,EAAA,yBAGA9+B,CAH6K,EAAA++B,EAAA,0BAM/K/+B,iCAXkEA,MAAA,GAAAA,MAAA,UAAAu+B,EAAAI,UAAuB3+B,MAAA,iBAAAA,MAAA,EAAAg/B,IAEpDh/B,MAAA,GAAAA,MAAA,qBAAAu+B,EAAAM,gBAAA,MAAAN,EAAAM,eAAAnpB,cAAA,KAAA6oB,EAAAM,eAAAnpB,cAAAtU,QAAA,GAAApB,OAAuDA,cAAAu+B,EAAAI,UAGR3+B,cAAA,OAAAu+B,EAAAU,cAGHj/B,cAAA,QAAAu+B,EAAAU,eAAAV,EAAAh1B,4DAKjFvJ,MADF,WACEA,CADgD,iBACtCA,MAAA,mBAAAA,MAAA+sB,GAAA,MAAAwR,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAW,kBAAiB,GAAEl/B,MAAA,mBACxCA,qDAwDJA,MAAA,eAAwGA,MAAA,mBAAAA,MAAAotB,GAAA,MAAAmR,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAY,YAAW,GAAEn/B,MAAA,YAAMA,oDACpIA,MAAA,eAAqFA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAA2Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAa,kBAAiB,GAAEp/B,MAAA,UAAIA,mDAIrHA,MAAA,eAAiGA,MAAA,mBAAAA,MAAAytB,GAAA,MAAA8Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAp1B,iBAAgB,GAA+BnJ,MAAA,GAA+BA,iCAA5DA,MAAA,WAAAu+B,EAAAc,iBAA6Br/B,cAAAu+B,EAAAe,SAAA,iBCrExJ,IAAMC,GAAuB,MAA9B,MAAOA,GAwBX7hC,YACU8hC,EACAlQ,EACA5e,EACA2e,EACAoQ,EACA9Y,EACA0E,GACA3E,GACAgZ,IARA9hC,KAAA4hC,cACA5hC,KAAA0xB,gBACA1xB,KAAA8S,SACA9S,KAAAyxB,gBACAzxB,KAAA6hC,kBACA7hC,KAAA+oB,kBACA/oB,KAAAytB,eACAztB,KAAA8oB,eACA9oB,KAAA8hC,UA/BA9hC,KAAA+hC,SAAW,IAAIC,MACfhiC,KAAAiiC,UAAY,IAAID,MAClBhiC,KAAAkiC,YAAmB,GACnBliC,KAAA4xB,qBAAuB,IAAIrxB,IAI5BP,KAAA2L,eAAyB,GAEzB3L,KAAAmiC,QAAe/lC,KAEf4D,KAAAoiC,mBAA6B,EAE7BpiC,KAAAqiC,kBAA4B,EAC5BriC,KAAA0hC,UAAoB,EACpB1hC,KAAAsyB,WAAqB,EACrBtyB,KAAA+gC,SAAmB,GACnB/gC,KAAAsiC,aAAuB,EACvBtiC,KAAAgS,SAA0B,KAC1BhS,KAAAqhC,cAAwB,EACxBrhC,KAAAuiC,mBAA6B,EAC7BviC,KAAAyhC,iBAAwB,EAY7BzhC,KAAKwiC,OAAS,IAAIC,IACpB,CAEO5N,cACL70B,KAAK80B,8BACP,CAGOA,+BACL,MAAMM,EAAep1B,KAAK0iC,oBAAoBjmC,MAC9CuD,KAAK0iC,oBAAoBrN,aAAaxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU7S,IACrFuD,KAAK0iC,oBAAoBnN,QAC3Bv1B,KAAKsyB,UAAYkD,OAAOC,KAAKL,GAAcM,KAAKC,GAAO31B,KAAK0iC,oBAAoBjmC,MAAMk5B,IAAQP,EAAaO,IAC3G31B,KAAKiiC,UAAUrJ,MAAK,GAAI,EAG9B,CAEO3pB,WACAjP,KAAKihC,eAAex2B,MAAuC,QAA7BzK,KAAKihC,eAAex2B,OACrDzK,KAAKqiC,kBAAmB,GAErBriC,KAAKihC,eAAex2B,MAAuC,oBAA7BzK,KAAKihC,eAAex2B,MACrDzK,KAAKqiC,kBAAmB,EACxBriC,KAAKqhC,cAAe,EACpBrhC,KAAKuiC,mBAAoB,EACzBviC,KAAKkiC,YAAcliC,KAAKihC,eAAe/mB,WACvCla,KAAK2iC,+BAEL3iC,KAAK4iC,aAEP5iC,KAAK80B,8BACP,CAEO8L,kBACL5gC,KAAKoiC,mBAAoB,CAC3B,CAEOvB,qBACL7gC,KAAKsiC,aAAc,EACnBtiC,KAAK6iC,aAAe,GACpB7iC,KAAK+gC,SAAW,GAChB/gC,KAAKoiC,mBAAoB,CAC3B,CAEOd,kBACLthC,KAAKoiC,mBAAoB,CAC3B,CAEQQ,aACN,GAAI5iC,KAAKqiC,iBAAkB,CACzBriC,KAAK0hC,UAAW,EAChB,IAAIoB,EAAY9iC,KAAKihC,gBAAgB/1B,cAAc63B,MAAQ,IAAI/2B,KAC/D,MAAMg3B,EAAIj3B,IAAO+2B,GACjB,IAEIG,EACAC,EACAC,GAJAC,EAAOJ,EAAEK,QACTC,EAAMN,EAAEO,UAIRH,EAAO,IACTD,GAASC,EAAO,EACZD,GAAS,KACXA,GAAS,IAAMA,GAAOx4B,YAExBs4B,EAAK,IAAMG,EAAKz4B,aAEhBw4B,GAASC,EAAO,EAChBH,EAAKG,GAGLF,EADEI,EAAM,GACJ,IAAMA,EAAI34B,WAEV24B,EAGQ,IAAVH,KACFA,GAAS,MAEXA,GAASA,GAAS,IAAMD,EACxBljC,KAAK0iC,mBAAqB1iC,KAAK4hC,YAAYvY,MAAM,CAC/CzR,YAAa,EAAC,GACdG,YAAa,CAAC,IACd9M,SAAU,CAACjL,KAAKihC,eAAiBkC,GAAS,GAAI5Z,KAAWC,UACzDxR,WAAY,EAAC,GACbwrB,QAAS,EAAC,GACV54B,WAAY,CAAC5K,KAAKihC,eAXTgC,EAAK,IAAMC,EAWsB,GAAI3Z,KAAWC,UACzD/R,MAAO,CAAC,GAAI8R,KAAWC,UACvB3e,UAAW,CAAC7K,KAAKihC,eAAiB6B,EAAY,GAAIvZ,KAAWC,UAC7D1e,QAAS,CAAC9K,KAAKihC,eAAiB6B,EAAY,GAAIvZ,KAAWC,WAC1D,CACDgL,UAAWyL,EAAsB,aAAc,WAAY,YAAa,YAE5E,MACEjgC,KAAKqiC,kBAAmB,EACxBriC,KAAK0hC,UAAW,EAChB1hC,KAAK2L,eAAiB3L,KAAKihC,eAAethC,GAC1CK,KAAKqhC,cAAe,EAC2B,IAA3CrhC,KAAKihC,eAAenpB,cAAchE,QACpC9T,KAAK+gC,SAAW/gC,KAAKihC,eAAenpB,cAAchE,MAAQ,IAAM9T,KAAKihC,eAAenpB,cAAc/D,OAEpG/T,KAAK0iC,mBAAqB1iC,KAAK4hC,YAAYvY,MAAM,CAC/CzR,YAAa,CAA+B,KAA9B5X,KAAKihC,eAAetpB,QAClCI,YAAa,CAAC/X,KAAKihC,eAAenpB,cAAcC,aAChD9M,SAAU,CAAgC,KAA9BjL,KAAKihC,eAAetpB,QAAkB3X,KAAKihC,eAAetpB,OACb3X,KAAKihC,eAAeppB,IAC7E9L,IAAO/L,KAAKihC,eAAeppB,KAAK5L,OAAO,SAAW,GADlDF,IAAO/L,KAAKihC,eAAewC,YAAYx3B,OAAO,SACQsd,KAAWC,UACjExR,WAAY,CAAiD,KAAhDhY,KAAKihC,eAAenpB,cAAcE,YAC/CwrB,QAAS,CAAqD,IAApDxjC,KAAKihC,eAAenpB,cAAc1M,gBAC5CR,WAAY,CAAC5K,KAAKihC,eAAevpB,MAC/B1X,KAAKihC,eAAeyC,aAAe33B,IAAO/L,KAAKihC,eAAeyC,cAAcz3B,OAAO,SACnFF,IAAO/L,KAAKihC,eAAevpB,OAAOzL,OAAO,SAAW,GAAIsd,KAAWC,UACrE/R,MAAO,CAACzX,KAAKihC,eAAiBjhC,KAAKihC,eAAexpB,MAAQ,GAAI8R,KAAWC,UACzE3e,UAAW,CAAC7K,KAAKihC,eAAevpB,MAAQ1X,KAAKihC,eAAevpB,MAAQ,GAAI6R,KAAWC,UACnF1e,QAAS,CAAgC,KAA9B9K,KAAKihC,eAAetpB,QAAkB3X,KAAKihC,eAAetpB,SAAW3X,KAAKihC,eAAeppB,IACrE,KAA9B7X,KAAKihC,eAAetpB,QAAkB3X,KAAKihC,eAAetpB,QAAY3X,KAAKihC,eAAeppB,IAC7D,KAA9B7X,KAAKihC,eAAetpB,QAAiB3X,KAAKihC,eAAeppB,IAAM7X,KAAKihC,eAAeppB,IAAM,GADQ7X,KAAKihC,eAAevpB,MADX1X,KAAKihC,eAAeppB,IAEjC0R,KAAWC,WACvG,CACDgL,UAAWyL,EAAsB,aAAc,WAAY,YAAa,aAG5EjgC,KAAKsyB,WAAY,CACnB,CAEOqR,WAAW/uB,GAChB5U,KAAK6iC,aAAejuB,EACpB5U,KAAK+gC,SAAWnsB,GAAMd,MAAQ,IAAMc,GAAMb,KAC5C,CAEOxI,iBACL,IAAIvL,KAAK0iC,mBAAmB5W,QAG1B,GAAK9rB,KAAKihC,eAAex2B,MAAuC,oBAA7BzK,KAAKihC,eAAex2B,KAA6B,CAClF,IAAIm5B,EAAY5jC,KAAK0iC,oBAAoBjmC,MACzC,MAAMumC,EAAIj3B,IAAO63B,GAAWh5B,YAC5B,IAEIq4B,EACAC,EACAC,GAJAC,EAAOJ,EAAEK,QACTC,EAAMN,EAAEO,UAIRH,EAAO,IACTD,GAASC,EAAO,EACZD,GAAS,KACXA,GAAS,IAAMA,GAAOx4B,YAExBs4B,EAAK,IAAMG,EAAKz4B,aAEhBw4B,GAASC,EAAO,EAChBH,EAAKG,GAGLF,EADEI,EAAM,GACJ,IAAMA,EAAI34B,WAEV24B,EAGQ,IAAVH,KACFA,GAAS,MAEXA,GAASA,GAAS,IAAMD,EAExB,IAAIp4B,GAAU84B,EAAU94B,QACpBG,GAAW24B,EAAU34B,SACpBH,KACHA,GAAU84B,EAAU/4B,WAEjBI,KACHA,GAAWk4B,IAGb,IAAIU,GAAU,CACZ5rB,oBAAqB,OACrBR,MAAOmsB,GAAWnsB,MAClBG,YAAagsB,GAAWhsB,YAAc,EAAI,EAC1CI,WAAY4rB,GAAW5rB,WAAa,EAAI,EACxCD,YAAa6rB,GAAW7rB,YACxB3M,eAAgBw4B,GAAWJ,QAAUz3B,MAAS+3B,cAAgB,GAC9Dl5B,WAAY5K,KAAKyxB,cAAc8I,eAAeqJ,EAAU/4B,UAAW+4B,GAAWh5B,YAC9EK,SAAUjL,KAAKyxB,cAAc8I,eAAezvB,GAASG,IACrDP,QAAS1K,KAAKytB,YAAY7rB,WAAW8I,QACrClH,QAASxD,KAAKkiC,YAAY1+B,SAE5BxD,KAAKyhC,iBAAkB,EACvBzhC,KAAK+jC,iBAAmB/jC,KAAK6hC,gBAAgBp2B,mBAAmBo4B,IAASv0B,UAAU,CACjF/K,KAAOqwB,KACDA,KACF50B,KAAKyhC,iBAAkB,EACvBzhC,KAAK0iC,mBAAmBjH,iBACxBz7B,KAAKiiC,UAAUrJ,MAAK,GACpB54B,KAAK8oB,YAAYpG,qBAAqB,gBACtC1iB,KAAKgkC,aACLhkC,KAAK+oB,gBAAgBpX,YAAY,mCAAiC,EAGtE5O,MAAQiB,KACNhE,KAAKyhC,iBAAkB,EACvBzhC,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,KAAK,CACH,IAAIze,EACAo4B,EAAY5jC,KAAK0iC,oBAAoBjmC,MACzC+O,EAAS,CACPG,eAAuC,IAAvB3L,KAAK2L,eAAuB3L,KAAK2L,eAAiB,GAClE8L,MAAOmsB,GAAWnsB,MAClBG,YAAagsB,GAAWhsB,YAAc,EAAI,EAC1CI,WAAY4rB,GAAW5rB,WAAa,EAAI,EACxCD,YAAa6rB,GAAW7rB,YACxB3M,eAAgBw4B,GAAWJ,QAAUz3B,MAAS+3B,cAAgB,GAC9Dl5B,WAAY5K,KAAKyxB,cAAc8I,eAAeqJ,EAAU/4B,UAAW+4B,GAAWh5B,YAC9EK,SAAUjL,KAAKyxB,cAAc8I,eAAeqJ,EAAU94B,QAAS84B,GAAW34B,UAC1EgN,oBAAqBjY,KAAK6iC,aAAe,OAAS,QAClDn4B,QAAS1K,KAAKihC,gBAAkBjhC,KAAKihC,eAAenpB,cAAgB9X,KAAKihC,eAAenpB,eAAepN,QAAS,GAAG1K,KAAKytB,YAAY7rB,WAAW8I,UAC/IlH,QAASxD,KAAK6iC,aAAc7iC,KAAK6iC,aAAar/B,QAAUxD,KAAKihC,gBAAgBnpB,eAAetU,SAE9FxD,KAAKyhC,iBAAkB,EACvBzhC,KAAKikC,aAAejkC,KAAK6hC,gBAAgBt2B,eAAeC,GAAQ8D,UAAU,CACxE/K,KAAOqwB,IACL50B,KAAKyhC,iBAAkB,EACvBzhC,KAAKgkC,aACLhkC,KAAK+hC,SAASnJ,KAAK,QACnB54B,KAAKiiC,UAAUrJ,MAAK,GACpB54B,KAAK0iC,mBAAmBjH,iBACxBz7B,KAAK6hC,gBAAgB33B,cAAc0qB,GACR,IAAvB50B,KAAK2L,gBACP3L,KAAK+oB,gBAAgBpX,YAAY,mCACQ,aAArC3R,KAAKihC,gBAAgBiD,cACzBlkC,KAAK8oB,YAAYnO,eAAe,qBAEhC3a,KAAK+oB,gBAAgBpX,YAAY,qCAEnC3R,KAAK8oB,YAAYpG,qBAAqB,eAAc,EAEtD3f,MAAQiB,IACNhE,KAAKyhC,iBAAkB,EACvBzhC,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,CAGJ,CAEOuX,kBACLxhC,KAAK0hC,UAAW,EAChB1hC,KAAKqhC,cAAe,EACpBrhC,KAAKqiC,kBAAmB,EACxBriC,KAAKsyB,WAAY,EACjBtyB,KAAK2L,eAAiB,GACtB3L,KAAK6hC,gBAAgBv3B,UAAU,eACjC,CAEOi3B,YACavhC,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,oDAGFsgC,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAUkb,IACvEA,IACFxqB,KAAKmkC,aAAenkC,KAAK6hC,gBAAgBh2B,YAAY7L,KAAK2L,gBAAgB2D,UAAU,CAClF/K,KAAOqwB,IACDA,IACF50B,KAAK+oB,gBAAgBpX,YAAY,qCACjC3R,KAAK6hC,gBAAgBz3B,eAAepK,KAAK2L,gBACzC3L,KAAK8oB,YAAYpG,qBAAqB,gBACtC1iB,KAAKgkC,aAAU,EAGnBjhC,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,SACX,EAGP,CAEQwC,iBAAiBza,GACvBhS,KAAKgS,SAAWA,EAChBxN,WAAW,KACTxE,KAAKgS,SAAW,MACf,IACL,CAEQ2wB,8BACN3iC,KAAK0iC,mBAAqB1iC,KAAK4hC,YAAYvY,MAAM,CAC/CzR,YAAa,EAAC,GACdG,YAAa,CAAC,IACd9M,SAAU,CAAC,GAAIse,KAAWC,UAC1BxR,WAAY,EAAC,GACbwrB,QAAS,EAAC,GACV54B,WAAY,CAAC,GAAI2e,KAAWC,UAC5B/R,MAAO,CAAC,GAAI8R,KAAWC,UACvB3e,UAAW,CAAC,GAAI0e,KAAWC,UAC3B1e,QAAS,CAAC,GAAIye,KAAWC,WAE7B,CAEO3B,eACL7nB,KAAKgS,SAAW,IAClB,CAEOgvB,eAAex9B,EAAgB4M,GACpC5M,EAAWxD,KAAK6iC,cAAcr/B,QAAWxD,KAAK6iC,aAAar/B,QAAUA,EACrExD,KAAKgkC,aACL5zB,EAAMg0B,iBACNpkC,KAAK0xB,cAAcsP,eAAex9B,EACpC,CAEOwgC,aACLhkC,KAAK8S,OAAO0oB,UACd,CAEApQ,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WAC1BjqB,KAAKwiC,OAAO6B,UACTrkC,KAAK+jC,kBAAkB/jC,KAAK+jC,iBAAiB1Y,cAC7CrrB,KAAKikC,cAAcjkC,KAAKikC,aAAa5Y,cACrCrrB,KAAKmkC,cAAcnkC,KAAKmkC,aAAa9Y,aAC1C,iDAvWWsW,IAAuBv/B,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,MAAAnpB,MAAAk7B,KAAAl7B,MAAAm7B,MAAA,oCAAvBoE,GAAuBnxB,UAAA,0BAAA8zB,OAAA,CAAArD,eAAA,kBAAAsD,QAAA,CAAAxC,SAAA,WAAAE,UAAA,aAAAuC,SAAA,CAAApiC,OAAAqO,MAAA,GAAAC,KAAA,GAAAC,OAAA,ioFAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBDtBlCzO,MAAA,WACEA,MAAA,EAAAqiC,EAAA,+BAIEriC,MADF,UACEA,CADkB,YAEhBA,MAAA,GAsBEA,MArBE,EAAAsiC,EAAA,YAqBFtiC,CArBuF,EAAAuiC,GAAA,aAqBvFviC,CAf2C,EAAAwiC,GAAA,aAmB3CxiC,MAAA,8BAAsDA,MAAA,gBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAQ0O,EAAA6yB,WAAA5yB,GAAkB,GAA8B3O,gBAK5GA,MAFJ,WAEIA,CAFc,uBAEdA,CAD2B,gBAChBA,MAAA,YAAKA,QAChBA,MAAA,eAA2DA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAEpGziC,YAIIA,MAFJ,YAEIA,CAFmB,gBAEnBA,CADuB,sBACqBA,MAAA,cAC9CA,UAEEA,MADF,gBACEA,CAD6C,sBACFA,MAAA,gBAASA,QACpDA,MAAA,sBAAwCA,MAAA,cAE5CA,YAGIA,MAFJ,YAEIA,CAFyB,uBAEzBA,CAD2B,gBAChBA,MAAA,iBAAUA,QACrBA,MAAA,eAA4CA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAAjFziC,QAEAA,MADA,8BACAA,CAD2E,4BAE7EA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,iBAAUA,QACrBA,MAAA,eAAoCA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAE7EziC,YAGIA,MAFJ,YAEIA,CAFyB,uBAEzBA,CAD2B,gBAChBA,MAAA,eAAQA,QACnBA,MAAA,eAAoEA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAAzGziC,QAEAA,MADA,8BACAA,CADyE,4BAE3EA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,eAAQA,QACnBA,MAAA,eAAuDA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAEhGziC,YAEEA,MADF,YACEA,CADsC,YAC/BA,MAAA,WAAIA,QACXA,MAAA,yBACAA,MAAA,oBAAYA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAIzDziC,gBAGEA,MADF,YACEA,CADmC,aAGjCA,MADA,GAAA0iC,EAAA,gBACA1iC,CAD8H,GAAA2iC,GAAA,iBAEhI3iC,QAEEA,MADF,YACEA,CAD2B,gBACsBA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAAkzB,aAAY,GAAE5hC,MAAA,IAAkFA,QAC1JA,MAAA,GAAA4iC,EAAA,iBAEJ5iC,gDA5F0BA,cAAA,OAAA0O,EAAAkB,UAIhB5P,MAAA,GAAAA,MAAA,YAAA0O,EAAA4xB,oBAEiDtgC,MAAA,GAAAA,MAAA,OAAA0O,EAAAuwB,cAAA,IAAAvwB,EAAAiwB,UAMxB3+B,cAAA,OAAA0O,EAAAiwB,UAerB3+B,cAAA,OAAA0O,EAAAsxB,mBAIkBhgC,QAA0DA,MAA1D,UAAA0O,EAAAsxB,kBAA0DhgC,CAA7B,cAAA0O,EAAAwxB,aAsBgClgC,MAAA,IAAAA,MAAA,gBAAA6iC,GAClD7iC,cAAA,MAAA6iC,GAWS7iC,MAAA,IAAAA,MAAA,gBAAA8iC,GACT9iC,cAAA,MAAA8iC,GAUlB9iC,MAAA,IAAkBA,MAAlB,SAAA0O,EAAA0xB,OAAkBpgC,CAAD,UAAA0O,EAAAqxB,SACiB//B,cAAA,SAAA0O,EAAA0xB,QAQzBpgC,MAAA,GAAAA,MAAA,QAAA0O,EAAAuxB,mBAAAvxB,EAAAyxB,mBACrBngC,cAAA,QAAA0O,EAAAuxB,mBAAAvxB,EAAAyxB,mBAG+DngC,MAAA,GAAAA,MAAA0O,EAAA4wB,WAAA5wB,EAAAwhB,UAAA,kBAC/DlwB,cAAA,OAAA0O,EAAA4xB,mBAAA3X,OAAAja,EAAAwhB,4KCrEFqP,EAAuB,sNCpB5Bv/B,MAAA,UAAiDA,MAAA,GAAwBA,+BAAxBA,cAAA,OAAA+iC,EAAA/0B,MAAAg1B,QAAA,gCACjDhjC,MAAA,UAAiDA,MAAA,GAAuEA,+BAAvEA,cAAA,GAAA+iC,EAAAE,OAAA,iBAAAF,EAAAG,cAAA,sEAI7CljC,MAAA,GACQA,MAAA,qBAAsCA,MAAA,6BAAA2O,IAAA3O,MAAAs+B,GAAA,MAAAyE,GAAA/iC,QAAA,OAAAA,MAAqB+iC,GAAAI,SAAAx0B,IAAgB,GAEnE3O,MADJ,cACIA,CADyB,2BACgCA,MAApC,qBAAA2O,IAAA3O,MAAAs+B,GAAA,MAAAyE,GAAA/iC,QAAA,OAAAA,MAAa+iC,GAAAK,cAAAz0B,IAAqB,EAAE3O,CAAD,oBAAA2O,IAAA3O,MAAAs+B,GAAA,MAAAyE,GAAA/iC,QAAA,OAAAA,MAAa+iC,GAAAM,MAAA10B,IAAa,GACtF3O,UAEIA,MADJ,cACIA,CADkB,qBACkCA,MAAtC,sBAAA2O,IAAA3O,MAAAs+B,GAAA,MAAAyE,GAAA/iC,QAAA,OAAAA,MAAc+iC,GAAAO,eAAA30B,IAAsB,EAAE3O,CAAD,oBAAA2O,IAAA3O,MAAAs+B,GAAA,MAAAyE,GAAA/iC,QAAA,OAAAA,MAAa+iC,GAAAM,MAAA10B,IAAa,GAErF3O,6CAP6EA,cAAA,gBAAA+iC,EAAAQ,kBAEevjC,MAAA,GAAAA,MAAA,iBAAA+iC,EAAAS,cAGLxjC,MAAA,GAAAA,MAAA,iBAAA+iC,EAAAS,yDAMnFxjC,MADR,QACQA,CADmB,4BACEA,MAAA,qBAAA2O,IAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,MAAA,UAAAA,MAAa+iC,GAAAK,cAAAz0B,IAAqB,GAC/D3O,oCADiEA,cAAA,iBAAA+iC,EAAAS,yDAGzDxjC,MADR,QACQA,CADoB,qBACNA,MAAA,sBAAA2O,IAAA3O,MAAAkrB,GAAA,MAAA6X,GAAA/iC,MAAA,UAAAA,MAAc+iC,GAAAO,eAAA30B,IAAsB,GAC1D3O,oCAD4DA,cAAA,iBAAA+iC,EAAAS,0CALhExjC,MAAA,GAIIA,MAHA,EAAAyjC,EAAA,YAGAzjC,CAH2B,EAAA0jC,EAAA,4CAArB1jC,cAAA,OAAA+iC,EAAAG,eAGAljC,cAAA,QAAA+iC,EAAAG,gBCVf,IAAMS,EAAiB,MAAxB,MAAOA,GAQXjmC,YACU+hC,EACAnQ,GACwBthB,GACzByC,IAGP,OANQ7S,KAAA6hC,kBACA7hC,KAAA0xB,iBACwB1xB,KAAAoQ,SACzBpQ,KAAA6S,aAXD7S,KAAAiiC,WAAoB,EACpBjiC,KAAAgmC,YAAqB,EACrBhmC,KAAA4xB,qBAAuB,IAAIrxB,IAE5BP,KAAA2lC,iBAA2B,EAC3B3lC,KAAAslC,eAAsB,EACtBtlC,KAAAqlC,QAAmB,EAOxBrlC,KAAK4lC,aAAe5lC,KAAKoQ,MACjBpQ,KAAKoQ,MAAMg1B,SACjB,IAAK,cACHplC,KAAK2lC,iBAAmB,EACxB,MACF,IAAK,OACH3lC,KAAK2lC,iBAAmB,EAGb,OAAZv1B,GAAM3F,QACJzK,KAAKoQ,MAAMqzB,YAAczjC,KAAKoQ,MAAMyH,KAA4B,GAArB7X,KAAKoQ,MAAMuH,UACvD3X,KAAKslC,eAAgB,GAEvBtlC,KAAK4lC,aAAe5lC,KAAKoQ,MACzBpQ,KAAK6hC,gBAAgBt3B,WAAW1H,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAUslB,KAChFA,KACD50B,KAAKqlC,QAAS,KAItB,CAEOp2B,WACP,CAEOs2B,SAASn1B,GACdpQ,KAAKoQ,MAAMg1B,QAAah1B,EAAM61B,IAAIC,SACpC,CAEOT,MAAMxlC,GACPA,GACFD,KAAK6S,UAAUI,OAEnB,CAEOuyB,cAAc/oC,GAClBuD,KAAKiiC,UAAYxlC,CACpB,CAEOipC,eAAejpC,GACrBuD,KAAKgmC,WAAavpC,CACpB,CAEQunC,aACFhkC,KAAKiiC,WAAajiC,KAAKgmC,WACzBhmC,KAAK0xB,cAAcwL,uBAEnBl9B,KAAK6S,UAAUI,OAClB,CAEAmY,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,mDAnEW8b,IAAiB3jC,MAAAC,KAAAD,MAAAyH,MAAAzH,MAWlBkO,MAAelO,MAAAmO,MAAA,oCAXdw1B,GAAiBv1B,UAAA,oBAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gjBAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KDV5BzO,MADF,UACEA,CAD2F,WAGrFA,MADA,EAAA+jC,EAAA,WACA/jC,CADiD,EAAAgkC,EAAA,YAEjDhkC,MAAA,gBAAiCA,MAAA,0BAAS0O,GAAAkzB,YAAY,GAAE5hC,MAAA,WAC5DA,UACAA,MAAA,iBAWQA,MAVA,EAAAikC,GAAA,qBAUAjkC,CAV0C,EAAAkkC,EAAA,sBAkBtDlkC,gBAvB8BA,MAAA,GAAAA,MAAA,cAAA0O,GAAAV,MAAA3F,MACArI,cAAA,cAAA0O,GAAAV,MAAA3F,MAIHrI,MAAA,GAAAA,MAAA,cAAA0O,GAAAV,MAAA3F,MAUArI,cAAA,cAAA0O,GAAAV,MAAA3F,sgBCNds7B,EAAiB,qZCT1B3jC,MAAA,8BAAqDA,MAAA,yBAAAA,MAAAs+B,GAAA,MAAAC,EAAAv+B,QAAA,OAAAA,MAAeu+B,EAAA9Y,eAAc,GAChFzlB,MAAA,OAAGA,MAAA,GACLA,mCADKA,MAAA,GAAAA,MAAAu+B,EAAA3uB,sDAMK5P,MADF,WACEA,CADmF,UAC1DA,MAAA,iBAAWA,QACpCA,MAAA,wBAAyGA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAAqT,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAC,kBAAiB,GACjIx+B,MAAA,cAAUA,MAAA,SAEdA,yCANFA,MAAA,GACEA,MAAA,EAAAmkC,EAAA,6CAAiDnkC,cAAA,OAAAu+B,EAAAU,cAAA,IAAAV,EAAAI,sDAejD3+B,MAAA,wBAA8IA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAAoS,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAE,qBAAoB,GACzKz+B,MAAA,cAAUA,MAAA,YACZA,sDACAA,MAAA,wBAAkKA,MAAA,mBAAAA,MAAA2rB,GAAA,MAAA4S,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAC,kBAAiB,GAC1Lx+B,MAAA,cAAUA,MAAA,SACZA,sDAXEA,MAFJ,WAEIA,CAFqC,sBAErCA,CAD4B,eACjBA,MAAA,eAASA,QACpBA,MAAA,cAA8DA,MAAA,yBAAA2O,GAAA3O,MAAA0+B,GAAA,MAAAH,EAAAv+B,qBAAAu+B,EAAAI,SAAAhwB,KAAA4vB,EAAAI,SAAAhwB,GAAA3O,MAAA2O,EAAA,GAA9D3O,QACAA,MAAA,aAAwBA,MAAA,iBAAA2O,GAAA3O,MAAA0+B,GAAA,MAAAH,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAK,eAAA,MAAAL,EAAAM,gBAAA,MAAAN,EAAAM,eAAAnpB,cAAA,KAAA6oB,EAAAM,eAAAnpB,cAAAtU,QAAAuN,GAA6D,GAC5F3O,MAAA,UAAsFA,MAAA,GAE1FA,YAIAA,MAHA,EAAAokC,EAAA,yBAGApkC,CAH6K,EAAAqkC,EAAA,0BAM/KrkC,iCAXkEA,MAAA,GAAAA,MAAA,UAAAu+B,EAAAI,UAAuB3+B,MAAA,iBAAAA,MAAA,EAAAg/B,KAEpDh/B,MAAA,GAAAA,MAAA,qBAAAu+B,EAAAM,gBAAA,MAAAN,EAAAM,eAAAnpB,cAAA,KAAA6oB,EAAAM,eAAAnpB,cAAAtU,QAAA,GAAApB,OAAuDA,cAAAu+B,EAAAI,UAGR3+B,cAAA,OAAAu+B,EAAAU,cAGHj/B,cAAA,QAAAu+B,EAAAU,eAAAV,EAAAh1B,6DAMnFvJ,MADF,WACEA,CADgD,iBACtCA,MAAA,mBAAAA,MAAA+sB,GAAA,MAAAwR,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAW,kBAAiB,GAAEl/B,MAAA,mBACxCA,uDAuCAA,MAAA,eAAmGA,MAAA,mBAAAA,MAAAotB,GAAA,MAAAmR,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA+F,aAAY,GAAEtkC,MAAA,YAAMA,oDAChIA,MAAA,eAA+EA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAA2Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAgG,WAAU,GAAEvkC,MAAA,UAAIA,qDAIxGA,MAAA,eAAwGA,MAAA,mBAAAA,MAAAytB,GAAA,MAAA8Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAiG,UAAS,GAA+BxkC,MAAA,GAA+BA,iCAA5DA,MAAA,WAAAu+B,EAAAc,iBAA6Br/B,cAAAu+B,EAAAe,SAAA,iBCxDxJ,IAAMmF,EAAgB,MAAvB,MAAOA,GA0BX/mC,YACU8hC,EACAnQ,EACAhE,EACAoU,EACA9Y,EACAjW,EACAgW,EACA4I,IAPA1xB,KAAA4hC,cACA5hC,KAAAyxB,gBACAzxB,KAAAytB,cACAztB,KAAA6hC,kBACA7hC,KAAA+oB,kBACA/oB,KAAA8S,SACA9S,KAAA8oB,cACA9oB,KAAA0xB,iBAjCF1xB,KAAAkiC,YAAmB,GAInBliC,KAAA4xB,qBAAuB,IAAIrxB,IAEzBP,KAAA+hC,SAAW,IAAIC,MACfhiC,KAAAgmC,WAAa,IAAIhE,MAEpBhiC,KAAAmiC,QAAe/lC,KACf4D,KAAAoiC,mBAA6B,EAE7BpiC,KAAAsiC,aAAuB,EAEvBtiC,KAAA+gC,SAAmB,GACnB/gC,KAAA8mC,mBAA6B,EAC7B9mC,KAAAqhC,cAAwB,EACxBrhC,KAAA2L,eAAyB,GACzB3L,KAAA+mC,WAAqB,EACrB/mC,KAAAgS,SAA0B,KAC1BhS,KAAA0hC,UAAoB,EACpB1hC,KAAAgnC,YAAsB,EACtBhnC,KAAAinC,oBAA8B,EAC9BjnC,KAAAsyB,WAAqB,EACrBtyB,KAAAyhC,iBAAwB,EAW7BzhC,KAAKwiC,OAAS,IAAIC,IACpB,CAEO5N,cACL70B,KAAK80B,8BACP,CAGOA,+BACL,MAAMM,EAAep1B,KAAKknC,aAAazqC,MACvCuD,KAAKknC,aAAa7R,aAAaxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU7S,IAC9EuD,KAAKknC,aAAa3R,QACpBv1B,KAAKsyB,UAAYkD,OAAOC,KAAKL,GAAcM,KAAKC,GAAO31B,KAAKknC,aAAazqC,MAAMk5B,IAAQP,EAAaO,IACpG31B,KAAKgmC,WAAWpN,MAAK,GAAI,EAG/B,CAEO3pB,WACAjP,KAAKihC,eAAex2B,MAAuC,QAA7BzK,KAAKihC,eAAex2B,OACrDzK,KAAK+mC,WAAY,GAEd/mC,KAAKihC,eAAex2B,MAAuC,oBAA7BzK,KAAKihC,eAAex2B,MACrDzK,KAAK+mC,WAAY,EACjB/mC,KAAKqhC,cAAe,EACpBrhC,KAAKinC,oBAAqB,EAC1BjnC,KAAKkiC,YAAcliC,KAAKihC,eAAe/mB,WACvCla,KAAKmnC,6BAELnnC,KAAK4iC,aAEP5iC,KAAK80B,8BACP,CAEQ8N,aACN,GAAI5iC,KAAK+mC,UAAW,CAClB/mC,KAAK0hC,UAAW,EAChB,IAAIoB,EAAY9iC,KAAKihC,gBAAgB/1B,cAAc63B,MAAQ,IAAI/2B,KAC/D,MAAMg3B,EAAIj3B,IAAO+2B,GACjB,IAEIG,EACAC,EACAC,EAJAC,EAAOJ,EAAEK,QACTC,EAAMN,EAAEO,UAIRH,EAAO,IACTD,EAASC,EAAO,EACZD,EAAS,KACXA,EAAS,IAAMA,EAAOx4B,YAExBs4B,EAAK,IAAMG,EAAKz4B,aAEhBw4B,EAASC,EAAO,EAChBH,EAAKG,GAGLF,EADEI,EAAM,GACJ,IAAMA,EAAI34B,WAEV24B,EAGQ,IAAVH,IACFA,EAAS,MAEXA,EAASA,EAAS,IAAMD,EACxBljC,KAAKknC,YAAclnC,KAAK4hC,YAAYvY,MAAM,CACxC5R,MAAO,CAAC,GAAI8R,KAAWC,UACvB4d,UAAW,EAAC,GACZpvB,WAAY,EAAC,GACbnN,UAAW,CAAC7K,KAAKihC,eAAiB6B,EAAY,IAC9Cl4B,WAAY,CAAC5K,KAAKihC,eAVTgC,EAAK,IAAMC,EAUsB,IAC1CnrB,YAAa,CAAC,KAElB,MACE/X,KAAK+mC,WAAY,EACjB/mC,KAAK0hC,UAAW,EAChB1hC,KAAK2L,eAAiB3L,KAAKihC,eAAethC,GAC1CK,KAAKqhC,cAAe,EAC2B,IAA3CrhC,KAAKihC,eAAenpB,cAAchE,QACpC9T,KAAK+gC,SAAW/gC,KAAKihC,eAAenpB,cAAchE,MAAQ,IAAM9T,KAAKihC,eAAenpB,cAAc/D,OAEpG/T,KAAKknC,YAAclnC,KAAK4hC,YAAYvY,MAAM,CACxC5R,MAAO,CAACzX,KAAKihC,eAAiBjhC,KAAKihC,eAAexpB,MAAQ,GAAI8R,KAAWC,UACzE4d,UAAW,CAAqD,IAApDpnC,KAAKihC,eAAenpB,cAAc1M,gBAC9C4M,WAAY,CAAiD,KAAhDhY,KAAKihC,eAAenpB,cAAcE,YAC/CnN,UAAW,CAAC7K,KAAKihC,eAAevpB,MAAQ1X,KAAKihC,eAAevpB,MAAQ,IACpE9M,WAAY,CAAC5K,KAAKihC,eAAevpB,MAAQ1X,KAAKqnC,gBAAgBrnC,KAAKihC,eAAevpB,OAAS,IAC3FK,YAAa,CAAC/X,KAAKihC,eAAenpB,cAAcC,eAGpD/X,KAAKsyB,WAAY,CACnB,CAEQ+U,gBAAgB3vB,GACtB,MAAM4vB,EAAgBv7B,IAAO2L,GAAOzL,OAAO,SAC3C,MAAyB,SAAjBq7B,EAA4B,IAAOA,CAC7C,CAEO1G,kBACL5gC,KAAKoiC,mBAAoB,CAC3B,CAEOvB,qBACL7gC,KAAKsiC,aAAc,EACnBtiC,KAAK6iC,aAAe,GACpB7iC,KAAK+gC,SAAW,GAChB/gC,KAAKoiC,mBAAoB,CAC3B,CAEOd,kBACLthC,KAAKoiC,mBAAoB,CAC3B,CAEOuB,WAAW/uB,GAChB5U,KAAK6iC,aAAejuB,EACpB5U,KAAK+gC,SAAWnsB,GAAMd,MAAQ,GAAKc,GAAMb,KAC3C,CAGOwzB,UAAUn3B,GAEbpQ,KAAKgnC,cADH52B,EAAMuT,OAAOlnB,OAASuD,KAAKknC,aAAazqC,MAAMmO,WAKpD,CAGO48B,UAAUp3B,GACI,aAAfA,GAAOq3B,MACTznC,KAAKknC,YAAYld,WAAW,CAACpf,WAAY,KAGzC5K,KAAKgnC,aADJ52B,EAAMuT,OAAOlnB,QAAUuD,KAAKknC,aAAazqC,MAAMoO,UAKpD,CAGO+7B,UACL,IAAI5mC,KAAKknC,YAAYpb,QAGnB,GAAK9rB,KAAKihC,eAAex2B,MAAuC,oBAA7BzK,KAAKihC,eAAex2B,KAA6B,CAClF,IAAIm5B,EAAY5jC,KAAKknC,aAAazqC,MAC9BonC,EAAU,CACZ5rB,oBAAqB,OACrB7M,eAAgBw4B,GAAWwD,UAAYr7B,MAAS+3B,cAAgB,GAChE9rB,WAAY4rB,GAAW5rB,WAAa,EAAI,EACxCD,YAAa6rB,GAAW7rB,YACxBvU,QAASxD,KAAKkiC,YAAY1+B,QAC1BoH,WAAY5K,KAAKyxB,cAAc8I,eAAeqJ,EAAU/4B,UAAW+4B,GAAWh5B,YAC9E6M,MAAOmsB,GAAWnsB,MAClB/M,QAAS1K,KAAKytB,YAAY7rB,WAAW8I,SAEvC1K,KAAKyhC,iBAAkB,EACvBzhC,KAAK0nC,kBAAoB1nC,KAAK6hC,gBAAgBp2B,mBAAmBo4B,GAASv0B,UAAU,CAClF/K,KAAOqwB,IACDA,IACF50B,KAAKyhC,iBAAkB,EACvBzhC,KAAKknC,YAAYzL,iBACjBz7B,KAAKgmC,WAAWpN,MAAK,GACrB54B,KAAK8oB,YAAYpG,qBAAqB,gBACtC1iB,KAAKgkC,aACLhkC,KAAK+oB,gBAAgBpX,YAAY,4BAA0B,EAG/D5O,MAAQiB,IACNhE,KAAKyhC,iBAAkB,EACvBzhC,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,KAAK,CACH,IACIze,EADAo4B,EAAY5jC,KAAKknC,aAAazqC,MAElC+O,EAAS,CACPG,eAAuC,IAAvB3L,KAAK2L,eAAuB3L,KAAK2L,eAAiB,GAClE8L,MAAOmsB,GAAWnsB,MAClBrM,eAAgBw4B,GAAWwD,UAAYr7B,MAAS+3B,cAAgB,GAChE9rB,WAAY4rB,GAAW5rB,WAAa,EAAI,EACxCD,YAAa6rB,GAAW7rB,YACxBnN,WAAY5K,KAAKyxB,cAAc8I,eAAeqJ,EAAU/4B,UAAW+4B,GAAWh5B,WAAWg5B,GAAWh5B,WAAW,SAC/GqN,oBAAqBjY,KAAK6iC,cAAcr/B,QAAU,OAAS,QAC3DkH,QAAS,GAAG1K,KAAKytB,YAAY7rB,WAAW8I,UACxClH,QAASxD,KAAK6iC,aAAc7iC,KAAK6iC,aAAar/B,QAAUxD,KAAKihC,gBAAgBnpB,eAAetU,SAE9FxD,KAAKyhC,iBAAkB,EACvBzhC,KAAK2nC,cAAgB3nC,KAAK6hC,gBAAgBt2B,eAAeC,GAAQ8D,UAAU,CACzE/K,KAAOqwB,IACL50B,KAAKyhC,iBAAkB,EACvBzhC,KAAKgkC,aACLhkC,KAAK+hC,SAASnJ,KAAK,QACnB54B,KAAK6hC,gBAAgB33B,cAAc0qB,GACR,IAAvB50B,KAAK2L,gBACP3L,KAAK+oB,gBAAgBpX,YAAY,4BACQ,aAArC3R,KAAKihC,gBAAgBiD,cACzBlkC,KAAK8oB,YAAYnO,eAAe,qBAEhC3a,KAAK+oB,gBAAgBpX,YAAY,8BAEnC3R,KAAK8oB,YAAYpG,qBAAqB,eAAc,EAEtD3f,MAAQiB,IACNhE,KAAKyhC,iBAAkB,EACvBzhC,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,CAEJ,CAEO0c,WACL3mC,KAAK0hC,UAAW,EAChB1hC,KAAKqhC,cAAe,EACpBrhC,KAAK+mC,WAAY,EACjB/mC,KAAKsyB,WAAY,EACjBtyB,KAAK2L,eAAiB,GACtB3L,KAAK6hC,gBAAgBv3B,UAAU,eACjC,CAEQmiB,iBAAiBza,GACvBhS,KAAKgS,SAAWA,EAChBxN,WAAW,KACTxE,KAAKgS,SAAW,MACf,IACL,CAEO00B,aACa1mC,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,oDAGFsgC,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAUkb,IACvEA,IACFxqB,KAAKmkC,aAAenkC,KAAK6hC,gBAAgBh2B,YAAY7L,KAAK2L,gBAAgB2D,UAAU,CAClF/K,KAAOqwB,IACDA,IACF50B,KAAK+oB,gBAAgBpX,YAAY,8BACjC3R,KAAK6hC,gBAAgBz3B,eAAepK,KAAK2L,gBACzC3L,KAAK8oB,YAAYpG,qBAAqB,gBACtC1iB,KAAKgkC,aAAU,EAGnBjhC,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,SACX,EAGP,CAEQkd,4BACNnnC,KAAKknC,YAAclnC,KAAK4hC,YAAYvY,MAAM,CACxC5R,MAAO,CAAC,GAAI8R,KAAWC,UACvB4d,UAAW,EAAC,GACZpvB,WAAY,EAAC,GACbnN,UAAW,CAAC,IACZD,WAAY,CAAC,IACbmN,YAAa,CAAC,KAElB,CAEOipB,eAAex9B,EAAe4M,GACnC5M,EAAWxD,KAAK6iC,cAAcr/B,QAAWxD,KAAK6iC,aAAar/B,QAAUA,EACrExD,KAAKgkC,aACL5zB,EAAMg0B,iBACNpkC,KAAK0xB,cAAcsP,eAAex9B,EACpC,CAEOwgC,aACLhkC,KAAK8S,OAAO0oB,UACd,CAEO3T,eACL7nB,KAAKgS,SAAW,IAClB,CAEAoZ,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WAC1BjqB,KAAKwiC,OAAO6B,UACTrkC,KAAK0nC,mBAAmB1nC,KAAK0nC,kBAAkBrc,cAC/CrrB,KAAK2nC,eAAe3nC,KAAK2nC,cAActc,cACvCrrB,KAAKmkC,cAAcnkC,KAAKmkC,aAAa9Y,aAC1C,iDArUWwb,IAAgBzkC,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,KAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,MAAAlpB,MAAAmpB,KAAAnpB,MAAAk7B,OAAA,oCAAhBuJ,GAAgBr2B,UAAA,mBAAA8zB,OAAA,CAAArD,eAAA,kBAAAsD,QAAA,CAAAxC,SAAA,WAAAiE,WAAA,cAAAxB,SAAA,CAAApiC,OAAAqO,MAAA,GAAAC,KAAA,GAAAC,OAAA,02EAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBDpB3BzO,MADF,WACEA,CAD8B,WAE5BA,MAAA,EAAAwlC,EAAA,+BAGAxlC,MAAA,KACEA,MAAA,WASIA,MARA,EAAAylC,EAAA,qBAQAzlC,CARmD,EAAA0lC,EAAA,cAuBvD1lC,QACAA,MAAA,EAAA2lC,GAAA,aAGA3lC,MAAA,8BAAsDA,MAAA,gBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAQ0O,EAAA6yB,WAAA5yB,GAAkB,GAA8B3O,gBAK1GA,MAHN,QAGMA,CAHD,SAGCA,CAFC,sBAEDA,CAD6B,gBAClBA,MAAA,YAAKA,QAChBA,MAAA,eAA2DA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAGtGziC,cAGIA,MAFJ,YAEIA,CAF6B,gBAE7BA,CADoB,sBACsBA,MAAA,gBAC5CA,UAEEA,MADF,gBACEA,CADoB,sBACuBA,MAAA,gBAE/CA,YAGIA,MAFJ,YAEIA,CAFwB,uBAExBA,CAD2B,gBAChBA,MAAA,eAAQA,QACnBA,MAAA,eAAyIA,MAA/F,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,EAA0DziC,CAAzD,iBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAsC0O,EAAAy2B,UAAAx2B,GAAiB,EAAE3O,CAAD,sBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAe0O,EAAAy2B,UAAAx2B,GAAiB,GAAxK3O,QAEAA,MADA,8BACAA,CADyE,4BAE3EA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,eAAQA,QACnBA,MAAA,eAA4HA,MAAxF,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,EAAmDziC,CAAlD,iBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAA+B0O,EAAA02B,UAAAz2B,GAAiB,EAAE3O,CAAD,kBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAW0O,EAAA02B,UAAAz2B,GAAiB,GAE3J3O,YAEEA,MADF,YACEA,CADsC,YAC/BA,MAAA,mBAAYA,QACnBA,MAAA,yBACAA,MAAA,oBAAYA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAErDziC,YAEEA,MADF,YACEA,CADmC,aAGjCA,MADA,GAAA4lC,GAAA,gBACA5lC,CAD0H,GAAA6lC,EAAA,iBAE5H7lC,QAEEA,MADF,YACEA,CAD2B,gBACuBA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAAkzB,aAAY,GAAE5hC,MAAA,IAAkFA,QAC3JA,MAAA,GAAA8lC,GAAA,iBAGN9lC,sCAhFMA,MAAA,YAAA0O,EAAAo2B,aAEsB9kC,MAAA,GAAAA,MAAA,OAAA0O,EAAAkB,UAKH5P,MAAA,GAAAA,MAAA,OAAA0O,EAAAuwB,cAAA,IAAAvwB,EAAAiwB,UAQU3+B,cAAA,OAAA0O,EAAAiwB,UAgBvB3+B,cAAA,OAAA0O,EAAAsxB,mBAGkBhgC,QAA0DA,MAA1D,UAAA0O,EAAAsxB,kBAA0DhgC,CAA7B,cAAA0O,EAAAwxB,aAqBnClgC,MAAA,IAAAA,MAAA,gBAAA+lC,GACiB/lC,cAAA,MAAA+lC,GAUlB/lC,MAAA,IAAkBA,MAAlB,SAAA0O,EAAA0xB,OAAkBpgC,CAAD,UAAA0O,EAAAqxB,SACiB//B,cAAA,SAAA0O,EAAA0xB,QAKpBpgC,MAAA,GAAAA,MAAA,QAAA0O,EAAAi2B,YAAAj2B,EAAAm2B,oBACtB7kC,cAAA,QAAA0O,EAAAi2B,YAAAj2B,EAAAm2B,oBAGgE7kC,MAAA,GAAAA,MAAA0O,EAAA4wB,WAAA5wB,EAAAwhB,UAAA,kBAChElwB,cAAA,OAAA0O,EAAAo2B,YAAAnc,OAAAja,EAAAk2B,YAAAl2B,EAAAwhB,yKCxDFuU,EAAgB,0PCNzBzkC,MADF,UACEA,CADqD,WAC9CA,MAAA,kDACTA,kCAIQA,MAHN,UAGMA,CAH+C,WAG/CA,CAF+B,uBAE/BA,CAD6B,UACvBA,MAAA,+BAGZA,qBAJqBA,MAAA,GAAAA,MAAA,qCAKrBA,MAAA,GACEA,MAAA,OAAGA,MAAA,sDAAgDA,wCAM/CA,MAAA,WAAuCA,MAAA,iBAAUA,mCACjDA,MAAA,WAAmCA,MAAA,GAA6BA,mCAA7BA,cAAA,GAAAgmC,EAAAt0B,MAAA,UAAAs0B,EAAA,KAAAA,EAAAr0B,MAAA,8BAGnC3R,MAAA,WAAuCA,MAAA,WAAIA,mCAC3CA,MAAA,WACEA,MAAA,sCACFA,mCADEA,cAAA,UAAAimC,KAAAr0B,IAAA5R,MAAA,UAAAimC,EAAA,KAAAA,EAAAr0B,IAAA,+BAAAq0B,KAAAr0B,IAAA5R,MAAA,UAAAimC,EAAA,KAAAA,EAAAr0B,KAAA,iCAIF5R,MAAA,WAAuCA,MAAA,eAAQA,oCAC/CA,MAAA,WAAoCA,MAAA,GAAmCA,mCAAnCA,cAAA,UAAAkmC,GAAA,MAAAA,EAAAjzB,gBAAA,KAAAizB,EAAAjzB,gBAAAlB,SAAA,8BAGpC/R,MAAA,WAAuCA,MAAA,YAAKA,oCAC5CA,MAAA,WAAoCA,MAAA,GAA+BA,mCAA/BA,cAAA,UAAAmmC,GAAA,MAAAA,EAAAlzB,gBAAA,KAAAkzB,EAAAlzB,gBAAAjB,KAAA,8BAGpChS,MAAA,WAAuCA,MAAA,aAAMA,oCAC7CA,MAAA,WAAoCA,MAAA,GAAmCA,mCAAnCA,cAAA,UAAAomC,GAAA,MAAAA,EAAAnzB,gBAAA,KAAAmzB,EAAAnzB,gBAAAsB,SAAA,6BAGpCvU,MAAA,WAAuCA,MAAA,WAAIA,mCAC3CA,MAAA,WAAoCA,MAAA,GAA8BA,mCAA9BA,cAAA,UAAAqmC,GAAA,MAAAA,EAAApzB,gBAAA,KAAAozB,EAAApzB,gBAAAhB,IAAA,6BAGpCjS,MAAA,WAAuCA,MAAA,mBAAYA,mCACnDA,MAAA,WAAoCA,MAAA,GAAoBA,mCAApBA,cAAA,UAAAsmC,EAAA,KAAAA,EAAAC,WAAA,4BAEtCvmC,MAAA,oDACAA,MAAA,WAA+HA,MAAA,yBAAAwmC,GAAAxmC,MAAAotB,GAAAe,UAAAsY,EAAAzmC,MAAA,UAAAA,MAASymC,EAAAC,UAAAF,IAAc,GACtJxmC,iDAD6DA,MAAA,4BAAAwmC,EAAA,KAAAA,EAAAplC,WAAA,MAAAqlC,GAAAE,YAAA,KAAAF,GAAAE,YAAAvlC,sCAjCjEpB,MAAA,MACEA,MAAA,cACEA,MAAA,MAEEA,MADA,EAAA4mC,EAAA,YACA5mC,CADsC,EAAA6mC,EAAA,qBAGxC7mC,MAAA,MAEEA,MADA,EAAA8mC,GAAA,YACA9mC,CADsC,EAAA+mC,EAAA,qBAKxC/mC,MAAA,MAEEA,MADA,EAAAgnC,EAAA,YACAhnC,CADsC,GAAAinC,GAAA,qBAGxCjnC,MAAA,OAEEA,MADA,GAAAknC,GAAA,YACAlnC,CADsC,GAAAmnC,GAAA,qBAGxCnnC,MAAA,OAEEA,MADA,GAAAonC,GAAA,YACApnC,CADsC,GAAAqnC,GAAA,qBAGxCrnC,MAAA,OAEEA,MADA,GAAAsnC,EAAA,YACAtnC,CADsC,GAAAunC,EAAA,qBAGxCvnC,MAAA,OAEEA,MADA,GAAAwnC,EAAA,YACAxnC,CADsC,GAAAynC,EAAA,qBAIxCznC,MADA,GAAA0nC,EAAA,YACA1nC,CADqE,GAAA2nC,EAAA,aAGvE3nC,sCAlCiBA,cAAA,aAAAymC,EAAAmB,YA+BK5nC,MAAA,IAAmCA,MAAnC,kBAAAymC,EAAAoB,iBAAmC7nC,CAAA,4BACtBA,cAAA,mBAAAymC,EAAAoB,mBCjDlC,IAAMC,GAAmB,MAA1B,MAAOA,EAgBXpqC,YAAoB2tB,EACV3E,IADU9oB,KAAAytB,cACVztB,KAAA8oB,eAfF9oB,KAAAmqC,gBAAuB,GACtBnqC,KAAAsiC,aAAuB,EACtBtiC,KAAA4U,KAAO,IAAIotB,MAEdhiC,KAAAiqC,iBAA6B,CAAC,QAAS,MAAO,kBAAmB,OAAQ,QAAS,MAAO,cACzFjqC,KAAAgqC,WAAa,IAAIhY,KACjBhyB,KAAAoqC,UAAoB,EACpBpqC,KAAAqqC,MAAgB,GAChBrqC,KAAAsqC,MAAgB,GAChBtqC,KAAAksB,WAAqB,EACrBlsB,KAAAuqC,cAAwB,EACxBvqC,KAAAwyB,aAAuB,CAIQ,CAE/BvjB,WAAmB,CAEnB4lB,YAAY2V,GACjBxqC,KAAKgqC,WAAWjV,UAAY/0B,KAAKyqC,qBAC7BzqC,KAAKsiC,cACPtiC,KAAKqqC,MAAQ,GACbrqC,KAAKsqC,MAAQ,GACbtqC,KAAKgqC,WAAa,IAAIhY,KACtBhyB,KAAK+oC,YAAc,GACnB/oC,KAAKuqC,aAAevqC,KAAKoqC,UAAW,EACpCpqC,KAAKwyB,aAAe,EAExB,CAEO2C,qBACLn1B,KAAKgqC,WAAWjV,UAAY/0B,KAAKyqC,oBACnC,CAEO3B,UAAU/L,GACf/8B,KAAK+oC,YAAchM,EACnB/8B,KAAK4U,KAAKgkB,KAAK54B,KAAK+oC,YACtB,CAEO2B,aACL,GAAI1qC,KAAKqqC,OAASrqC,KAAKsqC,MAAO,CAC5B,IAAIK,EAAY,CACdt/B,YAAa,SACb7B,SAAU,CACR1F,WAAY,CACV2G,KAAM,SACNhO,MAAO,CAACuD,KAAKytB,YAAY3pB,gBAEvB9D,KAAKqqC,OAAU,CACjBv2B,MAAO,CACLrJ,KAAM,SACNhO,MAAO,CAAC,GAAGuD,KAAKqqC,eAGhBrqC,KAAKsqC,OAAU,CACjBv2B,MAAO,CACLtJ,KAAM,SACNhO,MAAO,CAAC,GAAGuD,KAAKsqC,aAItBv/B,WAAY,qDACZC,YAAa,GAGfhL,KAAKksB,WAAY,EACjBlsB,KAAK4qC,eAAiB5qC,KAAK8oB,YAAYld,WAAW++B,GAAWr7B,UAAU,CACrE/K,KAAOimB,KACLxqB,KAAKuqC,cAAe/f,IAAKhb,QACzBxP,KAAKwyB,aAAehI,IAAK3pB,OACzBb,KAAKmqC,gBAAkB3f,GACvBxqB,KAAKgqC,WAAa,IAAIhY,KAAmBhyB,KAAKuqC,aAAevqC,KAAKmqC,gBAAiB,IACnFnqC,KAAKgqC,WAAWjV,UAAY/0B,KAAKyqC,qBACjCzqC,KAAKksB,WAAY,GAChBnpB,MAAOiB,KACRhE,KAAKksB,WAAY,IAIvB,CACAlsB,KAAKoqC,UAAW,CAClB,CAEOhf,cACFprB,KAAK4qC,gBACN5qC,KAAK4qC,eAAevf,aAExB,mDA1FW6e,GAAmB9nC,MAAAC,KAAAD,MAAAyH,KAAA,oCAAnBqgC,EAAmB15B,UAAA,6BAAAmtB,UAAA,SAAA9sB,GAAAC,OAAA,EAAAD,UAKnB+sB,KAAY,qsCDdnBx7B,MAHN,UAGMA,CAHiC,UAGjCA,CAFwB,qBAExBA,CAD2B,eAChBA,MAAA,gBAAUA,QACrBA,MAAA,aAAmCA,MAAA,yBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAA0O,GAAAu5B,MAAAt5B,KAAAD,GAAAu5B,MAAAt5B,GAAA3O,MAAA2O,EAAA,GAAoB3O,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAC9FziC,UAEEA,MADF,qBACEA,CAD2B,eAChBA,MAAA,eAASA,QACpBA,MAAA,aAAmCA,MAAA,yBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAA0O,GAAAw5B,MAAAv5B,KAAAD,GAAAw5B,MAAAv5B,GAAA3O,MAAA2O,EAAA,GAAoB3O,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GAC9FziC,UAEEA,MADF,WACEA,CADoB,eAC6CA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,GAAA45B,aAAY,GAAEtoC,MAAA,aAE5FA,YAWEA,MAVF,GAAAyoC,GAAA,YAUEzoC,CAVqD,GAAA0oC,EAAA,YAUrD1oC,CAPqD,GAAA2oC,EAAA,sBAUrD3oC,MAAA,YACAA,MAAA,GAAA4oC,GAAA,wBAsCA5oC,QACAA,MAAA,yBAGJA,eAlEyCA,MAAA,GAAAA,MAAA,UAAA0O,GAAAu5B,OAIAjoC,MAAA,GAAAA,MAAA,UAAA0O,GAAAw5B,OAMpBloC,MAAA,GAAAA,MAAA,OAAA0O,GAAAs5B,WAAAt5B,GAAAu5B,QAAAv5B,GAAAw5B,OAGEloC,cAAA,OAAA0O,GAAAob,YAAApb,GAAAy5B,cAOJnoC,cAAA,OAAA0O,GAAAs5B,WAAAt5B,GAAAu5B,OAAAv5B,GAAAw5B,SAAAx5B,GAAAob,YAAApb,GAAAy5B,cAIenoC,MAAA,GAAAA,MAAA,OAAA0O,GAAAy5B,cAuCsBnoC,QAAwBA,MAAxB,SAAA0O,GAAA0hB,aAAwBpwB,CAAD,kBAAAA,MAAA,EAAAg/B,oJCvDlE8I,CAAmB,gTCKR9nC,MAAA,eAAoCA,MAAA,yEAAmEA,sDAwBvHA,MAAA,eAA0FA,MAAA,mBAAAA,MAAAs+B,IAAA,MAAAC,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAsK,SAAQ,GAAE7oC,MAAA,cAAQA,kCAAtDA,MAAA,WAAAu+B,GAAAuK,gBC1BhE,IAAMzyB,GAAe,MAAtB,MAAOA,GAOX3Y,YACU8oB,GACAjkB,EACAmO,EACAgW,EACAC,EACDoiB,GALCnrC,KAAA4oB,MACA5oB,KAAA2E,OACA3E,KAAA8S,SACA9S,KAAA8oB,cACA9oB,KAAA+oB,kBACD/oB,KAAAmrC,MAPFnrC,KAAAkrC,eAA0B,EAS/BlrC,KAAKorC,SAAWprC,KAAK4oB,GAAGS,MAAM,CAC5BpS,QAAY,CAAC,GAAIsS,KAAWC,UAC5B3S,cAAkB,CAAC,GAAI0S,KAAWC,UAClC1M,eAAmB,CAAC,GAAIyM,KAAWC,WAEvC,CAEAva,WACEjP,KAAKqrC,QAAU,IAAIr/B,KACnBhM,KAAKsrC,QAAUv/B,IAAO/L,KAAKqrC,SAASE,IAAI,EAAG,QAAQt/B,OAAO,aAC5D,CAEOu/B,aAAazI,IAClB,IAAI0I,EAAa1/B,IAAOg3B,IAAM92B,OAAO,cACjCF,IAAO0/B,GAAYC,QAAQ1rC,KAAKsrC,UAClCtrC,KAAKorC,SAASpY,SAAS/b,QAAW+jB,UAAU,CAAElP,SAAS,GAE3D,CACOmf,SACL,IAAGjrC,KAAKorC,SAAStf,QAEZ,CACH9rB,KAAKkrC,eAAgB,EACrB,IAAIr2B,GAAW7U,KAAKorC,SAAS3uC,MAC9BuD,KAAK2rC,qBAAuB3rC,KAAK8oB,YAAYjM,iBAAiBhI,GAASiI,gBAAgBja,QAAKwM,QAASC,UAAU,CAC5G/K,KAAOimB,IACL,IAAI9V,EAAO1U,KAAK2E,KAAK6Z,aAGjBtb,EAAUlD,KAAKmrC,IAAI12B,uBAAuBC,EAFtB8V,EAAIohB,cACjB5rC,KAAK8oB,YAAYhL,aAC8CjJ,GAAS,OACnF7U,KAAK6rC,oBAAsB7rC,KAAK8oB,YAAYnL,gBAAgBza,GAASL,QAAKwM,QAASC,UAAU,CAC3F/K,KAAOimB,IACLxqB,KAAKkrC,eAAgB,EACF,GAAf1gB,EAAIshB,QAEb9rC,KAAK+oB,gBAAgB7Y,UADVwE,EAAK8B,cAActC,MACC,wDAA0DsW,EAAIhb,QAE9D,gMAGpBgb,EAAI9U,mBACf5T,OAAOsQ,KAAKoY,EAAI9U,mBAIX1V,KAAK8S,OAAO0oB,UAAQ,EACnBz4B,MAAOiB,IACRhE,KAAKkrC,eAAgB,EACrBlrC,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,GAEnD,EACAzM,MAAOiB,IACRhE,KAAKkrC,eAAgB,EACrBlrC,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,GAGtD,CACF,CAEO4b,cACDprB,KAAK2rC,sBAAsB3rC,KAAK2rC,qBAAqBtgB,cACrDrrB,KAAK6rC,qBAAqB7rC,KAAK6rC,oBAAoBxgB,aACzD,iDA7EW5S,IAAerW,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAA,oCAAf7S,GAAejI,UAAA,kBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,ykCAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBDbpBzO,MAFR,UAEQA,CAFqF,UAErFA,CAD8D,UACzCA,MAAA,qCAA+BA,QAC2BA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WAC3FA,YACAA,MAAA,iBAEUA,MADZ,UACYA,CADY,OACTA,MAAA,8NACmGA,QAK9FA,MAHZ,YAGYA,CAHoC,WAGpCA,CAFgB,sBAEhBA,CADyB,gBACdA,MAAA,uBAAgBA,QAC3BA,MAAA,cAAgLA,MAArF,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,EAAgDziC,CAA/C,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAA06B,aAAA16B,EAAAs6B,SAAA3uC,MAAAwa,SAAoC,EAAE7U,CAAD,wBAAAA,aAAAulB,GAAAvlB,MAAe0O,EAAA06B,aAAA16B,EAAAs6B,SAAA3uC,MAAAwa,SAAoC,GAAlO7U,QAEAA,MADA,8BACAA,CADwE,4BAExEA,MAAA,GAAA2pC,EAAA,oBACJ3pC,QAEEA,MADF,sBACEA,CAD2B,gBAChBA,MAAA,gCAAyBA,QAE9BA,MADJ,mBACIA,CAD+D,oBACzBA,MAAA,WAAGA,QACzCA,MAAA,oBAAwCA,MAAA,aAAMA,QAC9CA,MAAA,oBAAwCA,MAAA,YAAKA,QAC7CA,MAAA,oBAAsCA,MAAA,WAAIA,QAC1CA,MAAA,oBAA4CA,MAAA,cAGxDA,cAGMA,MAFN,YAEMA,CAFY,uBAEZA,CAD8B,gBACnBA,MAAA,qCAA8BA,QACvCA,MAAA,eAKpBA,cAEIA,MADJ,YACIA,CADgC,gBACWA,MAAA,YAAKA,QAChDA,MAAA,GAAA4pC,GAAA,iBAER5pC,oCAjCkBA,MAAA,IAAAA,MAAA,YAAA0O,EAAAs6B,UAIgDhpC,MAAA,GAAyBA,MAAzB,gBAAA6pC,EAAyB7pC,CAAD,MAAA0O,EAAAu6B,SACjCjpC,cAAA,MAAA6pC,GAErB7pC,MAAA,GAAAA,MAAA,OAAA0O,EAAAs6B,SAAAtf,SAwBnB1pB,MAAA,IAAAA,MAAA,OAAA0O,EAAAs6B,SAAArgB,yLC1BJtS,EAAe,0QCJlBrW,MAAA,WAAsDA,MAAA,yBAAmBA,+BAEvEA,MAAA,UAAiEA,MAAA,UAAIA,+BACrEA,MAAA,UAAkEA,MAAA,WAAKA,+BACvEA,MAAA,UAAiEA,MAAA,UAAIA,gCACrEA,MAAA,UAAiEA,MAAA,UAAIA,kCAJvEA,MAAA,WAIEA,MAHA,EAAA8pC,EAAA,cAGA9pC,CAHiE,EAAA+pC,EAAA,cAGjE/pC,CAFkE,EAAAgqC,EAAA,cAElEhqC,CADiE,EAAAiqC,GAAA,eAEnEjqC,kCAJSA,cAAA,6BAAAkqC,EAAA,KAAAA,EAAAC,+BACAnqC,cAAA,8BAAAkqC,EAAA,KAAAA,EAAAC,+BACAnqC,cAAA,6BAAAkqC,EAAA,KAAAA,EAAAC,+BACAnqC,cAAA,6BAAAkqC,EAAA,KAAAA,EAAAC,sDAKTnqC,MAAA,WAAuDA,MAAA,cAAOA,gCAE5DA,MAAA,UAA2DA,MAAA,QAAEA,gCAC7DA,MAAA,UAA2DA,MAAA,SAAGA,mCAFhEA,MAAA,WAEEA,MADA,EAAAoqC,GAAA,cACApqC,CAD2D,EAAAqqC,GAAA,eAE7DrqC,kCAFSA,cAAA,iBAAAgmC,EAAA,KAAAA,EAAAsE,qCACAtqC,cAAA,iBAAAgmC,EAAA,KAAAA,EAAAsE,6DAKTtqC,MAAA,WAAuDA,MAAA,iBAAUA,mCACjEA,MAAA,WAAoCA,MAAA,mBAAmEA,kCAAnEA,cAAA,IAAAA,MAAA,UAAAimC,EAAA,KAAAA,EAAAsE,oCAAA,0CAIpCvqC,MAAA,WAAuDA,MAAA,gBAASA,kCAChEA,MAAA,WAAmCA,MAAA,GAAkDA,kCAAlDA,cAAA,MAAAkmC,EAAA,KAAAA,EAAAsE,oCAAAhV,8BAInCx1B,MAAA,WAAuDA,MAAA,YAAKA,kCAC5DA,MAAA,WAAmCA,MAAA,GAA0GA,kCAA1GA,cAAA,UAAAmmC,EAAA,KAAAA,EAAAqE,oCAAA94B,OAAA,WAAAy0B,EAAA,KAAAA,EAAAqE,oCAAA74B,OAAA,2BAGrC3R,MAAA,gCACAA,MAAA,WCjCD,IAAMyqC,GAA0B,MAAjC,MAAOA,EAOX/sC,YACkCgtC,EACzBj6B,GADyB7S,KAAA8sC,aACzB9sC,KAAA6S,YAPF7S,KAAA+sC,wBAAoC,CAAC,+BAAgC,qCAAsC,sCAAuC,QAAS,SAShK/sC,KAAKgtC,YAAcF,CACrB,CAEA79B,WACEjP,KAAKitC,kBAAoB,IAAIjb,KAAmBhyB,KAAKgtC,aACrDhtC,KAAKitC,kBAAkBC,oBAAsB,CAACC,EAAWppB,KACvD,OAAQA,GACN,IAAK,QAAS,OAAOopB,EAAKP,oCAAoChV,MAC9D,IAAK,QAAS,OAAOuV,EAAKP,oCAAoC94B,MAC9D,QAAS,OAAOq5B,EAAKppB,GACvB,EAEF/jB,KAAKitC,kBAAkBlY,UAAY/0B,KAAKotC,iBACxCptC,KAAKitC,kBAAkBhY,KAAOj1B,KAAKqtC,WACrC,iDAzBWR,GAA0BzqC,MAQ3BkO,MAAelO,MAAAC,MAAA,oCARdwqC,EAA0Br8B,UAAA,6BAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,myCDTnCzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,uCAAiCA,QACsBA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAGIA,MAFJ,UAEIA,CAF2C,UAE3CA,CAD2B,gBAEzBA,MAAA,MAEEA,MADA,GAAAkrC,EAAA,WACAlrC,CADsD,GAAAmrC,EAAA,qBASxDnrC,MAAA,OAEEA,MADA,GAAAorC,EAAA,WACAprC,CADsD,GAAAqrC,GAAA,qBAOxDrrC,MAAA,OAEEA,MADA,GAAAsrC,GAAA,WACAtrC,CADsD,GAAAurC,GAAA,qBAIxDvrC,MAAA,OAEEA,MADA,GAAAwrC,EAAA,WACAxrC,CADsD,GAAAyrC,EAAA,qBAIxDzrC,MAAA,OAEEA,MADA,GAAA0rC,EAAA,WACA1rC,CADsD,GAAA2rC,EAAA,qBAKxD3rC,MADA,GAAA4rC,EAAA,YACA5rC,CAD4E,GAAA6rC,EAAA,aAKlF7rC,YAEEA,MADF,YACEA,CAD8C,gBACQA,MAAA,YAE1DA,mBA3CuBA,MAAA,IAAAA,MAAA,aAAA0O,EAAAm8B,mBAkCK7qC,MAAA,IAA0CA,MAA1C,kBAAA0O,EAAAi8B,wBAA0C3qC,CAAA,4BAC7BA,cAAA,mBAAA0O,EAAAi8B,0YCjC5BF,CAA0B,6aCTFzqC,MAAA,GAAmCA,MAAA,iCAAAA,cAAA,uBAAA+iC,EAAArnB,aAAA,KAAAqnB,EAAArnB,aAAAhK,MAAA,aAAAqxB,EAAArnB,aAAA,KAAAqnB,EAAArnB,aAAA/J,MAAA,4BAElE3R,MADF,cACEA,CAD6F,cACnFA,MAAA,WACZA,qCAEFA,MAAA,YACEA,MAAA,8BAEEA,MADF,cACEA,CAD6pB,iBAC1nBA,MAAA,UAEvCA,kCAJyBA,cAAA,UAAA+iC,EAAA3hC,mDASvBpB,MAAA,GACEA,MAAA,gCAA4DA,MAAA,yBAAAA,MAAAs+B,GAAA,MAAAyE,EAAA/iC,QAAA,OAAAA,MAAe+iC,EAAAtd,aAAa,GAAE,GACxFzlB,MAAA,OAAGA,MAAA,GACLA,0CAFsCA,cAAA,OAAA+iC,EAAA31B,QAAA/E,MACjCrI,MAAA,GAAAA,MAAA+iC,EAAA31B,QAAAhT,8BAIP4F,MAAA,GACEA,MAAA,YACEA,MAAA,qBACFA,0DAIAA,MAAA,WAAwCA,MAAA,qCAA+BA,MAAA,WAA0DA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA6X,EAAA/iC,MAAA,UAAAA,MAAS+iC,EAAA+I,WAAW,cAAa,GAAE9rC,MAAA,YAAQA,MAAA,cAAiBA,UAAKA,MAAA,oBAAaA,gCAgBrMA,MAAA,cAA2DA,MAAA,iCAA2BA,gCAStFA,MAAA,cAA2DA,MAAA,iCAA2BA,gCAOtFA,MAAA,eAAoDA,MAAA,kCAA4BA,mCAK9EA,MAAA,oBAAwEA,MAAA,GAAeA,kCAAxCA,MAAA,QAAA+rC,EAAA1xC,OAAyB2F,cAAA+rC,EAAA3xC,iCAMxE4F,MAAA,oBAA2EA,MAAA,GAAgBA,kCAA1CA,MAAA,QAAAgsC,EAAA3xC,OAA0B2F,cAAAgsC,EAAA5xC,6BA4BnF4F,MAAA,yCAGAA,MAAA,yCAGAA,MAAA,2CASMA,MAAA,cAAkEA,MAAA,iCAA2BA,mCAK3FA,MAAA,oBAA2EA,MAAA,GAAgBA,kCAA1CA,MAAA,QAAAisC,EAAA5xC,OAA0B2F,cAAAisC,EAAA7xC,gCAU3E4F,MAAA,oBAA8EA,MAAA,GAAiBA,kCAA5CA,MAAA,QAAAksC,EAAA7xC,OAA2B2F,cAAAksC,EAAA9xC,8BAqB9E4F,MAAA,cAAoEA,MAAA,iCAA2BA,mCAK7FA,MAAA,oBAA2EA,MAAA,GAAgBA,kCAA1CA,MAAA,QAAAmsC,EAAA9xC,OAA0B2F,cAAAmsC,EAAA/xC,iCAU3E4F,MAAA,oBAA8EA,MAAA,GAAiBA,kCAA5CA,MAAA,QAAAosC,EAAA/xC,OAA2B2F,cAAAosC,EAAAhyC,gDArBtF4F,MAAA,GACEA,MAAA,WAAiCA,MAAA,uBAAiBA,QAG9CA,MAFJ,WAEIA,CAFuC,sBAEvCA,CAD2B,eAChBA,MAAA,UAAIA,QACfA,MAAA,eACAA,MAAA,EAAAqsC,GAAA,mBACFrsC,QAEEA,MADF,sBACEA,CAD6B,gBAClBA,MAAA,WAAIA,QACfA,MAAA,qBACEA,MAAA,GAAAssC,GAAA,qBAEJtsC,UAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,kBAAWA,QACtBA,MAAA,gBACFA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,mBAAYA,QACvBA,MAAA,qBACEA,MAAA,GAAAusC,GAAA,qBAEJvsC,UACAA,MAAA,iBAAsEA,MAAA,mBAAAA,MAAAotB,GAAA,MAAA2V,EAAA/iC,MAAA,UAAAA,MAAS+iC,EAAAyJ,wBAAuB,GACpGxsC,MAAA,eAAUA,MAAA,YAEdA,6CAtBqDA,MAAA,GAAAA,MAAA,gBACtCA,cAAA,WAAA+iC,EAAA0J,gBAAApyC,MAAAqyC,eAAAjuC,QAKuBuB,MAAA,GAAAA,MAAA,UAAA+iC,EAAA4J,cAKmC3sC,MAAA,GAAAA,MAAA,gBAKlCA,MAAA,GAAAA,MAAA,UAAA+iC,EAAA6J,uCAoBvC5sC,MAAA,cAAmEA,MAAA,iCAA2BA,gCAK9FA,MAAA,cAA0DA,MAAA,iCAA2BA,gCAOrFA,MAAA,eAAuEA,MAAA,qEAA+DA,gCAKtIA,MAAA,eAAuEA,MAAA,qEAA+DA,gCAOtIA,MAAA,cAAqEA,MAAA,iCAA2BA,mCAM9FA,MAAA,oBAAoEA,MAAA,GAAqBA,kCAA/CA,MAAA,QAAA6sC,EAAAC,cAA0B9sC,cAAA6sC,EAAAC,yCAYpE9sC,MAAA,oBAAsFA,MAAA,GAA2DA,kCAA7FA,MAAA,QAAA+sC,EAAAC,gBAAkChtC,eAAA,MAAA+sC,EAAA,KAAAA,EAAAE,kBAAA,YAAAF,EAAA,KAAAA,EAAA9b,SAAA,gCActFjxB,MAAA,oBAA8EA,MAAA,GAAeA,kCAA7CA,MAAA,QAAAktC,EAAAnxB,eAA8B/b,cAAAktC,EAAAjc,oCAQ5EjxB,MAAA,oBAAwEA,MAAA,GAAuBA,wCAAvDA,MAAA,QAAAmtC,EAAAC,eAAgCptC,cAAAmtC,EAAAC,0CAD1EptC,MAAA,GACEA,MAAA,EAAAqtC,GAAA,wDAAartC,cAAA,YAAAmtC,EAAAhiB,mCAEfnrB,MAAA,oBAA6HA,MAAA,GAA4BA,+BAAjEA,MAAA,QAAA+iC,EAAArnB,aAAA4xB,aAAqCttC,cAAA+iC,EAAArnB,aAAA4xB,qCAE/HttC,MAAA,eAAyDA,MAAA,wCAAkCA,mCAP3FA,MADF,sBACEA,CAD8C,eACnCA,MAAA,mBAAaA,QACxBA,MAAA,oBAIEA,MAHA,EAAAutC,GAAA,uBAGAvtC,CAHkD,EAAAwtC,GAAA,sBAIpDxtC,QACAA,MAAA,EAAAytC,GAAA,oBACFztC,+BAP4CA,MAAA,GAAAA,MAAA,WAAA+iC,EAAA2K,uBACR1tC,cAAA,UAAA+iC,EAAA4K,eAGnB3tC,cAAA,OAAA+iC,EAAArnB,cAAAqnB,EAAArnB,aAAA4xB,aAAA,GAAAvK,EAAA4K,cAAAlvC,QAEHuB,cAAA,OAAA+iC,EAAAtS,WAAA,mDAGZzwB,MADF,sBACEA,CAD+C,eACpCA,MAAA,mBAAaA,QACxBA,MAAA,eACFA,mCAQIA,MAAA,oBAA4EA,MAAA,GAAsBA,kCAAnDA,MAAA,QAAA4tC,EAAA3lB,aAA6BjoB,cAAA4tC,EAAAC,0CAO5E7tC,MAAA,oBAAuFA,MAAA,GAA6BA,kCAAnEA,MAAA,QAAA8tC,EAAAC,uBAAsC/tC,cAAA8tC,EAAAC,kDAQvF/tC,MAAA,oBAAyEA,MAAA,wBAAmCA,kCAAjEA,MAAA,QAAAguC,EAAAC,cAA8BjuC,oBAAA,IAAAguC,EAAAE,4CAOzEluC,MAAA,oBAAqFA,MAAA,wBAA2CA,kCAA/EA,MAAA,QAAAmuC,EAAApmB,iBAAoC/nB,oBAAA,IAAAmuC,EAAAC,8CAWvFpuC,MAAA,QAAwDA,MAAA,GAA6BA,kCAA7BA,cAAAquC,EAAAC,kDAD1DtuC,MAAA,QACEA,MAAA,EAAAuuC,EAAA,cACFvuC,+BADsBA,cAAA,gBAAA+iC,EAAArnB,aAAA,KAAAqnB,EAAArnB,aAAA8yB,4DASlBxuC,MAAA,sBAAuCA,MAAA,2BAAAyuC,EAAAzuC,MAAAgvB,GAAAb,UAAA4U,GAAA/iC,MAAA,UAAAA,MAAW+iC,GAAA2L,UAAAD,GAAc,GAC9DzuC,MAAA,UAAMA,MAAA,GAAgBA,QAEpBA,MADF,eACEA,CADoB,cACVA,MAAA,YAEdA,wCAJQA,MAAA,GAAAA,MAAAyuC,EAAAE,iCAMR3uC,MAAA,mBAAoFA,MAAA,iCAA2BA,kCAG/GA,MAAA,oBAAmEA,MAAA,GAAgBA,kCAA9BA,MAAA,QAAA4uC,GAAc5uC,cAAA4uC,EAAAD,oDAlS7E3uC,MAAA,EAAA6uC,GAAA,YAOM7uC,MALN,YAKMA,CALoF,WAKpFA,CAHe,QAGfA,CADG,WAC8BA,MAAA,sBAAgBA,QAG7CA,MAFJ,WAEIA,CAFoB,sBAEpBA,CAD2B,eAChBA,MAAA,YAAMA,QACjBA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,iBAAUA,QACrBA,MAAA,eACAA,MAAA,GAAA8uC,GAAA,mBACF9uC,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,cAAOA,QAClBA,MAAA,eAAwDA,MAAA,iBAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAS+iC,GAAAgM,sBAAApgC,GAA6B,GAChG3O,UAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,gBAASA,QACpBA,MAAA,eACAA,MAAA,GAAAgvC,GAAA,mBAEJhvC,UAGIA,MAFJ,YAEIA,CAFoB,uBAEpBA,CAD2B,gBAChBA,MAAA,gBAASA,QACpBA,MAAA,eACAA,MAAA,GAAAivC,GAAA,oBACFjvC,QAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,aAAMA,QACjBA,MAAA,oBACEA,MAAA,GAAAkvC,GAAA,qBAEJlvC,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,qBAAcA,QACzBA,MAAA,oBACEA,MAAA,GAAAmvC,GAAA,qBAEJnvC,UAGIA,MAFJ,YAEIA,CAFyB,uBAEzBA,CAD4B,gBACjBA,MAAA,aAAMA,QACjBA,MAAA,eAAqEA,MAAA,iBAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAS+iC,GAAAqM,gBAAAzgC,EAAA4S,QAA8B,GAA5GvhB,QACAA,MAAA,cAAoBA,MAAA,SACtBA,UACAA,MAAA,wBACEA,MAAA,gBACAA,MAAA,eAAyEA,MAAA,iBAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAS+iC,GAAAsM,kBAAA1gC,EAAA4S,QAAgC,GAAlHvhB,QACAA,MAAA,cAAoBA,MAAA,SAExBA,YAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,aAAMA,QACjBA,MAAA,eAAyCA,MAAA,iBAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAS+iC,GAAAuM,YAAA3gC,EAAA4S,QAA0B,GAA5EvhB,QACAA,MAAA,cAAoBA,MAAA,UACtBA,UAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,UAAGA,QACdA,MAAA,eAGNA,YASAA,MANA,GAAAuvC,GAAA,mBAMAvvC,CANmE,GAAAwvC,GAAA,mBAMnExvC,CAHiF,GAAAyvC,GAAA,sBAO/EzvC,MAFF,SAEEA,CAFG,YAE0CA,MAAA,wBAAiBA,QAG1DA,MAFJ,YAEIA,CAFuC,uBAEvCA,CAD2B,gBAChBA,MAAA,WAAIA,QACfA,MAAA,eACAA,MAAA,GAAA0vC,EAAA,mBACF1vC,QAEEA,MADF,uBACEA,CAD6B,gBAClBA,MAAA,WAAIA,QACfA,MAAA,oBACEA,MAAA,GAAA2vC,GAAA,qBAEJ3vC,UAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,kBAAWA,QACtBA,MAAA,eACFA,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,mBAAYA,QACvBA,MAAA,oBACEA,MAAA,GAAA4vC,EAAA,qBAEJ5vC,UACAA,MAAA,gBAAsEA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAqY,EAAA/iC,QAAA,OAAAA,MAAS+iC,EAAA8M,wBAAuB,GACpG7vC,MAAA,eAAUA,MAAA,YAEdA,YAEEA,MADF,YACEA,CADgD,YACzCA,MAAA,gCAAyBA,QAChCA,MAAA,yBAAsDA,MAAA,kBAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAU+iC,GAAA+M,YAAAnhC,GAAmB,GACjF3O,MAAA,0BAA4BA,MAAA,UAAGA,QAC/BA,MAAA,0BAA4BA,MAAA,SAEhCA,YAEAA,MAAA,IAAA+vC,GAAA,wBA+BJ/vC,UAKEA,MAFF,aAEEA,CAFiB,aAE2BA,MAAA,2BAAmBA,QAG3DA,MAFJ,aAEIA,CAFoB,wBAEpBA,CAD2B,iBAChBA,MAAA,qBAAaA,QACxBA,MAAA,gBACAA,MAAA,IAAAgwC,GAAA,mBACFhwC,QAEEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,uBAAeA,QAC1BA,MAAA,gBACAA,MAAA,IAAAiwC,GAAA,mBAEJjwC,UAGIA,MAFJ,aAEIA,CAFoB,wBAEpBA,CAD2B,iBAChBA,MAAA,mBAAWA,QACtBA,MAAA,gBAAqFA,MAAA,qBAAA2O,GAAA3O,aAAA0qB,GAAA1qB,MAAa2O,EAAA8zB,kBAAwB,GAA1HziC,QACAA,MAAA,IAAAkwC,GAAA,oBACFlwC,QAEEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,mBAAWA,QACtBA,MAAA,gBAAqFA,MAAA,qBAAA2O,GAAA3O,aAAA0qB,GAAA1qB,MAAa2O,EAAA8zB,kBAAwB,GAA1HziC,QACAA,MAAA,IAAAmwC,GAAA,oBAEJnwC,UAGIA,MAFJ,aAEIA,CAFoB,wBAEpBA,CAD2B,iBAChBA,MAAA,uBAAeA,QAC1BA,MAAA,gBACAA,MAAA,IAAAowC,GAAA,mBACFpwC,QAEEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,sBAAcA,QAEvBA,MADF,sBACEA,CADkD,qBAC7BA,MAAA,YAAIA,QACzBA,MAAA,IAAAqwC,GAAA,qBAGNrwC,YAGAA,MAAA,aAAmDA,MAAA,6BAAqBA,QAIpEA,MAHJ,aAGIA,CAH2E,wBAG3EA,CAD2B,iBAChBA,MAAA,mBAAWA,QACtBA,MAAA,qBACEA,MAAA,IAAAswC,GAAA,qBAEJtwC,UAGEA,MADF,wBACEA,CADoF,iBACzEA,MAAA,wBAAgBA,QAC3BA,MAAA,gBAEJA,UAGIA,MAFJ,aAEIA,CAF2E,wBAE3EA,CAD2B,iBAChBA,MAAA,gCAAwBA,QACnCA,MAAA,qBAA4CA,MAAA,2BAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAmB+iC,GAAAwN,UAAA5hC,EAAAtU,OAAuB,GACpF2F,MAAA,qBACAA,MAAA,IAAAwwC,GAAA,qBAEJxwC,UAYAA,MAVA,IAAAywC,GAAA,wBAUAzwC,CAVgD,IAAA0wC,GAAA,yBAclD1wC,QAIIA,MAFJ,aAEIA,CAF2E,wBAE3EA,CAD2B,iBAChBA,MAAA,gBAAQA,QACnBA,MAAA,qBAA0CA,MAAA,2BAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAmB+iC,GAAA4N,eAAAhiC,EAAAtU,OAA4B,GACvF2F,MAAA,qBACAA,MAAA,IAAA4wC,GAAA,qBAEJ5wC,UAGEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,eAAOA,QAClBA,MAAA,qBACEA,MAAA,IAAA6wC,GAAA,qBAGN7wC,YAGIA,MAFJ,aAEIA,CAF2E,wBAE3EA,CAD2B,iBAChBA,MAAA,iBAASA,QACpBA,MAAA,qBACEA,MAAA,IAAA8wC,GAAA,qBAEJ9wC,UAGEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,oBAAYA,QACvBA,MAAA,qBACEA,MAAA,IAAA+wC,GAAA,qBAGN/wC,YAKAA,MAAA,aAAiCA,MAAA,wBAAgBA,QACjDA,MAAA,cACEA,MAAA,IAAAgxC,GAAA,aAGFhxC,QAKIA,MAFJ,aAEIA,CAFyB,wBAEzBA,CAD2B,iBAChBA,MAAA,WAAGA,QACdA,MAAA,0BACEA,MAAA,IAAAixC,EAAA,uBAMAjxC,MAAA,kBAAqMA,MAAA,gCAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAwB+iC,GAAAmO,OAAAviC,EAAc,IAAG,GAA9O3O,QACAA,MAAA,IAAAmxC,EAAA,oBACFnxC,QACAA,MAAA,6BAAqEA,MAAA,0BAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAqY,GAAA/iC,QAAA,OAAAA,MAAkB+iC,GAAAqO,SAAAziC,GAAgB,GACrG3O,MAAA,IAAAqxC,EAAA,wCAEJrxC,UACAA,MAAA,iBAAgHA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAqY,EAAA/iC,QAAA,OAAAA,MAAS+iC,EAAAmO,OAAAnO,EAAA0J,gBAAApyC,MAAAi3C,KAAkC,OAAM,GAAEtxC,MAAA,eACrKA,UAIAA,MAAA,aAAiCA,MAAA,2BAAmBA,QAEpDA,MAAA,SAAGA,MAAA,0EAAkEA,MAAA,cAAQA,MAAA,0BAAkBA,QAAUA,MAAA,aAAIA,MAAA,cAAQA,MAAA,uBAAeA,QAAUA,MAAA,aAAIA,QAEhJA,MADF,aACEA,CADgB,uBAC6BA,MAAA,aAAKA,QAClDA,MAAA,uBAA4CA,MAAA,aAAKA,QACjDA,MAAA,uBAA4CA,MAAA,YAAIA,QAChDA,MAAA,uBAA4CA,MAAA,YAC9CA,UACAA,MAAA,eAAmBA,MAAA,KAAkFA,QACrGA,MAAA,YAAqBA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAqY,EAAA/iC,QAAA,OAAAA,MAAS+iC,EAAAwO,wBAAuB,GAAkCvxC,MAAA,0BAAkBA,QAIvGA,MADF,UACEA,CADG,aAC8BA,MAAA,0BAAkBA,QAG/CA,MAFJ,aAEIA,CAFoB,wBAEpBA,CAD2B,iBAChBA,MAAA,YAAIA,QAGfA,MAFA,eAEAA,CAF2H,gCAE3HA,CADkF,6BAEpFA,QAEEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,aAAKA,QAChBA,MAAA,iBACFA,QAEEA,MADF,wBACEA,CAD2B,iBAChBA,MAAA,mBAAWA,QACtBA,MAAA,iBAKVA,0FA3UuBA,MAAA,OAAA+iC,GAAA7S,WAEqClwB,cAAA,YAAA+iC,GAAA0J,iBASVzsC,MAAA,GAAAA,MAAA,eAIAA,MAAA,GAAAA,MAAA,gBAC7BA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAqX,MAAAjT,QAI6BuB,MAAA,GAAAA,MAAA,eAIAA,MAAA,GAAAA,MAAA,gBAC7BA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAsX,MAAAlT,QAM2BuB,MAAA,GAAAA,MAAA,MAAA+iC,GAAAmG,SAC1BlpC,cAAA,OAAA+iC,GAAAtS,WAAA,sBAKqBzwB,MAAA,GAAAA,MAAA,UAAA+iC,GAAAyO,aAMCxxC,MAAA,GAAAA,MAAA,UAAA+iC,GAAA0O,cAsBIzxC,MAAA,IAAAA,MAAA,gBAMhCA,cAAA,OAAA+iC,GAAAxS,cAGAvwB,cAAA,OAAA+iC,GAAAxS,eAAAwS,GAAAjZ,WAGE9pB,cAAA,OAAA+iC,GAAAxS,cAQuCvwB,MAAA,GAAAA,MAAA,gBACpCA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAq3C,aAAAjzC,QAKuBuB,MAAA,GAAAA,MAAA,UAAA+iC,GAAA4J,cAKiC3sC,MAAA,GAAAA,MAAA,gBAKhCA,MAAA,GAAAA,MAAA,UAAA+iC,GAAA6J,eAexB5sC,MAAA,IAAAA,MAAA,OAAA+iC,GAAA4O,aAwCmC3xC,MAAA,GAAAA,MAAA,gBACrCA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAu3C,cAAAnzC,QAI4BuB,MAAA,GAAAA,MAAA,gBAC5BA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAw3C,KAAApzC,QAMmDuB,MAAA,GAAAA,MAAA,MAAA+iC,GAAA+O,gBAClD9xC,cAAA,cAAA+xC,EAAAhP,GAAA0J,gBAAAluC,IAAA,6BAAAwzC,EAAAroB,SAIkD1pB,MAAA,GAAAA,MAAA,MAAA+iC,GAAA+O,gBAClD9xC,cAAA,cAAAgyC,EAAAjP,GAAA0J,gBAAAluC,IAAA,6BAAAyzC,EAAAtoB,SAMsC1pB,MAAA,GAAAA,MAAA,gBACvCA,cAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAA43C,gBAAAxzC,QAMkBuB,MAAA,GAAAA,MAAA,UAAA+iC,GAAA9S,YAOTjwB,MAAA,GAAAA,MAAA,UAAA+iC,GAAA2K,sBAAA,kBAI2B1tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBACd1tC,cAAA,UAAA+iC,GAAAmP,kBAINlyC,cAAA,UAAA+iC,GAAA2K,sBAAA,oBAEqB1tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBAG5B1tC,cAAA,UAAA+iC,GAAA2K,sBAAA,kBAGoE1tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBAE1D1tC,MAAA,GAAAA,MAAA,UAAA+iC,GAAAoP,iBAIFnyC,cAAA,OAAA+iC,GAAAqP,YAUApyC,cAAA,QAAA+iC,GAAAqP,YAMRpyC,cAAA,UAAA+iC,GAAA2K,sBAAA,kBAGuE1tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBAE5D1tC,MAAA,GAAAA,MAAA,UAAA+iC,GAAA8K,eAMqB7tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBACtB1tC,cAAA,UAAA+iC,GAAAsP,kBAIVryC,cAAA,UAAA+iC,GAAA2K,sBAAA,kBAGuB1tC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBACZ1tC,cAAA,UAAA+iC,GAAAuP,WAMetyC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA2K,uBACZ1tC,cAAA,UAAA+iC,GAAAwP,cAU/BvyC,MAAA,GAAAA,MAAA,aAAA+iC,GAAArnB,aAAA,KAAAqnB,GAAArnB,aAAA8yB,mBAU6BxuC,MAAA,GAAAA,MAAA,UAAA+iC,GAAAuO,MAM2CtxC,QAAuEA,MAAvE,kBAAAwyC,GAAuExyC,CAA/C,kBAAAyyC,EAA+CzyC,CAAlB,eAAkBA,CAAD,gCAAA+iC,GAAA2P,oBACnI1yC,MAAA,GAAAA,MAAA,WAAA+iC,GAAA0J,gBAAApyC,MAAAi3C,KAAA7yC,QAE4BuB,cAAA,cAAA+iC,GAAA4P,YACZ3yC,MAAA,GAAAA,MAAA,UAAAA,MAAA,OAAA+iC,GAAA6P,eAGmC5yC,MAAA,GAAAA,MAAA,eAAA+iC,GAAA0J,gBAAApyC,MAAAi3C,MAclDtxC,MAAA,IAAAA,MAAA,2BAAA+iC,GAAArnB,aAAA,KAAAqnB,GAAArnB,aAAAm3B,aAAA,WAAA9P,GAAArnB,aAAA,KAAAqnB,GAAArnB,aAAAo3B,aAAA,IASsC9yC,MAAA,IAAAA,MAAA,gBAAA+yC,IAClB/yC,cAAA,MAAA+yC,8CAsB3C/yC,MAAA,gBAA0CA,MAAA,mBAAAA,MAAAgzC,GAAA,MAAAjQ,EAAA/iC,MAAA,UAAAA,MAAS+iC,EAAA+I,WAAW,cAAa,GAAE9rC,MAAA,YAAMA,kDACnFA,MAAA,gBAA0CA,MAAA,mBAAAA,MAAAizC,GAAA,MAAAlQ,EAAA/iC,MAAA,UAAAA,MAAS+iC,EAAA+I,WAAW,SAAQ,GAAE9rC,MAAA,oBAAcA,kDAHxFA,MAAA,GACEA,MAAA,gBAA0BA,MAAA,mBAAAA,MAAAkzC,GAAA,MAAAnQ,EAAA/iC,QAAA,OAAAA,MAAS+iC,EAAAnB,aAAY,GAAE5hC,MAAA,GAAoCA,QAErFA,MADA,EAAAmzC,GAAA,iBACAnzC,CAD6E,EAAAozC,GAAA,kDAD5BpzC,MAAA,GAAAA,MAAA+iC,EAAA7S,UAAA,kBACxClwB,cAAA,OAAA+iC,EAAA7S,WACAlwB,cAAA,OAAA+iC,EAAA7S,YC1VR,IAAMpf,GAAmB,MAA1B,MAAOA,EAoDXpT,YACkC8O,EACxBga,EACAjkB,EACAmkB,GACA4I,GACA+jB,GACD3iC,GACCpO,GACDmO,IARyB7S,KAAA4O,SACxB5O,KAAA4oB,KACA5oB,KAAA2E,OACA3E,KAAA8oB,eACA9oB,KAAA0xB,iBACA1xB,KAAAy1C,mBACDz1C,KAAA8S,UACC9S,KAAA0E,QACD1E,KAAA6S,aA/CD7S,KAAA4xB,qBAAuB,IAAIrxB,IAC3BP,KAAA8xB,cAAqB,GAEtB9xB,KAAAqyB,WAAiB,GACjBryB,KAAAwD,QAAe,EACfxD,KAAA0zC,KAAY,GACZ1zC,KAAA01C,WAAY,EAQZ11C,KAAA6zC,aAAe72C,KACfgD,KAAAgvC,cAAgB5xC,KAChB4C,KAAA+uC,aAAe9xC,KACf+C,KAAA4zC,YAAcz2C,KACd6C,KAAAksB,WAAqB,EAErBlsB,KAAA2yB,cAAwB,EACxB3yB,KAAA21C,OAAS,IAAIrsB,KAAY,IAEzBtpB,KAAAw0C,YAAqB,EAErBx0C,KAAAwP,QAAe,GACfxP,KAAA41C,sBAAuB,EAEvB51C,KAAAsyB,WAAqB,EACrBtyB,KAAA+zC,aAAuB,EACvB/zC,KAAA+vC,cAAqB,GACrB/vC,KAAAsrC,QAAU,IAAIt/B,KACdhM,KAAAk0C,eAAiB,IAAIloC,KAAK,cAIxBhM,KAAA80C,mBAAqB,CAACe,KAAOC,MAokB/B91C,KAAA6yB,WAAa,CAACC,GAAqBC,KACjC/yB,KAAK6uC,gBAAgB7b,SAASF,IAAaG,SAASF,IAxjB3D/yB,KAAKwD,QAAUoL,EACf5O,KAAK6uC,gBAAkB7uC,KAAK4oB,GAAGS,MAAM,CACnC5R,MAAO,CAAC,IACR3D,MAAO,CAAC,IACRiiC,MAAO,CAAC,IACRhiC,MAAO,CAAC,IACRC,IAAK,CAAC,GAAI,CAACgiC,MAAkBC,QAC7B7iB,OAAQ,CAAC,IACT8iB,eAAgB,CAAC,IACjBC,YAAa,CAAC,IACdC,cAAe,CAAC,IAChBC,OAAQ,CAAC,IACTC,IAAK,CAAC,IACNtC,cAAe,CAAC,IAChBK,gBAAiB,CAAC,IAClBkC,eAAgB,CAAC,IACjBtC,KAAM,CAAC,IACP3/B,oBAAqB,CAAC,GAAI,CAACkiC,QAC3BjiC,oBAAqB,CAAC,GAAI,CAACiiC,QAC3BljB,OAAQtzB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAKwzB,cAC5BijB,iBAAkB,CAAC,IACnBC,cAAe,CAAC,IAChBv4B,cAAe,CAAC,IAChBuxB,YAAa,CAAC,IACdrlB,YAAa,CAAC,IACd8lB,sBAAuB,CAAC,IACxBE,aAAc,CAAC,IACflmB,gBAAiB,CAAC,IAClBsJ,OAAQzzB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAK0zB,aAC5BC,UAAW3zB,KAAK4oB,GAAG2K,MAAM,CAACvzB,KAAK4zB,eAC/B8f,KAAM1zC,KAAK21C,OACXgB,aAAc,CAAC,IACfC,YAAa,CAAC,IACdC,YAAa,CAAC,IACdC,YAAa,CAAC,IACdC,iBAAkB,CAAC,IACnBpO,WAAY,CAAC,IACbqO,UAAW,CAAC,IACZlD,aAAc,CAAC,IACfmD,mBAAoB,CAAC,IACrBC,cAAe,CAAC,IAChBC,qBAAsB,CAAC,IACvBC,mBAAoB,CAAC,MACrBtI,eAAgB,CAAC,IACjBuI,qBAAsB,CAAC,IACvBC,gBAAiB,CAAC,IAClBC,uBAAwB,CAAC,MAG3Bv3C,KAAKqyB,WAAcmlB,EACnBx3C,KAAK20B,iBAAmB30B,KAAK8oB,YAAY/H,qBAAqBzR,UAAUslB,KAClEA,KACF50B,KAAKsyB,WAAY,KAGrBtyB,KAAK0xB,cAAchuB,mBAAmB1D,KAAK2E,KAAKb,YAC/CjB,QAAKwM,SACLC,UAAU,CACT/K,KAAOkzC,KACLz3C,KAAK03C,YAAcD,GACnBz3C,KAAKw0C,WAA6E,KAAhEx0C,KAAK03C,YAAYC,2CAA+C,EAEpF50C,MAAQiB,OACRimB,SAAUA,QAGd,CAEO4K,cACL70B,KAAK80B,8BACP,CAEA7lB,WACEjP,KAAK43C,gBACL53C,KAAKmf,cACLnf,KAAKof,kBACLpf,KAAK63C,gBACL73C,KAAKqf,iBACLrf,KAAKsf,eACLtf,KAAKkd,iBACLld,KAAK80B,+BAELhzB,OAAO40B,iBAAiB,eAAiBtmB,IAClCpQ,KAAK6uC,gBAAgBlY,UACxBnyB,WAAW,WAET,OAAmB,GADDszC,QAAQ,8DAKxBh2C,OAAOi2C,QACA,EAEX,EAEF,EAEJ,CAGOjjB,+BACL,MAAMM,EAAep1B,KAAK6uC,gBAAgBpyC,MAC1CuD,KAAK6uC,gBAAgBxZ,aAAaxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU7S,IACjFuD,KAAK6uC,gBAAgBtZ,QAAUv1B,KAAKksB,YAMjClsB,KAAKsyB,aALsB,GAA5B71B,EAAM26C,oBAA6Bp3C,KAAK6uC,gBAAgBpyC,MAAMq3C,cAC1D9zC,KAAK6uC,gBAAgBpyC,MAAMy6C,eAC3Bl3C,KAAK6uC,gBAAgBpyC,MAAM06C,yBAExBn3C,KAAK6uC,gBAAgBpyC,MAAMs5C,QAAa/1C,KAAK6uC,gBAAgBpyC,MAAMs5C,MAASiC,QAAQ,aAAc,MAGxFxiB,OAAOC,KAAKL,GAAcM,KAAKC,GAC9C31B,KAAK6uC,gBAAgBpyC,MAAMk5B,IAAQP,EAAaO,IAAI,EAKhE,CAEQzY,iBACNld,KAAKksB,WAAY,EACjBlsB,KAAKi4C,kBAAoBj4C,KAAK8oB,YAAY5L,eAAeld,KAAKwD,SAAS8L,UAAU,CAC/E/K,KAAOimB,IACL,GAAIA,EAAK,CACPxqB,KAAK8d,aAAe0M,EAEpB,IAAI0tB,EAAwBl4C,KAAK8d,aAAay5B,uBAC1CW,GAAkD,IAAzBA,IACbl4C,KAAKgvC,cAActZ,KAAKyiB,IAAgBA,GAAa17C,OAASy7C,KAE1El4C,KAAK8d,aAAay5B,uBAAyB,UAK/C,IAAIa,EAA0Bp4C,KAAK8d,aAAaq5B,qBAC5CiB,GAAsD,IAA3BA,IACfp4C,KAAKgvC,cAActZ,KAAKyiB,IAAgBA,GAAa17C,OAAS27C,KAE1Ep4C,KAAK8d,aAAaq5B,qBAAuB,UAGzCn3C,KAAK8d,cAAcK,eACrBne,KAAKuJ,gBAAgBvJ,KAAK8d,aAAaK,eAErCne,KAAK8d,eACH9d,KAAK8d,aAAa41B,OACpB1zC,KAAK0zC,KAAO1zC,KAAK8d,aAAa41B,MAE5B1zC,KAAK8d,aAAauM,aACpBrqB,KAAK+yC,eAAe/yC,KAAK8d,aAAauM,aAItCrqB,KAAK+zC,aAFJ/zC,KAAK8d,aAAau6B,mBAAmBx3C,QAAUb,KAAK8d,aAAau6B,oBAClEr4C,KAAK8d,aAAaw6B,iBAAiBz3C,SAAUb,KAAK8d,aAAaw6B,iBAKjEt4C,KAAK6uC,gBAAgB7kB,WAAW,CAC9BvS,MAAOzX,KAAK8d,aAAarG,MACzB3D,MAAO9T,KAAK8d,aAAahK,MACzBC,MAAO/T,KAAK8d,aAAa/J,MACzBgiC,MAAO/1C,KAAK8d,aAAai4B,MACzB/hC,IAAKhU,KAAK8d,aAAa9J,IAAMjI,KAAO/L,KAAK8d,aAAa9J,KAAK/H,OAAO,cAAgB,GAClFmnB,OAAQpzB,KAAK8d,aAAasV,OAC1B8iB,eAAgBl2C,KAAK8d,aAAao4B,eAClCC,YAAala,KAAKC,MAAMl8B,KAAK8d,aAAay6B,OAAS,IAAMtc,KAAKC,MAAMl8B,KAAK8d,aAAay6B,OAAS,IAAM,GACrGnC,cAAep2C,KAAK8d,aAAay6B,OAASv4C,KAAK8d,aAAay6B,OAAS,GAAK,GAC1ElC,OAAQr2C,KAAK8d,aAAau4B,OAC1BC,IAAKt2C,KAAK8d,aAAaw4B,IACvBxC,aAAc9zC,KAAK8d,aAAag2B,aAChCmD,mBAAoBj3C,KAAK8d,aAAao5B,cAAgBl3C,KAAK8d,aAAao5B,cAAcngB,WAAa,OACnGmgB,cAAel3C,KAAK8d,aAAao5B,cAAgBl3C,KAAK8d,aAAao5B,cAAchjC,MAAQ,GACzFijC,qBAAsBn3C,KAAK8d,aAAaq5B,qBACxCrI,eAAgB9uC,KAAK8d,aAAagxB,eAClCuI,qBAAsBr3C,KAAK8d,aAAaw5B,gBAAkBt3C,KAAK8d,aAAaw5B,gBAAgBvgB,WAAa,OACzGugB,gBAAiBt3C,KAAK8d,aAAaw5B,gBAAkBt3C,KAAK0xB,cAAc8mB,eAAex4C,KAAK8d,aAAaw5B,gBAAgBpjC,OAAS,GAClIqjC,uBAAwBv3C,KAAK8d,aAAay5B,uBAC1CvD,cAAeh0C,KAAK8d,aAAak2B,cACjCK,gBAAiBr0C,KAAK8d,aAAau2B,gBACnCkC,eAAgBv2C,KAAK8d,aAAay4B,eAClCtC,KAAMj0C,KAAK8d,aAAam2B,KACxB3/B,oBAAqBtU,KAAK8d,aAAaxJ,oBAAsBvI,KAAO/L,KAAK8d,aAAaxJ,qBAAqBrI,OAAO,cAAgB,GAClIsI,oBAAqBvU,KAAK8d,aAAavJ,oBAAsBxI,KAAO/L,KAAK8d,aAAavJ,qBAAqBtI,OAAO,cAAgB,GAClIwqC,iBAAkBz2C,KAAK8d,aAAa24B,iBACpCC,cAAe12C,KAAK8d,aAAa44B,cACjCv4B,cAAene,KAAK8d,aAAaK,cACjCuxB,YAAa1vC,KAAK8d,aAAa4xB,YAC/BrlB,YAAarqB,KAAK8d,aAAauM,YAC/B8lB,sBAAuBnwC,KAAK8d,aAAaqyB,sBACzCE,aAAcrwC,KAAK8d,aAAauyB,aAChClmB,gBAAiBnqB,KAAK8d,aAAaqM,gBAEnCupB,KAAM,GACNiD,aAAgD,KAAlC32C,KAAK8d,aAAa64B,aAChCC,YAA8C,KAAjC52C,KAAK8d,aAAa84B,YAC/BC,YAA8C,KAAjC72C,KAAK8d,aAAa+4B,YAC/BC,YAA8C,KAAjC92C,KAAK8d,aAAag5B,YAE/BC,iBAAkB/2C,KAAK8d,aAAai5B,iBAAmB/2C,KAAK8d,aAAai5B,iBAAmB,GAC5FpO,WAAY3oC,KAAK8d,aAAa6qB,WAC9BqO,UAAWh3C,KAAK8d,aAAak5B,UAC7BI,mBAAqBp3C,KAAK8d,aAAagxB,eAAejuC,OAAS,GAC1Db,KAAK8d,aAAagxB,gBAAkB9uC,KAAK8d,aAAag2B,cACrD9zC,KAAK8d,aAAau6B,mBAAmBx3C,OAAS,GAChDb,KAAK8d,aAAau6B,oBAAsBr4C,KAAK8d,aAAaw6B,kBACxDt4C,KAAK8d,aAAay5B,uBAAuB12C,OAAS,GACpDb,KAAK8d,aAAay5B,wBAA0Bv3C,KAAK8d,aAAaq5B,qBAAwB,IAAM,KAC/F,CAAEsB,WAAW,IAChBz4C,KAAK6uC,gBAAgB/W,WAAW,SAAU93B,KAAK0xB,cAAcsG,iBAAiBh4B,KAAK8d,aAAa2V,OAAQzzB,KAAK8d,aAAaqd,iBAAkB,WAC5In7B,KAAK6uC,gBAAgB/W,WAAW,SAAU93B,KAAK0xB,cAAcqG,iBAAiB/3B,KAAK8d,aAAawV,OAAQtzB,KAAK8d,aAAaod,iBAAkB,WAC5Il7B,KAAK6uC,gBAAgB/W,WAAW,YAAa93B,KAAK0xB,cAAcuG,mBAAmBj4B,KAAK8d,aAAa6V,UAAW3zB,KAAK8d,aAAamd,mBAAoB,WACtJj7B,KAAK2yB,cAAe,EACpB3yB,KAAKksB,WAAY,EACjBlsB,KAAK8oB,YAAYnO,eAAe,eAChC3a,KAAKsyB,WAAY,EAErB,GACCvvB,MAAOiB,IACRhE,KAAKksB,WAAY,GAChBjC,SAAUA,KACXjqB,KAAKsyB,WAAY,EACjB9tB,WAAW,KAAQxE,KAAKksB,WAAY,GAAU,IAAI,GAGxD,CAGQ0rB,gBAEN,IAAIpuC,EAAgB,CAClB1F,WAAY,CACV2G,KAAM,SACNhO,MAAO,CAACuD,KAAK2E,KAAKb,cAIlB9D,KAAK0xB,cAAcgnB,cAAc,gBACnClvC,EAASmvC,yBAA2B,CAClCluC,KAAM,SACNhO,MAAO,CAAC,OASZuD,KAAK44C,qBAAuB54C,KAAK8oB,YAAY7iB,iBAN/B,CACZoF,YAAe,SACf7B,SAAYA,EACZuB,WAAc,uDAGuDuE,UAAU,CAC/E/K,KAAOqwB,IACDA,EAAS/zB,OAAS,IACpBb,KAAKs0C,iBAAmB1f,IAG5B7xB,MAAQiB,MACRimB,SAAUA,QAEd,CAGQ9K,cACPnf,KAAK64C,gBAAkB74C,KAAK8oB,YAAY3J,cAAc7P,UAAU,CAC7D/K,KAAOqwB,IACDA,EAAS/zB,OAAS,IACpBb,KAAK00C,UAAY9f,IAGrB7xB,MAAQiB,MACRimB,SAAUA,QAEd,CAGQ7K,kBAaPpf,KAAK84C,oBAAsB94C,KAAK8oB,YAAY1J,gBAZ7B,CACZ/T,YAAe,SACf7B,SAAY,CACV1F,WAAc,CACZ2G,KAAQ,SACRhO,MAAS,CAACuD,KAAK2E,KAAKb,cAGxBwH,cAAiB,gBACjBH,kBAAqB,MACrBJ,WAAc,KAEoDuE,UAAU,CAC5E/K,KAAOqwB,IACDA,EAAS/zB,OAAS,IACpBb,KAAKiwC,cAAgBrb,IAGzB7xB,MAAQiB,MACRimB,SAAUA,QAEd,CAGQ4tB,gBACN73C,KAAK+4C,kBAAoB/4C,KAAK8oB,YAAYrL,cAAc,eAAenO,UAAU,CAC/E/K,KAAOimB,IACM,IAAPA,GAAaA,EAAI3pB,OAAS,IAC5Bb,KAAKu0C,gBAAkB/pB,IACxBznB,MAAQiB,OAEf,CAGQqb,iBAEPrf,KAAKg5C,mBAAqBh5C,KAAK8oB,YAAYzJ,eAD5B,CAAEhU,YAAe,SAAU7B,SAAY,CAAE2gB,gBAAmB,CAAE1f,KAAQ,QAAShO,MAAS,CAAC,EAAG,OAAUsO,WAAc,KAChEuE,UAAU,CAC1E/K,KAAOimB,IACM,IAAPA,GAAaA,EAAI3pB,OAAS,IAC5Bb,KAAK20C,aAAenqB,IACrBznB,MAAQiB,OAEf,CAGQsb,eAaPtf,KAAKi5C,iBAAoBj5C,KAAK8oB,YAAYxJ,aAZ3B,CACZjU,YAAe,SACf7B,SAAY,CACV1F,WAAc,CACZ2G,KAAQ,SACRhO,MAAS,CAACuD,KAAK2E,KAAKb,cAGxBiH,WAAc,GACdC,YAAe,IAG8CsE,UAAU,CACvE/K,KAAOimB,IACM,IAAPA,GAAaA,EAAI3pB,OAAS,IAC5Bb,KAAKk5C,SAAW1uB,EAChBxqB,KAAKg1C,aAAeh1C,KAAK6uC,gBAAgBluC,IAAI,QAAS00B,aACnDxyB,QACC0nB,KAAQ9d,GAAmBA,GAASA,EAAM5L,OAAS,IAAG,EACtDwD,KAAK5H,GACsB,iBAAVA,EAAsBA,EAAQA,EAAMs0C,WACpD,EACD1sC,KAAI80C,GAAOn5C,KAAKo5C,QAAQD,KAAK,EAGlCp2C,MAAQiB,OAEf,CAGO+wC,WAAWrB,GAChB,OAAOA,GAAQA,GAAM3C,SAAW2C,GAAM3C,SAAW,EACnD,CAGOyC,SAASpjC,GACdpQ,KAAK0zC,KAAKtnB,KAAKhc,EAAMipC,OAAO58C,OAC5BuD,KAAKs5C,SAASC,cAAc98C,MAAQ,GACpCuD,KAAK6uC,gBAAgBpyC,MAAMi3C,KAAO,EACpC,CAGQ0F,QAAQI,GACd,MAAMC,EAAcD,EAAQE,cAC5B,OAAO15C,KAAKk5C,SAAS3uB,OAClB4uB,GAAaA,EAAIpI,SAAS2I,cAAc11B,QAAQy1B,IAAgB,EAErE,CAGO1G,eAAe1oB,GACF,IAAfA,GACDrqB,KAAKy0C,iBAAmB,GAazBz0C,KAAK25C,uBAAyB35C,KAAK8oB,YAAYlJ,mBAZhC,CACZvU,YAAe,SACf7B,SAAY,CACV6gB,YAAe,CACb5f,KAAQ,SACRhO,MAAS,CAAC4tB,KAGd/e,cAAiB,wBACjBH,kBAAqB,MACrBJ,WAAc,KAE0DuE,UAAU,CAClF/K,KAAOimB,IACM,IAAPA,GAAaA,EAAI3pB,OAAS,IAC5Bb,KAAKy0C,iBAAmBjqB,IACzBznB,MAAQiB,SAGbhE,KAAKy0C,iBAAmB,EAE5B,CAIOjD,gBAAgBphC,GACrB,OAAIpQ,KAAK45C,cAAcxpC,EAAM3T,SACvB2T,EAAM3T,MAAQ,IAChBuD,KAAK6uC,gBAAgB7kB,WAAW,CAAEmsB,YAAe,MAEjDn2C,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,2IAA2I,GACzLlQ,KAAK6nB,aAAa,KACX,KAMT7nB,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,2CAA2C,GACzFlQ,KAAK6nB,aAAa,MACX,EAEX,CAEO4pB,kBAAkBrhC,GACvB,OAAIpQ,KAAK45C,cAAcxpC,EAAM3T,SACvB2T,EAAM3T,MAAQ,KAChBuD,KAAK6uC,gBAAgB7kB,WAAW,CAAEosB,cAAiB,OACnDp2C,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,kJAAkJ,GAChMlQ,KAAK6nB,aAAa,KACX,KAMT7nB,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,2CAA2C,GACzFlQ,KAAK6nB,aAAa,MACX,EAEX,CAEO6pB,YAAYthC,GACjB,OAAIpQ,KAAK45C,cAAcxpC,EAAM3T,SACvB2T,EAAM3T,MAAQ,MAChBuD,KAAK6uC,gBAAgB7kB,WAAW,CAAEqsB,OAAU,QAC5Cr2C,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,4IAA4I,GAC1LlQ,KAAK6nB,aAAa,KACX,KAMT7nB,KAAKwP,QAAUxP,KAAKy1C,gBAAgBvlC,UAAU,2CAA2C,GACzFlQ,KAAK6nB,aAAa,MACX,EAEX,CAEQ+xB,cAAcC,GACpB,MAAmB,KAAXA,GAAkB75C,KAAK85C,UAAUD,EAC3C,CAEQC,UAAUC,GAChB,OAA8C,KAAxCC,MAAMC,WAAWF,KAAOG,SAASH,MACrC/5C,KAAK41C,sBAAuB,IAEtBoE,MAAMC,WAAWF,KAAOG,SAASH,EAC3C,CAMQvmB,YACN,OAAOxzB,KAAK4oB,GAAGS,MAAM,CACnB0N,WAAY,CAAC,QACb7iB,MAAO,IAAIoV,KAAY,GAAI,CAACC,KAAWyN,UAAU,MACjDC,UAAW,CAAC,IACZC,SAAU,CAAC,IACXnB,YAAa,CAAC,IACd74B,WAAY,IAEhB,CAEQw2B,WACN,OAAO1zB,KAAK4oB,GAAGS,MAAM,CACnB8N,WAAY,CAAC,QACbljB,MAAO,IAAIqV,KAAY,GAAI,CAACC,KAAW2F,QAAQ1vB,KAAkBC,SACjEue,SAAU,CAAC,IACXqY,YAAa,CAAC,IACdn5B,WAAY,IAEhB,CAEQ02B,aACN,OAAO5zB,KAAK4oB,GAAGS,MAAM,CACnB+N,gBAAiB,CAAC,QAClBjjB,SAAU,IAAImV,KAAY,IAC1BhS,SAAU,GACVlD,KAAM,IAAIkV,KAAY,IACtB3S,SAAU,IAAI2S,KAAY,IAC1BjV,IAAK,IAAIiV,KAAY,GAAI,CAACC,KAAWyN,UAAU,KAC/CmjB,OAAQ,GAER9iB,WAAY,CAAC,IACbC,IAAK,CAAC,IACNC,WAAY,CAAC,IACbC,YAAa,CAAC,IACdC,MAAO,CAAC,IACRvB,cAAe,CAAC,IAChBh5B,WAAY,IAEhB,CAMO+0C,wBACLjyC,KAAKsyB,WAAY,EACjBtyB,KAAK6uC,gBAAgB7kB,WAAW,CAAE8pB,aAAgB,GAAImD,mBAAsB,GAAIC,cAAiB,GAAIC,qBAAwB,IAC/H,CAEOvI,sBAAsBkF,GAC3B9zC,KAAKsyB,WAAY,EACjBtyB,KAAK6uC,gBAAgB7kB,WAAW,CAAE8kB,eAAkBgF,GAA8B,GAAIuD,qBAAwB,GAAIC,gBAAmB,GAAIC,uBAA0B,IACrK,CAEOrF,YAAY9hC,GACE,KAAfA,EAAM3T,OACRuD,KAAK+zC,aAAc,EACnB/zC,KAAK4uC,sBAAsB5uC,KAAK6uC,gBAAgBpyC,MAAMq3C,gBAEtD9zC,KAAK+zC,aAAc,EACnB/zC,KAAK4uC,wBAET,CAEO+D,UAAUx0B,GACfne,KAAK6uC,gBAAgB7kB,WAAW,CAAC0lB,YAAgB,KAC7B,IAAjBvxB,EACDne,KAAKuJ,gBAAgB4U,GAErBne,KAAK+vC,cAAc3jB,KAAK,CAACojB,cAAe,IAE5C,CAEQjmC,gBAAgB4U,GACtBne,KAAK+vC,cAAc3jB,KAAK,CAACojB,cAAe,KACzCxvC,KAAKo6C,oBAAsBp6C,KAAK8oB,YAAYvf,gBAAgB4U,GAAe7O,UAAU,CAClF/K,KAAOimB,IACM,IAAPA,GAAaA,EAAI3pB,OAAS,GAC5Bb,KAAK+vC,cAAgBvlB,EACjBxqB,KAAK8d,aAAaK,eAAiBA,GACrCne,KAAK+vC,cAAc3jB,KAAK,CACtBojB,cAAexvC,KAAK8d,aAAa4xB,eAIrC1vC,KAAK+vC,cAAgB,IAEtBhtC,MAAQiB,IACThE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,GAAKwL,SAEbxP,KAAK6nB,aAAa,IAAK,GAG7B,CAUOyrB,OAAOljC,EAA0B3F,GACtCzK,KAAKsyB,WAAY,EACjB,IAAI71B,GAAS2T,EAAM3T,OAAS,IAAI49C,OAEpB,OAAR5vC,IACFhO,EAAQ2T,EAAMzF,YAEZlO,GACFuD,KAAK0zC,KAAKtnB,KAAK,CAAE2kB,SAAYt0C,IAG3B2T,GAAOkqC,YACTlqC,GAAOkqC,UAAW31B,QAClB3kB,KAAK6uC,gBAAgBpyC,MAAMi3C,KAAO,GAClC1zC,KAAKs5C,SAASC,cAAc98C,MAAQ,IAE1B,OAARgO,IACFzK,KAAK6uC,gBAAgBpyC,MAAMi3C,KAAO,GAClC1zC,KAAKs5C,SAASC,cAAc98C,MAAQ,GAGxC,CAEOq0C,UAAUqI,GACfn5C,KAAKsyB,WAAY,EACjB,MAAM0K,EAAQh9B,KAAK0zC,KAAK1vB,QAAQm1B,GAC5Bnc,GAAS,GACXh9B,KAAK0zC,KAAKvgB,OAAO6J,EAAO,EAE5B,CAIO2W,wBACL7xC,OAAOwW,OAAO,EAAG,GASlBtY,KAAKu6C,gCAAkCv6C,KAAK8oB,YAAY9H,4BAA4BhhB,KAAKwD,QAR1E,CACZ6H,YAAe,SACf7B,SAAY,GACZuB,WAAc,GACdC,YAAe,EACfkD,iBAAoB,GACpB5C,cAAiB,wCAEuFgE,UAAU,CAClH/K,KAAOqwB,IACa50B,KAAK8S,OAAOV,KAAKy6B,GAA4B,CAC7Dx6B,MAAO,MACPmoC,WAAW,EACXv6C,KAAM20B,GACP,EAEH7xB,MAAQiB,OAGZ,CAEOkqC,WAAWzjC,GAChB,GAAIzK,KAAK6uC,gBAAgB/iB,QACvB9rB,KAAK8oB,YAAYzH,eAAe,mBAE3B,CACLrhB,KAAKksB,WAAY,EACjB,IACIqsB,EADAp4B,EAAWngB,KAAK6uC,gBAAgBpyC,MAGlC87C,EADEyB,MAAMS,SAASt6B,EAASg2B,eAAiB6D,MAAMS,SAASt6B,EAASi2B,gBAC1D,GACA4D,MAAMS,SAASt6B,EAASg2B,cACxBsE,SAASt6B,EAASi2B,eAClB4D,MAAMS,SAASt6B,EAASi2B,gBACS,GAAjCqE,SAASt6B,EAASg2B,aAEgB,GAAjCsE,SAASt6B,EAASg2B,aAAqBsE,SAASt6B,EAASi2B,eAIrE,IAAInd,GACAG,GAAejZ,EAASwT,UACxB0F,GAAiBD,GAAa7O,OAAQld,IAA+B,GAAlBA,GAAInQ,YAA2C,IAArBmQ,GAAI6oB,eACrFkD,GAAeA,GAAa7O,OAAQld,IAAkC,IAArBA,GAAI6oB,eAIrD,IACIoD,GADArD,GADkB9V,EAASwT,UACKpJ,OAAQld,IAAkC,IAArBA,GAAI6oB,eAEzDD,IACFA,GAAcsD,QAASC,KACrBF,GAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKwD,QAAU,YAAcg2B,GAAQnC,WAAa,YAClGiC,IAASt5B,KAAK8xB,cAAc1F,KAAKkN,GAAO,GAG5CF,KACFH,GAAgBj5B,KAAK0xB,cAAc+H,aAAaL,KAKlD,IAAIF,GACAQ,GAAavZ,EAASsT,OACtBkG,GAAeD,GAAWnP,OAAQld,IAA+B,GAAlBA,GAAInQ,YAAyC,IAAnBmQ,GAAIgpB,aACjFqD,GAAaA,GAAWnP,OAAQld,IAAgC,IAAnBA,GAAIgpB,aAIjD,IAAID,GADejW,EAASsT,OACGlJ,OAAQld,IAAgC,IAAnBA,GAAIgpB,aACpDD,IACFA,GAAYmD,QAASC,KACfA,GAAQxb,WACVsb,GAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKwD,QAAU,UAAYg2B,GAAQxb,SAAW,YAC9Fsb,IAASt5B,KAAK8xB,cAAc1F,KAAKkN,IAAO,GAK9CI,KACFR,GAAcl5B,KAAK0xB,cAAckI,UAAUF,KAK7C,IAAIP,GACAU,GAAa1Z,EAASmT,OACtBwG,GAAeD,GAAWtP,OAAQld,IAA+B,GAAlBA,GAAInQ,YAAyC,IAAnBmQ,GAAI0oB,aACjF8D,GAAaA,GAAWtP,OAAQld,IAAgC,IAAnBA,GAAI0oB,aAIjD,IAAID,GADe3V,EAASmT,OACG/I,OAAQld,IAAgC,IAAnBA,GAAI0oB,aACpDD,IACFA,GAAYyD,QAASC,KACfA,GAAQtC,WACVoC,GAAUt5B,KAAK0E,KAAK/D,IAAIsB,IAAYW,IAAM,QAAU5C,KAAKwD,QAAU,UAAYg2B,GAAQtC,SAAW,YAC9FoC,IAASt5B,KAAK8xB,cAAc1F,KAAKkN,IAAO,GAI9CO,KACFV,GAAcn5B,KAAK0xB,cAAcqI,UAAUF,KAIzC1Z,EAAS+2B,cAAcr2C,OAAS,KAAIsf,EAAS+2B,cAAgB,IAC7D/2B,EAASm3B,gBAAgBz2C,OAAS,KAAIsf,EAASm3B,gBAAkB,IACrEt3C,KAAK06C,uBAAuBxhB,GAAa,SACzCl5B,KAAK06C,uBAAuBvhB,GAAa,SACzChZ,EAASnM,IAASmM,EAASnM,IAAMjI,KAAOoU,EAASnM,KAAK/H,OAAO,cAAgB,GAC3EkU,EAASw6B,IAASx6B,EAASnM,IAAMjI,OAAS6uC,KAAKz6B,EAASnM,IAAK,QAAU,GACzEmM,EAASo4B,OAAYA,EACrBp4B,EAAS7L,oBAAyB6L,EAAS7L,oBAAsBvI,KAAOoU,EAAS7L,qBAAqBrI,OAAO,cAAgB,GAC3HkU,EAAS5L,oBAAyB4L,EAAS5L,oBAAsBxI,KAAOoU,EAAS5L,qBAAqBtI,OAAO,cAAgB,GAC7HkU,EAASy2B,YAAiBz2B,EAASy2B,YAAc,IAAM,IACzDz2B,EAAS02B,YAAiB12B,EAAS02B,YAAc,IAAM,IACvD12B,EAASw2B,aAAkBx2B,EAASw2B,aAAe,IAAM,IACzDx2B,EAAS22B,YAAiB32B,EAAS22B,YAAc,IAAM,IACvD32B,EAASrc,WAAgB9D,KAAK8d,cAAcha,WAC5Cqc,EAASzV,QAAa1K,KAAK8d,cAAcpT,QACzCyV,EAAS8a,mBAAwB5B,GAAe,IAAIhC,WAAagC,GAAe,IAAIhC,WAAa,GACjGlX,EAAS8T,sBAA2Bj0B,KAAK8d,cAAcmW,sBACvD9T,EAAS9K,gBAAqB,CAC5BA,iBAAiB,EACjBlB,SAAUklB,GAAe,IAAIllB,SAAWklB,GAAe,IAAIllB,SAAW,GACtEmD,SAAU+hB,GAAe,IAAI/hB,SAAW+hB,GAAe,IAAI/hB,SAAW,GACtE+f,WAAYgC,GAAe,IAAIhC,WAAagC,GAAe,IAAIhC,WAAa,GAC5ED,gBAAiBiC,GAAe,IAAIjC,gBAAkBiC,GAAe,IAAIjC,gBAAkB,GAC3FE,IAAK+B,GAAe,IAAI/B,IAAM+B,GAAe,IAAI/B,IAAM,GACvDljB,KAAMilB,GAAe,IAAIjlB,KAAOilB,GAAe,IAAIjlB,KAAO,GAC1DmjB,WAAY8B,GAAe,IAAI9B,WAAa8B,GAAe,IAAI9B,WAAa,GAC5E4iB,OAAQ9gB,GAAe,IAAI8gB,OAAS9gB,GAAe,IAAI8gB,OAAS,GAEhE3iB,YAAa6B,GAAe,IAAI7B,YAAc6B,GAAe,IAAI7B,YAAc,GAC/E7gB,SAAU0iB,GAAe,IAAI1iB,SAAW0iB,GAAe,IAAI1iB,SAAW,GACtEtC,IAAKglB,GAAe,IAAIhlB,IAAMglB,GAAe,IAAIhlB,IAAM,GACvDojB,MAAO4B,GAAe,IAAI5B,MAAQ4B,GAAe,IAAI5B,MAAQ,IAE/DtX,EAASgb,iBAAsBxB,GAAa,IAAI3b,SAAW2b,GAAa,IAAI3b,SAAW,GACvFmC,EAASjL,cAAmB,CAC1BA,eAAe,EACfjB,MAAO0lB,GAAa,IAAI1lB,MAAQ0lB,GAAa,IAAI1lB,MAAQ,GACzD+J,SAAU2b,GAAa,IAAI3b,SAAW2b,GAAa,IAAI3b,SAAW,GAClEmZ,WAAYwC,GAAa,IAAIxC,WAAawC,GAAa,IAAIxC,WAAa,IAE1EhX,EAAS+a,iBAAsBpB,GAAa,IAAI5C,SAAW4C,GAAa,IAAI5C,SAAW,GACrF/W,EAAS3J,cAAmB,CAC1BA,eAAe,EACftC,MAAO4lB,GAAa,IAAI5lB,MAAQ4lB,GAAa,IAAI5lB,MAAQ,GACzD+iB,UAAW6C,GAAa,IAAI7C,UAAY6C,GAAa,IAAI7C,UAAY,GACrEC,SAAU4C,GAAa,IAAI5C,SAAW4C,GAAa,IAAI5C,SAAW,GAClEH,WAAY+C,GAAa,IAAI/C,WAAa+C,GAAa,IAAI/C,WAAa,IAE1E5W,EAASwT,UAAesF,GACxB9Y,EAAS62B,UAAe72B,EAAS62B,UACjC72B,EAASsT,OAAYyF,GACrB/Y,EAASywB,kBAAuB5wC,KAAK8d,cAAc8yB,kBAAoB5wC,KAAK8d,cAAc8yB,kBAAoB,GAC9GzwB,EAASmT,OAAY6F,GACrBhZ,EAASuzB,KAAU1zC,KAAK0zC,KACxBvzB,EAAS+2B,cAAmB,CAAEngB,WAAc5W,EAAS82B,mBAAoB/iC,MAASlU,KAAK0xB,cAAc8mB,eAAer4B,EAAS+2B,eAAgBjgB,UAAa,IAC1J9W,EAASm3B,gBAAqB,CAAEvgB,WAAc5W,EAASk3B,qBAAsBnjC,MAASlU,KAAK0xB,cAAc8mB,eAAer4B,EAASm3B,iBAAkBrgB,UAAa,IAChK9W,EAASivB,eAAoBjvB,GAAUs2B,iBACvCz2C,KAAK66C,iBAAiB16B,GACpBngB,KAAK8xB,cAAcjxB,OAAS,KAC9Bm5B,MAASh6B,KAAK8xB,eAAexiB,UAAU,CACrC/K,KAAOqwB,KACDA,IACF50B,KAAK4d,gBAAgB5d,KAAKwD,QAAS2c,EAAU1V,EAAI,EAErD1H,MAAQiB,KACNhE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,GAAIjB,MAAMyM,SAElBxP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAUA,SAGZjqB,KAAK4d,gBAAgB5d,KAAKwD,QAAS2c,EAAU1V,EAEjD,CACF,CAEQowC,iBAAiB16B,GACvB,OAAIA,WACKA,EAAS82B,0BACT92B,EAASk3B,4BACTl3B,EAASg2B,mBACTh2B,EAASi2B,qBACTj2B,EAASi3B,oBAEkB,IAAhCj3B,EAAS+2B,cAAchjC,QACzBiM,EAASm4B,iBAAsB,UACxBn4B,EAAS+2B,eAEoB,IAAlC/2B,EAASm3B,gBAAgBpjC,QACRiM,EAASk4B,mBAA5Br4C,KAAK+zC,YAA+C,GAAsC/zC,KAAK8d,aAAaw6B,wBACrGn4B,EAASm3B,iBAEXn3B,CACT,CAEQu6B,uBAAuBI,EAAuBrwC,GACpD,IAAIuyB,EAAQ8d,EAAiBC,UAAWC,IAAsB,IAAXA,GAAEvwC,IACrD,OAAa,GAATuyB,GACF8d,EAAiB3nB,OAAO6J,EAAO,GAE1B8d,CACT,CAEOhL,sBACL,SAAU9vC,KAAK8d,cAAcsxB,gBAAmBpvC,KAAK0xB,cAAcgnB,cAAc,+BAAiC14C,KAAKs0C,kBAAoBt0C,KAAKs0C,kBAAkBzzC,OAAS,GAAMb,KAAK0xB,cAAcgnB,cAAc,cACpN,CAGO7wB,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAKy1C,gBAAgBtqB,cAAY,EAC/CD,EACL,CAEOgG,eACDlxB,KAAK6uC,gBAAgBlY,SAGzB32B,KAAK8S,OAAO0oB,WAFZx7B,KAAK0xB,cAAcwL,sBAGrB,CAEOiU,sBAAsB/gC,GAE3B,MAAM6qC,EADe7qC,EAAMuT,OACSlnB,MAAMu7C,QAAQ,aAAc,IAChEh4C,KAAK6uC,gBAAgB7b,SAAS+iB,MAASmF,SAASD,EAAgB,CAC9DxC,WAAW,GAEf,CAEQ76B,gBAAgBhP,EAAgB1L,EAAcuH,GACrDzK,KAAKm7C,oBAAuBn7C,KAAK8oB,YAAYlL,gBAAgBhP,EAAQ1L,GAASoM,UAAU,CACrF/K,KAAOqwB,KACL50B,KAAK8xB,cAAgB,GACrB9xB,KAAK8oB,YAAYhL,aAAe8W,GAChC50B,KAAKwP,QAAU,CACb/E,KAAM,UACNjO,KAAM,4CAAmD0G,EAAQ4Q,MAAQ,IAAM5Q,EAAQ6Q,MAAQ,KAEjG/T,KAAK6nB,aAAa,MACN,SAARpd,GACFzK,KAAKsyB,WAAY,EACjBtyB,KAAKksB,WAAY,EACjBlsB,KAAK8oB,YAAYhL,aAAe8W,GAChC50B,KAAK8oB,YAAYnO,eAAe,eAChC3a,KAAKgkC,aACLhkC,KAAKy1C,gBAAgB9jC,YAAY,4CAAmDzO,EAAQ4Q,MAAQ,IAAM5Q,EAAQ6Q,MAAQ,OAE1H/T,KAAKkd,iBACLld,KAAK8oB,YAAYhL,aAAe8W,GAChC50B,KAAK6uC,gBAAgBpT,iBACrBz7B,KAAKsyB,WAAY,IAGrBvvB,MAAQiB,KACNhE,KAAKksB,WAAY,EACjBlsB,KAAKsyB,WAAY,EACjBtyB,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,GAAIjB,MAAMyM,SAElBxP,KAAK6nB,aAAa,IAAK,GAG7B,CAEOmc,aACLhkC,KAAK8S,OAAO0oB,UACd,CAEOpQ,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WACtBjqB,KAAK20B,kBAAkB30B,KAAK20B,iBAAiBtJ,cAC7CrrB,KAAKi4C,mBAAmBj4C,KAAKi4C,kBAAkB5sB,cAC/CrrB,KAAK44C,sBAAsB54C,KAAK44C,qBAAqBvtB,cACrDrrB,KAAK64C,iBAAiB74C,KAAK64C,gBAAgBxtB,cAC3CrrB,KAAK84C,qBAAqB94C,KAAK84C,oBAAoBztB,cACnDrrB,KAAK+4C,mBAAmB/4C,KAAK+4C,kBAAkB1tB,cAC/CrrB,KAAKg5C,oBAAoBh5C,KAAKg5C,mBAAmB3tB,cACjDrrB,KAAKi5C,kBAAkBj5C,KAAKi5C,iBAAiB5tB,cAC7CrrB,KAAK25C,wBAAwB35C,KAAK25C,uBAAuBtuB,cACzDrrB,KAAKo6C,qBAAqBp6C,KAAKo6C,oBAAoB/uB,cACnDrrB,KAAKu6C,iCAAiCv6C,KAAKu6C,gCAAgClvB,cAC3ErrB,KAAKm7C,qBAAqBn7C,KAAKm7C,oBAAoB9vB,cACvDrrB,KAAK6uC,gBAAgBpT,gBACvB,iDAt8BWvoB,GAAmB9Q,MAqDpBkO,MAAelO,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,KAAAnO,MAAAmQ,OAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,MAAAlpB,MAAAmpB,MAAAnpB,MAAAkpB,MAAA,oCArDdpY,EAAmB1C,UAAA,sBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,0wMDtB5BzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,kBAAYA,MAAA,EAAAg5C,GAAA,uBAA4Hh5C,QAC7JA,MAAA,EAAAi5C,GAAA,iBAGFj5C,QACAA,MAAA,EAAAk5C,GAAA,cAOAl5C,MAAA,iBAEAA,MAAA,YAaEA,MAZA,EAAAm5C,GAAA,sBAYAn5C,CAZmC,GAAAo5C,GAAA,sBAYnCp5C,CANoD,GAAAq5C,GAAA,4BAAAr5C,OAqVtDA,QAEAA,MAAA,aACEA,MAAA,GAAAs5C,GAAA,uBAMJt5C,mCAnXoDA,MAAA,GAAAA,MAAA,OAAA0O,EAAAgN,cACzB1b,cAAA,QAAA0O,EAAAob,WAInB9pB,cAAA,QAAA0O,EAAAob,WAUW9pB,MAAA,GAAAA,MAAA,OAAA0O,EAAAtB,QAAA/E,MAMArI,QAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAAu5C,IAwVjBv5C,MAAA,GAAAA,MAAA,QAAA0O,EAAAob,g5BCvVNhZ,CAAmB,+MCjBZ9Q,MAAA,GACIA,MAAA,UAAMA,MAAA,GAAsEA,sCAAtEA,MAAA,GAAAA,MAAA,4BAAA+iC,EAAAyW,gBAAA,OAAAzW,EAAA0W,kBAAA,6BAWVz5C,MAAA,WAAoDA,MAAA,aAAMA,mCAC1DA,MAAA,WAAqDA,MAAA,GAAqBA,mCAArBA,cAAA,IAAA05C,EAAAC,SAAA,6BAKrD35C,MAAA,WAAuCA,MAAA,4BAAqBA,mCAC5DA,MAAA,WAAwCA,MAAA,GAAmBA,mCAAnBA,cAAA,IAAA45C,EAAAC,OAAA,6BAKxC75C,MAAA,WAAuCA,MAAA,2BAAoBA,oCAC3DA,MAAA,WAAwCA,MAAA,GAAmBA,mCAAnBA,cAAA,IAAA85C,EAAAC,OAAA,4BAG5C/5C,MAAA,iCACAA,MAAA,WCzBT,IAAMg6C,EAAwB,MAA/B,MAAOA,EAWXt8C,YACUu8C,GAAAr8C,KAAAq8C,mBAVFr8C,KAAA4xB,qBAAuB,IAAIrxB,IAE5BP,KAAAiqC,iBAA6B,CAAC,WAAY,SAAU,UAGpDjqC,KAAAs8C,qBAA+B,EAC/Bt8C,KAAAu8C,mBAA6B,CAMpC,CAEAttC,WACMjP,KAAKwD,SACRxD,KAAKw8C,gBAER,CAEOA,iBACLx8C,KAAKq8C,iBAAiB94C,mBAAmBvD,KAAKwD,SAASX,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU,CAC1G/K,KAAOqwB,IAOL,GANIA,GAAU6nB,oBACZz8C,KAAK47C,gBAAkBhnB,EAAS6nB,mBAE9B7nB,GAAU8nB,uBACZ18C,KAAK67C,kBAAoBjnB,EAAS8nB,sBAEhC9nB,GAAU+nB,SAAS97C,OAAS,EAAG,CACjCb,KAAKu8C,mBAAoB,EACzB,MAAMK,EAA2BhoB,EAAS+nB,QAAQt4C,IAAKuoB,KACrD,MAAM+I,GAAMH,OAAOC,KAAK7I,IAAQ,GAChC,MAAO,CACLmvB,SAAUpmB,GACVwmB,OAAQvvB,GAAO+I,IAAKknB,IACpBZ,OAAQrvB,GAAO+I,IAAKmnB,OAGxB98C,KAAK+8C,kBAAoB,IAAI/qB,KAAmB4qB,EAClD,MACE58C,KAAKu8C,mBAAoB,GAG7Bx5C,MAAQiB,GAAag5C,QAAQj6C,MAAMiB,IAEvC,CAEAonB,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,iDArDWmyB,GAAwBh6C,MAAAC,KAAA,oCAAxB+5C,EAAwB5rC,UAAA,4BAAA8zB,OAAA,CAAA9gC,QAAA,WAAAiN,MAAA,GAAAC,KAAA,GAAAC,OAAA,0sBAAAC,SAAA,SAAAC,EAAAC,IAAA,EAAAD,IDVjCzO,MADJ,UACIA,CADyE,2BACbA,MAAvC,2BAAA0O,GAAAwrC,qBAAgC,CAAK,EAAEl6C,CAAD,2BAAA0O,GAAAwrC,qBAAiC,CAAI,GAIpFl6C,MAFR,iCAEQA,CAF2F,oBAE3FA,CADa,WAGTA,MAAA,EAAA66C,EAAA,sBAMZ76C,YACAA,MAAA,UAAMA,MAAA,2DAAqDA,QAEvDA,MADJ,UACIA,CADyB,aAGrBA,MAAA,MAEIA,MADA,GAAA86C,EAAA,WACA96C,CADmD,GAAA+6C,EAAA,oBAKvD/6C,MAAA,OAEIA,MADA,GAAAg7C,EAAA,YACAh7C,CADsC,GAAAi7C,EAAA,qBAK1Cj7C,MAAA,OAEIA,MADA,GAAAk7C,EAAA,YACAl7C,CADsC,GAAAm7C,GAAA,qBAK1Cn7C,MADA,GAAAo7C,EAAA,YACAp7C,CADuD,GAAAq7C,EAAA,aAG/Dr7C,UACAA,MAAA,WAAMA,MAAA,qFAGdA,mBA1C8BA,MAAA,UAAAA,MAAA,EAAAg/B,GAAAtwB,GAAA8qC,kBAEtBx5C,cAAA,WAAA0O,GAAAyrC,mBAC4Bn6C,cAAA,UAAAA,MAAA,EAAAs7C,EAAA5sC,GAAAwrC,sBAAAxrC,GAAAyrC,oBAIDn6C,MAAA,GAAAA,MAAA,OAAA0O,GAAA8qC,iBASNx5C,MAAA,GAAAA,MAAA,aAAA0O,GAAAisC,mBAmBO36C,MAAA,IAAAA,MAAA,kBAAA0O,GAAAm5B,kBACa7nC,cAAA,mBAAA0O,GAAAm5B,q0BCzBpCmS,CAAwB,+HCX9B,IAAMuB,EAAU,MAAjB,MAAOA,UACK39C,KAAA49C,KAAe,MAAO,QACtB59C,KAAA69C,KAAe,MAAO,QACtB79C,KAAA89C,MAAgB,OAAQ,CAE/B,oBAAOxwC,GACV,MAAO,CACH,CAAE3N,GAAIg+C,GAAWC,KAAMnhD,MAAOkhD,GAAWC,KAAKlE,eAC9C,CAAE/5C,GAAIg+C,GAAWE,KAAMphD,MAAOkhD,GAAWE,KAAKnE,eAC9C,CAAE/5C,GAAIg+C,GAAWG,MAAOrhD,MAAOkhD,GAAWG,MAAMpE,eAExD,SAXSiE,EAAU,KCAVI,EAAU,MAAjB,MAAOA,UACK/9C,KAAA49C,KAAe,MAAO,QACtB59C,KAAAg+C,OAAiB,QAAS,QAC1Bh+C,KAAA69C,KAAe,MAAO,QACtB79C,KAAAi+C,IAAc,KAAM,QACpBj+C,KAAA89C,MAAgB,OAAQ,CAE/B,oBAAOvwC,GACV,MAAO,CACH,CAAE5N,GAAIo+C,GAAWH,KAAMnhD,MAAOshD,GAAWH,KAAKlE,eAC9C,CAAE/5C,GAAIo+C,GAAWC,OAAQvhD,MAAOshD,GAAWC,OAAOtE,eAClD,CAAE/5C,GAAIo+C,GAAWF,KAAMphD,MAAOshD,GAAWF,KAAKnE,eAC9C,CAAE/5C,GAAIo+C,GAAWE,IAAKxhD,MAAOshD,GAAWE,IAAIvE,eAC5C,CAAE/5C,GAAIo+C,GAAWD,MAAOrhD,MAAOshD,GAAWD,MAAMpE,eAExD,SAfSqE,EAAU,gUCSnB37C,MAAA,GACEA,MAAA,gCAA4DA,MAAA,yBAAAA,MAAAulB,IAAA,MAAAC,GAAAxlB,QAAA,OAAAA,MAAewlB,GAAAC,aAAa,GAAE,GACxFzlB,MAAA,OAAGA,MAAA,GACLA,4CAFsCA,cAAA,OAAAwlB,GAAApY,QAAA/E,MACjCrI,MAAA,GAAAA,MAAAwlB,GAAApY,QAAAhT,gCASD4F,MAAA,iBAAyEA,MAAA,qCAA+BA,mCACxGA,MAAA,eAAmDA,MAAA,qCAA+BA,kCAMlFA,MAAA,iBAAyEA,MAAA,qCAA+BA,mCACxGA,MAAA,eAAmDA,MAAA,oCAA8BA,qCAQ/EA,MAAA,+CAAgDA,MAAA,QAAA87C,GAAA//B,eAA8B/b,MAAA,YAAA87C,GAAA7qB,QAAAjxB,iCAEhFA,MAAA,eAA2DA,MAAA,mDAA6CA,oCAOpGA,MAAA,oDAAwCA,MAAA,QAAA+7C,GAAA3O,eAAgCptC,MAAA,YAAA+7C,GAAA3O,cAAAptC,oCAD1EA,MAAA,GACEA,MAAA,EAAAg8C,EAAA,0DAAah8C,cAAA,YAAA+7C,GAAA5wB,kCAGjBnrB,MAAA,eAAyDA,MAAA,wCAAkCA,qDAd3FA,MAFJ,UAEIA,CAF4E,qBAE5EA,CAD2B,eAChBA,MAAA,8BAAwBA,QACnCA,MAAA,mBAAqDA,MAAA,2BAAA2O,IAAA3O,MAAA0qB,IAAA,MAAAlF,GAAAxlB,QAAA,OAAAA,MAAmBwlB,GAAA+qB,UAAA5hC,GAAAtU,OAAuB,GAC7F2F,MAAA,EAAAi8C,GAAA,qBACFj8C,QACAA,MAAA,EAAAk8C,EAAA,mBACFl8C,QAGEA,MADF,qBACEA,CAD2B,eAChBA,MAAA,mBAAaA,QACxBA,MAAA,oBACEA,MAAA,GAAAm8C,EAAA,uBAGFn8C,QACAA,MAAA,GAAAo8C,EAAA,mBAEJp8C,oCAdkCA,MAAA,GAAAA,MAAA,UAAAwlB,GAAA2sB,iBAElBnyC,cAAA,OAAAwlB,GAAAiL,WAAA,6BAMsBzwB,MAAA,GAAAA,MAAA,UAAAwlB,GAAAmoB,eAItB3tC,cAAA,OAAAwlB,GAAAiL,WAAA,wDAOVzwB,MAAA,mBAA2EA,MAAA,GAAkBA,qCAA5CA,MAAA,QAAAq8C,GAAAhiD,OAA0B2F,cAAAq8C,GAAA9+C,8BAK7EyC,MAAA,eAAwDA,MAAA,uCAAiCA,sCAKvFA,MAAA,mBAA2EA,MAAA,GAAkBA,qCAA5CA,MAAA,QAAAs8C,GAAAjiD,OAA0B2F,cAAAs8C,GAAA/+C,+BAK7EyC,MAAA,eAAkDA,MAAA,wCAAkCA,mCAQpFA,MAAA,eAAoDA,MAAA,kCAA4BA,sDAsB5EA,MAAA,mBAAgEA,MAAA,mBAAAA,MAAA+sB,IAAA,MAAAwvB,GAAAv8C,QAAAmuB,UAAA3I,GAAAxlB,QAAA,OAAAA,MAASwlB,GAAAg3B,aAAAD,IAAmB,GAAiCv8C,MAAA,GAAwBA,uCAAvDA,MAAA,cAAAy8C,GAAA,KAAAA,GAAAC,aAA+B18C,cAAA,UAAAy8C,GAAA,KAAAA,GAAAC,YAAA,mCAD/H18C,MAAA,qBACEA,MAAA,EAAA28C,GAAA,qBACF38C,qCAF4DA,MAAA,QAAAu8C,GAAAK,YAC3B58C,cAAA,UAAAu8C,GAAAM,wCAQjC78C,MAAA,mBAAuEA,MAAA,GAAuBA,qCAArDA,MAAA,cAAA88C,GAAA,KAAAA,GAAAhQ,cAA8B9sC,cAAA,MAAA88C,GAAA,KAAAA,GAAAhQ,4DAiB/E9sC,MAAA,eAA+EA,MAAA,mBAAAA,MAAA0tB,IAAA,MAAAlI,GAAAxlB,QAAA,OAAAA,MAASwlB,GAAAu3B,QAAQ,UAAS,GAAE/8C,MAAA,SAAGA,kCAA5DA,MAAA,WAAAwlB,GAAA6Z,+DAClDr/B,MAAA,eAA+EA,MAAA,mBAAAA,MAAAkuB,IAAA,MAAA1I,GAAAxlB,QAAA,OAAAA,MAASwlB,GAAAu3B,QAAQ,WAAU,GAAE/8C,MAAA,mBAAaA,kCAAvEA,MAAA,WAAAwlB,GAAA6Z,kBCpG/C,IAAM2d,GAAgB,MAAvB,MAAOA,GAmBXt/C,YACU4lB,GACA25B,GACAC,GACAC,GACApuC,GACAskC,GACAnnC,GACDuE,GACAC,GACyB0sC,IATxBx/C,KAAA0lB,gBACA1lB,KAAAq/C,aACAr/C,KAAAs/C,OACAt/C,KAAAu/C,gBACAv/C,KAAAmR,WACAnR,KAAAy1C,mBACAz1C,KAAAsO,kBACDtO,KAAA6S,aACA7S,KAAA8S,UACyB9S,KAAAw/C,YA3B1Bx/C,KAAA4xB,qBAAuB,IAAIrxB,IAI5BP,KAAAmiC,QAAe/lC,KACf4D,KAAAy/C,WAAkB,GAClBz/C,KAAA0/C,OAAUz/C,EACVD,KAAAsrC,QAAgB,IAAIt/B,KACpBhM,KAAAwP,QAAe,GACfxP,KAAA2/C,cAAwB,EACxB3/C,KAAAu0C,gBAAuB,GACvBv0C,KAAA+vC,cAAqB,GACrB/vC,KAAAyhC,iBAA2B,EAE3BzhC,KAAA4/C,WAAa7B,EAAWxwC,gBACxBvN,KAAA6/C,WAAalC,EAAWrwC,gBAgGxBtN,KAAA6yB,WAAa,CAACC,GAAqBC,KACjC/yB,KAAK8/C,YAAY9sB,SAASF,IAAaG,SAASF,IAnFvD/yB,KAAKwiC,OAAS,IAAIC,KAElBziC,KAAK8/C,YAAc9/C,KAAKs/C,IAAIj2B,MAAM,CAChCvV,MAAO,CAAC,GAAIyV,KAAWC,UACvBzV,MAAO,CAAC,GAAIwV,KAAWC,UACvBrL,cAAe,CAAC,IAChBuxB,YAAa,CAAC,IACd3Y,WAAY,CAAC,QACb7iB,MAAO,CAAC,IACRijB,WAAY,CAAC,QACbljB,MAAO,CAAC,GAAI,CAACsV,KAAW2F,QAAQ1vB,KAAkBC,SAClDuU,IAAK,CAAC,GAAI,CAACgiC,KAAkBC,OAC7B7iB,OAAQ,CAAC,IACT/e,IAAK,CAAC,IACN8lC,OAAQ,CAAC,IACTxjC,SAAU,CAAC,IACXopC,QAAS,CAAC,IACVC,MAAO,CAAC,KAGZ,CAEA/wC,WACMjP,KAAK0lB,aAAalH,aAAa1a,YAAiB7B,IAAYwH,yBAC9DzJ,KAAK2/C,cAAe,EACpB3/C,KAAK8/C,YAAY9sB,SAAS7U,cAAiB8hC,cAAc12B,KAAWC,UACpExpB,KAAK8/C,YAAY9sB,SAAS0c,YAAeuQ,cAAc12B,KAAWC,UAElExpB,KAAK8/C,YAAY9sB,SAAS7U,cAAiB+hC,yBAC3ClgD,KAAK8/C,YAAY9sB,SAAS0c,YAAewQ,yBACzClgD,KAAK63C,iBAGH73C,KAAKw/C,UACPx/C,KAAKmgD,aACT,CAEO/0B,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,CAGQ4tB,gBACN73C,KAAKu/C,aAAa9hC,cAAc,YAC7B5a,QAAKyyB,MAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOimB,KACM,IAAPA,IAAaA,GAAI3pB,OAAS,IAC5Bb,KAAKu0C,gBAAkB/pB,KAE3BznB,MAAQiB,KACNhE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKwL,SAEbxP,KAAK6nB,aAAa,IAAK,GAG/B,CAEO8qB,UAAUx0B,IACfne,KAAKuJ,gBAAgB4U,GACvB,CAEQ5U,gBAAgB4U,IACtBne,KAAKu/C,aAAah2C,gBAAgB4U,IAC/Btb,QAAKyyB,MAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOimB,KACM,IAAPA,IAAaA,GAAI3pB,OAAS,IAC5Bb,KAAK+vC,cAAgBvlB,KACtBznB,MAAQiB,KACThE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKwL,SAEbxP,KAAK6nB,aAAa,IAAK,GAG/B,CAMOs3B,QAAQ10C,IACb,IACI8tC,GADA3U,GAAY5jC,KAAK8/C,YAAYrjD,MAE7BuD,KAAKw/C,UAAUY,MAAMv/C,SACvB03C,GAAkD,IAAzCv4C,KAAKw/C,UAAUY,OAAO,IAAIjK,aAAgE,IAA3Cn2C,KAAKw/C,UAAUY,OAAO,IAAIhK,cAC9EiK,OAA+C,GAAxCrgD,KAAKw/C,UAAUY,OAAO,IAAIjK,aAAoBkK,OAAOrgD,KAAKw/C,UAAUY,OAAO,IAAIhK,eACtF,IAGN,IAAI5qC,GAAS,CACXsI,MAAO8vB,IAAW9vB,MAClBC,MAAO6vB,IAAW7vB,SACd/T,KAAKw/C,UAAUY,MAAMv/C,QAAUb,KAAKw/C,UAAUY,OAAO,IAAI/J,QAAW,CAAEA,OAAQr2C,KAAKw/C,UAAUY,OAAO,IAAI/J,WACxGr2C,KAAKw/C,UAAUY,MAAMv/C,QAAUb,KAAKw/C,UAAUY,OAAO,IAAIE,aAAgB,CAAEhsC,oBAAqBvI,IAAO/L,KAAKw/C,UAAUY,OAAO,IAAIE,aAAar0C,OAAO,kBACrJjM,KAAKw/C,UAAUY,MAAMv/C,QAAUb,KAAKw/C,UAAUY,OAAO,IAAIG,aAAgB,CAAEhsC,oBAAqBxI,IAAO/L,KAAKw/C,UAAUY,OAAO,IAAIG,aAAat0C,OAAO,kBACrJjM,KAAKw/C,UAAUY,MAAMv/C,SAAWb,KAAKw/C,UAAUY,OAAO,IAAIjK,aAAen2C,KAAKw/C,UAAUY,OAAO,IAAIhK,gBAAmB,CAAEmC,OAAQA,OAChI3U,IAAWzlB,eAAkB,CAAEA,cAAeylB,IAAWzlB,kBACzDylB,IAAW8L,aAAgB,CAAEA,YAAa9L,IAAW8L,gBACrD9L,IAAWxQ,QAAW,CAAEA,OAAQwQ,IAAWxQ,WAC3CwQ,IAAW5vB,KAAQ,CAAEA,IAAKhU,KAAKq/C,UAAUztC,UAAUgyB,IAAW5vB,IAAK,kBACnE4vB,IAAW1vB,OAAU,CACvBof,OAAQ,CAAC,CACPyD,WAAY6M,IAAW7M,WACvB7iB,MAAO0vB,IAAW1vB,MAAM8jC,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,IAAK,UAIxFpU,IAAW3vB,OAAU,CACvBwf,OAAQ,CAAC,CACP0D,WAAYyM,IAAWzM,WACvBljB,MAAO2vB,IAAW3vB,aAIlB2vB,IAAWuW,QAAUn6C,KAAKw/C,WAAa,CACzC7rB,UAAW,CAAC,CACVyD,gBAAiB,OACjB/iB,IAAKuvB,IAAWvvB,IAAMuvB,IAAWvvB,IAAM,GACvC8lC,OAAQvW,IAAWuW,OAASvW,IAAWuW,OAAS,GAChDxjC,SAAUitB,IAAWjtB,SAAWitB,IAAWjtB,SAAW,MAI1DjM,QAAS1K,KAAK0lB,aAAa9jB,WAAW8I,QACtC5G,WAAY,GAAG9D,KAAK0lB,aAAa5hB,aACjCusC,aAAc,KAGhBrwC,KAAKyhC,iBAAkB,EAEvBzhC,KAAKu/C,aAAarjC,WAAW1Q,IAC1B3I,QAAKyyB,MAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOimB,KACLxqB,KAAKyhC,iBAAkB,EACvBzhC,KAAKwgD,UAAU,8BAEXxgD,KAAKw/C,UACPx/C,KAAKu/C,aAAavlC,cAAe,EACjCha,KAAKu/C,aAAazhC,aAAe0M,GAErB,UAAR/f,IACFzK,KAAK8S,OAAO0oB,WACRoI,GAAUoc,OAAOhgD,KAAKygD,SAASj2B,GAAIhnB,QAASogC,GAAUoc,SAE1Dl+C,OAAOwW,OAAO,EAAG,GACjBtY,KAAK8S,OAAOV,KAAKc,IAAqB,CACpCjT,KAAMuqB,GAAIhnB,UACTs5B,cAAcxtB,UAAWya,KACtB6Z,GAAUoc,OAAOhgD,KAAKygD,SAASj2B,GAAIhnB,QAASogC,GAAUoc,OAE1DhgD,KAAKmR,QAAQe,SAAS,CAAC,QAAUsY,GAAIhnB,UACrCxD,KAAKu/C,aAAa5kC,eAAe,cAAa,KAMtC,UAARlQ,IACFzK,KAAK8S,OAAO0oB,WACRoI,GAAUoc,OAAOhgD,KAAKygD,SAASj2B,GAAIhnB,QAASogC,GAAUoc,OAE1DhgD,KAAKmR,QAAQe,SAAS,CAAC,QAAUsY,GAAIhnB,UACrCxD,KAAKu/C,aAAa5kC,eAAe,iBAEjC7Y,OAAOwW,OAAO,EAAG,GACjBtY,KAAK8S,OAAOV,KAAKc,IAAqB,CACpCjT,KAAMuqB,GAAIhnB,UACTs5B,cAAcxtB,UAAWya,KACtB6Z,GAAUoc,OAAOhgD,KAAKygD,SAASj2B,GAAIhnB,QAASogC,GAAUoc,OAE1DhgD,KAAKmR,QAAQe,SAAS,CAAC,QAAUsY,GAAIhnB,UACrCxD,KAAKu/C,aAAa5kC,eAAe,cAAa,GAC/C,EAGJ5X,MAAQiB,KACXhE,KAAKyhC,iBAAkB,EACvBzhC,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKjB,OAAOyM,SAEpB,IAAIkxC,GAAmB,GACvB,QAASC,MAAK38C,GAAIjB,MAAMs1B,OAC3B,GAAKr0B,GAAIjB,MAAMs1B,OAAOuoB,eAAeD,IAChC,SAASE,GAAI,EAAGA,GAAI78C,GAAIjB,MAAMs1B,OAAOsoB,IAAG9/C,OAAQggD,KAC9CH,GAAmBA,GAAmB18C,GAAIjB,MAAMs1B,OAAOsoB,IAAGE,IAAGC,QAAU,KAEzE9gD,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKjB,OAAOyM,QAAU,IAAMkxC,IAGtC1gD,KAAK6nB,aAAa,IAAK,GAG7B,CAEO44B,SAASj9C,GAAiBu9C,IAC/B,IAAI79C,GAAU,CACZM,QAASA,GACTw9C,KAAMD,GACNr2C,QAAS1K,KAAK0lB,aAAa9jB,WAAW8I,SAExC1K,KAAKu/C,aAAa5/B,qBAAqBzc,IAASL,QAAKwM,QAASC,UAAU,CACtE/K,KAAOqwB,KAEL50B,KAAKu/C,aAAa78B,qBAAqB,eAAc,EAEvD3f,MAAQiB,KACNhE,KAAKy1C,gBAAgBvlC,UAAUlM,IAAKjB,OAAOyM,QAAO,GAGxD,CAGOqY,aAAaqD,IAClB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAKy1C,gBAAgBtqB,cAAY,EAC/CD,GACL,CAEQ+1B,cACNjhD,KAAK6S,UAAUI,OAAM,EACvB,CAEQutC,UAAUU,IAChBlhD,KAAKihD,aACP,CAGOE,cACuC,GAAxCnhD,KAAK8/C,aAAarjD,OAAO4X,KAAKxT,OAChCb,KAAKu/C,aAAapjC,iBAAiBnc,KAAK8/C,aAAarjD,OAAO4X,KACzDxR,QAAKyyB,MAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOimB,KACDA,GAAI3pB,OAAS,GACfb,KAAK8/C,YAAY91B,WAAW,CAAEmwB,OAAQ,GAAIxjC,SAAU,KACpD3W,KAAKy/C,WAAaj1B,IAAO,GACrBxqB,KAAKy/C,YAAY5+C,SACfb,KAAKy/C,YAAY5+C,OAAS,EACxBb,KAAKy/C,WAAW,IAAIR,SAASp+C,OAAS,EAExCb,KAAK8/C,YAAY91B,WAAW,CAC1BmwB,OAAQn6C,KAAKy/C,WAAW,IAAIR,SAAS,IAAIH,YACzCnoC,SAAU3W,KAAKy/C,WAAW,IAAI9oC,YAIhC3W,KAAK8/C,YAAY91B,WAAW,CAAErT,SAAU3W,KAAKy/C,WAAW,IAAI9oC,WAC5D3W,KAAKsO,eAAe8yC,iBAAiBphD,KAAKy/C,aAG5Cz/C,KAAKsO,eAAe8yC,iBAAiBphD,KAAKy/C,cAI5Bz/C,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,6BAA+BwD,KAAK8/C,aAAarjD,OAAO4X,IAAM,mCACtE5J,KAAQ,QAGFqyB,cAAcxtB,UAAU,KAChCtP,KAAK8/C,YAAY91B,WAAW,CAAEmwB,OAAQ,GAAIxjC,SAAU,GAAItC,IAAK,IAAI,EAClE,EAEFtR,MAAQiB,KACThE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKjB,OAAOyM,SAEpBxP,KAAK6nB,aAAa,IAAK,IAI7B7nB,KAAK8/C,YAAY91B,WAAW,CAAEmwB,OAAQ,GAAIxjC,SAAU,IAExD,CAGQwpC,cACN,GAAIngD,KAAKw/C,UAAUY,MAAMv/C,QAAU,EAAG,CACpC,IAAImT,GAAI,GAENA,GADwB,OAAvBhU,KAAKw/C,UAAU/0C,KACVzK,KAAKw/C,UAAUY,OAAO,IAAIpsC,IAChCjI,IAAO/L,KAAKw/C,UAAUY,OAAO,IAAIpsC,KAAK/H,OAAO,cAC7CF,MAASs1C,SAASrhD,KAAKw/C,UAAUY,OAAO,IAAIzF,IAAK,KAAK2G,QAAQ,QAAQr1C,OAAO,cAEvEjM,KAAKw/C,UAAUY,OAAO,IAAIpsC,IAAMjI,IAAO/L,KAAKw/C,UAAUY,OAAO,IAAIpsC,KAAK/H,OAAO,cAAgB,GAErGjM,KAAK8/C,YAAY91B,WAAW,CAC1BhW,IAAKA,GACLof,OAAQpzB,KAAKw/C,UAAUY,OAAO,IAAIhtB,OAClC/e,IAAKrU,KAAKw/C,UAAUY,OAAO,IAAI/rC,IAC/BsC,SAAU3W,KAAKw/C,UAAUY,KAAK,IAAIjuC,OAAOwE,SAAW3W,KAAKw/C,UAAUY,KAAK,IAAIjuC,OAAOwE,SAAW3W,KAAKw/C,UAAUY,KAAK,IAAIzpC,SAAW3W,KAAKw/C,UAAUY,KAAK,IAAIzpC,SAAW3W,KAAKw/C,UAAUY,KAAK,IAAIjuC,QAE9LnS,KAAKuhD,WACP,CACF,CAEO3C,aAAa4C,IAClBxhD,KAAK8/C,YAAY91B,WAAW,CAAErT,SAAU6qC,GAAQ7qC,UAClD,CAEO8qC,YAAYrxC,IACjBpQ,KAAK8/C,YAAY91B,WAAW,CAAE3V,IAAK,GAAI8lC,OAAQ,IACjD,CAEQoH,YACuC,GAAzCvhD,KAAKw/C,UAAUY,OAAO,IAAI/rC,KAAKxT,QACjCb,KAAKu/C,aAAapjC,iBAAiBnc,KAAKw/C,UAAUY,OAAO,IAAI/rC,KAC1DxR,QAAKyyB,MAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOimB,KACL,GAAIA,GAAI3pB,OAAS,EAAG,CAClBb,KAAK8/C,YAAY91B,WAAW,CAAEmwB,OAAQ,KACtCn6C,KAAKy/C,WAAaj1B,IAAO,GACzBxqB,KAAK8/C,YAAY91B,WAAW,CAC1BmwB,OAAQn6C,KAAKw/C,UAAUY,OAAO,GAAGjG,SAGnC,IAAIuH,GAAoB,KACxB,QAASvvC,MAASnS,KAAKy/C,WAIrB,GAHAiC,GAAoBvvC,GAAM8sC,SAAS0C,KAChCxH,OAAkCyH,MAA8BzH,GAAO2E,YAAa9+C,KAAK8/C,YAAYn/C,IAAI,WAAWlE,QAEnHilD,GAAmB,CACrB1hD,KAAK8/C,YAAY91B,WAAW,CAC1BmwB,OAAQuH,GAAkB5C,cAE5B,KACF,CAG4B,GAA3B4C,IAAmB7gD,QAEpBb,KAAK8/C,YAAY91B,WAAW,CAAEmwB,OAAQ,IAE1C,GACCp3C,MAAQiB,KACThE,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,IAAKjB,OAAOyM,SAEpBxP,KAAK6nB,aAAa,IAAK,GAIjC,mDApYWu3B,IAAgBh9C,MAAAC,KAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,OAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,MAAAnpB,MAAAk7B,MAAAl7B,MAAAk7B,MAAAl7B,MA6BjBkO,MAAe,oCA7Bd8uC,GAAgB5uC,UAAA,mBAAAg0B,SAAA,CAAApiC,MAFhB,CAACmlB,QAAS9W,MAAA,GAAAC,KAAA,GAAAC,OAAA,o+DAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KDtBnBzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,cAAQA,QAC+CA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAEAA,MAAA,WACEA,MAAA,EAAAy/C,GAAA,sBASMz/C,MAHN,YAGMA,CAH6C,WAG7CA,CAFuD,sBAEvDA,CAD2B,gBAChBA,MAAA,iBAAUA,QACrBA,MAAA,eAEAA,MADA,GAAA0/C,EAAA,kBACA1/C,CADyE,GAAA2/C,GAAA,mBAE3E3/C,QAGEA,MADF,sBACEA,CAD2B,gBAChBA,MAAA,gBAASA,QACpBA,MAAA,eAEAA,MADA,GAAA4/C,EAAA,kBACA5/C,CADyE,GAAA6/C,GAAA,mBAG7E7/C,UAEAA,MAAA,GAAA8/C,EAAA,eAsBI9/C,MAFJ,WAEIA,CAFuD,uBAEvDA,CADmC,oBAEjCA,MAAA,GAAA+/C,EAAA,qBAEJ//C,UACAA,MAAA,uBACEA,MAAA,eACAA,MAAA,GAAAggD,EAAA,mBACFhgD,QAGEA,MADF,uBACEA,CADmC,oBAEjCA,MAAA,GAAAigD,GAAA,qBAEJjgD,UACAA,MAAA,uBACEA,MAAA,eACAA,MAAA,GAAAkgD,GAAA,mBAEJlgD,UAIIA,MAFJ,WAEIA,CAFuD,sBAEvDA,CAD2B,gBAChBA,MAAA,gBAASA,QACpBA,MAAA,eACAA,MAAA,GAAAmgD,GAAA,mBACFngD,QAGEA,MADF,sBACEA,CAD2B,gBAChBA,MAAA,aAAMA,QACjBA,MAAA,oBACEA,MAAA,iBACAA,MAAA,oBAAsBA,MAAA,WAAIA,QAC1BA,MAAA,oBAAsBA,MAAA,aAG5BA,cAIIA,MAFJ,WAEIA,CAFuD,sBAEvDA,CAD2B,gBAChBA,MAAA,eAAQA,QACnBA,MAAA,eAAqFA,MAAA,0BAAS0O,GAAAqwC,aAAa,GAC7G/+C,UAEEA,MADF,sBACEA,CAD2B,gBAChBA,MAAA,aAAMA,QACjBA,MAAA,oBACEA,MAAA,GAAAogD,GAAA,uBAIJpgD,UAEEA,MADF,sBACEA,CAD2B,gBAChBA,MAAA,YAAKA,QAChBA,MAAA,oBAAuCA,MAAA,2BAAA2O,IAAA,OAAmBD,GAAA2wC,YAAA1wC,GAAmB,GAC3E3O,MAAA,iBACAA,MAAA,GAAAqgD,GAAA,qBAINrgD,YAGEA,MADF,YACEA,CADyB,WACJA,MAAA,YAAKA,QAE1BA,MADA,wBACAA,CADyE,oBAK/EA,YAGEA,MADF,YACEA,CADkC,gBACSA,MAAA,aAAMA,QAEjDA,MADA,GAAAsgD,GAAA,gBACAtgD,CAD2G,GAAAugD,GAAA,iBAI/GvgD,kBAxHmBA,MAAA,GAAAA,MAAA,OAAA0O,GAAAtB,QAAA/E,MAMTrI,cAAA,YAAA0O,GAAAgvC,aAIiD19C,MAAA,GAAAA,MAAA,gBACtCA,cAAA,WAAA0O,GAAAgvC,YAAArjD,MAAAqX,MAAAjT,QACCuB,cAAA,OAAA0O,GAAA+hB,WAAA,qBAKqCzwB,MAAA,GAAAA,MAAA,gBACtCA,cAAA,WAAA0O,GAAAgvC,YAAArjD,MAAAsX,MAAAlT,QACCuB,cAAA,OAAA0O,GAAA+hB,WAAA,qBAIVzwB,cAAA,OAAA0O,GAAA6uC,cAuBkCv9C,MAAA,GAAAA,MAAA,UAAA0O,GAAA8uC,YAIiDx9C,MAAA,GAAAA,MAAA,gBACzEA,cAAA,WAAA0O,GAAAgvC,YAAArjD,MAAAyX,MAAArT,QAKwBuB,MAAA,GAAAA,MAAA,UAAA0O,GAAA+uC,YAKxBz9C,MAAA,GAAAA,MAAA,OAAA0O,GAAA+hB,WAAA,oBAO0BzwB,MAAA,GAAAA,MAAA,MAAA0O,GAAAw6B,SAC1BlpC,cAAA,OAAA0O,GAAA+hB,WAAA,sBAgB0BzwB,MAAA,IAAgBA,MAAhB,cAAgBA,CAAD,eAKnBA,MAAA,GAAAA,MAAA,UAAA0O,GAAA2uC,YASFr9C,MAAA,GAAAA,MAAA,UAAA0O,GAAA4uC,QAQjBt9C,MAAA,GAAkBA,MAAlB,SAAA0O,GAAA0xB,OAAkBpgC,CAAD,UAAA0O,GAAAqxB,SACtB//B,cAAA,SAAA0O,GAAA0xB,QAQSpgC,MAAA,GAAAA,MAAA,OAAA0O,GAAAgvC,YAAA/0B,OACA3oB,cAAA,OAAA0O,GAAAgvC,YAAA/0B,yuBCpGhBq0B,EAAgB,kWCXvBh9C,MAAA,GAGMA,MAFJ,WAEIA,CAFoB,sBAEpBA,CAD2B,eAChBA,MAAA,UAAIA,QACfA,MAAA,cACFA,QAEEA,MADF,sBACEA,CAD6B,eAClBA,MAAA,UAAIA,QAEbA,MADF,kBACEA,CADmF,oBAC3CA,MAAA,YAAIA,QAC5CA,MAAA,oBAAwCA,MAAA,aAAMA,QAC9CA,MAAA,oBAAsCA,MAAA,WAE1CA,YAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,SAAEA,QACbA,MAAA,eAEFA,yCASEA,MAAA,eAAuCA,MAAA,yEAAmEA,iDAPhHA,MAAA,GAGMA,MAFJ,WAEIA,CAFoB,sBAEpBA,CAD2B,eAChBA,MAAA,sBAAgBA,QAC3BA,MAAA,cAA+IA,MAAlD,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAA4jB,aAAA5jB,EAAAg7B,YAAAnmD,MAAAwa,SAAuC,EAAE7U,CAAD,wBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAewlB,EAAA4jB,aAAA5jB,EAAAg7B,YAAAnmD,MAAAwa,SAAuC,GAApM7U,QAEAA,MADA,6BACAA,CADwE,2BAExEA,MAAA,EAAAygD,EAAA,mBACFzgD,QAEEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,gCAAyBA,QAElCA,MADF,mBACEA,CAD0E,oBACpCA,MAAA,WAAGA,QACzCA,MAAA,oBAAwCA,MAAA,aAAMA,QAC9CA,MAAA,oBAAwCA,MAAA,YAAKA,QAC7CA,MAAA,oBAAsCA,MAAA,WAAIA,QAC1CA,MAAA,oBAA4CA,MAAA,cAGlDA,yDAf8CA,MAAA,GAAyBA,MAAzB,gBAAA0gD,EAAyB1gD,CAAD,MAAAwlB,EAAAyjB,SACjCjpC,cAAA,MAAA0gD,GAErB1gD,MAAA,GAAAA,MAAA,OAAAwlB,EAAAg7B,YAAA92B,mCAmBV1pB,MAAA,mBAAuGA,MAAA,GAAwCA,kCAAzFA,MAAA,YAAA2gD,EAAA5rB,WAAA,KAAA4rB,EAAA9uC,MAAA,IAAiD7R,cAAA,IAAA2gD,EAAA5rB,WAAA,KAAA4rB,EAAA9uC,MAAA,8BAFzG7R,MAFJ,WAEIA,CAFsD,sBAEtDA,CAD6B,eAClBA,MAAA,sCAAgCA,QAC3CA,MAAA,mBACEA,MAAA,EAAA4gD,EAAA,qBAGN5gD,kCAHqCA,MAAA,GAAAA,MAAA,UAAAwlB,EAAAzP,YAAAsb,iDAgBvCrxB,MAAA,eAAuJA,MAAA,mBAAAA,MAAA0+B,GAAA,MAAAlZ,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAq7B,kBAAiB,GAAe7gD,MAAA,GAAuEA,gCAA7KA,MAAA,WAAAwlB,EAAAs7B,iBAAsG9gD,cAAAwlB,EAAAs7B,gBAAA,yFAChM9gD,MAAA,eAAgJA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAA3G,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAu7B,YAAW,GAAe/gD,MAAA,GAAwEA,gCAAnKA,MAAA,WAAAwlB,EAAAw7B,YAA2FhhD,cAAAwlB,EAAAw7B,WAAA,iFAqCvKhhD,MAAA,OACEA,MAAA,GACFA,+BADEA,cAAA,UAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAA7sC,cAAAtC,MAAA,gCAGF9R,MAAA,OACEA,MAAA,GACFA,+BADEA,cAAA,UAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAnuC,cAAAjB,MAAA,+BAEF7R,MAAA,OACEA,MAAA,GACFA,+BADEA,cAAA,UAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAlB,SAAA,gCAEF/R,MAAA,OACEA,MAAA,GAGFA,+BAHEA,cAAA,UAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAjB,KAAA,WAAAwT,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAsB,SAAA,UAAAiR,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAhB,IAAA,+BAYIjS,MADF,QACEA,CAD8C,UAE5CA,MAAA,GAEJA,oCAFIA,MAAA,GAAAA,MAAA,IAAAkhD,EAAAC,kCAAA,gCAHNnhD,MAAA,SACEA,MAAA,EAAAohD,EAAA,cAKFphD,6CALwBA,cAAA,UAAAwlB,EAAA67B,gBAAAC,+BApDfthD,MAJzB,WAIyBA,CAJqD,WAIrDA,CAHA,aAGAA,CAFC,OAEDA,CADf,UACeA,CAAA,OAAGA,MAAA,WAASA,UAC7BA,MAAA,QAAIA,MAAA,GACNA,UAEmBA,MADnB,OACmBA,CADf,WACeA,CAAA,QAAGA,MAAA,UAAQA,UAC5BA,MAAA,SAAIA,MAAA,IACNA,UAEmBA,MADnB,QACmBA,CADf,WACeA,CAAA,QAAGA,MAAA,eAAYA,UAChCA,MAAA,SAAIA,MAAA,IAINA,UAE6BA,MAD7B,QAC6BA,CADzB,WACyBA,CAAA,QAAGA,MAAA,eAAYA,UAIpCA,MAHN,QAGMA,CAHF,SAGEA,CAFC,SAEDA,CADG,UACaA,MAAA,IAAmDA,QACnEA,MAAA,UAAgBA,MAAA,wMAChBA,QAEEA,MADF,QACEA,CADE,SACEA,MAAA,oCACNA,UACAA,MAAA,UAAgBA,MAAA,gEAAyDA,QACzEA,MAAA,UAAgBA,MAAA,iBAAUA,QAC1BA,MAAA,UAAgBA,MAAA,IAA6CA,QAC7DA,MAAA,QAAGA,MAAA,+BAAwBA,QAC3BA,MAAA,QAAGA,MAAA,IAAwBA,QAC3BA,MAAA,GAAAuhD,GAAA,WAGAvhD,MAAA,QAAGA,MAAA,cAAOA,QAOVA,MANA,GAAAwhD,GAAA,UAMAxhD,CANuH,GAAAyhD,EAAA,UAMvHzhD,CAHmI,GAAA0hD,GAAA,WAQnI1hD,MAAA,WACEA,MAAA,IAGFA,QACAA,MAAA,UACEA,MAAA,GAAA2hD,GAAA,cAOF3hD,QACAA,MAAA,UAAgBA,MAAA,mbAQ9BA,4CAlEYA,MAAA,GAAAA,MAAAwlB,EAAA6U,YAAAunB,cAIA5hD,MAAA,GAAAA,MAAA,MAAAwlB,EAAAzP,aAAA,MAAAyP,EAAAzP,YAAAjD,cAAA,KAAA0S,EAAAzP,YAAAjD,cAAAjB,OAIA7R,MAAA,GAAAA,MAAA,8EAAAwlB,EAAAzP,YAAA,KAAAyP,EAAAzP,YAAArE,MAAAumC,OAAA,UAAAzyB,EAAAzP,YAAA,KAAAyP,EAAAzP,YAAApE,MAAAsmC,OAAA,eAAAzyB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAvvC,MAAAumC,OAAA,UAAAzyB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAtvC,MAAAsmC,OAAA,KAUkBj4C,MAAA,GAAAA,MAAA,cAAAwlB,EAAAzP,YAAA,KAAAyP,EAAAzP,YAAArE,MAAA,UAAA8T,EAAAzP,YAAA,KAAAyP,EAAAzP,YAAApE,MAAA,KAQA3R,MAAA,IAAAA,MAAA,SAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAvvC,MAAA,UAAA8T,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAtvC,MAAA,IAEb3R,MAAA,GAAAA,MAAA,MAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhwB,SACCjxB,cAAA,cAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAA7sC,iBAAA,MAAAoR,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAA7sC,cAAAtC,SAAA,MAAA0T,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAA7sC,cAAAtC,MAAArT,QAAA,GAIAuB,MAAA,GAAAA,MAAA,cAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAnuC,iBAAA,MAAA0S,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAnuC,cAAAjB,SAAA,MAAA2T,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAnuC,cAAAjB,MAAApT,QAAA,GAGAuB,cAAA,cAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,mBAAA,MAAAuS,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAlB,YAAA,MAAAyT,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAlB,SAAAtT,QAAA,GAGAuB,cAAA,cAAAwlB,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,mBAAA,MAAAuS,EAAAy7B,YAAA,KAAAz7B,EAAAy7B,YAAAhuC,gBAAAjB,OAMFhS,MAAA,GAAAA,MAAA,gFAAAwlB,EAAAy7B,YAAAnuC,cAAAjB,MAAA,mDAKsB7R,MAAA,GAAAA,MAAA,UAAAwlB,EAAA4N,OAAAC,KAAA7N,EAAA67B,mBCtHnC,IAAM/qC,EAAkB,MAAzB,MAAOA,EAgBX5Y,YACU8oB,EACAjkB,EACA+sB,EACA5e,EACAgW,GACAC,GACDoiB,IANCnrC,KAAA4oB,KACA5oB,KAAA2E,OACA3E,KAAA0xB,gBACA1xB,KAAA8S,SACA9S,KAAA8oB,eACA9oB,KAAA+oB,mBACD/oB,KAAAmrC,OApBDnrC,KAAA4xB,qBAAuB,IAAIrxB,IAM5BP,KAAAikD,iBAA4B,EAC5BjkD,KAAAojD,YAAuB,EACvBpjD,KAAAkjD,iBAA4B,EAC5BljD,KAAAy8B,YAAoBx6B,IAEpBjC,KAAAw1B,OAASA,OAWdx1B,KAAKqjD,YAAcrjD,KAAK2E,KAAK6Z,aAC7Bxe,KAAKmY,YAAcnY,KAAK8oB,YAAYhL,aACpC9d,KAAK4iD,YAAc5iD,KAAK4oB,GAAGS,MAAM,CAC/BpS,QAAYjX,KAAKmY,aAAasb,QAAQ5yB,OAAS,EAAI,CAAC,GAAI0oB,KAAWC,UAAY,CAAC,IAChF3S,cAAkB7W,KAAKmY,aAAasb,QAAQ5yB,OAAS,EAAI,CAAC,GAAI0oB,KAAWC,UAAY,CAAC,IACtF1M,eAAmB,CAAC,GAAIyM,KAAWC,UAEnCtU,cAAsD,GAApClV,KAAKmY,aAAasb,QAAQ5yB,OAAc,CAACb,KAAKqjD,YAAYnuC,cAAcjB,MAAO,CAACsV,KAAWC,SAAUD,KAAW2F,QAAQ1vB,KAAkBC,SAAW,CAAC,GAAG,CAAE8pB,KAAW2F,QAAQ1vB,KAAkBC,SAClNykD,uBAA+D,GAApClkD,KAAKmY,aAAasb,QAAQ5yB,OAAc,CAAC,GAAI0oB,KAAWC,UAAY,CAAC,IAChG26B,UAAkD,GAApCnkD,KAAKmY,aAAasb,QAAQ5yB,OAAc,CAAC,GAAI,CAAC0oB,KAAWC,SAAUD,KAAW2F,QAAQ1vB,KAAkBC,SAAW,CAAC,GAAG,CAAE8pB,KAAW2F,QAAQ1vB,KAAkBC,SAE5K2kD,SAAapkD,KAAKmY,aAAasb,QAAQ5yB,OAAS,EAAI,CAAC,GAAI0oB,KAAWC,UAAY,CAAC,MAEnFxpB,KAAKqkD,mBACP,CAEAp1C,WACEjP,KAAKqrC,QAAU,IAAIr/B,KACnBhM,KAAKsrC,QAAUv/B,IAAO/L,KAAKqrC,SAASE,IAAI,EAAG,QAAQt/B,OAAO,aAC5D,CAEOu/B,aAAazI,GAClB,IAAI0I,EAAa1/B,IAAOg3B,GAAM92B,OAAO,cACjCF,IAAO0/B,GAAYC,QAAQ1rC,KAAKsrC,UAClCtrC,KAAK4iD,YAAY5vB,SAAS/b,QAAW+jB,UAAU,CAAElP,SAAS,GAE9D,CAEOm3B,kBACL,IAAGjjD,KAAK4iD,YAAY92B,QAEf,CACH9rB,KAAKkjD,iBAAkB,EACvB,IAAI/iC,EAAWngB,KAAK4iD,YAAYnmD,MAElCuD,KAAKskD,qBAAuBtkD,KAAK8oB,YAAYjL,iBAD7B,CAACsZ,WAAahX,EAAS+jC,uBAAuBjwC,MAASkM,EAASgkC,UAAUjvC,cAAgB,SACnC5F,UAAU,CAC7E/K,KAAOimB,IACLxqB,KAAK8oB,YAAY5L,eAAeld,KAAK8oB,YAAYhL,aAAata,SAASX,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU,CAC1H/K,KAAOimB,IACLxqB,KAAK8oB,YAAYhL,aAAe0M,EAChCxqB,KAAKikD,iBAAkB,EACvBjkD,KAAKkjD,iBAAkB,GACtBngD,MAAOiB,IACRhE,KAAKkjD,iBAAkB,EACvBljD,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,GAEnD,EACAzM,MAAOiB,IACRhE,KAAKkjD,iBAAkB,EACvBljD,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,GAGtD,CACF,CAEQ60C,oBAEN,IAAInhD,EAAQ,CACVwH,QAAQ1K,KAAK2E,KAAK/C,WAAW8I,QAC7BlH,QAAQxD,KAAKmY,aAAa3U,QAC1B22C,OAAOn6C,KAAKmY,aAAa9C,gBAAgB8kC,QAG3Cn6C,KAAK8oB,YAAYpF,wBAAwBxgB,EAAQ,SAASL,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAU,CAC7G/K,KAAOqwB,IACmB,KAApBA,EAASkX,QACX9rC,KAAK+oB,gBAAgB7Y,UAAU0kB,EAASplB,SAExCxP,KAAKyjD,gBAAkBzjD,KAAK0xB,cAAc6yB,gBAAgB3vB,EAAQ,EAGtE7xB,MAAQiB,IACNhE,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,EAElDya,SAAUA,QAEd,CAEOk5B,YACL,IAAGnjD,KAAK4iD,YAAY92B,QAEf,CACH9rB,KAAKojD,YAAa,EAClB,IAAIvuC,EAAW7U,KAAK4iD,YAAYnmD,MAChCuD,KAAK2rC,qBAAuB3rC,KAAK8oB,YAAYjM,iBAAiBhI,EAASiI,gBAAgBxN,UAAU,CAC/F/K,KAAOimB,IACL,IAAI9V,EAAO1U,KAAK2E,KAAK6Z,aAGjBtb,GAAUlD,KAAKmrC,IAAI12B,uBAAuBC,EAFtB8V,EAAIohB,cACjB5rC,KAAK8oB,YAAYhL,aAC8CjJ,EAAS,UACnF7U,KAAK8oB,YAAYnL,gBAAgBza,IAASL,QAAKwM,QAASC,UAAU,CAChE/K,KAAOimB,KACc,GAAfA,GAAIshB,QAEb9rC,KAAK+oB,gBAAgB7Y,UADVwE,EAAK8B,cAActC,MACC,wDAA0DsW,GAAIhb,QAE9D,iMAGxBxP,KAAK+oB,gBAAgBpX,YAAY,oDACjC3R,KAAK8oB,YAAYpG,qBAAqB,qBAExC1iB,KAAK8S,OAAO0oB,WACZx7B,KAAKojD,YAAa,GACjBrgD,MAAOiB,KACRhE,KAAKojD,YAAa,EAClBpjD,KAAK+oB,gBAAgB7Y,UAAUlM,GAAIjB,MAAMyM,QAAO,GAEnD,EACAzM,MAAOiB,IACRhE,KAAKojD,YAAa,EAClBpjD,KAAK+oB,gBAAgB7Y,UAAUlM,EAAIjB,MAAMyM,QAAO,GAGtD,CACF,CAEO4b,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WACvBjqB,KAAKskD,sBAAsBtkD,KAAKskD,qBAAqBj5B,cACrDrrB,KAAK2rC,sBAAsB3rC,KAAK2rC,qBAAqBtgB,aAC1D,iDAnJW3S,GAAkBtW,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,KAAA,oCAAlB7S,EAAkBlI,UAAA,qBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,0uDAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDhB3BzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,qCAA+BA,QAElDA,MADF,aACEA,CAD0E,cAChEA,MAAA,WAEdA,YACAA,MAAA,iBAEEA,MADF,UACEA,CADsB,SACNA,MAAA,+NAGhBA,QAEAA,MAAA,aAqBEA,MApBA,GAAAoiD,GAAA,sBAoBApiD,CApB2E,GAAAqiD,EAAA,uBAyC3EriD,MAAA,IACEA,MAAA,GAAAsiD,EAAA,qBASFtiD,MAAA,IAGUA,MAFR,YAEQA,CAFU,uBAEVA,CAD0B,gBACfA,MAAA,qCAA8BA,QAC7CA,MAAA,eAEJA,kBAEJA,QAEEA,MADF,YACEA,CAD4B,gBACeA,MAAA,aAAMA,QAEjDA,MADA,GAAAuiD,EAAA,gBACAviD,CADgM,GAAAwiD,EAAA,iBAElMxiD,QAEAA,MAAA,GAAAyiD,GAAA,gBAyEJziD,iBA5IUA,MAAA,IAAAA,MAAA,YAAA0O,EAAA8xC,aACWxgD,cAAA,iBAAA0O,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,UAAAiQ,EAAAmzC,iBAoBA7hD,cAAA,cAAA0O,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,QAAA,GAAAiQ,EAAAmzC,iBAsBM7hD,MAAA,GAAAA,MAAA,cAAA0O,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,QAAA,GAoBZuB,MAAA,IAAAA,MAAA,OAAA0O,EAAA8xC,YAAA73B,OAAA,UAAAja,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,UAAAiQ,EAAAmzC,iBACA7hD,cAAA,OAAA0O,EAAA8xC,YAAA73B,QAAA,MAAAja,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,QAAA,GAAAiQ,EAAAmzC,iBAGa7hD,cAAA,cAAA0O,EAAAqH,aAAA,MAAArH,EAAAqH,YAAAsb,OAAA,KAAA3iB,EAAAqH,YAAAsb,OAAA5yB,SAAAiQ,EAAAmzC,yMC/DfvrC,CAAkB,2KCT3BtW,MAAA,OAA0BA,MAAA,wDAAkDA,MAAA,aAAwBA,MAAA,GAAwBA,gCAAxBA,MAAA,GAAAA,MAAA+iC,EAAA2f,uCACpG1iD,MAAA,oDAAyBA,MAAA,YAAAA,MAAA,IAAA+iC,EAAA4f,eAAA3iD,QCCtB,IAAM4iD,EAAqB,MAA5B,MAAOA,EAmBXllD,YACkCG,EAExBglD,GACAC,GAHwBllD,KAAAC,OAExBD,KAAAilD,aACAjlD,KAAAklD,eAdHllD,KAAAmlD,gBAAkB,IAAI77B,KACtBtpB,KAAAolD,kBAAoB,IAAI97B,KACxBtpB,KAAAqlD,iBAAmB,IAAI/7B,KACvBtpB,KAAAslD,sBAAwB,IAAIh8B,KAC5BtpB,KAAAulD,wBAA0B,IAAIj8B,KAanCtpB,KAAKwlD,SAAWvlD,EAAKA,KACrBD,KAAKylD,QAAUxlD,EAAKylD,KAAO1lD,KAAKwlD,SAASE,KAAO,GAEhD1lD,KAAK8kD,YAAc7kD,GAAM0lD,MAAMC,cAAgB,GAC/C5lD,KAAK+kD,cAAgB9kD,EAAK8kD,eAAiB,GAEvCc,MAAMC,QAAQ9lD,KAAKwlD,UACO,GAAxBxlD,KAAKwlD,SAAS3kD,QAChBb,KAAK+lD,qBAAuB/lD,KAAKwlD,SAAS,IAAIQ,YAAc,KAC5DhmD,KAAKimD,uBAAyBjmD,KAAKwlD,SAAS,IAAIU,cAAgB,MAGhElmD,KAAKimD,uBAAyBjmD,KAAKwlD,SAAS,IAAIU,cAAgB,MAGlElmD,KAAK+lD,qBAAuB,KAC5B/lD,KAAKimD,uBAAyB,MAIhCjmD,KAAKmmD,QAAUnmD,KAAKklD,aAAa77B,MAAM,CACrCyS,KAAQ97B,KAAKmlD,gBACbz6C,QAAW1K,KAAKolD,kBAChBxtB,MAAS53B,KAAKqlD,iBACdW,WAAchmD,KAAKslD,sBACnBY,aAAgBlmD,KAAKulD,0BAGvBvlD,KAAKmmD,QAAQn8B,WAAW,IACnBhqB,KAAKwlD,SAENQ,WAAYhmD,KAAK+lD,qBACjBG,aAAclmD,KAAKimD,wBAGzB,CAEAh3C,WAAkB,CAEXm3C,YACL,MAAMC,EAAarmD,KAAKwlD,UAAUc,QAAQC,cACpCC,GAAYhxB,OAAOixB,YAAYjxB,OAAOkxB,QAAgB1mD,KAAKmmD,QAAQ1pD,OAAO8tB,OAAO,EAAEo8B,EAAGC,KAAY,MAALA,IAE7FxG,EAAOpgD,KAAKilD,UAAU4B,cAAc,QAC1CzG,EAAKkG,OAASD,GAAc,OAC5BjG,EAAKz8B,OAAS,SACdy8B,EAAK0G,OAAS9mD,KAAKylD,QAEnB,QAAUsB,EAAWtqD,KAAU+4B,OAAOkxB,QAAQF,IAAY,CACxD,MAAM/5C,EAAQzM,KAAKilD,UAAU4B,cAAc,SAE3Cp6C,EAAMhC,KAAO,SACbgC,EAAMjO,KAAOuoD,EACbt6C,EAAMhQ,MAAQA,EACd2jD,EAAK4G,YAAYv6C,EAEnB,CAEAzM,KAAKilD,UAAUgC,KAAKD,YAAY5G,GAChCA,EAAK8G,QACP,mDAtFWlC,GAAqB5iD,MAoBtBkO,MAAelO,MACf+kD,MAAQ/kD,MAAAC,MAAA,oCArBP2iD,EAAqBx0C,UAAA,yBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,+hBAAAC,SAAA,SAAAC,GAAAC,GAAA,EAAAD,KDT9BzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,GAAkDA,QACKA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAEAA,MAAA,WAEEA,MADA,EAAAglD,EAAA,UACAhlD,CAD0B,GAAAilD,EAAA,WAE5BjlD,QAIEA,MADF,WACEA,CADkC,eACuBA,MAAA,aAAMA,QAC/DA,MAAA,eAAuDA,MAAA,0BAAS0O,EAAAs1C,WAAW,GAAEhkD,MAAA,eAGjFA,oBAjByBA,MAAA,GAAAA,MAAA0O,EAAAi0C,cAAA,8BAOjB3iD,MAAA,GAAAA,MAAA,QAAA0O,EAAAi0C,eACA3iD,cAAA,OAAA0O,EAAAi0C,oGCCKC,CAAqB,+NCA3B,IAAMsC,EAAmB,MAA1B,MAAOA,EAEXxnD,YACU4C,GAAA1C,KAAA0C,OACV,CAGO6kD,aAAaC,GAClB,OAAOxnD,KAAK0C,MAAMS,KACdlB,IAAYwlD,gBAAkB,eAC9BznD,KAAK0nD,YAAYF,GACjB,CACElnC,QAAS,IAAIC,KAAY,CACvB,eAAiB,wCAGtB1d,QACCC,KAAYC,OAAmBC,KAAW,IAAMD,KAGtD,CAEO4kD,mBACL,OAAO3nD,KAAK0C,MAAM/B,IAAIsB,IAAYwlD,gBAAkB,aACjD5kD,QACCC,KAAYC,MAAmBC,KAAW,IAAMD,IAGtD,CAEO6kD,YAAYxmD,GACjB,OAAOpB,KAAK0C,MAAMS,KAAmBlB,IAAYwlD,gBAAkB,cAAe,CAChFrmD,MAASA,IAERyB,QACCC,KAAYC,OAAmBC,KAAW,IAAMD,KAGtD,CAEQ2kD,YAAYF,GAElB,IAAIK,GAAsB,GAE1B,UAAYlyB,GAAKl5B,MAAU+4B,OAAOkxB,QAAQc,GACxCK,GAAoBz7B,KAAK7qB,mBAAmBo0B,IAAO,IAAMp0B,mBAAmB9E,KAK9E,OAAOorD,GAAoBC,KAAK,KAAK9P,QAAQ,OAAQ,IACvD,mDAnDWsP,GAAmBllD,MAAAC,MAAA,sCAAnBilD,EAAmBhlD,QAAnBglD,EAAmB/kD,UAAAC,WAFlB,QAAM,SAEP8kD,CAAmB,uGCC5BllD,MAAA,GACEA,MAAA,2DAIAA,MAAA,iCAAKA,MAAA,YAAA+iC,EAAA4iB,SAAA3lD,QCPJ,IAAM4lD,GAAsB,MAA7B,MAAOA,EAOXloD,YACUmoD,EACAC,IADAloD,KAAAioD,uBACAjoD,KAAAkoD,cAPFloD,KAAA4xB,qBAAuB,IAAIrxB,IAG5BP,KAAAksB,WAAqB,CAKxB,CAEJjd,WACEjP,KAAKioD,qBAAqBN,mBACvB9kD,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAO4jD,IACLnoD,KAAKksB,WAAY,EACjBlsB,KAAK+nD,SAAW/nD,KAAKkoD,WAAWE,wBAAwBD,EAAcE,UAAS,GAGvF,CAEAj9B,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,mDA1BW+9B,GAAsB5lD,MAAAC,GAAAD,MAAAyH,OAAA,oCAAtBm+C,EAAsBx3C,UAAA,yBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,4kBAAAC,SAAA,SAAAC,GAAAC,OAAA,EAAAD,KDP7BzO,MAHN,UAGMA,CAH0G,UAG1GA,CAFe,UAEfA,CADoD,UAC/BA,MAAA,oBAAcA,QACyCA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YACAA,MAAA,SAAqBA,MAAA,6DAAyDA,MAAA,aAAwBA,MAAA,0GACxGA,YAEAA,MAAA,kBAEAA,MAAA,YAKEA,MAJA,GAAAkmD,EAAA,qBAIAlmD,CAJ8C,GAAAmmD,GAAA,yBAAAnmD,OAOhDA,QAGEA,MADF,YACEA,CADkC,gBACoBA,MAAA,mBAAYA,QAClEA,MAAA,gBAA6DA,MAAA,YAGjEA,sCAdmBA,MAAA,IAAiBA,MAAjB,OAAA0O,GAAAob,UAAiB9pB,CAAA,WAAAomD,IAWGpmD,MAAA,GAAAA,MAAA,6GCb1B4lD,CAAsB,0HCL5B,IAAMS,EAAS,MAAhB,MAAOA,EAEX72C,UAAU82C,GACR,MAEMC,GAFcD,EAAO/9C,WAEuBi+C,MAD7B,0BAGrB,MAAO,IAAMD,GAAe,GAAK,KAAOA,GAAe,GAAK,IAAMA,GAAe,EACnF,mDARWF,EAAS,kDAATA,EAASI,MAAA,YAATJ,CAAS,gHCAVrmD,MAAA,GACIA,MAAA,qDAAiBA,cAAA,OAAA+iC,EAAA2jB,wCAIjB1mD,MAAA,UAA2CA,MAAA,kGAA4FA,MAAA,aAA0BA,MAAA,yBAA0BA,kCAUnKA,MAAA,GAA8EA,MAAA,4CACvDA,MAAA,0CAI3BA,MAAA,UACIA,MAAA,uMAAgMA,MAAA,UAAwDA,MAAA,mCAA6BA,QAAIA,MAAA,QAC7RA,mCACAA,MAAA,UACIA,MAAA,GAAoEA,MAAA,UAAMA,MAAA,oBAA+BA,QAAQA,MAAA,0DACrHA,+BADIA,cAAA,mBAAA+iC,EAAA4jB,iBAAA,OAAA5jB,EAAA6jB,kBAAA,QAA0E5mD,MAAA,GAAAA,YAAA,IAAA+iC,EAAA8jB,+CAG8J7mD,MAAA,UAAiCA,MAAA,oBAAkCA,+BAAlCA,cAAA,OAAAA,MAAA,IAAA+iC,EAAA8jB,mBAAA,+BAD7Q7mD,MAAA,UACIA,MAAA,GAAwOA,MAAA,EAAA8mD,EAAA,eAA0E9mD,MAAA,QACtTA,+BADIA,cAAA,wDAAA+iC,EAAA4jB,iBAAA,kCAAA5jB,EAAAxhC,UAAA,sEAAAwhC,EAAA4jB,iBAAA,OAAA5jB,EAAA6jB,kBAAA,IAA+O5mD,cAAA,OAAA+iC,EAAA8jB,8DAbnP7mD,MANhB,gBAMgBA,CAJT,qBAISA,CAHM,WAGNA,CAFqC,YAErCA,CADmB,iBAGfA,MADA,EAAA+mD,EAAA,qBACA/mD,CAD8E,EAAAgnD,EAAA,yBAAAhnD,OAGtFA,UACAA,MAAA,OAOIA,MANA,EAAAinD,EAAA,cAMAjnD,CANiC,GAAAknD,EAAA,cAMjClnD,CAHiC,GAAAmnD,EAAA,eAMrCnnD,QACAA,MAAA,kBAAqCA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAyE,GAAA/iC,MAAA,UAAAA,MAAS+iC,GAAAqkB,cAAa,GAAEpnD,MAAA,YAGzEA,mDAzBgHA,MAAA,UAAAA,MAAA,EAAAg/B,GAAA+D,GAAAskB,oBAAAtkB,GAAAukB,qBAM/CtnD,MAAA,GAAAA,MAAA,UAAAA,MAAA,EAAAs7C,EAAAvY,GAAAwkB,kBAC9BvnD,QAAgDA,MAAhD,OAAA+iC,GAAAskB,oBAAAtkB,GAAAukB,mBAAgDtnD,CAAA,WAAAwnD,GAK5DxnD,MAAA,GAAAA,MAAA,OAAA+iC,GAAAskB,oBAGArnD,cAAA,OAAA+iC,GAAAukB,oBAGAtnD,cAAA,OAAA+iC,GAAAwkB,0CAgBPvnD,MAAA,GAAgDA,MAAA,0CACxBA,MAAA,oCAE5BA,MAAA,eAAsEA,MAAA,oBAAAA,iDAJtEA,MANZ,gBAMYA,CAHL,qBAGKA,CAFU,WAEVA,CADoD,iBAGhDA,MADA,EAAAynD,GAAA,qBACAznD,CADgD,EAAA0nD,GAAA,yBAAA1nD,OAEpDA,QACAA,MAAA,EAAA2nD,GAAA,6BACA3nD,MAAA,iBAA4CA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA6X,GAAA/iC,MAAA,UAAAA,MAAS+iC,GAAAqkB,cAAa,GAAEpnD,MAAA,YAGhFA,mDAdiIA,MAAA,UAAAA,MAAA,EAAA49B,GAAAmF,GAAAlS,UAAAkS,GAAAlS,WAOlG7wB,MAAA,GAAiBA,MAAjB,QAAA+iC,GAAAlS,SAAiB7wB,CAAA,WAAA4nD,GAGhB5nD,MAAA,GAAAA,MAAA,OAAAA,MAAA,IAAA+iC,GAAA8kB,mDAtCpC7nD,MAAA,GACIA,MAAA,EAAA8nD,GAAA,sCA2BA9nD,MAAA,EAAA+nD,GAAA,oEA3BiC/nD,cAAA,WAAAA,MAAA,IAAA+iC,EAAA8kB,uBA2BA7nD,MAAA,GAAAA,MAAA,OAAA+iC,EAAAilB,qBAAAhoD,MAAA,IAAA+iC,EAAA8kB,gDA2BjB7nD,MAAA,eAA8CA,MAAA,kBAAYA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCACpFA,MAAA,eAA2GA,MAAA,uBAAiBA,MAAA,YAAQA,MAAA,6BAAuBA,QAASA,MAAA,OAACA,iCAYjKA,MAAA,eAAiDA,MAAA,kBAAYA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCACvFA,MAAA,eAAgDA,MAAA,6BAAuBA,MAAA,YAAQA,MAAA,sBAAgBA,QAAUA,MAAA,kBAAWA,iCAMpHA,MAAA,eAAmDA,MAAA,WAAKA,MAAA,YAAQA,MAAA,aAAOA,QAAUA,MAAA,gBAASA,iCAC1FA,MAAA,eAA6DA,MAAA,oBAAcA,MAAA,YAAQA,MAAA,WAAKA,QAASA,MAAA,OAACA,iCAgCtGA,MAAA,eAA8CA,MAAA,oBAAcA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCACtFA,MAAA,eAA6CA,MAAA,8BAAwBA,MAAA,YAAQA,MAAA,sBAAgBA,QAAUA,MAAA,WAAIA,MAAA,YAAQA,MAAA,aAAOA,QAAUA,MAAA,YAAKA,iCAMzIA,MAAA,eAA8CA,MAAA,mBAAaA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCACrFA,MAAA,eAA6CA,MAAA,6BAAuBA,MAAA,YAAQA,MAAA,sBAAgBA,QAAUA,MAAA,WAAIA,MAAA,YAAQA,MAAA,aAAOA,QAAUA,MAAA,YAAKA,iCAQxIA,MAAA,eAA8CA,MAAA,uBAAiBA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCACzFA,MAAA,eAA2CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,qBAAcA,iCAQxFA,MAAA,eAAiDA,MAAA,0BAAoBA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCAe/FA,MAAA,eAA6CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,oCAQ3EA,MAAA,GACIA,MAAA,mBAAyCA,MAAA,GAAcA,2CAA3CA,cAAA,QAAAioD,EAAAnb,cAA6B9sC,cAAAioD,EAAA7rD,+BAGjD4D,MAAA,eAAiDA,MAAA,eAASA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCAQpFA,MAAA,eAA4CA,MAAA,kBAAYA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCAClFA,MAAA,eAA2CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,gBAASA,iCAWnFA,MAAA,eAA8CA,MAAA,wBAAkBA,MAAA,YAAQA,MAAA,cAAQA,QAASA,MAAA,OAACA,iCAC1FA,MAAA,eAA6CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,sBAAeA,iCAY3FA,MAAA,eAA8CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,oBAAaA,iCAW1FA,MAAA,eAA8CA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,kBAAWA,iCAQxFA,MAAA,kBACuCA,MAAA,cAAQA,MAAA,YAAQA,MAAA,WAAKA,QAAUA,MAAA,wDAAiDA,iCAGvHA,MAAA,GACIA,MAAA,UAAgEA,MAAA,oBAAcA,QAC9EA,MAAA,qBAAyCA,MAAA,yBAAmBA,4CAexEA,MADJ,wBACIA,CADyG,eAChBA,MAAA,YAC7FA,iCADYA,cAAA,WAAA+iC,EAAAmlB,uDA5LpBloD,MAAA,aAAoIA,MAAA,oBAAAA,MAAA2rB,GAAA,MAAAoX,GAAA/iC,MAAA,UAAAA,MAAU+iC,GAAAolB,aAAY,GAC9HnoD,MAAxB,SAAwBA,CAAA,aAAgCA,MAAA,OAACA,QAAQA,MAAA,gCAAyBA,QAGlFA,MAFR,gBAEQA,CAFqC,qBAErCA,CADc,uBACsBA,MAAA,0BAAoBA,QAIhDA,MAFR,WAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,gBAASA,QACpBA,MAAA,eAEAA,MADA,GAAAooD,GAAA,mBACApoD,CAD8C,GAAAqoD,GAAA,oBAElDroD,QAEIA,MADJ,YACIA,CADe,WACCA,MAAA,oDAExBA,YAKYA,MAHZ,YAGYA,CAHqB,YAGrBA,CAFW,uBAEXA,CAD2B,gBAChBA,MAAA,gBAASA,QACpBA,MAAA,eAEAA,MADA,GAAAsoD,GAAA,mBACAtoD,CADiD,GAAAuoD,GAAA,oBAErDvoD,QAGIA,MADJ,uBACIA,CAD2B,gBAChBA,MAAA,wBAAiBA,QAC5BA,MAAA,eAEAA,MADA,GAAAwoD,GAAA,mBACAxoD,CADmD,GAAAyoD,GAAA,oBAG3DzoD,UAGQA,MAFR,YAEQA,CAFW,WAEXA,CADuB,SACnBA,MAAA,kCAA2BA,QAC/BA,MAAA,SAAIA,MAAA,8CAAuCA,QAC3CA,MAAA,SAAIA,MAAA,iDAA0CA,QAC9CA,MAAA,SAAIA,MAAA,sCAA+BA,QACnCA,MAAA,SAAIA,MAAA,iFAMxBA,kBAIQA,MAFR,iBAEQA,CAFwB,sBAExBA,CADc,wBACsBA,MAAA,0BAAmBA,QAI/CA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,qBAAcA,QACzBA,MAAA,eAERA,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,kBAAWA,QACtBA,MAAA,eAEAA,MADA,GAAA0oD,GAAA,mBACA1oD,CAD8C,GAAA2oD,GAAA,oBAElD3oD,QAGIA,MADJ,uBACIA,CAD0B,gBACfA,MAAA,iBAAUA,QACrBA,MAAA,eAEAA,MADA,GAAA4oD,GAAA,mBACA5oD,CAD8C,GAAA6oD,GAAA,oBAGtD7oD,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,qBAAcA,QACzBA,MAAA,eAEAA,MADA,GAAA8oD,GAAA,mBACA9oD,CAD8C,GAAA+oD,GAAA,oBAGtD/oD,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,wBAAiBA,QAC5BA,MAAA,eACAA,MAAA,GAAAgpD,GAAA,oBAERhpD,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,wBAAiBA,QAC5BA,MAAA,eAERA,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,YAAKA,QAChBA,MAAA,eACAA,MAAA,GAAAipD,GAAA,oBAERjpD,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,gBACfA,MAAA,aAAMA,QACjBA,MAAA,oBACIA,MAAA,GAAAkpD,GAAA,uBAGJlpD,QACAA,MAAA,GAAAmpD,GAAA,oBAERnpD,UAIQA,MAFR,YAEQA,CAFyB,uBAEzBA,CAD0B,iBACfA,MAAA,iBAASA,QACpBA,MAAA,gBAEAA,MADA,IAAAopD,GAAA,mBACAppD,CAD4C,IAAAqpD,GAAA,oBAEhDrpD,QAEIA,MADJ,aACIA,CADe,YACCA,MAAA,yCAExBA,YAIQA,MAFR,aAEQA,CAFyB,wBAEzBA,CAD0B,iBACfA,MAAA,uBAAeA,QAC1BA,MAAA,gBAEAA,MADA,IAAAspD,GAAA,mBACAtpD,CAD8C,IAAAupD,GAAA,oBAElDvpD,QAEIA,MADJ,aACIA,CADe,YACCA,MAAA,wCAExBA,YAKQA,MAFR,aAEQA,CAFyB,wBAEzBA,CAD0B,iBACfA,MAAA,qBAAaA,QACxBA,MAAA,gBACAA,MAAA,IAAAwpD,GAAA,oBACJxpD,QAEIA,MADJ,aACIA,CADe,YACCA,MAAA,wCAExBA,YAIQA,MAFR,aAEQA,CAFyB,wBAEzBA,CAD0B,iBACfA,MAAA,mBAAWA,QACtBA,MAAA,gBACAA,MAAA,IAAAypD,GAAA,oBAERzpD,UAIQA,MAFR,aAEQA,CAFyB,wBAEzBA,CAD0B,iBACfA,MAAA,uCAA+BA,QAC1CA,MAAA,gBACAA,MAAA,IAAA0pD,GAAA,oBAEJ1pD,QACAA,MAAA,cACIA,MAAA,IAAA2pD,GAAA,uBAKR3pD,UAIQA,MAFR,aAEQA,CAFyB,wBAEzBA,CAD0B,iBACfA,MAAA,oBAAYA,QACvBA,MAAA,gBAIZA,YAEAA,MAAA,IAAA4pD,GAAA,2BAKR5pD,mCAhM4JA,MAAA,YAAA+iC,EAAA8mB,sBAU5H7pD,MAAA,IAAAA,MAAA,OAAA+iC,EAAAvN,MAAA3E,SAAA,aACA7wB,cAAA,OAAA+iC,EAAAvN,MAAA3E,SAAA,cAAAkS,EAAAvN,MAAA3E,SAAA,cAAAkS,EAAAvN,MAAA3E,SAAA,YAYI7wB,MAAA,IAAAA,MAAA,OAAA+iC,EAAAzK,SAAAzH,SAAA,aACA7wB,cAAA,OAAA+iC,EAAAzK,SAAAzH,SAAA,YAMA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAA+mB,WAAAj5B,SAAA,aACA7wB,cAAA,OAAA+iC,EAAA+mB,WAAAj5B,SAAA,uBAgCJ7wB,MAAA,IAAAA,MAAA,OAAA+iC,EAAArxB,MAAAmf,SAAA,aACA7wB,cAAA,OAAA+iC,EAAArxB,MAAAmf,SAAA,YAMA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAApxB,MAAAkf,SAAA,aACA7wB,cAAA,OAAA+iC,EAAApxB,MAAAkf,SAAA,YAQA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAAlxB,MAAAgf,SAAA,aACA7wB,cAAA,OAAA+iC,EAAAlxB,MAAAgf,SAAA,UAQA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAAhxB,SAAA8e,SAAA,aAeA7wB,MAAA,IAAAA,MAAA,OAAA+iC,EAAA/wB,KAAA6e,SAAA,aAQwB7wB,MAAA,GAAAA,MAAA,UAAA+iC,EAAAgnB,YAIxB/pD,cAAA,OAAA+iC,EAAAxuB,SAAAsc,SAAA,aAQA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAA9wB,IAAA4e,SAAA,aACA7wB,cAAA,OAAA+iC,EAAA9wB,IAAA4e,SAAA,YAWA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAAjxB,MAAA+e,SAAA,aACA7wB,cAAA,OAAA+iC,EAAAjxB,MAAA+e,SAAA,YAYA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAAinB,OAAAn5B,SAAA,YAWA7wB,MAAA,GAAAA,MAAA,OAAA+iC,EAAAknB,OAAAp5B,SAAA,YAOqC7wB,MAAA,GAAAA,MAAA,cAAA+iC,EAAAmnB,SAAA7vD,OACpB2F,cAAA,OAAA+iC,EAAAnR,IAAAf,SAAA,YAAAkS,EAAAnR,IAAAf,SAAA,eAId7wB,MAAA,GAAAA,MAAA,QAAA+iC,EAAAskB,qBAAAtkB,EAAAukB,oBAgBRtnD,MAAA,GAAAA,MAAA,QAAA+iC,EAAA8mB,qBAAAt1B,WAAAwO,EAAAlS,WAAAkS,EAAAonB,6CAxO3BnqD,MAFA,EAAAoqD,EAAA,UAEApqD,CAF2C,EAAAqqD,GAAA,wCA+C3CrqD,MAAA,EAAAsqD,GAAA,wCA/CItqD,MAAA,QAAA+iC,EAAAskB,oBAEWrnD,cAAA,OAAA+iC,EAAAskB,oBAAAtkB,EAAAukB,oBAAAvkB,EAAAwkB,iBAAAvnD,MAAA,IAAA+iC,EAAA8kB,uBA6C0F7nD,MAAA,GAAAA,MAAA,QAAA+iC,EAAAskB,qBCrDzH,MAAMkD,GAAiB,CACrB,CACElrD,KAAO,GACPmrD,UCiBkC,MAAhC,MAAOC,EAiDX/sD,YACUgtD,EACA57C,GACAg0C,GACA+C,GACA8E,IAJA/sD,KAAA8sD,eACA9sD,KAAAkR,WACAlR,KAAAklD,gBACAllD,KAAAioD,wBACAjoD,KAAA+sD,aApDF/sD,KAAA4xB,qBAAuB,IAAIrxB,IAE3BP,KAAAgtD,gBAA0B,GAC1BhtD,KAAAitD,cAAgB,iBAChBjtD,KAAAktD,aAAe,2BACfltD,KAAAmtD,cAAgB,wEAChBntD,KAAAotD,cAAgB,iBAQjBptD,KAAA2pD,iBAA2B,EAC3B3pD,KAAAypD,oBAA8B,EAC9BzpD,KAAA0pD,oBAA8B,EAC9B1pD,KAAAizB,UAAoB,EAEpBjzB,KAAAusD,iBAA2B,EAE3BvsD,KAAAqtD,iBAA2B,EAC3BrtD,KAAAsqD,YAAsB,EACtBtqD,KAAA8oD,eAAyB,GAEzB9oD,KAAAstD,KAAe,kDACfttD,KAAAoqD,qBAA+B,EAI/BpqD,KAAAiqD,qBAAuB,IAAI/pD,IAAwB,IAEnDF,KAAA43B,MAAqB,IAAItO,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQlvB,KAAKitD,eAAgB1jC,KAAWyN,UAAU,GAAIzN,KAAWgkC,UAAU,MACrJvtD,KAAA06B,SAAwB,IAAIpR,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQlvB,KAAKmtD,iBAC1FntD,KAAAksD,WAA0B,IAAI5iC,KAAY,IAC1CtpB,KAAA8T,MAAqB,IAAIwV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQlvB,KAAKktD,gBACvFltD,KAAA+T,MAAqB,IAAIuV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQlvB,KAAKktD,gBACvFltD,KAAAiU,MAAqB,IAAIqV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQ1vB,MAAkBC,SACpGO,KAAAmU,SAAwB,IAAImV,KAAY,GAAI,CAACC,KAAWC,WACxDxpB,KAAAoU,KAAoB,IAAIkV,KAAY,GAAI,CAACC,KAAWC,WACpDxpB,KAAA2W,SAAwB,IAAI2S,KAAY,GAAI,CAACC,KAAWC,WACxDxpB,KAAAqU,IAAmB,IAAIiV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQ,gBAChFlvB,KAAAkU,MAAqB,IAAIoV,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQlvB,KAAKotD,iBACvFptD,KAAAosD,OAAsB,IAAI9iC,KAAY,GAAI,CAACC,KAAW2F,QAAQlvB,KAAKotD,iBACnEptD,KAAAqsD,OAAsB,IAAI/iC,KAAY,GAAI,CAACC,KAAW2F,QAAQlvB,KAAKotD,iBACnEptD,KAAAg0B,IAAmB,IAAI1K,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAW2F,QAAQ,eAChFlvB,KAAAssD,SAAwB,IAAIhjC,MAAY,GAS7CtpB,KAAKmsD,WAAe3U,GACpBx3C,KAAKisD,qBAAuBjsD,KAAKklD,aAAa77B,MAAM,CAElDuO,MAAO53B,KAAK43B,MACZ8C,SAAU16B,KAAK06B,SACfwxB,WAAYlsD,KAAKksD,WACjB74B,QAAS,IAAI/J,KAAY,IACzBxV,MAAO9T,KAAK8T,MACZC,MAAO/T,KAAK+T,MACZE,MAAOjU,KAAKiU,MACZE,SAAUnU,KAAKmU,SACfmD,SAAU,IAAIgS,KAAY,IAC1BlV,KAAMpU,KAAKoU,KACXuC,SAAU3W,KAAK2W,SACftC,IAAKrU,KAAKqU,IACVH,MAAOlU,KAAKkU,MACZk4C,OAAQpsD,KAAKosD,OACbC,OAAQrsD,KAAKqsD,OACbr4B,IAAKh0B,KAAKg0B,IACVs4B,SAAUtsD,KAAKssD,SACfkB,QAAS,IAAIlkC,KAAY,KAC1B,CAECmkC,WAAY,CACTrtB,KAEGpgC,KAAKg0B,IAAIgH,UADmB,IAA1Bh7B,KAAKg0B,IAAIv3B,MAAMoE,SAAwC,IAAxBb,KAAKssD,SAAS7vD,MAC5B,CAAEixD,YAAY,GAGd,KAAI,GAG3B,EACAj5B,MAAmB,WAAY,gBAIrC,CAGAxlB,WACEjP,KAAK8sD,aAAaa,YACf9qD,QAAKwM,QACLC,UAAU9D,IACTxL,KAAK4tD,OAASpiD,GAAQqiD,EAElB7tD,KAAK4tD,QAAU5tD,KAAK4tD,OAAO/sD,OAAS,EACtCb,KAAKioD,qBAAqBL,YAAY5nD,KAAK4tD,QACxC/qD,QAAKwM,QACLC,UAAU,CACT/K,KAAOupD,KACL9tD,KAAK+tD,oBAAoBD,GAAc,EAGzC/qD,MAAQiB,KACNhE,KAAKypD,oBAAqB,KAI7Ble,IAAI,KACHvrC,KAAKqtD,iBAAkB,GACnBrtD,KAAKypD,oBAAsBzpD,KAAK0pD,qBAClC1pD,KAAKisD,qBAAqBp1B,QAAQ,CAAC4hB,WAAW,GAAM,IAK1Dz4C,KAAKqtD,iBAAkB,EACvBrtD,KAAKguD,QAAQ,8CAA4C,GAK/DhuD,KAAKssD,SAASj3B,aACXxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAO8L,IACDA,GACFrQ,KAAKgtD,gBAAkBhtD,KAAKg0B,IAAIv3B,MAChCuD,KAAKg0B,IAAIknB,SAAS,GAAI,CAAEzC,WAAW,KAGnCz4C,KAAKg0B,IAAIknB,SAASl7C,KAAKgtD,gBAAiB,CAAEvU,WAAW,GAAO,IAMpEz4C,KAAKisD,qBAAqB52B,aACvBxyB,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAMA,KACJvE,KAAKizB,UAAW,EAChBjzB,KAAKiqD,qBAAqB1lD,KAAK,GAAE,GAIzC,CAEOypD,QAAQC,GACbjuD,KAAKstD,KAAOW,GAA0BjuD,KAAKstD,IAC7C,CAEO/C,aAKL,OAJAvqD,KAAKoqD,qBAAsB,EAC3BpqD,KAAKisD,qBAAqBiC,mBAC1BluD,KAAKiqD,qBAAqB1lD,KAAK,IAE3BvE,KAAKisD,qBAAqBlhC,MACrB/qB,KAAKmuD,oBAAoBnuD,KAAKisD,qBAAqBxvD,QAG1DuD,KAAKizB,UAAW,EAChBjzB,KAAKouD,yBAAyB,4DAEvB,EAEX,CAEQL,oBAAoBD,GAC1B,MAAM5M,GAAM4M,EAAet+C,QAAUs+C,EAAet+C,QAAU,GACxD6+C,GAAcP,GAAgBQ,QAC9BC,GAAeT,GAAgBp5C,KAEjCwsC,GAAIl9B,QAAQ,iBAAkB,EAChChkB,KAAK0pD,oBAAqB,EAEjB2E,IAAeE,KACxBvuD,KAAK2pD,iBAAkB,EAEvB3pD,KAAK2D,UAAY4qD,GAAazqD,WAC9B9D,KAAK+oD,iBAAmBwF,GAAaz6C,MAAQ,IAAMy6C,GAAax6C,MAChE/T,KAAKgpD,kBAAoBuF,GAAar5C,cAAcjB,MACpDjU,KAAKipD,kBAAoBsF,GAAa/3C,cAActC,MAGhDm6C,IACFruD,KAAKguD,QAAQK,GAAYG,oBAAoBC,QAInD,CAEQN,oBAAoB3G,GAExB,OAAAxnD,KAAKkR,QAAQkB,KAAK41C,GAAwB,CACxC31C,MAAO,QACNyqB,cACAxtB,UAAW+oB,KAEZv2B,OAAO4sD,SAAS,CAAEC,IAAK,EAAGC,SAAU,WACpC5uD,KAAKisD,qBAAqBxwB,kBAEX,IAAXpD,GAKAr4B,KAAK6uD,cAJF7uD,KAAK4tD,OAIW,IAAKpG,EAAYsH,WAAYz2B,GAAQ02B,OAAQ/uD,KAAK4tD,OAAQoB,SAAS,GAHnE,IAAKxH,EAAYsH,WAAYz2B,MAMlDr4B,KAAKizB,UAAW,EAChBjzB,KAAKouD,yBAAyB,oIAGzB/1B,MAGJ,CACT,CAEQw2B,cAAcjrB,GACpB5jC,KAAKisD,qBAAqBp1B,QAAQ,CAAE4hB,WAAW,IAE/Cz4C,KAAKsqD,YAAa,EAClBtqD,KAAK8oD,eAAiB,wCAEtBllB,EAAU1vB,MAAQ0vB,EAAU1vB,MAAM8jC,QAAQ,eAAgB,IAC1DpU,EAAUwoB,OAASxoB,GAAWwoB,OAAOpU,QAAQ,eAAgB,IAC7DpU,EAAUyoB,OAASzoB,GAAWyoB,OAAOrU,QAAQ,eAAgB,IAE7Dh4C,KAAKioD,qBAAqBV,aAAa3jB,GACpC/gC,QAAKwM,QACLC,UAAU,CACT/K,KAAOqwB,KACL50B,KAAKivD,6BAA6Br6B,GAAQ,EAE5C7xB,MAAQ6xB,KACN50B,KAAKivD,6BAA6Br6B,GAAS7xB,OAAO,EAAI,GAG9D,CAEQksD,6BAA6Br6B,EAAgB7xB,IAAiB,GAKpE,GAJA/C,KAAKizB,SAA+B,GAApB2B,EAASkX,SAAgB/oC,GACzC/C,KAAKsqD,YAAa,EAClBtqD,KAAK8oD,eAAiB,GAElBl0B,EAAU,CACZ,MAAMssB,GAAMtsB,EAASplB,QAEjBxP,KAAKizB,UACPjzB,KAAKisD,qBAAqBn1B,OAAO,CAAE2hB,WAAW,IAE1CyI,GAAIl9B,QAAQ,mBAAoB,EAElChkB,KAAKouD,yBAAyB,6FAA+FnsD,IAAYC,WAAa,kEAGtJlC,KAAKouD,yBAAyBlN,KAOP,QAArBtsB,EAASs6B,UACXlvD,KAAKusD,iBAAkB,EACvBvsD,KAAKouD,yBAAyB,oNAK9BpuD,KAAKouD,yBAAyB,oEAAsEnsD,IAAYC,WAAa,oDAInI,MACElC,KAAKisD,qBAAqBn1B,OAAO,CAAE2hB,WAAW,IAC9Cz4C,KAAKouD,yBAAyB,kDAIlC,CAEQA,yBAAyB5+C,GAC/BxP,KAAKoqD,qBAAsB,EAC3BpqD,KAAK+sD,UAAU5hC,eACfnrB,KAAKiqD,qBAAqB1lD,KAAKiL,EACjC,CAEOg6C,cACLxpD,KAAKypD,oBAAqB,EAC1BzpD,KAAK0pD,oBAAqB,EAC1B1pD,KAAK2pD,iBAAkB,EACvB3pD,KAAKoqD,qBAAsB,CAC7B,CAEAh/B,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,mDApTW4iC,GAAyBzqD,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,GAAAnQ,MAAAoQ,KAAA,oCAAzBq6C,EAAyBr8C,UAAA,4BAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,8qGAAAC,SAAA,SAAAC,GAAAC,OAAA,EAAAD,KFvBlCzO,MADJ,UACIA,CADuB,WAEnBA,MAAA,WAEAA,MAAA,WAKIA,MAJA,EAAA+sD,GAAA,qBAIA/sD,CAJmE,EAAAgtD,GAAA,yBAAAhtD,OAyP/EA,qCA5PoCA,MAAA,GAAAA,MAAA,MAAA0O,GAAAw8C,KAAAlrD,OAGTA,MAAA,GAAsCA,MAAtC,QAAA0O,GAAAu8C,iBAAAv8C,GAAAw5C,WAAsCloD,CAAA,WAAAitD,m1DEmBpDxC,CAAyB,ODT/B,IAAMyC,GAAyB,MAAhC,MAAOA,sDAAyB,mCAAzBA,GAAyB,uCAH1BC,KAAaC,SAAS7C,IACtB4C,OAAY,SAEXD,CAAyB,KEazBG,GAAkB,MAAzB,MAAOA,sDAAkB,mCAAlBA,GAAkB,wCAPlB,CACT,CACEC,QAASC,KACTC,SAAUC,OAEbroC,QAAA,CAVCC,KACA6nC,GACA5nC,MAAY,SAUH+nC,CAAkB,oECnBxB,IAAMK,EAAa,MAApB,MAAOA,EACXhwD,YACUiwD,EACAC,GADAhwD,KAAA+vD,KACA/vD,KAAAgwD,UACN,CACJ/gD,WACEjP,KAAKgwD,SAASC,SAASjwD,KAAK+vD,GAAGxW,cAAe,cAC9C/0C,WAAW,KACTxE,KAAKgwD,SAASE,SAASlwD,KAAK+vD,GAAGxW,cAAe,QAAS,SACvDv5C,KAAKgwD,SAASG,aACZnwD,KAAK+vD,GAAGxW,cACR,cACA,cAEFv5C,KAAKgwD,SAASG,aAAanwD,KAAK+vD,GAAGxW,cAAe,YAAa,KAAI,EAClE,IACL,CAEqC6W,UAAUhgD,GAC7C,IAAIywC,EAAmBzwC,GASqB,IAA1C,CAAC,EAAG,EAAG,GAAI,GAAI,IAAI4T,QAAQ68B,EAAEwP,UAEd,KAAdxP,EAAEwP,UAAmBxP,EAAEyP,SAAWzP,EAAE0P,UAEtB,KAAd1P,EAAEwP,UAAmBxP,EAAEyP,SAAWzP,EAAE0P,UAEtB,KAAd1P,EAAEwP,UAAmBxP,EAAEyP,SAAWzP,EAAE0P,UAEtB,KAAd1P,EAAEwP,UAAmBxP,EAAEyP,SAAWzP,EAAE0P,UAEpC1P,EAAEwP,SAAW,IAAMxP,EAAEwP,SAAW,IACpB,KAAbxP,EAAEwP,UAODxP,EAAE2P,UAAY3P,EAAEwP,QAAU,IAAMxP,EAAEwP,QAAU,MAC5CxP,EAAEwP,QAAU,IAAMxP,EAAEwP,QAAU,MAE/BxP,EAAEzc,gBAEN,CAEmCqsB,QAAQrgD,GACzC,IAAIywC,EAAmBzwC,EAEnBsgD,EAAMC,OAAO3wD,KAAK+vD,GAAGxW,cAAc98C,OACvC,GAFkB,YAEDm0D,KAAK5wD,KAAK+vD,GAAGxW,cAAc98C,QAEtB,GACXi0D,EAAI7vD,QAAU,GAAI,CAI3B,GAHiB,KAAbggD,EAAEwP,UACJrwD,KAAK+vD,GAAGxW,cAAc98C,MAAQuD,KAAK+vD,GAAGxW,cAAc98C,MAAMo0D,UAAU,EAAIH,EAAI7vD,OAAS,IAErE,GAAd6vD,EAAI7vD,QAA4B,GAAbggD,EAAEwP,QAAc,CACrC,IAAIlU,EAASuU,EAAI9H,MAAM,KACC,GAApBzM,EAAO,GAAGt7C,SACZb,KAAK+vD,GAAGxW,cAAc98C,MAAQ0/C,EAAO,GAAK,KAAOA,EAAO,IAE1Dn8C,KAAK+vD,GAAGxW,cAAc98C,MAAQuD,KAAK+vD,GAAGxW,cAAc98C,MAAMq0D,OAAO,IACnE,CACkB,GAAdJ,EAAI7vD,QAA4B,GAAbggD,EAAEwP,UACnBK,EAAIK,SAAS,OACf/wD,KAAK+vD,GAAGxW,cAAc98C,MAAQ,EAAIuD,KAAK+vD,GAAGxW,cAAc98C,OAC1DuD,KAAK+vD,GAAGxW,cAAc98C,MAAQuD,KAAK+vD,GAAGxW,cAAc98C,MAAMq0D,OAAO,KAErE,OAlBE9wD,KAAK+vD,GAAGxW,cAAc98C,MAAQ,GAC9B2T,EAAMg0B,iBAkBRpkC,KAAK+vD,GAAGxW,cAAc98C,MAAQuD,KAAK+vD,GAAGxW,cAAc98C,MAAMu7C,QAAQ,eAAgB,KACpF,iDA9EW8X,GAAa1tD,0BAAA,oCAAb0tD,EAAat/C,UAAA,oBAAAwgD,aAAA,SAAAngD,EAAAC,GAAA,EAAAD,GAAbzO,MAAA,mBAAA2O,GAAA,OAAAD,EAAAs/C,UAAAr/C,EACb,EADa3O,CAAa,iBAAA2O,GAAA,OAAbD,EAAA2/C,QAAA1/C,EAAe,cAAf++C,CAAa,6ECmCnB,IAAMmB,EAAgB,MAAvB,MAAOA,oDAAgB,mCAAhBA,GAAgB,uCAhBzBxpC,OAAY,SAgBHwpC,CAAgB,oECvCtB,IAAMC,EAAwB,MAA/B,MAAOA,EAEXpxD,YAA6BiwD,EAAiCC,GAAjChwD,KAAA+vD,KAAiC/vD,KAAAgwD,UAAuB,CAErFmB,kBAEE,MAAMC,EAAen1B,KAAKG,SAASzxB,SAAS,IAAI0mD,OAAM,GACtDrxD,KAAKgwD,SAASG,aAAanwD,KAAK+vD,GAAGxW,cAAe,OAAQ6X,GAC1DpxD,KAAKgwD,SAASG,aAAanwD,KAAK+vD,GAAGxW,cAAe,eAAgB6X,EACpE,iDATWF,GAAwB9uD,0BAAA,oCAAxB8uD,EAAwB1gD,UAAA,yCAAxB0gD,CAAwB,kGCI9B,IAAMI,EAAuB,MAA9B,MAAOA,EAKXxxD,YACUiwD,EACAC,EACYuB,GAFZvxD,KAAA+vD,KACA/vD,KAAAgwD,WACYhwD,KAAAuxD,UAPbvxD,KAAAwxD,kBAAyB,IAE1BxxD,KAAAyxD,WAAa,IAAIlxD,GAMtB,CAEgCmxD,SAASthD,GAE5C,CAEAnB,WACEjP,KAAKgwD,SAASG,aAAanwD,KAAK+vD,GAAGxW,cAAe,YAAav5C,KAAKwxD,kBAAkB7mD,YAClF3K,KAAKuxD,SACPvxD,KAAKuxD,QAAQl8B,cAAcxyB,QAAKyyB,KAAUt1B,KAAKyxD,aAAaniD,UAAW7S,MAE3E,CAEA00D,kBACEnxD,KAAK2xD,IAAM3xD,KAAKgwD,SAASnJ,cAAc,QACvC7mD,KAAK2xD,IAAIC,UAAUrmB,IAAI,SACvBvrC,KAAKgwD,SAAS6B,aAAa7xD,KAAK+vD,GAAGxW,cAAcuY,WAAY9xD,KAAK2xD,IAAK3xD,KAAK+vD,GAAGxW,cAAcwY,YAC/F,CAEA3mC,cACEprB,KAAKyxD,WAAWltD,UAAK,GACrBvE,KAAKyxD,WAAWxnC,WACZjqB,KAAK2xD,KAAK3xD,KAAK2xD,IAAIK,QACzB,iDAhCWV,GAAuBlvD,gCAAAC,KAAA,uCAAvBivD,EAAuB9gD,UAAA,8BAAAwgD,aAAA,SAAAngD,EAAAC,GAAA,EAAAD,GAAvBzO,MAAA,iBAAA2O,GAAA,OAAAD,EAAA4gD,SAAA3gD,EAAgB,6DAAhBugD,CAAuB,mECJ7B,IAAMW,EAAoB,MAA3B,MAAOA,EACXnyD,YAAoBoyD,GAAAlyD,KAAAkyD,KAAkB,CACHC,cAAc/hD,GAC/C,MAAMgiD,EAAcpyD,KAAKkyD,IAAI3Y,cAAc98C,MAC3CuD,KAAKkyD,IAAI3Y,cAAc98C,MAAQ21D,EAAYpa,QAAQ,WAAY,IAC1Doa,IAAgBpyD,KAAKkyD,IAAI3Y,cAAc98C,OAC1C2T,EAAMy0B,iBAEV,iDARWotB,GAAoB7vD,aAAA,oCAApB6vD,EAAoBzhD,UAAA,2BAAAwgD,aAAA,SAAAngD,EAAAC,GAAA,EAAAD,GAApBzO,MAAA,iBAAA2O,GAAA,OAAAD,EAAAqhD,cAAAphD,EAAqB,cAArBkhD,CAAoB,8ECA1B,IAAMI,EAAwB,MAA/B,MAAOA,EACXvyD,YAAmBwyD,GAAAtyD,KAAAsyD,WAAuB,CAG1CC,cAAcniD,GACZpQ,KAAKmyD,cAAc/hD,GAAO,EAC5B,CAGAoiD,iBAAiBpiD,GACfpQ,KAAKmyD,cAAc/hD,EAAMuT,OAAOlnB,OAAO,EACzC,CAEA01D,cAAc/hD,EAAYqiD,GACxB,IAAIzX,EAAI5qC,EAAM4nC,QAAQ,MAAO,IAAI0a,MAAM,+BAEvC1yD,KAAKsyD,UAAUK,cAAeC,WAD9BxiD,EAAS4qC,EAAE,GAAY,IAAMA,EAAE,GAAK,KAAOA,EAAE,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAvDA,EAAE,GAEpB,iDAjBWqX,GAAwBjwD,MAAAC,MAAA,oCAAxBgwD,EAAwB7hD,UAAA,+BAAAwgD,aAAA,SAAAngD,EAAAC,GAAA,EAAAD,GAAxBzO,MAAA,yBAAA2O,GAAA,OAAAD,EAAAyhD,cAAAxhD,EAAqB,EAArB3O,CAAwB,6BAAA2O,GAAA,OAAxBD,EAAA0hD,iBAAAzhD,EAAwB,cAAxBshD,CAAwB,8ECA9B,IAAMQ,EAA2B,MAAlC,MAAOA,EACX/yD,YAAmBwyD,GAAAtyD,KAAAsyD,WAAuB,CAG1CC,cAAcniD,GACZpQ,KAAKmyD,cAAc/hD,GAAO,EAC5B,CAGAoiD,iBAAiBpiD,GACfpQ,KAAKmyD,cAAc/hD,EAAMuT,OAAOlnB,OAAO,EACzC,CAEA01D,cAAc/hD,EAAYqiD,GACxB,IAAItW,EAAkB,MAAT/rC,EAAgBA,EAAM4nC,QAAQ,MAAO,IAAM,GACpDya,GAAatW,EAAOt7C,QAAU,IAChCs7C,EAASA,EAAO0U,UAAU,EAAG1U,EAAOt7C,OAAS,IAEzB,IAAlBs7C,EAAOt7C,OACTs7C,EAAS,GACAA,EAAOt7C,QAAU,EAC1Bs7C,EAASA,EAAOnE,QAAQ,aAAc,MAC7BmE,EAAOt7C,QAAU,EAC1Bs7C,EAASA,EAAOnE,QAAQ,sBAAuB,UACtCmE,EAAOt7C,QAAU,KAG1Bs7C,EAASA,EAAO0U,UAAU,EAAG,KAF7B1U,EAASA,EAAOnE,QAAQ,+BAAgC,aAK1Dh4C,KAAKsyD,UAAUK,cAAeC,WAAWzW,EAC3C,iDA/BW0W,GAA2BzwD,MAAAC,MAAA,oCAA3BwwD,EAA2BriD,UAAA,kCAAAwgD,aAAA,SAAAngD,EAAAC,GAAA,EAAAD,GAA3BzO,MAAA,yBAAA2O,GAAA,OAAAD,EAAAyhD,cAAAxhD,EAAqB,EAArB3O,CAA2B,6BAAA2O,GAAA,OAA3BD,EAAA0hD,iBAAAzhD,EAAwB,cAAxB8hD,CAA2B,oCCHlC,SAAUp+B,EAAmB3B,EAAqBggC,GACpD,OAAQ1yB,IACJ,MACM2yB,EAAkB3yB,EAAUpN,SAAS8/B,GACvCC,EAAgB1kC,SAAW0kC,EAAgB1kC,OAAOW,oBAIlD+jC,EAAgB/3B,UANJoF,EAAUpN,SAASF,GAKvBr2B,QAAUs2D,EAAgBt2D,MACR,CAAEuyB,oBAAoB,GAEtB,KAAI,CAG1C,0JCZiE5sB,MAA3D,WAA2DA,CAAA,gBAAiBA,MAAA,aAAkBA,oCAQxFA,MADF,UACEA,CAD4D,WAClCA,MAAA,GAC5BA,oCAD4BA,MAAA,GAAAA,MAAA4wD,EAAAlU,uCAJhC18C,MAAA,GACEA,MAAA,UAAyCA,MAAA,GAAsBA,QAC/DA,MAAA,SACEA,MAAA,EAAA6wD,EAAA,aAGF7wD,0CALyCA,MAAA,GAAAA,MAAA8wD,EAAAlU,YAEhB58C,MAAA,GAAAA,MAAA,UAAA8wD,EAAAjU,oCAJ7B78C,MAAA,SACEA,MAAA,EAAA+wD,EAAA,uBAQF/wD,8BARkCA,cAAA,gBAAAu+B,EAAA1gC,KAAA,KAAA0gC,EAAA1gC,KAAAg/C,mDAYlC78C,MAAA,eAAoEA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAAqT,GAAAv+B,MAAA,UAAAA,MAASu+B,GAAAyyB,YAAW,GAAEhxD,MAAA,SAAGA,+BAC7FA,MAAA,eAAqFA,MAAA,aAAOA,kCACpEA,MAAA,eAA2CA,MAAA,GAAoCA,+BAApCA,cAAA,aAAAu+B,EAAA1gC,KAAA,KAAA0gC,EAAA1gC,KAAAwK,MAAA,qCAHrErI,MAAA,YAGEA,MAFA,EAAAixD,EAAA,gBAEAjxD,CAF0F,EAAAkxD,EAAA,gBAE1FlxD,CADqF,EAAAmxD,EAAA,yBAAAnxD,OAEvFA,yCAHWA,cAAA,oBAAAu+B,EAAA1gC,KAAA,KAAA0gC,EAAA1gC,KAAAwK,OACArI,QAA2BA,MAA3B,qBAAAu+B,EAAA1gC,KAAA,KAAA0gC,EAAA1gC,KAAA63C,SAA2B11C,CAAA,WAAAoxD,0BAIpCpxD,MADF,WACEA,CADmE,eACTA,MAAA,QAAEA,QAC5DA,MAAA,eAA2CA,MAAA,YAC7CA,WClBK,IAAM66B,GAAsB,MAA7B,MAAOA,EAEXn9B,YACS+S,EACyB5S,GADzBD,KAAA6S,YACyB7S,KAAAC,MAC9B,CAEJgP,WACA,CAEAmkD,YACEpzD,KAAK6S,UAAUI,OAAM,EACvB,iDAZWgqB,GAAsB76B,MAAAC,MAAAD,MAIvBkO,MAAe,oCAJd2sB,EAAsBzsB,UAAA,yBAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,y0BAAAC,SAAA,SAAAC,EAAAC,IAAA,EAAAD,IDN/BzO,MAFJ,UAEIA,CAFyF,UAEzFA,CADsB,WAEpBA,MAAA,EAAAqxD,EAAA,cACArxD,MAAA,SACFA,QACAA,MAAA,EAAAsxD,EAAA,aAUFtxD,QAOAA,MALA,EAAAuxD,EAAA,YAKAvxD,CALqE,EAAAwxD,EAAA,aASvExxD,eAxB2CA,MAAA,GAAAA,MAAA,eAAA0O,GAAA7Q,MAAA6Q,GAAA7Q,KAAA63C,UAClC11C,cAAA,YAAA0O,GAAA7Q,KAAAzD,KAAA4F,OAECA,cAAA,aAAA0O,GAAA7Q,MAAA,MAAA6Q,GAAA7Q,KAAAg/C,SAAA,KAAAnuC,GAAA7Q,KAAAg/C,SAAAp+C,QAY6BuB,cAAA,oBAAA0O,GAAA7Q,KAAAwK,MAKArI,cAAA,oBAAA0O,GAAA7Q,KAAAwK,gVCf1BwyB,CAAsB,uFCH5B,IAAM42B,EAAW,MAAlB,MAAOA,EAEXjiD,UAAUnV,GACR,IAAIq3D,EAAQ/nD,MACAgoD,EAAYhoD,IAAOtP,GAI/B,OAHoBq3D,EAAMlZ,KAAKmZ,EAAW,QAI9C,iDATaF,EAAW,oDAAXA,EAAWhL,MAAA,YAAXgL,CAAW,oECAjB,IAAMG,EAAc,MAArB,MAAOA,EAEXpiD,UAAU82C,GAGR,OAAOA,EAAOE,MAFO,0BAEad,KAAK,IACzC,iDANWkM,EAAc,uDAAdA,EAAcnL,MAAA,YAAdmL,CAAc,4ECApB,IAAMC,EAAY,MAAnB,MAAOA,EACXn0D,YAAoBo0D,GAAAl0D,KAAAk0D,WAA0B,CAE9CtiD,UAAUuiD,GACR,OAAOn0D,KAAKk0D,UAAU9L,wBAAwB+L,EAChD,iDALWF,GAAY7xD,MAAAC,KAAA,yDAAZ4xD,EAAYpL,MAAA,YAAZoL,CAAY,qHCIlB,IAAMG,EAAmB,MAA1B,MAAOA,EAIXt0D,cAAiB,CAGVu0D,KAAKhR,GAEV,MAAM3uC,EAAO,CACX4/C,KAAM,QAGR,OAAIjR,GACF3uC,EAAKihB,IAAM,OAAU1zB,IAAYsyD,IAAKhO,cAAgB,SAAWlD,GAAa34C,QAC9EgK,EAAKlW,KAAO6kD,GAAavvC,MAAQ,IAAMuvC,GAAatvC,OAGpDW,EAAK8/C,WAAY,EAEnBx0D,KAAKy0D,WAAUC,MAAWzyD,IAAY0yD,qBAAsBjgD,KAEnD1U,KAAKy0D,OAChB,CAEOG,QAAQC,EAAiBC,GAA4B,GAC1D,MAAMC,EAAY,IAAIx0D,IAEtB,OAAAP,KAAKy0D,QAAQO,GAAG,UAAUH,IAAW,KACnCE,EAAUxwD,MAAI,GAGhBvE,KAAKy0D,QAAQQ,iBAAiBC,KAAK,KACjCH,EAAUxwD,MAAI,GAGTwwD,EAAUlyD,QACfwB,KAAI,IACKrE,KAAKy0D,QAAQU,UAAUN,EAASC,IAG7C,CAEM1pC,cAAW,IAAAgqC,EAAAp1D,KAAA,SAAAq1D,KAAA,kBACTD,EAAKX,QAAQxhD,OAAQ,EADZ,EAEjB,iDA7CWmhD,EAAmB,sCAAnBA,EAAmB9xD,QAAnB8xD,EAAmB7xD,UAAAC,WAFlB,QAAM,SAEP4xD,CAAmB,4TCiBzB,IAAMkB,EAAa,MAApB,MAAOA,GA0BXx1D,YACUyxB,EACA3I,EACAkZ,EACAyzB,EACA9nC,EACA+nC,GACAC,GACAlW,EACDzsC,IARC9S,KAAAuxB,WACAvxB,KAAA4oB,KACA5oB,KAAA8hC,SACA9hC,KAAAu1D,mBACAv1D,KAAAytB,cACAztB,KAAAw1D,eACAx1D,KAAAy1D,gBACAz1D,KAAAu/C,eACDv/C,KAAA8S,UAlCD9S,KAAA01D,MAAQ,IAAIn1D,IACZP,KAAA21D,OAAS,IAAIp1D,IACbP,KAAA41D,YAAc,IAAIr1D,IAClBP,KAAA61D,UAAY,IAAIt1D,IAChBP,KAAAwP,QAAe,GACfxP,KAAAqyB,WAAkB,GAClBryB,KAAA81D,QAAU,IAAIv1D,IACdP,KAAA4xB,qBAAuB,IAAIrxB,IAK3BP,KAAA+1D,iBAAwB,EACxB/1D,KAAAg2D,sBAAgC,EACjCh2D,KAAAi2D,yBAA2B,IAAI11D,IAE/BP,KAAAk2D,wBAA+B,GAG/Bl2D,KAAAm2D,cAAgB,IAAI51D,IACpBP,KAAAo2D,iBAAmB,IAAI71D,IAiB5BP,KAAKqyB,WAAcmlB,EACnBx3C,KAAKq2D,gBAAkBr2D,KAAKytB,YAAYrtB,SAASkP,UAAU,CACzD/K,KAAO8+C,IACe,OAAhBA,IACFrjD,KAAKs2D,aAAejT,MAM1BrjD,KAAKu1D,iBAAiBX,QAAQh3D,MAC3BiF,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWinD,IACVv2D,KAAK+1D,gBAAkBQ,IAG3Bv2D,KAAKu1D,iBAAiBX,QAAQ/2D,MAC3BgF,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWinD,IACVv2D,KAAKg2D,qBAAuBO,EAC5Bv2D,KAAKi2D,yBAAyB1xD,KAAKgyD,EAAI,EAE7C,CAEAnrC,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WAEtBjqB,KAAKq2D,iBACPr2D,KAAKq2D,gBAAgBhrC,aACzB,CAEOmrC,+BACL,OAAOx2D,KAAKg2D,oBACd,CAEOS,wBAAwB3wC,GAC7B,MAAM4wC,EAAqB12D,KAAK22D,sBAEhC,OAAKD,GAAsB5wC,EAClB9lB,KAAKy1D,aAAapvC,gBAAgBP,GACtCjjB,QACCwB,KAAK2K,IACHhP,KAAK22D,sBAAwB3nD,EAC7BhP,KAAKm2D,cAAc5xD,KAAKyK,GAEjBA,MAIbxK,WAAW,KACTxE,KAAKm2D,cAAc5xD,KAAKmyD,EAAkB,GAGvC12D,KAAKm2D,cAAc91D,eAC5B,CAEO4P,2BAA2B6V,EAAgB5iB,GAChD,OAAOlD,KAAKy1D,aAAanvC,mBAAmBpjB,EAAS4iB,GAClDjjB,QACCwB,KAAK2K,IACHhP,KAAK22D,sBAAwB3nD,EAC7BhP,KAAKm2D,cAAc5xD,KAAKyK,GAEjBA,IAGf,CAEOtL,mBAAmBC,EAAoB,IAC5C,OAAO3D,KAAKw1D,YAAY9xD,mBAAmBC,EAC7C,CAEOizD,2BAA2BjzD,EAAmBkzD,GACnD,MAAMC,EAAwB92D,KAAK+2D,yBAEnC,OAAMD,GAAyBnzD,IAAwB,IAAVkzD,EACpC72D,KAAKw1D,YAAY9xD,mBAAmBC,GACxCd,QACCwB,KAAKqK,IACH1O,KAAK+2D,yBAA2BroD,EAChC1O,KAAKo2D,iBAAiB7xD,KAAKmK,GAEpBA,MAIblK,WAAW,KACTxE,KAAKo2D,iBAAiB7xD,KAAKuyD,EAAqB,GAG7C92D,KAAKo2D,iBAAiB/1D,eAC/B,CAEO22D,mBAAmBrzD,EAAmBT,GAC3C,MAAM+zD,EAAa,IAAI12D,IACvB,OAAAP,KAAKw1D,YAAY3xD,sBAAsBF,EAAWT,GAC/CL,QAAKwM,QACLC,UAAU,CACT/K,KAAO2yD,IACLD,EAAW1yD,KAA0B,KAApB2yD,EAASprB,QAAe,IAIxCmrB,CACT,CAEOE,8BAA8BxzD,EAAmBT,GACtD,OAAOlD,KAAKw1D,YAAY3xD,sBAAsBF,EAAWT,GACtDL,QACCwB,KAAKqK,IACH1O,KAAK+2D,yBAA2BroD,EAChC1O,KAAKo2D,iBAAiB7xD,KAAKmK,GAEpBA,IAGf,CAEO0oD,WAAWlrC,GAChBlsB,KAAK61D,UAAUtxD,KAAK2nB,EACtB,CAEOmrC,aACL,OAAOr3D,KAAK61D,UAAUx1D,cACxB,CAEOi3D,eAAeC,GACpBv3D,KAAK41D,YAAYrxD,KAAKgzD,EACxB,CAEOC,iBACL,OAAOx3D,KAAK41D,YAAYv1D,cAC1B,CAEOo3D,aAAa93D,GAElBK,KAAK03D,WAAa/3D,CACpB,CAEOg4D,eACL,OAAO33D,KAAK03D,UACd,CAEOE,SAAS33D,GACdD,KAAK01D,MAAMnxD,KAAKtE,EAClB,CAEO+gC,eAAepyB,GACjB5O,KAAK+1D,iBACN/Y,QAAQ6a,KAAK,qBACb73D,KAAK8hC,OAAO5vB,SAAS,CAAC,QAAUtD,MAEhCouC,QAAQ6a,KAAK,sBACb/1D,OAAOC,SAASC,KAAO,QAAU4M,EAErC,CAEOkpD,WACL,OAAO93D,KAAK01D,MAAMr1D,cACpB,CAEO03D,eAAeh1B,GACpB,OAAO/iC,KAAKuxB,SAAS3f,UAAUmxB,EAAM,aACvC,CAEOi1B,aAAavrD,GAClB,OAAOA,EAAQV,IAAOU,GAAOq3B,mBAAgBvgB,CAC/C,CAGOyU,iBAAiB/3B,EAAWk7B,EAA0B1wB,GAC3D,MAAMwtD,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GACFA,EAAKs5B,QAASC,IAGRx5B,KAAKm4D,gBAAgBF,EAAUz+B,EAAQ/uB,EAFvC0wB,GACE3B,EAAQxb,UAAYmd,EACsBA,EAKF,GAAE,GAG3C88B,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BpV,MAA2B,IAAIqV,KAAY,GAA3B,WAAT7e,EAAwC,CAAC8e,KAAW2F,QAAQ1vB,KAAkBC,QAA+B,CAAC8pB,KAAWC,SAAUD,KAAW2F,QAAQ1vB,KAAkBC,SAC/K03B,WAAY,CAAC,QACbnZ,SAAU,GACVqY,YAAa,GACbn5B,WAAY,MAEP+6D,EAEX,CAEQE,gBAAgBF,EAAez+B,EAAY/uB,EAAY0wB,GAC7D,OAAO88B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAClCpV,MAA2B,IAAIqV,KAAYkQ,EAAQvlB,MAAnC,WAATxJ,EAAmD,CAAC8e,KAAW2F,QAAQ1vB,KAAkBC,QAA0C,CAAC8pB,KAAWC,SAAUD,KAAW2F,QAAQ1vB,KAAkBC,SACrM03B,WAAYqC,EAAQrC,WAAaqC,EAAQrC,WAAW,GAAGovB,cAAgB/sB,EAAQrC,WAAWk6B,MAAM,GAAK,GACrGrzC,SAAUwb,EAAQxb,SAClBqY,YAAa,GACbn5B,WAAYs8B,EAAQxb,UAAYmd,GAA0B,KAE9D,CAGOpD,iBAAiB93B,EAAWi7B,EAA0BzwB,GAC3D,MAAMwtD,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GACFA,EAAKs5B,QAASC,IAGRx5B,KAAKo4D,gBAAgBH,EAAUz+B,EAAQ/uB,EAFvCywB,GACE1B,EAAQtC,UAAYgE,EACsBA,EAKF,GAAE,GAG3C+8B,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BnV,MAA2B,IAAIoV,KAAY,GAA3B,WAAT7e,EAAwC,CAAC8e,KAAWyN,UAAU,KAA4B,CAACzN,KAAWC,SAAUD,KAAWyN,UAAU,MAC5ID,WAAY,CAAC,QACbE,UAAW,GACXC,SAAU,GACVnB,YAAa,GACb74B,WAAY,MAEP+6D,EAEX,CAEQG,gBAAgBH,EAAez+B,EAAY/uB,EAAYywB,GAC7D,OAAO+8B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAClCnV,MAA2B,IAAIoV,KAAYkQ,EAAQtlB,MAAQlU,KAAKq4D,kBAAkB7+B,EAAQtlB,OAAS,GAAnF,WAATzJ,EAAgG,CAAC8e,KAAWyN,UAAU,KAAoF,CAACzN,KAAWC,SAAUD,KAAWyN,UAAU,MAC5PD,WAAYyC,EAAQzC,WAAayC,EAAQzC,WAAW,GAAGwvB,cAAgB/sB,EAAQzC,WAAWs6B,MAAM,GAAK,GACrGp6B,UAAWuC,EAAQvC,UACnBC,SAAUsC,EAAQtC,SAClBnB,YAAa,GACb74B,WAAYs8B,EAAQtC,UAAYgE,GAA0B,KAE9D,CAGQm9B,kBAAkBC,GAIxB,IAAI5F,GAFW,GAAK4F,GAAKtgB,QAAQ,MAAO,IAEpB0a,MAAM,2BAC1B,OAAIA,EACK,IAAMA,EAAM,GAAK,KAAOA,EAAM,GAAK,IAAMA,EAAM,GAEjD,IACT,CAGOz6B,mBAAmBh4B,EAAWg7B,EAA4BxwB,GAC/D,MAAMwtD,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GAAMY,OAAS,GACjBZ,EAAKs5B,QAAQ,CAACC,EAAcwD,MAGtBh9B,KAAKu4D,kBAAkBN,EAAUz+B,EAAQ/uB,EAFzCwwB,GACEzB,EAAQnC,YAAc4D,EACsBA,EAKF,GAAE,GAG7Cg9B,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3B+N,gBAAiB,CAAC,QAClBjjB,SAAmB,WAAT1J,EAAoB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WACpFlS,SAAU,GACVlD,KAAe,WAAT3J,EAAoB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WAChF7S,SAAmB,WAATlM,EAAoB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WACpFnV,IAAc,WAAT5J,EAAoB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAWyN,UAAU,KAC9GmjB,OAAQ,IAAI7wB,KAAY,IAExB+N,WAAY,GACZC,IAAK,GACLC,WAAY,GACZC,YAAa,GACbC,MAAO,GACPvB,cAAe,CAAC,IAChBh5B,WAAY,MAEP+6D,EAEX,CAEQM,kBAAkBN,EAAez+B,EAAY/uB,EAAYwwB,GAC/D,OAAOg9B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAClC+N,gBAAiBoC,EAAQpC,gBAAkBoC,EAAQpC,gBAAgB,GAAGmvB,cAAgB/sB,EAAQpC,gBAAgBi6B,MAAM,GAAK,GACzHl9C,SAAmB,WAAT1J,EAAoB,IAAI6e,KAAYkQ,EAAQrlB,UAAY,IAAImV,KAAYkQ,EAAQrlB,SAAU,CAACoV,KAAWC,WAChHlS,SAAUkiB,EAAQliB,SAClBlD,KAAe,WAAT3J,EAAoB,IAAI6e,KAAYkQ,EAAQplB,MAAQ,IAAIkV,KAAYkQ,EAAQplB,KAAM,CAACmV,KAAWC,WACpG7S,SAAmB,WAATlM,EAAoB,IAAI6e,KAAYkQ,EAAQ7iB,UAAY,IAAI2S,KAAYkQ,EAAQ7iB,SAAU,CAAC4S,KAAWC,WAChHnV,IAAyB,IAAIiV,KAAYkQ,EAAQnlB,IAAnC,WAAT5J,EAAiD,CAAC8e,KAAWyN,UAAU,IAAoC,CAACzN,KAAWC,SAAUD,KAAWyN,UAAU,KAC3JmjB,OAAQ,IAAI7wB,KAAYkQ,EAAQ2gB,QAEhC9iB,WAAYmC,EAAQnC,WACpBC,IAAKkC,EAAQlC,IACbC,WAAYiC,EAAQjC,WACpBC,YAAagC,EAAQhC,YACrBC,MAAO+B,EAAQ/B,MACfvB,cAAe,CAAC,IAChBh5B,WAAYs8B,EAAQnC,YAAc4D,GAA4B,KAElE,CAGOu9B,qBAAqBF,GAI1B,IAAI5F,GAFW,GAAK4F,GAAKtgB,QAAQ,MAAO,IAEpB0a,MAAM,2BAC1B,OAAIA,EACKA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAE1C,IACT,CAEOj5B,aAAaL,GAClB,OAAOA,EAAa/0B,IAAKm1B,KACvBpC,gBAAiBoC,EAAQpC,gBACzBjjB,SAAUqlB,EAAQrlB,SAClBmD,SAAUkiB,EAAQliB,SAClBlD,KAAMolB,EAAQplB,KACduC,SAAU6iB,EAAQ7iB,SAClBtC,IAAKmlB,EAAQnlB,IACb8lC,OAAQ3gB,EAAQ2gB,OAEhB9iB,WAAYmC,EAAQnC,WACpBC,IAAKkC,EAAQlC,IACbC,WAAYiC,EAAQjC,WACpBC,YAAagC,EAAQhC,YACrBC,MAAO+B,EAAQ/B,MACfpiB,gBAAiBmkB,EAAQt8B,aAE7B,CAEO08B,UAAUF,GACf,OAAOA,EAAWr1B,IAAKm1B,KACrBvlB,MAAOulB,EAAQvlB,MACfkjB,WAAYqC,EAAQrC,WACpBnZ,SAAUwb,EAAQxb,SAClB9I,cAAeskB,EAAQt8B,aAE3B,CAEO68B,UAAUF,GACf,OAAOA,EAAWx1B,IAAKm1B,KACrBtlB,MAAOslB,EAAQtlB,MAAM8jC,QAAQ,MAAO,IACpCjhB,WAAYyC,EAAQzC,WACpBE,UAAWuC,EAAQvC,UACnBC,SAAUsC,EAAQtC,SAClB1gB,cAAegjB,EAAQt8B,aAE3B,CAEOu7D,sBAAsB/+B,GAC3B,OAAOA,EAAWr1B,IAAKm1B,KACrBvlB,MAAOulB,EAAQvlB,MACfkjB,WAAYqC,EAAQrC,WACpBnZ,SAAUwb,EAAQxb,WAEtB,CAEA06C,sBAAsB7+B,GACpB,OAAOA,EAAWx1B,IAAKm1B,KACrBtlB,MAAOslB,EAAQtlB,MAAM8jC,QAAQ,MAAO,IACpCjhB,WAAYyC,EAAQzC,WACpBE,UAAWuC,EAAQvC,UACnBC,SAAUsC,EAAQtC,WAEtB,CAGOyhC,aAAaC,GAClB,IACIC,EAAW/2D,OAAOsQ,KAAK,GAAI,SAAU,IACzCymD,EAAS9Q,SAAS31C,OAClBymD,EAAS9Q,SAAS+Q,MAAM,+GAA4GF,EAAgB,kBACpJp0D,WAAW,KACTq0D,EAAS9Q,SAAS90C,QAClB4lD,EAASE,QACTF,EAASG,QACTH,EAAS5lD,OAAK,EACb,IACL,CAEOgmD,yBAAyB7/B,GAC9B,OAAOA,EAAa/0B,IAAKm1B,KACvBpC,gBAAiBoC,EAAQpC,gBACzBjjB,SAAUqlB,EAAQrlB,SAClBmD,SAAUkiB,EAAQliB,SAClBlD,KAAMolB,EAAQplB,KACduC,SAAU6iB,EAAQ7iB,SAClBtC,IAAKmlB,EAAQnlB,IACbgjB,WAAYmC,EAAQnC,WACpBC,IAAKkC,EAAQlC,IACbC,WAAYiC,EAAQjC,WACpB4iB,OAAQ3gB,EAAQ2gB,OAChB3iB,YAAagC,EAAQhC,YACrBC,MAAO+B,EAAQ/B,QAEnB,CAIOyhC,sBAAsBj5D,GAC3B,MAAMg4D,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GACFA,EAAKs5B,QAASC,IACZy+B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BnV,MAAO,IAAIoV,KAAYkQ,EAAQtlB,MAAQlU,KAAKq4D,kBAAkB7+B,EAAQtlB,OAAS,GAAI,CAACqV,KAAWyN,UAAU,MACzGD,WAAYyC,EAAQzC,WAAayC,EAAQzC,WAAW,GAAGwvB,cAAgB/sB,EAAQzC,WAAWs6B,MAAM,GAAK,GACrGp6B,UAAWuC,EAAQvC,UACnBC,SAAUsC,EAAQtC,SAClBnB,YAAa,GACb74B,WAAY,KACZ,GAEG+6D,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BnV,MAAO,IAAIoV,KAAY,GAAI,CAACC,KAAWyN,UAAU,MACjDD,WAAY,CAAC,QACbE,UAAW,GACXC,SAAU,GACVnB,YAAa,GACb74B,WAAY,MAEP+6D,EAEX,CAGOkB,sBAAsBl5D,GAC3B,MAAMg4D,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GACFA,EAAKs5B,QAASC,IACZy+B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BpV,MAAO,IAAIqV,KAAYkQ,EAAQvlB,MAAO,CAACsV,KAAW2F,QAAQ1vB,KAAkBC,SAC5E03B,WAAYqC,EAAQrC,WAAaqC,EAAQrC,WAAW,GAAGovB,cAAgB/sB,EAAQrC,WAAWk6B,MAAM,GAAK,GACrGrzC,SAAUwb,EAAQxb,SAClBqY,YAAa,GACbn5B,WAAY,KACZ,GAEG+6D,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3BpV,MAAO,IAAIqV,KAAY,GAAI,CAACC,KAAW2F,QAAQ1vB,KAAkBC,SACjE03B,WAAY,CAAC,QACbnZ,SAAU,GACVqY,YAAa,GACbn5B,WAAY,MAEP+6D,EAEX,CAIOmB,wBAAwBn5D,GAC7B,MAAMg4D,EAAiB,IAAIC,KAAU,IACrC,OAAIj4D,GACFA,EAAKs5B,QAASC,IACZy+B,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3B+N,gBAAiBoC,EAAQpC,gBAAkBoC,EAAQpC,gBAAgB,GAAGmvB,cAAgB/sB,EAAQpC,gBAAgBi6B,MAAM,GAAK,GACzHl9C,SAAU,IAAImV,KAAYkQ,EAAQrlB,UAClCmD,SAAUkiB,EAAQliB,SAClBlD,KAAM,IAAIkV,KAAYkQ,EAAQplB,MAC9BuC,SAAU,IAAI2S,KAAYkQ,EAAQ7iB,UAClCtC,IAAK,IAAIiV,KAAYkQ,EAAQnlB,IAAK,CAACkV,KAAWyN,UAAU,KAExDK,WAAYmC,EAAQnC,WACpBC,IAAKkC,EAAQlC,IACbC,WAAYiC,EAAQjC,WACpBC,YAAagC,EAAQhC,YACrBC,MAAO+B,EAAQ/B,MACfvB,cAAe,CAAC,IAChBh5B,WAAY,KACZ,GAGG+6D,IAEPA,EAAU7rC,KAAKpsB,KAAK4oB,GAAGS,MAAM,CAC3B+N,gBAAiB,CAAC,QAClBjjB,SAAU,IAAImV,KAAY,IAC1BhS,SAAU,GACVlD,KAAM,IAAIkV,KAAY,IACtB3S,SAAU,IAAI2S,KAAY,IAC1BjV,IAAK,IAAIiV,KAAY,GAAI,CAAEC,KAAWyN,UAAU,KAEhDK,WAAY,GACZC,IAAK,GACLC,WAAY,GACZC,YAAa,GACbC,MAAO,GACPvB,cAAe,CAAC,IAChBh5B,WAAY,MAEP+6D,EAEX,CACOvf,cAAc5L,GAInB,OAHkB9sC,KAAKytB,YAAYjP,cAAchW,gBAExBuyC,UAAWC,GAAcA,GAAKlO,IACvC,CAClB,CACOusB,cAAc9B,GACnBv3D,KAAK21D,OAAOpxD,KAAKgzD,EACnB,CAEO+B,gBACL,OAAOt5D,KAAK21D,OAAOt1D,cACrB,CAEOk5D,0BACL,IAAIx2B,EAAO,IAAI/2B,KACf+2B,SAAKy2B,QAAQ,GACbz2B,EAAK02B,SAAS12B,EAAK22B,WAAa,GACzB32B,CACT,CAEO42B,yBACL,IAAI52B,EAAO,IAAI/2B,KACf+2B,SAAKy2B,QAAQ,GACbz2B,EAAK02B,SAAS12B,EAAK22B,YACZ32B,CACT,CAEOyV,eAAepoC,GACpB,IAAI4qC,EAAI5qC,EAAM4nC,QAAQ,MAAO,IAAI0a,MAAM,+BACvCtiD,OAAS4qC,EAAE,GAAY,IAAMA,EAAE,GAAK,KAAOA,EAAE,IAAMA,EAAE,GAAK,IAAMA,EAAE,GAAK,IAAvDA,EAAE,EAEpB,CAEO4e,WAAW72B,GAChB,OAAOh3B,IAAOg3B,GAAM92B,OAAO,aAC7B,CAGO4tD,iBAAiBC,GACtB,IAAIC,EACJC,EAAwB,GACxBD,SAAuB/5D,KAAKqyB,WAAW9H,OAAQld,IAC7C,GAAIA,EAAI6hC,eAAiB4qB,EAAQvT,cAC/B,OAAOl5C,KAGcxM,OAAS,IAChCm5D,EAAwBD,EAAqB,IAExCC,CACT,CAGOC,iBAAiBH,GACtB,IAAII,EAAYl6D,KAAK65D,iBAAiBC,GACtC,OAAII,GAAaA,EAAU17D,KAClB07D,EAAU17D,KAEZ,EACT,CAEO27D,sBAAsBp3B,GAUxBq3B,OAHWruD,IAAOg3B,GAAMs3B,GAAG,mBAAmBpuD,OAAO,wBACjC28C,MAAM,KAAK0R,MAGlBvuD,IAAOg3B,GAAMs3B,GAAG,mBAAmBpuD,OAAO,uBATnD,cAkBT,CAGOsuD,YAAYx3B,GACjB,IAAIy3B,EAAQzuD,IAAOg3B,GACnB,OAAG/iC,KAAKy6D,YAAYD,GACX,SAASA,EAAMvuD,OAAO,SAExBuuD,EAAMvuD,OAAO,aAEtB,CAEQwuD,YAAYD,GAClB,OAAOA,EAAME,OAAO3uD,MAAU,IAChC,CAGO4uD,aAAan+D,EAAco+D,GAChC,IAAIC,EAAYD,GAAwB,GACxC,OAAKp+D,GAAQA,EAAKqE,QAAUg6D,EACnBr+D,EAEUA,EAAKw7C,QAAQ,iBAAkB,IACrB6Y,UAAU,EAAGgK,GAAa,KAEzD,CAEOC,mBAAmB76D,EAAWwK,GACnC,IAEIwV,EAFA86C,EAAM,GACNC,EAAU/6D,EAAK2oD,MAAM,MAGzB,QAAS7sB,EAAI,EAAGA,EAAIi/B,EAAQn6D,OAAQk7B,IAClCi/B,EAAQj/B,GAAKi/B,EAAQj/B,GAAG6sB,MAAM,KAGhC,QAAS7sB,EAAI,EAAGA,EAAIi/B,EAAQn6D,OAAQk7B,IAAK,CACvC,IAAIgB,GAAM,GACV,QAASC,MAASg+B,EAAQj/B,GAEpB0e,SAASzd,KAAUg+B,EAAQj/B,GAAGl7B,OAAS,EAC3Ck8B,IAAiB,2BAATtyB,EAAmC,GAAKuwD,EAAQj/B,GAAGiB,IAAc,IAAMg+B,EAAQj/B,GAAGiB,IAAS,IAC9FD,IAAiB,2BAATtyB,EAAyCuwD,EAAQj/B,GAAGiB,IAAS,IAAM,IAAMg+B,EAAQj/B,GAAGiB,IAAS,KAG5GD,GAAIs0B,MAAM,EAAGt0B,GAAIl8B,OAAS,GAC1Bk8B,GAAMA,GAAIib,QAAQ,iBAAkB,IAEhCjb,GAAIl8B,OAAS,IAEfk6D,GAAOh+B,GAAM,OACjB,CAEA,GAAW,IAAPg+B,EAEF,YADA/d,QAAQj6C,MAAM,gBAIhB,MAAMk4D,GAA0B,uBAEhC,OAAQxwD,GACN,IAAK,sBACH,IAAIywD,EAAeF,EAAQ,GAAG,IAE9B/6C,EAAW,2BADSi7C,EAAeA,EAAatS,MAAM,KAAK,GAAK,IAAM,IACf,IAAM5oD,KAAKytB,YAAY7rB,WAAW8I,QAAU,IAAMqB,MAASE,OAAOgvD,IAAmB,OAC5I,MACF,IAAK,4BAGHh7C,EAAW,iCAFgB+6C,EAAQ,GAAG,KAAO,OACRnK,UAAU,EAAG,GAAG7Y,QAAQ,YAAa,KACT,IAAMh4C,KAAKytB,YAAY7rB,WAAW8I,QAAU,IAAMqB,MAASE,OAAOgvD,IAAmB,OACtJ,MACF,IAAK,sBAEHh7C,EAAW,0BAD0B+6C,EAAQ,GAAG,IAAM,IACO,IAAMjvD,MAASE,OAAOgvD,IAAmB,OACtG,MACF,IAAK,yBACHh7C,EAAW,4BAA8BjgB,KAAKytB,YAAY7rB,WAAW8I,QAAU,IAAMqB,MAASE,OAAOgvD,IAAmB,OACxH,MACF,QACEh7C,EAAW,sBAAwBjgB,KAAKytB,YAAY7rB,WAAW8I,QAAU,IAAMqB,MAASE,OAAOgvD,IAAmB,OAItH,IAAIE,GAAepT,SAASlB,cAAc,KACtCuU,EAAY,IAAIC,KAAK,CAACN,GAAM,CAAEtwD,KAAM,4BACpCi7C,GAAM4V,IAAIC,gBAAgBH,GAC9BD,GAAan5D,KAAO0jD,GACpByV,GAAaK,SAAWv7C,EACxB8nC,SAASd,KAAKD,YAAYmU,IAC1BA,GAAaM,QACb1T,SAASd,KAAKyU,YAAYP,GAC5B,CAEOj+B,uBACal9B,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAM,8DAGAsgC,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWkb,IACxEA,GAAKxqB,KAAK8S,OAAO0oB,UAAQ,EAEjC,CAEO+oB,gBAAgBtkD,GACrB,OAAOA,EAAK07D,OAAO,CAACtyC,EAAWuyC,KAC7B,MAAQC,aAAcD,EACtBvyC,SAAMwyC,GAAaxyC,EAAMwyC,IAAc,GACvCxyC,EAAMwyC,GAAWzvC,KAAKwvC,GACfvyC,GACN,GACL,CAEOyyC,eAAerY,GACpB,IAAIsY,EACJ,eACF,QAAS5uB,KAAQ3X,OAAOC,KAAKguB,GAAkB,CAC7CsY,GAAiB,0EACS5uB,EAAK,WAC/B,QAAS1iC,KAAQg5C,EAAgBtW,GAC/B4uB,GACE,WAEAtxD,EAAK84C,kCAITwY,GAAiB,cACnB,CACA,OAAOA,CACP,CAEOC,kBACLh8D,KAAK8S,OAAOV,KAAK4yC,IAAuB,CACtC3yC,MAAO,MACPmoC,WAAW,EACXv6C,KAAM,CACJA,KAAQ,CACNyK,QAAU1K,KAAKytB,YAAY7rB,WAAW8I,QACtCktB,MAAQ53B,KAAKytB,YAAY7rB,WAAWmY,cAEtC2rC,IAAOzjD,IAAYg6D,QACnBlX,cAAiB,w4CAKvB,CAEOmX,aAAaC,GAClB,IAAIC,EAAwB,CAC1BC,MAAS,UACTC,aAAgB,UAChBC,OAAU,SACVC,UAAY,YACZC,OAAU,SACVC,IAAO,QACPC,KAAQ,OACRC,IAAO,OAGLT,EAAiBt7D,OAAS,GAC5Bs7D,EAAiB93D,IAAIw4D,WACZT,EAAiBS,EAAcrsB,kBAAiB,GAG3D,IAAIssB,EAAwBtnC,OAAOunC,OAAOX,GAM1C,OALoBU,EACjBvyC,OAAO,CAAC9tB,EAAOugC,KACP8/B,EAAsB94C,QAAQvnB,KAAWugC,KAC5C,EAGV,CAEOggC,cAAcvyD,GACnBjG,WAAW,KACTxE,KAAKu/C,aAAavlC,cAAe,EACjCha,KAAK8hC,OAAO5vB,SAAS,CAAC,WAAazH,GAAK,EACvC,IACL,CAEOwyD,qBAAqBh9D,EAAWqoB,EAAoB1Z,GAGzD,MAAMsuD,EAAqBrX,MAAMsX,KAAK,IAAIC,IAAIn9D,EAAKoE,IAAK8oC,IAAcA,GAAKyY,gBAK3E,OAHAsX,EAAoBjoC,KAAK,CAACqD,GAAOC,KAAUD,GAAEohB,cAAclhB,cAAcD,GAAEmhB,gBAGpE,CACL/E,aAAcrsB,EACd9kB,QAAQoL,EACRyuD,YAJmBH,EAAoB74D,IAAKshD,MAAgBC,aAAcD,MAM9E,CAEOvE,iBAAiBkc,GACtB,IAAI9gE,EAAO,GACX8gE,EAAc/jC,QAASpnB,IAEvB3V,GAAQ,qCACuB2V,EAAM6sC,+CAEnC7sC,EAAM8sC,SAAS1lB,QAAS4gB,IAEtB39C,GAAQ,yBAA0B29C,EAAO2E,kBAAY,EACtD,GAEHtiD,GAAQ,QAERsF,OAAOwW,OAAO,EAAG,GACjBtY,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACvC5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,yIAA2IA,EACnJiO,KAAQ,OAGZ,iDAx1BS6qD,IAAalzD,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,KAAAlpB,MAAAmpB,KAAAnpB,MAAAk7B,KAAAl7B,MAAAm7B,OAAA,sCAAb+3B,GAAahzD,QAAbgzD,GAAa/yD,UAAAC,WAFZ,QAAM,SAEP8yD,EAAa,KA21BlB,SAAU9e,EAAa+mB,IAC3B,GAAIA,GAAQ9gE,MAAO,CACjB,IAAIsmC,EAAOh3B,IAAOwxD,GAAQ9gE,OAAOwP,OAAO,MACpCsc,EAAOxc,IAAOwxD,GAAQ9gE,OAAOwP,OAAO,QACxC,GAAY,MAAR82B,GAAgBxa,EAAO,QAAUxc,MAASw/B,IAAI,EAAG,SAASt/B,OAAO,QAAUsc,EAC7E,MAAO,CAAEuD,SAAS,EAEtB,CACA,OAAO,IACT,CAEM,SAAUkqB,GAAiBwnB,IAC/B,OAAIA,IAAMA,GAAG/gE,QAAUsP,IAAOyxD,GAAG/gE,MAAO,cAAc,GAAMghE,UACnD,CAAEC,cAAgB,GAEpB,IACT,CAEM,SAAUznB,GAAasnB,IAC3B,GAAIA,GAAQ9gE,MAAO,CACjB,MAAMsmC,EAAWh3B,IAAOwxD,GAAQ9gE,OAC1B8rB,EAAWxc,IAAOwxD,GAAQ9gE,OAAOwP,OAAO,QACxC6nD,EAAY/nD,MAClB,GAAIg3B,EAAO+wB,GAASvrC,EAAOxc,IAAO+nD,GAAOvrC,OAAS,IAChD,MAAO,CAAEo1C,aAAe,EAE5B,CACA,OAAO,IACT,CAEM,SAAUC,GAAqB39D,IACnCA,UAAKs5B,QAASskC,IACTA,GAAQC,aAAapL,MAAM,qBAC9BmL,EAAOC,YAAcD,GAAQC,YAC1B9lB,QACC,kBACA,6FAEDA,QAAQ,sBAAuB,QAAM,GAEnC/3C,EACT,CAEM,SAAU2hD,GAA8Bmc,GAAcC,GAC1D,OAAa,OAATD,IAA0B,OAATC,GACiE,IAA/ED,GAAK1jB,OAAO7hB,cAAcwlC,EAAK3jB,YAAQ92B,EAAW,CAAE06C,YAAa,QAC1E,6FC55BK,IAAMC,EAAa,MAApB,MAAOA,EAGXp+D,YAAoByxB,GAAAvxB,KAAAuxB,UAAsB,CAEnCgJ,eAAewI,EAAWo7B,GAC/B,GAAIA,EAAM,CACR,IAAI96B,EAAQ86B,EAAKvV,MAAM,KAAK,GACxBrlB,EAAU46B,EAAKvV,MAAM,KAAK,GAE9B,OADiB78C,IAAOg3B,GAAMzhC,IAAI,CAAE88D,EAAG/6B,EAAOH,EAAGK,IAAWO,aAE9D,CAEE,OADiB/3B,IAAOg3B,GAAMe,aAGlC,CAGOu6B,0BAA0BC,GAC/Bt+D,KAAKu+D,mBAAqBD,EAASj6D,IAAKm6D,IACtC,IAAIC,EAAmBz+D,KAAKuxB,SAAS3f,UAAU4sD,EAAQvzD,SAAU,mBAAoB,QAAS,SAC1FyzD,EAAqB1+D,KAAKuxB,SAAS3f,UAAU4sD,EAAQ5zD,WAAY,mBAAoB,QAAS,SAClG,GAA0B,IAAtB4zD,EAAQ5zD,WAAkB,CAC5B,IAAI+zD,EAAgB,IAAI3yD,KAAKwyD,EAAQ5zD,YAGnC8zD,EADe,YADA3yD,IAAO4yD,GAAetE,GAAG,mBAAmBpuD,OAAO,YAE7CjM,KAAKuxB,SAAS3f,UAAU4sD,EAAQ5zD,WAAY,YAE5C5K,KAAKuxB,SAAS3f,UAAU4sD,EAAQ5zD,WAAY,oBAEnE4zD,EAAQ5zD,WAAa8zD,CACvB,CACA,GAAwB,IAApBF,EAAQvzD,SAAgB,CAC1B,IAAI2zD,EAAc,IAAI5yD,KAAKwyD,EAAQvzD,UAGjCwzD,EADa,YADD1yD,IAAO6yD,GAAavE,GAAG,mBAAmBpuD,OAAO,YAE1CjM,KAAKuxB,SAAS3f,UAAU4sD,EAAQvzD,SAAU,YAE1CjL,KAAKuxB,SAAS3f,UAAU4sD,EAAQvzD,SAAU,oBAE/DuzD,EAAQvzD,SAAWwzD,CACrB,CACA,MAAO,IAAKD,EAASE,qBAAoBD,mBAAgB,EAE7D,iDA5CWP,GAAa97D,MAAAC,MAAA,sCAAb67D,EAAa57D,QAAb47D,EAAa37D,UAAAC,WAFZ,QAAM,SAEP07D,CAAa,uFCCnB,IAAMW,EAAe,MAAtB,MAAOA,EAOX/+D,cALOE,KAAA81D,QAAU,IAAIv1D,IACdP,KAAA8+D,YAAsB,CAId,CAERntD,YAAYuvC,EAAa6d,GAA2B,GACzD,OAAO/+D,KAAKg/D,aAAa,CACvBv0D,KAAM/N,KAAYC,QAClBH,KAAM0kD,GACL6d,EACL,CAEOhtD,iBAAiBmvC,EAAa6d,GAA2B,GAC9D,OAAO/+D,KAAKg/D,aAAa,CACvBv0D,KAAM/N,KAAYK,aAClBP,KAAM0kD,GACL6d,EAEL,CAEO7uD,UAAUgxC,EAAa6d,GAA2B,GACvD,OAAO/+D,KAAKg/D,aAAa,CACvBv0D,KAAM/N,KAAYE,MAClBJ,KAAM0kD,GACL6d,EAEL,CAEOE,YAAY/d,EAAa6d,GAA2B,GACzD,OAAO/+D,KAAKg/D,aAAa,CACvBv0D,KAAM/N,KAAYG,QAClBL,KAAM0kD,GACL6d,EAEL,CAEOvV,YAAYtI,GACjBlhD,KAAK81D,QAAQvxD,KAAK,CAChBkG,KAAM/N,KAAYI,MAClBN,KAAM0kD,IAGRlhD,KAAKk/D,cAAcxiE,KAAYI,MACjC,CAEOquB,eACL,OAAAnrB,KAAK81D,QAAQvxD,KAAK,CAChBkG,KAAM,GACNjO,KAAM,KAGD,CACLiO,KAAQ,GACRjO,KAAQ,GAEZ,CAEQwiE,aACNG,EACAJ,GAA2B,GAI3B,OAFA/+D,KAAKk/D,gBAEAH,EAMEI,GALLn/D,KAAK81D,QAAQvxD,KAAK46D,QAClBn/D,KAAKk/D,cAAcC,EAAO10D,MAK9B,CAEQy0D,cAAcE,GAQpB,MAAMl0C,EAASk0C,GAPS,CACtB1J,MAAS,IACT2J,QAAW,IACXvzB,QAAW,KACXwzB,aAAgB,KAGuBF,IAAgB,EAErDp/D,KAAKu/D,UACPC,aAAax/D,KAAKu/D,UAEpBv/D,KAAKu/D,SAAW/6D,WAAW,KACzBxE,KAAKmrB,cAAY,EAChBD,EACL,iDA5FW2zC,EAAe,sCAAfA,EAAev8D,QAAfu8D,EAAet8D,UAAAC,WAFd,QAAM,SAEPq8D,CAAe,2dC4IrB,IAAMY,EAAc,MAArB,MAAOA,oDAAc,oCAAdA,GAAc,yCAvCd,CACT,CACE/P,QAASgQ,KAAgCC,SAAU,CACjDC,WAAY,SACZC,WAAY,SAGhB,CACEnQ,QAASoQ,KAA4BH,SAAU,CAC7CI,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,SAAU,SAGd,CACExQ,QAASyQ,MAAiBR,SAAU,CAClCS,aAAa,EACbC,eAAe,EACfC,kBAAmB,QAGvB,CACE5Q,QAAS6Q,MAA6BZ,SAAU,CAC9Ca,SAAU,QACVC,UAAW,QAGf,CACE/Q,QAASgR,IAAiBf,SAAU,CAClCE,WAAY,aAGhB,CACEnQ,QAASiR,KACThB,SAAU,CAAEiB,YAAa,WAE5Bp5C,QAAA,CA5GCq5C,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,KACAC,IACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,IACAC,KAGAjC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,MACAC,KACAC,IACAC,KACAC,MACAC,KACAC,MACAC,MACAC,KACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,MACAC,KACAC,MACAC,MACAC,IACAC,OAAc,SAyCLrD,CAAc,mBCrEpB,IAAM/3C,EAAY,MAAnB,MAAOA,oDAAY,oCAAZA,GAAY,yCAHZ,CAACq7C,KAAcvuD,IAAsBw/C,KAAexsC,QAAA,CA5B7DC,KACAu7C,KACAC,KACAxD,EACAxO,IACAiS,IACAC,KAGAH,KACAC,KAGAxD,EACAxO,IACAkS,OAAe,SAgBNz7C,CAAY,0WCrEjBtlB,MAAA,eAAoCA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAy7C,EAAAhhE,QAAAmuB,UAAAoQ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA0iC,eAAAD,GAAuB,GAAgBhhE,MAAA,GAAkBA,0CAAlBA,cAAAghE,EAAA5kE,iCADtF4D,MAAA,GACEA,MAAA,EAAAkhE,GAAA,mDAASlhE,cAAA,QAAAghE,EAAAlmE,uCAYLkF,MAAA,mBAA6EA,MAAA,GAAgBA,kCAAzCA,MAAA,QAAAmhE,EAAA/kE,MAAyB4D,cAAAmhE,EAAA/kE,8BAQ/E4D,MAAA,eACEA,MAAA,4BACFA,iDAEFA,MAAA,eAA+FA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAAi1C,EAAAphE,QAAAqhE,EAAAD,EAAAjzC,UAAAmzC,EAAAF,EAAAxmC,MAAA2D,GAAAv+B,QAAA,OAAAA,MAASu+B,GAAAgjC,aAAAF,EAAAhnE,MAAAinE,GAA6B,GAAEthE,MAAA,cAAUA,MAAA,WAAgBA,mDACjKA,MAAA,eAAwEA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAAwzC,EAAAphE,QAAAqhE,EAAAD,EAAAjzC,UAAAmzC,EAAAF,EAAAxmC,MAAA2D,GAAAv+B,QAAA,OAAAA,MAASu+B,GAAAijC,eAAAH,EAAAhnE,MAAAinE,GAA+B,GAAEthE,MAAA,cAAUA,MAAA,YAAiBA,mDAC7IA,MAAA,qBAA4DA,MAAA,kBAAA2O,GAAA3O,MAAAytB,GAAA,MAAA2zC,EAAAphE,QAAAqhE,EAAAD,EAAAjzC,UAAAmzC,GAAAF,EAAAxmC,MAAA2D,GAAAv+B,QAAA,OAAAA,MAAUu+B,GAAAkjC,qBAAA9yD,EAAA0yD,EAAAhnE,MAAAinE,IAA4C,GAClHthE,oDADoHA,MAAA,oBAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAS,aAAA,QAAAyjC,EAAAl2B,MAAA,YAAAk2B,EAAAl2B,6BAelHrI,MAAA,eAA6DA,MAAA,uBAAiBA,kCAO5EA,MAAA,mBAAoEA,MAAA,GAAqBA,kCAA/CA,MAAA,QAAA6sC,EAAAC,cAA0B9sC,cAAA6sC,EAAAC,qCAEtE9sC,MAAA,eAAiEA,MAAA,yBAAmBA,gCAOpFA,MAAA,eAA4DA,MAAA,8BAAwBA,mCAOlFA,MAAA,mBAA6GA,MAAA,GAA4BA,yCAA7DA,MAAA,cAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAA09C,QAAiC/3C,cAAA,MAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAA09C,iDAE3G/3C,MAAA,mBAAoDA,MAAA,mBAAAA,MAAAkuB,GAAA,MAAAwzC,EAAA1hE,QAAAmuB,UAAAmzC,EAAAthE,MAAA,GAAA46B,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAie,aAAAklB,EAAAJ,GAAuB,GAAgCthE,MAAA,GAAyBA,oCAAvDA,MAAA,cAAA2hE,EAAA,KAAAA,EAAAjlB,aAA8B18C,cAAA,MAAA2hE,EAAA,KAAAA,EAAAjlB,wCADtH18C,MAAA,qBACEA,MAAA,EAAA4hE,EAAA,qBACF5hE,kCAFmDA,MAAA,QAAA0hE,EAAA9kB,YAClB58C,cAAA,UAAA0hE,EAAA7kB,oCAJnC78C,MADF,sBACEA,CAD4F,eACjFA,MAAA,YAAMA,QACjBA,MAAA,mBAEEA,MADA,EAAA6hE,GAAA,oBACA7hE,CAD6G,EAAA8hE,GAAA,uBAKjH9hE,oDANcA,MAAA,GAAmGA,MAAnG,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAmG9zB,CAA/C,UAAAA,MAAA,EAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBACjD9zB,cAAA,cAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAA09C,OAAAt5C,QAAA,GACqBuB,cAAA,UAAAu+B,EAAAwjC,wDA3D1C/hE,MAAA,MAIMA,MAHJ,WAGIA,CAHuD,sBAGvDA,CAD8B,eACnBA,MAAA,UAAIA,QACfA,MAAA,mBACEA,MAAA,EAAAgiE,GAAA,qBAEJhiE,UAIEA,MADF,sBACEA,CAD2B,eAChBA,MAAA,aAAOA,QAClBA,MAAA,eACAA,MAAA,GAAAiiE,GAAA,oBAGFjiE,QAGAA,MAFA,GAAAkiE,EAAA,gBAEAliE,CAFuI,GAAAmiE,EAAA,gBAEvIniE,CADkH,GAAAoiE,EAAA,uBAGpHpiE,QAKIA,MAHJ,YAGIA,CAHoC,uBAGpCA,CAD8B,gBACnBA,MAAA,gBAASA,QACpBA,MAAA,eACFA,QAIEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,WAAIA,QACfA,MAAA,eACAA,MAAA,GAAAqiE,EAAA,oBACFriE,QAIEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,YAAKA,QAChBA,MAAA,sBACEA,MAAA,GAAAsiE,EAAA,qBACFtiE,QACAA,MAAA,GAAAuiE,EAAA,oBACFviE,QAIEA,MADF,uBACEA,CAD2B,gBAChBA,MAAA,UAAGA,QACdA,MAAA,eAAkNA,MAAA,yBAAAshE,EAAAthE,MAAAkrB,GAAA0P,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAwgB,YAAAuiB,EAAe,IAAI,GAAK,GAAnPthE,QACAA,MAAA,GAAAwiE,GAAA,oBACFxiE,QAGAA,MAAA,GAAAyiE,EAAA,yBASFziE,8EAhE2EA,MAAA,gBAAAshE,IAK3DthE,MAAA,GAAwGA,MAAxG,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAwG9zB,CAApD,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBAC9B9zB,cAAA,UAAAu+B,GAAAxO,iBAO3B/vB,MAAA,GAAAA,MAAA,eAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAA,kBAAqL9zB,MAA7G,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAA6G9zB,CAAzD,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBACvH9zB,cAAA,cAAAqhE,GAAA,OAAAqB,EAAArB,EAAA9iE,IAAA,kBAAAmkE,EAAAz2C,SAAAsS,GAAApO,WAIsCnwB,cAAA,kBAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,gBAC3B9zB,cAAA,sBAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,gBACc9zB,cAAA,gBAAAu+B,GAAAl2B,MAQ9BrI,MAAA,GAAAA,MAAA,eAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAA,kBAAqL9zB,MAA9G,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAA8G9zB,CAA1D,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBAM3H9zB,MAAA,GAAAA,MAAA,eAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAA,kBAAiL9zB,MAA1G,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAA0G9zB,CAAtD,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBACtH9zB,cAAA,cAAAqhE,GAAA,OAAAsB,EAAAtB,EAAA9iE,IAAA,cAAAokE,EAAA12C,SAAAsS,GAAApO,WAMAnwB,MAAA,GAA2GA,MAA3G,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAA2G9zB,CAAvD,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBACnC9zB,MAAA,GAAAA,MAAA,UAAAu+B,GAAAtO,YAEjBjwB,cAAA,cAAAqhE,GAAA,OAAAuB,EAAAvB,EAAA9iE,IAAA,kBAAAqkE,EAAA32C,SAAAsS,GAAApO,WAMInwB,MAAA,GAAAA,MAAA,eAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAAA,kBAAqO9zB,MAA9J,0BAAAqhE,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,eAA8J9zB,CAA1G,cAA0GA,CAAnE,cAAmEA,CAAnD,UAAAA,MAAA,GAAAg/B,GAAA,eAAAqiC,GAAA,MAAAA,EAAAhnE,MAAA,KAAAgnE,EAAAhnE,MAAAy5B,iBACtL9zB,cAAA,cAAAqhE,GAAA,OAAAwB,EAAAxB,EAAA9iE,IAAA,aAAAskE,EAAA52C,SAAAsS,GAAApO,WAImBnwB,cAAA,kBAAAu+B,GAAAl2B,MAAA,SAAAk2B,GAAAl2B,MAAA,YAAAk2B,GAAAl2B,OCzDlC,IAAMy6D,GAAgB,MAAvB,MAAOA,EAkCXplE,YACU8oB,EACAu8C,EACAr8C,EACAJ,EACAgJ,EACD5e,IALC9S,KAAA4oB,KACA5oB,KAAAmlE,gBACAnlE,KAAA8oB,cACA9oB,KAAA0oB,eACA1oB,KAAA0xB,gBACD1xB,KAAA8S,UAnCD9S,KAAA4xB,qBAAuB,IAAIrxB,IAE3BP,KAAAolE,aAAoB,GAErBplE,KAAAmyB,gBAAkB,CACvB,CACE3zB,KAAM,OACNtB,YAAY,GACX,CACDsB,KAAM,UACNtB,YAAY,GACX,CACDsB,KAAM,WACNtB,YAAY,GACX,CACDsB,KAAM,UACNtB,YAAY,GACX,CACDsB,KAAM,QACNtB,YAAY,IAGT8C,KAAAuyB,WAAqB,EACrBvyB,KAAAsyB,WAAqB,EACrBtyB,KAAAqyB,WAAkB,GAIlBryB,KAAAmkE,aAAoB,GASzBnkE,KAAKqlE,YAAcrlE,KAAK8oB,YAAYxH,gBAAgBhS,UAAUslB,KACxDA,KACF50B,KAAKuyB,WAAY,EACbvyB,KAAKslE,iBACPtlE,KAAKslE,gBAAgBtyC,SAAS2uB,KAAM3G,KAC9BA,GAAEhoB,SAAS7e,SAASkP,SAAU23B,GAAEhoB,SAAS7e,SAASoxD,SAAU,GAC5DvqB,GAAEhoB,SAAS5e,KAAKiP,SAAU23B,GAAEhoB,SAAS5e,KAAKmxD,SAAU,GACpDvqB,GAAEhoB,SAASrc,SAAS0M,SAAU23B,GAAEhoB,SAASrc,SAAS4uD,SAAU,GAC5DvqB,GAAEhoB,SAAS3e,IAAIgP,SAAU23B,GAAEhoB,SAAS3e,IAAIkxD,SAAU,KACvD,GAIPvlE,KAAKwlE,eAAiBxlE,KAAK8oB,YAAYlO,gBAAgBtL,UAAUslB,KAC/D50B,KAAKylE,YAAczlE,KAAKmlE,cAAc5H,QACtCv9D,KAAKslE,gBAAkBtlE,KAAKylE,YAAY9kE,IAAIX,KAAK0lE,cAAa,GAEhE1lE,KAAK2lE,cAAgB3lE,KAAK0oB,aAAa3jB,oBAAoBuK,UAAUslB,KACnE50B,KAAKylE,YAAczlE,KAAKmlE,cAAc5H,QACtCv9D,KAAKslE,gBAAkBtlE,KAAKylE,YAAY9kE,IAAIX,KAAK0lE,cAAa,GAGhE1lE,KAAK8oB,YAAY/H,qBAAqBle,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,KAC9E,cAARA,KACF/pB,KAAKolE,aAAe,GAChBplE,KAAKslE,iBAAiB7oE,OAAOoE,QAC/Bb,KAAKslE,gBAAgB7oE,MAAM88B,QAASC,KAClCx5B,KAAKmyB,gBAAgBoH,QAASqsC,KAE1BA,GAAI1oE,WADFs8B,GAAQzC,YAAc6uC,GAAIpnE,MACI,SAAZonE,GAAIpnE,IAEJ,EAEvB,GACF,GAMPwB,KAAK8oB,YAAY9N,kBAAkBnY,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,MAC3E,cAARA,IAAgC,cAARA,MAC1B/pB,KAAKylE,YAAczlE,KAAKmlE,cAAc5H,QACtCv9D,KAAKslE,gBAAkBtlE,KAAKylE,YAAY9kE,IAAIX,KAAK0lE,eAC7C1lE,KAAKslE,iBAAiB7oE,OACxBuD,KAAKslE,iBAAiB7oE,MAAM88B,QAAQ,CAACC,GAAcwD,MACjDh9B,KAAKolE,aAAa7rC,QAASqsC,KACrB5oC,IAAS4oC,KACXpsC,GAAQtD,cAAmB,SAE9B,GACF,EAIT,CAEAjnB,WACEjP,KAAKqyB,WAAcpyB,EACnBD,KAAKylE,YAAczlE,KAAKmlE,cAAc5H,QACtCv9D,KAAKslE,gBAAkBtlE,KAAKylE,YAAY9kE,IAAIX,KAAK0lE,eAC5C1lE,KAAKslE,iBAAiB7oE,OAAOoE,OAGhCb,KAAKslE,gBAAgB7oE,MAAM88B,QAASC,IAClCx5B,KAAKmyB,gBAAgBoH,QAASqsC,IACxBpsC,EAAQpC,iBAAmBwuC,EAAIpnE,OACjConE,EAAI1oE,WAA4B,SAAZ0oE,EAAIpnE,KAAQ,EAEnC,GAPHwB,KAAKqjE,eAAe,CAAE7kE,KAAM,QAUhC,CAGO6kE,eAAewC,GACpB7lE,KAAK2zB,UAAUvH,KACbpsB,KAAK4oB,GAAGS,MAAM,CACZ+N,gBAAiByuC,EAAYrnE,KAC7B2V,SAAuB,WAAbnU,KAAKyK,MAAkC,YAAbzK,KAAKyK,KAAqB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WACpHlS,SAAU,GACVlD,KAAmB,WAAbpU,KAAKyK,MAAkC,YAAbzK,KAAKyK,KAAqB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WAChH7S,SAAuB,WAAb3W,KAAKyK,MAAkC,YAAbzK,KAAKyK,KAAqB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,WACpHnV,IAAkB,WAAbrU,KAAKyK,MAAkC,YAAbzK,KAAKyK,KAAqB,IAAI6e,KAAY,IAAM,IAAIA,KAAY,GAAI,CAACC,KAAWC,SAAUD,KAAWyN,UAAU,KAC9ImjB,OAAQ,IAAI7wB,KAAY,IAExB+N,WAAY,CAAC,IACbC,IAAK,CAAC,IACNC,WAAY,CAAC,IACbC,YAAa,CAAC,IACdC,MAAO,CAAC,IACRvB,cAAe,CAAC,IAChBh5B,WAAY,MAGhB2oE,EAAY3oE,WAAiC,SAApB2oE,EAAYrnE,KAErCwB,KAAKslE,gBAAgB7oE,MAAMklD,KAAK,CAAC3G,EAAQjf,KACnC/7B,KAAK8lE,eAEL9qB,EAAE99C,WADA6+B,GAAK/7B,KAAK8lE,cAOd9qB,EAAE9kB,cADAl2B,KAAKolE,aAAarU,SAASh1B,GACX,OAEA,KAGtB/7B,KAAK8oB,YAAY/N,gBAAgB,eACnC,CAEA,aAAW4Y,GACT,OAAO3zB,KAAKylE,YAAY9kE,IAAI,YAC9B,CAMOgjE,aAAalnE,EAAYugC,GAC9Bh9B,KAAKsyB,WAAY,EACjB71B,EAAMy5B,cAAgB,OACtBl2B,KAAKolE,aAAah5C,KAAK4Q,GACvBh9B,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAGO8iD,eAAennE,EAAYugC,GAC5Bh9B,KAAKolE,aAAarU,SAAS/zB,IAC7Bh9B,KAAKolE,aAAajyC,OAAO6J,GAE3BvgC,EAAMy5B,cAAgB,GACtBl2B,KAAK8oB,YAAYhI,oBAAoB,GACvC,CAGO+iD,qBAAqBkC,EAAe54B,EAAWnQ,GACpDh9B,KAAKsyB,WAAY,EACjBtyB,KAAK2zB,UAAUl3B,MAAM88B,QAASm3B,IACxBA,EAAIr5B,YAAc8V,EAAK9V,YACzBr3B,KAAK8lE,aAAe9oC,EACpB0zB,EAAIxzD,YAAcwzD,EAAIxzD,YAEtBwzD,EAAIxzD,YAAa,IAGrB8C,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAGOqgC,YAAYplB,EAAWvC,EAAck8B,GACkB,GAAxD11D,KAAKslE,gBAAgBtyC,SAAS+I,IAAIt/B,OAAO4X,KAAKxT,OAChDb,KAAKgmE,kBAAoBhmE,KAAK8oB,YAAY3M,iBAAiBnc,KAAKslE,gBAAgBtyC,SAAS+I,IAAIt/B,OAAO4X,KAAK/E,UAAU,CACjH/K,KAAOimB,IACDA,EAAI3pB,OAAS,GACfb,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY,GAAIwjC,OAAU,KACxEn6C,KAAKmkE,aAAe35C,GAAO,GACvBxqB,KAAKmkE,cAActjE,SACjBb,KAAKmkE,cAActjE,OAAS,EAC1Bb,KAAKmkE,aAAa,IAAIllB,SAASp+C,OAAS,EAE1Cb,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY3W,KAAKmkE,aAAa,IAAIxtD,SAAUwjC,OAAUn6C,KAAKmkE,aAAa,IAAIllB,SAAS,IAAIH,eAGvI9+C,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY3W,KAAKmkE,aAAa,IAAIxtD,WAC5E6iB,EAAQ2gB,QACVn6C,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAEmwB,OAAU3gB,EAAQ2gB,SAE9Dub,GACF11D,KAAK0xB,cAAc0vB,iBAAiBphD,KAAKmkE,gBAIzCzO,GACF11D,KAAK0xB,cAAc0vB,iBAAiBphD,KAAKmkE,cAEvC3qC,EAAQ2gB,SACVn6C,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAEmwB,OAAU3gB,EAAQ2gB,SAChEn6C,KAAK4+C,aAAaplB,EAASuC,OAKf/7B,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACzD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,6BAA+BwD,KAAKslE,gBAAgBtyC,SAAS+I,IAAIt/B,OAAO4X,IAAM,mCACtF5J,KAAQ,QAGFqyB,cAAcxtB,UAAU,KAChCtP,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY,GAAIwjC,OAAU,GAAI9lC,IAAO,IAAI,EACxF,EAEFtR,MAAQiB,QAKbhE,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY,GAAIwjC,OAAU,IAE5E,CAEOyE,aAAa4C,EAAczlB,GAChC/7B,KAAKslE,gBAAgBtyC,SAAS+I,GAAG/R,WAAW,CAAErT,SAAY6qC,EAAQ7qC,UACpE,CAEOyU,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WACtBjqB,KAAKqlE,aAAarlE,KAAKqlE,YAAYh6C,cACnCrrB,KAAKwlE,gBAAgBxlE,KAAKwlE,eAAen6C,cACzCrrB,KAAK2lE,eAAe3lE,KAAK2lE,cAAct6C,cACvCrrB,KAAKgmE,mBAAmBhmE,KAAKgmE,kBAAkB36C,aACrD,iDAnQW65C,GAAgB9iE,MAAAC,MAAAD,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,KAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,MAAA,oCAAhB0yD,EAAgB10D,UAAA,kBAAA8zB,OAAA,CAAAohC,cAAA,gBAAAj7D,KAAA,QAAAgG,MAAA,GAAAC,KAAA,EAAAC,OAAA,g2DAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDZzBzO,MAFJ,WAEIA,CAF+C,UAE/CA,CAD+C,UACdA,MAAA,eAASA,QAExCA,MADF,aACEA,CAD+E,gBACxDA,MAAA,SAE3BA,YAEEA,MADF,UACEA,CADgB,qBAEdA,MAAA,GAAA6jE,GAAA,sBAIJ7jE,UAEAA,MAAA,YACEA,MAAA,GAAA8jE,GAAA,yBAoEJ9jE,iCApFyBA,MAAA,YAAA0O,EAAA20D,aAG0BrjE,MAAA,GAAAA,MAAA,oBAAA+jE,GAMX/jE,MAAA,GAAAA,MAAA,UAAA0O,EAAAqhB,iBAOF/vB,MAAA,GAAAA,MAAA,gBAAA0O,EAAAw0D,gBAAA,KAAAx0D,EAAAw0D,gBAAAtyC,8wCCFzBkyC,CAAgB,+TCHrB9iE,MAAA,eAAoCA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAy7C,EAAAhhE,QAAAmuB,UAAAoQ,GAAAv+B,QAAA,OAAAA,MAASu+B,GAAAylC,aAAAhD,GAAqB,GAAgBhhE,MAAA,GAAgBA,0CAAhBA,cAAAghE,EAAA5kE,gCADpF4D,MAAA,GACEA,MAAA,EAAAikE,GAAA,mDAASjkE,cAAA,QAAAghE,EAAAlmE,sCAWLkF,MAAA,mBAA2EA,MAAA,GAC3EA,kCADkDA,MAAA,QAAAkkE,EAAA9nE,MAAyB4D,cAAA,GAAAkkE,EAAA9nE,KAAA,6BAO7E4D,MAAA,eACEA,MAAA,kCACFA,kDAEFA,MAAA,eAA2FA,MAAA,mBAAAA,MAAA0+B,GAAA,MAAAylC,EAAAnkE,QAAAokE,GAAAD,EAAAh2C,UAAAk2C,GAAAF,EAAAvpC,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA+lC,WAAAF,GAAA/pE,MAAAgqE,IAAyB,GAAErkE,MAAA,cAAUA,MAAA,WAAgBA,oDACzJA,MAAA,eAAoEA,MAAA,mBAAAA,MAAAotB,GAAA,MAAA+2C,EAAAnkE,QAAAokE,GAAAD,EAAAh2C,UAAAk2C,GAAAF,EAAAvpC,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAgmC,aAAAH,GAAA/pE,MAAAgqE,IAA2B,GAAErkE,MAAA,cAAUA,MAAA,YAAiBA,oDACrIA,MAAA,qBAAoCA,MAAA,kBAAA2O,GAAA3O,MAAA4tB,GAAA,MAAAu2C,GAAAnkE,QAAAokE,GAAAD,GAAAh2C,UAAAk2C,EAAAF,GAAAvpC,MAAA2D,GAAAv+B,QAAA,OAAAA,MAAUu+B,GAAAimC,mBAAA71D,EAAAy1D,GAAA/pE,MAAAgqE,GAAwC,GAAmFrkE,oDAAjFA,MAAA,oBAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAAS,aAAA,QAAAyjC,EAAAl2B,MAAA,YAAAk2B,EAAAl2B,iCAlB5FrI,MAAA,MAGMA,MAFJ,WAEIA,CAF8C,sBAE9CA,CAD8B,eACnBA,MAAA,UAAIA,QACfA,MAAA,mBACEA,MAAA,EAAAykE,EAAA,qBAGJzkE,UAEEA,MADF,sBACEA,CAD8B,eACnBA,MAAA,WAAKA,QAChBA,MAAA,eACAA,MAAA,GAAA0kE,GAAA,oBAGF1kE,QAGAA,MAFA,GAAA2kE,GAAA,gBAEA3kE,CAF+H,GAAA4kE,GAAA,gBAE/H5kE,CAD0G,GAAA6kE,GAAA,uBAE5G7kE,qEAnBsEA,MAAA,gBAAAqkE,GAIerkE,MAAA,GAAiDA,MAAjD,0BAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,aAAiDj0B,CAAD,UAAAA,MAAA,GAAAg/B,EAAA,eAAAolC,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,eAC/Fj0B,cAAA,UAAAu+B,GAAAzO,eAM3B9vB,MAAA,GAAAA,MAAA,eAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,aAAA,kBAA6Lj0B,MAA1H,0BAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,aAA0Hj0B,CAA1E,UAAAA,MAAA,GAAAg/B,EAAA,eAAAolC,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,eAC9Gj0B,cAAA,cAAAokE,GAAA,OAAAv3C,EAAAu3C,EAAA7lE,IAAA,eAAAsuB,EAAAZ,SAAAsS,GAAApO,WAIsCnwB,cAAA,kBAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,cAC3Bj0B,cAAA,sBAAAokE,GAAA,MAAAA,EAAA/pE,MAAA,KAAA+pE,EAAA/pE,MAAA45B,cACVj0B,cAAA,gBAAAu+B,GAAAl2B,OCxBhB,IAAMy8D,EAAc,MAArB,MAAOA,EAuBXpnE,YACU8oB,EACAu8C,EACAr8C,EACAJ,IAHA1oB,KAAA4oB,KACA5oB,KAAAmlE,gBACAnlE,KAAA8oB,cACA9oB,KAAA0oB,gBAzBF1oB,KAAA4xB,qBAAuB,IAAIrxB,IAE3BP,KAAAolE,aAAoB,GAIrBplE,KAAAkyB,cAAgB,CAAC,CACtB1zB,KAAM,OACNtB,YAAY,GACX,CACDsB,KAAM,QACNtB,YAAY,GACX,CACDsB,KAAM,OACNtB,YAAY,IAEP8C,KAAAuyB,WAAqB,EACrBvyB,KAAAsyB,WAAqB,EAU1BtyB,KAAKqlE,YAAcrlE,KAAK8oB,YAAYxH,gBAAgBhS,UAAUslB,KACxDA,KACF50B,KAAKuyB,WAAY,EACbvyB,KAAKmnE,cACPnnE,KAAKmnE,aAAan0C,SAAS2uB,KAAM3G,IAC3BA,EAAEhoB,SAAS/e,MAAMoP,SAAU23B,EAAEhoB,SAAS/e,MAAMsxD,SAAU,KAC3D,GAIPvlE,KAAKonE,kBAAoBpnE,KAAK8oB,YAAYlO,gBAAgBtL,UAAUslB,KAClE50B,KAAKqnE,UAAYrnE,KAAKmlE,cAAc5H,QACpCv9D,KAAKmnE,aAAennE,KAAKqnE,UAAU1mE,IAAIX,KAAK0lE,cAAa,GAE3D1lE,KAAKsnE,sBAAwBtnE,KAAK0oB,aAAa3jB,oBAAoBuK,UAAUslB,KAC3E50B,KAAKqnE,UAAYrnE,KAAKmlE,cAAc5H,QACpCv9D,KAAKmnE,aAAennE,KAAKqnE,UAAU1mE,IAAIX,KAAK0lE,cAAa,GAG3D1lE,KAAK8oB,YAAY/H,qBAAqBle,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,KAC9E,cAARA,KACF/pB,KAAKolE,aAAe,GAChBplE,KAAKmnE,cAAc1qE,OAAOoE,QAC5Bb,KAAKmnE,aAAa1qE,MAAM88B,QAASC,IAC/Bx5B,KAAKkyB,cAAcqH,QAASqsC,KAExBA,GAAI1oE,WADFs8B,EAAQzC,YAAc6uC,GAAIpnE,MACI,SAAZonE,GAAIpnE,IAEJ,EAEvB,GACF,GAMPwB,KAAK8oB,YAAY9N,kBAAkBnY,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,MAC3E,cAARA,IAAgC,gBAARA,MAC1B/pB,KAAKqnE,UAAYrnE,KAAKmlE,cAAc5H,QACpCv9D,KAAKmnE,aAAennE,KAAKqnE,UAAU1mE,IAAIX,KAAK0lE,eACxC1lE,KAAKmnE,cAAc1qE,OACrBuD,KAAKmnE,cAAc1qE,MAAM88B,QAAQ,CAACC,EAAcwD,MAC9Ch9B,KAAKolE,aAAa7rC,QAASqsC,IACrB5oC,IAAS4oC,IACXpsC,EAAQnD,YAAiB,SAE5B,GACF,EAIT,CAEApnB,WACEjP,KAAKqnE,UAAYrnE,KAAKmlE,cAAc5H,QACpCv9D,KAAKmnE,aAAennE,KAAKqnE,UAAU1mE,IAAIX,KAAK0lE,eACvC1lE,KAAKmnE,cAAc1qE,OAAOoE,OAG7Bb,KAAKmnE,aAAa1qE,MAAM88B,QAASC,IAC/Bx5B,KAAKkyB,cAAcqH,QAASqsC,IACtBpsC,EAAQrC,YAAcyuC,EAAIpnE,OAC5BonE,EAAI1oE,WAA4B,SAAZ0oE,EAAIpnE,KAAQ,EAEnC,GAPHwB,KAAKomE,aAAa,CAAE5nE,KAAM,QAU9B,CAEO4nE,aAAamB,GAClBvnE,KAAKyzB,OAAOrH,KACVpsB,KAAK4oB,GAAGS,MAAM,CACZ8N,WAAYowC,EAAU/oE,KACtByV,MAAO,IAAIqV,KAAY,GAAI,CAACC,KAAW2F,QAAQ1vB,KAAkBC,SACjEue,SAAU,CAAC,IACXqY,YAAa,CAAC,IACdn5B,WAAY,MAGhBqqE,EAAUrqE,WAA+B,SAAlBqqE,EAAU/oE,KAEjCwB,KAAKmnE,aAAa1qE,MAAMklD,KAAK,CAAC3G,EAAQjf,KAChC/7B,KAAK8lE,eAEL9qB,EAAE99C,WADA6+B,GAAK/7B,KAAK8lE,cAOd9qB,EAAE3kB,YADAr2B,KAAKolE,aAAarU,SAASh1B,GACb,OAEA,KAGpB/7B,KAAK8oB,YAAY/N,gBAAgB,aACnC,CAEA,UAAW0Y,GACT,OAAOzzB,KAAKqnE,UAAU1mE,IAAI,SAC5B,CAGO+lE,WAAWjqE,EAAYugC,GAC5Bh9B,KAAKsyB,WAAY,EACjB71B,EAAM45B,YAAc,OACpBr2B,KAAKolE,aAAah5C,KAAK4Q,GACvBh9B,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAGO6lD,aAAalqE,EAAYugC,GAC1Bh9B,KAAKolE,aAAarU,SAAS/zB,IAC7Bh9B,KAAKolE,aAAajyC,OAAO6J,GAE3BvgC,EAAM45B,YAAc,GACpBr2B,KAAK8oB,YAAYhI,oBAAoB,GACvC,CAGO8lD,mBAAmBb,EAAe54B,EAAWnQ,GAClDh9B,KAAKsyB,WAAY,EACjBtyB,KAAKyzB,OAAOh3B,MAAM88B,QAASm3B,KACrBA,GAAIz8C,OAASk5B,EAAKl5B,OACpBjU,KAAK8lE,aAAe9oC,EACpB0zB,GAAIxzD,YAAcwzD,GAAIxzD,YAEtBwzD,GAAIxzD,YAAa,IAGrB8C,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAEOsK,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WACtBjqB,KAAKqlE,aAAarlE,KAAKqlE,YAAYh6C,cACnCrrB,KAAKonE,mBAAmBpnE,KAAKonE,kBAAkB/7C,cAC/CrrB,KAAKsnE,uBAAuBtnE,KAAKsnE,sBAAsBj8C,aAC7D,iDAzKW67C,GAAc9kE,MAAAC,MAAAD,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,KAAA,oCAAd22D,EAAc12D,UAAA,gBAAA8zB,OAAA,CAAAohC,cAAA,gBAAAj7D,KAAA,QAAAgG,MAAA,GAAAC,KAAA,EAAAC,OAAA,6gCAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDTvBzO,MAFJ,WAEIA,CAF6C,UAE7CA,CAD+C,UACdA,MAAA,YAAMA,QAErCA,MADF,aACEA,CAD6E,gBACtDA,MAAA,SAE3BA,YAGEA,MADF,UACEA,CADgB,qBAEdA,MAAA,GAAAolE,EAAA,sBAIJplE,UAEAA,MAAA,YACEA,MAAA,GAAAqlE,GAAA,wBAsBJrlE,kCAvCyBA,MAAA,YAAA0O,EAAAu2D,WAG0BjlE,MAAA,GAAAA,MAAA,oBAAAslE,IAOXtlE,MAAA,GAAAA,MAAA,UAAA0O,EAAAohB,eAOJ9vB,MAAA,GAAAA,MAAA,gBAAA0O,EAAAq2D,aAAA,KAAAr2D,EAAAq2D,aAAAn0C,sKCNvBk0C,CAAc,+TCAnB9kE,MAAA,eAAoCA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAy7C,EAAAhhE,QAAAmuB,UAAAoQ,GAAAv+B,QAAA,OAAAA,MAASu+B,GAAAgnC,aAAAvE,GAAqB,GAAgBhhE,MAAA,GAAgBA,0CAAhBA,cAAAghE,EAAA5mE,gCADpF4F,MAAA,GACEA,MAAA,EAAAwlE,GAAA,mDAASxlE,cAAA,QAAAghE,EAAAlmE,sCAWLkF,MAAA,mBAA2EA,MAAA,GAC3EA,kCADkDA,MAAA,QAAAkkE,EAAA9pE,MAAyB4F,cAAA,GAAAkkE,EAAA9pE,KAAA,6BAO7E4F,MAAA,eACEA,MAAA,yCACFA,kDAMFA,MAAA,eAA2FA,MAAA,mBAAAA,MAAA0+B,GAAA,MAAAylC,EAAAnkE,QAAAylE,GAAAtB,EAAAh2C,UAAAk2C,GAAAF,EAAAvpC,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAmnC,WAAAD,GAAAprE,MAAAgqE,IAA0B,GAAErkE,MAAA,cAAUA,MAAA,WAAgBA,oDAC1JA,MAAA,eAAoEA,MAAA,mBAAAA,MAAAotB,GAAA,MAAA+2C,EAAAnkE,QAAAylE,GAAAtB,EAAAh2C,UAAAk2C,GAAAF,EAAAvpC,MAAA2D,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAonC,aAAAF,GAAAprE,MAAAgqE,IAA2B,GAAErkE,MAAA,cAAUA,MAAA,YAAiBA,oDACrIA,MAAA,qBAAoCA,MAAA,kBAAA2O,GAAA3O,MAAA4tB,GAAA,MAAAu2C,GAAAnkE,QAAAylE,GAAAtB,GAAAh2C,UAAAk2C,EAAAF,GAAAvpC,MAAA2D,GAAAv+B,QAAA,OAAAA,MAAUu+B,GAAAqnC,mBAAAj3D,EAAA82D,GAAAprE,MAAAgqE,GAAwC,GAA6JrkE,oDAA1EA,MAAjF,oBAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAS,aAAA,QAAAyjC,EAAAl2B,MAAA,YAAAk2B,EAAAl2B,KAAiFrI,CAAD,kBAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAwrE,aAAA,WAAAJ,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAyX,MAAArT,oCAtB5KuB,MAAA,MAGMA,MAFJ,WAEIA,CAFuC,sBAEvCA,CAD8B,eACnBA,MAAA,UAAIA,QACfA,MAAA,mBACEA,MAAA,EAAA8lE,EAAA,qBAGJ9lE,UAEEA,MADF,sBACEA,CAD8B,eACnBA,MAAA,WAAKA,QAChBA,MAAA,eACAA,MAAA,GAAA+lE,GAAA,oBAGF/lE,QAEEA,MADF,uBACEA,CAD8B,gBACnBA,MAAA,cAAOA,QAClBA,MAAA,eACFA,QAGAA,MAFA,GAAAgmE,GAAA,gBAEAhmE,CAFgI,GAAAimE,GAAA,gBAEhIjmE,CAD0G,GAAAkmE,GAAA,uBAE5GlmE,qEAvBuEA,MAAA,gBAAAqkE,GAIcrkE,MAAA,GAAiDA,MAAjD,0BAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,aAAiD3zB,CAAD,UAAAA,MAAA,GAAAg/B,EAAA,eAAAymC,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,eAC/F3zB,cAAA,UAAAu+B,GAAA1O,eAM3B7vB,MAAA,GAAAA,MAAA,eAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,aAAA,kBAA0L3zB,MAAlE,eAAkEA,CAAlD,0BAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,aAAkD3zB,CAAD,UAAAA,MAAA,GAAAg/B,EAAA,eAAAymC,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,eACpL3zB,cAAA,cAAAylE,GAAA,OAAA/C,EAAA+C,EAAAlnE,IAAA,eAAAmkE,EAAAz2C,SAAAsS,GAAApO,WAMLnwB,MAAA,GAAAA,MAAA,eAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,aAAA,kBAA2K3zB,MAAxG,0BAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,aAAwG3zB,CAAxD,eAAwDA,CAAD,UAAAA,MAAA,GAAAg/B,EAAA,eAAAymC,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,eAE/H3zB,cAAA,kBAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,cAC3B3zB,cAAA,sBAAAylE,GAAA,MAAAA,EAAAprE,MAAA,KAAAorE,EAAAprE,MAAAs5B,cACV3zB,cAAA,gBAAAu+B,GAAAl2B,OC5BhB,IAAM89D,EAAc,MAArB,MAAOA,EAeXzoE,YACU8oB,EACAu8C,EACAr8C,EACAJ,IAHA1oB,KAAA4oB,KACA5oB,KAAAmlE,gBACAnlE,KAAA8oB,cACA9oB,KAAA0oB,gBAfF1oB,KAAA4xB,qBAAuB,IAAIrxB,IAE3BP,KAAAolE,aAAoB,GAErBplE,KAAAiyB,cAAgBh1B,KAChB+C,KAAAuyB,WAAqB,EACrBvyB,KAAAsyB,WAAqB,EAW1BtyB,KAAKqlE,YAAcrlE,KAAK8oB,YAAYxH,gBAAgBhS,UAAUslB,KACxDA,KACF50B,KAAKuyB,WAAY,EACbvyB,KAAKwoE,eACPxoE,KAAKwoE,cAAcx1C,SAAS2uB,KAAM3G,IAC5BA,EAAEhoB,SAAS9e,MAAMmP,SAAU23B,EAAEhoB,SAAS9e,MAAMqxD,SAAU,KAC3D,GAIPvlE,KAAKonE,kBAAoBpnE,KAAK8oB,YAAYlO,gBAAgBtL,UAAUslB,KAClE50B,KAAKyoE,UAAYzoE,KAAKmlE,cAAc5H,QACpCv9D,KAAKwoE,cAAgBxoE,KAAKyoE,UAAU9nE,IAAIX,KAAK0lE,cAAa,GAE5D1lE,KAAKsnE,sBAAwBtnE,KAAK0oB,aAAa3jB,oBAAoBuK,UAAUslB,KAC3E50B,KAAKyoE,UAAYzoE,KAAKmlE,cAAc5H,QACpCv9D,KAAKwoE,cAAgBxoE,KAAKyoE,UAAU9nE,IAAIX,KAAK0lE,cAAa,GAG5D1lE,KAAK8oB,YAAY/H,qBAAqBle,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,KAC9E,cAARA,KACF/pB,KAAKolE,aAAe,GAChBplE,KAAKwoE,eAAe/rE,OAAOoE,QAC7Bb,KAAKwoE,cAAc/rE,MAAM88B,QAASC,IAChCx5B,KAAKiyB,cAAcsH,QAASqsC,KAExBA,GAAI1oE,WADFs8B,EAAQzC,YAAc6uC,GAAIppE,MACI,SAAZopE,GAAIppE,IAEJ,EAEvB,GACF,GAMPwD,KAAK8oB,YAAY9N,kBAAkBnY,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAWya,MAC3E,cAARA,IAAgC,gBAARA,MAC1B/pB,KAAKyoE,UAAYzoE,KAAKmlE,cAAc5H,QACpCv9D,KAAKwoE,cAAgBxoE,KAAKyoE,UAAU9nE,IAAIX,KAAK0lE,eACzC1lE,KAAKwoE,eAAe/rE,OACtBuD,KAAKwoE,eAAe/rE,MAAM88B,QAAQ,CAACC,EAAcwD,MAC/Ch9B,KAAKolE,aAAa7rC,QAASqsC,IACrB5oC,IAAS4oC,IACXpsC,EAAQzD,YAAiB,SAE5B,GACF,EAIT,CAEA9mB,WACEjP,KAAKyoE,UAAYzoE,KAAKmlE,cAAc5H,QACpCv9D,KAAKwoE,cAAgBxoE,KAAKyoE,UAAU9nE,IAAIX,KAAK0lE,eACxC1lE,KAAKwoE,eAAe/rE,OAAOoE,OAG9Bb,KAAKwoE,cAAc/rE,MAAM88B,QAASC,IAChCx5B,KAAKiyB,cAAcsH,QAASqsC,IACtBpsC,EAAQzC,YAAc6uC,EAAIppE,OAC5BopE,EAAI1oE,WAA4B,SAAZ0oE,EAAIppE,KAAQ,EAEnC,GAPHwD,KAAK2nE,aAAa,CAAEnrE,KAAM,QAU9B,CAIOmrE,aAAae,GAClB1oE,KAAKszB,OAAOlH,KACVpsB,KAAK4oB,GAAGS,MAAM,CACZ0N,WAAY2xC,EAAUlsE,KACtB0X,MAAO,IAAIoV,KAAY,GAAI,CAACC,KAAWyN,UAAU,MACjDC,UAAW,CAAC,IACZC,SAAU,CAAC,IACXnB,YAAa,CAAC,IACd74B,WAAY,GACZ+qE,YAAY,KAGhBS,EAAUxrE,WAA+B,SAAlBwrE,EAAUlsE,KAEjCwD,KAAKwoE,cAAc/rE,MAAMklD,KAAK,CAAC3G,EAAQjf,KACjC/7B,KAAK8lE,eAEL9qB,EAAE99C,WADA6+B,GAAK/7B,KAAK8lE,cAOd9qB,EAAEjlB,YADA/1B,KAAKolE,aAAarU,SAASh1B,GACb,OAEA,KAGpB/7B,KAAK8oB,YAAY/N,gBAAgB,aACnC,CAEA,UAAWuY,GACT,OAAOtzB,KAAKyoE,UAAU9nE,IAAI,SAC5B,CAKOmnE,WAAWrrE,EAAYugC,GAC5Bh9B,KAAKsyB,WAAY,EACjB71B,EAAMs5B,YAAc,OACpB/1B,KAAKolE,aAAah5C,KAAK4Q,GACvBh9B,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAGOinD,aAAatrE,EAAYugC,GAC1Bh9B,KAAKolE,aAAarU,SAAS/zB,IAC7Bh9B,KAAKolE,aAAajyC,OAAO6J,GAE3BvgC,EAAMs5B,YAAc,GACpB/1B,KAAK8oB,YAAYhI,oBAAoB,GAEvC,CAGOknD,mBAAmBjC,EAAe54B,EAAWnQ,GAClDh9B,KAAKsyB,WAAY,EACjBtyB,KAAKszB,OAAO72B,MAAM88B,QAASm3B,KACrBA,GAAIx8C,OAASi5B,EAAKj5B,OAASw8C,GAAI35B,YAAcoW,EAAKpW,YACpD/2B,KAAK8lE,aAAe9oC,EACpB0zB,GAAIxzD,YAAcwzD,GAAIxzD,YAGtBwzD,GAAIxzD,YAAa,IAGrB8C,KAAK8oB,YAAYhI,oBAAoB,cACvC,CAEOsK,cACDprB,KAAKqlE,aAAarlE,KAAKqlE,YAAYh6C,cACnCrrB,KAAKonE,mBAAmBpnE,KAAKonE,kBAAkB/7C,cAC/CrrB,KAAKsnE,uBAAuBtnE,KAAKsnE,sBAAsBj8C,cAC3DrrB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAE5B,iDA1KWs+C,GAAcnmE,MAAAC,MAAAD,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,KAAA,oCAAdg4D,EAAc/3D,UAAA,gBAAA8zB,OAAA,CAAAohC,cAAA,gBAAAj7D,KAAA,QAAAgG,MAAA,GAAAC,KAAA,EAAAC,OAAA,onCAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDTvBzO,MAFJ,WAEIA,CAF6C,UAE7CA,CAD+C,UACdA,MAAA,YAAMA,QAErCA,MADF,aACEA,CAD6E,gBACtDA,MAAA,SAE3BA,YAGEA,MADF,UACEA,CADgB,qBAEdA,MAAA,GAAAumE,EAAA,sBAIJvmE,UAEAA,MAAA,YACEA,MAAA,GAAAwmE,GAAA,wBA2BJxmE,kCA5CyBA,MAAA,YAAA0O,EAAA23D,WAG0BrmE,MAAA,GAAAA,MAAA,oBAAAymE,IAOXzmE,MAAA,GAAAA,MAAA,UAAA0O,EAAAmhB,eAOJ7vB,MAAA,GAAAA,MAAA,gBAAA0O,EAAA03D,cAAA,KAAA13D,EAAA03D,cAAAx1C,2KCNvBu1C,CAAc,gMCRrBnmE,MAAA,8CACAA,MAAA,cAAmCA,MAAA,aAAOA,gCAC1CA,MAAA,cAAqCA,MAAA,kBAAYA,mCAHnDA,MAAA,GAGEA,MAFA,EAAA0mE,EAAA,wBAEA1mE,CAF2D,EAAA2mE,EAAA,iBAE3D3mE,CADmC,EAAA4mE,EAAA,gDADP5mE,cAAA,wBAAA+iC,EAAA16B,MACjBrI,cAAA,iBAAA+iC,EAAA16B,MACArI,cAAA,mBAAA+iC,EAAA16B,gDASbrI,MADF,WACEA,CAD2C,cACEA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAyE,EAAA/iC,QAAA,OAAAA,MAAS+iC,EAAAqkB,cAAa,GAAEpnD,MAAA,gBAA6BA,MAAA,WACpGA,aCRK,IAAM6mE,EAAwB,MAA/B,MAAOA,EAOXnpE,cANgBE,KAAAyK,KAAe,eACfzK,KAAAkpE,UAAoB,EACpBlpE,KAAAwgE,SAAmB,SACnBxgE,KAAAmpE,YAAsB,EACrBnpE,KAAAopE,YAAc,IAAIpnC,KAEnB,CAEhB/yB,WACA,CAEA4lB,cAAgB,CAET20B,cACLxpD,KAAKopE,YAAYxwC,MAAK,EACxB,iDAhBWqwC,EAAwB,oCAAxBA,EAAwBz4D,UAAA,4BAAA8zB,OAAA,CAAA75B,KAAA,OAAAy+D,SAAA,WAAA1I,SAAA,WAAA2I,WAAA,cAAA5kC,QAAA,CAAA6kC,YAAA,eAAA5kC,SAAA,CAAApiC,OAAAinE,mBAAAjoC,EAAA3wB,MAAA,EAAAC,KAAA,GAAAC,OAAA,wPAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YDNnCzO,MADF,QACEA,CADqG,WAEnGA,MAAA,EAAAknE,EAAA,sBAMAlnE,MAAA,WACEA,MAAA,GAEJA,UAEAA,MAAA,EAAAmnE,EAAA,cAIFnnE,eAjBKA,MAAA,iCAAA0O,EAAArG,KAAA,qDACkDrI,cAAA,UAAAA,MAAA,EAAAs7C,EAAA5sC,EAAAo4D,WACpC9mE,cAAA,OAAA0O,EAAAo4D,UAMV9mE,cAAA,UAAAA,MAAA,EAAA49B,GAAAlvB,EAAAo4D,WAKoB9mE,MAAA,GAAAA,MAAA,OAAA0O,EAAAq4D,gVCNhBF,CAAwB,oHCOjC7mE,MAAA,SAAkBA,MAAA,GAAUA,8BAAVA,cAAA+iC,EAAAllC,6BAClBmC,MAAA,SACEA,MAAA,GACFA,SCVG,IAAMonE,EAAmB,MAA1B,MAAOA,EAIX1pE,cAFgBE,KAAAC,KAAe,GACfD,KAAAypE,KAAe,EAChB,CAEfx6D,WAAkB,iDANPu6D,EAAmB,oCAAnBA,EAAmBh5D,UAAA,sBAAA8zB,OAAA,CAAArkC,KAAA,OAAAwpE,KAAA,QAAAJ,mBAAAjoC,EAAA3wB,MAAA,GAAAC,KAAA,EAAAC,OAAA,2FAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YDL5BzO,MAFJ,UAEIA,CAF0C,QAE1CA,CADuF,SASrFA,MAPA,QAOAA,CAPW,QAOXA,CANW,QAMXA,CALW,QAKXA,CAJW,QAIXA,CAHW,QAGXA,CAFW,QAEXA,CADW,UAGfA,UACAA,MAAA,YAEEA,MADA,GAAAsnE,EAAA,YACAtnE,CADkB,GAAAunE,EAAA,aAKtBvnE,iBAlBOA,cAAA,+BAAA0O,EAAA24D,KAAA,MAAA34D,EAAA24D,KAAA,0BACErnE,cAAA,0BAAA0O,EAAA24D,KAAA,MAAA34D,EAAA24D,KAAA,OAYCrnE,MAAA,IAAAA,MAAA,OAAA0O,EAAA7Q,MACAmC,cAAA,QAAA0O,EAAA7Q,sCCRGupE,CAAmB,sDCLzB,MAAMvnE,EAA2B,CACtC2nE,YAAY,EACZrV,IAAK,OACLryD,WAAY,0CACZU,IAAK,wCACL6kD,gBAAiB,oCACjBoiB,QAAS,+BACTC,MAAO,6CACPh9D,MAAO,gDACPrD,uBAAwB,QACxBsgE,sBAAuB,sCACvBC,GAAI,0CACJC,GAAI,0CACJC,WAAa,0CACbC,yBAA2B,0CAC3BnmB,aAAe,0BACfiY,QAAS,oDACTtH,qBAAsB,2BACtByV,QAAS,mLCdL,SAAUC,EACd3kD,EACA6vC,EACA+U,EACAvqE,GAGA,MAAO,IACE,IAAIwqE,QAAO,eAAAC,KAAAnV,KAAC,UAAOoV,EAASC,IACjC,IAEsB,uBADA5oE,OAAOC,SAAS4oE,UAElCjlD,EAAajlB,YAEf,IAAIqlB,GAASJ,GAAc9jB,YAAY8I,QACnCob,GACFwkD,EAASzkD,YAAYC,IAClBjjB,QAAKwM,QACLC,UAAU,CACT/K,KAAM8+C,IAAekS,EAAiBlB,KAAKhR,IAAeonB,GAAQ,GAAQC,IAAO,KAIrFnV,EAAiBlB,KAAK,MAAQoW,GAAQ,GAAQC,IAAO,EAGzD,OAAS3nE,IACP2nE,GAAO3nE,GACT,CACF,GAAC,gBAAA6nE,EAAAC,IAAA,OAAAL,EAAAM,MAAA9qE,KAAA+qE,UAAA,EArBiB,GAuBtB,mCC9BO,IAAMC,EAAqB,MAA5B,MAAOA,EAEXlrE,cAAgB,CAEhBmP,WACA,iDALW+7D,EAAqB,oCAArBA,EAAqBx6D,UAAA,yBAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4BAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJ5BzO,MAHN,QAGMA,CAHD,QAGCA,CAFC,UAEDA,CAD8B,QAC1BA,MAAA,0DAGVA,0BDCa4oE,CAAqB,KEArBC,EAAoB,MAA3B,MAAOA,EAEXnrE,cAAgB,CAEhBmP,WACA,iDALWg8D,EAAoB,oCAApBA,EAAoBz6D,UAAA,uBAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4BAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJ3BzO,MAHN,QAGMA,CAHD,QAGCA,CAFC,UAEDA,CAD8B,QAE5BA,MAAA,yFAEFA,QACAA,MAAA,OAAGA,MAAA,qCAGTA,0BDHa6oE,CAAoB,KEApBC,GAA2B,MAAlC,MAAOA,EAEXprE,cAAgB,CAEhBmP,WACA,iDALWi8D,EAA2B,oCAA3BA,EAA2B16D,UAAA,+BAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4BAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ICJlCzO,MAHN,QAGMA,CAHD,QAGCA,CAFC,UAEDA,CAD8B,QAE5BA,MAAA,8EACFA,QACAA,MAAA,OAAGA,MAAA,qCAGTA,0BDFa8oE,CAA2B,mBEIjC,IAAMC,EAAS,MAAhB,MAAOA,EACXrrE,YACUsrE,EACA1lD,EACA6vC,GAFAv1D,KAAAorE,gBACAprE,KAAA0lB,eACA1lB,KAAAu1D,kBACN,CAEJ8V,YAAYC,EAA+Bn5D,GACzC,QAAKnS,KAAKorE,cAAczqE,IAAI,WAC1BX,KAAK0lB,aAAa7jB,kBACX,EAIX,iDAdWspE,GAAS/oE,MAAAC,KAAAD,MAAAyH,KAAAzH,MAAAmO,KAAA,sCAAT46D,EAAS7oE,QAAT6oE,EAAS5oE,UAAAC,WAFR,QAAM,SAEP2oE,CAAS,KCJtB,MAAMxe,EAAiB,CACrB,CACE4e,QAAU7lB,GACe,IAAfA,EAAI7kD,QAAgB6kD,EAAI,GAAGjkD,KAAKixD,MAAM,qBAC1C,CAAE8Y,SAAU9lB,GACZ,KAEN+lB,aAAcA,IACZlB,QAAAE,UAAAvV,KAAAwW,EAAAC,KAAAD,EAAA,OAAqDxW,KAAMhyB,GAAMA,EAAEusB,qBAEvE,CACEhuD,KAAM,cACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZC,EAAA7qB,EAAA,qDAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAmDxW,KAAMhyB,GAAMA,EAAE0oC,oBAErE,CACEnqE,KAAM,OACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,uDAAA6qB,EAAA7qB,EAAA,6FAAA6qB,EAAA7qB,EAAA,wGAAA6qB,EAAA7qB,EAAA,UAAA6qB,EAAA7qB,EAAA,yCAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAqCxW,KAAMhyB,GAAMA,EAAE4oC,aAEvD,CACErqE,KAAM,WACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZC,EAAA7qB,EAAA,uDAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAA6CxW,KAAMhyB,GAAMA,EAAE6oC,iBAE/D,CACEtqE,KAAM,SACN4pE,YAAa,CAACF,GACdM,aAAcA,IAAMlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,wGAAA6qB,EAAA7qB,EAAA,iDAAA6qB,EAAA7qB,EAAA,UAAA6qB,EAAA7qB,EAAA,6CAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAyCxW,KAAKhyB,GAAKA,EAAE8oC,eAE3E,CACEvqE,KAAM,iBACN4pE,YAAa,CAACF,GACdM,aAAcA,IAAMC,EAAA7qB,EAAA,iDAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAuCxW,KAAKhyB,GAAKA,EAAE8/B,cAEzE,CACEvhE,KAAM,UACN4pE,YAAa,CAACF,GACdM,aAAcA,IAAMlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,6FAAA6qB,EAAA7qB,EAAA,UAAA6qB,EAAA7qB,EAAA,+CAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAA2CxW,KAAKhyB,GAAKA,EAAE+oC,gBAE7E,CACExqE,KAAM,QACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,wGAAA6qB,EAAA7qB,EAAA,2CAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAuCxW,KAAMhyB,GAAMA,EAAEgpC,cAEzD,CACEzqE,KAAM,OACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,UAAA6qB,EAAA7qB,EAAA,yCAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAqCxW,KAAMhyB,GAAMA,EAAEipC,aAEvD,CACE1qE,KAAM,iBACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZC,EAAA7qB,EAAA,2DAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAAyDxW,KAAMhyB,GAAMA,EAAEkpC,sBAE3E,CACE3qE,KAAM,GACN4pE,YAAa,CAACF,GACdM,aAAcA,IACZlB,QAAAsB,IAAA,CAAAH,EAAA7qB,EAAA,wGAAA6qB,EAAA7qB,EAAA,mDAAAqU,KAAAwW,EAAAC,KAAAD,EAAA,OAA+CxW,KAAMhyB,GAAMA,EAAEmpC,kBAEjE,CACE5qE,KAAM,MACN6qE,UAAW,OACX1f,UAAWoe,GAEb,CACEvpE,KAAM,MACN6qE,UAAW,OACX1f,UAAWqe,GAEb,CACExpE,KAAM,uBACN6qE,UAAW,OACX1f,UAAWse,KAqBR,IAAMqB,EAAgB,MAAvB,MAAOA,oDAAgB,mCAAhBA,GAAgB,uCAVzBhd,KAAaid,QAAQ7f,EAAQ,CAC3B8f,0BAA2B,UAC3BC,oBAAqB,WAIfnd,OAAY,SAIXgd,CAAgB,6KCnGtB,IAAMI,EAAmB,MAA1B,MAAOA,EAEX7sE,YACUy/C,EACAqtB,EACAt+D,GAFAtO,KAAAu/C,eACAv/C,KAAA4sE,iBACA5sE,KAAAsO,gBACN,CAEGu+D,cAAcC,GACnB,IAAIC,EAAqB,aAEzB,OAAQD,GACN,IAAK,sBACHC,EAAa,kBACb,MAEF,IAAK,yBACHA,EAAa,sBACb,MAEF,IAAK,+BACHA,EAAa,4BACb,MAEF,IAAK,uBACHA,EAAa,yBACb,MAEF,IAAK,wBACHA,EAAa,sBACb,MAEF,QACEA,EAAa,aAIjB,OAAOA,CACT,CAEOC,kCAAkCD,EAAoBE,EAAwBC,GACnF,IAAIC,EAAsCntE,KAAKu/C,aAAa7+B,mBAAmBusD,GAE/E,OAAQF,GACN,IAAK,kBACHI,EAAqBntE,KAAKu/C,aAAa1+B,8BAA8BosD,GACrE,MACF,IAAK,sBACHE,EAAqBntE,KAAK4sE,eAAexnD,oBAAoB6nD,GAC7D,MACF,IAAK,4BACHE,EAAqBntE,KAAK4sE,eAAetnD,wBAAwB2nD,GACjE,MACF,IAAK,sBACHE,EAAqBntE,KAAK4sE,eAAepnD,0BAA0BynD,GACnE,MACF,IAAK,yBACHE,EAAqBntE,KAAKu/C,aAAa3+B,sBAAsBqsD,GAC7DF,EAAa,yBACb,MACF,QACEI,EAAqBntE,KAAKu/C,aAAa7+B,mBAAmBusD,GAI9DjtE,KAAKotE,UAAUD,EAAoBJ,EAAYG,EACjD,CAEQE,UAAUD,EAAqC1iE,EAAcyiE,GACnEC,EAAmBtqE,QAAKwM,QACrBC,UAAU,CACT/K,KAAMimB,IAASxqB,KAAKsO,eAAewsD,mBAAmBtwC,EAAK/f,EAAI,EAC/D1H,MAAOiB,IAASkpE,EAAQG,KAAKrpE,EAAIjB,MAAMyM,QAAO,GAEpD,iDA1EWm9D,GAAmBvqE,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,OAAA,sCAAnBo8D,EAAmBrqE,QAAnBqqE,EAAmBpqE,UAAAC,WAFlB,QAAM,SAEPmqE,CAAmB,+HCA5BvqE,MAAA,8BAAqDA,MAAA,yBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAewlB,EAAAC,aAAa,GAAE,GAAEzlB,MAAA,OAAGA,MAAA,GAAkBA,kCAAlBA,MAAA,GAAAA,MAAAwlB,EAAA5V,oCAItF5P,MAAA,UAAiCA,MAAA,aAAOA,MAAA,aAAmEA,8BAA7DA,MAAA,GAAAA,MAAA,YAAAwlB,EAAA0lD,qBAAA1lD,EAAAi2C,OAAA9vD,YAAA3L,gCAI9CA,MAAA,+BAAqDA,MAAA,YAAAwlB,EAAAi2C,OAAA0P,aAAAnrE,gDACrDA,MAAA,kCAAKA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAA4lD,YAAA5lD,EAAAi2C,QAAmB,GAAuGz7D,gCAA1DA,MAAA,YAAAA,MAAA,IAAAwlB,EAAAi2C,OAAAC,aAAA17D,QCL7E,IAAMqrE,EAAwB,MAA/B,MAAOA,EAMX3tE,YACUwxB,EACAI,EACA7e,EACA66D,EACwBztE,IAJxBD,KAAAsxB,gBACAtxB,KAAA0xB,gBACA1xB,KAAA6S,YACA7S,KAAA0tE,uBACwB1tE,KAAAC,QAR3BD,KAAAgS,SAA0B,IAS9B,CAE8C27D,QAAQC,GACvD,MAAMX,EAAiBW,EAAcC,aAAa,OAAS,KAC3D,IAAId,EAAa/sE,KAAK0tE,qBAAqBb,cAAc7sE,KAAK69D,OAAO0P,cAAgB,IAEjFvtE,KAAK8tE,oBAAoBv0B,eAAew0B,SAASH,IAAkBX,GACrEjtE,KAAK0tE,qBAAqBV,kCAAkCD,EAAYE,EAAiBjtE,KAAKysB,iBAAkBk/C,KAAK3rE,MAEzH,CAEOiP,WACLjP,KAAKC,QAAO29D,OAAqB59D,KAAKC,MACtCD,KAAKguE,gBACP,CAEOR,YAAY3P,IAIV,GAFLA,GAAQ0P,cAAcvpD,QACpB,2DAGHhkB,KAAK0xB,cAAcsqC,iBACtB,CAEQgS,iBACNhuE,KAAK69D,OAAS79D,KAAKC,KAAK,EAC1B,CAGOqtE,qBAAqBW,GAE1B,IAAIC,EAAaniE,IAAOkiE,GAAQE,UAChC,OACED,EAAWlqD,QAAQ,WAAY,GAC/BkqD,EAAWlqD,QAAQ,WAAY,GAC/BkqD,EAAWlqD,QAAQ,SAAU,EAEtB,QACGkqD,CACd,CAGOE,cAAcC,GAInBruE,KAAKsuE,kBAAoBtuE,KAAKsxB,cAC3BnjB,cAJQ,CACTogE,WAAY,CAACF,KAIZxrE,QAAKwM,QACLC,UAAU,CACT/K,KAAOqwB,IACL50B,KAAKsxB,cAAc3kB,gBAAgB,iBACnC3M,KAAK6S,UAAUI,OAAK,EAEtBlQ,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,KACRjqB,KAAKsuE,kBAAkBjjD,aAAW,GAG1C,CAEQoB,iBAAiBza,GACvBhS,KAAKgS,SAAWA,EAChBxN,WAAW,KACTxE,KAAKgS,SAAW,MACf,IACL,CAGO6V,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKgS,SAAW,MACfkZ,EACL,iDAxFWuiD,GAAwBrrE,MAAAC,KAAAD,MAAAyH,OAAAzH,MAAAmO,MAAAnO,MAAAmQ,GAAAnQ,MAWzBkO,MAAe,oCAXdm9D,EAAwBj9D,UAAA,2BAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,4GAAxBzO,MAAA,iBAAA2O,IAAA,OAAAD,EAAA68D,QAAA58D,GAAA4S,OAAsB,+wBDX/BvhB,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,sBAAgBA,QACuCA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAEAA,MAAA,WACEA,MAAA,EAAAosE,EAAA,+BAGEpsE,MADF,WACEA,CADuC,WACjCA,MAAA,+BAAwBA,QAC9BA,MAAA,GAAAqsE,EAAA,cACFrsE,QAEAA,MAAA,UAEEA,MADA,GAAAssE,EAAA,UACAtsE,CADuF,GAAAusE,EAAA,cAG3FvsE,UAGEA,MADF,2BACEA,CAD8B,gBAC2BA,MAAA,0BAAS0O,EAAAs9D,cAAAt9D,EAAA+sD,OAAA14D,WAAkC,GAAG,GAAE/C,MAAA,YAE7GA,mBAhB4BA,MAAA,GAAAA,MAAA,OAAA0O,EAAAkB,UAIf5P,MAAA,GAAAA,MAAA,aAAA0O,EAAA+sD,OAAA,KAAA/sD,EAAA+sD,OAAA9vD,YAIH3L,MAAA,GAAAA,MAAA,aAAA0O,EAAA+sD,OAAA,KAAA/sD,EAAA+sD,OAAA0P,cACgCnrE,cAAA,aAAA0O,EAAA+sD,OAAA,KAAA/sD,EAAA+sD,OAAAC,6SCL7B2P,CAAwB,uJCJjCrrE,MAAA,8BAAqDA,MAAA,yBAAAA,MAAAs+B,GAAA,MAAAC,EAAAv+B,QAAA,OAAAA,MAAeu+B,EAAA9Y,aAAa,GAAE,GAAEzlB,MAAA,OAAGA,MAAA,GAAkBA,kCAAlBA,MAAA,GAAAA,MAAAu+B,EAAA3uB,mDAKpF5P,MAAA,0BAUYA,MAAA,iBAAwEA,MAAA,UAAIA,gCAC5EA,MAAA,iBAA+DA,MAAA,WAAKA,kDAJ1EA,MAAA,GACEA,MAAA,wBAAiBA,MAAA,yBAAAwsE,EAAAxsE,MAAAkrB,GAAAuhD,EAAAD,EAAAr+C,UAAAu+C,GAAAF,EAAA5xC,MAAAypC,GAAArkE,QAAA46B,MAAA2D,GAAAv+B,MAAA,UAAAA,MAASu+B,GAAAouC,gBAAAF,EAAApI,GAAAqI,IAA2B,GACnD1sE,MAAA,aAEEA,MADA,EAAA4sE,GAAA,kBACA5sE,CADwE,EAAA6sE,GAAA,mBAGxE7sE,MAAA,aAAyCA,MAAA,GAE7CA,qFALgCA,MAAA,GAAAA,MAAA,OAAAu+B,EAAAuuC,aAAAzI,GAAA9lC,EAAAwuC,YAAAL,GACA1sE,cAAA,YAAAysE,EAAA/gE,iBAEa1L,MAAA,GAAAA,MAAAu+B,EAAAjP,cAAAipC,aAAAkU,EAAAtB,aAAA,gCATjDnrE,MAAA,GACEA,MAAA,aAEAA,MAAA,EAAAgtE,GAAA,uBAWAhtE,MAAA,8DAboBA,cAAA,YAAAu+B,EAAAi5B,WAAAyV,EAAAtsC,MAAA3gC,OAEWA,cAAA,UAAAitE,EAAApvE,iCALnCmC,MAAA,2BAEEA,MAAA,EAAAktE,GAAA,uBAiBFltE,8BAnBuCA,MAAnB,cAAmBA,CAAD,mCAELA,cAAA,UAAAu+B,EAAA4uC,uCAqBnCntE,MAAA,+BAAiDA,MAAA,YAAAu+B,EAAA6uC,mBAAAptE,iDAKjDA,MAAA,GACEA,MAAA,OAAGA,MAAA,0HAAoHA,2CAIrHA,MAAA,OAAkCA,MAAA,WAAKA,MAAA,aAAuEA,+BAAjEA,MAAA,GAAAA,MAAA,YAAAu+B,EAAA2sC,qBAAA3sC,EAAAk9B,OAAA4R,gBAAArtE,kCAC7CA,MAAA,OAA8BA,MAAA,aAAOA,MAAA,aAAmEA,+BAA7DA,MAAA,GAAAA,MAAA,YAAAu+B,EAAA2sC,qBAAA3sC,EAAAk9B,OAAA9vD,YAAA3L,iCAI3CA,MAAA,gCAAuEA,MAAA,YAAAu+B,EAAAk9B,OAAA0P,aAAAnrE,iDACvEA,MAAA,kCAAoBA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAA2Q,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAA6sC,YAAA7sC,EAAAk9B,QAAmB,GAA0Ez7D,iCAA5CA,MAAA,YAAAA,MAAA,IAAAu+B,EAAAk9B,OAAAC,aAAA17D,kCAPhFA,MAAA,YAEEA,MADA,EAAAstE,GAAA,WACAttE,CADkC,EAAAutE,GAAA,YAEpCvtE,QAEAA,MAAA,SAEEA,MADA,EAAAwtE,GAAA,WACAxtE,CADyG,EAAAytE,GAAA,cAE3GztE,8BAPMA,cAAA,aAAAu+B,EAAAk9B,OAAA,KAAAl9B,EAAAk9B,OAAA4R,gBACArtE,cAAA,aAAAu+B,EAAAk9B,OAAA,KAAAl9B,EAAAk9B,OAAA9vD,YAIuC3L,MAAA,GAAAA,MAAA,aAAAu+B,EAAAk9B,OAAA,KAAAl9B,EAAAk9B,OAAA0P,cACQnrE,cAAA,aAAAu+B,EAAAk9B,OAAA,KAAAl9B,EAAAk9B,OAAAC,uDAQ3D17D,MAAA,eAAgGA,MAAA,mBAAAA,MAAAytB,GAAA,MAAA8Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAmvC,cAAa,GAAE1tE,MAAA,sBAAgBA,kDACxIA,MAAA,eAAgGA,MAAA,mBAAAA,MAAA0tB,GAAA,MAAA6Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAovC,SAAApvC,EAAAk9B,OAAA14D,WAA6B,IAAG,GAAE/C,MAAA,kBAAYA,SClDpJ,IAAM4tE,GAAqB,MAA5B,MAAOA,EAgBXlwE,YACUwxB,EACwBlhB,EACzByC,EACA6e,EACCg8C,IAJA1tE,KAAAsxB,gBACwBtxB,KAAAoQ,QACzBpQ,KAAA6S,YACA7S,KAAA0xB,gBACC1xB,KAAA0tE,wBAlBF1tE,KAAAiwE,gBAAuB,GACvBjwE,KAAAgL,YAAsB,EACvBhL,KAAAC,KAAY,GAEZD,KAAAkvE,YAAsB,EACtBlvE,KAAAmvE,WAAqB,EACrBnvE,KAAAuvE,YAAmB,GACnBvvE,KAAAwvE,mBAA6B,GAC7BxvE,KAAAkwE,4BAA6B,EAC7BlwE,KAAAmwE,mBAA6B,EAC7BnwE,KAAAgS,SAA0B,KAU/BhS,KAAKC,KAAOD,KAAKoQ,MACA,aAAbpQ,KAAKC,OACPD,KAAKkwE,4BAA6B,EAClClwE,KAAKmwE,mBAAoB,EACzBnwE,KAAKuvE,YAAcvvE,KAAKC,KACxBD,KAAKuvE,eAAc3R,OAAqB59D,KAAKuvE,aAC7CvvE,KAAKowE,uBAET,CAEiDzC,QAAQC,GACvD,MAAMX,EAAiBW,EAAcC,aAAa,OAAS,KAC3D,IAAId,EAAa/sE,KAAK0tE,qBAAqBb,cAAc7sE,KAAK69D,OAAO0P,cAAgB,IAEjFvtE,KAAK8tE,oBAAoBv0B,eAAew0B,SAASH,IAAkBX,GACrEjtE,KAAK0tE,qBAAqBV,kCAAkCD,EAAYE,EAAiBjtE,KAAKysB,iBAAkBk/C,KAAK3rE,MAEzH,CAEOiP,WAAkB,CAGlB8/D,gBAAgBv/D,EAAc0/D,EAAkBC,GACrDnvE,KAAKkwE,4BAA6B,EAClClwE,KAAKkvE,YAAcA,EACnBlvE,KAAKmvE,WAAaA,EACY,IAA1B3/D,EAAQigE,iBAERzvE,KAAKuvE,YAAYL,GAAajvE,KAAQkvE,GAAYgB,kBAElDnwE,KAAKmwE,mBAAoB,GAEzBnwE,KAAKmwE,mBAAoB,EACzBnwE,KAAKuvE,YAAYL,GAAajvE,KAAQkvE,GAAYgB,mBAChD,IAGNnwE,KAAK69D,OAAS79D,KAAKuvE,YAAYL,GAAajvE,KAAQkvE,GAIpDnvE,KAAKsuE,kBAAoBtuE,KAAKsxB,cAAcnjB,cAHjC,CACTogE,WAAY,CAACvuE,KAAK69D,OAAO14D,aAEqCmK,UAAU,CACxE/K,KAAOqwB,KACL50B,KAAKsxB,cAAc3kB,gBAAgB,gBAAe,EAEpD5J,MAAQiB,KACNhE,KAAKysB,iBAAiBzoB,GAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,CAEO2vC,WAAW72B,GAChB,OAAOh3B,IAAOg3B,GAAM92B,OAAO,aAC7B,CAGOqhE,qBAAqBW,GAE1B,IAAIC,EAAaniE,IAAOkiE,GAAQE,UAChC,OACED,EAAWlqD,QAAQ,WAAY,GAC/BkqD,EAAWlqD,QAAQ,WAAY,GAC/BkqD,EAAWlqD,QAAQ,SAAU,EAEtB,QACGkqD,CACd,CAGOmC,iBACLrwE,KAAKgL,YAAchL,KAAKgL,YAAc,EACtChL,KAAKswE,kBAAoBtwE,KAAKsxB,cAC3B1jB,cAAc5N,KAAKgL,YAAa,cAChCsE,UAAU,CACT/K,KAAOqwB,IACAA,EAAS/zB,QAIG,aAAbb,KAAKC,OACPD,KAAKC,KAAO,IAEdD,KAAKC,KAAOD,KAAKC,KAAK6wD,OAAOl8B,GAC7B50B,KAAKuvE,YAAcvvE,KAAKC,KACxBD,KAAKuvE,eAAc3R,OAAqB59D,KAAKuvE,aAC7CvvE,KAAKwvE,mBAAqB,GAC1BxvE,KAAKowE,wBAVHpwE,KAAKwvE,mBAAqB,2BAUH,EAE3BzsE,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEhB,CAGQmmD,wBACN9sD,YAAMtjB,KAAKuvE,aACR1sE,QACC0tE,MAASC,GAAWA,EAAEziE,aAAU,EAChC0iE,MAAUC,GACRA,EAAO7tE,QAAK84D,MAAO,CAAClkB,EAAKk5B,IAAQ,IAAIl5B,EAAKk5B,GAAM,CAAC,GAAGD,EAAO/6C,WAAQ,EAErEtxB,MAAKusE,KAAW7tC,KAAM6tC,EAAI,GAAI3wE,KAAM2wE,EAAIvf,MAAM,OAAK,EACnDwf,SAEDvhE,UAAWkhE,IACVxwE,KAAKuvE,YAAciB,IAEvBxwE,KAAKkvE,YAAc,EACnBlvE,KAAKmvE,WAAa,EAClBnvE,KAAK69D,OAAS79D,KAAKuvE,YAAY,GAAGtvE,KAAQ,GACR,IAA9BD,KAAK69D,OAAO4R,iBACVzvE,KAAKuvE,YAAY,GAAGtvE,KAAQ,GAAGkwE,kBACjCnwE,KAAKmwE,mBAAoB,GAEzBnwE,KAAKmwE,mBAAoB,EACzBnwE,KAAKuvE,YAAY,GAAGtvE,KAAQ,GAAGkwE,mBAAuB,GAG5D,CAIOL,cACL9vE,KAAKkwE,4BAA6B,EAClC,QAASn0C,EAAI,EAAGA,EAAI/7B,KAAKuvE,YAAY1uE,OAAQk7B,IAC3C,QAAS+0C,EAAI,EAAGA,EAAI9wE,KAAKuvE,YAAYxzC,GAAG97B,KAAQY,OAAQiwE,IACtD9wE,KAAKuvE,YAAYxzC,GAAG97B,KAAQ6wE,GAAGX,mBAAuB,EACtDnwE,KAAKiwE,gBAAgB7jD,KAAKpsB,KAAKuvE,YAAYxzC,GAAG97B,KAAQ6wE,GAAG3rE,WAM7DnF,KAAKsuE,kBAAoBtuE,KAAKsxB,cAAcnjB,cAHlC,CACRogE,WAAYvuE,KAAKiwE,kBAE4C3gE,UAAU,CACvE/K,KAAOqwB,IACL50B,KAAKsxB,cAAc3kB,gBAAgB,gBAAe,EAEpD5J,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,CAGO8lD,SAAS1B,GACdruE,KAAKkwE,4BAA6B,EAIlClwE,KAAKsuE,kBAAoBtuE,KAAKsxB,cAAcnjB,cAHjC,CACTogE,WAAY,CAACF,KAEiD/+D,UAAU,CACxE/K,KAAOqwB,IACL50B,KAAKsxB,cAAc3kB,gBAAgB,gBAAe,EAEpD5J,MAAQiB,IACNhE,KAAKysB,iBAAiBzoB,EAAIjB,MAAMyM,QAAO,EAEzCya,SAAUA,QAEd,CAEQwC,iBAAiBza,GACvBhS,KAAKgS,SAAWA,EAChBxN,WAAW,KACTxE,KAAKgS,SAAW,MACf,IACL,CAGO6V,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKgS,SAAW,MACfkZ,EACL,CAEOsiD,YAAY3P,IAIV,GAFLA,GAAQ0P,cAAcvpD,QACpB,2DAGJhkB,KAAK0xB,cAAcsqC,iBACrB,CAEO5wC,cACDprB,KAAKsuE,mBACPtuE,KAAKsuE,kBAAkBjjD,cAErBrrB,KAAKswE,mBACPtwE,KAAKswE,kBAAkBjlD,aAE3B,iDAzNW2kD,GAAqB5tE,MAAAC,KAAAD,MAkBtBkO,MAAelO,MAAAyH,MAAAzH,MAAAmO,OAAAnO,MAAAmQ,GAAA,oCAlBdy9D,EAAqBx/D,UAAA,uBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,6GAArBzO,MAAA,iBAAA2O,IAAA,OAAAD,EAAA68D,QAAA58D,GAAA4S,OAAsB,q8CDZ/BvhB,MAFJ,UAEIA,CAFyF,UAEzFA,CADkE,UAC7CA,MAAA,aAAOA,QACgDA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBAEAA,MAAA,WACEA,MAAA,EAAA2uE,GAAA,+BAEA3uE,MAAA,YACEA,MAAA,GAAA4uE,GAAA,mBACA5uE,MAAA,aAEEA,MADA,GAAA6uE,GAAA,sBACA7uE,CADmE,GAAA8uE,GAAA,yBAAA9uE,OAwBnEA,MAAA,gBAAsCA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAAu/D,iBAAgB,GAAEjuE,MAAA,eAAUA,MAAA,oBAAaA,QAAYA,MAAA,yBAAiBA,QACrHA,MAAA,GAAA+uE,GAAA,YACF/uE,QAEAA,MAAA,GAAAgvE,GAAA,mBACAhvE,MAAA,aAIEA,MAHA,GAAAivE,GAAA,sBAGAjvE,CAHsE,GAAAkvE,GAAA,yBAAAlvE,OAgB5EA,YAEAA,MAAA,aAEEA,MADA,GAAAmvE,GAAA,gBACAnvE,CADwH,GAAAovE,GAAA,iBAExHpvE,MAAA,gBAAyDA,MAAA,YAE7DA,mDA1D4BA,MAAA,GAAAA,MAAA,OAAA0O,EAAAkB,UAKL5P,MAAA,GAAyBA,MAAzB,WAAA0O,EAAAy+D,YAAyBntE,CAAA,WAAAqvE,GAyBvBrvE,MAAA,GAAAA,MAAA,WAAA0O,EAAA0+D,oBAKFptE,MAAA,GAAyBA,MAAzB,WAAA0O,EAAAy+D,YAAyBntE,CAAA,WAAAsvE,IAmBHtvE,MAAA,GAAAA,MAAA,OAAA0O,EAAAo/D,4BAAAp/D,EAAAq/D,mBACA/tE,cAAA,OAAA0O,EAAAo/D,4BAAAp/D,EAAAq/D,0JClDhCH,CAAqB,6QCN9B5tE,MAAA,GACEA,MAAA,YACEA,MAAA,qBACFA,0DAKIA,MAAA,GACEA,MAAA,iCAA4DA,MAAA,yBAAAA,MAAA0qB,GAAA,MAAA6kD,EAAAvvE,MAAA,UAAAA,MAAeuvE,EAAA9pD,aAAa,GAAE,GACxFzlB,MAAA,OAAGA,MAAA,GACLA,2CAFsCA,cAAA,OAAAuvE,EAAAniE,QAAA/E,MACjCrI,MAAA,GAAAA,MAAAuvE,EAAAniE,QAAAhT,iCAmCG4F,MAAA,mBACEA,MAAA,GACFA,4DAF0CA,MAAA,YAAAwvE,EAAAn1E,QAAA,WAAAo1E,EAAArzE,KAAA,KAAAqzE,EAAArzE,KAAAk7C,cAAA11B,QAAA,MAAA4tD,GAAA,MAAAA,EAAAn1E,MAAA,KAAAm1E,EAAAn1E,MAAAi9C,iBAAyGt3C,MAAA,QAAAyvE,EAAA3iC,cACjJ9sC,cAAA,IAAAyvE,EAAArzE,KAAA,gCAYF4D,MAAA,mBAAiEA,MAAA,GAAgBA,kCAAnCA,MAAA,QAAA0vE,EAAAnyE,IAAmByC,cAAA0vE,EAAAtzE,iCAkCjE4D,MAAA,mBACEA,MAAA,GACFA,4DAFiDA,MAAA,YAAA2vE,EAAAt1E,QAAA,WAAAu1E,EAAArpC,WAAA,KAAAqpC,EAAArpC,WAAA+Q,cAAA11B,QAAA,MAAA+tD,GAAA,MAAAA,EAAAt1E,MAAA,KAAAs1E,EAAAt1E,MAAAi9C,iBAAuHt3C,MAAA,QAAA4vE,EAAAC,UACtK7vE,cAAA,IAAA4vE,EAAArpC,WAAA,gCAOFvmC,MAAA,mBACEA,MAAA,GACFA,4DAF4CA,MAAA,YAAA8vE,EAAAz1E,QAAA,WAAA01E,EAAAr+D,MAAA,KAAAq+D,EAAAr+D,MAAA4lC,cAAA11B,QAAA,MAAAkuD,GAAA,MAAAA,EAAAz1E,MAAA,KAAAy1E,EAAAz1E,MAAAi9C,iBAA0Gt3C,MAAA,QAAA+vE,EAAAznE,SACpJtI,cAAA,IAAA+vE,EAAAr+D,MAAA,IAAAq+D,EAAAp+D,MAAA,gCAWF3R,MAAA,mBACEA,MAAA,GACFA,4DAF0CA,MAAA,YAAAgwE,EAAA31E,QAAA,WAAA41E,EAAAthC,SAAA,KAAAshC,EAAAthC,SAAA2I,cAAA11B,QAAA,MAAAouD,GAAA,MAAAA,EAAA31E,MAAA,KAAA21E,EAAA31E,MAAAi9C,iBAAyGt3C,MAAA,QAAAiwE,EAAAC,QACjJlwE,cAAA,IAAAiwE,EAAAthC,SAAA,gCAUF3uC,MAAA,eAIEA,MAAA,GACFA,wEALwCA,MAAA,YAAA8vE,EAAAz1E,QAAA,WAAA81E,EAAAz+D,MAAA,KAAAy+D,EAAAz+D,MAAA4lC,cAAA11B,QAAA,MAAAkuD,GAAA,MAAAA,EAAAz1E,MAAA,KAAAy1E,EAAAz1E,MAAAi9C,iBAGXt3C,MAArB,QAAAmwE,EAAA7nE,QAAqBtI,CAAD,WAAAmwE,EAAA7nE,UAAA8nE,EAAA/1E,OAC1B2F,cAAA,IAAAmwE,EAAAz+D,MAAA,IAAAy+D,EAAAx+D,MAAA,6BAoBA3R,MAAA,eACEA,MAAA,+BACFA,gCAOAA,MAAA,eACEA,MAAA,+BACFA,mCAuBFA,MAAA,mBAIEA,MAAA,GACFA,6DALgDA,MAAA,YAAAqwE,EAAAh2E,QAAA,WAAAi2E,EAAA/pC,WAAA,KAAA+pC,EAAA/pC,WAAA+Q,cAAA11B,QAAA,MAAAyuD,GAAA,MAAAA,EAAAh2E,MAAA,KAAAg2E,EAAAh2E,MAAAi9C,iBAGxCt3C,MAAA,QAAAswE,EAAAT,UACN7vE,cAAA,IAAAswE,EAAA/pC,WAAA,+CAlLdvmC,MADF,0BACEA,CADyC,YAEvCA,MAAA,EAAAuwE,GAAA,uBAKAvwE,MAAA,sBAAgJA,MAAA,6BAAA2O,GAAA3O,MAAAs+B,GAAA,MAAAixC,EAAAvvE,QAAA,OAAAA,MAAqBuvE,EAAAiB,YAAA7hE,GAAmB,GAIhL3O,MAHN,eAGMA,CAHgB,WAGhBA,CAFkD,sBAElDA,CAD4B,eACjBA,MAAA,gBAAUA,QACrBA,MAAA,cAAuEA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAC9GziC,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,gBAASA,QACpBA,MAAA,eAAuEA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAC9GziC,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,YAAKA,QAChBA,MAAA,eAA2GA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAClJziC,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,YAAKA,QAChBA,MAAA,eAAuEA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAEhHziC,YAGIA,MAFJ,YAEIA,CAFkD,uBAElDA,CAD4B,gBACjBA,MAAA,WAAIA,QACfA,MAAA,eAAsEA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAC7GziC,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,aAAMA,QACjBA,MAAA,eAAoFA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAC3HziC,UAEEA,MADF,uBACEA,CAD4B,sBAC0DA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAAkxC,EAAAxvE,MAAA,IAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAjB,GAAmB,GACvHxvE,MAAA,iBACAA,MAAA,GAAA0wE,GAAA,qBAIJ1wE,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,eAAQA,QACnBA,MAAA,eAAoHA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAE7JziC,YAGIA,MAFJ,YAEIA,CAFkD,uBAElDA,CAD4B,sBAE1BA,MAAA,GAAA2wE,GAAA,qBAEJ3wE,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,2BAAoBA,QAC/BA,MAAA,eAA4FA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAAjIziC,QAEAA,MADA,8BACAA,CADyE,4BAE3EA,QAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,yBAAkBA,QAC7BA,MAAA,eAAwFA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAA7HziC,QAEAA,MADA,8BACAA,CADuE,4BAG3EA,UAGIA,MAFJ,YAEIA,CAFkD,uBAElDA,CAD4B,gBACjBA,MAAA,uBAAgBA,QAC3BA,MAAA,eAAkFA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAAvHziC,QAEAA,MADA,8BACAA,CAD0E,4BAE5EA,QAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,qBAAcA,QACzBA,MAAA,eAA8EA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAAnHziC,QAEAA,MADA,8BACAA,CADwE,4BAG5EA,UAGIA,MAFJ,YAEIA,CAFkD,uBAElDA,CAD4B,sBACqEA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAAqxC,EAAA3vE,MAAA,IAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAd,GAAuB,GACtI3vE,MAAA,iBACAA,MAAA,GAAA4wE,GAAA,qBAIJ5wE,UAEEA,MADF,uBACEA,CAD4B,uBACyDA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAAwxC,EAAA9vE,MAAA,IAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAX,GAAmB,GACtH9vE,MAAA,kBACAA,MAAA,GAAA6wE,GAAA,qBAIJ7wE,UAEEA,MADF,uBACEA,CAD4B,gBACjBA,MAAA,oBAAaA,QACxBA,MAAA,eAA6EA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GACpHziC,UAEEA,MADF,uBACEA,CAD4B,uBACoDA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAA0xC,EAAAhwE,MAAA,IAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAT,GAAiB,GAC/GhwE,MAAA,kBACAA,MAAA,GAAA8wE,GAAA,qBAMR9wE,cAIMA,MAHN,gBAGMA,CAHqC,YAGrCA,CAFkD,wBAElDA,CAD4B,oBAC6DA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAAwxC,EAAA9vE,MAAA,IAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAX,GAAmB,GAC1H9vE,MAAA,IAAA+wE,GAAA,iBAQN/wE,YAIMA,MAHN,aAGMA,CAHgD,aAGhDA,CAFe,yBAEfA,CADoH,YACnGA,MAAA,0BAAkBA,QAEjCA,MADF,cACEA,CADkB,2BACUA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAixC,EAAAvvE,QAAA,OAAAA,MAASuvE,EAAAyB,WAAW,OAAM,GAAEhxE,MAAA,WAAGA,QAC3DA,MAAA,2BAA4BA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAixC,EAAAvvE,QAAA,OAAAA,MAASuvE,EAAAyB,WAAW,MAAK,GAAEhxE,MAAA,UAE3DA,YAGIA,MAFJ,aAEIA,CAFkD,wBAElDA,CAD4B,iBACjBA,MAAA,mBAAWA,QACtBA,MAAA,gBAAiGA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAAtIziC,QAEAA,MADA,+BACAA,CAD0E,8BAE1EA,MAAA,IAAAixE,GAAA,oBAGFjxE,QAEEA,MADF,wBACEA,CAD4B,iBACjBA,MAAA,iBAASA,QACpBA,MAAA,gBAA6FA,MAAA,qBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAa2O,EAAA8zB,kBAAwB,GAAlIziC,QAEAA,MADA,+BACAA,CADwE,8BAExEA,MAAA,IAAAkxE,GAAA,oBAIJlxE,UAEEA,MADF,UACEA,CADG,SACAA,MAAA,mDAEPA,YAGIA,MAFJ,aAEIA,CAFe,yBAEfA,CADkH,YACjGA,MAAA,yBAAiBA,QAEhCA,MADF,cACEA,CADkB,2BACUA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAixC,EAAAvvE,QAAA,OAAAA,MAASuvE,EAAA4B,gBAAgB,MAAK5B,EAAA6B,eAAA/2E,MAAAg3E,wBAA8C,GAAErxE,MAAA,WAAGA,QAC7GA,MAAA,2BAA4BA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAixC,EAAAvvE,QAAA,OAAAA,MAASuvE,EAAA4B,gBAAgB,KAAI5B,EAAA6B,eAAA/2E,MAAAg3E,wBAA8C,GAAErxE,MAAA,UAKnHA,kBAIMA,MAHN,iBAGMA,CAHuB,aAGvBA,CAF4C,wBAE5CA,CAD4B,wBACmEA,MAAA,0BAAAA,MAAAs+B,GAAA,MAAA+xC,EAAArwE,MAAA,KAAAuvE,EAAAvvE,QAAA,OAAAA,MAAgBuvE,EAAAkB,aAAAJ,GAAkB,GAC/HrwE,MAAA,mBAA4FA,MAAA,mBAAA2O,GAAA3O,aAAAs+B,GAAAt+B,MAAW2O,EAAA8zB,kBAAwB,GAA/HziC,QACAA,MAAA,IAAAsxE,GAAA,qBAYdtxE,yHAzLmBA,MAAA,GAAAA,MAAA,OAAAuvE,GAAAniE,QAAA/E,MAK6GrI,cAAA,mBAazEA,MAAA,IAAAA,MAAA,gBAmBdA,MAAA,IAAAA,MAAA,UAAAuvE,GAAAt/C,YAOSjwB,MAAA,GAAgBA,MAAhB,cAAgBA,CAAD,eAKzCA,MAAA,GAAAA,MAAA,eACoBA,MAAA,GAAAA,MAAA,UAAAuvE,GAAAgC,aAKCvxE,MAAA,GAAyBA,MAAzB,MAAAuvE,GAAArmC,QAAyBlpC,CAAV,gBAAAwxE,GACfxxE,cAAA,MAAAwxE,GAKFxxE,MAAA,GAAyBA,MAAzB,MAAAuvE,GAAArmC,QAAyBlpC,CAAV,gBAAAyxE,GACbzxE,cAAA,MAAAyxE,GAOczxE,MAAA,GAAAA,MAAA,gBAAA0xE,GACd1xE,cAAA,MAAA0xE,GAKY1xE,MAAA,GAAAA,MAAA,gBAAA2xE,GACZ3xE,cAAA,MAAA2xE,GAQJ3xE,MAAA,GAAAA,MAAA,UAAAuvE,GAAAqC,mBAQA5xE,MAAA,GAAAA,MAAA,UAAAuvE,GAAAsC,cAYA7xE,MAAA,IAAAA,MAAA,UAAAuvE,GAAAuC,YAWJ9xE,MAAA,GAAAA,MAAA,UAAAuvE,GAAAsC,cAqByC7xE,MAAA,IAA0EA,MAA1E,gBAAA+xE,GAA0E/xE,CAAhD,WAAAuvE,GAAAyC,cACvDhyE,cAAA,MAAA+xE,IAErB/xE,MAAA,GAAAA,MAAA,OAAAuvE,GAAA9+C,WAAA,2CAMgDzwB,MAAA,GAAwEA,MAAxE,gBAAAiyE,GAAwEjyE,CAAhD,WAAAuvE,GAAAyC,cACnDhyE,cAAA,MAAAiyE,IAErBjyE,MAAA,GAAAA,MAAA,OAAAuvE,GAAA9+C,WAAA,yCAyBazwB,MAAA,IAAAA,MAAA,UAAAuvE,GAAA2C,mBC5KxC,IAAMC,GAAoB,MAA3B,MAAOA,EA8BXz0E,YACUgiC,EACAxQ,EACA1I,EACA8I,EACAjE,GACAkE,GACD7e,GACPxE,IAPQtO,KAAA8hC,SACA9hC,KAAAsxB,gBACAtxB,KAAA4oB,KACA5oB,KAAA0xB,gBACA1xB,KAAAytB,eACAztB,KAAA2xB,kBACD3xB,KAAA8S,UAjCD9S,KAAAw0E,aAAiB,GAEjBx0E,KAAAy0E,eAA0B,EAC1Bz0E,KAAA4xB,qBAAuB,IAAIrxB,IAG5BP,KAAAqyB,WAAkB,GAQlBryB,KAAAg0E,kBAAyB,GACzBh0E,KAAAi0E,aAAoB,GACpBj0E,KAAAk0E,WAAkB,GAClBl0E,KAAAs0E,iBAAwB,GAExBt0E,KAAA00E,UAAoB,EACpB10E,KAAAwP,QAAe,GACfxP,KAAAksB,WAAqB,EACrBlsB,KAAAioE,YAAsB,EACtBjoE,KAAAo0E,cAAwB,EACxBp0E,KAAA20E,eAAsB30E,KAAKytB,YAAY7rB,WAAW8I,QAClD1K,KAAA2zE,YAAwCj0E,KAoVxCM,KAAA6yB,WAAa,CAACC,GAAqBC,KACjC/yB,KAAKwzE,eAAexgD,SAASF,IAAaG,SAASF,IAI5D/yB,KAAA40E,WACGpgD,IACEnL,IAEGA,IACAA,GAAM2J,UACNwC,OAAOC,KAAKpM,GAAM2J,UAAU0C,KAAMm/C,KAAOrgD,GAAUnL,GAAM2J,SAAS6hD,MAC7C,KAAO,CAAED,YAAY,GArVhD50E,KAAK80E,iBAAmB90E,KAAK0xB,cAAcgnB,cAAc,sBACzD14C,KAAKwzE,eAAiBxzE,KAAK4oB,GAAGS,MAAM,CAChCvV,MAAO,CAAC,IACRC,MAAO,CAAC,IACRG,MAAO,CAAC,IACRD,MAAO,CAAC,IACRG,KAAM,CAAC,IACP+lC,OAAQ,CAAC,IACTxjC,SAAU,CAAC,IACXtC,IAAK,CAAC,IACN0gE,UAAU,CAAC,IACXC,QAAS,CAAC,IACVC,MAAO,CAAC,IACRC,aAAc,CAAC,IACfC,WAAY,CAAC,IACbC,cAAe,CAAC,IAChB1qE,QAAS,CAAC,MACV2qE,wBAAyB,CAAC,IAC1B/C,OAAQ,CAAC,IACTgD,aAAc,CAAC,IACf7B,uBAAwB,CAAC,IACzB8B,sBAAuB,CAAC,IACxBC,4BAA6B,CAAC,GAAI,IAClCC,0BAA2B,CAAC,GAAI,KAElC,CACEjhD,UAAWx0B,KAAK40E,WAAWrrD,MAAWC,YAK1CxpB,KAAKqyB,WAAcpyB,GACnBD,KAAKsrC,QAAU,IAAIt/B,KAEnBhM,KAAK8D,WAAawK,GAAeqpD,cACnC,CAEO1oD,WACLjP,KAAK01E,iBACP,CAEOA,kBACL11E,KAAKksB,WAAY,EAEjBlsB,KAAK21E,iBAAmB31E,KAAKsxB,cAAcvkB,oBACxCuC,UAAU,CACT/K,KAAQqwB,IAGN,GAFA50B,KAAKksB,WAAY,EAEb0I,GAAU/zB,OAAQ,CACpBb,KAAKw0E,aAAe5/C,EAEjB50B,KAAKw0E,aAAa,GAAGR,oBACtBh0E,KAAKg0E,kBAAoBh0E,KAAKw0E,aAAa,GAAGR,mBAGhD,IAAI3mE,EAAM,CAAC,CAAE3C,QAAW,EAAGoJ,MAAS,aAAcC,MAAS,KACvD/T,KAAKw0E,aAAa,GAAGP,cACpBj0E,KAAKw0E,aAAa,GAAGP,aAAgBpzE,OAAS,GAC9Cb,KAAK80E,kBACR90E,KAAKi0E,aAAej0E,KAAKw0E,aAAa,GAAGP,aACzCj0E,KAAKi0E,aAAe,IAAIj0E,KAAKi0E,gBAAiB5mE,IAEG,IAAxCrN,KAAKw0E,aAAa,GAAGP,cAC3Bj0E,KAAK80E,kBACR90E,KAAKi0E,aAAe,GACpBj0E,KAAKi0E,aAAe,IAAIj0E,KAAKi0E,gBAAiB5mE,IAEG,IAAxCrN,KAAKw0E,aAAa,GAAGP,eAC1Bj0E,KAAK80E,mBACT90E,KAAKi0E,aAAe,GACpBj0E,KAAKi0E,aAAe,IAAIj0E,KAAKi0E,aAAkB,CAC7CvpE,QAAW1K,KAAKytB,YAAY7rB,WAAW8I,QACvCoJ,MAAS9T,KAAKytB,YAAYjP,aAAa1K,MACvCC,MAAS/T,KAAKytB,YAAYjP,aAAazK,SAKvC/T,KAAKw0E,aAAa,GAAGN,aACvBl0E,KAAKk0E,WAAal0E,KAAKw0E,aAAa,GAAGN,YAEO,IAA5Cl0E,KAAKw0E,aAAa,GAAGF,mBACvBt0E,KAAKs0E,iBAAmBt0E,KAAKw0E,aAAa,GAAGF,iBAEjD,MACEt0E,KAAKw0E,aAAe,IAGxBzxE,MAASiB,IACPhE,KAAKksB,WAAY,EACjBlsB,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,EAAIjB,MAAMyM,SAElBxP,KAAK6nB,aAAa,IAAK,EAEzBoC,SAAWA,QAEjB,CAEO4oD,aAAaziE,GAClBA,EAAM3T,MAAQ,EAChB,CAEOm2E,YAAYxiE,GAIjB,GAHApQ,KAAK00E,UAAYtkE,EAAM4sB,MACvBh9B,KAAK41E,YACL51E,KAAKioE,WAAqC,6BAAvB73D,EAAM61B,IAAIC,UACzBlmC,KAAKioE,WAAY,CACnB,MAAM5iE,EAAerF,KAAKi0E,aAAatyB,KAAMk0B,GAA6BA,EAAMnrE,SAAW1K,KAAK20E,gBAC5FtvE,GACJrF,KAAKwzE,eAAe7yE,IAAI,YAAYu6C,SAAS,CAAC71C,EAAaqF,SAE7D,CACF,CAGOggC,WAAWvqB,GAChB,GAAuB,IAAnBngB,KAAK00E,UAGP,GAFA10E,KAAKo0E,cAAe,EAEhBp0E,KAAKwzE,eAAenlD,QACtB,GAAIruB,KAAKwzE,eAAenlD,OAAOumD,WAM7B,OALA50E,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAM,oDAERwD,KAAK6nB,aAAa,SAGf,CACL,IAAIxa,EAAgB,CAClBvJ,WAAY,CAAE2G,KAAM,SAAUhO,MAAO,CAACuD,KAAK8D,aAC3CgQ,MAAO,CAAErJ,KAAM,SAAUhO,MAAO,CAAC0jB,EAASrM,QAC1CC,MAAO,CAAEtJ,KAAM,SAAUhO,MAAO,CAAC0jB,EAASpM,QAC1CG,MAAO,CACLzJ,KAAM,SACNhO,MAAO,CAAC0jB,EAASjM,MAAQiM,EAASjM,MAAM8jC,QAAQ,MAAO,IAAM,KAE/D/jC,MAAO,CAAExJ,KAAM,SAAUhO,MAAO,CAAC0jB,EAASlM,QAC1CG,KAAM,CAAE3J,KAAM,SAAUhO,MAAO,CAAC0jB,EAAS/L,OACzC+lC,OAAQ,CAAE1vC,KAAM,SAAUhO,MAAO,CAAC0jB,EAASg6B,SAC3CxjC,SAAU,CAAElM,KAAM,SAAUhO,MAAO0jB,EAASxJ,UAC5Co+D,UAAW,CAAEtqE,KAAM,SAAUhO,MAAO,CAAC0jB,EAAS40D,YAC9C1gE,IAAK,CAAE5J,KAAM,SAAUhO,MAAO,CAAC0jB,EAAS9L,MACxCL,IAAK,CACHvJ,KAAM,SACNhO,MAAO,CACe,IAApB0jB,EAAS60D,QACL,IACAh1E,KAAK0xB,cAAcqmC,eAAe53C,EAAS60D,SAC7B,IAAlB70D,EAAS80D,MACL,IACAj1E,KAAK0xB,cAAcqmC,eAAe53C,EAAS80D,SAGnDa,UAAW,CACTrrE,KAAM,QACNhO,MAAO,CACoB,IAAzB0jB,EAAS+0D,aACL,IACAl1E,KAAK0xB,cAAcqmC,eAAe53C,EAAS+0D,cACxB,IAAvB/0D,EAASg1D,WACL,IACAn1E,KAAK0xB,cAAcqmC,eAAe53C,EAASg1D,cAGnDC,cAAe,CACb3qE,KAAM,SACNhO,MAAOuD,KAAK+1E,gBAAgB,CAAC51D,EAASi1D,iBAExC1qE,QAAS,CACPD,KAAM,SACNhO,MAAO0jB,EAASzV,SAAWyV,EAASzV,QAAQ7J,OAAO,EAAIb,KAAK+1E,gBAAgB,CAAC51D,EAASzV,UAAY,CAAC,GAAG1K,KAAKytB,YAAY7rB,WAAW8I,YAEpI2qE,wBAAyB,CACvB5qE,KAAM,SACNhO,MAAO,CAAC0jB,EAASk1D,0BAEnB/C,OAAQ,CACN7nE,KAAM,SACNhO,MAAOuD,KAAK+1E,gBAAgB,CAAC51D,EAASmyD,WAG1CtyE,KAAKg2E,uBAAuB3oE,EAAK8S,EAAU,eAC3CngB,KAAKkN,YAAYG,EACnB,SAC4B,IAAnBrN,KAAK00E,WACd,GAAkC,WAA9B10E,KAAKwzE,eAAenwD,OAAqB,CAE3C,IAAIhW,EAAgB,CAClBvJ,WAAY,CAAE2G,KAAM,SAAUhO,MAAO,CAACuD,KAAK8D,aAC3CyxE,sBAAuB,CAAE9qE,KAAM,SAAUhO,MAAO,CAACuD,KAAKwzE,eAAe/2E,MAAM84E,wBAC3E7qE,QAAS,CACPD,KAAM,SACNhO,MAAO0jB,EAASzV,QAAU1K,KAAK+1E,gBAAgB,CAAC51D,EAASzV,UAAY,CAAC,GAAG1K,KAAKytB,YAAY7rB,WAAW8I,YAEvG+oE,uBAAwB,CAAEhpE,KAAM,SAAUhO,MAAO,CAACuD,KAAKwzE,eAAe/2E,MAAMg3E,yBAC5E+B,4BAA6B,CAAE/qE,KAAM,SAAUhO,MAAO,CAACuD,KAAK0xB,cAAcqmC,eAAe/3D,KAAKwzE,eAAe/2E,MAAM+4E,+BACnHC,0BAA2B,CAAEhrE,KAAM,SAAUhO,MAAO,CAACuD,KAAK0xB,cAAcqmC,eAAe/3D,KAAKwzE,eAAe/2E,MAAMg5E,8BAEnHz1E,KAAKg2E,uBAAuB3oE,EAAK8S,EAAU,kBAC3CngB,KAAKkN,YAAYG,EACnB,UAGuC,GAAnC8S,EAASm1D,aAAgBz0E,SAAgBsf,EAASm1D,aAMpD,OALAt1E,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAM,qEAERwD,KAAK6nB,aAAa,KAEb,CACL,IAAIxa,EAAgB,CAClBvJ,WAAY,CAAE2G,KAAM,SAAUhO,MAAO,CAACuD,KAAK8D,aAC3C4G,QAAS,CACPD,KAAM,SACNhO,MAAO0jB,EAASzV,QAAU1K,KAAK+1E,gBAAgB,CAAC51D,EAASzV,UAAY,CAAC,GAAG1K,KAAKytB,YAAY7rB,WAAW8I,YAEvG4qE,aAAc,CACZ7qE,KAAM,SACNhO,MAAOuD,KAAK+1E,gBAAgB,CAAC51D,EAASm1D,iBAGrCn1D,EAASm1D,qBAAqBjoE,EAAIioE,aACvCt1E,KAAKg2E,uBAAuB3oE,EAAK8S,EAAU,kBAC3CngB,KAAKkN,YAAYG,EACnB,EAEJ,CAEQ2oE,uBAAuB3oE,EAAU8S,EAAe81D,GACtDzgD,cAAOC,KAAKpoB,GAAKksB,QAAQ5D,IAClBxV,EAASwV,MACPxV,EAAS60D,UAAY70D,EAAS80D,cAC1B5nE,EAAI2G,KAERmM,EAAS+0D,eAAiB/0D,EAASg1D,mBAC/B9nE,EAAIyoE,UAET91E,KAAK80E,mBAAqB30D,EAASzV,UAA0B,eAAdurE,GAA6C,kBAAdA,WACzE5oE,EAAI3C,UAER1K,KAAK8D,YAAck2C,MAAMh6C,KAAK8D,qBAC1BuJ,EAAIvJ,WAEF,cAAP6xB,GAA8B,OAAPA,GAAuB,aAAPA,GAA6B,WAAPA,UACxDtoB,EAAIsoB,GAAG,GAIbtoB,CACT,CAGQH,YAAYG,GACdrN,KAAKy0E,eASPz0E,KAAKsxB,cAAc9kB,gBARS,CAC1BnB,YAAa,SACb7B,SAAU6D,EACVtC,WAAY,GACZC,YAAa,EACbkD,iBAAkB,IAClB4N,gBAAiB,IAIrB9b,KAAKy0E,eAAgB,EACrBz0E,KAAKk2E,eACLl2E,KAAK8hC,OAAO5vB,SAAS,CAAC,gBACxB,CAGOgkE,eACLl2E,KAAK8S,OAAO0oB,UACd,CAEOo6C,YACL51E,KAAKo0E,cAAe,EACG,IAAnBp0E,KAAK00E,YACP10E,KAAKioE,YAAa,GAEpBjoE,KAAKwzE,eAAiBxzE,KAAK4oB,GAAGS,MAC5B,CACEvV,MAAO,CAAC,IACRC,MAAO,CAAC,IACRG,MAAO,CAAC,IACRD,MAAO,CAAC,IACRG,KAAM,CAAC,IACP+lC,OAAQ,CAAC,IACTxjC,SAAU,CAAC,IACXtC,IAAK,CAAC,IACN0gE,UAAU,CAAC,IACXC,QAAS,CAAC,IACVC,MAAO,CAAC,IACRC,aAAc,CAAC,IACfC,WAAY,CAAC,IACbC,cAAe,CAAC,IAChB1qE,QAAS,CAAC,IACV2qE,wBAAyB,CAAC,IAC1B/C,OAAQ,CAAC,IACTgD,aAAc,CAAC,IACf7B,uBAAwB,CAAC,IACzB8B,sBAAuB,CAAC,IACxBC,4BAA6B,CAAC,GAAI,IAClCC,0BAA2B,CAAC,GAAI,KAElC,CACEjhD,UAAWx0B,KAAK40E,WAAWrrD,MAAWC,WAI5C,CAEO+pD,gBAAgB92E,EAAY05E,GACd,IAAfA,IACFn2E,KAAKioE,YAAa,EAClBjoE,KAAKo0E,cAAe,EAExB,CAEOhB,WAAW32E,GACH,IAATA,IACFuD,KAAKo0E,cAAe,EACpBp0E,KAAKioE,YAAa,EAEtB,CAiBQ8N,gBAAgBt5E,GACtB,OAAOA,EAAMqrD,OAAOc,MAAM,IAC5B,CAGO/gC,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAK2xB,eAAexG,cAAY,EAC9CD,EACL,CAEAE,cACMprB,KAAK21E,kBACP31E,KAAK21E,iBAAiBtqD,aAC1B,iDA/YWkpD,GAAoBnyE,MAAAC,MAAAD,MAAAyH,KAAAzH,MAAAmO,OAAAnO,MAAAmQ,OAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,MAAAlpB,MAAAmpB,MAAAnpB,MAAAmQ,OAAA,oCAApBgiE,EAAoB/jE,UAAA,uBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,+/IDf7BzO,MAFJ,WAEIA,CAFyF,WAEzFA,CADkE,WAC7CA,MAAA,kBAAYA,QAC2CA,MAA5E,cAA4EA,CAAA,cAAUA,MAAA,WACxFA,YAEAA,MAAA,iBACAA,MAAA,aAAmCA,MAAA,oBAAAA,aAAAulB,GAAAvlB,MAAU0O,EAAA45B,WAAA55B,EAAA0iE,eAAA/2E,OAAgC,GAM3E2F,MALA,EAAAg0E,GAAA,sBAKAh0E,CALkD,GAAAi0E,GAAA,4BAAAj0E,OAqM9CA,MAFJ,wBAEIA,CAFgB,YAEhBA,CADmC,gBACKA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAAolE,eAAc,GAC7D9zE,MAAA,eACFA,QACAA,MAAA,gBAAwCA,MAAA,mBAAAA,aAAAulB,GAAAvlB,MAAS0O,EAAA8kE,YAAW,GAC1DxzE,MAAA,cACFA,QACAA,MAAA,gBACiDA,MAAA,aAIzDA,0CAjNQA,MAAA,GAAAA,MAAA,YAAA0O,EAAA0iE,gBACWpxE,QAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAAk0E,GA2MUl0E,MAAA,GAAAA,MAAA,WAAA0O,EAAAm3D,cAAAn3D,EAAA0iE,eAAA/2E,MAAA85E,oBAAAzlE,EAAA0iE,eAAA/2E,MAAA+5E,gnBClMjCjC,CAAoB,uECVzBnyE,MAAA,GACIA,MAAA,gCAA4DA,MAAA,yBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAewlB,EAAAC,aAAa,GAAE,GACtFzlB,MAAA,OAAGA,MAAA,GACPA,0CAFsCA,cAAA,OAAAwlB,EAAApY,QAAA/E,MAC/BrI,MAAA,GAAAA,MAAAwlB,EAAApY,QAAAhT,6BAMH4F,MAAA,GACIA,MAAA,wDAMQA,MAFR,YAEQA,CAFgG,YAEhGA,CAD8B,UACdA,MAAA,qEAA+DA,QAE3EA,MADJ,cACIA,CADyjB,iBACzgBA,MAAA,UAExDA,YACAA,MAAA,UAAwDA,MAAA,iPAA2OA,QAE/RA,MADJ,uBACIA,CADuI,0BACxFA,MAAA,UAAGA,QAClDA,MAAA,0BAA+CA,MAAA,SACnDA,UACAA,MAAA,SAGIA,MADJ,aACIA,CAD8B,WACdA,MAAA,wFAAiFA,QAE7FA,MADJ,eACIA,CAD8U,kBAC9RA,MAAA,WAExDA,YACAA,MAAA,WAAwDA,MAAA,iLACHA,QAEjDA,MADJ,wBACIA,CAD0J,0BAC3GA,MAAA,UAAGA,QAClDA,MAAA,0BAA+CA,MAAA,SAGvDA,kCA3BkEA,MAAA,YAAAwlB,EAAA6uD,yBAGuer0E,MAAA,GAAAA,MAAA,2BAa3OA,MAAA,IAAAA,MAAA,oEAkB1UA,MADJ,WACIA,CADsE,eAChBA,MAAA,YAAMA,QAC5DA,MAAA,eAAoDA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAR,wBAAAQ,EAAA6uD,wBAAAh6E,MAAAi6E,2BAAA9uD,EAAA6uD,wBAAAh6E,MAAAk6E,6BAA4I,GAAEv0E,MAAA,YAC/MA,WC5CG,IAAMw0E,EAA6B,MAApC,MAAOA,EAQX92E,YACU4lB,EACA45B,EACAu3B,EACAphB,GAHAz1D,KAAA0lB,eACA1lB,KAAAs/C,MACAt/C,KAAA62E,mBACA72E,KAAAy1D,eAXFz1D,KAAA4xB,qBAAuB,IAAIrxB,IAE5BP,KAAAksB,WAAY,EAEZlsB,KAAAwP,QAAe,GACfxP,KAAA82E,SAAmB,EAQxB92E,KAAKy2E,wBAA0Bz2E,KAAKs/C,IAAIj2B,MAAM,CAE5CqtD,2BAA8B,CAAC,KAE/BC,4BAA+B,CAAC,MAEpC,CAEA1nE,WACEjP,KAAK+2E,yBACP,CAEOA,0BAUL/2E,KAAKy1D,aAAatuC,kBAAkBnnB,KAAK0lB,aAAalH,aAAa9T,QAThD,CACjBW,YAAe,SACf7B,SAAY,CACVkB,QAAW,CACTD,KAAQ,SACRhO,MAAS,CAACuD,KAAK0lB,aAAalH,aAAa9T,aAIsC7H,QAAKwM,QAASC,UAAU,CAC3G/K,KAAOqwB,IACL50B,KAAKksB,WAAY,EACjB0I,EAAS2E,QAASy9C,IAC0C,6CAAtDA,EAAaC,qCAEfj3E,KAAKy2E,wBAAwBzsD,WAAW,CAAC0sD,2BAA8BM,EAAaE,iCACrB,oDAAtDF,EAAaC,sCAEtBj3E,KAAKy2E,wBAAwBzsD,WAAW,CAAC2sD,4BAA+BK,EAAaE,gCAA+B,EAEvH,EAEHn0E,MAAQiB,IACNhE,KAAKksB,WAAY,EACjBlsB,KAAK82E,SAAU,EACf92E,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,EAAIjB,MAAMyM,SAElBxP,KAAK6nB,aAAa,IAAK,GAG7B,CAEOT,wBAAwB+vD,EAAmBC,GAShDp3E,KAAKy1D,aAAaruC,wBAAwBpnB,KAAK0lB,aAAalH,aAAa9T,QARrD,CAAC,CACjB2sE,mCAAsC,IACtCH,+BAAkCC,GAAwB,KAE5D,CACEE,mCAAsC,IACtCH,+BAAkCE,GAA0B,OAE4Bv0E,QAAKwM,QAASC,UAAU,CAClH/K,KAAOqwB,IACL50B,KAAK62E,iBAAiBllE,YAAY,oBAAmB,EAEvD5O,MAAQiB,IACNhE,KAAK82E,SAAU,EACf92E,KAAKwP,QAAU,CACb/E,KAAM,QACNjO,KAAMwH,EAAIjB,MAAMyM,SAElBxP,KAAK6nB,aAAa,IAAK,GAG7B,CAGQA,aAAaqD,GACnB1mB,WAAW,KACTxE,KAAKwP,QAAUxP,KAAK62E,iBAAiB1rD,cAAY,EAChDD,EACL,CAEAE,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,iDA/FW2sD,GAA6Bx0E,MAAAC,KAAAD,MAAAyH,OAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAA,oCAA7BqkE,EAA6BpmE,UAAA,gCAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,wnEAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDVlCzO,MAFR,UAEQA,CAFsH,UAEtHA,CADgE,UAC3CA,MAAA,2BAAqBA,QACkCA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WAC1FA,YACAA,MAAA,iBACAA,MAAA,WACIA,MAAA,EAAAk1E,GAAA,sBAMIl1E,MADJ,mBACIA,CADW,gBAOPA,MAJA,GAAAm1E,EAAA,qBAIAn1E,CAJ2D,GAAAo1E,GAAA,0BAAAp1E,OAoCvEA,YAEAA,MAAA,GAAAq1E,EAAA,cAIJr1E,gCAlDuBA,MAAA,GAAAA,MAAA,OAAA0O,EAAAtB,QAAA/E,MAQQrI,MAAA,GAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAAs1E,GAsCnBt1E,MAAA,GAAAA,MAAA,OAAA0O,EAAA2lE,wBAAAlhD,mKCzChBqhD,CAA6B,gECEtBx0E,MAAA,GACIA,MAAA,wDAuBoBA,MADJ,wBACIA,CADgJ,YACxIA,MAAA,GACZA,oCAFsFA,MAAA,QAAAu1E,EAAA3nE,wCAC1E5N,MAAA,GAAAA,MAAAu1E,EAAAC,oFAXhBx1E,MAFR,OAEQA,CAF2E,UAE3EA,CADa,UACGA,MAAA,yGAAmGA,QACnHA,MAAA,UAAoDA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAArY,8BAA6B,GAAEnN,MAAA,qCAChGA,UAEIA,MADJ,UACIA,CADa,UACGA,MAAA,qIAA+HA,QAC/IA,MAAA,UAAoDA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAArY,8BAA6B,GAAEnN,MAAA,qCAChGA,UAEIA,MADJ,WACIA,CADa,WACGA,MAAA,wEAAiEA,QACjFA,MAAA,yBACIA,MAAA,GAAAy1E,GAAA,2BAKZz1E,qCALqEA,MAAA,IAAAA,MAAA,UAAAwlB,EAAAkwD,oDAf3D11E,MAHd,YAGcA,CAHgH,oBAGhHA,CADmD,SACnDA,CAAA,YAAQA,MAAA,yCAClBA,YAEAA,MAAA,EAAA21E,GAAA,cAkBJ31E,oCAxBwEA,MAAA,YAAAwlB,EAAAowD,4BAM/D51E,MAAA,GAAAA,MAAA,gBAAA61E,EAAArwD,EAAAowD,2BAAAr3E,IAAA,kCAAAs3E,EAAAx7E,iDA0BzB2F,MADJ,WACIA,CADyE,eAC9BA,MAAA,YAAMA,QACjDA,MAAA,eAAoEA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA1F,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAswD,gCAA+B,GAAE91E,MAAA,YAClHA,WCnCG,IAAM+1E,EAAwB,MAA/B,MAAOA,EAQXr4E,YACU4lB,EACApX,EACAgxC,EACA/wC,EACAsoE,IAJA72E,KAAA0lB,eACA1lB,KAAAsO,iBACAtO,KAAAs/C,MACAt/C,KAAAuO,kBACAvO,KAAA62E,oBAXF72E,KAAA4xB,qBAAuB,IAAIrxB,IAI5BP,KAAAksB,WAAY,EASjBlsB,KAAKg4E,2BAA6Bh4E,KAAKs/C,IAAIj2B,MAAM,CAC/C5X,6BAAgC,IAAI6X,MACpCtZ,uCAA0C,IAAIsZ,QAGhDtpB,KAAKsO,eAAe6nD,cACjBtzD,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAUN,KACThP,KAAKo4E,WAAWppE,GAAY,EAElC,CAEAC,YAEEopE,OAAc,CACZr4E,KAAKsO,eAAemoD,wBAAwBz2D,KAAK0lB,aAAa9jB,WAAW8I,SACzE1K,KAAKuO,gBAAgB8C,gCAEpBxO,QAAKwM,QACLC,UAAU,CACT/K,KAAMA,EAAEyK,EAAc8oE,MACpB93E,KAAK83E,yBAA2BA,IAIxC,CAEA1sD,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,CAEOiuD,gCACL,IAAII,EAAsBt4E,KAAKg4E,2BAA2Bv7E,MAE1D67E,EAAoB7mE,6BAAgC6mE,EAAoB7mE,6BAAgC,IAAM,IAE9GzR,KAAKsO,eAAe2B,2BAA2BjQ,KAAK0lB,aAAa9jB,WAAW8I,QAAS4tE,GAClFz1E,QAAKwM,QACLC,UAAU,CACT/K,KAAMA,KACJvE,KAAK62E,iBAAiBllE,YAAY,iCAAgC,EAEpE5O,MAAQiB,IACNhE,KAAK62E,iBAAiB3mE,UAAUlM,EAAIwL,QAAO,GAGnD,CAEOD,8BACLvP,KAAKuO,gBAAgBgB,6BACvB,CAEQ6oE,WAAWppE,GACjB,IAAIupE,EAAwB,IACvBvpE,EAEDyC,6BAA6E,KAA9CzC,GAAcyC,8BAIjDzR,KAAKg4E,2BAA2BhuD,WAAWuuD,GAC3Cv4E,KAAKksB,WAAY,CACnB,iDA9EWisD,GAAwB/1E,MAAAC,KAAAD,MAAAyH,OAAAzH,MAAAmO,OAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,MAAA,oCAAxB2lE,EAAwB3nE,UAAA,4BAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,whCAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDhB7BzO,MAFR,UAEQA,CAFkH,UAElHA,CADgE,UAC3CA,MAAA,oBAAcA,QACyCA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WAC1FA,YAEAA,MAAA,iBAMgBA,MAJhB,UAIgBA,CAJQ,kBAIRA,CAHG,eAGHA,CAFiB,WAEjBA,CADc,QACXA,MAAA,8HAAuHA,QAM1HA,MAJA,GAAAo2E,GAAA,qBAIAp2E,CAJyD,GAAAq2E,EAAA,yBAAAr2E,OAkCzEA,cAEAA,MAAA,GAAAs2E,EAAA,aAIJt2E,gCAxCmCA,MAAA,IAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAAu2E,GAoCvBv2E,MAAA,GAAAA,MAAA,OAAA0O,EAAAknE,2BAAAziD,oRChChB4iD,CAAwB,6ICV7B/1E,MAAA,GACEA,MAAA,0EAGAA,MAAA,eAAwBA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAgxD,mBAAkB,GACjDx2E,MAAA,iBAA+BA,MAAA,YACjCA,kCAwBEA,MAAA,GAGMA,MAFJ,WAEIA,CAFiC,uBAEjCA,CAD6B,UACvBA,MAAA,wBAEVA,2BAJmBA,cAAA,eACAA,cAAA,uDAUnBA,MAAA,eAAuDA,MAAA,mBAAAA,MAAA0+B,GAAA,MAAAlZ,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAixD,2BAA0B,GACxFz2E,MAAA,cAAUA,MAAA,WAAKA,QAAYA,MAAA,UAAMA,MAAA,2BACnCA,oDAEAA,MAAA,eAA6CA,MAAA,mBAAAA,MAAAmsB,GAAA,MAAA3G,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAkxD,YAAW,GAC/D12E,MAAA,cAAUA,MAAA,aAAOA,QAAYA,MAAA,UAAMA,MAAA,mBACrCA,oDAEAA,MAAA,eAAyDA,MAAA,mBAAAA,MAAA2rB,GAAA,MAAAnG,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAmxD,gCAA+B,GAC/F32E,MAAA,cAAUA,MAAA,eAASA,QAAYA,MAAA,UAAMA,MAAA,oBACvCA,oDAdAA,MAAA,eAAsBA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA1F,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAA5U,kBAAiB,GAC9C5Q,MAAA,cAAUA,MAAA,qBAAeA,QAAYA,MAAA,UAAMA,MAAA,aAC7CA,UAUAA,MARA,EAAA42E,GAAA,gBAQA52E,CAR4F,EAAA62E,GAAA,gBAQ5F72E,CAJmE,EAAA82E,GAAA,kCAQnE92E,MAAA,eAAsBA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA1F,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAuxD,SAAQ,GACrC/2E,MAAA,eAAUA,MAAA,kBAAWA,QAAYA,MAAA,WAAMA,MAAA,aACzCA,mCAduBA,MAAA,GAAAA,MAAA,OAAAwlB,EAAAquC,0BAIA7zD,cAAA,OAAAwlB,EAAAwxD,gBAIAh3E,cAAA,OAAAA,MAAA,IAAAwlB,EAAAyxD,6CAbzBj3E,MAPA,EAAAk3E,GAAA,qBAOAl3E,CAPwD,EAAAm3E,GAAA,0BAAAn3E,wCAAjBA,MAAxB,OAAAwlB,EAAA4xD,iBAAwBp3E,CAAA,WAAAq3E,2BAqC7Cr3E,MAFJ,oBAEIA,CAFgD,WAEhDA,CADkG,cACxFA,MAAA,aAAOA,QACKA,MAAtB,YAAsBA,CAAA,aAAwBA,MAAA,aAAOA,QAAOA,MAAA,gBAAUA,MAAA,aAAwBA,MAAA,SAAGA,QAAQA,MAAA,0CAAkCA,MAAA,cAAwBA,MAAA,cAAOA,QAAQA,MAAA,iBAASA,MAAA,cAAwBA,MAAA,WAAIA,QAAOA,MAAA,QAElOA,sDA1EMA,MAJR,kBAIQA,CAJwC,oBAIxCA,CAHW,UAGXA,CAFkD,UAElDA,CADmC,cACaA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAA8xD,aAAY,GACnEt3E,MAAA,cAAUA,MAAA,UACZA,UAKAA,MAHA,EAAAu3E,GAAA,qBAGAv3E,CAHkD,EAAAw3E,GAAA,yBAAAx3E,OAUhDA,MADF,WACEA,CADmC,cACFA,MAAA,IAAUA,QAEzCA,MADF,aACEA,CADkC,cACVA,MAAA,IAAsBA,QAC9CA,MAAA,WAAMA,MAAA,0BAIZA,cAGEA,MADF,YACEA,CAD6B,gBAC+BA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAiyD,mBAAkB,GACrFz3E,MAAA,kBAA0GA,MAAA,oBAC5GA,UAEAA,MAAA,kBAAwIA,MAA1B,wBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAcwlB,EAAA6H,WAAU,EAAErtB,CAAD,wBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,QAAA,OAAAA,MAAAwlB,EAAA+H,aAA6B,EAAK,GACvKvtB,MAAA,kBAAmDA,MAAA,oBAAaA,QAChEA,MAAA,WAAMA,MAAA,IACRA,UACAA,MAAA,oBACEA,MAAA,GAAA03E,GAAA,sBAkCR13E,cAEAA,MAAA,GAAA23E,GAAA,2BAOF33E,uDA5EgCA,MAAA,GAAAA,MAAA,WAAAwlB,EAAAqgD,YAIT7lE,MAAA,GAAiBA,MAAjB,OAAAwlB,EAAAsE,UAAiB9pB,CAAA,WAAA43E,GAUG53E,MAAA,GAAAA,MAAAwlB,EAAAmb,MAEP3gC,MAAA,GAAAA,MAAA,GAAAwlB,EAAAqyD,MAAA,IAAAryD,EAAAW,KAAA,IAClBnmB,MAAA,GAAAA,MAAA,GAAAwlB,EAAAsyD,IAAA,IAAA93E,MAAA,MAAAwlB,EAAAu2C,MAAA,IAOc/7D,MAAA,GAAAA,MAAA,WAAAwlB,EAAAuyD,wBACZ/3E,QAAgEA,MAAhE,oBAAAwlB,EAAAwyD,mBAAgEh4E,CAAtB,WAAAwlB,EAAAwyD,oBAG6Bh4E,MAAA,GAAAA,MAAA,oBAAAi4E,GACvEj4E,MAAA,GAAAA,MAAA,UAAAA,MAAA,GAAAs7C,GAAA91B,EAAA+H,cACJvtB,MAAA,GAAAA,MAAAwlB,EAAA0yD,UAEkBl4E,cAAA,qBAqCdA,MAAA,GAAAA,MAAA,QAAAwlB,EAAA2yD,UAAA3yD,EAAA4yD,gBC7Cb,IAAMC,GAAe,MAAtB,MAAOA,EAmCX36E,YACUwxB,EACAI,EACAjE,EACAqU,EACAspC,GACAriD,GACAF,GACA0sC,GACDziD,GACCxE,IATAtO,KAAAsxB,gBACAtxB,KAAA0xB,gBACA1xB,KAAAytB,cACAztB,KAAA8hC,SACA9hC,KAAAorE,iBACAprE,KAAA+oB,mBACA/oB,KAAA6oB,eACA7oB,KAAAu1D,oBACDv1D,KAAA8S,UACC9S,KAAAsO,kBA3CFtO,KAAA4xB,qBAAuB,IAAIrxB,IAC3BP,KAAA06E,kBAAoB,IAAIn6E,IAGxBP,KAAA26E,iBAA2B,KAE3B36E,KAAA46E,oBAA8B,EAC9B56E,KAAA66E,iBAA2B,EAE5B76E,KAAAq5E,iBAAmB,IAAIn5E,KAAyB,GAGhDF,KAAAo5E,gBAA0B,EAC1Bp5E,KAAAioE,YAAsB,EACtBjoE,KAAA8+D,YAAa,EACb9+D,KAAAksB,WAAqB,EACrBlsB,KAAAm6E,wBAAkC,EAClCn6E,KAAAw5E,kBAA4B,EAE5Bx5E,KAAA2vB,aAAuB,EAQvB3vB,KAAAs6E,SAAmB,GAEnBt6E,KAAAo6E,mBAA6B,EAiBlCp6E,KAAKu1D,iBAAiBX,QAAQ/2D,MAC3BgF,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWinD,KACVv2D,KAAKi2D,yBAA2BM,KAGpCv2D,KAAKu1D,iBAAiBX,QAAQ72D,MAA6B,GACxD8E,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWinD,KACVv2D,KAAKw6E,cAAgBjkB,KAGzBv2D,KAAK8hC,OAAOg5C,OACTj4E,QACCyyB,KAAUt1B,KAAK4xB,uBAAoB,EACnCrH,MAAOna,IAASA,cAAiB2qE,OAAa,EAC9C1rE,QACAC,UAAU0rE,KAEVh7E,KAAKi7E,WADQD,GAA6Bt1B,IACpB1hC,QAAQ,gBAAkB,EAE5ChkB,KAAKi7E,aACPj7E,KAAKk7E,QAAUl7E,KAAKytB,YAAY7rB,WAAW8I,QAE3C1K,KAAKm7E,oBACLn7E,KAAKo7E,kBACLp7E,KAAKq7E,qBAGLC,YAAY,KACVt7E,KAAKu7E,uBAAqB,EACzBv7E,KAAK26E,kBAERW,YAAY,KACVt7E,KAAKw7E,kBAAgB,EACpB,KAAI,GAMb,IAAIC,GAAUC,UAAUC,UACX,8BACe/qB,KAAK6qB,KAE/Bz7E,KAAKioE,YAAa,EAClBjoE,KAAK8+D,YAAa,IAElB9+D,KAAKioE,YAAa,EAClBjoE,KAAK8+D,YAAa,GAEpB9+D,KAAK+oB,gBAAgB+1C,WAAa9+D,KAAK8+D,WAEvC9+D,KAAKsO,eAAe8nD,iBACjBvzD,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAMmK,KACAA,IACF1O,KAAKq5E,iBAAiB90E,KAAqD,KAAhDmK,GAAgB+C,6BAAmC,IAKtFzR,KAAKytB,YAAYjtB,aACdqC,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAO8+C,KACDA,KACFrjD,KAAKs6E,SAAWj3B,GAAYvvC,MAAQ,IAAMuvC,GAAYtvC,SAIhE,CAGO6nE,SAASxrE,QACOmT,IAAjBvjB,KAAKqkB,UAELrkB,KAAK8+D,aADH1uD,EAAMuT,OAAOk4D,YAAc,KAK/B77E,KAAK0xB,cAAc2nC,cAAcr5D,KAAK8+D,YACtC9+D,KAAK+oB,gBAAgB+1C,WAAa9+D,KAAK8+D,WAE3C,CAEQuc,qBACNr7E,KAAKsxB,cAAc1kB,iBAChB/J,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOqwB,IACDA,IACE50B,KAAK46E,oBACP56E,KAAKu7E,wBAEPv7E,KAAK46E,oBAAqB,IAG9B73E,MAAQiB,MACRimB,SAAUA,QAEhB,CAEOhb,WACLjP,KAAKw7E,kBACP,CAEOpwD,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WAC1BjqB,KAAK06E,kBAAkBn2E,MAAK,GAC5BvE,KAAK06E,kBAAkBzwD,UACzB,CAGQkxD,oBACNn7E,KAAK87E,UAAY97E,KAAK87E,UAAY97E,KAAK87E,UAAY97E,KAAKsxB,cAAczkB,iBACnEhK,QAAKwM,QACLC,UACEslB,IACyB,SAApBA,EAASyD,SACXr4B,KAAKo5E,gBAAiB,IAIhC,CAEQoC,mBAENx7E,KAAK+iC,MADM,IAAI/2B,MACE+vE,UACjB/7E,KAAKi6E,MAAQj6E,KAAKg8E,kBAAkB,QACpCh8E,KAAKk6E,IAAMl6E,KAAKg8E,kBAAkB,QAClCh8E,KAAKuoB,KAAOvoB,KAAKg8E,kBAAkB,QACnCh8E,KAAKm+D,KAAOn+D,KAAKg8E,kBAAkB,UACrC,CAEQA,kBAAkB/vE,GACxB,OAAOF,MAASE,OAAOA,EACzB,CAEOytE,aACL15E,KAAK8+D,YAAc9+D,KAAK8+D,WACxB9+D,KAAK0xB,cAAc2nC,cAAcr5D,KAAK8+D,YACtC9+D,KAAK+oB,gBAAgB+1C,WAAa9+D,KAAK8+D,UACzC,CAEOrvC,WACLzvB,KAAKw5E,kBAAmB,EACxBx5E,KAAK2vB,aAAc,EAEnB3vB,KAAKsO,eAAesoD,2BAA2B52D,KAAK0xB,cAAcimC,gBAAgB,GAC/E90D,QAAKwM,QACLC,UAAU,CACT/K,KAAMA,KACJvE,KAAKw5E,kBAAmB,IAIhC,CAEOxmE,kBACLhT,KAAK8S,OAAOV,KAAKif,KAAsB,CACrChf,MAAO,OACPmoC,WAAW,EACXv6C,KAAM,CACJyK,QAAS1K,KAAKk7E,UAGpB,CAEOrC,2BACL74E,KAAK8S,OAAOV,KAAKwkE,EAA+B,CAC9CvkE,MAAO,MACPmoC,WAAW,GAEf,CAEOs+B,YACL,MAAMl4E,EAAcZ,KAAKytB,YAAYtrB,gBAGrCnC,KAAKorE,cAAc9pE,IACjB,cAAeV,EACf,CAAEa,KAAM,IAAKw6E,OAAQ,wBAAyBv6E,QAAQ,IAGxDI,OAAOsQ,KAAKnQ,KAAY6nE,MAAO,iBACjC,CAEOiP,gCACL/4E,KAAK8S,OAAOV,KAAK+lE,EAA0B,CACzC9lE,MAAO,MACPmoC,WAAW,GAGf,CAGOo+B,mBACL92E,OAAOwW,OAAO,EAAG,GACjBtY,KAAK8S,OAAOV,KAAKmiE,GAAsB,CACrCliE,MAAO,MACPmoC,WAAW,GAEf,CAEQ4gC,mBACN/C,OAAc,CACZr4E,KAAK6oB,YAAY7C,6BAA6BhmB,KAAKytB,YAAY7rB,WAAW8I,WAEzE7H,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAMA,EAAE23E,MACN,MAAM74B,EAAc64B,EAAoBj1B,KAExCjnD,KAAKksB,WAAY,EAEjBlsB,KAAKs6E,SAAWj3B,EAAYvvC,MAAQ,IAAMuvC,EAAYtvC,MACtD/T,KAAKytB,YAAYjP,aAAe6kC,EAChCrjD,KAAKytB,YAAYjtB,aAAa+D,KAAK8+C,GACnCrjD,KAAKytB,YAAY3pB,WAAau/C,EAAYv/C,WAE1C9D,KAAK0xB,cAAc+lC,aAAapU,EAAYv/C,YAE5C9D,KAAKytB,YAAYjP,aAAahW,eAAoBzH,KAAKC,MAAMk7E,EAAoB57D,QAAQ3f,IAAI,sBAAwB,MACrHX,KAAKytB,YAAYjP,aAAasd,KAAUogD,EAAoB57D,QAAQ3f,IAAI,eAExEX,KAAK06E,kBAAkBn2E,MAAK,GAG5BvE,KAAKsO,eAAesoD,2BAA2BvT,EAAYv/C,YACxDjB,QAAKwM,QACLC,WAAS,EAEdvM,MAAQiB,MACRimB,SAAUA,QAEhB,CAGQsxD,wBACNv7E,KAAKsxB,cAAc7jB,uBAChB5K,QAAKwM,QACLC,UAAU,CACT/K,KAAOqwB,IACL50B,KAAKo6E,mBAAqBxlD,EAASunD,yBACnCn8E,KAAK0xB,cAAc0qD,oBAAsBp8E,KAAK26E,iBACR,KAAlC/lD,EAASynD,oBACXr8E,KAAKsxB,cAAc1jB,cAAc,EAAG,eACjC/K,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOqwB,IACL,GAAIA,GAAU/zB,OAAQ,CACpB,GAAGb,KAAK66E,gBACN,OAEF76E,KAAK66E,iBAAkB,EAEvB76E,KAAK8S,OAAOV,KAAKq7D,EAA0B,CACzCp7D,MAAO,MACPpS,KAAM20B,IACLkI,cAAcxtB,UAAWya,IAC1B/pB,KAAK46E,oBAAqB,EAC1B56E,KAAK66E,iBAAkB,GAE3B,GAEF93E,MAAQiB,MAERimB,SAAUA,QACX,EAGPlnB,MAAQiB,MACRimB,SAAUA,QAEhB,CAEO4vD,mBACL75E,KAAKm6E,wBAAyB,EAC9Bn6E,KAAKsxB,cAAc1jB,cAAc,EAAG,cACjC/K,QAAKwM,QACLC,UAAU,CACT/K,KAAOqwB,IACL,IAAI30B,EAEFA,EADqB,IAAnB20B,EAASyD,OACJ,YAEAzD,EAET50B,KAAK8S,OAAOV,KAAK49D,GAAuB,CACtC39D,MAAO,MACPpS,KAAMA,GACP,EAEHgqB,SAAUA,KACRjqB,KAAKm6E,wBAAyB,IAGtC,CAEOhB,SACLn5E,KAAK8S,OAAOV,KAAK6qB,IAAwB,CACvC5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,sCAETsgC,cAAcxtB,UAAUkb,IACrBA,IACFxqB,KAAKytB,YAAYtsB,aACjBnB,KAAK8S,OAAO0oB,WACZ8gD,aAAaC,WAAW,sBACxBv8E,KAAKytB,YAAY5rB,iBAAc,EAGrC,CAEO04E,SACL,OAAOt4E,KAAY2nE,UACrB,iDAhXW6Q,GAAer4E,MAAAC,KAAAD,MAAAyH,OAAAzH,MAAAmO,KAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,KAAApQ,MAAAkpB,MAAAlpB,MAAAmpB,KAAAnpB,MAAAk7B,KAAAl7B,MAAAm7B,MAAAn7B,MAAAyH,OAAA,oCAAf4wE,EAAejqE,UAAA,iBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,kGAAfzO,MAAA,kBAAA2O,IAAA,OAAAD,EAAA8qE,SAAA7qE,GAAgB,KAAA3O,+mCD5B7BA,MAAA,EAAAo6E,GAAA,4BAA8Bp6E,MAAA,OAAA0O,EAAAmqE,8HC4BjBR,CAAe,yDClBrB,IAAMgC,GAAiB,MAAxB,MAAOA,EAEX38E,YAAoB4E,EAA0B+oB,GAA1BztB,KAAA0E,OAA0B1E,KAAAytB,aAA4B,CAEnEivD,gBACL,IAAIlxE,EAAS,CACXhC,SAAU,CAAEkB,QAAS,CAAED,KAAM,SAAUhO,MAAO,CAAC,GAAGuD,KAAKytB,YAAY7rB,WAAW8I,aAC9EW,YAAa,UAEf,OAAOrL,KAAK0E,KAAKvB,KAAoBlB,KAAYW,IAAO,QAAQ5C,KAAKytB,YAAY7rB,WAAW8I,2BAA4Bc,GAAQ3I,QAC9HC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEO45E,oBAAoBnxE,GACzB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,KAAYW,IAAO,WAAW5C,KAAKytB,YAAY3pB,wBAAyB0H,GAAQ3I,QACrGC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEO65E,iBAAiBpxE,GACtB,OAAOxL,KAAK0E,KAAKvB,KAAMlB,KAAYW,IAAO,QAAQ5C,KAAKytB,YAAY7rB,WAAW8I,qBAAsBc,GAAQ3I,QAC1GC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEO85E,uBAAuBrxE,EAAasxE,GACzC,OAAO98E,KAAK0E,KAAKvB,KAAMlB,KAAYW,IAAO,WAAW5C,KAAKytB,YAAY3pB,wBAAwBg5E,KAAiBtxE,GAAQ3I,QACrHC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOg6E,oBAAoBvxE,EAAasxE,GACtC,OAAO98E,KAAK0E,KAAKvB,KAAMlB,KAAYW,IAAO,QAAQ5C,KAAKytB,YAAY7rB,WAAW8I,qBAAqBoyE,KAAiBtxE,GAAQ3I,QAC1HC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOi6E,gBAAgBF,GACrB,OAAO98E,KAAK0E,KAAK/D,IAAKsB,KAAYW,IAAO,QAAQ5C,KAAKytB,YAAY7rB,WAAW8I,qBAAqBoyE,aAAwBj6E,QACxHC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOk6E,cAAcH,GACnB,OAAO98E,KAAK0E,KAAK/D,IAAKsB,KAAYW,IAAO,WAAW5C,KAAKytB,YAAY3pB,wBAAwBg5E,kBAA6Bj6E,QACxHC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOm6E,gBAAgBJ,GACrB,OAAO98E,KAAK0E,KAAK/D,IAAKsB,KAAYW,IAAO,WAAW5C,KAAKytB,YAAY3pB,wBAAwBg5E,oBAA+Bj6E,QAC1HC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOo6E,qBAAqB3xE,GAC1B,OAAOxL,KAAK0E,KAAKvB,KAAMlB,KAAYW,IAAO,QAAQ5C,KAAKytB,YAAY7rB,WAAW8I,iCAAkCc,GAAQ3I,QACtHC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,CAEOq6E,iBACL,OAAOp9E,KAAK0E,KAAK/D,IAAKsB,KAAYW,IAAO,4BAA4BC,QACnEC,MAAWC,MACFC,MAAW,IAAMD,IAG9B,iDAtFW05E,GAAiBr6E,MAAAC,MAAAD,MAAAyH,KAAA,sCAAjB4yE,EAAiBn6E,QAAjBm6E,EAAiBl6E,UAAAC,WAFhB,QAAM,SAEPi6E,CAAiB,4BCD1Br6E,MAAA,GAGYA,MAFR,UAEQA,CAFqB,sBAErBA,CAD2B,UACrBA,MAAA,oBAEdA,2BAHqBA,MAAA,GAAAA,MAAA,uDASjBA,MAAA,8BAAoEA,MAAA,yBAAAA,MAAAs+B,GAAA,MAAAC,EAAAv+B,MAAA,UAAAA,MAAeu+B,EAAA9Y,aAAa,GAAE,GAAEzlB,MAAA,GAAkBA,iCAAlBA,cAAAu+B,EAAA08C,sCAQpFj7E,MAAA,eACIA,MAAA,4CACJA,gCACAA,MAAA,eACIA,MAAA,yJAEJA,gCAOAA,MAAA,eACIA,MAAA,2CACJA,gCACAA,MAAA,eACIA,MAAA,qJAEJA,gCAMAA,MAFR,WAEQA,CAFwF,WAExFA,CADgB,qBAEZA,MAAA,iCAGZA,sDAtCZA,MAAA,0BACIA,MAAA,EAAAk7E,GAAA,+BAKgBl7E,MAJhB,WAIgBA,CAJa,YAIbA,CAHoB,WAGpBA,CAFyB,sBAEzBA,CAD0B,eACfA,MAAA,UAAIA,QACfA,MAAA,cACIA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GADzCziC,QAKAA,MAHA,EAAAm7E,GAAA,mBAGAn7E,CAH6D,GAAAo7E,GAAA,oBAOjEp7E,QAGIA,MADJ,uBACIA,CAD0B,gBACfA,MAAA,UAAGA,QACdA,MAAA,eACIA,MAAA,qBAAA2O,GAAA3O,aAAAulB,GAAAvlB,MAAa2O,EAAA8zB,kBAAwB,GADzCziC,QAKAA,MAHA,GAAAq7E,GAAA,mBAGAr7E,CAH2D,GAAAs7E,GAAA,oBAQnEt7E,UAEAA,MAAA,GAAAu7E,GAAA,cASZv7E,YAGIA,MADJ,2BACIA,CAD4B,gBACeA,MAAA,aAAMA,QACjDA,MAAA,gBAAyEA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAi9C,WAAU,GAAEx7E,MAAA,WAClGA,kCA7C4BA,cAAA,OAAAu+B,EAAA08C,aAAAx8E,OAAA,GAEduB,MAAA,GAAAA,MAAA,YAAAu+B,EAAAk9C,aAMkBz7E,MAAA,GAAAA,MAAA,OAAAu+B,EAAA9N,WAAA,+BAGAzwB,cAAA,OAAAu+B,EAAA9N,WAAA,gCAUAzwB,MAAA,GAAAA,MAAA,OAAAu+B,EAAA9N,WAAA,6BAGAzwB,cAAA,OAAAu+B,EAAA9N,WAAA,8BAOdzwB,cAAA,OAAAu+B,EAAAm9C,iBAa0B17E,MAAA,GAAAA,MAAA,WAAAu+B,EAAAk9C,YAAA/xD,UClD7C,IAAMiyD,GAAqB,MAA5B,MAAOA,EAOXj+E,YACU8oB,EACAo1D,EACAj1D,EACA0E,EACD5a,GACyB5S,IALxBD,KAAA4oB,KACA5oB,KAAAg+E,YACAh+E,KAAA+oB,kBACA/oB,KAAAytB,cACDztB,KAAA6S,aACyB7S,KAAAC,QAV3BD,KAAA89E,iBAA2B,EAC3B99E,KAAAksB,WAAY,EACZlsB,KAAAq9E,aAAe,GAyBfr9E,KAAA6yB,WAAa,CAACC,GAAqBC,KACjC/yB,KAAK69E,YAAY7qD,SAASF,IAAaG,SAASF,IAfvD,IAAIkrD,GAAsE,WAAvCh+E,IAAMi+E,8BAEzCl+E,KAAK69E,YAAc79E,KAAK4oB,GAAGS,MAAM,CAC/B80D,gBAAiB,CAACl+E,IAAQA,IAAMk+E,gBAAkBl+E,IAAMk+E,gBAAkB,GAAI,CAAC50D,MAAWC,SAAUD,MAAWgkC,UAAU,OACzH6wB,cAAe,CAACn+E,IAAQA,IAAMm+E,cAAgBn+E,IAAMm+E,cAAgB,GAAI,CAAC70D,MAAWC,SAAUD,MAAWgkC,UAAU,OACnH0wB,4BAA6B,CAAC,CAAExhF,MAAOwhF,GAA6B/uB,WAAUjvD,MAGlF,CAEOgP,WACLjP,KAAK89E,gBAAmB99E,KAAKytB,YAAYjP,cAAckP,UAAU1J,QAAQ,UAAW,CACtF,CAMO45D,WACL59E,KAAKksB,WAAY,EACjBlsB,KAAKq9E,aAAe,GAEpB,IAAIgB,EAAuB,GAE3BA,EAAgBr+E,KAAK69E,YAAYphF,OAAO2hF,cAAcE,WAAW,YAC5Dt+E,KAAK69E,YAAYphF,OAAO2hF,cAAcE,WAAW,YAClDt+E,KAAK69E,YAAYphF,OAAO2hF,cACxB,UAAYp+E,KAAK69E,YAAYphF,OAAO2hF,cAExC,IAAIH,EAA+Bj+E,KAAKC,KAES,WAA5CD,KAAKC,MAAMi+E,8BAA6C,EAAI,EAD9Dl+E,KAAK69E,YAAYphF,OAAOwhF,4BAA8B,EAAI,EAGzDzyE,EAAS,CACX2yE,gBAAiBn+E,KAAK69E,YAAYphF,OAAO0hF,gBACzCC,cAAeC,EACfJ,4BAA6BA,GAG1Bj+E,KAAKC,KA4B2B,GAA/Bg+E,EACHj+E,KAAKg+E,UAAUnB,uBAAuBrxE,EAAQxL,KAAKC,MAAM68E,cACvDj6E,QAAKwM,QACLC,UAAU,CACT/K,KAAOimB,IACLxqB,KAAKu+E,WAAW,kCAAiC,EAEnDx7E,MAAQiB,IACNhE,KAAKw+E,WAAWx6E,EAAIjB,MAAMyM,QAAO,IAKtCxP,KAAKg+E,UAAUjB,oBAAoBvxE,EAAQxL,KAAKC,MAAM68E,cACpDj6E,QAAKwM,QACLC,UAAU,CACT/K,KAAOimB,IACLxqB,KAAKu+E,WAAW,kCAAiC,EAEnDx7E,MAAQiB,IACNhE,KAAKw+E,WAAWx6E,EAAIjB,MAAMyM,QAAO,IA/CJ,GAA/ByuE,EACHj+E,KAAKg+E,UAAUrB,oBAAoBnxE,GACjC3I,QAAKwM,QACLC,UAAU,CACT/K,KAAOimB,IACLxqB,KAAKu+E,WAAW,kCAAiC,EAEnDx7E,MAAQiB,IACNhE,KAAKw+E,WAAWx6E,EAAIjB,MAAMyM,QAAO,IAKtCxP,KAAKg+E,UAAUpB,iBAAiBpxE,GAC9B3I,QAAKwM,QACLC,UAAU,CACT/K,KAAOimB,IACLxqB,KAAKu+E,WAAW,kCAAiC,EAEnDx7E,MAAQiB,IACNhE,KAAKw+E,WAAWx6E,EAAIjB,MAAMyM,QAAO,GAiC3C,CAEQyxC,cACNjhD,KAAK6S,UAAUI,OAAM,EACvB,CAEQsrE,WAAWr9B,GACjBlhD,KAAKksB,WAAY,EACjBlsB,KAAK+oB,gBAAgBpX,YAAYuvC,GACjClhD,KAAKihD,aACP,CAEQu9B,WAAWt9B,GACjBlhD,KAAKksB,WAAY,EAEjBlsB,KAAKq9E,aAAen8B,EACpBlhD,KAAK6nB,aAAa,IACpB,CAEOA,aAAaqD,GAClB1mB,WAAW,KACTxE,KAAKq9E,aAAe,IACnBnyD,EACL,iDApIW6yD,GAAqB37E,MAAAC,OAAAD,MAAAyH,IAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,MAAApQ,MAatBkO,MAAe,oCAbdytE,EAAqBvtE,UAAA,yBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,ukCAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDZ1BzO,MAFR,UAEQA,CAFqF,UAErFA,CADgE,UAC3CA,MAAA,2BAAqBA,QACkCA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WAC1FA,YAEIA,MAAA,iBAYJA,MATA,EAAAq8E,GAAA,qBASAr8E,CATsD,EAAAs8E,GAAA,0BAAAt8E,OA4D1DA,gCA5DmBA,MAAA,GAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAAu8E,yKCKvBZ,CAAqB,2CCFlB37E,MAAA,UAA4CA,MAAA,4BAAsBA,+BACtCA,MAAA,8CAJxCA,MAAA,GAEQA,MADJ,UACIA,CADyB,uBAGrBA,MADA,EAAAw8E,GAAA,aACAx8E,CAD4C,EAAAy8E,GAAA,yBAAAz8E,OAGpDA,mDAJqBA,MAAA,GAAAA,MAAA,aACNA,QAAiBA,MAAjB,QAAAwlB,EAAAk3D,SAAiB18E,CAAA,WAAA28E,6CASxB38E,MAAA,GAEQA,MADJ,oBACIA,CADuC,UACpCA,MAAA,mBAAAA,MAAAkrB,GAAA,MAAA1F,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAo3D,mBAAkB,GAAkC58E,MAAA,kBACpEA,0CAQgBA,MAAA,iBAAqEA,MAAA,UAAIA,mCAGrEA,MAAA,UAA2HA,MAAA,GAA0BA,yCAAvEA,MAAA,aAAA68E,EAAA,KAAAA,EAAAb,cAAAh8E,OAA6CA,cAAA68E,EAAAd,2DAEvH/7E,MAAA,UAAwCA,MAAA,iBAAA2O,GAAA3O,MAAAmsB,GAAA,MAAA3G,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAs3D,SAAAnuE,GAAgB,GAAE3O,MAAA,GAA0BA,2CAA1BA,cAAA68E,EAAAd,2DAKvE/7E,MAAA,GACIA,MAAA,eAA+DA,MAAA,mBAAAA,MAAA+sB,GAAA,MAAA8vD,EAAA78E,MAAA,GAAAmuB,UAAA3I,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAu3D,QAAAF,GAAa,GAAE78E,MAAA,cAAUA,MAAA,UAAeA,UAChHA,MAAA,eAAiEA,MAAA,mBAAAA,MAAA+sB,GAAA,MAAA8vD,EAAA78E,MAAA,GAAAmuB,UAAA3I,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAw3D,cAAAH,EAAAnC,cAAgC,GAAE16E,MAAA,cAAUA,MAAA,YAAiBA,0CAIvIA,MAAA,iBAA8DA,MAAA,YAAMA,gCACpEA,MAAA,iBAA8DA,MAAA,SAAGA,kDARzEA,MAAA,aACIA,MAAA,EAAAi9E,GAAA,uBAKAj9E,MAAA,eAAwCA,MAAA,mBAAAA,MAAA2rB,GAAA,MAAAkxD,EAAA78E,MAAA,GAAAmuB,UAAA3I,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAA03D,cAAAL,GAAmB,GAEhE78E,MADA,EAAAm9E,GAAA,kBACAn9E,CAD8D,EAAAo9E,GAAA,mBAGtEp9E,6CATmBA,cAAA,wBAAA68E,EAAA,KAAAA,EAAAf,gCAMA97E,MAAA,GAAAA,MAAA,mBAAA68E,EAAA,KAAAA,EAAAQ,UACAr9E,cAAA,mBAAA68E,EAAA,KAAAA,EAAAQ,qCAlBvBr9E,MADJ,qBACIA,CAD0D,YAEtDA,MAAA,EAAAs9E,GAAA,mBAEAt9E,MAAA,aAEIA,MADA,EAAAu9E,GAAA,WACAv9E,CAD2H,EAAAw9E,GAAA,yBAAAx9E,OAI/HA,QAEAA,MAAA,EAAAy9E,GAAA,eAYRz9E,gEArB+DA,MAAA,GAAAA,MAAA,OAAAwlB,EAAAk4D,QAG/C19E,MAAA,GAAuBA,MAAvB,QAAA68E,EAAAc,UAAuB39E,CAAA,WAAA49E,GAMxB59E,MAAA,GAAAA,MAAA,OAAAwlB,EAAAk4D,mCAZnB19E,MAAA,SACIA,MAAA,EAAA69E,GAAA,wBAwBJ79E,6CAxB4BA,cAAA,mBAAA68E,EAAA,KAAAA,EAAAQ,UAAA73D,EAAAk4D,gCAmC5B19E,MAAA,UAAqBA,MAAA,YAAMA,gCAC3BA,MAAA,UAAsBA,MAAA,UAAIA,kDAKlCA,MAAA,eAAuCA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAApI,EAAAxlB,MAAA,UAAAA,MAASwlB,EAAAs4D,cAAa,GAAE99E,MAAA,UAAIA,kDAnD3EA,MAAA,2BACQA,MAAA,EAAA+9E,GAAA,uBAMA/9E,MAAA,YAAiBA,MAAA,8BAAA2O,GAAA3O,MAAA0qB,GAAA,MAAAlF,EAAAxlB,QAAA,OAAAA,MAAsBwlB,EAAAw4D,eAAArvE,GAAsB,GACzD3O,MAAA,qBACIA,MAAA,EAAAi+E,GAAA,cA8BhBj+E,YAKYA,MAHZ,WAGYA,CAHY,WAGZA,CAFiC,SAEjCA,CADE,eAC0CA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAA04D,sBAAqB,GAEtEl+E,MADA,EAAAm+E,GAAA,cACAn+E,CADqB,GAAAo+E,GAAA,eAEzBp+E,QACAA,MAAA,gBAAkDA,MAAA,mBAAAA,MAAA0qB,GAAA,MAAAlF,EAAAxlB,QAAA,OAAAA,MAASwlB,EAAAu3D,UAAS,GAAE/8E,MAAA,eAAUA,MAAA,UACpFA,YAEAA,MAAA,GAAAq+E,GAAA,iBAERr+E,kCApDuBA,cAAA,OAAAwlB,EAAA84D,YAMwEt+E,cAAA,uBAAAwlB,EAAAk4D,QAEzD19E,MAAA,GAAAA,MAAA,UAAAwlB,EAAA+4D,YAoCfv+E,MAAA,GAAAA,MAAA,OAAAwlB,EAAAk4D,QACA19E,cAAA,QAAAwlB,EAAAk4D,QAKU19E,MAAA,GAAAA,MAAA,OAAAwlB,EAAAk4D,SClDlC,IAAMc,GAAmB,MAA1B,MAAOA,EAgBX9gF,YACU+gF,EACA3vE,EACA4vE,EACAC,EACDrvD,IAJC1xB,KAAA6gF,QACA7gF,KAAAkR,UACAlR,KAAA8gF,aACA9gF,KAAA+gF,mBACD/gF,KAAA0xB,iBAnBD1xB,KAAAghF,0BAAmC,GAEnChhF,KAAA4xB,qBAAuB,IAAIrxB,IAM5BP,KAAA8/E,QAAkB,EAElB9/E,KAAAksB,WAAqB,EACrBlsB,KAAA8+E,UAAoB,EACpB9+E,KAAA0gF,YAAsB,KAS3BrI,KAAc,CACZr4E,KAAK0xB,cAAc0kC,iBACnBp2D,KAAK0xB,cAAcykC,gBAElBtzD,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,EAAEZ,GAAiBM,OAC5BhP,KAAKyO,iBAAmBC,GACxB1O,KAAK+O,cAAgBC,IAG3B,CAEOC,WACLjP,KAAKihF,kBACLjhF,KAAK08E,eACP,CAEO4D,sBACLtgF,KAAK8/E,QAAU9/E,KAAK8/E,MACtB,CAEOM,eAAehwE,IACpB8wE,SAAgBlhF,KAAK2gF,WAAYvwE,EAAM+wE,cAAe/wE,EAAMgxE,aAC9D,CAEO1E,cAAc2E,GAAoB,GACvCrhF,KAAKksB,WAAY,EACjBlsB,KAAK8/E,QAAS,KAEdzH,KAAc,CACZr4E,KAAK0xB,cAAcklC,2BAA2B52D,KAAK0xB,cAAcimC,gBACjE33D,KAAK0xB,cAAc+kC,wBAAwBz2D,KAAK6gF,MAAMj/E,WAAW8I,SACjE1K,KAAK8gF,WAAWpE,kBAEf75E,QACCwM,QAAK,EACLhL,MAAK,EAAEqK,EAAiBM,EAAc2xE,MACpC,IAAIW,GAAKX,EAETW,UAAKthF,KAAKuhF,qBAAqBD,IAExB,CACL5yE,gBAAiBA,EACjBM,aAAcA,EACd2xE,WAAYW,OAKjBhyE,UAAU,CACT/K,KAAOimB,IACLxqB,KAAK2gF,WAAan2D,EAAIm2D,WACtB3gF,KAAK2gF,WAAWt8E,IAAIm9E,IAClBA,EAAKzB,UAAY//E,KAAKyhF,iBAAiBD,GAAMpD,cAAa,GAE5Dp+E,KAAKksB,WAAY,GAEnBnpB,MAAOiB,IACLhE,KAAKksB,WAAY,IAKzB,CAEQu1D,iBAAiBD,EAAe,IACrC,OAAOA,EAAKzwB,SAAS,iCACxB,CAEOmuB,SAASr+B,GACdA,EAAEzc,iBACFpkC,KAAK0xB,cAAcsqC,iBACrB,CAEQulB,qBAAqBG,GAC3B,IAAIC,EAAcD,EAElB,OAA0D,KAAtD1hF,KAAKyO,iBAAiBgD,8BAC8B,KAAnDzR,KAAK+O,cAAc0C,gCACpBkwE,EAAcD,EAAWn3D,OAAO+2D,IACtBA,EAAGlD,cAAcrtB,SAAS,eAGjC4wB,CACT,CAEOxC,QAAQqC,GACGxhF,KAAKkR,QAAQkB,KAAK2rE,GAAuB,CACvD1rE,MAAO,MACPpS,KAAMuhF,IAGE1kD,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAUkb,IACvEA,GACFxqB,KAAK08E,eAAa,EAGxB,CAEO0C,cAActC,GACH98E,KAAKkR,QAAQkB,KAAK6qB,IAAwB,CACxD5qB,MAAO,MACPpS,KAAM,CACJzD,KAAQ,oDAIFsgC,cAAcj6B,QAAKyyB,KAAUt1B,KAAK4xB,uBAAuBtiB,UAAUkb,IACvEA,GACFxqB,KAAK4hF,iBAAiB9E,EAAY,EAGxC,CAEQ8E,iBAAiB9E,GACxB98E,KAAK8gF,WAAW9D,gBAAgBF,GAC9Bj6E,QAAKwM,QACLC,UAAWkb,IACNA,IACFxqB,KAAK+gF,iBAAiBpvE,YAAY6Y,GAAKhb,QAAUgb,GAAKhb,QAAU,mCAChExP,KAAK08E,gBAAa,EAGxB,CAGO4C,cAAckC,GACnBA,EAAK/B,QAAU,EAAI+B,EAAK/B,OAC1B,CAEOS,cACLlgF,KAAKghF,0BAA4B,GAEjChhF,KAAK2gF,WAAWt8E,IAAIm9E,IAClBxhF,KAAKghF,0BAA0B50D,KAAK,CAClC0wD,aAAc0E,GAAM1E,aACpBvvD,OAAQi0D,GAAM/B,SACf,GAGH,IAAIj0E,EAAS,CACXq2E,yBAA0B7hF,KAAKghF,2BAGjChhF,KAAKksB,WAAY,EACjBlsB,KAAK8+E,UAAW,EAChB9+E,KAAK8/E,QAAS,EAEd9/E,KAAK8gF,WAAW3D,qBAAqB3xE,GAClC3I,QAAKwM,QACLC,UAAWkb,IACVxqB,KAAKksB,WAAY,EACjBlsB,KAAK8+E,UAAW,GAEtB,CAGQmC,kBACNjhF,KAAK8gF,WAAW1D,iBACbv6E,QAAKwM,QACLC,UAAU,CACT/K,KAAOimB,IACDA,GAAKk7B,MACP1lD,KAAK0gF,WAAcl2D,GAAOA,EAAIk7B,IAC9B1lD,KAAK8hF,sBAAwBt3D,IAGjCznB,MAAOiB,OAEb,CAEOg7E,mBACLh/E,KAAKkR,QAAQkB,KAAK4yC,KAAuB,CACvC3yC,MAAO,MACPmoC,WAAW,EACXv6C,KAAM,CACJA,KAAQD,KAAK8hF,sBACbn8B,KAAQ,GACRZ,cAAiB,mEAGvB,CAEO35B,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,iDAjNW22D,GAAmBx+E,MAAAC,KAAAD,MAAAyH,MAAAzH,MAAAmO,IAAAnO,MAAAmQ,MAAAnQ,MAAAoQ,OAAA,oCAAnBouE,EAAmBpwE,UAAA,sBAAAC,MAAA,GAAAC,KAAA,EAAAC,OAAA,mqDAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,IDnBxBzO,MAFR,UAEQA,CAFqF,UAErFA,CADgE,UAC3CA,MAAA,iBAAWA,QAC4CA,MAA5E,aAA4EA,CAAA,cAAUA,MAAA,WAC1FA,YAEAA,MAAA,iBAaAA,MAVA,EAAA2/E,GAAA,qBAUA3/E,CAVsD,EAAA4/E,GAAA,0BAAA5/E,OAmE1DA,gCAnEmBA,MAAA,GAAiBA,MAAjB,OAAA0O,EAAAob,UAAiB9pB,CAAA,WAAA6/E,sZCYvBrB,CAAmB,wUCZtBx+E,MAAA,GACEA,MAAA,eAAyGA,MAAA,mBAAAA,MAAAs+B,GAAA,MAAAC,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAuhD,iBAAgB,GAChI9/E,MAAA,cAAUA,MAAA,iBACZA,UAGEA,MADF,cACEA,CADwH,cAC9GA,MAAA,SACZA,oDAFmFA,MAAA,GAAAA,MAAA,oBAAA+/E,6CAKnF//E,MAAA,eAA8FA,MAAA,mBAAAA,MAAA0+B,GAAA,MAAAH,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAuhD,iBAAgB,GAAE9/E,MAAA,iBAAWA,gCAIpIA,MAAA,YAAsCA,MAAA,UAAIA,gCAIxCA,MAAA,aAA0CA,MAAA,eAASA,gCAKnDA,MAAA,aAA0CA,MAAA,WAAKA,kDAE/CA,MAAA,eAA2DA,MAAA,iBAAA2O,GAAA3O,MAAAmsB,GAAA,MAAAoS,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAwe,QAAApuC,GAAe,GACjF3O,MAAA,cAAUA,MAAA,SACZA,kCAKAA,MAAA,aAA0CA,MAAA,cAAQA,kDAElDA,MAAA,eAA2DA,MAAA,iBAAA2O,GAAA3O,MAAA2rB,GAAA,MAAA4S,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAoB,SAAAhxB,GAAgB,GAClF3O,MAAA,cAAUA,MAAA,SACZA,kCAKAA,MAAA,aAA0CA,MAAA,YAAMA,kDAEhDA,MAAA,eAA0HA,MAAA,iBAAA2O,GAAA3O,MAAA+sB,GAAA,MAAAwR,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAyhD,sBAAArxE,GAA6B,GAC9J3O,MAAA,cAAUA,MAAA,SACZA,6CAFqFA,MAAA,oBAAAigF,2BAOrFjgF,MAAA,aAA0CA,MAAA,WAAKA,gCAK/CA,MAAA,aAA0CA,MAAA,aAAOA,gCASjDA,MAAA,aAA0CA,MAAA,WAAKA,kDAFjDA,MAAA,UAAiHA,MAAA,mBAAAA,MAAA4tB,GAAA,MAAA2Q,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAA4hD,WAAqB,GAC7IngF,MAAA,iBAA0BA,MAAA,0BAAoBA,QAC9CA,MAAA,EAAAogF,GAAA,eACFpgF,iCAHiJA,MAAhI,aAAAA,MAAA,EAAAqgF,IAAgIrgF,CAAvG,YAAAu+B,EAAA+hD,YAAA,WAEhBtgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,oCAIxB18D,MAAA,aAA0CA,MAAA,UAAIA,gCAI9CA,MAAA,aAA0CA,MAAA,oBAAcA,mCAKxDA,MADF,kBACEA,CADgC,aACKA,MAAA,GACvCA,iCADuCA,MAAA,GAAAA,MAAA,IAAAu+B,EAAAgiD,yDAnF7CvgF,MAFJ,qBAEIA,CAF6L,WAE7LA,CADgC,UAE9BA,MAAA,YACFA,QAGEA,MADF,WACEA,CADoD,SAWlDA,MATA,EAAAwgF,GAAA,sBASAxgF,CAT2D,EAAAygF,GAAA,yBAAAzgF,OAa3DA,MAAA,mBACEA,MAAA,GAAA0gF,GAAA,cAGE1gF,MADF,UACEA,CADkF,kBACxDA,MAAA,gBAASA,QACnCA,MAAA,GAAA2gF,GAAA,eACF3gF,QAEAA,MAAA,WAAmGA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAAqiD,UAAoB,GAC9H5gF,MAAA,kBAA0BA,MAAA,YAAKA,QAG/BA,MAFA,GAAA6gF,GAAA,cAEA7gF,CAF0C,GAAA8gF,GAAA,iBAK5C9gF,QAEAA,MAAA,WAA8GA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAAwiD,cAAwB,GAC7I/gF,MAAA,kBAA0BA,MAAA,qBAAcA,QAGxCA,MAFA,GAAAghF,GAAA,cAEAhhF,CAF0C,GAAAihF,GAAA,iBAK5CjhF,QAEAA,MAAA,WAAwGA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAA2iD,WAAqB,GACpIlhF,MAAA,kBAA0BA,MAAA,YAAKA,QAG/BA,MAFA,GAAAmhF,GAAA,cAEAnhF,CAF0C,GAAAohF,GAAA,iBAK5CphF,QAEAA,MAAA,WAAiEA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAA8iD,UAAoB,GAC5FrhF,MAAA,kBAA0BA,MAAA,kBAAWA,QACrCA,MAAA,GAAAshF,GAAA,eACFthF,QAEAA,MAAA,WAAqEA,MAAA,mBAAAA,MAAAulB,GAAA,MAAAgZ,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAA2hD,WAAA3hD,EAAAgjD,YAAsB,GAClGvhF,MAAA,kBAA2BA,MAAA,gBAASA,QACpCA,MAAA,GAAAwhF,GAAA,eAGNxhF,YAGEA,MADF,SACEA,CADG,mBAEDA,MAAA,GAAAyhF,GAAA,YAKEzhF,MADF,UACEA,CAD8E,kBACpDA,MAAA,mBAAYA,QACtCA,MAAA,GAAA0hF,GAAA,eACF1hF,QAEEA,MADF,UACEA,CADkG,kBACxEA,MAAA,WAAIA,QAC9BA,MAAA,GAAA2hF,GAAA,eAEJ3hF,UACAA,MAAA,eACEA,MAAA,GAAA4hF,GAAA,wBAOV5hF,mDA3F6JA,MAAtB,kBAAsBA,CAAD,UAAAA,MAAA,GAAAorB,IAAAmT,EAAAm+B,aAGjJ18D,MAAA,GAAAA,MAAA,MAAAu+B,EAAAm+B,WAAAn+B,EAAAsjD,YAAAtjD,EAAAujD,iBAAA9hF,OAKYA,MAAA,GAAmBA,MAAnB,QAAAu+B,EAAAm+B,WAAmB18D,CAAA,WAAA+hF,GAcZ/hF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAEH18D,cAAA,aAAAA,MAAA,GAAAstB,KAESttB,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAGT18D,QAA+CA,MAA/C,aAAAA,MAAA,GAAAgiF,IAA+ChiF,CAAvB,YAAAu+B,EAAA+hD,YAAA,UAEftgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAEC18D,cAAA,OAAAu+B,EAAAm+B,YAKV18D,QAAsDA,MAAtD,aAAAA,MAAA,GAAAiiF,IAAsDjiF,CAA1B,YAAAu+B,EAAA+hD,YAAA,cAEnBtgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAEC18D,cAAA,OAAAu+B,EAAAm+B,YAKV18D,QAAkDA,MAAlD,aAAAA,MAAA,GAAAkiF,IAAkDliF,CAAxB,YAAAu+B,EAAA+hD,YAAA,YAEjBtgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAEC18D,cAAA,OAAAu+B,EAAAm+B,YAKV18D,QAA+EA,MAA/E,aAAAA,MAAA,GAAAmiF,IAA+EniF,CAAtD,YAAAu+B,EAAA+hD,YAAA,WAEhBtgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAGT18D,QAAqFA,MAArF,aAAAA,MAAA,GAAAoiF,IAAqFpiF,CAA1D,YAAAu+B,EAAA+hD,YAAA,aAElBtgF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAOwC18D,MAAA,GAAAA,MAAA,OAAAu+B,EAAAjP,cAAAgnB,cAAA,aAIjDt2C,cAAA,aAAAA,MAAA,GAAAqiF,KAESriF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAET18D,cAAA,aAAAA,MAAA,GAAAsiF,KAEStiF,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,YAIV18D,MAAA,GAAAA,MAAA,OAAAu+B,EAAAm+B,sDAwBxB18D,MAAA,eAA0CA,MAAA,mBAAAA,MAAAkuB,GAAA,MAAAqQ,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAgkD,UAAS,GAAK,GAAEviF,MAAA,uBAAiBA,MAAA,YAAQA,MAAA,GAAwDA,mCAAxDA,MAAA,GAAAA,MAAAu+B,EAAAxoB,YAAArE,MAAA,IAAA6sB,EAAAxoB,YAAApE,iDAF5F3R,MAAA,eAAsBA,MAAA,iBAAA2O,GAAA3O,MAAA0tB,GAAA,MAAA6Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAwe,QAAApuC,GAAe,GAAE3O,MAAA,qBAAeA,QAC/DA,MAAA,eAAsBA,MAAA,iBAAA2O,GAAA3O,MAAA0tB,GAAA,MAAA6Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAoB,SAAAhxB,GAAgB,GAAE3O,MAAA,+BAAyBA,QAC1EA,MAAA,EAAAwiF,GAAA,iBACAxiF,MAAA,eAAsBA,MAAA,mBAAAA,MAAA0tB,GAAA,MAAA6Q,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAgkD,WAAU,GAAEviF,MAAA,sBAAgBA,gCADpCA,MAAA,GAAAA,MAAA,OAAAu+B,EAAAxoB,uDAOvB/V,MAAA,eAA0CA,MAAA,mBAAAA,MAAAyiF,GAAA,MAAAlkD,EAAAv+B,MAAA,UAAAA,MAASu+B,EAAAgkD,UAAS,GAAK,GAAEviF,MAAA,uBAAiBA,MAAA,YAAQA,MAAA,GAAwDA,mCAAxDA,MAAA,GAAAA,MAAAu+B,EAAAxoB,YAAArE,MAAA,IAAA6sB,EAAAxoB,YAAApE,iDAA5F3R,MAAA,EAAA0iF,GAAA,iBACA1iF,MAAA,eAAsBA,MAAA,mBAAAA,MAAA2iF,GAAA,MAAApkD,EAAAv+B,QAAA,OAAAA,MAASu+B,EAAAgkD,WAAU,GAAEviF,MAAA,sBAAgBA,gCADpCA,MAAA,OAAAu+B,EAAAxoB,cC5FpB,IAAM6sE,GAAgB,MAAvB,MAAOA,EAyBXllF,YACUgT,EACAgvB,EACA/Y,EACD0E,EACA3E,GACA4I,GACCuzD,GACAC,IAPAllF,KAAA8S,SACA9S,KAAA8hC,SACA9hC,KAAA+oB,kBACD/oB,KAAAytB,cACAztB,KAAA8oB,eACA9oB,KAAA0xB,iBACC1xB,KAAAilF,kBACAjlF,KAAAklF,mBAhCFllF,KAAAu2D,MAAgB,EAChBv2D,KAAA4xB,qBAAuB,IAAIrxB,IAG5BP,KAAAikF,YAAsB,kDACtBjkF,KAAAkkF,iBAA2B,oDAG3BlkF,KAAAsjF,UAAoB,UACpBtjF,KAAAuiF,UAAoB,2BACpBviF,KAAAgjF,SAAmB,QACnBhjF,KAAAmjF,aAAuB,YACvBnjF,KAAA2jF,WAAqB,wBACrB3jF,KAAAyjF,SAAmB,kBAKjBzjF,KAAA8+D,YAAsB,EAgB7B9+D,KAAK2iF,4BAEL3iF,KAAK8oB,YAAYxO,cACdzX,QACCyyB,KAAUt1B,KAAK4xB,uBAEhBtiB,UAAU,CACT/K,KAAO4T,KACLnY,KAAKmY,YAAcA,OAEtB,EAEHkgE,KAAc,CACZr4E,KAAKytB,YAAYjtB,aACjBR,KAAK8hC,OAAOg5C,OACTj4E,QACC0nB,MAAOna,IAASA,cAAiB2qE,OAAa,EAC9C1rE,UAEHxM,QACDyyB,KAAUt1B,KAAK4xB,uBACftiB,UAAU,CACV/K,KAAMA,EAAE8+C,GAAa23B,OACnB,MAAMt1B,GAAMs1B,GAAWt1B,IACvB1lD,KAAKmlF,YAAcz/B,GAAI1hC,QAAQ,gBAAkB,EACjDhkB,KAAKolF,YAAc1/B,GAEf1lD,KAAKmlF,aAAe9hC,IAAav/C,YACnC9D,KAAKqlF,mBAAmBhiC,GAAav/C,WAAU,GAIvD,CAGO83E,SAASxrE,QACOmT,IAAjBvjB,KAAKqkB,UACPrkB,KAAK8+D,aAAe1uD,EAAMuT,OAAOk4D,YAAc,KAE/C77E,KAAK0xB,cAAc4lC,eAAgBlnD,EAAMuT,OAAOk4D,YAAc,KAC9D77E,KAAK0xB,cAAc2nC,cAAcr5D,KAAK8+D,YACtC9+D,KAAK+oB,gBAAgB+1C,WAAa9+D,KAAK8+D,WAE3C,CAEO7vD,WACLjP,KAAKilF,eAAe7gE,SAASpkB,KAAKslF,WAClCtlF,KAAKilF,eAAe1gE,cAAcvkB,KAAKykB,IACzC,CAEO2G,cACLprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,WAEvBjqB,KAAKulF,aACNvlF,KAAKulF,YAAYl6D,aACrB,CAEOkvD,SACL,OAAOt4E,KAAY2nE,UACrB,CAEOsY,iBACLliF,KAAK8S,OAAOV,KAAKwuE,GAAqB,CACpCvuE,MAAO,SAEX,CAEO8sC,QAAQ0B,GACb7gD,KAAKoiF,sBAAsBvhC,GAE3B7gD,KAAK8S,OAAOV,KAAKgtC,KAAkB,CACjC/sC,MAAO,OAEX,CAEO0vB,SAAS8e,GACd7gD,KAAKoiF,sBAAsBvhC,GAE3B,IAAIxzC,EAAM,CACR+3B,QAAS,cACT36B,KAAM,SACiB,KAAnBzK,KAAK8hC,OAAO4jB,KAAe,CAAExhB,aAAe,cAElDlkC,KAAK8S,OAAOV,KAAK2zB,KAAmB,CAClC1zB,MAAO,MACPpS,KAAMoN,GAEV,CAEOs3E,SAASa,GAAkB,GAChCxlF,KAAK8oB,YAAY9O,aAAewrE,EAChCxlF,KAAKsjF,UAAYkC,EAAS,mBAAqBxlF,KAAKmY,aAAa3U,QAAU,UAC3ExD,KAAK8hC,OAAO2jD,cAAc,IAAK,CAAEC,oBAAoB,IAAQxwB,KAAK,KAChEl1D,KAAK8hC,OAAO5vB,SAAS,CAAClS,KAAKsjF,WAAU,EAEzC,CAEOlB,sBAAsBvhC,GAC3BA,EAAEzc,iBACFyc,EAAE8kC,0BACJ,CAEOrD,WAAW58B,GAChB,MAAMkgC,EAAalgC,EACD,WAAdkgC,IACF5lF,KAAK8oB,YAAY9O,cAAe,GAIlCha,KAAK8hC,OAAO2jD,cAAcG,EAAY,CAAEF,oBAAoB,IAAQxwB,KAAK,KACvEl1D,KAAK8hC,OAAO2jD,cAAc,IAAK,CAAEC,oBAAoB,IAAQxwB,KAAK,KAChEl1D,KAAK8hC,OAAO5vB,SAAS,CAAC0zE,GAAW,EAClC,EAGL,CAEOlD,YAAYmD,GACjB,MAAiB,SAAbA,EACK7lF,KAAK8hC,OAAO4jB,IAAI44B,WAAW,SAG3Bt+E,KAAK8hC,OAAO4jB,IAAIqL,SAAS80B,EAIpC,CAGOC,iBACL9lF,KAAK8hC,OAAO5vB,SAAS,CAAC,KACxB,CAEQmzE,mBAAmB1hF,GACzB3D,KAAKklF,gBAAgBhhF,0BAA0BP,GAC5Cd,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAU,CACT/K,KAAOD,IACLtE,KAAKytB,YAAYntB,gBAAgBiE,KAAKD,GACtCtE,KAAKikF,YAAc3/E,EAAekqD,mBAAmBu3B,OACrD/lF,KAAKkkF,iBACH5/E,EAAekqD,mBAAmBw3B,MAAA,EAEtCjjF,MAAQiB,MACRimB,SAAUA,QAEhB,iDAtLW+6D,GAAgB5iF,MAAAC,MAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,KAAAnQ,MAAAoQ,MAAApQ,MAAAkpB,OAAAlpB,MAAAmpB,MAAAnpB,MAAAk7B,MAAA,oCAAhB0nD,EAAgBx0E,UAAA,kBAAAmtB,UAAA,SAAA9sB,EAAAC,MAAA,EAAAD,UAoBhB+vE,GAAmB,sCAGcqF,sNAvBjC7jF,MAAA,kBAAA2O,IAAA,OAAAD,EAAA8qE,SAAA7qE,GAAgB,KAAA3O,q2FDxB7BA,MAAA,6BACEA,MAAA,EAAA8jF,GAAA,uBA6FA9jF,MAAA,yBACEA,MAAA,GACFA,QAGAA,MAAA,qBACEA,MAAA,UAGJA,UAEAA,MAAA,qBACEA,MAAA,GAAA+jF,GAAA,qBAMF/jF,QAEAA,MAAA,sBACEA,MAAA,GAAAgkF,GAAA,qBAIFhkF,eAtHqEA,cAAA,OAAA0O,EAAAq0E,aAkGyB/iF,MAAA,GAAAA,MAAA,uTC3EjF4iF,CAAgB,6ICtBzB5iF,MADF,UACEA,CADwD,WAEtDA,MAAA,qBAEJA,oDAOMA,MAAA,8BAAwEA,MAAA,yBAAAA,MAAAulB,GAAA,MAAAC,EAAAxlB,MAAA,UAAAA,MAAewlB,EAAAC,eAAc,GACnGzlB,MAAA,OAAGA,MAAA,GACLA,uCAFkDA,MAAA,OAAAikF,EAAA57E,MAC7CrI,MAAA,GAAAA,MAAAikF,EAAA7pF,KAAA6pF,EAAA7pF,KAAA,kEAFP4F,MAAA,WACEA,MAAA,EAAAkkF,GAAA,+BAGFlkF,6BAH0BA,cAAA,WAAAikF,EAAA7pF,OCEzB,IAAM+pF,GAAY,MAAnB,MAAOA,EASXzmF,YACU+gF,EACAprC,EACA+wC,EACAr1E,EACAs1E,GACAn4E,IALAtO,KAAA6gF,QACA7gF,KAAAy1C,kBACAz1C,KAAAwmF,UACAxmF,KAAAmR,UACAnR,KAAAymF,kBACAzmF,KAAAsO,kBAbFtO,KAAA4xB,qBAAuB,IAAIrxB,IAE5BP,KAAA8+D,YAAsB,EACtB9+D,KAAA0mF,SAAW,IAAInmF,IAYpBP,KAAKy1C,gBAAgBqgB,QAClBjzD,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWkb,KACNA,KACFxqB,KAAK8+D,WAAa9+D,KAAKy1C,gBAAgBqpB,WACvC9+D,KAAK0mF,SAASniF,KAAKimB,IAAG,GAI5BxqB,KAAKmR,QAAQ2pE,OACVj4E,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAWc,KACNA,cAAiBu2E,KAEnB3mF,KAAKy1C,gBAAgBtqB,cAQFy7D,GAKzB5mF,KAAKsO,eAAegrD,gBACjBz2D,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAUslB,KACT50B,KAAK8+D,WAAalqC,IAGxB,CAEA3lB,WACEjP,KAAK6mF,WAAa7mF,KAAKsO,eAAe+oD,aACtCr3D,KAAK8mF,aAAe9mF,KAAKymF,eAAeM,SAASC,SAASrmF,IAAI,YAAc,UAC5E,MAAMsmF,EAAcnlF,OAAOC,SAAS4oE,UAEH,CAC/B,YACA,yBACA,8CAGgDj1C,KAAKxG,GAAWA,EAAQ0hC,KAAKq2B,KAEtC,MAAhBA,GACvBjnF,KAAKmR,QAAQe,SAAS,CAAC,KAGzBlS,KAAKwmF,QAAQU,cAAc,MACxBrkF,QAAKyyB,KAAUt1B,KAAK4xB,uBACpBtiB,UAAW63E,IACNA,GACFnnF,KAAK6gF,MAAM1/E,YAAU,EAG7B,CAEAiqB,cACEprB,KAAK4xB,qBAAqBrtB,MAAK,GAC/BvE,KAAK4xB,qBAAqB3H,UAC5B,CAEOpC,eACL7nB,KAAKy1C,gBAAgBtqB,cACvB,CAEOovD,SACL,OAAOt4E,KAAY2nE,UACrB,iDAzFW2c,GAAYnkF,MAAAC,KAAAD,MAAAyH,MAAAzH,MAAAmO,MAAAnO,MAAAmQ,MAAAnQ,MAAAmQ,MAAAnQ,MAAAoQ,OAAA,oCAAZ+zE,EAAY/1E,UAAA,eAAAC,MAAA,EAAAC,KAAA,GAAAC,OAAA,ibAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDdzBzO,MAAA,WACEA,MAAA,EAAAglF,GAAA,8BAMAhlF,MAAA,mBACEA,MAAA,kBAEAA,MAAA,WACEA,MAAA,EAAAilF,GAAA,8BAMAjlF,MAAA,mBAINA,mBApBQA,cAAA,OAAAA,MAAA,IAAA0O,EAAA+1E,aAMOzkF,MAAA,GAAAA,MAAA,aAAA0O,EAAAguD,YACoD18D,cAAA,UAAAA,MAAA,EAAAg/B,GAAAtwB,EAAAguD,aAErB18D,cAAA,UAAAA,MAAA,GAAAs7C,GAAA5sC,EAAAypE,UAAAzpE,EAAAypE,WACWn4E,cAAA,OAAAA,MAAA,IAAA0O,EAAA41E,gWCG5CH,CAAY,KCPZe,GAAgB,MAAvB,MAAOA,EACXxnF,YACUipB,GAAA/oB,KAAA+oB,iBACN,CAEJw+D,UACEC,EACAjjF,GAEA,OAAOA,EAAKkjF,OAAOD,GAAK3kF,QACtBC,MAAYC,IACW,MAAjBA,EAAMsgB,QAETrjB,KAAK+oB,gBAAgB7Y,UAAUnN,EAAMA,MAAMyM,UAAO,EAE5CxM,MAAW,IAAMD,KAG9B,iDAlBWukF,GAAgBllF,MAAAC,MAAA,sCAAhBilF,EAAgBhlF,QAAhBglF,EAAgB/kF,WAAA,SAAhB+kF,CAAgB,KCQhBI,GAAW,MAAlB,MAAOA,oDAAW,mCAAXA,GAAW,uCAFZjgE,MAAc8nC,OAAY,SAEzBm4B,CAAW,KCNXC,GAAmB,MAA1B,MAAOA,EAEX7nF,YAAoB4E,EAAyB+oB,GAAzBztB,KAAA0E,OAAyB1E,KAAAytB,aAE7C,CAEOm6D,eAAejjF,GACpB,IAAIsiD,EAAO,IAAI7mC,SACf6mC,SAAK5mC,OAAO,aAAc,iBAC1B4mC,EAAK5mC,OAAO,gBAAiB1b,GACtB3E,KAAK0E,KAAKvB,KAAKlB,KAAYC,WAAa,gBAAiB+kD,GAAMpkD,QACpEC,MAAYC,IACV/C,KAAKytB,YAAYtsB,cAAU,EACpB6B,MAAW,IAAMD,KAG9B,iDAhBW4kF,GAAmBvlF,MAAAC,MAAAD,MAAAyH,KAAA,sCAAnB89E,EAAmBrlF,QAAnBqlF,EAAmBplF,UAAAC,WAFlB,QAAM,SAEPmlF,CAAmB,qDCCzB,IAAME,GAAgB,MAAvB,MAAOA,EAQZ/nF,YACW6E,EACAymE,EACF0c,EACCh/D,GAHC9oB,KAAA2E,OACA3E,KAAAorE,gBACFprE,KAAA8nF,eACC9nF,KAAA8oB,cAXD9oB,KAAA+nF,YAAc,gBAEd/nF,KAAAgoF,wBAAyB,EACzBhoF,KAAAioF,oBAA4C,IAAI/nF,IACtD,MASFF,KAAKoB,MAAQpB,KAAK2E,KAAK/C,YAAYmY,YACpC,CAECwtE,UACEjuD,EACA/0B,GAEA,OAAI+0B,EAAQ2tB,gBAAgB7mC,kBAEjBkZ,EAAQ2tB,KAAS,KACP,OAAjB3tB,EAAQ2tB,MACoB,sBAA5B3tB,EAAQ2tB,KAAKt8C,YACb2uB,EAAQhZ,QAAQ4nE,IAAI,iBAGb3jF,EAAKkjF,OAAOnuD,IAGlBA,EAAQhZ,QAAQ4nE,IAAI,kBACvB5uD,EAAUA,EAAQ6uD,MAAM,CACtB7nE,QAASgZ,EAAQhZ,QAAQhf,IAAI,eAAgB,qCAIjDg4B,EAAUt5B,KAAKooF,uBAAuB9uD,GAE/B/0B,EAAKkjF,OAAOnuD,GAASz2B,QAC1BwlF,MAAK79D,IACH,GAAIA,aAAe89D,KAAc,CAC/B,IAAIxsD,EAAOtR,EAAIlK,QAAQ3f,IAAI,oBACW4iB,IAAlCvjB,KAAK2E,MAAM6Z,cAAcsd,MAA+B,OAATA,GAC7C97B,KAAK2E,KAAK6Z,aAAasd,OAASA,GAClC97B,KAAK2E,KAAKxD,aAIcoiB,MAAxBvjB,KAAK2E,KAAK/C,YAA2Bb,KAAKC,MAAOC,mBAAmBjB,KAAKorE,cAAczqE,IAAI,YAE/FX,KAAK2E,KAAK6Z,cAAgBxe,KAAK2E,KAAK6Z,aAAa9T,SAAW3J,KAAKC,MAAOC,mBAAmBjB,KAAKorE,cAAczqE,IAAI,WAAY+J,SAElI1K,KAAK2E,KAAK9C,gBAGR,KACD,EACDiB,MAAYC,GACW,MAAjBA,EAAMsgB,OAGkB,MAAjBtgB,EAAMsgB,OACXrjB,KAAKgoF,uBAGAhoF,KAAKioF,oBAAoBplF,QAC9B0nB,MAAQ8N,GAAsB,OAAXA,IAAe,EAClCkwD,MAAa,IAAC,EACdC,MAAU,IAAMjkF,EAAKkjF,OAAOznF,KAAKooF,uBAAuB9uD,OAG1Dt5B,KAAKgoF,wBAAyB,EAE9BhoF,KAAKioF,oBAAoB1jF,KAAK,MAEvBvE,KAAKyoF,qBAAqB5lF,QAC/B2lF,MAAWvoF,IACTD,KAAKioF,oBAAoB1jF,KAAKtE,GAC9BD,KAAKoB,MAAQnB,EAAK8Z,aAClB/Z,KAAK2E,KAAK7D,SAASb,GACZsE,EAAKkjF,OAAOznF,KAAKooF,uBAAuB9uD,OAChD,EAGDovD,MAAS,IAAO1oF,KAAKgoF,wBAAyB,MAAO,EAIlDhlF,MAAW,IAAMD,IA7BxBi6C,QAAQj6C,MAAM,iBACd/C,KAAK2E,KAAKxD,cA8BZ,EAAO6B,MAAW,IAAMD,MAG9B,CAEQ0lF,qBACN,OAAOzoF,KAAK8nF,aAAaF,eAAe5nF,KAAK2E,KAAK/C,WAAW+mF,cAC/D,CAEQP,uBAAuB9uD,GAI7B,OAAKt5B,KAAKoB,OAGVpB,KAAK8oB,YAAY/O,aAAe/Z,KAAKoB,MAC9Bk4B,EAAQ6uD,MAAM,CACnB7nE,QAASgZ,EAAQhZ,QAAQhf,IAAItB,KAAK+nF,YAAa,UAAY/nF,KAAKoB,WAC1C,OAAlBk4B,EAAQgtB,QAAqC,QAAlBhtB,EAAQgtB,SAAqB,CAC1D96C,QAAS8tB,EAAQ9tB,OAAS8tB,EAAQ9tB,OAAS,IAAIo9E,MAC9CtnF,IAAI,eAAe0K,MAAO68E,UAAY7oF,KAAK8oF,cAPvCxvD,CAUX,CAEQwvD,SACN,IAAItsF,EAAO,GAGX,QAASu/B,EAAI,EAAGA,EAAI,EAAGA,IACrBv/B,GAHa,iEAGIw/B,OAAOC,KAAKC,MAAsB6sD,GAAhB9sD,KAAKG,WAE1C,OAAO5/B,CACT,iDA9HWqrF,GAAgBzlF,MAAAC,KAAAD,MAAAyH,KAAAzH,MAAAmO,IAAAnO,MAAAmQ,MAAA,sCAAhBs1E,EAAgBvlF,QAAhBulF,EAAgBtlF,WAAA,SAAhBslF,CAAgB,KCiBhBmB,GAAU,MAAjB,MAAOA,oDAAU,mCAAVA,GAAU,wCAhBV,CACTnpF,IACA8nF,GACA,CACEj4B,QAASu5B,KACTr5B,SAAUi4B,GACVqB,OAAO,GAET,CACEx5B,QAASu5B,KACTr5B,SAAU03B,GACV4B,OAAO,IAEV1hE,QAAA,CACSC,MAAcigE,KAAW,SAExBsB,CAAU,oBCbhB,IAAMG,GAAmB,MAA1B,MAAOA,oDAAmB,mCAAnBA,GAAmB,uCAJ5B1hE,MACAC,MAAY,SAGHyhE,CAAmB,KCqCnBC,GAAS,MAAhB,MAAOA,oDAAS,mCAATA,EAASC,UAAA,CAxBR9C,KAAY,wCAcb,CACT,CACE72B,QAAS45B,MACTC,WAAYlf,EACZmf,KAAM,CAAC3pF,IAAau0D,IAAqB3uC,IAAagkE,KACtDP,OAAO,MAETQ,SAAkBC,UACnBniE,QAAA,CAjBCoiE,KACArd,EACAyc,GACAa,KACAniE,IACAJ,KACA6hE,GACA15B,uBAAkB,SAYT25B,CAAS,KC7ClBnnF,KAAY2nE,eACdkgB,SAGFC,OAAyBC,gBAAgBZ,IACtCa,MAAMjmF,GAAOg5C,QAAQj6C,MAAMiB,sBCX9B,IAAAK,EAAA,CACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,cACA,iBACA,eACA,kBACA,eACA,kBACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,WACA,cACA,WACA,cACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,qBACA,kBACA,qBACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,WACA,cACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,WACA,cACA,YACA,eACA,UACA,aACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,eACA,kBACA,cACA,iBACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,iBACA,oBACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,eACA,kBACA,YACA,eACA,YACA,eACA,WACA,iBACA,oBACA,cACA,UACA,aACA,iBACA,oBACA,WACA,cACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,mBAIA,SAAA6lF,EAAA1C,GACA,IAAA7nF,EAAAwqF,EAAA3C,GACA,OAAA9b,EAAA/rE,EACA,CACA,SAAAwqF,EAAA3C,GACA,IAAA9b,EAAA0e,EAAA/lF,EAAAmjF,GAAA,CACA,IAAA3mC,EAAA,IAAAwpC,MAAA,uBAAA7C,EAAA,KACA,MAAA3mC,EAAApZ,KAAA,mBACAoZ,CACA,CACA,OAAAx8C,EAAAmjF,EACA,CACA0C,EAAAz0D,KAAA,WACA,OAAAD,OAAAC,KAAApxB,EACA,EACA6lF,EAAAzf,QAAA0f,EACAG,GAAAC,QAAAL,EACAA,EAAAvqF,GAAA","names":["CONSTANTS","EXPORT_LEAD","account","export_type","lead_list","recent_lead","search_criteria","TOOLBAR","heading","CUSTOM_TOOLBAR","RELATION","text","value","NOTICE_TYPE","Success","Alert","Warning","Close","Announcement","MARITAL_STATUS","PHONE_TYPES","isSelected","GENDER","CONTACT_RELATION","PRODUCT_INFO","enrollmentTitle","EAPP","AICOE","PDF","F2F","VSIG","LDF_LEAD_SWITCH_KEY","LDF_CONFIGURABLE_SETTINGS","LDF_ENABLE_AEP_DISRUPTION_REPORT","LDF_SHOW_ENV_WARNING_BANNER","productTypes","MED_ADV","MED_PARTD","FEX","MED_SUP","productTypesArray","EXTRA_BENEFITS","e31","name","img","e33","icon","e32","e388","e55","e1542","e319","e36","e375","e10","e37","e405","e333","e328","validatorPatterns","EMAIL","MONTH_ARRAY","id","hospIndemUrl","AuthService","constructor","_cookieService","this","data","BehaviorSubject","laAuth","authUser","asObservable","cobrandDetails$","Subject","userDetails$","setCookie","laAuthTransitionCookie","get","laWebCookie","length","setToken","JSON","parse","decodeURIComponent","delete","killCookie","token","_deleteAuthCookie","set","encodeURIComponent","stringify","path","secure","sameSite","getToken","redirectToAuth","window","location","href","environment","authClient","getAuthCookie","i0","i1","factory","ɵfac","providedIn","CarrierService","_http","getCarrier","api","pipe","catchError","error","throwError","getCarriers","payload","post","DataSelfService","getWorkingTableList","overrideWorkingTable","updatedLeadDataSSP","lead_id","AccountService","getAccountSettings","accountId","shareReplay","updateAccountSettings","account_id","getCobrandDetails","err","getAccountAgents","getLoggedInCobrandDetails","cachedCobrandDetails","_cachedCobrandDetails","map","cobrandDetails","next","setTimeout","AdminService","http","auth","adminSubject","_filterProducts$","adminFormArray","getAdminFormArray","getAllMessages","addNewMessage","editMessage","notice_id","deleteMessage","loggedInUser","getRegistrationLink","role_id","getRolePermissionsData","listActiveByCarrier","carrier_ids","exportLeads","addLeadSource","getExistingLead","vendorId","updateExistingLead","deleteLeadSource","leadVendorSearch","getb2bPartner","addClientInfo","updateClientInfo","b2b_id","deleteClientInfo","getLeadInstructions","getLeadInstructionProduct","addLeadInstruction","updateLeadInstruction","deleteLeadInstruction","addNewCampaign","updateExistingCampaign","deleteCampaign","addNewCampaignSegment","updateExistingCampaignSegment","deleteCampaignSegment","getLeadImportFile","addLeadImportFile","getAccountInfo","AccountSelectedUser","updateAccount","smsAccounts","smsAccountInitialField","smsAccountUpdateFields","deletePhoneNumber","phoneId","deleteEmailNumber","emailId","deleteAddressNumber","AddressId","createNewSmsAccount","deleteSMSAccount","getManageRole","manageRoleSetting","updateRole","roleId","addRole","roleSearch","rolePermission","roleUpdatePermission","planSearch","addfilter","productFilterSearch","planFilterDelete","product_filter_id","getCachedProductFilters","_cachedFilterProducts","productFilters","resetProductFilterCache","deleteProductFilter","filterId","getAdminAccountInfo","roleManageSearch","getTrackingCode","criteria","INSURACTIVE_ACCOUNT_ID","addUpdateTrackingCode","deleteTrackingCode","tracking_code_id","i2","CalendarService","eventSubject","deleteSubject","titleSubject","sendEventData","getEventData","sendDeleteData","getDeleteData","sendTitle","getTitle","getCalendarEvents","type","user_id","toString","start_time","startDate","endDate","field_list","page_number","end_time","selectedDate","orderby_direction","completed_date","search_type","orderby_field","addAppointment","params","addLeadAppointment","editAppointment","appointment_id","leadSearch","deleteEvent","dismissEvent","moment","Date","format","HeaderService","dropSubject","searchSubject","notifySubject","sendDropdownData","getDropdownData","sendSearchAlert","input","getSearchAlert","sendNotifyAlert","getNotifyAlert","getPeproAccess","PEAPI","populateDropDowns","getAccountDetail","getUserCardSetting","quickSearch","qsLeadPlanCurrent","getAgentWritingNumberDetail","obj","getEmailTypes","getPhoneTypes","getAddressTypes","getNotificationCount","addNewUser","updateUser","getUserNotice","dismissed","important_popup","start_date","utc","end_date","records_per_page","dismissNotice","getNotice","PhoneDialerOptionComponent","_commonService","_phoneDialerSvc","_toastMsgSvc","_accountSettings","accountSettings","_leadId","leadId","_phoneNumber","phoneNumber","_userSettings","userSettings","ngOnInit","dialWithPhoneDialer","createPhoneCall","callee_phone_number","first","subscribe","redirectToDialerLandingPage","message","_savePreference","dialWithBrowserDefault","dialPhoneNumberBrowserDefault","telephony_prefix","behaviorId","newDefaultBehavior","_newDefaultBehavior","phone_dialer_provider_behavior_type_id","updateLoggedInUserSettings","showError","updatePreference","event","checked","MAT_DIALOG_DATA","i3","selectors","decls","vars","consts","template","rf","ctx","$event","PhoneDialerService","_clickPhonePipe","_dialog","_router","_prevURL","getPhoneDialerBehaviourList","getOAuthSettings","laweb_current_route","isPhoneDialer","phone_dialer_provider_active","telephonyPrefix","showSuccess","transform","dialPhoneNumber","_getDialerBehavior","showAnnouncement","errorMsg","_setPrevURL","navigate","state","open","width","minHeight","i4","i5","VsigSoaComponent","todaysDate","LeadMissingRequirementsComponent","messingReq","dialogRef","dialog","leadMissingReq","openUserProfile","close","LeadDetailComponent","LeadMissingRequirementsComponent_li_15_Template","LeadMissingRequirementsComponent_li_16_Template","LeadMissingRequirementsComponent_li_17_Template","LeadMissingRequirementsComponent_li_18_Template","LeadMissingRequirementsComponent_li_19_Template","LeadMissingRequirementsComponent_li_20_Template","LeadMissingRequirementsComponent_li_21_Template","LeadMissingRequirementsComponent_li_22_Template","LeadMissingRequirementsComponent_li_23_Template","LeadMissingRequirementsComponent_li_24_Template","LeadMissingRequirementsComponent_li_25_Template","fname","lname","dob","email","phone","address1","city","zip","medicare_parta_date","medicare_partb_date","leadUtilityFunctions","generateRequestPayload","user","agentESignatureID","lead","fomrData","draft","app_id","client_name","client_email","default_email","client_dob","client_zip","default_address","process_type","soa_id","external_redirect_url","notify_web_hook_url","remote_invite_url","alert_notice","alert_email","client_first_visit_date","client_last_visit_date","soa","plan_id","client_phone","client_address","formatLeadAddress","rep_name","rep_relation","agent_name","agent_phone","default_phone","agent_email","agent_address","state_id","contact_method","contactMethod","medicare_plans","soa_just_in_time_reason","appointment_date","aptDate","access_date","agent_esign_id","leadAddresss","displayLeadAddress","address2","convertCalendarResponse","object","title","start","allDay","allday_flag","end","extendedProps","description","importance","appointment_type_id","openSOAModal","leadDetails","soaType","checkReq","scroll","leadMissingRequirements","dialogOptions","F2fSoaComponent","RemoteSoaComponent","LeadService","alertSubject","relatedSubject","ledgerSubject","showLead","showConversation","showApplication","showFormChange","showFormError","showRelated","isRelatedTable","isApplicationTable","refreshConvTable","refreshLeadTable","zipCodeIndex","providerSubject","isShrinkTable","isCrossedItems","isLeadListItem","_leadDetail","access_token","leadSelected","setLead","leadDetail","resetLead","getCurrentLead","getValue","changedLead","sendLeadListAlert","getLeadListAlert","sendRelatedAlert","getRelatedAlert","sendLeadLedger","getLeadLedger","setShrinkTable","getShrinkTable","setCrossedItems","getCrossedItems","setLeadListItems","getLeadListItems","deleteLeads","getUsers","getDisposition","getLeadApps","assignLeadsToUserByAdmin","assignDispositionToLeads","leadDisposition","leadAppointment","exportLead","exportParams","constants","include_deleted","lead_id_list","exportLeadPlan","guidID","addNewLead","getCountiesByZip","leadPlanCurrentSearch","getConversationlogRecent","getLeadRecent","getApplicationRecent","deleteApplication","deleteLeadPlanCurrent","searchLeadCurrentPlan","addLeadCurrentPlan","leadCategoryCount","getSoAeSignature","agentSignature","esignature_type_id","signature","signature_date","getLeadDetails","getDiscrepancy","searchMIDLeads","linkLeadToMID","ssoValue","unLinkLeadToMID","pushToMID","getb2bpartner","getRelatedLeads","getClientInvite","saveLeadDetails","createEmailDraft","lead_details","sendDraftEmail","email_id","addRelatedLeads","getDispositionList","b2bpartner_id","getDispositionAppData","deleteRelatedLeads","related_lead_id","addDisposition","user_details","updateRelatedLeads","leadImportFileTemplate","getEmailMsg","entity_id","sendShowLead","getShowLead","addSearchedRelatedLead","addAppointmentLead","getAppointment_TaskData","deleteAppointment_Task","getleadType","getCampaignCode","getProductType","getTagSearch","sendShowConversation","getShowConversation","sendShowApplication","getShowApplication","addConversationNotes","getCampaignSegment","addConversationEmail","addConversationTask","leadImportFile","leadImportFileUpload","fileName","lead_import_file_id","formData","FormData","append","headers","HttpHeaders","Authorization","put","downloadExportFile","responseType","downloadExportPDPFile","downloadLeadExportCurrentFile","sendFormChangeAlert","getFormChangeAlert","getContactPermissionHistory","getNotesHistory","addApplicationNote","getApplicationNoteView","getDispoApplication","sendErrorAlert","getErrorAlert","getApplicationMethod","getPlanDetails","plan_data","saveWithStatus","appUpdateObj","updatePlanDetails","getStatusHistory","getAdvisor","advisorSearch","triggerSilverPopCall","getAffiliateList","connectAdvisor","referral_id","sendShowRelated","getShowRelated","sendRelatedTable","getRelatedTable","sendApplicationTable","getApplicationTable","sendRefreshConvTable","getRefreshConvTable","getSOASearch","getSOAPDF","deleteDrug","drugId","addDrug","bulkAddDrugs","selectDrug","getClientCredentials","leadAicoePdf","status","of","undefined","enrollmentPDF","getClientFirstVistiDate","getCarrierPlanGeography","target","generateSearchCriteria","searchCriteria","simpleSearch","property","indexOf","hraEnroll","hraCheckStatus","ViewSwapperService","setPanel","sidenav","panel","setContentVcf","viewContainerRef","vcf","createView","clear","createEmbeddedView","toggle","ReportsService","getReportData","getCSVData","reportAPI","report_type","reportRequestByDrug","downloadLeadsByDrug","reportRequestByPharmacy","downloadLeadsByPharmacy","reportRequestByDisruption","downloadLeadsByDisruption","UserService","_authService","_loggedInUserSettings$","_cachedLoggedInUserSettings","getUserView","userId","getUserRoles","getUserDetailsAndPermissions","observe","updateExistingUser","getUserAccess","getUserData","getUserSettings","updateUserSettings","userCredentials","updateExistingCredentials","credentialsId","credentialsParams","deleteUser","addCarrier","deleteCarrier","getAllUsers","accountOwnerNameSearch","bulkDeleteUser","userIds","userInvite","selfServiceConfig","selfServiceConfigUpdate","userStateLicenseNumber","HeaderModalsModule","DatePipe","imports","CommonModule","SharedModule","_r1","ctx_r1","clearMessage","elem_r3","elem_r4","product_type_desc","elem_r5","AgentWritingNumberComponent_mat_optgroup_23_mat_option_1_Template","inactiveProduct","elem_r6","AgentWritingNumberComponent_mat_optgroup_24_mat_option_1_Template","productType","year","year1","AgentWritingNumberComponent","adminService","_carrierSvc","fb","userService","leadService","toastMsgService","productName","carrierData","showDefault","activeProduct","agentWritingForm","group","FormControl","Validators","required","agent_writing_number","certification_year","getAgentCarrier","getCertificationYear","agentCarrierSubs","carrier_id","elem","patchValue","complete","productTypeSubs","product_type_id","campaignSegmentSubs","campaign_id","filteredData","filter","res","selectedCarrierId","listActiveBySubs","activeNames","productTypeId","selectedProductId","addAgent","valid","addCarrierSubs","getFullYear","timer","resetMessage","ngOnDestroy","unsubscribe","i6","i7","AgentWritingNumberComponent_ng_container_9_Template","AgentWritingNumberComponent_mat_option_16_Template","AgentWritingNumberComponent_mat_option_22_Template","AgentWritingNumberComponent_mat_optgroup_23_Template","AgentWritingNumberComponent_mat_optgroup_24_Template","AgentWritingNumberComponent_div_29_Template","invalid","DeleteAgentComponent","deleteIds","agentToDelete","isLoading","getAllDeleteIds","push","user_carrier_id","deleteAgent","deleteCarrierSubs","user_carrier_ids","showErrorMessage","DeleteAgentComponent_div_1_Template","DeleteAgentComponent_app_sms_notice_banner_2_Template","update","userProfileForm","_r3","UserProfileComponent_ng_template_11_ng_container_0_Template","_c3","userDetailArray","accountDetail","account_owner_user_id","isAccountOwner","userData","_r4","active","_c4","authService","role_name","UserProfileComponent_mat_select_68_mat_option_1_Template","rolesData","UserProfileComponent_div_103_mat_error_10_Template","tmp_5_0","_r7","hideShowPassword","UserProfileComponent_div_104_mat_form_field_4_mat_error_6_Template","inputTypeCurrent","showCurrentPassword","tmp_8_0","errors","UserProfileComponent_div_104_mat_form_field_4_Template","_r6","UserProfileComponent_div_104_mat_error_17_Template","UserProfileComponent_div_104_div_18_Template","isFromAdmin","inputTypeNew","showNewPassword","inputTypeConfirm","showConfirmPassword","tmp_10_0","confirmedValidator","tmp_11_0","pattern","_r8","openAgentPopup","UserProfileComponent_div_105_div_1_button_4_Template","UserProfileComponent_div_105_div_1_Template","isAgentWritingNumber","_r9","openMenu","_c5","showSubmenu","UserProfileComponent_div_108_button_1_Template","_r11","_r12","deleteAgentPopup","_r10","cm_sync_ignore","UserProfileComponent_div_109_div_6_Template","UserProfileComponent_div_109_button_7_Template","UserProfileComponent_div_109_button_8_Template","row_r14","_r13","$implicit","checkboxStates","getRowId","UserProfileComponent_ng_container_116_th_1_Template","UserProfileComponent_ng_container_116_td_2_Template","row_r15","carrier_full_name","row_r16","row_r17","row_r18","_r19","captureClose","_r20","_r21","UserProfileComponent","headerService","datePipe","ref","momentService","commonService","toasMsgService","_componentDestroyed$","agentWritingNumberArray","requests_list","applicationDataSource","MatTableDataSource","phone_content","email_content","address_content","applicationDisplayedColumns","state_data","hasChange","submitted","totalRecords","hideStatus","isLoggedInUser","isCommonFlag","initialChange","checkError","controlName","errorName","controls","hasError","cmSyncIgnore","splice","gender","company","phones","array","newPhones","emails","newEmail","addresses","newAddress","username","registration_date","last_access_date","npn","account_business_name","last_active_date_local","reference_id","currentpassword","compose","newpassword","confirmpassword","validator","ConfirmedValidator","addControl","isFormChangeSubs","response","ngOnChanges","onCreateGroupFormValueChange","paginator","agentWritingPagination","sort","agentWritingSort","ngAfterContentInit","initialValue","valueChanges","takeUntil","dirty","Object","keys","some","key","hasChangeDetect","deletePhones","deletePhone","phone_class","deleteAddresses","deleteAddress","address_class","deleteEmails","deleteEmail","email_class","getEmailTypeData","getPhoneTypeData","getAddressTypeData","getUserDetails","addEventListener","pristine","returnValue","disable","enable","phone_type","minLength","phone_ext","phone_id","email_type","address_type_id","address_id","apo","country_id","county_fips","zip_4","getUserDetailSubs","usercredentials","login","sms_id","setControl","setExistingPhone","setExistingEmail","setExistingAddress","getAgentWritingNumber","obj1","getUserCarrierSubs","result","a","b","localeCompare","sortState","direction","sortChange","emit","getAccountDetailSubs","account_owner_fname","account_owner_lname","getUserRolesSubs","newAddressObj","newEmailObj","newPhoneObj","addressArray","defaultAddress","request","forEach","element","getAddresses","emailArray","defaultEmail","getEmails","phoneArray","defaultPhone","getPhones","forkJoin","updateUserProfileData","getRawValue","roleName","role_selected","ein","environment_id","serverDateTime","expire_date","appointment_count","password","context","user_credentials_id","updatePasswordSubs","new_password","userUpdate","setErrors","default_address_id","default_phone_id","default_email_id","loginName","generateRandomPassword","newUserSubs","hideMsg","closeAll","markAsPristine","userID","updateUserSubs","dataChanged","userDetailsRoleSubs","hash","i","charAt","Math","floor","lowerletters","random","digits","upperletters","splChar","getEmailTypeSubs","email_types","getPhoneTypeSubs","phone_types","getAddressTypeSubs","address_type","afterClosed","row","index","ConfirmDeleteComponent","unsavedChangesNotice","deleteAddressSubs","deleteEmailSubs","deletePhoneSubs","i8","i9","i10","i11","i12","viewQuery","MatPaginator","UserProfileComponent_div_9_Template","UserProfileComponent_div_10_Template","UserProfileComponent_ng_template_11_Template","UserProfileComponent_mat_error_24_Template","UserProfileComponent_mat_error_29_Template","UserProfileComponent_p_30_Template","UserProfileComponent_div_44_Template","UserProfileComponent_div_45_Template","UserProfileComponent_div_46_Template","UserProfileComponent_h4_53_Template","UserProfileComponent_mat_slide_toggle_54_Template","UserProfileComponent_input_67_Template","UserProfileComponent_mat_select_68_Template","UserProfileComponent_div_103_Template","UserProfileComponent_div_104_Template","UserProfileComponent_div_105_Template","UserProfileComponent_div_108_Template","UserProfileComponent_div_109_Template","UserProfileComponent_ng_container_116_Template","UserProfileComponent_th_118_Template","UserProfileComponent_td_119_Template","UserProfileComponent_th_121_Template","UserProfileComponent_td_122_Template","UserProfileComponent_th_124_Template","UserProfileComponent_td_125_Template","UserProfileComponent_th_127_Template","UserProfileComponent_td_128_Template","UserProfileComponent_tr_129_Template","UserProfileComponent_tr_130_Template","UserProfileComponent_button_136_Template","UserProfileComponent_button_137_Template","UserProfileComponent_button_138_Template","UserProfileComponent_button_139_Template","elseBlock_r22","tmp_9_0","_c2","StartEndTimeValidator","startTime","endTime","formGroup","start_Time","end_Time","start_Date","end_Date","timeValidator","_r2","ctx_r2","showSearchPanel","removeSelectedLead","_r5","leadName","goToLeadLedger","isFromCalendar","AddAppointmentComponent_div_6_mat_icon_button_8_Template","AddAppointmentComponent_div_6_mat_icon_button_9_Template","_c0","isAssignLead","hideSearchPanel","deleteApt","copyAppointment","isButtonClicked","isNewApt","AddAppointmentComponent","formBuilder","calendarService","router","addEvent","EventEmitter","aptChange","lead_detail","toolbar","displayAssignLead","isAddAppointment","clearSearch","isConversationApt","editor","Editor","addAppointmentForm","createFormConversationTable","createForm","selectedLead","starTdate","date","d","hr","m","lastHr","hour","hours","min","minutes","dismiss","allEndTime","allStartTime","selectLead","formValue","payLoad","toISOString","isAddConvAptSubs","closeModal","isAddAptSubs","activeModule","isAddDelSubs","preventDefault","destroy","inputs","outputs","features","AddAppointmentComponent_app_sms_notice_banner_1_Template","AddAppointmentComponent_div_5_Template","AddAppointmentComponent_div_6_Template","AddAppointmentComponent_div_7_Template","stopPropagation","AddAppointmentComponent_button_54_Template","AddAppointmentComponent_button_55_Template","AddAppointmentComponent_button_59_Template","startDate_r12","endDate_r13","ctx_r0","tabName","isMode","isAppointment","tabClick","sendAptChange","onAdd","sendTaskChange","selectedTabIndex","calendarData","AddEventComponent_ng_container_8_div_1_Template","AddEventComponent_ng_container_8_div_2_Template","AddEventComponent","taskChange","tab","textLabel","AddEventComponent_h2_2_Template","AddEventComponent_h2_3_Template","AddEventComponent_ng_container_7_Template","AddEventComponent_ng_container_8_Template","AddTaskComponent_ng_container_5_div_1_Template","AddTaskComponent_div_6_mat_icon_button_8_Template","AddTaskComponent_div_6_mat_icon_button_9_Template","deleteTask","copyTask","addTask","AddTaskComponent","isEditAppointment","isAddTask","isDateTime","isConversationTask","addTaskForm","createCoversationTaskForm","completed","convertTaskTime","convertedTime","dateCheck","timeCheck","code","isAddConvTaskSubs","isAddTaskSubs","AddTaskComponent_app_sms_notice_banner_2_Template","AddTaskComponent_ng_container_5_Template","AddTaskComponent_div_6_Template","AddTaskComponent_div_7_Template","AddTaskComponent_button_41_Template","AddTaskComponent_button_42_Template","AddTaskComponent_button_46_Template","dueDate_r12","row_r2","row_r3","row_r4","row_r5","row_r6","row_r7","row_r8","dispo_name","row_r10","ctx_r10","selectRow","selectedRow","AssignLeadComponent_ng_container_17_th_3_Template","AssignLeadComponent_ng_container_17_td_4_Template","AssignLeadComponent_ng_container_17_th_6_Template","AssignLeadComponent_ng_container_17_td_7_Template","AssignLeadComponent_ng_container_17_th_9_Template","AssignLeadComponent_ng_container_17_td_10_Template","AssignLeadComponent_ng_container_17_th_12_Template","AssignLeadComponent_ng_container_17_td_13_Template","AssignLeadComponent_ng_container_17_th_15_Template","AssignLeadComponent_ng_container_17_td_16_Template","AssignLeadComponent_ng_container_17_th_18_Template","AssignLeadComponent_ng_container_17_td_19_Template","AssignLeadComponent_ng_container_17_th_21_Template","AssignLeadComponent_ng_container_17_td_22_Template","AssignLeadComponent_ng_container_17_tr_23_Template","AssignLeadComponent_ng_container_17_tr_24_Template","dataSource","displayedColumns","AssignLeadComponent","assignLeadArray","isSearch","fName","lName","isHavingData","changes","assignLeadPagination","searchLead","paramsObj","leadSearchSubs","AssignLeadComponent_div_13_Template","AssignLeadComponent_div_14_Template","AssignLeadComponent_ng_container_15_Template","AssignLeadComponent_ng_container_17_Template","f2fSOA","isButtonClick","luf","f2fForms","minDate","maxDate","add","checkAptDate","futureDate","isAfter","getSoAeSignatureSubs","esignature_id","getClientInviteSubs","success","F2fSoaComponent_mat_error_20_Template","F2fSoaComponent_button_43_Template","picker_r4","PermissionHistoryComponent_td_14_span_1_Template","PermissionHistoryComponent_td_14_span_2_Template","PermissionHistoryComponent_td_14_span_3_Template","PermissionHistoryComponent_td_14_span_4_Template","row_r1","lead_contact_permission_type","PermissionHistoryComponent_td_17_span_1_Template","PermissionHistoryComponent_td_17_span_2_Template","lead_contact_permission_to_contact","lead_contact_permission_change_date","lead_contact_permission_change_user","PermissionHistoryComponent","permission","contactDisplayedColumns","historyData","contactDataSource","sortingDataAccessor","item","contactPaginator","contactSort","PermissionHistoryComponent_th_13_Template","PermissionHistoryComponent_td_14_Template","PermissionHistoryComponent_th_16_Template","PermissionHistoryComponent_td_17_Template","PermissionHistoryComponent_th_19_Template","PermissionHistoryComponent_td_20_Template","PermissionHistoryComponent_th_22_Template","PermissionHistoryComponent_td_23_Template","PermissionHistoryComponent_th_25_Template","PermissionHistoryComponent_td_26_Template","PermissionHistoryComponent_tr_27_Template","PermissionHistoryComponent_tr_28_Template","updateLead","gender_r5","marital_r6","contact_r7","relation_r8","contact_r10","relation_r11","LeadDetailComponent_ng_template_11_ng_container_100_mat_hint_8_Template","LeadDetailComponent_ng_template_11_ng_container_100_mat_option_13_Template","LeadDetailComponent_ng_template_11_ng_container_100_mat_option_22_Template","clearEmergencyContact","leadDeatilsForm","emergency_name","contact_data","relation_data","el_r12","abbreviation","source_r13","lead_vendor_id","lead_vendor_code","b2b_r14","tCode_r15","tracking_code","LeadDetailComponent_ng_template_11_mat_form_field_159_ng_container_4_mat_option_1_Template","source_code","LeadDetailComponent_ng_template_11_mat_form_field_159_ng_container_4_Template","LeadDetailComponent_ng_template_11_mat_form_field_159_mat_option_5_Template","LeadDetailComponent_ng_template_11_mat_form_field_159_mat_error_6_Template","checkForPermissions","tracking_data","camp_r16","campaign_code","seg_r17","campaign_segment_code","type_r18","lead_type_id","lead_type_desc","product_r19","product_type_name","ins_r20","lead_instruction_text","LeadDetailComponent_ng_template_11_ul_187_li_1_Template","lead_instructions","tag_r22","removeTag","tag_name","tag_r23","LeadDetailComponent_ng_template_11_p_0_Template","LeadDetailComponent_ng_template_11_mat_hint_15_Template","filterAlphaCharacters","LeadDetailComponent_ng_template_11_mat_hint_24_Template","LeadDetailComponent_ng_template_11_mat_error_30_Template","LeadDetailComponent_ng_template_11_mat_option_35_Template","LeadDetailComponent_ng_template_11_mat_option_40_Template","checkFeetHeight","checkInchesHeight","checkWeight","LeadDetailComponent_ng_template_11_app_phone_63_Template","LeadDetailComponent_ng_template_11_app_email_64_Template","LeadDetailComponent_ng_template_11_app_address_65_Template","LeadDetailComponent_ng_template_11_mat_hint_74_Template","LeadDetailComponent_ng_template_11_mat_option_79_Template","LeadDetailComponent_ng_template_11_mat_option_88_Template","clearPreferredContact","radioChange","LeadDetailComponent_ng_template_11_ng_container_100_Template","LeadDetailComponent_ng_template_11_mat_hint_109_Template","LeadDetailComponent_ng_template_11_mat_hint_114_Template","LeadDetailComponent_ng_template_11_mat_error_120_Template","LeadDetailComponent_ng_template_11_mat_error_125_Template","LeadDetailComponent_ng_template_11_mat_hint_131_Template","LeadDetailComponent_ng_template_11_mat_option_139_Template","LeadDetailComponent_ng_template_11_mat_option_147_Template","b2bChange","LeadDetailComponent_ng_template_11_mat_option_158_Template","LeadDetailComponent_ng_template_11_mat_form_field_159_Template","LeadDetailComponent_ng_template_11_mat_form_field_160_Template","changeCampaign","LeadDetailComponent_ng_template_11_mat_option_167_Template","LeadDetailComponent_ng_template_11_mat_option_172_Template","LeadDetailComponent_ng_template_11_mat_option_178_Template","LeadDetailComponent_ng_template_11_mat_option_183_Template","LeadDetailComponent_ng_template_11_ul_187_Template","LeadDetailComponent_ng_template_11_mat_chip_row_194_Template","addTag","LeadDetailComponent_ng_template_11_mat_error_197_Template","selected","LeadDetailComponent_ng_template_11_mat_option_200_Template","tags","openPermissionHistory","gender_data","marital_data","contact_name","isEmergency","medicare_name","hicn","partAB_MinDate","tmp_34_0","tmp_36_0","medicaid_number","lead_vendor_data","b2bPartner_data","lodEnabled","campaign_segment","lead_type","product_type","auto_r25","chipList_r24","separatorKeysCodes","getTagName","filteredTags","agent_fname","agent_lname","disposition_date_r26","_r28","_r29","_r27","LeadDetailComponent_ng_container_14_button_3_Template","LeadDetailComponent_ng_container_14_button_4_Template","_toasMsgService","addOnBlur","newTag","invalidRuleViolation","ENTER","COMMA","mname","CheckInvalidDate","CheckDobDate","marital_status","height_feet","height_inches","weight","ssn","medicaid_state","ValidateDate","source_vendor_id","source_adcode","do_not_email","do_not_call","do_not_text","do_not_mail","disposition_date","dispo_log","contact_phone_type","contact_phone","contact_relationship","isEmergencyContact","emergency_phone_type","emergency_phone","emergency_relationship","stateData","acc","accSettings","lead_manage_tracking_number_feature_enabled","getLeadVendor","getB2BPartner","confirm","stop","replace","isLeadDEtailsSubs","emergencyRelationship","relationship","prefContactRelationship","emergency_phone_id","contact_phone_id","height","phoneFormatter","emitEvent","hasPermission","system_level_lead_vendor","leadVendorSearchSubs","getleadTypeSubs","getCampaignCodeSubs","getb2bpartnerSubs","getProductTypeSubs","getTagSearchSubs","tag_data","tag","_filter","option","tagInput","nativeElement","tagName","filterValue","toLowerCase","getCampaignSegmentSubs","isValidNumber","number","isNumeric","n","isNaN","parseFloat","isFinite","county","getTrackingCodeSubs","trim","chipInput","getContactPermissionHistorySubs","autoFocus","parseInt","_cleanUpPhoneEmailData","age","diff","_cleanupFormData","newPhoneEmailObj","findIndex","x","alphaOnlyValue","setValue","saveLeadDetailsSubs","LeadDetailComponent_ng_container_4_Template","LeadDetailComponent_button_5_Template","LeadDetailComponent_div_6_Template","LeadDetailComponent_ng_container_9_Template","LeadDetailComponent_ng_container_10_Template","LeadDetailComponent_ng_template_11_Template","LeadDetailComponent_ng_container_14_Template","contentLoaded_r30","lastUpdatedDate","leadLastUpdatedBy","element_r2","keyField","element_r3","oldVal","element_r4","newVal","LeadLastUpdatedComponent","_dataSelfService","showLeadLastUpdated","lastUpdatedByUser","getLastUpdated","lead_last_updated","lead_last_updated_by","Updated","updates","new","old","updatedDataSource","console","LeadLastUpdatedComponent_ng_container_5_Template","LeadLastUpdatedComponent_th_11_Template","LeadLastUpdatedComponent_td_12_Template","LeadLastUpdatedComponent_th_14_Template","LeadLastUpdatedComponent_td_15_Template","LeadLastUpdatedComponent_th_17_Template","LeadLastUpdatedComponent_td_18_Template","LeadLastUpdatedComponent_tr_19_Template","LeadLastUpdatedComponent_tr_20_Template","_c1","IEmailType","Home","Work","Other","IPhoneType","Mobile","Fax","b2b_r4","tCode_r5","NewLeadComponent_div_24_ng_container_11_mat_option_1_Template","NewLeadComponent_div_24_mat_option_5_Template","NewLeadComponent_div_24_mat_error_6_Template","NewLeadComponent_div_24_ng_container_11_Template","NewLeadComponent_div_24_mat_error_12_Template","phoneType_r6","emailType_r7","state_r9","changeOption","county_r10","county_name","NewLeadComponent_mat_optgroup_62_mat_option_1_Template","state_name","counties","state_r11","addLead","NewLeadComponent","_datePipe","_fb","_leadService","leadData","statesData","states","isb2bPartner","phoneTypes","emailTypes","addLeadForm","address","notes","setValidators","updateValueAndValidity","addLeadData","form","Number","part_a_date","part_b_date","showToast","noteSave","fullErrorMessage","r","hasOwnProperty","e","MESSAGE","noteValue","note","closeDialog","msg","getCounties","countyStateAlert","subtract","startOf","setCounty","country","changeState","checkCountyExists","find","CompareStringsCaseInsensitive","NewLeadComponent_ng_container_9_Template","NewLeadComponent_mat_hint_16_Template","NewLeadComponent_mat_error_17_Template","NewLeadComponent_mat_hint_22_Template","NewLeadComponent_mat_error_23_Template","NewLeadComponent_div_24_Template","NewLeadComponent_mat_option_28_Template","NewLeadComponent_mat_error_31_Template","NewLeadComponent_mat_option_34_Template","NewLeadComponent_mat_error_37_Template","NewLeadComponent_mat_error_43_Template","NewLeadComponent_mat_optgroup_62_Template","NewLeadComponent_mat_option_68_Template","NewLeadComponent_button_77_Template","NewLeadComponent_button_78_Template","remoteForms","RemoteSoaComponent_ng_container_13_mat_error_9_Template","picker_r3","emails_r4","RemoteSoaComponent_div_15_mat_option_5_Template","updateLeadEmail","generatingDraft","remoteSOA","isEmailSOA","userDetails","type_r7","email_disclaimer_text_with_counts","RemoteSoaComponent_div_27_div_54_div_1_Template","groupByCategory","item_r8","RemoteSoaComponent_div_27_p_45_Template","RemoteSoaComponent_div_27_p_48_Template","RemoteSoaComponent_div_27_p_49_Template","RemoteSoaComponent_div_27_p_50_Template","RemoteSoaComponent_div_27_div_54_Template","SENDER_EMAIL","isGenerateDraft","leaddefault_email_type","leadEmail","emailIds","getDisclaimerText","createEmailDraftSubs","groupByPlanYear","RemoteSoaComponent_ng_container_12_Template","RemoteSoaComponent_ng_container_13_Template","RemoteSoaComponent_div_15_Template","RemoteSoaComponent_button_25_Template","RemoteSoaComponent_button_26_Template","RemoteSoaComponent_div_27_Template","carrierName","quickLinkText","SingleSignOnComponent","_document","_formBuilder","hashFormControl","userIdFormControl","loginFormControl","relayStateFormControl","SAMLResponseFormControl","_ssoData","_ssoURL","url","plan","carrier_name","Array","isArray","ssoiGoEAppRelayState","RelayState","ssoiGoEAppSAMLResponse","SAMLResponse","ssoForm","submitSSO","httpMethod","method","toUpperCase","ssoValues","fromEntries","entries","_","v","createElement","action","inputName","appendChild","body","submit","DOCUMENT","SingleSignOnComponent_p_9_Template","SingleSignOnComponent_p_10_Template","RegistrationService","registerUser","formValues","registrationApi","_encodeData","getUserAgreement","validateUrl","urlEncodedDataPairs","join","document","UserAgreementComponent","_registrationService","_sanitizer","userAgreement","bypassSecurityTrustHtml","agreement","UserAgreementComponent_ng_container_14_Template","UserAgreementComponent_ng_template_15_Template","regForm_r2","PhonePipe","rawNum","formattedPhone","split","pure","loadingMessage","accountOwnerName","accountOwnerEmail","accountOwnerPhone","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_span_11_span_2_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_ng_container_5_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_ng_template_6_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_span_9_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_span_10_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_span_11_Template","closeNotice","displayInvalidAcct","displayRoleExpired","displayAcctInfo","infoIcon_r3","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_3_ng_container_4_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_3_ng_template_5_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_3_p_7_Template","errorIcon_r6","registrationMessage$","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_1_Template","UserRegistrationComponent_ng_template_5_ng_container_1_mat_card_3_Template","registrationAttempt","state_r8","inProgress","submitForm","UserRegistrationComponent_ng_template_5_form_3_mat_error_14_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_15_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_25_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_26_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_31_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_32_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_59_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_60_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_65_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_66_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_72_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_73_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_79_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_90_Template","UserRegistrationComponent_ng_template_5_form_3_ng_container_96_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_97_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_103_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_104_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_113_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_114_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_123_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_132_Template","UserRegistrationComponent_ng_template_5_form_3_mat_error_138_Template","UserRegistrationComponent_ng_template_5_form_3_ng_container_140_Template","UserRegistrationComponent_ng_template_5_form_3_mat_card_actions_146_Template","userRegistrationForm","confirmPwd","statesList","mphone","fphone","hasNoNPN","disabledAccount","UserRegistrationComponent_ng_template_5_p_0_Template","UserRegistrationComponent_ng_template_5_ng_container_1_Template","UserRegistrationComponent_ng_template_5_form_3_Template","routes","component","UserRegistrationComponent","_activeRoute","_toastMsg","_lastEnteredNpn","_loginPattern","_namePattern","_pwordPattern","_phonePattern","componentLoaded","logo","maxLength","website","validators","missingNPN","queryParams","_token","q","cobrandAccount","_checkURLValidation","setLogo","logoSource","markAllAsTouched","_checkUserAgreement","_showRegistrationMessage","cobrandInfo","cobrand","cobrandOwner","cobrand_asset_urls","logo_3","scrollTo","top","behavior","_registerUser","bSignature","source","fromURL","_processRegistrationResponse","disabled","UserRegistrationComponent_ng_container_4_Template","UserRegistrationComponent_ng_template_5_Template","regForm_r9","RegistrationRoutingModule","RouterModule","forChild","RegistrationModule","provide","ErrorStateMatcher","useClass","ShowOnDirtyErrorStateMatcher","DateDirective","el","renderer","addClass","setStyle","setAttribute","onKeyDown","keyCode","ctrlKey","metaKey","shiftKey","onkeyup","val","String","test","substring","concat","includes","hostBindings","DirectivesModule","DisableAutofillDirective","ngAfterViewInit","randomString","slice","InputMaxLengthDirective","ngModel","appInputMaxLength","destroyed$","onChange","div","classList","insertBefore","parentNode","nextSibling","remove","NumbersOnlyDirective","_el","onInputChange","initalValue","PhoneNumberMaskDirective","ngControl","onModelChange","keydownBackspace","backspace","match","valueAccessor","writeValue","SocialSecurityMaskDirective","matchingControlName","matchingControl","county_r1","ConfirmDeleteComponent_div_5_ng_container_1_ul_4_Template","state_r2","ConfirmDeleteComponent_div_5_ng_container_1_Template","yesDelete","ConfirmDeleteComponent_div_6_button_1_Template","ConfirmDeleteComponent_div_6_button_2_Template","ConfirmDeleteComponent_div_6_ng_template_3_Template","noConfirm_r5","ConfirmDeleteComponent_span_3_Template","ConfirmDeleteComponent_div_5_Template","ConfirmDeleteComponent_div_6_Template","ConfirmDeleteComponent_div_7_Template","AgePipePipe","today","birthdate","ClickPhonePipe","SafeHtmlPipe","sanitizer","html","LaunchdarklyService","init","kind","env","anonymous","_client","initialize","launchDarklyClientId","getFlag","flagKey","defaultValue","fetchFlag","on","waitUntilReady","then","variation","_this","_asyncToGenerator","CommonService","_launchDarklySvc","_accountSvc","_userService","alert","expand","isDashboard","_isLoader","subject","inAppNavigation","configurableSettings","configurableSettingsFlag","additionalFilterDataObj","userSettings$","accountSettings$","_userDetailSub$","_userDetails","flag","isConfigSettingflagAvailable","getLoggedInUserSettings","cachedUserSettings","_loggedInUserSettings","getLoggedInAccountSettings","force","cachedAccountSettings","_loggedInAccountSettings","setAccountSettings","observable","settings","updateLoggedInAccountSettings","setLoading","getLoading","setDashboardUI","isExpand","getDashboardUI","setAccountId","_accountId","getAccountId","setAlert","info","getAlert","formatYYYYMMDD","toServerDate","formArray","FormArray","emailDataFilled","phoneDataFilled","formatPhoneNumber","str","addressDataFilled","formatSocialSecurity","getAdminAccountEmails","getAdminAccountPhones","printContent","printContents","popupWin","write","focus","print","getAdminAccountAddresses","setExistingAdminPhone","setExistingAdminEmail","setExistingAdminAddress","setMenuExpand","getMenuExpand","firstDayInPreviousMonth","setDate","setMonth","getMonth","lastDayInPreviousMonth","formatDate","getStateInfoByID","stateID","singleStateInfoArray","SingleStateInfoObject","getStateNameByID","stateInfo","displayMMMTZZDateTime","lastPart","tz","pop","displayDate","mDate","dateIsToday","isSame","truncateChar","charLimit","charlimit","leadExportParseCSV","csv","arrData","timestampFormat","drugFullName","downloadLink","blob","Blob","URL","createObjectURL","download","click","removeChild","reduce","product","plan_year","formDisclaimer","disclaimerData","callCMSPostCall","CMSLink","getQuoteURLs","filteredProducts","quoteProductsURL","partd","medadvantage","medsup","hospindem","dental","fex","life","ltc","productFilter","quoteProductsURLArray","values","reDirectQuote","additionalFilterData","uniqueCarriersArray","from","Set","quoteResult","stateCounties","control","AC","isValid","dateVaidator","invalidDate","formatLeadExportData","notice","notice_text","str1","str2","sensitivity","MomentService","time","h","convertAndFormatZuluTimes","dateTime","convertedDataArray","dataObj","convertedEndTime","convertedStartTime","dateStartTime","dateEndTime","ToastMsgService","isExpanded","isFromComponent","_showMessage","showWarning","_clearMessage","msgObj","messageType","warning","announcement","_timeout","clearTimeout","MaterialModule","MAT_FORM_FIELD_DEFAULT_OPTIONS","useValue","floatLabel","appearance","MAT_DIALOG_DEFAULT_OPTIONS","hasBackdrop","disableClose","restoreFocus","maxWidth","MAT_TABS_CONFIG","stretchTabs","dynamicHeight","animationDuration","MAT_TOOLTIP_DEFAULT_OPTIONS","position","showDelay","MAT_CARD_CONFIG","MAT_CHECKBOX_DEFAULT_OPTIONS","clickAction","MatToolbarModule","MatCardModule","MatInputModule","MatFormFieldModule","MatButtonModule","MatAutocompleteModule","MatButtonToggleModule","MatCheckboxModule","MatChipsModule","MatStepperModule","MatDatepickerModule","MatDialogModule","MatDividerModule","MatExpansionModule","MatGridListModule","MatIconModule","MatListModule","MatMenuModule","MatNativeDateModule","MatPaginatorModule","MatProgressBarModule","MatProgressSpinnerModule","MatRadioModule","MatSelectModule","MatSidenavModule","MatSliderModule","MatSlideToggleModule","MatSnackBarModule","MatSortModule","MatTableModule","MatTabsModule","MatTooltipModule","MatBadgeModule","DragDropModule","CurrencyPipe","FormsModule","ReactiveFormsModule","FullCalendarModule","NgxEditorModule","content_r2","addAddressType","AddressComponent_ng_container_10_button_1_Template","content_r5","ctx_r6","address_r8","i_r9","clearAddress","refreshAddress","addressCheckBoxvalue","country_r14","county_r15","AddressComponent_ng_container_12_mat_form_field_37_mat_optgroup_5_mat_option_1_Template","AddressComponent_ng_container_12_mat_form_field_37_mat_option_4_Template","AddressComponent_ng_container_12_mat_form_field_37_mat_optgroup_5_Template","countiesData","AddressComponent_ng_container_12_mat_option_6_Template","AddressComponent_ng_container_12_mat_error_11_Template","AddressComponent_ng_container_12_button_12_Template","AddressComponent_ng_container_12_button_13_Template","AddressComponent_ng_container_12_mat_checkbox_14_Template","AddressComponent_ng_container_12_mat_error_24_Template","AddressComponent_ng_container_12_mat_option_30_Template","AddressComponent_ng_container_12_mat_error_31_Template","AddressComponent_ng_container_12_mat_error_36_Template","AddressComponent_ng_container_12_mat_form_field_37_Template","tmp_12_0","tmp_22_0","tmp_26_0","tmp_32_0","AddressComponent","rootFormGroup","deletedItems","isErrorSubs","addresseListArr","touched","leadLedgerSubs","addressForm","formArrayName","formArraySubs","ele","addressType","checkedIndex","checkbox","countiesByZipSubs","AddressComponent_ng_container_10_Template","AddressComponent_ng_container_12_Template","addressMenu_r16","addEmailType","EmailComponent_ng_container_10_button_1_Template","content_r4","ctx_r5","email_r7","i_r8","clearEmail","refreshEmail","emailCheckBoxvalue","EmailComponent_ng_container_12_mat_option_6_Template","EmailComponent_ng_container_12_mat_error_11_Template","EmailComponent_ng_container_12_button_12_Template","EmailComponent_ng_container_12_button_13_Template","EmailComponent_ng_container_12_mat_checkbox_14_Template","EmailComponent","emailListArr","getLeadLedgerSubs","emailForm","getAdminFormArraySubs","emailType","EmailComponent_ng_container_10_Template","EmailComponent_ng_container_12_Template","emailMenu_r11","addPhoneType","PhoneComponent_ng_container_10_button_1_Template","phone_r7","clearPhone","refreshPhone","phoneCheckBoxvalue","isDisabled","PhoneComponent_ng_container_12_mat_option_6_Template","PhoneComponent_ng_container_12_mat_error_11_Template","PhoneComponent_ng_container_12_button_16_Template","PhoneComponent_ng_container_12_button_17_Template","PhoneComponent_ng_container_12_mat_checkbox_18_Template","PhoneComponent","phonesListArr","phoneForm","phoneType","PhoneComponent_ng_container_10_Template","PhoneComponent_ng_container_12_Template","phoneMenu_r11","SmsNoticeBannerComponent_ng_container_2_app_sms_spinner_1_Template","SmsNoticeBannerComponent_ng_container_2_mat_icon_2_Template","SmsNoticeBannerComponent_ng_container_2_mat_icon_3_Template","SmsNoticeBannerComponent","showIcon","canDismiss","closeBanner","ngContentSelectors","SmsNoticeBannerComponent_ng_container_2_Template","SmsNoticeBannerComponent_span_5_Template","SmsSpinnerComponent","size","SmsSpinnerComponent_div_12_Template","SmsSpinnerComponent_div_13_Template","production","insfire","PEPro","PROTECTOR_PLUS_DENTAL","TO","CC","JIRA_EMAIL","INTERNET_MARKETING_EMAIL","SSP_URL","initializeAppFactory","_userSvc","Promise","_ref","resolve","reject","pathname","_x","_x2","apply","arguments","PageNotFoundComponent","ServerErrorComponent","DownForMaintenanceComponent","AuthGuard","cookieService","canActivate","route","matcher","consumed","loadChildren","__webpack_require__","bind","IntegrationModule","all","LeadModule","CalendarModule","QuotesModule","ReportsModule","AdminModule","HelpModule","PrivacyPolicyModule","DashboardModule","pathMatch","AppRoutingModule","forRoot","scrollPositionRestoration","onSameUrlNavigation","NotificationService","_reportService","getExportType","noticeTitle","exportType","processExportDownloadNotification","notificationID","onError","downloadExportSub$","_parseCSV","call","displayedMessageFrom","notice_title","checkForCMS","ImportantNoticeComponent","_notificationService","onClick","targetElement","getAttribute","csvDownloadLinkDiv","contains","getQuickNotify","toDate","momentFrom","fromNow","dismissNotify","noticeid","dismissNoticeSubs","notice_ids","ImportantNoticeComponent_app_sms_notice_banner_9_Template","ImportantNoticeComponent_span_13_Template","ImportantNoticeComponent_p_15_Template","ImportantNoticeComponent_div_16_Template","ctx_r4","data_r6","ii_r7","notificationMsg","NotificationComponent_ng_template_14_ng_container_1_ng_container_2_mat_icon_3_Template","NotificationComponent_ng_template_14_ng_container_1_ng_container_2_mat_icon_4_Template","parentIndex","childIndex","NotificationComponent_ng_template_14_ng_container_1_ng_container_2_Template","noti_r9","NotificationComponent_ng_template_14_ng_container_1_Template","notify_data","pastNoticesMessage","dismissed_date","NotificationComponent_ng_template_24_p_1_Template","NotificationComponent_ng_template_24_p_2_Template","NotificationComponent_ng_template_24_p_4_Template","NotificationComponent_ng_template_24_div_5_Template","markAllRead","markRead","NotificationComponent","noticeTODismiss","displayingNoUnreadMessages","disableMarkAsRead","getNotificationOrder","loadPastNotice","getUserNoticeSubs","groupBy","p","mergeMap","group$","cur","arr","toArray","j","NotificationComponent_app_sms_notice_banner_9_Template","NotificationComponent_ng_template_11_Template","NotificationComponent_ng_container_13_Template","NotificationComponent_ng_template_14_Template","NotificationComponent_p_20_Template","NotificationComponent_ng_template_21_Template","NotificationComponent_ng_container_23_Template","NotificationComponent_ng_template_24_Template","NotificationComponent_button_27_Template","NotificationComponent_button_28_Template","showNotificationList_r13","showNotificationHistory_r14","ctx_r3","state_r5","el_r6","month_r7","lead_disp_r8","el_r9","dispo_id","agent_r10","el_r11","tag_r12","el_r13","tag_id","el_r14","leadAgent_r15","disp_r16","el_r17","QuickSearchComponent_ng_template_10_ng_container_2_Template","onTabChange","triggerEvent","QuickSearchComponent_ng_template_10_mat_option_36_Template","QuickSearchComponent_ng_template_10_mat_option_45_Template","QuickSearchComponent_ng_template_10_mat_option_81_Template","QuickSearchComponent_ng_template_10_mat_option_87_Template","QuickSearchComponent_ng_template_10_mat_option_97_Template","QuickSearchComponent_ng_template_10_option_103_Template","drugUpdate","QuickSearchComponent_ng_template_10_mat_error_122_Template","QuickSearchComponent_ng_template_10_mat_error_130_Template","leadPlanCurrent","leadSearchForm","drug_list_updated_flag","QuickSearchComponent_ng_template_10_mat_option_150_Template","monthsArray","dobFrom_r18","dobTo_r19","leadFrom_r20","leadTo_r21","total_lead_dispos","total_agents","total_tags","dateFrom_r22","dateRequired","dateTo_r23","total_app_dispos","QuickSearchComponent","dropDownData","isQuickSearch","tab_index","loggedInUserID","atLeastOne","k","leadViewAssigned","dob_month","dobFrom","dobTo","leadDateFrom","leadDateTo","lead_dispo_id","lead_vendor_source_code","app_dispo_id","has_current_plan_flag","drug_list_updated_date_from","drug_list_updated_date_to","getDropDowndata","dropDownDataSubs","resetForm","agent","lead_date","convertToString","_cleanupSearchCriteria","searchType","closePopover","drugUpdated","QuickSearchComponent_ng_container_9_Template","QuickSearchComponent_ng_template_10_Template","quickSearch_r24","lead_plan_current","updated_drug_list","configurableSettingForm","sspr_configurable_settings","sspup_configurable_settings","ConfigurableSettingsComponent","_toastMessageSvc","apiFail","selfServiceOptionSearch","configOption","self_service_config_option_type_name","self_service_config_option_bit","ssprValue","sspupValue","self_service_config_option_type_id","ConfigurableSettingsComponent_ng_container_9_Template","ConfigurableSettingsComponent_ng_container_12_Template","ConfigurableSettingsComponent_ng_template_13_Template","ConfigurableSettingsComponent_div_15_Template","configurableSettings_r4","behaviorType_r3","phone_dialer_provider_behavior_type_name","PhoneDialerUserComponent_ng_template_15_ol_5_mat_radio_button_15_Template","phoneDialerBehaviorTypes","PhoneDialerUserComponent_ng_template_15_ol_5_Template","phoneDialerUserSettingForm","tmp_3_0","updateUserPhoneDialerSettings","PhoneDialerUserComponent","_setupForm","combineLatest","updatedUserSettings","userSettingsFormPatch","PhoneDialerUserComponent_ng_container_14_Template","PhoneDialerUserComponent_ng_template_15_Template","PhoneDialerUserComponent_div_17_Template","phoneDialerSetting_r5","openSearchDialog","openConfigurableSettings","openPepro","openCallRecordingUserSettings","HeaderComponent_mat_toolbar_0_ng_template_31_ng_template_1_button_5_Template","HeaderComponent_mat_toolbar_0_ng_template_31_ng_template_1_button_6_Template","HeaderComponent_mat_toolbar_0_ng_template_31_ng_template_1_button_7_Template","logout","hasPeproAccess","showPhoneDialer$","HeaderComponent_mat_toolbar_0_ng_template_31_ng_container_0_Template","HeaderComponent_mat_toolbar_0_ng_template_31_ng_template_1_Template","isSubMenuLoading","openedMenu_r8","expandMenu","HeaderComponent_mat_toolbar_0_ng_container_7_Template","HeaderComponent_mat_toolbar_0_ng_template_8_Template","openNotification","HeaderComponent_mat_toolbar_0_ng_template_31_Template","HeaderComponent_mat_toolbar_0_mat_toolbar_row_32_Template","quickSearch_r9","month","day","isLoadingNotifications","notification_count","menu_r10","userName","isProd","showEnvBanner","HeaderComponent","_componentLoaded$","_pollingInterval","_isDismissedNotify","_isNotifyDialog","events","NavigationEnd","navigation","showHeader","_userId","_checkPeproAccess","_getUserDetails","_notificationCount","setInterval","_getNotificationCount","_currentDateTime","details","navigator","userAgent","onResize","innerWidth","_peproSub","getDate","getFormattedValue","domain","userDetailsResponse","notice_outstanding_count","tempPollingInterval","includes_important","localStorage","removeItem","HeaderComponent_mat_toolbar_0_Template","QuickLinksService","getQuickLinks","addAccountQuickLink","addUserQuickLink","updateAccountQuickLink","quicklink_id","updateUserQuickLink","deleteQuickLink","hideQuickLink","revealQuickLink","displaySaveQuickLink","targetLeadsSSO","errorMessage","AddQuickLinkComponent_ng_template_9_app_sms_notice_banner_1_Template","AddQuickLinkComponent_ng_template_9_mat_error_9_Template","AddQuickLinkComponent_ng_template_9_mat_error_10_Template","AddQuickLinkComponent_ng_template_9_mat_error_15_Template","AddQuickLinkComponent_ng_template_9_mat_error_16_Template","AddQuickLinkComponent_ng_template_9_div_17_Template","saveLink","addLinkForm","availableToEdit","AddQuickLinkComponent","qlService","quicklink_hierarchy_type_id","quicklink_hierarchy_type_name","quicklink_title","quicklink_url","quickLinkUrl","startsWith","_showToast","_showError","AddQuickLinkComponent_ng_container_8_Template","AddQuickLinkComponent_ng_template_9_Template","componentLoaded_r4","QuickLinksComponent_ng_container_8_span_3_Template","QuickLinksComponent_ng_container_8_ng_template_4_Template","isSubmit","savingMessage_r1","openSingleSignOn","link_r5","callPost","addLink","confirmDelete","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_span_7_ng_container_1_Template","toggleDisplay","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_span_7_mat_icon_3_Template","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_span_7_mat_icon_4_Template","display","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_mat_icon_2_Template","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_a_4_Template","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_ng_template_5_Template","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_span_7_Template","isEdit","isCMSLink","cmsLink_r9","QuickLinksComponent_ng_template_9_div_4_mat_list_item_1_Template","saveChanges","QuickLinksComponent_ng_template_9_ng_container_1_Template","rearrangeLinks","QuickLinksComponent_ng_template_9_div_4_Template","toggleActionButtons","QuickLinksComponent_ng_template_9_span_9_Template","QuickLinksComponent_ng_template_9_span_10_Template","QuickLinksComponent_ng_template_9_button_14_Template","isFFIGUser","quickLinks","QuickLinksComponent","_auth","_qlService","_toastMsgService","_quicklink_id_active_list","_checkFFIG_User","moveItemInArray","previousIndex","currentIndex","isReload","ql","_hidePhoneDialerLink","link","_checkForCMSLink","quicklinks","returnLinks","_deleteQuickLink","quicklink_id_active_list","_responseToTargetLead","QuickLinksComponent_ng_container_8_Template","QuickLinksComponent_ng_template_9_Template","componentLoaded_r11","openQuickLinks","quickActionsMenu_r4","preventRedirectButton","quickQuoteMenu_r9","redirectTo","admin_url","SidebarComponent_mat_sidenav_1_a_41_span_3_Template","_c13","isActiveUrl","versionNumber","SidebarComponent_mat_sidenav_1_ng_container_7_Template","SidebarComponent_mat_sidenav_1_ng_template_8_Template","SidebarComponent_mat_sidenav_1_div_11_Template","SidebarComponent_mat_sidenav_1_span_15_Template","lead_url","SidebarComponent_mat_sidenav_1_span_19_Template","SidebarComponent_mat_sidenav_1_button_20_Template","calendar_url","SidebarComponent_mat_sidenav_1_span_24_Template","SidebarComponent_mat_sidenav_1_button_25_Template","quote_url","SidebarComponent_mat_sidenav_1_span_29_Template","SidebarComponent_mat_sidenav_1_button_30_Template","form_url","SidebarComponent_mat_sidenav_1_span_34_Template","report_url","SidebarComponent_mat_sidenav_1_span_38_Template","SidebarComponent_mat_sidenav_1_a_41_Template","SidebarComponent_mat_sidenav_1_span_45_Template","SidebarComponent_mat_sidenav_1_span_49_Template","SidebarComponent_mat_sidenav_1_mat_list_item_51_Template","defaultLogo","defaultLogoSmall","quickLinksExpanded_r11","_c6","_c7","_c8","_c9","_c10","_c11","_c12","addQuote","SidebarComponent_ng_template_10_button_4_Template","_r15","SidebarComponent_ng_template_13_button_0_Template","_r14","SidebarComponent","sidenavService","_accountService","showSidebar","navigateURL","_getCobrandDetails","sidePanel","_cobrandSub","isLead","navigateByUrl","skipLocationChange","stopImmediatePropagation","currentUrl","activeTab","redirectToMain","logo_2","logo_1","ViewContainerRef","SidebarComponent_mat_sidenav_1_Template","SidebarComponent_ng_template_10_Template","SidebarComponent_ng_template_13_Template","message_r3","AppComponent_div_6_app_sms_notice_banner_1_Template","AppComponent","_bnIdle","activatedRoute","message$","NavigationStart","NavigationError","isLoading$","_selectedTab","snapshot","paramMap","currentPage","startWatching","isTimedOut","AppComponent_div_1_Template","AppComponent_div_6_Template","ErrorInterceptor","intercept","req","handle","ErrorModule","RefreshTokenService","requestRefresh","HttpsInterceptor","refreshToken","AUTH_HEADER","refreshTokenInProgress","refreshTokenSubject","has","clone","addAuthenticationToken","tap","HttpResponse","debounceTime","switchMap","refreshAccessToken","finalize","refresh_token","HttpParams","getTime","makeid","possible","CoreModule","HTTP_INTERCEPTORS","multi","SidebarModalsModule","AppModule","bootstrap","APP_INITIALIZER","useFactory","deps","CookieService","provideHttpClient","withInterceptorsFromDi","BrowserModule","BrowserAnimationsModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","webpackContext","webpackContextResolve","o","Error","module","exports"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/core/constants.ts","./src/app/core/service/auth.service.ts","./src/app/data/carrier/carrier.service.ts","./src/app/data/data-self-service/data-self-service.service.ts","./src/app/data/services/admin/account.service.ts","./src/app/data/services/admin/admin.service.ts","./src/app/data/services/calendar/calendar.service.ts","./src/app/data/services/header/header.service.ts","./src/app/modules/integration/components/phone-dialer-option/phone-dialer-option.component.ts","./src/app/modules/integration/components/phone-dialer-option/phone-dialer-option.component.html","./src/app/data/services/integration/phone-dialer.service.ts","./src/app/modules/lead/components/vsig-soa/vsig-soa.component.ts","./src/app/modules/lead/components/vsig-soa/vsig-soa.component.html","./src/app/modules/lead/components/lead-missing-requirements/lead-missing-requirements.component.html","./src/app/modules/lead/components/lead-missing-requirements/lead-missing-requirements.component.ts","./src/app/data/services/lead/lead-utility-functions.ts","./src/app/data/services/lead/lead.service.ts","./src/app/data/services/quotes/view-swapper.service.ts","./src/app/data/services/reports/reports.service.ts","./src/app/data/services/user/user.service.ts","./src/app/modal/header-modals/header-modals.module.ts","./src/app/modules/admin/components/users/agent-writing-number/agent-writing-number.component.html","./src/app/modules/admin/components/users/agent-writing-number/agent-writing-number.component.ts","./src/app/modules/admin/components/users/delete-agent/delete-agent.component.html","./src/app/modules/admin/components/users/delete-agent/delete-agent.component.ts","./src/app/modal/header-modals/user-profile/user-profile.component.html","./src/app/modal/header-modals/user-profile/user-profile.component.ts","./src/app/shared/helper/start-end-time.validator.ts","./src/app/modules/calendar/pages/add-appointment/add-appointment.component.html","./src/app/modules/calendar/pages/add-appointment/add-appointment.component.ts","./src/app/modules/calendar/pages/add-event/add-event.component.html","./src/app/modules/calendar/pages/add-event/add-event.component.ts","./src/app/modules/calendar/pages/add-task/add-task.component.html","./src/app/modules/calendar/pages/add-task/add-task.component.ts","./src/app/modules/calendar/pages/assign-lead/assign-lead.component.html","./src/app/modules/calendar/pages/assign-lead/assign-lead.component.ts","./src/app/modules/lead/components/f2f-soa/f2f-soa.component.html","./src/app/modules/lead/components/f2f-soa/f2f-soa.component.ts","./src/app/modules/lead/components/permission-history/permission-history.component.html","./src/app/modules/lead/components/permission-history/permission-history.component.ts","./src/app/modules/lead/components/lead-detail/lead-detail.component.html","./src/app/modules/lead/components/lead-detail/lead-detail.component.ts","./src/app/modules/lead/components/lead-last-updated/lead-last-updated.component.html","./src/app/modules/lead/components/lead-last-updated/lead-last-updated.component.ts","./src/app/shared/constants/email-type.constant.ts","./src/app/shared/constants/phone-type.constant.ts","./src/app/modules/lead/components/new-lead/new-lead.component.html","./src/app/modules/lead/components/new-lead/new-lead.component.ts","./src/app/modules/lead/components/remote-soa/remote-soa.component.html","./src/app/modules/lead/components/remote-soa/remote-soa.component.ts","./src/app/modules/quotes/components/single-sign-on/single-sign-on.component.html","./src/app/modules/quotes/components/single-sign-on/single-sign-on.component.ts","./src/app/data/services/registration/registration.service.ts","./src/app/modules/registration/components/user-agreement/user-agreement.component.html","./src/app/modules/registration/components/user-agreement/user-agreement.component.ts","./src/app/shared/pipes/phone.pipe.ts","./src/app/modules/registration/pages/user-registration/user-registration.component.html","./src/app/modules/registration/registration-routing.module.ts","./src/app/modules/registration/pages/user-registration/user-registration.component.ts","./src/app/modules/registration/registration.module.ts","./src/app/shared/directives/date.directive.ts","./src/app/shared/directives/directives.module.ts","./src/app/shared/directives/disable-autofill.directive.ts","./src/app/shared/directives/input-max-length.directive.ts","./src/app/shared/directives/numbers-only.directive.ts","./src/app/shared/directives/phone-number-mask.directive.ts","./src/app/shared/directives/social-security-mask.directive.ts","./src/app/shared/helper/confirmed.validator.ts","./src/app/shared/modals/confirm-delete/confirm-delete.component.html","./src/app/shared/modals/confirm-delete/confirm-delete.component.ts","./src/app/shared/pipes/age-pipe.pipe.ts","./src/app/shared/pipes/click-phone.pipe.ts","./src/app/shared/pipes/safe-html.pipe.ts","./src/app/shared/services/LaunchDarkly/launchdarkly.service.ts","./src/app/shared/services/common/common.service.ts","./src/app/shared/services/moment/moment.service.ts","./src/app/shared/services/toastr/toast-msg.service.ts","./src/app/shared/material.module.ts","./src/app/shared/shared.module.ts","./src/app/shared/ui-components/address/address.component.html","./src/app/shared/ui-components/address/address.component.ts","./src/app/shared/ui-components/email/email.component.html","./src/app/shared/ui-components/email/email.component.ts","./src/app/shared/ui-components/phone/phone.component.html","./src/app/shared/ui-components/phone/phone.component.ts","./src/app/shared/ui-components/sms-notice-banner/sms-notice-banner.component.html","./src/app/shared/ui-components/sms-notice-banner/sms-notice-banner.component.ts","./src/app/shared/ui-components/sms-spinner/sms-spinner.component.html","./src/app/shared/ui-components/sms-spinner/sms-spinner.component.ts","./src/environments/environment.prod.ts","./src/app/shared/factories/app.initializer.ts","./src/app/core/error/pages/page-not-found/page-not-found.component.ts","./src/app/core/error/pages/page-not-found/page-not-found.component.html","./src/app/core/error/pages/server-error/server-error.component.ts","./src/app/core/error/pages/server-error/server-error.component.html","./src/app/core/error/pages/down-for-maintenance/down-for-maintenance.component.ts","./src/app/core/error/pages/down-for-maintenance/down-for-maintenance.component.html","./src/app/core/guard/auth.guard.ts","./src/app/app-routing.module.ts","./src/app/data/notification/notification.service.ts","./src/app/modal/header-modals/important-notice/important-notice.component.html","./src/app/modal/header-modals/important-notice/important-notice.component.ts","./src/app/modal/header-modals/notification/notification.component.html","./src/app/modal/header-modals/notification/notification.component.ts","./src/app/modal/header-modals/quick-search/quick-search.component.html","./src/app/modal/header-modals/quick-search/quick-search.component.ts","./src/app/modules/configurable-settings/configurable-settings/configurable-settings.component.html","./src/app/modules/configurable-settings/configurable-settings/configurable-settings.component.ts","./src/app/modules/integration/components/phone-dialer-user/phone-dialer-user.component.html","./src/app/modules/integration/components/phone-dialer-user/phone-dialer-user.component.ts","./src/app/layout/header/header.component.html","./src/app/layout/header/header.component.ts","./src/app/data/services/quick-links/quick-links.service.ts","./src/app/modal/sidebar-modals/add-quick-link/add-quick-link.component.html","./src/app/modal/sidebar-modals/add-quick-link/add-quick-link.component.ts","./src/app/layout/sidebar/quick-links/quick-links.component.html","./src/app/layout/sidebar/quick-links/quick-links.component.ts","./src/app/layout/sidebar/sidebar.component.html","./src/app/layout/sidebar/sidebar.component.ts","./src/app/app.component.html","./src/app/app.component.ts","./src/app/core/interceptor/error.interceptor.ts","./src/app/core/error/error.module.ts","./src/app/core/service/refresh-token.service.ts","./src/app/core/interceptor/https.interceptor.ts","./src/app/core/core.module.ts","./src/app/modal/sidebar-modals/sidebar-modals.module.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["export const CONSTANTS = {\r\n EXPORT_LEAD: {\r\n account: {\r\n export_type: '1',\r\n },\r\n lead_list: {\r\n export_type: '4',\r\n },\r\n recent_lead: {\r\n export_type: '2',\r\n },\r\n search_criteria: {\r\n export_type: '3',\r\n },\r\n }\r\n};\r\n\r\nexport const TOOLBAR = [\r\n ['bold', 'italic'],\r\n ['underline', 'strike'],\r\n ['ordered_list', 'bullet_list'],\r\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\r\n ['align_left', 'align_center', 'align_right', 'align_justify'],\r\n];\r\n\r\nexport const CUSTOM_TOOLBAR = [\r\n ['bold', 'italic'],\r\n ['underline', 'strike'],\r\n ['ordered_list', 'bullet_list'],\r\n [{ heading: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] }],\r\n ['link'],\r\n ['align_left', 'align_center', 'align_right', 'align_justify'],\r\n];\r\n\r\nexport const RELATION = [{\r\n text: 'Spouse',\r\n value: '1',\r\n}, {\r\n text: 'Parent',\r\n value: '2',\r\n}, {\r\n text: 'Child',\r\n value: '3',\r\n}, {\r\n text: 'Sibling',\r\n value: '4',\r\n}, {\r\n text: 'Grandparent',\r\n value: '5',\r\n}, {\r\n text: 'Grandchild',\r\n value: '6',\r\n}, {\r\n text: 'Referred',\r\n value: '7'\r\n}, {\r\n text: 'Referred by',\r\n value: '8'\r\n}\r\n];\r\n\r\nexport const NOTICE_TYPE = {\r\n Success: 'success',\r\n Alert: 'alert',\r\n Warning: 'warn',\r\n Close: 'close',\r\n Announcement: 'announcement'\r\n};\r\n\r\nexport const MARITAL_STATUS = [\r\n {\r\n text: 'Single',\r\n value: 'S'\r\n },\r\n {\r\n text: 'Married',\r\n value: 'M'\r\n },\r\n {\r\n text: 'Divorced',\r\n value: 'D'\r\n },\r\n {\r\n text: 'Widowed',\r\n value: 'W'\r\n }\r\n];\r\n\r\nexport const PHONE_TYPES = [\r\n { text: \"Home\", value: \"Home\", isSelected: false },\r\n { text: \"Fax\", value: \"Fax\", isSelected: false },\r\n { text: \"Work\", value: \"Work\", isSelected: false },\r\n { text: \"Mobile\", value: \"Mobile\", isSelected: false },\r\n { text: \"Other\", value: \"Other\", isSelected: false },\r\n];\r\n\r\nexport const GENDER = [\r\n {\r\n text: 'Male',\r\n value: 'M'\r\n },\r\n {\r\n text: 'Female',\r\n value: 'F'\r\n }\r\n]\r\n\r\nexport const CONTACT_RELATION = [\r\n { value: 'Sibling', text: 'Sibling' },\r\n { value: 'Parent', text: 'Parent' },\r\n { value: 'Child', text: 'Child' },\r\n { value: 'Spouse', text: 'Spouse' },\r\n { value: 'Grandparent', text: 'Grandparent' },\r\n { value: 'Grandchild', text: 'Grandchild' },\r\n { value: 'Friend', text: 'Friend'},\r\n { value: 'Other', text: 'Other' }\r\n];\r\n\r\nexport const PRODUCT_INFO = [\r\n {\r\n 'text': 'Yes',\r\n 'value': 'yes'\r\n }, {\r\n 'text': 'No',\r\n 'value': 'no'\r\n }\r\n]\r\nexport const enrollmentTitle = {\r\n 'EAPP': 'The E-App enrollment method will single sign you into the carrier\\'s e-app. This will save you time by not having to log into the carrier\\'s e-app. For most of the carriers the client information will also be transferred automatically into the carrier\\'s e-app platform. Many of the carrier e-apps will allow you to sell in a face to face or remote environment.',\r\n 'AICOE': 'Agent Initiated Consumer Online Enrollment (AICOE) is designed for selling remotely using email and/or TEXT message to deliver plan documents and enrollment forms to applicants for electronic signature. Agent writing number embedded to ensure agent of record.',\r\n 'PDF': 'The PDF enrollment method is designed when selling face to face or in a remote setting. When selecting PDF you can download a fillable PDF of the application. You can complete the application and print off for signature if in a face to face setting or can email the completed application to the client. The client will receive an email that will direct them to a secure website to review and print the application to sign and return. This email will also contain important documents including the summary of benefits, star ratings, etc..',\r\n 'F2F': 'Face to Face (F2F) is designed to use when selling face to face. When using the F2F enrollment method you can complete the application electronically and have the client digitally sign the application. When starting the F2F enrollment method you can complete the application on your current device or can use a touch screen device to complete the enrollment by going to signtheapp.com. The Face to Face enrollment method must be used in a face to face setting and the signature must be executed by the consumer.',\r\n 'VSIG': 'Agent MUST RECORD the ENROLLMENT CONVERSATION and store the enrollment voice conversation or audiovisual web meeting between agent and applicant. No requirement to obtain applicant electronic signature via email or text message. No requirement for agent to follow verbatim script unless instructed to read state statements to applicant in enrollment form.'\r\n}\r\n\r\nexport const LDF_LEAD_SWITCH_KEY = 'lapro.switch.perm.enable-in-app-navigation-for-lead-switch-scenario';\r\nexport const LDF_CONFIGURABLE_SETTINGS = 'leadadvantage-temp-feb-24-enable-ssp-reminder-available';\r\nexport const LDF_ENABLE_AEP_DISRUPTION_REPORT = 'lapro.switch.perm-enable-aep-disruption-report-module';\r\nexport const LDF_SHOW_ENV_WARNING_BANNER = 'lapro.switch.perm.laweb-show-environment-warning-banner';\r\n\r\nexport const productTypes = {\r\n MED_ADV: \"8\",\r\n MED_PARTD: \"11\",\r\n FEX:\"3\",\r\n MED_SUP:\"9\"\r\n}\r\n\r\nexport const productTypesArray={\r\n \"2\": \"Dental\",\r\n \"3\":\"Fex\",\r\n \"4\":\"Medical\",\r\n \"5\":\"Life\",\r\n \"6\":\"LTC\",\r\n \"8\":\"MA\",\r\n \"9\":\"Medsup\",\r\n \"10\":\"Other\",\r\n \"11\":\"Part D\",\r\n \"15\":\"Travel\",\r\n \"17\":\"HospIndem\",\r\n \"254\":\"Health\",\r\n \"255\":\"Vision\"\r\n}\r\n\r\nexport const EXTRA_BENEFITS={\r\n\r\n 'e31':{name:'Dental',img:'assets/images/dentistry.png'},\r\n 'e33':{name:'Vision',icon:'visibility'},\r\n 'e32':{name:'Hearing',icon:'hearing'},\r\n 'e388':{name:'Part B Giveback',icon:'format_bold'},\r\n 'e55':{name:'OTC',img:'assets/images/pill.png'},\r\n 'e1542':{name:\"Flex Card\",icon:'credit_card_heart'},\r\n 'e319':{name:'Fitness Benefit',icon:'directions_run'},\r\n 'e36':{name:'Transportation',icon:'airport_shuttle'},\r\n 'e375':{name:'Meals',icon:'restaurant_menu'},\r\n 'e10':{name:'Chiropractic',img:'assets/images/orthopedics.png'},\r\n 'e37':{name:'Acupuncture',img:'assets/images/accupuncture.png'},\r\n 'e405':{name:'Bathroom Safety',icon:'bathtub'},\r\n 'e333':{name:'Telehealth',icon:'call'},\r\n 'e328':{name:\"In-Home Support\",img:'assets/images/family_home.png'}\r\n\r\n}\r\n\r\nexport const validatorPatterns = {\r\n EMAIL: /^\\s*[\\w\\-\\+_]+(\\.[\\w\\-\\+_]+)*\\@[\\w\\-\\+_]+(\\.[\\w\\-\\+_]{2,})+\\s*$/\r\n}\r\n\r\nexport const MONTH_ARRAY = [\r\n { id: 1, name: 'January' },\r\n { id: 2, name: 'February' },\r\n { id: 3, name: 'March' },\r\n { id: 4, name: 'April' },\r\n { id: 5, name: 'May' },\r\n { id: 6, name: 'June' },\r\n { id: 7, name: 'July' },\r\n { id: 8, name: 'August' },\r\n { id: 9, name: 'September' },\r\n { id: 10, name: 'October' },\r\n { id: 11, name: 'November' },\r\n { id: 12, name: 'December' }\r\n]\r\n\r\nexport const hospIndemUrl = 'https://hippd.lbig.com/';\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ICobrandDetails } from '@data/admin/cobrand-details';\r\nimport { environment } from \"@env/environment\";\r\nimport { IUser } from '@data/user-profile/user-profile.interface';\r\nimport { AuthToken } from './auth-token.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n private data = new BehaviorSubject(null);\r\n private laAuth: AuthToken | null = null;\r\n\r\n public authUser = this.data.asObservable();\r\n public cobrandDetails$ = new Subject();\r\n public userDetails$ = new BehaviorSubject(null);\r\n\r\n public account_id!: string;\r\n public user_details!: IUser;\r\n\r\n constructor(\r\n private _cookieService: CookieService\r\n ) {}\r\n\r\n // Start of User Cookie functions\r\n public setCookie(): void {\r\n const laAuthTransitionCookie = this._cookieService.get('LAAuth2LAWeb');\r\n let laWebCookie = this._cookieService.get('LAWEB');\r\n\r\n // console.debug('no auth cookie: ' + decodeURIComponent(laAuthTransitionCookie));\r\n // console.debug('current auth cookie: ' + decodeURIComponent(laWebCookie));\r\n\r\n //TODO: remove the debug token\r\n // laWebCookie = (window.location.href.includes(\"localhost\"))\r\n // ? {\r\n // \"access_token\": \"2a10giTYklX7mbVIGATh3XuMOVaCMp3y8LIqjw6ELZV5VCfKhi\",\r\n // \"expires_in\": 1200,\r\n // \"token_type\": \"Bearer\",\r\n // \"user_id\": 10973,\r\n // \"refresh_token\": \"2a10HSx3SFIBCnYGjNKR2782y8ckDsBpdHETF7LTGdWVaaX1Lg\",\r\n // \"context\": \"LApro\"\r\n // }.toString()\r\n // : laWebCookie;\r\n\r\n if (laAuthTransitionCookie.length > 0) // Just logged in\r\n this.setToken(JSON.parse(decodeURIComponent(laAuthTransitionCookie)));\r\n\r\n else if (laWebCookie.length > 0) // Reloaded the page (refresh or opened the browser)\r\n this.setToken(JSON.parse(decodeURIComponent(laWebCookie)));\r\n\r\n this._cookieService.delete('LAAuth2LAWeb', '/', '.leadadvantagepro.com'); // Always attempt to delete the LAAuth2LAWeb\r\n\r\n if (this.laAuth === null) // If nothing was set, no LAWEB nor LAAuth2LAWeb cookies found, kick back to LA-Auth\r\n this.killCookie()\r\n\r\n }\r\n\r\n public setToken(token: AuthToken): void {\r\n //delete current auth token first\r\n this._deleteAuthCookie();\r\n\r\n this._cookieService.set(\r\n 'LAWEB', encodeURIComponent(JSON.stringify(token)),\r\n { path: '/', secure: true, sameSite: 'Strict' }\r\n );\r\n\r\n this.laAuth = { ...token };\r\n }\r\n\r\n public getToken(): any {\r\n return this.laAuth;\r\n }\r\n\r\n public killCookie(): void {\r\n this._deleteAuthCookie();\r\n this.redirectToAuth();\r\n }\r\n\r\n public redirectToAuth(): void {\r\n window.location.href = environment.authClient + '?referrer=' + encodeURIComponent(window.location.href);\r\n }\r\n\r\n public getAuthCookie(): string {\r\n return this._cookieService.get('LAWEB');\r\n }\r\n\r\n private _deleteAuthCookie() {\r\n this._cookieService.delete('LAWEB', '/', '.leadadvantagepro.com', true); // delete legacy cookie\r\n this._cookieService.delete('LAWEB', '/'); // delete environment specific cookie\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { SearchCriteria } from '@data/quick-search/quick-search.interface';\r\nimport { environment } from '@env/environment';\r\nimport { catchError, throwError } from 'rxjs';\r\nimport { ICarrier } from './carrier.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarrierService {\r\n\r\n constructor(\r\n private _http: HttpClient\r\n ) { }\r\n\r\n public getCarrier(id: string) {\r\n return this._http.get(environment.api + 'carrier/' + id)\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); })\r\n );\r\n }\r\n\r\n public getCarriers(payload: SearchCriteria) {\r\n return this._http.post(environment.api + 'carrier/search/', payload)\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); })\r\n );\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '@env/environment';\r\nimport { catchError, map, throwError } from 'rxjs';\r\nimport { DataSelfServiceWorkingLog } from './data-self-service.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataSelfService {\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n ) { }\r\n\r\n public getWorkingTableList(payload: any) {\r\n return this._http.post((environment.api) + 'SelfServiceAgent/search', payload)\r\n .pipe(\r\n catchError(error => throwError(() => error))\r\n );\r\n }\r\n\r\n public overrideWorkingTable(payload: any) {\r\n return this._http.post((environment.api) + 'SelfServiceAgent/Override', payload)\r\n .pipe(\r\n catchError(error => throwError(() => error)),\r\n );\r\n }\r\n \r\n public updatedLeadDataSSP(lead_id: any) {\r\n return this._http.get((environment.api) + 'SelfServiceHistoryLead/' + lead_id)\r\n .pipe(\r\n catchError(error => throwError(() => error)),\r\n );\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '@env/environment';\r\nimport { ICobrandDetails } from '@data/admin/cobrand-details';\r\nimport { Subject, first, catchError, map, shareReplay, throwError } from 'rxjs';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountService {\r\n\r\n private _cachedCobrandDetails: ICobrandDetails;\r\n\r\n public cobrandDetails$ = new Subject();\r\n\r\n constructor(\r\n private _http: HttpClient\r\n ) { }\r\n\r\n public getAccountSettings(accountId: string) {\r\n return this._http.get((environment.api) + \"account/\" + accountId + \"/settings\").pipe(\r\n shareReplay(1),\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updateAccountSettings(account_id: string, payload: AccountSettings) {\r\n return this._http.post((environment.api) + \"account/\" + account_id + \"/settings\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getCobrandDetails(accountId: string) {\r\n return this._http.get(environment.api + 'cobrand/load/' + accountId).pipe(\r\n catchError((err) => {\r\n return throwError(() => err);\r\n })\r\n );\r\n }\r\n\r\n public getAccountAgents(accountId: string) {\r\n return this._http.get(environment.api + 'account/' + accountId + '/totalAgents/')\r\n .pipe(\r\n catchError((err) => {\r\n return throwError(() => err);\r\n })\r\n );\r\n }\r\n\r\n public getLoggedInCobrandDetails(accountId: string) {\r\n const cachedCobrandDetails = this._cachedCobrandDetails;\r\n\r\n if (!cachedCobrandDetails && accountId)\r\n return this.getCobrandDetails(accountId)\r\n .pipe(\r\n map( cobrandDetails => {\r\n this._cachedCobrandDetails = cobrandDetails;\r\n this.cobrandDetails$.next(cobrandDetails);\r\n\r\n return cobrandDetails;\r\n })\r\n );\r\n else\r\n setTimeout(() => {\r\n this.cobrandDetails$.next(cachedCobrandDetails);\r\n });\r\n\r\n return this.cobrandDetails$.asObservable();\r\n\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { addMessage } from '@data/admin/message.interface';\r\nimport { Carrier } from '@data/admin/users.interface';\r\nimport { messages } from '@data/admin/message.interface';\r\nimport { leadExport, trackCodeInterface } from '@data/admin/leads.interface';\r\nimport { leadData } from '@data/admin/leads.interface';\r\nimport { leadImport } from '@data/admin/leads.interface';\r\nimport { leadInstruction } from '@data/admin/leads.interface';\r\nimport { rolePermission } from '@data/admin/roles.interface';\r\nimport { IProductFilter, productFilter } from '@data/admin/product.interface';\r\nimport { roles } from '@data/admin/roles.interface';\r\nimport { accountData } from '@data/admin/accounts.interface';\r\nimport { search } from '@data/admin/leads.interface';\r\nimport { clientData } from '@data/admin/leads.interface';\r\nimport { campaignData } from '@data/admin/leads.interface';\r\nimport { campaignSegment } from '@data/admin/leads.interface';\r\nimport { environment } from '@env/environment';\r\nimport { catchError, map, Observable, Subject, throwError } from 'rxjs';\r\nimport { IResponse } from '@data/shared/response.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminService {\r\n private adminSubject = new Subject();\r\n\r\n private _cachedFilterProducts: IProductFilter[];\r\n private _filterProducts$ = new Subject();\r\n\r\n public filterData : IProductFilter[]; // variable to store the data for product filter.\r\n constructor(private http: HttpClient, private auth: AuthService) { }\r\n\r\n public adminFormArray(data: any) {\r\n this.adminSubject.next(data);\r\n }\r\n\r\n public getAdminFormArray(): Observable {\r\n return this.adminSubject.asObservable();\r\n }\r\n\r\n // ****************************** messages ******************************************\r\n public getAllMessages(data: messages) {\r\n return this.http.post((environment.api) + \"notice/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addNewMessage(data: addMessage) {\r\n return this.http.post((environment.api) + \"notice\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public editMessage(data: addMessage) {\r\n return this.http.post((environment.api) + \"notice/\" + data.notice_id, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n }\r\n ))\r\n\r\n }\r\n\r\n public deleteMessage(notice_id: string) {\r\n return this.http.get((environment.api) + \"notice/\" + notice_id + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n // ******************************* users ******************************************\r\n\r\n public loggedInUser(accountId: number) {\r\n return this.http.get((environment.api) + \"account/\" + accountId).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getRegistrationLink(role_id: string) {\r\n return this.http.get((environment.api) + \"registration/buildLink/account/\" + this.auth.account_id + \"/role/\" + role_id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n public getRolePermissionsData(role_id: string) {\r\n return this.http.get((environment.api) + \"account/\" + this.auth.account_id + \"/role/\" + role_id + \"/permissions\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n //-------------------------- agent writing numbers popup ---------------------------------------------------\r\n public listActiveByCarrier(carrier_ids: object) {\r\n return this.http.post((environment.api) + \"productType/listActiveByCarrier\", carrier_ids).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n // ******************************* leads ******************************************\r\n // ## export leads ##\r\n public exportLeads(data: leadExport) {\r\n return this.http.post((environment.api) + \"leadExport\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addLeadSource(data: leadData) {\r\n return this.http.post((environment.api) + \"LeadVendor\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getExistingLead(vendorId: number) {\r\n return this.http.get((environment.api + \"LeadVendor/\" + vendorId)).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateExistingLead(data: leadData, vendorId: number) {\r\n return this.http.post((environment.api) + \"LeadVendor/\" + vendorId, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteLeadSource(vendorId: number) {\r\n return this.http.get((environment.api) + \"LeadVendor/\" + vendorId + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public leadVendorSearch(data: search) {\r\n return this.http.post((environment.api) + \"LeadVendor/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n //** client-affiliate-partner **//\r\n public getb2bPartner(data: search, accountId: string) {\r\n return this.http.post((environment.api) + \"account/\" + accountId + \"/b2bpartner/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addClientInfo(data: clientData) {\r\n return this.http.post((environment.api) + \"account/\" + this.auth.account_id + \"/b2bpartner\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateClientInfo(data: clientData, b2b_id: number) {\r\n return this.http.post((environment.api) + \"account/\" + this.auth.account_id + \"/b2bPartner/\" + b2b_id, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteClientInfo(b2b_id: number) {\r\n return this.http.get((environment.api) + \"account/\" + this.auth.account_id + \"/b2bpartner/\" + b2b_id + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n //** lead-instructions **//\r\n public getLeadInstructions(payload: search) {\r\n return this.http.post((environment.api) + \"LeadInstructions/search\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getLeadInstructionProduct() {\r\n return this.http.get((environment.api) + \"document/drilldown/productType\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addLeadInstruction(payload: leadInstruction) {\r\n return this.http.post((environment.api) + \"leadInstructions\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateLeadInstruction(id: number, payload: leadInstruction) {\r\n return this.http.post((environment.api) + \"leadInstructions/\" + id, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteLeadInstruction(id: number) {\r\n return this.http.get((environment.api) + \"leadInstructions/\" + id + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n //** campaign **//\r\n public addNewCampaign(payload: campaignData) {\r\n return this.http.post((environment.api) + \"account/\" + this.auth.account_id + \"/campaign\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateExistingCampaign(id: number, payload: campaignData) {\r\n return this.http.post((environment.api) + \"account/\" + this.auth.account_id + \"/campaign/\" + id, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteCampaign(id: number) {\r\n return this.http.get((environment.api) + \"account/\" + this.auth.account_id + \"/campaign/\" + id + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addNewCampaignSegment(payload: campaignSegment) {\r\n return this.http.post((environment.api) + \"campaignSegment\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateExistingCampaignSegment(id: number, payload: campaignSegment) {\r\n return this.http.post((environment.api) + \"campaignSegment/\" + id, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteCampaignSegment(id: string) {\r\n return this.http.get((environment.api) + \"campaignSegment/\" + id + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n // ## import lead ##\r\n public getLeadImportFile() {\r\n return this.http.get((environment.api) + \"leadImportFile/template\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addLeadImportFile(payload: leadImport) {\r\n return this.http.post((environment.api) + \"leadImportFile\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getAccountInfo() {\r\n return this.http.get((environment.api) + \"account/\" + this.auth.account_id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public AccountSelectedUser(payload: object, account_id: number) {\r\n return this.http.post((environment.api) + \"account/\" + account_id + \"/settings\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateAccount(data: accountData) {\r\n return this.http.post((environment.api) + \"account/\" + data.account_id, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public smsAccounts(data: search) {\r\n return this.http.post((environment.api) + \"account/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public smsAccountInitialField(id: number) {\r\n return this.http.get((environment.api) + \"account/\" + id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public smsAccountUpdateFields(data: accountData, id: string) {\r\n return this.http.post((environment.api) + \"account/\" + id, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n\r\n }\r\n\r\n public deletePhoneNumber(phoneId: number, id: number) {\r\n return this.http.get(environment.api + 'account/' + id + '/phone/' + phoneId + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteEmailNumber(emailId: number, id: number) {\r\n return this.http.get(environment.api + 'account/' + id + '/email/' + emailId + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteAddressNumber(AddressId: number, id: number) {\r\n return this.http.get(environment.api + 'account/' + id + '/address/' + AddressId + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public createNewSmsAccount(data: accountData) {\r\n return this.http.post(environment.api + 'account/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteSMSAccount(accountId: number) {\r\n return this.http.get(environment.api + 'account/' + accountId + '/delete').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getManageRole(payload: search) {\r\n return this.http.post(environment.api + 'account/' + this.auth.account_id + '/role/search/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public manageRoleSetting() {\r\n return this.http.get(environment.api + 'account/' + this.auth.account_id + '/settings').pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n\r\n }\r\n public updateRole(payload: roles, roleId: number) {\r\n return this.http.post(environment.api + 'account/' + this.auth.account_id + '/role/' + roleId, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public addRole(payload: roles) {\r\n return this.http.post(environment.api + 'account/' + this.auth.account_id + '/role/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n public roleSearch(payload: search) {\r\n return this.http.post(environment.api + 'account/' + this.auth.account_id + '/role/search', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public rolePermission(role_id: string) {\r\n return this.http.get(environment.api + 'account/' + this.auth.account_id + '/role/' + role_id + '/permissions').pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public roleUpdatePermission(payload: rolePermission, role_id: string) {\r\n return this.http.post(environment.api + 'account/' + this.auth.account_id + '/role/' + role_id + '/permissions', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public planSearch(payload: search) {\r\n return this.http.post(environment.api + 'plan/search/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public addfilter(payload: productFilter) {\r\n return this.http.post(environment.api + 'productFilter/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public productFilterSearch(payload: search) {\r\n return this.http.post(environment.api + 'productFilter/search/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public planFilterDelete(product_filter_id: string) {\r\n return this.http.get(environment.api + \"productFilter/\" + product_filter_id + \"/delete/\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public getCachedProductFilters(payload: search) {\r\n if (!this._cachedFilterProducts || this._cachedFilterProducts.length === 0)\r\n return this.productFilterSearch(payload)\r\n .pipe(\r\n map( (productFilters: IProductFilter[]) => {\r\n this._cachedFilterProducts = productFilters;\r\n this._filterProducts$.next(this._cachedFilterProducts);\r\n\r\n return this._cachedFilterProducts;\r\n }\r\n ));\r\n\r\n else\r\n setTimeout(() => {\r\n this._filterProducts$.next(this._cachedFilterProducts)\r\n })\r\n\r\n\r\n return this._filterProducts$.asObservable();\r\n }\r\n\r\n public resetProductFilterCache() {\r\n this._cachedFilterProducts = [];\r\n }\r\n\r\n public deleteProductFilter(filterId: number) {\r\n return this.http.get(environment.api + 'productFilter/' + filterId + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public getAdminAccountInfo() {\r\n return this.http.get((environment.api) + `account/${this.auth.account_id}`).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public roleManageSearch(payload: search) {\r\n return this.http.post(environment.api + 'account/search', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n public getTrackingCode(criteria: search) {\r\n return this.http.post((environment.api) + `account/` + environment.INSURACTIVE_ACCOUNT_ID + `/b2bpartnerTrackingCode/search`, criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addUpdateTrackingCode(criteria: trackCodeInterface) {\r\n return this.http.post((environment.api) + `account/` + criteria.account_id + `/b2bpartnerTrackingCode`, criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n public deleteTrackingCode(tracking_code_id: number) {\r\n return this.http.get((environment.api) + \"account/\" + environment.INSURACTIVE_ACCOUNT_ID + \"/b2bpartnerTrackingCode/\" + tracking_code_id + \"/delete\")\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, Subject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from '@env/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport moment from 'moment';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CalendarService {\r\n private eventSubject = new Subject();\r\n private deleteSubject = new Subject();\r\n private titleSubject = new Subject();\r\n constructor(private http: HttpClient, private auth: AuthService) { }\r\n\r\n public sendEventData(data: any) {\r\n this.eventSubject.next(data);\r\n }\r\n\r\n public getEventData(): Observable {\r\n return this.eventSubject.asObservable();\r\n }\r\n\r\n public sendDeleteData(data: any) {\r\n this.deleteSubject.next(data);\r\n }\r\n\r\n public getDeleteData(): Observable {\r\n return this.deleteSubject.asObservable();\r\n }\r\n\r\n public sendTitle(data: any) {\r\n this.titleSubject.next(data);\r\n }\r\n\r\n public getTitle(): Observable {\r\n return this.titleSubject.asObservable();\r\n }\r\n\r\n public getCalendarEvents(data: any) {\r\n let criteria:any;\r\n if (data.type == 'calendar') {\r\n criteria = {\r\n \"criteria\": {\r\n \"user_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.auth.getToken().user_id.toString()]\r\n },\r\n \"start_time\": {\r\n \"type\": \"range\",\r\n \"value\": [data.startDate, data.endDate]\r\n }\r\n },\r\n \"field_list\": \"\",\r\n \"page_number\": 1\r\n }\r\n } else if (data.type == 'appointment') {\r\n criteria = {\r\n \"criteria\": {\r\n \"end_time\": { type: \"range\", value: [data.selectedDate, data.selectedDate] },\r\n \"start_time\": { type: \"range\", value: [data.selectedDate, data.selectedDate] }\r\n },\r\n \"orderby_direction\": \"desc\",\r\n }\r\n\r\n } else if (data.type == 'task') {\r\n criteria = {\r\n \"criteria\":{\r\n \"completed_date\": { type: \"simple\", value: [\"\"] },\r\n \"end_time\": { type: \"simple\", value: [\"\"] },\r\n \"start_time\": { type: \"range\", value: [data.selectedDate, data.selectedDate] }\r\n },\r\n \"orderby_direction\": \"asc\",\r\n }\r\n } else if (data.type == 'unscheduled-task') {\r\n criteria = {\r\n \"criteria\": {\r\n \"completed_date\": { type: \"simple\", value: [\"\"] },\r\n \"start_time\": { type: \"simple\", value: [data.selectedDate] }\r\n },\r\n \"orderby_direction\": \"asc\",\r\n }\r\n }\r\n else {\r\n criteria = {\r\n \"criteria\": {\r\n \"user_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.auth.getToken().user_id.toString()]\r\n },\r\n \"end_time\": {\r\n \"type\": \"simple\",\r\n \"value\": [\"\"]\r\n },\r\n \"completed_date\": {\r\n \"type\": \"simple\",\r\n \"value\": [\"\"]\r\n }\r\n },\r\n \"page_number\": 1,\r\n \"orderby_direction\": \"asc\"\r\n }\r\n }\r\n criteria['search_type'] = \"simple\";\r\n if (data.type == 'appointment' || data.type == 'task' || data.type == 'unscheduled-task'){\r\n criteria['field_list'] = \"lead_id,fname,lname,user_id,appointment_id,allday_flag,title,appointment_type_id,description,start_time,end_time,importance,completed_date\";\r\n }else{\r\n criteria['field_list'] = \"\";\r\n }\r\n if(data.type != 'calendar'){criteria[\"orderby_field\"] =\"start_time\"; }\r\n return this.http.post(\r\n environment.api + 'user/' + this.auth.getToken().user_id + '/appointment/search', criteria).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addAppointment(params: any) {\r\n return this.http.post((environment.api) + `user/` + params.user_id + `/appointment/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addLeadAppointment(params: any) {\r\n return this.http.post((environment.api) + `lead/${params.lead_id}/appointment/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public editAppointment(params: any, appointment_id: string) {\r\n return this.http.post((environment.api) + `appointment/` + appointment_id, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadSearch(params: any) {\r\n return this.http.post((environment.api) + `lead/search/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteEvent(params: any) {\r\n return this.http.get((environment.api) + `appointment/` + params + `/delete/`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public dismissEvent(id: any) {\r\n let params = { completed_date: moment(new Date()).format(\"YYYY-MM-DD hh:mm\") }\r\n return this.http.post((environment.api) + `appointment/` + id, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, Subject, BehaviorSubject } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from '@env/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HeaderService {\r\n private dropSubject = new Subject();\r\n private searchSubject = new BehaviorSubject(\"\");\r\n private notifySubject = new Subject();\r\n constructor(private http: HttpClient, private auth: AuthService) { }\r\n\r\n public sendDropdownData(data: any) {\r\n this.dropSubject.next(data);\r\n }\r\n\r\n public getDropdownData(): Observable {\r\n return this.dropSubject.asObservable();\r\n }\r\n\r\n public sendSearchAlert(input: object) {\r\n this.searchSubject.next(input);\r\n }\r\n\r\n public getSearchAlert(): Observable {\r\n return this.searchSubject.asObservable();\r\n }\r\n\r\n public sendNotifyAlert(input: string) {\r\n this.notifySubject.next(input);\r\n }\r\n\r\n public getNotifyAlert(): Observable {\r\n return this.notifySubject.asObservable();\r\n }\r\n\r\n public getPeproAccess() {\r\n return this.http.get(environment.PEAPI + 'api/user/' + this.auth.getToken().user_id + '/active').pipe(\r\n catchError((err) => {\r\n return throwError(() => err);\r\n })\r\n );\r\n }\r\n\r\n public populateDropDowns() {\r\n return this.http.get(environment.api + 'search/populateDropDowns').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAccountDetail(id: any) {\r\n return this.http.get(environment.api + 'account/' + id + '/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getUserCardSetting() {\r\n return this.http\r\n .get(\r\n environment.api + 'user/' + this.auth.getToken().user_id + '/settings'\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public quickSearch(input: object) {\r\n return this.http.post(environment.api + 'search/quick', input).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public qsLeadPlanCurrent(input: object) {\r\n return this.http.post(environment.api + 'leadPlanCurrent/quickSearch/', input).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAgentWritingNumberDetail(obj: any) {\r\n return this.http\r\n .post(environment.api + 'user/usercarrier/search/', obj)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getEmailTypes() {\r\n return this.http.get(environment.api + 'email/types').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getPhoneTypes() {\r\n return this.http.get(environment.api + 'phone/types').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAddressTypes() {\r\n return this.http.get(environment.api + 'address/types').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getNotificationCount() {\r\n return this.http\r\n .get(\r\n environment.api +\r\n 'noticeOutstandingCount/' +\r\n this.auth.getToken().user_id\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addNewUser(data: any) {\r\n return this.http\r\n .post(environment.api + 'user', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updateUser(data: any,user_id:any) {\r\n return this.http\r\n .post(environment.api + 'user/' + user_id, data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getUserNotice(page_number: number, type: string) {\r\n let criteria;\r\n if (type === 'openNotify') {\r\n criteria = {\r\n search_type: 'simple',\r\n criteria: {\r\n dismissed: {\r\n type: 'simple',\r\n value: ['false'],\r\n },\r\n },\r\n };\r\n } else if (type === 'quickNotify') {\r\n criteria = {\r\n search_type: 'simple',\r\n criteria: {\r\n important_popup: {\r\n type: 'simple',\r\n value: ['true'],\r\n },\r\n dismissed: {\r\n type: 'simple',\r\n value: ['false'],\r\n },\r\n start_date: {\r\n type: 'range',\r\n value: ['*', moment().utc()],\r\n },\r\n end_date: {\r\n type: 'range',\r\n value: [moment().utc(), '*'],\r\n },\r\n },\r\n field_list: '',\r\n records_per_page: '',\r\n };\r\n } else {\r\n criteria = {\r\n search_type: 'simple',\r\n criteria: {\r\n dismissed: {\r\n type: 'simple',\r\n value: ['true'],\r\n },\r\n },\r\n field_list:\r\n 'notice_title,notice_text,start_date,end_date,dismissed_date,important_popup',\r\n page_number: page_number,\r\n records_per_page: 35,\r\n orderby_field: 'start_date',\r\n orderby_direction: 'desc',\r\n };\r\n }\r\n return this.http\r\n .post(\r\n environment.api +\r\n 'user/' +\r\n this.auth.getToken().user_id +\r\n '/userNotice/search',\r\n criteria\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public dismissNotice(criteria: any) {\r\n return this.http\r\n .post(\r\n environment.api +\r\n 'user/' +\r\n this.auth.getToken().user_id +\r\n '/userNotice/dismiss',\r\n criteria\r\n )\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getNotice(criteria: any) {\r\n return this.http.post(environment.api + 'notice', criteria).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\nimport { PhoneDialerDialogData } from '@data/services/integration/phone-dialer.interface';\r\nimport { PhoneDialerService } from '@data/services/integration/phone-dialer.service';\r\nimport { IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { first } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-phone-dialer-option',\r\n templateUrl: './phone-dialer-option.component.html',\r\n styleUrls: ['./phone-dialer-option.component.scss']\r\n})\r\nexport class PhoneDialerOptionComponent implements OnInit {\r\n\r\n private _accountSettings: AccountSettings;\r\n private _leadId: number;\r\n private _newDefaultBehavior: boolean;\r\n private _phoneNumber: string;\r\n private _userSettings: IUserSettings;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: PhoneDialerDialogData,\r\n private _commonService: CommonService,\r\n private _phoneDialerSvc: PhoneDialerService,\r\n private _toastMsgSvc: ToastMsgService,\r\n ) {\r\n this._accountSettings = data.accountSettings;\r\n this._leadId = data.leadId;\r\n this._phoneNumber = data.phoneNumber;\r\n this._userSettings = data.userSettings;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public dialWithPhoneDialer(): void {\r\n this._phoneDialerSvc.createPhoneCall({\r\n callee_phone_number: this._phoneNumber,\r\n lead_id: this._leadId,\r\n user_id: this._userSettings.user_id!,\r\n })\r\n .pipe(first())\r\n .subscribe({\r\n error: (err) => {\r\n this._phoneDialerSvc.redirectToDialerLandingPage(err.message); \r\n }\r\n })\r\n\r\n\r\n this._savePreference('2');\r\n\r\n }\r\n\r\n public dialWithBrowserDefault(): void {\r\n const telephonyPrefix = this._accountSettings.telephony_prefix || 'tel';\r\n\r\n this._phoneDialerSvc.dialPhoneNumberBrowserDefault(telephonyPrefix, this._phoneNumber);\r\n this._savePreference('1');\r\n }\r\n\r\n private _savePreference(behaviorId: string): void {\r\n /** \r\n * Behavior id:\r\n * 1 - Always Browser defualt\r\n * 2 - ALways Phone.com\r\n * 3 - Ask me everytime\r\n */\r\n const newDefaultBehavior = this._newDefaultBehavior ? behaviorId : '3'\r\n\r\n if (this._userSettings.phone_dialer_provider_behavior_type_id != newDefaultBehavior)\r\n this._commonService.updateLoggedInUserSettings(this._userSettings.user_id!, { phone_dialer_provider_behavior_type_id: newDefaultBehavior })\r\n .pipe(first())\r\n .subscribe({\r\n error: () => {\r\n this._toastMsgSvc.showError('Unable to update phone dialer preference. Please try again later.')\r\n }\r\n });\r\n }\r\n\r\n public updatePreference(event: MatCheckboxChange): void {\r\n this._newDefaultBehavior = event.checked;\r\n }\r\n}\r\n","
\r\n
\r\n

Select an Outbound Dial Method

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

Attention

\r\n

Centers for Medicare and Medicaid Services (CMS) requires agents to record all calls with beneficiaries that are part of the chain of enrollment into a Medicare Advantage or Part D Plan.

\r\n

Phone.com provides a turnkey solution for satisfying CMS call recording requirements.

\r\n
\r\n\r\n
\r\n \r\n
\r\n phone\r\n
\r\n \r\n

Phone.com

\r\n

(automated call recording)

\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n phone\r\n
\r\n

Standard Default

\r\n

(no call recording)

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Remember my selection\r\n
\r\n\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\nimport { IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { environment } from '@env/environment';\r\nimport { PhoneDialerOptionComponent } from '@modules/integration/components/phone-dialer-option/phone-dialer-option.component';\r\nimport { ClickPhonePipe } from '@shared/pipes/click-phone.pipe';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { catchError, first, throwError } from 'rxjs';\r\nimport { PhoneDialerAuthSettings, PhoneDialerBehaviorType, PhoneDialerCallData, PhoneDialerSettings } from './phone-dialer.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PhoneDialerService {\r\n\r\n private _prevURL: string = '';\r\n\r\n constructor(\r\n private _clickPhonePipe: ClickPhonePipe,\r\n private _dialog: MatDialog,\r\n private _http: HttpClient,\r\n private _router: Router,\r\n private _toastMsgSvc: ToastMsgService\r\n ) {}\r\n\r\n public getPhoneDialerBehaviourList() {\r\n return this._http.get((environment.api) + \"PhoneDialerProvider/listBehaviorTypes/\"\r\n ).pipe(\r\n first(),\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getOAuthSettings() {\r\n const options = {\r\n params: {\r\n laweb_current_route: this._prevURL\r\n }\r\n };\r\n\r\n return this._http.get((environment.api) + 'PhoneDialerProvider/authSettings', options)\r\n .pipe(\r\n first(),\r\n catchError (error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public isPhoneDialer(userSettings : IUserSettings, accountSettings: AccountSettings): boolean {\r\n return (accountSettings && userSettings)\r\n && accountSettings.phone_dialer_provider_active == '1'\r\n && userSettings.phone_dialer_provider_active == '1'\r\n && userSettings.phone_dialer_provider_behavior_type_id == '2';\r\n }\r\n\r\n public dialPhoneNumberBrowserDefault(telephonyPrefix: string, phoneNumber: string) {\r\n this._toastMsgSvc.showSuccess('Initiating call via default application');\r\n\r\n setTimeout(() => {\r\n window.location.href = telephonyPrefix + ':' + this._clickPhonePipe.transform(phoneNumber);\r\n }, 3000);\r\n }\r\n\r\n public dialPhoneNumber(phoneNumber: string, leadId: number, userSettings : IUserSettings, accountSettings: AccountSettings) {\r\n const telephonyPrefix = accountSettings?.telephony_prefix || 'tel';\r\n if ((!accountSettings || !userSettings)\r\n || accountSettings.phone_dialer_provider_active == '0'\r\n || userSettings.phone_dialer_provider_active == '0'\r\n || userSettings.phone_dialer_provider_behavior_type_id === '1') {\r\n return this.dialPhoneNumberBrowserDefault(telephonyPrefix, phoneNumber);\r\n\r\n } else if (accountSettings.phone_dialer_provider_active == '1') {\r\n\r\n if (userSettings?.phone_dialer_provider_behavior_type_id == '2') {\r\n return this.createPhoneCall({\r\n callee_phone_number: phoneNumber,\r\n lead_id: leadId,\r\n user_id: userSettings.user_id!,\r\n });\r\n\r\n } else\r\n return this._getDialerBehavior(phoneNumber, leadId, userSettings, accountSettings);\r\n\r\n }\r\n }\r\n\r\n public createPhoneCall(params: PhoneDialerCallData) {\r\n this._toastMsgSvc.showAnnouncement('Initiating call via phone dialer. A call will start soon, please wait.');\r\n return this._http.post((environment.api) + 'PhoneDialerProvider/phoneCall', params)\r\n .pipe(\r\n first(),\r\n catchError (error => {\r\n return throwError(() => error.error);\r\n })\r\n );\r\n }\r\n\r\n public redirectToDialerLandingPage(errorMsg?: string) {\r\n this._setPrevURL();\r\n this._router.navigate(['/integration/phone-dialer-setup'], { state: { errorMsg: errorMsg }});\r\n }\r\n\r\n private _setPrevURL(): void {\r\n this._prevURL = window.location.href;\r\n }\r\n\r\n private _getDialerBehavior(phoneNumber: string, leadId: number, userSettings : IUserSettings, accountSettings: AccountSettings) {\r\n this._dialog.open(PhoneDialerOptionComponent, {\r\n width: '60%',\r\n minHeight: '500px',\r\n data: {\r\n accountSettings: accountSettings,\r\n leadId: leadId,\r\n phoneNumber: phoneNumber,\r\n userSettings: userSettings,\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-vsig-soa',\r\n templateUrl: './vsig-soa.component.html',\r\n styleUrls: ['./vsig-soa.component.scss']\r\n})\r\nexport class VsigSoaComponent implements OnInit {\r\n public todaysDate: any = new Date();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Scope of Appointment

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

A CMS-compliant Scope of Appointment (SOA) must be obtained prior to meeting with a potential Medicare Health Plan (MA/PDP) enrollee, whether meeting face to face or remotely. Generally, SOA must be completed at least 48 hours prior to a scheduled appointment. Please note, CMS and Medicare Plan Sponsors may change SOA requirements each plan year.

\r\n\r\n

***For an UNSCHEDULED appointment, such as an inbound call, you may record and store for 10 years this voice signature (VSIG) Scope of Appointment script prior to discussing plan benefits.***

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

Agent: Mr/Mrs__________ I want to remind you that all of our calls are recorded due to Medicare regulations. Also, Medicare requires me to ask….do we have your permission to discuss Medicare Supplement, Medicare Advantage and/or Medicare Part D Prescription Drug coverage today, {{todaysDate | date:'MM/dd/YYYY'}}?

\r\n

Client: [client must state “Yes” or verbally agree]

\r\n

Agent: Can I ask you to please state your full name and today's date?

\r\n

Client: [client states name and today's date]

\r\n

Agent: Also, please state your phone number with area code.

\r\n

Client: [client states their phone number]

\r\n

Agent: Thank you. For the record, my name is [agent full name] and you can contact me at this phone number: [agent phone number]. One last item…I need to inform you that agreeing to discuss these products does not obligate you to enroll in a plan, affect your current or future Medicare enrollment status, or automatically enroll you in the plans discussed. I am contracted by one or more Medicare plans but I do not work directly for the Federal government. I may be paid based on your enrollment in a plan.

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

OR

\r\n

***For a SCHEDULED appointment, recording and storing for 10 years this voice signature (VSIG) Scope of Appointment script is CMS-compliant when obtained at least 48 hours in advance.***

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

Agent: Mr/Mrs__________ I want to remind you that all of our calls are recorded due to Medicare regulations. Also, Medicare requires me to ask….do we have your permission to discuss Medicare Supplement, Medicare Advantage and/or Medicare Part D Prescription Drug coverage on the following date [agent states appointment date]?

\r\n

Client: [client must state “Yes” or verbally agree]

\r\n

Agent: Can I ask you to please state your full name and today's date?

\r\n

Client: [client states name and today's date]

\r\n

Agent: Also, please state your phone number with area code.

\r\n

Client: [client states their phone number]

\r\n

Agent: Thank you. For the record, my name is [agent full name] and you can contact me at this phone number: [agent phone number]. One last item… I need to inform you that agreeing to discuss these products does not obligate you to enroll in a plan, affect your current or future Medicare enrollment status, or automatically enroll you in the plans discussed. I am contracted by one or more Medicare plans but I do not work directly for the Federal government. I may be paid based on your enrollment in a plan.

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
","
\r\n
\r\n

eSOA Requirements

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

The Scope of Appointment cannot be emailed to the lead/beneficiary until the following required information is added to the lead record.\r\n Click Here to update lead details with the information listed below.\r\n

\r\n

Missing eSignature Scope of Appointment Requirements:

\r\n
\r\n
    \r\n
  • Lead's First Name
  • \r\n
  • Lead's Last Name
  • \r\n
  • Lead's DOB
  • \r\n
  • Lead's Email
  • \r\n
  • Lead's Default Phone Number
  • \r\n
  • Lead's Default Street Address
  • \r\n
  • Lead's Default City
  • \r\n
  • Lead's Default State
  • \r\n
  • Lead's Default Zip Code
  • \r\n
  • Lead's Medicare Part A Effective Date
  • \r\n
  • Lead's Medicare Part B Effective Date
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { LeadDetailComponent } from '@modules/lead/components/lead-detail/lead-detail.component';\r\n\r\n@Component({\r\n selector: 'app-lead-missing-requirements',\r\n templateUrl: './lead-missing-requirements.component.html',\r\n styleUrls: ['./lead-missing-requirements.component.scss']\r\n})\r\nexport class LeadMissingRequirementsComponent implements OnInit {\r\n public leadMissingReq: any = [];\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public messingReq: any,\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog) {\r\n this.leadMissingReq = messingReq;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n public openUserProfile() {\r\n this.dialogRef.close();\r\n this.dialog.open(LeadDetailComponent, {\r\n width: '100%',\r\n data: this.leadMissingReq.lead_id,\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, OnInit } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { task } from \"@data/calendar/calendar.interface\";\r\nimport { dashboard } from \"@data/dashboard/dashboard.interface\";\r\nimport { LeadDetail } from \"@data/lead/lead.interface\";\r\nimport { VsigSoaComponent } from \"@modules/lead/components/vsig-soa/vsig-soa.component\";\r\nimport { F2fSoaComponent } from \"@modules/lead/components/f2f-soa/f2f-soa.component\";\r\nimport { LeadMissingRequirementsComponent } from \"@modules/lead/components/lead-missing-requirements/lead-missing-requirements.component\";\r\nimport { RemoteSoaComponent } from \"@modules/lead/components/remote-soa/remote-soa.component\";\r\nimport moment from 'moment';\r\n\r\n@Injectable()\r\nexport class leadUtilityFunctions implements OnInit {\r\n\r\n constructor(\r\n private _dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n public generateRequestPayload(user: any, agentESignatureID: string, lead: any, fomrData: any, type:string){\r\n let object = {\r\n \"draft\": \"0\",\r\n \"lead_id\": lead.lead_id,\r\n \"app_id\": \"\",\r\n \"user_id\": user.user_id,\r\n \"client_name\": lead.fname + \" \" + lead.lname,\r\n \"client_email\": lead.default_email.email ? lead.default_email.email : '',\r\n \"client_dob\": lead.dob,\r\n \"client_zip\": lead.default_address.zip,\r\n \"process_type\": type == 'remote' ? 'SOA' : \"SOAF2F\",\r\n \"soa_id\": \"\",\r\n \"external_redirect_url\": \"\",\r\n \"notify_web_hook_url\": \"\",\r\n \"remote_invite_url\": \"\",\r\n \"alert_notice\": \"0\",\r\n \"alert_email\": \"1\",\r\n \"client_first_visit_date\": \"\",\r\n \"client_last_visit_date\": \"\",\r\n \"soa\": {\r\n \"lead_id\": lead.lead_id,\r\n \"user_id\": user.user_id,\r\n \"plan_id\": \"plan_id_1\",\r\n \"client_name\": lead.fname + \" \" + lead.lname,\r\n \"client_phone\": lead.phone,\r\n \"client_address\": this.formatLeadAddress(lead.default_address),\r\n \"rep_name\": \"\",\r\n \"rep_relation\": \"\",\r\n \"agent_name\": user.fname + \" \" + user.lname,\r\n \"agent_phone\": user.default_phone.phone,\r\n \"agent_email\": user.default_email.email,\r\n \"agent_address\": user.default_address.address1 + \" \" + user.default_address.city + \", \" + user.default_address.state_id + \" \" + user.default_address.zip,\r\n \"contact_method\": fomrData.contactMethod ? fomrData.contactMethod : \"\",\r\n \"medicare_plans\": null,\r\n \"soa_just_in_time_reason\": \"\",\r\n \"appointment_date\": fomrData.aptDate ? moment.utc(fomrData.aptDate).format('MM/DD/YYYY') : \"\",\r\n \"access_date\": \"\",\r\n \"agent_esign_id\": agentESignatureID\r\n }\r\n }\r\n return object;\r\n }\r\n\r\n private formatLeadAddress(leadAddresss: any) {\r\n var displayLeadAddress = \"\";\r\n if (leadAddresss && (leadAddresss.address1 && leadAddresss.address1.length > 0) && (leadAddresss.city && leadAddresss.city.length > 0) && (leadAddresss.state_id && leadAddresss.state_id.length > 0) && (leadAddresss.zip && leadAddresss.zip.length > 0)) {\r\n var displayLeadAddress2 = (leadAddresss.address2 && leadAddresss.address2.length > 0) ? leadAddresss.address2 + \", \" : '';\r\n displayLeadAddress = leadAddresss.address1 + \", \" + displayLeadAddress2 + leadAddresss.city + \", \" + leadAddresss.state_id + \" \" + leadAddresss.zip;\r\n }\r\n return displayLeadAddress;\r\n }\r\n\r\n public convertCalendarResponse(object:task){\r\n let obj: dashboard = {\r\n \"title\": object.title,\r\n \"start\": object.start_time ? object.start_time : '',\r\n \"id\": object.appointment_id,\r\n \"allDay\": object.allday_flag,\r\n \"end\": object.end_time,\r\n \"extendedProps\": {\r\n \"user_id\": object.user_id,\r\n \"fname\": object.fname,\r\n \"lname\": object.lname,\r\n \"lead_id\": object.lead_id,\r\n \"description\": object.description,\r\n \"importance\": object.importance,\r\n \"completed_date\": object.completed_date,\r\n \"appointment_type_id\": object.appointment_type_id,\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n public openSOAModal(leadDetails: LeadDetail, soaType: string, checkReq: boolean = true) {\r\n window.scroll(0, 0);\r\n\r\n const leadMissingRequirements = {\r\n lead_id: leadDetails.lead_id,\r\n fname: !(leadDetails.fname.length),\r\n lname: !(leadDetails.lname.length),\r\n dob: !(leadDetails?.dob?.length),\r\n phone: !(leadDetails?.default_phone?.phone?.length),\r\n address1: !(leadDetails?.default_address?.address1?.length),\r\n city: !(leadDetails?.default_address?.city?.length),\r\n state: !(leadDetails?.default_address?.state_id?.length),\r\n zip: !(leadDetails?.default_address?.zip?.length),\r\n };\r\n\r\n const dialogOptions = {\r\n width: '60%',\r\n };\r\n\r\n if (checkReq &&\r\n !(\r\n leadMissingRequirements['fname']\r\n || leadMissingRequirements['lname']\r\n || leadMissingRequirements['dob']\r\n || leadMissingRequirements['phone']\r\n || leadMissingRequirements['address1']\r\n || leadMissingRequirements['city']\r\n || leadMissingRequirements['state']\r\n || leadMissingRequirements['zip']\r\n )\r\n ) {\r\n\r\n if (soaType == 'f2f')\r\n this._dialog.open(F2fSoaComponent, {...dialogOptions});\r\n\r\n else\r\n this._dialog.open(RemoteSoaComponent, { ...dialogOptions });\r\n\r\n } else if (!checkReq) {\r\n if (soaType == 'vsig')\r\n this._dialog.open(VsigSoaComponent, { ...dialogOptions });\r\n\r\n } else {\r\n this._dialog.open(LeadMissingRequirementsComponent, {\r\n ...dialogOptions,\r\n data: leadMissingRequirements\r\n });\r\n }\r\n }\r\n\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { throwError, Observable, Subject } from 'rxjs';\r\nimport { catchError, first } from 'rxjs/operators';\r\nimport { environment } from '@env/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport * as constants from '@app/constants';\r\nimport moment from 'moment';\r\nimport { BehaviorSubject, of } from 'rxjs';\r\nimport { ApplicationPlan, SOA } from '@data/lead/lead.interface';\r\nimport { LeadDetail } from '@data/lead/lead.interface';\r\nimport { SearchCriteria } from '@data/quick-search/quick-search.interface';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { search } from '@data/admin/leads.interface';\r\nimport { IDrug } from '@data/quotes/drug.interface';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LeadService {\r\n private alertSubject = new Subject();\r\n private relatedSubject = new Subject();\r\n private ledgerSubject = new Subject();\r\n\r\n private showLead = new BehaviorSubject(\"\");\r\n private showConversation = new BehaviorSubject(\"\");\r\n private showApplication = new BehaviorSubject(\"\");\r\n private showFormChange = new BehaviorSubject(\"\");\r\n private showFormError = new BehaviorSubject(\"\");\r\n private showRelated = new BehaviorSubject(\"\");\r\n private isRelatedTable = new BehaviorSubject(\"\");\r\n private isApplicationTable = new BehaviorSubject(\"\");\r\n private refreshConvTable = new BehaviorSubject(\"\");\r\n private refreshLeadTable = new BehaviorSubject(\"\");\r\n private zipCodeIndex = new BehaviorSubject(\"\");\r\n public providerSubject = new Subject();\r\n private isShrinkTable = new BehaviorSubject(\"\");\r\n private isCrossedItems = new BehaviorSubject(\"\");\r\n private isLeadListItem = new BehaviorSubject(\"\");\r\n\r\n private _leadDetail = new BehaviorSubject(null);\r\n\r\n public access_token: string = \"\";\r\n public lead_details!: LeadDetail;\r\n public leadSelected: boolean = false;\r\n constructor(\r\n private http: HttpClient,\r\n private auth: AuthService\r\n ) {\r\n }\r\n\r\n public setLead(leadDetail: LeadDetail) {\r\n this._leadDetail.next(leadDetail);\r\n }\r\n\r\n public resetLead() {\r\n this._leadDetail.next(null);\r\n }\r\n\r\n public getCurrentLead(): LeadDetail|null {\r\n return this._leadDetail.getValue();\r\n }\r\n\r\n public changedLead() {\r\n return this._leadDetail.asObservable();\r\n }\r\n\r\n public sendLeadListAlert(data: any) {\r\n this.alertSubject.next(data);\r\n }\r\n\r\n public getLeadListAlert(): Observable {\r\n return this.alertSubject.asObservable();\r\n }\r\n\r\n public sendRelatedAlert(data: any) {\r\n this.relatedSubject.next(data);\r\n }\r\n\r\n public getRelatedAlert(): Observable {\r\n return this.relatedSubject.asObservable();\r\n }\r\n\r\n public sendLeadLedger(data: any) {\r\n this.ledgerSubject.next(data);\r\n }\r\n\r\n public getLeadLedger(): Observable {\r\n return this.ledgerSubject.asObservable();\r\n }\r\n\r\n public setShrinkTable(data: any) {\r\n this.isShrinkTable.next(data);\r\n }\r\n\r\n public getShrinkTable(): Observable {\r\n return this.isShrinkTable.asObservable();\r\n }\r\n\r\n /* start : code for to pass the message when to try to delete any\r\n form array value (phone, email & address) */\r\n public setCrossedItems(data: any) {\r\n this.isCrossedItems.next(data);\r\n }\r\n\r\n public getCrossedItems(): Observable {\r\n return this.isCrossedItems.asObservable();\r\n }\r\n\r\n /* end */\r\n\r\n /* code for to pass the message when delete the lead and refresh the lead counts */\r\n\r\n public setLeadListItems(data: any) {\r\n this.isLeadListItem.next(data);\r\n }\r\n\r\n public getLeadListItems(): Observable {\r\n return this.isLeadListItem.asObservable();\r\n }\r\n\r\n /* end */\r\n\r\n public deleteLeads(data: any) {\r\n return this.http.post(environment.api + 'lead/deleteLeads/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getUsers(account_id: string) {\r\n let input = {\r\n search_type: 'simple',\r\n criteria: {\r\n account_id: account_id,\r\n },\r\n field_list: 'user_id,fname,lname',\r\n page_number: 1,\r\n orderby_field: 'fname',\r\n orderby_direction: 'asc',\r\n };\r\n return this.http.post(environment.api + 'user/search', input).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getDisposition(data: any) {\r\n return this.http.post(environment.api + 'disposition/search/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getLeadApps(lead_id: string) {\r\n var data = {\r\n criteria: {\r\n lead_id: lead_id,\r\n },\r\n search_type: 'simple',\r\n orderby_field: 'user_id',\r\n orderby_direction: 'desc',\r\n field_list:\r\n 'product_type_desc,app_id,plan_name,carrier_name,user_id,dispo_id,dispo_name,dispo_date',\r\n };\r\n return this.http.post(environment.api + 'lead/app/search/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public assignLeadsToUserByAdmin(data: any) {\r\n return this.http\r\n .post(environment.api + 'lead/assignLeadsToUserByAdmin/', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public assignDispositionToLeads(data: any) {\r\n return this.http\r\n .post(environment.api + 'lead/assignDispositionToLeads/', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadDisposition(lead_id: string, data: any) {\r\n return this.http\r\n .post(environment.api + 'lead/' + lead_id + '/disposition/', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadAppointment(user_id: string, data: any) {\r\n return this.http\r\n .post(environment.api + 'user/' + user_id + '/appointment/', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public exportLead(exportParams: any) {\r\n var params: any;\r\n switch (exportParams.export_type) {\r\n case 'account':\r\n params = {\r\n search_type: 'simple',\r\n criteria: {\r\n export_type: {\r\n type: 'simple',\r\n value: [constants.CONSTANTS.EXPORT_LEAD.account.export_type],\r\n },\r\n account_id: {\r\n type: 'simple',\r\n value: [exportParams.account_id],\r\n },\r\n user_id: {\r\n type: 'simple',\r\n value: [exportParams.user_id],\r\n },\r\n },\r\n field_list: '',\r\n page_number: 1,\r\n records_per_page: 10,\r\n include_deleted: 0,\r\n };\r\n break;\r\n case 'lead_list':\r\n params = {\r\n search_type: 'simple',\r\n criteria: {\r\n export_type: {\r\n type: 'simple',\r\n value: [constants.CONSTANTS.EXPORT_LEAD.lead_list.export_type],\r\n },\r\n account_id: {\r\n type: 'simple',\r\n value: [exportParams.account_id],\r\n },\r\n user_id: {\r\n type: 'simple',\r\n value: [exportParams.user_id],\r\n },\r\n lead_id_list: {\r\n type: 'set',\r\n value: exportParams.lead_list,\r\n },\r\n },\r\n field_list: '',\r\n page_number: 1,\r\n records_per_page: 10,\r\n include_deleted: 0,\r\n };\r\n break;\r\n case 'recent_lead':\r\n params = {\r\n search_type: 'simple',\r\n criteria: {\r\n export_type: {\r\n type: 'simple',\r\n value: [constants.CONSTANTS.EXPORT_LEAD.recent_lead.export_type],\r\n },\r\n account_id: {\r\n type: 'simple',\r\n value: [exportParams.account_id],\r\n },\r\n user_id: {\r\n type: 'simple',\r\n value: [exportParams.user_id],\r\n },\r\n },\r\n field_list: '',\r\n page_number: 1,\r\n records_per_page: 10,\r\n include_deleted: 0,\r\n };\r\n break;\r\n case 'search_criteria':\r\n params = exportParams.search_criteria;\r\n params.criteria.export_type = {\r\n type: 'simple',\r\n value: [constants.CONSTANTS.EXPORT_LEAD.search_criteria.export_type],\r\n };\r\n params.criteria.account_id = {\r\n type: 'simple',\r\n value: [exportParams.account_id],\r\n };\r\n params.criteria.user_id = {\r\n type: 'simple',\r\n value: [exportParams.user_id],\r\n };\r\n break;\r\n }\r\n return this.http.post(environment.api + 'leadExport/', params).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public exportLeadPlan(guidID: string) {\r\n return this.http.get(environment.api + 'leadPlanCurrent/export/' + guidID).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addNewLead(params: any) {\r\n return this.http.post((environment.api) + \"lead\", params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getCountiesByZip(zip: number) {\r\n return this.http.get((environment.api) + `geo/countiesByZip/${zip}`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadSearch(params: any) {\r\n return this.http.post((environment.api) + `lead/search/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadPlanCurrentSearch(leadId:string){\r\n let params = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"lead_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [leadId]\r\n }\r\n },\r\n \"records_per_page\":\"10\",\r\n \"page_number\":\"1\",\r\n \"field_list\": \"\"\r\n };\r\n\r\n return this.http.post((environment.api) + `leadPlanCurrentCache/search/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getConversationlogRecent(data: any) {\r\n return this.http.post(environment.api + 'conversationlog/recent', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getLeadRecent(data: any, type: string) {\r\n return this.http.post(environment.api + 'lead/' + type + '/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getApplicationRecent(data: any) {\r\n return this.http.post(environment.api + 'app/recent/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteApplication(lead_id : any, app_id: any) {\r\n return this.http.get(environment.api + 'lead/' + lead_id + '/app/' + app_id + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public deleteLeadPlanCurrent(lead_id : any, app_id: any) {\r\n return this.http.get(environment.api + 'lead/' + lead_id + '/leadPlanCurrent/' + app_id + '/delete/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error)\r\n })\r\n )\r\n }\r\n\r\n public searchLeadCurrentPlan(data: any) {\r\n return this.http.post(environment.api + 'leadPlanCurrent/planSearch', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addLeadCurrentPlan(lead_id: any, data: any) {\r\n return this.http.post(environment.api + 'lead/' + lead_id + '/leadPlanCurrent' , data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadCategoryCount(user_id: string) {\r\n var data = {\r\n user_id: [user_id]\r\n }\r\n return this.http.post((environment.api) + `leadCategoryCount`, data).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getSoAeSignature(agentSignature: string) {\r\n let data = {\r\n \"account_id\": this.auth.account_id,\r\n \"user_id\": this.auth.getToken().user_id,\r\n \"esignature_type_id\": \"1\",\r\n \"data\": \"json xml pdf binary\",\r\n \"signature\": agentSignature,\r\n \"signature_date\": moment().format('LL')\r\n }\r\n return this.http.post((environment.api) + `esignature`, data).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getLeadDetails(lead_id: string): Observable {\r\n return this.http.get((environment.api) + `lead/` + lead_id).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getDiscrepancy(lead_id: string): Observable {\r\n return this.http.get((environment.api) + `lead/` + lead_id+'/mid').pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n\r\n public searchMIDLeads(lead_id: string): Observable {\r\n return this.http.get((environment.api) + `lead/` + lead_id+'/mid/search/').pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public linkLeadToMID(lead_id: string,ssoValue:string){\r\n return this.http.get((environment.api) + `lead/` + lead_id+'/mid/link/'+ssoValue).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public unLinkLeadToMID(lead_id: string){\r\n return this.http.get((environment.api) + `lead/` + lead_id+'/mid/unlink/').pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public pushToMID(lead_id: string): Observable {\r\n return this.http.get((environment.api) + `lead/` + lead_id+'/mid/push').pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getb2bpartner(type: string) {\r\n let criteria;\r\n let account_id;\r\n if (type === 'new-lead') {\r\n criteria = {\r\n \"search_type\": \"simple\", \"criteria\": { \"account_id\": { \"type\": \"simple\", \"value\": [environment.INSURACTIVE_ACCOUNT_ID] } }, \"field_list\": \"\"\r\n }\r\n account_id = environment.INSURACTIVE_ACCOUNT_ID;\r\n } else {\r\n criteria = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"account_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.auth.account_id]\r\n }\r\n },\r\n \"field_list\": \"\",\r\n \"orderby_field\": \"company\",\r\n \"orderby_direction\": \"asc\"\r\n }\r\n account_id = this.auth.account_id;\r\n }\r\n return this.http.post((environment.api) + `account/` + account_id + `/b2bpartner/search`, criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getRelatedLeads(lead_id: string, data: any) {\r\n return this.http.post(environment.api + 'lead/' + lead_id + '/leadRelated/search', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getClientInvite(payload: any) {\r\n return this.http.post((environment.api) + `clientInvite`, payload).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public saveLeadDetails(lead_id: string, data: any) {\r\n return this.http.post((environment.api) + `lead/` + lead_id, data).pipe(\r\n first(),\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public createEmailDraft(params: any) {\r\n return this.http.post((environment.api) + `lead/${this.lead_details.lead_id}/email/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendDraftEmail(email_id: string) {\r\n return this.http.get((environment.api) + `LeadHealthRecordProvider/invite/lead/${this.lead_details.lead_id}/send/email_id/${email_id}`,).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addRelatedLeads(data: any) {\r\n return this.http.post(environment.api + 'lead/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getDispositionList(params: any) {\r\n return this.http.post((environment.api) + `disposition/search/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n\r\n public getTrackingCode(b2bpartner_id: string) {\r\n let criteria = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"b2bpartner_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [b2bpartner_id]\r\n }\r\n },\r\n \"field_list\": \"tracking_code, b2bpartner_id, active\",\r\n \"page_number\": 1,\r\n \"orderby_field\": \"tracking_code\",\r\n \"orderby_direction\": \"asc\"\r\n }\r\n return this.http.post((environment.api) + `account/` + environment.INSURACTIVE_ACCOUNT_ID + `/b2bpartnerTrackingCode/search`, criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getDispositionAppData(params: any) {\r\n return this.http.post((environment.api) + `lead/app/search/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteRelatedLeads(lead_id: string, related_lead_id: string) {\r\n return this.http.get(environment.api + 'lead/' + lead_id + '/leadRelated/' + related_lead_id + '/delete').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addDisposition(params: any) {\r\n return this.http.post((environment.api) + `lead/${this.lead_details.lead_id}/disposition/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addAppointment(params: any) {\r\n return this.http.post((environment.api) + `user/${this.auth?.user_details?.user_id}/appointment/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updateRelatedLeads(lead_id: string, related_lead_id: string, data: any) {\r\n return this.http.post(environment.api + 'lead/' + lead_id + '/leadRelated/' + related_lead_id, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadImportFileTemplate() {\r\n return this.http.get(environment.api + 'leadImportFile/template').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadVendorSearch(data: any) {\r\n return this.http.post(environment.api + 'LeadVendor/search', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getEmailMsg(entity_id: string) {\r\n return this.http.get((environment.api) + `emailMessage/${entity_id}`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendShowLead(input: string) {\r\n this.showLead.next(input);\r\n }\r\n\r\n public getShowLead(): Observable {\r\n return this.showLead.asObservable();\r\n }\r\n\r\n public addSearchedRelatedLead(lead_id: string, data: any) {\r\n return this.http.post(environment.api + 'lead/' + lead_id + '/leadRelated', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addAppointmentLead(params: any, lead_id: string) {\r\n return this.http.post((environment.api) + `lead/${lead_id}/appointment/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAppointment_TaskData(id: string) {\r\n return this.http.get((environment.api) + `appointment/${id}`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteAppointment_Task(id: string) {\r\n return this.http.get(environment.api + `appointment/${id}/delete`).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getleadType() {\r\n return this.http.get(environment.api + `lead/types`).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getCampaignCode(data: any) {\r\n return this.http.post(environment.api + `account/campaign/search/`, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getProductType(payload: SearchCriteria) {\r\n return this.http.post(environment.api + `productType/search`, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getTagSearch(payload: SearchCriteria) {\r\n return this.http.post(environment.api + `tag/search/`, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendShowConversation(input: string) {\r\n this.showConversation.next(input);\r\n }\r\n\r\n public getShowConversation(): Observable {\r\n return this.showConversation.asObservable();\r\n }\r\n\r\n public sendShowApplication(input: string) {\r\n this.showApplication.next(input);\r\n }\r\n\r\n public getShowApplication(): Observable {\r\n return this.showApplication.asObservable();\r\n }\r\n\r\n public addConversationNotes(data: any) {\r\n return this.http.post((environment.api) + `note`, data).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getCampaignSegment(data: any) {\r\n return this.http.post((environment.api) + `campaignSegment/search/`, data).pipe(catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addConversationEmail(data: any) {\r\n return this.http.post((environment.api) + `emailMessage/send`, data).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addConversationTask(user_id: string, data: any) {\r\n return this.http\r\n .post(environment.api + 'lead/' + user_id + '/appointment/', data)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadImportFile(data: any) {\r\n return this.http.post(environment.api + 'leadImportFile/', data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadImportFileUpload(fileName: any, lead_import_file_id: string) {\r\n const formData = new FormData();\r\n formData.append('file', fileName[0]);\r\n const headers = new HttpHeaders({ 'Authorization': \"Bearer\" + \" \" + this.access_token, 'Content-Type': '' });\r\n return this.http.put(environment.api + 'leadImportFile/' + lead_import_file_id + '/fileUpload', formData, { headers: headers }).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public downloadExportFile(id: string) {\r\n\r\n return this.http.get(environment.api + 'leadExport/'+ id, {responseType: 'text'}).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public downloadExportPDPFile(id: string) {\r\n return this.http.get(environment.api + 'PDPRetentionReport/'+ id, {responseType: 'text'}).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public downloadLeadExportCurrentFile(id: string) {\r\n return this.http.get(environment.api + 'leadPlanCurrent/download/'+ id, {responseType: 'text'}).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendFormChangeAlert(input: string) {\r\n this.showFormChange.next(input);\r\n }\r\n\r\n public getFormChangeAlert(): Observable {\r\n return this.showFormChange.asObservable();\r\n }\r\n\r\n public getContactPermissionHistory(lead_id: string, payload: any) {\r\n return this.http\r\n .post(environment.api + 'lead/' + lead_id + '/contactPermissionHistory/search', payload)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getNotesHistory(params: any) {\r\n return this.http\r\n .post(environment.api + 'note/search', params)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addApplicationNote(params: any) {\r\n return this.http.post((environment.api) + `note`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getApplicationNoteView(id: string) {\r\n return this.http.get((environment.api) + `note/${id}`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n public getDispoApplication(id: string) {\r\n return this.http.get((environment.api) + `dispositionLog/${id}`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendErrorAlert(input: string) {\r\n this.showFormError.next(input);\r\n }\r\n\r\n public getErrorAlert(): Observable {\r\n return this.showFormError.asObservable();\r\n }\r\n\r\n public getApplicationMethod() {\r\n return this.http.get((environment.api) + `app/types`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getPlanDetails(plan_data: ApplicationPlan) {\r\n return this.http.get((environment.api) + `lead/` + plan_data.lead_id + `/app/` + plan_data.app_id + `?includeCurrentPlan=1`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public saveWithStatus(lead_id: string, app_id: string, appUpdateObj: any) {\r\n return this.http.post((environment.api) + `lead/` + lead_id + `/app/` + app_id, appUpdateObj).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updatePlanDetails(plan_data: ApplicationPlan, formData: any) {\r\n return this.http.post((environment.api) + `lead/` + plan_data.lead_id + `/app/` + plan_data.app_id, formData).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n\r\n public getStatusHistory(params: any) {\r\n return this.http\r\n .post(environment.api + 'dispositionLog/search', params)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAdvisor(id: string) {\r\n return this.http\r\n .get(environment.api + `referral/${id}`)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public advisorSearch(params: any) {\r\n return this.http\r\n .post(environment.api + `referral/search`, params)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public triggerSilverPopCall(params: any) {\r\n return this.http\r\n .post(environment.api + `Silverpop/`, params)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getAffiliateList() {\r\n return this.http\r\n .get(environment.api + `referral/getAffiliateList`)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public connectAdvisor(referral_id: number, lead_id: string) {\r\n return this.http\r\n .get(environment.api + `referral/${referral_id}/lead/${lead_id}`)\r\n .pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public sendShowRelated(input: string) {\r\n this.showRelated.next(input);\r\n }\r\n\r\n public getShowRelated(): Observable {\r\n return this.showRelated.asObservable();\r\n }\r\n\r\n public sendRelatedTable(input: string) {\r\n this.isRelatedTable.next(input);\r\n }\r\n\r\n public getRelatedTable(): Observable {\r\n return this.isRelatedTable.asObservable();\r\n }\r\n\r\n public sendApplicationTable(input: string) {\r\n this.isApplicationTable.next(input);\r\n }\r\n\r\n public getApplicationTable(): Observable {\r\n return this.isApplicationTable.asObservable();\r\n }\r\n\r\n public sendRefreshConvTable(input: string) {\r\n this.refreshConvTable.next(input);\r\n }\r\n\r\n public getRefreshConvTable(): Observable {\r\n return this.refreshConvTable.asObservable();\r\n }\r\n\r\n public getSOASearch(payload: SOA) {\r\n\r\n return this.http.post(environment.api + `soa/search`, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getSOAPDF(soa_id: string) {\r\n return this.http.get(environment.api + `soa/` + soa_id + `/pdf/`).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteDrug(leadId: string, drugId: string) {\r\n return this.http.get(environment.api + `lead/` + leadId + `/drug/` + drugId + `/delete`).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addDrug(leadId: string, payload: any) {\r\n return this.http.post(environment.api + `lead/` + leadId + `/drug`, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public bulkAddDrugs(leadId: string, payload: IDrug[]) {\r\n return this.http.post(environment.api + `lead/` + leadId + `/drug`, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public selectDrug(leadId: string, drugId: any, payload: any) {\r\n return this.http.post(environment.api + `lead/` + leadId + `/drug/` + drugId, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getClientCredentials(app_id: string) {\r\n return this.http.get(environment.api + 'clientInvite/searchByApp/' + app_id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public leadAicoePdf(lead_id: string, app_id: string) {\r\n return this.http.get(environment.api + 'lead/' + lead_id + '/app/' + app_id + '/aicoe_data/pdf/', { responseType: 'arraybuffer' }).pipe(\r\n catchError((error) => {\r\n if (error.status === 404) {\r\n return of(undefined)\r\n } else {\r\n return throwError(() => error);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public enrollmentPDF(app_id: string) {\r\n return this.http.get(environment.api + 'app/' + app_id + '/enrollment/pdf/').pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getClientFirstVistiDate(payload: search) {\r\n return this.http.post(environment.api + 'clientInvite/search/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public getCarrierPlanGeography(params:any,target:string=\"api\") {\r\n var payload:any = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": this.generateSearchCriteria(params),\r\n \"target\":target\r\n }\r\n\r\n return this.http.post(environment.api + 'carrierPlanGeography/search/', payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public generateSearchCriteria(criteria:any): object {\r\n \tlet searchCriteria:any = {};\r\n \tconst simpleSearch = [\r\n \t\t\"user_id\",\r\n \t\t\"lead_id\",\r\n \t\t\"zip\",\r\n \"county\"\r\n ]\r\n\r\n \tfor (const property in criteria) {\r\n \t\tif (\r\n \t\t\tcriteria[property] === undefined ||\r\n criteria[property] === null ||\r\n criteria[property] === \"\" ||\r\n criteria[property] === 0 ||\r\n criteria[property].length === 0\r\n \t\t) {\r\n \t\t\tcontinue;\r\n \t\t}\r\n \t if (simpleSearch.indexOf(property) > -1) {\r\n \t\t\tsearchCriteria[property] = {\r\n \t\t\t\ttype: \"simple\",\r\n \t\t\t\tvalue: [criteria[property].toString()],\r\n \t\t\t};\r\n \t\t}\r\n \t}\r\n \treturn searchCriteria;\r\n }\r\n\r\n public hraEnroll(app_id: string) {\r\n return this.http.get(environment.api + 'appHealthRiskAssessment/enroll/' + app_id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public hraCheckStatus(app_id: string) {\r\n return this.http.get(environment.api + 'appHealthRiskAssessment/checkStatus/' + app_id).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ViewSwapperService {\r\n\r\n private panel: MatSidenav;\r\n private vcf: ViewContainerRef;\r\n\r\n constructor() {}\r\n\r\n setPanel(sidenav: MatSidenav) {\r\n this.panel = sidenav;\r\n }\r\n\r\n setContentVcf(viewContainerRef: ViewContainerRef) {\r\n this.vcf = viewContainerRef;\r\n }\r\n\r\n private createView(template: TemplateRef) {\r\n this.vcf.clear();\r\n this.vcf.createEmbeddedView(template);\r\n }\r\n\r\n open(template: any) {\r\n this.createView(template);\r\n return this.panel.open();\r\n }\r\n\r\n close() {\r\n return this.panel.close();\r\n }\r\n\r\n toggle() {\r\n return this.panel.toggle();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError, throwError } from 'rxjs';\r\nimport { environment } from '@env/environment';\r\nimport { Reports } from '@data/reports/reports.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportsService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getReportData(payload: Reports) {\r\n return this.http.post((environment.api) + \"report\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n public getCSVData(payload:Reports){\r\n\r\n var reportAPI = '';\r\n\r\n //set the API URL for report_type\r\n switch(payload.report_type){\r\n case 'aicoe':\r\n case 'f2f':\r\n case 'vsig':\r\n case 'mid':\r\n reportAPI = 'app/aicoe_data/csv';\r\n break;\r\n case 'selfservice':\r\n reportAPI = 'SelfServiceEmailInvite/report/';\r\n break;\r\n }\r\n\r\n return this.http.post((environment.api) + reportAPI, payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n }\r\n\r\n public reportRequestByDrug(payload: Reports) {\r\n return this.http.post((environment.api) + \"search/leadsByDrug/\", payload).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public downloadLeadsByDrug(id: string) {\r\n return this.http.get(environment.api + 'search/leadsByDrug/download/'+ id, {responseType: 'text'}).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public reportRequestByPharmacy(payload: Reports) {\r\n return this.http.post((environment.api) + \"search/leadsByPharmacy/\", payload)\r\n .pipe(\r\n catchError( error => throwError(() => error) ),\r\n );\r\n }\r\n\r\n public downloadLeadsByPharmacy(id: string) {\r\n return this.http.get(environment.api + 'search/leadsByPharmacy/download/'+ id, { responseType: 'text' })\r\n .pipe(\r\n catchError( error => throwError(() => error) ),\r\n );\r\n }\r\n\r\n public reportRequestByDisruption(payload: Reports) {\r\n return this.http.post((environment.api) + \"search/leadsByDisruption/\", payload)\r\n .pipe(\r\n catchError( error => throwError(() => error) ),\r\n );\r\n }\r\n\r\n public downloadLeadsByDisruption(id: string) {\r\n return this.http.get(environment.api + 'search/leadsByDisruption/download/'+ id, { responseType: 'text' })\r\n .pipe(\r\n catchError( error => throwError(() => error) ),\r\n );\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { IUser, IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { userRole } from '@data/users/sms-users.interface';\r\nimport { environment } from '@env/environment';\r\nimport { catchError, shareReplay, map, first, Subject, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n private _loggedInUserSettings$ = new Subject();\r\n private _cachedLoggedInUserSettings: IUserSettings | null = null;\r\n\r\n constructor(\r\n private _http: HttpClient,\r\n private _authService: AuthService\r\n ) { }\r\n\r\n public getUserView(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId)\r\n .pipe(\r\n catchError(error => { return throwError(() => error) })\r\n );\r\n }\r\n\r\n public getUserRoles(data: userRole, account_id: string) {\r\n return this._http.post((environment.api) + \"account/\" + account_id + \"/role/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getUserDetailsAndPermissions(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId + \"?return_acl=1\", { observe: 'response' })\r\n .pipe(\r\n catchError(error => { return throwError(() => error); }),\r\n );\r\n }\r\n\r\n public updateExistingUser(data: any, userId: string) {\r\n return this._http.post((environment.api) + \"user/\" + userId, data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getUserAccess(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId + \"/userAccess\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getUserData(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getUserSettings(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId + \"/settings\")\r\n .pipe(\r\n shareReplay(1),\r\n catchError((error) => { return throwError(() => error); })\r\n );\r\n }\r\n\r\n public updateUserSettings(data: IUserSettings, userId: string) {\r\n return this._http.post((environment.api) + \"user/\" + userId + \"/settings\", data)\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); })\r\n );\r\n }\r\n\r\n public userCredentials(data: any, id: string) {\r\n return this._http.post((environment.api) + \"user/\" + id + \"/userCredentials/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public updateExistingCredentials(userId: string, credentialsId: string, credentialsParams: any) {\r\n return this._http.post((environment.api) + \"user/\" + userId + \"/userCredentials/\" + credentialsId + \"/changePassword\", credentialsParams).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public deleteUser(userId: string) {\r\n return this._http.get((environment.api) + \"user/\" + userId + \"/delete\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addCarrier(data: any, userId: string) {\r\n return this._http.post((environment.api) + \"user/\" + userId + \"/usercarrier\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n public deleteCarrier(data: any) {\r\n return this._http.post((environment.api) + \"user/usercarrier/deleteSelected\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public getAllUsers(data: any) {\r\n return this._http.post((environment.api) + \"user/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public addNewUser(data: any) {\r\n return this._http.post((environment.api) + \"user\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public accountOwnerNameSearch(data: any) {\r\n return this._http.post((environment.api) + \"user/search\", data).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n\r\n public bulkDeleteUser(userIds: any) {\r\n return this._http.post((environment.api) + \"user/bulkDelete\", userIds).pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n })\r\n )\r\n }\r\n public userInvite(userId:string){\r\n return this._http.get((environment.api) + \"user/\"+userId+\"/userInvite/\").pipe(\r\n catchError((error) => {\r\n return throwError(() => error);\r\n }))\r\n }\r\n\r\n public selfServiceConfig(user_id: any, criteria: any) {\r\n return this._http.post((environment.api) + \"user/\" + user_id + \"/selfServiceConfig/search/\", criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public selfServiceConfigUpdate(user_id: any, criteria: any) {\r\n return this._http.post((environment.api) + \"user/\" + user_id + \"/selfServiceConfig/\", criteria).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public userStateLicenseNumber(user_id: any, state_id: any) {\r\n return this._http.get((environment.api) + \"user/\" + user_id + \"/stateLicenseNumber/\" + state_id).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QuickSearchComponent } from './quick-search/quick-search.component';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { UserProfileComponent } from './user-profile/user-profile.component';\r\nimport { DatePipe } from '@angular/common';\r\nimport { NotificationComponent } from './notification/notification.component';\r\nimport { ImportantNoticeComponent } from './important-notice/important-notice.component';\r\nimport { PhoneDialerDisplayComponent } from './phone-dialer-display/phone-dialer-display.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n QuickSearchComponent,\r\n UserProfileComponent,\r\n NotificationComponent,\r\n ImportantNoticeComponent,\r\n PhoneDialerDisplayComponent\r\n ],\r\n imports: [CommonModule, SharedModule],\r\n providers: [DatePipe],\r\n exports: [\r\n QuickSearchComponent,\r\n UserProfileComponent,\r\n NotificationComponent,\r\n ImportantNoticeComponent,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class HeaderModalsModule {}\r\n","
\r\n
\r\n

Add Agent Writing Number

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

{{ message.text }}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Carrier\r\n \r\n {{elem.name}}\r\n \r\n \r\n\r\n \r\n Product Type\r\n \r\n \r\n {{elem.product_type_desc}}\r\n \r\n\r\n \r\n {{elem}}\r\n \r\n\r\n \r\n {{elem.product_type_desc}}\r\n \r\n \r\n \r\n\r\n \r\n Agent Writing Number\r\n \r\n \r\n
\r\n
\r\n \r\n Plan Year\r\n \r\n \r\n {{year}}\r\n {{year1}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { CarrierService } from '@data/carrier/carrier.service';\r\nimport { AdminService } from '@data/services/admin/admin.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-agent-writing-number',\r\n templateUrl: './agent-writing-number.component.html',\r\n styleUrls: ['./agent-writing-number.component.scss']\r\n})\r\nexport class AgentWritingNumberComponent implements OnInit {\r\n private agentCarrierSubs: Subscription;\r\n private productTypeSubs: Subscription;\r\n private campaignSegmentSubs: Subscription;\r\n private listActiveBySubs: Subscription;\r\n private addCarrierSubs: Subscription;\r\n private productName: any = [];\r\n private selectedCarrierId: number;\r\n private selectedProductId: number;\r\n private formData: any = [];\r\n public agentWritingForm: UntypedFormGroup;\r\n public carrierData: any = [];\r\n public productType: any = [];\r\n public showDefault: boolean = true;\r\n public activeProduct: any = [];\r\n public inactiveProduct: any = [];\r\n public year: number;\r\n public year1: number;\r\n public message: any = {};\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public user_id: any,\r\n private adminService: AdminService,\r\n private _carrierSvc: CarrierService,\r\n private fb: UntypedFormBuilder,\r\n private dialogRef: MatDialogRef,\r\n private userService: UserService,\r\n private leadService: LeadService,\r\n private toastMsgService: ToastMsgService\r\n ) {\r\n this.agentWritingForm = this.fb.group({\r\n name: new FormControl('', Validators.required),\r\n product_type_desc: new FormControl('', Validators.required),\r\n agent_writing_number: new FormControl('', Validators.required),\r\n certification_year: new FormControl('')\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAgentCarrier()\r\n this.getProductType()\r\n this.getCampaignSegment()\r\n this.getCertificationYear()\r\n }\r\n // method to get agent carrier\r\n private getAgentCarrier() {\r\n let payload = {\r\n criteria: {\r\n carrier_id: {\r\n type: \"range\",\r\n value: [\"1\", \"*\"]\r\n }\r\n },\r\n field_list: \"name,product_id,product_name,carrier_id\",\r\n page_number: 1,\r\n search_type: \"simple\"\r\n }\r\n this.agentCarrierSubs = this._carrierSvc.getCarriers(payload).subscribe({\r\n next: (elem) => {\r\n this.carrierData = elem\r\n this.agentWritingForm.patchValue({\r\n name: this.carrierData.name\r\n })\r\n },\r\n error: (err) => {\r\n this.message = this.toastMsgService.showError(err.error.message, true);\r\n this.clearMessage(30000);\r\n },\r\n complete: () => { }\r\n\r\n })\r\n }\r\n\r\n // method to get product type\r\n private getProductType() {\r\n let payload = {\r\n criteria: {\r\n product_type_id: {\r\n type: \"range\",\r\n value: [1, \"*\"]\r\n }\r\n },\r\n field_list: \"\",\r\n search_type: \"simple\"\r\n }\r\n this.productTypeSubs = this.leadService.getProductType(payload).subscribe({\r\n next: (elem) => {\r\n if (elem) {\r\n this.productType = elem\r\n this.agentWritingForm.patchValue({\r\n product_type_desc: this.productType.product_type_desc\r\n })\r\n }\r\n },\r\n error: (err) => {\r\n this.message = this.toastMsgService.showError(err.error.message, true);\r\n this.clearMessage(30000);\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n\r\n // method to get campaign segment\r\n private getCampaignSegment() {\r\n let payload = {\r\n criteria: {\r\n campaign_id: {\r\n type: \"range\",\r\n value: [1, \"*\"]\r\n }\r\n },\r\n field_list: \"\",\r\n search_type: \"simple\"\r\n }\r\n this.campaignSegmentSubs = this.leadService.getCampaignSegment(payload).subscribe({\r\n next: (elem: any) => {\r\n },\r\n error: (err) => {\r\n this.message = this.toastMsgService.showError(err.error.message, true);\r\n this.clearMessage(30000);\r\n },\r\n complete: () => { }\r\n\r\n })\r\n }\r\n\r\n //method to get active product types for carrier as per selection\r\n public listActiveByCarrier(event: MatSelectChange) {\r\n let filteredData = this.carrierData.filter((res: any) => res.name == event.value)\r\n this.selectedCarrierId = filteredData[0].carrier_id\r\n if (this.selectedCarrierId) {\r\n let payload = {\r\n carrier_ids: this.selectedCarrierId\r\n }\r\n this.listActiveBySubs = this.adminService.listActiveByCarrier(payload).subscribe({\r\n next: (elem) => {\r\n this.activeProduct = elem\r\n this.showDefault = false\r\n let activeNames = this.activeProduct.map((elem: any) => { return elem.product_type_desc })\r\n this.productName = this.productType.map((elem: any) => { return elem.product_type_desc })\r\n this.inactiveProduct = this.productName.filter((elem: any) => { return activeNames.indexOf(elem) == -1 })\r\n },\r\n error: (err) => {\r\n this.message = this.toastMsgService.showError(err.error.message, true);\r\n this.clearMessage(30000);\r\n },\r\n complete: () => { }\r\n\r\n })\r\n\r\n }\r\n }\r\n\r\n // method to get product type id for adding agent\r\n public productTypeId(event: MatSelectChange) {\r\n let filteredData = this.productType.filter((res: any) => res.product_type_desc == event.value)\r\n this.selectedProductId = filteredData[0].product_type_id\r\n }\r\n\r\n // method to add agent\r\n public addAgent() {\r\n if (this.agentWritingForm.valid) {\r\n this.formData = this.agentWritingForm.value\r\n let data = {\r\n agent_writing_number: this.formData.agent_writing_number,\r\n carrier_id: this.selectedCarrierId,\r\n certification_year: this.formData.certification_year,\r\n product_type_id: this.selectedProductId\r\n }\r\n if (data) {\r\n this.addCarrierSubs = this.userService.addCarrier(data, this.user_id).subscribe({\r\n next: (elem) => {\r\n if (elem) {\r\n this.message = this.toastMsgService.showSuccess(\"Agent writing number has been added successfully\", true);\r\n this.clearMessage(15000);\r\n setTimeout(() => {\r\n this.dialogRef.close(elem)\r\n }, 2000)\r\n\r\n }\r\n },\r\n error: (err) => {\r\n this.message = this.toastMsgService.showError(\"Agent Writing Number is already present for carrier with this product type\", true);\r\n this.clearMessage(30000);\r\n setTimeout(() => {\r\n this.dialogRef.close()\r\n }, 2000)\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n }\r\n }\r\n //method to get certification year\r\n private getCertificationYear() {\r\n this.year = new Date().getFullYear()\r\n this.year1 = new Date().getFullYear() + 1\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this.toastMsgService.resetMessage();\r\n }, timer);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.agentCarrierSubs)\r\n this.agentCarrierSubs.unsubscribe();\r\n if (this.productTypeSubs)\r\n this.productTypeSubs.unsubscribe();\r\n if (this.campaignSegmentSubs)\r\n this.campaignSegmentSubs.unsubscribe();\r\n if (this.listActiveBySubs)\r\n this.listActiveBySubs.unsubscribe();\r\n if (this.addCarrierSubs)\r\n this.addCarrierSubs.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n

{{ errorMsg }}

\r\n
\r\n
\r\n
\r\n warning\r\n
\r\n

Are you sure you want to delete this Agent Writing Number record?

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { AssignLeadAlertComponent } from '../assign-lead-alert/assign-lead-alert.component';\r\n\r\n@Component({\r\n selector: 'app-delete-agent',\r\n templateUrl: './delete-agent.component.html',\r\n styleUrls: ['./delete-agent.component.scss']\r\n})\r\nexport class DeleteAgentComponent implements OnInit {\r\n private deleteCarrierSubs: Subscription;\r\n private deleteIds: any = []\r\n public agentToDelete: any = []\r\n public isLoading: any = false\r\n public errorMsg: string | null = null;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private userService: UserService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.agentToDelete = this.data\r\n this.getAllDeleteIds()\r\n }\r\n\r\n // method to get ids for deletion\r\n private getAllDeleteIds() {\r\n this.data.map((elem: any) => {\r\n this.deleteIds.push(elem.user_carrier_id)\r\n })\r\n }\r\n\r\n // method to call the delete API\r\n public deleteAgent() {\r\n this.isLoading = true\r\n let payload = {\r\n user_carrier_ids: this.deleteIds\r\n }\r\n this.deleteCarrierSubs = this.userService.deleteCarrier(payload).subscribe({\r\n next: (elem: any) => {\r\n this.isLoading = false\r\n this.dialogRef.close(elem)\r\n\r\n },\r\n error: (err) => {\r\n this.isLoading = false\r\n this.showErrorMessage(err.error.message)\r\n this.dialogRef.close()\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.errorMsg = errorMsg;\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, 3000);\r\n }\r\n\r\n public clearMessage() {\r\n this.errorMsg = null;\r\n }\r\n ngOnDestroy() {\r\n if (this.deleteCarrierSubs)\r\n this.deleteCarrierSubs.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

User Profile

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

Changes have been made. Click \"Update\" to save them

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

{{ message.text }}

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

User Information

\r\n
\r\n \r\n First Name\r\n \r\n Please enter first name\r\n \r\n \r\n Last Name\r\n \r\n Please enter last name\r\n \r\n

\r\n Account Owner\r\n \r\n {{isAccountOwner}}\r\n

\r\n
\r\n
\r\n \r\n Gender\r\n \r\n Male\r\n \r\n Female\r\n \r\n \r\n \r\n \r\n Company\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

User Details

\r\n
\r\n

Activate

\r\n \r\n
\r\n
\r\n
\r\n \r\n Username\r\n \r\n \r\n \r\n User ID\r\n \r\n \r\n \r\n Role Type\r\n \r\n \r\n {{elem.role_name}}\r\n \r\n \r\n
\r\n
\r\n \r\n Last Activate/Deactivate Date\r\n \r\n \r\n \r\n Registration Date\r\n \r\n \r\n \r\n Previous Login\r\n \r\n \r\n
\r\n
\r\n \r\n NPN\r\n \r\n \r\n \r\n Reference ID\r\n \r\n \r\n
\r\n
\r\n
\r\n

Account

\r\n
\r\n \r\n Account ID\r\n \r\n \r\n \r\n Account Owner Name\r\n \r\n \r\n
\r\n
\r\n
\r\n

Username

\r\n
\r\n \r\n Username\r\n \r\n Must be between 6-15 alphanumeric characters.\r\n Username must be 6-15 letters or numbers.\r\n \r\n
\r\n
\r\n
\r\n

Update Password

\r\n
\r\n \r\n Current Password\r\n \r\n {{showCurrentPassword ?'visibility_off':'visibility'}}\r\n The current password entered is incorrect\r\n \r\n \r\n New Password*\r\n \r\n {{showNewPassword ?'visibility_off':'visibility'}}\r\n \r\n \r\n Confirm Password*\r\n \r\n {{showConfirmPassword ?'visibility_off':'visibility'}}\r\n New Password and Confirm Password must be match.\r\n \r\n
\r\n\r\n
\r\n

Passwords must accomodate as follows

\r\n
    \r\n
  • At least 8 characters
  • \r\n
  • At least 1 Capital Letter
  • \r\n
  • At least 1 Lowercase Letter
  • \r\n
  • At least 1 number
  • \r\n
  • Must include special characters of @ # $ !
  • \r\n
\r\n

New password does not meet the required criteria.

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

Agent Writing Numbers

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

No writing numbers

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

AWN Sync

\r\n \r\n \r\n
{{userProfileForm.value.cm_sync_ignore == 1 ? 'ON' : 'OFF'}}
\r\n
|
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n   \r\n Carrier Name {{row.carrier_full_name}} Product Type {{row.product_type_desc}} Agent Writing Number\r\n {{row.agent_writing_number}} Plan Year(s) {{row.certification_year ? row.certification_year : 'N/A'}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { DialogRef } from '@angular/cdk/dialog';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AfterContentInit, ChangeDetectorRef, Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, Sort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { AdminService } from '@data/services/admin/admin.service';\r\nimport { HeaderService } from '@data/services/header/header.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport * as data from '@data/states.json';\r\nimport { addressType, Criteria, emailType, IUser, phoneType } from '@data/user-profile/user-profile.interface';\r\nimport { ConfirmedValidator } from '@shared/helper/confirmed.validator';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { MomentService } from '@shared/services/moment/moment.service';\r\nimport { interval, Subscription, forkJoin, takeUntil, Subject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '@env/environment';\r\nimport { AgentWritingNumberComponent } from '@modules/admin/components/users/agent-writing-number/agent-writing-number.component';\r\nimport { DeleteAgentComponent } from '@modules/admin/components/users/delete-agent/delete-agent.component';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { validatorPatterns } from '@app/constants';\r\n\r\n@Component({\r\n selector: 'app-user-profile',\r\n templateUrl: './user-profile.component.html',\r\n styleUrls: ['./user-profile.component.scss']\r\n})\r\nexport class UserProfileComponent implements OnInit, AfterContentInit {\r\n private getUserDetailSubs: Subscription;\r\n private getAccountDetailSubs: Subscription;\r\n private getUserCarrierSubs: Subscription;\r\n private getUserRolesSubs: Subscription;\r\n private deleteAddressSubs: Subscription;\r\n private deleteEmailSubs: Subscription;\r\n private deletePhoneSubs: Subscription;\r\n private newUserSubs: Subscription;\r\n private updateUserSubs: Subscription;\r\n private getEmailTypeSubs: Subscription;\r\n private getPhoneTypeSubs: Subscription;\r\n private getAddressTypeSubs: Subscription;\r\n private isFormChangeSubs: Subscription;\r\n private userDetailsRoleSubs: Subscription;\r\n private updatePasswordSubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n private phone_types: phoneType;\r\n private email_types: emailType;\r\n private address_type: addressType;\r\n private deleteAgent: any = [];\r\n private agentWritingNumberArray: any = [];\r\n private requests_list: any = [];\r\n public userDetailArray: any = [];\r\n public accountDetail: any = [];\r\n public userProfileForm: UntypedFormGroup;\r\n public applicationDataSource = new MatTableDataSource<[]>;\r\n public phone_content = ['Home', 'Fax', 'Mobile', 'Other', 'Work'];\r\n public email_content = ['Home', 'Other', 'Work'];\r\n public address_content = ['Home', 'Billing', 'Business', 'Mailing', 'Other'];\r\n public applicationDisplayedColumns: string[] = ['carrier_full_name', 'product_type_desc', 'agent_writing_number', 'certification_year'];\r\n public state_data: any = [];\r\n public showSubmenu: boolean = false;\r\n public isAgentWritingNumber: boolean = false;\r\n public hasChange: boolean = false;\r\n public isLoading: boolean = true;\r\n public submitted: boolean = false;\r\n private cmSyncIgnore: string;\r\n public totalRecords = 0;\r\n public hideStatus: boolean = false;\r\n // public errorMsg: string | null = null;\r\n public isAccountOwner: string | null = null;\r\n public rolesData: any = [];\r\n public isLoggedInUser: boolean = false;\r\n public isCommonFlag: boolean = false;\r\n public message: any = {};\r\n public checkboxStates: any = {};\r\n public inputTypeCurrent: any = 'password';\r\n public inputTypeNew: any = 'password';\r\n public inputTypeConfirm: any = 'password';\r\n public showCurrentPassword: boolean = false;\r\n public showNewPassword: boolean = false;\r\n public showConfirmPassword: boolean = false;\r\n public initialChange: boolean = false;\r\n\r\n @ViewChild('State') State: any;\r\n @ViewChild(MatPaginator) agentWritingPagination!: MatPaginator;\r\n @ViewChild('agentWritingSort') agentWritingSort!: MatSort;\r\n\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public userData: any,\r\n private fb: UntypedFormBuilder,\r\n private headerService: HeaderService,\r\n private datePipe: DatePipe,\r\n private dialog: MatDialog,\r\n private ref: ChangeDetectorRef,\r\n private dialogRef: MatDialogRef,\r\n private userService: UserService,\r\n private momentService: MomentService,\r\n private leadService: LeadService,\r\n private adminService: AdminService,\r\n private commonService: CommonService,\r\n private http: HttpClient,\r\n private toasMsgService: ToastMsgService,\r\n public authService: AuthService\r\n ) {\r\n if (this.userData?.type == 'sms-users') {\r\n this.cmSyncIgnore = this.userData?.cm_sync_ignore;\r\n this.applicationDisplayedColumns.splice(0, 0, 'record_num');\r\n }\r\n this.userProfileForm = this.fb.group({\r\n fname: new FormControl('', Validators.required),\r\n lname: new FormControl('', Validators.required),\r\n gender: new FormControl(''),\r\n company: new FormControl(''),\r\n phones: this.fb.array([this.newPhones()]),\r\n emails: this.fb.array([this.newEmail()]),\r\n addresses: this.fb.array([this.newAddress()]),\r\n username: new FormControl(''),\r\n user_id: new FormControl(''),\r\n cm_sync_ignore: new FormControl(''),\r\n role_name: new FormControl('Agent', Validators.required),\r\n registration_date: new FormControl(''),\r\n last_access_date: new FormControl(''),\r\n active: new FormControl(true),\r\n npn: new FormControl(''),\r\n account_id: new FormControl(''),\r\n account_business_name: new FormControl(''),\r\n last_active_date_local: new FormControl(''),\r\n reference_id: new FormControl(''),\r\n currentpassword: new FormControl('', Validators.compose([\r\n ])),\r\n newpassword: new FormControl('', Validators.compose([\r\n Validators.pattern(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%#*?&])[A-Za-z\\d$@$!%#*?&].{7,}$\")\r\n ])),\r\n confirmpassword: new FormControl('', Validators.compose([\r\n ]))\r\n }, {\r\n validator: ConfirmedValidator('newpassword', 'confirmpassword')\r\n });\r\n if (!userData?.user_id) {\r\n this.userProfileForm.addControl('loginName', new FormControl('', Validators.required))\r\n }\r\n this.isFormChangeSubs = this.leadService.getFormChangeAlert().subscribe(response => {\r\n if (response) {\r\n this.hasChange = true;\r\n if (response == 'valueChange') {\r\n this.initialChange = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges() {\r\n this.onCreateGroupFormValueChange();\r\n this.applicationDataSource.paginator = this.agentWritingPagination;\r\n this.applicationDataSource.sort = this.agentWritingSort;\r\n }\r\n\r\n public ngAfterContentInit() {\r\n this.applicationDataSource.paginator = this.agentWritingPagination;\r\n this.applicationDataSource.sort = this.agentWritingSort;\r\n }\r\n\r\n //function to detect any changes in user profile form\r\n public onCreateGroupFormValueChange() {\r\n const initialValue = this.userProfileForm.value;\r\n this.userProfileForm.valueChanges.pipe(takeUntil(this._componentDestroyed$)).subscribe(value => {\r\n if (this.userProfileForm.dirty) {\r\n this.initialChange = true;\r\n this.hasChange = Object.keys(initialValue).some(key => this.userProfileForm.value[key] !=\r\n initialValue[key])\r\n }\r\n if (this.userProfileForm.valid) {\r\n this.hasChangeDetect();\r\n }\r\n });\r\n this.hasChangeDetect();\r\n }\r\n\r\n // Hide & show password function\r\n public hideShowPassword = (value: any) => {\r\n if (value === 'current') {\r\n this.showCurrentPassword = (this.inputTypeCurrent == 'password');\r\n this.inputTypeCurrent = (this.inputTypeCurrent == 'password') ? 'text' : 'password';\r\n } else if (value === 'new') {\r\n this.showNewPassword = (this.inputTypeNew == 'password');\r\n this.inputTypeNew = (this.inputTypeNew == 'password') ? 'text' : 'password';\r\n } else {\r\n this.showConfirmPassword = (this.inputTypeConfirm == 'password');\r\n this.inputTypeConfirm = (this.inputTypeConfirm == 'password') ? 'text' : 'password';\r\n }\r\n };\r\n\r\n // function to detect whether the form array fields are valid or not\r\n private hasChangeDetect() {\r\n this.isFormChangeSubs = this.leadService.getFormChangeAlert().subscribe(response => {\r\n let deletePhones = this.userProfileForm.value.phones;\r\n let deletePhone = deletePhones.filter((obj: any) => obj.phone_class != '');\r\n let deleteAddresses = this.userProfileForm.value.addresses;\r\n let deleteAddress = deleteAddresses.filter((obj: any) => obj.address_class != '');\r\n let deleteEmails = this.userProfileForm.value.emails;\r\n let deleteEmail = deleteEmails.filter((obj: any) => obj.email_class != '');\r\n if (deletePhone.length != deletePhones.length && deleteEmail.length != deleteEmails.length && deleteAddress.length != deleteAddresses.length) {\r\n this.hasChange = true;\r\n }\r\n else {\r\n this.hasChange = false\r\n }\r\n\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.hasChange = false;\r\n this.initialChange = false;\r\n this.userProfileForm.patchValue({ currentpassword: '', newpassword: '', confirmpassword: '' });\r\n /* get states data */\r\n this.state_data = (data as any).default;\r\n this.getEmailTypeData();\r\n this.getPhoneTypeData();\r\n this.getAddressTypeData();\r\n this.getUserRoles();\r\n if (this.userData?.user_id) {\r\n this.getUserDetails();\r\n } else {\r\n this.isCommonFlag = true;\r\n this.getAccountDetail(this.authService.account_id);\r\n }\r\n this.onCreateGroupFormValueChange();\r\n\r\n this.isLoggedInUser = (this.authService.getToken().user_id == this.userData?.user_id);\r\n\r\n window.addEventListener('beforeunload', (event) => {\r\n if(!this.userProfileForm.pristine) {\r\n event.returnValue = 'You have unsaved content, are you sure you want to exit?';\r\n }\r\n });\r\n\r\n this.userProfileForm.get(\"username\")?.disable();\r\n this.userProfileForm.get(\"user_id\")?.disable();\r\n this.userProfileForm.get(\"last_active_date_local\")?.disable();\r\n this.userProfileForm.get(\"registration_date\")?.disable();\r\n this.userProfileForm.get(\"last_access_date\")?.disable();\r\n this.userProfileForm.get(\"reference_id\")?.disable();\r\n this.userProfileForm.get(\"account_id\")?.disable();\r\n this.userProfileForm.get(\"account_business_name\")?.disable();\r\n if (this.userData?.user_id == this.authService.getToken().user_id) {\r\n this.userProfileForm.get(\"role_name\")?.disable();\r\n }\r\n if (this.userData?.type == 'sms-users') {\r\n this.userProfileForm.get(\"reference_id\")?.enable();\r\n }\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: add phone functionality ::::::::::::::::::::::::::::: */\r\n\r\n public get phones(): UntypedFormArray {\r\n return this.userProfileForm.get(\"phones\") as UntypedFormArray\r\n }\r\n\r\n\r\n private newPhones() {\r\n return this.fb.group({\r\n phone_type: ['Home'],\r\n phone: new FormControl('', [Validators.required, Validators.minLength(14)]),\r\n phone_ext: [''],\r\n phone_id: [''],\r\n phone_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: end phone functionality ::::::::::::::::::::::::::::: */\r\n\r\n /* ::::::::::::::::::::::::::::: add email functionality ::::::::::::::::::::::::::::: */\r\n\r\n public get emails(): UntypedFormArray {\r\n return this.userProfileForm.get(\"emails\") as UntypedFormArray\r\n }\r\n\r\n private newEmail() {\r\n return this.fb.group({\r\n email_type: ['Home'],\r\n email: new FormControl('', [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_id: [''],\r\n email_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: end email functionality ::::::::::::::::::::::::::::: */\r\n\r\n /* ::::::::::::::::::::::::::::: add address functionality ::::::::::::::::::::::::::::: */\r\n\r\n public get addresses(): UntypedFormArray {\r\n return this.userProfileForm.get(\"addresses\") as UntypedFormArray\r\n }\r\n\r\n private newAddress() {\r\n return this.fb.group({\r\n address_type_id: ['Home'],\r\n address1: new FormControl('', [Validators.required]),\r\n address2: '',\r\n city: new FormControl('', [Validators.required]),\r\n state_id: new FormControl('', [Validators.required]),\r\n zip: new FormControl('', [Validators.required, Validators.minLength(5)]),\r\n address_id: [''],\r\n apo: [''],\r\n country_id: [''],\r\n county_fips: [''],\r\n zip_4: [''],\r\n address_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: end address functionality ::::::::::::::::::::::::::::: */\r\n\r\n // function to get user details\r\n private getUserDetails() {\r\n this.getUserDetailSubs = this.userService.getUserView(this.userData?.user_id).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.userDetailArray = response;\r\n if (this.userDetailArray) {\r\n this.userProfileForm.patchValue({\r\n fname: this.userDetailArray.fname,\r\n lname: this.userDetailArray.lname,\r\n gender: this.userDetailArray.gender,\r\n company: this.userDetailArray.company,\r\n username: this.userDetailArray.usercredentials[0]?.login,\r\n user_id: this.userDetailArray.user_id,\r\n cm_sync_ignore: this.cmSyncIgnore == '0' ? true : false,\r\n role_name: this.userDetailArray.role_name,\r\n registration_date: this.datePipe.transform(this.userDetailArray.registration_date, 'MM/dd/yyyy'),\r\n last_access_date: this.datePipe.transform(this.userDetailArray.last_access_date, 'MM/dd/yyyy'),\r\n npn: this.userDetailArray.npn,\r\n account_id: this.userDetailArray.account_id,\r\n\r\n last_active_date_local: this.datePipe.transform(this.userDetailArray.last_active_date_local, 'MM/dd/yyyy'),\r\n reference_id: this.userDetailArray.sms_id,\r\n active: this.userDetailArray.active == 0 ? false : true // (this.userDetailArray.active == 1)\r\n });\r\n this.userProfileForm.setControl('phones', this.commonService.setExistingPhone(this.userDetailArray.phones, this.userDetailArray.default_phone.phone_id, this.userData?.user_id ? '' : ''))\r\n this.userProfileForm.setControl('emails', this.commonService.setExistingEmail(this.userDetailArray.emails, this.userDetailArray.default_email.email_id, this.userData?.user_id ? '' : ''))\r\n this.userProfileForm.setControl('addresses', this.commonService.setExistingAddress(this.userDetailArray.addresses, this.userDetailArray.default_address.address_id, this.userData?.user_id ? '' : ''))\r\n this.isCommonFlag = true;\r\n this.adminService.adminFormArray(\"refreshAdmin\");\r\n }\r\n this.getAccountDetail(this.userDetailArray.account_id);\r\n this.getAgentWritingNumber();\r\n this.hasChange = false;\r\n }\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {\r\n this.hasChange = false;\r\n }\r\n });\r\n }\r\n\r\n // function to get agent writing numbers\r\n private getAgentWritingNumber() {\r\n if (this.userDetailArray) {\r\n let obj1: Criteria = {\r\n user_id: { \"type\": \"simple\", \"value\": [this.userDetailArray.user_id] },\r\n };\r\n if (!this.userDetailArray.user_id) delete obj1['user_id'];\r\n let obj =\r\n {\r\n \"search_type\": \"simple\",\r\n \"criteria\": obj1,\r\n \"field_list\": \"user_carrier_id,agent_writing_number,carrier_name,carrier_full_name,product_type_id,product_type_name,product_type_desc,carrier_id,certification_year\"\r\n }\r\n\r\n this.getUserCarrierSubs = this.headerService.getAgentWritingNumberDetail(obj).subscribe({\r\n next: (response: any) => {\r\n if (response.result == \"\") {\r\n this.isAgentWritingNumber = true;\r\n // update MatTableDataSource\r\n this.applicationDataSource.data = [];\r\n }\r\n else {\r\n this.isAgentWritingNumber = false;\r\n this.agentWritingNumberArray = response;\r\n // update MatTableDataSource\r\n this.applicationDataSource.data = this.agentWritingNumberArray;\r\n this.agentWritingNumberArray.sort((a: any, b: any) => a.carrier_full_name.localeCompare(b.carrier_full_name))\r\n this.totalRecords = response.length;\r\n this.applicationDataSource.paginator = this.agentWritingPagination;\r\n this.applicationDataSource.sort = this.agentWritingSort;\r\n\r\n const sortState: Sort = { active: 'carrier_full_name', direction: 'asc' };\r\n if (this.agentWritingSort) {\r\n this.agentWritingSort.active = sortState.active;\r\n this.agentWritingSort.direction = sortState.direction;\r\n this.agentWritingSort.sortChange.emit(sortState);\r\n }\r\n }\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {\r\n this.hasChange = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n // function to hide/show agent writing section\r\n public openMenu() {\r\n this.showSubmenu = !this.showSubmenu;\r\n this.applicationDataSource.paginator = this.agentWritingPagination;\r\n this.applicationDataSource.sort = this.agentWritingSort;\r\n }\r\n\r\n // function to get the account details\r\n private getAccountDetail(id: any) {\r\n this.getAccountDetailSubs = this.headerService.getAccountDetail(id).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.accountDetail = response;\r\n if (this.userDetailArray.user_id == this.accountDetail.account_owner_user_id) {\r\n this.isAccountOwner = \"YES\"\r\n } else {\r\n this.isAccountOwner = \"NO\"\r\n }\r\n this.userProfileForm.patchValue({\r\n account_id: this.accountDetail.account_id,\r\n account_business_name: this.accountDetail.account_owner_fname + \" \" + this.accountDetail.account_owner_lname,\r\n });\r\n this.hasChange = false;\r\n this.isLoading = false;\r\n }\r\n },\r\n error: (err) => { this.isLoading = false; this.showErrorMessage(err.error.message); },\r\n complete: () => {\r\n this.hasChange = false;\r\n }\r\n });\r\n }\r\n\r\n private getUserRoles() {\r\n let payload = {\r\n \"criteria\": {\r\n \"account_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.userData?.type == 'sms-users' ? this.userData?.account_id : this.authService.account_id]\r\n }\r\n },\r\n \"field_list\": \"\",\r\n \"page_number\": 1,\r\n \"search_type\": \"simple\",\r\n }\r\n this.getUserRolesSubs = this.userService.getUserRoles(payload, this.authService.account_id).subscribe({\r\n next: (res: any) => {\r\n this.rolesData = res\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message)\r\n },\r\n complete: () => { }\r\n\r\n })\r\n }\r\n\r\n //function to update the user profile\r\n public update(formData: any, type: any) {\r\n if (this.userProfileForm.invalid) {\r\n this.submitted = true;\r\n return;\r\n }\r\n this.isLoading = true;\r\n let newAddressObj: any;\r\n let newEmailObj: any;\r\n let newPhoneObj: any;\r\n\r\n let addressArray = formData.addresses;\r\n let defaultAddress = addressArray.filter((obj: any) => obj.isSelected == true);\r\n addressArray = addressArray.filter((obj: any) => obj.address_class == '');\r\n\r\n //call delete API the uncheck address\r\n let deleteAddresses = formData.addresses;\r\n let deleteAddress = deleteAddresses.filter((obj: any) => obj.address_class != '');\r\n let request;\r\n if (deleteAddress) {\r\n deleteAddress.forEach((element: any) => {\r\n request = this.http.get(environment.api + 'user/' + this.userData?.user_id + '/address/' + element.address_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n });\r\n }\r\n\r\n if (addressArray) {\r\n newAddressObj = this.commonService.getAddresses(addressArray);\r\n }\r\n\r\n let emailArray = formData.emails;\r\n emailArray = emailArray.filter((obj: any) => obj.email_class == '');\r\n\r\n let defaultEmail = emailArray.filter((obj: any) => obj.isSelected == true);\r\n //call delete API the uncheck email\r\n let deleteEmails = formData.emails;\r\n let deleteEmail = deleteEmails.filter((obj: any) => obj.email_class != '');\r\n if (deleteEmail) {\r\n deleteEmail.forEach((element: any) => {\r\n request = this.http.get(environment.api + 'user/' + this.userData?.user_id + '/email/' + element.email_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n });\r\n }\r\n\r\n if (emailArray) {\r\n newEmailObj = this.commonService.getEmails(emailArray);\r\n newEmailObj = newEmailObj.filter((element: any) => element.email != \"\")\r\n }\r\n\r\n let phoneArray = formData.phones;\r\n phoneArray = phoneArray.filter((obj: any) => obj.phone_class == '');\r\n\r\n let defaultPhone = phoneArray.filter((obj: any) => obj.isSelected == true);\r\n //call delete API the uncheck phone\r\n let deletePhones = formData.phones;\r\n let deletePhone = deletePhones.filter((obj: any) => obj.phone_class != '');\r\n if (deletePhone) {\r\n deletePhone.forEach((element: any) => {\r\n request = this.http.get(environment.api + 'user/' + this.userData?.user_id + '/phone/' + element.phone_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n });\r\n }\r\n\r\n this.cmSyncIgnore = this.userProfileForm.value.cm_sync_ignore == false ? '1' : '0'\r\n\r\n if (phoneArray) {\r\n newPhoneObj = this.commonService.getPhones(phoneArray);\r\n newPhoneObj = newPhoneObj.filter((element: any) => element.phone != \"\")\r\n }\r\n\r\n if (this.requests_list.length > 0) {\r\n forkJoin(this.requests_list).subscribe({\r\n next: (response: any) => {\r\n this.updateUserProfileData(formData, type, newAddressObj, newPhoneObj, newEmailObj, defaultPhone, defaultEmail, defaultAddress)\r\n },\r\n error: (err: any) => { this.isLoading = false; this.showErrorMessage(err.error.message); },\r\n complete: () => { }\r\n });\r\n } else {\r\n const formData = this.userProfileForm.getRawValue();\r\n this.updateUserProfileData(formData, type, newAddressObj, newPhoneObj, newEmailObj, defaultPhone, defaultEmail, defaultAddress)\r\n }\r\n }\r\n\r\n private updateUserProfileData(formData: any, type: any, newAddressObj: any, newPhoneObj: any,\r\n newEmailObj: any, defaultPhone: any, defaultEmail: any, defaultAddress: any) {\r\n const roleName = this.userProfileForm.get(\"role_name\");\r\n let role_selected = this.rolesData.filter((elem: any) => {\r\n return elem.role_name == roleName?.value\r\n })\r\n if (!this.userData?.user_id) {\r\n let obj = {\r\n account_id: formData.account_id,\r\n addresses: newAddressObj,\r\n default_address_id: \"\",\r\n default_address: {},\r\n phones: newPhoneObj,\r\n default_phone_id: \"\",\r\n default_phone: {},\r\n emails: newEmailObj,\r\n default_email_id: \"\",\r\n default_email: {},\r\n role_id: role_selected[0].role_id,\r\n fname: formData.fname,\r\n lname: formData.lname,\r\n gender: formData.gender,\r\n npn: formData.npn,\r\n company: formData.company,\r\n usercredentials: [{\r\n login: formData?.loginName,\r\n password: this.generateRandomPassword(),\r\n context: \"LApro\"\r\n }\r\n ],\r\n registration_date: formData.registration_date || this.momentService.serverDateTime(new Date())\r\n }\r\n this.newUserSubs = this.userService.addNewUser(obj).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.userData.user_id = response?.user_id;\r\n this.userService.userInvite(this.userData.user_id).subscribe({\r\n next: (elem) => {\r\n this.message = {\r\n type: 'success',\r\n text: `New User has been created for account ${this.authService.account_id}.`\r\n }\r\n this.clearMessage(15000);\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n })\r\n this.submitted = false;\r\n this.hideMsg();\r\n this.userDetailArray = [];\r\n this.getUserDetails();\r\n this.isLoading = false;\r\n if (type == 'close') {\r\n this.dialogRef.close(response);\r\n this.dialog.closeAll();\r\n }else{\r\n this.userProfileForm.markAsPristine();\r\n }\r\n }\r\n },\r\n error: (err) => {\r\n this.isLoading = false;\r\n this.submitted = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {\r\n this.hasChange = false;\r\n }\r\n });\r\n } else {\r\n let default_phone: any;\r\n default_phone = {\r\n default_phone: true,\r\n phone: defaultPhone[0]?.phone ? defaultPhone[0]?.phone : newPhoneObj[0]?.phone,\r\n phone_ext: defaultPhone[0]?.phone_ext ? defaultPhone[0]?.phone_ext : newPhoneObj[0]?.phone_ext,\r\n phone_id: defaultPhone[0]?.phone_id ? defaultPhone[0]?.phone_id : newPhoneObj[0]?.phone_id,\r\n phone_type: defaultPhone[0]?.phone_type ? defaultPhone[0]?.phone_type : newPhoneObj[0]?.phone_type,\r\n }\r\n if (default_phone?.phone == '') {\r\n default_phone = {};\r\n }\r\n let obj: IUser = {\r\n sms_id: formData.reference_id,\r\n ...(this.userData?.type == 'sms-users') && { cm_sync_ignore: this.cmSyncIgnore },\r\n npn: formData.npn,\r\n company: formData.company,\r\n ein: this.userDetailArray.ein,\r\n environment_id: this.userDetailArray.environment_id,\r\n fname: formData.fname,\r\n lname: formData.lname,\r\n gender: formData.gender,\r\n account_id: formData.account_id,\r\n account_business_name: this.accountDetail.account_business_name,\r\n role_id: role_selected[0].role_id,\r\n role_name: role_selected[0].role_name,\r\n registration_date: this.momentService.serverDateTime(formData.registration_date),\r\n expire_date: formData.expire_date,\r\n last_access_date: formData.last_access_date ? formData.last_access_date : '',\r\n active: formData.active == true ? '1' : '0',\r\n appointment_count: this.userDetailArray.appointment_count,\r\n addresses: newAddressObj,\r\n emails: newEmailObj,\r\n phones: newPhoneObj[0]?.phone ? newPhoneObj : [],\r\n default_phone: default_phone,\r\n default_email: {\r\n default_email: true,\r\n email: defaultEmail[0]?.email ? defaultEmail[0]?.email : newEmailObj[0]?.email,\r\n email_id: defaultEmail[0]?.email_id ? defaultEmail[0]?.email_id : newEmailObj[0]?.email_id,\r\n email_type: defaultEmail[0]?.email_type ? defaultEmail[0]?.email_type : newEmailObj[0]?.email_type,\r\n\r\n },\r\n default_address: {\r\n default_address: true,\r\n address1: defaultAddress[0]?.address1 ? defaultAddress[0]?.address1 : newAddressObj[0]?.address1,\r\n address2: defaultAddress[0]?.address2 ? defaultAddress[0]?.address2 : newAddressObj[0]?.address2,\r\n address_id: defaultAddress[0]?.address_id ? defaultAddress[0]?.address_id : newAddressObj[0]?.address_id,\r\n address_type_id: defaultAddress[0]?.address_type_id ? defaultAddress[0]?.address_type_id : newAddressObj[0]?.address_type_id,\r\n apo: defaultAddress[0]?.apo ? defaultAddress[0]?.apo : newAddressObj[0]?.apo,\r\n city: defaultAddress[0]?.city ? defaultAddress[0]?.city : newAddressObj[0]?.city,\r\n country_id: defaultAddress[0]?.country_id ? defaultAddress[0]?.country_id : newAddressObj[0]?.country_id,\r\n county_fips: defaultAddress[0]?.county_fips ? defaultAddress[0]?.county_fips : newAddressObj[0]?.county_fips,\r\n state_id: defaultAddress[0]?.state_id ? defaultAddress[0]?.state_id : newAddressObj[0]?.state_id,\r\n zip: defaultAddress[0]?.zip ? defaultAddress[0]?.zip : newAddressObj[0]?.zip,\r\n zip_4: defaultAddress[0]?.zip_4 ? defaultAddress[0]?.zip_4 : newAddressObj[0]?.zip_4\r\n },\r\n usercredentials: [{\r\n login: this.userDetailArray.usercredentials[0].login,\r\n password: formData.newpassword,\r\n context: \"LApro\",\r\n user_credentials_id: this.userDetailArray.usercredentials[0].user_credentials_id\r\n }],\r\n user_id: this.userDetailArray.user_id\r\n }\r\n\r\n if (!formData.newpassword) delete obj['usercredentials'];\r\n if (formData.currentpassword && formData.newpassword && (formData.newpassword == formData.confirmpassword)) {\r\n let usercredentials = this.userDetailArray.usercredentials[0];\r\n let credentialsParams = {\r\n \"login\": usercredentials.login,\r\n \"password\": formData.currentpassword,\r\n \"context\": \"LApro\",\r\n \"new_password\": formData.newpassword\r\n }\r\n this.updatePasswordSubs = this.userService.updateExistingCredentials(formData.user_id, usercredentials.user_credentials_id, credentialsParams).subscribe({\r\n next: (response: any) => {\r\n this.userUpdate(obj, type, this.userData.user_id)\r\n setTimeout(() => {\r\n this.userProfileForm.patchValue({ currentpassword: '', newpassword: '', confirmpassword: '' });\r\n this.initialChange = false;\r\n this.hasChange = false;\r\n }, 3000);\r\n },\r\n error: (err: any) => {\r\n this.isLoading = false;\r\n this.showErrorMessage(err.error.message);\r\n this.userProfileForm.get('currentpassword')?.setErrors({ invalid: true });\r\n },\r\n complete: () => {\r\n this.hasChange = false;\r\n this.initialChange = false;\r\n }\r\n })\r\n } else {\r\n this.userUpdate(obj, type, this.userData.user_id)\r\n }\r\n }\r\n }\r\n\r\n private userUpdate(obj: any, type: any, userID: any) {\r\n this.updateUserSubs = this.headerService.updateUser(obj, userID).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n if (this.userData?.type == 'sms-users')\r\n this.userData.dataChanged = true;\r\n\r\n if (this.userData?.user_id == this.authService.getToken().user_id) {\r\n this.authService.user_details = response;\r\n this.authService.userDetails$.next(response);\r\n this.userDetailsRoleSubs = this.userService.getUserDetailsAndPermissions(this.userData?.user_id).subscribe({\r\n next: (response: any) => {\r\n this.authService.user_details['rolePermission'] = JSON.parse(response.headers.get('x-lapro-acl-array') || '[]');\r\n this.authService.user_details['hash'] = response.headers.get('x-lapro-acl');\r\n this.leadService.sendFormChangeAlert('')\r\n if (type == 'close') {\r\n this.dialog.closeAll();\r\n this.toasMsgService.showSuccess(\"Your profile has been updated.\");\r\n } else {\r\n this.userProfileForm.markAsPristine();\r\n this.getUserDetails();\r\n }\r\n },\r\n error: (err) => {\r\n this.isLoading = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { this.hasChange = false; }\r\n })\r\n }else{\r\n if (type == 'close') {\r\n if (this.userData?.type == 'sms-users' && this.userData.dataChanged)\r\n this.dialogRef.close(true);\r\n else\r\n this.dialog.closeAll();\r\n this.toasMsgService.showSuccess(\"Your profile has been updated.\");\r\n } else {\r\n this.userProfileForm.markAsPristine();\r\n this.getUserDetails();\r\n }\r\n }\r\n this.requests_list = [];\r\n this.submitted = false;\r\n this.message = {\r\n type: 'success',\r\n text: `Your profile has been updated.`\r\n }\r\n this.clearMessage(15000);\r\n this.isLoading = false;\r\n }\r\n },\r\n error: (err) => {\r\n this.isLoading = false;\r\n this.submitted = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {\r\n this.hasChange = false;\r\n this.initialChange = false;\r\n }\r\n });\r\n }\r\n\r\n private generateRandomPassword() {\r\n var lowerletters = \"abcdefghijklmnopqrstuvwxyz\";\r\n var upperletters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\n var digits = \"0123456789\";\r\n var splChar = \"@#$%^&*!\"\r\n var text = \"\";\r\n for (var i = 0; i < 6; i++)\r\n text += lowerletters.charAt(Math.floor(Math.random() * lowerletters.length));\r\n for (var i = 0; i < 2; i++)\r\n text += digits.charAt(Math.floor(Math.random() * digits.length));\r\n for (var i = 0; i < 2; i++)\r\n text += upperletters.charAt(Math.floor(Math.random() * upperletters.length));\r\n for (var i = 0; i < 2; i++)\r\n text += splChar.charAt(Math.floor(Math.random() * splChar.length));\r\n return text;\r\n }\r\n\r\n // function to get the email dropdown types\r\n private getEmailTypeData() {\r\n this.getEmailTypeSubs = this.headerService.getEmailTypes().subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.email_types = response;\r\n }\r\n },\r\n error: (err) => { this.showErrorMessage(err.error.message); },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n // function to get the phone dropdown types\r\n private getPhoneTypeData() {\r\n this.getPhoneTypeSubs = this.headerService.getPhoneTypes().subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.phone_types = response;\r\n }\r\n },\r\n error: (err) => { this.showErrorMessage(err.error.message); },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n // function to get the address dropdown types\r\n private getAddressTypeData() {\r\n this.getAddressTypeSubs = this.headerService.getAddressTypes().subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.address_type = response;\r\n }\r\n },\r\n error: (err) => { this.showErrorMessage(err.error.message); },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n //method to display agent writing popup\r\n public openAgentPopup() {\r\n const agentDialog = this.dialog.open(AgentWritingNumberComponent, {\r\n width: '55%',\r\n data: this.userData?.user_id\r\n })\r\n agentDialog.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe((res: any) => {\r\n if (res) {\r\n this.getAgentWritingNumber();\r\n }\r\n })\r\n }\r\n\r\n // method to get the id of the checkbox selected\r\n public getRowId(event: MatCheckboxChange, row: any) {\r\n this.hasChange = true\r\n if (event.checked) {\r\n this.deleteAgent.push(row)\r\n }\r\n else {\r\n let index = this.deleteAgent.indexOf(row)\r\n if (index > -1) {\r\n this.deleteAgent.splice(index, 1)\r\n }\r\n }\r\n }\r\n\r\n //method to display delete agent popup\r\n public deleteAgentPopup() {\r\n if (this.deleteAgent.length >= 1) {\r\n const deleteAgentPopup = this.dialog.open(DeleteAgentComponent, {\r\n width: '30%',\r\n data: this.deleteAgent\r\n })\r\n deleteAgentPopup.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: any) => {\r\n if (elem) {\r\n this.getAgentWritingNumber();\r\n this.deleteAgent = []\r\n }\r\n })\r\n }\r\n else {\r\n\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'You have to select atleast one carrier to delete',\r\n 'type': 'ok'\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n //hide success message after 2 seconds\r\n private hideMsg() {\r\n this.hideStatus = true;\r\n setTimeout(() => {\r\n this.hideStatus = false;\r\n }, 15000);\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.message = {\r\n type: 'alert',\r\n text: errorMsg\r\n }\r\n this.clearMessage(30000);\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this.toasMsgService.resetMessage();\r\n }, timer);\r\n }\r\n\r\n public captureClose(){\r\n if(!this.userProfileForm.pristine){\r\n this.commonService.unsavedChangesNotice();\r\n }else{\r\n if (this.userData?.type == 'sms-users' && this.userData?.dataChanged)\r\n {\r\n this.dialogRef.close(true);\r\n }else\r\n this.dialog.closeAll();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n if (this.getUserDetailSubs) {\r\n this.getUserDetailSubs.unsubscribe();\r\n }\r\n if (this.getAccountDetailSubs) {\r\n this.getAccountDetailSubs.unsubscribe();\r\n }\r\n if (this.newUserSubs) {\r\n this.newUserSubs.unsubscribe();\r\n }\r\n if (this.getEmailTypeSubs) {\r\n this.getEmailTypeSubs.unsubscribe();\r\n }\r\n if (this.getPhoneTypeSubs) {\r\n this.getPhoneTypeSubs.unsubscribe();\r\n }\r\n if (this.getUserCarrierSubs) {\r\n this.getUserCarrierSubs.unsubscribe();\r\n }\r\n if (this.getAddressTypeSubs) {\r\n this.getAddressTypeSubs.unsubscribe();\r\n }\r\n if (this.getUserRolesSubs) {\r\n this.getUserRolesSubs.unsubscribe();\r\n }\r\n if (this.deleteAddressSubs) {\r\n this.deleteAddressSubs.unsubscribe();\r\n }\r\n if (this.deleteEmailSubs) {\r\n this.deleteEmailSubs.unsubscribe();\r\n }\r\n if (this.deletePhoneSubs) {\r\n this.deletePhoneSubs.unsubscribe();\r\n }\r\n if (this.updateUserSubs) {\r\n this.updateUserSubs.unsubscribe();\r\n }\r\n if (this.isFormChangeSubs) {\r\n this.isFormChangeSubs.unsubscribe();\r\n }\r\n if (this.userDetailsRoleSubs) {\r\n this.userDetailsRoleSubs.unsubscribe();\r\n }\r\n if (this.updatePasswordSubs) {\r\n this.updatePasswordSubs.unsubscribe();\r\n }\r\n this.userProfileForm.markAsPristine();\r\n }\r\n\r\n public checkError = (controlName: string, errorName: string) => {\r\n return this.userProfileForm.controls[controlName].hasError(errorName);\r\n }\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\nimport moment from 'moment';\r\n \r\nexport function StartEndTimeValidator(startTime: string, endTime: string,startDate: string, endDate:string){\r\n return (formGroup: FormGroup) => {\r\n const start_Time = formGroup.controls[startTime];\r\n const end_Time = formGroup.controls[endTime];\r\n const start_Date = formGroup.controls[startDate];\r\n const end_Date = formGroup.controls[endDate]\r\n if (moment(start_Date.value).format('YYYY-MM-DD') > moment(end_Date.value).format('YYYY-MM-DD')) {\r\n start_Date.setErrors({ timeValidator: true });\r\n } else if (moment(start_Date.value).format('YYYY-MM-DD') == moment(end_Date.value).format('YYYY-MM-DD')) {\r\n if (start_Time.value > end_Time.value) {\r\n start_Time.setErrors({ timeValidator: true });\r\n } else {\r\n start_Time.setErrors(null);\r\n start_Date.setErrors(null);\r\n }\r\n }\r\n else if (moment(start_Date.value).format('YYYY-MM-DD') < moment(end_Date.value).format('YYYY-MM-DD')) {\r\n start_Date.setErrors(null);\r\n }\r\n else if (start_Time.value > end_Time.value) {\r\n start_Time.setErrors({ timeValidator: true });\r\n } else {\r\n start_Time.setErrors(null);\r\n start_Date.setErrors(null);\r\n }\r\n }\r\n}","
\r\n \r\n

{{ errorMsg }}

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

Assign Lead

\r\n \r\n add\r\n \r\n
\r\n
\r\n \r\n Lead Name\r\n \r\n \r\n {{leadName}}\r\n \r\n \r\n \r\n remove\r\n \r\n \r\n add\r\n \r\n
\r\n
\r\n highlight_off\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n Title\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n All Day\r\n
\r\n
\r\n Important\r\n Dismiss\r\n
\r\n
\r\n
\r\n \r\n Start Date\r\n \r\n \r\n \r\n \r\n \r\n Start Time\r\n \r\n \r\n
\r\n
\r\n \r\n End Date\r\n \r\n \r\n \r\n \r\n \r\n End Time\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TOOLBAR } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { Lead } from '@data/lead/lead.interface';\r\nimport { CalendarService } from '@data/services/calendar/calendar.service';\r\nimport { MomentService } from '@shared/services/moment/moment.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Editor } from 'ngx-editor';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { Router } from '@angular/router';\r\nimport { StartEndTimeValidator } from '@shared/helper/start-end-time.validator';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\n@Component({\r\n selector: 'app-add-appointment',\r\n templateUrl: './add-appointment.component.html',\r\n styleUrls: ['./add-appointment.component.scss']\r\n})\r\nexport class AddAppointmentComponent implements OnInit,OnDestroy {\r\n @Input() isFromCalendar: any;\r\n @Output() addEvent = new EventEmitter();\r\n @Output() aptChange = new EventEmitter();\r\n private lead_detail: any = [];\r\n private _componentDestroyed$ = new Subject();\r\n private isAddConvAptSubs: Subscription;\r\n private isAddAptSubs: Subscription;\r\n private isAddDelSubs: Subscription;\r\n public appointment_id: string = \"\";\r\n public editor: Editor; // Editor;\r\n public toolbar: any = TOOLBAR;\r\n public addAppointmentForm!: FormGroup;\r\n public displayAssignLead: boolean = false;\r\n public selectedLead: any;\r\n public isAddAppointment: boolean = false;\r\n public isNewApt: boolean = true;\r\n public hasChange: boolean = false;\r\n public leadName: string = \"\";\r\n public clearSearch: boolean = false;\r\n public errorMsg: string | null = null;\r\n public isAssignLead: boolean = true;\r\n public isConversationApt: boolean = false;\r\n public isButtonClicked:boolean=false;\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private commonService:CommonService,\r\n private dialog: MatDialog,\r\n private momentService: MomentService,\r\n private calendarService: CalendarService,\r\n private toastMsgService: ToastMsgService,\r\n private authService: AuthService,\r\n private leadService: LeadService,\r\n private router: Router,\r\n ) {\r\n this.editor = new Editor();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.onCreateGroupFormValueChange();\r\n }\r\n\r\n //function to detect any changes in user profile form\r\n public onCreateGroupFormValueChange() {\r\n const initialValue = this.addAppointmentForm?.value;\r\n this.addAppointmentForm?.valueChanges.pipe(takeUntil(this._componentDestroyed$)).subscribe(value => {\r\n if (this.addAppointmentForm?.dirty) {\r\n this.hasChange = Object.keys(initialValue).some(key => this.addAppointmentForm?.value[key] != initialValue[key]);\r\n this.aptChange.emit(true);\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'add')) {\r\n this.isAddAppointment = true;\r\n }\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'conversationLog')) {\r\n this.isAddAppointment = false;\r\n this.isAssignLead = false;\r\n this.isConversationApt = true;\r\n this.lead_detail = this.isFromCalendar.leadDetail;\r\n this.createFormConversationTable();\r\n } else {\r\n this.createForm();\r\n }\r\n this.onCreateGroupFormValueChange();\r\n }\r\n\r\n public showSearchPanel() {\r\n this.displayAssignLead = true;\r\n }\r\n\r\n public removeSelectedLead() {\r\n this.clearSearch = true;\r\n this.selectedLead = {} as Lead;\r\n this.leadName = \"\";\r\n this.displayAssignLead = false;\r\n }\r\n\r\n public hideSearchPanel() {\r\n this.displayAssignLead = false;\r\n }\r\n\r\n private createForm() {\r\n if (this.isAddAppointment) {\r\n this.isNewApt = true;\r\n let starTdate = this.isFromCalendar?.selectedDate?.date || new Date();\r\n const d = moment(starTdate);\r\n let hour = d.hours();\r\n let min = d.minutes();\r\n let hr;\r\n let m;\r\n let lastHr;\r\n if (hour < 10) {\r\n lastHr = hour + 1;\r\n if (lastHr < 10) {\r\n lastHr = \"0\" + lastHr.toString();\r\n }\r\n hr = \"0\" + hour.toString();\r\n } else {\r\n lastHr = hour + 1;\r\n hr = hour;\r\n }\r\n if (min < 10) {\r\n m = \"0\" + min.toString();\r\n } else {\r\n m = min;\r\n }\r\n let time = hr + \":\" + m;\r\n if (lastHr == 24) {\r\n lastHr = '00';\r\n }\r\n lastHr = lastHr + \":\" + m;\r\n this.addAppointmentForm = this.formBuilder.group({\r\n allday_flag: [false],\r\n description: [''],\r\n end_time: [this.isFromCalendar ? lastHr : '', Validators.required],\r\n importance: [false],\r\n dismiss: [false],\r\n start_time: [this.isFromCalendar ? time : '', Validators.required],\r\n title: ['', Validators.required],\r\n startDate: [this.isFromCalendar ? starTdate : '', Validators.required],\r\n endDate: [this.isFromCalendar ? starTdate : '', Validators.required],\r\n }, {\r\n validator: StartEndTimeValidator('start_time', 'end_time', 'startDate', 'endDate')\r\n });\r\n } else {\r\n this.isAddAppointment = false;\r\n this.isNewApt = false;\r\n this.appointment_id = this.isFromCalendar.id;\r\n this.isAssignLead = false;\r\n if (this.isFromCalendar.extendedProps.fname != '') {\r\n this.leadName = this.isFromCalendar.extendedProps.fname + \" \" + this.isFromCalendar.extendedProps.lname;\r\n }\r\n this.addAppointmentForm = this.formBuilder.group({\r\n allday_flag: [this.isFromCalendar.allDay == '0' ? false : true],\r\n description: [this.isFromCalendar.extendedProps.description],\r\n end_time: [(this.isFromCalendar.allDay != '0' || !this.isFromCalendar.allDay) ?\r\n moment(this.isFromCalendar.allEndTime).format(\"HH:mm\") : this.isFromCalendar.end ?\r\n moment(this.isFromCalendar.end).format(\"HH:mm\") : '', Validators.required],\r\n importance: [this.isFromCalendar.extendedProps.importance == '1' ? true : false],\r\n dismiss: [this.isFromCalendar.extendedProps.completed_date == '' ? false : true],\r\n start_time: [this.isFromCalendar.start ?\r\n this.isFromCalendar.allStartTime ? moment(this.isFromCalendar.allStartTime).format(\"HH:mm\") :\r\n moment(this.isFromCalendar.start).format(\"HH:mm\") : '', Validators.required],\r\n title: [this.isFromCalendar ? this.isFromCalendar.title : '', Validators.required],\r\n startDate: [this.isFromCalendar.start ? this.isFromCalendar.start : '', Validators.required],\r\n endDate: [(this.isFromCalendar.allDay != '0' || !this.isFromCalendar.allDay) && this.isFromCalendar.end ? this.isFromCalendar.end :\r\n (this.isFromCalendar.allDay != '0' || !this.isFromCalendar.allDay) && !this.isFromCalendar.end ? this.isFromCalendar.start :\r\n this.isFromCalendar.allDay == '0' && this.isFromCalendar.end ? this.isFromCalendar.end : '', Validators.required],\r\n }, {\r\n validator: StartEndTimeValidator('start_time', 'end_time', 'startDate', 'endDate')\r\n });\r\n }\r\n this.hasChange = false;\r\n }\r\n\r\n public selectLead(lead: Lead) {\r\n this.selectedLead = lead;\r\n this.leadName = lead?.fname + \" \" + lead?.lname;\r\n }\r\n\r\n public addAppointment() {\r\n if (this.addAppointmentForm.invalid) {\r\n return;\r\n } else {\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'conversationLog')) {\r\n let formValue = this.addAppointmentForm?.value;\r\n const d = moment(formValue?.start_time);\r\n let hour = d.hours();\r\n let min = d.minutes();\r\n let hr;\r\n let m;\r\n let lastHr;\r\n if (hour < 10) {\r\n lastHr = hour + 1;\r\n if (lastHr < 10) {\r\n lastHr = \"0\" + lastHr.toString();\r\n }\r\n hr = \"0\" + hour.toString();\r\n } else {\r\n lastHr = hour + 1;\r\n hr = hour;\r\n }\r\n if (min < 10) {\r\n m = \"0\" + min.toString();\r\n } else {\r\n m = min;\r\n }\r\n let time = hr + \":\" + m;\r\n if (lastHr == 24) {\r\n lastHr = '00';\r\n }\r\n lastHr = lastHr + \":\" + m;\r\n\r\n let endDate = formValue.endDate;\r\n let end_time = formValue.end_time;\r\n if (!endDate) {\r\n endDate = formValue.startDate;\r\n }\r\n if (!end_time) {\r\n end_time = lastHr\r\n }\r\n\r\n let payLoad = {\r\n appointment_type_id: \"lead\",\r\n title: formValue?.title,\r\n allday_flag: formValue?.allday_flag ? 1 : 0,\r\n importance: formValue?.importance ? 1 : 5,\r\n description: formValue?.description,\r\n completed_date: formValue?.dismiss ? moment().toISOString() : '',\r\n start_time: this.momentService.serverDateTime(formValue.startDate, formValue?.start_time),\r\n end_time: this.momentService.serverDateTime(endDate, end_time),\r\n user_id: this.authService.getToken().user_id,\r\n lead_id: this.lead_detail.lead_id,\r\n }\r\n this.isButtonClicked = true;\r\n this.isAddConvAptSubs = this.calendarService.addLeadAppointment(payLoad).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.isButtonClicked = false;\r\n this.addAppointmentForm.markAsPristine();\r\n this.aptChange.emit(false);\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n this.closeModal();\r\n this.toastMsgService.showSuccess(\"Appointment saved successfully.\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.isButtonClicked = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n });\r\n }else{\r\n let params;\r\n let formValue = this.addAppointmentForm?.value;\r\n params = {\r\n appointment_id: this.appointment_id != '' ? this.appointment_id : '',\r\n title: formValue?.title,\r\n allday_flag: formValue?.allday_flag ? 1 : 0,\r\n importance: formValue?.importance ? 1 : 5,\r\n description: formValue?.description,\r\n completed_date: formValue?.dismiss ? moment().toISOString() : '',\r\n start_time: this.momentService.serverDateTime(formValue.startDate, formValue?.start_time),\r\n end_time: this.momentService.serverDateTime(formValue.endDate, formValue?.end_time),\r\n appointment_type_id: this.selectedLead ? 'lead' : 'agent', // \"agent\" or \"lead\" (if assign \"lead\" then lead otherwise \"agent\")\r\n user_id: this.isFromCalendar && this.isFromCalendar.extendedProps ? this.isFromCalendar.extendedProps?.user_id: `${this.authService.getToken().user_id}`,\r\n lead_id: this.selectedLead? this.selectedLead.lead_id : this.isFromCalendar?.extendedProps?.lead_id\r\n }\r\n this.isButtonClicked = true;\r\n this.isAddAptSubs = this.calendarService.addAppointment(params).subscribe({\r\n next: (response: any) => {\r\n this.isButtonClicked = false;\r\n this.closeModal();\r\n this.addEvent.emit('true');\r\n this.aptChange.emit(false);\r\n this.addAppointmentForm.markAsPristine();\r\n this.calendarService.sendEventData(response);\r\n if (this.appointment_id == '') {\r\n this.toastMsgService.showSuccess(\"Appointment saved successfully.\");\r\n if (this.isFromCalendar?.activeModule == 'dashboard')\r\n this.leadService.sendLeadLedger('refreshDashboard');\r\n } else {\r\n this.toastMsgService.showSuccess(\"Appointment updated successfully.\");\r\n }\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n },\r\n error: (err) => {\r\n this.isButtonClicked = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n public copyAppointment() {\r\n this.isNewApt = true;\r\n this.isAssignLead = false;\r\n this.isAddAppointment = true;\r\n this.hasChange = true;\r\n this.appointment_id = \"\";\r\n this.calendarService.sendTitle('refreshTitle');\r\n }\r\n\r\n public deleteApt() {\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'Are you sure you want to delete these records?'\r\n }\r\n });\r\n dialogRef.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe(res => {\r\n if (res) {\r\n this.isAddDelSubs = this.calendarService.deleteEvent(this.appointment_id).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.toastMsgService.showSuccess(\"Appointment deleted successfully.\");\r\n this.calendarService.sendDeleteData(this.appointment_id);\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n this.closeModal();\r\n }\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n });\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.errorMsg = errorMsg;\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, 30000);\r\n }\r\n\r\n private createFormConversationTable() {\r\n this.addAppointmentForm = this.formBuilder.group({\r\n allday_flag: [false],\r\n description: [''],\r\n end_time: ['', Validators.required],\r\n importance: [false],\r\n dismiss: [false],\r\n start_time: ['', Validators.required],\r\n title: ['', Validators.required],\r\n startDate: ['', Validators.required],\r\n endDate: ['', Validators.required],\r\n });\r\n }\r\n\r\n public clearMessage(){\r\n this.errorMsg = null;\r\n }\r\n\r\n public goToLeadLedger(lead_id:string, event:any){\r\n lead_id = (this.selectedLead?.lead_id) ? this.selectedLead.lead_id : lead_id;\r\n this.closeModal();\r\n event.preventDefault();\r\n this.commonService.goToLeadLedger(lead_id);\r\n }\r\n\r\n public closeModal(){\r\n this.dialog.closeAll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n this.editor.destroy();\r\n if(this.isAddConvAptSubs) this.isAddConvAptSubs.unsubscribe();\r\n if(this.isAddAptSubs) this.isAddAptSubs.unsubscribe();\r\n if(this.isAddDelSubs) this.isAddDelSubs.unsubscribe();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n

Add {{event['tabName']}}

\r\n

{{isMode ? 'Edit' : 'Add'}} {{isAppointment ? 'Appointment' : 'Task'}}

\r\n close\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CalendarService } from '@data/services/calendar/calendar.service';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-add-event',\r\n templateUrl: './add-event.component.html',\r\n styleUrls: ['./add-event.component.scss']\r\n})\r\nexport class AddEventComponent implements OnInit, OnDestroy {\r\n private aptChange:boolean = false;\r\n private taskChange:boolean = false;\r\n private _componentDestroyed$ = new Subject();\r\n public calendarData: any;\r\n public selectedTabIndex: number = 0;\r\n public isAppointment:boolean=false;\r\n public isMode : boolean = true;\r\n constructor(\r\n private calendarService : CalendarService,\r\n private commonService:CommonService,\r\n @Inject(MAT_DIALOG_DATA) public event: any,\r\n public dialogRef: MatDialogRef\r\n ) {\r\n this.calendarData = this.event;\r\n switch (this.event['tabName']) {\r\n case 'Appointment':\r\n this.selectedTabIndex = 0;\r\n break;\r\n case 'Task':\r\n this.selectedTabIndex = 1;\r\n break;\r\n }\r\n if(event.type!='add'){\r\n if(this.event.allEndTime || this.event.end || this.event.allDay == true){\r\n this.isAppointment = true;\r\n }\r\n this.calendarData = this.event;\r\n this.calendarService.getTitle().pipe(takeUntil(this._componentDestroyed$)).subscribe(response =>{\r\n if(response){\r\n this.isMode = false;\r\n }\r\n })\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n public tabClick(event: any) {\r\n this.event['tabName'] = event.tab.textLabel;\r\n }\r\n\r\n public onAdd(data: any) {\r\n if (data) {\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n public sendAptChange(value:boolean){\r\n this.aptChange = value;\r\n }\r\n\r\n public sendTaskChange(value:boolean){\r\n this.taskChange = value;\r\n }\r\n\r\n public closeModal(){\r\n if(this.aptChange || this.taskChange)\r\n this.commonService.unsavedChangesNotice();\r\n else\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n

{{ errorMsg }}

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

Assign Lead

\r\n \r\n add\r\n \r\n
\r\n
\r\n
\r\n \r\n Lead Name\r\n \r\n \r\n {{leadName}}\r\n \r\n \r\n \r\n remove\r\n \r\n \r\n add\r\n \r\n
\r\n
\r\n
\r\n highlight_off\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Title\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Completed\r\n
\r\n
\r\n Important\r\n
\r\n
\r\n
\r\n \r\n Due Date\r\n \r\n \r\n \r\n \r\n \r\n Due Time\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TOOLBAR } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { Lead } from '@data/lead/lead.interface';\r\nimport { MomentService } from '@shared/services/moment/moment.service';\r\nimport { CalendarService } from '@data/services/calendar/calendar.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Editor } from 'ngx-editor';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\n\r\n@Component({\r\n selector: 'app-add-task',\r\n templateUrl: './add-task.component.html',\r\n styleUrls: ['./add-task.component.scss']\r\n})\r\nexport class AddTaskComponent implements OnInit, OnDestroy {\r\n private lead_detail: any = [];\r\n private isAddConvTaskSubs: Subscription;\r\n private isAddTaskSubs: Subscription;\r\n private isAddDelSubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n @Input() isFromCalendar: any;\r\n @Output() addEvent = new EventEmitter();\r\n @Output() taskChange = new EventEmitter();\r\n public editor: Editor; // Editor;\r\n public toolbar: any = TOOLBAR;\r\n public displayAssignLead: boolean = false;\r\n public selectedLead: Lead;\r\n public clearSearch: boolean = false;\r\n public addTaskForm!: FormGroup;\r\n public leadName: string = \"\";\r\n public isEditAppointment: boolean = false;\r\n public isAssignLead: boolean = true;\r\n public appointment_id: string = \"\";\r\n public isAddTask: boolean = false;\r\n public errorMsg: string | null = null;\r\n public isNewApt: boolean = true;\r\n public isDateTime: boolean = true;\r\n public isConversationTask: boolean = false;\r\n public hasChange: boolean = false;\r\n public isButtonClicked:boolean=false;\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private momentService: MomentService,\r\n private authService: AuthService,\r\n private calendarService: CalendarService,\r\n private toastMsgService: ToastMsgService,\r\n private dialog: MatDialog,\r\n private leadService: LeadService,\r\n private commonService: CommonService\r\n ) {\r\n this.editor = new Editor();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.onCreateGroupFormValueChange();\r\n }\r\n\r\n /* function to detect any changes in user profile form */\r\n public onCreateGroupFormValueChange() {\r\n const initialValue = this.addTaskForm?.value;\r\n this.addTaskForm?.valueChanges.pipe(takeUntil(this._componentDestroyed$)).subscribe(value => {\r\n if (this.addTaskForm?.dirty) {\r\n this.hasChange = Object.keys(initialValue).some(key => this.addTaskForm?.value[key] != initialValue[key]);\r\n this.taskChange.emit(true);\r\n }\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'add')) {\r\n this.isAddTask = true;\r\n }\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'conversationLog')) {\r\n this.isAddTask = false;\r\n this.isAssignLead = false;\r\n this.isConversationTask = true;\r\n this.lead_detail = this.isFromCalendar.leadDetail;\r\n this.createCoversationTaskForm();\r\n } else {\r\n this.createForm();\r\n }\r\n this.onCreateGroupFormValueChange();\r\n }\r\n\r\n private createForm() {\r\n if (this.isAddTask) {\r\n this.isNewApt = true;\r\n let starTdate = this.isFromCalendar?.selectedDate?.date || new Date();\r\n const d = moment(starTdate);\r\n let hour = d.hours();\r\n let min = d.minutes();\r\n let hr;\r\n let m;\r\n let lastHr;\r\n if (hour < 10) {\r\n lastHr = hour + 1;\r\n if (lastHr < 10) {\r\n lastHr = \"0\" + lastHr.toString();\r\n }\r\n hr = \"0\" + hour.toString();\r\n } else {\r\n lastHr = hour + 1;\r\n hr = hour;\r\n }\r\n if (min < 10) {\r\n m = \"0\" + min.toString();\r\n } else {\r\n m = min;\r\n }\r\n let time = hr + \":\" + m;\r\n if (lastHr == 24) {\r\n lastHr = '00';\r\n }\r\n lastHr = lastHr + \":\" + m;\r\n this.addTaskForm = this.formBuilder.group({\r\n title: ['', Validators.required],\r\n completed: [false],\r\n importance: [false],\r\n startDate: [this.isFromCalendar ? starTdate : ''],\r\n start_time: [this.isFromCalendar ? time : ''],\r\n description: ['']\r\n });\r\n } else {\r\n this.isAddTask = false;\r\n this.isNewApt = false;\r\n this.appointment_id = this.isFromCalendar.id;\r\n this.isAssignLead = false;\r\n if (this.isFromCalendar.extendedProps.fname != '') {\r\n this.leadName = this.isFromCalendar.extendedProps.fname + \" \" + this.isFromCalendar.extendedProps.lname;\r\n }\r\n this.addTaskForm = this.formBuilder.group({\r\n title: [this.isFromCalendar ? this.isFromCalendar.title : '', Validators.required],\r\n completed: [this.isFromCalendar.extendedProps.completed_date == '' ? false : true],\r\n importance: [this.isFromCalendar.extendedProps.importance == '1' ? true : false],\r\n startDate: [this.isFromCalendar.start ? this.isFromCalendar.start : ''],\r\n start_time: [this.isFromCalendar.start ? this.convertTaskTime(this.isFromCalendar.start) : ''],\r\n description: [this.isFromCalendar.extendedProps.description]\r\n });\r\n }\r\n this.hasChange = false;\r\n }\r\n\r\n private convertTaskTime(start:any){\r\n const convertedTime = moment(start).format(\"HH:mm\");\r\n return (convertedTime == '00:00') ? ' ' : convertedTime;\r\n }\r\n\r\n public showSearchPanel() {\r\n this.displayAssignLead = true;\r\n }\r\n\r\n public removeSelectedLead() {\r\n this.clearSearch = true;\r\n this.selectedLead = {} as Lead;\r\n this.leadName = \"\";\r\n this.displayAssignLead = false;\r\n }\r\n\r\n public hideSearchPanel() {\r\n this.displayAssignLead = false;\r\n }\r\n\r\n public selectLead(lead: Lead) {\r\n this.selectedLead = lead;\r\n this.leadName = lead?.fname + \"\" + lead?.lname\r\n }\r\n\r\n /* method to check the date field is empty or not */\r\n public dateCheck(event: any) {\r\n if(!event.target.value && this.addTaskForm?.value.start_time){\r\n this.isDateTime = false;\r\n }else{\r\n this.isDateTime = true;\r\n }\r\n }\r\n\r\n /* method to check the time field is empty or not */\r\n public timeCheck(event: any) {\r\n if (event?.code == 'Backspace') {\r\n this.addTaskForm.patchValue({start_time: ''});\r\n }\r\n if(event.target.value && !this.addTaskForm?.value.startDate){\r\n this.isDateTime = false;\r\n }else{\r\n this.isDateTime = true;\r\n }\r\n }\r\n\r\n /* add tasks */\r\n public addTask() {\r\n if (this.addTaskForm.invalid) {\r\n return;\r\n } else {\r\n if ((this.isFromCalendar.type) && (this.isFromCalendar.type === 'conversationLog')) {\r\n let formValue = this.addTaskForm?.value;\r\n let payLoad = {\r\n appointment_type_id: \"lead\",\r\n completed_date: formValue?.completed ? moment().toISOString() : '',\r\n importance: formValue?.importance ? 1 : 5,\r\n description: formValue?.description,\r\n lead_id: this.lead_detail.lead_id,\r\n start_time: this.momentService.serverDateTime(formValue.startDate, formValue?.start_time),\r\n title: formValue?.title,\r\n user_id: this.authService.getToken().user_id\r\n }\r\n this.isButtonClicked = true;\r\n this.isAddConvTaskSubs = this.calendarService.addLeadAppointment(payLoad).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.isButtonClicked = false;\r\n this.addTaskForm.markAsPristine();\r\n this.taskChange.emit(false);\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n this.closeModal();\r\n this.toastMsgService.showSuccess(\"Task saved successfully.\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.isButtonClicked = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n });\r\n }else{\r\n let formValue = this.addTaskForm?.value;\r\n let params;\r\n params = {\r\n appointment_id: this.appointment_id != '' ? this.appointment_id : '',\r\n title: formValue?.title,\r\n completed_date: formValue?.completed ? moment().toISOString() : '',\r\n importance: formValue?.importance ? 1 : 5,\r\n description: formValue?.description,\r\n start_time: this.momentService.serverDateTime(formValue.startDate, formValue?.start_time?formValue?.start_time:'00:00'),\r\n appointment_type_id: this.selectedLead?.lead_id ? 'lead' : 'agent', // \"agent\" or \"lead\" (if assign \"lead\" then lead otherwise \"agent\")\r\n user_id: `${this.authService.getToken().user_id}`,\r\n lead_id: this.selectedLead? this.selectedLead.lead_id : this.isFromCalendar?.extendedProps?.lead_id\r\n }\r\n this.isButtonClicked = true;\r\n this.isAddTaskSubs = this.calendarService.addAppointment(params).subscribe({\r\n next: (response: any) => {\r\n this.isButtonClicked = false;\r\n this.closeModal();\r\n this.addEvent.emit('true');\r\n this.calendarService.sendEventData(response);\r\n if (this.appointment_id == '') {\r\n this.toastMsgService.showSuccess(\"Task saved successfully.\");\r\n if (this.isFromCalendar?.activeModule == 'dashboard')\r\n this.leadService.sendLeadLedger('refreshDashboard');\r\n } else {\r\n this.toastMsgService.showSuccess(\"Task updated successfully.\");\r\n }\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n },\r\n error: (err) => {\r\n this.isButtonClicked = false;\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n }\r\n }\r\n\r\n public copyTask() {\r\n this.isNewApt = true;\r\n this.isAssignLead = false;\r\n this.isAddTask = true;\r\n this.hasChange = true;\r\n this.appointment_id = \"\";\r\n this.calendarService.sendTitle('refreshTitle');\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.errorMsg = errorMsg;\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, 30000);\r\n }\r\n\r\n public deleteTask() {\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'Are you sure you want to delete these records?'\r\n }\r\n });\r\n dialogRef.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe(res => {\r\n if (res) {\r\n this.isAddDelSubs = this.calendarService.deleteEvent(this.appointment_id).subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n this.toastMsgService.showSuccess(\"Task deleted successfully.\");\r\n this.calendarService.sendDeleteData(this.appointment_id);\r\n this.leadService.sendRefreshConvTable('refreshTable');\r\n this.closeModal();\r\n }\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n });\r\n }\r\n\r\n private createCoversationTaskForm() {\r\n this.addTaskForm = this.formBuilder.group({\r\n title: ['', Validators.required],\r\n completed: [false],\r\n importance: [false],\r\n startDate: [''],\r\n start_time: [''],\r\n description: ['']\r\n });\r\n }\r\n\r\n public goToLeadLedger(lead_id:string,event:any){\r\n lead_id = (this.selectedLead?.lead_id) ? this.selectedLead.lead_id : lead_id;\r\n this.closeModal();\r\n event.preventDefault();\r\n this.commonService.goToLeadLedger(lead_id);\r\n }\r\n\r\n public closeModal(){\r\n this.dialog.closeAll();\r\n }\r\n\r\n public clearMessage(){\r\n this.errorMsg = null;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n this.editor.destroy();\r\n if(this.isAddConvTaskSubs) this.isAddConvTaskSubs.unsubscribe();\r\n if(this.isAddTaskSubs) this.isAddTaskSubs.unsubscribe();\r\n if(this.isAddDelSubs) this.isAddDelSubs.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n First Name\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n You are required to fill at least one field.\r\n
\r\n
\r\n
\r\n \r\n Retrieving search results\r\n \r\n
\r\n
\r\n \r\n

No results found based on the selected criteria.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Lead Name {{row.fname}} {{row?.lname}} DOB \r\n {{row?.dob ? (row?.dob | date : 'MM/dd/yyyy') : 'N/A'}} ({{row?.dob ? (row?.dob | agePipe) : ''}})\r\n Address {{row?.default_address?.address1}} City {{row?.default_address?.city}} State {{row?.default_address?.state_id}} Zip {{row?.default_address?.zip}} Disposition {{row?.dispo_name}}
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n","import { AfterContentInit, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-select-assign-lead',\r\n templateUrl: './assign-lead.component.html',\r\n styleUrls: ['./assign-lead.component.scss']\r\n})\r\nexport class AssignLeadComponent implements OnInit, OnChanges, AfterContentInit {\r\n private leadSearchSubs: Subscription;\r\n private assignLeadArray: any = [];\r\n @Input() clearSearch: boolean = false;\r\n @Output() lead = new EventEmitter();\r\n @ViewChild(MatPaginator, { static: true }) assignLeadPagination!: MatPaginator;\r\n public displayedColumns: string[] = ['fname', 'dob', 'default_address', 'city', 'state', 'zip', 'dispo_name'];\r\n public dataSource = new MatTableDataSource();\r\n public isSearch: boolean = false;\r\n public fName: string = \"\";\r\n public lName: string = \"\";\r\n public isLoading: boolean = false;\r\n public isHavingData: boolean = false;\r\n public totalRecords: number = 0;\r\n public selectedRow: any;\r\n\r\n constructor(private authService: AuthService,\r\n private leadService: LeadService) { }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.dataSource.paginator = this.assignLeadPagination;\r\n if (this.clearSearch) {\r\n this.fName = \"\";\r\n this.lName = \"\";\r\n this.dataSource = new MatTableDataSource();\r\n this.selectedRow = \"\";\r\n this.isHavingData = this.isSearch = false;\r\n this.totalRecords = 0\r\n }\r\n }\r\n\r\n public ngAfterContentInit() {\r\n this.dataSource.paginator = this.assignLeadPagination;\r\n }\r\n\r\n public selectRow(row: any) {\r\n this.selectedRow = row;\r\n this.lead.emit(this.selectedRow);\r\n }\r\n\r\n public searchLead() {\r\n if (this.fName || this.lName) {\r\n let paramsObj = {\r\n search_type: \"simple\",\r\n criteria: {\r\n account_id: {\r\n type: \"simple\",\r\n value: [this.authService.account_id]\r\n },\r\n ...(this.fName) && {\r\n fname: {\r\n type: \"simple\",\r\n value: [`${this.fName}%`]\r\n }\r\n },\r\n ...(this.lName) && {\r\n lname: {\r\n type: \"simple\",\r\n value: [`${this.lName}%`]\r\n }\r\n }\r\n },\r\n field_list: \"lead_id,fname,lname,dispo_name,dob,default_address\",\r\n page_number: 1\r\n }\r\n\r\n this.isLoading = true;\r\n this.leadSearchSubs = this.leadService.leadSearch(paramsObj).subscribe({\r\n next: (res: any) => {\r\n this.isHavingData = res?.message ? false : true;\r\n this.totalRecords = res?.length;\r\n this.assignLeadArray = res;\r\n this.dataSource = new MatTableDataSource(this.isHavingData ? this.assignLeadArray: []);\r\n this.dataSource.paginator = this.assignLeadPagination;\r\n this.isLoading = false;\r\n }, error: err => {\r\n this.isLoading = false;\r\n }\r\n });\r\n\r\n }\r\n this.isSearch = true;\r\n }\r\n\r\n public ngOnDestroy(){\r\n if(this.leadSearchSubs){\r\n this.leadSearchSubs.unsubscribe()\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

eSIGNATURE SCOPE OF APPOINTMENT

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

The eSignature Scope Of Appointment (SOA) provided here is a CMS-approved, proprietary SMS tool that is not specific\r\n to any plan sponsor and can be used for all appointments as per CMS Medicare Marketing Guidelines.

\r\n\r\n
\r\n
\r\n \r\n Appointment Date\r\n \r\n \r\n \r\n Please enter a valid date as \"MM/DD/YYYY\" between today and 1 year.\r\n \r\n \r\n Initial Method of Contact\r\n \r\n Web\r\n Email \r\n Phone\r\n Text\r\n Walk in\r\n \r\n \r\n
\r\n
\r\n \r\n Enter Agent Name Here to eSign\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { leadUtilityFunctions } from '@data/services/lead/lead-utility-functions';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Subscription, first } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-f2f-soa',\r\n templateUrl: './f2f-soa.component.html',\r\n styleUrls: ['./f2f-soa.component.scss']\r\n})\r\nexport class F2fSoaComponent implements OnInit {\r\n private getSoAeSignatureSubs:Subscription;\r\n private getClientInviteSubs:Subscription;\r\n public f2fForms : FormGroup;\r\n public minDate : Date;\r\n public maxDate : string;\r\n public isButtonClick : boolean = false;\r\n constructor(\r\n private fb : FormBuilder,\r\n private auth: AuthService,\r\n private dialog: MatDialog,\r\n private leadService: LeadService,\r\n private toastMsgService: ToastMsgService,\r\n public luf : leadUtilityFunctions\r\n ) {\r\n this.f2fForms = this.fb.group({\r\n 'aptDate' : ['', Validators.required],\r\n 'contactMethod' : ['', Validators.required],\r\n 'agentSignature' : ['', Validators.required],\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.minDate = new Date();\r\n this.maxDate = moment(this.minDate).add(1, \"year\").format(\"MM/DD/YYYY\");\r\n }\r\n\r\n public checkAptDate(date: string) {\r\n let futureDate = moment(date).format(\"MM/DD/YYYY\")\r\n if (moment(futureDate).isAfter(this.maxDate)) {\r\n this.f2fForms.controls['aptDate'].setErrors({ invalid: true });\r\n }\r\n }\r\n public f2fSOA(){\r\n if(this.f2fForms.invalid){\r\n return;\r\n }else{\r\n this.isButtonClick = true;\r\n let fomrData = this.f2fForms.value;\r\n this.getSoAeSignatureSubs = this.leadService.getSoAeSignature(fomrData.agentSignature).pipe(first()).subscribe({\r\n next: (res: any) => {\r\n let user = this.auth.user_details;\r\n var agentESignatureID = res.esignature_id;\r\n let lead = this.leadService.lead_details\r\n let payload = this.luf.generateRequestPayload(user,agentESignatureID,lead,fomrData,'f2f');\r\n this.getClientInviteSubs = this.leadService.getClientInvite(payload).pipe(first()).subscribe({\r\n next: (res: any) => {\r\n this.isButtonClick = false;\r\n if (res.success == 0) {\r\n if (user.default_phone.phone) {\r\n\t\t\t\t\t\t\t\t\tthis.toastMsgService.showError('The eSignature Scope Of Appointment was not emailed. ' + res.message);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tthis.toastMsgService.showError('To send eSOA you need to have a phone number in your agent profile. Click on your name in the upper right hand corner and select \"Profile\" from the drop down to add your agent phone number');\r\n\t\t\t\t\t\t\t\t}\r\n }else {\r\n if (res.remote_invite_url) {\r\n\t\t\t\t\t\t\t\t\twindow.open(res.remote_invite_url);\r\n\t\t\t\t\t\t\t\t}\r\n //this.toastMsgService.showSuccess('The eSignature Scope Of Appointment was emailed.');\r\n\t\t\t\t\t\t\t}\r\n this.dialog.closeAll();\r\n }, error: err => {\r\n this.isButtonClick = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n });\r\n }, error: err => {\r\n this.isButtonClick = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public ngOnDestroy(){\r\n if (this.getSoAeSignatureSubs) this.getSoAeSignatureSubs.unsubscribe();\r\n if (this.getClientInviteSubs) this.getClientInviteSubs.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Contact Permission Update History

\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Contact Permission \r\n Call\r\n Email\r\n Mail\r\n Text\r\n Status \r\n ON\r\n OFF\r\n Date/Time {{row?.lead_contact_permission_change_date | date : 'MM/dd/yyyy'}} Username {{row?.lead_contact_permission_change_user.login}} Name {{row?.lead_contact_permission_change_user.fname + ' ' + row?.lead_contact_permission_change_user.lname}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'app-permission-history',\r\n templateUrl: './permission-history.component.html',\r\n styleUrls: ['./permission-history.component.scss']\r\n})\r\nexport class PermissionHistoryComponent implements OnInit {\r\n private historyData: any;\r\n public contactDisplayedColumns: string[] = ['lead_contact_permission_type', 'lead_contact_permission_to_contact', 'lead_contact_permission_change_date', 'login', 'fname'];\r\n public contactDataSource: any;\r\n @ViewChild('contactPaginator', { static: true }) contactPaginator!: MatPaginator;\r\n @ViewChild('contactSort', { static: true }) contactSort!: MatSort;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public permission: any,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n this.historyData = permission;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.contactDataSource = new MatTableDataSource(this.historyData);\r\n this.contactDataSource.sortingDataAccessor = (item: any, property: any) => {\r\n switch (property) {\r\n case 'login': return item.lead_contact_permission_change_user.login;\r\n case 'fname': return item.lead_contact_permission_change_user.fname;\r\n default: return item[property];\r\n }\r\n };\r\n this.contactDataSource.paginator = this.contactPaginator;\r\n this.contactDataSource.sort = this.contactSort;\r\n }\r\n}\r\n","
\r\n
\r\n

Lead Details ‐ {{ lead_details?.fname }} {{ lead_details?.lname }}

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

{{ message.text }}

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

Changes have been made. Select \"Update\" to save them.

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

Lead Information

\r\n
\r\n \r\n Prefix\r\n \r\n \r\n \r\n First Name\r\n \r\n Max length is 25 characters\r\n \r\n \r\n Initial\r\n \r\n \r\n \r\n Last Name\r\n \r\n Max length is 25 characters\r\n \r\n
\r\n
\r\n \r\n Birthdate\r\n \r\n You must enter a valid date.\r\n \r\n \r\n Gender\r\n \r\n {{gender.text}}\r\n \r\n \r\n \r\n Marital Status\r\n \r\n {{marital.text}}\r\n \r\n \r\n
\r\n \r\n Height\r\n \r\n ft\r\n \r\n \r\n \r\n \r\n in\r\n \r\n
\r\n \r\n Weight\r\n \r\n lbs\r\n \r\n \r\n SSN\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n

Preferred Contact

\r\n
\r\n \r\n Name\r\n \r\n Max length is 50 characters\r\n \r\n \r\n Type\r\n \r\n {{contact.text}}\r\n \r\n \r\n \r\n Telephone #\r\n \r\n \r\n \r\n Relationship\r\n \r\n {{relation.text}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Yes\r\n No\r\n \r\n
\r\n\r\n \r\n

Emergency Contact

\r\n
\r\n \r\n Name\r\n \r\n Max length is 50 characters\r\n \r\n \r\n Type\r\n \r\n {{contact.text}}\r\n \r\n \r\n \r\n Telephone #\r\n \r\n \r\n \r\n Relationship\r\n \r\n {{relation.text}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n

Medicare & Medicaid

\r\n
\r\n \r\n Medicare Name\r\n \r\n Max length is 50 characters\r\n \r\n \r\n Medicare Number\r\n \r\n Max length is 15 characters\r\n \r\n
\r\n
\r\n \r\n Part A Date\r\n \r\n Part A date should be first of the month & can't be before 1965\r\n \r\n \r\n Part B Date\r\n \r\n Part B date should be first of the month & can't be before 1965\r\n \r\n
\r\n
\r\n \r\n Medicaid Number\r\n \r\n Max length is 20 characters\r\n \r\n \r\n Medicaid State\r\n \r\n None\r\n {{ el.abbreviation }}\r\n \r\n \r\n
\r\n \r\n\r\n

Lead Origination Data

\r\n
\r\n \r\n \r\n Lead Source\r\n \r\n {{source?.lead_vendor_code + ' [' + source?.company + ']'}}\r\n \r\n \r\n\r\n \r\n Advertising Code\r\n \r\n \r\n
\r\n
\r\n \r\n Client/Partner/Affiliate\r\n \r\n \r\n {{b2b.company}}\r\n \r\n \r\n\r\n \r\n Tracking Code\r\n \r\n \r\n {{tCode.tracking_code}}\r\n \r\n {{lead_details.source_code}}\r\n \r\n Tracking Code is a required field.\r\n \r\n \r\n Tracking Code\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Campaign\r\n \r\n \r\n {{camp.campaign_code}}\r\n \r\n \r\n\r\n \r\n Segment\r\n \r\n {{seg.campaign_segment_code}}\r\n \r\n \r\n
\r\n
\r\n \r\n Lead Type\r\n \r\n {{type.lead_type_desc | titlecase}}\r\n \r\n \r\n\r\n \r\n Product Type\r\n \r\n {{ product.product_type_name | titlecase }}\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n

Lead Instruction

\r\n
\r\n
    \r\n
  • {{ins.lead_instruction_text}}
  • \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n Tag\r\n \r\n \r\n {{tag.tag_name}}\r\n \r\n \r\n \r\n Max length is 20 characters\r\n \r\n \r\n {{tag.tag_name}}\r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n

Contact Permissions

\r\n\r\n

I attest that I received client's permission to contact regarding Medicare Advantage and Medicare Part D via:

\r\n
\r\n Email\r\n Phone\r\n Text\r\n Mail\r\n
\r\n Last updated by: {{ lead_details?.agent_fname + ' ' + lead_details?.agent_lname }}\r\n Permission History\r\n\r\n \r\n
\r\n

Latest Disposition

\r\n
\r\n \r\n Date\r\n \r\n \r\n \r\n \r\n \r\n Title\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { CONTACT_RELATION, GENDER, MARITAL_STATUS, PHONE_TYPES, validatorPatterns } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport * as stateData from '@data/states.json';\r\nimport { environment } from '@env/environment';\r\nimport { PermissionHistoryComponent } from '@modules/lead/components/permission-history/permission-history.component';\r\nimport { CheckDobDate, CheckInvalidDate, CommonService, ValidateDate } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Observable, Subject, Subscription, forkJoin } from 'rxjs';\r\nimport { filter, first, map, takeUntil } from 'rxjs/operators';\r\n@Component({\r\n selector: 'app-lead-detail',\r\n templateUrl: './lead-detail.component.html',\r\n styleUrls: ['./lead-detail.component.scss']\r\n})\r\nexport class LeadDetailComponent implements OnInit {\r\n private accSettings:AccountSettings;\r\n private isFormChangeSubs: Subscription;\r\n private isLeadDEtailsSubs: Subscription;\r\n private leadVendorSearchSubs: Subscription;\r\n private getleadTypeSubs: Subscription;\r\n private getCampaignCodeSubs: Subscription;\r\n private getb2bpartnerSubs: Subscription;\r\n private getProductTypeSubs: Subscription;\r\n private getTagSearchSubs: Subscription;\r\n private getCampaignSegmentSubs: Subscription;\r\n private getTrackingCodeSubs: Subscription;\r\n private getContactPermissionHistorySubs: Subscription;\r\n private saveLeadDetailsSubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n private requests_list: any = [];\r\n public leadDeatilsForm: UntypedFormGroup;\r\n public state_data: any= [];\r\n public lead_id: any = 0;\r\n public tags: any = [];\r\n public addOnBlur = true;\r\n public lead_vendor_data: any;\r\n public lead_type: any;\r\n public campaign_code: any;\r\n public campaign_segment: any;\r\n public b2bPartner_data: any;\r\n public product_type: any;\r\n public tag_data: any;\r\n public marital_data = MARITAL_STATUS;\r\n public relation_data = CONTACT_RELATION;\r\n public contact_data = PHONE_TYPES;\r\n public gender_data = GENDER;\r\n public isLoading: boolean = false;\r\n public lead_details: any;\r\n public isCommonFlag: boolean = false;\r\n public newTag = new FormControl('');\r\n public filteredTags: Observable;\r\n public lodEnabled:boolean = false;\r\n\r\n public message: any = {};\r\n public invalidRuleViolation = false;\r\n\r\n public hasChange: boolean = false;\r\n public isEmergency: boolean = false;\r\n public tracking_data: any = [];\r\n public maxDate = new Date();\r\n public partAB_MinDate = new Date('01/01/1965');\r\n\r\n @ViewChild('tagInput') tagInput: ElementRef;\r\n\r\n readonly separatorKeysCodes = [ENTER, COMMA] as const;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public leadId: any,\r\n private fb: UntypedFormBuilder,\r\n private auth: AuthService,\r\n private leadService: LeadService,\r\n private commonService: CommonService,\r\n private _toasMsgService: ToastMsgService,\r\n public dialog: MatDialog,\r\n private http: HttpClient,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n this.lead_id = leadId;\r\n this.leadDeatilsForm = this.fb.group({\r\n title: [''],\r\n fname: [''],\r\n mname: [''],\r\n lname: [''],\r\n dob: ['', [CheckInvalidDate, CheckDobDate]],\r\n gender: [''],\r\n marital_status: [''],\r\n height_feet: [''],\r\n height_inches: [''],\r\n weight: [''],\r\n ssn: [''],\r\n medicare_name: [''],\r\n medicaid_number: [''],\r\n medicaid_state: [''],\r\n hicn: [''],\r\n medicare_parta_date: ['', [ValidateDate]],\r\n medicare_partb_date: ['', [ValidateDate]],\r\n phones: this.fb.array([this.newPhones()]),\r\n source_vendor_id: [''],\r\n source_adcode: [''],\r\n b2bpartner_id: [''],\r\n source_code: [''],\r\n campaign_id: [''],\r\n campaign_segment_code: [''],\r\n lead_type_id: [''],\r\n product_type_id: [''],\r\n emails: this.fb.array([this.newEmail()]),\r\n addresses: this.fb.array([this.newAddress()]),\r\n tags: this.newTag,\r\n do_not_email: [''],\r\n do_not_call: [''],\r\n do_not_text: [''],\r\n do_not_mail: [''],\r\n disposition_date: [''],\r\n dispo_name: [''],\r\n dispo_log: [''],\r\n contact_name: [''],\r\n contact_phone_type: [''],\r\n contact_phone: [''],\r\n contact_relationship: [''],\r\n isEmergencyContact: ['no'],\r\n emergency_name: [''],\r\n emergency_phone_type: [''],\r\n emergency_phone: [''],\r\n emergency_relationship: ['']\r\n });\r\n /* get states data */\r\n this.state_data = (stateData as any).default;\r\n this.isFormChangeSubs = this.leadService.getFormChangeAlert().subscribe(response => {\r\n if (response) {\r\n this.hasChange = true;\r\n }\r\n });\r\n this.commonService.getAccountSettings(this.auth.account_id)\r\n .pipe(first())\r\n .subscribe({\r\n next: (acc: AccountSettings) => {\r\n this.accSettings = acc;\r\n this.lodEnabled = this.accSettings.lead_manage_tracking_number_feature_enabled == \"1\";\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n })\r\n\r\n }\r\n\r\n public ngOnChanges() {\r\n this.onCreateGroupFormValueChange();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getLeadVendor();\r\n this.getleadType();\r\n this.getCampaignCode();\r\n this.getB2BPartner();\r\n this.getProductType();\r\n this.getTagSearch();\r\n this.getLeadDetails();\r\n this.onCreateGroupFormValueChange();\r\n\r\n window.addEventListener('beforeunload', (event) => {\r\n if (!this.leadDeatilsForm.pristine) {\r\n setTimeout(function () {\r\n var returnValue = confirm(\"You have unsaved content, are you sure you want to exit?\");\r\n if (returnValue == true) {\r\n return true;\r\n }\r\n else {\r\n window.stop();\r\n return false;\r\n }\r\n });\r\n return;\r\n }\r\n });\r\n }\r\n\r\n //function to detect any changes in user profile form\r\n public onCreateGroupFormValueChange() {\r\n const initialValue = this.leadDeatilsForm.value;\r\n this.leadDeatilsForm.valueChanges.pipe(takeUntil(this._componentDestroyed$)).subscribe(value => {\r\n if (this.leadDeatilsForm.dirty && !this.isLoading) {\r\n if (value.isEmergencyContact == 1 && (!this.leadDeatilsForm.value['contact_name']\r\n && !this.leadDeatilsForm.value['contact_phone']\r\n && !this.leadDeatilsForm.value['contact_relationship'])) {\r\n this.hasChange = false;\r\n }else if(this.leadDeatilsForm.value['mname'] && !this.leadDeatilsForm.value['mname'].replace(/[^a-zA-Z]/g, '')){\r\n this.hasChange = false;\r\n } else {\r\n this.hasChange = Object.keys(initialValue).some(key =>\r\n this.leadDeatilsForm.value[key] != initialValue[key]\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getLeadDetails() {\r\n this.isLoading = true;\r\n this.isLeadDEtailsSubs = this.leadService.getLeadDetails(this.lead_id).subscribe({\r\n next: (res: any) => {\r\n if (res) {\r\n this.lead_details = res;\r\n //Emergency relationship\r\n let emergencyRelationship = this.lead_details.emergency_relationship;\r\n if (emergencyRelationship && emergencyRelationship != '') {\r\n let matched = this.relation_data.some(relationship => relationship.value == emergencyRelationship);\r\n if (!matched) {\r\n this.lead_details.emergency_relationship = \"Other\";\r\n }\r\n }\r\n\r\n //Preffered contact relationship\r\n let prefContactRelationship = this.lead_details.contact_relationship;\r\n if (prefContactRelationship && prefContactRelationship != '') {\r\n let matched = this.relation_data.some(relationship => relationship.value == prefContactRelationship);\r\n if (!matched) {\r\n this.lead_details.contact_relationship = \"Other\";\r\n }\r\n }\r\n if (this.lead_details?.b2bpartner_id) {\r\n this.getTrackingCode(this.lead_details.b2bpartner_id)\r\n }\r\n if (this.lead_details) {\r\n if (this.lead_details.tags) {\r\n this.tags = this.lead_details.tags;\r\n }\r\n if (this.lead_details.campaign_id) {\r\n this.changeCampaign(this.lead_details.campaign_id);\r\n }\r\n if(this.lead_details.emergency_phone_id.length && this.lead_details.emergency_phone_id ==\r\n this.lead_details.contact_phone_id.length && this.lead_details.contact_phone_id){\r\n this.isEmergency = false;\r\n }else{\r\n this.isEmergency = true;\r\n }\r\n this.leadDeatilsForm.patchValue({\r\n title: this.lead_details.title,\r\n fname: this.lead_details.fname,\r\n lname: this.lead_details.lname,\r\n mname: this.lead_details.mname,\r\n dob: this.lead_details.dob ? moment(this.lead_details.dob).format('MM/DD/YYYY') : '',\r\n gender: this.lead_details.gender,\r\n marital_status: this.lead_details.marital_status,\r\n height_feet: Math.floor(this.lead_details.height / 12) ? Math.floor(this.lead_details.height / 12) : '',\r\n height_inches: this.lead_details.height ? this.lead_details.height % 12 : '',\r\n weight: this.lead_details.weight,\r\n ssn: this.lead_details.ssn,\r\n contact_name: this.lead_details.contact_name,\r\n contact_phone_type: this.lead_details.contact_phone ? this.lead_details.contact_phone.phone_type : 'Home',\r\n contact_phone: this.lead_details.contact_phone ? this.lead_details.contact_phone.phone : '',\r\n contact_relationship: this.lead_details.contact_relationship,\r\n emergency_name: this.lead_details.emergency_name,\r\n emergency_phone_type: this.lead_details.emergency_phone ? this.lead_details.emergency_phone.phone_type : 'Home',\r\n emergency_phone: this.lead_details.emergency_phone ? this.commonService.phoneFormatter(this.lead_details.emergency_phone.phone) : '',\r\n emergency_relationship: this.lead_details.emergency_relationship,\r\n medicare_name: this.lead_details.medicare_name,\r\n medicaid_number: this.lead_details.medicaid_number,\r\n medicaid_state: this.lead_details.medicaid_state,\r\n hicn: this.lead_details.hicn,\r\n medicare_parta_date: this.lead_details.medicare_parta_date ? moment(this.lead_details.medicare_parta_date).format('MM/DD/YYYY') : '',\r\n medicare_partb_date: this.lead_details.medicare_partb_date ? moment(this.lead_details.medicare_partb_date).format('MM/DD/YYYY') : '',\r\n source_vendor_id: this.lead_details.source_vendor_id,\r\n source_adcode: this.lead_details.source_adcode,\r\n b2bpartner_id: this.lead_details.b2bpartner_id,\r\n source_code: this.lead_details.source_code,\r\n campaign_id: this.lead_details.campaign_id,\r\n campaign_segment_code: this.lead_details.campaign_segment_code,\r\n lead_type_id: this.lead_details.lead_type_id,\r\n product_type_id: this.lead_details.product_type_id,\r\n\r\n tags: '',\r\n do_not_email: this.lead_details.do_not_email == '1' ? false : true,\r\n do_not_call: this.lead_details.do_not_call == '1' ? false : true,\r\n do_not_text: this.lead_details.do_not_text == '1' ? false : true,\r\n do_not_mail: this.lead_details.do_not_mail == '1' ? false : true,\r\n\r\n disposition_date: this.lead_details.disposition_date ? this.lead_details.disposition_date : '',\r\n dispo_name: this.lead_details.dispo_name,\r\n dispo_log: this.lead_details.dispo_log,\r\n isEmergencyContact: (this.lead_details.emergency_name.length > 0\r\n && this.lead_details.emergency_name == this.lead_details.contact_name)\r\n && (this.lead_details.emergency_phone_id.length > 0 &&\r\n this.lead_details.emergency_phone_id == this.lead_details.contact_phone_id)\r\n || (this.lead_details.emergency_relationship.length > 0 &&\r\n this.lead_details.emergency_relationship == this.lead_details.contact_relationship) ? '1' : '0'\r\n }, { emitEvent: false });\r\n this.leadDeatilsForm.setControl('emails', this.commonService.setExistingEmail(this.lead_details.emails, this.lead_details.default_email_id, 'notReq'));\r\n this.leadDeatilsForm.setControl('phones', this.commonService.setExistingPhone(this.lead_details.phones, this.lead_details.default_phone_id, 'notReq'));\r\n this.leadDeatilsForm.setControl('addresses', this.commonService.setExistingAddress(this.lead_details.addresses, this.lead_details.default_address_id, 'notReq'));\r\n this.isCommonFlag = true;\r\n this.isLoading = false;\r\n this.leadService.sendLeadLedger(\"refreshLead\");\r\n this.hasChange = false;\r\n }\r\n }\r\n }, error: err => {\r\n this.isLoading = false;\r\n }, complete: () => {\r\n this.hasChange = false;\r\n setTimeout(() => { this.isLoading = false; }, 2000);\r\n },\r\n })\r\n }\r\n\r\n /* method to get the lead source code */\r\n private getLeadVendor() {\r\n\r\n let criteria: any = {\r\n account_id: {\r\n type: \"simple\",\r\n value: [this.auth.account_id]\r\n }\r\n };\r\n\r\n if (this.commonService.hasPermission('super_user'))\r\n criteria.system_level_lead_vendor = {\r\n type: \"simple\",\r\n value: [\"1\"]\r\n };\r\n\r\n let payload = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": criteria,\r\n \"field_list\": \"lead_vendor_id,lead_vendor_code,company,account_id\"\r\n }\r\n\r\n this.leadVendorSearchSubs = this.leadService.leadVendorSearch(payload).subscribe({\r\n next: (response: any) => {\r\n if (response.length > 0) {\r\n this.lead_vendor_data = response;\r\n }\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n /* method to get the lead types */\r\n private getleadType() {\r\n this.getleadTypeSubs = this.leadService.getleadType().subscribe({\r\n next: (response: any) => {\r\n if (response.length > 0) {\r\n this.lead_type = response;\r\n }\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n /* method to get the campaign code */\r\n private getCampaignCode() {\r\n let payload = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"account_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.auth.account_id]\r\n }\r\n },\r\n \"orderby_field\": \"campaign_code\",\r\n \"orderby_direction\": \"asc\",\r\n \"field_list\": \"\"\r\n }\r\n this.getCampaignCodeSubs = this.leadService.getCampaignCode(payload).subscribe({\r\n next: (response: any) => {\r\n if (response.length > 0) {\r\n this.campaign_code = response;\r\n }\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n /* method to get the client/partner/affiliate */\r\n private getB2BPartner() {\r\n this.getb2bpartnerSubs = this.leadService.getb2bpartner('lead-detail').subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0)\r\n this.b2bPartner_data = res;\r\n }, error: (err: any) => { }\r\n });\r\n }\r\n\r\n /* method to get the product type */\r\n private getProductType() {\r\n let payload = { \"search_type\": \"simple\", \"criteria\": { \"product_type_id\": { \"type\": \"range\", \"value\": [1, \"*\"] } }, \"field_list\": \"\" }\r\n this.getProductTypeSubs = this.leadService.getProductType(payload).subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0)\r\n this.product_type = res;\r\n }, error: (err: any) => { }\r\n });\r\n }\r\n\r\n /* method to get the tegs */\r\n private getTagSearch() {\r\n let payload = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"account_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this.auth.account_id]\r\n }\r\n },\r\n \"field_list\": \"\",\r\n \"page_number\": 1,\r\n }\r\n\r\n this.getTagSearchSubs = this.leadService.getTagSearch(payload).subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0) {\r\n this.tag_data = res;\r\n this.filteredTags = this.leadDeatilsForm.get('tags')!.valueChanges\r\n .pipe(\r\n filter((input) => { return input && input.length > 0 }),\r\n map((value: any) => {\r\n return (typeof value === 'string') ? value : value.tag_name\r\n }),\r\n map(tag => this._filter(tag))\r\n );\r\n }\r\n }, error: (err: any) => { }\r\n });\r\n }\r\n\r\n /* method to display the tag name */\r\n public getTagName(tags: any) {\r\n return tags && tags?.tag_name ? tags?.tag_name : '';\r\n }\r\n\r\n /* method to select the tag name */\r\n public selected(event: MatAutocompleteSelectedEvent): void {\r\n this.tags.push(event.option.value);\r\n this.tagInput.nativeElement.value = '';\r\n this.leadDeatilsForm.value.tags = '';\r\n }\r\n\r\n /* method to filter the tag name */\r\n private _filter(tagName: string) {\r\n const filterValue = tagName.toLowerCase();\r\n return this.tag_data.filter(\r\n (tag: any) => tag.tag_name.toLowerCase().indexOf(filterValue) >= 0\r\n );\r\n }\r\n\r\n /* method to change the campaign */\r\n public changeCampaign(campaign_id: string) {\r\n if(campaign_id != ''){\r\n this.campaign_segment = [];\r\n let payload = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"campaign_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [campaign_id]\r\n }\r\n },\r\n \"orderby_field\": \"campaign_segment_code\",\r\n \"orderby_direction\": \"asc\",\r\n \"field_list\": \"\"\r\n }\r\n this.getCampaignSegmentSubs = this.leadService.getCampaignSegment(payload).subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0)\r\n this.campaign_segment = res;\r\n }, error: (err: any) => { }\r\n });\r\n }else{\r\n this.campaign_segment = [];\r\n }\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: check height/weight ::::::::::::::::::::::::::::: */\r\n\r\n public checkFeetHeight(event: any) {\r\n if (this.isValidNumber(event.value)) {\r\n if (event.value > 8) {\r\n this.leadDeatilsForm.patchValue({ 'height_feet': '8' });\r\n\r\n this.message = this._toasMsgService.showError('The maximum height allowabale (in feet) is 8 feet. The application will not allow for values higher. The height has been set as 8 feet.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n\r\n } else\r\n return true;\r\n\r\n } else {\r\n this.message = this._toasMsgService.showError('Height will only accept numeric values.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n }\r\n }\r\n\r\n public checkInchesHeight(event: any) {\r\n if (this.isValidNumber(event.value)) {\r\n if (event.value > 12) {\r\n this.leadDeatilsForm.patchValue({ 'height_inches': '12' });\r\n this.message = this._toasMsgService.showError('The maximum height allowabale (in inches) is 12 inches. The application will not allow for values higher.The height has been set as 12 inches.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n\r\n } else\r\n return true;\r\n\r\n } else {\r\n this.message = this._toasMsgService.showError('Height will only accept numeric values.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n }\r\n }\r\n\r\n public checkWeight(event: any) {\r\n if (this.isValidNumber(event.value)) {\r\n if (event.value > 999) {\r\n this.leadDeatilsForm.patchValue({ 'weight': '999' });\r\n this.message = this._toasMsgService.showError('The maximum weight allowabale (in lbs) is 999 lbs. The application will not allow for values higher. The weight has been set as 999 lbs.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n\r\n } else\r\n return true;\r\n\r\n } else {\r\n this.message = this._toasMsgService.showError('Weight will only accept numeric values.', true);\r\n this.clearMessage(30000);\r\n return false;\r\n }\r\n }\r\n\r\n private isValidNumber(number: any) {\r\n return (number === '') || this.isNumeric(number);\r\n }\r\n\r\n private isNumeric(n: any) {\r\n if ((!isNaN(parseFloat(n)) && isFinite(n)) == false) {\r\n this.invalidRuleViolation = true;\r\n }\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: end check height/weight ::::::::::::::::::::::::::::: */\r\n\r\n /* :::::::::::::::::::: add phone & email & address functionality ::::::::::::::::::: */\r\n\r\n private newPhones() {\r\n return this.fb.group({\r\n phone_type: ['Home'],\r\n phone: new FormControl('', [Validators.minLength(14)]),\r\n phone_ext: [''],\r\n phone_id: [''],\r\n phone_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n private newEmail() {\r\n return this.fb.group({\r\n email_type: ['Home'],\r\n email: new FormControl('', [Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_id: [''],\r\n email_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n private newAddress() {\r\n return this.fb.group({\r\n address_type_id: ['Home'],\r\n address1: new FormControl(''),\r\n address2: '',\r\n city: new FormControl(''),\r\n state_id: new FormControl(''),\r\n zip: new FormControl('', [Validators.minLength(5)]),\r\n county: '',\r\n\r\n address_id: [''],\r\n apo: [''],\r\n country_id: [''],\r\n county_fips: [''],\r\n zip_4: [''],\r\n address_class: [''],\r\n isSelected: \"\"\r\n });\r\n }\r\n\r\n /* :::::::::::::::::::: end phone & email & address functionality ::::::::::::::::::: */\r\n\r\n /* ::::::::::::::::: clear preferred & emengency contact functionality :::::::::::: */\r\n\r\n public clearPreferredContact() {\r\n this.hasChange = true;\r\n this.leadDeatilsForm.patchValue({ 'contact_name': '', 'contact_phone_type': '', 'contact_phone': '', 'contact_relationship': '' })\r\n }\r\n\r\n public clearEmergencyContact(contact_name?:string) {\r\n this.hasChange = true;\r\n this.leadDeatilsForm.patchValue({ 'emergency_name': contact_name ? contact_name : '', 'emergency_phone_type': '', 'emergency_phone': '', 'emergency_relationship': '' })\r\n }\r\n\r\n public radioChange(event: any) {\r\n if (event.value == '1') {\r\n this.isEmergency = false;\r\n this.clearEmergencyContact(this.leadDeatilsForm.value.contact_name);\r\n } else {\r\n this.isEmergency = true;\r\n this.clearEmergencyContact();\r\n }\r\n }\r\n\r\n public b2bChange(b2bpartner_id: string) {\r\n this.leadDeatilsForm.patchValue({'source_code' : ''});\r\n if(b2bpartner_id != ''){\r\n this.getTrackingCode(b2bpartner_id);\r\n }else{\r\n this.tracking_data.push({tracking_code: \"\"});\r\n }\r\n }\r\n\r\n private getTrackingCode(b2bpartner_id: string) {\r\n this.tracking_data.push({tracking_code: \"\"});\r\n this.getTrackingCodeSubs = this.leadService.getTrackingCode(b2bpartner_id).subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0) {\r\n this.tracking_data = res;\r\n if (this.lead_details.b2bpartner_id == b2bpartner_id) {\r\n this.tracking_data.push({\r\n tracking_code: this.lead_details.source_code\r\n })\r\n }\r\n }else{\r\n this.tracking_data = [];\r\n }\r\n }, error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err?.message,\r\n };\r\n this.clearMessage(30000);\r\n }\r\n });\r\n }\r\n\r\n public checkError = (controlName: string, errorName: string) => {\r\n return this.leadDeatilsForm.controls[controlName].hasError(errorName);\r\n }\r\n\r\n /* ::::::::::::::::: end clear preferred & emengency contact functionality :::::::::::: */\r\n\r\n /* ::::::::::::::::::::::::::::: add tags functionality ::::::::::::::::::::::::::::: */\r\n\r\n public addTag(event: MatChipInputEvent, type: any): void {\r\n this.hasChange = true;\r\n let value = (event.value || '').trim();\r\n // Add our tag\r\n if (type == 'btn') {\r\n value = event.toString();\r\n }\r\n if (value) {\r\n this.tags.push({ 'tag_name': value });\r\n }\r\n // Clear the input value\r\n if (event?.chipInput) {\r\n event?.chipInput!.clear();\r\n this.leadDeatilsForm.value.tags = '';\r\n this.tagInput.nativeElement.value = '';\r\n }\r\n if (type == 'btn') {\r\n this.leadDeatilsForm.value.tags = '';\r\n this.tagInput.nativeElement.value = '';\r\n }\r\n\r\n }\r\n\r\n public removeTag(tag: any): void {\r\n this.hasChange = true;\r\n const index = this.tags.indexOf(tag);\r\n if (index >= 0) {\r\n this.tags.splice(index, 1);\r\n }\r\n }\r\n\r\n /* ::::::::::::::::::::::::::::: end tags functionality ::::::::::::::::::::::::::::: */\r\n\r\n public openPermissionHistory() {\r\n window.scroll(0, 0);\r\n let payload = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {},\r\n \"field_list\": \"\",\r\n \"page_number\": 1,\r\n \"records_per_page\": \"\",\r\n \"orderby_field\": \"lead_contact_permission_change_date\"\r\n }\r\n this.getContactPermissionHistorySubs = this.leadService.getContactPermissionHistory(this.lead_id, payload).subscribe({\r\n next: (response: any) => {\r\n const dialogRef = this.dialog.open(PermissionHistoryComponent, {\r\n width: '70%',\r\n autoFocus: false,\r\n data: response\r\n });\r\n },\r\n error: (err) => { }\r\n })\r\n\r\n }\r\n\r\n public updateLead(type: string) {\r\n if (this.leadDeatilsForm.invalid) {\r\n this.leadService.sendErrorAlert('invalidForm');\r\n return\r\n } else {\r\n this.isLoading = true;\r\n let formData = this.leadDeatilsForm.value;\r\n let height: any;\r\n if (isNaN(parseInt(formData.height_feet)) && isNaN(parseInt(formData.height_inches))) {\r\n height = \"\";\r\n } else if (isNaN(parseInt(formData.height_feet))) {\r\n height = parseInt(formData.height_inches);\r\n } else if (isNaN(parseInt(formData.height_inches))) {\r\n height = parseInt(formData.height_feet) * 12;\r\n } else {\r\n height = (parseInt(formData.height_feet) * 12) + parseInt(formData.height_inches);\r\n }\r\n\r\n /* ------------------- addresses functionality ------------------- */\r\n let newAddressObj: any;\r\n let addressArray = formData.addresses;\r\n let defaultAddress = addressArray.filter((obj: any) => obj.isSelected == true && obj.address_class == '');\r\n addressArray = addressArray.filter((obj: any) => obj.address_class == '');\r\n\r\n /* call delete API the uncheck address */\r\n let deleteAddresses = formData.addresses;\r\n let deleteAddress = deleteAddresses.filter((obj: any) => obj.address_class != '');\r\n let request;\r\n if (deleteAddress) {\r\n deleteAddress.forEach((element: any) => {\r\n request = this.http.get(environment.api + 'lead/' + this.lead_id + '/address/' + element.address_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n });\r\n }\r\n if (addressArray) {\r\n newAddressObj = this.commonService.getAddresses(addressArray);\r\n }\r\n /* ------------------- end addresses functionality ------------------- */\r\n\r\n /* ------------------- email functionality ------------------- */\r\n let newEmailObj;\r\n let emailArray = formData.emails;\r\n let defaultEmail = emailArray.filter((obj: any) => obj.isSelected == true && obj.email_class == \"\");\r\n emailArray = emailArray.filter((obj: any) => obj.email_class == '');\r\n\r\n /* call delete API the uncheck email */\r\n let deleteEmails = formData.emails;\r\n let deleteEmail = deleteEmails.filter((obj: any) => obj.email_class != '');\r\n if (deleteEmail) {\r\n deleteEmail.forEach((element: any) => {\r\n if (element.email_id) {\r\n request = this.http.get(environment.api + 'lead/' + this.lead_id + '/email/' + element.email_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n }\r\n });\r\n }\r\n\r\n if (emailArray) {\r\n newEmailObj = this.commonService.getEmails(emailArray);\r\n }\r\n /* ------------------- end email functionality ------------------- */\r\n\r\n /* ------------------- phone functionality ------------------- */\r\n let newPhoneObj: any;\r\n let phoneArray = formData.phones;\r\n let defaultPhone = phoneArray.filter((obj: any) => obj.isSelected == true && obj.phone_class == \"\");\r\n phoneArray = phoneArray.filter((obj: any) => obj.phone_class == '');\r\n\r\n /* call delete API the uncheck phone */\r\n let deletePhones = formData.phones;\r\n let deletePhone = deletePhones.filter((obj: any) => obj.phone_class != '');\r\n if (deletePhone) {\r\n deletePhone.forEach((element: any) => {\r\n if (element.phone_id) {\r\n request = this.http.get(environment.api + 'lead/' + this.lead_id + '/phone/' + element.phone_id + '/delete/');\r\n if (request) this.requests_list.push(request);\r\n }\r\n });\r\n }\r\n if (phoneArray) {\r\n newPhoneObj = this.commonService.getPhones(phoneArray);\r\n }\r\n /* ------------------- end phone functionality ------------------- */\r\n\r\n if (formData.contact_phone.length < 10) formData.contact_phone = '';\r\n if (formData.emergency_phone.length < 10) formData.emergency_phone = '';\r\n this._cleanUpPhoneEmailData(newEmailObj, 'email');\r\n this._cleanUpPhoneEmailData(newPhoneObj, 'phone');\r\n formData['dob'] = formData.dob ? moment(formData.dob).format('MM/DD/YYYY') : \"\",\r\n formData['age'] = formData.dob ? moment().diff(formData.dob, 'year') : '';\r\n formData['height'] = height;\r\n formData['medicare_parta_date'] = formData.medicare_parta_date ? moment(formData.medicare_parta_date).format('MM/DD/YYYY') : \"\",\r\n formData['medicare_partb_date'] = formData.medicare_partb_date ? moment(formData.medicare_partb_date).format('MM/DD/YYYY') : \"\",\r\n formData['do_not_call'] = formData.do_not_call ? \"0\" : \"1\";\r\n formData['do_not_text'] = formData.do_not_text ? \"0\" : \"1\";\r\n formData['do_not_email'] = formData.do_not_email ? \"0\" : \"1\";\r\n formData['do_not_mail'] = formData.do_not_mail ? \"0\" : \"1\";\r\n formData['account_id'] = this.lead_details?.account_id;\r\n formData['user_id'] = this.lead_details?.user_id;\r\n formData['default_address_id'] = defaultAddress[0]?.address_id ? defaultAddress[0]?.address_id : \"\";\r\n formData['account_business_name'] = this.lead_details?.account_business_name;\r\n formData['default_address'] = {\r\n default_address: true,\r\n address1: defaultAddress[0]?.address1 ? defaultAddress[0]?.address1 : \"\",\r\n address2: defaultAddress[0]?.address2 ? defaultAddress[0]?.address2 : \"\",\r\n address_id: defaultAddress[0]?.address_id ? defaultAddress[0]?.address_id : \"\",\r\n address_type_id: defaultAddress[0]?.address_type_id ? defaultAddress[0]?.address_type_id : \"\",\r\n apo: defaultAddress[0]?.apo ? defaultAddress[0]?.apo : \"\",\r\n city: defaultAddress[0]?.city ? defaultAddress[0]?.city : \"\",\r\n country_id: defaultAddress[0]?.country_id ? defaultAddress[0]?.country_id : \"\",\r\n county: defaultAddress[0]?.county ? defaultAddress[0]?.county : \"\",\r\n\r\n county_fips: defaultAddress[0]?.county_fips ? defaultAddress[0]?.county_fips : \"\",\r\n state_id: defaultAddress[0]?.state_id ? defaultAddress[0]?.state_id : \"\",\r\n zip: defaultAddress[0]?.zip ? defaultAddress[0]?.zip : \"\",\r\n zip_4: defaultAddress[0]?.zip_4 ? defaultAddress[0]?.zip_4 : \"\"\r\n };\r\n formData['default_email_id'] = defaultEmail[0]?.email_id ? defaultEmail[0]?.email_id : \"\";\r\n formData['default_email'] = {\r\n default_email: true,\r\n email: defaultEmail[0]?.email ? defaultEmail[0]?.email : \"\",\r\n email_id: defaultEmail[0]?.email_id ? defaultEmail[0]?.email_id : \"\",\r\n email_type: defaultEmail[0]?.email_type ? defaultEmail[0]?.email_type : \"\"\r\n };\r\n formData['default_phone_id'] = defaultPhone[0]?.phone_id ? defaultPhone[0]?.phone_id : \"\",\r\n formData['default_phone'] = {\r\n default_phone: true,\r\n phone: defaultPhone[0]?.phone ? defaultPhone[0]?.phone : \"\",\r\n phone_ext: defaultPhone[0]?.phone_ext ? defaultPhone[0]?.phone_ext : \"\",\r\n phone_id: defaultPhone[0]?.phone_id ? defaultPhone[0]?.phone_id : \"\",\r\n phone_type: defaultPhone[0]?.phone_type ? defaultPhone[0]?.phone_type : \"\"\r\n },\r\n formData['addresses'] = newAddressObj,\r\n formData['dispo_log'] = formData.dispo_log,\r\n formData['emails'] = newEmailObj,\r\n formData['lead_instructions'] = this.lead_details?.lead_instructions ? this.lead_details?.lead_instructions : \"\",\r\n formData['phones'] = newPhoneObj,\r\n formData['tags'] = this.tags,\r\n formData['contact_phone'] = { 'phone_type': formData.contact_phone_type, 'phone': this.commonService.phoneFormatter(formData.contact_phone), 'phone_ext': \"\" },\r\n formData['emergency_phone'] = { 'phone_type': formData.emergency_phone_type, 'phone': this.commonService.phoneFormatter(formData.emergency_phone), 'phone_ext': \"\" },\r\n formData['lead_vendor_id'] = formData?.source_vendor_id,\r\n this._cleanupFormData(formData);\r\n if (this.requests_list.length > 0) {\r\n forkJoin(this.requests_list).subscribe({\r\n next: (response: any) => {\r\n if (response)\r\n this.saveLeadDetails(this.lead_id, formData, type);\r\n },\r\n error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err.error.message\r\n };\r\n this.clearMessage(30000);\r\n },\r\n complete: () => { }\r\n });\r\n } else {\r\n this.saveLeadDetails(this.lead_id, formData, type);\r\n }\r\n }\r\n }\r\n\r\n private _cleanupFormData(formData: any) {\r\n if (formData) {\r\n delete formData.contact_phone_type;\r\n delete formData.emergency_phone_type;\r\n delete formData.height_feet;\r\n delete formData.height_inches;\r\n delete formData.isEmergencyContact;\r\n }\r\n if (formData.contact_phone.phone == '') {\r\n formData['contact_phone_id'] = \"\";\r\n delete formData.contact_phone\r\n }\r\n if (formData.emergency_phone.phone == '') {\r\n this.isEmergency ? formData['emergency_phone_id'] = \"\" : formData['emergency_phone_id'] = this.lead_details.contact_phone_id\r\n delete formData.emergency_phone\r\n }\r\n return formData;\r\n }\r\n\r\n private _cleanUpPhoneEmailData(newPhoneEmailObj: any, type: string) {\r\n let index = newPhoneEmailObj.findIndex((x: any) => x[type] == '');\r\n if (index != -1) {\r\n newPhoneEmailObj.splice(index, 1);\r\n }\r\n return newPhoneEmailObj;\r\n }\r\n\r\n public checkForPermissions() {\r\n return !(!this.lead_details?.lead_vendor_id || (this.commonService.hasPermission('lead_origination_data_edit') && this.lead_vendor_data && this.lead_vendor_data?.length > 0) || this.commonService.hasPermission('super_user'))\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this._toasMsgService.resetMessage();\r\n }, timer);\r\n }\r\n\r\n public captureClose(){\r\n if(!this.leadDeatilsForm.pristine)\r\n this.commonService.unsavedChangesNotice();\r\n else\r\n this.dialog.closeAll();\r\n }\r\n\r\n public filterAlphaCharacters(event: Event): void {\r\n const inputElement = event.target as HTMLInputElement;\r\n const alphaOnlyValue = inputElement.value.replace(/[^a-zA-Z]/g, ''); // Remove non-alpha characters\r\n this.leadDeatilsForm.controls['mname'].setValue(alphaOnlyValue, {\r\n emitEvent: false, // Prevent triggering value change events\r\n });\r\n }\r\n\r\n private saveLeadDetails(leadId: string, payload: any, type: string) {\r\n this.saveLeadDetailsSubs = this.leadService.saveLeadDetails(leadId, payload).subscribe({\r\n next: (response: any) => {\r\n this.requests_list = [];\r\n this.leadService.lead_details = response;\r\n this.message = {\r\n type: 'success',\r\n text: \"You have successfully updated your lead \" + '(' + payload.fname + ' ' + payload.lname + ')'\r\n };\r\n this.clearMessage(15000);\r\n if (type == 'close') {\r\n this.hasChange = false;\r\n this.isLoading = false\r\n this.leadService.lead_details = response;\r\n this.leadService.sendLeadLedger(\"refreshLead\");\r\n this.closeModal();\r\n this._toasMsgService.showSuccess(\"You have successfully updated your lead \" + '(' + payload.fname + ' ' + payload.lname + ')');\r\n } else {\r\n this.getLeadDetails();\r\n this.leadService.lead_details = response;\r\n this.leadDeatilsForm.markAsPristine();\r\n this.hasChange = false;\r\n }\r\n },\r\n error: (err) => {\r\n this.isLoading = false;\r\n this.hasChange = false;\r\n this.message = {\r\n type: 'alert',\r\n text: err.error.message\r\n };\r\n this.clearMessage(30000);\r\n }\r\n })\r\n }\r\n\r\n public closeModal(){\r\n this.dialog.closeAll();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n if (this.isFormChangeSubs) this.isFormChangeSubs.unsubscribe();\r\n if (this.isLeadDEtailsSubs) this.isLeadDEtailsSubs.unsubscribe();\r\n if (this.leadVendorSearchSubs) this.leadVendorSearchSubs.unsubscribe();\r\n if (this.getleadTypeSubs) this.getleadTypeSubs.unsubscribe();\r\n if (this.getCampaignCodeSubs) this.getCampaignCodeSubs.unsubscribe();\r\n if (this.getb2bpartnerSubs) this.getb2bpartnerSubs.unsubscribe();\r\n if (this.getProductTypeSubs) this.getProductTypeSubs.unsubscribe();\r\n if (this.getTagSearchSubs) this.getTagSearchSubs.unsubscribe();\r\n if (this.getCampaignSegmentSubs) this.getCampaignSegmentSubs.unsubscribe();\r\n if (this.getTrackingCodeSubs) this.getTrackingCodeSubs.unsubscribe();\r\n if (this.getContactPermissionHistorySubs) this.getContactPermissionHistorySubs.unsubscribe();\r\n if (this.saveLeadDetailsSubs) this.saveLeadDetailsSubs.unsubscribe();\r\n this.leadDeatilsForm.markAsPristine();\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n Lead Detail Last Updated {{lastUpdatedDate}} by {{leadLastUpdatedBy}} \r\n \r\n\r\n
\r\n
\r\n
\r\n *Only fields with updated values are displayed below.\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Field {{element.keyField}} Previous Information {{element.oldVal}} Updated Information {{element.newVal}}
\r\n
\r\n Once an agent updates client information via LA Pro, this ledger will go away.\r\n\r\n
\r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { DataSelfService } from '@data/data-self-service/data-self-service.service';\r\nimport { LastUpdatedBy } from '@data/lead/lead.interface';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-lead-last-updated',\r\n templateUrl: './lead-last-updated.component.html',\r\n styleUrls: ['./lead-last-updated.component.scss']\r\n})\r\nexport class LeadLastUpdatedComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject();\r\n @Input() lead_id: string;\r\n public displayedColumns: string[] = ['keyField', 'oldVal', 'newVal'];\r\n public updatedDataSource: any;\r\n public lastUpdatedDate: any;\r\n public showLeadLastUpdated: boolean = true;\r\n public lastUpdatedByUser: boolean = true;\r\n public leadLastUpdatedBy: any\r\n\r\n constructor(\r\n private _dataSelfService: DataSelfService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.lead_id) {\r\n this.getLastUpdated()\r\n }\r\n }\r\n\r\n public getLastUpdated() {\r\n this._dataSelfService.updatedLeadDataSSP(this.lead_id).pipe(takeUntil(this._componentDestroyed$)).subscribe({\r\n next: (response: any) => {\r\n if (response?.lead_last_updated) {\r\n this.lastUpdatedDate = response.lead_last_updated;\r\n }\r\n if (response?.lead_last_updated_by) {\r\n this.leadLastUpdatedBy = response.lead_last_updated_by;\r\n }\r\n if (response?.Updated?.length > 0) {\r\n this.lastUpdatedByUser = false;\r\n const updates: LastUpdatedBy[] = response.Updated.map((update: any) => {\r\n const key = Object.keys(update)[0];\r\n return {\r\n keyField: key,\r\n newVal: update[key].new,\r\n oldVal: update[key].old\r\n };\r\n });\r\n this.updatedDataSource = new MatTableDataSource(updates);\r\n } else {\r\n this.lastUpdatedByUser = true;\r\n }\r\n },\r\n error: (err: any) => console.error(err),\r\n })\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n}\r\n","export class IEmailType {\r\n public static Home: string = 'Home';\r\n public static Work: string = 'Work';\r\n public static Other: string = 'Other';\r\n\r\n public static getEmailTypes() {\r\n return [\r\n { id: IEmailType.Home, value: IEmailType.Home.toLowerCase() },\r\n { id: IEmailType.Work, value: IEmailType.Work.toLowerCase() },\r\n { id: IEmailType.Other, value: IEmailType.Other.toLowerCase() },\r\n ]\r\n }\r\n\r\n}\r\n","export class IPhoneType {\r\n public static Home: string = 'Home';\r\n public static Mobile: string = 'Mobile';\r\n public static Work: string = 'Work';\r\n public static Fax: string = 'Fax';\r\n public static Other: string = 'Other';\r\n\r\n public static getPhoneTypes() {\r\n return [\r\n { id: IPhoneType.Home, value: IPhoneType.Home.toLowerCase() },\r\n { id: IPhoneType.Mobile, value: IPhoneType.Mobile.toLowerCase() },\r\n { id: IPhoneType.Work, value: IPhoneType.Work.toLowerCase() },\r\n { id: IPhoneType.Fax, value: IPhoneType.Fax.toLowerCase() },\r\n { id: IPhoneType.Other, value: IPhoneType.Other.toLowerCase() },\r\n ]\r\n }\r\n}","
\r\n
\r\n

New Lead

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

{{ message.text }}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n First Name\r\n \r\n Maximum length is 25 characters\r\n First name is a required field.\r\n \r\n\r\n \r\n Last Name\r\n \r\n Maximum length is 25 characters\r\n Last name is a required field.\r\n \r\n
\r\n\r\n
\r\n \r\n Client/Partner/Affiliate\r\n \r\n \r\n \r\n Client/Partner/Affiliate is a required field.\r\n \r\n\r\n \r\n Tracking Code\r\n \r\n \r\n \r\n \r\n \r\n Tracking Code is a required field.\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{ phoneType.id }}\r\n \r\n \r\n \r\n \r\n Please enter a valid phone number\r\n \r\n\r\n \r\n \r\n {{ emailType.id }}\r\n \r\n \r\n \r\n \r\n Please enter a valid email address\r\n \r\n
\r\n\r\n
\r\n \r\n Birthdate\r\n \r\n You must enter a valid date.\r\n \r\n\r\n \r\n Gender\r\n \r\n \r\n Male\r\n Female\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Zip Code\r\n \r\n \r\n \r\n County\r\n \r\n \r\n {{county?.county_name}} \r\n \r\n \r\n \r\n \r\n State\r\n \r\n \r\n {{state?.abbreviation}}\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n

Notes

\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { TOOLBAR, validatorPatterns } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport * as data from '@data/states.json';\r\nimport { environment } from '@env/environment';\r\nimport { LeadDetailComponent } from '@modules/lead/components/lead-detail/lead-detail.component';\r\nimport { IEmailType } from '@shared/constants/email-type.constant';\r\nimport { IPhoneType } from '@shared/constants/phone-type.constant';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { CheckDobDate, CheckInvalidDate, CommonService, CompareStringsCaseInsensitive } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Editor } from 'ngx-editor';\r\nimport { Subject, first, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-new-lead',\r\n templateUrl: './new-lead.component.html',\r\n styleUrls: ['./new-lead.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class NewLeadComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject();\r\n\r\n public addLeadForm!: FormGroup;\r\n public editor: Editor; // Editor;\r\n public toolbar: any = TOOLBAR;\r\n public statesData: any = [];\r\n public states = (data as any).default;\r\n public maxDate: Date = new Date();\r\n public message: any = {};\r\n public isb2bPartner: boolean = false;\r\n public b2bPartner_data: any = []\r\n public tracking_data: any = []\r\n public isButtonClicked: boolean = false;\r\n\r\n public phoneTypes = IPhoneType.getPhoneTypes();\r\n public emailTypes = IEmailType.getEmailTypes();\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _datePipe: DatePipe,\r\n private _fb: FormBuilder,\r\n private _leadService: LeadService,\r\n private _router: Router,\r\n private _toasMsgService: ToastMsgService,\r\n private _commonService: CommonService,\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public leadData: any\r\n ) {\r\n this.editor = new Editor();\r\n\r\n this.addLeadForm = this._fb.group({\r\n fname: ['', Validators.required],\r\n lname: ['', Validators.required],\r\n b2bpartner_id: [''],\r\n source_code: [''],\r\n phone_type: ['home'],\r\n phone: [''],\r\n email_type: ['home'],\r\n email: ['', [Validators.pattern(validatorPatterns.EMAIL)]],\r\n dob: ['', [CheckInvalidDate, CheckDobDate]],\r\n gender: [''],\r\n zip: [''],\r\n county: [''],\r\n state_id: [''],\r\n address: [''],\r\n notes: ['']\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this._authService.user_details['account_id'] == environment.INSURACTIVE_ACCOUNT_ID) {\r\n this.isb2bPartner = true;\r\n this.addLeadForm.controls[\"b2bpartner_id\"].setValidators(Validators.required);\r\n this.addLeadForm.controls[\"source_code\"].setValidators(Validators.required);\r\n\r\n this.addLeadForm.controls[\"b2bpartner_id\"].updateValueAndValidity();\r\n this.addLeadForm.controls[\"source_code\"].updateValueAndValidity();\r\n this.getB2BPartner();\r\n }\r\n\r\n if (this.leadData)\r\n this.addLeadData();\r\n }\r\n\r\n public ngOnDestroy(){\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n\r\n private getB2BPartner() {\r\n this._leadService.getb2bpartner('new-lead')\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0)\r\n this.b2bPartner_data = res;\r\n },\r\n error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err?.message,\r\n };\r\n this.clearMessage(30000);\r\n }\r\n });\r\n }\r\n\r\n public b2bChange(b2bpartner_id: string) {\r\n this.getTrackingCode(b2bpartner_id);\r\n }\r\n\r\n private getTrackingCode(b2bpartner_id: string) {\r\n this._leadService.getTrackingCode(b2bpartner_id)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res != '' && res.length > 0)\r\n this.tracking_data = res;\r\n }, error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err?.message,\r\n };\r\n this.clearMessage(30000);\r\n }\r\n });\r\n }\r\n\r\n public checkError = (controlName: string, errorName: string) => {\r\n return this.addLeadForm.controls[controlName].hasError(errorName);\r\n }\r\n\r\n public addLead(type: string) {\r\n let formValue = this.addLeadForm.value;\r\n let height: any;\r\n if (this.leadData?.form?.length) {\r\n height = this.leadData?.form?.[0]?.height_feet != '' || this.leadData?.form?.[0]?.height_inches != ''\r\n ? Number(this.leadData?.form?.[0]?.height_feet * 12) + Number(this.leadData?.form?.[0]?.height_inches)\r\n : '';\r\n\r\n }\r\n let params = {\r\n fname: formValue?.fname,\r\n lname: formValue?.lname,\r\n ...(this.leadData?.form?.length && this.leadData?.form?.[0]?.weight) && { weight: this.leadData?.form?.[0]?.weight },\r\n ...(this.leadData?.form?.length && this.leadData?.form?.[0]?.part_a_date) && { medicare_parta_date: moment(this.leadData?.form?.[0]?.part_a_date).format('MM/DD/YYYY') },\r\n ...(this.leadData?.form?.length && this.leadData?.form?.[0]?.part_b_date) && { medicare_partb_date: moment(this.leadData?.form?.[0]?.part_b_date).format('MM/DD/YYYY') },\r\n ...(this.leadData?.form?.length && (this.leadData?.form?.[0]?.height_feet || this.leadData?.form?.[0]?.height_inches)) && { height: height },\r\n ...(formValue?.b2bpartner_id) && { b2bpartner_id: formValue?.b2bpartner_id },\r\n ...(formValue?.source_code) && { source_code: formValue?.source_code },\r\n ...(formValue?.gender) && { gender: formValue?.gender },\r\n ...(formValue?.dob) && { dob: this._datePipe.transform(formValue?.dob, 'MM/dd/yyyy') }, //change date format\r\n ...(formValue?.phone) && {\r\n phones: [{\r\n phone_type: formValue?.phone_type,\r\n phone: formValue?.phone.replace(\"(\", \"\").replace(\")\", \"\").replace(\" \", \"\").replace(\"-\", \"\") // remove masked values\r\n }\r\n ],\r\n },\r\n ...(formValue?.email) && {\r\n emails: [{\r\n email_type: formValue?.email_type,\r\n email: formValue?.email\r\n }\r\n ],\r\n },\r\n ...(formValue?.county || this.leadData) && {\r\n addresses: [{\r\n address_type_id: \"home\",\r\n zip: formValue?.zip ? formValue?.zip : '',\r\n county: formValue?.county ? formValue?.county : '',\r\n state_id: formValue?.state_id ? formValue?.state_id : ''\r\n }\r\n ]\r\n },\r\n user_id: this._authService.getToken().user_id,\r\n account_id: `${this._authService.account_id}`,\r\n lead_type_id: \"1\",\r\n }\r\n\r\n this.isButtonClicked = true;\r\n\r\n this._leadService.addNewLead(params)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.isButtonClicked = false;\r\n this.showToast(\"Lead created successfully!\");\r\n //condition for opening the popup through quotes module\r\n if (this.leadData) {\r\n this._leadService.leadSelected = true;\r\n this._leadService.lead_details = res;\r\n // Code to check user clicked on ADD (simple) button or Add + Detail button\r\n if (type == 'simple') {\r\n this.dialog.closeAll();\r\n if (formValue.notes) this.noteSave(res.lead_id, formValue.notes);\r\n } else {\r\n window.scroll(0, 0);\r\n this.dialog.open(LeadDetailComponent, {\r\n data: res.lead_id\r\n }).afterClosed().subscribe((elem: any) => {\r\n if (formValue.notes) this.noteSave(res.lead_id, formValue.notes);\r\n //window.location.href = 'lead/' + res.lead_id;\r\n this._router.navigate(['lead/' + res.lead_id]);\r\n this._leadService.sendLeadLedger(\"refreshLead\");\r\n })\r\n }\r\n }\r\n //condition for opening the popup through leads module\r\n else {\r\n if (type == 'simple') {\r\n this.dialog.closeAll();\r\n if (formValue.notes) this.noteSave(res.lead_id, formValue.notes);\r\n //window.location.href = 'lead/' + res.lead_id;\r\n this._router.navigate(['lead/' + res.lead_id]);\r\n this._leadService.sendLeadLedger(\"refreshLead\");\r\n } else {\r\n window.scroll(0, 0);\r\n this.dialog.open(LeadDetailComponent, {\r\n data: res.lead_id\r\n }).afterClosed().subscribe((elem: any) => {\r\n if (formValue.notes) this.noteSave(res.lead_id, formValue.notes);\r\n //window.location.href = 'lead/' + res.lead_id;\r\n this._router.navigate(['lead/' + res.lead_id]);\r\n this._leadService.sendLeadLedger(\"refreshLead\");\r\n })\r\n }\r\n }\r\n }, error: (err: any) => {\r\n this.isButtonClicked = false;\r\n this.message = {\r\n type: 'alert',\r\n text: err?.error?.message,\r\n };\r\n var fullErrorMessage = \"\";\r\n for (var r in err.error.result) {\r\n\t\t\t\t\tif (!err.error.result.hasOwnProperty(r)) continue;\r\n for (var e = 0; e < err.error.result[r].length; e++) {\r\n fullErrorMessage = fullErrorMessage + err.error.result[r][e].MESSAGE + \". \"\r\n\t\t\t\t\t}\r\n this.message = {\r\n type: 'alert',\r\n text: err?.error?.message + ' ' + fullErrorMessage,\r\n };\r\n }\r\n this.clearMessage(30000);\r\n }\r\n });\r\n }\r\n\r\n public noteSave(lead_id: string, noteValue: string) {\r\n let payload = {\r\n lead_id: lead_id,\r\n note: noteValue,\r\n user_id: this._authService.getToken().user_id\r\n }\r\n this._leadService.addConversationNotes(payload).pipe(first()).subscribe({\r\n next: (response: any) => {\r\n if (response.length > 0) {}\r\n this._leadService.sendRefreshConvTable('refreshTable');\r\n },\r\n error: (err: any) => {\r\n this._toasMsgService.showError(err?.error?.message);\r\n }\r\n })\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this._toasMsgService.resetMessage();\r\n }, timer);\r\n }\r\n\r\n private closeDialog() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n private showToast(msg: string) {\r\n this.closeDialog();\r\n }\r\n\r\n // get countries according to zip code\r\n public getCounties() {\r\n if (this.addLeadForm?.value?.zip?.length == 5) {\r\n this._leadService.getCountiesByZip(this.addLeadForm?.value?.zip)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.length > 0) {\r\n this.addLeadForm.patchValue({ county: '', state_id: '' });\r\n this.statesData = res || [];\r\n if (this.statesData?.length) {\r\n if (this.statesData?.length < 2) {\r\n if (this.statesData[0]?.counties.length < 2) {\r\n /* set county and state's value according to zip code */\r\n this.addLeadForm.patchValue({\r\n county: this.statesData[0]?.counties[0]?.county_name,\r\n state_id: this.statesData[0]?.state_id\r\n });\r\n } else {\r\n /* set state's value according to zip code */\r\n this.addLeadForm.patchValue({ state_id: this.statesData[0]?.state_id });\r\n this._commonService.countyStateAlert(this.statesData)\r\n }\r\n } else {\r\n this._commonService.countyStateAlert(this.statesData)\r\n }\r\n }\r\n } else {\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'The zip code you entered (' + this.addLeadForm?.value?.zip + ') cannot be found in our system.',\r\n 'type': 'ok'\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.addLeadForm.patchValue({ county: '', state_id: '', zip: '' });\r\n })\r\n }\r\n }, error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err?.error?.message,\r\n };\r\n this.clearMessage(30000);\r\n }\r\n });\r\n } else {\r\n this.addLeadForm.patchValue({ county: '', state_id: '' });\r\n }\r\n }\r\n\r\n //method to patch the medsup result data in new lead form\r\n private addLeadData() {\r\n if (this.leadData?.form?.length >= 1) {\r\n let dob=\"\"\r\n if(this.leadData?.type == 'fex'){\r\n dob = this.leadData?.form?.[0]?.dob ?\r\n moment(this.leadData?.form?.[0]?.dob).format('MM/DD/YYYY') :\r\n moment().subtract(this.leadData?.form?.[0]?.age, \"y\").startOf('year').format(\"MM/DD/YYYY\")\r\n }else{\r\n dob = this.leadData?.form?.[0]?.dob ? moment(this.leadData?.form?.[0]?.dob).format('MM/DD/YYYY') : ''\r\n }\r\n this.addLeadForm.patchValue({\r\n dob: dob,\r\n gender: this.leadData?.form?.[0]?.gender,\r\n zip: this.leadData?.form?.[0]?.zip,\r\n state_id: this.leadData?.form[0]?.state?.state_id ? this.leadData?.form[0]?.state?.state_id : this.leadData?.form[0]?.state_id ? this.leadData?.form[0]?.state_id : this.leadData?.form[0]?.state,\r\n })\r\n this.setCounty();\r\n }\r\n }\r\n\r\n public changeOption(country: any) {\r\n this.addLeadForm.patchValue({ state_id: country.state_id });\r\n }\r\n\r\n public changeState(event: any) {\r\n this.addLeadForm.patchValue({ zip: '', county: '' })\r\n }\r\n\r\n private setCounty() {\r\n if (this.leadData?.form?.[0]?.zip?.length == 5) {\r\n this._leadService.getCountiesByZip(this.leadData?.form?.[0]?.zip)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.length > 0) {\r\n this.addLeadForm.patchValue({ county: '' });\r\n this.statesData = res || [];\r\n this.addLeadForm.patchValue({\r\n county: this.leadData?.form?.[0].county\r\n });\r\n //check if imported leads county is invalid\r\n let checkCountyExists = null;\r\n for (let state of this.statesData) {\r\n checkCountyExists = state.counties.find(\r\n (county: { county_name: any; }) => CompareStringsCaseInsensitive(county.county_name, this.addLeadForm.get('county')?.value)\r\n );\r\n if (checkCountyExists) {\r\n this.addLeadForm.patchValue({\r\n county: checkCountyExists.county_name\r\n });\r\n break;\r\n }\r\n }\r\n\r\n if(checkCountyExists?.length==0) {\r\n // County not found in the 'stateCounties' data\r\n this.addLeadForm.patchValue({ county: '' });\r\n }\r\n }\r\n }, error: (err: any) => {\r\n this.message = {\r\n type: 'alert',\r\n text: err?.error?.message,\r\n };\r\n this.clearMessage(30000);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n

eSignature Scope of Appointment

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

The eSignature Scope of Appointment (SOA) provided here is a CMS-approved, proprietary SMS tool that\r\n is not specific\r\n to any plan sponsor and can be used for all appointments as per CMS Medicare Marketing Guidelines.\r\n

\r\n\r\n
\r\n \r\n
\r\n \r\n From\r\n \r\n \r\n \r\n Type\r\n \r\n Home\r\n Other \r\n Work\r\n \r\n \r\n \r\n To\r\n \r\n \r\n
\r\n
\r\n 0 || isGenerateDraft\">\r\n
\r\n \r\n Appointment Date\r\n \r\n \r\n \r\n Please enter a valid date as \"MM/DD/YYYY\" between today and 1 year.\r\n \r\n \r\n Initial Method of Contact\r\n \r\n Web\r\n Email \r\n Phone\r\n Text\r\n Walk in\r\n \r\n \r\n
\r\n
\r\n \r\n
1\">\r\n \r\n Please select lead email address\r\n \r\n ({{emails.email_type}}) {{emails.email}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n Enter Agent Name Here to eSign\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
From:{{email_types.SENDER_EMAIL}}
To: {{leadDetails?.default_email?.email}}
Subject:Medicare Health Plans - Scope of Appointment eSignature Request:\r\n for {{leadDetails?.fname.trim()}} {{leadDetails?.lname.trim()}}\r\n from {{userDetails?.fname.trim()}} {{userDetails?.lname.trim()}}\r\n
Message:\r\n
\r\n
\r\n

Dear {{leadDetails?.fname}} {{leadDetails?.lname}},

\r\n

Please click on the link below to be taken to a secure website where you can electronically sign the Scope of Appointment form required before we can discuss your Medicare health plan options.\r\n

\r\n
    \r\n
  • Scope of Appointment Document
  • \r\n
\r\n

If you have any questions, do not hesitate to contact me.

\r\n

Sincerely,

\r\n

{{userDetails?.fname}} {{userDetails?.lname}}

\r\n

Licensed Insurance Agent

\r\n

{{userDetails?.company}}

\r\n

0\">\r\n {{userDetails?.default_phone.phone}}\r\n

\r\n

TTY 711

\r\n

0\">\r\n {{userDetails?.default_email.email}}\r\n

\r\n

0\">\r\n {{userDetails?.default_address.address1}}\r\n

\r\n

\r\n {{userDetails?.default_address.city}},\r\n {{userDetails?.default_address.state_id}}\r\n {{userDetails?.default_address.zip}}\r\n

\r\n

\r\n If you do not want to be contacted again via email, please send an email to\r\n {{userDetails.default_email.email}} with the subject\r\n line: Do Not Email Me Again.\r\n

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

\r\n {{type.email_disclaimer_text_with_counts}}\r\n

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

This e-mail, including any attachments, is intended solely for the use of the individual or entity to which it is addressed. If the reader of this e-mail is not the intended recipient, the reader is hereby notified that any dissemination, distribution, use or copying of this e-mail is strictly prohibited. If you have received this e-mail in error, please notify the sender by reply e-mail and destroy this e-mail immediately.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { validatorPatterns } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LeadDetail } from '@data/lead/lead.interface';\r\nimport { leadUtilityFunctions } from '@data/services/lead/lead-utility-functions';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { environment } from '@env/environment';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { Subject, Subscription, first, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'app-remote-soa',\r\n templateUrl: './remote-soa.component.html',\r\n styleUrls: ['./remote-soa.component.scss']\r\n})\r\nexport class RemoteSoaComponent implements OnInit {\r\n private createEmailDraftSubs:Subscription;\r\n private getSoAeSignatureSubs:Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n public remoteForms : FormGroup;\r\n public minDate : Date;\r\n public maxDate : string;\r\n public leadDetails : any;\r\n public userDetails: any;\r\n public isGenerateDraft : boolean = false;\r\n public isEmailSOA : boolean = false;\r\n public generatingDraft : boolean = false;\r\n public email_types : any = environment;\r\n public groupByCategory:any;\r\n public Object = Object;\r\n\r\n constructor(\r\n private fb : FormBuilder,\r\n private auth: AuthService,\r\n private commonService:CommonService,\r\n private dialog: MatDialog,\r\n private leadService: LeadService,\r\n private toastMsgService: ToastMsgService,\r\n public luf : leadUtilityFunctions\r\n ) {\r\n this.userDetails = this.auth.user_details;\r\n this.leadDetails = this.leadService.lead_details;\r\n this.remoteForms = this.fb.group({\r\n 'aptDate' : this.leadDetails?.emails?.length > 0 ? ['', Validators.required] : [''],\r\n 'contactMethod' : this.leadDetails?.emails?.length > 0 ? ['', Validators.required] : [''],\r\n 'agentSignature' : ['', Validators.required],\r\n\r\n 'default_email' : this.leadDetails?.emails?.length == 0 ? [this.userDetails.default_email.email, [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]] : ['',[ Validators.pattern(validatorPatterns.EMAIL)]],\r\n 'leaddefault_email_type' : this.leadDetails?.emails?.length == 0 ? ['', Validators.required] : [''],\r\n 'leadEmail' : this.leadDetails?.emails?.length == 0 ? ['', [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]] : ['',[ Validators.pattern(validatorPatterns.EMAIL)]],\r\n\r\n 'emailIds' : this.leadDetails?.emails?.length > 1 ? ['', Validators.required] : [''],\r\n });\r\n this.getDisclaimerText();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.minDate = new Date();\r\n this.maxDate = moment(this.minDate).add(1, \"year\").format(\"MM/DD/YYYY\");\r\n }\r\n\r\n public checkAptDate(date: string) {\r\n let futureDate = moment(date).format(\"MM/DD/YYYY\")\r\n if (moment(futureDate).isAfter(this.maxDate)) {\r\n this.remoteForms.controls['aptDate'].setErrors({ invalid: true });\r\n }\r\n }\r\n\r\n public updateLeadEmail(){\r\n if(this.remoteForms.invalid){\r\n return;\r\n }else{\r\n this.generatingDraft = true;\r\n let formData = this.remoteForms.value;\r\n let payload = {\"email_type\":formData.leaddefault_email_type,\"email\": formData.leadEmail,\"default_email\":\"true\"}\r\n this.createEmailDraftSubs = this.leadService.createEmailDraft(payload).subscribe({\r\n next: (res: any) => {\r\n this.leadService.getLeadDetails(this.leadService.lead_details.lead_id).pipe(takeUntil(this._componentDestroyed$)).subscribe({\r\n next: (res: LeadDetail) => {\r\n this.leadService.lead_details = res;\r\n this.isGenerateDraft = true;\r\n this.generatingDraft = false;\r\n }, error: err => {\r\n this.generatingDraft = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n });\r\n }, error: err => {\r\n this.generatingDraft = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n })\r\n }\r\n }\r\n\r\n private getDisclaimerText(){\r\n //call API to get cms disclaimer\r\n var payload={\r\n user_id:this.auth.getToken().user_id,\r\n lead_id:this.leadDetails?.lead_id,\r\n county:this.leadDetails?.default_address.county\r\n }\r\n\r\n this.leadService.getCarrierPlanGeography(payload,'email').pipe(takeUntil(this._componentDestroyed$)).subscribe({\r\n next: (response: any) => {\r\n if (response.success == '0') {\r\n this.toastMsgService.showError(response.message);\r\n } else {\r\n this.groupByCategory = this.commonService.groupByPlanYear(response);\r\n }\r\n },\r\n error: (err) => {\r\n this.toastMsgService.showError(err.error.message);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n public remoteSOA(){\r\n if(this.remoteForms.invalid){\r\n return;\r\n }else{\r\n this.isEmailSOA = true;\r\n let fomrData = this.remoteForms.value;\r\n this.getSoAeSignatureSubs = this.leadService.getSoAeSignature(fomrData.agentSignature).subscribe({\r\n next: (res: any) => {\r\n let user = this.auth.user_details;\r\n var agentESignatureID = res.esignature_id;\r\n let lead = this.leadService.lead_details\r\n let payload = this.luf.generateRequestPayload(user,agentESignatureID,lead,fomrData,'remote');\r\n this.leadService.getClientInvite(payload).pipe(first()).subscribe({\r\n next: (res: any) => {\r\n if (res.success == 0) {\r\n if (user.default_phone.phone) {\r\n\t\t\t\t\t\t\t\t\tthis.toastMsgService.showError('The eSignature Scope Of Appointment was not emailed. ' + res.message);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tthis.toastMsgService.showError('To send eSOA you need to have a phone number in your agent profile. Click on your name in the upper right hand corner and select \"Profile\" from the drop down to add your agent phone number');\r\n\t\t\t\t\t\t\t\t}\r\n }else {\r\n this.toastMsgService.showSuccess('The eSignature Scope Of Appointment was emailed.');\r\n this.leadService.sendRefreshConvTable('refreshConvTable');\r\n\t\t\t\t\t\t\t}\r\n this.dialog.closeAll();\r\n this.isEmailSOA = false;\r\n }, error: err => {\r\n this.isEmailSOA = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n });\r\n }, error: err => {\r\n this.isEmailSOA = false;\r\n this.toastMsgService.showError(err.error.message);\r\n }\r\n })\r\n }\r\n }\r\n\r\n public ngOnDestroy(){\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n if(this.createEmailDraftSubs) this.createEmailDraftSubs.unsubscribe();\r\n if(this.getSoAeSignatureSubs) this.getSoAeSignatureSubs.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n

{{ quickLinkText ? 'CMS Check' :'Single Sign On'}}

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

Select \"Continue\" to autosign onto the portal for {{ carrierName }}

\r\n

\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-single-sign-on',\r\n templateUrl: './single-sign-on.component.html',\r\n styleUrls: ['./single-sign-on.component.scss']\r\n})\r\nexport class SingleSignOnComponent implements OnInit {\r\n\r\n private _ssoData: any;\r\n private _ssoURL: string;\r\n\r\n public carrierName: string;\r\n public quickLinkText: string;\r\n\r\n public ssoForm: FormGroup;\r\n public hashFormControl = new FormControl();\r\n public userIdFormControl = new FormControl();\r\n public loginFormControl = new FormControl();\r\n public relayStateFormControl = new FormControl();\r\n public SAMLResponseFormControl = new FormControl();\r\n\r\n public ssoURLToiGoEApp: SafeUrl;\r\n public ssoiGoEAppRelayState: string | null;\r\n public ssoiGoEAppSAMLResponse: string | null;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n @Inject(DOCUMENT)\r\n private _document: Document,\r\n private _formBuilder: FormBuilder,\r\n ) {\r\n\r\n this._ssoData = data.data;\r\n this._ssoURL = data.url || this._ssoData.url || '';\r\n\r\n this.carrierName = data?.plan?.carrier_name || '';\r\n this.quickLinkText = data.quickLinkText || '';\r\n\r\n if (Array.isArray(this._ssoData)) {\r\n if (this._ssoData.length == 2) {\r\n this.ssoiGoEAppRelayState = this._ssoData[0]?.RelayState || null;\r\n this.ssoiGoEAppSAMLResponse = this._ssoData[1]?.SAMLResponse || null;\r\n }\r\n else\r\n this.ssoiGoEAppSAMLResponse = this._ssoData[0]?.SAMLResponse || null;\r\n\r\n } else {\r\n this.ssoiGoEAppRelayState = null;\r\n this.ssoiGoEAppSAMLResponse = null;\r\n }\r\n\r\n\r\n this.ssoForm = this._formBuilder.group({\r\n 'hash': this.hashFormControl,\r\n 'user_id': this.userIdFormControl,\r\n 'login': this.loginFormControl,\r\n 'RelayState': this.relayStateFormControl,\r\n 'SAMLResponse': this.SAMLResponseFormControl,\r\n });\r\n\r\n this.ssoForm.patchValue({\r\n ...this._ssoData,\r\n ...{\r\n RelayState: this.ssoiGoEAppRelayState,\r\n SAMLResponse: this.ssoiGoEAppSAMLResponse\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public submitSSO() {\r\n const httpMethod = this._ssoData?.method?.toUpperCase();\r\n const ssoValues = Object.fromEntries(Object.entries(this.ssoForm.value).filter(([_, v]) => v != null));\r\n\r\n const form = this._document.createElement(\"form\");\r\n form.method = httpMethod || 'POST';\r\n form.target = \"_blank\";\r\n form.action = this._ssoURL;\r\n\r\n for (let [inputName, value] of Object.entries(ssoValues)) {\r\n const input = this._document.createElement(\"input\");\r\n\r\n input.type = \"hidden\";\r\n input.name = inputName;\r\n input.value = value;\r\n form.appendChild(input);\r\n\r\n }\r\n\r\n this._document.body.appendChild(form);\r\n form.submit();\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '@env/environment';\r\nimport { throwError, Observable, Subject } from 'rxjs';\r\nimport { catchError, distinct, switchMap } from 'rxjs/operators';\r\nimport { IValidateUrl } from './validate-url.interface';\r\nimport { IRegistration } from './registration.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegistrationService {\r\n\r\n constructor(\r\n private _http: HttpClient) { \r\n }\r\n\r\n\r\n public registerUser(formValues: IRegistration) {\r\n return this._http.post(\r\n environment.registrationApi + 'registration', \r\n this._encodeData(formValues),\r\n {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n })\r\n })\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); }\r\n ));\r\n\r\n }\r\n\r\n public getUserAgreement() {\r\n return this._http.get(environment.registrationApi + 'agreement')\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); }\r\n ));\r\n\r\n }\r\n\r\n public validateUrl(token: string) {\r\n return this._http.post(environment.registrationApi + 'validateUrl', {\r\n 'token': token\r\n })\r\n .pipe(\r\n catchError((error) => { return throwError(() => error); } \r\n ));\r\n\r\n }\r\n\r\n private _encodeData(formValues : IRegistration) {\r\n // Turn the data object into an array of URL-encoded key/value pairs.\r\n let urlEncodedDataPairs = [];\r\n\r\n for (const [key, value] of Object.entries(formValues)) {\r\n urlEncodedDataPairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n\r\n // Combine the pairs into a single string and replace all %-encoded spaces to \r\n // the '+' character; matches the behaviour of browser form submissions.\r\n return urlEncodedDataPairs.join('&').replace(/%20/g, '+');\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

User Agreement

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

User must agree to terms of service outlined below. A copy of this agreement will be emailed to the email associated with this account upon completion.

\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { RegistrationService } from '@data/services/registration/registration.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-user-agreement',\r\n templateUrl: './user-agreement.component.html',\r\n styleUrls: ['./user-agreement.component.scss']\r\n})\r\nexport class UserAgreementComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject();\r\n\r\n public document: SafeHtml;\r\n public isLoading: boolean = true;\r\n\r\n constructor(\r\n private _registrationService: RegistrationService,\r\n private _sanitizer: DomSanitizer\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this._registrationService.getUserAgreement()\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (userAgreement: any) => {\r\n this.isLoading = false;\r\n this.document = this._sanitizer.bypassSecurityTrustHtml(userAgreement.agreement);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'phone'\r\n})\r\nexport class PhonePipe implements PipeTransform {\r\n\r\n transform(rawNum : string) {\r\n const phoneString = rawNum.toString();\r\n const phonePattern = /(\\d{3})(\\d{3})(\\d{4})/g;\r\n const formattedPhone: Array = phoneString.split(phonePattern);\r\n\r\n return '(' + formattedPhone[1] + ') ' + formattedPhone[2] + '-' + formattedPhone[3] \r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n

Leverage your time, make more money and put your business in a position of distinction with Lead Advantage Pro!

\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n warning\r\n warning_amber\r\n \r\n \r\n

\r\n \r\n The registration link used is no longer valid. Please contact Lead Advantage Pro support at 1-877-645-0147. If you'd like to register for Lead Advantage Pro please visit Lead Advantage Pro at https://seniormarketsales.com.\r\n \r\n \r\n Please contact {{ accountOwnerName }} at {{ accountOwnerEmail }} or {{ accountOwnerPhone | phone }} as the user role is no longer valid for this link.\r\n \r\n \r\n Your registration will create a user profile within {{ accountOwnerName }}'s Lead Advantage Pro account ({{ accountId }}). If this is not what you intend, do not proceed. You may contact {{accountOwnerName}} at {{accountOwnerEmail}} or {{ accountOwnerPhone | phone }}.\r\n \r\n

\r\n close\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n done\r\n warning\r\n \r\n

\r\n close\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

* denotes a required field.

\r\n \r\n \r\n Your ID and Password\r\n\r\n
\r\n \r\n Username:\r\n \r\n Username is required.\r\n Username must be 6-15 letters or numbers.\r\n \r\n
\r\n

Must be between 6-15 alphanumeric characters.

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Password:\r\n \r\n Password is required.\r\n Password must meet the minimum strength as defined.\r\n \r\n\r\n \r\n Confirm Password:\r\n \r\n Must confirm Password.\r\n Password must match.\r\n \r\n
\r\n
\r\n
    \r\n
  • At least 8 characters long.
  • \r\n
  • Must contain at least 1 capital letter.
  • \r\n
  • Must contain at least 1 lower case letter.
  • \r\n
  • Must contain at least 1 number.
  • \r\n
  • Must contain at least 1 of the following special characters (!,@,#,$,&,*).
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n Contact Information\r\n\r\n
\r\n \r\n Business Name:\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n First Name:\r\n \r\n First Name is required.\r\n First Name must contain letters, spaces, and hyphens only.\r\n \r\n\r\n \r\n Last Name:\r\n \r\n Last Name is required.\r\n Last Name must contain letters, spaces, and hyphens only.\r\n \r\n
\r\n\r\n
\r\n \r\n Email Address:\r\n \r\n Email Address is required.\r\n Enter a valid Email Address.\r\n \r\n
\r\n\r\n
\r\n \r\n Street Address 1:\r\n \r\n Street Address 1 is required.\r\n \r\n
\r\n\r\n
\r\n \r\n Street Address 2:\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n City:\r\n \r\n City is required.\r\n \r\n
\r\n\r\n
\r\n \r\n State:\r\n \r\n \r\n {{state.name}}\r\n \r\n \r\n State is required.\r\n \r\n
\r\n\r\n
\r\n \r\n Zip Code:\r\n \r\n Zip Code is required.\r\n Enter a valid Zip Code.\r\n \r\n
\r\n

Please enter a five digit number.

\r\n
\r\n
\r\n\r\n
\r\n \r\n Business Phone:\r\n \r\n Business Phone is required.\r\n Enter a valid Business Phone.\r\n \r\n
\r\n

Please enter a ten digit number.

\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n Mobile Phone:\r\n \r\n Enter a valid Mobile Phone.\r\n \r\n
\r\n

Please enter a ten digit number.

\r\n
\r\n
\r\n\r\n
\r\n \r\n Fax Number:\r\n \r\n Enter a valid Fax Number.\r\n \r\n
\r\n\r\n
\r\n \r\n National Producer Number (NPN):\r\n \r\n Enter a valid NPN or click the checkbox if you do not have one.\r\n \r\n
\r\n \r\n Find your NPN.\r\n I don't have an NPN\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Website URL:\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { UserRegistrationComponent } from './pages/user-registration/user-registration.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path : '',\r\n component: UserRegistrationComponent,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class RegistrationRoutingModule { }\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { BehaviorSubject, Subject, first, takeUntil } from 'rxjs';\r\n\r\nimport { IRegistration } from '@data/services/registration/registration.interface';\r\nimport { RegistrationService } from '@data/services/registration/registration.service';\r\nimport { IValidateUrl } from '@data/services/registration/validate-url.interface';\r\nimport { environment } from '@env/environment';\r\nimport { UserAgreementComponent } from '@modules/registration/components/user-agreement/user-agreement.component';\r\nimport { ConfirmedValidator } from '@shared/helper/confirmed.validator';\r\n\r\nimport { validatorPatterns } from '@app/constants';\r\nimport * as stateData from '@data/states.json';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\n\r\n@Component({\r\n selector: 'app-user-registration',\r\n templateUrl: './user-registration.component.html',\r\n styleUrls: ['./user-registration.component.scss']\r\n})\r\nexport class UserRegistrationComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject();\r\n\r\n private _lastEnteredNpn: string = '';\r\n private _loginPattern = /^[a-zA-Z0-9]+$/;\r\n private _namePattern = /^[a-zA-Z]+.[a-zA-Z \\-]*$/;\r\n private _pwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[\\d])(?=.*[!@#$&*])[A-Za-z\\d!@#$&*].{7,}$/;\r\n private _phonePattern = /^[\\(\\)\\d \\-]+$/;\r\n private _token: string;\r\n\r\n public accountId: number;\r\n public accountOwnerName: string;\r\n public accountOwnerEmail: string;\r\n public accountOwnerPhone: string;\r\n\r\n public displayAcctInfo: boolean = false;\r\n public displayInvalidAcct: boolean = false;\r\n public displayRoleExpired: boolean = false;\r\n public hasError: boolean = false;\r\n\r\n public disabledAccount: boolean = false;\r\n\r\n public componentLoaded: boolean = false;\r\n public inProgress: boolean = false;\r\n public loadingMessage: string = '';\r\n\r\n public logo: string = 'assets/images/dummy-navBar-logo-transparent.png';\r\n public registrationAttempt: boolean = false;\r\n public registrationStatus: string;\r\n public statesList: Array;\r\n public userRegistrationForm: FormGroup;\r\n public registrationMessage$ = new BehaviorSubject('');\r\n\r\n public login: FormControl = new FormControl('', [Validators.required, Validators.pattern(this._loginPattern), Validators.minLength(6), Validators.maxLength(15)]);\r\n public password: FormControl = new FormControl('', [Validators.required, Validators.pattern(this._pwordPattern)]);\r\n public confirmPwd: FormControl = new FormControl('');\r\n public fname: FormControl = new FormControl('', [Validators.required, Validators.pattern(this._namePattern)]);\r\n public lname: FormControl = new FormControl('', [Validators.required, Validators.pattern(this._namePattern)]);\r\n public email: FormControl = new FormControl('', [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]);\r\n public address1: FormControl = new FormControl('', [Validators.required]);\r\n public city: FormControl = new FormControl('', [Validators.required]);\r\n public state_id: FormControl = new FormControl('', [Validators.required]);\r\n public zip: FormControl = new FormControl('', [Validators.required, Validators.pattern('^[0-9]{5}$')]);\r\n public phone: FormControl = new FormControl('', [Validators.required, Validators.pattern(this._phonePattern)]);\r\n public mphone: FormControl = new FormControl('', [Validators.pattern(this._phonePattern)]);\r\n public fphone: FormControl = new FormControl('', [Validators.pattern(this._phonePattern)]);\r\n public npn: FormControl = new FormControl('', [Validators.required, Validators.pattern('^[0-9].+$')]);\r\n public hasNoNPN: FormControl = new FormControl(false);\r\n constructor(\r\n private _activeRoute: ActivatedRoute,\r\n private _dialog: MatDialog,\r\n private _formBuilder: FormBuilder,\r\n private _registrationService: RegistrationService,\r\n private _toastMsg: ToastMsgService,\r\n ) {\r\n\r\n this.statesList = (stateData as any).default;\r\n this.userRegistrationForm = this._formBuilder.group({\r\n // controls\r\n login: this.login,\r\n password: this.password,\r\n confirmPwd: this.confirmPwd,\r\n company: new FormControl(''),\r\n fname: this.fname,\r\n lname: this.lname,\r\n email: this.email,\r\n address1: this.address1,\r\n address2: new FormControl(''),\r\n city: this.city,\r\n state_id: this.state_id,\r\n zip: this.zip,\r\n phone: this.phone,\r\n mphone: this.mphone,\r\n fphone: this.fphone,\r\n npn: this.npn,\r\n hasNoNPN: this.hasNoNPN,\r\n website: new FormControl(''),\r\n\t\t}, {\r\n // options\r\n validators: [\r\n (formGroup: FormGroup) => {\r\n if (this.npn.value.length === 0 && this.hasNoNPN.value === false)\r\n this.npn.setErrors({ missingNPN: true });\r\n\r\n else\r\n this.npn.setErrors(null);\r\n\r\n return;\r\n },\r\n ConfirmedValidator('password', 'confirmPwd')\r\n ]\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this._activeRoute.queryParams\r\n .pipe(first())\r\n .subscribe(params => {\r\n this._token = params?.q;\r\n\r\n if (this._token && this._token.length > 0)\r\n this._registrationService.validateUrl(this._token)\r\n .pipe(first())\r\n .subscribe({\r\n next: (cobrandAccount: IValidateUrl) => {\r\n this._checkURLValidation(cobrandAccount)\r\n\r\n },\r\n error: (err : HttpErrorResponse) => {\r\n this.displayInvalidAcct = true;\r\n\r\n }\r\n })\r\n .add(() => {\r\n this.componentLoaded = true;\r\n if (this.displayInvalidAcct || this.displayRoleExpired)\r\n this.userRegistrationForm.disable({emitEvent: false});\r\n\r\n });\r\n\r\n else {\r\n this.componentLoaded = true;\r\n this.setLogo('assets/images/default-lapro-logo-clear.png');\r\n }\r\n\r\n });\r\n\r\n this.hasNoNPN.valueChanges\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (checked) => {\r\n if (checked) {\r\n this._lastEnteredNpn = this.npn.value;\r\n this.npn.setValue('', { emitEvent: false });\r\n\r\n } else {\r\n this.npn.setValue(this._lastEnteredNpn, { emitEvent: false });\r\n\r\n }\r\n }\r\n });\r\n\r\n this.userRegistrationForm.valueChanges\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: () => {\r\n this.hasError = false;\r\n this.registrationMessage$.next('');\r\n }\r\n });\r\n\r\n }\r\n\r\n public setLogo(logoSource?: string) {\r\n this.logo = logoSource ? logoSource : this.logo;\r\n }\r\n\r\n public submitForm(): boolean {\r\n this.registrationAttempt = false;\r\n this.userRegistrationForm.markAllAsTouched();\r\n this.registrationMessage$.next('');\r\n\r\n if (this.userRegistrationForm.valid)\r\n return this._checkUserAgreement(this.userRegistrationForm.value);\r\n\r\n else {\r\n this.hasError = true;\r\n this._showRegistrationMessage('Please enter all the required fields before submission.');\r\n\r\n return false;\r\n }\r\n }\r\n\r\n private _checkURLValidation(cobrandAccount : IValidateUrl) {\r\n const msg = cobrandAccount.message ? cobrandAccount.message : '';\r\n const cobrandInfo = cobrandAccount?.cobrand;\r\n const cobrandOwner = cobrandAccount?.user;\r\n\r\n if (msg.indexOf(\"Role Expired\") > -1) {\r\n this.displayRoleExpired = true;\r\n\r\n } else if (cobrandInfo && cobrandOwner) {\r\n this.displayAcctInfo = true;\r\n\r\n this.accountId = cobrandOwner.account_id;\r\n this.accountOwnerName = cobrandOwner.fname + \" \" + cobrandOwner.lname;\r\n this.accountOwnerEmail = cobrandOwner.default_email.email;\r\n this.accountOwnerPhone = cobrandOwner.default_phone.phone;\r\n\r\n // CoBranding Agency Logo Update\r\n if (cobrandInfo) {\r\n this.setLogo(cobrandInfo.cobrand_asset_urls?.logo_3);\r\n }\r\n }\r\n\r\n }\r\n\r\n private _checkUserAgreement(formValues: IRegistration): boolean {\r\n\r\n this._dialog.open(UserAgreementComponent, {\r\n width: '60%'\r\n }).afterClosed()\r\n .subscribe((result : any) => {\r\n\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n this.userRegistrationForm.markAsPristine();\r\n\r\n if (result === true) {\r\n if (!this._token)\r\n this._registerUser({ ...formValues, bSignature: result });\r\n\r\n else\r\n this._registerUser({ ...formValues, bSignature: result, source: this._token, fromURL: true });\r\n\r\n } else {\r\n this.hasError = true;\r\n this._showRegistrationMessage('Your registration was not completed due to not accepting the web agreement. Please submit again if done in error or close page.');\r\n\r\n }\r\n return result;\r\n });\r\n\r\n return true;\r\n }\r\n\r\n private _registerUser(formValue: IRegistration) {\r\n this.userRegistrationForm.disable({ emitEvent: false });\r\n\r\n this.inProgress = true;\r\n this.loadingMessage = 'Creating a User Account. Please Wait.';\r\n\r\n formValue.phone = formValue.phone.replace(/[\\(\\)\\s\\-]*/g, '');\r\n formValue.mphone = formValue?.mphone.replace(/[\\(\\)\\s\\-]*/g, '');\r\n formValue.fphone = formValue?.fphone.replace(/[\\(\\)\\s\\-]*/g, '');\r\n\r\n this._registrationService.registerUser(formValue)\r\n .pipe(first())\r\n .subscribe({\r\n next: (response) => {\r\n this._processRegistrationResponse(response);\r\n },\r\n error: (response : HttpErrorResponse) => {\r\n this._processRegistrationResponse(response.error, true);\r\n }\r\n });\r\n }\r\n\r\n private _processRegistrationResponse(response : any, error: boolean = false) {\r\n this.hasError = response.success == 0 || error;\r\n this.inProgress = false;\r\n this.loadingMessage = '';\r\n\r\n if (response) {\r\n const msg = response.message;\r\n\r\n if (this.hasError) {\r\n this.userRegistrationForm.enable({ emitEvent: false });\r\n\r\n if (msg.indexOf('already in use') > -1) {\r\n //username already taken, prompt to pick a different one\r\n this._showRegistrationMessage('Username already exists. Choose a different username or click on forgot password or contact us at 1-877-645-014.');\r\n\r\n } else {\r\n this._showRegistrationMessage(msg);\r\n\r\n }\r\n\r\n } else {\r\n\r\n //registration completed but account is disabled\r\n if (response.disabled == 'true') {\r\n this.disabledAccount = true;\r\n this._showRegistrationMessage('Thank you for registering for Lead Advantage Pro. Your profile was created but made inaccessible until your credentials can be validated. You will be contacted within 24 hours or you can call 1-877-645-0147.');\r\n\r\n }\r\n\r\n else\r\n this._showRegistrationMessage('Your account has been created, please click here to log on to Lead Advantage Pro.');\r\n\r\n }\r\n\r\n } else {\r\n this.userRegistrationForm.enable({ emitEvent: false });\r\n this._showRegistrationMessage('An unexpected error occurred. Please try again.');\r\n\r\n }\r\n\r\n }\r\n\r\n private _showRegistrationMessage(message: string) {\r\n this.registrationAttempt = true\r\n this._toastMsg.resetMessage();\r\n this.registrationMessage$.next(message);\r\n }\r\n\r\n public closeNotice(){\r\n this.displayInvalidAcct = false;\r\n this.displayRoleExpired = false;\r\n this.displayAcctInfo = false;\r\n this.registrationAttempt = false;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\n\r\nimport { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { UserAgreementComponent } from './components/user-agreement/user-agreement.component';\r\nimport { UserRegistrationComponent } from './pages/user-registration/user-registration.component';\r\nimport { RegistrationRoutingModule } from './registration-routing.module';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n UserRegistrationComponent,\r\n UserAgreementComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RegistrationRoutingModule,\r\n SharedModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n {\r\n provide: ErrorStateMatcher,\r\n useClass: ShowOnDirtyErrorStateMatcher\r\n },\r\n ]\r\n})\r\nexport class RegistrationModule { }\r\n","import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Renderer2\r\n} from '@angular/core';\r\n@Directive({\r\n selector: '[appDate]'\r\n})\r\nexport class DateDirective {\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2\r\n ) { }\r\n ngOnInit() {\r\n this.renderer.addClass(this.el.nativeElement, 'crazyClass')\r\n setTimeout(() => {\r\n this.renderer.setStyle(this.el.nativeElement, 'color', 'black');\r\n this.renderer.setAttribute(\r\n this.el.nativeElement,\r\n 'placeholder',\r\n 'MM/DD/YYYY'\r\n );\r\n this.renderer.setAttribute(this.el.nativeElement, 'maxlength', '10');\r\n }, 100);\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n let e = event;\r\n /* \r\n 8 - for backspace\r\n 9 - for tab\r\n 13 - for enter\r\n 27 - for escape\r\n 46 - for delete\r\n */\r\n if (\r\n [8, 9, 13, 27, 46].indexOf(e.keyCode) !== -1 ||\r\n // Allow: Ctrl+A\r\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+C\r\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+V\r\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: Ctrl+X\r\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\r\n // Allow: home, end, left, right\r\n (e.keyCode >= 35 && e.keyCode <= 39) ||\r\n e.keyCode == 191\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n // Ensure that it is a number or / and stop the keypress\r\n if (\r\n (e.shiftKey || e.keyCode < 48 || e.keyCode > 57) &&\r\n (e.keyCode < 96 || e.keyCode > 105)\r\n ) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event']) onkeyup(event: KeyboardEvent) {\r\n let e = event;\r\n let numberRegEx = /^[0-9/]+$/;\r\n let val = String(this.el.nativeElement.value);\r\n if (!numberRegEx.test(this.el.nativeElement.value)) {\r\n this.el.nativeElement.value = '';\r\n event.preventDefault();\r\n } else if (val.length <= 10) {\r\n if (e.keyCode == 191) {\r\n this.el.nativeElement.value = this.el.nativeElement.value.substring(0, (val.length - 1));\r\n }\r\n if (val.length == 5 && e.keyCode != 8) {\r\n let newVal = val.split('/')\r\n if (newVal[1].length == 1) {\r\n this.el.nativeElement.value = newVal[0] + '/0' + newVal[1]\r\n }\r\n this.el.nativeElement.value = this.el.nativeElement.value.concat('/');\r\n }\r\n if (val.length == 2 && e.keyCode != 8) {\r\n if (val.includes('/'))\r\n this.el.nativeElement.value = 0 + this.el.nativeElement.value\r\n this.el.nativeElement.value = this.el.nativeElement.value.concat('/');\r\n }\r\n }\r\n this.el.nativeElement.value = this.el.nativeElement.value.replace(/([^:]\\/)\\/+/g, \"$1\");\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { NumbersOnlyDirective } from './numbers-only.directive';\r\nimport { PhoneNumberMaskDirective } from './phone-number-mask.directive';\r\nimport { DateDirective } from './date.directive';\r\nimport { SocialSecurityMaskDirective } from './social-security-mask.directive';\r\nimport { InputMaxLengthDirective } from './input-max-length.directive';\r\nimport { DisableAutofillDirective } from './disable-autofill.directive';\r\nimport { DialogScrollDirective } from './modal-class.directive';\r\nimport { PreventDoubleClickDirective } from './prevent-double-click.directive';\r\nimport { LAPButtonDirective } from './lap-button/lap-button.directive';\r\nimport { AlphaCharacterOnlyDirective } from './alpha-character-only.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n AlphaCharacterOnlyDirective,\r\n NumbersOnlyDirective,\r\n PhoneNumberMaskDirective,\r\n AlphaCharacterOnlyDirective,\r\n DateDirective,\r\n SocialSecurityMaskDirective,\r\n InputMaxLengthDirective,\r\n DisableAutofillDirective,\r\n DialogScrollDirective,\r\n PreventDoubleClickDirective,\r\n LAPButtonDirective\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports : [\r\n AlphaCharacterOnlyDirective,\r\n NumbersOnlyDirective,\r\n PhoneNumberMaskDirective,\r\n AlphaCharacterOnlyDirective,\r\n DateDirective,\r\n SocialSecurityMaskDirective,\r\n InputMaxLengthDirective,\r\n DisableAutofillDirective,\r\n DialogScrollDirective,\r\n PreventDoubleClickDirective,\r\n LAPButtonDirective,\r\n ]\r\n})\r\nexport class DirectivesModule { }\r\n","import { AfterViewInit, Directive, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDisableAutofill]'\r\n})\r\nexport class DisableAutofillDirective implements AfterViewInit {\r\n\r\n constructor(private readonly el: ElementRef, private readonly renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n /* This code generate the random string to disable the autofill. */\r\n const randomString = Math.random().toString(36).slice(-6);\r\n this.renderer.setAttribute(this.el.nativeElement, 'name', randomString);\r\n this.renderer.setAttribute(this.el.nativeElement, 'autocomplete', randomString);\r\n }\r\n\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, HostListener, Input, OnInit, Renderer2, Optional, OnDestroy\r\n} from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n@Directive({\r\n selector: '[appInputMaxLength]'\r\n})\r\nexport class InputMaxLengthDirective implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() appInputMaxLength: any = 200;\r\n private div: HTMLDivElement;\r\n private destroyed$ = new Subject();\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n @Optional() private ngModel: NgModel,\r\n ) {}\r\n\r\n @HostListener('input', ['$event']) onChange(event:any) {\r\n if (!this.ngModel) {}\r\n }\r\n\r\n ngOnInit() {\r\n this.renderer.setAttribute(this.el.nativeElement, 'maxLength', this.appInputMaxLength.toString());\r\n if (this.ngModel) {\r\n this.ngModel.valueChanges?.pipe(takeUntil(this.destroyed$)).subscribe((value:any) => {})\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.div = this.renderer.createElement('span');\r\n this.div.classList.add('count');\r\n this.renderer.insertBefore(this.el.nativeElement.parentNode, this.div, this.el.nativeElement.nextSibling);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed$.next(void 0);\r\n this.destroyed$.complete();\r\n if (this.div) this.div.remove();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appNumbersOnly]',\r\n})\r\nexport class NumbersOnlyDirective { \r\n constructor(private _el: ElementRef) {}\r\n @HostListener('input', ['$event']) onInputChange(event:any) {\r\n const initalValue = this._el.nativeElement.value;\r\n this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\r\n if ( initalValue !== this._el.nativeElement.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n@Directive({\r\n selector: '[appPhoneNumberMask]',\r\n})\r\nexport class PhoneNumberMaskDirective {\r\n constructor(public ngControl: NgControl) {}\r\n\r\n @HostListener('ngModelChange', ['$event'])\r\n onModelChange(event: any) {\r\n this.onInputChange(event, false);\r\n }\r\n\r\n @HostListener('keydown.backspace', ['$event'])\r\n keydownBackspace(event: any) {\r\n this.onInputChange(event.target.value, true);\r\n }\r\n\r\n onInputChange(event: any, backspace: any) {\r\n var x = event.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n event = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n this.ngControl.valueAccessor!.writeValue(event);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n@Directive({\r\n selector: '[appSocialSecurityMask]'\r\n})\r\nexport class SocialSecurityMaskDirective {\r\n constructor(public ngControl: NgControl) {}\r\n\r\n @HostListener('ngModelChange', ['$event'])\r\n onModelChange(event: any) {\r\n this.onInputChange(event, false);\r\n }\r\n\r\n @HostListener('keydown.backspace', ['$event'])\r\n keydownBackspace(event: any) {\r\n this.onInputChange(event.target.value, true);\r\n }\r\n\r\n onInputChange(event: any, backspace: any) {\r\n let newVal = event != null ? event.replace(/\\D/g, '') : '';\r\n if (backspace && newVal.length <= 6) {\r\n newVal = newVal.substring(0, newVal.length - 1);\r\n }\r\n if (newVal.length === 0) {\r\n newVal = '';\r\n } else if (newVal.length <= 3) {\r\n newVal = newVal.replace(/^(\\d{0,3})/, '$1');\r\n } else if (newVal.length <= 6) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,2})/, '$1-$2');\r\n } else if (newVal.length <= 10) {\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,2})(\\d{0,4})/, '$1-$2-$3');\r\n } else {\r\n newVal = newVal.substring(0, 10);\r\n newVal = newVal.replace(/^(\\d{0,3})(\\d{0,2})(\\d{0,4})/, '$1-$2-$3');\r\n }\r\n this.ngControl.valueAccessor!.writeValue(newVal);\r\n }\r\n}\r\n","import { FormGroup } from '@angular/forms';\r\n \r\nexport function ConfirmedValidator(controlName: string, matchingControlName: string){\r\n return (formGroup: FormGroup) => {\r\n const control = formGroup.controls[controlName];\r\n const matchingControl = formGroup.controls[matchingControlName]; \r\n if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {\r\n return;\r\n }\r\n if (control.value !== matchingControl.value) {\r\n matchingControl.setErrors({ confirmedValidator: true });\r\n } else {\r\n matchingControl.setErrors(null);\r\n }\r\n }\r\n}","
\r\n
\r\n
\r\n warning\r\n

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

{{ state.state_name }}

\r\n
\r\n
    \r\n
  • {{ county.county_name }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirm-delete',\r\n templateUrl: './confirm-delete.component.html',\r\n styleUrls: ['./confirm-delete.component.scss']\r\n})\r\nexport class ConfirmDeleteComponent implements OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n yesDelete() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport moment from 'moment'\r\n@Pipe({\r\n name: 'agePipe'\r\n})\r\nexport class AgePipePipe implements PipeTransform {\r\n\r\n transform(value: Date): string {\r\n let today = moment();\r\n let birthdate = moment(value);\r\n let years = today.diff(birthdate, 'years');\r\n let age:any = years ;\r\n \r\n return age;\r\n}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'clickPhone'\r\n})\r\nexport class ClickPhonePipe implements PipeTransform {\r\n\r\n transform(rawNum : string) {\r\n const phonePattern = /(\\d{3})(\\d{3})(\\d{4})/g;\r\n\r\n return rawNum.split(phonePattern).join('-');\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(html: any) {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { IUser } from '@data/user-profile/user-profile.interface';\r\nimport { environment } from '@env/environment';\r\nimport { initialize, LDClient, LDFlagValue, LDSingleKindContext } from 'launchdarkly-js-client-sdk';\r\nimport { map, Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LaunchdarklyService implements OnDestroy {\r\n\r\n private _client: LDClient;\r\n\r\n constructor () { }\r\n\r\n // This function intializes the flag\r\n public init(userDetails: IUser | null): boolean {\r\n //Set up the user context\r\n const user = {\r\n kind: 'user'\r\n } as LDSingleKindContext;\r\n\r\n if (userDetails) {\r\n user.key = 'LAP.' + (environment.env).toUpperCase() + '.USER.' + userDetails?.user_id;\r\n user.name = userDetails?.fname + ' ' + userDetails?.lname;\r\n\r\n } else\r\n user.anonymous = true;\r\n\r\n this._client = initialize(environment.launchDarklyClientId, user)\r\n\r\n return !!this._client;\r\n }\r\n\r\n public getFlag(flagKey: string, defaultValue: LDFlagValue = false): Observable {\r\n const fetchFlag = new Subject();\r\n\r\n this._client.on(`change:${flagKey}`, () => {\r\n fetchFlag.next();\r\n });\r\n\r\n this._client.waitUntilReady().then(() => {\r\n fetchFlag.next();\r\n });\r\n\r\n return fetchFlag.pipe(\r\n map(() => {\r\n return this._client.variation(flagKey, defaultValue);\r\n }),\r\n );\r\n }\r\n\r\n async ngOnDestroy() {\r\n await this._client.close();\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Injectable, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormArray, FormControl, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport moment from 'moment';\r\nimport { Observable, Subject, Subscription, first, map, BehaviorSubject, take, takeUntil } from 'rxjs';\r\nimport * as stateData from '@data/states.json';\r\nimport { UserDetails } from '@data/auth/auth.interface';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\nimport { AccountService } from '@data/services/admin/account.service';\r\nimport { IUser, IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { IProductFilter } from '@data/admin/product.interface';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { Notice } from '@data/notice/notice.interface';\r\nimport { LDF_CONFIGURABLE_SETTINGS, LDF_LEAD_SWITCH_KEY, validatorPatterns } from '@app/constants';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SingleSignOnComponent } from '@modules/quotes/components/single-sign-on/single-sign-on.component';\r\nimport { environment } from '@env/environment';\r\nimport { LaunchdarklyService } from '../LaunchDarkly/launchdarkly.service';\r\nimport {Router} from '@angular/router';\r\nimport { LeadDataDiscrepancyComponent } from '@modules/quotes/components/lead-data-discrepancy/lead-data-discrepancy.component';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService implements OnDestroy {\r\n private alert = new Subject();\r\n private expand = new Subject();\r\n private isDashboard = new Subject();\r\n private _isLoader = new Subject();\r\n private message: any = {};\r\n private state_data: any = [];\r\n private subject = new Subject();\r\n private _componentDestroyed$ = new Subject();\r\n\r\n private _userDetailSub$: Subscription;\r\n private _userDetails: UserDetails;\r\n private _accountId: string;\r\n private inAppNavigation:boolean=false;\r\n private configurableSettings :boolean = false;\r\n public configurableSettingsFlag = new Subject;\r\n public tempPollingInterval!: number;\r\n public additionalFilterDataObj: any = {};\r\n\r\n // these are for the logged in user. do not update values with another user\r\n public userSettings$ = new Subject();\r\n public accountSettings$ = new Subject();\r\n\r\n private _loggedInAccountSettings: AccountSettings;\r\n private _loggedInUserSettings: IUserSettings;\r\n\r\n constructor(\r\n private datePipe: DatePipe,\r\n private fb: UntypedFormBuilder,\r\n private router: Router,\r\n private _launchDarklySvc: LaunchdarklyService,\r\n private authService: AuthService,\r\n private _accountSvc: AccountService,\r\n private _userService: UserService,\r\n private _leadService: LeadService,\r\n public dialog: MatDialog,\r\n ) {\r\n /* get states data */\r\n this.state_data = (stateData as any).default;\r\n this._userDetailSub$ = this.authService.authUser.subscribe({\r\n next: (userDetails) => {\r\n if (userDetails !== null)\r\n this._userDetails = userDetails;\r\n }\r\n });\r\n\r\n //Set inApp variable using launchdarkly flag\r\n\r\n this._launchDarklySvc.getFlag(LDF_LEAD_SWITCH_KEY)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((flag:any) => {\r\n this.inAppNavigation = flag;\r\n });\r\n\r\n this._launchDarklySvc.getFlag(LDF_CONFIGURABLE_SETTINGS)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((flag:any) => {\r\n this.configurableSettings = flag;\r\n this.configurableSettingsFlag.next(flag);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n\r\n if (this._userDetailSub$)\r\n this._userDetailSub$.unsubscribe();\r\n }\r\n\r\n public isConfigSettingflagAvailable(){\r\n return this.configurableSettings;\r\n }\r\n\r\n public getLoggedInUserSettings(userId: string) : Observable {\r\n const cachedUserSettings = this._loggedInUserSettings;\r\n\r\n if (!cachedUserSettings && userId)\r\n return this._userService.getUserSettings(userId)\r\n .pipe(\r\n map( userSettings => {\r\n this._loggedInUserSettings = userSettings;\r\n this.userSettings$.next(userSettings);\r\n\r\n return userSettings;\r\n })\r\n );\r\n else\r\n setTimeout(() => {\r\n this.userSettings$.next(cachedUserSettings);\r\n });\r\n\r\n return this.userSettings$.asObservable();\r\n }\r\n\r\n public updateLoggedInUserSettings(userId: string, payload: IUserSettings) : Observable {\r\n return this._userService.updateUserSettings(payload, userId)\r\n .pipe(\r\n map( userSettings => {\r\n this._loggedInUserSettings = userSettings;\r\n this.userSettings$.next(userSettings);\r\n\r\n return userSettings;\r\n })\r\n );\r\n }\r\n\r\n public getAccountSettings(accountId: string = '') {\r\n return this._accountSvc.getAccountSettings(accountId);\r\n }\r\n\r\n public getLoggedInAccountSettings(accountId: string, force ?: boolean) : Observable {\r\n const cachedAccountSettings = this._loggedInAccountSettings;\r\n\r\n if ((!cachedAccountSettings && accountId) || force === true)\r\n return this._accountSvc.getAccountSettings(accountId)\r\n .pipe(\r\n map( accountSettings => {\r\n this._loggedInAccountSettings = accountSettings;\r\n this.accountSettings$.next(accountSettings);\r\n\r\n return accountSettings;\r\n })\r\n );\r\n else\r\n setTimeout(() => {\r\n this.accountSettings$.next(cachedAccountSettings)\r\n });\r\n\r\n return this.accountSettings$.asObservable();\r\n }\r\n\r\n public setAccountSettings(accountId: string, payload: AccountSettings): Observable {\r\n const observable = new Subject();\r\n this._accountSvc.updateAccountSettings(accountId, payload)\r\n .pipe(first())\r\n .subscribe({\r\n next: (settings: AccountSettings) => {\r\n observable.next((settings.success != '0'));\r\n }\r\n });\r\n\r\n return observable;\r\n }\r\n\r\n public updateLoggedInAccountSettings(accountId: string, payload: AccountSettings) {\r\n return this._accountSvc.updateAccountSettings(accountId, payload)\r\n .pipe(\r\n map( accountSettings => {\r\n this._loggedInAccountSettings = accountSettings;\r\n this.accountSettings$.next(accountSettings);\r\n\r\n return accountSettings;\r\n })\r\n );\r\n }\r\n\r\n public setLoading(isLoading: boolean){\r\n this._isLoader.next(isLoading);\r\n }\r\n\r\n public getLoading(): Observable {\r\n return this._isLoader.asObservable();\r\n }\r\n\r\n public setDashboardUI(isExpand: boolean) {\r\n this.isDashboard.next(isExpand);\r\n }\r\n\r\n public getDashboardUI(): Observable {\r\n return this.isDashboard.asObservable();\r\n }\r\n\r\n public setAccountId(id: string) {\r\n\r\n this._accountId = id;\r\n }\r\n\r\n public getAccountId() {\r\n return this._accountId;\r\n }\r\n\r\n public setAlert(data: any) {\r\n this.alert.next(data);\r\n }\r\n\r\n public goToLeadLedger(leadId:string){\r\n if(this.inAppNavigation){\r\n console.info(\"In app navigation\")\r\n this.router.navigate(['lead/' + leadId]);\r\n }else{\r\n console.info(\"Browser navigation\")\r\n window.location.href = 'lead/' + leadId;\r\n }\r\n }\r\n\r\n public getAlert(): Observable {\r\n return this.alert.asObservable();\r\n }\r\n\r\n public formatYYYYMMDD(date: string) {\r\n return this.datePipe.transform(date, 'yyyy-MM-dd');\r\n }\r\n\r\n public toServerDate(input: any) {\r\n return input ? moment(input).toISOString() : undefined;\r\n }\r\n\r\n /* function to bind the formarray data of email from API */\r\n public setExistingEmail(data: any, default_email_id: string, type : string) {\r\n const formArray: any = new FormArray([]);\r\n if (data) {\r\n data.forEach((element: any) => {\r\n if (default_email_id) {\r\n if (element.email_id == default_email_id) {\r\n this.emailDataFilled(formArray,element,type,default_email_id)\r\n }else{\r\n this.emailDataFilled(formArray,element,type, '')\r\n }\r\n } else {\r\n this.emailDataFilled(formArray,element,type,'')\r\n }\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n email: type === 'notReq' ? new FormControl('', [Validators.pattern(validatorPatterns.EMAIL)]) : new FormControl('', [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_type: ['Home'],\r\n email_id: \"\",\r\n email_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n\r\n private emailDataFilled(formArray:any, element:any,type:string,default_email_id:string){\r\n return formArray.push(this.fb.group({\r\n email: type === 'notReq' ? new FormControl(element.email, [Validators.pattern(validatorPatterns.EMAIL)]) : new FormControl(element.email, [Validators.required, Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_type: element.email_type ? element.email_type[0].toUpperCase() + element.email_type.slice(1) : '',\r\n email_id: element.email_id,\r\n email_class: \"\",\r\n isSelected: element.email_id == default_email_id ? true : \"\"\r\n }));\r\n }\r\n\r\n /* function to bind the formarray data of phone from API */\r\n public setExistingPhone(data: any, default_phone_id: string, type : string) {\r\n const formArray: any = new FormArray([]);\r\n if (data) {\r\n data.forEach((element: any) => {\r\n if (default_phone_id) {\r\n if (element.phone_id == default_phone_id) {\r\n this.phoneDataFilled(formArray,element,type,default_phone_id);\r\n }else {\r\n this.phoneDataFilled(formArray,element,type,'');\r\n }\r\n } else {\r\n this.phoneDataFilled(formArray,element,type,'');\r\n }\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n phone: type === 'notReq' ? new FormControl('', [Validators.minLength(14)]) : new FormControl('', [Validators.required, Validators.minLength(14)]),\r\n phone_type: ['Home'],\r\n phone_ext: '',\r\n phone_id: '',\r\n phone_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n\r\n private phoneDataFilled(formArray:any, element:any,type:string,default_phone_id:string){\r\n return formArray.push(this.fb.group({\r\n phone: type === 'notReq' ? new FormControl(element.phone ? this.formatPhoneNumber(element.phone) : \"\", [Validators.minLength(14)]) : new FormControl(element.phone ? this.formatPhoneNumber(element.phone) : \"\", [Validators.required, Validators.minLength(14)]),\r\n phone_type: element.phone_type ? element.phone_type[0].toUpperCase() + element.phone_type.slice(1) : '',\r\n phone_ext: element.phone_ext,\r\n phone_id: element.phone_id,\r\n phone_class: \"\",\r\n isSelected: element.phone_id == default_phone_id ? true : \"\"\r\n }));\r\n }\r\n\r\n // format the phone number\r\n private formatPhoneNumber(str: any) {\r\n //Filter only numbers from the input\r\n let cleaned = ('' + str).replace(/\\D/g, '');\r\n //Check if the input is of correct length\r\n let match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\r\n };\r\n return null\r\n }\r\n\r\n /* function to bind the formarray data of address from API */\r\n public setExistingAddress(data: any, default_address_id: string, type : string) {\r\n const formArray: any = new FormArray([]);\r\n if (data?.length > 0) {\r\n data.forEach((element: any, index:number) => {\r\n if (default_address_id) {\r\n if (element.address_id == default_address_id) {\r\n this.addressDataFilled(formArray,element,type,default_address_id);\r\n }else{\r\n this.addressDataFilled(formArray,element,type,'');\r\n }\r\n } else {\r\n this.addressDataFilled(formArray,element,type,'');\r\n }\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n address_type_id: ['Home'],\r\n address1: type === 'notReq' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n address2: '',\r\n city: type === 'notReq' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n state_id: type === 'notReq' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n zip: type === 'notReq' ? new FormControl('') : new FormControl('', [Validators.required, Validators.minLength(5)]),\r\n county: new FormControl(''),\r\n\r\n address_id: '',\r\n apo: '',\r\n country_id: '',\r\n county_fips: '',\r\n zip_4: '',\r\n address_class: [''],\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n\r\n private addressDataFilled(formArray:any, element:any,type:string,default_address_id:string){\r\n return formArray.push(this.fb.group({\r\n address_type_id: element.address_type_id ? element.address_type_id[0].toUpperCase() + element.address_type_id.slice(1) : '',\r\n address1: type === 'notReq' ? new FormControl(element.address1) : new FormControl(element.address1, [Validators.required]),\r\n address2: element.address2,\r\n city: type === 'notReq' ? new FormControl(element.city) : new FormControl(element.city, [Validators.required]),\r\n state_id: type === 'notReq' ? new FormControl(element.state_id) : new FormControl(element.state_id, [Validators.required]),\r\n zip: type === 'notReq' ? new FormControl(element.zip, [Validators.minLength(5)]) : new FormControl(element.zip, [Validators.required, Validators.minLength(5)]),\r\n county: new FormControl(element.county),\r\n\r\n address_id: element.address_id,\r\n apo: element.apo,\r\n country_id: element.country_id,\r\n county_fips: element.county_fips,\r\n zip_4: element.zip_4,\r\n address_class: [''],\r\n isSelected: element.address_id == default_address_id ? true : ''\r\n }));\r\n }\r\n\r\n /* format the social security */\r\n public formatSocialSecurity(str: any) {\r\n //Filter only numbers from the input\r\n let cleaned = ('' + str).replace(/\\D/g, '');\r\n //Check if the input is of correct length\r\n let match = cleaned.match(/^(\\d{3})(\\d{2})(\\d{4})$/);\r\n if (match) {\r\n return match[1] + '-' + match[2] + '-' + match[3];\r\n };\r\n return null\r\n }\r\n\r\n public getAddresses(addressArray: any) {\r\n return addressArray.map((element: any) => ({\r\n address_type_id: element.address_type_id,\r\n address1: element.address1,\r\n address2: element.address2,\r\n city: element.city,\r\n state_id: element.state_id,\r\n zip: element.zip,\r\n county: element.county,\r\n\r\n address_id: element.address_id,\r\n apo: element.apo,\r\n country_id: element.country_id,\r\n county_fips: element.county_fips,\r\n zip_4: element.zip_4,\r\n default_address: element.isSelected,\r\n }));\r\n }\r\n\r\n public getEmails(emailArray: any) {\r\n return emailArray.map((element: any) => ({\r\n email: element.email,\r\n email_type: element.email_type,\r\n email_id: element.email_id,\r\n default_email: element.isSelected,\r\n }));\r\n }\r\n\r\n public getPhones(phoneArray: any) {\r\n return phoneArray.map((element: any) => ({\r\n phone: element.phone.replace(/\\W/g, \"\"),\r\n phone_type: element.phone_type,\r\n phone_ext: element.phone_ext,\r\n phone_id: element.phone_id,\r\n default_phone: element.isSelected,\r\n }));\r\n }\r\n\r\n public getAdminAccountEmails(emailArray: any) {\r\n return emailArray.map((element: any) => ({\r\n email: element.email,\r\n email_type: element.email_type,\r\n email_id: element.email_id,\r\n }));\r\n }\r\n\r\n getAdminAccountPhones(phoneArray: any) {\r\n return phoneArray.map((element: any) => ({\r\n phone: element.phone.replace(/\\W/g, \"\"),\r\n phone_type: element.phone_type,\r\n phone_ext: element.phone_ext,\r\n phone_id: element.phone_id,\r\n }));\r\n }\r\n\r\n //print page functions\r\n public printContent(printContents:any){\r\n var title = \"Lead Advantage Pro\";\r\n var popupWin = window.open('', '_blank', '')!;\r\n popupWin.document.open();\r\n popupWin.document.write('' + title + '' + printContents + '');\r\n setTimeout(() => {\r\n popupWin.document.close();\r\n popupWin.focus();\r\n popupWin.print();\r\n popupWin.close();\r\n }, 300);\r\n }\r\n\r\n public getAdminAccountAddresses(addressArray: any) {\r\n return addressArray.map((element: any) => ({\r\n address_type_id: element.address_type_id,\r\n address1: element.address1,\r\n address2: element.address2,\r\n city: element.city,\r\n state_id: element.state_id,\r\n zip: element.zip,\r\n address_id: element.address_id,\r\n apo: element.apo,\r\n country_id: element.country_id,\r\n county: element.county,\r\n county_fips: element.county_fips,\r\n zip_4: element.zip_4\r\n }));\r\n }\r\n\r\n\r\n /* function to bind the formarray data of phone from API */\r\n public setExistingAdminPhone(data: any) {\r\n const formArray: any = new FormArray([]);\r\n if (data) {\r\n data.forEach((element: any) => {\r\n formArray.push(this.fb.group({\r\n phone: new FormControl(element.phone ? this.formatPhoneNumber(element.phone) : \"\", [Validators.minLength(14)]),\r\n phone_type: element.phone_type ? element.phone_type[0].toUpperCase() + element.phone_type.slice(1) : '',\r\n phone_ext: element.phone_ext,\r\n phone_id: element.phone_id,\r\n phone_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n phone: new FormControl('', [Validators.minLength(14)]),\r\n phone_type: ['Home'],\r\n phone_ext: '',\r\n phone_id: '',\r\n phone_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n\r\n /* function to bind the formarray data of email from API */\r\n public setExistingAdminEmail(data: any) {\r\n const formArray: any = new FormArray([]);\r\n if (data) {\r\n data.forEach((element: any) => {\r\n formArray.push(this.fb.group({\r\n email: new FormControl(element.email, [Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_type: element.email_type ? element.email_type[0].toUpperCase() + element.email_type.slice(1) : '',\r\n email_id: element.email_id,\r\n email_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n email: new FormControl('', [Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_type: ['Home'],\r\n email_id: \"\",\r\n email_class: \"\",\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n\r\n\r\n /* function to bind the formarray data of address from API */\r\n public setExistingAdminAddress(data: any) {\r\n const formArray: any = new FormArray([]);\r\n if (data) {\r\n data.forEach((element: any) => {\r\n formArray.push(this.fb.group({\r\n address_type_id: element.address_type_id ? element.address_type_id[0].toUpperCase() + element.address_type_id.slice(1) : '',\r\n address1: new FormControl(element.address1),\r\n address2: element.address2,\r\n city: new FormControl(element.city),\r\n state_id: new FormControl(element.state_id),\r\n zip: new FormControl(element.zip, [Validators.minLength(5)]),\r\n\r\n address_id: element.address_id,\r\n apo: element.apo,\r\n country_id: element.country_id,\r\n county_fips: element.county_fips,\r\n zip_4: element.zip_4,\r\n address_class: [''],\r\n isSelected: \"\"\r\n }));\r\n\r\n });\r\n return formArray;\r\n } else {\r\n formArray.push(this.fb.group({\r\n address_type_id: ['Home'],\r\n address1: new FormControl(''),\r\n address2: '',\r\n city: new FormControl(''),\r\n state_id: new FormControl(''),\r\n zip: new FormControl('', [ Validators.minLength(5)]),\r\n\r\n address_id: '',\r\n apo: '',\r\n country_id: '',\r\n county_fips: '',\r\n zip_4: '',\r\n address_class: [''],\r\n isSelected: \"\"\r\n }));\r\n return formArray;\r\n }\r\n }\r\n public hasPermission(permission: string) {\r\n let permissions = this.authService.user_details?.rolePermission;\r\n\r\n let index = permissions?.findIndex((x: string) => x == permission);\r\n return (index > -1);\r\n }\r\n public setMenuExpand(isExpand: boolean) {\r\n this.expand.next(isExpand);\r\n }\r\n\r\n public getMenuExpand(): Observable {\r\n return this.expand.asObservable();\r\n }\r\n\r\n public firstDayInPreviousMonth() {\r\n var date = new Date();\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() - 1);\r\n return date;\r\n }\r\n\r\n public lastDayInPreviousMonth() {\r\n var date = new Date();\r\n date.setDate(0);\r\n date.setMonth(date.getMonth());\r\n return date;\r\n }\r\n\r\n public phoneFormatter(event: any) {\r\n var x = event.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n event = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n return event;\r\n }\r\n\r\n public formatDate(date: string) {\r\n return moment(date).format('MM/DD/YYYY');\r\n }\r\n\r\n // Retrieves a feature object from StateData for a given State ID\r\n public getStateInfoByID(stateID:string) {\r\n var singleStateInfoArray = [],\r\n SingleStateInfoObject = [];\r\n singleStateInfoArray = this.state_data.filter((obj: any) => {\r\n if (obj.abbreviation === stateID.toUpperCase()) {\r\n return obj;\r\n }\r\n });\r\n if (singleStateInfoArray.length > 0) {\r\n SingleStateInfoObject = singleStateInfoArray[0]\r\n };\r\n return SingleStateInfoObject\r\n };\r\n\r\n // Returns the full state name based on a State ID\r\n public getStateNameByID(stateID:string) {\r\n var stateInfo = this.getStateInfoByID(stateID);\r\n if (stateInfo && stateInfo.name) {\r\n return stateInfo.name;\r\n }\r\n return \"\"; // Return empty string if no match is found\r\n };\r\n\r\n public displayMMMTZZDateTime(date:Date) {\r\n var abbr={\r\n CDT :'Central Time',\r\n EDT :'Eastern Time',\r\n MDT :'Mountain Time',\r\n PDT :'Pacific Time'\r\n }\r\n var newdate = moment(date).tz(\"America/Chicago\").format('MMM Do, YYYY h:mmA z');\r\n var lastPart = newdate.split(' ').pop();\r\n var changeDate;\r\n if(lastPart == 'CDT' || 'CST'){\r\n changeDate = (moment(date).tz(\"America/Chicago\").format('MMM Do, YYYY h:mmA ')) + abbr.CDT;\r\n }else if(lastPart == 'EDT' || 'EST'){\r\n changeDate = (moment(date).tz(\"America/Chicago\").format('MMM Do, YYYY h:mmA ')) + abbr.EDT;\r\n }else if(lastPart == 'MDT' || 'MST'){\r\n changeDate = (moment(date).tz(\"America/Chicago\").format('MMM Do, YYYY h:mmA ')) + abbr.MDT;\r\n }else if(lastPart == 'PDT' || 'PST'){\r\n changeDate = (moment(date).tz(\"America/Chicago\").format('MMM Do, YYYY h:mmA ')) + abbr.PDT;\r\n }\r\n return changeDate;\r\n }\r\n\r\n /* method for to display the today (if today's date exist) else MM/DD/YYYY format */\r\n public displayDate(date:Date){\r\n var mDate = moment(date);\r\n if(this.dateIsToday(mDate)){\r\n return \"Today \"+mDate.format(\"h:mmA\");\r\n } else {\r\n return mDate.format('MM/DD/YYYY');\r\n }\r\n }\r\n\r\n private dateIsToday(mDate:any){\r\n return mDate.isSame(moment(), 'd');\r\n }\r\n\r\n /* method for to display the truncate the description */\r\n public truncateChar(text: string, charLimit?:number): string {\r\n let charlimit = charLimit ? charLimit : 40;\r\n if (!text || text.length <= charlimit) {\r\n return text;\r\n }\r\n let without_html = text.replace(/<(?:.|\\n)*?>/gm, '');\r\n let shortened = without_html.substring(0, charlimit) + \"...\";\r\n return shortened;\r\n }\r\n\r\n public leadExportParseCSV(data: any, type: string) {\r\n let csv = '';\r\n let arrData = data.split('\\n');\r\n let fileName;\r\n\r\n for (let i = 0; i < arrData.length; i++) {\r\n arrData[i] = arrData[i].split(',');\r\n }\r\n\r\n for (let i = 0; i < arrData.length; i++) {\r\n let row = '';\r\n for (let index in arrData[i]) {\r\n //Dont add , in the end\r\n if (parseInt(index) == arrData[i].length - 1)\r\n row += (type === 'leadExportPDPRetension')?'' + arrData[i][index] + '' : '\"' + arrData[i][index] + '\"';\r\n else row += (type === 'leadExportPDPRetension')? '' + arrData[i][index] + ',' : '\"' + arrData[i][index] + '\",';\r\n }\r\n\r\n row.slice(0, row.length - 1);\r\n row = row.replace(/(\\r\\n|\\n|\\r)/gm, ''); //remove all carriage returns from row\r\n\r\n if (row.length > 3)\r\n //empty string has length of 3 e.g \"\",\r\n csv += row + '\\r\\n';\r\n }\r\n\r\n if (csv == '') {\r\n console.error('Invalid data');\r\n return;\r\n }\r\n\r\n const timestampFormat: string = 'YYYY-MM-DD_HHmm-ss_X';\r\n //Create a file name\r\n switch (type) {\r\n case 'multiClientRxReport':\r\n let drugFullName = arrData[1][10] //pull the drug's full name\r\n let drugShortName = drugFullName ? drugFullName.split(' ')[0] + '_' : ''; //extract the first word\r\n fileName = 'Multi_Client_Rx_Report_' + drugShortName + '_' + this.authService.getToken().user_id + '_' + moment().format(timestampFormat) + '.csv';\r\n break;\r\n case 'multiClientPharmacyReport':\r\n let pharmacyName: string = arrData[1][10] || ' '; // pull up the first record and the pharmacy name\r\n let pharmacyShortName = pharmacyName.substring(0, 3).replace(/[^a-z\\d]/i, ' '); // extract the first 3 characters and replace non-alphanumeric with spaces\r\n fileName = 'Multi_Client_Pharmacy_Report_' + pharmacyShortName + '_' + this.authService.getToken().user_id + '_' + moment().format(timestampFormat) + '.csv'\r\n break;\r\n case 'aepDisruptionReport':\r\n const requestedAgentUserID: string = arrData[1][1] || ''; // pull up the user id of the agent\r\n fileName = 'AEP_Disruption_Report_' + requestedAgentUserID + '_' + moment().format(timestampFormat) + '.csv'\r\n break;\r\n case 'leadExportPDPRetension':\r\n fileName = 'LeadExport_PDP_Retention_' + this.authService.getToken().user_id + '_' + moment().format(timestampFormat) + '.csv'\r\n break;\r\n default:\r\n fileName = 'LA_Pro_Lead_Export_' + this.authService.getToken().user_id + '_' + moment().format(timestampFormat) + '.csv';\r\n break;\r\n }\r\n\r\n var downloadLink = document.createElement('a');\r\n var blob: any = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\r\n var url = URL.createObjectURL(blob);\r\n downloadLink.href = url;\r\n downloadLink.download = fileName;\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n public unsavedChangesNotice(){\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n text: 'You have unsaved content, are you sure you want to exit?',\r\n },\r\n });\r\n dialogRef.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe((res) => {\r\n if (res) this.dialog.closeAll();\r\n });\r\n }\r\n\r\n public groupByPlanYear(data:any){\r\n return data.reduce((group:any, product:any) => {\r\n const { plan_year } = product;\r\n group[plan_year] = group[plan_year] ?? [];\r\n group[plan_year].push(product);\r\n return group;\r\n }, {});\r\n }\r\n\r\n public formDisclaimer(groupByCategory:any){\r\n let disclaimerData =\r\n '

';\r\n for (let item of Object.keys(groupByCategory)) {\r\n disclaimerData +='
1? 50% : 100%\">'\r\n +'

For Plan Year '+item+'

';\r\n for (let type of groupByCategory[item]) {\r\n disclaimerData +=\r\n '
' +\r\n '

' +\r\n type.email_disclaimer_text_with_counts\r\n '

' +\r\n '
';\r\n }\r\n disclaimerData +='
' + '
';\r\n }\r\n return disclaimerData;\r\n }\r\n\r\n public callCMSPostCall(){\r\n this.dialog.open(SingleSignOnComponent, {\r\n width: '50%',\r\n autoFocus: false,\r\n data: {\r\n 'data': {\r\n 'user_id':this.authService.getToken().user_id,\r\n 'login':this.authService.getToken().access_token\r\n },\r\n 'url': environment.CMSLink,\r\n 'quickLinkText': 'Click Continue to manually enter/update any Medicare Advantage and/or Part D Carriers / Plan Sponsors / Organizations you offer that are not displayed in your Profile on this platform. To see the carriers this platform is aware of that you offer, see your Profile. To find your Profile, click on your name on the upper right corner of any page on this platform and then select Profile. After you complete the manual entry process this platform will combine your manual entries with the Organization and Product counts calculated from the carriers listed in your Profile in order to display more accurate numbers in the CMS Disclaimer (see CMS DISCLAIMER TEXT below) emailed to beneficiaries via this platform and displayed on MA/PDP Quote Results and Lead Details screens showing how many Medicare Advantage/Part D “Organizations” and “Products” you offer in the beneficiary’s area. You can return here to Quick Links to update carriers any time by clicking on CMS - Carriers + Plans.'+\r\n '

'+\r\n 'CMS DISCLAIMER TEXT: “We do not offer every plan available in your area. Currently we represent [insert number of organizations] organizations which offer [insert number of plans] products in your area. Please contact http://Medicare.gov, 1–800–MEDICARE, or your local State Health Insurance Program to get information on all of your options.”'\r\n }\r\n });\r\n }\r\n\r\n public getQuoteURLs(filteredProducts: IProductFilter[]) {\r\n let quoteProductsURL: any = {\r\n 'partd': 'mapartd',\r\n 'medadvantage': 'mapartd',\r\n 'medsup': 'medsup',\r\n 'hospindem':'hospindem',\r\n 'dental': 'dental',\r\n 'fex': 'final',\r\n 'life': 'life',\r\n 'ltc': 'ltc',\r\n };\r\n\r\n if (filteredProducts.length > 0)\r\n filteredProducts.map(productFilter => {\r\n delete quoteProductsURL[productFilter.product_type_name];\r\n });\r\n\r\n let quoteProductsURLArray = Object.values(quoteProductsURL);\r\n const returnArray = quoteProductsURLArray\r\n .filter((value, index) => {\r\n return quoteProductsURLArray.indexOf(value) === index\r\n }) || [];\r\n\r\n return returnArray;\r\n }\r\n\r\n public reDirectQuote(type: string) {\r\n setTimeout(() => {\r\n this._leadService.leadSelected = false;\r\n this.router.navigate(['/quotes/' + type]);\r\n }, 5000);\r\n }\r\n\r\n public additionalFilterData(data: any, productType: string,leadId:string) {\r\n //AdditionalFilterData function used in MAPD and MedSup\r\n //Extract unique carrier names\r\n const uniqueCarriersArray= Array.from(new Set(data.map((item: any) => item.carrier_name)));\r\n //Sort the carrier names alphabetically, converting to lowercase for case-insensetive sorting\r\n uniqueCarriersArray.sort((a:any, b:any) => a.toLowerCase().localeCompare(b.toLowerCase()))\r\n //Create an array of unique sorted carrier_name object\r\n const carrierArray = uniqueCarriersArray.map((plan: any) => ({carrier_name: plan}));\r\n return {\r\n product_type: productType,\r\n lead_id:leadId,\r\n quoteResult: carrierArray\r\n }\r\n }\r\n\r\n public countyStateAlert(stateCounties:any[]) {\r\n let text = '';\r\n stateCounties.forEach((state:any) => {\r\n // Add state name as a header\r\n text += `\r\n

${ state.state_name }

\r\n
    `;\r\n state.counties.forEach((county: any) => {\r\n // Add each county under the respective state\r\n text += `
  • ${ county.county_name }
  • `;\r\n });\r\n });\r\n text += '
';\r\n\r\n window.scroll(0, 0);\r\n this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': '

Our system indicates that the zip code you entered has more than one county. Please verify that the correct county is selected.

' + text,\r\n 'type': 'ok'\r\n }\r\n });\r\n }\r\n }\r\n\r\n export function ValidateDate(control: AbstractControl) {\r\n if (control.value) {\r\n let date = moment(control.value).format(\"DD\");\r\n let year = moment(control.value).format('YYYY');\r\n if (date != '01' || year < '1965' || moment().add(2, 'years').format('YYYY') < year) {\r\n return { invalid: true };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n export function CheckInvalidDate(AC: AbstractControl) {\r\n if (AC && AC.value && !moment(AC.value, 'MM/DD/YYYY', true).isValid()) {\r\n return { 'dateVaidator': true };\r\n }\r\n return null;\r\n }\r\n\r\n export function CheckDobDate(control: AbstractControl) {\r\n if (control.value) {\r\n const date:any = moment(control.value);\r\n const year:any = moment(control.value).format(\"YYYY\");\r\n const today:any = moment();\r\n if (date > today || year < moment(today).year() - 130) {\r\n return { 'invalidDate': true }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n export function formatLeadExportData(data:any) {\r\n data.forEach((notice: Notice) => {\r\n if(notice?.notice_text?.match(//g, '');\r\n });\r\n return data\r\n }\r\n\r\n export function CompareStringsCaseInsensitive(str1: string, str2: string): boolean {\r\n if (str1 === null || str2 === null) return false; // Handle null values\r\n return str1.trim().localeCompare(str2.trim(), undefined, { sensitivity: 'base' }) === 0;\r\n }\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MomentService {\r\n\r\n public convertedDataArray: any;\r\n constructor(private datePipe: DatePipe) { }\r\n\r\n public serverDateTime(date: any, time?: any) {\r\n if (time) {\r\n let hours = time.split(\":\")[0];\r\n let minutes = time.split(\":\")[1];\r\n let serverDate = moment(date).set({ h: hours, m: minutes }).toISOString();\r\n return serverDate;\r\n } else {\r\n let serverDate = moment(date).toISOString();\r\n return serverDate;\r\n }\r\n }\r\n\r\n //Convert UTC times\r\n public convertAndFormatZuluTimes(dateTime: any) {\r\n this.convertedDataArray = dateTime.map((dataObj: any) => {\r\n let convertedEndTime = this.datePipe.transform(dataObj.end_time, 'MMM d, y, h:mm a', '+0000', 'en-US');\r\n let convertedStartTime = this.datePipe.transform(dataObj.start_time, 'MMM d, y, h:mm a', '+0000', 'en-US');\r\n if (dataObj.start_time != '') {\r\n let dateStartTime = new Date(dataObj.start_time);\r\n let startTime = moment(dateStartTime).tz('America/Chicago').format('HH:mm:ss');\r\n if (startTime == '00:00:00') {\r\n convertedStartTime = this.datePipe.transform(dataObj.start_time, 'MMM d, y');\r\n } else {\r\n convertedStartTime = this.datePipe.transform(dataObj.start_time, 'MMM d, y, h:mm a');\r\n }\r\n dataObj.start_time = convertedStartTime;\r\n }\r\n if (dataObj.end_time != '') {\r\n let dateEndTime = new Date(dataObj.end_time);\r\n let endTime = moment(dateEndTime).tz('America/Chicago').format('HH:mm:ss');\r\n if (endTime == '00:00:00') {\r\n convertedEndTime = this.datePipe.transform(dataObj.end_time, 'MMM d, y');\r\n } else {\r\n convertedEndTime = this.datePipe.transform(dataObj.end_time, 'MMM d, y, h:mm a');\r\n }\r\n dataObj.end_time = convertedEndTime;\r\n }\r\n return { ...dataObj, convertedStartTime, convertedEndTime };\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NOTICE_TYPE } from '@app/constants';\r\nimport { Subject } from 'rxjs';\r\nimport { INoticeMessage } from './notice-message.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastMsgService {\r\n\r\n public subject = new Subject();\r\n public isExpanded: boolean = false;\r\n\r\n private _timeout: NodeJS.Timeout;\r\n\r\n constructor() {}\r\n\r\n public showSuccess(msg: string, isFromComponent: boolean = false) {\r\n return this._showMessage({\r\n type: NOTICE_TYPE.Success,\r\n text: msg\r\n }, isFromComponent);\r\n }\r\n\r\n public showAnnouncement(msg: string, isFromComponent: boolean = false) {\r\n return this._showMessage({\r\n type: NOTICE_TYPE.Announcement,\r\n text: msg\r\n }, isFromComponent);\r\n\r\n }\r\n\r\n public showError(msg: string, isFromComponent: boolean = false) {\r\n return this._showMessage({\r\n type: NOTICE_TYPE.Alert,\r\n text: msg\r\n }, isFromComponent);\r\n\r\n }\r\n\r\n public showWarning(msg: string, isFromComponent: boolean = false) {\r\n return this._showMessage({\r\n type: NOTICE_TYPE.Warning,\r\n text: msg\r\n }, isFromComponent);\r\n\r\n }\r\n\r\n public closeNotice(msg: string) {\r\n this.subject.next({\r\n type: NOTICE_TYPE.Close,\r\n text: msg\r\n });\r\n\r\n this._clearMessage(NOTICE_TYPE.Close);\r\n }\r\n\r\n public resetMessage(): INoticeMessage {\r\n this.subject.next({\r\n type: '',\r\n text: ''\r\n });\r\n\r\n return {\r\n 'type': '',\r\n 'text': ''\r\n };\r\n }\r\n\r\n private _showMessage(\r\n msgObj: INoticeMessage,\r\n isFromComponent: boolean = false) : void | INoticeMessage {\r\n\r\n this._clearMessage();\r\n\r\n if (!isFromComponent) {\r\n this.subject.next(msgObj);\r\n this._clearMessage(msgObj.type)\r\n return;\r\n }\r\n\r\n return msgObj;\r\n }\r\n\r\n private _clearMessage(messageType?: string) {\r\n const maxTimeout: any = {\r\n 'alert': 30000,\r\n 'warning': 20000,\r\n 'success': 15000,\r\n 'announcement': 3000,\r\n }\r\n\r\n const timer = (messageType) ? maxTimeout[messageType] || 0 : 0;\r\n\r\n if (this._timeout)\r\n clearTimeout(this._timeout);\r\n\r\n this._timeout = setTimeout(() => {\r\n this.resetMessage();\r\n }, timer);\r\n }\r\n\r\n}\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MAT_CARD_CONFIG, MatCardModule } from '@angular/material/card';\r\nimport { MAT_CHECKBOX_DEFAULT_OPTIONS, MatCheckboxDefaultOptions, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MAT_TABS_CONFIG, MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipModule } from '@angular/material/tooltip';\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n MatToolbarModule,\r\n MatCardModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatAutocompleteModule,\r\n MatButtonToggleModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n MatToolbarModule,\r\n MatCardModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatButtonModule,\r\n MatAutocompleteModule,\r\n MatButtonToggleModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n DragDropModule,\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {\r\n floatLabel: 'always',\r\n appearance: 'fill',\r\n }\r\n },\r\n {\r\n provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: {\r\n hasBackdrop: true,\r\n disableClose: true,\r\n restoreFocus: true,\r\n maxWidth: '80vw'\r\n }\r\n },\r\n {\r\n provide: MAT_TABS_CONFIG, useValue: {\r\n stretchTabs: false,\r\n dynamicHeight: true,\r\n animationDuration: '0ms',\r\n }\r\n },\r\n {\r\n provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: {\r\n position: 'right',\r\n showDelay: '800'\r\n }\r\n },\r\n {\r\n provide: MAT_CARD_CONFIG, useValue: {\r\n appearance: 'outlined'\r\n }\r\n },\r\n {\r\n provide: MAT_CHECKBOX_DEFAULT_OPTIONS,\r\n useValue: { clickAction: 'check' } as MatCheckboxDefaultOptions\r\n }\r\n ]\r\n})\r\nexport class MaterialModule {}\r\n","import { CommonModule, CurrencyPipe } from '@angular/common';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { leadUtilityFunctions } from '@data/services/lead/lead-utility-functions';\r\nimport { FullCalendarModule } from '@fullcalendar/angular';\r\nimport { NgxEditorModule } from 'ngx-editor';\r\nimport { PhonePipe } from '../shared/pipes/phone.pipe';\r\nimport { DirectivesModule } from './directives/directives.module';\r\nimport { HtmlToPlaintextPipe } from './directives/HtmlToPlaintextPipe';\r\nimport { MaterialModule } from './material.module';\r\nimport { ConfirmDeleteComponent } from './modals/confirm-delete/confirm-delete.component';\r\nimport { LoadingWithTextComponent } from './modals/loading-with-text/loading-with-text.component';\r\nimport { SimpleSearchComponent } from './modals/simple-search/simple-search.component';\r\nimport { AgePipePipe } from './pipes/age-pipe.pipe';\r\nimport { ClickPhonePipe } from './pipes/click-phone.pipe';\r\nimport { sortByPipe } from './pipes/order-by-name.pipe';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { SearchPipePipe } from './pipes/search-pipe.pipe';\r\nimport { SearchPipe2Pipe } from './pipes/search-pipe2.pipe';\r\nimport { AcknowledgeConfirmDialogComponent } from './ui-components/acknowledge-confirm-dialog/acknowledge-confirm-dialog.component';\r\nimport { AddressComponent } from './ui-components/address/address.component';\r\nimport { EmailComponent } from './ui-components/email/email.component';\r\nimport { PhoneComponent } from './ui-components/phone/phone.component';\r\nimport { followUpTaskComponent } from './ui-components/followup-task/followup-task.component';\r\nimport { SmsNoticeBannerComponent } from './ui-components/sms-notice-banner/sms-notice-banner.component';\r\nimport { SmsSpinnerComponent } from './ui-components/sms-spinner/sms-spinner.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ConfirmDeleteComponent,\r\n SmsSpinnerComponent,\r\n SmsNoticeBannerComponent,\r\n SafeHtmlPipe,\r\n HtmlToPlaintextPipe,\r\n SearchPipePipe,\r\n SearchPipe2Pipe,\r\n EmailComponent,\r\n PhoneComponent,\r\n AddressComponent,\r\n followUpTaskComponent,\r\n AgePipePipe,\r\n PhonePipe,\r\n sortByPipe,\r\n LoadingWithTextComponent,\r\n SimpleSearchComponent,\r\n AcknowledgeConfirmDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MaterialModule,\r\n DirectivesModule,\r\n FullCalendarModule,\r\n NgxEditorModule,\r\n ],\r\n exports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SmsSpinnerComponent,\r\n SmsNoticeBannerComponent,\r\n MaterialModule,\r\n DirectivesModule,\r\n NgxEditorModule,\r\n SafeHtmlPipe,\r\n HtmlToPlaintextPipe,\r\n SearchPipePipe,\r\n SearchPipe2Pipe,\r\n EmailComponent,\r\n PhoneComponent,\r\n AddressComponent,\r\n followUpTaskComponent,\r\n AgePipePipe,\r\n PhonePipe,\r\n sortByPipe\r\n ],\r\n providers: [CurrencyPipe, leadUtilityFunctions, ClickPhonePipe],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedModule { }\r\n","
\r\n
\r\n

Addresses

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n Type\r\n \r\n {{content.name}}\r\n \r\n \r\n\r\n \r\n \r\n Address\r\n \r\n \r\n Please enter address\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Address 2\r\n \r\n \r\n\r\n \r\n \r\n City\r\n \r\n Please enter city\r\n \r\n\r\n \r\n \r\n State\r\n \r\n {{ el.abbreviation }}\r\n \r\n Please select state\r\n \r\n\r\n \r\n \r\n Zip\r\n \r\n Please enter correct zip\r\n \r\n\r\n \r\n \r\n County\r\n \r\n 0\" class=\"selected-county\" [value]=\"address?.value?.county\">{{ address?.value?.county }}\r\n \r\n {{ county?.county_name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, FormControl, Validators, FormGroupDirective, FormArray } from '@angular/forms'\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AdminService } from '@data/services/admin/admin.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport * as data from '@data/states.json';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'app-address',\r\n templateUrl: './address.component.html',\r\n styleUrls: ['./address.component.scss']\r\n})\r\nexport class AddressComponent implements OnInit {\r\n private isErrorSubs: Subscription;\r\n private leadLedgerSubs: Subscription;\r\n private formArraySubs: Subscription;\r\n private countiesByZipSubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n private checkedIndex: number;\r\n private deletedItems: any = [];\r\n public addressForm: UntypedFormGroup;\r\n public address_content = [\r\n {\r\n name: 'Home',\r\n isSelected: false\r\n }, {\r\n name: 'Billing',\r\n isSelected: false\r\n }, {\r\n name: 'Business',\r\n isSelected: false\r\n }, {\r\n name: 'Mailing',\r\n isSelected: false\r\n }, {\r\n name: 'Other',\r\n isSelected: false\r\n }\r\n ];\r\n public submitted: boolean = false;\r\n public hasChange: boolean = false;\r\n public state_data: any = [];\r\n @Input() formArrayName: string;\r\n public addresseListArr: FormArray;\r\n @Input() type!: string;\r\n public countiesData: any = [];\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private rootFormGroup: FormGroupDirective,\r\n private leadService: LeadService,\r\n private adminService: AdminService,\r\n private commonService: CommonService,\r\n public dialog: MatDialog,\r\n ) {\r\n this.isErrorSubs = this.leadService.getErrorAlert().subscribe(response => {\r\n if (response) {\r\n this.submitted = true;\r\n if (this.addresseListArr) {\r\n this.addresseListArr.controls.find((x: any) => {\r\n if (x.controls.address1.status) { x.controls.address1.touched = true }\r\n if (x.controls.city.status) { x.controls.city.touched = true }\r\n if (x.controls.state_id.status) { x.controls.state_id.touched = true }\r\n if (x.controls.zip.status) { x.controls.zip.touched = true }\r\n })\r\n }\r\n }\r\n });\r\n this.leadLedgerSubs = this.leadService.getLeadLedger().subscribe(response => {\r\n this.addressForm = this.rootFormGroup.control;\r\n this.addresseListArr = this.addressForm.get(this.formArrayName) as FormArray;\r\n })\r\n this.formArraySubs = this.adminService.getAdminFormArray().subscribe(response => {\r\n this.addressForm = this.rootFormGroup.control;\r\n this.addresseListArr = this.addressForm.get(this.formArrayName) as FormArray;\r\n });\r\n /* code for to refresh the delete itmes */\r\n this.leadService.getFormChangeAlert().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'clearArray') {\r\n this.deletedItems = [];\r\n if (this.addresseListArr?.value?.length) {\r\n this.addresseListArr.value.forEach((element: any) => {\r\n this.address_content.forEach((ele: any) => {\r\n if (element.phone_type == ele.name) {\r\n ele['isSelected'] = ele.name == 'Other' ? false : true;\r\n } else {\r\n ele['isSelected'] = false;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n })\r\n\r\n /* code for to add the line through when add the phone || address */\r\n this.leadService.getCrossedItems().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'emailAdded' || elem == 'phoneAdded') {\r\n this.addressForm = this.rootFormGroup.control;\r\n this.addresseListArr = this.addressForm.get(this.formArrayName) as FormArray;\r\n if (this.addresseListArr?.value) {\r\n this.addresseListArr?.value.forEach((element: any, index: number) => {\r\n this.deletedItems.forEach((ele: number) => {\r\n if (index == ele) {\r\n element['address_class'] = 'true'\r\n }\r\n });\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.state_data = (data as any).default;\r\n this.addressForm = this.rootFormGroup.control;\r\n this.addresseListArr = this.addressForm.get(this.formArrayName) as FormArray;\r\n if (!this.addresseListArr?.value?.length) {\r\n this.addAddressType({ name: 'Home' });\r\n } else {\r\n this.addresseListArr.value.forEach((element: any) => {\r\n this.address_content.forEach((ele: any) => {\r\n if (element.address_type_id == ele.name) {\r\n ele['isSelected'] = ele.name == 'Other' ? false : true;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n // ::::::::::::::::::::::::::::: add address functionality ::::::::::::::::::::::::::::: //\r\n\r\n public addAddressType(addressType: any) {\r\n this.addresses.push(\r\n this.fb.group({\r\n address_type_id: addressType.name,\r\n address1: this.type != 'profile' && this.type != 'add-user' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n address2: '',\r\n city: this.type != 'profile' && this.type != 'add-user' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n state_id: this.type != 'profile' && this.type != 'add-user' ? new FormControl('') : new FormControl('', [Validators.required]),\r\n zip: this.type != 'profile' && this.type != 'add-user' ? new FormControl('') : new FormControl('', [Validators.required, Validators.minLength(5)]),\r\n county: new FormControl(''),\r\n\r\n address_id: [''],\r\n apo: [''],\r\n country_id: [''],\r\n county_fips: [''],\r\n zip_4: [''],\r\n address_class: [''],\r\n isSelected: \"\"\r\n })\r\n );\r\n addressType.isSelected = addressType.name == 'Other' ? false : true;\r\n /* code to select the previous default address when adding new address */\r\n this.addresseListArr.value.find((x: any, i: number) => {\r\n if (this.checkedIndex) {\r\n if (i == this.checkedIndex) {\r\n x.isSelected = true;\r\n } else {\r\n x.isSelected = false\r\n }\r\n }\r\n if (this.deletedItems.includes(i)) {\r\n x.address_class = \"true\"\r\n } else {\r\n x.address_class = \"\"\r\n }\r\n })\r\n this.leadService.setCrossedItems('addressAdded');\r\n }\r\n\r\n public get addresses(): UntypedFormArray {\r\n return this.addressForm.get(\"addresses\") as UntypedFormArray\r\n }\r\n\r\n\r\n // ::::::::::::::::::::::::::::: end address functionality ::::::::::::::::::::::::::::: //\r\n\r\n //function to Strike-through the address value\r\n public clearAddress(value: any, index: number) {\r\n this.hasChange = true;\r\n value.address_class = \"true\";\r\n this.deletedItems.push(index)\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n //function to undo Strike-through the address value\r\n public refreshAddress(value: any, index: number) {\r\n if (this.deletedItems.includes(index)) {\r\n this.deletedItems.splice(index)\r\n }\r\n value.address_class = \"\";\r\n this.leadService.sendFormChangeAlert('');\r\n }\r\n\r\n //function called when checkbox is unchecked for address\r\n public addressCheckBoxvalue(checkbox: any, item: any, index: number) {\r\n this.hasChange = true;\r\n this.addresses.value.forEach((val: any) => {\r\n if (val.address_id == item.address_id) {\r\n this.checkedIndex = index;\r\n val.isSelected = !val.isSelected;\r\n } else {\r\n val.isSelected = false;\r\n }\r\n });\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n // get countries according to zip code\r\n public getCounties(i: number, element: any, alert: boolean) {\r\n if (this.addresseListArr.controls[i]?.value?.zip?.length == 5) {\r\n this.countiesByZipSubs = this.leadService.getCountiesByZip(this.addresseListArr.controls[i]?.value?.zip).subscribe({\r\n next: (res: any) => {\r\n if (res.length > 0) {\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": '', \"county\": '' });\r\n this.countiesData = res || [];\r\n if (this.countiesData?.length) {\r\n if (this.countiesData?.length < 2) {\r\n if (this.countiesData[0]?.counties.length < 2) {\r\n /* set county and state's value according to zip code */\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": this.countiesData[0]?.state_id, \"county\": this.countiesData[0]?.counties[0]?.county_name });\r\n } else {\r\n /* set state's value according to zip code */\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": this.countiesData[0]?.state_id });\r\n if (element.county) {\r\n this.addresseListArr.controls[i].patchValue({ \"county\": element.county });\r\n }\r\n if (alert) {\r\n this.commonService.countyStateAlert(this.countiesData)\r\n }\r\n }\r\n } else {\r\n if (alert) {\r\n this.commonService.countyStateAlert(this.countiesData)\r\n }\r\n if (element.county) {\r\n this.addresseListArr.controls[i].patchValue({ \"county\": element.county });\r\n this.changeOption(element, i)\r\n }\r\n }\r\n }\r\n } else {\r\n const dialogRef = this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'The zip code you entered (' + this.addresseListArr.controls[i]?.value?.zip + ') cannot be found in our system.',\r\n 'type': 'ok'\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": '', \"county\": '', \"zip\": '' });\r\n })\r\n }\r\n }, error: (err: any) => {\r\n\r\n }\r\n });\r\n } else {\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": '', \"county\": '' });\r\n }\r\n }\r\n\r\n public changeOption(country: any, i: number) {\r\n this.addresseListArr.controls[i].patchValue({ \"state_id\": country.state_id });\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n if (this.isErrorSubs) this.isErrorSubs.unsubscribe();\r\n if (this.leadLedgerSubs) this.leadLedgerSubs.unsubscribe();\r\n if (this.formArraySubs) this.formArraySubs.unsubscribe();\r\n if (this.countiesByZipSubs) this.countiesByZipSubs.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Emails

\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Type\r\n \r\n {{content.name}}\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n Please enter correct email\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, FormControl, Validators, FormGroupDirective, FormArray } from '@angular/forms'\r\nimport { validatorPatterns } from '@app/constants';\r\nimport { AdminService } from '@data/services/admin/admin.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'app-email',\r\n templateUrl: './email.component.html',\r\n styleUrls: ['./email.component.scss']\r\n})\r\nexport class EmailComponent implements OnInit {\r\n private isErrorSubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n private checkedIndex: number;\r\n private deletedItems: any = [];\r\n private getLeadLedgerSubs: Subscription;\r\n private getAdminFormArraySubs: Subscription;\r\n public emailForm: UntypedFormGroup;\r\n public email_content = [{\r\n name: 'Home',\r\n isSelected: false\r\n }, {\r\n name: 'Other',\r\n isSelected: false\r\n }, {\r\n name: 'Work',\r\n isSelected: false\r\n }];\r\n public submitted: boolean = false;\r\n public hasChange: boolean = false;\r\n @Input() formArrayName!: string;\r\n public emailListArr!: FormArray;\r\n @Input() type!: string;\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private rootFormGroup: FormGroupDirective,\r\n private leadService: LeadService,\r\n private adminService: AdminService\r\n ) {\r\n this.isErrorSubs = this.leadService.getErrorAlert().subscribe(response => {\r\n if (response) {\r\n this.submitted = true;\r\n if (this.emailListArr) {\r\n this.emailListArr.controls.find((x: any) => {\r\n if (x.controls.email.status) { x.controls.email.touched = true }\r\n })\r\n }\r\n }\r\n })\r\n this.getLeadLedgerSubs = this.leadService.getLeadLedger().subscribe(response => {\r\n this.emailForm = this.rootFormGroup.control;\r\n this.emailListArr = this.emailForm.get(this.formArrayName) as FormArray;\r\n });\r\n this.getAdminFormArraySubs = this.adminService.getAdminFormArray().subscribe(response => {\r\n this.emailForm = this.rootFormGroup.control;\r\n this.emailListArr = this.emailForm.get(this.formArrayName) as FormArray;\r\n });\r\n /* code for to refresh the delete itmes */\r\n this.leadService.getFormChangeAlert().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'clearArray') {\r\n this.deletedItems = [];\r\n if (this.emailListArr?.value?.length) {\r\n this.emailListArr.value.forEach((element: any) => {\r\n this.email_content.forEach((ele: any) => {\r\n if (element.phone_type == ele.name) {\r\n ele['isSelected'] = ele.name == 'Other' ? false : true;\r\n } else {\r\n ele['isSelected'] = false;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n\r\n /* code for to add the line through when add the phone || address */\r\n this.leadService.getCrossedItems().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'phoneAdded' || elem == 'addressAdded') {\r\n this.emailForm = this.rootFormGroup.control;\r\n this.emailListArr = this.emailForm.get(this.formArrayName) as FormArray;\r\n if (this.emailListArr?.value) {\r\n this.emailListArr?.value.forEach((element: any, index: number) => {\r\n this.deletedItems.forEach((ele: number) => {\r\n if (index == ele) {\r\n element['email_class'] = 'true'\r\n }\r\n });\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.emailForm = this.rootFormGroup.control;\r\n this.emailListArr = this.emailForm.get(this.formArrayName) as FormArray;\r\n if (!this.emailListArr?.value?.length) {\r\n this.addEmailType({ name: 'Home' });\r\n } else {\r\n this.emailListArr.value.forEach((element: any) => {\r\n this.email_content.forEach((ele: any) => {\r\n if (element.email_type == ele.name) {\r\n ele['isSelected'] = ele.name == 'Other' ? false : true;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n public addEmailType(emailType: any) {\r\n this.emails.push(\r\n this.fb.group({\r\n email_type: emailType.name,\r\n email: new FormControl('', [Validators.pattern(validatorPatterns.EMAIL)]),\r\n email_id: [''],\r\n email_class: [''],\r\n isSelected: \"\"\r\n })\r\n );\r\n emailType.isSelected = emailType.name == 'Other' ? false : true;\r\n /* code to select the previous default email when adding new email */\r\n this.emailListArr.value.find((x: any, i: number) => {\r\n if (this.checkedIndex) {\r\n if (i == this.checkedIndex) {\r\n x.isSelected = true;\r\n } else {\r\n x.isSelected = false\r\n }\r\n }\r\n if (this.deletedItems.includes(i)) {\r\n x.email_class = \"true\"\r\n } else {\r\n x.email_class = \"\"\r\n }\r\n })\r\n this.leadService.setCrossedItems('emailAdded');\r\n }\r\n\r\n public get emails(): UntypedFormArray {\r\n return this.emailForm.get(\"emails\") as UntypedFormArray\r\n }\r\n\r\n //function to Strike-through the email value\r\n public clearEmail(value: any, index: number) {\r\n this.hasChange = true;\r\n value.email_class = \"true\";\r\n this.deletedItems.push(index)\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n //function to undo Strike-through the email value\r\n public refreshEmail(value: any, index: number) {\r\n if (this.deletedItems.includes(index)) {\r\n this.deletedItems.splice(index)\r\n }\r\n value.email_class = \"\";\r\n this.leadService.sendFormChangeAlert('');\r\n }\r\n\r\n //function called when checkbox is unchecked for email\r\n public emailCheckBoxvalue(checkbox: any, item: any, index: number) {\r\n this.hasChange = true;\r\n this.emails.value.forEach((val: any) => {\r\n if (val.email == item.email) {\r\n this.checkedIndex = index;\r\n val.isSelected = !val.isSelected;\r\n } else {\r\n val.isSelected = false;\r\n }\r\n });\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n if (this.isErrorSubs) this.isErrorSubs.unsubscribe();\r\n if (this.getLeadLedgerSubs) this.getLeadLedgerSubs.unsubscribe();\r\n if (this.getAdminFormArraySubs) this.getAdminFormArraySubs.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n

Phones

\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n Type\r\n \r\n {{content.text}}\r\n \r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n Please enter correct phone number\r\n \r\n \r\n \r\n Ext ...\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, FormControl, Validators, FormGroupDirective, FormArray } from '@angular/forms'\r\nimport { PHONE_TYPES } from '@app/constants';\r\nimport { AdminService } from '@data/services/admin/admin.service';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'app-phone',\r\n templateUrl: './phone.component.html',\r\n styleUrls: ['./phone.component.scss']\r\n})\r\nexport class PhoneComponent implements OnInit {\r\n private isErrorSubs: Subscription;\r\n private getLeadLedgerSubs: Subscription;\r\n private getAdminFormArraySubs: Subscription;\r\n private _componentDestroyed$ = new Subject();\r\n private checkedIndex: number;\r\n private deletedItems: any = [];\r\n public phoneForm: UntypedFormGroup;\r\n public phone_content = PHONE_TYPES;\r\n public submitted: boolean = false;\r\n public hasChange: boolean = false;\r\n @Input() formArrayName!: string;\r\n @Input() type!: string;\r\n public phonesListArr!: FormArray;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private rootFormGroup: FormGroupDirective,\r\n private leadService: LeadService,\r\n private adminService: AdminService\r\n ) {\r\n this.isErrorSubs = this.leadService.getErrorAlert().subscribe(response => {\r\n if (response) {\r\n this.submitted = true;\r\n if (this.phonesListArr) {\r\n this.phonesListArr.controls.find((x: any) => {\r\n if (x.controls.phone.status) { x.controls.phone.touched = true }\r\n })\r\n }\r\n }\r\n });\r\n this.getLeadLedgerSubs = this.leadService.getLeadLedger().subscribe(response => {\r\n this.phoneForm = this.rootFormGroup.control;\r\n this.phonesListArr = this.phoneForm.get(this.formArrayName) as FormArray;\r\n });\r\n this.getAdminFormArraySubs = this.adminService.getAdminFormArray().subscribe(response => {\r\n this.phoneForm = this.rootFormGroup.control;\r\n this.phonesListArr = this.phoneForm.get(this.formArrayName) as FormArray;\r\n });\r\n /* code for to refresh the delete itmes */\r\n this.leadService.getFormChangeAlert().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'clearArray') {\r\n this.deletedItems = [];\r\n if (this.phonesListArr?.value?.length) {\r\n this.phonesListArr.value.forEach((element: any) => {\r\n this.phone_content.forEach((ele: any) => {\r\n if (element.phone_type == ele.text) {\r\n ele['isSelected'] = ele.text == 'Other' ? false : true;\r\n } else {\r\n ele['isSelected'] = false;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n })\r\n\r\n /* code for to add the line through when add the email || address */\r\n this.leadService.getCrossedItems().pipe(takeUntil(this._componentDestroyed$)).subscribe((elem: string) => {\r\n if (elem == 'emailAdded' || elem == 'addressAdded') {\r\n this.phoneForm = this.rootFormGroup.control;\r\n this.phonesListArr = this.phoneForm.get(this.formArrayName) as FormArray;\r\n if (this.phonesListArr?.value) {\r\n this.phonesListArr?.value.forEach((element: any, index: number) => {\r\n this.deletedItems.forEach((ele: number) => {\r\n if (index == ele) {\r\n element['phone_class'] = 'true'\r\n }\r\n });\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n this.phoneForm = this.rootFormGroup.control;\r\n this.phonesListArr = this.phoneForm.get(this.formArrayName) as FormArray;\r\n if (!this.phonesListArr?.value?.length) {\r\n this.addPhoneType({ text: 'Home' });\r\n } else {\r\n this.phonesListArr.value.forEach((element: any) => {\r\n this.phone_content.forEach((ele: any) => {\r\n if (element.phone_type == ele.text) {\r\n ele['isSelected'] = ele.text == 'Other' ? false : true;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n // ::::::::::::::::::::::::::::: add phone functionality ::::::::::::::::::::::::::::: //\r\n\r\n public addPhoneType(phoneType: any) {\r\n this.phones.push(\r\n this.fb.group({\r\n phone_type: phoneType.text,\r\n phone: new FormControl('', [Validators.minLength(14)]),\r\n phone_ext: [''],\r\n phone_id: [''],\r\n phone_class: [''],\r\n isSelected: \"\",\r\n isDisabled: true\r\n })\r\n );\r\n phoneType.isSelected = phoneType.text == 'Other' ? false : true;\r\n /* code to select the previous default phone when adding new phone */\r\n this.phonesListArr.value.find((x: any, i: number) => {\r\n if (this.checkedIndex) {\r\n if (i == this.checkedIndex) {\r\n x.isSelected = true;\r\n } else {\r\n x.isSelected = false\r\n }\r\n }\r\n if (this.deletedItems.includes(i)) {\r\n x.phone_class = \"true\"\r\n } else {\r\n x.phone_class = \"\"\r\n }\r\n })\r\n this.leadService.setCrossedItems('phoneAdded');\r\n }\r\n\r\n public get phones(): UntypedFormArray {\r\n return this.phoneForm.get(\"phones\") as UntypedFormArray\r\n }\r\n\r\n // ::::::::::::::::::::::::::::: end phone functionality ::::::::::::::::::::::::::::: //\r\n\r\n //function to Strike-through the phone value\r\n public clearPhone(value: any, index: number) {\r\n this.hasChange = true;\r\n value.phone_class = \"true\";\r\n this.deletedItems.push(index)\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n //function to undo Strike-through the phone value\r\n public refreshPhone(value: any, index: number) {\r\n if (this.deletedItems.includes(index)) {\r\n this.deletedItems.splice(index)\r\n }\r\n value.phone_class = \"\";\r\n this.leadService.sendFormChangeAlert('');\r\n\r\n }\r\n\r\n //function called when checkbox is unchecked for phone\r\n public phoneCheckBoxvalue(checkbox: any, item: any, index: number) {\r\n this.hasChange = true;\r\n this.phones.value.forEach((val: any) => {\r\n if (val.phone == item.phone && val.phone_type == item.phone_type) {\r\n this.checkedIndex = index;\r\n val.isSelected = !val.isSelected;\r\n\r\n } else {\r\n val.isSelected = false;\r\n }\r\n });\r\n this.leadService.sendFormChangeAlert('valueChange');\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.isErrorSubs) this.isErrorSubs.unsubscribe();\r\n if (this.getLeadLedgerSubs) this.getLeadLedgerSubs.unsubscribe();\r\n if (this.getAdminFormArraySubs) this.getAdminFormArraySubs.unsubscribe();\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n warning\r\n check_circle\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sms-notice-banner',\r\n templateUrl: './sms-notice-banner.component.html',\r\n styleUrls: ['./sms-notice-banner.component.scss']\r\n})\r\nexport class SmsNoticeBannerComponent implements OnInit {\r\n @Input() public type: string = 'announcement';\r\n @Input() public showIcon: boolean = true;\r\n @Input() public position: string = 'static';\r\n @Input() public canDismiss: boolean = true;\r\n @Output() public closeBanner = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges() { }\r\n\r\n public closeNotice() {\r\n this.closeBanner.emit(true);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ data }}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sms-spinner',\r\n templateUrl: './sms-spinner.component.html',\r\n styleUrls: ['./sms-spinner.component.scss'],\r\n})\r\nexport class SmsSpinnerComponent implements OnInit {\r\n // Accepted values: sm, 2x, 3x\r\n @Input() public data: string = '';\r\n @Input() public size: string = '';\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","import { Environment } from \"@shared/interfaces/environment.interface\";\r\n\r\nexport const environment: Environment = {\r\n production: true,\r\n env: \"PROD\",\r\n authClient: \"https://authorize.leadadvantagepro.com/\",\r\n api: \"https://api.leadadvantagepro.com/api/\",\r\n registrationApi: \"https://api.leadadvantagepro.com/\",\r\n insfire: \"https://www.insfiretech.com/\",\r\n PEPro: \"https://planexplorer.leadadvantagepro.com/\",\r\n PEAPI: \"https://planexplorerapi.leadadvantagepro.com/\",\r\n INSURACTIVE_ACCOUNT_ID: \"11229\",\r\n PROTECTOR_PLUS_DENTAL: \"https://myplan.ameritas.com/ppd/id/\",\r\n TO: \"lapro_issue@leadadvantage.atlassian.net\",\r\n CC: \"internetmarketing@seniormarketsales.com\",\r\n JIRA_EMAIL : 'lapro_issue@leadadvantage.atlassian.net',\r\n INTERNET_MARKETING_EMAIL : 'internetmarketing@seniormarketsales.com',\r\n SENDER_EMAIL : 'message@insfiretech.com',\r\n CMSLink: 'https://cmscheck.seniormarketsales.com/mycarriers',\r\n launchDarklyClientId: '659ee04b6fb21a1099286919',\r\n SSP_URL: 'https://authorize.leadadvantagepro.com/SelfService/',\r\n};\r\n","import { AuthService } from \"@app/service/auth.service\";\r\nimport { UserService } from \"@data/services/user/user.service\";\r\nimport { LaunchdarklyService } from \"@shared/services/LaunchDarkly/launchdarkly.service\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { first } from \"rxjs\";\r\n\r\nexport function initializeAppFactory(\r\n _authService: AuthService,\r\n _launchDarklySvc: LaunchdarklyService,\r\n _userSvc: UserService,\r\n _cookieService: CookieService,\r\n): () => Promise {\r\n\r\n return (): Promise => {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n const currentPage = window.location.pathname;\r\n if (currentPage !== '/registration.html')\r\n _authService.setCookie();\r\n\r\n let userId = _authService?.getToken()?.user_id;\r\n if (userId)\r\n _userSvc.getUserView(userId)\r\n .pipe(first())\r\n .subscribe({\r\n next: userDetails => _launchDarklySvc.init(userDetails) ? resolve(true) : reject(false)\r\n })\r\n\r\n else\r\n _launchDarklySvc.init(null) ? resolve(true) : reject(false)\r\n\r\n\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n };\r\n};","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

The page you are exploring has not been planned yet.

\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-server-error',\r\n templateUrl: './server-error.component.html',\r\n styleUrls: ['./server-error.component.scss']\r\n})\r\nexport class ServerErrorComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

\r\n We're sorry. We're currently exploring the root cause of this unplanned\r\n downtime.\r\n

\r\n

Please plan to try again later.

\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-down-for-maintenance',\r\n templateUrl: './down-for-maintenance.component.html',\r\n styleUrls: ['./down-for-maintenance.component.scss']\r\n})\r\nexport class DownForMaintenanceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

\r\n We're sorry. We're on a planned exploration to better your experience.\r\n

\r\n

Please plan to try again later.

\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { environment } from '@env/environment';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LaunchdarklyService } from '@shared/services/LaunchDarkly/launchdarkly.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthGuard {\r\n constructor(\r\n private cookieService: CookieService,\r\n private _authService: AuthService,\r\n private _launchDarklySvc: LaunchdarklyService,\r\n ) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): | Observable | Promise | boolean | UrlTree {\r\n if (!this.cookieService.get('LAWEB')) {\r\n this._authService.redirectToAuth();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, UrlMatcher } from '@angular/router';\r\nimport { PageNotFoundComponent } from '../app/core/error/pages/page-not-found/page-not-found.component';\r\nimport { ServerErrorComponent } from '../app/core/error/pages/server-error/server-error.component';\r\nimport { DownForMaintenanceComponent } from '../app/core/error/pages/down-for-maintenance/down-for-maintenance.component';\r\nimport { AuthGuard } from '@app/guard/auth.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n matcher: (url) => {\r\n return (url.length === 1 && url[0].path.match(/^registration.*/gm))\r\n ? { consumed: url }\r\n : null;\r\n },\r\n loadChildren: () =>\r\n import('./modules/registration/registration.module').then((m) => m.RegistrationModule),\r\n },\r\n {\r\n path: 'integration',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/integration/integration.module').then((m) => m.IntegrationModule)\r\n },\r\n {\r\n path: 'lead',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/lead/lead.module').then((m) => m.LeadModule),\r\n },\r\n {\r\n path: 'calendar',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/calendar/calendar.module').then((m) => m.CalendarModule),\r\n },\r\n {\r\n path: 'quotes',\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import('./modules/quotes/quotes.module').then(m => m.QuotesModule),\r\n },\r\n {\r\n path: 'forms/:tabName',\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import('./modules/forms/forms.module').then(m => m.FormsModule),\r\n },\r\n {\r\n path: 'reports',\r\n canActivate: [AuthGuard],\r\n loadChildren: () => import('./modules/reports/reports.module').then(m => m.ReportsModule)\r\n },\r\n {\r\n path: 'admin',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/admin/admin.module').then((m) => m.AdminModule),\r\n },\r\n {\r\n path: 'help',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/help/help.module').then((m) => m.HelpModule)\r\n },\r\n {\r\n path: 'privacy_policy',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/privacy-policy/privacy-policy.module').then((m) => m.PrivacyPolicyModule)\r\n },\r\n {\r\n path: '',\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./modules/dashboard/dashboard.module').then((m) => m.DashboardModule),\r\n },\r\n {\r\n path: '404',\r\n pathMatch: 'full',\r\n component: PageNotFoundComponent,\r\n },\r\n {\r\n path: '500',\r\n pathMatch: 'full',\r\n component: ServerErrorComponent,\r\n },\r\n {\r\n path: 'down-for-maintenance',\r\n pathMatch: 'full',\r\n component: DownForMaintenanceComponent,\r\n },\r\n // {\r\n // \tpath: \"**\",\r\n // \tpathMatch: \"full\",\r\n // \tcomponent: PageNotFoundComponent,\r\n // },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, {\r\n scrollPositionRestoration: 'enabled',\r\n onSameUrlNavigation: 'reload',\r\n // enableTracing: true,\r\n }),\r\n ],\r\n exports: [RouterModule],\r\n\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { ReportsService } from '@data/services/reports/reports.service';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { first, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n constructor(\r\n private _leadService: LeadService,\r\n private _reportService: ReportsService,\r\n private _commonService: CommonService,\r\n ) { }\r\n\r\n public getExportType(noticeTitle: string): string {\r\n let exportType: string = 'leadExport';\r\n\r\n switch (noticeTitle) {\r\n case 'Lead Export Current':\r\n exportType = 'leadCurrentPlan';\r\n break;\r\n\r\n case 'Multi-Client Rx Report':\r\n exportType = 'multiClientRxReport';\r\n break;\r\n\r\n case 'Multi-Client Pharmacy Report':\r\n exportType = 'multiClientPharmacyReport';\r\n break;\r\n\r\n case 'PDP Retention Report':\r\n exportType = 'leadExportPDPRetention';\r\n break;\r\n\r\n case 'AEP Disruption Report':\r\n exportType = 'aepDisruptionReport';\r\n break;\r\n\r\n default:\r\n exportType = 'leadExport';\r\n break;\r\n }\r\n\r\n return exportType;\r\n }\r\n\r\n public processExportDownloadNotification(exportType: string, notificationID: string, onError: Function) {\r\n let downloadExportSub$: Observable = this._leadService.downloadExportFile(notificationID);\r\n\r\n switch (exportType) {\r\n case 'leadCurrentPlan':\r\n downloadExportSub$ = this._leadService.downloadLeadExportCurrentFile(notificationID)\r\n break;\r\n case 'multiClientRxReport':\r\n downloadExportSub$ = this._reportService.downloadLeadsByDrug(notificationID)\r\n break;\r\n case 'multiClientPharmacyReport':\r\n downloadExportSub$ = this._reportService.downloadLeadsByPharmacy(notificationID)\r\n break;\r\n case 'aepDisruptionReport':\r\n downloadExportSub$ = this._reportService.downloadLeadsByDisruption(notificationID)\r\n break;\r\n case 'leadExportPDPRetention':\r\n downloadExportSub$ = this._leadService.downloadExportPDPFile(notificationID)\r\n exportType = 'leadExportPDPRetention';\r\n break;\r\n default:\r\n downloadExportSub$ = this._leadService.downloadExportFile(notificationID)\r\n break;\r\n }\r\n\r\n this._parseCSV(downloadExportSub$, exportType, onError)\r\n }\r\n\r\n private _parseCSV(downloadExportSub$: Observable, type: string, onError: Function) {\r\n downloadExportSub$.pipe(first())\r\n .subscribe({\r\n next: res => { this._commonService.leadExportParseCSV(res, type) },\r\n error: err => { onError.call(err.error.message) }\r\n });\r\n };\r\n\r\n}\r\n","
\r\n
\r\n

Important Notice

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

{{ errorMsg }}

\r\n\r\n
\r\n Read during this session\r\n Posted \r\n
\r\n\r\n
\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n","import { Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Notice } from '@data/notice/notice.interface';\r\nimport { NotificationService } from '@data/notification/notification.service';\r\nimport { HeaderService } from '@data/services/header/header.service';\r\nimport { CommonService, formatLeadExportData } from '@shared/services/common/common.service';\r\nimport moment from 'moment';\r\nimport { first, Subscription } from 'rxjs';\r\n@Component({\r\n selector: 'app-important-notice',\r\n templateUrl: './important-notice.component.html',\r\n styleUrls: ['./important-notice.component.scss'],\r\n})\r\nexport class ImportantNoticeComponent implements OnInit {\r\n private dismissNoticeSubs: Subscription;\r\n public notice: Notice;\r\n public errorMsg: string | null = null;\r\n @ViewChild('leadExportDiv') csvDownloadLinkDiv: ElementRef;\r\n\r\n constructor(\r\n private headerService: HeaderService,\r\n private commonService: CommonService,\r\n private dialogRef: MatDialogRef,\r\n private _notificationService: NotificationService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n @HostListener('click', ['$event.target']) public onClick(targetElement: any) {\r\n const notificationID = targetElement.getAttribute('id') || null;\r\n let exportType = this._notificationService.getExportType(this.notice.notice_title || '');\r\n\r\n if (this.csvDownloadLinkDiv?.nativeElement?.contains(targetElement) && notificationID) {\r\n this._notificationService.processExportDownloadNotification(exportType, notificationID, (this.showErrorMessage).bind(this));\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.data = formatLeadExportData(this.data);\r\n this.getQuickNotify();\r\n }\r\n\r\n public checkForCMS(notice: Notice) {\r\n if (\r\n notice?.notice_title?.indexOf(\r\n 'IMPORTANT COMPLIANCE INFORMATION – CMS DISCLAIMER'\r\n ) != -1\r\n )\r\n this.commonService.callCMSPostCall();\r\n }\r\n /* get the quick notification message details */\r\n private getQuickNotify() {\r\n this.notice = this.data[0];\r\n }\r\n\r\n /* displaying the message when post is read and posted time */\r\n public displayedMessageFrom(toDate: any) {\r\n //get the moment time from but show \"today\" for anything less than a day ago\r\n var momentFrom = moment(toDate).fromNow();\r\n if (\r\n momentFrom.indexOf('second') > -1 ||\r\n momentFrom.indexOf('minute') > -1 ||\r\n momentFrom.indexOf('hour') > -1\r\n )\r\n return 'today';\r\n else return momentFrom;\r\n }\r\n\r\n /* dismiss the notification when close the popup */\r\n public dismissNotify(noticeid: string) {\r\n let data = {\r\n notice_ids: [noticeid],\r\n };\r\n this.dismissNoticeSubs = this.headerService\r\n .dismissNotice(data)\r\n .pipe(first())\r\n .subscribe({\r\n next: (response) => {\r\n this.headerService.sendNotifyAlert('dismissNotify');\r\n this.dialogRef.close();\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {\r\n this.dismissNoticeSubs.unsubscribe();\r\n },\r\n });\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.errorMsg = errorMsg;\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, 30000);\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, timer);\r\n }\r\n}\r\n","
\r\n
\r\n

Notices

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

{{ errorMsg }}

\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n star\r\n error\r\n \r\n {{ commonService.truncateChar(data.notice_title, 46) }}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n

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

There are no unread messages. You can access your notification history by selecting \"Load Past Notices\" on the left.

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

Read

\r\n

Posted

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

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, ElementRef, HostListener, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Notice } from '@data/notice/notice.interface';\r\nimport { NotificationService } from '@data/notification/notification.service';\r\nimport { HeaderService } from '@data/services/header/header.service';\r\nimport { CommonService, formatLeadExportData } from '@shared/services/common/common.service';\r\nimport moment from 'moment';\r\nimport { groupBy, map, mergeMap, of, reduce, Subscription, toArray } from 'rxjs';\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n private dismissNoticeSubs: Subscription;\r\n private getUserNoticeSubs: Subscription;\r\n private noticeTODismiss: any = [];\r\n private page_number: number = 0;\r\n public data: any = [];\r\n public notice: Notice;\r\n public parentIndex: number = 0;\r\n public childIndex: number = 0;\r\n public notify_data: any = [];\r\n public pastNoticesMessage: string = '';\r\n public displayingNoUnreadMessages = false;\r\n public disableMarkAsRead: boolean = false;\r\n public errorMsg: string | null = null;\r\n @ViewChild('leadExportDiv') csvDownloadLinkDiv: ElementRef;\r\n\r\n constructor(\r\n private headerService: HeaderService,\r\n @Inject(MAT_DIALOG_DATA) public event: any,\r\n public dialogRef: MatDialogRef,\r\n public commonService: CommonService,\r\n private _notificationService: NotificationService,\r\n ) {\r\n this.data = this.event;\r\n if (this.data != 'No result') {\r\n this.displayingNoUnreadMessages = true;\r\n this.disableMarkAsRead = true;\r\n this.notify_data = this.data;\r\n this.notify_data = formatLeadExportData(this.notify_data);\r\n this.getNotificationOrder();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target']) public onClick(targetElement: any) {\r\n const notificationID = targetElement.getAttribute('id') || null;\r\n let exportType = this._notificationService.getExportType(this.notice.notice_title || '');\r\n\r\n if (this.csvDownloadLinkDiv?.nativeElement?.contains(targetElement) && notificationID) {\r\n this._notificationService.processExportDownloadNotification(exportType, notificationID, (this.showErrorMessage).bind(this));\r\n }\r\n }\r\n\r\n public ngOnInit(): void {}\r\n\r\n /* by default first message is selected when notification popup is opened */\r\n public notificationMsg(message: any, parentIndex: any, childIndex: any) {\r\n this.displayingNoUnreadMessages = true;\r\n this.parentIndex = parentIndex;\r\n this.childIndex = childIndex;\r\n if (message.dismissed_date == '') {\r\n if (\r\n this.notify_data[parentIndex]['data'][childIndex]['disableMarkAsRead']\r\n ) {\r\n this.disableMarkAsRead = false;\r\n } else {\r\n this.disableMarkAsRead = true;\r\n this.notify_data[parentIndex]['data'][childIndex]['disableMarkAsRead'] =\r\n true;\r\n }\r\n }\r\n this.notice = this.notify_data[parentIndex]['data'][childIndex];\r\n let data = {\r\n notice_ids: [this.notice.notice_id],\r\n };\r\n this.dismissNoticeSubs = this.headerService.dismissNotice(data).subscribe({\r\n next: (response) => {\r\n this.headerService.sendNotifyAlert('dismissNotify');\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n public formatDate(date: string) {\r\n return moment(date).format('MM/DD/YYYY');\r\n }\r\n\r\n /* displaying the message when post is read and posted time */\r\n public displayedMessageFrom(toDate: any) {\r\n //get the moment time from but show \"today\" for anything less than a day ago\r\n var momentFrom = moment(toDate).fromNow();\r\n if (\r\n momentFrom.indexOf('second') > -1 ||\r\n momentFrom.indexOf('minute') > -1 ||\r\n momentFrom.indexOf('hour') > -1\r\n )\r\n return 'today';\r\n else return momentFrom;\r\n }\r\n\r\n /* load the past notification with increasing the page number on every hit */\r\n public loadPastNotice() {\r\n this.page_number = this.page_number + 1;\r\n this.getUserNoticeSubs = this.headerService\r\n .getUserNotice(this.page_number, 'pastNotify')\r\n .subscribe({\r\n next: (response: any) => {\r\n if (!response.length) {\r\n this.pastNoticesMessage = 'There are no past notices';\r\n return;\r\n }\r\n if (this.data == 'No result') {\r\n this.data = [];\r\n }\r\n this.data = this.data.concat(response);\r\n this.notify_data = this.data;\r\n this.notify_data = formatLeadExportData(this.notify_data);\r\n this.pastNoticesMessage = '';\r\n this.getNotificationOrder();\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n /* chnage the notification into oder by date */\r\n private getNotificationOrder() {\r\n of(...this.notify_data)\r\n .pipe(\r\n groupBy((p: any) => p.start_date),\r\n mergeMap((group$) =>\r\n group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))\r\n ),\r\n map((arr) => ({ date: arr[0], data: arr.slice(1) })),\r\n toArray()\r\n )\r\n .subscribe((p) => {\r\n this.notify_data = p; //.reverse();\r\n });\r\n this.parentIndex = 0;\r\n this.childIndex = 0;\r\n this.notice = this.notify_data[0]['data'][0];\r\n if (this.notice.dismissed_date == '') {\r\n if (this.notify_data[0]['data'][0]['disableMarkAsRead']) {\r\n this.disableMarkAsRead = false;\r\n } else {\r\n this.disableMarkAsRead = true;\r\n this.notify_data[0]['data'][0]['disableMarkAsRead'] = true;\r\n }\r\n }\r\n }\r\n\r\n /* mark all as read notification */\r\n\r\n public markAllRead() {\r\n this.displayingNoUnreadMessages = false;\r\n for (let i = 0; i < this.notify_data.length; i++) {\r\n for (let j = 0; j < this.notify_data[i]['data'].length; j++) {\r\n this.notify_data[i]['data'][j]['disableMarkAsRead'] = true;\r\n this.noticeTODismiss.push(this.notify_data[i]['data'][j].notice_id);\r\n }\r\n }\r\n let obj = {\r\n notice_ids: this.noticeTODismiss,\r\n };\r\n this.dismissNoticeSubs = this.headerService.dismissNotice(obj).subscribe({\r\n next: (response) => {\r\n this.headerService.sendNotifyAlert('dismissNotify');\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n /* mark as read notification */\r\n public markRead(noticeid: string) {\r\n this.displayingNoUnreadMessages = false;\r\n let data = {\r\n notice_ids: [noticeid],\r\n };\r\n this.dismissNoticeSubs = this.headerService.dismissNotice(data).subscribe({\r\n next: (response) => {\r\n this.headerService.sendNotifyAlert('dismissNotify');\r\n },\r\n error: (err) => {\r\n this.showErrorMessage(err.error.message);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n private showErrorMessage(errorMsg: string) {\r\n this.errorMsg = errorMsg;\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, 30000);\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.errorMsg = null;\r\n }, timer);\r\n }\r\n\r\n public checkForCMS(notice: Notice) {\r\n if (\r\n notice?.notice_title?.indexOf(\r\n 'IMPORTANT COMPLIANCE INFORMATION – CMS DISCLAIMER'\r\n ) != -1\r\n )\r\n this.commonService.callCMSPostCall();\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.dismissNoticeSubs) {\r\n this.dismissNoticeSubs.unsubscribe();\r\n }\r\n if (this.getUserNoticeSubs) {\r\n this.getUserNoticeSubs.unsubscribe();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Quick Search

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

{{ message.text }}

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n First Name\r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n
\r\n
\r\n \r\n City\r\n \r\n \r\n \r\n County\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ el.name }}\r\n \r\n \r\n \r\n \r\n Zip Code\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ month.name }}\r\n \r\n \r\n \r\n Date of Birth (From)\r\n \r\n \r\n \r\n \r\n \r\n Date of Birth (To)\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Lead Date (From)\r\n \r\n \r\n \r\n \r\n \r\n Lead Date (To)\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ el.dispo_name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ el.fname + \" \" + el.lname }}\r\n \r\n \r\n \r\n \r\n Tracking Code\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ el.tag_name }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n

Drug List Updated?

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n Date (From)\r\n \r\n \r\n \r\n \r\n This field is required.\r\n \r\n \r\n \r\n Date (To)\r\n \r\n \r\n \r\n \r\n This field is required.\r\n \r\n \r\n
\r\n
\r\n

Date Range Applies to Recent Updates for Rx

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

Has Current Plan?

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ el.dispo_name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { Criteria, SearchCriteria } from '@data/quick-search/quick-search.interface';\r\nimport { HeaderService } from '@data/services/header/header.service';\r\nimport * as data from '@data/states.json';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { MONTH_ARRAY } from '@app/constants';\r\n@Component({\r\n selector: 'app-quick-search',\r\n templateUrl: './quick-search.component.html',\r\n styleUrls: ['./quick-search.component.scss'],\r\n})\r\nexport class QuickSearchComponent implements OnInit {\r\n\r\n private account_id: any;\r\n private leadViewAssigned :boolean;\r\n private dropDownData:any=[];\r\n private dropDownDataSubs: Subscription;\r\n private isQuickSearch : boolean = false;\r\n private _componentDestroyed$ = new Subject();\r\n\r\n public leadSearchForm: UntypedFormGroup;\r\n public state_data: any = [];\r\n\r\n @ViewChild('appDisp') public appDisp: any;\r\n @ViewChild('leadTag') public leadTag: any;\r\n @ViewChild('leadAgent') public leadAgent: any;\r\n @ViewChild('leadDisp') public leadDisp: any;\r\n @ViewChild('leadState') public leadState: any;\r\n\r\n public total_lead_dispos: any = [];\r\n public total_agents: any = [];\r\n public total_tags: any = [];\r\n public total_app_dispos: any = [];\r\n public maxDate: Date;\r\n public tab_index: number = 0;\r\n public message: any = {};\r\n public isLoading: boolean = false;\r\n public isDisabled: boolean = false;\r\n public dateRequired: boolean = false;\r\n public loggedInUserID: any = this.authService.getToken().user_id;\r\n public monthsArray:{id:number,name:string}[] = MONTH_ARRAY;\r\n constructor(\r\n private router: Router,\r\n private headerService: HeaderService,\r\n private fb: UntypedFormBuilder,\r\n private commonService: CommonService,\r\n private authService: AuthService,\r\n private toasMsgService: ToastMsgService,\r\n public dialog: MatDialog,\r\n _commonService: CommonService,\r\n ) {\r\n this.leadViewAssigned = this.commonService.hasPermission('lead_view_assigned');\r\n this.leadSearchForm = this.fb.group({\r\n fname: [''],\r\n lname: [''],\r\n phone: [''],\r\n email: [''],\r\n city: [''],\r\n county: [''],\r\n state_id: [''],\r\n zip: [''],\r\n dob_month:[''],\r\n dobFrom: [''],\r\n dobTo: [''],\r\n leadDateFrom: [''],\r\n leadDateTo: [''],\r\n lead_dispo_id: [''],\r\n user_id: [null],\r\n lead_vendor_source_code: [''],\r\n tag_id: [''],\r\n app_dispo_id: [''],\r\n drug_list_updated_flag: [''],\r\n has_current_plan_flag: [''],\r\n drug_list_updated_date_from: ['', []],\r\n drug_list_updated_date_to: ['', []]\r\n },\r\n {\r\n validator: this.atLeastOne(Validators.required),\r\n }\r\n );\r\n\r\n /* get states data */\r\n this.state_data = (data as any).default;\r\n this.maxDate = new Date();\r\n\r\n this.account_id = _commonService.getAccountId();\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.getDropDowndata();\r\n }\r\n\r\n public getDropDowndata() {\r\n this.isLoading = true;\r\n /* get quick search data from header */\r\n this.dropDownDataSubs = this.headerService.populateDropDowns()\r\n .subscribe({\r\n next : (response:any) =>{\r\n this.isLoading = false;\r\n\r\n if (response?.length) {\r\n this.dropDownData = response;\r\n\r\n if(this.dropDownData[0]['total_lead_dispos']) {\r\n this.total_lead_dispos = this.dropDownData[0]['total_lead_dispos'];\r\n }\r\n\r\n let obj = [{ \"user_id\": 0, \"fname\": \"Unassigned\", \"lname\": \"\" }];\r\n if (this.dropDownData[0]['total_agents']\r\n && this.dropDownData[0]['total_agents'].length > 0\r\n && this.leadViewAssigned) {\r\n this.total_agents = this.dropDownData[0]['total_agents'];\r\n this.total_agents = [...this.total_agents, ...obj]\r\n\r\n } else if (this.dropDownData[0]['total_agents'] == ''\r\n && this.leadViewAssigned) {\r\n this.total_agents = [];\r\n this.total_agents = [...this.total_agents, ...obj]\r\n\r\n } else if (this.dropDownData[0]['total_agents'] == ''\r\n && !this.leadViewAssigned) {\r\n this.total_agents = [];\r\n this.total_agents = [...this.total_agents, ...[{\r\n \"user_id\": this.authService.getToken().user_id,\r\n \"fname\": this.authService.user_details['fname'],\r\n \"lname\": this.authService.user_details['lname']\r\n }]];\r\n\r\n }\r\n\r\n if (this.dropDownData[0]['total_tags'])\r\n this.total_tags = this.dropDownData[0]['total_tags'];\r\n\r\n if (this.dropDownData[0]['total_app_dispos'] != '')\r\n this.total_app_dispos = this.dropDownData[0]['total_app_dispos'];\r\n\r\n } else {\r\n this.dropDownData = [];\r\n }\r\n },\r\n error : (err) =>{\r\n this.isLoading = false;\r\n this.message = {\r\n type: 'alert',\r\n text: err.error.message,\r\n };\r\n this.clearMessage(30000);\r\n },\r\n complete : () => { }\r\n });\r\n }\r\n\r\n public triggerEvent(event: any) {\r\n event.value = '';\r\n }\r\n\r\n public onTabChange(event: any) {\r\n this.tab_index = event.index;\r\n this.resetForm();\r\n this.isDisabled = (event.tab.textLabel == \"Updated Rx + Current Plan\");\r\n if (this.isDisabled) {\r\n const loggedInUser = this.total_agents.find((agent: { user_id: any; }) => agent.user_id == this.loggedInUserID);\r\n if (loggedInUser) {\r\n this.leadSearchForm.get('user_id')?.setValue([loggedInUser.user_id]);\r\n }\r\n }\r\n }\r\n\r\n\r\n public searchLead(formData: any) {\r\n if (this.tab_index === 0) {\r\n this.dateRequired = false;\r\n /* search by lead */\r\n if (this.leadSearchForm.errors) {\r\n if (this.leadSearchForm.errors['atLeastOne']) {\r\n this.message = {\r\n type: 'alert',\r\n text: 'You are required to fill at least one field',\r\n };\r\n this.clearMessage(30000);\r\n return;\r\n }\r\n } else {\r\n let obj: Criteria = {\r\n account_id: { type: 'simple', value: [this.account_id] },\r\n fname: { type: 'simple', value: [formData.fname] },\r\n lname: { type: 'simple', value: [formData.lname] },\r\n phone: {\r\n type: 'simple',\r\n value: [formData.phone ? formData.phone.replace(/\\W/g, '') : ''],\r\n },\r\n email: { type: 'simple', value: [formData.email] },\r\n city: { type: 'simple', value: [formData.city] },\r\n county: { type: 'simple', value: [formData.county] },\r\n state_id: { type: 'simple', value: formData.state_id },\r\n dob_month: { type: 'simple', value: [formData.dob_month] },\r\n zip: { type: 'simple', value: [formData.zip] },\r\n dob: {\r\n type: 'simple',\r\n value: [\r\n formData.dobFrom == ''\r\n ? '*'\r\n : this.commonService.formatYYYYMMDD(formData.dobFrom),\r\n formData.dobTo == ''\r\n ? '*'\r\n : this.commonService.formatYYYYMMDD(formData.dobTo),\r\n ],\r\n },\r\n lead_date: {\r\n type: 'range',\r\n value: [\r\n formData.leadDateFrom == ''\r\n ? '*'\r\n : this.commonService.formatYYYYMMDD(formData.leadDateFrom),\r\n formData.leadDateTo == ''\r\n ? '*'\r\n : this.commonService.formatYYYYMMDD(formData.leadDateTo),\r\n ],\r\n },\r\n lead_dispo_id: {\r\n type: 'simple',\r\n value: this.convertToString([formData.lead_dispo_id]),\r\n },\r\n user_id: {\r\n type: 'simple',\r\n value: formData.user_id && formData.user_id.length>0 ? this.convertToString([formData.user_id]) : [`${this.authService.getToken().user_id}`]\r\n },\r\n lead_vendor_source_code: {\r\n type: 'simple',\r\n value: [formData.lead_vendor_source_code],\r\n },\r\n tag_id: {\r\n type: 'simple',\r\n value: this.convertToString([formData.tag_id]),\r\n },\r\n };\r\n this._cleanupSearchCriteria(obj, formData, \"quickSearch\");\r\n this.quickSearch(obj);\r\n }\r\n } else if (this.tab_index === 1) {\r\n if (this.leadSearchForm.status != 'INVALID') {\r\n /* search by app */\r\n let obj: Criteria = {\r\n account_id: { type: 'simple', value: [this.account_id] },\r\n has_current_plan_flag: { type: \"simple\", value: [this.leadSearchForm.value.has_current_plan_flag] },\r\n user_id: {\r\n type: 'simple',\r\n value: formData.user_id ? this.convertToString([formData.user_id]) : [`${this.authService.getToken().user_id}`]\r\n },\r\n drug_list_updated_flag: { type: \"simple\", value: [this.leadSearchForm.value.drug_list_updated_flag] },\r\n drug_list_updated_date_from: { type: \"simple\", value: [this.commonService.formatYYYYMMDD(this.leadSearchForm.value.drug_list_updated_date_from)] },\r\n drug_list_updated_date_to: { type: \"simple\", value: [this.commonService.formatYYYYMMDD(this.leadSearchForm.value.drug_list_updated_date_to)] }\r\n };\r\n this._cleanupSearchCriteria(obj, formData, \"leadPlanSearch\");\r\n this.quickSearch(obj);\r\n }\r\n } else {\r\n /* search by app */\r\n if (formData['app_dispo_id'].length == 0 || !formData['app_dispo_id']) {\r\n this.message = {\r\n type: 'alert',\r\n text: 'Enter one or more application dispositions and click search.',\r\n };\r\n this.clearMessage(30000);\r\n return;\r\n } else {\r\n let obj: Criteria = {\r\n account_id: { type: 'simple', value: [this.account_id] },\r\n user_id: {\r\n type: 'simple',\r\n value: formData.user_id ? this.convertToString([formData.user_id]) : [`${this.authService.getToken().user_id}`]\r\n },\r\n app_dispo_id: {\r\n type: 'simple',\r\n value: this.convertToString([formData.app_dispo_id]),\r\n },\r\n };\r\n if (!formData.app_dispo_id) delete obj['app_dispo_id'];\r\n this._cleanupSearchCriteria(obj, formData, \"appDispoSearch\");\r\n this.quickSearch(obj);\r\n }\r\n }\r\n }\r\n\r\n private _cleanupSearchCriteria(obj: any, formData: any, searchType: string) {\r\n Object.keys(obj).forEach(key => {\r\n if (!formData[key]) {\r\n if (!formData.dobFrom && !formData.dobTo) {\r\n delete obj['dob'];\r\n }\r\n if (!formData.leadDateFrom && !formData.leadDateTo) {\r\n delete obj['lead_date']\r\n }\r\n if (this.leadViewAssigned && !formData.user_id && (searchType == 'quickSearch' || searchType == 'appDispoSearch')) {\r\n delete obj['user_id']\r\n }\r\n if (!this.account_id || isNaN(this.account_id)) {\r\n delete obj['account_id'];\r\n }\r\n if (key != \"account_id\" && key != \"dob\" && key != \"lead_date\" && key != 'user_id') {\r\n delete obj[key];\r\n }\r\n }\r\n });\r\n return obj;\r\n }\r\n\r\n /* method for quick search */\r\n private quickSearch(obj: any) {\r\n if(!this.isQuickSearch){\r\n let input: SearchCriteria = {\r\n search_type: 'simple',\r\n criteria: obj,\r\n field_list: '',\r\n page_number: 1,\r\n records_per_page: 200,\r\n include_deleted: 0,\r\n };\r\n this.headerService.sendSearchAlert(input);\r\n }\r\n this.isQuickSearch = true;\r\n this.closePopover();\r\n this.router.navigate(['/lead/search']);\r\n }\r\n\r\n /* method to close the popover */\r\n public closePopover() {\r\n this.dialog.closeAll();\r\n }\r\n\r\n public resetForm() {\r\n this.dateRequired = false;\r\n if (this.tab_index === 1) {\r\n this.isDisabled = true;\r\n }\r\n this.leadSearchForm = this.fb.group(\r\n {\r\n fname: [''],\r\n lname: [''],\r\n phone: [''],\r\n email: [''],\r\n city: [''],\r\n county: [''],\r\n state_id: [''],\r\n zip: [''],\r\n dob_month:[''],\r\n dobFrom: [''],\r\n dobTo: [''],\r\n leadDateFrom: [''],\r\n leadDateTo: [''],\r\n lead_dispo_id: [''],\r\n user_id: [''],\r\n lead_vendor_source_code: [''],\r\n tag_id: [''],\r\n app_dispo_id: [''],\r\n drug_list_updated_flag: [''],\r\n has_current_plan_flag: [''],\r\n drug_list_updated_date_from: ['', []],\r\n drug_list_updated_date_to: ['', []]\r\n },\r\n {\r\n validator: this.atLeastOne(Validators.required),\r\n }\r\n );\r\n\r\n }\r\n\r\n public leadPlanCurrent(value: any, drugUpdated: any) {\r\n if (drugUpdated == \"\") {\r\n this.isDisabled = false;\r\n this.dateRequired = false;\r\n }\r\n }\r\n\r\n public drugUpdate(value: any) {\r\n if (value != \"\") {\r\n this.dateRequired = true;\r\n this.isDisabled = false;\r\n }\r\n }\r\n public checkError = (controlName: string, errorName: string) => {\r\n return this.leadSearchForm.controls[controlName].hasError(errorName);\r\n }\r\n\r\n /* method for validate the at least one filed is required */\r\n atLeastOne =\r\n (validator: ValidatorFn) =>\r\n (group: UntypedFormGroup): ValidationErrors | null => {\r\n const hasAtLeastOne =\r\n group &&\r\n group.controls &&\r\n Object.keys(group.controls).some((k) => !validator(group.controls[k]));\r\n return hasAtLeastOne ? null : { atLeastOne: true };\r\n };\r\n\r\n /* method to convert into string */\r\n private convertToString(value: any) {\r\n return value.join().split(',');\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this.toasMsgService.resetMessage();\r\n }, timer);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.dropDownDataSubs)\r\n this.dropDownDataSubs.unsubscribe();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Configurable Settings

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

{{ message.text }}

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

Send automated reminder emails for Client Self-Service invites?

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

NOTE: A change to the automated reminder setting only applies to new Client Self-Service links sent out. Any active links that qualify for a reminder will still receive reminder emails. Client Self-Service links are active for 60 days.

\r\n \r\n Yes\r\n No\r\n \r\n
\r\n \r\n \r\n

Allow clients to update Personal Information in Section 1 of Client Self-Service?

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

NOTE: A change to this Personal Information setting only applies to new Client Self-Service links sent out. Any existing\r\n links will not follow the new permission setting.

\r\n \r\n Yes\r\n No\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { Subject, first, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-configurable-settings',\r\n templateUrl: './configurable-settings.component.html',\r\n styleUrls: ['./configurable-settings.component.scss']\r\n})\r\nexport class ConfigurableSettingsComponent implements OnInit {\r\n private _componentDestroyed$ = new Subject;\r\n\r\n public isLoading = true;\r\n public configurableSettingForm: FormGroup;\r\n public message: any = {};\r\n public apiFail: boolean = false;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _fb: FormBuilder,\r\n private _toastMessageSvc: ToastMsgService,\r\n private _userService: UserService\r\n ) {\r\n this.configurableSettingForm = this._fb.group({\r\n //email reminder setting\r\n 'sspr_configurable_settings': ['0'],\r\n //personal information update setting\r\n 'sspup_configurable_settings': ['0']\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.selfServiceOptionSearch();\r\n }\r\n\r\n public selfServiceOptionSearch() {\r\n let payload: any = {\r\n \"search_type\": \"simple\",\r\n \"criteria\": {\r\n \"user_id\": {\r\n \"type\": \"simple\",\r\n \"value\": [this._authService.user_details.user_id]\r\n }\r\n }\r\n }\r\n this._userService.selfServiceConfig(this._authService.user_details.user_id, payload).pipe(first()).subscribe({\r\n next: (response: any) => {\r\n this.isLoading = false;\r\n response.forEach((configOption: any) => {\r\n if (configOption.self_service_config_option_type_name === \"Self-Service Portal send reminder emails\") {\r\n //email reminder setting value\r\n this.configurableSettingForm.patchValue({'sspr_configurable_settings': configOption.self_service_config_option_bit})\r\n } else if (configOption.self_service_config_option_type_name === \"Self-Service Portal Personal Information Update\") {\r\n //personal information update setting value\r\n this.configurableSettingForm.patchValue({'sspup_configurable_settings': configOption.self_service_config_option_bit})\r\n }\r\n })\r\n },\r\n error: (err) => {\r\n this.isLoading = false;\r\n this.apiFail = true;\r\n this.message = {\r\n type: 'alert',\r\n text: err.error.message\r\n };\r\n this.clearMessage(30000);\r\n }\r\n })\r\n }\r\n\r\n public selfServiceConfigUpdate(ssprValue: number, sspupValue: number) {\r\n let criteria: any = [{\r\n \"self_service_config_option_type_id\": \"3\",//email reminder setting\r\n \"self_service_config_option_bit\": ssprValue ? ssprValue : '0'\r\n },\r\n {\r\n \"self_service_config_option_type_id\": \"4\",//personal information update setting\r\n \"self_service_config_option_bit\": sspupValue ? sspupValue : '0'\r\n }];\r\n this._userService.selfServiceConfigUpdate(this._authService.user_details.user_id, criteria).pipe(first()).subscribe({\r\n next: (response: any) => {\r\n this._toastMessageSvc.showSuccess('Settings updated.')\r\n },\r\n error: (err) => {\r\n this.apiFail = true;\r\n this.message = {\r\n type: 'alert',\r\n text: err.error.message\r\n };\r\n this.clearMessage(30000);\r\n }\r\n })\r\n }\r\n\r\n /* clear notice message */\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.message = this._toastMessageSvc.resetMessage();\r\n }, timer);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Call Recording

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

We have partnered with Phone.com to provide a call recording solution to meet your current and future compliance needs.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Do not show Phone.com dialer option\r\n \r\n \r\n
    \r\n
  1. \r\n

    To get started with buit-in call recording, you will need to sign up for an account with Phone.com.

    \r\n Sign Up for a Phone.com Account\r\n
  2. \r\n
  3. \r\n

    Once you have a Phone.com account, you can connect it here to allow us to initiate outbound calls through the Phone.com dialer.

    \r\n Connect your Phone.com Account\r\n
  4. \r\n
  5. \r\n

    Finally, decide what should happen when clicking on phone numbers

    \r\n \r\n \r\n {{behaviorType.phone_dialer_provider_behavior_type_name}}\r\n \r\n \r\n
  6. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { PhoneDialerBehaviorType } from '@data/services/integration/phone-dialer.interface';\r\nimport { PhoneDialerService } from '@data/services/integration/phone-dialer.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { Subject, combineLatest, first, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-phone-dialer-user',\r\n templateUrl: './phone-dialer-user.component.html',\r\n styleUrls: ['./phone-dialer-user.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PhoneDialerUserComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject;\r\n public phoneDialerBehaviorTypes: PhoneDialerBehaviorType[];\r\n public phoneDialerUserSettingForm: FormGroup;\r\n\r\n public isLoading = true;\r\n\r\n constructor(\r\n private _authService: AuthService,\r\n private _commonService: CommonService,\r\n private _fb: FormBuilder,\r\n private _phoneDialerSvc: PhoneDialerService,\r\n private _toastMessageSvc: ToastMsgService,\r\n ) {\r\n this.phoneDialerUserSettingForm = this._fb.group({\r\n 'phone_dialer_provider_active': new FormControl(),\r\n 'phone_dialer_provider_behavior_type_id': new FormControl(),\r\n });\r\n\r\n this._commonService.userSettings$\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe(userSettings => {\r\n this._setupForm(userSettings);\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n \r\n combineLatest([\r\n this._commonService.getLoggedInUserSettings(this._authService.getToken().user_id),\r\n this._phoneDialerSvc.getPhoneDialerBehaviourList()\r\n ])\r\n .pipe(first())\r\n .subscribe({\r\n next: ([userSettings, phoneDialerBehaviorTypes]) => {\r\n this.phoneDialerBehaviorTypes = phoneDialerBehaviorTypes;\r\n }\r\n }); \r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n public updateUserPhoneDialerSettings() {\r\n let updatedUserSettings = this.phoneDialerUserSettingForm.value;\r\n\r\n updatedUserSettings.phone_dialer_provider_active = (updatedUserSettings.phone_dialer_provider_active) ? '0' : '1';\r\n\r\n this._commonService.updateLoggedInUserSettings(this._authService.getToken().user_id, updatedUserSettings)\r\n .pipe(first())\r\n .subscribe({\r\n next: () => {\r\n this._toastMessageSvc.showSuccess('Phone dialer settings updated.')\r\n },\r\n error: (err) => {\r\n this._toastMessageSvc.showError(err.message);\r\n }\r\n });\r\n }\r\n\r\n public redirectToDialerLandingPage() {\r\n this._phoneDialerSvc.redirectToDialerLandingPage();\r\n }\r\n \r\n private _setupForm(userSettings: IUserSettings) {\r\n let userSettingsFormPatch = {\r\n ...userSettings,\r\n ...{\r\n phone_dialer_provider_active: (userSettings?.phone_dialer_provider_active != '1')\r\n }\r\n }\r\n \r\n this.phoneDialerUserSettingForm.patchValue(userSettingsFormPatch);\r\n this.isLoading = false;\r\n }\r\n \r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {{ date }}\r\n \r\n {{ month }} {{ year }}\r\n {{ day }} {{ time | uppercase }}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Loading Menu Items\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n warning\r\n Warning: This is not a Production environment. Use for testing purposes only.\r\n
\r\n
\r\n\r\n
","import { Component, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { LDF_CONFIGURABLE_SETTINGS, LDF_SHOW_ENV_WARNING_BANNER } from '@app/constants';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { HeaderService } from '@data/services/header/header.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { environment } from '@env/environment';\r\nimport { ImportantNoticeComponent } from '@modal/header-modals/important-notice/important-notice.component';\r\nimport { NotificationComponent } from '@modal/header-modals/notification/notification.component';\r\nimport { QuickSearchComponent } from '@modal/header-modals/quick-search/quick-search.component';\r\nimport { UserProfileComponent } from '@modal/header-modals/user-profile/user-profile.component';\r\nimport { ConfigurableSettingsComponent } from '@modules/configurable-settings/configurable-settings/configurable-settings.component';\r\nimport { PhoneDialerUserComponent } from '@modules/integration/components/phone-dialer-user/phone-dialer-user.component';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { LaunchdarklyService } from '@shared/services/LaunchDarkly/launchdarkly.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport moment from 'moment';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { BehaviorSubject, combineLatest, filter, first, Subject, Subscription, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n private _componentDestroyed$ = new Subject();\r\n private _componentLoaded$ = new Subject();\r\n private _peproSub:Subscription;\r\n\r\n private _pollingInterval: number = 120000;\r\n private _userId: string;\r\n private _isDismissedNotify: boolean = false;\r\n private _isNotifyDialog: boolean = false;\r\n\r\n public showPhoneDialer$ = new BehaviorSubject(false);\r\n public configurableSettingsFlag: boolean;\r\n\r\n public hasPeproAccess: boolean = false;\r\n public isDisabled: boolean = false;\r\n public isExpanded = true;\r\n public isLoading: boolean = true;\r\n public isLoadingNotifications: boolean = false;\r\n public isSubMenuLoading: boolean = true;\r\n public showHeader: boolean;\r\n public showSubmenu: boolean = false;\r\n public showEnvBanner: boolean;\r\n\r\n public date: any;\r\n public month: any;\r\n public year: any;\r\n public day: any;\r\n public time: any;\r\n public userName: string = '';\r\n\r\n public notification_count: number = 0;\r\n\r\n @ViewChild('sidenav') sidenav: MatSidenavModule;\r\n\r\n constructor(\r\n private headerService: HeaderService,\r\n private commonService: CommonService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private cookieService: CookieService,\r\n private toastMsgService: ToastMsgService,\r\n private userService: UserService,\r\n private _launchDarklySvc: LaunchdarklyService,\r\n public dialog: MatDialog,\r\n private _commonService: CommonService\r\n ) {\r\n // Set configurableSettingsFlag for SSPR\r\n this._launchDarklySvc.getFlag(LDF_CONFIGURABLE_SETTINGS)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((flag) => {\r\n this.configurableSettingsFlag = flag;\r\n });\r\n\r\n this._launchDarklySvc.getFlag(LDF_SHOW_ENV_WARNING_BANNER, true)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((flag) => {\r\n this.showEnvBanner = flag;\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n takeUntil(this._componentDestroyed$),\r\n filter(event => event instanceof NavigationEnd),\r\n first(),\r\n ).subscribe(navigation => {\r\n const url = (navigation as NavigationEnd).url\r\n this.showHeader = url.indexOf('registration') < 0;\r\n\r\n if (this.showHeader) {\r\n this._userId = this.authService.getToken().user_id;\r\n\r\n this._checkPeproAccess();\r\n this._getUserDetails();\r\n this._notificationCount();\r\n\r\n //Polling after every 2 mins\r\n setInterval(() => {\r\n this._getNotificationCount();\r\n }, this._pollingInterval);\r\n\r\n setInterval(() => {\r\n this._currentDateTime();\r\n }, 1000);\r\n\r\n }\r\n\r\n });\r\n\r\n let details = navigator.userAgent;\r\n let regexp = /android|iphone|kindle|ipad/i;\r\n let isMobileDevice = regexp.test(details);\r\n if (isMobileDevice) {\r\n this.isDisabled = true;\r\n this.isExpanded = false;\r\n } else {\r\n this.isDisabled = false;\r\n this.isExpanded = true;\r\n }\r\n this.toastMsgService.isExpanded = this.isExpanded;\r\n\r\n this._commonService.accountSettings$\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: accountSettings => {\r\n if (accountSettings)\r\n this.showPhoneDialer$.next(accountSettings.phone_dialer_provider_active == '1');\r\n\r\n }\r\n });\r\n\r\n this.authService.userDetails$\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next:( userDetails => {\r\n if (userDetails)\r\n this.userName = userDetails.fname + ' ' + userDetails.lname;\r\n\r\n })\r\n });\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n public onResize(event:any): void {\r\n if (this.sidenav !== undefined) {\r\n if (event.target.innerWidth <= 980) { // This can be any value.\r\n this.isExpanded = false;\r\n } else {\r\n this.isExpanded = true;\r\n }\r\n this.commonService.setMenuExpand(this.isExpanded);\r\n this.toastMsgService.isExpanded = this.isExpanded;\r\n }\r\n }\r\n\r\n private _notificationCount() {\r\n this.headerService.getNotifyAlert()\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (response: any) => {\r\n if (response) {\r\n if(!this._isDismissedNotify) {\r\n this._getNotificationCount();\r\n }\r\n this._isDismissedNotify = true;\r\n }\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n })\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._currentDateTime();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n this._componentLoaded$.next(true);\r\n this._componentLoaded$.complete();\r\n }\r\n\r\n //Check if user has pepro link access\r\n private _checkPeproAccess() {\r\n this._peproSub = this._peproSub ? this._peproSub : this.headerService.getPeproAccess()\r\n .pipe(first())\r\n .subscribe(\r\n (response: any) => {\r\n if (response.result === \"True\") {\r\n this.hasPeproAccess = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n private _currentDateTime() {\r\n let date = new Date();\r\n this.date = date.getDate();\r\n this.month = this.getFormattedValue('MMMM');\r\n this.day = this.getFormattedValue('dddd');\r\n this.year = this.getFormattedValue('YYYY');\r\n this.time = this.getFormattedValue(\"hh:mm a\");\r\n }\r\n\r\n private getFormattedValue(format: string) {\r\n return moment().format(format);\r\n }\r\n\r\n public expandMenu() {\r\n this.isExpanded = !this.isExpanded;\r\n this.commonService.setMenuExpand(this.isExpanded);\r\n this.toastMsgService.isExpanded = this.isExpanded;\r\n }\r\n\r\n public openMenu() {\r\n this.isSubMenuLoading = true;\r\n this.showSubmenu = true;\r\n\r\n this._commonService.getLoggedInAccountSettings(this.commonService.getAccountId(), true)\r\n .pipe(first())\r\n .subscribe({\r\n next: () => {\r\n this.isSubMenuLoading = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n public openUserProfile() {\r\n this.dialog.open(UserProfileComponent, {\r\n width: '100%',\r\n autoFocus: false,\r\n data: {\r\n user_id: this._userId\r\n },\r\n });\r\n }\r\n\r\n public openConfigurableSettings() {\r\n this.dialog.open(ConfigurableSettingsComponent, {\r\n width: '55%',\r\n autoFocus: true\r\n });\r\n }\r\n\r\n public openPepro() {\r\n const laWebCookie = this.authService.getAuthCookie();\r\n\r\n // Set PEP cookie\r\n this.cookieService.set(\r\n 'LAWeb2PEWeb', laWebCookie,\r\n { path: '/', domain: '.leadadvantagepro.com', secure: true }\r\n )\r\n\r\n window.open(environment.PEPro, '_openPEProLink');\r\n }\r\n\r\n public openCallRecordingUserSettings() {\r\n this.dialog.open(PhoneDialerUserComponent, {\r\n width: '55%',\r\n autoFocus: true\r\n });\r\n\r\n }\r\n\r\n /* to open the search dialog */\r\n public openSearchDialog() {\r\n window.scroll(0, 0);\r\n this.dialog.open(QuickSearchComponent, {\r\n width: '60%',\r\n autoFocus: false,\r\n })\r\n }\r\n\r\n private _getUserDetails() {\r\n combineLatest([\r\n this.userService.getUserDetailsAndPermissions(this.authService.getToken().user_id)\r\n ])\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: ([userDetailsResponse]) => {\r\n const userDetails = userDetailsResponse.body!;\r\n\r\n this.isLoading = false;\r\n\r\n this.userName = userDetails.fname + ' ' + userDetails.lname;\r\n this.authService.user_details = userDetails;\r\n this.authService.userDetails$.next(userDetails);\r\n this.authService.account_id = userDetails.account_id;\r\n\r\n this.commonService.setAccountId(userDetails.account_id);\r\n\r\n this.authService.user_details['rolePermission'] = JSON.parse(userDetailsResponse.headers.get('x-lapro-acl-array') || '[]');\r\n this.authService.user_details['hash'] = userDetailsResponse.headers.get('x-lapro-acl');\r\n\r\n this._componentLoaded$.next(true);\r\n\r\n // this._getCobrandDetails(userDetails.account_id);\r\n this._commonService.getLoggedInAccountSettings(userDetails.account_id)\r\n .pipe(first())\r\n .subscribe();\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n /* notification functionality */\r\n private _getNotificationCount() {\r\n this.headerService.getNotificationCount()\r\n .pipe(first())\r\n .subscribe({\r\n next: (response: any) => {\r\n this.notification_count = response.notice_outstanding_count;\r\n this.commonService.tempPollingInterval = this._pollingInterval;\r\n if (response['includes_important'] == '1') {\r\n this.headerService.getUserNotice(0, 'quickNotify')\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (response: any) => {\r\n if (response?.length) {\r\n if(this._isNotifyDialog){\r\n return;\r\n }\r\n this._isNotifyDialog = true;\r\n\r\n this.dialog.open(ImportantNoticeComponent, {\r\n width: '60%',\r\n data: response\r\n }).afterClosed().subscribe((elem:any)=>{\r\n this._isDismissedNotify = false;\r\n this._isNotifyDialog = false;\r\n })\r\n }\r\n },\r\n error: (err) => {\r\n },\r\n complete: () => { }\r\n })\r\n }\r\n },\r\n error: (err) => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n public openNotification() {\r\n this.isLoadingNotifications = true;\r\n this.headerService.getUserNotice(0, 'openNotify')\r\n .pipe(first())\r\n .subscribe({\r\n next: (response: any) => {\r\n let data: any;\r\n if (response.result == '') {\r\n data = 'No result';\r\n } else {\r\n data = response;\r\n }\r\n this.dialog.open(NotificationComponent, {\r\n width: '65%',\r\n data: data,\r\n });\r\n },\r\n complete: () => {\r\n this.isLoadingNotifications = false;\r\n }\r\n });\r\n }\r\n\r\n public logout(): void {\r\n this.dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'Are you sure you want to logout?'\r\n }\r\n }).afterClosed().subscribe(res => {\r\n if (res) {\r\n this.authService.killCookie();\r\n this.dialog.closeAll();\r\n localStorage.removeItem('printSettingsCheck');\r\n this.authService.redirectToAuth();\r\n }\r\n });\r\n }\r\n\r\n public isProd() {\r\n return environment.production;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, throwError } from 'rxjs';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { environment } from '@env/environment';\r\nimport { IQuickLink } from './quick-link.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QuickLinksService {\r\n\r\n constructor(private http: HttpClient, private authService: AuthService) { }\r\n\r\n public getQuickLinks() {\r\n let params = {\r\n criteria: { user_id: { type: \"simple\", value: [`${this.authService.getToken().user_id}`] } },\r\n search_type: \"simple\"\r\n }\r\n return this.http.post((environment.api) + `user/${this.authService.getToken().user_id}/quickLink/search`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addAccountQuickLink(params: any) {\r\n return this.http.post((environment.api) + `account/${this.authService.account_id}/quicklink/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public addUserQuickLink(params: any) {\r\n return this.http.post((environment.api) + `user/${this.authService.getToken().user_id}/quicklink/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updateAccountQuickLink(params: any, quicklink_id: number) {\r\n return this.http.post((environment.api) + `account/${this.authService.account_id}/quicklink/${quicklink_id}/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public updateUserQuickLink(params: any, quicklink_id: number) {\r\n return this.http.post((environment.api) + `user/${this.authService.getToken().user_id}/quicklink/${quicklink_id}/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public deleteQuickLink(quicklink_id: number) {\r\n return this.http.get((environment.api) + `user/${this.authService.getToken().user_id}/quicklink/${quicklink_id}/delete/`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public hideQuickLink(quicklink_id: number) {\r\n return this.http.get((environment.api) + `account/${this.authService.account_id}/quicklink/${quicklink_id}/accountHide/`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public revealQuickLink(quicklink_id: number) {\r\n return this.http.get((environment.api) + `account/${this.authService.account_id}/quicklink/${quicklink_id}/accountReveal/`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public displaySaveQuickLink(params: any) {\r\n return this.http.post((environment.api) + `user/${this.authService.getToken().user_id}/quicklink/displaySave/`, params).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n public targetLeadsSSO() {\r\n return this.http.get((environment.api) + `quicklink/targetLeadsSSO`).pipe(\r\n catchError(error => {\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Create New Quick Link

\r\n \r\n
\r\n \r\n \r\n\r\n\r\n \r\n
\r\n \r\n Saving Changes\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n 0\" type='alert' (closeBanner)=\"clearMessage(0)\">{{ errorMessage }}\r\n
\r\n
\r\n
\r\n \r\n Name\r\n \r\n \r\n Quick Link Name is a required field.\r\n \r\n \r\n The Quick Link title you entered exceeds the 100 character maximum limit. Please re-enter a title with\r\n 100 or fewer characters, including spaces.\r\n \r\n \r\n \r\n \r\n URL\r\n \r\n \r\n Quick Link URL is a required field.\r\n \r\n \r\n The Quick Link URL you entered exceeds the 200 character maximum limit. Please re-enter a URL with 200\r\n or fewer characters, including spaces.\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n For all agents in account\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { QuickLinksService } from '@data/services/quick-links/quick-links.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { first } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-add-quick-link',\r\n templateUrl: './add-quick-link.component.html',\r\n styleUrls: ['./add-quick-link.component.scss']\r\n})\r\nexport class AddQuickLinkComponent implements OnInit {\r\n\r\n public addLinkForm: FormGroup;\r\n public availableToEdit: boolean = false;\r\n public isLoading = false;\r\n public errorMessage = '';\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private qlService: QuickLinksService,\r\n private toastMsgService: ToastMsgService,\r\n private authService: AuthService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n ) {\r\n\r\n let quicklink_hierarchy_type_id = (data?.quicklink_hierarchy_type_name == 'Account');\r\n\r\n this.addLinkForm = this.fb.group({\r\n quicklink_title: [data && data?.quicklink_title ? data?.quicklink_title : '', [Validators.required, Validators.maxLength(100)]],\r\n quicklink_url: [data && data?.quicklink_url ? data?.quicklink_url : '', [Validators.required, Validators.maxLength(200)]],\r\n quicklink_hierarchy_type_id: [{ value: quicklink_hierarchy_type_id, disabled: data ? true : false }],\r\n });\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.availableToEdit = (this.authService.user_details?.role_name.indexOf(\"Admin\") > -1);\r\n }\r\n\r\n public checkError = (controlName: string, errorName: string) => {\r\n return this.addLinkForm.controls[controlName].hasError(errorName);\r\n }\r\n\r\n public saveLink() {\r\n this.isLoading = true;\r\n this.errorMessage = '';\r\n\r\n let quickLinkUrl: string = \"\";\r\n\r\n quickLinkUrl = (this.addLinkForm.value?.quicklink_url.startsWith('http://')\r\n || this.addLinkForm.value?.quicklink_url.startsWith('https://'))\r\n ? this.addLinkForm.value?.quicklink_url\r\n : \"http://\" + this.addLinkForm.value?.quicklink_url;\r\n\r\n let quicklink_hierarchy_type_id = !this.data ?\r\n (this.addLinkForm.value?.quicklink_hierarchy_type_id ? 2 : 3)\r\n : (this.data?.quicklink_hierarchy_type_name == 'Account' ? 2 : 3);\r\n\r\n let params = {\r\n quicklink_title: this.addLinkForm.value?.quicklink_title,\r\n quicklink_url: quickLinkUrl,\r\n quicklink_hierarchy_type_id: quicklink_hierarchy_type_id\r\n }\r\n\r\n if (!this.data) {\r\n if (quicklink_hierarchy_type_id == 2) {\r\n this.qlService.addAccountQuickLink(params)\r\n .pipe(first())\r\n .subscribe({\r\n next: (res: any) => {\r\n this._showToast(\"Quick Link created successfully\");\r\n },\r\n error: (err: HttpErrorResponse) => {\r\n this._showError(err.error.message);\r\n }\r\n });\r\n\r\n } else {\r\n this.qlService.addUserQuickLink(params)\r\n .pipe(first())\r\n .subscribe({\r\n next: (res: any) => {\r\n this._showToast(\"Quick Link created successfully\");\r\n },\r\n error: (err: HttpErrorResponse) => {\r\n this._showError(err.error.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n } else {\r\n if (quicklink_hierarchy_type_id == 2) {\r\n this.qlService.updateAccountQuickLink(params, this.data?.quicklink_id)\r\n .pipe(first())\r\n .subscribe({\r\n next: (res: any) => {\r\n this._showToast(\"Quick Link updated successfully\");\r\n },\r\n error: (err: HttpErrorResponse) => {\r\n this._showError(err.error.message);\r\n }\r\n });\r\n\r\n } else {\r\n this.qlService.updateUserQuickLink(params, this.data?.quicklink_id)\r\n .pipe(first())\r\n .subscribe({\r\n next: (res: any) => {\r\n this._showToast(\"Quick Link updated successfully\");\r\n },\r\n error: (err: HttpErrorResponse) => {\r\n this._showError(err.error.message);\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n private closeDialog() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n private _showToast(msg: string) {\r\n this.isLoading = false;\r\n this.toastMsgService.showSuccess(msg);\r\n this.closeDialog();\r\n }\r\n\r\n private _showError(msg: string) {\r\n this.isLoading = false;\r\n\r\n this.errorMessage = msg;\r\n this.clearMessage(5000);\r\n }\r\n\r\n public clearMessage(timer: number) {\r\n setTimeout(() => {\r\n this.errorMessage = '';\r\n }, timer);\r\n }\r\n}\r\n","
\r\n
\r\n

Quick Links

\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n
\r\n \r\n Retrieving Quick Links\r\n Saving Changes\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Target Leads\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n menu\r\n \r\n \r\n {{ link.quicklink_title }}\r\n \r\n {{ link.quicklink_title }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, EventEmitter, Inject, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AddQuickLinkComponent } from '@modal/sidebar-modals/add-quick-link/add-quick-link.component';\r\nimport { ConfirmDeleteComponent } from '@shared/modals/confirm-delete/confirm-delete.component';\r\nimport { QuickLinksService } from '@data/services/quick-links/quick-links.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { SingleSignOnComponent } from '@modules/quotes/components/single-sign-on/single-sign-on.component';\r\nimport { Subject, Subscription, combineLatest, map, takeUntil, first } from 'rxjs';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { IQuickLink } from '@data/services/quick-links/quick-link.interface';\r\nimport { IUserSettings } from '@data/user-profile/user-profile.interface';\r\nimport { AccountSettings } from '@data/admin/account-settings.interface';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-quick-links',\r\n templateUrl: './quick-links.component.html',\r\n styleUrls: ['./quick-links.component.scss']\r\n})\r\nexport class QuickLinksComponent implements OnInit {\r\n\r\n private _quicklink_id_active_list: any[] = [];\r\n\r\n private _componentDestroyed$ = new Subject() ;\r\n private _accountSettings: AccountSettings;\r\n private _userSettings: IUserSettings;\r\n private _responseToTargetLead: any;\r\n\r\n public ssoForm: FormGroup;\r\n public isEdit: boolean = false;\r\n public quickLinks: IQuickLink[];\r\n public isLoading: boolean = true;\r\n public isSubmit: boolean = false;\r\n public isFFIGUser: boolean = false;\r\n\r\n constructor(\r\n private _auth: AuthService,\r\n private _dialog: MatDialog,\r\n private _qlService: QuickLinksService,\r\n private _toastMsgService: ToastMsgService,\r\n public commonService: CommonService\r\n ) {\r\n combineLatest([\r\n this.commonService.accountSettings$,\r\n this.commonService.userSettings$,\r\n ])\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe(([accountSettings, userSettings]) => {\r\n this._accountSettings = accountSettings;\r\n this._userSettings = userSettings;\r\n });\r\n\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._checkFFIG_User();\r\n this.getQuickLinks();\r\n }\r\n\r\n public toggleActionButtons() {\r\n this.isEdit = !this.isEdit;\r\n }\r\n\r\n public rearrangeLinks(event: CdkDragDrop) {\r\n moveItemInArray(this.quickLinks, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n public getQuickLinks(isReload: boolean = false) {\r\n this.isLoading = true;\r\n this.isEdit = false;\r\n\r\n combineLatest([\r\n this.commonService.getLoggedInAccountSettings(this.commonService.getAccountId()),\r\n this.commonService.getLoggedInUserSettings(this._auth.getToken().user_id),\r\n this._qlService.getQuickLinks()\r\n ])\r\n .pipe(\r\n first(),\r\n map( ([accountSettings, userSettings, quickLinks]) => {\r\n let ql = quickLinks;\r\n\r\n ql = this._hidePhoneDialerLink(ql);\r\n\r\n return {\r\n accountSettings: accountSettings,\r\n userSettings: userSettings,\r\n quickLinks: ql\r\n };\r\n })\r\n\r\n )\r\n .subscribe({\r\n next: (res) => {\r\n this.quickLinks = res.quickLinks;\r\n this.quickLinks.map(link => {\r\n link.isCMSLink = this._checkForCMSLink(link?.quicklink_url)\r\n });\r\n this.isLoading = false;\r\n },\r\n error: err => {\r\n this.isLoading = false;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n private _checkForCMSLink(link: string = '') {\r\n return link.includes('cmscheck.seniormarketsales.com');\r\n }\r\n\r\n public callPost(e: Event) {\r\n e.preventDefault();\r\n this.commonService.callCMSPostCall();\r\n }\r\n\r\n private _hidePhoneDialerLink(quicklinks: IQuickLink[]) {\r\n let returnLinks = quicklinks;\r\n\r\n if (this._accountSettings.phone_dialer_provider_active != '1'\r\n || this._userSettings.phone_dialer_provider_active != '1')\r\n returnLinks = quicklinks.filter(ql => {\r\n return !ql.quicklink_url.includes('phone.com')\r\n });\r\n\r\n return returnLinks;\r\n }\r\n\r\n public addLink(link?: any) {\r\n let dialogRef = this._dialog.open(AddQuickLinkComponent, {\r\n width: '50%',\r\n data: link\r\n });\r\n\r\n dialogRef.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe(res => {\r\n if (res) {\r\n this.getQuickLinks();\r\n }\r\n });\r\n }\r\n\r\n public confirmDelete(quicklink_id: number) {\r\n let dialogRef = this._dialog.open(ConfirmDeleteComponent, {\r\n width: '30%',\r\n data: {\r\n 'text': 'Are you sure you want to delete these records?'\r\n }\r\n });\r\n\r\n dialogRef.afterClosed().pipe(takeUntil(this._componentDestroyed$)).subscribe(res => {\r\n if (res) {\r\n this._deleteQuickLink(quicklink_id)\r\n }\r\n });\r\n }\r\n\r\n private _deleteQuickLink(quicklink_id: number) {\r\n this._qlService.deleteQuickLink(quicklink_id)\r\n .pipe(first())\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this._toastMsgService.showSuccess(res?.message ? res?.message : \"Quick Link deleted successfully\")\r\n this.getQuickLinks();\r\n }\r\n });\r\n }\r\n\r\n // show/hide +/- buttons against each link\r\n public toggleDisplay(link: any) {\r\n link.display = 1 - link.display;\r\n }\r\n\r\n public saveChanges() {\r\n this._quicklink_id_active_list = [];\r\n\r\n this.quickLinks.map(link => {\r\n this._quicklink_id_active_list.push({\r\n quicklink_id: link?.quicklink_id,\r\n active: link?.display\r\n })\r\n });\r\n\r\n let params = {\r\n quicklink_id_active_list: this._quicklink_id_active_list\r\n }\r\n\r\n this.isLoading = true;\r\n this.isSubmit = true;\r\n this.isEdit = false;\r\n\r\n this._qlService.displaySaveQuickLink(params)\r\n .pipe(first())\r\n .subscribe((res: any) => {\r\n this.isLoading = false;\r\n this.isSubmit = false;\r\n });\r\n }\r\n\r\n //Check for FFIG user\r\n private _checkFFIG_User() {\r\n this._qlService.targetLeadsSSO()\r\n .pipe(first())\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res?.url) {\r\n this.isFFIGUser = (res && res.url);\r\n this._responseToTargetLead = res;\r\n }\r\n },\r\n error: err => { }\r\n });\r\n }\r\n\r\n public openSingleSignOn() {\r\n this._dialog.open(SingleSignOnComponent, {\r\n width: '50%',\r\n autoFocus: false,\r\n data: {\r\n 'data': this._responseToTargetLead,\r\n 'plan': '',\r\n 'quickLinkText': 'Select \"Continue\" to autosign onto the portal for Target Leads'\r\n }\r\n });\r\n }\r\n\r\n public ngOnDestroy(){\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n \"Lead\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
Menu
\r\n\r\n \r\n dashboard\r\n Dashboard\r\n \r\n\r\n \r\n group\r\n Leads\r\n\r\n \r\n \r\n\r\n \r\n calendar_month\r\n Calendar\r\n\r\n \r\n \r\n\r\n \r\n event\r\n Quotes\r\n\r\n \r\n \r\n\r\n \r\n description\r\n Forms\r\n \r\n\r\n \r\n bar_chart\r\n Reports\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n admin_panel_settings\r\n Admin\r\n \r\n \r\n help_outline\r\n Help\r\n \r\n \r\n lock\r\n Privacy Policy\r\n \r\n \r\n \r\n \r\n {{'v'+ versionNumber }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n","import { Component, HostListener, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { LeadDetail } from '@data/lead/lead.interface';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { ViewSwapperService } from '@data/services/quotes/view-swapper.service';\r\nimport { environment } from '@env/environment';\r\nimport { AddEventComponent } from '@modules/calendar/pages/add-event/add-event.component';\r\nimport { NewLeadComponent } from '@modules/lead/components/new-lead/new-lead.component';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { combineLatest, filter, first, Subject, Subscription, takeUntil } from 'rxjs';\r\nimport packageInfo from '../../../../package.json';\r\nimport { QuickLinksComponent } from './quick-links/quick-links.component';\r\nimport { AccountService } from '@data/services/admin/account.service';\r\nimport { IUser } from '@data/user-profile/user-profile.interface';\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss'],\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n private flag: boolean = false; //flag to check popover open ot not\r\n private _componentDestroyed$ = new Subject();\r\n private _cobrandSub: Subscription;\r\n\r\n public defaultLogo: string = 'assets/images/dummy-navBar-logo-transparent.png';\r\n public defaultLogoSmall: string = 'assets/images/dummy-navBar-Logo-transparent-s.png';\r\n\r\n public versionNumber: string;\r\n public quote_url: string = '/quotes';\r\n public admin_url: string = '/admin/users/manage_user';\r\n public lead_url: string = '/lead';\r\n public calendar_url: string = '/calendar';\r\n public report_url: string = '/reports/self-service'\r\n public form_url: string = '/forms/medicare';\r\n public showSidebar: boolean;\r\n public navigateURL : string;\r\n public leadDetails: LeadDetail | null;\r\n\r\n @Input() isExpanded: boolean = false;\r\n @ViewChild(QuickLinksComponent, { static: false }) quickLinkComponent!: QuickLinksComponent;\r\n @ViewChild('sidenav') sidenav: MatSidenavModule;\r\n @ViewChild('panel', { static: true }) private sidePanel: MatSidenav;\r\n @ViewChild('content', { static: true, read: ViewContainerRef }) private vcf: ViewContainerRef;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private router: Router,\r\n private toastMsgService : ToastMsgService,\r\n public authService: AuthService,\r\n public leadService: LeadService,\r\n public commonService: CommonService,\r\n private sidenavService: ViewSwapperService,\r\n private _accountService: AccountService,\r\n ) {\r\n this.versionNumber = packageInfo.appRelease || '';\r\n\r\n this.leadService.changedLead()\r\n .pipe(\r\n takeUntil(this._componentDestroyed$),\r\n )\r\n .subscribe({\r\n next: (leadDetails) => {\r\n this.leadDetails = leadDetails\r\n }\r\n })\r\n\r\n combineLatest([\r\n this.authService.userDetails$,\r\n this.router.events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n first(),\r\n )\r\n ]).pipe(\r\n takeUntil(this._componentDestroyed$),\r\n ).subscribe({\r\n next: ([userDetails, navigation]) => {\r\n const url = navigation.url\r\n this.showSidebar = url.indexOf('registration') < 0;\r\n this.navigateURL = url;\r\n\r\n if (this.showSidebar && userDetails?.account_id)\r\n this._getCobrandDetails(userDetails!.account_id)\r\n }\r\n });\r\n\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n public onResize(event:any): void {\r\n if (this.sidenav !== undefined) {\r\n this.isExpanded = !(event.target.innerWidth <= 980);\r\n\r\n this.commonService.setDashboardUI((event.target.innerWidth <= 665));\r\n this.commonService.setMenuExpand(this.isExpanded);\r\n this.toastMsgService.isExpanded = this.isExpanded;\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.sidenavService.setPanel(this.sidePanel);\r\n this.sidenavService.setContentVcf(this.vcf);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n\r\n if(this._cobrandSub)\r\n this._cobrandSub.unsubscribe();\r\n }\r\n\r\n public isProd() {\r\n return environment.production;\r\n }\r\n\r\n public openQuickLinks() {\r\n this.dialog.open(QuickLinksComponent, {\r\n width: '500px',\r\n });\r\n }\r\n\r\n public addLead(e: Event) {\r\n this.preventRedirectButton(e);\r\n\r\n this.dialog.open(NewLeadComponent, {\r\n width: '60%'\r\n });\r\n }\r\n\r\n public addEvent(e: Event) {\r\n this.preventRedirectButton(e);\r\n\r\n let obj = {\r\n tabName: 'Appointment',\r\n type: 'add',\r\n ...(this.router.url == '/') && { activeModule : 'dashboard'}\r\n }\r\n this.dialog.open(AddEventComponent, {\r\n width: '55%',\r\n data: obj\r\n });\r\n }\r\n\r\n public addQuote(isLead: boolean = false) {\r\n this.leadService.leadSelected = isLead;\r\n this.quote_url = isLead ? '/quotes/mapartd/' + this.leadDetails?.lead_id : '/quotes';\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([this.quote_url]);\r\n });\r\n }\r\n\r\n public preventRedirectButton(e: Event) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n public redirectTo(url: string) {\r\n const currentUrl = url;\r\n if (currentUrl == '/quotes') {\r\n this.leadService.leadSelected = false;\r\n }\r\n\r\n // code to navigate to the selected tab\r\n this.router.navigateByUrl(currentUrl, { skipLocationChange: true }).then(() => {\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n })\r\n });\r\n\r\n }\r\n\r\n public isActiveUrl(activeTab: string) {\r\n if (activeTab == '/lead') {\r\n return this.router.url.startsWith('/lead');\r\n\r\n } else {\r\n return this.router.url.includes(activeTab);\r\n\r\n }\r\n\r\n }\r\n\r\n // method to redirect to dashboard\r\n public redirectToMain() {\r\n this.router.navigate(['/'])\r\n }\r\n\r\n private _getCobrandDetails(accountId: string) {\r\n this._accountService.getLoggedInCobrandDetails(accountId)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe({\r\n next: (cobrandDetails) => {\r\n this.authService.cobrandDetails$.next(cobrandDetails);\r\n this.defaultLogo = cobrandDetails.cobrand_asset_urls['logo_2'];\r\n this.defaultLogoSmall =\r\n cobrandDetails.cobrand_asset_urls['logo_1'];\r\n },\r\n error: (err) => {},\r\n complete: () => {},\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n

{{ message.text ? message.text : 'An error occurred, please try again' }}

\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\r\nimport { environment } from '@env/environment';\r\nimport { CommonService } from '@shared/services/common/common.service';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\nimport { BnNgIdleService } from 'bn-ng-idle';\r\nimport { Observable, Subject, takeUntil } from 'rxjs';\r\nimport { AuthService } from './core/service/auth.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n private _componentDestroyed$ = new Subject;\r\n\r\n public isExpanded: boolean = true;\r\n public message$ = new Subject;\r\n public _selectedTab: string;\r\n public isLoading$: Observable;\r\n\r\n constructor(\r\n private _auth: AuthService,\r\n private _toasMsgService: ToastMsgService,\r\n private _bnIdle: BnNgIdleService,\r\n private _router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private _commonService: CommonService\r\n ) {\r\n this._toasMsgService.subject\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.isExpanded = this._toasMsgService.isExpanded;\r\n this.message$.next(res);\r\n }\r\n });\r\n\r\n this._router.events\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((event: Event) => {\r\n if (event instanceof NavigationStart) {\r\n\r\n this._toasMsgService.resetMessage();\r\n // ...\r\n }\r\n\r\n if (event instanceof NavigationEnd) {\r\n // ...\r\n }\r\n\r\n if (event instanceof NavigationError) {\r\n // ...\r\n }\r\n });\r\n\r\n this._commonService.getMenuExpand()\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe(response => {\r\n this.isExpanded = response;\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading$ = this._commonService.getLoading();\r\n this._selectedTab = this.activatedRoute.snapshot.paramMap.get('tabName') || 'mapartd';\r\n const currentPage = window.location.pathname;\r\n\r\n const allowPageRefreshPatterns = [\r\n /^\\/lead.*/,\r\n /^\\/registration\\.html$/,\r\n /^\\/quotes\\/(mapartd|medsup|final)\\/[0-9]+$/\r\n ];\r\n\r\n const allowPageRefresh = allowPageRefreshPatterns.some(pattern => pattern.test(currentPage));\r\n\r\n if (!allowPageRefresh && currentPage !== '/') {\r\n this._router.navigate(['']);\r\n }\r\n\r\n this._bnIdle.startWatching(18000)\r\n .pipe(takeUntil(this._componentDestroyed$))\r\n .subscribe((isTimedOut: boolean) => {\r\n if (isTimedOut) {\r\n this._auth.killCookie();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this._componentDestroyed$.next(true);\r\n this._componentDestroyed$.complete();\r\n }\r\n\r\n public clearMessage() {\r\n this._toasMsgService.resetMessage();\r\n }\r\n\r\n public isProd() {\r\n return environment.production;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastMsgService } from '@shared/services/toastr/toast-msg.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private toastMsgService: ToastMsgService\r\n ) { }\r\n\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n if (error.status === 500) {\r\n //display red toast for 500 errors\r\n this.toastMsgService.showError(error.error.message);\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DownForMaintenanceComponent } from './pages/down-for-maintenance/down-for-maintenance.component';\r\nimport { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component';\r\nimport { ServerErrorComponent } from './pages/server-error/server-error.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n DownForMaintenanceComponent,\r\n PageNotFoundComponent,\r\n ServerErrorComponent,\r\n ],\r\n imports: [CommonModule, RouterModule],\r\n})\r\nexport class ErrorModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from '@env/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AuthService } from './auth.service';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RefreshTokenService {\r\n\r\n constructor(private http: HttpClient,private authService: AuthService) {\r\n\r\n }\r\n\r\n public requestRefresh(auth: string) {\r\n let body = new FormData();\r\n body.append('grant_type', 'refresh_token');\r\n body.append('refresh_token', auth);\r\n return this.http.post(environment.authClient + 'refresh_token', body).pipe(\r\n catchError((error) => {\r\n this.authService.killCookie();\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpParams, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LeadService } from '@data/services/lead/lead.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { BehaviorSubject, Observable, throwError } from \"rxjs\";\r\nimport { catchError, debounceTime, filter, finalize, switchMap, tap } from \"rxjs/operators\";\r\nimport { AuthService } from '../service/auth.service';\r\nimport { RefreshTokenService } from '../service/refresh-token.service';\r\n\r\n@Injectable()\r\nexport class HttpsInterceptor implements HttpInterceptor {\r\n private AUTH_HEADER = 'Authorization';\r\n private token: string;\r\n private refreshTokenInProgress = false;\r\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n\r\n\tconstructor(\r\n private auth: AuthService,\r\n private cookieService:CookieService,\r\n\t\tprivate refreshToken: RefreshTokenService,\r\n public leadService : LeadService\r\n ) {\r\n\t\tthis.token = this.auth.getToken()?.access_token;\r\n\t}\r\n\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n if (request.body instanceof FormData) {\r\n let ignore =\r\n typeof request.body === 'undefined' ||\r\n request.body === null ||\r\n request.body.toString() === '[object FormData]' || // <-- form data handling\r\n request.headers.has('Content-Type');\r\n\r\n if (ignore) {\r\n return next.handle(request);\r\n }\r\n }\r\n if (!request.headers.has('Content-Type')) {\r\n request = request.clone({\r\n headers: request.headers.set('Content-Type', 'application/json;charset=utf-8'),\r\n });\r\n }\r\n\r\n request = this.addAuthenticationToken(request);\r\n\r\n return next.handle(request).pipe(\r\n tap((res: any) =>{\r\n if (res instanceof HttpResponse) {\r\n let hash = res.headers.get('x-lapro-acl');\r\n if (this.auth?.user_details?.hash !== undefined && hash !== null) {\r\n if (this.auth.user_details.hash !== hash) {\r\n this.auth.killCookie();\r\n }\r\n }\r\n\r\n if (this.auth.getToken() != undefined && JSON.parse((decodeURIComponent(this.cookieService.get(\"LAWEB\")))))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif (this.auth.user_details && this.auth.user_details.user_id != JSON.parse((decodeURIComponent(this.cookieService.get(\"LAWEB\")))).user_id){\r\n\t\t\t\t\t\t\t//Dont kill cookie only redirect to auth\r\n\t\t\t\t\t\tthis.auth.redirectToAuth();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n }\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 401) {\r\n console.error('access denied');\r\n this.auth.killCookie();\r\n } else if (error.status === 419) {\r\n if (this.refreshTokenInProgress) {\r\n // If refreshTokenInProgress is true, we will wait until refreshTokenSubject has a non-null value\r\n // which means the new token is ready and we can retry the requests again\r\n return this.refreshTokenSubject.pipe(\r\n filter((result) => result !== null),\r\n debounceTime(0),\r\n switchMap(() => next.handle(this.addAuthenticationToken(request)))\r\n );\r\n } else {\r\n this.refreshTokenInProgress = true;\r\n // Set the refreshTokenSubject to null so that subsequent API calls will wait until the new token has been retrieved\r\n this.refreshTokenSubject.next(null);\r\n\r\n return this.refreshAccessToken().pipe(\r\n switchMap((data) => {\r\n this.refreshTokenSubject.next(data);\r\n this.token = data.access_token;\r\n this.auth.setToken(data);\r\n return next.handle(this.addAuthenticationToken(request));\r\n }),\r\n // When the call to refreshToken completes we reset the refreshTokenInProgress to false\r\n // for the next time the token needs to be refreshed\r\n finalize(() => (this.refreshTokenInProgress = false))\r\n );\r\n }\r\n } else {\r\n return throwError(() => error);\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n private refreshAccessToken(): Observable {\r\n return this.refreshToken.requestRefresh(this.auth.getToken().refresh_token);\r\n }\r\n\r\n private addAuthenticationToken(request: HttpRequest): HttpRequest {\r\n // If we do not have a token yet then we should not set the header.\r\n // Here we could first retrieve the token from where we store it.\r\n\r\n if (!this.token) {\r\n return request;\r\n }\r\n this.leadService.access_token = this.token;\r\n return request.clone({\r\n headers: request.headers.set(this.AUTH_HEADER, 'Bearer ' + this.token),\r\n ...(request.method == \"GET\" || request.method == \"POST\") && {\r\n params: (request.params ? request.params : new HttpParams())\r\n .set('noCache', new Date().getTime() + this.makeid())\r\n }\r\n });\r\n }\r\n\r\n private makeid() {\r\n let text = \"\";\r\n let possible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n\r\n for (let i = 0; i < 5; i++)\r\n text += possible.charAt(Math.floor(Math.random() * possible.length));\r\n\r\n return text;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AuthService } from './service/auth.service';\r\nimport { ErrorInterceptor } from './interceptor/error.interceptor';\r\nimport { ErrorModule } from './error/error.module';\r\nimport { RefreshTokenService } from './service/refresh-token.service';\r\nimport { HttpsInterceptor } from './interceptor/https.interceptor';\r\n\r\n@NgModule({\r\n declarations: [],\r\n providers: [\r\n AuthService,\r\n RefreshTokenService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpsInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n imports: [CommonModule, ErrorModule],\r\n})\r\nexport class CoreModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AddQuickLinkComponent } from './add-quick-link/add-quick-link.component';\r\nimport { SharedModule } from '@shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AddQuickLinkComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule\r\n ]\r\n})\r\nexport class SidebarModalsModule { }\r\n","import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AuthService } from '@app/service/auth.service';\r\nimport { UserService } from '@data/services/user/user.service';\r\nimport { RegistrationModule } from '@modules/registration/registration.module';\r\nimport { initializeAppFactory } from '@shared/factories/app.initializer';\r\nimport { LaunchdarklyService } from '@shared/services/LaunchDarkly/launchdarkly.service';\r\nimport { SharedModule } from '@shared/shared.module';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { CoreModule } from './core/core.module';\r\nimport { HeaderComponent } from './layout/header/header.component';\r\nimport { QuickLinksComponent } from './layout/sidebar/quick-links/quick-links.component';\r\nimport { SidebarComponent } from './layout/sidebar/sidebar.component';\r\nimport { HeaderModalsModule } from './modal/header-modals/header-modals.module';\r\nimport { SidebarModalsModule } from './modal/sidebar-modals/sidebar-modals.module';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n SidebarComponent,\r\n QuickLinksComponent\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n CoreModule,\r\n BrowserAnimationsModule,\r\n SharedModule,\r\n HeaderModalsModule,\r\n SidebarModalsModule,\r\n RegistrationModule\r\n ],\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initializeAppFactory,\r\n deps: [AuthService, LaunchdarklyService, UserService, CookieService],\r\n multi: true\r\n },\r\n provideHttpClient(withInterceptorsFromDi()),\r\n ]\r\n})\r\nexport class AppModule { }\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 5637,\n\t\"./af.js\": 5637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 4508,\n\t\"./ar-dz.js\": 4508,\n\t\"./ar-kw\": 7504,\n\t\"./ar-kw.js\": 7504,\n\t\"./ar-ly\": 5373,\n\t\"./ar-ly.js\": 5373,\n\t\"./ar-ma\": 2412,\n\t\"./ar-ma.js\": 2412,\n\t\"./ar-sa\": 6670,\n\t\"./ar-sa.js\": 6670,\n\t\"./ar-tn\": 6448,\n\t\"./ar-tn.js\": 6448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 3009,\n\t\"./az.js\": 3009,\n\t\"./be\": 8299,\n\t\"./be.js\": 8299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 1171,\n\t\"./bm.js\": 1171,\n\t\"./bn\": 3590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 3590,\n\t\"./bo\": 4309,\n\t\"./bo.js\": 4309,\n\t\"./br\": 4130,\n\t\"./br.js\": 4130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 5294,\n\t\"./ca.js\": 5294,\n\t\"./cs\": 3028,\n\t\"./cs.js\": 3028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 342,\n\t\"./cy.js\": 342,\n\t\"./da\": 8269,\n\t\"./da.js\": 8269,\n\t\"./de\": 1489,\n\t\"./de-at\": 2123,\n\t\"./de-at.js\": 2123,\n\t\"./de-ch\": 7757,\n\t\"./de-ch.js\": 7757,\n\t\"./de.js\": 1489,\n\t\"./dv\": 8152,\n\t\"./dv.js\": 8152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 6668,\n\t\"./en-au.js\": 6668,\n\t\"./en-ca\": 6798,\n\t\"./en-ca.js\": 6798,\n\t\"./en-gb\": 3615,\n\t\"./en-gb.js\": 3615,\n\t\"./en-ie\": 1364,\n\t\"./en-ie.js\": 1364,\n\t\"./en-il\": 9907,\n\t\"./en-il.js\": 9907,\n\t\"./en-in\": 533,\n\t\"./en-in.js\": 533,\n\t\"./en-nz\": 3190,\n\t\"./en-nz.js\": 3190,\n\t\"./en-sg\": 1096,\n\t\"./en-sg.js\": 1096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 7726,\n\t\"./es-do\": 5010,\n\t\"./es-do.js\": 5010,\n\t\"./es-mx\": 3654,\n\t\"./es-mx.js\": 3654,\n\t\"./es-us\": 9043,\n\t\"./es-us.js\": 9043,\n\t\"./es.js\": 7726,\n\t\"./et\": 5343,\n\t\"./et.js\": 5343,\n\t\"./eu\": 728,\n\t\"./eu.js\": 728,\n\t\"./fa\": 787,\n\t\"./fa.js\": 787,\n\t\"./fi\": 1771,\n\t\"./fi.js\": 1771,\n\t\"./fil\": 5335,\n\t\"./fil.js\": 5335,\n\t\"./fo\": 9761,\n\t\"./fo.js\": 9761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 8991,\n\t\"./fr-ca.js\": 8991,\n\t\"./fr-ch\": 7280,\n\t\"./fr-ch.js\": 7280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 4203,\n\t\"./fy.js\": 4203,\n\t\"./ga\": 9858,\n\t\"./ga.js\": 9858,\n\t\"./gd\": 8605,\n\t\"./gd.js\": 8605,\n\t\"./gl\": 7365,\n\t\"./gl.js\": 7365,\n\t\"./gom-deva\": 3896,\n\t\"./gom-deva.js\": 3896,\n\t\"./gom-latn\": 5587,\n\t\"./gom-latn.js\": 5587,\n\t\"./gu\": 7950,\n\t\"./gu.js\": 7950,\n\t\"./he\": 2029,\n\t\"./he.js\": 2029,\n\t\"./hi\": 1897,\n\t\"./hi.js\": 1897,\n\t\"./hr\": 9816,\n\t\"./hr.js\": 9816,\n\t\"./hu\": 2253,\n\t\"./hu.js\": 2253,\n\t\"./hy-am\": 8196,\n\t\"./hy-am.js\": 8196,\n\t\"./id\": 1307,\n\t\"./id.js\": 1307,\n\t\"./is\": 5474,\n\t\"./is.js\": 5474,\n\t\"./it\": 3099,\n\t\"./it-ch\": 8188,\n\t\"./it-ch.js\": 8188,\n\t\"./it.js\": 3099,\n\t\"./ja\": 9127,\n\t\"./ja.js\": 9127,\n\t\"./jv\": 182,\n\t\"./jv.js\": 182,\n\t\"./ka\": 758,\n\t\"./ka.js\": 758,\n\t\"./kk\": 3444,\n\t\"./kk.js\": 3444,\n\t\"./km\": 2034,\n\t\"./km.js\": 2034,\n\t\"./kn\": 6223,\n\t\"./kn.js\": 6223,\n\t\"./ko\": 3064,\n\t\"./ko.js\": 3064,\n\t\"./ku\": 8714,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 2062,\n\t\"./ky.js\": 2062,\n\t\"./lb\": 4796,\n\t\"./lb.js\": 4796,\n\t\"./lo\": 9279,\n\t\"./lo.js\": 9279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 1840,\n\t\"./lv.js\": 1840,\n\t\"./me\": 2240,\n\t\"./me.js\": 2240,\n\t\"./mi\": 3588,\n\t\"./mi.js\": 3588,\n\t\"./mk\": 5518,\n\t\"./mk.js\": 5518,\n\t\"./ml\": 7823,\n\t\"./ml.js\": 7823,\n\t\"./mn\": 8657,\n\t\"./mn.js\": 8657,\n\t\"./mr\": 1285,\n\t\"./mr.js\": 1285,\n\t\"./ms\": 3014,\n\t\"./ms-my\": 6253,\n\t\"./ms-my.js\": 6253,\n\t\"./ms.js\": 3014,\n\t\"./mt\": 167,\n\t\"./mt.js\": 167,\n\t\"./my\": 7940,\n\t\"./my.js\": 7940,\n\t\"./nb\": 14,\n\t\"./nb.js\": 14,\n\t\"./ne\": 9023,\n\t\"./ne.js\": 9023,\n\t\"./nl\": 4208,\n\t\"./nl-be\": 1412,\n\t\"./nl-be.js\": 1412,\n\t\"./nl.js\": 4208,\n\t\"./nn\": 1354,\n\t\"./nn.js\": 1354,\n\t\"./oc-lnc\": 870,\n\t\"./oc-lnc.js\": 870,\n\t\"./pa-in\": 389,\n\t\"./pa-in.js\": 389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 4774,\n\t\"./pt-br\": 3003,\n\t\"./pt-br.js\": 3003,\n\t\"./pt.js\": 4774,\n\t\"./ro\": 5333,\n\t\"./ro.js\": 5333,\n\t\"./ru\": 3451,\n\t\"./ru.js\": 3451,\n\t\"./sd\": 3921,\n\t\"./sd.js\": 3921,\n\t\"./se\": 9682,\n\t\"./se.js\": 9682,\n\t\"./si\": 582,\n\t\"./si.js\": 582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 5337,\n\t\"./sl.js\": 5337,\n\t\"./sq\": 9358,\n\t\"./sq.js\": 9358,\n\t\"./sr\": 683,\n\t\"./sr-cyrl\": 9382,\n\t\"./sr-cyrl.js\": 9382,\n\t\"./sr.js\": 683,\n\t\"./ss\": 1156,\n\t\"./ss.js\": 1156,\n\t\"./sv\": 9855,\n\t\"./sv.js\": 9855,\n\t\"./sw\": 8536,\n\t\"./sw.js\": 8536,\n\t\"./ta\": 7754,\n\t\"./ta.js\": 7754,\n\t\"./te\": 7809,\n\t\"./te.js\": 7809,\n\t\"./tet\": 1297,\n\t\"./tet.js\": 1297,\n\t\"./tg\": 2527,\n\t\"./tg.js\": 2527,\n\t\"./th\": 5862,\n\t\"./th.js\": 5862,\n\t\"./tk\": 9331,\n\t\"./tk.js\": 9331,\n\t\"./tl-ph\": 4387,\n\t\"./tl-ph.js\": 4387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 9732,\n\t\"./tr.js\": 9732,\n\t\"./tzl\": 9570,\n\t\"./tzl.js\": 9570,\n\t\"./tzm\": 3553,\n\t\"./tzm-latn\": 80,\n\t\"./tzm-latn.js\": 80,\n\t\"./tzm.js\": 3553,\n\t\"./ug-cn\": 5674,\n\t\"./ug-cn.js\": 5674,\n\t\"./uk\": 9974,\n\t\"./uk.js\": 9974,\n\t\"./ur\": 5773,\n\t\"./ur.js\": 5773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 7135,\n\t\"./uz-latn.js\": 7135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 43,\n\t\"./vi.js\": 43,\n\t\"./x-pseudo\": 767,\n\t\"./x-pseudo.js\": 767,\n\t\"./yo\": 150,\n\t\"./yo.js\": 150,\n\t\"./zh-cn\": 1828,\n\t\"./zh-cn.js\": 1828,\n\t\"./zh-hk\": 6644,\n\t\"./zh-hk.js\": 6644,\n\t\"./zh-mo\": 9305,\n\t\"./zh-mo.js\": 9305,\n\t\"./zh-tw\": 1860,\n\t\"./zh-tw.js\": 1860\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;"],"x_google_ignoreList":[129]}