{"version":3,"file":"static/js/822.60fa921b.chunk.js","mappings":"yLACA,QAAyB,+BAAzB,EAAuE,qCAAvE,EAA2H,qC,yCCOpH,MAAMA,EAAgBA,KACzB,MAAM,UAAEC,EAAS,WAAEC,EAAU,aAAEC,GCOHC,MAC5B,MAAMC,EAAa,8BAGZH,EAAYI,IAAiBC,EAAAA,EAAAA,WAAS,IAO7CC,EAAAA,EAAAA,YAAU,KACNC,GAAa,GACd,CAACP,IAEJ,MAAMQ,EAAYA,CAACC,EAAcC,EAAeC,KAC5C,MAAMC,EAAI,IAAIC,KACdD,EAAEE,QAAQF,EAAEG,UAAqB,GAATJ,EAAc,GAAK,GAAK,KAChD,MAAMK,EAAO,WAAAC,OAAcL,EAAEM,eAC7BC,SAASC,OAAM,GAAAH,OAAMR,EAAI,KAAAQ,OAAIP,EAAK,KAAAO,OAAID,EAAO,UAAS,EAGpDK,EAAaZ,IACf,MAAMa,EAA6BH,SAASC,OAAOG,MAAM,KACnDC,EAA4BF,EAAYG,OACxCtB,EAAU,GAAAc,OAAMR,EAAI,KAC1B,IAAIW,EAEJ,IAAK,IAAIM,EAAI,EAAGA,EAAIF,EAAmBE,GAAK,EAExC,GADAN,EAASE,EAAYI,GAAGC,QAAQ,QAAS,IACN,IAA/BP,EAAOQ,QAAQzB,GACf,OAAOiB,EAAOS,UAAU1B,EAAWsB,OAAQL,EAAOK,QAI1D,MAAO,EAAE,EAGPlB,EAAcA,KACc,MAA1Bc,EAAUlB,IACVC,GAAc,EAClB,EAoBJ,MAAO,CACHL,WAlBc+B,EAAAA,EAAAA,GAAY,CAC1BC,WAAY,CACRC,WAAY,CACRC,eAAgB,CACZC,KAAM,CACFC,gBAAiB,UACjBC,aAAc,MACdC,MAAO,UACPC,SAASC,EAAAA,EAAAA,IAAQ,GACjBC,UAAUD,EAAAA,EAAAA,IAAQ,IAClBE,WAAY,UAS5BjC,YACAa,YACArB,aACAI,gBACAG,cACAN,aA9DiBA,KACjBO,EAAUL,EAAY,IALH,KAMnBC,GAAc,EAAM,EA6DvB,ED5E+CF,GAEhD,OAAOF,GACH0C,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAcC,SAAA,EAC1BH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAoBC,SAAA,CAAC,yFAGjCC,EAAAA,EAAAA,KAAA,KACIH,UAAWC,EACXG,KAAK,2DACLC,OAAO,SACPC,IAAI,aAAYJ,SACnB,mBAEG,QAGRC,EAAAA,EAAAA,KAACI,EAAAA,EAAa,CAACC,MAAOpD,EAAU8C,UAC5BC,EAAAA,EAAAA,KAACM,EAAAA,EAAU,CAACC,GAAI,CAAEf,QAAS,GAAK,aAAW,QAAQgB,QAASrD,EAAa4C,UACrEC,EAAAA,EAAAA,KAACS,EAAAA,EAAS,WAItB,IAAI,E,qCE9BZ,MAuBA,EAvByBC,IACrBd,EAAAA,EAAAA,MAAA,OAAKe,MAAM,6BAA6BC,SAAS,WAAWC,QAAQ,iBAAkBH,EAAKX,SAAA,EACvFC,EAAAA,EAAAA,KAAA,QACIlC,EAAE,kBACFgD,MAAO,CACHC,KAAM,cAGdf,EAAAA,EAAAA,KAAA,QACIlC,EAAE,6bACFgD,MAAO,CACHC,KAAM,WAGdf,EAAAA,EAAAA,KAAA,QACIlC,EAAE,6hDACFgD,MAAO,CACHC,KAAM,gB,qFCjBtB,MAmBA,EAnBqCL,IACjCd,EAAAA,EAAAA,MAAA,OACIe,MAAM,6BACNK,GAAG,UACHC,EAAG,EACHC,EAAG,EACHL,QAAQ,YACRD,SAAS,cACLF,EAAKX,SAAA,EAETC,EAAAA,EAAAA,KAAA,SAAAD,SAAQ,+DACRC,EAAAA,EAAAA,KAAA,QACIH,UAAU,YACV/B,EAAE,wmEAENkC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,YAAY/B,EAAE,4D,yBChBtC,SAAgB,YAAc,iCAAiC,6BAA+B,kDAAkD,2BAA6B,gDAAgD,oBAAsB,yCAAyC,qBAAuB,0CAA0C,qBAAuB,0CAA0C,sBAAwB,2CAA2C,oBAAsB,yCAAyC,iCAAmC,sDAAsD,wBAA0B,6CAA6C,6BAA+B,kDAAkD,yBAA2B,8CAA8C,eAAiB,oCAAoC,sBAAwB,2CAA2C,kBAAoB,wCCsFt+B,EAhFoBqD,KAChBvB,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOsB,YAAYrB,SAAA,EAC/BC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOuB,6BAA6BtB,UAChDC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOwB,2BAA2BvB,UAC9CH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOyB,oBAAoBxB,SAAA,EACvCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO0B,qBAAqBzB,UACxCC,EAAAA,EAAAA,KAACyB,EAAAA,EAAc,OAEnBzB,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO4B,qBAAqB3B,SAAC,kDAMzDH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO6B,oBAAoB5B,SAAA,EACvCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO8B,kBAAkB7B,UACrCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO+B,sBAAsB9B,SAAC,gJAKlDC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOgC,oBAAoB/B,UACvCH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOiC,eAAehC,SAAA,EAClCH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOkC,sBAAsBjC,SAAA,EACzCC,EAAAA,EAAAA,KAAA,QAAAD,SAAM,mBACNC,EAAAA,EAAAA,KAAA,QAAAD,SAAOkC,EAAAA,SAEXjC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOoC,0BAG/BtC,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOqC,oBAAoBpC,SAAA,EACvCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOsC,iCAAiCrC,UACpDC,EAAAA,EAAAA,KAAA,OAAAD,SAAK,6JAMTH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOuC,wBAAwBtC,SAAA,EAC3CC,EAAAA,EAAAA,KAAA,OAAAD,UACIC,EAAAA,EAAAA,KAACsC,EAA2B,CAACC,MAAO,QAExC3C,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO0C,6BAA6BzC,SAAA,EAChDC,EAAAA,EAAAA,KAAA,OAAAD,SAAK,qFAILC,EAAAA,EAAAA,KAAA,OAAAD,SAAK,0EAETH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO2C,yBAAyB1C,SAAA,EAC5CC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,qEAAoEF,SAAC,iBAG5E,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,4DAA2DF,SAAC,oBAGnE,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,yCAAwCF,SAAC,mBAChD,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,uCAAsCF,SAAC,iBAC9C,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,yEAAwEF,SAAC,iCAGhF,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,qDAAoDF,SAAC,aAC5D,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,sCAAqCF,SAAC,yBAC7C,OACDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,iFAAgFF,SAAC,wD,0BC3EjH,MAoCA,EApCuBW,IACnBd,EAAAA,EAAAA,MAAA,OACIe,MAAM,6BACNK,GAAG,UACHC,EAAG,EACHC,EAAG,EACHL,QAAQ,cACRD,SAAS,cACLF,EAAKX,SAAA,EAETC,EAAAA,EAAAA,KAAA,SAAAD,SAAQ,4DACRC,EAAAA,EAAAA,KAAA,QACIH,UAAU,MACV/B,EAAE,wEAENkC,EAAAA,EAAAA,KAAA,QACIlC,EAAE,oEACFgD,MAAO,CACH4B,SAAU,UACVC,SAAU,UACV5B,KAAM,WAGdf,EAAAA,EAAAA,KAAA,QACIH,UAAU,MACV/B,EAAE,oGAENkC,EAAAA,EAAAA,KAAA,QACIlC,EAAE,2GACFgD,MAAO,CACHC,KAAM,a,0BCxBf,MCPP,GAAgB,mBAAqB,oCAAoC,gBAAkB,iCAAiC,cAAgB,+BAA+B,QAAU,yBAAyB,4BAA8B,6CAA6C,0BAA4B,2CAA2C,mBAAqB,oCAAoC,uBAAyB,wCAAwC,yBAA2B,0CAA0C,6BAA+B,8CAA8C,yBAA2B,0CAA0C,SAAW,0BAA0B,kBAAoB,mCAAmC,2BAA6B,4CAA4C,kBAAoB,mCAAmC,eAAiB,gCAAgC,gBAAkB,iCAAiC,sBAAwB,uCAAuC,WAAa,4BAA4B,wBAAwB,uCAAuC,wBAAwB,uCAAuC,8BAA8B,6CAA6C,8BAA8B,6CAA6C,cAAgB,+BAA+B,oBAAsB,qCAAqC,oBAAsB,qCAAqC,qBAAuB,sCAAsC,2BAA2B,2C,eCcnmD,MAAM6B,EAAUA,KACnB,MAAM,SAAEC,GFRkBC,MAC1B,MAAMC,GAAMC,EAAAA,EAAAA,YAAWC,EAAAA,IACjB,iBAAEC,EAAmB,IAAOH,EAoClC,MAAO,CAAEF,SAlCQ,CACb,CACIM,IAAK,mBACLC,MAAO,oBACPC,YACI,qFACJC,MAAM,GAADnF,OAAK+E,EAAgB,4DAC1BK,IAAK,kBAET,CACIJ,IAAK,mBACLC,MAAO,oBACPC,YAAa,qEACbC,MAAM,GAADnF,OAAK+E,EAAgB,oDAC1BK,IAAK,UAET,CACIJ,IAAK,cACLC,MAAO,eACPC,YACI,oGACJC,MAAM,GAADnF,OAAK+E,EAAgB,uDAC1BK,IAAK,aAET,CACIJ,IAAK,sBACLC,MAAO,uBACPC,YACI,mFACJC,MAAM,GAADnF,OAAK+E,EAAgB,2DAC1BK,IAAK,kBAIM,EE9BET,IACf,SAAEU,EAAQ,UAAEC,IAAcC,EAAAA,EAAAA,OAC1B,2BAAEC,IAA+BC,EAAAA,EAAAA,MACjC,kBAAEC,IAAsBC,EAAAA,EAAAA,MACvBC,EAAsBC,IAAwBzG,EAAAA,EAAAA,WAAS,IACxD,KAAE0G,IAASC,EAAAA,EAAAA,MAWjB,OATA1G,EAAAA,EAAAA,YAAU,KACN,GAAIyG,EAAM,CACN,MAAME,EAAU9F,SAAS+F,eAAeH,EAAKpF,QAAQ,IAAK,KACtDsF,GACAA,EAAQE,eAAe,CAAEC,SAAU,UAE3C,IACD,CAACL,KAGArE,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOyE,QAAQxE,SAAA,EAC3BH,EAAAA,EAAAA,MAAA,OAAKoB,GAAG,sBAAsBnB,UAAWC,EAAO0E,sBAAsBzE,SAAA,EAClEC,EAAAA,EAAAA,KAACyE,EAAAA,GAAO,CACJ5E,UAAWC,EAAO4E,4BAClBC,GAAIC,EAAAA,GAAYC,GAChBC,KAAM,EACNnF,WAAYoF,EAAAA,GAAWC,SAASjF,SACnC,0BAGDH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAOmF,0BAA0BlF,SAAA,EAC7CH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO0E,sBAAsBzE,SAAA,EACzCC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAOoF,mBAAmBnF,SAAC,8RAOxC0D,GACGzD,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,EAAOsF,yBAClBC,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvBC,WAAYC,EAAAA,GAAaC,UACzBnF,QAASA,IAAMmD,GAA2B,GAAM5D,SACnD,gBAGD,SAERC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO8F,uBAAuB7F,UAC1CC,EAAAA,EAAAA,KAAC6F,EAAa,CACVhG,UAAWC,EAAOgG,yBAClBvD,MAAOiB,EAAW,GAAK,GACvBhD,QAASA,KACLwD,GAAqB,IACrB+B,EAAAA,EAAAA,GACI,eACA,sCACA,iCACH,MAIXtC,EASE,MARAzD,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,EAAOsF,yBAClBC,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvBhF,QAASA,IAAMmD,GAA2B,GAAM5D,SACnD,uBAObH,EAAAA,EAAAA,MAAA,OAAKoB,GAAG,kBAAkBnB,UAAWC,EAAO+C,SAAS9C,SAAA,EACjDC,EAAAA,EAAAA,KAACyE,EAAAA,GAAO,CACJE,GAAIC,EAAAA,GAAYC,GAChBC,KAAM,EACNnF,WAAYoF,EAAAA,GAAWiB,KACvBnG,UAAWC,EAAOmG,kBAAkBlG,SACvC,kCAIDC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOoG,2BAA2BnG,UAC9CC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOqG,kBAAkBpG,SACpC8C,EAASuD,KAAKC,IACXzG,EAAAA,EAAAA,MAAA,OAAuBC,UAAWC,EAAOwG,eAAevG,SAAA,EACpDC,EAAAA,EAAAA,KAAA,OACIH,UAAWC,EAAOyG,cAClBC,IAAKH,EAAQ/C,MACbC,IAAK8C,EAAQ9C,OAGjBvD,EAAAA,EAAAA,KAACyE,EAAAA,GAAO,CACJE,GAAIC,EAAAA,GAAY6B,GAChB5G,UAAWC,EAAO4G,gBAClB5B,KAAM,EAAE/E,SAEPsG,EAAQjD,SAEbpD,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAO6G,sBAAsB5G,SACtCsG,EAAQhD,gBAfPgD,EAAQlD,YAqB9BvD,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO8G,cAAc7G,SAAA,EACjCH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO+G,oBAAoB9G,SAAA,EACvCC,EAAAA,EAAAA,KAACyE,EAAAA,GAAO,CAACE,GAAIC,EAAAA,GAAYC,GAAIhF,UAAWC,EAAOgH,qBAAqB/G,SAAC,mBAGrEC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAOiH,oBAAoBhH,SAAC,4KAO9CC,EAAAA,EAAAA,KAAA,OACIH,UAAS,GAAA1B,OAAK2B,EAAOkH,mBAAkB,KAAA7I,OAAI2B,EAAO,6BAClDyD,IAAI,qBACJiD,IAAK3C,WAKjB7D,EAAAA,EAAAA,KAACiH,EAAAA,GAAQ,CACLC,KAAMnD,EACNoD,YAAaA,IAAYnD,GAAqB,GAAOjE,UAErDC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAOsH,6BAA6BrH,UAChDC,EAAAA,EAAAA,KAAA,UACIwG,IAAI,uDACJpD,MAAM,uBACNiE,MAAM,2FACNC,iBAAe,UAIzB,E,gDC7Jd,SAAgB,OAAS,oCAAoC,gBAAkB,6CAA6C,gBAAkB,6CAA6C,oBAAsB,iDAAiD,eAAiB,4CAA4C,aAAe,0CAA0C,aAAe,0CAA0C,cAAgB,2CAA2C,mBAAqB,gDAAgD,kBAAoB,+CAA+C,cAAgB,4CCUvnBC,EAAoBA,KAC7B,MAAM,oBAAEC,IAAwB1D,EAAAA,EAAAA,KAEhC,OACIlE,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO2H,OAAO1H,SAAA,EAC1BH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO4H,gBAAgB3H,SAAA,EACnCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO6H,gBAAgB5H,UACnCC,EAAAA,EAAAA,KAAA,OACIH,UAAWC,EAAO8H,aAClBrE,IAAI,aACJiD,IAAKgB,OAIb5H,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO6H,gBAAgB5H,SAAA,EACnCH,EAAAA,EAAAA,MAAA,KACIC,UAAWC,EAAO+H,oBAClB5H,KAAI,8BAAA9B,OAAgC2J,EAAAA,IACpC5H,OAAO,SACPC,IAAI,aAAYJ,SAAA,CACnB,4BAC2BC,EAAAA,EAAAA,KAAA,SAAM,uBAIlCA,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAO+H,oBAAqB5H,KAAI,OAAA9B,OAAS8D,EAAAA,IAAelC,SACjEkC,EAAAA,MAGLjC,EAAAA,EAAAA,KAAA,KACIH,UAAWC,EAAO+H,oBAClB5H,KAAI,UAAA9B,OAAY4J,EAAAA,GAAY,oBAAmBhI,SAE9CgI,EAAAA,SAITnI,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO6H,gBAAgB5H,SAAA,EACnCH,EAAAA,EAAAA,MAAA,KACIC,UAAWC,EAAOkI,eAClB/H,KAAK,8CAA6CF,SAAA,EAElDC,EAAAA,EAAAA,KAACiI,EAAAA,IAAc,CACXpI,UAAWC,EAAOoI,aAClBC,KAAK,MACL,aAAW,kBACb,eAINvI,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,EAAOkI,eAAgB/H,KAAK,sCAAqCF,SAAA,EAC3EC,EAAAA,EAAAA,KAACoI,EAAAA,EAAW,CACRvI,UAAWC,EAAOoI,aAClBC,KAAK,MACL,aAAW,iBACb,cAINvI,EAAAA,EAAAA,MAAA,KACIC,UAAWC,EAAOkI,eAClB/H,KAAK,+CAA8CF,SAAA,EAEnDC,EAAAA,EAAAA,KAACqI,EAAAA,EAAa,CACVxI,UAAWC,EAAOoI,aAClBC,KAAK,MACL,aAAW,mBACb,gBAINvI,EAAAA,EAAAA,MAAA,KACIC,UAAWC,EAAOkI,eAClB/H,KAAK,wDAAuDF,SAAA,EAE5DC,EAAAA,EAAAA,KAACsI,EAAAA,IAAc,CACXzI,UAAWC,EAAOoI,aAClBC,KAAK,MACL,aAAW,kBACb,kBAKVnI,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,EAAO6H,gBAAgB5H,UACnCH,EAAAA,EAAAA,MAAA,QAAAG,SAAA,CAAM,0HAGFC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAOyI,cAAetI,KAAI,OAAA9B,OAASqK,EAAAA,IAAoBzI,SAChEyI,EAAAA,KACD,2BAMhB5I,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAAO2I,cAAc1I,SAAA,EACjCC,EAAAA,EAAAA,KAAA,QAAMH,UAAWC,EAAO4I,kBAAkB3I,SAAE4I,EAAAA,MAE5C/I,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,EAAO8I,mBAAmB7I,SAAA,EACpCC,EAAAA,EAAAA,KAAA,KACIC,KAAM4I,EAAAA,GACN3I,OAAO,SACPL,UAAWC,EAAOgJ,kBAClB3I,IAAI,aAAYJ,SACnB,kBAGDC,EAAAA,EAAAA,KAAA,KACIC,KAAM8I,EAAAA,GACN7I,OAAO,SACPL,UAAWC,EAAOgJ,kBAClB3I,IAAI,aAAYJ,SACnB,2BAKP,E,oCChId,QAAuF,yCAAvF,EAAwJ,+CAAxJ,EAA8M,8BCmBjMiJ,EAAsBtI,IAAkD,IAADuI,EAChF,MAAMC,GAAuBC,EAAAA,EAAAA,GAAeC,EAAAA,KACtC,uBAAEC,GAA2B3I,EAI7B4I,EAASC,EAAAA,KAAaC,MAAM,CAC9BC,aAAcF,EAAAA,KACTG,SAAS,qBACTC,MAAM,6DACNC,QAAQC,EAAAA,GAAa,gEAGxB,SACFC,EAAQ,MACRC,EAAK,aACLC,EACAC,WAAW,OAAEC,EAAM,QAAEC,EAAO,YAAEC,KAC9BC,EAAAA,EAAAA,IAAQ,CACRC,KAAM,WACNC,aAAc,MACdC,eAAgB,WAChBC,UAAUC,EAAAA,EAAAA,GAAYpB,EAAQ,CAAEqB,YAAY,OAGhDnN,EAAAA,EAAAA,YAAU,KACF2M,GACAJ,GACJ,GACD,CAACK,IAEJ,MAAMQ,GAAeC,EAAAA,EAAAA,IAAgB3B,GAErC,OACItJ,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,EAA0BC,SAAA,EACtCC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,EAAgCC,SA/BlD,sFAiCIC,EAAAA,EAAAA,KAAA,QAAMH,UAAWC,EAAYC,UACzBC,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,gBACX/J,GAAG,wBACHqE,KAAK,QACL2F,YAAY,gBACZC,WAAS,EACTnB,SAAUA,EAAS,gBACnBoB,YAAahB,EAAOT,aACpB0B,aAAiC,QAArBlC,EAAEiB,EAAOT,oBAAY,IAAAR,OAAA,EAAnBA,EAAqBmC,aAG3CpL,EAAAA,EAAAA,KAACqL,EAAAA,GAAmB,CAChBhG,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvB8F,SAAUV,EACVpK,QAASwJ,EAAaX,GACtBkC,QAASX,EAAa7K,SACzB,aAGC,EC3EDyL,EAAkBjC,EAAAA,KAAaC,MAAM,CAC9CiC,SAAUlC,EAAAA,KACLG,SAAS,qBACTC,MAAM,6DACNC,QAAQC,EAAAA,GAAa,6DAC1B6B,SAAUnC,EAAAA,KACLG,SAAS,wBACTiC,IAAI,EAAG,4C,qCCThB,SAA4B,8BAA5B,GAA4E,oCAA5E,GAA0P,8CAA1P,GAA6T,uCAA7T,GAA4X,0CAA5X,GAAmb,+BAAnb,GAAqe,qC,wCCAre,SAAyB,+BAAzB,GAAuE,qCAAvE,GAAkH,4BAAlH,GAA8J,sCAA9J,GAA0M,4BAA1M,GAAoP,oCAApP,GAAwS,sCAAxS,GAA8V,sCAA9V,GAA0e,oCAA1e,GAAkiB,0CAAliB,GAAsmB,gDAAtmB,GAAirB,iDAAjrB,GAAsvB,0CAAtvB,GAAozB,0C,gBCS7yB,MAAMC,GAAiBA,KAC1B,MAAQC,KAAMC,IAAqBC,EAAAA,GAAAA,GAAuB,CACtDpO,KAAMqO,EAAAA,EAAaC,oBAEfJ,KAAMK,IAAuBH,EAAAA,GAAAA,GAAuB,CACxDpO,KAAMqO,EAAAA,EAAaG,sBAEfN,KAAMO,IAAuBL,EAAAA,GAAAA,GAAuB,CACxDpO,KAAMqO,EAAAA,EAAaK,qBAGvB,MAAO,CACHP,mBACAI,qBACAE,qBACH,E,eCzBE,MAAME,GACE,iBADFA,GAEO,uB,gBC4Bb,MAAMC,GAAgB7L,IACzB,MAAM,WAAE8L,EAAU,aAAEC,EAAY,gBAAEC,GAAoBhM,EAEhDqC,GAAMC,EAAAA,EAAAA,YAAWC,EAAAA,IACjB,iBAAE0J,EAAmB,IAAO5J,GAC5B,YAAE6J,EAAW,gBAAEC,EAAe,eAAEC,IAAmBC,EAAAA,EAAAA,OACnD,iBAAEjB,EAAgB,mBAAEI,EAAkB,mBAAEE,GAAuBR,MAC7DC,KAAMmB,IAAiCjB,EAAAA,GAAAA,GAAuB,CAClEpO,KAAMqO,EAAAA,EAAaiB,uBAGhBC,EAAQC,IAAa5P,EAAAA,EAAAA,aACrB6P,IAAmBC,EAAAA,EAAAA,MACpBC,GAASC,EAAAA,EAAAA,MACTC,EAAWC,EAAAA,GAAmBC,IAAY,QACzC,CAAEC,IAAgBC,EAAAA,GAAAA,GACrBtB,QACAuB,IAEG,CAAEC,IAAqBF,EAAAA,GAAAA,GAC1BtB,QACAuB,IAGJrQ,EAAAA,EAAAA,YAAU,KACN,GAAImP,EAAkB,CAClB,MAAMO,EAASa,OAAOC,SAASC,OAAOC,gBAAgB,CAClDC,UAAWxB,EACXyB,MAAOxB,EACPyB,SAAUC,IAEdnB,EAAUD,EACd,IACD,IAEH,MAAMoB,EAAmBC,IACrB,MAAMC,EAAU,CACZC,UAAWF,EAASG,aACpBC,SAAU,SACVC,uBAAuB,EACvBC,0BAA2BrB,GAO/B,GALIf,IACAA,EAAa+B,IACbzI,EAAAA,EAAAA,GAAqB,QAAS,wBAAyB,0BAGvD2G,EAAiB,CACjB,MAAMoC,EAAiB1B,EAAgBM,IAAI,UACrCqB,EAAiB3B,EAAgBM,IAAI,WACvCoB,IACAN,EAAQQ,UAAYF,GAEpBC,IACAP,EAAQS,cAAgBF,GAE5BrC,EAAgB8B,EACpB,CACAU,eAAeC,QAAQ,WAAY,SAAS,EAoEhD,OACIvP,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,EACIC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAcC,UAC1BC,EAAAA,EAAAA,KAACyE,EAAAA,GAAO,CACJ5E,UAAWC,GACX6E,GAAIC,EAAAA,GAAYyK,GAChBvK,KAAM,EACNnF,WAAYoF,EAAAA,GAAWuK,OAAOvP,SAE7ByM,OAIT5M,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAWC,SAAA,EACvBH,EAAAA,EAAAA,MAAA,OAAKC,UAAS,GAAA1B,OAAK2B,IAAuBC,SAAA,CACrC+L,IACG9L,EAAAA,EAAAA,KAACuP,EAAAA,GAAkB,CACfjK,QAASC,EAAAA,EAAcC,UACvBhF,QAASA,KApCzB0M,GACAA,EAAOsC,oBAmC8C,EACrCC,MAAMzP,EAAAA,EAAAA,KAAC0P,GAAAA,IAAQ,CAAC5K,KAAMwI,IAAWqC,GAAAA,EAAiBC,OAAS,GAAK,KAChE/P,UAAS,GAAA1B,OAAK2B,GAAU,KAAA3B,OAAI2B,IAC5BnC,KAAK,WAGZuO,IACGlM,EAAAA,EAAAA,KAACuP,EAAAA,GAAkB,CACfjK,QAASC,EAAAA,EAAcC,UACvBhF,QAASA,IAxCTqP,MACpB,MAAMf,EAAiB1B,EAAgBM,IAAI,UACrCqB,EAAiB3B,EAAgBM,IAAI,WACvCoB,GACAnB,EAAamB,GAEbC,GACAjB,EAAkBiB,GAEtBe,OAAOC,SAAS9P,KAAI,GAAA9B,OAAM0O,EAAe,WAAA1O,OAAU2O,EAAekD,MAAK,eAAA7R,OAAc2O,EAAemD,SAAQ,kBAAA9R,OAAiB2O,EAAeoD,YAAW,WAAA/R,OAAU2O,EAAesB,QAChLrI,EAAAA,EAAAA,GAAqB,QAAS,0BAA2B,0BAA0B,EA8B1C8J,GACrBJ,MACIzP,EAAAA,EAAAA,KAACmQ,GAAAA,IAAU,CAACrL,KAAMwI,IAAWqC,GAAAA,EAAiBC,OAAS,GAAK,KAEhE/P,UAAS,GAAA1B,OAAK2B,GAAU,KAAA3B,OAAI2B,IAC5BnC,KAAK,aAGZyO,IACGpM,EAAAA,EAAAA,KAACuP,EAAAA,GAAkB,CACfjK,QAASC,EAAAA,EAAcC,UACvBhF,QAASA,IAvGP4P,MACtB,MAAMC,EAAiB,CACnB5B,UAAW,GACXE,SAAU,WACVC,uBAAuB,EACvBC,0BAA2BrB,GAG9BsC,OAAeQ,GAAGC,gBAAgBhC,IACP,YAApBA,EAASiC,QAA4C,mBAApBjC,EAASiC,OAEzCV,OAAeQ,GAAGG,OACdlC,IACG8B,EAAe5B,UAAYF,EAASmC,aAAaC,YAC7ClE,IACAA,EAAa4D,IACbtK,EAAAA,EAAAA,GACI,QACA,0BACA,4BAGJ2G,GACAA,EAAgB2D,EACpB,GAEJ,CAAEjC,MAAO,QAASwC,UAAW,iBAAkBC,eAAe,KAGlER,EAAe5B,UAAYF,EAASmC,aAAaC,YAC7ClE,IACAA,EAAa4D,IACbtK,EAAAA,EAAAA,GACI,QACA,0BACA,4BAGJ2G,GACAA,EAAgB2D,GAExB,IAEJnB,eAAeC,QAAQ,WAAY,WAAW,EA4DLiB,GACrBX,MACIzP,EAAAA,EAAAA,KAAC8Q,GAAAA,IAAU,CAAChM,KAAMwI,IAAWqC,GAAAA,EAAiBC,OAAS,GAAK,KAEhE/P,UAAS,GAAA1B,OAAK2B,GAAU,KAAA3B,OAAI2B,IAC5BnC,KAAK,gBAIhBqP,IACGpN,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAyBC,SAAA,EACrCC,EAAAA,EAAAA,KAAC+Q,GAAAA,IAAY,CAACjM,KAAM,GAAIvF,MAAOyR,EAAAA,GAAMC,mBAAoB,4DAIjErR,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAmBC,SAAA,EAC/BC,EAAAA,EAAAA,KAAA,OACIH,UAAS,GAAA1B,OAAK2B,GAAwB,KAAA3B,OAAI2B,OAE9CE,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAyBC,SAAC,QACxCC,EAAAA,EAAAA,KAAA,OACIH,UAAS,GAAA1B,OAAK2B,GAAwB,KAAA3B,OAAI2B,cAIvD,EAIXyM,GAAa2E,aAAe,CACxBzE,aAAc,KACdC,gBAAiB,MChOrB,UAAgB,mBAAqB,6CAA6C,oBAAsB,8CAA8C,qBAAuB,+CAA+C,wBAA0B,kDAAkD,gBAAkB,0CAA0C,YAAc,sCAAsC,iBAAmB,2CAA2C,MAAQ,gCAAgC,YAAc,sCAAsC,YAAc,sCAAsC,mBAAqB,6CAA6C,WAAa,qCAAqC,oBAAsB,8CAA8C,iBAAmB,4CCUpyByE,GAAkBC,IAAoE,IAAnE,UAAEC,EAAS,WAAEC,GAAkCF,EAC3E,MAAM,mBAAEhF,GAAuBR,MACxB2F,EAAcC,IAAmBjU,EAAAA,EAAAA,aAExCC,EAAAA,EAAAA,YAAU,KACN,MAAMiU,EAAOC,IACbF,EAAgBC,EAAK,GACtB,IAEH,MAAMC,EAAqBA,KACvB,MAMMC,EAAe,CAFE,SAAU,cAJL,CAAC,CAAEhU,KAAM,WAAYiU,KAAMxF,IAClDyF,QAAQlD,GAAaA,EAASiD,OAC9BxL,KAAKuI,GAAaA,EAAShR,QAUhC,MAJwB,GAAAQ,OAAMwT,EAAaG,MAAM,GAAI,GAAGC,KAAK,MAAK,QAAA5T,OAAOwT,EAAaG,OACjF,GAGoB,EAGvBE,GACFhS,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOmS,YAAahS,KAAM4I,EAAAA,GAAU3I,OAAO,SAASC,IAAI,aAAYJ,SAAC,iBAIjFmS,GACFlS,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOmS,YAAahS,KAAM8I,EAAAA,GAAY7I,OAAO,SAASC,IAAI,aAAYJ,SAAC,mBAInFoS,GACFnS,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOmS,YAAahS,KAAMmS,EAAAA,GAAYlS,OAAO,SAASC,IAAI,aAAYJ,SAAC,aAInFsS,GACFrS,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOmS,YAAahS,KAAK,kBAAiBF,SAAC,mBAK7D,OACIC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOkS,MAAMjS,SACV,WAAdsR,GACGzR,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,EACIC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOwS,YAAYvS,SAAC,kHAKlCH,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,GAAOwS,YAAYvS,SAAA,CAAC,eACjBsR,EAAU,SAAOE,EAAa,oBAAkBD,EAAW,gDAC5BY,EAAQ,0DACjBF,EAAM,qEACDG,EAAS,0aAMHE,EAAM,iOAO5DzS,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,GAAOwS,YAAYvS,SAAA,CAAC,8DAC8BsR,EAAU,sBACxDW,EAAM,QAG1B,ECzDDO,GAAa7R,IAAyC,IAAD8R,EAAAC,EAC9D,MAAM,gBAAEC,EAAe,sBAAEC,EAAqB,QAAEC,EAAO,aAAEnG,GAAiB/L,GACpE,eAAEmS,EAAc,mBAAEC,EAAkB,YAAEC,IAAgB5J,EAAAA,EAAAA,GAAe6J,EAAAA,KACrE,aAAEC,IAAiBrP,EAAAA,EAAAA,MACnB,kBAAEsP,GAAsBD,GAExB,SACFnJ,EAAQ,SACRqJ,EAAQ,QACRC,EACAnJ,WAAW,OAAEC,KACbG,EAAAA,EAAAA,IAAQ,CACRC,KAAM,SACNG,UAAUC,EAAAA,EAAAA,GAAYc,MAG1BhO,EAAAA,EAAAA,YAAU,KACF0V,GACAC,EAAS,WAAYD,EACzB,GACD,CAACA,IAyBJ,OACItT,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAiBC,SAAA,EAC7BC,EAAAA,EAAAA,KAACuM,GAAY,CAACC,WAAW,cAAcC,aAAcA,IACpDoG,IACGjT,EAAAA,EAAAA,MAACyT,EAAAA,EAAU,CAACxT,UAAWC,GAAkBC,SAAA,EACrCC,EAAAA,EAAAA,KAACsT,EAAAA,EAAW,KACZtT,EAAAA,EAAAA,KAAA,QAAMH,UAAWC,GAAwBC,SAAE8S,QAGnDjT,EAAAA,EAAAA,MAAA,QAAMC,UAAWC,GAAwByT,SAhChCC,UACbC,EAAMC,iBAGN,MAAMC,EAAetV,SAAS+F,eAAe,SACvCwP,EAAkBvV,SAAS+F,eAAe,YAC5CuP,GAAgBC,IAChBT,EAAS,WAAYQ,EAAa/V,OAClCuV,EAAS,WAAYS,EAAgBhW,QAMzC,SAFsBwV,IAET,CACT,MAAMS,EAAW,CACbpI,SAAUkI,EAAeA,EAAa/V,MAAQ,GAC9C8N,SAAUkI,EAAkBA,EAAgBhW,MAAQ,IAExDgV,EAAQiB,EACZ,GAYgE9T,SAAA,EACxDH,EAAAA,EAAAA,MAACkU,GAAAA,EAAK,CAACC,QAAS,EAAEhU,SAAA,EACdC,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,gBACX1F,KAAK,QACLrE,GAAG,QACHgK,YAAY,gBACZC,WAAS,EACTnB,SAAUA,EAAS,YACnBkK,aAAclB,GAAsBJ,EACpCxH,YAAahB,EAAOuB,SACpBN,aAA6B,QAAjBqH,EAAEtI,EAAOuB,gBAAQ,IAAA+G,OAAA,EAAfA,EAAiBpH,WAEnCpL,EAAAA,EAAAA,KAACiU,EAAAA,GAAuB,CACpBlJ,WAAW,WACX/J,GAAG,WACHgK,YAAY,WACZC,WAAS,EACTnB,SAAUA,EAAS,YACnBoB,YAAahB,EAAOwB,SACpBP,aAA6B,QAAjBsH,EAAEvI,EAAOwB,gBAAQ,IAAA+G,OAAA,EAAfA,EAAiBrH,cAIvCpL,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GACXuF,KAAK,SACL3F,SAAU,GACV4F,QAASC,EAAAA,EAAckM,KACvBjR,QAASmS,EAAsB5S,SAClC,sBAIDC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAA0BC,UACtCC,EAAAA,EAAAA,KAACqL,EAAAA,GAAmB,CAChBhG,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvB+F,SAASV,EAAAA,EAAAA,IAAgBkI,GACzBzH,UAAUT,EAAAA,EAAAA,IAAgBkI,GAAahT,SAC1C,cAILC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAA6BC,UACzCC,EAAAA,EAAAA,KAACmR,GAAe,CAACE,UAAU,SAASC,WAAU,oBAGpD,EAIdiB,GAAUrB,aAAe,CACrBwB,gBAAiB,MCzIrB,UAAgB,OAAS,oCAAoC,gBAAkB,6CAA6C,aAAe,0CAA0C,cAAgB,2CAA2C,YAAc,yCAAyC,aAAe,0CAA0C,mBAAqB,gDAAgD,sBAAwB,mDAAmD,2BAA6B,wDAAwD,WAAa,wCAAwC,iBAAmB,8CAA8C,qBAAuB,mDCUrsBwB,GAAyB9C,IAGY,IAHX,WACnC+C,EAAU,YACVC,GAC0BhD,EAC1B,MAAMiD,GAAoBlL,EAAAA,EAAAA,GAAemL,EAAAA,IAGnCjC,GAFkBlJ,EAAAA,EAAAA,GAAeoL,EAAAA,MAEK,OAAXH,QAAW,IAAXA,OAAW,EAAXA,EAAatC,OAAO,IAErD,OACI9R,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAO0U,UAAUzU,UAC7BH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO2U,aAAa1U,SAAA,EACT,IAAtBsU,GACGrU,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAO4U,oBAAoB3U,SAAC,iFAI1CsS,GACArS,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAO6U,mBAAmB5U,SAAA,8DAAA5B,OAC2BkU,EAAK,4CAGxEzS,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,GAAO6U,mBAAmB5U,SAAA,CAAC,8FAErB,KAChBC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAO8U,iBAAkB3U,KAAK,oBAAmBF,SAAC,kBAE3D,IAAI,KACN,KACHC,EAAAA,EAAAA,KAAA,KACIH,UAAWC,GAAO8U,iBAClB3U,KAAK,kCAAiCF,SACzC,4BAEI,IAAI,qBAKjBC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAO+U,qBAAqB9U,UACxCC,EAAAA,EAAAA,KAAA,UACIH,UAAWC,GAAOgV,wBAClBzP,KAAK,SACL7E,QAAS2T,EAAWpU,SACvB,sBAKP,EC/BDgV,GAAiB3D,IAOY,IAPX,YAC3B4D,EAAW,SACXC,EAAQ,aACRxL,EAAY,YACZ2K,EAAW,SACXc,EAAQ,aACRC,GACkB/D,EAClB,MAAMgE,EAAY,IAAIC,MAAM,IAAIjP,KAAI,KAAMkP,EAAAA,EAAAA,QAAyB,SAC5DC,EAAaC,IAAkBjY,EAAAA,EAAAA,UAAmB,IAAI8X,MAAM,IAAItU,KAAK,MACrE0U,EAAYC,IAAiBnY,EAAAA,EAAAA,WAAkB,GAEhDoY,GAAWC,EAAAA,EAAAA,KACXC,GAAmB1M,EAAAA,EAAAA,GAAe2M,EAAAA,IAClCzB,GAAoBlL,EAAAA,EAAAA,GAAemL,EAAAA,IACnCyB,GAAiB5M,EAAAA,EAAAA,GAAe6M,EAAAA,IAChCC,GAAc9M,EAAAA,EAAAA,GAAe+M,EAAAA,KAEnC1Y,EAAAA,EAAAA,YAAU,KAAO,IAAD2Y,EACQ,QAApBA,EAAAf,EAAU,GAAGgB,eAAO,IAAAD,GAApBA,EAAsBE,OAAO,GAC9B,KAEH7Y,EAAAA,EAAAA,YAAU,MACoB,IAAtB6W,GAA8Bc,GAC9BA,GACJ,GACD,CAACd,IAEJ,MAmCMiC,EAAeC,IACjBA,EAAE7C,iBACF,MAAM8C,EAAQD,EAAEE,cAAcC,QAAQ,QAAQ7X,QAAQ,UAAW,IACjE,GAAI2X,EAAM7X,OAAS,EAAG,CAClB,MAAMgY,EAAY,IAAIpB,GACtB,IAAIqB,EAAkB,EACtB,IAAK,IAAIhY,EAAI,EAAGA,EAAI4X,EAAM7X,OAAQC,IAAK,CACnC,KAAOgY,EAAkBD,EAAUhY,QAAUgY,EAAUC,IACnDA,IAEJ,GAAIA,GAAmBD,EAAUhY,OAC7B,MAEJgY,EAAUC,GAAmBJ,EAAM5X,GACnCgY,GACJ,CACApB,EAAemB,GAEf7G,OAAO+G,uBAAsB,KAEzB,MAAMC,EAAkBF,EAAkB,EACpCG,EAAe3B,EAAU0B,GAAiBV,QAC5CW,IACAA,EAAaV,QACbU,EAAaC,kBAAkBF,EAAkB,EAAGA,EAAkB,GAC1E,GAER,GAkGEG,EAAe1B,EAAY2B,OAAOC,KAAYA,IAC9CC,EAAapC,EAAc,QAAU,WAE3C,OACIpV,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO0U,UAAUzU,SAAA,CAC5B0V,EA1CDT,GAEIpV,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOqU,WAAWpU,SAAA,EAC9BC,EAAAA,EAAAA,KAAA,KAAAD,SAAG,6GAKHH,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,GAAOuX,oBAAoBtX,SAAA,CAEjC,6EAEJC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAO8U,iBAAkB3U,KAAK,oBAAmBF,SAAC,mBAG/D,0BAObC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOqU,WAAWpU,UAC9BH,EAAAA,EAAAA,MAAA,KAAGC,UAAWC,GAAOuX,oBAAoBtX,SAAA,CAEjC,0JAEJC,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAO8U,iBAAkB3U,KAAK,oBAAmBF,SAAC,mBAG/D,yBAcLH,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,EACIC,EAAAA,EAAAA,KAACkU,GAAsB,CAACC,WA1JrBA,KACf,GAAIc,EAAU,CACV,MAAMzG,EAA2B,CAC7B/E,aAAcwL,EAASxJ,UAE3BkK,GAAS2B,EAAAA,EAAAA,IAAc9I,IACvBkH,GAAc,GACdF,EAAe,IAAIH,MAAM,IAAItU,KAAK,IACtC,CACA,GAAI0I,EAAc,CACd,MAAM+E,EAA2B,CAC7B/E,eACA2K,eAEJuB,GAAS2B,EAAAA,EAAAA,IAAc9I,IACvBkH,GAAc,GACdF,EAAe,IAAIH,MAAM,IAAItU,KAAK,IACtC,GAyI4DqT,YAAaA,KAC7DpU,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOyX,gBAAgBxX,SAClC,IAAIsV,MAAM,IAAIjP,KAAI,CAACoR,EAAG5Y,KACnBoB,EAAAA,EAAAA,KAAA,SACIH,UAAS,GAAA1B,OAAK2B,GAAO2X,YAAW,KAAAtZ,QACN,IAAtBkW,EAA8BvU,GAAO4X,iBAAmB,IAE5DC,IAAKvC,EAAUxW,GAEfyG,KAAK,OACLzH,MAAO2X,EAAY3W,GACnBgZ,UAAW,EACXC,SAAWpE,GArLbqE,EAACC,EAAkBtE,KACzC,MAAM,MAAE7V,GAAU6V,EAAMvT,OAClB8X,EAAiBpa,EAAMiB,QAAQ,UAAW,IAKN,IAADoZ,EADzC,GAHAzC,GAAgB0C,GACZA,EAAO9R,KAAI,CAACxI,EAAOgB,IAAOA,IAAMmZ,EAAWC,EAAiBpa,MAE5Doa,EACID,EAAW3C,EAAUzW,OAAS,IACC,QAA/BsZ,EAAA7C,EAAU2C,EAAW,GAAG3B,eAAO,IAAA6B,GAA/BA,EAAiC5B,cAElC,GAAI0B,EAAW,IAAMC,EAAgB,CAAC,IAADG,EACT,QAA/BA,EAAA/C,EAAU2C,EAAW,GAAG3B,eAAO,IAAA+B,GAA/BA,EAAiC9B,OACrC,GAyKmDyB,CAAkBlZ,EAAG6U,GAChD2E,QAAS9B,EACT+B,UAAY5E,GAtHlB6E,EAClBP,EACAtE,KAEA,GAAkB,cAAdA,EAAMtQ,IACN,IAAKoS,EAAYwC,IAAaA,EAAW,EAErCvC,GAAgB0C,IACZ,MAAMK,EAAgB,IAAIL,GAC1B,IAAIM,EAAcT,EAClB,KAAOS,GAAe,IAAMD,EAAcC,IAEtCA,IAEmB,IAADC,EAItB,OAJID,GAAe,IACfD,EAAcC,GAAe,GACC,QAA9BC,EAAArD,EAAUoD,GAAapC,eAAO,IAAAqC,GAA9BA,EAAgCpC,SAE7BkC,CAAa,SAErB,GAAKhD,EAAYwC,GAKpBvC,GAAgB0C,IACZ,MAAMK,EAAgB,IAAIL,GAE1B,OADAK,EAAcR,GAAY,GACnBQ,CAAa,QARO,CAAC,IAADG,EAEJ,QAA3BA,EAAAtD,EAAU2C,GAAU3B,eAAO,IAAAsC,GAA3BA,EAA6BrC,OACjC,CAQJ,EAuFoDiC,CAAc1Z,EAAG6U,GAC7CkF,QAAQ,UAPH/Z,WAazBgB,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO8Y,mBAAmB7Y,SAAA,CACrC0V,IAAeT,IACZhV,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLC,QAASC,EAAAA,EAAckM,KACvBhM,WAAYC,EAAAA,GAAaC,UACzBnF,QAAS0U,EAASnV,SACrB,aAIJ0V,GACGzV,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvBhF,QAASA,IAAYkV,GAAc,GAAO3V,SAC7C,cAIDC,EAAAA,EAAAA,KAACqL,EAAAA,GAAmB,CAChBhG,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvB8F,UAAW2L,EACXzW,QAnHCqY,KACjB,GAAI5D,GAAYM,EAAa,CACzB,MAAM/G,EAAU,CACZ/C,SAAUwJ,EAASxJ,SACnBC,SAAUuJ,EAASvJ,SACnBkD,uBAAuB,EACvBkK,iBAAkBvD,EAAYxD,KAAK,KAEvC4D,GAASoD,EAAAA,EAAAA,IAAWvK,IACpBgH,EAAe,IAAIH,MAAM,IAAItU,KAAK,IACtC,CAEA,GAAI0I,GAAgB2K,EAAa,CAC7B,MAAM5F,EAA6B,CAC/BwK,KAAMzD,EAAYxD,KAAK,IACvBtI,eACA2K,eAEJuB,GAASsD,EAAAA,EAAAA,IAAgBzK,IACzBgH,EAAe,IAAIH,MAAM,IAAItU,KAAK,IACtC,GAgGgBwK,SACIV,EAAAA,EAAAA,IAAgBgL,KACfb,GACKnK,EAAAA,EAAAA,IAAgBoL,IAChBpL,EAAAA,EAAAA,IAAgBkL,IACzBhW,SAEAqX,SAIX,EAIdrC,GAAe7D,aAAe,CAC1B+D,cAAUpH,EACVsH,aAAc,M,gBChSlB,UAAgB,kBAAoB,6CAA6C,aAAe,wCAAwC,mBAAqB,8CAA8C,oBAAsB,+CAA+C,oBAAsB,+CAA+C,4BAA4B,qDAAqD,sBAAwB,iDAAiD,oBAAsB,+CAA+C,mBAAqB,8CAA8C,0BAA0B,mDAAmD,8BAA8B,uDAAuD,2BAA2B,qD,wCCiDpzB,MAAM+D,GAAoB3P,EAAAA,KAAaC,MAAM,CACzC2P,UAAW5P,EAAAA,KAAaG,SAAS,0BACjC0P,SAAU7P,EAAAA,KAAaG,SAAS,yBAChCD,aAAcF,EAAAA,KACTG,SAAS,qBACTC,MAAM,6DACNC,QAAQC,GAAAA,GAAa,6DAC1BuK,YAAa7K,EAAAA,KACRG,SAAS,4BACTE,QAAQyP,GAAAA,GAAa,wBAC1BC,iBAAkB/P,EAAAA,KAClBgQ,UAAWhQ,EAAAA,KACXmC,SAAUnC,EAAAA,KACLG,SAAS,wBACTiC,IAAI,GACJ/B,QAAQ,YAAa,aACrBA,QAAQ,YAAa,aACrBA,QAAQ4P,GAAAA,GAAc,UACtB5P,QAAQ6P,GAAAA,GAAe,WAC5BC,gBAAiBnQ,EAAAA,KACZG,SAAS,gCACTiQ,MAAM,CAACpQ,EAAAA,GAAQ,aAAc,qC,0BCtEtC,SAA+B,wCAA/B,GAA4F,8CAA5F,GAA8J,6CAA9J,GAAsN,oCAAtN,GAA6Q,4CAA7Q,GAAgZ,mDAAhZ,GAA2d,iD,gBCkCpd,MAAMqQ,GAAmBlZ,IAA+C,IAADmZ,EAAAC,EAAA7Q,EAAA8Q,EAAAC,EAAAvH,EAAAwH,EAAAC,EAAAC,EAC1E,MAAM,QAAEC,EAAO,SAAEtQ,EAAQ,OAAEI,EAAM,QAAEC,EAAO,aAAEH,EAAY,SAAEqQ,EAAQ,gBAAE3N,GAAoBhM,GACjF4Z,EAAkBC,IAAuBhd,EAAAA,EAAAA,UAAS,KAEnD,2BACFoG,EAA0B,oBAC1B6W,EAAmB,oBACnBC,EAAmB,uBACnBC,EAAsB,8BACtBC,IACA/W,EAAAA,EAAAA,MAEGgX,IAAwBC,EAAAA,GAAAA,KAEzBvR,EAASC,EAAAA,KAAaC,MAAM,CAC9BG,MAAOJ,EAAAA,KACFI,QACAC,QAAQC,EAAAA,GAAa,+DAQxBiR,EAAqBld,IACvB0L,EAAOa,QAAQ,CAAER,MAAO/L,IAASmd,MAAMC,IAC/BA,GACAT,EAAoB3c,EACxB,GACF,EAGAqd,GAAyBC,EAAAA,EAAAA,UAAQ,KAAMC,EAAAA,GAAAA,UAASL,EAAmB,MAAM,IAkB/E,OAhBAtd,EAAAA,EAAAA,YAAU,KACF8c,EAAiB3b,QACjBic,EAAqB,CACjBnR,aAAc6Q,EACdc,YAAaC,GAAAA,GAAoBC,yBAEhCC,SACAR,MAAMS,IACHd,EAAuBc,EAAIrR,QAAQ,IAGxC,KACH8Q,EAAuBQ,QAAQ,IAEpC,CAACnB,KAGA1a,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,EACM0a,IACE7a,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAoBC,SAAA,EAChCC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAA0BC,SAAC,wDAGzCC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GACXwF,QAASC,EAAAA,EAAckM,KACvBpM,KAAK,SACL7E,QAASA,KAzCzBmD,GAA2B,QAC3B6W,GAAoB,IAwC0Cza,SACjD,iDAKTH,EAAAA,EAAAA,MAACkU,GAAAA,EAAK,CAACC,QAAS,EAAEhU,SAAA,EACdC,EAAAA,EAAAA,KAACuM,GAAY,CAACC,WAAW,eAAeE,gBAAiBA,KACzD1M,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,aACXC,YAAY,mBACZhK,GAAG,oBACHiK,WAAS,EACTnB,SAAUA,EAAS,aACnBoB,YAAahB,EAAOiP,UACpBhO,aAA8B,QAAlB0O,EAAE3P,EAAOiP,iBAAS,IAAAU,OAAA,EAAhBA,EAAkBzO,QAChCsQ,eAAa,EACb1H,aAAa,MAGjBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,YACXC,YAAY,kBACZhK,GAAG,mBACHiK,WAAS,EACTnB,SAAUA,EAAS,YACnBoB,YAAahB,EAAOkP,SACpBjO,aAA6B,QAAjB2O,EAAE5P,EAAOkP,gBAAQ,IAAAU,OAAA,EAAfA,EAAiB1O,QAC/BsQ,eAAa,EACb1H,aAAa,MAGjBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,gBACX1F,KAAK,QACLrE,GAAG,uBACHgK,YAAY,sBACZC,WAAS,EACTnB,SAAUA,EAAS,eAAgB,CAC/B+N,SAAWtB,GAAY0E,EAAuB1E,EAAErW,OAAOtC,SAE3DsN,YAAahB,EAAOT,eAAiBgR,EACrCtP,aAAiC,QAArBlC,EAAEiB,EAAOT,oBAAY,IAAAR,OAAA,EAAnBA,EAAqBmC,QACnCsQ,eAAa,EACb1H,aAAa,MAGjBhU,EAAAA,EAAAA,KAAC2b,GAAAA,EAAgB,CACb5Q,WAAW,oBACXC,YAAY,0BACZhK,GAAG,0BACHiK,WAAS,EACTmP,QAASA,EACTtQ,SAAUA,EAAS,eACnBoB,YAAahB,EAAOkK,YACpBjJ,aAAgC,QAApB4O,EAAE7P,EAAOkK,mBAAW,IAAA2F,OAAA,EAAlBA,EAAoB3O,QAClCsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAgBC,UAC5BH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAwBC,SAAA,EACpCC,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,0BACXC,YAAY,uBACZhK,GAAG,wBACHiK,WAAS,EACTnB,SAAUA,EAAS,oBACnBoB,YAAahB,EAAOoP,iBACpBnO,aAAqC,QAAzB6O,EAAE9P,EAAOoP,wBAAgB,IAAAU,OAAA,EAAvBA,EAAyB5O,QACvC4I,aAAa,MAGjBhU,EAAAA,EAAAA,KAAC4b,EAAAA,GAAgB,CACb7Q,WAAW,QACX/J,GAAG,gBACHrD,KAAK,YACLsN,WAAS,EACTD,YAAY,QACZE,YAAahB,EAAOqP,UACpBvF,aAAa,IACboG,QAASA,EACTyB,OAAO,OACPC,QAAQ,eAKpB9b,EAAAA,EAAAA,KAACiU,EAAAA,GAAuB,CACpBlJ,WAAW,WACXC,YAAY,iBACZhK,GAAG,mBACHiK,WAAS,EACTnB,SAAUA,EAAS,YACnBoB,YAAahB,EAAOwB,SACpBP,aAA6B,QAAjBsH,EAAEvI,EAAOwB,gBAAQ,IAAA+G,OAAA,EAAfA,EAAiBrH,QAC/BsQ,eAAa,EACb1H,aAAa,GACb+H,kBAAkB,IAGrB7R,EAAOwB,WAA2B,QAAnBuO,EAAI/P,EAAOwB,gBAAQ,IAAAuO,OAAA,EAAfA,EAAiB7O,WAA0B,QAAnB8O,EAAIhQ,EAAOwB,gBAAQ,IAAAwO,OAAA,EAAfA,EAAiB8B,SAC7Dhc,EAAAA,EAAAA,KAACic,EAAAA,GAAa,CAAC/R,OAAQA,KAE3BlK,EAAAA,EAAAA,KAACiU,EAAAA,GAAuB,CACpBlJ,WAAW,mBACX/J,GAAG,0BACHgK,YAAY,mBACZC,WAAS,EACTnB,SAAUA,EAAS,mBACnBoB,YAAahB,EAAOwP,gBACpBvO,aAAoC,QAAxBgP,EAAEjQ,EAAOwP,uBAAe,IAAAS,OAAA,EAAtBA,EAAwB/O,QACtCsQ,eAAa,EACb1H,aAAa,SAIrBhU,EAAAA,EAAAA,KAACmR,GAAe,CAACE,UAAU,UAAUC,WAAU,8BAE/C1R,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAkCC,SAAA,EAC9CC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GACXuF,KAAK,SACLC,QAASC,EAAAA,EAAckM,KACvBjR,QAASA,KACLma,GAA8B,GAC9BhX,GAA2B,EAAK,EAClC5D,SACL,UAIDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLiG,UAAWnB,IAAYsQ,EACvBnV,QAASC,EAAAA,EAAcC,UACvBhF,QAASwJ,GAAc6B,GAASwO,EAASxO,KAAiC9L,SAC7E,8BAIN,EC7NEmc,GAAoBxb,IAC7B,MAAM,gBAAEgM,GAAoBhM,GACtB,KACFyb,EAAI,mBACJC,EAAkB,oBAClBC,EAAmB,iBACnBC,EAAgB,kBAChBC,EAAiB,mBACjBC,EAAkB,SAClBnC,EAAQ,SACRnF,EAAQ,aACRC,EAAY,aACZ1L,EAAY,YACZ2K,GH6C2BqI,MAC/B,MAAM9G,GAAWC,EAAAA,EAAAA,MACVuG,EAAMO,IAAWnf,EAAAA,EAAAA,UAAS,IAC1B6P,IAAmBC,EAAAA,EAAAA,OACpB,6BAAEsP,IAAiC/Y,EAAAA,EAAAA,KACnCgZ,GAAqBzT,EAAAA,EAAAA,GAAe0T,EAAAA,KAE1Crf,EAAAA,EAAAA,YAAU,KACFmf,IACAxJ,EAAS,YAAawJ,EAA6BG,gBACnD3J,EAAS,WAAYwJ,EAA6BI,eAClD5J,EAAS,cAAewJ,EAA6BK,kBACrD7J,EAAS,eAAgBwJ,EAA6BzJ,mBACtDC,EAAS,YAAawJ,EAA6BM,gBACvD,GACD,CAACN,IAEJ,MAGIvC,QAASgC,EACTtS,SAAUuS,EACVrS,aAAcsS,EACdY,UAAWC,EAAoB,SAC/BhK,EACAlJ,WAAaC,OAAQqS,EAAmBpS,QAASqS,GAAoB,MACrEY,IACA/S,EAAAA,EAAAA,IAAgC,CAChCC,KAAM,WACNC,aAAc,MACdC,eAAgB,WAChBC,UAAUC,EAAAA,EAAAA,GAAYwO,GAAmB,CAAEvO,YAAY,IACvD0S,cAAe,CACXlE,UAAW,GACXC,SAAU,GACV3P,aAAc,GACd2K,YAAa,GACb1I,SAAU,GACVgO,gBAAiB,GACjBJ,iBAAkB,GAClBC,UAAW,OAGb9P,EAAe2T,EAAM,gBACrBhJ,EAAcgJ,EAAM,eAEpBE,KAAgBnU,EAAAA,EAAAA,GAAemL,EAAAA,IAC/BiJ,GAAqBpU,EAAAA,EAAAA,GAAeqU,EAAAA,IAEpCnD,GAAWoD,EAAAA,EAAAA,cACbrM,IAMqC,IANpC,aACG3H,EAAY,iBACZ6P,EAAgB,UAChBC,EAAS,YACTnF,EAAW,SACXgF,GACqBhI,EACrB,MAAMsM,EAAkB,CACpBjU,eACA2K,eAEEuJ,EAAwB,CAC1BlU,eACAmU,cAAetE,EACfuE,cAAetE,EACfuE,UAAW1J,EACXzW,KAAMyb,EACNgC,YAAaC,GAAAA,GAAoBC,wBAGrC3F,GAAS2B,EAAAA,EAAAA,IAAcoG,IACvB/H,GAASoI,EAAAA,EAAAA,IAAoBJ,IAC7BjB,GAASP,GAASA,EAAO,KACzBpW,EAAAA,EAAAA,GACI,eACA,qCACA,qCACH,GAEL,CAAC2W,IAGCxH,GAAWuI,EAAAA,EAAAA,cAAY,KACzBf,GAASP,GAASA,EAAO,KACzBpW,EAAAA,EAAAA,GACI,eACA,qCACA,qCACH,GACF,CAAC2W,IAEEvH,GAAesI,EAAAA,EAAAA,cAAY,KAAa,IAADO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACzC,MAAMC,EAAkBnB,IAClBoB,IACiC,QAAhCnR,EAAgBM,IAAI,UAAoC,YAAd8Q,EAAAA,GAC3C1P,EAAiB1B,EAAgBM,IAAI,UACrCF,EAAWJ,EAAgBM,IAAI,OAC/BuB,EAAgB7B,EAAgBM,IAAI,WAEpC+Q,EAAgC,CAClCtF,UAAWmF,EAAgBnF,UAC3BC,SAAUkF,EAAgBlF,SAC1B3P,aAAc6U,EAAgB7U,aAC9B2K,YAAakK,EAAgBlK,YAC7BwJ,cAAeU,EAAgBhF,iBAC/BuE,cAAeS,EAAgB/E,UAC/BmF,QAAwC,QAAjCV,EAAoB,OAAlBpB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB+B,mBAAW,IAAAX,EAAAA,EAAI,GAC5ClW,eAAkD,QAApCmW,EAAoB,OAAlBrB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB9U,sBAAc,IAAAmW,EAAAA,EAAI,GACtDW,YAA4C,QAAjCV,EAAoB,OAAlBtB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBgC,mBAAW,IAAAV,EAAAA,EAAI,GAChDW,aAA8C,QAAlCV,EAAoB,OAAlBvB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBiC,oBAAY,IAAAV,EAAAA,EAAI,GAClDW,eAAkD,QAApCV,EAAoB,OAAlBxB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBkC,sBAAc,IAAAV,EAAAA,EAAI,GACtD1S,SAAU4S,EAAgB5S,SAC1BqT,YAAaR,EAAmB,EAAI,EACpCtP,cAAyD,QAA5CoP,EAAE1B,EAA6B1N,qBAAa,IAAAoP,EAAAA,EAAI,GAC7DrP,UAAW2N,EAA6B3N,WAAaF,EACrDD,0BAA2BrB,EAC3B+P,qBACAD,cACA0B,WAAYrC,EAA6BqC,WACzC5D,YAAaC,GAAAA,GAAoBC,wBAGf,OAAlBsB,QAAkB,IAAlBA,GAAAA,EAAoBqC,oBACpBR,EAAaQ,kBAAoBrC,EAAmBqC,mBAGpDhQ,IACAwP,EAAaxP,cAAgBA,GAGjC0G,GAASuJ,EAAAA,EAAAA,IAAcT,KACvB1Y,EAAAA,EAAAA,GAAqB,WAAY,iBAAkB,WAAW,GAC/D,CACCoX,EACA/P,EACAwP,EACAD,EACAY,EACAD,IAiCJ,OA9B6BpC,EAAAA,EAAAA,UACzB,MACIiE,cA9Hc,EA+HdhD,OACAC,qBACAC,sBACAC,mBACAC,oBACAC,qBACAnC,WACAnF,WACAC,eACA1L,eACA2K,iBAEJ,CACI+H,EACAC,EACAC,EACAC,EACAC,EACAC,EACAnC,EACAnF,EACAC,EACA1L,EACA2K,GAImB,EGvNvBqI,GAEJ,OACIzc,EAAAA,EAAAA,KAACI,GAAAA,EAAa,CAACC,MAAOA,GAAAA,EAAMN,UACxBH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOsf,mBAAmBrf,SAAA,CAC5B,IAAToc,IACGnc,EAAAA,EAAAA,KAAC4Z,GAAe,CACZlN,gBAAiBA,EACjB0N,QAASgC,EACTtS,SAAUuS,EACVnS,OAAQqS,EACRpS,QAASqS,EACTxS,aAAcsS,EACdjC,SAAUA,IAGR,IAAT8B,IACGnc,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOuf,2BAA2Btf,UAC9CC,EAAAA,EAAAA,KAAC+U,GAAc,CACXC,aAAa,EACbE,SAAUA,EACVC,aAAcA,EACd1L,aAAcA,EACd2K,YAAaA,UAKjB,ECzDxB,GAAyC,yDAAzC,GAAmI,iEAAnI,GAAkO,8DC0ClO,GAtC+BkL,KAC3B,MAAM,2BACF3b,EAA0B,8BAC1BgX,EAA6B,kCAC7B4E,IACA3b,EAAAA,EAAAA,KAEE4b,EACFC,IAEA9b,GAA2B,GAC3B8b,GAAa,EAAK,EAEtB,OACI7f,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAA8BC,SAAA,EAC1CC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAsCC,SAAC,2DAGrDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GACXuF,KAAK,SACLC,QAAQ,YACR9E,QAASA,IAAMgf,EAAwB7E,GAA+B5a,SACzE,uBAGDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GACXuF,KAAK,SACLC,QAAQ,YACR9E,QAASA,IAAMgf,EAAwBD,GAAmCxf,SAC7E,mBAGC,ECpCD2f,GAA4BnW,EAAAA,KAAaC,MAAM,CACxD2P,UAAW5P,EAAAA,KAAaG,SAAS,0BACjC0P,SAAU7P,EAAAA,KAAaG,SAAS,yBAChCD,aAAcF,EAAAA,KACTG,SAAS,qBACTC,MAAM,6DACNC,QAAQC,EAAAA,GAAa,6DAC1BuK,YAAa7K,EAAAA,KACRG,SAAS,4BACTE,QAAQyP,EAAAA,GAAa,wBAC1BqF,QAASnV,EAAAA,KAAaG,SAAS,4BAC/B5B,eAAgByB,EAAAA,KAAaG,SAAS,+BACtCkV,YAAarV,EAAAA,KAAaG,WAC1BmV,aAActV,EAAAA,KAAaG,WAC3BoV,eAAgBvV,EAAAA,KAAaG,WAC7BgC,SAAUnC,EAAAA,KACLG,SAAS,wBACTiC,IAAI,GACJ/B,QAAQ,YAAa,aACrBA,QAAQ,YAAa,aACrBA,QAAQ4P,EAAAA,GAAc,UACtB5P,QAAQ6P,EAAAA,GAAe,WAC5BC,gBAAiBnQ,EAAAA,KACZG,SAAS,gCACTiQ,MAAM,CAACpQ,EAAAA,GAAQ,aAAc,qCC1BtC,IAAgB,oBAAsB,uDAAuD,0BAA4B,6DAA6D,0BAA4B,6DAA6D,8BAAgC,iEAAiE,yBAA2B,4DAA4D,6BAA+B,gEAAgE,0BAA4B,6DAA6D,6BAA+B,gEAAgE,aAAe,gDAAgD,mBAAqB,sDAAsD,kBAAoB,sDCyCt3BoW,GAAwBpW,EAAAA,KAAaC,MAAM,CAC7CG,MAAOJ,EAAAA,KACFI,QACAC,QAAQC,EAAAA,GAAa,+DAuO9B,GApOgCuH,IAMmB,IAADyI,EAAAC,EAAA7Q,EAAA8Q,EAAA6F,EAAAC,EAAAC,EAAAC,EAAAtN,EAAAwH,EAAAC,EAAAC,EAAA,IANjB,QAC7BC,EAAO,SACPtQ,EAAQ,OACRI,EAAM,QACNC,EAAO,SACPoJ,GAC2BnC,EAC3B,MAAM,oBACFoJ,EAAmB,2BACnB7W,EAA0B,kCAC1B4b,EAAiC,oBACjC9E,EAAmB,uBACnBC,IACA9W,EAAAA,EAAAA,MAEGgX,IAAwBC,EAAAA,GAAAA,MAExBP,EAAkB0F,IAAuBziB,EAAAA,EAAAA,UAAS,IAEnDud,GAAoB2C,EAAAA,EAAAA,cACrB7f,IACG+hB,GAAsBxV,QAAQ,CAAER,MAAO/L,IAASmd,MAAMC,IAC9CA,GACAgF,EAAoBpiB,EACxB,GACF,GAEN,CAACoiB,IAGC/E,GAAyBwC,EAAAA,EAAAA,cAAYtC,EAAAA,GAAAA,UAASL,EAAmB,KAAM,CACzEA,IAmBJ,OAhBAtd,EAAAA,EAAAA,YAAU,KACF8c,EAAiB3b,QACjBic,EAAqB,CACjBnR,aAAc6Q,EACdc,YAAaC,GAAAA,GAAoB4E,UAEhC1E,SACAR,MAAMS,IACHd,EAAuBc,EAAIrR,QAAQ,IAGxC,KACH8Q,EAAuBQ,QAAQ,IAEpC,CAACnB,KAGA1a,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOogB,oBAAoBngB,SAAA,EACrC0a,IACE7a,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOqgB,aAAapgB,SAAA,EAChCC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOsgB,mBAAmBrgB,SAAC,wDAGzCC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GAAOugB,kBAClB/a,QAASC,EAAAA,EAAckM,KACvBpM,KAAK,SACL7E,QAASA,KACL+e,GAAkC,GAClC/E,GAAoB,EAAK,EAC3Bza,SACL,iDAKTH,EAAAA,EAAAA,MAAA,QAAMC,UAAWC,GAAOwgB,0BAA2B/M,SAAUA,EAASxT,SAAA,EAClEH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOygB,0BAA0BxgB,SAAA,EAC7CC,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,aACXC,YAAY,mBACZC,WAAS,EACTnB,SAAUA,EAAS,aACnBoB,YAAahB,EAAOiP,UACpBhO,aAA8B,QAAlB0O,EAAE3P,EAAOiP,iBAAS,IAAAU,OAAA,EAAhBA,EAAkBzO,QAChCsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,YACXC,YAAY,kBACZC,WAAS,EACTnB,SAAUA,EAAS,YACnBoB,YAAahB,EAAOkP,SACpBjO,aAA6B,QAAjB2O,EAAE5P,EAAOkP,gBAAQ,IAAAU,OAAA,EAAfA,EAAiB1O,QAC/BsQ,eAAa,EACb1H,aAAa,SAGrBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,wBACX1F,KAAK,QACL2F,YAAY,sBACZC,WAAS,EACTnB,SAAUA,EAAS,eAAgB,CAC/B+N,SAAWtB,GAAY0E,EAAuB1E,EAAErW,OAAOtC,SAE3DsN,YAAahB,EAAOT,eAAiBgR,EACrCtP,aAAiC,QAArBlC,EAAEiB,EAAOT,oBAAY,IAAAR,OAAA,EAAnBA,EAAqBmC,QACnCsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAC2b,EAAAA,GAAgB,CACb5Q,WAAW,YACXC,YAAY,yBACZC,WAAS,EACTmP,QAASA,EACTtQ,SAAUA,EAAS,eACnBoB,YAAahB,EAAOkK,YACpBjJ,aAAgC,QAApB4O,EAAE7P,EAAOkK,mBAAW,IAAA2F,OAAA,EAAlBA,EAAoB3O,QAClCsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,eACXC,YAAY,qBACZC,WAAS,EACTnB,SAAUA,EAAS,WACnBoB,YAAahB,EAAOwU,QACpBvT,aAA4B,QAAhByU,EAAE1V,EAAOwU,eAAO,IAAAkB,OAAA,EAAdA,EAAgBxU,QAC9BsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,kBACXC,YAAY,gBACZC,WAAS,EACTnB,SAAUA,EAAS,kBACnBoB,YAAahB,EAAOpC,eACpBqD,aAAmC,QAAvB0U,EAAE3V,EAAOpC,sBAAc,IAAA+X,OAAA,EAArBA,EAAuBzU,QACrCsQ,eAAa,EACb1H,aAAa,MAEjBpU,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO0gB,8BAA8BzgB,SAAA,EACjDC,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,OACXC,YAAY,aACZC,WAAS,EACTnB,SAAUA,EAAS,eACnBoB,YAAahB,EAAO0U,YACpBzT,aAAgC,QAApB2U,EAAE5V,EAAO0U,mBAAW,IAAAkB,OAAA,EAAlBA,EAAoB1U,QAClCsQ,eAAa,EACb1H,aAAa,MAEjBhU,EAAAA,EAAAA,KAAC4b,EAAAA,GAAgB,CACb7Q,WAAW,QACXpN,KAAK,eACLsN,WAAS,EACTD,YAAY,QACZE,YAAahB,EAAO2U,aACpB7K,aAAa,IACboG,QAASA,EACTyB,OAAO,OACPC,QAAQ,UAEZ9b,EAAAA,EAAAA,KAAC8K,EAAAA,GAAe,CACZC,WAAW,UACXC,YAAY,UACZC,WAAS,EACTnB,SAAUA,EAAS,kBACnBoB,YAAahB,EAAO4U,eACpB3T,aAAmC,QAAvB4U,EAAE7V,EAAO4U,sBAAc,IAAAiB,OAAA,EAArBA,EAAuB3U,QACrCsQ,eAAa,EACb1H,aAAa,SAGrBhU,EAAAA,EAAAA,KAACiU,EAAAA,GAAuB,CACpBlJ,WAAW,WACXC,YAAY,iBACZC,WAAS,EACTnB,SAAUA,EAAS,YACnBoB,YAAahB,EAAOwB,SACpBP,aAA6B,QAAjBsH,EAAEvI,EAAOwB,gBAAQ,IAAA+G,OAAA,EAAfA,EAAiBrH,QAC/BsQ,eAAa,EACb1H,aAAa,GACb+H,kBAAkB,IAGrB7R,EAAOwB,WAA2B,QAAnBuO,EAAI/P,EAAOwB,gBAAQ,IAAAuO,OAAA,EAAfA,EAAiB7O,WAA0B,QAAnB8O,EAAIhQ,EAAOwB,gBAAQ,IAAAwO,OAAA,EAAfA,EAAiB8B,SAC7Dhc,EAAAA,EAAAA,KAACic,EAAAA,GAAa,CAAC/R,OAAQA,KAE3BlK,EAAAA,EAAAA,KAACiU,EAAAA,GAAuB,CACpBlJ,WAAW,mBACXC,YAAY,mBACZC,WAAS,EACTnB,SAAUA,EAAS,mBACnBoB,YAAahB,EAAOwP,gBACpBvO,aAAoC,QAAxBgP,EAAEjQ,EAAOwP,uBAAe,IAAAS,OAAA,EAAtBA,EAAwB/O,QACtCsQ,eAAa,EACb1H,aAAa,MAEjBpU,EAAAA,EAAAA,MAAA,OAAAG,SAAA,EACIC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAO2gB,yBAAyB1gB,UAC5CC,EAAAA,EAAAA,KAACmR,GAAe,CACZE,UAAU,UACVC,WAAU,gCAGlB1R,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO4gB,0BAA0B3gB,SAAA,EAC7CC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GAAO6gB,6BAClBtb,KAAK,SACLC,QAASC,EAAAA,EAAckM,KACvBjR,QAASA,KACL+e,GAAkC,GAClC5b,GAA2B,EAAK,EAClC5D,SACL,UAGDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLiG,UAAWnB,IAAYsQ,EACvBnV,QAASC,EAAAA,EAAcC,UAAUzF,SACpC,oCAMX,ECjHd,GApI4BkN,KACxB,MAAM0I,GAAWC,EAAAA,EAAAA,MACVxI,IAAmBC,EAAAA,EAAAA,OACnB8O,EAAMO,IAAWnf,EAAAA,EAAAA,UAAS,GAE3Bqf,GAAqBzT,EAAAA,EAAAA,GAAe0T,EAAAA,IACpCS,KAAgBnU,EAAAA,EAAAA,GAAemL,EAAAA,IAC/BiJ,GAAqBpU,EAAAA,EAAAA,GAAeqU,EAAAA,KACpC,6BAAEb,IAAiC/Y,EAAAA,EAAAA,MAEzCpG,EAAAA,EAAAA,YAAU,KACFmf,IACAxJ,EAAS,YAAawJ,EAA6BG,gBACnD3J,EAAS,WAAYwJ,EAA6BI,eAClD5J,EAAS,cAAewJ,EAA6BK,kBACrD7J,EAAS,eAAgBwJ,EAA6BzJ,mBAC1D,GACD,CAACyJ,IAEJ,MAAM,QACFvC,EAAO,SACPtQ,EAAQ,aACRE,EAAY,UACZkT,EAAS,SACT/J,EACAlJ,WAAW,OAAEC,EAAM,QAAEC,GAAS,MAC9BiT,IACA/S,EAAAA,EAAAA,IAAoC,CACpCI,UAAUC,EAAAA,EAAAA,GAAYgV,GAA2B,CAAE/U,YAAY,IAC/DL,KAAM,WACNC,aAAc,MACdC,eAAgB,aAGdf,EAAe2T,EAAM,gBACrBhJ,EAAcgJ,EAAM,eAEpB7J,GAAWkK,EAAAA,EAAAA,aACbzT,GAAc6B,IACV,MAAM,aAAEpC,EAAY,aAAEoV,EAAY,YAAEzK,EAAW,SAAEgF,GAAavN,EACxD6R,EAAkB,CACpBjU,eACA2K,eAEEuJ,EAAwB,CAC1BlU,eACAmU,cAAe,GACfC,cAAegB,EACff,UAAW1J,EACXzW,KAAMyb,EACNgC,YAAaC,GAAAA,GAAoB4E,SAGrCtK,GAAS2B,EAAAA,EAAAA,IAAcoG,IACvB/H,GAASoI,EAAAA,EAAAA,IAAoBJ,KAC7B5X,EAAAA,EAAAA,GACI,uBACA,6CACA,8CAGJ2W,EAAQ,EAAE,IAEd,CAAC1S,EAAc0S,IAGbvH,GAAesI,EAAAA,EAAAA,cAAY,KAAa,IAADrM,EAAA4M,EAAA4C,EAAA3C,EAAA4C,EAAA3C,EAAA4C,EAAA3C,EAAA4C,EAAA3C,EAAAC,EACzC,MAAM2C,EAAiB9D,IACjBqB,IACiC,QAAhCnR,EAAgBM,IAAI,UAAoC,YAAd8Q,EAAAA,GAC3C1P,EAAiB1B,EAAgBM,IAAI,UACrCF,EAAWJ,EAAgBM,IAAI,OAE/B+Q,EAAgC,CAClCtF,UAAW6H,EAAe7H,UAC1BC,SAAU4H,EAAe5H,SACzB3P,aAAcuX,EAAevX,aAC7B2K,YAAa4M,EAAe5M,YAC5BwJ,cAAe,GACfC,cAAemD,EAAenC,aAC9BH,QAAkE,QAA3DtN,EAAiC,QAAjC4M,EAAoB,OAAlBpB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB+B,mBAAW,IAAAX,EAAAA,EAAIgD,EAAetC,eAAO,IAAAtN,EAAAA,EAAI,GACtEtJ,eACuE,QADzD8Y,EACwB,QADxB3C,EACQ,OAAlBrB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB9U,sBAAc,IAAAmW,EAAAA,EAAI+C,EAAelZ,sBAAc,IAAA8Y,EAAAA,EAAI,GAC3EhC,YAA0E,QAA/DiC,EAAiC,QAAjC3C,EAAoB,OAAlBtB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBgC,mBAAW,IAAAV,EAAAA,EAAI8C,EAAepC,mBAAW,IAAAiC,EAAAA,EAAI,GAC9EhC,aAA6E,QAAjEiC,EAAkC,QAAlC3C,EAAoB,OAAlBvB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBiC,oBAAY,IAAAV,EAAAA,EAAI6C,EAAenC,oBAAY,IAAAiC,EAAAA,EAAI,GACjFhC,eACuE,QADzDiC,EACwB,QADxB3C,EACQ,OAAlBxB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBkC,sBAAc,IAAAV,EAAAA,EAAI4C,EAAelC,sBAAc,IAAAiC,EAAAA,EAAI,GAC3ErV,SAAUsV,EAAetV,SACzBqT,YAAaR,EAAmB,EAAI,EACpCtP,cAAyD,QAA5CoP,EAAE1B,EAA6B1N,qBAAa,IAAAoP,EAAAA,EAAI,GAC7DrP,UAAW2N,EAA6B3N,WAAaF,EACrDD,0BAA2BrB,EAC3B+P,qBACAD,cACAlC,YAAaC,GAAAA,GAAoB4E,SAGf,OAAlBrD,QAAkB,IAAlBA,GAAAA,EAAoBqC,oBACpBR,EAAaQ,kBAAoBrC,EAAmBqC,mBAGxDtJ,GAASuJ,EAAAA,EAAAA,IAAcT,KACvB1Y,EAAAA,EAAAA,GAAqB,WAAY,iBAAkB,WAAW,GAC/D,CAACmX,EAAW9P,EAAiBwP,EAAoBW,EAAoBD,IAExE,OACI1d,EAAAA,EAAAA,MAACQ,GAAAA,EAAa,CAACC,MAAOA,GAAAA,EAAMN,SAAA,CACd,IAAToc,IACGnc,EAAAA,EAAAA,KAACihB,GAAuB,CACpB7G,QAASA,EACTtQ,SAAUA,EACVI,OAAQA,EACRC,QAASA,EACToJ,SAAUA,EACV9J,aAAcA,IAGZ,IAAT0S,IACGnc,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOuf,2BAA2Btf,UAC9CC,EAAAA,EAAAA,KAAC+U,GAAc,CACXC,aAAa,EACbE,SAAUA,IAAMwH,EAAQ,GACxBjT,aAAcA,EACd2K,YAAaA,EACbe,aAAcA,QAId,ECjExB,GA5EqB+L,KACjB,MAAM,wBACFC,EAAuB,2BACvBxd,EAA0B,2BAC1Byd,EAA0B,8BAC1BzG,EAA6B,+BAC7B0G,EAA8B,kCAC9B9B,EAAiC,uBACjC7E,IACA9W,EAAAA,EAAAA,KAEE+R,GAAWC,EAAAA,EAAAA,MAET/J,KAAMyV,IAA4BvV,EAAAA,GAAAA,GAAuB,CAC7DpO,KAAMqO,EAAAA,EAAaiB,sBAGjBP,GAAkB+Q,EAAAA,EAAAA,cACnBjP,IACGmH,GAAS4L,EAAAA,EAAAA,IAAkB/S,IAC3B7K,GAA2B,EAAM,GAErC,CAACA,IAGC6d,GAAsB/D,EAAAA,EAAAA,cAAY,KAChC0D,EACAxd,GAA2B,GACpByd,EACPzG,GAA8B,GACvB0G,GACP9B,GAAkC,GAGtC7E,GAAuB,EAAK,GAC7B,CACCyG,EACAC,EACAC,EACA1d,EACAgX,EACA4E,EACA7E,EACA4G,IAGEG,EACFN,GAA2BC,GAA8BC,EAE7D,OAAII,GAEIzhB,EAAAA,EAAAA,KAACiH,EAAAA,GAAQ,CACLya,QAtDY,oBAuDZxa,KAAMua,EACNta,YAAaqa,EAAoBzhB,SAEhCuhB,GACG1hB,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,CACKohB,IAA2BnhB,EAAAA,EAAAA,KAACsf,GAAsB,IAClD8B,IACGphB,EAAAA,EAAAA,KAACkc,GAAgB,CAACxP,gBAAiBA,IAEtC2U,IAAkCrhB,EAAAA,EAAAA,KAACiN,GAAmB,OAG3DkU,IACInhB,EAAAA,EAAAA,KAACkc,GAAgB,CAACxP,gBAAiBA,MAOhD,IAAI,ECxDFiV,GAAoBA,KAC7B,MAAMhM,GAAWC,EAAAA,EAAAA,MAEX,2BAAEjS,EAA0B,iBAAEie,EAAgB,oBAAEpH,IAAwB5W,EAAAA,EAAAA,KACxEyQ,GAAoBlL,EAAAA,EAAAA,GAAemL,EAAAA,IACnC2B,GAAc9M,EAAAA,EAAAA,GAAe+M,EAAAA,KAE7B,KACF2L,EAAI,gBACJC,EAAe,kBACfC,EAAiB,sBACjBpP,EAAqB,uBACrBtJ,EAAsB,4BACtB2Y,EAA2B,gBAC3BC,EAAe,gBACfC,GCzBiBC,MACrB,MAAMpf,GAAMC,EAAAA,EAAAA,YAAWC,EAAAA,IACjB,iBAAEC,EAAmB,IAAOH,EAC5B4S,GAAWC,EAAAA,EAAAA,MACX,qBAAE1M,IAAyBC,EAAAA,EAAAA,GAAe6J,EAAAA,KACzC8O,EAAiBM,IAAsB7kB,EAAAA,EAAAA,UAAS8kB,EAAAA,GAAiBC,QACjEP,EAAmBQ,IAAwBhlB,EAAAA,EAAAA,UAAS,IAoC3D,OAlCAC,EAAAA,EAAAA,YAAU,KACF0L,IAAyBsZ,EAAAA,GAAmBC,WAC5CL,EAAmBC,EAAAA,GAAiBK,sBACxC,GACD,CAACxZ,IA8BG,CACH2Y,KAHM,GAAA1jB,OAAM+E,EAAgB,wDAI5B4e,kBACAC,oBACApP,sBAhC0BA,IAAYyP,EAAmBC,EAAAA,GAAiBM,gBAiC1EtZ,uBA9BAmF,IAEAmH,GAASiN,EAAAA,EAAAA,IAAoBpU,IAC7B+T,EAAqB/T,EAAQ/E,aAAa,EA4B1CuY,4BAzBgCA,IAAYI,EAAmBC,EAAAA,GAAiBC,OA0BhFL,gBAxBoBA,KACpBG,EAAmBC,EAAAA,GAAiBC,OACpCC,EAAqB,GAAG,EAuBxBL,gBApBoBA,KACpB,IAAIR,EAAU,GAMd,OAJII,IAAoBO,EAAAA,GAAiBC,QAAOZ,EAAU,UACtDI,IAAoBO,EAAAA,GAAiBM,iBAAgBjB,EAAU,uBAC/DI,IAAoBO,EAAAA,GAAiBK,wBAAuBhB,EAAU,UAEnEA,CAAO,EAcda,uBACH,ED1BGJ,IAEGhG,EAAMO,IAAWnf,EAAAA,EAAAA,UAAS,IAC1B0X,EAAU4N,IAAetlB,EAAAA,EAAAA,aAEhCC,EAAAA,EAAAA,YAAU,KACO,IAAT2e,GACAxG,GAASmN,EAAAA,EAAAA,MACb,GACD,CAAC3G,KAEJ3e,EAAAA,EAAAA,YAAU,KACFyY,IAAgBuM,EAAAA,GAAmBC,YACT,IAAtBpO,GACAqI,EAAQ,EAEhB,GACD,CAACrI,IAEJ,MAIM0O,EAAqBA,KACvBvI,GAAqBxK,IAAWA,KAEP,IAArB4R,IACIE,IAAoBO,EAAAA,GAAiBC,OAAOL,IAChDtM,GAASqN,EAAAA,EAAAA,IAAkB,KAC3BtG,EAAQ,GACZ,EAwBErC,EAAWA,KACbqC,GAASP,GAASA,EAAO,GAAE,EAGzBjH,EAAWA,KACbwH,GAASP,GAASA,EAAO,GAAE,EAG/B,OACInc,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOmjB,OAAOljB,UAC1BH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOojB,gBAAgBnjB,SAAA,EACnCC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAOqjB,aAAc5f,IAAI,aAAaiD,IAAKqb,KAE3DjiB,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOsjB,cAAejb,KAAK,aAAYpI,SAAA,EACnDC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,uBAAuBJ,UAAWC,GAAOujB,aAAatjB,SAAC,0BAG/DC,EAAAA,EAAAA,KAAA,KAAGC,KAAK,mBAAmBJ,UAAWC,GAAOujB,aAAatjB,SAAC,iBAK/DH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOwjB,gBAAgBvjB,SAAA,EACnCC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTtF,UAAWC,GAAOyjB,YAClBle,KAAK,SACLC,QAASC,EAAAA,EAAcie,SACvBC,cAAeC,EAAAA,GAAkBC,UACjCnjB,QAASuiB,EAAmBhjB,SAC/B,YAIDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLxF,UAAWC,GAAOyjB,YAClBje,QAASC,EAAAA,EAAcC,UACvBC,WAAYC,EAAAA,GAAaC,UACzB8d,cAAeC,EAAAA,GAAkBC,UACjCnjB,QA1EcojB,KAC9BjgB,GAA2B,EAAK,EAyEmB5D,SACtC,gBAKLC,EAAAA,EAAAA,KAACiH,EAAAA,GAAQ,CACLya,QAASQ,IACThb,KAAM0a,EACNza,YAAa4b,EAAmBhjB,UAEhCH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAO+jB,mBAAmB9jB,SAAA,CACrC+hB,IAAoBO,EAAAA,GAAiBC,QAClC1iB,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,CACc,IAAToc,IACGnc,EAAAA,EAAAA,KAACuS,GAAS,CACNG,gBAAiBqP,EACjBpP,sBAAuBA,EACvBC,QApEnBpE,IACbA,EAAQI,uBAAwB,EAChC+G,GAASoD,EAAAA,EAAAA,IAAWvK,IACpBqU,EAAYrU,EAAQ,EAkEY/B,aA/Dd+B,IAClBA,EAAQI,uBAAwB,EAChC+G,GAASmO,EAAAA,EAAAA,IAAoBtV,GAAS,IAgEJ,IAAT2N,IACGvc,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOikB,WAAWhkB,SAAA,EAC9BC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOkkB,iBAAiBjkB,SAAC,0LAMvCH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOmkB,qBAAqBlkB,SAAA,EACxCC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLC,QAASC,EAAAA,EAAckM,KACvBhM,WAAYC,EAAAA,GAAaC,UACzBnF,QAAS0U,EAASnV,SACrB,cAGDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvBhF,QAtGlB0jB,KACtB,GAAIjP,EAAU,CACV,MAAMzG,EAAU,CACZ/E,aAAcwL,EAASxJ,UAE3BkK,GAAS2B,EAAAA,EAAAA,IAAc9I,IACvB6L,GACJ,GA+FmEta,SAC9B,+BAMH,IAAToc,IACGnc,EAAAA,EAAAA,KAAC+U,GAAc,CACXC,aAAW,EACXC,SAAUA,EACVC,SAAUA,OAMzB4M,IAAoBO,EAAAA,GAAiBM,iBAClC3iB,EAAAA,EAAAA,KAACgJ,EAAkB,CAACK,uBAAwBA,IAG/CyY,IAAoBO,EAAAA,GAAiBK,wBAClC9iB,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAOqkB,sBAAsBpkB,SAAA,EACzCC,EAAAA,EAAAA,KAAA,KAAGH,UAAWC,GAAOskB,2BAA2BrkB,SAAC,8IAKjDC,EAAAA,EAAAA,KAACmF,EAAAA,GAAY,CACTE,KAAK,SACLC,QAASC,EAAAA,EAAcC,UACvBhF,QAASwhB,EAA4BjiB,SACxC,oBAQjBC,EAAAA,EAAAA,KAACkhB,GAAY,QAEf,E,2BE/Nd,SAAuB,mBAAvB,GAA6D,+BAA7D,GAAyG,yBAAzG,GAAqJ,+BAArJ,GAAgM,wBAAhM,GAA6O,iCAA7O,GAAkS,gCCUrRmD,GAAOA,KAChB,MAAM,eAAEC,EAAc,iBAAEC,IAAqBzgB,EAAAA,EAAAA,KACvCf,GAAMC,EAAAA,EAAAA,YAAWC,EAAAA,IACjB,iBAAEC,EAAmB,IAAOH,EAElC,OACInD,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAYC,SAAA,EACxBH,EAAAA,EAAAA,MAAA,SAAOC,UAAWC,GAAyB0kB,OAAK,EAACC,UAAQ,EAACC,MAAI,EAAA3kB,SAAA,EAC1DC,EAAAA,EAAAA,KAAA,UAAQwG,IAAG,GAAArI,OAAK+E,EAAgB,yCAChClD,EAAAA,EAAAA,KAAA,OACIwG,IAAG,GAAArI,OAAK+E,EAAgB,gDACxBK,IAAI,wBAGZvD,EAAAA,EAAAA,KAAC2hB,GAAiB,KAElB/hB,EAAAA,EAAAA,MAAC6E,EAAAA,GAAO,CAACE,GAAIC,EAAAA,GAAY+f,GAAI9kB,UAAWC,GAAkBC,SAAA,EACtDC,EAAAA,EAAAA,KAAA,QAAAD,SAAM,mBACNC,EAAAA,EAAAA,KAAA,QAAAD,SAAM,iBACNC,EAAAA,EAAAA,KAAA,QAAAD,SAAM,iBAEVH,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAAwBC,SAAA,EACpCC,EAAAA,EAAAA,KAAA,OACIH,UAAW+kB,KAAW9kB,GAAkBA,IACxC0G,IAAK8d,EACL/gB,IAAI,wBAERvD,EAAAA,EAAAA,KAAA,OACIH,UAAW+kB,KAAW9kB,GAAkBA,IACxC0G,IAAK+d,EACLhhB,IAAI,kCAGV,EC3Cd,GAA8B,kCAA9B,GAAuF,2CAAvF,GAA+J,iDAA/J,GAAiP,qD,gBCiCjP,MAkKA,GAlKoBshB,KAChB,MAAMlP,GAAWC,EAAAA,EAAAA,MACVxI,IAAmBC,EAAAA,EAAAA,OACpB,YAAE6C,EAAW,eAAE4U,IAAmBC,EAAAA,GAAAA,KAClCC,GAAWC,EAAAA,EAAAA,MACjBrZ,KACA,MAAM,kBAAEsZ,EAAiB,yBAAEC,IAA6Bhc,EAAAA,EAAAA,GAAe6J,EAAAA,IACjEoS,EAAYhY,EAAgBM,IAAI,cAE9B7B,KAAMwZ,EAAoBC,UAAWC,IAAyBxZ,EAAAA,GAAAA,GAAuB,CACzFpO,KAAMqO,EAAAA,EAAawZ,uBACnBpY,gBAAiB,CAAEgY,UAAoB,OAATA,QAAS,IAATA,EAAAA,EAAa,OAGxCpW,EAAWrB,IAAgBC,EAAAA,GAAAA,GAC9BtB,QACAuB,IAEGkB,EAAgBjB,IAAqBF,EAAAA,GAAAA,GACxCtB,QACAuB,GAGE4X,GAAuBtc,EAAAA,EAAAA,GAAeuc,EAAAA,IACtCC,GAA0Bxc,EAAAA,EAAAA,GAAeyc,EAAAA,IAEzC7V,GAAW7L,EAAAA,EAAAA,OAEjB1G,EAAAA,EAAAA,YAAU,KACN,MAAMqoB,EAAMzY,EAAgBM,IAAI,OAC5BmY,GACApY,EAAAA,GAAmBqY,IAAI,MAAOD,EAClC,GACD,CAACzY,IAEJ,MAAM,oBAAEoN,EAAmB,2BAAE7W,IAA+BC,EAAAA,EAAAA,MAE5DpG,EAAAA,EAAAA,YAAU,KACN,GAAIuS,EACA,OAAQA,EAASgW,UACb,IAAK,SACDvL,GAAoB,GACpB,MACJ,IAAK,YACD7W,GAA2B,GAKvC,GACD,CAACoM,KAEJvS,EAAAA,EAAAA,YAAU,KACN,MAAMwoB,EAAmB5Y,EAAgBM,IAAI,QACvCF,EAAWC,EAAAA,GAAmBC,IAAY,OAChD,GAAIsY,EAAkB,CAClB,MAAMxX,EAAU,CACZC,UAAWuX,EACXrX,SAAU,WACVC,uBAAuB,EACvBC,0BAA2BrB,GAG3BwB,IACAR,EAAQQ,UAAYA,EACpBrB,OAAaE,IAEbkB,IACAP,EAAQS,cAAgBF,EACxBjB,OAAkBD,IAGtB8H,GAASmO,EAAAA,EAAAA,IAAoBtV,IAC7BU,eAAeC,QAAQ,WAAY,WACvC,CAEAwG,GAASsQ,EAAAA,EAAAA,MAAwB,GAClC,KAEHzoB,EAAAA,EAAAA,YAAU,KACF2nB,GACAH,EAAS,eAAgB,CAAEnmB,SAAS,GACxC,GACD,CAACsmB,EAA0BH,KAE9BxnB,EAAAA,EAAAA,YAAU,KACF0nB,IACIhV,GACA4U,EAAe,IACfE,EAAS9U,EAAa,CAAErR,SAAS,KAEjCmmB,EAAS,eAAgB,CAAEnmB,SAAS,IAE5C,GACD,CAACqmB,EAAmBhV,EAAa4U,EAAgBE,IAEpD,MAAM,uBACFkB,EAAsB,yBACtBC,EAAwB,0BACxBC,EAAyB,sBACzBC,GCnHqBC,MACzB,MAAOJ,EAAwBE,IAA6B7oB,EAAAA,EAAAA,WAAkB,IACvE4oB,EAA0BI,IAC7BhpB,EAAAA,EAAAA,UAA0C,MAExCipB,EAA+BA,MAC7BC,EAAAA,EAAAA,OAGiB,OAFAhZ,EAAAA,GAAmBC,IAAa,uBAG7C0Y,GAA0B,EAElC,EA8BJ,OA3BA5oB,EAAAA,EAAAA,YAAU,KAEN,IAAIkpB,EAAsBA,OAE1B,GAAI5W,OAAOqW,yBACPI,EAA4BzW,OAAOqW,0BACnCK,QACG,CACH,MAAMG,EAAkClT,IACpC8S,EAA4B9S,GAC5B+S,GAA8B,EAGlC1W,OAAO8W,iBAAiB,sBAAuBD,GAE/CD,EAAUA,KACN5W,OAAO+W,oBAAoB,sBAAuBF,EAA+B,CAEzF,CAEA,OAAOD,CAAO,GACf,IAMI,CACHR,yBACAE,4BACAC,sBAP0BA,KAC1B5Y,EAAAA,GAAmBqY,IAAI,sBAAsB,EAAK,EAOlDK,2BACH,EDqEGG,GASJ,GAAIf,EAAsB,OAAOvlB,EAAAA,EAAAA,KAAC8mB,EAAAA,EAAsB,IAExD,MAAMC,EACFtB,IAAyBjD,EAAAA,GAAmBwE,SAC5CrB,IAA4BnD,EAAAA,GAAmBwE,QAEnD,OACIhnB,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAmBC,SAC9BslB,GACGzlB,EAAAA,EAAAA,MAAAwP,EAAAA,SAAA,CAAArP,SAAA,EACIC,EAAAA,EAAAA,KAACmB,EAAW,KACZnB,EAAAA,EAAAA,KAACinB,EAAAA,GAAsB,CAAAlnB,UACnBC,EAAAA,EAAAA,KAACknB,EAAAA,GAAa,UAItBtnB,EAAAA,EAAAA,MAAA,OAAKC,UAAWC,GAA4BC,SAAA,EACxCC,EAAAA,EAAAA,KAACqkB,GAAI,KACLrkB,EAAAA,EAAAA,KAAC4C,EAAO,KACR5C,EAAAA,EAAAA,KAACuH,EAAiB,KAClB3H,EAAAA,EAAAA,MAACqnB,EAAAA,GAAsB,CAAAlnB,SAAA,EACnBC,EAAAA,EAAAA,KAAChD,EAAa,KACdgD,EAAAA,EAAAA,KAACknB,EAAAA,GAAa,OAEjBhB,IACGtmB,EAAAA,EAAAA,MAAA,OACIY,QAASA,KACmB,OAAxB2lB,QAAwB,IAAxBA,GAAAA,EAA0BgB,QAAQ,EAEtCtnB,UAAWC,GACXqI,KAAK,SACLif,SAAU,EAAErnB,SAAA,EAEZC,EAAAA,EAAAA,KAACqnB,EAAe,CAAC9kB,MAAO,MACxBvC,EAAAA,EAAAA,KAAA,OAAKH,UAAWC,GAAsCC,SAAC,6DAGvDC,EAAAA,EAAAA,KAACS,EAAAA,EAAS,CACND,QA7CG+V,IAC3BA,EAAE+Q,kBAEFlB,GAA0B,GAC1BC,GAAuB,EA0CC3mB,SAAS,SACTa,GAAI,CAAEgnB,aAAc,UAK/BR,IAAsB/mB,EAAAA,EAAAA,KAACwnB,EAAAA,EAAwB,QAGtD,C,mFE5Ld,MAAMC,GAAUC,EAAAA,EAAAA,IAAO,MAAPA,CAAc,CAC1B3P,SAAU,QACV4P,IAAK,EACLC,KAAM,EACNrlB,MAAO,OACPslB,OAAQ,OACRC,OAAQ,KACRzoB,gBAAiB,qBACjByc,QAAS,OACTiM,eAAgB,SAChBC,WAAY,SACZzoB,MAAOyR,EAAAA,GAAMiX,QASjB,EANiCT,KAC7BxnB,EAAAA,EAAAA,KAACynB,EAAO,CAAA1nB,UACJC,EAAAA,EAAAA,KAACkoB,EAAAA,EAAgB,CAAC3oB,MAAM,UAAU,cAAY,iC,iDClBtD,MAyDA,EAzDwBmB,IACpBd,EAAAA,EAAAA,MAAA,OACIe,MAAM,6BACNM,EAAG,EACHC,EAAG,EACHL,QAAQ,eACRD,SAAS,cACLF,EAAKX,SAAA,EAETC,EAAAA,EAAAA,KAAA,SAAAD,SAAQ,iDACRH,EAAAA,EAAAA,MAAA,KAAGuoB,UAAU,2BAA0BpoB,SAAA,EACnCC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,ghBAENkC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,wKAENkC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,oKAENkC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,4SAENkC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,wTAENkC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,4JAENkC,EAAAA,EAAAA,KAAA,KAAGmoB,UAAU,0BAAyBpoB,UAClCC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,0HAGVkC,EAAAA,EAAAA,KAAA,KAAGmoB,UAAU,2BAA0BpoB,UACnCC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,iMAGVkC,EAAAA,EAAAA,KAAA,KAAGmoB,UAAU,2BAA0BpoB,UACnCC,EAAAA,EAAAA,KAAA,QACIH,UAAU,WACV/B,EAAE,2F,mCCpDf,IAAKkO,EAAY,SAAZA,GAAY,OAAZA,EAAY,gDAAZA,EAAY,oCAAZA,EAAY,wCAAZA,EAAY,wCAAZA,EAAY,gCAAZA,EAAY,gCAAZA,EAAY,8CAAZA,EAAY,0CAAZA,CAAY,K,8ECIjB,MAAMjG,EAAuBA,CAACqiB,EAAkBC,EAAgBC,KAG/C,KAFAC,EAAAA,EAAAA,MAGhBC,EAAAA,GAAQC,KAAK,QAASJ,EAAQ,CAC1BK,QAASC,EAAAA,GACTC,eAAgBR,EAChBS,aAAcR,EACdS,YAAaR,IAGjBE,EAAAA,GAAQ/U,MAAM,CACV2U,WACAC,SACAC,SAER,EAGSS,EAA8BxS,IACvCxQ,EAAqBwQ,EAAE,GAADpY,OAAKoY,EAAC,UAAUA,EAAE,C,kDCpB5C,SAAevX,E,SAAAA,GAAY,CACvBC,WAAY,CACR+pB,oBAAqB,CACjB7pB,eAAgB,CACZC,KAAM,CACFM,UAAUD,EAAAA,EAAAA,IAAQ,IAClBF,MAAO,UACPyoB,WAAY,aACZiB,YAAa,KAIzBC,cAAe,CACX/pB,eAAgB,CACZC,KAAM,CACF0c,QAAS,OACTpc,UAAUD,EAAAA,EAAAA,IAAQ,IAClBsoB,eAAgB,gBAI5B7oB,WAAY,CACRC,eAAgB,CACZC,KAAM,CACFM,UAAUD,EAAAA,EAAAA,IAAQ,IAClBE,WAAY,IACZwpB,YAAY1pB,EAAAA,EAAAA,IAAQ,Q","sources":["webpack://naf.connect/./src/app/features/landing-page/cookie-banner/cookie-consent.module.scss?fe40","app/features/landing-page/cookie-banner/cookie-consent.component.tsx","app/features/landing-page/cookie-banner/use-cookie-consent.ts","app/shared/components/svg-icons/nc-multiline-icon.component.tsx","app/shared/components/svg-icons/equal-housing-opportunity-icon.component.tsx","webpack://naf.connect/./src/app/features/maintenance/maintenance.module.scss?78fa","app/features/maintenance/maintenance.component.tsx","app/shared/components/svg-icons/large-play-icon.component.tsx","app/shared/hooks/use-feature-data.hook.ts","webpack://naf.connect/./src/app/features/landing-page/content/content.module.scss?df70","app/features/landing-page/content/content.component.tsx","webpack://naf.connect/./src/app/features/landing-page/footer-landing-page/footer-landing-page.module.scss?f247","app/features/landing-page/footer-landing-page/footer-landing-page.component.tsx","webpack://naf.connect/./src/app/features/landing-page/forms/forgot-password/forgot-password.module.scss?c859","app/features/landing-page/forms/forgot-password/forgot-password-form.component.tsx","app/shared/schema/log-in-form.schema.ts","webpack://naf.connect/./src/app/features/landing-page/forms/login/login-form.module.scss?77c9","webpack://naf.connect/./src/app/features/landing-page/forms/registration/social-sign-on/social-sign-on.module.scss?1082","app/shared/hooks/use-feature-flag.hook.ts","app/shared/helpers/local-storage-keys.ts","app/features/landing-page/forms/registration/social-sign-on/social-sign-on.component.tsx","webpack://naf.connect/./src/app/features/landing-page/forms/verify-code/verify-code-form.module.scss?d271","app/features/landing-page/forms/verify-code/verify-code-terms.component.tsx","app/features/landing-page/forms/login/login-form.component.tsx","webpack://naf.connect/./src/app/features/landing-page/header-landing-page/header-landing-page.module.scss?e653","app/features/landing-page/forms/verify-code/verify-code-instructions.component.tsx","app/features/landing-page/forms/verify-code/verify-code-form.component.tsx","webpack://naf.connect/./src/app/features/landing-page/forms/registration/registration-form.module.scss?8648","app/features/landing-page/forms/registration/use-registration-form.ts","webpack://naf.connect/./src/app/features/landing-page/forms/registration/user-details/user-details-form.module.scss?31ca","app/features/landing-page/forms/registration/user-details/user-details-form.component.tsx","app/features/landing-page/forms/registration/registration-form.component.tsx","webpack://naf.connect/./src/app/features/landing-page/registration/registration-role-picker.module.scss?4f9d","app/features/landing-page/registration/registration-role-picker.component.tsx","app/features/landing-page/registration/builder-registration/builder-registration-form-schema.ts","webpack://naf.connect/./src/app/features/landing-page/registration/builder-registration/builder-registration-form.module.scss?9f5d","app/features/landing-page/registration/builder-registration/builder-registration-form.component.tsx","app/features/landing-page/registration/builder-registration/builder-registration.component.tsx","app/features/landing-page/registration/registration.component.tsx","app/features/landing-page/header-landing-page/header-landing-page.component.tsx","app/features/landing-page/header-landing-page/use-header-landing-page.ts","webpack://naf.connect/./src/app/features/landing-page/hero/hero.module.scss?5cb3","app/features/landing-page/hero/hero.component.tsx","webpack://naf.connect/./src/app/features/landing-page/landing-page.module.scss?fa49","app/features/landing-page/landing-page.component.tsx","app/shared/hooks/use-pwa.hook.ts","app/shared/components/full-page-circular-progress/full-page-circular-progress.component.tsx","app/shared/components/svg-icons/naf-connect-logo.component.tsx","app/shared/enums/feature-flags.enum.ts","app/shared/helpers/google-analytics.helper.ts","app/shared/themes/registration.theme.ts"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"cookie\":\"cookie-consent_cookie__rfJee\",\"cookie__text\":\"cookie-consent_cookie__text__u7c0P\",\"cookie__link\":\"cookie-consent_cookie__link__HT2tn\"};","import { ReactElement } from 'react';\r\n\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { IconButton, ThemeProvider } from '@mui/material';\r\n\r\nimport styles from './cookie-consent.module.scss';\r\nimport { useCookieConsent } from './use-cookie-consent';\r\n\r\nexport const CookieConsent = (): ReactElement | null => {\r\n    const { iconTheme, showBanner, handleCookie } = useCookieConsent();\r\n\r\n    return showBanner ? (\r\n        <div className={styles.cookie}>\r\n            <div className={styles.cookie__text}>\r\n                By using our site, you agree to our use of cookies. For more information read\r\n                our&nbsp;\r\n                <a\r\n                    className={styles.cookie__link}\r\n                    href=\"https://www.newamericanfunding.com/legal/privacy-policy/\"\r\n                    target=\"_blank\"\r\n                    rel=\"noreferrer\"\r\n                >\r\n                    Privacy Policy\r\n                </a>\r\n                .\r\n            </div>\r\n            <ThemeProvider theme={iconTheme}>\r\n                <IconButton sx={{ padding: 0 }} aria-label=\"close\" onClick={handleCookie}>\r\n                    <CloseIcon />\r\n                </IconButton>\r\n            </ThemeProvider>\r\n        </div>\r\n    ) : null;\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nimport { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme, Theme } from '@mui/material';\r\n\r\ninterface CookieConsentHook {\r\n    iconTheme: Theme;\r\n    setCookie: (name: string, value: string, exdays: number) => void;\r\n    getCookie: (name: string) => string;\r\n    showBanner: boolean;\r\n    setShowBanner: React.Dispatch<React.SetStateAction<boolean>>;\r\n    checkCookie: () => void;\r\n    handleCookie: () => void;\r\n}\r\n\r\nexport const useCookieConsent = (): CookieConsentHook => {\r\n    const cookieName = 'zigzy-connect-cookie-usage';\r\n    const expirationDays = 365;\r\n\r\n    const [showBanner, setShowBanner] = useState(false);\r\n\r\n    const handleCookie = (): void => {\r\n        setCookie(cookieName, '1', expirationDays);\r\n        setShowBanner(false);\r\n    };\r\n\r\n    useEffect(() => {\r\n        checkCookie();\r\n    }, [showBanner]);\r\n\r\n    const setCookie = (name: string, value: string, exdays: number): void => {\r\n        const d = new Date();\r\n        d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\r\n        const expires = `expires=${d.toUTCString()}`;\r\n        document.cookie = `${name}=${value};${expires};path=/`;\r\n    };\r\n\r\n    const getCookie = (name: string): string => {\r\n        const cookieArray: Array<string> = document.cookie.split(';');\r\n        const cookieArrayLength: number = cookieArray.length;\r\n        const cookieName = `${name}=`;\r\n        let cookie: string;\r\n\r\n        for (let i = 0; i < cookieArrayLength; i += 1) {\r\n            cookie = cookieArray[i].replace(/^\\s+/g, '');\r\n            if (cookie.indexOf(cookieName) === 0) {\r\n                return cookie.substring(cookieName.length, cookie.length);\r\n            }\r\n        }\r\n\r\n        return '';\r\n    };\r\n\r\n    const checkCookie = (): void => {\r\n        if (getCookie(cookieName) !== '1') {\r\n            setShowBanner(true);\r\n        }\r\n    };\r\n\r\n    const iconTheme = createTheme({\r\n        components: {\r\n            MuiSvgIcon: {\r\n                styleOverrides: {\r\n                    root: {\r\n                        backgroundColor: '#FFFFFF',\r\n                        borderRadius: '50%',\r\n                        color: '#013560',\r\n                        padding: pxToRem(8),\r\n                        fontSize: pxToRem(16),\r\n                        fontWeight: 800,\r\n                    },\r\n                },\r\n            },\r\n        },\r\n    });\r\n\r\n    return {\r\n        iconTheme,\r\n        setCookie,\r\n        getCookie,\r\n        showBanner,\r\n        setShowBanner,\r\n        checkCookie,\r\n        handleCookie,\r\n    };\r\n};\r\n","import { ReactElement, SVGProps } from 'react';\r\n\r\nconst NCMultilineIcon = (props: SVGProps<SVGSVGElement>): ReactElement => (\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" xmlSpace=\"preserve\" viewBox=\"0 0 192 192\" {...props}>\r\n        <path\r\n            d=\"M0 0h192v192H0z\"\r\n            style={{\r\n                fill: '#091644',\r\n            }}\r\n        />\r\n        <path\r\n            d=\"M81 96.5V81.7h-.1c0-4.3-2.5-6.6-6-6.6-3.7 0-6.1 2.3-6.1 6.6v14.8H62V69.7h6.8v3.4c2-2.4 5-3.9 8.2-3.8 6.4 0 10.9 4 10.9 11.4v15.7H81v.1zm30 0v-3.9c-2 2.8-5.5 4.4-9 4.3-6.8 0-12.3-5.5-12.3-13.9 0-8.3 5.3-13.7 12.3-13.7 3.5-.1 6.8 1.5 9 4.3v-3.9h7v26.8h-7zm-7.3-21.3c-3.7 0-7.1 2.7-7.1 7.8s3.4 7.9 7.1 7.9c3.8 0 7.2-2.8 7.2-7.8.1-4.9-3.5-7.9-7.2-7.9zm27.6-5.4v5.5h-4.8v21.1h-7v-28c0-6.6 3.7-9.6 11.2-9.4h.5v5.8h-.2c-3.4-.1-4.5.9-4.5 3.9v1.1h4.8z\"\r\n            style={{\r\n                fill: '#fff',\r\n            }}\r\n        />\r\n        <path\r\n            d=\"M64.6 119c-.1 7.4-6.4 13.4-13.9 13.1-6.3.1-11.9-3.9-13.5-9.9l-4.5 5.1-1.6 1.6-.1.1c-2.5 2.2-5.4 3.2-8.7 3.4H22c-4.6 0-9-2.3-11.6-6.1-4.2-6.4-2.6-14.9 3.8-19.2 6.4-4.2 15-2.6 19.3 3.8l.3.3-3.8 4.5h-.5l-.3-.4c-1.1-2.8-3.8-4.7-6.9-4.7h-.4c-2 0-4 .8-5.4 2.3-1.5 1.6-2.3 3.7-2.3 5.8v.4c.1 4.2 3.5 7.7 7.9 7.7h.1c2.3 0 4.5-.9 6-2.7.1-.1.1-.3.3-.4l10.4-12.1c2.6-4.3 7.2-6.9 12.3-6.9 1.2 0 2.5.1 3.7.5 6.1 1.4 10.4 6.9 10.2 13.1-.2.4-.2.7-.5.7zM51 110.5h-.7c-4.2.1-7.6 3.7-7.5 8 0 4.3 3.5 7.9 7.9 8 4.5 0 8.2-3.4 8.2-7.9s-3.4-8-7.9-8.1zm33.9 22.2v-14.8c0-4.9-2-7.2-6.1-7.2-4.2.1-6.5 2.4-6.5 6.9v15H66v-27.1h6v2.3c2-2 4.9-3.2 7.9-3.1h.1c4.4 0 7.4 1.6 9.3 4.5 1.2 2.3 1.9 4.9 2 7.6v15.8h-6.4v.1zm26.6 0v-14.8c0-4.9-2-7.2-6.1-7.2-4.2.1-6.5 2.4-6.5 6.9v15h-6.3v-27.1h6v2.3c2-2 4.9-3.2 7.9-3.1 4.4 0 7.4 1.6 9.3 4.5 1.4 2.3 2 4.9 2.2 7.6v15.8h-6.5v.1zm35.1-12.3v.7h-21.4c.7 3.7 3.9 6.4 7.8 6.2 2.7 0 5.4-1.5 6.7-3.9v-.1l.3-.3h6.4l-.4.9c-1.1 2.7-2.9 4.9-5.3 6.5-2.2 1.5-4.8 2.3-7.5 2.3h-.2c-7.8 0-14-6.2-14-13.9s6.3-14 14-14c3.7-.1 7.2 1.2 9.8 3.8 3 3.1 4.5 7.4 3.8 11.8zm-13.5-10.2h-.3c-3.5-.1-6.7 2.3-7.5 5.7h15.1c-.7-3.4-3.7-5.7-7.3-5.7zm36 5.6-.3-.4c-1.1-3-3.9-4.9-7.1-4.7h-.1c-2 0-3.9.8-5.3 2.2-1.4 1.5-2.2 3.5-2.2 5.7v.6c-.1 2 .7 4.1 2.2 5.7 1.4 1.4 3.3 2.2 5.3 2.2h.1c3.1 0 6-1.9 7.1-4.7l.3-.4.5.1 3.8 4.5-.3.3c-2.6 3.8-6.8 6.1-11.4 6.1h-.3c-7.6-.1-13.6-6.4-13.5-13.8v-.1c0-7.4 6-13.7 13.5-13.8h.3c4.6 0 8.9 2.3 11.4 6.1l.3.3-3.8 4.5h-.5v-.4zm11.6-3.3V125c0 .5.1 1.2.5 1.8.7.5 1.5.7 2.3.5h.6v5.4H183c-2.5.3-4.8-.5-6.5-2-1.4-1.5-2-3.5-1.9-5.6v-21.7h6.3v3.8h3.5v5.3h-3.7z\"\r\n            style={{\r\n                fill: '#889bd8',\r\n            }}\r\n        />\r\n    </svg>\r\n);\r\n\r\nexport default NCMultilineIcon;\r\n","import { ReactElement, SVGProps } from 'react';\r\n\r\nconst EqualHousingOpportunityIcon = (props: SVGProps<SVGSVGElement>): ReactElement => (\r\n    <svg\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        id=\"Layer_1\"\r\n        x={0}\r\n        y={0}\r\n        viewBox=\"0 0 16 16\"\r\n        xmlSpace=\"preserve\"\r\n        {...props}\r\n    >\r\n        <style>{'.ehoi__st0{fill-rule:evenodd;clip-rule:evenodd;fill:#fff}'}</style>\r\n        <path\r\n            className=\"ehoi__st0\"\r\n            d=\"M2.6 12.2h-.5v.3h.5v.1h-.5v.3h.5v.2h-.8v-1h.8v.1zM3.3 12.8l.1.1h-.1c-.1 0-.3-.1-.3-.4 0-.3.2-.4.3-.4.1 0 .3.1.3.4v.2l-.1-.1-.2.2zm.5.3-.1-.1c.1-.1.1-.2.1-.4 0-.5-.4-.5-.5-.5-.1 0-.5.1-.5.5 0 .5.4.5.5.5.1 0 .2 0 .3-.1l.1.1h.1zM4.8 12.7c0 .3-.2.4-.4.4-.1 0-.2 0-.3-.1-.1-.1-.1-.2-.1-.3V12h.2v.7c0 .1.1.2.2.2s.2-.1.2-.2V12h.2v.7zM5.4 12.3l.1.4h-.3l.2-.4zm-.2.6h.4l.1.2h.2l-.4-1h-.2l-.4 1h.2l.1-.2zM6.2 12.9h.6v.2H6v-1h.2v.8zM7.6 12.6v.5h-.2v-1h.2v.4H8v-.4h.2v1H8v-.5h-.4zM8.6 12.6c0-.3.2-.4.3-.4.1 0 .3.1.3.4 0 .3-.2.4-.3.4-.1-.1-.3-.1-.3-.4zm-.2 0c0 .5.4.5.5.5.1 0 .5-.1.5-.5 0-.5-.4-.6-.5-.6-.1 0-.5.1-.5.6zM10.4 12.7c0 .3-.2.4-.4.4-.1 0-.2 0-.3-.1-.1-.1-.1-.1-.1-.3V12h.2v.7c0 .1.1.2.2.2s.2-.1.2-.2V12h.2v.7zM10.8 12.8c0 .1 0 .2.2.2.1 0 .2 0 .2-.1s-.1-.1-.2-.1h-.1c-.2 0-.3-.1-.3-.3 0-.1.1-.3.4-.3.3 0 .4.2.4.3h-.2s0-.2-.2-.2c-.1 0-.2 0-.2.1s.1.1.1.1l.3.1c.1 0 .3.1.3.3 0 .3-.3.3-.4.3-.4 0-.4-.2-.4-.3h.1v-.1zM11.8 13.1h-.2v-1h.2v1zM12.7 12.1h.2v1h-.2l-.4-.7v.7h-.2v-1h.2l.4.7v-.7zM13.6 12.5h.4v.6h-.1V13c-.1.1-.1.2-.3.2-.2 0-.5-.2-.5-.5s.2-.5.5-.5.4.2.5.3h-.2s-.1-.2-.2-.2c-.2 0-.3.1-.3.4 0 .3.2.4.3.4 0 0 .2 0 .3-.2h-.2v-.4h-.2zM2 14.1c0-.3.2-.4.3-.4.1 0 .3.1.3.4 0 .3-.2.4-.3.4-.1 0-.3-.1-.3-.4zm-.2 0c0 .5.4.5.5.5.1 0 .5-.1.5-.5 0-.5-.4-.5-.5-.5-.1 0-.5.1-.5.5zM3.4 14.1v-.3h.2c.1 0 .2 0 .2.1 0 0 0 .2-.2.2h-.2zm0 .2h.2c.3 0 .4-.2.4-.3 0-.2-.1-.3-.3-.3h-.5v1h.2v-.4zM4.5 14.1v-.3h.2c.1 0 .2 0 .2.1 0 0 0 .2-.2.2h-.2zm0 .2h.2c.3 0 .3-.2.3-.3 0-.2-.1-.3-.3-.3h-.4v1h.2v-.4zM5.7 14.1c0-.3.2-.4.3-.4.1 0 .3.1.3.4 0 .3-.2.4-.3.4-.2 0-.3-.1-.3-.4zm-.3 0c0 .5.4.5.5.5.1 0 .5-.1.5-.5 0-.5-.4-.5-.5-.5-.1 0-.5.1-.5.5zM7 14.1v-.3h.3c.1 0 .2.1.2.1 0 .1-.1.1-.2.1H7v.1zm-.2.6H7v-.4h.2c.2 0 .2.1.2.2v.2h.2v-.2c0-.2 0-.2-.1-.3.1 0 .2-.1.2-.2s-.1-.3-.3-.3h-.6v1zM8.5 14.7h-.3v-.9h-.3v-.2h.9v.2h-.3v.9zM9.9 14.3c0 .3-.2.4-.4.4-.1 0-.2 0-.3-.1-.1-.1-.1-.1-.1-.2v-.7h.2v.7c0 .1.1.2.2.2s.2-.1.2-.2v-.7h.2v.6zM11 13.6h.2v1.1H11l-.5-.8v.8h-.2v-1.1h.3l.4.7v-.7zM11.8 14.7h-.2v-1.1h.2v1.1zM12.6 14.7h-.2v-.9h-.3v-.2h.8v.2h-.3v.9zM13.8 14.7h-.3v-.4l-.3-.7h.2l.2.5.3-.5h.2l-.3.7v.4zM7.9 1.3 1 4.7v1.6h.8v4.8h12.3V6.3h.9V4.7L7.9 1.3zm4.7 8.4H3.3V5.3L8 2.9l4.6 2.4v4.4z\"\r\n        />\r\n        <path className=\"ehoi__st0\" d=\"M10.1 6.9H5.8V5.3h4.3v1.6zM10.1 9.1H5.8V7.5h4.3v1.6z\" />\r\n    </svg>\r\n);\r\n\r\nexport default EqualHousingOpportunityIcon;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"maintenance\":\"maintenance_maintenance__8Fk8d\",\"maintenance__headerContainer\":\"maintenance_maintenance__headerContainer__kF3xe\",\"maintenance__headerWrapper\":\"maintenance_maintenance__headerWrapper__h-Eew\",\"maintenance__header\":\"maintenance_maintenance__header__TgdNg\",\"maintenance__nafLogo\":\"maintenance_maintenance__nafLogo__u0+fS\",\"maintenance__subText\":\"maintenance_maintenance__subText__Yd37w\",\"maintenance__bodyText\":\"maintenance_maintenance__bodyText__35QPW\",\"maintenance__filler\":\"maintenance_maintenance__filler__zOAcE\",\"maintenance__footerAccessibility\":\"maintenance_maintenance__footerAccessibility__D629O\",\"maintenance__footerInfo\":\"maintenance_maintenance__footerInfo__ZoMWb\",\"maintenance__footerCopyright\":\"maintenance_maintenance__footerCopyright__i7CvQ\",\"maintenance__footerLinks\":\"maintenance_maintenance__footerLinks__kfqGw\",\"mobile__footer\":\"maintenance_mobile__footer__d3MZZ\",\"mobile__footerSupport\":\"maintenance_mobile__footerSupport__a0vGH\",\"mobile__footerBar\":\"maintenance_mobile__footerBar__d5xHf\"};","import EqualHousingOpportunityIcon from 'app/shared/components/svg-icons/equal-housing-opportunity-icon.component';\r\nimport NafConnectLogo from 'app/shared/components/svg-icons/naf-connect-logo.component';\r\nimport { supportPhone } from 'app/shared/data';\r\nimport { ReactElement } from 'react';\r\n\r\nimport styles from './maintenance.module.scss';\r\n\r\nconst Maintenance = (): ReactElement => (\r\n    <div className={styles.maintenance}>\r\n        <div className={styles.maintenance__headerContainer}>\r\n            <div className={styles.maintenance__headerWrapper}>\r\n                <div className={styles.maintenance__header}>\r\n                    <div className={styles.maintenance__nafLogo}>\r\n                        <NafConnectLogo />\r\n                    </div>\r\n                    <div className={styles.maintenance__subText}>\r\n                        NAFConnect service is currently down.\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div className={styles.maintenance__bottom}>\r\n            <div className={styles.maintenance__body}>\r\n                <div className={styles.maintenance__bodyText}>\r\n                    We are aware of this issue and are working to resolve it quickly. Please check\r\n                    back at a later time. We apologize for any inconvenience!\r\n                </div>\r\n            </div>\r\n            <div className={styles.maintenance__filler}>\r\n                <div className={styles.mobile__footer}>\r\n                    <div className={styles.mobile__footerSupport}>\r\n                        <span>Need Support?</span>\r\n                        <span>{supportPhone}</span>\r\n                    </div>\r\n                    <div className={styles.mobile__footerBar} />\r\n                </div>\r\n            </div>\r\n            <div className={styles.maintenance__footer}>\r\n                <div className={styles.maintenance__footerAccessibility}>\r\n                    <div>\r\n                        If you are using a screen reader or other auxiliary aid and are having\r\n                        problems using this website please call 800-450-2010 Ext. 7100 for\r\n                        assistance.\r\n                    </div>\r\n                </div>\r\n                <div className={styles.maintenance__footerInfo}>\r\n                    <div>\r\n                        <EqualHousingOpportunityIcon width={55} />\r\n                    </div>\r\n                    <div className={styles.maintenance__footerCopyright}>\r\n                        <div>\r\n                            © 2022 Broker Solutions, Inc. DBA New American Funding. All Rights\r\n                            Reserved.\r\n                        </div>\r\n                        <div>Corporate Office: 14511 Myford Road, Suite 100, Tustin, CA 92780.</div>\r\n                    </div>\r\n                    <div className={styles.maintenance__footerLinks}>\r\n                        <a href=\"https://www.nmlsconsumeraccess.org/EntityDetails.aspx/COMPANY/6606\">\r\n                            NMLS ID#6606\r\n                        </a>\r\n                        {' | '}\r\n                        <a href=\"https://www.newamericanfunding.com/legal/state-licensing/\">\r\n                            State Licensing\r\n                        </a>\r\n                        {' | '}\r\n                        <a href=\"https://naf-connect.com/privacy-policy\">Privacy Policy</a>\r\n                        {' | '}\r\n                        <a href=\"https://naf-connect.com/terms-of-use\">Terms of Use</a>\r\n                        {' | '}\r\n                        <a href=\"https://www.newamericanfunding.com/legal/electronic-consent-agreement/\">\r\n                            Electronic Consent Agreement\r\n                        </a>\r\n                        {' | '}\r\n                        <a href=\"https://www.newamericanfunding.com/legal/partners/\">Partners</a>\r\n                        {' | '}\r\n                        <a href=\"https://www.nmlsconsumeraccess.org/\">NMLS Consumer Access</a>\r\n                        {' | '}\r\n                        <a href=\"https://www.newamericanfunding.com/legal/state-disclosures-for-serviced-loans/\">\r\n                            State Disclosures for Serviced Loans\r\n                        </a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n);\r\n\r\nexport default Maintenance;\r\n","import { ReactElement, SVGProps } from 'react';\r\n\r\nconst LargePlayIcon = (props: SVGProps<SVGSVGElement>): ReactElement => (\r\n    <svg\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        id=\"Layer_1\"\r\n        x={0}\r\n        y={0}\r\n        viewBox=\"0 0 100 100\"\r\n        xmlSpace=\"preserve\"\r\n        {...props}\r\n    >\r\n        <style>{'.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#3b6ccf}'}</style>\r\n        <path\r\n            className=\"st0\"\r\n            d=\"M50 0c27.6 0 50 22.4 50 50s-22.4 50-50 50S0 77.6 0 50 22.4 0 50 0z\"\r\n        />\r\n        <path\r\n            d=\"M50 6c24.3 0 44 19.7 44 44S74.3 94 50 94 6 74.3 6 50 25.7 6 50 6z\"\r\n            style={{\r\n                fillRule: 'evenodd',\r\n                clipRule: 'evenodd',\r\n                fill: '#fff',\r\n            }}\r\n        />\r\n        <path\r\n            className=\"st0\"\r\n            d=\"M50 7.8c23.3 0 42.2 18.9 42.2 42.2S73.3 92.2 50 92.2 7.8 73.3 7.8 50C7.8 26.6 26.6 7.8 50 7.8z\"\r\n        />\r\n        <path\r\n            d=\"M64.7 52.4 44.1 64.6c-1.9 1.1-4.2-.2-4.2-2.4V37.8c0-2.4 2.6-3.4 4.2-2.4l20.6 12.2c1.9 1.1 1.9 3.7 0 4.8z\"\r\n            style={{\r\n                fill: '#fff',\r\n            }}\r\n        />\r\n    </svg>\r\n);\r\n\r\nexport default LargePlayIcon;\r\n","import { FeatureModel } from '../models';\r\nimport { useContext } from 'react';\r\nimport { EnvContext } from 'app/contexts/environment/environment.context';\r\n\r\ninterface FeatureData {\r\n    features: FeatureModel[];\r\n}\r\n\r\nexport const useFeatureData = (): FeatureData => {\r\n    const env = useContext(EnvContext);\r\n    const { BLOB_STORAGE_URL = '' } = env;\r\n\r\n    const features = [\r\n        {\r\n            key: 'ClientManagement',\r\n            title: 'Client Management',\r\n            description:\r\n                'Helps clients navigate the loan process and communicate with New American Funding.',\r\n            image: `${BLOB_STORAGE_URL}/assets/images/large-icon-naf-connect-user-checkmark.svg`,\r\n            alt: 'user-checkmark',\r\n        },\r\n        {\r\n            key: 'DocumentTracking',\r\n            title: 'Document Tracking',\r\n            description: 'View documents needed by the New American Funding processing team.',\r\n            image: `${BLOB_STORAGE_URL}/assets/images/large-icon-naf-connect-search.svg`,\r\n            alt: 'search',\r\n        },\r\n        {\r\n            key: 'LoanUpdates',\r\n            title: 'Loan Updates',\r\n            description:\r\n                \"View your client's loan status and receive notifications as the loan moves across key milestones.\",\r\n            image: `${BLOB_STORAGE_URL}/assets/images/large-icon-naf-connect-checklist.svg`,\r\n            alt: 'checklist',\r\n        },\r\n        {\r\n            key: 'Pre-ApprovalLetters',\r\n            title: 'Pre-Approval Letters',\r\n            description:\r\n                'Generate, edit, and download pre\\u2011approval letters at the click of a button.',\r\n            image: `${BLOB_STORAGE_URL}/assets/images/large-icon-naf-connect-document-gear.svg`,\r\n            alt: 'document-gear',\r\n        },\r\n    ];\r\n\r\n    return { features };\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"notifications__img\":\"content_notifications__img__IpSeE\",\"calculator__img\":\"content_calculator__img__DfKrX\",\"features__img\":\"content_features__img__2RTPM\",\"content\":\"content_content__4No-x\",\"introduction__contentHeader\":\"content_introduction__contentHeader__GV34J\",\"introduction__contentBody\":\"content_introduction__contentBody__APp7T\",\"introduction__info\":\"content_introduction__info__JJx7t\",\"introduction__videoImg\":\"content_introduction__videoImg__V6SnL\",\"introduction__playButton\":\"content_introduction__playButton__DTl0C\",\"introduction__marketingVideo\":\"content_introduction__marketingVideo__kwG5R\",\"introduction__getStarted\":\"content_introduction__getStarted__9uN82\",\"features\":\"content_features__uoZZE\",\"features__heading\":\"content_features__heading__bYC-k\",\"features__contentContainer\":\"content_features__contentContainer__ltFtm\",\"features__content\":\"content_features__content__R7sht\",\"features__card\":\"content_features__card__0bCSx\",\"features__title\":\"content_features__title__LYTPF\",\"features__description\":\"content_features__description__ckgBD\",\"calculator\":\"content_calculator__SoyCh\",\"calculator__img--logo\":\"content_calculator__img--logo__pLbhy\",\"calculator__img--info\":\"content_calculator__img--info__Vg9Sy\",\"calculator__img--infoTablet\":\"content_calculator__img--infoTablet__f9VhO\",\"calculator__img--infoMobile\":\"content_calculator__img--infoMobile__gF8Ud\",\"notifications\":\"content_notifications__Ot8ul\",\"notifications__copy\":\"content_notifications__copy__zqnCF\",\"notifications__text\":\"content_notifications__text__i6CrX\",\"notifications__title\":\"content_notifications__title__Xn0aD\",\"notifications__img--logo\":\"content_notifications__img--logo__KR3NL\"};","import { ReactElement, useEffect, useState } from 'react';\r\n\r\nimport { AppModal, CustomButton, Heading } from 'app/shared/components';\r\nimport { FontWeight, HeadingSize, MuiButtonType, MuiColorType } from 'app/shared/enums';\r\nimport { useMuiMediaQuery } from 'app/shared/hooks';\r\nimport { FeatureModel } from 'app/shared/models';\r\nimport { googleAnalyticsEvent } from 'app/shared/helpers/google-analytics.helper';\r\nimport LargePlayIcon from 'app/shared/components/svg-icons/large-play-icon.component';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport { useFeatureData } from 'app/shared/hooks/use-feature-data.hook';\r\n\r\nimport styles from './content.module.scss';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nexport const Content = (): ReactElement => {\r\n    const { features } = useFeatureData();\r\n    const { isMobile, isDesktop } = useMuiMediaQuery();\r\n    const { setIsRegistrationModalOpen } = useLandingPage();\r\n    const { notificationsLogo } = useNafConnectImages();\r\n    const [isMarketingModalOpen, toggleMarketingModal] = useState(false);\r\n    const { hash } = useLocation();\r\n\r\n    useEffect(() => {\r\n        if (hash) {\r\n            const element = document.getElementById(hash.replace('#', ''));\r\n            if (element) {\r\n                element.scrollIntoView({ behavior: 'smooth' });\r\n            }\r\n        }\r\n    }, [hash]);\r\n\r\n    return (\r\n        <div className={styles.content}>\r\n            <div id=\"header-introduction\" className={styles.introduction__content}>\r\n                <Heading\r\n                    className={styles.introduction__contentHeader}\r\n                    as={HeadingSize.h3}\r\n                    size={3}\r\n                    fontWeight={FontWeight.semiBold}\r\n                >\r\n                    What is NAF Connect?\r\n                </Heading>\r\n                <div className={styles.introduction__contentBody}>\r\n                    <div className={styles.introduction__content}>\r\n                        <p className={styles.introduction__info}>\r\n                            NAF Connect is built for real estate agents, builders, and other\r\n                            referral partners, providing real-time insights into all stages of a\r\n                            loan with New American Funding. Customize and guide your client’s\r\n                            experience from start to finish and provide them with the best service\r\n                            ever.\r\n                        </p>\r\n                        {isDesktop ? (\r\n                            <CustomButton\r\n                                className={styles.introduction__getStarted}\r\n                                type=\"button\"\r\n                                variant={MuiButtonType.contained}\r\n                                colorTheme={MuiColorType.secondary}\r\n                                onClick={() => setIsRegistrationModalOpen(true)}\r\n                            >\r\n                                Get Started\r\n                            </CustomButton>\r\n                        ) : null}\r\n                    </div>\r\n                    <div className={styles.introduction__videoImg}>\r\n                        <LargePlayIcon\r\n                            className={styles.introduction__playButton}\r\n                            width={isMobile ? 64 : 90}\r\n                            onClick={(): void => {\r\n                                toggleMarketingModal(true);\r\n                                googleAnalyticsEvent(\r\n                                    'Landing Page',\r\n                                    'Landing Page Promo Video Play Event',\r\n                                    'Landing Page Promo Video Click'\r\n                                );\r\n                            }}\r\n                        />\r\n                    </div>\r\n                    {!isDesktop ? (\r\n                        <CustomButton\r\n                            className={styles.introduction__getStarted}\r\n                            type=\"button\"\r\n                            variant={MuiButtonType.contained}\r\n                            onClick={() => setIsRegistrationModalOpen(true)}\r\n                        >\r\n                            Get Started\r\n                        </CustomButton>\r\n                    ) : null}\r\n                </div>\r\n            </div>\r\n\r\n            <div id=\"header-features\" className={styles.features}>\r\n                <Heading\r\n                    as={HeadingSize.h3}\r\n                    size={3}\r\n                    fontWeight={FontWeight.bold}\r\n                    className={styles.features__heading}\r\n                >\r\n                    NAF Connect Features Include\r\n                </Heading>\r\n\r\n                <div className={styles.features__contentContainer}>\r\n                    <div className={styles.features__content}>\r\n                        {features.map((feature: FeatureModel) => (\r\n                            <div key={feature.key} className={styles.features__card}>\r\n                                <img\r\n                                    className={styles.features__img}\r\n                                    src={feature.image}\r\n                                    alt={feature.alt}\r\n                                />\r\n\r\n                                <Heading\r\n                                    as={HeadingSize.h4}\r\n                                    className={styles.features__title}\r\n                                    size={4}\r\n                                >\r\n                                    {feature.title}\r\n                                </Heading>\r\n                                <p className={styles.features__description}>\r\n                                    {feature.description}\r\n                                </p>\r\n                            </div>\r\n                        ))}\r\n                    </div>\r\n                </div>\r\n                <div className={styles.notifications}>\r\n                    <div className={styles.notifications__copy}>\r\n                        <Heading as={HeadingSize.h3} className={styles.notifications__title}>\r\n                            Notifications\r\n                        </Heading>\r\n                        <p className={styles.notifications__text}>\r\n                            Receive notifications when new milestones are completed and watch\r\n                            real-time loan status updates to keep you and your client up-to-date on\r\n                            the status of their loan.\r\n                        </p>\r\n                    </div>\r\n\r\n                    <img\r\n                        className={`${styles.notifications__img} ${styles['notifications__img--logo']}`}\r\n                        alt=\"Notifications Logo\"\r\n                        src={notificationsLogo}\r\n                    />\r\n                </div>\r\n            </div>\r\n\r\n            <AppModal\r\n                open={isMarketingModalOpen}\r\n                handleClose={(): void => toggleMarketingModal(false)}\r\n            >\r\n                <div className={styles.introduction__marketingVideo}>\r\n                    <iframe\r\n                        src=\"https://www.youtube.com/embed/uUEPhRfTNnM?autoplay=1\"\r\n                        title=\"YouTube video player\"\r\n                        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\r\n                        allowFullScreen\r\n                    />\r\n                </div>\r\n            </AppModal>\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"footer-landing-page_footer__0bF+P\",\"footer__content\":\"footer-landing-page_footer__content__Vd7rv\",\"footer__section\":\"footer-landing-page_footer__section__+TKML\",\"footer__companyInfo\":\"footer-landing-page_footer__companyInfo__VE-Ud\",\"footer__social\":\"footer-landing-page_footer__social__LXgYo\",\"footer__icon\":\"footer-landing-page_footer__icon__xNDS8\",\"footer__logo\":\"footer-landing-page_footer__logo__15IAQ\",\"footer__legal\":\"footer-landing-page_footer__legal__TllWV\",\"footer__legalLinks\":\"footer-landing-page_footer__legalLinks__YavEm\",\"footer__legalLink\":\"footer-landing-page_footer__legalLink__rpgF1\",\"footer__phone\":\"footer-landing-page_footer__phone__imOxF\"};","import { ReactElement } from 'react';\r\nimport { RiFacebookFill, RiLinkedinFill } from 'react-icons/ri';\r\nimport InstagramIcon from '@mui/icons-material/Instagram';\r\nimport TwitterIcon from '@mui/icons-material/Twitter';\r\n\r\nimport { companyAddress, customerCarePhone, supportEmail, supportPhone } from 'app/shared/data';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport { copyrightText, privacyUrl, termsUrl } from 'app/shared/helpers/settings.helper';\r\n\r\nimport styles from './footer-landing-page.module.scss';\r\n\r\nexport const FooterLandingPage = (): ReactElement => {\r\n    const { nafConnectLogoLight } = useNafConnectImages();\r\n\r\n    return (\r\n        <div className={styles.footer}>\r\n            <div className={styles.footer__content}>\r\n                <div className={styles.footer__section}>\r\n                    <img\r\n                        className={styles.footer__logo}\r\n                        alt=\"NAFConnect\"\r\n                        src={nafConnectLogoLight}\r\n                    />\r\n                </div>\r\n\r\n                <div className={styles.footer__section}>\r\n                    <a\r\n                        className={styles.footer__companyInfo}\r\n                        href={`https://maps.google.com/?q=${companyAddress}`}\r\n                        target=\"_blank\"\r\n                        rel=\"noreferrer\"\r\n                    >\r\n                        14511 Myford, Suite 100 <br />\r\n                        Tustin, CA 92780\r\n                    </a>\r\n\r\n                    <a className={styles.footer__companyInfo} href={`tel:${supportPhone}`}>\r\n                        {supportPhone}\r\n                    </a>\r\n\r\n                    <a\r\n                        className={styles.footer__companyInfo}\r\n                        href={`mailto:${supportEmail}?subject=Support`}\r\n                    >\r\n                        {supportEmail}\r\n                    </a>\r\n                </div>\r\n\r\n                <div className={styles.footer__section}>\r\n                    <a\r\n                        className={styles.footer__social}\r\n                        href=\"https://www.facebook.com/newamericanfunding\"\r\n                    >\r\n                        <RiFacebookFill\r\n                            className={styles.footer__icon}\r\n                            role=\"img\"\r\n                            aria-label=\"Facebook Icon\"\r\n                        />\r\n                        Facebook\r\n                    </a>\r\n\r\n                    <a className={styles.footer__social} href=\"https://twitter.com/newamericanteam\">\r\n                        <TwitterIcon\r\n                            className={styles.footer__icon}\r\n                            role=\"img\"\r\n                            aria-label=\"Twitter Icon\"\r\n                        />\r\n                        Twitter\r\n                    </a>\r\n\r\n                    <a\r\n                        className={styles.footer__social}\r\n                        href=\"https://www.instagram.com/newamericanfunding\"\r\n                    >\r\n                        <InstagramIcon\r\n                            className={styles.footer__icon}\r\n                            role=\"img\"\r\n                            aria-label=\"Instagram Icon\"\r\n                        />\r\n                        Instagram\r\n                    </a>\r\n\r\n                    <a\r\n                        className={styles.footer__social}\r\n                        href=\"https://www.linkedin.com/company/new-american-funding\"\r\n                    >\r\n                        <RiLinkedinFill\r\n                            className={styles.footer__icon}\r\n                            role=\"img\"\r\n                            aria-label=\"Linkedin Icon\"\r\n                        />\r\n                        Linkedin\r\n                    </a>\r\n                </div>\r\n\r\n                <div className={styles.footer__section}>\r\n                    <span>\r\n                        If you are using a screen reader or other auxiliary aid and are having\r\n                        &nbsp;problems using this website please call&nbsp;\r\n                        <a className={styles.footer__phone} href={`tel:${customerCarePhone}`}>\r\n                            {customerCarePhone}\r\n                        </a>\r\n                        for assistance.\r\n                    </span>\r\n                </div>\r\n            </div>\r\n\r\n            <div className={styles.footer__legal}>\r\n                <span className={styles.footer__trademark}>{copyrightText}</span>\r\n\r\n                <p className={styles.footer__legalLinks}>\r\n                    <a\r\n                        href={termsUrl}\r\n                        target=\"_blank\"\r\n                        className={styles.footer__legalLink}\r\n                        rel=\"noreferrer\"\r\n                    >\r\n                        Terms of Use\r\n                    </a>\r\n                    <a\r\n                        href={privacyUrl}\r\n                        target=\"_blank\"\r\n                        className={styles.footer__legalLink}\r\n                        rel=\"noreferrer\"\r\n                    >\r\n                        Privacy Policy\r\n                    </a>\r\n                </p>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"form__submit\":\"forgot-password_form__submit__baP7G\",\"forgot-password\":\"forgot-password_forgot-password__OCc4D\",\"forgot-password__info\":\"forgot-password_forgot-password__info__qYjHs\",\"form\":\"forgot-password_form__rHYPv\"};","import { ReactElement, useEffect } from 'react';\r\n\r\nimport { CustomLoadingButton, CustomTextField } from 'app/shared/components';\r\nimport { MuiButtonType } from 'app/shared/enums';\r\nimport { isStatusPending } from 'app/shared/helpers';\r\nimport { useAppSelector } from 'app/store/hooks';\r\nimport { statusForgotPasswordSelector } from 'app/store/slices/auth.slice';\r\nimport { FieldValues, SubmitHandler, useForm } from 'react-hook-form';\r\nimport * as Yup from 'yup';\r\n\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\nimport styles from './forgot-password.module.scss';\r\nimport { ForgotPasswordRequest } from 'app/services/auth/models';\r\nimport { emailRegExp } from 'app/shared/data';\r\n\r\ninterface ForgotPasswordFormProps {\r\n    onForgotPasswordSubmit: SubmitHandler<ForgotPasswordRequest>;\r\n}\r\n\r\nexport const ForgotPasswordForm = (props: ForgotPasswordFormProps): ReactElement => {\r\n    const statusForgotPassword = useAppSelector(statusForgotPasswordSelector);\r\n    const { onForgotPasswordSubmit } = props;\r\n    const forgotPasswordInfo =\r\n        \"Enter your email address and we'll send you instructions to reset your password.\";\r\n\r\n    const schema = Yup.object().shape({\r\n        emailAddress: Yup.string()\r\n            .required('Email is required')\r\n            .email('Invalid email format. Please enter a valid email address.')\r\n            .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n    });\r\n\r\n    const {\r\n        register,\r\n        reset,\r\n        handleSubmit,\r\n        formState: { errors, isValid, isSubmitted },\r\n    } = useForm({\r\n        mode: 'onSubmit',\r\n        criteriaMode: 'all',\r\n        reValidateMode: 'onChange',\r\n        resolver: yupResolver(schema, { abortEarly: false }),\r\n    });\r\n\r\n    useEffect(() => {\r\n        if (isValid) {\r\n            reset();\r\n        }\r\n    }, [isSubmitted]);\r\n\r\n    const isSubmitting = isStatusPending(statusForgotPassword);\r\n\r\n    return (\r\n        <div className={styles['forgot-password']}>\r\n            <p className={styles['forgot-password__info']}>{forgotPasswordInfo}</p>\r\n\r\n            <form className={styles.form}>\r\n                <CustomTextField\r\n                    inputLabel=\"Email Address\"\r\n                    id=\"forgot-password-email\"\r\n                    type=\"email\"\r\n                    placeholder=\"Email Address\"\r\n                    fullWidth\r\n                    register={register('emailAddress')}\r\n                    errorType={!!errors.emailAddress}\r\n                    errorMessage={errors.emailAddress?.message}\r\n                />\r\n            </form>\r\n            <CustomLoadingButton\r\n                type=\"submit\"\r\n                variant={MuiButtonType.contained}\r\n                disabled={isSubmitting}\r\n                onClick={handleSubmit(onForgotPasswordSubmit as SubmitHandler<FieldValues>)}\r\n                loading={isSubmitting}\r\n            >\r\n                Submit\r\n            </CustomLoadingButton>\r\n        </div>\r\n    );\r\n};\r\n","import * as Yup from 'yup';\r\nimport { emailRegExp } from '../data';\r\n\r\nexport const logInFormSchema = Yup.object().shape({\r\n    username: Yup.string()\r\n        .required('Email is required')\r\n        .email('Invalid email format. Please enter a valid email address.')\r\n        .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n    password: Yup.string()\r\n        .required('Password is required')\r\n        .min(8, 'Password must be at least 8 characters'),\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"loginForm\":\"login-form_loginForm__xHWll\",\"loginForm__form\":\"login-form_loginForm__form__BmQJV\",\"loginForm__error\":\"login-form_loginForm__error__pIsrA\",\"loginForm__link\":\"login-form_loginForm__link__1n6af\",\"loginForm__forgotPassword\":\"login-form_loginForm__forgotPassword__E1TMQ\",\"loginForm__actions\":\"login-form_loginForm__actions__F6qMZ\",\"loginForm__termsOfUse\":\"login-form_loginForm__termsOfUse__X547o\",\"loginError\":\"login-form_loginError__XFIaj\",\"loginError__text\":\"login-form_loginError__text__dVqf8\"};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"social-sign-on_header__57gai\",\"header__text\":\"social-sign-on_header__text__5UnpQ\",\"sso\":\"social-sign-on_sso__jvi77\",\"sso__btnGroup\":\"social-sign-on_sso__btnGroup__IWoDc\",\"btn\":\"social-sign-on_btn__285dB\",\"btn__google\":\"social-sign-on_btn__google__XH5qx\",\"btn__linkedin\":\"social-sign-on_btn__linkedin__o+LI-\",\"btn__facebook\":\"social-sign-on_btn__facebook__9mjpa\",\"legal\":\"social-sign-on_legal__19bpq\",\"legal__link\":\"social-sign-on_legal__link__Gar5F\",\"alternative\":\"social-sign-on_alternative__zDaYh\",\"alternative__line\":\"social-sign-on_alternative__line__9TXvE\",\"alternative__line--left\":\"social-sign-on_alternative__line--left__XYO8N\",\"alternative__line--right\":\"social-sign-on_alternative__line--right__zAuCU\",\"alternative__text\":\"social-sign-on_alternative__text__z7QCL\",\"builderDisclaimer\":\"social-sign-on_builderDisclaimer__FHGmT\"};","import { useGetFeatureFlagQuery } from 'app/store/api/feature-flag/feature-flag.api';\r\nimport { FeatureFlags } from '../enums/feature-flags.enum';\r\n\r\ninterface FeatureFlagHook {\r\n    showGoogleButton?: boolean;\r\n    showLinkedinButton?: boolean;\r\n    showFacebookButton?: boolean;\r\n    showCoBorrower?: boolean;\r\n    NAFConnectTour?: boolean;\r\n}\r\nexport const useFeatureFlag = (): FeatureFlagHook => {\r\n    const { data: showGoogleButton } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.ShowGoogleButton,\r\n    });\r\n    const { data: showLinkedinButton } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.ShowLinkedinButton,\r\n    });\r\n    const { data: showFacebookButton } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.ShowFacebookButton,\r\n    });\r\n\r\n    return {\r\n        showGoogleButton,\r\n        showLinkedinButton,\r\n        showFacebookButton,\r\n    };\r\n};\r\n","export const LocalStorageKey = {\r\n    ReaSource: '@nc_rea_source',\r\n    LoReferralGuid: '@nc_lo_referral_guid',\r\n};\r\n","import { ReactElement, useContext, useEffect, useState } from 'react';\r\n\r\nimport { EnvContext } from 'app/contexts/environment/environment.context';\r\nimport { LoginWithTokenRequest } from 'app/services/auth/models';\r\nimport { Heading, SocialSignOnButton } from 'app/shared/components';\r\nimport { Color, FontWeight, HeadingSize, MuiButtonType } from 'app/shared/enums';\r\nimport ResponsiveLayout from 'app/shared/enums/responsive-layout.enum';\r\nimport { localStorageHelper } from 'app/shared/helpers';\r\nimport { googleAnalyticsEvent } from 'app/shared/helpers/google-analytics.helper';\r\nimport { useWhichLayout, useSocialSignOn } from 'app/shared/hooks';\r\nimport { FacebookAuth } from 'app/shared/models/facebook-auth.model';\r\nimport { FaFacebook, FaLinkedin } from 'react-icons/fa';\r\nimport { FcGoogle } from 'react-icons/fc';\r\nimport { useSearchParams } from 'react-router-dom';\r\n\r\nimport styles from './social-sign-on.module.scss';\r\n\r\nimport { useFeatureFlag } from 'app/shared/hooks/use-feature-flag.hook';\r\nimport { useLocalStorage } from 'usehooks-ts';\r\nimport { LocalStorageKey } from 'app/shared/helpers/local-storage-keys';\r\nimport { useGetFeatureFlagQuery } from 'app/store/api/feature-flag/feature-flag.api';\r\nimport { FeatureFlags } from 'app/shared/enums/feature-flags.enum';\r\nimport { FaCircleInfo } from 'react-icons/fa6';\r\n\r\ninterface SocialSignOnProps {\r\n    headerText: string;\r\n    onTokenLogin?: (request: LoginWithTokenRequest) => void | undefined;\r\n    onTokenRegister?: (request: LoginWithTokenRequest) => void | undefined;\r\n}\r\n\r\nexport const SocialSignOn = (props: SocialSignOnProps): ReactElement => {\r\n    const { headerText, onTokenLogin, onTokenRegister } = props;\r\n\r\n    const env = useContext(EnvContext);\r\n    const { GOOGLE_CLIENT_ID = '' } = env;\r\n    const { googleScope, linkedinAuthUrl, linkedinConfig } = useSocialSignOn();\r\n    const { showGoogleButton, showLinkedinButton, showFacebookButton } = useFeatureFlag();\r\n    const { data: isBuilderRegistrationEnabled } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.BuilderRegistration,\r\n    });\r\n\r\n    const [client, setClient] = useState<google.accounts.oauth2.TokenClient>();\r\n    const [queryParameters] = useSearchParams();\r\n    const layout = useWhichLayout();\r\n    const pdmParam = localStorageHelper.get<string>('arm');\r\n    const [, setReaSource] = useLocalStorage<string | undefined>(\r\n        LocalStorageKey.ReaSource,\r\n        undefined\r\n    );\r\n    const [, setLoReferralGuid] = useLocalStorage<string | undefined>(\r\n        LocalStorageKey.LoReferralGuid,\r\n        undefined\r\n    );\r\n\r\n    useEffect(() => {\r\n        if (GOOGLE_CLIENT_ID) {\r\n            const client = google.accounts.oauth2.initTokenClient({\r\n                client_id: GOOGLE_CLIENT_ID,\r\n                scope: googleScope,\r\n                callback: loginWithGoogle,\r\n            });\r\n            setClient(client);\r\n        }\r\n    }, []);\r\n\r\n    const loginWithGoogle = (response: google.accounts.oauth2.TokenResponse): void => {\r\n        const request = {\r\n            tokenCode: response.access_token,\r\n            provider: 'Google',\r\n            checkVerificationCode: true,\r\n            partnerDevelopmentManager: pdmParam,\r\n        } as LoginWithTokenRequest;\r\n        if (onTokenLogin) {\r\n            onTokenLogin(request);\r\n            googleAnalyticsEvent('Login', 'Logged in with Google', 'Logged in with Google');\r\n        }\r\n\r\n        if (onTokenRegister) {\r\n            const reaSourceParam = queryParameters.get('source');\r\n            const loReferralGuid = queryParameters.get('lo_guid');\r\n            if (reaSourceParam) {\r\n                request.reaSource = reaSourceParam;\r\n            }\r\n            if (loReferralGuid) {\r\n                request.loanOfficerId = loReferralGuid;\r\n            }\r\n            onTokenRegister(request);\r\n        }\r\n        sessionStorage.setItem('Provider', 'Google');\r\n    };\r\n\r\n    const loginWithFacebook = (): void => {\r\n        const fbRequestToken = {\r\n            tokenCode: '',\r\n            provider: 'Facebook',\r\n            checkVerificationCode: true,\r\n            partnerDevelopmentManager: pdmParam,\r\n        } as LoginWithTokenRequest;\r\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n        (window as any).FB.getLoginStatus((response: FacebookAuth) => {\r\n            if (response.status === 'unknown' || response.status === 'not_authorized') {\r\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n                (window as any).FB.login(\r\n                    (response: FacebookAuth) => {\r\n                        fbRequestToken.tokenCode = response.authResponse.accessToken;\r\n                        if (onTokenLogin) {\r\n                            onTokenLogin(fbRequestToken);\r\n                            googleAnalyticsEvent(\r\n                                'Login',\r\n                                'Logged in with Facebook',\r\n                                'Logged in with Facebook'\r\n                            );\r\n                        }\r\n                        if (onTokenRegister) {\r\n                            onTokenRegister(fbRequestToken);\r\n                        }\r\n                    },\r\n                    { scope: 'email', auth_type: 'reauthenticate', return_scopes: true }\r\n                );\r\n            } else {\r\n                fbRequestToken.tokenCode = response.authResponse.accessToken;\r\n                if (onTokenLogin) {\r\n                    onTokenLogin(fbRequestToken);\r\n                    googleAnalyticsEvent(\r\n                        'Login',\r\n                        'Logged in with Facebook',\r\n                        'Logged in with Facebook'\r\n                    );\r\n                }\r\n                if (onTokenRegister) {\r\n                    onTokenRegister(fbRequestToken);\r\n                }\r\n            }\r\n        });\r\n        sessionStorage.setItem('Provider', 'Facebook');\r\n    };\r\n\r\n    const onGoogleClick = (): void => {\r\n        if (client) {\r\n            client.requestAccessToken();\r\n        }\r\n    };\r\n\r\n    const onLinkedinClick = (): void => {\r\n        const reaSourceParam = queryParameters.get('source');\r\n        const loReferralGuid = queryParameters.get('lo_guid');\r\n        if (reaSourceParam) {\r\n            setReaSource(reaSourceParam);\r\n        }\r\n        if (loReferralGuid) {\r\n            setLoReferralGuid(loReferralGuid);\r\n        }\r\n        window.location.href = `${linkedinAuthUrl}&state=${linkedinConfig.state}&client_id=${linkedinConfig.clientId}&redirect_uri=${linkedinConfig.redirectUrl}&scope=${linkedinConfig.scope}`;\r\n        googleAnalyticsEvent('Login', 'Logged in with LinkedIn', 'Logged in with LinkedIn');\r\n    };\r\n\r\n    return (\r\n        <>\r\n            <div className={styles.header}>\r\n                <Heading\r\n                    className={styles.header__text}\r\n                    as={HeadingSize.h6}\r\n                    size={6}\r\n                    fontWeight={FontWeight.medium}\r\n                >\r\n                    {headerText}\r\n                </Heading>\r\n            </div>\r\n\r\n            <div className={styles.sso}>\r\n                <div className={`${styles.sso__btnGroup}`}>\r\n                    {showGoogleButton && (\r\n                        <SocialSignOnButton\r\n                            variant={MuiButtonType.contained}\r\n                            onClick={(): void => onGoogleClick()}\r\n                            icon={<FcGoogle size={layout === ResponsiveLayout.Mobile ? 19 : 14} />}\r\n                            className={`${styles.btn} ${styles.btn__google}`}\r\n                            name=\"Google\"\r\n                        />\r\n                    )}\r\n                    {showLinkedinButton && (\r\n                        <SocialSignOnButton\r\n                            variant={MuiButtonType.contained}\r\n                            onClick={(): void => onLinkedinClick()}\r\n                            icon={\r\n                                <FaLinkedin size={layout === ResponsiveLayout.Mobile ? 19 : 14} />\r\n                            }\r\n                            className={`${styles.btn} ${styles.btn__linkedin}`}\r\n                            name=\"LinkedIn\"\r\n                        />\r\n                    )}\r\n                    {showFacebookButton && (\r\n                        <SocialSignOnButton\r\n                            variant={MuiButtonType.contained}\r\n                            onClick={(): void => loginWithFacebook()}\r\n                            icon={\r\n                                <FaFacebook size={layout === ResponsiveLayout.Mobile ? 19 : 14} />\r\n                            }\r\n                            className={`${styles.btn} ${styles.btn__facebook}`}\r\n                            name=\"Facebook\"\r\n                        />\r\n                    )}\r\n                </div>\r\n                {isBuilderRegistrationEnabled && (\r\n                    <div className={styles.builderDisclaimer}>\r\n                        <FaCircleInfo size={24} color={Color.nafSecondaryBlue} />\r\n                        Home builder accounts must log in with email address.\r\n                    </div>\r\n                )}\r\n                <div className={styles.alternative}>\r\n                    <div\r\n                        className={`${styles.alternative__line} ${styles['alternative__line--left']}`}\r\n                    />\r\n                    <p className={styles.alternative__text}>or</p>\r\n                    <div\r\n                        className={`${styles.alternative__line} ${styles['alternative__line--right']}`}\r\n                    />\r\n                </div>\r\n            </div>\r\n        </>\r\n    );\r\n};\r\n\r\nSocialSignOn.defaultProps = {\r\n    onTokenLogin: null,\r\n    onTokenRegister: null,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"instructions__text\":\"verify-code-form_instructions__text__0kAUk\",\"instructions__error\":\"verify-code-form_instructions__error__B1vuD\",\"instructions__resend\":\"verify-code-form_instructions__resend__60zRK\",\"instructions__resendBtn\":\"verify-code-form_instructions__resendBtn__J4BTl\",\"code__container\":\"verify-code-form_code__container__VQfc0\",\"code__input\":\"verify-code-form_code__input__iQO+G\",\"code__inputError\":\"verify-code-form_code__inputError__bIVv4\",\"terms\":\"verify-code-form_terms__Z61aX\",\"terms__link\":\"verify-code-form_terms__link__7Vyt5\",\"terms__text\":\"verify-code-form_terms__text__NW1ps\",\"actions__container\":\"verify-code-form_actions__container__06tFA\",\"resendCode\":\"verify-code-form_resendCode__TseM7\",\"resendCode__contact\":\"verify-code-form_resendCode__contact__Qftu1\",\"resendCode__link\":\"verify-code-form_resendCode__link__8QRI6\"};","import { ReactElement, useEffect, useState } from 'react';\r\nimport { partnerUrl, privacyUrl, termsUrl } from 'app/shared/helpers/settings.helper';\r\n\r\nimport styles from './verify-code-form.module.scss';\r\nimport { useFeatureFlag } from 'app/shared/hooks/use-feature-flag.hook';\r\n\r\ninterface VerifyCodeTermsProps {\r\n    firstText: string;\r\n    secondText: string;\r\n}\r\n\r\nexport const VerifyCodeTerms = ({ firstText, secondText }: VerifyCodeTermsProps): ReactElement => {\r\n    const { showFacebookButton } = useFeatureFlag();\r\n    const [providerText, setProviderText] = useState<string>();\r\n\r\n    useEffect(() => {\r\n        const text = formatProviderText();\r\n        setProviderText(text);\r\n    }, []);\r\n\r\n    const formatProviderText = (): string => {\r\n        const additionalProviders = [{ name: 'Facebook', show: showFacebookButton }]\r\n            .filter((provider) => provider.show)\r\n            .map((provider) => provider.name);\r\n\r\n        const baseProviders = ['Google', 'LinkedIn'];\r\n\r\n        const allProviders = [...baseProviders, ...additionalProviders];\r\n\r\n        const formattedProviders = `${allProviders.slice(0, -1).join(', ')} or ${allProviders.slice(\r\n            -1\r\n        )}`;\r\n\r\n        return formattedProviders;\r\n    };\r\n\r\n    const terms = (\r\n        <a className={styles.terms__link} href={termsUrl} target=\"_blank\" rel=\"noreferrer\">\r\n            Terms of Use\r\n        </a>\r\n    );\r\n    const privacy = (\r\n        <a className={styles.terms__link} href={privacyUrl} target=\"_blank\" rel=\"noreferrer\">\r\n            Privacy Policy\r\n        </a>\r\n    );\r\n    const partners = (\r\n        <a className={styles.terms__link} href={partnerUrl} target=\"_blank\" rel=\"noreferrer\">\r\n            partners\r\n        </a>\r\n    );\r\n    const phone = (\r\n        <a className={styles.terms__link} href=\"tel:+8008901057\">\r\n            (800) 890-1057\r\n        </a>\r\n    );\r\n\r\n    return (\r\n        <div className={styles.terms}>\r\n            {firstText !== 'Log In' ? (\r\n                <>\r\n                    <p className={styles.terms__text}>\r\n                        We need to verify your account with a code sent to your cell phone number.\r\n                        Message and data rates may apply.\r\n                    </p>\r\n\r\n                    <p className={styles.terms__text}>\r\n                        By clicking {firstText} with {providerText}, or by clicking {secondText},\r\n                        you acknowledge that you have reviewed the {privacy}, and agree by ESIGN\r\n                        signature to the following 1) the {terms}, and 2) you consent to be\r\n                        contacted by New American Funding, its {partners}, and parties calling on\r\n                        their behalf to contact you at the number that you provided above for\r\n                        marketing purposes, including through the use of email, automated\r\n                        technology, artificial or prerecorded voice, AI generative voice, and\r\n                        SMS/MMS messages. You acknowledge that your consent is not required to\r\n                        obtain any good or service, and that you can be connected with New American\r\n                        Funding without providing consent by calling {phone}. You consent to be\r\n                        contacted even if your phone number or email address appears on a New\r\n                        American Funding Do Not Contact/Do Not Email list, a State or National Do\r\n                        Not Call Registry or any other Do Not Contact List.\r\n                    </p>\r\n                </>\r\n            ) : (\r\n                <p className={styles.terms__text}>\r\n                    By clicking Log In with Google or LinkedIn, or by clicking {firstText}, you\r\n                    agree to our {terms}.\r\n                </p>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n","import { ReactElement, useEffect } from 'react';\r\n\r\nimport { LoginRequest, LoginWithTokenRequest } from 'app/services/auth/models';\r\nimport {\r\n    CustomButton,\r\n    CustomLoadingButton,\r\n    CustomPasswordTextField,\r\n    CustomTextField,\r\n} from 'app/shared/components';\r\nimport { MuiButtonType } from 'app/shared/enums';\r\nimport { isStatusPending } from 'app/shared/helpers';\r\nimport { logInFormSchema } from 'app/shared/schema';\r\nimport { useAppSelector } from 'app/store/hooks';\r\nimport { AuthSelector } from 'app/store/slices/auth.slice';\r\nimport { useForm } from 'react-hook-form';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\nimport WarningIcon from '@mui/icons-material/Warning';\r\nimport { Stack, Typography } from '@mui/material';\r\n\r\nimport styles from './login-form.module.scss';\r\nimport { SocialSignOn } from '../registration/social-sign-on/social-sign-on.component';\r\nimport { VerifyCodeTerms } from '../verify-code/verify-code-terms.component';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\n\r\ninterface LogInFormProps {\r\n    defaultUsername?: string;\r\n    onForgotPasswordClick: () => void;\r\n    onLogin: (request: LoginRequest) => void;\r\n    onTokenLogin: (request: LoginWithTokenRequest) => void;\r\n}\r\n\r\nexport const LogInForm = (props: LogInFormProps): ReactElement => {\r\n    const { defaultUsername, onForgotPasswordClick, onLogin, onTokenLogin } = props;\r\n    const { loginErrorText, resetPasswordEmail, statusLogIn } = useAppSelector(AuthSelector);\r\n    const { loginDetails } = useLandingPage();\r\n    const { agentEmailAddress } = loginDetails;\r\n\r\n    const {\r\n        register,\r\n        setValue,\r\n        trigger,\r\n        formState: { errors },\r\n    } = useForm({\r\n        mode: 'onBlur',\r\n        resolver: yupResolver(logInFormSchema),\r\n    });\r\n\r\n    useEffect(() => {\r\n        if (agentEmailAddress) {\r\n            setValue('username', agentEmailAddress);\r\n        }\r\n    }, [agentEmailAddress]);\r\n\r\n    const onSubmit = async (event: React.FormEvent<HTMLFormElement>): Promise<void> => {\r\n        event.preventDefault(); // Prevent the default form submission\r\n\r\n        // Manually update the form state with the input values\r\n        const emailElement = document.getElementById('email') as HTMLInputElement;\r\n        const passwordElement = document.getElementById('password') as HTMLInputElement;\r\n        if (emailElement && passwordElement) {\r\n            setValue('username', emailElement.value);\r\n            setValue('password', passwordElement.value);\r\n        }\r\n\r\n        // Manually trigger validation\r\n        const isValid = await trigger();\r\n\r\n        if (isValid) {\r\n            const formData = {\r\n                username: emailElement ? emailElement.value : '',\r\n                password: passwordElement ? passwordElement.value : '',\r\n            };\r\n            onLogin(formData as LoginRequest);\r\n        }\r\n    };\r\n\r\n    return (\r\n        <div className={styles.loginForm}>\r\n            <SocialSignOn headerText=\"Log in with\" onTokenLogin={onTokenLogin} />\r\n            {loginErrorText && (\r\n                <Typography className={styles.loginError}>\r\n                    <WarningIcon />\r\n                    <span className={styles.loginError__text}>{loginErrorText}</span>\r\n                </Typography>\r\n            )}\r\n            <form className={styles.loginForm__form} onSubmit={onSubmit}>\r\n                <Stack spacing={1}>\r\n                    <CustomTextField\r\n                        inputLabel=\"Email Address\"\r\n                        type=\"email\"\r\n                        id=\"email\"\r\n                        placeholder=\"Email Address\"\r\n                        fullWidth\r\n                        register={register('username')}\r\n                        defaultValue={resetPasswordEmail || defaultUsername}\r\n                        errorType={!!errors.username}\r\n                        errorMessage={errors.username?.message}\r\n                    />\r\n                    <CustomPasswordTextField\r\n                        inputLabel=\"Password\"\r\n                        id=\"password\"\r\n                        placeholder=\"Password\"\r\n                        fullWidth\r\n                        register={register('password')}\r\n                        errorType={!!errors.password}\r\n                        errorMessage={errors.password?.message}\r\n                    />\r\n                </Stack>\r\n\r\n                <CustomButton\r\n                    className={styles.loginForm__forgotPassword}\r\n                    type=\"button\"\r\n                    fontSize={12}\r\n                    variant={MuiButtonType.text}\r\n                    onClick={onForgotPasswordClick}\r\n                >\r\n                    forgot password?\r\n                </CustomButton>\r\n\r\n                <div className={styles.loginForm__actions}>\r\n                    <CustomLoadingButton\r\n                        type=\"submit\"\r\n                        variant={MuiButtonType.contained}\r\n                        loading={isStatusPending(statusLogIn)}\r\n                        disabled={isStatusPending(statusLogIn)}\r\n                    >\r\n                        log in\r\n                    </CustomLoadingButton>\r\n                </div>\r\n                <div className={styles.loginForm__termsOfUse}>\r\n                    <VerifyCodeTerms firstText=\"Log In\" secondText={`\"Log In\"`} />\r\n                </div>\r\n            </form>\r\n        </div>\r\n    );\r\n};\r\n\r\nLogInForm.defaultProps = {\r\n    defaultUsername: null,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"header-landing-page_header__KhWYx\",\"header__content\":\"header-landing-page_header__content__O-bMy\",\"header__logo\":\"header-landing-page_header__logo__d869c\",\"header__links\":\"header-landing-page_header__links__5eZ4a\",\"header__btn\":\"header-landing-page_header__btn__K199F\",\"header__link\":\"header-landing-page_header__link__ai2m7\",\"header__loginModal\":\"header-landing-page_header__loginModal__U3iPJ\",\"header__resetPassword\":\"header-landing-page_header__resetPassword__nDJR8\",\"header__resetPassword_text\":\"header-landing-page_header__resetPassword_text__UN2nM\",\"disclaimer\":\"header-landing-page_disclaimer__-n6ud\",\"disclaimer__text\":\"header-landing-page_disclaimer__text__pJEpE\",\"disclaimer__btnGroup\":\"header-landing-page_disclaimer__btnGroup__pkl1M\"};","import { ReactElement } from 'react';\r\n\r\nimport { useAppSelector } from 'app/store/hooks';\r\nimport { twoFactorVerifiedSelector, userPhoneNumberSelector } from 'app/store/slices/auth.slice';\r\nimport styles from './verify-code-form.module.scss';\r\n\r\ninterface VerifyCodeInstructionsProps {\r\n    resendCode: () => void;\r\n    phoneNumber: string | null | undefined;\r\n}\r\n\r\nexport const VerifyCodeInstructions = ({\r\n    resendCode,\r\n    phoneNumber,\r\n}: VerifyCodeInstructionsProps): ReactElement => {\r\n    const twoFactorVerified = useAppSelector(twoFactorVerifiedSelector);\r\n    const userPhoneNumber = useAppSelector(userPhoneNumberSelector);\r\n\r\n    const phone = userPhoneNumber || phoneNumber?.slice(-4);\r\n\r\n    return (\r\n        <div className={styles.container}>\r\n            <div className={styles.instructions}>\r\n                {twoFactorVerified === false ? (\r\n                    <p className={styles.instructions__error}>\r\n                        Oh no! It looks like the code you&apos;ve entered is incorrect. Please try\r\n                        again.\r\n                    </p>\r\n                ) : phone ? (\r\n                    <p className={styles.instructions__text}>\r\n                        {`Please enter the 5 digit verification code sent to XXX-XXX-${phone}. The code will expire in 10 minutes.`}\r\n                    </p>\r\n                ) : (\r\n                    <p className={styles.instructions__text}>\r\n                        There appears to be no cell phone number on record. Please reach out to our\r\n                        Support Team at{' '}\r\n                        <a className={styles.resendCode__link} href=\"tel:(949)209-1277\">\r\n                            (949)209-1277\r\n                        </a>{' '}\r\n                        or{' '}\r\n                        <a\r\n                            className={styles.resendCode__link}\r\n                            href=\"mailto: support@naf-connect.com\"\r\n                        >\r\n                            support@naf-connect.com\r\n                        </a>{' '}\r\n                        for assistance\r\n                    </p>\r\n                )}\r\n\r\n                <div className={styles.instructions__resend}>\r\n                    <button\r\n                        className={styles.instructions__resendBtn}\r\n                        type=\"button\"\r\n                        onClick={resendCode}\r\n                    >\r\n                        Resend Code\r\n                    </button>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","import { ChangeEvent, ReactElement, useEffect, useRef, useState } from 'react';\r\n\r\nimport { CustomButton, CustomLoadingButton } from 'app/shared/components';\r\nimport { MuiButtonType, MuiColorType } from 'app/shared/enums';\r\nimport { isStatusPending } from 'app/shared/helpers';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport {\r\n    LoginAsync,\r\n    statusLoginSelector,\r\n    SendCodeAsync,\r\n    VerifyCodeAsync,\r\n    statusRegisterSelector,\r\n    statusVerifyCodeSelector,\r\n    twoFactorVerifiedSelector,\r\n} from 'app/store/slices/auth.slice';\r\n\r\nimport styles from './verify-code-form.module.scss';\r\nimport { LoginRequest, SendCodeRequest, VerifyCodeRequest } from 'app/services/auth/models';\r\nimport { VerifyCodeInstructions } from './verify-code-instructions.component';\r\n\r\ninterface VerifyCodeFormProps {\r\n    isLoginForm: boolean;\r\n    userData?: LoginRequest | undefined;\r\n    emailAddress?: string;\r\n    phoneNumber?: string;\r\n    prevStep: () => void;\r\n    onFormSubmit?: () => void;\r\n}\r\n\r\nexport const VerifyCodeForm = ({\r\n    isLoginForm,\r\n    userData,\r\n    emailAddress,\r\n    phoneNumber,\r\n    prevStep,\r\n    onFormSubmit,\r\n}: VerifyCodeFormProps): ReactElement => {\r\n    const inputRefs = [...Array(5)].map(() => useRef<HTMLInputElement>(null));\r\n    const [inputValues, setInputValues] = useState<string[]>([...Array(5)].fill(''));\r\n    const [resentCode, setResentCode] = useState<boolean>(false);\r\n\r\n    const dispatch = useAppDispatch();\r\n    const statusVerifyCode = useAppSelector(statusVerifyCodeSelector);\r\n    const twoFactorVerified = useAppSelector(twoFactorVerifiedSelector);\r\n    const statusRegister = useAppSelector(statusRegisterSelector);\r\n    const statusLogin = useAppSelector(statusLoginSelector);\r\n\r\n    useEffect(() => {\r\n        inputRefs[0].current?.focus();\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n        if (twoFactorVerified === true && onFormSubmit) {\r\n            onFormSubmit();\r\n        }\r\n    }, [twoFactorVerified]);\r\n\r\n    const handleInputChange = (position: number, event: ChangeEvent<HTMLInputElement>): void => {\r\n        const { value } = event.target;\r\n        const sanitizedValue = value.replace(/[^0-9]/g, ''); // Remove non-numeric characters\r\n        setInputValues((values) =>\r\n            values.map((value, i) => (i === position ? sanitizedValue : value))\r\n        );\r\n        if (sanitizedValue) {\r\n            if (position < inputRefs.length - 1) {\r\n                inputRefs[position + 1].current?.focus();\r\n            }\r\n        } else if (position > 0 && !sanitizedValue) {\r\n            inputRefs[position - 1].current?.focus();\r\n        }\r\n    };\r\n\r\n    const resendCode = (): void => {\r\n        if (userData) {\r\n            const request: SendCodeRequest = {\r\n                emailAddress: userData.username,\r\n            };\r\n            dispatch(SendCodeAsync(request));\r\n            setResentCode(true);\r\n            setInputValues([...Array(5)].fill(''));\r\n        }\r\n        if (emailAddress) {\r\n            const request: SendCodeRequest = {\r\n                emailAddress,\r\n                phoneNumber,\r\n            };\r\n            dispatch(SendCodeAsync(request));\r\n            setResentCode(true);\r\n            setInputValues([...Array(5)].fill(''));\r\n        }\r\n    };\r\n\r\n    const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>): void => {\r\n        e.preventDefault();\r\n        const paste = e.clipboardData.getData('text').replace(/[^0-9]/g, '');\r\n        if (paste.length > 0) {\r\n            const newValues = [...inputValues];\r\n            let currentPosition = 0;\r\n            for (let i = 0; i < paste.length; i++) {\r\n                while (currentPosition < newValues.length && newValues[currentPosition]) {\r\n                    currentPosition++;\r\n                }\r\n                if (currentPosition >= newValues.length) {\r\n                    break;\r\n                }\r\n                newValues[currentPosition] = paste[i];\r\n                currentPosition++;\r\n            }\r\n            setInputValues(newValues);\r\n\r\n            window.requestAnimationFrame(() => {\r\n                // Set the selection range after the last pasted character\r\n                const lastPastedIndex = currentPosition - 1;\r\n                const currentInput = inputRefs[lastPastedIndex].current;\r\n                if (currentInput) {\r\n                    currentInput.focus();\r\n                    currentInput.setSelectionRange(lastPastedIndex + 1, lastPastedIndex + 1);\r\n                }\r\n            });\r\n        }\r\n    };\r\n\r\n    const handleKeyDown = (\r\n        position: number,\r\n        event: React.KeyboardEvent<HTMLInputElement>\r\n    ): void => {\r\n        if (event.key === 'Backspace') {\r\n            if (!inputValues[position] && position > 0) {\r\n                // If the current input is empty and not the first input\r\n                setInputValues((values) => {\r\n                    const updatedValues = [...values];\r\n                    let newPosition = position;\r\n                    while (newPosition >= 0 && !updatedValues[newPosition]) {\r\n                        // Move back to the previous non-empty input\r\n                        newPosition--;\r\n                    }\r\n                    if (newPosition >= 0) {\r\n                        updatedValues[newPosition] = '';\r\n                        inputRefs[newPosition].current?.focus();\r\n                    }\r\n                    return updatedValues;\r\n                });\r\n            } else if (!inputValues[position]) {\r\n                // If the current input is empty and the first input\r\n                inputRefs[position].current?.focus();\r\n            } else {\r\n                // If the current input is filled\r\n                setInputValues((values) => {\r\n                    const updatedValues = [...values];\r\n                    updatedValues[position] = '';\r\n                    return updatedValues;\r\n                });\r\n            }\r\n        }\r\n    };\r\n\r\n    const handleSignIn = (): void => {\r\n        if (userData && inputValues) {\r\n            const request = {\r\n                username: userData.username,\r\n                password: userData.password,\r\n                checkVerificationCode: true,\r\n                verificationCode: inputValues.join(''),\r\n            };\r\n            dispatch(LoginAsync(request as LoginRequest));\r\n            setInputValues([...Array(5)].fill(''));\r\n        }\r\n\r\n        if (emailAddress && phoneNumber) {\r\n            const request: VerifyCodeRequest = {\r\n                code: inputValues.join(''),\r\n                emailAddress,\r\n                phoneNumber,\r\n            };\r\n            dispatch(VerifyCodeAsync(request));\r\n            setInputValues([...Array(5)].fill(''));\r\n        }\r\n    };\r\n\r\n    const resentCodeContent = (): JSX.Element => {\r\n        if (isLoginForm) {\r\n            return (\r\n                <div className={styles.resendCode}>\r\n                    <p>\r\n                        A new code has been sent to the existing cell phone number on record.\r\n                        Message and data rates may apply.\r\n                    </p>\r\n\r\n                    <p className={styles.resendCode__contact}>\r\n                        {\r\n                            'If you did not receive the code, please reach out to our Support Team at '\r\n                        }\r\n                        <a className={styles.resendCode__link} href=\"tel:(949)209-1277\">\r\n                            (949) 209-1277\r\n                        </a>\r\n                        {' for assistance.'}\r\n                    </p>\r\n                </div>\r\n            );\r\n        }\r\n\r\n        return (\r\n            <div className={styles.resendCode}>\r\n                <p className={styles.resendCode__contact}>\r\n                    {\r\n                        'A new code has been sent. If you did not receive the code, please verify your phone number in the previous screen or reach out to our Support Team at '\r\n                    }\r\n                    <br />\r\n                    <a className={styles.resendCode__link} href=\"tel:(949)209-1277\">\r\n                        (949) 209-1277\r\n                    </a>\r\n                    {' for assistance.'}\r\n                </p>\r\n            </div>\r\n        );\r\n    };\r\n\r\n    const isFormFilled = inputValues.every((input) => !!input);\r\n    const buttonName = isLoginForm ? 'Login' : 'Register';\r\n\r\n    return (\r\n        <div className={styles.container}>\r\n            {resentCode ? (\r\n                resentCodeContent()\r\n            ) : (\r\n                <>\r\n                    <VerifyCodeInstructions resendCode={resendCode} phoneNumber={phoneNumber} />\r\n                    <div className={styles.code__container}>\r\n                        {[...Array(5)].map((_, i) => (\r\n                            <input\r\n                                className={`${styles.code__input} ${\r\n                                    twoFactorVerified === false ? styles.code__inputError : ''\r\n                                }`}\r\n                                ref={inputRefs[i]}\r\n                                key={i} // eslint-disable-line react/no-array-index-key\r\n                                type=\"text\"\r\n                                value={inputValues[i]}\r\n                                maxLength={1}\r\n                                onChange={(event): void => handleInputChange(i, event)}\r\n                                onPaste={handlePaste}\r\n                                onKeyDown={(event): void => handleKeyDown(i, event)}\r\n                                pattern=\"[0-9]*\"\r\n                            />\r\n                        ))}\r\n                    </div>\r\n                </>\r\n            )}\r\n            <div className={styles.actions__container}>\r\n                {resentCode && !isLoginForm && (\r\n                    <CustomButton\r\n                        type=\"button\"\r\n                        variant={MuiButtonType.text}\r\n                        colorTheme={MuiColorType.secondary}\r\n                        onClick={prevStep}\r\n                    >\r\n                        Previous\r\n                    </CustomButton>\r\n                )}\r\n                {resentCode ? (\r\n                    <CustomButton\r\n                        type=\"button\"\r\n                        variant={MuiButtonType.contained}\r\n                        onClick={(): void => setResentCode(false)}\r\n                    >\r\n                        Continue\r\n                    </CustomButton>\r\n                ) : (\r\n                    <CustomLoadingButton\r\n                        type=\"button\"\r\n                        variant={MuiButtonType.contained}\r\n                        disabled={!isFormFilled}\r\n                        onClick={handleSignIn}\r\n                        loading={\r\n                            isStatusPending(statusVerifyCode) ||\r\n                            (isLoginForm\r\n                                ? isStatusPending(statusLogin)\r\n                                : isStatusPending(statusRegister))\r\n                        }\r\n                    >\r\n                        {buttonName}\r\n                    </CustomLoadingButton>\r\n                )}\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n\r\nVerifyCodeForm.defaultProps = {\r\n    userData: undefined,\r\n    onFormSubmit: null,\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"registration__btn\":\"registration-form_registration__btn__I5V2f\",\"registration\":\"registration-form_registration__WwQjS\",\"registration__form\":\"registration-form_registration__form__EgA5o\",\"registration__title\":\"registration-form_registration__title__1+l8w\",\"registration__input\":\"registration-form_registration__input__GGYBJ\",\"registration__input-group\":\"registration-form_registration__input-group__jxMhj\",\"registration__address\":\"registration-form_registration__address__tRamJ\",\"registration__error\":\"registration-form_registration__error__TLqD5\",\"registration__link\":\"registration-form_registration__link__Tx7qh\",\"registration__btn-group\":\"registration-form_registration__btn-group__tWl-q\",\"registration__right-padding\":\"registration-form_registration__right-padding__z9+Bh\",\"registration__terms-text\":\"registration-form_registration__terms-text__SG2Gn\"};","import { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { useSearchParams } from 'react-router-dom';\r\nimport {\r\n    Control,\r\n    FieldError,\r\n    useForm,\r\n    UseFormHandleSubmit,\r\n    UseFormRegister,\r\n} from 'react-hook-form';\r\nimport * as Yup from 'yup';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\nimport { RegisterRequest } from 'app/services/auth/models';\r\nimport {\r\n    emailRegExp,\r\n    numberRegExp,\r\n    phoneRegExp,\r\n    symbolsRegExp,\r\n} from 'app/shared/data/regex-validation';\r\nimport { googleAnalyticsEvent } from 'app/shared/helpers/google-analytics.helper';\r\nimport { envPrefix } from 'app/shared/helpers/settings.helper';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport {\r\n    ExistenceCheckAsync,\r\n    existenceCheckDataSelector,\r\n    RegisterAsync,\r\n    SendCodeAsync,\r\n    twoFactorVerificationCodeSelector,\r\n    twoFactorVerifiedSelector,\r\n} from 'app/store/slices/auth.slice';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { ReaRegistrationDetails, SystemPartyRoleType } from 'app/shared/models';\r\n\r\ninterface RegistrationFormHook {\r\n    numberOfSteps: number;\r\n    step: number;\r\n    controlUserDetails: Control<ReaRegistrationDetails>;\r\n    registerUserDetails: UseFormRegister<ReaRegistrationDetails>;\r\n    handleSubmitUser: UseFormHandleSubmit<ReaRegistrationDetails>;\r\n    errorsUserDetails: {\r\n        [key: string]: FieldError | undefined;\r\n    };\r\n    isValidUserDetails: boolean;\r\n    nextStep: ({ emailAddress, realEstateNumber, userState }: ReaRegistrationDetails) => void;\r\n    prevStep: () => void;\r\n    onFormSubmit: () => void;\r\n    emailAddress: string;\r\n    phoneNumber: string;\r\n}\r\n\r\nconst schemaUserDetails = Yup.object().shape({\r\n    firstName: Yup.string().required('First name is required'),\r\n    lastName: Yup.string().required('Last name is required'),\r\n    emailAddress: Yup.string()\r\n        .required('Email is required')\r\n        .email('Invalid email format. Please enter a valid email address.')\r\n        .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n    phoneNumber: Yup.string()\r\n        .required('Phone number is required')\r\n        .matches(phoneRegExp, 'Invalid phone number'),\r\n    realEstateNumber: Yup.string(),\r\n    userState: Yup.string(),\r\n    password: Yup.string()\r\n        .required('Password is required')\r\n        .min(8)\r\n        .matches(/.*[a-z].*/, 'lowercase')\r\n        .matches(/.*[A-Z].*/, 'uppercase')\r\n        .matches(numberRegExp, 'number')\r\n        .matches(symbolsRegExp, 'symbols'),\r\n    confirmPassword: Yup.string()\r\n        .required('Confirm Password is required')\r\n        .oneOf([Yup.ref('password')], 'Confirm Password does not match'),\r\n});\r\n\r\nexport const useRegistrationForm = (): RegistrationFormHook => {\r\n    const dispatch = useAppDispatch();\r\n    const [step, setStep] = useState(1);\r\n    const [queryParameters] = useSearchParams();\r\n    const { prefilledRegistrationDetails } = useLandingPage();\r\n    const existenceCheckData = useAppSelector(existenceCheckDataSelector);\r\n\r\n    useEffect(() => {\r\n        if (prefilledRegistrationDetails) {\r\n            setValue('firstName', prefilledRegistrationDetails.agentFirstName);\r\n            setValue('lastName', prefilledRegistrationDetails.agentLastName);\r\n            setValue('phoneNumber', prefilledRegistrationDetails.agentPhoneNumber);\r\n            setValue('emailAddress', prefilledRegistrationDetails.agentEmailAddress);\r\n            setValue('userState', prefilledRegistrationDetails.agentStateCode);\r\n        }\r\n    }, [prefilledRegistrationDetails]);\r\n\r\n    const numberOfSteps = 2;\r\n\r\n    const {\r\n        control: controlUserDetails,\r\n        register: registerUserDetails,\r\n        handleSubmit: handleSubmitUser,\r\n        getValues: getUserDetailsValues,\r\n        setValue,\r\n        formState: { errors: errorsUserDetails, isValid: isValidUserDetails },\r\n        watch,\r\n    } = useForm<ReaRegistrationDetails>({\r\n        mode: 'onChange',\r\n        criteriaMode: 'all',\r\n        reValidateMode: 'onChange',\r\n        resolver: yupResolver(schemaUserDetails, { abortEarly: false }),\r\n        defaultValues: {\r\n            firstName: '',\r\n            lastName: '',\r\n            emailAddress: '',\r\n            phoneNumber: '',\r\n            password: '',\r\n            confirmPassword: '',\r\n            realEstateNumber: '',\r\n            userState: ' ',\r\n        },\r\n    });\r\n    const emailAddress = watch('emailAddress');\r\n    const phoneNumber = watch('phoneNumber');\r\n\r\n    const isCodeValid = !!useAppSelector(twoFactorVerifiedSelector);\r\n    const verificationCodeId = useAppSelector(twoFactorVerificationCodeSelector);\r\n\r\n    const nextStep = useCallback(\r\n        ({\r\n            emailAddress,\r\n            realEstateNumber,\r\n            userState,\r\n            phoneNumber,\r\n            lastName,\r\n        }: ReaRegistrationDetails): void => {\r\n            const sendCodeRequest = {\r\n                emailAddress,\r\n                phoneNumber,\r\n            };\r\n            const existenceCheckRequest = {\r\n                emailAddress,\r\n                licenseNumber: realEstateNumber,\r\n                stateLicensed: userState,\r\n                cellPhone: phoneNumber,\r\n                name: lastName,\r\n                partnerType: SystemPartyRoleType.RealEstateAgent_Buyers,\r\n            };\r\n\r\n            dispatch(SendCodeAsync(sendCodeRequest));\r\n            dispatch(ExistenceCheckAsync(existenceCheckRequest));\r\n            setStep((step) => step + 1);\r\n            googleAnalyticsEvent(\r\n                'Registration',\r\n                'Registration Continue Step Clicked',\r\n                'Registration Continue Step Clicked'\r\n            );\r\n        },\r\n        [setStep]\r\n    );\r\n\r\n    const prevStep = useCallback((): void => {\r\n        setStep((step) => step - 1);\r\n        googleAnalyticsEvent(\r\n            'Registration',\r\n            'Registration Previous Step Clicked',\r\n            'Registration Previous Step Clicked'\r\n        );\r\n    }, [setStep]);\r\n\r\n    const onFormSubmit = useCallback((): void => {\r\n        const userDetailsForm = getUserDetailsValues();\r\n        const registerAsTester =\r\n            !!(queryParameters.get('test') === 'naf') || envPrefix === 'staging';\r\n        const reaSourceParam = queryParameters.get('source');\r\n        const pdmParam = queryParameters.get('arm');\r\n        const loanOfficerId = queryParameters.get('lo_guid');\r\n\r\n        const registerForm: RegisterRequest = {\r\n            firstName: userDetailsForm.firstName,\r\n            lastName: userDetailsForm.lastName,\r\n            emailAddress: userDetailsForm.emailAddress,\r\n            phoneNumber: userDetailsForm.phoneNumber,\r\n            licenseNumber: userDetailsForm.realEstateNumber,\r\n            stateLicensed: userDetailsForm.userState,\r\n            company: existenceCheckData?.companyName ?? '',\r\n            companyAddress: existenceCheckData?.companyAddress ?? '',\r\n            companyCity: existenceCheckData?.companyCity ?? '',\r\n            companyState: existenceCheckData?.companyState ?? '',\r\n            companyZipCode: existenceCheckData?.companyZipCode ?? '',\r\n            password: userDetailsForm.password,\r\n            accountType: registerAsTester ? 1 : 0,\r\n            loanOfficerId: prefilledRegistrationDetails.loanOfficerId ?? '',\r\n            reaSource: prefilledRegistrationDetails.reaSource || reaSourceParam,\r\n            partnerDevelopmentManager: pdmParam,\r\n            verificationCodeId,\r\n            isCodeValid,\r\n            nafHomesId: prefilledRegistrationDetails.nafHomesId,\r\n            partnerType: SystemPartyRoleType.RealEstateAgent_Buyers,\r\n        };\r\n\r\n        if (existenceCheckData?.referralPartnerId) {\r\n            registerForm.referralPartnerId = existenceCheckData.referralPartnerId;\r\n        }\r\n\r\n        if (loanOfficerId) {\r\n            registerForm.loanOfficerId = loanOfficerId;\r\n        }\r\n\r\n        dispatch(RegisterAsync(registerForm));\r\n        googleAnalyticsEvent('Register', 'Register event', 'REGISTER');\r\n    }, [\r\n        getUserDetailsValues,\r\n        queryParameters,\r\n        existenceCheckData,\r\n        prefilledRegistrationDetails,\r\n        verificationCodeId,\r\n        isCodeValid,\r\n    ]);\r\n\r\n    const registrationFormHook = useMemo(\r\n        () => ({\r\n            numberOfSteps,\r\n            step,\r\n            controlUserDetails,\r\n            registerUserDetails,\r\n            handleSubmitUser,\r\n            errorsUserDetails,\r\n            isValidUserDetails,\r\n            nextStep,\r\n            prevStep,\r\n            onFormSubmit,\r\n            emailAddress,\r\n            phoneNumber,\r\n        }),\r\n        [\r\n            step,\r\n            controlUserDetails,\r\n            registerUserDetails,\r\n            handleSubmitUser,\r\n            errorsUserDetails,\r\n            isValidUserDetails,\r\n            nextStep,\r\n            prevStep,\r\n            onFormSubmit,\r\n            emailAddress,\r\n            phoneNumber,\r\n        ]\r\n    );\r\n\r\n    return registrationFormHook;\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"invalidEmail\":\"user-details-form_invalidEmail__Xcx5L\",\"invalidEmail__text\":\"user-details-form_invalidEmail__text__RkmFr\",\"invalidEmail__btn\":\"user-details-form_invalidEmail__btn__fIdAc\",\"liscense\":\"user-details-form_liscense__Q2vT9\",\"liscense__inputs\":\"user-details-form_liscense__inputs__0861a\",\"liscense__error\":\"user-details-form_liscense__error__klItz\",\"registration__btn-group\":\"user-details-form_registration__btn-group__P+TVI\",\"registration__backBtn\":\"user-details-form_registration__backBtn__sL3yK\"};","import { ReactElement, useEffect, useMemo, useState } from 'react';\r\nimport { Control, FieldErrors, UseFormHandleSubmit, UseFormRegister } from 'react-hook-form';\r\nimport { debounce } from 'lodash';\r\nimport * as Yup from 'yup';\r\nimport { Stack } from '@mui/material';\r\nimport { LoginWithTokenRequest } from 'app/services/auth/models';\r\nimport {\r\n    CustomButton,\r\n    CustomPasswordTextField,\r\n    CustomTextField,\r\n    PasswordRules,\r\n    StateSelectField,\r\n} from 'app/shared/components';\r\nimport { CustomPhoneInput } from 'app/shared/components/custom-phone-input/custom-phone-input.component';\r\nimport { MuiButtonType } from 'app/shared/enums';\r\nimport { SocialSignOn } from '../social-sign-on/social-sign-on.component';\r\n\r\nimport styles from './user-details-form.module.scss';\r\nimport { VerifyCodeTerms } from '../../verify-code/verify-code-terms.component';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { useValidateEmailAddressMutation } from 'app/store/api/auth/auth.api';\r\nimport { ReaRegistrationDetails } from 'app/shared/models/registration/registration.model';\r\nimport { SystemPartyRoleType } from 'app/shared/models';\r\nimport { emailRegExp } from 'app/shared/data';\r\n\r\ninterface UserDetailsFormProps {\r\n    control: Control<ReaRegistrationDetails>;\r\n    register: UseFormRegister<ReaRegistrationDetails>;\r\n    errors: FieldErrors;\r\n    isValid: boolean;\r\n    handleSubmit: UseFormHandleSubmit<ReaRegistrationDetails>;\r\n    nextStep: (data: ReaRegistrationDetails) => void;\r\n    onTokenRegister: (request: LoginWithTokenRequest) => void;\r\n}\r\n\r\nexport const UserDetailsForm = (props: UserDetailsFormProps): ReactElement => {\r\n    const { control, register, errors, isValid, handleSubmit, nextStep, onTokenRegister } = props;\r\n    const [userEmailAddress, setUseremailAddress] = useState('');\r\n\r\n    const {\r\n        setIsRegistrationModalOpen,\r\n        setIsLoginModalOpen,\r\n        isValidEmailAddress,\r\n        setIsValidEmailAddress,\r\n        setIsReaRegistrationModalOpen,\r\n    } = useLandingPage();\r\n\r\n    const [validateEmailAddress] = useValidateEmailAddressMutation();\r\n\r\n    const schema = Yup.object().shape({\r\n        email: Yup.string()\r\n            .email()\r\n            .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n    });\r\n\r\n    const handleEmailExistsClick = (): void => {\r\n        setIsRegistrationModalOpen(false);\r\n        setIsLoginModalOpen(true);\r\n    };\r\n\r\n    const handleEmailChange = (value: string): void => {\r\n        schema.isValid({ email: value }).then((valid) => {\r\n            if (valid) {\r\n                setUseremailAddress(value);\r\n            }\r\n        });\r\n    };\r\n\r\n    const debouncedChangeHandler = useMemo(() => debounce(handleEmailChange, 300), []);\r\n\r\n    useEffect(() => {\r\n        if (userEmailAddress.length) {\r\n            validateEmailAddress({\r\n                emailAddress: userEmailAddress,\r\n                partnerType: SystemPartyRoleType.RealEstateAgent_Buyers,\r\n            })\r\n                .unwrap()\r\n                .then((res) => {\r\n                    setIsValidEmailAddress(res.isValid);\r\n                });\r\n        }\r\n        return () => {\r\n            debouncedChangeHandler.cancel();\r\n        };\r\n    }, [userEmailAddress]);\r\n\r\n    return (\r\n        <>\r\n            {!isValidEmailAddress && (\r\n                <div className={styles.invalidEmail}>\r\n                    <p className={styles.invalidEmail__text}>\r\n                        AN ACCOUNT ALREADY EXISTS WITH THAT EMAIL ADDRESS.\r\n                    </p>\r\n                    <CustomButton\r\n                        className={styles.invalidEmail__btn}\r\n                        variant={MuiButtonType.text}\r\n                        type=\"button\"\r\n                        onClick={(): void => handleEmailExistsClick()}\r\n                    >\r\n                        Please log in using your existing email.\r\n                    </CustomButton>\r\n                </div>\r\n            )}\r\n            <Stack spacing={1}>\r\n                <SocialSignOn headerText=\"Sign in with\" onTokenRegister={onTokenRegister} />\r\n                <CustomTextField\r\n                    inputLabel=\"First Name\"\r\n                    placeholder=\"Enter first name\"\r\n                    id=\"registerfirstname\"\r\n                    fullWidth\r\n                    register={register('firstName')}\r\n                    errorType={!!errors.firstName}\r\n                    errorMessage={errors.firstName?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n\r\n                <CustomTextField\r\n                    inputLabel=\"Last Name\"\r\n                    placeholder=\"Enter last name\"\r\n                    id=\"registerlastname\"\r\n                    fullWidth\r\n                    register={register('lastName')}\r\n                    errorType={!!errors.lastName}\r\n                    errorMessage={errors.lastName?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n\r\n                <CustomTextField\r\n                    inputLabel=\"Email Address\"\r\n                    type=\"email\"\r\n                    id=\"registeremailaddress\"\r\n                    placeholder=\"Enter email address\"\r\n                    fullWidth\r\n                    register={register('emailAddress', {\r\n                        onChange: (e): void => debouncedChangeHandler(e.target.value),\r\n                    })}\r\n                    errorType={!!errors.emailAddress || !isValidEmailAddress}\r\n                    errorMessage={errors.emailAddress?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n\r\n                <CustomPhoneInput\r\n                    inputLabel=\"Cell Phone Number\"\r\n                    placeholder=\"Enter cell phone number\"\r\n                    id=\"registercellphonenumber\"\r\n                    fullWidth\r\n                    control={control}\r\n                    register={register('phoneNumber')}\r\n                    errorType={!!errors.phoneNumber}\r\n                    errorMessage={errors.phoneNumber?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <div className={styles.liscense}>\r\n                    <div className={styles.liscense__inputs}>\r\n                        <CustomTextField\r\n                            inputLabel=\"Real Estate License No.\"\r\n                            placeholder=\"Enter license number\"\r\n                            id=\"registerlicensenumber\"\r\n                            fullWidth\r\n                            register={register('realEstateNumber')}\r\n                            errorType={!!errors.realEstateNumber}\r\n                            errorMessage={errors.realEstateNumber?.message}\r\n                            defaultValue=\"\"\r\n                        />\r\n\r\n                        <StateSelectField\r\n                            inputLabel=\"State\"\r\n                            id=\"registerstate\"\r\n                            name=\"userState\"\r\n                            fullWidth\r\n                            placeholder=\"State\"\r\n                            errorType={!!errors.userState}\r\n                            defaultValue=\" \"\r\n                            control={control}\r\n                            sortBy=\"code\"\r\n                            display=\"code\"\r\n                        />\r\n                    </div>\r\n                </div>\r\n\r\n                <CustomPasswordTextField\r\n                    inputLabel=\"Password\"\r\n                    placeholder=\"Enter password\"\r\n                    id=\"registerpassword\"\r\n                    fullWidth\r\n                    register={register('password')}\r\n                    errorType={!!errors.password}\r\n                    errorMessage={errors.password?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                    displayAllErrors={false}\r\n                />\r\n\r\n                {errors.password && errors.password?.message && errors.password?.types && (\r\n                    <PasswordRules errors={errors} />\r\n                )}\r\n                <CustomPasswordTextField\r\n                    inputLabel=\"Confirm Password\"\r\n                    id=\"registerconfirmpassword\"\r\n                    placeholder=\"Confirm password\"\r\n                    fullWidth\r\n                    register={register('confirmPassword')}\r\n                    errorType={!!errors.confirmPassword}\r\n                    errorMessage={errors.confirmPassword?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n            </Stack>\r\n\r\n            <VerifyCodeTerms firstText=\"Sign In\" secondText={`\"Send Code and Continue\"`} />\r\n\r\n            <div className={styles['registration__btn-group']}>\r\n                <CustomButton\r\n                    className={styles.registration__backBtn}\r\n                    type=\"button\"\r\n                    variant={MuiButtonType.text}\r\n                    onClick={() => {\r\n                        setIsReaRegistrationModalOpen(false);\r\n                        setIsRegistrationModalOpen(true);\r\n                    }}\r\n                >\r\n                    Back\r\n                </CustomButton>\r\n\r\n                <CustomButton\r\n                    type=\"button\"\r\n                    disabled={!isValid || !isValidEmailAddress}\r\n                    variant={MuiButtonType.contained}\r\n                    onClick={handleSubmit((data) => nextStep(data as ReaRegistrationDetails))}\r\n                >\r\n                    Send Code & Continue\r\n                </CustomButton>\r\n            </div>\r\n        </>\r\n    );\r\n};\r\n","import { ReactElement } from 'react';\r\n\r\nimport { LoginWithTokenRequest } from 'app/services/auth/models';\r\n\r\nimport { ThemeProvider } from '@emotion/react';\r\n\r\nimport { VerifyCodeForm } from '../verify-code/verify-code-form.component';\r\nimport styles from './registration-form.module.scss';\r\nimport theme from 'app/shared/themes/registration.theme';\r\nimport { useRegistrationForm } from './use-registration-form';\r\nimport { UserDetailsForm } from './user-details/user-details-form.component';\r\n\r\ninterface RegistrationFormProps {\r\n    onTokenRegister: (request: LoginWithTokenRequest) => void;\r\n}\r\n\r\nexport const RegistrationForm = (props: RegistrationFormProps): ReactElement => {\r\n    const { onTokenRegister } = props;\r\n    const {\r\n        step,\r\n        controlUserDetails,\r\n        registerUserDetails,\r\n        handleSubmitUser,\r\n        errorsUserDetails,\r\n        isValidUserDetails,\r\n        nextStep,\r\n        prevStep,\r\n        onFormSubmit,\r\n        emailAddress,\r\n        phoneNumber,\r\n    } = useRegistrationForm();\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            <div className={styles.registration__form}>\r\n                {step === 1 && (\r\n                    <UserDetailsForm\r\n                        onTokenRegister={onTokenRegister}\r\n                        control={controlUserDetails}\r\n                        register={registerUserDetails}\r\n                        errors={errorsUserDetails}\r\n                        isValid={isValidUserDetails}\r\n                        handleSubmit={handleSubmitUser}\r\n                        nextStep={nextStep}\r\n                    />\r\n                )}\r\n                {step === 2 && (\r\n                    <div className={styles.registration__verification}>\r\n                        <VerifyCodeForm\r\n                            isLoginForm={false}\r\n                            prevStep={prevStep}\r\n                            onFormSubmit={onFormSubmit}\r\n                            emailAddress={emailAddress}\r\n                            phoneNumber={phoneNumber}\r\n                        />\r\n                    </div>\r\n                )}\r\n            </div>\r\n        </ThemeProvider>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"registrationRolePicker\":\"registration-role-picker_registrationRolePicker__S+Oha\",\"registrationRolePicker__header\":\"registration-role-picker_registrationRolePicker__header__65LV-\",\"registrationRolePicker__btn\":\"registration-role-picker_registrationRolePicker__btn__FAaJl\"};","import { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { CustomButton } from 'app/shared/components';\r\nimport React, { ReactElement } from 'react';\r\nimport styles from './registration-role-picker.module.scss';\r\n\r\nconst RegistrationRolePicker = (): ReactElement => {\r\n    const {\r\n        setIsRegistrationModalOpen,\r\n        setIsReaRegistrationModalOpen,\r\n        setIsBuilderRegistrationModalOpen,\r\n    } = useLandingPage();\r\n\r\n    const onOpenRegistrationModal = (\r\n        setModalOpen: React.Dispatch<React.SetStateAction<boolean>>\r\n    ): void => {\r\n        setIsRegistrationModalOpen(false);\r\n        setModalOpen(true);\r\n    };\r\n    return (\r\n        <div className={styles.registrationRolePicker}>\r\n            <p className={styles.registrationRolePicker__header}>\r\n                Which best describes your current role or occupation?\r\n            </p>\r\n            <CustomButton\r\n                className={styles.registrationRolePicker__btn}\r\n                type=\"button\"\r\n                variant=\"contained\"\r\n                onClick={() => onOpenRegistrationModal(setIsReaRegistrationModalOpen)}\r\n            >\r\n                Real Estate Agent\r\n            </CustomButton>\r\n            <CustomButton\r\n                className={styles.registrationRolePicker__btn}\r\n                type=\"button\"\r\n                variant=\"contained\"\r\n                onClick={() => onOpenRegistrationModal(setIsBuilderRegistrationModalOpen)}\r\n            >\r\n                Home Builder\r\n            </CustomButton>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default RegistrationRolePicker;\r\n","import * as Yup from 'yup';\r\nimport { emailRegExp, numberRegExp, phoneRegExp, symbolsRegExp } from 'app/shared/data';\r\n\r\nexport const builderRegistrationSchema = Yup.object().shape({\r\n    firstName: Yup.string().required('First name is required'),\r\n    lastName: Yup.string().required('Last name is required'),\r\n    emailAddress: Yup.string()\r\n        .required('Email is required')\r\n        .email('Invalid email format. Please enter a valid email address.')\r\n        .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n    phoneNumber: Yup.string()\r\n        .required('Phone number is required')\r\n        .matches(phoneRegExp, 'Invalid phone number'),\r\n    company: Yup.string().required('Company name is required'),\r\n    companyAddress: Yup.string().required('Company address is required'),\r\n    companyCity: Yup.string().required(),\r\n    companyState: Yup.string().required(),\r\n    companyZipCode: Yup.string().required(),\r\n    password: Yup.string()\r\n        .required('Password is required')\r\n        .min(8)\r\n        .matches(/.*[a-z].*/, 'lowercase')\r\n        .matches(/.*[A-Z].*/, 'uppercase')\r\n        .matches(numberRegExp, 'number')\r\n        .matches(symbolsRegExp, 'symbols'),\r\n    confirmPassword: Yup.string()\r\n        .required('Confirm Password is required')\r\n        .oneOf([Yup.ref('password')], 'Confirm Password does not match'),\r\n});\r\n","// extracted by mini-css-extract-plugin\nexport default {\"builderRegistration\":\"builder-registration-form_builderRegistration__WHm1Q\",\"builderRegistration__form\":\"builder-registration-form_builderRegistration__form__shhLG\",\"builderRegistration__name\":\"builder-registration-form_builderRegistration__name__uyE7U\",\"builderRegistration__location\":\"builder-registration-form_builderRegistration__location__PEP4E\",\"builderRegistration__tos\":\"builder-registration-form_builderRegistration__tos__EBJV4\",\"builderRegistration__tosLink\":\"builder-registration-form_builderRegistration__tosLink__b59Le\",\"builderRegistration__btns\":\"builder-registration-form_builderRegistration__btns__KEFZG\",\"builderRegistration__backBtn\":\"builder-registration-form_builderRegistration__backBtn__+xliz\",\"invalidEmail\":\"builder-registration-form_invalidEmail__Aj+Z1\",\"invalidEmail__text\":\"builder-registration-form_invalidEmail__text__YLw8N\",\"invalidEmail__btn\":\"builder-registration-form_invalidEmail__btn__h09pv\"};","import {\r\n    CustomButton,\r\n    CustomPasswordTextField,\r\n    CustomPhoneInput,\r\n    CustomTextField,\r\n    PasswordRules,\r\n    StateSelectField,\r\n} from 'app/shared/components';\r\nimport { ReactElement, useCallback, useEffect, useState } from 'react';\r\nimport { Control, FieldError, UseFormRegister } from 'react-hook-form';\r\nimport styles from './builder-registration-form.module.scss';\r\nimport { useValidateEmailAddressMutation } from 'app/store/api/auth/auth.api';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { MuiButtonType } from 'app/shared/enums';\r\nimport { BuilderRegistrationDetails } from 'app/shared/models/registration/registration.model';\r\nimport { debounce } from 'lodash';\r\nimport * as Yup from 'yup';\r\nimport { SystemPartyRoleType } from 'app/shared/models';\r\nimport { emailRegExp } from 'app/shared/data';\r\nimport { VerifyCodeTerms } from '../../forms/verify-code/verify-code-terms.component';\r\n\r\ninterface BuilderRegistrationFormProps {\r\n    control: Control<BuilderRegistrationDetails>;\r\n    register: UseFormRegister<BuilderRegistrationDetails>;\r\n    errors: {\r\n        firstName?: FieldError | undefined;\r\n        lastName?: FieldError | undefined;\r\n        emailAddress?: FieldError | undefined;\r\n        phoneNumber?: FieldError | undefined;\r\n        password?: FieldError | undefined;\r\n        confirmPassword?: FieldError | undefined;\r\n        company?: FieldError | undefined;\r\n        companyAddress?: FieldError | undefined;\r\n        companyCity?: FieldError | undefined;\r\n        companyZipCode?: FieldError | undefined;\r\n        companyState?: FieldError | undefined;\r\n    };\r\n    isValid: boolean;\r\n    emailAddress: string;\r\n    onSubmit: () => void;\r\n}\r\n\r\nconst emailValidationSchema = Yup.object().shape({\r\n    email: Yup.string()\r\n        .email()\r\n        .matches(emailRegExp, 'Invalid email format. Please enter a valid email address.'),\r\n});\r\n\r\nconst BuilderRegistrationForm = ({\r\n    control,\r\n    register,\r\n    errors,\r\n    isValid,\r\n    onSubmit,\r\n}: BuilderRegistrationFormProps): ReactElement => {\r\n    const {\r\n        setIsLoginModalOpen,\r\n        setIsRegistrationModalOpen,\r\n        setIsBuilderRegistrationModalOpen,\r\n        isValidEmailAddress,\r\n        setIsValidEmailAddress,\r\n    } = useLandingPage();\r\n\r\n    const [validateEmailAddress] = useValidateEmailAddressMutation();\r\n\r\n    const [userEmailAddress, setUserEmailAddress] = useState('');\r\n\r\n    const handleEmailChange = useCallback(\r\n        (value: string): void => {\r\n            emailValidationSchema.isValid({ email: value }).then((valid) => {\r\n                if (valid) {\r\n                    setUserEmailAddress(value);\r\n                }\r\n            });\r\n        },\r\n        [setUserEmailAddress]\r\n    );\r\n\r\n    const debouncedChangeHandler = useCallback(debounce(handleEmailChange, 300), [\r\n        handleEmailChange,\r\n    ]);\r\n\r\n    useEffect(() => {\r\n        if (userEmailAddress.length) {\r\n            validateEmailAddress({\r\n                emailAddress: userEmailAddress,\r\n                partnerType: SystemPartyRoleType.Builder,\r\n            })\r\n                .unwrap()\r\n                .then((res) => {\r\n                    setIsValidEmailAddress(res.isValid);\r\n                });\r\n        }\r\n        return () => {\r\n            debouncedChangeHandler.cancel();\r\n        };\r\n    }, [userEmailAddress]);\r\n\r\n    return (\r\n        <div className={styles.builderRegistration}>\r\n            {!isValidEmailAddress && (\r\n                <div className={styles.invalidEmail}>\r\n                    <p className={styles.invalidEmail__text}>\r\n                        AN ACCOUNT ALREADY EXISTS WITH THAT EMAIL ADDRESS.\r\n                    </p>\r\n                    <CustomButton\r\n                        className={styles.invalidEmail__btn}\r\n                        variant={MuiButtonType.text}\r\n                        type=\"button\"\r\n                        onClick={(): void => {\r\n                            setIsBuilderRegistrationModalOpen(false);\r\n                            setIsLoginModalOpen(true);\r\n                        }}\r\n                    >\r\n                        Please log in using your existing email.\r\n                    </CustomButton>\r\n                </div>\r\n            )}\r\n            <form className={styles.builderRegistration__form} onSubmit={onSubmit}>\r\n                <div className={styles.builderRegistration__name}>\r\n                    <CustomTextField\r\n                        inputLabel=\"First Name\"\r\n                        placeholder=\"Enter First Name\"\r\n                        fullWidth\r\n                        register={register('firstName')}\r\n                        errorType={!!errors.firstName}\r\n                        errorMessage={errors.firstName?.message}\r\n                        requiredInput\r\n                        defaultValue=\"\"\r\n                    />\r\n                    <CustomTextField\r\n                        inputLabel=\"Last Name\"\r\n                        placeholder=\"Enter Last Name\"\r\n                        fullWidth\r\n                        register={register('lastName')}\r\n                        errorType={!!errors.lastName}\r\n                        errorMessage={errors.lastName?.message}\r\n                        requiredInput\r\n                        defaultValue=\"\"\r\n                    />\r\n                </div>\r\n                <CustomTextField\r\n                    inputLabel=\"Company Email Address\"\r\n                    type=\"email\"\r\n                    placeholder=\"Enter Email Address\"\r\n                    fullWidth\r\n                    register={register('emailAddress', {\r\n                        onChange: (e): void => debouncedChangeHandler(e.target.value),\r\n                    })}\r\n                    errorType={!!errors.emailAddress || !isValidEmailAddress}\r\n                    errorMessage={errors.emailAddress?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <CustomPhoneInput\r\n                    inputLabel=\"Cellphone\"\r\n                    placeholder=\"Enter Cellphone Number\"\r\n                    fullWidth\r\n                    control={control}\r\n                    register={register('phoneNumber')}\r\n                    errorType={!!errors.phoneNumber}\r\n                    errorMessage={errors.phoneNumber?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <CustomTextField\r\n                    inputLabel=\"Company Name\"\r\n                    placeholder=\"Enter Company Name\"\r\n                    fullWidth\r\n                    register={register('company')}\r\n                    errorType={!!errors.company}\r\n                    errorMessage={errors.company?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <CustomTextField\r\n                    inputLabel=\"Company Address\"\r\n                    placeholder=\"Enter Address\"\r\n                    fullWidth\r\n                    register={register('companyAddress')}\r\n                    errorType={!!errors.companyAddress}\r\n                    errorMessage={errors.companyAddress?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <div className={styles.builderRegistration__location}>\r\n                    <CustomTextField\r\n                        inputLabel=\"City\"\r\n                        placeholder=\"Enter City\"\r\n                        fullWidth\r\n                        register={register('companyCity')}\r\n                        errorType={!!errors.companyCity}\r\n                        errorMessage={errors.companyCity?.message}\r\n                        requiredInput\r\n                        defaultValue=\"\"\r\n                    />\r\n                    <StateSelectField\r\n                        inputLabel=\"State\"\r\n                        name=\"companyState\"\r\n                        fullWidth\r\n                        placeholder=\"State\"\r\n                        errorType={!!errors.companyState}\r\n                        defaultValue=\" \"\r\n                        control={control}\r\n                        sortBy=\"code\"\r\n                        display=\"code\"\r\n                    />\r\n                    <CustomTextField\r\n                        inputLabel=\"Zipcode\"\r\n                        placeholder=\"Zipcode\"\r\n                        fullWidth\r\n                        register={register('companyZipCode')}\r\n                        errorType={!!errors.companyZipCode}\r\n                        errorMessage={errors.companyZipCode?.message}\r\n                        requiredInput\r\n                        defaultValue=\"\"\r\n                    />\r\n                </div>\r\n                <CustomPasswordTextField\r\n                    inputLabel=\"Password\"\r\n                    placeholder=\"Enter password\"\r\n                    fullWidth\r\n                    register={register('password')}\r\n                    errorType={!!errors.password}\r\n                    errorMessage={errors.password?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                    displayAllErrors={false}\r\n                />\r\n\r\n                {errors.password && errors.password?.message && errors.password?.types && (\r\n                    <PasswordRules errors={errors} />\r\n                )}\r\n                <CustomPasswordTextField\r\n                    inputLabel=\"Confirm Password\"\r\n                    placeholder=\"Confirm password\"\r\n                    fullWidth\r\n                    register={register('confirmPassword')}\r\n                    errorType={!!errors.confirmPassword}\r\n                    errorMessage={errors.confirmPassword?.message}\r\n                    requiredInput\r\n                    defaultValue=\"\"\r\n                />\r\n                <div>\r\n                    <div className={styles.builderRegistration__tos}>\r\n                        <VerifyCodeTerms\r\n                            firstText=\"Sign In\"\r\n                            secondText={`\"Send Code and Continue\"`}\r\n                        />\r\n                    </div>\r\n                    <div className={styles.builderRegistration__btns}>\r\n                        <CustomButton\r\n                            className={styles.builderRegistration__backBtn}\r\n                            type=\"button\"\r\n                            variant={MuiButtonType.text}\r\n                            onClick={() => {\r\n                                setIsBuilderRegistrationModalOpen(false);\r\n                                setIsRegistrationModalOpen(true);\r\n                            }}\r\n                        >\r\n                            Back\r\n                        </CustomButton>\r\n                        <CustomButton\r\n                            type=\"submit\"\r\n                            disabled={!isValid || !isValidEmailAddress}\r\n                            variant={MuiButtonType.contained}\r\n                        >\r\n                            Send Code & Continue\r\n                        </CustomButton>\r\n                    </div>\r\n                </div>\r\n            </form>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default BuilderRegistrationForm;\r\n","import { yupResolver } from '@hookform/resolvers/yup';\r\n\r\nimport { ReactElement, useCallback, useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { builderRegistrationSchema } from './builder-registration-form-schema';\r\nimport styles from './builder-registration-form.module.scss';\r\nimport { ThemeProvider } from '@emotion/react';\r\nimport theme from 'app/shared/themes/registration.theme';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport {\r\n    ExistenceCheckAsync,\r\n    existenceCheckDataSelector,\r\n    RegisterAsync,\r\n    SendCodeAsync,\r\n    twoFactorVerificationCodeSelector,\r\n    twoFactorVerifiedSelector,\r\n} from 'app/store/slices/auth.slice';\r\nimport { googleAnalyticsEvent } from 'app/shared/helpers/google-analytics.helper';\r\nimport { VerifyCodeForm } from '../../forms/verify-code/verify-code-form.component';\r\nimport { BuilderRegistrationDetails } from 'app/shared/models/registration/registration.model';\r\nimport BuilderRegistrationForm from './builder-registration-form.component';\r\nimport { RegisterRequest } from 'app/services/auth/models';\r\nimport { useSearchParams } from 'react-router-dom';\r\nimport { envPrefix } from 'app/shared/helpers/settings.helper';\r\nimport { SystemPartyRoleType } from 'app/shared/models';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\n\r\nconst BuilderRegistration = (): ReactElement => {\r\n    const dispatch = useAppDispatch();\r\n    const [queryParameters] = useSearchParams();\r\n    const [step, setStep] = useState(1);\r\n\r\n    const existenceCheckData = useAppSelector(existenceCheckDataSelector);\r\n    const isCodeValid = !!useAppSelector(twoFactorVerifiedSelector);\r\n    const verificationCodeId = useAppSelector(twoFactorVerificationCodeSelector);\r\n    const { prefilledRegistrationDetails } = useLandingPage();\r\n\r\n    useEffect(() => {\r\n        if (prefilledRegistrationDetails) {\r\n            setValue('firstName', prefilledRegistrationDetails.agentFirstName);\r\n            setValue('lastName', prefilledRegistrationDetails.agentLastName);\r\n            setValue('phoneNumber', prefilledRegistrationDetails.agentPhoneNumber);\r\n            setValue('emailAddress', prefilledRegistrationDetails.agentEmailAddress);\r\n        }\r\n    }, [prefilledRegistrationDetails]);\r\n\r\n    const {\r\n        control,\r\n        register,\r\n        handleSubmit,\r\n        getValues,\r\n        setValue,\r\n        formState: { errors, isValid },\r\n        watch,\r\n    } = useForm<BuilderRegistrationDetails>({\r\n        resolver: yupResolver(builderRegistrationSchema, { abortEarly: false }),\r\n        mode: 'onChange',\r\n        criteriaMode: 'all',\r\n        reValidateMode: 'onChange',\r\n    });\r\n\r\n    const emailAddress = watch('emailAddress');\r\n    const phoneNumber = watch('phoneNumber');\r\n\r\n    const onSubmit = useCallback(\r\n        handleSubmit((data) => {\r\n            const { emailAddress, companyState, phoneNumber, lastName } = data;\r\n            const sendCodeRequest = {\r\n                emailAddress,\r\n                phoneNumber,\r\n            };\r\n            const existenceCheckRequest = {\r\n                emailAddress,\r\n                licenseNumber: '',\r\n                stateLicensed: companyState,\r\n                cellPhone: phoneNumber,\r\n                name: lastName,\r\n                partnerType: SystemPartyRoleType.Builder,\r\n            };\r\n\r\n            dispatch(SendCodeAsync(sendCodeRequest));\r\n            dispatch(ExistenceCheckAsync(existenceCheckRequest));\r\n            googleAnalyticsEvent(\r\n                'Builder Registration',\r\n                'Builder Registration Continue Step Clicked',\r\n                'Builder Registration Continue Step Clicked'\r\n            );\r\n\r\n            setStep(2);\r\n        }),\r\n        [handleSubmit, setStep]\r\n    );\r\n\r\n    const onFormSubmit = useCallback((): void => {\r\n        const builderDetails = getValues();\r\n        const registerAsTester =\r\n            !!(queryParameters.get('test') === 'naf') || envPrefix === 'staging';\r\n        const reaSourceParam = queryParameters.get('source');\r\n        const pdmParam = queryParameters.get('arm');\r\n\r\n        const registerForm: RegisterRequest = {\r\n            firstName: builderDetails.firstName,\r\n            lastName: builderDetails.lastName,\r\n            emailAddress: builderDetails.emailAddress,\r\n            phoneNumber: builderDetails.phoneNumber,\r\n            licenseNumber: '',\r\n            stateLicensed: builderDetails.companyState,\r\n            company: existenceCheckData?.companyName ?? builderDetails.company ?? '',\r\n            companyAddress:\r\n                existenceCheckData?.companyAddress ?? builderDetails.companyAddress ?? '',\r\n            companyCity: existenceCheckData?.companyCity ?? builderDetails.companyCity ?? '',\r\n            companyState: existenceCheckData?.companyState ?? builderDetails.companyState ?? '',\r\n            companyZipCode:\r\n                existenceCheckData?.companyZipCode ?? builderDetails.companyZipCode ?? '',\r\n            password: builderDetails.password,\r\n            accountType: registerAsTester ? 1 : 0,\r\n            loanOfficerId: prefilledRegistrationDetails.loanOfficerId ?? '',\r\n            reaSource: prefilledRegistrationDetails.reaSource || reaSourceParam,\r\n            partnerDevelopmentManager: pdmParam,\r\n            verificationCodeId,\r\n            isCodeValid,\r\n            partnerType: SystemPartyRoleType.Builder,\r\n        };\r\n\r\n        if (existenceCheckData?.referralPartnerId) {\r\n            registerForm.referralPartnerId = existenceCheckData.referralPartnerId;\r\n        }\r\n\r\n        dispatch(RegisterAsync(registerForm));\r\n        googleAnalyticsEvent('Register', 'Register event', 'REGISTER');\r\n    }, [getValues, queryParameters, existenceCheckData, verificationCodeId, isCodeValid]);\r\n\r\n    return (\r\n        <ThemeProvider theme={theme}>\r\n            {step === 1 && (\r\n                <BuilderRegistrationForm\r\n                    control={control}\r\n                    register={register}\r\n                    errors={errors}\r\n                    isValid={isValid}\r\n                    onSubmit={onSubmit}\r\n                    emailAddress={emailAddress}\r\n                />\r\n            )}\r\n            {step === 2 && (\r\n                <div className={styles.registration__verification}>\r\n                    <VerifyCodeForm\r\n                        isLoginForm={false}\r\n                        prevStep={() => setStep(1)}\r\n                        emailAddress={emailAddress}\r\n                        phoneNumber={phoneNumber}\r\n                        onFormSubmit={onFormSubmit}\r\n                    />\r\n                </div>\r\n            )}\r\n        </ThemeProvider>\r\n    );\r\n};\r\n\r\nexport default BuilderRegistration;\r\n","import { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { AppModal } from 'app/shared/components';\r\nimport { ReactElement, useCallback } from 'react';\r\nimport { RegistrationForm } from '../forms/registration/registration-form.component';\r\nimport { useAppDispatch } from 'app/store/hooks';\r\nimport { LoginWithTokenRequest } from 'app/services/auth/models';\r\nimport { RegisterWithToken } from 'app/store/slices/auth.slice';\r\nimport RegistrationRolePicker from './registration-role-picker.component';\r\nimport BuilderRegistration from './builder-registration/builder-registration.component';\r\nimport { useGetFeatureFlagQuery } from 'app/store/api/feature-flag/feature-flag.api';\r\nimport { FeatureFlags } from 'app/shared/enums/feature-flags.enum';\r\n\r\nconst registrationHeading = 'Create an Account';\r\n\r\nconst Registration = (): ReactElement | null => {\r\n    const {\r\n        isRegistrationModalOpen,\r\n        setIsRegistrationModalOpen,\r\n        isReaRegistrationModalOpen,\r\n        setIsReaRegistrationModalOpen,\r\n        isBuilderRegistrationModalOpen,\r\n        setIsBuilderRegistrationModalOpen,\r\n        setIsValidEmailAddress,\r\n    } = useLandingPage();\r\n\r\n    const dispatch = useAppDispatch();\r\n\r\n    const { data: showBuilderRegistration } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.BuilderRegistration,\r\n    });\r\n\r\n    const onTokenRegister = useCallback(\r\n        (request: LoginWithTokenRequest): void => {\r\n            dispatch(RegisterWithToken(request));\r\n            setIsRegistrationModalOpen(false);\r\n        },\r\n        [setIsRegistrationModalOpen]\r\n    );\r\n\r\n    const onRegistrationClose = useCallback(() => {\r\n        if (isRegistrationModalOpen) {\r\n            setIsRegistrationModalOpen(false);\r\n        } else if (isReaRegistrationModalOpen) {\r\n            setIsReaRegistrationModalOpen(false);\r\n        } else if (isBuilderRegistrationModalOpen) {\r\n            setIsBuilderRegistrationModalOpen(false);\r\n        }\r\n\r\n        setIsValidEmailAddress(true);\r\n    }, [\r\n        isRegistrationModalOpen,\r\n        isReaRegistrationModalOpen,\r\n        isBuilderRegistrationModalOpen,\r\n        setIsRegistrationModalOpen,\r\n        setIsReaRegistrationModalOpen,\r\n        setIsBuilderRegistrationModalOpen,\r\n        setIsValidEmailAddress,\r\n        showBuilderRegistration,\r\n    ]);\r\n\r\n    const shouldOpenModal =\r\n        isRegistrationModalOpen || isReaRegistrationModalOpen || isBuilderRegistrationModalOpen;\r\n\r\n    if (shouldOpenModal) {\r\n        return (\r\n            <AppModal\r\n                heading={registrationHeading}\r\n                open={shouldOpenModal}\r\n                handleClose={onRegistrationClose}\r\n            >\r\n                {showBuilderRegistration ? (\r\n                    <>\r\n                        {isRegistrationModalOpen && <RegistrationRolePicker />}\r\n                        {isReaRegistrationModalOpen && (\r\n                            <RegistrationForm onTokenRegister={onTokenRegister} />\r\n                        )}\r\n                        {isBuilderRegistrationModalOpen && <BuilderRegistration />}\r\n                    </>\r\n                ) : (\r\n                    isRegistrationModalOpen && (\r\n                        <RegistrationForm onTokenRegister={onTokenRegister} />\r\n                    )\r\n                )}\r\n            </AppModal>\r\n        );\r\n    }\r\n\r\n    return null;\r\n};\r\n\r\nexport default Registration;\r\n","import { ReactElement, useEffect, useState } from 'react';\r\n\r\nimport { AppModal, CustomButton } from 'app/shared/components';\r\nimport {\r\n    AsyncRequestStatus,\r\n    HeaderModalChild,\r\n    MuiButtonType,\r\n    MuiColorType,\r\n    TextTransformType,\r\n} from 'app/shared/enums';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport {\r\n    LoginAsync,\r\n    LoginWithTokenAsync,\r\n    SendCodeAsync,\r\n    resetIstwoFactorVerified,\r\n    setLoginErrorText,\r\n    statusLoginSelector,\r\n    twoFactorVerifiedSelector,\r\n} from 'app/store/slices/auth.slice';\r\n\r\nimport { ForgotPasswordForm } from '../forms/forgot-password/forgot-password-form.component';\r\nimport { LogInForm } from '../forms/login/login-form.component';\r\nimport styles from './header-landing-page.module.scss';\r\nimport { useHeader } from './use-header-landing-page';\r\nimport { LoginRequest, LoginWithTokenRequest } from 'app/services/auth/models';\r\n\r\nimport { VerifyCodeForm } from '../forms/verify-code/verify-code-form.component';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport Registration from '../registration/registration.component';\r\n\r\nexport const HeaderLandingPage = (): ReactElement => {\r\n    const dispatch = useAppDispatch();\r\n\r\n    const { setIsRegistrationModalOpen, isLoginModalOpen, setIsLoginModalOpen } = useLandingPage();\r\n    const twoFactorVerified = useAppSelector(twoFactorVerifiedSelector);\r\n    const statusLogin = useAppSelector(statusLoginSelector);\r\n\r\n    const {\r\n        logo,\r\n        logInModalChild,\r\n        defaultLoginEmail,\r\n        onForgotPasswordClick,\r\n        onForgotPasswordSubmit,\r\n        onForgotPasswordReturnClick,\r\n        resetLoginModal,\r\n        setModalHeading,\r\n    } = useHeader();\r\n\r\n    const [step, setStep] = useState(1);\r\n    const [userData, setUserData] = useState<LoginRequest>();\r\n\r\n    useEffect(() => {\r\n        if (step === 1) {\r\n            dispatch(resetIstwoFactorVerified());\r\n        }\r\n    }, [step]);\r\n\r\n    useEffect(() => {\r\n        if (statusLogin === AsyncRequestStatus.Fulfilled) {\r\n            if (twoFactorVerified === false) {\r\n                setStep(2);\r\n            }\r\n        }\r\n    }, [twoFactorVerified]);\r\n\r\n    const onRegistrationModalToggle = (): void => {\r\n        setIsRegistrationModalOpen(true);\r\n    };\r\n\r\n    const onLoginModalToggle = (): void => {\r\n        setIsLoginModalOpen((state) => !state);\r\n\r\n        if (isLoginModalOpen === false) {\r\n            if (logInModalChild !== HeaderModalChild.LogIn) resetLoginModal();\r\n            dispatch(setLoginErrorText(''));\r\n            setStep(1);\r\n        }\r\n    };\r\n\r\n    const onStepTwoSendCode = (): void => {\r\n        if (userData) {\r\n            const request = {\r\n                emailAddress: userData.username,\r\n            };\r\n            dispatch(SendCodeAsync(request));\r\n            nextStep();\r\n        }\r\n    };\r\n\r\n    const onLogin = (request: LoginRequest): void => {\r\n        request.checkVerificationCode = true;\r\n        dispatch(LoginAsync(request));\r\n        setUserData(request);\r\n    };\r\n\r\n    const onTokenLogin = (request: LoginWithTokenRequest): void => {\r\n        request.checkVerificationCode = true;\r\n        dispatch(LoginWithTokenAsync(request));\r\n    };\r\n\r\n    const nextStep = (): void => {\r\n        setStep((step) => step + 1);\r\n    };\r\n\r\n    const prevStep = (): void => {\r\n        setStep((step) => step - 1);\r\n    };\r\n\r\n    return (\r\n        <div className={styles.header}>\r\n            <div className={styles.header__content}>\r\n                <img className={styles.header__logo} alt=\"NAFConnect\" src={logo} />\r\n\r\n                <div className={styles.header__links} role=\"navigation\">\r\n                    <a href=\"#header-introduction\" className={styles.header__link}>\r\n                        What Is NAF Connect?\r\n                    </a>\r\n                    <a href=\"#header-features\" className={styles.header__link}>\r\n                        Features\r\n                    </a>\r\n                </div>\r\n\r\n                <div className={styles.header__actions}>\r\n                    <CustomButton\r\n                        className={styles.header__btn}\r\n                        type=\"button\"\r\n                        variant={MuiButtonType.outlined}\r\n                        textTransform={TextTransformType.uppercase}\r\n                        onClick={onLoginModalToggle}\r\n                    >\r\n                        log in\r\n                    </CustomButton>\r\n\r\n                    <CustomButton\r\n                        type=\"button\"\r\n                        className={styles.header__btn}\r\n                        variant={MuiButtonType.contained}\r\n                        colorTheme={MuiColorType.secondary}\r\n                        textTransform={TextTransformType.uppercase}\r\n                        onClick={onRegistrationModalToggle}\r\n                    >\r\n                        sign up\r\n                    </CustomButton>\r\n                </div>\r\n\r\n                <AppModal\r\n                    heading={setModalHeading()}\r\n                    open={isLoginModalOpen}\r\n                    handleClose={onLoginModalToggle}\r\n                >\r\n                    <div className={styles.header__loginModal}>\r\n                        {logInModalChild === HeaderModalChild.LogIn && (\r\n                            <>\r\n                                {step === 1 && (\r\n                                    <LogInForm\r\n                                        defaultUsername={defaultLoginEmail}\r\n                                        onForgotPasswordClick={onForgotPasswordClick}\r\n                                        onLogin={onLogin}\r\n                                        onTokenLogin={onTokenLogin}\r\n                                    />\r\n                                )}\r\n                                {step === 2 && (\r\n                                    <div className={styles.disclaimer}>\r\n                                        <p className={styles.disclaimer__text}>\r\n                                            It looks like your account hasn’t been verified before.\r\n                                            We need to verify your account by sending a code to your\r\n                                            cell phone number on record. Message and data rates may\r\n                                            apply.\r\n                                        </p>\r\n                                        <div className={styles.disclaimer__btnGroup}>\r\n                                            <CustomButton\r\n                                                type=\"button\"\r\n                                                variant={MuiButtonType.text}\r\n                                                colorTheme={MuiColorType.secondary}\r\n                                                onClick={prevStep}\r\n                                            >\r\n                                                Previous\r\n                                            </CustomButton>\r\n                                            <CustomButton\r\n                                                type=\"button\"\r\n                                                variant={MuiButtonType.contained}\r\n                                                onClick={onStepTwoSendCode}\r\n                                            >\r\n                                                SEND CODE & CONTINUE\r\n                                            </CustomButton>\r\n                                        </div>\r\n                                    </div>\r\n                                )}\r\n                                {step === 3 && (\r\n                                    <VerifyCodeForm\r\n                                        isLoginForm\r\n                                        userData={userData}\r\n                                        prevStep={prevStep}\r\n                                    />\r\n                                )}\r\n                            </>\r\n                        )}\r\n\r\n                        {logInModalChild === HeaderModalChild.ForgotPassword && (\r\n                            <ForgotPasswordForm onForgotPasswordSubmit={onForgotPasswordSubmit} />\r\n                        )}\r\n\r\n                        {logInModalChild === HeaderModalChild.ForgotPasswordSuccess && (\r\n                            <div className={styles.header__resetPassword}>\r\n                                <p className={styles.header__resetPassword_text}>\r\n                                    Please check your email. If the email address you entered exists\r\n                                    in our system, instructions for resetting your password have\r\n                                    been sent.\r\n                                </p>\r\n                                <CustomButton\r\n                                    type=\"button\"\r\n                                    variant={MuiButtonType.contained}\r\n                                    onClick={onForgotPasswordReturnClick}\r\n                                >\r\n                                    RETURN\r\n                                </CustomButton>\r\n                            </div>\r\n                        )}\r\n                    </div>\r\n                </AppModal>\r\n\r\n                <Registration />\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","import { useContext, useEffect, useState } from 'react';\r\nimport { SubmitHandler } from 'react-hook-form';\r\n\r\nimport { ForgotPasswordRequest } from 'app/services/auth/models';\r\nimport { AsyncRequestStatus, HeaderModalChild } from 'app/shared/enums';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport { AuthSelector, ForgotPasswordAsync } from 'app/store/slices/auth.slice';\r\nimport { EnvContext } from 'app/contexts/environment/environment.context';\r\n\r\ninterface HeaderLandingHook {\r\n    logo: string;\r\n    logInModalChild: HeaderModalChild;\r\n    defaultLoginEmail: string;\r\n    onForgotPasswordClick: () => void;\r\n    onForgotPasswordSubmit: (request: ForgotPasswordRequest) => void;\r\n    onForgotPasswordReturnClick: () => void;\r\n    resetLoginModal: () => void;\r\n    setModalHeading: () => string;\r\n    setDefaultLoginEmail: (request: string) => void;\r\n}\r\n\r\nexport const useHeader = (): HeaderLandingHook => {\r\n    const env = useContext(EnvContext);\r\n    const { BLOB_STORAGE_URL = '' } = env;\r\n    const dispatch = useAppDispatch();\r\n    const { statusForgotPassword } = useAppSelector(AuthSelector);\r\n    const [logInModalChild, setLoginModalChild] = useState(HeaderModalChild.LogIn);\r\n    const [defaultLoginEmail, setDefaultLoginEmail] = useState('');\r\n\r\n    useEffect(() => {\r\n        if (statusForgotPassword === AsyncRequestStatus.Fulfilled) {\r\n            setLoginModalChild(HeaderModalChild.ForgotPasswordSuccess);\r\n        }\r\n    }, [statusForgotPassword]);\r\n\r\n    const onForgotPasswordClick = (): void => setLoginModalChild(HeaderModalChild.ForgotPassword);\r\n\r\n    const onForgotPasswordSubmit: SubmitHandler<ForgotPasswordRequest> = (\r\n        request: ForgotPasswordRequest\r\n    ): void => {\r\n        dispatch(ForgotPasswordAsync(request));\r\n        setDefaultLoginEmail(request.emailAddress);\r\n    };\r\n\r\n    const onForgotPasswordReturnClick = (): void => setLoginModalChild(HeaderModalChild.LogIn);\r\n\r\n    const resetLoginModal = (): void => {\r\n        setLoginModalChild(HeaderModalChild.LogIn);\r\n        setDefaultLoginEmail('');\r\n    };\r\n\r\n    const setModalHeading = (): string => {\r\n        let heading = '';\r\n\r\n        if (logInModalChild === HeaderModalChild.LogIn) heading = 'Log In';\r\n        if (logInModalChild === HeaderModalChild.ForgotPassword) heading = 'Reset Your Password';\r\n        if (logInModalChild === HeaderModalChild.ForgotPasswordSuccess) heading = 'Log In';\r\n\r\n        return heading;\r\n    };\r\n\r\n    const logo = `${BLOB_STORAGE_URL}/assets/images/logo-naf-connect-for-dark-bgs-alt.svg`;\r\n\r\n    return {\r\n        logo,\r\n        logInModalChild,\r\n        defaultLoginEmail,\r\n        onForgotPasswordClick,\r\n        onForgotPasswordSubmit,\r\n        onForgotPasswordReturnClick,\r\n        resetLoginModal,\r\n        setModalHeading,\r\n        setDefaultLoginEmail,\r\n    };\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"hero\":\"hero_hero__TySl7\",\"hero__background\":\"hero_hero__background__RcGcQ\",\"hero__text\":\"hero_hero__text__6IlGR\",\"hero__foreground\":\"hero_hero__foreground__XNsZX\",\"hero__img\":\"hero_hero__img__dXHoI\",\"hero__img--desktop\":\"hero_hero__img--desktop__+A7o4\",\"hero__img--mobile\":\"hero_hero__img--mobile__ZVlsw\"};","import { ReactElement, useContext } from 'react';\r\n\r\nimport { Heading } from 'app/shared/components';\r\nimport { HeadingSize } from 'app/shared/enums';\r\nimport { useNafConnectImages } from 'app/shared/hooks/use-naf-connect-images.hook';\r\nimport { HeaderLandingPage } from '../header-landing-page/header-landing-page.component';\r\nimport classnames from 'classnames';\r\n\r\nimport styles from './hero.module.scss';\r\nimport { EnvContext } from 'app/contexts/environment/environment.context';\r\n\r\nexport const Hero = (): ReactElement => {\r\n    const { devicesHeroImg, devicesHeroImgSm } = useNafConnectImages();\r\n    const env = useContext(EnvContext);\r\n    const { BLOB_STORAGE_URL = '' } = env;\r\n\r\n    return (\r\n        <div className={styles.hero}>\r\n            <video className={styles.hero__background} muted autoPlay loop>\r\n                <source src={`${BLOB_STORAGE_URL}/assets/video/naf-bg-hero-1080.mp4`} />\r\n                <img\r\n                    src={`${BLOB_STORAGE_URL}/assets/images/bg-family-open-house-dark.jpg`}\r\n                    alt=\"NAFConnect Hero\"\r\n                />\r\n            </video>\r\n            <HeaderLandingPage />\r\n\r\n            <Heading as={HeadingSize.h1} className={styles.hero__text}>\r\n                <span>Connectivity.</span>\r\n                <span>Visibility.</span>\r\n                <span>Control.</span>\r\n            </Heading>\r\n            <div className={styles.hero__foreground}>\r\n                <img\r\n                    className={classnames(styles.hero__img, styles['hero__img--desktop'])}\r\n                    src={devicesHeroImg}\r\n                    alt=\"NAFConnect Devices\"\r\n                />\r\n                <img\r\n                    className={classnames(styles.hero__img, styles['hero__img--mobile'])}\r\n                    src={devicesHeroImgSm}\r\n                    alt=\"NAFConnect Devices Small\"\r\n                />\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","// extracted by mini-css-extract-plugin\nexport default {\"landingPage\":\"landing-page_landingPage__YrbYO\",\"landingPage__content\":\"landing-page_landingPage__content__MbzyN\",\"landingPage__installPrompt\":\"landing-page_landingPage__installPrompt__ClOA6\",\"landingPage__installPromptText\":\"landing-page_landingPage__installPromptText__Tu3fN\",\"landingPage__closeInstallButton\":\"landing-page_landingPage__closeInstallButton__s2Shn\"};","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { MouseEvent, ReactElement, useEffect } from 'react';\r\nimport { CookieConsent } from 'app/features/landing-page/cookie-banner/cookie-consent.component';\r\nimport { LoginWithTokenRequest } from 'app/services/auth/models';\r\nimport { Announcements, FixedPositionContainer } from 'app/shared/components';\r\nimport CustomCircularProgress from 'app/shared/components/custom-circular-progress/custom-circular-progress.component';\r\nimport FullPageCircularProgress from 'app/shared/components/full-page-circular-progress/full-page-circular-progress.component';\r\nimport NCMultilineIcon from 'app/shared/components/svg-icons/nc-multiline-icon.component';\r\nimport { AsyncRequestStatus } from 'app/shared/enums';\r\nimport { FeatureFlags } from 'app/shared/enums/feature-flags.enum';\r\nimport { localStorageHelper } from 'app/shared/helpers';\r\nimport { useInstallPWA } from 'app/shared/hooks/use-pwa.hook';\r\nimport { useAppDispatch, useAppSelector } from 'app/store/hooks';\r\nimport { GetAnnouncementsAsync } from 'app/store/slices/announcements.slice';\r\nimport {\r\n    AuthSelector,\r\n    LoginWithTokenAsync,\r\n    statusLogInWithTokenSelector,\r\n    statusRegisterWithTokenSelector,\r\n} from 'app/store/slices/auth.slice';\r\nimport { useLocation, useNavigate, useSearchParams } from 'react-router-dom';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Maintenance from '../maintenance/maintenance.component';\r\nimport { Content } from './content/content.component';\r\nimport { FooterLandingPage } from './footer-landing-page/footer-landing-page.component';\r\nimport { Hero } from './hero/hero.component';\r\nimport styles from './landing-page.module.scss';\r\nimport { useActions } from 'app/contexts/ui-actions/ui-actions.context';\r\nimport { useFeatureFlag } from 'app/shared/hooks/use-feature-flag.hook';\r\nimport { useGetFeatureFlagQuery } from 'app/store/api/feature-flag/feature-flag.api';\r\nimport { useLandingPage } from 'app/contexts/landing-page/landing-page.context';\r\nimport { useLocalStorage } from 'usehooks-ts';\r\nimport { LocalStorageKey } from 'app/shared/helpers/local-storage-keys';\r\n\r\nconst LandingPage = (): ReactElement => {\r\n    const dispatch = useAppDispatch();\r\n    const [queryParameters] = useSearchParams();\r\n    const { redirectUrl, setRedirectUrl } = useActions();\r\n    const navigate = useNavigate();\r\n    useFeatureFlag();\r\n    const { isLoginSuccessful, isRegistrationSuccessful } = useAppSelector(AuthSelector);\r\n    const bypassKey = queryParameters.get('bypassKey');\r\n\r\n    const { data: displayMaintenance, isLoading: isLoadingMaintenance } = useGetFeatureFlagQuery({\r\n        name: FeatureFlags.DisplayMaintenancePage,\r\n        queryParameters: { bypassKey: bypassKey ?? '' },\r\n    });\r\n\r\n    const [reaSource, setReaSource] = useLocalStorage<string | undefined>(\r\n        LocalStorageKey.ReaSource,\r\n        undefined\r\n    );\r\n    const [loReferralGuid, setLoReferralGuid] = useLocalStorage<string | undefined>(\r\n        LocalStorageKey.LoReferralGuid,\r\n        undefined\r\n    );\r\n\r\n    const loginWithTokenStatus = useAppSelector(statusLogInWithTokenSelector);\r\n    const registerWithTokenStatus = useAppSelector(statusRegisterWithTokenSelector);\r\n\r\n    const location = useLocation();\r\n\r\n    useEffect(() => {\r\n        const arm = queryParameters.get('arm');\r\n        if (arm) {\r\n            localStorageHelper.set('arm', arm);\r\n        }\r\n    }, [queryParameters]);\r\n\r\n    const { setIsLoginModalOpen, setIsRegistrationModalOpen } = useLandingPage();\r\n\r\n    useEffect(() => {\r\n        if (location) {\r\n            switch (location.pathname) {\r\n                case '/login':\r\n                    setIsLoginModalOpen(true);\r\n                    break;\r\n                case '/register':\r\n                    setIsRegistrationModalOpen(true);\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n        }\r\n    }, [location]);\r\n\r\n    useEffect(() => {\r\n        const linkedinAuthCode = queryParameters.get('code');\r\n        const pdmParam = localStorageHelper.get<string>('arm');\r\n        if (linkedinAuthCode) {\r\n            const request = {\r\n                tokenCode: linkedinAuthCode,\r\n                provider: 'Linkedin',\r\n                checkVerificationCode: true,\r\n                partnerDevelopmentManager: pdmParam,\r\n            } as LoginWithTokenRequest;\r\n\r\n            if (reaSource) {\r\n                request.reaSource = reaSource;\r\n                setReaSource(undefined);\r\n            }\r\n            if (loReferralGuid) {\r\n                request.loanOfficerId = loReferralGuid;\r\n                setLoReferralGuid(undefined);\r\n            }\r\n\r\n            dispatch(LoginWithTokenAsync(request));\r\n            sessionStorage.setItem('Provider', 'Linkedin');\r\n        }\r\n\r\n        dispatch(GetAnnouncementsAsync());\r\n    }, []);\r\n\r\n    useEffect(() => {\r\n        if (isRegistrationSuccessful) {\r\n            navigate('/rea/welcome', { replace: true });\r\n        }\r\n    }, [isRegistrationSuccessful, navigate]);\r\n\r\n    useEffect(() => {\r\n        if (isLoginSuccessful) {\r\n            if (redirectUrl) {\r\n                setRedirectUrl('');\r\n                navigate(redirectUrl, { replace: true });\r\n            } else {\r\n                navigate('/rea/clients', { replace: true });\r\n            }\r\n        }\r\n    }, [isLoginSuccessful, redirectUrl, setRedirectUrl, navigate]);\r\n\r\n    const {\r\n        shouldPromptInstallPWA,\r\n        beforeInstallPromptEvent,\r\n        setShouldPromptInstallPWA,\r\n        setDeclinedInstallPWA,\r\n    } = useInstallPWA();\r\n\r\n    const handleCloseInstallPWA = (e: MouseEvent): void => {\r\n        e.stopPropagation();\r\n\r\n        setShouldPromptInstallPWA(false);\r\n        setDeclinedInstallPWA();\r\n    };\r\n\r\n    if (isLoadingMaintenance) return <CustomCircularProgress />;\r\n\r\n    const isLoggingInWithSSO =\r\n        loginWithTokenStatus === AsyncRequestStatus.Pending ||\r\n        registerWithTokenStatus === AsyncRequestStatus.Pending;\r\n\r\n    return (\r\n        <div className={styles.landingPage}>\r\n            {displayMaintenance ? (\r\n                <>\r\n                    <Maintenance />\r\n                    <FixedPositionContainer>\r\n                        <Announcements />\r\n                    </FixedPositionContainer>\r\n                </>\r\n            ) : (\r\n                <div className={styles.landingPage__content}>\r\n                    <Hero />\r\n                    <Content />\r\n                    <FooterLandingPage />\r\n                    <FixedPositionContainer>\r\n                        <CookieConsent />\r\n                        <Announcements />\r\n                    </FixedPositionContainer>\r\n                    {shouldPromptInstallPWA && (\r\n                        <div\r\n                            onClick={(): void => {\r\n                                beforeInstallPromptEvent?.prompt();\r\n                            }}\r\n                            className={styles.landingPage__installPrompt}\r\n                            role=\"button\"\r\n                            tabIndex={0}\r\n                        >\r\n                            <NCMultilineIcon width={32} />\r\n                            <div className={styles.landingPage__installPromptText}>\r\n                                Add NAF Connect: Real-time Loan Insights to Home screen\r\n                            </div>\r\n                            <CloseIcon\r\n                                onClick={handleCloseInstallPWA}\r\n                                fontSize=\"medium\"\r\n                                sx={{ paddingRight: 2.5 }}\r\n                            />\r\n                        </div>\r\n                    )}\r\n\r\n                    {isLoggingInWithSSO && <FullPageCircularProgress />}\r\n                </div>\r\n            )}\r\n        </div>\r\n    );\r\n};\r\n\r\nexport default LandingPage;\r\n","import { Dispatch, SetStateAction, useEffect, useState } from 'react';\r\nimport { isAndroid, localStorageHelper } from 'app/shared/helpers';\r\n\r\nexport interface BeforeInstallPromptEvent extends Event {\r\n    readonly platforms: Array<string>;\r\n    readonly userChoice: Promise<{\r\n        outcome: 'accepted' | 'dismissed';\r\n        platform: string;\r\n    }>;\r\n    prompt: () => Promise<void>;\r\n}\r\n\r\ninterface InstallPWA {\r\n    shouldPromptInstallPWA: boolean;\r\n    setShouldPromptInstallPWA: Dispatch<SetStateAction<boolean>>;\r\n    setDeclinedInstallPWA: () => void;\r\n    beforeInstallPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\nexport const useInstallPWA = (): InstallPWA => {\r\n    const [shouldPromptInstallPWA, setShouldPromptInstallPWA] = useState<boolean>(false);\r\n    const [beforeInstallPromptEvent, setBeforeInstallPromptEvent] =\r\n        useState<BeforeInstallPromptEvent | null>(null);\r\n\r\n    const handleShouldPromptInstallPWA = (): void => {\r\n        if (isAndroid()) {\r\n            const declined = localStorageHelper.get<boolean>('declinedInstallPWA');\r\n\r\n            if (declined === null) {\r\n                setShouldPromptInstallPWA(true);\r\n            }\r\n        }\r\n    };\r\n\r\n    useEffect(() => {\r\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n        let cleanup: () => void = () => {};\r\n\r\n        if (window.beforeInstallPromptEvent) {\r\n            setBeforeInstallPromptEvent(window.beforeInstallPromptEvent);\r\n            handleShouldPromptInstallPWA();\r\n        } else {\r\n            const handleBeforeInstallPromptEvent = (event: Event): void => {\r\n                setBeforeInstallPromptEvent(event as BeforeInstallPromptEvent);\r\n                handleShouldPromptInstallPWA();\r\n            };\r\n\r\n            window.addEventListener('beforeinstallprompt', handleBeforeInstallPromptEvent);\r\n\r\n            cleanup = (): void => {\r\n                window.removeEventListener('beforeinstallprompt', handleBeforeInstallPromptEvent);\r\n            };\r\n        }\r\n\r\n        return cleanup;\r\n    }, []);\r\n\r\n    const setDeclinedInstallPWA = (): void => {\r\n        localStorageHelper.set('declinedInstallPWA', true);\r\n    };\r\n\r\n    return {\r\n        shouldPromptInstallPWA,\r\n        setShouldPromptInstallPWA,\r\n        setDeclinedInstallPWA,\r\n        beforeInstallPromptEvent,\r\n    };\r\n};\r\n","import { ReactElement } from 'react';\r\nimport { CircularProgress, styled } from '@mui/material';\r\nimport { Color } from 'app/shared/enums';\r\n\r\nconst Overlay = styled('div')({\r\n    position: 'fixed',\r\n    top: 0,\r\n    left: 0,\r\n    width: '100%',\r\n    height: '100%',\r\n    zIndex: 9999,\r\n    backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n    display: 'flex',\r\n    justifyContent: 'center',\r\n    alignItems: 'center',\r\n    color: Color.white,\r\n});\r\n\r\nconst FullPageCircularProgress = (): ReactElement => (\r\n    <Overlay>\r\n        <CircularProgress color=\"inherit\" data-testid=\"full-page-circular-progress\" />\r\n    </Overlay>\r\n);\r\n\r\nexport default FullPageCircularProgress;\r\n","import { ReactElement, SVGProps } from 'react';\r\n\r\nconst NafConnectLogo = (props: SVGProps<SVGSVGElement>): ReactElement => (\r\n    <svg\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        x={0}\r\n        y={0}\r\n        viewBox=\"0 0 180 28.2\"\r\n        xmlSpace=\"preserve\"\r\n        {...props}\r\n    >\r\n        <style>{'.ncl__st0{fill:#889bd8}.ncl__st1{fill:#fff}'}</style>\r\n        <g transform=\"translate(-77.17 -59.79)\">\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"M169.5 77.5c.1-4.6-3-8.7-7.5-9.7-.9-.3-1.8-.4-2.7-.4-3.7 0-7.1 1.9-9 5.1l-7.6 8.9c-.1.1-.1.2-.2.3-1.1 1.3-2.7 2-4.4 2h-.1c-3.2 0-5.7-2.6-5.8-5.7v-.3c0-1.6.6-3.1 1.7-4.3 1.1-1.1 2.5-1.7 4-1.7H138.2c2.3 0 4.3 1.4 5.1 3.5l.2.3h.4l2.8-3.3-.2-.2c-3.2-4.7-9.5-5.9-14.2-2.8-4.7 3.2-5.9 9.5-2.8 14.2 1.9 2.8 5.1 4.5 8.5 4.5h.2c2.4-.1 4.6-.9 6.4-2.5l.1-.1 1.2-1.2 3.3-3.8c1.2 4.4 5.3 7.4 9.9 7.3 5.5.2 10.1-4.2 10.2-9.7.2 0 .2-.2.2-.4zm-10.2-5.9c3.3.1 5.8 2.7 5.8 6s-2.7 5.8-6 5.8c-3.2-.1-5.8-2.7-5.8-5.9-.1-3.2 2.4-5.8 5.5-5.9h.5z\"\r\n            />\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"M187.4 70.7c-1.4-2.1-3.6-3.3-6.8-3.3v.3-.3h-.1c-2.2-.1-4.3.8-5.8 2.3V68h-4.4v20h4.6V76.9c0-3.3 1.7-5 4.8-5.1 3 0 4.5 1.7 4.5 5.3V88h4.7V76.3c-.1-2-.6-3.9-1.5-5.6z\"\r\n            />\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"M206.8 70.7c-1.4-2.1-3.6-3.3-6.8-3.3v.3-.3c-2.2-.1-4.3.8-5.8 2.3V68h-4.4v20h4.6V76.9c0-3.3 1.7-5 4.8-5.1 3 0 4.5 1.7 4.5 5.3V88h4.7V76.3c-.1-2-.6-3.9-1.6-5.6z\"\r\n            />\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"M226.7 70.2c-1.9-1.9-4.5-2.9-7.2-2.8-5.7 0-10.3 4.6-10.3 10.3 0 5.7 4.6 10.3 10.3 10.3h.1c2 0 3.9-.6 5.5-1.7 1.8-1.2 3.1-2.8 3.9-4.8l.3-.7h-4.7l-.2.2v.1c-.9 1.8-2.9 2.9-4.9 2.9-2.8.1-5.2-1.9-5.7-4.6h15.7v-.5c.5-3.2-.6-6.4-2.8-8.7zm-1.7 5.4h-11.1c.6-2.5 2.9-4.3 5.5-4.2h.2c2.6 0 4.8 1.7 5.4 4.2z\"\r\n            />\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"m246 79.9-.2.3c-.8 2.1-2.9 3.5-5.2 3.5h-.1c-1.5 0-2.9-.6-3.9-1.6-1.1-1.2-1.7-2.7-1.6-4.2v-.4c0-1.6.6-3.1 1.6-4.2 1-1 2.4-1.6 3.9-1.6h.1c2.3-.1 4.4 1.3 5.2 3.5l.2.3h.4l2.8-3.3-.2-.2c-1.9-2.8-5-4.5-8.4-4.5h-.2c-5.5.1-9.9 4.7-9.9 10.2v.1c-.1 5.5 4.3 10.1 9.9 10.2h.2c3.4 0 6.5-1.7 8.4-4.5l.2-.2-2.8-3.3-.4-.1z\"\r\n            />\r\n            <path\r\n                className=\"ncl__st0\"\r\n                d=\"M257.2 73.1v-3.9h-2.6v-2.8H250v16c-.1 1.5.4 3 1.4 4.1 1.3 1.1 3 1.7 4.8 1.5h.9v-4h-.5c-.6.1-1.2 0-1.7-.4-.3-.4-.4-.9-.4-1.3v-.1c0-.1 0 0 0 0v-9.1h2.7z\"\r\n            />\r\n            <g transform=\"translate(77.17 67.411)\">\r\n                <path\r\n                    className=\"ncl__st1\"\r\n                    d=\"M13.9 9.2c0-3.2-1.8-4.9-4.4-4.9C6.8 4.3 5 6 5 9.2v11H0V.3h5v2.5C6.5 1 8.7-.1 11 0c4.7 0 8 3 8 8.5v11.7h-5v-11h-.1z\"\r\n                />\r\n            </g>\r\n            <g transform=\"translate(97.436 67.412)\">\r\n                <path\r\n                    className=\"ncl__st1\"\r\n                    d=\"M9.1 0c2.6-.1 5 1.1 6.6 3.2V.3h5.1v19.9h-5.1v-2.9c-1.5 2.1-4 3.3-6.6 3.2-5 0-9-4.1-9-10.3S4 0 9.1 0zm1.3 4.4c-2.7 0-5.2 2-5.2 5.8s2.5 5.9 5.2 5.9c2.8 0 5.3-2.1 5.3-5.8s-2.6-5.9-5.3-5.9z\"\r\n                />\r\n            </g>\r\n            <g transform=\"translate(119.444 59.79)\">\r\n                <path\r\n                    className=\"ncl__st1\"\r\n                    d=\"M5.1 8v-.8c0-2.2.8-3 3.3-2.9h.2V0h-.4C2.7-.1 0 2.1 0 7v20.8h5.1V12.1h3.5V8H5.1z\"\r\n                />\r\n            </g>\r\n        </g>\r\n    </svg>\r\n);\r\n\r\nexport default NafConnectLogo;\r\n","export enum FeatureFlags {\r\n    DisplayMaintenancePage = 'DisplayMaintenancePage',\r\n    ShowGoogleButton = 'ShowGoogleButton',\r\n    ShowLinkedinButton = 'ShowLinkedinButton',\r\n    ShowFacebookButton = 'ShowFacebookButton',\r\n    ShowCoBorrower = 'ShowCoBorrower',\r\n    NAFConnectTour = 'NAFConnectTour',\r\n    CompliancePreferences = 'CompliancePreferences',\r\n    BuilderRegistration = 'BuilderRegistration',\r\n}\r\n","import { getRealEstateAgentAccountType } from 'app/services';\r\nimport ReactGA from 'react-ga4';\r\nimport { TEST_GA_MEASUREMENT_ID } from './settings.helper';\r\n\r\nexport const googleAnalyticsEvent = (category: string, action: string, label: string): void => {\r\n    const accountType = getRealEstateAgentAccountType();\r\n\r\n    if (accountType === 1) {\r\n        ReactGA.gtag('event', action, {\r\n            send_to: TEST_GA_MEASUREMENT_ID,\r\n            event_category: category,\r\n            event_action: action,\r\n            event_label: label,\r\n        });\r\n    } else {\r\n        ReactGA.event({\r\n            category,\r\n            action,\r\n            label,\r\n        });\r\n    }\r\n};\r\n\r\nexport const handleGoogleAnalyticsEvent = (e: string): void => {\r\n    googleAnalyticsEvent(e, `${e} event`, e);\r\n};\r\n","import { pxToRem } from 'app/shared/helpers';\r\n\r\nimport { createTheme } from '@mui/material';\r\n\r\nexport default createTheme({\r\n    components: {\r\n        MuiFormControlLabel: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(14),\r\n                    color: '#333333',\r\n                    alignItems: 'flex-start',\r\n                    marginRight: 0,\r\n                },\r\n            },\r\n        },\r\n        MuiTypography: {\r\n            styleOverrides: {\r\n                root: {\r\n                    display: 'flex',\r\n                    fontSize: pxToRem(16),\r\n                    justifyContent: 'flex-start',\r\n                },\r\n            },\r\n        },\r\n        MuiSvgIcon: {\r\n            styleOverrides: {\r\n                root: {\r\n                    fontSize: pxToRem(18),\r\n                    fontWeight: 600,\r\n                    lineHeight: pxToRem(2),\r\n                },\r\n            },\r\n        },\r\n    },\r\n});\r\n"],"names":["CookieConsent","iconTheme","showBanner","handleCookie","useCookieConsent","cookieName","setShowBanner","useState","useEffect","checkCookie","setCookie","name","value","exdays","d","Date","setTime","getTime","expires","concat","toUTCString","document","cookie","getCookie","cookieArray","split","cookieArrayLength","length","i","replace","indexOf","substring","createTheme","components","MuiSvgIcon","styleOverrides","root","backgroundColor","borderRadius","color","padding","pxToRem","fontSize","fontWeight","_jsxs","className","styles","children","_jsx","href","target","rel","ThemeProvider","theme","IconButton","sx","onClick","CloseIcon","props","xmlns","xmlSpace","viewBox","style","fill","id","x","y","Maintenance","maintenance","maintenance__headerContainer","maintenance__headerWrapper","maintenance__header","maintenance__nafLogo","NafConnectLogo","maintenance__subText","maintenance__bottom","maintenance__body","maintenance__bodyText","maintenance__filler","mobile__footer","mobile__footerSupport","supportPhone","mobile__footerBar","maintenance__footer","maintenance__footerAccessibility","maintenance__footerInfo","EqualHousingOpportunityIcon","width","maintenance__footerCopyright","maintenance__footerLinks","fillRule","clipRule","Content","features","useFeatureData","env","useContext","EnvContext","BLOB_STORAGE_URL","key","title","description","image","alt","isMobile","isDesktop","useMuiMediaQuery","setIsRegistrationModalOpen","useLandingPage","notificationsLogo","useNafConnectImages","isMarketingModalOpen","toggleMarketingModal","hash","useLocation","element","getElementById","scrollIntoView","behavior","content","introduction__content","Heading","introduction__contentHeader","as","HeadingSize","h3","size","FontWeight","semiBold","introduction__contentBody","introduction__info","CustomButton","introduction__getStarted","type","variant","MuiButtonType","contained","colorTheme","MuiColorType","secondary","introduction__videoImg","LargePlayIcon","introduction__playButton","googleAnalyticsEvent","bold","features__heading","features__contentContainer","features__content","map","feature","features__card","features__img","src","h4","features__title","features__description","notifications","notifications__copy","notifications__title","notifications__text","notifications__img","AppModal","open","handleClose","introduction__marketingVideo","allow","allowFullScreen","FooterLandingPage","nafConnectLogoLight","footer","footer__content","footer__section","footer__logo","footer__companyInfo","companyAddress","supportEmail","footer__social","RiFacebookFill","footer__icon","role","TwitterIcon","InstagramIcon","RiLinkedinFill","footer__phone","customerCarePhone","footer__legal","footer__trademark","copyrightText","footer__legalLinks","termsUrl","footer__legalLink","privacyUrl","ForgotPasswordForm","_errors$emailAddress","statusForgotPassword","useAppSelector","statusForgotPasswordSelector","onForgotPasswordSubmit","schema","Yup","shape","emailAddress","required","email","matches","emailRegExp","register","reset","handleSubmit","formState","errors","isValid","isSubmitted","useForm","mode","criteriaMode","reValidateMode","resolver","yupResolver","abortEarly","isSubmitting","isStatusPending","CustomTextField","inputLabel","placeholder","fullWidth","errorType","errorMessage","message","CustomLoadingButton","disabled","loading","logInFormSchema","username","password","min","useFeatureFlag","data","showGoogleButton","useGetFeatureFlagQuery","FeatureFlags","ShowGoogleButton","showLinkedinButton","ShowLinkedinButton","showFacebookButton","ShowFacebookButton","LocalStorageKey","SocialSignOn","headerText","onTokenLogin","onTokenRegister","GOOGLE_CLIENT_ID","googleScope","linkedinAuthUrl","linkedinConfig","useSocialSignOn","isBuilderRegistrationEnabled","BuilderRegistration","client","setClient","queryParameters","useSearchParams","layout","useWhichLayout","pdmParam","localStorageHelper","get","setReaSource","useLocalStorage","undefined","setLoReferralGuid","google","accounts","oauth2","initTokenClient","client_id","scope","callback","loginWithGoogle","response","request","tokenCode","access_token","provider","checkVerificationCode","partnerDevelopmentManager","reaSourceParam","loReferralGuid","reaSource","loanOfficerId","sessionStorage","setItem","_Fragment","h6","medium","SocialSignOnButton","requestAccessToken","icon","FcGoogle","ResponsiveLayout","Mobile","onLinkedinClick","window","location","state","clientId","redirectUrl","FaLinkedin","loginWithFacebook","fbRequestToken","FB","getLoginStatus","status","login","authResponse","accessToken","auth_type","return_scopes","FaFacebook","FaCircleInfo","Color","nafSecondaryBlue","defaultProps","VerifyCodeTerms","_ref","firstText","secondText","providerText","setProviderText","text","formatProviderText","allProviders","show","filter","slice","join","terms","terms__link","privacy","partners","partnerUrl","phone","terms__text","LogInForm","_errors$username","_errors$password","defaultUsername","onForgotPasswordClick","onLogin","loginErrorText","resetPasswordEmail","statusLogIn","AuthSelector","loginDetails","agentEmailAddress","setValue","trigger","Typography","WarningIcon","onSubmit","async","event","preventDefault","emailElement","passwordElement","formData","Stack","spacing","defaultValue","CustomPasswordTextField","VerifyCodeInstructions","resendCode","phoneNumber","twoFactorVerified","twoFactorVerifiedSelector","userPhoneNumberSelector","container","instructions","instructions__error","instructions__text","resendCode__link","instructions__resend","instructions__resendBtn","VerifyCodeForm","isLoginForm","userData","prevStep","onFormSubmit","inputRefs","Array","useRef","inputValues","setInputValues","resentCode","setResentCode","dispatch","useAppDispatch","statusVerifyCode","statusVerifyCodeSelector","statusRegister","statusRegisterSelector","statusLogin","statusLoginSelector","_inputRefs$0$current","current","focus","handlePaste","e","paste","clipboardData","getData","newValues","currentPosition","requestAnimationFrame","lastPastedIndex","currentInput","setSelectionRange","isFormFilled","every","input","buttonName","resendCode__contact","SendCodeAsync","code__container","_","code__input","code__inputError","ref","maxLength","onChange","handleInputChange","position","sanitizedValue","_inputRefs$current","values","_inputRefs$current2","onPaste","onKeyDown","handleKeyDown","updatedValues","newPosition","_inputRefs$newPositio","_inputRefs$position$c","pattern","actions__container","handleSignIn","verificationCode","LoginAsync","code","VerifyCodeAsync","schemaUserDetails","firstName","lastName","phoneRegExp","realEstateNumber","userState","numberRegExp","symbolsRegExp","confirmPassword","oneOf","UserDetailsForm","_errors$firstName","_errors$lastName","_errors$phoneNumber","_errors$realEstateNum","_errors$password2","_errors$password3","_errors$confirmPasswo","control","nextStep","userEmailAddress","setUseremailAddress","setIsLoginModalOpen","isValidEmailAddress","setIsValidEmailAddress","setIsReaRegistrationModalOpen","validateEmailAddress","useValidateEmailAddressMutation","handleEmailChange","then","valid","debouncedChangeHandler","useMemo","debounce","partnerType","SystemPartyRoleType","RealEstateAgent_Buyers","unwrap","res","cancel","requiredInput","CustomPhoneInput","StateSelectField","sortBy","display","displayAllErrors","types","PasswordRules","RegistrationForm","step","controlUserDetails","registerUserDetails","handleSubmitUser","errorsUserDetails","isValidUserDetails","useRegistrationForm","setStep","prefilledRegistrationDetails","existenceCheckData","existenceCheckDataSelector","agentFirstName","agentLastName","agentPhoneNumber","agentStateCode","getValues","getUserDetailsValues","watch","defaultValues","isCodeValid","verificationCodeId","twoFactorVerificationCodeSelector","useCallback","sendCodeRequest","existenceCheckRequest","licenseNumber","stateLicensed","cellPhone","ExistenceCheckAsync","_existenceCheckData$c","_existenceCheckData$c2","_existenceCheckData$c3","_existenceCheckData$c4","_existenceCheckData$c5","_prefilledRegistratio","userDetailsForm","registerAsTester","envPrefix","registerForm","company","companyName","companyCity","companyState","companyZipCode","accountType","nafHomesId","referralPartnerId","RegisterAsync","numberOfSteps","registration__form","registration__verification","RegistrationRolePicker","setIsBuilderRegistrationModalOpen","onOpenRegistrationModal","setModalOpen","builderRegistrationSchema","emailValidationSchema","_errors$company","_errors$companyAddres","_errors$companyCity","_errors$companyZipCod","setUserEmailAddress","Builder","builderRegistration","invalidEmail","invalidEmail__text","invalidEmail__btn","builderRegistration__form","builderRegistration__name","builderRegistration__location","builderRegistration__tos","builderRegistration__btns","builderRegistration__backBtn","_ref2","_ref3","_ref4","_ref5","builderDetails","BuilderRegistrationForm","Registration","isRegistrationModalOpen","isReaRegistrationModalOpen","isBuilderRegistrationModalOpen","showBuilderRegistration","RegisterWithToken","onRegistrationClose","shouldOpenModal","heading","HeaderLandingPage","isLoginModalOpen","logo","logInModalChild","defaultLoginEmail","onForgotPasswordReturnClick","resetLoginModal","setModalHeading","useHeader","setLoginModalChild","HeaderModalChild","LogIn","setDefaultLoginEmail","AsyncRequestStatus","Fulfilled","ForgotPasswordSuccess","ForgotPassword","ForgotPasswordAsync","setUserData","resetIstwoFactorVerified","onLoginModalToggle","setLoginErrorText","header","header__content","header__logo","header__links","header__link","header__actions","header__btn","outlined","textTransform","TextTransformType","uppercase","onRegistrationModalToggle","header__loginModal","LoginWithTokenAsync","disclaimer","disclaimer__text","disclaimer__btnGroup","onStepTwoSendCode","header__resetPassword","header__resetPassword_text","Hero","devicesHeroImg","devicesHeroImgSm","muted","autoPlay","loop","h1","classnames","LandingPage","setRedirectUrl","useActions","navigate","useNavigate","isLoginSuccessful","isRegistrationSuccessful","bypassKey","displayMaintenance","isLoading","isLoadingMaintenance","DisplayMaintenancePage","loginWithTokenStatus","statusLogInWithTokenSelector","registerWithTokenStatus","statusRegisterWithTokenSelector","arm","set","pathname","linkedinAuthCode","GetAnnouncementsAsync","shouldPromptInstallPWA","beforeInstallPromptEvent","setShouldPromptInstallPWA","setDeclinedInstallPWA","useInstallPWA","setBeforeInstallPromptEvent","handleShouldPromptInstallPWA","isAndroid","cleanup","handleBeforeInstallPromptEvent","addEventListener","removeEventListener","CustomCircularProgress","isLoggingInWithSSO","Pending","FixedPositionContainer","Announcements","prompt","tabIndex","NCMultilineIcon","stopPropagation","paddingRight","FullPageCircularProgress","Overlay","styled","top","left","height","zIndex","justifyContent","alignItems","white","CircularProgress","transform","category","action","label","getRealEstateAgentAccountType","ReactGA","gtag","send_to","TEST_GA_MEASUREMENT_ID","event_category","event_action","event_label","handleGoogleAnalyticsEvent","MuiFormControlLabel","marginRight","MuiTypography","lineHeight"],"sourceRoot":""}