{"version":3,"file":"main.789c264e0ddcd70e.js","mappings":"oGAKA,MASMA,EAAcC,IAClB,GAAa,MAATA,IAVqBC,MACN,iBAARA,GACPA,aAAeC,MACfD,aAAeE,UACfF,aAAeG,OAMyBC,CAAkBL,GAC5D,OAAOA,EAGT,MAAMM,EAAO,IAAKN,GAElBO,cAAOC,KAAKF,GAAMG,QAASC,IACzB,MAAMC,EAAQL,EAAKI,GAEfC,aAAiBT,KACnBI,EAAKI,GAAO,IAAIR,KAAKA,KAAKU,IACxBD,EAAME,cACNF,EAAMG,WACNH,EAAMI,UACNJ,EAAMK,WACNL,EAAMM,aACNN,EAAMO,eAECd,MAAMe,QAAQR,GACvBL,EAAKI,GAAOC,EAAMS,IAAKC,GAAStB,EAAWsB,IACjB,iBAAVV,IAChBL,EAAKI,GAAOX,EAAWY,GAAgC,GAIpDL,wCCjCF,MCEDgB,EAAmBC,GACnBnB,MAAMe,QAAQI,GACTA,EAAKH,IAAKC,GAASC,EAAgBD,IAGxCE,aAAgBrB,KACXqB,EAGW,iBAATA,GAA8B,OAATA,EACvBhB,OAAOC,KAAKe,GAAMC,OAAO,CAACC,EAAKf,KACxB,cAARA,IACFe,EAAIf,GAAOY,EAAgBC,EAAKb,KAG3Be,GACN,IAGEF,uCChBF,IAAMG,EAAyB,MAAhC,MAAOA,EACXC,YACEC,EACwBC,GAExB,GAAIA,EACF,MAAM,IAAIC,MAAM,MAAGC,OAAUL,0DAG/BE,EAA2BI,MAC7B,CAKA,cAAOC,CAAQC,GACb,MAAO,CACLC,SAAUT,EACVU,UAAW,CAAC,CAAEC,QAASC,IAAkCC,SAAUL,IAEvE,CAACM,SAAAC,KAAA,mBAAAC,iBApBUhB,GAAyBiB,MAAAC,KAAAD,MAAAjB,EAAA,MAAAc,SAAAC,KAAA,UAAAI,EAAAC,GAAA,MAAzBpB,IAAyBc,SAAAC,KAAA,UAAAI,EAAAE,IAAA,UAJ1BC,eAICtB,CAAyB,4GCD/B,IAAMuB,EAAqB,MAA5B,MAAOA,EAHbtB,cAMmBc,KAAAS,UAASC,OAAOC,MAChBX,KAAAY,cAAaF,OAAOG,OACpBb,KAAAc,WAAUJ,OAAOK,MAE5BC,qBAAkB,IAAAC,EAAAjB,KAAA,SAAAkB,KAAA,YACtB,OAAID,EAAKE,wBAITF,EAAKE,yBAAwBD,KAAC,YAC5B,MAAME,QAAeC,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,OAEfd,EAASQ,EAAKR,OACjBkB,KACDP,EAAOQ,wBACP,CACEC,WAAY,CAAC,mBACbC,MAAOC,KACPC,eAAgBf,EAAKH,QAAQmB,iBAAiBC,UAIlDzB,SAAO0B,cACJC,QAAKC,MAAmBpB,EAAKL,aAC7B0B,UAAU,KACTrB,EAAKE,2BAAwBoB,IAG1B9B,CACT,EApBKU,IAsBEF,EAAKE,qBAAsB,EA3BZ,EA4BxB,CAEMqB,kBAAe,IAAAC,EAAAzC,KAAA,SAAAkB,KAAA,YACnB,OAAIuB,EAAKC,qBAITD,EAAKC,sBAAqBxB,KAAC,YACzB,MAAME,QAAeC,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,OAEfd,EAASgC,EAAKhC,OACjBkB,KACDP,EAAOuB,qBACP,CACEd,WAAY,CAAC,gBACbG,eAAgBS,EAAK3B,QAAQmB,iBAAiBC,UAIlDzB,SAAO0B,cACJC,QAAKC,MAAmBI,EAAK7B,aAC7B0B,UAAU,KACTG,EAAKC,wBAAqBH,IAGvB9B,CACT,EAnBKiC,IAqBED,EAAKC,kBAAmB,EA1BZ,EA2BrB,CAAC3C,SAAAC,KAAA,mBAAAC,iBAhEUO,EAAqB,EAAAT,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAArBpC,EAAqBqC,QAArBrC,EAAqBsC,UAAAC,WAFpB,gBAEDvC,CAAqB,yHCL3B,IAAMwC,EAAa,MAApB,MAAOA,EAGX9D,cACEc,KAAKiD,OAASC,UAAUC,SACxBnD,KAAKoD,iBAAiBpD,KAAKiD,OAC7B,CAEAI,YACE,OAAOrD,KAAKiD,MACd,CAEQG,iBAAiBH,GACvB,OAAOjD,KAAKsD,aAAaL,GAAQM,MAC/B,IAAMvD,KAAKsD,aAAaL,EAAOO,MAAM,KAAK,IAE9C,CAEQF,aAAaL,GACnB,OAAO1B,EAAA,MAAAA,CAAO,KAAgC0B,SAAcxB,KAAMgC,KAChEC,QAAmBD,EAAqBE,QAASV,GACjDjD,KAAKiD,OAASA,GAElB,CAAClD,SAAAC,KAAA,mBAAAC,iBAvBU+C,EAAa,EAAAjD,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAbI,EAAaH,QAAbG,EAAaF,UAAAC,WAFZ,gBAEDC,CAAa,KCAbY,GAAmB,MAA1B,MAAOA,UAA2BC,KAC7BC,oBACP,OAAO,CACT,CAAC/D,SAAAC,KAAA,4DAHU4D,KAAkB3D,GAAlB2D,EAAkB,GAG5B,GAH4B7D,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAlBgB,EAAkBf,QAAlBe,EAAkBd,UAAAC,WAFjB,gBAEDa,CAAmB,oBCCzB,IAAMG,GAAqB,MAA5B,MAAOA,UAA6BC,KAH1C9E,kCAImBc,KAAAiE,gBAAevD,OAAOwD,KAE9BC,YAAYC,GACnB,MAAMC,EAAQrE,KAAKsE,WAAWF,GAEzBC,GAILrE,KAAKiE,aAAaM,SAASF,EAC7B,CAACtE,SAAAC,KAAA,4DAXU+D,KAAoB9D,GAApB8D,EAAoB,GAW9B,GAX8BhE,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAApBmB,EAAoBlB,QAApBkB,EAAoBjB,UAAAC,WAFnB,gBAEDgB,CAAqB,+BCG3B,IAAMS,EAA0B,MAAjC,MAAOA,UAAkCC,MAI7CvF,YAC+CwF,GAE7CC,QAF6C3E,KAAA0E,oBAJ9B1E,KAAA4E,YAAWlE,OAAOmE,OAClB7E,KAAA8E,sBAAqBpE,OAAOqE,IAM7C,CAMAC,YAAYC,GACVN,MAAMK,YAAYC,GAElBjF,KAAK8E,mBAAmBI,eAAe,CAAEC,UAAWF,IAEhDjF,KAAK0E,kBAAkBU,YAIHpF,KAAK4E,SAASS,IAAIC,KAG1BC,kBAAkB,CAChClB,MAAO,uBAHoB,UAAfY,EAAMO,KAAmB,KAAKP,EAAMO,OAAS,IAIzDC,KAAMR,EAAMS,SAEhB,CAAC3F,SAAAC,KAAA,mBAAAC,iBA9BUuE,GAAyBtE,MAK1ByF,MAAkB,EAAA5F,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OALjB4B,EAAyB3B,QAAzB2B,EAAyB1B,UAAAC,WAFxB,gBAEDyB,CAA0B,mGCPvC,MAOMoB,GACoB,8CAWbC,GAAiC,CAC5CT,YAAY,EACZf,MAAO,UACPyB,4BAA4B,EAC5BC,YAtBgB,iDAuBhBC,wBAAyB,4BACzBC,WAAY,CACVC,cArBsB,uCAsBtBC,SArBmC,uCAsBnCC,SACE,0EACFC,cAAe,gBAEjBC,oBAAoB,EACpBC,uBAAuB,EACvBC,mBA/BkC,uCAgClCC,WAAY,CACVC,YAAa,CACXC,kBAAUC,mBAAmBC,gBAC7BA,gBAAiBjB,IAEnBkB,QAAS,+BACTC,UAAW,CACTC,cAAe,yCAAyCpB,8CCIxDqB,GAAuC,CAC3C,CAAErH,QAASsH,KAAmBC,SAAUC,KAAiBC,OAAO,IAgF5D,SAAUC,GAAcxG,GAC5B,MAAO,IAA2BA,EAAQmB,iBAAiBsF,OAC7D,CAEO,MAAMC,GAA4B,CACvC,CACE5H,QAAS6E,MACT0C,SAAU3C,GAEZ,CACE5E,QAAS6H,KACTC,WAxFE,SAAUC,KACd,OAAO,IAAIC,KAAwB,CACjCC,KAAM,CACJ1B,SAAUN,GAAYI,WAAWE,SACjC2B,UAAWjC,GAAYI,WAAWG,SAClC2B,YAAalC,GAAYI,WAAW8B,aAAe,IACnDC,sBACEnC,GAAYI,WAAW+B,uBAAyB,IAClDC,2BAA2B,GAE7BC,MAAO,CACL7B,cAAe8B,KAAqBC,aACpCC,wBAAwB,GAE1BC,OAAQ,CACNC,cAAe,CACbC,SAAUC,IAASC,KACnBC,mBAAmB,EACnBC,eAAgB/C,GAAYS,mBACxB,CACEkC,EACA9C,EACAmD,KAEA,IAAIA,EAIJ,OAAQL,GACN,KAAKC,IAASpJ,MAGZ,YADAyJ,QAAQ7D,MAAMS,GAEhB,KAAK+C,IAASC,KAGZ,YADAI,QAAQC,KAAKrD,GAEf,KAAK+C,IAASO,QAGZ,YADAF,QAAQG,MAAMvD,GAEhB,KAAK+C,IAASS,QAGZ,YADAJ,QAAQK,KAAKzD,GAEf,QAEEoD,QAAQM,IAAI1D,GAChB,OAEFnD,KAIZ,GAoCE,CACE3C,QAASyJ,KACT3B,WAxBE,SAAU4B,KACd,MAAO,CACLC,YAAa,CACXC,OAAQ,CAAC,cAEXC,gBAAiBC,KAAgBC,SAErC,GAmBE,CACE/J,QAASgK,KACTlC,WAxCE,SAAUmC,KACd,MAAMC,EAAuB,IAAIC,IACjCD,SAAqBE,IAAI,GAAGnE,GAAYE,cAAe,CACrD,SAASF,GAAYI,WAAWC,+BAG3B,CACLuD,gBAAiBC,KAAgBC,SACjCG,uBAEJ,GAgCEG,KACAC,KACAC,KACA,CACEvK,QAASwK,KACTtK,SAAU,CACRgC,MAAOuI,KACPC,cAAc,EACdC,WAAW,EACXC,aAAa,IAGjB,CACE5K,QAAS6K,MACT/C,WAAagD,GAAiCA,EAAcrH,YAC5DsH,KAAM,CAAC3H,IAET,CACEpD,QAASgL,MACTD,KAAM,CAAC5J,MACP2G,WAAYJ,IAEd,CACE1H,QAASiL,KACTF,KAAM,CAAC5J,MACP2G,WAAYJ,IAEd,CACE1H,QAAS+F,KACT7F,SAAU+F,IAEZ,CACEjG,QAASkL,KACThL,SAAU,CACRiL,GAAIlF,GAAYxB,MAAM2G,cACtB3G,MAAOwB,GAAYxB,MACnB4G,QAASC,QACTC,YAAaC,eAGjB,CACExL,QAASyL,KACTvL,SAAU,CACRwL,6BAA6B,IAGjC,CACE1L,QAAS2L,KACT7D,WAAa8D,GAAmCA,EAAQtJ,MACxDyI,KAAM,CAACc,OAET,CACE7L,QAAS8L,KACTvE,SAAUvD,IAEZ,CACEhE,QAAS+L,KACT7L,SAAU,CACR8L,kBAAmB,QACnBC,aAAa,IAGjB,CACEjM,QAASoE,KACTmD,SAAUpD,IAEZ,CACEnE,QAASkM,KACThM,SAAU,CACRiM,8BAA8B,EAC9BC,gCAAgC,OAGjC/E,sJC9MAgF,GAAL,SAAKA,GACHA,SAAAC,iBAAA,gBACAD,EAAAE,sBAAA,qBACAF,EAAAG,sBAAA,qBACAH,EAAAI,mBAAA,kBACAJ,EAAAK,6BAAA,4BALGL,CAML,CANA,CAAKA,IAAW,IAWT,IAAMM,GAAc,MAArB,MAAOA,EAeXrN,cAXQc,KAAAwM,sBAAgC,EAChCxM,KAAAyM,iBAAmB,IAAIC,KAA+B,MAC7C1M,KAAA0E,qBAAoBhE,OAAOiF,MAC3B3F,KAAA2M,uBAAsBjM,OAAOkM,MAC7B5M,KAAA6M,iBAAgBnM,OAAOuJ,MACvBjK,KAAA8M,mBAAkBpM,OAAO4E,KACzBtF,KAAA+M,yBAAwBrM,OAAOF,GAC/BR,KAAAgN,iBAAgBtM,OAAOuM,MACvBjN,KAAAkN,sBAAqBxM,OAAOyM,KAC5BnN,KAAAY,cAAaF,OAAOG,OAGnCb,KAAKoN,UAAYpN,KAAKyM,iBAAiBY,cACzC,CAEAC,UACOtN,KAAK0E,kBAAkBU,aAI5BpF,KAAKuN,KAAM,IAAIC,MACZC,iBAAiBD,KAAiBnO,OAClCqO,QAAQ,GAAG1N,KAAK0E,kBAAkBqB,sCAAsC/F,KAAKkN,mBAAmBS,cAAe,CAC9GC,mBAAoBA,IAAM5N,KAAK6N,WAC/BC,QAAS,CACPC,YAAa/N,KAAKkN,mBAAmBS,eAGxCK,yBACAC,QAEHjO,KAAKkO,aAELlO,KAAKuN,IAAIY,cAAc,KACrBnO,KAAKoJ,IAAI,cAAa,GAGxBpJ,KAAKuN,IAAIa,QAAQ,KACXpO,KAAKwM,uBAITxM,KAAKsN,UAELtN,KAAKoJ,IAAI,yCAAuC,GAEpD,CAEM8E,aAAU,IAAAjN,EAAAjB,KAAA,SAAAkB,KAAA,YACd,UACQD,EAAKsM,KAAKc,QAEhBpN,EAAKmI,IAAI,sBACTnI,EAAKqN,QACP,OAASC,GACPtN,EAAK0L,oBAAoB6B,WAAWD,EACtC,CAAC,EARa,EAShB,CAEME,gBAAa,IAAAhM,EAAAzC,KAAA,SAAAkB,KAAA,YACjBuB,EAAK+J,sBAAuB,EAE5B,UACQ/J,EAAK8K,KAAKmB,OAChBjM,EAAK2G,IAAI,qBACX,OAASmF,GACP9L,EAAKkK,oBAAoB6B,WAAWD,EACtC,CAAC,EARgB,EASnB,CAEQD,SACDtO,KAAKuN,MAIVvN,KAAKuN,IAAIoB,GAAG1C,GAAYC,iBAAkB,IAAMlM,KAAK4O,uBACrD5O,KAAKuN,IAAIoB,GAAG1C,GAAYG,sBAAuB,IAAMpM,KAAK6O,4BAC1D7O,KAAKuN,IAAIoB,GAAG1C,GAAYI,mBAAoB,IAAMrM,KAAK8O,yBACvD9O,KAAKuN,IAAIoB,GAAG1C,GAAYE,sBAAuB,IAAMnM,KAAK+O,4BAC1D/O,KAAKuN,IAAIoB,GAAG1C,GAAYK,6BAA8B,IAAMtM,KAAKgP,mCACnE,CAEQJ,sBACN5O,KAAKiP,cAAchD,GAAYC,iBACjC,CAEQ6C,2BACN/O,KAAKiP,cAAchD,GAAYE,uBAEhBnM,KAAKgN,cAAckC,aAAa,CAC7C7K,MAAO,qBACPoB,KAAM,4EAGDtD,cACJC,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,KACTtC,KAAKmP,QAAM,GAGfC,WAAW,KACTpP,KAAKmP,QAAM,EAtHM,IAwHrB,CAEQL,wBACN9O,KAAKiP,cAAchD,GAAYI,oBAEhBrM,KAAKgN,cAAckC,aAAa,CAC7C7K,MAAO,kBACPoB,KAAM,kDAGDtD,cACJC,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,KACTtC,KAAKmP,QAAM,GAGfC,WAAW,KACTpP,KAAKmP,QAAM,EAzIM,IA2IrB,CAEQN,2BACN7O,KAAKiP,cAAchD,GAAYG,uBAE/BpM,KAAK8M,gBAAgBuC,iBAAiB,CACpC5J,KAAM,2CAEV,CAEQuJ,kCACNhP,KAAKiP,cAAchD,GAAYK,8BAC/BtM,KAAK+M,sBAAsBvK,iBAC7B,CAEQ2M,SAENnP,KAAK6M,cAAcsC,OAAO,CAAEG,QAAStP,KAAK6M,cAAczG,SAASmJ,oBACnE,CAEQ1B,WACN,SAAO2B,MACLxP,KAAK6M,cAAc4C,mBAAmB,CACpCH,QAAStP,KAAK6M,cAAczG,SAASmJ,mBACrC/F,OAAQ,CAAC,SAASxJ,KAAK0E,kBAAkBuB,WAAWC,gCAEnD9D,QACCzD,MAAK+Q,GAAUA,EAAMC,cAAW,EAChCC,KAAK,IAAC,EACNvN,MAAmBrC,KAAKY,aAGhC,CAEQqO,cAAcvJ,GACpB1F,KAAKyM,iBAAiBoD,KAAKnK,GAC3B1F,KAAKoJ,IAAI,gBAAgB1D,KAC3B,CAEQ0D,IAAI1D,GACL1F,KAAK0E,kBAAkB6B,uBAK5BuC,QAAQM,IAAI,YAAY1D,IAC1B,CAAC3F,SAAAC,KAAA,mBAAAC,iBA5KUsM,EAAc,EAAAxM,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAd2J,EAAc1J,QAAd0J,EAAczJ,UAAAC,WAFb,gBAEDwJ,CAAc,2DClBpB,IAAMuD,GAA0B,MAAjC,MAAOA,EAA0B/P,SAAAC,KAAA,mBAAAC,iBAA1B6P,EAA0B,EAAA/P,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAA1BD,EAA0BE,UAAA,iCAAAC,OAAA,CAAAC,WAAA,cAAAC,YAAA,EAAAC,SAAA,CAAAlQ,OAAAmQ,mBAAAC,GAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,0DAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YCTnCzQ,MAFJ,UAEIA,CAF4B,QAE5BA,CAD+F,YAE7FA,MAAA,GAGNA,mBALOA,k3CDUM4P,CAA0B,8KECjC5P,MAAA,+DANFA,MAAA,wBAMEA,MAAA,EAAA2Q,GAAA,oBACF3Q,yCAHEA,MAHA,cAAA4Q,EAAAC,UAGA7Q,CAHyB,gBAAA4Q,EAAAE,gBAGzB9Q,CAFiC,aAAA4Q,EAAAG,UAEjC/Q,CADwB,oBAGXA,cAAA,mBAAAgR,0BAUbhR,MAAA,+DAPFA,MAAA,wBAOEA,MAAA,EAAAiR,GAAA,oBACFjR,yCAHEA,MAJA,gBAAA4Q,EAAAE,gBAIA9Q,CAJiC,aAAA4Q,EAAAG,UAIjC/Q,CAHwB,mBAGxBA,CAFsB,cAEtBA,CADiB,UAAA4Q,EAAAC,UAAA7S,OAGJgC,cAAA,mBAAAgR,0BAKjBhR,MAAA,KCLK,IAAMkR,GAAoB,MAA3B,MAAOA,EAbblS,cAcqBc,KAAAqR,YAAc,IAAIC,MAErCtR,KAAA+K,MAAKwG,OAAqB,MAC1BvR,KAAA+Q,QAAUQ,MAAMC,WAChBxR,KAAAiR,WAAUM,OAAc,IACxBvR,KAAAgR,iBAAgBO,OAA0B,SAC1CvR,KAAAyR,YAAWF,QAAiC,EAAO,CAAEG,UAAWC,QAChE3R,KAAA4R,aAAYL,QAAiC,EAAO,CAAEG,UAAWC,QAEjE,cAAcE,GACZ,SAAOA,MAAW7R,KAAK+Q,UACzB,CAAChR,SAAAC,KAAA,mBAAAC,iBAZUmR,EAAoB,EAAArR,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAApBqB,EAAoBpB,UAAA,2BAAAC,OAAA,CAAAlF,GAAA,SAAAgG,QAAA,cAAAE,QAAA,cAAAD,cAAA,oBAAAS,SAAA,eAAAG,UAAA,iBAAAE,QAAA,CAAAT,YAAA,eAAAlB,YAAA,EAAAC,SAAA,CAAAlQ,OAAAmQ,mBAAAC,GAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gMAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,cDtBjCzQ,MAAA,WAcIA,MATF,EAAA6R,GAAA,yBASE7R,CATiB,EAAA8R,GAAA,0BAoBrB9R,QACAA,MAAA,EAAA+R,GAAA,yBAAA/R,cAvBEA,MADA,0BAAA0Q,EAAAgB,YACA1R,CAD6C,qBAAA0Q,EAAAa,YAG7CvR,cAAA0Q,EAAAa,WAAA,qBCUES,MAAoB/R,MACpBgS,KAAgBC,KAChBC,MAAmBC,YACnBC,MAAgBC,OAAA,giBAAAC,cAAA,WAIPrB,CAAoB,wKCM3BlR,MAAA,eAKEA,MAAA,iBAAAwS,GAAAxS,MAAAyS,GAAA,MAAAC,EAAA1S,QAAA,OAAAA,MAAS0S,EAAAC,cAAAH,GAAqB,GAE9BxS,MAAA,cAAUA,MAAA,cACZA,qCAaFA,MAAA,WACEA,MAAA,GACFA,8BADEA,cAAA,eAAA0S,EAAAE,WAAA5U,MAAA,4EAIFgC,MAAA,YAGEA,MAAA,iBAAAwS,GAAA,MAAAK,EAAA7S,MAAA8S,GAAAC,UAAAL,GAAA1S,QAAA,OAAAA,MAAS0S,GAAAM,WAAAR,EAAAK,GAA4B,GAAM,GAE3C7S,MAAA,qCAKEA,MADA,sBAAAwS,GAAA,MAAAK,EAAA7S,MAAA8S,GAAAC,UAAAL,GAAA1S,QAAA,OAAAA,MAAc0S,GAAAM,WAAAR,EAAAK,GAA4B,GAAK,EAC/C7S,CADgD,yBAAAwS,GAAA,MAAAK,EAAA7S,MAAA8S,GAAAC,UAAAL,GAAA1S,QAAA,OAAAA,MAC/B0S,GAAAO,cAAAT,EAAAK,GAA8B,GAEnD7S,sCAJIA,cAAA,UAAA6S,6CAOJ7S,MAAA,YAEEA,MAAA,iBAAAwS,GAAAxS,aAAAkT,GAAAlT,MAASwS,EAAAW,kBAAwB,GAEjCnT,MAAA,eAIEA,MAAA,iBAAAwS,GAAAxS,MAAAkT,GAAA,MAAAR,EAAA1S,QAAA,OAAAA,MAAS0S,EAAAU,YAAAZ,GAAmB,GAE5BxS,MAAA,oBAEJA,WCzCG,IAAMqT,GAAc,MAArB,MAAOA,EAiBXrU,cAhBmBc,KAAAwT,iBAAgBC,OACjC,IAGiBzT,KAAA0T,SAAQD,OAAsB,MAC9BzT,KAAA2T,cAAaF,OAAe,GAC5BzT,KAAA4T,gBAAeH,OAAe,GAC9BzT,KAAA6T,aAAYJ,QAAO,GACnBzT,KAAA8S,WAAa,IAAIgB,OAAY,GAE/B9T,KAAA+T,0BAAyBrT,OAAOsT,MAChChU,KAAAiU,UAASvT,OAAOwT,MAChBlU,KAAAmU,kBAAiBzT,OAAO6L,IACxBvM,KAAAoU,gBAAe1T,OAAO2T,MACtBrU,KAAAiE,gBAAevD,OAAOwD,KAGrClE,KAAKsU,aAAS,EAEdC,OACE,KACEvU,KAAKiE,aAAauQ,UAAUxU,KAAK0T,QAAO,EAE1C,CAAEe,mBAAmB,IAGvBzU,KAAKmU,eAAe/G,UACjBhL,QAAKsS,SAAoB,EAAIrS,SAC7BC,UAAWoD,IACM,kBAAZA,GAIJ1F,KAAKsU,WAAS,GAGlBtU,KAAKoU,aAAaO,SAASvS,QAAKC,SAAsBC,UAAU,KAC9DtC,KAAKsU,WAAS,GAGhBtU,KAAK8S,WAAW8B,aAAaxS,QAAKC,SAAsBC,UAAU,KAChEtC,KAAK4T,aAAa5J,IAAI,GACtBhK,KAAKsU,WAAS,EAElB,CAEgBpB,WACd2B,EACAnP,EACA2N,GAAwB,IAAApS,EAAAjB,KAAA,SAAAkB,KAAA,YAExB,GAAImS,EACFwB,EAAMxB,uBAAe,GACZ3N,EAAQ5G,KAAKgW,IACtB,IACE,MAAMC,GAAO,IAAIC,IAAItP,EAAQ5G,KAAKgW,KAAKG,SACvChU,EAAKgT,OAAOiB,SAAS,CAACH,IACxB,OACE,MACF,EAGGrP,EAAQqF,YAIGrF,EAAQyP,OACpBlU,EAAK8S,uBAAuBqB,aAAa1P,EAAQqF,IACjD9J,EAAK8S,uBAAuBsB,WAAW3P,EAAQqF,OAQnD9J,EAAKmT,aAAakB,QAElBrU,EAAKuS,cAAc+B,OAAQ/B,IACrBvS,EAAK6R,WAAW5U,QAAUwH,EAAQyP,OAElC3B,GAAcgC,OACXC,IAAiBA,GAAa1K,KAAOrF,EAAQqF,KAC3C,GAIFyI,GAAc7U,IAAK8W,IACpBA,GAAa1K,KAAOrF,EAAQqF,GACvB0K,GAGF,IAAIC,KAA8B,IACpCD,GACHN,QAASzP,EAAQyP,WAKvBlU,EAAK0U,YAAYjQ,EAAQyP,OAAS,GAAI,GAAI,EAlDlB,EAmD1B,CAEgBhC,cACd0B,EACAnP,GAAsC,IAAAjD,EAAAzC,KAAA,SAAAkB,KAAA,YAEtC2T,EAAMxB,kBAED3N,EAAQqF,WAIGrF,EAAQkQ,WACpBnT,EAAKsR,uBAAuB8B,UAAUnQ,EAAQqF,IAC9CtI,EAAKsR,uBAAuB+B,QAAQpQ,EAAQqF,MAQhDtI,EAAK+Q,cAAc+B,OAAQ/B,IACzBA,GAAc7U,IAAK8W,IACbA,GAAa1K,KAAOrF,EAAQqF,GACvB0K,GAGF,IAAIC,KAA8B,IACpCD,GACHG,YAAalQ,EAAQkQ,cAGzB,EA7BoC,EA8BxC,CAEU/C,cAAcgC,GACtBA,EAAMxB,mBAAe,EAErBiB,MACEtU,KAAK+T,uBAAuBlB,gBAC5B7S,KAAK6T,UACL,KACE7T,KAAKoU,aAAakB,QAClBtV,KAAKsU,WAAS,EAGpB,CAEUhB,YAAYuB,GACpBA,EAAMxB,kBACNrT,KAAK4T,aAAa2B,OAAQ7B,IAAWA,GAAS,GAAK,GACnD1T,KAAKsU,WACP,CAEUyB,UACR,OACwB,GAAtB/V,KAAK4T,gBACJ5T,KAAK8S,WAAW5U,MAAQ8B,KAAK0T,SAAW,EAAI1T,KAAK2T,aAEtD,CAEQW,aACNA,QACEtU,KAAK+T,uBAAuBiC,iBAAiB,CAC3Cb,QAAQnV,KAAK8S,WAAW5U,OAAgB,KACxC+X,UAAW,EACXC,SAAgC,GAAtBlW,KAAK4T,eACfuC,QAAS,YACTC,kBAAkB,IAEpBpW,KAAK6T,UACJwC,IACCrW,KAAK2T,WAAW3J,IAAIqM,EAAS1C,YAC7B3T,KAAK0T,MAAM1J,IAAIqM,EAASC,aACxBtW,KAAKwT,cAAcxJ,IAAIqM,EAASE,OAAS,GAAE,EAGjD,CAEQZ,YAAYa,GAClBxW,KAAK0T,MAAM6B,OAAQ7B,IAAWA,GAAS,GAAK8C,EAC9C,CAACzW,SAAAC,KAAA,mBAAAC,iBAvLUsT,EAAc,EAAAxT,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAdwD,EAAcvD,UAAA,oBAAAG,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,GAAAC,KAAA,EAAAC,OAAA,m5BAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBD/BzBzQ,MATF,aASEA,CADD,cACWA,MAAA,mBACZA,UACAA,MAAA,kBAKEA,MAAA,iCAEEA,MADF,UACEA,CADyB,WACCA,MAAA,mBAAaA,QACvCA,MAAA,4BAIEA,MAAA,iBAAAwS,IAAAxS,aAAAuW,GAAAvW,MAASwS,GAAAW,kBAAwB,GAEjCnT,MAAA,yBACFA,QACAA,MAAA,GAAAwW,GAAA,gBAkBExW,MAPF,SAOEA,CADD,eACWA,MAAA,iBAEdA,YACAA,MAAA,GAAAyW,GAAA,aAKAzW,MAAA,GAAA0W,GAAA,aAAAC,IAeA3W,MAAA,GAAA4W,GAAA,cAeF5W,iCA5EEA,MADA,QAAA0Q,EAAA8C,QACAxT,CADiB,oBAAA6W,GAUU7W,MAAA,GAAAA,MAAA,SAAA0Q,EAAAiD,aAMvB3T,MAAA,GAAAA,MAAA,UAAA0Q,EAAAkC,YAKF5S,MAAA,GAAAA,MAAA0Q,EAAA4C,gBAAAwD,OAAA,OAgBE9W,cAAA,aAAAA,MAAA,EAAAoQ,KAKJpQ,MAAA,GAAAA,MAAA0Q,EAAA4C,gBAAAwD,QAAA,MAKA9W,cAAA0Q,EAAA4C,iBAeAtT,MAAA,GAAAA,MAAA0Q,EAAAmF,UAAA,uBCxCEkB,KACAC,MAAa/W,MACbgX,MAAa/E,kBACbgF,KACAC,KACAC,KACAnF,KAAgBG,KAChBiF,MAEAnG,IAAoBoB,OAAA,ggCAGXe,CAAc,iCClCpB,IAAMiE,GAAmB,MAA1B,MAAOA,EAOX9F,UAAU+F,EAAiB,GAAIC,EAAqB,IAClD,GAAmB,MAAfA,EACF,OAAOD,EAKT,MAAME,EAAUD,EAAWE,QAAQ,yBAA0B,QACvDC,EAAK,2BAELC,GAAcH,EAAQnU,MAAMqU,GAC/BrC,OAAQuC,KAASA,GAAIC,MAAMH,IAC3BlZ,IAAKoZ,IAAQA,GAAIE,QAEpB,GAA2B,IAAvBH,GAAYd,SAAiBS,EAC/B,OAAOA,EAGT,MAAMS,GAAS,IAAIC,OAAO,IAAIL,GAAYM,KAAK,QAAS,MAExD,OAAOX,EAAOG,QAAQM,GAAQ,kBAChC,CAACnY,SAAAC,KAAA,mBAAAC,iBA5BUuX,EAAmB,EAAAzX,SAAAC,KAAA,WAAAI,EAAAiY,IAAA,6BAAnBb,EAAmBc,MAAA,EAAAnI,YAAA,WAAnBqH,CAAmB,uOCiBxBtX,MAAA,gBAIEA,MAAA,cACFA,+BAEAA,MAAA,wBAGEA,MAAA,qCAOFA,MAAA,6BAEEA,MAAA,YACEA,MAAA,qBAAcA,MAAA,YAAQA,MAAA,GAAyCA,QAAUA,MAAA,sCACzEA,MAAA,QACAA,MAAA,UAIEA,MAAA,wBAEJA,gCARwBA,MAAA,GAAAA,MAAAqY,EAAAC,eAAA,eAAAta,OAGpBgC,MAAA,GACAA,MADA,aAAAA,MAAA,EAAAoQ,IACApQ,CADyB,cAAAA,MAAA,EAAAuY,GAAAF,EAAAC,eAAA,eAAAta,+BAc/BgC,MAAA,6BA0BcA,MAAA,mFACEA,MAAA,YAAAA,MAAA,IAAAwY,EAAAxa,MAAAya,YAAAJ,EAAAC,eAAA,eAAAta,OAAAgC,kCATNA,MADF,kBACEA,CAD8B,SAI5BA,MAAA,6BAIAA,MAAA,EAAA0Y,GAAA,eAMJ1Y,+CAdYA,MAAA,QAAAwY,EAAAxa,OAERgC,cAAA,0DAAAqY,EAAAM,sBAAAC,SAIE5Y,cAAA,QAAAwY,EAAAxa,MAAA6a,QAEF7Y,cAAAwY,EAAAxa,MAAAya,YAAA,gDArBNzY,MADF,iBACEA,CADY,aAEVA,MAAA,GAEAA,MAAA,UAIEA,MAAA,mBAAAA,MAAA8Y,GAAA,MAAAT,EAAArY,MAAA,UAAAA,MAASqY,EAAAU,aAAY,GAErB/Y,MAAA,gBAEJA,UACAA,MAAA,EAAAgZ,GAAA,oBAAArC,IAiBF3W,4CA5BIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAY,aAAAC,SAAA1F,MAAA,IAAA6E,EAAAc,cAAAd,EAAAM,sBAAAC,QAAAP,EAAAY,aAAAC,SAAAE,OAAAtC,OAAA,QAKE9W,cAAA,cAAAA,MAAA,EAAAqZ,GAAAhB,EAAAM,sBAAAC,QAAAU,EAAAtb,QAMJgC,MAAA,GAAAA,MAAAqY,EAAAY,aAAAC,SAAAE,mCAgDQpZ,MAAA,mFACEA,MAAA,YAAAA,MAAA,IAAAuZ,EAAAvb,MAAAya,YAAA,MAAAc,EAAAvb,MAAAwb,cAAAnB,EAAAC,eAAA,eAAAta,OAAAgC,kCATNA,MADF,kBACEA,CAD8B,SAI5BA,MAAA,6BAIAA,MAAA,EAAAyZ,GAAA,eASJzZ,+CAjBYA,MAAA,QAAAuZ,EAAAvb,OAERgC,cAAA,0DAAAqY,EAAAM,sBAAAe,OAIE1Z,cAAA,QAAAuZ,EAAAvb,MAAA6a,QAEF7Y,cAAAuZ,EAAAvb,MAAAwb,cAAA,gDA1BNxZ,MADF,iBACEA,CADY,aAEVA,MAAA,GAOAA,MAAA,UAIEA,MAAA,mBAAAA,MAAAkT,GAAA,MAAAmF,EAAArY,MAAA,UAAAA,MAASqY,EAAAU,aAAY,GAErB/Y,MAAA,gBAEJA,UACAA,MAAA,EAAA2Z,GAAA,oBAAAhD,IAoBF3W,4CApCIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAY,aAAAW,+BAAApG,MAAA,IAAA6E,EAAAc,cAAAd,EAAAM,sBAAAe,MAAArB,EAAAY,aAAAW,+BAAAR,OAAAtC,OAAA,QAUE9W,cAAA,cAAAA,MAAA,EAAAqZ,GAAAhB,EAAAM,sBAAAe,MAAAJ,EAAAtb,QAMJgC,MAAA,GAAAA,MAAAqY,EAAAY,aAAAW,+BAAAR,mCA4CQpZ,MAAA,mFACEA,MAAA,YAAAA,MAAA,IAAA6Z,EAAA7b,MAAAya,YAAA,MAAAoB,EAAA7b,MAAAwb,cAAA,MAAAK,EAAA7b,MAAA8b,QAAAzB,EAAAC,eAAA,eAAAta,OAAAgC,kCAPNA,MADF,kBACEA,CAD8B,SAE5BA,MAAA,6BAIAA,MAAA,EAAA+Z,GAAA,eASJ/Z,+CAfYA,MAAA,QAAA6Z,EAAA7b,OACLgC,cAAA,0DAAAqY,EAAAM,sBAAAqB,KAGDha,cAAA,QAAA6Z,EAAA7b,MAAA6a,QAEF7Y,cAAA6Z,EAAA7b,MAAA8b,QAAA,gDAnBN9Z,MADF,iBACEA,CADY,aAEVA,MAAA,GAEAA,MAAA,UAIEA,MAAA,mBAAAA,MAAAia,GAAA,MAAA5B,EAAArY,MAAA,UAAAA,MAASqY,EAAAU,aAAY,GAErB/Y,MAAA,gBAEJA,UACAA,MAAA,EAAAka,GAAA,oBAAAvD,IAkBF3W,4CA7BIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAY,aAAAkB,qBAAA3G,MAAA,IAAA6E,EAAAc,cAAAd,EAAAM,sBAAAqB,IAAA3B,EAAAY,aAAAkB,qBAAAf,OAAAtC,OAAA,QAKE9W,cAAA,cAAAA,MAAA,EAAAqZ,GAAAhB,EAAAM,sBAAAqB,IAAAV,EAAAtb,QAMJgC,MAAA,GAAAA,MAAAqY,EAAAY,aAAAkB,qBAAAf,mCAoDQpZ,MAAA,mFACEA,MAAA,YAAAA,MAAA,IAAAoa,EAAApc,MAAAya,YAAA,MAAA2B,EAAApc,MAAAwb,cAAAnB,EAAAC,eAAA,eAAAta,OAAAgC,kCAZNA,MADF,kBACEA,CAD8B,SAO5BA,MAAA,6BAIAA,MAAA,EAAAqa,GAAA,eASJra,+CApBYA,MAAA,QAAAoa,EAAApc,OAERgC,cAAA,0DAAAqY,EAAAM,sBAAA2B,qBAOEta,cAAA,QAAAoa,EAAApc,MAAA6a,QAEF7Y,cAAAoa,EAAApc,MAAAwb,cAAA,gDA7BNxZ,MADF,iBACEA,CADY,aAEVA,MAAA,GAOAA,MAAA,UAIEA,MAAA,mBAAAA,MAAAua,GAAA,MAAAlC,EAAArY,MAAA,UAAAA,MAASqY,EAAAU,aAAY,GAErB/Y,MAAA,gBAEJA,UACAA,MAAA,EAAAwa,GAAA,oBAAA7D,IAuBF3W,4CAvCIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAY,aAAAwB,qBAAAjH,MAAA,IAAA6E,EAAAc,cAAAd,EAAAM,sBAAA2B,oBAAAjC,EAAAY,aAAAwB,qBAAArB,OAAAtC,OAAA,QAUE9W,cAAA,cAAAA,MAAA,EAAAqZ,GAAAhB,EAAAM,sBAAA2B,oBAAAhB,EAAAtb,QAMJgC,MAAA,GAAAA,MAAAqY,EAAAY,aAAAwB,qBAAArB,mCA6CQpZ,MAAA,mFACEA,MAAA,YAAAA,MAAA,IAAA0a,EAAA1c,MAAA2c,aAAAD,EAAA1c,MAAA4c,KAAA,MAAAF,EAAA1c,MAAA4c,KAAA,UAAAF,EAAA1c,MAAA6c,KAAA,KAAAH,EAAA1c,MAAA8c,QAAAzC,EAAAC,eAAA,eAAAta,OAAAgC,kCALNA,MADF,kBACEA,CADiD,SAI/CA,MAAA,EAAA+a,GAAA,eAaJ/a,+CAjBYA,MAAA,sBAAA0a,EAAA1c,MAAA6M,IAER7K,cAAA,0DAAAqY,EAAAM,sBAAAqC,UAEAhb,cAAA0a,EAAA1c,MAAA2c,YAAA,gDAjBN3a,MADF,iBACEA,CADY,aAEVA,MAAA,GAEAA,MAAA,UAIEA,MAAA,mBAAAA,MAAAib,GAAA,MAAA5C,EAAArY,MAAA,UAAAA,MAASqY,EAAAU,aAAY,GAErB/Y,MAAA,gBAEJA,UACAA,MAAA,EAAAkb,GAAA,oBAAAvE,IAoBF3W,4CA/BIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAY,aAAAkC,UAAA3H,MAAA,IAAA6E,EAAAc,cAAAd,EAAAM,sBAAAqC,SAAA3C,EAAAY,aAAAkC,UAAA/B,OAAAtC,OAAA,QAKE9W,cAAA,cAAAA,MAAA,EAAAqZ,GAAAhB,EAAAM,sBAAAqC,SAAA1B,EAAAtb,QAMJgC,MAAA,GAAAA,MAAAqY,EAAAY,aAAAkC,UAAA/B,kCAdJpZ,MAxJA,EAAAob,GAAA,mBAwJApb,CAxJ4D,EAAAqb,GAAA,mBAwJ5Drb,CAvHwG,EAAAsb,GAAA,mBAuHxGtb,CA9EoF,EAAAub,GAAA,mBA8EpFvb,CA5CoF,EAAAwb,GAAA,yCA5GpFxb,MAAAqY,EAAAY,aAAAC,UAAAb,EAAAY,aAAAC,SAAA1F,MAAA,MAiCAxT,cAAAqY,EAAAY,aAAAW,gCAAAvB,EAAAY,aAAAW,+BAAApG,MAAA,MAyCAxT,cAAAqY,EAAAY,aAAAkB,sBAAA9B,EAAAY,aAAAkB,qBAAA3G,MAAA,MAkCAxT,cAAAqY,EAAAY,aAAAwB,sBAAApC,EAAAY,aAAAwB,qBAAAjH,MAAA,MA4CAxT,cAAAqY,EAAAY,aAAAkC,WAAA9C,EAAAY,aAAAkC,UAAA3H,MAAA,8BA0CRxT,MAAA,YACEA,MAAA,4HACFA,SC3KK,IAAMyb,GAAoB,MAA3B,MAAOA,EAYX,cAAIC,GACF,OAA6B,OAAtB5b,KAAKmZ,YACd,CAEA,WAAI0C,GACF,QACwB,OAAtB7b,KAAKmZ,cACJnZ,KAAKmZ,aAAaC,UAAU1F,OAC5B1T,KAAKmZ,aAAawB,sBAAsBjH,OACxC1T,KAAKmZ,aAAakB,sBAAsB3G,OACxC1T,KAAKmZ,aAAaW,gCAAgCpG,OAClD1T,KAAKmZ,aAAakC,WAAW3H,MAElC,CAaAxU,cAjCAc,KAAAmZ,aAAmD,KACnDnZ,KAAA8b,qBAA+B,EAC/B9b,KAAAqZ,cAAgB0C,KAAc1C,cAC9BrZ,KAAA6Y,sBAAwBA,IACxB7Y,KAAAgc,kBAA4B,EAC5Bhc,KAAAic,WAAqB,EAiBFjc,KAAAkc,eAAczI,QAAO,GAEhCzT,KAAAmc,aAAuB,GAEdnc,KAAAoc,oBAAmB1b,OAAO2b,MAC1Brc,KAAAsc,aAAY5b,OAAO6b,OACnBvc,KAAAiU,UAASvT,OAAOwT,MAChBlU,KAAAwc,YAAW9b,OAAO+b,OAClBzc,KAAA0c,eAAchc,OAAOic,OACrB3c,KAAAY,cAAaF,OAAOG,OAuErCb,KAAAwY,eAAkBhT,GAChBxF,KAAK4c,KAAKvX,IAAIG,GArEdxF,KAAK4c,KAAO5c,KAAK0c,YAAYG,YAAYC,MAAmB,CAC1DC,YAAa/c,KAAK0c,YAAYG,YAAY9L,QAAQ,MAGpD/Q,KAAKwY,eAAe,eACjB5D,aAAaxS,QACZzD,MAAKqe,GAA0B,iBAATA,GAAqBA,EAAOA,EAAK/E,OAAS,KAAG,EACnEgF,MA1EY,MA0EY,EACxBvI,SAAoB,EACpBrS,MAAmBrC,KAAKY,aAEzB0B,UAAWpE,IACV8B,KAAKkd,OAAOhf,EAAK,EAEvB,CAEAif,gBACEnd,KAAK8b,qBAAsB,EAC3B9b,KAAKic,WAAY,CACnB,CAEAmB,iBACEpd,KAAK8b,qBAAsB,EAC3B9b,KAAKic,WAAY,CACnB,CAEAhD,aACEjZ,KAAKqd,aAAapE,YACpB,CAEAqE,YAAYzI,GACV,MAAM0I,EAAS1I,EAAM0I,OAEE,MAAnBA,EAAOC,SACTD,EAAOE,OAEX,CAKAC,WACE1d,KAAKkd,OAAOld,KAAKwY,eAAe,eAAeta,OAAO,EACxD,CAKAyf,SAASzf,GACP8B,KAAKwY,eAAe,eAAeoF,SAAS,IAE5C5d,KAAKwc,SAASqB,kBAAkB,gBAAgBC,OAE3B,iBAAV5f,GACT8B,KAAKoc,iBAAiB2B,kBAAkB,CACtCrG,WAAY1X,KAAKmc,aACjB6B,SAAU9f,EAAM6M,GAChBkT,aAAc/f,EAAM6a,SAGtB/Y,KAAKiU,OAAOiB,SAAS,CAAChX,EAAM6a,UAE5B/Y,KAAKiU,OAAOiB,SAAS,CAAChX,IAGxB8B,KAAKod,gBACP,CAKQF,OAAOF,EAAckB,GAAiB,GAC5C,GACElB,EAAKhG,OA7Ic,GA8InBgG,IAASmB,OACRD,EAKD,OAHAle,KAAKmZ,aAAe,UACpBnZ,KAAKsc,UAAU8B,gBAKjB9J,QACEtU,KAAKoc,iBAAiBW,YAAYC,GAClChd,KAAKkc,YACJ7F,IACCrW,KAAKmZ,aAAe9C,EACpBrW,KAAKmc,aAAea,EACpBhd,KAAKsc,UAAU8B,cAAY,EAGjC,CAACre,SAAAC,KAAA,mBAAAC,iBAnIU0b,EAAoB,EAAA5b,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAApB4L,EAAoB3L,UAAA,2BAAAqO,UAAA,SAAA1N,EAAAC,MAAA,EAAAD,SACpB2N,MAAsB,+8BDxFnCpe,MAAA,WAGEA,MAAA,qBAAAwS,IAAAxS,aAAAuW,GAAAvW,MAAa0Q,EAAA0M,YAAA5K,IAAmB,GAO5BxS,MALJ,WAKIA,CALqB,qBAKrBA,CADD,eAWGA,MAFA,yBAAAA,aAAAuW,GAAAvW,MAAe0Q,EAAA8M,WAAU,EAEzBxd,CAF0B,mBAAAA,aAAAuW,GAAAvW,MACjB0Q,EAAAuM,gBAAe,EACxBjd,CADyB,kBAAAA,aAAAuW,GAAAvW,MACjB0Q,EAAAwM,iBAAgB,GAV1Bld,QAmBEA,MAPF,EAAAqe,GAAA,iBAOEre,CAPoB,EAAAse,GAAA,qBActBte,MAAA,WAKEA,MADA,EAAAue,GAAA,sBACAve,CADiD,EAAAwe,GAAA,cAanDxe,QACAA,MAAA,4BAIEA,MAAA,0BAAAwS,IAAAxS,aAAAuW,GAAAvW,MAAkB0Q,EAAA+M,SAAAjL,GAAAiM,OAAAzgB,OAA6B,GAG/CgC,MADA,GAAA0e,GAAA,sBACA1e,CADiD,GAAA2e,GAAA,KAkMzD3e,cACAA,MAAA,GAAA4e,GAAA,yBAAA5e,8CA7PEA,MAAA,wBAAA0Q,EAAAqL,WAGM/b,cAAA,YAAA0Q,EAAAgM,MAYA1c,MAAA,GAAAA,MAAA,kBAAA6e,GAKF7e,MAAA,GAAAA,MAAA0Q,EAAAsL,cAAA,KAgBEhc,MAAA,GAAAA,MAAA,UAAA0Q,EAAAkL,qBAAAlL,EAAAgL,aAAAhL,EAAAiL,SAEe3b,cAAA,mBAAA8e,IACf9e,cAAA0Q,EAAA4H,eAAA,eAAAta,QAAA0S,EAAAsL,eAAAtL,EAAAiL,QAAA,MAmBe3b,MAAA,GAAAA,MAAA,mBAAA8e,IACf9e,cAAA0Q,EAAAuI,aAAA,uBCSJ9G,MAAmBlS,oCACnB8e,MAAkB7M,YAClB8M,MAAc5M,MACd6M,MAAqBC,MAAAC,UAAAD,MACrBlI,MAAaoI,MACbC,MAAwBC,MACxBjN,KACA6E,KACAqI,KACAC,KAEAlI,GACAD,OAAkB/E,OAAA,izGAAAC,cAAA,EAAAkN,gBAAA,WAKThE,CAAoB,4CClF7Bzb,MAAA,WAIEA,MAAA,uBACFA,kDAGAA,MAAA,cAIEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA8B,EAAArY,QAAA,OAAAA,MAASqY,EAAAqH,mBAAkB,GAE3B1f,MAAA,0BACAA,MAAA,4BAMFA,gCAJIA,MAAA,GAEAA,MAFA,QAAAqY,EAAAM,sBAAAe,MAEA1Z,CAFqC,gBAErCA,CADoB,uDAMxBA,MAAA,cAIEA,MAAA,mBAAAA,MAAA8Y,GAAA,MAAAT,EAAArY,QAAA,OAAAA,MAASqY,EAAAsH,qBAAoB,GAE7B3f,MAAA,wCACAA,MAAA,4BAMFA,gCAJIA,MAAA,GAEAA,MAFA,QAAAqY,EAAAM,sBAAAiH,cAEA5f,CAF6C,gBAE7CA,CADoB,uDAMxBA,MAAA,WAIEA,MAAA,gBACFA,QACAA,MAAA,cAGEA,MAAA,mBAAAA,MAAA8S,GAAA,MAAAuF,EAAArY,QAAA,OAAAA,MAASqY,EAAAwH,aAAY,GAErB7f,MAAA,mBACFA,SCzCG,IAAM8f,GAAmB,MAA1B,MAAOA,EAPb9gB,cAUqBc,KAAAigB,aAAYvf,OAAOwf,KACnBlgB,KAAA6Y,sBAAwBA,IAE1B7Y,KAAAiU,UAASvT,OAAOwT,MAEhBlU,KAAAmgB,+BAA8Bzf,OAC7C0f,MAGQL,aACR/f,KAAKiU,OACFiB,SAAS,CAAC,KAAM,CAAEmL,oBAAoB,IACtC5e,KAAK,IAAMzB,KAAKiU,OAAOiB,SAAS,CAAC,cACtC,CAEU0K,mBACR5f,KAAKiU,OACFiB,SAAS,CAAC,KAAM,CAAEmL,oBAAoB,IACtC5e,KAAK,IAAMzB,KAAKiU,OAAOiB,SAAS,CAAC,eACtC,CAEU2K,qBACR7f,KAAKmgB,4BAA4BG,0BACnC,CAACvgB,SAAAC,KAAA,mBAAAC,iBA1BU+f,EAAmB,EAAAjgB,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAnBiQ,EAAmBhQ,UAAA,0BAAAqO,UAAA,SAAA1N,EAAAC,MAAA,EAAAD,SACnB4P,MAAO,uuBDjBpBrgB,MAAA,cA4CEA,MA3CA,EAAAsgB,GAAA,YA2CAtgB,CAxCG,EAAAugB,GAAA,eAwCHvgB,CAhC6E,EAAAwgB,GAAA,eAgC7ExgB,CAhByF,EAAAygB,GAAA,KA+B3FzgB,6BA1DEA,cAAA,OAAA0gB,EAAAhQ,EAAAqP,UAAAY,YAAA,MAAAD,EAAAE,aAAAF,EAAAE,YAAAC,qCAAA,OAAAH,EAAAhQ,EAAAqP,UAAAY,YAAA,MAAAD,EAAAE,aAAAF,EAAAE,YAAAE,gDAAA,MAWA9gB,cAAA,OAAA+gB,GAAArQ,EAAAqP,UAAAY,YAAA,MAAAI,GAAAH,aAAAG,GAAAH,YAAAC,oCAAA,MAgBA7gB,cAAA,OAAAghB,GAAAtQ,EAAAqP,UAAAY,YAAA,MAAAK,GAAAJ,aAAAI,GAAAJ,YAAAE,gDAAA,MAgBA9gB,cAAA,OAAAihB,GAAAvQ,EAAAqP,UAAAY,YAAA,MAAAM,GAAAL,aAAAK,GAAAL,YAAAM,cAAA,sBC9BUjK,MAAahX,YAAEuf,KAAsBvN,KAAgBC,MAAAI,OAAA,mEAEpDwN,CAAmB,kICV5B9f,MAAA,kCACEA,MAAA,oBAAaA,MAAA,OAAGA,MAAA,GAA2BA,QAC1CA,MAAA,iBAAWA,MAAA,OAAGA,MAAA,GAA6BA,QAC3CA,MAAA,eAASA,MAAA,OAAGA,MAAA,GACfA,gCAJ4BA,MAAA,aAAAqY,EAAA8I,gBAAAtW,IACV7K,MAAA,GAAAA,MAAAqY,EAAA8I,gBAAAhd,OACDnE,MAAA,GAAAA,MAAAqY,EAAA8I,gBAAApW,SACF/K,MAAA,GAAAA,MAAAqY,EAAA8I,gBAAAlW,wCAkEPjL,MARF,cAQEA,CADD,cACWA,MAAA,gBACZA,0CAHEA,MAAA,oBAAAohB,EAAAC,gDAWFrhB,MAAA,eAMEA,MAAA,mBAAAA,MAAA8S,GAAA,MAAAuF,EAAArY,MAAA,UAAAA,MAASqY,EAAAiJ,uBAAsB,GAE/BthB,MAAA,cAAUA,MAAA,0BACZA,yCAJEA,MAAA,sCAAAuhB,EAAAlJ,EAAA0H,UAAAY,WAAA,KAAAY,EAAAjc,iDAOFtF,MAAA,eAMEA,MAAA,yBAAAwhB,EAAAxhB,MAAAyhB,GAAApJ,EAAArY,MAAA,UAAAA,MAASqY,EAAAqJ,cAAAF,GAAkB,GAE3BxhB,MAAA,cAAUA,MAAA,GACZA,4BAJEA,MAAA,aAAAwhB,EAAAG,aAAA,IAGU3hB,MAAA,GAAAA,MAAAwhB,EAAAI,iCAaV5hB,MARF,cAQEA,CADD,cACWA,MAAA,mBACZA,2CAHEA,MAAA,oBAAA6hB,8BAsBE7hB,MARF,cAQEA,CADD,cACWA,MAAA,cACZA,2CAHEA,MAAA,oBAAA8hB,8BAdJ9hB,MAAA,EAAA+hB,GAAA,iBAmBA/hB,MAAA,eAOEA,MAAA,uBAKFA,mDA/BAA,MAAAgiB,EAAApB,YAAAqB,qBAAAD,EAAApB,YAAAsB,uBAAAF,EAAApB,YAAAuB,gBAAAH,EAAApB,YAAAwB,wBAAAJ,EAAApB,YAAAyB,oBAAAL,EAAApB,YAAA0B,iBAAA,MAwBEtiB,cAAA,oBAAAuiB,GAIEviB,QACAA,MADA,SAAAgiB,EAAAQ,UACAxiB,CADyB,OAAAgiB,EAAA1c,iCAnEjCtF,MAAA,YAaEA,MAZA,EAAAyiB,GAAA,gBAYAziB,CAZgC,EAAA0iB,GAAA,iBAwBhC1iB,MAAA,mBAaAA,MAZA,EAAA2iB,GAAA,gBAYA3iB,CAZqC,EAAA4iB,GAAA,iBA8CvC5iB,sCAvEEA,cAAAqY,EAAA0H,UAAA8C,eAAA,MAYA7iB,eAAAuhB,EAAAlJ,EAAAyK,gBAAAC,OAAA,KAAAxB,GAaAvhB,MAAA,GAAAA,MAAAqY,EAAAyK,gBAAAzB,OAAAvK,OAAA,MAYA9W,eAAAgjB,EAAA3K,EAAA0H,UAAAY,WAAA,KAAAqC,6CAsCAhjB,MAAA,UAOEA,MAAA,yBAAAijB,EAAAjjB,MAAAkjB,GAAAnQ,UAAAsF,EAAArY,QAAA,OAAAA,MAASqY,EAAAqJ,cAAAuB,GAAmB,GAE5BjjB,MAAA,cAAUA,MAAA,GAA2CA,QAAYA,MAAA,GACnEA,oCAJEA,MAJA,mBAAAijB,EAAApY,GAIA7K,CAJ8B,OAAAijB,EAAAE,WAAA,IAAAF,EAAArO,IAAA5U,MAI9BA,CAH0C,aAAAijB,EAAAtB,aAAA,8FAMhC3hB,MAAA,GAAAA,MAAAijB,EAAArB,KAAAqB,EAAArB,KAAA,eAAuD5hB,cAAA,IAAAijB,EAAA3d,KAAA,6BAsCnEtF,MAAA,YAIEA,MAAA,oBACFA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,cAAQA,QAClBA,MAAA,oBACFA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,YAAMA,QAAYA,MAAA,aAC9BA,gCAKAA,MAAA,YAIEA,MAAA,kBACFA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,kBAAYA,QAAYA,MAAA,2BACpCA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,mBAAaA,QAAYA,MAAA,iBACrCA,gCAGAA,MAAA,YAIEA,MAAA,aACFA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,0BAAoBA,QAAYA,MAAA,aAC5CA,gCAOEA,MAJF,SAIEA,CADD,cACWA,MAAA,kBAAYA,QAAYA,MAAA,kBACpCA,SCrND,IAAMojB,GAAkB,MAAzB,MAAOA,EAtBbpkB,cA0BYc,KAAA8F,4BAAsC,EAE7B9F,KAAAujB,cAAa9P,QAAO,GAEpBzT,KAAAqhB,mBACjB3gB,OAAOoK,MAEU9K,KAAAwjB,oBAAmB9iB,OAAO+iB,MAC1BzjB,KAAAigB,aAAYvf,OAAOwf,KACnBlgB,KAAAgjB,mBAAkBtiB,OAAOgjB,MACzB1jB,KAAA2jB,uBAAsBjjB,OAAOkjB,MACtC5jB,KAAA6jB,aAAe7jB,KAAKwjB,iBAAiBK,aAC5B7jB,KAAA8jB,WAAaA,KAEtB9jB,KAAA+jB,eAAyB,EACzB/jB,KAAAgkB,iBAA4C,GAErChkB,KAAAmgB,+BAA8Bzf,OAC7C0f,MAGepgB,KAAAiU,UAASvT,OAAOwT,MAChBlU,KAAA8M,mBAAkBpM,OAAO4E,KACzBtF,KAAAY,cAAaF,OAAOG,OAErCojB,qBAAqBC,GACnB,YACiE3hB,IAA/DvC,KAAKgkB,iBAAiBG,KAAMC,GAAOF,GAAUnZ,KAAOqZ,EAAGrZ,GAE3D,CAEU6W,cAAcsC,GACjBA,GAAUb,YAIfrjB,KAAKqkB,uBAAuBH,EAC9B,CAEUG,uBAAuBH,GAC3BlkB,KAAKikB,qBAAqBC,KAI9BlkB,KAAK+jB,eAAgB,EACrB/jB,KAAKgkB,iBAAmB,IAAIhkB,KAAKgkB,iBAAkBE,GAEnDlkB,KAAK2jB,oBACFW,wBAAwBJ,EAASnZ,IACjC3I,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAWiiB,IACVvkB,KAAK+jB,eAAgB,EACrB/jB,KAAKgkB,iBAAmBhkB,KAAKgkB,iBAAiBxO,OAC3C4O,GAAOA,EAAGrZ,KAAOmZ,EAASnZ,IAGzBwZ,IACFC,OAAOC,SAASC,KAAOH,KAG/B,CAEU/C,uBACRxhB,KAAKwjB,iBAAiBmB,wBAEtB3kB,KAAK8M,gBAAgBuC,iBAAiB,CACpC5J,KAAM,4BAGR+e,OAAOC,SAASG,QAClB,CAEU/E,qBACR7f,KAAKmgB,4BAA4BG,0BACnC,CAEUP,aACR/f,KAAKiU,OACFiB,SAAS,CAAC,KAAM,CAAEmL,oBAAoB,IACtC5e,KAAK,IAAMzB,KAAKiU,OAAOiB,SAAS,CAAC,cACtC,CAEU0K,mBACR5f,KAAKiU,OACFiB,SAAS,CAAC,KAAM,CAAEmL,oBAAoB,IACtC5e,KAAK,IAAMzB,KAAKiU,OAAOiB,SAAS,CAAC,eACtC,CAEU/F,SAERnP,KAAKwjB,iBAAiBqB,SACxB,CAEUC,aACR9kB,KAAKujB,WAAWhO,OAAQwP,IAAWA,EACrC,CAAChlB,SAAAC,KAAA,mBAAAC,iBAnGUqjB,EAAkB,EAAAvjB,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAlBuT,EAAkBtT,UAAA,+BAAAqO,UAAA,SAAA1N,EAAAC,MAAA,EAAAD,iKAGTgB,QAAgBxB,YAAA,EAAAC,SAAA,CAAAlQ,aAAA8kB,MAAAvM,GAAAlI,MAAA,GAAAC,KAAA,GAAAC,OAAA,qmFAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBDnEtCzQ,MAAA,aAKEA,MAAA,EAAA+kB,GAAA,qCASI/kB,MAFJ,UAEIA,CAF+B,UAE/BA,CAD6B,SAU3BA,MALA,WAKAA,CADE,YAMJA,QACAA,MAAA,eAMEA,MAAA,mBAAAA,aAAAuW,GAAAvW,MAAS0Q,EAAAkU,aAAY,GAErB5kB,MAAA,cAAUA,MAAA,WAEdA,YAWMA,MAVN,YAUMA,CAV0B,YAU1BA,CATgC,UAShCA,CADD,eACWA,MAAA,WACZA,UASEA,MARF,UAQEA,CADD,eACWA,MAAA,qBACZA,UACAA,MAAA,GAAAglB,GAAA,iBAgBFhlB,QACAA,MAAA,8BACFA,QACAA,MAAA,GAAAilB,GAAA,cA2EAjlB,MAAA,sBACEA,MAAA,GAAAklB,GAAA,WAAAvO,IAaF3W,QAEEA,MADF,qBACEA,CAD4B,cAK1BA,MAAA,IACFA,QAKEA,MAJF,UAIEA,CADD,eACWA,MAAA,aAAMA,QAAYA,MAAA,gBAC9BA,QAKEA,MAJF,UAIEA,CADD,eACWA,MAAA,eAAQA,QAAYA,MAAA,iBAChCA,QAKEA,MAJF,UAIEA,CADD,eACWA,MAAA,oBAAaA,QAAYA,MAAA,sBACrCA,QACAA,MAAA,gBAEEA,MAAA,mBAAAA,aAAAuW,GAAAvW,MAAS0Q,EAAAzB,SAAQ,GAEjBjP,MAAA,eAAUA,MAAA,aAAMA,QAAYA,MAAA,eAEhCA,UACAA,MAAA,sBAoEEA,MAnEA,GAAAmlB,GAAA,aAmEAnlB,CAnE6D,GAAAolB,GAAA,WAmE7DplB,CA3D6D,GAAAqlB,GAAA,WA2D7DrlB,CAlDwD,GAAAslB,GAAA,aAkDxDtlB,CAxCG,GAAAulB,GAAA,WAwCHvlB,CAhCgE,GAAAwlB,GAAA,WAgChExlB,CAxB4D,GAAAylB,GAAA,aAwB5DzlB,CAhB0D,GAAA0lB,GAAA,WAgB1D1lB,CAR0D,GAAA2lB,GAAA,YAgB5D3lB,QACAA,MAAA,iCAEJA,sDAvREA,MAAA,yBAAA0Q,EAAA2S,cAEArjB,MAAA,GAAAA,MAAA0Q,EAAA9K,2BAAA,MA2CQ5F,MAAA,IAAAA,MAAA,aAAAA,MAAA,GAAAqZ,KAUArZ,MAAA,GAAAA,MAAA,aAAAA,MAAA,GAAA4lB,KAIF5lB,MAAA,GAAAA,MAAA,OAAAgjB,EAAAtS,EAAAqP,UAAAY,YAAA,MAAAqC,EAAApC,aAAAoC,EAAApC,YAAAC,qCAAA,OAAAmC,EAAAtS,EAAAqP,UAAAY,YAAA,MAAAqC,EAAApC,aAAAoC,EAAApC,YAAAM,eAAA,OAAA8B,EAAAtS,EAAAqP,UAAAY,YAAA,MAAAqC,EAAApC,aAAAoC,EAAApC,YAAAE,gDAAA,OAmBJ9gB,MAAA,GAAAA,MAAA0Q,EAAAoS,gBAAAzB,OAAAvK,QAAApG,EAAAqP,UAAAY,UAAA,OA4EE3gB,MAAA,GAAAA,MAAA0Q,EAAAoS,gBAAAzB,QAmBErhB,MAAA,GAAAA,MAAA,WAAA6lB,GAAAnV,EAAAqP,UAAAY,WAAA,KAAAkF,GAAAvgB,KAAA,KA4BFtF,MAAA,IAAAA,MAAA,OAAA8lB,GAAApV,EAAAqP,UAAAY,YAAA,MAAAmF,GAAAlF,aAAAkF,GAAAlF,YAAAqB,oBAAA,OAQAjiB,cAAA,OAAA+lB,GAAArV,EAAAqP,UAAAY,YAAA,MAAAoF,GAAAnF,aAAAmF,GAAAnF,YAAAqB,oBAAA,OASAjiB,cAAA,OAAAgmB,GAAAtV,EAAAqP,UAAAY,YAAA,MAAAqF,GAAApF,aAAAoF,GAAApF,YAAAuB,eAAA,OAQAniB,cAAA,OAAAimB,GAAAvV,EAAAqP,UAAAY,YAAA,MAAAsF,GAAArF,aAAAqF,GAAArF,YAAAwB,wBAAA,OAAA6D,GAAAvV,EAAAqP,UAAAY,YAAA,MAAAsF,GAAArF,aAAAqF,GAAArF,YAAAyB,mBAAA,OAUAriB,cAAA,OAAAkmB,GAAAxV,EAAAqP,UAAAY,YAAA,MAAAuF,GAAAtF,aAAAsF,GAAAtF,YAAAwB,uBAAA,OAQApiB,cAAA,OAAAmmB,GAAAzV,EAAAqP,UAAAY,YAAA,MAAAwF,GAAAvF,aAAAuF,GAAAvF,YAAAyB,mBAAA,OAQAriB,cAAA,OAAAomB,GAAA1V,EAAAqP,UAAAY,YAAA,MAAAyF,GAAAxF,aAAAwF,GAAAxF,YAAA0B,iBAAA,OAQAtiB,cAAA,OAAAqmB,GAAA3V,EAAAqP,UAAAY,YAAA,MAAA0F,GAAAzF,aAAAyF,GAAAzF,YAAA0B,iBAAA,OAQAtiB,cAAA,OAAAsmB,GAAA5V,EAAAqP,UAAAY,YAAA,MAAA2F,GAAA1F,aAAA0F,GAAA1F,YAAA0B,iBAAA,uBC/NF1S,GACAsH,KACAH,KACAC,MAAa/W,MAEbgS,KAAgBC,KAChBuJ,GACAxE,MAAa7E,kBACbmU,KAEAlT,GACAgE,MACAyI,IAAmBxN,OAAA,osGAAAmN,gBAAA,WAIV2D,CAAkB,mNClDrBpjB,MAAA,kBACEA,MAAA,0BAMFA,QACAA,MAAA,uDAHIA,cAAA,oBAAAwmB,EAAAnF,6BAkBFrhB,MAAA,8BAIEA,MAAA,OAAAA,MAAA,EAAAymB,2BAIFzmB,MAAA,8BAGEA,MAAA,OAAAA,MAAA,EAAA0mB,8CAxCR1mB,MAFJ,UAEIA,CAFiB,UAEjBA,CAD4B,WAE1BA,MAAA,EAAA2mB,GAAA,KAeA3mB,MAAA,kBAMEA,MALA,wBAKAA,CADE,yBAeFA,MARA,EAAA4mB,GAAA,0BAQA5mB,CAR6D,EAAA6mB,GAAA,2BAe/D7mB,QACAA,MAAA,qBACFA,QACAA,MAAA,YAGEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA7D,EAAA1S,QAAA,OAAAA,MAAS0S,EAAAoU,SAAQ,GAQf9mB,MANF,eAMEA,CADD,kBACwCA,MAAA,IAK7CA,cAGEA,MADF,YACEA,CAD8B,YAE5BA,MAAA,uBACFA,QACAA,MAAA,YAGEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA7D,EAAA1S,QAAA,OAAAA,MAAS0S,EAAAqU,kBAAiB,GAQxB/mB,MANF,eAMEA,CADD,kBACwCA,MAAA,IAM/CA,kDApFMA,MAAA,GAAAA,MAAA,OAAAghB,EAAAtO,EAAAqN,UAAAY,YAAA,MAAAK,EAAAJ,aAAAI,EAAAJ,YAAAC,qCAAA,OAAAG,EAAAtO,EAAAqN,UAAAY,YAAA,MAAAK,EAAAJ,aAAAI,EAAAJ,YAAAM,eAAA,OAAAF,EAAAtO,EAAAqN,UAAAY,YAAA,MAAAK,EAAAJ,aAAAI,EAAAJ,YAAAE,gDAAA,MAmBI9gB,MAAA,GAAAA,MAAA,OAAAA,MAAA,EAAAqZ,KAMArZ,cAAA,OAAAA,MAAA,GAAA4lB,KAEF5lB,cAAA,OAAAgnB,EAAAtU,EAAAqN,UAAAY,YAAA,MAAAqG,EAAApG,aAAAoG,EAAApG,YAAAqG,oBAAA,MAQAjnB,cAAA,OAAAknB,EAAAxU,EAAAqN,UAAAY,YAAA,MAAAuG,EAAAtG,aAAAsG,EAAAtG,YAAAuG,mBAAA,MAYFnnB,MAAA,GAAAA,MAAA,aAAA0S,EAAA0U,YAAAC,uBAAA,2CASyCrnB,MAAA,GAAAA,MAAA0S,EAAA0U,YAAAC,uBAAA,gCAazCrnB,MAAA,GAAAA,MAAA,aAAA0S,EAAA0U,YAAAE,gCAAA,2CASyCtnB,MAAA,GAAAA,MAAA0S,EAAA0U,YAAAE,gCAAA,iCC1C1C,IAAMC,GAAsB,MAA7B,MAAOA,EAOXvoB,cALUc,KAAAsnB,eAAc5mB,OAAOgnB,MACZ1nB,KAAAigB,aAAYvf,OAAOwf,KAErBlgB,KAAAwjB,oBAAmB9iB,OAAO+iB,MAGzCzjB,KAAK6jB,aAAe7jB,KAAKwjB,iBAAiBK,YAC5C,CAEUmD,SACRhnB,KAAKsnB,YAAYK,kBACnB,CAEUV,kBACRjnB,KAAKsnB,YAAYM,2BACnB,CAAC7nB,SAAAC,KAAA,mBAAAC,iBAjBUwnB,EAAsB,EAAA1nB,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAtB0X,EAAsBzX,UAAA,mCAAAG,YAAA,EAAAC,SAAA,CAAAlQ,OAAA8kB,MAAA1U,GAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,knBAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,ID7CnCzQ,MAAA,EAAA2nB,GAAA,4CAAA3nB,OAAA0gB,EAAA1gB,MAAA,EAAAuY,GAAAvY,MAAA,IAAA0Q,EAAAiT,gBAAA,KAAAjD,mBC4BI3J,KAEAE,MAAahX,MACb2nB,KAGAC,KACAC,KACAC,KACA/Q,MAAa9E,MACbD,KAAgBG,KAEhB0N,IAAmBxN,OAAA,4kDAAAmN,gBAAA,WAKV8H,CAAsB,8GCvC/BvnB,MAJF,UAIEA,CADD,oBAEGA,MAAA,SAKEA,MADF,UACEA,CAD4B,SAM1BA,MAAA,eACFA,QACAA,MAAA,cAIEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA8B,EAAArY,QAAA,OAAAA,MAASqY,EAAA2P,WAAU,GAEnBhoB,MAAA,cAIRA,sCAzBEA,MAAA,iBAKIA,MAAA,GAAAA,MAAA,kBAAAqY,EAAA4P,oBAAA,KAAA5P,EAAA4P,oBAAAjqB,MAAAgC,QCmBD,IAAMkoB,GAAyB,MAAhC,MAAOA,EAYXlpB,cAVUc,KAAAqoB,mBAA2D,KAEpDroB,KAAA+T,0BAAyBrT,OAAOsT,MAEhChU,KAAAsoB,gCAA+B5nB,OAC9C6nB,MAGevoB,KAAAY,cAAaF,OAAOG,OAGnCb,KAAKsoB,6BAA6BE,qBAC/BpmB,QAAKC,SACLC,UAAW+T,IACLA,IAILrW,KAAKqoB,mBAAqBhS,KAG9BrW,KAAKsU,aAAS,EAIdmU,MAAS,KACNrmB,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,IAAMtC,KAAKsU,YAC1B,CAEU4T,WACHloB,KAAKmoB,qBAIVnoB,KAAK+T,uBACF2U,qBAAqB1oB,KAAKmoB,oBAAoBQ,gBAC9CvmB,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAW+T,KACLA,IAAarW,KAAKmoB,sBAIvBnoB,KAAKmoB,oBAAoBS,SAAU,IAEzC,CAEQtU,YACNtU,KAAK+T,uBACF8U,+BACAzmB,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAW+T,IACLA,IAILrW,KAAKmoB,oBAAsB9R,EAAS8R,oBACpCnoB,KAAKqoB,mBAAqBhS,EAASgS,qBAEzC,CAACtoB,SAAAC,KAAA,mBAAAC,iBA7DUmoB,EAAyB,EAAAroB,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAzBqY,EAAyBpY,UAAA,gCAAAG,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,wQAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ID5BtCzQ,MAAA,mCACAA,MAAA,EAAA4oB,GAAA,oBAD6B5oB,MAAA,eAAA0Q,EAAAyX,oBAC7BnoB,cAAA,MAAA0Q,EAAAuX,qBAAAvX,EAAAuX,oBAAAS,QAAA,sBCmBYG,KAA6B9R,KAAiB+R,MAAaxW,OAAA,8xBAAA1T,KAAA,CAAAmqB,UACzD,IACVC,OAAQ,UAAW,IACjBC,OAAW,YAAUC,OAAQ,OAAKC,OAAM,CAAEC,QAAS,OAAK,EACxDH,OAAW,YAAUC,OAAQ,OAAKC,OAAM,CAAEC,QAAS,mBAI5ClB,CAAyB,6CChB9BloB,MAAA,6CAXNA,MAAA,cAIAA,MAAA,cAIEA,MAAA,WACAA,MAAA,WACEA,MAAA,EAAAqpB,GAAA,qBAIJrpB,UAKAA,MAJA,gCAIAA,CADE,qDAhBAA,MAAA,6BAAA4Q,EAAAhL,4BAQE5F,MAAA,GAAAA,MAAA4Q,EAAA0Y,UAAA,KAOFtpB,cAAA,SAAA4Q,EAAA+C,mCAIF3T,MAAA,WAIEA,MAAA,WAMFA,eAREA,MAAA,6BAMEA,cAAA,6BAAAqC,ICqDA,MAAOknB,GAAY1pB,SACPC,KAAAiL,QAAkBC,QAAWnL,SAC7BC,KAAAmL,YAAsBC,aAwBtClM,YAAwDwqB,GAAA1pB,KAAA0pB,kBAtBjB1pB,KAAA2pB,WAAqB,EAE5D3pB,KAAA4pB,WAAUC,OAAU,OAAQ,CAAEC,KAAMC,QAEpC/pB,KAAA6T,WAAqB,EACrB7T,KAAAgqB,0BAAoC,EACpChqB,KAAAwpB,UAAoB,EACpBxpB,KAAAiqB,cAAwB,EAEfjqB,KAAA8F,2BACPD,GAAYC,2BAEG9F,KAAAmU,kBAAiBzT,OAAO6L,IACxBvM,KAAAiU,UAASvT,OAAOwT,MAChBlU,KAAAkqB,eAAcxpB,OAAOuJ,MACrBjK,KAAAmqB,wBAAuBzpB,OAAOwJ,MAC9BlK,KAAAgN,iBAAgBtM,OAAOuM,MACvBjN,KAAAY,cAAaF,OAAOG,OACpBb,KAAAigB,aAAYvf,OAAOwf,KACnBlgB,KAAAoqB,oBAAmB1pB,OAAO2pB,MAC1BrqB,KAAAsqB,kBAAiB5pB,OAAO6pB,MAGvCvqB,KAAKwqB,yBAELxqB,KAAKoqB,iBAAiBK,gBAAgB5kB,GAAYT,YAElDpF,KAAKoqB,iBAAiBM,8BACpB7kB,GAAYC,6BAA0B,EAGxCyO,OAAO,KACL,IAAKvU,KAAKigB,UAAU0K,cAClB,OAGF,MAAMjlB,EAAU1F,KAAKigB,UAAU2K,yBAA2B,GAE1D5qB,KAAKgN,cAAckC,aAAa,CAC9B7K,MAAO,gBACPoB,KAAMC,EACNmlB,MAAM,EACNC,UAAU,EACVC,cAAe,SACfC,eAAgBhrB,KAAKigB,UAAU+K,iBAC/BC,cAAeA,KAEbjrB,KAAKkqB,YAAY/a,OAAO,CACtBG,QAAStP,KAAKkqB,YAAY9jB,SAASmJ,oBACpC,GAEJ,EAEL,CAGA2b,kBACE,MAAMtB,EAAU5pB,KAAK4pB,UAErB,IAAKA,EACH,OAGF,MAAMuB,KAAYC,MAChBxB,EAAQyB,cAAcC,wBAAwBC,KAGhDC,SAASjuB,KAAK8rB,MAAMoC,YAClB,4BACA,GAAGN,EAAY,EAAIA,EAAY,OAEnC,CAEAO,WACE1rB,KAAKgqB,0BAA2B,EAEhChqB,KAAKwpB,SAAWmC,KAAaC,cAAgBD,KAAaE,YAE1D7rB,KAAK8rB,kBAEL9rB,KAAKiU,OAAO8X,OACT3pB,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAWuS,IACV,MAAMmX,EACJnX,aAAiBoX,MACjBpX,aAAiBqX,MACjBrX,aAAiBsX,KAEftX,aAAiBuX,KACnBpsB,KAAK6T,WAAY,EACRmY,IACThsB,KAAK6T,WAAY,EACjB7T,KAAKqsB,sBAGHxX,aAAiBoX,MACnBjsB,KAAKsqB,eAAegC,kBAAgB,EAG5C,CAEAC,cACEvsB,KAAKmU,eAAe1F,eACtB,CAEA+d,QAEExsB,KAAKkqB,YAAYuC,cAAc,IAC1BzsB,KAAK0pB,gBAAgBngB,aAE5B,CAEQmjB,kBACN1sB,KAAKiqB,aAAqE,IAAtDjqB,KAAKkqB,YAAY9jB,SAASumB,iBAAiB3V,MACjE,CAEQ8U,kBAYNtH,OAAO1b,QAAQM,IAPb,gCAJiCqgB,GAAaxe,mBAAmBwe,GAAate,8DAK9E,iJACA,mCACA,mCACA,mCAIJ,CAMQyhB,2BAGN,IAFsB5sB,KAAKkqB,YAAY9jB,SAASmJ,oBAIQ,IAAtDvP,KAAKkqB,YAAY9jB,SAASumB,iBAAiB3V,OAE3C,OAGF,MAAM6V,EAAW7sB,KAAKkqB,YAAY9jB,SAASumB,iBAC3C3sB,KAAKkqB,YAAY9jB,SAAS0mB,iBAAiBD,EAAS,IAEpD7sB,KAAKgqB,0BAA2B,EAChChqB,KAAKmU,eAAe7G,SACtB,CAEQkd,yBACN,IAAK3kB,GAAYT,aAAe2nB,eAAiBC,OAC/C,OAGF,MAAM/uB,EAAM,GAAGwrB,GAAaxe,WAAWwe,GAAate,cAEhD4hB,aAAaE,QAAQ,aAAehvB,IAIxC8uB,aAAaG,WAAW,cACxBH,aAAaG,WAAW,eAExBF,OAAOjvB,OAAO0D,KAAM1D,IAClBA,EAAKC,QAASY,IACZouB,OAAOG,OAAOvuB,EAAI,EACnB,GAGHmuB,aAAaK,QAAQ,UAAWnvB,GAEhCumB,OAAOC,SAASG,SAClB,CAEQyH,qBACDrsB,KAAKgqB,2BAIVhqB,KAAKmqB,qBAAqBkD,aACvBjrB,QACCoT,MACG8X,GAAsBA,EAAIC,YAAcC,KAAUC,gBAAa,EAElEprB,MAAmBrC,KAAKY,aAEzB0B,UAAWmV,IAEVzX,KAAKkqB,YAAY9jB,SAAS0mB,iBADVrV,EAAOiW,QAC4Bpe,QAAO,GAG9DtP,KAAKmqB,qBAAqBwD,YACvBvrB,QACCoT,MACGoY,GAA8BA,IAAWC,KAAkBC,OAAI,EAElEzrB,MAAmBrC,KAAKY,aAEzB0B,UAAU,KACTtC,KAAK0sB,kBACL1sB,KAAK4sB,2BAEA5sB,KAAKiqB,cAIVjqB,KAAKwsB,OAAK,GAEhB,CAACzsB,SAAAC,KAAA,mBAAAC,iBAvNUwpB,IAAYvpB,MA0BHmJ,MAAiB,EAAAtJ,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MA1B1B0Z,GAAYzZ,UAAA,cAAAqO,UAAA,SAAA1N,EAAAC,GAAA,EAAAD,wBAMaoZ,gEANzB7pB,MAAA,2BAAA0Q,EAAAsa,iBAAiB,KAAAhrB,YAAjBA,MAAA,UAAA0Q,EAAA+Y,uWD9DXzpB,MArBF,EAAA6tB,GAAA,IAqBE7tB,CArB+B,EAAA8tB,GAAA,kBAAjC9tB,MAAA0Q,EAAAoZ,yBAAA,oBC4EI/B,KACA3E,GACAhM,KACA8Q,GACAX,IAAsBjV,OAAA,osBAAA1T,KAAA,CAAAmqB,UAnBZ,IAEVC,OAAQ,sBAAuB,IAE7BnE,OAAM,QAAMsE,OAAM,CAAEC,QAAS,MAAI,EAEjCH,OAAW,YAAUC,OAAQ,OAAKC,OAAM,CAAEC,QAAS,SACpD,EACDJ,OAAQ,uBAAwB,IAE9BC,OAAW,SAAU,IAACE,OAAM,CAAEC,QAAS,KAAG,EAAGF,OAAQ,6BC7BrD,SAAU6E,GAAgBC,EAAwBC,GAA2B,GAEjF,OApCF,SAASC,GAAcF,EAAwBC,GAC7C,MAAO,CACLE,EACAC,EACAC,KAEA,GAAwB,IAApBF,EAASrX,OACX,OAAO,KAGT,MAAMwX,EAAyB,GACzBC,GAAwC,GAExCC,GAAUL,EAAS,GACnBM,GAAuBD,GAAQ3Z,KAAK6Z,cACpCC,GAA2B,GAAGX,EAAeU,iBAC7C5Q,GAAW0Q,GAAQ3Z,KAAK+Z,MAAMD,GAAyB7X,QACvD+X,GAAc/Q,GAASxa,MAAM,KAAKwT,OAAS,EAEjD,IAAK2X,GAAqBK,WAAWH,KAA0C,KAAb7Q,IAAoBmQ,IAAoBY,GACxG,OAAO,KAGT,MAAME,GAAmB,IAAIC,KAAW,GAAGL,KAA2B7Q,KAAY0Q,GAAQS,YAC1FX,SAASY,KAAKH,IACdR,GAAUzQ,SAAW,IAAIkR,KAAW,GAAGlR,KAAY0Q,GAAQS,YAEpD,CAAEX,WAAUC,aAAS,CAEhC,CAOSL,CAAcF,EAAgBC,EACvC,iBClCO,MAAMkB,GAAiB,CAC5B,CACEta,KAAM,GACNua,SAAU,CAACnlB,MACXolB,SAAU,CACR,CACExa,KAAM,GACNya,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,UAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,QAASxB,GAAgBpV,IAAsBC,SAC/Cha,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBC,SAEpC0W,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBC,SACtDyW,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBC,SAEpCwW,SAAU,IAACO,MAAY,kBACvBL,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsB2B,qBAC/C1b,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsB2B,qBAEpCgV,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,QAASxB,GAAgBpV,IAAsBqB,KAC/Cpb,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBqB,KAEpCsV,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,QAASxB,GAAgBpV,IAAsBe,OAAO,GACtD9a,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBe,OAEpC4V,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBe,OACtD2V,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBe,OAEpC0V,SAAU,IAACO,MAAY,wCACvBL,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBiX,UAC/ChxB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBiX,UAEpCN,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBiX,UACtDP,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBiX,UAEpCR,SAAU,IAACO,MAAY,wBACvBL,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBiH,eAC/ChhB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBiH,eAEpC0P,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBiH,eACtDyP,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBiH,eAEpCwP,SAAU,IAACO,MAAY,uBACvBL,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBkX,WAAW,GAC1DjxB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBkX,WAEpCP,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBkX,WACtDR,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBkX,WAEpCP,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBmX,aAC/ClxB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBmX,aAEpCR,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBmX,aACtDT,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBmX,aAEpCR,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,WAASC,MAAuB,GAAG7W,IAAsBoX,eACzDV,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBoX,aAEpCT,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,WAASC,MACP,GAAG7W,IAAsBoX,yBAE3BnxB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBoX,aAEpCT,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,QAASxB,GAAgBpV,IAAsBqX,QAC/CpxB,KAAM,CACJ6wB,KAAM,OACNC,WAAY/W,IAAsBqX,QAEpCV,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB7W,IAAsBqX,QACtDX,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,MACNC,WAAY/W,IAAsBqX,QAEpCV,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBqX,QAC/CX,SAAU,CACR,CACEE,WAASC,MAAuB,qBAChCF,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEkuB,QAASxB,GAAgBpV,IAAsBsX,oBAC/CX,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAgBtB,CACEkuB,WAASC,MAAuB,QAChCF,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,cAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEwT,KAAM,qBACNqb,WAAY,uBAEd,CACEX,WAASC,MAAuB,aAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAAH,EAAA,OACpB+tB,SAAU,IAACO,MAAY,wBAEzB,CACEJ,WAASC,MAAuB,uBAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,oCAChCH,SAAU,CACR,CACEE,WAASC,MAAuB,OAChC5wB,KAAM,CACJ6wB,KAAM,OAERH,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,eAChC5wB,KAAM,CACJ6wB,KAAM,QAERH,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAK1B,CACEkuB,WAASC,MAAuB,cAChCF,aAAcA,IAAMnuB,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,SAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,aAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,QACpB+tB,SAAU,IAACO,MAAY,wBAEzB,CACEJ,WAASC,MAAuB,SAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,cAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEkuB,WAASC,MAAuB,iBAChCF,aAAcA,IAAMjuB,EAAAC,EAAA,MAAAC,KAAAF,EAAAG,KAAAH,EAAA,QAEtB,CACEkuB,WAASC,MAAuB,gBAChCJ,SAAU,IAACO,MAAY,wBACvBL,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,SAEtB,CACEwT,KAAM,YACN1Q,MAAO,YACPmrB,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,WAI1B,CACEwT,KAAM,KACNsb,YAAa,CAAClmB,MACd9F,MAAO,iBACPmrB,aAAcA,IAAMjuB,EAAAC,EAAA,OAAAC,KAAAF,EAAAG,KAAAH,EAAA,UCzRpBsE,GAAYT,eACdkrB,UAAc,EAGhBC,MAAqB9G,GAAc,CACjC9pB,UAAW,IACT6wB,OACEC,KACAxxB,EAA0BO,QAAQ,CAChCgH,mBAAoBX,GAAYW,mBAEhCkqB,sBAAsB,IAExBC,KACAC,KACAC,KACAC,MACAC,KACAC,KAAgBxxB,QAAQ,CACtBkH,YAAab,GAAYY,WAAWC,kBAGrCc,MACHypB,UAAiB,EACjBC,SACEC,MAAiB,CjCpBQC,CAC7BC,EACAxhB,KAEIwhB,EAAI9zB,gBAAgB+zB,WAIL,SAAfD,EAAIE,QAAoC,QAAfF,EAAIE,UAE/BF,EAAMA,EAAIG,MAAM,CACdj0B,KAAMD,EAAW+zB,EAAI9zB,SAIlBsS,EAAKwhB,IkC/C8BI,CAC1CJ,EACAxhB,KAEA,MAAM9C,KAAwBrM,OAAOF,GAErC,OAAOqP,EAAKwhB,GACTjvB,QACCsvB,KAAYzsB,GACJA,aAAiB0sB,MAIF,MAAjB1sB,EAAM2oB,QACR7gB,EAAsB/L,sBAAkB,EAGnC4wB,KAAW,IAAM,IAAIC,IAAwB5sB,EAAMO,KAAMP,EAAMS,QAAS,IAC1ET,EACH6P,IAAK7P,EAAM6P,UAAOvS,OAClB,EAVOqvB,KAAW,IAAM3sB,IAW1B,EC3BgC6sB,CACtCC,EACAliB,KAEA,MAAMkV,KAAQrkB,OAAOwf,KAEf6C,EAAegC,EAAMhC,eACrBlC,EAAUkE,EAAMlE,UAEtB,OAUOhR,EAVFkT,GAAiBlC,EAMOkR,EAAQP,MAAM,CACzC1jB,QAASikB,EAAQjkB,QAAQ9D,IAAI,WAAY6W,EAAQmR,eANrCD,EASkB,ElCjBIE,CACpCF,EACAliB,KAEA,MAAQlC,gBAAW,EAAKjN,OAAOyM,KAE/B,OAAO0C,EAAKkiB,EAAQP,MAAM,CACxB1jB,QAASikB,EAAQjkB,QAAQokB,OAAO,cAAevkB,KAC/C,ECgB6CwkB,CAC/CJ,EACAliB,IAMOA,EAJFkiB,EAAQx0B,KAIDw0B,EAAQP,MAAM,CAAEj0B,KAAMsB,EAAgBkzB,EAAQx0B,QAH5Cw0B,M+BiCT,EACDK,UAAwB,EAE1BC,MACEhD,MACAiD,SAAyB,EACzBC,MAAsB,CACpBC,0BAA2B,aAC5B,EACDC,MAAiB,CACfC,oBAAqB,WAEtB/G,KAAaC,cAAiBD,KAAaE,aACJ,EACpC8G,SAFiD,EACjDC,SAC6B,EACjCC,MAAeC,QAEjBC,SAEDxvB,MAAOgL,IAERzF,QAAQ7D,MAAMsJ,EAAG,4EGpFZ,IAAMykB,EAA2B,MAAlC,MAAOA,UAAmCC,KAC9CC,UAAUj1B,GACR,OAAOk1B,mBAAmBl1B,EAC5B,CAEAm1B,YAAYl1B,GACV,OAAOi1B,mBAAmBj1B,EAC5B,CAAC6B,SAAAC,KAAA,4DAPUgzB,KAA0B/yB,GAA1B+yB,EAA0B,GAOpC,GAPoCjzB,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAA1BowB,EAA0BnwB,QAA1BmwB,EAA0BlwB,UAAAC,WAFzB,gBAEDiwB,CAA2B,KCalC,MAAOK,EAMXn0B,YAAYo0B,EAAwD,IAClE,GAJMtzB,KAAAuzB,QACN,IAAIP,EAGAM,aAAkBvpB,IACpB/J,KAAKrB,IAAM,IAAIoL,IAAIupB,OACd,CACL,MAAM30B,EAAM,IAAIoL,IACVypB,EAAaxzB,KAAKyzB,YAAYH,GAEpCx1B,OAAOC,KAAKy1B,GAAYx1B,QAASC,IAC/B+B,KAAK0zB,sBAAsBF,EAAWv1B,GAAMA,EAAKU,EAAG,GAGtDqB,KAAKrB,IAAMA,CACb,CACF,CAKAg1B,IAAIC,GACF,OAAO5zB,KAAKrB,IAAIg1B,IAAIC,EACtB,CAKAvuB,IAAIuuB,GAGF,OAFY5zB,KAAKrB,IAAI0G,IAAIuuB,SAEXrxB,CAChB,CAKAxE,OACE,OAAOJ,MAAMk2B,KAAK7zB,KAAKrB,IAAIZ,OAC7B,CAKAm0B,OAAO0B,EAAe11B,GACpB,OAAa,MAATA,EACK8B,KAAKmtB,OAAOyG,GAGd5zB,KAAKwxB,MAAMoC,EAAO5zB,KAAKyzB,YAAYv1B,GAAM,EAClD,CAKA8L,IAAI4pB,EAAe11B,GACjB,OAAa,MAATA,EACK8B,KAAKmtB,OAAOyG,GAGd5zB,KAAKwxB,MAAMoC,EAAO5zB,KAAKyzB,YAAYv1B,GAAM,EAClD,CAKAivB,OAAOyG,GACL,OAAO5zB,KAAKwxB,MAAMoC,OAAOrxB,EAAS,EACpC,CAKAuxB,eACE,MAAMC,EAAqC,GAG3C,UAAY91B,EAAKC,KAAU8B,KAAKrB,IAAIq1B,UACrB,MAAT91B,IACF61B,EAAW91B,GAAOC,GAItB,OAAO,IAAI+1B,KAAW,CACpBC,WAAYH,EACZR,QAAS,IAAIP,GAEjB,CAMAmB,WACE,MAAMb,EAAmB,GAGzB,UAAYr1B,EAAKC,KAAU8B,KAAKrB,IAAIq1B,UACrB,MAAT91B,GACFo1B,EAAOlE,KACL,GAAGpvB,KAAKuzB,QAAQL,UAAUj1B,MAAQ+B,KAAKuzB,QAAQH,YAAYl1B,MAKjE,OAAOo1B,EAAOlb,KAAK,IACrB,CAKQoZ,MACNoC,EACA11B,EACAk2B,GAEA,MAAMz1B,EAA2B,IAAIoL,IACrC,IAAIsqB,GAAW,EAEf,GACW,IAATD,GACU,IAATA,IAAgCC,EAEjC,OAAAr0B,KAAK0zB,sBAAsBx1B,EAAoB01B,EAAOj1B,GAC/C,IAAI00B,EAAiB10B,GAI9B,UAAYV,EAAKq2B,KAAkBt0B,KAAKrB,IAAIq1B,UAE1C,GAAI/1B,EAAI+wB,WAAW4E,GAAQ,CACzB,MAAMW,EAAWt2B,EAAIu2B,UAAUZ,EAAM5c,OAAQ4c,EAAM5c,OAAS,GAClC,CAAC,GAAI,KAAKyd,SAASF,GAMzB,IAATH,IAAgCC,IAIzCA,GAAW,EACXr0B,KAAK0zB,sBAAsBx1B,EAAoB01B,EAAOj1B,IANtDA,EAAIqL,IAAI/L,EAAKq2B,EAWjB,MAEE31B,EAAIqL,IAAI/L,EAAKq2B,GAIjB,OAAO,IAAIjB,EAAiB10B,EAC9B,CAKQ80B,YAAYj2B,GAClB,OAAOk3B,KAAKC,MAAMD,KAAKp1B,UAAU9B,GACnC,CAKQk2B,sBACNl2B,EACAo3B,EACAC,GAEA,GAAW,MAAPr3B,GAA8B,mBAARA,EAI1B,GAAIG,MAAMe,QAAQlB,GAChB,QAASs3B,EAAI,EAAGA,EAAIt3B,EAAIwZ,OAAQ8d,GAAK,EACnC90B,KAAK0zB,sBAAsBl2B,EAAIs3B,GAAI,GAAGF,KAAUE,KAAMD,QAAa,GAE7C,iBAARr3B,EAEhBq3B,EAAc7qB,IAAI4qB,EAAQ,GAAGp3B,UAI7B,UAAWS,KAAOT,EACZM,OAAOi3B,UAAUC,eAAeC,KAAKz3B,EAAKS,IAC5C+B,KAAK0zB,sBACHl2B,EAAIS,GACJ,GAAG22B,KAAU32B,KACb42B,EAKV,kGCtNF,MASaK,EAAa,IAAIj1B,KAC5B,aACCk1B,GAAiBA,aAAa13B,KAC/B,CAAC03B,EAAGC,IAAMC,KAAMC,MACdr1B,KAASs1B,SAASJ,EAAGC,GACpBI,IACC,MAAMC,EAfSC,IAAqB,IAAIj4B,KAC5Ci4B,EAAKC,iBACLD,EAAKE,cACLF,EAAKG,aACLH,EAAKI,cACLJ,EAAKK,gBACLL,EAAKM,iBASSC,CAAY,IAAIx4B,KAAK+3B,IAE/B,SAAQU,KAAQT,GAAKx1B,KAAUw1B,GAAKx1B,KAAUk1B,EAAGC,EAAC,GAGrDe,MAAMC,KAAUD,0ECpBZ,MAAME,EACXC,GAC6Cr2B,KAAQ,CAACq2B,EAAMr2B,OAEjDs2B,EACXD,GACkDr2B,KAAQ,CAACq2B,EAAMr2B,uICH5D,IAAMu2B,EAAe,MAAtB,MAAOA,UAAuBC,KAHpCv3B,kCAImBc,KAAA0E,qBACfhE,OAAOiF,MAKT+wB,eAAe5hB,GACb,OAAO9U,KAAK0E,kBAAkBqB,YAAc+O,CAC9C,CAAC/U,SAAAC,KAAA,4DATUw2B,KAAcv2B,GAAdu2B,EAAc,GASxB,GATwBz2B,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAd4zB,EAAc3zB,QAAd2zB,EAAc1zB,UAAAC,WAFb,gBAEDyzB,CAAe,KCING,EAAU,MAA1B,MAAgBA,EAHtBz3B,cAIqBc,KAAA42B,kBAAiBl2B,OAAO81B,GACxBx2B,KAAA2M,uBAAsBjM,OAAOkM,KAC7B5M,KAAAY,cAAaF,OAAOG,OAE7Bb,KAAA62B,KACR72B,KAAK42B,eAAeC,KAAKn1B,KAAK1B,KAAK42B,gBAE3B52B,KAAAqF,IAAsCrF,KAAK42B,eAAevxB,IAAI3D,KACtE1B,KAAK42B,gBAGG52B,KAAA82B,MACR92B,KAAK42B,eAAeE,MAAMp1B,KAAK1B,KAAK42B,gBAE5B52B,KAAA+2B,KACR/2B,KAAK42B,eAAeG,KAAKr1B,KAAK1B,KAAK42B,gBAE3B52B,KAAAg3B,KACRh3B,KAAK42B,eAAeI,KAAKt1B,KAAK1B,KAAK42B,gBAE3B52B,KAAAi3B,IAAsCj3B,KAAK42B,eAAeK,IAAIv1B,KACtE1B,KAAK42B,gBAGG52B,KAAAk3B,QACRl3B,KAAK42B,eAAeM,QAAQx1B,KAAK1B,KAAK42B,gBAE9B52B,KAAAmtB,OACRntB,KAAK42B,eAAezJ,OAAOzrB,KAAK1B,KAAK42B,gBAE7B52B,KAAAm3B,cACRn3B,KAAK42B,eAAeO,cAAcz1B,KAAK1B,KAAK42B,gBAEpC52B,KAAAo3B,aACRp3B,KAAK42B,eAAeQ,aAAa11B,KAAK1B,KAAK42B,gBAEnC52B,KAAAq3B,YAAc,CACtB5xB,EACA6xB,GAA2B,OAE3B5F,KAAYzsB,GACNqyB,KACK1F,KAAW,IAAM3sB,IAG1BjF,KAAK2M,oBAAoB3H,YAAYC,EAAO,CAC1CQ,UACD,EAEM8xB,MAAG,QAGJv3B,KAAA0xB,WAAa,CACrBzsB,EACAQ,EACA6xB,GAA2B,KAE3B,GAAIA,EACF,MAAMryB,EAGR,OAAAjF,KAAK2M,oBAAoB3H,YAAYC,EAAO,CAC1CQ,SAGK,MAEV1F,SAAAC,KAAA,mBAAAC,iBApEqB02B,EAAU,EAAA52B,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAV+zB,EAAU9zB,QAAV8zB,EAAU7zB,UAAAC,WAFlB,gBAEQ4zB,CAAU,+ECX1B,MAAOa,UAAsBn4B,MAGjCH,YAAYsG,EAAcE,GACxBf,MAAMa,GAENxF,KAAK0F,QAAUA,CACjB,4HCwBK,MAqDM+xB,EAAkBxyB,IAC7B,IAAIyyB,EAAqBzyB,EAAM2oB,OAC/B,MAAQ+J,cAAe1yB,EAGrBA,EAAMA,OACiB,iBAAhBA,EAAMA,OACbA,EAAMA,MAAMyyB,aAEZA,EAAazyB,EAAMA,MAAMyyB,YAG3B,MAAME,EAjEoBC,EAC1BH,EACAC,IAGO,GADMD,EAAa,EAAI,GAAGA,KAAgB,KAChCC,IA4DQE,CAAaH,EAAYC,GAC5CG,EA3CyB7yB,KAC/B,IAAKA,GAAOA,MACV,MAAO,GAGT,MAAM8yB,EAAY,GACZC,EAAgB/yB,EAAMA,MAE5B,GAA6B,iBAAlB+yB,EACTD,EAAU3I,KAAK4I,QAAa,GACM,iBAAlBA,EAChB,GAAI,eAAgBA,GAAiB,YAAaA,EAChDD,EAAU3I,KAAK4I,EAActyB,cAG7B,UAAWuyB,KAAiBD,EAGxBl6B,OAAOi3B,UAAUC,eAAeC,KAAK+C,EAAeC,IACpDt6B,MAAMe,QAAQs5B,EAAcC,KAE5BF,EAAU3I,QAAQ4I,EAAcC,IAMxC,OAAOF,GAgBcG,CAAiBjzB,GAAOmT,KAAK,OAElD,SAAOwZ,KACL,QAEMC,IAAwB+F,EAAkBE,EAAc7yB,GAAa,EAOxE,IAAewxB,EAAO,MAAvB,MAAgBA,EAHtBv3B,cAIUc,KAAAm4B,cAAaz3B,OAAO03B,MACXp4B,KAAAoqB,oBAAmB1pB,OAAO2pB,KAE3CwM,KACEwB,EACAC,EACAC,EACAzqB,GAEA,MAAM0qB,EAAWx4B,KAAKw4B,SACpB,MACAH,EACA,KACAE,EACAzqB,GAGF,OAAO9N,KAAKy4B,qBAA+BD,EAAUF,EACvD,CAEMjzB,IACJgzB,EACAC,EACAC,EACAzqB,GAAqB,IAAA7M,EAAAjB,KAAA,SAAAkB,KAAA,YAErB,SAAOw3B,KACLz3B,EAAK41B,KAAewB,EAAUC,EAAUC,EAAiBzqB,GACzD,EAJmB,EAKvB,CAKAgpB,MACEuB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,MAAM0qB,EAAWx4B,KAAKw4B,SACpB,OACAH,EACA96B,EACAg7B,EACAzqB,GAGF,OAAO9N,KAAKy4B,qBAA+BD,EAAUF,EACvD,CAEAvB,KACEsB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,SAAO4qB,KACL14B,KAAK82B,MACHuB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAGN,CAKAkpB,KACEqB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,MAAM0qB,EAAWx4B,KAAKw4B,SACpB,MACAH,EACA96B,EACAg7B,EACAzqB,GAGF,OAAO9N,KAAKy4B,qBAA+BD,EAAUF,EACvD,CAEArB,IACEoB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,SAAO4qB,KACL14B,KAAKg3B,KACHqB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAGN,CAKAopB,QACEmB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,MAAM0qB,EAAWx4B,KAAKw4B,SACpB,SACAH,EACA96B,EACAg7B,EACAzqB,GAGF,OAAO9N,KAAKy4B,qBAA+BD,EAAUF,EACvD,CAEAnL,OACEkL,EACAC,EACA/6B,EACAg7B,EACAzqB,GAEA,SAAO4qB,KACL14B,KAAKk3B,QACHmB,EACAC,EACA/6B,EACAg7B,EACAzqB,GAGN,CAKAqpB,cACEkB,EACAE,EACAzqB,EACA6qB,EAEAp7B,GAEA,MAAM+1B,EAASiF,EAAkBA,EAAgBzE,eAAiB,GAE5D8E,EAAcD,EAAUN,EAAWr4B,KAAK02B,eAAe2B,GAE7D,OAAI96B,EACKyC,KAAKm4B,WACTlB,IAAI2B,EAAar7B,EAAM,CACtBs7B,aAAc,OACd/qB,UACAwlB,SACAwF,QAAS,aAEV12B,QAAKsvB,KAAW+F,IAGdz3B,KAAKm4B,WACT9yB,IAAIuzB,EAAa,CAChBC,aAAc,OACd/qB,UACAwlB,SACAwF,QAAS,aAEV12B,QAAKsvB,KAAW+F,GACrB,CAEML,aACJiB,EACAE,EACAzqB,EACA6qB,EAEAp7B,GAAU,IAAAkF,EAAAzC,KAAA,SAAAkB,KAAA,YAEV,SAAOw3B,KACLj2B,EAAK00B,cAAckB,EAAUE,EAAiBzqB,EAAS6qB,EAASp7B,GAChE,EAJQ,EAKZ,CAKQk7B,qBACNM,EACAT,GAEA,OAAOS,EAAY32B,QACjBoT,KACGX,GACCA,EAAMyhB,OAAS0C,KAAcC,WAAQ,EAEzCrpB,KAAK,IAAC,EACNjR,KAAK0X,GAAaA,EAAS9Y,OAAI,EAC/BoB,KAAK0X,IACH,GAAIiiB,EAAU,CACZ,MAAM/T,EAAM+T,EAASY,OAAO7iB,GAE5B,GAAIrW,KAAKm5B,kBAAkB5U,GACzB,OAAO,KAGT,MAAI6U,MAAQ7U,GACV,OAAOA,EAAI8U,KAEf,CAEA,OAAOhjB,IAGb,CAGQ8iB,kBAAkBG,GACxB,MAAMC,EAASC,KAAaC,OAAOH,GAEnC,GAAI37B,MAAMe,QAAQ66B,GAAS,CACzB,GAAkB,eAAdA,EAAO,GACT,OAAO,EAGT,IAAIG,EAAyB,GAE7BH,QAAOv7B,QAASiH,IAEd,MAAMhH,EADagH,EAAMzB,MAAM,KACR4U,KAAK,QAEvBpY,KAAKoqB,iBAAiBuP,gBAEzB7wB,QAAQ7D,MAAMhH,GAGhBy7B,EAAe,IAAIA,EAAcz7B,EAAG,GAGhC,IAAIu5B,EAAc,mBAAoBkC,EAAathB,KAAK,MAChE,CAEA,OAAO,CACT,CAKQogB,SACNjH,EACAzc,EAEAvX,EACAg7B,EACAzqB,GAEA,MAAMwlB,EAASiF,EAAkBA,EAAgBzE,eAAiB,GAclE,OAZiB9zB,KAAKm4B,WAAWpG,QAC/BR,EACAvxB,KAAK02B,eAAe5hB,GACpB,CACEvX,OACAuQ,UACA8rB,gBAAgB,EAChBd,QAAS,SACTxF,WAIYlxB,QAAKsvB,KAAW+F,GAClC,CAAC13B,SAAAC,KAAA,mBAAAC,iBA7RmBw2B,EAAO,EAAA12B,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAP6zB,EAAO5zB,QAAP4zB,EAAO3zB,UAAAC,WAFf,gBAEQ0zB,CAAO,mECtG7B,MAAMoD,EAAsC,CAC1CF,cAAc,EACd7zB,4BAA4B,GAMvB,IAAMukB,EAAgB,MAAvB,MAAOA,EAHbnrB,cAIWc,KAAA25B,gBAAeG,OAAS,IAAM95B,KAAK+kB,QAAQ4U,cAC3C35B,KAAA8F,8BAA6Bg0B,OACpC,IAAM95B,KAAK+kB,QAAQjf,4BAGJ9F,KAAA+kB,SAAQtR,OAAO,IAAKomB,IAErCpP,gBAAgBkP,GACd35B,KAAK+kB,MAAMxP,OAAQwkB,QACdA,EACHJ,iBAEJ,CAEAjP,8BAA8B5kB,GAC5B9F,KAAK+kB,MAAMxP,OAAQwkB,QACdA,EACHj0B,+BAEJ,CAAC/F,SAAAC,KAAA,mBAAAC,iBApBUoqB,EAAgB,EAAAtqB,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAAhBynB,EAAgBxnB,QAAhBwnB,EAAgBvnB,UAAAC,WAFf,gBAEDsnB,CAAgB,sFCXtB,MAAM4P,EAAaA,CACxBC,EACAC,EACAv5B,EACAw5B,KAEAD,EAAQnwB,KAAI,GAELkwB,EAAS93B,QAAKC,MAAmBzB,IAAa0B,UAAW+T,IAC9D8jB,EAAQnwB,KAAI,GAEPqM,GAIL+jB,EAAS/jB,EAAQ,IAId,SAAe/B,EAAS+lB,EAAAC,EAAAC,GAAA,OAAAC,EAAAC,MAAAz6B,KAAA06B,UAAA,CAkB9B,SAAAF,gBAAAt5B,KAlBM,UACLy5B,EACAR,EACAC,GAEAD,EAAQnwB,KAAI,GAEZ,IACE,MAAMqM,QAAiBskB,EAEvB,IAAKtkB,EACH,OAGF+jB,EAAS/jB,EACX,SACE8jB,EAAQnwB,KAAI,EACd,CACF,IAACywB,MAAAz6B,KAAA06B,UAAA,gECnCM,IAAME,EAAY,MAAnB,MAAOA,EAIXlpB,UAAUlM,GACR,OAAKA,EAIEA,EAAKhC,MAAM,KAAK7E,IAAKk8B,GAASA,EAAK,IAAIziB,KAAK,IAAI0W,MAAM,EAAG,GAHvD,EAIX,CAAC/uB,SAAAC,KAAA,mBAAAC,iBAVU26B,EAAY,EAAA76B,SAAAC,KAAA,WAAAI,EAAAiY,IAAA,sBAAZuiB,EAAYtiB,MAAA,EAAAnI,YAAA,WAAZyqB,CAAY,8BCLvB16B,MAAA,YAIEA,MAAA,uBACFA,8BADEA,cAAA,IAAAA,MAAA,IAAA4Q,EAAAtL,QAAA,8CAGFtF,MAAA,WAIEA,MAAA,mBAAAA,MAAAyS,GAAA,MAAA7B,EAAA5Q,QAAA,OAAAA,MAAS4Q,EAAAgqB,eAAc,GAJzB56B,gCAGEA,MADA,MAAA4Q,EAAAiqB,SAAA76B,MACAA,CADgB,MAAA4Q,EAAAtL,SCSb,IAAMihB,EAAe,MAAtB,MAAOA,EARbvnB,cAUEc,KAAAg7B,SAAQzpB,QAA6B,EAAO,CAC1CG,UAAWC,QAQb3R,KAAAwF,QAAO+L,OAAqB,MAC5BvR,KAAA+6B,UAASxpB,OAAqB,MAE9BvR,KAAAiF,SAAQwO,QAAO,GARf,YACIwnB,GACF,OAAOj7B,KAAKiF,UAAYjF,KAAK+6B,QAC/B,CAOAD,eACE96B,KAAKiF,MAAM+E,KAAI,EACjB,CAACjK,SAAAC,KAAA,mBAAAC,iBAlBUwmB,EAAe,EAAA1mB,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAf0W,EAAezW,UAAA,qBAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,GAAfzQ,MAAA,gBAAA0Q,EAAAoqB,MAAA96B,CAAe,gBAAA0Q,EAAAqqB,kRDZ1B/6B,MAPF,EAAAk7B,EAAA,aAOEl7B,CAP0B,EAAAm7B,EAAA,kBAA5Bn7B,OAAA0Q,EAAAmqB,UAAAnqB,EAAA3L,QAAA,oBCgBY21B,GAAYpoB,OAAA,0bAAAmN,gBAAA,WAGX8G,CAAe,wICjBxBvmB,MAAA,SAQEA,MAAA,GACFA,+BALEA,MAAA4Q,EAAAwqB,SAEAp7B,MAAA,mBAAA4Q,EAAAyqB,mBAAA,MADAr7B,MAHA,aAAA4Q,EAAA0qB,OAGAt7B,CAHqB,cAAAA,MAAA,EAAAoQ,EAAAQ,EAAA2qB,QAGrBv7B,CAFgC,KAAA4Q,EAAA/F,MAKhC7K,cAAA,IAAA4Q,EAAA4qB,QAAA,+BAGFx7B,MAAA,SASEA,MAAA,GACFA,+BALEA,MAAA4Q,EAAAwqB,SAEAp7B,MAAA,mBAAA4Q,EAAAyqB,mBAAA,MADAr7B,MAFA,OAAA4Q,EAAA0qB,OAAAt7B,MAEAA,CAFe,KAAA4Q,EAAA/F,MAKf7K,cAAA,IAAA4Q,EAAA4qB,QAAA,8BAVFx7B,MAXF,EAAAy7B,EAAA,WAWEz7B,CAXqB,EAAA07B,EAAA,gCAAvB17B,MAAA4Q,EAAA+qB,eAAA,+BAyBA37B,MAAA,WAMEA,MAAA,GACFA,8BALEA,MAAA4Q,EAAAwqB,SAEAp7B,MAAA,mBAAA4Q,EAAAyqB,mBAAA,MADAr7B,MAAA,KAAA4Q,EAAA/F,MAGA7K,cAAA,IAAA4Q,EAAA4qB,QAAA,MCbG,IAAMI,EAAc,MAArB,MAAOA,EARb58B,cASEc,KAAA+K,MAAKwG,OAAqB,MAC1BvR,KAAA07B,SAAQnqB,OAAqB,MAC7BvR,KAAAw7B,QAAOjqB,OAAqB,MAC5BvR,KAAAy7B,QAAOlqB,SACPvR,KAAAnC,QAAO0T,OAAqB,MAC5BvR,KAAAu7B,mBAAkBhqB,OAAqB,MAEvCvR,KAAA67B,gBAAetqB,QAA6B,EAAO,CACjDG,UAAWC,QAGb3R,KAAA4R,aAAYL,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAs7B,SAAQxB,OAAS,IAAM,UAAS95B,KAAK4R,YAAc,mBAAqB,KACzE7R,SAAAC,KAAA,mBAAAC,iBAjBY67B,EAAc,EAAA/7B,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAd+rB,EAAc9rB,UAAA,oBAAAC,OAAA,CAAAlF,GAAA,SAAA2wB,MAAA,YAAAF,KAAA,WAAAC,KAAA,WAAA59B,KAAA,WAAA09B,gBAAA,sBAAAM,aAAA,mBAAAjqB,UAAA,iBAAAzB,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,mhBAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,GDMzBzQ,MAzBF,EAAA67B,EAAA,IAyBE77B,CAzBY,EAAA87B,EAAA,kBAAd97B,MAAA0Q,EAAA4qB,OAAA,oBCgBYpkB,KAAYG,MAAkB/E,OAAA,wjBAAAmN,gBAAA,WAG7Bmc,CAAc,8KCjBzB57B,MAAA,gBACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAA8jB,OAAA,+BAMA10B,MAAA,gBACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAAmrB,cAAA,+BAIF/7B,MAAA,gBACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAAorB,OAAA,4BAKJh8B,MAAA,WACEA,MAAA,mBAIFA,eAFIA,cAAA,yCAKJA,MAAA,WAIEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAAqrB,MAAArrB,EAAAsrB,WAAAtrB,EAAAsrB,WAAA,IAAAtrB,EAAAqrB,MAAA,MCDG,IAAMllB,EAAe,MAAtB,MAAOA,EAPb/X,cAkCWc,KAAAq8B,MAAsB,YACtBr8B,KAAAs8B,QAA0B,OAI1Bt8B,KAAAo8B,WAAaG,KACkBv8B,KAAAm6B,SAAU,EACVn6B,KAAAw8B,UAAW,EACXx8B,KAAAy8B,QAAS,EACTz8B,KAAA4R,WAAY,EACZ5R,KAAA08B,UAAW,EACX18B,KAAA28B,oBAAqB,EACrB38B,KAAA48B,MAAO,EACP58B,KAAAwV,QAAS,EA2BzCxV,KAAA68B,OAAwB,KA7DhC,WACIC,GACF,MAAO,CACL,SACA,WAAW98B,KAAKq8B,QAChB,WAAWr8B,KAAKs8B,UAChBt8B,KAAK8hB,KAAO,eAAiB,GAC7B9hB,KAAK4R,WAAa5R,KAAKi8B,cAAgB,oBAAsB,GAC7Dj8B,KAAK08B,SAAW,mBAAqB,GACrC18B,KAAK48B,KAAO,eAAiB,GAC7B58B,KAAKwV,OAAS,iBAAmB,IAEhCA,OAAOunB,SACP3kB,KAAK,IACV,CAEA,cACI4kB,GACF,OAAwB,IAAjBh9B,KAAKm6B,UAAsC,IAAlBn6B,KAAKw8B,UAAqB,IAC5D,CAiBA,SACIL,GACF,OAAOn8B,KAAK68B,MACd,CAEA,SAAIV,CAAMj+B,GACR,MAAM++B,EAAWj9B,KAAK68B,OAEtB78B,KAAK68B,OAAS3+B,IAGI,OAAhB8B,KAAK68B,QACL78B,KAAK68B,SAAWI,GAAY,KAC3Bj9B,KAAK28B,qBAKR38B,KAAKk9B,WAAW7R,cAAc8R,UAAUC,OAAO,2BAE/ChuB,WAAW,KACTpP,KAAKk9B,WAAW7R,cAAc8R,UAAUE,IAAI,0BAAyB,EACpE,GACL,CAACt9B,SAAAC,KAAA,mBAAAC,iBAjEUgX,EAAe,EAAAlX,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAfkH,EAAejH,UAAA,2BAAAstB,eAAA,SAAA3sB,EAAAC,EAAA2sB,MAAA,EAAA5sB,WAIZ6sB,KAAO,yFAHVC,IAAQ,EAAyB1T,uIADjC7pB,MAAA0Q,EAAAksB,wKAiCSnrB,OAAgB6qB,SAAA,yBAChB7qB,OAAgB8qB,OAAA,qBAChB9qB,OAAgBC,UAAA,2BAChBD,OAAgB+qB,SAAA,yBAChB/qB,OAAgBgrB,mBAAA,6CAChBhrB,OAAgBirB,KAAA,iBAChBjrB,OAAgB6D,OAAA,qBAChB7D,OAAgBwqB,MAAA,SAAAhsB,YAAA,EAAAC,SAAA,CAAAlQ,aAAA8kB,MAAA1U,EAAAD,mBAAAoI,EAAAlI,MAAA,EAAAC,KAAA,EAAAC,OAAA,sNAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YDvEtCzQ,MAAA,WACAA,MAAA,EAAAw9B,EAAA,kBAKAx9B,MAAA,WACEA,MAAA,GAMAA,MALA,EAAAy9B,EAAA,iBAKAz9B,CALqB,EAAA09B,EAAA,kBAUvB19B,QASAA,MARA,EAAA29B,EAAA,YAQA39B,CARe,EAAA49B,EAAA,oBAlBf59B,cAAA0Q,EAAAgkB,OAAA,MAOE10B,MAAA,GAAAA,MAAA0Q,EAAAqrB,cAAA,MAKA/7B,cAAA0Q,EAAAsrB,OAAA,MAMFh8B,cAAA0Q,EAAAupB,QAAA,MAQAj6B,cAAA0Q,EAAAurB,MAAA,sBCEY5c,KAAwBpf,KAAE+W,KAAa9E,KAAE2rB,IAAczrB,KAAAE,OAAA,o1HAEtDyE,CAAe,4FCbrB,IAAM+R,EAAa,MAApB,MAAOA,EARb9pB,cAwBEc,KAAAg+B,SAAQzsB,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAAi+B,mBAAkB1sB,OAAc,IAChCvR,KAAA4R,aAAYL,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAm6B,WAAU5oB,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAAk+B,QAAO3sB,QAA6B,EAAO,CACzCG,UAAWC,QAGb3R,KAAAm+B,UAAS5sB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAo+B,UAAS7sB,QAA6B,EAAO,CAC3CG,UAAWC,QArCb,eACI0sB,GACF,OAAOr+B,KAAK4R,WACd,CAEA,UACI0sB,GACF,OAAOt+B,KAAKk+B,MACd,CAEA,YACIK,GACF,OAAOv+B,KAAKm+B,QACd,CAACp+B,SAAAC,KAAA,mBAAAC,iBAdU+oB,EAAa,EAAAjpB,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAbiZ,EAAahZ,UAAA,mBAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,GAAbzQ,MAAA,kBAAA0Q,EAAAytB,YAAAn+B,CAAa,aAAA0Q,EAAA0tB,OAAbp+B,CAAa,eAAA0Q,EAAA2tB,8UClB1Br+B,MAAA,iCAMAA,MAAA,SAFEA,MAHA,SAAA0Q,EAAAupB,UAGAj6B,CAHoB,WAAA0Q,EAAAqtB,kBAGpB/9B,CAF8B,SAAA0Q,EAAAwtB,SAE9Bl+B,CADmB,QAAA0Q,EAAAotB,wBDYT1mB,KAAyB9E,OAAA,shBAAAmN,gBAAA,WAGxBqJ,CAAa,oGEEnB,IAAMwV,EAAmB,MAA1B,MAAOA,EARbt/B,cASEc,KAAA9B,SAAQqT,SACRvR,KAAAiR,WAAUM,SAEVvR,KAAAy+B,SAAQltB,QAA6B,EAAO,CAC1CG,UAAWC,QAGI3R,KAAA0+B,oBAAmBh+B,OAAOi+B,KAEjC9gC,OACR,MAAMK,EAAQ8B,KAAK9B,QACbugC,EAAQz+B,KAAKy+B,SAEdvgC,IAAUugC,IAIXA,EACFz+B,KAAK0+B,iBAAiB7gC,KAAKK,GAAS,IAAI,GAC/BA,GACT8B,KAAK0+B,iBAAiB7gC,KAAKK,GAE/B,CAAC6B,SAAAC,KAAA,mBAAAC,iBAvBUu+B,EAAmB,EAAAz+B,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAnByuB,EAAmBxuB,UAAA,0BAAAC,OAAA,CAAA/R,MAAA,YAAA+S,QAAA,cAAAwtB,MAAA,aAAAtuB,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,2CAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,ICpBhCzQ,MAAA,gBAGEA,MAAA,0BAAS0Q,EAAA/S,MAAM,GAEfqC,MAAA,GACFA,oBAJEA,MAAA,qBAAA0gB,EAAAhQ,EAAAK,iBAAA1O,IAAAqe,IAAA,IAGA1gB,cAAA,IAAA0Q,EAAA6tB,QAAA,4CDYUtsB,KAAgBhS,KAAE+W,KAAa9E,MAAAI,OAAA,8SAAAmN,gBAAA,WAG9B6e,CAAmB,6KEH1Bt+B,MAAA,cAIEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA8B,EAAArY,MAAA,UAAAA,MAASqY,EAAAqmB,WAAU,GAEnB1+B,MAAA,gBAA0CA,MAAA,UAC5CA,mDAGAA,MAAA,cAIEA,MAAA,mBAAAA,MAAA8Y,GAAA,MAAAT,EAAArY,MAAA,UAAAA,MAASqY,EAAAsmB,mBAAkB,GAE3B3+B,MAAA,gBAA0CA,MAAA,kBAC5CA,oCAjCJA,MAAA,WAIEA,MAAA,qBAqBAA,MAVA,EAAA4+B,EAAA,eAUA5+B,CAViC,EAAA6+B,EAAA,gBAoBnC7+B,kCAjCEA,MAAA,yBAAAqY,EAAAymB,UAOE9+B,cAAA,iCAAAqY,EAAA0mB,aAIA/+B,MAPA,OAAAqY,EAAAymB,SAAA,IAAAE,EAAA,KAOAh/B,CAPsC,OAAAqY,EAAAkjB,OAOtCv7B,CANe,QAAAg/B,EAMfh/B,CALe,kBAAAqY,EAAAgjB,kBAKfr7B,CAHqC,eAAAqY,EAAAsjB,eAGrC37B,CAF+B,YAAAqY,EAAA3G,YAE/B1R,CADyB,aAAAqY,EAAAtH,WAAA,IAG3B/Q,cAAAqY,EAAAymB,WAAAzmB,EAAA4mB,aAAA,MAUAj/B,cAAAqY,EAAA4mB,aAAA,OCRJ,MAAMC,EAAgD,CACpDC,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,KAAM,UACNC,IAAK,UACLC,GAAI,UACJC,OAAQ,UACRC,KAAM,UACNC,IAAK,UACLC,MAAO,cACPC,KAAM,cACNC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,IAAK,UACLC,MAAO,WAWF,IAAM3gB,EAAoB,MAA3B,MAAOA,EARbxgB,cAWEc,KAAA2pB,UAAoB,GAEpB3pB,KAAA07B,MAAQnqB,MAAMC,WACdxR,KAAAiR,WAAUM,OAAqB,IAE/BvR,KAAAi/B,aAAY1tB,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAg/B,UAASztB,QAA6B,EAAM,CAC1CG,UAAWC,QAGb3R,KAAAm/B,cAAa5tB,QAA6B,EAAM,CAC9CG,UAAWC,QAGb3R,KAAA4R,aAAYL,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAA67B,gBAAetqB,QAA6B,EAAO,CACjDG,UAAWC,QAGb3R,KAAAy7B,QAAOlqB,SAEYvR,KAAAs2B,QAAOwD,OAAS,KACjC,MAAM4B,EAAQ17B,KAAK07B,QAEnB,OAAKA,EAIE3f,IAAcukB,QAAQ5E,GAHpB7iB,IAAsBC,UAMd9Y,KAAAu7B,mBAAkBzB,OAAS,KAC5C,MAAMxD,EAAOt2B,KAAKs2B,OAClB,OAAOA,EAAO8I,EAAO9I,GAAQ,OAGdt2B,KAAA0+B,oBAAmBh+B,OAAOi+B,KAEjCC,WACH5+B,KAAKg/B,UAIVh/B,KAAK0+B,iBAAiB7gC,KAAK,GAAG2mB,OAAOC,SAAS8b,UAAUvgC,KAAK07B,UAC/D,CAEUmD,mBACH7+B,KAAKm/B,cAIVn/B,KAAK0+B,iBAAiB7gC,KAAK,IAAImC,KAAK07B,WACtC,CAAC37B,SAAAC,KAAA,mBAAAC,iBA7DUyf,EAAoB,EAAA3f,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAApB2P,EAAoB1P,UAAA,2BAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,GAApBzQ,MAAA0Q,EAAA+Y,wyBD9CbzpB,MAAA,EAAAsgC,EAAA,yBAAAtgC,OAAA0gB,EAAAhQ,EAAA8qB,SAAA,KAAA9a,mBC2CYkb,IAAgB3pB,KAAgBhS,KAAE+W,KAAa9E,MAAAI,OAAA,m3BAAAmN,gBAAA,WAG9CD,CAAoB,yKCrBjBxf,MAAA,cACEA,MAAA,GACFA,eADEA,cAAA,IAAA0Q,EAAA,8BAIF1Q,MAAA,kDAEEA,MADA,QAAA4Q,EAAAqrB,SAAA,EACAj8B,CADsB,sCAKxBA,MAAA,iBAEEA,MAAA,mBAAA0Q,2BAME1Q,MAAA,wCAIEA,MAAA,qBAAAihB,EAAArQ,EAAA2vB,cAAAl+B,IAAA4e,IAAA,8BAGFjhB,MAAA,iBAIEA,MAAA,YACFA,qCAHEA,MAAA,qBAAAihB,EAAArQ,EAAA2vB,cAAAl+B,IAAA4e,IAAA,6BAHFjhB,MAPF,EAAAwgC,EAAA,aAOExgC,CAPoB,EAAAygC,EAAA,yCAAtBzgC,MAAA4Q,EAAA8vB,eAAA,2BAoBI1gC,MAAA,kCAFJA,MAAA,YACEA,MAAA,EAAA2gC,EAAA,KAGA3gC,MAAA,GACFA,+BAJEA,cAAA4Q,EAAA4qB,QAAA,MAGAx7B,cAAA,IAAA0Q,EAAA,+BAKA1Q,MADF,WACEA,CADwC,UAOtCA,MAAA,GAEJA,iCAJIA,cAAA,OAAA4Q,EAAA0qB,OAAAt7B,OAEAA,cAAA,IAAA4Q,EAAAgwB,YAAA,2BAMN5gC,MAAA,kCAEEA,MAAA,SAAA0Q,4BA7DN1Q,MALF,iCAKEA,CADD,qBAaGA,MAXA,EAAA6gC,EAAA,eAWA7gC,CAXuB,EAAA8gC,EAAA,6BAWvB9gC,CANqD,EAAA+gC,EAAA,aAYrD/gC,MAAA,WACEA,MAAA,EAAAghC,EAAA,KAiBAhhC,MAAA,GASAA,MARA,EAAAihC,EAAA,aAQAjhC,CARqC,EAAAkhC,EAAA,cAoBvClhC,QACAA,MAAA,GAAAmhC,EAAA,+BAOJnhC,4CArEEA,MAAA,oCAAA4Q,EAAA0rB,YAEAt8B,MADA,kBAAA4Q,EAAAwwB,gBACAphC,CADmC,iBAAA4Q,EAAAwwB,iBAIjCphC,MAAA,GAAAA,OAAAqhC,EAAAzwB,EAAAgR,QAAA,KAAAyf,GAKArhC,cAAA4Q,EAAAqrB,SAAA,IAAArrB,EAAAqrB,SAAArrB,EAAA0wB,gBAAA,MAMAthC,eAAAknB,EAAAtW,EAAAurB,SAAA,KAAAjV,GAOElnB,MAAA,GAAAA,MAAA4Q,EAAA2vB,OAAA,MAiBAvgC,cAAA,IAAA4Q,EAAA4qB,QAAA,KACAx7B,eAAAgjB,EAAApS,EAAA2wB,eAAA,KAAAve,GAQAhjB,cAAA4Q,EAAAgwB,aAAAhwB,EAAA0qB,OAAA,MAaFt7B,eAAAwhC,EAAA5wB,EAAA8c,UAAA,MAAA8T,ICzCP,IAAMC,EAAuB,MAA9B,MAAOA,EAhBbziC,cAoBEc,KAAA4hC,UAASC,SACT7hC,KAAA8hC,UAASD,SAET7hC,KAAA07B,SAAQnqB,OAAqB,IAC7BvR,KAAAygC,QAAOlvB,OAAqB,MAC5BvR,KAAAyhC,eAAclwB,OAAqB,IACnCvR,KAAA8gC,aAAYvvB,OAAqB,IACjCvR,KAAAw7B,QAAOjqB,OAAqB,IAC5BvR,KAAAm8B,SAAQ5qB,SACRvR,KAAAq8B,SAAQ9qB,SAERvR,KAAAg+B,SAAQzsB,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAAwhC,iBAAgBjwB,QAA6B,EAAO,CAClDG,UAAWC,QAGb3R,KAAA8hB,QAAOvQ,OAAc,IACrBvR,KAAA+hC,uBAAsBxwB,OAAgB,CAAC,qBACvCvR,KAAA4tB,UAASrc,SACTvR,KAAAgiC,eAAczwB,OAAc,QAE5BvR,KAAA4gC,gBAAervB,QAA6B,EAAO,CACjDG,UAAWC,QAGb3R,KAAAm6B,WAAU5oB,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAAiiC,YAAW1wB,QAA6B,EAAM,CAC5CG,UAAWC,QAGb3R,KAAAkiC,cAAa3wB,QAA6B,EAAO,CAC/CG,UAAWC,QAGb3R,KAAAw8B,YAAWjrB,QAA6B,EAAO,CAC7CG,UAAWC,QAGb3R,KAAAmiC,cAAa5wB,QAA6B,EAAO,CAC/CG,UAAWC,QAGb3R,KAAAk+B,QAAO3sB,QAA6B,EAAO,CACzCG,UAAWC,QAGb3R,KAAAm+B,UAAS5sB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAshC,iBAAgBxH,OAAS,IACM,IAAzB95B,KAAK07B,SAAS1kB,QAAgBhX,KAAKkiC,aAC9B,IAGFliC,KAAKgiC,eAGdz6B,QACEvH,KAAKoiC,gBAAgB76B,OACvB,CAEA5F,OACE3B,KAAKoiC,gBAAgBzgC,MACvB,CAEAqlB,SACEhnB,KAAKoiC,gBAAgBpb,QACvB,CAACjnB,SAAAC,KAAA,mBAAAC,iBA9EU0hC,EAAuB,EAAA5hC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAvB4xB,EAAuB3xB,UAAA,8BAAAqO,UAAA,SAAA1N,EAAAC,MAAA,EAAAD,SACvB0xB,KAAiB,y6CDhCxBniC,MATN,mBASMA,CAHL,UAGKA,CAFyB,kBAEzBA,CADa,2BAOXA,MADA,2BAAU0Q,EAAAgxB,OAAAU,MAAa,EACvBpiC,CADwB,2BACd0Q,EAAAkxB,OAAAQ,MAAa,GAEvBpiC,MAAA,EAAAqiC,EAAA,sCAyEAriC,MAAA,GAIRA,qBAzFEA,MAHA,QAAA0Q,EAAAotB,QAGA99B,CAHiB,UAAA0Q,EAAAupB,UAGjBj6B,CAFqB,OAAA0Q,EAAAstB,OAErBh+B,CADe,SAAA0Q,EAAAutB,UAMTj+B,MAAA,GAAAA,MAAA0Q,EAAAmxB,uBAGA7hC,MAFA,WAAA0Q,EAAAqxB,WAEA/hC,CAFuB,aAAA0Q,EAAA4rB,YAAA5rB,EAAAsxB,aAEvBhiC,CADyC,WAAA0Q,EAAA4rB,YAAA5rB,EAAAsxB,cAKzChiC,cAAA0Q,EAAAuxB,cAAA,qBCaJK,KAAkBriC,oBAClB+W,KAAa9E,KACbqwB,IACAzZ,IACA0Z,IACAvwB,KAAgBG,MAAAE,OAAA,2wDAAAC,cAAA,EAAAkN,gBAAA,WAKPgiB,CAAuB,kKClC9BzhC,MALJ,UAKIA,CAFH,UAEGA,CADwC,gBACIA,MAAA,UAAIA,QAChDA,MAAA,WAKEA,MADF,UACEA,CADwC,cAKtCA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA8B,EAAArY,QAAA,OAAAA,MAASqY,EAAA2P,WAAU,GAEnBhoB,MAAA,cAAUA,MAAA,WAIlBA,wCAnBEA,MAAA,kBAMIA,MAAA,GAAAA,MAAA,kBAAAqY,EAAA9C,aAAA,KAAA8C,EAAA9C,aAAAvX,MAAAgC,QCsBD,IAAM6oB,EAA2B,MAAlC,MAAOA,EApBb7pB,cAqBWc,KAAAyV,aAAqD,KACtBzV,KAAA2iC,SAAmB,EAExC3iC,KAAA4iC,mBAAqB,IAAItxB,MAE3BtR,KAAA+T,0BAAyBrT,OAAOsT,KAChChU,KAAAY,cAAaF,OAAOG,OAErCqnB,WACE,GAAKloB,KAAKyV,aAIV,IAAIzV,KAAK2iC,QAEP,YADA3iC,KAAK4iC,mBAAmBN,OAI1BtiC,KAAK+T,uBAAuB2U,qBAAqB1oB,KAAKyV,aAAakT,gBAChEvmB,QACCC,MAAmBrC,KAAKY,aAEzB0B,UAAW+T,KACLA,IAAarW,KAAKyV,eAIvBzV,KAAKyV,aAAamT,SAAU,IAC7B,CACL,CAAC7oB,SAAAC,KAAA,mBAAAC,iBA9BU8oB,EAA2B,EAAAhpB,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAA3BgZ,EAA2B/Y,UAAA,kCAAAC,OAAA,CAAAwF,aAAA,eAAAktB,QAAA,uBAElBhxB,QAAgBG,QAAA,CAAA8wB,mBAAA,sBAAAzyB,YAAA,EAAAC,SAAA,CAAAlQ,aAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,8QAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,GDjCtCzQ,MAAA,EAAA2iC,EAAA,kBAAA3iC,MAAA,MAAA0Q,EAAA6E,cAAA7E,EAAA6E,aAAAmT,QAAA,qBCiBI1R,KAAa/W,KACb8W,KAAezE,OAAA,m5BAAAC,cAAA,EAAA3T,KAAA,CAAAmqB,UAEL,IACVC,MAAQ,WAAY,IAClBC,MAAW,SAAU,IACnBE,MAAM,CAAE3X,UAAW,sBAAoB,EACvC0X,MAAQ,OAAKC,MAAM,CAAE3X,UAAW,sBACjC,EACDyX,MAAW,SAAU,IAACC,MAAQ,OAAKC,MAAM,CAAE3X,UAAW,qCAK/CqX,CAA2B,8ECVjC,IAAMzR,EAAyB,MAAhC,MAAOA,EARbpY,cAkCEc,KAAAy8B,UAASlrB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAo+B,UAAS7sB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAg+B,SAAQzsB,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAA8iC,SAAQvxB,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAA+iC,YAAWxxB,OAAc,IACzBvR,KAAAgjC,YAAWzxB,OAAyB,UACpCvR,KAAAijC,SAAQ1xB,OAAsB,SA3C9B,SACI+pB,GACF,MAAO,wCAAwCt7B,KAAKgjC,iCAAiChjC,KAAKijC,SAC5F,CAEA,eACIC,GACF,OAAOljC,KAAKy8B,QACd,CAEA,cACI0G,GACF,OAAOnjC,KAAK8iC,OACd,CAEA,eACIM,GACF,OAAOpjC,KAAKo+B,QACd,CAEA,cACIiF,GACF,OAAOrjC,KAAKg+B,OACd,CAACj+B,SAAAC,KAAA,mBAAAC,iBAxBUqX,EAAyB,EAAAvX,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAzBuH,EAAyBtH,UAAA,gCAAAkrB,SAAA,GAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,IAAzBzQ,MAAA0Q,EAAA0qB,OAAAp7B,MAAA,4BAAA0Q,EAAAsyB,YAAAhjC,CAAyB,2BAAA0Q,EAAAuyB,WAAzBjjC,CAAyB,4BAAA0Q,EAAAwyB,YAAzBljC,CAAyB,2BAAA0Q,EAAAyyB,uQCrBtCnjC,MAAA,wBAAaA,MAAA,WAAA0Q,EAAAmyB,2BDkBDxjB,KAAwBpf,MAAAqS,OAAA,u7BAAAmN,gBAAA,WAGvBrI,CAAyB,kLEH5BpX,MAAA,2BAAAA,MAAA,EAAAojC,EAAA,qDAAepjC,MAAA,mBAAAqjC,6BAPnBrjC,MATF,UASEA,CADD,SAOGA,MAAA,EAAAsjC,EAAA,oBAIJtjC,0CAbEA,MAFA,mBAAA0S,EAAA6wB,OAEAvjC,CAFiC,mBAAA0S,EAAA8wB,OAEjCxjC,CADiC,uBAAA0S,EAAAqvB,YAEjC/hC,MAAA,aAAA0S,EAAAqvB,WAAA,GAAArvB,EAAA3B,WAAA,IAIE/Q,QAEAA,MAFA,6BAAA0S,EAAAqvB,WAEA/hC,CAF+C,8BAAA0S,EAAA6pB,UAC/Cv8B,MAAA,aAAAyjC,GAGAzjC,cAAA0S,EAAAqvB,WAAA,4BAhBN/hC,MAAA,EAAA0jC,EAAA,mBAAA1jC,MAAA0Q,EAAAoG,OAAA,6BAwCQ9W,MAAA,2BAAAA,MAAA,EAAA2jC,EAAA,qDAAe3jC,MAAA,mBAAAqjC,4CAfrBrjC,MAAA,cAQEA,MAAA,mBAAAA,MAAA8S,GAAA,MAAAJ,EAAA1S,MAAA,UAAAA,MAAS0S,EAAAsC,WAAU,GAEnBhV,MAAA,YAIEA,MAAA,EAAA4jC,EAAA,oBAIJ5jC,mCAZEA,MAFA,mBAAA0S,EAAA6wB,OAEAvjC,CAFiC,mBAAA0S,EAAA8wB,OAEjCxjC,CADiC,uBAAA0S,EAAAqvB,YAEjC/hC,MAAA,aAAA0S,EAAAqvB,WAAA,GAAArvB,EAAA3B,WAAA,IAKE/Q,cAAA,8BAAA0S,EAAA6pB,UAEAv8B,cAAA0S,EAAAqvB,WAAA,4BAfN/hC,MAAA,EAAA6jC,EAAA,sBAAA7jC,MAAA,IAAA0Q,EAAAoG,OAAA,2BA0CA9W,MAAA,GC3CK,IAAM8jC,EAAkB,MAAzB,MAAOA,EAdb9kC,cAeEc,KAAAikC,SAAQ1yB,OAAqC,IAC7CvR,KAAAkkC,UAAS3yB,OAAqC,IAC9CvR,KAAAy7B,QAAOlqB,SACPvR,KAAAiR,WAAUM,SAEVvR,KAAAy8B,UAASlrB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAyjC,QAAOlyB,QAA6B,EAAO,CACzCG,UAAWC,QAGb3R,KAAAmkC,SAAQ5yB,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAA0jC,QAAOnyB,QAA6B,EAAO,CACzCG,UAAWC,QAGb3R,KAAAokC,YAAW7yB,QAA6B,EAAO,CAC7CG,UAAWC,QAGH3R,KAAAiiC,YAAWvhC,OAAOgnB,KAAkBH,qBAC3BvnB,KAAAqkC,yBAAwB3jC,OAAO4jC,KAEjCtkC,KAAAiU,UAASvT,OAAOwT,MAEjCgB,WACE,MAAMgvB,EAASlkC,KAAKkkC,SACdzI,EAAOz7B,KAAKy7B,OAMlB,GAJIyI,GACFlkC,KAAKiU,OAAOiB,SAASgvB,GAGnBzI,EAAM,CACRz7B,KAAKqkC,sBAAsBE,cAAc9I,GAEzC,MAAM3mB,EAAM,IAAIE,IAAIwP,OAAOC,SAAS0P,YACpCrf,EAAI0vB,aAAax6B,IAAI,OAAQyxB,GAE7BjX,OAAOigB,QAAQC,UAAU,GAAI,GAAI5vB,EACnC,CACF,CAAC/U,SAAAC,KAAA,mBAAAC,iBA/CU+jC,EAAkB,EAAAjkC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAlBi0B,EAAkBh0B,UAAA,yBAAAC,OAAA,CAAAg0B,MAAA,YAAAC,OAAA,aAAAzI,KAAA,WAAAxqB,QAAA,cAAAwrB,OAAA,aAAAgH,KAAA,WAAAU,MAAA,YAAAT,KAAA,WAAAU,SAAA,gBAAAj0B,YAAA,EAAAC,SAAA,CAAAlQ,OAAAmQ,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,GAAAC,OAAA,sgBAAAC,SAAA,SAAAC,EAAAC,MAAA,EAAAD,YDA/BzQ,MAxBA,EAAAykC,EAAA,IAwBAzkC,CAxByB,EAAA0kC,EAAA,KA+CzB1kC,MAAA,WAUEA,MANA,UAMAA,CADO,WAQTA,QAEAA,MAAA,EAAA2kC,EAAA,yBAAA3kC,qBAlEAA,OAAA+gB,EAAArQ,EAAAqzB,SAAA,KAAAhjB,GAwBA/gB,eAAAghB,EAAAtQ,EAAA6qB,QAAA,KAAAva,GAyBEhhB,cAAA,uCAAA0Q,EAAAqxB,YAIE/hC,QAEAA,MAFA,kCAAA0Q,EAAA6yB,OAEAvjC,CAFgD,mCAAA0Q,EAAAuzB,QAEhDjkC,CADkD,sCAAA0Q,EAAAqxB,YAKlD/hC,QAGAA,MAHA,oCAAA0Q,EAAA6yB,OAGAvjC,CAHkD,qCAAA0Q,EAAAuzB,QAGlDjkC,CAFoD,oCAAA0Q,EAAA8yB,OAEpDxjC,CADkD,wCAAA0Q,EAAAqxB,4BC7ClD/qB,KACAE,KACAjF,KAAgBhS,KAChBoX,KAEAhF,MAAgBC,OAAA,o8FAGPwxB,CAAkB,oNCJrB9jC,MAAA,gBAIEA,MAAA,GACFA,8BADEA,cAAA,IAAA4kC,EAAA,gCAGF5kC,MAAA,cACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4kC,EAAA,+BAFF5kC,MAPF,EAAA6kC,EAAA,iBAOE7kC,CAPgB,EAAA8kC,EAAA,sCAAlB9kC,MAAAqY,EAAA0sB,WAAA,6BAcA/kC,MAAA,cAAUA,MAAA,aAAOA,kCAGjBA,MAAA,yBAAAA,MAAA,IAAAqY,EAAAmjB,QAAA,4BAINx7B,MAAA,4CAvCAA,MAAA,cAWEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA8B,EAAArY,QAAA,OAAAA,MAASqY,EAAArD,WAAU,GAEnBhV,MAAA,WAqBEA,MAjBA,EAAAglC,EAAA,IAiBAhlC,CAjBuB,EAAAilC,EAAA,eAiBvBjlC,CAH+B,EAAAklC,EAAA,KAOnCllC,UACAA,MAAA,EAAAmlC,EAAA,mEA/BEnlC,MAJA,sBAAAqY,EAAA0pB,WAIA/hC,CAJwC,oBAAAqY,EAAA+sB,eAAA10B,IAAA2H,EAAAkkB,SAIxCv8B,CAH6D,mBAAAqY,EAAAgtB,QAG7DrlC,CAFkC,qBAAAqY,EAAAitB,UAElCtlC,CADsC,0BAAAqY,EAAAgX,SAAAvY,QAGtC9W,MAPA,qBAAAqY,EAAA0pB,WAAA,gBAOA/hC,CAPqD,qBAAAgjB,EAAA3K,EAAAktB,qBAAAljC,IAAA2gB,IAAA,GAOrDhjB,CADkC,WAAAqY,EAAAikB,YAMhCt8B,cAAA,mCAAAqY,EAAAgX,SAAAvY,QAEA9W,eAAA6lB,GAAAxN,EAAAuJ,QAAA,KAAAiE,IAcA7lB,cAAAqY,EAAAmtB,WAAAntB,EAAA0pB,WAAA,MAGA/hC,cAAAqY,EAAA0pB,WAAA,MAKW/hC,cAAA,mBAAAylC,+BAiBPzlC,MAAA,gBAIEA,MAAA,GACFA,8BADEA,cAAA,IAAA0lC,EAAA,gCAGF1lC,MAAA,cACEA,MAAA,GACFA,8BADEA,cAAA,IAAA0lC,EAAA,+BAFF1lC,MAPF,EAAA2lC,EAAA,iBAOE3lC,CAPgB,EAAA4lC,EAAA,sCAAlB5lC,MAAAqY,EAAA0sB,WAAA,+BAcA/kC,MAAA,yBAAAA,MAAA,IAAAqY,EAAAmjB,QAAA,4BAINx7B,MAAA,6BApBEA,MAXF,QAWEA,CADD,YAgBGA,MAdA,EAAA6lC,EAAA,IAcA7lC,CAduB,EAAA8lC,EAAA,KAkB3B9lC,UACAA,MAAA,EAAA+lC,EAAA,iEAvBE/lC,MAAA,qBAAAqY,EAAAitB,WACAtlC,MALA,aAAA0Q,GAKA1Q,CALmB,uCAKnBA,CAJwC,0BAAAA,MAAA,GAAAuY,GAAAF,EAAA2tB,gBAIxChmC,CAHsD,WAAAqY,EAAA4tB,WAGtDjmC,CAFuB,qBAAAkmC,EAAA7tB,EAAAktB,qBAAAljC,IAAA6jC,IAAA,IAKrBlmC,MAAA,GAAAA,OAAAgjB,GAAA3K,EAAAuJ,QAAA,KAAAoB,IAcAhjB,cAAAqY,EAAA0pB,WAAA,MAKW/hC,cAAA,mBAAAylC,+BAePzlC,MAAA,gBAIEA,MAAA,GACFA,8BADEA,cAAA,IAAAmmC,EAAA,gCAGFnmC,MAAA,cACEA,MAAA,GACFA,8BADEA,cAAA,IAAAmmC,EAAA,+BAFFnmC,MAPF,EAAAomC,EAAA,iBAOEpmC,CAPgB,EAAAqmC,EAAA,sCAAlBrmC,MAAAqY,EAAA0sB,WAAA,+BAcA/kC,MAAA,yBAAAA,MAAA,IAAAqY,EAAAmjB,QAAA,6BAINx7B,MAAA,6BApBEA,MATF,aASEA,CADD,WAgBGA,MAdA,EAAAsmC,EAAA,IAcAtmC,CAduB,EAAAumC,EAAA,KAkB3BvmC,UACAA,MAAA,EAAAwmC,GAAA,iEAvBExmC,MADA,qBAAAqY,EAAAitB,UACAtlC,CADsC,sBAAAqY,EAAAikB,YAEtCt8B,MAHA,WAAAqY,EAAAikB,WAGAt8B,CAHuB,qBAAAgnB,EAAA3O,EAAAktB,qBAAAljC,IAAA2kB,IAAA,IAMrBhnB,MAAA,GAAAA,OAAAknB,GAAA7O,EAAAuJ,QAAA,KAAAsF,IAcAlnB,cAAAqY,EAAA0pB,WAAA,MAKW/hC,cAAA,mBAAAylC,4BAKbzlC,MAAA,WACEA,MAAA,GACFA,mCAHFA,MAAA,EAAAymC,EAAA,kCAAAzmC,MAAAqY,EAAAgX,SAAAvY,QAAAuB,EAAAquB,eAAA,OC7EK,IAAM5e,GAAiB,MAAxB,MAAOA,EAdb9oB,cAiBEc,KAAA6mC,cAAahF,SAEb7hC,KAAAw8B,YAAWjrB,QAA6B,EAAO,CAC7CG,UAAWC,QAGb3R,KAAAy7B,QAAOlqB,SACPvR,KAAA8hB,QAAOvQ,SACPvR,KAAAw7B,QAAOjqB,SACPvR,KAAAmmC,YAAW50B,SACXvR,KAAA07B,SAAQnqB,SACRvR,KAAAiR,WAAUM,SAEVvR,KAAAilC,YAAW1zB,QAA6B,EAAO,CAC7CG,UAAWC,QAGb3R,KAAAwlC,WAAUj0B,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAAulC,SAAQh0B,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAAkmC,gBAAe30B,QAA6B,EAAO,CACjDG,UAAWC,QAGb3R,KAAA4mC,gBAAer1B,QAA6B,EAAM,CAChDG,UAAWC,QAGb3R,KAAA8mC,aAAYv1B,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAy8B,UAASlrB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAA0lC,WAAUn0B,QAA6B,EAAO,CAC5CG,UAAWC,QAGH3R,KAAAylC,eAAc3L,OAAS,IAC9B95B,KAAKiiC,WAA4BjiC,KAAKiR,UAApBjR,KAAK07B,SAGhB17B,KAAAsnB,eAAc5mB,OAAOgnB,KAErB1nB,KAAAiiC,YAAWnI,OAAS,IAC3B95B,KAAK8mC,YAEF9mC,KAAKsnB,YAAYE,gCADjBxnB,KAAKsnB,YAAYC,wBAIJvnB,KAAAqkC,yBAAwB3jC,OAAO4jC,KAExCtkC,KAAAslC,WAAatlC,KAAKqkC,sBAAsBiB,WAElDpwB,WACE,MAAMumB,EAAOz7B,KAAKy7B,OAElB,IAAKA,EACH,OAGFz7B,KAAKqkC,sBAAsBE,cAAc9I,GAEzC,MAAM3mB,GAAM,IAAIE,IAAIwP,OAAOC,SAAS0P,YACpCrf,GAAI0vB,aAAax6B,IAAI,OAAQyxB,GAE7BjX,OAAOigB,QAAQC,UAAU,GAAI,GAAI5vB,GACnC,CAAC/U,SAAAC,KAAA,mBAAAC,mBA7EU+nB,EAAiB,EAAAjoB,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAjBiY,EAAiBhY,UAAA,wBAAAstB,eAAA,SAAA3sB,GAAAC,EAAA2sB,OAAA,EAAA5sB,aACXqzB,IAAkB,sgCD2ErC9jC,MA7GA,EAAA6mC,EAAA,KA6GA7mC,CA7GuB,EAAA8mC,EAAA,KA6GvB9mC,CAnEuB,EAAA+mC,EAAA,IAmEvB/mC,CAjC0B,EAAAgnC,GAAA,yBAAAhnC,uBA5E1BA,OAAA+gB,GAAArQ,EAAA6qB,QAAA,KAAAxa,IA0CA/gB,eAAAghB,EAAAtQ,EAAA4qB,QAAA,KAAAta,GAkCAhhB,cAAA0Q,EAAA4qB,QAAA5qB,EAAA6qB,QAAA,qBCnDIvkB,KAAa/W,KACbiX,KACA+vB,KACA50B,KACAJ,KAAgBC,KAChBmF,MAAkB/E,OAAA,kxDAGTwV,CAAiB,kJC1BxB9nB,MAJA,2BAIAA,CADE,iDADAA,MADA,QAAA4Q,EAAAmN,eACA/d,CADwB,aAOxBA,cAAA,YAAA4Q,EAAAmN,yCAGF/d,MAAA,yBAAAA,MAAA,IAAA4Q,EAAAzM,QAAA,+BAbJnE,MAAA,WAYIA,MAXF,EAAAknC,EAAA,IAWElnC,CAXoB,EAAAmnC,EAAA,KAcxBnnC,8BAdEA,cAAA4Q,EAAAmN,eAAA,MCyBG,IAAM8J,EAAa,MAApB,MAAOA,EAZb7oB,cAa6Bc,KAAAsnC,UAAY,GAEvCtnC,KAAAqE,SAAQkN,SAERvR,KAAAie,gBAAe1M,OAAqB,MAEpCvR,KAAAunC,SAAQh2B,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAA6T,aAAYtC,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAwnC,UAASj2B,QAA6B,EAAO,CAC3CG,UAAWC,QAGH3R,KAAA4+B,YAAW9E,OACnB,IAAM,GAAGtV,OAAOC,SAAS8b,UAAUvgC,KAAKie,kBAGhCje,KAAAiiC,YAAWvhC,OAAOgnB,KAAkBH,qBAC/CxnB,SAAAC,KAAA,mBAAAC,iBAxBY8nB,EAAa,EAAAhoB,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAbgY,EAAa/X,UAAA,mBAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,kaD3B1BzQ,MAAA,EAAAunC,EAAA,aAkBAvnC,MAAA,WAKEA,MAAA,iCAIAA,MAAA,WACEA,MAAA,GAEJA,iBA9BAA,MAAA0Q,EAAAqxB,YAAArxB,EAAAvM,QAAA,MAoBEnE,QACAA,MADA,iBAAA0Q,EAAAqxB,aAAArxB,EAAA22B,QACArnC,CAD+C,eAAA0Q,EAAA42B,UAK7CtnC,cAAA,SAAA0Q,EAAAiD,6BCJAyD,IAEAoI,IACA8e,KAAmBhsB,OAAA,umCAGVuV,CAAa,4FClBtB7nB,MAAA,WACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAA4qB,QAAA,MCKC,IAAM+G,EAAoB,MAA3B,MAAOA,EAPbvjC,cAQEc,KAAA9B,MAAQqT,MAAMC,WACdxR,KAAA07B,SAAQnqB,SAERvR,KAAA0nC,SAAQn2B,QAA6B,EAAO,CAC1CG,UAAWC,QAGb3R,KAAAi/B,aAAY1tB,QAA6B,EAAM,CAC7CG,UAAWC,QAEd5R,SAAAC,KAAA,mBAAAC,iBAXYwiC,EAAoB,EAAA1iC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAApB0yB,EAAoBzyB,UAAA,2BAAAC,OAAA,CAAA/R,MAAA,YAAAw9B,MAAA,YAAAgM,MAAA,YAAAzI,UAAA,iBAAA9uB,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,yEAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDd/BzQ,MADF,UACEA,CADwB,WAMtBA,MAAA,GACFA,QACAA,MAAA,EAAAynC,EAAA,aAKFznC,eAVIA,QACAA,MADA,iCAAA0Q,EAAAquB,YACA/+B,CADoD,6BAAA0Q,EAAA82B,SAGpDxnC,cAAA,IAAA0Q,EAAA1S,QAAA,KAEFgC,cAAA0Q,EAAA8qB,QAAA,0rBCOW+G,CAAoB,gICPvBviC,MAAA,gBAIEA,MAAA,YACFA,+BAHEA,MAAA,aAAA4Q,EAAA2vB,+BAOFvgC,MAAA,YAA8BA,MAAA,SAAEA,kCAdpCA,MAAA,WAIEA,MAAA,EAAA0nC,EAAA,kBAQA1nC,MAAA,GACAA,MAAA,EAAA2nC,EAAA,cAGF3nC,8BAdEA,MAAA,6BAAA4Q,EAAAg3B,WAEA5nC,cAAA4Q,EAAA2vB,OAAA,MAQAvgC,cAAA,IAAA4Q,EAAA4qB,QAAA,KACAx7B,cAAA4Q,EAAAU,aAAAV,EAAAW,WAAA,OCID,IAAMs2B,EAAkB,MAAzB,MAAOA,EATb7oC,cAUEc,KAAA07B,SAAQnqB,OAAc,IACtBvR,KAAAygC,QAAOlvB,OAAc,IAErBvR,KAAA8nC,WAAUv2B,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAAwR,YAAWD,QAA6B,EAAO,CAC7CG,UAAWC,QAGb3R,KAAAyR,YAAWF,QAA6B,EAAM,CAC5CG,UAAWC,QAGb3R,KAAAgoC,aAAYz2B,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAioC,eAAc12B,OAAiC,MAChDxR,SAAAC,KAAA,mBAAAC,iBArBY8nC,EAAkB,EAAAhoC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAlBg4B,EAAkB/3B,UAAA,yBAAAC,OAAA,CAAAyrB,MAAA,YAAA+E,KAAA,WAAAqH,QAAA,cAAAt2B,SAAA,eAAAC,SAAA,eAAAu2B,UAAA,gBAAAC,YAAA,mBAAA93B,YAAA,EAAAC,SAAA,CAAAlQ,OAAAmQ,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,8LAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YDnB7BzQ,MADF,QACEA,CADuE,WAErEA,MAAA,EAAAgoC,EAAA,aAmBAhoC,MAAA,WACEA,MAAA,GAGNA,mBAzBKA,MAAA,0CAAA0Q,EAAAq3B,eAED/nC,MAAA,GAAAA,MAAA0Q,EAAAo3B,aAAA,qBCcQ9wB,KAAa/W,KAAEgS,KAAgBC,MAAAI,OAAA,06CAAAC,cAAA,EAAAkN,gBAAA,WAI9BooB,CAAkB,8ECLxB,IAAMrF,EAAoB,MAA3B,MAAOA,EATbxjC,cAYYc,KAAA2pB,UAAoB,GAG/B5pB,SAAAC,KAAA,mBAAAC,iBANYyiC,EAAoB,EAAA3iC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAApB2yB,EAAoB1yB,UAAA,2BAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,GAApBzQ,MAAA0Q,EAAA+Y,sMCfbzpB,MAAA,WAEEA,MADA,QACAA,CADyF,qBAK3FA,eALOA,cAAA,2DAAA0Q,EAAAgd,OAAA,KAAAhd,EAAAgd,OAAAyO,QAGHn8B,cAAA,eAAA0Q,EAAAgd,OAAA,KAAAhd,EAAAgd,OAAApoB,OAAA,oBDOQs2B,KAActpB,OAAA,ujCAAAC,cAAA,EAAAkN,gBAAA,WAIb+iB,CAAoB,2IEXzBxiC,MAAA,mBAIEA,MAAA,mBAAAA,MAAAuW,GAAA,MAAA0xB,EAAAjoC,QAAA+S,UAAAL,EAAA1S,MAAA,UAAAA,MAAS0S,EAAA0C,MAAAgtB,KAAA6F,GAAgB,GAEzBjoC,MAAA,GACFA,qDAJEA,MAFA,UAAA0S,EAAAw1B,UAEAloC,CAFqB,OAAAioC,EAErBjoC,CADa,YAAA0S,EAAAy1B,aAIbnoC,cAAA,IAAA0S,EAAA01B,WAAAH,GAAA,2BAPJjoC,MAAA,EAAAqoC,EAAA,0BAAAroC,kBAAA,8BADFA,MAAA,EAAAsoC,EAAA,cAAAtoC,QAAAuoC,WAAA,wBAAAvoC,MAAA0S,EAAA81B,kDAcExoC,MAAA,mBAMEA,MADA,yBAAAyoC,EAAAzoC,MAAA8S,GAAAC,UAAAL,EAAA1S,MAAA,UAAAA,MAAS0S,EAAA0C,MAAAgtB,KAAAqG,GAAe,EACxBzoC,CADyB,yBAAAyoC,EAAAzoC,MAAA8S,GAAAC,UAAAL,EAAA1S,MAAA,UAAAA,MAChB0S,EAAAg2B,aAAAtG,KAAAqG,GAAsB,GAE/BzoC,MAAA,GACFA,+CALEA,MAHA,YAAA0S,EAAAy1B,YAGAnoC,CAHyB,UAAA0S,EAAAw1B,UAGzBloC,CAFqB,SAAA0S,EAAAi2B,SAAAF,GAErBzoC,CADwB,cAAA0S,EAAAk2B,gBAAAl2B,EAAAm2B,SAAAJ,GAAA,GAAAA,EAAAL,cAKxBpoC,cAAA,IAAA0S,EAAA01B,WAAAK,GAAA,+BAIFzoC,MAAA,mBAAoFA,MAAA,cAAEA,qCAAzEA,MAAA,sBAAAghB,EAAA,OAAAA,EAAAtO,EAAAo2B,QAAA,KAAA9nB,EAAAlK,cAAAzU,IAAA2e,IAAA,GAAAtO,EAAAq2B,cAAAjyB,OAAA,mCAbf9W,MAAA,EAAAgpC,EAAA,oBAAAhpC,QAAAuoC,WAAA,GAYAvoC,MAAA,EAAAipC,EAAA,2CAZAjpC,MAAA0S,EAAAq2B,eAYA/oC,MAAA,GAAAA,MAAA0S,EAAAw2B,WAAA,OCDG,IAAMC,EAAgB,MAAvB,MAAOA,EAPbnqC,cAQEc,KAAAsV,SAAQusB,SACR7hC,KAAA4oC,gBAAe/G,SAEf7hC,KAAAgpC,QAAOz3B,OAAuC,MAE9CvR,KAAA0oC,SAAQn3B,OACN,MAGFvR,KAAAspC,cAAa/3B,OAA+B,EAAG,CAC7CG,UAAW63B,QAGbvpC,KAAAqoC,aAAY92B,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAooC,WAAU72B,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAA8oC,gBAAev3B,SACfvR,KAAAy8B,UAASlrB,OAAqC,MAErCvR,KAAAipC,eAAcnP,OACrB,KACE,MAAMkP,EAAOhpC,KAAKgpC,OACZM,EAAatpC,KAAKspC,aAExB,OAAKN,EAKEA,EAAKla,MAAM,EADJwa,EAAa,EAAIA,EAAaN,EAAKhyB,QAHxC,EAIiB,EAE5B,CAAEwyB,MAAOC,OAGFzpC,KAAAopC,YAAWtP,OAAS,KAC3B,MAAMkP,EAAOhpC,KAAKgpC,OACZM,EAAatpC,KAAKspC,aAExB,SAAKN,IAASM,IAIPN,EAAKhyB,OAASsyB,IAGvBP,SAAS7qC,GACP,MAAwB,iBAAVA,CAChB,CAEA2qC,SAASjqC,GACP,MAAM69B,EAASz8B,KAAKy8B,SAEpB,OAAIz8B,KAAK+oC,SAASnqC,IAASoB,KAAK+oC,SAAStM,GAChC79B,IAAS69B,EAGX79B,GAAM8qC,OAASjN,GAAQiN,IAChC,CAEAjB,UAAUkB,EAAgB/qC,GACxB,OAAa,OAATA,EACK,KAGc,iBAATA,EAAoBA,EAAOA,EAAK8qC,IAChD,CAEUpB,WAAW1pC,GACnB,MAAMkqC,EAAe9oC,KAAK8oC,eAE1B,OAAI9oC,KAAK+oC,SAASnqC,GACTA,EAGLkqC,EACK,GAAGlqC,EAAKkqC,KAGVlqC,EAAK0pC,YACd,CAACvoC,SAAAC,KAAA,mBAAAC,iBArFUopC,EAAgB,EAAAtpC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAhBs5B,EAAgBr5B,UAAA,uBAAAC,OAAA,CAAA+4B,KAAA,WAAAN,MAAA,YAAAY,WAAA,iBAAAjB,UAAA,gBAAAD,QAAA,cAAAU,aAAA,mBAAArM,OAAA,cAAA3qB,QAAA,CAAAwD,MAAA,QAAAszB,aAAA,gBAAAz4B,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,4NAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,ID1B7BzQ,MAAA,WAcIA,MAbF,EAAA0pC,EAAA,IAaE1pC,CAba,EAAA2pC,EAAA,KA8BjB3pC,eA9BEA,cAAA0Q,EAAA83B,QAAA,qBCuBUoB,IAAc33B,KAAgBhS,MAAAqS,OAAA,8FAE7B62B,CAAgB,mLChBzBnpC,MAAA,4BATFA,MAAA,WASEA,MAAA,EAAA6pC,EAAA,sBACF7pC,iDAREA,MAAA,oBAAAghB,EAAApQ,EAAAk5B,eAAA,MAAA9oB,EAAA0M,OAAA,KAAA1M,EAAA0M,OAAAyO,QAEAn8B,MAHA,aAAA4Q,EAAAs3B,UAGAloC,CAH8B,cAAA4Q,EAAA2rB,SAG9Bv8B,CAD8B,kBAAA4Q,EAAAm5B,cAI9B/pC,MAFA,KAAA4Q,EAAA/F,KAEA7K,CAFW,aAAA4Q,EAAAo5B,iBAEXhqC,CAD+B,qBAAAkmC,EAAAt1B,EAAAk5B,aAAA,OAAA5D,EAAAt1B,EAAAk5B,eAAA,MAAA5D,EAAAxY,OAAA,KAAAwY,EAAAxY,OAAApoB,KAAAsL,EAAAG,iBAAA1O,IAAA6jC,IAAA,IAGhBlmC,cAAA,mBAAAgR,yBASfhR,MAAA,4BANFA,MAAA,SAMEA,MAAA,EAAAiqC,EAAA,sBACAjqC,MAAA,gBAIEA,MAAA,qBAEJA,iDATEA,MAFA,KAAA4Q,EAAA/F,KAEA7K,CAFW,aAAA4Q,EAAA0qB,OAEXt7B,CADqB,qBAAAqhC,EAAAzwB,EAAAG,iBAAA1O,IAAAg/B,IAAA,IAGNrhC,cAAA,mBAAAgR,GAGbhR,cAAA,aAAA4Q,EAAA0qB,iCASFt7B,MAAA,qCAGEA,MADA,OAAAkqC,EAAA5kC,KACAtF,CADkB,SAAAkqC,EAAA1nB,oDAQpBxiB,MAAA,gBAEEA,MAAA,mBAAAA,MAAA8S,GAAA,MAAAlC,EAAA5Q,MAAA,UAAAA,MAAS4Q,EAAAwE,MAAAgtB,OAAY,GAErBpiC,MAAA,aACFA,kCAhBFA,MAAA,EAAAmqC,EAAA,wBAOAnqC,MAAA,WACEA,MAAA,GACFA,QACAA,MAAA,EAAAoqC,EAAA,8CAVApqC,OAAAghB,EAAApQ,EAAAy5B,QAAA,KAAArpB,GAUAhhB,MAAA,GAAAA,MAAA4Q,EAAAu3B,YAAA,OCTK,IAAMyB,EAAY,MAAnB,MAAOA,EAdb5qC,cAeEc,KAAAsV,SAAQusB,SAER7hC,KAAA+K,MAAKwG,OAAqB,MAE1BvR,KAAAooC,WAAU72B,QAA6B,EAAO,CAC5CG,UAAWC,QAGb3R,KAAAqoC,aAAY92B,QAA6B,EAAO,CAC9CG,UAAWC,QAGb3R,KAAAiqC,cAAa14B,QAA6B,EAAO,CAC/CG,UAAWC,QAGb3R,KAAAuqC,QAAOh5B,SACPvR,KAAAw7B,QAAOjqB,SACPvR,KAAAiR,WAAUM,SAEVvR,KAAAy8B,UAASlrB,QAA6B,EAAO,CAC3CG,UAAWC,QAGb3R,KAAAgqC,cAAalQ,OACX,IACE95B,KAAKuqC,iBAAkBC,IAClBxqC,KAAKuqC,OACN,KAEN,CAAEf,MAAOA,CAACrT,EAAGsU,IAAMtU,GAAGprB,KAAO0/B,GAAG1/B,KAGlC/K,KAAAkqC,kBAAiBpQ,OACf,KACE,MAAMkQ,EAAahqC,KAAKgqC,aAExB,OACGhqC,KAAKqoC,aACL2B,GACAA,EAAWU,SACXV,EAAW/rB,aAKP,CAAC,IAAK+rB,EAAW/rB,aAAc,qBAH7B,IAGgD,EAE3D,CAAEurB,MAAOC,OAEZ1pC,SAAAC,KAAA,mBAAAC,iBAnDY6pC,EAAY,EAAA/pC,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAZ+5B,EAAY95B,UAAA,kBAAAC,OAAA,CAAAlF,GAAA,SAAAq9B,QAAA,cAAAC,UAAA,gBAAA4B,WAAA,iBAAAM,KAAA,WAAA/O,KAAA,WAAAvqB,QAAA,cAAAwrB,OAAA,cAAA3qB,QAAA,CAAAwD,MAAA,SAAAnF,YAAA,EAAAC,SAAA,CAAAlQ,OAAAmQ,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,oVAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,YDFzBzQ,MA7BA,EAAAyqC,EAAA,aA6BAzqC,CA7Be,EAAA0qC,EAAA,UA6Bf1qC,CAjBS,EAAA2qC,EAAA,yBAAA3qC,aAZTA,MAAA0Q,EAAA4qB,OAAA,oBCuBItkB,KAAa/W,KACbsmB,IACArP,KACA7E,KACAJ,KAAgBC,MAAAI,OAAA,qvDAAAmN,gBAAA,WAIPmqB,CAAY,8ECxBlB,IAAMgB,EAAgB,MAAvB,MAAOA,EAJb5rC,cAKiCc,KAAA+qC,cAAwB,EAEA/qC,KAAAgrC,cAAwB,EAE3BhrC,KAAAmQ,YAAsB,EAEjEnQ,KAAAirC,aAAuBC,KACjCnrC,SAAAC,KAAA,mBAAAC,iBARY6qC,EAAgB,EAAA/qC,SAAAC,KAAA,UAAAmrC,EAAAC,IAAA,MAAhBN,EAAgB96B,UAAA,oBAAAkrB,SAAA,EAAAC,aAAA,SAAAxqB,EAAAC,GAAA,EAAAD,GAAhBzQ,MAAA,WAAA0Q,EAAAm6B,aAAA7qC,CAAgB,0BAAA0Q,EAAAo6B,aAAhB9qC,CAAgB,uBAAA0Q,EAAAT,6HAAhB26B,CAAgB,qICAtB,MAAMjb,EACV/O,GACD,KACE,MAAM0C,KAAmB9iB,OAAO+iB,KAC1BxP,KAASvT,OAAOwT,MAEhBq2B,KAAO7pC,OAAOwf,KAAWW,UAI/B,OAFc0pB,KAAOhT,MAAGgT,GAAQ/mB,EAAiB6nB,iBAEpCjpC,QACXkpC,KAAWnW,GACJA,ECMP,SAAUoW,EACdhB,EACAzpB,GAEA,OAAKA,GAfP,SAAS0qB,EACPC,EACA3qB,GAEA,OAAO2qB,EAAOC,MAAOC,KAAY7qB,EAAY6qB,GAC/C,CAgBSH,CAAiB1qB,EAFAypB,EAAKzpB,aAAe,GAG9C,CDZUyqB,CACEpW,EACuB,iBAAhBrU,EAA2B,CAACA,GAAeA,IAAW,EAGxDyW,OAAG,IAAI,EAGTA,MAAGtjB,EAAO23B,cAAc,CAAC,cAAe,MAAG,EAZzCrU,OAAG,KAab,EACD+T,KAAW7zB,GACS,kBAAXA,GAAW,EACd8f,MAAG9f,IAAM,EACT8f,OAAG,GAAOn1B,QACRypC,KAAI,KACF53B,EAAO63B,cAAcr0B,EAAM,KAGpC,6FEtCA,MAAMs0B,EAAaA,CACxBrW,EACAhkB,EACAs6B,KAEA,IAAKtW,IAAShkB,EACZ,OAAO,KAGT,OAAQA,GACN,IAAK,QACH,OAAIs6B,KACKC,KAAOvW,EAAM,GAAGsW,WAGlB,IAAIE,KAAKC,oBAAe5pC,EAAW,CACxC6pC,KAAM,UACNC,OAAQ,UACRC,KAAM,UACNC,MAAO,UACPC,IAAK,YACJP,OAAOvW,GACZ,IAAK,YACH,OAAIsW,KACKC,KAAOvW,EAAMsW,IAGf,IAAIE,KAAKC,gBAAiBF,OAAOvW,GAC1C,QACE,SAAOuW,KAAOvW,EAAMhkB,GACxB,EAOK,IAAM+6B,EAAQ,MAAf,MAAOA,EAJbvtC,cAKmBc,KAAAgsC,cAAatrC,OAAOgnB,KAAkBskB,WAEvDt6B,UACEgkB,EACAhkB,EAA2B,YAC3Bs6B,EAAahsC,KAAKgsC,cAElB,IAAKtW,EACH,OAAO,KAGT,IACE,OAAOqW,EACW,iBAATrW,EAAoB,IAAIj4B,KAAKi4B,GAASA,EAC7ChkB,EACAs6B,EAEJ,OACE,OAAO,IACT,CACF,CAACjsC,SAAAC,KAAA,mBAAAC,iBArBUwsC,EAAQ,EAAA1sC,SAAAC,KAAA,WAAAmrC,EAAA9yB,IAAA,kBAARo0B,EAAQn0B,MAAA,EAAAnI,YAAA,WAARs8B,CAAQ,6EChCd,IAAMC,EAAY,MAAnB,MAAOA,EAJbxtC,cAKUc,KAAA2sC,aAAYjsC,OAAOksC,MAE3Bl7B,UAAUxT,GACR,OAAKA,EAIE8B,KAAK2sC,UAAUE,SAASC,MAAgBC,KAAM7uC,GAH5C,EAIX,CAAC6B,SAAAC,KAAA,mBAAAC,iBATUysC,EAAY,EAAA3sC,SAAAC,KAAA,WAAAg6B,EAAA3hB,IAAA,sBAAZq0B,EAAYp0B,MAAA,EAAAnI,YAAA,WAAZu8B,CAAY,mECkDnB,SAAUhd,EAAuB5a,GAErC,OAjDF,SAASsZ,EAActZ,GACrB,MAAO,CACLuZ,EACAC,EACA2V,KAEA,MAAM+I,EAAgBl4B,EAAItR,MAAM,KAEhC,GACEwpC,EAAch2B,OAASqX,EAASrX,QAC/Bg2B,EAAch2B,SAAWqX,EAASrX,QAA8B,SAApBitB,EAAMgJ,UAEnD,OAAO,KAGT,MAAMze,EAAyB,GACzBC,EAAwC,GAE9C,QAASye,EAAQ,EAAGA,EAAQF,EAAch2B,OAAQk2B,GAAS,EAAG,CAC5D,MAAMC,EAAeH,EAAcE,GAEnC,GAAIC,EAAane,WAAW,KAC1BP,EAAU0e,EAAare,MAAM,IAAMT,EAAS6e,GAC5C1e,EAASY,KAAKf,EAAS6e,QAClB,CACL,MAAMxe,EAAUL,EAAS6e,GAEzB,GAAIxe,EAAQ3Z,KAAK6Z,gBAAkBue,EAAave,cAQ9C,OAAO,KARsD,CAC7D,MAAMK,EAAmB,IAAIC,KAC3Bie,EACAze,EAAQS,YAGVX,EAASY,KAAKH,EAChB,CAGF,CACF,CAEA,MAAO,CAAET,WAAUC,YAAS,CAEhC,CAOSL,CAActZ,EACvB,2ECxDO,IAAM6pB,EAAgB,MAAvB,MAAOA,EAHbz/B,cAImBc,KAAA8M,mBAAkBpM,OAAO4E,KAE1CzH,KAAKK,EAAekvC,GAAqB,GACvClqC,UAAUmqC,UAAUC,UAClBF,EACI,IAAIp4B,IAAI,GAAGwP,OAAOC,SAAS8b,SAASriC,KAASi2B,WAC7Cj2B,GAGN8B,KAAK8M,gBAAgBygC,oBACnB,CACE9nC,KAAM,4BAER,CACE+nC,SAAU,KAGhB,CAACztC,SAAAC,KAAA,mBAAAC,iBAlBU0+B,EAAgB,EAAA5+B,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAAhB+7B,EAAgB97B,QAAhB87B,EAAgB77B,UAAAC,WAFf,gBAED47B,CAAgB,oECNjB8O,EAAZ,SAAYA,GACVA,WAAAC,KAAA,UACAD,IAAAE,gBAAA,qBACAF,IAAAG,MAAA,WACAH,IAAAI,OAAA,YAJUJ,CAKZ,CALA,CAAYA,GAAU,qPCcNvtC,MAAA,UAOEA,MAAA,GACFA,+BAHEA,MADA,qBAAAihB,EAAA2sB,GAAAjsB,mBAAAtf,IAAA4e,IAAA,GACAjhB,CADwC,OAAA4tC,GAAAh5B,IAAA5U,OAGxCA,cAAA,IAAA4tC,GAAAtoC,KAAA,+BAfZtF,MADF,UACEA,CADW,WAETA,MAAA,gBAAeA,MAAN,OAAMA,CAAA,QACfA,MAAA,6GAA4GA,MAAN,OAAMA,CAAA,QAE1GA,MADF,OACEA,CADE,QACEA,MAAA,8DAAuDA,QAC3DA,MAAA,SAAIA,MAAA,8CAAuCA,QAC3CA,MAAA,SAAIA,MAAA,4BACAA,MAAA,GAAA6tC,EAAA,YAcV7tC,2CAdUA,MAAA,IAAAA,OAAA+gB,EAAA1I,GAAAyK,gBAAAgrB,WAAA,MAAA/sB,6BAkBR/gB,MADF,UACEA,CADW,2BAETA,MAAA,GAEJA,gCAFIA,MAAA,GAAAA,MAAA,IAAAqY,EAAAzZ,KAAA2G,KAAA,+BASFvF,MAJF,UAIEA,CADD,iBACqCA,MAAA,UAAIA,QAExCA,MAAA,GACFA,8BADEA,MAAA,GAAAA,MAAA,IAAAqY,EAAAzZ,KAAAiK,KAAA,8BAiBY7I,MAAA,wDAEEA,MADA,QAAA+tC,EAAAC,SACAhuC,CAD2B,sCAI7BA,MAAA,kCATFA,MAFJ,UAEIA,CAFS,0BAETA,CAD+B,iBACjBA,MAAA,GAChBA,UACAA,MAAA,2BAMIA,MALF,EAAAiuC,EAAA,0BAKEjuC,CAL+B,EAAAkuC,EAAA,KASrCluC,oCAZkBA,MAAA,GAAAA,MAAA,UAAA+tC,GAAA,MAAAA,EAAAI,KAAA,KAAAJ,EAAAI,KAAA7oC,KAAA,KAGdtF,MAAA,GAAAA,MAAA,MAAA+tC,EAAAC,UAAAD,EAAAC,SAAAl3B,OAAA,+BAVR9W,MAAA,gCAIEA,MAAA,EAAAouC,EAAA,YAAAz3B,GAiBF3W,+BAjBEA,cAAA,MAAAqY,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAujB,mDA+BQruC,MAAA,wDAAkBA,MAAA,QAAAsuC,EAAAN,gCAElBhuC,MAAA,mCANFA,MAFJ,UAEIA,CAFS,0BAETA,CAD+B,iBACjBA,MAAA,GAChBA,UACAA,MAAA,2BAGIA,MAFF,EAAAuuC,EAAA,0BAEEvuC,CAF+B,EAAAwuC,EAAA,KAMrCxuC,oCATkBA,MAAA,GAAAA,MAAA,UAAAsuC,GAAA,MAAAA,EAAAH,KAAA,KAAAG,EAAAH,KAAA7oC,KAAA,KAGdtF,MAAA,GAAAA,MAAA,MAAAsuC,EAAAN,UAAAM,EAAAN,SAAAl3B,OAAA,+BAVR9W,MAAA,gCAIEA,MAAA,EAAAyuC,GAAA,YAAA93B,GAcF3W,+BAdEA,cAAA,MAAAqY,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAA4jB,0DA4BQ1uC,MAAA,wDAAkBA,MAAA,QAAA2uC,EAAAX,iCAElBhuC,MAAA,mCANFA,MAFJ,UAEIA,CAFS,0BAETA,CAD+B,iBACjBA,MAAA,GAChBA,UACAA,MAAA,2BAGIA,MAFF,EAAA4uC,EAAA,0BAEE5uC,CAF+B,EAAA6uC,GAAA,KAMrC7uC,oCATkBA,MAAA,GAAAA,MAAA,UAAA2uC,GAAA,MAAAA,EAAAR,KAAA,KAAAQ,EAAAR,KAAA7oC,KAAA,KAGdtF,MAAA,GAAAA,MAAA,MAAA2uC,EAAAX,UAAAW,EAAAX,SAAAl3B,OAAA,+BAVR9W,MAAA,gCAIEA,MAAA,EAAA8uC,GAAA,YAAAn4B,GAcF3W,+BAdEA,cAAA,MAAAqY,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAikB,iDA4BQ/uC,MAAA,wDAAkBA,MAAA,QAAAgvC,EAAAhB,gCAElBhuC,MAAA,mCANFA,MAFJ,UAEIA,CAFS,0BAETA,CAD+B,iBACjBA,MAAA,GAChBA,UACAA,MAAA,2BAGIA,MAFF,EAAAivC,GAAA,0BAEEjvC,CAF+B,EAAAkvC,EAAA,KAMrClvC,oCATkBA,MAAA,GAAAA,MAAA,UAAAgvC,GAAA,MAAAA,EAAAb,KAAA,KAAAa,EAAAb,KAAA7oC,KAAA,KAGdtF,MAAA,GAAAA,MAAA,MAAAgvC,EAAAhB,UAAAgB,EAAAhB,SAAAl3B,OAAA,+BAVR9W,MAAA,gCAIEA,MAAA,EAAAmvC,GAAA,YAAAx4B,GAcF3W,+BAdEA,cAAA,MAAAqY,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAskB,uDAxENpvC,MAAA,WAmEEA,MAlEA,EAAAqvC,EAAA,iCAkEArvC,CAlE8D,EAAAsvC,EAAA,iCAkE9DtvC,CA1CqE,EAAAuvC,EAAA,iCA0CrEvvC,CArB2D,EAAAwvC,EAAA,kCA0C7DxvC,2CAvFEA,eAAA+gB,EAAA,MAAA1I,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAujB,0BAAA,KAAAttB,GAwBA/gB,eAAAghB,GAAA,MAAA3I,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAA4jB,iCAAA,KAAA1tB,IAqBAhhB,eAAAihB,EAAA,MAAA5I,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAikB,uBAAA,KAAA9tB,GAqBAjhB,eAAAqhC,EAAA,MAAAhpB,EAAAzZ,KAAAksB,eAAA,KAAAzS,EAAAzZ,KAAAksB,eAAAskB,4BAAA,KAAA/N,6BA0BFrhC,MAAA,cAQEA,MAAA,GACFA,8BAHEA,MADA,sBACAA,CAD0B,WAAAqY,EAAAo3B,gBAG1BzvC,cAAA,IAAAqY,EAAAzZ,KAAA8wC,iBAAA,mDAIF1vC,MAAA,eAMEA,MAAA,mBAAAA,MAAA2vC,GAAA,MAAAt3B,EAAArY,QAAA,OAAAA,MAASqY,EAAAu3B,UAAS,GAElB5vC,MAAA,GACFA,gCAJEA,MAAA,UAAAqY,EAAAo3B,gBAGAzvC,cAAA,IAAAqY,EAAAzZ,KAAAisB,eAAA,oDAIF7qB,MAAA,eAMEA,MAAA,mBAAAA,MAAAia,GAAA,MAAA5B,EAAArY,QAAA,OAAAA,MAASqY,EAAAhR,QAAO,GAEhBrH,MAAA,GACFA,gCAJEA,MAAA,oBAAAqY,EAAAzZ,KAAAgsB,UAGA5qB,cAAA,IAAAqY,EAAAzZ,KAAAisB,eAAA,WC7GC,IAAMglB,EAAe,MAAtB,MAAOA,EAUX7wC,cATSc,KAAA2vC,gBAAel8B,QAAO,GACtBzT,KAAAgwC,WAAgCvC,EAEtBztC,KAAAlB,QAAmB4B,OAAOuvC,MAC1BjwC,KAAAgjB,mBAAkBtiB,OAAOgjB,KAE3B1jB,KAAAkwC,aAAYxvC,OAAOyvC,MACnBnwC,KAAAY,cAAaF,OAAOG,OAG/Bb,KAAKlB,KAAKgsB,WACZ9qB,KAAKkwC,UAAU5lC,cAAe,EAElC,CAGAohB,WACM1rB,KAAKlB,KAAKgsB,aAIdslB,KAAapwC,KAAKkwC,UAAWlwC,KAAKY,WAAY,KACxCZ,KAAKlB,KAAKw3B,OAASmX,EAAWI,QAChC7tC,KAAKlB,KAAKmsB,kBAGZjrB,KAAKkwC,UAAU3oC,MAAMvH,KAAKlB,KAAKw3B,OAASmX,EAAWI,OAAM,EAE7D,CAMAiC,UACE9vC,KAAK2vC,aAAa3lC,KAAI,GAEtBhK,KAAKqwC,sBACFjuC,QAAKwN,KAAK,IACVxN,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAWguC,IACVtwC,KAAK2vC,aAAa3lC,KAAI,GACtBhK,KAAKkwC,UAAU3oC,OAAqB,IAAf+oC,EAAoB,EAE/C,CAEA/oC,QACMvH,KAAKlB,KAAKgsB,UAId9qB,KAAKlB,KAAKmsB,iBACZ,CAEQolB,sBACN,OAAsC,MAAlCrwC,KAAKlB,KAAKyxC,qBACLvwC,KAAKlB,KAAKyxC,wBAAoB,EAIhChZ,OAAG,EACZ,CAACx3B,SAAAC,KAAA,mBAAAC,mBA9DU8vC,EAAe,EAAAhwC,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAfggC,EAAe//B,UAAA,mBAAAG,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,GAAAC,KAAA,EAAAC,OAAA,ilCAAAC,SAAA,SAAAC,GAAAC,GAAA,EAAAD,KD9D1BzQ,MADF,aACEA,CAD6B,UACHA,MAAA,GAC5BA,UACAA,MAAA,wBA2CEA,MA1CA,EAAAswC,EAAA,aA0CAtwC,CA1CiB,EAAAuwC,EAAA,YA0CjBvwC,CAjBiB,EAAAwwC,EAAA,YAiBjBxwC,CAViB,EAAAywC,GAAA,aAqGnBzwC,QACAA,MAAA,cAyBEA,MAxBA,EAAA0wC,EAAA,eAwBA1wC,CAxBuC,GAAA2wC,EAAA,eAwBvC3wC,CAZuC,GAAA4wC,EAAA,gBAwBzC5wC,gBA9K4BA,MAAA,GAAAA,MAAA0Q,EAAA9R,KAAAuF,OAG1BnE,MAAA,GAAAA,MAAA0Q,EAAA9R,KAAA+rB,KAAA,MAyBA3qB,cAAA0Q,EAAA9R,KAAA2G,KAAA,MAOAvF,cAAA0Q,EAAA9R,KAAAiK,KAAA,MAUA7I,cAAA0Q,EAAA9R,KAAAw3B,OAAA1lB,EAAAo/B,WAAArC,gBAAA,MA6FAztC,MAAA,GAAAA,MAAA0Q,EAAA9R,KAAAw3B,OAAA1lB,EAAAo/B,WAAAnC,OAAA,MAYA3tC,cAAA0Q,EAAA9R,KAAAw3B,OAAA1lB,EAAAo/B,WAAAnC,OAAA,OAYA3tC,cAAA0Q,EAAA9R,KAAAw3B,OAAA1lB,EAAAo/B,WAAAnC,OAAA,uBCjHEjd,KAAezwB,UACf+W,KAAa9E,KACb6E,IAEA8wB,IACApG,IACAmI,IACAT,IACAyB,IACA34B,KAAgBG,MAAAE,OAAA,0lCAAAC,cAAA,EAAAkN,gBAAA,WAIPowB,CAAe,KCrBf9iC,GAAa,MAApB,MAAOA,EAHb/N,cAIWc,KAAA+wC,eAAyB,UACzB/wC,KAAAgxC,cAAwB,wCACxBhxC,KAAAixC,kBAA4B,QAC5BjxC,KAAAkxC,iBACP,8HACOlxC,KAAAmxC,oBAA8B,iBAC9BnxC,KAAAoxC,mBACP,mFAEepxC,KAAAS,UAASC,OAAOC,MAChBX,KAAAqxC,gBAAe3wC,OAAOG,OAKvCywC,iBACE,MAAQC,eAAgBvxC,KAAKS,OAE7B,OAAsB,MAAf8wC,GAAuBA,EAAYv6B,OAAS,CACrD,CAKA9H,aAAapQ,GAuBX,OAtBkBkB,KAAKS,OAAOkB,KAC5BouC,EACA,CACEyB,mBAAmB,EACnB1vC,MAAOhD,GAAMksB,eACTjpB,KACA0vC,KACJ5vC,WAAY,CAAC,SAAU,gBACvB/C,KAAM,IACDA,EACHuF,MAAOvF,GAAMuF,OAASrE,KAAK+wC,eAC3BtrC,KAAM3G,GAAM2G,MAAQzF,KAAKgxC,cACzBnmB,KAAM/rB,GAAM+rB,KACZyL,KAAMx3B,GAAMksB,eACRyiB,EAAWE,gBACXF,EAAWC,KACf1iB,eAAgBlsB,GAAMksB,gBAExB0mB,cAAe5yC,GAAMgsB,SAAW,iCAAmC,IAKzE,CAKA6mB,gBAAgB7yC,GAiBd,OAhBkBkB,KAAKS,OAAOkB,KAC5BouC,EACA,CACEyB,mBAAmB,EACnB1vC,MAAO2vC,KACP5vC,WAAY,CAAC,SAAU,iBACvB/C,KAAM,IACDA,EACHuF,MAAOvF,GAAMuF,OAASrE,KAAKixC,kBAC3BxrC,KAAM3G,GAAM2G,MAAQzF,KAAKkxC,iBACzB5a,KAAMmX,EAAWG,OAEnB8D,cAAe5yC,GAAMgsB,SAAW,iCAAmC,IAKzE,CAMA8mB,kBACE9yC,GAEA,MAAMoxC,GAAYlwC,KAAKS,OAAOkB,KAC5BouC,EACA,CACEyB,mBAAmB,EACnB1vC,MAAO2vC,KACP5vC,WAAY,CAAC,SAAU,kBACvB/C,KAAM,IACDA,EACHuF,MAAOvF,GAAMuF,OAASrE,KAAKmxC,oBAC3B1rC,KAAM3G,GAAM2G,MAAQzF,KAAKoxC,mBACzB9a,KAAMmX,EAAWI,QAEnB6D,cAAe5yC,GAAMgsB,SAAW,iCAAmC,KAIvEolB,UACG/tC,cACAC,QAAKC,MAAmBrC,KAAKqxC,eAC7B/uC,UAAWmV,KAELA,GAAU3Y,GAAM+yC,sBACnB/yC,EAAK+yC,sBAAoB,GAIxB3B,EACT,CAACnwC,SAAAC,KAAA,mBAAAC,mBA5GUgN,EAAa,EAAAlN,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAbqK,EAAapK,QAAboK,EAAanK,UAAAC,WAFZ,gBAEDkK,CAAa,8ECpCnB,IAAME,EAAkB,MAAzB,MAAOA,EACX,eAAIQ,GACF,OAAO3N,KAAK8xC,YACd,CAIA5yC,cACE,IAAIyO,EAAcof,aAAaE,QAAQ,eAEvC,IAAKtf,EAAa,CAChB,MAAM5C,EAAK,GAAGgnC,OAAO,IAAIt0C,UAAO,EAAIisC,SAEpC3c,aAAaK,QAAQ,cAAeriB,GACpC4C,EAAc5C,CAChB,CAEA/K,KAAK8xC,aAAenkC,CACtB,CAAC5N,SAAAC,KAAA,mBAAAC,iBAlBUkN,EAAkB,EAAApN,SAAAC,KAAA,WAAAmrC,EAAAvoC,IAAA,OAAlBuK,EAAkBtK,QAAlBsK,EAAkBrK,UAAAC,WAFjB,gBAEDoK,CAAkB,8ECAxB,IAAMkH,EAAY,MAAnB,MAAOA,EAOXnV,cAHQc,KAAAgyC,eAAiB,IAAIC,IACrBjyC,KAAAkyC,aAAe,IAAID,IAGzBjyC,KAAK2U,SAAW3U,KAAKgyC,eAAe3kC,eACpCrN,KAAKmyC,OAASnyC,KAAKkyC,aAAa7kC,cAClC,CAEAkf,cACEvsB,KAAKgyC,eAAeI,UACtB,CAEAC,UACEryC,KAAKgyC,eAAeniC,MACtB,CAEAyF,QACEtV,KAAKkyC,aAAariC,MACpB,CAAC9P,SAAAC,KAAA,mBAAAC,iBAtBUoU,EAAY,EAAAtU,SAAAC,KAAA,WAAAmrC,EAAAvoC,IAAA,OAAZyR,EAAYxR,QAAZwR,EAAYvR,UAAAC,WAFX,gBAEDsR,CAAY,yFCGlB,IAAMnQ,EAAY,MAAnB,MAAOA,EAuBXhF,cAtBQc,KAAAy7B,QAAOhoB,OAAsB,MAC7BzT,KAAAsyC,UAAS7+B,OAAsB,MAE/BzT,KAAAqE,SAAQy1B,OAAS,KACvB,MAAM2B,EAAOz7B,KAAKy7B,OACZ6W,EAAStyC,KAAKsyC,SAEpB,OAAK7W,EAIA6W,EAME,IAFaA,EAAS/V,KAA6B,GAAGA,QAAgC+V,MAElE7W,kBALlB,GAAGA,kBAJH,gBAYMz7B,KAAAuyC,eAAc7xC,OAAO8xC,OAAK,EAGzCj+B,OAAO,KACLvU,KAAKuyC,YAAYhuC,SAASvE,KAAKqE,QAAO,EAE1C,CAEAE,SAASkuC,GACPzyC,KAAKy7B,KAAKzxB,IAAIyoC,EAChB,CAEAj+B,UAAUtW,GACR8B,KAAKsyC,OAAOtoC,IAAI9L,EAClB,CAAC6B,SAAAC,KAAA,mBAAAC,iBAnCUiE,EAAY,EAAAnE,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAAZsB,EAAYrB,QAAZqB,EAAYpB,UAAAC,WAFX,gBAEDmB,CAAY,8ECHlB,IAAMogC,EAAqB,MAA5B,MAAOA,EAHbplC,cAQUc,KAAA+kB,SAAQtR,OAAO,IACfzT,KAAA0yC,gBAA0C,GACjC1yC,KAAAwkB,UAAiB9jB,OAAOiyC,MANzC,cAAIrN,GACF,OAAOtlC,KAAK+kB,MAAM6tB,YACpB,CAMArO,cAAc9I,GACZz7B,KAAK+kB,MAAM/a,IAAIyxB,GACfz7B,KAAKwkB,OAAOquB,SAAS,EAAG7yC,KAAK0yC,gBAAgBjX,IAAS,EACxD,CAAC17B,SAAAC,KAAA,mBAAAC,iBAZUqkC,EAAqB,EAAAvkC,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAArB0hC,EAAqBzhC,QAArByhC,EAAqBxhC,UAAAC,WAFpB,gBAEDuhC,CAAqB,mECG3B,MAAM8L,EAAeA,CAC1B0C,EACAzB,EACA0B,KAEAD,EACGE,gBACA5wC,QAAKC,MAAmBgvC,IACxB/uC,UAAWuS,IACQ,WAAdA,EAAM5W,KACR80C,GAAQ,GAIdD,EACGG,gBACA7wC,QAAKC,MAAmBgvC,IACxB/uC,UAAU,KACTywC,GAAQ,EACT,gEC1BL,MAAMG,EAAc,IAAInpC,IAAmC,CACzD,CAAC8O,IAAsBs6B,WAAY,eACnC,CAACt6B,IAAsBC,QAAS,WAChC,CAACD,IAAsBu6B,kBAAmB,sBAC1C,CAACv6B,IAAsB2B,oBAAqB,wBAC5C,CAAC3B,IAAsBqB,IAAK,OAC5B,CAACrB,IAAsBe,MAAO,SAC9B,CAACf,IAAsBqC,SAAU,YACjC,CAACrC,IAAsBkX,UAAW,aAClC,CAAClX,IAAsBiH,cAAe,oBAGlC,MAAO/D,EACX,oBAAO1C,CACLg6B,EACAC,GAAkB,GAElB,MAAO,GAAGJ,EAAY7tC,IAAIguC,KAAUC,EAAS,IAAM,MAAQ,IAC7D,CAKA,cAAOhT,CACLriB,EACAs1B,EAAoB,KAEpB,MAAMC,EAAmBv1B,EAAaza,MAAM+vC,GAE5C,OAAKC,EAAOx8B,QAKVlZ,OAAOwb,OAAOT,KAAuB4b,SACnC+e,EAAO,GAAG5kB,eAGL4kB,EAAO,GAAG5kB,cARV,IAYX,CAKA,gBAAO6kB,CAAUx1B,GACf,MAAMu1B,EAAmBv1B,EAAaza,MAAM,KAE5C,OACGgwC,EAAOx8B,SACR+6B,OAAO2B,MAAM3B,OAAOyB,EAAO,MAC1BzB,OAAO4B,UAAU5B,OAAOyB,EAAO,KAK3BzB,OAAOyB,EAAO,IAHZ,IAIX,iEC3DF,MAAM12B,EAAQ,IAAI82B,KAAU,CAC1BxP,SAAU,IAAItwB,MAAY,GAC1B+/B,UAAW,IAAI//B,MAAY,GAC3B/C,QAAS,IAAI+C,KAAY,QAGdjC,EAAcd,IACzB,IAAKA,GAAS+iC,UACZ,OAAO,EAGT,MAAMA,EAAY/iC,EAAQ+iC,UAAUh3B,EAAMi3B,SAAShjC,SAEnD,OAAO+iC,GAAWtiC,UAAYsiC,GAAWE,mBAAqBF,GAAWG,mECfpE,MAAMC,EACXC,WAAWC,iBAAiB5oB,SAAS6oB,iBAAiBC,WAAa,GAExDlpB,EAAWltB,GAA0BA,EAAQg2C,oNCDnD,MACMK,EAA2C,IAG3CC,EAA0B,mBAI1BC,EAAe,IAAIh3C,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAE1Ci3C,EAAuB,EAEvBC,EAAkB,IAElB7wB,EAAa,uCAEb8wB,EAAkC,IAElCnD,EAA6B,QAC7BpnC,EAAuB,QACvBtI,EAA8B,SAC9B8yC,EAA2B,SAE3BC,EAAU,IAEV5J,EAAqB,GAErB3O,EAA6B,GAE7BwY,EAA2B,CACtC,MACA,MACA,MACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,cACA,OACA,OACA,MACA,MACA,KAGWC,EAAgB,WAChBC,EAAsB,GAEtBC,EAAyC,CACpD,CACEC,QAAS,MACTC,QAAS,SACTC,SAAU,MACVC,SAAU,OAEZ,CACEH,QAAS,QACTC,QAAS,SACTC,SAAU,QACVC,SAAU,QAIDC,EAA2B,ytBC5FjC,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,OAAA,SACAD,EAAAE,oBAAA,wBACAF,EAAAG,uBAAA,8BACAH,EAAAI,gBAAA,oBACAJ,EAAAK,cAAA,iBACAL,EAAAM,gBAAA,mBACAN,EAAAO,WAAA,cACAP,EAAAQ,SAAA,WACAR,EAAAS,aAAA,gBACAT,EAAAU,qBAAA,wBACAV,EAAAW,oBAAA,uBACAX,EAAAY,qBAAA,wBACAZ,EAAAa,OAAA,SAbUb,CAcZ,CAdA,CAAYA,GAA6B,IAgBlC,MAAMc,EACX,CACE,SACA,sBACA,kBACA,gBACA,UAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,QAAA,UACAD,EAAAE,UAAA,aACAF,EAAAG,SAAA,YACAH,EAAAI,MAAA,QACAJ,EAAA74C,SAAA,WACA64C,EAAAK,UAAA,YACAL,EAAAM,OAAA,SACAN,EAAAO,OAAA,SACAP,EAAAQ,KAAA,OACAR,EAAAS,aAAA,gBACAT,EAAAU,aAAA,gBACAV,EAAAW,KAAA,OACAX,EAAAY,WAAA,cAbUZ,CAcZ,CAdA,CAAYA,GAAe,IAgBpB,MAAMa,EAA6D,CACxE,UACA,YACA,WACA,QACA,QAGK,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,IAAA,MACAD,EAAAE,KAAA,OACAF,EAAAG,QAAA,WACAH,EAAAhB,OAAA,SACAgB,EAAAI,OAAA,SACAJ,EAAAK,QAAA,UACAL,EAAAM,SAAA,WAPUN,CAQZ,CARA,CAAYA,GAAgB,IAUrB,MAAMO,EAA+D,CAC1E,MACA,OACA,UACA,SACA,SACA,UACA,YAGK,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,WAAA,eACAD,EAAAE,YAAA,gBACAF,EAAAG,KAAA,OACAH,EAAAI,QAAA,UACAJ,EAAAK,QAAA,UACAL,EAAAM,KAAA,OACAN,EAAAO,SAAA,WACAP,EAAAQ,yBAAA,6BACAR,EAAAS,cAAA,gBACAT,EAAAU,aAAA,eACAV,EAAAW,OAAA,YACAX,EAAAY,SAAA,cAZUZ,CAaZ,CAbA,CAAYA,GAAyB,IAe9B,MAAMa,EACX,CACE,aACA,cACA,OACA,UACA,UACA,OACA,WACA,2BACA,gBACA,gBAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAApB,KAAA,OACAoB,EAAAC,iBAAA,oBACAD,EAAAE,UAAA,YACAF,EAAAG,cAAA,iBACAH,EAAAI,SAAA,YACAJ,EAAAK,cAAA,gBACAL,EAAAM,SAAA,WACAN,EAAAtC,OAAA,SACAsC,EAAAO,eAAA,kBACAP,EAAAQ,cAAA,iBACAR,EAAAS,aAAA,gBAXUT,CAYZ,CAZA,CAAYA,GAAyB,IAc9B,MAAMU,EACX,CACE,OACA,mBACA,YACA,gBACA,WACA,gBACA,WACA,SACA,kBAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAA/B,KAAA,OACA+B,EAAAxpB,SAAA,WACAwpB,EAAAC,MAAA,QACAD,EAAAT,UAAA,YACAS,EAAAR,cAAA,iBACAQ,EAAAP,SAAA,YACAO,EAAAN,cAAA,gBACAM,EAAAE,SAAA,WACAF,EAAAjD,OAAA,SATUiD,CAUZ,CAVA,CAAYA,GAAyB,IAY9B,MAAMG,EACX,CACE,OACA,WACA,QACA,YACA,gBACA,WACA,gBACA,WACA,UAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,SAAA,WACAD,EAAAE,eAAA,kBACAF,EAAAG,kBAAA,qBACAH,EAAAI,KAAA,OACAJ,EAAAK,gBAAA,mBACAL,EAAAM,YAAA,gBACAN,EAAAO,WAAA,cAPUP,CAQZ,CARA,CAAYA,GAA2B,IAUhC,MAAMQ,EACX,CACE,WACA,iBACA,oBACA,OACA,kBACA,cACA,cAGSC,EAAwC,CACnDC,UAAW,aACXC,UAAW,aACXC,QAAS,WACTC,UAAW,YACX7C,QAAS,UACT8C,YAAa,eACbC,YAAa,eACbC,UAAW,aACXC,cAAe,iBACfC,cAAe,iBACfC,cAAe,iBACfC,gBAAiB,mBACjBC,gBAAiB,mBACjBC,oBAAqB,wBACrBtF,oBAAqB,wBACrBuF,aAAc,iBAGHC,EACX,CACE,YACA,YACA,UACA,YACA,UACA,cACA,cACA,YACA,gBACA,gBACA,gBACA,kBACA,kBACA,sBACA,sBACA,gBAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAA1F,OAAA,SACA0F,EAAAC,SAAA,WACAD,EAAA9E,OAAA,SACA8E,EAAAE,aAAA,eACAF,EAAAZ,UAAA,YACAY,EAAAb,QAAA,WACAa,EAAAG,aAAA,gBACAH,EAAAI,kBAAA,sBACAJ,EAAA3D,QAAA,WACA2D,EAAAK,oBAAA,wBACAL,EAAAM,YAAA,eACAN,EAAAO,uBAAA,2BACAP,EAAAQ,yBAAA,6BAbUR,CAcZ,CAdA,CAAYA,GAAyB,IAgB9B,MAAMS,EACX,CACE,SACA,WACA,SACA,eACA,YACA,UACA,eACA,oBACA,UACA,sBACA,cACA,yBACA,4BAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAArJ,MAAA,QACAqJ,EAAAC,QAAA,UACAD,EAAAE,YAAA,cACAF,EAAAtC,MAAA,QACAsC,EAAAG,UAAA,YACAH,EAAAI,OAAA,SACAJ,EAAAxF,OAAA,SAPUwF,CAQZ,CARA,CAAYA,GAAqB,IAU1B,MAAMK,EACX,CAAC,QAAS,UAAW,cAAe,QAAS,YAAa,SAAU,UAE/D,IAAKC,EAAZ,SAAYA,GACVA,SAAA5E,KAAA,OACA4E,EAAAnD,cAAA,gBACAmD,EAAAC,QAAA,UACAD,EAAAL,QAAA,UACAK,EAAApD,SAAA,YACAoD,EAAAE,QAAA,eACAF,EAAAG,eAAA,kBACAH,EAAA9F,OAAA,SARU8F,CASZ,CATA,CAAYA,GAAyB,IAW9B,MAAMI,EACX,CACE,OACA,gBACA,UACA,UACA,WACA,iBACA,UAGG,IAAKC,EAAZ,SAAYA,GACVA,SAAA1jC,QAAA,UACA0jC,EAAAC,MAAA,QACAD,EAAAtiC,IAAA,MACAsiC,EAAAzsB,UAAA,YACAysB,EAAAnG,OAAA,SACAmG,EAAAhF,QAAA,WACAgF,EAAAtE,QAAA,UACAsE,EAAAjC,UAAA,YARUiC,CASZ,CATA,CAAYA,GAAyB,IAW9B,MAAME,EACX,CAAC,YAAa,SAAU,UAAW,aAE9B,IAAKC,EAAZ,SAAYA,GACVA,SAAApF,KAAA,OACAoF,EAAAC,KAAA,OAFUD,CAGZ,CAHA,CAAYA,GAAwB,IAK7B,MAAME,EACX,CAAC,OAAQ,QAEJ,IAAKC,EAAZ,SAAYA,GACVA,SAAAvF,KAAA,OACAuF,EAAAxF,IAAA,MACAwF,EAAAC,YAAA,YACAD,EAAAT,QAAA,UAJUS,CAKZ,CALA,CAAYA,GAAiC,IAOtC,MAAME,EACX,CAAC,OAAQ,MAAO,cAAe,WAE1B,IAAKC,GAAZ,SAAYA,GACVA,SAAA1F,KAAA,OACA0F,EAAAC,UAAA,UACAD,EAAAZ,QAAA,UAHUY,CAIZ,CAJA,CAAYA,IAAoB,IAMzB,MAAME,EACX,CAAC,OAAQ,YAAa,WAEjB,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,SAAA,WACAD,EAAA7F,KAAA,OACA6F,EAAAzG,MAAA,QACAyG,EAAAE,WAAA,aACAF,EAAAxG,UAAA,YACAwG,EAAAvG,OAAA,SACAuG,EAAAG,KAAA,OACAH,EAAA5E,OAAA,SACA4E,EAAAI,IAAA,aACAJ,EAAA/G,OAAA,gBACA+G,EAAAK,aAAA,gBACAL,EAAAM,SAAA,WACAN,EAAAO,WAAA,cACAP,EAAAQ,WAAA,cACAR,EAAAf,QAAA,UAfUe,CAgBZ,CAhBA,CAAYA,GAAyB,IAkB9B,MAAMS,GACX,CACE,WACA,OACA,QACA,OACA,SACA,MACA,SACA,eACA,aACA,WAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAvG,KAAA,OADUuG,CAEZ,CAFA,CAAYA,IAA2B,IAIhC,MAAMC,EACX,CAAC,QAEI,IAAKC,GAAZ,SAAYA,GACVA,SAAAzG,KAAA,OACAyG,EAAApB,KAAA,OACAoB,EAAA3H,OAAA,SAHU2H,CAIZ,CAJA,CAAYA,IAAyB,IAM9B,MAAMC,EACX,CAAC,OAAQ,OAAQ,UAEZ,IAAKC,GAAZ,SAAYA,GACVA,SAAAtB,KAAA,OACAsB,EAAA3G,KAAA,OACA2G,EAAAC,MAAA,QAHUD,CAIZ,CAJA,CAAYA,IAAwB,IAM7B,MAAME,EACX,CAAC,OAAQ,OAAQ,SAEZ,IAAKC,GAAZ,SAAYA,GACVA,SAAA9G,KAAA,OACA8G,EAAAzB,KAAA,OACAyB,EAAAC,KAAA,OACAD,EAAAE,YAAA,eAJUF,CAKZ,CALA,CAAYA,IAA4B,IAOjC,MAAMG,EACX,CAAC,OAAQ,OAAQ,OAAQ,eAEpB,IAAKC,EAAZ,SAAYA,GACVA,SAAApB,SAAA,WACAoB,EAAAlH,KAAA,OACAkH,EAAApI,OAAA,SACAoI,EAAAhB,aAAA,gBACAgB,EAAAf,SAAA,WACAe,EAAAd,WAAA,cACAc,EAAAb,WAAA,cACAa,EAAApC,QAAA,UARUoC,CASZ,CATA,CAAYA,GAA2B,IAWhC,MAAMC,EACX,CAAC,WAAY,OAAQ,SAAU,eAAgB,aAAc,WAExD,IAAKC,EAAZ,SAAYA,GACVA,SAAA/B,KAAA,OACA+B,EAAApH,KAAA,OAFUoH,CAGZ,CAHA,CAAYA,GAAuB,IAK5B,MAAMC,GACX,CAAC,OAAQ,QAEJ,IAAKC,EAAZ,SAAYA,GACVA,SAAAtH,KAAA,OACAsH,EAAAlI,MAAA,QACAkI,EAAAhE,cAAA,iBACAgE,EAAArG,OAAA,SACAqG,EAAAxC,QAAA,UALUwC,CAMZ,CANA,CAAYA,GAAY,IAQjB,MAAMC,EAAuD,CAClE,OACA,QACA,gBACA,SACA,WAGK,IAAKC,EAAZ,SAAYA,GACVA,SAAAC,KAAA,OACAD,EAAAxH,KAAA,OACAwH,EAAAE,YAAA,cACAF,EAAAzH,IAAA,MAJUyH,CAKZ,CALA,CAAYA,GAAoB,IAOzB,MAAMG,GACX,CAAC,OAAQ,OAAQ,cAAe,OAE3B,IAAKC,EAAZ,SAAYA,GACVA,SAAAH,KAAA,OACAG,EAAA5H,KAAA,OACA4H,EAAAF,YAAA,cACAE,EAAAC,SAAA,WAJUD,CAKZ,CALA,CAAYA,GAAwB,IAO7B,MAAME,EACX,CAAC,OAAQ,OAAQ,cAAe,YAE3B,IAAKC,EAAZ,SAAYA,GACVA,SAAAjD,QAAA,UACAiD,EAAA/H,KAAA,gBACA+H,EAAAnH,KAAA,OACAmH,EAAAC,KAAA,OACAD,EAAAE,MAAA,QACAF,EAAAtI,aAAA,gBANUsI,CAOZ,CAPA,CAAYA,GAAc,IASnB,MAAMG,GAA2D,CACtE,UACA,OACA,QACA,gBAGK,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,SAAA,WACAD,EAAAhK,oBAAA,wBACAgK,EAAA/J,uBAAA,8BACA+J,EAAA9J,gBAAA,oBACA8J,EAAA7J,cAAA,iBACA6J,EAAA5J,gBAAA,mBACA4J,EAAA3J,WAAA,cACA2J,EAAA1J,SAAA,WACA0J,EAAAzJ,aAAA,gBACAyJ,EAAAvJ,oBAAA,uBACAuJ,EAAAxJ,qBAAA,wBACAwJ,EAAAtJ,qBAAA,wBACAsJ,EAAArJ,OAAA,SAbUqJ,CAcZ,CAdA,CAAYA,IAAyC,IAgB9C,MAAME,GACX,CACE,WACA,sBACA,yBACA,kBACA,gBACA,kBACA,aACA,WACA,eACA,sBACA,uBACA,uBACA,UAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,gCAAA,oCACAD,EAAAE,+BAAA,mCACAF,EAAAG,qBAAA,0BACAH,EAAAI,sBAAA,2BACAJ,EAAAK,sBAAA,2BACAL,EAAAM,mBAAA,sBACAN,EAAAO,eAAA,kBACAP,EAAAQ,uBAAA,0BACAR,EAAAS,aAAA,gBACAT,EAAAU,IAAA,MACAV,EAAAW,cAAA,gBACAX,EAAAY,+BAAA,mCAZUZ,CAaZ,CAbA,CAAYA,IAAmD,IAexD,MAAMa,GACX,CACE,kCACA,iCACA,uBACA,wBACA,wBACA,qBACA,iBACA,yBACA,eACA,MACA,gBACA,kCAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,iCAAA,mCACAD,EAAAE,8BAAA,gCACAF,EAAAG,uBAAA,2BACAH,EAAAI,mBAAA,sBACAJ,EAAAK,4CAAA,qDACAL,EAAAhB,SAAA,WACAgB,EAAAM,gBAAA,mBACAN,EAAA1K,aAAA,gBACA0K,EAAAO,oBAAA,wBACAP,EAAA3K,SAAA,WACA2K,EAAAQ,cAAA,kBACAR,EAAAS,kBAAA,qBACAT,EAAAU,uBAAA,0BACAV,EAAAW,0BAAA,+BACAX,EAAAY,mBAAA,uBACAZ,EAAAa,gDAAA,uDACAb,EAAAc,gCAAA,qCAjBUd,CAkBZ,CAlBA,CAAYA,IAAoD,IAoBzD,MAAMe,GACX,CACE,mCACA,gCACA,yBACA,qBACA,8CACA,WACA,kBACA,eACA,sBACA,WACA,gBACA,oBACA,yBACA,4BACA,qBACA,kDACA,mCAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,iCAAA,qCACAD,EAAAE,8BAAA,kCACAF,EAAA9L,cAAA,iBACA8L,EAAAG,kBAAA,qBACAH,EAAAI,oBAAA,wBACAJ,EAAAK,2BAAA,gCACAL,EAAAM,sBAAA,yBACAN,EAAAO,gCAAA,oCARUP,CASZ,CATA,CAAYA,IAAoD,IAWzD,MAAMQ,GACX,CACE,mCACA,gCACA,gBACA,oBACA,sBACA,6BACA,wBACA,mCAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,KAAA,OADUD,CAEZ,CAFA,CAAYA,IAAiC,IAItC,MAAME,GACX,CAAC,QAEI,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,aAAA,eACAD,EAAAxJ,SAAA,YACAwJ,EAAAhD,KAAA,OACAgD,EAAAE,WAAA,eACAF,EAAAG,eAAA,mBACAH,EAAAI,iBAAA,oBACAJ,EAAArK,QAAA,UACAqK,EAAApK,KAAA,OACAoK,EAAAK,KAAA,OACAL,EAAAM,OAAA,SACAN,EAAAnH,SAAA,WACAmH,EAAAlG,QAAA,UAZUkG,CAaZ,CAbA,CAAYA,IAA2B,IAehC,MAAMO,GACX,CACE,eACA,WACA,OACA,aACA,iBACA,mBACA,UACA,OACA,OACA,SACA,WACA,WAUSC,GACX,CAAC,OAAQ,YAAa,QAAS,WAE1B,IAAKC,GAAZ,SAAYA,GACVA,SAAAC,aAAA,gBACAD,EAAAE,WAAA,cACAF,EAAAG,OAAA,SACAH,EAAAI,iBAAA,oBACAJ,EAAAK,eAAA,kBACAL,EAAAjK,SAAA,YACAiK,EAAA3M,OAAA,SACA2M,EAAAM,cAAA,iBACAN,EAAAO,0BAAA,8BACAP,EAAAnI,cAAA,iBACAmI,EAAAQ,IAAA,MAXUR,CAYZ,CAZA,CAAYA,IAAqC,IAc1C,MAAMS,GACX,CACE,eACA,aACA,SACA,mBACA,iBACA,WACA,SACA,gBACA,6BAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAT,aAAA,gBACAS,EAAAR,WAAA,cACAQ,EAAAP,OAAA,SACAO,EAAAN,iBAAA,oBACAM,EAAAL,eAAA,kBACAK,EAAA3K,SAAA,YACA2K,EAAArN,OAAA,SACAqN,EAAAJ,cAAA,iBACAI,EAAAH,0BAAA,8BACAG,EAAA7I,cAAA,iBAVU6I,CAWZ,CAXA,CAAYA,IAAwC,IAa7C,MAAMC,GACX,CACE,eACA,aACA,SACA,mBACA,iBACA,WACA,SACA,gBACA,6BAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAX,aAAA,gBACAW,EAAAV,WAAA,cACAU,EAAAT,OAAA,SACAS,EAAAR,iBAAA,oBACAQ,EAAAP,eAAA,kBACAO,EAAA7K,SAAA,YACA6K,EAAAvN,OAAA,SACAuN,EAAAN,cAAA,iBACAM,EAAAL,0BAAA,8BATUK,CAUZ,CAVA,CAAYA,IAAkD,IAYvD,MAAMC,GACX,CACE,eACA,aACA,SACA,mBACA,iBACA,WACA,SACA,gBACA,6BAGG,IAAKC,GAAZ,SAAYA,GACVA,SAAAtR,MAAA,QACAsR,EAAAC,aAAA,WACAD,EAAAV,iBAAA,oBACAU,EAAAzI,aAAA,eACAyI,EAAAE,UAAA,aACAF,EAAA/K,SAAA,YACA+K,EAAAG,aAAA,gBACAH,EAAAI,cAAA,iBACAJ,EAAAK,aAAA,gBACAL,EAAAM,OAAA,SACAN,EAAAO,OAAA,SAXUP,CAYZ,CAZA,CAAYA,IAAqD,IAc1D,MAAMQ,GACX,CACE,QACA,eACA,mBACA,eACA,YACA,WACA,eACA,gBACA,eACA,SACA,yDCpuBG,IAAKzrC,EAAZ,SAAYA,GACVA,SAAAs6B,WAAA,KACAt6B,EAAAC,QAAA,OACAD,EAAAu6B,kBAAA,MACAv6B,EAAA2B,oBAAA,OACA3B,EAAAqB,IAAA,MACArB,EAAAe,MAAA,QACAf,EAAAqC,SAAA,MACArC,EAAAkX,UAAA,OACAlX,EAAAiH,cAAA,SACAjH,EAAAiX,SAAA,OACAjX,EAAA8gC,SAAA,QACA9gC,EAAA0rC,KAAA,OACA1rC,EAAAmX,YAAA,OACAnX,EAAAoX,YAAA,OACApX,EAAAqX,OAAA,OACArX,EAAAsX,mBAAA,MACAtX,EAAA2rC,2CAAA,QAjBU3rC,CAkBZ,CAlBA,CAAYA,GAAqB,0VCE1B,MAAM4rC,EAAwB,CACnC,CAAE/a,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/BipB,EAA6B,CACxC,CAAEjb,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,YACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,gBAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,iBAGpCkpB,EAAkC,CAC7C,CAAElb,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,gBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,aAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,aAGhCmpB,EAA6B,CACxC,CAAEnb,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,gBAC9C,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,iBAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,WAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,WAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CACEgO,QAAMgb,OACNxmD,MAAO,2BACPw9B,MAAO,8BAET,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,iBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,gBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,aAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,gBAGjCopB,EAA8B,CACzC,CAAEpb,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/BqpB,EAA6B,CACxC,CAAErb,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,eAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/BspB,EAAqD,CAChE,CAAEtb,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,cAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,cAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,YAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,aAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,WAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,gBAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,gBAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,cAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,kBAAmBw9B,MAAO,oBACnD,CAAEgO,QAAMgb,OAAUxmD,MAAO,kBAAmBw9B,MAAO,qBAGxCupB,EAAuC,CAClD,CAAEvb,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,gBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,aAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,YAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,oBAAqBw9B,MAAO,uBACrD,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,YAC3C,CACEgO,QAAMgb,OACNxmD,MAAO,sBACPw9B,MAAO,+BAET,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,sBAC/C,CACEgO,QAAMgb,OACNxmD,MAAO,yBACPw9B,MAAO,kCAET,CACEgO,QAAMgb,OACNxmD,MAAO,2BACPw9B,MAAO,+BAIEwpB,EAAqC,CAChD,CAAExb,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,cAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,aAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAGjCypB,EAAmC,CAC9C,CAAEzb,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,YAAaw9B,MAAO,aAC7C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/B0pB,EAAuC,CAClD,CAAE1b,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,mBAAoBw9B,MAAO,gBACpD,CAAEgO,QAAMgb,OAAUxmD,MAAO,iBAAkBw9B,MAAO,mBAClD,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/B2pB,EAAwC,CACnD,CAAE3b,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,eAC9C,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,gBAGnC4pB,EAAyC,CACpD,CAAE5b,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,eAC9C,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,gBAGnC6pB,EAA8C,CACzD,CAAE7b,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,gBAGnC8pB,EAAgB,CAC3BrvC,QAAS,OACTC,kBAAkB,GAGPqvC,EAAyB,CACpC,CAAE/b,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/BgqB,EAA8B,CACzC,CAAEhc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/BiqB,EAA6B,CACxC,CAAEjc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,SAG7BkqB,EAAiC,CAC5C,CAAElc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,SAG7BmqB,EAAkC,CAC7C,CAAEnc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,iBAGpCoqB,EAA6B,CACxC,CAAEpc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,SAG7BqqB,EAAyB,CACpC,CAAErc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,eAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,MAAOw9B,MAAO,QAG5BsqB,EAA6B,CACxC,CAAEtc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,eAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAGjCuqB,EAA2B,CACtC,CAAEvc,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,qBAAsBw9B,MAAO,cACtD,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,QAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,QAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,SACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,wBAAyBw9B,MAAO,kBAG9CwqB,EAAwC,CACnD,CAAExc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,MAAOw9B,MAAO,OACvC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,cAGpCyqB,EAA6B,CACxC,CAAEzc,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,YAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,UAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,UAAWw9B,MAAO,WAC3C,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAGjC0qB,EAAiC,CAC5C,CAAE1c,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,mBAAoBw9B,MAAO,sBASzC2qB,IALT3c,EAAMgb,QACNhb,EAAMgb,QACNhb,EAAMgb,OAGuD,CAC/D,CAAEhb,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,aAAcw9B,MAAO,eAC9C,CAAEgO,QAAMgb,OAAUxmD,MAAO,mBAAoBw9B,MAAO,qBACpD,CAAEgO,QAAMgb,OAAUxmD,MAAO,iBAAkBw9B,MAAO,mBAClD,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CACEgO,QAAMgb,OACNxmD,MAAO,4BACPw9B,MAAO,iCAIE4qB,EAA2C,CACtD,CAAE5c,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,QACxC,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,WAG/B6qB,GAA+C,CAC1D,CAAE7c,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,YAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,iBAAkBw9B,MAAO,oBAGvC8qB,GAA+C,CAC1D,CAAE9c,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,MAAOw9B,MAAO,OACvC,CAAEgO,QAAMgb,OAAUxmD,MAAO,cAAew9B,MAAO,SAC/C,CAAEgO,QAAMgb,OAAUxmD,MAAO,QAASw9B,MAAO,SACzC,CAAEgO,QAAMgb,OAAUxmD,MAAO,WAAYw9B,MAAO,aAC5C,CAAEgO,QAAMgb,OAAUxmD,MAAO,SAAUw9B,MAAO,UAC1C,CAAEgO,QAAMgb,OAAUxmD,MAAO,eAAgBw9B,MAAO,iBAChD,CAAEgO,QAAMgb,OAAUxmD,MAAO,gBAAiBw9B,MAAO,kBACjD,CAAEgO,QAAMgb,OAAUxmD,MAAO,mBAAoBw9B,MAAO,sBACpD,CAAEgO,QAAMgb,OAAUxmD,MAAO,mBAAoBw9B,MAAO,uBAGzC+qB,EAA0C,CACrD,CAAE/c,QAAMgb,OAAUxmD,MAAO,OAAQw9B,MAAO,sDC5RnC,IAAKgrB,EAAZ,SAAYA,GACVA,SAAAC,qBAAA,8BACAD,EAAAE,8BAAA,wCACAF,EAAAG,2BAAA,qCACAH,EAAAI,4BAAA,uCACAJ,EAAAK,6BAAA,wCAEAL,EAAAM,WAAA,uBAEAN,EAAAlR,8BAAA,wCACAkR,EAAArP,iBAAA,yBACAqP,EAAAnQ,gBAAA,wBACAmQ,EAAA7K,sBAAA,+BACA6K,EAAA7O,0BAAA,mCACA6O,EAAA/N,0BAAA,mCACA+N,EAAApN,0BAAA,mCACAoN,EAAAhN,4BAAA,sCACAgN,EAAAvM,sCAAA,iDACAuM,EAAAvL,0BAAA,mCACAuL,EAAAvK,0BAAA,mCACAuK,EAAAlK,0BAAA,oCACAkK,EAAA/J,yBAAA,kCACA+J,EAAA5J,kCAAA,6CACA4J,EAAAzJ,qBAAA,8BACAyJ,EAAAtJ,0BAAA,oCACAsJ,EAAA5I,4BAAA,sCACA4I,EAAA1I,0BAAA,mCACA0I,EAAAxI,yBAAA,kCACAwI,EAAArI,6BAAA,uCACAqI,EAAAjI,4BAAA,qCACAiI,EAAA/H,wBAAA,kCACA+H,EAAA7H,aAAA,qBACA6H,EAAA3H,qBAAA,8BACA2H,EAAAvH,yBAAA,kCACAuH,EAAApH,eAAA,uBACAoH,EAAAO,uBAAA,gCACAP,EAAAnE,4BAAA,sCACAmE,EAAAQ,8BAAA,wCACAR,EAAA1D,sCAAA,gDACA0D,EAAAhD,yCAAA,oDACAgD,EAAAS,oDAAA,gEACAT,EAAA5C,sDAAA,mEAEA4C,EAAAhH,0CAAA,qDACAgH,EAAA7G,oDAAA,gEACA6G,EAAA/F,qDAAA,iEACA+F,EAAA/E,qDAAA,iEACA+E,EAAAtE,kCAAA,6CAEAsE,EAAAU,cAAA,0BAEAV,EAAAW,cAAA,sBACAX,EAAAY,cAAA,sBACAZ,EAAAa,mBAAA,4BACAb,EAAAc,eAAA,uBACAd,EAAAe,gBAAA,wBACAf,EAAAgB,eAAA,uBACAhB,EAAAiB,oCAAA,+CACAjB,EAAAkB,wBAAA,iCACAlB,EAAAmB,sBAAA,+BACAnB,EAAAoB,oBAAA,6BACApB,EAAAqB,wBAAA,iCACArB,EAAAsB,wBAAA,kCACAtB,EAAAuB,0BAAA,mCACAvB,EAAAwB,qBAAA,8BACAxB,EAAAyB,gBAAA,yBACAzB,EAAA0B,0BAAA,oCACA1B,EAAA2B,8BAAA,wCACA3B,EAAA4B,WAAA,mBACA5B,EAAA6B,eAAA,uBACA7B,EAAA8B,eAAA,uBACA9B,EAAA+B,wBAAA,kCACA/B,EAAAgC,mBAAA,4BACAhC,EAAAiC,gBAAA,wBACAjC,EAAAkC,mBAAA,4BACAlC,EAAAmC,kBAAA,2BACAnC,EAAAoC,mBAAA,4BACApC,EAAAqC,uBAAA,gCACArC,EAAAsC,aAAA,qBACAtC,EAAAuC,eAAA,uBACAvC,EAAAwC,0BAAA,oCACAxC,EAAAyC,4BAAA,sCACAzC,EAAA0C,oCAAA,8CACA1C,EAAA2C,2BAAA,qCACA3C,EAAA4C,uBAAA,gCACA5C,EAAA6C,+BAAA,yCACA7C,EAAA8C,0BAAA,oCAtFU9C,CAuFZ,CAvFA,CAAYA,GAAW,gGCIhB,MAAM/T,EAAS,IAAI8W,MACxB,+CACA,CACE5mD,QAASA,KACP,MAAQ6mD,gBAAW,EAAKhpD,OAAOipD,MAE/B,IAAKD,EACH,MAAM,IAAIrqD,MAAM,2BAGlB,OAAOqqD,KAKA5+C,EAAmB,IAAI2+C,MAAgC,oBACvD9jD,EAAqB,IAAI8jD,MAAkC,qEClBlE,MAAOG,EAQX1qD,YAAY2qD,GANZ7pD,KAAA9B,MAAuB,KAOrB8B,KAAK2oB,eAAiBkhC,EAAwBlhC,gBAAkB,GAChE3oB,KAAK9B,MAAQ2rD,EAAwB3rD,OAAS,GAC9C8B,KAAK8pD,UAAYD,EAAwBC,UACzC9pD,KAAK+pD,WAAaF,EAAwBE,WAC1C/pD,KAAKgqD,QAAUH,EAAwBG,UAAW,EAClDhqD,KAAK4oB,QAAUihC,EAAwBjhC,UAAW,CACpD,iECfI,MAAOqhC,EAGX/qD,cACEc,KAAK0pC,QAAOwgB,MACd,gECJI,MAAOC,UACHC,mECDJ,MAAOC,UACHD,mECDJ,MAAOE,UACHF,oECFJ,MAAOG,EAKXrrD,YAAYsrD,GACVxqD,KAAK+K,GAAKy/C,EAAcz/C,GACxB/K,KAAKyqD,eAAiBD,EAAcC,eACpCzqD,KAAK0qD,kBAAoBF,EAAcE,iBACzC,ECTI,MAAOC,EAeXzrD,YAAYJ,GACVkB,KAAKqiB,eAAiBvjB,EAAKujB,eAC3BriB,KAAKoiB,sBAAwBtjB,EAAKsjB,sBAClCpiB,KAAK4qD,mBAAqB9rD,EAAK8rD,mBAC/B5qD,KAAKsiB,uBAAyBxjB,EAAKwjB,uBACnCtiB,KAAKuiB,mBAAqBzjB,EAAKyjB,mBAC/BviB,KAAKqnB,mBAAqBvoB,EAAKuoB,mBAE/BrnB,KAAK+gB,oCACHjiB,EAAKiiB,oCAEP/gB,KAAK6qD,0BAA4B/rD,EAAK+rD,0BACtC7qD,KAAKohB,cAAgBtiB,EAAKsiB,cAE1BphB,KAAKghB,gDACHliB,EAAKkiB,gDAEPhhB,KAAKwiB,iBAAmB1jB,EAAK0jB,iBAC7BxiB,KAAKmiB,oBAAsBrjB,EAAKqjB,oBAChCniB,KAAKmnB,oBAAsBroB,EAAKqoB,mBAClC,iBC9BI,MAAO2jC,UAAyBC,IAOpC7rD,YAAYJ,GACV6F,MAAM7F,GAPCkB,KAAAgrD,WAA0C,KAG1ChrD,KAAAsnB,YAAwC,KAM3CxoB,EAAKksD,aACPhrD,KAAKgrD,WAAalsD,EAAKksD,WAAWrsD,IAC/BC,GAAS,IAAI2rD,EAAmB3rD,KAIrCoB,KAAKgyB,YAAclzB,EAAKkzB,YACxBhyB,KAAK8gB,YAAc,IAAI6pC,EAAqB7rD,EAAKgiB,aAE7ChiB,EAAKwoB,cACPtnB,KAAKsnB,YAAcxoB,EAAKwoB,YAAY3oB,IACjCC,GAAS,IAAIqsD,IAAgBrsD,KAIlCoB,KAAKkrD,eAAiBpsD,EAAKosD,cAC7B,iEC9BI,MAAOC,UACHlB,IAQR/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,KACjBxF,KAAKorD,OAAStsD,EAAKssD,OACnBprD,KAAKqrD,MAAQvsD,EAAKusD,KACpB,gEChBI,MAAOC,UACHlB,oECDJ,MAAOmB,UAA0BtB,IAKrC/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,KACjBxF,KAAKq8B,MAAQv9B,EAAKu9B,KACpB,CAEAiM,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,iECfI,MAAOgmD,UAA0BvB,IAKrC/qD,YAAYusD,GACV9mD,QAEA3E,KAAK+K,GAAK0gD,EAAa1gD,GACvB/K,KAAK0rD,KAAOD,EAAaC,KACzB1rD,KAAKwF,KAAOimD,EAAajmD,IAC3B,CAEA8iC,aACE,OAAItoC,KAAK0rD,MAAQ1rD,KAAKwF,KACb,GAAGxF,KAAK0rD,UAAU1rD,KAAKwF,OAG5BxF,KAAK0rD,KACA1rD,KAAK0rD,KAGP,GAAG1rD,KAAKwF,MACjB,iECvBI,MAAOmmD,UAAsB1B,IAIjC/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,IACnB,CAEA8iC,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,iECbI,MAAOomD,UAAwB3B,IAKnC/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAK0rD,KAAO5sD,EAAK4sD,KACjB1rD,KAAKwF,KAAO1G,EAAK0G,IACnB,CAEA8iC,aACE,OAAItoC,KAAK0rD,MAAQ1rD,KAAKwF,KACb,GAAGxF,KAAK0rD,UAAU1rD,KAAKwF,OAG5BxF,KAAK0rD,KACA1rD,KAAK0rD,KAGP,GAAG1rD,KAAKwF,MACjB,iECvBI,MAAOqmD,UACH5B,IAOR/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,KACjBxF,KAAK6hB,YAAc/iB,EAAK+iB,WAC1B,CAEAymB,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,gEClBI,MAAO4kD,UAAoBH,IAI/B/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,IACnB,CAEA8iC,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,iECbI,MAAOsmD,UACH7B,IAQR/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAK+rD,WAAajtD,EAAKitD,WACvB/rD,KAAK9B,MAAQY,EAAKZ,MAClB8B,KAAKwF,KAAO1G,EAAK0G,IACnB,iEChBI,MAAOwmD,UAAqB/B,IAMhC/qD,YAAYJ,GACV6F,QAEA3E,KAAK+K,GAAKjM,EAAKiM,GACf/K,KAAKwF,KAAO1G,EAAK0G,KACjBxF,KAAK0rD,KAAO5sD,EAAK4sD,KACjB1rD,KAAK0T,MAAQ5U,EAAK4U,KACpB,CAKA40B,aACE,MAAO,GAAGtoC,KAAK0rD,UAAU1rD,KAAKwF,MAChC,iECpBI,MAAOymD,UAA0BhC,IAKrC/qD,YAAYgtD,GACVvnD,QAEA3E,KAAKmsD,WAAaD,EAAaC,WAC/BnsD,KAAK9B,MAAQguD,EAAahuD,MAC1B8B,KAAK+K,GAAKmhD,EAAaC,UACzB,CAEA7jB,aACE,MAAO,GAAGtoC,KAAK9B,OACjB,EChBI,MAAOkuD,UAA6BH,iECCpC,MAAOI,UACHjC,qDCFJ,MAAOkC,EAOXptD,YAAYqtD,GACVvsD,KAAK2T,WAAa44C,EAAkB54C,WACpC3T,KAAKiW,UAAYs2C,EAAkBt2C,UACnCjW,KAAKkW,SAAWq2C,EAAkBr2C,SAClClW,KAAKmW,QAAUo2C,EAAkBp2C,QACjCnW,KAAKoW,iBAAmBm2C,EAAkBn2C,gBAC5C,iECZI,MAAOo2C,UACHzB,IAMR7rD,YAAYJ,GACV6F,MAAM7F,GAENkB,KAAKysD,WAAa3tD,EAAK2tD,WACvBzsD,KAAK0iB,UAAY5jB,EAAK4jB,SACxB,kDCbI,MAAOuoC,EAIX/rD,YAAYwtD,GAHH1sD,KAAA/B,IAAqB,KACrB+B,KAAA9B,MAAuB,KAG9B8B,KAAK/B,IAAMyuD,EAAWzuD,IACtB+B,KAAK9B,MAAQwuD,EAAWxuD,KAC1B,iECNI,MAAOyuD,UACH1C,IAUR/qD,YAAY0tD,GACVjoD,QAPO3E,KAAAwF,KAAsB,KACtBxF,KAAA8U,IAAqB,KACrB9U,KAAA6hB,YAA6B,KAC7B7hB,KAAAqjB,WAA6B,KAC7BrjB,KAAA8hB,KAAsB,KAK7B9hB,KAAK+K,GAAK6hD,EAAiB7hD,GAEvB6hD,EAAiBpnD,OACnBxF,KAAKwF,KAAOonD,EAAiBpnD,MAG3BonD,EAAiB93C,MACnB9U,KAAK8U,IAAM83C,EAAiB93C,KAG1B83C,EAAiB/qC,cACnB7hB,KAAK6hB,YAAc+qC,EAAiB/qC,aAGlC+qC,EAAiBvpC,aACnBrjB,KAAKqjB,WAAaupC,EAAiBvpC,YAGjCupC,EAAiB9qC,OACnB9hB,KAAK8hB,KAAO8qC,EAAiB9qC,KAEjC,gECnCI,MAAO+qC,UACHzC,8ECAJ,MAAO0C,UACH1C,IAKRlrD,YAAYJ,GACV6F,MAAM7F,GAHCkB,KAAA+sD,mBAAuD,KAK1DjuD,EAAKiuD,qBACP/sD,KAAK+sD,mBAAqBjuD,EAAKiuD,mBAAmBpuD,IAC/CC,GAAS,IAAIouD,IAAwBpuD,IAG5C,gECfI,MAAOouD,UACH5C,IAMRlrD,YAAYJ,GACV6F,MAAM7F,GAENkB,KAAKitD,aAAenuD,EAAKmuD,aACzBjtD,KAAK8U,IAAMhW,EAAKgW,GAClB,gECZI,MAAOo4C,UAAsB9C,IAIjClrD,YAAYiuD,GACVxoD,MAAMwoD,GAJRntD,KAAAotD,MAAuB,KACvBptD,KAAA0iB,UAA2B,KAKzB1iB,KAAKotD,MAAQD,EAASC,MACtBptD,KAAK0iB,UAAYyqC,EAASzqC,SAC5B,CAEA4lB,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,4ECZI,MAAOglC,UAAwBugB,IAKnC7rD,YAAY8qC,GACVrlC,MAAMqlC,GAENhqC,KAAKie,aAAe+rB,EAAW/rB,aAC/Bje,KAAK0qC,QAAUV,EAAWU,QAE1B1qC,KAAK4tB,OAASoc,EAAWpc,OACrB,IAAI29B,IAAkBvhB,EAAWpc,QACjC,IACN,CAEA0a,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,iECnBI,MAAOulD,UAAkBd,IAQ7B/qD,YAAYqrC,GACV5lC,QAEA3E,KAAK+K,GAAKw/B,EAAKx/B,GACf/K,KAAKotD,MAAQ7iB,EAAK6iB,MAClBptD,KAAKwF,KAAO+kC,EAAK/kC,KACjBxF,KAAKqtD,kBAAoB9iB,EAAK8iB,kBAC9BrtD,KAAK6zC,UAAYtJ,EAAKsJ,UACtB7zC,KAAK0iB,UAAY6nB,EAAK7nB,SACxB,CAEA4lB,aACE,MAAO,GAAGtoC,KAAKwF,MACjB,wHCrBF,MAAM8nD,EAAwBrtD,KAC5B,CACEstD,QAAMl3B,KAASp2B,MACfutD,aAAWn3B,KAASp2B,MACpByP,SAAO2mB,KAASp2B,OAElB,wCCEK,IAAM2jB,EAAoB,MAA3B,MAAOA,UAA4B+S,IACvC82B,gBAAgBC,GACd,OAAO1tD,KAAK62B,KAAa,YAAY62B,aAAuBC,MAAUvrD,KACpEpC,KAAKq3B,YACH,6DAA0D,EAE5Dh1B,MAAmBrC,KAAKY,YAE5B,CAEMgtD,eAAeF,GAAkB,IAAAzsD,EAAAjB,KAAA,SAAAkB,KAAA,YACrC,IAME,aALuBD,EAAKoE,IAC1B,YAAYqoD,aACZC,KAIJ,OAAS1oD,GACP,OAAOhE,EAAKywB,WACVzsB,EACA,2DAEJ,CAAC,EAboC,EAcvC,CAEA4oD,qBACE,OAAO7tD,KAAK62B,KACV,oBACAy2B,GACAlrD,KACApC,KAAKq3B,YAAY,mDAAgD,EACjEh1B,MAAmBrC,KAAKY,YAE5B,CAEAktD,aACEC,EACA/vC,EACAgwC,EACA9xB,GAEA,MAAM+xB,EAAc,IAAI56B,IAAiB,CACvC66B,eAAgBhyB,IAGlB,OAAOl8B,KAAK62B,KACV,YAAYk3B,KAAoB/vC,KAAYgwC,aAC5CL,KACAM,GACA7rD,KACApC,KAAKq3B,YAAY,kDAA+C,EAChEh1B,MAAmBrC,KAAKY,YAE5B,CAEA0jB,wBAAwB6pC,GACtB,OAAOnuD,KAAK62B,KAAa,qBAAqBs3B,IAAcR,MAAUvrD,KACpEpC,KAAKq3B,YACH,6DAA0D,EAE5Dh1B,MAAmBrC,KAAKY,YAE5B,CAACb,SAAAC,KAAA,4DA/DU4jB,KAAmB3jB,GAAnB2jB,EAAmB,GA+D7B,GA/D6B7jB,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAnBghB,EAAmB/gB,QAAnB+gB,EAAmB9gB,UAAAC,WAFlB,gBAED6gB,CAAoB,qICD1B,IAAM2E,EAA6B,MAApC,MAAOA,UAAqCoO,IAMhDz3B,cACEyF,QAJM3E,KAAAouD,4BACN,IAAI1hD,IAAgB,MAKpB1M,KAAKwoB,qBAAuBxoB,KAAKouD,4BAA4B/gD,cAC/D,CAEMghD,kBAAe,IAAAptD,EAAAjB,KAAA,SAAAkB,KAAA,YACnB,IACE,MAAMmV,QAAiBpV,EAAKoE,IAC1B,0BACAipD,KAGF,OAAmB,MAAZj4C,EACH,IAAIuzC,IAA6BvzC,GACjC,IACN,OAASpR,GACP,OAAOhE,EAAKywB,WACVzsB,EACA,6DAEJ,CAAC,EAfkB,EAgBrB,CAEMspD,mBACJ94C,GAAqC,IAAAhT,EAAAzC,KAAA,SAAAkB,KAAA,YAErC,UACQuB,EAAKw0B,IACT,0BACAu3B,KACA/4C,GAGF,MAAMY,QAAiB5T,EAAK4rD,kBAE5B,OAAIh4C,GACF5T,EAAK2rD,4BAA4Bv+C,KAAKwG,GAGrB,MAAZA,EACH,IAAIuzC,IAA6BvzC,GACjC,IACN,OAASpR,GACP,OAAOxC,EAAKivB,WACVzsB,EACA,2DAEJ,CAAC,EAvBoC,EAwBvC,CAAClF,SAAAC,KAAA,mBAAAC,iBAvDUsoB,EAA4B,EAAAxoB,SAAAC,KAAA,WAAAyuD,EAAA7rD,IAAA,OAA5B2lB,EAA4B1lB,QAA5B0lB,EAA4BzlB,UAAAC,WAF3B,gBAEDwlB,CAA6B,iPCYnC,IAAM9E,EAAgB,MAAvB,MAAOA,EAQX,uBAAIirC,GACF,OAA4C,MAArC1uD,KAAK2uD,uBAAuBzwD,KACrC,CAkBAgB,cA3BAc,KAAA4uD,UAAoB,EAWH5uD,KAAA2uD,uBACf,IAAIjiD,IAAgB,MACL1M,KAAA6uD,oBACf,IAAIniD,IAAgB,MAEL1M,KAAA8uD,kBACf,IAAIpiD,IAAgB,MAEL1M,KAAA+uD,yBAA0C,IAAI9c,IAC9CjyC,KAAAgvD,eAActuD,OAAO6pB,KACrBvqB,KAAAkqB,eAAcxpB,OAAOuJ,MACrBjK,KAAAmqB,wBAAuBzpB,OAAOwJ,MAC9BlK,KAAAigB,aAAYvf,OAAOwf,KACnBlgB,KAAAY,cAAaF,OAAOG,OACpBb,KAAAgjB,mBAAkBtiB,OAAOgjB,KAGxC1jB,KAAKivD,WAAajvD,KAAK8uD,kBAAkBzhD,eACzCrN,KAAKkvD,gBAAkBlvD,KAAK2uD,uBAAuBthD,eACnDrN,KAAK6jB,aAAe7jB,KAAK6uD,oBAAoBxhD,eAE7CrN,KAAKmvD,cAAgBnvD,KAAKivD,WAAW7sD,QAAKzD,KAAK4rC,GAAiB,MAARA,IAExDvqC,KAAKmqB,qBAAqBwD,YACvBvrB,QACCoT,KACGoY,GAA8BA,IAAWC,KAAkBC,OAAI,EAElEwd,KAAU,IACkD,IAAtDtrC,KAAKkqB,YAAY9jB,SAASumB,iBAAiB3V,QAAW,EACjDugB,WAAGh1B,GAGLvC,KAAKqrC,kBACb,EACDhpC,SAEDC,UAAU,SAEV,EAEH8sD,KAAc,CAACpvD,KAAKivD,WAAYjvD,KAAKkvD,kBAClC9sD,QACCzD,KAAI,EAAE0wD,EAAWC,KAAoBA,GAAkBD,IAAS,EAChEhtD,SAEDC,UAAWitD,IACVvvD,KAAK6uD,oBAAoBh/C,KAAK0/C,EAAW,EAE/C,CAEAhjC,cACEvsB,KAAK8uD,kBAAkB1c,WACvBpyC,KAAK2uD,uBAAuBvc,WAC5BpyC,KAAK6uD,oBAAoBzc,WACzBpyC,KAAK+uD,yBAAyB3c,UAChC,CAKA/G,gBACE,GAAIrrC,KAAKwvD,kBACP,OAAOxvD,KAAKwvD,kBAGd,MAAMjlB,EAAOvqC,KAAK8uD,kBAAkB5wD,MAEpC,GAAY,MAARqsC,EAAc,CAChB,MAAMilB,EAAoBxvD,KAAKyvD,sBAAsBrtD,QACnDstD,KAAS,KACP1vD,KAAKwvD,uBAAoBjtD,KAC1B,EACDF,MAAmBrC,KAAKY,aAG1B,OAAAZ,KAAKwvD,kBAAoBA,EAElBxvD,KAAKwvD,iBACd,CAEA,SAAOj4B,MAAGgT,EACZ,CAKAolB,iBAAiBC,GACf,OACE5vD,KAAK8uD,kBAAkB5wD,OACvB8B,KAAK8uD,kBAAkB5wD,MAAM6M,KAAO6kD,GAGpC5vD,KAAK2kB,yBAAqB,EACnB4S,MAAG,OAGLv3B,KAAKgvD,YAAYa,SAASD,GAAQxtD,QACvCypC,KAAKyjB,IACmB,MAAlBA,EAKJtvD,KAAK8vD,kBAAkBR,GAJrBtvD,KAAK2kB,uBAI8B,IACtC,EACDtiB,MAAmBrC,KAAKY,YAE5B,CAKA+jB,wBACE3kB,KAAK+vD,qBACP,CAEAlrC,UACE,OAAO7kB,KAAKkqB,YAAY/a,OAAO,CAC7BG,QAAStP,KAAKkqB,YAAY9jB,SAASmJ,oBAEvC,CAEQkgD,sBAgBN,OAdEzvD,KAAKgvD,YAAYa,WAAWztD,QAC1BzD,KAAK4rC,IACCA,EACFvqC,KAAKgwD,aAAazlB,GAElBvqC,KAAKiwD,iBAGPjwD,KAAKgjB,gBAAgBktC,mBAEd3lB,KAIYnoC,QAAK+tD,KAAUnwD,KAAK+uD,0BAC/C,CAEQiB,aAAazlB,GACnBvqC,KAAK8uD,kBAAkBj/C,KAAK06B,GAE5BvqC,KAAKigB,UAAUmwC,eAAe7lB,GAAM,EACtC,CAEQ0lB,iBACNjwD,KAAK8uD,kBAAkBj/C,KAAK,MAExB7P,KAAK2uD,uBAAuBzwD,OAC9B8B,KAAK+vD,qBAET,CAEQD,kBAAkBvlB,GACxBvqC,KAAK2uD,uBAAuB9+C,KAAK06B,GAEjCvqC,KAAKigB,UAAUmwC,eAAe7lB,GAAM,EACtC,CAEQwlB,sBACN/vD,KAAK2uD,uBAAuB9+C,KAAK,MAEjC7P,KAAKigB,UAAUmwC,eAAepwD,KAAK8uD,kBAAkB5wD,OAAO,EAC9D,CAAC6B,SAAAC,KAAA,mBAAAC,iBAlLUwjB,EAAgB,EAAA1jB,SAAAC,KAAA,WAAAqwD,EAAAztD,IAAA,OAAhB6gB,EAAgB5gB,QAAhB4gB,EAAgB3gB,UAAAC,WAFf,gBAED0gB,CAAgB,8PCnBvB,MAAO6sC,UAA0BlG,oBCejC,MAAOmG,EAoDXrxD,YAAYJ,GAdHkB,KAAAwwD,kBAAuC,CAC9CC,WAAY,GACZC,WAAY,GACZC,UAAW,IAYX3wD,KAAK4wD,KAAO9xD,EAAK8xD,KAEjB5wD,KAAK6wD,UACH/xD,EAAK+xD,WAAWlyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GAE9DoB,KAAK8wD,WACHhyD,EAAKgyD,YAAYnyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GAE/DoB,KAAK+wD,eACHjyD,EAAKiyD,gBAAgBpyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GAEnEoB,KAAKgxD,aACHlyD,EAAKkyD,cAAcryD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAE7DoB,KAAKixD,4BACHnyD,EAAKmyD,6BAA6BtyD,IAC/BC,GAAS,IAAIkuD,IAAgCluD,KAC3C,GAEPoB,KAAKkxD,SAAWpyD,EAAKoyD,UAAUvyD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAEvEoB,KAAKmxD,iBACHryD,EAAKqyD,kBAAkBxyD,IAAKC,GAAS,IAAIwtD,IAAqBxtD,KAC9D,GAEFoB,KAAKoxD,yBACHtyD,EAAKsyD,0BAA0BzyD,IAC5BC,GAAS,IAAI0sD,IAAyB1sD,KACpC,GAEPoB,KAAKqxD,gCACHvyD,EAAKuyD,iCAAiC1yD,IACnCC,GAAS,IAAI0sD,IAAyB1sD,KACpC,GAEPoB,KAAKsxD,oBACHxyD,EAAKwyD,qBAAqB3yD,IAAKC,GAAS,IAAI0rD,IAAoB1rD,KAChE,GAEFoB,KAAKuxD,kBACHzyD,EAAKyyD,mBAAmB5yD,IAAKC,GAAS,IAAIiuD,IAAsBjuD,KAChE,GAEFoB,KAAKwxD,4BACH1yD,EAAK0yD,6BAA6B7yD,IAC/BC,GAAS,IAAIytD,IAAgCztD,KAC3C,GAEPoB,KAAKyxD,wBACH3yD,EAAK2yD,yBAAyB9yD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAExEoB,KAAK0xD,uBACH5yD,EAAK4yD,wBAAwB/yD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAEvEoB,KAAK2xD,oBACH7yD,EAAK6yD,qBAAqBhzD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAEpEoB,KAAK4xD,gBACH9yD,EAAK8yD,iBAAiBjzD,IAAKC,GAAS,IAAI2sD,IAAkB3sD,KAAU,GAEtEoB,KAAK6xD,8BACH/yD,EAAK+yD,+BAA+BlzD,IACjCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEPoB,KAAK8xD,sCACHhzD,EAAKgzD,uCAAuCnzD,IACzCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAK+xD,8CACHjzD,EAAKizD,+CAA+CpzD,IACjDC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAKgyD,iBACHlzD,EAAKkzD,kBAAkBrzD,IAAKC,GAAS,IAAI2sD,IAAkB3sD,KAAU,GAEvEoB,KAAKiyD,4BACHnzD,EAAKmzD,6BAA6BtzD,IAC/BC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAKkyD,kBACHpzD,EAAKozD,mBAAmBvzD,IAAKC,GAAS,IAAI2sD,IAAkB3sD,KAAU,GAExEoB,KAAKmyD,4BACHrzD,EAAKqzD,6BAA6BxzD,IAC/BC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAKoyD,sBACHtzD,EAAKszD,uBAAuBzzD,IACzBC,GAAS,IAAIyrD,IAA0BzrD,KACrC,GAEPoB,KAAKqyD,6BACHvzD,EAAKuzD,8BAA8B1zD,IAChCC,GAAS,IAAIurD,IAAgCvrD,KAC3C,GAEPoB,KAAKsyD,cACHxzD,EAAKwzD,eAAe3zD,IAAKC,GAAS,IAAI0xD,EAAkB1xD,KAAU,GAEpEoB,KAAKuyD,6CACHzzD,EAAKyzD,8CAA8C5zD,IAChDC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEPoB,KAAKwyD,yCACH1zD,EAAK0zD,0CAA0C7zD,IAC5CC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEPoB,KAAKyyD,qBACH3zD,EAAK2zD,sBAAsB9zD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAErEoB,KAAK0yD,+BACH5zD,EAAK4zD,gCAAgC/zD,IAClCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEHE,EAAK0xD,oBACPxwD,KAAKwwD,kBAAoB1xD,EAAK0xD,mBAGhCxwD,KAAK2yD,oCACH7zD,EAAK6zD,qCAAqCh0D,IACvCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEPoB,KAAK4yD,8BACH9zD,EAAK8zD,+BAA+Bj0D,IACjCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAK6yD,wBACH/zD,EAAK+zD,yBAAyBl0D,IAC3BC,GAAS,IAAIitD,IAAuBjtD,KAClC,GAEPoB,KAAK8yD,SACHh0D,EAAKg0D,UAAUn0D,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GAE7DoB,KAAK+yD,kBACHj0D,EAAKi0D,mBAAmBp0D,IACrBC,GAAS,IAAIusD,IAA8BvsD,KACzC,GAEPoB,KAAKgzD,kBACHl0D,EAAKk0D,mBAAmBr0D,IAAKC,GAAS,IAAIktD,IAAuBltD,KACjE,GAEFoB,KAAKizD,iCACHn0D,EAAKm0D,kCAAkCt0D,IACpCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GAEPoB,KAAKkzD,sCACHp0D,EAAKo0D,uCAAuCv0D,IACzCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAKmzD,6CACHr0D,EAAKq0D,8CAA8Cx0D,IAChDC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPoB,KAAKozD,sBAAwBt0D,EAAKs0D,uBAAyB,GAC3DpzD,KAAKqzD,iBAAmBv0D,EAAKu0D,kBAAoB,EACnD,4BC9OI,MAAOC,EAGXp0D,YAAYJ,GAFHkB,KAAAuzD,cAAgD,KAGnDz0D,EAAKy0D,gBACPvzD,KAAKuzD,cAAgBz0D,EAAKy0D,cAAc50D,IACrCC,GAAS,IAAI+tD,IAAsB/tD,IAG1C,iBCTF,MAAM40D,EAAuBC,ICAvBC,EAA6BD,ICA7BE,EAAiBF,oBCAvB,MAAMG,EAAsBH,+BCA5B,MAAMI,GAAoB5zD,KACxB,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,MACf4hB,eAAawU,KAASp2B,OAExB,oCCNF,MAAM21C,ECAqB31C,KACzB,CACEksD,WAAYlsD,KACZ/B,SAAOm4B,KAASp2B,OAElB,sBCLI6zD,GAA6BL,mBCAnC,MAAMM,GAAmBN,ICAnBO,EAAeP,mBCErB,MAAMQ,EAA6Bh0D,KACjC,CACEwzD,IACAxzD,KAAO,CACL8sD,sBAAoB12B,KAASp2B,KAAQshD,SAGzC,8BCOI2S,EAAqBj0D,KACzB,CACE2wD,KAAM3wD,KACN4wD,aAAWx6B,KAASp2B,KAAQk0D,OAC5BrD,cAAYz6B,KAASp2B,KAAQk0D,OAC7BpD,kBAAgB16B,KAASp2B,KAAQk0D,OACjCnD,gBAAc36B,KAASp2B,KAAQwzD,MAC/BxC,+BAA6B56B,KAASp2B,KAAQg0D,IAC9C/C,YAAU76B,KAASp2B,KAAQwzD,MAC3BtC,oBAAkB96B,KAASp2B,KAAQ21C,IACnCwb,4BAA0B/6B,KAASp2B,KAAQ2zD,IAC3CvC,mCAAiCh7B,KAASp2B,KAAQ2zD,IAClDtC,uBAAqBj7B,KAASp2B,KAAQ0zD,IACtCpC,qBAAmBl7B,KAASp2B,KAAQ8zD,KACpCvC,+BAA6Bn7B,KAASp2B,KAAQ6zD,KAC9CrC,2BAAyBp7B,KAASp2B,KAAQwzD,MAC1C/B,0BAAwBr7B,KAASp2B,KAAQwzD,MACzC9B,uBAAqBt7B,KAASp2B,KAAQwzD,MACtC7B,mBAAiBv7B,KAASp2B,KAAQm0D,MAClCvC,iCAA+Bx7B,KAASp2B,KAAQwzD,MAChD3B,yCAAuCz7B,KAASp2B,KAAQm0D,MACxDrC,iDAA+C17B,KAC7Cp2B,KAAQm0D,MAEVpC,oBAAkB37B,KAASp2B,KAAQm0D,MACnCnC,+BAA6B57B,KAASp2B,KAAQm0D,MAC9ClC,qBAAmB77B,KAASp2B,KAAQm0D,MACpCjC,+BAA6B97B,KAASp2B,KAAQm0D,MAC9ChC,yBAAuB/7B,KAASp2B,KAAQuzD,IACxCnB,gCAA8Bh8B,KAASp2B,KAAQyzD,IAC/CpB,iBAAej8B,KAASp2B,KAAQ+zD,IAChCzB,gDAA8Cl8B,KAASp2B,KAAQwzD,MAC/DjB,4CAA0Cn8B,KAASp2B,KAAQwzD,MAC3DhB,wBAAsBp8B,KAASp2B,KAAQwzD,MACvCf,kCAAgCr8B,KAASp2B,KAAQwzD,MACjDjD,qBAAmBn6B,KAASg+B,KAC5B1B,uCAAqCt8B,KAASp2B,KAAQwzD,MACtDb,iCAA+Bv8B,KAASp2B,KAAQm0D,MAChDvB,2BAAyBx8B,KAASp2B,KAAQ4zD,KAC1Cf,YAAUz8B,KAASp2B,KAAQk0D,OAC3BpB,qBAAmB18B,KAASp2B,KAAQq0D,OACpCtB,qBAAmB38B,KAASp2B,KAAQs0D,MACpCtB,oCAAkC58B,KAASp2B,KAAQwzD,MACnDP,yCAAuC78B,KAASp2B,KAAQm0D,MACxDjB,gDAA8C98B,KAC5Cp2B,KAAQm0D,MAEVhB,yBAAuB/8B,KAASp2B,KAAQA,OACxCozD,oBAAkBh9B,KAASp2B,KAAQA,QAErC,sCClEF,MAAMu0D,EAAmBv0D,KACvB,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,MACf6U,OAAKuhB,KAASp2B,MACd4hB,eAAawU,KAASp2B,MACtBojB,cAAYgT,KAASp2B,MACrB6hB,QAAMuU,KAASp2B,OAEjB,oBCRIw0D,EAAmBx0D,KACvB,CACEszD,iBAAel9B,KAASp2B,KAAQu0D,KAElC,mCCYK,IAAME,GAAqB,MAA5B,MAAOA,UAA6B/9B,IAIlCg+B,cAAW,IAAA1zD,EAAAjB,KAAA,SAAAkB,KAAA,YACf,IACE,MAAMmV,SAAiBpV,EAAKoE,IAC1B,sBACA6uD,GAGF,OAAmB,MAAZ79C,GAAmB,IAAIk6C,EAAwBl6C,IAAY,IACpE,OAASpR,IACP,OAAOhE,EAAKywB,WAAWzsB,GAAO,2CAChC,CAAC,EAVc,EAWjB,CAKM2vD,UAAO,IAAAnyD,EAAAzC,KAAA,SAAAkB,KAAA,YACX,IACE,aAAauB,EAAK4C,IAAY,2BAA4BsoD,KAC5D,OAAS1oD,IACP,OAAOxC,EAAKivB,WACVzsB,GACA,oDAEJ,CAAC,EARU,EASb,CAEM4vD,UAAO,IAAAC,EAAA90D,KAAA,SAAAkB,KAAA,YACX,IACE,MAAMmV,SAAiBy+C,EAAKzvD,IAC1B,2BACAovD,GAGF,OAAmB,MAAZp+C,GAAmB,IAAIi9C,EAAsBj9C,IAAY,IAClE,OAASpR,IACP,OAAO6vD,EAAKpjC,WACVzsB,GACA,gDAEJ,CAAC,EAbU,EAcb,CAEM8vD,SAAM,IAAAC,EAAAh1D,KAAA,SAAAkB,KAAA,YACV,IACE,MAAMmV,SAAiB2+C,EAAK3vD,IAC1B,6BACAgxB,KAASm+B,IAGX,OAAmB,MAAZn+C,GAAmB,IAAIs2C,IAAsBt2C,IAAY,IAClE,OAASpR,IACP,OAAO+vD,EAAKtjC,WACVzsB,GACA,8CAEJ,CAAC,EAbS,EAcZ,CAEMgwD,iBAAc,IAAAC,EAAAl1D,KAAA,SAAAkB,KAAA,YAClB,IACE,MAAMmV,SAAiB6+C,EAAK7vD,IAC1B,qCACAgxB,KAASm+B,IAGX,OAAmB,MAAZn+C,GAAmB,IAAIs2C,IAAsBt2C,IAAY,IAClE,OAASpR,IACP,OAAOiwD,EAAKxjC,WACVzsB,GACA,kDAEJ,CAAC,EAbiB,EAcpB,CAEMkwD,cAAW,IAAAC,EAAAp1D,KAAA,SAAAkB,KAAA,YACf,IACE,MAAMmV,SAAiB++C,EAAK/vD,IAC1B,kCACAgwD,MAAQ7d,OAGV,OAAmB,MAAZnhC,GACHA,GAAS1X,IAAKC,IAAS,IAAIotD,IAAaptD,KACxC,IACN,OAASqG,IACP,OAAOmwD,EAAK1jC,WACVzsB,GACA,+CAEJ,CAAC,EAfc,EAgBjB,CAEMqwD,gBACJC,EACAC,IAAe,IAAAC,GAAAz1D,KAAA,SAAAkB,KAAA,YAEf,MAAMoyB,GAAS,IAAID,IAAiB,CAClCqiC,eAAgBH,EAChBI,gBAAiBH,KAGnB,IACE,aAAaC,GAAKpwD,IAChB,wCACAuwD,KACAtiC,GAEJ,OAASruB,IACP,OAAOwwD,GAAK/jC,WACVzsB,GACA,4DAEJ,CAAC,EAlBc,EAmBjB,CAEM4wD,iBACJF,GAAuB,IAAAG,GAAA91D,KAAA,SAAAkB,KAAA,YAEvB,IACE,aAAa40D,GAAKzwD,IAChB,yCAAyCswD,KAAe,EACxDI,MAASpI,KAAUiI,MAEvB,OAAS3wD,IACP,OAAO6wD,GAAKpkC,WACVzsB,GACA,6DAEJ,CAAC,EAZsB,EAazB,CAAClF,SAAAC,KAAA,6DAtIU00D,KAAoBz0D,IAApBy0D,EAAoB,GAsI9B,GAtI8B30D,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAApB8xD,EAAoB7xD,QAApB6xD,EAAoB5xD,UAAAC,WAFnB,gBAED2xD,CAAqB,8GCjB5B,MAAOsB,EAMX92D,YAAYJ,GACVkB,KAAKqoB,mBAAqBvpB,EAAKupB,mBAC3B,IAAIuhC,IAA6B9qD,EAAKupB,oBACtC,KAEJroB,KAAKmoB,oBAAsB,IAAIyhC,IAC7B9qD,EAAKqpB,oBAET,4BCbF,MAAM8tC,EAA6Bh2D,KACjC,CACEooB,sBAAoBgO,KAASi4B,KAC7BnmC,oBAAqBmmC,KAEvB,6CCKK,IAAMt6C,EAAuB,MAA9B,MAAOA,UAA+B2iB,IAC1Cu/B,mBACE,OAAOl2D,KAAK62B,KACV,qBACAy3B,KACAlsD,KACApC,KAAKq3B,YAAY,iDAA8C,EAC/D14B,KAAK0X,GACS,MAAZA,EAAmB,IAAIuzC,IAA6BvzC,GAAY,OAAI,EAEtEhU,MAAmBrC,KAAKY,YAE5B,CAEAioB,+BACE,OAAO7oB,KAAK62B,KACV,eACAo/B,GACA7zD,KACApC,KAAKq3B,YAAY,gDAA6C,EAC9D14B,KAAK0X,GACS,MAAZA,EAAmB,IAAI2/C,EAAgC3/C,GAAY,OAAI,EAEzEhU,MAAmBrC,KAAKY,YAE5B,CAEA8nB,qBAAqBC,GACnB,OAAO3oB,KAAKg3B,KACV,gBAAgBrO,YAChB6lC,MACApsD,KACApC,KAAKq3B,YAAY,wDAAqD,EACtEh1B,MAAmBrC,KAAKY,YAE5B,CAACb,SAAAC,KAAA,4DAnCUgU,KAAsB/T,GAAtB+T,EAAsB,GAmChC,GAnCgCjU,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAtBoR,EAAsBnR,QAAtBmR,EAAsBlR,UAAAC,WAFrB,gBAEDiR,CAAuB,2LCV9B,MAAOmiD,EAIXj3D,YAAYk3D,GAHHp2D,KAAAquC,KAAiC,KACjCruC,KAAAkuC,SAAmC,KAGtCkoB,EAAe/nB,OACjBruC,KAAKquC,KAAO,IAAImd,IAAkB4K,EAAe/nB,OAG/C+nB,EAAeloB,WACjBluC,KAAKkuC,SAAWkoB,EAAeloB,SAASvvC,IACrC03D,GAAY,IAAInJ,IAAcmJ,IAGrC,ECfI,MAAOC,EAMXp3D,YAAY8rB,GALHhrB,KAAAuuC,yBAAyD,KACzDvuC,KAAA4uC,gCAAgE,KAChE5uC,KAAAivC,sBAAsD,KACtDjvC,KAAAsvC,2BAA2D,KAG9DtkB,EAAeujB,2BACjBvuC,KAAKuuC,yBACHvjB,EAAeujB,yBAAyB5vC,IACrC43D,GAAe,IAAIJ,EAAoBI,KAI1CvrC,EAAe4jB,kCACjB5uC,KAAK4uC,gCACH5jB,EAAe4jB,gCAAgCjwC,IAC5C43D,GAAe,IAAIJ,EAAoBI,KAI1CvrC,EAAeikB,wBACjBjvC,KAAKivC,sBAAwBjkB,EAAeikB,sBAAsBtwC,IAC/D43D,GAAe,IAAIJ,EAAoBI,KAIxCvrC,EAAeskB,6BACjBtvC,KAAKsvC,2BACHtkB,EAAeskB,2BAA2B3wC,IACvC43D,GAAe,IAAIJ,EAAoBI,IAGhD,kDChCI,MAAOC,EAMXt3D,YAAYu3D,GALHz2D,KAAA02D,aAAyC,KACzC12D,KAAA22D,SAAwB,KACxB32D,KAAA42D,WAA0B,KAC1B52D,KAAAquC,KAAiC,KAGpCooB,EAAmBC,eACrB12D,KAAK02D,aAAe,IAAInL,IACtBkL,EAAmBC,eAInBD,EAAmBE,WACrB32D,KAAK22D,SAAWF,EAAmBE,UAGjCF,EAAmBG,aACrB52D,KAAK42D,WAAaH,EAAmBG,YAGnCH,EAAmBpoB,OACrBruC,KAAKquC,KAAO,IAAImd,IAAkBiL,EAAmBpoB,MAEzD,2BCtBI,MAAOwoB,UACH5M,IASR/qD,YAAYJ,GACV6F,QALO3E,KAAA02D,aAAyC,KACzC12D,KAAA22D,SAAwB,KACxB32D,KAAA42D,WAA0B,KAKjC52D,KAAKquC,KAAO,IAAImd,IAAkB1sD,EAAKuvC,MACvCruC,KAAK82D,KAAO,IAAI1M,IAAYtrD,EAAKg4D,MAE7Bh4D,EAAK43D,eACP12D,KAAK02D,aAAe,IAAInL,IAAkBzsD,EAAK43D,eAG7C53D,EAAK63D,WACP32D,KAAK22D,SAAW73D,EAAK63D,UAGnB73D,EAAK83D,aACP52D,KAAK42D,WAAa93D,EAAK83D,WAE3B,iBC3BI,MAAOG,UAAyBhM,IAapC7rD,YAAY83D,GACVryD,MAAMqyD,GAPCh3D,KAAA8gB,YAAsC,KACtC9gB,KAAAi3D,YAA+C,KAC/Cj3D,KAAAk3D,iBAAqD,KACrDl3D,KAAAm3D,YAAgD,KAChDn3D,KAAAo3D,sBAA0D,KAKjEp3D,KAAKq3D,UAAYL,EAAYK,UAC7Br3D,KAAKs3D,SAAWN,EAAYM,SAC5Bt3D,KAAKu3D,QAAUP,EAAYO,QAC3Bv3D,KAAKysD,WAAauK,EAAYvK,WAC9BzsD,KAAKw3D,UAAYR,EAAYQ,UAC7Bx3D,KAAKy3D,OAAST,EAAYS,OAEtBT,EAAYC,cACdj3D,KAAKi3D,YAAcD,EAAYC,YAAYt4D,IACxCC,GAAS,IAAIi4D,EAAuBj4D,KAIrCo4D,EAAYl2C,cACd9gB,KAAK8gB,YAAck2C,EAAYl2C,YAAYniB,IACxCC,GAAS,IAAI+sD,IAAc/sD,KAI5Bo4D,EAAYE,mBACdl3D,KAAKk3D,iBAAmBF,EAAYE,iBAAiBv4D,IAClDC,GAAS,IAAI43D,EAAwB53D,KAItCo4D,EAAYG,cACdn3D,KAAKm3D,YAAcH,EAAYG,YAAYx4D,IACxCC,GAAS,IAAI43D,EAAwB53D,KAItCo4D,EAAYI,wBACdp3D,KAAKo3D,sBAAwBJ,EAAYI,sBAAsBz4D,IAC5DC,GAAS,IAAI43D,EAAwB53D,IAG5C,gGCrDF,MAAM84D,GAAqBz3D,KACzB,CACEouC,QAAMhY,KAASshC,MACfjB,gBAAcrgC,KAAS+9B,KACvBuC,YAAUtgC,KAASnB,KACnB0hC,cAAYvgC,KAASnB,MAEvB,qCCNF,MAAM0iC,GAAoB33D,KACxB,CACEouC,KAAMspB,KACNb,KAAMrD,IACNiD,gBAAcrgC,KAAS+9B,KACvBuC,YAAUtgC,KAASnB,KACnB0hC,cAAYvgC,KAASnB,MAEvB,oCCPF,MAAM2iC,GAAc53D,KAClB,CACEskD,IACAtkD,KAAO,CACLo3D,aAAWhhC,KAASp2B,MACpBq3D,YAAUjhC,KAASp2B,MACnBs3D,WAASlhC,KAASp2B,MAClBwsD,cAAYp2B,KAASp2B,MACrBu3D,aAAWnhC,KAASp2B,MACpBw3D,UAAQphC,KAASp2B,MACjByiB,aAAW2T,KAASp2B,MACpB6gB,eAAauV,KAASp2B,KAAQ63D,OAC9Bb,eAAa5gC,KAASp2B,KAAQ23D,KAC9BV,oBAAkB7gC,KAASp2B,KAAQy3D,KACnCP,eAAa9gC,KAASp2B,KAAQy3D,KAC9BN,yBAAuB/gC,KAASp2B,KAAQy3D,QAG5C,eCJK,IAAMntC,EAAe,MAAtB,MAAOA,WAAuBoM,IAHpCz3B,kCAImBc,KAAAigB,aAAYvf,OAAOwf,KAKpC63C,UAAUC,GACR,MAAM/J,EAAc,IAAI56B,IAAiB2kC,GAEzC,OAAOh4D,KAAK62B,KACV,iBACAw+B,MAAQ4C,KACRhK,GACA7rD,QACAzD,KAAK0X,GACS,MAAZA,EACIA,EAAS1X,IAAK4rC,IAAS,IAAIiiB,IAAsBjiB,KACjD,OAAI,EAEVloC,MAAmBrC,KAAKY,YAE5B,CAEAivD,SAASD,GACP,MAAM3B,EAAc,IAAI56B,IACtBu8B,EACI,CACEA,UAEF,IAGN,OAAO5vD,KAAK62B,KAAkB,OAAQ0tB,IAAM0J,GAAa7rD,QACvDsvB,KAAYzsB,GACNA,aAAiB4sB,KAA4C,MAAjB5sB,EAAM2oB,QACpD5tB,KAAKigB,UAAUi4C,cAAa,GAExBjzD,EAAMA,MAAM+lB,gBACdhrB,KAAKigB,UAAUk4C,kBACb,IAAI7B,EAAoBrxD,EAAMA,MAAM+lB,iBAIpC/lB,EAAMA,MAAMS,SACd1F,KAAKigB,UAAUm4C,yBAAyBnzD,EAAMA,MAAMS,UAAO,EAGtD6xB,MAAG,QAGZv3B,KAAK2M,oBAAoB3H,YAAYC,EAAO,CAC1CQ,KAAM,kDACP,EAEM8xB,MAAG,SACX,EACD54B,KAAK0X,GACS,MAAZA,EAAmB,IAAIy0C,IAAiBz0C,GAAY,OAAI,EAE1DhU,MAAmBrC,KAAKY,YAE5B,CAEAy3D,gBAAgBzI,GACd,MAAM3B,EAAc,IAAI56B,IACtBu8B,EACI,CACEA,UAEF,IAGN,OAAO5vD,KAAK62B,KACV,eACAghC,GACA5J,GACA7rD,KACApC,KAAKq3B,YAAY,iDAA8C,EAC/D14B,KAAK0X,GACS,MAAZA,EAAmB,IAAI0gD,EAAiB1gD,GAAY,OAAI,EAE1DhU,MAAmBrC,KAAKY,YAE5B,CAEA03D,iBAAiBC,GACf,MAAMjlC,EAAS,IAAID,IAAiB,CAClCmlC,OAAQD,IAGV,OAAOv4D,KAAKg3B,KACV,oBACAyhC,IACA,KACAnlC,GACAlxB,KACApC,KAAKq3B,YAAY,sDAAmD,EACpEh1B,MAAmBrC,KAAKY,YAE5B,CAEA83D,kBAAkBH,GAChB,MAAMjlC,EAAS,IAAID,IAAiB,CAClCmlC,OAAQD,IAGV,OAAOv4D,KAAKg3B,KACV,qBACAyhC,IACA,KACAnlC,GACAlxB,KACApC,KAAKq3B,YAAY,sDAAmD,EACpEh1B,MAAmBrC,KAAKY,YAE5B,CAEM0rB,mBAAgB,IAAArrB,EAAAjB,KAAA,SAAAkB,KAAA,YACpB,IACE,OAAOD,EAAKoE,IAAa,gBAAiBmpD,KAC5C,OAASvpD,GACP,OAAOhE,EAAKywB,WACVzsB,EACA,gDAEJ,CAAC,EARmB,EAStB,CAAClF,SAAAC,KAAA,4DA9HUuqB,MAActqB,GAAdsqB,GAAc,GA8HxB,GA9HwBxqB,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAd2nB,GAAc1nB,QAAd0nB,GAAcznB,UAAAC,WAFb,gBAEDwnB,EAAe,8RCkD5B,MAAMsP,EAAqC,CACzC+2B,KAAM,GACNrvC,KAAM,GACNsvC,UAAW,GACXC,WAAY,GACZC,eAAgB,GAChBC,aAAc,GACdC,4BAA6B,GAC7BC,SAAU,GACVC,iBAAkB,GAClBC,yBAA0B,GAC1BC,gCAAiC,GACjCC,oBAAqB,GACrBC,kBAAmB,GACnBE,wBAAyB,GACzBC,uBAAwB,GACxBC,oBAAqB,GACrBC,gBAAiB,GACjBC,8BAA+B,GAC/BC,sCAAuC,GACvCG,4BAA6B,GAC7BF,8CAA+C,GAC/CC,iBAAkB,GAClBG,4BAA6B,GAC7BD,kBAAmB,GACnBV,4BAA6B,GAC7BY,sBAAuB,GACvBC,6BAA8B,GAC9BC,cAAe,GACfC,6CAA8C,GAC9CC,yCAA0C,GAC1CC,qBAAsB,GACtBC,+BAAgC,GAChClC,kBAAmB,CAAEC,WAAY,GAAIE,UAAW,GAAID,WAAY,IAChEiC,oCAAqC,GACrCC,8BAA+B,GAC/BC,wBAAyB,GACzBC,SAAU,GACVC,kBAAmB,GACnBC,kBAAmB,GACnB/vC,IAAK,KACL+qB,QAAS,KACTilB,iCAAkC,GAClCC,sCAAuC,GACvCC,6CAA8C,GAC9CC,sBAAuBre,KACvBse,iBAAkB,IAMb,IAAM3vC,EAAe,MAAtB,MAAOA,EAkNXxkB,cAjNSc,KAAA4wD,QAAO92B,OAAS,IAAM95B,KAAK+kB,QAAQ6rC,MACnC5wD,KAAAuhB,QAAOuY,OAAS,IAAM95B,KAAK+kB,QAAQxD,KAAM,CAAEioB,MAAOC,OAClDzpC,KAAAijB,OAAM6W,OAAS,IAAM95B,KAAK+kB,QAAQ9B,IAAK,CAAEumB,MAAOC,OAChDzpC,KAAAguC,WAAUlU,OAAS,IAAM95B,KAAK+kB,QAAQipB,QAAS,CAAExE,MAAOC,OAExDzpC,KAAA6wD,aAAY/2B,OAAS,IAAM95B,KAAK+kB,QAAQ8rC,UAAW,CAC1DrnB,MAAOC,OAGAzpC,KAAA8wD,cAAah3B,OAAS,IAAM95B,KAAK+kB,QAAQ+rC,WAAY,CAC5DtnB,MAAOC,OAGAzpC,KAAA+wD,kBAAiBj3B,OAAS,IAAM95B,KAAK+kB,QAAQgsC,eAAgB,CACpEvnB,MAAOC,OAGAzpC,KAAAgxD,gBAAel3B,OAAS,IAAM95B,KAAK+kB,QAAQisC,aAAc,CAChExnB,MAAOC,OAGAzpC,KAAA6yD,2BAA0B/4B,OACjC,IAAM95B,KAAK+kB,QAAQ8tC,wBACnB,CAAErpB,MAAOC,OAGFzpC,KAAAixD,+BAA8Bn3B,OACrC,IAAM95B,KAAK+kB,QAAQksC,4BACnB,CAAEznB,MAAOC,OAGFzpC,KAAAkxD,YAAWp3B,OAAS,IAAM95B,KAAK+kB,QAAQmsC,SAAU,CACxD1nB,MAAOC,OAGAzpC,KAAAmxD,oBAAmBr3B,OAAS,IAAM95B,KAAK+kB,QAAQosC,iBAAkB,CACxE3nB,MAAOC,OAGAzpC,KAAAoxD,4BAA2Bt3B,OAClC,IAAM95B,KAAK+kB,QAAQqsC,yBACnB,CAAE5nB,MAAOC,OAGFzpC,KAAAqxD,mCAAkCv3B,OACzC,IAAM95B,KAAK+kB,QAAQssC,gCACnB,CAAE7nB,MAAOC,OAGFzpC,KAAAsxD,uBAAsBx3B,OAC7B,IAAM95B,KAAK+kB,QAAQusC,oBACnB,CAAE9nB,MAAOC,OAGFzpC,KAAAuxD,qBAAoBz3B,OAAS,IAAM95B,KAAK+kB,QAAQwsC,kBAAmB,CAC1E/nB,MAAOC,OAGAzpC,KAAAyxD,2BAA0B33B,OACjC,IAAM95B,KAAK+kB,QAAQ0sC,wBACnB,CAAEjoB,MAAOC,OAGFzpC,KAAA0xD,0BAAyB53B,OAChC,IAAM95B,KAAK+kB,QAAQ2sC,uBACnB,CAAEloB,MAAOC,OAGFzpC,KAAA2xD,uBAAsB73B,OAC7B,IAAM95B,KAAK+kB,QAAQ4sC,oBACnB,CAAEnoB,MAAOC,OAGFzpC,KAAA4xD,mBAAkB93B,OAAS,IAAM95B,KAAK+kB,QAAQ6sC,gBAAiB,CACtEpoB,MAAOC,OAGAzpC,KAAA6xD,iCAAgC/3B,OACvC,IAAM95B,KAAK+kB,QAAQ8sC,8BACnB,CAAEroB,MAAOC,OAGFzpC,KAAA8xD,yCAAwCh4B,OAC/C,IAAM95B,KAAK+kB,QAAQ+sC,sCACnB,CAAEtoB,MAAOC,OAGFzpC,KAAA+xD,iDAAgDj4B,OACvD,IAAM95B,KAAK+kB,QAAQgtC,8CACnB,CAAEvoB,MAAOC,OAGFzpC,KAAAgyD,oBAAmBl4B,OAAS,IAAM95B,KAAK+kB,QAAQitC,iBAAkB,CACxExoB,MAAOC,OAGAzpC,KAAAiyD,+BAA8Bn4B,OACrC,IAAM95B,KAAK+kB,QAAQktC,4BACnB,CAAEzoB,MAAOC,OAGFzpC,KAAAmyD,+BAA8Br4B,OACrC,IAAM95B,KAAK+kB,QAAQotC,4BACnB,CAAE3oB,MAAOC,OAGFzpC,KAAAkyD,qBAAoBp4B,OAAS,IAAM95B,KAAK+kB,QAAQmtC,kBAAmB,CAC1E1oB,MAAOC,OAGAzpC,KAAAwxD,+BAA8B13B,OACrC,IAAM95B,KAAK+kB,QAAQysC,4BACnB,CAAEhoB,MAAOC,OAGFzpC,KAAAoyD,yBAAwBt4B,OAC/B,IAAM95B,KAAK+kB,QAAQqtC,sBACnB,CAAE5oB,MAAOC,OAGFzpC,KAAAqyD,gCAA+Bv4B,OACtC,IAAM95B,KAAK+kB,QAAQstC,6BACnB,CAAE7oB,MAAOC,OAGFzpC,KAAAsyD,iBAAgBx4B,OAAS,IAAM95B,KAAK+kB,QAAQutC,cAAe,CAClE9oB,MAAOC,OAGAzpC,KAAAuyD,gDAA+Cz4B,OACtD,IAAM95B,KAAK+kB,QAAQwtC,6CACnB,CAAE/oB,MAAOC,OAGFzpC,KAAAwyD,4CAA2C14B,OAClD,IAAM95B,KAAK+kB,QAAQytC,yCACnB,CAAEhpB,MAAOC,OAGFzpC,KAAAyyD,wBAAuB34B,OAC9B,IAAM95B,KAAK+kB,QAAQ0tC,qBACnB,CAAEjpB,MAAOC,OAGFzpC,KAAA0yD,kCAAiC54B,OACxC,IAAM95B,KAAK+kB,QAAQ2tC,+BACnB,CAAElpB,MAAOC,OAGFzpC,KAAAwwD,qBAAoB12B,OAAS,IAAM95B,KAAK+kB,QAAQyrC,kBAAmB,CAC1EhnB,MAAOC,OAGAzpC,KAAA2yD,uCAAsC74B,OAC7C,IAAM95B,KAAK+kB,QAAQ4tC,oCACnB,CAAEnpB,MAAOC,OAGFzpC,KAAA4yD,iCAAgC94B,OACvC,IAAM95B,KAAK+kB,QAAQ6tC,8BACnB,CAAEppB,MAAOC,OAGFzpC,KAAA8yD,YAAWh5B,OAAS,IAAM95B,KAAK+kB,QAAQ+tC,SAAU,CACxDtpB,MAAOC,OAGAzpC,KAAA+yD,qBAAoBj5B,OAAS,IAAM95B,KAAK+kB,QAAQguC,kBAAmB,CAC1EvpB,MAAOC,OAGAzpC,KAAAgzD,qBAAoBl5B,OAAS,IAAM95B,KAAK+kB,QAAQiuC,kBAAmB,CAC1ExpB,MAAOC,OAGAzpC,KAAA24D,uBAAsB7+B,OAC7B,IACE95B,KAAKgzD,oBAAoB7uC,KACtBvlB,GAA6B,wBAApBA,EAAKmtD,aACd7tD,OAAS,IAGP8B,KAAAizD,oCAAmCn5B,OAC1C,IAAM95B,KAAK+kB,QAAQkuC,iCACnB,CAAEzpB,MAAOC,OAGFzpC,KAAAkzD,yCAAwCp5B,OAC/C,IAAM95B,KAAK+kB,QAAQmuC,sCACnB,CAAE1pB,MAAOC,OAGFzpC,KAAAmzD,gDAA+Cr5B,OACtD,IAAM95B,KAAK+kB,QAAQouC,6CACnB,CAAE3pB,MAAOC,OAGFzpC,KAAAozD,yBAAwBt5B,OAC/B,IAAM95B,KAAK+kB,QAAQquC,sBACnB,CAAE5pB,MAAOC,OAGFzpC,KAAAqzD,oBAAmBv5B,OAAS,IAAM95B,KAAK+kB,QAAQsuC,iBAAkB,CACxE7pB,MAAOC,OAGQzpC,KAAA+kB,SAAQtR,OAAO,IAAKomB,IACpB75B,KAAA44D,wBAAuBl4D,OAAOg0D,KAG7CmE,IAAat5D,KACXS,KAAK+kB,MACL,aACA+zC,IAAgB1wD,aAChBpI,KAAK+4D,iBAET,CAEMC,YAAS,IAAA/3D,EAAAjB,KAAA,SAAAkB,KAAA,YACb,MAAMmV,QAAiBpV,EAAK23D,qBAAqBhE,UAE7C3zD,EAAK2vD,SAAWv6C,IAIpBpV,EAAK8jB,MAAMxP,OAAQwP,QACdA,EACH6rC,KAAMv6C,GAAY,MAGpBpV,EAAKg4D,kBAAkB,EAZV,EAaf,CAEMC,YAAS,IAAAz2D,EAAAzC,KAAA,SAAAkB,KAAA,YACb,MAAMmV,QAAiB5T,EAAKm2D,qBAAqB/D,UAE5Cx+C,GAAUk9C,eAIf9wD,EAAKsiB,MAAMxP,OAAQwP,QACdA,EACHxD,KAAMlL,EAASk9C,eAAiB,KAC9B,EAVS,EAWf,CAEM4F,WAAQ,IAAArE,EAAA90D,KAAA,SAAAkB,KAAA,YACZ,MAAMmV,QAAiBy+C,EAAK8D,qBAAqB7D,SAE5C1+C,GAILy+C,EAAK/vC,MAAMxP,OAAQwP,QACdA,EACH9B,IAAK5M,GAAY,OACf,EAVQ,EAWd,CAEM65C,mBAAgB,IAAA8E,EAAAh1D,KAAA,SAAAkB,KAAA,YACpB,MAAMmV,QAAiB2+C,EAAK4D,qBAAqB3D,iBAE5C5+C,GAIL2+C,EAAKjwC,MAAMxP,OAAQwP,QACdA,EACHipB,QAAS33B,GAAY,OACnB,EAVgB,EAWtB,CAGM4iD,kBAAe,IAAA/D,EAAAl1D,KAAA,SAAAkB,KAAA,YACnB,MAAMmV,QAAiB6+C,EAAK0D,qBAAqBjE,cAE5Ct+C,GAKL6+C,EAAKnwC,MAAMxP,OAAQwP,QACdA,EACH6rC,KAAMv6C,EAASu6C,KACfC,UAAWx6C,EAASw6C,UACpBC,WAAYz6C,EAASy6C,WACrBC,eAAgB16C,EAAS06C,eACzBC,aAAc36C,EAAS26C,aACvBC,4BAA6B56C,EAAS46C,4BACtCC,SAAU76C,EAAS66C,SACnBC,iBAAkB96C,EAAS86C,iBAC3BC,yBAA0B/6C,EAAS+6C,yBACnCC,gCAAiCh7C,EAASg7C,gCAC1CC,oBAAqBj7C,EAASi7C,oBAC9BC,kBAAmBl7C,EAASk7C,kBAC5BE,wBAAyBp7C,EAASo7C,wBAClCC,uBAAwBr7C,EAASq7C,uBACjCC,oBAAqBt7C,EAASs7C,oBAC9BC,gBAAiBv7C,EAASu7C,gBAC1BC,8BAA+Bx7C,EAASw7C,8BACxCC,sCACEz7C,EAASy7C,sCACXG,4BAA6B57C,EAAS47C,4BACtCF,8CACE17C,EAAS07C,8CACXC,iBAAkB37C,EAAS27C,iBAC3BG,4BAA6B97C,EAAS87C,4BACtCD,kBAAmB77C,EAAS67C,kBAC5BV,4BAA6Bn7C,EAASm7C,4BACtCY,sBAAuB/7C,EAAS+7C,sBAChCC,6BAA8Bh8C,EAASg8C,6BACvCC,cAAej8C,EAASi8C,cACxBC,6CACEl8C,EAASk8C,6CACXC,yCACEn8C,EAASm8C,yCACXC,qBAAsBp8C,EAASo8C,qBAC/BC,+BAAgCr8C,EAASq8C,+BACzClC,kBAAmBn6C,EAASm6C,kBAC5BmC,oCACEt8C,EAASs8C,oCACXC,8BAA+Bv8C,EAASu8C,8BACxCC,wBAAyBx8C,EAASw8C,wBAClCC,SAAUz8C,EAASy8C,SACnBC,kBAAmB18C,EAAS08C,kBAC5BC,kBAAmB38C,EAAS28C,kBAC5BC,iCACE58C,EAAS48C,iCACXC,sCACE78C,EAAS68C,sCACXC,6CACE98C,EAAS88C,6CACXC,sBAAuB/8C,EAAS+8C,sBAChCC,iBAAkBh9C,EAASg9C,mBACzB,EA7De,EA8DrB,CAGQ0F,iBAAiBj6D,GACvB,MAAO,CACL8xD,KAAM9xD,GAAM8xD,MAAQ,GACpBrvC,KAAMziB,GAAMyiB,KAAK5iB,IAAKC,GAAS,IAAI+tD,IAAsB/tD,KAAU,GACnEiyD,UAAW/xD,EAAK+xD,WAAWlyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GACvEkyD,WACEhyD,EAAKgyD,YAAYnyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GAC/DmyD,eACEjyD,EAAKiyD,gBAAgBpyD,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GACnEoyD,aACElyD,EAAKkyD,cAAcryD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAC7DqyD,4BACEnyD,EAAKmyD,6BAA6BtyD,IAC/BC,GAAS,IAAIkuD,IAAgCluD,KAC3C,GACPsyD,SAAUpyD,EAAKoyD,UAAUvyD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GACjEuyD,iBACEryD,EAAKqyD,kBAAkBxyD,IAAKC,GAAS,IAAIwtD,IAAqBxtD,KAC9D,GACFwyD,yBACEtyD,EAAKsyD,0BAA0BzyD,IAC5BC,GAAS,IAAI0sD,IAAyB1sD,KACpC,GACPyyD,gCACEvyD,EAAKuyD,iCAAiC1yD,IACnCC,GAAS,IAAI0sD,IAAyB1sD,KACpC,GACP0yD,oBACExyD,EAAKwyD,qBAAqB3yD,IACvBC,GAAS,IAAI0rD,IAAoB1rD,KAC/B,GACP2yD,kBACEzyD,EAAKyyD,mBAAmB5yD,IACrBC,GAAS,IAAIiuD,IAAsBjuD,KACjC,GACP6yD,wBACE3yD,EAAK2yD,yBAAyB9yD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAC5D,GACF8yD,uBACE5yD,EAAK4yD,wBAAwB/yD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GACvE+yD,oBACE7yD,EAAK6yD,qBAAqBhzD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GACpEgzD,gBACE9yD,EAAK8yD,iBAAiBjzD,IAAKC,GAAS,IAAI2sD,IAAkB3sD,KAAU,GACtEizD,8BACE/yD,EAAK+yD,+BAA+BlzD,IACjCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACPkzD,sCACEhzD,EAAKgzD,uCAAuCnzD,IACzCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPqzD,4BACEnzD,EAAKmzD,6BAA6BtzD,IAC/BC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPmzD,8CACEjzD,EAAKizD,+CAA+CpzD,IACjDC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPozD,iBACElzD,EAAKkzD,kBAAkBrzD,IAAKC,GAAS,IAAI2sD,IAAkB3sD,KAAU,GACvEuzD,4BACErzD,EAAKqzD,6BAA6BxzD,IAC/BC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPszD,kBACEpzD,EAAKozD,mBAAmBvzD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GAClE4yD,4BACE1yD,EAAK0yD,6BAA6B7yD,IAC/BC,GAAS,IAAIytD,IAAgCztD,KAC3C,GACPwzD,sBACEtzD,EAAKszD,uBAAuBzzD,IACzBC,GAAS,IAAIyrD,IAA0BzrD,KACrC,GACPyzD,6BACEvzD,EAAKuzD,8BAA8B1zD,IAChCC,GAAS,IAAIurD,IAAgCvrD,KAC3C,GACP0zD,cACExzD,EAAKwzD,eAAe3zD,IAAKC,GAAS,IAAIiuD,IAAsBjuD,KAC5D,GACF2zD,6CACEzzD,EAAKyzD,8CAA8C5zD,IAChDC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACP4zD,yCACE1zD,EAAK0zD,0CAA0C7zD,IAC5CC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACP6zD,qBACE3zD,EAAK2zD,sBAAsB9zD,IAAKC,GAAS,IAAIwrD,IAAYxrD,KAAU,GACrE8zD,+BACE5zD,EAAK4zD,gCAAgC/zD,IAClCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACP4xD,kBAAmB1xD,EAAK0xD,mBAAqB,CAC3CC,WAAY,GACZE,UAAW,GACXD,WAAY,IAEdiC,oCACE7zD,EAAK6zD,qCAAqCh0D,IACvCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACPg0D,8BACE9zD,EAAK8zD,+BAA+Bj0D,IACjCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPi0D,wBACE/zD,EAAK+zD,yBAAyBl0D,IAC3BC,GAAS,IAAIitD,IAAuBjtD,KAClC,GACPk0D,SAAUh0D,EAAKg0D,UAAUn0D,IAAKC,GAAS,IAAIgtD,IAAgBhtD,KAAU,GACrEm0D,kBACEj0D,EAAKi0D,mBAAmBp0D,IACrBC,GAAS,IAAIusD,IAA8BvsD,KACzC,GACPo0D,kBACEl0D,EAAKk0D,mBAAmBr0D,IACrBC,GAAS,IAAIktD,IAAuBltD,KAClC,GACPqkB,IAAKnkB,EAAKmkB,IAAM,IAAI0pC,IAAsB7tD,EAAKmkB,KAAO,KACtD+qB,QAASlvC,EAAKkvC,QAAU,IAAI2e,IAAsB7tD,EAAKkvC,SAAW,KAClEilB,iCACEn0D,EAAKm0D,kCAAkCt0D,IACpCC,GAAS,IAAIwrD,IAAYxrD,KACvB,GACPs0D,sCACEp0D,EAAKo0D,uCAAuCv0D,IACzCC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GACPu0D,6CACEr0D,EAAKq0D,8CAA8Cx0D,IAChDC,GAAS,IAAI2sD,IAAkB3sD,KAC7B,GAEPw0D,sBAAuBt0D,EAAKs0D,sBAC5BC,iBAAkBv0D,EAAKu0D,iBAE3B,CAACtzD,SAAAC,KAAA,mBAAAC,iBAheUyjB,EAAe,EAAA3jB,SAAAC,KAAA,WAAAmrC,EAAAvoC,IAAA,OAAf8gB,EAAe7gB,QAAf6gB,EAAe5gB,UAAAC,WAFd,gBAED2gB,CAAe,6KChHrB,IAAM01C,EAAsB,MAA7B,MAAOA,UAA8BziC,IACzC0iC,mBACEtnC,GAEA,OAAO/xB,KAAKg3B,KACV,kBACAyhC,IACA1mC,GACA3vB,KACApC,KAAKq3B,YAAY,wDAAqD,EACtE14B,KAAK0X,GACS,MAAZA,EAAmB,IAAIy0C,IAAiBz0C,GAAY,OAAI,EAE1DhU,MAAmBrC,KAAKY,YAE5B,CAACb,SAAAC,KAAA,4DAfUo5D,KAAqBn5D,GAArBm5D,EAAqB,GAe/B,GAf+Br5D,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAArBw2D,EAAqBv2D,QAArBu2D,EAAqBt2D,UAAAC,WAFpB,gBAEDq2D,CAAsB,+BCqFnC,MAAMv/B,EAAsC,CAC1CvS,YAAa,IAMR,IAAMI,EAAgB,MAAvB,MAAOA,EAq4BXxoB,cAp4BAc,KAAAsnB,eAAcwS,OAAS,IAAM95B,KAAK+kB,QAAQuC,YAAa,CAAEkiB,MAAOC,OAEhEzpC,KAAAunB,wBAAuBuS,OAAS,IAKJ,UAJV95B,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYC,uBAGjCzoD,OAGlB8B,KAAAwnB,iCAAgCsS,OAAS,IAMb,UALV95B,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYE,gCAGnB1oD,OAGlB8B,KAAAs5D,8BAA6Bx/B,OAAS,IAKV,UAJV95B,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYG,6BAGjC3oD,OAGlB8B,KAAAu5D,+BAA8Bz/B,OAAS,IAMX,UALV95B,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYI,8BAGnB5oD,OAGlB8B,KAAAgsC,cAAalS,OAAS,IACJ95B,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYM,aAGjC9oD,OAAS,MAG3B8B,KAAAw5D,iCAAgC1/B,OAAS,KACvC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYlR,+BAGnC,OACEikB,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBo4C,OAIRt2C,KAAA05D,6CAA4C5/B,OAAS,KACnD,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAYhH,2CAGhB,OACE+Z,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB0hD,OAIR5/C,KAAA25D,uDAAsD7/B,OAAS,KAC7D,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAY7G,qDAGhB,OACE4Z,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBwiD,OAIR1gD,KAAA45D,wDAAuD9/B,OAAS,KAC9D,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAY/F,sDAGhB,OACE8Y,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBwjD,OAIR1hD,KAAA65D,wDAAuD//B,OAAS,KAC9D,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAY/E,sDAGhB,OACE8X,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBikD,OAIRniD,KAAA85D,qCAAoChgC,OAAS,KAC3C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYtE,mCAGnC,OACEqX,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBokD,OAIRtiD,KAAA+5D,oBAAmBjgC,OAAS,KAC1B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYrP,kBAGjD,OACEoiB,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAAS05C,OAIjD53C,KAAAg6D,6BAA4BlgC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYlK,2BAGjD,OACEid,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBw+C,OAIR18C,KAAAi6D,mBAAkBngC,OAAS,KACzB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYnQ,iBAOjD,OAJgDkjB,GAASv7D,MACrDw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBk5C,MAES5hC,OACV0kD,GAA8B,eAAXA,EAAuB,GAI/Cl6D,KAAAm6D,yBAAwBrgC,OAAS,KAC/B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY7K,uBAGjD,OACE4d,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBg+C,OAIRl8C,KAAAo6D,6BAA4BtgC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYvL,2BAGjD,OACEse,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB09C,OAIR57C,KAAAq6D,4BAA2BvgC,OAAS,KAClC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY/J,0BAGjD,OACE8c,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB2+C,OAIR78C,KAAAs6D,qCAAoCxgC,OAAS,KAC3C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY5J,mCAGnC,OACE2c,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB8+C,OAIRh9C,KAAAu6D,wBAAuBzgC,OAAS,KAC9B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY5J,mCAGnC,OACE2c,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBi/C,OAIRn9C,KAAAw6D,6BAA4B1gC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYtJ,2BAGjD,OACEqc,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB2/C,OAIR79C,KAAAy6D,+BAA8B3gC,OAAS,KACrC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY5I,6BAGnC,OACE2b,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB6/C,OAIR/9C,KAAA06D,6BAA4B5gC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY1I,2BAGjD,OACEyb,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB+/C,OAIRj+C,KAAA26D,4BAA2B7gC,OAAS,KAClC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYxI,0BAGjD,OACEub,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBkgD,OAIRp+C,KAAA46D,gCAA+B9gC,OAAS,KACtC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYrI,8BAGnC,OACEob,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBsgD,OAIRx+C,KAAA66D,+BAA8B/gC,OAAS,KACrC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYjI,6BAGnC,OACEgb,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBwgD,OAIR1+C,KAAA86D,2BAA0BhhC,OAAS,KACjC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY/H,yBAGjD,OACE8a,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB0gD,OAIR5+C,KAAA+6D,wBAAuBjhC,OAAS,KAC9B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY3H,sBAGjD,OACE0a,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBghD,OAIRl/C,KAAAg7D,4BAA2BlhC,OAAS,KAClC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYvH,0BAGjD,OACEsa,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBmhD,OAIRr/C,KAAAi7D,kBAAiBnhC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYpH,gBAGjD,OACEma,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASuhD,OAIjDz/C,KAAAk7D,0BAAyBphC,OAAS,KAChC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYO,wBAGjD,OAAOwS,GAASv7D,MAASw2B,KAAKC,MAAM8kC,EAAQv7D,OAAsB,OAGpE8B,KAAAm7D,kBAAiBrhC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYc,gBAGjD,OACEiS,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAo7D,cAAathC,OAAS,KACpB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY4B,YAGjD,OACEmR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAq7D,mBAAkBvhC,OAAS,KACzB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYe,iBAGjD,OACEgS,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAs7D,kBAAiBxhC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYgB,gBAGjD,OACE+R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAu7D,uCAAsCzhC,OAAS,KAC7C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYiB,qCAGnC,OACE8R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAw7D,6BAA4B1hC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY8C,2BAGjD,OACEiQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAy7D,yBAAwB3hC,OAAS,KAC/B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYmB,uBAGjD,OACE4R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA07D,uBAAsB5hC,OAAS,KAC7B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYoB,qBAGjD,OACE2R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA27D,kBAAiB7hC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY8B,gBAGjD,OACEiR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA47D,2BAA0B9hC,OAAS,KACjC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY+B,yBAGjD,OACEgR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA67D,sBAAqB/hC,OAAS,KAC5B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYgC,oBAGjD,OACE+Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA87D,mBAAkBhiC,OAAS,KACzB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYiC,iBAGjD,OACE8Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA+7D,kBAAiBjiC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY6B,gBAGjD,OACEkR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAg8D,kBAAiBliC,OAAS,KACxB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYuC,gBAGjD,OACEwQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAi8D,sBAAqBniC,OAAS,KAC5B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYkC,oBAGjD,OACE6Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAk8D,qBAAoBpiC,OAAS,KAC3B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYmC,mBAGjD,OACE4Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAm8D,2BAA0BriC,OAAS,KACjC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYkB,yBAGjD,OACE6R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAo8D,2BAA0BtiC,OAAS,KACjC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYqB,yBAGjD,OACE0R,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAq8D,2BAA0BviC,OAAS,KACjC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYsB,yBAGjD,OACEyR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAs8D,iCAAgCxiC,OAAS,KACvC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY2B,+BAGnC,OACEoR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAu8D,6BAA4BziC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYuB,2BAGjD,OACEwR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAw8D,wBAAuB1iC,OAAS,KAC9B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYwB,sBAGjD,OACEuR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAy8D,mBAAkB3iC,OAAS,KACzB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYyB,iBAGjD,OACEsR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA08D,6BAA4B5iC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY0B,2BAGjD,OACEqR,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA28D,sBAAqB7iC,OAAS,KAC5B,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYoC,oBAGjD,OACE2Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA48D,0BAAyB9iC,OAAS,KAChC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYqC,wBAGjD,OACE0Q,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA68D,gBAAe/iC,OAAS,KACtB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYsC,cAGjD,OACEyQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAkpD,6BAA4BpvB,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYwC,2BAGjD,OACEuQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAAmpD,+BAA8BrvB,OAAS,KACrC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYyC,6BAGnC,OACEsQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA88D,oBAAmBhjC,OAAS,IACT95B,KAAKsnB,eAAe9R,OAAQk3C,GAC3CA,EAAWzuD,KAAKw2B,SAASiyB,IAAYW,iBAGtB1oD,IAAK86D,GACpBA,EAAQv7D,MACJ,CACEA,MAAOw2B,KAAKC,MAAM8kC,EAAQv7D,OAC1BD,IAAKw7D,EAAQx7D,KAAO,IAEtB,OAIR+B,KAAA+8D,oBAAmBjjC,OAAS,IACT95B,KAAKsnB,eAAe9R,OAAQk3C,GAC3CA,EAAWzuD,KAAKw2B,SAASiyB,IAAYY,iBAGtB3oD,IAAK86D,GACpBA,EAAQv7D,MACJ,CACEA,MAAOw2B,KAAKC,MAAM8kC,EAAQv7D,OAC1BD,IAAKw7D,EAAQx7D,KAAO,IAEtB,OAIR+B,KAAAg9D,yBAAwBljC,OAAS,IACd95B,KAAKsnB,eAAe9R,OAAQk3C,GAC3CA,EAAWzuD,KAAKw2B,SAASiyB,IAAYa,sBAGtB5oD,IAAK86D,GACpBA,EAAQv7D,MACJ,CACEA,MAAOw2B,KAAKC,MAAM8kC,EAAQv7D,OAC1BD,IAAKw7D,EAAQx7D,KAAO,IAEtB,OAIR+B,KAAAi9D,6BAA4BnjC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY7O,2BASjD,OALE4hB,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBw6C,MAGQ/5C,IAAKT,GACK,kBAArBA,EAAuC,OAASA,EAAK,GAI1D8B,KAAAk9D,6BAA4BpjC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY/N,2BAGjD,OACE8gB,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBm7C,OAIRr5C,KAAAm9D,6BAA4BrjC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYpN,2BAGjD,OACEmgB,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBu7C,OAIRz5C,KAAAuiD,+BAA8BzoB,OAAS,KACrC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYnE,6BAGnC,OACEkX,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB4kD,OAIR9iD,KAAAknD,iCAAgCptB,OAAS,KACvC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYQ,+BAGnC,OACEuS,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB6kD,OAIR/iD,KAAAo9D,+BAA8BtjC,OAAS,KACrC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYhN,6BAGnC,OACE+f,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBg8C,OAIRl6C,KAAAq9D,yCAAwCvjC,OAAS,KAC/C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYvM,uCAGnC,OACEsf,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBg9C,OAIRl7C,KAAAs9D,6BAA4BxjC,OAAS,KACnC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAYvK,2BAGjD,OACEsd,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBq+C,OAIRv8C,KAAAu9D,gBAAezjC,OAAS,KACtB,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY7H,cAEjD,OACE4a,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAAS4gD,OAIjD9+C,KAAAw9D,yCAAwC1jC,OAAS,KAC/C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY1D,uCAGnC,OACEyW,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBulD,OAIRzjD,KAAAy9D,4CAA2C3jC,OAAS,KAClD,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAYhD,0CAGnC,OACE+V,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBylD,OAIR3jD,KAAA09D,sDAAqD5jC,OAAS,KAC5D,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAYS,qDAGhB,OACEsS,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB2lD,OAIR7jD,KAAA29D,yDAAwD7jC,OAAS,KAC/D,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MACXyoD,IAAY5C,uDAGhB,OACE2V,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnBomD,OAIRtkD,KAAA49D,uCAAsC9jC,OAAS,KAC7C,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY0C,qCAGnC,OACEqQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIjDxlD,KAAA69D,8BAA6B/jC,OAAS,KACpC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GAAeA,EAAWzuD,MAAQyoD,IAAY2C,4BAGjD,OACEoQ,GAASv7D,MACLw2B,KAAKC,MAAM8kC,EAAQv7D,OACnB,CACEiY,QAAS,QACTC,kBAAkB,KAK5BpW,KAAA89D,kCAAiChkC,OAAS,KACxC,MAAM2/B,EAAUz5D,KAAKsnB,eAAenD,KACjCuoC,GACCA,EAAWzuD,MAAQyoD,IAAY6C,gCAGnC,OACEkQ,GAASv7D,MAAQw2B,KAAKC,MAAM8kC,EAAQv7D,OAASsnD,OAIzCxlD,KAAA+kB,SAAQtR,OAAO,IAAKomB,IACX75B,KAAA+9D,yBAAwBr9D,OAAO04D,GAC/Bp5D,KAAAigB,aAAYvf,OAAOwf,KACnBlgB,KAAAY,cAAaF,OAAOG,OAGnCg4D,IAAat5D,KAAKS,KAAK+kB,MAAO,cAAe+zC,IAAgB1wD,cAEzDoc,OAAOw5C,WAAW,sBAAsBC,SAC1Cj+D,KAAKk+D,iBACH,IAAIjT,IAAgB,CAClBhtD,IAAKyoD,IAAYC,qBACjBzoD,MAAO,YACP,EAINqW,OACE,KACE,MAAMsM,EAAU7gB,KAAKigB,UAAUY,UAE1BA,GAIL7gB,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACHuC,YAAazG,EAAQyG,aAAe,KACpC,EAEJ,CAAE7S,mBAAmB,GAEzB,CAEAkT,mBACE,MAAM+kC,EAAa,IAAIzB,IAAgB,CACrChtD,IAAKyoD,IAAYC,qBACjBzoD,MAAO8B,KAAKunB,uBAAyB,QAAU,SAGjDvnB,KAAKk+D,iBAAiBxR,GAEtB1sD,KAAK+9D,sBACF1E,mBAAmB3M,GACnBtqD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,OAGf,CAEAslB,4BACE,MAAM8kC,EAAa,IAAIzB,IAAgB,CACrChtD,IAAKyoD,IAAYE,8BACjB1oD,MAAO8B,KAAKwnB,gCAAkC,QAAU,SAG1DxnB,KAAKk+D,iBAAiBxR,GAEtB1sD,KAAK+9D,sBACF1E,mBAAmB3M,GACnBtqD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,OAGf,CAEA67D,yBACE,MAAMzR,EAAa,IAAIzB,IAAgB,CACrChtD,IAAKyoD,IAAYG,2BACjB3oD,MAAO8B,KAAKs5D,6BAA+B,QAAU,SAGvDt5D,KAAKk+D,iBAAiBxR,GAEtB1sD,KAAK+9D,sBACF1E,mBAAmB3M,GACnBtqD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,OAGf,CAEA87D,0BACE,MAAM1R,EAAa,IAAIzB,IAAgB,CACrChtD,IAAKyoD,IAAYI,4BACjB5oD,MAAO8B,KAAKu5D,8BAAgC,QAAU,SAGxDv5D,KAAKk+D,iBAAiBxR,GAEtB1sD,KAAK+9D,sBACF1E,mBAAmB3M,GACnBtqD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAU,OAGf,CAEA+7D,kBAAkB3R,EAA6BtyB,GAC7Cp6B,KAAKk+D,iBAAiBxR,GAEtB1sD,KAAK+9D,sBACF1E,mBAAmB3M,GACnBtqD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAW+T,IACLA,GAIL+jB,KAAU,EAEhB,CAEQ8jC,iBAAiBxR,GACvB1sD,KAAK+kB,MAAMxP,OAAQwP,IACjB,MAAMmoB,EAAQnoB,EAAMuC,YAAYg3C,UAC7B1/D,GAASA,EAAKX,MAAQyuD,EAAWzuD,KAGpC,OAAc,IAAVivC,EACK,IACFnoB,EACHuC,YAAa,IACRvC,EAAMuC,YAAYwH,MAAM,EAAGoe,GAC9Bwf,KACG3nC,EAAMuC,YAAYwH,MAAMoe,EAAQ,KAKlC,IACFnoB,EACHuC,YAAa,IAAIvC,EAAMuC,YAAaolC,KAG1C,CAAC3sD,SAAAC,KAAA,mBAAAC,iBAvgCUynB,EAAgB,EAAA3nB,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAhB8kB,EAAgB7kB,QAAhB6kB,EAAgB5kB,UAAAC,WAFf,gBAED2kB,CAAgB,oGCvF7B,MAAMmS,EAAmC,CACvC0kC,sBAAuB,MAMlB,IAAMC,EAAa,MAApB,MAAOA,EAHbt/D,cAIWc,KAAAu+D,yBAAwBzkC,OAC/B,IAAM95B,KAAK+kB,QAAQw5C,sBACnB,CAAE/0B,MAAOC,OAGMzpC,KAAA+kB,SAAQtR,OAAO,IAAKomB,IACpB75B,KAAA2jB,uBAAsBjjB,OAAOkjB,KAC7B5jB,KAAAY,cAAaF,OAAOG,OAErC49D,6BACEz+D,KAAK2jB,oBACFkqC,qBACAzrD,QAAKC,MAAmBrC,KAAKY,aAC7B0B,UAAW+T,IACLA,GAILrW,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACHw5C,sBAAuBloD,IACvB,EAER,CAACtW,SAAAC,KAAA,mBAAAC,iBAxBUu+D,EAAa,EAAAz+D,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAAb47D,EAAa37D,QAAb27D,EAAa17D,UAAAC,WAFZ,gBAEDy7D,CAAa,oGCR1B,MAAM3kC,EAA+B,CACnChZ,QAAS,KACTkC,cAAc,EACd4H,aAAa,EACbK,eAAgB,KAChBJ,sBAAuB,MAMlB,IAAM1K,EAAS,MAAhB,MAAOA,EAHbhhB,cAIWc,KAAA6gB,WAAUiZ,OAAS,IAAM95B,KAAK+kB,QAAQlE,QAAS,CAAE2oB,MAAOC,OAExDzpC,KAAA+iB,gBAAe+W,OAAS,IAAM95B,KAAK+kB,QAAQhC,aAAc,CAChEymB,MAAOC,OAEAzpC,KAAA2qB,eAAcmP,OAAS,IAAM95B,KAAK+kB,QAAQ4F,YAAa,CAC9D6e,MAAOC,OAGAzpC,KAAAgrB,kBAAiB8O,OAAS,IAAM95B,KAAK+kB,QAAQiG,eAAgB,CACpEwe,MAAOC,OAGAzpC,KAAA4qB,yBAAwBkP,OAC/B,IAAM95B,KAAK+kB,QAAQ6F,sBACnB,CACE4e,MAAOC,OAIMzpC,KAAA+kB,SAAQtR,OAAO,IAAKomB,IACpB75B,KAAAgjB,mBAAkBtiB,OAAOgjB,KACzB1jB,KAAA0+D,iBAAgBh+D,OAAO89D,KAExCpG,yBAAyBxtC,GACvB5qB,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACH6F,0BAEJ,CAEAutC,kBAAkBntC,GAChBhrB,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACHiG,mBAEJ,CAEAktC,aAAavtC,GACX3qB,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACH4F,gBAEJ,CAEAylC,eAAe7lB,EAA+BxnB,GAC5C/iB,KAAK+kB,MAAMxP,OAAQwP,QACdA,EACHlE,QAAS0pB,EACTxnB,eACA4H,aAAa,EACb1H,IAAK,QAGFsnB,IAILvqC,KAAKgjB,gBAAgBg2C,YACrBh5D,KAAKgjB,gBAAgBk2C,YACrBl5D,KAAKgjB,gBAAgBm2C,WACrBn5D,KAAK0+D,cAAcD,6BACrB,CAAC1+D,SAAAC,KAAA,mBAAAC,iBA/DUigB,EAAS,EAAAngB,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAATsd,EAASrd,QAATqd,EAASpd,UAAAC,WAFR,gBAEDmd,CAAS,yFCvBtB,MAAMouC,EAA0BruD,KAC9B,CACE0oB,eAAgB1oB,KAChB/B,SAAOm4B,KAASp2B,MAChB6pD,UAAW50B,IACX60B,WAAY70B,IACZ80B,QAAS/pD,KACT2oB,QAAS3oB,MAEX,oGCTF,MAAM0+D,EAAa1+D,KACjB,CACEhC,OAAKo4B,KAASp2B,MACd/B,SAAOm4B,KAASp2B,OAElB,cCNI2+D,EAAgB3+D,KACpB,CACE8K,GAAI9K,KACJwqD,eAAgBxqD,KAChByqD,kBAAmBzqD,MAErB,iBCNI4+D,EAAkB5+D,KACtB,CACEoiB,eAAgBpiB,KAChBmiB,sBAAuBniB,KACvB2qD,mBAAoB3qD,KACpBqiB,uBAAwBriB,KACxBsiB,mBAAoBtiB,KACpBonB,mBAAoBpnB,KACpB8gB,oCAAqC9gB,KACrC4qD,0BAA2B5qD,KAC3BmhB,cAAenhB,KACf+gB,gDAAiD/gB,KACjDuiB,iBAAkBviB,KAClBkiB,oBAAqBliB,KACrBknB,oBAAqBlnB,MAEvB,kCCXF,MAAMw4D,EAAcx4D,KAClB,CACEskD,IACAtkD,KAAO,CACL+qD,cAAY30B,KAASp2B,KAAQ2+D,IAC7B5sC,YAAa/xB,KACb6gB,YAAa+9C,EACbv3C,eAAa+O,KAASp2B,KAAQ0+D,IAC9BzT,eAAgBjrD,KAASA,KAAUA,SAGvC,wFCfF,MAAMq0D,EAA2Br0D,KAC/B,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,MACfmrD,OAAQnrD,KACRorD,MAAOprD,MAET,0FCRF,MAAMm0D,EAAen0D,KACnB,CACE8K,GAAI9K,KACJuF,KAAMvF,KACNo8B,MAAOp8B,MAET,yFCLF,MAAM03D,EAAe13D,KACnB,CACE8K,GAAI9K,KACJyrD,QAAMr1B,KAASp2B,MACfuF,QAAM6wB,KAASp2B,OAEjB,yFCNF,MAAM63D,EAAW73D,KACf,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,OAEjB,qFCLF,MAAMk0D,EAAal0D,KACjB,CACE8K,GAAI9K,KACJyrD,KAAMzrD,KACNuF,QAAM6wB,KAASp2B,OAEjB,uFCNF,MAAMwzD,EAASxzD,KACb,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,OAEjB,mFCLF,MAAMs0D,EAAoBt0D,KACxB,CACE8K,GAAI9K,KACJ8rD,WAAY9rD,KACZ/B,MAAO+B,KACPuF,QAAM6wB,KAASp2B,OAEjB,8FCPF,MAAMu3C,EAAUv3C,KACd,CACE8K,GAAI9K,KACJuF,QAAM6wB,KAASp2B,MACfyrD,QAAMr1B,KAASp2B,MACfyT,MAAOzT,KAAQ,CAACA,KAAUA,QAE5B,oFCPF,MAAM6+D,EAAoB7+D,KACxB,CACE0T,WAAY1T,KACZgW,UAAWhW,KACXiW,SAAUjW,KACVkW,WAASkgB,KAASp2B,MAClBmW,iBAAkBnW,MAEpB,yGCPF,MAAMg4D,EAAmBh4D,KACvB,CACEskD,IACAtkD,KAAO,CACLwsD,cAAYp2B,KAASp2B,MACrByiB,aAAW2T,KAASp2B,SAGxB,6FCTF,MAAM8+D,EAAc9+D,KAClB,CACEA,KAAO,CACLuF,QAAM6wB,KAASp2B,MACfksD,WAAYlsD,OAEdA,KAAU,CACR++D,gBAAc3oC,KAASp2B,SAG3B,eCTIo0D,EAAoBp0D,KACxB,CACEwwD,cAAYp6B,KAASp2B,KAAQ8+D,IAC7BrO,cAAYr6B,KAASp2B,KAAQ8+D,IAC7BpO,aAAWt6B,KAASp2B,KAAQ8+D,KAE9B,yGCNF,MAAMxd,EAAqBthD,KACzB,CACEwzD,IACAxzD,KAAO,CACLgtD,aAAchtD,KACd6U,OAAKuhB,KAASp2B,SAGlB,0GCRF,MAAMg/D,EAAWh/D,KACf,CACEwzD,IACAxzD,KAAO,CACLmtD,SAAO/2B,KAASp2B,MAChByiB,aAAW2T,KAASp2B,SAGxB,qFCTF,MAAMskD,EAAOtkD,KACX,CACE8K,GAAI9K,KACJmtD,SAAO/2B,KAASp2B,MAChBuF,QAAM6wB,KAASp2B,MACfotD,kBAAmBptD,KACnB4zC,UAAW5zC,KACXyiB,aAAW2T,KAASp2B,OAEtB,8ECVU64D,EAAZ,SAAYA,GACVA,WAAAhrC,KAAA,UACAgrC,IAAA1wD,aAAA,kBACA0wD,IAAAoG,eAAA,oBAHUpG,CAIZ,CAJA,CAAYA,GAAe,IAMrB,MAAOD,EACX35D,YACU6lB,EACA9mB,EACAkhE,EACApG,GAHA/4D,KAAA+kB,QACA/kB,KAAA/B,MACA+B,KAAAm/D,kBACAn/D,KAAA+4D,mBAER/4D,KAAKo/D,uBAAmB,EAExB7qD,OAAO,KACLvU,KAAKq/D,cAAcr/D,KAAK+kB,QAAO,EAEnC,CAEA,WAAOxlB,CACLwlB,EACA9mB,EACAkhE,EACApG,GAEA,OAAO,IAAIF,EAAa9zC,EAAO9mB,EAAKkhE,EAAiBpG,EACvD,CAEQqG,sBACN,IAAIE,EAEJ,OAAQt/D,KAAKm/D,iBACX,KAAKrG,EAAgB1wD,aACnBk3D,EAASvyC,aAAaE,QAAQjtB,KAAK/B,KACnC,MACF,KAAK66D,EAAgBoG,eACnBI,EAASC,eAAetyC,QAAQjtB,KAAK/B,KACrC,MACF,QACEqhE,EAAS,KAGb,IAAKA,EACH,OAGF,MAAMxgE,EAAO41B,KAAKC,MAAM2qC,GAEnBxgE,GAKHkB,KAAK+kB,MAAM/a,IADThK,KAAK+4D,iBACQ/4D,KAAK+4D,iBAAiBj6D,GAEtBA,EAEnB,CAEQugE,cAAct6C,GACpB,IACE,OAAQ/kB,KAAKm/D,iBACX,KAAKrG,EAAgB1wD,aACnB2kB,aAAaK,QAAQptB,KAAK/B,IAAKy2B,KAAKp1B,UAAUylB,IAC9C,MACF,KAAK+zC,EAAgBoG,eACnBK,eAAenyC,QAAQptB,KAAK/B,IAAKy2B,KAAKp1B,UAAUylB,IAKtD,OACE,CAEJ,kDCvEI,MAAOllB,kECJP,MAAOgyB,UAAgCF,KAK3CzyB,YACEsG,EACAE,EACAnG,GASAoF,MAAMpF,GAENS,KAAKwF,KAAOA,EACZxF,KAAK0F,QAAUA,CACjB,uHCOK,IAAMX,EAA0B,MAAjC,MAAOA,EAKX,WAAIy6D,GACF,OAAOx/D,KAAKy/D,aAAaD,OAC3B,CAKAtgE,YAC+BO,GAAAO,KAAAP,SAJdO,KAAA0/D,aAAYh/D,OAAOmE,OACnB7E,KAAAqxC,gBAAe3wC,OAAOG,MAKpC,CAKH8+D,WACE9qD,EACA+qD,GAEA,GAAI5/D,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYE,WAAW9qD,EAAO+qD,EACrC,OAASC,GACP/2D,QAAQK,KAAK,oDAAqD02D,EACpE,MAEA/2D,QAAQK,KACN,qEAGN,CAcA22D,cACEC,EACAC,EACAC,GAEA,GAAIjgE,KAAKy/D,YACP,KAEwB,iBAAbM,GACA,MAAPC,GACuB,MAAvBC,KAGAF,EAAW,CACTv6D,KAAMu6D,EACNC,SACGC,IAIPjgE,KAAKy/D,YAAYK,cAAcC,EACjC,OAASF,GACP/2D,QAAQK,KACN,uDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAKA+2D,yBACEC,GAEA,GAAIngE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYS,yBAAyBC,EAC5C,OAASN,GACP/2D,QAAQK,KACN,kEACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAiBAjE,eACEC,EACAi7D,EACAH,GAKA,GAAIjgE,KAAKy/D,YACP,IACM,SAAUt6D,GAAa,YAAaA,IAEtCA,EAAY,CACVA,YACAi7D,mBACGH,IAKPjgE,KAAKy/D,YAAYv6D,eAAeC,EAClC,OAAS06D,GACP/2D,QAAQK,KACN,wDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAoBAk3D,WACEC,EACAV,EACAK,GAKA,GAAIjgE,KAAKy/D,YACP,IACuB,iBAAVa,IAETA,EAAQ,CACN56D,QAAS46D,EACTF,cAC8B,iBAArBR,EACHA,OACAr9D,KACH09D,GAILL,OAAmBr9D,GAGrBvC,KAAKy/D,YAAYY,WAAWC,EAAOV,EACrC,OAASC,GACP/2D,QAAQK,KAAK,oDAAqD02D,EACpE,MAEA/2D,QAAQK,KACN,qEAGN,CAaAo3D,YACEC,EACAZ,GAEA,GAAI5/D,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYc,YAAYC,EAAQZ,EACvC,OAASC,GACP/2D,QAAQK,KAAK,qDAAsD02D,EACrE,MAEA/2D,QAAQK,KACN,qEAGN,CAKAs3D,oBAAoBC,GAClB,GAAI1gE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYgB,oBAAoBC,EACvC,OAASb,GACP/2D,QAAQK,KACN,6DACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CASAw3D,eAAen7D,GACb,GAAIxF,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYkB,eAAen7D,EAClC,OAASq6D,GACP/2D,QAAQK,KACN,wDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAcAy3D,cACEp7D,EACAsP,EACA8qD,EACAiB,GAEA,GAAI7gE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYmB,cACfp7D,EACAsP,EACA8qD,EACAiB,EAEJ,OAAShB,GACP/2D,QAAQK,KACN,uDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAMA23D,gBAAgBt7D,GACd,GAAIxF,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYqB,gBAAgBt7D,EACnC,OAASq6D,GACP/2D,QAAQK,KACN,yDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAUA43D,eACEv7D,EACAw7D,EACAH,GAEA,GAAI7gE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYsB,eAAev7D,EAAMw7D,EAAYH,EACpD,OAAShB,GACP/2D,QAAQK,KACN,wDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CASA83D,4BACEC,EACAC,EACAC,GAEA,GAAIphE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAYwB,4BACfC,EACAC,EACAC,EAEJ,OAASvB,GACP/2D,QAAQK,KACN,qEACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAKAk4D,gCACE,GAAIrhE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAY4B,+BACnB,OAASxB,GACP/2D,QAAQK,KACN,uEACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAKAm4D,MAAMC,GACJ,GAAIvhE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAY6B,MAAMC,EACzB,OAAS1B,GACP/2D,QAAQK,KAAK,+CAAgD02D,EAC/D,MAEA/2D,QAAQK,KACN,qEAGN,CAEAq4D,wBACEC,GAEA,GAAIzhE,KAAKy/D,YACP,IACEz/D,KAAKy/D,YAAY+B,wBAAwBC,EAC3C,OAAS5B,GACP/2D,QAAQK,KACN,iEACA02D,EAEJ,MAEA/2D,QAAQK,KACN,qEAGN,CAOA5J,OACE,GAAmB,MAAfS,KAAKP,OAQT,GAAIO,KAAKP,OAAO+G,mBACd,IACE,MAAMi5D,EAAc,IAAIiC,IAAoB,CAC1CjiE,OAAQO,KAAKP,SAGfggE,EAAYkC,kBACZ3hE,KAAKy/D,YAAcA,EAEnB,MAAMxrD,EAASjU,KAAK4hE,aAEf5hE,KAAKP,OAAOoiE,6BAA+B5tD,IAC9CA,EAAO8X,OACJ3pB,QACCoT,KAAQX,GAAUA,aAAiBitD,MAAe,EAClDz/D,MAAmBrC,KAAKqxC,eAEzB/uC,UAAWuS,IACV7U,KAAK2gE,eAAe9rD,EAAMC,IAAG,GAGjCb,EAAO8X,OACJ3pB,QACCoT,KACGX,GACCA,aAAiBoX,MACjBpX,aAAiBqX,MACjBrX,aAAiBsX,OAAe,EAEpC9pB,MAAmBrC,KAAKqxC,eAEzB/uC,UAAWuS,IACV7U,KAAK4gE,cAAc/rD,EAAMC,IAAG,GAGpC,OAAS+qD,GACP/2D,QAAQK,KACN,yDACA02D,EAEJ,MAEA/2D,QAAQK,KACN,iFAlDFL,QAAQK,KACN,sFAoDN,CAEQy4D,YACN,IACE,OAAO5hE,KAAK0/D,UAAUr6D,IAAI6O,KAC5B,OACE,MACF,CACF,CAACnU,SAAAC,KAAA,mBAAAC,iBA7gBU8E,GAA0B7E,MAAAC,IAAA,KAAAJ,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAA1BmC,EAA0BlC,QAA1BkC,EAA0BjC,UAAAC,WAFzB,gBAEDgC,CAA0B,0HCnBhC,IAAM6H,EAAmB,MAA1B,MAAOA,EAHb1N,cAImBc,KAAA8E,sBAAqBpE,OAAOqE,KAC5B/E,KAAA8M,mBAAkBpM,OAAO4E,KAK1CkJ,WAAWvJ,GAET6D,QAAQ7D,MAAMA,GACdjF,KAAK8E,mBAAmBI,eAAe,CAAEC,UAAWF,GACtD,CAMAD,YAAYC,EAAgBnG,KAEtBmG,aAAiB5F,UACjB4F,aAAiB4sB,OAMnB7xB,KAAK+hE,WAAW98D,EADdA,aAAiB4sB,KAA4C,MAAjB5sB,EAAM2oB,OAC7B,CACrBnoB,KAAM,8CAGe3G,GAGzBkB,KAAKwO,WAAWvJ,GAClB,CAKA88D,WAAW98D,EAAcnG,GACnBmG,aAAiB0sB,MAAsC,MAAjB1sB,EAAM2oB,QAK9C5tB,KAAK8M,gBAAgBvH,kBADnBzG,EACqC,IAClCA,EACH2G,KAAMzF,KAAKgiE,gBAAgB/8D,EAAOnG,EAAK2G,OAIvCzF,KAAKiiE,YAAY,oBAAqBh9D,GAG5C,CAEQg9D,YAAY59D,EAAeY,GACjC,MAAMi9D,EAAgB,MAAGj2B,KAAO,IAAIxuC,KAAQ,6BAQ5C,MAAO,CACL4G,QACAoB,KARW,WACTR,EAAMS,QAAQkS,QAAQ,KAAM,qBAC5B3S,EAAMO,KAAO,2CAA2CP,EAAMO,eAAiB,kDAC1C08D,iBAO3C,CAEQF,gBACN/8D,EACAk9D,GAEA,OACEniE,KAAKoiE,gBAAgBn9D,IACrBjF,KAAKqiE,mBAAmBp9D,EAAMA,QAC9BA,EAAMA,MAAMs0B,OAELz7B,OAAOwb,OAAOrU,EAAMA,MAAMs0B,QAAQ2E,OAAO9lB,KAAK,MAGnDnT,EAAMS,SAAoC,iBAAlBT,EAAMS,QACzBT,EAAMS,QAGRy8D,CACT,CAEQC,gBAAgBn9D,GACtB,YAAoD1C,IAA5C0C,EAAkCA,KAC5C,CAEQo9D,mBAAmBp9D,GACzB,YAAgD1C,IAAxC0C,GAA4Bq9D,OACtC,CAACviE,SAAAC,KAAA,mBAAAC,iBAhGU2M,EAAmB,EAAA7M,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAAnBgK,EAAmB/J,QAAnB+J,EAAmB9J,UAAAC,WAFlB,gBAED6J,CAAmB,8ECXpB21D,EAAZ,SAAYA,GACVA,WAAA70B,KAAA,UACA60B,IAAAC,QAAA,aACAD,IAAA30B,MAAA,WAHU20B,CAIZ,CAJA,CAAYA,GAAY,wCCMlBriE,MADF,QACEA,CAD+E,gBAK7EA,MAAA,GAEJA,4GAFIA,MAAA,GAAAA,MAAA,IAAA4Q,EAAAgR,KAAA,+BAMF5hB,MAAA,WACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAAhS,KAAAuF,MAAA,+BAIFnE,MAAA,WACEA,MAAA,GACFA,8BADEA,cAAA,IAAA4Q,EAAAhS,KAAA2G,KAAA,MCVD,IAAMg9D,EAAiB,MAAxB,MAAOA,EANbvjE,cAoBqBc,KAAAlB,QAAqB4B,OAAOgiE,MAb/C,QAAI5gD,GACF,OAAQ9hB,KAAKlB,KAAKw3B,MAChB,KAAKisC,EAAa70B,KAChB,MAAO,OACT,KAAK60B,EAAa30B,MAChB,MAAO,QACT,KAAK20B,EAAaC,QAChB,MAAO,eACT,QACE,OAEN,CAACziE,SAAAC,KAAA,mBAAAC,iBAZUwiE,EAAiB,EAAA1iE,SAAAC,KAAA,UAAAI,EAAA2P,IAAA,MAAjB0yD,EAAiBzyD,UAAA,mBAAAG,YAAA,EAAAC,SAAA,CAAAlQ,OAAAqQ,MAAA,EAAAC,KAAA,EAAAC,OAAA,uJAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,IDZ9BzQ,MAAA,WAIEA,MAAA,EAAAyiE,EAAA,WAUAziE,MAAA,WAMEA,MALA,EAAA0iE,EAAA,YAKA1iE,CALkB,EAAA2iE,EAAA,aAWtB3iE,iBAtBEA,cAAA0Q,EAAA9R,KAAAw3B,KAAA,MAWEp2B,MAAA,GAAAA,MAAA0Q,EAAA9R,KAAAuF,MAAA,MAKAnE,cAAA0Q,EAAA9R,KAAA2G,KAAA,sBCVQyR,KAAa/W,MAAAqS,OAAA,88BAEZiwD,CAAiB,KCKjBn9D,EAAe,MAAtB,MAAOA,EAHbpG,cAImBc,KAAA8iE,eAAkC,CACjDt1B,SAAU,IACVu1B,iBAAkB,MAClBC,mBAAoB,UAGLhjE,KAAAijE,YAAWviE,OAAOwiE,MAKnC7zD,iBACEvQ,EACA0M,GAEA,OAAOxL,KAAKmjE,aAAa,IACpBrkE,EACHw3B,KAAMisC,EAAa70B,MAClB,CACDF,SAAU,OACPhiC,GAEP,CAKA+hC,oBACEzuC,EACA0M,GAEA,OAAOxL,KAAKmjE,aAAa,IACpBrkE,EACHw3B,KAAMisC,EAAaC,SAClB,CACDh1B,SAAU,OACPhiC,GAEP,CAKAjG,kBACEzG,EACA0M,GAEA,OAAOxL,KAAKmjE,aAAa,IACpBrkE,EACHw3B,KAAMisC,EAAa30B,OAClBpiC,EACL,CAEA43D,4BACEtkE,EAAqB,CACnB2G,KAAM,0FAER+F,OAAgDjJ,GAEhD,OAAOvC,KAAKmjE,aAAa,IACpBrkE,EACHw3B,KAAMisC,EAAa30B,OAClB,CACDJ,SAAU,QACPhiC,GAEP,CAKQ23D,aACNrkE,EACA0M,GAEA,MAAM63D,EAAgB,IACjBrjE,KAAK8iE,kBACLt3D,GAGL,OAAOxL,KAAKijE,SAASK,kBAAqCb,EAAmB,CAC3E3jE,UACGukE,GAEP,CAACtjE,SAAAC,KAAA,mBAAAC,iBArFUqF,EAAe,EAAAvF,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAf0C,EAAezC,QAAfyC,EAAexC,UAAAC,WAFd,gBAEDuC,CAAe,sKCZxBpF,MAAA,qCAGEA,MADA,OAAAqjE,EAAA/9D,KACAtF,CADoB,SAAAqjE,EAAA7gD,kCAItBxiB,MAAA,WACEA,MAAA,YAKFA,+BAGAA,MAAA,WACEA,MAAA,YAKFA,iCASMA,MAAA,iDAEEA,MADA,QAAA0S,EAAAlN,QAAA5G,KAAAmf,aACA/d,CADmC,YAAA0S,EAAAhB,iCASrC1R,MAAA,2CAKJA,MAAA,qDAEEA,MAAA,YAAAA,MAAA,IAAA0S,EAAAlN,iBAAAxF,QCvBD,IAAMmX,EAAgB,MAAvB,MAAOA,EAfbnY,cAiBoDc,KAAA4R,WAAqB,EAE1C5R,KAAAkT,WAAa,IAAI5B,MACjBtR,KAAAmT,cAAgB,IAAI7B,MAClDvR,SAAAC,KAAA,mBAAAC,iBANYoX,EAAgB,EAAAtX,SAAAC,KAAA,UAAAg6B,EAAAjqB,IAAA,MAAhBsH,EAAgBrH,UAAA,mCAAAC,OAAA,CAAAvK,QAAA,UAAAkM,UAAA,2BAEPD,QAAgBG,QAAA,CAAAoB,WAAA,aAAAC,cAAA,iBAAAhD,YAAA,EAAAC,SAAA,CAAAlQ,aAAAqQ,MAAA,GAAAC,KAAA,GAAAC,OAAA,gjBAAAC,SAAA,SAAAC,EAAAC,GAAA,KAAAD,EAAA,iBD/BtCzQ,MAAA,WAmBEA,MAfA,EAAAsjE,EAAA,uBAeAtjE,CAfiC,EAAAujE,EAAA,YAejCvjE,CATS,EAAAwjE,EAAA,yBAAAxjE,OAoBLA,MAFJ,UAEIA,CAFyB,UAEzBA,CAD2B,WAKzBA,MAAA,EAAAyjE,EAAA,8BAMAzjE,MAAA,GACFA,QACAA,MAAA,YACEA,MAAA,qBACAA,MAAA,GAAA0jE,EAAA,KAIJ1jE,UACAA,MAAA,GAAA2jE,EAAA,aAMF3jE,QAEEA,MADF,YACEA,CAD4B,gBAO1BA,MAAA,iBAAAwS,GAAAxS,aAAAuW,GAAAvW,MAAS0Q,EAAAuC,cAAAmvB,KAAA5vB,GAA0B,GAEnCxS,MAAA,kBAAgCA,MAAA,IAClCA,UACAA,MAAA,gBAMEA,MAAA,iBAAAwS,GAAAxS,aAAAuW,GAAAvW,MAAS0Q,EAAAsC,WAAAovB,KAAA5vB,GAAuB,GAEhCxS,MAAA,kBAAgCA,MAAA,IAGtCA,4BA5EEA,MAAA,qBAAA0Q,EAAAgB,WAEA1R,eAAAghB,EAAAtQ,EAAAlL,QAAAo+D,QAAA,IAAA5iD,GA4BMhhB,MAAA,GAAAA,MAAA,0BAAA0Q,EAAAlL,QAAAyP,QAEAjV,cAAA0Q,EAAAlL,QAAA5G,KAAAmf,aAAA,MAMA/d,cAAA,IAAA0Q,EAAAlL,QAAArB,MAAA,KAGAnE,MAAA,GAAAA,MAAA,IAAAA,MAAA,MAAA0Q,EAAAlL,QAAAq+D,UAAA,cACA7jE,MAAA,GAAAA,MAAA0Q,EAAAlL,QAAAkQ,WAAA,OAKJ1V,cAAA0Q,EAAAlL,iBAAA,YAAAkL,EAAAlL,gBAAA,OAaExF,MAAA,GAAAA,MAAA,aAAA0Q,EAAAlL,QAAAkQ,WAAA,uBAGgC1V,MAAA,GAAAA,MAAA0Q,EAAAlL,QAAAkQ,WAAA,uBAMhC1V,QACAA,MADA,QAAA0Q,EAAAlL,QAAAyP,OAAA,kBACAjV,CAD8C,aAAA0Q,EAAAlL,QAAAyP,OAAA,iCAIdjV,MAAA,GAAAA,MAAA0Q,EAAAlL,QAAAyP,OAAA,iECvDlCsR,IACAgmB,IACAx1B,IACA9E,KAAgBhS,KAChB+W,KAAa9E,KACbs6B,IACAhtB,KAAoBlN,OAAA,mlDAGX6E,CAAgB,8EC1BvB,MAAO3B,UAAsCu0C,IAUjD/qD,YAAY8kE,GACVr/D,QALO3E,KAAA8jE,OAA+B,KAOtC9jE,KAAK+K,GAAKi5D,EAAyBj5D,GACnC/K,KAAKqE,MAAQ2/D,EAAyB3/D,MACtCrE,KAAK0F,QAAUs+D,EAAyBt+D,QACxC1F,KAAKlB,KAAOklE,EAAyBllE,KACrCkB,KAAK+jE,UAAYC,EAAyBD,UAEtCC,EAAyBF,SAC3B9jE,KAAK8jE,OAAS,IAAI5W,IAAc8W,EAAyBF,SAG3D9jE,KAAKmV,OAAS6uD,EAAyB7uD,OACvCnV,KAAK4V,WAAaouD,EAAyBpuD,UAC7C,wHCxBI,MAAOquD,UACH3X,IAMRptD,YAAYglE,GACVv/D,MAAMu/D,GALRlkE,KAAAuW,MAAgD,KAO9CvW,KAAKuW,MAAQ2tD,EAA8B3tD,MACvC2tD,EAA8B3tD,MAAM5X,IAAK+G,GAAY,IAAIgQ,IAA8BhQ,IACvF,KAEJ1F,KAAKmkE,cAAgBD,EAA8BC,cACnDnkE,KAAKsW,YAAc4tD,EAA8B5tD,WACnD,kDChBF,MAAM8tD,EAA2BnkE,KAAO,CACtC8K,MAAIsrB,KAASp2B,MACboE,SAAOgyB,KAASp2B,MAChByF,WAAS2wB,KAASp2B,MAClBnB,KAAMmB,KAASA,QAAUo2B,KAASp2B,OAClC8jE,UAAW7uC,IACX4uC,UAAQztC,KAAS4oC,KACjB9pD,OAAQlV,KACR2V,WAAY3V,MACX,4BCRGokE,EAAgCpkE,KAAe,CACnD6+D,IACA7+D,KAAO,CACLsW,SAAO8f,KAASp2B,KAAQmkE,IACxBD,cAAelkE,KACfqW,YAAarW,QAEd,gDCFI,IAAM+T,EAAuB,MAA9B,MAAOA,UAA+B2iB,IACpC3gB,iBACJ+b,GAAiC,IAAA9wB,EAAAjB,KAAA,SAAAkB,KAAA,YAEjC,MAAMoyB,EAAS,IAAID,IAAiBtB,GAEpC,IACE,MAAM1b,QAAiBpV,EAAKoE,IAC1B,qBACAg/D,EACA/wC,GAGF,OAAmB,MAAZjd,EACH,IAAI4tD,EAAmC5tD,GACvC,IACN,OAASpR,GACP,OAAOhE,EAAKywB,WACVzsB,EACA,yDAEJ,CAAC,EAnBgC,EAoBnC,CAEMoQ,WAAWsT,GAAsB,IAAAlmB,EAAAzC,KAAA,SAAAkB,KAAA,YACrC,IACE,aAAauB,EAAKw0B,IAChB,gBAAgBtO,SAChB6lC,KAEJ,OAASvpD,GACP,OAAOxC,EAAKivB,WACVzsB,EACA,6DAEJ,CAAC,EAXoC,EAYvC,CAEM4N,gBAAa,IAAAiiD,EAAA90D,KAAA,SAAAkB,KAAA,YACjB,IACE,aAAa4zD,EAAK79B,IAAmB,oBAAqBu3B,KAC5D,OAASvpD,GACP,OAAO6vD,EAAKpjC,WACVzsB,EACA,8DAEJ,CAAC,EARgB,EASnB,CAEMmQ,aAAauT,GAAsB,IAAAqsC,EAAAh1D,KAAA,SAAAkB,KAAA,YACvC,IACE,aAAa8zD,EAAK/9B,IAChB,gBAAgBtO,WAChB6lC,KAEJ,OAASvpD,GACP,OAAO+vD,EAAKtjC,WACVzsB,EACA,+DAEJ,CAAC,EAXsC,EAYzC,CAEM6Q,QAAQ6S,GAAsB,IAAAusC,EAAAl1D,KAAA,SAAAkB,KAAA,YAClC,IACE,aAAag0D,EAAKj+B,IAChB,gBAAgBtO,YAChB6lC,KAEJ,OAASvpD,GACP,OAAOiwD,EAAKxjC,WACVzsB,EACA,uDAEJ,CAAC,EAXiC,EAYpC,CAEM4Q,UAAU8S,GAAsB,IAAAysC,EAAAp1D,KAAA,SAAAkB,KAAA,YACpC,IACE,aAAak0D,EAAKn+B,IAChB,gBAAgBtO,cAChB6lC,KAEJ,OAASvpD,GACP,OAAOmwD,EAAK1jC,WACVzsB,EACA,yDAEJ,CAAC,EAXmC,EAYtC,CAAClF,SAAAC,KAAA,4DAzFUgU,KAAsB/T,GAAtB+T,EAAsB,GAyFhC,GAzFgCjU,SAAAC,KAAA,WAAAI,EAAAwC,IAAA,OAAtBoR,EAAsBnR,QAAtBmR,EAAsBlR,UAAAC,WAFrB,gBAEDiR,CAAuB,sHCR9B,MAAOswD,EA8BXplE,YAAYqlE,GACVvkE,KAAK+K,GAAKw5D,EAAWx5D,GACrB/K,KAAKwkE,UAAYD,EAAWC,UAC5BxkE,KAAKykE,OAASF,EAAWE,OACzBzkE,KAAK0kE,SAAWH,EAAWG,SAC3B1kE,KAAKie,aAAesmD,EAAWtmD,aAC/Bje,KAAK2Y,YAAc4rD,EAAW5rD,YAC9B3Y,KAAK2kE,QAAUJ,EAAWI,QAC1B3kE,KAAK4kE,cAAgBL,EAAWK,cAChC5kE,KAAK6kE,UAAYN,EAAWM,UAC5B7kE,KAAK8kE,mBAAqBP,EAAWO,mBACrC9kE,KAAK+kE,qBAAuBR,EAAWQ,qBACvC/kE,KAAKglE,WAAaT,EAAWS,WAC7BhlE,KAAKilE,SAAWV,EAAWU,SAC3BjlE,KAAKklE,aAAeX,EAAWW,aAC/BllE,KAAKmlE,aAAeZ,EAAWY,aAC/BnlE,KAAKolE,aAAeb,EAAWa,aAC/BplE,KAAKqlE,MAAQd,EAAWc,MACxBrlE,KAAK+sD,mBAAqBwX,EAAWxX,mBACrC/sD,KAAKslE,0BAA4Bf,EAAWe,0BAC5CtlE,KAAKulE,0BAA4BhB,EAAWgB,0BAC5CvlE,KAAKwlE,eAAiBjB,EAAWiB,eACjCxlE,KAAKylE,mBAAqBlB,EAAWkB,mBACrCzlE,KAAK+Y,OAASwrD,EAAWxrD,OACzB/Y,KAAK0lE,mBAAqBnB,EAAWmB,mBACrC1lE,KAAK2lE,kBAAoBpB,EAAWoB,kBACpC3lE,KAAK4lE,WAAarB,EAAWqB,UAC/B,ECvDI,MAAOC,UAAkE5b,IAK7E/qD,YACEuY,GAEA9S,QAEA3E,KAAK9B,MAAQ,IAAIomE,EAAkC7sD,EAAOvZ,OAC1D8B,KAAK8lE,WAAaruD,EAAOquD,WACzB9lE,KAAK+lE,YAActuD,EAAOsuD,WAC5B,ECbI,MAAOC,UAA8D/b,IAIzE/qD,YAAYuY,GACV9S,QAEA3E,KAAK0T,MAAQ+D,EAAO/D,MAEpB1T,KAAKsZ,OAAS7B,EAAO6B,OAClB3a,IAAKT,IAAU,IAAI2nE,EAA0D3nE,IAClF,ECbI,MAAO+nE,EA0DX/mE,YAAYqlE,GACVvkE,KAAK+K,GAAKw5D,EAAWx5D,GACrB/K,KAAKwkE,UAAYD,EAAWC,UAC5BxkE,KAAK0kE,SAAWH,EAAWG,SAC3B1kE,KAAKie,aAAesmD,EAAWtmD,aAC/Bje,KAAK2kE,QAAUJ,EAAWI,QAC1B3kE,KAAK4kE,cAAgBL,EAAWK,cAChC5kE,KAAK6kE,UAAYN,EAAWM,UAC5B7kE,KAAKkmE,UAAY3B,EAAW2B,UAC5BlmE,KAAKglE,WAAaT,EAAWS,WAC7BhlE,KAAKmmE,SAAW5B,EAAW4B,SAC3BnmE,KAAK2Y,YAAc4rD,EAAW5rD,YAC9B3Y,KAAKomE,eAAiB7B,EAAW6B,eACjCpmE,KAAKqmE,cAAgB9B,EAAW8B,cAChCrmE,KAAKsmE,cAAgB/B,EAAW+B,cAChCtmE,KAAKumE,eAAiBhC,EAAWgC,eACjCvmE,KAAKwmE,iBAAmBjC,EAAWiC,iBACnCxmE,KAAKymE,cAAgBlC,EAAWkC,cAChCzmE,KAAK0mE,WAAanC,EAAWmC,WAC7B1mE,KAAK2mE,UAAYpC,EAAWoC,UAC5B3mE,KAAK0Z,cAAgB6qD,EAAW7qD,cAEhC1Z,KAAK4mE,8BACHrC,EAAWqC,8BAEb5mE,KAAK6mE,mCACHtC,EAAWsC,mCAEb7mE,KAAK8mE,oCACHvC,EAAWuC,oCAEb9mE,KAAK+mE,gBAAkBxC,EAAWwC,gBAClC/mE,KAAKgnE,SAAWzC,EAAWyC,SAC3BhnE,KAAKinE,gBAAkB1C,EAAW0C,gBAClCjnE,KAAKknE,qBAAuB3C,EAAW2C,qBACvClnE,KAAKmnE,oBAAsB5C,EAAW4C,oBACtCnnE,KAAKonE,QAAU7C,EAAW6C,QAC1BpnE,KAAKqnE,mBAAqB9C,EAAW8C,mBACrCrnE,KAAKsnE,cAAgB/C,EAAW+C,cAChCtnE,KAAKunE,kBAAoBhD,EAAWgD,kBAEpCvnE,KAAKwnE,+BACHjD,EAAWiD,+BAEbxnE,KAAKynE,mBAAqBlD,EAAWkD,mBACrCznE,KAAK0nE,WAAanD,EAAWmD,WAC7B1nE,KAAK+Y,OAASwrD,EAAWxrD,OACzB/Y,KAAKwlE,eAAiBjB,EAAWiB,eACjCxlE,KAAKylE,mBAAqBlB,EAAWkB,mBACrCzlE,KAAK2nE,eAAiBpD,EAAWoD,eACjC3nE,KAAK4nE,aAAerD,EAAWqD,aAC/B5nE,KAAK6nE,YAActD,EAAWsD,YAC9B7nE,KAAK8nE,QAAUvD,EAAWuD,QAC1B9nE,KAAK+nE,qBAAuBxD,EAAWwD,qBACvC/nE,KAAKgoE,yBAA2BzD,EAAWyD,yBAC3ChoE,KAAKioE,qBAAuB1D,EAAW0D,qBACvCjoE,KAAKkoE,oBAAsB3D,EAAW2D,oBACtCloE,KAAKmoE,oBAAsB5D,EAAW4D,oBACtCnoE,KAAKooE,oBAAsB7D,EAAW6D,oBACtCpoE,KAAKqoE,uBAAyB9D,EAAW8D,uBACzCroE,KAAKsoE,2BAA6B/D,EAAW+D,2BAC7CtoE,KAAKuoE,kBAAoBhE,EAAWgE,kBACpCvoE,KAAKwoE,oBAAsBjE,EAAWiE,oBACtCxoE,KAAKyoE,oBAAsBlE,EAAWkE,oBACtCzoE,KAAK2lE,kBAAoBpB,EAAWoB,kBACpC3lE,KAAK4lE,WAAarB,EAAWqB,UAC/B,EC1HI,MAAO8C,UAA8Eze,IAKzF/qD,YACEuY,GAEA9S,QAEA3E,KAAK9B,MAAQ,IAAI+nE,EAA8CxuD,EAAOvZ,OACtE8B,KAAK8lE,WAAaruD,EAAOquD,WACzB9lE,KAAK+lE,YAActuD,EAAOsuD,WAC5B,ECbI,MAAO4C,UAA0E1e,IAIrF/qD,YACEuY,GAEA9S,QAEA3E,KAAK0T,MAAQ+D,EAAO/D,MAEpB1T,KAAKsZ,OAAS7B,EAAO6B,OAClB3a,IAAKT,IAAU,IAAIwqE,EAAsExqE,IAC9F,ECfI,MAAO0qE,EA4BX1pE,YAAYqlE,GACVvkE,KAAK+K,GAAKw5D,EAAWx5D,GACrB/K,KAAKwkE,UAAYD,EAAWC,UAC5BxkE,KAAK0kE,SAAWH,EAAWG,SAC3B1kE,KAAKie,aAAesmD,EAAWtmD,aAC/Bje,KAAK+Y,OAASwrD,EAAWxrD,OACzB/Y,KAAK2kE,QAAUJ,EAAWI,QAC1B3kE,KAAK4kE,cAAgBL,EAAWK,cAChC5kE,KAAK6kE,UAAYN,EAAWM,UAC5B7kE,KAAKglE,WAAaT,EAAWS,WAC7BhlE,KAAKgnE,SAAWzC,EAAWyC,SAC3BhnE,KAAK8a,KAAOypD,EAAWzpD,KACvB9a,KAAKinE,gBAAkB1C,EAAW0C,gBAClCjnE,KAAKknE,qBAAuB3C,EAAW2C,qBACvClnE,KAAKga,QAAUuqD,EAAWvqD,QAC1Bha,KAAKqnE,mBAAqB9C,EAAW8C,mBACrCrnE,KAAK2Y,YAAc4rD,EAAW5rD,YAC9B3Y,KAAK0Z,cAAgB6qD,EAAW7qD,cAChC1Z,KAAKylE,mBAAqBlB,EAAWkB,mBACrCzlE,KAAKwlE,eAAiBjB,EAAWiB,eACjCxlE,KAAK6nE,YAActD,EAAWsD,YAC9B7nE,KAAK8nE,QAAUvD,EAAWuD,QAC1B9nE,KAAK6oE,QAAUtE,EAAWsE,QAC1B7oE,KAAK2lE,kBAAoBpB,EAAWoB,kBACpC3lE,KAAK4lE,WAAarB,EAAWqB,WAC7B5lE,KAAK8oE,WAAavE,EAAWuE,WAC7B9oE,KAAK+oE,uBAAyBxE,EAAWwE,sBAC3C,ECrDI,MAAOC,UAA8E/e,IAKzF/qD,YACEuY,GAEA9S,QAEA3E,KAAK9B,MAAQ,IAAI0qE,EAA8CnxD,EAAOvZ,OACtE8B,KAAK8lE,WAAaruD,EAAOquD,WACzB9lE,KAAK+lE,YAActuD,EAAOsuD,WAC5B,ECbI,MAAOkD,UAA0Ehf,IAIrF/qD,YACEuY,GAEA9S,QAEA3E,KAAK0T,MAAQ+D,EAAO/D,MAEpB1T,KAAKsZ,OAAS7B,EAAO6B,OAClB3a,IAAKT,IAAU,IAAI8qE,EAAsE9qE,IAC9F,ECfI,MAAOgrE,EAkCXhqE,YAAYqlE,GACVvkE,KAAK+K,GAAKw5D,EAAWx5D,GACrB/K,KAAKwkE,UAAYD,EAAWC,UAC5BxkE,KAAK0kE,SAAWH,EAAWG,SAC3B1kE,KAAKie,aAAesmD,EAAWtmD,aAC/Bje,KAAK0Z,cAAgB6qD,EAAW7qD,cAChC1Z,KAAK2kE,QAAUJ,EAAWI,QAC1B3kE,KAAKglE,WAAaT,EAAWS,WAC7BhlE,KAAKkmE,UAAY3B,EAAW2B,UAC5BlmE,KAAK6kE,UAAYN,EAAWM,UAC5B7kE,KAAK4kE,cAAgBL,EAAWK,cAChC5kE,KAAKwnE,+BACHjD,EAAWiD,+BACbxnE,KAAK2Y,YAAc4rD,EAAW5rD,YAC9B3Y,KAAKqb,UAAYkpD,EAAWlpD,UAC5Brb,KAAKmpE,iBAAmB5E,EAAW4E,iBACnCnpE,KAAKopE,sBAAwB7E,EAAW6E,sBACxCppE,KAAK+Y,OAASwrD,EAAWxrD,OACzB/Y,KAAKwlE,eAAiBjB,EAAWiB,eACjCxlE,KAAKylE,mBAAqBlB,EAAWkB,mBACrCzlE,KAAK6nE,YAActD,EAAWsD,YAC9B7nE,KAAK8nE,QAAUvD,EAAWuD,QAC1B9nE,KAAK6oE,QAAUtE,EAAWsE,QAC1B7oE,KAAK4nE,aAAerD,EAAWqD,aAC/B5nE,KAAKqpE,SAAW9E,EAAW8E,SAC3BrpE,KAAKqnE,mBAAqB9C,EAAW8C,mBACrCrnE,KAAKspE,wBAA0B/E,EAAW+E,wBAC1CtpE,KAAKupE,4BAA8BhF,EAAWgF,4BAC9CvpE,KAAKwpE,2BAA6BjF,EAAWiF,2BAC7CxpE,KAAKyoE,oBAAsBlE,EAAWkE,oBACtCzoE,KAAK8kE,mBAAqBP,EAAWO,mBACrC9kE,KAAK+kE,qBAAuBR,EAAWQ,qBACvC/kE,KAAK2lE,kBAAoBpB,EAAWoB,kBACpC3lE,KAAK4lE,WAAarB,EAAWqB,UAC/B,EClEI,MAAO6D,UAAwFxf,IAKnG/qD,YACEuY,GAEA9S,QAEA3E,KAAK9B,MAAQ,IAAIgrE,EAAwDzxD,EAAOvZ,OAChF8B,KAAK8lE,WAAaruD,EAAOquD,WACzB9lE,KAAK+lE,YAActuD,EAAOsuD,WAC5B,ECbI,MAAO2D,UAAoFzf,IAI/F/qD,YACEuY,GAEA9S,QAEA3E,KAAK0T,MAAQ+D,EAAO/D,MAEpB1T,KAAKsZ,OAAS7B,EAAO6B,OAClB3a,IAAKT,IAAU,IAAIurE,EAAgFvrE,IACxG,ECfI,MAAOyrE,EAWXzqE,YAAYqlE,GACVvkE,KAAK+K,GAAKw5D,EAAWx5D,GACrB/K,KAAK6a,YAAc0pD,EAAW1pD,YAC9B7a,KAAK4pE,eAAiBrF,EAAWqF,eACjC5pE,KAAK8a,KAAOypD,EAAWzpD,KACvB9a,KAAK6pE,YAActF,EAAWsF,YAC9B7pE,KAAK8pE,QAAUvF,EAAWuF,QAC1B9pE,KAAK+a,KAAOwpD,EAAWxpD,KACvB/a,KAAK+kB,MAAQw/C,EAAWx/C,MACxB/kB,KAAKgb,QAAUupD,EAAWvpD,OAC5B,ECnBI,MAAO+uD,UAAmE9f,IAK9E/qD,YACEuY,GAEA9S,QAEA3E,KAAK9B,MAAQ,IAAIyrE,EAAmClyD,EAAOvZ,OAC3D8B,KAAK8lE,WAAaruD,EAAOquD,WACzB9lE,KAAK+lE,YAActuD,EAAOsuD,WAC5B,ECbI,MAAOiE,UAA+D/f,IAI1E/qD,YACEuY,GAEA9S,QAEA3E,KAAK0T,MAAQ+D,EAAO/D,MAEpB1T,KAAKsZ,OAAS7B,EAAO6B,OAClB3a,IAAKT,IAAU,IAAI6rE,EAA2D7rE,IACnF,ECVI,MAAO+rE,EAQX/qE,YACEgrE,GAEAlqE,KAAKoZ,SAAW8wD,EAAuB9wD,SAAW,IAAI4sD,EACpDkE,EAAuB9wD,UACrB,KAEJpZ,KAAK8Z,+BAAiCowD,EAAuBpwD,+BACzD,IAAI4vD,EACJQ,EAAuBpwD,gCAEvB,KAEJ9Z,KAAKqa,qBAAuB6vD,EAAuB7vD,qBAC/C,IAAI4uD,EACJiB,EAAuB7vD,sBAEvB,KAEJra,KAAK2a,qBAAuBuvD,EAAuBvvD,qBAC/C,IAAIguD,EACJuB,EAAuBvvD,sBAEvB,KAEJ3a,KAAKqb,UAAY6uD,EAAuB7uD,UAAY,IAAI2uD,EACtDE,EAAuB7uD,WACrB,IACN,iBCxCF,MAAM8uD,EAA+BlqE,KACnC,CACE8K,MAAIsrB,KAASp2B,MACbukE,aAAWnuC,KAASp2B,MACpBwkE,OAAQxkE,KACRykE,SAAUzkE,KACVge,aAAche,KACd0Y,eAAa0d,KAASp2B,MACtB0kE,WAAStuC,KAASp2B,MAClB2kE,iBAAevuC,KAASp2B,MACxB4kE,aAAWxuC,KAASp2B,MACpB6kE,sBAAoBzuC,KAASp2B,MAC7B8kE,wBAAsB1uC,KAASp2B,MAC/B+kE,cAAY3uC,KAASp2B,MACrBglE,YAAU5uC,KAASp2B,MACnBilE,gBAAc7uC,KAASp2B,MACvBklE,gBAAc9uC,KAASp2B,MACvBmlE,gBAAc/uC,KAASp2B,MACvBolE,SAAOhvC,KAASp2B,MAChB8sD,sBAAoB12B,KAASp2B,MAC7BqlE,6BAA2BjvC,KAASp2B,MACpCslE,6BAA2BlvC,KAASp2B,MACpCulE,kBAAgBnvC,KAASp2B,MACzBwlE,sBAAoBpvC,KAASp2B,MAC7B8Y,UAAQsd,KAASp2B,MACjBylE,sBAAoBrvC,KAASp2B,MAC7B0lE,qBAAmBtvC,KAASp2B,MAC5B2lE,cAAYvvC,KAASp2B,OAEvB,gCC5BImqE,EAAuDnqE,KAAO,CAClE/B,MAAOisE,EACPrE,cAAYzvC,KAASp2B,KAASA,KAAUA,KAAQA,QAChD8lE,eAAa1vC,KAASp2B,OACrB,wDCJGoqE,EAAmDpqE,KAAO,CAC9DyT,SAAO2iB,KAASp2B,MAChBqZ,OAAQrZ,KAAQmqE,IACf,oDCJGE,EAA2CrqE,KAC/C,CACE8K,MAAIsrB,KAASp2B,MACbukE,aAAWnuC,KAASp2B,MACpBykE,SAAUzkE,KACVge,aAAche,KACd0kE,WAAStuC,KAASp2B,MAClB2kE,iBAAevuC,KAASp2B,MACxB4kE,aAAWxuC,KAASp2B,MACpBimE,aAAW7vC,KAASp2B,MACpB+kE,cAAY3uC,KAASp2B,MACrBkmE,YAAU9vC,KAASp2B,MACnB0Y,eAAa0d,KAASp2B,MACtBmmE,kBAAgB/vC,KAASp2B,MACzBomE,iBAAehwC,KAASp2B,MACxBqmE,iBAAejwC,KAASp2B,MACxBsmE,kBAAgBlwC,KAASp2B,MACzBumE,oBAAkBnwC,KAASp2B,MAC3BwmE,iBAAepwC,KAASp2B,MACxBymE,cAAYrwC,KAASp2B,MACrB0mE,aAAWtwC,KAASp2B,MACpByZ,iBAAe2c,KAASp2B,MACxB2mE,iCAA+BvwC,KAASp2B,MACxC4mE,sCAAoCxwC,KAASp2B,MAC7C6mE,uCAAqCzwC,KAASp2B,MAC9C8mE,mBAAiB1wC,KAASp2B,MAC1B+mE,YAAU3wC,KAASp2B,MACnBgnE,mBAAiB5wC,KAASp2B,MAC1BinE,wBAAsB7wC,KAASp2B,MAC/BknE,uBAAqB9wC,KAASp2B,MAC9BmnE,WAAS/wC,KAASp2B,MAClBonE,sBAAoBhxC,KAASp2B,MAC7BqnE,iBAAejxC,KAASp2B,MACxBsnE,qBAAmBlxC,KAASp2B,MAC5BunE,kCAAgCnxC,KAASp2B,MACzCwnE,sBAAoBpxC,KAASp2B,MAC7BynE,cAAYrxC,KAASp2B,MACrB8Y,UAAQsd,KAASp2B,MACjBulE,kBAAgBnvC,KAASp2B,MACzBwlE,sBAAoBpvC,KAASp2B,MAC7B0nE,kBAAgBtxC,KAASp2B,MACzB2nE,gBAAcvxC,KAASp2B,MACvB4nE,eAAaxxC,KAASp2B,MACtB6nE,WAASzxC,KAASp2B,MAClB8nE,wBAAsB1xC,KAASp2B,MAC/B+nE,4BAA0B3xC,KAASp2B,MACnCgoE,wBAAsB5xC,KAASp2B,MAC/BioE,uBAAqB7xC,KAASp2B,MAC9BkoE,uBAAqB9xC,KAASp2B,MAC9BmoE,uBAAqB/xC,KAASp2B,MAC9BooE,0BAAwBhyC,KAASp2B,MACjCqoE,8BAA4BjyC,KAASp2B,MACrCsoE,qBAAmBlyC,KAASp2B,MAC5BuoE,uBAAqBnyC,KAASp2B,MAC9BwoE,uBAAqBpyC,KAASp2B,MAC9B0lE,qBAAmBtvC,KAASp2B,MAC5B2lE,cAAYvvC,KAASp2B,OAEvB,4CCzDIsqE,EAAmEtqE,KAAO,CAC9E/B,MAAOosE,EACPxE,cAAYzvC,KAASp2B,KAASA,KAAUA,KAAQA,QAChD8lE,eAAa1vC,KAASp2B,OACrB,oECJGuqE,EAA+DvqE,KAAO,CAC1EyT,SAAO2iB,KAASp2B,MAChBqZ,OAAQrZ,KAAQsqE,IACf,gECJGE,GAA2CxqE,KAC/C,CACE8K,MAAIsrB,KAASp2B,MACbukE,aAAWnuC,KAASp2B,MACpBykE,SAAUzkE,KACVge,aAAche,KACd8Y,UAAQsd,KAASp2B,MACjB0kE,WAAStuC,KAASp2B,MAClB2kE,iBAAevuC,KAASp2B,MACxB4kE,aAAWxuC,KAASp2B,MACpB+kE,cAAY3uC,KAASp2B,MACrB+mE,YAAU3wC,KAASp2B,MACnB6a,QAAMub,KAASp2B,MACfgnE,mBAAiB5wC,KAASp2B,MAC1BinE,wBAAsB7wC,KAASp2B,MAC/B+Z,WAASqc,KAASp2B,MAClBonE,sBAAoBhxC,KAASp2B,MAC7B0Y,eAAa0d,KAASp2B,MACtByZ,iBAAe2c,KAASp2B,MACxBwlE,sBAAoBpvC,KAASp2B,MAC7BulE,kBAAgBnvC,KAASp2B,MACzB4nE,eAAaxxC,KAASp2B,MACtB6nE,WAASzxC,KAASp2B,MAClB4oE,WAASxyC,KAASp2B,MAClB0lE,qBAAmBtvC,KAASp2B,MAC5B2lE,cAAYvvC,KAASp2B,MACrB6oE,cAAYzyC,KAASp2B,MACrB8oE,0BAAwB1yC,KAASp2B,OAEnC,4CC5BIyqE,EAAmEzqE,KAAO,CAC9E/B,MAAOusE,GACP3E,cAAYzvC,KAASp2B,KAASA,KAAUA,KAAQA,QAChD8lE,eAAa1vC,KAASp2B,OACrB,oECJG0qE,EAA+D1qE,KAAO,CAC1EyT,SAAO2iB,KAASp2B,MAChBqZ,OAAQrZ,KAAQyqE,IACf,gECJGE,GAAqD3qE,KACzD,CACE8K,MAAIsrB,KAASp2B,MACbukE,aAAWnuC,KAASp2B,MACpBykE,SAAUzkE,KACVge,aAAche,KACdyZ,iBAAe2c,KAASp2B,MACxB0kE,WAAStuC,KAASp2B,MAClB+kE,cAAY3uC,KAASp2B,MACrBimE,aAAW7vC,KAASp2B,MACpB4kE,aAAWxuC,KAASp2B,MACpB2kE,iBAAevuC,KAASp2B,MACxBunE,kCAAgCnxC,KAASp2B,MACzC0Y,eAAa0d,KAASp2B,MACtBob,aAAWgb,KAASp2B,MACpBkpE,oBAAkB9yC,KAASp2B,MAC3BmpE,yBAAuB/yC,KAASp2B,MAChC8Y,UAAQsd,KAASp2B,MACjBulE,kBAAgBnvC,KAASp2B,MACzBwlE,sBAAoBpvC,KAASp2B,MAC7B4nE,eAAaxxC,KAASp2B,MACtB6nE,WAASzxC,KAASp2B,MAClB4oE,WAASxyC,KAASp2B,MAClB2nE,gBAAcvxC,KAASp2B,MACvBopE,YAAUhzC,KAASp2B,MACnBonE,sBAAoBhxC,KAASp2B,MAC7BqpE,2BAAyBjzC,KAASp2B,MAClCspE,+BAA6BlzC,KAASp2B,MACtCupE,8BAA4BnzC,KAASp2B,MACrCwoE,uBAAqBpyC,KAASp2B,MAC9B6kE,sBAAoBzuC,KAASp2B,MAC7B8kE,wBAAsB1uC,KAASp2B,MAC/B0lE,qBAAmBtvC,KAASp2B,MAC5B2lE,cAAYvvC,KAASp2B,OAEvB,sDClCI4qE,GAA6E5qE,KAAO,CACxF/B,MAAO0sE,GACP9E,cAAYzvC,KAASp2B,KAASA,KAAUA,KAAQA,QAChD8lE,eAAa1vC,KAASp2B,OACrB,8ECJG6qE,EAAyE7qE,KAAO,CACpFyT,SAAO2iB,KAASp2B,MAChBqZ,OAAQrZ,KAAQ4qE,KACf,0ECJGE,GAAgC9qE,KACpC,CACE8K,MAAIsrB,KAASp2B,MACb4a,eAAawb,KAASp2B,MACtB2pE,kBAAgBvzC,KAASp2B,MACzB6a,QAAMub,KAASp2B,MACf4pE,eAAaxzC,KAASp2B,MACtB6pE,WAASzzC,KAASp2B,MAClB8a,QAAMsb,KAASp2B,MACf8kB,SAAOsR,KAASp2B,MAChB+a,WAASqb,KAASp2B,OAEpB,iCCXI+qE,EAAwD/qE,KAAO,CACnE/B,MAAO6sE,GACPjF,cAAYzvC,KAASp2B,KAASA,KAAUA,KAAQA,QAChD8lE,eAAa1vC,KAASp2B,OACrB,yDCJGgrE,GAAoDhrE,KAAO,CAC/DyT,SAAO2iB,KAASp2B,MAChBqZ,OAAQrZ,KAAQ+qE,IACf,qDCAGE,EAAyBjrE,KAAO,CACpCmZ,SAAUnZ,KAAQ,CAACoqE,EAAkDpqE,MAAS,YAC9E6Z,+BAAgC7Z,KAAQ,CACtC6qE,EACA7qE,MACC,kCACHoa,qBAAsBpa,KAAQ,CAAC0qE,EAA8D1qE,MAAS,wBACtG0a,qBAAsB1a,KAAQ,CAACuqE,EAA8DvqE,MAAS,wBACtGob,UAAWpb,KAAQ,CAACgrE,GAAmDhrE,MAAS,cAC/E,0CCRI,MAAMke,EAA4B,IAiBlC,IAAM9B,EAAiB,MAAxB,MAAOA,UAAyBsa,IAC9BzZ,OACJ1R,IAAuB,IAAAvK,EAAAjB,KAAA,SAAAkB,KAAA,YAEvB,MAAMoyB,EAAS,IAAID,IAAiB7nB,IAEpC,IACE,MAAM6K,QAAiBpV,EAAKoE,IAC1B,SACA6lE,EACA53C,GAGF,OAAmB,MAAZjd,EACH,IAAI4zD,EAA4B5zD,GAChC,IACN,OAASpR,GACP,OAAOhE,EAAKywB,WACVzsB,EACA,oDAEJ,CAAC,EAnBsB,EAoBzB,CAEM8X,YACJrF,IAAkB,IAAAjV,EAAAzC,KAAA,SAAAkB,KAAA,YAElB,MAAMoyB,EAAS,IAAID,IAAiB,CAClC3b,gBAGF,IACE,MAAMrB,QAAiB5T,EAAK4C,IAC1B,eACA6lE,EACA53C,GAGF,OAAmB,MAAZjd,EACH,IAAI4zD,EAA4B5zD,GAChC,IACN,OAASpR,GACP,OAAOxC,EAAKivB,WACVzsB,EACA,oDAEJ,CAAC,EArBiB,EAsBpB,CAEM8Y,kBACJgU,IAAiC,IAAA+iC,EAAA90D,KAAA,SAAAkB,KAAA,YAEjC,IACE,aAAa4zD,EAAK/9B,KAChB,SACAy3B,KACAz8B,GAEJ,OAAS9sB,GACP,OAAO6vD,EAAKpjC,WACVzsB,EACA,iDAEJ,CAAC,EAbgC,EAcnC,CAAClF,SAAAC,KAAA,gEAhEUqc,KAAgBpc,GAAhBoc,EAAgB,GAgE1B,GAhE0Btc,SAAAC,KAAA,WAAAI,GAAAwC,IAAA,OAAhByZ,EAAgBxZ,QAAhBwZ,EAAgBvZ,UAAAC,WAFf,gBAEDsZ,CAAiB,oGCjBvB,IAAM+D,EAA2B,MAAlC,MAAOA,EAHblhB,cAImBc,KAAAS,UAASC,OAAOC,MAE3B2f,yBACJ6qD,GAAkB,IAAAlqE,EAAAjB,KAAA,SAAAkB,KAAA,YAElB,MAAME,QAAeC,QAAAC,IAAA,CAAAC,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,OAAAD,EAAAC,EAAA,QAAAC,KAAAF,EAAAG,KAAAH,EAAA,OAIrB,OAAON,EAAKR,OAAOkB,KAAKP,EAAOgqE,8BAA+B,CAC5DtpE,MAAO+yC,KACP/1C,KAAM,CACJqsE,aAEFtpE,WAAY,CAAC,2BACZ,EAZe,EAapB,CAAC9B,SAAAC,KAAA,mBAAAC,iBAjBUmgB,EAA2B,EAAArgB,SAAAC,KAAA,WAAAg6B,EAAAp3B,IAAA,OAA3Bwd,EAA2Bvd,QAA3Bud,EAA2Btd,UAAAC,WAF1B,gBAEDqd,CAA2B,sBCRxC,IAAAzhB,EAAA,CACA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,KACA,MAEA,aACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,mBACA,KACA,MAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,IACA,KAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,KACA,MAEA,eACA,MACA,OAEA,wBACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,KACA,MAEA,gBACA,MACA,OAEA,aACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,gBACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,IACA,KAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,yBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,KACA,MAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,8BACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,KACA,MAEA,kBACA,MACA,OAEA,qBACA,KACA,MAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,KACA,MAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,KACA,MAEA,kBACA,KACA,MAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,MACA,OAEA,sBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,sBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,KACA,MAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,KACA,MAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,uBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,IACA,KAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,IACA,KAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,uBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,GACA,IAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,IACA,KAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,IACA,KAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,uBACA,KACA,MAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,KACA,MAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,IACA,KAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,KACA,MAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,wBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,IACA,KAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,KACA,MAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,KACA,MAEA,kBACA,MACA,OAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,KACA,MAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,wBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,KACA,MAEA,kBACA,KACA,MAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,KACA,MAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,KACA,MAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,wBACA,MACA,OAEA,wBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,mBACA,MACA,OAEA,kBACA,KACA,MAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,KACA,MAEA,uBACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,IACA,KAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,IACA,KAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,wBACA,MACA,OAEA,wBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,KACA,MAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,kBACA,MACA,OAEA,qBACA,MACA,OAEA,kBACA,MACA,OAEA,sBACA,MACA,OAEA,sBACA,MACA,OAEA,mBACA,MACA,OAEA,wBACA,MACA,OAEA,wBACA,MACA,OAEA,mBACA,MACA,OAEA,mBACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,0BACA,MACA,OAEA,uBACA,KACA,MAEA,0BACA,KACA,MAEA,0BACA,MACA,OAEA,uBACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,eACA,MACA,OAEA,YACA,KACA,MAEA,oBACA,IACA,KAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,KACA,MAEA,oBACA,MACA,OAEA,oBACA,KACA,MAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,iBACA,IACA,KAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,iBACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,gBACA,KACA,MAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,YACA,IACA,KAEA,YACA,KACA,MAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,KACA,MAEA,kBACA,MACA,OAEA,aACA,KACA,MAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,KACA,MAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,KACA,MAEA,eACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,aACA,KACA,MAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,KACA,MAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,IACA,KAEA,aACA,KACA,MAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,kBACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,KACA,MAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,iBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,eACA,MACA,OAEA,YACA,MACA,OAEA,iBACA,MACA,OAEA,iBACA,KACA,MAEA,iBACA,MACA,OAEA,YACA,KACA,MAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,YACA,MACA,OAEA,eACA,MACA,OAEA,YACA,IACA,KAEA,gBACA,MACA,OAEA,gBACA,MACA,OAEA,aACA,MACA,OAEA,kBACA,MACA,OAEA,kBACA,MACA,OAEA,aACA,MACA,OAEA,aACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,IACA,KAEA,iBACA,MACA,OAEA,oBACA,MACA,OAEA,oBACA,MACA,OAEA,iBACA,MACA,OAEA,YACA,MACA,OAEA,YACA,MACA,QAGA,SAAA0sE,EAAAh6C,GACA,IAAA9vB,EAAA+pE,EAAA3sE,EAAA0yB,GACA,OAAAhwB,QAAAkqE,UAAA9pE,KAAA,KACA,IAAAD,EAAA,IAAAnC,MAAA,uBAAAgyB,EAAA,KACA,MAAA7vB,EAAAkqD,KAAA,mBACAlqD,IAIA,IAAAgqE,EAAA7sE,EAAA0yB,GAAAtmB,EAAAygE,EAAA,GACA,OAAAjqE,EAAAC,EAAAgqE,EAAA,IAAA/pE,KAAA,IACAF,EAAAwJ,GAEA,CACAsgE,EAAAttE,KAAA,IAAAD,OAAAC,KAAAY,GACA0sE,EAAAtgE,GAAA,MACA3J,EAAAqqE,QAAAJ","names":["shiftDates","body","obj","Date","Function","Array","checkOnPureObject","copy","Object","keys","forEach","key","value","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","isArray","map","item","removeAvatarUrl","data","reduce","acc","ApplicationInsightsModule","constructor","applicationInsightsService","parentModule","Error","stringify","init","forRoot","config","ngModule","providers","provide","AngularApplicationInsightsConfig","useValue","static","this","t","i0","i1","core","$C","G2t","CommonModule","SessionsDialogService","dialog","inject","MatDialog","destroyRef","DestroyRef","overlay","Overlay","openSessionsDialog","_this","_asyncToGenerator","sessionsDialogPromise","module","Promise","all","__webpack_require__","e","then","bind","open","SessionsDialogComponent","panelClass","width","DEFAULT_MIDDLE_DIALOG_WIDTH","scrollStrategy","scrollStrategies","block","afterClosed","pipe","takeUntilDestroyed","subscribe","undefined","openRenewDialog","_this2","renewDialogPromise","RenewDialogComponent","jDH","factory","ɵfac","providedIn","LocaleService","locale","navigator","language","initializeLocale","getLocale","importLocale","catch","split","fallbackLocaleModule","registerLocaleData","default","ProcureDateAdapter","NativeDateAdapter","getFirstDayOfWeek","ProcureTitleStrategy","TitleStrategy","titleService","TitleService","updateTitle","snapshot","title","buildTitle","setTitle","GlobalErrorHandlerService","ErrorHandler","environmentConfig","super","injector","Injector","appInsightsService","ApplicationInsightsService","handleError","error","trackException","exception","production","get","SnackbarService","showErrorSnackbar","name","text","message","ENVIRONMENT_CONFIG","azureMapsSubscriptionKey","environment","isEnvironmentBannerEnabled","apiEndpoint","msalApiEndpointResource","msalConfig","apiEndpointId","clientId","instance","cacheLocation","msalLoggingEnabled","signalrLoggingEnabled","instrumentationKey","mapOptions","authOptions","authType","AuthenticationType","subscriptionKey","baseUrl","endpoints","addressSearch","httpInterceptorProviders","HTTP_INTERCEPTORS","useClass","MsalInterceptor","multi","scrollFactory","close","APP_PROVIDERS","MSAL_INSTANCE","useFactory","MSALInstanceFactory","PublicClientApplication","auth","authority","redirectUri","postLogoutRedirectUri","navigateToLoginRequestUrl","cache","BrowserCacheLocation","LocalStorage","storeAuthStateInCookie","system","loggerOptions","logLevel","LogLevel","Info","piiLoggingEnabled","loggerCallback","containsPii","console","info","Verbose","debug","Warning","warn","log","MSAL_GUARD_CONFIG","MSALGuardConfigFactory","authRequest","scopes","interactionType","InteractionType","Redirect","MSAL_INTERCEPTOR_CONFIG","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","MsalService","MsalBroadcastService","MsalGuard","MAT_DIALOG_DEFAULT_OPTIONS","DEFAULT_DIALOG_WIDTH","disableClose","autoFocus","hasBackdrop","LOCALE_ID","localeService","deps","MAT_DATEPICKER_SCROLL_STRATEGY","MAT_SELECT_SCROLL_STRATEGY","ENVIRONMENT_INFO","id","toLowerCase","version","APP_VERSION","buildNumber","BUILD_NUMBER","MAT_TOOLTIP_DEFAULT_OPTIONS","disableTooltipInteractivity","MAT_DIALOG_SCROLL_STRATEGY","options","ScrollStrategyOptions","DateAdapter","MAT_TABS_CONFIG","animationDuration","stretchTabs","MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS","hideSingleSelectionIndicator","hideMultipleSelectionIndicator","MessageKeys","NotificationsKey","TerminatedSessionsKey","ConcurrentSessionsKey","ExpiredSessionsKey","WarningExpirationSessionsKey","SignalrService","userIsNavigatingAway","messagesSubject$","BehaviorSubject","errorHandlerService","ErrorHandlerService","accessService","snackbarService","sessionsDialogService","dialogService","DialogService","fingerprintService","FingerprintService","messages$","asObservable","connect","hub","signalR","configureLogging","withUrl","fingerprint","accessTokenFactory","getToken","headers","Fingerprint","withAutomaticReconnect","build","connectHub","onreconnected","onclose","start","listen","err","trackError","disconnectHub","stop","on","handleNotifications","handleConcurrentSessions","handleExpiredSessions","handleTerminatedSessions","handleWarningExpirationSessions","handleMessage","showOkDialog","logout","setTimeout","showInfoSnackbar","account","getActiveAccount","firstValueFrom","acquireTokenSilent","token","accessToken","take","next","EnvironmentBannerComponent","VBU","selectors","inputs","identifier","standalone","features","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","InputSwitchComponent_Conditional_1_ng_content_1_Template","ctx_r0","control","labelPosition","tooltip","content_r2","InputSwitchComponent_Conditional_2_ng_content_1_Template","InputSwitchComponent","valueChange","EventEmitter","input","required","showMode","transform","booleanAttribute","condensed","isRequired","outputs","InputSwitchComponent_Conditional_1_Template","InputSwitchComponent_Conditional_2_Template","InputSwitchComponent_ng_template_3_Template","MatSlideToggleModule","MatTooltipModule","i2","ReactiveFormsModule","i3","NgTemplateOutlet","styles","encapsulation","$event","_r2","ctx_r2","markAllAsRead","unreadOnly","message_r5","_r4","$implicit","toggleRead","toggleArchive","_r6","stopPropagation","displayMore","InboxComponent","notifications","signal","count","totalCount","displayCount","isLoading","FormControl","notificationApiService","NotificationApiService","router","Router","signalrService","inboxService","InboxService","fetchData","effect","setUnread","allowSignalWrites","distinctUntilChanged","refresh$","valueChanges","event","url","path","URL","pathname","navigate","isRead","markAsUnread","markAsRead","clear","update","filter","notification","NotificationInboxMessageModel","updateCount","isArchived","unarchive","archive","hasMore","getNotifications","pageIndex","pageSize","orderBy","orderIsAscending","response","unreadCount","items","delta","_r1","InboxComponent_Conditional_11_Template","InboxComponent_Conditional_15_Template","InboxComponent_For_17_Template","_forTrack0","InboxComponent_Conditional_18_Template","inbox_r7","length","ButtonComponent","MatIconModule","MatMenuModule","RouterLink","MessageComponent","LoadingIndicatorComponent","QuicklinkDirective","SearchHighlightPipe","result","searchTerm","escaped","replace","re","searchTerms","txt","match","trim","reText","RegExp","join","EJ8","pure","ctx_r1","getFormControl","_c1","res_r4","projectName","QuickSearchComponent_Conditional_13_Conditional_0_For_6_Conditional_3_Template","EntityIdAliasPrefixes","Project","number","_r3","closePanel","QuickSearchComponent_Conditional_13_Conditional_0_For_6_Template","searchResult","projects","getEntityName","values","_c2","searchInput_r5","res_r7","requiredScope","QuickSearchComponent_Conditional_13_Conditional_1_For_6_Conditional_3_Template","RfRFQ","QuickSearchComponent_Conditional_13_Conditional_1_For_6_Template","requestForRequestForQuotations","res_r9","subject","QuickSearchComponent_Conditional_13_Conditional_2_For_6_Conditional_3_Template","Rfq","_r8","QuickSearchComponent_Conditional_13_Conditional_2_For_6_Template","requestForQuotations","res_r11","QuickSearchComponent_Conditional_13_Conditional_3_For_6_Conditional_3_Template","PurchaseRequisition","_r10","QuickSearchComponent_Conditional_13_Conditional_3_For_6_Template","purchaseRequisitions","res_r13","companyName","guid","city","country","QuickSearchComponent_Conditional_13_Conditional_4_For_6_Conditional_2_Template","Supplier","_r12","QuickSearchComponent_Conditional_13_Conditional_4_For_6_Template","suppliers","QuickSearchComponent_Conditional_13_Conditional_0_Template","QuickSearchComponent_Conditional_13_Conditional_1_Template","QuickSearchComponent_Conditional_13_Conditional_2_Template","QuickSearchComponent_Conditional_13_Conditional_3_Template","QuickSearchComponent_Conditional_13_Conditional_4_Template","QuickSearchComponent","hasResults","isEmpty","isFakePannelVisible","EntityUtility","hintFocusTrapped","isFocused","isSearching","searchedTerm","searchApiService","SearchApiService","changeRef","ChangeDetectorRef","renderer","Renderer2","formBuilder","FormBuilder","form","nonNullable","group","quickSearch","term","debounceTime","search","openFakePanel","closeFakePanel","autocomplete","onMouseDown","target","tagName","click","onSubmit","onSelect","setValue","selectRootElement","blur","addSearchActivity","entityId","entityNumber","force","SEARCH_ALL_SYMBOL","markForCheck","viewQuery","MatAutocompleteTrigger","QuickSearchComponent_Conditional_5_Template","QuickSearchComponent_Conditional_6_Template","QuickSearchComponent_ng_container_8_Template","QuickSearchComponent_Conditional_9_Template","option","QuickSearchComponent_ng_container_12_Template","QuickSearchComponent_Conditional_13_Template","QuickSearchComponent_ng_template_14_Template","resultPanel_r14","panelTooltip_r15","MatFormFieldModule","MatInputModule","MatAutocompleteModule","i4","i5","i6","MatProgressSpinnerModule","i7","MatOptionModule","EntityBadgeComponent","changeDetection","addRequestForRfq","showTemplateFinder","TemplateRfrfq","addProject","CreateMenuComponent","userState","UserState","templateFinderDialogService","TemplateFinderDialogService","skipLocationChange","openTemplateFinderDialog","MatMenu","CreateMenuComponent_Conditional_1_Template","CreateMenuComponent_Conditional_2_Template","CreateMenuComponent_Conditional_3_Template","CreateMenuComponent_Conditional_4_Template","tmp_0_0","current","permissions","canAddRequestForRequestForQuotation","canAddRequestForRequestForQutoationFromTemplate","tmp_1_0","tmp_2_0","tmp_3_0","canAddProject","environmentInfo","createMenu_r3","menu","logoutSubstituteUser","tmp_7_0","tsp_r6","_r5","resourceClick","description","icon","resourcesMenu_r7","adminMenu_r8","AppHeaderComponent_Conditional_21_Conditional_5_Conditional_0_Template","user_r9","canViewOrganisation","canManageOrganization","canManageUsers","canManageNotifications","canManageResources","canViewAdminView","userMenu_r10","avatarUrl","AppHeaderComponent_Conditional_21_Conditional_1_Template","AppHeaderComponent_Conditional_21_Conditional_2_Template","AppHeaderComponent_Conditional_21_Conditional_4_Template","AppHeaderComponent_Conditional_21_Conditional_5_Template","isSubstitute","lookupDataState","tsp","tmp_9_0","item_r12","_r11","isDocument","AppHeaderComponent","isExpanded","loginUserService","LoginUserService","LookupDataState","documentsApiService","DocumentsApiService","currentUser$","EMPTY_GUID","isDownloading","currentDownloads","isCurrentDownloading","resource","find","el","downloadSingleDocument","getResourceDownloadUrl$","res","window","location","href","stopImpersonatingUser","reload","logout$","toggleMenu","state","attrs","AppHeaderComponent_Conditional_2_Template","AppHeaderComponent_Conditional_19_Template","AppHeaderComponent_Conditional_21_Template","AppHeaderComponent_For_25_Template","AppHeaderComponent_Conditional_48_Template","AppHeaderComponent_Conditional_49_Template","AppHeaderComponent_Conditional_50_Template","AppHeaderComponent_Conditional_51_Template","AppHeaderComponent_Conditional_52_Template","AppHeaderComponent_Conditional_53_Template","AppHeaderComponent_Conditional_54_Template","AppHeaderComponent_Conditional_55_Template","AppHeaderComponent_Conditional_56_Template","_c3","tmp_12_0","tmp_13_0","tmp_14_0","tmp_15_0","tmp_16_0","tmp_17_0","tmp_18_0","tmp_19_0","tmp_20_0","tmp_21_0","AvatarComponent","createMenu_r2","_c4","_c5","AppNavigationComponent_Conditional_0_Conditional_3_Template","AppNavigationComponent_Conditional_0_Conditional_7_Template","AppNavigationComponent_Conditional_0_Conditional_8_Template","toggle","toggleSecondary","tmp_5_0","canManageCategories","tmp_6_0","canManageTemplates","preferences","isNavigationExpanded","isSecondaryNavigationExpanded","AppNavigationComponent","PreferencesState","toggleNavigation","toggleSecondaryNavigation","AppNavigationComponent_Conditional_0_Template","AsyncPipe","MenuComponent","MenuItemComponent","RouterOutlet","onAccept","privacyNotification","AppNotificationsComponent","globalNotification","globalNotificationApiService","GlobalNotificationApiService","notificationUpdated$","interval","confirmNotification$","notificationId","display","getApplicationNotifications$","AppNotificationsComponent_Conditional_1_Template","GlobalNotificationComponent","CardComponent","animation","trigger","transition","animate","style","opacity","AppComponent_Conditional_0_Conditional_5_Template","isIframe","AppComponent","msalGuardConfig","hostClass","mainRef","viewChild","read","ElementRef","initializationInProgress","loginDisplay","authService","msalBroadcastService","environmentState","EnvironmentState","userApiService","UserApiService","clearCachesOnNewDeploy","setIsProduction","setIsEnvironmentBannerEnabled","isForbidden","additionalInfoMessage","base","blackout","primaryAction","additionalInfo","closeCallback","updateTopOffset","topOffset","pxToRem","nativeElement","getBoundingClientRect","top","document","setProperty","ngOnInit","BrowserUtils","isInIframe","isInPopup","showBrowserInfo","events","endLoading","NavigationEnd","NavigationCancel","NavigationError","ActivationStart","initAuthentication","checkUserSession","ngOnDestroy","login","loginRedirect","setLoginDisplay","getAllAccounts","checkAndSetActiveAccount","accounts","setActiveAccount","localStorage","caches","getItem","removeItem","delete","setItem","msalSubject$","msg","eventType","EventType","LOGIN_SUCCESS","payload","inProgress$","status","InteractionStatus","None","AppComponent_Conditional_0_Template","AppComponent_Conditional_1_Template","entityIdMatcher","entityIdPrefix","includeRevision","createMatcher","segments","_segmentGroup","_route","consumed","posParams","segment","segmentPathUpperCase","toUpperCase","normalizedEntityIdPrefix","slice","hasRevision","startsWith","sanitizedSegment","UrlSegment","parameters","push","routes","canMatch","children","loadChildren","matcher","caseInsensitiveMatcher","mode","entityType","accessGuard","Category","Quotation","TemplateSPE","GeneralTSPE","Survey","SupplierEvaluation","redirectTo","canActivate","enableProdMode","bootstrapApplication","importProvidersFrom","BrowserModule","disableFetchTracking","MatSnackBarModule","MatDialogModule","MsalModule","NgSelectModule","MatNativeDateModule","AzureMapsModule","provideAnimations","provideHttpClient","withInterceptors","dateInterceptor","req","FormData","method","clone","concurrentSessionInterceptor","catchError","HttpErrorResponse","throwError","CustomHttpErrorResponse","impersonationInterceptor","request","mystiqueKey","fingerprintInterceptor","append","wafInterceptor","withInterceptorsFromDi","provideRouter","withComponentInputBinding","withInMemoryScrolling","scrollPositionRestoration","withRouterConfig","onSameUrlNavigation","withDisabledInitialNavigation","withEnabledBlockingInitialNavigation","withPreloading","QuicklinkStrategy","quicklinkProviders","CustomHttpUrlEncodingCodec","HttpUrlEncodingCodec","encodeKey","encodeURIComponent","encodeValue","CustomHttpParams","params","encoder","jsonObject","toJsonValue","parseJsonValueIntoMap","has","param","from","toHttpParams","dictionary","entries","HttpParams","fromObject","toString","operation","paramSet","existingValue","nextChar","substring","includes","JSON","parse","prefix","httpParamsMap","i","prototype","hasOwnProperty","call","DateString","u","c","Monad","chain","validate","s","d","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","adjustToUtc","isValid","a","formatISO","nullable","type","optional","BaseApiService","HttpApi","getEndpointUrl","ApiService","baseApiService","get$","post$","post","put$","put","delete$","downloadBlob$","downloadBlob","catchError$","propagateErrors","of","IoTsTypeError","catchHttpError","statusCode","statusText","customStatusText","formatStatus","errorMessage","allErrors","errorResponse","errorProperty","getErrorMessages","httpClient","HttpClient","pathName","ioTsType","queryParameters","request$","getHttpResponseBody$","lastValueFrom","fullUrl","endpointUrl","responseType","observe","observable$","HttpEventType","Response","decode","hasErrorByRuntime","isRight","right","decodeRes","errors","PathReporter","report","parsedErrors","isProduction","reportProgress","initialState","computed","currentState","_angular_core__WEBPACK_IMPORTED_MODULE_0__","fetchData$","apiCall$","loading","callback","_x","_x2","_x3","_fetchData","apply","arguments","apiCall","InitialsPipe","part","onImageError","avatar","sharp","hasError","hostVars","hostBindings","AvatarComponent_Conditional_0_Template","AvatarComponent_Conditional_1_Template","class","backgroundColor","link","view","label","BadgeComponent_Conditional_0_Conditional_0_Template","BadgeComponent_Conditional_0_Conditional_1_Template","openInNewTab","BadgeComponent","BadgeComponent_Conditional_0_Template","BadgeComponent_Conditional_1_Template","condensedIcon","suffix","badge","badgeLimit","color","variant","UNREAD_NOTIFICATIONS_LIMIT","disabled","active","elevated","animateBadgeChange","wide","_badge","classes","Boolean","isDisabled","previous","badgeItem","classList","remove","add","contentQueries","dirIndex","MatIcon","MatBadge","ButtonComponent_Conditional_1_Template","ButtonComponent_Conditional_4_Template","ButtonComponent_Conditional_5_Template","ButtonComponent_Conditional_6_Template","ButtonComponent_Conditional_7_Template","MatBadgeModule","cover","loadingDiameter","flat","accent","opaque","isCondensed","isFlat","isAccent","CopyButtonComponent","isUrl","clipboardService","ClipboardService","copyLink","copyEntityNumber","EntityBadgeComponent_Conditional_0_Conditional_2_Template","EntityBadgeComponent_Conditional_0_Conditional_3_Template","linked","clickable","label_r4","copyNumber","colors","PROJ","RFRFQ","RFQ","QUOT","PREQ","PEX","PE","TRFRFQ","CATM","SUP","STRAT","USER","TSPE","PSPE","GSPT","SPE","DSESC","getType","origin","EntityBadgeComponent_Conditional_0_Template","hint","ExpansionPanelComponent_Conditional_4_Conditional_6_Conditional_0_Template","ExpansionPanelComponent_Conditional_4_Conditional_6_Conditional_1_Template","fromSAPAriba","ExpansionPanelComponent_Conditional_4_Conditional_8_Conditional_1_Template","labelLink","ExpansionPanelComponent_Conditional_4_Conditional_2_Template","ExpansionPanelComponent_Conditional_4_Conditional_3_Template","ExpansionPanelComponent_Conditional_4_Conditional_4_Template","ExpansionPanelComponent_Conditional_4_Conditional_6_Template","ExpansionPanelComponent_Conditional_4_Conditional_8_Template","ExpansionPanelComponent_Conditional_4_Conditional_9_Template","ExpansionPanelComponent_Conditional_4_Conditional_10_Template","visibleHeight","tmp_4_0","showZeroBadge","labelSuffix","tmp_11_0","ExpansionPanelComponent","closed","output","opened","expansionPanelClass","panelHeight","expanded","hideToggle","hideHeader","expansionPanel","MatExpansionPanel","emit","ExpansionPanelComponent_Conditional_4_Template","MatExpansionModule","NumberBadgeComponent","StatusBadgeComponent","preview","acceptNotification","GlobalNotificationComponent_Conditional_0_Template","inset","diameter","position","delay","activeClass","insetClass","opaqueClass","coverClass","MenuChildComponent_Conditional_0_Conditional_0_Conditional_2_ng_container_0_Template","content_r1","MenuChildComponent_Conditional_0_Conditional_0_Conditional_2_Template","last","show","route_r2","MenuChildComponent_Conditional_0_Conditional_0_Template","MenuChildComponent_Conditional_1_Conditional_0_Conditional_2_ng_container_0_Template","MenuChildComponent_Conditional_1_Conditional_0_Conditional_2_Template","MenuChildComponent_Conditional_1_Conditional_0_Template","MenuChildComponent","route","parent","first","selected","viewNavigationService","ViewNavigationService","setActiveView","searchParams","history","pushState","MenuChildComponent_Conditional_0_Template","MenuChildComponent_Conditional_1_Template","MenuChildComponent_ng_template_5_Template","icon_r3","MenuItemComponent_Conditional_0_Conditional_2_Conditional_0_Template","MenuItemComponent_Conditional_0_Conditional_2_Conditional_1_Template","outlined","MenuItemComponent_Conditional_0_Conditional_2_Template","MenuItemComponent_Conditional_0_Conditional_3_Template","MenuItemComponent_Conditional_0_Conditional_4_Template","MenuItemComponent_Conditional_0_ng_container_5_Template","activeView","faded","primary","itemTooltip","warning","content_r4","icon_r5","MenuItemComponent_Conditional_1_Conditional_2_Conditional_0_Template","MenuItemComponent_Conditional_1_Conditional_2_Conditional_1_Template","MenuItemComponent_Conditional_1_Conditional_2_Template","MenuItemComponent_Conditional_1_Conditional_3_Template","MenuItemComponent_Conditional_1_ng_container_4_Template","partialMatch","fragment","tmp_8_0","icon_r6","MenuItemComponent_Conditional_2_Conditional_2_Conditional_0_Template","MenuItemComponent_Conditional_2_Conditional_2_Conditional_1_Template","MenuItemComponent_Conditional_2_Conditional_2_Template","MenuItemComponent_Conditional_2_Conditional_3_Template","MenuItemComponent_Conditional_2_ng_container_4_Template","MenuItemComponent_ng_template_3_Conditional_0_Template","showChildren","viewChange","secondary","MenuItemComponent_Conditional_0_Template","MenuItemComponent_Conditional_1_Template","MenuItemComponent_Conditional_2_Template","MenuItemComponent_ng_template_3_Template","RouterLinkActive","MenuComponent_Conditional_0_Conditional_1_Template","MenuComponent_Conditional_0_Conditional_2_Template","titleAttr","icons","bottom","MenuComponent_Conditional_0_Template","small","NumberBadgeComponent_Conditional_3_Template","ShowFieldComponent_Conditional_2_Conditional_1_Template","ShowFieldComponent_Conditional_2_Conditional_3_Template","invalid","ShowFieldComponent","hideLabel","statusColor","ShowFieldComponent_Conditional_2_Template","user_r2","colored","clearable","getDisplay","TagListComponent_Conditional_1_For_1_Conditional_0_Template","TagListComponent_Conditional_1_For_1_Template","trackByFn","users","tag_r5","selectActive","isActive","displayLabel","isString","tags","limitedTags","TagListComponent_Conditional_2_For_1_Template","TagListComponent_Conditional_2_Conditional_2_Template","ellipsis","TagListComponent","maxVisible","numberAttribute","equal","deepEqual","uuid","_index","TagListComponent_Conditional_1_Template","TagListComponent_Conditional_2_Template","TagComponent","TagComponent_Conditional_0_ng_container_1_Template","userStatus","selectable","userStatusLink","TagComponent_Conditional_1_ng_container_1_Template","user_r3","TagComponent_ng_template_2_Conditional_0_Template","TagComponent_ng_template_2_Conditional_3_Template","user","UserStatusModel","b","canView","TagComponent_Conditional_0_Template","TagComponent_Conditional_1_Template","TagComponent_ng_template_2_Template","FormRowDirective","formRowClass","borderBottom","formChildGap","DEFAULT_LAYOUT_GAP","_angular_core__WEBPACK_IMPORTED_MODULE_1__","FsC","getLoginUser$","switchMap","hasPermissions","checkPermissions","checks","every","check","createUrlTree","tap","navigateByUrl","formatDate","dateFormat","format","Intl","DateTimeFormat","hour","minute","year","month","day","DatePipe","SanitizePipe","sanitized","DomSanitizer","sanitize","SecurityContext","HTML","matchSegments","pathMatch","index","matchSegment","copyAsUrl","clipboard","writeText","showSuccessSnackbar","duration","DialogType","INFO","ADDITIONAL_INFO","ERROR","PROMPT","gisLink_r1","DialogComponent_Conditional_4_Conditional_15_Template","gisLink","unitInfo_r3","managers","DialogComponent_Conditional_7_Conditional_1_For_2_Conditional_5_Template","DialogComponent_Conditional_7_Conditional_1_For_2_Conditional_6_Template","unit","DialogComponent_Conditional_7_Conditional_1_For_2_Template","localDivisionAssignments","unitInfo_r4","DialogComponent_Conditional_7_Conditional_2_For_2_Conditional_5_Template","DialogComponent_Conditional_7_Conditional_2_For_2_Conditional_6_Template","DialogComponent_Conditional_7_Conditional_2_For_2_Template","localDivisionManagerAssignments","unitInfo_r5","DialogComponent_Conditional_7_Conditional_3_For_2_Conditional_5_Template","DialogComponent_Conditional_7_Conditional_3_For_2_Conditional_6_Template","DialogComponent_Conditional_7_Conditional_3_For_2_Template","hubManagerAssignments","unitInfo_r6","DialogComponent_Conditional_7_Conditional_4_For_2_Conditional_5_Template","DialogComponent_Conditional_7_Conditional_4_For_2_Conditional_6_Template","DialogComponent_Conditional_7_Conditional_4_For_2_Template","divisionManagerAssignments","DialogComponent_Conditional_7_Conditional_1_Template","DialogComponent_Conditional_7_Conditional_2_Template","DialogComponent_Conditional_7_Conditional_3_Template","DialogComponent_Conditional_7_Conditional_4_Template","isConfirming","secondaryAction","_r7","confirm","DialogComponent","dialogType","MAT_DIALOG_DATA","dialogRef","MatDialogRef","escapeDialog","getConfirmCallback$","successful","confirmationCallback","DialogComponent_Conditional_4_Template","DialogComponent_Conditional_5_Template","DialogComponent_Conditional_6_Template","DialogComponent_Conditional_7_Template","DialogComponent_Conditional_9_Template","DialogComponent_Conditional_10_Template","DialogComponent_Conditional_11_Template","defaultOkTitle","defaultOkText","defaultErrorTitle","defaultErrorText","defaultConfirmTitle","defaultConfirmText","componentRef","hasOpenDialogs","openDialogs","closeOnNavigation","DEFAULT_SMALL_DIALOG_WIDTH","backdropClass","showErrorDialog","showConfirmDialog","cancellationCallback","_fingerprint","Number","refreshSignal$","Subject","clearSignal$","clear$","complete","refresh","unread","titleHelper","Title","viewTitle","scrollPositions","WINDOW","asReadonly","scrollTo","ref","onCancel","keydownEvents","backdropClick","entityNames","PriceEntry","ProjectExpediting","entity","plural","seperator","splits","getNumber","isNaN","isInteger","FormGroup","isEnabled","validator","controls","requiredIfEnabled","requiredIfSelected","remCoefficient","parseFloat","getComputedStyle","documentElement","fontSize","DEBOUNCE_INPUT_CHANGE_TIME_SMALL","DECIMAL_PATTERN","DEFAULT_DATE","MIN_QUERY_CHARACTERS","MAX_RANGE_VALUE","DEFAULT_TRUNCATED_STRING_LENGTH","DEFAULT_BIG_DIALOG_WIDTH","MAX_INT","FILE_EXTENSION_BLACKLIST","MAX_FILE_SIZE","MAX_FILES_PER_FIELD","OVERLAY_POSITIONS","originX","originY","overlayX","overlayY","SPECIAL_PAYMENT_TERMS_ID","QuotationSourcingScopeColumns","Entity","TotalQuotationPrice","TotalQuotationPriceUsd","OfferedLeadTime","IncotermsType","IncotermComment","ValidUntil","Warranty","PaymentTerms","CommercialCompliance","TechnicalCompliance","LogisticalCompliance","Status","DEFAULT_QUOTATION_SOURCING_SCOPE_COLUMNS","ContactsColumns","Primary","FirstName","LastName","Email","Telephone","Mobile","Emails","Rfqs","ResponseTime","LastResponse","Note","IsArchived","DEFAULT_CONTACTS_COLUMNS","IncidentsColumns","Url","Name","MdfCode","Impact","Created","Resolved","DEFAULT_INCIDENTS_COLUMNS","SupplierManagementColumns","SmVendorId","ErpVendorId","Guid","Company","Country","City","Contacts","LocalDivisionAssignments","Qualification","Registration","Active","Internal","DEFAULT_SUPPLIER_MANAGEMENT_COLUMNS","CategoryManagementColumns","ResponsibleUsers","Countries","ProductGroups","MdfCodes","Organisations","Validity","ParentCategory","ParentCreator","ParentStatus","DEFAULT_CATEGORY_MANAGEMENT_COLUMNS","TemplateManagementColumns","Owner","Keywords","DEFAULT_TEMPLATE_MANAGEMENT_COLUMNS","SupplierStrategyTaskColumns","Strategy","StrategyStatus","StrategyDimension","Task","TaskResponsible","TaskDueDate","TaskStatus","DEFAULT_SUPPLIER_STRATEGY_COLUMNS","SupplierStrategySourcingEventsColumns","RfqNumber","RfqStatus","DueDate","Purchaser","RfrfqNumber","RfrfqStatus","RfrfqName","ProjectStatus","ProjectNumber","LocalDivision","QuotationNumber","QuotationStatus","QuotationValidUntil","RfrfqRanking","DEFAULT_SUPPLIER_STRATEGY_SOURCING_EVENTS_COLUMNS","CategoryMonitoringColumns","Template","Organisation","DeliveryDate","OfferValidityDate","SourcingEventBudget","TargetPrice","LeadingQuotationBudget","CompetitiveBiddingStatus","DEFAULT_CATEGORY_MONITORING_COLUMNS","LegalContractsColumns","Regions","Commodities","Effective","Amount","DEFAULT_LEGAL_CONTRACTS_COLUMNS","StrategyManagementColumns","Leaders","Actions","ExpirationDate","DEFAULT_STRATEGY_MANAGEMENT_COLUMNS","QuotationsByStatusColumns","Rfrfq","DEFAULT_QUOTATIONS_BY_STATUS_COLUMNS","ResourceIncotermsColumns","Code","DEFAULT_RESOURCE_INCOTERMS_COLUMNS","ResourceTermsAndConditionsColumns","IsAvailable","DEFAULT_RESOURCE_TERMS_AND_CONDITIONS_COLUMNS","SpecialClauseColumns","IsEnabled","DEFAULT_SPECIAL_CLAUSE_COLUMNS","LocalDivisionUsersColumns","Selected","Department","Role","Tsp","ReviewStatus","Reviewer","ReviewDate","NextReview","DEFAULT_LOCAL_DIVISION_USERS_COLUMNS","ResourcePaymentTermsColumns","DEFAULT_RESOURCE_PAYMENT_TERMS_COLUMNS","ResourceCurrenciesColumns","DEFAULT_RESOURCE_CURRENCIES_COLUMNS","ResourceVariablesColumns","Value","DEFAULT_RESOURCE_VARIABLES_COLUMNS","ResourceExchangeRatesColumns","Unit","ClosingRate","DEFAULT_RESOURCE_EXCHANGE_RATES_COLUMNS","OrganisationManagersColumns","DEFAULT_ORGANISATION_MANAGERS_COLUMNS","ResourceMdfCodesColumns","DEFAULT_RESOURCE_MDF_CODES_COLUMNS","UsersColumns","DEFAULT_USERS_COLUMNS","ResourceLinksColumns","Icon","Description","DEFAULT_RESOURCE_LINKS_COLUMNS","ResourceDocumentsColumns","Document","DEFAULT_RESOURCE_DOCUMENTS_COLUMNS","HeatmapColumns","GUID","Score","DEFAULT_HEATMAP_COLUMNS","QuotationRevisionTrackerInformationFields","Currency","DEFAULT_QUOTATION_REVISION_TRACKER_INFORMATION_COLUMNS","QuotationRevisionTrackerTechnicalRequirementsFields","TechnicalRequirementsCompliance","TechnicalSpecificationsOverall","ScopeOfSupplyOverall","ScopeOfSupplyHardware","ScopeOfSupplyServices","AcceptanceCriteria","QualityControl","TechnicalDocumentation","SpecialTools","Hse","Communication","TechnicalRequirementSubmittals","DEFAULT_QUOTATION_REVISION_TRACKER_TECHNICAL_REQUIREMENTS_COLUMNS","QuotationRevisionTrackerCommercialRequirementsFields","CommercialRequirementsCompliance","CommercialRequirementsOverall","NonDisclosureAgreement","CommunicationModel","BiddingRulesForEngagedVendorsAndQAProcedure","PaymentSchedule","SpecialPaymentTerms","PlaceOfRepair","LiquidatedDamages","CommercialRequirements","GeneralTermsAndConditions","TermsAndConditions","SpecificTermsAndConditionsRequirementSubmittals","CommercialRequirementSubmittals","DEFAULT_QUOTATION_REVISION_TRACKER_COMMERCIAL_REQUIREMENTS_COLUMNS","QuotationRevisionTrackerLogisticalRequirementsFields","LogisticalRequirementsCompliance","LogisticalRequirementsOverall","IncotermsComments","PackagingAndMarking","TradeAndMaterialCompliance","LogisticsRequirements","LogisticalRequirementSubmittals","DEFAULT_QUOTATION_REVISION_TRACKER_LOGISTICAL_REQUIREMENTS_COLUMNS","QuotationRevisionTrackerTCOFields","Todo","DEFAULT_QUOTATION_REVISION_TRACKER_TCO_COLUMNS","SPESupplierSelectionColumns","SupplierName","SMVendorID","FirstLeadBuyer","SupplierStrategy","Type","Groups","SPE_SUPPLIER_SELECTION_COLUMNS","SPE_EVALUATORS_SELECTION_COLUMNS","SupplierPerformanceEvaluationsColumns","EntityNumber","SurveyName","Owners","EvaluationPeriod","SuppliersCount","RemainingDays","GeneralSubmissionProgress","Hub","DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_COLUMNS","SupplierPerformanceEvaluationsHubColumns","DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_HUB_COLUMNS","SupplierPerformanceEvaluationsLocalDivisionColumns","DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_LOCAL_DIVISION_COLUMNS","SupplierSupplyBaseManagementSupplierEvaluationColumns","TemplateName","SPEOwners","AverageScore","PublishedDate","SurveyStatus","Result","Export","DEFAULT_SUPPLIER_SUPPLY_BASE_MANAGEMENT_SUPPLIER_EVALUATION_COLUMNS","User","DivisionSupplierEvaluationSupplierCriteria","BASE_ORDER_BY_OPTIONS","uuidV4","DASHBOARD_ORDER_BY_OPTIONS","SOURCING_SCOPE_ORDER_BY_OPTIONS","SUPPLIERS_ORDER_BY_OPTIONS","CATEGORIES_ORDER_BY_OPTIONS","TEMPLATES_ORDER_BY_OPTIONS","SUPPLIER_STRATEGY_SOURCING_EVENTS_ORDER_BY_OPTIONS","CATEGORY_MONITORING_ORDER_BY_OPTIONS","EXTERNAL_CONTACTS_ORDER_BY_OPTIONS","LEGAL_CONTRACTS_ORDER_BY_OPTIONS","STRATEGY_MANAGEMENT_ORDER_BY_OPTIONS","LOCAL_DIVISION_USERS_ORDER_BY_OPTIONS","ORGANISATION_MANAGERS_ORDER_BY_OPTIONS","LOCAL_DIVISION_ASSIGNMENTS_ORDER_BY_OPTIONS","DEFAULT_ORDER","USERS_ORDER_BY_OPTIONS","CURRENCIES_ORDER_BY_OPTIONS","INCOTERMS_ORDER_BY_OPTIONS","PAYMENT_TERMS_ORDER_BY_OPTIONS","EXCHANGE_RATES_ORDER_BY_OPTIONS","VARIABLES_ORDER_BY_OPTIONS","LINKS_ORDER_BY_OPTIONS","DOCUMENTS_ORDER_BY_OPTIONS","HEATMAP_ORDER_BY_OPTIONS","TERMS_AND_CONDITIONS_ORDER_BY_OPTIONS","INCIDENTS_ORDER_BY_OPTIONS","SPE_SUPPLIERS_ORDER_BY_OPTIONS","SUPPLIER_PERFORMANCE_EVALUATIONS_ORDER_BY_OPTIONS","USER_SURVEY_EVALUATIONS_ORDER_BY_OPTIONS","SURVEY_SUPPLIER_EVALUATIONS_ORDER_BY_OPTIONS","SUPPLIER_EVALUATIONS_SEARCH_ORDER_BY_OPTIONS","SURVEY_ACTIVITY_EVENTS_ORDER_BY_OPTIONS","Preferences","IsNavigationExpanded","IsSecondaryNavigationExpanded","IsDashboardFiltersExpanded","IsSupplierSidePanelExpanded","IsQuotationSidePanelExpanded","DateFormat","HeatmapProjectsColumns","SPEEvaluatorsSelectionColumns","SupplierPerformanceEvaluationsLocalDivisionsColumns","UseNewFilters","FavoriteOrder","SourcingOrder","SourcingScopeOrder","SuppliersOrder","CategoriesOrder","TemplatesOrder","SupplierStrategySourcingEventsOrder","CategoryMonitoringOrder","ExternalContactsOrder","LegalContractsOrder","StrategyManagementOrder","LocalDivisionUsersOrder","OrganisationManagersOrder","DivisionsReviewOrder","HubsReviewOrder","LocalDivisionsReviewOrder","LocalDivisionAssignmentsOrder","UsersOrder","VariablesOrder","IncotermsOrder","TermsAndConditionsOrder","SpecialClauseOrder","CurrenciesOrder","ExchangeRatesOrder","PaymentTermsOrder","ResourceLinksOrder","ResourceDocumentsOrder","HeatmapOrder","IncidentsOrder","SPESupplierSelectionOrder","SPEEvaluatorsSelectionOrder","SupplierPerformanceEvaluationsOrder","UserSurveyEvaluationsOrder","SurveyEvaluationsOrder","SupplierEvaluationsSearchOrder","SurveyActivityEventsOrder","InjectionToken","defaultView","DOCUMENT","ApplicationNotificationModel","applicationNotification","validFrom","validUntil","enabled","BaseModel","uuidv4","ContractualMilestoneStatusModel","IdNameModel","ContractualMilestoneModel","CostAllocationModel","UserGuideTourModel","userGuideTour","confirmedCount","markedAsCompleted","UserPermissionsModel","canManageSuppliers","canAddPurchaseRequisition","CurrentUserModel","UserModel","guideTours","PreferenceModel","additionalData","DefaultCriteriaDimensionModel","weight","order","DeliveryDestinationModel","EntityStatusModel","GuidNameCodeModel","guidCodeName","code","GuidNameModel","IdNameCodeModel","IdNameDescriptionModel","ResourceVariablesModel","uniqueCode","MdfCodeModel","OrderedValueModel","orderedValue","orderIndex","OfferedLeadTimeModel","OrderAcknowledgementReviewModel","PaginatedResponseModel","paginatedResponse","PeoplePickerUserModel","department","preference","ResourceLinkSlimModel","resourceLinkSlim","SupplierSendTypeModel","TermsAndConditionsCategoryModel","termsAndConditions","TermsAndConditionsModel","isCustomized","UserSlimModel","userSlim","email","isActiveInEntraID","StorageUploadSettings","host","container","getDownloadUrl$","documentId","ioString","getDownloadUrl","getUploadSettings$","downloadAll$","entityTypeString","fieldName","queryParams","filenameSuffix","resourceId","notificationUpdatedSubject$","getNotification","ApplicationNotification","updateNotification","ioBoolean","_angular_core__WEBPACK_IMPORTED_MODULE_6__","isImpersonatingUser","substituteUserSubject$","requestId","currentUserSubject$","loginUserSubject$","loginUserRequestAborter$","userService","loginUser$","substituteUser$","isAuthorized$","combineLatest","loginUser","substituteUser","currentUser","loginUserRequest$","authorizeLoginUser$","finalize","impersonateUser$","userId","getUser$","setSubstituteUser","clearSubstituteUser","setLoginUser","clearLoginUser","fetchSupportLink","takeUntil","setCurrentUser","_angular_core__WEBPACK_IMPORTED_MODULE_2__","SupplierTypeModel","LookupDataResponseModel","requirementFields","commercial","logistical","technical","eTag","countries","currencies","incotermsTypes","paymentTerms","termsAndConditionCategories","wbsCodes","offeredLeadTimes","deliveryDestinationTypes","furtherDeliveryDestinationTypes","costAllocationTypes","supplierSendTypes","orderAcknowledgementReviews","projectProcurementTypes","projectClassifications","projectTypeSupplies","projectStatuses","projectInExecutionSubstatuses","requestForRequestForQuotationStatuses","templateRequestForRequestForQuotationStatuses","categoryStatuses","requestForQuotationStatuses","quotationStatuses","purchaseRequisitionStatuses","contractualMilestones","contractualMilestoneStatuses","supplierTypes","requestForRequestForQuotationClassifications","requestForRequestForQuotationSubstatuses","quotationSubstatuses","requestForQuotationSubstatuses","notificationReminderExecutionPeriod","categoryDimensionTaskStatuses","strategyDimensionLevers","mdfCodes","defaultDimensions","resourceVariables","supplierEvaluationEvaluatorRoles","supplierPerformanceEvaluationStatuses","projectSupplierPerformanceEvaluationStatuses","invalidFileExtensions","invalidMimeTypes","ResourceResponseModel","resourceLinks","ContractualMilestone","IdName","ContractualMilestoneStatus","CostAllocation","DeliveryDestination","IdNameDescription","OrderAcknowledgementReview","SupplierSendType","SupplierType","TermsAndConditionsCategory","LookupDataResponse","IdNameCode","EntityStatus","RequirementFields","DefaultCriteriaDimension","ResourceVariables","ResourceLinkSlim","ResourceResponse","LookupDataApiService","getBaseData","getETag","getMenu","_this3","getTSP","_this4","getSupportLink","_this5","getMdfCodes","_this6","ioArray","getExchangeRate","baseId","quoteId","_this7","baseCurrencyId","quoteCurrencyId","ioNumber","getExchangeRates","_this8","ioRecord","GlobalNotificationResponseModel","GlobalNotificationResponse","getNotification$","UserAssignmentModel","userAssignment","manager","AdditionalInfoModel","assignment","OrganisationReviewModel","organisationReview","reviewStatus","reviewed","nextReview","UserLocalDivisionModel","role","UserDetailsModel","userDetails","assignments","divisionManagers","hubManagers","localDivisionManagers","firstName","lastName","company","telephone","mobile","OrganisationReview","GuidNameCode","UserLocalDivision","UserDetails","GuidName","getUsers$","usersRequest","PeoplePickerUser","setForbidden","setAdditionalInfo","setAdditionalInfoMessage","getUserDetails$","confirmUserTour$","tour","tourId","CurrentUser","completeUserTour$","defaultBiddingRules","lookupDataApiService","StateStorage","StorageStrategy","afterDeserialize","fetchETag","fetchLookupData","fetchMenu","fetchTSP","PreferencesApiService","updatePreferences$","isDashboardFiltersExpanded","isSupplierSidePanelExpanded","quotationSourcingScopeColumns","setting","quotationRevisionTrackerInformationFields","quotationRevisionTrackerTechnicalRequirementsFields","quotationRevisionTrackerCommercialRequirementsFields","quotationRevisionTrackerLogisticalRequirementsFields","quotationRevisionTrackerTCOFields","incidentsColumns","quotationsByStatusColumns","contactsColumns","column","legalContractsColumns","categoryMonitoringColumns","resourceIncotermsColumns","resourceTermsAndConditionsColumns","specialClauseColumns","localDivisionUsersColumns","resourcePaymentTermsColumns","resourceCurrenciesColumns","resourceVariablesColumns","resourceExchangeRatesColumns","organisationManagersColumns","resourceMdfCodesColumns","resourceLinksColumns","resourceDocumentsColumns","heatmapColumns","heatmapProjectsColumns","suppliersOrder","usersOrder","categoriesOrder","templatesOrder","supplierStrategySourcingEventsOrder","surveyActivityEventsOrder","externalContactsOrder","legalContractsOrder","incotermsOrder","termsAndConditionsOrder","specialClauseOrder","currenciesOrder","variablesOrder","incidentsOrder","exchangeRatesOrder","paymentTermsOrder","categoryMonitoringOrder","strategyManagementOrder","localDivisionUsersOrder","localDivisionAssignmentsOrder","organisationManagersOrder","divisionsReviewOrder","hubsReviewOrder","localDivisionsReviewOrder","resourceLinksOrder","resourceDocumentsOrder","heatmapOrder","favoriteOrderAll","sourcingOrderAll","sourcingScopeOrderAll","supplierManagementColumns","categoryManagementColumns","templateManagementColumns","supplierStrategyTaskColumns","supplierStrategySourcingEventsColumns","strategyManagementColumns","usersColumns","supplierPerformanceEvaluationsColumns","supplierPerformanceEvaluationsHubColumns","supplierPerformanceEvaluationsLocalDivisionColumns","supplierSupplyBaseManagementSupplierEvaluationColumns","supplierPerformanceEvaluationsOrder","userSurveyEvaluationsOrder","supplierEvaluationsSearchOrder","preferencesApiService","matchMedia","matches","updatePreference","toggleDashboardFilters","toggleSupplierSidePanel","updatePreferences","findIndex","storageUploadSettings","SettingsState","fetchStorageUploadSettings","settingsState","Preference","UserGuideTour","UserPermissions","PaginatedResponse","Requirement","isBasicField","UserSlim","SessionStorage","storageStrategy","getStateFromStorage","updateStorage","stored","sessionStorage","context","appInsights","_injector","trackEvent","customProperties","ex","trackPageView","pageView","uri","additionalTelemetry","trackPageViewPerformance","pageViewPerformance","severityLevel","trackTrace","trace","trackMetric","metric","trackDependencyData","dependency","startTrackPage","stopTrackPage","measurements","startTrackEvent","stopTrackEvent","properties","setAuthenticatedUserContext","authenticatedUserId","accountId","storeInCookie","clearAuthenticatedUserContext","flush","async","addTelemetryInitializer","telemetryInitializer","ApplicationInsights","loadAppInsights","getRouter","disableAngularRouteTracking","NavigationStart","notifyUser","getErrorMessage","formatError","formattedDate","fallback","isErrorResponse","isValidationResult","traceId","SnackbarType","SUCCESS","SnackbarComponent","MAT_SNACK_BAR_DATA","SnackbarComponent_Conditional_1_Template","SnackbarComponent_Conditional_3_Template","SnackbarComponent_Conditional_4_Template","defaultOptions","verticalPosition","horizontalPosition","snackbar","MatSnackBar","showSnackbar","showValidationErrorSnackbar","mergedOptions","openFromComponent","sender_r2","MessageComponent_Conditional_1_Template","MessageComponent_Conditional_2_Template","MessageComponent_ng_template_3_Template","MessageComponent_Conditional_8_Template","MessageComponent_Conditional_13_Template","MessageComponent_Conditional_14_Template","sender","createdOn","notificationInboxMessage","NotificationInboxViewResponseModel","notificationInboxViewResponse","filteredCount","NotificationInboxMessage","NotificationInboxViewResponse","ProjectSearchIndexDefinitionModel","definition","projectID","isTest","isClosed","creator","statusUpdater","purchaser","projectResponsible","technicalResponsible","statusName","customer","salesforceID","ipmProjectId","erpProjectId","scope","generalInformationComment","projectDescriptionComment","projectCountry","projectCountryCode","internalConsortium","additionalEditors","projectSCM","ProjectSearchIndexDefinitionSearchDocumentItemResultModel","highlights","searchScore","ProjectSearchIndexDefinitionSearchDocumentResultModel","PurchaseRequisitionSearchIndexDefinitionModel","requester","poNumber","sapCostAccount","sapSdPosition","sapCostCenter","sapCostElement","sapProjectNumber","sapPspElement","poDocument","poComment","supplierInvoicingInstructions","deliveryDestinationRelatedComments","specialTermsAndConditionsAndAnnexes","attachmentsToPO","supplier","supplierContact","supplierContactEmail","deliveryDestination","comment","internalUseComment","endUseCountry","endUseCountryCode","requiredSubmittalsToBeReturned","returnedSubmittals","projectLUI","costAllocation","businessUnit","mdfCodeName","mdfCode","goodsCountryOfOrigin","goodsCountryOfOriginCode","forFurtherDeliveryTo","deliveryAddressName","deliveryAddressLine","deliveryAddressCity","deliveryAddressCountry","deliveryAddressCountryCode","incotermsComments","personAndDepartment","supplierSuggestions","PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResultModel","PurchaseRequisitionSearchIndexDefinitionSearchDocumentResultModel","RequestForQuotationSearchIndexDefinitionModel","wbsCode","quotations","quotationOrderLineRows","RequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel","RequestForQuotationSearchIndexDefinitionSearchDocumentResultModel","RequestForRequestForQuotationSearchIndexDefinitionModel","supplierContacts","supplierContactEmails","comments","finalDestinationCountry","finalDestinationCountryCode","specificationAndQuantities","RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel","RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResultModel","SupplierSearchIndexDefinitionModel","supplierSource","addressLine","zipCode","SupplierSearchIndexDefinitionSearchDocumentItemResultModel","SupplierSearchIndexDefinitionSearchDocumentResultModel","SearchDocumentResponseModel","searchDocumentResponse","ProjectSearchIndexDefinition","ProjectSearchIndexDefinitionSearchDocumentItemResult","ProjectSearchIndexDefinitionSearchDocumentResult","PurchaseRequisitionSearchIndexDefinition","PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult","PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult","RequestForQuotationSearchIndexDefinition","RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult","RequestForQuotationSearchIndexDefinitionSearchDocumentResult","RequestForRequestForQuotationSearchIndexDefinition","RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult","RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult","SupplierSearchIndexDefinition","SupplierSearchIndexDefinitionSearchDocumentItemResult","SupplierSearchIndexDefinitionSearchDocumentResult","SearchDocumentResponse","projectId","TemplateFinderDialogComponent","webpackAsyncContext","o","resolve","ids","exports"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./core/common/src/lib/http-interceptors/date-interceptor.ts","./core/common/src/lib/http-interceptors/fingerprint-interceptor.ts","./core/common/src/lib/http-interceptors/waf-interceptor.ts","./core/error-handling/src/lib/application-insights.module.ts","./modules/sessions/src/lib/services/sessions-dialog.service.ts","./core/common/src/lib/services/locale.service.ts","./core/common/src/lib/dates/procure-date-adapter.ts","./core/common/src/lib/router/title-strategy.ts","./core/error-handling/src/lib/services/global-error-handler.service.ts","./apps/procure/src/environments/environment.staging.ts","./apps/procure/src/app/app-module-providers.ts","./modules/sessions/src/lib/services/signalr.service.ts","./core/common/src/lib/components/environment-banner/environment-banner.component.ts","./core/common/src/lib/components/environment-banner/environment-banner.component.html","./core/common/src/lib/components/input-switch/input-switch.component.html","./core/common/src/lib/components/input-switch/input-switch.component.ts","./modules/inbox/src/lib/components/inbox/inbox.component.html","./modules/inbox/src/lib/components/inbox/inbox.component.ts","./core/common/src/lib/pipes/search-highlight.pipe.ts","./modules/search/src/lib/components/quick-search/quick-search.component.html","./modules/search/src/lib/components/quick-search/quick-search.component.ts","./apps/procure/src/app/components/create-menu/create-menu.component.html","./apps/procure/src/app/components/create-menu/create-menu.component.ts","./apps/procure/src/app/components/app-header/app-header.component.html","./apps/procure/src/app/components/app-header/app-header.component.ts","./apps/procure/src/app/components/app-navigation/app-navigation.component.html","./apps/procure/src/app/components/app-navigation/app-navigation.component.ts","./apps/procure/src/app/components/app-notifications/app-notifications.component.html","./apps/procure/src/app/components/app-notifications/app-notifications.component.ts","./apps/procure/src/app/app.component.html","./apps/procure/src/app/app.component.ts","./core/common/src/lib/router/entity-id-matcher.ts","./apps/procure/src/app/app.routing.ts","./apps/procure/src/main.ts","./modules/sessions/src/lib/interceptors/concurrent-session-interceptor.ts","./core/common/src/lib/http-interceptors/impersonation-interceptor.ts","./core/api/src/lib/helpers/custom-http-url-encoding-codec.ts","./core/api/src/lib/helpers/custom-http-params.ts","./core/api/src/lib/io-ts/date-string.ts","./core/api/src/lib/io-ts/nullable.ts","./core/api/src/lib/services/base-api.service.ts","./core/api/src/lib/services/api.service.ts","./core/error-handling/src/lib/errors/io-ts-type-error.ts","./core/api/src/lib/services/http-api.ts","./core/api/src/lib/state/environment.state.ts","./core/api/src/lib/utils/fetch.util.ts","./core/common/src/lib/pipes/initials.pipe.ts","./core/common/src/lib/components/avatar/avatar.component.html","./core/common/src/lib/components/avatar/avatar.component.ts","./core/common/src/lib/components/badge/badge.component.html","./core/common/src/lib/components/badge/badge.component.ts","./core/common/src/lib/components/button/button.component.html","./core/common/src/lib/components/button/button.component.ts","./core/common/src/lib/components/card/card.component.ts","./core/common/src/lib/components/card/card.component.html","./core/common/src/lib/components/copy-button/copy-button.component.ts","./core/common/src/lib/components/copy-button/copy-button.component.html","./core/common/src/lib/components/entity-badge/entity-badge.component.html","./core/common/src/lib/components/entity-badge/entity-badge.component.ts","./core/common/src/lib/components/expansion-panel/expansion-panel.component.html","./core/common/src/lib/components/expansion-panel/expansion-panel.component.ts","./core/common/src/lib/components/global-notification/global-notification.component.html","./core/common/src/lib/components/global-notification/global-notification.component.ts","./core/common/src/lib/components/loading-indicator/loading-indicator.component.ts","./core/common/src/lib/components/loading-indicator/loading-indicator.component.html","./core/common/src/lib/components/menu-child/menu-child.component.html","./core/common/src/lib/components/menu-child/menu-child.component.ts","./core/common/src/lib/components/menu-item/menu-item.component.html","./core/common/src/lib/components/menu-item/menu-item.component.ts","./core/common/src/lib/components/menu/menu.component.html","./core/common/src/lib/components/menu/menu.component.ts","./core/common/src/lib/components/number-badge/number-badge.component.html","./core/common/src/lib/components/number-badge/number-badge.component.ts","./core/common/src/lib/components/show-field/show-field.component.html","./core/common/src/lib/components/show-field/show-field.component.ts","./core/common/src/lib/components/status-badge/status-badge.component.ts","./core/common/src/lib/components/status-badge/status-badge.component.html","./core/common/src/lib/components/tag-list/tag-list.component.html","./core/common/src/lib/components/tag-list/tag-list.component.ts","./core/common/src/lib/components/tag/tag.component.html","./core/common/src/lib/components/tag/tag.component.ts","./core/common/src/lib/directives/form-row.directive.ts","./core/common/src/lib/guards/access.guard.ts","./core/common/src/lib/utilities/user-permissions.util.ts","./core/common/src/lib/pipes/date.pipe.ts","./core/common/src/lib/pipes/sanitize.pipe.ts","./core/common/src/lib/router/case-insensitive-matcher.ts","./core/common/src/lib/services/clipboard.service.ts","./core/constants/src/lib/enums/dialog-type.enum.ts","./core/common/src/lib/components/dialog/dialog.component.html","./core/common/src/lib/components/dialog/dialog.component.ts","./core/common/src/lib/services/dialog.service.ts","./core/common/src/lib/services/fingerprint.service.ts","./core/common/src/lib/services/inbox.service.ts","./core/common/src/lib/services/title.service.ts","./core/common/src/lib/services/view-navigation.service.ts","./core/common/src/lib/utilities/dialog.util.ts","./core/common/src/lib/utilities/entity.util.ts","./core/common/src/lib/utilities/form-control.util.ts","./core/common/src/lib/utilities/px-to-rem.util.ts","./core/constants/src/lib/constants/index.ts","./core/constants/src/lib/enums/columns.enum.ts","./core/constants/src/lib/enums/entity-id-alias-prefixes.enum.ts","./core/constants/src/lib/enums/order.enum.ts","./core/constants/src/lib/enums/preferences.enum.ts","./core/constants/src/lib/injection-tokens.ts","./core/data/src/lib/models/application-notification.model.ts","./core/data/src/lib/models/base.model.ts","./core/data/src/lib/models/contractual-milestone-status.model.ts","./core/data/src/lib/models/contractual-milestone.model.ts","./core/data/src/lib/models/cost-allocation.model.ts","./core/data/src/lib/models/user-guide-tour.model.ts","./core/data/src/lib/models/user-permissions.model.ts","./core/data/src/lib/models/current-user.model.ts","./core/data/src/lib/models/default-criteria-dimension.model.ts","./core/data/src/lib/models/delivery-destination.model.ts","./core/data/src/lib/models/entity-status.model.ts","./core/data/src/lib/models/guid-name-code.model.ts","./core/data/src/lib/models/guid-name.model.ts","./core/data/src/lib/models/id-name-code.model.ts","./core/data/src/lib/models/id-name-description.model.ts","./core/data/src/lib/models/id-name.model.ts","./core/data/src/lib/models/management/resources/resource-variables.model.ts","./core/data/src/lib/models/mdf-code.model.ts","./core/data/src/lib/models/ordered-value.model.ts","./core/data/src/lib/models/offered-lead-time.model.ts","./core/data/src/lib/models/order-acknowledgement-review.model.ts","./core/data/src/lib/models/paginated-response.model.ts","./core/data/src/lib/models/people-picker-user.model.ts","./core/data/src/lib/models/preference.model.ts","./core/data/src/lib/models/resource-link-slim.model.ts","./core/data/src/lib/models/supplier-send-type.model.ts","./core/data/src/lib/models/terms-and-conditions-category.model.ts","./core/data/src/lib/models/terms-and-conditions.model.ts","./core/data/src/lib/models/user-slim.model.ts","./core/data/src/lib/models/user-status.model.ts","./core/data/src/lib/models/user.model.ts","./core/data/src/lib/types/storage-upload-settings.type.ts","./core/data/src/lib/services/documents-api.service.ts","./core/data/src/lib/services/global-notification-api.service.ts","./core/data/src/lib/services/login-user.service.ts","./core/data/src/lib/models/supplier-type.model.ts","./core/data/src/lib/models/lookup/lookup-data-response.model.ts","./core/data/src/lib/models/resource-response.model.ts","./core/data/src/lib/types/contractual-milestone.ts","./core/data/src/lib/types/contractual-milestone-status.ts","./core/data/src/lib/types/cost-allocation.type.ts","./core/data/src/lib/types/delivery-destination.type.ts","./core/data/src/lib/types/id-name-description.type.ts","./core/data/src/lib/types/offered-lead-time.type.ts","./core/data/src/lib/types/string-ordered-value.type.ts","./core/data/src/lib/types/order-acknowledgement-review.type.ts","./core/data/src/lib/types/supplier-send-type.type.ts","./core/data/src/lib/types/supplier-type.type.ts","./core/data/src/lib/types/terms-and-conditions-category.type.ts","./core/data/src/lib/types/lookup/lookup-data-response.type.ts","./core/data/src/lib/types/resource-link-slim.type.ts","./core/data/src/lib/types/resource-response.type.ts","./core/data/src/lib/services/lookup-data-api.service.ts","./core/data/src/lib/models/global-notification-response.model.ts","./core/data/src/lib/types/global-notification-response.type.ts","./core/data/src/lib/services/notification-api.service.ts","./core/data/src/lib/models/user-assignment.model.ts","./core/data/src/lib/models/additional-info.model.ts","./core/data/src/lib/models/organisation-review.model.ts","./core/data/src/lib/models/user-local-division.model.ts","./core/data/src/lib/models/user-details.model.ts","./core/data/src/lib/types/organisation-review.type.ts","./core/data/src/lib/types/user-local-division.type.ts","./core/data/src/lib/types/user-details.type.ts","./core/data/src/lib/services/user-api.service.ts","./core/data/src/lib/state/lookup-data.state.ts","./core/data/src/lib/services/preferences-api.service.ts","./core/data/src/lib/state/preferences.state.ts","./core/data/src/lib/state/settings.state.ts","./core/data/src/lib/state/user.state.ts","./core/data/src/lib/types/application-notification.type.ts","./core/data/src/lib/types/preference.type.ts","./core/data/src/lib/types/user-guide-tour.type.ts","./core/data/src/lib/types/user-permissions.type.ts","./core/data/src/lib/types/current-user.type.ts","./core/data/src/lib/types/default-criteria-dimension.type.ts","./core/data/src/lib/types/entity-status.type.ts","./core/data/src/lib/types/guid-name-code.type.ts","./core/data/src/lib/types/guid-name.type.ts","./core/data/src/lib/types/id-name-code.type.ts","./core/data/src/lib/types/id-name.type.ts","./core/data/src/lib/types/management/resources/resource-variables.type.ts","./core/data/src/lib/types/mdf-code.type.ts","./core/data/src/lib/types/paginated-response.type.ts","./core/data/src/lib/types/people-picker-user.type.ts","./core/data/src/lib/types/requirement.type.ts","./core/data/src/lib/types/requirements-fields.type.ts","./core/data/src/lib/types/terms-and-conditions.type.ts","./core/data/src/lib/types/user-slim.type.ts","./core/data/src/lib/types/user.type.ts","./core/data/src/lib/utils/state-storage.util.ts","./core/error-handling/src/lib/config.ts","./core/error-handling/src/lib/errors/custom-http-error-response.ts","./core/error-handling/src/lib/services/application-insights.service.ts","./core/error-handling/src/lib/services/error-handler.service.ts","./core/snackbar/src/lib/enums/snackbar-type.enum.ts","./core/snackbar/src/lib/components/snackbar/snackbar.component.html","./core/snackbar/src/lib/components/snackbar/snackbar.component.ts","./core/snackbar/src/lib/services/snackbar.service.ts","./modules/inbox/src/lib/components/message/message.component.html","./modules/inbox/src/lib/components/message/message.component.ts","./modules/inbox/src/lib/models/notification-inbox-message.model.ts","./modules/inbox/src/lib/models/notification-inbox-view-response.model.ts","./modules/inbox/src/lib/types/notification-inbox-message.type.ts","./modules/inbox/src/lib/types/notification-inbox-view-response.type.ts","./modules/inbox/src/lib/services/notification-api.service.ts","./modules/search/src/lib/models/project-search-index-definition.model.ts","./modules/search/src/lib/models/project-search-index-definition-search-document-item-result.model.ts","./modules/search/src/lib/models/project-search-index-definition-search-document-result.model.ts","./modules/search/src/lib/models/purchase-requisition-search-index-definition.model.ts","./modules/search/src/lib/models/purchase-requisition-search-index-definition-search-document-item-result.model.ts","./modules/search/src/lib/models/purchase-requisition-search-index-definition-search-document-result.model.ts","./modules/search/src/lib/models/request-for-quotation-search-index-definition.model.ts","./modules/search/src/lib/models/request-for-quotation-search-index-definition-search-document-item-result.model.ts","./modules/search/src/lib/models/request-for-quotation-search-index-definition-search-document-result.model.ts","./modules/search/src/lib/models/request-for-request-for-quotation-search-index-definition.model.ts","./modules/search/src/lib/models/request-for-request-for-quotation-search-index-definition-search-document-item-result.model.ts","./modules/search/src/lib/models/request-for-request-for-quotation-search-index-definition-search-document-result.model.ts","./modules/search/src/lib/models/supplier-search-index-definition.model.ts","./modules/search/src/lib/models/supplier-search-index-definition-search-document-item-result.model.ts","./modules/search/src/lib/models/supplier-search-index-definition-search-document-result.model.ts","./modules/search/src/lib/models/search-document-response.model.ts","./modules/search/src/lib/types/project-search-index-definition.type.ts","./modules/search/src/lib/types/project-search-index-definition-search-document-item-result.type.ts","./modules/search/src/lib/types/project-search-index-definition-search-document-result.type.ts","./modules/search/src/lib/types/purchase-requisition-search-index-definition.type.ts","./modules/search/src/lib/types/purchase-requisition-search-index-definition-search-document-item-result.type.ts","./modules/search/src/lib/types/purchase-requisition-search-index-definition-search-document-result.type.ts","./modules/search/src/lib/types/request-for-quotation-search-index-definition.type.ts","./modules/search/src/lib/types/request-for-quotation-search-index-definition-search-document-item-result.type.ts","./modules/search/src/lib/types/request-for-quotation-search-index-definition-search-document-result.type.ts","./modules/search/src/lib/types/request-for-request-for-quotation-search-index-definition.type.ts","./modules/search/src/lib/types/request-for-request-for-quotation-search-index-definition-search-document-item-result.type.ts","./modules/search/src/lib/types/request-for-request-for-quotation-search-index-definition-search-document-result.type.ts","./modules/search/src/lib/types/supplier-search-index-definition.type.ts","./modules/search/src/lib/types/supplier-search-index-definition-search-document-item-result.type.ts","./modules/search/src/lib/types/supplier-search-index-definition-search-document-result.type.ts","./modules/search/src/lib/types/search-document-response.type.ts","./modules/search/src/lib/services/search-api.service.ts","./modules/template-finder/src/lib/services/template-finder-dialog.service.ts","./node_modules/@angular/common/locales/ lazy ^\\.\\/.*\\.mjs$ namespace object"],"sourcesContent":["import {\n HttpEvent, HttpHandlerFn, HttpRequest,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nconst checkOnPureObject = (obj: unknown): boolean => {\n if (typeof obj !== 'object') return false;\n if (obj instanceof Date) return false;\n if (obj instanceof Function) return false;\n if (obj instanceof Array) return false;\n\n return true;\n};\n\nconst shiftDates = (body: Record | null): Record | null => {\n if (body === null || body === undefined || !checkOnPureObject(body)) {\n return body;\n }\n\n const copy = { ...body };\n\n Object.keys(copy).forEach((key) => {\n const value = copy[key];\n\n if (value instanceof Date) {\n copy[key] = new Date(Date.UTC(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n value.getHours(),\n value.getMinutes(),\n value.getSeconds(),\n ));\n } else if (Array.isArray(value)) {\n copy[key] = value.map((item) => shiftDates(item));\n } else if (typeof value === 'object') {\n copy[key] = shiftDates(value as Record);\n }\n });\n\n return copy;\n};\n\nexport const dateInterceptor = (\n req: HttpRequest>,\n next: HttpHandlerFn,\n): Observable> => {\n if (req.body instanceof FormData) {\n return next(req);\n }\n\n if (req.method === 'POST' || req.method === 'PUT') {\n // eslint-disable-next-line no-param-reassign\n req = req.clone({\n body: shiftDates(req.body),\n });\n }\n\n return next(req);\n};\n","import {\n HttpEvent, HttpHandlerFn, HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FingerprintService } from '../services/fingerprint.service';\n\nexport const fingerprintInterceptor = (\n request: HttpRequest,\n next: HttpHandlerFn,\n): Observable> => {\n const { fingerprint } = inject(FingerprintService);\n\n return next(request.clone({\n headers: request.headers.append('Fingerprint', fingerprint),\n }));\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n HttpEvent,\n HttpHandlerFn,\n HttpInterceptorFn,\n HttpRequest,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nconst removeAvatarUrl = (data: any): any => {\n if (Array.isArray(data)) {\n return data.map((item) => removeAvatarUrl(item));\n }\n\n if (data instanceof Date) {\n return data;\n }\n\n if (typeof data === 'object' && data !== null) {\n return Object.keys(data).reduce((acc, key) => {\n if (key !== 'avatarUrl') {\n acc[key] = removeAvatarUrl(data[key]);\n }\n\n return acc;\n }, {} as any);\n }\n\n return data;\n};\n\nexport const wafInterceptor: HttpInterceptorFn = (\n request: HttpRequest,\n next: HttpHandlerFn,\n): Observable> => {\n if (!request.body) {\n return next(request);\n }\n\n return next(request.clone({ body: removeAvatarUrl(request.body) }));\n};\n","import {\n NgModule, ModuleWithProviders, Optional, SkipSelf, ɵstringify as stringify,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AngularApplicationInsightsConfig } from './config';\nimport { ApplicationInsightsService } from './services/application-insights.service';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [],\n exports: [],\n})\nexport class ApplicationInsightsModule {\n constructor(\n applicationInsightsService: ApplicationInsightsService,\n @Optional() @SkipSelf() parentModule?: ApplicationInsightsModule,\n ) {\n if (parentModule) {\n throw new Error(`${stringify(ApplicationInsightsModule)} is already loaded. Import it in the AppModule only.`);\n }\n\n applicationInsightsService.init();\n }\n\n /**\n * Creates and configures the AppInsights module for the entire application.\n */\n static forRoot(config: AngularApplicationInsightsConfig): ModuleWithProviders {\n return {\n ngModule: ApplicationInsightsModule,\n providers: [{ provide: AngularApplicationInsightsConfig, useValue: config }],\n };\n }\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DEFAULT_MIDDLE_DIALOG_WIDTH } from '@abb-procure/constants';\nimport { Overlay } from '@angular/cdk/overlay';\nimport type { SessionsDialogComponent } from '../components/sessions-dialog/sessions-dialog.component';\nimport type { RenewDialogComponent } from '../components/renew-dialog/renew-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SessionsDialogService {\n private sessionsDialogPromise?: Promise>;\n private renewDialogPromise?: Promise>;\n private readonly dialog = inject(MatDialog);\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n async openSessionsDialog(): Promise> {\n if (this.sessionsDialogPromise) {\n return this.sessionsDialogPromise;\n }\n\n this.sessionsDialogPromise = (async (): Promise> => {\n const module = await import('../components/sessions-dialog/sessions-dialog.component');\n\n const dialog = this.dialog\n .open(\n module.SessionsDialogComponent,\n {\n panelClass: ['sessions-dialog'],\n width: DEFAULT_MIDDLE_DIALOG_WIDTH,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n },\n );\n\n dialog.afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.sessionsDialogPromise = undefined;\n });\n\n return dialog;\n })();\n\n return this.sessionsDialogPromise;\n }\n\n async openRenewDialog(): Promise> {\n if (this.renewDialogPromise) {\n return this.renewDialogPromise;\n }\n\n this.renewDialogPromise = (async (): Promise> => {\n const module = await import('../components/renew-dialog/renew-dialog.component');\n\n const dialog = this.dialog\n .open(\n module.RenewDialogComponent,\n {\n panelClass: ['renew-dialog'],\n scrollStrategy: this.overlay.scrollStrategies.block(),\n },\n );\n\n dialog.afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.renewDialogPromise = undefined;\n });\n\n return dialog;\n })();\n\n return this.renewDialogPromise;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { registerLocaleData } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleService {\n private locale: string;\n\n constructor() {\n this.locale = navigator.language;\n this.initializeLocale(this.locale);\n }\n\n getLocale(): string {\n return this.locale;\n }\n\n private initializeLocale(locale: string): Promise {\n return this.importLocale(locale).catch(\n () => this.importLocale(locale.split('-')[0]),\n );\n }\n\n private importLocale(locale: string): Promise {\n return import(`@/../@angular/common/locales/${locale}.mjs`).then((fallbackLocaleModule) => {\n registerLocaleData(fallbackLocaleModule.default, locale);\n this.locale = locale;\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NativeDateAdapter } from '@angular/material/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcureDateAdapter extends NativeDateAdapter {\n override getFirstDayOfWeek(): number {\n return 1;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { RouterStateSnapshot, TitleStrategy } from '@angular/router';\nimport { TitleService } from '../services/title.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProcureTitleStrategy extends TitleStrategy {\n private readonly titleService = inject(TitleService);\n\n override updateTitle(snapshot: RouterStateSnapshot): void {\n const title = this.buildTitle(snapshot);\n\n if (!title) {\n return;\n }\n\n this.titleService.setTitle(title);\n }\n}\n","import {\n ErrorHandler, Inject, Injectable, Injector, inject,\n} from '@angular/core';\nimport { EnvironmentConfig, ENVIRONMENT_CONFIG } from '@abb-procure/constants';\nimport { SnackbarService } from '@abb-procure/snackbar';\nimport { ApplicationInsightsService } from './application-insights.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalErrorHandlerService extends ErrorHandler {\n private readonly injector = inject(Injector);\n private readonly appInsightsService = inject(ApplicationInsightsService);\n\n constructor(\n @Inject(ENVIRONMENT_CONFIG) private readonly environmentConfig: EnvironmentConfig,\n ) {\n super();\n }\n\n /**\n * Display an error notification and track the error through Application\n * Insights.\n */\n handleError(error: Error): void {\n super.handleError(error);\n\n this.appInsightsService.trackException({ exception: error });\n\n if (this.environmentConfig.production) {\n return;\n }\n\n const snackbarService = this.injector.get(SnackbarService);\n const title = error.name !== 'Error' ? `: ${error.name}` : '';\n\n snackbarService.showErrorSnackbar({\n title: `Unhandled exception${title}`,\n text: error.message,\n });\n }\n}\n","import { EnvironmentConfig } from '@abb-procure/constants';\nimport { AuthenticationType } from 'azure-maps-control';\n\nconst apiEndpoint =\n API_ENDPOINT || 'https://apis-dvaeh9gyf4gjewd7.z01.azurefd.net/';\nconst instrumentationKey =\n APPINSIGHTS_INSTRUMENTATIONKEY || '032a82b2-2d8e-4cb0-bf59-c1dc96c42e4e';\nconst msalApiEndpointId =\n MSAL_API_ENDPOINT_ID || '82c713c0-717e-4c61-ad20-4ae0dd52abd3';\nconst msalClientId = MSAL_CLIENT_ID || '82c713c0-717e-4c61-ad20-4ae0dd52abd3';\nconst azureMapsSubscriptionKey =\n MAPS_SUBSCRIPTION_ID || 'njYXKVLwwSrK7WKzOZxCn1xkv6_2Qk5-nA9LiyujBPE';\n\n/**\n * This is the environment configuration for the 'staging' context of the project.\n *\n * The following contexts or environments are available:\n * - development (environment.ts): For local development.\n * - develop (environment.develop.ts): First deploy after merges. Development built for production.\n * - staging (environment.staging.ts): Staging environment before production (acceptance tests).\n * - production (environment.production.ts): Final stage for live application.\n */\nexport const environment: EnvironmentConfig = {\n production: true,\n title: 'Staging',\n isEnvironmentBannerEnabled: true,\n apiEndpoint,\n msalApiEndpointResource: 'https://graph.windows.net',\n msalConfig: {\n apiEndpointId: msalApiEndpointId,\n clientId: msalClientId,\n instance:\n 'https://login.microsoftonline.com/372ee9e0-9ce0-4033-a64a-c07073a91ecd/',\n cacheLocation: 'localStorage',\n },\n msalLoggingEnabled: false,\n signalrLoggingEnabled: true,\n instrumentationKey,\n mapOptions: {\n authOptions: {\n authType: AuthenticationType.subscriptionKey,\n subscriptionKey: azureMapsSubscriptionKey,\n },\n baseUrl: 'https://atlas.microsoft.com/',\n endpoints: {\n addressSearch: `search/address/json?&subscription-key=${azureMapsSubscriptionKey}&api-version=1.0&language=de-CH&query=`,\n },\n },\n};\n","import {\n LocaleService,\n ProcureDateAdapter,\n ProcureTitleStrategy,\n} from '@abb-procure/common';\nimport {\n DEFAULT_DIALOG_WIDTH,\n ENVIRONMENT_CONFIG,\n ENVIRONMENT_INFO,\n} from '@abb-procure/constants';\nimport { GlobalErrorHandlerService } from '@abb-procure/error-handling';\nimport {\n CloseScrollStrategy,\n Overlay,\n ScrollStrategyOptions,\n} from '@angular/cdk/overlay';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ErrorHandler, LOCALE_ID, Provider } from '@angular/core';\nimport { MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS } from '@angular/material/button-toggle';\nimport { DateAdapter } from '@angular/material/core';\nimport { MAT_DATEPICKER_SCROLL_STRATEGY } from '@angular/material/datepicker';\nimport {\n MAT_DIALOG_DEFAULT_OPTIONS,\n MAT_DIALOG_SCROLL_STRATEGY,\n} from '@angular/material/dialog';\nimport { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';\nimport { MAT_TABS_CONFIG } from '@angular/material/tabs';\nimport { MAT_TOOLTIP_DEFAULT_OPTIONS } from '@angular/material/tooltip';\nimport { TitleStrategy } from '@angular/router';\nimport {\n MSAL_GUARD_CONFIG,\n MSAL_INSTANCE,\n MSAL_INTERCEPTOR_CONFIG,\n MsalBroadcastService,\n MsalGuard,\n MsalGuardConfiguration,\n MsalInterceptor,\n MsalInterceptorConfiguration,\n MsalService,\n} from '@azure/msal-angular';\nimport {\n BrowserCacheLocation,\n IPublicClientApplication,\n InteractionType,\n LogLevel,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { environment } from '../environments/environment';\n\nconst httpInterceptorProviders: Provider[] = [\n { provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true },\n];\n\nexport function MSALInstanceFactory(): IPublicClientApplication {\n return new PublicClientApplication({\n auth: {\n clientId: environment.msalConfig.clientId,\n authority: environment.msalConfig.instance,\n redirectUri: environment.msalConfig.redirectUri ?? '/',\n postLogoutRedirectUri:\n environment.msalConfig.postLogoutRedirectUri ?? '/',\n navigateToLoginRequestUrl: true,\n },\n cache: {\n cacheLocation: BrowserCacheLocation.LocalStorage,\n storeAuthStateInCookie: false,\n },\n system: {\n loggerOptions: {\n logLevel: LogLevel.Info,\n piiLoggingEnabled: false,\n loggerCallback: environment.msalLoggingEnabled\n ? (\n logLevel: LogLevel,\n message: string,\n containsPii: boolean,\n ): void => {\n if (containsPii) {\n return;\n }\n\n switch (logLevel) {\n case LogLevel.Error:\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n case LogLevel.Info:\n // eslint-disable-next-line no-console\n console.info(message);\n return;\n case LogLevel.Verbose:\n // eslint-disable-next-line no-console\n console.debug(message);\n return;\n case LogLevel.Warning:\n // eslint-disable-next-line no-console\n console.warn(message);\n return;\n default:\n // eslint-disable-next-line no-console\n console.log(message);\n }\n }\n : undefined,\n },\n },\n });\n}\n\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\n const protectedResourceMap = new Map();\n protectedResourceMap.set(`${environment.apiEndpoint}`, [\n `api://${environment.msalConfig.apiEndpointId}/read_as_user`,\n ]);\n\n return {\n interactionType: InteractionType.Redirect,\n protectedResourceMap,\n };\n}\n\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\n return {\n authRequest: {\n scopes: ['user.read'],\n },\n interactionType: InteractionType.Redirect,\n };\n}\n\nexport function scrollFactory(overlay: Overlay): () => CloseScrollStrategy {\n return (): CloseScrollStrategy => overlay.scrollStrategies.close();\n}\n\nexport const APP_PROVIDERS: Provider[] = [\n {\n provide: ErrorHandler,\n useClass: GlobalErrorHandlerService,\n },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory,\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALGuardConfigFactory,\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useFactory: MSALInterceptorConfigFactory,\n },\n MsalService,\n MsalBroadcastService,\n MsalGuard,\n {\n provide: MAT_DIALOG_DEFAULT_OPTIONS,\n useValue: {\n width: DEFAULT_DIALOG_WIDTH,\n disableClose: true,\n autoFocus: false,\n hasBackdrop: true,\n },\n },\n {\n provide: LOCALE_ID,\n useFactory: (localeService: LocaleService) => localeService.getLocale(),\n deps: [LocaleService],\n },\n {\n provide: MAT_DATEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: scrollFactory,\n },\n {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: scrollFactory,\n },\n {\n provide: ENVIRONMENT_CONFIG,\n useValue: environment,\n },\n {\n provide: ENVIRONMENT_INFO,\n useValue: {\n id: environment.title.toLowerCase(),\n title: environment.title,\n version: APP_VERSION,\n buildNumber: BUILD_NUMBER,\n },\n },\n {\n provide: MAT_TOOLTIP_DEFAULT_OPTIONS,\n useValue: {\n disableTooltipInteractivity: true,\n },\n },\n {\n provide: MAT_DIALOG_SCROLL_STRATEGY,\n useFactory: (options: ScrollStrategyOptions) => options.block,\n deps: [ScrollStrategyOptions],\n },\n {\n provide: DateAdapter,\n useClass: ProcureDateAdapter,\n },\n {\n provide: MAT_TABS_CONFIG,\n useValue: {\n animationDuration: '350ms',\n stretchTabs: false,\n },\n },\n {\n provide: TitleStrategy,\n useClass: ProcureTitleStrategy,\n },\n {\n provide: MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,\n useValue: {\n hideSingleSelectionIndicator: true,\n hideMultipleSelectionIndicator: true,\n },\n },\n ...httpInterceptorProviders,\n];\n","import {\n DestroyRef, Injectable, inject,\n} from '@angular/core';\nimport * as signalR from '@microsoft/signalr';\nimport { ErrorHandlerService } from '@abb-procure/error-handling';\nimport { DialogService, FingerprintService } from '@abb-procure/common';\nimport { SnackbarService } from '@abb-procure/snackbar';\nimport { MsalService } from '@azure/msal-angular';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENVIRONMENT_CONFIG } from '@abb-procure/constants';\nimport { SilentRequest } from '@azure/msal-browser';\nimport {\n BehaviorSubject, firstValueFrom, map, take,\n} from 'rxjs';\nimport { SessionsDialogService } from './sessions-dialog.service';\n\nconst LOGOUT_TIMEOUT = 10000;\n\nenum MessageKeys {\n NotificationsKey = 'Notifications',\n TerminatedSessionsKey = 'TerminatedSessions',\n ConcurrentSessionsKey = 'ConcurrentSessions',\n ExpiredSessionsKey = 'ExpiredSessions',\n WarningExpirationSessionsKey = 'WarningExpirationSessions',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SignalrService {\n messages$;\n\n private hub?: signalR.HubConnection;\n private userIsNavigatingAway: boolean = false;\n private messagesSubject$ = new BehaviorSubject(null);\n private readonly environmentConfig = inject(ENVIRONMENT_CONFIG);\n private readonly errorHandlerService = inject(ErrorHandlerService);\n private readonly accessService = inject(MsalService);\n private readonly snackbarService = inject(SnackbarService);\n private readonly sessionsDialogService = inject(SessionsDialogService);\n private readonly dialogService = inject(DialogService);\n private readonly fingerprintService = inject(FingerprintService);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.messages$ = this.messagesSubject$.asObservable();\n }\n\n connect(): void {\n if (!this.environmentConfig.production) {\n return;\n }\n\n this.hub = new signalR.HubConnectionBuilder()\n .configureLogging(signalR.LogLevel.Error)\n .withUrl(`${this.environmentConfig.apiEndpoint}application?Fingerprint=${this.fingerprintService.fingerprint}`, {\n accessTokenFactory: () => this.getToken(),\n headers: {\n Fingerprint: this.fingerprintService.fingerprint,\n },\n })\n .withAutomaticReconnect()\n .build();\n\n this.connectHub();\n\n this.hub.onreconnected(() => {\n this.log('Reconnected');\n });\n\n this.hub.onclose(() => {\n if (this.userIsNavigatingAway) {\n return;\n }\n\n this.connect();\n\n this.log('Disconnected, attempting to reconnect');\n });\n }\n\n async connectHub(): Promise {\n try {\n await this.hub?.start();\n\n this.log('Connection started');\n this.listen();\n } catch (err) {\n this.errorHandlerService.trackError(err);\n }\n }\n\n async disconnectHub(): Promise {\n this.userIsNavigatingAway = true;\n\n try {\n await this.hub?.stop();\n this.log('Connection stopped');\n } catch (err) {\n this.errorHandlerService.trackError(err);\n }\n }\n\n private listen(): void {\n if (!this.hub) {\n return;\n }\n\n this.hub.on(MessageKeys.NotificationsKey, () => this.handleNotifications());\n this.hub.on(MessageKeys.ConcurrentSessionsKey, () => this.handleConcurrentSessions());\n this.hub.on(MessageKeys.ExpiredSessionsKey, () => this.handleExpiredSessions());\n this.hub.on(MessageKeys.TerminatedSessionsKey, () => this.handleTerminatedSessions());\n this.hub.on(MessageKeys.WarningExpirationSessionsKey, () => this.handleWarningExpirationSessions());\n }\n\n private handleNotifications(): void {\n this.handleMessage(MessageKeys.NotificationsKey);\n }\n\n private handleTerminatedSessions(): void {\n this.handleMessage(MessageKeys.TerminatedSessionsKey);\n\n const dialog = this.dialogService.showOkDialog({\n title: 'Session Terminated',\n text: 'Your session has been terminated since there is another active session.',\n });\n\n dialog.afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.logout();\n });\n\n setTimeout(() => {\n this.logout();\n }, LOGOUT_TIMEOUT);\n }\n\n private handleExpiredSessions(): void {\n this.handleMessage(MessageKeys.ExpiredSessionsKey);\n\n const dialog = this.dialogService.showOkDialog({\n title: 'Session Expired',\n text: 'Your session has expired. Please login again.',\n });\n\n dialog.afterClosed()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.logout();\n });\n\n setTimeout(() => {\n this.logout();\n }, LOGOUT_TIMEOUT);\n }\n\n private handleConcurrentSessions(): void {\n this.handleMessage(MessageKeys.ConcurrentSessionsKey);\n\n this.snackbarService.showInfoSnackbar({\n text: 'You have logged in from another device.',\n });\n }\n\n private handleWarningExpirationSessions(): void {\n this.handleMessage(MessageKeys.WarningExpirationSessionsKey);\n this.sessionsDialogService.openRenewDialog();\n }\n\n private logout(): void {\n // eslint-disable-next-line rxjs/no-ignored-observable\n this.accessService.logout({ account: this.accessService.instance.getActiveAccount() });\n }\n\n private getToken(): Promise {\n return firstValueFrom(\n this.accessService.acquireTokenSilent({\n account: this.accessService.instance.getActiveAccount(),\n scopes: [`api://${this.environmentConfig.msalConfig.apiEndpointId}/read_as_user`],\n } as SilentRequest)\n .pipe(\n map((token) => token.accessToken),\n take(1),\n takeUntilDestroyed(this.destroyRef),\n ),\n );\n }\n\n private handleMessage(message: string): void {\n this.messagesSubject$.next(message);\n this.log(`New message \"${message}\"`);\n }\n\n private log(message: string): void {\n if (!this.environmentConfig.signalrLoggingEnabled) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console.log(`SignalR: ${message}`);\n }\n}\n","import {\n ChangeDetectionStrategy, Component, Input,\n} from '@angular/core';\n\n@Component({\n selector: 'procure-environment-banner',\n templateUrl: './environment-banner.component.html',\n styleUrls: ['./environment-banner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EnvironmentBannerComponent {\n @Input() identifier?: string;\n}\n","
\n
\n \n \n \n
\n
\n","\n @if (!showMode()) {\n \n \n \n } @else {\n \n \n \n }\n\n\n \n\n","import {\n Component, EventEmitter, Output, ViewEncapsulation, booleanAttribute, input,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSlideToggleChange, MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { isRequired } from '../../utilities/form-control.util';\n\n@Component({\n selector: 'procure-input-switch',\n templateUrl: './input-switch.component.html',\n styleUrls: ['./input-switch.component.scss'],\n standalone: true,\n imports: [\n MatSlideToggleModule,\n MatTooltipModule,\n ReactiveFormsModule,\n NgTemplateOutlet,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class InputSwitchComponent {\n @Output() readonly valueChange = new EventEmitter();\n\n id = input(null);\n control = input.required();\n tooltip = input('');\n labelPosition = input<'before' | 'after'>('after');\n showMode = input(false, { transform: booleanAttribute });\n condensed = input(false, { transform: booleanAttribute });\n\n protected get isRequired(): boolean {\n return isRequired(this.control());\n }\n}\n","\n notifications\n\n\n \n
\n
Notifications
\n \n Only show unread\n \n @if (notifications().length) {\n \n done_all\n \n }\n \n visibility\n \n
\n @if (!notifications().length) {\n
\n You have no{{ unreadOnly.value ? ' unread ' : ' ' }}notifications.\n
\n }\n @for (message of notifications(); track message.id) {\n \n \n \n }\n @if (hasMore()) {\n \n \n Display more\n \n \n }\n\n","import { fetchData } from '@abb-procure/api';\nimport {\n ButtonComponent,\n InboxService,\n InputSwitchComponent,\n LoadingIndicatorComponent,\n TitleService,\n} from '@abb-procure/common';\nimport { SignalrService } from '@abb-procure/sessions';\nimport { Component, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router, RouterLink } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { distinctUntilChanged } from 'rxjs';\nimport { NotificationInboxMessageModel } from '../../models/notification-inbox-message.model';\nimport { NotificationApiService } from '../../services/notification-api.service';\nimport { MessageComponent } from '../message/message.component';\n\n@Component({\n selector: 'procure-inbox',\n templateUrl: './inbox.component.html',\n styleUrls: ['./inbox.component.scss'],\n standalone: true,\n imports: [\n ButtonComponent,\n MatIconModule,\n MatMenuModule,\n RouterLink,\n MessageComponent,\n LoadingIndicatorComponent,\n MatTooltipModule,\n QuicklinkDirective,\n ButtonComponent,\n InputSwitchComponent,\n ],\n})\nexport class InboxComponent {\n protected readonly notifications = signal(\n [],\n );\n\n protected readonly count = signal(null);\n protected readonly totalCount = signal(0);\n protected readonly displayCount = signal(1);\n protected readonly isLoading = signal(false);\n protected readonly unreadOnly = new FormControl(false);\n\n private readonly notificationApiService = inject(NotificationApiService);\n private readonly router = inject(Router);\n private readonly signalrService = inject(SignalrService);\n private readonly inboxService = inject(InboxService);\n private readonly titleService = inject(TitleService);\n\n constructor() {\n this.fetchData();\n\n effect(\n () => {\n this.titleService.setUnread(this.count());\n },\n { allowSignalWrites: true },\n );\n\n this.signalrService.messages$\n .pipe(distinctUntilChanged(), takeUntilDestroyed())\n .subscribe((message) => {\n if (message !== 'Notifications') {\n return;\n }\n\n this.fetchData();\n });\n\n this.inboxService.refresh$.pipe(takeUntilDestroyed()).subscribe(() => {\n this.fetchData();\n });\n\n this.unreadOnly.valueChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n this.displayCount.set(1);\n this.fetchData();\n });\n }\n\n protected async toggleRead(\n event: MouseEvent,\n message: NotificationInboxMessageModel,\n stopPropagation: boolean,\n ): Promise {\n if (stopPropagation) {\n event.stopPropagation();\n } else if (message.data.url) {\n try {\n const path = new URL(message.data.url).pathname;\n this.router.navigate([path]);\n } catch (_e) {\n return;\n }\n }\n\n if (!message.id) {\n return;\n }\n\n const request = message.isRead\n ? this.notificationApiService.markAsUnread(message.id)\n : this.notificationApiService.markAsRead(message.id);\n\n const response = await request;\n\n if (!response) {\n return;\n }\n\n this.inboxService.clear();\n\n this.notifications.update((notifications) => {\n if (this.unreadOnly.value && !message.isRead) {\n return (\n notifications.filter(\n (notification) => notification.id !== message.id,\n ) || []\n );\n }\n\n return notifications.map((notification) => {\n if (notification.id !== message.id) {\n return notification;\n }\n\n return new NotificationInboxMessageModel({\n ...notification,\n isRead: !message.isRead,\n });\n });\n });\n\n this.updateCount(message.isRead ? 1 : -1);\n }\n\n protected async toggleArchive(\n event: MouseEvent,\n message: NotificationInboxMessageModel,\n ): Promise {\n event.stopPropagation();\n\n if (!message.id) {\n return;\n }\n\n const request = message.isArchived\n ? this.notificationApiService.unarchive(message.id)\n : this.notificationApiService.archive(message.id);\n\n const response = await request;\n\n if (!response) {\n return;\n }\n\n this.notifications.update((notifications) =>\n notifications.map((notification) => {\n if (notification.id !== message.id) {\n return notification;\n }\n\n return new NotificationInboxMessageModel({\n ...notification,\n isArchived: !message.isArchived,\n });\n }),\n );\n }\n\n protected markAllAsRead(event: MouseEvent): void {\n event.stopPropagation();\n\n fetchData(\n this.notificationApiService.markAllAsRead(),\n this.isLoading,\n () => {\n this.inboxService.clear();\n this.fetchData();\n },\n );\n }\n\n protected displayMore(event: MouseEvent): void {\n event.stopPropagation();\n this.displayCount.update((count) => (count ?? 1) + 1);\n this.fetchData();\n }\n\n protected hasMore(): boolean {\n return (\n this.displayCount() * 10 <\n (this.unreadOnly.value ? this.count() ?? 0 : this.totalCount())\n );\n }\n\n private fetchData(): void {\n fetchData(\n this.notificationApiService.getNotifications({\n isRead: this.unreadOnly.value ? false : null,\n pageIndex: 0,\n pageSize: this.displayCount() * 10,\n orderBy: 'createdOn',\n orderIsAscending: false,\n }),\n this.isLoading,\n (response) => {\n this.totalCount.set(response.totalCount);\n this.count.set(response.unreadCount);\n this.notifications.set(response.items ?? []);\n },\n );\n }\n\n private updateCount(delta: number): void {\n this.count.update((count) => (count ?? 0) + delta);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'searchHighlight',\n standalone: true,\n})\nexport class SearchHighlightPipe implements PipeTransform {\n /**\n * Highlights the seachTerm in the result\n *\n * @param result search result\n * @param searchTerm seach term keywords like \"and or\" will be handled here\n */\n transform(result: string = '', searchTerm: string = ''): string {\n if (searchTerm === '*') {\n return result;\n }\n\n // Escape special RegEx characters. Mostly used to treat [] from entity IDs\n // as regular strings.\n const escaped = searchTerm.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&');\n const re = /( and | or | AND | OR )/g;\n\n const searchTerms = escaped.split(re)\n .filter((txt) => !txt.match(re))\n .map((txt) => txt.trim());\n\n if (searchTerms.length === 0 || !result) {\n return result;\n }\n\n const reText = new RegExp(`(${searchTerms.join('|')})`, 'gi');\n\n return result.replace(reText, '$&');\n }\n}\n","\n
\n \n \n @if (!isSearching()) {\n \n search\n \n } @else {\n \n }\n \n \n @if (getFormControl(\"quickSearch\").value && !isSearching() && isEmpty) {\n
\n Your search - {{ getFormControl(\"quickSearch\").value }} - did not match any documents.\n
\n \n See more results\n \n
\n }\n \n \n \n @if (searchResult) {\n @if (searchResult.projects && searchResult.projects.count) {\n \n \n {{ searchResult.projects.count }}\n {{ getEntityName(EntityIdAliasPrefixes.Project, searchResult.projects.values.length > 1) }}\n \n Show All\n \n \n @for (res of searchResult.projects.values; track res.uuid) {\n \n \n \n @if (res.value.projectName) {\n \n }\n \n \n }\n \n }\n @if (searchResult.requestForRequestForQuotations && searchResult.requestForRequestForQuotations.count) {\n \n \n {{ searchResult.requestForRequestForQuotations.count }}\n {{\n getEntityName(\n EntityIdAliasPrefixes.RfRFQ,\n searchResult.requestForRequestForQuotations.values.length > 1\n )\n }}\n \n Show All\n \n \n @for (res of searchResult.requestForRequestForQuotations.values; track res.uuid) {\n \n \n \n @if (res.value.requiredScope) {\n \n }\n \n \n }\n \n }\n @if (searchResult.requestForQuotations && searchResult.requestForQuotations.count) {\n \n \n {{ searchResult.requestForQuotations.count }}\n {{ getEntityName(EntityIdAliasPrefixes.Rfq, searchResult.requestForQuotations.values.length > 1) }}\n \n Show All\n \n \n @for (res of searchResult.requestForQuotations.values; track res.uuid) {\n \n
\n \n @if (res.value.subject) {\n \n }\n
\n
\n }\n
\n }\n @if (searchResult.purchaseRequisitions && searchResult.purchaseRequisitions.count) {\n \n \n {{ searchResult.purchaseRequisitions.count }}\n {{\n getEntityName(\n EntityIdAliasPrefixes.PurchaseRequisition,\n searchResult.purchaseRequisitions.values.length > 1\n )\n }}\n \n Show All\n \n \n @for (res of searchResult.purchaseRequisitions.values; track res.uuid) {\n \n \n \n @if (res.value.requiredScope) {\n \n }\n \n \n }\n \n }\n @if (searchResult.suppliers && searchResult.suppliers.count) {\n \n \n {{ searchResult.suppliers.count }}\n {{ getEntityName(EntityIdAliasPrefixes.Supplier, searchResult.suppliers.values.length > 1) }}\n \n Show All\n \n \n @for (res of searchResult.suppliers.values; track res.uuid) {\n \n \n @if (res.value.companyName) {\n \n }\n \n \n }\n \n }\n }\n \n \n \n\n\n
\n You can search for keywords globally or for specific entities (e.g. RFQ:LV400) and specific entities (e.g. RFQ-123).\n
\n
\n","import { fetchData } from '@abb-procure/api';\nimport {\n EntityBadgeComponent,\n EntityUtility,\n SearchHighlightPipe,\n} from '@abb-procure/common';\nimport { EntityIdAliasPrefixes } from '@abb-procure/constants';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport {\n MatAutocompleteModule,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { Router, RouterLink } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { SearchDocumentResponseModel } from '../../models/search-document-response.model';\nimport {\n SEARCH_ALL_SYMBOL,\n SearchApiService,\n} from '../../services/search-api.service';\n\ninterface QuickSearch {\n quickSearch: FormControl;\n}\n\ntype SearchTerm = {\n number: string;\n id: string;\n};\n\nexport const filter = (opt: readonly string[], value: string): string[] => {\n const filterValue = value.toLowerCase();\n return opt.filter((item) => item.toLowerCase().startsWith(filterValue));\n};\n\nconst MIN_INPUT_LENGTH = 3;\nconst DEBOUNCE_MS = 500;\n\n/**\n * @title Option groups autocomplete\n */\n@Component({\n selector: 'procure-quick-search',\n templateUrl: './quick-search.component.html',\n styleUrls: ['./quick-search.component.scss'],\n standalone: true,\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n MatIconModule,\n MatProgressSpinnerModule,\n NgTemplateOutlet,\n RouterLink,\n MatOptionModule,\n EntityBadgeComponent,\n AsyncPipe,\n SearchHighlightPipe,\n QuicklinkDirective,\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class QuickSearchComponent {\n @ViewChild(MatAutocompleteTrigger)\n readonly autocomplete!: MatAutocompleteTrigger;\n\n readonly form: FormGroup;\n searchResult: SearchDocumentResponseModel | null = null;\n isFakePannelVisible: boolean = false;\n getEntityName = EntityUtility.getEntityName;\n EntityIdAliasPrefixes = EntityIdAliasPrefixes;\n hintFocusTrapped: boolean = false;\n isFocused: boolean = false;\n\n get hasResults(): boolean {\n return this.searchResult !== null;\n }\n\n get isEmpty(): boolean {\n return (\n this.searchResult !== null &&\n !this.searchResult.projects?.count &&\n !this.searchResult.purchaseRequisitions?.count &&\n !this.searchResult.requestForQuotations?.count &&\n !this.searchResult.requestForRequestForQuotations?.count &&\n !this.searchResult.suppliers?.count\n );\n }\n\n protected readonly isSearching = signal(false);\n\n private searchedTerm: string = '';\n\n private readonly searchApiService = inject(SearchApiService);\n private readonly changeRef = inject(ChangeDetectorRef);\n private readonly router = inject(Router);\n private readonly renderer = inject(Renderer2);\n private readonly formBuilder = inject(FormBuilder);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.form = this.formBuilder.nonNullable.group({\n quickSearch: this.formBuilder.nonNullable.control(''),\n });\n\n this.getFormControl('quickSearch')\n .valueChanges.pipe(\n map((term) => (typeof term === 'string' && term ? term.trim() : '')),\n debounceTime(DEBOUNCE_MS),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((value) => {\n this.search(value);\n });\n }\n\n openFakePanel(): void {\n this.isFakePannelVisible = true;\n this.isFocused = true;\n }\n\n closeFakePanel(): void {\n this.isFakePannelVisible = false;\n this.isFocused = false;\n }\n\n closePanel(): void {\n this.autocomplete.closePanel();\n }\n\n onMouseDown(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n if (target.tagName === 'A') {\n target.click();\n }\n }\n\n /**\n * Starts a search with the input\n */\n onSubmit(): void {\n this.search(this.getFormControl('quickSearch').value, true);\n }\n\n /**\n * Navigates to a given search result.\n */\n onSelect(value: string | SearchTerm): void {\n this.getFormControl('quickSearch').setValue('');\n\n this.renderer.selectRootElement('#searchInput').blur();\n\n if (typeof value !== 'string') {\n this.searchApiService.addSearchActivity({\n searchTerm: this.searchedTerm,\n entityId: value.id,\n entityNumber: value.number,\n });\n\n this.router.navigate([value.number]);\n } else {\n this.router.navigate([value]);\n }\n\n this.closeFakePanel();\n }\n\n getFormControl = (name: keyof QuickSearch): FormControl =>\n this.form.get(name) as FormControl;\n\n private search(term: string, force: boolean = false): void {\n if (\n term.length < MIN_INPUT_LENGTH &&\n term !== SEARCH_ALL_SYMBOL &&\n !force\n ) {\n this.searchResult = null;\n this.changeRef.markForCheck();\n\n return;\n }\n\n fetchData(\n this.searchApiService.quickSearch(term),\n this.isSearching,\n (response) => {\n this.searchResult = response;\n this.searchedTerm = term;\n this.changeRef.markForCheck();\n },\n );\n }\n}\n","\n @if (\n userState.current()?.permissions?.canAddRequestForRequestForQuotation ||\n userState.current()?.permissions?.canAddRequestForRequestForQutoationFromTemplate\n ) {\n \n Sourcing Events\n \n }\n @if (userState.current()?.permissions?.canAddRequestForRequestForQuotation) {\n \n New Sourcing Event\n \n \n }\n @if (userState.current()?.permissions?.canAddRequestForRequestForQutoationFromTemplate) {\n \n New Sourcing Event from Template\n \n \n }\n @if (userState.current()?.permissions?.canAddProject) {\n \n Projects\n \n \n New Project\n \n }\n\n","import { EntityBadgeComponent } from '@abb-procure/common';\nimport { EntityIdAliasPrefixes } from '@abb-procure/constants';\nimport { UserState } from '@abb-procure/data';\nimport { TemplateFinderDialogService } from '@abb-procure/template-finder';\nimport { Component, ViewChild, inject } from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'procure-create-menu',\n templateUrl: './create-menu.component.html',\n styleUrl: './create-menu.component.scss',\n standalone: true,\n imports: [MatMenuModule, EntityBadgeComponent, MatTooltipModule],\n})\nexport class CreateMenuComponent {\n @ViewChild(MatMenu, { static: true }) menu!: MatMenu;\n\n protected readonly userState = inject(UserState);\n protected readonly EntityIdAliasPrefixes = EntityIdAliasPrefixes;\n\n private readonly router = inject(Router);\n\n private readonly templateFinderDialogService = inject(\n TemplateFinderDialogService,\n );\n\n protected addProject(): void {\n this.router\n .navigate(['/'], { skipLocationChange: true })\n .then(() => this.router.navigate(['/PROJ/add']));\n }\n\n protected addRequestForRfq(): void {\n this.router\n .navigate(['/'], { skipLocationChange: true })\n .then(() => this.router.navigate(['/RFRFQ/add']));\n }\n\n protected showTemplateFinder(): void {\n this.templateFinderDialogService.openTemplateFinderDialog();\n }\n}\n","\n @if (isEnvironmentBannerEnabled) {\n \n Environment: {{ environmentInfo.title }}, Version: {{ environmentInfo.version }}, Build: {{ environmentInfo.buildNumber }}\n \n }\n
\n
\n \n \n \n \n \n menu\n \n
\n
\n
\n \n home\n \n \n local_shipping\n \n @if (\n userState.current()?.permissions?.canAddRequestForRequestForQuotation ||\n userState.current()?.permissions?.canAddProject ||\n userState.current()?.permissions?.canAddRequestForRequestForQutoationFromTemplate\n ) {\n \n add_circle\n \n }\n
\n \n
\n @if (lookupDataState.menu().length || userState.current()) {\n
\n @if (userState.isSubstitute()) {\n \n admin_panel_settings\n \n }\n @if (lookupDataState.tsp(); as tsp) {\n \n {{ tsp.icon }}\n \n }\n \n @if (lookupDataState.menu().length) {\n \n library_books\n \n }\n @if (userState.current(); as user) {\n @if (\n user.permissions.canViewOrganisation ||\n user.permissions.canManageOrganization ||\n user.permissions.canManageUsers ||\n user.permissions.canManageNotifications ||\n user.permissions.canManageResources ||\n user.permissions.canViewAdminView\n ) {\n \n settings\n \n }\n \n \n \n }\n
\n }\n \n @for (item of lookupDataState.menu(); track item.id) {\n \n {{ item.icon ? item.icon : \"open_in_new\" }} {{ item.name }}\n \n }\n \n \n \n {{ userState.current()?.name }}\n \n \n person Profile\n \n \n settings Settings\n \n \n notifications Notifications\n \n \n logout Logout\n \n \n \n @if (userState.current()?.permissions?.canViewOrganisation) {\n \n Organisation\n
\n }\n @if (userState.current()?.permissions?.canViewOrganisation) {\n \n business\n Organisation\n \n }\n @if (userState.current()?.permissions?.canManageUsers) {\n \n person Users\n \n }\n @if (\n userState.current()?.permissions?.canManageNotifications || userState.current()?.permissions?.canManageResources\n ) {\n \n Management\n \n }\n @if (userState.current()?.permissions?.canManageNotifications) {\n \n announcement Global Notification\n \n }\n @if (userState.current()?.permissions?.canManageResources) {\n \n library_books Resources\n \n }\n @if (userState.current()?.permissions?.canViewAdminView) {\n \n Admin\n \n }\n @if (userState.current()?.permissions?.canViewAdminView) {\n \n admin_panel_settings Admin\n \n }\n @if (userState.current()?.permissions?.canViewAdminView) {\n \n troubleshoot Monitoring\n \n }\n \n \n \n\n","import {\n AvatarComponent,\n BadgeComponent,\n ButtonComponent,\n EnvironmentBannerComponent,\n} from '@abb-procure/common';\nimport {\n EMPTY_GUID,\n ENVIRONMENT_INFO,\n EnvironmentInfo,\n} from '@abb-procure/constants';\nimport {\n DocumentsApiService,\n LoginUserService,\n LookupDataState,\n ResourceLinkSlimModel,\n UserState,\n} from '@abb-procure/data';\nimport { InboxComponent } from '@abb-procure/inbox';\nimport { QuickSearchComponent } from '@abb-procure/search';\nimport { SnackbarService } from '@abb-procure/snackbar';\nimport { TemplateFinderDialogService } from '@abb-procure/template-finder';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n ViewChild,\n booleanAttribute,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router, RouterLink } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { AppNavigationComponent } from '../app-navigation/app-navigation.component';\nimport { CreateMenuComponent } from '../create-menu/create-menu.component';\n\n@Component({\n selector: '[procure-app-header]',\n templateUrl: './app-header.component.html',\n styleUrl: './app-header.component.scss',\n standalone: true,\n imports: [\n EnvironmentBannerComponent,\n RouterLink,\n ButtonComponent,\n MatIconModule,\n AppNavigationComponent,\n MatTooltipModule,\n QuickSearchComponent,\n MatMenuModule,\n AvatarComponent,\n BadgeComponent,\n InboxComponent,\n QuicklinkDirective,\n CreateMenuComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppHeaderComponent {\n @ViewChild('header', { static: false }) protected header?: ElementRef;\n\n @Input({ transform: booleanAttribute })\n protected isEnvironmentBannerEnabled: boolean = false;\n\n protected readonly isExpanded = signal(false);\n\n protected readonly environmentInfo: EnvironmentInfo =\n inject(ENVIRONMENT_INFO);\n\n protected readonly loginUserService = inject(LoginUserService);\n protected readonly userState = inject(UserState);\n protected readonly lookupDataState = inject(LookupDataState);\n protected readonly documentsApiService = inject(DocumentsApiService);\n protected currentUser$ = this.loginUserService.currentUser$;\n protected readonly EMPTY_GUID = EMPTY_GUID;\n\n protected isDownloading: boolean = false;\n protected currentDownloads: ResourceLinkSlimModel[] = [];\n\n private readonly templateFinderDialogService = inject(\n TemplateFinderDialogService,\n );\n\n private readonly router = inject(Router);\n private readonly snackbarService = inject(SnackbarService);\n private readonly destroyRef = inject(DestroyRef);\n\n isCurrentDownloading(resource?: ResourceLinkSlimModel): boolean {\n return (\n this.currentDownloads.find((el) => resource?.id === el.id) !== undefined\n );\n }\n\n protected resourceClick(resource: ResourceLinkSlimModel | undefined): void {\n if (!resource?.isDocument) {\n return;\n }\n\n this.downloadSingleDocument(resource);\n }\n\n protected downloadSingleDocument(resource: ResourceLinkSlimModel): void {\n if (this.isCurrentDownloading(resource)) {\n return;\n }\n\n this.isDownloading = true;\n this.currentDownloads = [...this.currentDownloads, resource];\n\n this.documentsApiService\n .getResourceDownloadUrl$(resource.id)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((res) => {\n this.isDownloading = false;\n this.currentDownloads = this.currentDownloads.filter(\n (el) => el.id !== resource.id,\n );\n\n if (res) {\n window.location.href = res;\n }\n });\n }\n\n protected logoutSubstituteUser(): void {\n this.loginUserService.stopImpersonatingUser();\n\n this.snackbarService.showInfoSnackbar({\n text: 'Returned to login user.',\n });\n\n window.location.reload();\n }\n\n protected showTemplateFinder(): void {\n this.templateFinderDialogService.openTemplateFinderDialog();\n }\n\n protected addProject(): void {\n this.router\n .navigate(['/'], { skipLocationChange: true })\n .then(() => this.router.navigate(['/PROJ/add']));\n }\n\n protected addRequestForRfq(): void {\n this.router\n .navigate(['/'], { skipLocationChange: true })\n .then(() => this.router.navigate(['/RFRFQ/add']));\n }\n\n protected logout(): void {\n // eslint-disable-next-line rxjs/no-ignored-observable\n this.loginUserService.logout$();\n }\n\n protected toggleMenu(): void {\n this.isExpanded.update((state) => !state);\n }\n}\n","@if (\n {\n currentUser: currentUser$ | async\n };\n as $\n) {\n
\n
\n
\n @if (\n userState.current()?.permissions?.canAddRequestForRequestForQuotation ||\n userState.current()?.permissions?.canAddProject ||\n userState.current()?.permissions?.canAddRequestForRequestForQutoationFromTemplate\n ) {\n \n \n \n \n }\n \n \n \n @if (userState.current()?.permissions?.canManageCategories) {\n \n }\n @if (userState.current()?.permissions?.canManageTemplates) {\n \n }\n \n \n
\n \n \n {{\n preferences.isNavigationExpanded() ? \"chevron_left\" : \"chevron_right\"\n }}\n \n
\n
\n\n
\n
\n \n
\n \n \n {{\n preferences.isSecondaryNavigationExpanded() ? \"chevron_left\" : \"chevron_right\"\n }}\n \n
\n \n \n}\n","import {\n ButtonComponent,\n MenuComponent,\n MenuItemComponent,\n TagListComponent,\n} from '@abb-procure/common';\nimport {\n CurrentUser,\n LoginUserService,\n PreferencesState,\n UserState,\n} from '@abb-procure/data';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink, RouterOutlet } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { Observable } from 'rxjs';\nimport { CreateMenuComponent } from '../create-menu/create-menu.component';\n\n@Component({\n selector: '[procure-app-navigation]',\n templateUrl: './app-navigation.component.html',\n styleUrl: './app-navigation.component.scss',\n standalone: true,\n imports: [\n ButtonComponent,\n RouterLink,\n MatMenuModule,\n AsyncPipe,\n MatMenuModule,\n AppNavigationComponent,\n MenuComponent,\n MenuItemComponent,\n RouterOutlet,\n MatIconModule,\n MatTooltipModule,\n QuicklinkDirective,\n CreateMenuComponent,\n TagListComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppNavigationComponent {\n protected readonly currentUser$: Observable;\n protected preferences = inject(PreferencesState);\n protected readonly userState = inject(UserState);\n\n private readonly loginUserService = inject(LoginUserService);\n\n constructor() {\n this.currentUser$ = this.loginUserService.currentUser$;\n }\n\n protected toggle(): void {\n this.preferences.toggleNavigation();\n }\n\n protected toggleSecondary(): void {\n this.preferences.toggleSecondaryNavigation();\n }\n}\n","\n@if (privacyNotification?.display) {\n \n \n

\n
\n \n Decline\n \n \n Accept\n \n
\n
\n \n}\n","import {\n ButtonComponent,\n CardComponent,\n GlobalNotificationComponent,\n} from '@abb-procure/common';\nimport {\n ApplicationNotificationModel,\n GlobalNotificationApiService,\n NotificationApiService,\n} from '@abb-procure/data';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'procure-app-notifications',\n templateUrl: './app-notifications.component.html',\n styleUrl: './app-notifications.component.scss',\n standalone: true,\n imports: [GlobalNotificationComponent, ButtonComponent, CardComponent],\n animations: [\n trigger('privacy', [\n transition(':enter', animate(200, style({ opacity: 1 }))),\n transition(':leave', animate(200, style({ opacity: 0 }))),\n ]),\n ],\n})\nexport class AppNotificationsComponent {\n protected privacyNotification?: ApplicationNotificationModel;\n protected globalNotification?: ApplicationNotificationModel | null = null;\n\n private readonly notificationApiService = inject(NotificationApiService);\n\n private readonly globalNotificationApiService = inject(\n GlobalNotificationApiService,\n );\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n this.globalNotificationApiService.notificationUpdated$\n .pipe(takeUntilDestroyed())\n .subscribe((response) => {\n if (!response) {\n return;\n }\n\n this.globalNotification = response;\n });\n\n this.fetchData();\n\n // Check notifications every minute.\n\n interval(60 * 1000)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.fetchData());\n }\n\n protected onAccept(): void {\n if (!this.privacyNotification) {\n return;\n }\n\n this.notificationApiService\n .confirmNotification$(this.privacyNotification.notificationId)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((response) => {\n if (!response || !this.privacyNotification) {\n return;\n }\n\n this.privacyNotification.display = false;\n });\n }\n\n private fetchData(): void {\n this.notificationApiService\n .getApplicationNotifications$()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((response) => {\n if (!response) {\n return;\n }\n\n this.privacyNotification = response.privacyNotification;\n this.globalNotification = response.globalNotification;\n });\n }\n}\n","@if (!initializationInProgress) {\n \n \n \n
\n @if (!isIframe) {\n \n }\n
\n \n \n \n} @else {\n \n \n \n}\n","import { EnvironmentState } from '@abb-procure/api';\nimport {\n DialogService,\n LoadingIndicatorComponent,\n pxToRem,\n} from '@abb-procure/common';\nimport { UserApiService, UserState } from '@abb-procure/data';\nimport { SignalrService } from '@abb-procure/sessions';\nimport {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n OnInit,\n effect,\n inject,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ActivationStart,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n Router,\n RouterOutlet,\n} from '@angular/router';\nimport {\n MSAL_GUARD_CONFIG,\n MsalBroadcastService,\n MsalGuardConfiguration,\n MsalService,\n} from '@azure/msal-angular';\nimport {\n AuthenticationResult,\n BrowserUtils,\n EventMessage,\n EventType,\n InteractionStatus,\n RedirectRequest,\n} from '@azure/msal-browser';\nimport { filter } from 'rxjs/operators';\nimport { environment } from '../environments/environment';\nimport { AppHeaderComponent } from './components/app-header/app-header.component';\nimport { AppNavigationComponent } from './components/app-navigation/app-navigation.component';\nimport { AppNotificationsComponent } from './components/app-notifications/app-notifications.component';\n\n@Component({\n selector: 'procure',\n templateUrl: './app.component.html',\n styleUrl: './app.component.scss',\n animations: [\n // the fade-in/fade-out animation.\n trigger('simpleFadeAnimation', [\n // the \"in\" style determines the \"resting\" state of the element when it is visible.\n state('in', style({ opacity: 1 })),\n // fade out when destroyed. this could also be written as transition('void => *')\n transition(':leave', animate(600, style({ opacity: 0 }))),\n ]),\n trigger('contentFadeAnimation', [\n // fade in when created. this could also be written as transition('void => *')\n transition(':enter', [style({ opacity: 0 }), animate(300)]),\n ]),\n ],\n standalone: true,\n imports: [\n RouterOutlet,\n AppHeaderComponent,\n LoadingIndicatorComponent,\n AppNotificationsComponent,\n AppNavigationComponent,\n ],\n})\nexport class AppComponent implements OnInit, OnDestroy {\n static readonly version: string = APP_VERSION;\n static readonly buildNumber: string = BUILD_NUMBER;\n\n @HostBinding('class.procure') readonly hostClass: boolean = true;\n\n mainRef = viewChild('main', { read: ElementRef });\n\n isLoading: boolean = false;\n initializationInProgress: boolean = true;\n isIframe: boolean = false;\n loginDisplay: boolean = false;\n\n readonly isEnvironmentBannerEnabled: boolean =\n environment.isEnvironmentBannerEnabled;\n\n private readonly signalrService = inject(SignalrService);\n private readonly router = inject(Router);\n private readonly authService = inject(MsalService);\n private readonly msalBroadcastService = inject(MsalBroadcastService);\n private readonly dialogService = inject(DialogService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly userState = inject(UserState);\n private readonly environmentState = inject(EnvironmentState);\n private readonly userApiService = inject(UserApiService);\n\n constructor(@Inject(MSAL_GUARD_CONFIG) private readonly msalGuardConfig: MsalGuardConfiguration) {\n this.clearCachesOnNewDeploy();\n\n this.environmentState.setIsProduction(environment.production);\n\n this.environmentState.setIsEnvironmentBannerEnabled(\n environment.isEnvironmentBannerEnabled,\n );\n\n effect(() => {\n if (!this.userState.isForbidden()) {\n return;\n }\n\n const message = this.userState.additionalInfoMessage() ?? '';\n\n this.dialogService.showOkDialog({\n title: 'Account Error',\n text: message,\n base: true,\n blackout: true,\n primaryAction: 'Logout',\n additionalInfo: this.userState.additionalInfo(),\n closeCallback: () => {\n // eslint-disable-next-line rxjs/no-ignored-observable\n this.authService.logout({\n account: this.authService.instance.getActiveAccount(),\n });\n },\n });\n });\n }\n\n @HostListener('window:scroll')\n updateTopOffset(): void {\n const mainRef = this.mainRef();\n\n if (!mainRef) {\n return;\n }\n\n const topOffset = pxToRem(\n mainRef.nativeElement.getBoundingClientRect().top,\n );\n\n document.body.style.setProperty(\n '--procure-main-top-offset',\n `${topOffset > 0 ? topOffset : 0}rem`,\n );\n }\n\n ngOnInit(): void {\n this.initializationInProgress = true;\n\n this.isIframe = BrowserUtils.isInIframe() || BrowserUtils.isInPopup();\n\n this.showBrowserInfo();\n\n this.router.events\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n const endLoading =\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel ||\n event instanceof NavigationError;\n\n if (event instanceof ActivationStart) {\n this.isLoading = true;\n } else if (endLoading) {\n this.isLoading = false;\n this.initAuthentication();\n }\n\n if (event instanceof NavigationEnd) {\n this.userApiService.checkUserSession();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.signalrService.disconnectHub();\n }\n\n login(): void {\n // eslint-disable-next-line rxjs/no-ignored-observable\n this.authService.loginRedirect({\n ...this.msalGuardConfig.authRequest,\n } as RedirectRequest);\n }\n\n private setLoginDisplay(): void {\n this.loginDisplay = this.authService.instance.getAllAccounts().length === 0;\n }\n\n private showBrowserInfo(): void {\n const versionAndBuild = `Version ${AppComponent.version} | Build ${AppComponent.buildNumber}`;\n const url = 'https://yoo.digital';\n\n const args = [\n `\\n%cABB Procure\\n\\n%c${versionAndBuild}\\n\\nMade with %c♥%c | ${url}\\n`,\n 'color: #ff000f; font-weight: 700; font-size: 2em; text-shadow: 1px 1px 0px white, 1px -1px 0px white, -1px 1px 0px white, -1px -1px 0px white;',\n 'color: #262626; background: #fff',\n 'color: #ff2424; background: #fff',\n 'color: #262626; background: #fff',\n ];\n\n window.console.log(...args);\n }\n\n /**\n * If no active account set but there are accounts signed in, sets first account to active account\n * To use active account set here, subscribe to inProgress$ first in your component\n */\n private checkAndSetActiveAccount(): void {\n const activeAccount = this.authService.instance.getActiveAccount();\n\n if (\n !activeAccount &&\n this.authService.instance.getAllAccounts().length === 0\n ) {\n return;\n }\n\n const accounts = this.authService.instance.getAllAccounts();\n this.authService.instance.setActiveAccount(accounts[0]);\n\n this.initializationInProgress = false;\n this.signalrService.connect();\n }\n\n private clearCachesOnNewDeploy(): void {\n if (!environment.production || !localStorage || !caches) {\n return;\n }\n\n const key = `${AppComponent.version}-${AppComponent.buildNumber}`;\n\n if (localStorage.getItem('version') === key) {\n return;\n }\n\n localStorage.removeItem('lookupData');\n localStorage.removeItem('preferences');\n\n caches.keys().then((keys) => {\n keys.forEach((item) => {\n caches.delete(item);\n });\n });\n\n localStorage.setItem('version', key);\n\n window.location.reload();\n }\n\n private initAuthentication(): void {\n if (!this.initializationInProgress) {\n return;\n }\n\n this.msalBroadcastService.msalSubject$\n .pipe(\n filter(\n (msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS,\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((result: EventMessage) => {\n const payload = result.payload as AuthenticationResult;\n this.authService.instance.setActiveAccount(payload.account);\n });\n\n this.msalBroadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None,\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.setLoginDisplay();\n this.checkAndSetActiveAccount();\n\n if (!this.loginDisplay) {\n return;\n }\n\n this.login();\n });\n }\n}\n","import {\n Route, UrlMatcher, UrlMatchResult, UrlSegment, UrlSegmentGroup,\n} from '@angular/router';\n\n/**\n * Matches an URL against a entity ID alias.\n * @internal\n */\nfunction createMatcher(entityIdPrefix: string, includeRevision: boolean): UrlMatcher {\n return (\n segments: UrlSegment[],\n _segmentGroup: UrlSegmentGroup,\n _route: Route,\n ): UrlMatchResult | null => {\n if (segments.length === 0) {\n return null;\n }\n\n const consumed: UrlSegment[] = [];\n const posParams: Record = {};\n\n const segment = segments[0];\n const segmentPathUpperCase = segment.path.toUpperCase();\n const normalizedEntityIdPrefix = `${entityIdPrefix.toUpperCase()}-`;\n const entityId = segment.path.slice(normalizedEntityIdPrefix.length);\n const hasRevision = entityId.split('-').length > 1;\n\n if (!segmentPathUpperCase.startsWith(normalizedEntityIdPrefix) || entityId === '' || (includeRevision && !hasRevision)) {\n return null;\n }\n\n const sanitizedSegment = new UrlSegment(`${normalizedEntityIdPrefix}${entityId}`, segment.parameters);\n consumed.push(sanitizedSegment);\n posParams.entityId = new UrlSegment(`${entityId}`, segment.parameters);\n\n return { consumed, posParams };\n };\n}\n\n/**\n * Matches an URL against a entity ID alias.\n */\nexport function entityIdMatcher(entityIdPrefix: string, includeRevision: boolean = false): UrlMatcher {\n // Wrapper to enforce correct typing until underlying Angular type issues are solved.\n return createMatcher(entityIdPrefix, includeRevision);\n}\n","import {\n accessGuard,\n caseInsensitiveMatcher,\n entityIdMatcher,\n} from '@abb-procure/common';\nimport { EntityIdAliasPrefixes } from '@abb-procure/constants';\nimport { Routes } from '@angular/router';\nimport { MsalGuard } from '@azure/msal-angular';\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nexport const routes: Routes = [\n {\n path: '',\n canMatch: [MsalGuard],\n children: [\n {\n path: '',\n loadChildren: () => import('@abb-procure/dashboard'),\n },\n {\n matcher: caseInsensitiveMatcher('search'),\n loadChildren: () => import('@abb-procure/entity-search'),\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Project),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.Project,\n },\n loadChildren: () => import('@abb-procure/project'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.Project),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.Project,\n },\n canMatch: [accessGuard('canAddProject')],\n loadChildren: () => import('@abb-procure/project'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.PurchaseRequisition),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.PurchaseRequisition,\n },\n loadChildren: () => import('@abb-procure/purchase-requisition'),\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Rfq),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.Rfq,\n },\n loadChildren: () => import('@abb-procure/request-for-quotation'),\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.RfRFQ, true),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.RfRFQ,\n },\n loadChildren: () => import('@abb-procure/request-for-rfq'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.RfRFQ),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.RfRFQ,\n },\n canMatch: [accessGuard('canAddRequestForRequestForQuotation')],\n loadChildren: () => import('@abb-procure/request-for-rfq'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Category),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.Category,\n },\n loadChildren: () => import('@abb-procure/category'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.Category),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.Category,\n },\n canMatch: [accessGuard('canManageCategories')],\n loadChildren: () => import('@abb-procure/category'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.TemplateRfrfq),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.TemplateRfrfq,\n },\n loadChildren: () => import('@abb-procure/template'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.TemplateRfrfq),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.TemplateRfrfq,\n },\n canMatch: [accessGuard('canManageTemplates')],\n loadChildren: () => import('@abb-procure/template'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Quotation, true),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.Quotation,\n },\n loadChildren: () => import('@abb-procure/quotation'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.Quotation),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.Quotation,\n },\n loadChildren: () => import('@abb-procure/quotation'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.TemplateSPE),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.TemplateSPE,\n },\n loadChildren: () => import('@abb-procure/template-spe'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.TemplateSPE),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.TemplateSPE,\n },\n loadChildren: () => import('@abb-procure/template-spe'),\n },\n ],\n },\n {\n matcher: caseInsensitiveMatcher(`${EntityIdAliasPrefixes.GeneralTSPE}`),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.GeneralTSPE,\n },\n loadChildren: () => import('@abb-procure/template-spe'),\n },\n ],\n },\n {\n matcher: caseInsensitiveMatcher(\n `${EntityIdAliasPrefixes.GeneralTSPE}/:entityId`,\n ),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.GeneralTSPE,\n },\n loadChildren: () => import('@abb-procure/template-spe'),\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Survey),\n data: {\n mode: 'show',\n entityType: EntityIdAliasPrefixes.Survey,\n },\n loadChildren: () => import('@abb-procure/survey'),\n },\n {\n matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.Survey),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n entityType: EntityIdAliasPrefixes.Survey,\n },\n loadChildren: () => import('@abb-procure/survey'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.Survey),\n children: [\n {\n matcher: caseInsensitiveMatcher('survey-evaluation'),\n loadChildren: () => import('@abb-procure/survey-evaluation'),\n },\n ],\n },\n {\n matcher: entityIdMatcher(EntityIdAliasPrefixes.SupplierEvaluation),\n loadChildren: () => import('@abb-procure/evaluation'),\n },\n // {\n // matcher: caseInsensitiveMatcher(EntityIdAliasPrefixes.PurchaseRequisition),\n // children: [\n // {\n // matcher: caseInsensitiveMatcher('add'),\n // data: {\n // mode: 'add',\n // entityType: EntityIdAliasPrefixes.PurchaseRequisition,\n // },\n // canMatch: [accessGuard('canAddPurchaseRequisition')],\n // loadChildren: () => import('./route-modules/purchase-requisition/purchase-requisition.routing'),\n // },\n // ],\n // },\n {\n matcher: caseInsensitiveMatcher('user'),\n loadChildren: () => import('@abb-procure/user'),\n },\n {\n matcher: caseInsensitiveMatcher('management'),\n loadChildren: () => import('@abb-procure/management'),\n },\n {\n path: 'supplier/:entityId',\n redirectTo: 'suppliers/:entityId',\n },\n {\n matcher: caseInsensitiveMatcher('suppliers'),\n loadChildren: () => import('@abb-procure/suppliers'),\n canMatch: [accessGuard('canManageSuppliers')],\n },\n {\n matcher: caseInsensitiveMatcher('suppliers/:entityId'),\n loadChildren: () => import('@abb-procure/supplier'),\n },\n {\n matcher: caseInsensitiveMatcher('suppliers/:supplierId/strategies'),\n children: [\n {\n matcher: caseInsensitiveMatcher('add'),\n data: {\n mode: 'add',\n },\n loadChildren: () => import('@abb-procure/strategy'),\n },\n {\n matcher: caseInsensitiveMatcher(':strategyId'),\n data: {\n mode: 'show',\n },\n loadChildren: () => import('@abb-procure/strategy'),\n },\n ],\n },\n\n {\n matcher: caseInsensitiveMatcher('categories'),\n loadChildren: () => import('@abb-procure/categories'),\n },\n {\n matcher: caseInsensitiveMatcher('templates'),\n loadChildren: () => import('@abb-procure/templates'),\n canMatch: [accessGuard('canManageTemplates')],\n },\n {\n matcher: caseInsensitiveMatcher('admin'),\n loadChildren: () => import('@abb-procure/admin'),\n },\n {\n matcher: caseInsensitiveMatcher('monitoring'),\n loadChildren: () => import('@abb-procure/monitoring'),\n },\n {\n matcher: caseInsensitiveMatcher('notifications'),\n loadChildren: () => import('@abb-procure/notifications'),\n },\n {\n matcher: caseInsensitiveMatcher('organisation'),\n canMatch: [accessGuard('canViewOrganisation')],\n loadChildren: () => import('@abb-procure/organisation'),\n },\n {\n path: 'no-access',\n title: 'No Access',\n loadChildren: () => import('@abb-procure/no-access'),\n },\n ],\n },\n {\n path: '**',\n canActivate: [MsalGuard],\n title: 'Page Not Found',\n loadChildren: () => import('@abb-procure/not-found'),\n },\n];\n","import {\n dateInterceptor,\n fingerprintInterceptor,\n impersonationInterceptor,\n wafInterceptor,\n} from '@abb-procure/common';\nimport { ApplicationInsightsModule } from '@abb-procure/error-handling';\nimport { concurrentSessionInterceptor } from '@abb-procure/sessions';\nimport {\n provideHttpClient,\n withInterceptors,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { enableProdMode, importProvidersFrom } from '@angular/core';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { bootstrapApplication, BrowserModule } from '@angular/platform-browser';\nimport { provideAnimations } from '@angular/platform-browser/animations';\nimport {\n provideRouter,\n withComponentInputBinding,\n withDisabledInitialNavigation,\n withEnabledBlockingInitialNavigation,\n withInMemoryScrolling,\n withPreloading,\n withRouterConfig,\n} from '@angular/router';\nimport { MsalModule } from '@azure/msal-angular';\nimport { BrowserUtils } from '@azure/msal-browser';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { AzureMapsModule } from 'ng-azure-maps';\nimport { quicklinkProviders, QuicklinkStrategy } from 'ngx-quicklink';\nimport { APP_PROVIDERS } from './app/app-module-providers';\nimport { AppComponent } from './app/app.component';\nimport { routes } from './app/app.routing';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nbootstrapApplication(AppComponent, {\n providers: [\n importProvidersFrom(\n BrowserModule,\n ApplicationInsightsModule.forRoot({\n instrumentationKey: environment.instrumentationKey,\n // @see https://stackoverflow.com/questions/58109846/how-to-programmatically-add-correlation-headers-to-application-insights-angular\n disableFetchTracking: false,\n }),\n MatSnackBarModule,\n MatDialogModule,\n MsalModule,\n NgSelectModule,\n MatNativeDateModule,\n AzureMapsModule.forRoot({\n authOptions: environment.mapOptions.authOptions,\n }),\n ),\n ...APP_PROVIDERS,\n provideAnimations(),\n provideHttpClient(\n withInterceptors([\n dateInterceptor,\n concurrentSessionInterceptor,\n impersonationInterceptor,\n fingerprintInterceptor,\n wafInterceptor,\n ]),\n withInterceptorsFromDi(),\n ),\n provideRouter(\n routes,\n withComponentInputBinding(),\n withInMemoryScrolling({\n scrollPositionRestoration: 'enabled',\n }),\n withRouterConfig({\n onSameUrlNavigation: 'reload',\n }),\n !BrowserUtils.isInIframe() && !BrowserUtils.isInPopup()\n ? withEnabledBlockingInitialNavigation()\n : withDisabledInitialNavigation(),\n withPreloading(QuicklinkStrategy),\n ),\n quicklinkProviders,\n ],\n}).catch((err) => {\n // eslint-disable-next-line no-console\n console.error(err);\n});\n","import {\n HttpErrorResponse,\n HttpEvent, HttpHandlerFn, HttpRequest,\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport {\n Observable, catchError, throwError,\n} from 'rxjs';\nimport { CustomHttpErrorResponse } from '@abb-procure/error-handling';\nimport { SessionsDialogService } from '../services/sessions-dialog.service';\n\nexport const concurrentSessionInterceptor = (\n req: HttpRequest,\n next: HttpHandlerFn,\n): Observable> => {\n const sessionsDialogService = inject(SessionsDialogService);\n\n return next(req)\n .pipe(\n catchError((error: unknown) => {\n if (!(error instanceof HttpErrorResponse)) {\n return throwError(() => error);\n }\n\n if (error.status === 406) {\n sessionsDialogService.openSessionsDialog();\n }\n\n return throwError(() => new CustomHttpErrorResponse(error.name, error.message, {\n ...error,\n url: error.url ?? undefined,\n }));\n }),\n );\n};\n","import { UserState } from '@abb-procure/data';\nimport { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const impersonationInterceptor = (\n request: HttpRequest,\n next: HttpHandlerFn,\n): Observable> => {\n const state = inject(UserState);\n\n const isSubstitute = state.isSubstitute();\n const current = state.current();\n\n if (!isSubstitute || !current) {\n return next(request);\n }\n\n // Clone the request and replace the original headers with\n // cloned headers, updated with the new header params.\n const impersonatingRequest = request.clone({\n headers: request.headers.set('Mystique', current.mystiqueKey),\n });\n\n return next(impersonatingRequest);\n};\n","import { Injectable } from '@angular/core';\nimport { HttpUrlEncodingCodec } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec {\n encodeKey(key: string): string {\n return encodeURIComponent(key);\n }\n\n encodeValue(value: string): string {\n return encodeURIComponent(value);\n }\n}\n","import { JsonObject, JsonValue } from '@angular-devkit/core';\nimport { HttpParams } from '@angular/common/http';\nimport { CustomHttpUrlEncodingCodec } from './custom-http-url-encoding-codec';\n\n/**\n * The operation identifier for `CustomHttpParams.clone`.\n */\nexport const enum Operation {\n APPEND,\n SET,\n DELETE,\n}\n\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable - all mutation operations return a new instance.\n */\nexport class CustomHttpParams /* implements HttpParams */ {\n private map: Map;\n\n private encoder: CustomHttpUrlEncodingCodec =\n new CustomHttpUrlEncodingCodec();\n\n constructor(params: Record | Map = {}) {\n if (params instanceof Map) {\n this.map = new Map(params);\n } else {\n const map = new Map();\n const jsonObject = this.toJsonValue(params) as JsonObject;\n\n Object.keys(jsonObject).forEach((key) => {\n this.parseJsonValueIntoMap(jsonObject[key], key, map);\n });\n\n this.map = map;\n }\n }\n\n /**\n * Check whether the body has one or more values for the given parameter name.\n */\n has(param: string): boolean {\n return this.map.has(param);\n }\n\n /**\n * Get the first value for the given parameter name, or `undefined` if it's not present.\n */\n get(param: string): string | undefined {\n const res = this.map.get(param);\n\n return res ?? undefined;\n }\n\n /**\n * Get all the parameter names for this body.\n */\n keys(): string[] {\n return Array.from(this.map.keys());\n }\n\n /**\n * Construct a new body with an appended value for the given parameter name.\n */\n append(param: string, value: unknown): CustomHttpParams {\n if (value == null) {\n return this.delete(param);\n }\n\n return this.clone(param, this.toJsonValue(value), Operation.APPEND);\n }\n\n /**\n * Construct a new body with a new value for the given parameter name.\n */\n set(param: string, value: unknown): CustomHttpParams {\n if (value == null) {\n return this.delete(param);\n }\n\n return this.clone(param, this.toJsonValue(value), Operation.SET);\n }\n\n /**\n * Construct a new body with all values for the given parameter removed.\n */\n delete(param: string): CustomHttpParams {\n return this.clone(param, undefined, Operation.DELETE);\n }\n\n /**\n * Construct a `HttpParams` object with all the current parameters.\n */\n toHttpParams(): HttpParams {\n const dictionary: Record = {};\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, value] of this.map.entries()) {\n if (value != null) {\n dictionary[key] = value;\n }\n }\n\n return new HttpParams({\n fromObject: dictionary,\n encoder: new CustomHttpUrlEncodingCodec(),\n });\n }\n\n /**\n * Serialize the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString(): string {\n const params: string[] = [];\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, value] of this.map.entries()) {\n if (value != null) {\n params.push(\n `${this.encoder.encodeKey(key)}=${this.encoder.encodeValue(value)}`,\n );\n }\n }\n\n return params.join('&');\n }\n\n /**\n * Returns a clone of the object according to the operation provided.\n */\n private clone(\n param: string,\n value: JsonValue | undefined,\n operation: Operation,\n ): CustomHttpParams {\n const map: Map = new Map();\n let paramSet = false;\n\n if (\n operation === Operation.APPEND ||\n (operation === Operation.SET && !paramSet)\n ) {\n this.parseJsonValueIntoMap(value as JsonValue, param, map);\n return new CustomHttpParams(map);\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, existingValue] of this.map.entries()) {\n // Check if key and param might be the same\n if (key.startsWith(param)) {\n const nextChar = key.substring(param.length, param.length + 1);\n const isExactParamMatch = ['', '['].includes(nextChar);\n\n // eslint-disable-next-line max-depth\n if (!isExactParamMatch) {\n // If key and param are not an exact match, just add the existing key-value pair\n map.set(key, existingValue);\n } else if (operation === Operation.SET && !paramSet) {\n // On the first call, replace existing key with param.\n // Remove all matches on subsequent calls (skipped).\n // e.g. `param` will be set and `param[second]` will be ignored.\n paramSet = true;\n this.parseJsonValueIntoMap(value as JsonValue, param, map);\n }\n // else:\n // operation == DELETE : just skip setting the param\n // operation == SET and param was already set : skip to remove obsolete params\n } else {\n // If key and param are not the same, just add the existing key-value pair\n map.set(key, existingValue);\n }\n }\n\n return new CustomHttpParams(map);\n }\n\n /**\n * Converts an object to basic JSON values.\n */\n private toJsonValue(obj: unknown): JsonValue {\n return JSON.parse(JSON.stringify(obj));\n }\n\n /**\n * Called recursively to construct HTTP param key-value pairs from nested objects.\n */\n private parseJsonValueIntoMap(\n obj: JsonValue,\n prefix: string,\n httpParamsMap: Map,\n ): void {\n if (obj == null || typeof obj === 'function') {\n return;\n }\n\n if (Array.isArray(obj)) {\n for (let i = 0; i < obj.length; i += 1) {\n this.parseJsonValueIntoMap(obj[i], `${prefix}[${i}]`, httpParamsMap);\n }\n } else if (typeof obj !== 'object') {\n // This is primitive value (string, number, boolean)\n httpParamsMap.set(prefix, `${obj}`);\n } else {\n // This is an object\n // eslint-disable-next-line no-restricted-syntax\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.parseJsonValueIntoMap(\n obj[key],\n `${prefix}[${key}]`,\n httpParamsMap,\n );\n }\n }\n }\n }\n}\n","import * as t from 'io-ts';\nimport { isValid, formatISO } from 'date-fns';\nimport { Monad } from 'fp-ts/Either';\n\nconst adjustToUtc = (date: Date): Date => new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n);\n\nexport const DateString = new t.Type(\n 'DateString',\n (u): u is Date => u instanceof Date,\n (u, c) => Monad.chain(\n t.string.validate(u, c),\n (s) => {\n const d = adjustToUtc(new Date(s));\n\n return (isValid(d) ? t.success(d) : t.failure(u, c));\n },\n ),\n (a) => formatISO(a),\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport * as t from 'io-ts';\n\nexport const nullable = (\n type: t.Type,\n): t.UnionC<[t.Type, t.NullC]> => t.union([type, t.null]);\n\nexport const optional = (\n type: t.Type,\n): t.UnionC<[t.Type, t.UndefinedC]> => t.union([type, t.undefined]);\n","import { ENVIRONMENT_CONFIG, EnvironmentConfig } from '@abb-procure/constants';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpApi } from './http-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseApiService extends HttpApi {\n private readonly environmentConfig: EnvironmentConfig =\n inject(ENVIRONMENT_CONFIG);\n\n /**\n * @inheritdoc\n */\n getEndpointUrl(url: string): string {\n return this.environmentConfig.apiEndpoint + url;\n }\n}\n","import { ErrorHandlerService } from '@abb-procure/error-handling';\nimport { HttpResponse } from '@angular/common/http';\nimport { DestroyRef, Injectable, inject } from '@angular/core';\nimport { OperatorFunction, catchError, of, throwError } from 'rxjs';\nimport { BaseApiService } from './base-api.service';\n\nexport type FileResponse = string | Blob | HttpResponse | null;\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class ApiService {\n protected readonly baseApiService = inject(BaseApiService);\n protected readonly errorHandlerService = inject(ErrorHandlerService);\n protected readonly destroyRef = inject(DestroyRef);\n\n protected get$: typeof this.baseApiService.get$ =\n this.baseApiService.get$.bind(this.baseApiService);\n\n protected get: typeof this.baseApiService.get = this.baseApiService.get.bind(\n this.baseApiService,\n );\n\n protected post$: typeof this.baseApiService.post$ =\n this.baseApiService.post$.bind(this.baseApiService);\n\n protected post: typeof this.baseApiService.post =\n this.baseApiService.post.bind(this.baseApiService);\n\n protected put$: typeof this.baseApiService.put$ =\n this.baseApiService.put$.bind(this.baseApiService);\n\n protected put: typeof this.baseApiService.put = this.baseApiService.put.bind(\n this.baseApiService,\n );\n\n protected delete$: typeof this.baseApiService.delete$ =\n this.baseApiService.delete$.bind(this.baseApiService);\n\n protected delete: typeof this.baseApiService.delete =\n this.baseApiService.delete.bind(this.baseApiService);\n\n protected downloadBlob$: typeof this.baseApiService.downloadBlob$ =\n this.baseApiService.downloadBlob$.bind(this.baseApiService);\n\n protected downloadBlob: typeof this.baseApiService.downloadBlob =\n this.baseApiService.downloadBlob.bind(this.baseApiService);\n\n protected catchError$ = (\n text: string,\n propagateErrors: boolean = false,\n ): OperatorFunction =>\n catchError((error: unknown) => {\n if (propagateErrors) {\n return throwError(() => error);\n }\n\n this.errorHandlerService.handleError(error, {\n text,\n });\n\n return of(null);\n });\n\n protected catchError = (\n error: Error,\n text: string,\n propagateErrors: boolean = false,\n ): T | null => {\n if (propagateErrors) {\n throw error;\n }\n\n this.errorHandlerService.handleError(error, {\n text,\n });\n\n return null;\n };\n}\n","export class IoTsTypeError extends Error {\n message: string;\n\n constructor(name: string, message: string) {\n super(name);\n\n this.message = message;\n }\n}\n","import {\n CustomHttpErrorResponse,\n IoTsTypeError,\n} from '@abb-procure/error-handling';\nimport {\n HttpClient,\n HttpErrorResponse,\n HttpEvent,\n HttpEventType,\n HttpHeaders,\n HttpResponse,\n} from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { Either, isRight } from 'fp-ts/Either';\nimport { ArrayC, Errors, IntersectionC, Type, TypeC, UnionC } from 'io-ts';\nimport { PathReporter } from 'io-ts/PathReporter';\nimport { Observable, lastValueFrom, throwError } from 'rxjs';\nimport { catchError, filter, map, take } from 'rxjs/operators';\nimport { CustomHttpParams } from '../helpers/custom-http-params';\nimport { EnvironmentState } from '../state/environment.state';\nimport { FileResponse } from './api.service';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ntype IoTsTypes =\n | Type\n | TypeC\n | ArrayC\n | IntersectionC\n | UnionC;\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport const formatStatus = (\n statusCode: number,\n statusText: string,\n): string => {\n const code = statusCode > 0 ? `${statusCode} ` : '';\n return `${code}${statusText}`;\n};\n\n/**\n * HTTP defines a set of request methods to indicate the desired action to be performed for a given resource.\n */\nexport type HttpRequestMethod =\n | 'GET'\n | 'HEAD'\n | 'POST'\n | 'PUT'\n | 'DELETE'\n | 'CONNECT'\n | 'OPTIONS'\n | 'TRACE'\n | 'PATCH';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const getErrorMessages = (error: any): string[] => {\n if (!error?.error) {\n return [];\n }\n\n const allErrors = [];\n const errorResponse = error.error;\n\n if (typeof errorResponse === 'string') {\n allErrors.push(errorResponse);\n } else if (typeof errorResponse === 'object') {\n if ('statusCode' in errorResponse && 'message' in errorResponse) {\n allErrors.push(errorResponse.message);\n } else {\n // eslint-disable-next-line no-restricted-syntax\n for (const errorProperty in errorResponse) {\n // eslint-disable-next-line max-depth\n if (\n Object.prototype.hasOwnProperty.call(errorResponse, errorProperty) &&\n Array.isArray(errorResponse[errorProperty])\n ) {\n allErrors.push(...errorResponse[errorProperty]);\n }\n }\n }\n }\n\n return allErrors;\n};\n\nexport const catchHttpError = (error: HttpErrorResponse): Observable => {\n let statusCode: number = error.status;\n const { statusText } = error;\n\n if (\n error.error &&\n typeof error.error === 'object' &&\n error.error.statusCode\n ) {\n statusCode = error.error.statusCode;\n }\n\n const customStatusText = formatStatus(statusCode, statusText);\n const errorMessage = getErrorMessages(error).join(' \\n');\n\n return throwError(\n () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new CustomHttpErrorResponse(customStatusText, errorMessage, error as any),\n );\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class HttpApi {\n private httpClient = inject(HttpClient);\n private readonly environmentState = inject(EnvironmentState);\n\n get$(\n pathName: string,\n ioTsType: IoTsTypes,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Observable {\n const request$ = this.request$(\n 'GET',\n pathName,\n null,\n queryParameters,\n headers,\n );\n\n return this.getHttpResponseBody$(request$, ioTsType);\n }\n\n async get(\n pathName: string,\n ioTsType: IoTsTypes,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Promise {\n return lastValueFrom(\n this.get$(pathName, ioTsType, queryParameters, headers),\n );\n }\n\n /**\n * Constructs a POST request.\n */\n post$(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Observable {\n const request$ = this.request$(\n 'POST',\n pathName,\n body,\n queryParameters,\n headers,\n );\n\n return this.getHttpResponseBody$(request$, ioTsType);\n }\n\n post(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Promise {\n return lastValueFrom(\n this.post$(\n pathName,\n ioTsType,\n body,\n queryParameters,\n headers,\n ),\n );\n }\n\n /**\n * Constructs a PUT request\n */\n put$(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Observable {\n const request$ = this.request$(\n 'PUT',\n pathName,\n body,\n queryParameters,\n headers,\n );\n\n return this.getHttpResponseBody$(request$, ioTsType);\n }\n\n put(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Promise {\n return lastValueFrom(\n this.put$(\n pathName,\n ioTsType,\n body,\n queryParameters,\n headers,\n ),\n );\n }\n\n /**\n * Constructs a DELETE request\n */\n delete$(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Observable {\n const request$ = this.request$(\n 'DELETE',\n pathName,\n body,\n queryParameters,\n headers,\n );\n\n return this.getHttpResponseBody$(request$, ioTsType);\n }\n\n delete(\n pathName: string,\n ioTsType: IoTsTypes,\n body?: Request,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Promise {\n return lastValueFrom(\n this.delete$(\n pathName,\n ioTsType,\n body,\n queryParameters,\n headers,\n ),\n );\n }\n\n /**\n * Fetches details for a blob download.\n */\n downloadBlob$(\n pathName: string,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n fullUrl?: boolean,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n body?: any,\n ): Observable {\n const params = queryParameters ? queryParameters.toHttpParams() : {};\n\n const endpointUrl = fullUrl ? pathName : this.getEndpointUrl(pathName);\n\n if (body) {\n return this.httpClient\n .put(endpointUrl, body, {\n responseType: 'blob',\n headers,\n params,\n observe: 'response',\n })\n .pipe(catchError(catchHttpError));\n }\n\n return this.httpClient\n .get(endpointUrl, {\n responseType: 'blob',\n headers,\n params,\n observe: 'response',\n })\n .pipe(catchError(catchHttpError));\n }\n\n async downloadBlob(\n pathName: string,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n fullUrl?: boolean,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n body?: any,\n ): Promise {\n return lastValueFrom(\n this.downloadBlob$(pathName, queryParameters, headers, fullUrl, body),\n );\n }\n\n /**\n * Returns the response body of a HttpEvent sequence.\n */\n private getHttpResponseBody$(\n observable$: Observable>,\n ioTsType?: IoTsTypes,\n ): Observable {\n return observable$.pipe(\n filter(\n (event): event is HttpResponse =>\n event.type === HttpEventType.Response,\n ),\n take(1),\n map((response) => response.body),\n map((response) => {\n if (ioTsType) {\n const res = ioTsType.decode(response);\n\n if (this.hasErrorByRuntime(res)) {\n return null;\n }\n\n if (isRight(res)) {\n return res.right;\n }\n }\n\n return response;\n }),\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private hasErrorByRuntime(decodeRes: Either): boolean {\n const errors = PathReporter.report(decodeRes);\n\n if (Array.isArray(errors)) {\n if (errors[0] === 'No errors!') {\n return false;\n }\n\n let parsedErrors: string[] = [];\n\n errors.forEach((error) => {\n const components = error.split('/');\n const key = components.join(' => ');\n\n if (!this.environmentState.isProduction()) {\n // eslint-disable-next-line no-console\n console.error(key);\n }\n\n parsedErrors = [...parsedErrors, key];\n });\n\n throw new IoTsTypeError('io-ts type error', parsedErrors.join('\\n'));\n }\n\n return true;\n }\n\n /**\n * Constructs a HTTP request.\n */\n private request$(\n method: HttpRequestMethod,\n url: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n body?: any,\n queryParameters?: CustomHttpParams,\n headers?: HttpHeaders,\n ): Observable> {\n const params = queryParameters ? queryParameters.toHttpParams() : {};\n\n const request$ = this.httpClient.request(\n method,\n this.getEndpointUrl(url),\n {\n body,\n headers,\n reportProgress: true,\n observe: 'events',\n params,\n },\n );\n\n return request$.pipe(catchError(catchHttpError));\n }\n\n /**\n * Builds the final URL depending on the url input\n *\n * @param url string which is used in the final url\n */\n protected abstract getEndpointUrl(url: string): string;\n}\n","import { Injectable, computed, signal } from '@angular/core';\n\nexport interface EnvironmentStateShape {\n isProduction: boolean;\n isEnvironmentBannerEnabled: boolean;\n}\n\nconst initialState: EnvironmentStateShape = {\n isProduction: false,\n isEnvironmentBannerEnabled: false,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EnvironmentState {\n readonly isProduction = computed(() => this.state().isProduction);\n readonly isEnvironmentBannerEnabled = computed(\n () => this.state().isEnvironmentBannerEnabled,\n );\n\n private readonly state = signal({ ...initialState });\n\n setIsProduction(isProduction: boolean): void {\n this.state.update((currentState) => ({\n ...currentState,\n isProduction,\n }));\n }\n\n setIsEnvironmentBannerEnabled(isEnvironmentBannerEnabled: boolean): void {\n this.state.update((currentState) => ({\n ...currentState,\n isEnvironmentBannerEnabled,\n }));\n }\n}\n","import { DestroyRef, WritableSignal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subscription } from 'rxjs';\n\nexport const fetchData$ = (\n apiCall$: Observable,\n loading: WritableSignal,\n destroyRef: DestroyRef,\n callback: (response: NonNullable) => void,\n): Subscription => {\n loading.set(true);\n\n return apiCall$.pipe(takeUntilDestroyed(destroyRef)).subscribe((response) => {\n loading.set(false);\n\n if (!response) {\n return;\n }\n\n callback(response);\n });\n};\n\nexport async function fetchData(\n apiCall: Promise,\n loading: WritableSignal,\n callback: (response: NonNullable) => void,\n): Promise {\n loading.set(true);\n\n try {\n const response = await apiCall;\n\n if (!response) {\n return;\n }\n\n callback(response);\n } finally {\n loading.set(false);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'initials',\n standalone: true,\n})\nexport class InitialsPipe implements PipeTransform {\n /**\n * Transforms the input value.\n */\n transform(name: string | null): string {\n if (!name) {\n return '';\n }\n\n return name.split(' ').map((part) => part[0]).join('').slice(0, 2);\n }\n}\n","@if (!avatar() || error()) {\n \n {{ name() | initials }}\n \n} @else {\n \n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n input,\n signal,\n} from '@angular/core';\nimport { InitialsPipe } from '../../pipes/initials.pipe';\n\n@Component({\n selector: 'procure-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [InitialsPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AvatarComponent {\n @HostBinding('class.avatar--sharp')\n sharp = input(false, {\n transform: booleanAttribute,\n });\n\n @HostBinding('class.avatar--error')\n get hasError(): boolean {\n return this.error() || !this.avatar();\n }\n\n name = input(null);\n avatar = input(null);\n\n error = signal(false);\n\n onImageError(): void {\n this.error.set(true);\n }\n}\n","@if (link()) {\n @if (!openInNewTab()) {\n \n {{ label() }}\n \n } @else {\n \n {{ label() }}\n \n }\n} @else {\n \n {{ label() }}\n \n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\n\n@Component({\n selector: 'procure-badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n standalone: true,\n imports: [RouterLink, QuicklinkDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent {\n id = input(null);\n label = input(null);\n link = input(null);\n view = input();\n copy = input(null);\n backgroundColor = input(null);\n\n openInNewTab = input(false, {\n transform: booleanAttribute,\n });\n\n condensed = input(false, {\n transform: booleanAttribute,\n });\n\n class = computed(() => `badge ${this.condensed() ? 'badge--condensed' : ''}`);\n}\n","
\n@if (prefix) {\n \n {{ prefix }}\n \n}\n
\n \n @if (condensedIcon) {\n \n {{ condensedIcon }}\n \n }\n @if (suffix) {\n \n {{ suffix }}\n \n }\n
\n@if (loading) {\n
\n \n
\n}\n@if (badge) {\n \n {{ badge > badgeLimit ? badgeLimit + '+' : badge }}\n \n}\n","import { UNREAD_NOTIFICATIONS_LIMIT } from '@abb-procure/constants';\nimport {\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n booleanAttribute,\n} from '@angular/core';\nimport { MatBadge, MatBadgeModule } from '@angular/material/badge';\nimport { MatIcon, MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\ntype ButtonColors =\n | 'primary'\n | 'secondary'\n | 'black'\n | 'white'\n | 'info'\n | 'grey';\n\ntype ButtonVariants = 'flat' | 'stroked' | 'ghost';\n\n@Component({\n selector: '[procure-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n standalone: true,\n imports: [MatProgressSpinnerModule, MatIconModule, MatBadgeModule],\n})\nexport class ButtonComponent {\n @ViewChild(MatBadge, { static: false, read: ElementRef })\n readonly badgeItem?: ElementRef;\n\n @ContentChild(MatIcon, { static: false }) readonly icon?: MatIcon;\n\n @HostBinding('class')\n get classes(): string {\n return [\n 'button',\n `button--${this.color}`,\n `button--${this.variant}`,\n this.icon ? 'button--icon' : '',\n this.condensed || this.condensedIcon ? 'button--condensed' : '',\n this.elevated ? 'button--elevated' : '',\n this.wide ? 'button--wide' : '',\n this.filter ? 'button--filter' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n @HostBinding('attr.disabled')\n get isDisabled(): boolean | null {\n return this.loading === true || this.disabled === true || null;\n }\n\n @Input() color: ButtonColors = 'secondary';\n @Input() variant: ButtonVariants = 'flat';\n @Input() prefix?: string;\n @Input() suffix?: string;\n @Input() condensedIcon?: string;\n @Input() badgeLimit = UNREAD_NOTIFICATIONS_LIMIT;\n @Input({ transform: booleanAttribute }) loading = false;\n @Input({ transform: booleanAttribute }) disabled = false;\n @Input({ transform: booleanAttribute }) active = false;\n @Input({ transform: booleanAttribute }) condensed = false;\n @Input({ transform: booleanAttribute }) elevated = false;\n @Input({ transform: booleanAttribute }) animateBadgeChange = false;\n @Input({ transform: booleanAttribute }) wide = false;\n @Input({ transform: booleanAttribute }) filter = false;\n\n @Input()\n get badge(): number | null {\n return this._badge;\n }\n\n set badge(value: number | null) {\n const previous = this._badge;\n\n this._badge = value;\n\n if (\n this._badge === null ||\n this._badge <= (previous || 0) ||\n !this.animateBadgeChange\n ) {\n return;\n }\n\n this.badgeItem?.nativeElement.classList.remove('button__badge--animated');\n\n setTimeout(() => {\n this.badgeItem?.nativeElement.classList.add('button__badge--animated');\n }, 0);\n }\n\n private _badge: number | null = null;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n input,\n} from '@angular/core';\nimport { LoadingIndicatorComponent } from '../loading-indicator/loading-indicator.component';\n\n@Component({\n standalone: true,\n selector: 'procure-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n imports: [LoadingIndicatorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n @HostBinding('class.card--condensed')\n get isCondensed(): boolean {\n return this.condensed();\n }\n\n @HostBinding('class.card--flat')\n get isFlat(): boolean {\n return this.flat();\n }\n\n @HostBinding('class.card--accent')\n get isAccent(): boolean {\n return this.accent();\n }\n\n cover = input(false, {\n transform: booleanAttribute,\n });\n\n loadingDiameter = input(40);\n condensed = input(false, {\n transform: booleanAttribute,\n });\n\n loading = input(false, {\n transform: booleanAttribute,\n });\n\n flat = input(false, {\n transform: booleanAttribute,\n });\n\n accent = input(false, {\n transform: booleanAttribute,\n });\n\n opaque = input(false, {\n transform: booleanAttribute,\n });\n}\n","\n\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ClipboardService } from '../../services/clipboard.service';\n\n@Component({\n selector: 'procure-copy-button',\n templateUrl: './copy-button.component.html',\n styleUrl: './copy-button.component.scss',\n standalone: true,\n imports: [MatTooltipModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CopyButtonComponent {\n value = input();\n tooltip = input();\n\n isUrl = input(false, {\n transform: booleanAttribute,\n });\n\n private readonly clipboardService = inject(ClipboardService);\n\n protected copy(): void {\n const value = this.value();\n const isUrl = this.isUrl();\n\n if (!value && !isUrl) {\n return;\n }\n\n if (isUrl) {\n this.clipboardService.copy(value ?? '', true);\n } else if (value) {\n this.clipboardService.copy(value);\n }\n }\n}\n","\n {{ isUrl() ? \"link\" : \"content_copy\" }}\n\n","@if (label(); as label) {\n \n \n @if (linked() && !copyNumber()) {\n \n link\n \n }\n @if (copyNumber()) {\n \n content_copy\n \n }\n \n}\n","import { EntityIdAliasPrefixes } from '@abb-procure/constants';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ClipboardService } from '../../services/clipboard.service';\nimport { EntityUtility } from '../../utilities/entity.util';\nimport { BadgeComponent } from '../badge/badge.component';\n\nconst colors: Record = {\n PROJ: '#ff6c25',\n RFRFQ: '#00acb6',\n RFQ: '#0096ea',\n QUOT: '#6d1541',\n PREQ: '#eece23',\n PEX: '#d90000',\n PE: '#0a8a15',\n TRFRFQ: '#00667a',\n CATM: '#000000',\n SUP: '#991f00',\n STRAT: 'transparent',\n USER: 'transparent',\n TSPE: '#190482',\n PSPE: '#6D67E4',\n GSPT: '#ff000f',\n SPE: '#b266ff',\n DSESC: '#000000',\n};\n\n@Component({\n selector: 'procure-entity-badge',\n templateUrl: './entity-badge.component.html',\n styleUrls: ['./entity-badge.component.scss'],\n standalone: true,\n imports: [BadgeComponent, MatTooltipModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EntityBadgeComponent {\n @HostBinding('class')\n @Input()\n hostClass: string = '';\n\n label = input.required();\n tooltip = input('');\n\n clickable = input(false, {\n transform: booleanAttribute,\n });\n\n linked = input(true, {\n transform: booleanAttribute,\n });\n\n copyNumber = input(true, {\n transform: booleanAttribute,\n });\n\n condensed = input(false, {\n transform: booleanAttribute,\n });\n\n openInNewTab = input(false, {\n transform: booleanAttribute,\n });\n\n view = input();\n\n protected readonly type = computed(() => {\n const label = this.label();\n\n if (!label) {\n return EntityIdAliasPrefixes.Project;\n }\n\n return EntityUtility.getType(label);\n });\n\n protected readonly backgroundColor = computed(() => {\n const type = this.type();\n return type ? colors[type] : null;\n });\n\n private readonly clipboardService = inject(ClipboardService);\n\n protected copyLink(): void {\n if (!this.linked()) {\n return;\n }\n\n this.clipboardService.copy(`${window.location.origin}/${this.label()}`);\n }\n\n protected copyEntityNumber(): void {\n if (!this.copyNumber()) {\n return;\n }\n\n this.clipboardService.copy(`[${this.label()}]`);\n }\n}\n","\n
\n \n \n @if (!hideHeader()) {\n \n \n @if (icon(); as icon) {\n \n {{ icon }}\n \n }\n @if (badge() || (badge() === 0 && showZeroBadge())) {\n \n }\n @if (color(); as color) {\n
\n }\n
\n @if (hint()) {\n @if (fromSAPAriba()) {\n \n } @else {\n \n info\n \n }\n }\n {{ label() }}\n @if (labelSuffix(); as labelSuffix) {\n \n @if (label()) {\n -\n }\n {{ labelSuffix }}\n \n }\n @if (labelLink() && link()) {\n \n \n {{ labelLink() }}\n \n \n }\n
\n @if (status(); as status) {\n \n }\n \n \n }\n \n \n \n \n\n","import { EntityStatusModel } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n output,\n} from '@angular/core';\nimport {\n MatExpansionModule,\n MatExpansionPanel,\n} from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CardComponent } from '../card/card.component';\nimport { NumberBadgeComponent } from '../number-badge/number-badge.component';\nimport { StatusBadgeComponent } from '../status-badge/status-badge.component';\n\nconst DEFAULT_PANEL_HEIGHT: string = '48';\n\n@Component({\n selector: 'procure-expansion-panel',\n templateUrl: './expansion-panel.component.html',\n styleUrls: ['./expansion-panel.component.scss'],\n standalone: true,\n imports: [\n MatExpansionModule,\n MatIconModule,\n NumberBadgeComponent,\n CardComponent,\n StatusBadgeComponent,\n MatTooltipModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ExpansionPanelComponent {\n @ViewChild(MatExpansionPanel, { static: true })\n expansionPanel?: MatExpansionPanel;\n\n closed = output();\n opened = output();\n\n label = input('');\n hint = input(null);\n labelSuffix = input('');\n labelLink = input('');\n link = input('');\n badge = input();\n color = input();\n\n cover = input(false, {\n transform: booleanAttribute,\n });\n\n showZeroBadge = input(false, {\n transform: booleanAttribute,\n });\n\n icon = input('');\n expansionPanelClass = input(['mat-elevation-z0']);\n status = input();\n panelHeight = input(`${DEFAULT_PANEL_HEIGHT}px`);\n\n fromSAPAriba = input(false, {\n transform: booleanAttribute,\n });\n\n loading = input(false, {\n transform: booleanAttribute,\n });\n\n expanded = input(true, {\n transform: booleanAttribute,\n });\n\n hideToggle = input(false, {\n transform: booleanAttribute,\n });\n\n disabled = input(false, {\n transform: booleanAttribute,\n });\n\n hideHeader = input(false, {\n transform: booleanAttribute,\n });\n\n flat = input(false, {\n transform: booleanAttribute,\n });\n\n accent = input(false, {\n transform: booleanAttribute,\n });\n\n visibleHeight = computed(() => {\n if (this.label()?.length === 0 && this.hideToggle()) {\n return '0';\n }\n\n return this.panelHeight();\n });\n\n close(): void {\n this.expansionPanel?.close();\n }\n\n open(): void {\n this.expansionPanel?.open();\n }\n\n toggle(): void {\n this.expansionPanel?.toggle();\n }\n}\n","@if (notification?.display) {\n \n
\n info\n
\n
\n \n close\n \n
\n \n \n}\n","import {\n Component, DestroyRef, EventEmitter, Input, Output, ViewEncapsulation, booleanAttribute, inject,\n} from '@angular/core';\nimport {\n trigger, style, transition, animate,\n} from '@angular/animations';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ApplicationNotificationModel, NotificationApiService } from '@abb-procure/data';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'procure-global-notification',\n templateUrl: './global-notification.component.html',\n styleUrls: ['./global-notification.component.scss'],\n standalone: true,\n imports: [\n MatIconModule,\n ButtonComponent,\n ],\n animations: [\n trigger('position', [\n transition(':enter', [\n style({ transform: 'translateY(100%)' }),\n animate(200, style({ transform: 'translateY(0)' })),\n ]),\n transition(':leave', [animate(200, style({ transform: 'translateY(100%)' }))]),\n ]),\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GlobalNotificationComponent {\n @Input() notification?: ApplicationNotificationModel | null = null;\n @Input({ transform: booleanAttribute }) preview: boolean = false;\n\n @Output() readonly acceptNotification = new EventEmitter();\n\n private readonly notificationApiService = inject(NotificationApiService);\n private readonly destroyRef = inject(DestroyRef);\n\n onAccept(): void {\n if (!this.notification) {\n return;\n }\n\n if (this.preview) {\n this.acceptNotification.emit();\n return;\n }\n\n this.notificationApiService.confirmNotification$(this.notification.notificationId)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((response) => {\n if (!response || !this.notification) {\n return;\n }\n\n this.notification.display = false;\n });\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n input,\n} from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\ntype IndicatorPosition = 'top' | 'center';\ntype IndicatorDelay = 'short' | 'long';\n\n@Component({\n selector: 'procure-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n standalone: true,\n imports: [MatProgressSpinnerModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoadingIndicatorComponent {\n @HostBinding('class')\n get class(): string {\n return `loading-indicator loading-indicator--${this.position()} loading-indicator--${this.delay()}`;\n }\n\n @HostBinding('class.loading-indicator--active')\n get activeClass(): boolean {\n return this.active();\n }\n\n @HostBinding('class.loading-indicator--inset')\n get insetClass(): boolean {\n return this.inset();\n }\n\n @HostBinding('class.loading-indicator--opaque')\n get opaqueClass(): boolean {\n return this.opaque();\n }\n\n @HostBinding('class.loading-indicator--cover')\n get coverClass(): boolean {\n return this.cover();\n }\n\n active = input(false, {\n transform: booleanAttribute,\n });\n\n opaque = input(false, {\n transform: booleanAttribute,\n });\n\n cover = input(false, {\n transform: booleanAttribute,\n });\n\n inset = input(false, {\n transform: booleanAttribute,\n });\n\n diameter = input(40);\n position = input('center');\n delay = input('short');\n}\n","\n","@if (route(); as route) {\n @if (route.length > 0) {\n \n \n @if (expanded()) {\n \n }\n \n \n }\n}\n@if (view(); as view) {\n @if (view.length !== 0) {\n \n \n @if (expanded()) {\n \n }\n \n \n }\n}\n\n \n \n\n\n\n \n\n","import { PreferencesState } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Component, booleanAttribute, inject, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Router, RouterLink } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { ViewNavigationService } from '../../services/view-navigation.service';\n\n@Component({\n selector: 'procure-menu-child',\n templateUrl: './menu-child.component.html',\n styleUrls: ['./menu-child.component.scss'],\n standalone: true,\n imports: [\n MatIconModule,\n RouterLink,\n MatTooltipModule,\n QuicklinkDirective,\n RouterLink,\n NgTemplateOutlet,\n ],\n})\nexport class MenuChildComponent {\n route = input<(string | null | undefined)[]>([]);\n parent = input<(string | null | undefined)[]>([]);\n view = input();\n tooltip = input();\n\n active = input(false, {\n transform: booleanAttribute,\n });\n\n last = input(false, {\n transform: booleanAttribute,\n });\n\n first = input(false, {\n transform: booleanAttribute,\n });\n\n show = input(false, {\n transform: booleanAttribute,\n });\n\n selected = input(false, {\n transform: booleanAttribute,\n });\n\n protected expanded = inject(PreferencesState).isNavigationExpanded;\n protected readonly viewNavigationService = inject(ViewNavigationService);\n\n private readonly router = inject(Router);\n\n navigate(): void {\n const parent = this.parent();\n const view = this.view();\n\n if (parent) {\n this.router.navigate(parent);\n }\n\n if (view) {\n this.viewNavigationService.setActiveView(view);\n\n const url = new URL(window.location.toString());\n url.searchParams.set('view', view);\n\n window.history.pushState({}, '', url);\n }\n }\n}\n","@if (view(); as view) {\n \n \n @if (icon(); as icon) {\n @if (outlined()) {\n \n {{ icon }}\n \n } @else {\n \n {{ icon }}\n \n }\n }\n @if (warning() && expanded()) {\n warning\n }\n @if (expanded()) {\n {{ label() }}\n }\n \n \n \n}\n@if (link(); as link) {\n \n \n @if (icon(); as icon) {\n @if (outlined()) {\n \n {{ icon }}\n \n } @else {\n \n {{ icon }}\n \n }\n }\n @if (expanded()) {\n {{ label() }}\n }\n \n \n \n}\n@if (!link() && !view()) {\n \n
\n @if (icon(); as icon) {\n @if (outlined()) {\n \n {{ icon }}\n \n } @else {\n \n {{ icon }}\n \n }\n }\n @if (expanded()) {\n {{ label() }}\n }\n
\n \n \n}\n\n\n @if (children.length && showChildren()) {\n
\n \n
\n }\n
\n","import { PreferencesState } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n booleanAttribute,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { QuicklinkDirective } from 'ngx-quicklink';\nimport { ViewNavigationService } from '../../services/view-navigation.service';\nimport { MenuChildComponent } from '../menu-child/menu-child.component';\n\n@Component({\n selector: 'procure-menu-item',\n templateUrl: './menu-item.component.html',\n styleUrls: ['./menu-item.component.scss'],\n standalone: true,\n imports: [\n MatIconModule,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n MatTooltipModule,\n QuicklinkDirective,\n ],\n})\nexport class MenuItemComponent {\n @ContentChildren(MenuChildComponent) children!: MenuChildComponent[];\n\n viewChange = output();\n\n disabled = input(false, {\n transform: booleanAttribute,\n });\n\n view = input();\n icon = input();\n link = input();\n fragment = input();\n label = input();\n tooltip = input();\n\n outlined = input(false, {\n transform: booleanAttribute,\n });\n\n primary = input(false, {\n transform: booleanAttribute,\n });\n\n faded = input(false, {\n transform: booleanAttribute,\n });\n\n partialMatch = input(false, {\n transform: booleanAttribute,\n });\n\n showChildren = input(true, {\n transform: booleanAttribute,\n });\n\n secondary = input(false, {\n transform: booleanAttribute,\n });\n\n active = input(false, {\n transform: booleanAttribute,\n });\n\n warning = input(false, {\n transform: booleanAttribute,\n });\n\n protected itemTooltip = computed(() =>\n !this.expanded() ? this.label() : this.tooltip(),\n );\n\n protected preferences = inject(PreferencesState);\n\n protected expanded = computed(() =>\n !this.secondary()\n ? this.preferences.isNavigationExpanded()\n : this.preferences.isSecondaryNavigationExpanded(),\n );\n\n protected readonly viewNavigationService = inject(ViewNavigationService);\n\n protected activeView = this.viewNavigationService.activeView;\n\n navigate(): void {\n const view = this.view();\n\n if (!view) {\n return;\n }\n\n this.viewNavigationService.setActiveView(view);\n\n const url = new URL(window.location.toString());\n url.searchParams.set('view', view);\n\n window.history.pushState({}, '', url);\n }\n}\n","@if (expanded() && title()) {\n
\n @if (entityNumber()) {\n \n \n } @else {\n {{ title() }}\n }\n
\n}\n\n \n
\n \n
\n\n","import { PreferencesState } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n HostBinding,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { CopyButtonComponent } from '../copy-button/copy-button.component';\nimport { EntityBadgeComponent } from '../entity-badge/entity-badge.component';\nimport { LoadingIndicatorComponent } from '../loading-indicator/loading-indicator.component';\n\n@Component({\n selector: 'procure-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n standalone: true,\n imports: [\n LoadingIndicatorComponent,\n ButtonComponent,\n EntityBadgeComponent,\n CopyButtonComponent,\n ],\n})\nexport class MenuComponent {\n @HostBinding('attr.title') titleAttr = '';\n\n title = input();\n\n entityNumber = input(null);\n\n icons = input(false, {\n transform: booleanAttribute,\n });\n\n isLoading = input(false, {\n transform: booleanAttribute,\n });\n\n bottom = input(false, {\n transform: booleanAttribute,\n });\n\n protected copyLink = computed(\n () => `${window.location.origin}/${this.entityNumber()}`,\n );\n\n protected expanded = inject(PreferencesState).isNavigationExpanded;\n}\n","
\n \n {{ value() }}\n
\n @if (label()) {\n
\n {{ label() }}\n
\n }\n\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'procure-number-badge',\n templateUrl: './number-badge.component.html',\n styleUrls: ['./number-badge.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class NumberBadgeComponent {\n value = input.required();\n label = input();\n\n small = input(false, {\n transform: booleanAttribute,\n });\n\n clickable = input(true, {\n transform: booleanAttribute,\n });\n}\n","
\n
\n @if (!hideLabel()) {\n \n @if (hint()) {\n \n info\n \n }\n {{ label() }}\n @if (required() && !showMode()) {\n * \n }\n
\n }\n
\n \n
\n
\n\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'procure-show-field',\n templateUrl: './show-field.component.html',\n styleUrls: ['./show-field.component.scss'],\n standalone: true,\n imports: [MatIconModule, MatTooltipModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ShowFieldComponent {\n label = input('');\n hint = input('');\n\n invalid = input(false, {\n transform: booleanAttribute,\n });\n\n required = input(false, {\n transform: booleanAttribute,\n });\n\n showMode = input(true, {\n transform: booleanAttribute,\n });\n\n hideLabel = input(false, {\n transform: booleanAttribute,\n });\n\n statusColor = input(null);\n}\n","import {\n Component, Input, HostBinding, ChangeDetectionStrategy, ViewEncapsulation,\n} from '@angular/core';\nimport { EntityStatusModel } from '@abb-procure/data';\nimport { BadgeComponent } from '../badge/badge.component';\n\n@Component({\n selector: 'procure-status-badge',\n templateUrl: './status-badge.component.html',\n styleUrls: ['./status-badge.component.scss'],\n standalone: true,\n imports: [BadgeComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatusBadgeComponent {\n @HostBinding('class')\n @Input()\n protected hostClass: string = '';\n\n @Input() protected status?: EntityStatusModel | null;\n}\n","
\n
\n \n
\n","
\n @if (users()) {\n @for (user of users(); track trackByFn($index, user)) {\n @if (user) {\n \n {{ getDisplay(user) }}\n \n }\n }\n } @else {\n @for (tag of limitedTags(); track trackByFn($index, tag)) {\n \n {{ getDisplay(tag) }}\n \n }\n @if (ellipsis()) {\n … \n }\n }\n
\n","import { UserModel, UserSlimModel, UserStatusModel } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport {\n Component,\n booleanAttribute,\n computed,\n input,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { deepEqual } from 'fast-equals';\nimport { TagComponent } from '../tag/tag.component';\n\nexport type Displayable = {\n uuid: string;\n getDisplay(): string;\n};\n\n@Component({\n selector: 'procure-tag-list',\n templateUrl: './tag-list.component.html',\n styleUrls: ['./tag-list.component.scss'],\n standalone: true,\n imports: [TagComponent, MatTooltipModule],\n})\nexport class TagListComponent {\n clear = output();\n selectActive = output();\n\n tags = input<(Displayable | string)[] | null>(null);\n\n users = input<(UserModel | UserSlimModel | UserStatusModel | null)[] | null>(\n null,\n );\n\n maxVisible = input(0, {\n transform: numberAttribute,\n });\n\n clearable = input(false, {\n transform: booleanAttribute,\n });\n\n colored = input(false, {\n transform: booleanAttribute,\n });\n\n displayLabel = input();\n active = input<(Displayable | string) | null>(null);\n\n readonly limitedTags = computed(\n () => {\n const tags = this.tags();\n const maxVisible = this.maxVisible();\n\n if (!tags) {\n return [];\n }\n\n const limit = maxVisible > 0 ? maxVisible : tags.length;\n return tags.slice(0, limit);\n },\n { equal: deepEqual },\n );\n\n readonly ellipsis = computed(() => {\n const tags = this.tags();\n const maxVisible = this.maxVisible();\n\n if (!tags || !maxVisible) {\n return false;\n }\n\n return tags.length > maxVisible;\n });\n\n isString(value: unknown): value is string {\n return typeof value === 'string';\n }\n\n isActive(item: Displayable | string): boolean {\n const active = this.active();\n\n if (this.isString(item) || this.isString(active)) {\n return item === active;\n }\n\n return item?.uuid === active?.uuid;\n }\n\n trackByFn(_index: number, item: Displayable | string | null): string | null {\n if (item === null) {\n return null;\n }\n\n return typeof item === 'string' ? item : item.uuid;\n }\n\n protected getDisplay(item: Displayable | string): string {\n const displayLabel = this.displayLabel();\n\n if (this.isString(item)) {\n return item;\n }\n\n if (displayLabel) {\n return `${item[displayLabel as keyof typeof item]}`;\n }\n\n return item.getDisplay();\n }\n}\n","@if (!link()) {\n \n \n \n} @else {\n \n \n \n arrow_forward\n \n \n}\n\n\n @if (user(); as user) {\n \n }\n
\n \n
\n @if (clearable()) {\n \n clear\n \n }\n
\n","import { UserModel, UserSlim, UserStatusModel } from '@abb-procure/data';\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n output,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport { deepEqual } from 'fast-equals';\nimport { AvatarComponent } from '../avatar/avatar.component';\n\n@Component({\n selector: 'procure-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n standalone: true,\n imports: [\n MatIconModule,\n AvatarComponent,\n RouterLink,\n NgTemplateOutlet,\n MatTooltipModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TagComponent {\n clear = output();\n\n id = input(null);\n\n colored = input(false, {\n transform: booleanAttribute,\n });\n\n clearable = input(false, {\n transform: booleanAttribute,\n });\n\n selectable = input(false, {\n transform: booleanAttribute,\n });\n\n user = input();\n link = input();\n tooltip = input();\n\n active = input(false, {\n transform: booleanAttribute,\n });\n\n userStatus = computed(\n () =>\n this.user() instanceof UserStatusModel\n ? (this.user() as UserStatusModel)\n : null,\n\n { equal: (a, b) => a?.id === b?.id },\n );\n\n userStatusLink = computed(\n () => {\n const userStatus = this.userStatus();\n\n if (\n !this.clearable() ||\n !userStatus ||\n !userStatus.canView ||\n !userStatus.entityNumber\n ) {\n return null;\n }\n\n return ['/', userStatus.entityNumber, 'survey-evaluation'];\n },\n { equal: deepEqual },\n );\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\nimport { DEFAULT_LAYOUT_GAP } from '@abb-procure/constants';\n\n@Directive({\n selector: '[formRow]',\n standalone: true,\n})\nexport class FormRowDirective {\n @HostBinding('class.form-row') formRowClass: boolean = true;\n\n @Input() @HostBinding('class.form-row__border-bottom') borderBottom: boolean = false;\n\n @Input() @HostBinding('class.form-row--standalone') standalone: boolean = false;\n\n @Input() formChildGap: number = DEFAULT_LAYOUT_GAP;\n}\n","import { LoginUserService, UserState } from '@abb-procure/data';\nimport { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\nimport { of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { hasPermissions } from '../utilities/user-permissions.util';\n\nexport const accessGuard =\n (permissions: string | string[]): CanActivateFn =>\n () => {\n const loginUserService = inject(LoginUserService);\n const router = inject(Router);\n\n const user = inject(UserState).current();\n\n const user$ = user ? of(user) : loginUserService.getLoginUser$();\n\n return user$.pipe(\n switchMap((u) => {\n if (!u) {\n return of(false);\n }\n\n if (\n hasPermissions(\n u,\n typeof permissions === 'string' ? [permissions] : permissions,\n )\n ) {\n return of(true);\n }\n\n return of(router.createUrlTree(['/no-access'], {}));\n }),\n switchMap((result) =>\n typeof result === 'boolean'\n ? of(result)\n : of(false).pipe(\n tap(() => {\n router.navigateByUrl(result);\n }),\n ),\n ),\n );\n };\n","/**\n * A dictionary of permissions.\n */\nexport type UserPermissions = {\n [key in K]: boolean;\n};\n\n/**\n * Stub of a user object with permission information.\n */\nexport type UserWithPermissions = {\n readonly permissions: UserPermissions;\n};\n\nfunction checkPermissions(\n checks: string[],\n permissions: UserPermissions,\n): boolean {\n return checks.every((check) => !!permissions[check]);\n}\n\n/**\n * Checks whether the the given user has the required permissions.\n * If no user is given, checks are made against the currently active user of the application.\n */\nexport function hasPermissions(\n user: UserWithPermissions,\n permissions?: string[],\n): boolean {\n if (!permissions) {\n return true;\n }\n\n const userPermissions = user.permissions || {};\n\n return checkPermissions(permissions, userPermissions);\n}\n","import { PreferencesState } from '@abb-procure/data';\nimport { Pipe, PipeTransform, inject } from '@angular/core';\nimport { format } from 'date-fns';\n\nexport const formatDate = (\n date: Date | null,\n transform: string | null,\n dateFormat: string | null,\n): string | null => {\n if (!date || !transform) {\n return null;\n }\n\n switch (transform) {\n case 'short':\n if (dateFormat) {\n return format(date, `${dateFormat} HH:mm`);\n }\n\n return new Intl.DateTimeFormat(undefined, {\n hour: 'numeric',\n minute: 'numeric',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n }).format(date);\n case 'shortDate':\n if (dateFormat) {\n return format(date, dateFormat);\n }\n\n return new Intl.DateTimeFormat().format(date);\n default:\n return format(date, transform);\n }\n};\n\n@Pipe({\n name: 'date',\n standalone: true,\n})\nexport class DatePipe implements PipeTransform {\n private readonly dateFormat = inject(PreferencesState).dateFormat;\n\n transform(\n date: unknown,\n transform: string | null = 'shortDate',\n dateFormat = this.dateFormat(),\n ): string | null {\n if (!date) {\n return null;\n }\n\n try {\n return formatDate(\n typeof date === 'string' ? new Date(date) : (date as Date),\n transform,\n dateFormat,\n );\n } catch {\n return null;\n }\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport {\n PipeTransform, Pipe, inject, SecurityContext,\n} from '@angular/core';\n\n@Pipe({\n name: 'sanitize',\n standalone: true,\n})\nexport class SanitizePipe implements PipeTransform {\n private sanitized = inject(DomSanitizer);\n\n transform(value: string | null): string | null {\n if (!value) {\n return '';\n }\n\n return this.sanitized.sanitize(SecurityContext.HTML, value);\n }\n}\n","import {\n Route,\n UrlMatcher,\n UrlMatchResult,\n UrlSegment,\n UrlSegmentGroup,\n} from '@angular/router';\n\n/**\n * Matches an URL case insensitive and enforces the originally defined case.\n * @internal\n */\nfunction createMatcher(url: string): UrlMatcher {\n return (\n segments: UrlSegment[],\n _segmentGroup: UrlSegmentGroup,\n route: Route,\n ): UrlMatchResult | null => {\n const matchSegments = url.split('/');\n\n if (\n matchSegments.length > segments.length ||\n (matchSegments.length !== segments.length && route.pathMatch === 'full')\n ) {\n return null;\n }\n\n const consumed: UrlSegment[] = [];\n const posParams: Record = {};\n\n for (let index = 0; index < matchSegments.length; index += 1) {\n const matchSegment = matchSegments[index];\n\n if (matchSegment.startsWith(':')) {\n posParams[matchSegment.slice(1)] = segments[index];\n consumed.push(segments[index]);\n } else {\n const segment = segments[index];\n\n if (segment.path.toUpperCase() === matchSegment.toUpperCase()) {\n const sanitizedSegment = new UrlSegment(\n matchSegment,\n segment.parameters,\n );\n\n consumed.push(sanitizedSegment);\n } else {\n return null;\n }\n }\n }\n\n return { consumed, posParams };\n };\n}\n\n/**\n * Matches an URL case insensitive and enforces the originally defined case.\n */\nexport function caseInsensitiveMatcher(url: string): UrlMatcher {\n // Wrapper to enforce correct typing until underlying Angular type issues are solved.\n return createMatcher(url);\n}\n","import { SnackbarService } from '@abb-procure/snackbar';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ClipboardService {\n private readonly snackbarService = inject(SnackbarService);\n\n copy(value: string, copyAsUrl: boolean = false): void {\n navigator.clipboard.writeText(\n copyAsUrl\n ? new URL(`${window.location.origin}${value}`).toString()\n : value,\n );\n\n this.snackbarService.showSuccessSnackbar(\n {\n text: 'Copied to the clipboard.',\n },\n {\n duration: 3000,\n },\n );\n }\n}\n","export enum DialogType {\n INFO,\n ADDITIONAL_INFO,\n ERROR,\n PROMPT,\n}\n","
\n

{{ data.title }}

\n
\n\n @if (data.base) {\n
\n
\n Dear user

\n You are currently not authorized to interact with ABB Procure. Please contact in the subsequent order:

\n
    \n
  1. The Local Procurement Manager of your Division and / or
  2. \n
  3. Local key user for ABB Procure and / or
  4. \n
  5. ABB Procure Support: \n @if (lookupDataState.gisLink(); as gisLink) {\n \n {{ gisLink.name }}\n \n }\n
  6. \n
\n
\n
\n }\n @if (data.text) {\n
\n \n {{ data.text }}\n \n
\n }\n @if (data.info) {\n \n info\n\n {{ data.info }}\n \n }\n @if (data.type === dialogType.ADDITIONAL_INFO) {\n
\n @if (data.additionalInfo?.localDivisionAssignments; as info) {\n \n @for (unitInfo of data.additionalInfo?.localDivisionAssignments; track unitInfo?.unit?.id) {\n
\n \n {{ unitInfo?.unit?.name }} \n \n \n @if (unitInfo.managers?.length) {\n \n } @else {\n -\n }\n \n
\n }\n \n }\n @if (data.additionalInfo?.localDivisionManagerAssignments; as info) {\n \n @for (unitInfo of data.additionalInfo?.localDivisionManagerAssignments; track unitInfo?.unit?.id) {\n
\n \n {{ unitInfo?.unit?.name }} \n \n \n @if (unitInfo.managers?.length) {\n \n } @else {\n -\n }\n \n
\n }\n \n }\n @if (data.additionalInfo?.hubManagerAssignments; as info) {\n \n @for (unitInfo of data.additionalInfo?.hubManagerAssignments; track unitInfo?.unit?.id) {\n
\n \n {{ unitInfo?.unit?.name }} \n \n \n @if (unitInfo.managers?.length) {\n \n } @else {\n -\n }\n \n
\n }\n \n }\n @if (data.additionalInfo?.divisionManagerAssignments; as info) {\n \n @for (unitInfo of data.additionalInfo?.divisionManagerAssignments; track unitInfo?.unit?.id) {\n
\n \n {{ unitInfo?.unit?.name }} \n \n \n @if (unitInfo.managers?.length) {\n \n } @else {\n -\n }\n \n
\n }\n \n }\n
\n }\n
\n
\n @if (data.type === dialogType.PROMPT) {\n \n {{ data.secondaryAction || \"No\" }}\n \n }\n @if (data.type === dialogType.PROMPT) {\n \n {{ data.primaryAction || \"Yes\" }}\n \n }\n @if (data.type !== dialogType.PROMPT) {\n \n {{ data.primaryAction || \"OK\" }}\n \n }\n
\n","import { DialogType } from '@abb-procure/constants';\nimport { AdditionalInfoModel, LookupDataState } from '@abb-procure/data';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n ViewEncapsulation,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { Observable, of } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { FormRowDirective } from '../../directives/form-row.directive';\nimport { escapeDialog } from '../../utilities/dialog.util';\nimport { ButtonComponent } from '../button/button.component';\nimport { CardComponent } from '../card/card.component';\nimport { ExpansionPanelComponent } from '../expansion-panel/expansion-panel.component';\nimport { ShowFieldComponent } from '../show-field/show-field.component';\nimport { TagListComponent } from '../tag-list/tag-list.component';\nimport { TagComponent } from '../tag/tag.component';\n\nexport interface DialogData {\n readonly type: DialogType;\n readonly title: string;\n readonly text: string;\n readonly base?: boolean;\n readonly info?: string;\n readonly blackout?: boolean;\n readonly primaryAction?: string;\n readonly secondaryAction?: string;\n readonly additionalInfo?: AdditionalInfoModel | null;\n readonly closeCallback?: () => void;\n readonly confirmationCallback?: () => Observable;\n}\n\n@Component({\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n MatDialogModule,\n MatIconModule,\n ButtonComponent,\n CardComponent,\n ShowFieldComponent,\n ExpansionPanelComponent,\n TagComponent,\n TagListComponent,\n FormRowDirective,\n MatTooltipModule,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DialogComponent implements OnInit {\n readonly isConfirming = signal(false);\n readonly dialogType: typeof DialogType = DialogType;\n\n protected readonly data: DialogData = inject(MAT_DIALOG_DATA);\n protected readonly lookupDataState = inject(LookupDataState);\n\n private readonly dialogRef = inject(MatDialogRef);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n if (this.data.blackout) {\n this.dialogRef.disableClose = true;\n }\n }\n\n /** @inheritdoc */\n ngOnInit(): void {\n if (this.data.blackout) {\n return;\n }\n\n escapeDialog(this.dialogRef, this.destroyRef, () => {\n if (this.data.type !== DialogType.PROMPT) {\n this.data.closeCallback?.();\n }\n\n this.dialogRef.close(this.data.type !== DialogType.PROMPT);\n });\n }\n\n /**\n * Confirm prompt dialogs and execute the confirmation callback. After\n * execution, the dialog is closed.\n */\n confirm(): void {\n this.isConfirming.set(true);\n\n this.getConfirmCallback$()\n .pipe(take(1))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((successful?: boolean) => {\n this.isConfirming.set(false);\n this.dialogRef.close(successful !== false);\n });\n }\n\n close(): void {\n if (this.data.blackout) {\n return;\n }\n\n this.data.closeCallback?.();\n }\n\n private getConfirmCallback$(): Observable {\n if (this.data.confirmationCallback != null) {\n return this.data.confirmationCallback();\n }\n\n // Default callback\n return of(true);\n }\n}\n","import {\n DEFAULT_MIDDLE_DIALOG_WIDTH,\n DEFAULT_SMALL_DIALOG_WIDTH,\n DialogType,\n} from '@abb-procure/constants';\nimport { AdditionalInfoModel } from '@abb-procure/data';\nimport { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport {\n DialogComponent,\n DialogData,\n} from '../components/dialog/dialog.component';\n\ntype DialogOptions = {\n readonly title?: string;\n readonly text?: string;\n readonly info?: string;\n readonly base?: boolean;\n readonly primaryAction?: string;\n readonly blackout?: boolean;\n readonly additionalInfo?: AdditionalInfoModel | null;\n};\n\ntype OkDialogOptions = DialogOptions & {\n readonly closeCallback?: () => void;\n};\n\ntype ErrorDialogOptions = DialogOptions & {\n readonly closeCallback?: () => void;\n};\n\ntype ConfirmDialogOptions = DialogOptions & {\n readonly secondaryAction?: string;\n readonly confirmationCallback?: () => Observable;\n readonly cancellationCallback?: () => void;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n readonly defaultOkTitle: string = 'Success';\n readonly defaultOkText: string = 'The command was successfully executed';\n readonly defaultErrorTitle: string = 'Error';\n readonly defaultErrorText: string =\n 'An error has occurred while saving your data. Please try again. If the problem persists, please contact your administrator.';\n readonly defaultConfirmTitle: string = 'Please Confirm';\n readonly defaultConfirmText: string =\n 'Do you really want to cancel the current process? All unsaved data will be lost.';\n\n private readonly dialog = inject(MatDialog);\n private readonly componentRef = inject(DestroyRef);\n\n /**\n * Checks if there are any currently open dialogs.\n */\n hasOpenDialogs(): boolean {\n const { openDialogs } = this.dialog;\n\n return openDialogs != null && openDialogs.length > 0;\n }\n\n /**\n * Shows a basic informative dialog with an OK button.\n */\n showOkDialog(data?: OkDialogOptions): MatDialogRef {\n const dialogRef = this.dialog.open(\n DialogComponent,\n {\n closeOnNavigation: false,\n width: data?.additionalInfo\n ? DEFAULT_MIDDLE_DIALOG_WIDTH\n : DEFAULT_SMALL_DIALOG_WIDTH,\n panelClass: ['dialog', 'dialog--info'],\n data: {\n ...data,\n title: data?.title ?? this.defaultOkTitle,\n text: data?.text ?? this.defaultOkText,\n base: data?.base,\n type: data?.additionalInfo\n ? DialogType.ADDITIONAL_INFO\n : DialogType.INFO,\n additionalInfo: data?.additionalInfo,\n },\n backdropClass: data?.blackout ? 'cdk-overlay-backdrop--blackout' : '',\n },\n );\n\n return dialogRef;\n }\n\n /**\n * Shows a basic error dialog with an OK button.\n */\n showErrorDialog(data?: ErrorDialogOptions): MatDialogRef {\n const dialogRef = this.dialog.open(\n DialogComponent,\n {\n closeOnNavigation: false,\n width: DEFAULT_SMALL_DIALOG_WIDTH,\n panelClass: ['dialog', 'dialog--error'],\n data: {\n ...data,\n title: data?.title ?? this.defaultErrorTitle,\n text: data?.text ?? this.defaultErrorText,\n type: DialogType.ERROR,\n },\n backdropClass: data?.blackout ? 'cdk-overlay-backdrop--blackout' : '',\n },\n );\n\n return dialogRef;\n }\n\n /**\n * The confirmation callback will be executed once the dialog was confirmed.\n * If the confirmation callback completed, the dialog will be closed.\n */\n showConfirmDialog(\n data?: ConfirmDialogOptions,\n ): MatDialogRef {\n const dialogRef = this.dialog.open(\n DialogComponent,\n {\n closeOnNavigation: false,\n width: DEFAULT_SMALL_DIALOG_WIDTH,\n panelClass: ['dialog', 'dialog--prompt'],\n data: {\n ...data,\n title: data?.title ?? this.defaultConfirmTitle,\n text: data?.text ?? this.defaultConfirmText,\n type: DialogType.PROMPT,\n },\n backdropClass: data?.blackout ? 'cdk-overlay-backdrop--blackout' : '',\n },\n );\n\n dialogRef\n .afterClosed()\n .pipe(takeUntilDestroyed(this.componentRef))\n .subscribe((result: boolean) => {\n // Result will be false, if confirmation was unsuccessful, or dialog was cancelled.\n if (!result && data?.cancellationCallback) {\n data.cancellationCallback();\n }\n });\n\n return dialogRef;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FingerprintService {\n get fingerprint(): string {\n return this._fingerprint;\n }\n\n private _fingerprint: string;\n\n constructor() {\n let fingerprint = localStorage.getItem('fingerprint');\n\n if (!fingerprint) {\n const id = `${Number(new Date())}-${uuid()}`;\n\n localStorage.setItem('fingerprint', id);\n fingerprint = id;\n }\n\n this._fingerprint = fingerprint;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InboxService implements OnDestroy {\n refresh$;\n clear$;\n\n private refreshSignal$ = new Subject();\n private clearSignal$ = new Subject();\n\n constructor() {\n this.refresh$ = this.refreshSignal$.asObservable();\n this.clear$ = this.clearSignal$.asObservable();\n }\n\n ngOnDestroy(): void {\n this.refreshSignal$.complete();\n }\n\n refresh(): void {\n this.refreshSignal$.next();\n }\n\n clear(): void {\n this.clearSignal$.next();\n }\n}\n","import {\n Injectable, computed, effect, inject, signal,\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { UNREAD_NOTIFICATIONS_LIMIT } from '@abb-procure/constants';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TitleService {\n private view = signal(null);\n private unread = signal(null);\n\n private title = computed(() => {\n const view = this.view();\n const unread = this.unread();\n\n if (!view) {\n return 'ABB Procure';\n }\n\n if (!unread) {\n return `${view} - ABB Procure`;\n }\n\n const unreadLabel = unread > UNREAD_NOTIFICATIONS_LIMIT ? `${UNREAD_NOTIFICATIONS_LIMIT}+` : unread;\n\n return `(${unreadLabel}) ${view} - ABB Procure`;\n });\n\n private readonly titleHelper = inject(Title);\n\n constructor() {\n effect(() => {\n this.titleHelper.setTitle(this.title());\n });\n }\n\n setTitle(viewTitle: string | null): void {\n this.view.set(viewTitle);\n }\n\n setUnread(value: number | null): void {\n this.unread.set(value);\n }\n}\n","import { WINDOW } from '@abb-procure/constants';\nimport { Injectable, Signal, inject, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewNavigationService {\n get activeView(): Signal {\n return this.state.asReadonly();\n }\n\n private state = signal('');\n private scrollPositions: Record = {};\n private readonly window: Window = inject(WINDOW);\n\n setActiveView(view: string): void {\n this.state.set(view);\n this.window.scrollTo(0, this.scrollPositions[view] || 0);\n }\n}\n","import { DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable } from 'rxjs';\n\ntype DialogRef = {\n keydownEvents: () => Observable;\n backdropClick: () => Observable;\n};\n\nexport const escapeDialog = (\n ref: DialogRef,\n componentRef: DestroyRef,\n onCancel: () => void,\n): void => {\n ref\n .keydownEvents()\n .pipe(takeUntilDestroyed(componentRef))\n .subscribe((event) => {\n if (event.key === 'Escape') {\n onCancel();\n }\n });\n\n ref\n .backdropClick()\n .pipe(takeUntilDestroyed(componentRef))\n .subscribe(() => {\n onCancel();\n });\n};\n","import { EntityIdAliasPrefixes } from '@abb-procure/constants';\n\nconst entityNames = new Map([\n [EntityIdAliasPrefixes.PriceEntry, 'Price Entry'],\n [EntityIdAliasPrefixes.Project, 'Project'],\n [EntityIdAliasPrefixes.ProjectExpediting, 'Project Expediting'],\n [EntityIdAliasPrefixes.PurchaseRequisition, 'Purchase Requisition'],\n [EntityIdAliasPrefixes.Rfq, 'RFQ'],\n [EntityIdAliasPrefixes.RfRFQ, 'RfRFQ'],\n [EntityIdAliasPrefixes.Supplier, 'Supplier'],\n [EntityIdAliasPrefixes.Quotation, 'Quotation'],\n [EntityIdAliasPrefixes.TemplateRfrfq, 'Template RfRFQ'],\n]);\n\nexport class EntityUtility {\n static getEntityName(\n entity: EntityIdAliasPrefixes,\n plural: boolean = false,\n ): string | null {\n return `${entityNames.get(entity)}${plural ? 's' : ''}` || null;\n }\n\n /**\n * Get the type of an entity based on its entity number.\n */\n static getType(\n entityNumber: string,\n seperator: string = '-',\n ): EntityIdAliasPrefixes | null {\n const splits: string[] = entityNumber.split(seperator);\n\n if (!splits.length) {\n return null;\n }\n\n if (\n Object.values(EntityIdAliasPrefixes).includes(\n splits[0].toUpperCase() as EntityIdAliasPrefixes,\n )\n ) {\n return splits[0].toUpperCase() as EntityIdAliasPrefixes;\n }\n\n return null;\n }\n\n /**\n * Get the actual number of an entity based on its entity number.\n */\n static getNumber(entityNumber: string): number | null {\n const splits: string[] = entityNumber.split('-');\n\n if (\n !splits.length ||\n Number.isNaN(Number(splits[1])) ||\n !Number.isInteger(Number(splits[1]))\n ) {\n return null;\n }\n\n return Number(splits[1]);\n }\n}\n","import { FormControl, FormGroup } from '@angular/forms';\n\nconst group = new FormGroup({\n selected: new FormControl(true),\n isEnabled: new FormControl(true),\n control: new FormControl(null),\n});\n\nexport const isRequired = (control: FormControl): boolean => {\n if (!control?.validator) {\n return false;\n }\n\n const validator = control.validator(group.controls.control);\n\n return validator?.required || validator?.requiredIfEnabled || validator?.requiredIfSelected;\n};\n","export const remCoefficient =\n parseFloat(getComputedStyle(document.documentElement).fontSize) ?? 16;\n\nexport const pxToRem = (value: number): number => value / remCoefficient;\n","import { ConnectedPosition } from '@angular/cdk/overlay';\n\nexport const DEFAULT_RETURN_URL = '/';\nexport const DEBOUNCE_INPUT_CHANGE_TIME_SMALL: number = 200;\nexport const DEBOUNCE_INPUT_CHANGE_TIME_BASE: number = 400;\n\nexport const DECIMAL_PATTERN: string = '^-?\\\\d+\\\\.?\\\\d*$';\n\nexport const MAX_LOGIN_ATTEMPTS = 3;\n\nexport const DEFAULT_DATE = new Date(1901, 0, 1, 0, 0, 0);\n\nexport const MIN_QUERY_CHARACTERS = 3;\n\nexport const MAX_RANGE_VALUE = 100000;\n\nexport const EMPTY_GUID = '00000000-0000-0000-0000-000000000000';\n\nexport const DEFAULT_TRUNCATED_STRING_LENGTH = 140;\n\nexport const DEFAULT_SMALL_DIALOG_WIDTH = '450px';\nexport const DEFAULT_DIALOG_WIDTH = '500px';\nexport const DEFAULT_MIDDLE_DIALOG_WIDTH = '1000px';\nexport const DEFAULT_BIG_DIALOG_WIDTH = '1500px';\n\nexport const MAX_INT = 2000000000;\n\nexport const DEFAULT_LAYOUT_GAP = 10;\n\nexport const UNREAD_NOTIFICATIONS_LIMIT = 99;\n\nexport const FILE_EXTENSION_BLACKLIST = [\n 'com',\n 'exe',\n 'dll',\n 'ocx',\n 'js',\n 'jse',\n 'vbs',\n 'vb',\n 'vbe',\n 'cmd',\n 'bat',\n 'hta',\n 'inf',\n 'reg',\n 'pif',\n 'scr',\n 'cpl',\n 'scf',\n 'msc',\n 'pol',\n 'hip',\n 'chm',\n 'ws',\n 'wsf',\n 'wsc',\n 'wsh',\n 'jar',\n 'rar',\n 'bz2',\n 'cab',\n 'gz',\n 'tar',\n 'ace',\n 'ppkg',\n 'application',\n 'xlsb',\n 'xlam',\n 'xll',\n 'xlw',\n 'z',\n];\n\nexport const MAX_FILE_SIZE = 2147483648;\nexport const MAX_FILES_PER_FIELD = 20;\n\nexport const OVERLAY_POSITIONS: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n];\n\nexport const SPECIAL_PAYMENT_TERMS_ID = 13;\n","export enum QuotationSourcingScopeColumns {\n Entity = 'Entity',\n TotalQuotationPrice = 'Total Quotation Price',\n TotalQuotationPriceUsd = 'Total Quotation Price (USD)',\n OfferedLeadTime = 'Offered Lead Time',\n IncotermsType = 'Incoterms Type',\n IncotermComment = 'Incoterm Comment',\n ValidUntil = 'Valid Until',\n Warranty = 'Warranty',\n PaymentTerms = 'Payment Terms',\n CommercialCompliance = 'Commercial Compliance',\n TechnicalCompliance = 'Technical Compliance',\n LogisticalCompliance = 'Logistical Compliance',\n Status = 'Status',\n}\n\nexport const DEFAULT_QUOTATION_SOURCING_SCOPE_COLUMNS: (keyof typeof QuotationSourcingScopeColumns)[] =\n [\n 'Entity',\n 'TotalQuotationPrice',\n 'OfferedLeadTime',\n 'IncotermsType',\n 'Status',\n ];\n\nexport enum ContactsColumns {\n Primary = 'Primary',\n FirstName = 'First Name',\n LastName = 'Last Name',\n Email = 'Email',\n Function = 'Function',\n Telephone = 'Telephone',\n Mobile = 'Mobile',\n Emails = 'Emails',\n Rfqs = 'RFQs',\n ResponseTime = 'Response Time',\n LastResponse = 'Last Activity',\n Note = 'Note',\n IsArchived = 'Is Archived',\n}\n\nexport const DEFAULT_CONTACTS_COLUMNS: (keyof typeof ContactsColumns)[] = [\n 'Primary',\n 'FirstName',\n 'LastName',\n 'Email',\n 'Rfqs',\n];\n\nexport enum IncidentsColumns {\n Url = 'Url',\n Name = 'Name',\n MdfCode = 'MDF Code',\n Status = 'Status',\n Impact = 'Impact',\n Created = 'Created',\n Resolved = 'Resolved',\n}\n\nexport const DEFAULT_INCIDENTS_COLUMNS: (keyof typeof IncidentsColumns)[] = [\n 'Url',\n 'Name',\n 'MdfCode',\n 'Status',\n 'Impact',\n 'Created',\n 'Resolved',\n];\n\nexport enum SupplierManagementColumns {\n SmVendorId = 'SM Vendor ID',\n ErpVendorId = 'ERP Vendor ID',\n Guid = 'GUID',\n Company = 'Company',\n Country = 'Country',\n City = 'City',\n Contacts = 'Contacts',\n LocalDivisionAssignments = 'Local Division Assignments',\n Qualification = 'Qualification',\n Registration = 'Registration',\n Active = 'Is Active',\n Internal = 'Is Internal',\n}\n\nexport const DEFAULT_SUPPLIER_MANAGEMENT_COLUMNS: (keyof typeof SupplierManagementColumns)[] =\n [\n 'SmVendorId',\n 'ErpVendorId',\n 'Guid',\n 'Company',\n 'Country',\n 'City',\n 'Contacts',\n 'LocalDivisionAssignments',\n 'Qualification',\n 'Registration',\n ];\n\nexport enum CategoryManagementColumns {\n Name = 'Name',\n ResponsibleUsers = 'Responsible Users',\n Countries = 'Countries',\n ProductGroups = 'Product Groups',\n MdfCodes = 'MDF Codes',\n Organisations = 'Organisations',\n Validity = 'Validity',\n Status = 'Status',\n ParentCategory = 'Parent Category',\n ParentCreator = 'Parent Creator',\n ParentStatus = 'Parent Status',\n}\n\nexport const DEFAULT_CATEGORY_MANAGEMENT_COLUMNS: (keyof typeof CategoryManagementColumns)[] =\n [\n 'Name',\n 'ResponsibleUsers',\n 'Countries',\n 'ProductGroups',\n 'MdfCodes',\n 'Organisations',\n 'Validity',\n 'Status',\n 'ParentCategory',\n ];\n\nexport enum TemplateManagementColumns {\n Name = 'Name',\n Category = 'Category',\n Owner = 'Owner',\n Countries = 'Countries',\n ProductGroups = 'Product Groups',\n MdfCodes = 'MDF Codes',\n Organisations = 'Organisations',\n Keywords = 'Keywords',\n Status = 'Status',\n}\n\nexport const DEFAULT_TEMPLATE_MANAGEMENT_COLUMNS: (keyof typeof TemplateManagementColumns)[] =\n [\n 'Name',\n 'Category',\n 'Owner',\n 'Countries',\n 'ProductGroups',\n 'MdfCodes',\n 'Organisations',\n 'Keywords',\n 'Status',\n ];\n\nexport enum SupplierStrategyTaskColumns {\n Strategy = 'Strategy',\n StrategyStatus = 'Strategy Status',\n StrategyDimension = 'Strategy Dimension',\n Task = 'Task',\n TaskResponsible = 'Task Responsible',\n TaskDueDate = 'Task Due Date',\n TaskStatus = 'Task Status',\n}\n\nexport const DEFAULT_SUPPLIER_STRATEGY_COLUMNS: (keyof typeof SupplierStrategyTaskColumns)[] =\n [\n 'Strategy',\n 'StrategyStatus',\n 'StrategyDimension',\n 'Task',\n 'TaskResponsible',\n 'TaskDueDate',\n 'TaskStatus',\n ];\n\nexport const SupplierStrategySourcingEventsColumns = {\n RfqNumber: 'RFQ Number',\n RfqStatus: 'RFQ Status',\n DueDate: 'Due Date',\n Purchaser: 'Purchaser',\n Created: 'Created',\n RfrfqNumber: 'RFRFQ Number',\n RfrfqStatus: 'RFRFQ Status',\n RfrfqName: 'RFRFQ Name',\n ProjectStatus: 'Project Status',\n ProjectNumber: 'Project Number',\n LocalDivision: 'Local Division',\n QuotationNumber: 'Quotation Number',\n QuotationStatus: 'Quotation Status',\n QuotationValidUntil: 'Quotation Valid Until',\n TotalQuotationPrice: 'Total Quotation Price',\n RfrfqRanking: 'RFRFQ Ranking',\n};\n\nexport const DEFAULT_SUPPLIER_STRATEGY_SOURCING_EVENTS_COLUMNS: (keyof typeof SupplierStrategySourcingEventsColumns)[] =\n [\n 'RfqNumber',\n 'RfqStatus',\n 'DueDate',\n 'Purchaser',\n 'Created',\n 'RfrfqNumber',\n 'RfrfqStatus',\n 'RfrfqName',\n 'ProjectStatus',\n 'ProjectNumber',\n 'LocalDivision',\n 'QuotationNumber',\n 'QuotationStatus',\n 'QuotationValidUntil',\n 'TotalQuotationPrice',\n 'RfrfqRanking',\n ];\n\nexport enum CategoryMonitoringColumns {\n Entity = 'Entity',\n Template = 'Template',\n Status = 'Status',\n Organisation = 'Organisation',\n Purchaser = 'Purchaser',\n DueDate = 'Due Date',\n DeliveryDate = 'Delivery Date',\n OfferValidityDate = 'Offer Validity Date',\n MdfCode = 'MDF Code',\n SourcingEventBudget = 'Sourcing Event Budget',\n TargetPrice = 'Target Price',\n LeadingQuotationBudget = 'Leading Quotation Budget',\n CompetitiveBiddingStatus = 'Competitive Bidding Status',\n}\n\nexport const DEFAULT_CATEGORY_MONITORING_COLUMNS: (keyof typeof CategoryMonitoringColumns)[] =\n [\n 'Entity',\n 'Template',\n 'Status',\n 'Organisation',\n 'Purchaser',\n 'DueDate',\n 'DeliveryDate',\n 'OfferValidityDate',\n 'MdfCode',\n 'SourcingEventBudget',\n 'TargetPrice',\n 'LeadingQuotationBudget',\n 'CompetitiveBiddingStatus',\n ];\n\nexport enum LegalContractsColumns {\n Title = 'Title',\n Regions = 'Regions',\n Commodities = 'Commodities',\n Owner = 'Owner',\n Effective = 'Effective',\n Amount = 'Amount',\n Status = 'Status',\n}\n\nexport const DEFAULT_LEGAL_CONTRACTS_COLUMNS: (keyof typeof LegalContractsColumns)[] =\n ['Title', 'Regions', 'Commodities', 'Owner', 'Effective', 'Amount', 'Status'];\n\nexport enum StrategyManagementColumns {\n Name = 'Name',\n Organisations = 'Organisations',\n Leaders = 'Leaders',\n Regions = 'Regions',\n MdfCodes = 'MDF Codes',\n Actions = 'Open Actions',\n ExpirationDate = 'Expiration Date',\n Status = 'Status',\n}\n\nexport const DEFAULT_STRATEGY_MANAGEMENT_COLUMNS: (keyof typeof StrategyManagementColumns)[] =\n [\n 'Name',\n 'Organisations',\n 'Leaders',\n 'Regions',\n 'MdfCodes',\n 'ExpirationDate',\n 'Status',\n ];\n\nexport enum QuotationsByStatusColumns {\n Project = 'Project',\n Rfrfq = 'RFRFQ',\n Rfq = 'RFQ',\n Quotation = 'Quotation',\n Status = 'Status',\n MdfCode = 'MDF Code',\n Country = 'Country',\n Purchaser = 'Purchaser',\n}\n\nexport const DEFAULT_QUOTATIONS_BY_STATUS_COLUMNS: (keyof typeof QuotationsByStatusColumns)[] =\n ['Quotation', 'Status', 'MdfCode', 'Purchaser'];\n\nexport enum ResourceIncotermsColumns {\n Name = 'Name',\n Code = 'Code',\n}\n\nexport const DEFAULT_RESOURCE_INCOTERMS_COLUMNS: (keyof typeof ResourceIncotermsColumns)[] =\n ['Name', 'Code'];\n\nexport enum ResourceTermsAndConditionsColumns {\n Name = 'Name',\n Url = 'Url',\n IsAvailable = 'Available',\n Actions = 'Actions',\n}\n\nexport const DEFAULT_RESOURCE_TERMS_AND_CONDITIONS_COLUMNS: (keyof typeof ResourceTermsAndConditionsColumns)[] =\n ['Name', 'Url', 'IsAvailable', 'Actions'];\n\nexport enum SpecialClauseColumns {\n Name = 'Name',\n IsEnabled = 'Enabled',\n Actions = 'Actions',\n}\n\nexport const DEFAULT_SPECIAL_CLAUSE_COLUMNS: (keyof typeof SpecialClauseColumns)[] =\n ['Name', 'IsEnabled', 'Actions'];\n\nexport enum LocalDivisionUsersColumns {\n Selected = 'Selected',\n Name = 'Name',\n Email = 'Email',\n Department = 'Department',\n Telephone = 'Telephone',\n Mobile = 'Mobile',\n Role = 'Role',\n Active = 'Active',\n Tsp = 'TSP Access',\n Status = 'Access Status',\n ReviewStatus = 'Review Status',\n Reviewer = 'Reviewer',\n ReviewDate = 'Review Date',\n NextReview = 'Next Review',\n Actions = 'Actions',\n}\n\nexport const DEFAULT_LOCAL_DIVISION_USERS_COLUMNS: (keyof typeof LocalDivisionUsersColumns)[] =\n [\n 'Selected',\n 'Name',\n 'Email',\n 'Role',\n 'Active',\n 'Tsp',\n 'Status',\n 'ReviewStatus',\n 'ReviewDate',\n 'Actions',\n ];\n\nexport enum ResourcePaymentTermsColumns {\n Name = 'Name',\n}\n\nexport const DEFAULT_RESOURCE_PAYMENT_TERMS_COLUMNS: (keyof typeof ResourcePaymentTermsColumns)[] =\n ['Name'];\n\nexport enum ResourceCurrenciesColumns {\n Name = 'Name',\n Code = 'Code',\n Status = 'Status',\n}\n\nexport const DEFAULT_RESOURCE_CURRENCIES_COLUMNS: (keyof typeof ResourceCurrenciesColumns)[] =\n ['Name', 'Code', 'Status'];\n\nexport enum ResourceVariablesColumns {\n Code = 'Code',\n Name = 'Name',\n Value = 'Value',\n}\n\nexport const DEFAULT_RESOURCE_VARIABLES_COLUMNS: (keyof typeof ResourceVariablesColumns)[] =\n ['Code', 'Name', 'Value'];\n\nexport enum ResourceExchangeRatesColumns {\n Name = 'Name',\n Code = 'Code',\n Unit = 'Unit',\n ClosingRate = 'Closing Rate',\n}\n\nexport const DEFAULT_RESOURCE_EXCHANGE_RATES_COLUMNS: (keyof typeof ResourceExchangeRatesColumns)[] =\n ['Name', 'Code', 'Unit', 'ClosingRate'];\n\nexport enum OrganisationManagersColumns {\n Selected = 'Selected',\n Name = 'Name',\n Status = 'Status',\n ReviewStatus = 'Review Status',\n Reviewer = 'Reviewer',\n ReviewDate = 'Review Date',\n NextReview = 'Next Review',\n Actions = 'Actions',\n}\n\nexport const DEFAULT_ORGANISATION_MANAGERS_COLUMNS: (keyof typeof OrganisationManagersColumns)[] =\n ['Selected', 'Name', 'Status', 'ReviewStatus', 'ReviewDate', 'Actions'];\n\nexport enum ResourceMdfCodesColumns {\n Code = 'Code',\n Name = 'Name',\n}\n\nexport const DEFAULT_RESOURCE_MDF_CODES_COLUMNS: (keyof typeof ResourceMdfCodesColumns)[] =\n ['Code', 'Name'];\n\nexport enum UsersColumns {\n Name = 'Name',\n Email = 'Email',\n LocalDivision = 'Local Division',\n Active = 'Active',\n Actions = 'Actions',\n}\n\nexport const DEFAULT_USERS_COLUMNS: (keyof typeof UsersColumns)[] = [\n 'Name',\n 'Email',\n 'LocalDivision',\n 'Active',\n 'Actions',\n];\n\nexport enum ResourceLinksColumns {\n Icon = 'Icon',\n Name = 'Name',\n Description = 'Description',\n Url = 'URL',\n}\n\nexport const DEFAULT_RESOURCE_LINKS_COLUMNS: (keyof typeof ResourceLinksColumns)[] =\n ['Icon', 'Name', 'Description', 'Url'];\n\nexport enum ResourceDocumentsColumns {\n Icon = 'Icon',\n Name = 'Name',\n Description = 'Description',\n Document = 'Document',\n}\n\nexport const DEFAULT_RESOURCE_DOCUMENTS_COLUMNS: (keyof typeof ResourceDocumentsColumns)[] =\n ['Icon', 'Name', 'Description', 'Document'];\n\nexport enum HeatmapColumns {\n Actions = 'Actions',\n Name = 'Supplier Name',\n City = 'City',\n GUID = 'GUID',\n Score = 'Score',\n ResponseTime = 'Response Time',\n}\n\nexport const DEFAULT_HEATMAP_COLUMNS: (keyof typeof HeatmapColumns)[] = [\n 'Actions',\n 'Name',\n 'Score',\n 'ResponseTime',\n];\n\nexport enum QuotationRevisionTrackerInformationFields {\n Currency = 'Currency',\n TotalQuotationPrice = 'Total Quotation Price',\n TotalQuotationPriceUsd = 'Total Quotation Price (USD)',\n OfferedLeadTime = 'Offered Lead Time',\n IncotermsType = 'Incoterms Type',\n IncotermComment = 'Incoterm Comment',\n ValidUntil = 'Valid Until',\n Warranty = 'Warranty',\n PaymentTerms = 'Payment Terms',\n TechnicalCompliance = 'Technical Compliance',\n CommercialCompliance = 'Commercial Compliance',\n LogisticalCompliance = 'Logistical Compliance',\n Status = 'Status',\n}\n\nexport const DEFAULT_QUOTATION_REVISION_TRACKER_INFORMATION_COLUMNS: (keyof typeof QuotationRevisionTrackerInformationFields)[] =\n [\n 'Currency',\n 'TotalQuotationPrice',\n 'TotalQuotationPriceUsd',\n 'OfferedLeadTime',\n 'IncotermsType',\n 'IncotermComment',\n 'ValidUntil',\n 'Warranty',\n 'PaymentTerms',\n 'TechnicalCompliance',\n 'CommercialCompliance',\n 'LogisticalCompliance',\n 'Status',\n ];\n\nexport enum QuotationRevisionTrackerTechnicalRequirementsFields {\n TechnicalRequirementsCompliance = 'Technical Requirements Compliance',\n TechnicalSpecificationsOverall = 'Technical Specifications Overall',\n ScopeOfSupplyOverall = 'Scope Of Supply Overall',\n ScopeOfSupplyHardware = 'Scope Of Supply Hardware',\n ScopeOfSupplyServices = 'Scope Of Supply Services',\n AcceptanceCriteria = 'Acceptance Criteria',\n QualityControl = 'Quality Control',\n TechnicalDocumentation = 'Technical Documentation',\n SpecialTools = 'Special Tools',\n Hse = 'HSE',\n Communication = 'Communication',\n TechnicalRequirementSubmittals = 'Technical Requirement Submittals',\n}\n\nexport const DEFAULT_QUOTATION_REVISION_TRACKER_TECHNICAL_REQUIREMENTS_COLUMNS: (keyof typeof QuotationRevisionTrackerTechnicalRequirementsFields)[] =\n [\n 'TechnicalRequirementsCompliance',\n 'TechnicalSpecificationsOverall',\n 'ScopeOfSupplyOverall',\n 'ScopeOfSupplyHardware',\n 'ScopeOfSupplyServices',\n 'AcceptanceCriteria',\n 'QualityControl',\n 'TechnicalDocumentation',\n 'SpecialTools',\n 'Hse',\n 'Communication',\n 'TechnicalRequirementSubmittals',\n ];\n\nexport enum QuotationRevisionTrackerCommercialRequirementsFields {\n CommercialRequirementsCompliance = 'CommercialRequirementsCompliance',\n CommercialRequirementsOverall = 'CommercialRequirementsOverall',\n NonDisclosureAgreement = 'Non-Disclosure Agreement',\n CommunicationModel = 'Communication Model',\n BiddingRulesForEngagedVendorsAndQAProcedure = 'Bidding Rules For Engaged Vendors And QA Procedure',\n Currency = 'Currency',\n PaymentSchedule = 'Payment Schedule',\n PaymentTerms = 'Payment Terms',\n SpecialPaymentTerms = 'Special Payment Terms',\n Warranty = 'Warranty',\n PlaceOfRepair = 'Place Of Repair',\n LiquidatedDamages = 'Liquidated Damages',\n CommercialRequirements = 'Commercial Requirements',\n GeneralTermsAndConditions = 'General Terms And Conditions',\n TermsAndConditions = 'Terms And Conditions',\n SpecificTermsAndConditionsRequirementSubmittals = 'Specific Terms And Conditions Requirement Submittals',\n CommercialRequirementSubmittals = 'Commercial Requirements Submittals',\n}\n\nexport const DEFAULT_QUOTATION_REVISION_TRACKER_COMMERCIAL_REQUIREMENTS_COLUMNS: (keyof typeof QuotationRevisionTrackerCommercialRequirementsFields)[] =\n [\n 'CommercialRequirementsCompliance',\n 'CommercialRequirementsOverall',\n 'NonDisclosureAgreement',\n 'CommunicationModel',\n 'BiddingRulesForEngagedVendorsAndQAProcedure',\n 'Currency',\n 'PaymentSchedule',\n 'PaymentTerms',\n 'SpecialPaymentTerms',\n 'Warranty',\n 'PlaceOfRepair',\n 'LiquidatedDamages',\n 'CommercialRequirements',\n 'GeneralTermsAndConditions',\n 'TermsAndConditions',\n 'SpecificTermsAndConditionsRequirementSubmittals',\n 'CommercialRequirementSubmittals',\n ];\n\nexport enum QuotationRevisionTrackerLogisticalRequirementsFields {\n LogisticalRequirementsCompliance = 'Logistical Requirements Compliance',\n LogisticalRequirementsOverall = 'Logistical Requirements Overall',\n IncotermsType = 'Incoterms Type',\n IncotermsComments = 'Incoterms Comments',\n PackagingAndMarking = 'Packaging And Marking',\n TradeAndMaterialCompliance = 'Trade And Material Compliance',\n LogisticsRequirements = 'Logistics Requirements',\n LogisticalRequirementSubmittals = 'Logistical Requirement Submittals',\n}\n\nexport const DEFAULT_QUOTATION_REVISION_TRACKER_LOGISTICAL_REQUIREMENTS_COLUMNS: (keyof typeof QuotationRevisionTrackerLogisticalRequirementsFields)[] =\n [\n 'LogisticalRequirementsCompliance',\n 'LogisticalRequirementsOverall',\n 'IncotermsType',\n 'IncotermsComments',\n 'PackagingAndMarking',\n 'TradeAndMaterialCompliance',\n 'LogisticsRequirements',\n 'LogisticalRequirementSubmittals',\n ];\n\nexport enum QuotationRevisionTrackerTCOFields {\n Todo = 'Todo',\n}\n\nexport const DEFAULT_QUOTATION_REVISION_TRACKER_TCO_COLUMNS: (keyof typeof QuotationRevisionTrackerTCOFields)[] =\n ['Todo'];\n\nexport enum SPESupplierSelectionColumns {\n SupplierName = 'SupplierName',\n MdfCodes = 'MDF Codes',\n GUID = 'GUID',\n SMVendorID = 'SM Vendor ID',\n FirstLeadBuyer = 'First Lead Buyer',\n SupplierStrategy = 'Supplier Strategy',\n Country = 'Country',\n City = 'City',\n Type = 'Type',\n Groups = 'Groups',\n Template = 'Template',\n Actions = 'Actions',\n}\n\nexport const SPE_SUPPLIER_SELECTION_COLUMNS: (keyof typeof SPESupplierSelectionColumns)[] =\n [\n 'SupplierName',\n 'MdfCodes',\n 'GUID',\n 'SMVendorID',\n 'FirstLeadBuyer',\n 'SupplierStrategy',\n 'Country',\n 'City',\n 'Type',\n 'Groups',\n 'Template',\n 'Actions',\n ];\n\nexport enum SPEEvaluatorsSelectionColumns {\n Name = 'Name',\n Dimension = 'Dimension',\n Email = 'Email',\n Actions = 'Actions',\n}\n\nexport const SPE_EVALUATORS_SELECTION_COLUMNS: (keyof typeof SPEEvaluatorsSelectionColumns)[] =\n ['Name', 'Dimension', 'Email', 'Actions'];\n\nexport enum SupplierPerformanceEvaluationsColumns {\n EntityNumber = 'Entity Number',\n SurveyName = 'Survey Name',\n Owners = 'Owners',\n EvaluationPeriod = 'Evaluation Period',\n SuppliersCount = 'Suppliers Count',\n MdfCodes = 'MDF Codes',\n Status = 'Status',\n RemainingDays = 'Remaining Days',\n GeneralSubmissionProgress = 'General Submission Progress',\n LocalDivision = 'Local Division',\n Hub = 'Hub',\n}\n\nexport const DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_COLUMNS: (keyof typeof SupplierPerformanceEvaluationsColumns)[] =\n [\n 'EntityNumber',\n 'SurveyName',\n 'Owners',\n 'EvaluationPeriod',\n 'SuppliersCount',\n 'MdfCodes',\n 'Status',\n 'RemainingDays',\n 'GeneralSubmissionProgress',\n ];\n\nexport enum SupplierPerformanceEvaluationsHubColumns {\n EntityNumber = 'Entity Number',\n SurveyName = 'Survey Name',\n Owners = 'Owners',\n EvaluationPeriod = 'Evaluation Period',\n SuppliersCount = 'Suppliers Count',\n MdfCodes = 'MDF Codes',\n Status = 'Status',\n RemainingDays = 'Remaining Days',\n GeneralSubmissionProgress = 'General Submission Progress',\n LocalDivision = 'Local Division',\n}\n\nexport const DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_HUB_COLUMNS: (keyof typeof SupplierPerformanceEvaluationsHubColumns)[] =\n [\n 'EntityNumber',\n 'SurveyName',\n 'Owners',\n 'EvaluationPeriod',\n 'SuppliersCount',\n 'MdfCodes',\n 'Status',\n 'RemainingDays',\n 'GeneralSubmissionProgress',\n ];\n\nexport enum SupplierPerformanceEvaluationsLocalDivisionColumns {\n EntityNumber = 'Entity Number',\n SurveyName = 'Survey Name',\n Owners = 'Owners',\n EvaluationPeriod = 'Evaluation Period',\n SuppliersCount = 'Suppliers Count',\n MdfCodes = 'MDF Codes',\n Status = 'Status',\n RemainingDays = 'Remaining Days',\n GeneralSubmissionProgress = 'General Submission Progress',\n}\n\nexport const DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_LOCAL_DIVISION_COLUMNS: (keyof typeof SupplierPerformanceEvaluationsLocalDivisionColumns)[] =\n [\n 'EntityNumber',\n 'SurveyName',\n 'Owners',\n 'EvaluationPeriod',\n 'SuppliersCount',\n 'MdfCodes',\n 'Status',\n 'RemainingDays',\n 'GeneralSubmissionProgress',\n ];\n\nexport enum SupplierSupplyBaseManagementSupplierEvaluationColumns {\n Title = 'Title',\n TemplateName = 'Template',\n EvaluationPeriod = 'Evaluation Period',\n Organisation = 'Organisation',\n SPEOwners = 'SPE Owners',\n MdfCodes = 'MDF Codes',\n AverageScore = 'Average Score',\n PublishedDate = 'Published Date',\n SurveyStatus = 'Survey Status',\n Result = 'Result',\n Export = 'Export',\n}\n\nexport const DEFAULT_SUPPLIER_SUPPLY_BASE_MANAGEMENT_SUPPLIER_EVALUATION_COLUMNS: (keyof typeof SupplierSupplyBaseManagementSupplierEvaluationColumns)[] =\n [\n 'Title',\n 'TemplateName',\n 'EvaluationPeriod',\n 'Organisation',\n 'SPEOwners',\n 'MdfCodes',\n 'AverageScore',\n 'PublishedDate',\n 'SurveyStatus',\n 'Result',\n 'Export',\n ];\n","export enum EntityIdAliasPrefixes {\n PriceEntry = 'PE',\n Project = 'PROJ',\n ProjectExpediting = 'PEX',\n PurchaseRequisition = 'PREQ',\n Rfq = 'RFQ',\n RfRFQ = 'RFRFQ',\n Supplier = 'SUP',\n Quotation = 'QUOT',\n TemplateRfrfq = 'TRFRFQ',\n Category = 'CATM',\n Strategy = 'STRAT',\n User = 'USER',\n TemplateSPE = 'TSPE',\n GeneralTSPE = 'GSPT',\n Survey = 'PSPE',\n SupplierEvaluation = 'SPE',\n DivisionSupplierEvaluationSupplierCriteria = 'DSESC',\n}\n","import { v4 as uuidV4 } from 'uuid';\n\nexport const BASE_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'name', label: 'Name' },\n { uuid: uuidV4(), value: 'entity', label: 'Entity' },\n { uuid: uuidV4(), value: 'status', label: 'Status' },\n];\n\nexport const DASHBOARD_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'name', label: 'Name' },\n { uuid: uuidV4(), value: 'entity', label: 'Entity' },\n { uuid: uuidV4(), value: 'status', label: 'Status' },\n { uuid: uuidV4(), value: 'date', label: 'Due Date' },\n { uuid: uuidV4(), value: 'createddate', label: 'Created Date' },\n { uuid: uuidV4(), value: 'updateddate', label: 'Updated Date' },\n];\n\nexport const SOURCING_SCOPE_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'name', label: 'Name' },\n { uuid: uuidV4(), value: 'entity', label: 'Entity' },\n { uuid: uuidV4(), value: 'status', label: 'Status' },\n { uuid: uuidV4(), value: 'organisation', label: 'Organisation' },\n { uuid: uuidV4(), value: 'purchaser', label: 'Purchaser' },\n { uuid: uuidV4(), value: 'dueDate', label: 'Due Date' },\n];\n\nexport const SUPPLIERS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'SmVendorId', label: 'SM Vendor ID' },\n { uuid: uuidV4(), value: 'ErpVendorId', label: 'ERP Vendor ID' },\n { uuid: uuidV4(), value: 'Guid', label: 'GUID' },\n { uuid: uuidV4(), value: 'Company', label: 'Company' },\n { uuid: uuidV4(), value: 'Country', label: 'Country' },\n { uuid: uuidV4(), value: 'City', label: 'City' },\n { uuid: uuidV4(), value: 'Contacts', label: 'Contacts' },\n {\n uuid: uuidV4(),\n value: 'LocalDivisionAssignments',\n label: 'Local Division Assignments',\n },\n { uuid: uuidV4(), value: 'Qualification', label: 'Qualification' },\n { uuid: uuidV4(), value: 'Registration', label: 'Registration' },\n { uuid: uuidV4(), value: 'Active', label: 'Is Active' },\n { uuid: uuidV4(), value: 'Internal', label: 'Is Internal' },\n];\n\nexport const CATEGORIES_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Validity', label: 'Validity' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n];\n\nexport const TEMPLATES_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Category', label: 'Category ID' },\n { uuid: uuidV4(), value: 'Owner', label: 'Owner' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n];\n\nexport const SUPPLIER_STRATEGY_SOURCING_EVENTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'RfqNumber', label: 'RFQ Number' },\n { uuid: uuidV4(), value: 'RfqStatus', label: 'RFQ Status' },\n { uuid: uuidV4(), value: 'DueDate', label: 'Due Date' },\n { uuid: uuidV4(), value: 'Purchaser', label: 'Purchaser' },\n { uuid: uuidV4(), value: 'Created', label: 'Created' },\n { uuid: uuidV4(), value: 'RfrfqNumber', label: 'RFRFQ Number' },\n { uuid: uuidV4(), value: 'RfrfqStatus', label: 'RFRFQ Status' },\n { uuid: uuidV4(), value: 'RfrfqName', label: 'RFRFQ Name' },\n { uuid: uuidV4(), value: 'ProjectStatus', label: 'Project Status' },\n { uuid: uuidV4(), value: 'ProjectNumber', label: 'Project Number' },\n { uuid: uuidV4(), value: 'LocalDivision', label: 'Local Division' },\n { uuid: uuidV4(), value: 'QuotationNumber', label: 'Quotation Number' },\n { uuid: uuidV4(), value: 'QuotationStatus', label: 'Quotation Status' },\n];\n\nexport const CATEGORY_MONITORING_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Entity', label: 'Entity' },\n { uuid: uuidV4(), value: 'Template', label: 'Template' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n { uuid: uuidV4(), value: 'Organisation', label: 'Organisation' },\n { uuid: uuidV4(), value: 'Purchaser', label: 'Purchaser' },\n { uuid: uuidV4(), value: 'DueDate', label: 'Due Date' },\n { uuid: uuidV4(), value: 'DeliveryDate', label: 'Delivery Date' },\n { uuid: uuidV4(), value: 'OfferValidityDate', label: 'Offer Validity Date' },\n { uuid: uuidV4(), value: 'MdfCode', label: 'MDF Code' },\n {\n uuid: uuidV4(),\n value: 'SourcingEventBudget',\n label: 'Sourcing Event Budget (USD)',\n },\n { uuid: uuidV4(), value: 'TargetPrice', label: 'Target Price (USD)' },\n {\n uuid: uuidV4(),\n value: 'LeadingQuotationBudget',\n label: 'Leading Quotation Budget (USD)',\n },\n {\n uuid: uuidV4(),\n value: 'CompetitiveBiddingStatus',\n label: 'Competitive Bidding Status',\n },\n];\n\nexport const EXTERNAL_CONTACTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'FirstName', label: 'First Name' },\n { uuid: uuidV4(), value: 'LastName', label: 'Last Name' },\n { uuid: uuidV4(), value: 'Email', label: 'Email' },\n { uuid: uuidV4(), value: 'Function', label: 'Function' },\n { uuid: uuidV4(), value: 'Telephone', label: 'Telephone' },\n { uuid: uuidV4(), value: 'Mobile', label: 'Mobile' },\n { uuid: uuidV4(), value: 'Emails', label: 'Emails' },\n { uuid: uuidV4(), value: 'Rfqs', label: 'RFQs' },\n { uuid: uuidV4(), value: 'ResponseTime', label: 'Response Time' },\n { uuid: uuidV4(), value: 'LastResponse', label: 'Last Response' },\n { uuid: uuidV4(), value: 'Note', label: 'Note' },\n { uuid: uuidV4(), value: 'Archived', label: 'Archived' },\n];\n\nexport const LEGAL_CONTRACTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Title', label: 'Title' },\n { uuid: uuidV4(), value: 'Owner', label: 'Owner' },\n { uuid: uuidV4(), value: 'Effective', label: 'Effective' },\n { uuid: uuidV4(), value: 'Amount', label: 'Amount' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n];\n\nexport const STRATEGY_MANAGEMENT_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'OpenActionsCount', label: 'Open Actions' },\n { uuid: uuidV4(), value: 'ExpirationDate', label: 'Expiration Date' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n];\n\nexport const LOCAL_DIVISION_USERS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Email', label: 'Email' },\n { uuid: uuidV4(), value: 'Role', label: 'Role' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n { uuid: uuidV4(), value: 'ReviewStatus', label: 'Review Status' },\n { uuid: uuidV4(), value: 'ReviewDate', label: 'Review Date' },\n { uuid: uuidV4(), value: 'NextReview', label: 'Next Review' },\n];\n\nexport const ORGANISATION_MANAGERS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n { uuid: uuidV4(), value: 'ReviewStatus', label: 'Review Status' },\n { uuid: uuidV4(), value: 'ReviewDate', label: 'Last Review' },\n { uuid: uuidV4(), value: 'NextReview', label: 'Next Review' },\n];\n\nexport const LOCAL_DIVISION_ASSIGNMENTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Role', label: 'Role' },\n { uuid: uuidV4(), value: 'ReviewStatus', label: 'Review Status' },\n { uuid: uuidV4(), value: 'ReviewDate', label: 'Review Date' },\n];\n\nexport const DEFAULT_ORDER = {\n orderBy: 'name',\n orderIsAscending: true,\n};\n\nexport const USERS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Email', label: 'Email' },\n { uuid: uuidV4(), value: 'LocalDivision', label: 'Local Division' },\n { uuid: uuidV4(), value: 'Active', label: 'Active' },\n];\n\nexport const CURRENCIES_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Code', label: 'Code' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n];\n\nexport const INCOTERMS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Code', label: 'Code' },\n];\n\nexport const PAYMENT_TERMS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n];\n\nexport const EXCHANGE_RATES_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Code', label: 'Code' },\n { uuid: uuidV4(), value: 'Unit', label: 'Unit' },\n { uuid: uuidV4(), value: 'ClosingRate', label: 'Closing Rate' },\n];\n\nexport const VARIABLES_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n];\n\nexport const LINKS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Description', label: 'Description' },\n { uuid: uuidV4(), value: 'URL', label: 'URL' },\n];\n\nexport const DOCUMENTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Description', label: 'Description' },\n { uuid: uuidV4(), value: 'Document', label: 'Document' },\n];\n\nexport const HEATMAP_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'supplierName', label: 'Supplier Name' },\n { uuid: uuidV4(), value: 'supplierSmVendorId', label: 'SmVendorId' },\n { uuid: uuidV4(), value: 'supplierCity', label: 'City' },\n { uuid: uuidV4(), value: 'supplierGuid', label: 'GUID' },\n { uuid: uuidV4(), value: 'supplierScore', label: 'Score' },\n { uuid: uuidV4(), value: 'supplierResponseScore', label: 'Response Time' },\n];\n\nexport const TERMS_AND_CONDITIONS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Url', label: 'Url' },\n { uuid: uuidV4(), value: 'IsAvailable', label: 'Available' },\n];\n\nexport const INCIDENTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'MdfCode', label: 'MDF Code' },\n { uuid: uuidV4(), value: 'Status', label: 'Status' },\n { uuid: uuidV4(), value: 'ImpactStatus', label: 'Impact' },\n { uuid: uuidV4(), value: 'Created', label: 'Created' },\n { uuid: uuidV4(), value: 'Resolved', label: 'Resolved' },\n];\n\nexport const SPE_SUPPLIERS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'SupplierName', label: 'Supplier Name' },\n { uuid: uuidV4(), value: 'Template', label: 'Template' },\n { uuid: uuidV4(), value: 'SupplierType', label: 'Supplier Type' },\n { uuid: uuidV4(), value: 'SupplierStrategy', label: 'Supplier Strategy' },\n];\n\nexport const SPE_EVALUATORS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'Name', label: 'Name' },\n { uuid: uuidV4(), value: 'Dimension', label: 'Dimension' },\n { uuid: uuidV4(), value: 'Email', label: 'Email' },\n];\n\nexport const SUPPLIER_PERFORMANCE_EVALUATIONS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'entityNumber', label: 'Entity Number' },\n { uuid: uuidV4(), value: 'surveyName', label: 'Survey Name' },\n { uuid: uuidV4(), value: 'evaluationPeriod', label: 'Evaluation Period' },\n { uuid: uuidV4(), value: 'suppliersCount', label: 'Suppliers Count' },\n { uuid: uuidV4(), value: 'mdfCodes', label: 'MDF Codes' },\n { uuid: uuidV4(), value: 'status', label: 'Status' },\n { uuid: uuidV4(), value: 'remainingDays', label: 'Remaining Days' },\n {\n uuid: uuidV4(),\n value: 'generalSubmissionProgress',\n label: 'General Submission Progress',\n },\n];\n\nexport const USER_SURVEY_EVALUATIONS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'user', label: 'User' },\n { uuid: uuidV4(), value: 'status', label: 'Status' },\n];\n\nexport const SURVEY_SUPPLIER_EVALUATIONS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'supplier', label: 'Supplier' },\n { uuid: uuidV4(), value: 'score', label: 'Score' },\n { uuid: uuidV4(), value: 'submittedCount', label: 'Submitted Count' },\n];\n\nexport const SUPPLIER_EVALUATIONS_SEARCH_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'localdivision', label: 'Local Division' },\n { uuid: uuidV4(), value: 'hub', label: 'Hub' },\n { uuid: uuidV4(), value: 'displayName', label: 'Title' },\n { uuid: uuidV4(), value: 'score', label: 'Score' },\n { uuid: uuidV4(), value: 'mdfCodes', label: 'MDF Codes' },\n { uuid: uuidV4(), value: 'owners', label: 'Owners' },\n { uuid: uuidV4(), value: 'supplierName', label: 'Supplier Name' },\n { uuid: uuidV4(), value: 'publishedDate', label: 'Published Date' },\n { uuid: uuidV4(), value: 'minimumDateRange', label: 'Minimum Date Range' },\n { uuid: uuidV4(), value: 'maximumDateRange', label: 'Maximum Date Range' },\n];\n\nexport const SURVEY_ACTIVITY_EVENTS_ORDER_BY_OPTIONS = [\n { uuid: uuidV4(), value: 'date', label: 'Date' },\n];\n","export enum Preferences {\n IsNavigationExpanded = 'view:is-navigation-expanded',\n IsSecondaryNavigationExpanded = 'view:is-secondary-navigation-expanded',\n IsDashboardFiltersExpanded = 'view:is-dashboard-filters-expanded',\n IsSupplierSidePanelExpanded = 'view:is-supplier-side-panel-expanded',\n IsQuotationSidePanelExpanded = 'view:is-quotation-side-panel-expanded',\n\n DateFormat = 'settings:date-format',\n\n QuotationSourcingScopeColumns = 'view:quotation-sourcing-scope-columns',\n IncidentsColumns = 'view:incidents-columns',\n ContactsColumns = 'view:contacts-columns',\n LegalContractsColumns = 'view:legal-contracts-columns',\n SupplierManagementColumns = 'view:supplier-management-columns',\n CategoryManagementColumns = 'view:category-management-columns',\n TemplateManagementColumns = 'view:template-management-columns',\n SupplierStrategyTaskColumns = 'view:supplier-strategy-task-columns',\n SupplierStrategySourcingEventsColumns = 'view:supplier-strategy-sourcing-events-columns',\n CategoryMonitoringColumns = 'view:category-monitoring-columns',\n StrategyManagementColumns = 'view:strategy-management-columns',\n QuotationsByStatusColumns = 'view:quotations-by-status-columns',\n ResourceIncotermsColumns = 'view:resource-incoterms-columns',\n ResourceTermsAndConditionsColumns = 'view:resource-terms-and-conditions-columns',\n SpecialClauseColumns = 'view:special-clause-columns',\n LocalDivisionUsersColumns = 'view:local-division-users-columns',\n ResourcePaymentTermsColumns = 'view:resource-payment-terms-columns',\n ResourceCurrenciesColumns = 'view:resource-currencies-columns',\n ResourceVariablesColumns = 'view:resource-variables-columns',\n ResourceExchangeRatesColumns = 'view:resource-exchange-rates-columns',\n OrganisationManagersColumns = 'view:organisation-managers-columns',\n ResourceMdfCodesColumns = 'view:resource-mdf-codes-columns',\n UsersColumns = 'view:users-columns',\n ResourceLinksColumns = 'view:resource-links-columns',\n ResourceDocumentsColumns = 'view:resource-documents-columns',\n HeatmapColumns = 'view:heatmap-columns',\n HeatmapProjectsColumns = 'view:heatmap-projects-columns',\n SPESupplierSelectionColumns = 'view:spe-supplier-selection-columns',\n SPEEvaluatorsSelectionColumns = 'view:spe-evaluators-selection-columns',\n SupplierPerformanceEvaluationsColumns = 'view:supplier-performance-evaluations-columns',\n SupplierPerformanceEvaluationsHubColumns = 'view:supplier-performance-evaluations-hub-columns',\n SupplierPerformanceEvaluationsLocalDivisionsColumns = 'view:supplier-performance-evaluations-local-divisions-columns',\n SupplierSupplyBaseManagementSupplierEvaluationColumns = 'view:supplier-supply-base-management-supplier-evaluation-columns',\n\n QuotationRevisionTrackerInformationFields = 'view:quotation-revision-tracker-information-fields',\n QuotationRevisionTrackerTechnicalRequirementsFields = 'view:quotation-revision-tracker-technical-requirements-fields',\n QuotationRevisionTrackerCommercialRequirementsFields = 'view:quotation-revision-tracker-commercial-requirements-fields',\n QuotationRevisionTrackerLogisticalRequirementsFields = 'view:quotation-revision-tracker-logistical-requirements-fields',\n QuotationRevisionTrackerTCOFields = 'view:quotation-revision-tracker-tco-fields',\n\n UseNewFilters = 'feature:use-new-filters',\n\n FavoriteOrder = 'view:favorite-order',\n SourcingOrder = 'view:sourcing-order',\n SourcingScopeOrder = 'view:sourcing-scope-order',\n SuppliersOrder = 'view:suppliers-order',\n CategoriesOrder = 'view:categories-order',\n TemplatesOrder = 'view:templates-order',\n SupplierStrategySourcingEventsOrder = 'view:supplier-strategy-sourcing-events-order',\n CategoryMonitoringOrder = 'view:category-monitoring-order',\n ExternalContactsOrder = 'view:external-contacts-order',\n LegalContractsOrder = 'view:legal-contracts-order',\n StrategyManagementOrder = 'view:strategy-management-order',\n LocalDivisionUsersOrder = 'view:local-division-users-order',\n OrganisationManagersOrder = 'view:organisation-managers-order',\n DivisionsReviewOrder = 'view:divisions-review-order',\n HubsReviewOrder = 'view:hubs-review-order',\n LocalDivisionsReviewOrder = 'view:local-divisions-review-order',\n LocalDivisionAssignmentsOrder = 'view:local-division-assignments-order',\n UsersOrder = 'view:users-order',\n VariablesOrder = 'view:variables-order',\n IncotermsOrder = 'view:incoterms-order',\n TermsAndConditionsOrder = 'view:terms-and-conditions-order',\n SpecialClauseOrder = 'view:special-clause-order',\n CurrenciesOrder = 'view:currencies-order',\n ExchangeRatesOrder = 'view:exchange-rates-order',\n PaymentTermsOrder = 'view:payment-terms-order',\n ResourceLinksOrder = 'view:resource-links-order',\n ResourceDocumentsOrder = 'view:resource-documents-order',\n HeatmapOrder = 'view:heatmap-order',\n IncidentsOrder = 'view:incidents-order',\n SPESupplierSelectionOrder = 'view:spe-supplier-selection-order',\n SPEEvaluatorsSelectionOrder = 'view:spe-evaluators-selection-order',\n SupplierPerformanceEvaluationsOrder = 'view:supplier-performance-evaluations-order',\n UserSurveyEvaluationsOrder = 'view:user-survey-evaluations-order',\n SurveyEvaluationsOrder = 'view:survey-evaluations-order',\n SupplierEvaluationsSearchOrder = 'view:supplier-evaluations-search-order',\n SurveyActivityEventsOrder = 'view:survey-activity-events-order',\n}\n","import { DOCUMENT } from '@angular/common';\nimport { InjectionToken, inject } from '@angular/core';\nimport { EnvironmentConfig, EnvironmentInfo } from './environment';\n\nexport const WINDOW = new InjectionToken(\n 'An abstraction over the global window object',\n {\n factory: (): Window => {\n const { defaultView } = inject(DOCUMENT);\n\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n\n return defaultView;\n },\n },\n);\n\nexport const ENVIRONMENT_INFO = new InjectionToken('ENVIRONMENT_INFO');\nexport const ENVIRONMENT_CONFIG = new InjectionToken('ENVIRONMENT_CONFIG');\n","import { ApplicationNotification } from '../types/application-notification.type';\n\nexport class ApplicationNotificationModel implements ApplicationNotification {\n readonly notificationId: string;\n value: string | null = null;\n readonly validFrom: Date;\n readonly validUntil: Date;\n readonly enabled: boolean;\n display: boolean;\n\n constructor(applicationNotification: ApplicationNotification) {\n this.notificationId = applicationNotification.notificationId || '';\n this.value = applicationNotification.value ?? '';\n this.validFrom = applicationNotification.validFrom;\n this.validUntil = applicationNotification.validUntil;\n this.enabled = applicationNotification.enabled || false;\n this.display = applicationNotification.display || false;\n }\n}\n","import { v4 as uuidv4 } from 'uuid';\n\nexport class BaseModel {\n readonly uuid: string;\n\n constructor() {\n this.uuid = uuidv4();\n }\n}\n","import { ContractualMilestoneStatus } from '../types/contractual-milestone-status';\nimport { IdNameModel } from './id-name.model';\n\nexport class ContractualMilestoneStatusModel\n extends IdNameModel\n implements ContractualMilestoneStatus {}\n","import { ContractualMilestone } from '../types/contractual-milestone';\nimport { IdNameModel } from './id-name.model';\n\nexport class ContractualMilestoneModel\n extends IdNameModel\n implements ContractualMilestone {}\n","import { CostAllocation } from '../types/cost-allocation.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class CostAllocationModel\n extends IdNameModel\n implements CostAllocation {}\n","import { UserGuideTour } from '../types/user-guide-tour.type';\n\nexport class UserGuideTourModel implements UserGuideTour {\n readonly id: string;\n readonly confirmedCount: number;\n readonly markedAsCompleted: boolean;\n\n constructor(userGuideTour: UserGuideTour) {\n this.id = userGuideTour.id;\n this.confirmedCount = userGuideTour.confirmedCount;\n this.markedAsCompleted = userGuideTour.markedAsCompleted;\n }\n}\n","import { UserPermissions } from '../types/user-permissions.type';\n\nexport class UserPermissionsModel implements UserPermissions {\n readonly canManageUsers: boolean;\n readonly canManageOrganization: boolean;\n readonly canManageSuppliers: boolean;\n readonly canManageNotifications: boolean;\n readonly canManageResources: boolean;\n readonly canManageTemplates: boolean;\n readonly canAddRequestForRequestForQuotation: boolean;\n readonly canAddPurchaseRequisition: boolean;\n readonly canAddProject: boolean;\n readonly canAddRequestForRequestForQutoationFromTemplate: boolean;\n readonly canViewAdminView: boolean;\n readonly canViewOrganisation: boolean;\n readonly canManageCategories: boolean;\n\n constructor(data: UserPermissions) {\n this.canManageUsers = data.canManageUsers;\n this.canManageOrganization = data.canManageOrganization;\n this.canManageSuppliers = data.canManageSuppliers;\n this.canManageNotifications = data.canManageNotifications;\n this.canManageResources = data.canManageResources;\n this.canManageTemplates = data.canManageTemplates;\n\n this.canAddRequestForRequestForQuotation =\n data.canAddRequestForRequestForQuotation;\n\n this.canAddPurchaseRequisition = data.canAddPurchaseRequisition;\n this.canAddProject = data.canAddProject;\n\n this.canAddRequestForRequestForQutoationFromTemplate =\n data.canAddRequestForRequestForQutoationFromTemplate;\n\n this.canViewAdminView = data.canViewAdminView;\n this.canViewOrganisation = data.canViewOrganisation;\n this.canManageCategories = data.canManageCategories;\n }\n}\n","import { CurrentUser } from '../types/current-user.type';\nimport { UserPermissions } from '../types/user-permissions.type';\nimport { PreferenceModel } from './preference.model';\nimport { UserGuideTourModel } from './user-guide-tour.model';\nimport { UserPermissionsModel } from './user-permissions.model';\nimport { UserModel } from './user.model';\n\nexport class CurrentUserModel extends UserModel implements CurrentUser {\n readonly guideTours: UserGuideTourModel[] | null = null;\n readonly mystiqueKey: string;\n readonly permissions: UserPermissions;\n readonly preferences: PreferenceModel[] | null = null;\n readonly additionalData: Record;\n\n constructor(data: CurrentUser) {\n super(data);\n\n if (data.guideTours) {\n this.guideTours = data.guideTours.map(\n (item) => new UserGuideTourModel(item),\n );\n }\n\n this.mystiqueKey = data.mystiqueKey;\n this.permissions = new UserPermissionsModel(data.permissions);\n\n if (data.preferences) {\n this.preferences = data.preferences.map(\n (item) => new PreferenceModel(item),\n );\n }\n\n this.additionalData = data.additionalData;\n }\n}\n","import { DefaultCriteriaDimension } from '../types/default-criteria-dimension.type';\nimport { BaseModel } from './base.model';\n\nexport class DefaultCriteriaDimensionModel\n extends BaseModel\n implements DefaultCriteriaDimension\n{\n readonly id: number;\n readonly name: string | null;\n readonly weight: number;\n readonly order: number;\n\n constructor(data: DefaultCriteriaDimension) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n this.weight = data.weight;\n this.order = data.order;\n }\n}\n","import { DeliveryDestination } from '../types/delivery-destination.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class DeliveryDestinationModel\n extends IdNameModel\n implements DeliveryDestination {}\n","import { EntityStatus } from '../types/entity-status.type';\nimport { BaseModel } from './base.model';\n\nexport class EntityStatusModel extends BaseModel implements EntityStatus {\n readonly id: number;\n readonly name: string;\n readonly color: string;\n\n constructor(data: EntityStatus) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n this.color = data.color;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { GuidNameCode } from '../types/guid-name-code.type';\nimport { BaseModel } from './base.model';\n\nexport class GuidNameCodeModel extends BaseModel implements GuidNameCode {\n readonly id: string;\n readonly code: string | null;\n readonly name: string | null;\n\n constructor(guidCodeName: GuidNameCode) {\n super();\n\n this.id = guidCodeName.id;\n this.code = guidCodeName.code;\n this.name = guidCodeName.name;\n }\n\n getDisplay(): string {\n if (this.code && this.name) {\n return `${this.code} - ${this.name}`;\n }\n\n if (this.code) {\n return this.code;\n }\n\n return `${this.name}`;\n }\n}\n","import { GuidName } from '../types/guid-name.type';\nimport { BaseModel } from './base.model';\n\nexport class GuidNameModel extends BaseModel implements GuidName {\n readonly id: string;\n readonly name: string | null;\n\n constructor(data: GuidName) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { IdNameCode } from '../types/id-name-code.type';\nimport { BaseModel } from './base.model';\n\nexport class IdNameCodeModel extends BaseModel implements IdNameCode {\n readonly id: number;\n readonly code: string;\n readonly name: string | null;\n\n constructor(data: IdNameCode) {\n super();\n\n this.id = data.id;\n this.code = data.code;\n this.name = data.name;\n }\n\n getDisplay(): string {\n if (this.code && this.name) {\n return `${this.code} - ${this.name}`;\n }\n\n if (this.code) {\n return this.code;\n }\n\n return `${this.name}`;\n }\n}\n","import { IdNameDescription } from '../types/id-name-description.type';\nimport { BaseModel } from './base.model';\n\nexport class IdNameDescriptionModel\n extends BaseModel\n implements IdNameDescription\n{\n readonly id: number;\n readonly name: string | null;\n readonly description: string | null;\n\n constructor(data: IdNameDescription) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n this.description = data.description;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { IdName } from '../types/id-name.type';\nimport { BaseModel } from './base.model';\n\nexport class IdNameModel extends BaseModel implements IdName {\n readonly id: number;\n readonly name: string | null;\n\n constructor(data: IdName) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { ResourceVariables } from '../../../types/management/resources/resource-variables.type';\nimport { BaseModel } from '../../base.model';\n\nexport class ResourceVariablesModel\n extends BaseModel\n implements ResourceVariables\n{\n readonly id: number;\n readonly uniqueCode: string;\n readonly value: string;\n readonly name: string | null;\n\n constructor(data: ResourceVariables) {\n super();\n\n this.id = data.id;\n this.uniqueCode = data.uniqueCode;\n this.value = data.value;\n this.name = data.name;\n }\n}\n","import { MdfCode } from '../types/mdf-code.type';\nimport { BaseModel } from './base.model';\n\nexport class MdfCodeModel extends BaseModel implements MdfCode {\n readonly id: number;\n readonly name: string | null;\n readonly code: string | null;\n readonly count: number | undefined;\n\n constructor(data: MdfCode) {\n super();\n\n this.id = data.id;\n this.name = data.name;\n this.code = data.code;\n this.count = data.count;\n }\n\n /**\n * Returns the display value for an MDF code.\n */\n getDisplay(): string {\n return `${this.code} - ${this.name}`;\n }\n}\n","import { OrderedValue } from '../types/ordered-value.type';\nimport { BaseModel } from './base.model';\n\nexport class OrderedValueModel extends BaseModel implements OrderedValue {\n readonly orderIndex: number;\n readonly value: string | null;\n readonly id: number;\n\n constructor(orderedValue: OrderedValue) {\n super();\n\n this.orderIndex = orderedValue.orderIndex;\n this.value = orderedValue.value;\n this.id = orderedValue.orderIndex;\n }\n\n getDisplay(): string {\n return `${this.value}`;\n }\n}\n","import { OrderedValueModel } from './ordered-value.model';\n\nexport class OfferedLeadTimeModel extends OrderedValueModel {}\n","import { DeliveryDestination } from '../types/delivery-destination.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class OrderAcknowledgementReviewModel\n extends IdNameModel\n implements DeliveryDestination {}\n","import { PaginatedResponse } from '../types/paginated-response.type';\n\nexport class PaginatedResponseModel implements PaginatedResponse {\n readonly totalCount: number;\n readonly pageIndex: number;\n readonly pageSize: number;\n readonly orderBy: string | null;\n readonly orderIsAscending: boolean;\n\n constructor(paginatedResponse: PaginatedResponse) {\n this.totalCount = paginatedResponse.totalCount;\n this.pageIndex = paginatedResponse.pageIndex;\n this.pageSize = paginatedResponse.pageSize;\n this.orderBy = paginatedResponse.orderBy;\n this.orderIsAscending = paginatedResponse.orderIsAscending;\n }\n}\n","import { PeoplePickerUser } from '../types/people-picker-user.type';\nimport { UserModel } from './user.model';\n\nexport class PeoplePickerUserModel\n extends UserModel\n implements PeoplePickerUser\n{\n readonly department: string | null;\n readonly avatarUrl: string | null;\n\n constructor(data: PeoplePickerUser) {\n super(data);\n\n this.department = data.department;\n this.avatarUrl = data.avatarUrl;\n }\n}\n","import { Preference } from '../types/preference.type';\n\nexport class PreferenceModel implements Preference {\n readonly key: string | null = null;\n readonly value: string | null = null;\n\n constructor(preference: Preference) {\n this.key = preference.key;\n this.value = preference.value;\n }\n}\n","import { ResourceLinkSlim } from '../types/resource-link-slim.type';\nimport { BaseModel } from './base.model';\n\nexport class ResourceLinkSlimModel\n extends BaseModel\n implements ResourceLinkSlim\n{\n readonly id: number;\n readonly name: string | null = null;\n readonly url: string | null = null;\n readonly description: string | null = null;\n readonly isDocument: boolean | null = null;\n readonly icon: string | null = null;\n\n constructor(resourceLinkSlim: ResourceLinkSlim) {\n super();\n\n this.id = resourceLinkSlim.id;\n\n if (resourceLinkSlim.name) {\n this.name = resourceLinkSlim.name;\n }\n\n if (resourceLinkSlim.url) {\n this.url = resourceLinkSlim.url;\n }\n\n if (resourceLinkSlim.description) {\n this.description = resourceLinkSlim.description;\n }\n\n if (resourceLinkSlim.isDocument) {\n this.isDocument = resourceLinkSlim.isDocument;\n }\n\n if (resourceLinkSlim.icon) {\n this.icon = resourceLinkSlim.icon;\n }\n }\n}\n","import { SupplierSendType } from '../types/supplier-send-type.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class SupplierSendTypeModel\n extends IdNameModel\n implements SupplierSendType {}\n","import { TermsAndConditionsCategory } from '../types/terms-and-conditions-category.type';\nimport { IdNameModel } from './id-name.model';\nimport { TermsAndConditionsModel } from './terms-and-conditions.model';\n\nexport class TermsAndConditionsCategoryModel\n extends IdNameModel\n implements TermsAndConditionsCategory\n{\n readonly termsAndConditions: TermsAndConditionsModel[] | null = null;\n\n constructor(data: TermsAndConditionsCategory) {\n super(data);\n\n if (data.termsAndConditions) {\n this.termsAndConditions = data.termsAndConditions.map(\n (item) => new TermsAndConditionsModel(item),\n );\n }\n }\n}\n","import { TermsAndConditions } from '../types/terms-and-conditions.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class TermsAndConditionsModel\n extends IdNameModel\n implements TermsAndConditions\n{\n readonly isCustomized: boolean;\n readonly url: string | null;\n\n constructor(data: TermsAndConditions) {\n super(data);\n\n this.isCustomized = data.isCustomized;\n this.url = data.url;\n }\n}\n","import { UserSlim } from '../types/user-slim.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class UserSlimModel extends IdNameModel implements UserSlim {\n email: string | null = null;\n avatarUrl: string | null = null;\n\n constructor(userSlim: UserSlim) {\n super(userSlim);\n\n this.email = userSlim.email;\n this.avatarUrl = userSlim.avatarUrl;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { UserStatus } from '../types/user-status.type';\nimport { EntityStatusModel } from './entity-status.model';\nimport { UserModel } from './user.model';\n\nexport class UserStatusModel extends UserModel implements UserStatus {\n readonly status: EntityStatusModel | null;\n readonly entityNumber: string | null;\n readonly canView: boolean | null;\n\n constructor(userStatus: UserStatus) {\n super(userStatus);\n\n this.entityNumber = userStatus.entityNumber;\n this.canView = userStatus.canView;\n\n this.status = userStatus.status\n ? new EntityStatusModel(userStatus.status)\n : null;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { User } from '../types/user.type';\nimport { BaseModel } from './base.model';\n\nexport class UserModel extends BaseModel implements User {\n readonly id: number;\n readonly email: string | null;\n readonly name: string | null;\n readonly isActiveInEntraID: boolean;\n readonly isEnabled: boolean;\n readonly avatarUrl: string | null;\n\n constructor(user: User) {\n super();\n\n this.id = user.id;\n this.email = user.email;\n this.name = user.name;\n this.isActiveInEntraID = user.isActiveInEntraID;\n this.isEnabled = user.isEnabled;\n this.avatarUrl = user.avatarUrl;\n }\n\n getDisplay(): string {\n return `${this.name}`;\n }\n}\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst StorageUploadSettings = t.type(\n {\n host: nullable(t.string),\n container: nullable(t.string),\n token: nullable(t.string),\n },\n 'StorageUploadSettings',\n);\n\ntype StorageUploadSettings = t.TypeOf;\nexport { StorageUploadSettings };\n","import { ApiService, CustomHttpParams } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { string as ioString } from 'io-ts';\nimport { Observable } from 'rxjs';\nimport { StorageUploadSettingsModel } from '../models/storage-upload-settings.model';\nimport { StorageUploadSettings } from '../types/storage-upload-settings.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DocumentsApiService extends ApiService {\n getDownloadUrl$(documentId: string): Observable {\n return this.get$(`Document/${documentId}/Download`, ioString).pipe(\n this.catchError$(\n 'There was an error retrieving the document download URL.',\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n async getDownloadUrl(documentId: string): Promise {\n try {\n const response = await this.get(\n `Document/${documentId}/Download`,\n ioString,\n );\n\n return response;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an error retrieving the document download URL.',\n );\n }\n }\n\n getUploadSettings$(): Observable {\n return this.get$(\n 'Document/Settings',\n StorageUploadSettings,\n ).pipe(\n this.catchError$('There was an error retrieving upload settings.'),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n downloadAll$(\n entityTypeString: string,\n entityId: string,\n fieldName: string,\n suffix: string,\n ): Observable {\n const queryParams = new CustomHttpParams({\n filenameSuffix: suffix,\n });\n\n return this.get$(\n `Document/${entityTypeString}/${entityId}/${fieldName}/Download`,\n ioString,\n queryParams,\n ).pipe(\n this.catchError$('There was an issue downloading the documents.'),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n getResourceDownloadUrl$(resourceId: number): Observable {\n return this.get$(`Document/Resource/${resourceId}`, ioString).pipe(\n this.catchError$(\n 'There was an error retrieving the resource download URL.',\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","import { ApiService } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport { boolean as ioBoolean } from 'io-ts';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ApplicationNotificationModel } from '../models/application-notification.model';\nimport { ApplicationNotification } from '../types/application-notification.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalNotificationApiService extends ApiService {\n readonly notificationUpdated$: Observable;\n\n private notificationUpdatedSubject$: BehaviorSubject =\n new BehaviorSubject(null);\n\n constructor() {\n super();\n\n this.notificationUpdated$ = this.notificationUpdatedSubject$.asObservable();\n }\n\n async getNotification(): Promise {\n try {\n const response = await this.get(\n 'Management/Notification',\n ApplicationNotification,\n );\n\n return response != null\n ? new ApplicationNotificationModel(response)\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while retrieving the notification data.',\n );\n }\n }\n\n async updateNotification(\n notification: ApplicationNotification,\n ): Promise {\n try {\n await this.put(\n 'Management/Notification',\n ioBoolean,\n notification,\n );\n\n const response = await this.getNotification();\n\n if (response) {\n this.notificationUpdatedSubject$.next(response);\n }\n\n return response != null\n ? new ApplicationNotificationModel(response)\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while updating the notification data.',\n );\n }\n }\n}\n","import { DestroyRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\nimport { InteractionStatus } from '@azure/msal-browser';\nimport { BehaviorSubject, Observable, Subject, combineLatest, of } from 'rxjs';\nimport {\n filter,\n finalize,\n map,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { CurrentUserModel } from '../models/current-user.model';\nimport { LookupDataState } from '../state/lookup-data.state';\nimport { UserState } from '../state/user.state';\nimport { CurrentUser } from '../types/current-user.type';\nimport { UserApiService } from './user-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoginUserService implements OnDestroy {\n requestId: number = 0;\n readonly loginUser$: Observable;\n readonly substituteUser$: Observable;\n readonly currentUser$: Observable;\n readonly isAuthorized$: Observable;\n readonly error: Error | undefined;\n\n get isImpersonatingUser(): boolean {\n return this.substituteUserSubject$.value != null;\n }\n\n private readonly substituteUserSubject$: BehaviorSubject =\n new BehaviorSubject(null);\n private readonly currentUserSubject$: BehaviorSubject =\n new BehaviorSubject(null);\n\n private readonly loginUserSubject$: BehaviorSubject =\n new BehaviorSubject(null);\n private loginUserRequest$: Observable | undefined;\n private readonly loginUserRequestAborter$: Subject = new Subject();\n private readonly userService = inject(UserApiService);\n private readonly authService = inject(MsalService);\n private readonly msalBroadcastService = inject(MsalBroadcastService);\n private readonly userState = inject(UserState);\n private readonly destroyRef = inject(DestroyRef);\n private readonly lookupDataState = inject(LookupDataState);\n\n constructor() {\n this.loginUser$ = this.loginUserSubject$.asObservable();\n this.substituteUser$ = this.substituteUserSubject$.asObservable();\n this.currentUser$ = this.currentUserSubject$.asObservable();\n\n this.isAuthorized$ = this.loginUser$.pipe(map((user) => user != null));\n\n this.msalBroadcastService.inProgress$\n .pipe(\n filter(\n (status: InteractionStatus) => status === InteractionStatus.None,\n ),\n switchMap(() => {\n if (this.authService.instance.getAllAccounts().length === 0) {\n return of(undefined);\n }\n\n return this.getLoginUser$();\n }),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n // nothing\n });\n\n combineLatest([this.loginUser$, this.substituteUser$])\n .pipe(\n map(([loginUser, substituteUser]) => substituteUser ?? loginUser),\n takeUntilDestroyed(),\n )\n .subscribe((currentUser) => {\n this.currentUserSubject$.next(currentUser);\n });\n }\n\n ngOnDestroy(): void {\n this.loginUserSubject$.complete();\n this.substituteUserSubject$.complete();\n this.currentUserSubject$.complete();\n this.loginUserRequestAborter$.complete();\n }\n\n /**\n * Tries to get the login user from the API, effectively checking for authorization.\n */\n getLoginUser$(): Observable {\n if (this.loginUserRequest$) {\n return this.loginUserRequest$;\n }\n\n const user = this.loginUserSubject$.value;\n\n if (user == null) {\n const loginUserRequest$ = this.authorizeLoginUser$().pipe(\n finalize(() => {\n this.loginUserRequest$ = undefined;\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n\n this.loginUserRequest$ = loginUserRequest$;\n\n return this.loginUserRequest$;\n }\n\n return of(user);\n }\n\n /**\n * Logs into the application as a different user, replacing the current login user.\n */\n impersonateUser$(userId: number): Observable {\n if (\n this.loginUserSubject$.value &&\n this.loginUserSubject$.value.id === userId\n ) {\n // It's us. This would act as a logout...\n this.stopImpersonatingUser();\n return of(null);\n }\n\n return this.userService.getUser$(userId).pipe(\n tap((substituteUser) => {\n if (substituteUser == null) {\n this.stopImpersonatingUser();\n return;\n }\n\n this.setSubstituteUser(substituteUser);\n }),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n /**\n * Returns to the previous login user.\n */\n stopImpersonatingUser(): void {\n this.clearSubstituteUser();\n }\n\n logout$(): Observable {\n return this.authService.logout({\n account: this.authService.instance.getActiveAccount(),\n });\n }\n\n private authorizeLoginUser$(): Observable {\n const loginUserRequest$: Observable =\n this.userService.getUser$().pipe(\n map((user) => {\n if (user) {\n this.setLoginUser(user);\n } else {\n this.clearLoginUser();\n }\n\n this.lookupDataState.fetchSupportLink();\n\n return user;\n }),\n );\n\n return loginUserRequest$.pipe(takeUntil(this.loginUserRequestAborter$));\n }\n\n private setLoginUser(user: CurrentUserModel): void {\n this.loginUserSubject$.next(user);\n\n this.userState.setCurrentUser(user, false);\n }\n\n private clearLoginUser(): void {\n this.loginUserSubject$.next(null);\n\n if (this.substituteUserSubject$.value) {\n this.clearSubstituteUser();\n }\n }\n\n private setSubstituteUser(user: CurrentUserModel): void {\n this.substituteUserSubject$.next(user);\n\n this.userState.setCurrentUser(user, true);\n }\n\n private clearSubstituteUser(): void {\n this.substituteUserSubject$.next(null);\n\n this.userState.setCurrentUser(this.loginUserSubject$.value, false);\n }\n}\n","import { SupplierType } from '../types/supplier-type.type';\nimport { IdNameModel } from './id-name.model';\n\nexport class SupplierTypeModel extends IdNameModel implements SupplierType {}\n","import { LookupDataResponse } from '../../types/lookup/lookup-data-response.type';\nimport { RequirementFields } from '../../types/requirements-fields.type';\nimport { ContractualMilestoneStatusModel } from '../contractual-milestone-status.model';\nimport { ContractualMilestoneModel } from '../contractual-milestone.model';\nimport { CostAllocationModel } from '../cost-allocation.model';\nimport { DefaultCriteriaDimensionModel } from '../default-criteria-dimension.model';\nimport { DeliveryDestinationModel } from '../delivery-destination.model';\nimport { EntityStatusModel } from '../entity-status.model';\nimport { IdNameCodeModel } from '../id-name-code.model';\nimport { IdNameDescriptionModel } from '../id-name-description.model';\nimport { IdNameModel } from '../id-name.model';\nimport { ResourceVariablesModel } from '../management/resources/resource-variables.model';\nimport { OfferedLeadTimeModel } from '../offered-lead-time.model';\nimport { OrderAcknowledgementReviewModel } from '../order-acknowledgement-review.model';\nimport { SupplierSendTypeModel } from '../supplier-send-type.model';\nimport { SupplierTypeModel } from '../supplier-type.model';\nimport { TermsAndConditionsCategoryModel } from '../terms-and-conditions-category.model';\n\nexport class LookupDataResponseModel implements LookupDataResponse {\n readonly eTag: string;\n readonly countries: IdNameCodeModel[];\n readonly currencies: IdNameCodeModel[];\n readonly incotermsTypes: IdNameCodeModel[];\n readonly paymentTerms: IdNameModel[];\n readonly termsAndConditionCategories: TermsAndConditionsCategoryModel[];\n readonly wbsCodes: IdNameModel[];\n readonly offeredLeadTimes: OfferedLeadTimeModel[];\n readonly deliveryDestinationTypes: DeliveryDestinationModel[];\n readonly furtherDeliveryDestinationTypes: DeliveryDestinationModel[];\n readonly costAllocationTypes: CostAllocationModel[];\n readonly supplierSendTypes: SupplierSendTypeModel[];\n readonly orderAcknowledgementReviews: OrderAcknowledgementReviewModel[];\n readonly projectProcurementTypes: IdNameModel[];\n readonly projectClassifications: IdNameModel[];\n readonly projectTypeSupplies: IdNameModel[];\n readonly projectStatuses: EntityStatusModel[];\n readonly projectInExecutionSubstatuses: IdNameModel[];\n readonly requestForRequestForQuotationStatuses: EntityStatusModel[];\n readonly requestForQuotationStatuses: EntityStatusModel[];\n readonly templateRequestForRequestForQuotationStatuses: EntityStatusModel[];\n readonly categoryStatuses: EntityStatusModel[];\n readonly quotationStatuses: EntityStatusModel[];\n readonly purchaseRequisitionStatuses: EntityStatusModel[];\n readonly contractualMilestones: ContractualMilestoneModel[];\n readonly contractualMilestoneStatuses: ContractualMilestoneStatusModel[];\n readonly supplierTypes: SupplierTypeModel[];\n readonly requestForRequestForQuotationClassifications: IdNameModel[];\n readonly requestForRequestForQuotationSubstatuses: IdNameModel[];\n readonly quotationSubstatuses: IdNameModel[];\n readonly requestForQuotationSubstatuses: IdNameModel[];\n readonly supplierEvaluationEvaluatorRoles: IdNameModel[];\n readonly supplierPerformanceEvaluationStatuses: EntityStatusModel[];\n readonly projectSupplierPerformanceEvaluationStatuses: EntityStatusModel[];\n readonly invalidFileExtensions: string[];\n readonly invalidMimeTypes: string[];\n\n readonly requirementFields: RequirementFields = {\n commercial: [],\n logistical: [],\n technical: [],\n };\n\n readonly notificationReminderExecutionPeriod: IdNameModel[];\n readonly categoryDimensionTaskStatuses: EntityStatusModel[];\n readonly strategyDimensionLevers: IdNameDescriptionModel[];\n readonly mdfCodes: IdNameCodeModel[];\n readonly defaultDimensions: DefaultCriteriaDimensionModel[];\n readonly resourceVariables: ResourceVariablesModel[];\n\n // eslint-disable-next-line max-lines-per-function, complexity\n constructor(data: LookupDataResponse) {\n this.eTag = data.eTag;\n\n this.countries =\n data.countries?.map((item) => new IdNameCodeModel(item)) ?? [];\n\n this.currencies =\n data.currencies?.map((item) => new IdNameCodeModel(item)) ?? [];\n\n this.incotermsTypes =\n data.incotermsTypes?.map((item) => new IdNameCodeModel(item)) ?? [];\n\n this.paymentTerms =\n data.paymentTerms?.map((item) => new IdNameModel(item)) ?? [];\n\n this.termsAndConditionCategories =\n data.termsAndConditionCategories?.map(\n (item) => new TermsAndConditionsCategoryModel(item),\n ) ?? [];\n\n this.wbsCodes = data.wbsCodes?.map((item) => new IdNameModel(item)) ?? [];\n\n this.offeredLeadTimes =\n data.offeredLeadTimes?.map((item) => new OfferedLeadTimeModel(item)) ??\n [];\n\n this.deliveryDestinationTypes =\n data.deliveryDestinationTypes?.map(\n (item) => new DeliveryDestinationModel(item),\n ) ?? [];\n\n this.furtherDeliveryDestinationTypes =\n data.furtherDeliveryDestinationTypes?.map(\n (item) => new DeliveryDestinationModel(item),\n ) ?? [];\n\n this.costAllocationTypes =\n data.costAllocationTypes?.map((item) => new CostAllocationModel(item)) ??\n [];\n\n this.supplierSendTypes =\n data.supplierSendTypes?.map((item) => new SupplierSendTypeModel(item)) ??\n [];\n\n this.orderAcknowledgementReviews =\n data.orderAcknowledgementReviews?.map(\n (item) => new OrderAcknowledgementReviewModel(item),\n ) ?? [];\n\n this.projectProcurementTypes =\n data.projectProcurementTypes?.map((item) => new IdNameModel(item)) ?? [];\n\n this.projectClassifications =\n data.projectClassifications?.map((item) => new IdNameModel(item)) ?? [];\n\n this.projectTypeSupplies =\n data.projectTypeSupplies?.map((item) => new IdNameModel(item)) ?? [];\n\n this.projectStatuses =\n data.projectStatuses?.map((item) => new EntityStatusModel(item)) ?? [];\n\n this.projectInExecutionSubstatuses =\n data.projectInExecutionSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n this.requestForRequestForQuotationStatuses =\n data.requestForRequestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.templateRequestForRequestForQuotationStatuses =\n data.templateRequestForRequestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.categoryStatuses =\n data.categoryStatuses?.map((item) => new EntityStatusModel(item)) ?? [];\n\n this.requestForQuotationStatuses =\n data.requestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.quotationStatuses =\n data.quotationStatuses?.map((item) => new EntityStatusModel(item)) ?? [];\n\n this.purchaseRequisitionStatuses =\n data.purchaseRequisitionStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.contractualMilestones =\n data.contractualMilestones?.map(\n (item) => new ContractualMilestoneModel(item),\n ) ?? [];\n\n this.contractualMilestoneStatuses =\n data.contractualMilestoneStatuses?.map(\n (item) => new ContractualMilestoneStatusModel(item),\n ) ?? [];\n\n this.supplierTypes =\n data.supplierTypes?.map((item) => new SupplierTypeModel(item)) ?? [];\n\n this.requestForRequestForQuotationClassifications =\n data.requestForRequestForQuotationClassifications?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n this.requestForRequestForQuotationSubstatuses =\n data.requestForRequestForQuotationSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n this.quotationSubstatuses =\n data.quotationSubstatuses?.map((item) => new IdNameModel(item)) ?? [];\n\n this.requestForQuotationSubstatuses =\n data.requestForQuotationSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n if (data.requirementFields) {\n this.requirementFields = data.requirementFields;\n }\n\n this.notificationReminderExecutionPeriod =\n data.notificationReminderExecutionPeriod?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n this.categoryDimensionTaskStatuses =\n data.categoryDimensionTaskStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.strategyDimensionLevers =\n data.strategyDimensionLevers?.map(\n (item) => new IdNameDescriptionModel(item),\n ) ?? [];\n\n this.mdfCodes =\n data.mdfCodes?.map((item) => new IdNameCodeModel(item)) ?? [];\n\n this.defaultDimensions =\n data.defaultDimensions?.map(\n (item) => new DefaultCriteriaDimensionModel(item),\n ) ?? [];\n\n this.resourceVariables =\n data.resourceVariables?.map((item) => new ResourceVariablesModel(item)) ??\n [];\n\n this.supplierEvaluationEvaluatorRoles =\n data.supplierEvaluationEvaluatorRoles?.map(\n (item) => new IdNameModel(item),\n ) ?? [];\n\n this.supplierPerformanceEvaluationStatuses =\n data.supplierPerformanceEvaluationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.projectSupplierPerformanceEvaluationStatuses =\n data.projectSupplierPerformanceEvaluationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) ?? [];\n\n this.invalidFileExtensions = data.invalidFileExtensions ?? [];\n this.invalidMimeTypes = data.invalidMimeTypes ?? [];\n }\n}\n","import { ResourceResponse } from '../types/resource-response.type';\nimport { ResourceLinkSlimModel } from './resource-link-slim.model';\n\nexport class ResourceResponseModel implements ResourceResponse {\n readonly resourceLinks: ResourceLinkSlimModel[] | null = null;\n\n constructor(data: ResourceResponse) {\n if (data.resourceLinks) {\n this.resourceLinks = data.resourceLinks.map(\n (item) => new ResourceLinkSlimModel(item),\n );\n }\n }\n}\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst ContractualMilestone = IdName;\n\ntype ContractualMilestone = t.TypeOf;\nexport { ContractualMilestone };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst ContractualMilestoneStatus = IdName;\n\ntype ContractualMilestoneStatus = t.TypeOf;\nexport { ContractualMilestoneStatus };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst CostAllocation = IdName;\n\ntype CostAllocation = t.TypeOf;\nexport { CostAllocation };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst DeliveryDestination = IdName;\n\ntype DeliveryDestination = t.TypeOf;\nexport { DeliveryDestination };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst IdNameDescription = t.type(\n {\n id: t.number,\n name: nullable(t.string),\n description: nullable(t.string),\n },\n 'IdNameDescription',\n);\n\ntype IdNameDescription = t.TypeOf;\nexport { IdNameDescription };\n","import * as t from 'io-ts';\nimport { StringOrderedValue } from './string-ordered-value.type';\n\nconst OfferedLeadTime = StringOrderedValue;\n\ntype OfferedLeadTime = t.TypeOf;\nexport { OfferedLeadTime };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst StringOrderedValue = t.type(\n {\n orderIndex: t.number,\n value: nullable(t.string),\n },\n 'StringOrderedValue',\n);\n\ntype StringOrderedValue = t.TypeOf;\nexport { StringOrderedValue };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst OrderAcknowledgementReview = IdName;\n\ntype OrderAcknowledgementReview = t.TypeOf;\nexport { OrderAcknowledgementReview };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst SupplierSendType = IdName;\n\ntype SupplierSendType = t.TypeOf;\nexport { SupplierSendType };\n","import * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst SupplierType = IdName;\n\ntype SupplierType = t.TypeOf;\nexport { SupplierType };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { IdName } from './id-name.type';\nimport { TermsAndConditions } from './terms-and-conditions.type';\n\nconst TermsAndConditionsCategory = t.intersection(\n [\n IdName,\n t.type({\n termsAndConditions: nullable(t.array(TermsAndConditions)),\n }),\n ],\n 'TermsAndConditionsCategory',\n);\n\ntype TermsAndConditionsCategory = t.TypeOf;\nexport { TermsAndConditionsCategory };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { ContractualMilestone } from '../contractual-milestone';\nimport { ContractualMilestoneStatus } from '../contractual-milestone-status';\nimport { CostAllocation } from '../cost-allocation.type';\nimport { DefaultCriteriaDimension } from '../default-criteria-dimension.type';\nimport { DeliveryDestination } from '../delivery-destination.type';\nimport { EntityStatus } from '../entity-status.type';\nimport { IdNameCode } from '../id-name-code.type';\nimport { IdNameDescription } from '../id-name-description.type';\nimport { IdName } from '../id-name.type';\nimport { ResourceVariables } from '../management/resources/resource-variables.type';\nimport { OfferedLeadTime } from '../offered-lead-time.type';\nimport { OrderAcknowledgementReview } from '../order-acknowledgement-review.type';\nimport { RequirementFields } from '../requirements-fields.type';\nimport { SupplierSendType } from '../supplier-send-type.type';\nimport { SupplierType } from '../supplier-type.type';\nimport { TermsAndConditionsCategory } from '../terms-and-conditions-category.type';\n\nconst LookupDataResponse = t.type(\n {\n eTag: t.string,\n countries: nullable(t.array(IdNameCode)),\n currencies: nullable(t.array(IdNameCode)),\n incotermsTypes: nullable(t.array(IdNameCode)),\n paymentTerms: nullable(t.array(IdName)),\n termsAndConditionCategories: nullable(t.array(TermsAndConditionsCategory)),\n wbsCodes: nullable(t.array(IdName)),\n offeredLeadTimes: nullable(t.array(OfferedLeadTime)),\n deliveryDestinationTypes: nullable(t.array(DeliveryDestination)),\n furtherDeliveryDestinationTypes: nullable(t.array(DeliveryDestination)),\n costAllocationTypes: nullable(t.array(CostAllocation)),\n supplierSendTypes: nullable(t.array(SupplierSendType)),\n orderAcknowledgementReviews: nullable(t.array(OrderAcknowledgementReview)),\n projectProcurementTypes: nullable(t.array(IdName)),\n projectClassifications: nullable(t.array(IdName)),\n projectTypeSupplies: nullable(t.array(IdName)),\n projectStatuses: nullable(t.array(EntityStatus)),\n projectInExecutionSubstatuses: nullable(t.array(IdName)),\n requestForRequestForQuotationStatuses: nullable(t.array(EntityStatus)),\n templateRequestForRequestForQuotationStatuses: nullable(\n t.array(EntityStatus),\n ),\n categoryStatuses: nullable(t.array(EntityStatus)),\n requestForQuotationStatuses: nullable(t.array(EntityStatus)),\n quotationStatuses: nullable(t.array(EntityStatus)),\n purchaseRequisitionStatuses: nullable(t.array(EntityStatus)),\n contractualMilestones: nullable(t.array(ContractualMilestone)),\n contractualMilestoneStatuses: nullable(t.array(ContractualMilestoneStatus)),\n supplierTypes: nullable(t.array(SupplierType)),\n requestForRequestForQuotationClassifications: nullable(t.array(IdName)),\n requestForRequestForQuotationSubstatuses: nullable(t.array(IdName)),\n quotationSubstatuses: nullable(t.array(IdName)),\n requestForQuotationSubstatuses: nullable(t.array(IdName)),\n requirementFields: nullable(RequirementFields),\n notificationReminderExecutionPeriod: nullable(t.array(IdName)),\n categoryDimensionTaskStatuses: nullable(t.array(EntityStatus)),\n strategyDimensionLevers: nullable(t.array(IdNameDescription)),\n mdfCodes: nullable(t.array(IdNameCode)),\n defaultDimensions: nullable(t.array(DefaultCriteriaDimension)),\n resourceVariables: nullable(t.array(ResourceVariables)),\n supplierEvaluationEvaluatorRoles: nullable(t.array(IdName)),\n supplierPerformanceEvaluationStatuses: nullable(t.array(EntityStatus)),\n projectSupplierPerformanceEvaluationStatuses: nullable(\n t.array(EntityStatus),\n ),\n invalidFileExtensions: nullable(t.array(t.string)),\n invalidMimeTypes: nullable(t.array(t.string)),\n },\n 'LookupDataResponse',\n);\n\ntype LookupDataResponse = t.TypeOf;\nexport { LookupDataResponse };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst ResourceLinkSlim = t.type(\n {\n id: t.number,\n name: nullable(t.string),\n url: nullable(t.string),\n description: nullable(t.string),\n isDocument: nullable(t.boolean),\n icon: nullable(t.string),\n },\n 'ResourceLinkSlim',\n);\n\ntype ResourceLinkSlim = t.TypeOf;\nexport { ResourceLinkSlim };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { ResourceLinkSlim } from './resource-link-slim.type';\n\nconst ResourceResponse = t.type(\n {\n resourceLinks: nullable(t.array(ResourceLinkSlim)),\n },\n 'ResourceResponse',\n);\n\ntype ResourceResponse = t.TypeOf;\nexport { ResourceResponse };\n","import { ApiService, CustomHttpParams, nullable } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport {\n array as ioArray,\n number as ioNumber,\n record as ioRecord,\n string as ioString,\n} from 'io-ts';\nimport { LookupDataResponseModel } from '../models/lookup/lookup-data-response.model';\nimport { MdfCodeModel } from '../models/mdf-code.model';\nimport { ResourceLinkSlimModel } from '../models/resource-link-slim.model';\nimport { ResourceResponseModel } from '../models/resource-response.model';\nimport { LookupDataResponse } from '../types/lookup/lookup-data-response.type';\nimport { MdfCode } from '../types/mdf-code.type';\nimport { ResourceLinkSlim } from '../types/resource-link-slim.type';\nimport { ResourceResponse } from '../types/resource-response.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LookupDataApiService extends ApiService {\n /**\n * Retrieves all required base data.\n */\n async getBaseData(): Promise {\n try {\n const response = await this.get(\n 'Organisation/Lookup',\n LookupDataResponse,\n );\n\n return response != null ? new LookupDataResponseModel(response) : null;\n } catch (error) {\n return this.catchError(error, 'There was an issue retrieving base data.');\n }\n }\n\n /**\n * Retrieves the latest eTag for base lookup data.\n */\n async getETag(): Promise {\n try {\n return await this.get('Organisation/Lookup/ETag', ioString);\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the base data eTag.',\n );\n }\n }\n\n async getMenu(): Promise {\n try {\n const response = await this.get(\n 'Organisation/Lookup/Menu',\n ResourceResponse,\n );\n\n return response != null ? new ResourceResponseModel(response) : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the menu items.',\n );\n }\n }\n\n async getTSP(): Promise {\n try {\n const response = await this.get(\n 'Organisation/Lookup/TSP',\n nullable(ResourceLinkSlim),\n );\n\n return response != null ? new ResourceLinkSlimModel(response) : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the TSP link.',\n );\n }\n }\n\n async getSupportLink(): Promise {\n try {\n const response = await this.get(\n 'Organisation/Lookup/SupportLink',\n nullable(ResourceLinkSlim),\n );\n\n return response != null ? new ResourceLinkSlimModel(response) : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the support link.',\n );\n }\n }\n\n async getMdfCodes(): Promise {\n try {\n const response = await this.get(\n 'Organisation/Lookup/MdfCodes',\n ioArray(MdfCode),\n );\n\n return response != null\n ? response.map((item) => new MdfCodeModel(item))\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the MDF codes.',\n );\n }\n }\n\n async getExchangeRate(\n baseId: number,\n quoteId: number,\n ): Promise {\n const params = new CustomHttpParams({\n baseCurrencyId: baseId,\n quoteCurrencyId: quoteId,\n });\n\n try {\n return await this.get(\n 'Organisation/Lookup/Currency/Exchange',\n ioNumber,\n params,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the currency exchange rate.',\n );\n }\n }\n\n async getExchangeRates(\n quoteCurrencyId: number,\n ): Promise | null> {\n try {\n return await this.get>(\n `Organisation/Lookup/Currency/Exchange/${quoteCurrencyId}`,\n ioRecord(ioString, ioNumber),\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the currency exchange rates.',\n );\n }\n }\n}\n","import { GlobalNotificationResponse } from '../types/global-notification-response.type';\nimport { ApplicationNotificationModel } from './application-notification.model';\n\nexport class GlobalNotificationResponseModel\n implements GlobalNotificationResponse\n{\n readonly globalNotification: ApplicationNotificationModel | null;\n readonly privacyNotification: ApplicationNotificationModel;\n\n constructor(data: GlobalNotificationResponse) {\n this.globalNotification = data.globalNotification\n ? new ApplicationNotificationModel(data.globalNotification)\n : null;\n\n this.privacyNotification = new ApplicationNotificationModel(\n data.privacyNotification,\n );\n }\n}\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { ApplicationNotification } from './application-notification.type';\n\nconst GlobalNotificationResponse = t.type(\n {\n globalNotification: nullable(ApplicationNotification),\n privacyNotification: ApplicationNotification,\n },\n 'GlobalNotificationResponse',\n);\n\ntype GlobalNotificationResponse = t.TypeOf;\nexport { GlobalNotificationResponse };\n","import { ApiService } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { boolean as ioBoolean } from 'io-ts';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ApplicationNotificationModel } from '../models/application-notification.model';\nimport { GlobalNotificationResponseModel } from '../models/global-notification-response.model';\nimport { ApplicationNotification } from '../types/application-notification.type';\nimport { GlobalNotificationResponse } from '../types/global-notification-response.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationApiService extends ApiService {\n getNotification$(): Observable {\n return this.get$(\n 'Notification/Admin',\n ApplicationNotification,\n ).pipe(\n this.catchError$('There was an issue retrieving notifications.'),\n map((response) =>\n response != null ? new ApplicationNotificationModel(response) : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n getApplicationNotifications$(): Observable {\n return this.get$(\n 'Notification',\n GlobalNotificationResponse,\n ).pipe(\n this.catchError$('There was an error retrieving notifications'),\n map((response) =>\n response != null ? new GlobalNotificationResponseModel(response) : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n confirmNotification$(notificationId: string): Observable {\n return this.put$(\n `Notification/${notificationId}/Confirm`,\n ioBoolean,\n ).pipe(\n this.catchError$('There was an issue with confirming the notification'),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","import { UserAssignment } from '../types/user-assignment.type';\nimport { GuidNameCodeModel } from './guid-name-code.model';\nimport { UserSlimModel } from './user-slim.model';\n\nexport class UserAssignmentModel implements UserAssignment {\n readonly unit: GuidNameCodeModel | null = null;\n readonly managers: UserSlimModel[] | null = null;\n\n constructor(userAssignment: UserAssignment) {\n if (userAssignment.unit) {\n this.unit = new GuidNameCodeModel(userAssignment.unit);\n }\n\n if (userAssignment.managers) {\n this.managers = userAssignment.managers.map(\n (manager) => new UserSlimModel(manager),\n );\n }\n }\n}\n","import { AdditionalInfo } from '../types/additional-info.type';\nimport { UserAssignmentModel } from './user-assignment.model';\n\nexport class AdditionalInfoModel implements AdditionalInfo {\n readonly localDivisionAssignments: UserAssignmentModel[] | null = null;\n readonly localDivisionManagerAssignments: UserAssignmentModel[] | null = null;\n readonly hubManagerAssignments: UserAssignmentModel[] | null = null;\n readonly divisionManagerAssignments: UserAssignmentModel[] | null = null;\n\n constructor(additionalInfo: AdditionalInfo) {\n if (additionalInfo.localDivisionAssignments) {\n this.localDivisionAssignments =\n additionalInfo.localDivisionAssignments.map(\n (assignment) => new UserAssignmentModel(assignment),\n );\n }\n\n if (additionalInfo.localDivisionManagerAssignments) {\n this.localDivisionManagerAssignments =\n additionalInfo.localDivisionManagerAssignments.map(\n (assignment) => new UserAssignmentModel(assignment),\n );\n }\n\n if (additionalInfo.hubManagerAssignments) {\n this.hubManagerAssignments = additionalInfo.hubManagerAssignments.map(\n (assignment) => new UserAssignmentModel(assignment),\n );\n }\n\n if (additionalInfo.divisionManagerAssignments) {\n this.divisionManagerAssignments =\n additionalInfo.divisionManagerAssignments.map(\n (assignment) => new UserAssignmentModel(assignment),\n );\n }\n }\n}\n","import { OrganisationReview } from '../types/organisation-review.type';\nimport { EntityStatusModel } from './entity-status.model';\nimport { GuidNameCodeModel } from './guid-name-code.model';\n\nexport class OrganisationReviewModel implements OrganisationReview {\n readonly reviewStatus: EntityStatusModel | null = null;\n readonly reviewed: Date | null = null;\n readonly nextReview: Date | null = null;\n readonly unit: GuidNameCodeModel | null = null;\n\n constructor(organisationReview: OrganisationReview) {\n if (organisationReview.reviewStatus) {\n this.reviewStatus = new EntityStatusModel(\n organisationReview.reviewStatus,\n );\n }\n\n if (organisationReview.reviewed) {\n this.reviewed = organisationReview.reviewed;\n }\n\n if (organisationReview.nextReview) {\n this.nextReview = organisationReview.nextReview;\n }\n\n if (organisationReview.unit) {\n this.unit = new GuidNameCodeModel(organisationReview.unit);\n }\n }\n}\n","import { UserLocalDivision } from '../types/user-local-division.type';\nimport { BaseModel } from './base.model';\nimport { EntityStatusModel } from './entity-status.model';\nimport { GuidNameCodeModel } from './guid-name-code.model';\nimport { IdNameModel } from './id-name.model';\n\nexport class UserLocalDivisionModel\n extends BaseModel\n implements UserLocalDivision\n{\n readonly unit: GuidNameCodeModel;\n readonly role: IdNameModel;\n readonly reviewStatus: EntityStatusModel | null = null;\n readonly reviewed: Date | null = null;\n readonly nextReview: Date | null = null;\n\n constructor(data: UserLocalDivision) {\n super();\n\n this.unit = new GuidNameCodeModel(data.unit);\n this.role = new IdNameModel(data.role);\n\n if (data.reviewStatus) {\n this.reviewStatus = new EntityStatusModel(data.reviewStatus);\n }\n\n if (data.reviewed) {\n this.reviewed = data.reviewed;\n }\n\n if (data.nextReview) {\n this.nextReview = data.nextReview;\n }\n }\n}\n","import { UserDetails } from '../types/user-details.type';\nimport { GuidNameModel } from './guid-name.model';\nimport { OrganisationReviewModel } from './organisation-review.model';\nimport { UserLocalDivisionModel } from './user-local-division.model';\nimport { UserModel } from './user.model';\n\nexport class UserDetailsModel extends UserModel implements UserDetails {\n readonly firstName: string | null;\n readonly lastName: string | null;\n readonly company: string | null;\n readonly department: string | null;\n readonly telephone: string | null;\n readonly mobile: string | null;\n readonly permissions: GuidNameModel[] | null = null;\n readonly assignments: UserLocalDivisionModel[] | null = null;\n readonly divisionManagers: OrganisationReviewModel[] | null = null;\n readonly hubManagers: OrganisationReviewModel[] | null = null;\n readonly localDivisionManagers: OrganisationReviewModel[] | null = null;\n\n constructor(userDetails: UserDetails) {\n super(userDetails);\n\n this.firstName = userDetails.firstName;\n this.lastName = userDetails.lastName;\n this.company = userDetails.company;\n this.department = userDetails.department;\n this.telephone = userDetails.telephone;\n this.mobile = userDetails.mobile;\n\n if (userDetails.assignments) {\n this.assignments = userDetails.assignments.map(\n (item) => new UserLocalDivisionModel(item),\n );\n }\n\n if (userDetails.permissions) {\n this.permissions = userDetails.permissions.map(\n (item) => new GuidNameModel(item),\n );\n }\n\n if (userDetails.divisionManagers) {\n this.divisionManagers = userDetails.divisionManagers.map(\n (item) => new OrganisationReviewModel(item),\n );\n }\n\n if (userDetails.hubManagers) {\n this.hubManagers = userDetails.hubManagers.map(\n (item) => new OrganisationReviewModel(item),\n );\n }\n\n if (userDetails.localDivisionManagers) {\n this.localDivisionManagers = userDetails.localDivisionManagers.map(\n (item) => new OrganisationReviewModel(item),\n );\n }\n }\n}\n","import { DateString, nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { EntityStatus } from './entity-status.type';\nimport { GuidNameCode } from './guid-name-code.type';\n\nconst OrganisationReview = t.type(\n {\n unit: nullable(GuidNameCode),\n reviewStatus: nullable(EntityStatus),\n reviewed: nullable(DateString),\n nextReview: nullable(DateString),\n },\n 'OrganisationReview',\n);\n\ntype OrganisationReview = t.TypeOf;\nexport { OrganisationReview };\n","import { DateString, nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { EntityStatus } from './entity-status.type';\nimport { GuidNameCode } from './guid-name-code.type';\nimport { IdName } from './id-name.type';\n\nconst UserLocalDivision = t.type(\n {\n unit: GuidNameCode,\n role: IdName,\n reviewStatus: nullable(EntityStatus),\n reviewed: nullable(DateString),\n nextReview: nullable(DateString),\n },\n 'UserLocalDivision',\n);\n\ntype UserLocalDivision = t.TypeOf;\nexport { UserLocalDivision };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { GuidName } from './guid-name.type';\nimport { OrganisationReview } from './organisation-review.type';\nimport { UserLocalDivision } from './user-local-division.type';\nimport { User } from './user.type';\n\nconst UserDetails = t.intersection(\n [\n User,\n t.type({\n firstName: nullable(t.string),\n lastName: nullable(t.string),\n company: nullable(t.string),\n department: nullable(t.string),\n telephone: nullable(t.string),\n mobile: nullable(t.string),\n avatarUrl: nullable(t.string),\n permissions: nullable(t.array(GuidName)),\n assignments: nullable(t.array(UserLocalDivision)),\n divisionManagers: nullable(t.array(OrganisationReview)),\n hubManagers: nullable(t.array(OrganisationReview)),\n localDivisionManagers: nullable(t.array(OrganisationReview)),\n }),\n ],\n 'UserDetails',\n);\n\ntype UserDetails = t.TypeOf;\nexport { UserDetails };\n","import { ApiService, CustomHttpParams } from '@abb-procure/api';\nimport { CustomHttpErrorResponse } from '@abb-procure/error-handling';\nimport { Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { array as ioArray, boolean as ioBoolean } from 'io-ts';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AdditionalInfoModel } from '../models/additional-info.model';\nimport { CurrentUserModel } from '../models/current-user.model';\nimport { PeoplePickerUserModel } from '../models/people-picker-user.model';\nimport { UserDetailsModel } from '../models/user-details.model';\nimport { UserState } from '../state/user.state';\nimport { CurrentUser } from '../types/current-user.type';\nimport { PeoplePickerUser } from '../types/people-picker-user.type';\nimport { UserDetails } from '../types/user-details.type';\nimport { User } from '../types/user.type';\nimport { UsersRequest } from '../types/users-request.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserApiService extends ApiService {\n private readonly userState = inject(UserState);\n\n /**\n * Retrieves the collection of dashboard items.\n */\n getUsers$(usersRequest: UsersRequest): Observable {\n const queryParams = new CustomHttpParams(usersRequest);\n\n return this.get$(\n 'User/Search',\n ioArray(PeoplePickerUser),\n queryParams,\n ).pipe(\n map((response) =>\n response != null\n ? response.map((user) => new PeoplePickerUserModel(user))\n : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n getUser$(userId?: number): Observable {\n const queryParams = new CustomHttpParams(\n userId\n ? {\n userId,\n }\n : {},\n );\n\n return this.get$('User', User, queryParams).pipe(\n catchError((error: unknown) => {\n if (error instanceof CustomHttpErrorResponse && error.status === 401) {\n this.userState.setForbidden(true);\n\n if (error.error.additionalInfo) {\n this.userState.setAdditionalInfo(\n new AdditionalInfoModel(error.error.additionalInfo),\n );\n }\n\n if (error.error.message) {\n this.userState.setAdditionalInfoMessage(error.error.message);\n }\n\n return of(null);\n }\n\n this.errorHandlerService.handleError(error, {\n text: 'There was an issue retrieving the user data.',\n });\n\n return of(null);\n }),\n map((response) =>\n response != null ? new CurrentUserModel(response) : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n getUserDetails$(userId?: number): Observable {\n const queryParams = new CustomHttpParams(\n userId\n ? {\n userId,\n }\n : {},\n );\n\n return this.get$(\n 'User/Details',\n UserDetails,\n queryParams,\n ).pipe(\n this.catchError$('There was an issue retrieving the user data.'),\n map((response) =>\n response != null ? new UserDetailsModel(response) : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n confirmUserTour$(tour: string): Observable {\n const params = new CustomHttpParams({\n tourId: tour,\n });\n\n return this.put$(\n 'User/Tour/Confirm',\n CurrentUser,\n null,\n params,\n ).pipe(\n this.catchError$('There was an issue marking the tour as completed.'),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n completeUserTour$(tour: string): Observable {\n const params = new CustomHttpParams({\n tourId: tour,\n });\n\n return this.put$(\n 'User/Tour/Complete',\n CurrentUser,\n null,\n params,\n ).pipe(\n this.catchError$('There was an issue marking the tour as completed.'),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n async checkUserSession(): Promise {\n try {\n return this.get('Session/Check', ioBoolean);\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while retrieving the hubs.',\n );\n }\n }\n}\n","import { FILE_EXTENSION_BLACKLIST } from '@abb-procure/constants';\nimport { Injectable, computed, inject, signal } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\nimport { ContractualMilestoneStatusModel } from '../models/contractual-milestone-status.model';\nimport { ContractualMilestoneModel } from '../models/contractual-milestone.model';\nimport { CostAllocationModel } from '../models/cost-allocation.model';\nimport { DefaultCriteriaDimensionModel } from '../models/default-criteria-dimension.model';\nimport { DeliveryDestinationModel } from '../models/delivery-destination.model';\nimport { EntityStatusModel } from '../models/entity-status.model';\nimport { IdNameCodeModel } from '../models/id-name-code.model';\nimport { IdNameDescriptionModel } from '../models/id-name-description.model';\nimport { IdNameModel } from '../models/id-name.model';\nimport { ResourceVariablesModel } from '../models/management/resources/resource-variables.model';\nimport { OfferedLeadTimeModel } from '../models/offered-lead-time.model';\nimport { OrderAcknowledgementReviewModel } from '../models/order-acknowledgement-review.model';\nimport { ResourceLinkSlimModel } from '../models/resource-link-slim.model';\nimport { SupplierSendTypeModel } from '../models/supplier-send-type.model';\nimport { TermsAndConditionsCategoryModel } from '../models/terms-and-conditions-category.model';\nimport { LookupDataApiService } from '../services/lookup-data-api.service';\nimport { RequirementFields } from '../types/requirements-fields.type';\nimport { StateStorage, StorageStrategy } from '../utils/state-storage.util';\n\nexport interface LookupDataStateShape {\n eTag: string;\n menu: ResourceLinkSlimModel[];\n countries: IdNameCodeModel[];\n currencies: IdNameCodeModel[];\n incotermsTypes: IdNameCodeModel[];\n paymentTerms: IdNameModel[];\n termsAndConditionCategories: TermsAndConditionsCategoryModel[];\n wbsCodes: IdNameModel[];\n offeredLeadTimes: OfferedLeadTimeModel[];\n deliveryDestinationTypes: DeliveryDestinationModel[];\n furtherDeliveryDestinationTypes: DeliveryDestinationModel[];\n costAllocationTypes: CostAllocationModel[];\n supplierSendTypes: SupplierSendTypeModel[];\n projectProcurementTypes: IdNameModel[];\n projectClassifications: IdNameModel[];\n projectTypeSupplies: IdNameModel[];\n projectStatuses: EntityStatusModel[];\n projectInExecutionSubstatuses: IdNameModel[];\n requestForRequestForQuotationStatuses: EntityStatusModel[];\n requestForQuotationStatuses: EntityStatusModel[];\n purchaseRequisitionStatuses: EntityStatusModel[];\n quotationStatuses: IdNameModel[];\n orderAcknowledgementReviews: OrderAcknowledgementReviewModel[];\n contractualMilestones: ContractualMilestoneModel[];\n contractualMilestoneStatuses: ContractualMilestoneStatusModel[];\n supplierTypes: SupplierSendTypeModel[];\n requestForRequestForQuotationClassifications: IdNameModel[];\n requestForRequestForQuotationSubstatuses: IdNameModel[];\n quotationSubstatuses: IdNameModel[];\n requestForQuotationSubstatuses: IdNameModel[];\n templateRequestForRequestForQuotationStatuses: EntityStatusModel[];\n categoryStatuses: EntityStatusModel[];\n requirementFields: RequirementFields;\n notificationReminderExecutionPeriod: IdNameModel[];\n categoryDimensionTaskStatuses: EntityStatusModel[];\n strategyDimensionLevers: IdNameDescriptionModel[];\n mdfCodes: IdNameCodeModel[];\n defaultDimensions: DefaultCriteriaDimensionModel[];\n resourceVariables: ResourceVariablesModel[];\n tsp: ResourceLinkSlimModel | null;\n gisLink: ResourceLinkSlimModel | null;\n supplierEvaluationEvaluatorRoles: IdNameModel[];\n supplierPerformanceEvaluationStatuses: EntityStatusModel[];\n projectSupplierPerformanceEvaluationStatuses: EntityStatusModel[];\n invalidFileExtensions: string[];\n invalidMimeTypes: string[];\n}\n\nconst initialState: LookupDataStateShape = {\n eTag: '',\n menu: [],\n countries: [],\n currencies: [],\n incotermsTypes: [],\n paymentTerms: [],\n termsAndConditionCategories: [],\n wbsCodes: [],\n offeredLeadTimes: [],\n deliveryDestinationTypes: [],\n furtherDeliveryDestinationTypes: [],\n costAllocationTypes: [],\n supplierSendTypes: [],\n projectProcurementTypes: [],\n projectClassifications: [],\n projectTypeSupplies: [],\n projectStatuses: [],\n projectInExecutionSubstatuses: [],\n requestForRequestForQuotationStatuses: [],\n requestForQuotationStatuses: [],\n templateRequestForRequestForQuotationStatuses: [],\n categoryStatuses: [],\n purchaseRequisitionStatuses: [],\n quotationStatuses: [],\n orderAcknowledgementReviews: [],\n contractualMilestones: [],\n contractualMilestoneStatuses: [],\n supplierTypes: [],\n requestForRequestForQuotationClassifications: [],\n requestForRequestForQuotationSubstatuses: [],\n quotationSubstatuses: [],\n requestForQuotationSubstatuses: [],\n requirementFields: { commercial: [], technical: [], logistical: [] },\n notificationReminderExecutionPeriod: [],\n categoryDimensionTaskStatuses: [],\n strategyDimensionLevers: [],\n mdfCodes: [],\n defaultDimensions: [],\n resourceVariables: [],\n tsp: null,\n gisLink: null,\n supplierEvaluationEvaluatorRoles: [],\n supplierPerformanceEvaluationStatuses: [],\n projectSupplierPerformanceEvaluationStatuses: [],\n invalidFileExtensions: FILE_EXTENSION_BLACKLIST,\n invalidMimeTypes: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LookupDataState {\n readonly eTag = computed(() => this.state().eTag);\n readonly menu = computed(() => this.state().menu, { equal: deepEqual });\n readonly tsp = computed(() => this.state().tsp, { equal: deepEqual });\n readonly gisLink = computed(() => this.state().gisLink, { equal: deepEqual });\n\n readonly countries = computed(() => this.state().countries, {\n equal: deepEqual,\n });\n\n readonly currencies = computed(() => this.state().currencies, {\n equal: deepEqual,\n });\n\n readonly incotermsTypes = computed(() => this.state().incotermsTypes, {\n equal: deepEqual,\n });\n\n readonly paymentTerms = computed(() => this.state().paymentTerms, {\n equal: deepEqual,\n });\n\n readonly strategyDimensionLevers = computed(\n () => this.state().strategyDimensionLevers,\n { equal: deepEqual },\n );\n\n readonly termsAndConditionCategories = computed(\n () => this.state().termsAndConditionCategories,\n { equal: deepEqual },\n );\n\n readonly wbsCodes = computed(() => this.state().wbsCodes, {\n equal: deepEqual,\n });\n\n readonly offeredLeadTimes = computed(() => this.state().offeredLeadTimes, {\n equal: deepEqual,\n });\n\n readonly deliveryDestinationTypes = computed(\n () => this.state().deliveryDestinationTypes,\n { equal: deepEqual },\n );\n\n readonly furtherDeliveryDestinationTypes = computed(\n () => this.state().furtherDeliveryDestinationTypes,\n { equal: deepEqual },\n );\n\n readonly costAllocationTypes = computed(\n () => this.state().costAllocationTypes,\n { equal: deepEqual },\n );\n\n readonly supplierSendTypes = computed(() => this.state().supplierSendTypes, {\n equal: deepEqual,\n });\n\n readonly projectProcurementTypes = computed(\n () => this.state().projectProcurementTypes,\n { equal: deepEqual },\n );\n\n readonly projectClassifications = computed(\n () => this.state().projectClassifications,\n { equal: deepEqual },\n );\n\n readonly projectTypeSupplies = computed(\n () => this.state().projectTypeSupplies,\n { equal: deepEqual },\n );\n\n readonly projectStatuses = computed(() => this.state().projectStatuses, {\n equal: deepEqual,\n });\n\n readonly projectInExecutionSubstatuses = computed(\n () => this.state().projectInExecutionSubstatuses,\n { equal: deepEqual },\n );\n\n readonly requestForRequestForQuotationStatuses = computed(\n () => this.state().requestForRequestForQuotationStatuses,\n { equal: deepEqual },\n );\n\n readonly templateRequestForRequestForQuotationStatuses = computed(\n () => this.state().templateRequestForRequestForQuotationStatuses,\n { equal: deepEqual },\n );\n\n readonly categoryStatuses = computed(() => this.state().categoryStatuses, {\n equal: deepEqual,\n });\n\n readonly requestForQuotationStatuses = computed(\n () => this.state().requestForQuotationStatuses,\n { equal: deepEqual },\n );\n\n readonly purchaseRequisitionStatuses = computed(\n () => this.state().purchaseRequisitionStatuses,\n { equal: deepEqual },\n );\n\n readonly quotationStatuses = computed(() => this.state().quotationStatuses, {\n equal: deepEqual,\n });\n\n readonly orderAcknowledgementReviews = computed(\n () => this.state().orderAcknowledgementReviews,\n { equal: deepEqual },\n );\n\n readonly contractualMilestones = computed(\n () => this.state().contractualMilestones,\n { equal: deepEqual },\n );\n\n readonly contractualMilestoneStatuses = computed(\n () => this.state().contractualMilestoneStatuses,\n { equal: deepEqual },\n );\n\n readonly supplierTypes = computed(() => this.state().supplierTypes, {\n equal: deepEqual,\n });\n\n readonly requestForRequestForQuotationClassifications = computed(\n () => this.state().requestForRequestForQuotationClassifications,\n { equal: deepEqual },\n );\n\n readonly requestForRequestForQuotationSubstatuses = computed(\n () => this.state().requestForRequestForQuotationSubstatuses,\n { equal: deepEqual },\n );\n\n readonly quotationSubstatuses = computed(\n () => this.state().quotationSubstatuses,\n { equal: deepEqual },\n );\n\n readonly requestForQuotationSubstatuses = computed(\n () => this.state().requestForQuotationSubstatuses,\n { equal: deepEqual },\n );\n\n readonly requirementFields = computed(() => this.state().requirementFields, {\n equal: deepEqual,\n });\n\n readonly notificationReminderExecutionPeriod = computed(\n () => this.state().notificationReminderExecutionPeriod,\n { equal: deepEqual },\n );\n\n readonly categoryDimensionTaskStatuses = computed(\n () => this.state().categoryDimensionTaskStatuses,\n { equal: deepEqual },\n );\n\n readonly mdfCodes = computed(() => this.state().mdfCodes, {\n equal: deepEqual,\n });\n\n readonly defaultDimensions = computed(() => this.state().defaultDimensions, {\n equal: deepEqual,\n });\n\n readonly resourceVariables = computed(() => this.state().resourceVariables, {\n equal: deepEqual,\n });\n\n readonly defaultBiddingRules = computed(\n () =>\n this.resourceVariables().find(\n (item) => item.uniqueCode === 'DefaultBiddingRules',\n )?.value ?? '',\n );\n\n readonly supplierEvaluationEvaluatorRoles = computed(\n () => this.state().supplierEvaluationEvaluatorRoles,\n { equal: deepEqual },\n );\n\n readonly supplierPerformanceEvaluationStatuses = computed(\n () => this.state().supplierPerformanceEvaluationStatuses,\n { equal: deepEqual },\n );\n\n readonly projectSupplierPerformanceEvaluationStatuses = computed(\n () => this.state().projectSupplierPerformanceEvaluationStatuses,\n { equal: deepEqual },\n );\n\n readonly invalidFileExtensions = computed(\n () => this.state().invalidFileExtensions,\n { equal: deepEqual },\n );\n\n readonly invalidMimeTypes = computed(() => this.state().invalidMimeTypes, {\n equal: deepEqual,\n });\n\n private readonly state = signal({ ...initialState });\n private readonly lookupDataApiService = inject(LookupDataApiService);\n\n constructor() {\n StateStorage.init(\n this.state,\n 'lookupData',\n StorageStrategy.LocalStorage,\n this.afterDeserialize,\n );\n }\n\n async fetchETag(): Promise {\n const response = await this.lookupDataApiService.getETag();\n\n if (this.eTag() === response) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n eTag: response ?? '',\n }));\n\n this.fetchLookupData();\n }\n\n async fetchMenu(): Promise {\n const response = await this.lookupDataApiService.getMenu();\n\n if (!response?.resourceLinks) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n menu: response.resourceLinks ?? [],\n }));\n }\n\n async fetchTSP(): Promise {\n const response = await this.lookupDataApiService.getTSP();\n\n if (!response) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n tsp: response ?? null,\n }));\n }\n\n async fetchSupportLink(): Promise {\n const response = await this.lookupDataApiService.getSupportLink();\n\n if (!response) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n gisLink: response ?? null,\n }));\n }\n\n // eslint-disable-next-line max-lines-per-function\n async fetchLookupData(): Promise {\n const response = await this.lookupDataApiService.getBaseData();\n\n if (!response) {\n return;\n }\n\n // eslint-disable-next-line max-lines-per-function\n this.state.update((state) => ({\n ...state,\n eTag: response.eTag,\n countries: response.countries,\n currencies: response.currencies,\n incotermsTypes: response.incotermsTypes,\n paymentTerms: response.paymentTerms,\n termsAndConditionCategories: response.termsAndConditionCategories,\n wbsCodes: response.wbsCodes,\n offeredLeadTimes: response.offeredLeadTimes,\n deliveryDestinationTypes: response.deliveryDestinationTypes,\n furtherDeliveryDestinationTypes: response.furtherDeliveryDestinationTypes,\n costAllocationTypes: response.costAllocationTypes,\n supplierSendTypes: response.supplierSendTypes,\n projectProcurementTypes: response.projectProcurementTypes,\n projectClassifications: response.projectClassifications,\n projectTypeSupplies: response.projectTypeSupplies,\n projectStatuses: response.projectStatuses,\n projectInExecutionSubstatuses: response.projectInExecutionSubstatuses,\n requestForRequestForQuotationStatuses:\n response.requestForRequestForQuotationStatuses,\n requestForQuotationStatuses: response.requestForQuotationStatuses,\n templateRequestForRequestForQuotationStatuses:\n response.templateRequestForRequestForQuotationStatuses,\n categoryStatuses: response.categoryStatuses,\n purchaseRequisitionStatuses: response.purchaseRequisitionStatuses,\n quotationStatuses: response.quotationStatuses,\n orderAcknowledgementReviews: response.orderAcknowledgementReviews,\n contractualMilestones: response.contractualMilestones,\n contractualMilestoneStatuses: response.contractualMilestoneStatuses,\n supplierTypes: response.supplierTypes,\n requestForRequestForQuotationClassifications:\n response.requestForRequestForQuotationClassifications,\n requestForRequestForQuotationSubstatuses:\n response.requestForRequestForQuotationSubstatuses,\n quotationSubstatuses: response.quotationSubstatuses,\n requestForQuotationSubstatuses: response.requestForQuotationSubstatuses,\n requirementFields: response.requirementFields,\n notificationReminderExecutionPeriod:\n response.notificationReminderExecutionPeriod,\n categoryDimensionTaskStatuses: response.categoryDimensionTaskStatuses,\n strategyDimensionLevers: response.strategyDimensionLevers,\n mdfCodes: response.mdfCodes,\n defaultDimensions: response.defaultDimensions,\n resourceVariables: response.resourceVariables,\n supplierEvaluationEvaluatorRoles:\n response.supplierEvaluationEvaluatorRoles,\n supplierPerformanceEvaluationStatuses:\n response.supplierPerformanceEvaluationStatuses,\n projectSupplierPerformanceEvaluationStatuses:\n response.projectSupplierPerformanceEvaluationStatuses,\n invalidFileExtensions: response.invalidFileExtensions,\n invalidMimeTypes: response.invalidMimeTypes,\n }));\n }\n\n // eslint-disable-next-line complexity, max-lines-per-function\n private afterDeserialize(data: LookupDataStateShape): LookupDataStateShape {\n return {\n eTag: data?.eTag || '',\n menu: data?.menu.map((item) => new ResourceLinkSlimModel(item)) || [],\n countries: data.countries?.map((item) => new IdNameCodeModel(item)) || [],\n currencies:\n data.currencies?.map((item) => new IdNameCodeModel(item)) || [],\n incotermsTypes:\n data.incotermsTypes?.map((item) => new IdNameCodeModel(item)) || [],\n paymentTerms:\n data.paymentTerms?.map((item) => new IdNameModel(item)) || [],\n termsAndConditionCategories:\n data.termsAndConditionCategories?.map(\n (item) => new TermsAndConditionsCategoryModel(item),\n ) || [],\n wbsCodes: data.wbsCodes?.map((item) => new IdNameModel(item)) || [],\n offeredLeadTimes:\n data.offeredLeadTimes?.map((item) => new OfferedLeadTimeModel(item)) ||\n [],\n deliveryDestinationTypes:\n data.deliveryDestinationTypes?.map(\n (item) => new DeliveryDestinationModel(item),\n ) || [],\n furtherDeliveryDestinationTypes:\n data.furtherDeliveryDestinationTypes?.map(\n (item) => new DeliveryDestinationModel(item),\n ) || [],\n costAllocationTypes:\n data.costAllocationTypes?.map(\n (item) => new CostAllocationModel(item),\n ) || [],\n supplierSendTypes:\n data.supplierSendTypes?.map(\n (item) => new SupplierSendTypeModel(item),\n ) || [],\n projectProcurementTypes:\n data.projectProcurementTypes?.map((item) => new IdNameModel(item)) ||\n [],\n projectClassifications:\n data.projectClassifications?.map((item) => new IdNameModel(item)) || [],\n projectTypeSupplies:\n data.projectTypeSupplies?.map((item) => new IdNameModel(item)) || [],\n projectStatuses:\n data.projectStatuses?.map((item) => new EntityStatusModel(item)) || [],\n projectInExecutionSubstatuses:\n data.projectInExecutionSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) || [],\n requestForRequestForQuotationStatuses:\n data.requestForRequestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n requestForQuotationStatuses:\n data.requestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n templateRequestForRequestForQuotationStatuses:\n data.templateRequestForRequestForQuotationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n categoryStatuses:\n data.categoryStatuses?.map((item) => new EntityStatusModel(item)) || [],\n purchaseRequisitionStatuses:\n data.purchaseRequisitionStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n quotationStatuses:\n data.quotationStatuses?.map((item) => new IdNameModel(item)) || [],\n orderAcknowledgementReviews:\n data.orderAcknowledgementReviews?.map(\n (item) => new OrderAcknowledgementReviewModel(item),\n ) || [],\n contractualMilestones:\n data.contractualMilestones?.map(\n (item) => new ContractualMilestoneModel(item),\n ) || [],\n contractualMilestoneStatuses:\n data.contractualMilestoneStatuses?.map(\n (item) => new ContractualMilestoneStatusModel(item),\n ) || [],\n supplierTypes:\n data.supplierTypes?.map((item) => new SupplierSendTypeModel(item)) ||\n [],\n requestForRequestForQuotationClassifications:\n data.requestForRequestForQuotationClassifications?.map(\n (item) => new IdNameModel(item),\n ) || [],\n requestForRequestForQuotationSubstatuses:\n data.requestForRequestForQuotationSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) || [],\n quotationSubstatuses:\n data.quotationSubstatuses?.map((item) => new IdNameModel(item)) || [],\n requestForQuotationSubstatuses:\n data.requestForQuotationSubstatuses?.map(\n (item) => new IdNameModel(item),\n ) || [],\n requirementFields: data.requirementFields || {\n commercial: [],\n technical: [],\n logistical: [],\n },\n notificationReminderExecutionPeriod:\n data.notificationReminderExecutionPeriod?.map(\n (item) => new IdNameModel(item),\n ) || [],\n categoryDimensionTaskStatuses:\n data.categoryDimensionTaskStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n strategyDimensionLevers:\n data.strategyDimensionLevers?.map(\n (item) => new IdNameDescriptionModel(item),\n ) || [],\n mdfCodes: data.mdfCodes?.map((item) => new IdNameCodeModel(item)) || [],\n defaultDimensions:\n data.defaultDimensions?.map(\n (item) => new DefaultCriteriaDimensionModel(item),\n ) || [],\n resourceVariables:\n data.resourceVariables?.map(\n (item) => new ResourceVariablesModel(item),\n ) || [],\n tsp: data.tsp ? new ResourceLinkSlimModel(data.tsp) : null,\n gisLink: data.gisLink ? new ResourceLinkSlimModel(data.gisLink) : null,\n supplierEvaluationEvaluatorRoles:\n data.supplierEvaluationEvaluatorRoles?.map(\n (item) => new IdNameModel(item),\n ) || [],\n supplierPerformanceEvaluationStatuses:\n data.supplierPerformanceEvaluationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n projectSupplierPerformanceEvaluationStatuses:\n data.projectSupplierPerformanceEvaluationStatuses?.map(\n (item) => new EntityStatusModel(item),\n ) || [],\n\n invalidFileExtensions: data.invalidFileExtensions,\n invalidMimeTypes: data.invalidMimeTypes,\n };\n }\n}\n","import { ApiService } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, map } from 'rxjs';\nimport { CurrentUserModel } from '../models/current-user.model';\nimport { PreferenceModel } from '../models/preference.model';\nimport { CurrentUser } from '../types/current-user.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreferencesApiService extends ApiService {\n updatePreferences$(\n request: PreferenceModel,\n ): Observable {\n return this.put$(\n 'User/Preference',\n CurrentUser,\n request,\n ).pipe(\n this.catchError$('There was an issue while updating user preferences.'),\n map((response) =>\n response != null ? new CurrentUserModel(response) : null,\n ),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n}\n","import {\n CategoryManagementColumns,\n CategoryMonitoringColumns,\n ContactsColumns,\n DEFAULT_CATEGORY_MANAGEMENT_COLUMNS,\n DEFAULT_CATEGORY_MONITORING_COLUMNS,\n DEFAULT_CONTACTS_COLUMNS,\n DEFAULT_HEATMAP_COLUMNS,\n DEFAULT_INCIDENTS_COLUMNS,\n DEFAULT_LEGAL_CONTRACTS_COLUMNS,\n DEFAULT_LOCAL_DIVISION_USERS_COLUMNS,\n DEFAULT_ORDER,\n DEFAULT_ORGANISATION_MANAGERS_COLUMNS,\n DEFAULT_QUOTATIONS_BY_STATUS_COLUMNS,\n DEFAULT_QUOTATION_REVISION_TRACKER_COMMERCIAL_REQUIREMENTS_COLUMNS,\n DEFAULT_QUOTATION_REVISION_TRACKER_INFORMATION_COLUMNS,\n DEFAULT_QUOTATION_REVISION_TRACKER_LOGISTICAL_REQUIREMENTS_COLUMNS,\n DEFAULT_QUOTATION_REVISION_TRACKER_TCO_COLUMNS,\n DEFAULT_QUOTATION_REVISION_TRACKER_TECHNICAL_REQUIREMENTS_COLUMNS,\n DEFAULT_QUOTATION_SOURCING_SCOPE_COLUMNS,\n DEFAULT_RESOURCE_CURRENCIES_COLUMNS,\n DEFAULT_RESOURCE_DOCUMENTS_COLUMNS,\n DEFAULT_RESOURCE_EXCHANGE_RATES_COLUMNS,\n DEFAULT_RESOURCE_INCOTERMS_COLUMNS,\n DEFAULT_RESOURCE_LINKS_COLUMNS,\n DEFAULT_RESOURCE_MDF_CODES_COLUMNS,\n DEFAULT_RESOURCE_PAYMENT_TERMS_COLUMNS,\n DEFAULT_RESOURCE_TERMS_AND_CONDITIONS_COLUMNS,\n DEFAULT_RESOURCE_VARIABLES_COLUMNS,\n DEFAULT_SPECIAL_CLAUSE_COLUMNS,\n DEFAULT_STRATEGY_MANAGEMENT_COLUMNS,\n DEFAULT_SUPPLIER_MANAGEMENT_COLUMNS,\n DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_COLUMNS,\n DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_HUB_COLUMNS,\n DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_LOCAL_DIVISION_COLUMNS,\n DEFAULT_SUPPLIER_STRATEGY_COLUMNS,\n DEFAULT_SUPPLIER_STRATEGY_SOURCING_EVENTS_COLUMNS,\n DEFAULT_SUPPLIER_SUPPLY_BASE_MANAGEMENT_SUPPLIER_EVALUATION_COLUMNS,\n DEFAULT_TEMPLATE_MANAGEMENT_COLUMNS,\n DEFAULT_USERS_COLUMNS,\n HeatmapColumns,\n IncidentsColumns,\n LegalContractsColumns,\n LocalDivisionUsersColumns,\n OrganisationManagersColumns,\n Preferences,\n QuotationRevisionTrackerCommercialRequirementsFields,\n QuotationRevisionTrackerInformationFields,\n QuotationRevisionTrackerLogisticalRequirementsFields,\n QuotationRevisionTrackerTCOFields,\n QuotationRevisionTrackerTechnicalRequirementsFields,\n QuotationSourcingScopeColumns,\n QuotationsByStatusColumns,\n ResourceCurrenciesColumns,\n ResourceDocumentsColumns,\n ResourceExchangeRatesColumns,\n ResourceIncotermsColumns,\n ResourceLinksColumns,\n ResourceMdfCodesColumns,\n ResourcePaymentTermsColumns,\n ResourceTermsAndConditionsColumns,\n ResourceVariablesColumns,\n SPESupplierSelectionColumns,\n SPE_EVALUATORS_SELECTION_COLUMNS,\n SPE_SUPPLIER_SELECTION_COLUMNS,\n StrategyManagementColumns,\n SupplierManagementColumns,\n SupplierPerformanceEvaluationsColumns,\n SupplierPerformanceEvaluationsHubColumns,\n SupplierPerformanceEvaluationsLocalDivisionColumns,\n SupplierStrategySourcingEventsColumns,\n SupplierStrategyTaskColumns,\n SupplierSupplyBaseManagementSupplierEvaluationColumns,\n TemplateManagementColumns,\n UsersColumns,\n} from '@abb-procure/constants';\nimport {\n DestroyRef,\n Injectable,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deepEqual } from 'fast-equals';\nimport { PreferenceModel } from '../models/preference.model';\nimport { PreferencesApiService } from '../services/preferences-api.service';\nimport { Order } from '../types/order.type';\nimport { StateStorage, StorageStrategy } from '../utils/state-storage.util';\nimport { UserState } from './user.state';\n\ntype PreferencesStateShape = {\n preferences: PreferenceModel[];\n};\n\nconst initialState: PreferencesStateShape = {\n preferences: [],\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreferencesState {\n preferences = computed(() => this.state().preferences, { equal: deepEqual });\n\n isNavigationExpanded = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.IsNavigationExpanded,\n );\n\n return setting?.value !== 'false';\n });\n\n isSecondaryNavigationExpanded = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.IsSecondaryNavigationExpanded,\n );\n\n return setting?.value !== 'false';\n });\n\n isDashboardFiltersExpanded = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.IsDashboardFiltersExpanded,\n );\n\n return setting?.value !== 'false';\n });\n\n isSupplierSidePanelExpanded = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.IsSupplierSidePanelExpanded,\n );\n\n return setting?.value !== 'false';\n });\n\n dateFormat = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.DateFormat,\n );\n\n return setting?.value ?? null;\n });\n\n quotationSourcingScopeColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.QuotationSourcingScopeColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_SOURCING_SCOPE_COLUMNS\n ) as (keyof typeof QuotationSourcingScopeColumns)[];\n });\n\n quotationRevisionTrackerInformationFields = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.QuotationRevisionTrackerInformationFields,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_REVISION_TRACKER_INFORMATION_COLUMNS\n ) as (keyof typeof QuotationRevisionTrackerInformationFields)[];\n });\n\n quotationRevisionTrackerTechnicalRequirementsFields = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.QuotationRevisionTrackerTechnicalRequirementsFields,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_REVISION_TRACKER_TECHNICAL_REQUIREMENTS_COLUMNS\n ) as (keyof typeof QuotationRevisionTrackerTechnicalRequirementsFields)[];\n });\n\n quotationRevisionTrackerCommercialRequirementsFields = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.QuotationRevisionTrackerCommercialRequirementsFields,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_REVISION_TRACKER_COMMERCIAL_REQUIREMENTS_COLUMNS\n ) as (keyof typeof QuotationRevisionTrackerCommercialRequirementsFields)[];\n });\n\n quotationRevisionTrackerLogisticalRequirementsFields = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.QuotationRevisionTrackerLogisticalRequirementsFields,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_REVISION_TRACKER_LOGISTICAL_REQUIREMENTS_COLUMNS\n ) as (keyof typeof QuotationRevisionTrackerLogisticalRequirementsFields)[];\n });\n\n quotationRevisionTrackerTCOFields = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.QuotationRevisionTrackerTCOFields,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATION_REVISION_TRACKER_TCO_COLUMNS\n ) as (keyof typeof QuotationRevisionTrackerTCOFields)[];\n });\n\n incidentsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.IncidentsColumns,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_INCIDENTS_COLUMNS\n ) as (keyof typeof IncidentsColumns)[];\n });\n\n quotationsByStatusColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.QuotationsByStatusColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_QUOTATIONS_BY_STATUS_COLUMNS\n ) as (keyof typeof QuotationsByStatusColumns)[];\n });\n\n contactsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ContactsColumns,\n );\n\n const value: (keyof typeof ContactsColumns)[] = setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_CONTACTS_COLUMNS;\n\n return value.filter(\n (column: string) => column !== 'Expiration',\n ) as (keyof typeof ContactsColumns)[];\n });\n\n legalContractsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.LegalContractsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_LEGAL_CONTRACTS_COLUMNS\n ) as (keyof typeof LegalContractsColumns)[];\n });\n\n categoryMonitoringColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.CategoryMonitoringColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_CATEGORY_MONITORING_COLUMNS\n ) as (keyof typeof CategoryMonitoringColumns)[];\n });\n\n resourceIncotermsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceIncotermsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_INCOTERMS_COLUMNS\n ) as (keyof typeof ResourceIncotermsColumns)[];\n });\n\n resourceTermsAndConditionsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.ResourceTermsAndConditionsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_TERMS_AND_CONDITIONS_COLUMNS\n ) as (keyof typeof ResourceTermsAndConditionsColumns)[];\n });\n\n specialClauseColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.ResourceTermsAndConditionsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SPECIAL_CLAUSE_COLUMNS\n ) as (keyof typeof ResourceTermsAndConditionsColumns)[];\n });\n\n localDivisionUsersColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.LocalDivisionUsersColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_LOCAL_DIVISION_USERS_COLUMNS\n ) as (keyof typeof LocalDivisionUsersColumns)[];\n });\n\n resourcePaymentTermsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.ResourcePaymentTermsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_PAYMENT_TERMS_COLUMNS\n ) as (keyof typeof ResourcePaymentTermsColumns)[];\n });\n\n resourceCurrenciesColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceCurrenciesColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_CURRENCIES_COLUMNS\n ) as (keyof typeof ResourceCurrenciesColumns)[];\n });\n\n resourceVariablesColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceVariablesColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_VARIABLES_COLUMNS\n ) as (keyof typeof ResourceVariablesColumns)[];\n });\n\n resourceExchangeRatesColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.ResourceExchangeRatesColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_EXCHANGE_RATES_COLUMNS\n ) as (keyof typeof ResourceExchangeRatesColumns)[];\n });\n\n organisationManagersColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.OrganisationManagersColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_ORGANISATION_MANAGERS_COLUMNS\n ) as (keyof typeof OrganisationManagersColumns)[];\n });\n\n resourceMdfCodesColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceMdfCodesColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_MDF_CODES_COLUMNS\n ) as (keyof typeof ResourceMdfCodesColumns)[];\n });\n\n resourceLinksColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceLinksColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_LINKS_COLUMNS\n ) as (keyof typeof ResourceLinksColumns)[];\n });\n\n resourceDocumentsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceDocumentsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_RESOURCE_DOCUMENTS_COLUMNS\n ) as (keyof typeof ResourceDocumentsColumns)[];\n });\n\n heatmapColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.HeatmapColumns,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_HEATMAP_COLUMNS\n ) as (keyof typeof HeatmapColumns)[];\n });\n\n heatmapProjectsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.HeatmapProjectsColumns,\n );\n\n return setting?.value ? (JSON.parse(setting.value) as string[]) : null;\n });\n\n suppliersOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.SuppliersOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n usersOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.UsersOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n categoriesOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.CategoriesOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n templatesOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.TemplatesOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n supplierStrategySourcingEventsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierStrategySourcingEventsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n surveyActivityEventsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.SurveyActivityEventsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n externalContactsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ExternalContactsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n legalContractsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.LegalContractsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n incotermsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.IncotermsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n termsAndConditionsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.TermsAndConditionsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n specialClauseOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.SpecialClauseOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n currenciesOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.CurrenciesOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n variablesOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.VariablesOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n incidentsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.IncidentsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n exchangeRatesOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ExchangeRatesOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n paymentTermsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.PaymentTermsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n categoryMonitoringOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.CategoryMonitoringOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n strategyManagementOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.StrategyManagementOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n localDivisionUsersOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.LocalDivisionUsersOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n localDivisionAssignmentsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.LocalDivisionAssignmentsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n organisationManagersOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.OrganisationManagersOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n divisionsReviewOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.DivisionsReviewOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n hubsReviewOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.HubsReviewOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n localDivisionsReviewOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.LocalDivisionsReviewOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n resourceLinksOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceLinksOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n resourceDocumentsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.ResourceDocumentsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n heatmapOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.HeatmapOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n SPESupplierSelectionOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.SPESupplierSelectionOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n SPEEvaluatorsSelectionOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SPEEvaluatorsSelectionOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n favoriteOrderAll = computed(() => {\n const settings = this.preferences()?.filter((preference) =>\n preference.key?.includes(Preferences.FavoriteOrder),\n );\n\n return settings?.map((setting) =>\n setting.value\n ? {\n value: JSON.parse(setting.value) as Order,\n key: setting.key ?? '',\n }\n : null,\n );\n });\n\n sourcingOrderAll = computed(() => {\n const settings = this.preferences()?.filter((preference) =>\n preference.key?.includes(Preferences.SourcingOrder),\n );\n\n return settings?.map((setting) =>\n setting.value\n ? {\n value: JSON.parse(setting.value) as Order,\n key: setting.key ?? '',\n }\n : null,\n );\n });\n\n sourcingScopeOrderAll = computed(() => {\n const settings = this.preferences()?.filter((preference) =>\n preference.key?.includes(Preferences.SourcingScopeOrder),\n );\n\n return settings?.map((setting) =>\n setting.value\n ? {\n value: JSON.parse(setting.value) as Order,\n key: setting.key ?? '',\n }\n : null,\n );\n });\n\n supplierManagementColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.SupplierManagementColumns,\n );\n\n const values = (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_MANAGEMENT_COLUMNS\n ) as (keyof typeof SupplierManagementColumns)[];\n\n return values.map((value) =>\n (value as string) === 'ProSupplyGuid' ? 'Guid' : value,\n );\n });\n\n categoryManagementColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.CategoryManagementColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_CATEGORY_MANAGEMENT_COLUMNS\n ) as (keyof typeof CategoryManagementColumns)[];\n });\n\n templateManagementColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.TemplateManagementColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_TEMPLATE_MANAGEMENT_COLUMNS\n ) as (keyof typeof TemplateManagementColumns)[];\n });\n\n SPESupplierSelectionColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SPESupplierSelectionColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : SPE_SUPPLIER_SELECTION_COLUMNS\n ) as (keyof typeof SPESupplierSelectionColumns)[];\n });\n\n SPEEvaluatorsSelectionColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SPEEvaluatorsSelectionColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : SPE_EVALUATORS_SELECTION_COLUMNS\n ) as (keyof typeof SPESupplierSelectionColumns)[];\n });\n\n supplierStrategyTaskColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierStrategyTaskColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_STRATEGY_COLUMNS\n ) as (keyof typeof SupplierStrategyTaskColumns)[];\n });\n\n supplierStrategySourcingEventsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierStrategySourcingEventsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_STRATEGY_SOURCING_EVENTS_COLUMNS\n ) as (keyof typeof SupplierStrategySourcingEventsColumns)[];\n });\n\n strategyManagementColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.StrategyManagementColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_STRATEGY_MANAGEMENT_COLUMNS\n ) as (keyof typeof StrategyManagementColumns)[];\n });\n\n usersColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.UsersColumns,\n );\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_USERS_COLUMNS\n ) as (keyof typeof UsersColumns)[];\n });\n\n supplierPerformanceEvaluationsColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierPerformanceEvaluationsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_COLUMNS\n ) as (keyof typeof SupplierPerformanceEvaluationsColumns)[];\n });\n\n supplierPerformanceEvaluationsHubColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierPerformanceEvaluationsHubColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_HUB_COLUMNS\n ) as (keyof typeof SupplierPerformanceEvaluationsHubColumns)[];\n });\n\n supplierPerformanceEvaluationsLocalDivisionColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.SupplierPerformanceEvaluationsLocalDivisionsColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_PERFORMANCE_EVALUATIONS_LOCAL_DIVISION_COLUMNS\n ) as (keyof typeof SupplierPerformanceEvaluationsLocalDivisionColumns)[];\n });\n\n supplierSupplyBaseManagementSupplierEvaluationColumns = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key ===\n Preferences.SupplierSupplyBaseManagementSupplierEvaluationColumns,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : DEFAULT_SUPPLIER_SUPPLY_BASE_MANAGEMENT_SUPPLIER_EVALUATION_COLUMNS\n ) as (keyof typeof SupplierSupplyBaseManagementSupplierEvaluationColumns)[];\n });\n\n supplierPerformanceEvaluationsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierPerformanceEvaluationsOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n userSurveyEvaluationsOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) => preference.key === Preferences.UserSurveyEvaluationsOrder,\n );\n\n return (\n setting?.value\n ? JSON.parse(setting.value)\n : {\n orderBy: 'score',\n orderIsAscending: false,\n }\n ) as Order;\n });\n\n supplierEvaluationsSearchOrder = computed(() => {\n const setting = this.preferences()?.find(\n (preference) =>\n preference.key === Preferences.SupplierEvaluationsSearchOrder,\n );\n\n return (\n setting?.value ? JSON.parse(setting.value) : DEFAULT_ORDER\n ) as Order;\n });\n\n private state = signal({ ...initialState });\n private readonly preferencesApiService = inject(PreferencesApiService);\n private readonly userState = inject(UserState);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n StateStorage.init(this.state, 'preferences', StorageStrategy.LocalStorage);\n\n if (window.matchMedia('(max-width: 768px)').matches) {\n this.updatePreference(\n new PreferenceModel({\n key: Preferences.IsNavigationExpanded,\n value: 'false',\n }),\n );\n }\n\n effect(\n () => {\n const current = this.userState.current();\n\n if (!current) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n preferences: current.preferences ?? [],\n }));\n },\n { allowSignalWrites: true },\n );\n }\n\n toggleNavigation(): void {\n const preference = new PreferenceModel({\n key: Preferences.IsNavigationExpanded,\n value: this.isNavigationExpanded() ? 'false' : 'true',\n });\n\n this.updatePreference(preference);\n\n this.preferencesApiService\n .updatePreferences$(preference)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // ignore\n });\n }\n\n toggleSecondaryNavigation(): void {\n const preference = new PreferenceModel({\n key: Preferences.IsSecondaryNavigationExpanded,\n value: this.isSecondaryNavigationExpanded() ? 'false' : 'true',\n });\n\n this.updatePreference(preference);\n\n this.preferencesApiService\n .updatePreferences$(preference)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // ignore\n });\n }\n\n toggleDashboardFilters(): void {\n const preference = new PreferenceModel({\n key: Preferences.IsDashboardFiltersExpanded,\n value: this.isDashboardFiltersExpanded() ? 'false' : 'true',\n });\n\n this.updatePreference(preference);\n\n this.preferencesApiService\n .updatePreferences$(preference)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // ignore\n });\n }\n\n toggleSupplierSidePanel(): void {\n const preference = new PreferenceModel({\n key: Preferences.IsSupplierSidePanelExpanded,\n value: this.isSupplierSidePanelExpanded() ? 'false' : 'true',\n });\n\n this.updatePreference(preference);\n\n this.preferencesApiService\n .updatePreferences$(preference)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // ignore\n });\n }\n\n updatePreferences(preference: PreferenceModel, callback?: () => void): void {\n this.updatePreference(preference);\n\n this.preferencesApiService\n .updatePreferences$(preference)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((response) => {\n if (!response) {\n return;\n }\n\n callback?.();\n });\n }\n\n private updatePreference(preference: PreferenceModel): void {\n this.state.update((state) => {\n const index = state.preferences.findIndex(\n (item) => item.key === preference.key,\n );\n\n if (index !== -1) {\n return {\n ...state,\n preferences: [\n ...state.preferences.slice(0, index),\n preference,\n ...state.preferences.slice(index + 1),\n ],\n };\n }\n\n return {\n ...state,\n preferences: [...state.preferences, preference],\n };\n });\n }\n}\n","import {\n DestroyRef,\n Injectable,\n computed,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deepEqual } from 'fast-equals';\nimport { StorageUploadSettingsModel } from '../models/storage-upload-settings.model';\nimport { DocumentsApiService } from '../services/documents-api.service';\n\nexport interface SettingsStateShape {\n storageUploadSettings: StorageUploadSettingsModel | null;\n}\n\nconst initialState: SettingsStateShape = {\n storageUploadSettings: null,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsState {\n readonly storageUploadSettings = computed(\n () => this.state().storageUploadSettings,\n { equal: deepEqual },\n );\n\n private readonly state = signal({ ...initialState });\n private readonly documentsApiService = inject(DocumentsApiService);\n private readonly destroyRef = inject(DestroyRef);\n\n fetchStorageUploadSettings(): void {\n this.documentsApiService\n .getUploadSettings$()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((response) => {\n if (!response) {\n return;\n }\n\n this.state.update((state) => ({\n ...state,\n storageUploadSettings: response,\n }));\n });\n }\n}\n","import { Injectable, computed, inject, signal } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\nimport { AdditionalInfoModel } from '../models/additional-info.model';\nimport { CurrentUserModel } from '../models/current-user.model';\nimport { LookupDataState } from './lookup-data.state';\nimport { SettingsState } from './settings.state';\n\nexport interface UserStateShape {\n current: CurrentUserModel | null;\n isSubstitute: boolean;\n isForbidden: boolean;\n additionalInfo: AdditionalInfoModel | null;\n additionalInfoMessage: string | null;\n}\n\nconst initialState: UserStateShape = {\n current: null,\n isSubstitute: false,\n isForbidden: false,\n additionalInfo: null,\n additionalInfoMessage: null,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserState {\n readonly current = computed(() => this.state().current, { equal: deepEqual });\n\n readonly isSubstitute = computed(() => this.state().isSubstitute, {\n equal: deepEqual,\n });\n readonly isForbidden = computed(() => this.state().isForbidden, {\n equal: deepEqual,\n });\n\n readonly additionalInfo = computed(() => this.state().additionalInfo, {\n equal: deepEqual,\n });\n\n readonly additionalInfoMessage = computed(\n () => this.state().additionalInfoMessage,\n {\n equal: deepEqual,\n },\n );\n\n private readonly state = signal({ ...initialState });\n private readonly lookupDataState = inject(LookupDataState);\n private readonly settingsState = inject(SettingsState);\n\n setAdditionalInfoMessage(additionalInfoMessage: string | null): void {\n this.state.update((state) => ({\n ...state,\n additionalInfoMessage,\n }));\n }\n\n setAdditionalInfo(additionalInfo: AdditionalInfoModel | null): void {\n this.state.update((state) => ({\n ...state,\n additionalInfo,\n }));\n }\n\n setForbidden(isForbidden: boolean): void {\n this.state.update((state) => ({\n ...state,\n isForbidden,\n }));\n }\n\n setCurrentUser(user: CurrentUserModel | null, isSubstitute: boolean): void {\n this.state.update((state) => ({\n ...state,\n current: user,\n isSubstitute,\n isForbidden: false,\n tsp: null,\n }));\n\n if (!user) {\n return;\n }\n\n this.lookupDataState.fetchETag();\n this.lookupDataState.fetchMenu();\n this.lookupDataState.fetchTSP();\n this.settingsState.fetchStorageUploadSettings();\n }\n}\n","import { DateString, nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst ApplicationNotification = t.type(\n {\n notificationId: t.string,\n value: nullable(t.string),\n validFrom: DateString,\n validUntil: DateString,\n enabled: t.boolean,\n display: t.boolean,\n },\n 'ApplicationNotification',\n);\n\ntype ApplicationNotification = t.TypeOf;\nexport { ApplicationNotification };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst Preference = t.type(\n {\n key: nullable(t.string),\n value: nullable(t.string),\n },\n 'Preference',\n);\n\ntype Preference = t.TypeOf;\nexport { Preference };\n","import * as t from 'io-ts';\n\nconst UserGuideTour = t.type(\n {\n id: t.string,\n confirmedCount: t.number,\n markedAsCompleted: t.boolean,\n },\n 'UserGuideTour',\n);\n\ntype UserGuideTour = t.TypeOf;\nexport { UserGuideTour };\n","import * as t from 'io-ts';\n\nconst UserPermissions = t.type(\n {\n canManageUsers: t.boolean,\n canManageOrganization: t.boolean,\n canManageSuppliers: t.boolean,\n canManageNotifications: t.boolean,\n canManageResources: t.boolean,\n canManageTemplates: t.boolean,\n canAddRequestForRequestForQuotation: t.boolean,\n canAddPurchaseRequisition: t.boolean,\n canAddProject: t.boolean,\n canAddRequestForRequestForQutoationFromTemplate: t.boolean,\n canViewAdminView: t.boolean,\n canViewOrganisation: t.boolean,\n canManageCategories: t.boolean,\n },\n 'UserPermissions',\n);\n\ntype UserPermissions = t.TypeOf;\nexport { UserPermissions };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { Preference } from './preference.type';\nimport { UserGuideTour } from './user-guide-tour.type';\nimport { UserPermissions } from './user-permissions.type';\nimport { User } from './user.type';\n\nconst CurrentUser = t.intersection(\n [\n User,\n t.type({\n guideTours: nullable(t.array(UserGuideTour)),\n mystiqueKey: t.string,\n permissions: UserPermissions,\n preferences: nullable(t.array(Preference)),\n additionalData: t.record(t.string, t.boolean),\n }),\n ],\n 'CurrentUser',\n);\n\ntype CurrentUser = t.TypeOf;\nexport { CurrentUser };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst DefaultCriteriaDimension = t.type(\n {\n id: t.number,\n name: nullable(t.string),\n weight: t.number,\n order: t.number,\n },\n 'DefaultCriteriaDimension',\n);\n\ntype DefaultCriteriaDimension = t.TypeOf;\nexport { DefaultCriteriaDimension };\n","import * as t from 'io-ts';\n\nconst EntityStatus = t.type(\n {\n id: t.number,\n name: t.string,\n color: t.string,\n },\n 'EntityStatus',\n);\n\ntype EntityStatus = t.TypeOf;\nexport { EntityStatus };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst GuidNameCode = t.type(\n {\n id: t.string,\n code: nullable(t.string),\n name: nullable(t.string),\n },\n 'GuidNameCode',\n);\n\ntype GuidNameCode = t.TypeOf;\nexport { GuidNameCode };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst GuidName = t.type(\n {\n id: t.string,\n name: nullable(t.string),\n },\n 'GuidName',\n);\n\ntype GuidName = t.TypeOf;\nexport { GuidName };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst IdNameCode = t.type(\n {\n id: t.number,\n code: t.string,\n name: nullable(t.string),\n },\n 'IdNameCode',\n);\n\ntype IdNameCode = t.TypeOf;\nexport { IdNameCode };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst IdName = t.type(\n {\n id: t.number,\n name: nullable(t.string),\n },\n 'IdName',\n);\n\ntype IdName = t.TypeOf;\nexport { IdName };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst ResourceVariables = t.type(\n {\n id: t.number,\n uniqueCode: t.string,\n value: t.string,\n name: nullable(t.string),\n },\n 'ResourceVariables',\n);\n\ntype ResourceVariables = t.TypeOf;\nexport { ResourceVariables };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst MdfCode = t.type(\n {\n id: t.number,\n name: nullable(t.string),\n code: nullable(t.string),\n count: t.union([t.number, t.undefined]),\n },\n 'MdfCode',\n);\n\ntype MdfCode = t.TypeOf;\nexport { MdfCode };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst PaginatedResponse = t.type(\n {\n totalCount: t.number,\n pageIndex: t.number,\n pageSize: t.number,\n orderBy: nullable(t.string),\n orderIsAscending: t.boolean,\n },\n 'PaginatedResponse',\n);\n\ntype PaginatedResponse = t.TypeOf;\nexport { PaginatedResponse };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { User } from './user.type';\n\nconst PeoplePickerUser = t.intersection(\n [\n User,\n t.type({\n department: nullable(t.string),\n avatarUrl: nullable(t.string),\n }),\n ],\n 'PeoplePickerUser',\n);\n\ntype PeoplePickerUser = t.TypeOf;\nexport { PeoplePickerUser };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst Requirement = t.intersection(\n [\n t.type({\n name: nullable(t.string),\n orderIndex: t.number,\n }),\n t.partial({\n isBasicField: nullable(t.boolean),\n }),\n ],\n 'Requirement',\n);\n\ntype Requirement = t.TypeOf;\nexport { Requirement };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { Requirement } from './requirement.type';\n\nconst RequirementFields = t.type(\n {\n commercial: nullable(t.array(Requirement)),\n logistical: nullable(t.array(Requirement)),\n technical: nullable(t.array(Requirement)),\n },\n 'RequirementFields',\n);\n\ntype RequirementFields = t.TypeOf;\nexport { RequirementFields };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst TermsAndConditions = t.intersection(\n [\n IdName,\n t.type({\n isCustomized: t.boolean,\n url: nullable(t.string),\n }),\n ],\n 'TermsAndConditions',\n);\n\ntype TermsAndConditions = t.TypeOf;\nexport { TermsAndConditions };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { IdName } from './id-name.type';\n\nconst UserSlim = t.intersection(\n [\n IdName,\n t.type({\n email: nullable(t.string),\n avatarUrl: nullable(t.string),\n }),\n ],\n 'UserSlim',\n);\n\ntype UserSlim = t.TypeOf;\nexport { UserSlim };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst User = t.type(\n {\n id: t.number,\n email: nullable(t.string),\n name: nullable(t.string),\n isActiveInEntraID: t.boolean,\n isEnabled: t.boolean,\n avatarUrl: nullable(t.string),\n },\n 'User',\n);\n\ntype User = t.TypeOf;\nexport { User };\n","import { WritableSignal, effect } from '@angular/core';\n\nexport enum StorageStrategy {\n None,\n LocalStorage,\n SessionStorage,\n}\n\nexport class StateStorage {\n constructor(\n private state: WritableSignal,\n private key: string,\n private storageStrategy: StorageStrategy,\n private afterDeserialize?: (data: unknown) => T,\n ) {\n this.getStateFromStorage();\n\n effect(() => {\n this.updateStorage(this.state());\n });\n }\n\n static init(\n state: WritableSignal,\n key: string,\n storageStrategy: StorageStrategy,\n afterDeserialize?: (data: unknown) => T,\n ): StateStorage {\n return new StateStorage(state, key, storageStrategy, afterDeserialize);\n }\n\n private getStateFromStorage(): void {\n let stored;\n\n switch (this.storageStrategy) {\n case StorageStrategy.LocalStorage:\n stored = localStorage.getItem(this.key);\n break;\n case StorageStrategy.SessionStorage:\n stored = sessionStorage.getItem(this.key);\n break;\n default:\n stored = null;\n }\n\n if (!stored) {\n return;\n }\n\n const data = JSON.parse(stored);\n\n if (!data) {\n return;\n }\n\n if (this.afterDeserialize) {\n this.state.set(this.afterDeserialize(data));\n } else {\n this.state.set(data);\n }\n }\n\n private updateStorage(state: T): void {\n try {\n switch (this.storageStrategy) {\n case StorageStrategy.LocalStorage:\n localStorage.setItem(this.key, JSON.stringify(state));\n break;\n case StorageStrategy.SessionStorage:\n sessionStorage.setItem(this.key, JSON.stringify(state));\n break;\n default:\n break;\n }\n } catch (_e) {\n // ignore\n }\n }\n}\n","import { Snippet } from '@microsoft/applicationinsights-web';\nimport { IChannelControls, ITelemetryPlugin } from '@microsoft/applicationinsights-core-js';\nimport { DistributedTracingModes } from '@microsoft/applicationinsights-common';\n\ntype AppInsightsConfig = Snippet['config'];\n\nexport class AngularApplicationInsightsConfig implements AppInsightsConfig {\n disableAngularRouteTracking?: boolean;\n instrumentationKey?: string;\n connectionString?: string;\n diagnosticLogInterval?: number;\n maxMessageLimit?: number;\n loggingLevelConsole?: number;\n loggingLevelTelemetry?: number;\n enableDebugExceptions?: boolean;\n endpointUrl?: string;\n extensionConfig?: Record;\n extensions?: ITelemetryPlugin[];\n channels?: IChannelControls[][];\n emitLineDelimitedJson?: boolean;\n accountId?: string;\n sessionRenewalMs?: number;\n sessionExpirationMs?: number;\n maxBatchSizeInBytes?: number;\n maxBatchInterval?: number;\n enableDebug?: boolean;\n disableExceptionTracking?: boolean;\n disableTelemetry?: boolean;\n samplingPercentage?: number;\n autoTrackPageVisitTime?: boolean;\n enableAutoRouteTracking?: boolean;\n disableAjaxTracking?: boolean;\n disableFetchTracking?: boolean;\n overridePageViewDuration?: boolean;\n maxAjaxCallsPerView?: number;\n disableDataLossAnalysis?: boolean;\n disableCorrelationHeaders?: boolean;\n distributedTracingMode?: DistributedTracingModes;\n correlationHeaderExcludedDomains?: string[];\n disableFlushOnBeforeUnload?: boolean;\n disableFlushOnUnload?: boolean;\n enableSessionStorageBuffer?: boolean;\n isCookieUseDisabled?: boolean;\n cookieDomain?: string;\n isRetryDisabled?: boolean;\n url?: string;\n isStorageUseDisabled?: boolean;\n isBeaconApiDisabled?: boolean;\n sdkExtension?: string;\n isBrowserLinkTrackingEnabled?: boolean;\n appId?: string;\n enableCorsCorrelation?: boolean;\n namePrefix?: string;\n enableRequestHeaderTracking?: boolean;\n enableResponseHeaderTracking?: boolean;\n enableAjaxErrorStatusText?: boolean;\n onunloadDisableBeacon?: boolean;\n}\n","import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';\n\nexport class CustomHttpErrorResponse extends HttpErrorResponse {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n name: any;\n message: string;\n\n constructor(\n name: string,\n message: string,\n init: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error?: any;\n headers?: HttpHeaders;\n status?: number;\n statusText?: string;\n url?: string;\n },\n ) {\n super(init);\n\n this.name = name;\n this.message = message;\n }\n}\n","/* eslint-disable no-console */\n\nimport {\n DestroyRef,\n Injectable,\n Injector,\n Optional,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router,\n} from '@angular/router';\nimport * as Common from '@microsoft/applicationinsights-common';\nimport {\n ICustomProperties,\n ITelemetryItem,\n} from '@microsoft/applicationinsights-core-js';\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { filter } from 'rxjs/operators';\nimport { AngularApplicationInsightsConfig } from '../config';\nimport { AppInsightsPublicInterface } from '../types/application-insights';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationInsightsService\n implements Omit\n{\n appInsights?: ApplicationInsights;\n\n get context(): ApplicationInsights['context'] | undefined {\n return this.appInsights?.context;\n }\n\n private readonly _injector = inject(Injector);\n private readonly componentRef = inject(DestroyRef);\n\n constructor(\n @Optional() private readonly config?: AngularApplicationInsightsConfig,\n // eslint-disable-next-line no-empty-function\n ) {}\n\n /**\n * Log a user action or other occurrence.\n */\n trackEvent(\n event: Common.IEventTelemetry,\n customProperties?: ICustomProperties,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.trackEvent(event, customProperties);\n } catch (ex) {\n console.warn('Angular application insights Error [trackEvent]: ', ex);\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n trackPageView(pageView?: Common.IPageViewTelemetry): void;\n\n /** @deprecated */\n trackPageView(\n name?: Common.IPageViewTelemetry['name'],\n uri?: Common.IPageViewTelemetry['uri'],\n additionalTelemetry?: Omit,\n ): void;\n\n /**\n * Logs that a page, or similar container was displayed to the user.\n */\n trackPageView(\n pageView?: Common.IPageViewTelemetry | Common.IPageViewTelemetry['name'],\n uri?: Common.IPageViewTelemetry['uri'],\n additionalTelemetry?: Omit,\n ): void {\n if (this.appInsights) {\n try {\n if (\n typeof pageView === 'string' ||\n uri != null ||\n additionalTelemetry != null\n ) {\n // eslint-disable-next-line no-param-reassign\n pageView = {\n name: pageView as string,\n uri,\n ...additionalTelemetry,\n };\n }\n\n this.appInsights.trackPageView(pageView as Common.IPageViewTelemetry);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [trackPageView]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Log a bag of performance information via the customProperties field.\n */\n trackPageViewPerformance(\n pageViewPerformance: Common.IPageViewPerformanceTelemetry,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.trackPageViewPerformance(pageViewPerformance);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [trackPageViewPerformance]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n trackException(exception: Common.IExceptionTelemetry): void;\n\n /** @deprecated */\n trackException(\n exception: Error,\n severityLevel?: Common.SeverityLevel | number,\n additionalTelemetry?: Omit<\n Common.IExceptionTelemetry,\n 'error' | 'exception' | 'severityLevel'\n >,\n ): void;\n\n /**\n * Log an exception that you have caught.\n */\n trackException(\n exception: Common.IExceptionTelemetry | Error,\n severityLevel?: Common.SeverityLevel | number,\n additionalTelemetry?: Omit<\n Common.IExceptionTelemetry,\n 'error' | 'exception' | 'severityLevel'\n >,\n ): void {\n if (this.appInsights) {\n try {\n if ('name' in exception && 'message' in exception) {\n // eslint-disable-next-line no-param-reassign\n exception = {\n exception,\n severityLevel,\n ...additionalTelemetry,\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appInsights.trackException(exception as any);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [trackException]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n trackTrace(\n message: string,\n customProperties?: ICustomProperties,\n additionalTelemetry?: Omit<\n Common.ITraceTelemetry,\n 'message' | 'severityLevel'\n >,\n ): void;\n\n /** @deprecated */\n trackTrace(\n trace: Common.ITraceTelemetry,\n customProperties?: ICustomProperties,\n ): void;\n\n /**\n * Log a diagnostic scenario such entering or leaving a function.\n */\n trackTrace(\n trace: Common.ITraceTelemetry | string,\n customProperties?: ICustomProperties,\n additionalTelemetry?: Omit<\n Common.IExceptionTelemetry,\n 'message' | 'severityLevel'\n >,\n ): void {\n if (this.appInsights) {\n try {\n if (typeof trace === 'string') {\n // eslint-disable-next-line no-param-reassign\n trace = {\n message: trace,\n severityLevel:\n typeof customProperties === 'number'\n ? customProperties\n : undefined,\n ...additionalTelemetry,\n };\n\n // eslint-disable-next-line no-param-reassign\n customProperties = undefined;\n }\n\n this.appInsights.trackTrace(trace, customProperties);\n } catch (ex) {\n console.warn('Angular application insights Error [trackTrace]: ', ex);\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Log a numeric value that is not associated with a specific event. Typically used\n * to send regular reports of performance indicators.\n *\n * To send a single measurement, just use the `name` and `average` fields\n * of {@param metric}.\n *\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\n * aggregating multiple measurements and sending the resulting average and modifying\n * the `sampleCount` field of {@param metric}.\n */\n trackMetric(\n metric: Common.IMetricTelemetry,\n customProperties?: ICustomProperties,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.trackMetric(metric, customProperties);\n } catch (ex) {\n console.warn('Angular application insights Error [trackMetric]: ', ex);\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Log a dependency call (e.g. ajax)\n */\n trackDependencyData(dependency: Common.IDependencyTelemetry): void {\n if (this.appInsights) {\n try {\n this.appInsights.trackDependencyData(dependency);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [trackDependencyData]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control\n * when the page view timer starts and stops, but don't want to calculate the duration yourself. This method\n * doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\n * and send the event.\n * @param name A string that identifies this item, unique within this HTML document. Defaults to the document title.\n */\n startTrackPage(name?: string): void {\n if (this.appInsights) {\n try {\n this.appInsights.startTrackPage(name);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [startTrackPage]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time\n * telemetry with the specified properties and measurements.\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults\n * to the window location.\n * @param customProperties map[string, string] - additional data used to filter pages and metrics in\n * the portal. Defaults to empty.\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics\n * Explorer on the portal. Defaults to empty.\n */\n stopTrackPage(\n name?: string,\n url?: string,\n customProperties?: Record,\n measurements?: Record,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.stopTrackPage(\n name,\n url,\n customProperties,\n measurements,\n );\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [stopTrackPage]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Start timing an extended event. Call {@link stopTrackEvent} to log the event when it ends.\n * @param name A string that identifies this item, unique within this HTML document.\n */\n startTrackEvent(name?: string): void {\n if (this.appInsights) {\n try {\n this.appInsights.startTrackEvent(name);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [startTrackEvent]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Log an extended event that you started timing with `startTrackEvent`.\n * @param name The string you used to identify this event in `startTrackEvent`.\n * @param properties map[string, string] - additional data used to filter events and metrics in the\n * portal. Defaults to empty.\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics\n * Explorer on the portal. Defaults to empty.\n */\n stopTrackEvent(\n name: string,\n properties?: Record,\n measurements?: Record,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.stopTrackEvent(name, properties, measurements);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [stopTrackEvent]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user.\n * Parameters must not contain whitespace or ,;=|\n *\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them\n * for the whole session, you should set `storeInCookie = true`\n */\n setAuthenticatedUserContext(\n authenticatedUserId: string,\n accountId?: string,\n storeInCookie?: boolean,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.setAuthenticatedUserContext(\n authenticatedUserId,\n accountId,\n storeInCookie,\n );\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [setAuthenticatedUserContext]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\n */\n clearAuthenticatedUserContext(): void {\n if (this.appInsights) {\n try {\n this.appInsights.clearAuthenticatedUserContext();\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [clearAuthenticatedUserContext]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Manually trigger an immediate send of all telemetry still in the buffer.\n */\n flush(async?: boolean): void {\n if (this.appInsights) {\n try {\n this.appInsights.flush(async);\n } catch (ex) {\n console.warn('Angular application insights Error [flush]: ', ex);\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n addTelemetryInitializer(\n telemetryInitializer: (item: ITelemetryItem) => boolean | void,\n ): void {\n if (this.appInsights) {\n try {\n this.appInsights.addTelemetryInitializer(telemetryInitializer);\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [addTelemetryInitializer]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'Application insights is not available. Telemetry will not be sent.',\n );\n }\n }\n\n /**\n * Initializes the service.\n * Only for internal use when providing the service through the AppInsights module.\n * @internal\n */\n init(): void {\n if (this.config == null) {\n console.warn(\n 'You need forRoot on ApplicationInsightsModule, with instrumentationKey set at least',\n );\n\n return;\n }\n\n if (this.config.instrumentationKey) {\n try {\n const appInsights = new ApplicationInsights({\n config: this.config,\n });\n\n appInsights.loadAppInsights();\n this.appInsights = appInsights;\n\n const router = this.getRouter();\n\n if (!this.config.disableAngularRouteTracking && router) {\n router.events\n .pipe(\n filter((event) => event instanceof NavigationStart),\n takeUntilDestroyed(this.componentRef),\n )\n .subscribe((event: NavigationStart) => {\n this.startTrackPage(event.url);\n });\n\n router.events\n .pipe(\n filter(\n (event) =>\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel ||\n event instanceof NavigationError,\n ),\n takeUntilDestroyed(this.componentRef),\n )\n .subscribe((event: NavigationEnd) => {\n this.stopTrackPage(event.url);\n });\n }\n } catch (ex) {\n console.warn(\n 'Angular application insights Error [loadAppInsights]: ',\n ex,\n );\n }\n } else {\n console.warn(\n 'An instrumentationKey value is required to initialize AppInsightsService',\n );\n }\n }\n\n private getRouter(): Router | undefined {\n try {\n return this._injector.get(Router);\n } catch (_ex) {\n return undefined;\n }\n }\n}\n","import { SnackbarData, SnackbarService } from '@abb-procure/snackbar';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { format } from 'date-fns';\nimport { CustomHttpErrorResponse } from '../errors/custom-http-error-response';\nimport { ValidationResult } from '../errors/validation-result';\nimport { ApplicationInsightsService } from './application-insights.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ErrorHandlerService {\n private readonly appInsightsService = inject(ApplicationInsightsService);\n private readonly snackbarService = inject(SnackbarService);\n\n /**\n * Tracks the error through Application Insights without notifying the user.\n */\n trackError(error: Error): void {\n // eslint-disable-next-line no-console\n console.error(error);\n this.appInsightsService.trackException({ exception: error });\n }\n\n /**\n * Displays a notification to the user and tracks the error through\n * Application Insights.\n */\n handleError(error: unknown, data?: SnackbarData): void {\n if (\n !(error instanceof Error) &&\n !(error instanceof CustomHttpErrorResponse)\n ) {\n return;\n }\n\n if (error instanceof CustomHttpErrorResponse && error.status === 429) {\n this.notifyUser(error, {\n text: 'Too many requests. Please try again later.',\n });\n } else {\n this.notifyUser(error, data);\n }\n\n this.trackError(error);\n }\n\n /**\n * Displays an error notification to the user.\n */\n notifyUser(error: Error, data?: SnackbarData): void {\n if (error instanceof HttpErrorResponse && error.status === 406) {\n return;\n }\n\n if (data) {\n this.snackbarService.showErrorSnackbar({\n ...data,\n text: this.getErrorMessage(error, data.text),\n });\n } else {\n this.snackbarService.showErrorSnackbar(\n this.formatError('An error occurred', error),\n );\n }\n }\n\n private formatError(title: string, error: Error): SnackbarData {\n const formattedDate = `${format(new Date(), 'YYYY-MM-DD HH:mm:ss')} UTC`;\n\n const text = `\n ${error.message.replace('\\n', '
\\n')}\n ${error.name ? `(${error.name})` : ''}\n ${formattedDate}\n `;\n\n return {\n title,\n text,\n };\n }\n\n private getErrorMessage(\n error: Error,\n fallback: string | undefined,\n ): string | undefined {\n if (\n this.isErrorResponse(error) &&\n this.isValidationResult(error.error) &&\n error.error.errors\n ) {\n return Object.values(error.error.errors).flat().join('\\n');\n }\n\n if (error.message && typeof error.message === 'string') {\n return error.message;\n }\n\n return fallback;\n }\n\n private isErrorResponse(error: unknown): error is CustomHttpErrorResponse {\n return (error as CustomHttpErrorResponse).error !== undefined;\n }\n\n private isValidationResult(error: unknown): error is ValidationResult {\n return (error as ValidationResult)?.traceId !== undefined;\n }\n}\n","export enum SnackbarType {\n INFO = 1,\n SUCCESS = 2,\n ERROR = 3,\n}\n","\n @if (data.type) {\n
\n \n {{ icon }}\n \n
\n }\n
\n @if (data.title) {\n
\n {{ data.title }}\n
\n }\n @if (data.text) {\n
\n {{ data.text }}\n
\n }\n
\n\n","import { Component, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { SnackbarType } from '../../enums/snackbar-type.enum';\nimport { SnackbarData } from '../../models/snackbar-data.model';\n\n@Component({\n templateUrl: './snackbar.component.html',\n styleUrls: ['./snackbar.component.scss'],\n standalone: true,\n imports: [MatIconModule],\n})\nexport class SnackbarComponent {\n get icon(): string | undefined {\n switch (this.data.type) {\n case SnackbarType.INFO:\n return 'info';\n case SnackbarType.ERROR:\n return 'error';\n case SnackbarType.SUCCESS:\n return 'check_circle';\n default:\n return undefined;\n }\n }\n\n protected readonly data: SnackbarData = inject(MAT_SNACK_BAR_DATA);\n}\n","import { Injectable, inject } from '@angular/core';\nimport {\n MatSnackBar, MatSnackBarVerticalPosition, MatSnackBarHorizontalPosition, MatSnackBarRef,\n} from '@angular/material/snack-bar';\nimport { SnackbarType } from '../enums/snackbar-type.enum';\nimport { SnackbarComponent } from '../components/snackbar/snackbar.component';\nimport { SnackbarData } from '../models/snackbar-data.model';\n\ntype SnackbarOptions = {\n readonly duration: number;\n readonly verticalPosition: MatSnackBarVerticalPosition;\n readonly horizontalPosition: MatSnackBarHorizontalPosition;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackbarService {\n private readonly defaultOptions: SnackbarOptions = {\n duration: 10000,\n verticalPosition: 'top',\n horizontalPosition: 'center',\n };\n\n private readonly snackbar = inject(MatSnackBar);\n\n /**\n * Opens a snackbar of type info.\n */\n showInfoSnackbar(\n data: SnackbarData,\n options?: Partial,\n ): MatSnackBarRef {\n return this.showSnackbar({\n ...data,\n type: SnackbarType.INFO,\n }, {\n duration: 5000,\n ...options,\n });\n }\n\n /**\n * Opens a snackbar of type successs.\n */\n showSuccessSnackbar(\n data: SnackbarData,\n options?: Partial,\n ): MatSnackBarRef {\n return this.showSnackbar({\n ...data,\n type: SnackbarType.SUCCESS,\n }, {\n duration: 5000,\n ...options,\n });\n }\n\n /**\n * Opens a snackbar of type error.\n */\n showErrorSnackbar(\n data: SnackbarData,\n options?: SnackbarOptions,\n ): MatSnackBarRef {\n return this.showSnackbar({\n ...data,\n type: SnackbarType.ERROR,\n }, options);\n }\n\n showValidationErrorSnackbar(\n data: SnackbarData = {\n text: 'The form contains validation errors. Please fix all errors before submitting the form.',\n },\n options: Partial | undefined = undefined,\n ): MatSnackBarRef {\n return this.showSnackbar({\n ...data,\n type: SnackbarType.ERROR,\n }, {\n duration: 7500,\n ...options,\n });\n }\n\n /**\n * Opens a configurable snackbar with the procure default options.\n */\n private showSnackbar(\n data: SnackbarData,\n options?: Partial,\n ): MatSnackBarRef {\n const mergedOptions = {\n ...this.defaultOptions,\n ...options,\n };\n\n return this.snackbar.openFromComponent(SnackbarComponent, {\n data,\n ...mergedOptions,\n });\n }\n}\n","\n @if (message.sender; as sender) {\n \n } @else {\n
\n \n
\n }\n \n
\n \n
\n
\n
\n
\n \n @if (message.data.entityNumber) {\n \n }\n {{ message.title }}\n
\n
\n {{ message.createdOn | date : 'short' }}\n @if (message.isArchived) {\n - Archived\n }\n
\n
\n @if (message.message && message.message !== '

') {\n \n }\n \n
\n \n {{ message.isArchived ? 'unarchive' : 'archive' }}\n \n \n {{ message.isRead ? 'radio_button_unchecked' : 'radio_button_checked' }}\n \n
\n\n","import {\n Component, EventEmitter, Input, Output, booleanAttribute,\n} from '@angular/core';\nimport {\n AvatarComponent,\n ButtonComponent,\n EntityBadgeComponent,\n SanitizePipe,\n DatePipe,\n} from '@abb-procure/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NotificationInboxMessageModel } from '../../models/notification-inbox-message.model';\n\n@Component({\n selector: 'procure-notification-message',\n templateUrl: './message.component.html',\n styleUrl: './message.component.scss',\n standalone: true,\n imports: [\n AvatarComponent,\n DatePipe,\n ButtonComponent,\n MatTooltipModule,\n MatIconModule,\n SanitizePipe,\n EntityBadgeComponent,\n ],\n})\nexport class MessageComponent {\n @Input({ required: true }) protected message!: NotificationInboxMessageModel;\n @Input({ transform: booleanAttribute }) protected condensed: boolean = false;\n\n @Output() protected readonly toggleRead = new EventEmitter();\n @Output() protected readonly toggleArchive = new EventEmitter();\n}\n","import { BaseModel, UserSlimModel } from '@abb-procure/data';\nimport { NotificationInboxMessage } from '../types/notification-inbox-message.type';\n\nexport class NotificationInboxMessageModel extends BaseModel implements NotificationInboxMessage {\n readonly id: string | null;\n readonly title: string | null;\n readonly message: string | null;\n readonly data: Record;\n readonly createdOn: Date;\n readonly sender: UserSlimModel | null = null;\n isRead: boolean;\n isArchived: boolean;\n\n constructor(notificationInboxMessage: NotificationInboxMessage) {\n super();\n\n this.id = notificationInboxMessage.id;\n this.title = notificationInboxMessage.title;\n this.message = notificationInboxMessage.message;\n this.data = notificationInboxMessage.data;\n this.createdOn = notificationInboxMessage.createdOn;\n\n if (notificationInboxMessage.sender) {\n this.sender = new UserSlimModel(notificationInboxMessage.sender);\n }\n\n this.isRead = notificationInboxMessage.isRead;\n this.isArchived = notificationInboxMessage.isArchived;\n }\n}\n","import { PaginatedResponseModel } from '@abb-procure/data';\nimport { NotificationInboxViewResponse } from '../types/notification-inbox-view-response.type';\nimport { NotificationInboxMessageModel } from './notification-inbox-message.model';\n\nexport class NotificationInboxViewResponseModel\n extends PaginatedResponseModel\n implements NotificationInboxViewResponse {\n items: NotificationInboxMessageModel[] | null = null;\n readonly filteredCount: number;\n readonly unreadCount: number;\n\n constructor(notificationInboxViewResponse: NotificationInboxViewResponse) {\n super(notificationInboxViewResponse);\n\n this.items = notificationInboxViewResponse.items\n ? notificationInboxViewResponse.items.map((message) => new NotificationInboxMessageModel(message))\n : null;\n\n this.filteredCount = notificationInboxViewResponse.filteredCount;\n this.unreadCount = notificationInboxViewResponse.unreadCount;\n }\n}\n","import * as t from 'io-ts';\nimport { DateString, nullable } from '@abb-procure/api';\nimport { UserSlim } from '@abb-procure/data';\n\nconst NotificationInboxMessage = t.type({\n id: nullable(t.string),\n title: nullable(t.string),\n message: nullable(t.string),\n data: t.record(t.string, nullable(t.string)),\n createdOn: DateString,\n sender: nullable(UserSlim),\n isRead: t.boolean,\n isArchived: t.boolean,\n}, 'NotificationInboxMessage');\n\ntype NotificationInboxMessage = t.TypeOf;\nexport { NotificationInboxMessage };\n","import * as t from 'io-ts';\nimport { PaginatedResponse } from '@abb-procure/data';\nimport { nullable } from '@abb-procure/api';\nimport { NotificationInboxMessage } from './notification-inbox-message.type';\n\nconst NotificationInboxViewResponse = t.intersection([\n PaginatedResponse,\n t.type({\n items: nullable(t.array(NotificationInboxMessage)),\n filteredCount: t.number,\n unreadCount: t.number,\n }),\n], 'NotificationInboxViewResponse');\n\ntype NotificationInboxViewResponse = t.TypeOf;\nexport { NotificationInboxViewResponse };\n","import { ApiService, CustomHttpParams } from '@abb-procure/api';\nimport { Injectable } from '@angular/core';\nimport { boolean as ioBoolean } from 'io-ts';\nimport { NotificationInboxViewResponseModel } from '../models/notification-inbox-view-response.model';\nimport { NotificationInboxRequest } from '../types/notification-inbox-request.type';\nimport { NotificationInboxViewResponse } from '../types/notification-inbox-view-response.type';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationApiService extends ApiService {\n async getNotifications(\n request: NotificationInboxRequest,\n ): Promise {\n const params = new CustomHttpParams(request);\n\n try {\n const response = await this.get(\n 'Notification/Inbox',\n NotificationInboxViewResponse,\n params,\n );\n\n return response != null\n ? new NotificationInboxViewResponseModel(response)\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while retrieving the notifications.',\n );\n }\n }\n\n async markAsRead(notificationId: string): Promise {\n try {\n return await this.put(\n `Notification/${notificationId}/Read`,\n ioBoolean,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while marking the notification as read.',\n );\n }\n }\n\n async markAllAsRead(): Promise {\n try {\n return await this.put('Notification/Read', ioBoolean);\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while marking all notifications as read.',\n );\n }\n }\n\n async markAsUnread(notificationId: string): Promise {\n try {\n return await this.put(\n `Notification/${notificationId}/Unread`,\n ioBoolean,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while marking the notification as unread.',\n );\n }\n }\n\n async archive(notificationId: string): Promise {\n try {\n return await this.put(\n `Notification/${notificationId}/Archive`,\n ioBoolean,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while archiving the notification.',\n );\n }\n }\n\n async unarchive(notificationId: string): Promise {\n try {\n return await this.put(\n `Notification/${notificationId}/Unarchive`,\n ioBoolean,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue while unarchiving the notification.',\n );\n }\n }\n}\n","import { ProjectSearchIndexDefinition } from '../types/project-search-index-definition.type';\n\nexport class ProjectSearchIndexDefinitionModel\n implements ProjectSearchIndexDefinition\n{\n readonly id: string | null;\n readonly projectID: string | null;\n readonly isTest: boolean;\n readonly isClosed: boolean;\n readonly entityNumber: number;\n readonly projectName: string | null;\n readonly creator: string | null;\n readonly statusUpdater: string | null;\n readonly purchaser: string | null;\n readonly projectResponsible: string | null;\n readonly technicalResponsible: string | null;\n readonly statusName: string | null;\n readonly customer: string | null;\n readonly salesforceID: string | null;\n readonly ipmProjectId: string | null;\n readonly erpProjectId: string | null;\n readonly scope: string | null;\n readonly termsAndConditions: string | null;\n readonly generalInformationComment: string | null;\n readonly projectDescriptionComment: string | null;\n readonly projectCountry: string | null;\n readonly projectCountryCode: string | null;\n readonly number: string | null;\n readonly internalConsortium: string | null;\n readonly additionalEditors: string | null;\n readonly projectSCM: string | null;\n\n constructor(definition: ProjectSearchIndexDefinition) {\n this.id = definition.id;\n this.projectID = definition.projectID;\n this.isTest = definition.isTest;\n this.isClosed = definition.isClosed;\n this.entityNumber = definition.entityNumber;\n this.projectName = definition.projectName;\n this.creator = definition.creator;\n this.statusUpdater = definition.statusUpdater;\n this.purchaser = definition.purchaser;\n this.projectResponsible = definition.projectResponsible;\n this.technicalResponsible = definition.technicalResponsible;\n this.statusName = definition.statusName;\n this.customer = definition.customer;\n this.salesforceID = definition.salesforceID;\n this.ipmProjectId = definition.ipmProjectId;\n this.erpProjectId = definition.erpProjectId;\n this.scope = definition.scope;\n this.termsAndConditions = definition.termsAndConditions;\n this.generalInformationComment = definition.generalInformationComment;\n this.projectDescriptionComment = definition.projectDescriptionComment;\n this.projectCountry = definition.projectCountry;\n this.projectCountryCode = definition.projectCountryCode;\n this.number = definition.number;\n this.internalConsortium = definition.internalConsortium;\n this.additionalEditors = definition.additionalEditors;\n this.projectSCM = definition.projectSCM;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { ProjectSearchIndexDefinitionSearchDocumentItemResult } from '../types/project-search-index-definition-search-document-item-result.type';\nimport { ProjectSearchIndexDefinitionModel } from './project-search-index-definition.model';\n\nexport class ProjectSearchIndexDefinitionSearchDocumentItemResultModel extends BaseModel {\n readonly value: ProjectSearchIndexDefinitionModel;\n readonly highlights: Record | null;\n readonly searchScore: number | null;\n\n constructor(\n result: ProjectSearchIndexDefinitionSearchDocumentItemResult,\n ) {\n super();\n\n this.value = new ProjectSearchIndexDefinitionModel(result.value);\n this.highlights = result.highlights;\n this.searchScore = result.searchScore;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { ProjectSearchIndexDefinitionSearchDocumentResult } from '../types/project-search-index-definition-search-document-result.type';\nimport { ProjectSearchIndexDefinitionSearchDocumentItemResultModel } from './project-search-index-definition-search-document-item-result.model';\n\nexport class ProjectSearchIndexDefinitionSearchDocumentResultModel extends BaseModel {\n readonly count: number | null;\n readonly values: ProjectSearchIndexDefinitionSearchDocumentItemResultModel[];\n\n constructor(result: ProjectSearchIndexDefinitionSearchDocumentResult) {\n super();\n\n this.count = result.count;\n\n this.values = result.values\n .map((value) => new ProjectSearchIndexDefinitionSearchDocumentItemResultModel(value));\n }\n}\n","import { PurchaseRequisitionSearchIndexDefinition } from '../types/purchase-requisition-search-index-definition.type';\n\nexport class PurchaseRequisitionSearchIndexDefinitionModel {\n readonly id: string | null;\n readonly projectID: string | null;\n readonly isClosed: boolean;\n readonly entityNumber: number;\n readonly creator: string | null;\n readonly statusUpdater: string | null;\n readonly purchaser: string | null;\n readonly requester: string | null;\n readonly statusName: string | null;\n readonly poNumber: string | null;\n readonly projectName: string | null;\n readonly sapCostAccount: string | null;\n readonly sapSdPosition: string | null;\n readonly sapCostCenter: string | null;\n readonly sapCostElement: string | null;\n readonly sapProjectNumber: string | null;\n readonly sapPspElement: string | null;\n readonly poDocument: string | null;\n readonly poComment: string | null;\n readonly requiredScope: string | null;\n readonly supplierInvoicingInstructions: string | null;\n readonly deliveryDestinationRelatedComments: string | null;\n readonly specialTermsAndConditionsAndAnnexes: string | null;\n readonly attachmentsToPO: string | null;\n readonly supplier: string | null;\n readonly supplierContact: string | null;\n readonly supplierContactEmail: string | null;\n readonly deliveryDestination: string | null;\n readonly comment: string | null;\n readonly internalUseComment: string | null;\n readonly endUseCountry: string | null;\n readonly endUseCountryCode: string | null;\n readonly requiredSubmittalsToBeReturned: string | null;\n readonly returnedSubmittals: string | null;\n readonly projectLUI: string | null;\n readonly number: string | null;\n readonly projectCountry: string | null;\n readonly projectCountryCode: string | null;\n readonly costAllocation: string | null;\n readonly businessUnit: string | null;\n readonly mdfCodeName: string | null;\n readonly mdfCode: string | null;\n readonly goodsCountryOfOrigin: string | null;\n readonly goodsCountryOfOriginCode: string | null;\n readonly forFurtherDeliveryTo: string | null;\n readonly deliveryAddressName: string | null;\n readonly deliveryAddressLine: string | null;\n readonly deliveryAddressCity: string | null;\n readonly deliveryAddressCountry: string | null;\n readonly deliveryAddressCountryCode: string | null;\n readonly incotermsComments: string | null;\n readonly personAndDepartment: string | null;\n readonly supplierSuggestions: string | null;\n readonly additionalEditors: string | null;\n readonly projectSCM: string | null;\n\n // eslint-disable-next-line max-lines-per-function\n constructor(definition: PurchaseRequisitionSearchIndexDefinition) {\n this.id = definition.id;\n this.projectID = definition.projectID;\n this.isClosed = definition.isClosed;\n this.entityNumber = definition.entityNumber;\n this.creator = definition.creator;\n this.statusUpdater = definition.statusUpdater;\n this.purchaser = definition.purchaser;\n this.requester = definition.requester;\n this.statusName = definition.statusName;\n this.poNumber = definition.poNumber;\n this.projectName = definition.projectName;\n this.sapCostAccount = definition.sapCostAccount;\n this.sapSdPosition = definition.sapSdPosition;\n this.sapCostCenter = definition.sapCostCenter;\n this.sapCostElement = definition.sapCostElement;\n this.sapProjectNumber = definition.sapProjectNumber;\n this.sapPspElement = definition.sapPspElement;\n this.poDocument = definition.poDocument;\n this.poComment = definition.poComment;\n this.requiredScope = definition.requiredScope;\n\n this.supplierInvoicingInstructions =\n definition.supplierInvoicingInstructions;\n\n this.deliveryDestinationRelatedComments =\n definition.deliveryDestinationRelatedComments;\n\n this.specialTermsAndConditionsAndAnnexes =\n definition.specialTermsAndConditionsAndAnnexes;\n\n this.attachmentsToPO = definition.attachmentsToPO;\n this.supplier = definition.supplier;\n this.supplierContact = definition.supplierContact;\n this.supplierContactEmail = definition.supplierContactEmail;\n this.deliveryDestination = definition.deliveryDestination;\n this.comment = definition.comment;\n this.internalUseComment = definition.internalUseComment;\n this.endUseCountry = definition.endUseCountry;\n this.endUseCountryCode = definition.endUseCountryCode;\n\n this.requiredSubmittalsToBeReturned =\n definition.requiredSubmittalsToBeReturned;\n\n this.returnedSubmittals = definition.returnedSubmittals;\n this.projectLUI = definition.projectLUI;\n this.number = definition.number;\n this.projectCountry = definition.projectCountry;\n this.projectCountryCode = definition.projectCountryCode;\n this.costAllocation = definition.costAllocation;\n this.businessUnit = definition.businessUnit;\n this.mdfCodeName = definition.mdfCodeName;\n this.mdfCode = definition.mdfCode;\n this.goodsCountryOfOrigin = definition.goodsCountryOfOrigin;\n this.goodsCountryOfOriginCode = definition.goodsCountryOfOriginCode;\n this.forFurtherDeliveryTo = definition.forFurtherDeliveryTo;\n this.deliveryAddressName = definition.deliveryAddressName;\n this.deliveryAddressLine = definition.deliveryAddressLine;\n this.deliveryAddressCity = definition.deliveryAddressCity;\n this.deliveryAddressCountry = definition.deliveryAddressCountry;\n this.deliveryAddressCountryCode = definition.deliveryAddressCountryCode;\n this.incotermsComments = definition.incotermsComments;\n this.personAndDepartment = definition.personAndDepartment;\n this.supplierSuggestions = definition.supplierSuggestions;\n this.additionalEditors = definition.additionalEditors;\n this.projectSCM = definition.projectSCM;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult } from '../types/purchase-requisition-search-index-definition-search-document-item-result.type';\nimport { PurchaseRequisitionSearchIndexDefinitionModel } from './purchase-requisition-search-index-definition.model';\n\nexport class PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResultModel extends BaseModel {\n readonly value: PurchaseRequisitionSearchIndexDefinitionModel;\n readonly highlights: Record | null;\n readonly searchScore: number | null;\n\n constructor(\n result: PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult,\n ) {\n super();\n\n this.value = new PurchaseRequisitionSearchIndexDefinitionModel(result.value);\n this.highlights = result.highlights;\n this.searchScore = result.searchScore;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult } from '../types/purchase-requisition-search-index-definition-search-document-result.type';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResultModel } from './purchase-requisition-search-index-definition-search-document-item-result.model';\n\nexport class PurchaseRequisitionSearchIndexDefinitionSearchDocumentResultModel extends BaseModel {\n readonly count: number | null;\n readonly values: PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResultModel[];\n\n constructor(\n result: PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult,\n ) {\n super();\n\n this.count = result.count;\n\n this.values = result.values\n .map((value) => new PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResultModel(value));\n }\n}\n","import { RequestForQuotationSearchIndexDefinition } from '../types/request-for-quotation-search-index-definition.type';\n\nexport class RequestForQuotationSearchIndexDefinitionModel {\n readonly id: string | null;\n readonly projectID: string | null;\n readonly isClosed: boolean;\n readonly entityNumber: number;\n readonly number: string | null;\n readonly creator: string | null;\n readonly statusUpdater: string | null;\n readonly purchaser: string | null;\n readonly statusName: string | null;\n readonly supplier: string | null;\n readonly guid: string | null;\n readonly supplierContact: string | null;\n readonly supplierContactEmail: string | null;\n readonly subject: string | null;\n readonly internalUseComment: string | null;\n readonly projectName: string | null;\n readonly requiredScope: string | null;\n readonly projectCountryCode: string | null;\n readonly projectCountry: string | null;\n readonly mdfCodeName: string | null;\n readonly mdfCode: string | null;\n readonly wbsCode: string | null;\n readonly additionalEditors: string | null;\n readonly projectSCM: string | null;\n readonly quotations: string | null;\n readonly quotationOrderLineRows: string | null;\n\n constructor(definition: RequestForQuotationSearchIndexDefinition) {\n this.id = definition.id;\n this.projectID = definition.projectID;\n this.isClosed = definition.isClosed;\n this.entityNumber = definition.entityNumber;\n this.number = definition.number;\n this.creator = definition.creator;\n this.statusUpdater = definition.statusUpdater;\n this.purchaser = definition.purchaser;\n this.statusName = definition.statusName;\n this.supplier = definition.supplier;\n this.guid = definition.guid;\n this.supplierContact = definition.supplierContact;\n this.supplierContactEmail = definition.supplierContactEmail;\n this.subject = definition.subject;\n this.internalUseComment = definition.internalUseComment;\n this.projectName = definition.projectName;\n this.requiredScope = definition.requiredScope;\n this.projectCountryCode = definition.projectCountryCode;\n this.projectCountry = definition.projectCountry;\n this.mdfCodeName = definition.mdfCodeName;\n this.mdfCode = definition.mdfCode;\n this.wbsCode = definition.wbsCode;\n this.additionalEditors = definition.additionalEditors;\n this.projectSCM = definition.projectSCM;\n this.quotations = definition.quotations;\n this.quotationOrderLineRows = definition.quotationOrderLineRows;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult } from '../types/request-for-quotation-search-index-definition-search-document-item-result.type';\nimport { RequestForQuotationSearchIndexDefinitionModel } from './request-for-quotation-search-index-definition.model';\n\nexport class RequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel extends BaseModel {\n readonly value: RequestForQuotationSearchIndexDefinitionModel;\n readonly highlights: Record | null;\n readonly searchScore: number | null;\n\n constructor(\n result: RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult,\n ) {\n super();\n\n this.value = new RequestForQuotationSearchIndexDefinitionModel(result.value);\n this.highlights = result.highlights;\n this.searchScore = result.searchScore;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentResult } from '../types/request-for-quotation-search-index-definition-search-document-result.type';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel } from './request-for-quotation-search-index-definition-search-document-item-result.model';\n\nexport class RequestForQuotationSearchIndexDefinitionSearchDocumentResultModel extends BaseModel {\n readonly count: number | null;\n readonly values: RequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel[];\n\n constructor(\n result: RequestForQuotationSearchIndexDefinitionSearchDocumentResult,\n ) {\n super();\n\n this.count = result.count;\n\n this.values = result.values\n .map((value) => new RequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel(value));\n }\n}\n","import { RequestForRequestForQuotationSearchIndexDefinition } from '../types/request-for-request-for-quotation-search-index-definition.type';\n\nexport class RequestForRequestForQuotationSearchIndexDefinitionModel {\n readonly id: string | null;\n readonly projectID: string | null;\n readonly isClosed: boolean;\n readonly entityNumber: number;\n readonly requiredScope: string | null;\n readonly creator: string | null;\n readonly statusName: string | null;\n readonly requester: string | null;\n readonly purchaser: string | null;\n readonly statusUpdater: string | null;\n readonly requiredSubmittalsToBeReturned: string | null;\n readonly projectName: string | null;\n readonly suppliers: string | null;\n readonly supplierContacts: string | null;\n readonly supplierContactEmails: string | null;\n readonly number: string | null;\n readonly projectCountry: string | null;\n readonly projectCountryCode: string | null;\n readonly mdfCodeName: string | null;\n readonly mdfCode: string | null;\n readonly wbsCode: string | null;\n readonly businessUnit: string | null;\n readonly comments: string | null;\n readonly internalUseComment: string | null;\n readonly finalDestinationCountry: string | null;\n readonly finalDestinationCountryCode: string | null;\n readonly specificationAndQuantities: string | null;\n readonly supplierSuggestions: string | null;\n readonly projectResponsible: string | null;\n readonly technicalResponsible: string | null;\n readonly additionalEditors: string | null;\n readonly projectSCM: string | null;\n\n constructor(definition: RequestForRequestForQuotationSearchIndexDefinition) {\n this.id = definition.id;\n this.projectID = definition.projectID;\n this.isClosed = definition.isClosed;\n this.entityNumber = definition.entityNumber;\n this.requiredScope = definition.requiredScope;\n this.creator = definition.creator;\n this.statusName = definition.statusName;\n this.requester = definition.requester;\n this.purchaser = definition.purchaser;\n this.statusUpdater = definition.statusUpdater;\n this.requiredSubmittalsToBeReturned =\n definition.requiredSubmittalsToBeReturned;\n this.projectName = definition.projectName;\n this.suppliers = definition.suppliers;\n this.supplierContacts = definition.supplierContacts;\n this.supplierContactEmails = definition.supplierContactEmails;\n this.number = definition.number;\n this.projectCountry = definition.projectCountry;\n this.projectCountryCode = definition.projectCountryCode;\n this.mdfCodeName = definition.mdfCodeName;\n this.mdfCode = definition.mdfCode;\n this.wbsCode = definition.wbsCode;\n this.businessUnit = definition.businessUnit;\n this.comments = definition.comments;\n this.internalUseComment = definition.internalUseComment;\n this.finalDestinationCountry = definition.finalDestinationCountry;\n this.finalDestinationCountryCode = definition.finalDestinationCountryCode;\n this.specificationAndQuantities = definition.specificationAndQuantities;\n this.supplierSuggestions = definition.supplierSuggestions;\n this.projectResponsible = definition.projectResponsible;\n this.technicalResponsible = definition.technicalResponsible;\n this.additionalEditors = definition.additionalEditors;\n this.projectSCM = definition.projectSCM;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult } from '../types/request-for-request-for-quotation-search-index-definition-search-document-item-result.type';\nimport { RequestForRequestForQuotationSearchIndexDefinitionModel } from './request-for-request-for-quotation-search-index-definition.model';\n\nexport class RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel extends BaseModel {\n readonly value: RequestForRequestForQuotationSearchIndexDefinitionModel;\n readonly highlights: Record | null;\n readonly searchScore: number | null;\n\n constructor(\n result: RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult,\n ) {\n super();\n\n this.value = new RequestForRequestForQuotationSearchIndexDefinitionModel(result.value);\n this.highlights = result.highlights;\n this.searchScore = result.searchScore;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult } from '../types/request-for-request-for-quotation-search-index-definition-search-document-result.type';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel } from './request-for-request-for-quotation-search-index-definition-search-document-item-result.model';\n\nexport class RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResultModel extends BaseModel {\n readonly count: number | null;\n readonly values: RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel[];\n\n constructor(\n result: RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult,\n ) {\n super();\n\n this.count = result.count;\n\n this.values = result.values\n .map((value) => new RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResultModel(value));\n }\n}\n","import { SupplierSearchIndexDefinition } from '../types/supplier-search-index-definition.type';\n\nexport class SupplierSearchIndexDefinitionModel {\n readonly id: string | null;\n readonly companyName: string | null;\n readonly supplierSource: string | null;\n readonly guid: string | null;\n readonly addressLine: string | null;\n readonly zipCode: string | null;\n readonly city: string | null;\n readonly state: string | null;\n readonly country: string | null;\n\n constructor(definition: SupplierSearchIndexDefinition) {\n this.id = definition.id;\n this.companyName = definition.companyName;\n this.supplierSource = definition.supplierSource;\n this.guid = definition.guid;\n this.addressLine = definition.addressLine;\n this.zipCode = definition.zipCode;\n this.city = definition.city;\n this.state = definition.state;\n this.country = definition.country;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { SupplierSearchIndexDefinitionSearchDocumentItemResult } from '../types/supplier-search-index-definition-search-document-item-result.type';\nimport { SupplierSearchIndexDefinitionModel } from './supplier-search-index-definition.model';\n\nexport class SupplierSearchIndexDefinitionSearchDocumentItemResultModel extends BaseModel {\n readonly value: SupplierSearchIndexDefinitionModel;\n readonly highlights: Record | null;\n readonly searchScore: number | null;\n\n constructor(\n result: SupplierSearchIndexDefinitionSearchDocumentItemResult,\n ) {\n super();\n\n this.value = new SupplierSearchIndexDefinitionModel(result.value);\n this.highlights = result.highlights;\n this.searchScore = result.searchScore;\n }\n}\n","import { BaseModel } from '@abb-procure/data';\nimport { SupplierSearchIndexDefinitionSearchDocumentResult } from '../types/supplier-search-index-definition-search-document-result.type';\nimport { SupplierSearchIndexDefinitionSearchDocumentItemResultModel } from './supplier-search-index-definition-search-document-item-result.model';\n\nexport class SupplierSearchIndexDefinitionSearchDocumentResultModel extends BaseModel {\n readonly count: number | null;\n readonly values: SupplierSearchIndexDefinitionSearchDocumentItemResultModel[];\n\n constructor(\n result: SupplierSearchIndexDefinitionSearchDocumentResult,\n ) {\n super();\n\n this.count = result.count;\n\n this.values = result.values\n .map((value) => new SupplierSearchIndexDefinitionSearchDocumentItemResultModel(value));\n }\n}\n","import { SearchDocumentResponse } from '../types/search-document-response.type';\nimport { ProjectSearchIndexDefinitionSearchDocumentResultModel } from './project-search-index-definition-search-document-result.model';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentResultModel } from './purchase-requisition-search-index-definition-search-document-result.model';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentResultModel } from './request-for-quotation-search-index-definition-search-document-result.model';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResultModel } from './request-for-request-for-quotation-search-index-definition-search-document-result.model';\nimport { SupplierSearchIndexDefinitionSearchDocumentResultModel } from './supplier-search-index-definition-search-document-result.model';\n\nexport class SearchDocumentResponseModel {\n readonly projects: ProjectSearchIndexDefinitionSearchDocumentResultModel | null;\n // eslint-disable-next-line max-len\n readonly requestForRequestForQuotations: RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResultModel | null;\n readonly requestForQuotations: RequestForQuotationSearchIndexDefinitionSearchDocumentResultModel | null;\n readonly purchaseRequisitions: PurchaseRequisitionSearchIndexDefinitionSearchDocumentResultModel | null;\n readonly suppliers: SupplierSearchIndexDefinitionSearchDocumentResultModel | null;\n\n constructor(\n searchDocumentResponse: SearchDocumentResponse,\n ) {\n this.projects = searchDocumentResponse.projects ? new ProjectSearchIndexDefinitionSearchDocumentResultModel(\n searchDocumentResponse.projects,\n ) : null;\n\n this.requestForRequestForQuotations = searchDocumentResponse.requestForRequestForQuotations\n ? new RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResultModel(\n searchDocumentResponse.requestForRequestForQuotations,\n )\n : null;\n\n this.requestForQuotations = searchDocumentResponse.requestForQuotations\n ? new RequestForQuotationSearchIndexDefinitionSearchDocumentResultModel(\n searchDocumentResponse.requestForQuotations,\n )\n : null;\n\n this.purchaseRequisitions = searchDocumentResponse.purchaseRequisitions\n ? new PurchaseRequisitionSearchIndexDefinitionSearchDocumentResultModel(\n searchDocumentResponse.purchaseRequisitions,\n )\n : null;\n\n this.suppliers = searchDocumentResponse.suppliers ? new SupplierSearchIndexDefinitionSearchDocumentResultModel(\n searchDocumentResponse.suppliers,\n ) : null;\n }\n}\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst ProjectSearchIndexDefinition = t.type(\n {\n id: nullable(t.string),\n projectID: nullable(t.string),\n isTest: t.boolean,\n isClosed: t.boolean,\n entityNumber: t.number,\n projectName: nullable(t.string),\n creator: nullable(t.string),\n statusUpdater: nullable(t.string),\n purchaser: nullable(t.string),\n projectResponsible: nullable(t.string),\n technicalResponsible: nullable(t.string),\n statusName: nullable(t.string),\n customer: nullable(t.string),\n salesforceID: nullable(t.string),\n ipmProjectId: nullable(t.string),\n erpProjectId: nullable(t.string),\n scope: nullable(t.string),\n termsAndConditions: nullable(t.string),\n generalInformationComment: nullable(t.string),\n projectDescriptionComment: nullable(t.string),\n projectCountry: nullable(t.string),\n projectCountryCode: nullable(t.string),\n number: nullable(t.string),\n internalConsortium: nullable(t.string),\n additionalEditors: nullable(t.string),\n projectSCM: nullable(t.string),\n },\n 'ProjectSearchIndexDefinition',\n);\n\ntype ProjectSearchIndexDefinition = t.TypeOf<\n typeof ProjectSearchIndexDefinition\n>;\nexport { ProjectSearchIndexDefinition };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { ProjectSearchIndexDefinition } from './project-search-index-definition.type';\n\nconst ProjectSearchIndexDefinitionSearchDocumentItemResult = t.type({\n value: ProjectSearchIndexDefinition,\n highlights: nullable(t.record(t.string, t.array(t.string))),\n searchScore: nullable(t.number),\n}, 'ProjectSearchIndexDefinitionSearchDocumentItemResult');\n\ntype ProjectSearchIndexDefinitionSearchDocumentItemResult = t.TypeOf<\n typeof ProjectSearchIndexDefinitionSearchDocumentItemResult\n>;\nexport { ProjectSearchIndexDefinitionSearchDocumentItemResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { ProjectSearchIndexDefinitionSearchDocumentItemResult } from './project-search-index-definition-search-document-item-result.type';\n\nconst ProjectSearchIndexDefinitionSearchDocumentResult = t.type({\n count: nullable(t.number),\n values: t.array(ProjectSearchIndexDefinitionSearchDocumentItemResult),\n}, 'ProjectSearchIndexDefinitionSearchDocumentResult');\n\ntype ProjectSearchIndexDefinitionSearchDocumentResult = t.TypeOf<\n typeof ProjectSearchIndexDefinitionSearchDocumentResult\n>;\nexport { ProjectSearchIndexDefinitionSearchDocumentResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst PurchaseRequisitionSearchIndexDefinition = t.type(\n {\n id: nullable(t.string),\n projectID: nullable(t.string),\n isClosed: t.boolean,\n entityNumber: t.number,\n creator: nullable(t.string),\n statusUpdater: nullable(t.string),\n purchaser: nullable(t.string),\n requester: nullable(t.string),\n statusName: nullable(t.string),\n poNumber: nullable(t.string),\n projectName: nullable(t.string),\n sapCostAccount: nullable(t.string),\n sapSdPosition: nullable(t.string),\n sapCostCenter: nullable(t.string),\n sapCostElement: nullable(t.string),\n sapProjectNumber: nullable(t.string),\n sapPspElement: nullable(t.string),\n poDocument: nullable(t.string),\n poComment: nullable(t.string),\n requiredScope: nullable(t.string),\n supplierInvoicingInstructions: nullable(t.string),\n deliveryDestinationRelatedComments: nullable(t.string),\n specialTermsAndConditionsAndAnnexes: nullable(t.string),\n attachmentsToPO: nullable(t.string),\n supplier: nullable(t.string),\n supplierContact: nullable(t.string),\n supplierContactEmail: nullable(t.string),\n deliveryDestination: nullable(t.string),\n comment: nullable(t.string),\n internalUseComment: nullable(t.string),\n endUseCountry: nullable(t.string),\n endUseCountryCode: nullable(t.string),\n requiredSubmittalsToBeReturned: nullable(t.string),\n returnedSubmittals: nullable(t.string),\n projectLUI: nullable(t.string),\n number: nullable(t.string),\n projectCountry: nullable(t.string),\n projectCountryCode: nullable(t.string),\n costAllocation: nullable(t.string),\n businessUnit: nullable(t.string),\n mdfCodeName: nullable(t.string),\n mdfCode: nullable(t.string),\n goodsCountryOfOrigin: nullable(t.string),\n goodsCountryOfOriginCode: nullable(t.string),\n forFurtherDeliveryTo: nullable(t.string),\n deliveryAddressName: nullable(t.string),\n deliveryAddressLine: nullable(t.string),\n deliveryAddressCity: nullable(t.string),\n deliveryAddressCountry: nullable(t.string),\n deliveryAddressCountryCode: nullable(t.string),\n incotermsComments: nullable(t.string),\n personAndDepartment: nullable(t.string),\n supplierSuggestions: nullable(t.string),\n additionalEditors: nullable(t.string),\n projectSCM: nullable(t.string),\n },\n 'PurchaseRequisitionSearchIndexDefinition',\n);\n\ntype PurchaseRequisitionSearchIndexDefinition = t.TypeOf<\n typeof PurchaseRequisitionSearchIndexDefinition\n>;\nexport { PurchaseRequisitionSearchIndexDefinition };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { PurchaseRequisitionSearchIndexDefinition } from './purchase-requisition-search-index-definition.type';\n\nconst PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult = t.type({\n value: PurchaseRequisitionSearchIndexDefinition,\n highlights: nullable(t.record(t.string, t.array(t.string))),\n searchScore: nullable(t.number),\n}, 'PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult');\n\ntype PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult = t.TypeOf<\n typeof PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult\n>;\nexport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult } from './purchase-requisition-search-index-definition-search-document-item-result.type';\n\nconst PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult = t.type({\n count: nullable(t.number),\n values: t.array(PurchaseRequisitionSearchIndexDefinitionSearchDocumentItemResult),\n}, 'PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult');\n\ntype PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult = t.TypeOf<\n typeof PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult\n>;\nexport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst RequestForQuotationSearchIndexDefinition = t.type(\n {\n id: nullable(t.string),\n projectID: nullable(t.string),\n isClosed: t.boolean,\n entityNumber: t.number,\n number: nullable(t.string),\n creator: nullable(t.string),\n statusUpdater: nullable(t.string),\n purchaser: nullable(t.string),\n statusName: nullable(t.string),\n supplier: nullable(t.string),\n guid: nullable(t.string),\n supplierContact: nullable(t.string),\n supplierContactEmail: nullable(t.string),\n subject: nullable(t.string),\n internalUseComment: nullable(t.string),\n projectName: nullable(t.string),\n requiredScope: nullable(t.string),\n projectCountryCode: nullable(t.string),\n projectCountry: nullable(t.string),\n mdfCodeName: nullable(t.string),\n mdfCode: nullable(t.string),\n wbsCode: nullable(t.string),\n additionalEditors: nullable(t.string),\n projectSCM: nullable(t.string),\n quotations: nullable(t.string),\n quotationOrderLineRows: nullable(t.string),\n },\n 'RequestForQuotationSearchIndexDefinition',\n);\n\ntype RequestForQuotationSearchIndexDefinition = t.TypeOf<\n typeof RequestForQuotationSearchIndexDefinition\n>;\nexport { RequestForQuotationSearchIndexDefinition };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { RequestForQuotationSearchIndexDefinition } from './request-for-quotation-search-index-definition.type';\n\nconst RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult = t.type({\n value: RequestForQuotationSearchIndexDefinition,\n highlights: nullable(t.record(t.string, t.array(t.string))),\n searchScore: nullable(t.number),\n}, 'RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult');\n\ntype RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult = t.TypeOf<\n typeof RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult\n>;\nexport { RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult } from './request-for-quotation-search-index-definition-search-document-item-result.type';\n\nconst RequestForQuotationSearchIndexDefinitionSearchDocumentResult = t.type({\n count: nullable(t.number),\n values: t.array(RequestForQuotationSearchIndexDefinitionSearchDocumentItemResult),\n}, 'RequestForQuotationSearchIndexDefinitionSearchDocumentResult');\n\ntype RequestForQuotationSearchIndexDefinitionSearchDocumentResult = t.TypeOf<\n typeof RequestForQuotationSearchIndexDefinitionSearchDocumentResult\n>;\nexport { RequestForQuotationSearchIndexDefinitionSearchDocumentResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst RequestForRequestForQuotationSearchIndexDefinition = t.type(\n {\n id: nullable(t.string),\n projectID: nullable(t.string),\n isClosed: t.boolean,\n entityNumber: t.number,\n requiredScope: nullable(t.string),\n creator: nullable(t.string),\n statusName: nullable(t.string),\n requester: nullable(t.string),\n purchaser: nullable(t.string),\n statusUpdater: nullable(t.string),\n requiredSubmittalsToBeReturned: nullable(t.string),\n projectName: nullable(t.string),\n suppliers: nullable(t.string),\n supplierContacts: nullable(t.string),\n supplierContactEmails: nullable(t.string),\n number: nullable(t.string),\n projectCountry: nullable(t.string),\n projectCountryCode: nullable(t.string),\n mdfCodeName: nullable(t.string),\n mdfCode: nullable(t.string),\n wbsCode: nullable(t.string),\n businessUnit: nullable(t.string),\n comments: nullable(t.string),\n internalUseComment: nullable(t.string),\n finalDestinationCountry: nullable(t.string),\n finalDestinationCountryCode: nullable(t.string),\n specificationAndQuantities: nullable(t.string),\n supplierSuggestions: nullable(t.string),\n projectResponsible: nullable(t.string),\n technicalResponsible: nullable(t.string),\n additionalEditors: nullable(t.string),\n projectSCM: nullable(t.string),\n },\n 'RequestForRequestForQuotationSearchIndexDefinition',\n);\n\ntype RequestForRequestForQuotationSearchIndexDefinition = t.TypeOf<\n typeof RequestForRequestForQuotationSearchIndexDefinition\n>;\nexport { RequestForRequestForQuotationSearchIndexDefinition };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { RequestForRequestForQuotationSearchIndexDefinition } from './request-for-request-for-quotation-search-index-definition.type';\n\nconst RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult = t.type({\n value: RequestForRequestForQuotationSearchIndexDefinition,\n highlights: nullable(t.record(t.string, t.array(t.string))),\n searchScore: nullable(t.number),\n}, 'RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult');\n\ntype RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult = t.TypeOf<\n typeof RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult\n>;\nexport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult } from './request-for-request-for-quotation-search-index-definition-search-document-item-result.type';\n\nconst RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult = t.type({\n count: nullable(t.number),\n values: t.array(RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentItemResult),\n}, 'RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult');\n\ntype RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult = t.TypeOf<\n typeof RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult\n>;\nexport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\n\nconst SupplierSearchIndexDefinition = t.type(\n {\n id: nullable(t.string),\n companyName: nullable(t.string),\n supplierSource: nullable(t.string),\n guid: nullable(t.string),\n addressLine: nullable(t.string),\n zipCode: nullable(t.string),\n city: nullable(t.string),\n state: nullable(t.string),\n country: nullable(t.string),\n },\n 'SupplierSearchIndexDefinition',\n);\n\ntype SupplierSearchIndexDefinition = t.TypeOf<\n typeof SupplierSearchIndexDefinition\n>;\nexport { SupplierSearchIndexDefinition };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { SupplierSearchIndexDefinition } from './supplier-search-index-definition.type';\n\nconst SupplierSearchIndexDefinitionSearchDocumentItemResult = t.type({\n value: SupplierSearchIndexDefinition,\n highlights: nullable(t.record(t.string, t.array(t.string))),\n searchScore: nullable(t.number),\n}, 'SupplierSearchIndexDefinitionSearchDocumentItemResult');\n\ntype SupplierSearchIndexDefinitionSearchDocumentItemResult = t.TypeOf<\n typeof SupplierSearchIndexDefinitionSearchDocumentItemResult\n>;\nexport { SupplierSearchIndexDefinitionSearchDocumentItemResult };\n","import { nullable } from '@abb-procure/api';\nimport * as t from 'io-ts';\nimport { SupplierSearchIndexDefinitionSearchDocumentItemResult } from './supplier-search-index-definition-search-document-item-result.type';\n\nconst SupplierSearchIndexDefinitionSearchDocumentResult = t.type({\n count: nullable(t.number),\n values: t.array(SupplierSearchIndexDefinitionSearchDocumentItemResult),\n}, 'SupplierSearchIndexDefinitionSearchDocumentResult');\n\ntype SupplierSearchIndexDefinitionSearchDocumentResult = t.TypeOf<\n typeof SupplierSearchIndexDefinitionSearchDocumentResult\n>;\nexport { SupplierSearchIndexDefinitionSearchDocumentResult };\n","import * as t from 'io-ts';\nimport { ProjectSearchIndexDefinitionSearchDocumentResult } from './project-search-index-definition-search-document-result.type';\nimport { PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult } from './purchase-requisition-search-index-definition-search-document-result.type';\nimport { RequestForQuotationSearchIndexDefinitionSearchDocumentResult } from './request-for-quotation-search-index-definition-search-document-result.type';\nimport { RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult } from './request-for-request-for-quotation-search-index-definition-search-document-result.type';\nimport { SupplierSearchIndexDefinitionSearchDocumentResult } from './supplier-search-index-definition-search-document-result.type';\n\nconst SearchDocumentResponse = t.type({\n projects: t.union([ProjectSearchIndexDefinitionSearchDocumentResult, t.null], 'projects'),\n requestForRequestForQuotations: t.union([\n RequestForRequestForQuotationSearchIndexDefinitionSearchDocumentResult,\n t.null,\n ], 'requestForRequestForQuotations'),\n requestForQuotations: t.union([RequestForQuotationSearchIndexDefinitionSearchDocumentResult, t.null], 'requestForQuotations'),\n purchaseRequisitions: t.union([PurchaseRequisitionSearchIndexDefinitionSearchDocumentResult, t.null], 'purchaseRequisitions'),\n suppliers: t.union([SupplierSearchIndexDefinitionSearchDocumentResult, t.null], 'suppliers'),\n}, 'SearchDocumentResponse');\n\ntype SearchDocumentResponse = t.TypeOf<\n typeof SearchDocumentResponse\n>;\nexport { SearchDocumentResponse };\n","import { ApiService, CustomHttpParams } from '@abb-procure/api';\nimport { EntityIdAliasPrefixes } from '@abb-procure/constants';\nimport { Injectable } from '@angular/core';\nimport { boolean as ioBoolean } from 'io-ts';\nimport { SearchDocumentResponseModel } from '../models/search-document-response.model';\nimport { AddSearchActivityRequest } from '../types/add-search-activity-request.type';\nimport { SearchDocumentResponse } from '../types/search-document-response.type';\n\nexport const SEARCH_ALL_SYMBOL: string = '*';\n\nexport type SearchOptions = {\n highlightPreTag: string;\n highlightPostTag: string;\n searchTerm?: string;\n type?: EntityIdAliasPrefixes;\n top?: number;\n skip?: number;\n showInactive?: boolean;\n showClosed?: boolean;\n includeTotalCount?: boolean;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SearchApiService extends ApiService {\n async search(\n options?: SearchOptions,\n ): Promise {\n const params = new CustomHttpParams(options);\n\n try {\n const response = await this.get(\n 'Search',\n SearchDocumentResponse,\n params,\n );\n\n return response != null\n ? new SearchDocumentResponseModel(response)\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the search results.',\n );\n }\n }\n\n async quickSearch(\n searchTerm: string,\n ): Promise {\n const params = new CustomHttpParams({\n searchTerm,\n });\n\n try {\n const response = await this.get(\n 'Search/Quick',\n SearchDocumentResponse,\n params,\n );\n\n return response != null\n ? new SearchDocumentResponseModel(response)\n : null;\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue retrieving the search results.',\n );\n }\n }\n\n async addSearchActivity(\n request: AddSearchActivityRequest,\n ): Promise {\n try {\n return await this.post(\n 'Search',\n ioBoolean,\n request,\n );\n } catch (error) {\n return this.catchError(\n error,\n 'There was an issue adding the search activity.',\n );\n }\n }\n}\n","import { DEFAULT_BIG_DIALOG_WIDTH } from '@abb-procure/constants';\nimport { Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport type { TemplateFinderDialogComponent } from '../components/template-finder-dialog/template-finder-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TemplateFinderDialogService {\n private readonly dialog = inject(MatDialog);\n\n async openTemplateFinderDialog(\n projectId?: string,\n ): Promise> {\n const module = await import(\n '../components/template-finder-dialog/template-finder-dialog.component'\n );\n\n return this.dialog.open(module.TemplateFinderDialogComponent, {\n width: DEFAULT_BIG_DIALOG_WIDTH,\n data: {\n projectId,\n },\n panelClass: ['template-finder-dialog'],\n });\n }\n}\n","var map = {\n\t\"./af-NA.mjs\": [\n\t\t56084,\n\t\t56084\n\t],\n\t\"./af.mjs\": [\n\t\t51998,\n\t\t51998\n\t],\n\t\"./agq.mjs\": [\n\t\t59404,\n\t\t59404\n\t],\n\t\"./ak.mjs\": [\n\t\t88483,\n\t\t88483\n\t],\n\t\"./am.mjs\": [\n\t\t91989,\n\t\t91989\n\t],\n\t\"./ar-AE.mjs\": [\n\t\t41117,\n\t\t41117\n\t],\n\t\"./ar-BH.mjs\": [\n\t\t32677,\n\t\t32677\n\t],\n\t\"./ar-DJ.mjs\": [\n\t\t92105,\n\t\t92105\n\t],\n\t\"./ar-DZ.mjs\": [\n\t\t83801,\n\t\t83801\n\t],\n\t\"./ar-EG.mjs\": [\n\t\t35483,\n\t\t35483\n\t],\n\t\"./ar-EH.mjs\": [\n\t\t21364,\n\t\t21364\n\t],\n\t\"./ar-ER.mjs\": [\n\t\t53566,\n\t\t53566\n\t],\n\t\"./ar-IL.mjs\": [\n\t\t77628,\n\t\t77628\n\t],\n\t\"./ar-IQ.mjs\": [\n\t\t18953,\n\t\t18953\n\t],\n\t\"./ar-JO.mjs\": [\n\t\t64194,\n\t\t64194\n\t],\n\t\"./ar-KM.mjs\": [\n\t\t24827,\n\t\t24827\n\t],\n\t\"./ar-KW.mjs\": [\n\t\t16041,\n\t\t16041\n\t],\n\t\"./ar-LB.mjs\": [\n\t\t6841,\n\t\t6841\n\t],\n\t\"./ar-LY.mjs\": [\n\t\t6946,\n\t\t6946\n\t],\n\t\"./ar-MA.mjs\": [\n\t\t31477,\n\t\t31477\n\t],\n\t\"./ar-MR.mjs\": [\n\t\t92294,\n\t\t92294\n\t],\n\t\"./ar-OM.mjs\": [\n\t\t37727,\n\t\t37727\n\t],\n\t\"./ar-PS.mjs\": [\n\t\t45524,\n\t\t45524\n\t],\n\t\"./ar-QA.mjs\": [\n\t\t95041,\n\t\t95041\n\t],\n\t\"./ar-SA.mjs\": [\n\t\t13207,\n\t\t13207\n\t],\n\t\"./ar-SD.mjs\": [\n\t\t38290,\n\t\t38290\n\t],\n\t\"./ar-SO.mjs\": [\n\t\t72793,\n\t\t72793\n\t],\n\t\"./ar-SS.mjs\": [\n\t\t66333,\n\t\t66333\n\t],\n\t\"./ar-SY.mjs\": [\n\t\t76383,\n\t\t76383\n\t],\n\t\"./ar-TD.mjs\": [\n\t\t3543,\n\t\t3543\n\t],\n\t\"./ar-TN.mjs\": [\n\t\t26437,\n\t\t26437\n\t],\n\t\"./ar-YE.mjs\": [\n\t\t91701,\n\t\t91701\n\t],\n\t\"./ar.mjs\": [\n\t\t48562,\n\t\t48562\n\t],\n\t\"./as.mjs\": [\n\t\t33915,\n\t\t33915\n\t],\n\t\"./asa.mjs\": [\n\t\t2824,\n\t\t2824\n\t],\n\t\"./ast.mjs\": [\n\t\t32133,\n\t\t32133\n\t],\n\t\"./az-Cyrl.mjs\": [\n\t\t48873,\n\t\t48873\n\t],\n\t\"./az-Latn.mjs\": [\n\t\t21184,\n\t\t21184\n\t],\n\t\"./az.mjs\": [\n\t\t14058,\n\t\t14058\n\t],\n\t\"./bas.mjs\": [\n\t\t23979,\n\t\t23979\n\t],\n\t\"./be-tarask.mjs\": [\n\t\t9833,\n\t\t9833\n\t],\n\t\"./be.mjs\": [\n\t\t24960,\n\t\t24960\n\t],\n\t\"./bem.mjs\": [\n\t\t30729,\n\t\t30729\n\t],\n\t\"./bez.mjs\": [\n\t\t24230,\n\t\t24230\n\t],\n\t\"./bg.mjs\": [\n\t\t978,\n\t\t978\n\t],\n\t\"./bm.mjs\": [\n\t\t61720,\n\t\t61720\n\t],\n\t\"./bn-IN.mjs\": [\n\t\t93714,\n\t\t71333\n\t],\n\t\"./bn.mjs\": [\n\t\t55635,\n\t\t55635\n\t],\n\t\"./bo-IN.mjs\": [\n\t\t60294,\n\t\t60294\n\t],\n\t\"./bo.mjs\": [\n\t\t66474,\n\t\t66474\n\t],\n\t\"./br.mjs\": [\n\t\t62503,\n\t\t62503\n\t],\n\t\"./brx.mjs\": [\n\t\t54389,\n\t\t54389\n\t],\n\t\"./bs-Cyrl.mjs\": [\n\t\t68037,\n\t\t68037\n\t],\n\t\"./bs-Latn.mjs\": [\n\t\t11612,\n\t\t11612\n\t],\n\t\"./bs.mjs\": [\n\t\t4414,\n\t\t4414\n\t],\n\t\"./ca-AD.mjs\": [\n\t\t79435,\n\t\t79435\n\t],\n\t\"./ca-ES-valencia.mjs\": [\n\t\t61136,\n\t\t61136\n\t],\n\t\"./ca-FR.mjs\": [\n\t\t52176,\n\t\t52176\n\t],\n\t\"./ca-IT.mjs\": [\n\t\t64467,\n\t\t64467\n\t],\n\t\"./ca.mjs\": [\n\t\t43239,\n\t\t43239\n\t],\n\t\"./ccp-IN.mjs\": [\n\t\t51593,\n\t\t51593\n\t],\n\t\"./ccp.mjs\": [\n\t\t84607,\n\t\t84607\n\t],\n\t\"./ce.mjs\": [\n\t\t23403,\n\t\t23403\n\t],\n\t\"./ceb.mjs\": [\n\t\t62515,\n\t\t62515\n\t],\n\t\"./cgg.mjs\": [\n\t\t57132,\n\t\t57132\n\t],\n\t\"./chr.mjs\": [\n\t\t7556,\n\t\t7556\n\t],\n\t\"./ckb-IR.mjs\": [\n\t\t93315,\n\t\t93315\n\t],\n\t\"./ckb.mjs\": [\n\t\t4717,\n\t\t4717\n\t],\n\t\"./cs.mjs\": [\n\t\t83405,\n\t\t83405\n\t],\n\t\"./cy.mjs\": [\n\t\t74671,\n\t\t74671\n\t],\n\t\"./da-GL.mjs\": [\n\t\t43246,\n\t\t43246\n\t],\n\t\"./da.mjs\": [\n\t\t15042,\n\t\t15042\n\t],\n\t\"./dav.mjs\": [\n\t\t36468,\n\t\t14087\n\t],\n\t\"./de-AT.mjs\": [\n\t\t75456,\n\t\t75456\n\t],\n\t\"./de-BE.mjs\": [\n\t\t99396,\n\t\t99396\n\t],\n\t\"./de-CH.mjs\": [\n\t\t13138,\n\t\t13138\n\t],\n\t\"./de-IT.mjs\": [\n\t\t91880,\n\t\t91880\n\t],\n\t\"./de-LI.mjs\": [\n\t\t63702,\n\t\t41321\n\t],\n\t\"./de-LU.mjs\": [\n\t\t3474,\n\t\t3474\n\t],\n\t\"./de.mjs\": [\n\t\t97662,\n\t\t97662\n\t],\n\t\"./dje.mjs\": [\n\t\t70950,\n\t\t70950\n\t],\n\t\"./doi.mjs\": [\n\t\t34241,\n\t\t34241\n\t],\n\t\"./dsb.mjs\": [\n\t\t71646,\n\t\t71646\n\t],\n\t\"./dua.mjs\": [\n\t\t49879,\n\t\t49879\n\t],\n\t\"./dyo.mjs\": [\n\t\t38181,\n\t\t38181\n\t],\n\t\"./dz.mjs\": [\n\t\t14937,\n\t\t14937\n\t],\n\t\"./ebu.mjs\": [\n\t\t26251,\n\t\t26251\n\t],\n\t\"./ee-TG.mjs\": [\n\t\t68685,\n\t\t68685\n\t],\n\t\"./ee.mjs\": [\n\t\t89249,\n\t\t89249\n\t],\n\t\"./el-CY.mjs\": [\n\t\t92261,\n\t\t92261\n\t],\n\t\"./el.mjs\": [\n\t\t58360,\n\t\t58360\n\t],\n\t\"./en-001.mjs\": [\n\t\t99116,\n\t\t99116\n\t],\n\t\"./en-150.mjs\": [\n\t\t86887,\n\t\t86887\n\t],\n\t\"./en-AE.mjs\": [\n\t\t49557,\n\t\t49557\n\t],\n\t\"./en-AG.mjs\": [\n\t\t13599,\n\t\t13599\n\t],\n\t\"./en-AI.mjs\": [\n\t\t50801,\n\t\t50801\n\t],\n\t\"./en-AS.mjs\": [\n\t\t20659,\n\t\t20659\n\t],\n\t\"./en-AT.mjs\": [\n\t\t79764,\n\t\t79764\n\t],\n\t\"./en-AU.mjs\": [\n\t\t89669,\n\t\t89669\n\t],\n\t\"./en-BB.mjs\": [\n\t\t96143,\n\t\t96143\n\t],\n\t\"./en-BE.mjs\": [\n\t\t37080,\n\t\t37080\n\t],\n\t\"./en-BI.mjs\": [\n\t\t51580,\n\t\t51580\n\t],\n\t\"./en-BM.mjs\": [\n\t\t65696,\n\t\t65696\n\t],\n\t\"./en-BS.mjs\": [\n\t\t43894,\n\t\t43894\n\t],\n\t\"./en-BW.mjs\": [\n\t\t51418,\n\t\t51418\n\t],\n\t\"./en-BZ.mjs\": [\n\t\t14567,\n\t\t14567\n\t],\n\t\"./en-CA.mjs\": [\n\t\t65375,\n\t\t65375\n\t],\n\t\"./en-CC.mjs\": [\n\t\t1333,\n\t\t1333\n\t],\n\t\"./en-CH.mjs\": [\n\t\t49950,\n\t\t49950\n\t],\n\t\"./en-CK.mjs\": [\n\t\t13629,\n\t\t13629\n\t],\n\t\"./en-CM.mjs\": [\n\t\t67915,\n\t\t67915\n\t],\n\t\"./en-CX.mjs\": [\n\t\t71854,\n\t\t71854\n\t],\n\t\"./en-CY.mjs\": [\n\t\t37783,\n\t\t37783\n\t],\n\t\"./en-DE.mjs\": [\n\t\t85174,\n\t\t85174\n\t],\n\t\"./en-DG.mjs\": [\n\t\t63620,\n\t\t63620\n\t],\n\t\"./en-DK.mjs\": [\n\t\t41680,\n\t\t41680\n\t],\n\t\"./en-DM.mjs\": [\n\t\t40286,\n\t\t40286\n\t],\n\t\"./en-ER.mjs\": [\n\t\t37590,\n\t\t37590\n\t],\n\t\"./en-FI.mjs\": [\n\t\t59912,\n\t\t59912\n\t],\n\t\"./en-FJ.mjs\": [\n\t\t93155,\n\t\t93155\n\t],\n\t\"./en-FK.mjs\": [\n\t\t68826,\n\t\t68826\n\t],\n\t\"./en-FM.mjs\": [\n\t\t58148,\n\t\t58148\n\t],\n\t\"./en-GB.mjs\": [\n\t\t61696,\n\t\t61696\n\t],\n\t\"./en-GD.mjs\": [\n\t\t36814,\n\t\t36814\n\t],\n\t\"./en-GG.mjs\": [\n\t\t93933,\n\t\t93933\n\t],\n\t\"./en-GH.mjs\": [\n\t\t31498,\n\t\t31498\n\t],\n\t\"./en-GI.mjs\": [\n\t\t38451,\n\t\t38451\n\t],\n\t\"./en-GM.mjs\": [\n\t\t85199,\n\t\t85199\n\t],\n\t\"./en-GU.mjs\": [\n\t\t53767,\n\t\t53767\n\t],\n\t\"./en-GY.mjs\": [\n\t\t45571,\n\t\t45571\n\t],\n\t\"./en-HK.mjs\": [\n\t\t75276,\n\t\t75276\n\t],\n\t\"./en-IE.mjs\": [\n\t\t57069,\n\t\t57069\n\t],\n\t\"./en-IL.mjs\": [\n\t\t41844,\n\t\t41844\n\t],\n\t\"./en-IM.mjs\": [\n\t\t51749,\n\t\t51749\n\t],\n\t\"./en-IN.mjs\": [\n\t\t18534,\n\t\t18534\n\t],\n\t\"./en-IO.mjs\": [\n\t\t5807,\n\t\t5807\n\t],\n\t\"./en-JE.mjs\": [\n\t\t61008,\n\t\t61008\n\t],\n\t\"./en-JM.mjs\": [\n\t\t33128,\n\t\t33128\n\t],\n\t\"./en-KE.mjs\": [\n\t\t5339,\n\t\t5339\n\t],\n\t\"./en-KI.mjs\": [\n\t\t15887,\n\t\t15887\n\t],\n\t\"./en-KN.mjs\": [\n\t\t92632,\n\t\t92632\n\t],\n\t\"./en-KY.mjs\": [\n\t\t27455,\n\t\t27455\n\t],\n\t\"./en-LC.mjs\": [\n\t\t50656,\n\t\t50656\n\t],\n\t\"./en-LR.mjs\": [\n\t\t41201,\n\t\t41201\n\t],\n\t\"./en-LS.mjs\": [\n\t\t3760,\n\t\t3760\n\t],\n\t\"./en-MG.mjs\": [\n\t\t91179,\n\t\t91179\n\t],\n\t\"./en-MH.mjs\": [\n\t\t67812,\n\t\t67812\n\t],\n\t\"./en-MO.mjs\": [\n\t\t2819,\n\t\t2819\n\t],\n\t\"./en-MP.mjs\": [\n\t\t90556,\n\t\t90556\n\t],\n\t\"./en-MS.mjs\": [\n\t\t18519,\n\t\t18519\n\t],\n\t\"./en-MT.mjs\": [\n\t\t18944,\n\t\t18944\n\t],\n\t\"./en-MU.mjs\": [\n\t\t14273,\n\t\t14273\n\t],\n\t\"./en-MV.mjs\": [\n\t\t74226,\n\t\t74226\n\t],\n\t\"./en-MW.mjs\": [\n\t\t17051,\n\t\t17051\n\t],\n\t\"./en-MY.mjs\": [\n\t\t98885,\n\t\t98885\n\t],\n\t\"./en-NA.mjs\": [\n\t\t96616,\n\t\t96616\n\t],\n\t\"./en-NF.mjs\": [\n\t\t92447,\n\t\t92447\n\t],\n\t\"./en-NG.mjs\": [\n\t\t98614,\n\t\t98614\n\t],\n\t\"./en-NL.mjs\": [\n\t\t93725,\n\t\t93725\n\t],\n\t\"./en-NR.mjs\": [\n\t\t28243,\n\t\t28243\n\t],\n\t\"./en-NU.mjs\": [\n\t\t44820,\n\t\t44820\n\t],\n\t\"./en-NZ.mjs\": [\n\t\t58939,\n\t\t58939\n\t],\n\t\"./en-PG.mjs\": [\n\t\t74080,\n\t\t74080\n\t],\n\t\"./en-PH.mjs\": [\n\t\t29647,\n\t\t29647\n\t],\n\t\"./en-PK.mjs\": [\n\t\t9940,\n\t\t9940\n\t],\n\t\"./en-PN.mjs\": [\n\t\t36185,\n\t\t36185\n\t],\n\t\"./en-PR.mjs\": [\n\t\t89469,\n\t\t89469\n\t],\n\t\"./en-PW.mjs\": [\n\t\t27184,\n\t\t27184\n\t],\n\t\"./en-RW.mjs\": [\n\t\t62506,\n\t\t62506\n\t],\n\t\"./en-SB.mjs\": [\n\t\t37012,\n\t\t37012\n\t],\n\t\"./en-SC.mjs\": [\n\t\t84549,\n\t\t84549\n\t],\n\t\"./en-SD.mjs\": [\n\t\t14922,\n\t\t14922\n\t],\n\t\"./en-SE.mjs\": [\n\t\t4083,\n\t\t4083\n\t],\n\t\"./en-SG.mjs\": [\n\t\t35513,\n\t\t35513\n\t],\n\t\"./en-SH.mjs\": [\n\t\t63374,\n\t\t63374\n\t],\n\t\"./en-SI.mjs\": [\n\t\t40695,\n\t\t40695\n\t],\n\t\"./en-SL.mjs\": [\n\t\t49426,\n\t\t49426\n\t],\n\t\"./en-SS.mjs\": [\n\t\t92853,\n\t\t92853\n\t],\n\t\"./en-SX.mjs\": [\n\t\t52862,\n\t\t52862\n\t],\n\t\"./en-SZ.mjs\": [\n\t\t83788,\n\t\t83788\n\t],\n\t\"./en-TC.mjs\": [\n\t\t504,\n\t\t504\n\t],\n\t\"./en-TK.mjs\": [\n\t\t63744,\n\t\t63744\n\t],\n\t\"./en-TO.mjs\": [\n\t\t65980,\n\t\t65980\n\t],\n\t\"./en-TT.mjs\": [\n\t\t58623,\n\t\t58623\n\t],\n\t\"./en-TV.mjs\": [\n\t\t83189,\n\t\t83189\n\t],\n\t\"./en-TZ.mjs\": [\n\t\t1265,\n\t\t1265\n\t],\n\t\"./en-UG.mjs\": [\n\t\t4227,\n\t\t4227\n\t],\n\t\"./en-UM.mjs\": [\n\t\t74225,\n\t\t74225\n\t],\n\t\"./en-VC.mjs\": [\n\t\t51346,\n\t\t51346\n\t],\n\t\"./en-VG.mjs\": [\n\t\t44334,\n\t\t44334\n\t],\n\t\"./en-VI.mjs\": [\n\t\t60504,\n\t\t60504\n\t],\n\t\"./en-VU.mjs\": [\n\t\t41452,\n\t\t41452\n\t],\n\t\"./en-WS.mjs\": [\n\t\t77921,\n\t\t77921\n\t],\n\t\"./en-ZA.mjs\": [\n\t\t85308,\n\t\t85308\n\t],\n\t\"./en-ZM.mjs\": [\n\t\t19832,\n\t\t19832\n\t],\n\t\"./en-ZW.mjs\": [\n\t\t3586,\n\t\t3586\n\t],\n\t\"./en.mjs\": [\n\t\t63722,\n\t\t63722\n\t],\n\t\"./eo.mjs\": [\n\t\t70675,\n\t\t70675\n\t],\n\t\"./es-419.mjs\": [\n\t\t12518,\n\t\t12518\n\t],\n\t\"./es-AR.mjs\": [\n\t\t72909,\n\t\t72909\n\t],\n\t\"./es-BO.mjs\": [\n\t\t49905,\n\t\t49905\n\t],\n\t\"./es-BR.mjs\": [\n\t\t59636,\n\t\t59636\n\t],\n\t\"./es-BZ.mjs\": [\n\t\t98268,\n\t\t98268\n\t],\n\t\"./es-CL.mjs\": [\n\t\t29089,\n\t\t29089\n\t],\n\t\"./es-CO.mjs\": [\n\t\t72690,\n\t\t72690\n\t],\n\t\"./es-CR.mjs\": [\n\t\t7903,\n\t\t7903\n\t],\n\t\"./es-CU.mjs\": [\n\t\t84392,\n\t\t84392\n\t],\n\t\"./es-DO.mjs\": [\n\t\t16507,\n\t\t16507\n\t],\n\t\"./es-EA.mjs\": [\n\t\t53818,\n\t\t53818\n\t],\n\t\"./es-EC.mjs\": [\n\t\t85416,\n\t\t85416\n\t],\n\t\"./es-GQ.mjs\": [\n\t\t11744,\n\t\t11744\n\t],\n\t\"./es-GT.mjs\": [\n\t\t93453,\n\t\t93453\n\t],\n\t\"./es-HN.mjs\": [\n\t\t55974,\n\t\t33593\n\t],\n\t\"./es-IC.mjs\": [\n\t\t39876,\n\t\t39876\n\t],\n\t\"./es-MX.mjs\": [\n\t\t80739,\n\t\t80739\n\t],\n\t\"./es-NI.mjs\": [\n\t\t67739,\n\t\t67739\n\t],\n\t\"./es-PA.mjs\": [\n\t\t57913,\n\t\t57913\n\t],\n\t\"./es-PE.mjs\": [\n\t\t37573,\n\t\t37573\n\t],\n\t\"./es-PH.mjs\": [\n\t\t44832,\n\t\t44832\n\t],\n\t\"./es-PR.mjs\": [\n\t\t46906,\n\t\t46906\n\t],\n\t\"./es-PY.mjs\": [\n\t\t98705,\n\t\t98705\n\t],\n\t\"./es-SV.mjs\": [\n\t\t96659,\n\t\t96659\n\t],\n\t\"./es-US.mjs\": [\n\t\t61704,\n\t\t61704\n\t],\n\t\"./es-UY.mjs\": [\n\t\t10018,\n\t\t10018\n\t],\n\t\"./es-VE.mjs\": [\n\t\t73351,\n\t\t73351\n\t],\n\t\"./es.mjs\": [\n\t\t85991,\n\t\t85991\n\t],\n\t\"./et.mjs\": [\n\t\t14960,\n\t\t14960\n\t],\n\t\"./eu.mjs\": [\n\t\t34993,\n\t\t34993\n\t],\n\t\"./ewo.mjs\": [\n\t\t94254,\n\t\t94254\n\t],\n\t\"./extra/af-NA.mjs\": [\n\t\t93343,\n\t\t93343\n\t],\n\t\"./extra/af.mjs\": [\n\t\t96075,\n\t\t96075\n\t],\n\t\"./extra/agq.mjs\": [\n\t\t35507,\n\t\t35507\n\t],\n\t\"./extra/ak.mjs\": [\n\t\t71414,\n\t\t71414\n\t],\n\t\"./extra/am.mjs\": [\n\t\t74472,\n\t\t74472\n\t],\n\t\"./extra/ar-AE.mjs\": [\n\t\t80690,\n\t\t80690\n\t],\n\t\"./extra/ar-BH.mjs\": [\n\t\t46830,\n\t\t24449\n\t],\n\t\"./extra/ar-DJ.mjs\": [\n\t\t20126,\n\t\t20126\n\t],\n\t\"./extra/ar-DZ.mjs\": [\n\t\t30638,\n\t\t30638\n\t],\n\t\"./extra/ar-EG.mjs\": [\n\t\t2356,\n\t\t2356\n\t],\n\t\"./extra/ar-EH.mjs\": [\n\t\t60155,\n\t\t60155\n\t],\n\t\"./extra/ar-ER.mjs\": [\n\t\t35017,\n\t\t35017\n\t],\n\t\"./extra/ar-IL.mjs\": [\n\t\t22043,\n\t\t22043\n\t],\n\t\"./extra/ar-IQ.mjs\": [\n\t\t57270,\n\t\t57270\n\t],\n\t\"./extra/ar-JO.mjs\": [\n\t\t30409,\n\t\t30409\n\t],\n\t\"./extra/ar-KM.mjs\": [\n\t\t45816,\n\t\t45816\n\t],\n\t\"./extra/ar-KW.mjs\": [\n\t\t71266,\n\t\t71266\n\t],\n\t\"./extra/ar-LB.mjs\": [\n\t\t92718,\n\t\t92718\n\t],\n\t\"./extra/ar-LY.mjs\": [\n\t\t22197,\n\t\t22197\n\t],\n\t\"./extra/ar-MA.mjs\": [\n\t\t70850,\n\t\t70850\n\t],\n\t\"./extra/ar-MR.mjs\": [\n\t\t11041,\n\t\t11041\n\t],\n\t\"./extra/ar-OM.mjs\": [\n\t\t61596,\n\t\t61596\n\t],\n\t\"./extra/ar-PS.mjs\": [\n\t\t47923,\n\t\t47923\n\t],\n\t\"./extra/ar-QA.mjs\": [\n\t\t11134,\n\t\t11134\n\t],\n\t\"./extra/ar-SA.mjs\": [\n\t\t33268,\n\t\t33268\n\t],\n\t\"./extra/ar-SD.mjs\": [\n\t\t31769,\n\t\t31769\n\t],\n\t\"./extra/ar-SO.mjs\": [\n\t\t45682,\n\t\t45682\n\t],\n\t\"./extra/ar-SS.mjs\": [\n\t\t70710,\n\t\t70710\n\t],\n\t\"./extra/ar-SY.mjs\": [\n\t\t80044,\n\t\t80044\n\t],\n\t\"./extra/ar-TD.mjs\": [\n\t\t56760,\n\t\t56760\n\t],\n\t\"./extra/ar-TN.mjs\": [\n\t\t47602,\n\t\t47602\n\t],\n\t\"./extra/ar-YE.mjs\": [\n\t\t78010,\n\t\t78010\n\t],\n\t\"./extra/ar.mjs\": [\n\t\t46711,\n\t\t46711\n\t],\n\t\"./extra/as.mjs\": [\n\t\t64782,\n\t\t64782\n\t],\n\t\"./extra/asa.mjs\": [\n\t\t24375,\n\t\t24375\n\t],\n\t\"./extra/ast.mjs\": [\n\t\t58370,\n\t\t58370\n\t],\n\t\"./extra/az-Cyrl.mjs\": [\n\t\t20182,\n\t\t20182\n\t],\n\t\"./extra/az-Latn.mjs\": [\n\t\t26263,\n\t\t26263\n\t],\n\t\"./extra/az.mjs\": [\n\t\t40015,\n\t\t40015\n\t],\n\t\"./extra/bas.mjs\": [\n\t\t26064,\n\t\t26064\n\t],\n\t\"./extra/be-tarask.mjs\": [\n\t\t32794,\n\t\t32794\n\t],\n\t\"./extra/be.mjs\": [\n\t\t97133,\n\t\t97133\n\t],\n\t\"./extra/bem.mjs\": [\n\t\t87810,\n\t\t87810\n\t],\n\t\"./extra/bez.mjs\": [\n\t\t13773,\n\t\t13773\n\t],\n\t\"./extra/bg.mjs\": [\n\t\t60471,\n\t\t60471\n\t],\n\t\"./extra/bm.mjs\": [\n\t\t8773,\n\t\t8773\n\t],\n\t\"./extra/bn-IN.mjs\": [\n\t\t78522,\n\t\t78522\n\t],\n\t\"./extra/bn.mjs\": [\n\t\t47270,\n\t\t47270\n\t],\n\t\"./extra/bo-IN.mjs\": [\n\t\t80537,\n\t\t80537\n\t],\n\t\"./extra/bo.mjs\": [\n\t\t92847,\n\t\t92847\n\t],\n\t\"./extra/br.mjs\": [\n\t\t94466,\n\t\t94466\n\t],\n\t\"./extra/brx.mjs\": [\n\t\t1362,\n\t\t1362\n\t],\n\t\"./extra/bs-Cyrl.mjs\": [\n\t\t52650,\n\t\t52650\n\t],\n\t\"./extra/bs-Latn.mjs\": [\n\t\t14699,\n\t\t14699\n\t],\n\t\"./extra/bs.mjs\": [\n\t\t90603,\n\t\t90603\n\t],\n\t\"./extra/ca-AD.mjs\": [\n\t\t14376,\n\t\t14376\n\t],\n\t\"./extra/ca-ES-valencia.mjs\": [\n\t\t10801,\n\t\t10801\n\t],\n\t\"./extra/ca-FR.mjs\": [\n\t\t33807,\n\t\t33807\n\t],\n\t\"./extra/ca-IT.mjs\": [\n\t\t86512,\n\t\t86512\n\t],\n\t\"./extra/ca.mjs\": [\n\t\t65110,\n\t\t65110\n\t],\n\t\"./extra/ccp-IN.mjs\": [\n\t\t54180,\n\t\t54180\n\t],\n\t\"./extra/ccp.mjs\": [\n\t\t98632,\n\t\t98632\n\t],\n\t\"./extra/ce.mjs\": [\n\t\t19610,\n\t\t19610\n\t],\n\t\"./extra/ceb.mjs\": [\n\t\t62736,\n\t\t62736\n\t],\n\t\"./extra/cgg.mjs\": [\n\t\t79011,\n\t\t79011\n\t],\n\t\"./extra/chr.mjs\": [\n\t\t56647,\n\t\t56647\n\t],\n\t\"./extra/ckb-IR.mjs\": [\n\t\t65962,\n\t\t65962\n\t],\n\t\"./extra/ckb.mjs\": [\n\t\t59522,\n\t\t59522\n\t],\n\t\"./extra/cs.mjs\": [\n\t\t4372,\n\t\t4372\n\t],\n\t\"./extra/cy.mjs\": [\n\t\t58478,\n\t\t58478\n\t],\n\t\"./extra/da-GL.mjs\": [\n\t\t4801,\n\t\t4801\n\t],\n\t\"./extra/da.mjs\": [\n\t\t82323,\n\t\t82323\n\t],\n\t\"./extra/dav.mjs\": [\n\t\t69751,\n\t\t69751\n\t],\n\t\"./extra/de-AT.mjs\": [\n\t\t60771,\n\t\t60771\n\t],\n\t\"./extra/de-BE.mjs\": [\n\t\t83755,\n\t\t83755\n\t],\n\t\"./extra/de-CH.mjs\": [\n\t\t19077,\n\t\t19077\n\t],\n\t\"./extra/de-IT.mjs\": [\n\t\t84971,\n\t\t84971\n\t],\n\t\"./extra/de-LI.mjs\": [\n\t\t68189,\n\t\t68189\n\t],\n\t\"./extra/de-LU.mjs\": [\n\t\t74649,\n\t\t74649\n\t],\n\t\"./extra/de.mjs\": [\n\t\t29071,\n\t\t29071\n\t],\n\t\"./extra/dje.mjs\": [\n\t\t20913,\n\t\t20913\n\t],\n\t\"./extra/doi.mjs\": [\n\t\t89470,\n\t\t89470\n\t],\n\t\"./extra/dsb.mjs\": [\n\t\t71065,\n\t\t71065\n\t],\n\t\"./extra/dua.mjs\": [\n\t\t57604,\n\t\t57604\n\t],\n\t\"./extra/dyo.mjs\": [\n\t\t7918,\n\t\t7918\n\t],\n\t\"./extra/dz.mjs\": [\n\t\t26608,\n\t\t26608\n\t],\n\t\"./extra/ebu.mjs\": [\n\t\t68012,\n\t\t68012\n\t],\n\t\"./extra/ee-TG.mjs\": [\n\t\t9342,\n\t\t9342\n\t],\n\t\"./extra/ee.mjs\": [\n\t\t2020,\n\t\t2020\n\t],\n\t\"./extra/el-CY.mjs\": [\n\t\t93938,\n\t\t93938\n\t],\n\t\"./extra/el.mjs\": [\n\t\t77597,\n\t\t77597\n\t],\n\t\"./extra/en-001.mjs\": [\n\t\t11461,\n\t\t11461\n\t],\n\t\"./extra/en-150.mjs\": [\n\t\t79690,\n\t\t79690\n\t],\n\t\"./extra/en-AE.mjs\": [\n\t\t50722,\n\t\t50722\n\t],\n\t\"./extra/en-AG.mjs\": [\n\t\t46640,\n\t\t46640\n\t],\n\t\"./extra/en-AI.mjs\": [\n\t\t73782,\n\t\t73782\n\t],\n\t\"./extra/en-AS.mjs\": [\n\t\t32444,\n\t\t32444\n\t],\n\t\"./extra/en-AT.mjs\": [\n\t\t38555,\n\t\t38555\n\t],\n\t\"./extra/en-AU.mjs\": [\n\t\t29906,\n\t\t29906\n\t],\n\t\"./extra/en-BB.mjs\": [\n\t\t25380,\n\t\t25380\n\t],\n\t\"./extra/en-BE.mjs\": [\n\t\t92451,\n\t\t92451\n\t],\n\t\"./extra/en-BI.mjs\": [\n\t\t30407,\n\t\t30407\n\t],\n\t\"./extra/en-BM.mjs\": [\n\t\t69483,\n\t\t69483\n\t],\n\t\"./extra/en-BS.mjs\": [\n\t\t87653,\n\t\t87653\n\t],\n\t\"./extra/en-BW.mjs\": [\n\t\t38617,\n\t\t38617\n\t],\n\t\"./extra/en-BZ.mjs\": [\n\t\t78748,\n\t\t78748\n\t],\n\t\"./extra/en-CA.mjs\": [\n\t\t38196,\n\t\t38196\n\t],\n\t\"./extra/en-CC.mjs\": [\n\t\t26790,\n\t\t26790\n\t],\n\t\"./extra/en-CH.mjs\": [\n\t\t30125,\n\t\t30125\n\t],\n\t\"./extra/en-CK.mjs\": [\n\t\t73006,\n\t\t73006\n\t],\n\t\"./extra/en-CM.mjs\": [\n\t\t14240,\n\t\t14240\n\t],\n\t\"./extra/en-CX.mjs\": [\n\t\t38685,\n\t\t38685\n\t],\n\t\"./extra/en-CY.mjs\": [\n\t\t35948,\n\t\t35948\n\t],\n\t\"./extra/en-DE.mjs\": [\n\t\t3750,\n\t\t81369\n\t],\n\t\"./extra/en-DG.mjs\": [\n\t\t49939,\n\t\t49939\n\t],\n\t\"./extra/en-DK.mjs\": [\n\t\t86551,\n\t\t86551\n\t],\n\t\"./extra/en-DM.mjs\": [\n\t\t79969,\n\t\t79969\n\t],\n\t\"./extra/en-ER.mjs\": [\n\t\t28953,\n\t\t28953\n\t],\n\t\"./extra/en-FI.mjs\": [\n\t\t52019,\n\t\t52019\n\t],\n\t\"./extra/en-FJ.mjs\": [\n\t\t16024,\n\t\t16024\n\t],\n\t\"./extra/en-FK.mjs\": [\n\t\t41369,\n\t\t41369\n\t],\n\t\"./extra/en-FM.mjs\": [\n\t\t91439,\n\t\t91439\n\t],\n\t\"./extra/en-GB.mjs\": [\n\t\t95083,\n\t\t95083\n\t],\n\t\"./extra/en-GD.mjs\": [\n\t\t82493,\n\t\t82493\n\t],\n\t\"./extra/en-GG.mjs\": [\n\t\t14206,\n\t\t14206\n\t],\n\t\"./extra/en-GH.mjs\": [\n\t\t48841,\n\t\t48841\n\t],\n\t\"./extra/en-GI.mjs\": [\n\t\t73480,\n\t\t73480\n\t],\n\t\"./extra/en-GM.mjs\": [\n\t\t24740,\n\t\t24740\n\t],\n\t\"./extra/en-GU.mjs\": [\n\t\t78108,\n\t\t78108\n\t],\n\t\"./extra/en-GY.mjs\": [\n\t\t63608,\n\t\t63608\n\t],\n\t\"./extra/en-HK.mjs\": [\n\t\t84307,\n\t\t84307\n\t],\n\t\"./extra/en-IE.mjs\": [\n\t\t14682,\n\t\t14682\n\t],\n\t\"./extra/en-IL.mjs\": [\n\t\t27371,\n\t\t27371\n\t],\n\t\"./extra/en-IM.mjs\": [\n\t\t45026,\n\t\t45026\n\t],\n\t\"./extra/en-IN.mjs\": [\n\t\t12561,\n\t\t12561\n\t],\n\t\"./extra/en-IO.mjs\": [\n\t\t76176,\n\t\t76176\n\t],\n\t\"./extra/en-JE.mjs\": [\n\t\t99963,\n\t\t99963\n\t],\n\t\"./extra/en-JM.mjs\": [\n\t\t69267,\n\t\t69267\n\t],\n\t\"./extra/en-KE.mjs\": [\n\t\t78928,\n\t\t78928\n\t],\n\t\"./extra/en-KI.mjs\": [\n\t\t35044,\n\t\t35044\n\t],\n\t\"./extra/en-KN.mjs\": [\n\t\t2115,\n\t\t2115\n\t],\n\t\"./extra/en-KY.mjs\": [\n\t\t49780,\n\t\t49780\n\t],\n\t\"./extra/en-LC.mjs\": [\n\t\t67111,\n\t\t67111\n\t],\n\t\"./extra/en-LR.mjs\": [\n\t\t57102,\n\t\t57102\n\t],\n\t\"./extra/en-LS.mjs\": [\n\t\t55383,\n\t\t55383\n\t],\n\t\"./extra/en-MG.mjs\": [\n\t\t31164,\n\t\t31164\n\t],\n\t\"./extra/en-MH.mjs\": [\n\t\t59603,\n\t\t59603\n\t],\n\t\"./extra/en-MO.mjs\": [\n\t\t92532,\n\t\t92532\n\t],\n\t\"./extra/en-MP.mjs\": [\n\t\t21899,\n\t\t21899\n\t],\n\t\"./extra/en-MS.mjs\": [\n\t\t21680,\n\t\t21680\n\t],\n\t\"./extra/en-MT.mjs\": [\n\t\t82823,\n\t\t82823\n\t],\n\t\"./extra/en-MU.mjs\": [\n\t\t8382,\n\t\t8382\n\t],\n\t\"./extra/en-MV.mjs\": [\n\t\t41437,\n\t\t41437\n\t],\n\t\"./extra/en-MW.mjs\": [\n\t\t39308,\n\t\t39308\n\t],\n\t\"./extra/en-MY.mjs\": [\n\t\t96378,\n\t\t96378\n\t],\n\t\"./extra/en-NA.mjs\": [\n\t\t89779,\n\t\t89779\n\t],\n\t\"./extra/en-NF.mjs\": [\n\t\t22708,\n\t\t22708\n\t],\n\t\"./extra/en-NG.mjs\": [\n\t\t58341,\n\t\t58341\n\t],\n\t\"./extra/en-NL.mjs\": [\n\t\t76814,\n\t\t76814\n\t],\n\t\"./extra/en-NR.mjs\": [\n\t\t12072,\n\t\t12072\n\t],\n\t\"./extra/en-NU.mjs\": [\n\t\t53983,\n\t\t53983\n\t],\n\t\"./extra/en-NZ.mjs\": [\n\t\t56304,\n\t\t56304\n\t],\n\t\"./extra/en-PG.mjs\": [\n\t\t72111,\n\t\t72111\n\t],\n\t\"./extra/en-PH.mjs\": [\n\t\t25312,\n\t\t25312\n\t],\n\t\"./extra/en-PK.mjs\": [\n\t\t3515,\n\t\t3515\n\t],\n\t\"./extra/en-PN.mjs\": [\n\t\t80526,\n\t\t80526\n\t],\n\t\"./extra/en-PR.mjs\": [\n\t\t27386,\n\t\t27386\n\t],\n\t\"./extra/en-PW.mjs\": [\n\t\t25631,\n\t\t25631\n\t],\n\t\"./extra/en-RW.mjs\": [\n\t\t23209,\n\t\t23209\n\t],\n\t\"./extra/en-SB.mjs\": [\n\t\t24991,\n\t\t24991\n\t],\n\t\"./extra/en-SC.mjs\": [\n\t\t54454,\n\t\t54454\n\t],\n\t\"./extra/en-SD.mjs\": [\n\t\t70793,\n\t\t70793\n\t],\n\t\"./extra/en-SE.mjs\": [\n\t\t83080,\n\t\t83080\n\t],\n\t\"./extra/en-SG.mjs\": [\n\t\t8954,\n\t\t8954\n\t],\n\t\"./extra/en-SH.mjs\": [\n\t\t73245,\n\t\t73245\n\t],\n\t\"./extra/en-SI.mjs\": [\n\t\t87468,\n\t\t87468\n\t],\n\t\"./extra/en-SL.mjs\": [\n\t\t64753,\n\t\t64753\n\t],\n\t\"./extra/en-SS.mjs\": [\n\t\t67846,\n\t\t67846\n\t],\n\t\"./extra/en-SX.mjs\": [\n\t\t34061,\n\t\t34061\n\t],\n\t\"./extra/en-SZ.mjs\": [\n\t\t97399,\n\t\t97399\n\t],\n\t\"./extra/en-TC.mjs\": [\n\t\t43039,\n\t\t43039\n\t],\n\t\"./extra/en-TK.mjs\": [\n\t\t60967,\n\t\t60967\n\t],\n\t\"./extra/en-TO.mjs\": [\n\t\t41131,\n\t\t41131\n\t],\n\t\"./extra/en-TT.mjs\": [\n\t\t33336,\n\t\t33336\n\t],\n\t\"./extra/en-TV.mjs\": [\n\t\t38698,\n\t\t38698\n\t],\n\t\"./extra/en-TZ.mjs\": [\n\t\t44014,\n\t\t44014\n\t],\n\t\"./extra/en-UG.mjs\": [\n\t\t14087,\n\t\t36468\n\t],\n\t\"./extra/en-UM.mjs\": [\n\t\t90574,\n\t\t90574\n\t],\n\t\"./extra/en-VC.mjs\": [\n\t\t37457,\n\t\t37457\n\t],\n\t\"./extra/en-VG.mjs\": [\n\t\t12445,\n\t\t12445\n\t],\n\t\"./extra/en-VI.mjs\": [\n\t\t15875,\n\t\t15875\n\t],\n\t\"./extra/en-VU.mjs\": [\n\t\t67223,\n\t\t67223\n\t],\n\t\"./extra/en-WS.mjs\": [\n\t\t11202,\n\t\t11202\n\t],\n\t\"./extra/en-ZA.mjs\": [\n\t\t80295,\n\t\t80295\n\t],\n\t\"./extra/en-ZM.mjs\": [\n\t\t72099,\n\t\t72099\n\t],\n\t\"./extra/en-ZW.mjs\": [\n\t\t99905,\n\t\t99905\n\t],\n\t\"./extra/en.mjs\": [\n\t\t45223,\n\t\t45223\n\t],\n\t\"./extra/eo.mjs\": [\n\t\t9310,\n\t\t9310\n\t],\n\t\"./extra/es-419.mjs\": [\n\t\t2291,\n\t\t2291\n\t],\n\t\"./extra/es-AR.mjs\": [\n\t\t43658,\n\t\t43658\n\t],\n\t\"./extra/es-BO.mjs\": [\n\t\t92050,\n\t\t92050\n\t],\n\t\"./extra/es-BR.mjs\": [\n\t\t30143,\n\t\t30143\n\t],\n\t\"./extra/es-BZ.mjs\": [\n\t\t95047,\n\t\t95047\n\t],\n\t\"./extra/es-CL.mjs\": [\n\t\t35906,\n\t\t35906\n\t],\n\t\"./extra/es-CO.mjs\": [\n\t\t69265,\n\t\t69265\n\t],\n\t\"./extra/es-CR.mjs\": [\n\t\t98228,\n\t\t98228\n\t],\n\t\"./extra/es-CU.mjs\": [\n\t\t81651,\n\t\t81651\n\t],\n\t\"./extra/es-DO.mjs\": [\n\t\t82316,\n\t\t82316\n\t],\n\t\"./extra/es-EA.mjs\": [\n\t\t92965,\n\t\t92965\n\t],\n\t\"./extra/es-EC.mjs\": [\n\t\t77039,\n\t\t77039\n\t],\n\t\"./extra/es-GQ.mjs\": [\n\t\t98059,\n\t\t98059\n\t],\n\t\"./extra/es-GT.mjs\": [\n\t\t98334,\n\t\t98334\n\t],\n\t\"./extra/es-HN.mjs\": [\n\t\t24593,\n\t\t24593\n\t],\n\t\"./extra/es-IC.mjs\": [\n\t\t34043,\n\t\t34043\n\t],\n\t\"./extra/es-MX.mjs\": [\n\t\t23380,\n\t\t23380\n\t],\n\t\"./extra/es-NI.mjs\": [\n\t\t54448,\n\t\t54448\n\t],\n\t\"./extra/es-PA.mjs\": [\n\t\t28174,\n\t\t28174\n\t],\n\t\"./extra/es-PE.mjs\": [\n\t\t90930,\n\t\t90930\n\t],\n\t\"./extra/es-PH.mjs\": [\n\t\t10127,\n\t\t10127\n\t],\n\t\"./extra/es-PR.mjs\": [\n\t\t53597,\n\t\t53597\n\t],\n\t\"./extra/es-PY.mjs\": [\n\t\t51158,\n\t\t51158\n\t],\n\t\"./extra/es-SV.mjs\": [\n\t\t36584,\n\t\t36584\n\t],\n\t\"./extra/es-US.mjs\": [\n\t\t47631,\n\t\t47631\n\t],\n\t\"./extra/es-UY.mjs\": [\n\t\t82541,\n\t\t82541\n\t],\n\t\"./extra/es-VE.mjs\": [\n\t\t55484,\n\t\t55484\n\t],\n\t\"./extra/es.mjs\": [\n\t\t22954,\n\t\t22954\n\t],\n\t\"./extra/et.mjs\": [\n\t\t33093,\n\t\t33093\n\t],\n\t\"./extra/eu.mjs\": [\n\t\t77108,\n\t\t77108\n\t],\n\t\"./extra/ewo.mjs\": [\n\t\t4401,\n\t\t4401\n\t],\n\t\"./extra/fa-AF.mjs\": [\n\t\t32039,\n\t\t32039\n\t],\n\t\"./extra/fa.mjs\": [\n\t\t23101,\n\t\t23101\n\t],\n\t\"./extra/ff-Adlm-BF.mjs\": [\n\t\t55658,\n\t\t55658\n\t],\n\t\"./extra/ff-Adlm-CM.mjs\": [\n\t\t41182,\n\t\t41182\n\t],\n\t\"./extra/ff-Adlm-GH.mjs\": [\n\t\t39199,\n\t\t39199\n\t],\n\t\"./extra/ff-Adlm-GM.mjs\": [\n\t\t23162,\n\t\t23162\n\t],\n\t\"./extra/ff-Adlm-GW.mjs\": [\n\t\t72064,\n\t\t72064\n\t],\n\t\"./extra/ff-Adlm-LR.mjs\": [\n\t\t43852,\n\t\t43852\n\t],\n\t\"./extra/ff-Adlm-MR.mjs\": [\n\t\t48343,\n\t\t48343\n\t],\n\t\"./extra/ff-Adlm-NE.mjs\": [\n\t\t34669,\n\t\t34669\n\t],\n\t\"./extra/ff-Adlm-NG.mjs\": [\n\t\t2007,\n\t\t2007\n\t],\n\t\"./extra/ff-Adlm-SL.mjs\": [\n\t\t35031,\n\t\t35031\n\t],\n\t\"./extra/ff-Adlm-SN.mjs\": [\n\t\t55341,\n\t\t55341\n\t],\n\t\"./extra/ff-Adlm.mjs\": [\n\t\t89405,\n\t\t89405\n\t],\n\t\"./extra/ff-CM.mjs\": [\n\t\t71731,\n\t\t71731\n\t],\n\t\"./extra/ff-GN.mjs\": [\n\t\t44572,\n\t\t44572\n\t],\n\t\"./extra/ff-Latn-BF.mjs\": [\n\t\t87917,\n\t\t87917\n\t],\n\t\"./extra/ff-Latn-CM.mjs\": [\n\t\t87369,\n\t\t87369\n\t],\n\t\"./extra/ff-Latn-GH.mjs\": [\n\t\t856,\n\t\t856\n\t],\n\t\"./extra/ff-Latn-GM.mjs\": [\n\t\t16357,\n\t\t16357\n\t],\n\t\"./extra/ff-Latn-GN.mjs\": [\n\t\t48966,\n\t\t48966\n\t],\n\t\"./extra/ff-Latn-GW.mjs\": [\n\t\t28487,\n\t\t28487\n\t],\n\t\"./extra/ff-Latn-LR.mjs\": [\n\t\t895,\n\t\t895\n\t],\n\t\"./extra/ff-Latn-MR.mjs\": [\n\t\t52628,\n\t\t52628\n\t],\n\t\"./extra/ff-Latn-NE.mjs\": [\n\t\t79586,\n\t\t79586\n\t],\n\t\"./extra/ff-Latn-NG.mjs\": [\n\t\t59152,\n\t\t59152\n\t],\n\t\"./extra/ff-Latn-SL.mjs\": [\n\t\t24280,\n\t\t24280\n\t],\n\t\"./extra/ff-Latn.mjs\": [\n\t\t62616,\n\t\t62616\n\t],\n\t\"./extra/ff-MR.mjs\": [\n\t\t22774,\n\t\t22774\n\t],\n\t\"./extra/ff.mjs\": [\n\t\t31106,\n\t\t31106\n\t],\n\t\"./extra/fi.mjs\": [\n\t\t30037,\n\t\t30037\n\t],\n\t\"./extra/fil.mjs\": [\n\t\t68275,\n\t\t68275\n\t],\n\t\"./extra/fo-DK.mjs\": [\n\t\t34971,\n\t\t34971\n\t],\n\t\"./extra/fo.mjs\": [\n\t\t42883,\n\t\t42883\n\t],\n\t\"./extra/fr-BE.mjs\": [\n\t\t46260,\n\t\t46260\n\t],\n\t\"./extra/fr-BF.mjs\": [\n\t\t82319,\n\t\t82319\n\t],\n\t\"./extra/fr-BI.mjs\": [\n\t\t10400,\n\t\t10400\n\t],\n\t\"./extra/fr-BJ.mjs\": [\n\t\t71771,\n\t\t71771\n\t],\n\t\"./extra/fr-BL.mjs\": [\n\t\t86605,\n\t\t86605\n\t],\n\t\"./extra/fr-CA.mjs\": [\n\t\t62563,\n\t\t62563\n\t],\n\t\"./extra/fr-CD.mjs\": [\n\t\t86,\n\t\t86\n\t],\n\t\"./extra/fr-CF.mjs\": [\n\t\t43908,\n\t\t43908\n\t],\n\t\"./extra/fr-CG.mjs\": [\n\t\t77397,\n\t\t77397\n\t],\n\t\"./extra/fr-CH.mjs\": [\n\t\t68578,\n\t\t68578\n\t],\n\t\"./extra/fr-CI.mjs\": [\n\t\t67275,\n\t\t67275\n\t],\n\t\"./extra/fr-CM.mjs\": [\n\t\t87111,\n\t\t87111\n\t],\n\t\"./extra/fr-DJ.mjs\": [\n\t\t63341,\n\t\t63341\n\t],\n\t\"./extra/fr-DZ.mjs\": [\n\t\t88253,\n\t\t88253\n\t],\n\t\"./extra/fr-GA.mjs\": [\n\t\t327,\n\t\t327\n\t],\n\t\"./extra/fr-GF.mjs\": [\n\t\t10064,\n\t\t10064\n\t],\n\t\"./extra/fr-GN.mjs\": [\n\t\t16360,\n\t\t16360\n\t],\n\t\"./extra/fr-GP.mjs\": [\n\t\t6670,\n\t\t6670\n\t],\n\t\"./extra/fr-GQ.mjs\": [\n\t\t88599,\n\t\t88599\n\t],\n\t\"./extra/fr-HT.mjs\": [\n\t\t54047,\n\t\t54047\n\t],\n\t\"./extra/fr-KM.mjs\": [\n\t\t84223,\n\t\t84223\n\t],\n\t\"./extra/fr-LU.mjs\": [\n\t\t43042,\n\t\t43042\n\t],\n\t\"./extra/fr-MA.mjs\": [\n\t\t11225,\n\t\t11225\n\t],\n\t\"./extra/fr-MC.mjs\": [\n\t\t14547,\n\t\t14547\n\t],\n\t\"./extra/fr-MF.mjs\": [\n\t\t50342,\n\t\t50342\n\t],\n\t\"./extra/fr-MG.mjs\": [\n\t\t61295,\n\t\t61295\n\t],\n\t\"./extra/fr-ML.mjs\": [\n\t\t93052,\n\t\t93052\n\t],\n\t\"./extra/fr-MQ.mjs\": [\n\t\t10761,\n\t\t10761\n\t],\n\t\"./extra/fr-MR.mjs\": [\n\t\t97338,\n\t\t97338\n\t],\n\t\"./extra/fr-MU.mjs\": [\n\t\t20149,\n\t\t20149\n\t],\n\t\"./extra/fr-NC.mjs\": [\n\t\t17462,\n\t\t17462\n\t],\n\t\"./extra/fr-NE.mjs\": [\n\t\t99112,\n\t\t99112\n\t],\n\t\"./extra/fr-PF.mjs\": [\n\t\t5933,\n\t\t5933\n\t],\n\t\"./extra/fr-PM.mjs\": [\n\t\t56070,\n\t\t56070\n\t],\n\t\"./extra/fr-RE.mjs\": [\n\t\t25508,\n\t\t25508\n\t],\n\t\"./extra/fr-RW.mjs\": [\n\t\t73254,\n\t\t73254\n\t],\n\t\"./extra/fr-SC.mjs\": [\n\t\t7513,\n\t\t7513\n\t],\n\t\"./extra/fr-SN.mjs\": [\n\t\t31292,\n\t\t31292\n\t],\n\t\"./extra/fr-SY.mjs\": [\n\t\t38379,\n\t\t38379\n\t],\n\t\"./extra/fr-TD.mjs\": [\n\t\t69539,\n\t\t69539\n\t],\n\t\"./extra/fr-TG.mjs\": [\n\t\t83272,\n\t\t83272\n\t],\n\t\"./extra/fr-TN.mjs\": [\n\t\t39537,\n\t\t39537\n\t],\n\t\"./extra/fr-VU.mjs\": [\n\t\t86976,\n\t\t86976\n\t],\n\t\"./extra/fr-WF.mjs\": [\n\t\t39392,\n\t\t39392\n\t],\n\t\"./extra/fr-YT.mjs\": [\n\t\t61640,\n\t\t61640\n\t],\n\t\"./extra/fr.mjs\": [\n\t\t558,\n\t\t558\n\t],\n\t\"./extra/fur.mjs\": [\n\t\t74993,\n\t\t74993\n\t],\n\t\"./extra/fy.mjs\": [\n\t\t21733,\n\t\t21733\n\t],\n\t\"./extra/ga-GB.mjs\": [\n\t\t18312,\n\t\t18312\n\t],\n\t\"./extra/ga.mjs\": [\n\t\t14546,\n\t\t14546\n\t],\n\t\"./extra/gd.mjs\": [\n\t\t89463,\n\t\t89463\n\t],\n\t\"./extra/gl.mjs\": [\n\t\t82767,\n\t\t82767\n\t],\n\t\"./extra/gsw-FR.mjs\": [\n\t\t69580,\n\t\t69580\n\t],\n\t\"./extra/gsw-LI.mjs\": [\n\t\t39281,\n\t\t39281\n\t],\n\t\"./extra/gsw.mjs\": [\n\t\t21227,\n\t\t21227\n\t],\n\t\"./extra/gu.mjs\": [\n\t\t57950,\n\t\t57950\n\t],\n\t\"./extra/guz.mjs\": [\n\t\t46548,\n\t\t46548\n\t],\n\t\"./extra/gv.mjs\": [\n\t\t42589,\n\t\t42589\n\t],\n\t\"./extra/ha-GH.mjs\": [\n\t\t70321,\n\t\t70321\n\t],\n\t\"./extra/ha-NE.mjs\": [\n\t\t86231,\n\t\t86231\n\t],\n\t\"./extra/ha.mjs\": [\n\t\t83871,\n\t\t83871\n\t],\n\t\"./extra/haw.mjs\": [\n\t\t25130,\n\t\t25130\n\t],\n\t\"./extra/he.mjs\": [\n\t\t51075,\n\t\t51075\n\t],\n\t\"./extra/hi-Latn.mjs\": [\n\t\t5839,\n\t\t5839\n\t],\n\t\"./extra/hi.mjs\": [\n\t\t48775,\n\t\t48775\n\t],\n\t\"./extra/hr-BA.mjs\": [\n\t\t92414,\n\t\t92414\n\t],\n\t\"./extra/hr.mjs\": [\n\t\t66388,\n\t\t66388\n\t],\n\t\"./extra/hsb.mjs\": [\n\t\t99101,\n\t\t99101\n\t],\n\t\"./extra/hu.mjs\": [\n\t\t90931,\n\t\t90931\n\t],\n\t\"./extra/hy.mjs\": [\n\t\t37047,\n\t\t37047\n\t],\n\t\"./extra/ia.mjs\": [\n\t\t47124,\n\t\t47124\n\t],\n\t\"./extra/id.mjs\": [\n\t\t73369,\n\t\t73369\n\t],\n\t\"./extra/ig.mjs\": [\n\t\t95306,\n\t\t95306\n\t],\n\t\"./extra/ii.mjs\": [\n\t\t66524,\n\t\t66524\n\t],\n\t\"./extra/is.mjs\": [\n\t\t7862,\n\t\t7862\n\t],\n\t\"./extra/it-CH.mjs\": [\n\t\t89703,\n\t\t89703\n\t],\n\t\"./extra/it-SM.mjs\": [\n\t\t57266,\n\t\t57266\n\t],\n\t\"./extra/it-VA.mjs\": [\n\t\t58125,\n\t\t58125\n\t],\n\t\"./extra/it.mjs\": [\n\t\t24201,\n\t\t24201\n\t],\n\t\"./extra/ja.mjs\": [\n\t\t71785,\n\t\t71785\n\t],\n\t\"./extra/jgo.mjs\": [\n\t\t87970,\n\t\t87970\n\t],\n\t\"./extra/jmc.mjs\": [\n\t\t40692,\n\t\t40692\n\t],\n\t\"./extra/jv.mjs\": [\n\t\t85190,\n\t\t85190\n\t],\n\t\"./extra/ka.mjs\": [\n\t\t52062,\n\t\t52062\n\t],\n\t\"./extra/kab.mjs\": [\n\t\t7372,\n\t\t7372\n\t],\n\t\"./extra/kam.mjs\": [\n\t\t22563,\n\t\t22563\n\t],\n\t\"./extra/kde.mjs\": [\n\t\t19668,\n\t\t19668\n\t],\n\t\"./extra/kea.mjs\": [\n\t\t66147,\n\t\t66147\n\t],\n\t\"./extra/kgp.mjs\": [\n\t\t50124,\n\t\t50124\n\t],\n\t\"./extra/khq.mjs\": [\n\t\t40180,\n\t\t40180\n\t],\n\t\"./extra/ki.mjs\": [\n\t\t950,\n\t\t950\n\t],\n\t\"./extra/kk.mjs\": [\n\t\t44772,\n\t\t44772\n\t],\n\t\"./extra/kkj.mjs\": [\n\t\t80306,\n\t\t80306\n\t],\n\t\"./extra/kl.mjs\": [\n\t\t63427,\n\t\t63427\n\t],\n\t\"./extra/kln.mjs\": [\n\t\t18575,\n\t\t18575\n\t],\n\t\"./extra/km.mjs\": [\n\t\t55450,\n\t\t55450\n\t],\n\t\"./extra/kn.mjs\": [\n\t\t68873,\n\t\t68873\n\t],\n\t\"./extra/ko-KP.mjs\": [\n\t\t10420,\n\t\t10420\n\t],\n\t\"./extra/ko.mjs\": [\n\t\t46536,\n\t\t46536\n\t],\n\t\"./extra/kok.mjs\": [\n\t\t84583,\n\t\t84583\n\t],\n\t\"./extra/ks-Arab.mjs\": [\n\t\t64961,\n\t\t64961\n\t],\n\t\"./extra/ks-Deva.mjs\": [\n\t\t91839,\n\t\t91839\n\t],\n\t\"./extra/ks.mjs\": [\n\t\t51164,\n\t\t51164\n\t],\n\t\"./extra/ksb.mjs\": [\n\t\t36594,\n\t\t36594\n\t],\n\t\"./extra/ksf.mjs\": [\n\t\t29582,\n\t\t29582\n\t],\n\t\"./extra/ksh.mjs\": [\n\t\t45752,\n\t\t45752\n\t],\n\t\"./extra/ku.mjs\": [\n\t\t34834,\n\t\t34834\n\t],\n\t\"./extra/kw.mjs\": [\n\t\t95904,\n\t\t95904\n\t],\n\t\"./extra/ky.mjs\": [\n\t\t8454,\n\t\t8454\n\t],\n\t\"./extra/lag.mjs\": [\n\t\t32150,\n\t\t32150\n\t],\n\t\"./extra/lb.mjs\": [\n\t\t69696,\n\t\t69696\n\t],\n\t\"./extra/lg.mjs\": [\n\t\t99821,\n\t\t99821\n\t],\n\t\"./extra/lkt.mjs\": [\n\t\t94639,\n\t\t94639\n\t],\n\t\"./extra/ln-AO.mjs\": [\n\t\t28881,\n\t\t28881\n\t],\n\t\"./extra/ln-CF.mjs\": [\n\t\t41321,\n\t\t63702\n\t],\n\t\"./extra/ln-CG.mjs\": [\n\t\t34239,\n\t\t34239\n\t],\n\t\"./extra/ln.mjs\": [\n\t\t16948,\n\t\t16948\n\t],\n\t\"./extra/lo.mjs\": [\n\t\t64485,\n\t\t64485\n\t],\n\t\"./extra/lrc-IQ.mjs\": [\n\t\t5718,\n\t\t5718\n\t],\n\t\"./extra/lrc.mjs\": [\n\t\t57847,\n\t\t57847\n\t],\n\t\"./extra/lt.mjs\": [\n\t\t49150,\n\t\t49150\n\t],\n\t\"./extra/lu.mjs\": [\n\t\t7239,\n\t\t7239\n\t],\n\t\"./extra/luo.mjs\": [\n\t\t82410,\n\t\t82410\n\t],\n\t\"./extra/luy.mjs\": [\n\t\t61476,\n\t\t61476\n\t],\n\t\"./extra/lv.mjs\": [\n\t\t80076,\n\t\t80076\n\t],\n\t\"./extra/mai.mjs\": [\n\t\t71813,\n\t\t71813\n\t],\n\t\"./extra/mas-TZ.mjs\": [\n\t\t47534,\n\t\t47534\n\t],\n\t\"./extra/mas.mjs\": [\n\t\t67591,\n\t\t67591\n\t],\n\t\"./extra/mer.mjs\": [\n\t\t64786,\n\t\t64786\n\t],\n\t\"./extra/mfe.mjs\": [\n\t\t78272,\n\t\t78272\n\t],\n\t\"./extra/mg.mjs\": [\n\t\t96734,\n\t\t96734\n\t],\n\t\"./extra/mgh.mjs\": [\n\t\t37814,\n\t\t37814\n\t],\n\t\"./extra/mgo.mjs\": [\n\t\t54153,\n\t\t54153\n\t],\n\t\"./extra/mi.mjs\": [\n\t\t99976,\n\t\t99976\n\t],\n\t\"./extra/mk.mjs\": [\n\t\t68378,\n\t\t68378\n\t],\n\t\"./extra/ml.mjs\": [\n\t\t20373,\n\t\t20373\n\t],\n\t\"./extra/mn.mjs\": [\n\t\t12159,\n\t\t12159\n\t],\n\t\"./extra/mni-Beng.mjs\": [\n\t\t48623,\n\t\t48623\n\t],\n\t\"./extra/mni.mjs\": [\n\t\t37900,\n\t\t37900\n\t],\n\t\"./extra/mr.mjs\": [\n\t\t62299,\n\t\t62299\n\t],\n\t\"./extra/ms-BN.mjs\": [\n\t\t211,\n\t\t211\n\t],\n\t\"./extra/ms-ID.mjs\": [\n\t\t12596,\n\t\t12596\n\t],\n\t\"./extra/ms-SG.mjs\": [\n\t\t25761,\n\t\t25761\n\t],\n\t\"./extra/ms.mjs\": [\n\t\t76946,\n\t\t76946\n\t],\n\t\"./extra/mt.mjs\": [\n\t\t47405,\n\t\t47405\n\t],\n\t\"./extra/mua.mjs\": [\n\t\t16801,\n\t\t16801\n\t],\n\t\"./extra/my.mjs\": [\n\t\t54040,\n\t\t54040\n\t],\n\t\"./extra/mzn.mjs\": [\n\t\t35423,\n\t\t35423\n\t],\n\t\"./extra/naq.mjs\": [\n\t\t65358,\n\t\t65358\n\t],\n\t\"./extra/nb-SJ.mjs\": [\n\t\t43912,\n\t\t43912\n\t],\n\t\"./extra/nb.mjs\": [\n\t\t85830,\n\t\t85830\n\t],\n\t\"./extra/nd.mjs\": [\n\t\t14040,\n\t\t14040\n\t],\n\t\"./extra/nds-NL.mjs\": [\n\t\t91526,\n\t\t91526\n\t],\n\t\"./extra/nds.mjs\": [\n\t\t43199,\n\t\t43199\n\t],\n\t\"./extra/ne-IN.mjs\": [\n\t\t77323,\n\t\t77323\n\t],\n\t\"./extra/ne.mjs\": [\n\t\t39385,\n\t\t39385\n\t],\n\t\"./extra/nl-AW.mjs\": [\n\t\t20765,\n\t\t20765\n\t],\n\t\"./extra/nl-BE.mjs\": [\n\t\t46198,\n\t\t46198\n\t],\n\t\"./extra/nl-BQ.mjs\": [\n\t\t34250,\n\t\t34250\n\t],\n\t\"./extra/nl-CW.mjs\": [\n\t\t87939,\n\t\t87939\n\t],\n\t\"./extra/nl-SR.mjs\": [\n\t\t33593,\n\t\t55974\n\t],\n\t\"./extra/nl-SX.mjs\": [\n\t\t77948,\n\t\t77948\n\t],\n\t\"./extra/nl.mjs\": [\n\t\t26304,\n\t\t26304\n\t],\n\t\"./extra/nmg.mjs\": [\n\t\t40988,\n\t\t40988\n\t],\n\t\"./extra/nn.mjs\": [\n\t\t4882,\n\t\t4882\n\t],\n\t\"./extra/nnh.mjs\": [\n\t\t61074,\n\t\t61074\n\t],\n\t\"./extra/no.mjs\": [\n\t\t20859,\n\t\t20859\n\t],\n\t\"./extra/nus.mjs\": [\n\t\t97864,\n\t\t97864\n\t],\n\t\"./extra/nyn.mjs\": [\n\t\t86433,\n\t\t86433\n\t],\n\t\"./extra/om-KE.mjs\": [\n\t\t51703,\n\t\t51703\n\t],\n\t\"./extra/om.mjs\": [\n\t\t95870,\n\t\t95870\n\t],\n\t\"./extra/or.mjs\": [\n\t\t70617,\n\t\t70617\n\t],\n\t\"./extra/os-RU.mjs\": [\n\t\t8910,\n\t\t8910\n\t],\n\t\"./extra/os.mjs\": [\n\t\t61624,\n\t\t61624\n\t],\n\t\"./extra/pa-Arab.mjs\": [\n\t\t64660,\n\t\t64660\n\t],\n\t\"./extra/pa-Guru.mjs\": [\n\t\t18255,\n\t\t18255\n\t],\n\t\"./extra/pa.mjs\": [\n\t\t85223,\n\t\t85223\n\t],\n\t\"./extra/pcm.mjs\": [\n\t\t30002,\n\t\t30002\n\t],\n\t\"./extra/pl.mjs\": [\n\t\t52698,\n\t\t52698\n\t],\n\t\"./extra/ps-PK.mjs\": [\n\t\t36377,\n\t\t36377\n\t],\n\t\"./extra/ps.mjs\": [\n\t\t77805,\n\t\t77805\n\t],\n\t\"./extra/pt-AO.mjs\": [\n\t\t55903,\n\t\t55903\n\t],\n\t\"./extra/pt-CH.mjs\": [\n\t\t53494,\n\t\t53494\n\t],\n\t\"./extra/pt-CV.mjs\": [\n\t\t40544,\n\t\t40544\n\t],\n\t\"./extra/pt-GQ.mjs\": [\n\t\t77235,\n\t\t77235\n\t],\n\t\"./extra/pt-GW.mjs\": [\n\t\t41349,\n\t\t41349\n\t],\n\t\"./extra/pt-LU.mjs\": [\n\t\t66870,\n\t\t66870\n\t],\n\t\"./extra/pt-MO.mjs\": [\n\t\t90891,\n\t\t90891\n\t],\n\t\"./extra/pt-MZ.mjs\": [\n\t\t11182,\n\t\t11182\n\t],\n\t\"./extra/pt-PT.mjs\": [\n\t\t26739,\n\t\t26739\n\t],\n\t\"./extra/pt-ST.mjs\": [\n\t\t70466,\n\t\t70466\n\t],\n\t\"./extra/pt-TL.mjs\": [\n\t\t10767,\n\t\t10767\n\t],\n\t\"./extra/pt.mjs\": [\n\t\t54322,\n\t\t54322\n\t],\n\t\"./extra/qu-BO.mjs\": [\n\t\t34460,\n\t\t34460\n\t],\n\t\"./extra/qu-EC.mjs\": [\n\t\t34629,\n\t\t34629\n\t],\n\t\"./extra/qu.mjs\": [\n\t\t59696,\n\t\t59696\n\t],\n\t\"./extra/rm.mjs\": [\n\t\t68597,\n\t\t68597\n\t],\n\t\"./extra/rn.mjs\": [\n\t\t91286,\n\t\t91286\n\t],\n\t\"./extra/ro-MD.mjs\": [\n\t\t95455,\n\t\t95455\n\t],\n\t\"./extra/ro.mjs\": [\n\t\t44031,\n\t\t44031\n\t],\n\t\"./extra/rof.mjs\": [\n\t\t27747,\n\t\t27747\n\t],\n\t\"./extra/ru-BY.mjs\": [\n\t\t98221,\n\t\t98221\n\t],\n\t\"./extra/ru-KG.mjs\": [\n\t\t94860,\n\t\t94860\n\t],\n\t\"./extra/ru-KZ.mjs\": [\n\t\t22905,\n\t\t22905\n\t],\n\t\"./extra/ru-MD.mjs\": [\n\t\t23585,\n\t\t23585\n\t],\n\t\"./extra/ru-UA.mjs\": [\n\t\t11988,\n\t\t11988\n\t],\n\t\"./extra/ru.mjs\": [\n\t\t2125,\n\t\t2125\n\t],\n\t\"./extra/rw.mjs\": [\n\t\t85815,\n\t\t85815\n\t],\n\t\"./extra/rwk.mjs\": [\n\t\t88150,\n\t\t88150\n\t],\n\t\"./extra/sa.mjs\": [\n\t\t40294,\n\t\t40294\n\t],\n\t\"./extra/sah.mjs\": [\n\t\t17598,\n\t\t17598\n\t],\n\t\"./extra/saq.mjs\": [\n\t\t42415,\n\t\t42415\n\t],\n\t\"./extra/sat-Olck.mjs\": [\n\t\t27308,\n\t\t27308\n\t],\n\t\"./extra/sat.mjs\": [\n\t\t61866,\n\t\t61866\n\t],\n\t\"./extra/sbp.mjs\": [\n\t\t7543,\n\t\t7543\n\t],\n\t\"./extra/sc.mjs\": [\n\t\t7284,\n\t\t7284\n\t],\n\t\"./extra/sd-Arab.mjs\": [\n\t\t19600,\n\t\t19600\n\t],\n\t\"./extra/sd-Deva.mjs\": [\n\t\t55874,\n\t\t55874\n\t],\n\t\"./extra/sd.mjs\": [\n\t\t90707,\n\t\t90707\n\t],\n\t\"./extra/se-FI.mjs\": [\n\t\t6568,\n\t\t6568\n\t],\n\t\"./extra/se-SE.mjs\": [\n\t\t73363,\n\t\t73363\n\t],\n\t\"./extra/se.mjs\": [\n\t\t85194,\n\t\t85194\n\t],\n\t\"./extra/seh.mjs\": [\n\t\t6922,\n\t\t6922\n\t],\n\t\"./extra/ses.mjs\": [\n\t\t19281,\n\t\t19281\n\t],\n\t\"./extra/sg.mjs\": [\n\t\t96792,\n\t\t96792\n\t],\n\t\"./extra/shi-Latn.mjs\": [\n\t\t22786,\n\t\t22786\n\t],\n\t\"./extra/shi-Tfng.mjs\": [\n\t\t37342,\n\t\t37342\n\t],\n\t\"./extra/shi.mjs\": [\n\t\t54148,\n\t\t54148\n\t],\n\t\"./extra/si.mjs\": [\n\t\t33646,\n\t\t33646\n\t],\n\t\"./extra/sk.mjs\": [\n\t\t45916,\n\t\t45916\n\t],\n\t\"./extra/sl.mjs\": [\n\t\t5051,\n\t\t5051\n\t],\n\t\"./extra/smn.mjs\": [\n\t\t72892,\n\t\t72892\n\t],\n\t\"./extra/sn.mjs\": [\n\t\t4385,\n\t\t4385\n\t],\n\t\"./extra/so-DJ.mjs\": [\n\t\t50071,\n\t\t50071\n\t],\n\t\"./extra/so-ET.mjs\": [\n\t\t70634,\n\t\t70634\n\t],\n\t\"./extra/so-KE.mjs\": [\n\t\t92017,\n\t\t92017\n\t],\n\t\"./extra/so.mjs\": [\n\t\t60032,\n\t\t60032\n\t],\n\t\"./extra/sq-MK.mjs\": [\n\t\t77155,\n\t\t77155\n\t],\n\t\"./extra/sq-XK.mjs\": [\n\t\t89400,\n\t\t89400\n\t],\n\t\"./extra/sq.mjs\": [\n\t\t44726,\n\t\t44726\n\t],\n\t\"./extra/sr-Cyrl-BA.mjs\": [\n\t\t20962,\n\t\t20962\n\t],\n\t\"./extra/sr-Cyrl-ME.mjs\": [\n\t\t22259,\n\t\t22259\n\t],\n\t\"./extra/sr-Cyrl-XK.mjs\": [\n\t\t7514,\n\t\t7514\n\t],\n\t\"./extra/sr-Cyrl.mjs\": [\n\t\t31336,\n\t\t31336\n\t],\n\t\"./extra/sr-Latn-BA.mjs\": [\n\t\t11813,\n\t\t11813\n\t],\n\t\"./extra/sr-Latn-ME.mjs\": [\n\t\t77296,\n\t\t77296\n\t],\n\t\"./extra/sr-Latn-XK.mjs\": [\n\t\t48849,\n\t\t48849\n\t],\n\t\"./extra/sr-Latn.mjs\": [\n\t\t66653,\n\t\t66653\n\t],\n\t\"./extra/sr.mjs\": [\n\t\t63125,\n\t\t63125\n\t],\n\t\"./extra/su-Latn.mjs\": [\n\t\t67248,\n\t\t67248\n\t],\n\t\"./extra/su.mjs\": [\n\t\t11130,\n\t\t11130\n\t],\n\t\"./extra/sv-AX.mjs\": [\n\t\t79173,\n\t\t79173\n\t],\n\t\"./extra/sv-FI.mjs\": [\n\t\t81173,\n\t\t81173\n\t],\n\t\"./extra/sv.mjs\": [\n\t\t30441,\n\t\t30441\n\t],\n\t\"./extra/sw-CD.mjs\": [\n\t\t79360,\n\t\t79360\n\t],\n\t\"./extra/sw-KE.mjs\": [\n\t\t87689,\n\t\t87689\n\t],\n\t\"./extra/sw-UG.mjs\": [\n\t\t60289,\n\t\t60289\n\t],\n\t\"./extra/sw.mjs\": [\n\t\t42728,\n\t\t42728\n\t],\n\t\"./extra/ta-LK.mjs\": [\n\t\t64771,\n\t\t64771\n\t],\n\t\"./extra/ta-MY.mjs\": [\n\t\t80670,\n\t\t80670\n\t],\n\t\"./extra/ta-SG.mjs\": [\n\t\t37918,\n\t\t37918\n\t],\n\t\"./extra/ta.mjs\": [\n\t\t23555,\n\t\t23555\n\t],\n\t\"./extra/te.mjs\": [\n\t\t2495,\n\t\t2495\n\t],\n\t\"./extra/teo-KE.mjs\": [\n\t\t62915,\n\t\t62915\n\t],\n\t\"./extra/teo.mjs\": [\n\t\t27842,\n\t\t27842\n\t],\n\t\"./extra/tg.mjs\": [\n\t\t10709,\n\t\t10709\n\t],\n\t\"./extra/th.mjs\": [\n\t\t11778,\n\t\t11778\n\t],\n\t\"./extra/ti-ER.mjs\": [\n\t\t60901,\n\t\t60901\n\t],\n\t\"./extra/ti.mjs\": [\n\t\t587,\n\t\t587\n\t],\n\t\"./extra/tk.mjs\": [\n\t\t45137,\n\t\t45137\n\t],\n\t\"./extra/to.mjs\": [\n\t\t3773,\n\t\t3773\n\t],\n\t\"./extra/tr-CY.mjs\": [\n\t\t53413,\n\t\t53413\n\t],\n\t\"./extra/tr.mjs\": [\n\t\t44376,\n\t\t44376\n\t],\n\t\"./extra/tt.mjs\": [\n\t\t87878,\n\t\t87878\n\t],\n\t\"./extra/twq.mjs\": [\n\t\t32398,\n\t\t32398\n\t],\n\t\"./extra/tzm.mjs\": [\n\t\t75081,\n\t\t75081\n\t],\n\t\"./extra/ug.mjs\": [\n\t\t76166,\n\t\t76166\n\t],\n\t\"./extra/uk.mjs\": [\n\t\t95218,\n\t\t95218\n\t],\n\t\"./extra/und.mjs\": [\n\t\t71633,\n\t\t71633\n\t],\n\t\"./extra/ur-IN.mjs\": [\n\t\t11925,\n\t\t11925\n\t],\n\t\"./extra/ur.mjs\": [\n\t\t515,\n\t\t515\n\t],\n\t\"./extra/uz-Arab.mjs\": [\n\t\t43592,\n\t\t43592\n\t],\n\t\"./extra/uz-Cyrl.mjs\": [\n\t\t58026,\n\t\t58026\n\t],\n\t\"./extra/uz-Latn.mjs\": [\n\t\t88875,\n\t\t88875\n\t],\n\t\"./extra/uz.mjs\": [\n\t\t19499,\n\t\t19499\n\t],\n\t\"./extra/vai-Latn.mjs\": [\n\t\t29948,\n\t\t29948\n\t],\n\t\"./extra/vai-Vaii.mjs\": [\n\t\t42274,\n\t\t42274\n\t],\n\t\"./extra/vai.mjs\": [\n\t\t11774,\n\t\t11774\n\t],\n\t\"./extra/vi.mjs\": [\n\t\t32197,\n\t\t32197\n\t],\n\t\"./extra/vun.mjs\": [\n\t\t75189,\n\t\t75189\n\t],\n\t\"./extra/wae.mjs\": [\n\t\t46463,\n\t\t46463\n\t],\n\t\"./extra/wo.mjs\": [\n\t\t83332,\n\t\t83332\n\t],\n\t\"./extra/xh.mjs\": [\n\t\t4110,\n\t\t4110\n\t],\n\t\"./extra/xog.mjs\": [\n\t\t88188,\n\t\t88188\n\t],\n\t\"./extra/yav.mjs\": [\n\t\t22646,\n\t\t22646\n\t],\n\t\"./extra/yi.mjs\": [\n\t\t98284,\n\t\t98284\n\t],\n\t\"./extra/yo-BJ.mjs\": [\n\t\t92639,\n\t\t92639\n\t],\n\t\"./extra/yo.mjs\": [\n\t\t50114,\n\t\t50114\n\t],\n\t\"./extra/yrl-CO.mjs\": [\n\t\t58680,\n\t\t58680\n\t],\n\t\"./extra/yrl-VE.mjs\": [\n\t\t50937,\n\t\t50937\n\t],\n\t\"./extra/yrl.mjs\": [\n\t\t36257,\n\t\t36257\n\t],\n\t\"./extra/yue-Hans.mjs\": [\n\t\t72362,\n\t\t72362\n\t],\n\t\"./extra/yue-Hant.mjs\": [\n\t\t76165,\n\t\t76165\n\t],\n\t\"./extra/yue.mjs\": [\n\t\t20409,\n\t\t20409\n\t],\n\t\"./extra/zgh.mjs\": [\n\t\t37645,\n\t\t37645\n\t],\n\t\"./extra/zh-Hans-HK.mjs\": [\n\t\t91066,\n\t\t91066\n\t],\n\t\"./extra/zh-Hans-MO.mjs\": [\n\t\t72262,\n\t\t72262\n\t],\n\t\"./extra/zh-Hans-SG.mjs\": [\n\t\t21320,\n\t\t21320\n\t],\n\t\"./extra/zh-Hans.mjs\": [\n\t\t9113,\n\t\t9113\n\t],\n\t\"./extra/zh-Hant-HK.mjs\": [\n\t\t5912,\n\t\t5912\n\t],\n\t\"./extra/zh-Hant-MO.mjs\": [\n\t\t28751,\n\t\t28751\n\t],\n\t\"./extra/zh-Hant.mjs\": [\n\t\t48230,\n\t\t48230\n\t],\n\t\"./extra/zh.mjs\": [\n\t\t50368,\n\t\t50368\n\t],\n\t\"./extra/zu.mjs\": [\n\t\t53461,\n\t\t53461\n\t],\n\t\"./fa-AF.mjs\": [\n\t\t37812,\n\t\t37812\n\t],\n\t\"./fa.mjs\": [\n\t\t5528,\n\t\t5528\n\t],\n\t\"./ff-Adlm-BF.mjs\": [\n\t\t883,\n\t\t883\n\t],\n\t\"./ff-Adlm-CM.mjs\": [\n\t\t29675,\n\t\t29675\n\t],\n\t\"./ff-Adlm-GH.mjs\": [\n\t\t38570,\n\t\t38570\n\t],\n\t\"./ff-Adlm-GM.mjs\": [\n\t\t26447,\n\t\t26447\n\t],\n\t\"./ff-Adlm-GW.mjs\": [\n\t\t86269,\n\t\t86269\n\t],\n\t\"./ff-Adlm-LR.mjs\": [\n\t\t33105,\n\t\t33105\n\t],\n\t\"./ff-Adlm-MR.mjs\": [\n\t\t1742,\n\t\t1742\n\t],\n\t\"./ff-Adlm-NE.mjs\": [\n\t\t45284,\n\t\t45284\n\t],\n\t\"./ff-Adlm-NG.mjs\": [\n\t\t1462,\n\t\t1462\n\t],\n\t\"./ff-Adlm-SL.mjs\": [\n\t\t11186,\n\t\t11186\n\t],\n\t\"./ff-Adlm-SN.mjs\": [\n\t\t72256,\n\t\t72256\n\t],\n\t\"./ff-Adlm.mjs\": [\n\t\t554,\n\t\t554\n\t],\n\t\"./ff-CM.mjs\": [\n\t\t69784,\n\t\t69784\n\t],\n\t\"./ff-GN.mjs\": [\n\t\t53175,\n\t\t53175\n\t],\n\t\"./ff-Latn-BF.mjs\": [\n\t\t80856,\n\t\t80856\n\t],\n\t\"./ff-Latn-CM.mjs\": [\n\t\t85040,\n\t\t85040\n\t],\n\t\"./ff-Latn-GH.mjs\": [\n\t\t83545,\n\t\t83545\n\t],\n\t\"./ff-Latn-GM.mjs\": [\n\t\t85044,\n\t\t85044\n\t],\n\t\"./ff-Latn-GN.mjs\": [\n\t\t16655,\n\t\t16655\n\t],\n\t\"./ff-Latn-GW.mjs\": [\n\t\t17246,\n\t\t17246\n\t],\n\t\"./ff-Latn-LR.mjs\": [\n\t\t26910,\n\t\t26910\n\t],\n\t\"./ff-Latn-MR.mjs\": [\n\t\t39393,\n\t\t39393\n\t],\n\t\"./ff-Latn-NE.mjs\": [\n\t\t20095,\n\t\t20095\n\t],\n\t\"./ff-Latn-NG.mjs\": [\n\t\t56053,\n\t\t56053\n\t],\n\t\"./ff-Latn-SL.mjs\": [\n\t\t58721,\n\t\t58721\n\t],\n\t\"./ff-Latn.mjs\": [\n\t\t54807,\n\t\t54807\n\t],\n\t\"./ff-MR.mjs\": [\n\t\t58985,\n\t\t58985\n\t],\n\t\"./ff.mjs\": [\n\t\t28783,\n\t\t28783\n\t],\n\t\"./fi.mjs\": [\n\t\t56864,\n\t\t56864\n\t],\n\t\"./fil.mjs\": [\n\t\t45192,\n\t\t45192\n\t],\n\t\"./fo-DK.mjs\": [\n\t\t43292,\n\t\t43292\n\t],\n\t\"./fo.mjs\": [\n\t\t24449,\n\t\t46830\n\t],\n\t\"./fr-BE.mjs\": [\n\t\t82983,\n\t\t82983\n\t],\n\t\"./fr-BF.mjs\": [\n\t\t28972,\n\t\t28972\n\t],\n\t\"./fr-BI.mjs\": [\n\t\t74787,\n\t\t74787\n\t],\n\t\"./fr-BJ.mjs\": [\n\t\t41544,\n\t\t41544\n\t],\n\t\"./fr-BL.mjs\": [\n\t\t95958,\n\t\t95958\n\t],\n\t\"./fr-CA.mjs\": [\n\t\t22624,\n\t\t22624\n\t],\n\t\"./fr-CD.mjs\": [\n\t\t98829,\n\t\t98829\n\t],\n\t\"./fr-CF.mjs\": [\n\t\t62167,\n\t\t62167\n\t],\n\t\"./fr-CG.mjs\": [\n\t\t12590,\n\t\t12590\n\t],\n\t\"./fr-CH.mjs\": [\n\t\t84729,\n\t\t84729\n\t],\n\t\"./fr-CI.mjs\": [\n\t\t71288,\n\t\t71288\n\t],\n\t\"./fr-CM.mjs\": [\n\t\t58484,\n\t\t58484\n\t],\n\t\"./fr-DJ.mjs\": [\n\t\t97970,\n\t\t97970\n\t],\n\t\"./fr-DZ.mjs\": [\n\t\t42466,\n\t\t42466\n\t],\n\t\"./fr-GA.mjs\": [\n\t\t27428,\n\t\t27428\n\t],\n\t\"./fr-GF.mjs\": [\n\t\t62435,\n\t\t62435\n\t],\n\t\"./fr-GN.mjs\": [\n\t\t97771,\n\t\t97771\n\t],\n\t\"./fr-GP.mjs\": [\n\t\t71301,\n\t\t71301\n\t],\n\t\"./fr-GQ.mjs\": [\n\t\t61396,\n\t\t61396\n\t],\n\t\"./fr-HT.mjs\": [\n\t\t1744,\n\t\t1744\n\t],\n\t\"./fr-KM.mjs\": [\n\t\t72188,\n\t\t72188\n\t],\n\t\"./fr-LU.mjs\": [\n\t\t86285,\n\t\t86285\n\t],\n\t\"./fr-MA.mjs\": [\n\t\t11878,\n\t\t11878\n\t],\n\t\"./fr-MC.mjs\": [\n\t\t95220,\n\t\t95220\n\t],\n\t\"./fr-MF.mjs\": [\n\t\t93721,\n\t\t93721\n\t],\n\t\"./fr-MG.mjs\": [\n\t\t68376,\n\t\t68376\n\t],\n\t\"./fr-ML.mjs\": [\n\t\t92987,\n\t\t92987\n\t],\n\t\"./fr-MQ.mjs\": [\n\t\t32662,\n\t\t32662\n\t],\n\t\"./fr-MR.mjs\": [\n\t\t51061,\n\t\t51061\n\t],\n\t\"./fr-MU.mjs\": [\n\t\t99066,\n\t\t99066\n\t],\n\t\"./fr-NC.mjs\": [\n\t\t4925,\n\t\t4925\n\t],\n\t\"./fr-NE.mjs\": [\n\t\t59211,\n\t\t59211\n\t],\n\t\"./fr-PF.mjs\": [\n\t\t80042,\n\t\t80042\n\t],\n\t\"./fr-PM.mjs\": [\n\t\t21921,\n\t\t21921\n\t],\n\t\"./fr-RE.mjs\": [\n\t\t8567,\n\t\t8567\n\t],\n\t\"./fr-RW.mjs\": [\n\t\t53789,\n\t\t53789\n\t],\n\t\"./fr-SC.mjs\": [\n\t\t9378,\n\t\t9378\n\t],\n\t\"./fr-SN.mjs\": [\n\t\t83743,\n\t\t83743\n\t],\n\t\"./fr-SY.mjs\": [\n\t\t25624,\n\t\t25624\n\t],\n\t\"./fr-TD.mjs\": [\n\t\t21828,\n\t\t21828\n\t],\n\t\"./fr-TG.mjs\": [\n\t\t13919,\n\t\t13919\n\t],\n\t\"./fr-TN.mjs\": [\n\t\t98494,\n\t\t98494\n\t],\n\t\"./fr-VU.mjs\": [\n\t\t44243,\n\t\t44243\n\t],\n\t\"./fr-WF.mjs\": [\n\t\t2131,\n\t\t2131\n\t],\n\t\"./fr-YT.mjs\": [\n\t\t11975,\n\t\t11975\n\t],\n\t\"./fr.mjs\": [\n\t\t42179,\n\t\t42179\n\t],\n\t\"./fur.mjs\": [\n\t\t94490,\n\t\t94490\n\t],\n\t\"./fy.mjs\": [\n\t\t26320,\n\t\t26320\n\t],\n\t\"./ga-GB.mjs\": [\n\t\t71135,\n\t\t71135\n\t],\n\t\"./ga.mjs\": [\n\t\t13027,\n\t\t13027\n\t],\n\t\"./gd.mjs\": [\n\t\t23702,\n\t\t23702\n\t],\n\t\"./gl.mjs\": [\n\t\t51134,\n\t\t51134\n\t],\n\t\"./gsw-FR.mjs\": [\n\t\t16953,\n\t\t16953\n\t],\n\t\"./gsw-LI.mjs\": [\n\t\t4176,\n\t\t4176\n\t],\n\t\"./gsw.mjs\": [\n\t\t68244,\n\t\t68244\n\t],\n\t\"./gu.mjs\": [\n\t\t75951,\n\t\t75951\n\t],\n\t\"./guz.mjs\": [\n\t\t71175,\n\t\t71175\n\t],\n\t\"./gv.mjs\": [\n\t\t89607,\n\t\t89607\n\t],\n\t\"./ha-GH.mjs\": [\n\t\t18998,\n\t\t18998\n\t],\n\t\"./ha-NE.mjs\": [\n\t\t8808,\n\t\t8808\n\t],\n\t\"./ha.mjs\": [\n\t\t89582,\n\t\t89582\n\t],\n\t\"./haw.mjs\": [\n\t\t63857,\n\t\t63857\n\t],\n\t\"./he.mjs\": [\n\t\t52338,\n\t\t52338\n\t],\n\t\"./hi-Latn.mjs\": [\n\t\t63172,\n\t\t63172\n\t],\n\t\"./hi.mjs\": [\n\t\t25958,\n\t\t25958\n\t],\n\t\"./hr-BA.mjs\": [\n\t\t75589,\n\t\t75589\n\t],\n\t\"./hr.mjs\": [\n\t\t31357,\n\t\t31357\n\t],\n\t\"./hsb.mjs\": [\n\t\t1954,\n\t\t1954\n\t],\n\t\"./hu.mjs\": [\n\t\t89506,\n\t\t89506\n\t],\n\t\"./hy.mjs\": [\n\t\t12566,\n\t\t12566\n\t],\n\t\"./ia.mjs\": [\n\t\t84985,\n\t\t84985\n\t],\n\t\"./id.mjs\": [\n\t\t54740,\n\t\t54740\n\t],\n\t\"./ig.mjs\": [\n\t\t18703,\n\t\t18703\n\t],\n\t\"./ii.mjs\": [\n\t\t83585,\n\t\t83585\n\t],\n\t\"./is.mjs\": [\n\t\t55779,\n\t\t55779\n\t],\n\t\"./it-CH.mjs\": [\n\t\t83168,\n\t\t83168\n\t],\n\t\"./it-SM.mjs\": [\n\t\t44125,\n\t\t44125\n\t],\n\t\"./it-VA.mjs\": [\n\t\t92154,\n\t\t92154\n\t],\n\t\"./it.mjs\": [\n\t\t20772,\n\t\t20772\n\t],\n\t\"./ja.mjs\": [\n\t\t95396,\n\t\t95396\n\t],\n\t\"./jgo.mjs\": [\n\t\t96757,\n\t\t96757\n\t],\n\t\"./jmc.mjs\": [\n\t\t21047,\n\t\t21047\n\t],\n\t\"./jv.mjs\": [\n\t\t93555,\n\t\t93555\n\t],\n\t\"./ka.mjs\": [\n\t\t10511,\n\t\t10511\n\t],\n\t\"./kab.mjs\": [\n\t\t54671,\n\t\t54671\n\t],\n\t\"./kam.mjs\": [\n\t\t82752,\n\t\t82752\n\t],\n\t\"./kde.mjs\": [\n\t\t92119,\n\t\t92119\n\t],\n\t\"./kea.mjs\": [\n\t\t65168,\n\t\t65168\n\t],\n\t\"./kgp.mjs\": [\n\t\t52755,\n\t\t52755\n\t],\n\t\"./khq.mjs\": [\n\t\t82343,\n\t\t82343\n\t],\n\t\"./ki.mjs\": [\n\t\t82583,\n\t\t82583\n\t],\n\t\"./kk.mjs\": [\n\t\t45421,\n\t\t45421\n\t],\n\t\"./kkj.mjs\": [\n\t\t55389,\n\t\t55389\n\t],\n\t\"./kl.mjs\": [\n\t\t91314,\n\t\t91314\n\t],\n\t\"./kln.mjs\": [\n\t\t32316,\n\t\t32316\n\t],\n\t\"./km.mjs\": [\n\t\t76667,\n\t\t76667\n\t],\n\t\"./kn.mjs\": [\n\t\t15296,\n\t\t15296\n\t],\n\t\"./ko-KP.mjs\": [\n\t\t77695,\n\t\t77695\n\t],\n\t\"./ko.mjs\": [\n\t\t59649,\n\t\t59649\n\t],\n\t\"./kok.mjs\": [\n\t\t95192,\n\t\t95192\n\t],\n\t\"./ks-Arab.mjs\": [\n\t\t11246,\n\t\t11246\n\t],\n\t\"./ks-Deva.mjs\": [\n\t\t97396,\n\t\t97396\n\t],\n\t\"./ks.mjs\": [\n\t\t34741,\n\t\t34741\n\t],\n\t\"./ksb.mjs\": [\n\t\t28941,\n\t\t28941\n\t],\n\t\"./ksf.mjs\": [\n\t\t26209,\n\t\t26209\n\t],\n\t\"./ksh.mjs\": [\n\t\t77679,\n\t\t77679\n\t],\n\t\"./ku.mjs\": [\n\t\t31235,\n\t\t31235\n\t],\n\t\"./kw.mjs\": [\n\t\t85705,\n\t\t85705\n\t],\n\t\"./ky.mjs\": [\n\t\t52839,\n\t\t52839\n\t],\n\t\"./lag.mjs\": [\n\t\t9421,\n\t\t9421\n\t],\n\t\"./lb.mjs\": [\n\t\t67737,\n\t\t67737\n\t],\n\t\"./lg.mjs\": [\n\t\t52884,\n\t\t52884\n\t],\n\t\"./lkt.mjs\": [\n\t\t36544,\n\t\t36544\n\t],\n\t\"./ln-AO.mjs\": [\n\t\t9286,\n\t\t9286\n\t],\n\t\"./ln-CF.mjs\": [\n\t\t74373,\n\t\t74373\n\t],\n\t\"./ln-CG.mjs\": [\n\t\t64468,\n\t\t64468\n\t],\n\t\"./ln.mjs\": [\n\t\t35757,\n\t\t35757\n\t],\n\t\"./lo.mjs\": [\n\t\t91516,\n\t\t91516\n\t],\n\t\"./lrc-IQ.mjs\": [\n\t\t55915,\n\t\t55915\n\t],\n\t\"./lrc.mjs\": [\n\t\t93368,\n\t\t93368\n\t],\n\t\"./lt.mjs\": [\n\t\t511,\n\t\t511\n\t],\n\t\"./lu.mjs\": [\n\t\t6678,\n\t\t6678\n\t],\n\t\"./luo.mjs\": [\n\t\t33921,\n\t\t33921\n\t],\n\t\"./luy.mjs\": [\n\t\t30663,\n\t\t30663\n\t],\n\t\"./lv.mjs\": [\n\t\t25077,\n\t\t25077\n\t],\n\t\"./mai.mjs\": [\n\t\t31078,\n\t\t31078\n\t],\n\t\"./mas-TZ.mjs\": [\n\t\t46859,\n\t\t46859\n\t],\n\t\"./mas.mjs\": [\n\t\t61196,\n\t\t61196\n\t],\n\t\"./mer.mjs\": [\n\t\t95657,\n\t\t95657\n\t],\n\t\"./mfe.mjs\": [\n\t\t35943,\n\t\t35943\n\t],\n\t\"./mg.mjs\": [\n\t\t99363,\n\t\t99363\n\t],\n\t\"./mgh.mjs\": [\n\t\t20505,\n\t\t20505\n\t],\n\t\"./mgo.mjs\": [\n\t\t66950,\n\t\t66950\n\t],\n\t\"./mi.mjs\": [\n\t\t72637,\n\t\t72637\n\t],\n\t\"./mk.mjs\": [\n\t\t23911,\n\t\t23911\n\t],\n\t\"./ml.mjs\": [\n\t\t52880,\n\t\t52880\n\t],\n\t\"./mn.mjs\": [\n\t\t5378,\n\t\t5378\n\t],\n\t\"./mni-Beng.mjs\": [\n\t\t16374,\n\t\t16374\n\t],\n\t\"./mni.mjs\": [\n\t\t6507,\n\t\t6507\n\t],\n\t\"./mr.mjs\": [\n\t\t44390,\n\t\t44390\n\t],\n\t\"./ms-BN.mjs\": [\n\t\t43624,\n\t\t43624\n\t],\n\t\"./ms-ID.mjs\": [\n\t\t41787,\n\t\t41787\n\t],\n\t\"./ms-SG.mjs\": [\n\t\t87778,\n\t\t87778\n\t],\n\t\"./ms.mjs\": [\n\t\t55343,\n\t\t55343\n\t],\n\t\"./mt.mjs\": [\n\t\t96280,\n\t\t96280\n\t],\n\t\"./mua.mjs\": [\n\t\t16410,\n\t\t16410\n\t],\n\t\"./my.mjs\": [\n\t\t64077,\n\t\t64077\n\t],\n\t\"./mzn.mjs\": [\n\t\t73816,\n\t\t73816\n\t],\n\t\"./naq.mjs\": [\n\t\t20173,\n\t\t20173\n\t],\n\t\"./nb-SJ.mjs\": [\n\t\t96299,\n\t\t96299\n\t],\n\t\"./nb.mjs\": [\n\t\t82363,\n\t\t82363\n\t],\n\t\"./nd.mjs\": [\n\t\t16493,\n\t\t16493\n\t],\n\t\"./nds-NL.mjs\": [\n\t\t83183,\n\t\t83183\n\t],\n\t\"./nds.mjs\": [\n\t\t58420,\n\t\t58420\n\t],\n\t\"./ne-IN.mjs\": [\n\t\t58720,\n\t\t58720\n\t],\n\t\"./ne.mjs\": [\n\t\t55868,\n\t\t55868\n\t],\n\t\"./nl-AW.mjs\": [\n\t\t78614,\n\t\t78614\n\t],\n\t\"./nl-BE.mjs\": [\n\t\t94273,\n\t\t94273\n\t],\n\t\"./nl-BQ.mjs\": [\n\t\t39741,\n\t\t39741\n\t],\n\t\"./nl-CW.mjs\": [\n\t\t1788,\n\t\t1788\n\t],\n\t\"./nl-SR.mjs\": [\n\t\t34417,\n\t\t34417\n\t],\n\t\"./nl-SX.mjs\": [\n\t\t12835,\n\t\t12835\n\t],\n\t\"./nl.mjs\": [\n\t\t64197,\n\t\t64197\n\t],\n\t\"./nmg.mjs\": [\n\t\t82591,\n\t\t82591\n\t],\n\t\"./nn.mjs\": [\n\t\t7759,\n\t\t7759\n\t],\n\t\"./nnh.mjs\": [\n\t\t16397,\n\t\t16397\n\t],\n\t\"./no.mjs\": [\n\t\t96806,\n\t\t96806\n\t],\n\t\"./nus.mjs\": [\n\t\t45339,\n\t\t45339\n\t],\n\t\"./nyn.mjs\": [\n\t\t9858,\n\t\t9858\n\t],\n\t\"./om-KE.mjs\": [\n\t\t4536,\n\t\t4536\n\t],\n\t\"./om.mjs\": [\n\t\t30687,\n\t\t30687\n\t],\n\t\"./or.mjs\": [\n\t\t47200,\n\t\t47200\n\t],\n\t\"./os-RU.mjs\": [\n\t\t81829,\n\t\t81829\n\t],\n\t\"./os.mjs\": [\n\t\t19809,\n\t\t19809\n\t],\n\t\"./pa-Arab.mjs\": [\n\t\t31423,\n\t\t31423\n\t],\n\t\"./pa-Guru.mjs\": [\n\t\t41860,\n\t\t41860\n\t],\n\t\"./pa.mjs\": [\n\t\t23126,\n\t\t23126\n\t],\n\t\"./pcm.mjs\": [\n\t\t6125,\n\t\t6125\n\t],\n\t\"./pl.mjs\": [\n\t\t90315,\n\t\t90315\n\t],\n\t\"./ps-PK.mjs\": [\n\t\t95518,\n\t\t95518\n\t],\n\t\"./ps.mjs\": [\n\t\t58388,\n\t\t58388\n\t],\n\t\"./pt-AO.mjs\": [\n\t\t14796,\n\t\t14796\n\t],\n\t\"./pt-CH.mjs\": [\n\t\t86409,\n\t\t86409\n\t],\n\t\"./pt-CV.mjs\": [\n\t\t83287,\n\t\t83287\n\t],\n\t\"./pt-GQ.mjs\": [\n\t\t84324,\n\t\t84324\n\t],\n\t\"./pt-GW.mjs\": [\n\t\t95002,\n\t\t95002\n\t],\n\t\"./pt-LU.mjs\": [\n\t\t85917,\n\t\t85917\n\t],\n\t\"./pt-MO.mjs\": [\n\t\t13744,\n\t\t13744\n\t],\n\t\"./pt-MZ.mjs\": [\n\t\t8589,\n\t\t8589\n\t],\n\t\"./pt-PT.mjs\": [\n\t\t70904,\n\t\t70904\n\t],\n\t\"./pt-ST.mjs\": [\n\t\t99677,\n\t\t99677\n\t],\n\t\"./pt-TL.mjs\": [\n\t\t48764,\n\t\t48764\n\t],\n\t\"./pt.mjs\": [\n\t\t94835,\n\t\t94835\n\t],\n\t\"./qu-BO.mjs\": [\n\t\t14792,\n\t\t92411\n\t],\n\t\"./qu-EC.mjs\": [\n\t\t9606,\n\t\t9606\n\t],\n\t\"./qu.mjs\": [\n\t\t11293,\n\t\t11293\n\t],\n\t\"./rm.mjs\": [\n\t\t75016,\n\t\t75016\n\t],\n\t\"./rn.mjs\": [\n\t\t18755,\n\t\t18755\n\t],\n\t\"./ro-MD.mjs\": [\n\t\t34144,\n\t\t34144\n\t],\n\t\"./ro.mjs\": [\n\t\t890,\n\t\t890\n\t],\n\t\"./rof.mjs\": [\n\t\t1068,\n\t\t1068\n\t],\n\t\"./ru-BY.mjs\": [\n\t\t20338,\n\t\t20338\n\t],\n\t\"./ru-KG.mjs\": [\n\t\t70219,\n\t\t70219\n\t],\n\t\"./ru-KZ.mjs\": [\n\t\t26886,\n\t\t26886\n\t],\n\t\"./ru-MD.mjs\": [\n\t\t92082,\n\t\t92082\n\t],\n\t\"./ru-UA.mjs\": [\n\t\t47663,\n\t\t47663\n\t],\n\t\"./ru.mjs\": [\n\t\t33440,\n\t\t33440\n\t],\n\t\"./rw.mjs\": [\n\t\t86162,\n\t\t86162\n\t],\n\t\"./rwk.mjs\": [\n\t\t74977,\n\t\t74977\n\t],\n\t\"./sa.mjs\": [\n\t\t41751,\n\t\t41751\n\t],\n\t\"./sah.mjs\": [\n\t\t65941,\n\t\t65941\n\t],\n\t\"./saq.mjs\": [\n\t\t38844,\n\t\t38844\n\t],\n\t\"./sat-Olck.mjs\": [\n\t\t72493,\n\t\t72493\n\t],\n\t\"./sat.mjs\": [\n\t\t78913,\n\t\t78913\n\t],\n\t\"./sbp.mjs\": [\n\t\t33776,\n\t\t33776\n\t],\n\t\"./sc.mjs\": [\n\t\t62061,\n\t\t62061\n\t],\n\t\"./sd-Arab.mjs\": [\n\t\t93803,\n\t\t93803\n\t],\n\t\"./sd-Deva.mjs\": [\n\t\t2813,\n\t\t2813\n\t],\n\t\"./sd.mjs\": [\n\t\t38578,\n\t\t38578\n\t],\n\t\"./se-FI.mjs\": [\n\t\t57791,\n\t\t57791\n\t],\n\t\"./se-SE.mjs\": [\n\t\t47652,\n\t\t47652\n\t],\n\t\"./se.mjs\": [\n\t\t47227,\n\t\t47227\n\t],\n\t\"./seh.mjs\": [\n\t\t15441,\n\t\t15441\n\t],\n\t\"./ses.mjs\": [\n\t\t27818,\n\t\t27818\n\t],\n\t\"./sg.mjs\": [\n\t\t42113,\n\t\t42113\n\t],\n\t\"./shi-Latn.mjs\": [\n\t\t17103,\n\t\t17103\n\t],\n\t\"./shi-Tfng.mjs\": [\n\t\t55567,\n\t\t55567\n\t],\n\t\"./shi.mjs\": [\n\t\t65991,\n\t\t65991\n\t],\n\t\"./si.mjs\": [\n\t\t57775,\n\t\t57775\n\t],\n\t\"./sk.mjs\": [\n\t\t73701,\n\t\t73701\n\t],\n\t\"./sl.mjs\": [\n\t\t69898,\n\t\t69898\n\t],\n\t\"./smn.mjs\": [\n\t\t63103,\n\t\t63103\n\t],\n\t\"./sn.mjs\": [\n\t\t34520,\n\t\t34520\n\t],\n\t\"./so-DJ.mjs\": [\n\t\t59408,\n\t\t59408\n\t],\n\t\"./so-ET.mjs\": [\n\t\t73173,\n\t\t73173\n\t],\n\t\"./so-KE.mjs\": [\n\t\t49202,\n\t\t49202\n\t],\n\t\"./so.mjs\": [\n\t\t47961,\n\t\t47961\n\t],\n\t\"./sq-MK.mjs\": [\n\t\t74264,\n\t\t74264\n\t],\n\t\"./sq-XK.mjs\": [\n\t\t62019,\n\t\t62019\n\t],\n\t\"./sq.mjs\": [\n\t\t69479,\n\t\t69479\n\t],\n\t\"./sr-Cyrl-BA.mjs\": [\n\t\t77135,\n\t\t77135\n\t],\n\t\"./sr-Cyrl-ME.mjs\": [\n\t\t30942,\n\t\t30942\n\t],\n\t\"./sr-Cyrl-XK.mjs\": [\n\t\t11155,\n\t\t11155\n\t],\n\t\"./sr-Cyrl.mjs\": [\n\t\t10519,\n\t\t10519\n\t],\n\t\"./sr-Latn-BA.mjs\": [\n\t\t73684,\n\t\t73684\n\t],\n\t\"./sr-Latn-ME.mjs\": [\n\t\t17873,\n\t\t17873\n\t],\n\t\"./sr-Latn-XK.mjs\": [\n\t\t65148,\n\t\t65148\n\t],\n\t\"./sr-Latn.mjs\": [\n\t\t91146,\n\t\t91146\n\t],\n\t\"./sr.mjs\": [\n\t\t15468,\n\t\t15468\n\t],\n\t\"./su-Latn.mjs\": [\n\t\t52395,\n\t\t52395\n\t],\n\t\"./su.mjs\": [\n\t\t55531,\n\t\t55531\n\t],\n\t\"./sv-AX.mjs\": [\n\t\t36810,\n\t\t36810\n\t],\n\t\"./sv-FI.mjs\": [\n\t\t31526,\n\t\t31526\n\t],\n\t\"./sv.mjs\": [\n\t\t55312,\n\t\t55312\n\t],\n\t\"./sw-CD.mjs\": [\n\t\t24843,\n\t\t24843\n\t],\n\t\"./sw-KE.mjs\": [\n\t\t92666,\n\t\t92666\n\t],\n\t\"./sw-UG.mjs\": [\n\t\t74414,\n\t\t74414\n\t],\n\t\"./sw.mjs\": [\n\t\t92753,\n\t\t92753\n\t],\n\t\"./ta-LK.mjs\": [\n\t\t88608,\n\t\t88608\n\t],\n\t\"./ta-MY.mjs\": [\n\t\t97357,\n\t\t97357\n\t],\n\t\"./ta-SG.mjs\": [\n\t\t92193,\n\t\t92193\n\t],\n\t\"./ta.mjs\": [\n\t\t28914,\n\t\t28914\n\t],\n\t\"./te.mjs\": [\n\t\t66158,\n\t\t66158\n\t],\n\t\"./teo-KE.mjs\": [\n\t\t41042,\n\t\t41042\n\t],\n\t\"./teo.mjs\": [\n\t\t47545,\n\t\t47545\n\t],\n\t\"./tg.mjs\": [\n\t\t47804,\n\t\t47804\n\t],\n\t\"./th.mjs\": [\n\t\t95475,\n\t\t95475\n\t],\n\t\"./ti-ER.mjs\": [\n\t\t77910,\n\t\t77910\n\t],\n\t\"./ti.mjs\": [\n\t\t60234,\n\t\t60234\n\t],\n\t\"./tk.mjs\": [\n\t\t24856,\n\t\t24856\n\t],\n\t\"./to.mjs\": [\n\t\t12052,\n\t\t12052\n\t],\n\t\"./tr-CY.mjs\": [\n\t\t88006,\n\t\t88006\n\t],\n\t\"./tr.mjs\": [\n\t\t83089,\n\t\t83089\n\t],\n\t\"./tt.mjs\": [\n\t\t59815,\n\t\t59815\n\t],\n\t\"./twq.mjs\": [\n\t\t44449,\n\t\t44449\n\t],\n\t\"./tzm.mjs\": [\n\t\t37422,\n\t\t37422\n\t],\n\t\"./ug.mjs\": [\n\t\t51339,\n\t\t51339\n\t],\n\t\"./uk.mjs\": [\n\t\t65151,\n\t\t65151\n\t],\n\t\"./und.mjs\": [\n\t\t57310,\n\t\t57310\n\t],\n\t\"./ur-IN.mjs\": [\n\t\t14562,\n\t\t14562\n\t],\n\t\"./ur.mjs\": [\n\t\t20046,\n\t\t20046\n\t],\n\t\"./uz-Arab.mjs\": [\n\t\t54479,\n\t\t54479\n\t],\n\t\"./uz-Cyrl.mjs\": [\n\t\t6381,\n\t\t6381\n\t],\n\t\"./uz-Latn.mjs\": [\n\t\t64836,\n\t\t64836\n\t],\n\t\"./uz.mjs\": [\n\t\t8006,\n\t\t8006\n\t],\n\t\"./vai-Latn.mjs\": [\n\t\t42885,\n\t\t42885\n\t],\n\t\"./vai-Vaii.mjs\": [\n\t\t53515,\n\t\t53515\n\t],\n\t\"./vai.mjs\": [\n\t\t86141,\n\t\t86141\n\t],\n\t\"./vi.mjs\": [\n\t\t15856,\n\t\t15856\n\t],\n\t\"./vun.mjs\": [\n\t\t99038,\n\t\t99038\n\t],\n\t\"./wae.mjs\": [\n\t\t34124,\n\t\t34124\n\t],\n\t\"./wo.mjs\": [\n\t\t21997,\n\t\t21997\n\t],\n\t\"./xh.mjs\": [\n\t\t77087,\n\t\t77087\n\t],\n\t\"./xog.mjs\": [\n\t\t28515,\n\t\t28515\n\t],\n\t\"./yav.mjs\": [\n\t\t53493,\n\t\t53493\n\t],\n\t\"./yi.mjs\": [\n\t\t49489,\n\t\t49489\n\t],\n\t\"./yo-BJ.mjs\": [\n\t\t16172,\n\t\t16172\n\t],\n\t\"./yo.mjs\": [\n\t\t487,\n\t\t487\n\t],\n\t\"./yrl-CO.mjs\": [\n\t\t51141,\n\t\t51141\n\t],\n\t\"./yrl-VE.mjs\": [\n\t\t13192,\n\t\t13192\n\t],\n\t\"./yrl.mjs\": [\n\t\t60230,\n\t\t60230\n\t],\n\t\"./yue-Hans.mjs\": [\n\t\t13967,\n\t\t13967\n\t],\n\t\"./yue-Hant.mjs\": [\n\t\t54904,\n\t\t54904\n\t],\n\t\"./yue.mjs\": [\n\t\t84162,\n\t\t84162\n\t],\n\t\"./zgh.mjs\": [\n\t\t51818,\n\t\t51818\n\t],\n\t\"./zh-Hans-HK.mjs\": [\n\t\t34152,\n\t\t34152\n\t],\n\t\"./zh-Hans-MO.mjs\": [\n\t\t33951,\n\t\t33951\n\t],\n\t\"./zh-Hans-SG.mjs\": [\n\t\t461,\n\t\t461\n\t],\n\t\"./zh-Hans.mjs\": [\n\t\t70742,\n\t\t70742\n\t],\n\t\"./zh-Hant-HK.mjs\": [\n\t\t91037,\n\t\t91037\n\t],\n\t\"./zh-Hant-MO.mjs\": [\n\t\t72662,\n\t\t72662\n\t],\n\t\"./zh-Hant.mjs\": [\n\t\t56457,\n\t\t56457\n\t],\n\t\"./zh.mjs\": [\n\t\t93069,\n\t\t93069\n\t],\n\t\"./zu.mjs\": [\n\t\t11464,\n\t\t11464\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 77055;\nmodule.exports = webpackAsyncContext;"],"x_google_ignoreList":[246]}