{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;AACuD;AACN;AAC+D;;;AAEhH,MAAMG,MAAM,GAAW,CACrB;EACEC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAEA,CAAA,KACZ,4HAAoC,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,UAAU,CAAC;EAC9DC,IAAI,EAAER,0DAAK,CAACS,IAAI,CAACC;CAClB,EACD;EACEP,WAAW,EAAE,EAAE;EACfC,YAAY,EAAEA,CAAA,KACZ,qUAA4C,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACK,cAAc,CAAC;EAC1EH,IAAI,EAAER,0DAAK,CAACY,QAAQ,CAACF;CACtB,EACD;EACEP,WAAW,EAAE,EAAE;EACfC,YAAY,EAAEA,CAAA,KACZ,6TAAwC,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACO,YAAY,CAAC;EACpEL,IAAI,EAAE,UAAU;EAChBM,IAAI,EAAE;IAAEC,KAAK,EAAE;EAAU;CAC1B,EACD;EACEP,IAAI,EAAER,0DAAK,CAACgB,QAAQ;EACpBC,SAAS,EAAEhB,yHAAyBA;CACrC,CACF;AAMK,MAAOiB,gBAAgB;EAAA,QAAAC,CAAA;qBAAhBD,gBAAgB;EAAA;EAAA,QAAAE,EAAA;UAAhBF;EAAgB;EAAA,QAAAG,EAAA;cAHjBtB,yDAAY,CAACuB,OAAO,CAACpB,MAAM,EAAE;MAAEqB,aAAa,EAAE;IAAI,CAAE,CAAE,EACtDxB,yDAAY;EAAA;;;sHAEXmB,gBAAgB;IAAAM,OAAA,GAAAC,yDAAA;IAAAC,OAAA,GAFjB3B,yDAAY;EAAA;AAAA;;;;;;;;;;;;;;;;;;;AC1BlB,MAAO4B,YAAY;EALzBC,YAAA;IAME,KAAAC,KAAK,GAAG,QAAQ;;EACjB,QAAAV,CAAA;qBAFYQ,YAAY;EAAA;EAAA,QAAAP,EAAA;UAAZO,YAAY;IAAAG,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,QAAA,WAAAC,sBAAAC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCPzBE,uDAAA,oBAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACC2B;AACF;AACT;AACS;AACR;AACJ;AACmC;;AAiBzE,MAAOM,SAAS;EAAA,QAAAxB,CAAA;qBAATwB,SAAS;EAAA;EAAA,QAAAvB,EAAA;UAATuB,SAAS;IAAAC,SAAA,GAFRjB,wDAAY;EAAA;EAAA,QAAAN,EAAA;eADb,CAACoB,sDAAa,CAAC;IAAAjB,OAAA,GANxBe,oEAAa,EACbrB,iEAAgB,EAChBX,iEAAU,EACViC,yDAAU,EACVE,yFAAuB;EAAA;;;sHAKdC,SAAS;IAAAE,YAAA,GAZlBlB,wDAAY;IAAAH,OAAA,GAGZe,oEAAa,EACbrB,iEAAgB,EAChBX,iEAAU,EACViC,yDAAU,EACVE,yFAAuB;EAAA;AAAA;;;;;;;;;;;;;;;;;;ACnBoB;AACS;;AAQlD,MAAOF,UAAU;EAAA,QAAArB,CAAA;qBAAVqB,UAAU;EAAA;EAAA,QAAApB,EAAA;UAAVoB;EAAU;EAAA,QAAAnB,EAAA;cAHXyB,yDAAY,EAAEC,kEAAgB;EAAA;;;sHAG7BP,UAAU;IAAAhB,OAAA,GAHXsB,yDAAY,EAAEC,kEAAgB;EAAA;AAAA;;;;;;;;;;;;;;;;;;;ACLA;AAC+B;AACd;;;AAKrD,MAAOI,UAAU;EAerB;;;EAGAvB,YACSwB,IAAgB;IAAhB,KAAAA,IAAI,GAAJA,IAAI;IAjBL,KAAAC,OAAO,GAAG,IAAIL,yCAAO,EAAW;IAOxC;;;;IAIO,KAAAM,WAAW,GAAG,IAAIL,6DAAW,EAAE;IAQpC,IAAI,CAACM,MAAM,GAAGL,qEAAW,CAACK,MAAM;IAChC,IAAI,CAACC,iBAAiB,EAAE;EAC1B;EAEA;;;;EAIOA,iBAAiBA,CAAA;IACtB,IAAI,CAACF,WAAW,GAAG,IAAI,CAACA,WAAW,CAChCG,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CACvCA,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;EAEtC;EAEA;;;EAGOC,UAAUA,CAAA;IACf,OAAO,IAAI,CAACJ,WAAW;EACzB;EAEA;;;;;;;EAOOK,SAASA,CAACC,UAAkB,EAAEC,WAA8B;IACjE,IAAI,CAACP,WAAW,GAAG,IAAI,CAACA,WAAW,CAACG,GAAG,CAACG,UAAU,EAAEC,WAAW,CAAC;EAClE;EAEA;;;;;;EAMOC,YAAYA,CAACF,UAAkB;IACpC,IAAI,IAAI,CAACN,WAAW,CAACS,GAAG,CAACH,UAAU,CAAC,EAAE;MACpC,IAAI,CAACN,WAAW,GAAG,IAAI,CAACA,WAAW,CAACU,MAAM,CAACJ,UAAU,CAAC;KACvD,MAAM;MACLK,OAAO,CAACC,IAAI,CAAC,+CAA+C,CAAC;;EAEjE;EAkBOC,GAAGA,CAAWC,GAAW,EAAEC,MAAmB;IACnD,MAAMC,IAAI,GAAG;MACXC,OAAO,EAAE,IAAI,CAACjB,WAAW;MACzBe,MAAM,EAAGA,MAAM,GAAGA,MAAM,GAAG;KAC5B;IACD,IAAIA,MAAM,EAAE;MACVC,IAAI,CAACD,MAAM,GAAGA,MAAM;;IAGtB,OAAO,IAAI,CAACjB,IAAI,CAACe,GAAG,CAAI,IAAI,CAACZ,MAAM,GAAGa,GAAG,EAAEE,IAAI,CAAC,CAACE,IAAI,EAAE;EACzD;EAkBOC,IAAIA,CAAWL,GAAW,EAAEM,IAAc;IAC/C,IAAIC,QAAQ,GAAGD,IAAI;IACnB,MAAMJ,IAAI,GAAG;MACXC,OAAO,EAAE,IAAI,CAACjB;KACf;IAED,IAAI,CAACqB,QAAQ,EAAE;MACbA,QAAQ,GAAG,EAAE;;IAGf,OAAO,IAAI,CAACvB,IAAI,CAACqB,IAAI,CAAI,IAAI,CAAClB,MAAM,GAAGa,GAAG,EAAEO,QAAQ,EAAEL,IAAI,CAAC,CAACE,IAAI,EAAE;EACpE;EAkBOI,GAAGA,CAAWR,GAAW,EAAEM,IAAc;IAC9C,IAAIG,OAAO,GAAGH,IAAI;IAClB,MAAMJ,IAAI,GAAG;MACXC,OAAO,EAAE,IAAI,CAACjB;KACf;IAED,IAAI,CAACuB,OAAO,EAAE;MACZA,OAAO,GAAG,EAAE;;IAGd,OAAO,IAAI,CAACzB,IAAI,CAACwB,GAAG,CAAI,IAAI,CAACrB,MAAM,GAAGa,GAAG,EAAES,OAAO,EAAEP,IAAI,CAAC,CAACE,IAAI,EAAE;EAClE;EAgBOR,MAAMA,CAAWI,GAAW;IACjC,MAAME,IAAI,GAAG;MACXC,OAAO,EAAE,IAAI,CAACjB;KACf;IAED,OAAO,IAAI,CAACF,IAAI,CAACY,MAAM,CAAI,IAAI,CAACT,MAAM,GAAGa,GAAG,EAAEE,IAAI,CAAC,CAACE,IAAI,EAAE;EAC5D;EAEAM,YAAYA,CAAA;IACV,OAAO,IAAI,CAACzB,OAAO,CAAC0B,YAAY,EAAE;EACpC;EAAC,QAAA5D,CAAA;qBAlLUgC,UAAU,EAAAd,sDAAA,CAAAZ,4DAAA;EAAA;EAAA,QAAAL,EAAA;WAAV+B,UAAU;IAAA+B,OAAA,EAAV/B,UAAU,CAAAgC,IAAA;IAAAC,UAAA,EAFT;EAAM;;;;;;;;;;;;;;;;;;;;;ACL8B;;;;AAQ5C,MAAOE,cAAc;EAMzB1D,YACUwB,IAAgB,EAChBmC,aAA4B;IAD5B,KAAAnC,IAAI,GAAJA,IAAI;IACJ,KAAAmC,aAAa,GAAbA,aAAa;IAPf,KAAAC,YAAY,GAAG,gBAAgB;IAC/B,KAAAC,iBAAiB,GAAG,UAAU;IAC9B,KAAAC,kBAAkB,GAAG,iBAAiB;IACtC,KAAAC,aAAa,GAAG,YAAY;EAKhC;EAEJ;;;;;;EAMOC,gBAAgBA,CAACC,KAAc,EAAEC,UAAqB;IAC3D,IAAIzB,MAAM,GAAG,IAAIgB,4DAAU,EAAE;IAC7B,IAAIQ,KAAK,EAAExB,MAAM,GAAGA,MAAM,CAAC0B,MAAM,CAAC,UAAU,EAAEF,KAAK,CAAC;IACpD,IAAIC,UAAU,EAAE;MACdA,UAAU,CAACE,OAAO,CAACC,IAAI,IAAG;QACxB5B,MAAM,CAAC0B,MAAM,CAAC,YAAY,EAAEE,IAAI,CAAC;MACnC,CAAC,CAAC;;IAEJ,OAAO,IAAI,CAAC7C,IAAI,CAACe,GAAG,CAAC,SAAS,EAAEE,MAAM,CAAC;EACzC;EAEA;;;;;;;;EAQO6B,wBAAwBA,CAC7BL,KAAa,EAAEM,QAAgB,EAC/BC,aAA4B,EAC5BN,UAAoC;IAEpC,MAAMpB,IAAI,GAAG;MACXmB,KAAK;MAAEM,QAAQ;MACfC,aAAa;MACb,GAAGN;KACJ;IAED,OAAO,IAAI,CAAC1C,IAAI,CAACqB,IAAI,CAAC,eAAe,EAAEC,IAAI,CAAC;EAC9C;EAEA;;;;;;EAMO2B,mBAAmBA,CACxBR,KAAa,EAAEM,QAAgB,EAC/BL,UAAsC;IAEtC,MAAMpB,IAAI,GAAG;MACXmB,KAAK;MAAEM,QAAQ;MACf,GAAGL;KACJ;IAED,OAAO,IAAI,CAAC1C,IAAI,CAACqB,IAAI,CAAC,gBAAgB,EAAEC,IAAI,CAAC;EAC/C;EAEA;;;;;EAKO4B,kBAAkBA,CAACT,KAAa,EAAEU,gBAAwB;IAC/D,MAAM7B,IAAI,GAAG;MACXmB,KAAK;MACLU;KACD;IACD,OAAO,IAAI,CAACnD,IAAI,CAACqB,IAAI,CAAC,iBAAiB,EAAEC,IAAI,CAAC;EAChD;EAEA;;;;EAIO8B,0BAA0BA,CAACX,KAAa;IAC7C,MAAMxB,MAAM,GAAG,IAAIgB,4DAAU,EAAE,CAAC5B,GAAG,CAAC,GAAG,EAAEoC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACzC,IAAI,CAACe,GAAG,CAAC,iBAAiB,EAAEE,MAAM,CAAC;EACjD;EAEA;;;;EAIOoC,mBAAmBA,CAACZ,KAAa;IACtC,MAAMxB,MAAM,GAAG,IAAIgB,4DAAU,EAAE,CAAC5B,GAAG,CAAC,GAAG,EAAEoC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACzC,IAAI,CAACe,GAAG,CAAC,kBAAkB,EAAEE,MAAM,CAAC;EAClD;EAEA;;;;;;;EAOOqC,sBAAsBA,CAC3Bb,KAAa,EAAEc,IAAY,EAC3BJ,gBAAwB;IAExB,MAAM7B,IAAI,GAAG;MACXmB,KAAK;MACLc,IAAI;MACJJ;KACD;IACD,OAAO,IAAI,CAACnD,IAAI,CAACwB,GAAG,CAAC,kBAAkB,EAAEF,IAAI,CAAC;EAChD;EAEA;;;;;EAKOkC,iBAAiBA,CAACf,KAAa,EAAEM,QAAgB;IACtD,MAAMzB,IAAI,GAAG;MACXmB,KAAK;MACLM;KACD;IACD,OAAO,IAAI,CAAC/C,IAAI,CAACqB,IAAI,CAAsB,gBAAgB,EAAEC,IAAI,CAAC;EACpE;EAEA;;;EAGQmC,eAAeA,CAAA;IACrB,OAAO,IAAI,CAACtB,aAAa,CAACpB,GAAG,CAAC,IAAI,CAACuB,kBAAkB,CAAC;EACxD;EAEA;;;EAGOoB,kBAAkBA,CAAA;IACvB,MAAMC,YAAY,GAAG,IAAI,CAACF,eAAe,EAAE;IAC3C,MAAMnC,IAAI,GAAG;MACXqC;KACD;IAED,OAAO,IAAI,CAAC3D,IAAI,CAACqB,IAAI,CAAC,eAAe,EAAEC,IAAI,CAAC;EAC9C;EAEA;;;;EAIOsC,iBAAiBA,CAAA;IACtB,OAAO,IAAI,CAAC5D,IAAI,CAACe,GAAG,CAAC,oBAAoB,CAAC;EAC5C;EAEA;;;;EAIO8C,oBAAoBA,CAACnB,UAAe;IACzC,MAAMpB,IAAI,GAAG;MACX,GAAGoB;KACJ;IAED,OAAO,IAAI,CAAC1C,IAAI,CAACwB,GAAG,CAAC,oBAAoB,EAAEF,IAAI,CAAC;EAClD;EAEA;;;;;;EAMOwC,iBAAiBA,CAACC,WAAmB,EAAEC,gBAAwB;IACpE,MAAM1C,IAAI,GAAG;MACXyC,WAAW;MACXC;KACD;IAED,OAAO,IAAI,CAAChE,IAAI,CAACqB,IAAI,CAAC,kBAAkB,EAAEC,IAAI,CAAC;EACjD;EAEA;;;EAGO2C,kBAAkBA,CAAA;IACvB,OAAO,IAAI,CAACjE,IAAI,CAACe,GAAG,CAAC,iBAAiB,CAAC;EACzC;EAEA;;;;EAIOmD,eAAeA,CAACC,SAAkB;IACvC,IAAIC,KAAa;IACjB,IAAID,SAAS,IAAI,IAAI,EAAE;MACrBC,KAAK,GAAG,IAAI,CAACjC,aAAa,CAACpB,GAAG,CAAC,IAAI,CAACwB,aAAa,CAAC;KACnD,MAAM;MACL6B,KAAK,GAAG,IAAI,CAACjC,aAAa,CAACpB,GAAG,CAAC,IAAI,CAACsB,iBAAiB,CAAC;;IAGxD,IAAI+B,KAAK,EAAE;MACT;MACA,IAAI,CAACpE,IAAI,CAACO,SAAS,CAAC,eAAe,EAAE,SAAS,GAAG6D,KAAK,CAAC;;EAE3D;EAEA;;;;EAIQC,cAAcA,CAACC,QAA6B;IAClD,MAAMC,WAAW,GAAGD,QAAQ,CAACE,WAAW;IACxC,MAAMb,YAAY,GAAGW,QAAQ,CAACG,YAAY;IAC1C,MAAMC,OAAO,GAAGJ,QAAQ,CAACK,OAAO;IAChC,MAAMC,SAAS,GAAG,IAAIC,IAAI,EAAE;IAC5BD,SAAS,CAACE,UAAU,CAACF,SAAS,CAACG,UAAU,EAAE,GAAGT,QAAQ,CAACU,SAAS,CAAC;IAEjE,IAAI,CAAC7C,aAAa,CAAC9B,GAAG,CAAC,IAAI,CAACgC,iBAAiB,EAAEkC,WAAW,EAAEK,SAAS,EAAE,GAAG,EAAE,IAAI,CAACxC,YAAY,CAAC;IAC9F,IAAI,CAACD,aAAa,CAAC9B,GAAG,CAAC,IAAI,CAACiC,kBAAkB,EAAEqB,YAAsB,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAACvB,YAAY,CAAC;IACnG,IAAI,CAACD,aAAa,CAAC9B,GAAG,CAAC,IAAI,CAACkC,aAAa,EAAEmC,OAAO,EAAEE,SAAS,EAAE,GAAG,EAAE,IAAI,CAACxC,YAAY,CAAC;IAEtF;IACA,IAAI,CAACpC,IAAI,CAACO,SAAS,CAAC,eAAe,EAAE,SAAS,GAAGgE,WAAW,CAAC;EAC/D;EAEA;;;EAGQU,mBAAmBA,CAAA;IACzB,IAAI,CAAC9C,aAAa,CAACvB,MAAM,CAAC,IAAI,CAACyB,iBAAiB,CAAC;IACjD,IAAI,CAACF,aAAa,CAACvB,MAAM,CAAC,IAAI,CAAC0B,kBAAkB,CAAC;IAClD,IAAI,CAACH,aAAa,CAACvB,MAAM,CAAC,IAAI,CAAC2B,aAAa,CAAC;EAC/C;EAAC,QAAAxE,CAAA;qBA5OUmE,cAAc,EAAAjD,sDAAA,CAAAZ,oDAAA,GAAAY,sDAAA,CAAAiG,sDAAA;EAAA;EAAA,QAAAlH,EAAA;WAAdkE,cAAc;IAAAJ,OAAA,EAAdI,cAAc,CAAAH,IAAA;IAAAC,UAAA,EAFb;EAAM;;;;;;;;;;;;;;;;;;;;;;;;ACN8B;AAGA;;;;;;AAO5C,MAAOoD,WAAW;EAYtB5G,YACSwB,IAAgB,EAChBmC,aAA4B,EAC5BkD,MAAc,EACdC,SAA4B;IAH5B,KAAAtF,IAAI,GAAJA,IAAI;IACJ,KAAAmC,aAAa,GAAbA,aAAa;IACb,KAAAkD,MAAM,GAANA,MAAM;IACN,KAAAC,SAAS,GAATA,SAAS;IAdX,KAAAC,IAAI,GAAQ,IAAI;IAEhB,KAAAC,SAAS,GAAY,KAAK;IAC1B,KAAAC,OAAO,GAAW,EAAE;IAEnB,KAAAC,eAAe,GAAW,EAAE;IAC7B,KAAAC,SAAS,GAAW,EAAE;IACrB,KAAAC,mBAAmB,GAAG,IAAIT,iDAAe,CAAC,IAAI,CAAC;IAC/C,KAAAU,kBAAkB,GAAG,IAAIV,iDAAe,CAAC,IAAI,CAAC;IAQpD,IAAI,CAACW,eAAe,GAAG,EAAE;IACzB,IAAI,CAACC,QAAQ,EAAE;EACjB;EAEOC,UAAUA,CAAA;IACf,OAAO,IAAI,CAACP,OAAO;EACrB;EAEOQ,WAAWA,CAAA;IAChB,OAAO,IAAI,CAACC,QAAQ;EACtB;EAEOC,YAAYA,CAAA;IACjB,OAAO,IAAI,CAACR,SAAS;EACvB;EAEOS,UAAUA,CAAA;IACfC,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAG,gDAAgD;EACzE;EAEOC,kBAAkBA,CAACC,GAAW;IACnC,IAAI,CAACX,eAAe,GAAGW,GAAG;EAC5B;EAEOC,kBAAkBA,CAAA;IACvB,OAAO,IAAI,CAACZ,eAAe;EAC7B;EAEOa,kBAAkBA,CAACF,GAAW;IACnC,IAAI,CAACf,eAAe,GAAGe,GAAG;EAC5B;EAEOG,kBAAkBA,CAAA;IACvB,OAAO,IAAI,CAAClB,eAAe;EAC7B;EAEOmB,YAAYA,CAAA;IACjB,OAAO,IAAI,CAAC1E,aAAa,CAACpB,GAAG,CAAC,WAAW,CAAC;EAC5C;EAEO+F,sBAAsBA,CAAA;IAC3B,OAAO,IAAI,CAAClB,mBAAmB;EACjC;EAEOmB,qBAAqBA,CAAA;IAC1B,OAAO,IAAI,CAAClB,kBAAkB;EAChC;EAEA;;;;;EAKOmB,KAAKA,CAACvE,KAAa,EAAEM,QAAgB;IAC1C;IACA,IAAIkE,iBAAiB,GAAGlE,QAAQ;IAEhC,MAAMzB,IAAI,GAAG;MAAEmB,KAAK;MAAEM,QAAQ,EAAEkE;IAAiB,CAAE;IAEnD,OAAO,IAAI,CAACjH,IAAI,CAACqB,IAAI,CAAS,gBAAgB,EAAEC,IAAI,CAAC;EACvD;EAGA;;;;EAIO4F,OAAOA,CAAC3B,IAAS;IACtB,IAAI,CAACA,IAAI,GAAGA,IAAI,CAAC4B,OAAO,CAACC,QAAQ;IAEjC;IACA,MAAMD,OAAO,GAAG5B,IAAI,CAAC4B,OAAO,CAACC,QAAQ;IACrC,MAAMhD,KAAK,GAAGmB,IAAI,CAACnB,KAAK;IACxB,MAAMT,YAAY,GAAG4B,IAAI,CAAC5B,YAAY;IACtC,MAAM0D,SAAS,GAAG9B,IAAI,CAAC4B,OAAO,CAACG,SAAS;IAExC,IAAI,CAACnF,aAAa,CAAC9B,GAAG,CAAC,WAAW,EAAEgH,SAAS,EAAEE,SAAS,EAAE,GAAG,CAAC;IAC9D,IAAI,CAACpF,aAAa,CAAC9B,GAAG,CAAC,SAAS,EAAE8G,OAAO,EAAEI,SAAS,EAAE,GAAG,CAAC;IAC1D,IAAI,CAACpF,aAAa,CAAC9B,GAAG,CAAC,OAAO,EAAE+D,KAAK,EAAEmD,SAAS,EAAE,GAAG,CAAC;IACtD,IAAI,CAACpF,aAAa,CAAC9B,GAAG,CAAC,cAAc,EAAEsD,YAAY,EAAE4D,SAAS,EAAE,GAAG,CAAC;IAEpE;IACA,IAAI,CAACvH,IAAI,CAACO,SAAS,CAAC,eAAe,EAAE,SAAS,GAAGgF,IAAI,CAACnB,KAAK,CAAC;EAC9D;EAGA;;;EAGO2B,QAAQA,CAAA;IACb;IACA,MAAMsB,SAAS,GAAG,IAAI,CAAClF,aAAa,CAACpB,GAAG,CAAC,WAAW,CAAC;IACrD,MAAMoG,OAAO,GAAG,IAAI,CAAChF,aAAa,CAACpB,GAAG,CAAC,SAAS,CAAC;IACjD,MAAMqD,KAAK,GAAG,IAAI,CAACjC,aAAa,CAACpB,GAAG,CAAC,OAAO,CAAC;IAC7C,MAAM4C,YAAY,GAAG,IAAI,CAACxB,aAAa,CAACpB,GAAG,CAAC,cAAc,CAAC;IAE3D,IAAIsG,SAAS,IAAIF,OAAO,IAAI/C,KAAK,IAAIT,YAAY,EAAE;MACjD,IAAI,CAAC4B,IAAI,GAAG4B,OAAO;MAEnB;MACA,IAAI,CAACnH,IAAI,CAACO,SAAS,CAAC,eAAe,EAAE,SAAS,GAAG6D,KAAK,CAAC;;EAE3D;EAGA;;;EAGOoD,UAAUA,CAAA;IACf,IAAI,IAAI,CAACjC,IAAI,EAAE;MACb,OAAO,IAAI;;IAGb,OAAO,KAAK;EACd;EAGO9B,eAAeA,CAAA;IACpB,OAAO,IAAI,CAACtB,aAAa,CAACpB,GAAG,CAAC,cAAc,CAAC;EAC/C;EAGA;;;EAGO4C,YAAYA,CAACA,YAAoB;IACtC,MAAMrC,IAAI,GAAG;MACXqC;KACD;IAED,OAAO,IAAI,CAAC3D,IAAI,CAACqB,IAAI,CAAC,aAAa,EAAEC,IAAI,CAAC;EAC5C;EAGA;;;EAGOmG,MAAMA,CAAA;IACX,IAAI,CAAClC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACpD,aAAa,CAACvB,MAAM,CAAC,WAAW,CAAC;IACtC,IAAI,CAACuB,aAAa,CAACvB,MAAM,CAAC,SAAS,CAAC;IACpC,IAAI,CAACuB,aAAa,CAACvB,MAAM,CAAC,OAAO,CAAC;IAClC,IAAI,CAACuB,aAAa,CAACvB,MAAM,CAAC,cAAc,CAAC;IACzC,IAAI,CAACuB,aAAa,CAACuF,SAAS,CAAC,GAAG,CAAC;EACnC;EAEA;;;;EAIQC,kBAAkBA,CAAClF,KAAa,EAAEmF,WAAoB;IAC5D,IAAI3G,MAAM,GAAG,IAAIgB,4DAAU,EAAE,CAAC5B,GAAG,CAAC,OAAO,EAAEoC,KAAK,CAAC;IACjD,IAAImF,WAAW,EAAE3G,MAAM,GAAGA,MAAM,CAAC0B,MAAM,CAAC,aAAa,EAAEiF,WAAW,CAAC;IACnE,OAAO,IAAI,CAAC5H,IAAI,CAACe,GAAG,CAAC,oBAAoB,EAAEE,MAAM,CAAC;EACpD;EAEA;;;;EAIO4G,mBAAmBA,CAACC,KAAa;IACtC,MAAMxG,IAAI,GAAG;MACXwG;KACD;IACD,OAAO,IAAI,CAAC9H,IAAI,CAACwB,GAAG,CAAC,oBAAoB,EAAEF,IAAI,CAAC;EAClD;EAEA;;;;;;;EAOOyG,qBAAqBA,CAACD,KAAa,EAAErF,KAAa,EAAEc,IAAY;IACrE,MAAMjC,IAAI,GAAG;MACXwG,KAAK;MACLrF,KAAK;MACLc;KACD;IACD,OAAO,IAAI,CAACvD,IAAI,CAACqB,IAAI,CAAC,oBAAoB,EAAEC,IAAI,CAAC;EACnD;EAEA;;EAGO0G,iBAAiBA,CAACvF,KAAa,EAAEc,IAAY;IAClD,IAAIjC,IAAI;IACR,IAAIiC,IAAI,CAAC0E,MAAM,GAAG,CAAC,EAAE;MACnB3G,IAAI,GAAG;QAAEmB,KAAK;QAAEc;MAAI,CAAE;KACvB,MAAM;MACLjC,IAAI,GAAG;QAAEmB;MAAK,CAAE;;IAElB,OAAO,IAAI,CAACzC,IAAI,CAACqB,IAAI,CAAC,mBAAmB,EAAEC,IAAI,CAAC;EAClD;EAEA;;EAEO4G,aAAaA,CAACb,SAAiB,EAAEc,MAAc;IACpD,MAAMlH,MAAM,GAAG,IAAIgB,4DAAU,EAAE,CAC5B5B,GAAG,CAAC,QAAQ,EAAE8H,MAAM,CAAC,CACrB9H,GAAG,CAAC,WAAW,EAAEgH,SAAS,CAAC;IAC9B,OAAO,IAAI,CAACrH,IAAI,CAACe,GAAG,CAAC,sBAAsBsG,SAAS,EAAE,EAAEpG,MAAM,CAAC;EACjE;EAEOmH,WAAWA,CAACC,KAAa,EAAEC,IAAY,EAAEjB,SAAiB;IAC/D,MAAMpG,MAAM,GAAG,IAAIgB,4DAAU,EAAE,CAC5B5B,GAAG,CAAC,WAAW,EAAEgH,SAAS,CAAC,CAC3BhH,GAAG,CAAC,OAAO,EAAEgI,KAAK,CAAC,CACnBhI,GAAG,CAAC,MAAM,EAAEiI,IAAI,CAAC;IACpB,OAAO,IAAI,CAACtI,IAAI,CAACe,GAAG,CAAC,6BAA6BsG,SAAS,EAAE,EAAEpG,MAAM,CAAC;EACxE;EAEC;;EAEMsH,cAAcA,CAAA;IACnB,MAAMtH,MAAM,GAAG,IAAIgB,4DAAU,EAAE;IAC/B,OAAO,IAAI,CAACjC,IAAI,CAACe,GAAG,CAAC,YAAY,EAAEE,MAAM,CAAC;EAC5C;EAEOuH,eAAeA,CAACnB,SAAiB,EAAEoB,WAAmB,EAAEC,KAAa,EAAEC,KAAc;IAC1F,MAAMrH,IAAI,GAAG;MAAE+F,SAAS;MAAEoB,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE;IACrD,OAAO,IAAI,CAAC3I,IAAI,CAACqB,IAAI,CAAC,6BAA6B,EAAEC,IAAI,CAAC;EAC5D;EAEA;;EAGOsH,iBAAiBA,CAACC,EAAU;IACjC,MAAMvH,IAAI,GAAG;MAAEuH;IAAE,CAAE;IACnB,OAAO,IAAI,CAAC7I,IAAI,CAACqB,IAAI,CAAC,cAAc,EAAEC,IAAI,CAAC;EAC7C;EAEOwH,gBAAgBA,CAACrG,KAAa,EAAEsG,SAAiB;IACtD,MAAMzH,IAAI,GAAG;MAAEmB,KAAK;MAAEsG;IAAS,CAAE;IACjC,OAAO,IAAI,CAAC/I,IAAI,CAACqB,IAAI,CAAC,iBAAiB,EAAEC,IAAI,CAAC;EAChD;EAEO0H,iBAAiBA,CACtBC,WAAmB,EAAEC,SAAiB,EACtCC,MAAc,EAAEC,SAAiB,EACjCC,QAAgB,EAAE5G,KAAa,EAAEc,IAAY,EAC7C+F,WAAmB,EAAEC,QAAgB,EACrCC,WAAmB,EAAEC,QAAgB,EACrCC,SAAiB,EAAEC,SAAa,EAChClE,OAAO,GAAG,IAAI,CAACA,OAAO;IAItB;IACA,IAAIwB,iBAAiB,GAAG1D,IAAI;IAC5B,MAAMjC,IAAI,GAAG;MACX2H,WAAW;MAAEC,SAAS;MACtBC,MAAM;MAAEC,SAAS;MACjBC,QAAQ;MAAE5G,KAAK;MAAEc,IAAI,EAAE0D,iBAAiB;MACxCqC,WAAW;MAAEC,QAAQ;MAAEC,WAAW;MAClCC,QAAQ;MAAEC,SAAS;MAAEC,SAAS;MAAElE;KAEjC;IACD,OAAO,IAAI,CAACzF,IAAI,CAACqB,IAAI,CAAC,0BAA0B,EAAEC,IAAI,CAAC;EACzD;EAAC,QAAAvD,CAAA;qBAtRUqH,WAAW,EAAAnG,sDAAA,CAAAZ,oDAAA,GAAAY,sDAAA,CAAAiG,sDAAA,GAAAjG,sDAAA,CAAA2K,mDAAA,GAAA3K,sDAAA,CAAA6K,6EAAA;EAAA;EAAA,QAAA9L,EAAA;WAAXoH,WAAW;IAAAtD,OAAA,EAAXsD,WAAW,CAAArD,IAAA;IAAAC,UAAA,EAFV;EAAM;;;;;;;;;;;;;;;;;;;;ACTkB;AAEqB;;AAKrD,MAAO+H,iBAAiB;EAE1BvL,YAAA,GAAc;EAEPyL,OAAOA,CAACC,YAAoB;IAC/B,IAAIC,GAAG,GAAkB,IAAI;IAE7B,IAAG;MACC,IAAIC,GAAG,GAAGJ,0CAAY,CAACM,IAAI,CAACC,KAAK,CAACzK,qEAAW,CAAC0K,gBAAgB,CAAC;MAC/D,IAAIC,EAAE,GAAGT,0CAAY,CAACM,IAAI,CAACC,KAAK,CAACzK,qEAAW,CAAC4K,KAAK,CAAC;MAEnDP,GAAG,GAAGH,0CAAY,CAACC,OAAO,CAACC,YAAY,EAAEE,GAAG,EAAE;QAC1CK,EAAE;QACFG,IAAI,EAAEZ,2CAAa,CAACa,GAAG;QACvBC,OAAO,EAAEd,0CAAY,CAACgB;OACzB,CAAC,CAACC,QAAQ,EAAE;KAChB,QAAMC,CAAC,EAAC;MACLrK,OAAO,CAACsK,GAAG,CAAC,wCAAwC,CAAC;;IAGzD,OAAOhB,GAAG;EACd;EAAC,QAAApM,CAAA;qBArBQgM,iBAAiB;EAAA;EAAA,QAAA/L,EAAA;WAAjB+L,iBAAiB;IAAAjI,OAAA,EAAjBiI,iBAAiB,CAAAhI,IAAA;IAAAC,UAAA,EAFd;EAAM;;;;;;;;;;;;;;;;ACLf,MAAMpF,KAAK,GAAG;EACnBS,IAAI,EAAE;IACJC,IAAI,EAAE,MAAM;IACZ8N,KAAK,EAAE;MACL9N,IAAI,EAAE;;GAET;EACDE,QAAQ,EAAE;IACRF,IAAI,EAAE;GACP;EACD+N,KAAK,EAAE,EAAE;EACTzN,QAAQ,EAAE;CACX;;;;;;;;;;;;;;;;;;;ACXsD;AACE;AACF;;;AAEvD,MAAMd,MAAM,GAAW,CACrB;EACEe,SAAS,EAAEyN,kEAAc;EACzBlO,IAAI,EAAER,iEAAK,CAACS,IAAI,CAAC+N,KAAK,CAAC9N;CACxB,CACF;AAMK,MAAOiO,iBAAiB;EAAA,QAAAxN,CAAA;qBAAjBwN,iBAAiB;EAAA;EAAA,QAAAvN,EAAA;UAAjBuN;EAAiB;EAAA,QAAAtN,EAAA;cAHlBtB,yDAAY,CAAC6O,QAAQ,CAAC1O,MAAM,CAAC,EAC7BH,yDAAY;EAAA;;;sHAEX4O,iBAAiB;IAAAnN,OAAA,GAAAC,yDAAA;IAAAC,OAAA,GAFlB3B,yDAAY;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;ACbuB;AAEW;AACD;AACJ;;AAa/C,MAAOQ,UAAU;EAAA,QAAAY,CAAA;qBAAVZ,UAAU;EAAA;EAAA,QAAAa,EAAA;UAAVb;EAAU;EAAA,QAAAc,EAAA;cALnByB,yDAAY,EACZ6L,mEAAiB,EACjBE,+DAAmB;EAAA;;;sHAGVtO,UAAU;IAAAsC,YAAA,GARnB6L,kEAAc;IAAAlN,OAAA,GAGdsB,yDAAY,EACZ6L,mEAAiB,EACjBE,+DAAmB;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACd0D;AAE3C;AACqB;;;;;;;;;ICM7CxM,4DAAA,cAAkE;IAChEA,oDAAA,GACF;IAAAA,0DAAA,EAAM;;;;IADJA,uDAAA,GACF;IADEA,gEAAA,MAAAiN,MAAA,CAAAC,YAAA,MACF;;;;;IAKMlN,4DAAA,cAAwF;IAACA,oDAAA,sDAAoC;IAAAA,0DAAA,EAAM;;;;;IACnIA,4DAAA,cAA0F;IAACA,oDAAA,mDAAsC;IAAAA,0DAAA,EAAM;;;;;IAOvIA,4DAAA,cAA8F;IAAAA,oDAAA,+DAAmD;IAAAA,0DAAA,EAAM;;;;;IACvJA,4DAAA,cAA4F;IAACA,oDAAA,2CAA8B;IAAAA,0DAAA,EAAM;;;;;IAW/HA,4DAAA,WAA0B;IAEAA,oDAAA,kBAAW;IAAAA,0DAAA,EAAO;;;;;IAG5CA,4DAAA,eAAgE;IAC9DA,oDAAA,4BACF;IAAAA,0DAAA,EAAO;;;AD9BvB,MAAOqM,cAAc;EAazB9M,YACS4N,WAAwB,EACxBC,WAAwB,EACxBC,cAA8B,EAC9BC,KAAqB,EACrBlH,MAAc;IAJd,KAAA+G,WAAW,GAAXA,WAAW;IACX,KAAAC,WAAW,GAAXA,WAAW;IACX,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAC,KAAK,GAALA,KAAK;IACL,KAAAlH,MAAM,GAANA,MAAM;IAdR,KAAA8G,YAAY,GAAW,EAAE;IACzB,KAAA1G,OAAO,GAAW,EAAE;IACpB,KAAA+G,QAAQ,GAAY,KAAK;IACzB,KAAA5E,WAAW,GAAW,EAAE;IACxB,KAAApC,SAAS,GAAY,KAAK;IAC1B,KAAAiH,cAAc,GAAW,EAAE;IAC3B,KAAAC,UAAU,GAAW,EAAE;IAU5B;IACA;IACA,MAAMC,UAAU,GAAG,uIAAuI;IAC1J,IAAI,CAACC,SAAS,GAAG,IAAI,CAACR,WAAW,CAACS,KAAK,CAAC;MACtCpK,KAAK,EAAE,IAAIiJ,uDAAW,CAAC,EAAE,EAAEC,sDAAU,CAACmB,OAAO,CAAC,CAC5CnB,sDAAU,CAACoB,OAAO,CAAEJ,UAAW,CAAC,EAChChB,sDAAU,CAACqB,QAAQ,EACnBrB,sDAAU,CAACsB,SAAS,CAAC,CAAC,CAAC,EACvBtB,sDAAU,CAACuB,SAAS,CAAC,GAAG,CAAC,CAC1B,CAAC,CAAC;MACHnK,QAAQ,EAAE,IAAI2I,uDAAW,CAAC,EAAE,EAAEC,sDAAU,CAACmB,OAAO,CAAC,CAC/CnB,sDAAU,CAACqB,QAAQ,EACnBrB,sDAAU,CAACsB,SAAS,CAAC,CAAC,CAAC,EACvBtB,sDAAU,CAACuB,SAAS,CAAC,GAAG,CAAC,CAC1B,CAAC;KACH,CAAC;IAEF,IAAI,CAACC,WAAW,GAAG,KAAK;IAExB,IAAI,CAACZ,KAAK,CAACa,WAAW,CAAChM,IAAI,CAACwK,oDAAI,CAAC,CAAC,CAAC,CAAC,CAACyB,SAAS,CAC3ClD,GAAQ,IAAI;MACX,IAAI,CAACqC,QAAQ,GAAGrC,GAAG,CAACmD,CAAC;MACrB,IAAI,CAAC1F,WAAW,GAAGuC,GAAG,CAACoD,WAAW;MAClC,IAAI,CAAC9H,OAAO,GAAG0E,GAAG,CAACqD,KAAK;MACxB,IAAI,CAAChI,SAAS,GAAG,KAAK;MACtB,IAAI,CAAC6G,WAAW,CAAC7G,SAAS,GAAG,KAAK;MAClC,IAAI,IAAI,CAACC,OAAO,IAAI,IAAI,CAACA,OAAO,CAACwC,MAAM,GAAG,CAAC,EAAC;QAC1C,IAAI,CAACzC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC6G,WAAW,CAAC7G,SAAS,GAAG,IAAI;QACjC,IAAI,CAAC6G,WAAW,CAAC5G,OAAO,GAAG,IAAI,CAACA,OAAO;;IAE3C,CAAC,EACAgI,GAAQ,IAAK5M,OAAO,CAAC6M,KAAK,CAACD,GAAG,CAAC,CACjC;EACH;EAEAE,QAAQA,CAAA;IACN,IAAI,CAACC,aAAa,EAAE;EACtB;EAEAC,eAAeA,CAAA;IACb,IAAI,CAACC,SAAS,EAAE;EAClB;EAEA;;;EAGAF,aAAaA,CAAA;IACX,MAAMG,OAAO,GAAG,IAAI,CAACnG,WAAW,GAAG,IAAI,CAACA,WAAW,GAAG9H,qEAAW,CAACkO,UAAU;IAC5E,MAAMC,OAAO,GAAG5H,MAAM,CAACC,QAAQ,CAAC4H,MAAM;IACtC;IACA;IACA,IAAI,CAACzB,cAAc,GAAG,yBAAyBsB,OAAO,EAAE;IACxD,IAAI,CAACrB,UAAU,GAAG,0BAA0BqB,OAAO,EAAE;EACvD;EAEA;;;EAGOD,SAASA,CAACrL,KAAc;IAC7B,IAAI,CAACmK,SAAS,CAACuB,KAAK,EAAE;IACtB,IAAG1L,KAAK,EAAE;MACR,IAAI,CAACmK,SAAS,CAACwB,QAAQ,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC5L,KAAK,CAAC;;IAElD,IAAI,CAAC0K,WAAW,GAAG,KAAK;EAC1B;EAGA;;;;EAIOmB,KAAKA,CAAA;IACV,IAAI,CAACnB,WAAW,GAAG,IAAI;IACvB,IAAI,CAAChB,YAAY,GAAG,EAAE;IAEtB,MAAM1J,KAAK,GAAG,IAAI,CAACmK,SAAS,CAACwB,QAAQ,CAAC,OAAO,CAAC,CAACzF,KAAK;IACpD,MAAM5F,QAAQ,GAAG,IAAI,CAAC6J,SAAS,CAACwB,QAAQ,CAAC,UAAU,CAAC,CAACzF,KAAK;IAE1D,IAAI,CAAC0D,WAAW,CAACrF,KAAK,CAACvE,KAAK,EAAEM,QAAQ,CAAC,CAACsK,SAAS,CAC9ClD,GAAQ,IAAI;MACX,IAAIA,GAAG,CAACoE,OAAO,KAAKpE,GAAG,CAACoE,OAAO,CAACC,OAAO,IAAIrE,GAAG,CAACoE,OAAO,CAACE,UAAU,KAAK,GAAG,CAAC,EAAE;QAC1E;;;;;QAKA,MAAMtG,MAAM,GAAGgC,GAAG,CAACoE,OAAO,CAACC,OAAO,GAAG,eAAe,GAAG,IAAI,CAACE,oBAAoB,CAACvE,GAAG,CAACoE,OAAO,CAAC;QAC7F,MAAMhB,WAAW,GAAG,IAAI,CAAC3F,WAAW,GAAG,IAAI,CAACA,WAAW,GAAG,IAAI;QAC9D,MAAM3G,MAAM,GAAG;UACbkH,MAAM;UACNoF;SACD;QAED,IAAI,CAAClB,WAAW,CAAC7F,kBAAkB,CAAC/D,KAAK,CAAC;QAC1C,IAAI,CAAC4J,WAAW,CAAC1F,kBAAkB,CAAC5D,QAAQ,CAAC;QAC7C,IAAI,CAACsJ,WAAW,CAACtF,qBAAqB,EAAE,CAAC4H,IAAI,CAAC;UAAEJ,OAAO,EAAEpE,GAAG,CAACoE,OAAO;UAAEpH,OAAO,EAAEgD,GAAG,CAAChD;QAAO,CAAE,CAAC;QAC7F,IAAI,CAAC9B,MAAM,CAACuJ,QAAQ,CAAC,CAAC,SAAS,EAAEzE,GAAG,CAAChD,OAAO,CAACG,SAAS,EAAE,QAAQ,CAAC,EAAE;UAAE8F,WAAW,EAAEnM;QAAM,CAAE,CAAC;OAC5F,MAAM;QACL,IAAI,CAACqL,cAAc,CAACjI,cAAc,CAAC8F,GAAG,CAACoE,OAAO,CAAC;QAC/C,IAAI,IAAI,CAAC3G,WAAW,IAAI,IAAI,CAACA,WAAW,CAACiH,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE;UAChF,MAAMC,WAAW,GAAG,eAAe,IAAI,CAAClH,WAAW,EAAE;UACrD,MAAMmH,KAAK,GAAG5E,GAAG,CAAC6E,MAAM,CAACH,OAAO,CAAC,aAAa,CAAC;UAC/C,MAAMI,UAAU,GAAG9E,GAAG,CAAC6E,MAAM,CAACE,SAAS,CAAC,CAAC,EAAEH,KAAK,CAAC,GAAGD,WAAW;UAC/DzI,MAAM,CAACC,QAAQ,CAAC6I,OAAO,CAACF,UAAU,CAAC;SACpC,MAAM,IAAG,CAAC,IAAI,CAACrH,WAAW,EAAE;UAC3BvB,MAAM,CAACC,QAAQ,CAAC6I,OAAO,CAAChF,GAAG,CAAC6E,MAAM,CAAC;SACpC,MACI;UACH3I,MAAM,CAACC,QAAQ,CAAC6I,OAAO,CAAC,IAAI,CAACvH,WAAW,CAAC;;;IAG/C,CAAC,EACA6F,GAAQ,IAAI;MACX,IAAI,CAACtB,YAAY,GAAGsB,GAAG,CAACC,KAAK,CAAC0B,MAAM,CAAC,CAAC,CAAC,CAACC,GAAG;MAE3C,IAAI,CAACvB,SAAS,CAACrL,KAAK,CAAC;IACvB,CAAC,CACF;EACH;EAEA;;;;EAIAiM,oBAAoBA,CAACY,YAAkC;IACrD,IAAInH,MAAM,GAAW,EAAE;IACvB,IAAImH,YAAY,CAACC,OAAO,CAACV,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE1G,MAAM,GAAG,aAAa;IACtE,IAAImH,YAAY,CAACE,IAAI,KAAK,0BAA0B,EAAErH,MAAM,GAAG,YAAY;IAC3E,IAAImH,YAAY,CAACE,IAAI,KAAK,2BAA2B,EAAErH,MAAM,GAAG,eAAe;IAC/E,IAAImH,YAAY,CAACE,IAAI,KAAK,yBAAyB,EAAErH,MAAM,GAAG,gBAAgB;IAC9E,OAAOA,MAAM;EACf;EAGA;;;;;EAKOsH,OAAOA,CAACC,SAAiB;IAC9B,MAAMhH,KAAK,GAAG,IAAI,CAACkE,SAAS,CAACwB,QAAQ,CAACsB,SAAS,CAAC;IAEhD,OAAOhH,KAAK,CAACiH,KAAK,IAAIjH,KAAK,CAACkH,OAAO;EACrC;EAGA;;;;;EAKOC,SAASA,CAACH,SAAiB;IAChC,MAAMhH,KAAK,GAAG,IAAI,CAACkE,SAAS,CAACwB,QAAQ,CAACsB,SAAS,CAAC;IAEhD,OAAOhH,KAAK,CAACoH,OAAO,IAAIpH,KAAK,CAACkH,OAAO;EACvC;EAGA;;;;;EAKOG,aAAaA,CAAA;IAClB,OAAO,IAAI,CAACnD,SAAS,CAAC+C,KAAK;EAC7B;EAEOK,OAAOA,CAAA;IACZ,IAAI,CAAC3D,WAAW,CAACjG,UAAU,EAAE;EAC/B;EAAC,QAAArI,CAAA;qBA9LUuN,cAAc,EAAArM,+DAAA,CAAAZ,uDAAA,GAAAY,+DAAA,CAAAiG,oFAAA,GAAAjG,+DAAA,CAAA2K,0FAAA,GAAA3K,+DAAA,CAAA6K,2DAAA,GAAA7K,+DAAA,CAAA6K,mDAAA;EAAA;EAAA,QAAA9L,EAAA;UAAdsN,cAAc;IAAA5M,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAwR,MAAA;IAAAvR,QAAA,WAAAwR,wBAAAtR,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCd3BE,4DAAA,aAAqB;QAMPA,uDAAA,aAA2E;QAC3EA,4DAAA,YAAoC;QAAAA,oDAAA,0BAAc;QAAAA,0DAAA,EAAK;QAEvDA,uDAAA,SAAI;QACJA,wDAAA,KAAAsR,8BAAA,iBAEM;QACNtR,4DAAA,eAA8B;QAGxBA,uDAAA,iBAA0L;QAC1LA,wDAAA,KAAAuR,8BAAA,kBAAmI;QACnIvR,wDAAA,KAAAwR,8BAAA,kBAAuI;QACzIxR,0DAAA,EAAM;QAERA,4DAAA,eAAwB;QAEpBA,uDAAA,iBAAkM;QAElMA,wDAAA,KAAAyR,8BAAA,kBAAuJ;QACvJzR,wDAAA,KAAA0R,8BAAA,kBAAiI;QACnI1R,0DAAA,EAAM;QACNA,4DAAA,eAA2B;QAEvBA,oDAAA,6CACF;QAAAA,0DAAA,EAAI;QACAA,uDAAA,UAAI;QACZA,0DAAA,EAAM;QACNA,4DAAA,eAAqB;QAE0CA,wDAAA,mBAAA4R,iDAAA;UAAA,OAAS7R,GAAA,CAAAsP,KAAA,EAAO;QAAA,EAAC;QAC1ErP,wDAAA,KAAA6R,+BAAA,mBAIO;QACP7R,wDAAA,KAAA8R,+BAAA,mBAEO;QACT9R,0DAAA,EAAS;QACLA,uDAAA,UAAI;QACZA,0DAAA,EAAM;QACNA,uDAAA,UAAI;QAEJA,4DAAA,cAAuC;QAAAA,oDAAA,uCAAqB;QAAAA,0DAAA,EAAK;QAAAA,uDAAA,UAAI;QACrEA,4DAAA,eAAoB;QAEhBA,oDAAA,6BACF;QAAAA,0DAAA,EAAI;;;QA5CsCA,uDAAA,IAAkB;QAAlBA,wDAAA,SAAAD,GAAA,CAAAmN,YAAA,CAAkB;QAG1DlN,uDAAA,GAAuB;QAAvBA,wDAAA,cAAAD,GAAA,CAAA4N,SAAA,CAAuB;QAGuF3N,uDAAA,GAAuC;QAAvCA,yDAAA,eAAAD,GAAA,CAAA6Q,SAAA,UAAuC,aAAA7Q,GAAA,CAAAyQ,OAAA;QACtHxQ,uDAAA,GAAsD;QAAtDA,wDAAA,SAAAD,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,2BAAApP,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,UAAAgB,MAAA,kBAAApQ,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,UAAAgB,MAAA,WAAsD;QACtDnQ,uDAAA,GAAwD;QAAxDA,wDAAA,SAAAD,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,2BAAApP,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,UAAAgB,MAAA,kBAAApQ,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,UAAAgB,MAAA,aAAwD;QAKyBnQ,uDAAA,GAA0C;QAA1CA,yDAAA,eAAAD,GAAA,CAAA6Q,SAAA,aAA0C,aAAA7Q,GAAA,CAAAyQ,OAAA;QAE3HxQ,uDAAA,GAA4D;QAA5DA,wDAAA,SAAAD,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,8BAAApP,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,aAAA8C,QAAA,cAA4D;QAC5DjS,uDAAA,GAA0D;QAA1DA,wDAAA,SAAAD,GAAA,CAAA4N,SAAA,CAAAwB,QAAA,aAAA8C,QAAA,aAA0D;QAGtFjS,uDAAA,GAAuB;QAAvBA,mEAAA,SAAAD,GAAA,CAAAyN,cAAA,EAAAxN,2DAAA,CAAuB;QAOmDA,uDAAA,GAA4C;QAA5CA,wDAAA,cAAAD,GAAA,CAAA+Q,aAAA,MAAA/Q,GAAA,CAAAmO,WAAA,CAA4C;QAChHlO,uDAAA,GAAiB;QAAjBA,wDAAA,SAAAD,GAAA,CAAAmO,WAAA,CAAiB;QAKjBlO,uDAAA,GAAkB;QAAlBA,wDAAA,UAAAD,GAAA,CAAAmO,WAAA,CAAkB;QAU1BlO,uDAAA,GAAmB;QAAnBA,mEAAA,SAAAD,GAAA,CAAA0N,UAAA,EAAAzN,2DAAA,CAAmB;;;;;;;;;;;;;;;;;;;;;;;;;AC5ClC,MAAOpC,yBAAyB;EAEpC2B,YACS6G,MAAc;IAAd,KAAAA,MAAM,GAANA,MAAM;EAEf;EAEAsI,QAAQA,CAAA;IACN,IAAI,CAACtI,MAAM,CAACuJ,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE;MAAEyC,mBAAmB,EAAE;IAAO,CAAE,CAAC;EACzE;EAAC,QAAAtT,CAAA;qBATUlB,yBAAyB,EAAAoC,+DAAA,CAAAZ,mDAAA;EAAA;EAAA,QAAAL,EAAA;UAAzBnB,yBAAyB;IAAA6B,SAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,QAAA,WAAAyS,mCAAAvS,EAAA,EAAAC,GAAA;IAAAuS,MAAA;EAAA;;;;;;;;;;;;;;;;ACRtC;AACA;AACA;AAEO,MAAMzR,WAAW,GAAG;EACzB0R,UAAU,EAAE,KAAK;EACjBvD,OAAO,EAAE,kCAAkC;EAC3C9N,MAAM,EAAE,kCAAkC;EAC1C6N,UAAU,EAAC,4BAA4B;EACvC;;;EAGAxD,gBAAgB,EAAE,8CAA8C;EAChEE,KAAK,EAAE;CAER;AAED;;;;;;;AAOA;;;;;;;;;;;;;;;ACtB6C;AAG7C+G,sEAAA,EAAwB,CAACE,eAAe,CAACpS,sDAAS,CAAC,CAChDqS,KAAK,CAACnE,GAAG,IAAI5M,OAAO,CAAC6M,KAAK,CAACD,GAAG,CAAC,CAAC;;;;;;;;;;ACNnC","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/core.module.ts","./src/app/core/services/api/api.service.ts","./src/app/core/services/api/user/cognito.service.ts","./src/app/core/services/api/user/user.service.ts","./src/app/core/services/encryption/encryption.service.ts","./src/app/core/utils/router-path.ts","./src/app/modules/auth/auth-routing.module.ts","./src/app/modules/auth/auth.module.ts","./src/app/modules/auth/login/login.component.ts","./src/app/modules/auth/login/login.component.html","./src/app/modules/redirection/login-redirection/login-redirection.component.ts","./src/environments/environment.ts","./src/main.ts","ignored|/codebuild/output/src4085361273/src/Frontend-Login/node_modules/crypto-js|crypto"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PATHS } from './core/utils/router-path';\nimport { LoginRedirectionComponent } from './modules/redirection/login-redirection/login-redirection.component';\n\nconst routes: Routes = [\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/auth/auth.module').then(m => m.AuthModule),\n path: PATHS.AUTH.BASE\n },\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/register/register.module').then(m => m.RegisterModule),\n path: PATHS.REGISTER.BASE\n },\n {\n canActivate: [],\n loadChildren: () =>\n import('./modules/forget/forget.module').then(m => m.ForgetModule),\n path: 'password',\n data: { state: 'password' }\n },\n {\n path: PATHS.WILDCARD,\n component: LoginRedirectionComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { enableTracing: true } )],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'amcham';\n}\n","\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AuthModule } from './modules/auth/auth.module';\nimport { CoreModule } from './core/core.module';\nimport { CookieService } from 'ng2-cookies';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n AuthModule,\n CoreModule,\n BrowserAnimationsModule\n ],\n providers: [CookieService],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, HttpClientModule],\n providers: [],\n})\nexport class CoreModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject} from 'rxjs';\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n\n private expired = new Subject();\n /**\n * Base URL for all requests made through this\n * service.\n */\n public apiUrl: string;\n\n /**\n * HTTP headers applied to all requests made through this\n * service.\n */\n public httpHeaders = new HttpHeaders();\n\n /**\n * Creates a new HttpApiService instance and initializes it.\n */\n constructor(\n public http: HttpClient,\n ) {\n this.apiUrl = environment.apiUrl;\n this.setDefaultHeaders();\n }\n\n /**\n * Sets the default headers and values for all requests made\n * through this service.\n */\n public setDefaultHeaders(): void {\n this.httpHeaders = this.httpHeaders\n .set('Content-Type', 'application/json')\n .set('Accept', 'application/json');\n\n }\n\n /**\n * Returns all headers and values currently beign used by the service.\n */\n public getHeaders(): HttpHeaders {\n return this.httpHeaders;\n }\n\n /**\n * Sets a header value for a given name. If the header name already\n * exists, its value is replaced with the given value.\n *\n * @param headerName The header name.\n * @param headerValue Provides the value to set or overide for a given name.\n */\n public setHeader(headerName: string, headerValue: string | string[]): void {\n this.httpHeaders = this.httpHeaders.set(headerName, headerValue);\n }\n\n /**\n * Checks for existence of a header by a given name. Then deletes all\n * header values for the given name, or logs an error in development mode.\n *\n * @param headerName The header name.\n */\n public deleteHeader(headerName: string): void {\n if (this.httpHeaders.has(headerName)) {\n this.httpHeaders = this.httpHeaders.delete(headerName);\n } else {\n console.warn('Tried to delete a header that does not exist.');\n }\n }\n\n /**\n * Constructs a `GET` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param params The HTTP GET parameters.\n * @return An `Observable` of the response body as a JSON object.\n */\n public get(url: string, params?: HttpParams): Observable;\n\n /**\n * Constructs a `GET` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param params The HTTP GET parameters.\n * @return An `Observable` of the response body as a JSON object.\n */\n public get(url: string, params?: HttpParams): Observable;\n\n public get(url: string, params?: HttpParams) {\n const opts = {\n headers: this.httpHeaders,\n params: (params ? params : null) as HttpParams,\n };\n if (params) {\n opts.params = params;\n }\n\n return this.http.get(this.apiUrl + url, opts).pipe()\n }\n\n /**\n * Constructs a `POST` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param body The content to replace with.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public post(url: string, body?: unknown): Observable;\n\n /**\n * Constructs a `POST` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param body The content to replace with.\n * @return An `Observable` of the response, with the response body as T.\n */\n public post(url: string, body?: unknown): Observable;\n\n public post(url: string, body?: unknown) {\n let postBody = body;\n const opts = {\n headers: this.httpHeaders,\n };\n\n if (!postBody) {\n postBody = {};\n }\n\n return this.http.post(this.apiUrl + url, postBody, opts).pipe();\n }\n\n /**\n * Constructs a `PUT` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @param body The resources to add/update.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public put(url: string, body?: unknown): Observable;\n\n /**\n * Constructs a `PUT` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @param body The resources to add/update.\n * @return An `Observable` of the response, with the response body as a JSON object.\n */\n public put(url: string, body?: unknown): Observable;\n\n public put(url: string, body?: unknown) {\n let putBody = body;\n const opts = {\n headers: this.httpHeaders,\n };\n\n if (!putBody) {\n putBody = {};\n }\n\n return this.http.put(this.apiUrl + url, putBody, opts).pipe();\n }\n\n /**\n * Constructs a `DELETE` request that interprets the body as a JSON object and returns it as a JSON object.\n * @param url The endpoint URL.\n * @return An `Observable` of the response, with the response body of type `Object`.\n */\n public delete(url: string): Observable;\n\n /**\n * Constructs a `DELETE` request that interprets the body as T and returns it as T.\n * @param url The endpoint URL.\n * @return An `Observable` of the response, with the response body as T.\n */\n public delete(url: string): Observable;\n\n public delete(url: string) {\n const opts = {\n headers: this.httpHeaders,\n };\n\n return this.http.delete(this.apiUrl + url, opts).pipe();\n }\n\n tokenExpired() {\n return this.expired.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { CookieService } from 'ng2-cookies';\r\nimport { CognitoAuthResponse, CognitoUserAttributes } from 'src/app/shared/models/cognito.model';\r\nimport { ApiService } from '../api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CognitoService {\r\n private cookieDomain = '.amcham.com.ar';\r\n private accessTokenCookie = 'cogToken';\r\n private refreshTokenCookie = 'cogRefreshToken';\r\n private idTokenCookie = 'cogIdToken';\r\n\r\n constructor(\r\n private http: ApiService,\r\n private cookieService: CookieService,\r\n ) { }\r\n\r\n /**\r\n * Returns a paginated list of Users registered in Cognito, \r\n * optionally searching by email and filtering attributes\r\n * @param email User's email to look for \r\n * @param attributes Attributes to return. Default: all attributes returned\r\n */\r\n public listCognitoUsers(email?: string, attributes?: string[]) {\r\n let params = new HttpParams();\r\n if (email) params = params.append('findmail', email);\r\n if (attributes) {\r\n attributes.forEach(attr => {\r\n params.append('attributes', attr)\r\n })\r\n }\r\n return this.http.get('cognito', params);\r\n }\r\n\r\n /**\r\n * Attempts to SignIn a User in Cognito. \r\n * If it fails, attempts to Register with the attributes provided.\r\n * @param email Email of the user (acts as username)\r\n * @param password Password of the user\r\n * @param updateCurrent Attribute to retry: _null | 'mobilephone' | 'password'_\r\n * @param attributes Object containing user attributes\r\n */\r\n public verifyCognitoAndRegister(\r\n email: string, password: string,\r\n updateCurrent: string | null,\r\n attributes: {[key: string]: string }\r\n ) {\r\n const body = {\r\n email, password,\r\n updateCurrent,\r\n ...attributes\r\n }\r\n\r\n return this.http.post('cognito/check', body);\r\n }\r\n\r\n /**\r\n * Register a new User in Cognito with the attributes provided.\r\n * @param email Email of the User (acts as username)\r\n * @param password Password of the User\r\n * @param attributes Object containing User attributes\r\n */\r\n public registerCognitoUser(\r\n email: string, password: string,\r\n attributes: CognitoUserAttributes | {}\r\n ) {\r\n const body = {\r\n email, password,\r\n ...attributes\r\n }\r\n\r\n return this.http.post('cognito/signup', body);\r\n }\r\n\r\n /**\r\n * Completes registration of a User in Cognito using a confirmation code.\r\n * @param email Email of the User (acts as username)\r\n * @param confirmationCode Six-digit confirmation code (passed as string)\r\n */\r\n public confirmCognitoUser(email: string, confirmationCode: string) {\r\n const body = {\r\n email,\r\n confirmationCode\r\n };\r\n return this.http.post('cognito/confirm', body);\r\n }\r\n\r\n /**\r\n * Requests a new confirmation code from Cognito for the provided email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public requestNewConfirmationCode(email: string) {\r\n const params = new HttpParams().set('u', email);\r\n return this.http.get('cognito/confirm', params);\r\n }\r\n\r\n /**\r\n * Starts a Forgot Password sequence. Sends a confirmation code to User's email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public startForgotPassword(email: string ) {\r\n const params = new HttpParams().set('u', email);\r\n return this.http.get('cognito/password', params);\r\n }\r\n\r\n /**\r\n * Completes the Forgot Password sequence, \r\n * resetting User's password to the one provided.\r\n * @param email Email of the User (acts as username)\r\n * @param pass New Password associated to the User\r\n * @param confirmationCode Six-digit confirmation code (passed as string)\r\n */\r\n public completeForgotPassword(\r\n email: string, pass: string,\r\n confirmationCode: string\r\n ) {\r\n const body = {\r\n email,\r\n pass,\r\n confirmationCode\r\n }\r\n return this.http.put('cognito/password', body);\r\n }\r\n\r\n /**\r\n * Authenticates a User in Cognito and returns the corresponding tokens.\r\n * @param email Email of the User (acts as username)\r\n * @param password Password of the User\r\n */\r\n public signInCognitoUser(email: string, password: string) {\r\n const body = {\r\n email,\r\n password\r\n }\r\n return this.http.post('cognito/signin', body);\r\n }\r\n\r\n /**\r\n * Reads Cognito cookies and returns Refresh Token.\r\n */\r\n public getRefreshToken() {\r\n return this.cookieService.get(this.refreshTokenCookie);\r\n }\r\n\r\n /**\r\n * Refresh Access and Id tokens using a Refresh token.\r\n */\r\n public refreshAccessToken() {\r\n const refreshToken = this.getRefreshToken();\r\n const body = {\r\n refreshToken\r\n }\r\n\r\n return this.http.post('cognito/token', body);\r\n }\r\n\r\n /**\r\n * List the attributes stored in Cognito for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n */\r\n public getUserAttributes() {\r\n return this.http.get('cognito/attributes');\r\n }\r\n\r\n /**\r\n * Update in Cognito the provided attributes for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n */\r\n public updateUserAttributes(attributes: any) {\r\n const body = {\r\n ...attributes\r\n }\r\n\r\n return this.http.put('cognito/attributes', body);\r\n }\r\n\r\n /**\r\n * Change the password for an authenticated User. \r\n * A valid Access token must be provided as Bearer.\r\n * @param oldPassword The current password\r\n * @param proposedPassword The desired new password\r\n */\r\n public changeOwnPassword(oldPassword: string, proposedPassword: string) {\r\n const body = {\r\n oldPassword,\r\n proposedPassword\r\n }\r\n\r\n return this.http.post('cognito/password', body);\r\n }\r\n\r\n /**\r\n * Attempts to revoke all tokens issued to the current User\r\n */\r\n public signOutCognitoUser() {\r\n return this.http.get('cognito/signout');\r\n }\r\n\r\n /**\r\n * Reads Cognito cookies and sets Authorization header if found.\r\n * @param tokenType Specify the token to load: 'access' | 'id'\r\n */\r\n public loadCognitoUser(tokenType?: string) {\r\n let token: string;\r\n if (tokenType == 'id') {\r\n token = this.cookieService.get(this.idTokenCookie);\r\n } else {\r\n token = this.cookieService.get(this.accessTokenCookie);\r\n }\r\n\r\n if (token) {\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n\r\n /**\r\n * Sets cookies with the tokens returned by Cognito.\r\n * @param authUser Cognito user authentication response.\r\n */\r\n public setCognitoUser(authUser: CognitoAuthResponse) {\r\n const accessToken = authUser.AccessToken;\r\n const refreshToken = authUser.RefreshToken;\r\n const idToken = authUser.IdToken;\r\n const expiresIn = new Date();\r\n expiresIn.setSeconds(expiresIn.getSeconds() + authUser.ExpiresIn);\r\n\r\n this.cookieService.set(this.accessTokenCookie, accessToken, expiresIn, '/', this.cookieDomain);\r\n this.cookieService.set(this.refreshTokenCookie, refreshToken as string, 30, '/', this.cookieDomain);\r\n this.cookieService.set(this.idTokenCookie, idToken, expiresIn, '/', this.cookieDomain);\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + accessToken);\r\n }\r\n\r\n /**\r\n * Clears all Cognito related cookies.\r\n */\r\n public clearCognitoCookies(): void {\r\n this.cookieService.delete(this.accessTokenCookie);\r\n this.cookieService.delete(this.refreshTokenCookie);\r\n this.cookieService.delete(this.idTokenCookie);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject} from 'rxjs';\r\nimport { CookieService } from 'ng2-cookies';\r\nimport { Router } from '@angular/router';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { ApiService } from '../api.service';\r\nimport { EncryptionService } from '../../encryption/encryption.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n public user: any = null;\r\n public dataUser: any;\r\n public fromEvent: boolean = false;\r\n public eventId: string = \"\";\r\n public mailUserNewForm: string;\r\n private passUserNewForm: string = \"\";\r\n public partnerId: string = \"\";\r\n private registerUserSubject = new BehaviorSubject(null);\r\n private cognitoUserSubject = new BehaviorSubject(null);\r\n\r\n constructor(\r\n public http: ApiService,\r\n public cookieService: CookieService,\r\n public router: Router,\r\n public encrypter: EncryptionService,\r\n ) {\r\n this.mailUserNewForm = '';\r\n this.loadUser();\r\n }\r\n\r\n public getEventId(): string{\r\n return this.eventId;\r\n }\r\n\r\n public getDataUser(): any {\r\n return this.dataUser;\r\n }\r\n\r\n public getPartnetId(): string {\r\n return this.partnerId;\r\n }\r\n\r\n public toSSOLogin() {\r\n window.location.href = 'https://login.amcham.com.ar/?client_id=connect';\r\n }\r\n\r\n public setMailUserNewForm(val: string): void {\r\n this.mailUserNewForm = val;\r\n }\r\n\r\n public getMailUserNewForm(): string {\r\n return this.mailUserNewForm;\r\n }\r\n \r\n public setPassUserNewForm(val: string): void {\r\n this.passUserNewForm = val;\r\n }\r\n\r\n public getPassUserNewForm(): string {\r\n return this.passUserNewForm;\r\n }\r\n\r\n public getContactId(): string {\r\n return this.cookieService.get('contactId');\r\n }\r\n\r\n public getRegisterUserSubject(): BehaviorSubject{\r\n return this.registerUserSubject;\r\n }\r\n \r\n public getCognitoUserSubject(): BehaviorSubject{\r\n return this.cognitoUserSubject;\r\n }\r\n \r\n /**\r\n * logIn\r\n * @param email User's E-Mail\r\n * @param password User's Password\r\n */\r\n public logIn(email: string, password: string): Observable {\r\n //let encryptedPassword = this.encrypter.encrypt(password);\r\n let encryptedPassword = password\r\n\r\n const body = { email, password: encryptedPassword };\r\n\r\n return this.http.post('contacts/login', body);\r\n }\r\n\r\n\r\n /**\r\n * setUser\r\n * @param user Server user response.\r\n */\r\n public setUser(user: any): void {\r\n this.user = user.contact.fullname;\r\n\r\n // TODO: [AECP-88] Contact Object it's too long to sotre in a cookie.\r\n const contact = user.contact.fullname;\r\n const token = user.token;\r\n const refreshToken = user.refreshToken;\r\n const contactId = user.contact.contactid;\r\n\r\n this.cookieService.set('contactId', contactId, undefined, '/');\r\n this.cookieService.set('contact', contact, undefined, '/');\r\n this.cookieService.set('token', token, undefined, '/');\r\n this.cookieService.set('refreshToken', refreshToken, undefined, '/');\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + user.token);\r\n }\r\n\r\n\r\n /**\r\n * loadUser\r\n */\r\n public loadUser(): void {\r\n // TODO: Secure Cookies against CSRF.\r\n const contactId = this.cookieService.get('contactId');\r\n const contact = this.cookieService.get('contact');\r\n const token = this.cookieService.get('token');\r\n const refreshToken = this.cookieService.get('refreshToken');\r\n\r\n if (contactId && contact && token && refreshToken) {\r\n this.user = contact;\r\n\r\n // Set Authorization Header for all requests.\r\n this.http.setHeader('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * isLoggedIn\r\n */\r\n public isLoggedIn(): boolean {\r\n if (this.user) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n public getRefreshToken(): string {\r\n return this.cookieService.get('refreshToken');\r\n }\r\n\r\n\r\n /**\r\n * refreshToken\r\n */\r\n public refreshToken(refreshToken: string) {\r\n const body = {\r\n refreshToken\r\n };\r\n\r\n return this.http.post('users/token', body);\r\n }\r\n\r\n\r\n /**\r\n * logOut\r\n */\r\n public logOut(): void {\r\n this.user = null;\r\n this.cookieService.delete('contactId');\r\n this.cookieService.delete('contact');\r\n this.cookieService.delete('token');\r\n this.cookieService.delete('refreshToken');\r\n this.cookieService.deleteAll('/');\r\n }\r\n\r\n /**\r\n * Starts a legacy Forgot Password sequence. Sends a reset link to User's email.\r\n * @param email Email of the User (acts as username)\r\n */\r\n public startResetPassword(email: string, redirectUrl?: string ) {\r\n let params = new HttpParams().set('email', email);\r\n if (redirectUrl) params = params.append('redirect_to', redirectUrl);\r\n return this.http.get('contacts/resetpass', params);\r\n }\r\n\r\n /**\r\n * Checks a URL Id that was sent as a reset link to User's email.\r\n * @param urlId Id extracted from the URL\r\n */\r\n public getIsResetLinkValid(urlId: string) {\r\n const body = {\r\n urlId\r\n }\r\n return this.http.put('contacts/resetpass', body);\r\n }\r\n \r\n /**\r\n * Completes the legacy Forgot Password sequence, \r\n * resetting User's password to the one provided.\r\n * @param urlId Id extracted from the URL\r\n * @param email Email of the User (acts as username)\r\n * @param pass New Password associated to the User\r\n */\r\n public completeResetPassword(urlId: string, email: string, pass: string) {\r\n const body = {\r\n urlId,\r\n email,\r\n pass,\r\n }\r\n return this.http.post('contacts/resetpass', body);\r\n }\r\n \r\n /**\r\n * send Email recovery password */\r\n\r\n public sendEmailPassword(email: string, pass: string) {\r\n let body;\r\n if (pass.length > 0) {\r\n body = { email, pass };\r\n } else {\r\n body = { email };\r\n }\r\n return this.http.post('contacts/password', body);\r\n }\r\n \r\n /**\r\n * get user or Contact myAccout */\r\n public getContactCRM(contactId: string, action: string) {\r\n const params = new HttpParams()\r\n .set('action', action)\r\n .set('contactId', contactId);\r\n return this.http.get(`contacts/myaccount/${contactId}`, params);\r\n }\r\n\r\n public getMyEvents(month: string, year: string, contactId: string) {\r\n const params = new HttpParams()\r\n .set('contactId', contactId)\r\n .set('month', month)\r\n .set('year', year);\r\n return this.http.get(`contacts/myaccount/events/${contactId}`, params);\r\n }\r\n\r\n /**\r\n * get department'list */\r\n public getDepartments() {\r\n const params = new HttpParams()\r\n return this.http.get('department', params);\r\n }\r\n\r\n public registerInteres(contactId: string, typeInteres: string, field: string, value: boolean) {\r\n const body = { contactId, typeInteres, field, value };\r\n return this.http.post('contacts/myaccount/interest', body);\r\n }\r\n\r\n /**\r\n * get user or Contact form Web */\r\n\r\n public getContactDetails(id: string) {\r\n const body = { id };\r\n return this.http.post('contacts/web', body);\r\n }\r\n\r\n public getVerifyContact(email: string, accountId: string) {\r\n const body = { email, accountId };\r\n return this.http.post('contacts/verify', body);\r\n }\r\n\r\n public registerUserGuest(\r\n companyName: string, companyId: string,\r\n sector: string, firstName: string,\r\n lastName: string, email: string, pass: string,\r\n mobilePhone: string, linkedin: string,\r\n departament: string, jobTitle: string, \r\n jerarquia: string, interests: [],\r\n eventId = this.eventId,\r\n \r\n ) {\r\n \r\n //let encryptedPassword = this.encrypter.encrypt(pass)\r\n let encryptedPassword = pass\r\n const body = {\r\n companyName, companyId,\r\n sector, firstName,\r\n lastName, email, pass: encryptedPassword,\r\n mobilePhone, linkedin, departament,\r\n jobTitle, jerarquia, interests, eventId,\r\n \r\n };\r\n return this.http.post(`contacts/guest/register/`, body); \r\n }\r\n\r\n \r\n}\r\n","import * as CryptoJS from 'crypto-js';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EncryptionService{\n\n constructor(){}\n\n public encrypt(strToEncrypt: string): string | null{\n let res: string | null = null;\n \n try{\n let key = CryptoJS.enc.Utf8.parse(environment.aesEncryptionKey)\n let iv = CryptoJS.enc.Utf8.parse(environment.aesIv)\n\n res = CryptoJS.AES.encrypt(strToEncrypt, key, {\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n }).toString();\n }catch(e){\n console.log(\"Ocurrio un error al encriptar el texto\")\n }\n\n return res;\n }\n}","export const PATHS = {\n AUTH: {\n BASE: 'auth',\n LOGIN: {\n BASE: 'login'\n },\n },\n REGISTER: {\n BASE: 'register'\n },\n EMPTY: '',\n WILDCARD: '**'\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { LoginComponent } from './login/login.component';\nimport { PATHS } from 'src/app/core/utils/router-path';\n\nconst routes: Routes = [\n {\n component: LoginComponent,\n path: PATHS.AUTH.LOGIN.BASE\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { LoginComponent } from './login/login.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [\n LoginComponent\n ],\n imports: [\n CommonModule,\n AuthRoutingModule, \n ReactiveFormsModule\n ]\n})\nexport class AuthModule { }\n","import { Component, OnInit, AfterViewInit } from '@angular/core';\nimport { FormBuilder, FormControl, Validators, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { CognitoErrorResponse } from 'src/app/shared/models/cognito.model';\nimport { UserService } from 'src/app/core/services/api/user/user.service';\nimport { CognitoService } from 'src/app/core/services/api/user/cognito.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, AfterViewInit {\n\n public loginForm: FormGroup;\n public showSpinner: boolean;\n public errorMessage: string = \"\";\n public eventId: string = \"\";\n public redirect: boolean = false;\n public redirectUrl: string = \"\";\n public fromEvent: boolean = false;\n public forgotPassword: string = \"\";\n public urlNewUser: string = \"\";\n\n\n constructor(\n public formBuilder: FormBuilder,\n public userService: UserService,\n public cognitoService: CognitoService,\n public route: ActivatedRoute,\n public router: Router\n ) {\n // Email Regex (RFC 5322 Official Standard)\n // tslint:disable-next-line: max-line-length\n const emailRegex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\n this.loginForm = this.formBuilder.group({\n email: new FormControl('', Validators.compose([\n Validators.pattern((emailRegex)),\n Validators.required,\n Validators.minLength(3),\n Validators.maxLength(320)\n ])),\n password: new FormControl('', Validators.compose([\n Validators.required,\n Validators.minLength(6),\n Validators.maxLength(256)\n ]))\n });\n\n this.showSpinner = false;\n\n this.route.queryParams.pipe(take(1)).subscribe(\n (res: any) => {\n this.redirect = res.r;\n this.redirectUrl = res.redirect_to;\n this.eventId = res.event;\n this.fromEvent = false;\n this.userService.fromEvent = false;\n if (this.eventId && this.eventId.length > 0){\n this.fromEvent = true;\n this.userService.fromEvent = true;\n this.userService.eventId = this.eventId;\n }\n },\n (err: any) => console.error(err)\n );\n }\n\n ngOnInit() {\n this.constructURLs();\n }\n\n ngAfterViewInit() {\n this.resetForm();\n }\n\n /**\n * Construct URLs with dynamic redirection value\n */\n constructURLs() {\n const fromUrl = this.redirectUrl ? this.redirectUrl : environment.connectUrl;\n const baseUrl = window.location.origin;\n // this.forgotPassword = `${environment.baseUrl}password?redirect_to=${fromUrl}`;\n // this.urlNewUser = `${environment.baseUrl}guest/?redirect_to=${fromUrl}`;\n this.forgotPassword = `/password?redirect_to=${fromUrl}`;\n this.urlNewUser = `/register/?redirect_to=${fromUrl}`;\n }\n\n /**\n * resetForm\n */\n public resetForm(email?: string): void {\n this.loginForm.reset();\n if(email) {\n this.loginForm.controls['email'].setValue(email);\n }\n this.showSpinner = false;\n }\n\n\n /**\n * Tries to log-in an user and sets the state of the\n * page accordingly.\n */\n public login(): void {\n this.showSpinner = true;\n this.errorMessage = \"\";\n\n const email = this.loginForm.controls['email'].value;\n const password = this.loginForm.controls['password'].value;\n\n this.userService.logIn(email, password).subscribe(\n (res: any) => {\n if (res.cognito && (res.cognito.UserSub || res.cognito.statusCode === 400)) {\n /*\n Depending on the Cognito response object properties, the 'action' is decided:\n res.cognito.UserSub: User successfully registered in Cognito => proceed to confirm\n res.cognito.statusCode: User registration in Cognito failed => parse error and proceed\n */\n const action = res.cognito.UserSub ? 'login_confirm' : this.actionOnCognitoError(res.cognito);\n const redirect_to = this.redirectUrl ? this.redirectUrl : null;\n const params = {\n action,\n redirect_to,\n }\n\n this.userService.setMailUserNewForm(email);\n this.userService.setPassUserNewForm(password);\n this.userService.getCognitoUserSubject().next({ cognito: res.cognito, contact: res.contact });\n this.router.navigate(['/forget', res.contact.contactid, 'verify'], { queryParams: params });\n } else {\n this.cognitoService.setCognitoUser(res.cognito);\n if (this.redirectUrl && this.redirectUrl.indexOf('connect.amcham.com.ar') !== -1) {\n const newRedirect = `redirect_to=${this.redirectUrl}`;\n const index = res.appURL.indexOf('redirect_to');\n const replaceUrl = res.appURL.substring(0, index) + newRedirect;\n window.location.replace(replaceUrl);\n } else if(!this.redirectUrl) {\n window.location.replace(res.appURL);\n }\n else {\n window.location.replace(this.redirectUrl);\n }\n }\n },\n (err: any) => {\n this.errorMessage = err.error.errors[0].msg\n ;\n this.resetForm(email);\n }\n );\n }\n\n /**\n * Parses a Cognito error object and returns a string to use as a query param.\n * @param cognitoError A Cognito error response object.\n */\n actionOnCognitoError(cognitoError: CognitoErrorResponse) {\n let action: string = \"\";\n if (cognitoError.message.indexOf('phone') > -1) action = 'login_phone';\n if (cognitoError.code === 'InvalidPasswordException') action = 'login_pass';\n if (cognitoError.code === 'UserNotConfirmedException') action = 'login_confirm';\n if (cognitoError.code === 'UsernameExistsException') action = 'login_conflict';\n return action;\n }\n\n\n /**\n * Determines whether a field has a valid value or not.\n * @param fieldName Field name based on the FormControl property.\n * @returns true if valid.\n */\n public isValid(fieldName: string): boolean {\n const field = this.loginForm.controls[fieldName];\n\n return field.valid && field.touched;\n }\n\n\n /**\n * Determines whether a field has an invalid value or not.\n * @param fieldName Field name based on the FormControl property.\n * @returns true if invalid.\n */\n public isInvalid(fieldName: string): boolean {\n const field = this.loginForm.controls[fieldName];\n\n return field.invalid && field.touched;\n }\n\n\n /**\n * Determines whether the submit button is enabled or not based\n * on the login form status.\n * @returns true if the log in form is valid.\n */\n public buttonEnabled(): boolean {\n return this.loginForm.valid;\n }\n\n public toLogin(): void {\n this.userService.toSSOLogin();\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \"logo-amcham\"\n

Iniciar sesión

\n\n

\n
\n {{errorMessage}}\n
\n
\n
\n
\n \n
El correo electrónico no es válido.
\n
El correo electrónico es obligatorio.
\n
\n
\n
\n
\n \n\n
La contraseña debe contener al menos 6 caracteres.
\n
La contraseña es obligatoria.
\n
\n
\n
\n
\n
\n \n

\n
\n

\n
\n
¿No tenés un usuario?

\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\n\n@Component({\n selector: 'app-login-redirection',\n templateUrl: './login-redirection.component.html',\n styleUrls: ['./login-redirection.component.scss']\n})\nexport class LoginRedirectionComponent implements OnInit{\n\n constructor(\n public router: Router\n ){\n }\n\n ngOnInit() {\n this.router.navigate(['/auth/login'], { queryParamsHandling: 'merge' })\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n baseUrl: 'https://apiv2.amcham.com.ar/api/',\n apiUrl: 'https://apiv2.amcham.com.ar/api/',\n connectUrl:'https://www.amcham.com.ar/',\n /*AES Key considerations: https://stackoverflow.com/questions/72570359/cryptojs-javascript-aes-128-ecb-encrypt-decrypt\n * La configuracion debe ser la misma que la del backend \n */\n aesEncryptionKey: 'qNVI+lPUnUgCAo/tpxwVZIUriJFCHY53s7PjmI7Vw8M=',\n aesIv: 'nOvjWhYtWKGTl8lKw8HNK1fbwSV6f4+fBAK8FCvDVvM=',\n\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */"],"names":["RouterModule","PATHS","LoginRedirectionComponent","routes","canActivate","loadChildren","then","m","AuthModule","path","AUTH","BASE","RegisterModule","REGISTER","ForgetModule","data","state","WILDCARD","component","AppRoutingModule","_","_2","_3","forRoot","enableTracing","imports","i1","exports","AppComponent","constructor","title","selectors","decls","vars","template","AppComponent_Template","rf","ctx","i0","ɵɵelement","BrowserModule","CoreModule","CookieService","BrowserAnimationsModule","AppModule","bootstrap","declarations","CommonModule","HttpClientModule","Subject","HttpHeaders","environment","ApiService","http","expired","httpHeaders","apiUrl","setDefaultHeaders","set","getHeaders","setHeader","headerName","headerValue","deleteHeader","has","delete","console","warn","get","url","params","opts","headers","pipe","post","body","postBody","put","putBody","tokenExpired","asObservable","ɵɵinject","HttpClient","factory","ɵfac","providedIn","HttpParams","CognitoService","cookieService","cookieDomain","accessTokenCookie","refreshTokenCookie","idTokenCookie","listCognitoUsers","email","attributes","append","forEach","attr","verifyCognitoAndRegister","password","updateCurrent","registerCognitoUser","confirmCognitoUser","confirmationCode","requestNewConfirmationCode","startForgotPassword","completeForgotPassword","pass","signInCognitoUser","getRefreshToken","refreshAccessToken","refreshToken","getUserAttributes","updateUserAttributes","changeOwnPassword","oldPassword","proposedPassword","signOutCognitoUser","loadCognitoUser","tokenType","token","setCognitoUser","authUser","accessToken","AccessToken","RefreshToken","idToken","IdToken","expiresIn","Date","setSeconds","getSeconds","ExpiresIn","clearCognitoCookies","i2","BehaviorSubject","UserService","router","encrypter","user","fromEvent","eventId","passUserNewForm","partnerId","registerUserSubject","cognitoUserSubject","mailUserNewForm","loadUser","getEventId","getDataUser","dataUser","getPartnetId","toSSOLogin","window","location","href","setMailUserNewForm","val","getMailUserNewForm","setPassUserNewForm","getPassUserNewForm","getContactId","getRegisterUserSubject","getCognitoUserSubject","logIn","encryptedPassword","setUser","contact","fullname","contactId","contactid","undefined","isLoggedIn","logOut","deleteAll","startResetPassword","redirectUrl","getIsResetLinkValid","urlId","completeResetPassword","sendEmailPassword","length","getContactCRM","action","getMyEvents","month","year","getDepartments","registerInteres","typeInteres","field","value","getContactDetails","id","getVerifyContact","accountId","registerUserGuest","companyName","companyId","sector","firstName","lastName","mobilePhone","linkedin","departament","jobTitle","jerarquia","interests","i3","Router","i4","EncryptionService","CryptoJS","encrypt","strToEncrypt","res","key","enc","Utf8","parse","aesEncryptionKey","iv","aesIv","AES","mode","CBC","padding","pad","Pkcs7","toString","e","log","LOGIN","EMPTY","LoginComponent","AuthRoutingModule","forChild","ReactiveFormsModule","FormControl","Validators","take","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","errorMessage","formBuilder","userService","cognitoService","route","redirect","forgotPassword","urlNewUser","emailRegex","loginForm","group","compose","pattern","required","minLength","maxLength","showSpinner","queryParams","subscribe","r","redirect_to","event","err","error","ngOnInit","constructURLs","ngAfterViewInit","resetForm","fromUrl","connectUrl","baseUrl","origin","reset","controls","setValue","login","cognito","UserSub","statusCode","actionOnCognitoError","next","navigate","indexOf","newRedirect","index","appURL","replaceUrl","substring","replace","errors","msg","cognitoError","message","code","isValid","fieldName","valid","touched","isInvalid","invalid","buttonEnabled","toLogin","ɵɵdirectiveInject","FormBuilder","ActivatedRoute","consts","LoginComponent_Template","ɵɵtemplate","LoginComponent_div_11_Template","LoginComponent_div_16_Template","LoginComponent_div_17_Template","LoginComponent_div_21_Template","LoginComponent_div_22_Template","ɵɵlistener","LoginComponent_Template_button_click_29_listener","LoginComponent_span_30_Template","LoginComponent_span_31_Template","ɵɵproperty","ɵɵclassProp","hasError","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","queryParamsHandling","LoginRedirectionComponent_Template","styles","production","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[17]}