{"version":3,"file":"static/js/b90c3a4878f8f23901d6.bundle.js","mappings":";4PAeA,MAAMA,EAAwB,CAAC,MAAO,OAAQ,UAAW,YAElD,IAAUC,wkBAAjB,SAAiBA,GAiBb,MAAMC,EAAwC,GAEjCD,EAAAE,gBAAmBC,IAE5B,GAAUC,EAAAA,GAAAA,0BAA8CD,EAAI,CAExD,MAAME,EAA0BD,EAAAA,GAAAA,yBAA2CD,GACvEE,GAAqBA,EAAkBC,QACvCL,EAAmBE,GAAII,OAASF,EAAkBC,QAC3CD,GAAqBA,EAAkBG,WAAaH,EAAkBG,UAAUC,SACvFR,EAAmBE,GAAII,OAASF,GAIxC,GAAIF,EACA,OAAOF,EAAmBE,IAMrBH,EAAAU,aAAgBH,GACrBA,GAAUA,EAAOC,YAAcD,EAAOC,UAAUG,SAEpBJ,EAAOC,UAAUC,OAE1CF,EAMEP,EAAAY,UAAmBT,IAC5B,IAAKA,EACD,OAEJ,MAAMU,EAAmBb,EAAAE,gBAAgBC,GACzC,OAAIU,EACyBA,EAAiBN,YAD9C,GAWSP,EAAAc,eAAiB,CAAIX,EAAYY,KAC1C,IAAKZ,IAAOY,EAER,OAGJ,MAAMC,EAAiBf,EAEvB,GAAIe,EAAeb,GAAK,CAGpB,OAFqBa,EAAeb,GACvBI,OAASQ,EACAC,EAAeb,GAAII,OACtC,CACH,MAAMU,EAAe,CAAEV,OAAQQ,GAE/B,OADAC,EAAeb,GAAMc,EACdF,IAIf,MAAMG,EACFC,GACC,CAAChB,EAAYiB,MAEThB,EAAAA,GAAAA,WAA8BL,EAAsBsB,QAAQF,IAAa,GAC1EG,EAAAA,GAAAA,IACIC,EAAAA,GAAAA,QACA,+JAA+JJ,eAAsBhB,KAI7L,MAAMc,EAAejB,EAAAE,gBAAgBC,GAE/BqB,EAAQC,MAAMC,QAAQN,GAAQA,EAAO,CAACA,GAC5C,GAAKH,EAKE,CAEH,MAAMU,EAAmBV,EAAaE,IAAa,IAAIS,IACvDJ,EAAMK,SAAQC,IACVH,EAAiBI,IAAgBD,MAGrCb,EAAaE,GAAYQ,MAZV,CAEf,MAAMK,EAA6C,GACnDA,EAAgBb,GAAY,IAAIS,IAA8BJ,GAC9DvB,EAAmBE,GAAM6B,EAU7B,OAAOZ,GAIEpB,EAAAiC,iBAAmBf,EAA0D,QAC7ElB,EAAAkC,gBAAkBhB,EAA8C,OAChElB,EAAAmC,wBAA0BjB,EAA8C,WAExElB,EAAAoC,yBAA2BlB,EAA0D,YACrFlB,EAAAqC,sBAAwBnB,EAA0D,aAElFlB,EAAAsC,uBAAyBpB,EAAsE,cAE/FlB,EAAAuC,YAAepC,IACxB,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBC,KAGvCzC,EAAA0C,aAAgBvC,IACzB,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBG,MAGvC3C,EAAA4C,gBAAmBzC,IAC5B,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBK,SAGvC7C,EAAA8C,iBAAoB3C,IAC7B,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBO,UAGvC/C,EAAAgD,kBAAqB7C,IAC9B,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBS,WAEvCjD,EAAAkD,mBAAsB/C,IAC/B,MAAMqC,EAAqBxC,EAAAE,gBAAgBC,GAC3C,OAAOqC,GAAsBA,EAAmBW,YAQvCnD,EAAAoD,cAAgB,CAAIjD,EAAYI,IAClCP,EAAAY,UAAUT,IAAsBH,EAAAc,eAAeX,EAAII,IAAWA,EAG5DP,EAAAqD,oBAAsB,CAC/BlD,EACAI,EACA+C,EACAC,EACAC,EACAC,EACAC,EACAC,KAGA,GADuB3D,EAAAoD,cAAcjD,EAAII,GAUzC,OANA+C,GAAYtD,EAAAkC,gBAAgB/B,EAAImD,GAChCC,GAAavD,EAAAiC,iBAAiB9B,EAAIoD,GAClCC,GAAgBxD,EAAAmC,wBAAwBhC,EAAIqD,GAC5CC,GAAiBzD,EAAAoC,yBAAyBjC,EAAIsD,GAC9CC,GAAkB1D,EAAAqC,sBAAsBlC,EAAIuD,GAC5CC,GAAmB3D,EAAAsC,uBAAuBnC,EAAIwD,GACvC3D,EAAAE,gBAAgBC,IAvL/B,CAAiBH,IAAAA,EAAe,iBCFzB,MAAM4D,EAAoCC,IAC7C,MAAMC,ECOoBC,EAAOF,EAAkCG,KACnE,IAAKH,EACD,MAAM,IAAII,MAAM,0FAGpB,IAAKJ,EAAQtD,OACT,MAAM,IAAI0D,MACN,0EAA0EJ,EAAQK,MAAQL,EAAQK,MAAMC,KAAO,eAIvH,IAAIC,EAAYP,EAAQK,MACpB/D,EAAK0D,EAAQ1D,GACbkE,EAAYR,EAAQQ,UAkDxB,OAjDAR,EAAQtD,OAAOC,UAAY,CACvBL,GAAAA,EACAkE,UAAAA,EACA1D,UAAU,GAGdqD,EAAWxD,UAAY,CACnBL,GAAAA,EACAQ,UAAU,EACV2D,QAAST,EAAQtD,OACjB,mBAAmBgE,GACfV,EAAQtD,OAAOC,UAAUgE,eAAiBD,GAE9C,qBACI,OAAOV,EAAQtD,OAAOC,UAAUgE,gBAAkB,IAEtD,cAAcC,GAEJL,EAAaK,GAEvB,gBACI,OAAOL,GAEX,gBACI,OAAOC,GAEX,cAAcK,GACVL,EAAYK,GAEhB,aACI,OAAOb,EAAQtD,QAEnB,WAAWoE,GAEPP,EAAYO,EAAUnE,UAAU0D,OAASE,EACzCjE,EAAKwE,EAAUnE,UAAUL,IAAMA,EAC/BkE,EAAYM,EAAUnE,UAAU6D,WAAaA,EAC7CM,EAAUnE,UAASoE,EAAAA,EAAA,GAAQD,EAAUnE,WAAcqD,EAAQtD,OAAOC,WAClEqD,EAAQtD,OAASoE,GAErBE,YAAaA,CAACC,EAAsBC,KAChClB,EAAQtD,OAAOC,UAAUsE,GAAgBC,EACzCf,EAAWxD,UAAUsE,GAAgBjB,EAAQtD,OAAOC,UAAUsE,KAGlEd,EAAWxD,UAAUL,IACrBH,EAAAA,eAA+BgE,EAAWxD,UAAUL,GAAI6D,GAGrDA,GDtEeD,CAClBF,GACA,CAACmB,EAAqCC,IAC3B,IAAIC,EAAAA,aAAY,CAACC,EAASC,KAC7BH,EAAKI,YAAkBxB,EAAQtD,OAAQyE,GAClCM,MAAKC,IACFJ,EAAcI,MAEjBC,OAAMC,IACHL,EAAOK,WAM3B,OAD0B3B,EAActD,UAAWqE,YAAY,gBAAgB,GAC/Cf,sGEd7B,MAAM4B,UAAoBzB,MA0B7B0B,YAAYF,GACRG,QACAC,KAAK1B,KAAOuB,EAAYI,KACpBL,aAAiBxB,OACjB4B,KAAKE,QAAUN,EAAMM,QACrBF,KAAKJ,MAAQA,GAEJ,YAALA,GACAI,KAAKG,OAA4BP,EACjCI,KAAKE,QAAU,kBACH,iBAALN,GACPI,KAAKG,OAA4BP,EACjCI,KAAKE,QAAU,uBACH,wBAALN,GACPI,KAAKG,OAA4BP,EACjCI,KAAKE,QAAU,4CACS,iBAAVN,EACdI,KAAKE,QAAUN,EAEfI,KAAKJ,MAAQA,EAMrBQ,OAAOC,eAAeL,KAAMH,EAAYlF,WA1CrC,qBAAqBiF,GACxB,OAAOA,aAAiBxB,OAAuBwB,EAAOtB,OAASuB,EAAYI,KAGxE,sBAAsBL,GACzB,OAAOA,GAAoC,YAAbA,EAAOO,OAGlC,4BAA4BP,GAC/B,OAAOA,GAAoC,wBAAbA,EAAOO,QAjBlBN,EAAAI,KAAe,cCNnC,MAAMK,EAAyBA,CAACjC,EAAqBkC,MAC/CA,GAAYlC,QAAiCmC,IAAxBnC,EAAMoC,eAAyD,SAA1BpC,EAAMoC,gBAOhEC,EAAwBA,CAACrC,EAAqBkC,IAChDI,EAAetC,EAAOkC,GAOpBI,EAAiBA,CAACtC,EAAqBkC,MAC3CA,MAIDlC,SAC4BmC,IAAxBnC,EAAMoC,eAAyD,gBAA1BpC,EAAMoC,iBAK7BF,EAAUK,gBAAgBvC,EAAMwC,omBC5B1D,MAAMC,EAAoC,mCAE7BC,EAAuBA,CAACC,EAAuCC,KAExE,GADgBrF,MAAMC,QAAQmF,GACjB,EACaA,GAAU,IACnBhF,SAAQqC,IACjB,GAAIA,aAAiB6C,EAAAA,qBAAuB7C,EAAM8C,cAAcC,SAAS,IAAIH,KAAW,CAEpF,MAAMI,EAAMhD,EAAMiD,mBAElBjD,EAAMiD,mBAAqB,GAAGD,KAAOJ,aAI7C,GAAID,aAAkBE,EAAAA,qBAAuBF,EAAOG,cAAcC,SAAS,IAAIH,KAAW,CAEtF,MAAMI,EAAML,EAAOM,mBAEnBN,EAAOM,mBAAqB,GAAGD,KAAOJ,MAK5CM,EAA8B,SAChCC,EACAC,EACAC,EACAnB,EACAD,EACAqB,GAEA,IADAC,IAAAC,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,KAAAA,UAAA,GAEA,MAAME,EAAqBN,EAAKO,IAC3BC,KAAID,IAED,MAAME,EAAkBV,EAAmBW,iBAErCjD,EAAQwC,EAAaU,IAAI,CAAEC,SAAUH,EAAiBF,IAAAA,IAK5D,IAJK9C,GAASoB,GAA0BC,GACpCA,EAAS+B,OAAO,CAAED,SAAUH,EAAiBF,IAAAA,GAAON,EAAcE,IAGjE1C,IAAUA,EAAMuC,KACjB,OAGJ,MAAMc,EAAiBrD,EAAMuC,KAE7B,OAAIe,EAAAA,EAAAA,eAAcD,GACPA,EAAU7C,OAGd6C,KAEVE,QAAOC,GAAQA,MAAAA,IAEpB,GAAKjB,EAAKO,IAAiBF,OAASC,EAAkBD,OAClD,OAKJ,MAAMa,EAA0BnB,EAAmBoB,OAAOD,wBAE1D,OAAOZ,GAAqBA,EAAkBD,OAAS,EACjDa,IAA4BhB,EACxBI,EACAA,EAAkB,QACtBvB,GAGJqC,EAAqBA,CACvBC,EACAtB,EACAuB,EACAC,EACAC,KAEA,GAAKA,IAGA1I,EAAAA,GAAAA,UACD,OAAQuI,EAAWI,GACf,KAAKC,EAAAA,GAAAA,SAAuB,CAExB,MAAMjB,EAAkBV,EAAmBW,kBAAoB,QAE/DiB,EAAAA,EAAAA,IAAcJ,EAASC,EAAW,kEAAmE,CACjGI,OAAQ,CAACnB,EAAiBa,EAAU,cAExC,MAEJ,KAAKI,EAAAA,GAAAA,aAA2B,CAE5B,MAAMjB,EAAkBV,EAAmBW,kBAAoB,QAE/DiB,EAAAA,EAAAA,IAAcJ,EAASC,EAAW,kEAAmE,CACjGI,OAAQ,CAACnB,EAAiBa,EAAU,kBAExC,MAEJ,QAAS,CAEL,MAAMb,EAAkBV,EAAmBW,kBAAoB,QAE/DiB,EAAAA,EAAAA,IAAcJ,EAASC,EAAW,kEAAmE,CACjGI,OAAQ,CAACnB,EAAiBa,EAAU,aAExC,SAMVO,EAAgD,SAClD9B,EACAE,EACAnB,EACAD,EACA0C,EACAC,GAEK,IADLrB,IAAAC,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,KAAAA,UAAA,GAGA,MAAM0B,EAAyB/B,EAAmBgC,wBAG5CC,EAAmCjC,EAAmBkC,kCAGtDxB,EAAkBV,EAAmBW,iBAE3C,GAAsC,IAAlCoB,EAAuBzB,OACvB,MAAO,CAAE6B,MAAO,KAAMC,eAAe,GAEzC,IAAIC,GAAmB,EACvB,MAAMC,EAAeP,EAChBtB,KAAK0B,IACF,MAAM3B,EAAM,GAAGyB,KAAoCE,IAEnD,IAAIb,EAAapB,EAAaU,IAAI,CAAEC,SAAUH,EAAiBF,IAAAA,IAM/D,OAJKc,GAAcxC,GAA0BC,IACzCuC,EAAavC,EAAS+B,OAAO,CAAED,SAAUH,EAAiBF,IAAAA,GAAON,EAAcE,IAG9EkB,GAAeA,EAAWrB,MAI1BqB,EAAWc,gBACZC,GAAmB,GAEvBhB,EAAmBC,EAAYtB,EAAoBQ,EAAKgB,EAASC,GAE1DH,EAAWrB,MARP,QAUdgB,OAAOsB,SAGNpB,EAA0BnB,EAAmBoB,OAAOD,wBACpDqB,EAAqBF,GAAgBA,EAAahC,OAAS,EAAKa,EAA0BmB,EAAeA,EAAa,GAAM,KAClI,MAAO,CAAEH,MAAOK,EAAoBJ,cAAeC,IAG1CI,EAAmB,SAC5BzC,EACAE,EACAnB,GAKK,IAJLD,EAAAuB,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,IAAAA,UAAA,GACAmB,EAAwBnB,UAAAC,OAAA,EAAAD,UAAA,QAAArB,EACxByC,EAA2CpB,UAAAC,OAAA,EAAAD,UAAA,QAAArB,EAC3CoB,IAAAC,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,KAAAA,UAAA,GAGA,MAAM0B,EAAyB/B,EAAmBgC,wBAE5CtB,EAAkBV,EAAmBW,iBAE3C,IAAKT,IAAkBF,EAAmBL,eAAmD,IAAlCoC,EAAuBzB,SAAkBI,EAChG,MAAO,CAAEyB,MAAO,KAAMC,eAAe,GAIzC,MAAMM,EAAoB1C,EAAmBF,mBAEvCmC,EAAmCjC,EAAmBkC,kCAE5D,GAAIQ,IAAsBpD,GAA8B2C,GAAsE,IAAlCF,EAAuBzB,OAAe,CAC9H,MAAMqC,EAAUb,EACZ9B,EACAE,EACAnB,EACAD,EACA0C,EACAC,EACArB,GAEJ,GAAIuC,GAAWA,EAAQR,MACnB,OAAOQ,EAGf,MAAMpB,EAAW,CAAEV,SAAUH,EAAiBF,IAAKkC,GAEnD,IAAIE,EAA0B1C,EAAaU,IAAIW,GAO/C,GANIqB,EACAA,EAAuBrF,EAAA,GAAQqF,GACxB9D,GAA0BC,IACjC6D,EAA0B7D,EAAS+B,OAAOS,EAAUrB,EAAcE,KAGjEwC,EACD,OAAOd,EACH9B,EACAE,EACAnB,EACAD,EACA0C,EACAC,EACArB,GAKR,GAFAiB,EAAmBuB,EAAyB5C,EAAoB0C,EAAmBlB,EAASC,GAExFmB,EAAwB3C,gBAAgBpC,EAAAA,YAAa,CACrD,GAA4C,YAAxC+E,EAAwB3C,KAAKtB,OAE1B,CAeH,MAAO,CAAEwD,MAdWS,EAAwB3C,KAAKhC,MAAKC,GAC5B,iBAAXA,IAAuC,IAAhBA,EAAO2E,KAC9B3E,EAGJ6B,EACHC,EACA9B,EACAgC,EACAnB,EACAD,EACAsB,KAGqBgC,cAAeQ,EAAwBR,eAhBpEQ,EAAwB3C,KAAO2C,EAAwB3C,KAAK/B,QAAU0E,EAAwB3C,KAAK7B,MAoB3G,GAC4C,iBAAjCwE,EAAwB3C,MAC9B2C,EAAwB3C,OAEiB,IAAtC2C,EAAwB3C,KAAK4C,KAEjC,MAAO,CAAEV,MAAOS,EAAwB3C,KAAMmC,cAAeQ,EAAwBR,eAGzF,MAAMU,EAAmCF,EAAwB3C,KAE3D8C,EAAchD,EAChBC,EACA4C,EAAwB3C,KACxBC,EACAnB,EACAD,GACAkC,EAAAA,EAAAA,eAAc8B,GACd1C,GAEJ,MAAO,CAAE+B,MAAOY,EAAaX,cAAeQ,EAAwBR,gBAGlEY,EAAqB,SACvBhD,EACAkB,EACAhB,EACAnB,EACAkE,GAEyC,IADzCC,EAAA7C,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,IAAAA,UAAA,GAGA,MAAMqC,EAAoB1C,EAAmBF,mBAEvCmC,EAAmCjC,EAAmBkC,kCAEtDiB,EAA0BnD,EAAmBoB,OAE7CV,EAAkBV,EAAmBW,iBAE3C,IAAKO,IAAUwB,IAAsBT,EACjC,OAGJ,MAAMK,EAAoB,GACpBc,EAAUlC,EAGhB,GAAKiC,EAAwBhC,yBAAuE,mBAA5CvC,OAAOzF,UAAUkK,SAASC,KAAKF,GAsChF,GAAKnB,EAEL,CACH,MAAMX,EAAa8B,EACd3C,KAAKvC,IACF,MAAMqF,EAAkBrF,EAAO+D,GAC/B,GAAIsB,EAAiB,CACjB,MAAM/C,EAAM,GAAGyB,KAAoCsB,IAEnD,OADAjB,EAAa9B,GAAOtC,EACbsC,MAGdS,OAAOsB,SACZ,IAAIiB,EAAoBtD,EAAaU,IAAI,CACrCC,SAAUH,EACVF,IAAKkC,IAKT,GAHIc,IACAA,EAAiBjG,EAAA,GAAQiG,KAGzBA,IACAA,EAAkBvD,MACfuD,EAAkBvD,gBAAgBpC,EAAAA,aAAkD,YAAlC2F,EAAkBvD,KAAKtB,UACzC,iBAA3B6E,EAAkBvD,MACrBuD,GACGA,EAAkBvD,OAEc,IAAhCuD,EAAkBvD,KAAK4C,OAI/B,GAAIW,EAAmB,CAEnB,MAAMC,EAA0BD,EAAkB7C,iBAE5C+C,EAA2CF,EAAkBtB,kCAE7DyB,EAAuCH,EAAkBpC,OAAOD,wBAEhEyC,EAA0BJ,EAAkBK,YAElDvB,EAAaI,GAAqB,CAC9BG,MAAM,EACNiB,KAAML,EACNM,WAAYL,EACZM,aAAcL,EACdnD,IAAKc,EACL2C,MAAOL,SAlBftB,EAAaI,GAAqBU,OA7BtCd,EAAaI,GAAqBU,OAtClC,GAAInB,EAAkC,CAClC,MAAMzB,EAAM,GAAGyB,KAAoCmB,EAAQnB,KAE3D,GADAK,EAAa9B,GAAO4C,EAChBV,EAAmB,CAAC,IAADwB,EAAAC,EACnB,IAAIX,EAAoBtD,EAAaU,IAAI,CACrCC,SAAUH,EACVF,IAAKkC,IAELc,IACAA,EAAiBjG,EAAA,GAAQiG,KAIzBA,IACAA,EAAkBvD,MACfuD,EAAkBvD,gBAAgBpC,EAAAA,aAAkD,YAAlC2F,EAAkBvD,KAAKtB,UACzC,iBAA3B6E,EAAkBvD,MACrBuD,GACGA,EAAkBvD,OAEgB,KAAjB,QAAjBiE,EAAAV,SAAiB,IAAAU,GAAM,QAANC,EAAjBD,EAAmBjE,YAAI,IAAAkE,OAAN,EAAjBA,EAAyBtB,OAIjCP,EAAaI,GAAqB,CAC9BG,MAAM,EACNiB,KAAMpD,EACNqD,WAAY9B,EACZzB,IAAK,CAACA,GAENyD,MAAOjE,EAAmB6D,aAR9BvB,EAAaI,GAAqBU,QAa1Cd,EAAaI,GAAqBU,EAwE1C,OAhBId,GACA1D,OAAOwF,KAAK9B,GAAc7B,KAAI4D,IAC1BnE,EAAaoE,IACT,CAAEzD,SAAUH,EAAiBF,IAAK6D,GAAU9G,EAAA,CAC1C0C,KAAMqC,EAAa+B,IAAenB,GAAc,CAAEqB,SAAU,cAG9DxF,GAAYkE,GACZlE,EAASuF,IACL,CAAEzD,SAAUH,EAAiBF,IAAK6D,GAAU9G,EAAA,CAC1C0C,KAAMqC,EAAa+B,IAAenB,GAAc,CAAEqB,SAAU,iBAMvEjC,GAGEkC,EAAmB,SAC5BxE,EACAkB,EACAhB,EACAnB,EACAkE,GAEyC,IADzCC,EAAA7C,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,IAAAA,UAAA,GAGA,MAAMqC,EAAoB1C,EAAmBF,mBAEvCmC,EAAmCjC,EAAmBkC,kCAEtDxB,EAAkBV,EAAmBW,iBAW3C,GAAKO,IAAUwB,GAAsBT,IAAsCvB,EAI3E,OAAIQ,aAAgBrD,EAAAA,YAEI,YAAhBqD,EAAKvC,aA+BkCK,IAAnCgB,EAAmB6D,cAEnB3C,EAAKuD,SAASR,MAAQjE,EAAmB6D,aAGzC7D,GAAsBA,EAAmB0E,cAEzCxD,EAAKuD,SAASE,OAAS3E,EAAmB0E,aAE9C1B,EAAmBhD,EAAoBkB,EAAKhD,OAAQgC,EAAcnB,EAAUkE,EAAwBC,GAC7FhC,EAAKhD,SAvCZgD,EAAKjD,MAAMC,SAEgCc,IAAnCgB,EAAmB6D,cAEnB3C,EAAKuD,SAASR,MAAQjE,EAAmB6D,aAGzC7D,GAAsBA,EAAmB0E,cAEzCxD,EAAKuD,SAASE,OAAS3E,EAAmB0E,aAG9C1B,EAAmBhD,EAAoB9B,EAAQgC,EAAcnB,EAAUkE,EAAwBC,GACxFhF,KAEXgC,EAAaoE,IACT,CAAEzD,SAAUH,EAAiBF,IAAKkC,GAAmBnF,EAAA,CACnD0C,KAAMiB,GAAUgC,GAAc,CAAEqB,SAAU,mBAG5CxF,GAAYkE,GACZlE,EAASuF,IACL,CAAEzD,SAAUH,EAAiBF,IAAKkC,GAAmBnF,EAAA,CACnD0C,KAAMiB,GAAUgC,GAAc,CAAEqB,SAAU,gBAmBjDvB,EAAmBhD,EAAoBkB,EAAMhB,EAAcnB,EAAUkE,EAAwBC,iBCla5G,YA5CA,MAAA5E,cACY,KAAAsG,UAA6C,IAAIC,IACjD,KAAAC,kBAAsD9F,WAAX+F,OAAuB,KAAO,IAAIC,EAAAA,aAE9EC,GAAoCC,EAAeC,GACtD,GAAM3G,KAAKsG,aACPtG,KAAKsG,aAAaG,GAAGC,EAAwBC,OAC1C,CACH,IAAIP,EAAYpG,KAAKoG,UAAUhE,IAAIsE,GAC5BN,IACHA,EAAY,GACZpG,KAAKoG,UAAUQ,IAAIF,EAAON,IAG9BA,EAAUS,KAAuBF,IAIlCG,KAA+BJ,GAAyB,QAAAK,EAAAlF,UAAAC,OAAPkF,EAAO,IAAApL,MAAAmL,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAPD,EAAOC,EAAA,GAAApF,UAAAoF,GAC3D,GAAMjH,KAAKsG,aACP,OAAOtG,KAAKsG,aAAaQ,KAAKJ,EAAOM,GAGzC,MAAMZ,EAAYpG,KAAKoG,UAAUhE,IAAIsE,GAErC,SAAIN,IAAaA,EAAUtE,UACvBsE,EAAUpK,SAAQkL,IACdA,KAAYF,OAET,GAMRG,mBAAmBT,GAChB1G,KAAKsG,aACPtG,KAAKsG,aAAaa,mBAAmBT,GAErC1G,KAAKoG,UAAUgB,OAAOV,KCpC5BW,EAAiC,IAC1BC,EAAqB,mBACrBC,EAAsB,gBAE7BC,EAAQA,CAACC,EAAqBvH,IAAqB,IAAIwH,SAAQpI,GAAWqI,WAAWrI,EAAQsI,KAAKtI,EAASY,GAAUuH,KAErHI,EAAeJ,GACjB,IAAIC,SAAQ,CAACI,EAAUvI,IAAWoI,WAAWpI,EAAOqI,KAAKrI,EAAO,WAA6BkI,KAUlF,MAAMM,EAYjBjI,YAAYpF,EAAkBsG,EAAwBiC,EAAuB+E,GA0gBrE,KAAAC,wBAA0B,KAAK,IAAAC,EACnC,OAAOC,EAAAA,EAAAA,IAAuB,oBAAsD,QAArCD,EAAI3N,EAAAA,GAAAA,wBAAiC,IAAA2N,OAAA,EAAjCA,EAAmCE,yBA1gBtFpI,KAAKtF,OAASA,EACdsF,KAAKqI,QAAUC,GAAAA,GACftI,KAAKgB,OAAS,IAAIA,GAClBhB,KAAKxB,UAAY9D,EAAOC,UAAU6D,UAElCwB,KAAK4B,aAAelH,EAAOC,UAAUiH,aAGrC,MAAM2G,EAAcvH,EAAO,GAEvBuH,GAAeA,EAAY9H,cAC3BT,KAAKwI,UAAYD,EAAY9H,gBACtB8H,GAAeA,EAAYE,mBAClCzI,KAAKwI,UAAYD,EAAYE,oBAAsB,UAAY,OAC/DxF,EAAUyF,MAAM,yGAEhB1I,KAAKwI,UAAaR,GAAoBA,EAAiBQ,WAAc,OAGrExH,EAAOhF,SAAQqC,IACXA,EAAMoC,cAAgB,IAAMT,KAAKwI,aAErCvF,EAAUyF,MAAM,mGAQjBC,UAAU3H,GACbhB,KAAKgB,OAAO6F,QAAQ7F,GAIjB,cACHgC,EACAtB,EACAnB,EACAqI,GACqC,IAArCC,EAAAhH,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,GAAAA,UAAA,GAAmC,GAEnC,MAAMiH,EACFD,GAAoBA,EAAiB/G,OAAS,EACxC9B,KAAK+I,kBAAkBF,GACvB7I,KAAK+I,kBAAkB/I,KAAKgB,QACtC,IAAK8H,EAAOhH,OACR,MAAO,GAGX,MAAMkH,EAAWhJ,KAAKiJ,uBAAuBH,GAEvCI,GAAmBC,EAAAA,EAAAA,IAAoB5O,EAAAA,GAAkByI,GACzDoG,EAAcF,MAAAA,OAAgB,EAAhBA,EAAkBG,wBAAwBC,OAAOC,KAAKC,eAE1EN,MAAAA,GAAAA,EAAkBG,wBAAwBI,wCAAwC,CAC9ET,SAAAA,EACAI,YAAAA,EACAM,cAAeR,EAAiBS,QAGpC,MAAMjK,QAAeM,KAAK4J,mBAAmB5G,EAAStB,EAAcnB,EAAUqI,EAAgBC,EAAkBC,EAAQE,GAQxH,OANAE,MAAAA,GAAAA,EAAkBG,wBAAwBQ,yCAAyC,CAC/Eb,SAAAA,EACAI,YAAAA,EACAM,cAAeR,EAAiBS,QAG7BjK,EAGH,yBACJsD,EACAtB,EACAnB,EACAqI,EACAC,EACAC,EACAE,GAEA,MAAMc,EAAqBjB,GAAoBA,EAAiB/G,OAAS,EAEzE9B,KAAK+J,iBAAiBf,EAAUF,EAAQ9F,GACnCvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OAGlBhK,KAAKiK,mBAAmBjB,EAAUF,EAAQ9F,GACrCvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OAClB,MAAOE,EAAUC,GAAkCnK,KAAKoK,oBACpDtB,EACA9F,EACAtB,EACAnB,EACAqI,EACAkB,GAGJ,IAAKI,EAASpI,OAGV,aADM9B,KAAKqK,gCAAgCrB,EAAUF,EAAQpH,EAAcsB,GACpEmH,EACJ,CACH,MAAMG,EAAgBxB,EAAOrG,QAAOvD,IAAUgL,EAASK,SAASrL,KAC5DoL,EAAcxI,cAER9B,KAAKqK,gCAAgCrB,EAAUsB,EAAe5I,EAAcsB,GAI1F,IAAIwH,EAAiB,GAIrB,OAAIxK,KAAK4B,cACD5B,KAAKxB,UACLwB,KAAKyK,iCAAiCP,EAAUxI,EAAcnB,EAAUyC,EAAS8G,GAEjF9J,KAAK0K,yBAAyBR,EAAS,GAAIxI,EAAcnB,EAAUyC,EAAS8G,GAEzEK,IAGPnK,KAAKxB,WAELgM,QAAgBxK,KAAK2K,eAAeT,EAAUlH,EAAS8G,GAEnDU,GAAWA,EAAQ1I,SAAWoI,EAASpI,QAEvCkB,EAAQC,UAAU2H,IACdlP,EAAAA,GAAAA,MACA,0FACA,CAAE2H,OAAQ,CAAC6G,EAASpI,OAAQ0I,EAAQ1I,WAI5C0I,EAAQ,SAAWxK,KAAK2K,eAAeT,EAAS,GAAIlH,EAAS8G,GAG5DU,GAA8B,IAAnBA,EAAQ1I,QAIxB9B,KAAK6K,qBAAqBX,EAAUM,EAASxH,EAAStB,EAAcnB,GAC7D4J,GAJIA,GAQPW,8BAA8BzM,EAAqBgE,GACvD,QAAShE,aAAiB6C,EAAAA,qBAAyBmB,GAG/C,sCACJ2G,EACAhI,EACAU,EACAsB,GAEA,MAAMwH,EAAUxJ,EAAOiB,KAAI8I,IACvB,MAAMhI,EAAW,CAAEV,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eAE5D,IAAI6J,EAIJ,OAHIhL,KAAK8K,8BAA8BC,EAAGhI,EAASV,YAC/C2I,EAAYtJ,EAAaU,IAAyBW,IAE7CiI,EAAYtJ,EAAauJ,SAASlI,GAAY,QAE3D/C,KAAKkL,kBAAkBlC,EAAUhI,EAAQwJ,EAASxH,GAC7CvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OAClBhK,KAAKmL,oBAAoBnC,EAAUhI,EAAQwJ,EAASxH,GAC/CvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OAEdjB,kBAAkB/H,GACtB,OAAKhB,KAAKxB,UAIH4M,GAAAA,CACHpK,GACA,CAACqK,EAAsBC,IACnBD,EAAOlK,gBAAkBmK,EAAOnK,eAAiBkK,EAAOxK,uBAAyByK,EAAOzK,uBANrFG,EAUPiI,uBAAuBjI,GAC3B,IAAIuK,EACJ,IAAK,MAAMlN,KAASzC,MAAMC,QAAQmF,GAAUA,EAAS,CAACA,GACjB,mBAAtB3C,EAAMmN,cACbD,EAAiBlN,EAAMmN,eAG/B,OAAOD,GAAwCvL,KAAKtF,OAAQC,UAAUL,GAGlEmR,iBAAiBzC,GACrB,IAAI,OAAEtO,GAAWsF,KACjB,GAAIgJ,EAAU,CACV,MAAM5N,EAAejB,EAAAA,oBAAoC6O,EAA+BtO,GACxF,GAAIU,EAEA,OADAV,EAA8BU,EAAaV,OACpCP,EAAAA,aAAkDO,GAGjE,OAAOA,EAGH,uBAAuBJ,EAAY0G,EAAuCgC,GAC9E,MAAMrF,EAAexD,EAAAA,gBAAgCG,GACrD,IAAKqD,EACD,OAGJ,MAAM+N,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAGhC,OAD0B9P,MAAMkQ,KAAKnO,GACZoO,QAAOC,MAAOC,EAAcC,WAC3CD,EACN,UACUvE,QAAQyE,KAAK,CAACN,EAAOK,EAAYlL,EAAQgC,KACjD,MAAOpD,GACL,MAAMoJ,EAAW1O,GAAM,WACvB8I,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,2DACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiBrD,IAC1BsD,UAAW1M,GAEflE,EAAAA,GAAAA,OAGR,OAAOgM,QAAQpI,YAChBoI,QAAQpI,WAGP,0BACJhF,EACA0G,EACAuL,EACAvJ,GAEA,MAAMlF,EAAkB3D,EAAAA,mBAAmCG,GAC3D,IAAKwD,EACD,OAGJ,MAAM4N,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAEhC,OAD6B9P,MAAMkQ,KAAKhO,GACZiO,QAAOC,MAAOC,EAAcC,WAC9CD,EACN,UACUvE,QAAQyE,KAAK,CAACN,EAAOK,EAAYlL,EAAQuL,EAAcvJ,KAC/D,MAAOpD,GACL,MAAMoJ,EAAW1O,GAAM,WACvB8I,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,2DACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiBrD,IAC1BsD,UAAW1M,GAEflE,EAAAA,GAAAA,OAGR,OAAOgM,QAAQpI,YAChBoI,QAAQpI,WAGP,yBAAyBhF,EAAY0G,EAAuCgC,GAChF,MAAMnF,EAAiB1D,EAAAA,kBAAkCG,GACzD,IAAKuD,EACD,OAGJ,MAAM6N,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAGhC,OAD4B9P,MAAMkQ,KAAKjO,GACZkO,QAAOC,MAAOC,EAAcC,WAC7CD,EACN,UACUvE,QAAQyE,KAAK,CAACN,EAAOK,EAAYlL,EAAQgC,KACjD,MAAOpD,GACL,MAAMoJ,EAAW1O,GAAM,WACvB8I,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,2DACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiBrD,IAC1BsD,UAAW1M,GAEflE,EAAAA,GAAAA,OAGR,OAAOgM,QAAQpI,YAChBoI,QAAQpI,WAGP,mBACJhF,EACA0G,EACAgC,GAEA,MAAMvF,EAAWtD,EAAAA,YAA4BG,GAC7C,IAAKmD,EACD,OAEJ,MAAMiO,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAGhC,OADsB9P,MAAMkQ,KAAKrO,GACZsO,QAAOC,MAAOC,EAAcC,KAC7C,MAAMM,QAAkBP,EACxB,IAAIQ,EACJ,IACIA,QAAqB/E,QAAQyE,KAAK,CAACN,EAAOK,EAAYM,EAAWxJ,KACnE,MAAOpD,GACL,MAAMA,EAEV,MAAM8M,EACU,iBAAZD,GAAmDA,EAA0DA,EAA3CD,EACtE,OAAO9E,QAAQpI,QAAQoN,KACxBhF,QAAQpI,QAAQ0B,IAGf,wBACJ1G,EACA0G,EACAuL,EACAvJ,GAEA,MAAMtF,EAAYvD,EAAAA,iBAAiCG,GAEnD,IAAKoD,EACD,OAGJ,MAAMgO,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAEhC,OAD2B9P,MAAMkQ,KAAKpO,GACZqO,QAAOC,MAAOC,EAAcC,WAC5CD,EACN,UACUvE,QAAQyE,KAAK,CAACN,EAAOK,EAAYlL,EAAQuL,EAAcvJ,KAC/D,MAAOpD,GACL,MAAMoJ,EAAW1O,GAAM,WACvB8I,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,2DACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiBrD,IAC1BsD,UAAW1M,GAEflE,EAAAA,GAAAA,OAGR,OAAOgM,QAAQpI,YAChBoI,QAAQpI,WAGP,oBACJhF,EACA0G,EACAuL,EACAvJ,GAEA,MAAMtF,EAAYvD,EAAAA,aAA6BG,GAC/C,IAAKoD,EACD,OAEJ,MAAMgO,EAAcC,OAAOC,GAAAA,CAAK5I,EAAS,4CAA8CqE,EACjFwE,EAAQrE,EAAMkE,EAAY,gBAEhC,OADuB9P,MAAMkQ,KAAKpO,GACZqO,QAAOC,MAAOC,EAAcC,KAC9C,MAAMS,QAAmBV,EACzB,IAAIW,EACJ,IACIA,QAAsBlF,QAAQyE,KAAK,CAACN,EAAOK,EAAYlL,EAAQ2L,EAAY3J,KAC7E,MAAOpD,GACL,MAAMA,EAEV,MAAMiN,EAA+B,iBAAbD,GAAoDA,EAA6BA,EAAbD,EAC5F,OAAOjF,QAAQpI,QAAQuN,KACxBnF,QAAQpI,QAAQiN,IAOf,qBAAqBvL,EAAuCgC,EAAyB8J,GACzF,MAAM9D,EAAWhJ,KAAKiJ,uBAAuBjI,GACvCtG,EAASsF,KAAKyL,iBAAiBzC,GAErC,IAEI,MAAM+D,QAAgB/M,KAAKgN,aAAahE,EAAUhI,EAAQgC,GACtD+J,IACA/L,EAAS+L,GAEf,MAAOE,GACL,MAAMC,EAAiBlN,KAAKmN,kBAAkBF,GAe9C,OAdAxR,EAAAA,GAAAA,IACIC,EAAAA,GAAAA,MACA,iCACIoR,EAAe,aAAe,kGAElC,CACIzJ,OAAQ,CACJ2F,GAAatO,GAAUA,EAAO4D,MAAS,UACvC4O,EAAe5O,MAAQ4O,EAAehN,QAChCgN,EAAgBxK,KAAawK,EAAgBxK,KAAK0K,cAAgB,IAE5Ed,UAAWW,IAGZ,IAAIpN,EAAYoN,GAE3B,IAAIV,EACJ,IACoBZ,OAAOC,GAAAA,CAAK5I,EAAS,uCACpB4I,GAAAA,CAAK5I,EAAS,0BAA2B,IAEtDzI,EAAAA,GAAAA,kBAAqCA,EAAAA,GAAAA,iBAAAA,gCAHzC,MAIM8S,EACF9S,EAAAA,GAAAA,kBAAqCA,EAAAA,GAAAA,iBAAAA,gCACzC,IAAI+S,EAKAA,EADyB,oBAAX/G,QAA0BhM,EAAAA,GAAAA,WAA8B8S,EAC3D,CACPrN,KAAK4B,cA/cM6F,EA+c+B4F,EA9c1D,IAAIhO,EAAAA,aAAY,CAACyI,EAAUvI,IAAWoI,WAAWpI,EAAOqI,KAAKrI,EAAO,WAA6BkI,MA8cVI,EAAYwF,GACnF3S,EAAOsG,EAAQgC,IAGR,CAACtI,EAAOsG,EAAQgC,IAG/BuJ,QAAqB7E,QAAQyE,KAAKmB,GACpC,MAAOL,GACDA,EAAE/M,SAAW+M,EAAE/M,QAAQ4B,OAAS,IAAMmL,EAAE/M,QAAQqK,SAAS,eACzD0C,EAAE/M,QAAU,cAAc8I,qBAA4BiE,EAAE/M,WAE5D,MAAMgN,EAAiBlN,KAAKmN,kBAAkBF,GAC9CxR,EAAAA,GAAAA,IACIC,EAAAA,GAAAA,MACA,mBACIoR,EAAe,aAAe,kGAElC,CACIzJ,OAAQ,CACJ2F,GAAatO,GAAUA,EAAO4D,MAAS,UACvC4O,EAAe5O,MAAQ4O,EAAehN,QAChCgN,EAAgBxK,KAAawK,EAAgBxK,KAAK0K,cAAgB,IAE5Ed,UAAWW,IAGnB,IAAIrN,EAAQ,IAAIC,EAAYoN,GAiB5B,MAfIjN,KAAK4B,eAGDhC,EADAhE,MAAMC,QAAQoR,GAEVA,EAAE,GAAGM,aAAeC,EAAAA,cAAAA,oBACd,IAAI3N,EAAY,uBAChB4N,EAAAA,WAAAA,QAA+BR,EAAE,IAGvCA,EAAEM,aAAeC,EAAAA,cAAAA,oBACX,IAAI3N,EAAY,uBAChB,IAAIA,EAAYoN,IAI5BrN,EA3fa6H,IAAAA,EA8fvB,IAEI,MAAM/H,QAAeM,KAAK0N,cAAc1E,EAAUhI,EAAQuL,EAAcvJ,GACpEtD,IACA6M,EAAe7M,GAEnBM,KAAKkL,kBAAkBlC,EAAUhI,EAAQuL,EAAcvJ,GAClDvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OAClBhK,KAAKmL,oBAAoBnC,EAAUhI,EAAQuL,EAAcvJ,GACpDvD,MAAK,IAAM,OACXE,OAAMqK,GAAO,OACpB,MAAOiD,GACL,MAAMC,EAAiBlN,KAAKmN,kBAAkBF,GAC9CxR,EAAAA,GAAAA,IACIC,EAAAA,GAAAA,MACA,kCACIoR,EAAe,aAAe,kGAElC,CACIzJ,OAAQ,CACJ2F,GAAatO,GAAUA,EAAO4D,MAAS,UACvC4O,EAAe5O,MAAQ4O,EAAehN,QAChCgN,EAAgBxK,KAAawK,EAAgBxK,KAAK0K,cAAgB,IAE5Ed,UAAWW,IAIvB,OAAOV,EAOH1B,qBACJX,EACAM,EACAxH,EACAtB,EACAnB,GAEA2J,EAASlO,SAAQ,CAAC+O,EAAG4C,KACjB,MAAM3E,EAAWhJ,KAAKiJ,uBAAuB8B,GAC7C,GAAIA,aAAa7J,EAAAA,oBAAwB6J,EAAElK,qBACvC,IACI,MAAM+M,EAAuBrN,EAGvBsN,IADF7K,EAAQoJ,eAAe0B,UAAY9K,EAAQoJ,eAAe0B,SAASC,yBACd/N,KAAKiI,0BAC9DjC,EAAiB+E,EAAGP,EAAQmD,GAAMjM,EAAckM,EAAclN,EAAsBqK,EAAGxK,GAAWsN,GACpG,MAAOZ,GACL,MAAM,OAAEvS,GAAWsF,KACbgO,EAAahF,GAAatO,GAAUA,EAAO4D,MAAS,UAY1D,OAXA8E,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,wDACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiB2B,IAC1B1B,UAAWW,GAEfvR,EAAAA,GAAAA,OAGG,SAER,CACH,MAAMuS,EAAWlD,EAAE5J,cACb+M,EAAanD,EAAElK,qBAErB,GAAMoN,GAAcC,EAAY,CAC5B,MAAMvK,EAAQ6G,EAAQmD,GAChB5K,EAAW,CAAEV,SAAU6L,EAAYlM,IAAKiM,GAC9C,GAAIpO,EAAYsO,cAAcxK,GACrB9D,EAAYuO,eAAezK,IAC5BjC,EAAaoE,IAAI/C,EAAU,CAAEtB,KAA8BkC,EAAQ/D,MAAOA,OAAO,QAGlF,CACCW,GAAYG,EAAsBqK,EAAGxK,IACrCA,EAASuF,IAAI/C,EAAU,CAAEtB,KAAMkC,IAEnC,MAAM0K,EAAa,CAAE5M,KAAMkC,GACvBoH,EAAEtK,eAAuC,aAAtBsK,EAAEtK,iBACrBL,OAAOkO,OAAOD,EAAY,CAAEtI,SAAU,aAE1CrE,EAAaoE,IAAI/C,EAAUsL,SAcvC5D,iCACJP,EACAxI,EACAnB,EACAyC,GAC6B,IAA7B8J,EAAAjL,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,IAAAA,UAAA,GAEA,MAAM0M,EAAgB,IAAIxS,IACpByS,EAAiC,GAEjCC,EAAevE,EAChBjI,KAAI,CAAC5D,EAAOqQ,KACTH,EAAcrS,IAAIwS,GAClB,MAAMC,EAAWA,CAACrP,EAAcC,KAE5B,IAAImI,SAAQ,CAACkH,EAAcC,KAcvBC,EAAAA,GAAe,GAAG9O,KAAKqI,oBAAoBqG,KAASrQ,EAAM8C,iBAb7BjC,IACzB0P,EAAiB1P,MAerB4P,EAAAA,GAAe,GAAG9O,KAAKqI,0BAA0BqG,KAASrQ,EAAM8C,iBAZ/B4N,KAC7BH,OAcJE,EAAAA,GAAe,GAAG9O,KAAKqI,mBAXGzI,IACtBiP,EAAYjP,SAYfH,MAAKC,IACFoP,EAAAA,mBAA+B,GAAG9O,KAAKqI,oBAAoBqG,KAASrQ,EAAM8C,iBAC1E2N,EAAAA,mBAA+B,GAAG9O,KAAKqI,0BAA0BqG,KAASrQ,EAAM8C,iBAChF7B,EAAQI,MAEXC,OAAMC,IACHkP,EAAAA,mBAA+B,GAAG9O,KAAKqI,mBACvC9I,EAAOK,OAMnB,IAAIoP,EAIJ,GAHIhP,KAAK8K,8BAA8BzM,EAAOA,EAAMwC,wBAChDmO,EAAgBtN,EAAauJ,SAAS,CAAEjJ,IAAK3D,EAAM8C,cAAekB,SAAUhE,EAAMwC,yBAElFmO,KAAiBxM,EAAAA,EAAAA,eAAsBwM,IAAmBlC,EAO9D,OADA0B,EAAe3H,KAAKxI,GACb,IAAIgB,EAAAA,YAAYsP,GANIK,EAAeC,IAAIN,MAQjDlM,OAAOsB,SAGZ/D,KAAK6K,qBAAqB2D,EAAgBC,EAAczL,EAAStB,EAAcnB,GAG/EP,KAAK2K,eAAeT,EAAUlH,EAAS8J,GAClCrN,MAAMyP,IAGHA,EAAclT,SAAQ,CAACuQ,EAAcmC,KACjCH,EAAcnH,OAAOsH,GACrBI,EAAAA,KAAiB,GAAG9O,KAAKqI,oBAAoBqG,KAASxE,EAASwE,GAAOvN,gBAAiBoL,SAG9F5M,OAAMC,IACHkP,EAAAA,KAAiB,GAAG9O,KAAKqI,kBAAmBzI,MAE/CuP,SAAQ,KAELZ,EAAcvS,SAAQoT,IAClB,MAAMV,EAAgBU,EACtBN,EAAAA,KAAiB,GAAG9O,KAAKqI,0BAA0BqG,KAASxE,EAASwE,GAAOvN,uBAYpFuJ,yBACJrM,EACAqD,EACAnB,EACAyC,GAC6B,IAA7B8J,EAAAjL,UAAAC,OAAA,QAAAtB,IAAAqB,UAAA,IAAAA,UAAA,GAEA,MAAMkB,EAAW,CAAEf,IAAK3D,EAAM8C,cAAekB,SAAUhE,EAAMwC,sBACvD8N,EAAWA,CAACrP,EAAcC,KAC5BS,KAAK2K,eAAetM,EAAO2E,EAAS8J,GAC/BrN,MAAKC,IACFJ,EAAQI,MAEXC,OAAMC,IAGH,GAAIC,EAAYwP,qBAAqBzP,IAAUe,EAAetC,EAAOkC,GAAW,CAC5E,MAAM+O,EAAa/O,MAAAA,OAAQ,EAARA,EAAU0K,SAASlI,GACtC,GAAIuM,EACA,OAAOhQ,EAAQgQ,GAGvB,OAAO/P,EAAOK,OAI1B,IAAIoP,EAKJ,GAJIhP,KAAK8K,8BAA8BzM,EAAOA,EAAMwC,wBAChDmO,EAAgBtN,EAAauJ,SAAS,CAAEjJ,IAAK3D,EAAM8C,cAAekB,SAAUhE,EAAMwC,wBAGlFmO,IAAiBxM,EAAAA,EAAAA,eAAsBwM,KAAmBlC,EAE1D,YADuBkC,EAAeC,IAAIN,GAK9C,MAAMY,EAAc,IAAIlQ,EAAAA,YAAYsP,GACpC3O,KAAK6K,qBAAqB,CAACxM,GAAQ,CAACkR,GAAcvM,EAAStB,EAAcnB,GAGrE6J,oBACJpJ,EACAgC,EACAtB,EACAnB,EACAiP,EACAC,GAEa7D,GAAAA,CAAK5I,EAAS,qCAGvBhC,EAAShB,KAAK0P,wBAAwB1O,EAAQgC,EAAStB,IAG3D,MAAMiO,EAAmC,CACrC3N,IAAKsF,EACLjF,SAAUkF,GAERqI,EAAkBlO,EAAauJ,SAAS0E,GAExC9B,IAD4B7K,EAAQoJ,eAAe0B,UAAY9K,EAAQoJ,eAAe0B,SAASC,yBAC5C/N,KAAKiI,0BAG9D,IAAuB,SAAnBjI,KAAKwI,WAAwBiH,KAOJ,SAAnBzP,KAAKwI,WAA4C,WAApBxH,EAAO,GAAG6O,QAAsBD,IAAmB/B,GAAuB4B,GACzG,MAAO,CAACzO,EAAQ,IAIxB,MAAMkJ,EAA2B,GAC3B4F,EAA0B,GA4EhC,OA1EA9O,EAAOhF,SAAQ,CAAC+O,EAAG4C,KACf,MAAM3E,EAAWhJ,KAAKiJ,uBAAuB8B,GACvChI,EAAW,CAAEV,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eAE5D,GAAI4J,aAAa7J,EAAAA,qBAAuB6B,EAASV,SAE7C,YADA6H,EAASrD,KAAKkE,GAGlB,IAAIC,EAAyCtJ,EAAaU,IAAIW,GAC9D,GAAIiI,IAAaxI,EAAAA,EAAAA,eAAsBwI,EAAUvJ,OAA2D,WAA3BuJ,EAAUvJ,KAAMtB,OACxF4K,EAAE8E,OAAqB,eAAZ9E,EAAE8E,OACd3F,EAASrD,KAAKkE,QAEf,GAAIC,GAAaA,EAAUvJ,MAAkC,YAA1BuJ,EAAUvJ,KAAKtB,QAAiD,WAAzB6K,EAAUvJ,KAAKoO,MAK5F3F,EAASrD,KAAKkE,QACX,GAAIA,aAAa7J,EAAAA,mBACpB,IACI,GAAIsO,GAAexM,EAAQoJ,eAAe0B,WAAe9K,EAAQoJ,eAAe0B,SAASiC,6BACrF7F,EAASrD,KAAKkE,OACX,CACH,MACMjH,EAAeG,EACjB8G,EACArJ,EAHyBnB,GAKtBiP,GAAelP,EAAuByK,EAAGxK,GAC5CyC,EAAQoJ,oBACR5L,IACER,KAAK4B,cAENkC,EAAaH,OACduG,EAASrD,KAAKkE,GAEdjH,GAAgBA,EAAaF,eAC7BkM,EAAQjJ,KAAKkE,IAGvB,MAAOkC,GACL,MAAM,OAAEvS,GAAWsF,KACbgO,EAAahF,GAAatO,GAAUA,EAAO4D,MAAS,WAC1D8E,EAAAA,EAAAA,IACIJ,GAAWA,EAAQoJ,eACnBpJ,EAAQC,UACR,wDACA,CACII,OAAQ,EAACgJ,EAAAA,EAAAA,IAAiB2B,IAC1B1B,UAAWW,GAEfvR,EAAAA,GAAAA,OAEJwO,EAASrD,KAAKkE,QAGlB,GAAIyE,GAAexM,EAAQoJ,eAAe0B,WAAa9K,EAAQoJ,eAAe0B,SAASiC,6BACnF7F,EAASrD,KAAKkE,QASd,IAPKC,IAAgBwE,GAAejP,GAAYD,EAAuByK,EAAGxK,KACtEyK,EAAYzK,EAAS+B,OAAOS,EAAUrB,IAAgB1B,KAAK4B,cACvDoJ,GAAaA,EAAUpH,eACvBkM,EAAQjJ,KAAKkE,KAIhBC,IAAcA,EAAUvJ,KAEzB,YADAyI,EAASrD,KAAKkE,MAMvB,CAACb,EAAU4F,GASdJ,wBAAwB1O,EAAwBgC,EAAyBtB,GAC7E,MAAMwI,EAA2B,GAC3BlB,EAAmBhJ,KAAKtF,OAAOC,UAAUL,GAyB/C,OAxBA0G,EAAOhF,SAAQ+O,IACX,IAIIiF,EAJAC,EAAWjQ,KAAKkQ,aAAanF,EAAElK,qBAAsBkK,EAAE5J,cAAeO,GAS1E,IARKuO,GAAYjH,IACbiH,EAAWjQ,KAAKkQ,aAAalH,EAAU+B,EAAE5J,cAAeO,IAGxD1B,KAAK8K,8BAA8BC,EAAGA,EAAElK,wBACxCmP,EAAetO,EAAaU,IAAI,CAAEC,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,iBAGzE8O,GAAcA,EAASxO,OAASuO,EAAc,CAChD,MAAMG,GAAmBC,EAAAA,EAAAA,IAAKH,EAASxO,MACnCzB,KAAK4B,aACLF,EAAaoE,IACT,CAAEzD,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eAC3C,CAAEM,KAAMpC,EAAAA,YAAAA,QAAoB8Q,KAGhCzO,EAAaoE,IAAI,CAAEzD,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eAAiB,CAAEM,MAAM2O,EAAAA,EAAAA,IAAKD,UAG9FjG,EAASrD,KAAKkE,MAGfb,EAGHgG,aAAaG,EAAwBtN,EAAkBrB,GAC3D,OACIA,EAAaU,IAAI,CAAEC,SAAU,SAAUL,IAAK,GAAGqO,KAAkBtN,OACjErB,EAAaU,IAAI,CAAEC,SAAU,SAAUL,IAAK,GAAGqO,QAI/ClD,kBAAkBF,GAGtB,GAAIrR,MAAMC,QAAQoR,GAAI,CAClB,MAAMqD,EAAyBrD,EAAE,GACjC,GAAIqD,EAAWC,UACX,OAAO9C,EAAAA,WAAAA,QAAmB6C,QAE3B,GAAIrD,EAAEsD,UACT,OAAO9C,EAAAA,WAAAA,QAAmBR,GAG9B,OAAO,IAAI7O,MAAM6O,EAAE/M,SAAW,kBCt6B/B,MAAMsQ,EAST1Q,YAAmBkD,EAA0ByN,GActC,KAAAtP,YAAc,KAAcuP,OA9BhBC,EA8B8B,GAAG3Q,KAAK4Q,YA9BxBC,EA8BqC7Q,KAAK6Q,YA9BP5P,EA8BoBjB,KAAKiB,OA7BtF,GAAG0P,YAAeE,EAAYD,mBAAmBC,EAAYC,YAAY7P,EAAS,IAAIA,IAAW,KADtFyP,IAACC,EAAcE,EAAmC5P,GAoC7D,KAAAJ,mBAAqB,IAAc,kBAMnC,KAAAJ,cAAgB,IAAiB,UAzBpCT,KAAK4Q,UAAY5N,EAAQ6N,YAAYD,UAAYjF,OAAO3I,EAAQ6N,YAAYD,WAAa,EACzF5Q,KAAKyQ,sBAAwBA,GAAgDzN,EAAQ+N,KAAKN,sBAC1FzQ,KAAK6Q,YAAc7N,EAAQ6N,YAC3B7Q,KAAKiB,OAAS+B,EAAQ/B,QAAU,IAqDElD,EAA2B,CACjEzD,GAAI,kCACJI,OAXGsR,eAAgC3N,EAAsB2E,GAEzD,aAD8BgO,EAAAA,EAAAA,kBAAiB,CAAEC,cAAejO,GAAW3E,EAAMuS,WAAW,IAW5FvS,MAzB+B6S,CAACC,EAAiDV,KACjF,IAAKU,EAAU/E,eAAe2E,KAAKK,gBAC/B,MAAM,IAAIhT,MAAM,6DAEpB,OAAO,IAAIoS,EAAcW,EAAU/E,eAAgBqE,MAkBhD,MC/DMY,EAAqBjF,GACtBA,EAAekF,SAAWlF,EAAekF,MAAMC,aAAgBC,EAAsBpF,EAAeqF,QAG1GD,EAAyBC,GACK,SAAzBA,MAAAA,OAAM,EAANA,EAAQC,eAAmD,UAAzBD,MAAAA,OAAM,EAANA,EAAQC,eAAoD,WAAzBD,MAAAA,OAAM,EAANA,EAAQC,cCA3EC,EAAuC,CAChDtP,SAAU,2BACVL,IAAK,uBAmBF,MAAM4P,EAkET9R,YAAYkH,GA/DI,KAAA6K,gBAAoC,GASnC,KAAAtR,SAA0B,KAC1B,KAAAuR,YAAwB,GACxB,KAAAC,eAAoC,GAsB7C,KAAAC,QAAkB,EAYlB,KAAAC,sBAAgC,EAKhC,KAAAC,gBAAoC,CAAEC,KAAM,GAM5C,KAAAC,qBAA+B,EA+ThC,KAAA1J,MAASxI,IACZF,KAAKiD,UAAU2H,IAAIlP,EAAAA,GAAAA,MAAgB,oEAAqE,CACpG2H,OAAQ,CAACrD,KAAKqS,qBAAsBrS,KAAKsS,SAAUpS,MAQpD,KAAAN,MAASM,IACZF,KAAKiD,UAAU2H,IAAIlP,EAAAA,GAAAA,MAAgB,oEAAqE,CACpG2H,OAAQ,CAACrD,KAAKqS,qBAAsBrS,KAAKsS,SAAUpS,MAQpD,KAAAqS,MAASrS,IACZF,KAAKiD,UAAU2H,IAAIlP,EAAAA,GAAAA,MAAgB,oEAAqE,CACpG2H,OAAQ,CAACrD,KAAKqS,qBAAsBrS,KAAKsS,SAAUpS,MAuMnD,KAAAsS,mBAAqB,KACzB,MAAMC,EACDzS,KAAKoM,gBACFpM,KAAKoM,eAAesG,KACpB1S,KAAKoM,eAAesG,IAAIC,UACxB3S,KAAKoM,eAAesG,IAAIC,SAASF,UACrCb,EAAca,SAClB,OAAOzS,KAAKkS,gBAAgBC,KAAOM,GAM/B,KAAAG,iBAAuB7P,IAC3B,IAAIuM,EAAatP,KAAK0B,aAAaU,IAAOW,GAE1C,OAAIuM,GAQGA,EAPIA,EAAW7N,UAOgBjB,GAMlC,KAAAqS,gBAAkB,KACtB7S,KAAKgS,QAAS,EACdlD,EAAAA,KAAiB,GAAG9O,KAAKqI,oBAAqBrI,KAAKqS,uBA3iBnD,MAAM,GACF/X,EAAE,eACF8R,EAAc,aACd1K,EAAY,SACZnB,EAAQ,qBACR8R,EAAoB,oBACpBS,EAAmB,oBACnBV,EAAmB,UACnBnP,GACA+D,EAeJ,GAdAhH,KAAKsS,SAAWhY,EAChB0F,KAAKqI,QAAUC,GAAAA,GAEftI,KAAKqS,qBAAuBA,GAAwB,EAClB,IAA9BrS,KAAKqS,uBACLrS,KAAKkS,gBAAkB,CAAEC,KAAM,IAGnCnS,KAAK+S,6BAA+BD,GAAuB,EAC3D9S,KAAK0B,aAAeA,EACpB1B,KAAKoM,eAAiBA,GAAkB,GACxCpM,KAAKoS,oBAAsBrO,QAAQqO,GAG/BnP,EACAjD,KAAKiD,UAAYA,MACd,CAEH,MAAM+P,EAAkB,IAAIC,EAAAA,GACtBC,EAAU9G,EAAeqF,QAAUrF,EAAeqF,OAAOyB,QAGpBA,GACvCF,EAAgBG,oBAAoB,CAAEC,YAAaC,EAAAA,GAAsBrV,QAAS,CAAEkV,QAASA,KAEjGlT,KAAKiD,UAAY+P,EAQrBhT,KAAK0I,MAASxI,IACVF,KAAKiD,UAAU2H,IAAIlP,EAAAA,GAAAA,MAAgBwE,IAInCkM,EAAe0B,WAAe1B,EAAe0B,SAASwF,oBACtDtT,KAAKO,SAAWA,GAIjBgT,oBACH,OAAOvT,KAAK+R,eAQTvS,YACHf,EACAuC,EACAwS,GAEA,MAAM9Y,EAASP,EAAAA,aAA6BsE,GAE5C,GADAsC,EAAqBC,EAAQhB,KAAKoM,eAAenL,SAC5CvG,IAAWsG,EAGZ,OADAhB,KAAK+S,+BACD/S,KAAKiS,sBAAwBjS,KAAK+S,8BAIjC/S,KAAKgS,OAHCtK,QAAQpI,QAAQ,MAIhBU,KAAKyT,uBAAuBhU,MAAK,IAAM,OAMtD,GAAIO,KAAKwS,qBAEL,OADAxS,KAAKuS,MAAM,6CACJ7K,QAAQpI,QAAQ,MAGvBU,KAAKgS,SAGLhS,KAAKgS,QAAS,EACdhS,KAAK6R,gBAAgB/P,OAAS,EAC9B9B,KAAKiS,sBAAwB,GAGjCjS,KAAKiS,wBACL,MAAMzT,EAAY9D,EAAOC,UAAU6D,UAC7BkV,EAA+BlV,EAAYwC,EAAS,CAACA,GAE3D,IAAI2S,EAAU3T,KAAK6R,gBAAgB+B,MAAKC,GAAKA,EAAEnZ,SAAWA,IAC1D,GAAIiZ,GAAWnV,EACXmV,EAAQhL,UAAU+K,OACf,CACH,MAAMI,EAAkB,GAAGJ,EAAY,GAAG7S,yBAAyB6S,EAAY,GAAGvS,gBAC7EnB,KAAK8R,YAAY8B,MAAK5R,GAAOA,IAAQ8R,MACtCH,EAAU,IAAI5L,EAAerN,EAAQgZ,EAAa1T,KAAKiD,UAAWuQ,GAClExT,KAAK6R,gBAAgBhL,KAAK8M,GAC1B3T,KAAK8R,YAAYjL,KAAKiN,IAI9B,MAAMC,EAAc,IAAI1U,EAAAA,aAAqB2M,MAAO1M,EAASC,KACrDS,KAAKiS,sBAAwBjS,KAAK+S,qCAE5B,IAAIrL,SAASkH,IAMfE,EAAAA,GAAyB,GAAG9O,KAAKqI,qBALJ2L,IACrBA,IAAYhU,KAAKqS,sBACjBzD,UAKZE,EAAAA,mBAA+B,GAAG9O,KAAKqI,sBAGtCrI,KAAKgS,cACAhS,KAAKyT,uBAGf,MAAMjJ,EAAUkJ,EAAYzR,KAAI8I,IAC5B,KAAIA,aAAa7J,EAAAA,oBAYV,CACH,MAAM6B,EAAW,CAAEV,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eACtD6J,EAAYhL,KAAK0B,aAAaU,IAAmBW,GACjDD,EAAekI,EAAYhL,KAAK0B,aAAauJ,SAAYlI,GAAY,KAE3E,GAAIiI,GAAeA,EAAUpL,MACzB,MAAMkD,EAEN,GAAIkI,IAAczQ,EAAAA,GAAAA,UAed,OAdIyQ,EAAUiJ,uBACV7Q,EAAAA,EAAAA,IACIpD,KAAKoM,eACL3Q,EAAAA,GACA,6EACA,CACI4H,OAAQ,EACJgJ,EAAAA,EAAAA,IAAiBtB,EAAElK,sBAAwB,SAC3CwL,EAAAA,EAAAA,IAAiBtB,EAAE5J,gBACnBkL,EAAAA,EAAAA,IAAiBrB,EAAUiJ,yBAKnCjJ,EAAU9H,GACd,KAAKC,EAAAA,GAAAA,UACDC,EAAAA,EAAAA,IACIpD,KAAKoM,eACL3Q,EAAAA,GACA,kEACA,CACI4H,OAAQ,EACJgJ,EAAAA,EAAAA,IAAiBtB,EAAElK,sBAAwB,SAC3CwL,EAAAA,EAAAA,IAAiBtB,EAAE5J,gBACnBkL,EAAAA,EAAAA,IAAiB,eAI7B,MAEJ,KAAKlJ,EAAAA,GAAAA,cACDC,EAAAA,EAAAA,IACIpD,KAAKoM,eACL3Q,EAAAA,GACA,kEACA,CACI4H,OAAQ,EACJgJ,EAAAA,EAAAA,IAAiBtB,EAAElK,sBAAwB,SAC3CwL,EAAAA,EAAAA,IAAiBtB,EAAE5J,gBACnBkL,EAAAA,EAAAA,IAAiB,mBAI7B,MAEJ,SACIjJ,EAAAA,EAAAA,IACIpD,KAAKoM,eACL3Q,EAAAA,GACA,kEACA,CACI4H,OAAQ,EACJgJ,EAAAA,EAAAA,IAAiBtB,EAAElK,sBAAwB,SAC3CwL,EAAAA,EAAAA,IAAiBtB,EAAE5J,gBACnBkL,EAAAA,EAAAA,IAAiB,gBAOzC,OAAOvJ,EAjFX,IACI,MAAM8K,EAAuB5N,KAAKO,SAElC,OADc0D,EAAiB8G,EAAG/K,KAAK0B,aAAckM,GAAc,EAAO5N,KAAKoM,eAAgB3Q,EAAAA,IAClFkI,MACf,MAAOsJ,GAKL,OAJAjN,KAAKuS,MACD,iCAAiCxH,GAAKA,EAAElK,0CAA0CkK,GAC9EA,EAAE5J,oCAEH,SA6EnBnB,KAAK8R,YAAYoC,OAAO,EAAGlU,KAAK8R,YAAYhQ,QAGxCtD,GAAa9D,EAAOC,UAAUiH,aAC9BtC,EACIoI,QAAQyM,IAAI3J,GAAS/K,MAAKmF,GAEfA,EAAQ3C,KAAIvC,GACRA,GAA2B,gBAAjBA,EAAO0U,MAA0B1U,EAAOA,OAASA,SAM1E8C,EAAAA,EAAAA,eAAcgI,EAAQ,MAAQhM,GAE9BgM,EAAQ,GAAG/K,MAAK,KACZsU,EAAY9N,SAAWuE,EAAQ,GAAGvE,YAI1C3G,EAAQd,EAAYgM,EAAWA,EAAQ1I,QAAU0I,EAAQ,IAAO,UAIxE,OAAOuJ,EAQJM,OAAUrT,EAAuC0B,GACpD,GAAI1B,GAAU0B,EAAM,CAEhB,MAAM4R,EAAwB1Y,MAAMC,QAAQmF,GAAU0B,EAAO,CAACA,GACxD6R,EAAa3Y,MAAMC,QAAQmF,GAAUA,EAAS,CAACA,GACrD,GAAIuT,EAAWzS,SAAWwS,EAAUxS,OAChC,MAAM,IAAI1D,MAAM,4GA4BpB,OA1BA2C,EAAqBwT,EAAYvU,KAAKoM,eAAenL,QACrDsT,EAAWtS,KAAI,CAAC8I,EAAG4C,KACf,GAAI5C,aAAa7J,EAAAA,mBACb,IACI,MAAM0M,EAAuB5N,KAAKO,SAClCyF,EAAiB+E,EAAGuJ,EAAU3G,GAAM3N,KAAK0B,aAAckM,EAAclN,EAAsBqK,EAAG/K,KAAKO,WACrG,MAAO0M,GACLjN,KAAKuS,MACD,wCAAwCxH,EAAElK,8BAA8BkK,EAAE5J,mCAE9EnB,KAAKJ,MAAMqN,OAEZ,EAECzK,EAAAA,EAAAA,eAAsB8R,EAAU3G,MAChC2G,EAAU3G,GAA8B2G,EAAU3G,GAAMjO,QAG5D,MAAMqD,EAAW,CAAEV,SAAU0I,EAAElK,qBAAsBmB,IAAK+I,EAAE5J,eAC5DnB,KAAK0B,aAAaoE,IAAI/C,EAAU,CAAEtB,KAAM6S,EAAU3G,KAC9C3N,KAAKO,UAAYG,EAAsBqK,EAAG/K,KAAKO,WAC/CP,KAAKO,SAASuF,IAAI/C,EAAU,CAAEtB,KAAM6S,EAAU3G,SAKtD/R,MAAMC,QAAQmF,GACMA,EAAOiB,KAAI5D,GACpB2B,KAAK0B,aAAauJ,SAAS,CAAE5I,SAAUhE,EAAMwC,qBAAsBmB,IAAK3D,EAAM8C,kBAG/EnB,KAAK0B,aAAauJ,SAAS,CAAE5I,SAAUrB,EAAOH,qBAAsBmB,IAAKhB,EAAOG,gBAKlG,OAAOuB,EAwCJN,IAAOF,EAAyBa,GACnC,IAAKb,EACD,MAAM,IAAI9D,MAAM,6CAGpB,IAAK2E,EACD,MAAM,IAAI3E,MAAM,sCAGpB,MAAMoW,EAAmB,CAAEnS,SAAUH,EAAiBF,IAAKe,GAC3D,IAAIuM,EAAatP,KAAK0B,aAAaU,IAASoS,GAM5C,OAAKlF,EAI0B,iBAApBA,EAAW7N,OAA8C,IAAzB6N,EAAW7N,KAAK4C,KAChDiL,EAAW7N,KAGf7F,MAAMC,QAAQyT,EAAW7N,KAAKO,KAAuBsN,EAAW7N,KAAKO,IACjEC,KAAID,GAAOhC,KAAK4S,iBAAoB,CAAEvQ,SAAUH,EAAiBF,IAAAA,MACjES,OAAOsB,SAAW,KATlB,KAmBR0Q,OAAUvS,GACb,IAAKA,EACD,MAAM,IAAI9D,MAAM,6CAGpB,IAAIsW,EAAgB1U,KAAK0B,aAAaiT,YAAiBzS,GACvD,OAAKwS,GAKIA,EAKGtU,OAAOwF,KAAK8O,GACnBjS,QAAOT,GAA2C,iBAA7B0S,EAAe1S,GAAKP,OAAuD,IAAlCiT,EAAe1S,GAAKP,KAAK4C,OACvFpC,KAAID,GAAO0S,EAAe1S,GAAKP,OANrB,KAYZ,6BACH,MAAM,SAAE6Q,EAAQ,eAAElG,EAAc,aAAE1K,EAAY,SAAEnB,EAAQ,gBAAE2R,EAAe,gBAAEL,GAAoB7R,KAC/F,IAAK6R,EAAgB/P,OAEjB,YADA9B,KAAK0I,MAAM,gDAIf,GAAI1I,KAAKwS,qBAEL,YADAxS,KAAK0I,MAAM,6CAOf,MAAMkM,EAA+B/C,EAAgB/P,OAErD,IAAI+S,EAEAA,EADA7U,KAAKoS,oBACmBF,EAAgBC,KAAO,IAErBD,EAAgBC,KAG9C,MAAM2C,EAAW,IAAIlD,EAAc,CAC/BtX,GAAIgY,EACJlG,eAAgBA,EAChB1K,aAAcA,EACdnB,SAAUA,EACV8R,qBAAsBwC,EACtB/B,oBAAqB8B,EACrB3R,UAAWjD,KAAKiD,YAGd8R,EAA4C,IAAIhZ,IAEtD+Y,EAAS5C,gBAAkB,CAAEC,KAAM0C,GAEnC,MAAMvH,EAA2BuE,EAAgB5P,KAAI+S,GAE1CA,EAAMC,QAAQH,EAAUpT,EAAcnB,EAAU8Q,EAAkBrR,KAAKoM,gBAAiB,IAAI3M,MAAKyV,IAEpG,GAAIA,EAAepT,OAAQ,CACvBiT,EAAoB7Y,IAAI,CACpBiZ,cAAeH,EACfI,aAAcF,IAGlBlV,KAAK+R,eAAelL,KAAK,CACrBsO,cAAeH,EACfI,aAAcF,IAGlB,MAAMpS,EAAapB,EAAaU,IAAuBuP,GACjDI,EAAiBjP,EAAaA,EAAWrB,KAAO,GACtDsQ,EAAelL,KAAK,CAChBsO,cAAeH,EACfI,aAAcF,IAElBxT,EAAaoE,IAAuB6L,EAA2B,CAC3DlQ,KAAMsQ,IASd,GAFA+C,EAAS/B,gCAEJ+B,EAAS9C,QAGN8C,EAAS7C,sBAAwB,GAAK6C,EAAS7C,wBAA0B6C,EAAS/B,6BAClF,OAAO+B,EAASrB,4BAOhC,OAAO/L,QAAQyM,IAAI7G,GACd7N,MAAK,KACEsV,EAAoBM,KAAO,GAAKjJ,EAAe0B,UAAc1B,EAAe0B,SAASwH,gCACrFP,EAAoB/Y,SAAQuZ,IACxB,MAAMC,EAAsB,IAAIC,EAAAA,GAC1BC,EAAiB,IAAI9D,EAAc,CACrCtX,GAAI,kBACJ8R,eAAgBA,EAChB1K,aAAc,IAAI+T,EAAAA,GAClBxS,UAAWjD,KAAKiD,UAChB1C,SAAUA,EACV6R,qBAAqB,IAGzBmD,EAAGJ,cACEF,QACGS,EACAF,EACAxV,KAAKO,SACL8Q,EAAkBrR,KAAKoM,gBACvBmJ,EAAGH,cAEN3V,MAAK,KACF2D,EAAAA,EAAAA,IACIpD,KAAKoM,eACL3Q,EAAAA,GACA,0DAA0D8Z,EAAGH,aAAa,GAAGvU,wBAAwB0U,EAAGH,aAAa,GAAGjU,mBAG/HxB,OAAMC,IACHnE,EAAAA,GAAAA,IACIC,EAAAA,GAAAA,QACA,iEAAiE6Z,EAAGH,aAAa,GAAGvU,wBAAwB0U,EAAGH,aAAa,GAAGjU,uBAKnJnB,KAAK6S,qBAERlT,OAAMC,IAEH,MADAI,KAAK6S,kBACCjT,MA/kBJgS,EAAAa,SAAmB,ICjC9B,MAAMkD,EAAkC3S,GACpC,IAAI4O,EAAc,CACrBtX,GAAI,eACJoH,aAAc,IAAI+T,EAAAA,GAClBrJ,eAAiBpJ,GAAWA,EAAQoJ,gBAAmB,GACvD7L,SAAU,8PCqBXyL,eAAe4J,EAAkCvX,EAA4BwX,GAMhF,KADuCC,EAAAA,EAAAA,IAD7BC,SACmD,QAEzD,MAAO,GAGX,MAAMC,EAAQC,EAAQ,KAQtB,IAAIC,EAAwB,GAC5B,IAAK,IAADC,EAAAC,EAAAC,EAAAC,EACAJ,QAA8BK,EAAAA,EAAAA,wBAC1B,CACItF,cAAe4E,EACfW,oBAAqB,CACjBC,OAAQ,CAAEC,IAAK/K,OAAOgL,SAAiE,QAAzDR,EAAmB,QAAnBC,EAACP,EAAIzJ,sBAAc,IAAAgK,GAAK,QAALC,EAAlBD,EAAoB1D,WAAG,IAAA2D,GAAU,QAAVC,EAAvBD,EAAyB1D,gBAAQ,IAAA2D,OAAf,EAAlBA,EAAmCM,6BAAqB,IAAAT,EAAAA,EAAI,IAAK,OAGxG9X,EAAMwY,UACNxY,EAAMuS,UACNvS,EAAMyS,WAEZ,MAAOlR,GAEL,OADAiW,EAAI5S,UAAUrD,MAAM,gDAAgDA,KAC7D,GAIX,IAAIkX,EAAyBZ,EAAsBzT,QAE/CsU,GAASA,EAAMC,iBAAmBhB,EAAMiB,UAAUC,OAASH,EAAMC,iBAAmBhB,EAAMiB,UAAUE,QAExG,GAAsC,IAAlCL,EAAuBhV,OACvB,MAAO,GAIXgV,EAAyBA,EAAuBM,MAAK,CAACvD,EAAGwD,SAEvB,IAAnBxD,EAAEyD,mBAA0D,IAAnBD,EAAEC,aAC3C,OAE0B,IAAnBzD,EAAEyD,aACT,OAE0B,IAAnBD,EAAEC,cACR,EAGDzD,EAAEyD,aAAeD,EAAEC,eAYlC,OATqBR,EAAuB7U,KAAKsV,IAC7C,MAAMC,uWAAQzY,CAAA,GAAQwY,GAKtB,OAHIC,EAASR,iBAAmBhB,EAAMiB,UAAUC,QAC5CM,EAASC,KAAMC,EAAAA,EAAAA,IAA8B7B,EAAIzJ,eAAeyE,YAAa0G,EAAcE,MAExFD,KAWoDzZ,EAA2B,CAC1FzD,GAAI,wCACJI,OAAyCkb,IChHtC,IAAK+B,GAAZ,SAAYA,GACRA,EAAAA,EAAA,aACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,eAJJ,CAAYA,IAAAA,EAAiB,KA0CtB3L,eAAe4L,EAClBvZ,EACAwX,GAOA,KADiDC,EAAAA,EAAAA,IADvCC,SAC6D,QAEnE,MAAO,GAIX,MAAMC,EAAQC,EAAQ,KAEhB4B,EAAiB5B,EAAQ,IAQ/B,IAAIC,EAAwB,GAC5B,IAAK,IAADC,EAAAC,EAAAC,EAAAC,EACAJ,QAA8B2B,EAAeC,0BACzC,CACI7G,cAAe4E,EACfW,oBAAqB,CACjBC,OAAQ,CAAEC,IAAK/K,OAAOgL,SAAiE,QAAzDR,EAAmB,QAAnBC,EAACP,EAAIzJ,sBAAc,IAAAgK,GAAK,QAALC,EAAlBD,EAAoB1D,WAAG,IAAA2D,GAAU,QAAVC,EAAvBD,EAAyB1D,gBAAQ,IAAA2D,OAAf,EAAlBA,EAAmCM,6BAAqB,IAAAT,EAAAA,EAAI,IAAK,OAGxG,CACI4B,UAAW1Z,EAAMwY,UACjBmB,UAAW3Z,EAAMuS,UACjBqH,UAAW5Z,EAAMyS,UACjBoH,oBAAqB,IAG/B,MAAOtY,GAEL,OADAiW,EAAI5S,UAAUrD,MAAM,mDAAmDA,KAChE,GAKX,IAAIuY,EAAiC,GACrC,OAAQ9Z,EAAM+Z,YACV,KAAKT,EAAkBT,MAEnBiB,EAAgBjC,EAAsBzT,QAAOsU,GAASA,EAAMC,iBAAmBhB,EAAMiB,UAAUC,QAC/F,MACJ,KAAKS,EAAkBR,MAEnBgB,EAAgBjC,EAAsBzT,QAAOsU,GAASA,EAAMC,iBAAmBhB,EAAMiB,UAAUE,QAC/F,MACJ,KAAKQ,EAAkBU,KAEnBF,EAAgBjC,EAAsBzT,QAAOsU,GAASA,EAAMC,iBAAmBhB,EAAMiB,UAAUoB,OAC/F,MACJ,QACIF,EAAgBjC,EAExB,GAA6B,IAAzBiC,EAAcrW,OACd,MAAO,GAIXqW,EAAgBA,EAAcf,MAAK,CAACvD,EAAGwD,SAEL,IAAnBxD,EAAEyD,mBAA0D,IAAnBD,EAAEC,aAC3C,OAE0B,IAAnBzD,EAAEyD,aACT,OAE0B,IAAnBD,EAAEC,cACR,EAGDzD,EAAEyD,aAAeD,EAAEC,eAQlC,OALqBa,EAAclW,KAAKsV,IACpCA,EAAcE,KAAMC,EAAAA,EAAAA,IAA8B7B,EAAIzJ,eAAeyE,YAAa0G,EAAcE,KAChGF,EAAce,QAAUf,EAAce,QAC/Bf,KAU8DxZ,EAA2B,CACpGzD,GAAI,mDACJI,OAAyCkd,iBCzItC,MAAMW,GAOTzY,YAAmB+Q,EAAmC2H,EAAwBhQ,GAUvE,KAAArH,YAAc,IAAc,YAAYnB,KAAKyQ,gCAAgCzQ,KAAK6Q,YAAYD,YAM9F,KAAA/P,mBAAqB,IAAc,WAMnC,KAAAJ,cAAgB,IACZT,KAAKwI,UAAYxI,KAAKwI,UAAY,UAtBzCxI,KAAKyQ,sBAAwB+H,EAC7BxY,KAAK6Q,YAAcA,EACnB7Q,KAAKwI,UAAYA,GA6BlB,MAkCMiQ,GAA8B1a,EAA2B,CAClEzD,GAAI,kCACJI,OArBsBsR,MAAO3N,EAAyBwX,KACtD,GAAIxX,GAASwX,EAAIzJ,eAAe2E,KAAKK,gBACjC,IACI,OAAOsH,EAAAA,GAAAA,WAAU,CAAEzH,cAAe4E,EAAKrG,YAAa,OAAS,IAAI/P,MAAKkZ,GAC3D/c,MAAMC,QAAQ8c,GAAYA,EAAS,GAAKA,IAErD,MAAO/Y,GAEL,OADAiW,EAAI5S,UAAUrD,MAAM,qCAAqCA,KACxC,GAKzB,OADAiW,EAAI5S,UAAU2V,QAAQ,+CACL,IASjBva,MArCmC8S,IACnC,MAAM,KAAEJ,EAAI,YAAEF,GAAgBM,EAAU/E,eACxC,IAAK2E,EAAK8H,QAAU9H,EAAKK,gBACrB,MAAM,IAAIhT,MAAM,0DAGpB,OAAO,IAAIma,GAAiB1H,kCC5DzB,IAAK1N,6BAAZ,SAAYA,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,uBAFJ,CAAYA,IAAAA,EAAY,oECAjB,MAGM2V,EAAqB/V,IACvB,CACHV,SAAUU,EAASV,SAAS0W,cAC5B/W,IAAKe,EAASf,IAAI+W,8OCCnB,MAAMtD,EAAb3V,cACY,KAAA4J,cAA0E,GAO3E5D,IAAiB/C,EAAqBtB,GACzC,IAAKsB,EAASV,SACV,MAAM,IAAIjE,MAAM,iBAAiB2E,EAASV,uBAG9C,IAAKU,EAASf,IACV,MAAM,IAAI5D,MAAM,gBAAgB2E,EAASf,gCAAgCe,EAASV,YAGtFZ,EAAKyB,OAAe1C,IAAXiB,EAAKyB,EAAkBzB,EAAKyB,EAAIC,EAAAA,aACzC,MAAM,SAAEd,EAAQ,IAAEL,GAAQ8W,EAAkB/V,GAI5C,YAHqCvC,IAAjCR,KAAK0J,cAAcrH,KACnBrC,KAAK0J,cAAcrH,GAAY,KAE5B2W,EAAAA,EAAAA,KAAqB,KACxB,IAAIhO,EAA0ChL,KAAK0J,cAAcrH,GAAUL,GAwB3E,OArBIgJ,IAAaxI,EAAAA,EAAAA,eAAcwI,EAAUvJ,OACP,YAA1BuJ,EAAUvJ,KAAKtB,SACfyG,EAAAA,EAAAA,IAAIoE,EAAUvJ,KAAM,SAAU,YAElCmF,EAAAA,EAAAA,IAAIoE,EAAUvJ,KAAM,SAAUA,EAAKA,OAEnCmF,EAAAA,EAAAA,IAAIoE,EAAUvJ,KAAM,SAAU,YACvBuJ,GACPpE,EAAAA,EAAAA,IAAIoE,EAAW,OAAQvJ,EAAKA,OAQxBuJ,GANCxI,EAAAA,EAAAA,eAAcf,EAAKA,MAMRA,GALAwX,EAAAA,EAAAA,yWAAUla,CAAA,GAAqB0C,QAAQjB,EAAW,CAC1D0Y,MAAM,EACN5a,KAAM,KAAK+D,OAAcL,MAKjChC,KAAK0J,cAAcrH,GAAUL,GAAOgJ,IAGjC,KASR5I,IAAiBW,GACpB,IAAKA,EACD,MAAM,IAAI3E,MAAM,qBAAqB2E,KAGzC,IAAKA,EAASV,SACV,MAAM,IAAIjE,MAAM,0BAA0B2E,EAASV,YAIvD,OADAU,EAAW+V,EAAkB/V,GACtB/C,KAAK0J,cAAc3G,EAASV,UAA2BrC,KAAK0J,cAAc3G,EAASV,UAAUU,EAASf,UAAOxB,EAQjHmU,YAAyBtS,GAC5B,IAAKA,EACD,MAAM,IAAIjE,MAAM,4BAGpB,OAAmC4B,KAAK0J,cAAcrH,EAAS0W,eAQ5D9N,SAAsBlI,GACzB,MAAMuM,EAAwCtP,KAAKoC,IAAOW,GAC1D,OAAOuM,EAAatP,KAAKmZ,OAAU7J,QAAc9O,EAQ9C8B,OAAoBS,EAAqBqW,GAC5C,MAAM,IAAIhb,MAAM,mBAQbib,IAAItW,GACPA,EAAW+V,EAAkB/V,GAC7B,MAAMyF,EAAYxI,KAAK0J,cAAc3G,EAASV,UAC9C,SAAImG,IAAaA,EAAUzF,EAASf,eACzBwG,EAAUzF,EAASf,MACnB,GASRsX,WACHtZ,KAAK0J,cAAgB,GAOlB9D,OACH,OAAOxF,OAAOwF,KAAK5F,KAAK0J,eAQpByP,OAAU1X,GACd,OAAOA,EAAKA,0bCnHpB,QAAelH,EAAgB,8iBC1B3B,SAASgf,EAA0BC,GAC/B,IAAIxX,EAAOwX,EAAa,CAAEC,UAAWD,GAAc,KACnD,OAAO,IAAIE,EAAAA,EAAiB,uBAAwB,sBAAuB,2BAA4B1X,GAGpG,SAAS2X,EAAkBC,GAC9B,OAAOL,IAA4BM,OAAOD,GAGvC,SAASE,EAA+B9W,EAAmB4W,GAC9D,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAASiX,EAAkBL,GAC9B,OAAOL,EAA0BK,EAAOH,WAAWpF,OAAOuF,GAGvD,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAASmX,EAAkBP,GAC9B,OAAOL,EAA0BK,EAAOH,WAAWrS,SAGhD,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgBb,GAC5B,OAAOD,EAA0BC,GAAWc,OAGzC,SAAS5B,EAAU1V,EAAmBwW,GACzC,MAAMO,EAAUM,EAAgBb,GAChC,OAAOQ,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAASuX,EAAmB/D,GAC/B,OAAO+C,IAA4BiB,eAAehE,GAAqB8D,OAGpE,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS0X,EAAmClB,EAAmBmB,GAElE,OADcpB,EAA0BC,GAC3BoB,qCAAqC,2BAA2B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACF,2BAA4BA,IAG7J,SAASG,EAA6B9X,EAAmBwW,EAAmBmB,GAC/E,MAAMZ,EAAUW,EAAmClB,EAAWmB,GAC9D,OAAOX,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS+X,EAA8BvB,EAAmBwB,EAA0BC,GAEvF,OADc1B,EAA0BC,GAC3BoB,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACG,UAAWA,EAAWC,aAAcA,IAGhK,SAASC,EAAwBlY,EAAmBwW,EAAmBwB,EAA0BC,GACpG,MAAMlB,EAAUgB,EAA8BvB,EAAWwB,EAAWC,GACpE,OAAOjB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASmY,EAAgC3E,EAA2CgD,EAAmB4B,EAAqBC,GAE/H,OADc9B,EAA0BC,GAAWgB,eAAehE,GACrDoE,qCAAqC,wBAAwB,EACrE,uCACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mCAAoC,CAACO,cAAeA,EAAeC,YAAaA,IAG7H,SAASC,EAA0BtY,EAAmBwW,EAAmB4B,EAAqBC,GACjG,MAAMtB,EAAUoB,EAAgCnY,EAAQwT,oBAAqBgD,EAAW4B,EAAeC,GACvG,OAAOrB,EAAAA,EAAAA,IAAiDD,EAAS/W,GAG9D,SAASuY,IAEZ,OADchC,IACDqB,qCAAqC,cAAc,EAC3D,2BACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGtE,SAASW,EAAgBxY,GAC5B,MAAM+W,EAAUwB,IAChB,OAAOvB,EAAAA,EAAAA,IAAmCD,EAAS/W,6kBC3FvD,SAASyY,EAAsBC,GAC3B,IAAI1Z,EAAO0Z,EAAqB,CAAEC,kBAAmBD,GAAsB,KAC3E,OAAO,IAAIhC,EAAAA,EAAiB,mBAAoB,kBAAmB,uBAAwB1X,GAGxF,SAAS2X,EAAkBC,GAC9B,OAAO6B,IAAwB5B,OAAOD,GAGnC,SAASgC,EAA2B5Y,EAAmB4W,GAC1D,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASiX,EAAkBL,GAC9B,OAAO6B,EAAsB7B,EAAO+B,mBAAmBtH,OAAOuF,GAG3D,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASmX,EAAkBP,GAC9B,OAAO6B,EAAsB7B,EAAO+B,mBAAmBvU,SAGpD,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgBqB,GAC5B,OAAOD,EAAsBC,GAAmBpB,OAG7C,SAAS5B,EAAU1V,EAAmB0Y,GACzC,MAAM3B,EAAUM,EAAgBqB,GAChC,OAAO1B,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASuX,EAAmB/D,GAC/B,OAAOiF,IAAwBjB,eAAehE,GAAqB8D,OAGhE,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAAS6Y,EAA2BrF,EAA2CkF,GAElF,OADcD,EAAsBC,GAAmBlB,eAAehE,GACzDoE,qCAAqC,mBAAmB,EAChE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,IAGhE,SAASiB,EAAqB9Y,EAAmB0Y,GACpD,MAAM3B,EAAU8B,EAA2B7Y,EAAQwT,oBAAqBkF,GACxE,OAAO1B,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAAS+Y,EAA0BC,GAEtC,OADcP,IACDb,qCAAqC,kBAAkB,EAC/D,+BACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,2BAA4B,CAACmB,wBAAyBA,IAGnG,SAASC,EAAoBjZ,EAAmBgZ,GACnD,MAAMjC,EAAUgC,EAA0BC,GAC1C,OAAOhC,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAASuY,IAEZ,OADcE,IACDb,qCAAqC,cAAc,EAC3D,uBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,IAGlE,SAASW,EAAgBxY,GAC5B,MAAM+W,EAAUwB,IAChB,OAAOvB,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASkZ,EAAsC1F,GAElD,OADciF,IAAwBjB,eAAehE,GACxCoE,qCAAqC,8BAA8B,EAC3E,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,IAGjE,SAASsB,EAAgCnZ,GAC5C,MAAM+W,EAAUmC,EAAsClZ,EAAQwT,qBAC9D,OAAOwD,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAASoZ,EAAoB5F,EAA2CkF,GAE3E,OADcD,EAAsBC,GAAmBlB,eAAehE,GACzDoE,qCAAqC,YAAY,EACzD,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGrE,SAASwB,EAAcrZ,EAAmB0Y,GAC7C,MAAM3B,EAAUqC,EAAoBpZ,EAAQwT,oBAAqBkF,GACjE,OAAO1B,EAAAA,EAAAA,IAAqCD,EAAS/W,u6IC3GzD,SAASsZ,EAAWhiB,GAChB,IAAI0H,EAAO1H,EAAM,CAAEiiB,GAAIjiB,GAAO,KAC9B,OAAO,IAAIof,EAAAA,EAAiB,QAAS,OAAQ,YAAa1X,GAGvD,SAAS2X,EAAkBC,GAC9B,OAAO0C,IAAazC,OAAOD,GAGxB,SAAS4C,EAAgBxZ,EAAmB4W,GAC/C,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASiX,EAAkBL,GAC9B,OAAO0C,EAAW1C,EAAO2C,IAAIlI,OAAOuF,GAGjC,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASmX,EAAkBP,GAC9B,OAAO0C,EAAW1C,EAAO2C,IAAInV,SAG1B,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB/f,GAC5B,OAAOgiB,EAAWhiB,GAAIggB,OAGnB,SAAS5B,EAAU1V,EAAmB1I,GACzC,MAAMyf,EAAUM,EAAgB/f,GAChC,OAAO0f,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASuX,EAAmB/D,GAC/B,OAAO8F,IAAa9B,eAAehE,GAAqB8D,OAGrD,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGnC,SAASyZ,EAAkBjG,EAA2CkG,GAEzE,OADcJ,IAAa9B,eAAehE,GAC7BoE,qCAAqC,UAAU,EACvD,YACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,QAAS,CAAC6B,mBAAoBA,IAG3E,SAASC,EAAY3Z,EAAmB0Z,GAC3C,MAAM3C,EAAU0C,EAAkBzZ,EAAQwT,oBAAqBkG,GAC/D,OAAO1C,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGnC,SAAS4Z,EAAoBtiB,EAAYuiB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAEhN,OADcX,EAAWhiB,GACZsgB,qCAAqC,YAAY,EACzD,kBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,cAAe,CAACgC,aAAcA,EAAcC,qBAAsBA,EAAsBC,sBAAuBA,EAAuBC,gBAAiBA,EAAiBC,YAAaA,IAGlO,SAASC,EAAcla,EAAmB1I,EAAYuiB,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAC7N,MAAMlD,EAAU6C,EAAoBtiB,EAAIuiB,EAAcC,EAAsBC,EAAuBC,EAAiBC,GACpH,OAAOjD,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASma,EAA4D7iB,EAAY8iB,EAA+BC,GAEnH,OADcf,EAAWhiB,GACZsgB,qCAAqC,oDAAoD,EACjG,sCACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,kCAAmC,CAACuC,cAAeA,EAAeC,aAAcA,IAG9H,SAASC,EAAsDta,EAAmB1I,EAAY8iB,EAA+BC,GAChI,MAAMtD,EAAUoD,EAA4D7iB,EAAI8iB,EAAeC,GAC/F,OAAOrD,EAAAA,EAAAA,IAA8CD,EAAS/W,GAG3D,SAASua,EAA8B/G,EAA2Clc,GAErF,OADcgiB,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,sBAAsB,EACnE,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,IAG5D,SAAS2C,EAAwBxa,EAAmB1I,GACvD,MAAMyf,EAAUwD,EAA8Bva,EAAQwT,oBAAqBlc,GAC3E,OAAO0f,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASya,EAA6CjH,EAA2Clc,EAAYojB,EAAqD9M,EAAmB+M,GAExL,OADcrB,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,qCAAqC,EAClF,+BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,2BAA4B,CAAC6C,sBAAuBA,EAAuB9M,UAAWA,EAAW+M,aAAcA,IAG5J,SAASC,EAAuC5a,EAAmB1I,EAAYojB,EAAqD9M,EAAmB+M,GAC1J,MAAM5D,EAAU0D,EAA6Cza,EAAQwT,oBAAqBlc,EAAIojB,EAAuB9M,EAAW+M,GAChI,OAAO3D,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGtD,SAAS6a,EAAkCrH,EAA2Clc,EAAYojB,EAAsDC,GAE3J,OADcrB,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,0BAA0B,EACvE,+BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,2BAA4B,CAAC6C,sBAAuBA,EAAuBC,aAAcA,IAGtI,SAASG,EAA4B9a,EAAmB1I,EAAYojB,EAAsDC,GAC7H,MAAM5D,EAAU8D,EAAkC7a,EAAQwT,oBAAqBlc,EAAIojB,EAAuBC,GAC1G,OAAO3D,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGtD,SAAS+a,EAAkCzjB,GAE9C,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,0BAA0B,EACvE,+BACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,2BAA4B,IAG1E,SAASmD,EAA4Bhb,EAAmB1I,GAC3D,MAAMyf,EAAUgE,EAAkCzjB,GAClD,OAAO0f,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAASib,EAA8BzH,EAA2Clc,EAAY4jB,EAAkCC,EAA+BR,EAA8BS,GAEhM,OADc9B,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,sBAAsB,EACnE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACqD,gBAAiBA,EAAiBC,YAAaA,EAAaR,aAAcA,EAAcS,4BAA6BA,IAGtL,SAASC,EAAwBrb,EAAmB1I,EAAY4jB,EAAkCC,EAA+BR,EAA8BS,GAClK,MAAMrE,EAAUkE,EAA8Bjb,EAAQwT,oBAAqBlc,EAAI4jB,EAAiBC,EAAaR,EAAcS,GAC3H,OAAOpE,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAASsb,EAA4ChkB,EAAYikB,GAEpE,OADcjC,EAAWhiB,GACZsgB,qCAAqC,oCAAoC,EACjF,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC0D,2BAA4BA,IAGnF,SAASC,EAAsCxb,EAAmB1I,EAAYikB,GACjF,MAAMxE,EAAUuE,EAA4ChkB,EAAIikB,GAChE,OAAOvE,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASyb,EAAuCnkB,EAAYokB,GAE/D,OADcpC,EAAWhiB,GACZsgB,qCAAqC,+BAA+B,EAC5E,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6D,sBAAuBA,IAG9E,SAASC,EAAiC3b,EAAmB1I,EAAYokB,GAC5E,MAAM3E,EAAU0E,EAAuCnkB,EAAIokB,GAC3D,OAAO1E,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS4b,EAAqBtkB,EAAYukB,EAAyBC,EAA2BC,GAEjG,OADczC,EAAWhiB,GACZsgB,qCAAqC,aAAa,EAC1D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACgE,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGzH,SAASC,EAAehc,EAAmB1I,EAAYukB,EAAyBC,EAA2BC,GAC9G,MAAMhF,EAAU6E,EAAqBtkB,EAAIukB,EAAiBC,EAAYC,GACtE,OAAO/E,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASic,EAA0B3kB,EAAY4kB,EAA6BH,EAAgBI,GAE/F,OADc7C,EAAWhiB,GACZsgB,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACqE,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGpH,SAASC,EAAoBpc,EAAmB1I,EAAY4kB,EAA6BH,EAAgBI,GAC5G,MAAMpF,EAAUkF,EAA0B3kB,EAAI4kB,EAAcH,EAAQI,GACpE,OAAOnF,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASqc,EAA6B/kB,EAAYglB,EAA2BT,EAAyBC,EAA2BC,GAEpI,OADczC,EAAWhiB,GACZsgB,qCAAqC,qBAAqB,EAClE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACyE,WAAYA,EAAYT,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGjJ,SAASQ,EAAuBvc,EAAmB1I,EAAYglB,EAA2BT,EAAyBC,EAA2BC,GACjJ,MAAMhF,EAAUsF,EAA6B/kB,EAAIglB,EAAYT,EAAiBC,EAAYC,GAC1F,OAAO/E,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASwc,EAAkCllB,EAAYglB,EAA2BJ,EAA6BH,EAAgBI,GAElI,OADc7C,EAAWhiB,GACZsgB,qCAAqC,0BAA0B,EACvE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACyE,WAAYA,EAAYJ,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAG5I,SAASM,EAA4Bzc,EAAmB1I,EAAYglB,EAA2BJ,EAA6BH,EAAgBI,GAC/I,MAAMpF,EAAUyF,EAAkCllB,EAAIglB,EAAYJ,EAAcH,EAAQI,GACxF,OAAOnF,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS0c,EAAgBplB,EAAY6kB,EAA2ClC,GAEnF,OADcX,EAAWhiB,GACZsgB,qCAAqC,QAAQ,EACrD,kBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,cAAe,CAACsE,gBAAiBA,EAAiBlC,YAAaA,IAG5G,SAAS0C,EAAU3c,EAAmB1I,EAAY6kB,EAA2ClC,GAChG,MAAMlD,EAAU2F,EAAgBplB,EAAI6kB,EAAiBlC,GACrD,OAAOjD,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS4c,EAAwBtlB,EAAYulB,EAA+B5C,GAE/E,OADcX,EAAWhiB,GACZsgB,qCAAqC,gBAAgB,EAC7D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACgF,UAAWA,EAAW5C,YAAaA,IAG1F,SAAS6C,EAAkB9c,EAAmB1I,EAAYulB,EAA+B5C,GAC5F,MAAMlD,EAAU6F,EAAwBtlB,EAAIulB,EAAW5C,GACvD,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS+c,EAA8BzlB,EAAY0lB,EAA0CC,EAAyChD,GAEzI,OADcX,EAAWhiB,GACZsgB,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACmF,gBAAiBA,EAAiBC,gCAAiCA,EAAiChD,YAAaA,IAGxK,SAASiD,EAAwBld,EAAmB1I,EAAY0lB,EAA0CC,EAAyChD,GACtJ,MAAMlD,EAAUgG,EAA8BzlB,EAAI0lB,EAAiBC,EAAiChD,GACpG,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASmd,EAA2B7lB,EAAYulB,EAA+B5C,GAElF,OADcX,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACgF,UAAWA,EAAW5C,YAAaA,IAG1F,SAASmD,EAAqBpd,EAAmB1I,EAAYulB,EAA+B5C,GAC/F,MAAMlD,EAAUoG,EAA2B7lB,EAAIulB,EAAW5C,GAC1D,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASqd,EAAyB/lB,EAAYulB,GAEjD,OADcvD,EAAWhiB,GACZsgB,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACgF,UAAWA,IAGlE,SAASS,EAAmBtd,EAAmB1I,EAAYulB,GAC9D,MAAM9F,EAAUsG,EAAyB/lB,EAAIulB,GAC7C,OAAO7F,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASud,GAA2BjmB,EAAY6jB,GAEnD,OADc7B,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACsD,YAAaA,IAGpE,SAASqC,GAAqBxd,EAAmB1I,EAAY6jB,GAChE,MAAMpE,EAAUwG,GAA2BjmB,EAAI6jB,GAC/C,OAAOnE,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASyd,GAAyBnmB,EAAYomB,EAAwCzD,GAEzF,OADcX,EAAWhiB,GACZsgB,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6F,eAAgBA,EAAgBzD,YAAaA,IAGpG,SAAS0D,GAAmB3d,EAAmB1I,EAAYomB,EAAwCzD,GACtG,MAAMlD,EAAU0G,GAAyBnmB,EAAIomB,EAAgBzD,GAC7D,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS4d,GAAmCtmB,EAAYumB,EAAgC5D,GAE3F,OADcX,EAAWhiB,GACZsgB,qCAAqC,2BAA2B,EACxE,0BACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,sBAAuB,CAACgG,WAAYA,EAAY5D,YAAaA,IAG1G,SAAS6D,GAA6B9d,EAAmB1I,EAAYumB,EAAgC5D,GACxG,MAAMlD,EAAU6G,GAAmCtmB,EAAIumB,EAAY5D,GACnE,OAAOjD,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAAS+d,GAAqCzmB,EAAY0mB,EAA4C/D,GAEzG,OADcX,EAAWhiB,GACZsgB,qCAAqC,6BAA6B,EAC1E,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACmG,uBAAwBA,EAAwB/D,YAAaA,IAGpH,SAASgE,GAA+Bje,EAAmB1I,EAAY0mB,EAA4C/D,GACtH,MAAMlD,EAAUgH,GAAqCzmB,EAAI0mB,EAAwB/D,GACjF,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASke,GAAoC5mB,EAAYumB,GAE5D,OADcvE,EAAWhiB,GACZsgB,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACgG,WAAYA,IAG9I,SAASM,GAA8Bne,EAAmB1I,EAAYumB,GACzE,MAAM9G,EAAUmH,GAAoC5mB,EAAIumB,GACxD,OAAO7G,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASoe,GAAqC9mB,EAAY+mB,EAA8BC,GAE3F,OADchF,EAAWhiB,GACZsgB,qCAAqC,6BAA6B,EAC1E,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACwG,aAAcA,EAAcC,cAAeA,IAGlG,SAASC,GAA+Bve,EAAmB1I,EAAY+mB,EAA8BC,GACxG,MAAMvH,EAAUqH,GAAqC9mB,EAAI+mB,EAAcC,GACvE,OAAOtH,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASwe,GAA2ChL,EAA2Clc,EAAY0mB,EAA4CS,GAE1J,OADcnF,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,mCAAmC,EAChF,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACmG,uBAAwBA,EAAwBS,yBAA0BA,IAGpI,SAASC,GAAqC1e,EAAmB1I,EAAY0mB,EAA4CS,GAC5H,MAAM1H,EAAUyH,GAA2Cxe,EAAQwT,oBAAqBlc,EAAI0mB,EAAwBS,GACpH,OAAOzH,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAAS2e,GAAgBrnB,EAAYsnB,GAExC,OADctF,EAAWhiB,GACZsgB,qCAAqC,QAAQ,EACrD,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC+G,eAAgBA,IAGvE,SAASC,GAAU7e,EAAmB1I,EAAYsnB,GACrD,MAAM7H,EAAU4H,GAAgBrnB,EAAIsnB,GACpC,OAAO5H,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS8e,GAAuCC,EAA8BC,GAEjF,OADc1F,IACD1B,qCAAqC,+BAA+B,EAC5E,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACkH,cAAeA,EAAeC,sBAAuBA,IAG5G,SAASC,GAAiCjf,EAAmB+e,EAA8BC,GAC9F,MAAMjI,EAAU+H,GAAuCC,EAAeC,GACtE,OAAOhI,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASkf,GAAoC5nB,EAAY6nB,GAE5D,OADc7F,EAAWhiB,GACZsgB,qCAAqC,4BAA4B,EACzE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACsH,+BAAgCA,IAGvF,SAASC,GAA8Bpf,EAAmB1I,EAAY6nB,GACzE,MAAMpI,EAAUmI,GAAoC5nB,EAAI6nB,GACxD,OAAOnI,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASqf,GAA0B/nB,EAAY+mB,EAA8BlC,EAA2CmD,EAAiCC,GAE5J,OADcjG,EAAWhiB,GACZsgB,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACwG,aAAcA,EAAclC,gBAAiBA,EAAiBmD,eAAgBA,EAAgBC,UAAWA,IAGhK,SAASC,GAAoBxf,EAAmB1I,EAAY+mB,EAA8BlC,EAA2CmD,EAAiCC,GACzK,MAAMxI,EAAUsI,GAA0B/nB,EAAI+mB,EAAclC,EAAiBmD,EAAgBC,GAC7F,OAAOvI,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASyf,GAAyBnoB,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GAE3J,OADctG,EAAWhiB,GACZsgB,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6H,WAAYA,EAAY3D,OAAQA,EAAQ1B,aAAcA,EAAcsF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASC,GAAmB7f,EAAmB1I,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GACxK,MAAM7I,EAAU0I,GAAyBnoB,EAAIooB,EAAY3D,EAAQ1B,EAAcsF,EAAiBC,GAChG,OAAO5I,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS8f,GAA0BxoB,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GAE5J,OADctG,EAAWhiB,GACZsgB,qCAAqC,kBAAkB,EAC/D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6H,WAAYA,EAAY3D,OAAQA,EAAQ1B,aAAcA,EAAcsF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASG,GAAoB/f,EAAmB1I,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GACzK,MAAM7I,EAAU+I,GAA0BxoB,EAAIooB,EAAY3D,EAAQ1B,EAAcsF,EAAiBC,GACjG,OAAO5I,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASggB,GAA2B1oB,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GAE7J,OADctG,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6H,WAAYA,EAAY3D,OAAQA,EAAQ1B,aAAcA,EAAcsF,gBAAiBA,EAAiBC,aAAcA,IAG3K,SAASK,GAAqBjgB,EAAmB1I,EAAYooB,EAA2B3D,EAAgB1B,EAA8BsF,EAAiCC,GAC1K,MAAM7I,EAAUiJ,GAA2B1oB,EAAIooB,EAAY3D,EAAQ1B,EAAcsF,EAAiBC,GAClG,OAAO5I,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASkgB,GAAmB5oB,GAE/B,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,WAAW,EACxD,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,IAGtD,SAASsI,GAAangB,EAAmB1I,GAC5C,MAAMyf,EAAUmJ,GAAmB5oB,GACnC,OAAO0f,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASogB,GAA8B9oB,EAAY+oB,EAA+BtG,GAErF,OADcT,EAAWhiB,GACZsgB,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACwI,cAAeA,EAAetG,sBAAuBA,IAG5G,SAASuG,GAAwBtgB,EAAmB1I,EAAY+oB,EAA+BtG,GAClG,MAAMhD,EAAUqJ,GAA8B9oB,EAAI+oB,EAAetG,GACjE,OAAO/C,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASugB,GAAkBjpB,GAE9B,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,UAAU,EACvD,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,IAGtD,SAAS2I,GAAYxgB,EAAmB1I,GAC3C,MAAMyf,EAAUwJ,GAAkBjpB,GAClC,OAAO0f,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASygB,GAA+BC,GAE3C,OADcpH,IACD1B,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC6I,UAAWA,IAGlE,SAASC,GAAyB3gB,EAAmB0gB,GACxD,MAAM3J,EAAU0J,GAA+BC,GAC/C,OAAO1J,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS4gB,GAA+BtpB,EAAYupB,GAEvD,OADcvH,EAAWhiB,GACZsgB,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACgJ,cAAeA,IAGtE,SAASC,GAAyB9gB,EAAmB1I,EAAYupB,GACpE,MAAM9J,EAAU6J,GAA+BtpB,EAAIupB,GACnD,OAAO7J,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS+gB,GAAwBvN,GAEpC,OADc8F,IAAa9B,eAAehE,GAC7BoE,qCAAqC,gBAAgB,EAC7D,YACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,QAAS,IAGtD,SAASmJ,GAAkBhhB,GAC9B,MAAM+W,EAAUgK,GAAwB/gB,EAAQwT,qBAChD,OAAOwD,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGnC,SAASihB,GAAiC3pB,EAAYglB,EAA2B4E,GAEpF,OADc5H,EAAWhiB,GACZsgB,qCAAqC,yBAAyB,EACtE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACyE,WAAYA,EAAY4E,MAAOA,IAGtF,SAASC,GAA2BnhB,EAAmB1I,EAAYglB,EAA2B4E,GACjG,MAAMnK,EAAUkK,GAAiC3pB,EAAIglB,EAAY4E,GACjE,OAAOlK,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASohB,GAAqC9pB,EAAY+pB,EAA8DC,GAE3H,OADchI,EAAWhiB,GACZsgB,qCAAqC,6BAA6B,EAC1E,8BACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,0BAA2B,CAACwJ,0BAA2BA,EAA2BC,oBAAqBA,IAGrJ,SAASC,GAA+BvhB,EAAmB1I,EAAY+pB,EAA8DC,GACxI,MAAMvK,EAAUqK,GAAqC9pB,EAAI+pB,EAA2BC,GACpF,OAAOtK,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGnD,SAASwhB,GAA2CC,EAAkCH,EAAiDI,EAAwBC,GAElK,OADcrI,IACD1B,qCAAqC,mCAAmC,EAChF,+BACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,2BAA4B,CAAC4J,iBAAkBA,EAAkBH,oBAAqBA,EAAqBI,OAAQA,EAAQC,SAAUA,IAGlL,SAASC,GAAqC5hB,EAAmByhB,EAAkCH,EAAiDI,EAAwBC,GAC/K,MAAM5K,EAAUyK,GAA2CC,EAAkBH,EAAqBI,EAAQC,GAC1G,OAAO3K,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAAS6hB,GAAuB9C,EAA+B+C,GAElE,OADcxI,IACD1B,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACkH,cAAeA,EAAe+C,QAASA,IAG9F,SAASC,GAAiB/hB,EAAmB+e,EAA+B+C,GAC/E,MAAM/K,EAAU8K,GAAuB9C,EAAe+C,GACtD,OAAO9K,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASgiB,GAAuBjD,EAA+BkD,GAElE,OADc3I,IACD1B,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACkH,cAAeA,EAAekD,QAASA,IAG9F,SAASC,GAAiBliB,EAAmB+e,EAA+BkD,GAC/E,MAAMlL,EAAUiL,GAAuBjD,EAAekD,GACtD,OAAOjL,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASmiB,GAA4B7qB,GAExC,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,oBAAoB,EACjE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,IAGtD,SAASuK,GAAsBpiB,EAAmB1I,GACrD,MAAMyf,EAAUoL,GAA4B7qB,GAC5C,OAAO0f,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASqiB,GAA2B/qB,GAEvC,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,IAGtD,SAASyK,GAAqBtiB,EAAmB1I,GACpD,MAAMyf,EAAUsL,GAA2B/qB,GAC3C,OAAO0f,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASuiB,GAAyBjrB,GAErC,OADcgiB,EAAWhiB,GACZsgB,qCAAqC,iBAAiB,EAC9D,sBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,IAGjE,SAAS2K,GAAmBxiB,EAAmB1I,GAClD,MAAMyf,EAAUwL,GAAyBjrB,GACzC,OAAO0f,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASyiB,GAAkCjP,EAA2Clc,EAAY6jB,GAErG,OADc7B,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,0BAA0B,EACvE,yBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,qBAAsB,CAACsD,YAAaA,IAGjF,SAASuH,GAA4B1iB,EAAmB1I,EAAY6jB,GACvE,MAAMpE,EAAU0L,GAAkCziB,EAAQwT,oBAAqBlc,EAAI6jB,GACnF,OAAOnE,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAAS2iB,GAA8B5D,EAA+B/G,GAEzE,OADcsB,IACD1B,qCAAqC,sBAAsB,EACnE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACkH,cAAeA,EAAe/G,UAAWA,IAGhG,SAAS4K,GAAwB5iB,EAAmB+e,EAA+B/G,GACtF,MAAMjB,EAAU4L,GAA8B5D,EAAe/G,GAC7D,OAAOhB,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS6iB,GAA2BvrB,EAAY0gB,EAA2B2H,GAE9E,OADcrG,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACG,UAAWA,EAAW2H,gBAAiBA,IAG9F,SAASmD,GAAqB9iB,EAAmB1I,EAAY0gB,EAA2B2H,GAC3F,MAAM5I,EAAU8L,GAA2BvrB,EAAI0gB,EAAW2H,GAC1D,OAAO3I,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS+iB,GAAuBzrB,EAAY0rB,GAE/C,OADc1J,EAAWhiB,GACZsgB,qCAAqC,eAAe,EAC5D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACmL,WAAYA,IAGnE,SAASC,GAAiBjjB,EAAmB1I,EAAY0rB,GAC5D,MAAMjM,EAAUgM,GAAuBzrB,EAAI0rB,GAC3C,OAAOhM,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASkjB,GAAsCnE,EAA8BzC,EAA2B6G,EAAqCC,GAEhJ,OADc9J,IACD1B,qCAAqC,8BAA8B,EAC3E,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACkH,cAAeA,EAAezC,WAAYA,EAAY6G,qBAAsBA,EAAsBC,gBAAiBA,IAG1K,SAASC,GAAgCrjB,EAAmB+e,EAA8BzC,EAA2B6G,EAAqCC,GAC7J,MAAMrM,EAAUmM,GAAsCnE,EAAezC,EAAY6G,EAAsBC,GACvG,OAAOpM,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASsjB,GAAsBhsB,EAAYisB,EAA+BC,GAE7E,OADclK,EAAWhiB,GACZsgB,qCAAqC,cAAc,EAC3D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC0L,YAAaA,EAAaC,qBAAsBA,IAGvG,SAASC,GAAgBzjB,EAAmB1I,EAAYisB,EAA+BC,GAC1F,MAAMzM,EAAUuM,GAAsBhsB,EAAIisB,EAAaC,GACvD,OAAOxM,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS0jB,GAAyBpsB,EAAYisB,GAEjD,OADcjK,EAAWhiB,GACZsgB,qCAAqC,iBAAiB,EAC9D,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC0L,YAAaA,IAGpE,SAASI,GAAmB3jB,EAAmB1I,EAAYisB,GAC9D,MAAMxM,EAAU2M,GAAyBpsB,EAAIisB,GAC7C,OAAOvM,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAAS4jB,GAAuCpQ,EAA2Clc,EAAYulB,GAE1G,OADcvD,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,+BAA+B,EAC5E,0BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,sBAAuB,CAACgF,UAAWA,IAGhF,SAASgH,GAAiC7jB,EAAmB1I,EAAYulB,GAC5E,MAAM9F,EAAU6M,GAAuC5jB,EAAQwT,oBAAqBlc,EAAIulB,GACxF,OAAO7F,EAAAA,EAAAA,IAAoCD,EAAS/W,GAGjD,SAAS8jB,GAAiCtQ,EAA2Clc,EAAY6jB,GAEpG,OADc7B,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,yBAAyB,EACtE,0BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,sBAAuB,CAACsD,YAAaA,IAGlF,SAAS4I,GAA2B/jB,EAAmB1I,EAAY6jB,GACtE,MAAMpE,EAAU+M,GAAiC9jB,EAAQwT,oBAAqBlc,EAAI6jB,GAClF,OAAOnE,EAAAA,EAAAA,IAAoCD,EAAS/W,GAGjD,SAASgkB,GAA0BxQ,GAEtC,OADc8F,IAAa9B,eAAehE,GAC7BoE,qCAAqC,kBAAkB,EAC/D,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,IAG5D,SAASoM,GAAoBjkB,GAChC,MAAM+W,EAAUiN,GAA0BhkB,EAAQwT,qBAClD,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASkkB,GAA2B1Q,EAA2Clc,GAElF,OADcgiB,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,mBAAmB,EAAO,GAAI,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,IAAK,IAG9H,SAASsM,GAAqBnkB,EAAmB1I,GACpD,MAAMyf,EAAUmN,GAA2BlkB,EAAQwT,oBAAqBlc,GACxE,OAAO0f,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASokB,GAA+B9sB,EAAYglB,EAA2B4E,EAAejH,GAEjG,OADcX,EAAWhiB,GACZsgB,qCAAqC,uBAAuB,EACpE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAACyE,WAAYA,EAAY4E,MAAOA,EAAOjH,YAAaA,IAG1G,SAASoK,GAAyBrkB,EAAmB1I,EAAYglB,EAA2B4E,EAAejH,GAC9G,MAAMlD,EAAUqN,GAA+B9sB,EAAIglB,EAAY4E,EAAOjH,GACtE,OAAOjD,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASskB,GAA2BhtB,EAAYitB,GAEnD,OADcjL,EAAWhiB,GACZsgB,qCAAqC,mBAAmB,EAChE,YACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,QAAS,CAAC0M,aAAcA,IAGrE,SAASC,GAAqBxkB,EAAmB1I,EAAYitB,GAChE,MAAMxN,EAAUuN,GAA2BhtB,EAAIitB,GAC/C,OAAOvN,EAAAA,EAAAA,IAAoBD,EAAS/W,GAGjC,SAASykB,GAA4BjR,EAA2Clc,GAEnF,OADcgiB,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,oBAAoB,EACjE,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,IAGlE,SAAS6M,GAAsB1kB,EAAmB1I,GACrD,MAAMyf,EAAU0N,GAA4BzkB,EAAQwT,oBAAqBlc,GACzE,OAAO0f,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAAS2kB,GAA+BrtB,EAAY2iB,GAEvD,OADcX,EAAWhiB,GACZsgB,qCAAqC,uBAAuB,EACpE,iCACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,6BAA8B,CAACoC,YAAaA,IAGzF,SAAS2K,GAAyB5kB,EAAmB1I,EAAY2iB,GACpE,MAAMlD,EAAU4N,GAA+BrtB,EAAI2iB,GACnD,OAAOjD,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGtD,SAAS6kB,GAAgCrR,EAA2Clc,EAAYsoB,EAA8BvF,GAEjI,OADcf,EAAWhiB,GAAIkgB,eAAehE,GAC/BoE,qCAAqC,wBAAwB,EACrE,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAAC+H,aAAcA,EAAcvF,aAAcA,IAGvG,SAASyK,GAA0B9kB,EAAmB1I,EAAYsoB,EAA8BvF,GACnG,MAAMtD,EAAU8N,GAAgC7kB,EAAQwT,oBAAqBlc,EAAIsoB,EAAcvF,GAC/F,OAAOrD,EAAAA,EAAAA,IAA4BD,EAAS/W,wVC/xBhD,SAAS+kB,EAAcC,GACnB,IAAIhmB,EAAOgmB,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAItO,EAAAA,EAAiB,WAAY,iBAAkB,sBAAuB1X,GAG9E,SAAS2X,EAAkBC,GAC9B,OAAOmO,IAAgBlO,OAAOD,GAG3B,SAASsO,EAA0BllB,EAAmB4W,GACzD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASiX,EAAkBL,GAC9B,OAAOmO,EAAcnO,EAAOqO,UAAU5T,OAAOuF,GAG1C,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASmX,EAAkBP,GAC9B,OAAOmO,EAAcnO,EAAOqO,UAAU7gB,SAGnC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB2N,GAC5B,OAAOD,EAAcC,GAAU1N,OAG5B,SAAS5B,EAAU1V,EAAmBglB,GACzC,MAAMjO,EAAUM,EAAgB2N,GAChC,OAAOhO,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASuX,EAAmB/D,GAC/B,OAAOuR,IAAgBvN,eAAehE,GAAqB8D,OAGxD,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAASmlB,EAAuB3R,EAA2C5F,EAAmBwX,GAEjG,OADcL,IAAgBvN,eAAehE,GAChCoE,qCAAqC,eAAe,EAC5D,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACjK,UAAWA,EAAWwX,WAAYA,IAGnG,SAASpX,EAAiBhO,EAAmB4N,EAAmBwX,GACnE,MAAMrO,EAAUoO,EAAuBnlB,EAAQwT,oBAAqB5F,EAAWwX,GAC/E,OAAOpO,EAAAA,EAAAA,IAAgCD,EAAS/W,wgBC3DpD,SAASqlB,EAAgBL,GACrB,IAAIhmB,EAAOgmB,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAItO,EAAAA,EAAiB,aAAc,WAAY,gBAAiB1X,GAGpE,SAAS2X,EAAkBC,GAC9B,OAAOyO,IAAkBxO,OAAOD,GAG7B,SAAS0O,EAAoBtlB,EAAmB4W,GACnD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASiX,EAAkBL,GAC9B,OAAOyO,EAAgBzO,EAAOqO,UAAU5T,OAAOuF,GAG5C,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASmX,EAAkBP,GAC9B,OAAOyO,EAAgBzO,EAAOqO,UAAU7gB,SAGrC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB2N,GAC5B,OAAOK,EAAgBL,GAAU1N,OAG9B,SAAS5B,EAAU1V,EAAmBglB,GACzC,MAAMjO,EAAUM,EAAgB2N,GAChC,OAAOhO,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASuX,EAAmB/D,GAC/B,OAAO6R,IAAkB7N,eAAehE,GAAqB8D,OAG1D,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASulB,EAAyB/R,EAA2C5F,EAAmBE,GAEnG,OADcuX,IAAkB7N,eAAehE,GAClCoE,qCAAqC,iBAAiB,EAC9D,gBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,YAAa,CAACjK,UAAWA,EAAWE,UAAWA,IAG5F,SAAS0X,EAAmBxlB,EAAmB4N,EAAmBE,GACrE,MAAMiJ,EAAUwO,EAAyBvlB,EAAQwT,oBAAqB5F,EAAWE,GACjF,OAAOkJ,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASylB,EAAyBjS,EAA2CkS,GAEhF,OADcL,IAAkB7N,eAAehE,GAClCoE,qCAAqC,iBAAiB,EAC9D,yBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,qBAAsB,CAAC6N,WAAYA,IAGhF,SAASC,EAAmB3lB,EAAmB0lB,GAClD,MAAM3O,EAAU0O,EAAyBzlB,EAAQwT,oBAAqBkS,GACtE,OAAO1O,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAAS4lB,EAAgCpS,EAA2C1F,EAAmB+X,GAE1G,OADcR,IAAkB7N,eAAehE,GAClCoE,qCAAqC,wBAAwB,EACrE,yBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,qBAAsB,CAAC/J,UAAWA,EAAW+X,YAAaA,IAGvG,SAASC,EAA0B9lB,EAAmB8N,EAAmB+X,GAC5E,MAAM9O,EAAU6O,EAAgC5lB,EAAQwT,oBAAqB1F,EAAW+X,GACxF,OAAO7O,EAAAA,EAAAA,IAAmCD,EAAS/W,GAGhD,SAAS+lB,EAAuBvS,EAA2C5F,EAAmB8X,GAEjG,OADcL,IAAkB7N,eAAehE,GAClCoE,qCAAqC,eAAe,EAC5D,gBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,YAAa,CAACjK,UAAWA,EAAW8X,WAAYA,IAG7F,SAASM,EAAiBhmB,EAAmB4N,EAAmB8X,GACnE,MAAM3O,EAAUgP,EAAuB/lB,EAAQwT,oBAAqB5F,EAAW8X,GAC/E,OAAO1O,EAAAA,EAAAA,IAA0BD,EAAS/W,uIC/F9C,SAASimB,EAAmB3uB,GACxB,IAAI0H,EAAO1H,EAAM,CAAEiiB,GAAIjiB,GAAO,KAC9B,OAAO,IAAIof,EAAAA,EAAiB,gBAAiB,eAAgB,oBAAqB1X,GAO/E,SAASknB,EAAwBlmB,EAAmB4W,GACvD,MAAMG,EALH,SAA2BH,GAC9B,OAAOqP,IAAqBpP,OAAOD,GAInBD,CAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAA4BD,EAAS/W,GAOzC,SAASkX,EAAYlX,EAAmB4W,GAC3C,MAAMG,EALH,SAA2BH,GAC9B,OAAOqP,EAAmBrP,EAAO2C,IAAIlI,OAAOuF,GAI5BK,CAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAA4BD,EAAS/W,GAOzC,SAASoX,EAAYpX,EAAmB4W,GAC3C,MAAMG,EALH,SAA2BH,GAC9B,OAAOqP,EAAmBrP,EAAO2C,IAAInV,SAIrB+S,CAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAqBvC,SAASmmB,EAAyB3S,EAA2C4S,GAEhF,OADcH,IAAqBzO,eAAehE,GACrCoE,qCAAqC,iBAAiB,EAC9D,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACuO,WAAYA,IAG3E,SAASC,EAAmBrmB,EAAmBomB,GAClD,MAAMrP,EAAUoP,EAAyBnmB,EAAQwT,oBAAqB4S,GACtE,OAAOpP,EAAAA,EAAAA,IAA8BD,EAAS/W,GAU3C,SAASsmB,EAActmB,EAAmB1I,EAAYivB,GACzD,MAAMxP,EARH,SAA6Bzf,EAAYivB,GAE5C,OADcN,EAAmB3uB,GACpBsgB,qCAAqC,YAAY,EACzD,oBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,gBAAiB,CAAC0O,kBAAmBA,IAIrEC,CAAoBlvB,EAAIivB,GACxC,OAAOvP,EAAAA,EAAAA,IAA4BD,EAAS/W,GAsBzC,SAASymB,EAAiBzmB,EAAmB1I,EAAYivB,GAC5D,MAAMxP,EARH,SAAgCzf,EAAYivB,GAE/C,OADcN,EAAmB3uB,GACpBsgB,qCAAqC,eAAe,EAC5D,oBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,gBAAiB,CAAC0O,kBAAmBA,IAIrEG,CAAuBpvB,EAAIivB,GAC3C,OAAOvP,EAAAA,EAAAA,IAA4BD,EAAS/W,GA0DzC,SAAS2mB,EAAuB3mB,EAAmB1I,EAAYsvB,GAClE,MAAM7P,EARH,SAAsCzf,EAAYsvB,GAErD,OADcX,EAAmB3uB,GACpBsgB,qCAAqC,qBAAqB,EAClE,oBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,gBAAiB,CAAC+O,wBAAyBA,IAI3EC,CAA6BvvB,EAAIsvB,GACjD,OAAO5P,EAAAA,EAAAA,IAA4BD,EAAS/W,isCC3JhD,SAAS8mB,EAAcC,GACnB,IAAI/nB,EAAO+nB,EAAiB,CAAEC,cAAeD,GAAkB,KAC/D,OAAO,IAAIrQ,EAAAA,EAAiB,WAAY,UAAW,eAAgB1X,GAGhE,SAAS2X,EAAkBC,GAC9B,OAAOkQ,IAAgBjQ,OAAOD,GAG3B,SAASqQ,EAAmBjnB,EAAmB4W,GAClD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASiX,EAAkBL,GAC9B,OAAOkQ,EAAclQ,EAAOoQ,eAAe3V,OAAOuF,GAG/C,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASmX,EAAkBP,GAC9B,OAAOkQ,EAAclQ,EAAOoQ,eAAe5iB,SAGxC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB0P,GAC5B,OAAOD,EAAcC,GAAezP,OAGjC,SAAS5B,EAAU1V,EAAmB+mB,GACzC,MAAMhQ,EAAUM,EAAgB0P,GAChC,OAAO/P,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASuX,EAAmB/D,GAC/B,OAAOsT,IAAgBtP,eAAehE,GAAqB8D,OAGxD,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASknB,EAAyBC,EAAwBC,EAAuBC,GAEpF,OADcP,IACDlP,qCAAqC,iBAAiB,EAC9D,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACsP,OAAQA,EAAQC,MAAOA,EAAOC,aAAcA,IAG1G,SAASC,EAAmBtnB,EAAmBmnB,EAAwBC,EAAuBC,GACjG,MAAMtQ,EAAUmQ,EAAyBC,EAAQC,EAAOC,GACxD,OAAOrQ,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASyZ,EAAkBjG,EAA2C+T,GAEzE,OADcT,IAAgBtP,eAAehE,GAChCoE,qCAAqC,UAAU,EACvD,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAAC0P,oBAAqBA,IAG/E,SAAS5N,EAAY3Z,EAAmBunB,GAC3C,MAAMxQ,EAAU0C,EAAkBzZ,EAAQwT,oBAAqB+T,GAC/D,OAAOvQ,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASwnB,EAAqChU,EAA2CiU,EAAgCC,GAE5H,OADcZ,IAAgBtP,eAAehE,GAChCoE,qCAAqC,6BAA6B,EAC1E,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,CAAC4P,WAAYA,EAAYC,uBAAwBA,IAGlH,SAASC,EAA+B3nB,EAAmBynB,EAAgCC,GAC9F,MAAM3Q,EAAUyQ,EAAqCxnB,EAAQwT,oBAAqBiU,EAAYC,GAC9F,OAAO1Q,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAAS4nB,EAAkCpU,EAA2CqU,GAEzF,OADcf,IAAgBtP,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACgQ,8BAA+BA,IAGjG,SAASC,EAA4B9nB,EAAmB6nB,GAC3D,MAAM9Q,EAAU6Q,EAAkC5nB,EAAQwT,oBAAqBqU,GAC/E,OAAO7Q,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAAS+nB,IAEZ,OADcjB,IACDlP,qCAAqC,2BAA2B,EACxE,4BACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,wBAAyB,IAGvE,SAASmQ,EAA6BhoB,GACzC,MAAM+W,EAAUgR,IAChB,OAAO/Q,EAAAA,EAAAA,IAAoCD,EAAS/W,GAGjD,SAASioB,EAAyBC,GAErC,OADcpB,IACDlP,qCAAqC,iBAAiB,EAC9D,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACqQ,YAAaA,IAG3E,SAASC,EAAmBnoB,EAAmBkoB,GAClD,MAAMnR,EAAUkR,EAAyBC,GACzC,OAAOlR,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASooB,EAAqC5U,EAA2C6U,EAAsB1N,GAElH,OADcmM,IAAgBtP,eAAehE,GAChCoE,qCAAqC,6BAA6B,EAC1E,6BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,yBAA0B,CAACwQ,WAAYA,EAAY1N,aAAcA,IAG9G,SAAS2N,EAA+BtoB,EAAmBqoB,EAAsB1N,GACpF,MAAM5D,EAAUqR,EAAqCpoB,EAAQwT,oBAAqB6U,EAAY1N,GAC9F,OAAO3D,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAASuoB,EAAiC/U,EAA2CgV,EAAwBC,EAA2BC,GAE3I,OADc5B,IAAgBtP,eAAehE,GAChCoE,qCAAqC,yBAAyB,EACtE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAC2Q,OAAQA,EAAQC,UAAWA,EAAWC,QAASA,IAGrH,SAASC,EAA2B3oB,EAAmBwoB,EAAwBC,EAA2BC,GAC7G,MAAM3R,EAAUwR,EAAiCvoB,EAAQwT,oBAAqBgV,EAAQC,EAAWC,GACjG,OAAO1R,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS4oB,EAAuCpV,EAA2CqV,EAA6BpB,GAE3H,OADcX,IAAgBtP,eAAehE,GAChCoE,qCAAqC,+BAA+B,EAC5E,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACgR,QAASA,EAASpB,WAAYA,IAGpG,SAASqB,EAAiC9oB,EAAmB6oB,EAA6BpB,GAC7F,MAAM1Q,EAAU6R,EAAuC5oB,EAAQwT,oBAAqBqV,EAASpB,GAC7F,OAAOzQ,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS+oB,EAA8CvV,EAA2CwV,EAAoCnV,EAAmBoV,GAE5J,OADcnC,IAAgBtP,eAAehE,GAChCoE,qCAAqC,sCAAsC,EACnF,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACmR,kBAAmBA,EAAmBnV,UAAWA,EAAWoV,6BAA8BA,IAGhK,SAASC,EAAwClpB,EAAmBgpB,EAAoCnV,EAAmBoV,GAC9H,MAAMlS,EAAUgS,EAA8C/oB,EAAQwT,oBAAqBwV,EAAmBnV,EAAWoV,GACzH,OAAOjS,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASmpB,EAAqC3V,EAA2CK,EAAmBuV,GAE/G,OADctC,IAAgBtP,eAAehE,GAChCoE,qCAAqC,6BAA6B,EAC1E,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAChE,UAAWA,EAAWuV,kCAAmCA,IAG/H,SAASC,EAA+BrpB,EAAmB6T,EAAmBuV,GACjF,MAAMrS,EAAUoS,EAAqCnpB,EAAQwT,oBAAqBK,EAAWuV,GAC7F,OAAOpS,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASspB,EAA2B9V,EAA2CuT,EAAuBwC,GAEzG,OADczC,EAAcC,GAAevP,eAAehE,GAC7CoE,qCAAqC,mBAAmB,EAChE,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC0R,WAAYA,IAG3E,SAASC,EAAqBxpB,EAAmB+mB,EAAuBwC,GAC3E,MAAMxS,EAAUuS,EAA2BtpB,EAAQwT,oBAAqBuT,EAAewC,GACvF,OAAOvS,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASypB,EAAkCjW,EAA2CK,GAEzF,OADciT,IAAgBtP,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAChE,UAAWA,IAGjF,SAAS6V,EAA4B1pB,EAAmB6T,GAC3D,MAAMkD,EAAU0S,EAAkCzpB,EAAQwT,oBAAqBK,GAC/E,OAAOmD,EAAAA,EAAAA,IAAqCD,EAAS/W,+qBC3MzD,SAAS2pB,EAAkBryB,GACvB,IAAI0H,EAAO1H,EAAM,CAAEiiB,GAAIjiB,GAAO,KAC9B,OAAO,IAAIof,EAAAA,EAAiB,eAAgB,cAAe,mBAAoB1X,GAG5E,SAAS2X,EAAkBC,GAC9B,OAAO+S,IAAoB9S,OAAOD,GAG/B,SAASgT,EAAuB5pB,EAAmB4W,GACtD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGxC,SAASiX,EAAkBL,GAC9B,OAAO+S,EAAkB/S,EAAO2C,IAAIlI,OAAOuF,GAGxC,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGxC,SAASmX,EAAkBP,GAC9B,OAAO+S,EAAkB/S,EAAO2C,IAAInV,SAGjC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB/f,GAC5B,OAAOqyB,EAAkBryB,GAAIggB,OAG1B,SAAS5B,EAAU1V,EAAmB1I,GACzC,MAAMyf,EAAUM,EAAgB/f,GAChC,OAAO0f,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGxC,SAASuX,EAAmB/D,GAC/B,OAAOmW,IAAoBnS,eAAehE,GAAqB8D,OAG5D,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAA6BD,EAAS/W,GAG1C,SAASyZ,EAAkBjG,EAA2CqW,GAEzE,OADcF,IAAoBnS,eAAehE,GACpCoE,qCAAqC,UAAU,EACvD,mBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,eAAgB,CAACgS,eAAgBA,IAG9E,SAASlQ,EAAY3Z,EAAmB6pB,GAC3C,MAAM9S,EAAU0C,EAAkBzZ,EAAQwT,oBAAqBqW,GAC/D,OAAO7S,EAAAA,EAAAA,IAA6BD,EAAS/W,GAG1C,SAAS8pB,EAA+BtW,EAA2Clc,EAAYyyB,GAElG,OADcJ,EAAkBryB,GAAIkgB,eAAehE,GACtCoE,qCAAqC,uBAAuB,EACpE,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACkS,WAAYA,IAG9E,SAASC,EAAyBhqB,EAAmB1I,EAAYyyB,GACpE,MAAMhT,EAAU+S,EAA+B9pB,EAAQwT,oBAAqBlc,EAAIyyB,GAChF,OAAO/S,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAASiqB,EAA+BzW,EAA2Clc,EAAY4yB,GAElG,OADcP,EAAkBryB,GAAIkgB,eAAehE,GACtCoE,qCAAqC,uBAAuB,EACpE,uBACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,mBAAoB,CAACqS,iBAAkBA,IAGnF,SAASC,EAAyBnqB,EAAmB1I,EAAY4yB,GACpE,MAAMnT,EAAUkT,EAA+BjqB,EAAQwT,oBAAqBlc,EAAI4yB,GAChF,OAAOlT,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAASoqB,EAAkC5W,EAA2Clc,EAAY4yB,GAErG,OADcP,EAAkBryB,GAAIkgB,eAAehE,GACtCoE,qCAAqC,0BAA0B,EACvE,uBACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,mBAAoB,CAACqS,iBAAkBA,IAGnF,SAASG,EAA4BrqB,EAAmB1I,EAAY4yB,GACvE,MAAMnT,EAAUqT,EAAkCpqB,EAAQwT,oBAAqBlc,EAAI4yB,GACnF,OAAOlT,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAASsqB,EAAkChzB,EAAY4yB,GAE1D,OADcP,EAAkBryB,GACnBsgB,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACqS,iBAAkBA,IAGlJ,SAASK,EAA4BvqB,EAAmB1I,EAAY4yB,GACvE,MAAMnT,EAAUuT,EAAkChzB,EAAI4yB,GACtD,OAAOlT,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASwqB,EAAiClzB,EAAYoqB,EAAwB+I,EAA4BC,GAE7G,OADcf,EAAkBryB,GACnBsgB,qCAAqC,yBAAyB,EACtE,mBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,eAAgB,CAAC6J,OAAQA,EAAQ+I,UAAWA,EAAWC,oBAAqBA,IAGzH,SAASC,EAA2B3qB,EAAmB1I,EAAYoqB,EAAwB+I,EAA4BC,GAC1H,MAAM3T,EAAUyT,EAAiClzB,EAAIoqB,EAAQ+I,EAAWC,GACxE,OAAO1T,EAAAA,EAAAA,IAA2BD,EAAS/W,g4ICrH/C,SAAS4qB,EAAc5F,GACnB,IAAIhmB,EAAOgmB,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAItO,EAAAA,EAAiB,WAAY,UAAW,eAAgB1X,GAGhE,SAAS2X,EAAkBC,GAC9B,OAAOgU,IAAgB/T,OAAOD,GAG3B,SAASiU,EAAmB7qB,EAAmB4W,GAClD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASiX,EAAkBL,GAC9B,OAAOgU,EAAchU,EAAOqO,UAAU5T,OAAOuF,GAG1C,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASmX,EAAkBP,GAC9B,OAAOgU,EAAchU,EAAOqO,UAAU7gB,SAGnC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB2N,GAC5B,OAAO4F,EAAc5F,GAAU1N,OAG5B,SAAS5B,EAAU1V,EAAmBglB,GACzC,MAAMjO,EAAUM,EAAgB2N,GAChC,OAAOhO,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGpC,SAASuX,EAAmB/D,GAC/B,OAAOoX,IAAgBpT,eAAehE,GAAqB8D,OAGxD,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASyZ,EAAkBjG,EAA2CsX,GAEzE,OADcF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,UAAU,EACvD,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACiT,sBAAuBA,IAGjF,SAASnR,EAAY3Z,EAAmB8qB,GAC3C,MAAM/T,EAAU0C,EAAkBzZ,EAAQwT,oBAAqBsX,GAC/D,OAAO9T,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAAS+qB,EAAuBvX,EAA2CsX,GAE9E,OADcF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,eAAe,EAC5D,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACiT,sBAAuBA,IAGxF,SAASE,EAAiBhrB,EAAmB8qB,GAChD,MAAM/T,EAAUgU,EAAuB/qB,EAAQwT,oBAAqBsX,GACpE,OAAO9T,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAASirB,EAA8BzX,EAA2CwR,EAAkBpX,EAAmBsd,EAAmBC,EAAqDC,GAElM,OADcR,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,sBAAsB,EACnE,6BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,yBAA0B,CAACjK,UAAWA,EAAWsd,UAAWA,EAAWC,wBAAyBA,EAAyBC,4BAA6BA,IAGnM,SAASC,EAAwBrrB,EAAmBglB,EAAkBpX,EAAmBsd,EAAmBC,EAAqDC,GACpK,MAAMrU,EAAUkU,EAA8BjrB,EAAQwT,oBAAqBwR,EAAUpX,EAAWsd,EAAWC,EAAyBC,GACpI,OAAOpU,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAASsrB,EAAyD9X,EAA2CwR,EAAkB6E,GAElI,OADce,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,iDAAiD,EAC9F,kDACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,8CAA+C,CAACgS,eAAgBA,IAG7G,SAAS0B,EAAmDvrB,EAAmBglB,EAAkB6E,GACpG,MAAM9S,EAAUuU,EAAyDtrB,EAAQwT,oBAAqBwR,EAAU6E,GAChH,OAAO7S,EAAAA,EAAAA,IAA4DD,EAAS/W,GAGzE,SAASwrB,EAAwChY,EAA2CwR,EAAkBpX,EAAmBud,GAEpI,OADcP,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,gCAAgC,EAC7E,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,EAAWud,wBAAyBA,IAG/G,SAASM,EAAkCzrB,EAAmBglB,EAAkBpX,EAAmBud,GACtG,MAAMpU,EAAUyU,EAAwCxrB,EAAQwT,oBAAqBwR,EAAUpX,EAAWud,GAC1G,OAAOnU,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAAS0rB,EAA0ClY,EAA2CwR,EAAkBpX,EAAmB+d,GAEtI,OADcf,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,kCAAkC,EAC/E,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,EAAW+d,oCAAqCA,IAG3H,SAASC,EAAoC5rB,EAAmBglB,EAAkBpX,EAAmB+d,GACxG,MAAM5U,EAAU2U,EAA0C1rB,EAAQwT,oBAAqBwR,EAAUpX,EAAW+d,GAC5G,OAAO3U,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAAS6rB,EAAoBrY,EAA2C5F,EAAmBke,EAAsBC,EAAkCje,GAEtJ,OADc8c,IAAgBpT,eAAehE,GAChCoE,qCAAqC,YAAY,EACzD,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,EAAWke,WAAYA,EAAYC,iBAAkBA,EAAkBje,UAAWA,IAG7J,SAASke,EAAchsB,EAAmB4N,EAAmBke,EAAsBC,EAAkCje,GACxH,MAAMiJ,EAAU8U,EAAoB7rB,EAAQwT,oBAAqB5F,EAAWke,EAAYC,EAAkBje,GAC1G,OAAOkJ,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASisB,EAAmBzY,EAA2C5F,EAAmBE,EAAmBge,GAEhH,OADclB,IAAgBpT,eAAehE,GAChCoE,qCAAqC,WAAW,EACxD,6BACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,yBAA0B,CAACjK,UAAWA,EAAWE,UAAWA,EAAWge,WAAYA,IAG/H,SAASI,EAAalsB,EAAmB4N,EAAmBE,EAAmBge,GAClF,MAAM/U,EAAUkV,EAAmBjsB,EAAQwT,oBAAqB5F,EAAWE,EAAWge,GACtF,OAAO9U,EAAAA,EAAAA,IAAuCD,EAAS/W,GAGpD,SAASmsB,EAAkC3Y,EAA2CsY,EAAsB1F,GAE/G,OADcwE,IAAgBpT,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACiU,WAAYA,EAAY1F,WAAYA,IAG1G,SAASgG,EAA4BpsB,EAAmB8rB,EAAsB1F,GACjF,MAAMrP,EAAUoV,EAAkCnsB,EAAQwT,oBAAqBsY,EAAY1F,GAC3F,OAAOpP,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASqsB,EAAkC7Y,EAA2C5F,EAAmBE,EAAmB4X,EAAoB4G,GAEnJ,OADc1B,IAAgBpT,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,2BACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,EAAW4X,WAAYA,EAAY4G,mBAAoBA,IAG7J,SAASC,EAA4BvsB,EAAmB4N,EAAmBE,EAAmB4X,EAAoB4G,GACrH,MAAMvV,EAAUsV,EAAkCrsB,EAAQwT,oBAAqB5F,EAAWE,EAAW4X,EAAY4G,GACjH,OAAOtV,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASwsB,EAA8BhZ,EAA2C5F,EAAmBE,EAAmBic,EAA4BuC,GAEvJ,OADc1B,IAAgBpT,eAAehE,GAChCoE,qCAAqC,sBAAsB,EACnE,2BACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,EAAWic,WAAYA,EAAYuC,mBAAoBA,IAG7J,SAASG,EAAwBzsB,EAAmB4N,EAAmBE,EAAmBic,EAA4BuC,GACzH,MAAMvV,EAAUyV,EAA8BxsB,EAAQwT,oBAAqB5F,EAAWE,EAAWic,EAAYuC,GAC7G,OAAOtV,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS0sB,EAAoClZ,EAA2CqW,GAE3F,OADce,IAAgBpT,eAAehE,GAChCoE,qCAAqC,4BAA4B,EACzE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACgS,eAAgBA,IAGjF,SAAS8C,EAA8B3sB,EAAmB6pB,GAC7D,MAAM9S,EAAU2V,EAAoC1sB,EAAQwT,oBAAqBqW,GACjF,OAAO7S,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAASib,EAA8BzH,EAA2CsY,EAAsBc,EAA0BjS,GAErI,OADciQ,IAAgBpT,eAAehE,GAChCoE,qCAAqC,sBAAsB,EACnE,8BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,0BAA2B,CAACiU,WAAYA,EAAYc,QAASA,EAASjS,aAAcA,IAGjI,SAASU,EAAwBrb,EAAmB8rB,EAAsBc,EAA0BjS,GACvG,MAAM5D,EAAUkE,EAA8Bjb,EAAQwT,oBAAqBsY,EAAYc,EAASjS,GAChG,OAAO3D,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGrD,SAAS6sB,EAAmBrZ,EAA2CsX,GAE1E,OADcF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,WAAW,EACxD,eACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,WAAY,CAACiT,sBAAuBA,IAGhF,SAASgC,EAAa9sB,EAAmB8qB,GAC5C,MAAM/T,EAAU8V,EAAmB7sB,EAAQwT,oBAAqBsX,GAChE,OAAO9T,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAAS+sB,EAAoCC,GAEhD,OADcpC,IACDhT,qCAAqC,4BAA4B,EACzE,kCACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,8BAA+B,CAACmV,6BAA8BA,IAG3G,SAASC,EAA8BjtB,EAAmBgtB,GAC7D,MAAMjW,EAAUgW,EAAoCC,GACpD,OAAOhW,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGvD,SAASktB,EAA+B1Z,EAA2CsX,GAEtF,OADcF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,uBAAuB,EACpE,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACiT,sBAAuBA,IAGjF,SAASqC,EAAyBntB,EAAmB8qB,GACxD,MAAM/T,EAAUmW,EAA+BltB,EAAQwT,oBAAqBsX,GAC5E,OAAO9T,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASotB,EAA8Btf,EAAmBuf,EAAcC,GAE3E,OADc1C,IACDhT,qCAAqC,sBAAsB,EACnE,6BACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,yBAA0B,CAAC/J,UAAWA,EAAWuf,KAAMA,EAAMC,IAAKA,IAGhH,SAASC,EAAwBvtB,EAAmB8N,EAAmBuf,EAAcC,GACxF,MAAMvW,EAAUqW,EAA8Btf,EAAWuf,EAAMC,GAC/D,OAAOtW,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASwtB,EAAiCha,EAA2CsY,EAAsB2B,GAE9G,OADc7C,IAAgBpT,eAAehE,GAChCoE,qCAAqC,yBAAyB,EACtE,+BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,2BAA4B,CAACiU,WAAYA,EAAY2B,8BAA+BA,IAGjI,SAASC,EAA2B1tB,EAAmB8rB,EAAsB2B,GAChF,MAAM1W,EAAUyW,EAAiCxtB,EAAQwT,oBAAqBsY,EAAY2B,GAC1F,OAAOzW,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGtD,SAAS2tB,EAAkCna,EAA2Coa,GAEzF,OADchD,IAAgBpT,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,0BACD,OAAQ,CAACpL,YAAa,MAAOqL,aAAc,sBAAuB,CAAC+V,yBAA0BA,IAG9F,SAASC,EAA4B7tB,EAAmB4tB,GAC3D,MAAM7W,EAAU4W,EAAkC3tB,EAAQwT,oBAAqBoa,GAC/E,OAAO5W,EAAAA,EAAAA,IAAoCD,EAAS/W,GAGjD,SAAS8tB,GAA8Bta,GAE1C,OADcoX,IAAgBpT,eAAehE,GAChCoE,qCAAqC,sBAAsB,EAAO,GAAI,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,IAAK,IAGjI,SAASkW,GAAwB/tB,GACpC,MAAM+W,EAAU+W,GAA8B9tB,EAAQwT,qBACtD,OAAOwD,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASguB,GAA+Bxa,GAE3C,OADcoX,IAAgBpT,eAAehE,GAChCoE,qCAAqC,uBAAuB,EAAO,GAAI,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,IAAK,IAGlI,SAASoW,GAAyBjuB,GACrC,MAAM+W,EAAUiX,GAA+BhuB,EAAQwT,qBACvD,OAAOwD,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGrC,SAASkuB,GAA6B1a,EAA2CsY,GAEpF,OADclB,IAAgBpT,eAAehE,GAChCoE,qCAAqC,qBAAqB,EAClE,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACiU,WAAYA,IAG5E,SAASqC,GAAuBnuB,EAAmB8rB,GACtD,MAAM/U,EAAUmX,GAA6BluB,EAAQwT,oBAAqBsY,GAC1E,OAAO9U,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASouB,GAAyC5a,EAA2CsY,GAEhG,OADclB,IAAgBpT,eAAehE,GAChCoE,qCAAqC,iCAAiC,EAC9E,iCACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACiU,WAAYA,IAGxF,SAASuC,GAAmCruB,EAAmB8rB,GAClE,MAAM/U,EAAUqX,GAAyCpuB,EAAQwT,oBAAqBsY,GACtF,OAAO9U,EAAAA,EAAAA,IAA2CD,EAAS/W,GAGxD,SAASsuB,GAAoCC,GAEhD,OADc3D,IACDhT,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAAC0W,WAAYA,IAG9I,SAASC,GAA8BxuB,EAAmBuuB,GAC7D,MAAMxX,EAAUuX,GAAoCC,GACpD,OAAOvX,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASyuB,GAAqCC,GAEjD,OADc9D,IACDhT,qCAAqC,6BAA6B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAAC6W,UAAWA,IAG9I,SAASC,GAA+B3uB,EAAmB0uB,GAC9D,MAAM3X,EAAU0X,GAAqCC,GACrD,OAAO1X,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS4uB,GAAkCC,GAE9C,OADcjE,IACDhT,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACgX,QAASA,IAGzI,SAASC,GAA4B9uB,EAAmB6uB,GAC3D,MAAM9X,EAAU6X,GAAkCC,GAClD,OAAO7X,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS+uB,GAAyCC,GAErD,OADcpE,IACDhT,qCAAqC,iCAAiC,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACmX,mBAAoBA,IAG3J,SAASC,GAAmCjvB,EAAmBgvB,GAClE,MAAMjY,EAAUgY,GAAyCC,GACzD,OAAOhY,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASkvB,GAAuC1b,EAA2C1F,GAE9F,OADc8c,IAAgBpT,eAAehE,GAChCoE,qCAAqC,+BAA+B,EAC5E,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAAC/J,UAAWA,IAG9E,SAASqhB,GAAiCnvB,EAAmB8N,GAChE,MAAMiJ,EAAUmY,GAAuClvB,EAAQwT,oBAAqB1F,GACpF,OAAOkJ,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAASovB,GAAqB5b,EAA2CgV,EAAuB6G,EAAqC3G,EAAwBjb,EAAsC6hB,EAAoCC,GAE1O,OADc3E,IAAgBpT,eAAehE,GAChCoE,qCAAqC,aAAa,EAC1D,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC2Q,OAAQA,EAAQ6G,qBAAsBA,EAAsB3G,QAASA,EAASjb,sBAAuBA,EAAuB6hB,oBAAqBA,EAAqBC,SAAUA,IAG/O,SAASC,GAAexvB,EAAmBwoB,EAAuB6G,EAAqC3G,EAAwBjb,EAAsC6hB,EAAoCC,GAC5M,MAAMxY,EAAUqY,GAAqBpvB,EAAQwT,oBAAqBgV,EAAQ6G,EAAsB3G,EAASjb,EAAuB6hB,EAAqBC,GACrJ,OAAOvY,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASyvB,GAAoCjc,EAA2CqV,EAAmBjb,GAE9G,OADcgd,IAAgBpT,eAAehE,GAChCoE,qCAAqC,4BAA4B,EACzE,gCACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,4BAA6B,CAACgR,QAASA,EAASjb,UAAWA,IAGxG,SAAS8hB,GAA8B1vB,EAAmB6oB,EAAmBjb,GAChF,MAAMmJ,EAAU0Y,GAAoCzvB,EAAQwT,oBAAqBqV,EAASjb,GAC1F,OAAOoJ,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGvD,SAAS2vB,GAA2Bnc,EAA2Coc,EAAwC9D,EAAsB+D,EAAkBzJ,EAA4B0J,EAA2DC,EAA0DC,EAA2CC,GAE9V,OADcrF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,mBAAmB,EAChE,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC+X,cAAeA,EAAe9D,WAAYA,EAAY+D,WAAYA,EAAYzJ,WAAYA,EAAY0J,wBAAyBA,EAAyBC,wCAAyCA,EAAyCC,yBAA0BA,EAA0BC,oCAAqCA,IAGlY,SAASC,GAAqBlwB,EAAmB4vB,EAAwC9D,EAAsB+D,EAAkBzJ,EAA4B0J,EAA2DC,EAA0DC,EAA2CC,GAChU,MAAMlZ,EAAU4Y,GAA2B3vB,EAAQwT,oBAAqBoc,EAAe9D,EAAY+D,EAAYzJ,EAAY0J,EAAyBC,EAAyCC,EAA0BC,GACvN,OAAOjZ,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASmwB,GAAqC3c,EAA2CwR,EAAkBpX,EAAmBwiB,EAAgBC,GAEjJ,OADczF,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,6BAA6B,EAC1E,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACjK,UAAWA,EAAWwiB,OAAQA,EAAQC,mBAAoBA,IAG7H,SAASC,GAA+BtwB,EAAmBglB,EAAkBpX,EAAmBwiB,EAAgBC,GACnH,MAAMtZ,EAAUoZ,GAAqCnwB,EAAQwT,oBAAqBwR,EAAUpX,EAAWwiB,EAAQC,GAC/G,OAAOrZ,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAASuwB,GAA6C3iB,EAAmB4iB,GAE5E,OADc5F,IACDhT,qCAAqC,qCAAqC,EAClF,wBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACjK,UAAWA,EAAW4iB,kBAAmBA,IAG7G,SAASC,GAAuCzwB,EAAmB4N,EAAmB4iB,GACzF,MAAMzZ,EAAUwZ,GAA6C3iB,EAAW4iB,GACxE,OAAOxZ,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAAS0wB,GAAgCld,EAA2C5F,EAAmBE,EAAmBic,EAA4B4G,EAA2BC,GAEpL,OADchG,IAAgBpT,eAAehE,GAChCoE,qCAAqC,wBAAwB,EACrE,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACjK,UAAWA,EAAWE,UAAWA,EAAWic,WAAYA,EAAY4G,UAAWA,EAAWC,UAAWA,IAGxK,SAASC,GAA0B7wB,EAAmB4N,EAAmBE,EAAmBic,EAA4B4G,EAA2BC,GACtJ,MAAM7Z,EAAU2Z,GAAgC1wB,EAAQwT,oBAAqB5F,EAAWE,EAAWic,EAAY4G,EAAWC,GAC1H,OAAO5Z,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAAS8wB,GAA4Btd,EAA2C5F,EAAmBE,EAAmBijB,GAEzH,OADcnG,IAAgBpT,eAAehE,GAChCoE,qCAAqC,oBAAoB,EACjE,0BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,sBAAuB,CAACjK,UAAWA,EAAWE,UAAWA,EAAWkjB,oBAAqBD,IAGtI,SAASE,GAAsBjxB,EAAmB4N,EAAmBE,EAAmBijB,GAC3F,MAAMha,EAAU+Z,GAA4B9wB,EAAQwT,oBAAqB5F,EAAWE,EAAWijB,GAC/F,OAAO/Z,EAAAA,EAAAA,IAAoCD,EAAS/W,GAGjD,SAASkxB,GAA6B1d,EAA2CwR,GAEpF,OADc4F,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,qBAAqB,EAClE,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,IAG/D,SAASsZ,GAAuBnxB,EAAmBglB,GACtD,MAAMjO,EAAUma,GAA6BlxB,EAAQwT,oBAAqBwR,GAC1E,OAAOhO,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAASoxB,GAA4B5d,EAA2C5F,EAAmBE,EAAmB4X,GAEzH,OADckF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,oBAAoB,EACjE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,EAAW4X,WAAYA,IAG9H,SAAS2L,GAAsBrxB,EAAmB4N,EAAmBE,EAAmB4X,GAC3F,MAAM3O,EAAUqa,GAA4BpxB,EAAQwT,oBAAqB5F,EAAWE,EAAW4X,GAC/F,OAAO1O,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASsxB,GAAwB9d,EAA2C5F,EAAmBE,EAAmBic,GAErH,OADca,IAAgBpT,eAAehE,GAChCoE,qCAAqC,gBAAgB,EAC7D,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,EAAWic,WAAYA,IAG9H,SAASwH,GAAkBvxB,EAAmB4N,EAAmBE,EAAmBic,GACvF,MAAMhT,EAAUua,GAAwBtxB,EAAQwT,oBAAqB5F,EAAWE,EAAWic,GAC3F,OAAO/S,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASwxB,GAA4Bhe,EAA2CqW,GAEnF,OADce,IAAgBpT,eAAehE,GAChCoE,qCAAqC,oBAAoB,EACjE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACgS,eAAgBA,IAGtF,SAAS4H,GAAsBzxB,EAAmB6pB,GACrD,MAAM9S,EAAUya,GAA4BxxB,EAAQwT,oBAAqBqW,GACzE,OAAO7S,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS0xB,GAA8Ble,EAA2C5F,EAAmB+jB,EAAqD7jB,GAE7J,OADc8c,IAAgBpT,eAAehE,GAChCoE,qCAAqC,sBAAsB,EACnE,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,EAAW+jB,qBAAsBA,EAAsB7jB,UAAWA,IAG7I,SAAS8jB,GAAwB5xB,EAAmB4N,EAAmB+jB,EAAqD7jB,GAC/H,MAAMiJ,EAAU2a,GAA8B1xB,EAAQwT,oBAAqB5F,EAAW+jB,EAAsB7jB,GAC5G,OAAOkJ,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAAS6xB,GAAiCre,EAA2C1F,EAAmB4X,GAE3G,OADckF,IAAgBpT,eAAehE,GAChCoE,qCAAqC,yBAAyB,EACtE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAAC/J,UAAWA,EAAW4X,WAAYA,IAGnG,SAASoM,GAA2B9xB,EAAmB8N,EAAmB4X,GAC7E,MAAM3O,EAAU8a,GAAiC7xB,EAAQwT,oBAAqB1F,EAAW4X,GACzF,OAAO1O,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAAS+xB,GAA6Bve,EAA2C1F,EAAmBic,GAEvG,OADca,IAAgBpT,eAAehE,GAChCoE,qCAAqC,qBAAqB,EAClE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAAC/J,UAAWA,EAAWic,WAAYA,IAGnG,SAASiI,GAAuBhyB,EAAmB8N,EAAmBic,GACzE,MAAMhT,EAAUgb,GAA6B/xB,EAAQwT,oBAAqB1F,EAAWic,GACrF,OAAO/S,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAASiyB,GAAsCze,EAA2C1F,EAAmB4X,EAAoBwM,EAAmBC,GAEvJ,OADcvH,IAAgBpT,eAAehE,GAChCoE,qCAAqC,8BAA8B,EAC3E,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAC/J,UAAWA,EAAW4X,WAAYA,EAAYwM,UAAWA,EAAWC,mBAAoBA,IAG9J,SAASC,GAAgCpyB,EAAmB8N,EAAmB4X,EAAoBwM,EAAmBC,GACzH,MAAMpb,EAAUkb,GAAsCjyB,EAAQwT,oBAAqB1F,EAAW4X,EAAYwM,EAAWC,GACrH,OAAOnb,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASqyB,GAAkC7e,EAA2C1F,EAAmBic,EAA2BmI,EAAmBC,GAE1J,OADcvH,IAAgBpT,eAAehE,GAChCoE,qCAAqC,0BAA0B,EACvE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAC/J,UAAWA,EAAWic,WAAYA,EAAYmI,UAAWA,EAAWC,mBAAoBA,IAG9J,SAASG,GAA4BtyB,EAAmB8N,EAAmBic,EAA2BmI,EAAmBC,GAC5H,MAAMpb,EAAUsb,GAAkCryB,EAAQwT,oBAAqB1F,EAAWic,EAAYmI,EAAWC,GACjH,OAAOnb,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASuyB,GAAuC/e,GAEnD,OADcoX,IAAgBpT,eAAehE,GAChCoE,qCAAqC,+BAA+B,EAC5E,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,IAGlE,SAAS2a,GAAiCxyB,GAC7C,MAAM+W,EAAUwb,GAAuCvyB,EAAQwT,qBAC/D,OAAOwD,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAASyyB,GAAmBzN,EAAkBpX,GAEjD,OADcgd,EAAc5F,GACfpN,qCAAqC,WAAW,EACxD,qBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,IAG5E,SAAS8kB,GAAa1yB,EAAmBglB,EAAkBpX,GAC9D,MAAMmJ,EAAU0b,GAAmBzN,EAAUpX,GAC7C,OAAOoJ,EAAAA,EAAAA,IAA6BD,EAAS/W,GAG1C,SAAS2yB,GAA8Bnf,EAA2CwR,EAAkBpX,EAAmBE,GAE1H,OADc8c,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,sBAAsB,EACnE,sBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACjK,UAAWA,EAAWE,UAAWA,IAGlG,SAAS8kB,GAAwB5yB,EAAmBglB,EAAkBpX,EAAmBE,GAC5F,MAAMiJ,EAAU4b,GAA8B3yB,EAAQwT,oBAAqBwR,EAAUpX,EAAWE,GAChG,OAAOkJ,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG7C,SAAS6yB,GAA6Brf,EAA2CwR,EAAkBpX,EAAmBE,GAEzH,OADc8c,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,qBAAqB,EAClE,qBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,EAAWE,UAAWA,IAGjG,SAASyF,GAAuBvT,EAAmBglB,EAAkBpX,EAAmBE,GAC3F,MAAMiJ,EAAU8b,GAA6B7yB,EAAQwT,oBAAqBwR,EAAUpX,EAAWE,GAC/F,OAAOkJ,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG5C,SAAS8yB,GAAyBtf,EAA2CwR,EAAkBpX,EAAmBE,GAErH,OADc8c,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,iBAAiB,EAC9D,iBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,aAAc,CAACjK,UAAWA,EAAWE,UAAWA,IAG7F,SAASilB,GAAmB/yB,EAAmBglB,EAAkBpX,EAAmBE,GACvF,MAAMiJ,EAAU+b,GAAyB9yB,EAAQwT,oBAAqBwR,EAAUpX,EAAWE,GAC3F,OAAOkJ,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGxC,SAASgzB,GAAgCxf,EAA2CwR,EAAkBpX,GAEzG,OADcgd,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,wBAAwB,EACrE,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACjK,UAAWA,IAG9E,SAASqlB,GAA0BjzB,EAAmBglB,EAAkBpX,GAC3E,MAAMmJ,EAAUic,GAAgChzB,EAAQwT,oBAAqBwR,EAAUpX,GACvF,OAAOoJ,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAASkzB,GAA6B1f,EAA2CwR,EAAkBpX,EAAmBwiB,GAEzH,OADcxF,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,qBAAqB,EAClE,wBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACjK,UAAWA,EAAWwiB,OAAQA,IAGjG,SAAS+C,GAAuBnzB,EAAmBglB,EAAkBpX,EAAmBwiB,GAC3F,MAAMrZ,EAAUmc,GAA6BlzB,EAAQwT,oBAAqBwR,EAAUpX,EAAWwiB,GAC/F,OAAOpZ,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG/C,SAASozB,GAA+B5f,GAE3C,OADcoX,IAAgBpT,eAAehE,GAChCoE,qCAAqC,uBAAuB,EACpE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGrE,SAASwb,GAAyBrzB,GACrC,MAAM+W,EAAUqc,GAA+BpzB,EAAQwT,qBACvD,OAAOwD,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASszB,GAA4B9f,EAA2CwR,EAAkBpX,EAAmBE,GAExH,OADc8c,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,oBAAoB,EACjE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,IAGvG,SAASylB,GAAsBvzB,EAAmBglB,EAAkBpX,EAAmBE,GAC1F,MAAMiJ,EAAUuc,GAA4BtzB,EAAQwT,oBAAqBwR,EAAUpX,EAAWE,GAC9F,OAAOkJ,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAASwzB,GAA8BhgB,EAA2CwR,EAAkBpX,EAAmBE,EAAmB2lB,GAE7I,OADc7I,EAAc5F,GAAUxN,eAAehE,GACxCoE,qCAAqC,sBAAsB,EACnE,2BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACjK,UAAWA,EAAWE,UAAWA,EAAW2lB,eAAgBA,IAGlI,SAASC,GAAwB1zB,EAAmBglB,EAAkBpX,EAAmBE,EAAmB2lB,GAC/G,MAAM1c,EAAUyc,GAA8BxzB,EAAQwT,oBAAqBwR,EAAUpX,EAAWE,EAAW2lB,GAC3G,OAAOzc,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGlD,SAAS2zB,GAAmCngB,EAA2C1F,EAAmB8lB,GAE7G,OADchJ,IAAgBpT,eAAehE,GAChCoE,qCAAqC,2BAA2B,EACxE,gCACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,4BAA6B,CAAC/J,UAAWA,EAAW8lB,sBAAuBA,IAGxH,SAASC,GAA6B7zB,EAAmB8N,EAAmB8lB,GAC/E,MAAM7c,EAAU4c,GAAmC3zB,EAAQwT,oBAAqB1F,EAAW8lB,GAC3F,OAAO5c,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGvD,SAAS8zB,GAAoB9O,EAAkBvX,EAAuC6hB,GAEzF,OADc1E,EAAc5F,GACfpN,qCAAqC,YAAY,EACzD,oBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACpK,sBAAuBA,EAAuB6hB,oBAAqBA,IAGnI,SAASyE,GAAc/zB,EAAmBglB,EAAkBvX,EAAuC6hB,GACtG,MAAMvY,EAAU+c,GAAoB9O,EAAUvX,EAAuB6hB,GACrE,OAAOtY,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASg0B,GAAiChP,EAAkBvX,EAAuC6hB,EAAqClV,EAA+B0V,GAE1K,OADclF,EAAc5F,GACfpN,qCAAqC,yBAAyB,EACtE,oBACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,gBAAiB,CAACpK,sBAAuBA,EAAuB6hB,oBAAqBA,EAAqBlV,cAAeA,EAAe0V,wBAAyBA,IAG9M,SAASmE,GAA2Bj0B,EAAmBglB,EAAkBvX,EAAuC6hB,EAAqClV,EAA+B0V,GACvL,MAAM/Y,EAAUid,GAAiChP,EAAUvX,EAAuB6hB,EAAqBlV,EAAe0V,GACtH,OAAO9Y,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASk0B,GAAoDC,EAA+CC,GAE/G,OADcxJ,IACDhT,qCAAqC,4CAA4C,EACzF,4CACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,wCAAyC,CAACsc,kBAAmBA,EAAmBC,iBAAkBA,IAGhJ,SAASC,GAA8Cr0B,EAAmBm0B,EAA+CC,GAC5H,MAAMrd,EAAUmd,GAAoDC,EAAmBC,GACvF,OAAOpd,EAAAA,EAAAA,IAAoDD,EAAS/W,GAGjE,SAASs0B,GAAoCzK,GAEhD,OADce,IACDhT,qCAAqC,4BAA4B,EACzE,4CACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,wCAAyC,CAACgS,eAAgBA,IAGxG,SAAS0K,GAA8Bv0B,EAAmB6pB,GAC7D,MAAM9S,EAAUud,GAAoCzK,GACpD,OAAO7S,EAAAA,EAAAA,IAAoDD,EAAS/W,wECvuBxE,SAASw0B,EAAqBl9B,GAC1B,IAAI0H,EAAO1H,EAAM,CAAEiiB,GAAIjiB,GAAO,KAC9B,OAAO,IAAIof,EAAAA,EAAiB,kBAAmB,iBAAkB,sBAAuB1X,GAuDrF,SAASy1B,EAAiBz0B,EAAmB1I,EAAYo9B,GAC5D,MAAM3d,EARH,SAAgCvD,EAA2Clc,EAAYo9B,GAE1F,OADcF,EAAqBl9B,GAAIkgB,eAAehE,GACzCoE,qCAAqC,eAAe,EAC5D,0BACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,sBAAuB,CAAC6c,uBAAwBA,IAIhFC,CAAuB30B,EAAQwT,oBAAqBlc,EAAIo9B,GACxE,OAAO1d,EAAAA,EAAAA,IAAoCD,EAAS/W,+tFC3DxD,SAAS40B,EAAiBt9B,GACtB,IAAI0H,EAAO1H,EAAM,CAAEiiB,GAAIjiB,GAAO,KAC9B,OAAO,IAAIof,EAAAA,EAAiB,cAAe,aAAc,kBAAmB1X,GAGzE,SAAS2X,EAAkBC,GAC9B,OAAOge,IAAmB/d,OAAOD,GAG9B,SAASie,EAAsB70B,EAAmB4W,GACrD,MAAMG,EAAUJ,EAAkBC,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASiX,EAAkBL,GAC9B,OAAOge,EAAiBhe,EAAO2C,IAAIlI,OAAOuF,GAGvC,SAASM,EAAYlX,EAAmB4W,GAC3C,MAAMG,EAAUE,EAAkBL,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASmX,EAAkBP,GAC9B,OAAOge,EAAiBhe,EAAO2C,IAAInV,SAGhC,SAASgT,EAAYpX,EAAmB4W,GAC3C,MAAMG,EAAUI,EAAkBP,GAClC,OAAOI,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASqX,EAAgB/f,GAC5B,OAAOs9B,EAAiBt9B,GAAIggB,OAGzB,SAAS5B,EAAU1V,EAAmB1I,GACzC,MAAMyf,EAAUM,EAAgB/f,GAChC,OAAO0f,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASuX,EAAmB/D,GAC/B,OAAOohB,IAAmBpd,eAAehE,GAAqB8D,OAG3D,SAASG,EAAazX,GACzB,MAAM+W,EAAUQ,EAAmBvX,EAAQwT,qBAC3C,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASyZ,EAAkBjG,EAA2CshB,GAEzE,OADcF,IAAmBpd,eAAehE,GACnCoE,qCAAqC,UAAU,EACvD,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACid,yBAA0BA,IAGvF,SAASnb,EAAY3Z,EAAmB80B,GAC3C,MAAM/d,EAAU0C,EAAkBzZ,EAAQwT,oBAAqBshB,GAC/D,OAAO9d,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAAS+0B,EAA8CvhB,EAA2CkN,GAErG,OADckU,IAAmBpd,eAAehE,GACnCoE,qCAAqC,sCAAsC,EACnF,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAAC6I,UAAWA,IAGxE,SAASsU,EAAwCh1B,EAAmB0gB,GACvE,MAAM3J,EAAUge,EAA8C/0B,EAAQwT,oBAAqBkN,GAC3F,OAAO1J,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASi1B,EAAwBzhB,EAA2C0hB,GAE/E,OADcN,IAAmBpd,eAAehE,GACnCoE,qCAAqC,gBAAgB,EAC7D,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACqd,oBAAqBA,IAGlF,SAASC,EAAkBn1B,EAAmBk1B,GACjD,MAAMne,EAAUke,EAAwBj1B,EAAQwT,oBAAqB0hB,GACrE,OAAOle,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASo1B,EAA+B5hB,EAA2C6hB,GAEtF,OADcT,IAAmBpd,eAAehE,GACnCoE,qCAAqC,uBAAuB,EACpE,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACwd,8BAA+BA,IAGjG,SAASC,EAAyBt1B,EAAmBq1B,GACxD,MAAMte,EAAUqe,EAA+Bp1B,EAAQwT,oBAAqB6hB,GAC5E,OAAOre,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG9C,SAASu1B,EAAuB/hB,EAA2Clc,EAAYmnB,GAE1F,OADcmW,EAAiBt9B,GAAIkgB,eAAehE,GACrCoE,qCAAqC,eAAe,EAC5D,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAAC4G,yBAA0BA,IAGpF,SAAS+W,EAAiBx1B,EAAmB1I,EAAYmnB,GAC5D,MAAM1H,EAAUwe,EAAuBv1B,EAAQwT,oBAAqBlc,EAAImnB,GACxE,OAAOzH,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASy1B,EAAuB5L,EAA+C6L,GAElF,OADcd,IACDhd,qCAAqC,eAAe,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACgS,eAAgBA,EAAgB6L,mBAAoBA,IAGzK,SAASC,EAAiB31B,EAAmB6pB,EAA+C6L,GAC/F,MAAM3e,EAAU0e,EAAuB5L,EAAgB6L,GACvD,OAAO1e,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS41B,EAA2BpiB,EAA2Clc,EAAYu+B,EAA4BpX,GAE1H,OADcmW,EAAiBt9B,GAAIkgB,eAAehE,GACrCoE,qCAAqC,mBAAmB,EAChE,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACie,iBAAkBD,EAAkBpX,yBAA0BA,IAGxH,SAASsX,EAAqB/1B,EAAmB1I,EAAYu+B,EAA4BpX,GAC5F,MAAM1H,EAAU6e,EAA2B51B,EAAQwT,oBAAqBlc,EAAIu+B,EAAkBpX,GAC9F,OAAOzH,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASg2B,EAA0BxiB,EAA2CkN,EAA2BuV,EAAkCC,GAE9I,OADctB,IAAmBpd,eAAehE,GACnCoE,qCAAqC,kBAAkB,EAC/D,kBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAAC6I,UAAWA,EAAWuV,iBAAkBA,EAAkBC,gBAAiBA,IAGxI,SAASC,EAAoBn2B,EAAmB0gB,EAA2BuV,EAAkCC,GAChH,MAAMnf,EAAUif,EAA0Bh2B,EAAQwT,oBAAqBkN,EAAWuV,EAAkBC,GACpG,OAAOlf,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASo2B,EAA+CrX,EAA8BsX,GAEzF,OADczB,IACDhd,qCAAqC,uCAAuC,EACpF,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACkH,cAAeA,EAAesX,oBAAqBA,IAGjH,SAASC,EAAyCt2B,EAAmB+e,EAA8BsX,GACtG,MAAMtf,EAAUqf,EAA+CrX,EAAesX,GAC9E,OAAOrf,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASu2B,EAAyCzU,GAErD,OADc8S,IACDhd,qCAAqC,iCAAiC,EAC9E,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACiK,QAASA,IAGvE,SAAS0U,EAAmCx2B,EAAmB8hB,GAClE,MAAM/K,EAAUwf,EAAyCzU,GACzD,OAAO9K,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASy2B,EAAoDC,GAEhE,OADc9B,IACDhd,qCAAqC,4CAA4C,EACzF,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAAC6e,+BAAgCA,IAG9F,SAASC,EAA8C32B,EAAmB02B,GAC7E,MAAM3f,EAAU0f,EAAoDC,GACpE,OAAO1f,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS42B,EAA6CC,GAEzD,OADcjC,IACDhd,qCAAqC,qCAAqC,EAClF,kBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,cAAe,CAACgf,YAAaA,IAG3E,SAASC,EAAuC92B,EAAmB62B,GACtE,MAAM9f,EAAU6f,EAA6CC,GAC7D,OAAO7f,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS+2B,EAAgCC,GAE5C,OADcpC,IACDhd,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACof,qBAAsBD,IAGpJ,SAASE,EAA0Bl3B,EAAmBg3B,GACzD,MAAMjgB,EAAUggB,EAAgCC,GAChD,OAAOhgB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASm3B,EAAkCC,GAE9C,OADcxC,IACDhd,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACwf,yBAA0BD,IAG1J,SAASE,EAA4Bt3B,EAAmBo3B,GAC3D,MAAMrgB,EAAUogB,EAAkCC,GAClD,OAAOpgB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASu3B,EAAgCH,GAE5C,OADcxC,IACDhd,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACwf,yBAA0BD,IAGxJ,SAASI,EAA0Bx3B,EAAmBo3B,GACzD,MAAMrgB,EAAUwgB,EAAgCH,GAChD,OAAOpgB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASy3B,EAAgCL,GAE5C,OADcxC,IACDhd,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACwf,yBAA0BD,IAGxJ,SAASM,EAA0B13B,EAAmBo3B,GACzD,MAAMrgB,EAAU0gB,EAAgCL,GAChD,OAAOpgB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS23B,EAAwCP,GAEpD,OADcxC,IACDhd,qCAAqC,gCAAgC,EAAM,GAAI,QAAS,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACwf,yBAA0BD,IAGrK,SAASQ,EAAkC53B,EAAmBo3B,GACjE,MAAMrgB,EAAU4gB,EAAwCP,GACxD,OAAOpgB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGnC,SAAS63B,EAAwBT,GAEpC,OADcxC,IACDhd,qCAAqC,gBAAgB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACwf,yBAA0BD,IAGhJ,SAASU,EAAkB93B,EAAmBo3B,GACjD,MAAMrgB,EAAU8gB,EAAwBT,GACxC,OAAOpgB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS+3B,EAAsCvkB,EAA2CwkB,EAAgEC,GAE7J,OADcrD,IAAmBpd,eAAehE,GACnCoE,qCAAqC,8BAA8B,EAC3E,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACmgB,2BAA4BA,EAA4BC,kBAAmBA,IAGrI,SAASC,EAAgCl4B,EAAmBg4B,EAAgEC,GAC/H,MAAMlhB,EAAUghB,EAAsC/3B,EAAQwT,oBAAqBwkB,EAA4BC,GAC/G,OAAOjhB,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASm4B,GAAsC3kB,EAA2C4kB,EAA0DH,GAEvJ,OADcrD,IAAmBpd,eAAehE,GACnCoE,qCAAqC,8BAA8B,EAC3E,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACugB,qBAAsBA,EAAsBH,kBAAmBA,IAGzH,SAASI,GAAgCr4B,EAAmBo4B,EAA0DH,GACzH,MAAMlhB,EAAUohB,GAAsCn4B,EAAQwT,oBAAqB4kB,EAAsBH,GACzG,OAAOjhB,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAASs4B,GAA0C9kB,EAA2CsO,EAAyByW,EAA+BN,GAEzJ,OADcrD,IAAmBpd,eAAehE,GACnCoE,qCAAqC,kCAAkC,EAC/E,eACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,WAAY,CAACiK,QAASA,EAAS0W,cAAeD,EAAeN,kBAAmBA,IAG7H,SAASQ,GAAoCz4B,EAAmB8hB,EAAyByW,EAA+BN,GAC3H,MAAMlhB,EAAUuhB,GAA0Ct4B,EAAQwT,oBAAqBsO,EAASyW,EAAeN,GAC/G,OAAOjhB,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGtC,SAAS04B,GAAkCC,GAE9C,OADc/D,IACDhd,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAAC+gB,uBAAwBD,IAGxJ,SAASE,GAA4B74B,EAAmB24B,GAC3D,MAAM5hB,EAAU2hB,GAAkCC,GAClD,OAAO3hB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS84B,GAAgCtlB,EAA2CsO,GAEvF,OADc8S,IAAmBpd,eAAehE,GACnCoE,qCAAqC,wBAAwB,EACrE,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACiK,QAASA,IAGxE,SAASiX,GAA0B/4B,EAAmB8hB,GACzD,MAAM/K,EAAU+hB,GAAgC94B,EAAQwT,oBAAqBsO,GAC7E,OAAO9K,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASg5B,GAA4BxlB,EAA2C4S,GAEnF,OADcwO,IAAmBpd,eAAehE,GACnCoE,qCAAqC,oBAAoB,EACjE,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACuO,WAAYA,IAG3E,SAAS6S,GAAsBj5B,EAAmBomB,GACrD,MAAMrP,EAAUiiB,GAA4Bh5B,EAAQwT,oBAAqB4S,GACzE,OAAOpP,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASk5B,GAAuB1lB,EAA2C2lB,GAE9E,OADcvE,IAAmBpd,eAAehE,GACnCoE,qCAAqC,eAAe,EAC5D,oBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACshB,sBAAuBA,IAGtF,SAASC,GAAiBp5B,EAAmBm5B,GAChD,MAAMpiB,EAAUmiB,GAAuBl5B,EAAQwT,oBAAqB2lB,GACpE,OAAOniB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAG3C,SAASq5B,GAA6BC,GAEzC,OADc1E,IACDhd,qCAAqC,qBAAqB,EAClE,oBACD,QAAS,CAACpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACyhB,6BAA8BA,IAG9F,SAASC,GAAuBv5B,EAAmBs5B,GACtD,MAAMviB,EAAUsiB,GAA6BC,GAC7C,OAAOtiB,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGzC,SAASw5B,GAA2ChmB,EAA2CimB,GAElG,OADc7E,IAAmBpd,eAAehE,GACnCoE,qCAAqC,mCAAmC,EAChF,iBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,aAAc,CAAC4hB,SAAUA,IAGtE,SAASC,GAAqC15B,EAAmBy5B,GACpE,MAAM1iB,EAAUyiB,GAA2Cx5B,EAAQwT,oBAAqBimB,GACxF,OAAOziB,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGxC,SAAS25B,GAA6B7X,GAEzC,OADc8S,IACDhd,qCAAqC,qBAAqB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACiK,QAASA,IAGpI,SAAS8X,GAAuB55B,EAAmB8hB,GACtD,MAAM/K,EAAU4iB,GAA6B7X,GAC7C,OAAO9K,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAAS65B,GAAqC/X,EAAyBgY,GAE1E,OADclF,IACDhd,qCAAqC,6BAA6B,EAAM,GAAI,QAAS,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACiK,QAASA,EAASgY,+BAAgCA,IAG1L,SAASC,GAA+B/5B,EAAmB8hB,EAAyBgY,GACvF,MAAM/iB,EAAU8iB,GAAqC/X,EAASgY,GAC9D,OAAO9iB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGnC,SAASg6B,GAA2BxmB,EAA2Clc,GAElF,OADcs9B,EAAiBt9B,GAAIkgB,eAAehE,GACrCoE,qCAAqC,mBAAmB,EAChE,mBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,eAAgB,IAG7D,SAASoiB,GAAqBj6B,EAAmB1I,GACpD,MAAMyf,EAAUijB,GAA2Bh6B,EAAQwT,oBAAqBlc,GACxE,OAAO0f,EAAAA,EAAAA,IAA6BD,EAAS/W,GAG1C,SAASk6B,GAA6BpY,GAEzC,OADc8S,IACDhd,qCAAqC,qBAAqB,EAAM,GAAI,GAAI,CAACpL,YAAa,MAAOqL,aAAc,IAAK,CAACiK,QAASA,IAGpI,SAASqY,GAAuBn6B,EAAmB8hB,GACtD,MAAM/K,EAAUmjB,GAA6BpY,GAC7C,OAAO9K,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGvC,SAASo6B,GAAwC5mB,EAA2C4jB,EAA6DiD,GAE5J,OADczF,IAAmBpd,eAAehE,GACnCoE,qCAAqC,gCAAgC,EAC7E,iCACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACwf,yBAA0BD,EAA0BkD,qBAAsBD,IAGtJ,SAASE,GAAkCv6B,EAAmBo3B,EAA6DiD,GAC9H,MAAMtjB,EAAUqjB,GAAwCp6B,EAAQwT,oBAAqB4jB,EAA0BiD,GAC/G,OAAOrjB,EAAAA,EAAAA,IAA2CD,EAAS/W,GAGxD,SAASw6B,GAAiC5sB,EAAmB2qB,EAA+BkC,EAAoCnZ,GAEnI,OADcsT,IACDhd,qCAAqC,yBAAyB,EACtE,yCACD,QAAS,CAACpL,YAAa,MAAOqL,aAAc,qCAAsC,CAACjK,UAAWA,EAAW4qB,cAAeD,EAAekC,mBAAoBA,EAAoBnZ,oBAAqBA,IAGrM,SAASoZ,GAA2B16B,EAAmB4N,EAAmB2qB,EAA+BkC,EAAoCnZ,GAChJ,MAAMvK,EAAUyjB,GAAiC5sB,EAAW2qB,EAAekC,EAAoBnZ,GAC/F,OAAOtK,EAAAA,EAAAA,IAAiDD,EAAS/W,GAG9D,SAAS26B,GAA+BnnB,EAA2CsO,GAEtF,OADc8S,IAAmBpd,eAAehE,GACnCoE,qCAAqC,uBAAuB,EACpE,uBACD,OAAQ,CAACpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACiK,QAASA,IAG3E,SAAS8Y,GAAyB56B,EAAmB8hB,GACxD,MAAM/K,EAAU4jB,GAA+B36B,EAAQwT,oBAAqBsO,GAC5E,OAAO9K,EAAAA,EAAAA,IAAiCD,EAAS/W,yECjbrD,SAAS66B,EAAiBC,GACtB,IAAI97B,EAAO87B,EAAe,CAAEC,YAAaD,GAAgB,KACzD,OAAO,IAAIpkB,EAAAA,EAAiB,cAAe,aAAc,kBAAmB1X,GAkCzE,SAAS0W,EAAU1V,EAAmB86B,GACzC,MAAM/jB,EALH,SAAyB+jB,GAC5B,OAAOD,EAAiBC,GAAaxjB,OAIrBD,CAAgByjB,GAChC,OAAO9jB,EAAAA,EAAAA,IAA0BD,EAAS/W,upcCzC9C,SAASg7B,IACT,OAAO,IAAItkB,EAAAA,EAGF,SAASuE,EAA8BzH,GAE5C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,sBAAsB,EACpE,sBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,kBAAmB,IAG/D,SAASwD,EAAwBrb,GACtC,MAAM+W,EAAUkE,EAA8Bjb,EAAQwT,qBACtD,OAAOwD,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG3C,SAASi7B,EAAmClf,EAAgB6D,GAEjE,OADcob,IACDpjB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACkE,OAAQA,EAAQ6D,aAAcA,IAGnK,SAASsb,EAA6Bl7B,EAAmB+b,EAAgB6D,GAC9E,MAAM7I,EAAUkkB,EAAmClf,EAAQ6D,GAC3D,OAAO5I,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASm7B,EAAiC3nB,EAA2C4nB,GAE1F,OADcJ,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yBAAyB,EACvE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAACujB,iBAAkBA,IAG/E,SAASC,EAA2Br7B,EAAmBo7B,GAC5D,MAAMrkB,EAAUokB,EAAiCn7B,EAAQwT,oBAAqB4nB,GAC9E,OAAOpkB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASs7B,EAAqCC,EAAoCC,EAAyBC,EAAiCtf,GAEjJ,OADc6e,IACDpjB,qCAAqC,6BAA6B,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAAC0jB,iBAAkBA,EAAkBC,QAASA,EAASC,gBAAiBA,EAAiBtf,gBAAiBA,IAG3O,SAASuf,EAA+B17B,EAAmBu7B,EAAoCC,EAAyBC,EAAiCtf,GAC9J,MAAMpF,EAAUukB,EAAqCC,EAAkBC,EAASC,EAAiBtf,GACjG,OAAOnF,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASyiB,EAAkCjP,EAA2CqW,GAE3F,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,0BAA0B,EACxE,iBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,CAACgS,eAAgBA,IAG3E,SAASnH,EAA4B1iB,EAAmB6pB,GAC7D,MAAM9S,EAAU0L,EAAkCziB,EAAQwT,oBAAqBqW,GAC/E,OAAO7S,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAAS27B,EAAmDnoB,EAA2CooB,GAE5G,OADcZ,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2CAA2C,EACzF,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAAC+jB,kBAAmBA,IAG/F,SAASC,EAA6C77B,EAAmB47B,GAC9E,MAAM7kB,EAAU4kB,EAAmD37B,EAAQwT,oBAAqBooB,GAChG,OAAO5kB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAAS87B,EAAyBtoB,GAEvC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,iBAAiB,EAC/D,iBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,IAG1D,SAASkkB,EAAmB/7B,GACjC,MAAM+W,EAAU+kB,EAAyB97B,EAAQwT,qBACjD,OAAOwD,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAASg8B,EAAuCxoB,EAA2CyoB,GAEhG,OADcjB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,+BAA+B,EAC7E,+BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,2BAA4B,CAACokB,yCAA0CA,IAGnH,SAASC,EAAiCl8B,EAAmBi8B,GAClE,MAAMllB,EAAUilB,EAAuCh8B,EAAQwT,oBAAqByoB,GACpF,OAAOjlB,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAASm8B,EAA0BC,EAA6DC,GAErG,OADcrB,IACDpjB,qCAAqC,kBAAkB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACukB,yBAA0BA,EAA0BE,YAAaD,IAGxL,SAASE,EAAoBv8B,EAAmBo8B,EAA6DC,GAClH,MAAMtlB,EAAUolB,EAA0BC,EAA0BC,GACpE,OAAOrlB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASw8B,EAA8BJ,GAE5C,OADcpB,IACDpjB,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACukB,yBAA0BA,IAGrJ,SAASK,EAAwBz8B,EAAmBo8B,GACzD,MAAMrlB,EAAUylB,EAA8BJ,GAC9C,OAAOplB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS08B,EAA2BlpB,EAA2CmpB,GAEpF,OADc3B,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,mBAAmB,EACjE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAAC8kB,uBAAwBA,IAGrF,SAASC,EAAqB58B,EAAmB28B,GACtD,MAAM5lB,EAAU2lB,EAA2B18B,EAAQwT,oBAAqBmpB,GACxE,OAAO3lB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAAS0wB,EAAgCld,EAA2CqpB,GAEzF,OADc7B,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,wBAAwB,EACtE,wBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACglB,yBAA0BA,IAG5F,SAAShM,EAA0B7wB,EAAmB68B,GAC3D,MAAM9lB,EAAU2Z,EAAgC1wB,EAAQwT,oBAAqBqpB,GAC7E,OAAO7lB,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG7C,SAAS88B,EAAwB/d,EAA8Bge,GAEpE,OADc/B,IACDpjB,qCAAqC,gBAAgB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACkH,cAAeA,EAAege,gBAAiBA,IAGpK,SAASC,EAAkBh9B,EAAmB+e,EAA8Bge,GACjF,MAAMhmB,EAAU+lB,EAAwB/d,EAAege,GACvD,OAAO/lB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASi9B,EAAsBle,GAEpC,OADcic,IACDpjB,qCAAqC,cAAc,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACkH,cAAeA,IAGlI,SAASme,EAAgBl9B,EAAmB+e,GACjD,MAAMhI,EAAUkmB,EAAsBle,GACtC,OAAO/H,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASm9B,EAA0BC,EAA6BC,EAA2BC,EAAyBC,EAAwBhU,GAEjJ,OADcyR,IACDpjB,qCAAqC,kBAAkB,EAChE,8BACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,0BAA2B,CAACulB,aAAcA,EAAcC,WAAYA,EAAYC,SAAUA,EAAUC,cAAeA,EAAehU,WAAYA,IAG1L,SAASiU,EAAoBx9B,EAAmBo9B,EAA6BC,EAA2BC,EAAyBC,EAAwBhU,GAC9J,MAAMxS,EAAUomB,EAA0BC,EAAcC,EAAYC,EAAUC,EAAehU,GAC7F,OAAOvS,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASy9B,EAA8BL,EAA8BC,EAA4BC,EAA0B/T,GAEhI,OADcyR,IACDpjB,qCAAqC,sBAAsB,EACpE,8BACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,0BAA2B,CAACulB,aAAcA,EAAcC,WAAYA,EAAYC,SAAUA,EAAU/T,WAAYA,IAG5J,SAASmU,EAAwB19B,EAAmBo9B,EAA8BC,EAA4BC,EAA0B/T,GAC7I,MAAMxS,EAAU0mB,EAA8BL,EAAcC,EAAYC,EAAU/T,GAClF,OAAOvS,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAAS29B,EAA4B5e,GAE1C,OADcic,IACDpjB,qCAAqC,oBAAoB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACkH,cAAeA,IAGxI,SAAS6e,EAAsB59B,EAAmB+e,GACvD,MAAMhI,EAAU4mB,EAA4B5e,GAC5C,OAAO/H,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS69B,IAEd,OADc7C,IACDpjB,qCAAqC,8BAA8B,EAC5E,wCACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,oCAAqC,IAGjF,SAASimB,EAAgC99B,GAC9C,MAAM+W,EAAU8mB,IAChB,OAAO7mB,EAAAA,EAAAA,IAAgDD,EAAS/W,GAG3D,SAAS+9B,EAAwCX,EAA8BY,GAEpF,OADchD,IACDpjB,qCAAqC,gCAAgC,EAC9E,0CACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,sCAAuC,CAACulB,aAAcA,EAAcY,qBAAsBA,IAGtI,SAASC,EAAkCj+B,EAAmBo9B,EAA8BY,GACjG,MAAMjnB,EAAUgnB,EAAwCX,EAAcY,GACtE,OAAOhnB,EAAAA,EAAAA,IAAkDD,EAAS/W,GAG7D,SAASk+B,EAA0BC,GAExC,OADcnD,IACDpjB,qCAAqC,kBAAkB,EAChE,eACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,WAAY,CAACsmB,UAAWA,IAGrE,SAASC,EAAoBp+B,EAAmBm+B,GACrD,MAAMpnB,EAAUmnB,EAA0BC,GAC1C,OAAOnnB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAASq+B,EAA6BC,GAE3C,OADctD,IACDpjB,qCAAqC,qBAAqB,EACnE,kBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAACymB,aAAcA,IAG3E,SAASC,EAAuBv+B,EAAmBs+B,GACxD,MAAMvnB,EAAUsnB,EAA6BC,GAC7C,OAAOtnB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASw+B,EAAsChrB,EAA2C2T,EAAgBC,GAE/G,OADc4T,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,8BAA8B,EAC5E,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAACsP,OAAQA,EAAQC,MAAOA,IAGnF,SAASqX,EAAgCz+B,EAAmBmnB,EAAgBC,GACjF,MAAMrQ,EAAUynB,EAAsCx+B,EAAQwT,oBAAqB2T,EAAQC,GAC3F,OAAOpQ,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAAS0+B,EAA+BlrB,EAA2CmrB,GAExF,OADc3D,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAAC8mB,4BAA6BA,IAGzF,SAASC,EAAyB5+B,EAAmB2+B,GAC1D,MAAM5nB,EAAU2nB,EAA+B1+B,EAAQwT,oBAAqBmrB,GAC5E,OAAO3nB,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAAS6+B,EAAqCrrB,EAA2CsrB,GAE9F,OADc9D,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,iBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,CAACinB,WAAYA,IAGvE,SAASC,EAA+B/+B,EAAmB8+B,GAChE,MAAM/nB,EAAU8nB,EAAqC7+B,EAAQwT,oBAAqBsrB,GAClF,OAAO9nB,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAASg/B,GAAwBxrB,GAEtC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gBAAgB,EAC9D,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,IAG7D,SAASonB,GAAkBj/B,GAChC,MAAM+W,EAAUioB,GAAwBh/B,EAAQwT,qBAChD,OAAOwD,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAASk/B,GAA4B1rB,EAA2C2rB,EAAkCC,EAA0BC,GAEjJ,OADcrE,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,oBAAoB,EAClE,oBACA,OAAQ,CAAEpL,YAAa,MAAOqL,aAAc,gBAAiB,CAACsnB,iBAAkBA,EAAkBC,SAAUA,EAAUC,aAAcA,IAGnI,SAASC,GAAsBt/B,EAAmBm/B,EAAkCC,EAA0BC,GACnH,MAAMtoB,EAAUmoB,GAA4Bl/B,EAAQwT,oBAAqB2rB,EAAkBC,EAAUC,GACrG,OAAOroB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAASu/B,GAAwC/rB,GAEtD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gCAAgC,EAAM,GAAI,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,IAGzI,SAAS2nB,GAAkCx/B,GAChD,MAAM+W,EAAUwoB,GAAwCv/B,EAAQwT,qBAChE,OAAOwD,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAASy/B,GAAqBjsB,EAA2CksB,EAAiCC,EAAiCC,GAEhJ,OADc5E,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,aAAa,EAC3D,gBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,YAAa,CAAC6nB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,IAGxI,SAASC,GAAe7/B,EAAmB0/B,EAAiCC,EAAiCC,GAClH,MAAM7oB,EAAU0oB,GAAqBz/B,EAAQwT,oBAAqBksB,EAAiBC,EAAiBC,GACpG,OAAO5oB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS8/B,GAAwCtsB,GAEtD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gCAAgC,EAC9E,yBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qBAAsB,IAGlE,SAASkoB,GAAkC//B,GAChD,MAAM+W,EAAU+oB,GAAwC9/B,EAAQwT,qBAChE,OAAOwD,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAASggC,GAAyCxsB,EAA2CysB,GAElG,OADcjF,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,iCAAiC,EAC/E,yBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qBAAsB,CAACooB,WAAYA,IAG/E,SAASC,GAAmClgC,EAAmBigC,GACpE,MAAMlpB,EAAUipB,GAAyChgC,EAAQwT,oBAAqBysB,GACtF,OAAOjpB,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAASmgC,GAA4BvyB,GAE1C,OADcotB,IACDpjB,qCAAqC,oBAAoB,EAClE,qBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACjK,UAAWA,IAG3E,SAASwyB,GAAsBpgC,EAAmB4N,GACvD,MAAMmJ,EAAUopB,GAA4BvyB,GAC5C,OAAOoJ,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASqgC,GAAuB7sB,EAA2CksB,EAAiCC,GAEjH,OADc3E,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,eAAe,EAC7D,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAAC6nB,gBAAiBA,EAAiBC,gBAAiBA,IAG/G,SAASW,GAAiBtgC,EAAmB0/B,EAAiCC,GACnF,MAAM5oB,EAAUspB,GAAuBrgC,EAAQwT,oBAAqBksB,EAAiBC,GACrF,OAAO3oB,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASugC,GAA6BC,GAE3C,OADcxF,IACDpjB,qCAAqC,qBAAqB,EACnE,kBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAAC2oB,aAAcA,IAG3E,SAASC,GAAuBzgC,EAAmBwgC,GACxD,MAAMzpB,EAAUwpB,GAA6BC,GAC7C,OAAOxpB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS0gC,GAA+BC,GAE7C,OADc3F,IACDpjB,qCAAqC,uBAAuB,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC8oB,cAAeA,IAGjJ,SAASC,GAAyB5gC,EAAmB2gC,GAC1D,MAAM5pB,EAAU2pB,GAA+BC,GAC/C,OAAO3pB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS6gC,GAAoCxD,GAElD,OADcrC,IACDpjB,qCAAqC,4BAA4B,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAACwlB,WAAYA,IAGnJ,SAASyD,GAA8B9gC,EAAmBq9B,GAC/D,MAAMtmB,EAAU8pB,GAAoCxD,GACpD,OAAOrmB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS+gC,GAA2BJ,EAA8BK,GAEvE,OADchG,IACDpjB,qCAAqC,mBAAmB,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC8oB,cAAeA,EAAeK,kBAAmBA,IAG/K,SAASC,GAAqBjhC,EAAmB2gC,EAA8BK,GACpF,MAAMjqB,EAAUgqB,GAA2BJ,EAAeK,GAC1D,OAAOhqB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASkhC,GAA+CC,GAE7D,OADcnG,IACDpjB,qCAAqC,uCAAuC,EACrF,8BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,CAACupB,gCAAiCD,IAG1G,SAASE,GAAyCrhC,EAAmBmhC,GAC1E,MAAMpqB,EAAUmqB,GAA+CC,GAC/D,OAAOnqB,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASshC,GAA6CC,GAE3D,OADcvG,IACDpjB,qCAAqC,qCAAqC,EACnF,4BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,CAAC2pB,8BAA+BD,IAGtG,SAASE,GAAuCzhC,EAAmBuhC,GACxE,MAAMxqB,EAAUuqB,GAA6CC,GAC7D,OAAOvqB,EAAAA,EAAAA,IAAoCD,EAAS/W,GAG/C,SAAS0hC,GAA+BluB,EAA2CmtB,GAExF,OADc3F,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAAC8oB,cAAeA,IAGhF,SAASgB,GAAyB3hC,EAAmB2gC,GAC1D,MAAM5pB,EAAU2qB,GAA+B1hC,EAAQwT,oBAAqBmtB,GAC5E,OAAO3pB,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAAS4hC,GAAsCpuB,EAA2CmtB,GAE/F,OADc3F,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,8BAA8B,EAC5E,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAAC8oB,cAAeA,IAGhF,SAASkB,GAAgC7hC,EAAmB2gC,GACjE,MAAM5pB,EAAU6qB,GAAsC5hC,EAAQwT,oBAAqBmtB,GACnF,OAAO3pB,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAAS8hC,GAAmCtuB,EAA2CmtB,GAE5F,OADc3F,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EAAM,GAAI,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC8oB,cAAeA,IAGpJ,SAASoB,GAA6B/hC,EAAmB2gC,GAC9D,MAAM5pB,EAAU+qB,GAAmC9hC,EAAQwT,oBAAqBmtB,GAChF,OAAO3pB,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAASgiC,GAA6BrB,GAE3C,OADc3F,IACDpjB,qCAAqC,qBAAqB,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC8oB,cAAeA,IAG/I,SAASsB,GAAuBjiC,EAAmB2gC,GACxD,MAAM5pB,EAAUirB,GAA6BrB,GAC7C,OAAO3pB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASkiC,GAAmCC,GAEjD,OADcnH,IACDpjB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACsqB,0BAA2BA,IAGhK,SAASC,GAA6BpiC,EAAmBmiC,GAC9D,MAAMprB,EAAUmrB,GAAmCC,GACnD,OAAOnrB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAASqiC,GAAmCC,GAEjD,OADctH,IACDpjB,qCAAqC,2BAA2B,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACyqB,qBAAsBA,IAGtJ,SAASC,GAA6BviC,EAAmBsiC,GAC9D,MAAMvrB,EAAUsrB,GAAmCC,GACnD,OAAOtrB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASwiC,KAEd,OADcxH,IACDpjB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,IAGrI,SAAS4qB,GAA6BziC,GAC3C,MAAM+W,EAAUyrB,KAChB,OAAOxrB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAAS0iC,GAAmClvB,GAEjD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,8BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,IAGvE,SAAS8qB,GAA6B3iC,GAC3C,MAAM+W,EAAU2rB,GAAmC1iC,EAAQwT,qBAC3D,OAAOwD,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAAS4iC,GAAqCpvB,GAEnD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,8BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,IAGvE,SAASgrB,GAA+B7iC,GAC7C,MAAM+W,EAAU6rB,GAAqC5iC,EAAQwT,qBAC7D,OAAOwD,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAAS8iC,GAAiDtvB,EAA2CuvB,EAA4BC,GAEtI,OADchI,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yCAAyC,EACvF,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACkrB,WAAYA,EAAYC,cAAeA,IAGnH,SAASC,GAA2CjjC,EAAmB+iC,EAA4BC,GACxG,MAAMjsB,EAAU+rB,GAAiD9iC,EAAQwT,oBAAqBuvB,EAAYC,GAC1G,OAAOhsB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASkjC,GAAiE1vB,EAA2CuvB,EAA4BC,GAEtJ,OADchI,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yDAAyD,EACvG,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACkrB,WAAYA,EAAYC,cAAeA,IAGnH,SAASG,GAA2DnjC,EAAmB+iC,EAA4BC,GACxH,MAAMjsB,EAAUmsB,GAAiEljC,EAAQwT,oBAAqBuvB,EAAYC,GAC1H,OAAOhsB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASojC,GAAwCC,GAEtD,OADcrI,IACDpjB,qCAAqC,gCAAgC,EAC9E,sBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,kBAAmB,CAACwrB,iBAAkBA,IAGlF,SAASC,GAAkCtjC,EAAmBqjC,GACnE,MAAMtsB,EAAUqsB,GAAwCC,GACxD,OAAOrsB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAASujC,GAA2Bhf,GAEzC,OADcyW,IACDpjB,qCAAqC,mBAAmB,EACjE,oBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC0M,aAAcA,IAG7E,SAASif,GAAqBxjC,EAAmBukB,GACtD,MAAMxN,EAAUwsB,GAA2Bhf,GAC3C,OAAOvN,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASyjC,GAAqCjwB,EAA2CkwB,GAE9F,OADc1I,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC6rB,QAASA,IAGvE,SAASC,GAA+B3jC,EAAmB0jC,GAChE,MAAM3sB,EAAU0sB,GAAqCzjC,EAAQwT,oBAAqBkwB,GAClF,OAAO1sB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAAS4jC,GAAqCpwB,EAA2CqwB,EAAwBhU,GAEtH,OADcmL,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,CAACgsB,QAASA,EAAShU,WAAYA,IAG5F,SAASiU,GAA+B9jC,EAAmB6jC,EAAwBhU,GACxF,MAAM9Y,EAAU6sB,GAAqC5jC,EAAQwT,oBAAqBqwB,EAAShU,GAC3F,OAAO7Y,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAAS+jC,GAAwBvwB,EAA2CksB,EAAiCC,EAAiCC,EAA0BoE,GAE7K,OADchJ,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gBAAgB,EAC9D,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC6nB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,EAAUoE,SAAUA,IAGhK,SAASC,GAAkBjkC,EAAmB0/B,EAAiCC,EAAiCC,EAA0BoE,GAC/I,MAAMjtB,EAAUgtB,GAAwB/jC,EAAQwT,oBAAqBksB,EAAiBC,EAAiBC,EAAUoE,GACjH,OAAOhtB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAASkkC,GAAsC1wB,GAEpD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,8BAA8B,EAC5E,8BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,IAGvE,SAASssB,GAAgCnkC,GAC9C,MAAM+W,EAAUmtB,GAAsClkC,EAAQwT,qBAC9D,OAAOwD,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAASokC,GAAkCnM,GAEhD,OADc+C,IACDpjB,qCAAqC,0BAA0B,EACxE,uBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACogB,kBAAmBA,IAGrF,SAASoM,GAA4BrkC,EAAmBi4B,GAC7D,MAAMlhB,EAAUqtB,GAAkCnM,GAClD,OAAOjhB,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG1C,SAASskC,GAA+B9wB,EAA2CysB,EAA4BsE,GAEpH,OADcvJ,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACooB,WAAYA,EAAYsE,OAAQA,IAGjG,SAASC,GAAyBxkC,EAAmBigC,EAA4BsE,GACtF,MAAMxtB,EAAUutB,GAA+BtkC,EAAQwT,oBAAqBysB,EAAYsE,GACxF,OAAOvtB,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAASykC,GAAsCC,GAEpD,OADc1J,IACDpjB,qCAAqC,8BAA8B,EAC5E,2BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAC6sB,YAAaA,IAGnF,SAASC,GAAgC3kC,EAAmB0kC,GACjE,MAAM3tB,EAAU0tB,GAAsCC,GACtD,OAAO1tB,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAAS4kC,GAA8BpxB,EAA2CqxB,GAEvF,OADc7J,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,sBAAsB,EACpE,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAACgtB,kBAAmBA,IAG/E,SAASC,GAAwB9kC,EAAmB6kC,GACzD,MAAM9tB,EAAU6tB,GAA8B5kC,EAAQwT,oBAAqBqxB,GAC3E,OAAO7tB,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAAS+kC,GAA+BC,EAA0BC,GAEvE,OADcjK,IACDpjB,qCAAqC,uBAAuB,EACrE,qBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACmtB,SAAUA,EAAUC,WAAYA,IAGhG,SAASC,GAAyBllC,EAAmBglC,EAA0BC,GACpF,MAAMluB,EAAUguB,GAA+BC,EAAUC,GACzD,OAAOjuB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASmlC,GAAgCH,GAE9C,OADchK,IACDpjB,qCAAqC,wBAAwB,EACtE,qBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACmtB,SAAUA,IAG1E,SAASI,GAA0BplC,EAAmBglC,GAC3D,MAAMjuB,EAAUouB,GAAgCH,GAChD,OAAOhuB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASqlC,GAA+BL,EAA0BC,GAEvE,OADcjK,IACDpjB,qCAAqC,uBAAuB,EACrE,qBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,CAACmtB,SAAUA,EAAUC,WAAYA,IAGhG,SAASK,GAAyBtlC,EAAmBglC,EAA0BC,GACpF,MAAMluB,EAAUsuB,GAA+BL,EAAUC,GACzD,OAAOjuB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASulC,GAAoC/xB,EAA2CgyB,GAE7F,OADcxK,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,4BAA4B,EAC1E,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,CAAC2tB,yBAA0BA,IAGhG,SAASC,GAA8BzlC,EAAmBwlC,GAC/D,MAAMzuB,EAAUwuB,GAAoCvlC,EAAQwT,oBAAqBgyB,GACjF,OAAOxuB,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAAS0lC,GAA6BlyB,EAA2CksB,GAEtF,OADc1E,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,yBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qBAAsB,CAAC6nB,gBAAiBA,IAGpF,SAASiG,GAAuB3lC,EAAmB0/B,GACxD,MAAM3oB,EAAU2uB,GAA6B1lC,EAAQwT,oBAAqBksB,GAC1E,OAAO1oB,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAAS4lC,GAAuBpyB,EAA2CksB,EAAiCC,EAAiCC,EAA0BoE,EAA0B6B,GAEtM,OADc7K,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,eAAe,EAC7D,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAAC6nB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,EAAUoE,SAAUA,EAAU6B,SAAUA,IAGnL,SAASC,GAAiB9lC,EAAmB0/B,EAAiCC,EAAiCC,EAA0BoE,EAA0B6B,GACxK,MAAM9uB,EAAU6uB,GAAuB5lC,EAAQwT,oBAAqBksB,EAAiBC,EAAiBC,EAAUoE,EAAU6B,GAC1H,OAAO7uB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAAS+lC,GAAiCvyB,EAA2CksB,EAAiCsG,GAE3H,OADchL,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yBAAyB,EACvE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAAC6nB,gBAAiBA,EAAiBsG,cAAeA,IAG9G,SAASC,GAA2BjmC,EAAmB0/B,EAAiCsG,GAC7F,MAAMjvB,EAAUgvB,GAAiC/lC,EAAQwT,oBAAqBksB,EAAiBsG,GAC/F,OAAOhvB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASkmC,GAAsCC,GAEpD,OADcnL,IACDpjB,qCAAqC,8BAA8B,EAC5E,sBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,kBAAmB,CAACsuB,eAAgBA,IAGhF,SAASC,GAAgCpmC,EAAmBmmC,GACjE,MAAMpvB,EAAUmvB,GAAsCC,GACtD,OAAOnvB,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAASqmC,GAA4BC,GAE1C,OADctL,IACDpjB,qCAAqC,oBAAoB,EAClE,mBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,eAAgB,CAACyuB,YAAaA,IAG1E,SAASC,GAAsBvmC,EAAmBsmC,GACvD,MAAMvvB,EAAUsvB,GAA4BC,GAC5C,OAAOtvB,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAASwmC,GAA0BzD,GAExC,OADc/H,IACDpjB,qCAAqC,kBAAkB,EAChE,mBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAACkrB,WAAYA,IAG1E,SAAS0D,GAAoBzmC,EAAmB+iC,GACrD,MAAMhsB,EAAUyvB,GAA0BzD,GAC1C,OAAO/rB,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAAS0mC,GAAmClzB,EAA2CgC,GAE5F,OADcwlB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAACrC,cAAeA,IAG5E,SAASmxB,GAA6B3mC,EAAmBwV,GAC9D,MAAMuB,EAAU2vB,GAAmC1mC,EAAQwT,oBAAqBgC,GAChF,OAAOwB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAAS4mC,GAAsCpzB,EAA2CuvB,EAA4BC,GAE3H,OADchI,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,8BAA8B,EAC5E,8BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,CAACkrB,WAAYA,EAAYC,cAAeA,IAG/G,SAAS6D,GAAgC7mC,EAAmB+iC,EAA4BC,GAC7F,MAAMjsB,EAAU6vB,GAAsC5mC,EAAQwT,oBAAqBuvB,EAAYC,GAC/F,OAAOhsB,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAAS8mC,GAA8CtzB,EAA2CuvB,EAA2BC,EAA8B+D,GAEhK,OADc/L,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,sCAAsC,EACpF,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACkrB,WAAYA,EAAYC,cAAeA,EAAe+D,aAAcA,IAGhJ,SAASC,GAAwChnC,EAAmB+iC,EAA2BC,EAA8B+D,GAClI,MAAMhwB,EAAU+vB,GAA8C9mC,EAAQwT,oBAAqBuvB,EAAYC,EAAe+D,GACtH,OAAO/vB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASinC,GAAqCzzB,EAA2CqW,GAE9F,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAACgS,eAAgBA,IAG7E,SAASqd,GAA+BlnC,EAAmB6pB,GAChE,MAAM9S,EAAUkwB,GAAqCjnC,EAAQwT,oBAAqBqW,GAClF,OAAO7S,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASmnC,GAAuBznB,EAA4BE,EAA8BwnB,EAAqBC,EAAiCC,GAErJ,OADctM,IACDpjB,qCAAqC,eAAe,EAC7D,gBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,YAAa,CAAC6H,WAAYA,EAAYE,aAAcA,EAAcwnB,IAAKA,EAAKC,gBAAiBA,EAAiBC,eAAgBA,IAG3K,SAASC,GAAiBvnC,EAAmB0f,EAA4BE,EAA8BwnB,EAAqBC,EAAiCC,GAClK,MAAMvwB,EAAUowB,GAAuBznB,EAAYE,EAAcwnB,EAAKC,EAAiBC,GACvF,OAAOtwB,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAASwnC,GAA8B9nB,GAE5C,OADcsb,IACDpjB,qCAAqC,sBAAsB,EACpE,gBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,YAAa,CAAC6H,WAAYA,IAGvE,SAAS+nB,GAAwBznC,EAAmB0f,GACzD,MAAM3I,EAAUywB,GAA8B9nB,GAC9C,OAAO1I,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAAS0nC,GAAmCl0B,EAA2CgoB,EAAwBC,EAAgCkM,GAEpJ,OADc3M,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,2BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,CAAC2jB,QAASA,EAASC,gBAAiBA,EAAiBkM,wBAAyBA,IAGlJ,SAASC,GAA6B5nC,EAAmBw7B,EAAwBC,EAAgCkM,GACtH,MAAM5wB,EAAU2wB,GAAmC1nC,EAAQwT,oBAAqBgoB,EAASC,EAAiBkM,GAC1G,OAAO3wB,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGhD,SAAS6nC,GAAqCC,GAEnD,OADc9M,IACDpjB,qCAAqC,6BAA6B,EAC3E,2BACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,uBAAwB,CAACiwB,oBAAqBA,IAG1F,SAASC,GAA+B/nC,EAAmB8nC,GAChE,MAAM/wB,EAAU8wB,GAAqCC,GACrD,OAAO9wB,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAASgoC,GAA2CC,GAEzD,OADcjN,IACDpjB,qCAAqC,mCAAmC,EACjF,iCACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,6BAA8B,CAACowB,0BAA2BA,IAGtG,SAASC,GAAqCloC,EAAmBioC,GACtE,MAAMlxB,EAAUixB,GAA2CC,GAC3D,OAAOjxB,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAASmoC,GAA2B30B,EAA2C40B,GAEpF,OADcpN,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,mBAAmB,EACjE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,CAACuwB,WAAYA,IAGzE,SAASC,GAAqBroC,EAAmBooC,GACtD,MAAMrxB,EAAUoxB,GAA2BnoC,EAAQwT,oBAAqB40B,GACxE,OAAOpxB,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASsoC,GAA8B9yB,EAA+B+yB,GAE3E,OADcvN,IACDpjB,qCAAqC,sBAAsB,EACpE,wBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,oBAAqB,CAACrC,cAAeA,EAAe+yB,qBAAsBA,IAGvH,SAASC,GAAwBxoC,EAAmBwV,EAA+B+yB,GACxF,MAAMxxB,EAAUuxB,GAA8B9yB,EAAe+yB,GAC7D,OAAOvxB,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG3C,SAASyoC,GAA0CC,EAAuBC,EAAiCC,EAAiCC,GAEjJ,OADc7N,IACDpjB,qCAAqC,kCAAkC,EAChF,oCACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,gCAAiC,CAAC6wB,MAAOA,EAAOI,gBAAiBH,EAAiBC,gBAAiBA,EAAiBC,gBAAiBA,IAGjL,SAASE,GAAoC/oC,EAAmB0oC,EAAuBC,EAAiCC,EAAiCC,GAC9J,MAAM9xB,EAAU0xB,GAA0CC,EAAOC,EAAiBC,EAAiBC,GACnG,OAAO7xB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASgpC,GAA0CN,EAAuBC,GAE/E,OADc3N,IACDpjB,qCAAqC,kCAAkC,EAChF,oCACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,gCAAiC,CAAC6wB,MAAOA,EAAOI,gBAAiBH,IAG7G,SAASM,GAAoCjpC,EAAmB0oC,EAAuBC,GAC5F,MAAM5xB,EAAUiyB,GAA0CN,EAAOC,GACjE,OAAO3xB,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASkpC,KAEd,OADclO,IACDpjB,qCAAqC,8BAA8B,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,IAGlI,SAASsxB,GAAgCnpC,GAC9C,MAAM+W,EAAUmyB,KAChB,OAAOlyB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASopC,GAAgC51B,GAE9C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,wBAAwB,EACtE,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,IAGrE,SAASwxB,GAA0BrpC,GACxC,MAAM+W,EAAUqyB,GAAgCppC,EAAQwT,qBACxD,OAAOwD,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASspC,KAEd,OADctO,IACDpjB,qCAAqC,qCAAqC,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,IAG/I,SAAS0xB,GAAuCvpC,GACrD,MAAM+W,EAAUuyB,KAChB,OAAOtyB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASwpC,GAAoDhO,EAAiBC,GAEnF,OADcT,IACDpjB,qCAAqC,4CAA4C,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC2jB,QAASA,EAASC,gBAAiBA,IAG1L,SAASgO,GAA8CzpC,EAAmBw7B,EAAiBC,GAChG,MAAM1kB,EAAUyyB,GAAoDhO,EAASC,GAC7E,OAAOzkB,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS0pC,GAAgCl2B,EAA2Cm2B,EAA8BC,GAEvH,OADc5O,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,wBAAwB,EACtE,aACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,SAAU,CAAC8xB,oBAAqBA,EAAqBC,yBAA0BA,IAG3H,SAASC,GAA0B7pC,EAAmB2pC,EAA8BC,GACzF,MAAM7yB,EAAU2yB,GAAgC1pC,EAAQwT,oBAAqBm2B,EAAqBC,GAClG,OAAO5yB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAAS8pC,KAEd,OADc9O,IACDpjB,qCAAqC,uBAAuB,EAAO,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,IAGjI,SAASkyB,GAAyB/pC,GACvC,MAAM+W,EAAU+yB,KAChB,OAAO9yB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAASgqC,GAAiCC,GAE/C,OADcjP,IACDpjB,qCAAqC,yBAAyB,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACoyB,gBAAiBA,IAGpJ,SAASC,GAA2BlqC,EAAmBiqC,GAC5D,MAAMlzB,EAAUizB,GAAiCC,GACjD,OAAOjzB,EAAAA,EAAAA,IAAuBD,EAAS/W,GAGlC,SAASmqC,GAAoCC,GAElD,OADcpP,IACDpjB,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACuyB,WAAYA,IAG7I,SAASC,GAA8BrqC,EAAmBoqC,GAC/D,MAAMrzB,EAAUozB,GAAoCC,GACpD,OAAOpzB,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASsqC,KAEd,OADctP,IACDpjB,qCAAqC,kCAAkC,EAChF,0BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,sBAAuB,IAGpE,SAAS0yB,GAAoCvqC,GAClD,MAAM+W,EAAUuzB,KAChB,OAAOtzB,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG7C,SAASwqC,GAA4Ch3B,GAE1D,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,oCAAoC,EAClF,iBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,IAG1D,SAAS4yB,GAAsCzqC,GACpD,MAAM+W,EAAUyzB,GAA4CxqC,EAAQwT,qBACpE,OAAOwD,EAAAA,EAAAA,IAA2BD,EAAS/W,GAGtC,SAAS0qC,GAA0CC,EAA6CC,GAErG,OADc5P,IACDpjB,qCAAqC,kCAAkC,EAChF,iBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,CAAC8yB,oCAAqCA,EAAqCC,eAAgBA,IAGtJ,SAASC,GAAoC7qC,EAAmB2qC,EAA6CC,GAClH,MAAM7zB,EAAU2zB,GAA0CC,EAAqCC,GAC/F,OAAO5zB,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGpC,SAAS8qC,GAAmCt3B,EAA2Cm3B,EAA6CI,EAAoCC,GAE7K,OADchQ,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,8BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,0BAA2B,CAAC8yB,oCAAqCA,EAAqCI,oBAAqBA,EAAqBC,eAAgBA,IAG5M,SAASC,GAA6BjrC,EAAmB2qC,EAA6CI,EAAoCC,GAC/I,MAAMj0B,EAAU+zB,GAAmC9qC,EAAQwT,oBAAqBm3B,EAAqCI,EAAqBC,GAC1I,OAAOh0B,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAASkrC,GAA+CC,GAE7D,OADcnQ,IACDpjB,qCAAqC,uCAAuC,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACszB,cAAeA,IAGhK,SAASC,GAAyCprC,EAAmBmrC,GAC1E,MAAMp0B,EAAUm0B,GAA+CC,GAC/D,OAAOn0B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASqrC,GAA6BC,GAE3C,OADctQ,IACDpjB,qCAAqC,qBAAqB,EACnE,iBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,aAAc,CAACyzB,2BAA4BA,IAGvF,SAASC,GAAuBvrC,EAAmBsrC,GACxD,MAAMv0B,EAAUs0B,GAA6BC,GAC7C,OAAOt0B,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGpC,SAASwrC,GAAiCC,GAE/C,OADczQ,IACDpjB,qCAAqC,yBAAyB,EACvE,iBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,aAAc,CAAC4zB,aAAcA,IAGzE,SAASC,GAA2B1rC,EAAmByrC,GAC5D,MAAM10B,EAAUy0B,GAAiCC,GACjD,OAAOz0B,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGpC,SAAS2rC,GAAiCR,GAE/C,OADcnQ,IACDpjB,qCAAqC,yBAAyB,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACszB,cAAeA,IAGlJ,SAASS,GAA2B5rC,EAAmBmrC,GAC5D,MAAMp0B,EAAU40B,GAAiCR,GACjD,OAAOn0B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS6rC,GAAoCV,GAElD,OADcnQ,IACDpjB,qCAAqC,4BAA4B,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACszB,cAAeA,IAGrJ,SAASW,GAA8B9rC,EAAmBmrC,GAC/D,MAAMp0B,EAAU80B,GAAoCV,GACpD,OAAOn0B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS+rC,GAAmCZ,GAEjD,OADcnQ,IACDpjB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACszB,cAAeA,IAGpJ,SAASa,GAA6BhsC,EAAmBmrC,GAC9D,MAAMp0B,EAAUg1B,GAAmCZ,GACnD,OAAOn0B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASisC,GAA2Bd,EAAiCG,GAE1E,OADctQ,IACDpjB,qCAAqC,mBAAmB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACszB,cAAeA,EAAeG,2BAA4BA,IAGlL,SAASY,GAAqBlsC,EAAmBmrC,EAAiCG,GACvF,MAAMv0B,EAAUk1B,GAA2Bd,EAAeG,GAC1D,OAAOt0B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASmsC,GAAmC34B,EAA2C44B,GAE5F,OADcpR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,2BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,CAACu0B,4BAA6BA,IAGlG,SAASC,GAA6BrsC,EAAmBosC,GAC9D,MAAMr1B,EAAUo1B,GAAmCnsC,EAAQwT,oBAAqB44B,GAChF,OAAOp1B,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGhD,SAASssC,GAAwC94B,EAA2C+4B,GAEjG,OADcvR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gCAAgC,EAC9E,gCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,4BAA6B,CAAC00B,iCAAkCA,IAG5G,SAASC,GAAkCxsC,EAAmBusC,GACnE,MAAMx1B,EAAUu1B,GAAwCtsC,EAAQwT,oBAAqB+4B,GACrF,OAAOv1B,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGrD,SAASysC,GAAiCC,GAE/C,OADc1R,IACDpjB,qCAAqC,yBAAyB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAAC60B,kBAAmBA,IAGjJ,SAASC,GAA2B3sC,EAAmB0sC,GAC5D,MAAM31B,EAAU01B,GAAiCC,GACjD,OAAO11B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS4sC,GAA2CC,GAEzD,OADc7R,IACDpjB,qCAAqC,mCAAmC,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACg1B,kBAAmBA,IAG3J,SAASC,GAAqC9sC,EAAmB6sC,GACtE,MAAM91B,EAAU61B,GAA2CC,GAC3D,OAAO71B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS+sC,GAA8BC,GAE5C,OADchS,IACDpjB,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACm1B,WAAYA,IAGvI,SAASC,GAAwBjtC,EAAmBgtC,GACzD,MAAMj2B,EAAUg2B,GAA8BC,GAC9C,OAAOh2B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASktC,GAAoCF,GAElD,OADchS,IACDpjB,qCAAqC,4BAA4B,EAC1E,kBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,cAAe,CAACm1B,WAAYA,IAGxE,SAASG,GAA8BntC,EAAmBgtC,GAC/D,MAAMj2B,EAAUm2B,GAAoCF,GACpD,OAAOh2B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASotC,GAA0C55B,EAA2CK,EAAmB2U,EAAwBuD,GAE9I,OADciP,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kCAAkC,EAChF,mCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,+BAAgC,CAAChE,UAAWA,EAAW2U,OAAQA,EAAQuD,iBAAkBA,IAGrI,SAASshB,GAAoCrtC,EAAmB6T,EAAmB2U,EAAwBuD,GAChH,MAAMhV,EAAUq2B,GAA0CptC,EAAQwT,oBAAqBK,EAAW2U,EAAQuD,GAC1G,OAAO/U,EAAAA,EAAAA,IAA6CD,EAAS/W,GAGxD,SAASstC,GAAkD95B,EAA2C0U,EAA6BmV,GAExI,OADcrC,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,0CAA0C,EACxF,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAACqQ,YAAaA,EAAamV,WAAYA,IAGlG,SAASkQ,GAA4CvtC,EAAmBkoB,EAA6BmV,GAC1G,MAAMtmB,EAAUu2B,GAAkDttC,EAAQwT,oBAAqB0U,EAAamV,GAC5G,OAAOrmB,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASwtC,GAA4Bh6B,EAA2Ci6B,EAAgCnsB,GAErH,OADc0Z,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,oBAAoB,EAClE,wBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,oBAAqB,CAAC41B,qBAAsBA,EAAsBnsB,oBAAqBA,IAGnI,SAASosB,GAAsB1tC,EAAmBytC,EAAgCnsB,GACvF,MAAMvK,EAAUy2B,GAA4BxtC,EAAQwT,oBAAqBi6B,EAAsBnsB,GAC/F,OAAOtK,EAAAA,EAAAA,IAAkCD,EAAS/W,GAG7C,SAAS2tC,GAAoCC,GAElD,OADc5S,IACDpjB,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAAC+1B,iBAAkBA,IAGnJ,SAASC,GAA8B7tC,EAAmB4tC,GAC/D,MAAM72B,EAAU42B,GAAoCC,GACpD,OAAO52B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS8tC,GAAiCt6B,EAA2CqW,GAE1F,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yBAAyB,EACvE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACgS,eAAgBA,IAGjF,SAASkkB,GAA2B/tC,EAAmB6pB,GAC5D,MAAM9S,EAAU+2B,GAAiC9tC,EAAQwT,oBAAqBqW,GAC9E,OAAO7S,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAASguC,GAA8C/V,EAAmCgW,EAA6CC,EAAgGC,GAE5O,OADcnT,IACDpjB,qCAAqC,sCAAsC,EACpF,iCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6BC,2CAA4CA,EAA4CC,cAAeA,IAGnR,SAASC,GAAwCpuC,EAAmBi4B,EAAmCgW,EAA6CC,EAAgGC,GACzP,MAAMp3B,EAAUi3B,GAA8C/V,EAAmBgW,EAA6BC,EAA4CC,GAC1J,OAAOn3B,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAASquC,GAAiDpW,EAAmCgW,EAA6CC,EAAgGC,GAE/O,OADcnT,IACDpjB,qCAAqC,yCAAyC,EACvF,iCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6BC,2CAA4CA,EAA4CC,cAAeA,IAGnR,SAASG,GAA2CtuC,EAAmBi4B,EAAmCgW,EAA6CC,EAAgGC,GAC5P,MAAMp3B,EAAUs3B,GAAiDpW,EAAmBgW,EAA6BC,EAA4CC,GAC7J,OAAOn3B,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAASuuC,GAA0DtW,EAAmCgW,EAA6CE,GAExJ,OADcnT,IACDpjB,qCAAqC,kDAAkD,EAChG,iCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6BE,cAAeA,IAG3L,SAASK,GAAoDxuC,EAAmBi4B,EAAmCgW,EAA6CE,GACrK,MAAMp3B,EAAUw3B,GAA0DtW,EAAmBgW,EAA6BE,GAC1H,OAAOn3B,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAASyuC,GAA6DxW,EAAmCgW,EAA6CE,GAE3J,OADcnT,IACDpjB,qCAAqC,qDAAqD,EACnG,iCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,6BAA8B,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6BE,cAAeA,IAG3L,SAASO,GAAuD1uC,EAAmBi4B,EAAmCgW,EAA6CE,GACxK,MAAMp3B,EAAU03B,GAA6DxW,EAAmBgW,EAA6BE,GAC7H,OAAOn3B,EAAAA,EAAAA,IAAyCD,EAAS/W,GAGpD,SAAS2uC,GAA+D1W,EAAmCgW,EAA6CW,EAAmCT,GAEhM,OADcnT,IACDpjB,qCAAqC,uDAAuD,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6BW,kBAAmBA,EAAmBT,cAAeA,IAGjT,SAASU,GAAyD7uC,EAAmBi4B,EAAmCgW,EAA6CW,EAAmCT,GAC7M,MAAMp3B,EAAU43B,GAA+D1W,EAAmBgW,EAA6BW,EAAmBT,GAClJ,OAAOn3B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS8uC,GAAmD7W,EAAmCgW,EAA6Cc,EAAiEZ,GAElN,OADcnT,IACDpjB,qCAAqC,2CAA2C,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,EAA6Bc,mBAAoBA,EAAoBZ,cAAeA,IAGvS,SAASa,GAA6ChvC,EAAmBi4B,EAAmCgW,EAA6Cc,EAAiEZ,GAC/N,MAAMp3B,EAAU+3B,GAAmD7W,EAAmBgW,EAA6Bc,EAAoBZ,GACvI,OAAOn3B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASivC,KAEd,OADcjU,IACDpjB,qCAAqC,2CAA2C,EACzF,4CACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,wCAAyC,IAGtF,SAASq3B,GAA6ClvC,GAC3D,MAAM+W,EAAUk4B,KAChB,OAAOj4B,EAAAA,EAAAA,IAAoDD,EAAS/W,GAG/D,SAASmvC,GAA6DlB,GAE3E,OADcjT,IACDpjB,qCAAqC,qDAAqD,EACnG,wCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,oCAAqC,CAACo2B,4BAA6BA,IAGhH,SAASmB,GAAuDpvC,EAAmBiuC,GACxF,MAAMl3B,EAAUo4B,GAA6DlB,GAC7E,OAAOj3B,EAAAA,EAAAA,IAAgDD,EAAS/W,GAG3D,SAASqvC,GAAiD77B,EAA2CykB,GAE1G,OADc+C,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yCAAyC,EACvF,yCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qCAAsC,CAACogB,kBAAmBA,IAGtG,SAASqX,GAA2CtvC,EAAmBi4B,GAC5E,MAAMlhB,EAAUs4B,GAAiDrvC,EAAQwT,oBAAqBykB,GAC9F,OAAOjhB,EAAAA,EAAAA,IAAmDD,EAAS/W,GAG9D,SAASuvC,GAAwE/7B,EAA2CykB,EAAmCgW,GAEpK,OADcjT,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gEAAgE,EAC9G,yCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qCAAsC,CAACogB,kBAAmBA,EAAmBgW,4BAA6BA,IAGtJ,SAASuB,GAAkExvC,EAAmBi4B,EAAmCgW,GACtI,MAAMl3B,EAAUw4B,GAAwEvvC,EAAQwT,oBAAqBykB,EAAmBgW,GACxI,OAAOj3B,EAAAA,EAAAA,IAAmDD,EAAS/W,GAG9D,SAASyvC,GAA+CxX,GAE7D,OADc+C,IACDpjB,qCAAqC,uCAAuC,EACrF,yDACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,qDAAsD,CAACogB,kBAAmBA,IAGvH,SAASyX,GAAyC1vC,EAAmBi4B,GAC1E,MAAMlhB,EAAU04B,GAA+CxX,GAC/D,OAAOjhB,EAAAA,EAAAA,IAAiED,EAAS/W,GAG5E,SAAS2vC,GAAkDtS,EAA2BnV,EAA4Bta,EAAmBgiC,EAAiCC,GAE3K,OADc7U,IACDpjB,qCAAqC,0CAA0C,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACwlB,WAAYA,EAAYnV,YAAaA,EAAata,UAAWA,EAAWgiC,uBAAwBA,EAAwBC,mCAAoCA,IAG3S,SAASC,GAA4C9vC,EAAmBq9B,EAA2BnV,EAA4Bta,EAAmBgiC,EAAiCC,GACxL,MAAM94B,EAAU44B,GAAkDtS,EAAYnV,EAAata,EAAWgiC,EAAwBC,GAC9H,OAAO74B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS+vC,GAA2D1S,EAA2BnV,EAA4Bta,GAEhI,OADcotB,IACDpjB,qCAAqC,mDAAmD,EAAM,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAACwlB,WAAYA,EAAYnV,YAAaA,EAAata,UAAWA,IAG3N,SAASoiC,GAAqDhwC,EAAmBq9B,EAA2BnV,EAA4Bta,GAC7I,MAAMmJ,EAAUg5B,GAA2D1S,EAAYnV,EAAata,GACpG,OAAOoJ,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAASiwC,GAAiEz8B,EAA2CykB,EAAmCiY,GAE7J,OADclV,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,yDAAyD,EACvG,yCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qCAAsC,CAACogB,kBAAmBA,EAAmBiY,gDAAiDA,IAG1K,SAASC,GAA2DnwC,EAAmBi4B,EAAmCiY,GAC/H,MAAMn5B,EAAUk5B,GAAiEjwC,EAAQwT,oBAAqBykB,EAAmBiY,GACjI,OAAOl5B,EAAAA,EAAAA,IAAmDD,EAAS/W,GAG9D,SAASowC,GAA6CC,GAE3D,OADcrV,IACDpjB,qCAAqC,qCAAqC,EACnF,sCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,kCAAmC,CAACw4B,6BAA8BA,IAG/G,SAASC,GAAuCtwC,EAAmBqwC,GACxE,MAAMt5B,EAAUq5B,GAA6CC,GAC7D,OAAOr5B,EAAAA,EAAAA,IAA8CD,EAAS/W,GAGzD,SAASuwC,GAA2CC,EAAkCH,GAE3F,OADcrV,IACDpjB,qCAAqC,mCAAmC,EACjF,mDACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,+CAAgD,CAAC24B,iBAAkBA,EAAkBH,6BAA8BA,IAG/J,SAASI,GAAqCzwC,EAAmBwwC,EAAkCH,GACxG,MAAMt5B,EAAUw5B,GAA2CC,EAAkBH,GAC7E,OAAOr5B,EAAAA,EAAAA,IAA2DD,EAAS/W,GAGtE,SAAS0wC,GAA4Bl9B,EAA2Cm9B,GAErF,OADc3V,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,oBAAoB,EAClE,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,CAAC84B,aAAcA,IAG5E,SAASC,GAAsB5wC,EAAmB2wC,GACvD,MAAM55B,EAAU25B,GAA4B1wC,EAAQwT,oBAAqBm9B,GACzE,OAAO35B,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAAS6wC,GAAwDr9B,EAA2Cs9B,GAEjH,OADc9V,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gDAAgD,EAC9F,gDACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,4CAA6C,CAACi5B,eAAgBA,IAG1G,SAASC,GAAkD/wC,EAAmB8wC,GACnF,MAAM/5B,EAAU85B,GAAwD7wC,EAAQwT,oBAAqBs9B,GACrG,OAAO95B,EAAAA,EAAAA,IAA0DD,EAAS/W,GAGrE,SAASgxC,GAAmC/C,EAA4Cc,EAAgEZ,GAE7J,OADcnT,IACDpjB,qCAAqC,2BAA2B,EACzE,yBACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,qBAAsB,CAACo2B,4BAA6BA,EAA6Bc,mBAAoBA,EAAoBZ,cAAeA,IAGpL,SAAS8C,GAA6BjxC,EAAmBiuC,EAA4Cc,EAAgEZ,GAC1K,MAAMp3B,EAAUi6B,GAAmC/C,EAA6Bc,EAAoBZ,GACpG,OAAOn3B,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAASkxC,GAAoD19B,EAA2CqW,GAE7G,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,4CAA4C,EAC1F,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACgS,eAAgBA,IAG5F,SAASsnB,GAA8CnxC,EAAmB6pB,GAC/E,MAAM9S,EAAUm6B,GAAoDlxC,EAAQwT,oBAAqBqW,GACjG,OAAO7S,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASoxC,GAAkCC,GAEhD,OADcrW,IACDpjB,qCAAqC,0BAA0B,EACxE,YACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,QAAS,CAACw5B,cAAeA,IAGrE,SAASC,GAA4BtxC,EAAmBqxC,GAC7D,MAAMt6B,EAAUq6B,GAAkCC,GAClD,OAAOr6B,EAAAA,EAAAA,IAAoBD,EAAS/W,GAG/B,SAASuxC,GAAyB/9B,EAA2CqW,GAElF,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,iBAAiB,EAC/D,cACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,UAAW,CAACgS,eAAgBA,IAGxE,SAAS2nB,GAAmBxxC,EAAmB6pB,GACpD,MAAM9S,EAAUw6B,GAAyBvxC,EAAQwT,oBAAqBqW,GACtE,OAAO7S,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAASyxC,GAAyCjpB,EAAwBkpB,GAE/E,OADc1W,IACDpjB,qCAAqC,iCAAiC,EAC/E,8BACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,0BAA2B,CAAC2Q,OAAQA,EAAQkpB,oBAAqBA,IAG7G,SAASC,GAAmC3xC,EAAmBwoB,EAAwBkpB,GAC5F,MAAM36B,EAAU06B,GAAyCjpB,EAAQkpB,GACjE,OAAO16B,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAAS4xC,GAA0Bp+B,GAExC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kBAAkB,EAChE,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,IAG3D,SAASg6B,GAAoB7xC,GAClC,MAAM+W,EAAU66B,GAA0B5xC,EAAQwT,qBAClD,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAAS8xC,GAAsCt+B,EAA2C2T,EAAgBC,GAE/G,OADc4T,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,8BAA8B,EAC5E,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,CAACsP,OAAQA,EAAQC,MAAOA,IAGnF,SAAS2qB,GAAgC/xC,EAAmBmnB,EAAgBC,GACjF,MAAMrQ,EAAU+6B,GAAsC9xC,EAAQwT,oBAAqB2T,EAAQC,GAC3F,OAAOpQ,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASgyC,KAEd,OADchX,IACDpjB,qCAAqC,uCAAuC,EACrF,wCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,oCAAqC,IAGlF,SAASo6B,GAAyCjyC,GACvD,MAAM+W,EAAUi7B,KAChB,OAAOh7B,EAAAA,EAAAA,IAAgDD,EAAS/W,GAG3D,SAASkyC,GAA+B1+B,GAE7C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,IAGhE,SAASs6B,GAAyBnyC,GACvC,MAAM+W,EAAUm7B,GAA+BlyC,EAAQwT,qBACvD,OAAOwD,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAASoyC,GAA6B5+B,GAE3C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,yBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qBAAsB,IAGlE,SAASw6B,GAAuBryC,GACrC,MAAM+W,EAAUq7B,GAA6BpyC,EAAQwT,qBACrD,OAAOwD,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAASsyC,GAA6B9+B,GAE3C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,qBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,IAG9D,SAAS06B,GAAuBvyC,GACrC,MAAM+W,EAAUu7B,GAA6BtyC,EAAQwT,qBACrD,OAAOwD,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG1C,SAASwyC,KAEd,OADcxX,IACDpjB,qCAAqC,yCAAyC,EACvF,0CACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,sCAAuC,IAGpF,SAAS46B,GAA2CzyC,GACzD,MAAM+W,EAAUy7B,KAChB,OAAOx7B,EAAAA,EAAAA,IAAkDD,EAAS/W,GAG7D,SAAS0yC,GAA6Bl/B,EAA2Cm/B,GAEtF,OADc3X,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAAC86B,YAAaA,IAG9E,SAASC,GAAuB5yC,EAAmB2yC,GACxD,MAAM57B,EAAU27B,GAA6B1yC,EAAQwT,oBAAqBm/B,GAC1E,OAAO37B,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAAS6yC,GAAuBr/B,GAErC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,eAAe,EAC7D,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,IAGhE,SAASi7B,GAAiB9yC,GAC/B,MAAM+W,EAAU87B,GAAuB7yC,EAAQwT,qBAC/C,OAAOwD,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAAS+yC,GAA0Bv/B,EAA2CqW,GAEnF,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kBAAkB,EAChE,uBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,mBAAoB,CAACgS,eAAgBA,IAGjF,SAASmpB,GAAoBhzC,EAAmB6pB,GACrD,MAAM9S,EAAUg8B,GAA0B/yC,EAAQwT,oBAAqBqW,GACvE,OAAO7S,EAAAA,EAAAA,IAAiCD,EAAS/W,GAG5C,SAASizC,KAEd,OADcjY,IACDpjB,qCAAqC,+BAA+B,EAC7E,gCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,4BAA6B,IAG1E,SAASq7B,GAAiClzC,GAC/C,MAAM+W,EAAUk8B,KAChB,OAAOj8B,EAAAA,EAAAA,IAAwCD,EAAS/W,GAGnD,SAASmzC,KAEd,OADcnY,IACDpjB,qCAAqC,0BAA0B,EACxE,2BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGrE,SAASu7B,GAA4BpzC,GAC1C,MAAM+W,EAAUo8B,KAChB,OAAOn8B,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAASqzC,GAA0C7/B,GAExD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kCAAkC,EAChF,kCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,IAG3E,SAASy7B,GAAoCtzC,GAClD,MAAM+W,EAAUs8B,GAA0CrzC,EAAQwT,qBAClE,OAAOwD,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASuzC,KAEd,OADcvY,IACDpjB,qCAAqC,uBAAuB,EACrE,wBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,oBAAqB,IAGlE,SAAS27B,GAAyBxzC,GACvC,MAAM+W,EAAUw8B,KAChB,OAAOv8B,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG3C,SAASyzC,KAEd,OADczY,IACDpjB,qCAAqC,0BAA0B,EACxE,2BACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGrE,SAAS67B,GAA4B1zC,GAC1C,MAAM+W,EAAU08B,KAChB,OAAOz8B,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAAS2zC,KAEd,OADc3Y,IACDpjB,qCAAqC,oBAAoB,EAClE,qBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,IAG/D,SAAS+7B,GAAsB5zC,GACpC,MAAM+W,EAAU48B,KAChB,OAAO38B,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAAS6zC,GAAwBrgC,GAEtC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,gBAAgB,EAC9D,yBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,qBAAsB,IAGlE,SAASi8B,GAAkB9zC,GAChC,MAAM+W,EAAU88B,GAAwB7zC,EAAQwT,qBAChD,OAAOwD,EAAAA,EAAAA,IAAmCD,EAAS/W,GAG9C,SAAS+zC,GAA2BvgC,GAEzC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,mBAAmB,EACjE,mBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,eAAgB,IAG5D,SAASm8B,GAAqBh0C,GACnC,MAAM+W,EAAUg9B,GAA2B/zC,EAAQwT,qBACnD,OAAOwD,EAAAA,EAAAA,IAA6BD,EAAS/W,GAGxC,SAASi0C,GAAmCzgC,GAEjD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,2BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,uBAAwB,IAGpE,SAASq8B,GAA6Bl0C,GAC3C,MAAM+W,EAAUk9B,GAAmCj0C,EAAQwT,qBAC3D,OAAOwD,EAAAA,EAAAA,IAAqCD,EAAS/W,GAGhD,SAASm0C,GAA0B3gC,GAExC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kBAAkB,EAChE,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,IAG3D,SAASu8B,GAAoBp0C,GAClC,MAAM+W,EAAUo9B,GAA0Bn0C,EAAQwT,qBAClD,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASq0C,GAAqC7gC,GAEnD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,IAG3D,SAASy8B,GAA+Bt0C,GAC7C,MAAM+W,EAAUs9B,GAAqCr0C,EAAQwT,qBAC7D,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASu0C,GAA6B/gC,GAE3C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,qBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,IAG9D,SAAS28B,GAAuBx0C,GACrC,MAAM+W,EAAUw9B,GAA6Bv0C,EAAQwT,qBACrD,OAAOwD,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG1C,SAASy0C,GAA0BjhC,GAExC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,kBAAkB,EAChE,kBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,cAAe,IAG3D,SAAS68B,GAAoB10C,GAClC,MAAM+W,EAAU09B,GAA0Bz0C,EAAQwT,qBAClD,OAAOwD,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASkxB,GAA6B1d,GAE3C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,qBAAqB,EACnE,qBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,iBAAkB,IAG9D,SAASsZ,GAAuBnxB,GACrC,MAAM+W,EAAUma,GAA6BlxB,EAAQwT,qBACrD,OAAOwD,EAAAA,EAAAA,IAA+BD,EAAS/W,GAG1C,SAAS20C,GAA4BnhC,GAE1C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,oBAAoB,EAClE,oBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,IAG7D,SAAS+8B,GAAsB50C,GACpC,MAAM+W,EAAU49B,GAA4B30C,EAAQwT,qBACpD,OAAOwD,EAAAA,EAAAA,IAA8BD,EAAS/W,GAGzC,SAAS60C,GAAyBrhC,GAEvC,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,iBAAiB,EAC/D,gBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,YAAa,IAGzD,SAASi9B,GAAmB90C,GACjC,MAAM+W,EAAU89B,GAAyB70C,EAAQwT,qBACjD,OAAOwD,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAAS+0C,GAA+BvhC,EAA2C6G,EAA6B0B,GAErH,OADcif,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,sBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,kBAAmB,CAACwC,aAAcA,EAAc0B,OAAQA,IAGpG,SAASi5B,GAAyBh1C,EAAmBqa,EAA6B0B,GACvF,MAAMhF,EAAUg+B,GAA+B/0C,EAAQwT,oBAAqB6G,EAAc0B,GAC1F,OAAO/E,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG3C,SAASi1C,GAAoCzhC,GAElD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,4BAA4B,EAC1E,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,IAGrE,SAASq9B,GAA8Bl1C,GAC5C,MAAM+W,EAAUk+B,GAAoCj1C,EAAQwT,qBAC5D,OAAOwD,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASm1C,GAAuC3hC,EAA2CuW,GAEhG,OADciR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,+BAA+B,EAC7E,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,CAACkS,WAAYA,IAGlF,SAASqrB,GAAiCp1C,EAAmB+pB,GAClE,MAAMhT,EAAUo+B,GAAuCn1C,EAAQwT,oBAAqBuW,GACpF,OAAO/S,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASq1C,GAAyCpd,GAEvD,OADc+C,IACDpjB,qCAAqC,iCAAiC,EAC/E,kCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACogB,kBAAmBA,IAGhG,SAASqd,GAAmCt1C,EAAmBi4B,GACpE,MAAMlhB,EAAUs+B,GAAyCpd,GACzD,OAAOjhB,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGrD,SAASu1C,GAA0Ctd,EAAmCud,GAE3F,OADcxa,IACDpjB,qCAAqC,kCAAkC,EAChF,kCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,8BAA+B,CAACogB,kBAAmBA,EAAmBud,wBAAyBA,IAG5I,SAASC,GAAoCz1C,EAAmBi4B,EAAmCud,GACxG,MAAMz+B,EAAUw+B,GAA0Ctd,EAAmBud,GAC7E,OAAOx+B,EAAAA,EAAAA,IAA0CD,EAAS/W,GAGrD,SAAS01C,KAEd,OADc1a,IACDpjB,qCAAqC,iCAAiC,EAAO,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,IAG5I,SAAS89B,GAAmC31C,GACjD,MAAM+W,EAAU2+B,KAChB,OAAO1+B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS41C,GAAyCC,EAA0BC,GAEjF,OADc9a,IACDpjB,qCAAqC,iCAAiC,EAAM,GAAI,GAAI,CAAEpL,YAAa,MAAOqL,aAAc,IAAK,CAACg+B,iBAAkBA,EAAkBC,cAAeA,IAGzL,SAASC,GAAmC/1C,EAAmB61C,EAA0BC,GAC9F,MAAM/+B,EAAU6+B,GAAyCC,EAAkBC,GAC3E,OAAO9+B,EAAAA,EAAAA,IAA0BD,EAAS/W,GAGrC,SAASg2C,KAEd,OADchb,IACDpjB,qCAAqC,6BAA6B,EAC3E,qCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,iCAAkC,IAG/E,SAASo+B,GAA+Bj2C,GAC7C,MAAM+W,EAAUi/B,KAChB,OAAOh/B,EAAAA,EAAAA,IAA6CD,EAAS/W,GAGxD,SAASk2C,KAEd,OADclb,IACDpjB,qCAAqC,4BAA4B,EAC1E,oCACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,gCAAiC,IAG9E,SAASs+B,GAA8Bn2C,GAC5C,MAAM+W,EAAUm/B,KAChB,OAAOl/B,EAAAA,EAAAA,IAA4CD,EAAS/W,GAGvD,SAASo2C,GAA8B5iC,EAA2CqW,GAEvF,OADcmR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,sBAAsB,EACpE,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,CAACgS,eAAgBA,IAGtF,SAASwsB,GAAwBr2C,EAAmB6pB,GACzD,MAAM9S,EAAUq/B,GAA8Bp2C,EAAQwT,oBAAqBqW,GAC3E,OAAO7S,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASs2C,GAA+B9iC,EAA2C+V,GAExF,OADcyR,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,uBAAuB,EACrE,cACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,UAAW,CAAC0R,WAAYA,IAGpE,SAASgtB,GAAyBv2C,EAAmBupB,GAC1D,MAAMxS,EAAUu/B,GAA+Bt2C,EAAQwT,oBAAqB+V,GAC5E,OAAOvS,EAAAA,EAAAA,IAAwBD,EAAS/W,GAGnC,SAASw2C,GAAsCC,GAEpD,OADczb,IACDpjB,qCAAqC,8BAA8B,EAAO,GAAI,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,IAAK,CAAC4+B,WAAYA,IAGtJ,SAASC,GAAgC12C,EAAmBy2C,GACjE,MAAM1/B,EAAUy/B,GAAsCC,GACtD,OAAOz/B,EAAAA,EAAAA,IAAsBD,EAAS/W,GAGjC,SAAS22C,GAA2CF,GAEzD,OADczb,IACDpjB,qCAAqC,mCAAmC,EACjF,0CACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,sCAAuC,CAAC4+B,WAAYA,IAGjG,SAASG,GAAqC52C,EAAmBy2C,GACtE,MAAM1/B,EAAU4/B,GAA2CF,GAC3D,OAAOz/B,EAAAA,EAAAA,IAAkDD,EAAS/W,GAG7D,SAAS62C,GAAwBC,GAEtC,OADc9b,IACDpjB,qCAAqC,gBAAgB,EAC9D,iBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,aAAc,CAACi/B,QAASA,IAGrE,SAASC,GAAkB/2C,EAAmB82C,GACnD,MAAM//B,EAAU8/B,GAAwBC,GACxC,OAAO9/B,EAAAA,EAAAA,IAAyBD,EAAS/W,GAGpC,SAASg3C,GAAqCxjC,GAEnD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,6BAA6B,EAC3E,sCACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,kCAAmC,IAG/E,SAASo/B,GAA+Bj3C,GAC7C,MAAM+W,EAAUigC,GAAqCh3C,EAAQwT,qBAC7D,OAAOwD,EAAAA,EAAAA,IAAgDD,EAAS/W,GAG3D,SAASk3C,GAA8B1jC,GAE5C,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,sBAAsB,EACpE,sBACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,kBAAmB,IAG/D,SAASs/B,GAAwBn3C,GACtC,MAAM+W,EAAUmgC,GAA8Bl3C,EAAQwT,qBACtD,OAAOwD,EAAAA,EAAAA,IAAgCD,EAAS/W,GAG3C,SAASo3C,KAEd,OADcpc,IACDpjB,qCAAqC,mBAAmB,EACjE,oBACA,QAAS,CAAEpL,YAAa,OAAQqL,aAAc,gBAAiB,IAG9D,SAASw/B,GAAqBr3C,GACnC,MAAM+W,EAAUqgC,KAChB,OAAOpgC,EAAAA,EAAAA,IAA4BD,EAAS/W,GAGvC,SAASs3C,GAAmC9jC,GAEjD,OADcwnB,IAAaxjB,eAAehE,GAC7BoE,qCAAqC,2BAA2B,EACzE,4BACA,OAAQ,CAAEpL,YAAa,OAAQqL,aAAc,wBAAyB,IAGrE,SAAS0/B,GAA6Bv3C,GAC3C,MAAM+W,EAAUugC,GAAmCt3C,EAAQwT,qBAC3D,OAAOwD,EAAAA,EAAAA,IAAsCD,EAAS/W,GAGjD,SAASw3C,GAA4Cvf,GAE1D,OADc+C,IACDpjB,qCAAqC,oCAAoC,EAClF,yCACA,QAAS,CAAEpL,YAAa,MAAOqL,aAAc,qCAAsC,CAACogB,kBAAmBA,IAGtG,SAASwf,GAAsCz3C,EAAmBi4B,GACvE,MAAMlhB,EAAUygC,GAA4Cvf,GAC5D,OAAOjhB,EAAAA,EAAAA,IAAiDD,EAAS/W,iCCjiElE,IAAKG,GAAZ,SAAYA,GACRA,EAAAA,EAAA,+BACAA,EAAAA,EAAA,uBAFJ,CAAYA,IAAAA,EAAY,4jsBCXxB,IAAIu3C,EAAc,EAAQ,IAEtBC,EAAaC,UAEjBC,EAAOC,QAAU,SAAUC,EAAGC,GAC5B,WAAYD,EAAEC,GAAI,MAAML,EAAW,0BAA4BD,EAAYM,GAAK,OAASN,EAAYK,oBCNvG,IAEIE,EAFY,EAAQ,IAEAC,MAAM,mBAE9BL,EAAOC,UAAYG,IAAYA,EAAQ,kBCJvC,IAAIE,EAAK,EAAQ,IAEjBN,EAAOC,QAAU,eAAeM,KAAKD,kBCFrC,IAEIE,EAFY,EAAQ,IAEDH,MAAM,wBAE7BL,EAAOC,UAAYO,IAAWA,EAAO,+BCHrC,IAAIC,EAAI,EAAQ,KACZC,EAAc,EAAQ,IACtBC,EAAY,EAAQ,IACpBC,EAAW,EAAQ,IACnBC,EAAoB,EAAQ,IAC5BC,EAAwB,EAAQ,KAChC92C,EAAW,EAAQ,KACnB+2C,EAAQ,EAAQ,IAChBC,EAAe,EAAQ,KACvBC,EAAsB,EAAQ,IAC9BC,EAAK,EAAQ,KACbC,EAAa,EAAQ,KACrBC,EAAK,EAAQ,IACbC,EAAS,EAAQ,KAEjBd,EAAO,GACPe,EAAaZ,EAAYH,EAAKhkC,MAC9BvQ,EAAO00C,EAAYH,EAAKv0C,MAGxBu1C,EAAqBR,GAAM,WAC7BR,EAAKhkC,UAAK5W,MAGR67C,EAAgBT,GAAM,WACxBR,EAAKhkC,KAAK,SAGRklC,EAAgBR,EAAoB,QAEpCS,GAAeX,GAAM,WAEvB,GAAIK,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACIM,EAAMC,EAAKv9C,EAAOwP,EADlBhP,EAAS,GAIb,IAAK88C,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFAC,EAAMC,OAAOC,aAAaH,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAIt9C,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAKwP,EAAQ,EAAGA,EAAQ,GAAIA,IAC1B0sC,EAAKv0C,KAAK,CAAE+1C,EAAGH,EAAM/tC,EAAOmuC,EAAG39C,IAMnC,IAFAk8C,EAAKhkC,MAAK,SAAUvD,EAAGwD,GAAK,OAAOA,EAAEwlC,EAAIhpC,EAAEgpC,KAEtCnuC,EAAQ,EAAGA,EAAQ0sC,EAAKt5C,OAAQ4M,IACnC+tC,EAAMrB,EAAK1sC,GAAOkuC,EAAEE,OAAO,GACvBp9C,EAAOo9C,OAAOp9C,EAAOoC,OAAS,KAAO26C,IAAK/8C,GAAU+8C,GAG1D,MAAkB,gBAAX/8C,MAgBT47C,EAAE,CAAEyB,OAAQ,QAASC,OAAO,EAAMC,OAbrBb,IAAuBC,IAAkBC,IAAkBC,GAapB,CAClDnlC,KAAM,SAAc8lC,QACA18C,IAAd08C,GAAyB1B,EAAU0B,GAEvC,IAAIC,EAAQ1B,EAASz7C,MAErB,GAAIu8C,EAAa,YAAqB/7C,IAAd08C,EAA0Bf,EAAWgB,GAAShB,EAAWgB,EAAOD,GAExF,IAEIE,EAAa1uC,EAFb2uC,EAAQ,GACRC,EAAc5B,EAAkByB,GAGpC,IAAKzuC,EAAQ,EAAGA,EAAQ4uC,EAAa5uC,IAC/BA,KAASyuC,GAAOt2C,EAAKw2C,EAAOF,EAAMzuC,IAQxC,IALAmtC,EAAawB,EA3BI,SAAUH,GAC7B,OAAO,SAAUK,EAAGC,GAClB,YAAUh9C,IAANg9C,GAAyB,OACnBh9C,IAAN+8C,EAAwB,OACV/8C,IAAd08C,GAAiCA,EAAUK,EAAGC,IAAM,EACjD34C,EAAS04C,GAAK14C,EAAS24C,GAAK,GAAK,GAsBpBC,CAAeP,IAEnCE,EAAc1B,EAAkB2B,GAChC3uC,EAAQ,EAEDA,EAAQ0uC,GAAaD,EAAMzuC,GAAS2uC,EAAM3uC,KACjD,KAAOA,EAAQ4uC,GAAa3B,EAAsBwB,EAAOzuC,KAEzD,OAAOyuC,iCCtGX,IAAI7B,EAAI,EAAQ,KACZoC,EAAU,EAAQ,IAClBC,EAA2B,EAAQ,KACnC/B,EAAQ,EAAQ,IAChBgC,EAAa,EAAQ,IACrBC,EAAa,EAAQ,IACrBC,EAAqB,EAAQ,KAC7BC,EAAiB,EAAQ,KACzBC,EAAgB,EAAQ,KAExBC,EAAyBN,GAA4BA,EAAyBhjD,UA0BlF,GAhBA2gD,EAAE,CAAEyB,OAAQ,UAAWC,OAAO,EAAMkB,MAAM,EAAMjB,SAP5BU,GAA4B/B,GAAM,WAEpDqC,EAAgC,QAAEn5C,KAAK,CAAErF,KAAM,eAA+B,mBAKT,CACrE,QAAW,SAAU0+C,GACnB,IAAIC,EAAIN,EAAmB99C,KAAM49C,EAAW,YACxCS,EAAaR,EAAWM,GAC5B,OAAOn+C,KAAKP,KACV4+C,EAAa,SAAUd,GACrB,OAAOQ,EAAeK,EAAGD,KAAa1+C,MAAK,WAAc,OAAO89C,MAC9DY,EACJE,EAAa,SAAUpxC,GACrB,OAAO8wC,EAAeK,EAAGD,KAAa1+C,MAAK,WAAc,MAAMwN,MAC7DkxC,OAMLT,GAAWG,EAAWF,GAA2B,CACpD,IAAIW,EAASV,EAAW,WAAWjjD,UAAmB,QAClDsjD,EAAgC,UAAMK,GACxCN,EAAcC,EAAwB,UAAWK,EAAQ,CAAEC,QAAQ","sources":["webpack://Msdyn365.Commerce.Online/../../src/action-registrar.ts?ed12","webpack://Msdyn365.Commerce.Online/../../src/create-data-action.vnext.ts?cb4f","webpack://Msdyn365.Commerce.Online/../../src/wrap-data-action.ts?c6a2","webpack://Msdyn365.Commerce.Online/../../src/action-error.ts?76a5","webpack://Msdyn365.Commerce.Online/../../src/action-runtime-utils.ts?df0b","webpack://Msdyn365.Commerce.Online/../../../src/cache/retail-cache-helper.ts?35f4","webpack://Msdyn365.Commerce.Online/../../src/event-emitter.ts?da67","webpack://Msdyn365.Commerce.Online/../../src/action-executor.ts?e3c4","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-catalogs.ts?b35c","webpack://Msdyn365.Commerce.Online/../../src/helpers.ts?e5d2","webpack://Msdyn365.Commerce.Online/../../src/action-context.ts?0ab9","webpack://Msdyn365.Commerce.Online/../../src/mock-helper.ts?6126","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-media-locations.ts?b49d","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-additional-media-locations.ts?d6e0","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-customer.ts?6b9b","webpack://Msdyn365.Commerce.Online/../../src/ICache.ts?b706","webpack://Msdyn365.Commerce.Online/../../src/cache-utils.ts?471a","webpack://Msdyn365.Commerce.Online/../../src/request-cache.ts?b274","webpack://Msdyn365.Commerce.Online/../../src/index.ts?0e3e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://Msdyn365.Commerce.Online/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://Msdyn365.Commerce.Online/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://Msdyn365.Commerce.Online/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack://Msdyn365.Commerce.Online/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://Msdyn365.Commerce.Online/../../src/Interfaces/ICache.ts?0279","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/delete-property-or-throw.js?8052","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-ff-version.js?960c","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-is-ie-or-edge.js?874f","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/engine-webkit-version.js?9560","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.sort.js?67f8","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.finally.js?2389"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ActionPostHook,\n ActionPostReaderHook,\n ActionPreHook,\n ActionPreReaderHook,\n IAnyAction,\n msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport { LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst DEPRECATED_HOOK_TYPES = ['pre', 'post', 'preRead', 'postRead'];\n\nexport namespace ActionRegistrar {\n type ActionHook = ActionPreHook | ActionPostHook;\n\n export type ActionRegistration = {\n action?: IAnyAction;\n pre?: Set;\n post?: Set>;\n preRead?: Set;\n postRead?: Set>;\n preReader?: Set;\n postReader?: Set>;\n };\n\n interface IActionDictionary {\n [actionKey: string]: ActionRegistration;\n }\n\n const dataActionRegister: IActionDictionary = {};\n\n export const getRegistration = (id?: string): ActionRegistration | undefined => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((msdyn365Commerce).getPartnerOverrideAction && id) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const partnerDataAction = (msdyn365Commerce).getPartnerOverrideAction(id);\n if (partnerDataAction && partnerDataAction.default) {\n dataActionRegister[id].action = partnerDataAction.default;\n } else if (partnerDataAction && partnerDataAction.prototype && partnerDataAction.prototype.Action) {\n dataActionRegister[id].action = partnerDataAction;\n }\n }\n\n if (id) {\n return dataActionRegister[id];\n }\n\n return undefined;\n };\n\n export const unwrapAction = (action: IAnyAction): IAnyAction => {\n if (action && action.prototype && !action.prototype.isAction) {\n // registered action is an action wrapper. Unwrap it.\n return >action.prototype.Action;\n }\n return action;\n };\n /**\n * Gets the action registered with id\n * @param id - ID to look up action\n */\n export const getAction = (id?: string): IAnyAction | undefined => {\n if (!id) {\n return;\n }\n const registeredAction = getRegistration(id);\n if (registeredAction) {\n return >registeredAction.action;\n }\n return;\n };\n\n /**\n * registers action. Does nothing if action is already registered\n * @param id - ID to register action with\n * @param action - action to register\n */\n export const registerAction = (id: string, dataAction: IAnyAction): IAnyAction | undefined => {\n if (!id || !dataAction) {\n // unable to register no id or action\n return;\n }\n\n const actionRegister = dataActionRegister;\n\n if (actionRegister[id]) {\n const registration = actionRegister[id];\n registration.action = dataAction;\n return >actionRegister[id].action;\n } else {\n const registration = { action: dataAction };\n actionRegister[id] = registration;\n return dataAction;\n }\n };\n\n const registerHook = (\n hookType: 'pre' | 'post' | 'preRead' | 'postRead' | 'preReader' | 'postReader'\n ) => (id: string, hook: HookType) => {\n // deprecate read only hook\n if (!msdyn365Commerce.isBrowser && DEPRECATED_HOOK_TYPES.indexOf(hookType) > -1) {\n StaticTelemetry.log(\n LogLevel.Warning,\n `Data action hooks are deprecated and will be removed in later versions. Please use data action overrides to extend data actions. The related action of this ${hookType} hook is - ${id}`\n );\n }\n\n const registration = getRegistration(id);\n // coerce hook into an iterable\n const hooks = Array.isArray(hook) ? hook : [hook];\n if (!registration) {\n // If the registration does not exist init one with just the hooks\n const newRegistration: { [id: string]: unknown } = {};\n newRegistration[hookType] = new Set(hooks);\n dataActionRegister[id] = newRegistration;\n } else {\n // If the registration does exist merge new hooks with existing hooks\n const hookRegistration = registration[hookType] || new Set();\n hooks.forEach(h => {\n hookRegistration.add(h);\n });\n // @ts-ignore\n registration[hookType] = hookRegistration;\n }\n return hook;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostHook = registerHook | ActionPostHook[]>('post');\n export const registerPreHook = registerHook('pre');\n export const registerPreReadOnlyHook = registerHook('preRead');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReadOnlyHook = registerHook | ActionPostHook[]>('postRead');\n export const registerPreReaderHook = registerHook('preReader');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReaderHook = registerHook | ActionPostReaderHook[]>('postReader');\n\n export const getPreHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.pre;\n };\n\n export const getPostHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.post;\n };\n\n export const getPreReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preRead;\n };\n\n export const getPostReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postRead;\n };\n\n export const getPreReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preReader;\n };\n export const getPostReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postReader;\n };\n\n /**\n * Resolves the action and returns first action in action chain. Registers action if not yet registered\n * @param id - Action id to look up or register under\n * @param action - Action function\n */\n export const resolveAction = (id: string, action: IAnyAction): IAnyAction | undefined => {\n return getAction(id) || >registerAction(id, action) || action;\n };\n\n export const resolveRegistration = (\n id: string,\n action: IAnyAction,\n preHooks?: ActionPreHook[],\n postHooks?: ActionPostHook[],\n preReadHooks?: ActionPreHook[],\n postReadHooks?: ActionPostHook[],\n preReaderHooks?: ActionPreReaderHook[],\n postReaderHooks?: ActionPostReaderHook[]\n ) => {\n const resolvedAction = resolveAction(id, action);\n if (!resolvedAction) {\n return;\n }\n preHooks && registerPreHook(id, preHooks);\n postHooks && registerPostHook(id, postHooks);\n preReadHooks && registerPreReadOnlyHook(id, preReadHooks);\n postReadHooks && registerPostReadOnlyHook(id, postReadHooks);\n preReaderHooks && registerPreReaderHook(id, preReaderHooks);\n postReaderHooks && registerPostReaderHook(id, postReaderHooks);\n return getRegistration(id);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IActionInput, IActionWrapperPrototype, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { dataActionOptions, wrapDataAction } from './wrap-data-action';\n\n/**\n * Higher order function which exposes the current method as an action\n * @param action The action method\n * @param isBatched If the service call can handle batched requests efficiently\n * @param input Optional parameter of a single instance or an array of IActionInputs that will be passed to the action method.\n */\nexport const createObservableDataAction = (options: dataActionOptions): IObservableAction => {\n const wrappedAction = wrapDataAction(\n options,\n (arg1: IActionInput | IActionInput[], arg2: IActionContext): AsyncResult => {\n return new AsyncResult((resolve, reject) => {\n arg2.chainAction(options.action, arg1)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n );\n (wrappedAction.prototype).setProperty('isObservable', true);\n return >wrappedAction;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAction, IActionInput, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\nexport type dataActionOptions = {\n action: IAction;\n isBatched?: boolean;\n id?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input?: (...args: any[]) => IActionInput | IActionInput[];\n};\n\ntype IActionWrap = IAction | IObservableAction;\n\n/**\n * Wraps a data action with the associated action wrap.\n * @param options\n * @param actionWrap\n */\nexport const wrapDataAction = (options: dataActionOptions, actionWrap: IActionWrap): IActionWrap => {\n if (!options) {\n throw new Error('wrapDataAction called with invalid options. Options should have atleast action defined');\n }\n\n if (!options.action) {\n throw new Error(\n `Received invalid actions when attempting to parse options. Input name: ${options.input ? options.input.name : 'undefined'}`\n );\n }\n\n let inputFunc = options.input!;\n let id = options.id;\n let isBatched = options.isBatched!;\n options.action.prototype = {\n id,\n isBatched,\n isAction: true\n };\n\n actionWrap.prototype = {\n id,\n isAction: false,\n _action: options.action,\n set RegistrationId(registrationId: string) {\n options.action.prototype.RegistrationId = registrationId;\n },\n get RegistrationId(): string {\n return options.action.prototype.RegistrationId || '';\n },\n set inputFunc(func: Function) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (inputFunc) = func;\n },\n get inputFunc(): Function {\n return inputFunc;\n },\n get isBatched(): boolean {\n return isBatched;\n },\n set isBatched(_isBatched: boolean) {\n isBatched = _isBatched;\n },\n get Action(): IAction {\n return options.action;\n },\n set Action(newAction: IAction) {\n // There are no getter/setters on the action function prototype so this behaves as expected.\n inputFunc = newAction.prototype.input || inputFunc;\n id = newAction.prototype.id || id;\n isBatched = newAction.prototype.isBatched || isBatched;\n newAction.prototype = { ...newAction.prototype, ...options.action.prototype };\n options.action = newAction;\n },\n setProperty: (propertyName: string, value: unknown) => {\n options.action.prototype[propertyName] = value;\n actionWrap.prototype[propertyName] = options.action.prototype[propertyName];\n }\n };\n if (actionWrap.prototype.id) {\n ActionRegistrar.registerAction(actionWrap.prototype.id, actionWrap);\n }\n\n return actionWrap;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n Timeout = 'Timeout',\n HookTimeout = 'Hook Timeout',\n ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * Action Error Wrapper\n */\nexport class ActionError extends Error {\n public static readonly Name: string = 'ActionError';\n\n public error?: unknown;\n public status?: ActionErrorStatus;\n\n /**\n * Checks if an object is an action error\n */\n public static isActionError(error: unknown): boolean {\n return error instanceof Error && (error).name === ActionError.Name;\n }\n\n public static isTimeoutError(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.Timeout;\n }\n\n public static isServiceUnavailable(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.ServiceUnavailable;\n }\n\n /**\n * Action Errors\n * @param error Original Error\n */\n constructor(error: ActionErrorStatus | Error);\n constructor(error: Error) {\n super();\n this.name = ActionError.Name;\n if (error instanceof Error) {\n this.message = error.message;\n this.error = error;\n } else {\n if (error === ActionErrorStatus.Timeout) {\n this.status = error;\n this.message = 'Action Timeout';\n } else if (error === ActionErrorStatus.HookTimeout) {\n this.status = error;\n this.message = 'Action hook Timeout';\n } else if (error === ActionErrorStatus.ServiceUnavailable) {\n this.status = error;\n this.message = 'Action failed due to service unavailable';\n } else if (typeof error === 'string') {\n this.message = error;\n } else {\n this.error = error;\n }\n }\n\n // As of Typescript 2.1 if we extend the Error object the prototype must be set explicitly\n // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, ActionError.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AppCache, ICache } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput } from '@msdyn365-commerce/core-internal';\n\n/**\n * Method to indicate if the action should look in app cache for data\n * @param input ActionInput\n */\nexport const shouldReadFromAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return !!appCache && input && input.dataCacheType !== undefined && input.dataCacheType() !== 'none';\n};\n\n/**\n * Method to indicate if the action should write in app cache\n * @param input ActionInput\n */\nexport const shouldWriteToAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return isAppCacheData(input, appCache);\n};\n\n/**\n * Method to indicate if the action's cache type is application\n * @param input ActionInput\n */\nexport const isAppCacheData = (input: IActionInput, appCache: ICache | null): boolean => {\n if (!appCache) {\n return false;\n }\n\n if (input) {\n if (input.dataCacheType !== undefined && input.dataCacheType() === 'application') {\n return true;\n }\n\n // if an entity has a cache setting defined, we cache that entity - caching retail proxy actions\n return (appCache).hasCacheSetting(input.getCacheObjectType());\n }\n\n return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheSource } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput, IRequestContext, msdyn365Commerce, verboseLogger } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { IInternalTelemetry, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\n\nexport const addLocaleInformation = (inputs: IActionInput | IActionInput[], locale: string): void => {\n const isArray = Array.isArray(inputs);\n if (isArray) {\n const actionInputs = (inputs || []) as IActionInput[];\n actionInputs.forEach(input => {\n if (input instanceof DataServiceRequest && !input.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = input._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n input._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n });\n } else {\n if (inputs instanceof DataServiceRequest && !inputs.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = inputs._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n inputs._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n }\n};\n\nconst _resolveCacheEntryReference = (\n dataServiceRequest: DataServiceRequest,\n item: any,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache?: boolean,\n isWrappingPromise?: boolean,\n isObservable: boolean = true\n) => {\n const cacheValueAsArray = (item.key as string[])\n .map(key => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n const value = requestCache.get({ typeName: cacheObjectType, key });\n if (!value && shouldReadFromAppCache && appCache) {\n appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!value || !value.item) {\n return undefined;\n }\n\n const valueItem: any = value.item;\n\n if (isAsyncResult(valueItem)) {\n return valueItem.result;\n }\n\n return valueItem;\n })\n .filter(data => data !== undefined && data !== null);\n\n if ((item.key as string[]).length > cacheValueAsArray.length) {\n return;\n }\n\n // If we are returning a Promise that represents a future collection, we need to unwrap it\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n\n return cacheValueAsArray && cacheValueAsArray.length > 0\n ? isReturnTypeACollection && !isWrappingPromise\n ? cacheValueAsArray\n : cacheValueAsArray[0]\n : undefined;\n};\n\nconst logTelemetrySource = (\n cacheValue: ICacheItem,\n dataServiceRequest: DataServiceRequest,\n cacheKey: string,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry\n) => {\n if (!telemetry) {\n return;\n }\n if (!msdyn365Commerce.isBrowser) {\n switch (cacheValue.s!) {\n case ICacheSource.AppCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'AppCache']\n });\n break;\n }\n case ICacheSource.RequestCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'RequestCache']\n });\n break;\n }\n default: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'Default']\n });\n break;\n }\n }\n }\n};\n\nconst readCacheEntriesBasedOnCacheKeyFromReturnType = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (cacheKeyFromReturnType.length === 0) {\n return { entry: null, shouldRefresh: false };\n }\n let shouldRefreshAll = true;\n const cacheEntries = cacheKeyFromReturnType\n .map((entry: any) => {\n const key = `${cacheKeyIdentifierFromReturnType}-${entry}`;\n\n let cacheValue = requestCache.get({ typeName: cacheObjectType, key });\n\n if (!cacheValue && shouldReadFromAppCache && appCache) {\n cacheValue = appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!cacheValue || !cacheValue.item) {\n return null;\n }\n // according to the logic, will treat the entries to shouldRefresh when all entries have shouldRefresh.\n if (!cacheValue.shouldRefresh) {\n shouldRefreshAll = false;\n }\n logTelemetrySource(cacheValue, dataServiceRequest, key, context, telemetry);\n\n return cacheValue.item;\n })\n .filter(Boolean);\n\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n const cacheEntriesReturn = cacheEntries && cacheEntries.length > 0 ? (isReturnTypeACollection ? cacheEntries : cacheEntries[0]) : null;\n return { entry: cacheEntriesReturn, shouldRefresh: shouldRefreshAll };\n};\n\nexport const readCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean = false,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!requestCache || (!dataServiceRequest.getCacheKey() && cacheKeyFromReturnType.length === 0) || !cacheObjectType) {\n return { entry: null, shouldRefresh: false };\n }\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n if (cacheKeyFromInput === GET_FROM_RETURNIDENTIFIER || (cacheKeyIdentifierFromReturnType && cacheKeyFromReturnType.length !== 0)) {\n const entries = readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n if (entries && entries.entry) {\n return entries;\n }\n }\n const cacheKey = { typeName: cacheObjectType, key: cacheKeyFromInput };\n\n let cachedValueBasedOnInput = requestCache.get(cacheKey);\n if (cachedValueBasedOnInput) {\n cachedValueBasedOnInput = { ...cachedValueBasedOnInput };\n } else if (shouldReadFromAppCache && appCache) {\n cachedValueBasedOnInput = appCache.copyTo(cacheKey, requestCache, isObservable);\n }\n\n if (!cachedValueBasedOnInput) {\n return readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n }\n logTelemetrySource(cachedValueBasedOnInput, dataServiceRequest, cacheKeyFromInput, context, telemetry);\n\n if (cachedValueBasedOnInput.item instanceof AsyncResult) {\n if (cachedValueBasedOnInput.item.status !== 'LOADING') {\n cachedValueBasedOnInput.item = cachedValueBasedOnInput.item.result || cachedValueBasedOnInput.item.error;\n } else {\n const asyncResult = cachedValueBasedOnInput.item.then(result => {\n if (typeof result !== 'object' || result.$ref !== true) {\n return result;\n }\n\n return _resolveCacheEntryReference(\n dataServiceRequest,\n result,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isObservable\n );\n });\n return { entry: asyncResult, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n }\n\n if (\n typeof cachedValueBasedOnInput.item !== 'object' ||\n (cachedValueBasedOnInput.item &&\n // @ts-ignore -- $ref property does not exists in type object\n cachedValueBasedOnInput.item.$ref !== true)\n ) {\n return { entry: cachedValueBasedOnInput.item, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n\n const cachedValueBasedOnInputItem: any = cachedValueBasedOnInput.item;\n\n const resolvedRef = _resolveCacheEntryReference(\n dataServiceRequest,\n cachedValueBasedOnInput.item,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isAsyncResult(cachedValueBasedOnInputItem),\n isObservable\n );\n return { entry: resolvedRef, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n};\n\nconst _saveEntityToCache = (\n dataServiceRequest: DataServiceRequest,\n data: any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const dataServiceRequestQuery = dataServiceRequest._query;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType)) {\n return;\n }\n\n const cacheEntries: any = {};\n const results = data;\n\n // using Object.prototype instead of Array.isArray because results can be Observable Array which can't be detected with Array.isArray\n if (!dataServiceRequestQuery.isReturnTypeACollection || Object.prototype.toString.call(results) !== '[object Array]') {\n if (cacheKeyIdentifierFromReturnType) {\n const key = `${cacheKeyIdentifierFromReturnType}-${results[cacheKeyIdentifierFromReturnType]}`;\n cacheEntries[key] = results;\n if (cacheKeyFromInput) {\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem?.item?.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: cacheObjectType,\n identifier: cacheKeyIdentifierFromReturnType,\n key: [key],\n // @ts-ignore -- accessing a private class variable which is a valid JS\n count: dataServiceRequest._totalCount\n };\n }\n }\n } else {\n cacheEntries[cacheKeyFromInput] = results;\n }\n } else if (!cacheKeyIdentifierFromReturnType) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n const cacheValue = results\n .map((result: { [x: string]: any }) => {\n const identifierValue = result[cacheKeyIdentifierFromReturnType];\n if (identifierValue) {\n const key = `${cacheKeyIdentifierFromReturnType}-${identifierValue}`;\n cacheEntries[key] = result;\n return key;\n }\n })\n .filter(Boolean);\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem.item.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n if (existingCacheItem) {\n // @ts-ignore - _cacheObjectType does not exist in type ICacheItem\n const existingCacheObjectType = existingCacheItem._cacheObjectType;\n // @ts-ignore - _cacheKeyIdentifierFromReturnType does not exist in type ICacheItem\n const existingCacheKeyIdentifierFromReturnType = existingCacheItem._cacheKeyIdentifierFromReturnType;\n // @ts-ignore - _query does not exist in type ICacheItem\n const existingCacheIsReturnTypeACollection = existingCacheItem._query.isReturnTypeACollection;\n // @ts-ignore - _totalCount does not exist in type ICacheItem\n const existingCacheTotalCount = existingCacheItem._totalCount;\n\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: existingCacheObjectType,\n identifier: existingCacheKeyIdentifierFromReturnType,\n isCollection: existingCacheIsReturnTypeACollection,\n key: cacheValue,\n count: existingCacheTotalCount\n };\n }\n }\n }\n\n if (cacheEntries) {\n Object.keys(cacheEntries).map(entryKey => {\n requestCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n }\n });\n }\n\n return cacheEntries;\n};\n\nexport const saveCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n data: AsyncResult | any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n // if return Entity is collection\n // if entity type has identifier/primary key\n // 1. cache array of primay key value of returned entity collection on input cache key\n // 2. cache individual entity on primary key\n // else\n // 1. cache output on input cache key\n //\n // else if entity type has identifier/primary key\n // 2. cache output entity on primary key\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType) || !cacheObjectType) {\n return;\n }\n\n if (data instanceof AsyncResult) {\n // For a loading Promise, cache based on input cachekey, and then cache output again once complete\n if (data.status === 'LOADING') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n data.then((result: any) => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n\n _saveEntityToCache(dataServiceRequest, result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return result;\n });\n requestCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n }\n // For a completed promise, save the action results to the cache\n } else {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n _saveEntityToCache(dataServiceRequest, data.result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return data.result;\n }\n } else {\n return _saveEntityToCache(dataServiceRequest, data, requestCache, appCache, isCacheTypeApplication, isInstance);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventEmitter } from 'events';\n\n/** EventEmitter is available in node, but not on the browser,\n * this class attempts to polyfill that so the action context can remain Isomorphic\n */\n/* @internal*/\n\n/**\n * Type for event emitter listener callback\n */\nexport type ListenerCallback = (...args0: T) => void;\n\n/**\n * Generic cast type\n */\nexport type GenericCallback = (...args: any) => void;\n\n/**\n * Custom isomorphic event emitter implementation\n *\n * @export\n * @class CustomEventEmitter\n */\nclass CustomEventEmitter {\n private listeners: Map = new Map();\n private eventEmitter: EventEmitter | null = typeof window !== undefined ? null : new EventEmitter();\n\n public on(event: string, callback: ListenerCallback): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.on(event, callback);\n } else {\n let listeners = this.listeners.get(event);\n if (!!!listeners) {\n listeners = [];\n this.listeners.set(event, listeners);\n }\n\n listeners.push(callback);\n }\n }\n\n public emit(event: string, ...args: T): boolean {\n if (!!this.eventEmitter) {\n return this.eventEmitter.emit(event, args);\n }\n\n const listeners = this.listeners.get(event);\n\n if (listeners && listeners.length) {\n listeners.forEach(listener => {\n listener(...args);\n });\n return true;\n }\n\n return false;\n }\n\n public removeAllListeners(event: string): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.removeAllListeners(event);\n } else {\n this.listeners.delete(event);\n }\n }\n}\n\nexport default new CustomEventEmitter();\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport {\n CacheType,\n IActionContext,\n IActionInput,\n IAnyAction,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger,\n checkVersionForFeature,\n getPerformanceUtils\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, ErrorTypeEnum, isAsyncResult, ProxyError } from '@msdyn365-commerce/retail-proxy';\nimport { asSystemMetadata, ITelemetry, LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { get as _get, uniqWith } from 'lodash';\nimport { toJS } from 'mobx';\nimport uuidv1 from 'uuid/v1';\n\nimport { ActionError, ActionErrorStatus } from './action-error';\nimport { ActionRegistrar } from './action-registrar';\nimport { isAppCacheData, shouldReadFromAppCache, shouldWriteToAppCache } from './action-runtime-utils';\nimport { readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\nconst defaultTimeoutInMS: number = 4000;\nconst defaultHookTimeoutInMS: number = 1000;\nexport const CLIENT_HYDRATE_KEY = 'clientHydrateKey';\nexport const CLIENT_HYDRATE_TYPE = 'clientHydrate';\n\nconst Timer = (timeoutInMS: number, message: unknown) => new Promise(resolve => setTimeout(resolve.bind(resolve, message), timeoutInMS));\n\nconst ActionTimer = (timeoutInMS: number) =>\n new Promise((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\nconst ObservableActionTimer = (timeoutInMS: number) =>\n new AsyncResult((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\n/* @internal */\n/**\n * This class contains the logic to batch and de-dupe the actions that can be executed.\n * This class is also responsible for checking and saving the action response to cache.\n */\nexport default class ActionExecutor {\n public readonly action: Function;\n public readonly cacheType: CacheType;\n private readonly isBatched: boolean;\n private readonly eventId: string;\n private readonly isObservable: boolean;\n\n private inputs: IActionInput[];\n /**\n * @param action the action to execute\n * @param inputs the action input\n */\n constructor(action: Function, inputs: IActionInput[], telemetry: ITelemetry, dataActionOption?: IDataActionOptions) {\n this.action = action;\n this.eventId = uuidv1();\n this.inputs = [...inputs]; // Cloning it DO NOT use the reference\n this.isBatched = action.prototype.isBatched;\n\n this.isObservable = action.prototype.isObservable;\n\n // Cache all the calls on browser\n const masterInput = inputs[0];\n\n if (masterInput && masterInput.dataCacheType) {\n this.cacheType = masterInput.dataCacheType();\n } else if (masterInput && masterInput.shouldCacheOutput) {\n this.cacheType = masterInput.shouldCacheOutput() ? 'request' : 'none';\n telemetry.trace('shouldCacheOutput property has been deprecated. Please update the IActionInput to use dataCacheType');\n } else {\n this.cacheType = (dataActionOption && dataActionOption.cacheType) || 'none';\n // for data actions who do not have dataCacheType function, we add customer defined cachtype to the action.\n // this is used for later check if the data acton should be read from app cache.\n inputs.forEach(input => {\n input.dataCacheType = () => this.cacheType;\n });\n telemetry.trace('Neither dataCacheType nor shouldCacheOutput are set. Caching strategy will fall back to \"none\"');\n }\n }\n\n /**\n *\n * @param inputs add more inputs\n */\n public addInputs(inputs: IActionInput[]): void {\n this.inputs.push(...inputs);\n }\n\n /** Execute the action */\n public async execute(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache?: boolean,\n refreshingInputs: IActionInput[] = []\n ): Promise {\n const unique: IActionInput[] =\n refreshingInputs && refreshingInputs.length > 0\n ? this._removeDuplicates(refreshingInputs)\n : this._removeDuplicates(this.inputs);\n if (!unique.length) {\n return [];\n }\n\n const actionId = this._getActionIdFromInputs(unique);\n\n const performanceUtils = getPerformanceUtils(msdyn365Commerce, context);\n const executionId = performanceUtils?.performanceUtilsPackage.Random.Guid.generateGuid();\n\n performanceUtils?.performanceUtilsPackage.runPreReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n const result = await this._executeDataAction(context, requestCache, appCache, bypassAppCache, refreshingInputs, unique, actionId);\n\n performanceUtils?.performanceUtilsPackage.runPostReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n return result;\n }\n\n private async _executeDataAction(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache: boolean | undefined,\n refreshingInputs: IActionInput[],\n unique: IActionInput[],\n actionId: string\n ): Promise {\n const isRefreshingAction = refreshingInputs && refreshingInputs.length > 0;\n\n this._runPreReadHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n\n // execte preReaderHook\n this._runPreReaderHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n const [uncached, needsRefresh]: IActionInput[][] = this._checkForCachedData(\n unique,\n context,\n requestCache,\n appCache,\n bypassAppCache,\n isRefreshingAction\n );\n\n if (!uncached.length) {\n // excute readOnly post hook with all cached actions ouptput\n await this._fetchOutputsAndRunPostReadHook(actionId, unique, requestCache, context);\n return needsRefresh;\n } else {\n const cachedActions = unique.filter(value => !uncached.includes(value));\n if (cachedActions.length) {\n // fetch the output for all cached data action, and run readOnly hooks. The uncached actions will be excuted later.\n await this._fetchOutputsAndRunPostReadHook(actionId, cachedActions, requestCache, context);\n }\n }\n\n let outputs: any[] = [];\n\n // VNext observable promise based flow\n // Create the AsyncResult and immediately return it\n if (this.isObservable) {\n if (this.isBatched) {\n this._executeBatchedObservableActions(uncached, requestCache, appCache, context, isRefreshingAction);\n } else {\n this._executeObservableAction(uncached[0], requestCache, appCache, context, isRefreshingAction);\n }\n return needsRefresh;\n }\n\n if (this.isBatched) {\n // TODO: Have a max batch count on the action\n outputs = await this._actionWrapper(uncached, context, isRefreshingAction);\n\n if (outputs && outputs.length !== uncached.length) {\n // TODO Throw\n context.telemetry.log(\n LogLevel.Trace,\n 'Length of input array {uncached_length} does not meet the output array {outputs_length}',\n { values: [uncached.length, outputs.length] }\n );\n }\n } else {\n outputs[0] = await this._actionWrapper(uncached[0], context, isRefreshingAction);\n }\n\n if (!outputs || outputs.length === 0) {\n return needsRefresh;\n }\n\n this._saveResponseToCache(uncached, outputs, context, requestCache, appCache);\n return needsRefresh;\n }\n\n // the retail proxy data actions who do not have return type should not interact with cache.\n private _checkShouldInteractWithCache(input: IActionInput, typeName: string | undefined): boolean {\n return !(input instanceof DataServiceRequest) || !!typeName;\n }\n\n private async _fetchOutputsAndRunPostReadHook(\n actionId: string,\n inputs: IActionInput[],\n requestCache: ICache,\n context: IActionContext\n ): Promise {\n const outputs = inputs.map(i => {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail data action does not have return type, we do not read the output from cache.\n let cacheItem;\n if (this._checkShouldInteractWithCache(i, cacheKey.typeName)) {\n cacheItem = requestCache.get>(cacheKey);\n }\n return !!cacheItem ? requestCache.getValue(cacheKey) : null;\n });\n this._runPostReadHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n }\n private _removeDuplicates(inputs: IActionInput[]): IActionInput[] {\n if (!this.isBatched) {\n return inputs;\n }\n\n return uniqWith(\n inputs,\n (inputA: IActionInput, inputB: IActionInput) =>\n inputA.getCacheKey() === inputB.getCacheKey() && inputA.getCacheObjectType() === inputB.getCacheObjectType()\n );\n }\n\n private _getActionIdFromInputs(inputs: IActionInput | IActionInput[]): string {\n let inputsActionId;\n for (const input of Array.isArray(inputs) ? inputs : [inputs]) {\n if (typeof input.getActionId === 'function') {\n inputsActionId = input.getActionId();\n }\n }\n return inputsActionId || (>this.action).prototype.id;\n }\n\n private _getActionFromId(actionId?: string): Function {\n let { action } = this;\n if (actionId) {\n const registration = ActionRegistrar.resolveRegistration(actionId, >action);\n if (registration) {\n action = >registration.action;\n return ActionRegistrar.unwrapAction(>action);\n }\n }\n return action;\n }\n\n private async _runPreReadHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReadHooks = ActionRegistrar.getPreReadHooks(id);\n if (!preReadHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReadHooksArray = Array.from(preReadHooks);\n return preReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostReaderHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postReaderHooks = ActionRegistrar.getPostReaderHooks(id);\n if (!postReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReaderHooksArray = Array.from(postReaderHooks);\n return postReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreReaderHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReaderHooks = ActionRegistrar.getPreReaderHooks(id);\n if (!preReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReaderHooksArray = Array.from(preReaderHooks);\n return preReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n context: IActionContext\n ): Promise {\n const preHooks = ActionRegistrar.getPreHooks(id);\n if (!preHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preHooksArray = Array.from(preHooks);\n return preHooksArray.reduce(async (previousTask, currentTask) => {\n const prevInput = await previousTask;\n let tmpNextInput: unknown;\n try {\n tmpNextInput = await Promise.race([timer, currentTask(prevInput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextInput: IActionInput | IActionInput[] =\n tmpNextInput === ActionErrorStatus.HookTimeout || !tmpNextInput ? prevInput : tmpNextInput;\n return Promise.resolve(finalNextInput);\n }, Promise.resolve(inputs));\n }\n\n private async _runPostReadHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostReadHooks(id);\n\n if (!postHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReadHooksArray = Array.from(postHooks);\n return postReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostHooks(id);\n if (!postHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postHooksArray = Array.from(postHooks);\n return postHooksArray.reduce(async (previousTask, currentTask) => {\n const prevOutput = await previousTask;\n let tmpNextOutput: unknown;\n try {\n tmpNextOutput = await Promise.race([timer, currentTask(inputs, prevOutput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextOutput = tmpNextOutput === ActionErrorStatus.HookTimeout || !tmpNextOutput ? prevOutput : tmpNextOutput;\n return Promise.resolve(finalNextOutput);\n }, Promise.resolve(actionResult));\n }\n\n /**\n * Add performance logging before and after calling the action?\n */\n // eslint-disable-next-line complexity\n private async _actionWrapper(inputs: IActionInput | IActionInput[], context: IActionContext, isRefreshing?: boolean): Promise {\n const actionId = this._getActionIdFromInputs(inputs);\n const action = this._getActionFromId(actionId);\n\n try {\n // Run pre data action hooks\n const _inputs = await this._runPreHooks(actionId, inputs, context);\n if (_inputs) {\n inputs = _inputs;\n }\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing pre-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n return new ActionError(e);\n }\n let actionResult;\n try {\n const timeOut = Number(_get(context, 'requestContext.query.actionTimeout'));\n const features = _get(context, 'requestContext.features', {});\n const serverSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.serverSideDataActionTimeoutInMs;\n const clientSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.clientSideDataActionTimeoutInMs;\n let promises;\n if (process.env.CURRENT_ENVIRONMENT === 'node' && (features.action_timeout || serverSideCustomerTimeout)) {\n const timeOutValue = (features.action_timeout && timeOut ? timeOut : serverSideCustomerTimeout) || defaultTimeoutInMS;\n promises = [this.isObservable ? ObservableActionTimer(timeOutValue) : ActionTimer(timeOutValue), action(inputs, context)];\n } else if (typeof window !== 'undefined' && msdyn365Commerce.isBrowser && clientSideCustomerTimeout) {\n promises = [\n this.isObservable ? ObservableActionTimer(clientSideCustomerTimeout) : ActionTimer(clientSideCustomerTimeout),\n action(inputs, context)\n ];\n } else {\n promises = [action(inputs, context)];\n }\n // run the data action\n actionResult = await Promise.race(promises);\n } catch (e) {\n if (e.message && e.message.length > 0 && !e.message.includes('Action id')) {\n e.message = `Action id: ${actionId}, Error message: ${e.message}`;\n }\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n let error = new ActionError(e);\n // For AsyncResult, we need to signal that this was a rejection by throwing\n if (this.isObservable) {\n // Proxy Errors come wrapped as an array\n if (Array.isArray(e)) {\n error =\n e[0]._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : ProxyError.toError(e[0]);\n } else {\n error =\n e._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : new ActionError(e);\n }\n }\n\n throw error;\n }\n\n try {\n // Run post data action hooks\n const result = await this._runPostHooks(actionId, inputs, actionResult, context);\n if (result) {\n actionResult = result;\n }\n this._runPostReadHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing post-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n }\n return actionResult;\n }\n\n private _shouldUseInstanceCache = () => {\n return checkVersionForFeature('instance_cache') || msdyn365Commerce.platformSettings?.shouldUseInstanceCache;\n };\n\n private _saveResponseToCache(\n uncached: IActionInput[],\n outputs: any[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null\n ): void {\n uncached.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n if (i instanceof DataServiceRequest && !!i.getCacheObjectType()) {\n try {\n const appCacheData = appCache;\n const disableUsingInstanceCache =\n context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n saveCacheEntries(i, outputs[idx], requestCache, appCacheData, shouldWriteToAppCache(i, appCache), usingInstanceCache);\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n\n return null;\n }\n } else {\n const entityId = i.getCacheKey();\n const entityType = i.getCacheObjectType();\n\n if (!!entityId && !!entityType) {\n const entry = outputs[idx];\n const cacheKey = { typeName: entityType, key: entityId };\n if (ActionError.isActionError(entry)) {\n if (!ActionError.isTimeoutError(entry)) {\n requestCache.put(cacheKey, { item: ((entry)).error, error: true });\n }\n // else do nothing\n } else {\n if (appCache && shouldWriteToAppCache(i, appCache)) {\n appCache.put(cacheKey, { item: entry });\n }\n const cacheEntry = { item: entry };\n if (i.dataCacheType && i.dataCacheType() === 'instance') {\n Object.assign(cacheEntry, { instance: 'instance' });\n }\n requestCache.put(cacheKey, cacheEntry);\n }\n }\n }\n });\n }\n\n /**\n * Method that executes a set of batchable observable data actions\n * @param uncached The uncached action inputs\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeBatchedObservableActions(\n uncached: IActionInput[],\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const unresolvedSet = new Set();\n const uncachedInputs: IActionInput[] = [];\n // Create an OP for each input in the batch that does not yet exist in cache\n const asyncOutputs = uncached\n .map((input, index) => {\n unresolvedSet.add(index);\n const executor = (resolve: any, reject: any) => {\n // When the side promise completes, update each individual OP to have it's piece of the entire batched result\n new Promise((innerResolve, innerReject) => {\n const onEventIdCompletion = (value: any) => {\n innerResolve(<{}>value);\n };\n\n const onEventIdFinalCompletion = () => {\n innerResolve();\n };\n\n const onEventIdFailure = (error: any) => {\n innerReject(error);\n };\n\n // Standard success event\n EventHelper.on(`${this.eventId}-complete-${index}-${input.getCacheKey()}`, onEventIdCompletion);\n\n // No response closing event\n EventHelper.on(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`, onEventIdFinalCompletion);\n\n // Failure event\n EventHelper.on(`${this.eventId}-failure`, onEventIdFailure);\n })\n .then(result => {\n EventHelper.removeAllListeners(`${this.eventId}-complete-${index}-${input.getCacheKey()}`);\n EventHelper.removeAllListeners(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`);\n resolve(result);\n })\n .catch(error => {\n EventHelper.removeAllListeners(`${this.eventId}-failure`);\n reject(error);\n });\n };\n\n // Already cached OP logic (rerun)\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Not yet cached OP logic (initialize, run)\n uncachedInputs.push(input);\n return new AsyncResult(executor);\n })\n .filter(Boolean);\n\n // Save never before cached OPs to cache\n this._saveResponseToCache(uncachedInputs, asyncOutputs, context, requestCache, appCache);\n\n // Run the actual action\n this._actionWrapper(uncached, context, isRefreshing)\n .then((actionResults: unknown[]) => {\n // Emit events with the associated result so that each individual OP in the cache\n // can be updated appropriately\n actionResults.forEach((actionResult, index) => {\n unresolvedSet.delete(index);\n EventHelper.emit(`${this.eventId}-complete-${index}-${uncached[index].getCacheKey()}`, actionResult);\n });\n })\n .catch(error => {\n EventHelper.emit(`${this.eventId}-failure`, error);\n })\n .finally(() => {\n // In the event some inputs do not have results, we need to resolve the promises anyhow\n unresolvedSet.forEach(unresolvedIndex => {\n const index = unresolvedIndex;\n EventHelper.emit(`${this.eventId}-final-complete-${index}-${uncached[index].getCacheKey()}`);\n });\n });\n }\n\n /**\n * Executes a standard (non-batched) observable data action\n * @param input The action input\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeObservableAction(\n input: IActionInput,\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const cacheKey = { key: input.getCacheKey(), typeName: input.getCacheObjectType() };\n const executor = (resolve: any, reject: any) => {\n this._actionWrapper(input, context, isRefreshing)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n // If error is timeout error, lookup app-cache if there\n // is a valid entity for the given cacheKey in app-cache\n if (ActionError.isServiceUnavailable(error) && isAppCacheData(input, appCache)) {\n const cachedItem = appCache?.getValue(cacheKey);\n if (cachedItem) {\n return resolve(cachedItem);\n }\n }\n return reject(error);\n });\n };\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n // If OP is already in cache, just rerun it\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Uncached promises need to be saved to cache\n const asyncOutput = new AsyncResult(executor);\n this._saveResponseToCache([input], [asyncOutput], context, requestCache, appCache);\n }\n\n private _checkForCachedData(\n inputs: IActionInput[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassCache?: boolean,\n refreshing?: boolean\n ): IActionInput[][] {\n const mock = _get(context, 'requestContext.query.actionMock');\n\n if (mock) {\n inputs = this._interceptCacheForMocks(inputs, context, requestCache);\n }\n\n const clientHydrateCacheKey: ICacheKey = {\n key: CLIENT_HYDRATE_KEY,\n typeName: CLIENT_HYDRATE_TYPE\n };\n const isClientHydrate = requestCache.getValue(clientHydrateCacheKey);\n const disableUsingInstanceCache = context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n // if the cache type is set a none don't check cache for data and return inputs for execution\n // lazyresponse == true means it has been called from load-data on browser. In this case, data is already present in request-cache due to run on server side\n if (this.cacheType === 'none' || refreshing) {\n // we should keep read from cache when a dataAction\n // 1. run on server\n // 2. none cache type\n // 3. action running as part of initial page load (client hydration).\n // This is important to stay consistent with what we render on server.\n // 4. when instance cache feature is on.\n if (!(this.cacheType === 'none' && inputs[0].runOn === 'server' && isClientHydrate && usingInstanceCache) || refreshing) {\n return [inputs, []];\n }\n }\n\n const uncached: IActionInput[] = [];\n const refresh: IActionInput[] = [];\n // eslint-disable-next-line complexity\n inputs.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail proxy action does not have return type, we do not check if its in the cache\n if (i instanceof DataServiceRequest && !cacheKey.typeName) {\n uncached.push(i);\n return;\n }\n let cacheItem: ICacheItem | undefined = requestCache.get(cacheKey);\n if (cacheItem && isAsyncResult(cacheItem.item) && (>cacheItem.item).status === 'FAILED') {\n if (!i.runOn || i.runOn !== 'serverOnly') {\n uncached.push(i);\n }\n } else if (cacheItem && cacheItem.item && cacheItem.item.status === 'LOADING' && cacheItem.item.runOn === 'client') {\n // Ideally, an action configured to runOn client should never interfere with actions running on server.\n // However, it is possible that parent action with runon 'server' could be dependent on an action that is configured\n // by partner to be runOn 'client'. In this case, the child action implicitly becomes a server action. Therefore, lets\n // include such actions in the uncached list so that it gets picked and executed later.\n uncached.push(i);\n } else if (i instanceof DataServiceRequest) {\n try {\n if (bypassCache && context.requestContext.features && !!!context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n const appCacheData = appCache;\n const cacheEntries = readCacheEntries(\n i,\n requestCache,\n appCacheData,\n !!!bypassCache && shouldReadFromAppCache(i, appCache),\n context.requestContext,\n undefined,\n !!this.isObservable\n );\n if (!cacheEntries.entry) {\n uncached.push(i);\n }\n if (cacheEntries && cacheEntries.shouldRefresh) {\n refresh.push(i);\n }\n }\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n uncached.push(i);\n }\n } else {\n if (bypassCache && context.requestContext.features && !context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n if (!cacheItem && !!!bypassCache && appCache && shouldReadFromAppCache(i, appCache)) {\n cacheItem = appCache.copyTo(cacheKey, requestCache, !!this.isObservable);\n if (cacheItem && cacheItem.shouldRefresh) {\n refresh.push(i);\n }\n }\n\n if (!cacheItem || !cacheItem.item) {\n uncached.push(i);\n return;\n }\n }\n }\n });\n return [uncached, refresh];\n }\n\n /**\n * Searches cache for mocks matching the inputs\n * @param inputs Current action inputs\n * @param context Current action context\n * @param requestCache Current request cache\n */\n private _interceptCacheForMocks(inputs: IActionInput[], context: IActionContext, requestCache: ICache): IActionInput[] {\n const uncached: IActionInput[] = [];\n const actionId: string = this.action.prototype.id;\n inputs.forEach(i => {\n let mockItem = this._getMockItem(i.getCacheObjectType(), i.getCacheKey(), requestCache);\n if (!mockItem && actionId) {\n mockItem = this._getMockItem(actionId, i.getCacheKey(), requestCache);\n }\n let existingItem;\n if (this._checkShouldInteractWithCache(i, i.getCacheObjectType())) {\n existingItem = requestCache.get({ typeName: i.getCacheObjectType(), key: i.getCacheKey() });\n }\n\n if (!!mockItem && !!mockItem.item && !existingItem) {\n const mockItemJSObject = toJS(mockItem.item);\n if (this.isObservable) {\n requestCache.put(\n { typeName: i.getCacheObjectType(), key: i.getCacheKey() },\n { item: AsyncResult.resolve(mockItemJSObject) }\n );\n } else {\n requestCache.put({ typeName: i.getCacheObjectType(), key: i.getCacheKey() }, { item: toJS(mockItemJSObject) });\n }\n } else {\n uncached.push(i);\n }\n });\n return uncached;\n }\n\n private _getMockItem(cacheNamespace: string, cacheKey: string, requestCache: ICache): ICacheItem | undefined {\n return (\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:${cacheKey}` }) ||\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:*` })\n );\n }\n\n private _convertToJSError(e: any): Error {\n // Proxy Error usually comes wrapped in an array\n // If it is, unbox it and conver to regular Error\n if (Array.isArray(e)) {\n const proxyError: ProxyError = e[0];\n if (proxyError.ErrorCode) {\n return ProxyError.toError(proxyError);\n }\n } else if (e.ErrorCode) {\n return ProxyError.toError(e);\n }\n // Return regular Error if not ProxyError\n return new Error(e.message || '');\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core-internal';\nimport { getCatalogsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CatalogsDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Input for get-catalogs data action.\n */\nexport class CatalogsInput implements IActionInput {\n public readonly channelId: number;\n\n public readonly customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly locale?: string;\n\n public constructor(context: IRequestContext, customerAccountNumber?: string) {\n this.channelId = context.apiSettings.channelId ? Number(context.apiSettings.channelId) : 0;\n this.customerAccountNumber = customerAccountNumber ? customerAccountNumber : context.user.customerAccountNumber;\n this.apiSettings = context.apiSettings;\n this.locale = context.locale || '';\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- customer account number can be undefined.\n // Removing customer account number dependency as API does not need customer account number and cache is of request type.\n // Keeping the contract same not to break backward compatibility.\n public getCacheKey = (): string => buildCacheKey(`${this.channelId}`, this.apiSettings, this.locale);\n\n /**\n * Get Cache object type.\n * @returns - Cache object type.\n */\n public getCacheObjectType = (): string => 'productCatalogs';\n\n /**\n * Get data cache type.\n * @returns - Cache type enum.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - The input data passed to the createInput method.\n * @param customerAccountNumber - Customer account number.\n * @returns - Catalogs input.\n */\nexport const createCatalogsInput = (inputData: ICreateActionContext>, customerAccountNumber?: string): IActionInput => {\n if (!inputData.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get product catalog. User is not authenticated.');\n }\n return new CatalogsInput(inputData.requestContext, customerAccountNumber);\n};\n\n/**\n * Calls the Retail API and returns the product catalog for an user.\n * @param input - Catalogs Input.\n * @param context - Current context.\n * @returns - Product catalog for the user.\n */\nexport async function getCatalogAction(input: CatalogsInput, context: IActionContext): Promise {\n const productCatalogs = await getCatalogsAsync({ callerContext: context }, input.channelId, true);\n return productCatalogs;\n}\n\n/**\n * The GetProductCatalogs Data Action\n * Returns product catalogs.\n */\nexport const getCatalogActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-catalogs',\n action: getCatalogAction as IAction,\n input: createCatalogsInput\n});\n\nexport default getCatalogActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IRequestContext, IRequestContextParams } from '@msdyn365-commerce/core-internal';\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { CatalogsInput, getCatalogActionDataAction } from './actions/get-catalogs';\n\n/**\n * Returns catalog name for a given catalog id\n * @param context Action Context\n * @param context Catalog Id\n */\nexport const getCatalogName = async (context: IActionContext, catalogId: number): Promise => {\n if (!context || !context.requestContext || !context.requestContext.apiSettings) {\n return '';\n }\n\n const customerAccountNumber = context.requestContext.user.customerAccountNumber;\n const productCatalogs = await getCatalogActionDataAction(new CatalogsInput(context.requestContext, customerAccountNumber), context);\n\n return findCatalogName(productCatalogs, catalogId);\n};\n\n/**\n * Returns true if data action cache needs to be bypassed\n * @param requestContext rendering context\n * @returns cachebypass status\n */\nexport const shouldByPassCache = (requestContext: IRequestContext) => {\n return (requestContext.query && !!requestContext.query.cachebypass) || isPageInsightsEnabled(requestContext.params);\n};\n\nconst isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\n/**\n * Matches the catalog if with the productCatalogs response and returns catalog name\n * @param productCatalogs Product catalogs response\n * @param catalogId Catalog id to search in Product catalogs response\n * @returns Catalog name\n */\nexport const findCatalogName = (productCatalogs: ProductCatalog[], catalogId: number): string => {\n let catalogName = '';\n productCatalogs &&\n productCatalogs.forEach((catalog: ProductCatalog) => {\n if (catalog.RecordId === catalogId && catalog.Name) {\n catalogName = catalog.Name;\n }\n });\n return catalogName;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey, ICacheSource, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n IAction,\n IActionContext,\n IActionInput,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n asSystemMetadata,\n GenericConsoleLogger,\n ITelemetry,\n LogLevel,\n StaticTelemetry,\n Telemetry\n} from '@msdyn365-commerce/telemetry-internal';\nimport uuidv1 from 'uuid/v1';\nimport ActionExecutor from './action-executor';\nimport { ActionRegistrar } from './action-registrar';\nimport { shouldWriteToAppCache } from './action-runtime-utils';\nimport { addLocaleInformation, readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\nimport { shouldByPassCache } from './helpers';\n\n/**\n * Cache key for actions which needs to be refreshed after page render\n */\nexport const REFRESH_ACTIONS_CACHE_KEY: ICacheKey = {\n typeName: '__REFRESH_CONFIGS_TYPE__',\n key: '__refresh_cache_key'\n};\n\n/**\n * This interface is used in ActionContext only, for saving information needed to refresh data actions.\n *\n */\nexport interface IRefreshConfigs {\n actionInputs: IActionInput[];\n paramExecutor: ActionExecutor;\n}\n/**\n * This class contains the primary logic which controls the execution flow of the action runtime\n *\n */\n/* @internal*/\n/**\n *\n */\nexport class ActionContext implements IActionContext {\n public static maxDepth: number = 200;\n\n public readonly executionParams: ActionExecutor[] = [];\n public readonly requestContext: any;\n\n /**\n * Telemetry object to log information\n */\n public telemetry: ITelemetry;\n\n private readonly requestCache: ICache;\n private readonly appCache: ICache | null = null;\n private readonly cacheKeyMap: string[] = [];\n private readonly refreshConfigs: IRefreshConfigs[] = [];\n\n /**\n * Action context creates a new instance for every tier of execution,\n * This number specifies the depth/current tier in the execution flow\n */\n private readonly currentExecutionTier: number;\n\n /**\n * Thread ID\n */\n private readonly threadId: string;\n\n /**\n * Event ID\n * Unique ID for each action context, automatically generated\n */\n private readonly eventId: string;\n\n /**\n * Whether the current context as executed\n */\n private hasRun: boolean = false;\n\n /**\n * When this number is > 0, the current context will wait for all the actions to\n * be queued before kicking off execution.\n * This number is decremented for every action that is successful in current tier.\n */\n private expectedActionsInCurrentTier: number;\n\n /**\n * variable tracking the current number of actions that are in queue, context will wait for this to match the expected count\n */\n private currentActionsInQueue: number = 0;\n\n /**\n * Object to track the next tier number.\n */\n private nextTierCounter: { next: number } = { next: 0 };\n\n /**\n * When true will span a new independent action context when an action is executed resetting depth limits\n * Otherwise will invoke the action in the current context.\n */\n private spawnChildOnExecute: boolean = false;\n\n /**\n * @param currentExecutionTier: Current execution tier in the data fetch pipeline, max is currently 7\n * @param expectedActionCount: This value specifies the expected number of actions to be queued before\n * we kick off execution in the current tier\n */\n constructor(args: {\n id: string;\n requestContext: any;\n requestCache: ICache;\n appCache: ICache | null;\n currentExecutionTier?: number;\n expectedActionCount?: number;\n spawnChildOnExecute?: boolean;\n telemetry?: ITelemetry;\n }) {\n const {\n id,\n requestContext,\n requestCache,\n appCache,\n currentExecutionTier,\n expectedActionCount,\n spawnChildOnExecute,\n telemetry\n } = args;\n this.threadId = id;\n this.eventId = uuidv1();\n\n this.currentExecutionTier = currentExecutionTier || 0;\n if (this.currentExecutionTier === 0) {\n this.nextTierCounter = { next: 0 };\n }\n\n this.expectedActionsInCurrentTier = expectedActionCount || 0;\n this.requestCache = requestCache;\n this.requestContext = requestContext || {};\n this.spawnChildOnExecute = Boolean(spawnChildOnExecute);\n\n // If a telemetry object has been passed in use that telemetry object, otherwise create a new Telemetry object\n if (telemetry) {\n this.telemetry = telemetry;\n } else {\n // register default console logger\n const moduleTelemetry = new Telemetry();\n const isDebug = requestContext.params && requestContext.params.isDebug;\n\n // register tracelogger only in development environment or debug is true.\n (process.env.NODE_ENV === 'development' || isDebug) &&\n moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: isDebug } });\n\n this.telemetry = moduleTelemetry;\n }\n\n /**\n * @deprecated\n * Trace is an alias for telemetry.log(LogLevel.Trace, message)\n * Use the telemetry object directly.\n */\n this.trace = (message: string) => {\n this.telemetry.log(LogLevel.Debug, message);\n };\n\n // enable app cache only if the disable_app_cache feature switch is false\n if (requestContext.features && !!!requestContext.features.disable_app_cache) {\n this.appCache = appCache;\n }\n }\n\n public getRefreshActions(): IRefreshConfigs[] {\n return this.refreshConfigs;\n }\n\n /**\n * Chains an action method to the current context for execution\n * @param action - action method\n * @param inputs - action input\n */\n public chainAction(\n _action: IAction,\n inputs: IActionInput | IActionInput[],\n actionOption?: IDataActionOptions\n ): Promise {\n const action = ActionRegistrar.unwrapAction(_action);\n addLocaleInformation(inputs, this.requestContext.locale);\n if (!action || !inputs) {\n // Decrement the expected actions on this tier since this action was incorrectly configured\n this.expectedActionsInCurrentTier--;\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n return Promise.resolve(null);\n }\n\n if (!this.hasRun) {\n return this.runAllActionsInQueue().then(() => null);\n }\n\n return Promise.resolve(null);\n }\n\n if (this.isMaxDepthExceeded()) {\n this.debug('Max depth exceeded - not running further.');\n return Promise.resolve(null);\n }\n\n if (this.hasRun) {\n // If the parent action decides to queue another action after the current tier completes execution\n // then set the hasRun to false, so the action can fire right away\n this.hasRun = false;\n this.executionParams.length = 0;\n this.currentActionsInQueue = 0;\n }\n\n this.currentActionsInQueue++;\n const isBatched = action.prototype.isBatched;\n const inputsArray = (isBatched ? inputs : [inputs]);\n\n let current = this.executionParams.find(a => a.action === action);\n if (current && isBatched) {\n current.addInputs(inputsArray);\n } else {\n const inputIdentifier = `${inputsArray[0].getCacheObjectType()}||${inputsArray[0].getCacheKey()}`;\n if (!this.cacheKeyMap.find(key => key === inputIdentifier)) {\n current = new ActionExecutor(action, inputsArray, this.telemetry, actionOption);\n this.executionParams.push(current);\n this.cacheKeyMap.push(inputIdentifier);\n }\n }\n\n const asyncResult = new AsyncResult(async (resolve, reject) => {\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n // Hold the thread until the entire tier is populated\n await new Promise((innerResolve: Function) => {\n const onEventIdCompletion = (tierNum: number) => {\n if (tierNum === this.currentExecutionTier) {\n innerResolve();\n }\n };\n EventHelper.on<[number]>(`${this.eventId}:completed`, onEventIdCompletion);\n });\n EventHelper.removeAllListeners(`${this.eventId}:completed`);\n }\n\n if (!this.hasRun) {\n await this.runAllActionsInQueue();\n }\n\n const outputs = inputsArray.map(i => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n const entry = readCacheEntries(i, this.requestCache, appCacheData, false, this.requestContext, StaticTelemetry);\n return entry.entry;\n } catch (e) {\n this.debug(\n `Error execution action type '[${i && i.getCacheObjectType()}' and cache key '[{${i &&\n i.getCacheKey()}}]', returning null`\n );\n return null;\n }\n } else {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n const cacheItem = this.requestCache.get>(cacheKey);\n const cacheValue = !!cacheItem ? this.requestCache.getValue(cacheKey) : null;\n\n if (cacheItem && !!cacheItem.error) {\n throw cacheValue;\n } else {\n if (cacheItem && !msdyn365Commerce.isBrowser) {\n if (cacheItem.refreshStartTimeInMS) {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. last refresh time {lastRefresh}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata(cacheItem.refreshStartTimeInMS)\n ]\n }\n );\n }\n switch (cacheItem.s!) {\n case ICacheSource.AppCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('AppCache')\n ]\n }\n );\n break;\n }\n case ICacheSource.RequestCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('RequestCache')\n ]\n }\n );\n break;\n }\n default: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('Undefined')\n ]\n }\n );\n }\n }\n }\n return cacheValue;\n }\n }\n });\n\n this.cacheKeyMap.splice(0, this.cacheKeyMap.length);\n\n // Batched observable actions need to be merged into a single AsyncResult\n if (isBatched && action.prototype.isObservable) {\n resolve(\n Promise.all(outputs).then(results => {\n // Because AsyncResult sometimes get mangled by MobX, we need to ensure mangled ones are still unwrapped\n return results.map(result => {\n return result && result._type === 'AsyncResult' ? result.result : result;\n });\n })\n );\n } else {\n // We need to pass along the metadata explicitly to the outer AsyncResult\n if (isAsyncResult(outputs[0]) && !isBatched) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n outputs[0].then(() => {\n asyncResult.metadata = outputs[0].metadata;\n });\n }\n\n resolve(isBatched ? outputs : (outputs.length && outputs[0]) || null);\n }\n });\n\n return asyncResult;\n }\n\n /**\n * Helper method to update cache\n * @param input The input\n * @param data The data\n */\n public update(inputs: IActionInput | IActionInput[], data: T): T {\n if (inputs && data) {\n // If an array of actionInputs has been passed, an equal amount of data items must be present\n const dataArray = (Array.isArray(inputs) ? data : [data]);\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (inputArray.length !== dataArray.length) {\n throw new Error('Array of action inputs was passed to actionContext Update, and did not match length of input data array.');\n }\n addLocaleInformation(inputArray, this.requestContext.locale);\n inputArray.map((i, idx) => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n saveCacheEntries(i, dataArray[idx], this.requestCache, appCacheData, shouldWriteToAppCache(i, this.appCache));\n } catch (e) {\n this.debug(\n `Error in updating cache with input '[${i.getCacheObjectType()}]' - '[${i.getCacheKey()}]', returning null`\n );\n this.error(e);\n }\n } else {\n // When updating OPs, only result can be updated, passed OPs will also be unwrapped.\n if (isAsyncResult(dataArray[idx])) {\n dataArray[idx] = (>dataArray[idx]).result;\n }\n\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n this.requestCache.put(cacheKey, { item: dataArray[idx] });\n if (this.appCache && shouldWriteToAppCache(i, this.appCache)) {\n this.appCache.put(cacheKey, { item: dataArray[idx] });\n }\n }\n });\n\n if (Array.isArray(inputs)) {\n return (inputs.map(input => {\n return this.requestCache.getValue({ typeName: input.getCacheObjectType(), key: input.getCacheKey() });\n }));\n } else {\n return this.requestCache.getValue({ typeName: inputs.getCacheObjectType(), key: inputs.getCacheKey() });\n }\n }\n\n // For scenarios where data/input was bad, we just return original data\n return data;\n }\n\n /**\n * Helper method to log trace using telemetry\n * @param message message to log to console\n */\n public trace = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log error using telemetry\n * @param message message to log to console\n */\n public error = (message: string): void => {\n this.telemetry.log(LogLevel.Error, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log debug using telemetry\n * @param message message to log to console\n */\n public debug = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param cacheObjectType entity type that was cached\n * @param cacheKey cache key against which the object is cached\n * @throws if cacheObjecttype is null or empty\n */\n public get(cacheObjectType: string, cacheKey: string): T | T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n if (!cacheKey) {\n throw new Error('Cannot have null or empty cacheKey');\n }\n\n const preparedCacheKey = { typeName: cacheObjectType, key: cacheKey };\n let cachedItem = this.requestCache.get(preparedCacheKey);\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && !cachedItem && this.appCache) {\n cachedItem = this.appCache.get(preparedCacheKey);\n }\n\n if (!cachedItem) {\n return null;\n }\n\n if (typeof cachedItem.item !== 'object' || cachedItem.item.$ref !== true) {\n return cachedItem.item;\n }\n\n return Array.isArray(cachedItem.item.key) ? (cachedItem.item.key)\n .map(key => this.getItemFromCache({ typeName: cacheObjectType, key }))\n .filter(Boolean) : null;\n }\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param input The input\n * @param data The data\n * @throws if cacheObjecttype is null or empty\n */\n public getAll(cacheObjectType: string): T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n let cachedEntries = this.requestCache.getAllItems(cacheObjectType);\n if (!cachedEntries) {\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedEntries = this.appCache && this.appCache.getAllItems(cacheObjectType);\n }\n\n if (!cachedEntries) {\n return null;\n }\n }\n\n return Object.keys(cachedEntries)\n .filter(key => typeof cachedEntries![key].item !== 'object' || cachedEntries![key].item.$ref !== true)\n .map(key => cachedEntries![key].item);\n }\n\n /**\n * Executes all the actions in the current context in parallel\n */\n public async runAllActionsInQueue(): Promise {\n const { threadId, requestContext, requestCache, appCache, nextTierCounter, executionParams } = this;\n if (!executionParams.length) {\n this.trace('No actions to execute - not running further.');\n return;\n }\n // Increment the tier each pass through run all actions\n if (this.isMaxDepthExceeded()) {\n this.trace('Max depth exceeded - not running further.');\n return;\n }\n\n // When kicking off the next tier,\n // set the max number of chain actions the can be expected from child actions\n // equal to the number of actions that are executing in current tier\n const expectedNumberOfChildThreads = executionParams.length;\n\n let nextTierStartingDepth;\n if (this.spawnChildOnExecute) {\n nextTierStartingDepth = nextTierCounter.next + 1;\n } else {\n nextTierStartingDepth = ++nextTierCounter.next;\n }\n\n const nextTier = new ActionContext({\n id: threadId,\n requestContext: requestContext,\n requestCache: requestCache,\n appCache: appCache,\n currentExecutionTier: nextTierStartingDepth,\n expectedActionCount: expectedNumberOfChildThreads,\n telemetry: this.telemetry\n });\n\n const refreshconfigslocal: Set = new Set();\n\n nextTier.nextTierCounter = { next: nextTierStartingDepth };\n // DO NOT Trace using current action context, use only secondaryContext to remain consistent with actions\n const promises: Promise[] = executionParams.map(param => {\n // TODO: should we read from input about the cacheability?\n return param.execute(nextTier, requestCache, appCache, shouldByPassCache(this.requestContext), []).then(refreshActions => {\n // refresh the data actions which need to be refreshed.\n if (refreshActions.length) {\n refreshconfigslocal.add({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n this.refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n const cacheValue = requestCache.get(REFRESH_ACTIONS_CACHE_KEY);\n const refreshConfigs = cacheValue ? cacheValue.item : [];\n refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n requestCache.put(REFRESH_ACTIONS_CACHE_KEY, {\n item: refreshConfigs\n });\n }\n\n // If the current chain action completes execution\n // decrement the max number of threads that we expect\n // from the next tier\n nextTier.expectedActionsInCurrentTier--;\n\n if (!nextTier.hasRun) {\n // First check if the next tier has any actions\n // then check if the number of thread match expected\n if (nextTier.currentActionsInQueue > 0 && nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier) {\n return nextTier.runAllActionsInQueue();\n }\n }\n });\n });\n\n // Wait until all the actions in current tier are run to completion\n return Promise.all(promises)\n .then(() => {\n if (refreshconfigslocal.size > 0 && requestContext.features && !!requestContext.features.disable_appcache_refresh_await) {\n refreshconfigslocal.forEach(rf => {\n const refreshRequestCache = new RequestCache();\n const refreshContext = new ActionContext({\n id: 'Refresh Context',\n requestContext: requestContext,\n requestCache: new RequestCache(),\n telemetry: this.telemetry,\n appCache: appCache,\n spawnChildOnExecute: true\n });\n\n rf.paramExecutor\n .execute(\n refreshContext,\n refreshRequestCache,\n this.appCache,\n shouldByPassCache(this.requestContext),\n rf.actionInputs\n )\n .then(() =>\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n `BackgroundRefresh - Executed refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n )\n )\n .catch(error => {\n StaticTelemetry.log(\n LogLevel.Warning,\n `BackgroundRefresh - Error execution refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n );\n });\n });\n }\n this._endCurrentTier();\n })\n .catch(error => {\n this._endCurrentTier();\n throw error;\n });\n }\n\n /**\n * Returns true if current tier has exceeded max depth\n */\n private isMaxDepthExceeded = (): boolean => {\n const maxDepth =\n (this.requestContext &&\n this.requestContext.app &&\n this.requestContext.app.platform &&\n this.requestContext.app.platform.maxDepth) ||\n ActionContext.maxDepth;\n return this.nextTierCounter.next > maxDepth;\n };\n\n /**\n * Retrieves item from request cache and fallsback to app cache if not found\n */\n private getItemFromCache = (cacheKey: ICacheKey): T | undefined => {\n let cachedItem = this.requestCache.get(cacheKey);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedItem = this.appCache.get(cacheKey);\n }\n\n return cachedItem ? cachedItem.item : undefined;\n };\n\n /**\n * Signals the end of current tier so actions can return the response\n */\n private _endCurrentTier = (): void => {\n this.hasRun = true;\n EventHelper.emit(`${this.eventId}:completed`, this.currentExecutionTier);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RequestCache } from '@msdyn365-commerce/cache-internal';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ActionContext } from './action-context';\n\n/**\n * Creates a mock but usable ActionContext.\n * @param context The partial context to add to the return action context.\n *\n * DEPRECATED: Please use buildMockActionContext and pass in a constructed\n * ActionContext to build a hydrated mock action context\n * Example:\n * const actionContext = buildMockActionContext(new ActionContext({\n * id: 'mock-context',\n * requestCache: new RequestCache(),\n * requestContext: {},\n * appCache: null\n * }));\n *\n */\nexport const buildHydratedMockActionContext = (context?: Partial): IActionContext => {\n return new ActionContext({\n id: 'mock-context',\n requestCache: new RequestCache(),\n requestContext: (context && context.requestContext) || {},\n appCache: null\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\nimport { getMediaLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * The action input class for the getMediaLocationsForSelectedVariant data action.\n */\nexport class MediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}`;\n\n public getCacheObjectType = () => 'ProductMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getMediaLocationsForProductAction(input: MediaLocationsInput, ctx: IActionContext): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelMediaFeatureVersion = versionGte(rsVersion, '9.43');\n if (!OmniChannelMediaFeatureVersion) {\n return [];\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await getMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n input.productId,\n input.channelId,\n input.catalogId\n );\n } catch (error) {\n ctx.telemetry.error(`Error running getMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Filtering product images and videos only\n let productImagesAndVideos = productMediaLocations.filter(\n // @ts-ignore\n media => media.MediaTypeValue === types.MediaType.Image || media.MediaTypeValue === types.MediaType.Video\n );\n if (productImagesAndVideos.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n productImagesAndVideos = productImagesAndVideos.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = productImagesAndVideos.map((mediaLocation: MediaLocation) => {\n const mediaLoc = { ...mediaLocation };\n // @ts-ignore\n if (mediaLoc.MediaTypeValue === types.MediaType.Image) {\n mediaLoc.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n }\n return mediaLoc;\n });\n\n return productMedia;\n}\n\n/**\n * The getMediaLocationsForSelectedVariant data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-mediaLocations',\n action: >getMediaLocationsForProductAction\n});\n\nexport default getMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nexport enum MediaLocationType {\n All,\n Image,\n Video,\n File\n}\n\n/**\n * The action input class for the getAdditionalMediaLocationsForSelectedVariant data action.\n */\nexport class AdditionalMediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n // defaulting to image for backwards compatibility, old version filters Image by default.\n public typeFilter: MediaLocationType;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number, typeFilter = MediaLocationType.All) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.typeFilter = typeFilter;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}-${this.typeFilter}`;\n\n public getCacheObjectType = () => 'ProductAdditionalMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getAdditionalMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getAdditionalMediaLocationsForProductAction(\n input: AdditionalMediaLocationsInput,\n ctx: IActionContext\n): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelAdditionalMediaFeatureVersion = versionGte(rsVersion, '9.46');\n if (!OmniChannelAdditionalMediaFeatureVersion) {\n return [];\n }\n // the types and productActions are not available in all versions of retail-proxy, so they are imported by direct reference after comparing the version to the minimum required(9.46)\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const productActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await productActions.searchMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n {\n ProductId: input.productId,\n ChannelId: input.channelId,\n CatalogId: input.catalogId,\n MediaUsageTypeValue: 1\n }\n );\n } catch (error) {\n ctx.telemetry.error(`Error running searchMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Need to add a second enum for MediaTypeValue because the RetailServer API returns a different enum for the MediaTypeValue property,\n // where default is \"None\" instead of \"All\"\n let filteredMedia: MediaLocation[] = [];\n switch (input.typeFilter) {\n case MediaLocationType.Image:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Image);\n break;\n case MediaLocationType.Video:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Video);\n break;\n case MediaLocationType.File:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.File);\n break;\n default:\n filteredMedia = productMediaLocations;\n }\n if (filteredMedia.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n filteredMedia = filteredMedia.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = filteredMedia.map((mediaLocation: MediaLocation) => {\n mediaLocation.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n mediaLocation.AltText = mediaLocation.AltText;\n return mediaLocation;\n });\n return productMedia;\n}\n\n/**\n * The getAdditionalMediaLocationsForSelectedVariantActionDataAction data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getAdditionalMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-additional-mediaLocations',\n action: >getAdditionalMediaLocationsForProductAction\n});\n\nexport default getAdditionalMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core-internal';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetCustomerInput implements IActionInput {\n public customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly cacheType?: CacheType;\n\n public constructor(apiSettings: ICommerceApiSettings, accountNumber?: string, cacheType?: CacheType) {\n this.customerAccountNumber = accountNumber;\n this.apiSettings = apiSettings;\n this.cacheType = cacheType;\n }\n\n /**\n * GetCacheKey.\n * @returns - Returns string.\n */\n public getCacheKey = (): string => `Customer-${this.customerAccountNumber}-chanId:${this.apiSettings.channelId}`;\n\n /**\n * GetCacheObjectType.\n * @returns - Cache Object Type string.\n */\n public getCacheObjectType = (): string => 'Customer';\n\n /**\n * DataCacheType.\n * @returns - CacheType string.\n */\n public dataCacheType = (): CacheType => {\n return this.cacheType ? this.cacheType : 'request';\n };\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - GetCustomer input.\n */\nexport const createGetCustomerInput = (inputData: ICreateActionContext>): GetCustomerInput => {\n const { user, apiSettings } = inputData.requestContext;\n if (!user.token || !user.isAuthenticated) {\n throw new Error('[getCustomer][createInput]: User is not Authenticated.');\n }\n\n return new GetCustomerInput(apiSettings);\n};\n\n/**\n * GetCustomerAction.\n * @param input - GetCustomerInput.\n * @param ctx - Action Context.\n * @returns - Customer information.\n */\nconst getCustomerAction = async (input: GetCustomerInput, ctx: IActionContext): Promise => {\n if (input && ctx.requestContext.user.isAuthenticated) {\n try {\n return readAsync({ callerContext: ctx, bypassCache: 'get' }, '').then(response => {\n return Array.isArray(response) ? response[0] : response;\n });\n } catch (error) {\n ctx.telemetry.error(`Error running getCustomer action: ${error}`);\n return {};\n }\n }\n\n ctx.telemetry.warning('[getCustomer]Invalid input passed to action');\n return {};\n};\n\n/**\n * The customer data action.\n */\nexport const getCustomerActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-customer',\n action: >getCustomerAction,\n input: createGetCustomerInput\n});\n\nexport default getCustomerActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n shouldRefresh?: boolean;\n error?: boolean;\n instance?: string;\n // property to indicate the source whether it is app/request\n s?: ICacheSource;\n /**\n * Flag to track the when the item start refreshing.\n */\n refreshStartTimeInMS?: number;\n lastRefreshTime?: Date;\n}\n\nexport interface ICompressCache {\n data: T;\n isCompressed: boolean;\n}\n\nexport interface ICacheItemOptions {\n ttr?: number;\n ttl?: number;\n cacheKeySuffix?: string;\n}\nexport interface ICacheStats {\n keys?: number;\n hits?: number;\n misses?: number;\n totalKeySize?: number;\n totalValueSize?: number;\n valueSizePerKey?: object;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n * @param options {ICacheItemOptions} - Optional cache item options\n */\n put(cacheKey: ICacheKey, item: ICacheItem, options?: ICacheItemOptions): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): IDictionary> | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache, isObservable?: boolean): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n\n /**\n * @function {getStats} - Returns statstics about the cache (number of keys, value size in bytes, etc)\n */\n getStats?(): ICacheStats;\n\n /**\n * @function {flushStats} - Flush the stats\n */\n flushStats?(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICacheKey } from './ICache';\n\nexport const MODULE_CSS_CACHE_KEY = 'MODULE-CSS-CHUNKS';\nexport const MODULE_CSS_CACHE_TYPENAME = '__MODULECSSCHUNKS__';\n\nexport const normalizeCacheKey = (cacheKey: ICacheKey): ICacheKey => {\n return {\n typeName: cacheKey.typeName.toUpperCase(),\n key: cacheKey.key.toUpperCase()\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\nimport { isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { observable, set, transaction } from 'mobx';\nimport { normalizeCacheKey } from './cache-utils';\nimport { ICache, ICacheItem, ICacheKey, ICacheSource } from './ICache';\n\n/**\n * Client cache implementation\n */\nexport class RequestCache implements ICache {\n private internalCache: { [typeName: string]: IDictionary> } = {};\n\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n public put(cacheKey: ICacheKey, item: ICacheItem): boolean {\n if (!cacheKey.typeName) {\n throw new Error(`Invalid type (${cacheKey.typeName} specified)`);\n }\n\n if (!cacheKey.key) {\n throw new Error(`Invalid key (${cacheKey.key} specified) for typeName: ${cacheKey.typeName}`);\n }\n\n item.s = item.s !== undefined ? item.s : ICacheSource.RequestCache;\n const { typeName, key } = normalizeCacheKey(cacheKey);\n if (this.internalCache[typeName] === undefined) {\n this.internalCache[typeName] = {};\n }\n return transaction(() => {\n let cacheItem: ICacheItem = >this.internalCache[typeName][key];\n\n // For updating AsyncResults, only update result\n if (cacheItem && isAsyncResult(cacheItem.item)) {\n if (cacheItem.item.status !== 'LOADING') {\n set(cacheItem.item, 'status', 'LOADING');\n }\n set(cacheItem.item, 'result', item.item);\n // Auto resolve promises whos result is being set, as they are essentially being force-completed\n set(cacheItem.item, 'status', 'SUCCESS');\n } else if (cacheItem) {\n set(cacheItem, 'item', item.item);\n } else {\n if (!isAsyncResult(item.item)) {\n cacheItem = observable>({ ...item }, undefined, {\n deep: true,\n name: `T:${typeName}_K:${key}`\n });\n } else {\n cacheItem = item;\n }\n this.internalCache[typeName][key] = cacheItem;\n }\n\n return true;\n });\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public get(cacheKey: ICacheKey): ICacheItem | undefined {\n if (!cacheKey) {\n throw new Error(`Invalid cacheKey: ${cacheKey}`);\n }\n\n if (!cacheKey.typeName) {\n throw new Error(`Invalid cacheKey type: ${cacheKey.typeName}`);\n }\n\n cacheKey = normalizeCacheKey(cacheKey);\n return this.internalCache[cacheKey.typeName] ? >this.internalCache[cacheKey.typeName][cacheKey.key] : undefined;\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getAllItems(typeName: string): IDictionary> | undefined {\n if (!typeName) {\n throw new Error(`typeName cannot be empty`);\n }\n\n return >>this.internalCache[typeName.toUpperCase()];\n }\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getValue(cacheKey: ICacheKey): T | undefined {\n const cachedItem: ICacheItem | undefined = this.get(cacheKey);\n return cachedItem ? this._value(cachedItem) : undefined;\n }\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n public copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined {\n throw new Error('Not Implemented');\n }\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n public del(cacheKey: ICacheKey): boolean {\n cacheKey = normalizeCacheKey(cacheKey);\n const cacheType = this.internalCache[cacheKey.typeName];\n if (cacheType && cacheType[cacheKey.key]) {\n delete cacheType[cacheKey.key];\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n public flushAll(): void {\n this.internalCache = {};\n }\n\n /**\n * @function {keys} - Method to fetch all the keys in the cache\n * @return {string[]} - returns a list of all the keys in the cache\n */\n public keys(): string[] {\n return Object.keys(this.internalCache);\n }\n\n /**\n * Get the value out of a cache item\n * This returns the raw value of the item, it will *not* be a MobX observable value\n * @param item The observable cache item to retireve the value from\n */\n private _value(item: ICacheItem): T {\n return item.item;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './create-data-action';\nexport * from './create-data-action.vnext';\nexport * from './create-data-action-hook';\nexport * from './action-context';\nexport * from './action-executor';\nexport * from './cache/client-cache';\nexport * from './cache/simple-cache';\nexport * from './event-emitter';\nexport * from './mock-helper';\nexport * from './cache/retail-cache-helper';\nexport * from './action-registrar';\nexport * from './helpers';\nexport * from './actions/get-media-locations';\nexport * from './actions/get-additional-media-locations';\nexport * from './actions/get-customer';\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartnerUser, AccountStatementRequest, BusinessPartnerOperationRequest } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnerUsersQuery(b2BUserId?: string): DataServiceQuery {\n var key = (b2BUserId) ? { B2BUserId: b2BUserId } : null;\n return new DataServiceQuery(\"BusinessPartnerUsers\", \"BusinessPartnerUser\", \"BusinessPartnerUserClass\", key);\n }\n \n export function createCreateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery().create(entity);\n }\n\n export function createBusinessPartnerUserAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(b2BUserId: string): IDataServiceRequest {\n return businessPartnerUsersQuery(b2BUserId).read();\n }\n\n export function readAsync(context: IContext, b2BUserId: string): AsyncResult {\n const request = createReadAsync(b2BUserId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnerUsersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRequestAccountStatementInput(b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestAccountStatement', true, '', '', {bypassCache: 'get', returnEntity: ''}, {accountStatementParameters: accountStatementParameters });\n } \n \n export function requestAccountStatementAsync(context: IContext, b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null):AsyncResult {\n const request = createRequestAccountStatementInput(b2BUserId, accountStatementParameters);\n return executeAction(request, context);\n } \n \n export function createRequestInvoiceCopyInput(b2BUserId: string, invoiceId: string | null, deliveryType: number): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestInvoiceCopy', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invoiceId: invoiceId, deliveryType: deliveryType });\n } \n \n export function requestInvoiceCopyAsync(context: IContext, b2BUserId: string, invoiceId: string | null, deliveryType: number):AsyncResult {\n const request = createRequestInvoiceCopyInput(b2BUserId, invoiceId, deliveryType);\n return executeAction(request, context);\n } \n \n export function createGetOperationRequestsInput(queryResultSettings: IQueryResultSettings, b2BUserId: string, startDateTime: Date, endDateTime: Date): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationRequests', true, \n 'BusinessPartnerOperationRequestClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerOperationRequest'}, {startDateTime: startDateTime, endDateTime: endDateTime });\n } \n \n export function getOperationRequestsAsync(context: IContext, b2BUserId: string, startDateTime: Date, endDateTime: Date):AsyncResult {\n const request = createGetOperationRequestsInput(context.queryResultSettings, b2BUserId, startDateTime, endDateTime);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnerUsersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, \n 'BusinessPartnerUserClass'\n , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartner, OrderShipments, BusinessPartnerProspect, BusinessPartnerUser } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnersQuery(businessPartnerId?: string): DataServiceQuery {\n var key = (businessPartnerId) ? { BusinessPartnerId: businessPartnerId } : null;\n return new DataServiceQuery(\"BusinessPartners\", \"BusinessPartner\", \"BusinessPartnerClass\", key);\n }\n \n export function createCreateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery().create(entity);\n }\n\n export function createBusinessPartnerAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(businessPartnerId: string): IDataServiceRequest {\n return businessPartnersQuery(businessPartnerId).read();\n }\n\n export function readAsync(context: IContext, businessPartnerId: string): AsyncResult {\n const request = createReadAsync(businessPartnerId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', false, \n 'OrderShipmentsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n export function createCreateProspectInput(businessPartnerProspect?: BusinessPartnerProspect | null): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('CreateProspect', true, \n 'BusinessPartnerProspectClass'\n , 'false', {bypassCache: 'get', returnEntity: 'BusinessPartnerProspect'}, {businessPartnerProspect: businessPartnerProspect });\n } \n \n export function createProspectAsync(context: IContext, businessPartnerProspect?: BusinessPartnerProspect | null):AsyncResult {\n const request = createCreateProspectInput(businessPartnerProspect);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, \n 'BusinessPartnerClass'\n , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n export function createGetManagedBusinessPartnersInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = businessPartnersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetManagedBusinessPartners', false, \n 'BusinessPartnerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n } \n \n export function getManagedBusinessPartnersAsync(context: IContext, ):AsyncResult {\n const request = createGetManagedBusinessPartnersInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetUsersInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUsers', false, \n 'BusinessPartnerUserClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getUsersAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetUsersInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Cart, CartSearchCriteria, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, ReturnCartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, RecallInvoicedSalesLineLookup, CardPaymentAcceptSettings, CommerceProperty, CardPaymentAcceptPoint, RetrievePaymentResultSettings, CardPaymentAcceptResult, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function cartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Carts\", \"Cart\", \"CartClass\", key);\n }\n \n export function createCreateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery().create(entity);\n }\n\n export function createCartAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return cartsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return cartsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, cartSearchCriteria?: CartSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, {cartSearchCriteria: cartSearchCriteria });\n } \n \n export function searchAsync(context: IContext, cartSearchCriteria?: CartSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, cartSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createCheckoutInput(id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Checkout', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion });\n } \n \n export function checkoutAsync(context: IContext, id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id: string, loyaltyCardId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetMaxLoyaltyPointsToRedeemForTransactionBalance', true, \n 'LoyaltyPointRedemptionEstimateClass'\n , 'false', {bypassCache: 'none', returnEntity: 'LoyaltyPointRedemptionEstimate'}, {loyaltyCardId: loyaltyCardId, currencyCode: currencyCode });\n } \n \n export function getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(context: IContext, id: string, loyaltyCardId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id, loyaltyCardId, currencyCode);\n return executeAction(request, context);\n } \n \n export function createGetPaymentsHistoryInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPaymentsHistory', true, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, { });\n } \n \n export function getPaymentsHistoryAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPaymentsHistoryInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsByChannelIdInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptionsByChannelId', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, channelId: channelId, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsByChannelIdAsync(context: IContext, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsByChannelIdInput(context.queryResultSettings, id, lineShippingAddresses, channelId, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptions', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsAsync(context: IContext, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsInput(context.queryResultSettings, id, lineShippingAddresses, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryPreferencesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetDeliveryPreferences', true, \n 'CartDeliveryPreferencesClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartDeliveryPreferences'}, { });\n } \n \n export function getDeliveryPreferencesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetDeliveryPreferencesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n 'DeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'DeliveryOption'}, {shippingAddress: shippingAddress, cartLineIds: cartLineIds, filterOption: filterOption, ignoreLinesWithDeliveryMode: ignoreLinesWithDeliveryMode });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, id, shippingAddress, cartLineIds, filterOption, ignoreLinesWithDeliveryMode);\n return executeAction(request, context);\n } \n \n export function createUpdateLineDeliverySpecificationsInput(id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLineDeliverySpecifications', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {lineDeliverySpecifications: lineDeliverySpecifications });\n } \n \n export function updateLineDeliverySpecificationsAsync(context: IContext, id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null):AsyncResult {\n const request = createUpdateLineDeliverySpecificationsInput(id, lineDeliverySpecifications);\n return executeAction(request, context);\n } \n \n export function createUpdateDeliverySpecificationInput(id: string, deliverySpecification?: DeliverySpecification | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateDeliverySpecification', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {deliverySpecification: deliverySpecification });\n } \n \n export function updateDeliverySpecificationAsync(context: IContext, id: string, deliverySpecification?: DeliverySpecification | null):AsyncResult {\n const request = createUpdateDeliverySpecificationInput(id, deliverySpecification);\n return executeAction(request, context);\n } \n \n export function createAddChargeInput(id: string, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addChargeAsync(context: IContext, id: string, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddChargeInput(id, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideChargeInput(id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideChargeAsync(context: IContext, id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideChargeInput(id, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createAddCartLineChargeInput(id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddCartLineChargeInput(id, cartLineId, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideCartLineChargeInput(id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideCartLineChargeInput(id, cartLineId, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createVoidInput(id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Void', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {reasonCodeLines: reasonCodeLines, cartVersion: cartVersion });\n } \n \n export function voidAsync(context: IContext, id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createVoidInput(id, reasonCodeLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function addCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createAddCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddReturnCartLinesInput(id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddReturnCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {returnCartLines: returnCartLines, returnTransactionSearchLocation: returnTransactionSearchLocation, cartVersion: cartVersion });\n } \n \n export function addReturnCartLinesAsync(context: IContext, id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null):AsyncResult {\n const request = createAddReturnCartLinesInput(id, returnCartLines, returnTransactionSearchLocation, cartVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function updateCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createUpdateCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createVoidCartLinesInput(id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines });\n } \n \n export function voidCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createVoidCartLinesInput(id, cartLines);\n return executeAction(request, context);\n } \n \n export function createRemoveCartLinesInput(id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineIds: cartLineIds });\n } \n \n export function removeCartLinesAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createRemoveCartLinesInput(id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createAddTenderLineInput(id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartTenderLine: cartTenderLine, cartVersion: cartVersion });\n } \n \n export function addTenderLineAsync(context: IContext, id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddTenderLineInput(id, cartTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createCalculateTenderDiscountInput(id: string, tenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CalculateTenderDiscount', true, \n 'TenderDiscountLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'TenderDiscountLine'}, {tenderLine: tenderLine, cartVersion: cartVersion });\n } \n \n export function calculateTenderDiscountAsync(context: IContext, id: string, tenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createCalculateTenderDiscountInput(id, tenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddPreprocessedTenderLineInput(id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddPreprocessedTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {preprocessedTenderLine: preprocessedTenderLine, cartVersion: cartVersion });\n } \n \n export function addPreprocessedTenderLineAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddPreprocessedTenderLineInput(id, preprocessedTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createValidateTenderLineForAddInput(id: string, tenderLine?: TenderLine | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateTenderLineForAdd', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLine: tenderLine });\n } \n \n export function validateTenderLineForAddAsync(context: IContext, id: string, tenderLine?: TenderLine | null):AsyncResult {\n const request = createValidateTenderLineForAddInput(id, tenderLine);\n return executeAction(request, context);\n } \n \n export function createUpdateTenderLineSignatureInput(id: string, tenderLineId?: string | null, signatureData?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateTenderLineSignature', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, signatureData: signatureData });\n } \n \n export function updateTenderLineSignatureAsync(context: IContext, id: string, tenderLineId?: string | null, signatureData?: string | null):AsyncResult {\n const request = createUpdateTenderLineSignatureInput(id, tenderLineId, signatureData);\n return executeAction(request, context);\n } \n \n export function createGetDeclinedOrVoidedCardReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeclinedOrVoidedCardReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {preprocessedTenderLine: preprocessedTenderLine, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getDeclinedOrVoidedCardReceiptsAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetDeclinedOrVoidedCardReceiptsInput(context.queryResultSettings, id, preprocessedTenderLine, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createCopyInput(id: string, targetCartType: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Copy', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {targetCartType: targetCartType });\n } \n \n export function copyAsync(context: IContext, id: string, targetCartType: number):AsyncResult {\n const request = createCopyInput(id, targetCartType);\n return executeAction(request, context);\n } \n \n export function createAddInvoicedSalesLinesToCartInput(transactionId: string | null, invoicedSalesLinesIds: number[]): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('AddInvoicedSalesLinesToCart', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoicedSalesLinesIds: invoicedSalesLinesIds });\n } \n \n export function addInvoicedSalesLinesToCartAsync(context: IContext, transactionId: string | null, invoicedSalesLinesIds: number[]):AsyncResult {\n const request = createAddInvoicedSalesLinesToCartInput(transactionId, invoicedSalesLinesIds);\n return executeAction(request, context);\n } \n \n export function createRecallInvoicedSalesLinesInput(id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecallInvoicedSalesLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {recallInvoicedSalesLineLookups: recallInvoicedSalesLineLookups });\n } \n \n export function recallInvoicedSalesLinesAsync(context: IContext, id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null):AsyncResult {\n const request = createRecallInvoicedSalesLinesInput(id, recallInvoicedSalesLineLookups);\n return executeAction(request, context);\n } \n \n export function createVoidTenderLineInput(id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, reasonCodeLines: reasonCodeLines, isPreprocessed: isPreprocessed, forceVoid: forceVoid });\n } \n \n export function voidTenderLineAsync(context: IContext, id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null):AsyncResult {\n const request = createVoidTenderLineInput(id, tenderLineId, reasonCodeLines, isPreprocessed, forceVoid);\n return executeAction(request, context);\n } \n \n export function createIssueGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('IssueGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function issueGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createIssueGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createRefillGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RefillGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function refillGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createRefillGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createCashOutGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CashOutGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function cashOutGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createCashOutGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createSuspendInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Suspend', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function suspendAsync(context: IContext, id: string):AsyncResult {\n const request = createSuspendInput(id);\n return executeAction(request, context);\n } \n \n export function createSuspendWithJournalInput(id: string, journalCartId?: string | null, receiptNumberSequence?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SuspendWithJournal', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {journalCartId: journalCartId, receiptNumberSequence: receiptNumberSequence });\n } \n \n export function suspendWithJournalAsync(context: IContext, id: string, journalCartId?: string | null, receiptNumberSequence?: string | null):AsyncResult {\n const request = createSuspendWithJournalInput(id, journalCartId, receiptNumberSequence);\n return executeAction(request, context);\n } \n \n export function createResumeInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Resume', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resumeAsync(context: IContext, id: string):AsyncResult {\n const request = createResumeInput(id);\n return executeAction(request, context);\n } \n \n export function createResumeFromReceiptIdInput(receiptId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('ResumeFromReceiptId', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {receiptId: receiptId });\n } \n \n export function resumeFromReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createResumeFromReceiptIdInput(receiptId);\n return executeAction(request, context);\n } \n \n export function createRemoveDiscountCodesInput(id: string, discountCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveDiscountCodes', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCodes: discountCodes });\n } \n \n export function removeDiscountCodesAsync(context: IContext, id: string, discountCodes?: string[] | null):AsyncResult {\n const request = createRemoveDiscountCodesInput(id, discountCodes);\n return executeAction(request, context);\n } \n \n export function createGetSuspendedInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSuspended', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, { });\n } \n \n export function getSuspendedAsync(context: IContext, ):AsyncResult {\n const request = createGetSuspendedInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createOverrideCartLinePriceInput(id: string, cartLineId: string | null, price: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price });\n } \n \n export function overrideCartLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number):AsyncResult {\n const request = createOverrideCartLinePriceInput(id, cartLineId, price);\n return executeAction(request, context);\n } \n \n export function createGetCardPaymentAcceptPointInput(id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetCardPaymentAcceptPoint', true, \n 'CardPaymentAcceptPointClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CardPaymentAcceptPoint'}, {cardPaymentAcceptSettings: cardPaymentAcceptSettings, extensionProperties: extensionProperties });\n } \n \n export function getCardPaymentAcceptPointAsync(context: IContext, id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetCardPaymentAcceptPointInput(id, cardPaymentAcceptSettings, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createRetrieveCardPaymentAcceptResultInput(resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RetrieveCardPaymentAcceptResult', true, \n 'CardPaymentAcceptResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CardPaymentAcceptResult'}, {resultAccessCode: resultAccessCode, extensionProperties: extensionProperties, cartId: cartId, settings: settings });\n } \n \n export function retrieveCardPaymentAcceptResultAsync(context: IContext, resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null):AsyncResult {\n const request = createRetrieveCardPaymentAcceptResultInput(resultAccessCode, extensionProperties, cartId, settings);\n return executeAction(request, context);\n } \n \n export function createRecallOrderInput(transactionId?: string | null, salesId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId });\n } \n \n export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null):AsyncResult {\n const request = createRecallOrderInput(transactionId, salesId);\n return executeAction(request, context);\n } \n \n export function createRecallQuoteInput(transactionId?: string | null, quoteId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallQuote', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, quoteId: quoteId });\n } \n \n export function recallQuoteAsync(context: IContext, transactionId?: string | null, quoteId?: string | null):AsyncResult {\n const request = createRecallQuoteInput(transactionId, quoteId);\n return executeAction(request, context);\n } \n \n export function createRecalculateOrderInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecalculateOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function recalculateOrderAsync(context: IContext, id: string):AsyncResult {\n const request = createRecalculateOrderInput(id);\n return executeAction(request, context);\n } \n \n export function createResetAllChargesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ResetAllCharges', false, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resetAllChargesAsync(context: IContext, id: string):AsyncResult {\n const request = createResetAllChargesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetPromotionsInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetPromotions', true, \n 'CartPromotionsClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartPromotions'}, { });\n } \n \n export function getPromotionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPromotionsInput(id);\n return executeAction(request, context);\n } \n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'CartPromotionLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartPromotionLine'}, {cartLineIds: cartLineIds });\n } \n \n export function getAvailablePromotionsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createRecallSalesInvoiceInput(transactionId?: string | null, invoiceId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallSalesInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoiceId: invoiceId });\n } \n \n export function recallSalesInvoiceAsync(context: IContext, transactionId?: string | null, invoiceId?: string | null):AsyncResult {\n const request = createRecallSalesInvoiceInput(transactionId, invoiceId);\n return executeAction(request, context);\n } \n \n export function createAddOrderInvoiceInput(id: string, invoiceId?: string | null, lineDescription?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddOrderInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceId: invoiceId, lineDescription: lineDescription });\n } \n \n export function addOrderInvoiceAsync(context: IContext, id: string, invoiceId?: string | null, lineDescription?: string | null):AsyncResult {\n const request = createAddOrderInvoiceInput(id, invoiceId, lineDescription);\n return executeAction(request, context);\n } \n \n export function createAddInvoicesInput(id: string, invoiceIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddInvoices', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceIds: invoiceIds });\n } \n \n export function addInvoicesAsync(context: IContext, id: string, invoiceIds?: string[] | null):AsyncResult {\n const request = createAddInvoicesInput(id, invoiceIds);\n return executeAction(request, context);\n } \n \n export function createUpdateCommissionSalesGroupInput(transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('UpdateCommissionSalesGroup', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, cartLineId: cartLineId, commissionSalesGroup: commissionSalesGroup, isUserInitiated: isUserInitiated });\n } \n \n export function updateCommissionSalesGroupAsync(context: IContext, transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean):AsyncResult {\n const request = createUpdateCommissionSalesGroupInput(transactionId, cartLineId, commissionSalesGroup, isUserInitiated);\n return executeAction(request, context);\n } \n \n export function createAddCouponsInput(id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes, isLegacyDiscountCode: isLegacyDiscountCode });\n } \n \n export function addCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null):AsyncResult {\n const request = createAddCouponsInput(id, couponCodes, isLegacyDiscountCode);\n return executeAction(request, context);\n } \n \n export function createRemoveCouponsInput(id: string, couponCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes });\n } \n \n export function removeCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null):AsyncResult {\n const request = createRemoveCouponsInput(id, couponCodes);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsForAddInput(queryResultSettings: IQueryResultSettings, id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlertsForAdd', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLines: cartLines });\n } \n \n export function getCartLineUserAlertsForAddAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsForAddInput(context.queryResultSettings, id, cartLines);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlerts', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLineIds: cartLineIds });\n } \n \n export function getCartLineUserAlertsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createGetChargeCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChargeCodes', false, \n 'ChargeCodeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChargeCode'}, { });\n } \n \n export function getChargeCodesAsync(context: IContext, ):AsyncResult {\n const request = createGetChargeCodesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetReceiptTypesInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptTypes', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getReceiptTypesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReceiptTypesInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createSetInvoiceLinePriceInput(id: string, cartLineId: string | null, price: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SetInvoiceLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price, cartVersion: cartVersion });\n } \n \n export function setInvoiceLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number, cartVersion?: number | null):AsyncResult {\n const request = createSetInvoiceLinePriceInput(id, cartLineId, price, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddDiscountCodeInput(id: string, discountCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddDiscountCode', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCode: discountCode });\n } \n \n export function addDiscountCodeAsync(context: IContext, id: string, discountCode?: string | null):AsyncResult {\n const request = createAddDiscountCodeInput(id, discountCode);\n return executeAction(request, context);\n } \n \n export function createGetReturnOptionsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOptions', false, \n 'TenderTypeAmountClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderTypeAmount'}, { });\n } \n \n export function getReturnOptionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReturnOptionsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createValidateForCheckoutInput(id: string, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateForCheckout', false, \n 'CartLineValidationResultsClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CartLineValidationResults'}, {cartVersion: cartVersion });\n } \n \n export function validateForCheckoutAsync(context: IContext, id: string, cartVersion?: number | null):AsyncResult {\n const request = createValidateForCheckoutInput(id, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetTenderSuggestionsInput(queryResultSettings: IQueryResultSettings, id: string, tenderTypeId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderSuggestions', false, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, {tenderTypeId: tenderTypeId, currencyCode: currencyCode });\n } \n \n export function getTenderSuggestionsAsync(context: IContext, id: string, tenderTypeId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetTenderSuggestionsInput(context.queryResultSettings, id, tenderTypeId, currencyCode);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductCatalog } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function catalogsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", \"ProductCatalogClass\", key);\n }\n \n export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery().create(entity);\n }\n\n export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return catalogsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return catalogsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest { \n const query = catalogsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogs', true, \n 'ProductCatalogClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\n } \n \n export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult {\n const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function categoriesQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Categories\", \"Category\", \"CategoryClass\", key);\n }\n \n export function createCreateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery().create(entity);\n }\n\n export function createCategoryAsync(context: IContext, entity: Category): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Category): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Category): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return categoriesQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return categoriesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategories', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult {\n const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributes', false, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n } \n \n export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult {\n const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n } \n \n export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult {\n const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n return executeAction(request, context);\n } \n \n export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChildren', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n } \n \n export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult {\n const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function commerceListsQuery(id?: number): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", \"CommerceListClass\", key);\n }\n \n export function createCreateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery().create(entity);\n }\n\n export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: number): IDataServiceRequest {\n return commerceListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: number): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return commerceListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByCustomer', true, \n 'CommerceListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\n } \n \n export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetByCustomerInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createAddLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createUpdateLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createRemoveLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('MoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createMoveLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('CopyLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createCopyLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createAddContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createRemoveContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('CreateInvitations', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\n } \n \n export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult {\n const request = createCreateInvitationsInput(id, commerceListInvitations);\n return executeAction(request, context);\n } \n \n export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\n } \n \n export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult {\n const request = createAcceptInvitationInput(invitationToken, customerId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { OrgUnit, TillLayout, SearchStoreCriteria, SearchArea, OrgUnitLocation, OrgUnitLocationSearchCriteria, ChannelConfiguration, StoreHours, ChannelDeliveryOption, OrgUnitAvailability, ItemUnit, ProductDimensionCombination, OrgUnitAvailabilitySearchCriteria, TerminalInfo } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function orgUnitsQuery(orgUnitNumber?: string): DataServiceQuery {\n var key = (orgUnitNumber) ? { OrgUnitNumber: orgUnitNumber } : null;\n return new DataServiceQuery(\"OrgUnits\", \"OrgUnit\", \"OrgUnitClass\", key);\n }\n \n export function createCreateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery().create(entity);\n }\n\n export function createOrgUnitAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orgUnitNumber: string): IDataServiceRequest {\n return orgUnitsQuery(orgUnitNumber).read();\n }\n\n export function readAsync(context: IContext, orgUnitNumber: string): AsyncResult {\n const request = createReadAsync(orgUnitNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return orgUnitsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTillLayoutInput(height?: number | null, width?: number | null, includeImage?: boolean | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetTillLayout', true, \n 'TillLayoutClass'\n , 'false', {bypassCache: 'none', returnEntity: 'TillLayout'}, {height: height, width: width, includeImage: includeImage });\n } \n \n export function getTillLayoutAsync(context: IContext, height?: number | null, width?: number | null, includeImage?: boolean | null):AsyncResult {\n const request = createGetTillLayoutInput(height, width, includeImage);\n return executeAction(request, context);\n } \n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, storeSearchCriteria?: SearchStoreCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'OrgUnitClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, {storeSearchCriteria: storeSearchCriteria });\n } \n \n export function searchAsync(context: IContext, storeSearchCriteria?: SearchStoreCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, storeSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitLocationsByAreaInput(queryResultSettings: IQueryResultSettings, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrgUnitLocationsByArea', true, \n 'OrgUnitLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {searchArea: searchArea, deliveryModeTypeFilter: deliveryModeTypeFilter });\n } \n \n export function getOrgUnitLocationsByAreaAsync(context: IContext, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null):AsyncResult {\n const request = createGetOrgUnitLocationsByAreaInput(context.queryResultSettings, searchArea, deliveryModeTypeFilter);\n return executeAction(request, context);\n } \n \n export function createSearchOrgUnitLocationsInput(queryResultSettings: IQueryResultSettings, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrgUnitLocations', true, \n 'OrgUnitLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {orgUnitLocationSearchCriteria: orgUnitLocationSearchCriteria });\n } \n \n export function searchOrgUnitLocationsAsync(context: IContext, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null):AsyncResult {\n const request = createSearchOrgUnitLocationsInput(context.queryResultSettings, orgUnitLocationSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitConfigurationInput(): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetOrgUnitConfiguration', true, \n 'ChannelConfigurationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ChannelConfiguration'}, { });\n } \n \n export function getOrgUnitConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetOrgUnitConfigurationInput();\n return executeAction(request, context);\n } \n \n export function createGetStoreHoursInput(storeNumber?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetStoreHours', false, \n 'StoreHoursClass'\n , 'false', {bypassCache: 'none', returnEntity: 'StoreHours'}, {storeNumber: storeNumber });\n } \n \n export function getStoreHoursAsync(context: IContext, storeNumber?: string | null):AsyncResult {\n const request = createGetStoreHoursInput(storeNumber);\n return executeAction(request, context);\n } \n \n export function createGetChannelDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, channelIds: number[], filterOption?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptions', true, \n 'ChannelDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChannelDeliveryOption'}, {channelIds: channelIds, filterOption: filterOption });\n } \n \n export function getChannelDeliveryOptionsAsync(context: IContext, channelIds: number[], filterOption?: number | null):AsyncResult {\n const request = createGetChannelDeliveryOptionsInput(context.queryResultSettings, channelIds, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryInput(queryResultSettings: IQueryResultSettings, itemId?: string | null, variantId?: string | null, barcode?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventory', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemId: itemId, variantId: variantId, barcode: barcode });\n } \n \n export function getAvailableInventoryAsync(context: IContext, itemId?: string | null, variantId?: string | null, barcode?: string | null):AsyncResult {\n const request = createGetAvailableInventoryInput(context.queryResultSettings, itemId, variantId, barcode);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryNearbyInput(queryResultSettings: IQueryResultSettings, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventoryNearby', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemIds: itemIds, searchArea: searchArea });\n } \n \n export function getAvailableInventoryNearbyAsync(context: IContext, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null):AsyncResult {\n const request = createGetAvailableInventoryNearbyInput(context.queryResultSettings, itemIds, searchArea);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityByDimensionsInput(queryResultSettings: IQueryResultSettings, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilityByDimensions', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {inventLocationIds: inventLocationIds, productId: productId, productDimensionCombinations: productDimensionCombinations });\n } \n \n export function getProductAvailabilityByDimensionsAsync(context: IContext, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null):AsyncResult {\n const request = createGetProductAvailabilityByDimensionsInput(context.queryResultSettings, inventLocationIds, productId, productDimensionCombinations);\n return executeAction(request, context);\n } \n \n export function createSearchProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchProductAvailability', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId, orgUnitAvailabilitySearchCriteria: orgUnitAvailabilitySearchCriteria });\n } \n \n export function searchProductAvailabilityAsync(context: IContext, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null):AsyncResult {\n const request = createSearchProductAvailabilityInput(context.queryResultSettings, productId, orgUnitAvailabilitySearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetTerminalInfoInput(queryResultSettings: IQueryResultSettings, orgUnitNumber: string, deviceType: number): IDataServiceRequest { \n const query = orgUnitsQuery(orgUnitNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTerminalInfo', false, \n 'TerminalInfoClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TerminalInfo'}, {deviceType: deviceType });\n } \n \n export function getTerminalInfoAsync(context: IContext, orgUnitNumber: string, deviceType: number):AsyncResult {\n const request = createGetTerminalInfoInput(context.queryResultSettings, orgUnitNumber, deviceType);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailability', false, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId });\n } \n \n export function getProductAvailabilityAsync(context: IContext, productId: number):AsyncResult {\n const request = createGetProductAvailabilityInput(context.queryResultSettings, productId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductList, ProductListSearchCriteria, ProductListLine } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productListsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"ProductLists\", \"ProductList\", \"ProductListClass\", key);\n }\n \n export function createCreateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery().create(entity);\n }\n\n export function createProductListAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return productListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductListSearchCriteria | null): IDataServiceRequest { \n const query = productListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'ProductListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductList'}, {searchCriteria: searchCriteria });\n } \n \n export function searchAsync(context: IContext, searchCriteria?: ProductListSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, searchText?: string | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductListLine'}, {searchText: searchText });\n } \n \n export function getProductListLinesAsync(context: IContext, id: string, searchText?: string | null):AsyncResult {\n const request = createGetProductListLinesInput(context.queryResultSettings, id, searchText);\n return executeAction(request, context);\n } \n \n export function createAddProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('AddProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function addProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createAddProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function updateProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createUpdateProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveProductListLinesInput(id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveProductListLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productListLines: productListLines });\n } \n \n export function removeProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createRemoveProductListLinesInput(id, productListLines);\n return executeAction(request, context);\n } \n \n export function createCopyCartToProductListInput(id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('CopyCartToProductList', true, \n 'ProductListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ProductList'}, {cartId: cartId, isRewrite: isRewrite, isQuantityAggregate: isQuantityAggregate });\n } \n \n export function copyCartToProductListAsync(context: IContext, id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null):AsyncResult {\n const request = createCopyCartToProductListInput(id, cartId, isRewrite, isQuantityAggregate);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Product, ProductSearchCriteria, ProductRefiner, ProductDimension, ProductVariantResolutionOnKitSelectionContext, ProductDimensionValue, ProductDimensionAvailabilitySearchCriteria, ProductDimensionValueInventoryAvailability, SimpleProduct, ComponentInSlotRelation, ProductComparisonLine, ProductSearchResult, ProductRefinerValue, Address, ProductDeliveryOptions, ChangedProductsSearchCriteria, ReadChangedProductsSession, DeletedListingsResult, AssortedProductIdentity, ProductExistenceCriteria, ProductExistenceId, ProductRating, ProductAssortmentInterval, ListingPublishStatus, AttributeProduct, ProductPrice, ProductAvailableQuantity, ProjectionDomain, AffiliationLoyaltyTier, ProductComponent, SearchSuggestion, CategoryPathLookup, CategoryPathResult, UnitOfMeasure, ProductLookupClause, AttributeValue, MediaLocation, MediaBlob, ProductRelationType, ProductWarrantiesMapping, ProductWarehouse, ProductWarehouseInventoryInformation, InventoryAvailabilitySearchCriteria } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Products\", \"Product\", \"ProductClass\", key);\n }\n \n export function createCreateInput(entity: Product): IDataServiceRequest {\n return productsQuery().create(entity);\n }\n\n export function createProductAsync(context: IContext, entity: Product): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Product): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Product): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return productsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'ProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function searchAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function getRefinersAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValues', true, \n 'ProductDimensionValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValue'}, {channelId: channelId, dimension: dimension, matchingDimensionValues: matchingDimensionValues, kitVariantResolutionContext: kitVariantResolutionContext });\n } \n \n export function getDimensionValuesAsync(context: IContext, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null):AsyncResult {\n const request = createGetDimensionValuesInput(context.queryResultSettings, recordId, channelId, dimension, matchingDimensionValues, kitVariantResolutionContext);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesWithEstimatedAvailabilitiesInput(queryResultSettings: IQueryResultSettings, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValuesWithEstimatedAvailabilities', true, \n 'ProductDimensionValueInventoryAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValueInventoryAvailability'}, {searchCriteria: searchCriteria });\n } \n \n export function getDimensionValuesWithEstimatedAvailabilitiesAsync(context: IContext, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetDimensionValuesWithEstimatedAvailabilitiesInput(context.queryResultSettings, recordId, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByDimensionValues', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingDimensionValues: matchingDimensionValues });\n } \n \n export function getVariantsByDimensionValuesAsync(context: IContext, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null):AsyncResult {\n const request = createGetVariantsByDimensionValuesInput(context.queryResultSettings, recordId, channelId, matchingDimensionValues);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByComponentsInSlotsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByComponentsInSlots', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingSlotToComponentRelationship: matchingSlotToComponentRelationship });\n } \n \n export function getVariantsByComponentsInSlotsAsync(context: IContext, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetVariantsByComponentsInSlotsInput(context.queryResultSettings, recordId, channelId, matchingSlotToComponentRelationship);\n return executeAction(request, context);\n } \n \n export function createGetByIdsInput(queryResultSettings: IQueryResultSettings, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByIds', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds, inventLocationId: inventLocationId, catalogId: catalogId });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId, catalogId);\n return executeAction(request, context);\n } \n \n export function createCompareInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Compare', true, \n 'ProductComparisonLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductComparisonLine'}, {channelId: channelId, catalogId: catalogId, productIds: productIds });\n } \n \n export function compareAsync(context: IContext, channelId: number, catalogId: number, productIds: number[]):AsyncResult {\n const request = createCompareInput(context.queryResultSettings, channelId, catalogId, productIds);\n return executeAction(request, context);\n } \n \n export function createGetRecommendedProductsInput(queryResultSettings: IQueryResultSettings, productIds: number[], customerId?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRecommendedProducts', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {productIds: productIds, customerId: customerId });\n } \n \n export function getRecommendedProductsAsync(context: IContext, productIds: number[], customerId?: string | null):AsyncResult {\n const request = createGetRecommendedProductsInput(context.queryResultSettings, productIds, customerId);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByCategory', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByText', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductSearchRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductSearchRefiners', true, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {searchCriteria: searchCriteria });\n } \n \n export function getProductSearchRefinersAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetProductSearchRefinersInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, productIds: number[], address?: Address | null, filterOption?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n 'ProductDeliveryOptionsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDeliveryOptions'}, {productIds: productIds, address: address, filterOption: filterOption });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, productIds: number[], address?: Address | null, filterOption?: number | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, productIds, address, filterOption);\n return executeAction(request, context);\n } \n \n export function createChangesInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Changes', true, \n 'ProductClass'\n , 'true', {bypassCache: 'get', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function changesAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createChangesInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createBeginReadChangedProductsInput(changedProductSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('BeginReadChangedProducts', true, \n 'ReadChangedProductsSessionClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ReadChangedProductsSession'}, {changedProductSearchCriteria: changedProductSearchCriteria });\n } \n \n export function beginReadChangedProductsAsync(context: IContext, changedProductSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createBeginReadChangedProductsInput(changedProductSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createReadChangedProductsInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ReadChangedProducts', true, \n 'ProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function readChangedProductsAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createReadChangedProductsInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedListingsInput(catalogId: number, skip: number, top: number): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetDeletedListings', true, \n 'DeletedListingsResultClass'\n , 'false', {bypassCache: 'none', returnEntity: 'DeletedListingsResult'}, {catalogId: catalogId, skip: skip, top: top });\n } \n \n export function getDeletedListingsAsync(context: IContext, catalogId: number, skip: number, top: number):AsyncResult {\n const request = createGetDeletedListingsInput(catalogId, skip, top);\n return executeAction(request, context);\n } \n \n export function createGetAssortedProductIdsInput(queryResultSettings: IQueryResultSettings, productIds: number[], includeFutureAssortedProducts: boolean): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAssortedProductIds', true, \n 'AssortedProductIdentityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AssortedProductIdentity'}, {productIds: productIds, includeFutureAssortedProducts: includeFutureAssortedProducts });\n } \n \n export function getAssortedProductIdsAsync(context: IContext, productIds: number[], includeFutureAssortedProducts: boolean):AsyncResult {\n const request = createGetAssortedProductIdsInput(context.queryResultSettings, productIds, includeFutureAssortedProducts);\n return executeAction(request, context);\n } \n \n export function createCheckProductsExistenceInput(queryResultSettings: IQueryResultSettings, productExistenceCriteria?: ProductExistenceCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CheckProductsExistence', true, \n 'ProductExistenceIdClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductExistenceId'}, {productExistenceCriteria: productExistenceCriteria });\n } \n \n export function checkProductsExistenceAsync(context: IContext, productExistenceCriteria?: ProductExistenceCriteria | null):AsyncResult {\n const request = createCheckProductsExistenceInput(context.queryResultSettings, productExistenceCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedCatalogsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedCatalogs', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedCatalogsAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedCatalogsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetDeletedLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedLanguages', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedLanguagesAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedLanguagesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetProductRatingsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductRatings', true, \n 'ProductRatingClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRating'}, {productIds: productIds });\n } \n \n export function getProductRatingsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductRatingsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createGetProductAssortmentIntervalsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAssortmentIntervals', true, \n 'ProductAssortmentIntervalClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductAssortmentInterval'}, {productIds: productIds });\n } \n \n export function getProductAssortmentIntervalsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductAssortmentIntervalsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByCatalogsInput(catalogIds: number[]): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByCatalogs', true, '', '', {bypassCache: 'get', returnEntity: ''}, {catalogIds: catalogIds });\n } \n \n export function deleteListingsByCatalogsAsync(context: IContext, catalogIds: number[]):AsyncResult {\n const request = createDeleteListingsByCatalogsInput(catalogIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByLanguagesInput(languages?: string[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByLanguages', true, '', '', {bypassCache: 'get', returnEntity: ''}, {languages: languages });\n } \n \n export function deleteListingsByLanguagesAsync(context: IContext, languages?: string[] | null):AsyncResult {\n const request = createDeleteListingsByLanguagesInput(languages);\n return executeAction(request, context);\n } \n \n export function createEndReadChangedProductsInput(session?: ReadChangedProductsSession | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('EndReadChangedProducts', true, '', '', {bypassCache: 'get', returnEntity: ''}, {session: session });\n } \n \n export function endReadChangedProductsAsync(context: IContext, session?: ReadChangedProductsSession | null):AsyncResult {\n const request = createEndReadChangedProductsInput(session);\n return executeAction(request, context);\n } \n \n export function createUpdateListingPublishingStatusInput(publishingStatuses?: ListingPublishStatus[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('UpdateListingPublishingStatus', true, '', '', {bypassCache: 'get', returnEntity: ''}, {publishingStatuses: publishingStatuses });\n } \n \n export function updateListingPublishingStatusAsync(context: IContext, publishingStatuses?: ListingPublishStatus[] | null):AsyncResult {\n const request = createUpdateListingPublishingStatusInput(publishingStatuses);\n return executeAction(request, context);\n } \n \n export function createGetCatalogProductAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogProductAttributes', true, \n 'AttributeProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, {catalogId: catalogId });\n } \n \n export function getCatalogProductAttributesAsync(context: IContext, catalogId: number):AsyncResult {\n const request = createGetCatalogProductAttributesInput(context.queryResultSettings, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetPricesInput(queryResultSettings: IQueryResultSettings, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPrices', true, \n 'ProductPriceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {itemId: itemId, inventoryDimensionId: inventoryDimensionId, barcode: barcode, customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, quantity: quantity });\n } \n \n export function getPricesAsync(context: IContext, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number):AsyncResult {\n const request = createGetPricesInput(context.queryResultSettings, itemId, inventoryDimensionId, barcode, customerAccountNumber, unitOfMeasureSymbol, quantity);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilitiesInput(queryResultSettings: IQueryResultSettings, itemIds: number[], channelId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilities', true, \n 'ProductAvailableQuantityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductAvailableQuantity'}, {itemIds: itemIds, channelId: channelId });\n } \n \n export function getProductAvailabilitiesAsync(context: IContext, itemIds: number[], channelId: number):AsyncResult {\n const request = createGetProductAvailabilitiesInput(context.queryResultSettings, itemIds, channelId);\n return executeAction(request, context);\n } \n \n export function createGetActivePricesInput(queryResultSettings: IQueryResultSettings, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetActivePrices', true, \n 'ProductPriceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {projectDomain: projectDomain, productIds: productIds, activeDate: activeDate, customerId: customerId, affiliationLoyaltyTiers: affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice: includeSimpleDiscountsInContextualPrice, includeVariantPriceRange: includeVariantPriceRange, includeAttainablePricesAndDiscounts: includeAttainablePricesAndDiscounts });\n } \n \n export function getActivePricesAsync(context: IContext, projectDomain: ProjectionDomain | null, productIds: number[], activeDate: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null):AsyncResult {\n const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice, includeVariantPriceRange, includeAttainablePricesAndDiscounts);\n return executeAction(request, context);\n } \n \n export function createGetFilteredSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFilteredSlotComponents', true, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId, selectedComponents: selectedComponents });\n } \n \n export function getFilteredSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetFilteredSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId, selectedComponents);\n return executeAction(request, context);\n } \n \n export function createGetComponentByProductSlotRelationInput(channelId: number, componentRelation?: ComponentInSlotRelation | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetComponentByProductSlotRelation', true, \n 'ProductComponentClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, componentRelation: componentRelation });\n } \n \n export function getComponentByProductSlotRelationAsync(context: IContext, channelId: number, componentRelation?: ComponentInSlotRelation | null):AsyncResult {\n const request = createGetComponentByProductSlotRelationInput(channelId, componentRelation);\n return executeAction(request, context);\n } \n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', false, \n 'SearchSuggestionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, hitPrefix: hitPrefix, hitSuffix: hitSuffix });\n } \n \n export function getSearchSuggestionsAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, channelId, catalogId, searchText, hitPrefix, hitSuffix);\n return executeAction(request, context);\n } \n \n export function createGetCategoryPathsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategoryPaths', true, \n 'CategoryPathResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CategoryPathResult'}, {channelId: channelId, catalogId: catalogId, CategoryPathLookups: categoryPathLookups });\n } \n \n export function getCategoryPathsAsync(context: IContext, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null):AsyncResult {\n const request = createGetCategoryPathsInput(context.queryResultSettings, channelId, catalogId, categoryPathLookups);\n return executeAction(request, context);\n } \n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, recordId: number, ): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n 'UnitOfMeasureClass'\n , 'true', {bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n } \n \n export function getUnitsOfMeasureAsync(context: IContext, recordId: number):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings, recordId);\n return executeAction(request, context);\n } \n \n export function createSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCategory', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId });\n } \n \n export function searchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number):AsyncResult {\n const request = createSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByText', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText });\n } \n \n export function searchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createSearchByCriteriaInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCriteria', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {searchCriteria: searchCriteria });\n } \n \n export function searchByCriteriaAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchByCriteriaInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByLookupClausesInput(queryResultSettings: IQueryResultSettings, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses, catalogId: catalogId });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByCategory', false, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, categoryId: categoryId });\n } \n \n export function getRefinersByCategoryAsync(context: IContext, catalogId: number, categoryId: number):AsyncResult {\n const request = createGetRefinersByCategoryInput(context.queryResultSettings, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByText', false, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, searchText: searchText });\n } \n \n export function getRefinersByTextAsync(context: IContext, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createGetRefinersByTextInput(context.queryResultSettings, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByCategory', false, \n 'ProductRefinerValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, categoryId: categoryId, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByCategoryAsync(context: IContext, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByCategoryInput(context.queryResultSettings, catalogId, categoryId, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByText', false, \n 'ProductRefinerValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, searchText: searchText, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByTextAsync(context: IContext, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByTextInput(context.queryResultSettings, catalogId, searchText, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetChannelProductAttributesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelProductAttributes', false, \n 'AttributeProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, { });\n } \n \n export function getChannelProductAttributesAsync(context: IContext, ):AsyncResult {\n const request = createGetChannelProductAttributesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetByIdInput(recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetById', false, \n 'SimpleProductClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId });\n } \n \n export function getByIdAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetByIdInput(recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetAttributeValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeValues', false, \n 'AttributeValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeValue'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getAttributeValuesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetAttributeValuesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaLocationsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaLocations', false, \n 'MediaLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaLocationsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaLocationsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaBlobsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaBlobs', false, \n 'MediaBlobClass'\n , 'true', {bypassCache: 'none', returnEntity: 'MediaBlob'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaBlobsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaBlobsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetDefaultComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDefaultComponents', false, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId });\n } \n \n export function getDefaultComponentsAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetDefaultComponentsInput(context.queryResultSettings, recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSlotComponents', false, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId });\n } \n \n export function getSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number):AsyncResult {\n const request = createGetSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId);\n return executeAction(request, context);\n } \n \n export function createGetAllRelationTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllRelationTypes', false, \n 'ProductRelationTypeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, { });\n } \n \n export function getAllRelationTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetAllRelationTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetRelationTypesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelationTypes', false, \n 'ProductRelationTypeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getRelationTypesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetRelationTypesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRelatedProductsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number, relationTypeId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelatedProducts', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, relationTypeId: relationTypeId });\n } \n \n export function getRelatedProductsAsync(context: IContext, recordId: number, channelId: number, catalogId: number, relationTypeId: number):AsyncResult {\n const request = createGetRelatedProductsInput(context.queryResultSettings, recordId, channelId, catalogId, relationTypeId);\n return executeAction(request, context);\n } \n \n export function createGetApplicableWarrantiesInput(queryResultSettings: IQueryResultSettings, catalogId: number, warrantableProductIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetApplicableWarranties', true, \n 'ProductWarrantiesMappingClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductWarrantiesMapping'}, {catalogId: catalogId, warrantableProductIds: warrantableProductIds });\n } \n \n export function getApplicableWarrantiesAsync(context: IContext, catalogId: number, warrantableProductIds: number[]):AsyncResult {\n const request = createGetApplicableWarrantiesInput(context.queryResultSettings, catalogId, warrantableProductIds);\n return executeAction(request, context);\n } \n \n export function createGetPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetPrice', false, \n 'ProductPriceClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol });\n } \n \n export function getPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null):AsyncResult {\n const request = createGetPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol);\n return executeAction(request, context);\n } \n \n export function createCalculateProductPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('CalculateProductPrice', true, \n 'ProductPriceClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, loyaltyCardId: loyaltyCardId, affiliationLoyaltyTiers: affiliationLoyaltyTiers });\n } \n \n export function calculateProductPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null):AsyncResult {\n const request = createCalculateProductPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol, loyaltyCardId, affiliationLoyaltyTiers);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, \n 'ProductWarehouseInventoryInformationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses, quantityUnitType: quantityUnitType });\n } \n \n export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null):AsyncResult {\n const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses, quantityUnitType);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedAvailabilityInput(searchCriteria?: InventoryAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedAvailability', true, \n 'ProductWarehouseInventoryInformationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {searchCriteria: searchCriteria });\n } \n \n export function getEstimatedAvailabilityAsync(context: IContext, searchCriteria?: InventoryAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedAvailabilityInput(searchCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function recommendationsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Recommendations\", \"Recommendation\", \"RecommendationClass\", key);\n }\n \n export function createCreateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery().create(entity);\n }\n\n export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return recommendationsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return recommendationsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest { \n const query = recommendationsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetElements', true, \n 'RecommendedElementClass'\n , 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\n } \n \n export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult {\n const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SalesOrder, SalesOrderSearchCriteria, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLine, ReceiptRetrievalCriteria, Receipt, SearchReceiptCriteria, ElectronicAddress, ChannelReferenceLookupCriteria, ShipFulfillmentLine, FulfillmentLineParameter, RejectFulfillmentLine, SalesInvoice, OrderInvoice, InvoiceSearchCriteria, InvoiceDetailsSearchCriteria, SalesLine, PickAndPackSalesLineParameter, PickingList, FulfillmentLineUserAlerts, CommerceProperty, CheckInForOrderPickupConfirmation, PackingSlipData } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function salesOrdersQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"SalesOrders\", \"SalesOrder\", \"SalesOrderClass\", key);\n }\n \n export function createCreateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery().create(entity);\n }\n\n export function createSalesOrderAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return salesOrdersQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return salesOrdersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrderSearchCriteria: salesOrderSearchCriteria });\n } \n \n export function searchAsync(context: IContext, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, salesOrderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchSalesTransactionsByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSalesTransactionsByReceiptId', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId });\n } \n \n export function searchSalesTransactionsByReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createSearchSalesTransactionsByReceiptIdInput(context.queryResultSettings, receiptId);\n return executeAction(request, context);\n } \n \n export function createSearchOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrders', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {orderSearchCriteria: orderSearchCriteria });\n } \n \n export function searchOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null):AsyncResult {\n const request = createSearchOrdersInput(context.queryResultSettings, orderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, \n 'FulfillmentLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLine'}, {fulfillmentLineSearchCriteria: fulfillmentLineSearchCriteria });\n } \n \n export function getFulfillmentLinesAsync(context: IContext, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null):AsyncResult {\n const request = createGetFulfillmentLinesInput(context.queryResultSettings, fulfillmentLineSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getReceiptsAsync(context: IContext, id: string, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetReceiptsInput(context.queryResultSettings, id, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createSendReceiptInput(searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('SendReceipt', true, '', '', {bypassCache: 'get', returnEntity: ''}, {searchCriteria: searchCriteria, recipientAddresses: recipientAddresses });\n } \n \n export function sendReceiptAsync(context: IContext, searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null):AsyncResult {\n const request = createSendReceiptInput(searchCriteria, recipientAddresses);\n return executeAction(request, context);\n } \n \n export function createGetGiftReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetGiftReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {SalesLineNumbers: salesLineNumbers, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getGiftReceiptsAsync(context: IContext, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetGiftReceiptsInput(context.queryResultSettings, id, salesLineNumbers, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByReceiptId', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId, orderStoreNumber: orderStoreNumber, orderTerminalId: orderTerminalId });\n } \n \n export function getByReceiptIdAsync(context: IContext, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null):AsyncResult {\n const request = createGetByReceiptIdInput(context.queryResultSettings, receiptId, orderStoreNumber, orderTerminalId);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByTransactionIdInput(transactionId: string | null, searchLocationValue: number): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByTransactionId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {transactionId: transactionId, searchLocationValue: searchLocationValue });\n } \n \n export function getSalesOrderDetailsByTransactionIdAsync(context: IContext, transactionId: string | null, searchLocationValue: number):AsyncResult {\n const request = createGetSalesOrderDetailsByTransactionIdInput(transactionId, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsBySalesIdInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsBySalesId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesId: salesId });\n } \n \n export function getSalesOrderDetailsBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsBySalesIdInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetOrderByChannelReferenceLookupCriteria', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {channelReferenceLookupCriteria: channelReferenceLookupCriteria });\n } \n \n export function getOrderByChannelReferenceLookupCriteriaAsync(context: IContext, channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null):AsyncResult {\n const request = createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByQuotationIdInput(quotationId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByQuotationId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {quotationId: quotationId });\n } \n \n export function getSalesOrderDetailsByQuotationIdAsync(context: IContext, quotationId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsByQuotationIdInput(quotationId);\n return executeAction(request, context);\n } \n \n export function createShipFulfillmentLinesInput(shipFulfillmentLines?: ShipFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('ShipFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {ShipFulfillmentLines: shipFulfillmentLines });\n } \n \n export function shipFulfillmentLinesAsync(context: IContext, shipFulfillmentLines?: ShipFulfillmentLine[] | null):AsyncResult {\n const request = createShipFulfillmentLinesInput(shipFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createAcceptFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('AcceptFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function acceptFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createAcceptFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPickFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PickFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function pickFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPickFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPackFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PackFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function packFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPackFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkFulfillmentLinesAsPacked', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markFulfillmentLinesAsPackedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkAsPickedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkAsPicked', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markAsPickedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkAsPickedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPickingListsInput(queryResultSettings: IQueryResultSettings, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPickingLists', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {pickingListFulfillmentLine: pickingListFulfillmentLine, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPickingListsAsync(context: IContext, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPickingListsInput(context.queryResultSettings, pickingListFulfillmentLine, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsInput(queryResultSettings: IQueryResultSettings, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlips', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {packFulfillmentLines: packFulfillmentLines, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsAsync(context: IContext, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsInput(context.queryResultSettings, packFulfillmentLines, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsByIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlipsById', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {salesId: salesId, PackingSlipId: packingSlipId, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsByIdAsync(context: IContext, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsByIdInput(context.queryResultSettings, salesId, packingSlipId, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createRejectFulfillmentLinesInput(rejectFulfillmentLines?: RejectFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('RejectFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {RejectFulfillmentLines: rejectFulfillmentLines });\n } \n \n export function rejectFulfillmentLinesAsync(context: IContext, rejectFulfillmentLines?: RejectFulfillmentLine[] | null):AsyncResult {\n const request = createRejectFulfillmentLinesInput(rejectFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesBySalesIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicesBySalesId', true, \n 'SalesInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {salesId: salesId });\n } \n \n export function getInvoicesBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetInvoicesBySalesIdInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderInvoicesInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderInvoices', true, \n 'OrderInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {customerId: customerId });\n } \n \n export function getOrderInvoicesAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetOrderInvoicesInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesInput(queryResultSettings: IQueryResultSettings, invoiceSearchCriteria?: InvoiceSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoices', true, \n 'OrderInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {invoiceSearchCriteria: invoiceSearchCriteria });\n } \n \n export function getInvoicesAsync(context: IContext, invoiceSearchCriteria?: InvoiceSearchCriteria | null):AsyncResult {\n const request = createGetInvoicesInput(context.queryResultSettings, invoiceSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetInvoiceDetails', true, \n 'SalesInvoiceClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {invoiceDetailsSearchCriteria: invoiceDetailsSearchCriteria });\n } \n \n export function getInvoiceDetailsAsync(context: IContext, invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null):AsyncResult {\n const request = createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoicedSalesLinesBySalesIdsInput(queryResultSettings: IQueryResultSettings, salesIds?: string[] | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicedSalesLinesBySalesIds', true, \n 'SalesLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {salesIds: salesIds });\n } \n \n export function getInvoicedSalesLinesBySalesIdsAsync(context: IContext, salesIds?: string[] | null):AsyncResult {\n const request = createGetInvoicedSalesLinesBySalesIdsInput(context.queryResultSettings, salesIds);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingList', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPickingListAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePickingListInput(salesId);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListForItemsInput(salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingListForItems', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId, pickAndPackSalesLineParameters: pickAndPackSalesLineParameters });\n } \n \n export function createPickingListForItemsAsync(context: IContext, salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null):AsyncResult {\n const request = createCreatePickingListForItemsInput(salesId, pickAndPackSalesLineParameters);\n return executeAction(request, context);\n } \n \n export function createGetPickingListsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPickingLists', false, \n 'PickingListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'PickingList'}, { });\n } \n \n export function getPickingListsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPickingListsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createCreatePackingSlipInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePackingSlip', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPackingSlipAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePackingSlipInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLineUserAlertsInput(queryResultSettings: IQueryResultSettings, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLineUserAlerts', true, \n 'FulfillmentLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineUserAlerts'}, {FulfillmentLineParameter: fulfillmentLineParameter, FulfillmentOperation: fulfillmentOperation });\n } \n \n export function getFulfillmentLineUserAlertsAsync(context: IContext, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number):AsyncResult {\n const request = createGetFulfillmentLineUserAlertsInput(context.queryResultSettings, fulfillmentLineParameter, fulfillmentOperation);\n return executeAction(request, context);\n } \n \n export function createCheckInForOrderPickupInput(channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CheckInForOrderPickup', true, \n 'CheckInForOrderPickupConfirmationClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CheckInForOrderPickupConfirmation'}, {channelId: channelId, PackingSlipId: packingSlipId, channelReferenceId: channelReferenceId, extensionProperties: extensionProperties });\n } \n \n export function checkInForOrderPickupAsync(context: IContext, channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createCheckInForOrderPickupInput(channelId, packingSlipId, channelReferenceId, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createGetPackingSlipsDataInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPackingSlipsData', false, \n 'PackingSlipDataClass'\n , 'true', {bypassCache: 'none', returnEntity: 'PackingSlipData'}, {salesId: salesId });\n } \n \n export function getPackingSlipsDataAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetPackingSlipsDataInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ScanResult } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function scanResultsQuery(scannedText?: string): DataServiceQuery {\n var key = (scannedText) ? { ScannedText: scannedText } : null;\n return new DataServiceQuery(\"ScanResults\", \"ScanResult\", \"ScanResultClass\", key);\n }\n \n export function createCreateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery().create(entity);\n }\n\n export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(scannedText: string): IDataServiceRequest {\n return scanResultsQuery(scannedText).read();\n }\n\n export function readAsync(context: IContext, scannedText: string): AsyncResult {\n const request = createReadAsync(scannedText);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return scanResultsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n ","\n // \n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { DeliveryOption, Affiliation, ReasonCodeLine, DiscountsSearchCriteria, Promotion, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, MediaBlob, CardTypeInfo, CityInfo, CountryRegionInfo, OnlineChannel, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, OfflineTerminalState, NumberSequenceSeedData, ReceiptNumberResetInfo, LoyaltyRewardPointActivity, CurrencyRequest, CurrencyAmount, DiscountCode, DistrictInfo, HardwareStationProfile, HardwareProfile, LocalizedString, OperationPermission, ReasonCode, CommerceProperty, ReportDataSet, IncomeExpenseAccount, StateProvinceInfo, ZipCodeInfo, KitTransaction, LoyaltyCard, LoyaltyCardTransaction, TransactionSearchCriteria, Transaction, GiftCard, NonSalesTransaction, DropAndDeclareTransaction, TaxOverride, CustomerBalances, NameValuePair, LinkToExistingCustomerResult, OfflineSyncStatsLine, Shift, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, PurchaseHistorySearchCriteria, PurchaseHistory, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, VendorSearchCriteria, Vendor, VendorValidationResult, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, ChannelSearchCriteria, EnvironmentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, FiscalIntegrationComplianceResult, } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n function storeQuery(): DataServiceQuery {\n return new DataServiceQuery();\n }\n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, \n 'DeliveryOptionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n }\n\n export function getDeliveryOptionsAsync(context: IContext):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n }\n\n export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult {\n const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n }\n\n export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult {\n const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n return executeAction(request, context);\n }\n \n export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n }\n\n export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n return executeAction(request, context);\n }\n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'PromotionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n }\n\n export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, \n 'PaymentMerchantInformationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, \n 'StoreSafeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, \n 'ShiftReconciliationLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, \n 'ReceiptMaskClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, \n 'SearchSuggestionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId: string | null, overrideSession: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, \n 'CreateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, \n 'ValidateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, \n 'BarcodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, \n 'ButtonGridClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, \n 'MediaBlobClass'\n , 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, \n 'CityInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, \n 'OnlineChannelClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, \n 'CountyInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, \n 'CreditMemoClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, \n 'DataDownloadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, \n 'DataUploadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, \n 'NumberSequenceSeedDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, { });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, \n 'ReceiptNumberResetInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, \n 'CurrencyAmountClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, \n 'DiscountCodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, \n 'DistrictInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, \n 'HardwareStationProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, \n 'HardwareProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, \n 'LocalizedStringClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, \n 'OperationPermissionClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, \n 'IncomeExpenseAccountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, \n 'StateProvinceInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, \n 'KitTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, \n 'LoyaltyCardClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, \n 'LoyaltyCardTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, \n 'TransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, \n 'NonSalesTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, \n 'NonSalesTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, \n 'DropAndDeclareTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, \n 'TaxOverrideClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, \n 'CustomerBalancesClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, \n 'OfflineSyncStatsLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createGetOfflineOpenShiftsInput(queryResultSettings: IQueryResultSettings, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineOpenShifts', false, \n 'ShiftClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Shift'}, {filterByCurrentUser: filterByCurrentUser, includeAllShiftsForStore: includeAllShiftsForStore });\n }\n\n export function getOfflineOpenShiftsAsync(context: IContext, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean):AsyncResult {\n const request = createGetOfflineOpenShiftsInput(context.queryResultSettings, filterByCurrentUser, includeAllShiftsForStore);\n return executeAction(request, context);\n }\n \n export function createDeleteOfflineShiftsInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeleteOfflineShifts', false, '', 'false', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function deleteOfflineShiftsAsync(context: IContext):AsyncResult {\n const request = createDeleteOfflineShiftsInput();\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, \n 'StorageAccessTokenClass'\n , 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, \n 'FrameworkClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, \n 'FrameworkClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, \n 'TaskGuidesSearchResultClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, \n 'AttributeDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, \n 'AttributeGroupDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, \n 'AuditEventClass'\n , 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, \n 'InventoryAvailableToPromiseClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, \n 'SalesOrderClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, \n 'NotificationItemClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createSearchPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PurchaseHistorySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchPurchaseHistory', true, \n 'PurchaseHistoryClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PurchaseHistory'}, {searchCriteria: searchCriteria });\n }\n\n export function searchPurchaseHistoryAsync(context: IContext, searchCriteria?: PurchaseHistorySearchCriteria | null):AsyncResult {\n const request = createSearchPurchaseHistoryInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, \n 'FiscalIntegrationRegistrationProcessClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, \n 'FiscalIntegrationSupportedEventsClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalRegistrationProcessSummary', true, \n 'FiscalIntegrationFiscalRegistrationProcessSummaryClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationFiscalRegistrationProcessSummary'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalRegistrationProcessSummaryAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n }\n\n export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult {\n const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n return executeAction(request, context);\n }\n \n export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n }\n\n export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult {\n const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n }\n\n export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, \n 'FiscalIntegrationServiceStatusClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, \n 'FiscalIntegrationServiceCommunicationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFeatureStates', true, \n 'FeatureStateClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n }\n\n export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult {\n const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n return executeAction(request, context);\n }\n \n export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, \n 'FiscalIntegrationSequentialSignatureDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n }\n\n export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult {\n const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n return executeAction(request, context);\n }\n \n export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, \n 'FiscalTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, \n 'PickupTimeslotAvailabilityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, \n 'CartClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n }\n\n export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult {\n const request = createCalculateSalesDocumentInput(salesDocument);\n return executeAction(request, context);\n }\n \n export function createSearchVendorsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: VendorSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchVendors', true, \n 'VendorClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Vendor'}, {searchCriteria: searchCriteria });\n }\n\n export function searchVendorsAsync(context: IContext, searchCriteria?: VendorSearchCriteria | null):AsyncResult {\n const request = createSearchVendorsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createValidateVendorApprovedForItemInput(itemId?: string | null, vendorAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateVendorApprovedForItem', true, \n 'VendorValidationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'VendorValidationResult'}, {itemId: itemId, vendorAccountNumber: vendorAccountNumber });\n }\n\n export function validateVendorApprovedForItemAsync(context: IContext, itemId?: string | null, vendorAccountNumber?: string | null):AsyncResult {\n const request = createValidateVendorApprovedForItemInput(itemId, vendorAccountNumber);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, \n 'OperationalInsightsConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n }\n\n export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOperationalInsightsConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCashDeclarations', false, \n 'CashDeclarationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n }\n\n export function getCashDeclarationsAsync(context: IContext):AsyncResult {\n const request = createGetCashDeclarationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegions', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerGroups', false, \n 'CustomerGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n }\n\n export function getCustomerGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCustomerGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, \n 'ChannelDeliveryOptionConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n }\n\n export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetChannelDeliveryOptionConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelsByType', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n }\n\n export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult {\n const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n return executeAction(request, context);\n }\n \n export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannels', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n }\n\n export function getChannelsAsync(context: IContext):AsyncResult {\n const request = createGetChannelsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChannels', true, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n }\n\n export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult {\n const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, \n 'EnvironmentConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n }\n\n export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetEnvironmentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, \n 'SearchConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n }\n\n export function getSearchConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetSearchConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, \n 'ExtensionPackageDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n }\n\n export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult {\n const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetExtensionProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetExtensionProfile', false, \n 'ExtensionProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n }\n\n export function getExtensionProfileAsync(context: IContext):AsyncResult {\n const request = createGetExtensionProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, \n 'DeviceConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n }\n\n export function getDeviceConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetDeviceConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetVisualProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetVisualProfile', false, \n 'VisualProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n }\n\n export function getVisualProfileAsync(context: IContext):AsyncResult {\n const request = createGetVisualProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLanguages', false, \n 'SupportedLanguageClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n }\n\n export function getLanguagesAsync(context: IContext):AsyncResult {\n const request = createGetLanguagesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliations', false, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n }\n\n export function getAffiliationsAsync(context: IContext):AsyncResult {\n const request = createGetAffiliationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationPermissions', false, \n 'OperationPermissionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n }\n\n export function getOperationPermissionsAsync(context: IContext):AsyncResult {\n const request = createGetOperationPermissionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, \n 'SalesTaxGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n }\n\n export function getSalesTaxGroupsAsync(context: IContext):AsyncResult {\n const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderTypes', false, \n 'TenderTypeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n }\n\n export function getTenderTypesAsync(context: IContext):AsyncResult {\n const request = createGetTenderTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n 'UnitOfMeasureClass'\n , 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n }\n\n export function getUnitsOfMeasureAsync(context: IContext):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodes', false, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n }\n\n export function getDiscountCodesAsync(context: IContext):AsyncResult {\n const request = createGetDiscountCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrencies', false, \n 'CurrencyClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n }\n\n export function getCurrenciesAsync(context: IContext):AsyncResult {\n const request = createGetCurrenciesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, \n 'CurrencyAmountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n }\n\n export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult {\n const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n return executeAction(request, context);\n }\n \n export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n }\n\n export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n }\n\n export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n }\n \n export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n }\n\n export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult {\n const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelPublishStatusInput();\n return executeAction(request, context);\n }\n \n export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n }\n\n export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult {\n const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n return executeAction(request, context);\n }\n \n export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, \n 'ChannelInventoryConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n }\n\n export function getInventoryConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetInventoryConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, \n 'ChannelPurchaseConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n }\n\n export function getPurchaseConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPurchaseConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalNames', true, \n 'InventoryJournalNameClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult {\n const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableDevices', false, \n 'DeviceClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n }\n\n export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult {\n const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretStringInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, \n 'UserDefinedSecretCertificateResultClass'\n , 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretCertificateInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetImageBlob', false, \n 'MediaBlobClass'\n , 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n }\n\n export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult {\n const request = createGetImageBlobInput(imageId);\n return executeAction(request, context);\n }\n \n export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, \n 'ExtensibleEnumerationContainerClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n }\n\n export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult {\n const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressPurposes', false, \n 'AddressPurposeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n }\n\n export function getAddressPurposesAsync(context: IContext):AsyncResult {\n const request = createGetAddressPurposesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnPolicyInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReturnPolicy', false, \n 'ReturnPolicyClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n }\n\n export function getReturnPolicyAsync(context: IContext):AsyncResult {\n const request = createGetReturnPolicyInput();\n return executeAction(request, context);\n }\n \n export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, \n 'EmailReceiptSettingsClass'\n , 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n }\n\n export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult {\n const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createCheckFiscalIntegrationComplianceInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CheckFiscalIntegrationCompliance', false, \n 'FiscalIntegrationComplianceResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationComplianceResult'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function checkFiscalIntegrationComplianceAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createCheckFiscalIntegrationComplianceInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport type CacheType = 'none' | 'instance' | 'application' | 'request';\n\n/**\n * BypassCache type.\n */\nexport type BypassCache = 'none' | 'get' | 'put' | 'getAndPut';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n cacheType?: CacheType;\n shouldRefresh?: boolean;\n error?: boolean;\n s?: ICacheSource;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n put(cacheKey: ICacheKey, item: ICacheItem): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): { [cacheKey: string]: ICacheItem } | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n}\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n"],"names":["DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","getRegistration","id","msdyn365Commerce","partnerDataAction","default","action","prototype","Action","unwrapAction","isAction","getAction","registeredAction","registerAction","dataAction","actionRegister","registration","registerHook","hookType","hook","indexOf","StaticTelemetry","LogLevel","hooks","Array","isArray","hookRegistration","Set","forEach","h","add","newRegistration","registerPostHook","registerPreHook","registerPreReadOnlyHook","registerPostReadOnlyHook","registerPreReaderHook","registerPostReaderHook","getPreHooks","actionRegistration","pre","getPostHooks","post","getPreReadHooks","preRead","getPostReadHooks","postRead","getPreReaderHooks","preReader","getPostReaderHooks","postReader","resolveAction","resolveRegistration","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","createObservableDataAction","options","wrappedAction","wrapDataAction","actionWrap","Error","input","name","inputFunc","isBatched","_action","registrationId","RegistrationId","func","_isBatched","newAction","_objectSpread","setProperty","propertyName","value","arg1","arg2","AsyncResult","resolve","reject","chainAction","then","result","catch","error","ActionError","constructor","super","this","Name","message","status","Object","setPrototypeOf","shouldReadFromAppCache","appCache","undefined","dataCacheType","shouldWriteToAppCache","isAppCacheData","hasCacheSetting","getCacheObjectType","GET_FROM_RETURNIDENTIFIER","addLocaleInformation","inputs","locale","DataServiceRequest","getCacheKey","endsWith","tmp","_cacheKeyFromInput","_resolveCacheEntryReference","dataServiceRequest","item","requestCache","isWrappingPromise","isObservable","arguments","length","cacheValueAsArray","key","map","cacheObjectType","_cacheObjectType","get","typeName","copyTo","valueItem","isAsyncResult","filter","data","isReturnTypeACollection","_query","logTelemetrySource","cacheValue","cacheKey","context","telemetry","s","ICacheSource","verboseLogger","values","readCacheEntriesBasedOnCacheKeyFromReturnType","cacheKeyFromReturnType","_cacheKeyFromReturnType","cacheKeyIdentifierFromReturnType","_cacheKeyIdentifierFromReturnType","entry","shouldRefresh","shouldRefreshAll","cacheEntries","Boolean","cacheEntriesReturn","readCacheEntries","cacheKeyFromInput","entries","cachedValueBasedOnInput","$ref","cachedValueBasedOnInputItem","resolvedRef","_saveEntityToCache","isCacheTypeApplication","isInstance","dataServiceRequestQuery","results","toString","call","identifierValue","existingCacheItem","existingCacheObjectType","existingCacheKeyIdentifierFromReturnType","existingCacheIsReturnTypeACollection","existingCacheTotalCount","_totalCount","type","identifier","isCollection","count","_existingCacheItem","_existingCacheItem$it","keys","entryKey","put","instance","saveCacheEntries","metadata","_otherOdata","others","listeners","Map","eventEmitter","window","EventEmitter","on","event","callback","set","push","emit","_len","args","_key","listener","removeAllListeners","delete","defaultHookTimeoutInMS","CLIENT_HYDRATE_KEY","CLIENT_HYDRATE_TYPE","Timer","timeoutInMS","Promise","setTimeout","bind","ActionTimer","_resolve","ActionExecutor","dataActionOption","_shouldUseInstanceCache","_msdyn365Commerce$pla","checkVersionForFeature","shouldUseInstanceCache","eventId","uuidv1","masterInput","cacheType","shouldCacheOutput","trace","addInputs","bypassAppCache","refreshingInputs","unique","_removeDuplicates","actionId","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","Guid","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","cache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","includes","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","log","_saveResponseToCache","_checkShouldInteractWithCache","i","cacheItem","getValue","_runPostReadHooks","_runPostReaderHooks","_uniqWith","inputA","inputB","inputsActionId","getActionId","_getActionFromId","hookTimeout","Number","_get2","timer","from","reduce","async","previousTask","currentTask","race","requestContext","asSystemMetadata","exception","actionResult","prevInput","tmpNextInput","finalNextInput","prevOutput","tmpNextOutput","finalNextOutput","isRefreshing","_inputs","_runPreHooks","e","convertedError","_convertToJSError","CorrelationId","clientSideCustomerTimeout","promises","_errorCode","ErrorTypeEnum","ProxyError","_runPostHooks","idx","appCacheData","usingInstanceCache","features","disable_instance_cache","actionName","entityId","entityType","isActionError","isTimeoutError","cacheEntry","assign","unresolvedSet","uncachedInputs","asyncOutputs","index","executor","innerResolve","innerReject","EventHelper","onEventIdFinalCompletion","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","bypassCache","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","toJS","cacheNamespace","proxyError","ErrorCode","CatalogsInput","customerAccountNumber","buildCacheKey","base","channelId","apiSettings","catalogId","user","getCatalogsAsync","callerContext","createCatalogsInput","inputData","isAuthenticated","shouldByPassCache","query","cachebypass","isPageInsightsEnabled","params","pageInsights","REFRESH_ACTIONS_CACHE_KEY","ActionContext","executionParams","cacheKeyMap","refreshConfigs","hasRun","currentActionsInQueue","nextTierCounter","next","spawnChildOnExecute","currentExecutionTier","threadId","debug","isMaxDepthExceeded","maxDepth","app","platform","getItemFromCache","_endCurrentTier","expectedActionCount","expectedActionsInCurrentTier","moduleTelemetry","Telemetry","isDebug","registerTraceLogger","traceLogger","GenericConsoleLogger","disable_app_cache","getRefreshActions","actionOption","runAllActionsInQueue","inputsArray","current","find","a","inputIdentifier","asyncResult","tierNum","refreshStartTimeInMS","splice","all","_type","update","dataArray","inputArray","preparedCacheKey","getAll","cachedEntries","getAllItems","expectedNumberOfChildThreads","nextTierStartingDepth","nextTier","refreshconfigslocal","param","execute","refreshActions","paramExecutor","actionInputs","size","disable_appcache_refresh_await","rf","refreshRequestCache","RequestCache","refreshContext","buildHydratedMockActionContext","getMediaLocationsForProductAction","ctx","versionGte","process","types","require","productMediaLocations","_ctx$requestContext$a","_ctx$requestContext","_ctx$requestContext$a2","_ctx$requestContext$a3","getMediaLocationsAsync","queryResultSettings","Paging","Top","parseInt","defaultPageSizeForAPI","productId","productImagesAndVideos","media","MediaTypeValue","MediaType","Image","Video","sort","b","DisplayOrder","mediaLocation","mediaLoc","Uri","generateImageUrlForOmniChanel","MediaLocationType","getAdditionalMediaLocationsForProductAction","productActions","searchMediaLocationsAsync","ProductId","ChannelId","CatalogId","MediaUsageTypeValue","filteredMedia","typeFilter","File","AltText","GetCustomerInput","accountNumber","getCustomerActionDataAction","readAsync","response","warning","token","normalizeCacheKey","toUpperCase","transaction","observable","deep","_value","toCache","del","flushAll","businessPartnerUsersQuery","b2BUserId","B2BUserId","DataServiceQuery","createCreateInput","entity","create","createBusinessPartnerUserAsync","request","executeAction","createUpdateInput","updateAsync","createDeleteAsync","deleteAsync","createReadAsync","read","createReadAllAsync","resultSettings","readAllAsync","createRequestAccountStatementInput","accountStatementParameters","createDataServiceRequestForOperation","returnEntity","requestAccountStatementAsync","createRequestInvoiceCopyInput","invoiceId","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","getOperationRequestsAsync","createGetCurrentInput","getCurrentAsync","businessPartnersQuery","businessPartnerId","BusinessPartnerId","createBusinessPartnerAsync","createGetOrderHistoryInput","getOrderHistoryAsync","createCreateProspectInput","businessPartnerProspect","createProspectAsync","createGetManagedBusinessPartnersInput","getManagedBusinessPartnersAsync","createGetUsersInput","getUsersAsync","cartsQuery","Id","createCartAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","filterOption","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","getDeliveryPreferencesAsync","createGetDeliveryOptionsInput","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","getDeliveryOptionsAsync","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","amount","addChargeAsync","createOverrideChargeInput","chargeLineId","reasonCodeLines","overrideChargeAsync","createAddCartLineChargeInput","cartLineId","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","cartLines","addCartLinesAsync","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","getDeclinedOrVoidedCardReceiptsAsync","createCopyInput","targetCartType","copyAsync","createAddInvoicedSalesLinesToCartInput","transactionId","invoicedSalesLinesIds","addInvoicedSalesLinesToCartAsync","createRecallInvoicedSalesLinesInput","recallInvoicedSalesLineLookups","recallInvoicedSalesLinesAsync","createVoidTenderLineInput","isPreprocessed","forceVoid","voidTenderLineAsync","createIssueGiftCardInput","giftCardId","lineDescription","tenderTypeId","issueGiftCardAsync","createRefillGiftCardInput","refillGiftCardAsync","createCashOutGiftCardInput","cashOutGiftCardAsync","createSuspendInput","suspendAsync","createSuspendWithJournalInput","journalCartId","suspendWithJournalAsync","createResumeInput","resumeAsync","createResumeFromReceiptIdInput","receiptId","resumeFromReceiptIdAsync","createRemoveDiscountCodesInput","discountCodes","removeDiscountCodesAsync","createGetSuspendedInput","getSuspendedAsync","createOverrideCartLinePriceInput","price","overrideCartLinePriceAsync","createGetCardPaymentAcceptPointInput","cardPaymentAcceptSettings","extensionProperties","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","getPromotionsAsync","createGetAvailablePromotionsInput","getAvailablePromotionsAsync","createRecallSalesInvoiceInput","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","discountCode","addDiscountCodeAsync","createGetReturnOptionsInput","getReturnOptionsAsync","createValidateForCheckoutInput","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","catalogsQuery","recordId","RecordId","createProductCatalogAsync","createGetCatalogsInput","activeOnly","categoriesQuery","createCategoryAsync","createGetCategoriesInput","getCategoriesAsync","createGetAttributesInput","categoryId","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","commerceListsQuery","createCommerceListAsync","createGetByCustomerInput","customerId","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","createInvitationsAsync","commerceListInvitations","createCreateInvitationsInput","orgUnitsQuery","orgUnitNumber","OrgUnitNumber","createOrgUnitAsync","createGetTillLayoutInput","height","width","includeImage","getTillLayoutAsync","storeSearchCriteria","createGetOrgUnitLocationsByAreaInput","searchArea","deliveryModeTypeFilter","getOrgUnitLocationsByAreaAsync","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","searchOrgUnitLocationsAsync","createGetOrgUnitConfigurationInput","getOrgUnitConfigurationAsync","createGetStoreHoursInput","storeNumber","getStoreHoursAsync","createGetChannelDeliveryOptionsInput","channelIds","getChannelDeliveryOptionsAsync","createGetAvailableInventoryInput","itemId","variantId","barcode","getAvailableInventoryAsync","createGetAvailableInventoryNearbyInput","itemIds","getAvailableInventoryNearbyAsync","createGetProductAvailabilityByDimensionsInput","inventLocationIds","productDimensionCombinations","getProductAvailabilityByDimensionsAsync","createSearchProductAvailabilityInput","orgUnitAvailabilitySearchCriteria","searchProductAvailabilityAsync","createGetTerminalInfoInput","deviceType","getTerminalInfoAsync","createGetProductAvailabilityInput","getProductAvailabilityAsync","productListsQuery","createProductListAsync","searchCriteria","createGetProductListLinesInput","searchText","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","productsQuery","createProductAsync","productSearchCriteria","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","inventLocationId","getByIdsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","getRecommendedProductsAsync","createRefineSearchByCategoryInput","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","getCatalogProductAttributesAsync","createGetPricesInput","inventoryDimensionId","unitOfMeasureSymbol","quantity","getPricesAsync","createGetProductAvailabilitiesInput","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","activeDate","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","getActivePricesAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","createGetSearchSuggestionsInput","hitPrefix","hitSuffix","getSearchSuggestionsAsync","createGetCategoryPathsInput","categoryPathLookups","CategoryPathLookups","getCategoryPathsAsync","createGetUnitsOfMeasureInput","getUnitsOfMeasureAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","getAttributeValuesAsync","createGetMediaLocationsInput","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","recommendationsQuery","getElementsAsync","recommendationCriteria","createGetElementsInput","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","getFulfillmentLinesAsync","createGetReceiptsInput","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","searchLocationValue","getSalesOrderDetailsByTransactionIdAsync","createGetSalesOrderDetailsBySalesIdInput","getSalesOrderDetailsBySalesIdAsync","createGetOrderByChannelReferenceLookupCriteriaInput","channelReferenceLookupCriteria","getOrderByChannelReferenceLookupCriteriaAsync","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","hardwareProfileId","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","PackingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","checkInForOrderPickupAsync","createGetPackingSlipsDataInput","getPackingSlipsDataAsync","scanResultsQuery","scannedText","ScannedText","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","Description","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","getReceiptMasksAsync","searchSuggestionCriteria","createStartSessionInput","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","deviceNumber","terminalId","deviceId","forceActivate","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","getCitiesAsync","createGetCountryRegionsForShippingInput","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","getOnlineChannelAsync","createGetCountiesInput","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","getDistrictsAsync","createGetHardwareStationProfilesInput","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","getStateProvincesAsync","createGetZipCodesInput","district","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","searchJournalTransactionsAsync","createGetGiftCardInput","pin","expirationMonth","expirationYear","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createGetOfflineOpenShiftsInput","filterByCurrentUser","includeAllShiftsForStore","getOfflineOpenShiftsAsync","createDeleteOfflineShiftsInput","deleteOfflineShiftsAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createSearchPurchaseHistoryInput","searchPurchaseHistoryAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createSearchVendorsInput","searchVendorsAsync","createValidateVendorApprovedForItemInput","vendorAccountNumber","validateVendorApprovedForItemAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetSearchConfigurationInput","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","createGetTenderTypesInput","getTenderTypesAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","getCurrenciesAsync","createGetCurrenciesAmountInput","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","getInventoryConfigurationAsync","createGetPurchaseConfigurationInput","getPurchaseConfigurationAsync","createSearchJournalNamesInput","searchJournalNamesAsync","createGetAvailableDevicesInput","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","createCheckFiscalIntegrationComplianceInput","checkFiscalIntegrationComplianceAsync","tryToString","$TypeError","TypeError","module","exports","O","P","firefox","match","UA","test","webkit","$","uncurryThis","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","String","fromCharCode","k","v","charAt","target","proto","forced","comparefn","array","itemsLength","items","arrayLength","x","y","getSortCompare","IS_PURE","NativePromiseConstructor","getBuiltIn","isCallable","speciesConstructor","promiseResolve","defineBuiltIn","NativePromisePrototype","real","onFinally","C","isFunction","method","unsafe"],"sourceRoot":""}