{"version":3,"file":"static/js/7c3d40a13ad4d2375531.bundle.js","mappings":";6nBAYI,SAASA,EAA0BC,GAC/B,IAAIC,EAAOD,EAAa,CAAEE,UAAWF,GAAc,KACnD,OAAO,IAAIG,EAAAA,EAAiB,uBAAwB,sBAAuBC,EAAAA,yBAA0BH,GAGlG,SAASI,EAAkBC,GAC9B,OAAOP,IAA4BQ,OAAOD,GAGvC,SAASE,EAA+BC,EAAmBH,GAC9D,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAASG,EAAkBN,GAC9B,OAAOP,EAA0BO,EAAOJ,WAAWW,OAAOP,GAGvD,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAASM,EAAkBT,GAC9B,OAAOP,EAA0BO,EAAOJ,WAAWc,SAGhD,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBlB,GAC5B,OAAOD,EAA0BC,GAAWmB,OAGzC,SAASC,EAAUX,EAAmBT,GACzC,MAAMU,EAAUQ,EAAgBlB,GAChC,OAAOW,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAASY,EAAmBC,GAC/B,OAAOvB,IAA4BwB,eAAeD,GAAqBH,OAGpE,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASgB,EAAmCzB,EAAmB0B,GAElE,OADc3B,EAA0BC,GAC3B2B,qCAAqC,2BAA2B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACH,2BAA4BA,IAG7J,SAASI,EAA6BrB,EAAmBT,EAAmB0B,GAC/E,MAAMhB,EAAUe,EAAmCzB,EAAW0B,GAC9D,OAAOf,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASsB,EAA8B/B,EAAmBgC,EAA0BC,GAEvF,OADclC,EAA0BC,GAC3B2B,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACG,UAAWA,EAAWC,aAAcA,IAGhK,SAASC,EAAwBzB,EAAmBT,EAAmBgC,EAA0BC,GACpG,MAAMvB,EAAUqB,EAA8B/B,EAAWgC,EAAWC,GACpE,OAAOtB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS0B,EAAgCb,EAA2CtB,EAAmBoC,EAAqBC,GAE/H,OADctC,EAA0BC,GAAWuB,eAAeD,GACrDK,qCAAqC,wBAAwB,EAAMW,EAAAA,qCAAsC,OAAQ,CAACV,YAAa,OAAQC,aAAc,mCAAoC,CAACO,cAAeA,EAAeC,YAAaA,IAG/O,SAASE,EAA0B9B,EAAmBT,EAAmBoC,EAAqBC,GACjG,MAAM3B,EAAUyB,EAAgC1B,EAAQa,oBAAqBtB,EAAWoC,EAAeC,GACvG,OAAO1B,EAAAA,EAAAA,IAAiDD,EAASD,GAG9D,SAAS+B,IAEZ,OADczC,IACD4B,qCAAqC,cAAc,EAAOvB,EAAAA,yBAA0B,QAAS,CAACwB,YAAa,OAAQC,aAAc,uBAAwB,IAGnK,SAASY,EAAgBhC,GAC5B,MAAMC,EAAU8B,IAChB,OAAO7B,EAAAA,EAAAA,IAAmCD,EAASD,yGCvFvD,SAASiC,EAAsBC,GAC3B,IAAI1C,EAAO0C,EAAqB,CAAEC,kBAAmBD,GAAsB,KAC3E,OAAO,IAAIxC,EAAAA,EAAiB,mBAAoB,kBAAmB0C,EAAAA,qBAAsB5C,GAqDtF,SAAS6C,EAAqBrC,EAAmBkC,GACpD,MAAMjC,EANH,SAAoCY,EAA2CqB,GAElF,OADcD,EAAsBC,GAAmBpB,eAAeD,GACzDK,qCAAqC,mBAAmB,EAAOoB,EAAAA,oBAAqB,OAAQ,CAACnB,YAAa,OAAQC,aAAc,kBAAmB,IAIhJmB,CAA2BvC,EAAQa,oBAAqBqB,GACxE,OAAOhC,EAAAA,EAAAA,IAAgCD,EAASD,GAQ7C,SAASwC,EAAoBxC,EAAmByC,GACnD,MAAMxC,EANH,SAAmCwC,GAEtC,OADcR,IACDf,qCAAqC,kBAAkB,EAAMwB,EAAAA,6BAA8B,QAAS,CAACvB,YAAa,MAAOC,aAAc,2BAA4B,CAACqB,wBAAyBA,IAI1LE,CAA0BF,GAC1C,OAAOvC,EAAAA,EAAAA,IAAuCD,EAASD,GAQpD,SAASgC,EAAgBhC,GAC5B,MAAMC,EALQgC,IACDf,qCAAqC,cAAc,EAAOkB,EAAAA,qBAAsB,QAAS,CAACjB,YAAa,OAAQC,aAAc,mBAAoB,IAK9J,OAAOlB,EAAAA,EAAAA,IAA+BD,EAASD,GAQ5C,SAAS4C,EAAc5C,EAAmBkC,GAC7C,MAAMjC,EANH,SAA6BY,EAA2CqB,GAE3E,OADcD,EAAsBC,GAAmBpB,eAAeD,GACzDK,qCAAqC,YAAY,EAAOvB,EAAAA,yBAA0B,OAAQ,CAACwB,YAAa,OAAQC,aAAc,uBAAwB,IAInJyB,CAAoB7C,EAAQa,oBAAqBqB,GACjE,OAAOhC,EAAAA,EAAAA,IAAqCD,EAASD,86ICvFzD,SAAS8C,EAAWC,GAChB,IAAIvD,EAAOuD,EAAM,CAAEC,GAAID,GAAO,KAC9B,OAAO,IAAIrD,EAAAA,EAAiB,QAAS,OAAQuD,EAAAA,UAAWzD,GAGrD,SAASI,EAAkBC,GAC9B,OAAOiD,IAAahD,OAAOD,GAGxB,SAASqD,EAAgBlD,EAAmBH,GAC/C,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASG,EAAkBN,GAC9B,OAAOiD,EAAWjD,EAAOmD,IAAI5C,OAAOP,GAGjC,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASM,EAAkBT,GAC9B,OAAOiD,EAAWjD,EAAOmD,IAAIzC,SAG1B,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBsC,GAC5B,OAAOD,EAAWC,GAAIrC,OAGnB,SAASC,EAAUX,EAAmB+C,GACzC,MAAM9C,EAAUQ,EAAgBsC,GAChC,OAAO7C,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASY,EAAmBC,GAC/B,OAAOiC,IAAahC,eAAeD,GAAqBH,OAGrD,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAAsBD,EAASD,GAGnC,SAASmD,EAAkBtC,EAA2CuC,GAEzE,OADcN,IAAahC,eAAeD,GAC7BK,qCAAqC,UAAU,EAAM+B,EAAAA,UAAW,OAAQ,CAAC9B,YAAa,OAAQC,aAAc,QAAS,CAACgC,mBAAoBA,IAGpJ,SAASC,EAAYrD,EAAmBoD,GAC3C,MAAMnD,EAAUkD,EAAkBnD,EAAQa,oBAAqBuC,GAC/D,OAAOlD,EAAAA,EAAAA,IAAsBD,EAASD,GAGnC,SAASsD,EAAoBP,EAAYQ,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAEhN,OADcb,EAAWC,GACZ7B,qCAAqC,YAAY,EAAM0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,MAAOC,aAAc,cAAe,CAACmC,aAAcA,EAAcC,qBAAsBA,EAAsBC,sBAAuBA,EAAuBC,gBAAiBA,EAAiBC,YAAaA,IAGnT,SAASE,EAAc7D,EAAmB+C,EAAYQ,EAA8BC,EAAoDC,EAAuCC,EAA2CC,GAC7N,MAAM1D,EAAUqD,EAAoBP,EAAIQ,EAAcC,EAAsBC,EAAuBC,EAAiBC,GACpH,OAAOzD,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS8D,EAA4Df,EAAYgB,EAA+BC,GAEnH,OADclB,EAAWC,GACZ7B,qCAAqC,oDAAoD,EAAM+C,EAAAA,oCAAqC,QAAS,CAAC9C,YAAa,OAAQC,aAAc,kCAAmC,CAAC2C,cAAeA,EAAeC,aAAcA,IAG3Q,SAASE,EAAsDlE,EAAmB+C,EAAYgB,EAA+BC,GAChI,MAAM/D,EAAU6D,EAA4Df,EAAIgB,EAAeC,GAC/F,OAAO9D,EAAAA,EAAAA,IAA8CD,EAASD,GAG3D,SAASmE,EAA8BtD,EAA2CkC,GAErF,OADcD,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,sBAAsB,EAAMkD,EAAAA,gBAAiB,OAAQ,CAACjD,YAAa,OAAQC,aAAc,cAAe,IAGvJ,SAASiD,EAAwBrE,EAAmB+C,GACvD,MAAM9C,EAAUkE,EAA8BnE,EAAQa,oBAAqBkC,GAC3E,OAAO7C,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASsE,EAA6CzD,EAA2CkC,EAAYwB,EAAqDC,EAAmBC,GAExL,OADc3B,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,qCAAqC,EAAMwD,EAAAA,6BAA8B,OAAQ,CAACvD,YAAa,OAAQC,aAAc,2BAA4B,CAACmD,sBAAuBA,EAAuBC,UAAWA,EAAWC,aAAcA,IAGnR,SAASE,EAAuC3E,EAAmB+C,EAAYwB,EAAqDC,EAAmBC,GAC1J,MAAMxE,EAAUqE,EAA6CtE,EAAQa,oBAAqBkC,EAAIwB,EAAuBC,EAAWC,GAChI,OAAOvE,EAAAA,EAAAA,IAAyCD,EAASD,GAGtD,SAAS4E,EAAkC/D,EAA2CkC,EAAYwB,EAAsDE,GAE3J,OADc3B,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,0BAA0B,EAAMwD,EAAAA,6BAA8B,OAAQ,CAACvD,YAAa,OAAQC,aAAc,2BAA4B,CAACmD,sBAAuBA,EAAuBE,aAAcA,IAGlP,SAASI,EAA4B7E,EAAmB+C,EAAYwB,EAAsDE,GAC7H,MAAMxE,EAAU2E,EAAkC5E,EAAQa,oBAAqBkC,EAAIwB,EAAuBE,GAC1G,OAAOvE,EAAAA,EAAAA,IAAyCD,EAASD,GAGtD,SAAS8E,EAAkC/B,GAE9C,OADcD,EAAWC,GACZ7B,qCAAqC,0BAA0B,EAAM6D,EAAAA,6BAA8B,QAAS,CAAC5D,YAAa,OAAQC,aAAc,2BAA4B,IAGtL,SAAS4D,EAA4BhF,EAAmB+C,GAC3D,MAAM9C,EAAU6E,EAAkC/B,GAClD,OAAO7C,EAAAA,EAAAA,IAAuCD,EAASD,GAGpD,SAASiF,EAA8BpE,EAA2CkC,EAAYmC,EAAkCC,EAA+BV,EAA8BW,GAEhM,OADctC,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,sBAAsB,EAAMmE,EAAAA,oBAAqB,OAAQ,CAAClE,YAAa,OAAQC,aAAc,kBAAmB,CAAC8D,gBAAiBA,EAAiBC,YAAaA,EAAaV,aAAcA,EAAcW,4BAA6BA,IAGrR,SAASE,EAAwBtF,EAAmB+C,EAAYmC,EAAkCC,EAA+BV,EAA8BW,GAClK,MAAMnF,EAAUgF,EAA8BjF,EAAQa,oBAAqBkC,EAAImC,EAAiBC,EAAaV,EAAcW,GAC3H,OAAOlF,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASuF,EAA4CxC,EAAYyC,GAEpE,OADc1C,EAAWC,GACZ7B,qCAAqC,oCAAoC,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACoE,2BAA4BA,IAGtL,SAASC,EAAsCzF,EAAmB+C,EAAYyC,GACjF,MAAMvF,EAAUsF,EAA4CxC,EAAIyC,GAChE,OAAOtF,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS0F,EAAuC3C,EAAY4C,GAE/D,OADc7C,EAAWC,GACZ7B,qCAAqC,+BAA+B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACuE,sBAAuBA,IAG5K,SAASC,EAAiC5F,EAAmB+C,EAAY4C,GAC5E,MAAM1F,EAAUyF,EAAuC3C,EAAI4C,GAC3D,OAAOzF,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS6F,EAAqB9C,EAAY+C,EAAyBC,EAA2BC,GAEjG,OADclD,EAAWC,GACZ7B,qCAAqC,aAAa,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0E,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGrM,SAASC,EAAejG,EAAmB+C,EAAY+C,EAAyBC,EAA2BC,GAC9G,MAAM/F,EAAU4F,EAAqB9C,EAAI+C,EAAiBC,EAAYC,GACtE,OAAO9F,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASkG,EAA0BnD,EAAYoD,EAA6BH,EAAgBI,GAE/F,OADctD,EAAWC,GACZ7B,qCAAqC,kBAAkB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC+E,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGrM,SAASC,EAAoBrG,EAAmB+C,EAAYoD,EAA6BH,EAAgBI,GAC5G,MAAMnG,EAAUiG,EAA0BnD,EAAIoD,EAAcH,EAAQI,GACpE,OAAOlG,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASsG,EAA6BvD,EAAYwD,EAA2BT,EAAyBC,EAA2BC,GAEpI,OADclD,EAAWC,GACZ7B,qCAAqC,qBAAqB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmF,WAAYA,EAAYT,gBAAiBA,EAAiBC,WAAYA,EAAYC,OAAQA,IAGrO,SAASQ,EAAuBxG,EAAmB+C,EAAYwD,EAA2BT,EAAyBC,EAA2BC,GACjJ,MAAM/F,EAAUqG,EAA6BvD,EAAIwD,EAAYT,EAAiBC,EAAYC,GAC1F,OAAO9F,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASyG,EAAkC1D,EAAYwD,EAA2BJ,EAA6BH,EAAgBI,GAElI,OADctD,EAAWC,GACZ7B,qCAAqC,0BAA0B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmF,WAAYA,EAAYJ,aAAcA,EAAcH,OAAQA,EAAQI,gBAAiBA,IAGrO,SAASM,EAA4B1G,EAAmB+C,EAAYwD,EAA2BJ,EAA6BH,EAAgBI,GAC/I,MAAMnG,EAAUwG,EAAkC1D,EAAIwD,EAAYJ,EAAcH,EAAQI,GACxF,OAAOlG,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS2G,EAAgB5D,EAAYqD,EAA2CzC,GAEnF,OADcb,EAAWC,GACZ7B,qCAAqC,QAAQ,EAAM0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,MAAOC,aAAc,cAAe,CAACgF,gBAAiBA,EAAiBzC,YAAaA,IAGzL,SAASiD,EAAU5G,EAAmB+C,EAAYqD,EAA2CzC,GAChG,MAAM1D,EAAU0G,EAAgB5D,EAAIqD,EAAiBzC,GACrD,OAAOzD,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS6G,EAAwB9D,EAAY+D,EAA+BnD,GAE/E,OADcb,EAAWC,GACZ7B,qCAAqC,gBAAgB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0F,UAAWA,EAAWnD,YAAaA,IAGzK,SAASoD,EAAkB/G,EAAmB+C,EAAY+D,EAA+BnD,GAC5F,MAAM1D,EAAU4G,EAAwB9D,EAAI+D,EAAWnD,GACvD,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASgH,EAA8BjE,EAAYkE,EAA0CC,EAAyCvD,GAEzI,OADcb,EAAWC,GACZ7B,qCAAqC,sBAAsB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC6F,gBAAiBA,EAAiBC,gCAAiCA,EAAiCvD,YAAaA,IAG7P,SAASwD,EAAwBnH,EAAmB+C,EAAYkE,EAA0CC,EAAyCvD,GACtJ,MAAM1D,EAAU+G,EAA8BjE,EAAIkE,EAAiBC,EAAiCvD,GACpG,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASoH,EAA2BrE,EAAY+D,EAA+BnD,GAElF,OADcb,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0F,UAAWA,EAAWnD,YAAaA,IAG5K,SAAS0D,EAAqBrH,EAAmB+C,EAAY+D,EAA+BnD,GAC/F,MAAM1D,EAAUmH,EAA2BrE,EAAI+D,EAAWnD,GAC1D,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASsH,EAAyBvE,EAAY+D,GAEjD,OADchE,EAAWC,GACZ7B,qCAAqC,iBAAiB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0F,UAAWA,IAGlJ,SAASS,GAAmBvH,EAAmB+C,EAAY+D,GAC9D,MAAM7G,EAAUqH,EAAyBvE,EAAI+D,GAC7C,OAAO5G,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASwH,GAA2BzE,EAAYoC,GAEnD,OADcrC,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC+D,YAAaA,IAGtJ,SAASsC,GAAqBzH,EAAmB+C,EAAYoC,GAChE,MAAMlF,EAAUuH,GAA2BzE,EAAIoC,GAC/C,OAAOjF,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS0H,GAAyB3E,EAAY4E,EAAwChE,GAEzF,OADcb,EAAWC,GACZ7B,qCAAqC,iBAAiB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACuG,eAAgBA,EAAgBhE,YAAaA,IAGpL,SAASiE,GAAmB5H,EAAmB+C,EAAY4E,EAAwChE,GACtG,MAAM1D,EAAUyH,GAAyB3E,EAAI4E,EAAgBhE,GAC7D,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS6H,GAAmC9E,EAAY+E,EAAgCnE,GAE3F,OADcb,EAAWC,GACZ7B,qCAAqC,2BAA2B,EAAM6G,EAAAA,wBAAyB,QAAS,CAAC5G,YAAa,MAAOC,aAAc,sBAAuB,CAAC0G,WAAYA,EAAYnE,YAAaA,IAGlN,SAASqE,GAA6BhI,EAAmB+C,EAAY+E,EAAgCnE,GACxG,MAAM1D,EAAU4H,GAAmC9E,EAAI+E,EAAYnE,GACnE,OAAOzD,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAASiI,GAAqClF,EAAYmF,EAA4CvE,GAEzG,OADcb,EAAWC,GACZ7B,qCAAqC,6BAA6B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8G,uBAAwBA,EAAwBvE,YAAaA,IAGhN,SAASwE,GAA+BnI,EAAmB+C,EAAYmF,EAA4CvE,GACtH,MAAM1D,EAAUgI,GAAqClF,EAAImF,EAAwBvE,GACjF,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASoI,GAAoCrF,EAAY+E,GAE5D,OADchF,EAAWC,GACZ7B,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC0G,WAAYA,IAG9I,SAASO,GAA8BrI,EAAmB+C,EAAY+E,GACzE,MAAM7H,EAAUmI,GAAoCrF,EAAI+E,GACxD,OAAO5H,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASsI,GAAqCvF,EAAYwF,EAA8BC,GAE3F,OADc1F,EAAWC,GACZ7B,qCAAqC,6BAA6B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmH,aAAcA,EAAcC,cAAeA,IAG9L,SAASC,GAA+BzI,EAAmB+C,EAAYwF,EAA8BC,GACxG,MAAMvI,EAAUqI,GAAqCvF,EAAIwF,EAAcC,GACvE,OAAOtI,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS0I,GAA2C7H,EAA2CkC,EAAYmF,EAA4CS,GAE1J,OADc7F,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,mCAAmC,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAAC8G,uBAAwBA,EAAwBS,yBAA0BA,IAGzO,SAASE,GAAqC7I,EAAmB+C,EAAYmF,EAA4CS,GAC5H,MAAM1I,EAAUyI,GAA2C1I,EAAQa,oBAAqBkC,EAAImF,EAAwBS,GACpH,OAAOzI,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAAS8I,GAAgB/F,EAAYgG,GAExC,OADcjG,EAAWC,GACZ7B,qCAAqC,QAAQ,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC2H,eAAgBA,IAG9I,SAASC,GAAUhJ,EAAmB+C,EAAYgG,GACrD,MAAM9I,EAAU6I,GAAgB/F,EAAIgG,GACpC,OAAO7I,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASiJ,GAAuCC,EAA8BC,GAEjF,OADcrG,IACD5B,qCAAqC,+BAA+B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8H,cAAeA,EAAeC,sBAAuBA,IAG1M,SAASC,GAAiCpJ,EAAmBkJ,EAA8BC,GAC9F,MAAMlJ,EAAUgJ,GAAuCC,EAAeC,GACtE,OAAOjJ,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASqJ,GAAoCtG,EAAYuG,GAE5D,OADcxG,EAAWC,GACZ7B,qCAAqC,4BAA4B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACkI,+BAAgCA,IAGlL,SAASC,GAA8BvJ,EAAmB+C,EAAYuG,GACzE,MAAMrJ,EAAUoJ,GAAoCtG,EAAIuG,GACxD,OAAOpJ,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASwJ,GAA0BzG,EAAYwF,EAA8BnC,EAA2CqD,EAAiCC,GAE5J,OADc5G,EAAWC,GACZ7B,qCAAqC,kBAAkB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmH,aAAcA,EAAcnC,gBAAiBA,EAAiBqD,eAAgBA,EAAgBC,UAAWA,IAGjP,SAASC,GAAoB3J,EAAmB+C,EAAYwF,EAA8BnC,EAA2CqD,EAAiCC,GACzK,MAAMzJ,EAAUuJ,GAA0BzG,EAAIwF,EAAcnC,EAAiBqD,EAAgBC,GAC7F,OAAOxJ,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS4J,GAAyB7G,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GAE3J,OADcjH,EAAWC,GACZ7B,qCAAqC,iBAAiB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACyI,WAAYA,EAAY7D,OAAQA,EAAQhC,aAAcA,EAAc8F,gBAAiBA,EAAiBC,aAAcA,IAG3P,SAASC,GAAmBhK,EAAmB+C,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GACxK,MAAM9J,EAAU2J,GAAyB7G,EAAI8G,EAAY7D,EAAQhC,EAAc8F,EAAiBC,GAChG,OAAO7J,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASiK,GAA0BlH,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GAE5J,OADcjH,EAAWC,GACZ7B,qCAAqC,kBAAkB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACyI,WAAYA,EAAY7D,OAAQA,EAAQhC,aAAcA,EAAc8F,gBAAiBA,EAAiBC,aAAcA,IAG5P,SAASG,GAAoBlK,EAAmB+C,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GACzK,MAAM9J,EAAUgK,GAA0BlH,EAAI8G,EAAY7D,EAAQhC,EAAc8F,EAAiBC,GACjG,OAAO7J,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASmK,GAA2BpH,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GAE7J,OADcjH,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACyI,WAAYA,EAAY7D,OAAQA,EAAQhC,aAAcA,EAAc8F,gBAAiBA,EAAiBC,aAAcA,IAG7P,SAASK,GAAqBpK,EAAmB+C,EAAY8G,EAA2B7D,EAAgBhC,EAA8B8F,EAAiCC,GAC1K,MAAM9J,EAAUkK,GAA2BpH,EAAI8G,EAAY7D,EAAQhC,EAAc8F,EAAiBC,GAClG,OAAO7J,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASqK,GAAmBtH,GAE/B,OADcD,EAAWC,GACZ7B,qCAAqC,WAAW,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,IAGhI,SAASkJ,GAAatK,EAAmB+C,GAC5C,MAAM9C,EAAUoK,GAAmBtH,GACnC,OAAO7C,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASuK,GAA8BxH,EAAYyH,EAA+B/G,GAErF,OADcX,EAAWC,GACZ7B,qCAAqC,sBAAsB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACoJ,cAAeA,EAAe/G,sBAAuBA,IAGjM,SAASgH,GAAwBzK,EAAmB+C,EAAYyH,EAA+B/G,GAClG,MAAMxD,EAAUsK,GAA8BxH,EAAIyH,EAAe/G,GACjE,OAAOvD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS0K,GAAkB3H,GAE9B,OADcD,EAAWC,GACZ7B,qCAAqC,UAAU,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,IAG/H,SAASuJ,GAAY3K,EAAmB+C,GAC3C,MAAM9C,EAAUyK,GAAkB3H,GAClC,OAAO7C,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS4K,GAA+BC,GAE3C,OADc/H,IACD5B,qCAAqC,uBAAuB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACyJ,UAAWA,IAGxJ,SAASC,GAAyB9K,EAAmB6K,GACxD,MAAM5K,EAAU2K,GAA+BC,GAC/C,OAAO3K,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS+K,GAA+BhI,EAAYiI,GAEvD,OADclI,EAAWC,GACZ7B,qCAAqC,uBAAuB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC4J,cAAeA,IAG5J,SAASC,GAAyBjL,EAAmB+C,EAAYiI,GACpE,MAAM/K,EAAU8K,GAA+BhI,EAAIiI,GACnD,OAAO9K,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASkL,GAAwBrK,GAEpC,OADciC,IAAahC,eAAeD,GAC7BK,qCAAqC,gBAAgB,EAAM+B,EAAAA,UAAW,OAAQ,CAAC9B,YAAa,OAAQC,aAAc,QAAS,IAGrI,SAAS+J,GAAkBnL,GAC9B,MAAMC,EAAUiL,GAAwBlL,EAAQa,qBAChD,OAAOX,EAAAA,EAAAA,IAAsBD,EAASD,GAGnC,SAASoL,GAAiCrI,EAAYwD,EAA2B8E,GAEpF,OADcvI,EAAWC,GACZ7B,qCAAqC,yBAAyB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmF,WAAYA,EAAY8E,MAAOA,IAG9K,SAASC,GAA2BtL,EAAmB+C,EAAYwD,EAA2B8E,GACjG,MAAMpL,EAAUmL,GAAiCrI,EAAIwD,EAAY8E,GACjE,OAAOnL,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASuL,GAAqCxI,EAAYyI,EAA8DC,GAE3H,OADc3I,EAAWC,GACZ7B,qCAAqC,6BAA6B,EAAMwK,EAAAA,4BAA6B,QAAS,CAACvK,YAAa,OAAQC,aAAc,0BAA2B,CAACoK,0BAA2BA,EAA2BC,oBAAqBA,IAGnQ,SAASE,GAA+B3L,EAAmB+C,EAAYyI,EAA8DC,GACxI,MAAMxL,EAAUsL,GAAqCxI,EAAIyI,EAA2BC,GACpF,OAAOvL,EAAAA,EAAAA,IAAsCD,EAASD,GAGnD,SAAS4L,GAA2CC,EAAkCJ,EAAiDK,EAAwBC,GAElK,OADcjJ,IACD5B,qCAAqC,mCAAmC,EAAM8K,EAAAA,6BAA8B,QAAS,CAAC7K,YAAa,MAAOC,aAAc,2BAA4B,CAACyK,iBAAkBA,EAAkBJ,oBAAqBA,EAAqBK,OAAQA,EAAQC,SAAUA,IAGvS,SAASE,GAAqCjM,EAAmB6L,EAAkCJ,EAAiDK,EAAwBC,GAC/K,MAAM9L,EAAU2L,GAA2CC,EAAkBJ,EAAqBK,EAAQC,GAC1G,OAAO7L,EAAAA,EAAAA,IAAuCD,EAASD,GAGpD,SAASkM,GAAuBhD,EAA+BiD,GAElE,OADcrJ,IACD5B,qCAAqC,eAAe,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8H,cAAeA,EAAeiD,QAASA,IAG5K,SAASC,GAAiBpM,EAAmBkJ,EAA+BiD,GAC/E,MAAMlM,EAAUiM,GAAuBhD,EAAeiD,GACtD,OAAOjM,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASqM,GAAuBnD,EAA+BoD,GAElE,OADcxJ,IACD5B,qCAAqC,eAAe,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8H,cAAeA,EAAeoD,QAASA,IAG5K,SAASC,GAAiBvM,EAAmBkJ,EAA+BoD,GAC/E,MAAMrM,EAAUoM,GAAuBnD,EAAeoD,GACtD,OAAOpM,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASwM,GAA4BzJ,GAExC,OADcD,EAAWC,GACZ7B,qCAAqC,oBAAoB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,IAGzI,SAASqL,GAAsBzM,EAAmB+C,GACrD,MAAM9C,EAAUuM,GAA4BzJ,GAC5C,OAAO7C,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS0M,GAA2B3J,GAEvC,OADcD,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAO+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,IAGzI,SAASuL,GAAqB3M,EAAmB+C,GACpD,MAAM9C,EAAUyM,GAA2B3J,GAC3C,OAAO7C,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS4M,GAAyB7J,GAErC,OADcD,EAAWC,GACZ7B,qCAAqC,iBAAiB,EAAM2L,EAAAA,oBAAqB,QAAS,CAAC1L,YAAa,OAAQC,aAAc,kBAAmB,IAG3J,SAAS0L,GAAmB9M,EAAmB+C,GAClD,MAAM9C,EAAU2M,GAAyB7J,GACzC,OAAO7C,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAAS+M,GAAkClM,EAA2CkC,EAAYoC,GAErG,OADcrC,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,0BAA0B,EAAM8L,EAAAA,uBAAwB,OAAQ,CAAC7L,YAAa,OAAQC,aAAc,qBAAsB,CAAC+D,YAAaA,IAGvL,SAAS8H,GAA4BjN,EAAmB+C,EAAYoC,GACvE,MAAMlF,EAAU8M,GAAkC/M,EAAQa,oBAAqBkC,EAAIoC,GACnF,OAAOjF,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAASkN,GAA8BhE,EAA+B3H,GAEzE,OADcuB,IACD5B,qCAAqC,sBAAsB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8H,cAAeA,EAAe3H,UAAWA,IAGrL,SAAS4L,GAAwBnN,EAAmBkJ,EAA+B3H,GACtF,MAAMtB,EAAUiN,GAA8BhE,EAAe3H,GAC7D,OAAOrB,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASoN,GAA2BrK,EAAYxB,EAA2BuI,GAE9E,OADchH,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACG,UAAWA,EAAWuI,gBAAiBA,IAGhL,SAASuD,GAAqBrN,EAAmB+C,EAAYxB,EAA2BuI,GAC3F,MAAM7J,EAAUmN,GAA2BrK,EAAIxB,EAAWuI,GAC1D,OAAO5J,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASsN,GAAuBvK,EAAYwK,GAE/C,OADczK,EAAWC,GACZ7B,qCAAqC,eAAe,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmM,WAAYA,IAGjJ,SAASC,GAAiBxN,EAAmB+C,EAAYwK,GAC5D,MAAMtN,EAAUqN,GAAuBvK,EAAIwK,GAC3C,OAAOrN,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASyN,GAAsCvE,EAA8B3C,EAA2BmH,EAAqCC,GAEhJ,OADc7K,IACD5B,qCAAqC,8BAA8B,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC8H,cAAeA,EAAe3C,WAAYA,EAAYmH,qBAAsBA,EAAsBC,gBAAiBA,IAGvQ,SAASC,GAAgC5N,EAAmBkJ,EAA8B3C,EAA2BmH,EAAqCC,GAC7J,MAAM1N,EAAUwN,GAAsCvE,EAAe3C,EAAYmH,EAAsBC,GACvG,OAAOzN,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS6N,GAAsB9K,EAAY+K,EAA+BC,GAE7E,OADcjL,EAAWC,GACZ7B,qCAAqC,cAAc,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0M,YAAaA,EAAaC,qBAAsBA,IAGpL,SAASC,GAAgBhO,EAAmB+C,EAAY+K,EAA+BC,GAC1F,MAAM9N,EAAU4N,GAAsB9K,EAAI+K,EAAaC,GACvD,OAAO7N,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASiO,GAAyBlL,EAAY+K,GAEjD,OADchL,EAAWC,GACZ7B,qCAAqC,iBAAiB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC0M,YAAaA,IAGpJ,SAASI,GAAmBlO,EAAmB+C,EAAY+K,GAC9D,MAAM7N,EAAUgO,GAAyBlL,EAAI+K,GAC7C,OAAO5N,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASmO,GAAuCtN,EAA2CkC,EAAY+D,GAE1G,OADchE,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,+BAA+B,EAAMkN,EAAAA,wBAAyB,OAAQ,CAACjN,YAAa,OAAQC,aAAc,sBAAuB,CAAC0F,UAAWA,IAG5L,SAASuH,GAAiCrO,EAAmB+C,EAAY+D,GAC5E,MAAM7G,EAAUkO,GAAuCnO,EAAQa,oBAAqBkC,EAAI+D,GACxF,OAAO5G,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAASsO,GAAiCzN,EAA2CkC,EAAYoC,GAEpG,OADcrC,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,yBAAyB,EAAMkN,EAAAA,wBAAyB,OAAQ,CAACjN,YAAa,OAAQC,aAAc,sBAAuB,CAAC+D,YAAaA,IAGxL,SAASoJ,GAA2BvO,EAAmB+C,EAAYoC,GACtE,MAAMlF,EAAUqO,GAAiCtO,EAAQa,oBAAqBkC,EAAIoC,GAClF,OAAOjF,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAASwO,GAA0B3N,GAEtC,OADciC,IAAahC,eAAeD,GAC7BK,qCAAqC,kBAAkB,EAAOuN,EAAAA,gBAAiB,OAAQ,CAACtN,YAAa,OAAQC,aAAc,cAAe,IAGpJ,SAASsN,GAAoB1O,GAChC,MAAMC,EAAUuO,GAA0BxO,EAAQa,qBAClD,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAAS2O,GAA2B9N,EAA2CkC,GAElF,OADcD,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,mBAAmB,EAAO,GAAI,OAAQ,CAACC,YAAa,OAAQC,aAAc,IAAK,IAG9H,SAASwN,GAAqB5O,EAAmB+C,GACpD,MAAM9C,EAAU0O,GAA2B3O,EAAQa,oBAAqBkC,GACxE,OAAO7C,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAAS6O,GAA+B9L,EAAYwD,EAA2B8E,EAAe1H,GAEjG,OADcb,EAAWC,GACZ7B,qCAAqC,uBAAuB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAACmF,WAAYA,EAAY8E,MAAOA,EAAO1H,YAAaA,IAGhM,SAASmL,GAAyB9O,EAAmB+C,EAAYwD,EAA2B8E,EAAe1H,GAC9G,MAAM1D,EAAU4O,GAA+B9L,EAAIwD,EAAY8E,EAAO1H,GACtE,OAAOzD,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAAS+O,GAA2BhM,EAAYiM,GAEnD,OADclM,EAAWC,GACZ7B,qCAAqC,mBAAmB,EAAM+B,EAAAA,UAAW,QAAS,CAAC9B,YAAa,MAAOC,aAAc,QAAS,CAAC4N,aAAcA,IAGvJ,SAASC,GAAqBjP,EAAmB+C,EAAYiM,GAChE,MAAM/O,EAAU8O,GAA2BhM,EAAIiM,GAC/C,OAAO9O,EAAAA,EAAAA,IAAoBD,EAASD,GAGjC,SAASkP,GAA4BrO,EAA2CkC,GAEnF,OADcD,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,oBAAoB,EAAOiO,EAAAA,sBAAuB,OAAQ,CAAChO,YAAa,OAAQC,aAAc,oBAAqB,IAGlK,SAASgO,GAAsBpP,EAAmB+C,GACrD,MAAM9C,EAAUiP,GAA4BlP,EAAQa,oBAAqBkC,GACzE,OAAO7C,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAASqP,GAA+BtM,EAAYY,GAEvD,OADcb,EAAWC,GACZ7B,qCAAqC,uBAAuB,EAAOoO,EAAAA,+BAAgC,QAAS,CAACnO,YAAa,MAAOC,aAAc,6BAA8B,CAACuC,YAAaA,IAGrM,SAAS4L,GAAyBvP,EAAmB+C,EAAYY,GACpE,MAAM1D,EAAUoP,GAA+BtM,EAAIY,GACnD,OAAOzD,EAAAA,EAAAA,IAAyCD,EAASD,GAGtD,SAASwP,GAAgC3O,EAA2CkC,EAAYgH,EAA8B/F,GAEjI,OADclB,EAAWC,GAAIjC,eAAeD,GAC/BK,qCAAqC,wBAAwB,EAAOkD,EAAAA,gBAAiB,OAAQ,CAACjD,YAAa,OAAQC,aAAc,cAAe,CAAC2I,aAAcA,EAAc/F,aAAcA,IAGrM,SAASyL,GAA0BzP,EAAmB+C,EAAYgH,EAA8B/F,GACnG,MAAM/D,EAAUuP,GAAgCxP,EAAQa,oBAAqBkC,EAAIgH,EAAc/F,GAC/F,OAAO9D,EAAAA,EAAAA,IAA4BD,EAASD,8VCrqBhD,SAAS0P,EAAcC,GACnB,IAAInQ,EAAOmQ,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAIjQ,EAAAA,EAAiB,WAAY,iBAAkBmQ,EAAAA,oBAAqBrQ,GAG5E,SAASI,EAAkBC,GAC9B,OAAO6P,IAAgB5P,OAAOD,GAG3B,SAASiQ,EAA0B9P,EAAmBH,GACzD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASG,EAAkBN,GAC9B,OAAO6P,EAAc7P,EAAO+P,UAAUxP,OAAOP,GAG1C,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASM,EAAkBT,GAC9B,OAAO6P,EAAc7P,EAAO+P,UAAUrP,SAGnC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBkP,GAC5B,OAAOD,EAAcC,GAAUjP,OAG5B,SAASC,EAAUX,EAAmB2P,GACzC,MAAM1P,EAAUQ,EAAgBkP,GAChC,OAAOzP,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASY,EAAmBC,GAC/B,OAAO6O,IAAgB5O,eAAeD,GAAqBH,OAGxD,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAAS+P,EAAuBlP,EAA2C2D,EAAmBwL,GAEjG,OADcN,IAAgB5O,eAAeD,GAChCK,qCAAqC,eAAe,EAAM2O,EAAAA,oBAAqB,OAAQ,CAAC1O,YAAa,OAAQC,aAAc,kBAAmB,CAACoD,UAAWA,EAAWwL,WAAYA,IAG3L,SAASC,EAAiBjQ,EAAmBwE,EAAmBwL,GACnE,MAAM/P,EAAU8P,EAAuB/P,EAAQa,oBAAqB2D,EAAWwL,GAC/E,OAAO9P,EAAAA,EAAAA,IAAgCD,EAASD,8gBCzDpD,SAASkQ,EAAgBP,GACrB,IAAInQ,EAAOmQ,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAIjQ,EAAAA,EAAiB,aAAc,WAAYyQ,EAAAA,cAAe3Q,GAGlE,SAASI,EAAkBC,GAC9B,OAAOqQ,IAAkBpQ,OAAOD,GAG7B,SAASuQ,EAAoBpQ,EAAmBH,GACnD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASG,EAAkBN,GAC9B,OAAOqQ,EAAgBrQ,EAAO+P,UAAUxP,OAAOP,GAG5C,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASM,EAAkBT,GAC9B,OAAOqQ,EAAgBrQ,EAAO+P,UAAUrP,SAGrC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBkP,GAC5B,OAAOO,EAAgBP,GAAUjP,OAG9B,SAASC,EAAUX,EAAmB2P,GACzC,MAAM1P,EAAUQ,EAAgBkP,GAChC,OAAOzP,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASY,EAAmBC,GAC/B,OAAOqP,IAAkBpP,eAAeD,GAAqBH,OAG1D,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASqQ,EAAyBxP,EAA2C2D,EAAmB8L,GAEnG,OADcJ,IAAkBpP,eAAeD,GAClCK,qCAAqC,iBAAiB,EAAMiP,EAAAA,cAAe,OAAQ,CAAChP,YAAa,OAAQC,aAAc,YAAa,CAACoD,UAAWA,EAAW8L,UAAWA,IAGhL,SAASC,EAAmBvQ,EAAmBwE,EAAmB8L,GACrE,MAAMrQ,EAAUoQ,EAAyBrQ,EAAQa,oBAAqB2D,EAAW8L,GACjF,OAAOpQ,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASwQ,EAAyB3P,EAA2C4P,GAEhF,OADcP,IAAkBpP,eAAeD,GAClCK,qCAAqC,iBAAiB,EAAOwP,EAAAA,uBAAwB,OAAQ,CAACvP,YAAa,OAAQC,aAAc,qBAAsB,CAACqP,WAAYA,IAG9K,SAASE,EAAmB3Q,EAAmByQ,GAClD,MAAMxQ,EAAUuQ,EAAyBxQ,EAAQa,oBAAqB4P,GACtE,OAAOvQ,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAAS4Q,EAAgC/P,EAA2CyP,EAAmBO,GAE1G,OADcX,IAAkBpP,eAAeD,GAClCK,qCAAqC,wBAAwB,EAAMwP,EAAAA,uBAAwB,OAAQ,CAACvP,YAAa,OAAQC,aAAc,qBAAsB,CAACkP,UAAWA,EAAWO,YAAaA,IAG3M,SAASC,EAA0B9Q,EAAmBsQ,EAAmBO,GAC5E,MAAM5Q,EAAU2Q,EAAgC5Q,EAAQa,oBAAqByP,EAAWO,GACxF,OAAO3Q,EAAAA,EAAAA,IAAmCD,EAASD,GAGhD,SAAS+Q,EAAuBlQ,EAA2C2D,EAAmBiM,GAEjG,OADcP,IAAkBpP,eAAeD,GAClCK,qCAAqC,eAAe,EAAMiP,EAAAA,cAAe,OAAQ,CAAChP,YAAa,OAAQC,aAAc,YAAa,CAACoD,UAAWA,EAAWiM,WAAYA,IAG/K,SAASO,EAAiBhR,EAAmBwE,EAAmBiM,GACnE,MAAMxQ,EAAU8Q,EAAuB/Q,EAAQa,oBAAqB2D,EAAWiM,GAC/E,OAAOvQ,EAAAA,EAAAA,IAA0BD,EAASD,kHCvF9C,SAASiR,EAAmBlO,GACxB,IAAIvD,EAAOuD,EAAM,CAAEC,GAAID,GAAO,KAC9B,OAAO,IAAIrD,EAAAA,EAAiB,gBAAiB,eAAgBwR,EAAAA,kBAAmB1R,GAO7E,SAAS2R,EAAwBnR,EAAmBH,GACvD,MAAMI,EALH,SAA2BJ,GAC9B,OAAOoR,IAAqBnR,OAAOD,GAInBD,CAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAA4BD,EAASD,GAuCzC,SAASoR,EAAyBvQ,EAA2CwQ,GAEhF,OADcJ,IAAqBnQ,eAAeD,GACrCK,qCAAqC,iBAAiB,EAAMgQ,EAAAA,kBAAmB,OAAQ,CAAC/P,YAAa,OAAQC,aAAc,gBAAiB,CAACiQ,WAAYA,IAGnK,SAASC,EAAmBtR,EAAmBqR,GAClD,MAAMpR,EAAUmR,EAAyBpR,EAAQa,oBAAqBwQ,GACtE,OAAOnR,EAAAA,EAAAA,IAA8BD,EAASD,GAQ3C,SAASuR,EAAcvR,EAAmB+C,EAAYyO,GACzD,MAAMvR,EANH,SAA6B8C,EAAYyO,GAE5C,OADcP,EAAmBlO,GACpB7B,qCAAqC,YAAY,EAAMgQ,EAAAA,kBAAmB,QAAS,CAAC/P,YAAa,MAAOC,aAAc,gBAAiB,CAACoQ,kBAAmBA,IAIxJC,CAAoB1O,EAAIyO,GACxC,OAAOtR,EAAAA,EAAAA,IAA4BD,EAASD,GAkBzC,SAAS0R,EAAiB1R,EAAmB+C,EAAYyO,GAC5D,MAAMvR,EANH,SAAgC8C,EAAYyO,GAE/C,OADcP,EAAmBlO,GACpB7B,qCAAqC,eAAe,EAAMgQ,EAAAA,kBAAmB,QAAS,CAAC/P,YAAa,MAAOC,aAAc,gBAAiB,CAACoQ,kBAAmBA,IAI3JG,CAAuB5O,EAAIyO,GAC3C,OAAOtR,EAAAA,EAAAA,IAA4BD,EAASD,o1CCvFhD,SAAS4R,EAAeC,GACpB,IAAIrS,EAAOqS,MAAAA,EAAyD,CAAEC,cAAeD,GAAkB,KACvG,OAAO,IAAInS,EAAAA,EAAiB,YAAa,WAAYqS,EAAAA,cAAevS,GAGjE,SAASI,EAAkBC,GAC9B,OAAO+R,IAAiB9R,OAAOD,GAG5B,SAASmS,EAAoBhS,EAAmBH,GACnD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASG,EAAkBN,GAC9B,OAAO+R,EAAe/R,EAAOiS,eAAe1R,OAAOP,GAGhD,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASM,EAAkBT,GAC9B,OAAO+R,EAAe/R,EAAOiS,eAAevR,SAGzC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBoR,GAC5B,OAAOD,EAAeC,GAAenR,OAGlC,SAASC,EAAUX,EAAmB6R,GACzC,MAAM5R,EAAUQ,EAAgBoR,GAChC,OAAO3R,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASY,EAAmBC,GAC/B,OAAO+Q,IAAiB9Q,eAAeD,GAAqBH,OAGzD,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASmD,EAAkBtC,EAA2CoR,GAEzE,OADcL,IAAiB9Q,eAAeD,GACjCK,qCAAqC,UAAU,EAAMgR,EAAAA,oBAAqB,OAAQ,CAAC/Q,YAAa,OAAQC,aAAc,kBAAmB,CAAC6Q,uBAAwBA,IAG5K,SAAS5O,EAAYrD,EAAmBiS,GAC3C,MAAMhS,EAAUkD,EAAkBnD,EAAQa,oBAAqBoR,GAC/D,OAAO/R,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASmS,EAA0BtR,EAA2CuR,GAEjF,OADcR,IAAiB9Q,eAAeD,GACjCK,qCAAqC,kBAAkB,EAAMgR,EAAAA,oBAAqB,OAAQ,CAAC/Q,YAAa,OAAQC,aAAc,kBAAmB,CAACiR,8BAA+BD,IAG3L,SAASE,EAAoBtS,EAAmBoS,GACnD,MAAMnS,EAAUkS,EAA0BnS,EAAQa,oBAAqBuR,GACvE,OAAOlS,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASuS,EAA+B1R,EAA2C2R,EAAiCC,GAEvH,OADcb,IAAiB9Q,eAAeD,GACjCK,qCAAqC,uBAAuB,EAAM6Q,EAAAA,cAAe,OAAQ,CAAC5Q,YAAa,OAAQC,aAAc,YAAa,CAACoR,eAAgBA,EAAgBC,oBAAqBA,IAG1M,SAASC,EAAyB1S,EAAmBwS,EAAiCC,GACzF,MAAMxS,EAAUsS,EAA+BvS,EAAQa,oBAAqB2R,EAAgBC,GAC5F,OAAOvS,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS2S,EAAsCC,GAElD,OADchB,IACD1Q,qCAAqC,8BAA8B,EAAM2R,EAAAA,0BAA2B,QAAS,CAAC1R,YAAa,MAAOC,aAAc,wBAAyB,CAACwR,qBAAsBA,IAG1M,SAASE,EAAgC9S,EAAmB4S,GAC/D,MAAM3S,EAAU0S,EAAsCC,GACtD,OAAO1S,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAAS+S,EAAsCH,GAElD,OADchB,IACD1Q,qCAAqC,8BAA8B,EAAM2R,EAAAA,0BAA2B,QAAS,CAAC1R,YAAa,MAAOC,aAAc,wBAAyB,CAACwR,qBAAsBA,IAG1M,SAASI,EAAgChT,EAAmB4S,GAC/D,MAAM3S,EAAU8S,EAAsCH,GACtD,OAAO1S,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAASiT,EAAuBpS,EAA2CqS,EAA+CC,GAE7H,OADcvB,IAAiB9Q,eAAeD,GACjCK,qCAAqC,eAAe,EAAMkS,EAAAA,qBAAsB,OAAQ,CAACjS,YAAa,OAAQC,aAAc,mBAAoB,CAAC8R,eAAgBA,EAAgBC,mBAAoBA,IAG/M,SAASE,EAAiBrT,EAAmBkT,EAA+CC,GAC/F,MAAMlT,EAAUgT,EAAuBjT,EAAQa,oBAAqBqS,EAAgBC,GACpF,OAAOjT,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAASuC,EAA2B1B,EAA2CgR,GAElF,OADcD,EAAeC,GAAe/Q,eAAeD,GAC9CK,qCAAqC,mBAAmB,EAAM0C,EAAAA,gBAAiB,OAAQ,CAACzC,YAAa,OAAQC,aAAc,cAAe,IAGpJ,SAASiB,EAAqBrC,EAAmB6R,GACpD,MAAM5R,EAAUsC,EAA2BvC,EAAQa,oBAAqBgR,GACxE,OAAO3R,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASsT,EAAoCzS,EAA2CgR,EAAuB0B,GAElH,OADc3B,EAAeC,GAAe/Q,eAAeD,GAC9CK,qCAAqC,4BAA4B,EAAMoB,EAAAA,oBAAqB,OAAQ,CAACnB,YAAa,OAAQC,aAAc,kBAAmB,CAACmS,cAAeA,IAGrL,SAASC,EAA8BxT,EAAmB6R,EAAuB0B,GACpF,MAAMtT,EAAUqT,EAAoCtT,EAAQa,oBAAqBgR,EAAe0B,GAChG,OAAOrT,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASyT,EAAqD1P,EAA8BS,EAAmBkP,EAAuBC,GAEzI,OADc/B,IACD1Q,qCAAqC,6CAA6C,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC2C,cAAeA,EAAeS,UAAWA,EAAWkP,cAAeA,EAAeC,eAAgBA,IAGrP,SAASC,EAA+C5T,EAAmB+D,EAA8BS,EAAmBkP,EAAuBC,GACtJ,MAAM1T,EAAUwT,EAAqD1P,EAAeS,EAAWkP,EAAeC,GAC9G,OAAOzT,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS6T,EAA8BhT,EAA2CgR,GAErF,OADcD,EAAeC,GAAe/Q,eAAeD,GAC9CK,qCAAqC,sBAAsB,EAAO4S,EAAAA,qBAAsB,OAAQ,CAAC3S,YAAa,OAAQC,aAAc,mBAAoB,IAGlK,SAAS2S,EAAwB/T,EAAmB6R,GACvD,MAAM5R,EAAU4T,EAA8B7T,EAAQa,oBAAqBgR,GAC3E,OAAO3R,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAASgU,EAAmCnT,GAE/C,OADc+Q,IAAiB9Q,eAAeD,GACjCK,qCAAqC,2BAA2B,EAAO+S,EAAAA,yBAA0B,OAAQ,CAAC9S,YAAa,OAAQC,aAAc,uBAAwB,IAG/K,SAAS8S,EAA6BlU,GACzC,MAAMC,EAAU+T,EAAmChU,EAAQa,qBAC3D,OAAOX,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASmU,EAAwCtT,GAEpD,OADc+Q,IAAiB9Q,eAAeD,GACjCK,qCAAqC,gCAAgC,EAAOkT,EAAAA,iCAAkC,OAAQ,CAACjT,YAAa,OAAQC,aAAc,+BAAgC,IAGpM,SAASiT,EAAkCrU,GAC9C,MAAMC,EAAUkU,EAAwCnU,EAAQa,qBAChE,OAAOX,EAAAA,EAAAA,IAA6CD,EAASD,GAG1D,SAASsU,EAAoCzT,EAA2CgR,GAE3F,OADcD,EAAeC,GAAe/Q,eAAeD,GAC9CK,qCAAqC,4BAA4B,EAAO2R,EAAAA,0BAA2B,OAAQ,CAAC1R,YAAa,OAAQC,aAAc,wBAAyB,IAGlL,SAASmT,EAA8BvU,EAAmB6R,GAC7D,MAAM5R,EAAUqU,EAAoCtU,EAAQa,oBAAqBgR,GACjF,OAAO3R,EAAAA,EAAAA,IAAsCD,EAASD,GAGnD,SAASwU,EAAuC3T,EAA2CgR,GAE9F,OADcD,EAAeC,GAAe/Q,eAAeD,GAC9CK,qCAAqC,+BAA+B,EAAOuT,EAAAA,6BAA8B,OAAQ,CAACtT,YAAa,OAAQC,aAAc,2BAA4B,IAG3L,SAASsT,EAAiC1U,EAAmB6R,GAChE,MAAM5R,EAAUuU,EAAuCxU,EAAQa,oBAAqBgR,GACpF,OAAO3R,EAAAA,EAAAA,IAAyCD,EAASD,GAGtD,SAAS2U,EAAqB9T,GAEjC,OADc+Q,IAAiB9Q,eAAeD,GACjCK,qCAAqC,aAAa,EAAO0T,EAAAA,mBAAoB,OAAQ,CAACzT,YAAa,OAAQC,aAAc,iBAAkB,IAGrJ,SAASyT,EAAe7U,GAC3B,MAAMC,EAAU0U,EAAqB3U,EAAQa,qBAC7C,OAAOX,EAAAA,EAAAA,IAA+BD,EAASD,2HCrMnD,SAAS8U,EAAcC,GACnB,IAAIvV,EAAOuV,EAAiB,CAAEC,cAAeD,GAAkB,KAC/D,OAAO,IAAIrV,EAAAA,EAAiB,WAAY,UAAWuV,EAAAA,aAAczV,GAyE9D,SAAS0V,EAA+BlV,EAAmBmV,EAAgCC,GAC9F,MAAMnV,EANH,SAA8CY,EAA2CsU,EAAgCC,GAE5H,OADcN,IAAgBhU,eAAeD,GAChCK,qCAAqC,6BAA6B,EAAMmU,EAAAA,qBAAsB,OAAQ,CAAClU,YAAa,OAAQC,aAAc,mBAAoB,CAAC+T,WAAYA,EAAYC,uBAAwBA,IAI5ME,CAAqCtV,EAAQa,oBAAqBsU,EAAYC,GAC9F,OAAOlV,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAASuV,EAAkC1U,EAA2C2U,GAEzF,OADcV,IAAgBhU,eAAeD,GAChCK,qCAAqC,0BAA0B,EAAMmU,EAAAA,qBAAsB,OAAQ,CAAClU,YAAa,OAAQC,aAAc,mBAAoB,CAACoU,8BAA+BA,IAQrM,SAASC,IAEZ,OADcX,IACD5T,qCAAqC,2BAA2B,EAAMwU,EAAAA,0BAA2B,QAAS,CAACvU,YAAa,OAAQC,aAAc,wBAAyB,IAGjL,SAASuU,EAA6B3V,GACzC,MAAMC,EAAUwV,IAChB,OAAOvV,EAAAA,EAAAA,IAAoCD,EAASD,GAQjD,SAAS4V,EAAmB5V,EAAmB6V,GAClD,MAAM5V,EANH,SAAkC4V,GAErC,OADcf,IACD5T,qCAAqC,iBAAiB,EAAO4U,EAAAA,gBAAiB,QAAS,CAAC3U,YAAa,OAAQC,aAAc,cAAe,CAACyU,YAAaA,IAIrJE,CAAyBF,GACzC,OAAO3V,EAAAA,EAAAA,IAA0BD,EAASD,GAQvC,SAASgW,EAA+BhW,EAAmBiW,EAAsBxR,GACpF,MAAMxE,EANH,SAA8CY,EAA2CoV,EAAsBxR,GAElH,OADcqQ,IAAgBhU,eAAeD,GAChCK,qCAAqC,6BAA6B,EAAMgV,EAAAA,2BAA4B,OAAQ,CAAC/U,YAAa,OAAQC,aAAc,yBAA0B,CAAC6U,WAAYA,EAAYxR,aAAcA,IAI9M0R,CAAqCnW,EAAQa,oBAAqBoV,EAAYxR,GAC9F,OAAOvE,EAAAA,EAAAA,IAAuCD,EAASD,qrBCrH3D,SAASoW,EAAkBrT,GACvB,IAAIvD,EAAOuD,EAAM,CAAEC,GAAID,GAAO,KAC9B,OAAO,IAAIrD,EAAAA,EAAiB,eAAgB,cAAe2W,EAAAA,iBAAkB7W,GAG1E,SAASI,EAAkBC,GAC9B,OAAOuW,IAAoBtW,OAAOD,GAG/B,SAASyW,EAAuBtW,EAAmBH,GACtD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAA2BD,EAASD,GAGxC,SAASG,EAAkBN,GAC9B,OAAOuW,EAAkBvW,EAAOmD,IAAI5C,OAAOP,GAGxC,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAA2BD,EAASD,GAGxC,SAASM,EAAkBT,GAC9B,OAAOuW,EAAkBvW,EAAOmD,IAAIzC,SAGjC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBsC,GAC5B,OAAOqT,EAAkBrT,GAAIrC,OAG1B,SAASC,EAAUX,EAAmB+C,GACzC,MAAM9C,EAAUQ,EAAgBsC,GAChC,OAAO7C,EAAAA,EAAAA,IAA2BD,EAASD,GAGxC,SAASY,EAAmBC,GAC/B,OAAOuV,IAAoBtV,eAAeD,GAAqBH,OAG5D,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAA6BD,EAASD,GAG1C,SAASmD,EAAkBtC,EAA2CqS,GAEzE,OADckD,IAAoBtV,eAAeD,GACpCK,qCAAqC,UAAU,EAAMmV,EAAAA,iBAAkB,OAAQ,CAAClV,YAAa,OAAQC,aAAc,eAAgB,CAAC8R,eAAgBA,IAG9J,SAAS7P,EAAYrD,EAAmBkT,GAC3C,MAAMjT,EAAUkD,EAAkBnD,EAAQa,oBAAqBqS,GAC/D,OAAOhT,EAAAA,EAAAA,IAA6BD,EAASD,GAG1C,SAASuW,EAA+B1V,EAA2CkC,EAAYyT,GAElG,OADcJ,EAAkBrT,GAAIjC,eAAeD,GACtCK,qCAAqC,uBAAuB,EAAMuV,EAAAA,qBAAsB,OAAQ,CAACtV,YAAa,OAAQC,aAAc,mBAAoB,CAACoV,WAAYA,IAG/K,SAASE,EAAyB1W,EAAmB+C,EAAYyT,GACpE,MAAMvW,EAAUsW,EAA+BvW,EAAQa,oBAAqBkC,EAAIyT,GAChF,OAAOtW,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAAS2W,EAA+B9V,EAA2CkC,EAAY6T,GAElG,OADcR,EAAkBrT,GAAIjC,eAAeD,GACtCK,qCAAqC,uBAAuB,EAAMuV,EAAAA,qBAAsB,OAAQ,CAACtV,YAAa,MAAOC,aAAc,mBAAoB,CAACwV,iBAAkBA,IAGpL,SAASC,EAAyB7W,EAAmB+C,EAAY6T,GACpE,MAAM3W,EAAU0W,EAA+B3W,EAAQa,oBAAqBkC,EAAI6T,GAChF,OAAO1W,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAAS8W,EAAkCjW,EAA2CkC,EAAY6T,GAErG,OADcR,EAAkBrT,GAAIjC,eAAeD,GACtCK,qCAAqC,0BAA0B,EAAMuV,EAAAA,qBAAsB,OAAQ,CAACtV,YAAa,MAAOC,aAAc,mBAAoB,CAACwV,iBAAkBA,IAGvL,SAASG,EAA4B/W,EAAmB+C,EAAY6T,GACvE,MAAM3W,EAAU6W,EAAkC9W,EAAQa,oBAAqBkC,EAAI6T,GACnF,OAAO1W,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAASgX,EAAkCjU,EAAY6T,GAE1D,OADcR,EAAkBrT,GACnB7B,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACwV,iBAAkBA,IAGlJ,SAASK,EAA4BjX,EAAmB+C,EAAY6T,GACvE,MAAM3W,EAAU+W,EAAkCjU,EAAI6T,GACtD,OAAO1W,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASkX,EAAiCnU,EAAY+I,EAAwBqL,EAA4BC,GAE7G,OADchB,EAAkBrT,GACnB7B,qCAAqC,yBAAyB,EAAMmV,EAAAA,iBAAkB,QAAS,CAAClV,YAAa,MAAOC,aAAc,eAAgB,CAAC0K,OAAQA,EAAQqL,UAAWA,EAAWC,oBAAqBA,IAGxN,SAASC,EAA2BrX,EAAmB+C,EAAY+I,EAAwBqL,EAA4BC,GAC1H,MAAMnX,EAAUiX,EAAiCnU,EAAI+I,EAAQqL,EAAWC,GACxE,OAAOlX,EAAAA,EAAAA,IAA2BD,EAASD,u4IC3G/C,SAASsX,EAAc3H,GACnB,IAAInQ,EAAOmQ,EAAY,CAAEC,SAAUD,GAAa,KAChD,OAAO,IAAIjQ,EAAAA,EAAiB,WAAY,UAAW6X,EAAAA,aAAc/X,GAG9D,SAASI,EAAkBC,GAC9B,OAAOyX,IAAgBxX,OAAOD,GAG3B,SAAS2X,EAAmBxX,EAAmBH,GAClD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAAuBD,EAASD,GAGpC,SAASG,EAAkBN,GAC9B,OAAOyX,EAAczX,EAAO+P,UAAUxP,OAAOP,GAG1C,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAAuBD,EAASD,GAGpC,SAASM,EAAkBT,GAC9B,OAAOyX,EAAczX,EAAO+P,UAAUrP,SAGnC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBkP,GAC5B,OAAO2H,EAAc3H,GAAUjP,OAG5B,SAASC,EAAUX,EAAmB2P,GACzC,MAAM1P,EAAUQ,EAAgBkP,GAChC,OAAOzP,EAAAA,EAAAA,IAAuBD,EAASD,GAGpC,SAASY,EAAmBC,GAC/B,OAAOyW,IAAgBxW,eAAeD,GAAqBH,OAGxD,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASmD,EAAkBtC,EAA2C4W,GAEzE,OADcH,IAAgBxW,eAAeD,GAChCK,qCAAqC,UAAU,EAAMqW,EAAAA,aAAc,OAAQ,CAACpW,YAAa,OAAQC,aAAc,WAAY,CAACqW,sBAAuBA,IAG7J,SAASpU,EAAYrD,EAAmByX,GAC3C,MAAMxX,EAAUkD,EAAkBnD,EAAQa,oBAAqB4W,GAC/D,OAAOvX,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASiT,EAAuBpS,EAA2C4W,GAE9E,OADcH,IAAgBxW,eAAeD,GAChCK,qCAAqC,eAAe,EAAMwW,EAAAA,oBAAqB,OAAQ,CAACvW,YAAa,OAAQC,aAAc,kBAAmB,CAACqW,sBAAuBA,IAGhL,SAASpE,EAAiBrT,EAAmByX,GAChD,MAAMxX,EAAUgT,EAAuBjT,EAAQa,oBAAqB4W,GACpE,OAAOvX,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAAS2X,EAA8B9W,EAA2C8O,EAAkBnL,EAAmBoT,EAAmBC,EAAqDC,GAElM,OADcR,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,sBAAsB,EAAM6W,EAAAA,2BAA4B,OAAQ,CAAC5W,YAAa,OAAQC,aAAc,yBAA0B,CAACoD,UAAWA,EAAWoT,UAAWA,EAAWC,wBAAyBA,EAAyBC,4BAA6BA,IAGzS,SAASE,EAAwBhY,EAAmB2P,EAAkBnL,EAAmBoT,EAAmBC,EAAqDC,GACpK,MAAM7X,EAAU0X,EAA8B3X,EAAQa,oBAAqB8O,EAAUnL,EAAWoT,EAAWC,EAAyBC,GACpI,OAAO5X,EAAAA,EAAAA,IAAuCD,EAASD,GAGpD,SAASiY,EAAyDpX,EAA2C8O,EAAkBuD,GAElI,OADcoE,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,iDAAiD,EAAMgX,EAAAA,gDAAiD,OAAQ,CAAC/W,YAAa,OAAQC,aAAc,8CAA+C,CAAC8R,eAAgBA,IAGnQ,SAASiF,EAAmDnY,EAAmB2P,EAAkBuD,GACpG,MAAMjT,EAAUgY,EAAyDjY,EAAQa,oBAAqB8O,EAAUuD,GAChH,OAAOhT,EAAAA,EAAAA,IAA4DD,EAASD,GAGzE,SAASoY,EAAwCvX,EAA2C8O,EAAkBnL,EAAmBqT,GAEpI,OADcP,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,gCAAgC,EAAMmX,EAAAA,mBAAoB,OAAQ,CAAClX,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,EAAWqT,wBAAyBA,IAGvN,SAASS,EAAkCtY,EAAmB2P,EAAkBnL,EAAmBqT,GACtG,MAAM5X,EAAUmY,EAAwCpY,EAAQa,oBAAqB8O,EAAUnL,EAAWqT,GAC1G,OAAO3X,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAASuY,EAA0C1X,EAA2C8O,EAAkBnL,EAAmBgU,GAEtI,OADclB,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,kCAAkC,EAAMmX,EAAAA,mBAAoB,OAAQ,CAAClX,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,EAAWgU,oCAAqCA,IAGrO,SAASC,EAAoCzY,EAAmB2P,EAAkBnL,EAAmBgU,GACxG,MAAMvY,EAAUsY,EAA0CvY,EAAQa,oBAAqB8O,EAAUnL,EAAWgU,GAC5G,OAAOtY,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAAS0Y,EAAoB7X,EAA2C2D,EAAmBmU,EAAsBC,EAAkCtI,GAEtJ,OADcgH,IAAgBxW,eAAeD,GAChCK,qCAAqC,YAAY,EAAMmX,EAAAA,mBAAoB,OAAQ,CAAClX,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,EAAWmU,WAAYA,EAAYC,iBAAkBA,EAAkBtI,UAAWA,IAGjP,SAASuI,EAAc7Y,EAAmBwE,EAAmBmU,EAAsBC,EAAkCtI,GACxH,MAAMrQ,EAAUyY,EAAoB1Y,EAAQa,oBAAqB2D,EAAWmU,EAAYC,EAAkBtI,GAC1G,OAAOpQ,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAAS8Y,EAAmBjY,EAA2C2D,EAAmB8L,EAAmBqI,GAEhH,OADcrB,IAAgBxW,eAAeD,GAChCK,qCAAqC,WAAW,EAAM6X,EAAAA,2BAA4B,OAAQ,CAAC5X,YAAa,MAAOC,aAAc,yBAA0B,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWqI,WAAYA,IAG1N,SAASK,EAAahZ,EAAmBwE,EAAmB8L,EAAmBqI,GAClF,MAAM1Y,EAAU6Y,EAAmB9Y,EAAQa,oBAAqB2D,EAAW8L,EAAWqI,GACtF,OAAOzY,EAAAA,EAAAA,IAAuCD,EAASD,GAGpD,SAASiZ,EAAkCpY,EAA2C8X,EAAsBtH,GAE/G,OADciG,IAAgBxW,eAAeD,GAChCK,qCAAqC,0BAA0B,EAAMgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,OAAQC,aAAc,uBAAwB,CAACuX,WAAYA,EAAYtH,WAAYA,IAGlN,SAAS8H,EAA4BnZ,EAAmB2Y,EAAsBtH,GACjF,MAAMpR,EAAUgZ,EAAkCjZ,EAAQa,oBAAqB8X,EAAYtH,GAC3F,OAAOnR,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASoZ,EAAkCvY,EAA2C2D,EAAmB8L,EAAmBG,EAAoB4I,GAEnJ,OADc/B,IAAgBxW,eAAeD,GAChCK,qCAAqC,0BAA0B,EAAMgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,MAAOC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWG,WAAYA,EAAY4I,mBAAoBA,IAGrQ,SAASC,EAA4BtZ,EAAmBwE,EAAmB8L,EAAmBG,EAAoB4I,GACrH,MAAMpZ,EAAUmZ,EAAkCpZ,EAAQa,oBAAqB2D,EAAW8L,EAAWG,EAAY4I,GACjH,OAAOnZ,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASuZ,EAA8B1Y,EAA2C2D,EAAmB8L,EAAmBkG,EAA4B6C,GAEvJ,OADc/B,IAAgBxW,eAAeD,GAChCK,qCAAqC,sBAAsB,EAAMgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,MAAOC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWkG,WAAYA,EAAY6C,mBAAoBA,IAGjQ,SAASG,EAAwBxZ,EAAmBwE,EAAmB8L,EAAmBkG,EAA4B6C,GACzH,MAAMpZ,EAAUsZ,EAA8BvZ,EAAQa,oBAAqB2D,EAAW8L,EAAWkG,EAAY6C,GAC7G,OAAOnZ,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASyZ,EAAoC5Y,EAA2CqS,GAE3F,OADcoE,IAAgBxW,eAAeD,GAChCK,qCAAqC,4BAA4B,EAAMwW,EAAAA,oBAAqB,OAAQ,CAACvW,YAAa,OAAQC,aAAc,kBAAmB,CAAC8R,eAAgBA,IAGtL,SAASwG,EAA8B1Z,EAAmBkT,GAC7D,MAAMjT,EAAUwZ,EAAoCzZ,EAAQa,oBAAqBqS,GACjF,OAAOhT,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASiF,EAA8BpE,EAA2C8X,EAAsBgB,EAA0BlV,GAErI,OADc6S,IAAgBxW,eAAeD,GAChCK,qCAAqC,sBAAsB,EAAM0Y,EAAAA,4BAA6B,OAAQ,CAACzY,YAAa,OAAQC,aAAc,0BAA2B,CAACuX,WAAYA,EAAYgB,QAASA,EAASlV,aAAcA,IAGxO,SAASa,EAAwBtF,EAAmB2Y,EAAsBgB,EAA0BlV,GACvG,MAAMxE,EAAUgF,EAA8BjF,EAAQa,oBAAqB8X,EAAYgB,EAASlV,GAChG,OAAOvE,EAAAA,EAAAA,IAAwCD,EAASD,GAGrD,SAAS6Z,EAAmBhZ,EAA2C4W,GAE1E,OADcH,IAAgBxW,eAAeD,GAChCK,qCAAqC,WAAW,EAAMqW,EAAAA,aAAc,OAAQ,CAACpW,YAAa,MAAOC,aAAc,WAAY,CAACqW,sBAAuBA,IAG7J,SAASqC,EAAa9Z,EAAmByX,GAC5C,MAAMxX,EAAU4Z,EAAmB7Z,EAAQa,oBAAqB4W,GAChE,OAAOvX,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAAS+Z,EAAoCC,GAEhD,OADc1C,IACDpW,qCAAqC,4BAA4B,EAAM+Y,EAAAA,gCAAiC,QAAS,CAAC9Y,YAAa,MAAOC,aAAc,8BAA+B,CAAC4Y,6BAA8BA,IAG5N,SAASE,EAA8Bla,EAAmBga,GAC7D,MAAM/Z,EAAU8Z,EAAoCC,GACpD,OAAO9Z,EAAAA,EAAAA,IAA0CD,EAASD,GAGvD,SAASma,EAA+BtZ,EAA2C4W,GAEtF,OADcH,IAAgBxW,eAAeD,GAChCK,qCAAqC,uBAAuB,EAAMqW,EAAAA,aAAc,OAAQ,CAACpW,YAAa,OAAQC,aAAc,WAAY,CAACqW,sBAAuBA,IAG1K,SAAS2C,EAAyBpa,EAAmByX,GACxD,MAAMxX,EAAUka,EAA+Bna,EAAQa,oBAAqB4W,GAC5E,OAAOvX,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASqa,EAA8B/J,EAAmBgK,EAAcC,GAE3E,OADcjD,IACDpW,qCAAqC,sBAAsB,EAAMsZ,EAAAA,2BAA4B,QAAS,CAACrZ,YAAa,OAAQC,aAAc,yBAA0B,CAACkP,UAAWA,EAAWgK,KAAMA,EAAMC,IAAKA,IAGtN,SAASE,EAAwBza,EAAmBsQ,EAAmBgK,EAAcC,GACxF,MAAMta,EAAUoa,EAA8B/J,EAAWgK,EAAMC,GAC/D,OAAOra,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAAS0a,EAAiC7Z,EAA2C8X,EAAsBgC,GAE9G,OADcrD,IAAgBxW,eAAeD,GAChCK,qCAAqC,yBAAyB,EAAM0Z,EAAAA,6BAA8B,OAAQ,CAACzZ,YAAa,OAAQC,aAAc,2BAA4B,CAACuX,WAAYA,EAAYgC,8BAA+BA,IAG5O,SAASE,EAA2B7a,EAAmB2Y,EAAsBgC,GAChF,MAAM1a,EAAUya,EAAiC1a,EAAQa,oBAAqB8X,EAAYgC,GAC1F,OAAOza,EAAAA,EAAAA,IAAyCD,EAASD,GAGtD,SAAS8a,EAAkCja,EAA2Cka,GAEzF,OADczD,IAAgBxW,eAAeD,GAChCK,qCAAqC,0BAA0B,EAAM8Z,EAAAA,wBAAyB,OAAQ,CAAC7Z,YAAa,MAAOC,aAAc,sBAAuB,CAAC2Z,yBAA0BA,IAGrM,SAASE,GAA4Bjb,EAAmB+a,GAC3D,MAAM9a,EAAU6a,EAAkC9a,EAAQa,oBAAqBka,GAC/E,OAAO7a,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAASkb,GAA8Bra,GAE1C,OADcyW,IAAgBxW,eAAeD,GAChCK,qCAAqC,sBAAsB,EAAO,GAAI,OAAQ,CAACC,YAAa,OAAQC,aAAc,IAAK,IAGjI,SAAS+Z,GAAwBnb,GACpC,MAAMC,EAAUib,GAA8Blb,EAAQa,qBACtD,OAAOX,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASob,GAA+Bva,GAE3C,OADcyW,IAAgBxW,eAAeD,GAChCK,qCAAqC,uBAAuB,EAAO,GAAI,OAAQ,CAACC,YAAa,OAAQC,aAAc,IAAK,IAGlI,SAASia,GAAyBrb,GACrC,MAAMC,EAAUmb,GAA+Bpb,EAAQa,qBACvD,OAAOX,EAAAA,EAAAA,IAAwBD,EAASD,GAGrC,SAASsb,GAA6Bza,EAA2C8X,GAEpF,OADcrB,IAAgBxW,eAAeD,GAChCK,qCAAqC,qBAAqB,EAAMqa,EAAAA,mBAAoB,OAAQ,CAACpa,YAAa,OAAQC,aAAc,iBAAkB,CAACuX,WAAYA,IAGzK,SAAS6C,GAAuBxb,EAAmB2Y,GACtD,MAAM1Y,EAAUqb,GAA6Btb,EAAQa,oBAAqB8X,GAC1E,OAAOzY,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAASyb,GAAyC5a,EAA2C8X,GAEhG,OADcrB,IAAgBxW,eAAeD,GAChCK,qCAAqC,iCAAiC,EAAMwa,EAAAA,+BAAgC,OAAQ,CAACva,YAAa,OAAQC,aAAc,6BAA8B,CAACuX,WAAYA,IAG7M,SAASgD,GAAmC3b,EAAmB2Y,GAClE,MAAM1Y,EAAUwb,GAAyCzb,EAAQa,oBAAqB8X,GACtF,OAAOzY,EAAAA,EAAAA,IAA2CD,EAASD,GAGxD,SAAS4b,GAAoCC,GAEhD,OADcvE,IACDpW,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACya,WAAYA,IAG9I,SAASC,GAA8B9b,EAAmB6b,GAC7D,MAAM5b,EAAU2b,GAAoCC,GACpD,OAAO3b,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS+b,GAAqCC,GAEjD,OADc1E,IACDpW,qCAAqC,6BAA6B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4a,UAAWA,IAG9I,SAASC,GAA+Bjc,EAAmBgc,GAC9D,MAAM/b,EAAU8b,GAAqCC,GACrD,OAAO9b,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASkc,GAAkCC,GAE9C,OADc7E,IACDpW,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC+a,QAASA,IAGzI,SAASC,GAA4Bpc,EAAmBmc,GAC3D,MAAMlc,EAAUic,GAAkCC,GAClD,OAAOjc,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASqc,GAAyCC,GAErD,OADchF,IACDpW,qCAAqC,iCAAiC,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACkb,mBAAoBA,IAG3J,SAASC,GAAmCvc,EAAmBsc,GAClE,MAAMrc,EAAUoc,GAAyCC,GACzD,OAAOpc,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASwc,GAAuC3b,EAA2CyP,GAE9F,OADcgH,IAAgBxW,eAAeD,GAChCK,qCAAqC,+BAA+B,EAAMub,EAAAA,sBAAuB,OAAQ,CAACtb,YAAa,OAAQC,aAAc,oBAAqB,CAACkP,UAAWA,IAGxL,SAASoM,GAAiC1c,EAAmBsQ,GAChE,MAAMrQ,EAAUuc,GAAuCxc,EAAQa,oBAAqByP,GACpF,OAAOpQ,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAAS2c,GAAqB9b,EAA2C+b,EAAuBC,EAAqCC,EAAwBC,EAAsCC,EAAoCC,GAE1O,OADc3F,IAAgBxW,eAAeD,GAChCK,qCAAqC,aAAa,EAAMgc,EAAAA,kBAAmB,OAAQ,CAAC/b,YAAa,OAAQC,aAAc,gBAAiB,CAACwb,OAAQA,EAAQC,qBAAsBA,EAAsBC,QAASA,EAASC,sBAAuBA,EAAuBC,oBAAqBA,EAAqBC,SAAUA,IAGnU,SAASE,GAAend,EAAmB4c,EAAuBC,EAAqCC,EAAwBC,EAAsCC,EAAoCC,GAC5M,MAAMhd,EAAU0c,GAAqB3c,EAAQa,oBAAqB+b,EAAQC,EAAsBC,EAASC,EAAuBC,EAAqBC,GACrJ,OAAO/c,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASod,GAAoCvc,EAA2Cwc,EAAmB7Y,GAE9G,OADc8S,IAAgBxW,eAAeD,GAChCK,qCAAqC,4BAA4B,EAAMoc,EAAAA,8BAA+B,OAAQ,CAACnc,YAAa,OAAQC,aAAc,4BAA6B,CAACic,QAASA,EAAS7Y,UAAWA,IAGvN,SAAS+Y,GAA8Bvd,EAAmBqd,EAAmB7Y,GAChF,MAAMvE,EAAUmd,GAAoCpd,EAAQa,oBAAqBwc,EAAS7Y,GAC1F,OAAOtE,EAAAA,EAAAA,IAA0CD,EAASD,GAGvD,SAASwd,GAA2B3c,EAA2C4c,EAAwC9E,EAAsB+E,EAAkBrM,EAA4BsM,EAA2DC,EAA0DC,EAA2CC,GAE9V,OADcxG,IAAgBxW,eAAeD,GAChCK,qCAAqC,mBAAmB,EAAMgc,EAAAA,kBAAmB,OAAQ,CAAC/b,YAAa,OAAQC,aAAc,gBAAiB,CAACqc,cAAeA,EAAe9E,WAAYA,EAAY+E,WAAYA,EAAYrM,WAAYA,EAAYsM,wBAAyBA,EAAyBC,wCAAyCA,EAAyCC,yBAA0BA,EAA0BC,oCAAqCA,IAG5d,SAASC,GAAqB/d,EAAmByd,EAAwC9E,EAAsB+E,EAAkBrM,EAA4BsM,EAA2DC,EAA0DC,EAA2CC,GAChU,MAAM7d,EAAUud,GAA2Bxd,EAAQa,oBAAqB4c,EAAe9E,EAAY+E,EAAYrM,EAAYsM,EAAyBC,EAAyCC,EAA0BC,GACvN,OAAO5d,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASge,GAAqCnd,EAA2C8O,EAAkBnL,EAAmByZ,EAAgBC,GAEjJ,OADc5G,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,6BAA6B,EAAMid,EAAAA,sBAAuB,OAAQ,CAAChd,YAAa,OAAQC,aAAc,oBAAqB,CAACoD,UAAWA,EAAWyZ,OAAQA,EAAQC,mBAAoBA,IAGrO,SAASE,GAA+Bpe,EAAmB2P,EAAkBnL,EAAmByZ,EAAgBC,GACnH,MAAMje,EAAU+d,GAAqChe,EAAQa,oBAAqB8O,EAAUnL,EAAWyZ,EAAQC,GAC/G,OAAOhe,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAASqe,GAA6C7Z,EAAmB8Z,GAE5E,OADchH,IACDpW,qCAAqC,qCAAqC,EAAMid,EAAAA,sBAAuB,QAAS,CAAChd,YAAa,OAAQC,aAAc,oBAAqB,CAACoD,UAAWA,EAAW8Z,kBAAmBA,IAG7N,SAASC,GAAuCve,EAAmBwE,EAAmB8Z,GACzF,MAAMre,EAAUoe,GAA6C7Z,EAAW8Z,GACxE,OAAOpe,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASwe,GAAgC3d,EAA2C2D,EAAmB8L,EAAmBkG,EAA4BiI,EAA2BC,GAEpL,OADcpH,IAAgBxW,eAAeD,GAChCK,qCAAqC,wBAAwB,EAAOyd,EAAAA,sBAAuB,OAAQ,CAACxd,YAAa,OAAQC,aAAc,oBAAqB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWkG,WAAYA,EAAYiI,UAAWA,EAAWC,UAAWA,IAG5Q,SAASE,GAA0B5e,EAAmBwE,EAAmB8L,EAAmBkG,EAA4BiI,EAA2BC,GACtJ,MAAMze,EAAUue,GAAgCxe,EAAQa,oBAAqB2D,EAAW8L,EAAWkG,EAAYiI,EAAWC,GAC1H,OAAOxe,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAAS6e,GAA4Bhe,EAA2C2D,EAAmB8L,EAAmBwO,GAEzH,OADcxH,IAAgBxW,eAAeD,GAChCK,qCAAqC,oBAAoB,EAAM6d,EAAAA,wBAAyB,OAAQ,CAAC5d,YAAa,OAAQC,aAAc,sBAAuB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAW0O,oBAAqBF,IAGvO,SAASG,GAAsBjf,EAAmBwE,EAAmB8L,EAAmBwO,GAC3F,MAAM7e,EAAU4e,GAA4B7e,EAAQa,oBAAqB2D,EAAW8L,EAAWwO,GAC/F,OAAO5e,EAAAA,EAAAA,IAAoCD,EAASD,GAGjD,SAASkf,GAA6Bre,EAA2C8O,GAEpF,OADc2H,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,qBAAqB,EAAOie,EAAAA,mBAAoB,OAAQ,CAAChe,YAAa,OAAQC,aAAc,iBAAkB,IAG7J,SAASge,GAAuBpf,EAAmB2P,GACtD,MAAM1P,EAAUif,GAA6Blf,EAAQa,oBAAqB8O,GAC1E,OAAOzP,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAASqf,GAA4Bxe,EAA2C2D,EAAmB8L,EAAmBG,GAEzH,OADc6G,IAAgBxW,eAAeD,GAChCK,qCAAqC,oBAAoB,EAAOgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,OAAQC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWG,WAAYA,IAGjO,SAAS6O,GAAsBtf,EAAmBwE,EAAmB8L,EAAmBG,GAC3F,MAAMxQ,EAAUof,GAA4Brf,EAAQa,oBAAqB2D,EAAW8L,EAAWG,GAC/F,OAAOvQ,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASuf,GAAwB1e,EAA2C2D,EAAmB8L,EAAmBkG,GAErH,OADcc,IAAgBxW,eAAeD,GAChCK,qCAAqC,gBAAgB,EAAOgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,OAAQC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAWkG,WAAYA,IAG7N,SAASgJ,GAAkBxf,EAAmBwE,EAAmB8L,EAAmBkG,GACvF,MAAMvW,EAAUsf,GAAwBvf,EAAQa,oBAAqB2D,EAAW8L,EAAWkG,GAC3F,OAAOtW,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASyf,GAA4B5e,EAA2CqS,GAEnF,OADcoE,IAAgBxW,eAAeD,GAChCK,qCAAqC,oBAAoB,EAAMgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,OAAQC,aAAc,uBAAwB,CAAC8R,eAAgBA,IAGxL,SAASwM,GAAsB1f,EAAmBkT,GACrD,MAAMjT,EAAUwf,GAA4Bzf,EAAQa,oBAAqBqS,GACzE,OAAOhT,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAAS2f,GAA8B9e,EAA2C2D,EAAmBob,EAAqDtP,GAE7J,OADcgH,IAAgBxW,eAAeD,GAChCK,qCAAqC,sBAAsB,EAAMmX,EAAAA,mBAAoB,OAAQ,CAAClX,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,EAAWob,qBAAsBA,EAAsBtP,UAAWA,IAG3O,SAASuP,GAAwB7f,EAAmBwE,EAAmBob,EAAqDtP,GAC/H,MAAMrQ,EAAU0f,GAA8B3f,EAAQa,oBAAqB2D,EAAWob,EAAsBtP,GAC5G,OAAOpQ,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAAS8f,GAAiCjf,EAA2CyP,EAAmBG,GAE3G,OADc6G,IAAgBxW,eAAeD,GAChCK,qCAAqC,yBAAyB,EAAOwW,EAAAA,oBAAqB,OAAQ,CAACvW,YAAa,OAAQC,aAAc,kBAAmB,CAACkP,UAAWA,EAAWG,WAAYA,IAGtM,SAASsP,GAA2B/f,EAAmBsQ,EAAmBG,GAC7E,MAAMxQ,EAAU6f,GAAiC9f,EAAQa,oBAAqByP,EAAWG,GACzF,OAAOvQ,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASggB,GAA6Bnf,EAA2CyP,EAAmBkG,GAEvG,OADcc,IAAgBxW,eAAeD,GAChCK,qCAAqC,qBAAqB,EAAOwW,EAAAA,oBAAqB,OAAQ,CAACvW,YAAa,OAAQC,aAAc,kBAAmB,CAACkP,UAAWA,EAAWkG,WAAYA,IAGlM,SAASyJ,GAAuBjgB,EAAmBsQ,EAAmBkG,GACzE,MAAMvW,EAAU+f,GAA6BhgB,EAAQa,oBAAqByP,EAAWkG,GACrF,OAAOtW,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASkgB,GAAsCrf,EAA2CyP,EAAmBG,EAAoB0P,EAAmBC,GAEvJ,OADc9I,IAAgBxW,eAAeD,GAChCK,qCAAqC,8BAA8B,EAAOmf,EAAAA,yBAA0B,OAAQ,CAAClf,YAAa,OAAQC,aAAc,uBAAwB,CAACkP,UAAWA,EAAWG,WAAYA,EAAY0P,UAAWA,EAAWC,mBAAoBA,IAG3Q,SAASE,GAAgCtgB,EAAmBsQ,EAAmBG,EAAoB0P,EAAmBC,GACzH,MAAMngB,EAAUigB,GAAsClgB,EAAQa,oBAAqByP,EAAWG,EAAY0P,EAAWC,GACrH,OAAOlgB,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASugB,GAAkC1f,EAA2CyP,EAAmBkG,EAA2B2J,EAAmBC,GAE1J,OADc9I,IAAgBxW,eAAeD,GAChCK,qCAAqC,0BAA0B,EAAOmf,EAAAA,yBAA0B,OAAQ,CAAClf,YAAa,OAAQC,aAAc,uBAAwB,CAACkP,UAAWA,EAAWkG,WAAYA,EAAY2J,UAAWA,EAAWC,mBAAoBA,IAGvQ,SAASI,GAA4BxgB,EAAmBsQ,EAAmBkG,EAA2B2J,EAAmBC,GAC5H,MAAMngB,EAAUsgB,GAAkCvgB,EAAQa,oBAAqByP,EAAWkG,EAAY2J,EAAWC,GACjH,OAAOlgB,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASygB,GAAuC5f,GAEnD,OADcyW,IAAgBxW,eAAeD,GAChCK,qCAAqC,+BAA+B,EAAOub,EAAAA,sBAAuB,OAAQ,CAACtb,YAAa,OAAQC,aAAc,oBAAqB,IAG7K,SAASsf,GAAiC1gB,GAC7C,MAAMC,EAAUwgB,GAAuCzgB,EAAQa,qBAC/D,OAAOX,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAAS2gB,GAAmBhR,EAAkBnL,GAEjD,OADc8S,EAAc3H,GACfzO,qCAAqC,WAAW,EAAOmX,EAAAA,mBAAoB,QAAS,CAAClX,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,IAGhK,SAASoc,GAAa5gB,EAAmB2P,EAAkBnL,GAC9D,MAAMvE,EAAU0gB,GAAmBhR,EAAUnL,GAC7C,OAAOtE,EAAAA,EAAAA,IAA6BD,EAASD,GAG1C,SAAS6gB,GAA8BhgB,EAA2C8O,EAAkBnL,EAAmB8L,GAE1H,OADcgH,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,sBAAsB,EAAO4f,EAAAA,oBAAqB,OAAQ,CAAC3f,YAAa,OAAQC,aAAc,kBAAmB,CAACoD,UAAWA,EAAW8L,UAAWA,IAGlM,SAASyQ,GAAwB/gB,EAAmB2P,EAAkBnL,EAAmB8L,GAC5F,MAAMrQ,EAAU4gB,GAA8B7gB,EAAQa,oBAAqB8O,EAAUnL,EAAW8L,GAChG,OAAOpQ,EAAAA,EAAAA,IAAgCD,EAASD,GAG7C,SAASghB,GAA6BngB,EAA2C8O,EAAkBnL,EAAmB8L,GAEzH,OADcgH,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,qBAAqB,EAAO+f,EAAAA,mBAAoB,OAAQ,CAAC9f,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,EAAW8L,UAAWA,IAG/L,SAAS4Q,GAAuBlhB,EAAmB2P,EAAkBnL,EAAmB8L,GAC3F,MAAMrQ,EAAU+gB,GAA6BhhB,EAAQa,oBAAqB8O,EAAUnL,EAAW8L,GAC/F,OAAOpQ,EAAAA,EAAAA,IAA+BD,EAASD,GAG5C,SAASmhB,GAAyBtgB,EAA2C8O,EAAkBnL,EAAmB8L,GAErH,OADcgH,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,iBAAiB,EAAOkgB,EAAAA,eAAgB,OAAQ,CAACjgB,YAAa,OAAQC,aAAc,aAAc,CAACoD,UAAWA,EAAW8L,UAAWA,IAGnL,SAAS+Q,GAAmBrhB,EAAmB2P,EAAkBnL,EAAmB8L,GACvF,MAAMrQ,EAAUkhB,GAAyBnhB,EAAQa,oBAAqB8O,EAAUnL,EAAW8L,GAC3F,OAAOpQ,EAAAA,EAAAA,IAA2BD,EAASD,GAGxC,SAASshB,GAAgCzgB,EAA2C8O,EAAkBnL,GAEzG,OADc8S,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,wBAAwB,EAAOid,EAAAA,sBAAuB,OAAQ,CAAChd,YAAa,OAAQC,aAAc,oBAAqB,CAACoD,UAAWA,IAGlL,SAAS+c,GAA0BvhB,EAAmB2P,EAAkBnL,GAC3E,MAAMvE,EAAUqhB,GAAgCthB,EAAQa,oBAAqB8O,EAAUnL,GACvF,OAAOtE,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAASwhB,GAA6B3gB,EAA2C8O,EAAkBnL,EAAmByZ,GAEzH,OADc3G,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,qBAAqB,EAAOid,EAAAA,sBAAuB,OAAQ,CAAChd,YAAa,OAAQC,aAAc,oBAAqB,CAACoD,UAAWA,EAAWyZ,OAAQA,IAGlM,SAASwD,GAAuBzhB,EAAmB2P,EAAkBnL,EAAmByZ,GAC3F,MAAMhe,EAAUuhB,GAA6BxhB,EAAQa,oBAAqB8O,EAAUnL,EAAWyZ,GAC/F,OAAO/d,EAAAA,EAAAA,IAAkCD,EAASD,GAG/C,SAAS0hB,GAA+B7gB,GAE3C,OADcyW,IAAgBxW,eAAeD,GAChCK,qCAAqC,uBAAuB,EAAOygB,EAAAA,yBAA0B,OAAQ,CAACxgB,YAAa,OAAQC,aAAc,uBAAwB,IAG3K,SAASwgB,GAAyB5hB,GACrC,MAAMC,EAAUyhB,GAA+B1hB,EAAQa,qBACvD,OAAOX,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAAS6hB,GAA4BhhB,EAA2C8O,EAAkBnL,EAAmB8L,GAExH,OADcgH,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,oBAAoB,EAAOygB,EAAAA,yBAA0B,OAAQ,CAACxgB,YAAa,OAAQC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,IAG1M,SAASwR,GAAsB9hB,EAAmB2P,EAAkBnL,EAAmB8L,GAC1F,MAAMrQ,EAAU4hB,GAA4B7hB,EAAQa,oBAAqB8O,EAAUnL,EAAW8L,GAC9F,OAAOpQ,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAAS+hB,GAA8BlhB,EAA2C8O,EAAkBnL,EAAmB8L,EAAmB0R,GAE7I,OADc1K,EAAc3H,GAAU7O,eAAeD,GACxCK,qCAAqC,sBAAsB,EAAOgY,EAAAA,yBAA0B,OAAQ,CAAC/X,YAAa,OAAQC,aAAc,uBAAwB,CAACoD,UAAWA,EAAW8L,UAAWA,EAAW0R,eAAgBA,IAGvO,SAASC,GAAwBjiB,EAAmB2P,EAAkBnL,EAAmB8L,EAAmB0R,GAC/G,MAAM/hB,EAAU8hB,GAA8B/hB,EAAQa,oBAAqB8O,EAAUnL,EAAW8L,EAAW0R,GAC3G,OAAO9hB,EAAAA,EAAAA,IAAqCD,EAASD,GAGlD,SAASkiB,GAAmCrhB,EAA2CyP,EAAmB6R,GAE7G,OADc7K,IAAgBxW,eAAeD,GAChCK,qCAAqC,2BAA2B,EAAMkhB,EAAAA,8BAA+B,OAAQ,CAACjhB,YAAa,OAAQC,aAAc,4BAA6B,CAACkP,UAAWA,EAAW6R,sBAAuBA,IAGtO,SAASE,GAA6BriB,EAAmBsQ,EAAmB6R,GAC/E,MAAMliB,EAAUiiB,GAAmCliB,EAAQa,oBAAqByP,EAAW6R,GAC3F,OAAOjiB,EAAAA,EAAAA,IAA0CD,EAASD,GAGvD,SAASsiB,GAAoB3S,EAAkBoN,EAAuCC,GAEzF,OADc1F,EAAc3H,GACfzO,qCAAqC,YAAY,EAAOgc,EAAAA,kBAAmB,QAAS,CAAC/b,YAAa,OAAQC,aAAc,gBAAiB,CAAC2b,sBAAuBA,EAAuBC,oBAAqBA,IAGvN,SAASuF,GAAcviB,EAAmB2P,EAAkBoN,EAAuCC,GACtG,MAAM/c,EAAUqiB,GAAoB3S,EAAUoN,EAAuBC,GACrE,OAAO9c,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASwiB,GAAiC7S,EAAkBoN,EAAuCC,EAAqCjZ,EAA+B4Z,GAE1K,OADcrG,EAAc3H,GACfzO,qCAAqC,yBAAyB,EAAMgc,EAAAA,kBAAmB,QAAS,CAAC/b,YAAa,MAAOC,aAAc,gBAAiB,CAAC2b,sBAAuBA,EAAuBC,oBAAqBA,EAAqBjZ,cAAeA,EAAe4Z,wBAAyBA,IAG9S,SAAS8E,GAA2BziB,EAAmB2P,EAAkBoN,EAAuCC,EAAqCjZ,EAA+B4Z,GACvL,MAAM1d,EAAUuiB,GAAiC7S,EAAUoN,EAAuBC,EAAqBjZ,EAAe4Z,GACtH,OAAOzd,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAAS0iB,GAAoDC,EAA+CC,GAE/G,OADctL,IACDpW,qCAAqC,4CAA4C,EAAM2hB,EAAAA,0CAA2C,QAAS,CAAC1hB,YAAa,OAAQC,aAAc,wCAAyC,CAACuhB,kBAAmBA,EAAmBC,iBAAkBA,IAG3R,SAASE,GAA8C9iB,EAAmB2iB,EAA+CC,GAC5H,MAAM3iB,EAAUyiB,GAAoDC,EAAmBC,GACvF,OAAO1iB,EAAAA,EAAAA,IAAoDD,EAASD,GAGjE,SAAS+iB,GAAoC7P,GAEhD,OADcoE,IACDpW,qCAAqC,4BAA4B,EAAM2hB,EAAAA,0CAA2C,QAAS,CAAC1hB,YAAa,OAAQC,aAAc,wCAAyC,CAAC8R,eAAgBA,IAGnO,SAAS8P,GAA8BhjB,EAAmBkT,GAC7D,MAAMjT,EAAU8iB,GAAoC7P,GACpD,OAAOhT,EAAAA,EAAAA,IAAoDD,EAASD,8EC7nBxE,SAASijB,EAAqBlgB,GAC1B,IAAIvD,EAAOuD,EAAM,CAAEC,GAAID,GAAO,KAC9B,OAAO,IAAIrD,EAAAA,EAAiB,kBAAmB,iBAAkBwjB,EAAAA,oBAAqB1jB,GAqDnF,SAAS2jB,EAAiBnjB,EAAmB+C,EAAYqgB,GAC5D,MAAMnjB,EANH,SAAgCY,EAA2CkC,EAAYqgB,GAE1F,OADcH,EAAqBlgB,GAAIjC,eAAeD,GACzCK,qCAAqC,eAAe,EAAMmiB,EAAAA,wBAAyB,OAAQ,CAACliB,YAAa,OAAQC,aAAc,sBAAuB,CAACgiB,uBAAwBA,IAI5KE,CAAuBtjB,EAAQa,oBAAqBkC,EAAIqgB,GACxE,OAAOljB,EAAAA,EAAAA,IAAoCD,EAASD,quFCzDxD,SAASujB,EAAiBxgB,GACtB,IAAIvD,EAAOuD,EAAM,CAAEC,GAAID,GAAO,KAC9B,OAAO,IAAIrD,EAAAA,EAAiB,cAAe,aAAckE,EAAAA,gBAAiBpE,GAGvE,SAASI,EAAkBC,GAC9B,OAAO0jB,IAAmBzjB,OAAOD,GAG9B,SAAS2jB,EAAsBxjB,EAAmBH,GACrD,MAAMI,EAAUL,EAAkBC,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASG,EAAkBN,GAC9B,OAAO0jB,EAAiB1jB,EAAOmD,IAAI5C,OAAOP,GAGvC,SAASQ,EAAYL,EAAmBH,GAC3C,MAAMI,EAAUE,EAAkBN,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASM,EAAkBT,GAC9B,OAAO0jB,EAAiB1jB,EAAOmD,IAAIzC,SAGhC,SAASC,EAAYR,EAAmBH,GAC3C,MAAMI,EAAUK,EAAkBT,GAClC,OAAOK,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASS,EAAgBsC,GAC5B,OAAOwgB,EAAiBxgB,GAAIrC,OAGzB,SAASC,EAAUX,EAAmB+C,GACzC,MAAM9C,EAAUQ,EAAgBsC,GAChC,OAAO7C,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASY,EAAmBC,GAC/B,OAAO0iB,IAAmBziB,eAAeD,GAAqBH,OAG3D,SAASK,EAAaf,GACzB,MAAMC,EAAUW,EAAmBZ,EAAQa,qBAC3C,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASmD,EAAkBtC,EAA2C4iB,GAEzE,OADcF,IAAmBziB,eAAeD,GACnCK,qCAAqC,UAAU,EAAM0C,EAAAA,gBAAiB,OAAQ,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACqiB,yBAA0BA,IAGtK,SAASpgB,EAAYrD,EAAmByjB,GAC3C,MAAMxjB,EAAUkD,EAAkBnD,EAAQa,oBAAqB4iB,GAC/D,OAAOvjB,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAAS0jB,EAA8C7iB,EAA2CgK,GAErG,OADc0Y,IAAmBziB,eAAeD,GACnCK,qCAAqC,sCAAsC,EAAM0C,EAAAA,gBAAiB,OAAQ,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACyJ,UAAWA,IAGnL,SAAS8Y,EAAwC3jB,EAAmB6K,GACvE,MAAM5K,EAAUyjB,EAA8C1jB,EAAQa,oBAAqBgK,GAC3F,OAAO3K,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAAS4jB,EAAwB/iB,EAA2CgjB,GAE/E,OADcN,IAAmBziB,eAAeD,GACnCK,qCAAqC,gBAAgB,EAAM0C,EAAAA,gBAAiB,OAAQ,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACyiB,oBAAqBA,IAGvK,SAASC,EAAkB9jB,EAAmB6jB,GACjD,MAAM5jB,EAAU2jB,EAAwB5jB,EAAQa,oBAAqBgjB,GACrE,OAAO3jB,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAAS+jB,EAA+BljB,EAA2CmjB,GAEtF,OADcT,IAAmBziB,eAAeD,GACnCK,qCAAqC,uBAAuB,EAAM+iB,EAAAA,qBAAsB,OAAQ,CAAC9iB,YAAa,OAAQC,aAAc,mBAAoB,CAAC4iB,8BAA+BA,IAGlM,SAASE,EAAyBlkB,EAAmBgkB,GACxD,MAAM/jB,EAAU8jB,EAA+B/jB,EAAQa,oBAAqBmjB,GAC5E,OAAO9jB,EAAAA,EAAAA,IAAiCD,EAASD,GAG9C,SAASmkB,EAAuBtjB,EAA2CkC,EAAY4F,GAE1F,OADc4a,EAAiBxgB,GAAIjC,eAAeD,GACrCK,qCAAqC,eAAe,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAACuH,yBAA0BA,IAGrK,SAASyb,EAAiBpkB,EAAmB+C,EAAY4F,GAC5D,MAAM1I,EAAUkkB,EAAuBnkB,EAAQa,oBAAqBkC,EAAI4F,GACxE,OAAOzI,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASqkB,EAAuBnR,EAA+CoR,GAElF,OADcf,IACDriB,qCAAqC,eAAe,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC8R,eAAgBA,EAAgBoR,mBAAoBA,IAGzK,SAASC,EAAiBvkB,EAAmBkT,EAA+CoR,GAC/F,MAAMrkB,EAAUokB,EAAuBnR,EAAgBoR,GACvD,OAAOpkB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASwkB,EAA2B3jB,EAA2CkC,EAAY0hB,EAA4B9b,GAE1H,OADc4a,EAAiBxgB,GAAIjC,eAAeD,GACrCK,qCAAqC,mBAAmB,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAACsjB,iBAAkBD,EAAkB9b,yBAA0BA,IAG7M,SAASgc,EAAqB3kB,EAAmB+C,EAAY0hB,EAA4B9b,GAC5F,MAAM1I,EAAUukB,EAA2BxkB,EAAQa,oBAAqBkC,EAAI0hB,EAAkB9b,GAC9F,OAAOzI,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAAS4kB,EAA0B/jB,EAA2CgK,EAA2Bga,EAAkCC,GAE9I,OADcvB,IAAmBziB,eAAeD,GACnCK,qCAAqC,kBAAkB,EAAM0C,EAAAA,gBAAiB,OAAQ,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACyJ,UAAWA,EAAWga,iBAAkBA,EAAkBC,gBAAiBA,IAG/N,SAASC,EAAoB/kB,EAAmB6K,EAA2Bga,EAAkCC,GAChH,MAAM7kB,EAAU2kB,EAA0B5kB,EAAQa,oBAAqBgK,EAAWga,EAAkBC,GACpG,OAAO5kB,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASglB,EAA+C9b,EAA8BuJ,GAEzF,OADc8Q,IACDriB,qCAAqC,uCAAuC,EAAO0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAAC8H,cAAeA,EAAeuJ,oBAAqBA,IAG9N,SAASwS,EAAyCjlB,EAAmBkJ,EAA8BuJ,GACtG,MAAMxS,EAAU+kB,EAA+C9b,EAAeuJ,GAC9E,OAAOvS,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASklB,EAAyC/Y,GAErD,OADcoX,IACDriB,qCAAqC,iCAAiC,EAAO0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAAC+K,QAASA,IAG9K,SAASgZ,EAAmCnlB,EAAmBmM,GAClE,MAAMlM,EAAUilB,EAAyC/Y,GACzD,OAAOjM,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASolB,EAAoDC,GAEhE,OADc9B,IACDriB,qCAAqC,4CAA4C,EAAM0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACikB,+BAAgCA,IAG/M,SAASC,EAA8CtlB,EAAmBqlB,GAC7E,MAAMplB,EAAUmlB,EAAoDC,GACpE,OAAOnlB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASulB,EAA6CC,GAEzD,OADcjC,IACDriB,qCAAqC,qCAAqC,EAAO0C,EAAAA,gBAAiB,QAAS,CAACzC,YAAa,OAAQC,aAAc,cAAe,CAACokB,YAAaA,IAGtL,SAASC,EAAuCzlB,EAAmBwlB,GACtE,MAAMvlB,EAAUslB,EAA6CC,GAC7D,OAAOtlB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS0lB,EAAgCC,GAE5C,OADcpC,IACDriB,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACwkB,qBAAsBD,IAGpJ,SAASE,EAA0B7lB,EAAmB2lB,GACzD,MAAM1lB,EAAUylB,EAAgCC,GAChD,OAAOzlB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS8lB,EAAkCC,GAE9C,OADcxC,IACDriB,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,yBAA0BD,IAG1J,SAASE,EAA4BjmB,EAAmB+lB,GAC3D,MAAM9lB,EAAU6lB,EAAkCC,GAClD,OAAO7lB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASkmB,EAAgCH,GAE5C,OADcxC,IACDriB,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,yBAA0BD,IAGxJ,SAASI,EAA0BnmB,EAAmB+lB,GACzD,MAAM9lB,EAAUimB,EAAgCH,GAChD,OAAO7lB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASomB,EAAgCL,GAE5C,OADcxC,IACDriB,qCAAqC,wBAAwB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,yBAA0BD,IAGxJ,SAASM,EAA0BrmB,EAAmB+lB,GACzD,MAAM9lB,EAAUmmB,EAAgCL,GAChD,OAAO7lB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASsmB,EAAwCP,GAEpD,OADcxC,IACDriB,qCAAqC,gCAAgC,EAAM,GAAI,QAAS,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,yBAA0BD,IAGrK,SAASQ,EAAkCvmB,EAAmB+lB,GACjE,MAAM9lB,EAAUqmB,EAAwCP,GACxD,OAAO7lB,EAAAA,EAAAA,IAAsBD,EAASD,GAGnC,SAASwmB,EAAwBT,GAEpC,OADcxC,IACDriB,qCAAqC,gBAAgB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC4kB,yBAA0BD,IAGhJ,SAASU,EAAkBzmB,EAAmB+lB,GACjD,MAAM9lB,EAAUumB,EAAwBT,GACxC,OAAO7lB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS0mB,EAAsC7lB,EAA2C8lB,EAAgEC,GAE7J,OADcrD,IAAmBziB,eAAeD,GACnCK,qCAAqC,8BAA8B,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAACulB,2BAA4BA,EAA4BC,kBAAmBA,IAGrO,SAASC,GAAgC7mB,EAAmB2mB,EAAgEC,GAC/H,MAAM3mB,EAAUymB,EAAsC1mB,EAAQa,oBAAqB8lB,EAA4BC,GAC/G,OAAO1mB,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAAS8mB,GAAsCjmB,EAA2CkmB,EAA0DH,GAEvJ,OADcrD,IAAmBziB,eAAeD,GACnCK,qCAAqC,8BAA8B,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAAC2lB,qBAAsBA,EAAsBH,kBAAmBA,IAGzN,SAASI,GAAgChnB,EAAmB+mB,EAA0DH,GACzH,MAAM3mB,EAAU6mB,GAAsC9mB,EAAQa,oBAAqBkmB,EAAsBH,GACzG,OAAO1mB,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASinB,GAA0CpmB,EAA2CsL,EAAyB+a,EAA+BN,GAEzJ,OADcrD,IAAmBziB,eAAeD,GACnCK,qCAAqC,kCAAkC,EAAM0H,EAAAA,aAAc,OAAQ,CAACzH,YAAa,OAAQC,aAAc,WAAY,CAAC+K,QAASA,EAASgb,cAAeD,EAAeN,kBAAmBA,IAGjO,SAASQ,GAAoCpnB,EAAmBmM,EAAyB+a,EAA+BN,GAC3H,MAAM3mB,EAAUgnB,GAA0CjnB,EAAQa,oBAAqBsL,EAAS+a,EAAeN,GAC/G,OAAO1mB,EAAAA,EAAAA,IAAyBD,EAASD,GAGtC,SAASqnB,GAAkCC,GAE9C,OADc/D,IACDriB,qCAAqC,0BAA0B,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAACmmB,uBAAwBD,IAGxJ,SAASE,GAA4BxnB,EAAmBsnB,GAC3D,MAAMrnB,EAAUonB,GAAkCC,GAClD,OAAOpnB,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASynB,GAAgC5mB,EAA2CsL,GAEvF,OADcoX,IAAmBziB,eAAeD,GACnCK,qCAAqC,wBAAwB,EAAMwmB,EAAAA,kBAAmB,OAAQ,CAACvmB,YAAa,OAAQC,aAAc,gBAAiB,CAAC+K,QAASA,IAGvK,SAASwb,GAA0B3nB,EAAmBmM,GACzD,MAAMlM,EAAUwnB,GAAgCznB,EAAQa,oBAAqBsL,GAC7E,OAAOjM,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAAS4nB,GAA4B/mB,EAA2CwQ,GAEnF,OADckS,IAAmBziB,eAAeD,GACnCK,qCAAqC,oBAAoB,EAAM2mB,EAAAA,kBAAmB,OAAQ,CAAC1mB,YAAa,OAAQC,aAAc,gBAAiB,CAACiQ,WAAYA,IAGtK,SAASyW,GAAsB9nB,EAAmBqR,GACrD,MAAMpR,EAAU2nB,GAA4B5nB,EAAQa,oBAAqBwQ,GACzE,OAAOnR,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAAS+nB,GAAuBlnB,EAA2CmnB,GAE9E,OADczE,IAAmBziB,eAAeD,GACnCK,qCAAqC,eAAe,EAAM2mB,EAAAA,kBAAmB,OAAQ,CAAC1mB,YAAa,OAAQC,aAAc,gBAAiB,CAAC4mB,sBAAuBA,IAG5K,SAASC,GAAiBjoB,EAAmBgoB,GAChD,MAAM/nB,EAAU8nB,GAAuB/nB,EAAQa,oBAAqBmnB,GACpE,OAAO9nB,EAAAA,EAAAA,IAA8BD,EAASD,GAG3C,SAASkoB,GAA6BC,GAEzC,OADc5E,IACDriB,qCAAqC,qBAAqB,EAAMwmB,EAAAA,kBAAmB,QAAS,CAACvmB,YAAa,OAAQC,aAAc,gBAAiB,CAAC+mB,6BAA8BA,IAG1L,SAASC,GAAuBpoB,EAAmBmoB,GACtD,MAAMloB,EAAUioB,GAA6BC,GAC7C,OAAOjoB,EAAAA,EAAAA,IAA4BD,EAASD,GAGzC,SAASqoB,GAA2CxnB,EAA2CynB,GAElG,OADc/E,IAAmBziB,eAAeD,GACnCK,qCAAqC,mCAAmC,EAAMqnB,EAAAA,eAAgB,OAAQ,CAACpnB,YAAa,OAAQC,aAAc,aAAc,CAACknB,SAAUA,IAG7K,SAASE,GAAqCxoB,EAAmBsoB,GACpE,MAAMroB,EAAUooB,GAA2CroB,EAAQa,oBAAqBynB,GACxF,OAAOpoB,EAAAA,EAAAA,IAA2BD,EAASD,GAGxC,SAASyoB,GAA6Btc,GAEzC,OADcoX,IACDriB,qCAAqC,qBAAqB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC+K,QAASA,IAGpI,SAASuc,GAAuB1oB,EAAmBmM,GACtD,MAAMlM,EAAUwoB,GAA6Btc,GAC7C,OAAOjM,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAAS2oB,GAAqCxc,EAAyByc,GAE1E,OADcrF,IACDriB,qCAAqC,6BAA6B,EAAM,GAAI,QAAS,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC+K,QAASA,EAASyc,+BAAgCA,IAG1L,SAASC,GAA+B7oB,EAAmBmM,EAAyByc,GACvF,MAAM3oB,EAAU0oB,GAAqCxc,EAASyc,GAC9D,OAAO1oB,EAAAA,EAAAA,IAAsBD,EAASD,GAGnC,SAAS8oB,GAA2BjoB,EAA2CkC,GAElF,OADcwgB,EAAiBxgB,GAAIjC,eAAeD,GACrCK,qCAAqC,mBAAmB,EAAO6nB,EAAAA,iBAAkB,OAAQ,CAAC5nB,YAAa,OAAQC,aAAc,eAAgB,IAGvJ,SAAS4nB,GAAqBhpB,EAAmB+C,GACpD,MAAM9C,EAAU6oB,GAA2B9oB,EAAQa,oBAAqBkC,GACxE,OAAO7C,EAAAA,EAAAA,IAA6BD,EAASD,GAG1C,SAASipB,GAA6B9c,GAEzC,OADcoX,IACDriB,qCAAqC,qBAAqB,EAAM,GAAI,GAAI,CAACC,YAAa,MAAOC,aAAc,IAAK,CAAC+K,QAASA,IAGpI,SAAS+c,GAAuBlpB,EAAmBmM,GACtD,MAAMlM,EAAUgpB,GAA6B9c,GAC7C,OAAOjM,EAAAA,EAAAA,IAA0BD,EAASD,GAGvC,SAASmpB,GAAwCtoB,EAA2CklB,EAA6DqD,GAE5J,OADc7F,IAAmBziB,eAAeD,GACnCK,qCAAqC,gCAAgC,EAAMmoB,EAAAA,+BAAgC,OAAQ,CAACloB,YAAa,OAAQC,aAAc,6BAA8B,CAAC4kB,yBAA0BD,EAA0BuD,qBAAsBF,IAG1Q,SAASG,GAAkCvpB,EAAmB+lB,EAA6DqD,GAC9H,MAAMnpB,EAAUkpB,GAAwCnpB,EAAQa,oBAAqBklB,EAA0BqD,GAC/G,OAAOlpB,EAAAA,EAAAA,IAA2CD,EAASD,GAGxD,SAASwpB,GAAiChlB,EAAmB0iB,EAA+BuC,EAAoChe,GAEnI,OADc8X,IACDriB,qCAAqC,yBAAyB,EAAMwoB,EAAAA,uCAAwC,QAAS,CAACvoB,YAAa,MAAOC,aAAc,qCAAsC,CAACoD,UAAWA,EAAW2iB,cAAeD,EAAeuC,mBAAoBA,EAAoBhe,oBAAqBA,IAG1T,SAASke,GAA2B3pB,EAAmBwE,EAAmB0iB,EAA+BuC,EAAoChe,GAChJ,MAAMxL,EAAUupB,GAAiChlB,EAAW0iB,EAAeuC,EAAoBhe,GAC/F,OAAOvL,EAAAA,EAAAA,IAAiDD,EAASD,GAG9D,SAAS4pB,GAA+B/oB,EAA2CsL,GAEtF,OADcoX,IAAmBziB,eAAeD,GACnCK,qCAAqC,uBAAuB,EAAO2oB,EAAAA,qBAAsB,OAAQ,CAAC1oB,YAAa,OAAQC,aAAc,mBAAoB,CAAC+K,QAASA,IAG7K,SAAS2d,GAAyB9pB,EAAmBmM,GACxD,MAAMlM,EAAU2pB,GAA+B5pB,EAAQa,oBAAqBsL,GAC5E,OAAOjM,EAAAA,EAAAA,IAAiCD,EAASD,+ECnYrD,SAAS+pB,EAAiBC,GACtB,IAAIxqB,EAAOwqB,EAAe,CAAEC,YAAaD,GAAgB,KACzD,OAAO,IAAItqB,EAAAA,EAAiB,cAAe,aAAcwqB,EAAAA,gBAAiB1qB,GAkCvE,SAASmB,EAAUX,EAAmBgqB,GACzC,MAAM/pB,EALH,SAAyB+pB,GAC5B,OAAOD,EAAiBC,GAAatpB,OAIrBD,CAAgBupB,GAChC,OAAO9pB,EAAAA,EAAAA,IAA0BD,EAASD,ktbCzC9C,SAASmqB,IACT,OAAO,IAAIzqB,EAAAA,EAGF,SAASuF,EAA8BpE,GAE5C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,sBAAsB,EAAOmE,EAAAA,oBAAqB,OAAQ,CAAElE,YAAa,OAAQC,aAAc,kBAAmB,IAG/J,SAASkE,EAAwBtF,GACtC,MAAMC,EAAUgF,EAA8BjF,EAAQa,qBACtD,OAAOX,EAAAA,EAAAA,IAAgCD,EAASD,GAG3C,SAASoqB,EAAmCpkB,EAAgB+D,GAEjE,OADcogB,IACDjpB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC4E,OAAQA,EAAQ+D,aAAcA,IAGnK,SAASsgB,EAA6BrqB,EAAmBgG,EAAgB+D,GAC9E,MAAM9J,EAAUmqB,EAAmCpkB,EAAQ+D,GAC3D,OAAO7J,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASsqB,EAAiCzpB,EAA2C0pB,GAE1F,OADcJ,IAAarpB,eAAeD,GAC7BK,qCAAqC,yBAAyB,EAAMspB,EAAAA,iBAAkB,OAAQ,CAAErpB,YAAa,OAAQC,aAAc,eAAgB,CAACmpB,iBAAkBA,IAG9K,SAASE,EAA2BzqB,EAAmBuqB,GAC5D,MAAMtqB,EAAUqqB,EAAiCtqB,EAAQa,oBAAqB0pB,GAC9E,OAAOrqB,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAAS0qB,EAAqCC,EAAoCC,EAAyBC,EAAiCzkB,GAEjJ,OADc+jB,IACDjpB,qCAAqC,6BAA6B,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACupB,iBAAkBA,EAAkBC,QAASA,EAASC,gBAAiBA,EAAiBzkB,gBAAiBA,IAG3O,SAAS0kB,EAA+B9qB,EAAmB2qB,EAAoCC,EAAyBC,EAAiCzkB,GAC9J,MAAMnG,EAAUyqB,EAAqCC,EAAkBC,EAASC,EAAiBzkB,GACjG,OAAOlG,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS+M,EAAkClM,EAA2CqS,GAE3F,OADciX,IAAarpB,eAAeD,GAC7BK,qCAAqC,0BAA0B,EAAM6pB,EAAAA,eAAgB,OAAQ,CAAE5pB,YAAa,OAAQC,aAAc,aAAc,CAAC8R,eAAgBA,IAGzK,SAASjG,EAA4BjN,EAAmBkT,GAC7D,MAAMjT,EAAU8M,EAAkC/M,EAAQa,oBAAqBqS,GAC/E,OAAOhT,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAASgrB,EAAmDnqB,EAA2CoqB,GAE5G,OADcd,IAAarpB,eAAeD,GAC7BK,qCAAqC,2CAA2C,EAAMgqB,EAAAA,gCAAiC,OAAQ,CAAE/pB,YAAa,OAAQC,aAAc,8BAA+B,CAAC6pB,kBAAmBA,IAG/N,SAASE,EAA6CnrB,EAAmBirB,GAC9E,MAAMhrB,EAAU+qB,EAAmDhrB,EAAQa,oBAAqBoqB,GAChG,OAAO/qB,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASorB,EAAyBvqB,GAEvC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,iBAAiB,EAAMmqB,EAAAA,eAAgB,OAAQ,CAAElqB,YAAa,OAAQC,aAAc,aAAc,IAG/I,SAASkqB,EAAmBtrB,GACjC,MAAMC,EAAUmrB,EAAyBprB,EAAQa,qBACjD,OAAOX,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAASurB,EAAuC1qB,EAA2C2qB,GAEhG,OADcrB,IAAarpB,eAAeD,GAC7BK,qCAAqC,+BAA+B,EAAMuqB,EAAAA,6BAA8B,OAAQ,CAAEtqB,YAAa,OAAQC,aAAc,2BAA4B,CAACoqB,yCAA0CA,IAGpO,SAASE,EAAiC1rB,EAAmBwrB,GAClE,MAAMvrB,EAAUsrB,EAAuCvrB,EAAQa,oBAAqB2qB,GACpF,OAAOtrB,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAAS2rB,EAA0BC,EAA6DC,GAErG,OADc1B,IACDjpB,qCAAqC,kBAAkB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACwqB,yBAA0BA,EAA0BE,YAAaD,IAGxL,SAASE,EAAoB/rB,EAAmB4rB,EAA6DC,GAClH,MAAM5rB,EAAU0rB,EAA0BC,EAA0BC,GACpE,OAAO3rB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASgsB,EAA8BJ,GAE5C,OADczB,IACDjpB,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACwqB,yBAA0BA,IAGrJ,SAASK,EAAwBjsB,EAAmB4rB,GACzD,MAAM3rB,EAAU+rB,EAA8BJ,GAC9C,OAAO1rB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASksB,EAA2BrrB,EAA2CsrB,GAEpF,OADchC,IAAarpB,eAAeD,GAC7BK,qCAAqC,mBAAmB,EAAMkrB,EAAAA,iBAAkB,OAAQ,CAAEjrB,YAAa,OAAQC,aAAc,eAAgB,CAAC+qB,uBAAwBA,IAG9K,SAASE,EAAqBrsB,EAAmBmsB,GACtD,MAAMlsB,EAAUisB,EAA2BlsB,EAAQa,oBAAqBsrB,GACxE,OAAOjsB,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASwe,EAAgC3d,EAA2CyrB,GAEzF,OADcnC,IAAarpB,eAAeD,GAC7BK,qCAAqC,wBAAwB,EAAMyd,EAAAA,sBAAuB,OAAQ,CAAExd,YAAa,OAAQC,aAAc,oBAAqB,CAACkrB,yBAA0BA,IAG/L,SAAS1N,EAA0B5e,EAAmBssB,GAC3D,MAAMrsB,EAAUue,EAAgCxe,EAAQa,oBAAqByrB,GAC7E,OAAOpsB,EAAAA,EAAAA,IAAkCD,EAASD,GAG7C,SAASusB,EAAwBrjB,EAA8BsjB,GAEpE,OADcrC,IACDjpB,qCAAqC,gBAAgB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC8H,cAAeA,EAAesjB,gBAAiBA,IAGpK,SAASC,EAAkBzsB,EAAmBkJ,EAA8BsjB,GACjF,MAAMvsB,EAAUssB,EAAwBrjB,EAAesjB,GACvD,OAAOtsB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS0sB,EAAsBxjB,GAEpC,OADcihB,IACDjpB,qCAAqC,cAAc,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC8H,cAAeA,IAGlI,SAASyjB,EAAgB3sB,EAAmBkJ,GACjD,MAAMjJ,EAAUysB,EAAsBxjB,GACtC,OAAOhJ,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS4sB,EAA0BC,EAA6BC,EAA2BC,EAAyBC,EAAwBC,GAEjJ,OADc9C,IACDjpB,qCAAqC,kBAAkB,EAAMgsB,EAAAA,4BAA6B,QAAS,CAAE/rB,YAAa,MAAOC,aAAc,0BAA2B,CAACyrB,aAAcA,EAAcC,WAAYA,EAAYC,SAAUA,EAAUC,cAAeA,EAAeC,WAAYA,IAG7R,SAASE,EAAoBntB,EAAmB6sB,EAA6BC,EAA2BC,EAAyBC,EAAwBC,GAC9J,MAAMhtB,EAAU2sB,EAA0BC,EAAcC,EAAYC,EAAUC,EAAeC,GAC7F,OAAO/sB,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAASotB,EAA8BP,EAA8BC,EAA4BC,EAA0BE,GAEhI,OADc9C,IACDjpB,qCAAqC,sBAAsB,EAAMgsB,EAAAA,4BAA6B,QAAS,CAAE/rB,YAAa,MAAOC,aAAc,0BAA2B,CAACyrB,aAAcA,EAAcC,WAAYA,EAAYC,SAAUA,EAAUE,WAAYA,IAGnQ,SAASI,EAAwBrtB,EAAmB6sB,EAA8BC,EAA4BC,EAA0BE,GAC7I,MAAMhtB,EAAUmtB,EAA8BP,EAAcC,EAAYC,EAAUE,GAClF,OAAO/sB,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAASstB,EAA4BpkB,GAE1C,OADcihB,IACDjpB,qCAAqC,oBAAoB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC8H,cAAeA,IAGxI,SAASqkB,EAAsBvtB,EAAmBkJ,GACvD,MAAMjJ,EAAUqtB,EAA4BpkB,GAC5C,OAAOhJ,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASwtB,IAEd,OADcrD,IACDjpB,qCAAqC,8BAA8B,EAAMusB,EAAAA,sCAAuC,QAAS,CAAEtsB,YAAa,MAAOC,aAAc,oCAAqC,IAG1M,SAASssB,EAAgC1tB,GAC9C,MAAMC,EAAUutB,IAChB,OAAOttB,EAAAA,EAAAA,IAAgDD,EAASD,GAG3D,SAAS2tB,EAAwCd,EAA8Be,GAEpF,OADczD,IACDjpB,qCAAqC,gCAAgC,EAAM2sB,EAAAA,wCAAyC,QAAS,CAAE1sB,YAAa,MAAOC,aAAc,sCAAuC,CAACyrB,aAAcA,EAAce,qBAAsBA,IAGnQ,SAASE,EAAkC9tB,EAAmB6sB,EAA8Be,GACjG,MAAM3tB,EAAU0tB,EAAwCd,EAAce,GACtE,OAAO1tB,EAAAA,EAAAA,IAAkDD,EAASD,GAG7D,SAAS+tB,EAA0BC,GAExC,OADc7D,IACDjpB,qCAAqC,kBAAkB,EAAM+sB,EAAAA,aAAc,QAAS,CAAE9sB,YAAa,OAAQC,aAAc,WAAY,CAAC4sB,UAAWA,IAGzJ,SAASE,EAAoBluB,EAAmBguB,GACrD,MAAM/tB,EAAU8tB,EAA0BC,GAC1C,OAAO9tB,EAAAA,EAAAA,IAAuBD,EAASD,GAGlC,SAASmuB,EAA6BC,GAE3C,OADcjE,IACDjpB,qCAAqC,qBAAqB,EAAMmtB,EAAAA,gBAAiB,QAAS,CAAEltB,YAAa,OAAQC,aAAc,cAAe,CAACgtB,aAAcA,IAGrK,SAASE,EAAuBtuB,EAAmBouB,GACxD,MAAMnuB,EAAUkuB,EAA6BC,GAC7C,OAAOluB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASuuB,EAAsC1tB,EAA2C2tB,EAAgBC,GAE/G,OADctE,IAAarpB,eAAeD,GAC7BK,qCAAqC,8BAA8B,EAAMmtB,EAAAA,gBAAiB,OAAQ,CAAEltB,YAAa,OAAQC,aAAc,cAAe,CAACotB,OAAQA,EAAQC,MAAOA,IAGtL,SAASC,EAAgC1uB,EAAmBwuB,EAAgBC,GACjF,MAAMxuB,EAAUsuB,EAAsCvuB,EAAQa,oBAAqB2tB,EAAQC,GAC3F,OAAOvuB,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS2uB,EAA+B9tB,EAA2C+tB,GAExF,OADczE,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAMmtB,EAAAA,gBAAiB,OAAQ,CAAEltB,YAAa,OAAQC,aAAc,cAAe,CAACwtB,4BAA6BA,IAGrL,SAASC,EAAyB7uB,EAAmB4uB,GAC1D,MAAM3uB,EAAU0uB,EAA+B3uB,EAAQa,oBAAqB+tB,GAC5E,OAAO1uB,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS8uB,EAAqCjuB,EAA2CkuB,GAE9F,OADc5E,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAMkgB,EAAAA,eAAgB,OAAQ,CAAEjgB,YAAa,OAAQC,aAAc,aAAc,CAAC2tB,WAAYA,IAGxK,SAASC,GAA+BhvB,EAAmB+uB,GAChE,MAAM9uB,EAAU6uB,EAAqC9uB,EAAQa,oBAAqBkuB,GAClF,OAAO7uB,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAASivB,GAAwBpuB,GAEtC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,gBAAgB,EAAMguB,EAAAA,kBAAmB,OAAQ,CAAE/tB,YAAa,OAAQC,aAAc,gBAAiB,IAGpJ,SAAS+tB,GAAkBnvB,GAChC,MAAMC,EAAUgvB,GAAwBjvB,EAAQa,qBAChD,OAAOX,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAASovB,GAA4BvuB,EAA2CwuB,EAAkCC,EAA0BC,GAEjJ,OADcpF,IAAarpB,eAAeD,GAC7BK,qCAAqC,oBAAoB,EAAMguB,EAAAA,kBAAmB,OAAQ,CAAE/tB,YAAa,MAAOC,aAAc,gBAAiB,CAACiuB,iBAAkBA,EAAkBC,SAAUA,EAAUC,aAAcA,IAG9N,SAASC,GAAsBxvB,EAAmBqvB,EAAkCC,EAA0BC,GACnH,MAAMtvB,EAAUmvB,GAA4BpvB,EAAQa,oBAAqBwuB,EAAkBC,EAAUC,GACrG,OAAOrvB,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAASyvB,GAAwC5uB,GAEtD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,gCAAgC,EAAM,GAAI,OAAQ,CAAEC,YAAa,OAAQC,aAAc,IAAK,IAGzI,SAASsuB,GAAkC1vB,GAChD,MAAMC,EAAUwvB,GAAwCzvB,EAAQa,qBAChE,OAAOX,EAAAA,EAAAA,IAAwBD,EAASD,GAGnC,SAAS2vB,GAAqB9uB,EAA2C+uB,EAAiCC,EAAiCC,GAEhJ,OADc3F,IAAarpB,eAAeD,GAC7BK,qCAAqC,aAAa,EAAM6uB,EAAAA,cAAe,OAAQ,CAAE5uB,YAAa,OAAQC,aAAc,YAAa,CAACwuB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,IAGxN,SAASE,GAAehwB,EAAmB4vB,EAAiCC,EAAiCC,GAClH,MAAM7vB,EAAU0vB,GAAqB3vB,EAAQa,oBAAqB+uB,EAAiBC,EAAiBC,GACpG,OAAO5vB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASiwB,GAAwCpvB,GAEtD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,gCAAgC,EAAOgvB,EAAAA,uBAAwB,OAAQ,CAAE/uB,YAAa,OAAQC,aAAc,qBAAsB,IAG/K,SAAS+uB,GAAkCnwB,GAChD,MAAMC,EAAUgwB,GAAwCjwB,EAAQa,qBAChE,OAAOX,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASowB,GAAyCvvB,EAA2CwvB,GAElG,OADclG,IAAarpB,eAAeD,GAC7BK,qCAAqC,iCAAiC,EAAMgvB,EAAAA,uBAAwB,OAAQ,CAAE/uB,YAAa,OAAQC,aAAc,qBAAsB,CAACivB,WAAYA,IAG5L,SAASC,GAAmCtwB,EAAmBqwB,GACpE,MAAMpwB,EAAUmwB,GAAyCpwB,EAAQa,oBAAqBwvB,GACtF,OAAOnwB,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASuwB,GAA4B/rB,GAE1C,OADc2lB,IACDjpB,qCAAqC,oBAAoB,EAAOsvB,EAAAA,mBAAoB,QAAS,CAAErvB,YAAa,OAAQC,aAAc,iBAAkB,CAACoD,UAAWA,IAGxK,SAASisB,GAAsBzwB,EAAmBwE,GACvD,MAAMvE,EAAUswB,GAA4B/rB,GAC5C,OAAOtE,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAAS0wB,GAAuB7vB,EAA2C+uB,EAAiCC,GAEjH,OADc1F,IAAarpB,eAAeD,GAC7BK,qCAAqC,eAAe,EAAMyvB,EAAAA,gBAAiB,OAAQ,CAAExvB,YAAa,OAAQC,aAAc,cAAe,CAACwuB,gBAAiBA,EAAiBC,gBAAiBA,IAGnM,SAASe,GAAiB5wB,EAAmB4vB,EAAiCC,GACnF,MAAM5vB,EAAUywB,GAAuB1wB,EAAQa,oBAAqB+uB,EAAiBC,GACrF,OAAO3vB,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS6wB,GAA6BC,GAE3C,OADc3G,IACDjpB,qCAAqC,qBAAqB,EAAM6vB,EAAAA,gBAAiB,QAAS,CAAE5vB,YAAa,OAAQC,aAAc,cAAe,CAAC0vB,aAAcA,IAGrK,SAASE,GAAuBhxB,EAAmB8wB,GACxD,MAAM7wB,EAAU4wB,GAA6BC,GAC7C,OAAO5wB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASixB,GAA+BC,GAE7C,OADc/G,IACDjpB,qCAAqC,uBAAuB,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC8vB,cAAeA,IAGjJ,SAASC,GAAyBnxB,EAAmBkxB,GAC1D,MAAMjxB,EAAUgxB,GAA+BC,GAC/C,OAAOhxB,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASoxB,GAAoCtE,GAElD,OADc3C,IACDjpB,qCAAqC,4BAA4B,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC0rB,WAAYA,IAGnJ,SAASuE,GAA8BrxB,EAAmB8sB,GAC/D,MAAM7sB,EAAUmxB,GAAoCtE,GACpD,OAAO5sB,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASsxB,GAA2BJ,EAA8BK,GAEvE,OADcpH,IACDjpB,qCAAqC,mBAAmB,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC8vB,cAAeA,EAAeK,kBAAmBA,IAG/K,SAASC,GAAqBxxB,EAAmBkxB,EAA8BK,GACpF,MAAMtxB,EAAUqxB,GAA2BJ,EAAeK,GAC1D,OAAOrxB,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASyxB,GAA+CC,GAE7D,OADcvH,IACDjpB,qCAAqC,uCAAuC,EAAMywB,EAAAA,4BAA6B,QAAS,CAAExwB,YAAa,OAAQC,aAAc,0BAA2B,CAACwwB,gCAAiCF,IAGlO,SAASG,GAAyC7xB,EAAmB0xB,GAC1E,MAAMzxB,EAAUwxB,GAA+CC,GAC/D,OAAOxxB,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAAS8xB,GAA6CC,GAE3D,OADc5H,IACDjpB,qCAAqC,qCAAqC,EAAM8wB,EAAAA,0BAA2B,QAAS,CAAE7wB,YAAa,OAAQC,aAAc,wBAAyB,CAAC6wB,8BAA+BF,IAG1N,SAASG,GAAuClyB,EAAmB+xB,GACxE,MAAM9xB,EAAU6xB,GAA6CC,GAC7D,OAAO7xB,EAAAA,EAAAA,IAAoCD,EAASD,GAG/C,SAASmyB,GAA+BtxB,EAA2CqwB,GAExF,OADc/G,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAMkxB,EAAAA,qBAAsB,OAAQ,CAAEjxB,YAAa,OAAQC,aAAc,mBAAoB,CAAC8vB,cAAeA,IAGjL,SAASmB,GAAyBryB,EAAmBkxB,GAC1D,MAAMjxB,EAAUkyB,GAA+BnyB,EAAQa,oBAAqBqwB,GAC5E,OAAOhxB,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASsyB,GAAsCzxB,EAA2CqwB,GAE/F,OADc/G,IAAarpB,eAAeD,GAC7BK,qCAAqC,8BAA8B,EAAMkxB,EAAAA,qBAAsB,OAAQ,CAAEjxB,YAAa,OAAQC,aAAc,mBAAoB,CAAC8vB,cAAeA,IAGxL,SAASqB,GAAgCvyB,EAAmBkxB,GACjE,MAAMjxB,EAAUqyB,GAAsCtyB,EAAQa,oBAAqBqwB,GACnF,OAAOhxB,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASwyB,GAAmC3xB,EAA2CqwB,GAE5F,OADc/G,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAM,GAAI,OAAQ,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC8vB,cAAeA,IAGpJ,SAASuB,GAA6BzyB,EAAmBkxB,GAC9D,MAAMjxB,EAAUuyB,GAAmCxyB,EAAQa,oBAAqBqwB,GAChF,OAAOhxB,EAAAA,EAAAA,IAAwBD,EAASD,GAGnC,SAAS0yB,GAA6BxB,GAE3C,OADc/G,IACDjpB,qCAAqC,qBAAqB,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC8vB,cAAeA,IAG/I,SAASyB,GAAuB3yB,EAAmBkxB,GACxD,MAAMjxB,EAAUyyB,GAA6BxB,GAC7C,OAAOhxB,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS4yB,GAAmCC,GAEjD,OADc1I,IACDjpB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACyxB,0BAA2BA,IAGhK,SAASC,GAA6B9yB,EAAmB6yB,GAC9D,MAAM5yB,EAAU2yB,GAAmCC,GACnD,OAAO3yB,EAAAA,EAAAA,IAAuBD,EAASD,GAGlC,SAAS+yB,GAAmCC,GAEjD,OADc7I,IACDjpB,qCAAqC,2BAA2B,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC4xB,qBAAsBA,IAGtJ,SAASC,GAA6BjzB,EAAmBgzB,GAC9D,MAAM/yB,EAAU8yB,GAAmCC,GACnD,OAAO9yB,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASkzB,KAEd,OADc/I,IACDjpB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,IAGrI,SAAS+xB,GAA6BnzB,GAC3C,MAAMC,EAAUizB,KAChB,OAAOhzB,EAAAA,EAAAA,IAAuBD,EAASD,GAGlC,SAASozB,GAAmCvyB,GAEjD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAMmyB,EAAAA,4BAA6B,OAAQ,CAAElyB,YAAa,OAAQC,aAAc,0BAA2B,IAGnL,SAASkyB,GAA6BtzB,GAC3C,MAAMC,EAAUmzB,GAAmCpzB,EAAQa,qBAC3D,OAAOX,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAASuzB,GAAqC1yB,GAEnD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAMsyB,EAAAA,4BAA6B,OAAQ,CAAEryB,YAAa,OAAQC,aAAc,0BAA2B,IAGrL,SAASqyB,GAA+BzzB,GAC7C,MAAMC,EAAUszB,GAAqCvzB,EAAQa,qBAC7D,OAAOX,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAAS0zB,GAAiD7yB,EAA2C8yB,EAA4BC,GAEtI,OADczJ,IAAarpB,eAAeD,GAC7BK,qCAAqC,yCAAyC,EAAM2yB,EAAAA,gCAAiC,OAAQ,CAAE1yB,YAAa,OAAQC,aAAc,8BAA+B,CAACuyB,WAAYA,EAAYC,cAAeA,IAGjP,SAASE,GAA2C9zB,EAAmB2zB,EAA4BC,GACxG,MAAM3zB,EAAUyzB,GAAiD1zB,EAAQa,oBAAqB8yB,EAAYC,GAC1G,OAAO1zB,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAAS+zB,GAAiElzB,EAA2C8yB,EAA4BC,GAEtJ,OADczJ,IAAarpB,eAAeD,GAC7BK,qCAAqC,yDAAyD,EAAM2yB,EAAAA,gCAAiC,OAAQ,CAAE1yB,YAAa,OAAQC,aAAc,8BAA+B,CAACuyB,WAAYA,EAAYC,cAAeA,IAGjQ,SAASI,GAA2Dh0B,EAAmB2zB,EAA4BC,GACxH,MAAM3zB,EAAU8zB,GAAiE/zB,EAAQa,oBAAqB8yB,EAAYC,GAC1H,OAAO1zB,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASi0B,GAAwCC,GAEtD,OADc/J,IACDjpB,qCAAqC,gCAAgC,EAAMizB,EAAAA,oBAAqB,QAAS,CAAEhzB,YAAa,MAAOC,aAAc,kBAAmB,CAAC8yB,iBAAkBA,IAG3L,SAASE,GAAkCp0B,EAAmBk0B,GACnE,MAAMj0B,EAAUg0B,GAAwCC,GACxD,OAAOh0B,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAASq0B,GAA2BrlB,GAEzC,OADcmb,IACDjpB,qCAAqC,mBAAmB,EAAMozB,EAAAA,kBAAmB,QAAS,CAAEnzB,YAAa,OAAQC,aAAc,gBAAiB,CAAC4N,aAAcA,IAGvK,SAASulB,GAAqBv0B,EAAmBgP,GACtD,MAAM/O,EAAUo0B,GAA2BrlB,GAC3C,OAAO9O,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAASw0B,GAAqC3zB,EAA2C4zB,GAE9F,OADctK,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAMozB,EAAAA,kBAAmB,OAAQ,CAAEnzB,YAAa,OAAQC,aAAc,gBAAiB,CAACqzB,QAASA,IAG3K,SAASC,GAA+B10B,EAAmBy0B,GAChE,MAAMx0B,EAAUu0B,GAAqCx0B,EAAQa,oBAAqB4zB,GAClF,OAAOv0B,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAAS20B,GAAqC9zB,EAA2C+zB,EAAwBlX,GAEtH,OADcyM,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAMozB,EAAAA,kBAAmB,OAAQ,CAAEnzB,YAAa,OAAQC,aAAc,gBAAiB,CAACwzB,QAASA,EAASlX,WAAYA,IAGhM,SAASmX,GAA+B70B,EAAmB40B,EAAwBlX,GACxF,MAAMzd,EAAU00B,GAAqC30B,EAAQa,oBAAqB+zB,EAASlX,GAC3F,OAAOxd,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAAS80B,GAAwBj0B,EAA2C+uB,EAAiCC,EAAiCC,EAA0BiF,GAE7K,OADc5K,IAAarpB,eAAeD,GAC7BK,qCAAqC,gBAAgB,EAAM8zB,EAAAA,kBAAmB,OAAQ,CAAE7zB,YAAa,OAAQC,aAAc,gBAAiB,CAACwuB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,EAAUiF,SAAUA,IAGvP,SAASE,GAAkBj1B,EAAmB4vB,EAAiCC,EAAiCC,EAA0BiF,GAC/I,MAAM90B,EAAU60B,GAAwB90B,EAAQa,oBAAqB+uB,EAAiBC,EAAiBC,EAAUiF,GACjH,OAAO70B,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAASk1B,GAAsCr0B,GAEpD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,8BAA8B,EAAMi0B,EAAAA,4BAA6B,OAAQ,CAAEh0B,YAAa,OAAQC,aAAc,0BAA2B,IAGtL,SAASg0B,GAAgCp1B,GAC9C,MAAMC,EAAUi1B,GAAsCl1B,EAAQa,qBAC9D,OAAOX,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAASq1B,GAAkCzO,GAEhD,OADcuD,IACDjpB,qCAAqC,0BAA0B,EAAMo0B,EAAAA,qBAAsB,QAAS,CAAEn0B,YAAa,OAAQC,aAAc,mBAAoB,CAACwlB,kBAAmBA,IAGzL,SAAS2O,GAA4Bv1B,EAAmB4mB,GAC7D,MAAM3mB,EAAUo1B,GAAkCzO,GAClD,OAAO1mB,EAAAA,EAAAA,IAA+BD,EAASD,GAG1C,SAASw1B,GAA+B30B,EAA2CwvB,EAA4BoF,GAEpH,OADctL,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAMw0B,EAAAA,qBAAsB,OAAQ,CAAEv0B,YAAa,OAAQC,aAAc,mBAAoB,CAACivB,WAAYA,EAAYoF,OAAQA,IAGlM,SAASE,GAAyB31B,EAAmBqwB,EAA4BoF,GACtF,MAAMx1B,EAAUu1B,GAA+Bx1B,EAAQa,oBAAqBwvB,EAAYoF,GACxF,OAAOv1B,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAAS41B,GAAsCC,GAEpD,OADc1L,IACDjpB,qCAAqC,8BAA8B,EAAM40B,EAAAA,yBAA0B,QAAS,CAAE30B,YAAa,OAAQC,aAAc,uBAAwB,CAACy0B,YAAaA,IAG/L,SAASE,GAAgC/1B,EAAmB61B,GACjE,MAAM51B,EAAU21B,GAAsCC,GACtD,OAAO31B,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASg2B,GAA8Bn1B,EAA2Co1B,GAEvF,OADc9L,IAAarpB,eAAeD,GAC7BK,qCAAqC,sBAAsB,EAAMg1B,EAAAA,gBAAiB,OAAQ,CAAE/0B,YAAa,OAAQC,aAAc,cAAe,CAAC60B,kBAAmBA,IAG1K,SAASE,GAAwBn2B,EAAmBi2B,GACzD,MAAMh2B,EAAU+1B,GAA8Bh2B,EAAQa,oBAAqBo1B,GAC3E,OAAO/1B,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAASo2B,GAA+BC,EAA0BC,GAEvE,OADcnM,IACDjpB,qCAAqC,uBAAuB,EAAMq1B,EAAAA,mBAAoB,QAAS,CAAEp1B,YAAa,OAAQC,aAAc,iBAAkB,CAACi1B,SAAUA,EAAUC,WAAYA,IAG/L,SAASE,GAAyBx2B,EAAmBq2B,EAA0BC,GACpF,MAAMr2B,EAAUm2B,GAA+BC,EAAUC,GACzD,OAAOp2B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASy2B,GAAgCJ,GAE9C,OADclM,IACDjpB,qCAAqC,wBAAwB,EAAMq1B,EAAAA,mBAAoB,QAAS,CAAEp1B,YAAa,OAAQC,aAAc,iBAAkB,CAACi1B,SAAUA,IAG1K,SAASK,GAA0B12B,EAAmBq2B,GAC3D,MAAMp2B,EAAUw2B,GAAgCJ,GAChD,OAAOn2B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAAS22B,GAA+BN,EAA0BC,GAEvE,OADcnM,IACDjpB,qCAAqC,uBAAuB,EAAMq1B,EAAAA,mBAAoB,QAAS,CAAEp1B,YAAa,OAAQC,aAAc,iBAAkB,CAACi1B,SAAUA,EAAUC,WAAYA,IAG/L,SAASM,GAAyB52B,EAAmBq2B,EAA0BC,GACpF,MAAMr2B,EAAU02B,GAA+BN,EAAUC,GACzD,OAAOp2B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAAS62B,GAAoCh2B,EAA2Ci2B,GAE7F,OADc3M,IAAarpB,eAAeD,GAC7BK,qCAAqC,4BAA4B,EAAM61B,EAAAA,0BAA2B,OAAQ,CAAE51B,YAAa,OAAQC,aAAc,wBAAyB,CAAC01B,yBAA0BA,IAG3M,SAASE,GAA8Bh3B,EAAmB82B,GAC/D,MAAM72B,EAAU42B,GAAoC72B,EAAQa,oBAAqBi2B,GACjF,OAAO52B,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAASi3B,GAA6Bp2B,EAA2C+uB,GAEtF,OADczF,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAMg2B,EAAAA,uBAAwB,OAAQ,CAAE/1B,YAAa,OAAQC,aAAc,qBAAsB,CAACwuB,gBAAiBA,IAGrL,SAASuH,GAAuBn3B,EAAmB4vB,GACxD,MAAM3vB,EAAUg3B,GAA6Bj3B,EAAQa,oBAAqB+uB,GAC1E,OAAO1vB,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASo3B,GAAuBv2B,EAA2C+uB,EAAiCC,EAAiCC,EAA0BiF,EAA0BsC,GAEtM,OADclN,IAAarpB,eAAeD,GAC7BK,qCAAqC,eAAe,EAAMo2B,EAAAA,iBAAkB,OAAQ,CAAEn2B,YAAa,OAAQC,aAAc,eAAgB,CAACwuB,gBAAiBA,EAAiBC,gBAAiBA,EAAiBC,SAAUA,EAAUiF,SAAUA,EAAUsC,SAAUA,IAGxQ,SAASE,GAAiBv3B,EAAmB4vB,EAAiCC,EAAiCC,EAA0BiF,EAA0BsC,GACxK,MAAMp3B,EAAUm3B,GAAuBp3B,EAAQa,oBAAqB+uB,EAAiBC,EAAiBC,EAAUiF,EAAUsC,GAC1H,OAAOn3B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASw3B,GAAiC32B,EAA2C+uB,EAAiC6H,GAE3H,OADctN,IAAarpB,eAAeD,GAC7BK,qCAAqC,yBAAyB,EAAMo2B,EAAAA,iBAAkB,OAAQ,CAAEn2B,YAAa,OAAQC,aAAc,eAAgB,CAACwuB,gBAAiBA,EAAiB6H,cAAeA,IAG7M,SAASC,GAA2B13B,EAAmB4vB,EAAiC6H,GAC7F,MAAMx3B,EAAUu3B,GAAiCx3B,EAAQa,oBAAqB+uB,EAAiB6H,GAC/F,OAAOv3B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAAS23B,GAAsCC,GAEpD,OADczN,IACDjpB,qCAAqC,8BAA8B,EAAM22B,EAAAA,oBAAqB,QAAS,CAAE12B,YAAa,MAAOC,aAAc,kBAAmB,CAACw2B,eAAgBA,IAGvL,SAASE,GAAgC93B,EAAmB43B,GACjE,MAAM33B,EAAU03B,GAAsCC,GACtD,OAAO13B,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAAS+3B,GAA4BC,GAE1C,OADc7N,IACDjpB,qCAAqC,oBAAoB,EAAM+2B,EAAAA,iBAAkB,QAAS,CAAE92B,YAAa,MAAOC,aAAc,eAAgB,CAAC42B,YAAaA,IAGpK,SAASE,GAAsBl4B,EAAmBg4B,GACvD,MAAM/3B,EAAU83B,GAA4BC,GAC5C,OAAO93B,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAASm4B,GAA0BxE,GAExC,OADcxJ,IACDjpB,qCAAqC,kBAAkB,EAAM+2B,EAAAA,iBAAkB,QAAS,CAAE92B,YAAa,OAAQC,aAAc,eAAgB,CAACuyB,WAAYA,IAGlK,SAASyE,GAAoBp4B,EAAmB2zB,GACrD,MAAM1zB,EAAUk4B,GAA0BxE,GAC1C,OAAOzzB,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAASq4B,GAAmCx3B,EAA2CgR,GAE5F,OADcsY,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAM+2B,EAAAA,iBAAkB,OAAQ,CAAE92B,YAAa,OAAQC,aAAc,eAAgB,CAACyQ,cAAeA,IAG7K,SAASymB,GAA6Bt4B,EAAmB6R,GAC9D,MAAM5R,EAAUo4B,GAAmCr4B,EAAQa,oBAAqBgR,GAChF,OAAO3R,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASu4B,GAAsC13B,EAA2C8yB,EAA4BC,GAE3H,OADczJ,IAAarpB,eAAeD,GAC7BK,qCAAqC,8BAA8B,EAAMs3B,EAAAA,4BAA6B,OAAQ,CAAEr3B,YAAa,OAAQC,aAAc,0BAA2B,CAACuyB,WAAYA,EAAYC,cAAeA,IAG9N,SAAS6E,GAAgCz4B,EAAmB2zB,EAA4BC,GAC7F,MAAM3zB,EAAUs4B,GAAsCv4B,EAAQa,oBAAqB8yB,EAAYC,GAC/F,OAAO1zB,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAAS04B,GAA8C73B,EAA2C8yB,EAA2BC,EAA8B+E,GAEhK,OADcxO,IAAarpB,eAAeD,GAC7BK,qCAAqC,sCAAsC,EAAM2yB,EAAAA,gCAAiC,OAAQ,CAAE1yB,YAAa,OAAQC,aAAc,8BAA+B,CAACuyB,WAAYA,EAAYC,cAAeA,EAAe+E,aAAcA,IAG3Q,SAASC,GAAwC54B,EAAmB2zB,EAA2BC,EAA8B+E,GAClI,MAAM14B,EAAUy4B,GAA8C14B,EAAQa,oBAAqB8yB,EAAYC,EAAe+E,GACtH,OAAOz4B,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAAS64B,GAAqCh4B,EAA2CqS,GAE9F,OADciX,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAM43B,EAAAA,iBAAkB,OAAQ,CAAE33B,YAAa,OAAQC,aAAc,eAAgB,CAAC8R,eAAgBA,IAGhL,SAAS6lB,GAA+B/4B,EAAmBkT,GAChE,MAAMjT,EAAU44B,GAAqC74B,EAAQa,oBAAqBqS,GAClF,OAAOhT,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASg5B,GAAuBnvB,EAA4BE,EAA8BkvB,EAAqBC,EAAiCC,GAErJ,OADchP,IACDjpB,qCAAqC,eAAe,EAAMk4B,EAAAA,cAAe,QAAS,CAAEj4B,YAAa,OAAQC,aAAc,YAAa,CAACyI,WAAYA,EAAYE,aAAcA,EAAckvB,IAAKA,EAAKC,gBAAiBA,EAAiBC,eAAgBA,IAG7P,SAASE,GAAiBr5B,EAAmB6J,EAA4BE,EAA8BkvB,EAAqBC,EAAiCC,GAClK,MAAMl5B,EAAU+4B,GAAuBnvB,EAAYE,EAAckvB,EAAKC,EAAiBC,GACvF,OAAOj5B,EAAAA,EAAAA,IAAwBD,EAASD,GAGnC,SAASs5B,GAA8BzvB,GAE5C,OADcsgB,IACDjpB,qCAAqC,sBAAsB,EAAMk4B,EAAAA,cAAe,QAAS,CAAEj4B,YAAa,OAAQC,aAAc,YAAa,CAACyI,WAAYA,IAGhK,SAAS0vB,GAAwBv5B,EAAmB6J,GACzD,MAAM5J,EAAUq5B,GAA8BzvB,GAC9C,OAAO3J,EAAAA,EAAAA,IAAwBD,EAASD,GAGnC,SAASw5B,GAAmC34B,EAA2C+pB,EAAwBC,EAAgC4O,GAEpJ,OADctP,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAMw4B,EAAAA,yBAA0B,OAAQ,CAAEv4B,YAAa,OAAQC,aAAc,uBAAwB,CAACwpB,QAASA,EAASC,gBAAiBA,EAAiB4O,wBAAyBA,IAG3P,SAASE,GAA6B35B,EAAmB4qB,EAAwBC,EAAgC4O,GACtH,MAAMx5B,EAAUu5B,GAAmCx5B,EAAQa,oBAAqB+pB,EAASC,EAAiB4O,GAC1G,OAAOv5B,EAAAA,EAAAA,IAAqCD,EAASD,GAGhD,SAAS45B,GAAqCC,GAEnD,OADc1P,IACDjpB,qCAAqC,6BAA6B,EAAMw4B,EAAAA,yBAA0B,QAAS,CAAEv4B,YAAa,MAAOC,aAAc,uBAAwB,CAACy4B,oBAAqBA,IAGrM,SAASC,GAA+B95B,EAAmB65B,GAChE,MAAM55B,EAAU25B,GAAqCC,GACrD,OAAO35B,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAAS+5B,GAA2CC,GAEzD,OADc7P,IACDjpB,qCAAqC,mCAAmC,EAAM+4B,EAAAA,+BAAgC,QAAS,CAAE94B,YAAa,MAAOC,aAAc,6BAA8B,CAAC44B,0BAA2BA,IAG7N,SAASE,GAAqCl6B,EAAmBg6B,GACtE,MAAM/5B,EAAU85B,GAA2CC,GAC3D,OAAO95B,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAASm6B,GAA2Bt5B,EAA2Cu5B,GAEpF,OADcjQ,IAAarpB,eAAeD,GAC7BK,qCAAqC,mBAAmB,EAAMm5B,EAAAA,iBAAkB,OAAQ,CAAEl5B,YAAa,OAAQC,aAAc,eAAgB,CAACg5B,WAAYA,IAGlK,SAASE,GAAqBt6B,EAAmBo6B,GACtD,MAAMn6B,EAAUk6B,GAA2Bn6B,EAAQa,oBAAqBu5B,GACxE,OAAOl6B,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASu6B,GAA8B1oB,EAA+B2oB,GAE3E,OADcrQ,IACDjpB,qCAAqC,sBAAsB,EAAMu5B,EAAAA,sBAAuB,QAAS,CAAEt5B,YAAa,OAAQC,aAAc,oBAAqB,CAACyQ,cAAeA,EAAe2oB,qBAAsBA,IAGxN,SAASE,GAAwB16B,EAAmB6R,EAA+B2oB,GACxF,MAAMv6B,EAAUs6B,GAA8B1oB,EAAe2oB,GAC7D,OAAOt6B,EAAAA,EAAAA,IAAgCD,EAASD,GAG3C,SAAS26B,GAA0CC,EAAuBC,EAAiCC,EAAiCC,GAEjJ,OADc5Q,IACDjpB,qCAAqC,kCAAkC,EAAM85B,EAAAA,kCAAmC,QAAS,CAAE75B,YAAa,MAAOC,aAAc,gCAAiC,CAACw5B,MAAOA,EAAOK,gBAAiBJ,EAAiBC,gBAAiBA,EAAiBC,gBAAiBA,IAG1S,SAASG,GAAoCl7B,EAAmB46B,EAAuBC,EAAiCC,EAAiCC,GAC9J,MAAM96B,EAAU06B,GAA0CC,EAAOC,EAAiBC,EAAiBC,GACnG,OAAO76B,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASm7B,GAA0CP,EAAuBC,GAE/E,OADc1Q,IACDjpB,qCAAqC,kCAAkC,EAAM85B,EAAAA,kCAAmC,QAAS,CAAE75B,YAAa,MAAOC,aAAc,gCAAiC,CAACw5B,MAAOA,EAAOK,gBAAiBJ,IAGtO,SAASO,GAAoCp7B,EAAmB46B,EAAuBC,GAC5F,MAAM56B,EAAUk7B,GAA0CP,EAAOC,GACjE,OAAO36B,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASq7B,KAEd,OADclR,IACDjpB,qCAAqC,8BAA8B,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,IAGlI,SAASk6B,GAAgCt7B,GAC9C,MAAMC,EAAUo7B,KAChB,OAAOn7B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASu7B,GAAgC16B,GAE9C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,wBAAwB,EAAMs6B,EAAAA,0BAA2B,OAAQ,CAAEr6B,YAAa,OAAQC,aAAc,wBAAyB,IAG5K,SAASq6B,GAA0Bz7B,GACxC,MAAMC,EAAUs7B,GAAgCv7B,EAAQa,qBACxD,OAAOX,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAAS07B,KAEd,OADcvR,IACDjpB,qCAAqC,qCAAqC,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,IAG/I,SAASu6B,GAAuC37B,GACrD,MAAMC,EAAUy7B,KAChB,OAAOx7B,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS47B,GAAoDhR,EAAiBC,GAEnF,OADcV,IACDjpB,qCAAqC,4CAA4C,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAACwpB,QAASA,EAASC,gBAAiBA,IAG1L,SAASgR,GAA8C77B,EAAmB4qB,EAAiBC,GAChG,MAAM5qB,EAAU27B,GAAoDhR,EAASC,GAC7E,OAAO3qB,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS87B,GAAiCC,GAE/C,OADc5R,IACDjpB,qCAAqC,yBAAyB,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC26B,gBAAiBA,IAGpJ,SAASC,GAA2Bh8B,EAAmB+7B,GAC5D,MAAM97B,EAAU67B,GAAiCC,GACjD,OAAO77B,EAAAA,EAAAA,IAAuBD,EAASD,GAGlC,SAASi8B,GAAoCC,GAElD,OADc/R,IACDjpB,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC86B,WAAYA,IAG7I,SAASC,GAA8Bn8B,EAAmBk8B,GAC/D,MAAMj8B,EAAUg8B,GAAoCC,GACpD,OAAOh8B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASo8B,KAEd,OADcjS,IACDjpB,qCAAqC,kCAAkC,EAAMm7B,EAAAA,wBAAyB,QAAS,CAAEl7B,YAAa,OAAQC,aAAc,sBAAuB,IAGnL,SAASk7B,GAAoCt8B,GAClD,MAAMC,EAAUm8B,KAChB,OAAOl8B,EAAAA,EAAAA,IAAkCD,EAASD,GAG7C,SAASu8B,GAA4C17B,GAE1D,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,oCAAoC,EAAMs7B,EAAAA,eAAgB,OAAQ,CAAEr7B,YAAa,OAAQC,aAAc,aAAc,IAGlK,SAASq7B,GAAsCz8B,GACpD,MAAMC,EAAUs8B,GAA4Cv8B,EAAQa,qBACpE,OAAOX,EAAAA,EAAAA,IAA2BD,EAASD,GAGtC,SAAS08B,GAA0CC,EAA6CC,GAErG,OADczS,IACDjpB,qCAAqC,kCAAkC,EAAMs7B,EAAAA,eAAgB,QAAS,CAAEr7B,YAAa,OAAQC,aAAc,aAAc,CAACu7B,oCAAqCA,EAAqCC,eAAgBA,IAG5P,SAASC,GAAoC78B,EAAmB28B,EAA6CC,GAClH,MAAM38B,EAAUy8B,GAA0CC,EAAqCC,GAC/F,OAAO18B,EAAAA,EAAAA,IAAyBD,EAASD,GAGpC,SAAS88B,GAAmCj8B,EAA2C87B,EAA6CI,EAAoCC,GAE7K,OADc7S,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAM+7B,EAAAA,4BAA6B,OAAQ,CAAE97B,YAAa,OAAQC,aAAc,0BAA2B,CAACu7B,oCAAqCA,EAAqCI,oBAAqBA,EAAqBC,eAAgBA,IAGxT,SAASE,GAA6Bl9B,EAAmB28B,EAA6CI,EAAoCC,GAC/I,MAAM/8B,EAAU68B,GAAmC98B,EAAQa,oBAAqB87B,EAAqCI,EAAqBC,GAC1I,OAAO98B,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAASm9B,GAA+CC,GAE7D,OADcjT,IACDjpB,qCAAqC,uCAAuC,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg8B,cAAeA,IAGhK,SAASC,GAAyCr9B,EAAmBo9B,GAC1E,MAAMn9B,EAAUk9B,GAA+CC,GAC/D,OAAOl9B,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASs9B,GAA6BC,GAE3C,OADcpT,IACDjpB,qCAAqC,qBAAqB,EAAMs8B,EAAAA,eAAgB,QAAS,CAAEr8B,YAAa,MAAOC,aAAc,aAAc,CAACm8B,2BAA4BA,IAGhL,SAASE,GAAuBz9B,EAAmBu9B,GACxD,MAAMt9B,EAAUq9B,GAA6BC,GAC7C,OAAOr9B,EAAAA,EAAAA,IAAyBD,EAASD,GAGpC,SAAS09B,GAAiCC,GAE/C,OADcxT,IACDjpB,qCAAqC,yBAAyB,EAAMs8B,EAAAA,eAAgB,QAAS,CAAEr8B,YAAa,MAAOC,aAAc,aAAc,CAACu8B,aAAcA,IAGtK,SAASC,GAA2B59B,EAAmB29B,GAC5D,MAAM19B,EAAUy9B,GAAiCC,GACjD,OAAOz9B,EAAAA,EAAAA,IAAyBD,EAASD,GAGpC,SAAS69B,GAAiCT,GAE/C,OADcjT,IACDjpB,qCAAqC,yBAAyB,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg8B,cAAeA,IAGlJ,SAASU,GAA2B99B,EAAmBo9B,GAC5D,MAAMn9B,EAAU49B,GAAiCT,GACjD,OAAOl9B,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS+9B,GAAoCX,GAElD,OADcjT,IACDjpB,qCAAqC,4BAA4B,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg8B,cAAeA,IAGrJ,SAASY,GAA8Bh+B,EAAmBo9B,GAC/D,MAAMn9B,EAAU89B,GAAoCX,GACpD,OAAOl9B,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASi+B,GAAmCb,GAEjD,OADcjT,IACDjpB,qCAAqC,2BAA2B,EAAM,GAAI,QAAS,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg8B,cAAeA,IAGpJ,SAASc,GAA6Bl+B,EAAmBo9B,GAC9D,MAAMn9B,EAAUg+B,GAAmCb,GACnD,OAAOl9B,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASm+B,GAA2Bf,EAAiCG,GAE1E,OADcpT,IACDjpB,qCAAqC,mBAAmB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg8B,cAAeA,EAAeG,2BAA4BA,IAGlL,SAASa,GAAqBp+B,EAAmBo9B,EAAiCG,GACvF,MAAMt9B,EAAUk+B,GAA2Bf,EAAeG,GAC1D,OAAOr9B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASq+B,GAAmCx9B,EAA2Cy9B,GAE5F,OADcnU,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAMq9B,EAAAA,yBAA0B,OAAQ,CAAEp9B,YAAa,OAAQC,aAAc,uBAAwB,CAACk9B,4BAA6BA,IAG3M,SAASE,GAA6Bx+B,EAAmBs+B,GAC9D,MAAMr+B,EAAUo+B,GAAmCr+B,EAAQa,oBAAqBy9B,GAChF,OAAOp+B,EAAAA,EAAAA,IAAqCD,EAASD,GAGhD,SAASy+B,GAAwC59B,EAA2C69B,GAEjG,OADcvU,IAAarpB,eAAeD,GAC7BK,qCAAqC,gCAAgC,EAAMy9B,EAAAA,8BAA+B,OAAQ,CAAEx9B,YAAa,OAAQC,aAAc,4BAA6B,CAACs9B,iCAAkCA,IAG/N,SAASE,GAAkC5+B,EAAmB0+B,GACnE,MAAMz+B,EAAUw+B,GAAwCz+B,EAAQa,oBAAqB69B,GACrF,OAAOx+B,EAAAA,EAAAA,IAA0CD,EAASD,GAGrD,SAAS6+B,GAAiCC,GAE/C,OADc3U,IACDjpB,qCAAqC,yBAAyB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC09B,kBAAmBA,IAGjJ,SAASC,GAA2B/+B,EAAmB8+B,GAC5D,MAAM7+B,EAAU4+B,GAAiCC,GACjD,OAAO5+B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASg/B,GAA2CC,GAEzD,OADc9U,IACDjpB,qCAAqC,mCAAmC,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC69B,kBAAmBA,IAG3J,SAASC,GAAqCl/B,EAAmBi/B,GACtE,MAAMh/B,EAAU++B,GAA2CC,GAC3D,OAAO/+B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASm/B,GAA8BC,GAE5C,OADcjV,IACDjpB,qCAAqC,sBAAsB,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg+B,WAAYA,IAGvI,SAASC,GAAwBr/B,EAAmBo/B,GACzD,MAAMn/B,EAAUk/B,GAA8BC,GAC9C,OAAOl/B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASs/B,GAAoCF,GAElD,OADcjV,IACDjpB,qCAAqC,4BAA4B,EAAMq+B,EAAAA,gBAAiB,QAAS,CAAEp+B,YAAa,MAAOC,aAAc,cAAe,CAACg+B,WAAYA,IAGzK,SAASI,GAA8Bx/B,EAAmBo/B,GAC/D,MAAMn/B,EAAUq/B,GAAoCF,GACpD,OAAOl/B,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASy/B,GAA0C5+B,EAA2C6+B,EAAmB9iB,EAAwBhE,GAE9I,OADcuR,IAAarpB,eAAeD,GAC7BK,qCAAqC,kCAAkC,EAAMy+B,EAAAA,iCAAkC,OAAQ,CAAEx+B,YAAa,OAAQC,aAAc,+BAAgC,CAACs+B,UAAWA,EAAW9iB,OAAQA,EAAQhE,iBAAkBA,IAG7P,SAASgnB,GAAoC5/B,EAAmB0/B,EAAmB9iB,EAAwBhE,GAChH,MAAM3Y,EAAUw/B,GAA0Cz/B,EAAQa,oBAAqB6+B,EAAW9iB,EAAQhE,GAC1G,OAAO1Y,EAAAA,EAAAA,IAA6CD,EAASD,GAGxD,SAAS6/B,GAAkDh/B,EAA2CgV,EAA6BiX,GAExI,OADc3C,IAAarpB,eAAeD,GAC7BK,qCAAqC,0CAA0C,EAAM0C,EAAAA,gBAAiB,OAAQ,CAAEzC,YAAa,OAAQC,aAAc,cAAe,CAACyU,YAAaA,EAAaiX,WAAYA,IAGjN,SAASgT,GAA4C9/B,EAAmB6V,EAA6BiX,GAC1G,MAAM7sB,EAAU4/B,GAAkD7/B,EAAQa,oBAAqBgV,EAAaiX,GAC5G,OAAO5sB,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS+/B,GAA4Bl/B,EAA2Cm/B,EAAgCv0B,GAErH,OADc0e,IAAarpB,eAAeD,GAC7BK,qCAAqC,oBAAoB,EAAM++B,EAAAA,sBAAuB,OAAQ,CAAE9+B,YAAa,OAAQC,aAAc,oBAAqB,CAAC4+B,qBAAsBA,EAAsBv0B,oBAAqBA,IAGlO,SAASy0B,GAAsBlgC,EAAmBggC,EAAgCv0B,GACvF,MAAMxL,EAAU8/B,GAA4B//B,EAAQa,oBAAqBm/B,EAAsBv0B,GAC/F,OAAOvL,EAAAA,EAAAA,IAAkCD,EAASD,GAG7C,SAASmgC,GAAoCC,GAElD,OADcjW,IACDjpB,qCAAqC,4BAA4B,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACg/B,iBAAkBA,IAGnJ,SAASC,GAA8BrgC,EAAmBogC,GAC/D,MAAMngC,EAAUkgC,GAAoCC,GACpD,OAAOlgC,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASsgC,GAA8C1Z,EAAmC2Z,EAA6CC,EAAgGC,GAE5O,OADctW,IACDjpB,qCAAqC,sCAAsC,EAAMw/B,EAAAA,+BAAgC,QAAS,CAAEv/B,YAAa,OAAQC,aAAc,6BAA8B,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6BC,2CAA4CA,EAA4CC,cAAeA,IAG7Y,SAASE,GAAwC3gC,EAAmB4mB,EAAmC2Z,EAA6CC,EAAgGC,GACzP,MAAMxgC,EAAUqgC,GAA8C1Z,EAAmB2Z,EAA6BC,EAA4CC,GAC1J,OAAOvgC,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAAS4gC,GAAiDha,EAAmC2Z,EAA6CC,EAAgGC,GAE/O,OADctW,IACDjpB,qCAAqC,yCAAyC,EAAMw/B,EAAAA,+BAAgC,QAAS,CAAEv/B,YAAa,OAAQC,aAAc,6BAA8B,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6BC,2CAA4CA,EAA4CC,cAAeA,IAGhZ,SAASI,GAA2C7gC,EAAmB4mB,EAAmC2Z,EAA6CC,EAAgGC,GAC5P,MAAMxgC,EAAU2gC,GAAiDha,EAAmB2Z,EAA6BC,EAA4CC,GAC7J,OAAOvgC,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAAS8gC,GAA0Dla,EAAmC2Z,EAA6CE,GAExJ,OADctW,IACDjpB,qCAAqC,kDAAkD,EAAMw/B,EAAAA,+BAAgC,QAAS,CAAEv/B,YAAa,OAAQC,aAAc,6BAA8B,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6BE,cAAeA,IAGjU,SAASM,GAAoD/gC,EAAmB4mB,EAAmC2Z,EAA6CE,GACrK,MAAMxgC,EAAU6gC,GAA0Dla,EAAmB2Z,EAA6BE,GAC1H,OAAOvgC,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAASghC,GAA6Dpa,EAAmC2Z,EAA6CE,GAE3J,OADctW,IACDjpB,qCAAqC,qDAAqD,EAAMw/B,EAAAA,+BAAgC,QAAS,CAAEv/B,YAAa,OAAQC,aAAc,6BAA8B,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6BE,cAAeA,IAGpU,SAASQ,GAAuDjhC,EAAmB4mB,EAAmC2Z,EAA6CE,GACxK,MAAMxgC,EAAU+gC,GAA6Dpa,EAAmB2Z,EAA6BE,GAC7H,OAAOvgC,EAAAA,EAAAA,IAAyCD,EAASD,GAGpD,SAASkhC,GAA+Dta,EAAmC2Z,EAA6CY,EAAmCV,GAEhM,OADctW,IACDjpB,qCAAqC,uDAAuD,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6BY,kBAAmBA,EAAmBV,cAAeA,IAGjT,SAASW,GAAyDphC,EAAmB4mB,EAAmC2Z,EAA6CY,EAAmCV,GAC7M,MAAMxgC,EAAUihC,GAA+Dta,EAAmB2Z,EAA6BY,EAAmBV,GAClJ,OAAOvgC,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASqhC,GAAmDza,EAAmC2Z,EAA6Ce,EAAiEb,GAElN,OADctW,IACDjpB,qCAAqC,2CAA2C,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,EAA6Be,mBAAoBA,EAAoBb,cAAeA,IAGvS,SAASc,GAA6CvhC,EAAmB4mB,EAAmC2Z,EAA6Ce,EAAiEb,GAC/N,MAAMxgC,EAAUohC,GAAmDza,EAAmB2Z,EAA6Be,EAAoBb,GACvI,OAAOvgC,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAASwhC,KAEd,OADcrX,IACDjpB,qCAAqC,2CAA2C,EAAMugC,EAAAA,0CAA2C,QAAS,CAAEtgC,YAAa,OAAQC,aAAc,wCAAyC,IAGhO,SAASsgC,GAA6C1hC,GAC3D,MAAMC,EAAUuhC,KAChB,OAAOthC,EAAAA,EAAAA,IAAoDD,EAASD,GAG/D,SAAS2hC,GAA6DpB,GAE3E,OADcpW,IACDjpB,qCAAqC,qDAAqD,EAAM0gC,EAAAA,sCAAuC,QAAS,CAAEzgC,YAAa,OAAQC,aAAc,oCAAqC,CAACm/B,4BAA6BA,IAGhQ,SAASsB,GAAuD7hC,EAAmBugC,GACxF,MAAMtgC,EAAU0hC,GAA6DpB,GAC7E,OAAOrgC,EAAAA,EAAAA,IAAgDD,EAASD,GAG3D,SAAS8hC,GAAiDjhC,EAA2C+lB,GAE1G,OADcuD,IAAarpB,eAAeD,GAC7BK,qCAAqC,yCAAyC,EAAM6gC,EAAAA,uCAAwC,OAAQ,CAAE5gC,YAAa,OAAQC,aAAc,qCAAsC,CAACwlB,kBAAmBA,IAG3O,SAASob,GAA2ChiC,EAAmB4mB,GAC5E,MAAM3mB,EAAU6hC,GAAiD9hC,EAAQa,oBAAqB+lB,GAC9F,OAAO1mB,EAAAA,EAAAA,IAAmDD,EAASD,GAG9D,SAASiiC,GAAwEphC,EAA2C+lB,EAAmC2Z,GAEpK,OADcpW,IAAarpB,eAAeD,GAC7BK,qCAAqC,gEAAgE,EAAM6gC,EAAAA,uCAAwC,OAAQ,CAAE5gC,YAAa,OAAQC,aAAc,qCAAsC,CAACwlB,kBAAmBA,EAAmB2Z,4BAA6BA,IAGlT,SAAS2B,GAAkEliC,EAAmB4mB,EAAmC2Z,GACtI,MAAMtgC,EAAUgiC,GAAwEjiC,EAAQa,oBAAqB+lB,EAAmB2Z,GACxI,OAAOrgC,EAAAA,EAAAA,IAAmDD,EAASD,GAG9D,SAASmiC,GAA+Cvb,GAE7D,OADcuD,IACDjpB,qCAAqC,uCAAuC,EAAMkhC,EAAAA,uDAAwD,QAAS,CAAEjhC,YAAa,OAAQC,aAAc,qDAAsD,CAACwlB,kBAAmBA,IAG1Q,SAASyb,GAAyCriC,EAAmB4mB,GAC1E,MAAM3mB,EAAUkiC,GAA+Cvb,GAC/D,OAAO1mB,EAAAA,EAAAA,IAAiED,EAASD,GAG5E,SAASsiC,GAAkDxV,EAA2BjX,EAA4BrR,EAAmB+9B,EAAiCC,GAE3K,OADcrY,IACDjpB,qCAAqC,0CAA0C,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAAC0rB,WAAYA,EAAYjX,YAAaA,EAAarR,UAAWA,EAAW+9B,uBAAwBA,EAAwBC,mCAAoCA,IAG3S,SAASC,GAA4CziC,EAAmB8sB,EAA2BjX,EAA4BrR,EAAmB+9B,EAAiCC,GACxL,MAAMviC,EAAUqiC,GAAkDxV,EAAYjX,EAAarR,EAAW+9B,EAAwBC,GAC9H,OAAOtiC,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS0iC,GAA2D5V,EAA2BjX,EAA4BrR,GAEhI,OADc2lB,IACDjpB,qCAAqC,mDAAmD,EAAM,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAAC0rB,WAAYA,EAAYjX,YAAaA,EAAarR,UAAWA,IAG3N,SAASm+B,GAAqD3iC,EAAmB8sB,EAA2BjX,EAA4BrR,GAC7I,MAAMvE,EAAUyiC,GAA2D5V,EAAYjX,EAAarR,GACpG,OAAOtE,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS4iC,GAAiE/hC,EAA2C+lB,EAAmCic,GAE7J,OADc1Y,IAAarpB,eAAeD,GAC7BK,qCAAqC,yDAAyD,EAAM6gC,EAAAA,uCAAwC,OAAQ,CAAE5gC,YAAa,OAAQC,aAAc,qCAAsC,CAACwlB,kBAAmBA,EAAmBic,gDAAiDA,IAG/T,SAASC,GAA2D9iC,EAAmB4mB,EAAmCic,GAC/H,MAAM5iC,EAAU2iC,GAAiE5iC,EAAQa,oBAAqB+lB,EAAmBic,GACjI,OAAO3iC,EAAAA,EAAAA,IAAmDD,EAASD,GAG9D,SAAS+iC,GAA6CC,GAE3D,OADc7Y,IACDjpB,qCAAqC,qCAAqC,EAAM+hC,EAAAA,oCAAqC,QAAS,CAAE9hC,YAAa,OAAQC,aAAc,kCAAmC,CAAC4hC,6BAA8BA,IAG7O,SAASE,GAAuCljC,EAAmBgjC,GACxE,MAAM/iC,EAAU8iC,GAA6CC,GAC7D,OAAO9iC,EAAAA,EAAAA,IAA8CD,EAASD,GAGzD,SAASmjC,GAA2CC,EAAkCJ,GAE3F,OADc7Y,IACDjpB,qCAAqC,mCAAmC,EAAMmiC,EAAAA,iDAAkD,QAAS,CAAEliC,YAAa,MAAOC,aAAc,+CAAgD,CAACgiC,iBAAkBA,EAAkBJ,6BAA8BA,IAGxS,SAASM,GAAqCtjC,EAAmBojC,EAAkCJ,GACxG,MAAM/iC,EAAUkjC,GAA2CC,EAAkBJ,GAC7E,OAAO9iC,EAAAA,EAAAA,IAA2DD,EAASD,GAGtE,SAASujC,GAA4B1iC,EAA2C2iC,GAErF,OADcrZ,IAAarpB,eAAeD,GAC7BK,qCAAqC,oBAAoB,EAAMuiC,EAAAA,kBAAmB,OAAQ,CAAEtiC,YAAa,OAAQC,aAAc,gBAAiB,CAACoiC,aAAcA,IAGvK,SAASE,GAAsB1jC,EAAmBwjC,GACvD,MAAMvjC,EAAUsjC,GAA4BvjC,EAAQa,oBAAqB2iC,GACzE,OAAOtjC,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAAS2jC,GAAwD9iC,EAA2C+iC,GAEjH,OADczZ,IAAarpB,eAAeD,GAC7BK,qCAAqC,gDAAgD,EAAM2iC,EAAAA,8CAA+C,OAAQ,CAAE1iC,YAAa,OAAQC,aAAc,4CAA6C,CAACwiC,eAAgBA,IAG7P,SAASE,GAAkD9jC,EAAmB4jC,GACnF,MAAM3jC,EAAU0jC,GAAwD3jC,EAAQa,oBAAqB+iC,GACrG,OAAO1jC,EAAAA,EAAAA,IAA0DD,EAASD,GAGrE,SAAS+jC,GAAmCxD,EAA4Ce,EAAgEb,GAE7J,OADctW,IACDjpB,qCAAqC,2BAA2B,EAAM8iC,EAAAA,uBAAwB,QAAS,CAAE7iC,YAAa,MAAOC,aAAc,qBAAsB,CAACm/B,4BAA6BA,EAA6Be,mBAAoBA,EAAoBb,cAAeA,IAG3R,SAASwD,GAA6BjkC,EAAmBugC,EAA4Ce,EAAgEb,GAC1K,MAAMxgC,EAAU8jC,GAAmCxD,EAA6Be,EAAoBb,GACpG,OAAOvgC,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASkkC,GAAoDrjC,EAA2CqS,GAE7G,OADciX,IAAarpB,eAAeD,GAC7BK,qCAAqC,4CAA4C,EAAMijC,EAAAA,gCAAiC,OAAQ,CAAEhjC,YAAa,OAAQC,aAAc,8BAA+B,CAAC8R,eAAgBA,IAG7N,SAASkxB,GAA8CpkC,EAAmBkT,GAC/E,MAAMjT,EAAUikC,GAAoDlkC,EAAQa,oBAAqBqS,GACjG,OAAOhT,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASqkC,GAAkCC,GAEhD,OADcna,IACDjpB,qCAAqC,0BAA0B,EAAM+B,EAAAA,UAAW,QAAS,CAAE9B,YAAa,MAAOC,aAAc,QAAS,CAACkjC,cAAeA,IAG9J,SAASC,GAA4BvkC,EAAmBskC,GAC7D,MAAMrkC,EAAUokC,GAAkCC,GAClD,OAAOpkC,EAAAA,EAAAA,IAAoBD,EAASD,GAG/B,SAASwkC,GAA0B3jC,GAExC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,kBAAkB,EAAOmtB,EAAAA,gBAAiB,OAAQ,CAAEltB,YAAa,OAAQC,aAAc,cAAe,IAGnJ,SAASqjC,GAAoBzkC,GAClC,MAAMC,EAAUukC,GAA0BxkC,EAAQa,qBAClD,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS0kC,GAAsC7jC,EAA2C2tB,EAAgBC,GAE/G,OADctE,IAAarpB,eAAeD,GAC7BK,qCAAqC,8BAA8B,EAAOmtB,EAAAA,gBAAiB,OAAQ,CAAEltB,YAAa,OAAQC,aAAc,cAAe,CAACotB,OAAQA,EAAQC,MAAOA,IAGvL,SAASkW,GAAgC3kC,EAAmBwuB,EAAgBC,GACjF,MAAMxuB,EAAUykC,GAAsC1kC,EAAQa,oBAAqB2tB,EAAQC,GAC3F,OAAOvuB,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS4kC,KAEd,OADcza,IACDjpB,qCAAqC,uCAAuC,EAAO2jC,EAAAA,sCAAuC,QAAS,CAAE1jC,YAAa,OAAQC,aAAc,oCAAqC,IAGrN,SAAS0jC,GAAyC9kC,GACvD,MAAMC,EAAU2kC,KAChB,OAAO1kC,EAAAA,EAAAA,IAAgDD,EAASD,GAG3D,SAAS+kC,GAA+BlkC,GAE7C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAO8jC,EAAAA,qBAAsB,OAAQ,CAAE7jC,YAAa,OAAQC,aAAc,mBAAoB,IAGlK,SAAS6jC,GAAyBjlC,GACvC,MAAMC,EAAU8kC,GAA+B/kC,EAAQa,qBACvD,OAAOX,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASklC,GAA6BrkC,GAE3C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAOgvB,EAAAA,uBAAwB,OAAQ,CAAE/uB,YAAa,OAAQC,aAAc,qBAAsB,IAGpK,SAAS+jC,GAAuBnlC,GACrC,MAAMC,EAAUilC,GAA6BllC,EAAQa,qBACrD,OAAOX,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASolC,GAA6BvkC,GAE3C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAOmkC,EAAAA,mBAAoB,OAAQ,CAAElkC,YAAa,OAAQC,aAAc,iBAAkB,IAG5J,SAASkkC,GAAuBtlC,GACrC,MAAMC,EAAUmlC,GAA6BplC,EAAQa,qBACrD,OAAOX,EAAAA,EAAAA,IAA+BD,EAASD,GAG1C,SAASulC,KAEd,OADcpb,IACDjpB,qCAAqC,yCAAyC,EAAOskC,EAAAA,wCAAyC,QAAS,CAAErkC,YAAa,OAAQC,aAAc,sCAAuC,IAG3N,SAASqkC,GAA2CzlC,GACzD,MAAMC,EAAUslC,KAChB,OAAOrlC,EAAAA,EAAAA,IAAkDD,EAASD,GAG7D,SAAS0lC,GAA6B7kC,EAA2C8kC,GAEtF,OADcxb,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAO0kC,EAAAA,qBAAsB,OAAQ,CAAEzkC,YAAa,OAAQC,aAAc,mBAAoB,CAACukC,YAAaA,IAG9K,SAASE,GAAuB7lC,EAAmB2lC,GACxD,MAAM1lC,EAAUylC,GAA6B1lC,EAAQa,oBAAqB8kC,GAC1E,OAAOzlC,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAAS8lC,GAAuBjlC,GAErC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,eAAe,EAAO0kC,EAAAA,qBAAsB,OAAQ,CAAEzkC,YAAa,OAAQC,aAAc,mBAAoB,IAG1J,SAAS2kC,GAAiB/lC,GAC/B,MAAMC,EAAU6lC,GAAuB9lC,EAAQa,qBAC/C,OAAOX,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASgmC,GAA0BnlC,EAA2CqS,GAEnF,OADciX,IAAarpB,eAAeD,GAC7BK,qCAAqC,kBAAkB,EAAM0kC,EAAAA,qBAAsB,OAAQ,CAAEzkC,YAAa,OAAQC,aAAc,mBAAoB,CAAC8R,eAAgBA,IAG7K,SAAS+yB,GAAoBjmC,EAAmBkT,GACrD,MAAMjT,EAAU+lC,GAA0BhmC,EAAQa,oBAAqBqS,GACvE,OAAOhT,EAAAA,EAAAA,IAAiCD,EAASD,GAG5C,SAASkmC,KAEd,OADc/b,IACDjpB,qCAAqC,+BAA+B,EAAOilC,EAAAA,8BAA+B,QAAS,CAAEhlC,YAAa,OAAQC,aAAc,4BAA6B,IAG7L,SAASglC,GAAiCpmC,GAC/C,MAAMC,EAAUimC,KAChB,OAAOhmC,EAAAA,EAAAA,IAAwCD,EAASD,GAGnD,SAASqmC,KAEd,OADclc,IACDjpB,qCAAqC,0BAA0B,EAAOolC,EAAAA,yBAA0B,QAAS,CAAEnlC,YAAa,OAAQC,aAAc,uBAAwB,IAG9K,SAASmlC,GAA4BvmC,GAC1C,MAAMC,EAAUomC,KAChB,OAAOnmC,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASwmC,GAA0C3lC,GAExD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,kCAAkC,EAAOulC,EAAAA,gCAAiC,OAAQ,CAAEtlC,YAAa,OAAQC,aAAc,8BAA+B,IAGnM,SAASslC,GAAoC1mC,GAClD,MAAMC,EAAUumC,GAA0CxmC,EAAQa,qBAClE,OAAOX,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAAS2mC,KAEd,OADcxc,IACDjpB,qCAAqC,uBAAuB,EAAO0lC,EAAAA,sBAAuB,QAAS,CAAEzlC,YAAa,OAAQC,aAAc,oBAAqB,IAGrK,SAASylC,GAAyB7mC,GACvC,MAAMC,EAAU0mC,KAChB,OAAOzmC,EAAAA,EAAAA,IAAgCD,EAASD,GAG3C,SAAS8mC,KAEd,OADc3c,IACDjpB,qCAAqC,0BAA0B,EAAO6lC,EAAAA,yBAA0B,QAAS,CAAE5lC,YAAa,OAAQC,aAAc,uBAAwB,IAG9K,SAAS4lC,GAA4BhnC,GAC1C,MAAMC,EAAU6mC,KAChB,OAAO5mC,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASinC,KAEd,OADc9c,IACDjpB,qCAAqC,oBAAoB,EAAOgmC,EAAAA,mBAAoB,QAAS,CAAE/lC,YAAa,OAAQC,aAAc,iBAAkB,IAG5J,SAAS+lC,GAAsBnnC,GACpC,MAAMC,EAAUgnC,KAChB,OAAO/mC,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASonC,GAAwBvmC,GAEtC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,gBAAgB,EAAOmmC,EAAAA,uBAAwB,OAAQ,CAAElmC,YAAa,OAAQC,aAAc,qBAAsB,IAG/J,SAASkmC,GAAkBtnC,GAChC,MAAMC,EAAUmnC,GAAwBpnC,EAAQa,qBAChD,OAAOX,EAAAA,EAAAA,IAAmCD,EAASD,GAG9C,SAASunC,GAA2B1mC,GAEzC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,mBAAmB,EAAOspB,EAAAA,iBAAkB,OAAQ,CAAErpB,YAAa,OAAQC,aAAc,eAAgB,IAGtJ,SAASomC,GAAqBxnC,GACnC,MAAMC,EAAUsnC,GAA2BvnC,EAAQa,qBACnD,OAAOX,EAAAA,EAAAA,IAA6BD,EAASD,GAGxC,SAASynC,GAAmC5mC,GAEjD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAO40B,EAAAA,yBAA0B,OAAQ,CAAE30B,YAAa,OAAQC,aAAc,uBAAwB,IAG9K,SAASsmC,GAA6B1nC,GAC3C,MAAMC,EAAUwnC,GAAmCznC,EAAQa,qBAC3D,OAAOX,EAAAA,EAAAA,IAAqCD,EAASD,GAGhD,SAAS2nC,GAA0B9mC,GAExC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,kBAAkB,EAAOg1B,EAAAA,gBAAiB,OAAQ,CAAE/0B,YAAa,OAAQC,aAAc,cAAe,IAGnJ,SAASwmC,GAAoB5nC,GAClC,MAAMC,EAAU0nC,GAA0B3nC,EAAQa,qBAClD,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS6nC,GAAqChnC,GAEnD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAOg1B,EAAAA,gBAAiB,OAAQ,CAAE/0B,YAAa,OAAQC,aAAc,cAAe,IAG9J,SAAS0mC,GAA+B9nC,GAC7C,MAAMC,EAAU4nC,GAAqC7nC,EAAQa,qBAC7D,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS+nC,GAA6BlnC,GAE3C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAO8mC,EAAAA,mBAAoB,OAAQ,CAAE7mC,YAAa,OAAQC,aAAc,iBAAkB,IAG5J,SAAS6mC,GAAuBjoC,GACrC,MAAMC,EAAU8nC,GAA6B/nC,EAAQa,qBACrD,OAAOX,EAAAA,EAAAA,IAA+BD,EAASD,GAG1C,SAASkoC,GAA0BrnC,GAExC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,kBAAkB,EAAOinC,EAAAA,gBAAiB,OAAQ,CAAEhnC,YAAa,OAAQC,aAAc,cAAe,IAGnJ,SAASgnC,GAAoBpoC,GAClC,MAAMC,EAAUioC,GAA0BloC,EAAQa,qBAClD,OAAOX,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAASkf,GAA6Bre,GAE3C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,qBAAqB,EAAOie,EAAAA,mBAAoB,OAAQ,CAAEhe,YAAa,OAAQC,aAAc,iBAAkB,IAG5J,SAASge,GAAuBpf,GACrC,MAAMC,EAAUif,GAA6Blf,EAAQa,qBACrD,OAAOX,EAAAA,EAAAA,IAA+BD,EAASD,GAG1C,SAASqoC,GAA4BxnC,GAE1C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,oBAAoB,EAAOozB,EAAAA,kBAAmB,OAAQ,CAAEnzB,YAAa,OAAQC,aAAc,gBAAiB,IAGzJ,SAASknC,GAAsBtoC,GACpC,MAAMC,EAAUooC,GAA4BroC,EAAQa,qBACpD,OAAOX,EAAAA,EAAAA,IAA8BD,EAASD,GAGzC,SAASuoC,GAAyB1nC,GAEvC,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,iBAAiB,EAAOsnC,EAAAA,cAAe,OAAQ,CAAErnC,YAAa,OAAQC,aAAc,YAAa,IAG9I,SAASqnC,GAAmBzoC,GACjC,MAAMC,EAAUsoC,GAAyBvoC,EAAQa,qBACjD,OAAOX,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS0oC,GAA+B7nC,EAA2CmD,EAA6BgC,GAErH,OADcmkB,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAOizB,EAAAA,oBAAqB,OAAQ,CAAEhzB,YAAa,OAAQC,aAAc,kBAAmB,CAAC4C,aAAcA,EAAcgC,OAAQA,IAGrM,SAAS2iC,GAAyB3oC,EAAmBgE,EAA6BgC,GACvF,MAAM/F,EAAUyoC,GAA+B1oC,EAAQa,oBAAqBmD,EAAcgC,GAC1F,OAAO9F,EAAAA,EAAAA,IAAgCD,EAASD,GAG3C,SAAS4oC,GAAoC/nC,GAElD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,4BAA4B,EAAO2nC,EAAAA,0BAA2B,OAAQ,CAAE1nC,YAAa,OAAQC,aAAc,wBAAyB,IAGjL,SAAS0nC,GAA8B9oC,GAC5C,MAAMC,EAAU2oC,GAAoC5oC,EAAQa,qBAC5D,OAAOX,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAAS+oC,GAAuCloC,EAA2C2V,GAEhG,OADc2T,IAAarpB,eAAeD,GAC7BK,qCAAqC,+BAA+B,EAAO2nC,EAAAA,0BAA2B,OAAQ,CAAE1nC,YAAa,OAAQC,aAAc,wBAAyB,CAACoV,WAAYA,IAGjM,SAASwyB,GAAiChpC,EAAmBwW,GAClE,MAAMvW,EAAU8oC,GAAuC/oC,EAAQa,oBAAqB2V,GACpF,OAAOtW,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAASipC,GAAyCriB,GAEvD,OADcuD,IACDjpB,qCAAqC,iCAAiC,EAAOgqB,EAAAA,gCAAiC,QAAS,CAAE/pB,YAAa,OAAQC,aAAc,8BAA+B,CAACwlB,kBAAmBA,IAGvN,SAASsiB,GAAmClpC,EAAmB4mB,GACpE,MAAM3mB,EAAUgpC,GAAyCriB,GACzD,OAAO1mB,EAAAA,EAAAA,IAA0CD,EAASD,GAGrD,SAASmpC,GAA0CviB,EAAmCwiB,GAE3F,OADcjf,IACDjpB,qCAAqC,kCAAkC,EAAOgqB,EAAAA,gCAAiC,QAAS,CAAE/pB,YAAa,OAAQC,aAAc,8BAA+B,CAACwlB,kBAAmBA,EAAmBwiB,wBAAyBA,IAGpQ,SAASC,GAAoCrpC,EAAmB4mB,EAAmCwiB,GACxG,MAAMnpC,EAAUkpC,GAA0CviB,EAAmBwiB,GAC7E,OAAOlpC,EAAAA,EAAAA,IAA0CD,EAASD,GAGrD,SAASspC,KAEd,OADcnf,IACDjpB,qCAAqC,iCAAiC,EAAO,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,IAG5I,SAASmoC,GAAmCvpC,GACjD,MAAMC,EAAUqpC,KAChB,OAAOppC,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAASwpC,GAAyCC,EAA0BC,GAEjF,OADcvf,IACDjpB,qCAAqC,iCAAiC,EAAM,GAAI,GAAI,CAAEC,YAAa,MAAOC,aAAc,IAAK,CAACqoC,iBAAkBA,EAAkBC,cAAeA,IAGzL,SAASC,GAAmC3pC,EAAmBypC,EAA0BC,GAC9F,MAAMzpC,EAAUupC,GAAyCC,EAAkBC,GAC3E,OAAOxpC,EAAAA,EAAAA,IAA0BD,EAASD,GAGrC,SAAS4pC,KAEd,OADczf,IACDjpB,qCAAqC,6BAA6B,EAAO2oC,EAAAA,mCAAoC,QAAS,CAAE1oC,YAAa,OAAQC,aAAc,iCAAkC,IAGrM,SAAS0oC,GAA+B9pC,GAC7C,MAAMC,EAAU2pC,KAChB,OAAO1pC,EAAAA,EAAAA,IAA6CD,EAASD,GAGxD,SAAS+pC,KAEd,OADc5f,IACDjpB,qCAAqC,4BAA4B,EAAO8oC,EAAAA,kCAAmC,QAAS,CAAE7oC,YAAa,OAAQC,aAAc,gCAAiC,IAGlM,SAAS6oC,GAA8BjqC,GAC5C,MAAMC,EAAU8pC,KAChB,OAAO7pC,EAAAA,EAAAA,IAA4CD,EAASD,GAGvD,SAASkqC,GAA8BrpC,EAA2CqS,GAEvF,OADciX,IAAarpB,eAAeD,GAC7BK,qCAAqC,sBAAsB,EAAMipC,EAAAA,0BAA2B,OAAQ,CAAEhpC,YAAa,OAAQC,aAAc,wBAAyB,CAAC8R,eAAgBA,IAG3L,SAASk3B,GAAwBpqC,EAAmBkT,GACzD,MAAMjT,EAAUiqC,GAA8BlqC,EAAQa,oBAAqBqS,GAC3E,OAAOhT,EAAAA,EAAAA,IAAsCD,EAASD,GAGjD,SAASqqC,GAA+BxpC,EAA2CosB,GAExF,OADc9C,IAAarpB,eAAeD,GAC7BK,qCAAqC,uBAAuB,EAAOopC,EAAAA,YAAa,OAAQ,CAAEnpC,YAAa,OAAQC,aAAc,UAAW,CAAC6rB,WAAYA,IAG7J,SAASsd,GAAyBvqC,EAAmBitB,GAC1D,MAAMhtB,EAAUoqC,GAA+BrqC,EAAQa,oBAAqBosB,GAC5E,OAAO/sB,EAAAA,EAAAA,IAAwBD,EAASD,GAGnC,SAASwqC,GAAsCC,GAEpD,OADctgB,IACDjpB,qCAAqC,8BAA8B,EAAO,GAAI,QAAS,CAAEC,YAAa,OAAQC,aAAc,IAAK,CAACqpC,WAAYA,IAGtJ,SAASC,GAAgC1qC,EAAmByqC,GACjE,MAAMxqC,EAAUuqC,GAAsCC,GACtD,OAAOvqC,EAAAA,EAAAA,IAAsBD,EAASD,GAGjC,SAAS2qC,GAA2CF,GAEzD,OADctgB,IACDjpB,qCAAqC,mCAAmC,EAAO0pC,EAAAA,wCAAyC,QAAS,CAAEzpC,YAAa,OAAQC,aAAc,sCAAuC,CAACqpC,WAAYA,IAGlO,SAASI,GAAqC7qC,EAAmByqC,GACtE,MAAMxqC,EAAU0qC,GAA2CF,GAC3D,OAAOvqC,EAAAA,EAAAA,IAAkDD,EAASD,GAG7D,SAAS8qC,GAAwBC,GAEtC,OADc5gB,IACDjpB,qCAAqC,gBAAgB,EAAOkgB,EAAAA,eAAgB,QAAS,CAAEjgB,YAAa,OAAQC,aAAc,aAAc,CAAC2pC,QAASA,IAG1J,SAASC,GAAkBhrC,EAAmB+qC,GACnD,MAAM9qC,EAAU6qC,GAAwBC,GACxC,OAAO7qC,EAAAA,EAAAA,IAAyBD,EAASD,GAGpC,SAASirC,GAAqCpqC,GAEnD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,6BAA6B,EAAOgqC,EAAAA,oCAAqC,OAAQ,CAAE/pC,YAAa,OAAQC,aAAc,kCAAmC,IAGtM,SAAS+pC,GAA+BnrC,GAC7C,MAAMC,EAAUgrC,GAAqCjrC,EAAQa,qBAC7D,OAAOX,EAAAA,EAAAA,IAAgDD,EAASD,GAG3D,SAASorC,GAA8BvqC,GAE5C,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,sBAAsB,EAAOmqC,EAAAA,oBAAqB,OAAQ,CAAElqC,YAAa,OAAQC,aAAc,kBAAmB,IAG/J,SAASkqC,GAAwBtrC,GACtC,MAAMC,EAAUmrC,GAA8BprC,EAAQa,qBACtD,OAAOX,EAAAA,EAAAA,IAAgCD,EAASD,GAG3C,SAASurC,KAEd,OADcphB,IACDjpB,qCAAqC,mBAAmB,EAAOsqC,EAAAA,kBAAmB,QAAS,CAAErqC,YAAa,OAAQC,aAAc,gBAAiB,IAGzJ,SAASqqC,GAAqBzrC,GACnC,MAAMC,EAAUsrC,KAChB,OAAOrrC,EAAAA,EAAAA,IAA4BD,EAASD,GAGvC,SAAS0rC,GAAmC7qC,GAEjD,OADcspB,IAAarpB,eAAeD,GAC7BK,qCAAqC,2BAA2B,EAAOyqC,EAAAA,0BAA2B,OAAQ,CAAExqC,YAAa,OAAQC,aAAc,wBAAyB,IAGhL,SAASwqC,GAA6B5rC,GAC3C,MAAMC,EAAUyrC,GAAmC1rC,EAAQa,qBAC3D,OAAOX,EAAAA,EAAAA,IAAsCD,EAASD,kpBC3sDvD,MAAMN,EAWTmsC,YAAYC,EAAoBC,EAAqBC,EAAkBxsC,GACnEysC,KAAKC,OAAS,CACVJ,UAAAA,EACAC,WAAAA,EACAvsC,IAAAA,EACAwsC,WAAAA,EACAG,OAAQ,GAERC,QAAS,CAAEjrC,YAAa,MAAOC,aAAc2qC,GAC7CjrC,eAAgB,CAAEurC,OAAQ,GAAIC,QAAS,KASxCxrC,eAAeyrC,GAUlB,OATKA,IACDA,EAAQ,IAGZN,KAAKC,OAAOprC,eAAiB,GAC7BmrC,KAAKC,OAAOprC,eAAeurC,OAASE,EAAMF,QAAU,GACpDJ,KAAKC,OAAOprC,eAAewrC,QAAUC,EAAMD,SAAW,GACtDL,KAAKC,OAAOprC,eAAe0rC,MAAQD,EAAMC,MAElCP,KAOJQ,OAAOF,GAGV,OAFAN,KAAKC,OAAOQ,eAAiBH,EAEtBN,KAOJ1xB,IAAIgyB,GAGP,OAFAN,KAAKC,OAAOprC,eAAeurC,OAAOM,IAAMJ,EAEjCN,KAOJ3xB,KAAKiyB,GAGR,OAFAN,KAAKC,OAAOprC,eAAeurC,OAAOO,KAAOL,EAElCN,KAOJY,OAAOC,GAMV,OAL2B,MAAvBb,KAAKC,OAAOa,UACZd,KAAKC,OAAOa,QAAU,IAG1Bd,KAAKC,OAAOa,QAAQC,KAAKF,GAClBb,KAMJgB,cAGH,OAFAhB,KAAKC,OAAOe,aAAc,EAEnBhB,KAOJiB,QAAQX,GAOX,OANKN,KAAKC,OAAOprC,eAAewrC,QAAQa,UACpClB,KAAKC,OAAOprC,eAAewrC,QAAQa,QAAU,IAGjDlB,KAAKC,OAAOprC,eAAewrC,QAAQa,QAAQH,KAAK,CAAEI,WAAYb,IAEvDN,KAQJnsC,OAAOutC,GAIV,OAHApB,KAAKC,OAAOoB,OAAS,SACrBrB,KAAKC,OAAOqB,KAAOtB,KAAKuB,uBAAuBH,GAC/CpB,KAAKC,OAAOE,QAAQjrC,YAAc,OAC3B8qC,KAAKwB,iBAOT/sC,OASH,OARIurC,KAAKC,OAAO1sC,KAAkC,cAA1BysC,KAAKC,OAAOJ,WAAiD,OAApBG,KAAKC,OAAO1sC,UAAoCkuC,IAApBzB,KAAKC,OAAO1sC,IACrGysC,KAAKC,OAAOoB,OAAS,QAErBrB,KAAKC,OAAOoB,OAAS,UACrBrB,KAAKC,OAAOyB,yBAA0B,GAG1C1B,KAAKC,OAAOE,QAAQjrC,YAAc,OAC3B8qC,KAAKwB,iBAQTrtC,OAAOitC,GAIV,OAHApB,KAAKC,OAAOoB,OAAS,SACrBrB,KAAKC,OAAOqB,KAAOtB,KAAKuB,uBAAuBH,GAExCpB,KAAKwB,iBAOTltC,SAGH,OAFA0rC,KAAKC,OAAOoB,OAAS,SAEdrB,KAAKwB,iBAGTG,mBACH3B,KAAKC,OAAOprC,eAAeurC,OAAOM,KAAO,EAGtCkB,kBACH,OAAkD,IAA3C5B,KAAKC,OAAOprC,eAAeurC,OAAOM,IAGtCzrC,qCACH4sC,EACAC,EACA/B,EACA2B,EACAvB,EACAmB,GAcA,OAZAtB,KAAKC,OAAOF,WAAaA,EACzBC,KAAKC,OAAO6B,SAAWA,EACvB9B,KAAKC,OAAOyB,wBAAsD,SAA5BA,EACtC1B,KAAKC,OAAOoB,OAASQ,EACrB7B,KAAKC,OAAOqB,KAAOtB,KAAKuB,uBAAuBD,GAC/CtB,KAAKC,OAAOE,QAAZ,OAA2B,CAAEjrC,YAAa,MAAOC,aAAc,kBAAsBgrC,GAEjFH,KAAKC,OAAOyB,0BAA4B1B,KAAKC,OAAOprC,eAAeurC,OAAOM,KAE1EV,KAAK2B,mBAGF3B,KAAKwB,iBAGRD,uBAAuBD,GAC3B,OAAOA,EAAO,CAAEjX,WAAYiX,QAASG,EAGjCD,iBACJ,OAAO,IAAIO,EAAAA,GAAmB/B,KAAKC,0uBCrKpC,MACM+B,EAAc,MACdC,EAAe,OAIfC,EAA6B,eASpCC,EAAmD,CACrDC,OAAQ,yBASL,SAASC,EAAiBf,EAAWgB,GACxC,IAAKhB,EACD,OAAOA,EAGX,IAAKA,EAAKhB,MACN,OAAOgC,EAAa,IAAIA,EAAWhB,GAAQA,EAG/C,MAAMiB,EAAYjB,EAAKhB,MAEvB,GAAIgC,GACkD,mBAA9CE,OAAOC,UAAUC,SAASC,KAAKJ,GAC/B,IAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAUM,OAAQD,IAClCL,EAAUK,GAAK,IAAIN,EAAWC,EAAUK,IAOpD,MADqB,iBAAdL,IAA0BA,EAAUO,mBAAuDrB,IAAvCH,EA7CnB,qBA8CjCiB,EAMJ,MAAMR,EAuYTnC,YAAYmD,GAKR,OA9TI,KAAAC,wBAAoC,GA8WrC,KAAAC,YAAc,IAAMjD,KAAKkD,UAEzB,KAAAC,mBAAqB,IAAMnD,KAAKoD,iBAEhC,KAAAC,YAAc,IAAMrD,KAAKsD,mBAEzB,KAAAC,cAAgB,IAAMxB,EAAmByB,iBAAiBxD,KAAKC,QAE/D,KAAAwD,kBAAoB,KAAM,EAE1B,KAAAC,kBAAqBxuC,IACxBA,IAAgB8qC,KAAKC,OAAOE,QAAQjrC,YAAcA,IA/DlDyuC,EAAAA,GAAAA,YAAmB,oCACnB3D,KAAKC,QAAS2D,EAAAA,EAAAA,IAAKb,EAAO,CAAEc,mBAAmB,IAC/C7D,KAAK8D,mBAAoB,EAEjBf,EAAM1B,QACV,IAAK,OACL,IAAK,UACDrB,KAAK+D,QAAU/B,EACf,MAEJ,IAAK,SACDhC,KAAK+D,QAAU9B,EACf,MAEJ,IAAK,SACDjC,KAAK+D,QAxcQ,QAycb,MAEJ,IAAK,SACD/D,KAAK+D,QA3cS,SA4cd,MAEJ,QACQhB,EAAMjB,SAEN9B,KAAK+D,QAAU9B,EAGfjC,KAAK+D,QAAU/B,EAGnBhC,KAAK8D,mBAAoB,EAGjC9D,KAAKkD,UAAYnB,EAAmBiC,qBAAqBjB,GAEzD/C,KAAKoD,iBAAmBrB,EAAmBkC,kCAAkClB,EAAM5C,QAAQhrC,cAE3F,MAAM+uC,EAA6C,kBAA1BlE,KAAKoD,iBAAuC,UAAYpD,KAAKoD,iBACtFpD,KAAKmE,kCAAoCC,EAAAA,IAAiBF,IAAqBE,EAAAA,IAAiBF,GAAkBG,IAElHrE,KAAKsD,mBAAqBvB,EAAmBuC,oBAAoBtE,KAAKC,OAAQD,KAAKmE,mCAhb5D,sBACvB,OAAOnE,KAAKuE,eAAeC,eAAeC,YAAYC,QAAU,UAMnD,aACb,OAAO1E,KAAKuE,eAAeC,eAAeG,OAM7B,WAACA,GACd3E,KAAKuE,eAAeC,eAAeG,OAASA,EAMpB,wBACxB,OAAO3E,KAAKsD,mBAM2B,uCACvC,OAAOtD,KAAKmE,kCAMU,sBACtB,OAAOnE,KAAKoD,iBAMiB,6BAC7B,OAAOpD,KAAKgD,wBAMK,iBACjB,OAAOhD,KAAK4E,YAMA,YACZ,OAAO5E,KAAKC,OAMT4E,cACH,OAAO7E,KAAKC,OAAOqB,KAAKjX,WAMG,2BAC3B,OAAO2V,KAAK8E,YAkBgB,yBAACC,EAAyBC,GACtD,IAAIC,EAAY,EAGhB,MAAMC,EAAmC,CACrCC,WAAYJ,EACZK,OAAQnD,EACRX,KAAM,CAAE+D,gBAAiB,KAGvBC,EAAgBJ,EAAkB5D,KAAK+D,gBAC7C,IAAIE,EAuBJ,OArBAP,EAASQ,SAAQxxC,IACbA,EAAQyxC,IAAMR,IAEd,MAAMS,EAA8B,CAChCP,WAAYnxC,EAAQ2xC,YACpBP,OAAQpxC,EAAQ+vC,QAChBzC,KAAMS,EAAmB6D,OAAO5xC,EAAQisC,OAAOqB,MAC/CuE,QAAS,CAAE,aAAc7xC,EAAQ8C,KAAMsrC,OAAQ,0BAG/CpuC,EAAQ+vC,UAAY/B,EACpBsD,EAAcvE,KAAK2E,IAEdH,IACDA,EAAiB,GACjBD,EAAcvE,KAAK,CAAE+E,iBAAkBP,KAE3CA,EAAexE,KAAK2E,OAIrBR,EASuB,2BAACa,EAAuBf,EAAiBgB,GACvE,IAAIC,EAAuB,IAAIC,MAgB/B,OAdAH,EAAeP,SAAQW,IACnB,GAAIA,EAASC,kBACTH,EAASA,EAAOI,OAAOtE,EAAmBuE,oBAAoBH,EAASC,kBAAmBpB,EAAUgB,SAEpG,GAAKG,EAASI,QAKVN,EAASA,EAAOI,OAAOG,EAAAA,EAAAA,kBAA8BL,QALlC,CACnB,MAAMlB,EAAYwB,SAASN,EAASN,QAAQ,cAAe,IAE3DG,EAAUf,GAAa5C,EAAiB8D,EAAS7E,KAAM0D,EAASC,EAAY,GAAGhF,OAAOF,gBAO3FkG,EAUU,cAAC3E,EAAWoF,EAAcC,GAC3C,IAAIC,EAAQtF,EAEZ,GAAa,OAATA,EACA,OAAO,KACJ,GAAoB,iBAATA,EAId,OAAOA,EAGPA,GAAQA,EAAKjX,YACbiX,EAAOA,EAAKjX,WACZqc,EAAS,MAETA,EAASpF,EAIRqF,IACDC,EAAK,KAAQtF,IAGjB,IAAK,MAAMuF,KAAQD,EACf,GAAIA,EAAME,eAAeD,GAAO,CAC5B,MAAME,EAAWH,EAAMC,GAGvB,QAAwB,IAAbE,EAA0B,CACjC,IAAIzG,EAEAA,EADa,OAAbyG,EACQ,KACmB,iBAAbA,EACVA,aAAoBb,MACZnE,EAAmBiF,YAAYD,EAAUL,EAAQC,GAClDI,aAAoBE,KACnBlF,EAAmBmF,iBAAiBH,GAGpChF,EAAmB6D,OAAOmB,EAAUH,EAAOD,GAG/CI,EAGZH,EAAMC,GAAQvG,GAK1B,OAAOsG,EASe,mBAACO,EAAcT,EAAaC,GAClD,MAAMrF,EAAO,GACb,IAAK,IAAIsB,EAAI,EAAGA,EAAIuE,EAAMtE,OAAQD,IAC9BtB,EAAKsB,GAAKb,EAAmB6D,OAAOuB,EAAMvE,GAAIuE,EAAOR,GAIzD,OAAOrF,EAQoB,wBAAC8F,GAC5B,IAAMA,EAAiBC,YAAeD,EAAiBE,SAAU,CAC7D,MAAMC,EAAgCC,GAAiBA,EAAM,GAAK,IAAMA,EAAMA,EAAI9E,WAC5E+E,EAAeL,EAASM,oBAAsB,EAAI,IAAM,IACxDC,EAAiBC,KAAKC,IAAIT,EAASM,qBACnCI,EAAgBP,EAAIK,KAAKG,MAAMJ,EAAS,KACxCK,EAAkBT,EAAII,EAAS,IAEpCP,EAAiBC,UAAY,qBAC7BD,EAAiBE,SAAWG,EAAOK,EAAQ,IAAME,EAGtD,OAAOZ,EAQa,iBAAC7zC,GACrB,IAAI00C,EAAiBC,EAAAA,GAErB,GAAI30C,EAAK,CACL,MAAM40C,EAAe,GACrB,IAAItH,EAAuBqH,EAAAA,GAE3B,IAAK,MAAMnB,KAAYxzC,EACfA,EAAIuzC,eAAeC,KACnBlG,EAAekG,EACkB,iBAAtBxzC,EAAIstC,GACXsH,EAAapH,KAAKF,EAAY,YAAQttC,EAAIstC,GAAZ,MAE9BsH,EAAapH,KAAKF,EAAe,IAAMttC,EAAIstC,KAO/CoH,EAFoB,IAAxBE,EAAatF,OACoB,iBAAtBtvC,EAAIstC,GACL,WAAOttC,EAAIstC,GAAX,KAEGttC,EAAIstC,GAGRsH,EAAaC,OAI9B,OAAOH,EAQ2B,+BAAC5d,GACnC,IAAI4d,EAAiBC,EAAAA,GAErB,GAAI7d,EACA,IAAK,MAAMge,KAAahe,EACpB,GAAIA,EAAWyc,eAAeuB,GAAY,CACtC,MAAMC,EAAaje,EAAWge,GAM9B,IAJKE,EAAAA,EAAAA,IAAQN,KACTA,GAAU,UAGKxG,IAAf6G,EAEA,SAGAL,GAF6B,iBAAfK,EAEJD,EAAS,YAAQG,mBAAmBF,GAA3B,KAGTD,EAAY,IAAMG,mBAAmBF,GAM/D,OAAOL,EAIgB,oBAAC9C,EAAoB5xC,EAAa+sC,GACzD,GAAIA,EAAO,CACP,IAAImI,EAAqB,IAMzB,OAJItD,EAAWuD,QAAQD,GAAsB,IACzCA,EAAqB,KAGlBtD,EAAasD,EAAqBl1C,EAAM,IAAM+sC,EAErD,OAAO6E,EAIoB,4BAACpC,GAChC,MAAM,mCAAN,OAA0CA,EAAMlD,UAAhD,YAA6DkD,EAAM1B,QAGvB,yCAACtB,GAG7C,OADmD,mBAAfA,EAA4BA,EAAW4I,KAAO5I,GACtD6I,QAAQ,QAAS,IAGf,2BAAC7F,EAAkC8F,GAGjE,IAAIC,EAAW,GAEf/F,EAAMxvC,MAAQu1C,EAAQ,KAAQ/F,EAAMxvC,MAGpCwvC,EAAMzB,MAAQyB,EAAMzB,KAAKjX,aAAeye,EAAQ,OAAQA,GAAc/F,EAAMzB,KAAKjX,aACjF0Y,EAAMluC,iBACDi0C,EAAQ,SACFA,GACA/F,EAAMluC,eAAeurC,QACrB2C,EAAMluC,eAAewrC,UAEhC0C,EAAMtC,iBAAmBqI,EAAQ,OAAa/F,EAAMtC,iBACpDsI,EAAAA,EAAAA,IAAuBhG,EAAM7C,UAAY4I,EAAQ,MAAY/F,EAAM7C,QAEnE,MAAM8I,GACFC,EAAAA,EAAAA,IAAgBH,KACfD,EA7ZoC,mCA6ZJ,UAAkC9F,EAAMlD,UAAxC,YAAqDkD,EAAMjD,WAA3D,WAErC,OADA6D,EAAAA,GAAAA,YAAA,oCAAgDmF,EAAhD,cAA8DE,IACvDA,EAGoB,wBAACjG,GAa5B,MAAwB,UAApBA,EAAMlD,WAA0C,qDAAjBkD,EAAM1B,QAIJ,QAA9B0B,EAAM5C,QAAQjrC,aAAuD,cAA9B6tC,EAAM5C,QAAQjrC,YAHjD,OAGwF,UAoDhG4B,KACH,OAAOkpC,KAAKyF,IAsBTyD,QAAWC,GACd,KACKA,EAAc3E,gBACd2E,EAAc3E,eAAeC,aAC7B0E,EAAc3E,eAAeC,YAAY2E,KACzCD,EAAc3E,eAAeC,YAAYC,SAE1C,MAAM,IAAI2E,MAAJ,+DAAkEC,KAAKC,UAAUJ,EAAc3E,gBAA/F,MAGV,IAAK2E,EAAc3E,eAAeG,OAC9B,MAAM,IAAI0E,MAAJ,0CAA6CC,KAAKC,UAAUJ,EAAc3E,gBAA1E,MAKV,IAAIyD,EAFJjI,KAAKuE,eAAiB4E,EACtBnJ,KAAK2F,YAAc3F,KAAKwJ,gBAExB,MAAM3D,EAA4C7F,KAAKyJ,mBAcvD,OALIxB,GANCjI,KAAKC,OAAOyB,yBACZ1B,KAAKC,OAAOprC,gBACTmrC,KAAKC,OAAOprC,eAAeurC,QAC3BJ,KAAKC,OAAOprC,eAAeurC,OAAOM,KAClCV,KAAKC,OAAOprC,eAAeurC,OAAOM,KAAO,EAEpCV,KAAK0J,SAAY7D,GAEjB7F,KAAK2J,YAAe9D,EAAS,GAGnCoC,EAUJ2B,aAAa5E,EAAgCmE,GAChD,KACKA,EAAc3E,gBACd2E,EAAc3E,eAAeC,aAC7B0E,EAAc3E,eAAeC,YAAY2E,KACzCD,EAAc3E,eAAeC,YAAYC,SAE1C,MAAM,IAAI2E,MAAJ,+DAAkEC,KAAKC,UAAUJ,EAAc3E,gBAA/F,MAGV,IAAK2E,EAAc3E,eAAeG,OAC9B,MAAM,IAAI0E,MAAJ,0CAA6CC,KAAKC,UAAUJ,EAAc3E,gBAA1E,MAMV,OAHAxE,KAAKuE,eAAiB4E,EACtBnJ,KAAK2F,YAAc3F,KAAKwJ,gBAEjB,IAAIK,SAAQ,CAACC,EAASC,MACzBC,EAAAA,EAAAA,GACIjI,EAAmBkI,kBAAkBjK,KAAK+E,gBAAiBC,IAC1D1D,IACG,MAAM0E,EAAmB,IAAIE,MACvBD,EAAuBlE,EAAmBuE,oBAAoBhF,EAAK4I,iBAAkBlF,EAAUgB,GAE/E,IAAlBC,EAAOpD,QACPc,EAAAA,GAAAA,YAAmB3D,KAAK+E,gBAAkB,YAC1C+E,EAAQ9D,KAERrC,EAAAA,GAAAA,OAAcsC,EAAQjG,KAAK+E,gBAAkB,YAC7CgF,EAAO9D,OAGdkE,IACGxG,EAAAA,GAAAA,MAAa3D,KAAK+E,gBAAkB,WACpCgF,EAAOvD,EAAAA,EAAAA,kBAA8B2D,UAS7CX,gBACJ,IAAIrE,EAAqBnF,KAAKuE,eAAeC,eAAeC,YAAYC,QAAU,WAqBlF,GApBI1E,KAAKC,OAAOJ,YACZsF,EAAU,UAAMA,EAAN,YAAoBnF,KAAKC,OAAOJ,WAEtCG,KAAKC,OAAO1sC,IACZ4xC,EAAU,UAAMA,EAAN,YAAoBpD,EAAmBqI,UAAUpK,KAAKC,OAAO1sC,KAA7D,KACuB,cAA1BysC,KAAKC,OAAOJ,WAAiD,OAApBG,KAAKC,OAAO1sC,UAAoCkuC,IAApBzB,KAAKC,OAAO1sC,MACxF4xC,EAAU,UAAMA,EAAN,UAKdnF,KAAK8D,oBACLqB,GAAc,IAAMnF,KAAKC,OAAOoB,QAG3BrB,KAAKC,OAAO6B,UAAY9B,KAAKC,OAAOqB,MAAQtB,KAAKC,OAAOqB,KAAKjX,aAC9D8a,GAAc,IAAMpD,EAAmBsI,wBAAwBrK,KAAKC,OAAOqB,KAAKjX,YAAc,MAIlG2V,KAAKC,OAAOyB,0BACZyD,EAAapD,EAAmBuI,aAC5BnF,EACA,OACAnF,KAAKC,OAAOprC,gBAAkBmrC,KAAKC,OAAOprC,eAAeurC,OACnDJ,KAAKC,OAAOprC,eAAeurC,OAAOM,IA1mBxB,KA6mBpByE,EAAapD,EAAmBuI,aAC5BnF,EACA,QACAnF,KAAKC,OAAOprC,gBAAkBmrC,KAAKC,OAAOprC,eAAeurC,OAASJ,KAAKC,OAAOprC,eAAeurC,OAAOO,KAAO,GAE/GwE,EAAapD,EAAmBuI,aAAanF,EAAY,eAAgBnF,KAAKC,OAAOe,YAAc,WAAa,MAE5GhB,KAAKC,OAAOprC,eAAe0rC,QAC3B4E,EAAapD,EAAmBuI,aAAanF,EAAY,SAAU,SAGvEA,EAAapD,EAAmBuI,aAC5BnF,EACA,UACAnF,KAAKC,OAAOQ,eAAiBT,KAAKC,OAAOQ,eAAiB,GAG1DT,KAAKC,OAAOprC,gBAAkBmrC,KAAKC,OAAOprC,eAAewrC,SAAWL,KAAKC,OAAOprC,eAAewrC,QAAQa,SAAS,CAChH,MAAMqJ,EAAiB,GACvBvK,KAAKC,OAAOprC,eAAewrC,QAAQa,QAAQsE,SAASgF,KAC3CC,EAAAA,EAAAA,IAAmBD,EAAOrJ,YAAc+G,EAAAA,KACzCqC,EAAexJ,MAAK2J,EAAAA,EAAAA,IAAO,YAAaF,EAAOrJ,WAAYqJ,EAAOG,aAAe,OAAS,WAG9FJ,EAAe1H,OAAS,IACxBsC,EAAapD,EAAmBuI,aAAanF,EAAY,WAAYoF,EAAenC,KAAK,OAarG,OARIpI,KAAKC,OAAOa,UAAW8J,EAAAA,EAAAA,IAAY5K,KAAKC,OAAOa,WAC/CqE,EAAapD,EAAmBuI,aAAanF,EAAY,UAAWnF,KAAKC,OAAOa,QAAQsH,UAGvFqC,EAAAA,EAAAA,IAAmBI,EAAAA,OACpB1F,EAAapD,EAAmBuI,aAAanF,EAAY,cAAe0F,EAAAA,MAGrE1F,EAUHwE,YAAe9D,EAA2Cx3B,EAAcy8B,GAC5Ez8B,EAAOA,GAAQ,EACf,MAAMC,EAAM,IAMZ,OALA0xB,KAAKC,OAAOprC,eAAiBmrC,KAAKC,OAAOprC,gBAAkB,GAC3DmrC,KAAKC,OAAOprC,eAAeurC,OAASJ,KAAKC,OAAOprC,eAAeurC,QAAU,GACzEJ,KAAKC,OAAOprC,eAAeurC,OAAOM,IAAMpyB,EACxCw8B,EAAUA,GAAW,GAEd9K,KAAK0J,SAAY7D,EAASx3B,GAC5B08B,MAAMC,IACH,GAAIA,EACA,MAA+C,iBAAnCA,EAAwBnI,QAChCiI,EAAUA,EAAQzE,OAAO2E,GAEpBA,EAAwBnI,OAASv0B,EAE7B08B,EAAwBlI,aAEzBz0B,GAAS28B,EAAwBnI,OAC1B7C,KAAK2J,YAAe9D,EAASx3B,EAAMy8B,IAGnCjB,QAAQC,QAASgB,IAI5Bz8B,GAAQC,EACD0xB,KAAK2J,YAAe9D,EAASx3B,EAAMy8B,MAI9CA,EAAQ/J,KAAMiK,GACPnB,QAAQC,QAASgB,OAInCG,OAAMd,GACIN,QAAQE,OAAOI,KAQ1BV,mBACJ,MAAM5D,EAA4C,CAClDA,gBAA2B,QAG3B,IAAK,MAAMqF,KAAc/I,EACjBA,EAAe2E,eAAeoE,KAC9BrF,EAAQqF,GAAc/I,EAAe+I,KAKxCT,EAAAA,EAAAA,IAAmBzK,KAAKuE,eAAeC,eAAeC,YAAY2E,OACnEvD,EAAO,IAAmC7F,KAAKuE,eAAeC,eAAeC,YAAY2E,KAI7FvD,EAxtBgB,mBAwtBW7F,KAAKuE,eAAeC,eAAeG,OAG9DkB,EAAO,UAAe7F,KAAKuE,eAAeC,eAAe5a,YAGzD,IAAK,MAAMuhB,KAAanL,KAAKC,OAAOC,OAChC,GAAIF,KAAKC,OAAOC,OAAO4G,eAAeqE,GAAY,CAC9C,MAAMC,EAAqBpL,KAAKC,OAAOC,OAAOiL,IAEzCV,EAAAA,EAAAA,IAAmBW,KACpBvF,EAAQsF,GAAaC,GAwBjC,GAjBIpL,KAAKuE,gBACLvE,KAAKuE,eAAeC,eAAe6G,QAClCZ,EAAAA,EAAAA,IAAmBzK,KAAKuE,eAAeC,eAAe6G,KAAKC,SAE5DzF,EAAO,cAAP,mBAAgD7F,KAAKuE,eAAeC,eAAe6G,KAAKC,QAKxFtL,KAAKuE,gBACLvE,KAAKuE,eAAeC,kBACnBiG,EAAAA,EAAAA,IAAmBzK,KAAKuE,eAAeC,eAAe+G,eAEvD1F,EAAO,cAAP,iBAA8C7F,KAAKuE,eAAeC,eAAe+G,cAIjFvL,KAAKuE,eAAeC,eAApB,QAA+C,CAC/C,MAAMgH,EAAoCxL,KAAKuE,eAAeC,eAApB,QACpCiH,EAAmBD,EAAWE,IAAI,cAClCC,EAAoBH,EAAWE,IAAI,WAEzC,GAAID,GAAgD,UAA5BA,EAAiBG,OAAoB,CAAC,IAAD,EACzD,MAAMC,EAAY,UAAGJ,EAAiBnL,aAApB,aAAG,EAAwBwL,MAAM,KAAK,GACxDjG,EAAO,aAAkBgG,EAE7B,GAAIF,GAAkD,UAA7BA,EAAkBC,OAAoB,CAAC,IAAD,EAC3D,MAAMG,EAAa,UAAGJ,EAAkBrL,aAArB,aAAG,EAAyBwL,MAAM,KAAK,GAC1DjG,EAAO,cAAmBkG,GAIlC,OAAOlG,EAQH6D,SAAY7D,EAA2Cx3B,GACvDA,IACA2xB,KAAKC,OAAOprC,eAAiBmrC,KAAKC,OAAOprC,gBAAkB,GAC3DmrC,KAAKC,OAAOprC,eAAeurC,OAASJ,KAAKC,OAAOprC,eAAeurC,QAAU,GACzEJ,KAAKC,OAAOprC,eAAeurC,OAAOO,KAAOtyB,GAG7C,MAAM42B,EAAY+G,EAAAA,GAAAA,eAGlB,OAFAC,EAAAA,EAAAA,IAAwChH,EAAWjF,KAAK2F,aAEjD,IAAIkE,SAAQ,CAACC,EAASC,MAEzBC,EAAAA,EAAAA,GACI,CACI7E,WAAYnF,KAAKwJ,gBACjBpE,OAAQpF,KAAK+D,QACbzC,KAAMS,EAAmB6D,OAAO5F,KAAKC,OAAOqB,MAC5CuE,QAAAA,IAEHvE,KACG4K,EAAAA,EAAAA,IAAyCjH,EAAWjF,KAAK2F,aACzD,MAAMpD,EAAYF,EAAiBf,EAAMtB,KAAKC,OAAOF,YAErD,GAAIuB,EAAM,CACFA,EAAKY,kBACLlC,KAAK4E,YAActD,EAAKY,iBAE5B,MAAMiK,EAAapK,EAAmBqK,YAAY9K,GAC9C6K,IACAnM,KAAK8E,YAAcqH,GAIvBnM,KAAKmE,oCAC6C,mBAA9C3B,OAAOC,UAAUC,SAASC,KAAKJ,GAC/BvC,KAAKgD,wBAAwBqD,OACzB9D,EAAU8J,KAAIpE,GAAUA,EAAOjI,KAAKmE,qCAAoC3D,OAAO8L,UAEvD,iBAAd/J,GACdvC,KAAKgD,wBAAwBjC,KAAKwB,EAAUvC,KAAKmE,qCAIzD2F,EAAQvH,MAEX4H,KACGoC,EAAAA,EAAAA,IAAsCtH,EAAWjF,KAAK2F,YAAawE,EAAM5D,SACzEwD,EAAOvD,EAAAA,EAAAA,kBAA8B2D,UAU3B,mBAAC7I,GAEvB,MAAMkL,EAAYhK,OAAOiK,KAAKnL,GAAMd,QAAOjtC,IACvC,GAAIA,IAAQ2uC,EACR,OAAiC,IAA1B3uC,EAAIm1C,QAAQ,aAI3B,GAAI8D,EAAU3J,OAAS,EAAG,CAOtB,OANc2J,EAAUE,QAAO,SAASC,EAASp5C,GAG7C,OADAo5C,EADep5C,EAAIq1C,QAAQ,UAAW,KACpBtH,EAAK/tC,GAChBo5C,IACR,oslBCv4BX,MAAMC,EAAmB,GAKhB,MAAM1oC,EAiBb07B,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8M,aACDD,EAAYC,aAEhB9M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKgN,eAC8B,MAA9BH,EAAYG,eAA0BvG,SAASoG,EAAYG,eAAgB,SAAMvL,EAEtFzB,KAAKiN,aAC4B,MAA5BJ,EAAYI,aAAwBC,WAAWL,EAAYI,mBAAgBxL,EAEpFzB,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAAK,IAAIvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI5tB,GAAmB63B,EAAYM,OAAOvK,SAG/D5C,KAAKmN,OAAOvK,QAAKnB,GAMjB,GADAzB,KAAKuN,sBAAmB9L,EACpBoL,EAAYU,iBAAkB,CAClCvN,KAAKuN,iBAAmB,GACxB,IAAS3K,EAAI,EAAGA,EAAIiK,EAAYU,iBAAiB1K,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYU,iBAAiB3K,GACjC,GAAsD,MAAlDiK,EAAYU,iBAAiB3K,GAAG,eAElCwK,GADIA,EAAoBP,EAAYU,iBAAiB3K,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuN,iBAAiB3K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYU,iBAAiB3K,UAG1F5C,KAAKuN,iBAAiB3K,GAAK,IAAI4K,GAA0BX,EAAYU,iBAAiB3K,SAG1F5C,KAAKuN,iBAAiB3K,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,cAAoB1oC,EAK7B,MAAMlN,EAwGb4oC,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK2N,sBAAmBlM,EACpBoL,EAAYc,iBAAkB,CAClC3N,KAAK2N,iBAAmB,GACxB,IAAK,IAAI/K,EAAI,EAAGA,EAAIiK,EAAYc,iBAAiB9K,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYc,iBAAiB/K,GACjC,GAAsD,MAAlDiK,EAAYc,iBAAiB/K,GAAG,eAElCwK,GADIA,EAAoBP,EAAYc,iBAAiB/K,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2N,iBAAiB/K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYc,iBAAiB/K,UAG1F5C,KAAK2N,iBAAiB/K,GAAK,IAAIgL,GAA4Bf,EAAYc,iBAAiB/K,SAG5F5C,KAAK2N,iBAAiB/K,QAAKnB,GAqB3B,GAhBIzB,KAAK6N,qBACDhB,EAAYgB,qBAEhB7N,KAAK8N,0BACDjB,EAAYiB,0BAEhB9N,KAAK+N,0BACDlB,EAAYkB,0BAEhB/N,KAAKgO,UACyB,MAAzBnB,EAAYmB,UAAqBd,WAAWL,EAAYmB,gBAAavM,EAE1EzB,KAAKiO,WAC0B,MAA1BpB,EAAYoB,WAAsBf,WAAWL,EAAYoB,iBAAcxM,EAEhFzB,KAAKkO,qBAAkBzM,EACnBoL,EAAYqB,gBAAiB,CACjClO,KAAKkO,gBAAkB,GACvB,IAAStL,EAAI,EAAGA,EAAIiK,EAAYqB,gBAAgBrL,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYqB,gBAAgBtL,GAChC,GAAqD,MAAjDiK,EAAYqB,gBAAgBtL,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYqB,gBAAgBtL,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkO,gBAAgBtL,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqB,gBAAgBtL,UAGxF5C,KAAKkO,gBAAgBtL,GAAK,IAAIuL,EAAwBtB,EAAYqB,gBAAgBtL,SAGtF5C,KAAKkO,gBAAgBtL,QAAKnB,GAuB1B,GAlBIzB,KAAKoO,qBACDvB,EAAYuB,qBAEhBpO,KAAKqO,cACAxB,EAAYwB,yBAAyBpH,KAAQ4F,EAAYwB,cAC1B,MAA7BxB,EAAYwB,eAAyBC,EAAAA,EAAAA,IAAiCzB,EAAYwB,cAAe,sBAAsB,QAAS5M,EAEvIzB,KAAKuO,aACA1B,EAAY0B,wBAAwBtH,KAAQ4F,EAAY0B,aAC1B,MAA5B1B,EAAY0B,cAAwBD,EAAAA,EAAAA,IAAiCzB,EAAY0B,aAAc,sBAAsB,QAAS9M,EAErIzB,KAAKwO,yBACwC,MAAxC3B,EAAY2B,yBAAoCtB,WAAWL,EAAY2B,+BAA4B/M,EAExGzB,KAAKyO,wBACuC,MAAvC5B,EAAY4B,wBAAmCvB,WAAWL,EAAY4B,8BAA2BhN,EAE1GzB,KAAK0O,eAAYjN,EACboL,EAAY6B,UAAW,CAC3B1O,KAAK0O,UAAY,GACjB,IAAS9L,EAAI,EAAGA,EAAIiK,EAAY6B,UAAU7L,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAY6B,UAAU9L,GAC1B,GAA+C,MAA3CiK,EAAY6B,UAAU9L,GAAG,eAE3BwK,GADIA,EAAoBP,EAAY6B,UAAU9L,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0O,UAAU9L,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6B,UAAU9L,UAG5E5C,KAAK0O,UAAU9L,GAAK,IAAI+L,EAAc9B,EAAY6B,UAAU9L,SAGhE5C,KAAK0O,UAAU9L,QAAKnB,GAkBpB,GAbIzB,KAAK4O,cACD/B,EAAY+B,cAEhB5O,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK8O,aAC4B,MAA5BjC,EAAYiC,aAAwB5B,WAAWL,EAAYiC,mBAAgBrN,EAEhFzB,KAAK+O,8BAC6C,MAA7ClC,EAAYkC,8BAAyC7B,WAAWL,EAAYkC,oCAAiCtN,EAEtHzB,KAAKgP,iBAAcvN,EACfoL,EAAYmC,YAAa,CAC7BhP,KAAKgP,YAAc,GACnB,IAASpM,EAAI,EAAGA,EAAIiK,EAAYmC,YAAYnM,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYmC,YAAYpM,GAC5B,GAAiD,MAA7CiK,EAAYmC,YAAYpM,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYmC,YAAYpM,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgP,YAAYpM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmC,YAAYpM,UAGhF5C,KAAKgP,YAAYpM,GAAK,IAAIqM,GAAgBpC,EAAYmC,YAAYpM,SAGtE5C,KAAKgP,YAAYpM,QAAKnB,GAMtB,GADAzB,KAAKkP,kBAAezN,EAChBoL,EAAYqC,aAAc,CAC9BlP,KAAKkP,aAAe,GACpB,IAAStM,EAAI,EAAGA,EAAIiK,EAAYqC,aAAarM,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYqC,aAAatM,GAC7B,GAAkD,MAA9CiK,EAAYqC,aAAatM,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYqC,aAAatM,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkP,aAAatM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqC,aAAatM,UAGlF5C,KAAKkP,aAAatM,GAAK,IAAIuM,GAAiBtC,EAAYqC,aAAatM,SAGzE5C,KAAKkP,aAAatM,QAAKnB,GAYvB,GAPIzB,KAAKoP,QACDvC,EAAYuC,QAEhBpP,KAAKqP,eACDxC,EAAYwC,eAEpBrP,KAAKsP,aAAU7N,EACXoL,EAAYyC,QAAS,CACzBtP,KAAKsP,QAAU,GACf,IAAS1M,EAAI,EAAGA,EAAIiK,EAAYyC,QAAQzM,OAAQD,IAAK,CACrD,GAA8B,MAA1BiK,EAAYyC,QAAQ1M,GACxB,GAA6C,MAAzCiK,EAAYyC,QAAQ1M,GAAG,eAEzBwK,GADIA,EAAoBP,EAAYyC,QAAQ1M,GAAG,gBACzByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsP,QAAQ1M,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyC,QAAQ1M,UAGxE5C,KAAKsP,QAAQ1M,GAAK,IAAI2M,GAAY1C,EAAYyC,QAAQ1M,SAG1D5C,KAAKsP,QAAQ1M,QAAKnB,GAwBlB,GAnBIzB,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKyP,uBACD5C,EAAY4C,uBAEhBzP,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAK2P,yBACwC,MAAxC9C,EAAY8C,yBAAoCzC,WAAWL,EAAY8C,+BAA4BlO,EAExGzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK6P,yBACwC,MAAxChD,EAAYgD,yBAAoC3C,WAAWL,EAAYgD,+BAA4BpO,EAE5GzB,KAAK8P,mBAAgBrO,EACjBoL,EAAYiD,cAAe,CAC/B9P,KAAK8P,cAAgB,GACrB,IAASlN,EAAI,EAAGA,EAAIiK,EAAYiD,cAAcjN,OAAQD,IAClB,MAAhCiK,EAAYiD,cAAclN,GAC1B5C,KAAK8P,cAAclN,GACfiK,EAAYiD,cAAclN,GAElC5C,KAAK8P,cAAclN,QAAKnB,EAexB,GAVIzB,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK+P,gBACDlD,EAAYkD,gBAEhB/P,KAAKgQ,qBACDnD,EAAYmD,qBAEpBhQ,KAAKiQ,iCAA8BxO,EAC/BoL,EAAYoD,4BAA6B,CAC7CjQ,KAAKiQ,4BAA8B,GACnC,IAASrN,EAAI,EAAGA,EAAIiK,EAAYoD,4BAA4BpN,OAAQD,IAAK,CACzE,GAAkD,MAA9CiK,EAAYoD,4BAA4BrN,GAC5C,GAAiE,MAA7DiK,EAAYoD,4BAA4BrN,GAAG,eAE7CwK,GADIA,EAAoBP,EAAYoD,4BAA4BrN,GAAG,gBAC7CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiQ,4BAA4BrN,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoD,4BAA4BrN,UAGhH5C,KAAKiQ,4BAA4BrN,GAAK,IAAIsN,GAAgCrD,EAAYoD,4BAA4BrN,SAGtH5C,KAAKiQ,4BAA4BrN,QAAKnB,GAMtC,GADAzB,KAAKmQ,wBAAqB1O,EACtBoL,EAAYsD,mBAAoB,CACpCnQ,KAAKmQ,mBAAqB,GAC1B,IAASvN,EAAI,EAAGA,EAAIiK,EAAYsD,mBAAmBtN,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYsD,mBAAmBvN,GACnC,GAAwD,MAApDiK,EAAYsD,mBAAmBvN,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYsD,mBAAmBvN,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmQ,mBAAmBvN,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsD,mBAAmBvN,UAG9F5C,KAAKmQ,mBAAmBvN,GAAK,IAAIwN,GAAuBvD,EAAYsD,mBAAmBvN,SAG3F5C,KAAKmQ,mBAAmBvN,QAAKnB,GA0D7B,GArDIzB,KAAKqQ,yBACwC,MAAxCxD,EAAYwD,yBAAoCnD,WAAWL,EAAYwD,+BAA4B5O,EAExGzB,KAAKsQ,kBACDzD,EAAYyD,kBAEhBtQ,KAAKuQ,mCACD1D,EAAY0D,mCAEhBvQ,KAAKwQ,WACD3D,EAAY2D,WAEhBxQ,KAAKyQ,YACD5D,EAAY4D,YAEhBzQ,KAAK0Q,YACD7D,EAAY6D,YAEhB1Q,KAAK2Q,cACD9D,EAAY8D,cAEhB3Q,KAAK4Q,iBACA/D,EAAY+D,4BAA4B3J,KAAQ4F,EAAY+D,iBAC1B,MAAhC/D,EAAY+D,kBAA4BtC,EAAAA,EAAAA,IAAiCzB,EAAY+D,iBAAkB,sBAAsB,QAASnP,EAE7IzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK6Q,YACDhE,EAAYgE,YAEhB7Q,KAAK8Q,uBACsC,MAAtCjE,EAAYiE,uBAAkC5D,WAAWL,EAAYiE,6BAA0BrP,EAEpGzB,KAAK+Q,wBACuC,MAAvClE,EAAYkE,wBAAmC7D,WAAWL,EAAYkE,8BAA2BtP,EAEtGzB,KAAKgR,uCACsD,MAAtDnE,EAAYmE,uCAAkD9D,WAAWL,EAAYmE,6CAA0CvP,EAEpIzB,KAAKiR,qBACoC,MAApCpE,EAAYoE,qBAAgC/D,WAAWL,EAAYoE,2BAAwBxP,EAEhGzB,KAAKkR,6BAC4C,MAA5CrE,EAAYqE,6BAAwChE,WAAWL,EAAYqE,mCAAgCzP,EAEhHzB,KAAKmR,0BACyC,MAAzCtE,EAAYsE,0BAAqCjE,WAAWL,EAAYsE,gCAA6B1P,EAE1GzB,KAAKoR,yBACwC,MAAxCvE,EAAYuE,yBAAoClE,WAAWL,EAAYuE,+BAA4B3P,EAE5GzB,KAAKqR,oBAAiB5P,EAClBoL,EAAYwE,eAAgB,CAChCrR,KAAKqR,eAAiB,GACtB,IAASzO,EAAI,EAAGA,EAAIiK,EAAYwE,eAAexO,OAAQD,IAClB,MAAjCiK,EAAYwE,eAAezO,GAC3B5C,KAAKqR,eAAezO,GAChBiK,EAAYwE,eAAezO,GAEnC5C,KAAKqR,eAAezO,QAAKnB,EAUzB,GALIzB,KAAKsR,oBACAzE,EAAYyE,+BAA+BrK,KAAQ4F,EAAYyE,oBAC1B,MAAnCzE,EAAYyE,qBAA+BhD,EAAAA,EAAAA,IAAiCzB,EAAYyE,oBAAqB,sBAAsB,QAAS7P,EAEvJzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAqB1B,GAhBIzB,KAAKyR,aACD5E,EAAY4E,aAEhBzR,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAK2R,sBACqC,MAArC9E,EAAY8E,sBAAiCzE,WAAWL,EAAY8E,4BAAyBlQ,EAElGzB,KAAK4R,qCACoD,MAApD/E,EAAY+E,qCAAgD1E,WAAWL,EAAY+E,2CAAwCnQ,EAEhIzB,KAAK6R,QACDhF,EAAYgF,QAEe,MAA/BhF,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CAEH1E,GADIA,EAAoBP,EAAYiF,gBAAgB,gBAC9BzE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,kBAoC3E,GA/BI9R,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKiS,eAC8B,MAA9BpF,EAAYoF,eAA0B/E,WAAWL,EAAYoF,qBAAkBxQ,EAEpFzB,KAAKkS,yBACwC,MAAxCrF,EAAYqF,yBAAoChF,WAAWL,EAAYqF,+BAA4BzQ,EAExGzB,KAAKmS,SACwB,MAAxBtF,EAAYsF,SAAoBjF,WAAWL,EAAYsF,eAAY1Q,EAExEzB,KAAKoS,oBACmC,MAAnCvF,EAAYuF,oBAA+BlF,WAAWL,EAAYuF,0BAAuB3Q,EAE9FzB,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAKsS,wBACuC,MAAvCzF,EAAYyF,wBAAmCpF,WAAWL,EAAYyF,8BAA2B7Q,EAEtGzB,KAAKuS,oBACmC,MAAnC1F,EAAY0F,oBAA+BrF,WAAWL,EAAY0F,0BAAuB9Q,EAE9FzB,KAAKwS,wBACuC,MAAvC3F,EAAY2F,wBAAmCtF,WAAWL,EAAY2F,8BAA2B/Q,EAEtGzB,KAAKyS,gBACD5F,EAAY4F,gBAEpBzS,KAAK0S,iBAAcjR,EACfoL,EAAY6F,YAAa,CAC7B1S,KAAK0S,YAAc,GACnB,IAAS9P,EAAI,EAAGA,EAAIiK,EAAY6F,YAAY7P,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAY6F,YAAY9P,GAC5B,GAAiD,MAA7CiK,EAAY6F,YAAY9P,GAAG,eAE7BwK,GADIA,EAAoBP,EAAY6F,YAAY9P,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0S,YAAY9P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6F,YAAY9P,UAGhF5C,KAAK0S,YAAY9P,GAAK,IAAIzqC,GAAgB00C,EAAY6F,YAAY9P,SAGtE5C,KAAK0S,YAAY9P,QAAKnB,GAMtB,GADAzB,KAAK2S,2BAAwBlR,EACzBoL,EAAY8F,sBAAuB,CACvC3S,KAAK2S,sBAAwB,GAC7B,IAAS/P,EAAI,EAAGA,EAAIiK,EAAY8F,sBAAsB9P,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAY8F,sBAAsB/P,GACtC,GAA2D,MAAvDiK,EAAY8F,sBAAsB/P,GAAG,eAEvCwK,GADIA,EAAoBP,EAAY8F,sBAAsB/P,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2S,sBAAsB/P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8F,sBAAsB/P,UAGpG5C,KAAK2S,sBAAsB/P,GAAK,IAAIzqC,GAAgB00C,EAAY8F,sBAAsB/P,SAG1F5C,KAAK2S,sBAAsB/P,QAAKnB,GAsDhC,GAjDIzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAK8S,iBACgC,MAAhCjG,EAAYiG,iBAA4B5F,WAAWL,EAAYiG,uBAAoBrR,EAExFzB,KAAK+S,kBACiC,MAAjClG,EAAYkG,kBAA6B7F,WAAWL,EAAYkG,wBAAqBtR,EAE1FzB,KAAKgT,yBACwC,MAAxCnG,EAAYmG,yBAAoC9F,WAAWL,EAAYmG,+BAA4BvR,EAExGzB,KAAKiT,8BAC6C,MAA7CpG,EAAYoG,8BAAyC/F,WAAWL,EAAYoG,oCAAiCxR,EAElHzB,KAAKkT,0BACyC,MAAzCrG,EAAYqG,0BAAqChG,WAAWL,EAAYqG,gCAA6BzR,EAE1GzB,KAAKmT,8BAC6C,MAA7CtG,EAAYsG,8BAAyCjG,WAAWL,EAAYsG,oCAAiC1R,EAElHzB,KAAKoT,YACDvG,EAAYuG,YAEhBpT,KAAKqT,iBACDxG,EAAYwG,iBAEhBrT,KAAKsT,gBACDzG,EAAYyG,gBAEhBtT,KAAKuT,4BACD1G,EAAY0G,4BAEhBvT,KAAKwT,qBACD3G,EAAY2G,qBAEhBxT,KAAKyT,QACuB,MAAvB5G,EAAY4G,QAAmBhN,SAASoG,EAAY4G,QAAS,SAAMhS,EAExEzB,KAAK0T,WAC0B,MAA1B7G,EAAY6G,WAAsBxG,WAAWL,EAAY6G,iBAAcjS,EAE5EzB,KAAK2T,2BACD9G,EAAY8G,2BAEpB3T,KAAK4T,wBAAqBnS,EACtBoL,EAAY+G,mBAAoB,CACpC5T,KAAK4T,mBAAqB,GAC1B,IAAShR,EAAI,EAAGA,EAAIiK,EAAY+G,mBAAmB/Q,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAY+G,mBAAmBhR,GACnC,GAAwD,MAApDiK,EAAY+G,mBAAmBhR,GAAG,eAEpCwK,GADIA,EAAoBP,EAAY+G,mBAAmBhR,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4T,mBAAmBhR,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+G,mBAAmBhR,UAG9F5C,KAAK4T,mBAAmBhR,GAAK,IAAI3jB,GAAgC4tB,EAAY+G,mBAAmBhR,SAGpG5C,KAAK4T,mBAAmBhR,QAAKnB,GAS7B,GAJIzB,KAAK6T,8BACDhH,EAAYgH,8BAEpB7T,KAAK8T,wBAAqBrS,EACtBoL,EAAYiH,mBAAoB,CACpC9T,KAAK8T,mBAAqB,GAC1B,IAASlR,EAAI,EAAGA,EAAIiK,EAAYiH,mBAAmBjR,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYiH,mBAAmBlR,GACnC,GAAwD,MAApDiK,EAAYiH,mBAAmBlR,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYiH,mBAAmBlR,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8T,mBAAmBlR,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiH,mBAAmBlR,UAG9F5C,KAAK8T,mBAAmBlR,GAAK,IAAI7K,GAAuB8U,EAAYiH,mBAAmBlR,SAG3F5C,KAAK8T,mBAAmBlR,QAAKnB,GAe7B,GAVIzB,KAAK+T,qBACoC,MAApClH,EAAYkH,qBAAgC7G,WAAWL,EAAYkH,2BAAwBtS,EAEhGzB,KAAKgU,kBACiC,MAAjCnH,EAAYmH,kBAA6B9G,WAAWL,EAAYmH,wBAAqBvS,EAE1FzB,KAAKiU,qCACDpH,EAAYoH,qCAEpBjU,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,UAAgB51C,EAKzB,MAAM8O,EA6Eb85B,YAAYiN,GA4KV,GA3KFA,EAAcA,GAAe,GACvB7M,KAAKn6B,cACDgnC,EAAYhnC,cAEhBm6B,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKmU,YACDtH,EAAYsH,YAEhBnU,KAAKoU,WACDvH,EAAYuH,WAEhBpU,KAAKqU,uBACDxH,EAAYwH,uBAEhBrU,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAKuU,cAC6B,MAA7B1H,EAAY0H,cAAyB9N,SAASoG,EAAY0H,cAAe,SAAM9S,EAEpFzB,KAAKwU,SACD3H,EAAY2H,SAEhBxU,KAAKyU,UACD5H,EAAY4H,UAEhBzU,KAAK0U,MACD7H,EAAY6H,MAEhB1U,KAAK2U,cAC6B,MAA7B9H,EAAY8H,cAAyBlO,SAASoG,EAAY8H,cAAe,SAAMlT,EAEpFzB,KAAK4U,IACD/H,EAAY+H,IAEhB5U,KAAK6U,YAC2B,MAA3BhI,EAAYgI,YAAuBpO,SAASoG,EAAYgI,YAAa,SAAMpT,EAEhFzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK8U,aAC4B,MAA5BjI,EAAYiI,aAAwBrO,SAASoG,EAAYiI,aAAc,SAAMrT,EAElFzB,KAAK+U,UACDlI,EAAYkI,UAEhB/U,KAAKgV,WACDnI,EAAYmI,WAEhBhV,KAAKiV,SACDpI,EAAYoI,SAEhBjV,KAAKkV,uBACsC,MAAtCrI,EAAYqI,uBAAkCzO,SAASoG,EAAYqI,uBAAwB,SAAMzT,EAEtGzB,KAAKmV,YACDtI,EAAYsI,YAEhBnV,KAAKoV,kBACDvI,EAAYuI,kBAEhBpV,KAAKqV,SACDxI,EAAYwI,SAEhBrV,KAAKsV,cACDzI,EAAYyI,cAEhBtV,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKwV,cACD3I,EAAY2I,cAEhBxV,KAAKyV,qBACD5I,EAAY4I,qBAEhBzV,KAAK0V,eACD7I,EAAY6I,eAEhB1V,KAAK2V,qBACD9I,EAAY8I,qBAEhB3V,KAAK4V,aACD/I,EAAY+I,aAEhB5V,KAAK6V,YAC2B,MAA3BhJ,EAAYgJ,YAAuB3I,WAAWL,EAAYgJ,kBAAepU,EAE9EzB,KAAK8V,QACuB,MAAvBjJ,EAAYiJ,QAAmB5I,WAAWL,EAAYiJ,cAAWrU,EAEtEzB,KAAK+V,QACDlJ,EAAYkJ,QAEhB/V,KAAKgW,YACDnJ,EAAYmJ,YAEhBhW,KAAKiW,wBACDpJ,EAAYoJ,wBAEhBjW,KAAKkW,eACDrJ,EAAYqJ,eAEhBlW,KAAKmW,mBACDtJ,EAAYsJ,mBAEhBnW,KAAKoW,uBACDvJ,EAAYuJ,uBAEhBpW,KAAKqW,mBACDxJ,EAAYwJ,mBAEhBrW,KAAKsW,kBACDzJ,EAAYyJ,kBAEhBtW,KAAKuW,SACD1J,EAAY0J,SAEhBvW,KAAKwW,cACD3J,EAAY2J,cAEhBxW,KAAKyW,uBACD5J,EAAY4J,uBAEhBzW,KAAK0W,gBACD7J,EAAY6J,gBAEhB1W,KAAK2W,UACD9J,EAAY8J,UAEhB3W,KAAK4W,UACD/J,EAAY+J,UAEhB5W,KAAK6W,qBACDhK,EAAYgK,qBAEhB7W,KAAK8W,IACDjK,EAAYiK,IAEhB9W,KAAK+W,gBACDlK,EAAYkK,gBAEhB/W,KAAKyR,aACD5E,EAAY4E,aAEhBzR,KAAKgX,sBACDnK,EAAYmK,sBAEhBhX,KAAKiX,0BACDpK,EAAYoK,0BAEhBjX,KAAKkX,4BAC2C,MAA3CrK,EAAYqK,4BAAuCzQ,SAASoG,EAAYqK,4BAA6B,SAAMzV,EAEhHzB,KAAK8M,aACDD,EAAYC,aAEhB9M,KAAKmX,gBACDtK,EAAYsK,gBAEhBnX,KAAKoX,uBACDvK,EAAYuK,uBAEpBpX,KAAKqX,0BAAuB5V,EACxBoL,EAAYwK,qBAAsB,CACtCrX,KAAKqX,qBAAuB,GAC5B,IAAK,IAAIzU,EAAI,EAAGA,EAAIiK,EAAYwK,qBAAqBxU,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAYwK,qBAAqBzU,GACrC,GAA0D,MAAtDiK,EAAYwK,qBAAqBzU,GAAG,eAEtCwK,GADIA,EAAoBP,EAAYwK,qBAAqBzU,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqX,qBAAqBzU,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwK,qBAAqBzU,UAGlG5C,KAAKqX,qBAAqBzU,GAAK,IAAI0U,EAAyBzK,EAAYwK,qBAAqBzU,SAGjG5C,KAAKqX,qBAAqBzU,QAAKnB,GAM/B,GADAzB,KAAKuX,eAAY9V,EACboL,EAAY0K,UAAW,CAC3BvX,KAAKuX,UAAY,GACjB,IAAS3U,EAAI,EAAGA,EAAIiK,EAAY0K,UAAU1U,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAY0K,UAAU3U,GAC1B,GAA+C,MAA3CiK,EAAY0K,UAAU3U,GAAG,eAE3BwK,GADIA,EAAoBP,EAAY0K,UAAU3U,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuX,UAAU3U,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0K,UAAU3U,UAG5E5C,KAAKuX,UAAU3U,GAAK,IAAImP,EAAalF,EAAY0K,UAAU3U,SAG/D5C,KAAKuX,UAAU3U,QAAKnB,GAMpB,GADAzB,KAAKwX,gBAAa/V,EACdoL,EAAY2K,WAAY,CAC5BxX,KAAKwX,WAAa,GAClB,IAAS5U,EAAI,EAAGA,EAAIiK,EAAY2K,WAAW3U,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY2K,WAAW5U,GAC3B,GAAgD,MAA5CiK,EAAY2K,WAAW5U,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY2K,WAAW5U,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwX,WAAW5U,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2K,WAAW5U,UAG9E5C,KAAKwX,WAAW5U,GAAK,IAAI6U,GAAuB5K,EAAY2K,WAAW5U,SAG3E5C,KAAKwX,WAAW5U,QAAKnB,GAMrB,GADAzB,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAASvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI5tB,GAAmB63B,EAAYM,OAAOvK,SAG/D5C,KAAKmN,OAAOvK,QAAKnB,GAqBjB,GAhBIzB,KAAK0X,cAC6B,MAA7B7K,EAAY6K,cAAyBjR,SAASoG,EAAY6K,cAAe,SAAMjW,EAEpFzB,KAAK2X,oBACD9K,EAAY8K,oBAEhB3X,KAAK4X,MACD/K,EAAY+K,MAEhB5X,KAAK6X,WACDhL,EAAYgL,WAEhB7X,KAAK9pC,kBACD22C,EAAY32C,kBAEpB8pC,KAAK8X,cAAWrW,EACZoL,EAAYiL,SAAU,CAC1B9X,KAAK8X,SAAW,GAChB,IAASlV,EAAI,EAAGA,EAAIiK,EAAYiL,SAASjV,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYiL,SAASlV,GACzB,GAA8C,MAA1CiK,EAAYiL,SAASlV,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYiL,SAASlV,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8X,SAASlV,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiL,SAASlV,UAG1E5C,KAAK8X,SAASlV,GAAK,IAAImV,GAAiBlL,EAAYiL,SAASlV,SAGjE5C,KAAK8X,SAASlV,QAAKnB,GASnB,GAJIzB,KAAKgY,sBACDnL,EAAYmL,sBAEpBhY,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,cAAoB9mC,EAK7B,MAAMmyC,EAqBbrY,YAAYiN,GAiBV,GAhBFA,EAAcA,GAAe,GACvB7M,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKkY,cACDrL,EAAYqL,cAEhBlY,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKmY,YACDtL,EAAYsL,YAEhBnY,KAAKoY,6BACDvL,EAAYuL,6BAEW,MAA3BvL,EAAYwL,YACZrY,KAAKqY,iBAAc5W,OAChB,GAA8C,MAA1CoL,EAAYwL,YAAY,eAC/BrY,KAAKqY,YAAc,IAAIC,GAAyBzL,EAAYwL,iBACzD,CAEHjL,GADIA,EAAoBP,EAAYwL,YAAY,gBAC1BhL,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqY,YAAc,IAAIzL,EAAiBQ,GAAWP,EAAYwL,cAMvE,GADArY,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAAK,IAAIvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI5tB,GAAmB63B,EAAYM,OAAOvK,SAG/D5C,KAAKmN,OAAOvK,QAAKnB,GAkBjB,GAbIzB,KAAKuY,aACD1L,EAAY0L,aAEhBvY,KAAKwY,4BACD3L,EAAY2L,4BAEhBxY,KAAKyY,oBACD5L,EAAY4L,oBAEhBzY,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,cAAoBqL,EAK7B,MAAMS,EAsBb9Y,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAK2Y,WAAQlX,EACToL,EAAY8L,MAAO,CACvB3Y,KAAK2Y,MAAQ,GACb,IAAK,IAAI/V,EAAI,EAAGA,EAAIiK,EAAY8L,MAAM9V,OAAQD,IAAK,CACnD,GAA4B,MAAxBiK,EAAY8L,MAAM/V,GACtB,GAA2C,MAAvCiK,EAAY8L,MAAM/V,GAAG,eAEvBwK,GADIA,EAAoBP,EAAY8L,MAAM/V,GAAG,gBACvByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2Y,MAAM/V,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8L,MAAM/V,UAGpE5C,KAAK2Y,MAAM/V,GAAK,IAAIgW,GAAmB/L,EAAY8L,MAAM/V,SAG7D5C,KAAK2Y,MAAM/V,QAAKnB,GAuChB,GAlCIzB,KAAKyT,QACD5G,EAAY4G,QAEhBzT,KAAK6Y,UACDhM,EAAYgM,UAEhB7Y,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK8Y,oBACmC,MAAnCjM,EAAYiM,oBAA+BrS,SAASoG,EAAYiM,oBAAqB,SAAMrX,EAEhGzB,KAAK+Y,gCACDlM,EAAYkM,gCAEhB/Y,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAKmZ,eACAtM,EAAYsM,0BAA0BlS,KAAQ4F,EAAYsM,eAC1B,MAA9BtM,EAAYsM,gBAA0B7K,EAAAA,EAAAA,IAAiCzB,EAAYsM,eAAgB,sBAAsB,QAAS1X,EAE7IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,eAAqB8L,EAK9B,MAAM/gD,EAoJbioC,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKoZ,oBACDvM,EAAYuM,oBAEhBpZ,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKqZ,gBACDxM,EAAYwM,gBAEpBrZ,KAAKsZ,eAAY7X,EACboL,EAAYyM,UAAW,CAC3BtZ,KAAKsZ,UAAY,GACjB,IAAK,IAAI1W,EAAI,EAAGA,EAAIiK,EAAYyM,UAAUzW,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAYyM,UAAU1W,GAC1B,GAA+C,MAA3CiK,EAAYyM,UAAU1W,GAAG,eAE3BwK,GADIA,EAAoBP,EAAYyM,UAAU1W,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsZ,UAAU1W,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyM,UAAU1W,UAG5E5C,KAAKsZ,UAAU1W,GAAK,IAAI2W,GAAc1M,EAAYyM,UAAU1W,SAGhE5C,KAAKsZ,UAAU1W,QAAKnB,GAKpB,GAAgD,MAA5CoL,EAAY2M,6BACZxZ,KAAKwZ,kCAA+B/X,OACjC,GAA+D,MAA3DoL,EAAY2M,6BAA6B,eAChDxZ,KAAKwZ,6BAA+B,IAAIC,GAAyB5M,EAAY2M,kCAC1E,CAEHpM,GADIA,EAAoBP,EAAY2M,6BAA6B,gBAC3CnM,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwZ,6BAA+B,IAAI5M,EAAiBQ,GAAWP,EAAY2M,+BAKxF,GAA8C,MAA1C3M,EAAY6M,2BACZ1Z,KAAK0Z,gCAA6BjY,OAC/B,GAA6D,MAAzDoL,EAAY6M,2BAA2B,eAC9C1Z,KAAK0Z,2BAA6B,IAAIC,GAAyB9M,EAAY6M,gCACxE,CAEHtM,GADIA,EAAoBP,EAAY6M,2BAA2B,gBACzCrM,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0Z,2BAA6B,IAAI9M,EAAiBQ,GAAWP,EAAY6M,6BAYtF,GAPI1Z,KAAK4Z,mBACD/M,EAAY+M,mBAEhB5Z,KAAK6Z,yBACDhN,EAAYgN,yBAEpB7Z,KAAK8Z,iCAA8BrY,EAC/BoL,EAAYiN,4BAA6B,CAC7C9Z,KAAK8Z,4BAA8B,GACnC,IAASlX,EAAI,EAAGA,EAAIiK,EAAYiN,4BAA4BjX,OAAQD,IAAK,CACzE,GAAkD,MAA9CiK,EAAYiN,4BAA4BlX,GAC5C,GAAiE,MAA7DiK,EAAYiN,4BAA4BlX,GAAG,eAE7CwK,GADIA,EAAoBP,EAAYiN,4BAA4BlX,GAAG,gBAC7CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8Z,4BAA4BlX,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiN,4BAA4BlX,UAGhH5C,KAAK8Z,4BAA4BlX,GAAK,IAAImX,GAAiClN,EAAYiN,4BAA4BlX,SAGvH5C,KAAK8Z,4BAA4BlX,QAAKnB,GA2BtC,GAtBIzB,KAAK6N,qBACDhB,EAAYgB,qBAEhB7N,KAAK8N,0BACDjB,EAAYiB,0BAEhB9N,KAAK+N,0BACDlB,EAAYkB,0BAEhB/N,KAAKgO,UACyB,MAAzBnB,EAAYmB,UAAqBd,WAAWL,EAAYmB,gBAAavM,EAE1EzB,KAAKyO,wBACuC,MAAvC5B,EAAY4B,wBAAmCvB,WAAWL,EAAY4B,8BAA2BhN,EAEtGzB,KAAKiO,WAC0B,MAA1BpB,EAAYoB,WAAsBf,WAAWL,EAAYoB,iBAAcxM,EAE5EzB,KAAK+O,8BAC6C,MAA7ClC,EAAYkC,8BAAyC7B,WAAWL,EAAYkC,oCAAiCtN,EAEtHzB,KAAKkO,qBAAkBzM,EACnBoL,EAAYqB,gBAAiB,CACjClO,KAAKkO,gBAAkB,GACvB,IAAStL,EAAI,EAAGA,EAAIiK,EAAYqB,gBAAgBrL,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYqB,gBAAgBtL,GAChC,GAAqD,MAAjDiK,EAAYqB,gBAAgBtL,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYqB,gBAAgBtL,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkO,gBAAgBtL,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqB,gBAAgBtL,UAGxF5C,KAAKkO,gBAAgBtL,GAAK,IAAIuL,EAAwBtB,EAAYqB,gBAAgBtL,SAGtF5C,KAAKkO,gBAAgBtL,QAAKnB,GAoC1B,GA/BIzB,KAAK8Q,uBACsC,MAAtCjE,EAAYiE,uBAAkC5D,WAAWL,EAAYiE,6BAA0BrP,EAEpGzB,KAAKqO,cACAxB,EAAYwB,yBAAyBpH,KAAQ4F,EAAYwB,cAC1B,MAA7BxB,EAAYwB,eAAyBC,EAAAA,EAAAA,IAAiCzB,EAAYwB,cAAe,sBAAsB,QAAS5M,EAEvIzB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKuO,aACA1B,EAAY0B,wBAAwBtH,KAAQ4F,EAAY0B,aAC1B,MAA5B1B,EAAY0B,cAAwBD,EAAAA,EAAAA,IAAiCzB,EAAY0B,aAAc,sBAAsB,QAAS9M,EAErIzB,KAAKga,wBACuC,MAAvCnN,EAAYmN,wBAAmC9M,WAAWL,EAAYmN,8BAA2BvY,EAEtGzB,KAAKia,mBACkC,MAAlCpN,EAAYoN,mBAA8B/M,WAAWL,EAAYoN,yBAAsBxY,EAE5FzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAK8O,aAC4B,MAA5BjC,EAAYiC,aAAwB5B,WAAWL,EAAYiC,mBAAgBrN,EAEpFzB,KAAKgP,iBAAcvN,EACfoL,EAAYmC,YAAa,CAC7BhP,KAAKgP,YAAc,GACnB,IAASpM,EAAI,EAAGA,EAAIiK,EAAYmC,YAAYnM,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYmC,YAAYpM,GAC5B,GAAiD,MAA7CiK,EAAYmC,YAAYpM,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYmC,YAAYpM,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgP,YAAYpM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmC,YAAYpM,UAGhF5C,KAAKgP,YAAYpM,GAAK,IAAIqM,GAAgBpC,EAAYmC,YAAYpM,SAGtE5C,KAAKgP,YAAYpM,QAAKnB,GAStB,GAJIzB,KAAKoP,QACDvC,EAAYuC,QAEpBpP,KAAKsP,aAAU7N,EACXoL,EAAYyC,QAAS,CACzBtP,KAAKsP,QAAU,GACf,IAAS1M,EAAI,EAAGA,EAAIiK,EAAYyC,QAAQzM,OAAQD,IAAK,CACrD,GAA8B,MAA1BiK,EAAYyC,QAAQ1M,GACxB,GAA6C,MAAzCiK,EAAYyC,QAAQ1M,GAAG,eAEzBwK,GADIA,EAAoBP,EAAYyC,QAAQ1M,GAAG,gBACzByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsP,QAAQ1M,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyC,QAAQ1M,UAGxE5C,KAAKsP,QAAQ1M,GAAK,IAAI2M,GAAY1C,EAAYyC,QAAQ1M,SAG1D5C,KAAKsP,QAAQ1M,QAAKnB,GASlB,GAJIzB,KAAKqP,eACDxC,EAAYwC,eAEpBrP,KAAKma,kCAA+B1Y,EAChCoL,EAAYsN,6BAA8B,CAC9Cna,KAAKma,6BAA+B,GACpC,IAASvX,EAAI,EAAGA,EAAIiK,EAAYsN,6BAA6BtX,OAAQD,IAAK,CAC1E,GAAmD,MAA/CiK,EAAYsN,6BAA6BvX,GAC7C,GAAkE,MAA9DiK,EAAYsN,6BAA6BvX,GAAG,eAE9CwK,GADIA,EAAoBP,EAAYsN,6BAA6BvX,GAAG,gBAC9CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKma,6BAA6BvX,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsN,6BAA6BvX,UAGlH5C,KAAKma,6BAA6BvX,GAAK,IAAIwX,GAAwBvN,EAAYsN,6BAA6BvX,SAGhH5C,KAAKma,6BAA6BvX,QAAKnB,GASvC,GAJIzB,KAAKuV,aACD1I,EAAY0I,aAEpBvV,KAAKiQ,iCAA8BxO,EAC/BoL,EAAYoD,4BAA6B,CAC7CjQ,KAAKiQ,4BAA8B,GACnC,IAASrN,EAAI,EAAGA,EAAIiK,EAAYoD,4BAA4BpN,OAAQD,IAAK,CACzE,GAAkD,MAA9CiK,EAAYoD,4BAA4BrN,GAC5C,GAAiE,MAA7DiK,EAAYoD,4BAA4BrN,GAAG,eAE7CwK,GADIA,EAAoBP,EAAYoD,4BAA4BrN,GAAG,gBAC7CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiQ,4BAA4BrN,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoD,4BAA4BrN,UAGhH5C,KAAKiQ,4BAA4BrN,GAAK,IAAIsN,GAAgCrD,EAAYoD,4BAA4BrN,SAGtH5C,KAAKiQ,4BAA4BrN,QAAKnB,GA8BtC,GAzBIzB,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKyP,uBACD5C,EAAY4C,uBAEhBzP,KAAKqa,uBACDxN,EAAYwN,uBAEhBra,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAK2P,yBACwC,MAAxC9C,EAAY8C,yBAAoCzC,WAAWL,EAAY8C,+BAA4BlO,EAExGzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK6P,yBACwC,MAAxChD,EAAYgD,yBAAoC3C,WAAWL,EAAYgD,+BAA4BpO,EAExGzB,KAAKmS,SACwB,MAAxBtF,EAAYsF,SAAoBjF,WAAWL,EAAYsF,eAAY1Q,EAE5EzB,KAAK8P,mBAAgBrO,EACjBoL,EAAYiD,cAAe,CAC/B9P,KAAK8P,cAAgB,GACrB,IAASlN,EAAI,EAAGA,EAAIiK,EAAYiD,cAAcjN,OAAQD,IAClB,MAAhCiK,EAAYiD,cAAclN,GAC1B5C,KAAK8P,cAAclN,GACfiK,EAAYiD,cAAclN,GAElC5C,KAAK8P,cAAclN,QAAKnB,EAwBxB,GAnBIzB,KAAKsa,iBACDzN,EAAYyN,iBAEhBta,KAAKua,YAC2B,MAA3B1N,EAAY0N,YAAuBrN,WAAWL,EAAY0N,kBAAe9Y,EAE9EzB,KAAKwa,kBACD3N,EAAY2N,kBAEhBxa,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKya,sBACD5N,EAAY4N,sBAEhBza,KAAK0a,uBACD7N,EAAY6N,uBAEpB1a,KAAKmQ,wBAAqB1O,EACtBoL,EAAYsD,mBAAoB,CACpCnQ,KAAKmQ,mBAAqB,GAC1B,IAASvN,EAAI,EAAGA,EAAIiK,EAAYsD,mBAAmBtN,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYsD,mBAAmBvN,GACnC,GAAwD,MAApDiK,EAAYsD,mBAAmBvN,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYsD,mBAAmBvN,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmQ,mBAAmBvN,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsD,mBAAmBvN,UAG9F5C,KAAKmQ,mBAAmBvN,GAAK,IAAIwN,GAAuBvD,EAAYsD,mBAAmBvN,SAG3F5C,KAAKmQ,mBAAmBvN,QAAKnB,GA0C7B,GArCIzB,KAAKqQ,yBACwC,MAAxCxD,EAAYwD,yBAAoCnD,WAAWL,EAAYwD,+BAA4B5O,EAExGzB,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAKqT,iBACDxG,EAAYwG,iBAEhBrT,KAAKsQ,kBACDzD,EAAYyD,kBAEhBtQ,KAAK0Q,YACD7D,EAAY6D,YAEhB1Q,KAAKoO,qBACDvB,EAAYuB,qBAEhBpO,KAAK4a,+BACD/N,EAAY+N,+BAEhB5a,KAAK6a,aAC4B,MAA5BhO,EAAYgO,aAAwB3N,WAAWL,EAAYgO,mBAAgBpZ,EAEhFzB,KAAK8a,iCACDjO,EAAYiO,iCAEhB9a,KAAK2Q,cACD9D,EAAY8D,cAEhB3Q,KAAK+a,sBACqC,MAArClO,EAAYkO,sBAAiC7N,WAAWL,EAAYkO,4BAAyBtZ,EAElGzB,KAAKgb,4BAC2C,MAA3CnO,EAAYmO,4BAAuC9N,WAAWL,EAAYmO,kCAA+BvZ,EAElHzB,KAAKib,6BAA0BxZ,EAC3BoL,EAAYoO,wBAAyB,CACzCjb,KAAKib,wBAA0B,GAC/B,IAASrY,EAAI,EAAGA,EAAIiK,EAAYoO,wBAAwBpY,OAAQD,IAAK,CACrE,GAA8C,MAA1CiK,EAAYoO,wBAAwBrY,GACxC,GAA6D,MAAzDiK,EAAYoO,wBAAwBrY,GAAG,eAEzCwK,GADIA,EAAoBP,EAAYoO,wBAAwBrY,GAAG,gBACzCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKib,wBAAwBrY,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoO,wBAAwBrY,UAGxG5C,KAAKib,wBAAwBrY,GAAK,IAAIsY,GAA4BrO,EAAYoO,wBAAwBrY,SAG1G5C,KAAKib,wBAAwBrY,QAAKnB,GAwDlC,GAnDIzB,KAAK4Q,iBACA/D,EAAY+D,4BAA4B3J,KAAQ4F,EAAY+D,iBAC1B,MAAhC/D,EAAY+D,kBAA4BtC,EAAAA,EAAAA,IAAiCzB,EAAY+D,iBAAkB,sBAAsB,QAASnP,EAE7IzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKmb,UACyB,MAAzBtO,EAAYsO,UAAqBjO,WAAWL,EAAYsO,gBAAa1Z,EAE1EzB,KAAKob,oBACmC,MAAnCvO,EAAYuO,oBAA+BlO,WAAWL,EAAYuO,0BAAuB3Z,EAE9FzB,KAAKqb,mBACkC,MAAlCxO,EAAYwO,mBAA8BnO,WAAWL,EAAYwO,yBAAsB5Z,EAE5FzB,KAAKsb,iBACgC,MAAhCzO,EAAYyO,iBAA4BpO,WAAWL,EAAYyO,uBAAoB7Z,EAExFzB,KAAKub,cAC6B,MAA7B1O,EAAY0O,cAAyBrO,WAAWL,EAAY0O,oBAAiB9Z,EAElFzB,KAAK+Q,wBACuC,MAAvClE,EAAYkE,wBAAmC7D,WAAWL,EAAYkE,8BAA2BtP,EAEtGzB,KAAKgR,uCACsD,MAAtDnE,EAAYmE,uCAAkD9D,WAAWL,EAAYmE,6CAA0CvP,EAEpIzB,KAAKwb,uBACsC,MAAtC3O,EAAY2O,uBAAkCtO,WAAWL,EAAY2O,6BAA0B/Z,EAEpGzB,KAAKyb,qBACoC,MAApC5O,EAAY4O,qBAAgCvO,WAAWL,EAAY4O,2BAAwBha,EAEhGzB,KAAK0b,gCAC+C,MAA/C7O,EAAY6O,gCAA2CxO,WAAWL,EAAY6O,sCAAmCja,EAEtHzB,KAAKoR,yBACwC,MAAxCvE,EAAYuE,yBAAoClE,WAAWL,EAAYuE,+BAA4B3P,EAExGzB,KAAKiR,qBACoC,MAApCpE,EAAYoE,qBAAgC/D,WAAWL,EAAYoE,2BAAwBxP,EAEhGzB,KAAKkR,6BAC4C,MAA5CrE,EAAYqE,6BAAwChE,WAAWL,EAAYqE,mCAAgCzP,EAEhHzB,KAAKsR,oBACAzE,EAAYyE,+BAA+BrK,KAAQ4F,EAAYyE,oBAC1B,MAAnCzE,EAAYyE,qBAA+BhD,EAAAA,EAAAA,IAAiCzB,EAAYyE,oBAAqB,sBAAsB,QAAS7P,EAEvJzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GA+B1B,GA1BIzB,KAAKyR,aACD5E,EAAY4E,aAEhBzR,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAK2R,sBACqC,MAArC9E,EAAY8E,sBAAiCzE,WAAWL,EAAY8E,4BAAyBlQ,EAElGzB,KAAK4R,qCACoD,MAApD/E,EAAY+E,qCAAgD1E,WAAWL,EAAY+E,2CAAwCnQ,EAEhIzB,KAAKuQ,mCACD1D,EAAY0D,mCAEhBvQ,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK4b,uBACsC,MAAtC/O,EAAY+O,uBAAkC1O,WAAWL,EAAY+O,6BAA0Bna,EAExGzB,KAAK6b,gBAAapa,EACdoL,EAAYgP,WAAY,CAC5B7b,KAAK6b,WAAa,GAClB,IAASjZ,EAAI,EAAGA,EAAIiK,EAAYgP,WAAWhZ,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYgP,WAAWjZ,GAC3B,GAAgD,MAA5CiK,EAAYgP,WAAWjZ,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYgP,WAAWjZ,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6b,WAAWjZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgP,WAAWjZ,UAG9E5C,KAAK6b,WAAWjZ,GAAK,IAAItmB,GAAeuwB,EAAYgP,WAAWjZ,SAGnE5C,KAAK6b,WAAWjZ,QAAKnB,GAWrB,GANIzB,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK+b,gBACDlP,EAAYkP,gBAEe,MAA/BlP,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CAEH1E,GADIA,EAAoBP,EAAYiF,gBAAgB,gBAC9BzE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,kBAiC3E,GA5BI9R,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKgc,cACDnP,EAAYmP,cAEhBhc,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAKiS,eAC8B,MAA9BpF,EAAYoF,eAA0B/E,WAAWL,EAAYoF,qBAAkBxQ,EAEpFzB,KAAKkS,yBACwC,MAAxCrF,EAAYqF,yBAAoChF,WAAWL,EAAYqF,+BAA4BzQ,EAExGzB,KAAKoS,oBACmC,MAAnCvF,EAAYuF,oBAA+BlF,WAAWL,EAAYuF,0BAAuB3Q,EAE9FzB,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAKkc,mBACkC,MAAlCrP,EAAYqP,mBAA8BhP,WAAWL,EAAYqP,yBAAsBza,EAE5FzB,KAAKmc,mBACkC,MAAlCtP,EAAYsP,mBAA8BjP,WAAWL,EAAYsP,yBAAsB1a,EAEhGzB,KAAKoc,cAAW3a,EACZoL,EAAYuP,SAAU,CAC1Bpc,KAAKoc,SAAW,GAChB,IAASxZ,EAAI,EAAGA,EAAIiK,EAAYuP,SAASvZ,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYuP,SAASxZ,GACzB,GAA8C,MAA1CiK,EAAYuP,SAASxZ,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYuP,SAASxZ,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKoc,SAASxZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuP,SAASxZ,UAG1E5C,KAAKoc,SAASxZ,GAAK,IAAIyZ,GAAaxP,EAAYuP,SAASxZ,SAG7D5C,KAAKoc,SAASxZ,QAAKnB,GAkBnB,GAbIzB,KAAKsS,wBACuC,MAAvCzF,EAAYyF,wBAAmCpF,WAAWL,EAAYyF,8BAA2B7Q,EAEtGzB,KAAKuS,oBACmC,MAAnC1F,EAAY0F,oBAA+BrF,WAAWL,EAAY0F,0BAAuB9Q,EAE9FzB,KAAKwS,wBACuC,MAAvC3F,EAAY2F,wBAAmCtF,WAAWL,EAAY2F,8BAA2B/Q,EAEtGzB,KAAKyS,gBACD5F,EAAY4F,gBAEpBzS,KAAK0S,iBAAcjR,EACfoL,EAAY6F,YAAa,CAC7B1S,KAAK0S,YAAc,GACnB,IAAS9P,EAAI,EAAGA,EAAIiK,EAAY6F,YAAY7P,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAY6F,YAAY9P,GAC5B,GAAiD,MAA7CiK,EAAY6F,YAAY9P,GAAG,eAE7BwK,GADIA,EAAoBP,EAAY6F,YAAY9P,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0S,YAAY9P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6F,YAAY9P,UAGhF5C,KAAK0S,YAAY9P,GAAK,IAAIzqC,GAAgB00C,EAAY6F,YAAY9P,SAGtE5C,KAAK0S,YAAY9P,QAAKnB,GAMtB,GADAzB,KAAK2S,2BAAwBlR,EACzBoL,EAAY8F,sBAAuB,CACvC3S,KAAK2S,sBAAwB,GAC7B,IAAS/P,EAAI,EAAGA,EAAIiK,EAAY8F,sBAAsB9P,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAY8F,sBAAsB/P,GACtC,GAA2D,MAAvDiK,EAAY8F,sBAAsB/P,GAAG,eAEvCwK,GADIA,EAAoBP,EAAY8F,sBAAsB/P,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2S,sBAAsB/P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8F,sBAAsB/P,UAGpG5C,KAAK2S,sBAAsB/P,GAAK,IAAIzqC,GAAgB00C,EAAY8F,sBAAsB/P,SAG1F5C,KAAK2S,sBAAsB/P,QAAKnB,GAyFhC,GApFIzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAK8S,iBACgC,MAAhCjG,EAAYiG,iBAA4B5F,WAAWL,EAAYiG,uBAAoBrR,EAExFzB,KAAK+S,kBACiC,MAAjClG,EAAYkG,kBAA6B7F,WAAWL,EAAYkG,wBAAqBtR,EAE1FzB,KAAKgT,yBACwC,MAAxCnG,EAAYmG,yBAAoC9F,WAAWL,EAAYmG,+BAA4BvR,EAExGzB,KAAKiT,8BAC6C,MAA7CpG,EAAYoG,8BAAyC/F,WAAWL,EAAYoG,oCAAiCxR,EAElHzB,KAAKsc,cAC6B,MAA7BzP,EAAYyP,cAAyBpP,WAAWL,EAAYyP,oBAAiB7a,EAElFzB,KAAKkT,0BACyC,MAAzCrG,EAAYqG,0BAAqChG,WAAWL,EAAYqG,gCAA6BzR,EAE1GzB,KAAKmT,8BAC6C,MAA7CtG,EAAYsG,8BAAyCjG,WAAWL,EAAYsG,oCAAiC1R,EAElHzB,KAAKgQ,qBACDnD,EAAYmD,qBAEhBhQ,KAAKuc,wBACD1P,EAAY0P,wBAEhBvc,KAAKwc,mBACkC,MAAlC3P,EAAY2P,mBAA8BtP,WAAWL,EAAY2P,yBAAsB/a,EAE5FzB,KAAKyc,mBACA5P,EAAY4P,8BAA8BxV,KAAQ4F,EAAY4P,mBAC1B,MAAlC5P,EAAY4P,oBAA8BnO,EAAAA,EAAAA,IAAiCzB,EAAY4P,mBAAoB,sBAAsB,QAAShb,EAEjJzB,KAAK0c,gBAC+B,MAA/B7P,EAAY6P,gBAA2BxP,WAAWL,EAAY6P,sBAAmBjb,EAEtFzB,KAAK2c,mBACA9P,EAAY8P,8BAA8B1V,KAAQ4F,EAAY8P,mBAC1B,MAAlC9P,EAAY8P,oBAA8BrO,EAAAA,EAAAA,IAAiCzB,EAAY8P,mBAAoB,sBAAsB,QAASlb,EAEjJzB,KAAK4c,uBACD/P,EAAY+P,uBAEhB5c,KAAK6c,oBACmC,MAAnChQ,EAAYgQ,oBAA+B3P,WAAWL,EAAYgQ,0BAAuBpb,EAE9FzB,KAAK8c,iBACDjQ,EAAYiQ,iBAEhB9c,KAAKwT,qBACD3G,EAAY2G,qBAEhBxT,KAAK+c,2CACDlQ,EAAYkQ,2CAEhB/c,KAAKgd,iCACDnQ,EAAYmQ,iCAEhBhd,KAAK2T,2BACD9G,EAAY8G,2BAEhB3T,KAAK6T,8BACDhH,EAAYgH,8BAEhB7T,KAAK+T,qBACoC,MAApClH,EAAYkH,qBAAgC7G,WAAWL,EAAYkH,2BAAwBtS,EAEhGzB,KAAKgU,kBACiC,MAAjCnH,EAAYmH,kBAA6B9G,WAAWL,EAAYmH,wBAAqBvS,EAE1FzB,KAAKiU,qCACDpH,EAAYoH,qCAEhBjU,KAAKid,aACDpQ,EAAYoQ,aAEpBjd,KAAK8T,wBAAqBrS,EACtBoL,EAAYiH,mBAAoB,CACpC9T,KAAK8T,mBAAqB,GAC1B,IAASlR,EAAI,EAAGA,EAAIiK,EAAYiH,mBAAmBjR,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYiH,mBAAmBlR,GACnC,GAAwD,MAApDiK,EAAYiH,mBAAmBlR,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYiH,mBAAmBlR,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8T,mBAAmBlR,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiH,mBAAmBlR,UAG9F5C,KAAK8T,mBAAmBlR,GAAK,IAAI7K,GAAuB8U,EAAYiH,mBAAmBlR,SAG3F5C,KAAK8T,mBAAmBlR,QAAKnB,GAY7B,GAPIzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKmd,uBACsC,MAAtCtQ,EAAYsQ,uBAAkC1W,SAASoG,EAAYsQ,uBAAwB,SAAM1b,EAE1GzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsBj1C,EAK/B,MAAMylD,EA0Ebxd,YAAYiN,GAkKV,GAjKFA,EAAcA,GAAe,GACvB7M,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKqd,oBACmC,MAAnCxQ,EAAYwQ,oBAA+BnQ,WAAWL,EAAYwQ,0BAAuB5b,EAE9FzB,KAAKsd,yBACwC,MAAxCzQ,EAAYyQ,yBAAoCpQ,WAAWL,EAAYyQ,+BAA4B7b,EAExGzB,KAAKud,uBACsC,MAAtC1Q,EAAY0Q,uBAAkCrQ,WAAWL,EAAY0Q,6BAA0B9b,EAEpGzB,KAAKwd,cAC6B,MAA7B3Q,EAAY2Q,cAAyBtQ,WAAWL,EAAY2Q,oBAAiB/b,EAElFzB,KAAKyd,cAC6B,MAA7B5Q,EAAY4Q,cAAyBvQ,WAAWL,EAAY4Q,oBAAiBhc,EAElFzB,KAAK0d,wBACuC,MAAvC7Q,EAAY6Q,wBAAmCxQ,WAAWL,EAAY6Q,8BAA2Bjc,EAEtGzB,KAAK2d,yBACwC,MAAxC9Q,EAAY8Q,yBAAoCzQ,WAAWL,EAAY8Q,+BAA4Blc,EAExGzB,KAAK4d,eAC8B,MAA9B/Q,EAAY+Q,eAA0B1Q,WAAWL,EAAY+Q,qBAAkBnc,EAEpFzB,KAAK6d,cAC6B,MAA7BhR,EAAYgR,cAAyB3Q,WAAWL,EAAYgR,oBAAiBpc,EAElFzB,KAAK8d,YAC2B,MAA3BjR,EAAYiR,YAAuB5Q,WAAWL,EAAYiR,kBAAerc,EAE9EzB,KAAK+d,mBACkC,MAAlClR,EAAYkR,mBAA8B7Q,WAAWL,EAAYkR,yBAAsBtc,EAE5FzB,KAAKge,oBACmC,MAAnCnR,EAAYmR,oBAA+B9Q,WAAWL,EAAYmR,0BAAuBvc,EAE9FzB,KAAKie,WACDpR,EAAYoR,WAEhBje,KAAKke,cAC6B,MAA7BrR,EAAYqR,cAAyBzX,SAASoG,EAAYqR,cAAe,SAAMzc,EAEpFzB,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKme,eACDtR,EAAYsR,eAEhBne,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKoe,cACAvR,EAAYuR,yBAAyBnX,KAAQ4F,EAAYuR,cAC1B,MAA7BvR,EAAYuR,eAAyB9P,EAAAA,EAAAA,IAAiCzB,EAAYuR,cAAe,sBAAsB,QAAS3c,EAEvIzB,KAAKqe,mBACDxR,EAAYwR,mBAEhBre,KAAKse,gBAC+B,MAA/BzR,EAAYyR,gBAA2B7X,SAASoG,EAAYyR,gBAAiB,SAAM7c,EAExFzB,KAAKue,kBACD1R,EAAY0R,kBAEhBve,KAAKwe,WAC0B,MAA1B3R,EAAY2R,WAAsBtR,WAAWL,EAAY2R,iBAAc/c,EAE5EzB,KAAKye,eACA5R,EAAY4R,0BAA0BxX,KAAQ4F,EAAY4R,eAC1B,MAA9B5R,EAAY4R,gBAA0BnQ,EAAAA,EAAAA,IAAiCzB,EAAY4R,eAAgB,sBAAsB,QAAShd,EAEzIzB,KAAK0e,aAC4B,MAA5B7R,EAAY6R,aAAwBxR,WAAWL,EAAY6R,mBAAgBjd,EAEhFzB,KAAK2e,mBACkC,MAAlC9R,EAAY8R,mBAA8BzR,WAAWL,EAAY8R,yBAAsBld,EAE5FzB,KAAK4e,SACwB,MAAxB/R,EAAY+R,SAAoB1R,WAAWL,EAAY+R,eAAYnd,EAExEzB,KAAK6e,YAC2B,MAA3BhS,EAAYgS,YAAuB3R,WAAWL,EAAYgS,kBAAepd,EAE9EzB,KAAK8e,cAC6B,MAA7BjS,EAAYiS,cAAyB5R,WAAWL,EAAYiS,oBAAiBrd,EAElFzB,KAAK+e,mBACkC,MAAlClS,EAAYkS,mBAA8B7R,WAAWL,EAAYkS,yBAAsBtd,EAE5FzB,KAAKgf,cACDnS,EAAYmS,cAEhBhf,KAAKif,qBACDpS,EAAYoS,qBAEhBjf,KAAKkf,uBACDrS,EAAYqS,uBAEhBlf,KAAKmf,qBACDtS,EAAYsS,qBAEhBnf,KAAKof,sBACDvS,EAAYuS,sBAEhBpf,KAAKqf,0BACDxS,EAAYwS,0BAEhBrf,KAAKsf,iBACDzS,EAAYyS,iBAEhBtf,KAAKuf,cACD1S,EAAY0S,cAEhBvf,KAAKwf,aACD3S,EAAY2S,aAEhBxf,KAAKyf,aAC4B,MAA5B5S,EAAY4S,aAAwBvS,WAAWL,EAAY4S,mBAAgBhe,EAEhFzB,KAAK0f,gBAC+B,MAA/B7S,EAAY6S,gBAA2BxS,WAAWL,EAAY6S,sBAAmBje,EAEtFzB,KAAK2f,mBACD9S,EAAY8S,mBAEhB3f,KAAK4f,mBACkC,MAAlC/S,EAAY+S,mBAA8B1S,WAAWL,EAAY+S,yBAAsBne,EAE5FzB,KAAK6f,mBACkC,MAAlChT,EAAYgT,mBAA8B3S,WAAWL,EAAYgT,yBAAsBpe,EAE5FzB,KAAK8f,eAC8B,MAA9BjT,EAAYiT,eAA0B5S,WAAWL,EAAYiT,qBAAkBre,EAEpFzB,KAAK+f,uBACsC,MAAtClT,EAAYkT,uBAAkC7S,WAAWL,EAAYkT,6BAA0Bte,EAEpGzB,KAAKggB,uBACsC,MAAtCnT,EAAYmT,uBAAkC9S,WAAWL,EAAYmT,6BAA0Bve,EAEpGzB,KAAKigB,gBAC+B,MAA/BpT,EAAYoT,gBAA2B/S,WAAWL,EAAYoT,sBAAmBxe,EAEtFzB,KAAKkgB,kBACiC,MAAjCrT,EAAYqT,kBAA6BhT,WAAWL,EAAYqT,wBAAqBze,EAE9FzB,KAAKoc,cAAW3a,EACZoL,EAAYuP,SAAU,CAC1Bpc,KAAKoc,SAAW,GAChB,IAAK,IAAIxZ,EAAI,EAAGA,EAAIiK,EAAYuP,SAASvZ,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYuP,SAASxZ,GACzB,GAA8C,MAA1CiK,EAAYuP,SAASxZ,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYuP,SAASxZ,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKoc,SAASxZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuP,SAASxZ,UAG1E5C,KAAKoc,SAASxZ,GAAK,IAAIud,GAAkBtT,EAAYuP,SAASxZ,SAGlE5C,KAAKoc,SAASxZ,QAAKnB,GAMnB,GADAzB,KAAK0S,iBAAcjR,EACfoL,EAAY6F,YAAa,CAC7B1S,KAAK0S,YAAc,GACnB,IAAS9P,EAAI,EAAGA,EAAIiK,EAAY6F,YAAY7P,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAY6F,YAAY9P,GAC5B,GAAiD,MAA7CiK,EAAY6F,YAAY9P,GAAG,eAE7BwK,GADIA,EAAoBP,EAAY6F,YAAY9P,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0S,YAAY9P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6F,YAAY9P,UAGhF5C,KAAK0S,YAAY9P,GAAK,IAAIwd,GAAqBvT,EAAY6F,YAAY9P,SAG3E5C,KAAK0S,YAAY9P,QAAKnB,GAMtB,GADAzB,KAAKqgB,kBAAe5e,EAChBoL,EAAYwT,aAAc,CAC9BrgB,KAAKqgB,aAAe,GACpB,IAASzd,EAAI,EAAGA,EAAIiK,EAAYwT,aAAaxd,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYwT,aAAazd,GAC7B,GAAkD,MAA9CiK,EAAYwT,aAAazd,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYwT,aAAazd,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqgB,aAAazd,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwT,aAAazd,UAGlF5C,KAAKqgB,aAAazd,GAAK,IAAI0d,GAAsBzT,EAAYwT,aAAazd,SAG9E5C,KAAKqgB,aAAazd,QAAKnB,GAiCvB,GA5BIzB,KAAKugB,SACD1T,EAAY0T,SAEhBvgB,KAAKwgB,2BAC0C,MAA1C3T,EAAY2T,2BAAsCtT,WAAWL,EAAY2T,iCAA8B/e,EAE5GzB,KAAKygB,eAC8B,MAA9B5T,EAAY4T,eAA0BvT,WAAWL,EAAY4T,qBAAkBhf,EAEpFzB,KAAK0gB,qBACoC,MAApC7T,EAAY6T,qBAAgCxT,WAAWL,EAAY6T,2BAAwBjf,EAEhGzB,KAAK2gB,iBACgC,MAAhC9T,EAAY8T,iBAA4BzT,WAAWL,EAAY8T,uBAAoBlf,EAExFzB,KAAK4gB,gBAC+B,MAA/B/T,EAAY+T,gBAA2B1T,WAAWL,EAAY+T,sBAAmBnf,EAEtFzB,KAAK6gB,kBACiC,MAAjChU,EAAYgU,kBAA6B3T,WAAWL,EAAYgU,wBAAqBpf,EAE1FzB,KAAK8gB,8BACDjU,EAAYiU,8BAEhB9gB,KAAK+gB,0BACyC,MAAzClU,EAAYkU,0BAAqC7T,WAAWL,EAAYkU,gCAA6Btf,EAE9GzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,WAAiBwQ,EAK1B,MAAM4D,EAiBbphB,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKihB,UACDpU,EAAYoU,UAEhBjhB,KAAKr8B,SACDkpC,EAAYlpC,SAEhBq8B,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKohB,gCAA6B3f,EAC9BoL,EAAYuU,2BAA4B,CAC5CphB,KAAKohB,2BAA6B,GAClC,IAAK,IAAIxe,EAAI,EAAGA,EAAIiK,EAAYuU,2BAA2Bve,OAAQD,IAAK,CACxE,GAAiD,MAA7CiK,EAAYuU,2BAA2Bxe,GAC3C,GAAgE,MAA5DiK,EAAYuU,2BAA2Bxe,GAAG,eAE5CwK,GADIA,EAAoBP,EAAYuU,2BAA2Bxe,GAAG,gBAC5CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKohB,2BAA2Bxe,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuU,2BAA2Bxe,UAG9G5C,KAAKohB,2BAA2Bxe,GAAK,IAAIye,GAAkCxU,EAAYuU,2BAA2Bxe,SAGtH5C,KAAKohB,2BAA2Bxe,QAAKnB,GASrC,GAJIzB,KAAKshB,OACDzU,EAAYyU,OAEpBthB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6BoU,EAKtC,MAAMh4C,EAiCb42B,YAAYiN,GAmCV,GAlCFA,EAAcA,GAAe,GACvB7M,KAAKj3B,cACD8jC,EAAY9jC,cAEhBi3B,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAKuhB,sBACD1U,EAAY0U,sBAEhBvhB,KAAKuW,SACD1J,EAAY0J,SAEhBvW,KAAKwhB,uBACD3U,EAAY2U,uBAEhBxhB,KAAKyhB,oBACD5U,EAAY4U,oBAEhBzhB,KAAK0hB,6BACD7U,EAAY6U,6BAEhB1hB,KAAK2hB,uBACD9U,EAAY8U,uBAEhB3hB,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAK6hB,aACDhV,EAAYgV,aAEc,MAA9BhV,EAAYiV,eACZ9hB,KAAK8hB,oBAAiBrgB,OACnB,GAAiD,MAA7CoL,EAAYiV,eAAe,eAClC9hB,KAAK8hB,eAAiB,IAAI/P,EAAalF,EAAYiV,oBAChD,CAEH1U,GADIA,EAAoBP,EAAYiV,eAAe,gBAC7BzU,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8hB,eAAiB,IAAIlV,EAAiBQ,GAAWP,EAAYiV,iBAoB1E,GAfI9hB,KAAK+hB,mBACDlV,EAAYkV,mBAEhB/hB,KAAKgiB,YACDnV,EAAYmV,YAEhBhiB,KAAKiiB,SACwB,MAAxBpV,EAAYoV,SAAoB/U,WAAWL,EAAYoV,eAAYxgB,EAExEzB,KAAKkiB,UACyB,MAAzBrV,EAAYqV,UAAqBhV,WAAWL,EAAYqV,gBAAazgB,EAE1EzB,KAAKmiB,sBACDtV,EAAYsV,sBAEwB,MAAxCtV,EAAYuV,yBACZpiB,KAAKoiB,8BAA2B3gB,OAC7B,GAA2D,MAAvDoL,EAAYuV,yBAAyB,eAC5CpiB,KAAKoiB,yBAA2B,IAAIrQ,EAAalF,EAAYuV,8BAC1D,CAEHhV,GADIA,EAAoBP,EAAYuV,yBAAyB,gBACvC/U,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKoiB,yBAA2B,IAAIxV,EAAiBQ,GAAWP,EAAYuV,2BAMpF,GADApiB,KAAKqiB,sBAAmB5gB,EACpBoL,EAAYwV,iBAAkB,CAClCriB,KAAKqiB,iBAAmB,GACxB,IAAK,IAAIzf,EAAI,EAAGA,EAAIiK,EAAYwV,iBAAiBxf,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYwV,iBAAiBzf,GACjC,GAAsD,MAAlDiK,EAAYwV,iBAAiBzf,GAAG,eAElCwK,GADIA,EAAoBP,EAAYwV,iBAAiBzf,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqiB,iBAAiBzf,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwV,iBAAiBzf,UAG1F5C,KAAKqiB,iBAAiBzf,GAAK,IAAI0f,GAAqBzV,EAAYwV,iBAAiBzf,SAGrF5C,KAAKqiB,iBAAiBzf,QAAKnB,GAkB3B,GAbIzB,KAAKuiB,2BACD1V,EAAY0V,2BAEhBviB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwiB,uBACD3V,EAAY2V,uBAEhBxiB,KAAKyiB,oBACmC,MAAnC5V,EAAY4V,oBAA+Bhc,SAASoG,EAAY4V,oBAAqB,SAAMhhB,EAEpGzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,aAAmB5jC,EAK5B,MAAMsC,EA0Cbs0B,YAAYiN,GA0BV,GAzBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK0iB,YACD7V,EAAY6V,YAEhB1iB,KAAK2iB,cACD9V,EAAY8V,cAEhB3iB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK4iB,gBACD/V,EAAY+V,gBAEhB5iB,KAAK6iB,MACDhW,EAAYgW,MAEhB7iB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+iB,kBACDlW,EAAYkW,kBAEK,MAArBlW,EAAYmW,MACZhjB,KAAKgjB,WAAQvhB,OACV,GAAwC,MAApCoL,EAAYmW,MAAM,eACzBhjB,KAAKgjB,MAAQ,IAAIC,GAAkBpW,EAAYmW,WAC5C,CAEH5V,GADIA,EAAoBP,EAAYmW,MAAM,gBACpB3V,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgjB,MAAQ,IAAIpW,EAAiBQ,GAAWP,EAAYmW,QAoBjE,GAfIhjB,KAAKkjB,qBACDrW,EAAYqW,qBAEhBljB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKmjB,OACDtW,EAAYsW,OAEhBnjB,KAAK8M,aACDD,EAAYC,aAEhB9M,KAAKojB,SACDvW,EAAYuW,SAEyB,MAAzCvW,EAAYwW,0BACZrjB,KAAKqjB,+BAA4B5hB,OAC9B,GAA4D,MAAxDoL,EAAYwW,0BAA0B,eAC7CrjB,KAAKqjB,0BAA4B,IAAIC,GAAsCzW,EAAYwW,+BACpF,CAEHjW,GADIA,EAAoBP,EAAYwW,0BAA0B,gBACxChW,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqjB,0BAA4B,IAAIzW,EAAiBQ,GAAWP,EAAYwW,4BAKrF,GAAyB,MAArBxW,EAAY0W,MACZvjB,KAAKujB,WAAQ9hB,OACV,GAAwC,MAApCoL,EAAY0W,MAAM,eACzBvjB,KAAKujB,MAAQ,IAAIC,GAAwB3W,EAAY0W,WAClD,CAEHnW,GADIA,EAAoBP,EAAY0W,MAAM,gBACpBlW,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKujB,MAAQ,IAAI3W,EAAiBQ,GAAWP,EAAY0W,QAMjE,GADAvjB,KAAKyjB,0BAAuBhiB,EACxBoL,EAAY4W,qBAAsB,CACtCzjB,KAAKyjB,qBAAuB,GAC5B,IAAK,IAAI7gB,EAAI,EAAGA,EAAIiK,EAAY4W,qBAAqB5gB,OAAQD,IAClB,MAAvCiK,EAAY4W,qBAAqB7gB,GACjC5C,KAAKyjB,qBAAqB7gB,GACtBiK,EAAY4W,qBAAqB7gB,GAEzC5C,KAAKyjB,qBAAqB7gB,QAAKnB,EAM/B,GADAzB,KAAK0jB,oBAAiBjiB,EAClBoL,EAAY6W,eAAgB,CAChC1jB,KAAK0jB,eAAiB,GACtB,IAAS9gB,EAAI,EAAGA,EAAIiK,EAAY6W,eAAe7gB,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAY6W,eAAe9gB,GAC/B,GAAoD,MAAhDiK,EAAY6W,eAAe9gB,GAAG,eAEhCwK,GADIA,EAAoBP,EAAY6W,eAAe9gB,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0jB,eAAe9gB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6W,eAAe9gB,UAGtF5C,KAAK0jB,eAAe9gB,GAAK,IAAI+gB,GAAmB9W,EAAY6W,eAAe9gB,SAG/E5C,KAAK0jB,eAAe9gB,QAAKnB,GAczB,GATIzB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAErD,MAA7BoL,EAAYkX,cACZ/jB,KAAK+jB,mBAAgBtiB,OAClB,GAAgD,MAA5CoL,EAAYkX,cAAc,eACjC/jB,KAAK+jB,cAAgB,IAAIC,GAAsBnX,EAAYkX,mBACxD,CAEH3W,GADIA,EAAoBP,EAAYkX,cAAc,gBAC5B1W,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+jB,cAAgB,IAAInX,EAAiBQ,GAAWP,EAAYkX,gBASzE,GAJI/jB,KAAKikB,kBACiC,MAAjCpX,EAAYoX,kBAA6Bxd,SAASoG,EAAYoX,kBAAmB,SAAMxiB,EAEhGzB,KAAKkkB,iBAAcziB,EACfoL,EAAYqX,YAAa,CAC7BlkB,KAAKkkB,YAAc,GACnB,IAASthB,EAAI,EAAGA,EAAIiK,EAAYqX,YAAYrhB,OAAQD,IAClB,MAA9BiK,EAAYqX,YAAYthB,GACxB5C,KAAKkkB,YAAYthB,GACb6D,SAASoG,EAAYqX,YAAYthB,GAAI,IAE7C5C,KAAKkkB,YAAYthB,QAAKnB,EAMtB,GADAzB,KAAKmkB,8BAA2B1iB,EAC5BoL,EAAYsX,yBAA0B,CAC1CnkB,KAAKmkB,yBAA2B,GAChC,IAASvhB,EAAI,EAAGA,EAAIiK,EAAYsX,yBAAyBthB,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAYsX,yBAAyBvhB,GACzC,GAA8D,MAA1DiK,EAAYsX,yBAAyBvhB,GAAG,eAE1CwK,GADIA,EAAoBP,EAAYsX,yBAAyBvhB,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmkB,yBAAyBvhB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsX,yBAAyBvhB,UAG1G5C,KAAKmkB,yBAAyBvhB,GAAK,IAAIwhB,GAA4BvX,EAAYsX,yBAAyBvhB,SAG5G5C,KAAKmkB,yBAAyBvhB,QAAKnB,GAMnC,GADAzB,KAAKqkB,qBAAkB5iB,EACnBoL,EAAYwX,gBAAiB,CACjCrkB,KAAKqkB,gBAAkB,GACvB,IAASzhB,EAAI,EAAGA,EAAIiK,EAAYwX,gBAAgBxhB,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYwX,gBAAgBzhB,GAChC,GAAqD,MAAjDiK,EAAYwX,gBAAgBzhB,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYwX,gBAAgBzhB,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqkB,gBAAgBzhB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwX,gBAAgBzhB,UAGxF5C,KAAKqkB,gBAAgBzhB,GAAK,IAAI0hB,GAAoBzX,EAAYwX,gBAAgBzhB,SAGlF5C,KAAKqkB,gBAAgBzhB,QAAKnB,GAM1B,GADAzB,KAAKukB,2BAAwB9iB,EACzBoL,EAAY0X,sBAAuB,CACvCvkB,KAAKukB,sBAAwB,GAC7B,IAAS3hB,EAAI,EAAGA,EAAIiK,EAAY0X,sBAAsB1hB,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAY0X,sBAAsB3hB,GACtC,GAA2D,MAAvDiK,EAAY0X,sBAAsB3hB,GAAG,eAEvCwK,GADIA,EAAoBP,EAAY0X,sBAAsB3hB,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKukB,sBAAsB3hB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0X,sBAAsB3hB,UAGpG5C,KAAKukB,sBAAsB3hB,GAAK,IAAI0hB,GAAoBzX,EAAY0X,sBAAsB3hB,SAG9F5C,KAAKukB,sBAAsB3hB,QAAKnB,GAMhC,GADAzB,KAAKwkB,mBAAgB/iB,EACjBoL,EAAY2X,cAAe,CAC/BxkB,KAAKwkB,cAAgB,GACrB,IAAS5hB,EAAI,EAAGA,EAAIiK,EAAY2X,cAAc3hB,OAAQD,IAClB,MAAhCiK,EAAY2X,cAAc5hB,GAC1B5C,KAAKwkB,cAAc5hB,GACfiK,EAAY2X,cAAc5hB,GAElC5C,KAAKwkB,cAAc5hB,QAAKnB,EAMxB,GADAzB,KAAKykB,uBAAoBhjB,EACrBoL,EAAY4X,kBAAmB,CACnCzkB,KAAKykB,kBAAoB,GACzB,IAAS7hB,EAAI,EAAGA,EAAIiK,EAAY4X,kBAAkB5hB,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY4X,kBAAkB7hB,GAClC,GAAuD,MAAnDiK,EAAY4X,kBAAkB7hB,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY4X,kBAAkB7hB,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKykB,kBAAkB7hB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4X,kBAAkB7hB,UAG5F5C,KAAKykB,kBAAkB7hB,GAAK,IAAI8hB,GAAgC7X,EAAY4X,kBAAkB7hB,SAGlG5C,KAAKykB,kBAAkB7hB,QAAKnB,GAK5B,GAA0C,MAAtCoL,EAAY8X,uBACZ3kB,KAAK2kB,4BAAyBljB,OAC3B,GAAyD,MAArDoL,EAAY8X,uBAAuB,eAC1C3kB,KAAK2kB,uBAAyB,IAAIC,GAAmC/X,EAAY8X,4BAC9E,CAEHvX,GADIA,EAAoBP,EAAY8X,uBAAuB,gBACrCtX,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2kB,uBAAyB,IAAI/X,EAAiBQ,GAAWP,EAAY8X,yBAMlF,GADA3kB,KAAK6kB,gBAAapjB,EACdoL,EAAYgY,WAAY,CAC5B7kB,KAAK6kB,WAAa,GAClB,IAASjiB,EAAI,EAAGA,EAAIiK,EAAYgY,WAAWhiB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYgY,WAAWjiB,GAC3B,GAAgD,MAA5CiK,EAAYgY,WAAWjiB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYgY,WAAWjiB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6kB,WAAWjiB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgY,WAAWjiB,UAG9E5C,KAAK6kB,WAAWjiB,GAAK,IAAIkiB,GAAkBjY,EAAYgY,WAAWjiB,SAGtE5C,KAAK6kB,WAAWjiB,QAAKnB,GASrB,GAJIzB,KAAK+kB,WACDlY,EAAYkY,WAEpB/kB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,aAAmBthC,EAK5B,MAAM1H,EAuBbg8B,YAAYiN,GAsCV,GArCFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKqV,SACDxI,EAAYwI,SAEhBrV,KAAKglB,kBACDnY,EAAYmY,kBAEhBhlB,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE3HzB,KAAKmlB,UACAtY,EAAYsY,qBAAqBle,KAAQ4F,EAAYsY,UAC1B,MAAzBtY,EAAYsY,WAAqB7W,EAAAA,EAAAA,IAAiCzB,EAAYsY,UAAW,sBAAsB,QAAS1jB,EAE/HzB,KAAKolB,WACAvY,EAAYuY,sBAAsBne,KAAQ4F,EAAYuY,WAC1B,MAA1BvY,EAAYuY,YAAsB9W,EAAAA,EAAAA,IAAiCzB,EAAYuY,WAAY,sBAAsB,QAAS3jB,EAEjIzB,KAAKqlB,YACAxY,EAAYwY,uBAAuBpe,KAAQ4F,EAAYwY,YAC1B,MAA3BxY,EAAYwY,aAAuB/W,EAAAA,EAAAA,IAAiCzB,EAAYwY,YAAa,sBAAsB,QAAS5jB,EAEvIzB,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAAK,IAAIvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI5tB,GAAmB63B,EAAYM,OAAOvK,SAG/D5C,KAAKmN,OAAOvK,QAAKnB,GAYjB,GAPIzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKuY,aACD1L,EAAY0L,aAEpBvY,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0BhpC,EAKnC,MAAMqB,EAwBb26B,YAAYiN,GAsCV,GArCFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACkB,MAAlB81C,EAAY91C,GAAc0vC,SAASoG,EAAY91C,GAAI,SAAM0qC,EAE9DzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAKwQ,WACD3D,EAAY2D,WAEhBxQ,KAAKyQ,YACD5D,EAAY4D,YAEhBzQ,KAAKslB,UACDzY,EAAYyY,UAEhBtlB,KAAKulB,gBACD1Y,EAAY0Y,gBAEhBvlB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKwlB,YACA3Y,EAAY2Y,uBAAuBve,KAAQ4F,EAAY2Y,YAC1B,MAA3B3Y,EAAY2Y,aAAuBlX,EAAAA,EAAAA,IAAiCzB,EAAY2Y,YAAa,sBAAsB,QAAS/jB,EAEnIzB,KAAKylB,sBACD5Y,EAAY4Y,sBAEpBzlB,KAAK0lB,uBAAoBjkB,EACrBoL,EAAY6Y,kBAAmB,CACnC1lB,KAAK0lB,kBAAoB,GACzB,IAAK,IAAI9iB,EAAI,EAAGA,EAAIiK,EAAY6Y,kBAAkB7iB,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY6Y,kBAAkB9iB,GAClC,GAAuD,MAAnDiK,EAAY6Y,kBAAkB9iB,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY6Y,kBAAkB9iB,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0lB,kBAAkB9iB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6Y,kBAAkB9iB,UAG5F5C,KAAK0lB,kBAAkB9iB,GAAK,IAAI+iB,GAAsB9Y,EAAY6Y,kBAAkB9iB,SAGxF5C,KAAK0lB,kBAAkB9iB,QAAKnB,GAM5B,GADAzB,KAAK4lB,8BAA2BnkB,EAC5BoL,EAAY+Y,yBAA0B,CAC1C5lB,KAAK4lB,yBAA2B,GAChC,IAAShjB,EAAI,EAAGA,EAAIiK,EAAY+Y,yBAAyB/iB,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAY+Y,yBAAyBhjB,GACzC,GAA8D,MAA1DiK,EAAY+Y,yBAAyBhjB,GAAG,eAE1CwK,GADIA,EAAoBP,EAAY+Y,yBAAyBhjB,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4lB,yBAAyBhjB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+Y,yBAAyBhjB,UAG1G5C,KAAK4lB,yBAAyBhjB,GAAK,IAAIijB,GAA6BhZ,EAAY+Y,yBAAyBhjB,SAG7G5C,KAAK4lB,yBAAyBhjB,QAAKnB,GAMnC,GADAzB,KAAK8lB,6BAA0BrkB,EAC3BoL,EAAYiZ,wBAAyB,CACzC9lB,KAAK8lB,wBAA0B,GAC/B,IAASljB,EAAI,EAAGA,EAAIiK,EAAYiZ,wBAAwBjjB,OAAQD,IAAK,CACrE,GAA8C,MAA1CiK,EAAYiZ,wBAAwBljB,GACxC,GAA6D,MAAzDiK,EAAYiZ,wBAAwBljB,GAAG,eAEzCwK,GADIA,EAAoBP,EAAYiZ,wBAAwBljB,GAAG,gBACzCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8lB,wBAAwBljB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiZ,wBAAwBljB,UAGxG5C,KAAK8lB,wBAAwBljB,GAAK,IAAImjB,GAA4BlZ,EAAYiZ,wBAAwBljB,SAG1G5C,KAAK8lB,wBAAwBljB,QAAKnB,GAMlC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwB3nC,EAKjC,MAAMmF,EAmBbw1B,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKgmB,YACAnZ,EAAYmZ,uBAAuB/e,KAAQ4F,EAAYmZ,YAC1B,MAA3BnZ,EAAYmZ,aAAuB1X,EAAAA,EAAAA,IAAiCzB,EAAYmZ,YAAa,sBAAsB,QAASvkB,EAEnIzB,KAAKimB,gBACApZ,EAAYoZ,2BAA2Bhf,KAAQ4F,EAAYoZ,gBAC1B,MAA/BpZ,EAAYoZ,iBAA2B3X,EAAAA,EAAAA,IAAiCzB,EAAYoZ,gBAAiB,sBAAsB,QAASxkB,EAE3IzB,KAAKkmB,qBACDrZ,EAAYqZ,qBAEhBlmB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKmmB,sBAAmB1kB,EACpBoL,EAAYsZ,iBAAkB,CAClCnmB,KAAKmmB,iBAAmB,GACxB,IAAK,IAAIvjB,EAAI,EAAGA,EAAIiK,EAAYsZ,iBAAiBtjB,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYsZ,iBAAiBvjB,GACjC,GAAsD,MAAlDiK,EAAYsZ,iBAAiBvjB,GAAG,eAElCwK,GADIA,EAAoBP,EAAYsZ,iBAAiBvjB,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmmB,iBAAiBvjB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsZ,iBAAiBvjB,UAG1F5C,KAAKmmB,iBAAiBvjB,GAAK,IAAIp4B,GAAqBqiC,EAAYsZ,iBAAiBvjB,SAGrF5C,KAAKmmB,iBAAiBvjB,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iBAAuBxiC,EAKhC,MAAM6M,EAab2oB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKomB,wBACDvZ,EAAYuZ,wBAEhBpmB,KAAKqmB,MACDxZ,EAAYwZ,MAEpBrmB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0B31B,EAKnC,MAAMqvC,EA4Bb1mB,YAAYiN,GAwDV,GAvDFA,EAAcA,GAAe,GACvB7M,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKr8B,SACDkpC,EAAYlpC,SAEhBq8B,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKymB,MACqB,MAArB5Z,EAAY4Z,MAAiBvZ,WAAWL,EAAY4Z,YAAShlB,EAElEzB,KAAK0T,WAC0B,MAA1B7G,EAAY6G,WAAsBxG,WAAWL,EAAY6G,iBAAcjS,EAE5EzB,KAAK0mB,eACD7Z,EAAY6Z,eAEhB1mB,KAAK2mB,qBACD9Z,EAAY8Z,qBAEhB3mB,KAAK4mB,mBACD/Z,EAAY+Z,mBAEhB5mB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAK8mB,iBACgC,MAAhCja,EAAYia,iBAA4B5Z,WAAWL,EAAYia,uBAAoBrlB,EAExFzB,KAAK+mB,gBAC+B,MAA/Bla,EAAYka,gBAA2B7Z,WAAWL,EAAYka,sBAAmBtlB,EAEtFzB,KAAKgnB,mBACkC,MAAlCna,EAAYma,mBAA8B9Z,WAAWL,EAAYma,yBAAsBvlB,EAE5FzB,KAAKinB,sBACqC,MAArCpa,EAAYoa,sBAAiC/Z,WAAWL,EAAYoa,4BAAyBxlB,EAElGzB,KAAKknB,yBACwC,MAAxCra,EAAYqa,yBAAoCha,WAAWL,EAAYqa,+BAA4BzlB,EAExGzB,KAAKmnB,SACAta,EAAYsa,oBAAoBlgB,KAAQ4F,EAAYsa,SAC1B,MAAxBta,EAAYsa,UAAoB7Y,EAAAA,EAAAA,IAAiCzB,EAAYsa,SAAU,sBAAsB,QAAS1lB,EAE7HzB,KAAKonB,YACAva,EAAYua,uBAAuBngB,KAAQ4F,EAAYua,YAC1B,MAA3Bva,EAAYua,aAAuB9Y,EAAAA,EAAAA,IAAiCzB,EAAYua,YAAa,sBAAsB,QAAS3lB,EAEnIzB,KAAKqnB,eACDxa,EAAYwa,eAEpBrnB,KAAKsnB,gBAAa7lB,EACdoL,EAAYya,WAAY,CAC5BtnB,KAAKsnB,WAAa,GAClB,IAAK,IAAI1kB,EAAI,EAAGA,EAAIiK,EAAYya,WAAWzkB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYya,WAAW1kB,GAC3B,GAAgD,MAA5CiK,EAAYya,WAAW1kB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYya,WAAW1kB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsnB,WAAW1kB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYya,WAAW1kB,UAG9E5C,KAAKsnB,WAAW1kB,GAAK,IAAI2kB,GAAuB1a,EAAYya,WAAW1kB,SAG3E5C,KAAKsnB,WAAW1kB,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyB0Z,EAKlC,MAAMkB,EAkBb5nB,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKr8B,SACDkpC,EAAYlpC,SAEhBq8B,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKymB,MACqB,MAArB5Z,EAAY4Z,MAAiBvZ,WAAWL,EAAY4Z,YAAShlB,EAElEzB,KAAK0T,WAC0B,MAA1B7G,EAAY6G,WAAsBxG,WAAWL,EAAY6G,iBAAcjS,EAE5EzB,KAAK0mB,eACD7Z,EAAY6Z,eAEhB1mB,KAAKynB,cAC6B,MAA7B5a,EAAY4a,cAAyBva,WAAWL,EAAY4a,oBAAiBhmB,EAEtFzB,KAAKsnB,gBAAa7lB,EACdoL,EAAYya,WAAY,CAC5BtnB,KAAKsnB,WAAa,GAClB,IAAK,IAAI1kB,EAAI,EAAGA,EAAIiK,EAAYya,WAAWzkB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYya,WAAW1kB,GAC3B,GAAgD,MAA5CiK,EAAYya,WAAW1kB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYya,WAAW1kB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsnB,WAAW1kB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYya,WAAW1kB,UAG9E5C,KAAKsnB,WAAW1kB,GAAK,IAAI8kB,GAAuB7a,EAAYya,WAAW1kB,SAG3E5C,KAAKsnB,WAAW1kB,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyB4a,EAKlC,MAAM1qC,EAqBb8iB,YAAYiN,GAkCV,GAjCFA,EAAcA,GAAe,GACvB7M,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKr8B,SACDkpC,EAAYlpC,SAEhBq8B,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKymB,MACqB,MAArB5Z,EAAY4Z,MAAiBvZ,WAAWL,EAAY4Z,YAAShlB,EAElEzB,KAAK0T,WAC0B,MAA1B7G,EAAY6G,WAAsBxG,WAAWL,EAAY6G,iBAAcjS,EAE5EzB,KAAK0mB,eACD7Z,EAAY6Z,eAEhB1mB,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAK2nB,aACA9a,EAAY8a,wBAAwB1gB,KAAQ4F,EAAY8a,aAC1B,MAA5B9a,EAAY8a,cAAwBrZ,EAAAA,EAAAA,IAAiCzB,EAAY8a,aAAc,sBAAsB,QAASlmB,EAErIzB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKynB,cAC6B,MAA7B5a,EAAY4a,cAAyBva,WAAWL,EAAY4a,oBAAiBhmB,EAEtFzB,KAAKsnB,gBAAa7lB,EACdoL,EAAYya,WAAY,CAC5BtnB,KAAKsnB,WAAa,GAClB,IAAK,IAAI1kB,EAAI,EAAGA,EAAIiK,EAAYya,WAAWzkB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYya,WAAW1kB,GAC3B,GAAgD,MAA5CiK,EAAYya,WAAW1kB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYya,WAAW1kB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsnB,WAAW1kB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYya,WAAW1kB,UAG9E5C,KAAKsnB,WAAW1kB,GAAK,IAAIglB,GAAqB/a,EAAYya,WAAW1kB,SAGzE5C,KAAKsnB,WAAW1kB,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iBAAuB9vB,EAKhC,MAAM+qC,EAkBbjoB,YAAYiN,GAuBV,GAtBFA,EAAcA,GAAe,GACvB7M,KAAK8nB,eACDjb,EAAYib,eAEhB9nB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK+nB,aACDlb,EAAYkb,aAEhB/nB,KAAKgoB,uBACDnb,EAAYmb,uBAEhBhoB,KAAKioB,uBACDpb,EAAYob,uBAEhBjoB,KAAKkoB,kBACDrb,EAAYqb,kBAEhBloB,KAAKmoB,qBACDtb,EAAYsb,qBAEO,MAAvBtb,EAAYub,QACZpoB,KAAKooB,aAAU3mB,OACZ,GAA0C,MAAtCoL,EAAYub,QAAQ,eAC3BpoB,KAAKooB,QAAU,IAAIrW,EAAalF,EAAYub,aACzC,CAEHhb,GADIA,EAAoBP,EAAYub,QAAQ,gBACtB/a,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKooB,QAAU,IAAIxb,EAAiBQ,GAAWP,EAAYub,UAMnE,GADApoB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,eAAqBib,EAK9B,MAAM5pC,EAkBb2hB,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAKhiB,YACD6uB,EAAY7uB,YAEhBgiB,KAAKqoB,cACDxb,EAAYwb,cAEO,MAAvBxb,EAAYyb,QACZtoB,KAAKsoB,aAAU7mB,OACZ,GAA0C,MAAtCoL,EAAYyb,QAAQ,eAC3BtoB,KAAKsoB,QAAU,IAAItmC,EAAa6qB,EAAYyb,aACzC,CAEHlb,GADIA,EAAoBP,EAAYyb,QAAQ,gBACtBjb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsoB,QAAU,IAAI1b,EAAiBQ,GAAWP,EAAYyb,UAKnE,GAA2B,MAAvBzb,EAAY0b,QACZvoB,KAAKuoB,aAAU9mB,OACZ,GAA0C,MAAtCoL,EAAY0b,QAAQ,eAC3BvoB,KAAKuoB,QAAU,IAAIn8C,GAAmBygC,EAAY0b,aAC/C,CAEHnb,GADIA,EAAoBP,EAAY0b,QAAQ,gBACtBlb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuoB,QAAU,IAAI3b,EAAiBQ,GAAWP,EAAY0b,UAKnE,GAA+B,MAA3B1b,EAAY2b,YACZxoB,KAAKwoB,iBAAc/mB,OAChB,GAA8C,MAA1CoL,EAAY2b,YAAY,eAC/BxoB,KAAKwoB,YAAc,IAAIx8B,GAAiB6gB,EAAY2b,iBACjD,CAEHpb,GADIA,EAAoBP,EAAY2b,YAAY,gBAC1Bnb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwoB,YAAc,IAAI5b,EAAiBQ,GAAWP,EAAY2b,cAKvE,GAA4B,MAAxB3b,EAAY4b,SACZzoB,KAAKyoB,cAAWhnB,OACb,GAA2C,MAAvCoL,EAAY4b,SAAS,eAC5BzoB,KAAKyoB,SAAW,IAAIt7B,GAAc0f,EAAY4b,cAC3C,CAEHrb,GADIA,EAAoBP,EAAY4b,SAAS,gBACvBpb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyoB,SAAW,IAAI7b,EAAiBQ,GAAWP,EAAY4b,WAMpE,GADAzoB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,GAK9B,GAA4B,MAAxBoL,EAAY6b,SACZ1oB,KAAK0oB,cAAWjnB,OACb,GAA2C,MAAvCoL,EAAY6b,SAAS,eAC5B1oB,KAAK0oB,SAAW,IAAI5iD,EAAc+mC,EAAY6b,cAC3C,CACH,IAAItb,EACJA,GADIA,EAAoBP,EAAY6b,SAAS,gBACvBrb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0oB,SAAW,IAAI9b,EAAiBQ,GAAWP,EAAY6b,aA/FxDzqC,EAAAA,qBAA+B,WAsG7C2uB,EAAgB,gBAAsB3uB,EAK/B,MAAM0qC,EAcb/oB,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEpBipC,KAAK4oB,gCAA6BnnB,EAC9BoL,EAAY+b,2BAA4B,CAC5C5oB,KAAK4oB,2BAA6B,GAClC,IAAK,IAAIhmB,EAAI,EAAGA,EAAIiK,EAAY+b,2BAA2B/lB,OAAQD,IAClB,MAA7CiK,EAAY+b,2BAA2BhmB,GACvC5C,KAAK4oB,2BAA2BhmB,GAC5BiK,EAAY+b,2BAA2BhmB,GAE/C5C,KAAK4oB,2BAA2BhmB,QAAKnB,EAMrC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,GAK9B,GAA8B,MAA1BoL,EAAYgc,WACZ7oB,KAAK6oB,gBAAapnB,OACf,GAA6C,MAAzCoL,EAAYgc,WAAW,eAC9B7oB,KAAK6oB,WAAa,IAAIlxD,EAAgBk1C,EAAYgc,gBAC/C,CACH,IAAIzb,EACJA,GADIA,EAAoBP,EAAYgc,WAAW,gBACzBxb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6oB,WAAa,IAAIjc,EAAiBQ,GAAWP,EAAYgc,eArD1DF,EAAAA,uBAAiC,aA4D/C/b,EAAgB,uCAA6C+b,EAKtD,MAAMG,EAoCblpB,YAAYiN,GAuDV,GAtDFA,EAAcA,GAAe,GACvB7M,KAAK+oB,eACDlc,EAAYkc,eAEhB/oB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKgpB,gBACDnc,EAAYmc,gBAEhBhpB,KAAKonB,YACAva,EAAYua,uBAAuBngB,KAAQ4F,EAAYua,YAC1B,MAA3Bva,EAAYua,aAAuB9Y,EAAAA,EAAAA,IAAiCzB,EAAYua,YAAa,sBAAsB,QAAS3lB,EAEnIzB,KAAKmnB,SACAta,EAAYsa,oBAAoBlgB,KAAQ4F,EAAYsa,SAC1B,MAAxBta,EAAYsa,UAAoB7Y,EAAAA,EAAAA,IAAiCzB,EAAYsa,SAAU,sBAAsB,QAAS1lB,EAE7HzB,KAAKipB,OACDpc,EAAYoc,OAEhBjpB,KAAKkpB,SACDrc,EAAYqc,SAEhBlpB,KAAKmpB,cACDtc,EAAYsc,cAEhBnpB,KAAKopB,gBACDvc,EAAYuc,gBAEhBppB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKqpB,mBACDxc,EAAYwc,mBAEhBrpB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKspB,KACDzc,EAAYyc,KAEhBtpB,KAAKupB,uBACD1c,EAAY0c,uBAEhBvpB,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAKypB,YAC2B,MAA3B5c,EAAY4c,YAAuBhjB,SAASoG,EAAY4c,YAAa,SAAMhoB,EAElD,MAA9BoL,EAAY6c,eACZ1pB,KAAK0pB,oBAAiBjoB,OACnB,GAAiD,MAA7CoL,EAAY6c,eAAe,eAClC1pB,KAAK0pB,eAAiB,IAAIC,GAA4C9c,EAAY6c,oBAC/E,CAEHtc,GADIA,EAAoBP,EAAY6c,eAAe,gBAC7Brc,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0pB,eAAiB,IAAI9c,EAAiBQ,GAAWP,EAAY6c,iBAiC1E,GA5BI1pB,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAK6pB,sBACDhd,EAAYgd,sBAEhB7pB,KAAK8pB,qBACAjd,EAAYid,gCAAgC7iB,KAAQ4F,EAAYid,qBAC1B,MAApCjd,EAAYid,sBAAgCxb,EAAAA,EAAAA,IAAiCzB,EAAYid,qBAAsB,sBAAsB,QAASroB,EAErJzB,KAAK+pB,eACDld,EAAYkd,eAEhB/pB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKgqB,gBACAnd,EAAYmd,2BAA2B/iB,KAAQ4F,EAAYmd,gBAC1B,MAA/Bnd,EAAYmd,iBAA2B1b,EAAAA,EAAAA,IAAiCzB,EAAYmd,gBAAiB,sBAAsB,QAASvoB,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sCAA4Ckc,EAKrD,MAAM3yD,EAWbypC,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK9pC,kBACD22C,EAAY32C,kBAEpB8pC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2Bz2C,EAKpC,MAAMzC,EAoBbksC,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAKxsC,UACDq5C,EAAYr5C,UAEhBwsC,KAAK9pC,kBACD22C,EAAY32C,kBAEhB8pC,KAAK+U,UACDlI,EAAYkI,UAEhB/U,KAAKiV,SACDpI,EAAYoI,SAEhBjV,KAAK0U,MACD7H,EAAY6H,MAEhB1U,KAAKiqB,cAC6B,MAA7Bpd,EAAYod,cAAyB/c,WAAWL,EAAYod,oBAAiBxoB,EAElFzB,KAAKkqB,gBACDrd,EAAYqd,gBAEhBlqB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKmqB,QACDtd,EAAYsd,QAEhBnqB,KAAKn6B,cACDgnC,EAAYhnC,cAEpBm6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+Bl5C,EAKxC,MAAM02D,EAgBbxqB,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK+b,gBACDlP,EAAYkP,gBAEpB/b,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,GAK9B,GAAwB,MAApBoL,EAAYwd,KACZrqB,KAAKqqB,UAAO5oB,OACT,GAAuC,MAAnCoL,EAAYwd,KAAK,eACxBrqB,KAAKqqB,KAAO,IAAIrzD,EAAU61C,EAAYwd,UACnC,CACH,IAAIjd,EACJA,GADIA,EAAoBP,EAAYwd,KAAK,gBACnBhd,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqqB,KAAO,IAAIzd,EAAiBQ,GAAWP,EAAYwd,SAjDpDD,EAAAA,iBAA2B,OAwDzCxd,EAAgB,mBAAyBwd,EAKlC,MAAME,EAab1qB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKwqB,QACD3d,EAAY2d,QAEhBxqB,KAAKyqB,UACD5d,EAAY4d,UAEpBzqB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB0d,EAKlC,MAAMI,EAWb9qB,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2qB,MACD9d,EAAY8d,OAItB/d,EAAgB,2BAAiC8d,EAK1C,MAAME,UACHF,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,6EAIxB4M,EAAgB,gCAAsCge,EAK/C,MAAME,UACHJ,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,4EAIxB4M,EAAgB,+BAAqCke,EAK9C,MAAMC,UACHL,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,iFAIxB4M,EAAgB,oCAA0Cme,EAKnD,MAAMC,UACHN,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,wEAIxB4M,EAAgB,2BAAiCoe,EAK1C,MAAMC,UACHP,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuCqe,EAKhD,MAAMC,UACHR,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,wEAIxB4M,EAAgB,2BAAiCse,EAK1C,MAAMC,UACHT,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,gGAIxB4M,EAAgB,mDAAyDue,EAKlE,MAAMC,UACHV,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuCwe,EAKhD,MAAMC,UACHX,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,6EAIxB4M,EAAgB,gCAAsCye,EAK/C,MAAMC,UACHZ,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,kFAIxB4M,EAAgB,qCAA2C0e,EAKpD,MAAMC,UACHb,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,0EAIxB4M,EAAgB,6BAAmC2e,EAK5C,MAAMC,UACHd,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,oFAIxB4M,EAAgB,uCAA6C4e,EAKtD,MAAMzZ,EA4DbnS,YAAYiN,GAyJV,GAxJFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKyrB,YACD5e,EAAY4e,YAEhBzrB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK0rB,OACD7e,EAAY6e,OAEhB1rB,KAAK2rB,aACD9e,EAAY8e,aAEhB3rB,KAAK4rB,OACD/e,EAAY+e,OAEhB5rB,KAAK6rB,WACDhf,EAAYgf,WAEhB7rB,KAAK8rB,KACDjf,EAAYif,KAEhB9rB,KAAK+rB,aACDlf,EAAYkf,aAEhB/rB,KAAKgsB,MACDnf,EAAYmf,MAEhBhsB,KAAKisB,UACDpf,EAAYof,UAEhBjsB,KAAKksB,QACDrf,EAAYqf,QAEhBlsB,KAAKmsB,yBACDtf,EAAYsf,yBAEhBnsB,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAKuU,cAC6B,MAA7B1H,EAAY0H,cAAyB9N,SAASoG,EAAY0H,cAAe,SAAM9S,EAEpFzB,KAAKwU,SACD3H,EAAY2H,SAEhBxU,KAAK0U,MACD7H,EAAY6H,MAEhB1U,KAAKosB,aACDvf,EAAYuf,aAEhBpsB,KAAK2U,cAC6B,MAA7B9H,EAAY8H,cAAyBlO,SAASoG,EAAY8H,cAAe,SAAMlT,EAEpFzB,KAAK4U,IACD/H,EAAY+H,IAEhB5U,KAAK6U,YAC2B,MAA3BhI,EAAYgI,YAAuBpO,SAASoG,EAAYgI,YAAa,SAAMpT,EAEhFzB,KAAKqsB,uBACDxf,EAAYwf,uBAEhBrsB,KAAKssB,WACDzf,EAAYyf,WAEhBtsB,KAAKusB,YACD1f,EAAY0f,YAEhBvsB,KAAKwsB,mBACD3f,EAAY2f,mBAEhBxsB,KAAKysB,QACD5f,EAAY4f,QAEhBzsB,KAAKuW,SACD1J,EAAY0J,SAEhBvW,KAAK0sB,iBACD7f,EAAY6f,iBAEhB1sB,KAAK2sB,UACD9f,EAAY8f,UAEhB3sB,KAAKslB,UACDzY,EAAYyY,UAEhBtlB,KAAKmV,YACDtI,EAAYsI,YAEhBnV,KAAK4sB,eACD/f,EAAY+f,eAEhB5sB,KAAK6sB,4BAC2C,MAA3ChgB,EAAYggB,4BAAuCpmB,SAASoG,EAAYggB,4BAA6B,SAAMprB,EAEhHzB,KAAK8sB,+BAC8C,MAA9CjgB,EAAYigB,+BAA0CrmB,SAASoG,EAAYigB,+BAAgC,SAAMrrB,EAEtHzB,KAAK+sB,mCACkD,MAAlDlgB,EAAYkgB,mCAA8CtmB,SAASoG,EAAYkgB,mCAAoC,SAAMtrB,EAE9HzB,KAAKgtB,oBACDngB,EAAYmgB,oBAEhBhtB,KAAKitB,0BACyC,MAAzCpgB,EAAYogB,0BAAqCxmB,SAASoG,EAAYogB,0BAA2B,SAAMxrB,EAE5GzB,KAAKktB,6BAC4C,MAA5CrgB,EAAYqgB,6BAAwCzmB,SAASoG,EAAYqgB,6BAA8B,SAAMzrB,EAElHzB,KAAKmtB,8BAC6C,MAA7CtgB,EAAYsgB,8BAAyC1mB,SAASoG,EAAYsgB,8BAA+B,SAAM1rB,EAEpHzB,KAAKotB,+BAC8C,MAA9CvgB,EAAYugB,+BAA0C3mB,SAASoG,EAAYugB,+BAAgC,SAAM3rB,EAEtHzB,KAAKqtB,yBACDxgB,EAAYwgB,yBAEhBrtB,KAAKstB,+BAC8C,MAA9CzgB,EAAYygB,+BAA0C7mB,SAASoG,EAAYygB,+BAAgC,SAAM7rB,EAEtHzB,KAAKutB,yBACD1gB,EAAY0gB,yBAEhBvtB,KAAKwtB,6BAC4C,MAA5C3gB,EAAY2gB,6BAAwC/mB,SAASoG,EAAY2gB,6BAA8B,SAAM/rB,EAElHzB,KAAKytB,uBACD5gB,EAAY4gB,uBAEhBztB,KAAK0tB,eAC8B,MAA9B7gB,EAAY6gB,eAA0BjnB,SAASoG,EAAY6gB,eAAgB,SAAMjsB,EAEtFzB,KAAK2tB,UACD9gB,EAAY8gB,UAEhB3tB,KAAK4tB,UACD/gB,EAAY+gB,UAEhB5tB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,aAAmBmF,EAK5B,MAAMuF,EAeb1X,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK6tB,oBACmC,MAAnChhB,EAAYghB,oBAA+BpnB,SAASoG,EAAYghB,oBAAqB,SAAMpsB,EAEhGzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK8tB,eACDjhB,EAAYihB,eAEpB9tB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+B0K,EAKxC,MAAM9oB,EAiBboR,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK8V,QACuB,MAAvBjJ,EAAYiJ,QAAmB5I,WAAWL,EAAYiJ,cAAWrU,EAEtEzB,KAAK+tB,eAC8B,MAA9BlhB,EAAYkhB,eAA0B7gB,WAAWL,EAAYkhB,qBAAkBtsB,EAEpFzB,KAAK6V,YAC2B,MAA3BhJ,EAAYgJ,YAAuB3I,WAAWL,EAAYgJ,kBAAepU,EAE9EzB,KAAKguB,sBACqC,MAArCnhB,EAAYmhB,sBAAiC9gB,WAAWL,EAAYmhB,4BAAyBvsB,EAElGzB,KAAKiuB,6BAC4C,MAA5CphB,EAAYohB,6BAAwC/gB,WAAWL,EAAYohB,mCAAgCxsB,EAEhHzB,KAAKkuB,0BACyC,MAAzCrhB,EAAYqhB,0BAAqChhB,WAAWL,EAAYqhB,gCAA6BzsB,EAE1GzB,KAAKmuB,mBACkC,MAAlCthB,EAAYshB,mBAA8BjhB,WAAWL,EAAYshB,yBAAsB1sB,EAE5FzB,KAAKouB,iBACDvhB,EAAYuhB,kBAItBxhB,EAAgB,sBAA4Bpe,EAKrC,MAAMvoB,EAsBb25B,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAKmV,YACDtI,EAAYsI,YAEhBnV,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKmX,gBACDtK,EAAYsK,gBAEhBnX,KAAKn6B,cACDgnC,EAAYhnC,cAEhBm6B,KAAKquB,SACDxhB,EAAYwhB,SAEhBruB,KAAKyrB,YACD5e,EAAY4e,YAEhBzrB,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAK0U,MACD7H,EAAY6H,MAEhB1U,KAAKoV,kBACDvI,EAAYuI,kBAEpBpV,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAAK,IAAIvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI5tB,GAAmB63B,EAAYM,OAAOvK,SAG/D5C,KAAKmN,OAAOvK,QAAKnB,GAYjB,GAPIzB,KAAK8M,aACDD,EAAYC,aAEhB9M,KAAK4X,MACD/K,EAAY+K,MAEpB5X,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0B3mC,EAKnC,MAAM4O,EAwBb+qB,YAAYiN,GA2CV,GA1CFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKuuB,oBACD1hB,EAAY0hB,oBAEhBvuB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAKyuB,aACD5hB,EAAY4hB,aAEhBzuB,KAAK0uB,oBACA7hB,EAAY6hB,+BAA+BznB,KAAQ4F,EAAY6hB,oBAC1B,MAAnC7hB,EAAY6hB,qBAA+BpgB,EAAAA,EAAAA,IAAiCzB,EAAY6hB,oBAAqB,sBAAsB,QAASjtB,EAEnJzB,KAAK2uB,WAC0B,MAA1B9hB,EAAY8hB,WAAsBzhB,WAAWL,EAAY8hB,iBAAcltB,EAE5EzB,KAAK4uB,aACD/hB,EAAY+hB,aAEhB5uB,KAAK6uB,UACDhiB,EAAYgiB,UAEhB7uB,KAAK8uB,cAC6B,MAA7BjiB,EAAYiiB,cAAyB5hB,WAAWL,EAAYiiB,oBAAiBrtB,EAElFzB,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAK+uB,iBACgC,MAAhCliB,EAAYkiB,iBAA4BtoB,SAASoG,EAAYkiB,iBAAkB,SAAMttB,EAE1FzB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKgvB,cAAWvtB,EACZoL,EAAYmiB,SAAU,CAC1BhvB,KAAKgvB,SAAW,GAChB,IAAK,IAAIpsB,EAAI,EAAGA,EAAIiK,EAAYmiB,SAASnsB,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYmiB,SAASpsB,GACzB,GAA8C,MAA1CiK,EAAYmiB,SAASpsB,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYmiB,SAASpsB,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgvB,SAASpsB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmiB,SAASpsB,UAG1E5C,KAAKgvB,SAASpsB,GAAK,IAAIqsB,GAAqBpiB,EAAYmiB,SAASpsB,SAGrE5C,KAAKgvB,SAASpsB,QAAKnB,GAMnB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0B/3B,EAKnC,MAAMs5B,EAWbvO,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEpB/M,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BuB,EAKvC,MAAMnsB,EAyCb4d,YAAYiN,GAmCV,GAlCFA,EAAcA,GAAe,GACvB7M,KAAKkvB,UACDriB,EAAYqiB,UAEhBlvB,KAAKmvB,aAC4B,MAA5BtiB,EAAYsiB,aAAwBjiB,WAAWL,EAAYsiB,mBAAgB1tB,EAEhFzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKqvB,WACDxiB,EAAYwiB,WAEhBrvB,KAAKsvB,cACDziB,EAAYyiB,cAEhBtvB,KAAKuvB,aACD1iB,EAAY0iB,aAEhBvvB,KAAKwvB,UACD3iB,EAAY2iB,UAEhBxvB,KAAKyvB,aACD5iB,EAAY4iB,aAEhBzvB,KAAK0vB,eACD7iB,EAAY6iB,eAEhB1vB,KAAK2vB,kBACD9iB,EAAY8iB,kBAEW,MAA3B9iB,EAAY+iB,YACZ5vB,KAAK4vB,iBAAcnuB,OAChB,GAA8C,MAA1CoL,EAAY+iB,YAAY,eAC/B5vB,KAAK4vB,YAAc,IAAIC,EAAiBhjB,EAAY+iB,iBACjD,CAEHxiB,GADIA,EAAoBP,EAAY+iB,YAAY,gBAC1BviB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4vB,YAAc,IAAIhjB,EAAiBQ,GAAWP,EAAY+iB,cAiEvE,GA5DI5vB,KAAK8vB,qBACDjjB,EAAYijB,qBAEhB9vB,KAAK+vB,SACDljB,EAAYkjB,SAEhB/vB,KAAKgwB,gBACDnjB,EAAYmjB,gBAEhBhwB,KAAKiwB,YACDpjB,EAAYojB,YAEhBjwB,KAAKkwB,iBACDrjB,EAAYqjB,iBAEhBlwB,KAAKmwB,UACDtjB,EAAYsjB,UAEhBnwB,KAAKowB,eACDvjB,EAAYujB,eAEhBpwB,KAAKqwB,iBACDxjB,EAAYwjB,iBAEhBrwB,KAAKswB,mBACDzjB,EAAYyjB,mBAEhBtwB,KAAKuwB,gBACA1jB,EAAY0jB,2BAA2BtpB,KAAQ4F,EAAY0jB,gBAC1B,MAA/B1jB,EAAY0jB,iBAA2BjiB,EAAAA,EAAAA,IAAiCzB,EAAY0jB,gBAAiB,sBAAsB,QAAS9uB,EAE3IzB,KAAKwwB,kBACA3jB,EAAY2jB,6BAA6BvpB,KAAQ4F,EAAY2jB,kBAC1B,MAAjC3jB,EAAY2jB,mBAA6BliB,EAAAA,EAAAA,IAAiCzB,EAAY2jB,kBAAmB,sBAAsB,QAAS/uB,EAE/IzB,KAAKywB,oBACD5jB,EAAY4jB,oBAEhBzwB,KAAK0wB,SACD7jB,EAAY6jB,SAEhB1wB,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAKsW,kBACDzJ,EAAYyJ,kBAEhBtW,KAAKoW,uBACDvJ,EAAYuJ,uBAEhBpW,KAAK4wB,wBACD/jB,EAAY+jB,wBAEhB5wB,KAAK6wB,UACyB,MAAzBhkB,EAAYgkB,UAAqB3jB,WAAWL,EAAYgkB,gBAAapvB,EAE1EzB,KAAK8wB,QACDjkB,EAAYikB,QAEpB9wB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,aAAmB5qB,EAK5B,MAAM6tC,EAsBbjwB,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK+wB,eACDlkB,EAAYkkB,eAEhB/wB,KAAKgxB,iBACDnkB,EAAYmkB,iBAEhBhxB,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAKkxB,UACDrkB,EAAYqkB,UAEhBlxB,KAAKmxB,QACDtkB,EAAYskB,QAEhBnxB,KAAKoxB,UACDvkB,EAAYukB,UAEhBpxB,KAAKqxB,OACDxkB,EAAYwkB,OAEhBrxB,KAAKsxB,YACDzkB,EAAYykB,YAEhBtxB,KAAKuxB,eACD1kB,EAAY0kB,eAEpBvxB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBijB,EAKhC,MAAMztC,EAebwd,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwxB,aACD3kB,EAAY2kB,aAEhBxxB,KAAKyxB,4BACD5kB,EAAY4kB,4BAEpBzxB,KAAK0xB,aAAUjwB,EACXoL,EAAY6kB,QAAS,CACzB1xB,KAAK0xB,QAAU,GACf,IAAK,IAAI9uB,EAAI,EAAGA,EAAIiK,EAAY6kB,QAAQ7uB,OAAQD,IAAK,CACrD,GAA8B,MAA1BiK,EAAY6kB,QAAQ9uB,GACxB,GAA6C,MAAzCiK,EAAY6kB,QAAQ9uB,GAAG,eAEzBwK,GADIA,EAAoBP,EAAY6kB,QAAQ9uB,GAAG,gBACzByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0xB,QAAQ9uB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6kB,QAAQ9uB,UAGxE5C,KAAK0xB,QAAQ9uB,GAAK,IAAI+uB,GAAsB9kB,EAAY6kB,QAAQ9uB,SAGpE5C,KAAK0xB,QAAQ9uB,QAAKnB,GAMlB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsBxqB,EAK/B,MAAMwvC,EAUbhyB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK6xB,mBAAgBpwB,EACjBoL,EAAYglB,cAAe,CAC/B7xB,KAAK6xB,cAAgB,GACrB,IAAK,IAAIjvB,EAAI,EAAGA,EAAIiK,EAAYglB,cAAchvB,OAAQD,IAClB,MAAhCiK,EAAYglB,cAAcjvB,GAC1B5C,KAAK6xB,cAAcjvB,GACfiK,EAAYglB,cAAcjvB,GAElC5C,KAAK6xB,cAAcjvB,QAAKnB,IAO1BmL,EAAgB,iCAAuCglB,EAKhD,MAAMjjB,EAuGb/O,YAAYiN,GA6EV,GA5EFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKyS,gBACD5F,EAAY4F,gBAEhBzS,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKsoB,QACDzb,EAAYyb,QAEhBtoB,KAAK8vB,qBACDjjB,EAAYijB,qBAEhB9vB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAKoP,QACDvC,EAAYuC,QAEhBpP,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKoT,YACDvG,EAAYuG,YAEhBpT,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAKgyB,cAC6B,MAA7BnlB,EAAYmlB,cAAyB9kB,WAAWL,EAAYmlB,oBAAiBvwB,EAElFzB,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAKiyB,eACDplB,EAAYolB,eAEhBjyB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAKob,oBACmC,MAAnCvO,EAAYuO,oBAA+BlO,WAAWL,EAAYuO,0BAAuB3Z,EAE9FzB,KAAKmS,SACwB,MAAxBtF,EAAYsF,SAAoBjF,WAAWL,EAAYsF,eAAY1Q,EAExEzB,KAAK6P,yBACwC,MAAxChD,EAAYgD,yBAAoC3C,WAAWL,EAAYgD,+BAA4BpO,EAExGzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK6a,aAC4B,MAA5BhO,EAAYgO,aAAwB3N,WAAWL,EAAYgO,mBAAgBpZ,EAEhFzB,KAAKkyB,uBACsC,MAAtCrlB,EAAYqlB,uBAAkChlB,WAAWL,EAAYqlB,6BAA0BzwB,EAEpGzB,KAAKmyB,6BAC4C,MAA5CtlB,EAAYslB,6BAAwCjlB,WAAWL,EAAYslB,mCAAgC1wB,EAEhHzB,KAAKoyB,yBACwC,MAAxCvlB,EAAYulB,yBAAoCllB,WAAWL,EAAYulB,+BAA4B3wB,EAExGzB,KAAKuuB,oBACD1hB,EAAY0hB,oBAEe,MAA/B1hB,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CAEH1E,GADIA,EAAoBP,EAAYiF,gBAAgB,gBAC9BzE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,kBAoI3E,GA/HI9R,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAK2P,yBACwC,MAAxC9C,EAAY8C,yBAAoCzC,WAAWL,EAAY8C,+BAA4BlO,EAExGzB,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAKqyB,4BACAxlB,EAAYwlB,uCAAuCprB,KAAQ4F,EAAYwlB,4BAC1B,MAA3CxlB,EAAYwlB,6BAAuC/jB,EAAAA,EAAAA,IAAiCzB,EAAYwlB,4BAA6B,sBAAsB,QAAS5wB,EAEnKzB,KAAKsyB,0BACAzlB,EAAYylB,qCAAqCrrB,KAAQ4F,EAAYylB,0BAC1B,MAAzCzlB,EAAYylB,2BAAqChkB,EAAAA,EAAAA,IAAiCzB,EAAYylB,0BAA2B,sBAAsB,QAAS7wB,EAE/JzB,KAAKuyB,eACD1lB,EAAY0lB,eAEhBvyB,KAAKwyB,yBACD3lB,EAAY2lB,yBAEhBxyB,KAAKyyB,mBACD5lB,EAAY4lB,mBAEhBzyB,KAAK0yB,sBACqC,MAArC7lB,EAAY6lB,sBAAiCxlB,WAAWL,EAAY6lB,4BAAyBjxB,EAElGzB,KAAK2yB,wBACD9lB,EAAY8lB,wBAEhB3yB,KAAK4yB,aACD/lB,EAAY+lB,aAEhB5yB,KAAK6yB,oBACDhmB,EAAYgmB,oBAEhB7yB,KAAK8yB,iBACgC,MAAhCjmB,EAAYimB,iBAA4B5lB,WAAWL,EAAYimB,uBAAoBrxB,EAExFzB,KAAK+yB,oBACDlmB,EAAYkmB,oBAEhB/yB,KAAKgzB,SACDnmB,EAAYmmB,SAEhBhzB,KAAKizB,0BACDpmB,EAAYomB,0BAEhBjzB,KAAKkzB,eACDrmB,EAAYqmB,eAEhBlzB,KAAKmzB,eACDtmB,EAAYsmB,eAEhBnzB,KAAKozB,WACDvmB,EAAYumB,WAEhBpzB,KAAKqzB,qBACDxmB,EAAYwmB,qBAEhBrzB,KAAKszB,uBACDzmB,EAAYymB,uBAEhBtzB,KAAKuzB,kBACD1mB,EAAY0mB,kBAEhBvzB,KAAKwzB,iBACD3mB,EAAY2mB,iBAEhBxzB,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK0zB,qBACoC,MAApC7mB,EAAY6mB,qBAAgCxmB,WAAWL,EAAY6mB,2BAAwBjyB,EAEhGzB,KAAK2zB,iBACgC,MAAhC9mB,EAAY8mB,iBAA4BzmB,WAAWL,EAAY8mB,uBAAoBlyB,EAExFzB,KAAK4zB,eAC8B,MAA9B/mB,EAAY+mB,eAA0B1mB,WAAWL,EAAY+mB,qBAAkBnyB,EAEpFzB,KAAK6zB,eAC8B,MAA9BhnB,EAAYgnB,eAA0B3mB,WAAWL,EAAYgnB,qBAAkBpyB,EAEpFzB,KAAK8zB,iBACgC,MAAhCjnB,EAAYinB,iBAA4B5mB,WAAWL,EAAYinB,uBAAoBryB,EAExFzB,KAAK+zB,iBACgC,MAAhClnB,EAAYknB,iBAA4B7mB,WAAWL,EAAYknB,uBAAoBtyB,EAExFzB,KAAKg0B,mBACDnnB,EAAYmnB,mBAEhBh0B,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKk0B,wBACDrnB,EAAYqnB,wBAEhBl0B,KAAKm0B,+BACDtnB,EAAYsnB,+BAEhBn0B,KAAKo0B,kBACDvnB,EAAYunB,kBAEhBp0B,KAAKq0B,cAC6B,MAA7BxnB,EAAYwnB,cAAyBnnB,WAAWL,EAAYwnB,oBAAiB5yB,EAElFzB,KAAKs0B,cACDznB,EAAYynB,cAEhBt0B,KAAKu0B,UACD1nB,EAAY0nB,UAEhBv0B,KAAKw0B,cAC6B,MAA7B3nB,EAAY2nB,cAAyBtnB,WAAWL,EAAY2nB,oBAAiB/yB,EAElFzB,KAAK0c,gBAC+B,MAA/B7P,EAAY6P,gBAA2BxP,WAAWL,EAAY6P,sBAAmBjb,EAEtFzB,KAAKy0B,YACD5nB,EAAY4nB,YAEpBz0B,KAAKqR,oBAAiB5P,EAClBoL,EAAYwE,eAAgB,CAChCrR,KAAKqR,eAAiB,GACtB,IAAK,IAAIzO,EAAI,EAAGA,EAAIiK,EAAYwE,eAAexO,OAAQD,IAClB,MAAjCiK,EAAYwE,eAAezO,GAC3B5C,KAAKqR,eAAezO,GAChBiK,EAAYwE,eAAezO,GAEnC5C,KAAKqR,eAAezO,QAAKnB,EAMzB,GADAzB,KAAK00B,gBAAajzB,EACdoL,EAAY6nB,WAAY,CAC5B10B,KAAK00B,WAAa,GAClB,IAAS9xB,EAAI,EAAGA,EAAIiK,EAAY6nB,WAAW7xB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY6nB,WAAW9xB,GAC3B,GAAgD,MAA5CiK,EAAY6nB,WAAW9xB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6nB,WAAW9xB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK00B,WAAW9xB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6nB,WAAW9xB,UAG9E5C,KAAK00B,WAAW9xB,GAAK,IAAI+xB,GAAe9nB,EAAY6nB,WAAW9xB,SAGnE5C,KAAK00B,WAAW9xB,QAAKnB,GAMrB,GADAzB,KAAK40B,mBAAgBnzB,EACjBoL,EAAY+nB,cAAe,CAC/B50B,KAAK40B,cAAgB,GACrB,IAAShyB,EAAI,EAAGA,EAAIiK,EAAY+nB,cAAc/xB,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY+nB,cAAchyB,GAC9B,GAAmD,MAA/CiK,EAAY+nB,cAAchyB,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY+nB,cAAchyB,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK40B,cAAchyB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+nB,cAAchyB,UAGpF5C,KAAK40B,cAAchyB,GAAK,IAAIiyB,GAAkBhoB,EAAY+nB,cAAchyB,SAG5E5C,KAAK40B,cAAchyB,QAAKnB,GAMxB,GADAzB,KAAK80B,8BAA2BrzB,EAC5BoL,EAAYioB,yBAA0B,CAC1C90B,KAAK80B,yBAA2B,GAChC,IAASlyB,EAAI,EAAGA,EAAIiK,EAAYioB,yBAAyBjyB,OAAQD,IAClB,MAA3CiK,EAAYioB,yBAAyBlyB,GACrC5C,KAAK80B,yBAAyBlyB,GAC1BiK,EAAYioB,yBAAyBlyB,GAE7C5C,KAAK80B,yBAAyBlyB,QAAKnB,EAMnC,GADAzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAM1B,GADAzB,KAAKgP,iBAAcvN,EACfoL,EAAYmC,YAAa,CAC7BhP,KAAKgP,YAAc,GACnB,IAASpM,EAAI,EAAGA,EAAIiK,EAAYmC,YAAYnM,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYmC,YAAYpM,GAC5B,GAAiD,MAA7CiK,EAAYmC,YAAYpM,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYmC,YAAYpM,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgP,YAAYpM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmC,YAAYpM,UAGhF5C,KAAKgP,YAAYpM,GAAK,IAAIqM,GAAgBpC,EAAYmC,YAAYpM,SAGtE5C,KAAKgP,YAAYpM,QAAKnB,GAkBtB,GAbIzB,KAAK+0B,eAC8B,MAA9BloB,EAAYkoB,eAA0B7nB,WAAWL,EAAYkoB,qBAAkBtzB,EAEpFzB,KAAKg1B,yBACDnoB,EAAYmoB,yBAEhBh1B,KAAKi1B,mBACDpoB,EAAYooB,mBAEhBj1B,KAAKk1B,mBACkC,MAAlCroB,EAAYqoB,mBAA8BhoB,WAAWL,EAAYqoB,yBAAsBzzB,EAEhGzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,GA2B9B,GAtBIzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKwT,qBACD3G,EAAY2G,qBAEhBxT,KAAKo1B,WACDvoB,EAAYuoB,WAEhBp1B,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKq1B,iBACgC,MAAhCxoB,EAAYwoB,iBAA4BnoB,WAAWL,EAAYwoB,uBAAoB5zB,EAExFzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAEhFzB,KAAKkO,qBAAkBzM,EACnBoL,EAAYqB,gBAAiB,CACjClO,KAAKkO,gBAAkB,GACvB,IAAStL,EAAI,EAAGA,EAAIiK,EAAYqB,gBAAgBrL,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYqB,gBAAgBtL,GAChC,GAAqD,MAAjDiK,EAAYqB,gBAAgBtL,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYqB,gBAAgBtL,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkO,gBAAgBtL,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqB,gBAAgBtL,UAGxF5C,KAAKkO,gBAAgBtL,GAAK,IAAIuL,EAAwBtB,EAAYqB,gBAAgBtL,SAGtF5C,KAAKkO,gBAAgBtL,QAAKnB,GAK1B,GAA0C,MAAtCoL,EAAY0oB,uBACZv1B,KAAKu1B,4BAAyB9zB,OAC3B,GAAyD,MAArDoL,EAAY0oB,uBAAuB,eAC1Cv1B,KAAKu1B,uBAAyB,IAAIC,GAA4B3oB,EAAY0oB,4BACvE,CACH,IAAInoB,EACJA,GADIA,EAAoBP,EAAY0oB,uBAAuB,gBACrCloB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu1B,uBAAyB,IAAI3oB,EAAiBQ,GAAWP,EAAY0oB,yBAK9Ev1B,KAAKy1B,qBACoC,MAApC5oB,EAAY4oB,qBAAgCvoB,WAAWL,EAAY4oB,2BAAwBh0B,EAEhGzB,KAAK01B,eACD7oB,EAAY6oB,eAEhB11B,KAAK21B,iBACD9oB,EAAY8oB,iBAEhB31B,KAAK41B,gBACD/oB,EAAY+oB,gBAEhB51B,KAAK61B,kBACDhpB,EAAYgpB,kBAEhB71B,KAAK81B,wBACDjpB,EAAYipB,wBAEhB91B,KAAK+1B,2BAC0C,MAA1ClpB,EAAYkpB,2BAAsCtvB,SAASoG,EAAYkpB,2BAA4B,SAAMt0B,GAIpHmL,EAAgB,cAAoB+B,EAK7B,MAAM6mB,GAYb51B,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKi2B,cACDppB,EAAYopB,cAEpBj2B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkC4oB,GAK3C,MAAMvyC,GA0Bb2c,YAAYiN,GAmDV,GAlDFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKk2B,OACDrpB,EAAYqpB,OAEhBl2B,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKm2B,gBACDtpB,EAAYspB,gBAEhBn2B,KAAKo2B,cACDvpB,EAAYupB,cAEhBp2B,KAAKq2B,OACDxpB,EAAYwpB,OAEhBr2B,KAAKs2B,WACDzpB,EAAYypB,WAEhBt2B,KAAKu2B,SACD1pB,EAAY0pB,SAEhBv2B,KAAKw2B,cAC6B,MAA7B3pB,EAAY2pB,cAAyBtpB,WAAWL,EAAY2pB,oBAAiB/0B,EAElFzB,KAAKy2B,iBACD5pB,EAAY4pB,iBAEhBz2B,KAAK02B,aACD7pB,EAAY6pB,aAEhB12B,KAAK22B,kBACD9pB,EAAY8pB,kBAEhB32B,KAAK42B,cACD/pB,EAAY+pB,cAEhB52B,KAAK62B,yBACDhqB,EAAYgqB,yBAEhB72B,KAAK82B,cACDjqB,EAAYiqB,cAEhB92B,KAAK+2B,uBACDlqB,EAAYkqB,uBAEpB/2B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwB3pB,GAKjC,MAAM8V,GAeb6G,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKg3B,cACDnqB,EAAYmqB,cAEhBh3B,KAAKi3B,2BACDpqB,EAAYoqB,2BAEpBj3B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B7T,GAKpC,MAAMjO,GAoBb8U,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKn6B,cACDgnC,EAAYhnC,cAEhBm6B,KAAKk3B,YACDrqB,EAAYqqB,YAEhBl3B,KAAKm3B,iBACDtqB,EAAYsqB,iBAEhBn3B,KAAKo3B,iBACDvqB,EAAYuqB,iBAEhBp3B,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKq3B,aACDxqB,EAAYwqB,aAEhBr3B,KAAKs3B,aACDzqB,EAAYyqB,aAEhBt3B,KAAKu3B,cACD1qB,EAAY0qB,cAEhBv3B,KAAKw3B,cACD3qB,EAAY2qB,cAEpBx3B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgC9hB,GAKzC,MAAMslB,GAiBbxQ,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKy3B,qBACD5qB,EAAY4qB,qBAEhBz3B,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAKo3B,iBACDvqB,EAAYuqB,iBAEhBp3B,KAAK23B,SACD9qB,EAAY8qB,SAEhB33B,KAAK43B,MACD/qB,EAAY+qB,MAEhB53B,KAAK63B,uBACDhrB,EAAYgrB,uBAEpB73B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6BwD,GAKtC,MAAM0nB,GAmDbl4B,YAAYiN,GAEV,GAA+B,OADjCA,EAAcA,GAAe,IACXkrB,YACZ/3B,KAAK+3B,iBAAct2B,OAChB,GAA8C,MAA1CoL,EAAYkrB,YAAY,eAC/B/3B,KAAK+3B,YAAc,IAAIC,GAAiBnrB,EAAYkrB,iBACjD,CAEH3qB,GADIA,EAAoBP,EAAYkrB,YAAY,gBAC1B1qB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+3B,YAAc,IAAInrB,EAAiBQ,GAAWP,EAAYkrB,cAKvE,GAAwC,MAApClrB,EAAYorB,qBACZj4B,KAAKi4B,0BAAuBx2B,OACzB,GAAuD,MAAnDoL,EAAYorB,qBAAqB,eACxCj4B,KAAKi4B,qBAAuB,IAAIC,GAA0BrrB,EAAYorB,0BACnE,CAEH7qB,GADIA,EAAoBP,EAAYorB,qBAAqB,gBACnC5qB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi4B,qBAAuB,IAAIrrB,EAAiBQ,GAAWP,EAAYorB,uBAKhF,GAA2C,MAAvCprB,EAAYsrB,wBACZn4B,KAAKm4B,6BAA0B12B,OAC5B,GAA0D,MAAtDoL,EAAYsrB,wBAAwB,eAC3Cn4B,KAAKm4B,wBAA0B,IAAIp4D,GAA6B8sC,EAAYsrB,6BACzE,CAEH/qB,GADIA,EAAoBP,EAAYsrB,wBAAwB,gBACtC9qB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm4B,wBAA0B,IAAIvrB,EAAiBQ,GAAWP,EAAYsrB,0BAsDnF,GAjDIn4B,KAAKo4B,eACDvrB,EAAYurB,eAEhBp4B,KAAKq4B,mBACDxrB,EAAYwrB,mBAEhBr4B,KAAKs4B,wBACDzrB,EAAYyrB,wBAEhBt4B,KAAKu4B,2BACD1rB,EAAY0rB,2BAEhBv4B,KAAKw4B,wBACuC,MAAvC3rB,EAAY2rB,wBAAmCtrB,WAAWL,EAAY2rB,8BAA2B/2B,EAEtGzB,KAAKy4B,sBACD5rB,EAAY4rB,sBAEhBz4B,KAAK04B,aACD7rB,EAAY6rB,aAEhB14B,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAK24B,eAC8B,MAA9B9rB,EAAY8rB,eAA0BzrB,WAAWL,EAAY8rB,qBAAkBl3B,EAEpFzB,KAAK44B,yBACwC,MAAxC/rB,EAAY+rB,yBAAoC1rB,WAAWL,EAAY+rB,+BAA4Bn3B,EAExGzB,KAAK64B,wBACuC,MAAvChsB,EAAYgsB,wBAAmC3rB,WAAWL,EAAYgsB,8BAA2Bp3B,EAEtGzB,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAK84B,aAC4B,MAA5BjsB,EAAYisB,aAAwB5rB,WAAWL,EAAYisB,mBAAgBr3B,EAEhFzB,KAAK+4B,4BAC2C,MAA3ClsB,EAAYksB,4BAAuC7rB,WAAWL,EAAYksB,kCAA+Bt3B,EAE9GzB,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKi5B,cACDpsB,EAAYosB,cAEpBj5B,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAqE1B,GAhEIzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKozB,WACDvmB,EAAYumB,WAEhBpzB,KAAKk5B,YACDrsB,EAAYqsB,YAEhBl5B,KAAKm5B,uBACDtsB,EAAYssB,uBAEhBn5B,KAAKo5B,wBACDvsB,EAAYusB,wBAEhBp5B,KAAKq5B,aACDxsB,EAAYwsB,aAEhBr5B,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAK2Q,cACD9D,EAAY8D,cAEhB3Q,KAAKs5B,WACDzsB,EAAYysB,WAEhBt5B,KAAKu5B,aACD1sB,EAAY0sB,aAEhBv5B,KAAKw5B,aACD3sB,EAAY2sB,aAEhBx5B,KAAKy5B,WACD5sB,EAAY4sB,WAEhBz5B,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK05B,gBACD7sB,EAAY6sB,gBAEhB15B,KAAK25B,iBACgC,MAAhC9sB,EAAY8sB,iBAA4BzsB,WAAWL,EAAY8sB,uBAAoBl4B,EAExFzB,KAAK45B,gBAC+B,MAA/B/sB,EAAY+sB,gBAA2BnzB,SAASoG,EAAY+sB,gBAAiB,SAAMn4B,EAExFzB,KAAK65B,qBACDhtB,EAAYgtB,qBAEhB75B,KAAK85B,oBACDjtB,EAAYitB,oBAEhB95B,KAAK+5B,yBACDltB,EAAYktB,yBAEhB/5B,KAAKg6B,sBACqC,MAArCntB,EAAYmtB,sBAAiCvzB,SAASoG,EAAYmtB,sBAAuB,SAAMv4B,EAEpGzB,KAAKi6B,iBACDptB,EAAYotB,iBAEpBj6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0BkrB,GAKnC,MAAM7oB,GA6DbrP,YAAYiN,GAyDV,GAxDFA,EAAcA,GAAe,GACvB7M,KAAKk6B,aACDrtB,EAAYqtB,aAEhBl6B,KAAKm6B,WACDttB,EAAYstB,WAEhBn6B,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKo6B,gBACDvtB,EAAYutB,gBAEhBp6B,KAAKq6B,uBACDxtB,EAAYwtB,uBAEhBr6B,KAAKs6B,gBACDztB,EAAYytB,gBAEhBt6B,KAAKu6B,kBACD1tB,EAAY0tB,kBAEhBv6B,KAAKw6B,iBACgC,MAAhC3tB,EAAY2tB,iBAA4BttB,WAAWL,EAAY2tB,uBAAoB/4B,EAExFzB,KAAK2qB,MACqB,MAArB9d,EAAY8d,MAAiBzd,WAAWL,EAAY8d,YAASlpB,EAElEzB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAK06B,uBACsC,MAAtC7tB,EAAY6tB,uBAAkCj0B,SAASoG,EAAY6tB,uBAAwB,SAAMj5B,EAEtGzB,KAAK26B,qBACoC,MAApC9tB,EAAY8tB,qBAAgCl0B,SAASoG,EAAY8tB,qBAAsB,SAAMl5B,EAElGzB,KAAK46B,eAC8B,MAA9B/tB,EAAY+tB,eAA0B1tB,WAAWL,EAAY+tB,qBAAkBn5B,EAEpFzB,KAAK66B,WAC0B,MAA1BhuB,EAAYguB,WAAsB3tB,WAAWL,EAAYguB,iBAAcp5B,EAE5EzB,KAAK86B,SACwB,MAAxBjuB,EAAYiuB,SAAoB5tB,WAAWL,EAAYiuB,eAAYr5B,EAExEzB,KAAK+6B,KACDluB,EAAYkuB,KAEhB/6B,KAAKg7B,eAC8B,MAA9BnuB,EAAYmuB,eAA0B9tB,WAAWL,EAAYmuB,qBAAkBv5B,EAExFzB,KAAKi7B,yBAAsBx5B,EACvBoL,EAAYouB,oBAAqB,CACrCj7B,KAAKi7B,oBAAsB,GAC3B,IAAK,IAAIr4B,EAAI,EAAGA,EAAIiK,EAAYouB,oBAAoBp4B,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYouB,oBAAoBr4B,GACpC,GAAyD,MAArDiK,EAAYouB,oBAAoBr4B,GAAG,eAErCwK,GADIA,EAAoBP,EAAYouB,oBAAoBr4B,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi7B,oBAAoBr4B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYouB,oBAAoBr4B,UAGhG5C,KAAKi7B,oBAAoBr4B,GAAK,IAAIs4B,GAAwBruB,EAAYouB,oBAAoBr4B,SAG9F5C,KAAKi7B,oBAAoBr4B,QAAKnB,GAM9B,GADAzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAyD1B,GApDIzB,KAAKm7B,aACDtuB,EAAYsuB,aAEhBn7B,KAAKo7B,WACDvuB,EAAYuuB,WAEhBp7B,KAAKq7B,aACDxuB,EAAYwuB,aAEhBr7B,KAAKs7B,WACDzuB,EAAYyuB,WAEhBt7B,KAAKu7B,yBACwC,MAAxC1uB,EAAY0uB,yBAAoCruB,WAAWL,EAAY0uB,+BAA4B95B,EAExGzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAKiyB,eACDplB,EAAYolB,eAEhBjyB,KAAKw7B,gBACD3uB,EAAY2uB,gBAEhBx7B,KAAKy7B,wBACD5uB,EAAY4uB,wBAEhBz7B,KAAK07B,uBACD7uB,EAAY6uB,uBAEhB17B,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAK27B,wBACD9uB,EAAY8uB,wBAEhB37B,KAAKmb,UACyB,MAAzBtO,EAAYsO,UAAqBjO,WAAWL,EAAYsO,gBAAa1Z,EAE1EzB,KAAK47B,iBACgC,MAAhC/uB,EAAY+uB,iBAA4B1uB,WAAWL,EAAY+uB,uBAAoBn6B,EAExFzB,KAAKua,YAC2B,MAA3B1N,EAAY0N,YAAuBrN,WAAWL,EAAY0N,kBAAe9Y,EAElFzB,KAAKoc,cAAW3a,EACZoL,EAAYuP,SAAU,CAC1Bpc,KAAKoc,SAAW,GAChB,IAASxZ,EAAI,EAAGA,EAAIiK,EAAYuP,SAASvZ,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYuP,SAASxZ,GACzB,GAA8C,MAA1CiK,EAAYuP,SAASxZ,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYuP,SAASxZ,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKoc,SAASxZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuP,SAASxZ,UAG1E5C,KAAKoc,SAASxZ,GAAK,IAAIyZ,GAAaxP,EAAYuP,SAASxZ,SAG7D5C,KAAKoc,SAASxZ,QAAKnB,GAMnB,GADAzB,KAAK67B,iBAAcp6B,EACfoL,EAAYgvB,YAAa,CAC7B77B,KAAK67B,YAAc,GACnB,IAASj5B,EAAI,EAAGA,EAAIiK,EAAYgvB,YAAYh5B,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYgvB,YAAYj5B,GAC5B,GAAiD,MAA7CiK,EAAYgvB,YAAYj5B,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYgvB,YAAYj5B,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK67B,YAAYj5B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgvB,YAAYj5B,UAGhF5C,KAAK67B,YAAYj5B,GAAK,IAAIk5B,GAAgBjvB,EAAYgvB,YAAYj5B,SAGtE5C,KAAK67B,YAAYj5B,QAAKnB,GAmCtB,GA9BIzB,KAAK+7B,yBACwC,MAAxClvB,EAAYkvB,yBAAoC7uB,WAAWL,EAAYkvB,+BAA4Bt6B,EAExGzB,KAAKmc,mBACkC,MAAlCtP,EAAYsP,mBAA8BjP,WAAWL,EAAYsP,yBAAsB1a,EAE5FzB,KAAKkc,mBACkC,MAAlCrP,EAAYqP,mBAA8BhP,WAAWL,EAAYqP,yBAAsBza,EAE5FzB,KAAKg8B,6BAC4C,MAA5CnvB,EAAYmvB,6BAAwC9uB,WAAWL,EAAYmvB,mCAAgCv6B,EAEhHzB,KAAKqO,cACAxB,EAAYwB,yBAAyBpH,KAAQ4F,EAAYwB,cAC1B,MAA7BxB,EAAYwB,eAAyBC,EAAAA,EAAAA,IAAiCzB,EAAYwB,cAAe,sBAAsB,QAAS5M,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAK+0B,eAC8B,MAA9BloB,EAAYkoB,eAA0B7nB,WAAWL,EAAYkoB,qBAAkBtzB,EAEpFzB,KAAKsQ,kBACDzD,EAAYyD,kBAEhBtQ,KAAKi8B,oBACmC,MAAnCpvB,EAAYovB,oBAA+B/uB,WAAWL,EAAYovB,0BAAuBx6B,EAElGzB,KAAKk8B,oBAAiBz6B,EAClBoL,EAAYqvB,eAAgB,CAChCl8B,KAAKk8B,eAAiB,GACtB,IAASt5B,EAAI,EAAGA,EAAIiK,EAAYqvB,eAAer5B,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAYqvB,eAAet5B,GAC/B,GAAoD,MAAhDiK,EAAYqvB,eAAet5B,GAAG,eAEhCwK,GADIA,EAAoBP,EAAYqvB,eAAet5B,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk8B,eAAet5B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqvB,eAAet5B,UAGtF5C,KAAKk8B,eAAet5B,GAAK,IAAIyZ,GAAaxP,EAAYqvB,eAAet5B,SAGzE5C,KAAKk8B,eAAet5B,QAAKnB,GAYzB,GAPIzB,KAAKm8B,uCACsD,MAAtDtvB,EAAYsvB,uCAAkDjvB,WAAWL,EAAYsvB,6CAA0C16B,EAEpIzB,KAAKo8B,qCACoD,MAApDvvB,EAAYuvB,qCAAgDlvB,WAAWL,EAAYuvB,2CAAwC36B,EAEpIzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsBqC,GAK/B,MAAMnrB,GAeb8b,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKq8B,QACDxvB,EAAYwvB,QAEhBr8B,KAAKs8B,SACDzvB,EAAYyvB,SAEpBt8B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,cAAoB9oB,GAK7B,MAAM8Y,GAYbgD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKu8B,QACD1vB,EAAY0vB,QAEhBv8B,KAAK+M,KACDF,EAAYE,KAEpB/M,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgChQ,GAKzC,MAAMwd,GAYbxa,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKw8B,4BACD3vB,EAAY2vB,4BAEpBx8B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BwN,GAKvC,MAAM31C,GAiBbm7B,YAAYiN,GAEV,GAAyB,OAD3BA,EAAcA,GAAe,IACX8d,MACZ3qB,KAAK2qB,WAAQlpB,OACV,GAAwC,MAApCoL,EAAY8d,MAAM,eACzB3qB,KAAK2qB,MAAQ,IAAI8R,GAA2B5vB,EAAY8d,WACrD,CAEHvd,GADIA,EAAoBP,EAAY8d,MAAM,gBACpBtd,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2qB,MAAQ,IAAI/d,EAAiBQ,GAAWP,EAAY8d,QAqBjE,GAhBI3qB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAK08B,UACyB,MAAzB7vB,EAAY6vB,UAAqBj2B,SAASoG,EAAY6vB,UAAW,SAAMj7B,EAEhFzB,KAAKuN,sBAAmB9L,EACpBoL,EAAYU,iBAAkB,CAClCvN,KAAKuN,iBAAmB,GACxB,IAAK,IAAI3K,EAAI,EAAGA,EAAIiK,EAAYU,iBAAiB1K,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYU,iBAAiB3K,GACjC,GAAsD,MAAlDiK,EAAYU,iBAAiB3K,GAAG,eAElCwK,GADIA,EAAoBP,EAAYU,iBAAiB3K,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuN,iBAAiB3K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYU,iBAAiB3K,UAG1F5C,KAAKuN,iBAAiB3K,GAAK,IAAI4K,GAA0BX,EAAYU,iBAAiB3K,SAG1F5C,KAAKuN,iBAAiB3K,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6BnoC,GAKtC,MAAM+L,GAkBbovB,YAAYiN,GAEV,GAAiC,OADnCA,EAAcA,GAAe,IACX8vB,cACZ38B,KAAK28B,mBAAgBl7B,OAClB,GAAgD,MAA5CoL,EAAY8vB,cAAc,eACjC38B,KAAK28B,cAAgB,IAAIC,GAAmC/vB,EAAY8vB,mBACrE,CAEHvvB,GADIA,EAAoBP,EAAY8vB,cAAc,gBAC5BtvB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK28B,cAAgB,IAAI/vB,EAAiBQ,GAAWP,EAAY8vB,gBAwBzE,GAnBI38B,KAAK68B,YACDhwB,EAAYgwB,YAEhB78B,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAK08B,UACyB,MAAzB7vB,EAAY6vB,UAAqBj2B,SAASoG,EAAY6vB,UAAW,SAAMj7B,EAEhFzB,KAAKuN,sBAAmB9L,EACpBoL,EAAYU,iBAAkB,CAClCvN,KAAKuN,iBAAmB,GACxB,IAAK,IAAI3K,EAAI,EAAGA,EAAIiK,EAAYU,iBAAiB1K,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYU,iBAAiB3K,GACjC,GAAsD,MAAlDiK,EAAYU,iBAAiB3K,GAAG,eAElCwK,GADIA,EAAoBP,EAAYU,iBAAiB3K,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuN,iBAAiB3K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYU,iBAAiB3K,UAG1F5C,KAAKuN,iBAAiB3K,GAAK,IAAI4K,GAA0BX,EAAYU,iBAAiB3K,SAG1F5C,KAAKuN,iBAAiB3K,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4Bp8B,GAKrC,MAAMssD,GAYbl9B,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE9C,MAA9BoL,EAAYkwB,eACZ/8B,KAAK+8B,oBAAiBt7B,OACnB,GAAiD,MAA7CoL,EAAYkwB,eAAe,eAClC/8B,KAAK+8B,eAAiB,IAAIloD,EAAoBg4B,EAAYkwB,oBACvD,CAEH3vB,GADIA,EAAoBP,EAAYkwB,eAAe,gBAC7B1vB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+8B,eAAiB,IAAInwB,EAAiBQ,GAAWP,EAAYkwB,iBAM1E,GADA/8B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4BAAkCkwB,GAK3C,MAAMhwD,GAab8yB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKg9B,kBACiC,MAAjCnwB,EAAYmwB,kBAA6Bv2B,SAASoG,EAAYmwB,kBAAmB,SAAMv7B,EAE5FzB,KAAKi9B,cACDpwB,EAAYowB,cAEpBj9B,KAAKk9B,uCAAoCz7B,EACrCoL,EAAYqwB,kCAAmC,CACnDl9B,KAAKk9B,kCAAoC,GACzC,IAAK,IAAIt6B,EAAI,EAAGA,EAAIiK,EAAYqwB,kCAAkCr6B,OAAQD,IAAK,CAC/E,GAAwD,MAApDiK,EAAYqwB,kCAAkCt6B,GAClD,GAAuE,MAAnEiK,EAAYqwB,kCAAkCt6B,GAAG,eAEnDwK,GADIA,EAAoBP,EAAYqwB,kCAAkCt6B,GAAG,gBACnDyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk9B,kCAAkCt6B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqwB,kCAAkCt6B,UAG5H5C,KAAKk9B,kCAAkCt6B,GAAK,IAAIk6B,GAA4BjwB,EAAYqwB,kCAAkCt6B,SAG9H5C,KAAKk9B,kCAAkCt6B,QAAKnB,GAM5C,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,2BAAiC9/B,GAK1C,MAAM9E,GAcb43B,YAAYiN,GAWV,GAVFA,EAAcA,GAAe,GACvB7M,KAAKm9B,WACDtwB,EAAYswB,WAEhBn9B,KAAKo9B,YACDvwB,EAAYuwB,YAEhBp9B,KAAKq9B,aACDxwB,EAAYwwB,aAEW,MAA3BxwB,EAAYywB,YACZt9B,KAAKs9B,iBAAc77B,OAChB,GAA8C,MAA1CoL,EAAYywB,YAAY,eAC/Bt9B,KAAKs9B,YAAc,IAAIC,GAA6B1wB,EAAYywB,iBAC7D,CAEHlwB,GADIA,EAAoBP,EAAYywB,YAAY,gBAC1BjwB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs9B,YAAc,IAAI1wB,EAAiBQ,GAAWP,EAAYywB,cAMvE,GADAt9B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+B5kC,GAKxC,MAAMw1D,GAWb59B,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKy9B,cAAWh8B,EACZoL,EAAY4wB,SAAU,CAC1Bz9B,KAAKy9B,SAAW,GAChB,IAAK,IAAI76B,EAAI,EAAGA,EAAIiK,EAAY4wB,SAAS56B,OAAQD,IACjD,GAA+B,MAA3BiK,EAAY4wB,SAAS76B,GACzB,GAA8C,MAA1CiK,EAAY4wB,SAAS76B,GAAG,eAAwB,CAClD,IAAIwK,EAAoBP,EAAY4wB,SAAS76B,GAAG,eAChDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy9B,SAAS76B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4wB,SAAS76B,UAG1E5C,KAAKy9B,SAAS76B,GAAK,IAAI86B,GAAoC7wB,EAAY4wB,SAAS76B,SAGpF5C,KAAKy9B,SAAS76B,QAAKnB,EAKfzB,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,mCAAyC4wB,GAKlD,MAAME,GAYb99B,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK49B,WACD/wB,EAAY+wB,WAEW,MAA3B/wB,EAAYywB,YACZt9B,KAAKs9B,iBAAc77B,OAChB,GAA8C,MAA1CoL,EAAYywB,YAAY,eAC/Bt9B,KAAKs9B,YAAc,IAAIC,GAA6B1wB,EAAYywB,iBAC7D,CAEHlwB,GADIA,EAAoBP,EAAYywB,YAAY,gBAC1BjwB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs9B,YAAc,IAAI1wB,EAAiBQ,GAAWP,EAAYywB,cAMvE,GADAt9B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oCAA0C8wB,GAKnD,MAAMH,WACH7S,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,0EAIxB4M,EAAgB,6BAAmC2wB,GAK5C,MAAMlnE,GA2BbupC,YAAYiN,GAkDV,GAjDFA,EAAcA,GAAe,GACvB7M,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKua,YAC2B,MAA3B1N,EAAY0N,YAAuBrN,WAAWL,EAAY0N,kBAAe9Y,EAE9EzB,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE9EzB,KAAK6b,gBAAapa,EACdoL,EAAYgP,WAAY,CAC5B7b,KAAK6b,WAAa,GAClB,IAAK,IAAIjZ,EAAI,EAAGA,EAAIiK,EAAYgP,WAAWhZ,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYgP,WAAWjZ,GAC3B,GAAgD,MAA5CiK,EAAYgP,WAAWjZ,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYgP,WAAWjZ,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6b,WAAWjZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgP,WAAWjZ,UAG9E5C,KAAK6b,WAAWjZ,GAAK,IAAItmB,GAAeuwB,EAAYgP,WAAWjZ,SAGnE5C,KAAK6b,WAAWjZ,QAAKnB,GAMrB,GADAzB,KAAKsZ,eAAY7X,EACboL,EAAYyM,UAAW,CAC3BtZ,KAAKsZ,UAAY,GACjB,IAAS1W,EAAI,EAAGA,EAAIiK,EAAYyM,UAAUzW,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAYyM,UAAU1W,GAC1B,GAA+C,MAA3CiK,EAAYyM,UAAU1W,GAAG,eAE3BwK,GADIA,EAAoBP,EAAYyM,UAAU1W,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsZ,UAAU1W,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyM,UAAU1W,UAG5E5C,KAAKsZ,UAAU1W,GAAK,IAAI2W,GAAc1M,EAAYyM,UAAU1W,SAGhE5C,KAAKsZ,UAAU1W,QAAKnB,GAMpB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0Bv2C,GAKnC,MAAMkjD,GAwBb3Z,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK69B,WACDhxB,EAAYgxB,WAEe,MAA/BhxB,EAAYixB,gBACZ99B,KAAK89B,qBAAkBr8B,OACpB,GAAkD,MAA9CoL,EAAYixB,gBAAgB,eACnC99B,KAAK89B,gBAAkB,IAAI/rB,EAAalF,EAAYixB,qBACjD,CAEH1wB,GADIA,EAAoBP,EAAYixB,gBAAgB,gBAC9BzwB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK89B,gBAAkB,IAAIlxB,EAAiBQ,GAAWP,EAAYixB,kBAwB3E,GAnBI99B,KAAKmnB,SACAta,EAAYsa,oBAAoBlgB,KAAQ4F,EAAYsa,SAC1B,MAAxBta,EAAYsa,UAAoB7Y,EAAAA,EAAAA,IAAiCzB,EAAYsa,SAAU,sBAAsB,QAAS1lB,EAE7HzB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAK+9B,gBACDlxB,EAAYkxB,gBAEhB/9B,KAAKg+B,WACDnxB,EAAYmxB,WAEhBh+B,KAAKi+B,eACDpxB,EAAYoxB,eAEhBj+B,KAAKk+B,YACDrxB,EAAYqxB,YAEyB,MAAzCrxB,EAAYsxB,0BACZn+B,KAAKm+B,+BAA4B18B,OAC9B,GAA4D,MAAxDoL,EAAYsxB,0BAA0B,eAC7Cn+B,KAAKm+B,0BAA4B,IAAIC,GAAkBvxB,EAAYsxB,+BAChE,CAEH/wB,GADIA,EAAoBP,EAAYsxB,0BAA0B,gBACxC9wB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm+B,0BAA4B,IAAIvxB,EAAiBQ,GAAWP,EAAYsxB,4BAerF,GAVIn+B,KAAKq+B,UACDxxB,EAAYwxB,UAEhBr+B,KAAKs+B,YACDzxB,EAAYyxB,YAEhBt+B,KAAKu+B,eAC8B,MAA9B1xB,EAAY0xB,eAA0BrxB,WAAWL,EAAY0xB,qBAAkB98B,EAExFzB,KAAKw+B,mBAAgB/8B,EACjBoL,EAAY2xB,cAAe,CAC/Bx+B,KAAKw+B,cAAgB,GACrB,IAAK,IAAI57B,EAAI,EAAGA,EAAIiK,EAAY2xB,cAAc37B,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY2xB,cAAc57B,GAC9B,GAAmD,MAA/CiK,EAAY2xB,cAAc57B,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY2xB,cAAc57B,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw+B,cAAc57B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2xB,cAAc57B,UAGpF5C,KAAKw+B,cAAc57B,GAAK,IAAI67B,GAAkB5xB,EAAY2xB,cAAc57B,SAG5E5C,KAAKw+B,cAAc57B,QAAKnB,GAMxB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,cAAoB2M,GAK7B,MAAMklB,GAiBb7+B,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK0+B,eACD7xB,EAAY6xB,eAEhB1+B,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAK4+B,gBAC+B,MAA/B/xB,EAAY+xB,gBAA2B1xB,WAAWL,EAAY+xB,sBAAmBn9B,EAEtFzB,KAAK6+B,kBACiC,MAAjChyB,EAAYgyB,kBAA6B3xB,WAAWL,EAAYgyB,wBAAqBp9B,EAE1FzB,KAAK8+B,kBACiC,MAAjCjyB,EAAYiyB,kBAA6B5xB,WAAWL,EAAYiyB,wBAAqBr9B,EAE9FzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwB6xB,GAKjC,MAAM5xC,GAwCb+S,YAAYiN,GAiGV,GAhGFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKqT,iBACDxG,EAAYwG,iBAEhBrT,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAK8b,QACDjP,EAAYiP,QAEhB9b,KAAK+b,gBACDlP,EAAYkP,gBAEhB/b,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKua,YAC2B,MAA3B1N,EAAY0N,YAAuBrN,WAAWL,EAAY0N,kBAAe9Y,EAE9EzB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKgQ,qBACDnD,EAAYmD,qBAEhBhQ,KAAK63B,uBACDhrB,EAAYgrB,uBAEhB73B,KAAKqO,cACAxB,EAAYwB,yBAAyBpH,KAAQ4F,EAAYwB,cAC1B,MAA7BxB,EAAYwB,eAAyBC,EAAAA,EAAAA,IAAiCzB,EAAYwB,cAAe,sBAAsB,QAAS5M,EAEvIzB,KAAKyc,mBACA5P,EAAY4P,8BAA8BxV,KAAQ4F,EAAY4P,mBAC1B,MAAlC5P,EAAY4P,oBAA8BnO,EAAAA,EAAAA,IAAiCzB,EAAY4P,mBAAoB,sBAAsB,QAAShb,EAEjJzB,KAAK0c,gBAC+B,MAA/B7P,EAAY6P,gBAA2BxP,WAAWL,EAAY6P,sBAAmBjb,EAEtFzB,KAAK2c,mBACA9P,EAAY8P,8BAA8B1V,KAAQ4F,EAAY8P,mBAC1B,MAAlC9P,EAAY8P,oBAA8BrO,EAAAA,EAAAA,IAAiCzB,EAAY8P,mBAAoB,sBAAsB,QAASlb,EAEjJzB,KAAK4c,uBACD/P,EAAY+P,uBAEhB5c,KAAK6c,oBACmC,MAAnChQ,EAAYgQ,oBAA+B3P,WAAWL,EAAYgQ,0BAAuBpb,EAE9FzB,KAAK8c,iBACDjQ,EAAYiQ,iBAEhB9c,KAAK++B,SACDlyB,EAAYkyB,SAEhB/+B,KAAKg/B,OACDnyB,EAAYmyB,OAEhBh/B,KAAKi/B,oBACDpyB,EAAYoyB,oBAEhBj/B,KAAKk/B,kBACDryB,EAAYqyB,kBAEhBl/B,KAAKm/B,YACDtyB,EAAYsyB,YAEhBn/B,KAAKo/B,kCACDvyB,EAAYuyB,kCAEhBp/B,KAAKq/B,uCACDxyB,EAAYwyB,uCAEhBr/B,KAAKs/B,UACDzyB,EAAYyyB,UAEpBt/B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuB/f,GAKhC,MAAMrN,WACHqN,GAcV+S,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKu8B,QACuB,MAAvB1vB,EAAY0vB,QAAmB91B,SAASoG,EAAY0vB,QAAS,SAAM96B,EAExEzB,KAAKu/B,iBACD1yB,EAAY0yB,iBAEhBv/B,KAAKw/B,qBACoC,MAApC3yB,EAAY2yB,qBAAgC/4B,SAASoG,EAAY2yB,qBAAsB,SAAM/9B,EAElGzB,KAAKy/B,2BAC0C,MAA1C5yB,EAAY4yB,2BAAsCh5B,SAASoG,EAAY4yB,2BAA4B,SAAMh+B,EAElHzB,KAAK,eAAiB,0EAIxB4M,EAAgB,6BAAmCptB,GAK5C,MAAMkgD,GAkBb9/B,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK2/B,2BAAwBl+B,EACzBoL,EAAY8yB,sBAAuB,CACvC3/B,KAAK2/B,sBAAwB,GAC7B,IAAK,IAAI/8B,EAAI,EAAGA,EAAIiK,EAAY8yB,sBAAsB98B,OAAQD,IAClB,MAAxCiK,EAAY8yB,sBAAsB/8B,GAClC5C,KAAK2/B,sBAAsB/8B,GACvBiK,EAAY8yB,sBAAsB/8B,GAE1C5C,KAAK2/B,sBAAsB/8B,QAAKnB,EAShC,GAJIzB,KAAK4/B,mCACD/yB,EAAY+yB,mCAEpB5/B,KAAK6/B,YAASp+B,EACVoL,EAAYgzB,OAAQ,CACxB7/B,KAAK6/B,OAAS,GACd,IAASj9B,EAAI,EAAGA,EAAIiK,EAAYgzB,OAAOh9B,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYgzB,OAAOj9B,GACvB,GAA4C,MAAxCiK,EAAYgzB,OAAOj9B,GAAG,eAExBwK,GADIA,EAAoBP,EAAYgzB,OAAOj9B,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6/B,OAAOj9B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgzB,OAAOj9B,UAGtE5C,KAAK6/B,OAAOj9B,GAAK,IAAIk9B,GAAcjzB,EAAYgzB,OAAOj9B,SAG1D5C,KAAK6/B,OAAOj9B,QAAKnB,GAKjB,GAAoC,MAAhCoL,EAAYkzB,iBACZ//B,KAAK+/B,sBAAmBt+B,OACrB,GAAmD,MAA/CoL,EAAYkzB,iBAAiB,eACpC//B,KAAK+/B,iBAAmB,IAAID,GAAcjzB,EAAYkzB,sBACnD,CAEH3yB,GADIA,EAAoBP,EAAYkzB,iBAAiB,gBAC/B1yB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+/B,iBAAmB,IAAInzB,EAAiBQ,GAAWP,EAAYkzB,mBAK5E,GAA+B,MAA3BlzB,EAAYmzB,YACZhgC,KAAKggC,iBAAcv+B,OAChB,GAA8C,MAA1CoL,EAAYmzB,YAAY,eAC/BhgC,KAAKggC,YAAc,IAAIF,GAAcjzB,EAAYmzB,iBAC9C,CACH,IAAI5yB,EACJA,GADIA,EAAoBP,EAAYmzB,YAAY,gBAC1B3yB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKggC,YAAc,IAAIpzB,EAAiBQ,GAAWP,EAAYmzB,cAKnEhgC,KAAKigC,WACDpzB,EAAYozB,WAEhBjgC,KAAKkgC,gBACDrzB,EAAYqzB,gBAEhBlgC,KAAKo/B,kCACDvyB,EAAYuyB,kCAEhBp/B,KAAKq/B,uCACDxyB,EAAYwyB,wCAItBzyB,EAAgB,8CAAoD8yB,GAK7D,MAAMrlC,GAYbuF,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKmgC,wBAAqB1+B,EACtBoL,EAAYszB,mBAAoB,CACpCngC,KAAKmgC,mBAAqB,GAC1B,IAAK,IAAIv9B,EAAI,EAAGA,EAAIiK,EAAYszB,mBAAmBt9B,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYszB,mBAAmBv9B,GACnC,GAAwD,MAApDiK,EAAYszB,mBAAmBv9B,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYszB,mBAAmBv9B,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmgC,mBAAmBv9B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYszB,mBAAmBv9B,UAG9F5C,KAAKmgC,mBAAmBv9B,GAAK,IAAIw9B,GAAgBvzB,EAAYszB,mBAAmBv9B,SAGpF5C,KAAKmgC,mBAAmBv9B,QAAKnB,GAS7B,GAJIzB,KAAKqgC,8BACDxzB,EAAYwzB,8BAEpBrgC,KAAKsgC,8BAA2B7+B,EAC5BoL,EAAYyzB,yBAA0B,CAC1CtgC,KAAKsgC,yBAA2B,GAChC,IAAS19B,EAAI,EAAGA,EAAIiK,EAAYyzB,yBAAyBz9B,OAAQD,IAAK,CAGpE,IAAIwK,EAFN,GAA+C,MAA3CP,EAAYyzB,yBAAyB19B,GACzC,GAA8D,MAA1DiK,EAAYyzB,yBAAyB19B,GAAG,eAE1CwK,GADIA,EAAoBP,EAAYyzB,yBAAyB19B,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsgC,yBAAyB19B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyzB,yBAAyB19B,UAG1G5C,KAAKsgC,yBAAyB19B,GAAK,IAAI29B,GAAmB1zB,EAAYyzB,yBAAyB19B,SAGnG5C,KAAKsgC,yBAAyB19B,QAAKnB,KAOrCmL,EAAgB,yBAA+BvS,GAKxC,MAAMzzB,GAkBbg5B,YAAYiN,GA4BV,GA3BFA,EAAcA,GAAe,GACvB7M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKwgC,WACD3zB,EAAY2zB,WAEhBxgC,KAAKk2B,OACDrpB,EAAYqpB,OAEhBl2B,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKqmB,MACDxZ,EAAYwZ,MAEpBrmB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgChmC,GAKzC,MAAM0rB,GAyBbsN,YAAYiN,GAWV,GAVFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKygC,kBACD5zB,EAAY4zB,kBAEW,MAA3B5zB,EAAY6zB,YACZ1gC,KAAK0gC,iBAAcj/B,OAChB,GAA8C,MAA1CoL,EAAY6zB,YAAY,eAC/B1gC,KAAK0gC,YAAc,IAAItV,EAAiCve,EAAY6zB,iBACjE,CAEHtzB,GADIA,EAAoBP,EAAY6zB,YAAY,gBAC1BrzB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0gC,YAAc,IAAI9zB,EAAiBQ,GAAWP,EAAY6zB,cAqBvE,GAhBI1gC,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAK2gC,SACD9zB,EAAY8zB,SAEhB3gC,KAAK4gC,YACD/zB,EAAY+zB,YAEhB5gC,KAAK6gC,aACDh0B,EAAYg0B,aAEhB7gC,KAAK8gC,cACDj0B,EAAYi0B,cAEpB9gC,KAAK+gC,wBAAqBt/B,EACtBoL,EAAYk0B,mBAAoB,CACpC/gC,KAAK+gC,mBAAqB,GAC1B,IAAK,IAAIn+B,EAAI,EAAGA,EAAIiK,EAAYk0B,mBAAmBl+B,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYk0B,mBAAmBn+B,GACnC,GAAwD,MAApDiK,EAAYk0B,mBAAmBn+B,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYk0B,mBAAmBn+B,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+gC,mBAAmBn+B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYk0B,mBAAmBn+B,UAG9F5C,KAAK+gC,mBAAmBn+B,GAAK,IAAIo+B,GAAiCn0B,EAAYk0B,mBAAmBn+B,SAGrG5C,KAAK+gC,mBAAmBn+B,QAAKnB,GAM7B,GADAzB,KAAKihC,wBAAqBx/B,EACtBoL,EAAYo0B,mBAAoB,CACpCjhC,KAAKihC,mBAAqB,GAC1B,IAASr+B,EAAI,EAAGA,EAAIiK,EAAYo0B,mBAAmBp+B,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYo0B,mBAAmBr+B,GACnC,GAAwD,MAApDiK,EAAYo0B,mBAAmBr+B,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYo0B,mBAAmBr+B,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKihC,mBAAmBr+B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYo0B,mBAAmBr+B,UAG9F5C,KAAKihC,mBAAmBr+B,GAAK,IAAIs+B,GAA0Br0B,EAAYo0B,mBAAmBr+B,SAG9F5C,KAAKihC,mBAAmBr+B,QAAKnB,GAK7B,GAAgC,MAA5BoL,EAAYs0B,aACZnhC,KAAKmhC,kBAAe1/B,OACjB,GAA+C,MAA3CoL,EAAYs0B,aAAa,eAChCnhC,KAAKmhC,aAAe,IAAI1E,GAA2B5vB,EAAYs0B,kBAC5D,CAEH/zB,GADIA,EAAoBP,EAAYs0B,aAAa,gBAC3B9zB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmhC,aAAe,IAAIv0B,EAAiBQ,GAAWP,EAAYs0B,eAKxE,GAA8B,MAA1Bt0B,EAAYu0B,WACZphC,KAAKohC,gBAAa3/B,OACf,GAA6C,MAAzCoL,EAAYu0B,WAAW,eAC9BphC,KAAKohC,WAAa,IAAI3E,GAA2B5vB,EAAYu0B,gBAC1D,CAEHh0B,GADIA,EAAoBP,EAAYu0B,WAAW,gBACzB/zB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKohC,WAAa,IAAIx0B,EAAiBQ,GAAWP,EAAYu0B,aAKtE,GAA8B,MAA1Bv0B,EAAYw0B,WACZrhC,KAAKqhC,gBAAa5/B,OACf,GAA6C,MAAzCoL,EAAYw0B,WAAW,eAC9BrhC,KAAKqhC,WAAa,IAAI5E,GAA2B5vB,EAAYw0B,gBAC1D,CAEHj0B,GADIA,EAAoBP,EAAYw0B,WAAW,gBACzBh0B,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqhC,WAAa,IAAIz0B,EAAiBQ,GAAWP,EAAYw0B,aAStE,GAJIrhC,KAAKiN,aAC4B,MAA5BJ,EAAYI,aAAwBC,WAAWL,EAAYI,mBAAgBxL,EAEpFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+Bta,GAKxC,MAAM0uC,GAebphC,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKg9B,kBACiC,MAAjCnwB,EAAYmwB,kBAA6Bv2B,SAASoG,EAAYmwB,kBAAmB,SAAMv7B,EAE5FzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKshC,aACDz0B,EAAYy0B,aAEhBthC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKuhC,SACD10B,EAAY00B,SAEpBvhC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iCAAuCo0B,GAKhD,MAAME,GAabthC,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKwhC,cACD30B,EAAY20B,cAEhBxhC,KAAKyhC,iBACD50B,EAAY40B,iBAEpBzhC,KAAK0hC,sCAAmCjgC,EACpCoL,EAAY60B,iCAAkC,CAClD1hC,KAAK0hC,iCAAmC,GACxC,IAAK,IAAI9+B,EAAI,EAAGA,EAAIiK,EAAY60B,iCAAiC7+B,OAAQD,IAAK,CAC9E,GAAuD,MAAnDiK,EAAY60B,iCAAiC9+B,GACjD,GAAsE,MAAlEiK,EAAY60B,iCAAiC9+B,GAAG,eAElDwK,GADIA,EAAoBP,EAAY60B,iCAAiC9+B,GAAG,gBAClDyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0hC,iCAAiC9+B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY60B,iCAAiC9+B,UAG1H5C,KAAK0hC,iCAAiC9+B,GAAK,IAAI++B,GAAqC90B,EAAY60B,iCAAiC9+B,SAGrI5C,KAAK0hC,iCAAiC9+B,QAAKnB,GAM3C,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0BAAgCs0B,GAKzC,MAAMS,GAYb/hC,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAK4hC,4BACD/0B,EAAY+0B,4BAEpB5hC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qCAA2C+0B,GAKpD,MAAME,GAWbjiC,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK8hC,yBACwC,MAAxCj1B,EAAYi1B,yBAAoCr7B,SAASoG,EAAYi1B,yBAA0B,SAAMrgC,EAE9GzB,KAAK+hC,eAAYtgC,EACboL,EAAYk1B,UAAW,CAC3B/hC,KAAK+hC,UAAY,GACjB,IAAK,IAAIn/B,EAAI,EAAGA,EAAIiK,EAAYk1B,UAAUl/B,OAAQD,IAClB,MAA5BiK,EAAYk1B,UAAUn/B,GACtB5C,KAAK+hC,UAAUn/B,GACXiK,EAAYk1B,UAAUn/B,GAE9B5C,KAAK+hC,UAAUn/B,QAAKnB,IAOtBmL,EAAgB,iCAAuCi1B,GAKhD,MAAMnvC,GAabkN,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEpB/M,KAAK+gC,wBAAqBt/B,EACtBoL,EAAYk0B,mBAAoB,CACpC/gC,KAAK+gC,mBAAqB,GAC1B,IAAK,IAAIn+B,EAAI,EAAGA,EAAIiK,EAAYk0B,mBAAmBl+B,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYk0B,mBAAmBn+B,GACnC,GAAwD,MAApDiK,EAAYk0B,mBAAmBn+B,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYk0B,mBAAmBn+B,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+gC,mBAAmBn+B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYk0B,mBAAmBn+B,UAG9F5C,KAAK+gC,mBAAmBn+B,GAAK,IAAIo/B,GAAsCn1B,EAAYk0B,mBAAmBn+B,SAG1G5C,KAAK+gC,mBAAmBn+B,QAAKnB,GAM7B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,8BAAoCla,GAK7C,MAAMsvC,GAebpiC,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKiiC,uBACsC,MAAtCp1B,EAAYo1B,uBAAkCx7B,SAASoG,EAAYo1B,uBAAwB,SAAMxgC,EAEtGzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKshC,aACDz0B,EAAYy0B,aAEhBthC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKuhC,SACD10B,EAAY00B,SAEpBvhC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sCAA4Co1B,GAKrD,MAAME,GAWbtiC,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKmiC,+BAA4B1gC,EAC7BoL,EAAYs1B,0BAA2B,CAC3CniC,KAAKmiC,0BAA4B,GACjC,IAAK,IAAIv/B,EAAI,EAAGA,EAAIiK,EAAYs1B,0BAA0Bt/B,OAAQD,IAClB,MAA5CiK,EAAYs1B,0BAA0Bv/B,GACtC5C,KAAKmiC,0BAA0Bv/B,GAC3B6D,SAASoG,EAAYs1B,0BAA0Bv/B,GAAI,IAE3D5C,KAAKmiC,0BAA0Bv/B,QAAKnB,EAMpC,GADAzB,KAAK+hC,eAAYtgC,EACboL,EAAYk1B,UAAW,CAC3B/hC,KAAK+hC,UAAY,GACjB,IAASn/B,EAAI,EAAGA,EAAIiK,EAAYk1B,UAAUl/B,OAAQD,IAClB,MAA5BiK,EAAYk1B,UAAUn/B,GACtB5C,KAAK+hC,UAAUn/B,GACXiK,EAAYk1B,UAAUn/B,GAE9B5C,KAAK+hC,UAAUn/B,QAAKnB,IAOtBmL,EAAgB,sCAA4Cs1B,GAKrD,MAAMx9C,GAcbkb,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKs8B,SACDzvB,EAAYyvB,SAEhBt8B,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKq8B,QACDxvB,EAAYwvB,QAEpBr8B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsBloB,GAK/B,MAAM0U,GAYbwG,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKoiC,oBACDv1B,EAAYu1B,oBAEhBpiC,KAAKqiC,kBACDx1B,EAAYw1B,kBAEpBriC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyBxT,GAKlC,MAAMy7B,GAoCbj1B,YAAYiN,GAmFV,GAlFFA,EAAcA,GAAe,GACvB7M,KAAK46B,eAC8B,MAA9B/tB,EAAY+tB,eAA0B1tB,WAAWL,EAAY+tB,qBAAkBn5B,EAEpFzB,KAAKsiC,QACDz1B,EAAYy1B,QAEhBtiC,KAAKuiC,UACD11B,EAAY01B,UAEhBviC,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKwiC,aAC4B,MAA5B31B,EAAY21B,aAAwBt1B,WAAWL,EAAY21B,mBAAgB/gC,EAEhFzB,KAAKyiC,gBAC+B,MAA/B51B,EAAY41B,gBAA2Bv1B,WAAWL,EAAY41B,sBAAmBhhC,EAEtFzB,KAAK0iC,oBACmC,MAAnC71B,EAAY61B,oBAA+Bx1B,WAAWL,EAAY61B,0BAAuBjhC,EAE9FzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAK2iC,qBACoC,MAApC91B,EAAY81B,qBAAgCz1B,WAAWL,EAAY81B,2BAAwBlhC,EAEhGzB,KAAK4iC,WAC0B,MAA1B/1B,EAAY+1B,WAAsB11B,WAAWL,EAAY+1B,iBAAcnhC,EAE5EzB,KAAK6iC,UACyB,MAAzBh2B,EAAYg2B,UAAqB31B,WAAWL,EAAYg2B,gBAAaphC,EAE1EzB,KAAK8iC,sBACDj2B,EAAYi2B,sBAEhB9iC,KAAK+iC,wBACDl2B,EAAYk2B,wBAEhB/iC,KAAKgjC,0BACDn2B,EAAYm2B,0BAEhBhjC,KAAKijC,0BACDp2B,EAAYo2B,0BAEhBjjC,KAAKkjC,yBACDr2B,EAAYq2B,yBAEhBljC,KAAKmjC,qBACDt2B,EAAYs2B,qBAEhBnjC,KAAKojC,eACDv2B,EAAYu2B,eAEhBpjC,KAAKyvB,aACD5iB,EAAY4iB,aAEhBzvB,KAAKqjC,sBACDx2B,EAAYw2B,sBAEhBrjC,KAAKsjC,oCACmD,MAAnDz2B,EAAYy2B,oCAA+Cp2B,WAAWL,EAAYy2B,0CAAuC7hC,EAE9HzB,KAAKujC,uBACD12B,EAAY02B,uBAEhBvjC,KAAKwjC,wBACuC,MAAvC32B,EAAY22B,wBAAmCt2B,WAAWL,EAAY22B,8BAA2B/hC,EAEtGzB,KAAKyjC,SACD52B,EAAY42B,SAEhBzjC,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE/HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBioB,GAKjC,MAAMvc,GAmCb1Y,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAK0jC,8BACD72B,EAAY62B,8BAEhB1jC,KAAK2jC,mBACD92B,EAAY82B,mBAEhB3jC,KAAK4jC,0BACyC,MAAzC/2B,EAAY+2B,0BAAqC12B,WAAWL,EAAY+2B,gCAA6BniC,EAE1GzB,KAAK6jC,0BACyC,MAAzCh3B,EAAYg3B,0BAAqC32B,WAAWL,EAAYg3B,gCAA6BpiC,EAE1GzB,KAAK8jC,wBACuC,MAAvCj3B,EAAYi3B,wBAAmC52B,WAAWL,EAAYi3B,8BAA2BriC,EAEtGzB,KAAK+jC,2BAC0C,MAA1Cl3B,EAAYk3B,2BAAsC72B,WAAWL,EAAYk3B,iCAA8BtiC,EAE5GzB,KAAKgkC,+BAC8C,MAA9Cn3B,EAAYm3B,+BAA0C92B,WAAWL,EAAYm3B,qCAAkCviC,EAEpHzB,KAAKikC,qBACoC,MAApCp3B,EAAYo3B,qBAAgC/2B,WAAWL,EAAYo3B,2BAAwBxiC,EAEhGzB,KAAKgS,QACDnF,EAAYmF,QAEpBhS,KAAKkkC,WAAQziC,EACToL,EAAYq3B,MAAO,CACvBlkC,KAAKkkC,MAAQ,GACb,IAAK,IAAIthC,EAAI,EAAGA,EAAIiK,EAAYq3B,MAAMrhC,OAAQD,IAClB,MAAxBiK,EAAYq3B,MAAMthC,GAClB5C,KAAKkkC,MAAMthC,GACPiK,EAAYq3B,MAAMthC,GAE1B5C,KAAKkkC,MAAMthC,QAAKnB,EAmDhB,GA9CIzB,KAAKmkC,oBACDt3B,EAAYs3B,oBAEhBnkC,KAAKokC,uBACDv3B,EAAYu3B,uBAEhBpkC,KAAKqkC,gBACDx3B,EAAYw3B,gBAEhBrkC,KAAKskC,2BACDz3B,EAAYy3B,2BAEhBtkC,KAAKukC,yBACD13B,EAAY03B,yBAEhBvkC,KAAKwkC,4BACD33B,EAAY23B,4BAEhBxkC,KAAKykC,wCACD53B,EAAY43B,wCAEhBzkC,KAAK0kC,0BACD73B,EAAY63B,0BAEhB1kC,KAAK2kC,yBACD93B,EAAY83B,yBAEhB3kC,KAAK4kC,iBACD/3B,EAAY+3B,iBAEhB5kC,KAAK6kC,oBACDh4B,EAAYg4B,oBAEhB7kC,KAAK8kC,iBACDj4B,EAAYi4B,iBAEhB9kC,KAAK+kC,oBACDl4B,EAAYk4B,oBAEhB/kC,KAAKglC,6BACDn4B,EAAYm4B,6BAEhBhlC,KAAKilC,uBACDp4B,EAAYo4B,uBAEpBjlC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+B0L,GAKxC,MAAM5K,GAWb9N,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAKqE,IACDwI,EAAYxI,IAEK,MAArBwI,EAAY8d,MACZ3qB,KAAK2qB,WAAQlpB,OACV,GAAwC,MAApCoL,EAAY8d,MAAM,eACzB3qB,KAAK2qB,MAAQ,IAAI8R,GAA2B5vB,EAAY8d,WACrD,CACH,IAAIvd,EAAoBP,EAAY8d,MAAM,eAC1Cvd,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2qB,MAAQ,IAAI/d,EAAiBQ,GAAWP,EAAY8d,UAOnE/d,EAAgB,sBAA4Bc,GAKrC,MAAM+uB,GAgBb78B,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKyuB,aACD5hB,EAAY4hB,aAEhBzuB,KAAKklC,UACyB,MAAzBr4B,EAAYq4B,UAAqBz+B,SAASoG,EAAYq4B,UAAW,SAAMzjC,EAE5EzB,KAAK0uB,oBACA7hB,EAAY6hB,+BAA+BznB,KAAQ4F,EAAY6hB,oBAC1B,MAAnC7hB,EAAY6hB,qBAA+BpgB,EAAAA,EAAAA,IAAiCzB,EAAY6hB,oBAAqB,sBAAsB,QAASjtB,EAEnJzB,KAAKmlC,aAC4B,MAA5Bt4B,EAAYs4B,aAAwBj4B,WAAWL,EAAYs4B,mBAAgB1jC,EAEhFzB,KAAK4uB,aACD/hB,EAAY+hB,aAEhB5uB,KAAKolC,UACyB,MAAzBv4B,EAAYu4B,UAAqB3+B,SAASoG,EAAYu4B,UAAW,SAAM3jC,EAE5EzB,KAAKqlC,YACDx4B,EAAYw4B,aAItBz4B,EAAgB,2BAAiC6vB,GAK1C,MAAMx4C,GAmBb2b,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKyqB,UACD5d,EAAY4d,UAEhBzqB,KAAKslC,SACDz4B,EAAYy4B,SAEhBtlC,KAAKulC,QACD14B,EAAY04B,QAEhBvlC,KAAKwlC,SACD34B,EAAY24B,SAEhBxlC,KAAKkd,WACDrQ,EAAYqQ,WAEpBld,KAAKylC,wBAAqBhkC,EACtBoL,EAAY44B,mBAAoB,CACpCzlC,KAAKylC,mBAAqB,GAC1B,IAAK,IAAI7iC,EAAI,EAAGA,EAAIiK,EAAY44B,mBAAmB5iC,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAY44B,mBAAmB7iC,GACnC,GAAwD,MAApDiK,EAAY44B,mBAAmB7iC,GAAG,eAEpCwK,GADIA,EAAoBP,EAAY44B,mBAAmB7iC,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKylC,mBAAmB7iC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY44B,mBAAmB7iC,UAG9F5C,KAAKylC,mBAAmB7iC,GAAK,IAAI8iC,GAA2B74B,EAAY44B,mBAAmB7iC,SAG/F5C,KAAKylC,mBAAmB7iC,QAAKnB,GAY7B,GAPIzB,KAAK2lC,gBACD94B,EAAY84B,gBAEhB3lC,KAAK4lC,kBACD/4B,EAAY+4B,kBAEpB5lC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6B3oB,GAKtC,MAAMa,GAab8a,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK8V,QACuB,MAAvBjJ,EAAYiJ,QAAmB5I,WAAWL,EAAYiJ,cAAWrU,EAEtEzB,KAAKuV,aACD1I,EAAY0I,aAEpBvV,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsB9nB,GAK/B,MAAMyX,GAiBbqD,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAK6lC,eACDh5B,EAAYg5B,eAEhB7lC,KAAK8lC,cAC6B,MAA7Bj5B,EAAYi5B,cAAyB54B,WAAWL,EAAYi5B,oBAAiBrkC,EAElFzB,KAAK+lC,cAC6B,MAA7Bl5B,EAAYk5B,cAAyB74B,WAAWL,EAAYk5B,oBAAiBtkC,EAElFzB,KAAKgmC,kBACDn5B,EAAYm5B,kBAEhBhmC,KAAKimC,kBACDp5B,EAAYo5B,kBAEhBjmC,KAAKkmC,iBACDr5B,EAAYq5B,iBAEpBlmC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,cAAoBrQ,GAK7B,MAAMrU,GAeb0X,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAK6lC,eACDh5B,EAAYg5B,eAEhB7lC,KAAKmmC,gBAC+B,MAA/Bt5B,EAAYs5B,gBAA2Bj5B,WAAWL,EAAYs5B,sBAAmB1kC,EAEtFzB,KAAKomC,uBACsC,MAAtCv5B,EAAYu5B,uBAAkCl5B,WAAWL,EAAYu5B,6BAA0B3kC,EAEpGzB,KAAK84B,aAC4B,MAA5BjsB,EAAYisB,aAAwB5rB,WAAWL,EAAYisB,mBAAgBr3B,EAEpFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0B1kB,GAKnC,MAAMm+C,GAYbzmC,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsmC,OACDz5B,EAAYy5B,QAItB15B,EAAgB,4BAAkCy5B,GAK3C,MAAMnsC,GAmBb0F,YAAYiN,GAuBV,GAtBFA,EAAcA,GAAe,GACvB7M,KAAKumC,cACD15B,EAAY05B,cAEhBvmC,KAAKwmC,gBACD35B,EAAY25B,gBAEhBxmC,KAAKymC,SACD55B,EAAY45B,SAEhBzmC,KAAK0mC,oCACD75B,EAAY65B,oCAEhB1mC,KAAK2mC,6CACD95B,EAAY85B,6CAEhB3mC,KAAK4mC,6CACD/5B,EAAY+5B,6CAEhB5mC,KAAK6mC,YACDh6B,EAAYg6B,YAES,MAAzBh6B,EAAYi6B,UACZ9mC,KAAK8mC,eAAYrlC,OACd,GAA4C,MAAxCoL,EAAYi6B,UAAU,eAC7B9mC,KAAK8mC,UAAY,IAAIT,GAA4Bx5B,EAAYi6B,eAC1D,CACH,IAAI15B,EAAoBP,EAAYi6B,UAAU,eAC9C15B,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8mC,UAAY,IAAIl6B,EAAiBQ,GAAWP,EAAYi6B,YAKjE9mC,KAAK+mC,aACDl6B,EAAYk6B,aAEhB/mC,KAAKgnC,cACDn6B,EAAYm6B,eAItBp6B,EAAgB,8BAAoC1S,GAK7C,MAAMY,GAmKb8E,YAAYiN,GAsUV,GArUFA,EAAcA,GAAe,GACvB7M,KAAKinC,6BACDp6B,EAAYo6B,6BAEhBjnC,KAAKknC,sBACDr6B,EAAYq6B,sBAEhBlnC,KAAKmnC,0BACDt6B,EAAYs6B,0BAEhBnnC,KAAKonC,kBACDv6B,EAAYu6B,kBAEhBpnC,KAAKqnC,yCACDx6B,EAAYw6B,yCAEhBrnC,KAAKsnC,aACDz6B,EAAYy6B,aAEhBtnC,KAAKunC,gBACD16B,EAAY06B,gBAEhBvnC,KAAKwnC,gBACD36B,EAAY26B,gBAEhBxnC,KAAKynC,kCACD56B,EAAY46B,kCAEhBznC,KAAK0nC,8BACD76B,EAAY66B,8BAEhB1nC,KAAK2nC,iBACD96B,EAAY86B,iBAEhB3nC,KAAK4nC,cACD/6B,EAAY+6B,cAEhB5nC,KAAK6nC,sBACDh7B,EAAYg7B,sBAEhB7nC,KAAK8nC,kBACDj7B,EAAYi7B,kBAEhB9nC,KAAK+nC,OACDl7B,EAAYk7B,OAEhB/nC,KAAKgoC,aAC4B,MAA5Bn7B,EAAYm7B,aAAwB96B,WAAWL,EAAYm7B,mBAAgBvmC,EAEhFzB,KAAKioC,gBAC+B,MAA/Bp7B,EAAYo7B,gBAA2B/6B,WAAWL,EAAYo7B,sBAAmBxmC,EAEtFzB,KAAKkoC,sBACDr7B,EAAYq7B,sBAEhBloC,KAAKmoC,qBACDt7B,EAAYs7B,qBAEhBnoC,KAAKooC,2BACDv7B,EAAYu7B,2BAEhBpoC,KAAKqoC,WACDx7B,EAAYw7B,WAEhBroC,KAAKsoC,gCACDz7B,EAAYy7B,gCAEhBtoC,KAAKuoC,cACD17B,EAAY07B,cAEhBvoC,KAAKwoC,6BACD37B,EAAY27B,6BAEhBxoC,KAAKyoC,2BACD57B,EAAY47B,2BAEhBzoC,KAAK0oC,yBACD77B,EAAY67B,yBAEhB1oC,KAAK2oC,4BACD97B,EAAY87B,4BAEhB3oC,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAK6oC,WACDh8B,EAAYg8B,WAEhB7oC,KAAK8oC,cACDj8B,EAAYi8B,cAEhB9oC,KAAK+oC,YACDl8B,EAAYk8B,YAEhB/oC,KAAKgpC,uBACDn8B,EAAYm8B,uBAEhBhpC,KAAKipC,iCACDp8B,EAAYo8B,iCAEhBjpC,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKkpC,qBACDr8B,EAAYq8B,qBAEhBlpC,KAAKmpC,kBACDt8B,EAAYs8B,kBAEhBnpC,KAAKopC,kCACDv8B,EAAYu8B,kCAEhBppC,KAAKqpC,eACDx8B,EAAYw8B,eAEhBrpC,KAAKspC,+BACDz8B,EAAYy8B,+BAEhBtpC,KAAKupC,mBACD18B,EAAY08B,mBAEhBvpC,KAAKwpC,uBACD38B,EAAY28B,uBAEhBxpC,KAAKypC,kBACD58B,EAAY48B,kBAEhBzpC,KAAK0pC,qBACD78B,EAAY68B,qBAEhB1pC,KAAK2pC,SACD98B,EAAY88B,SAEhB3pC,KAAK4pC,YACD/8B,EAAY+8B,YAEhB5pC,KAAK6pC,iCACDh9B,EAAYg9B,iCAEhB7pC,KAAK8pC,4BACDj9B,EAAYi9B,4BAEhB9pC,KAAK+pC,qBACDl9B,EAAYk9B,qBAEhB/pC,KAAKgqC,uBACDn9B,EAAYm9B,uBAEhBhqC,KAAKiqC,gBACDp9B,EAAYo9B,gBAEhBjqC,KAAKmY,YACDtL,EAAYsL,YAEhBnY,KAAKkqC,oBACDr9B,EAAYq9B,oBAEhBlqC,KAAKmqC,0BACDt9B,EAAYs9B,0BAEhBnqC,KAAKoqC,iBACDv9B,EAAYu9B,iBAEhBpqC,KAAKqqC,WACDx9B,EAAYw9B,WAEhBrqC,KAAKsqC,gBACDz9B,EAAYy9B,gBAEhBtqC,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKuqC,cACD19B,EAAY09B,cAEhBvqC,KAAKwqC,YACD39B,EAAY29B,YAEhBxqC,KAAKyqC,iBACgC,MAAhC59B,EAAY49B,iBAA4BhkC,SAASoG,EAAY49B,iBAAkB,SAAMhpC,EAE1FzB,KAAK0qC,6BACD79B,EAAY69B,6BAEhB1qC,KAAKyhB,oBACD5U,EAAY4U,oBAEhBzhB,KAAK2hB,uBACD9U,EAAY8U,uBAEhB3hB,KAAK2qC,2BACD99B,EAAY89B,2BAEhB3qC,KAAK4qC,oBACD/9B,EAAY+9B,oBAEhB5qC,KAAK6qC,qBACDh+B,EAAYg+B,qBAEhB7qC,KAAK8qC,qBACDj+B,EAAYi+B,qBAEhB9qC,KAAK+qC,WAC0B,MAA1Bl+B,EAAYk+B,WAAsBtkC,SAASoG,EAAYk+B,WAAY,SAAMtpC,EAE9EzB,KAAKgrC,cACDn+B,EAAYm+B,cAEhBhrC,KAAKirC,yBACDp+B,EAAYo+B,yBAEhBjrC,KAAKkrC,gBACDr+B,EAAYq+B,gBAEhBlrC,KAAKmrC,UACDt+B,EAAYs+B,UAEhBnrC,KAAKorC,oBACDv+B,EAAYu+B,oBAEhBprC,KAAKqrC,WACDx+B,EAAYw+B,WAEhBrrC,KAAKsrC,wBACDz+B,EAAYy+B,wBAEhBtrC,KAAKurC,qBACD1+B,EAAY0+B,qBAEhBvrC,KAAKwrC,WACD3+B,EAAY2+B,WAEhBxrC,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKyrC,kBACD5+B,EAAY4+B,kBAEhBzrC,KAAK0rC,cACD7+B,EAAY6+B,cAEhB1rC,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAK2rC,qBACD9+B,EAAY8+B,qBAEhB3rC,KAAK4rC,YACD/+B,EAAY++B,YAEhB5rC,KAAK6rC,YACDh/B,EAAYg/B,YAEhB7rC,KAAK8rC,MACDj/B,EAAYi/B,MAEhB9rC,KAAK+rC,WACDl/B,EAAYk/B,WAEhB/rC,KAAKgsC,gBACDn/B,EAAYm/B,gBAEhBhsC,KAAKisC,+BACDp/B,EAAYo/B,+BAEhBjsC,KAAKksC,uCACDr/B,EAAYq/B,uCAEhBlsC,KAAKmsC,0BACDt/B,EAAYs/B,0BAEhBnsC,KAAKosC,yBACwC,MAAxCv/B,EAAYu/B,yBAAoC3lC,SAASoG,EAAYu/B,yBAA0B,SAAM3qC,EAE1GzB,KAAKqsC,gCAC+C,MAA/Cx/B,EAAYw/B,gCAA2C5lC,SAASoG,EAAYw/B,gCAAiC,SAAM5qC,EAExHzB,KAAKssC,iCACgD,MAAhDz/B,EAAYy/B,iCAA4C7lC,SAASoG,EAAYy/B,iCAAkC,SAAM7qC,EAE1HzB,KAAKusC,wCACuD,MAAvD1/B,EAAY0/B,wCAAmD9lC,SAASoG,EAAY0/B,wCAAyC,SAAM9qC,EAExIzB,KAAKwsC,oBACmC,MAAnC3/B,EAAY2/B,oBAA+B/lC,SAASoG,EAAY2/B,oBAAqB,SAAM/qC,EAEhGzB,KAAKysC,yBACD5/B,EAAY4/B,yBAEhBzsC,KAAK0sC,uCACD7/B,EAAY6/B,uCAEhB1sC,KAAK2sC,4BACD9/B,EAAY8/B,4BAEhB3sC,KAAK4sC,iBACgC,MAAhC//B,EAAY+/B,iBAA4BnmC,SAASoG,EAAY+/B,iBAAkB,SAAMnrC,EAE1FzB,KAAK6sC,gCACDhgC,EAAYggC,gCAEhB7sC,KAAK8sC,iCACDjgC,EAAYigC,iCAEhB9sC,KAAK+sC,0BACDlgC,EAAYkgC,0BAEhB/sC,KAAKgtC,uBACDngC,EAAYmgC,uBAEhBhtC,KAAKitC,8CACDpgC,EAAYogC,8CAEhBjtC,KAAKktC,wDACDrgC,EAAYqgC,wDAEhBltC,KAAKmtC,cACDtgC,EAAYsgC,cAEsB,MAAtCtgC,EAAYugC,uBACZptC,KAAKotC,4BAAyB3rC,OAC3B,GAAyD,MAArDoL,EAAYugC,uBAAuB,eAC1CptC,KAAKotC,uBAAyB,IAAIC,GAA4BxgC,EAAYugC,4BACvE,CAEHhgC,GADIA,EAAoBP,EAAYugC,uBAAuB,gBACrC//B,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKotC,uBAAyB,IAAIxgC,EAAiBQ,GAAWP,EAAYugC,yBA0IlF,GArIIptC,KAAKstC,gBACDzgC,EAAYygC,gBAEhBttC,KAAKutC,kBACD1gC,EAAY0gC,kBAEhBvtC,KAAKwtC,oCACD3gC,EAAY2gC,oCAEhBxtC,KAAKytC,0BACD5gC,EAAY4gC,0BAEhBztC,KAAK0tC,mBACD7gC,EAAY6gC,mBAEhB1tC,KAAK2tC,8BACD9gC,EAAY8gC,8BAEhB3tC,KAAK4tC,6BACD/gC,EAAY+gC,6BAEhB5tC,KAAK6tC,+BACDhhC,EAAYghC,+BAEhB7tC,KAAK8tC,4BACDjhC,EAAYihC,4BAEhB9tC,KAAK+tC,kBACDlhC,EAAYkhC,kBAEhB/tC,KAAKguC,cAC6B,MAA7BnhC,EAAYmhC,cAAyBvnC,SAASoG,EAAYmhC,cAAe,SAAMvsC,EAEpFzB,KAAKiuC,YAC2B,MAA3BphC,EAAYohC,YAAuBxnC,SAASoG,EAAYohC,YAAa,SAAMxsC,EAEhFzB,KAAKkuC,4BACDrhC,EAAYqhC,4BAEhBluC,KAAKmuC,wBACDthC,EAAYshC,wBAEhBnuC,KAAKouC,oBACDvhC,EAAYuhC,oBAEhBpuC,KAAKquC,+BACDxhC,EAAYwhC,+BAEhBruC,KAAKsuC,0BACDzhC,EAAYyhC,0BAEhBtuC,KAAKuuC,uBACD1hC,EAAY0hC,uBAEhBvuC,KAAKwuC,uBACD3hC,EAAY2hC,uBAEhBxuC,KAAKyuC,uBACD5hC,EAAY4hC,uBAEhBzuC,KAAK0uC,uBACD7hC,EAAY6hC,uBAEhB1uC,KAAK2uC,oBACD9hC,EAAY8hC,oBAEhB3uC,KAAK4uC,0BACD/hC,EAAY+hC,0BAEhB5uC,KAAK6uC,4BACDhiC,EAAYgiC,4BAEhB7uC,KAAK8uC,0BACDjiC,EAAYiiC,0BAEhB9uC,KAAK+uC,wBACDliC,EAAYkiC,wBAEhB/uC,KAAKgvC,uBACDniC,EAAYmiC,uBAEhBhvC,KAAKivC,0BACDpiC,EAAYoiC,0BAEhBjvC,KAAKkvC,8BACDriC,EAAYqiC,8BAEhBlvC,KAAKmvC,0BACDtiC,EAAYsiC,0BAEhBnvC,KAAKovC,yBACDviC,EAAYuiC,yBAEhBpvC,KAAKqvC,yBACDxiC,EAAYwiC,yBAEhBrvC,KAAKsvC,mBACDziC,EAAYyiC,mBAEhBtvC,KAAKuvC,0BACyC,MAAzC1iC,EAAY0iC,0BAAqCriC,WAAWL,EAAY0iC,gCAA6B9tC,EAE1GzB,KAAKwvC,sCACD3iC,EAAY2iC,sCAEhBxvC,KAAKyvC,aACD5iC,EAAY4iC,aAEhBzvC,KAAK0vC,0BACD7iC,EAAY6iC,0BAEhB1vC,KAAK2vC,+BACD9iC,EAAY8iC,+BAEhB3vC,KAAK4vC,+BACD/iC,EAAY+iC,+BAEhB5vC,KAAK6vC,kCACDhjC,EAAYgjC,kCAEhB7vC,KAAK8vC,kCACDjjC,EAAYijC,kCAEhB9vC,KAAK+vC,2CACDljC,EAAYkjC,2CAEhB/vC,KAAKgwC,wBACDnjC,EAAYmjC,wBAEhBhwC,KAAKiwC,uBACDpjC,EAAYojC,uBAEpBjwC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+B9R,GAKxC,MAAMG,GA2Bb2E,YAAYiN,GAsDV,GArDFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK4rC,YACD/+B,EAAY++B,YAEhB5rC,KAAK6rC,YACDh/B,EAAYg/B,YAEhB7rC,KAAK8rC,MACDj/B,EAAYi/B,MAEhB9rC,KAAKkwC,oBACDrjC,EAAYqjC,oBAEhBlwC,KAAKmwC,qBACDtjC,EAAYsjC,qBAEhBnwC,KAAKowC,kBACDvjC,EAAYujC,kBAEhBpwC,KAAKqwC,qBACDxjC,EAAYwjC,qBAEhBrwC,KAAKswC,uBACDzjC,EAAYyjC,uBAEhBtwC,KAAKosC,yBACwC,MAAxCv/B,EAAYu/B,yBAAoC3lC,SAASoG,EAAYu/B,yBAA0B,SAAM3qC,EAE1GzB,KAAKuwC,gCAC+C,MAA/C1jC,EAAY0jC,gCAA2C9pC,SAASoG,EAAY0jC,gCAAiC,SAAM9uC,EAExHzB,KAAKwwC,iCACgD,MAAhD3jC,EAAY2jC,iCAA4C/pC,SAASoG,EAAY2jC,iCAAkC,SAAM/uC,EAE1HzB,KAAKywC,wCACuD,MAAvD5jC,EAAY4jC,wCAAmDhqC,SAASoG,EAAY4jC,wCAAyC,SAAMhvC,EAExIzB,KAAKwsC,oBACmC,MAAnC3/B,EAAY2/B,oBAA+B/lC,SAASoG,EAAY2/B,oBAAqB,SAAM/qC,EAEhGzB,KAAK0wC,mBACkC,MAAlC7jC,EAAY6jC,mBAA8BjqC,SAASoG,EAAY6jC,mBAAoB,SAAMjvC,EAE9FzB,KAAK2wC,6BACD9jC,EAAY8jC,6BAEpB3wC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB3R,GAKlC,MAAMrC,GAabgH,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK4wC,mBACD/jC,EAAY+jC,mBAEhB5wC,KAAKumC,cACD15B,EAAY05B,cAEhBvmC,KAAK6wC,UACDhkC,EAAYgkC,UAEpB7wC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sCAA4ChU,GAKrD,MAAMyF,GAyBbuB,YAAYiN,GAiDV,GAhDFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8wC,aACDjkC,EAAYikC,aAEhB9wC,KAAK+wC,SACDlkC,EAAYkkC,SAEhB/wC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKgxC,WACDnkC,EAAYmkC,WAEhBhxC,KAAKixC,iBACgC,MAAhCpkC,EAAYokC,iBAA4BxqC,SAASoG,EAAYokC,iBAAkB,SAAMxvC,EAE1FzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKkxC,YACDrkC,EAAYqkC,YAEhBlxC,KAAKinC,6BACDp6B,EAAYo6B,6BAEhBjnC,KAAK+kC,oBACDl4B,EAAYk4B,oBAEhB/kC,KAAKmxC,eACAtkC,EAAYskC,0BAA0BlqC,KAAQ4F,EAAYskC,eAC1B,MAA9BtkC,EAAYskC,gBAA0B7iC,EAAAA,EAAAA,IAAiCzB,EAAYskC,eAAgB,sBAAsB,QAAS1vC,EAEzIzB,KAAKoxC,sBACDvkC,EAAYukC,sBAEhBpxC,KAAKqxC,MACDxkC,EAAYwkC,MAEhBrxC,KAAKsxC,qBACDzkC,EAAYykC,qBAEpBtxC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,YAAkBvO,GAK3B,MAAMhW,GAsBbuX,YAAYiN,GAyCV,GAxCFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKsoB,QACDzb,EAAYyb,QAEhBtoB,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAKwxC,gBACD3kC,EAAY2kC,gBAEhBxxC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKyxC,WACD5kC,EAAY4kC,WAEhBzxC,KAAKujC,uBACD12B,EAAY02B,uBAEhBvjC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsiC,QACDz1B,EAAYy1B,QAEhBtiC,KAAK6wC,UACDhkC,EAAYgkC,UAEhB7wC,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE/HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBvkB,GAKjC,MAAMU,GAgBb6W,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKq8B,QACDxvB,EAAYwvB,QAEhBr8B,KAAKs8B,SACDzvB,EAAYyvB,SAEhBt8B,KAAK0xC,SACD7kC,EAAY6kC,SAEpB1xC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwB7jB,GAKjC,MAAMM,GAuFbuW,YAAYiN,GA8NV,GA7NFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK2xC,+BACD9kC,EAAY8kC,+BAEhB3xC,KAAK4xC,uBACD/kC,EAAY+kC,uBAEhB5xC,KAAK6xC,4BACDhlC,EAAYglC,4BAEhB7xC,KAAK8xC,wBACDjlC,EAAYilC,wBAEhB9xC,KAAK+xC,uBACDllC,EAAYklC,uBAEhB/xC,KAAKgyC,uBACDnlC,EAAYmlC,uBAEhBhyC,KAAKiyC,6BACDplC,EAAYolC,6BAEhBjyC,KAAKkyC,2BACDrlC,EAAYqlC,2BAEhBlyC,KAAKmyC,sBACDtlC,EAAYslC,sBAEhBnyC,KAAKoyC,6BACDvlC,EAAYulC,6BAEhBpyC,KAAKqyC,iCACDxlC,EAAYwlC,iCAEhBryC,KAAKsyC,qBACDzlC,EAAYylC,qBAEhBtyC,KAAKuyC,kBACD1lC,EAAY0lC,kBAEhBvyC,KAAKwyC,yBACD3lC,EAAY2lC,yBAEhBxyC,KAAKyyC,gCACD5lC,EAAY4lC,gCAEhBzyC,KAAK0yC,4BACD7lC,EAAY6lC,4BAEhB1yC,KAAK2yC,kCACiD,MAAjD9lC,EAAY8lC,kCAA6CzlC,WAAWL,EAAY8lC,wCAAqClxC,EAE1HzB,KAAK4yC,uBACD/lC,EAAY+lC,uBAEhB5yC,KAAK6yC,UACDhmC,EAAYgmC,UAEhB7yC,KAAK8yC,aACDjmC,EAAYimC,aAEhB9yC,KAAK+yC,iBACDlmC,EAAYkmC,iBAEhB/yC,KAAKgzC,wBACDnmC,EAAYmmC,wBAEhBhzC,KAAKizC,QACDpmC,EAAYomC,QAEhBjzC,KAAKkzC,eACDrmC,EAAYqmC,eAEhBlzC,KAAKmzC,cACDtmC,EAAYsmC,cAEhBnzC,KAAKozC,YACDvmC,EAAYumC,YAEhBpzC,KAAKqzC,cACDxmC,EAAYwmC,cAEhBrzC,KAAKszC,cACDzmC,EAAYymC,cAEhBtzC,KAAKuzC,UACD1mC,EAAY0mC,UAEhBvzC,KAAKwzC,YACD3mC,EAAY2mC,YAEhBxzC,KAAKyzC,aACD5mC,EAAY4mC,aAEhBzzC,KAAK0zC,aACD7mC,EAAY6mC,aAEhB1zC,KAAK2zC,+CACD9mC,EAAY8mC,+CAEhB3zC,KAAK4zC,6CACD/mC,EAAY+mC,6CAEhB5zC,KAAK6zC,wCACDhnC,EAAYgnC,wCAEhB7zC,KAAK8zC,sCACDjnC,EAAYinC,sCAEhB9zC,KAAK+zC,8BACDlnC,EAAYknC,8BAEhB/zC,KAAKg0C,4BACDnnC,EAAYmnC,4BAEhBh0C,KAAKi0C,gCACDpnC,EAAYonC,gCAEhBj0C,KAAKk0C,yBACDrnC,EAAYqnC,yBAEhBl0C,KAAKm0C,kBACDtnC,EAAYsnC,kBAEhBn0C,KAAKo0C,uBACDvnC,EAAYunC,uBAEhBp0C,KAAKq0C,yBACDxnC,EAAYwnC,yBAEhBr0C,KAAKs0C,kBACDznC,EAAYynC,kBAEhBt0C,KAAKu0C,mBACD1nC,EAAY0nC,mBAEhBv0C,KAAKw0C,qBACD3nC,EAAY2nC,qBAEhBx0C,KAAKy0C,cACD5nC,EAAY4nC,cAEhBz0C,KAAK00C,QACD7nC,EAAY6nC,QAEhB10C,KAAK20C,SACD9nC,EAAY8nC,SAEhB30C,KAAK40C,aACD/nC,EAAY+nC,aAEhB50C,KAAK60C,cACDhoC,EAAYgoC,cAEhB70C,KAAK80C,sBACDjoC,EAAYioC,sBAEhB90C,KAAK+0C,iBACDloC,EAAYkoC,iBAEhB/0C,KAAKg1C,WACDnoC,EAAYmoC,WAEhBh1C,KAAKi1C,YACDpoC,EAAYooC,YAEhBj1C,KAAKk1C,wBACDroC,EAAYqoC,wBAEhBl1C,KAAKm1C,mBACDtoC,EAAYsoC,mBAEhBn1C,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAKo1C,oBACDvoC,EAAYuoC,oBAEhBp1C,KAAKq1C,eACDxoC,EAAYwoC,eAEhBr1C,KAAKs1C,sBACDzoC,EAAYyoC,sBAEhBt1C,KAAKu1C,qBACD1oC,EAAY0oC,qBAEhBv1C,KAAKw1C,gBACD3oC,EAAY2oC,gBAEhBx1C,KAAKy1C,uBACD5oC,EAAY4oC,uBAEhBz1C,KAAK01C,wBACD7oC,EAAY6oC,wBAEhB11C,KAAK21C,sBACD9oC,EAAY8oC,sBAEhB31C,KAAK41C,gCACD/oC,EAAY+oC,gCAEhB51C,KAAK61C,2BACDhpC,EAAYgpC,2BAEhB71C,KAAK81C,qBACDjpC,EAAYipC,qBAEhB91C,KAAK+1C,sBACDlpC,EAAYkpC,sBAEhB/1C,KAAKg2C,kCACDnpC,EAAYmpC,kCAEhBh2C,KAAKi2C,yBACDppC,EAAYopC,yBAEpBj2C,KAAKk2C,cAAWz0C,EACZoL,EAAYqpC,SAAU,CAC1Bl2C,KAAKk2C,SAAW,GAChB,IAAK,IAAItzC,EAAI,EAAGA,EAAIiK,EAAYqpC,SAASrzC,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYqpC,SAAStzC,GACzB,GAA8C,MAA1CiK,EAAYqpC,SAAStzC,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYqpC,SAAStzC,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk2C,SAAStzC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqpC,SAAStzC,UAG1E5C,KAAKk2C,SAAStzC,GAAK,IAAIuzC,GAA4BtpC,EAAYqpC,SAAStzC,SAG5E5C,KAAKk2C,SAAStzC,QAAKnB,GAMnB,GADAzB,KAAKo2C,cAAW30C,EACZoL,EAAYupC,SAAU,CAC1Bp2C,KAAKo2C,SAAW,GAChB,IAASxzC,EAAI,EAAGA,EAAIiK,EAAYupC,SAASvzC,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYupC,SAASxzC,GACzB,GAA8C,MAA1CiK,EAAYupC,SAASxzC,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYupC,SAASxzC,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKo2C,SAASxzC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYupC,SAASxzC,UAG1E5C,KAAKo2C,SAASxzC,GAAK,IAAIyzC,GAA4BxpC,EAAYupC,SAASxzC,SAG5E5C,KAAKo2C,SAASxzC,QAAKnB,GAMnB,GADAzB,KAAKs2C,wCAAqC70C,EACtCoL,EAAYypC,mCAAoC,CACpDt2C,KAAKs2C,mCAAqC,GAC1C,IAAS1zC,EAAI,EAAGA,EAAIiK,EAAYypC,mCAAmCzzC,OAAQD,IAAK,CAChF,GAAyD,MAArDiK,EAAYypC,mCAAmC1zC,GACnD,GAAwE,MAApEiK,EAAYypC,mCAAmC1zC,GAAG,eAEpDwK,GADIA,EAAoBP,EAAYypC,mCAAmC1zC,GAAG,gBACpDyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs2C,mCAAmC1zC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYypC,mCAAmC1zC,UAG9H5C,KAAKs2C,mCAAmC1zC,GAAK,IAAI9M,GAAuC+W,EAAYypC,mCAAmC1zC,SAG3I5C,KAAKs2C,mCAAmC1zC,QAAKnB,GAM7C,GADAzB,KAAKu2C,iBAAc90C,EACfoL,EAAY0pC,YAAa,CAC7Bv2C,KAAKu2C,YAAc,GACnB,IAAS3zC,EAAI,EAAGA,EAAIiK,EAAY0pC,YAAY1zC,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAY0pC,YAAY3zC,GAC5B,GAAiD,MAA7CiK,EAAY0pC,YAAY3zC,GAAG,eAE7BwK,GADIA,EAAoBP,EAAY0pC,YAAY3zC,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu2C,YAAY3zC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0pC,YAAY3zC,UAGhF5C,KAAKu2C,YAAY3zC,GAAK,IAAI4zC,GAA+B3pC,EAAY0pC,YAAY3zC,SAGrF5C,KAAKu2C,YAAY3zC,QAAKnB,GAMtB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qBAA2BvjB,GAKpC,MAAM+R,GAWbwE,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKkd,WACDrQ,EAAYqQ,WAEpBld,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6BxR,GAKtC,MAAM48B,GAgCbp4B,YAAYiN,GAqEV,GApEFA,EAAcA,GAAe,GACvB7M,KAAKy2C,mBACD5pC,EAAY4pC,mBAEhBz2C,KAAK02C,WACD7pC,EAAY6pC,WAEhB12C,KAAK22C,KACD9pC,EAAY8pC,KAEhB32C,KAAK42C,OACD/pC,EAAY+pC,OAEhB52C,KAAK62C,OACDhqC,EAAYgqC,OAEhB72C,KAAK82C,OACDjqC,EAAYiqC,OAEhB92C,KAAK+2C,uBACDlqC,EAAYkqC,uBAEhB/2C,KAAKg3C,aACDnqC,EAAYmqC,aAEhBh3C,KAAKi3C,uBACDpqC,EAAYoqC,uBAEhBj3C,KAAKk3C,QACDrqC,EAAYqqC,QAEhBl3C,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAKm3C,QACDtqC,EAAYsqC,QAEhBn3C,KAAKo3C,MACDvqC,EAAYuqC,MAEhBp3C,KAAKq3C,SACDxqC,EAAYwqC,SAEhBr3C,KAAKs3C,SACDzqC,EAAYyqC,SAEhBt3C,KAAK8rB,KACDjf,EAAYif,KAEhB9rB,KAAKgsB,MACDnf,EAAYmf,MAEhBhsB,KAAKu3C,IACD1qC,EAAY0qC,IAEhBv3C,KAAKw3C,WACD3qC,EAAY2qC,WAEhBx3C,KAAKs5B,WACDzsB,EAAYysB,WAEhBt5B,KAAKy3C,gBACD5qC,EAAY4qC,gBAEhBz3C,KAAK03C,eACD7qC,EAAY6qC,eAEpB13C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBorB,GAKhC,MAAM2f,GAkBb/3C,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK43C,eACD/qC,EAAY+qC,eAEhB53C,KAAK63C,YACDhrC,EAAYgrC,YAEhB73C,KAAK83C,wBACDjrC,EAAYirC,wBAEhB93C,KAAK+3C,mBACDlrC,EAAYkrC,mBAEhB/3C,KAAKg4C,cAC6B,MAA7BnrC,EAAYmrC,cAAyB9qC,WAAWL,EAAYmrC,oBAAiBv2C,EAElFzB,KAAKi4C,mBACDprC,EAAYorC,mBAEhBj4C,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKmjB,OACDtW,EAAYsW,OAEhBnjB,KAAKk4C,uBACDrrC,EAAYqrC,wBAItBtrC,EAAgB,+BAAqC+qC,GAK9C,MAAMl4E,GAcbmgC,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKm4C,cACDtrC,EAAYsrC,cAEhBn4C,KAAKo4C,oBACDvrC,EAAYurC,oBAEhBp4C,KAAKq4C,cACDxrC,EAAYwrC,cAEhBr4C,KAAKs4C,kBACDzrC,EAAYyrC,kBAEhBt4C,KAAKu4C,mBACD1rC,EAAY0rC,oBAItB3rC,EAAgB,4BAAkCntC,GAK3C,MAAMM,GAgBb6/B,YAAYiN,GAEV,GAA8B,OADhCA,EAAcA,GAAe,IACX2rC,WACZx4C,KAAKw4C,gBAAa/2C,OACf,GAA6C,MAAzCoL,EAAY2rC,WAAW,eAC9Bx4C,KAAKw4C,WAAa,IAAIrgF,GAAgB00C,EAAY2rC,gBAC/C,CAEHprC,GADIA,EAAoBP,EAAY2rC,WAAW,gBACzBnrC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw4C,WAAa,IAAI5rC,EAAiBQ,GAAWP,EAAY2rC,aAKtE,GAAwC,MAApC3rC,EAAYorB,qBACZj4B,KAAKi4B,0BAAuBx2B,OACzB,GAAuD,MAAnDoL,EAAYorB,qBAAqB,eACxCj4B,KAAKi4B,qBAAuB,IAAIC,GAA0BrrB,EAAYorB,0BACnE,CAEH7qB,GADIA,EAAoBP,EAAYorB,qBAAqB,gBACnC5qB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi4B,qBAAuB,IAAIrrB,EAAiBQ,GAAWP,EAAYorB,uBAMhF,GADAj4B,KAAKy4C,sBAAmBh3C,EACpBoL,EAAY4rC,iBAAkB,CAClCz4C,KAAKy4C,iBAAmB,GACxB,IAAK,IAAI71C,EAAI,EAAGA,EAAIiK,EAAY4rC,iBAAiB51C,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAY4rC,iBAAiB71C,GACjC,GAAsD,MAAlDiK,EAAY4rC,iBAAiB71C,GAAG,eAElCwK,GADIA,EAAoBP,EAAY4rC,iBAAiB71C,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy4C,iBAAiB71C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4rC,iBAAiB71C,UAG1F5C,KAAKy4C,iBAAiB71C,GAAK,IAAI81C,GAAkB7rC,EAAY4rC,iBAAiB71C,SAGlF5C,KAAKy4C,iBAAiB71C,QAAKnB,GAW3B,GANIzB,KAAK24C,kBACD9rC,EAAY8rC,kBAEhB34C,KAAK44C,WACD/rC,EAAY+rC,WAEQ,MAAxB/rC,EAAYgsC,SACZ74C,KAAK64C,cAAWp3C,OACb,GAA2C,MAAvCoL,EAAYgsC,SAAS,eAC5B74C,KAAK64C,SAAW,IAAIC,GAAmCjsC,EAAYgsC,cAChE,CACH,IAAIzrC,EACJA,GADIA,EAAoBP,EAAYgsC,SAAS,gBACvBxrC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK64C,SAAW,IAAIjsC,EAAiBQ,GAAWP,EAAYgsC,WAKhE74C,KAAK0U,MACD7H,EAAY6H,OAItB9H,EAAgB,6BAAmC7sC,GAK5C,MAAMyxC,GA6Bb5R,YAAYiN,GA6DV,GA5DFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAK+4C,YACDlsC,EAAYksC,YAEhB/4C,KAAKg5C,kBACiC,MAAjCnsC,EAAYmsC,kBAA6B9rC,WAAWL,EAAYmsC,wBAAqBv3C,EAE1FzB,KAAKi5C,eACDpsC,EAAYosC,eAEhBj5C,KAAKk5C,WACDrsC,EAAYqsC,WAEhBl5C,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKm5C,cACDtsC,EAAYssC,cAEhBn5C,KAAKo5C,aACDvsC,EAAYusC,aAEhBp5C,KAAKq5C,aACDxsC,EAAYwsC,aAEhBr5C,KAAKgc,cACDnP,EAAYmP,cAEhBhc,KAAKs5C,gBACDzsC,EAAYysC,gBAEhBt5C,KAAKu5C,WACD1sC,EAAY0sC,WAEhBv5C,KAAKw5C,YACD3sC,EAAY2sC,YAEhBx5C,KAAKy5C,YACD5sC,EAAY4sC,YAEhBz5C,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAK05C,4BACD7sC,EAAY6sC,4BAEhB15C,KAAK25C,UACD9sC,EAAY8sC,UAEpB35C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0B4E,GAKnC,MAAMooC,GAkBbh6C,YAAYiN,GA2BV,GA1BFA,EAAcA,GAAe,GACvB7M,KAAK65C,YACDhtC,EAAYgtC,YAEhB75C,KAAK85C,cAC6B,MAA7BjtC,EAAYitC,cAAyB5sC,WAAWL,EAAYitC,oBAAiBr4C,EAElFzB,KAAKq5C,aACDxsC,EAAYwsC,aAEhBr5C,KAAK+5C,UACDltC,EAAYktC,UAEhB/5C,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKg6C,yBACDntC,EAAYmtC,yBAEhBh6C,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKi6C,eACDptC,EAAYotC,eAEpBj6C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyBgtC,GAKlC,MAAMj9E,GAqBbijC,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKk6C,OACDrtC,EAAYqtC,OAEhBl6C,KAAKm6C,KACDttC,EAAYstC,KAEhBn6C,KAAKo6C,OACDvtC,EAAYutC,OAEhBp6C,KAAKq6C,MACDxtC,EAAYwtC,MAEhBr6C,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKs6C,SACDztC,EAAYytC,SAEhBt6C,KAAKu6C,aACD1tC,EAAY0tC,aAEhBv6C,KAAKw6C,iBACD3tC,EAAY2tC,iBAEhBx6C,KAAKy6C,oBACD5tC,EAAY4tC,oBAEpBz6C,KAAKk2C,cAAWz0C,EACZoL,EAAYqpC,SAAU,CAC1Bl2C,KAAKk2C,SAAW,GAChB,IAAK,IAAItzC,EAAI,EAAGA,EAAIiK,EAAYqpC,SAASrzC,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYqpC,SAAStzC,GACzB,GAA8C,MAA1CiK,EAAYqpC,SAAStzC,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYqpC,SAAStzC,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk2C,SAAStzC,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqpC,SAAStzC,UAG1E5C,KAAKk2C,SAAStzC,GAAK,IAAI83C,GAAa7tC,EAAYqpC,SAAStzC,SAG7D5C,KAAKk2C,SAAStzC,QAAKnB,GAMnB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,aAAmBjwC,GAK5B,MAAMwjB,GAebyf,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKwhB,uBACD3U,EAAY2U,uBAEhBxhB,KAAK26C,cACD9tC,EAAY8tC,cAEhB36C,KAAKuT,4BACD1G,EAAY0G,4BAEhBvT,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK46C,KACD/tC,EAAY+tC,KAEpB56C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBzsB,GAKhC,MAAM7D,GAiLbsjB,YAAYiN,GAmFV,GAlFFA,EAAcA,GAAe,GACvB7M,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK66C,aACDhuC,EAAYguC,aAEhB76C,KAAKyS,gBACD5F,EAAY4F,gBAEhBzS,KAAKmzB,eACDtmB,EAAYsmB,eAEhBnzB,KAAKizB,0BACDpmB,EAAYomB,0BAEhBjzB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKsoB,QACDzb,EAAYyb,QAEhBtoB,KAAKy1B,qBACoC,MAApC5oB,EAAY4oB,qBAAgCvoB,WAAWL,EAAY4oB,2BAAwBh0B,EAEhGzB,KAAK01B,eACD7oB,EAAY6oB,eAEhB11B,KAAK8vB,qBACDjjB,EAAYijB,qBAEhB9vB,KAAK86C,gBAC+B,MAA/BjuC,EAAYiuC,gBAA2Br0C,SAASoG,EAAYiuC,gBAAiB,SAAMr5C,EAExFzB,KAAK+6C,UACyB,MAAzBluC,EAAYkuC,UAAqBt0C,SAASoG,EAAYkuC,UAAW,SAAMt5C,EAE5EzB,KAAKo0B,kBACDvnB,EAAYunB,kBAEhBp0B,KAAKq0B,cAC6B,MAA7BxnB,EAAYwnB,cAAyBnnB,WAAWL,EAAYwnB,oBAAiB5yB,EAElFzB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAKob,oBACmC,MAAnCvO,EAAYuO,oBAA+BlO,WAAWL,EAAYuO,0BAAuB3Z,EAE9FzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK6P,yBACwC,MAAxChD,EAAYgD,yBAAoC3C,WAAWL,EAAYgD,+BAA4BpO,EAExGzB,KAAKmS,SACwB,MAAxBtF,EAAYsF,SAAoBjF,WAAWL,EAAYsF,eAAY1Q,EAExEzB,KAAKsc,cAC6B,MAA7BzP,EAAYyP,cAAyBpP,WAAWL,EAAYyP,oBAAiB7a,EAElFzB,KAAKg7C,wBACuC,MAAvCnuC,EAAYmuC,wBAAmC9tC,WAAWL,EAAYmuC,8BAA2Bv5C,EAEtGzB,KAAK6a,aAC4B,MAA5BhO,EAAYgO,aAAwB3N,WAAWL,EAAYgO,mBAAgBpZ,EAEhFzB,KAAKi7C,iBACgC,MAAhCpuC,EAAYouC,iBAA4B/tC,WAAWL,EAAYouC,uBAAoBx5C,EAExFzB,KAAKmyB,6BAC4C,MAA5CtlB,EAAYslB,6BAAwCjlB,WAAWL,EAAYslB,mCAAgC1wB,EAEhHzB,KAAKoyB,yBACwC,MAAxCvlB,EAAYulB,yBAAoCllB,WAAWL,EAAYulB,+BAA4B3wB,EAEzE,MAA/BoL,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CAEH1E,GADIA,EAAoBP,EAAYiF,gBAAgB,gBAC9BzE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,kBA+G3E,GA1GI9R,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKoP,QACDvC,EAAYuC,QAEhBpP,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAKqyB,4BACAxlB,EAAYwlB,uCAAuCprB,KAAQ4F,EAAYwlB,4BAC1B,MAA3CxlB,EAAYwlB,6BAAuC/jB,EAAAA,EAAAA,IAAiCzB,EAAYwlB,4BAA6B,sBAAsB,QAAS5wB,EAEnKzB,KAAKsyB,0BACAzlB,EAAYylB,qCAAqCrrB,KAAQ4F,EAAYylB,0BAC1B,MAAzCzlB,EAAYylB,2BAAqChkB,EAAAA,EAAAA,IAAiCzB,EAAYylB,0BAA2B,sBAAsB,QAAS7wB,EAE/JzB,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAKk7C,gBACDruC,EAAYquC,gBAEhBl7C,KAAK61B,kBACDhpB,EAAYgpB,kBAEhB71B,KAAKm7C,kBACDtuC,EAAYsuC,kBAEhBn7C,KAAKo7C,aACDvuC,EAAYuuC,aAEhBp7C,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAK+vB,SACDljB,EAAYkjB,SAEhB/vB,KAAKq7C,cACDxuC,EAAYwuC,cAEhBr7C,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKs7C,eAC8B,MAA9BzuC,EAAYyuC,eAA0BpuC,WAAWL,EAAYyuC,qBAAkB75C,EAEpFzB,KAAKq1B,iBACgC,MAAhCxoB,EAAYwoB,iBAA4BnoB,WAAWL,EAAYwoB,uBAAoB5zB,EAExFzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAKy0B,YACD5nB,EAAY4nB,YAEhBz0B,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKwzB,iBACD3mB,EAAY2mB,iBAEhBxzB,KAAKu7C,mBACD1uC,EAAY0uC,mBAEhBv7C,KAAKkzB,eACDrmB,EAAYqmB,eAEhBlzB,KAAKozB,WACDvmB,EAAYumB,WAEhBpzB,KAAKqzB,qBACDxmB,EAAYwmB,qBAEhBrzB,KAAKszB,uBACDzmB,EAAYymB,uBAEhBtzB,KAAKuzB,kBACD1mB,EAAY0mB,kBAEhBvzB,KAAKs0B,cACDznB,EAAYynB,cAEhBt0B,KAAKu0B,UACD1nB,EAAY0nB,UAEhBv0B,KAAKw0B,cAC6B,MAA7B3nB,EAAY2nB,cAAyBtnB,WAAWL,EAAY2nB,oBAAiB/yB,EAElFzB,KAAKw7C,iBACD3uC,EAAY2uC,iBAEhBx7C,KAAK21B,iBACD9oB,EAAY8oB,iBAEhB31B,KAAK41B,gBACD/oB,EAAY+oB,gBAEhB51B,KAAKgzB,SACDnmB,EAAYmmB,SAEhBhzB,KAAKy7C,cACD5uC,EAAY4uC,cAEpBz7C,KAAKgP,iBAAcvN,EACfoL,EAAYmC,YAAa,CAC7BhP,KAAKgP,YAAc,GACnB,IAAK,IAAIpM,EAAI,EAAGA,EAAIiK,EAAYmC,YAAYnM,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYmC,YAAYpM,GAC5B,GAAiD,MAA7CiK,EAAYmC,YAAYpM,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYmC,YAAYpM,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgP,YAAYpM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmC,YAAYpM,UAGhF5C,KAAKgP,YAAYpM,GAAK,IAAIqM,GAAgBpC,EAAYmC,YAAYpM,SAGtE5C,KAAKgP,YAAYpM,QAAKnB,GAqItB,GAhIIzB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAK07C,eAC8B,MAA9B7uC,EAAY6uC,eAA0BxuC,WAAWL,EAAY6uC,qBAAkBj6C,EAEpFzB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAElFzB,KAAKuyB,eACD1lB,EAAY0lB,eAEhBvyB,KAAKwyB,yBACD3lB,EAAY2lB,yBAEhBxyB,KAAKyyB,mBACD5lB,EAAY4lB,mBAEhBzyB,KAAK0yB,sBACqC,MAArC7lB,EAAY6lB,sBAAiCxlB,WAAWL,EAAY6lB,4BAAyBjxB,EAElGzB,KAAK2yB,wBACD9lB,EAAY8lB,wBAEhB3yB,KAAK6yB,oBACDhmB,EAAYgmB,oBAEhB7yB,KAAK8yB,iBACgC,MAAhCjmB,EAAYimB,iBAA4B5lB,WAAWL,EAAYimB,uBAAoBrxB,EAExFzB,KAAK+yB,oBACDlmB,EAAYkmB,oBAEhB/yB,KAAK27C,YACD9uC,EAAY8uC,YAEhB37C,KAAK47C,iBACD/uC,EAAY+uC,iBAEhB57C,KAAK67C,gBAC+B,MAA/BhvC,EAAYgvC,gBAA2Bp1C,SAASoG,EAAYgvC,gBAAiB,SAAMp6C,EAExFzB,KAAKg0B,mBACDnnB,EAAYmnB,mBAEhBh0B,KAAK87C,UACAjvC,EAAYivC,qBAAqB70C,KAAQ4F,EAAYivC,UAC1B,MAAzBjvC,EAAYivC,WAAqBxtC,EAAAA,EAAAA,IAAiCzB,EAAYivC,UAAW,sBAAsB,QAASr6C,EAE/HzB,KAAK8zB,iBACgC,MAAhCjnB,EAAYinB,iBAA4B5mB,WAAWL,EAAYinB,uBAAoBryB,EAExFzB,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK+zB,iBACgC,MAAhClnB,EAAYknB,iBAA4B7mB,WAAWL,EAAYknB,uBAAoBtyB,EAExFzB,KAAK+7C,cAC6B,MAA7BlvC,EAAYkvC,cAAyB7uC,WAAWL,EAAYkvC,oBAAiBt6C,EAElFzB,KAAKg8C,gBACDnvC,EAAYmvC,gBAEhBh8C,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAK8wB,QACDjkB,EAAYikB,QAEhB9wB,KAAK2P,yBACwC,MAAxC9C,EAAY8C,yBAAoCzC,WAAWL,EAAY8C,+BAA4BlO,EAExGzB,KAAKuuB,oBACD1hB,EAAY0hB,oBAEhBvuB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAE5EzB,KAAKi8C,+BACDpvC,EAAYovC,+BAEhBj8C,KAAKm0B,+BACDtnB,EAAYsnB,+BAEhBn0B,KAAK+a,sBACqC,MAArClO,EAAYkO,sBAAiC7N,WAAWL,EAAYkO,4BAAyBtZ,EAElGzB,KAAKk8C,0BACyC,MAAzCrvC,EAAYqvC,0BAAqChvC,WAAWL,EAAYqvC,gCAA6Bz6C,EAE1GzB,KAAKyb,qBACoC,MAApC5O,EAAY4O,qBAAgCvO,WAAWL,EAAY4O,2BAAwBha,EAEhGzB,KAAKm8C,yBACwC,MAAxCtvC,EAAYsvC,yBAAoCjvC,WAAWL,EAAYsvC,+BAA4B16C,EAExGzB,KAAK0c,gBAC+B,MAA/B7P,EAAY6P,gBAA2BxP,WAAWL,EAAY6P,sBAAmBjb,EAEtFzB,KAAKg1B,yBACDnoB,EAAYmoB,yBAEhBh1B,KAAK+V,QACDlJ,EAAYkJ,QAEhB/V,KAAKo8C,MACDvvC,EAAYuvC,MAEhBp8C,KAAKq8C,mBACAxvC,EAAYwvC,8BAA8Bp1C,KAAQ4F,EAAYwvC,mBAC1B,MAAlCxvC,EAAYwvC,oBAA8B/tC,EAAAA,EAAAA,IAAiCzB,EAAYwvC,mBAAoB,sBAAsB,QAAS56C,EAEjJzB,KAAKkyB,uBACsC,MAAtCrlB,EAAYqlB,uBAAkChlB,WAAWL,EAAYqlB,6BAA0BzwB,EAEpGzB,KAAKs8C,2BAC0C,MAA1CzvC,EAAYyvC,2BAAsCpvC,WAAWL,EAAYyvC,iCAA8B76C,EAE5GzB,KAAKu8C,mBACkC,MAAlC1vC,EAAY0vC,mBAA8BrvC,WAAWL,EAAY0vC,yBAAsB96C,EAE5FzB,KAAKw8C,aAC4B,MAA5B3vC,EAAY2vC,aAAwBtvC,WAAWL,EAAY2vC,mBAAgB/6C,EAEzC,MAAvCoL,EAAY4vC,wBACZz8C,KAAKy8C,6BAA0Bh7C,OAC5B,GAA0D,MAAtDoL,EAAY4vC,wBAAwB,eAC3Cz8C,KAAKy8C,wBAA0B,IAAIC,GAA6B7vC,EAAY4vC,6BACzE,CAEHrvC,GADIA,EAAoBP,EAAY4vC,wBAAwB,gBACtCpvC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy8C,wBAA0B,IAAI7vC,EAAiBQ,GAAWP,EAAY4vC,0BAMnF,GADAz8C,KAAK40B,mBAAgBnzB,EACjBoL,EAAY+nB,cAAe,CAC/B50B,KAAK40B,cAAgB,GACrB,IAAShyB,EAAI,EAAGA,EAAIiK,EAAY+nB,cAAc/xB,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY+nB,cAAchyB,GAC9B,GAAmD,MAA/CiK,EAAY+nB,cAAchyB,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY+nB,cAAchyB,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK40B,cAAchyB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+nB,cAAchyB,UAGpF5C,KAAK40B,cAAchyB,GAAK,IAAIiyB,GAAkBhoB,EAAY+nB,cAAchyB,SAG5E5C,KAAK40B,cAAchyB,QAAKnB,GAMxB,GADAzB,KAAK00B,gBAAajzB,EACdoL,EAAY6nB,WAAY,CAC5B10B,KAAK00B,WAAa,GAClB,IAAS9xB,EAAI,EAAGA,EAAIiK,EAAY6nB,WAAW7xB,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY6nB,WAAW9xB,GAC3B,GAAgD,MAA5CiK,EAAY6nB,WAAW9xB,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6nB,WAAW9xB,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK00B,WAAW9xB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6nB,WAAW9xB,UAG9E5C,KAAK00B,WAAW9xB,GAAK,IAAI+xB,GAAe9nB,EAAY6nB,WAAW9xB,SAGnE5C,KAAK00B,WAAW9xB,QAAKnB,GAMrB,GADAzB,KAAK28C,0BAAuBl7C,EACxBoL,EAAY8vC,qBAAsB,CACtC38C,KAAK28C,qBAAuB,GAC5B,IAAS/5C,EAAI,EAAGA,EAAIiK,EAAY8vC,qBAAqB95C,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAY8vC,qBAAqB/5C,GACrC,GAA0D,MAAtDiK,EAAY8vC,qBAAqB/5C,GAAG,eAEtCwK,GADIA,EAAoBP,EAAY8vC,qBAAqB/5C,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK28C,qBAAqB/5C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8vC,qBAAqB/5C,UAGlG5C,KAAK28C,qBAAqB/5C,GAAK,IAAI+xB,GAAe9nB,EAAY8vC,qBAAqB/5C,SAGvF5C,KAAK28C,qBAAqB/5C,QAAKnB,GAM/B,GADAzB,KAAK48C,mCAAgCn7C,EACjCoL,EAAY+vC,8BAA+B,CAC/C58C,KAAK48C,8BAAgC,GACrC,IAASh6C,EAAI,EAAGA,EAAIiK,EAAY+vC,8BAA8B/5C,OAAQD,IAAK,CAC3E,GAAoD,MAAhDiK,EAAY+vC,8BAA8Bh6C,GAC9C,GAAmE,MAA/DiK,EAAY+vC,8BAA8Bh6C,GAAG,eAE/CwK,GADIA,EAAoBP,EAAY+vC,8BAA8Bh6C,GAAG,gBAC/CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK48C,8BAA8Bh6C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+vC,8BAA8Bh6C,UAGpH5C,KAAK48C,8BAA8Bh6C,GAAK,IAAIiyB,GAAkBhoB,EAAY+vC,8BAA8Bh6C,SAG5G5C,KAAK48C,8BAA8Bh6C,QAAKnB,GAMxC,GADAzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAK1B,GAAyC,MAArCoL,EAAYgwC,sBACZ78C,KAAK68C,2BAAwBp7C,OAC1B,GAAwD,MAApDoL,EAAYgwC,sBAAsB,eACzC78C,KAAK68C,sBAAwB,IAAIC,GAAwBjwC,EAAYgwC,2BAClE,CAEHzvC,GADIA,EAAoBP,EAAYgwC,sBAAsB,gBACpCxvC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK68C,sBAAwB,IAAIjwC,EAAiBQ,GAAWP,EAAYgwC,wBASjF,GAJI78C,KAAK+8C,wBACDlwC,EAAYkwC,wBAEpB/8C,KAAK80B,8BAA2BrzB,EAC5BoL,EAAYioB,yBAA0B,CAC1C90B,KAAK80B,yBAA2B,GAChC,IAASlyB,EAAI,EAAGA,EAAIiK,EAAYioB,yBAAyBjyB,OAAQD,IAClB,MAA3CiK,EAAYioB,yBAAyBlyB,GACrC5C,KAAK80B,yBAAyBlyB,GAC1BiK,EAAYioB,yBAAyBlyB,GAE7C5C,KAAK80B,yBAAyBlyB,QAAKnB,EAgDnC,GA3CIzB,KAAKi1B,mBACDpoB,EAAYooB,mBAEhBj1B,KAAKg9C,6BACDnwC,EAAYmwC,6BAEhBh9C,KAAKi9C,WACDpwC,EAAYowC,WAEhBj9C,KAAKk9C,gCACDrwC,EAAYqwC,gCAEhBl9C,KAAKm9C,yBACDtwC,EAAYswC,yBAEhBn9C,KAAKo1B,WACDvoB,EAAYuoB,WAEhBp1B,KAAKo9C,yBACDvwC,EAAYuwC,yBAEhBp9C,KAAKwT,qBACD3G,EAAY2G,qBAEhBxT,KAAK+c,2CACDlQ,EAAYkQ,2CAEhB/c,KAAKgd,iCACDnQ,EAAYmQ,iCAEhBhd,KAAK0zB,qBACoC,MAApC7mB,EAAY6mB,qBAAgCxmB,WAAWL,EAAY6mB,2BAAwBjyB,EAEhGzB,KAAK2zB,iBACgC,MAAhC9mB,EAAY8mB,iBAA4BzmB,WAAWL,EAAY8mB,uBAAoBlyB,EAExFzB,KAAK4zB,eAC8B,MAA9B/mB,EAAY+mB,eAA0B1mB,WAAWL,EAAY+mB,qBAAkBnyB,EAEpFzB,KAAK6zB,eAC8B,MAA9BhnB,EAAYgnB,eAA0B3mB,WAAWL,EAAYgnB,qBAAkBpyB,EAExFzB,KAAKkO,qBAAkBzM,EACnBoL,EAAYqB,gBAAiB,CACjClO,KAAKkO,gBAAkB,GACvB,IAAStL,EAAI,EAAGA,EAAIiK,EAAYqB,gBAAgBrL,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYqB,gBAAgBtL,GAChC,GAAqD,MAAjDiK,EAAYqB,gBAAgBtL,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYqB,gBAAgBtL,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkO,gBAAgBtL,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqB,gBAAgBtL,UAGxF5C,KAAKkO,gBAAgBtL,GAAK,IAAIuL,EAAwBtB,EAAYqB,gBAAgBtL,SAGtF5C,KAAKkO,gBAAgBtL,QAAKnB,GAK1B,GAA0C,MAAtCoL,EAAY0oB,uBACZv1B,KAAKu1B,4BAAyB9zB,OAC3B,GAAyD,MAArDoL,EAAY0oB,uBAAuB,eAC1Cv1B,KAAKu1B,uBAAyB,IAAIC,GAA4B3oB,EAAY0oB,4BACvE,CAEHnoB,GADIA,EAAoBP,EAAY0oB,uBAAuB,gBACrCloB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu1B,uBAAyB,IAAI3oB,EAAiBQ,GAAWP,EAAY0oB,yBASlF,GAJIv1B,KAAKk1B,mBACkC,MAAlCroB,EAAYqoB,mBAA8BhoB,WAAWL,EAAYqoB,yBAAsBzzB,EAEhGzB,KAAKib,6BAA0BxZ,EAC3BoL,EAAYoO,wBAAyB,CACzCjb,KAAKib,wBAA0B,GAC/B,IAASrY,EAAI,EAAGA,EAAIiK,EAAYoO,wBAAwBpY,OAAQD,IAAK,CACrE,GAA8C,MAA1CiK,EAAYoO,wBAAwBrY,GACxC,GAA6D,MAAzDiK,EAAYoO,wBAAwBrY,GAAG,eAEzCwK,GADIA,EAAoBP,EAAYoO,wBAAwBrY,GAAG,gBACzCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKib,wBAAwBrY,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoO,wBAAwBrY,UAGxG5C,KAAKib,wBAAwBrY,GAAK,IAAIsY,GAA4BrO,EAAYoO,wBAAwBrY,SAG1G5C,KAAKib,wBAAwBrY,QAAKnB,GAMlC,GADAzB,KAAKq9C,mCAAgC57C,EACjCoL,EAAYwwC,8BAA+B,CAC/Cr9C,KAAKq9C,8BAAgC,GACrC,IAASz6C,EAAI,EAAGA,EAAIiK,EAAYwwC,8BAA8Bx6C,OAAQD,IAAK,CAC3E,GAAoD,MAAhDiK,EAAYwwC,8BAA8Bz6C,GAC9C,GAAmE,MAA/DiK,EAAYwwC,8BAA8Bz6C,GAAG,eAE/CwK,GADIA,EAAoBP,EAAYwwC,8BAA8Bz6C,GAAG,gBAC/CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq9C,8BAA8Bz6C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwwC,8BAA8Bz6C,UAGpH5C,KAAKq9C,8BAA8Bz6C,GAAK,IAAIsY,GAA4BrO,EAAYwwC,8BAA8Bz6C,SAGtH5C,KAAKq9C,8BAA8Bz6C,QAAKnB,GAKxC,GAAqC,MAAjCoL,EAAYywC,kBACZt9C,KAAKs9C,uBAAoB77C,OACtB,GAAoD,MAAhDoL,EAAYywC,kBAAkB,eACrCt9C,KAAKs9C,kBAAoB,IAAItyB,EAA2Bne,EAAYywC,uBACjE,CAEHlwC,GADIA,EAAoBP,EAAYywC,kBAAkB,gBAChCjwC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs9C,kBAAoB,IAAI1wC,EAAiBQ,GAAWP,EAAYywC,oBAW7E,GANIt9C,KAAKu9C,uBACD1wC,EAAY0wC,uBAEhBv9C,KAAK81B,wBACDjpB,EAAYipB,wBAEkB,MAAlCjpB,EAAY2wC,mBACZx9C,KAAKw9C,wBAAqB/7C,OACvB,GAAqD,MAAjDoL,EAAY2wC,mBAAmB,eACtCx9C,KAAKw9C,mBAAqB,IAAIC,GAAwB5wC,EAAY2wC,wBAC/D,CAEHpwC,GADIA,EAAoBP,EAAY2wC,mBAAmB,gBACjCnwC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw9C,mBAAqB,IAAI5wC,EAAiBQ,GAAWP,EAAY2wC,qBAuD9E,GAlDIx9C,KAAK09C,wBACA7wC,EAAY6wC,mCAAmCz2C,KAAQ4F,EAAY6wC,wBAC1B,MAAvC7wC,EAAY6wC,yBAAmCpvC,EAAAA,EAAAA,IAAiCzB,EAAY6wC,wBAAyB,sBAAsB,QAASj8C,EAE3JzB,KAAK29C,oBACmC,MAAnC9wC,EAAY8wC,oBAA+BzwC,WAAWL,EAAY8wC,0BAAuBl8C,EAE9FzB,KAAK+1B,2BAC0C,MAA1ClpB,EAAYkpB,2BAAsCtvB,SAASoG,EAAYkpB,2BAA4B,SAAMt0B,EAE9GzB,KAAK49C,wBACD/wC,EAAY+wC,wBAEhB59C,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAKiyB,eACDplB,EAAYolB,eAEhBjyB,KAAKw7B,gBACD3uB,EAAY2uB,gBAEhBx7B,KAAKy7B,wBACD5uB,EAAY4uB,wBAEhBz7B,KAAK07B,uBACD7uB,EAAY6uB,uBAEhB17B,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAK27B,wBACD9uB,EAAY8uB,wBAEhB37B,KAAKmb,UACyB,MAAzBtO,EAAYsO,UAAqBjO,WAAWL,EAAYsO,gBAAa1Z,EAE1EzB,KAAK47B,iBACgC,MAAhC/uB,EAAY+uB,iBAA4B1uB,WAAWL,EAAY+uB,uBAAoBn6B,EAExFzB,KAAKua,YAC2B,MAA3B1N,EAAY0N,YAAuBrN,WAAWL,EAAY0N,kBAAe9Y,EAElFzB,KAAKoc,cAAW3a,EACZoL,EAAYuP,SAAU,CAC1Bpc,KAAKoc,SAAW,GAChB,IAASxZ,EAAI,EAAGA,EAAIiK,EAAYuP,SAASvZ,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYuP,SAASxZ,GACzB,GAA8C,MAA1CiK,EAAYuP,SAASxZ,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYuP,SAASxZ,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKoc,SAASxZ,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuP,SAASxZ,UAG1E5C,KAAKoc,SAASxZ,GAAK,IAAIyZ,GAAaxP,EAAYuP,SAASxZ,SAG7D5C,KAAKoc,SAASxZ,QAAKnB,GAMnB,GADAzB,KAAK67B,iBAAcp6B,EACfoL,EAAYgvB,YAAa,CAC7B77B,KAAK67B,YAAc,GACnB,IAASj5B,EAAI,EAAGA,EAAIiK,EAAYgvB,YAAYh5B,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYgvB,YAAYj5B,GAC5B,GAAiD,MAA7CiK,EAAYgvB,YAAYj5B,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYgvB,YAAYj5B,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK67B,YAAYj5B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgvB,YAAYj5B,UAGhF5C,KAAK67B,YAAYj5B,GAAK,IAAIk5B,GAAgBjvB,EAAYgvB,YAAYj5B,SAGtE5C,KAAK67B,YAAYj5B,QAAKnB,GAmCtB,GA9BIzB,KAAK+7B,yBACwC,MAAxClvB,EAAYkvB,yBAAoC7uB,WAAWL,EAAYkvB,+BAA4Bt6B,EAExGzB,KAAKmc,mBACkC,MAAlCtP,EAAYsP,mBAA8BjP,WAAWL,EAAYsP,yBAAsB1a,EAE5FzB,KAAKkc,mBACkC,MAAlCrP,EAAYqP,mBAA8BhP,WAAWL,EAAYqP,yBAAsBza,EAE5FzB,KAAKg8B,6BAC4C,MAA5CnvB,EAAYmvB,6BAAwC9uB,WAAWL,EAAYmvB,mCAAgCv6B,EAEhHzB,KAAKqO,cACAxB,EAAYwB,yBAAyBpH,KAAQ4F,EAAYwB,cAC1B,MAA7BxB,EAAYwB,eAAyBC,EAAAA,EAAAA,IAAiCzB,EAAYwB,cAAe,sBAAsB,QAAS5M,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAK+0B,eAC8B,MAA9BloB,EAAYkoB,eAA0B7nB,WAAWL,EAAYkoB,qBAAkBtzB,EAEpFzB,KAAKsQ,kBACDzD,EAAYyD,kBAEhBtQ,KAAKi8B,oBACmC,MAAnCpvB,EAAYovB,oBAA+B/uB,WAAWL,EAAYovB,0BAAuBx6B,EAElGzB,KAAKk8B,oBAAiBz6B,EAClBoL,EAAYqvB,eAAgB,CAChCl8B,KAAKk8B,eAAiB,GACtB,IAASt5B,EAAI,EAAGA,EAAIiK,EAAYqvB,eAAer5B,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAYqvB,eAAet5B,GAC/B,GAAoD,MAAhDiK,EAAYqvB,eAAet5B,GAAG,eAEhCwK,GADIA,EAAoBP,EAAYqvB,eAAet5B,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk8B,eAAet5B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqvB,eAAet5B,UAGtF5C,KAAKk8B,eAAet5B,GAAK,IAAIyZ,GAAaxP,EAAYqvB,eAAet5B,SAGzE5C,KAAKk8B,eAAet5B,QAAKnB,GAYzB,GAPIzB,KAAKm8B,uCACsD,MAAtDtvB,EAAYsvB,uCAAkDjvB,WAAWL,EAAYsvB,6CAA0C16B,EAEpIzB,KAAKo8B,qCACoD,MAApDvvB,EAAYuvB,qCAAgDlvB,WAAWL,EAAYuvB,2CAAwC36B,EAEpIzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,eAAqBtwB,GAK9B,MAAMuhE,GAabj+C,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKkiB,UACyB,MAAzBrV,EAAYqV,UAAqBhV,WAAWL,EAAYqV,gBAAazgB,EAE1EzB,KAAKiiB,SACwB,MAAxBpV,EAAYoV,SAAoB/U,WAAWL,EAAYoV,eAAYxgB,EAExEzB,KAAK89C,OACsB,MAAtBjxC,EAAYixC,OAAkB5wC,WAAWL,EAAYixC,aAAUr8C,EAEpEzB,KAAK+9C,kBACDlxC,EAAYkxC,mBAItBnxC,EAAgB,gBAAsBixC,GAK/B,MAAMv9B,GAab1gB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKo3B,iBACDvqB,EAAYuqB,iBAEhBp3B,KAAKn6B,cACDgnC,EAAYhnC,cAEhBm6B,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAExEzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4B0T,GAKrC,MAAMF,GAmDbxgB,YAAYiN,GA8HV,GA7HFA,EAAcA,GAAe,GACvB7M,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKg+C,eACDnxC,EAAYmxC,eAEhBh+C,KAAKs5B,WACDzsB,EAAYysB,WAEhBt5B,KAAKi+C,eACDpxC,EAAYoxC,eAEhBj+C,KAAKk+C,iBACDrxC,EAAYqxC,iBAEhBl+C,KAAKm+C,8BAC6C,MAA7CtxC,EAAYsxC,8BAAyCjxC,WAAWL,EAAYsxC,oCAAiC18C,EAElHzB,KAAKo+C,+BAC8C,MAA9CvxC,EAAYuxC,+BAA0ClxC,WAAWL,EAAYuxC,qCAAkC38C,EAEpHzB,KAAKq+C,mCACkD,MAAlDxxC,EAAYwxC,mCAA8CnxC,WAAWL,EAAYwxC,yCAAsC58C,EAE5HzB,KAAKs+C,oCACmD,MAAnDzxC,EAAYyxC,oCAA+CpxC,WAAWL,EAAYyxC,0CAAuC78C,EAE9HzB,KAAKu+C,8BAC6C,MAA7C1xC,EAAY0xC,8BAAyCrxC,WAAWL,EAAY0xC,oCAAiC98C,EAElHzB,KAAKw+C,+BAC8C,MAA9C3xC,EAAY2xC,+BAA0CtxC,WAAWL,EAAY2xC,qCAAkC/8C,EAEpHzB,KAAKy+C,8BAC6C,MAA7C5xC,EAAY4xC,8BAAyCvxC,WAAWL,EAAY4xC,oCAAiCh9C,EAElHzB,KAAK0+C,+BAC8C,MAA9C7xC,EAAY6xC,+BAA0CxxC,WAAWL,EAAY6xC,qCAAkCj9C,EAEpHzB,KAAK2+C,kCACiD,MAAjD9xC,EAAY8xC,kCAA6CzxC,WAAWL,EAAY8xC,wCAAqCl9C,EAE1HzB,KAAK4+C,mCACkD,MAAlD/xC,EAAY+xC,mCAA8C1xC,WAAWL,EAAY+xC,yCAAsCn9C,EAE5HzB,KAAK6+C,mCACkD,MAAlDhyC,EAAYgyC,mCAA8C3xC,WAAWL,EAAYgyC,yCAAsCp9C,EAE5HzB,KAAK8+C,oCACmD,MAAnDjyC,EAAYiyC,oCAA+C5xC,WAAWL,EAAYiyC,0CAAuCr9C,EAE9HzB,KAAK++C,8BAC6C,MAA7ClyC,EAAYkyC,8BAAyC7xC,WAAWL,EAAYkyC,oCAAiCt9C,EAElHzB,KAAKg/C,+BAC8C,MAA9CnyC,EAAYmyC,+BAA0C9xC,WAAWL,EAAYmyC,qCAAkCv9C,EAEpHzB,KAAKi/C,4BAC2C,MAA3CpyC,EAAYoyC,4BAAuC/xC,WAAWL,EAAYoyC,kCAA+Bx9C,EAE9GzB,KAAKk/C,6BAC4C,MAA5CryC,EAAYqyC,6BAAwChyC,WAAWL,EAAYqyC,mCAAgCz9C,EAEhHzB,KAAKm/C,MACDtyC,EAAYsyC,MAEhBn/C,KAAKo/C,MACDvyC,EAAYuyC,MAEhBp/C,KAAKq/C,WACDxyC,EAAYwyC,WAEhBr/C,KAAKs/C,0CACyD,MAAzDzyC,EAAYyyC,0CAAqDpyC,WAAWL,EAAYyyC,gDAA6C79C,EAE1IzB,KAAKu/C,6CAC4D,MAA5D1yC,EAAY0yC,6CAAwDryC,WAAWL,EAAY0yC,mDAAgD99C,EAEhJzB,KAAKw/C,wCACuD,MAAvD3yC,EAAY2yC,wCAAmDtyC,WAAWL,EAAY2yC,8CAA2C/9C,EAEtIzB,KAAKy/C,2CAC0D,MAA1D5yC,EAAY4yC,2CAAsDvyC,WAAWL,EAAY4yC,iDAA8Ch+C,EAE5IzB,KAAK0/C,sCACqD,MAArD7yC,EAAY6yC,sCAAiDxyC,WAAWL,EAAY6yC,4CAAyCj+C,EAElIzB,KAAK2/C,yCACwD,MAAxD9yC,EAAY8yC,yCAAoDzyC,WAAWL,EAAY8yC,+CAA4Cl+C,EAExIzB,KAAK4/C,8CAC6D,MAA7D/yC,EAAY+yC,8CAAyD1yC,WAAWL,EAAY+yC,oDAAiDn+C,EAElJzB,KAAK6/C,iDACgE,MAAhEhzC,EAAYgzC,iDAA4D3yC,WAAWL,EAAYgzC,uDAAoDp+C,EAExJzB,KAAK8/C,6CAC4D,MAA5DjzC,EAAYizC,6CAAwD5yC,WAAWL,EAAYizC,mDAAgDr+C,EAEhJzB,KAAK+/C,gDAC+D,MAA/DlzC,EAAYkzC,gDAA2D7yC,WAAWL,EAAYkzC,sDAAmDt+C,EAEtJzB,KAAKggD,wCACuD,MAAvDnzC,EAAYmzC,wCAAmD9yC,WAAWL,EAAYmzC,8CAA2Cv+C,EAEtIzB,KAAKigD,2CAC0D,MAA1DpzC,EAAYozC,2CAAsD/yC,WAAWL,EAAYozC,iDAA8Cx+C,EAE5IzB,KAAKkgD,wCACuD,MAAvDrzC,EAAYqzC,wCAAmDhzC,WAAWL,EAAYqzC,8CAA2Cz+C,EAEtIzB,KAAKmgD,2CAC0D,MAA1DtzC,EAAYszC,2CAAsDjzC,WAAWL,EAAYszC,iDAA8C1+C,EAE5IzB,KAAKogD,wCACuD,MAAvDvzC,EAAYuzC,wCAAmDlzC,WAAWL,EAAYuzC,8CAA2C3+C,EAEtIzB,KAAKqgD,2CAC0D,MAA1DxzC,EAAYwzC,2CAAsDnzC,WAAWL,EAAYwzC,iDAA8C5+C,EAE5IzB,KAAKsgD,gCAC+C,MAA/CzzC,EAAYyzC,gCAA2CpzC,WAAWL,EAAYyzC,sCAAmC7+C,EAE1HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BwT,GAKpC,MAAMiB,GA0CbzhB,YAAYiN,GAqGV,GApGFA,EAAcA,GAAe,GACvB7M,KAAKihB,UACDpU,EAAYoU,UAEhBjhB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKugD,cACD1zC,EAAY0zC,cAEhBvgD,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAK0gD,QACuB,MAAvB7zC,EAAY6zC,QAAmBxzC,WAAWL,EAAY6zC,cAAWj/C,EAEtEzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK2gD,wBACuC,MAAvC9zC,EAAY8zC,wBAAmCzzC,WAAWL,EAAY8zC,8BAA2Bl/C,EAEtGzB,KAAK4gD,0BACA/zC,EAAY+zC,qCAAqC35C,KAAQ4F,EAAY+zC,0BAC1B,MAAzC/zC,EAAY+zC,2BAAqCtyC,EAAAA,EAAAA,IAAiCzB,EAAY+zC,0BAA2B,sBAAsB,QAASn/C,EAE/JzB,KAAK6gD,KACDh0C,EAAYg0C,KAEhB7gD,KAAK8gD,OACDj0C,EAAYi0C,OAEhB9gD,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK+gD,YACAl0C,EAAYk0C,uBAAuB95C,KAAQ4F,EAAYk0C,YAC1B,MAA3Bl0C,EAAYk0C,aAAuBzyC,EAAAA,EAAAA,IAAiCzB,EAAYk0C,YAAa,sBAAsB,QAASt/C,EAEnIzB,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKghD,cACDn0C,EAAYm0C,cAEhBhhD,KAAKihD,oBACDp0C,EAAYo0C,oBAEhBjhD,KAAKkhD,gBACDr0C,EAAYq0C,gBAEhBlhD,KAAKo7C,aACDvuC,EAAYuuC,aAEhBp7C,KAAKmhD,kBACDt0C,EAAYs0C,kBAEhBnhD,KAAKohD,aACDv0C,EAAYu0C,aAEhBphD,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKshD,aACDz0C,EAAYy0C,aAEhBthD,KAAKuhD,cACD10C,EAAY00C,cAEhBvhD,KAAKwhD,cACD30C,EAAY20C,cAEhBxhD,KAAKyhD,eACD50C,EAAY40C,eAEhBzhD,KAAK0hD,aACD70C,EAAY60C,aAEhB1hD,KAAK2hD,YACD90C,EAAY80C,YAEhB3hD,KAAK2wB,QACD9jB,EAAY8jB,QAEpB3wB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kCAAwCyU,GAKjD,MAAMhF,GAsBbzc,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAKuW,SACD1J,EAAY0J,SAEhBvW,KAAK4iC,WAC0B,MAA1B/1B,EAAY+1B,WAAsB11B,WAAWL,EAAY+1B,iBAAcnhC,EAE5EzB,KAAK4hD,SACD/0C,EAAY+0C,SAEhB5hD,KAAK6hD,SACwB,MAAxBh1C,EAAYg1C,SAAoB30C,WAAWL,EAAYg1C,eAAYpgD,EAExEzB,KAAK8hD,kBACDj1C,EAAYi1C,kBAEhB9hD,KAAK46B,eAC8B,MAA9B/tB,EAAY+tB,eAA0B1tB,WAAWL,EAAY+tB,qBAAkBn5B,EAEpFzB,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAK+hD,QACDl1C,EAAYk1C,QAEhB/hD,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKg7B,eAC8B,MAA9BnuB,EAAYmuB,eAA0B9tB,WAAWL,EAAYmuB,qBAAkBv5B,EAExFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,aAAmByP,GAK5B,MAAMlkD,GAqEbynC,YAAYiN,GAmHV,GAlHFA,EAAcA,GAAe,GACvB7M,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKya,sBACD5N,EAAY4N,sBAEhBza,KAAKgiD,iBACgC,MAAhCn1C,EAAYm1C,iBAA4B90C,WAAWL,EAAYm1C,uBAAoBvgD,EAExFzB,KAAKiiD,aACDp1C,EAAYo1C,aAEhBjiD,KAAKkiD,UACDr1C,EAAYq1C,UAEhBliD,KAAKi2B,cACDppB,EAAYopB,cAEhBj2B,KAAK63B,uBACDhrB,EAAYgrB,uBAEhB73B,KAAKmiD,8BACDt1C,EAAYs1C,8BAEhBniD,KAAKoiD,iBACDv1C,EAAYu1C,iBAEhBpiD,KAAKqiD,WACAx1C,EAAYw1C,sBAAsBp7C,KAAQ4F,EAAYw1C,WAC1B,MAA1Bx1C,EAAYw1C,YAAsB/zC,EAAAA,EAAAA,IAAiCzB,EAAYw1C,WAAY,sBAAsB,QAAS5gD,EAEjIzB,KAAKsiD,eACDz1C,EAAYy1C,eAEhBtiD,KAAKuiD,UACD11C,EAAY01C,UAEhBviD,KAAKwiD,gCACD31C,EAAY21C,gCAEhBxiD,KAAKyiD,yBACD51C,EAAY41C,yBAEhBziD,KAAK0iD,4BACD71C,EAAY61C,4BAEhB1iD,KAAK2iD,yBACD91C,EAAY81C,yBAEhB3iD,KAAK4iD,wBACuC,MAAvC/1C,EAAY+1C,wBAAmC11C,WAAWL,EAAY+1C,8BAA2BnhD,EAEtGzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKo4B,eACDvrB,EAAYurB,eAEhBp4B,KAAKq4B,mBACDxrB,EAAYwrB,mBAEhBr4B,KAAKs4B,wBACDzrB,EAAYyrB,wBAEhBt4B,KAAKu4B,2BACD1rB,EAAY0rB,2BAEhBv4B,KAAKw4B,wBACuC,MAAvC3rB,EAAY2rB,wBAAmCtrB,WAAWL,EAAY2rB,8BAA2B/2B,EAEtGzB,KAAKy4B,sBACD5rB,EAAY4rB,sBAEhBz4B,KAAK6iD,mBACkC,MAAlCh2C,EAAYg2C,mBAA8B31C,WAAWL,EAAYg2C,yBAAsBphD,EAE5FzB,KAAK04B,aACD7rB,EAAY6rB,aAEhB14B,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAK24B,eAC8B,MAA9B9rB,EAAY8rB,eAA0BzrB,WAAWL,EAAY8rB,qBAAkBl3B,EAEpFzB,KAAK44B,yBACwC,MAAxC/rB,EAAY+rB,yBAAoC1rB,WAAWL,EAAY+rB,+BAA4Bn3B,EAExGzB,KAAK64B,wBACuC,MAAvChsB,EAAYgsB,wBAAmC3rB,WAAWL,EAAYgsB,8BAA2Bp3B,EAEtGzB,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAK84B,aAC4B,MAA5BjsB,EAAYisB,aAAwB5rB,WAAWL,EAAYisB,mBAAgBr3B,EAEhFzB,KAAK+4B,4BAC2C,MAA3ClsB,EAAYksB,4BAAuC7rB,WAAWL,EAAYksB,kCAA+Bt3B,EAE9GzB,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKi5B,cACDpsB,EAAYosB,cAEpBj5B,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAqE1B,GAhEIzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKozB,WACDvmB,EAAYumB,WAEhBpzB,KAAKk5B,YACDrsB,EAAYqsB,YAEhBl5B,KAAKm5B,uBACDtsB,EAAYssB,uBAEhBn5B,KAAKo5B,wBACDvsB,EAAYusB,wBAEhBp5B,KAAKq5B,aACDxsB,EAAYwsB,aAEhBr5B,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAK2Q,cACD9D,EAAY8D,cAEhB3Q,KAAKs5B,WACDzsB,EAAYysB,WAEhBt5B,KAAKu5B,aACD1sB,EAAY0sB,aAEhBv5B,KAAKw5B,aACD3sB,EAAY2sB,aAEhBx5B,KAAKy5B,WACD5sB,EAAY4sB,WAEhBz5B,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK05B,gBACD7sB,EAAY6sB,gBAEhB15B,KAAK25B,iBACgC,MAAhC9sB,EAAY8sB,iBAA4BzsB,WAAWL,EAAY8sB,uBAAoBl4B,EAExFzB,KAAK45B,gBAC+B,MAA/B/sB,EAAY+sB,gBAA2BnzB,SAASoG,EAAY+sB,gBAAiB,SAAMn4B,EAExFzB,KAAK65B,qBACDhtB,EAAYgtB,qBAEhB75B,KAAK85B,oBACDjtB,EAAYitB,oBAEhB95B,KAAK+5B,yBACDltB,EAAYktB,yBAEhB/5B,KAAKg6B,sBACqC,MAArCntB,EAAYmtB,sBAAiCvzB,SAASoG,EAAYmtB,sBAAuB,SAAMv4B,EAEpGzB,KAAKi6B,iBACDptB,EAAYotB,iBAEpBj6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsBz0C,GAK/B,MAAMq1C,GAYb5N,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKqV,SACDxI,EAAYwI,SAEhBrV,KAAK8iD,KACDj2C,EAAYi2C,KAEpB9iD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgCY,GAKzC,MAAMt6B,GAab0sB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+iD,iBACDl2C,EAAYk2C,iBAEhB/iD,KAAKgjD,OACDn2C,EAAYm2C,OAEhBhjD,KAAKngB,YACDgtB,EAAYhtB,YAEpBmgB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB15B,GAKlC,MAAMkE,GAYbwoB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKijD,UACDp2C,EAAYo2C,UAEhBjjD,KAAKkjD,iBACDr2C,EAAYq2C,iBAEpBljD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8Bx1B,GAKvC,MAAM+rE,GAcbvjD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAEhFzB,KAAKqjD,gBAAa5hD,EACdoL,EAAYw2C,WAAY,CAC5BrjD,KAAKqjD,WAAa,GAClB,IAAK,IAAIzgD,EAAI,EAAGA,EAAIiK,EAAYw2C,WAAWxgD,OAAQD,IAClB,MAA7BiK,EAAYw2C,WAAWzgD,GACvB5C,KAAKqjD,WAAWzgD,GACZ6D,SAASoG,EAAYw2C,WAAWzgD,GAAI,IAE5C5C,KAAKqjD,WAAWzgD,QAAKnB,EAMrB,GADAzB,KAAKkkB,iBAAcziB,EACfoL,EAAYqX,YAAa,CAC7BlkB,KAAKkkB,YAAc,GACnB,IAASthB,EAAI,EAAGA,EAAIiK,EAAYqX,YAAYrhB,OAAQD,IAClB,MAA9BiK,EAAYqX,YAAYthB,GACxB5C,KAAKkkB,YAAYthB,GACb6D,SAASoG,EAAYqX,YAAYthB,GAAI,IAE7C5C,KAAKkkB,YAAYthB,QAAKnB,EAMtB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCu2C,GAK3C,MAAM34E,GAmBbo1B,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAKsjD,cACDz2C,EAAYy2C,cAEhBtjD,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKgmB,YACAnZ,EAAYmZ,uBAAuB/e,KAAQ4F,EAAYmZ,YAC1B,MAA3BnZ,EAAYmZ,aAAuB1X,EAAAA,EAAAA,IAAiCzB,EAAYmZ,YAAa,sBAAsB,QAASvkB,EAEnIzB,KAAKimB,gBACApZ,EAAYoZ,2BAA2Bhf,KAAQ4F,EAAYoZ,gBAC1B,MAA/BpZ,EAAYoZ,iBAA2B3X,EAAAA,EAAAA,IAAiCzB,EAAYoZ,gBAAiB,sBAAsB,QAASxkB,EAE3IzB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BpiC,GAKpC,MAAMm7C,GAqBb/lB,YAAYiN,GAqCV,GApCFA,EAAcA,GAAe,GACvB7M,KAAKwjD,eAC8B,MAA9B32C,EAAY22C,eAA0B/8C,SAASoG,EAAY22C,eAAgB,SAAM/hD,EAEtFzB,KAAK8xB,OACsB,MAAtBjlB,EAAYilB,OAAkBrrB,SAASoG,EAAYilB,OAAQ,SAAMrwB,EAEtEzB,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAKwQ,WACD3D,EAAY2D,WAEhBxQ,KAAKyQ,YACD5D,EAAY4D,YAEhBzQ,KAAKslB,UACDzY,EAAYyY,UAEhBtlB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4B+Y,GAKrC,MAAME,GAcbjmB,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAKyjD,aAC4B,MAA5B52C,EAAY42C,aAAwBh9C,SAASoG,EAAY42C,aAAc,SAAMhiD,EAEtFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCiZ,GAK5C,MAAME,GAkBbnmB,YAAYiN,GA6BV,GA5BFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK0jD,QACD72C,EAAY62C,QAEhB1jD,KAAK2jD,OACD92C,EAAY82C,OAEhB3jD,KAAK4jD,oBACA/2C,EAAY+2C,+BAA+B38C,KAAQ4F,EAAY+2C,oBAC1B,MAAnC/2C,EAAY+2C,qBAA+Bt1C,EAAAA,EAAAA,IAAiCzB,EAAY+2C,oBAAqB,sBAAsB,QAASniD,EAEnJzB,KAAK6jD,iBACAh3C,EAAYg3C,4BAA4B58C,KAAQ4F,EAAYg3C,iBAC1B,MAAhCh3C,EAAYg3C,kBAA4Bv1C,EAAAA,EAAAA,IAAiCzB,EAAYg3C,iBAAkB,sBAAsB,QAASpiD,EAE7IzB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKqxC,MACDxkC,EAAYwkC,MAEhBrxC,KAAK8jD,oBACDj3C,EAAYi3C,oBAEpB9jD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCmZ,GAK3C,MAAMg+B,GAYbnkD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKqE,IACDwI,EAAYxI,IAEhBrE,KAAKgkD,gBACDn3C,EAAYm3C,gBAEpBhkD,KAAKikD,kBAAexiD,EAChBoL,EAAYo3C,aAAc,CAC9BjkD,KAAKikD,aAAe,GACpB,IAAK,IAAIrhD,EAAI,EAAGA,EAAIiK,EAAYo3C,aAAaphD,OAAQD,IACrD,GAAmC,MAA/BiK,EAAYo3C,aAAarhD,GAC7B,GAAkD,MAA9CiK,EAAYo3C,aAAarhD,GAAG,eAAwB,CACtD,IAAIwK,EAAoBP,EAAYo3C,aAAarhD,GAAG,eACpDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKikD,aAAarhD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYo3C,aAAarhD,UAGlF5C,KAAKikD,aAAarhD,GAAK,IAAIshD,GAAuBr3C,EAAYo3C,aAAarhD,SAG/E5C,KAAKikD,aAAarhD,QAAKnB,IAOzBmL,EAAgB,kBAAwBm3C,GAKjC,MAAMG,GAUbtkD,YAAYiN,GAEV,GAAyB,OAD3BA,EAAcA,GAAe,IACX8d,MACZ3qB,KAAK2qB,WAAQlpB,OACV,GAAwC,MAApCoL,EAAY8d,MAAM,eACzB3qB,KAAK2qB,MAAQ,IAAI8R,GAA2B5vB,EAAY8d,WACrD,CACH,IAAIvd,EAAoBP,EAAY8d,MAAM,eAC1Cvd,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2qB,MAAQ,IAAI/d,EAAiBQ,GAAWP,EAAY8d,UAOnE/d,EAAgB,uBAA6Bs3C,GAKtC,MAAMC,GA4BbvkD,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKokD,oBAAiB3iD,EAClBoL,EAAYu3C,eAAgB,CAChCpkD,KAAKokD,eAAiB,GACtB,IAAK,IAAIxhD,EAAI,EAAGA,EAAIiK,EAAYu3C,eAAevhD,OAAQD,IAClB,MAAjCiK,EAAYu3C,eAAexhD,GAC3B5C,KAAKokD,eAAexhD,GAChBiK,EAAYu3C,eAAexhD,GAEnC5C,KAAKokD,eAAexhD,QAAKnB,EA2DzB,GAtDIzB,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKqkD,kBACDx3C,EAAYw3C,kBAEhBrkD,KAAKskD,iBACDz3C,EAAYy3C,iBAEhBtkD,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKsoB,QACDzb,EAAYyb,QAEhBtoB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAKukD,oBACD13C,EAAY03C,oBAEhBvkD,KAAKwkD,kBACD33C,EAAY23C,kBAEhBxkD,KAAKykD,wBACD53C,EAAY43C,wBAEpBzkD,KAAK0kD,mBAAgBjjD,EACjBoL,EAAY63C,cAAe,CAC/B1kD,KAAK0kD,cAAgB,GACrB,IAAS9hD,EAAI,EAAGA,EAAIiK,EAAY63C,cAAc7hD,OAAQD,IACtD,GAAoC,MAAhCiK,EAAY63C,cAAc9hD,GAC9B,GAAmD,MAA/CiK,EAAY63C,cAAc9hD,GAAG,eAAwB,CACvD,IAAIwK,EAAoBP,EAAY63C,cAAc9hD,GAAG,eACrDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0kD,cAAc9hD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY63C,cAAc9hD,UAGpF5C,KAAK0kD,cAAc9hD,GAAK,IAAImhD,GAAkBl3C,EAAY63C,cAAc9hD,SAG5E5C,KAAK0kD,cAAc9hD,QAAKnB,IAO1BmL,EAAgB,+BAAqCu3C,GAK9C,MAAMQ,GA+Bb/kD,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKokD,oBAAiB3iD,EAClBoL,EAAYu3C,eAAgB,CAChCpkD,KAAKokD,eAAiB,GACtB,IAAK,IAAIxhD,EAAI,EAAGA,EAAIiK,EAAYu3C,eAAevhD,OAAQD,IAClB,MAAjCiK,EAAYu3C,eAAexhD,GAC3B5C,KAAKokD,eAAexhD,GAChBiK,EAAYu3C,eAAexhD,GAEnC5C,KAAKokD,eAAexhD,QAAKnB,EA8DzB,GAzDIzB,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKqkD,kBACDx3C,EAAYw3C,kBAEhBrkD,KAAKskD,iBACDz3C,EAAYy3C,iBAEhBtkD,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKsoB,QACDzb,EAAYyb,QAEhBtoB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK4kD,gBACD/3C,EAAY+3C,gBAEhB5kD,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAK6kD,eACDh4C,EAAYg4C,eAEhB7kD,KAAKukD,oBACD13C,EAAY03C,oBAEhBvkD,KAAKwkD,kBACD33C,EAAY23C,kBAEpBxkD,KAAK8kD,gCAA6BrjD,EAC9BoL,EAAYi4C,2BAA4B,CAC5C9kD,KAAK8kD,2BAA6B,GAClC,IAASliD,EAAI,EAAGA,EAAIiK,EAAYi4C,2BAA2BjiD,OAAQD,IAClB,MAA7CiK,EAAYi4C,2BAA2BliD,GACvC5C,KAAK8kD,2BAA2BliD,GAC5BiK,EAAYi4C,2BAA2BliD,GAE/C5C,KAAK8kD,2BAA2BliD,QAAKnB,EASrC,GAJIzB,KAAKykD,wBACD53C,EAAY43C,wBAEpBzkD,KAAK+kD,iCAA8BtjD,EAC/BoL,EAAYk4C,4BAA6B,CAC7C/kD,KAAK+kD,4BAA8B,GACnC,IAASniD,EAAI,EAAGA,EAAIiK,EAAYk4C,4BAA4BliD,OAAQD,IAClB,MAA9CiK,EAAYk4C,4BAA4BniD,GACxC5C,KAAK+kD,4BAA4BniD,GAC7BiK,EAAYk4C,4BAA4BniD,GAEhD5C,KAAK+kD,4BAA4BniD,QAAKnB,IAOxCmL,EAAgB,8BAAoC+3C,GAK7C,MAAMK,GAYbplD,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAK2a,oBACD9N,EAAY8N,qBAItB/N,EAAgB,yBAA+Bo4C,GAKxC,MAAMC,GAcbrlD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKklD,QACDr4C,EAAYq4C,QAEhBllD,KAAKmlD,yBACDt4C,EAAYs4C,yBAEhBnlD,KAAKolD,oBACDv4C,EAAYu4C,oBAEpBplD,KAAKqlD,iBAAc5jD,EACfoL,EAAYw4C,YAAa,CAC7BrlD,KAAKqlD,YAAc,GACnB,IAAK,IAAIziD,EAAI,EAAGA,EAAIiK,EAAYw4C,YAAYxiD,OAAQD,IACpD,GAAkC,MAA9BiK,EAAYw4C,YAAYziD,GAC5B,GAAiD,MAA7CiK,EAAYw4C,YAAYziD,GAAG,eAAwB,CACrD,IAAIwK,EAAoBP,EAAYw4C,YAAYziD,GAAG,eACnDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqlD,YAAYziD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYw4C,YAAYziD,UAGhF5C,KAAKqlD,YAAYziD,GAAK,IAAI0iD,GAA0Bz4C,EAAYw4C,YAAYziD,SAGhF5C,KAAKqlD,YAAYziD,QAAKnB,EAKlBzB,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,4BAAkCq4C,GAK3C,MAAMh0E,GA+Bb2uB,YAAYiN,GAuDV,GAtDFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK+6C,UACyB,MAAzBluC,EAAYkuC,UAAqBt0C,SAASoG,EAAYkuC,UAAW,SAAMt5C,EAE5EzB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAKulD,oBACmC,MAAnC14C,EAAY04C,oBAA+Br4C,WAAWL,EAAY04C,0BAAuB9jD,EAE9FzB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAElFzB,KAAKwlD,gBAC+B,MAA/B34C,EAAY24C,gBAA2Bt4C,WAAWL,EAAY24C,sBAAmB/jD,EAEtFzB,KAAKylD,gBAC+B,MAA/B54C,EAAY44C,gBAA2Bv4C,WAAWL,EAAY44C,sBAAmBhkD,EAEtFzB,KAAK0lD,wBACuC,MAAvC74C,EAAY64C,wBAAmCx4C,WAAWL,EAAY64C,8BAA2BjkD,EAEtGzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAK2lD,gBAC+B,MAA/B94C,EAAY84C,gBAA2Bl/C,SAASoG,EAAY84C,gBAAiB,SAAMlkD,EAExFzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAEhFzB,KAAK40B,mBAAgBnzB,EACjBoL,EAAY+nB,cAAe,CAC/B50B,KAAK40B,cAAgB,GACrB,IAAK,IAAIhyB,EAAI,EAAGA,EAAIiK,EAAY+nB,cAAc/xB,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY+nB,cAAchyB,GAC9B,GAAmD,MAA/CiK,EAAY+nB,cAAchyB,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY+nB,cAAchyB,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK40B,cAAchyB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+nB,cAAchyB,UAGpF5C,KAAK40B,cAAchyB,GAAK,IAAIiyB,GAAkBhoB,EAAY+nB,cAAchyB,SAG5E5C,KAAK40B,cAAchyB,QAAKnB,GAYxB,GAPIzB,KAAK29C,oBACmC,MAAnC9wC,EAAY8wC,oBAA+BzwC,WAAWL,EAAY8wC,0BAAuBl8C,EAE9FzB,KAAK4lD,qBACD/4C,EAAY+4C,qBAEpB5lD,KAAK28C,0BAAuBl7C,EACxBoL,EAAY8vC,qBAAsB,CACtC38C,KAAK28C,qBAAuB,GAC5B,IAAS/5C,EAAI,EAAGA,EAAIiK,EAAY8vC,qBAAqB95C,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAY8vC,qBAAqB/5C,GACrC,GAA0D,MAAtDiK,EAAY8vC,qBAAqB/5C,GAAG,eAEtCwK,GADIA,EAAoBP,EAAY8vC,qBAAqB/5C,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK28C,qBAAqB/5C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8vC,qBAAqB/5C,UAGlG5C,KAAK28C,qBAAqB/5C,GAAK,IAAI+xB,GAAe9nB,EAAY8vC,qBAAqB/5C,SAGvF5C,KAAK28C,qBAAqB/5C,QAAKnB,GAM/B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwB37B,GAKjC,MAAM40E,GAYbjmD,YAAYiN,GAEV,GAAmC,OADrCA,EAAcA,GAAe,IACXi5C,gBACZ9lD,KAAK8lD,qBAAkBrkD,OACpB,GAAkD,MAA9CoL,EAAYi5C,gBAAgB,eACnC9lD,KAAK8lD,gBAAkB,IAAI18E,GAAqByjC,EAAYi5C,qBACzD,CAEH14C,GADIA,EAAoBP,EAAYi5C,gBAAgB,gBAC9Bz4C,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8lD,gBAAkB,IAAIl5C,EAAiBQ,GAAWP,EAAYi5C,kBAM3E,GADA9lD,KAAK+lD,wBAAqBtkD,EACtBoL,EAAYk5C,mBAAoB,CACpC/lD,KAAK+lD,mBAAqB,GAC1B,IAAK,IAAInjD,EAAI,EAAGA,EAAIiK,EAAYk5C,mBAAmBljD,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYk5C,mBAAmBnjD,GACnC,GAAwD,MAApDiK,EAAYk5C,mBAAmBnjD,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYk5C,mBAAmBnjD,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+lD,mBAAmBnjD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYk5C,mBAAmBnjD,UAG9F5C,KAAK+lD,mBAAmBnjD,GAAK,IAAIojD,GAAsBn5C,EAAYk5C,mBAAmBnjD,SAG1F5C,KAAK+lD,mBAAmBnjD,QAAKnB,GAM7B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+Bi5C,GAKxC,MAAMI,GAWbrmD,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKoxB,UACyB,MAAzBvkB,EAAYukB,UAAqB3qB,SAASoG,EAAYukB,UAAW,SAAM3vB,EAEhFzB,KAAKkmD,oCAAiCzkD,EAClCoL,EAAYq5C,+BAAgC,CAChDlmD,KAAKkmD,+BAAiC,GACtC,IAAK,IAAItjD,EAAI,EAAGA,EAAIiK,EAAYq5C,+BAA+BrjD,OAAQD,IACvE,GAAqD,MAAjDiK,EAAYq5C,+BAA+BtjD,GAC/C,GAAoE,MAAhEiK,EAAYq5C,+BAA+BtjD,GAAG,eAAwB,CACxE,IAAIwK,EAAoBP,EAAYq5C,+BAA+BtjD,GAAG,eACtEwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkmD,+BAA+BtjD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYq5C,+BAA+BtjD,UAGtH5C,KAAKkmD,+BAA+BtjD,GAAK,IAAI8hB,GAAgC7X,EAAYq5C,+BAA+BtjD,SAG5H5C,KAAKkmD,+BAA+BtjD,QAAKnB,IAO3CmL,EAAgB,+BAAqCq5C,GAK9C,MAAMv+B,GAsCb9nB,YAAYiN,GAuFV,GAtFFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAKmmD,iBACgC,MAAhCt5C,EAAYs5C,iBAA4Bj5C,WAAWL,EAAYs5C,uBAAoB1kD,EAExFzB,KAAKomD,aACDv5C,EAAYu5C,aAEhBpmD,KAAKqmD,iBACgC,MAAhCx5C,EAAYw5C,iBAA4Bn5C,WAAWL,EAAYw5C,uBAAoB5kD,EAExFzB,KAAKsmD,oBACmC,MAAnCz5C,EAAYy5C,oBAA+Bp5C,WAAWL,EAAYy5C,0BAAuB7kD,EAE9FzB,KAAKghD,cACDn0C,EAAYm0C,cAEhBhhD,KAAKumD,cACD15C,EAAY05C,cAEhBvmD,KAAKwmD,YACD35C,EAAY25C,YAEhBxmD,KAAKkhD,gBACDr0C,EAAYq0C,gBAEhBlhD,KAAKo7C,aACDvuC,EAAYuuC,aAEhBp7C,KAAKohD,aACDv0C,EAAYu0C,aAEhBphD,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKyhD,eACD50C,EAAY40C,eAEhBzhD,KAAKshD,aACDz0C,EAAYy0C,aAEhBthD,KAAKuhD,cACD10C,EAAY00C,cAEhBvhD,KAAKwhD,cACD30C,EAAY20C,cAEhBxhD,KAAKymD,YACD55C,EAAY45C,YAEhBzmD,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAK0mD,iBACD75C,EAAY65C,iBAEhB1mD,KAAK2mD,eACD95C,EAAY85C,eAEhB3mD,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6B8a,GAKtC,MAAMH,GAyCb3nB,YAAYiN,GAgGV,GA/FFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAK4mD,oBACmC,MAAnC/5C,EAAY+5C,oBAA+B15C,WAAWL,EAAY+5C,0BAAuBnlD,EAE9FzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAK8mB,iBACgC,MAAhCja,EAAYia,iBAA4B5Z,WAAWL,EAAYia,uBAAoBrlB,EAExFzB,KAAK+mB,gBAC+B,MAA/Bla,EAAYka,gBAA2B7Z,WAAWL,EAAYka,sBAAmBtlB,EAEtFzB,KAAKgnB,mBACkC,MAAlCna,EAAYma,mBAA8B9Z,WAAWL,EAAYma,yBAAsBvlB,EAE5FzB,KAAK6mD,mBACkC,MAAlCh6C,EAAYg6C,mBAA8B35C,WAAWL,EAAYg6C,yBAAsBplD,EAE5FzB,KAAK8mD,sBACqC,MAArCj6C,EAAYi6C,sBAAiC55C,WAAWL,EAAYi6C,4BAAyBrlD,EAElGzB,KAAKomD,aACDv5C,EAAYu5C,aAEhBpmD,KAAKghD,cACDn0C,EAAYm0C,cAEhBhhD,KAAKumD,cACD15C,EAAY05C,cAEhBvmD,KAAKwmD,YACD35C,EAAY25C,YAEhBxmD,KAAKkhD,gBACDr0C,EAAYq0C,gBAEhBlhD,KAAKo7C,aACDvuC,EAAYuuC,aAEhBp7C,KAAKohD,aACDv0C,EAAYu0C,aAEhBphD,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKyhD,eACD50C,EAAY40C,eAEhBzhD,KAAKshD,aACDz0C,EAAYy0C,aAEhBthD,KAAKuhD,cACD10C,EAAY00C,cAEhBvhD,KAAKwhD,cACD30C,EAAY20C,cAEhBxhD,KAAKymD,YACD55C,EAAY45C,YAEhBzmD,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAK+mD,KACDl6C,EAAYk6C,KAEhB/mD,KAAK2mD,eACD95C,EAAY85C,eAEhB3mD,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6B2a,GAKtC,MAAMy/B,GAoBbpnD,YAAYiN,GA+BV,GA9BFA,EAAcA,GAAe,GACvB7M,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKinD,UACDp6C,EAAYo6C,UAEhBjnD,KAAKknD,gBACDr6C,EAAYq6C,gBAEhBlnD,KAAK2mB,qBACD9Z,EAAY8Z,qBAEhB3mB,KAAK4mB,mBACD/Z,EAAY+Z,mBAEhB5mB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAKmnD,YACAt6C,EAAYs6C,uBAAuBlgD,KAAQ4F,EAAYs6C,YAC1B,MAA3Bt6C,EAAYs6C,aAAuB74C,EAAAA,EAAAA,IAAiCzB,EAAYs6C,YAAa,sBAAsB,QAAS1lD,EAEnIzB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKonD,SACDv6C,EAAYu6C,SAEpBpnD,KAAKqnD,kBAAe5lD,EAChBoL,EAAYw6C,aAAc,CAC9BrnD,KAAKqnD,aAAe,GACpB,IAAK,IAAIzkD,EAAI,EAAGA,EAAIiK,EAAYw6C,aAAaxkD,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYw6C,aAAazkD,GAC7B,GAAkD,MAA9CiK,EAAYw6C,aAAazkD,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYw6C,aAAazkD,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqnD,aAAazkD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYw6C,aAAazkD,UAGlF5C,KAAKqnD,aAAazkD,GAAK,IAAI0kD,GAA8Bz6C,EAAYw6C,aAAazkD,SAGtF5C,KAAKqnD,aAAazkD,QAAKnB,GAMvB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0BAAgCo6C,GAKzC,MAAMp/B,GAmCbhoB,YAAYiN,GA8EV,GA7EFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKumB,QACD1Z,EAAY0Z,QAEhBvmB,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAKsmD,oBACmC,MAAnCz5C,EAAYy5C,oBAA+Bp5C,WAAWL,EAAYy5C,0BAAuB7kD,EAE9FzB,KAAKghD,cACDn0C,EAAYm0C,cAEhBhhD,KAAKumD,cACD15C,EAAY05C,cAEhBvmD,KAAKwmD,YACD35C,EAAY25C,YAEhBxmD,KAAKkhD,gBACDr0C,EAAYq0C,gBAEhBlhD,KAAKo7C,aACDvuC,EAAYuuC,aAEhBp7C,KAAKohD,aACDv0C,EAAYu0C,aAEhBphD,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKyhD,eACD50C,EAAY40C,eAEhBzhD,KAAKshD,aACDz0C,EAAYy0C,aAEhBthD,KAAKuhD,cACD10C,EAAY00C,cAEhBvhD,KAAKwhD,cACD30C,EAAY20C,cAEhBxhD,KAAKymD,YACD55C,EAAY45C,YAEhBzmD,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAK+mD,KACDl6C,EAAYk6C,KAEhB/mD,KAAK2mD,eACD95C,EAAY85C,eAEhB3mD,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2Bgb,GAKpC,MAAMrpC,GAcbqhB,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKunD,qBACD16C,EAAY06C,qBAEhBvnD,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK+M,KACDF,EAAYE,KAEpB/M,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBruB,GAKhC,MAAMipE,GAYb5nD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKynD,mBACkC,MAAlC56C,EAAY46C,mBAA8Bv6C,WAAWL,EAAY46C,yBAAsBhmD,EAE5FzB,KAAK0nD,gBACD76C,EAAY66C,gBAEpB1nD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kDAAwD46C,GAKjE,MAAMG,GAab/nD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK4nD,oBACmC,MAAnC/6C,EAAY+6C,oBAA+B16C,WAAWL,EAAY+6C,0BAAuBnmD,EAE9FzB,KAAK6nD,mBACkC,MAAlCh7C,EAAYg7C,mBAA8B36C,WAAWL,EAAYg7C,yBAAsBpmD,EAE5FzB,KAAK0nD,gBACD76C,EAAY66C,gBAEpB1nD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,+CAAqD+6C,GAK9D,MAAMG,GAyCbloD,YAAYiN,GAyDV,GAxDFA,EAAcA,GAAe,GACvB7M,KAAK+oB,eACDlc,EAAYkc,eAEhB/oB,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAK+nD,uBACsC,MAAtCl7C,EAAYk7C,uBAAkCthD,SAASoG,EAAYk7C,uBAAwB,SAAMtmD,EAEtGzB,KAAKgoD,2BAC0C,MAA1Cn7C,EAAYm7C,2BAAsCvhD,SAASoG,EAAYm7C,2BAA4B,SAAMvmD,EAE9GzB,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAK8mB,iBACgC,MAAhCja,EAAYia,iBAA4B5Z,WAAWL,EAAYia,uBAAoBrlB,EAExFzB,KAAKioD,kBACiC,MAAjCp7C,EAAYo7C,kBAA6B/6C,WAAWL,EAAYo7C,wBAAqBxmD,EAE1FzB,KAAKkoD,iBACgC,MAAhCr7C,EAAYq7C,iBAA4Bh7C,WAAWL,EAAYq7C,uBAAoBzmD,EAExFzB,KAAKmoD,WACDt7C,EAAYs7C,WAEhBnoD,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAKooD,oBACDv7C,EAAYu7C,oBAEhBpoD,KAAKqoD,iBACDx7C,EAAYw7C,iBAEhBroD,KAAKsoD,mCACDz7C,EAAYy7C,mCAEhBtoD,KAAKuoD,4BACD17C,EAAY07C,4BAEpBvoD,KAAKwoD,uBAAoB/mD,EACrBoL,EAAY27C,kBAAmB,CACnCxoD,KAAKwoD,kBAAoB,GACzB,IAAK,IAAI5lD,EAAI,EAAGA,EAAIiK,EAAY27C,kBAAkB3lD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY27C,kBAAkB5lD,GAClC,GAAuD,MAAnDiK,EAAY27C,kBAAkB5lD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY27C,kBAAkB5lD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwoD,kBAAkB5lD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY27C,kBAAkB5lD,UAG5F5C,KAAKwoD,kBAAkB5lD,GAAK,IAAI6lD,GAAsB57C,EAAY27C,kBAAkB5lD,SAGxF5C,KAAKwoD,kBAAkB5lD,QAAKnB,GA2B5B,GAtBIzB,KAAKspB,KACDzc,EAAYyc,KAEhBtpB,KAAK6pB,sBACDhd,EAAYgd,sBAEhB7pB,KAAK8pB,qBACAjd,EAAYid,gCAAgC7iB,KAAQ4F,EAAYid,qBAC1B,MAApCjd,EAAYid,sBAAgCxb,EAAAA,EAAAA,IAAiCzB,EAAYid,qBAAsB,sBAAsB,QAASroB,EAErJzB,KAAKupB,uBACD1c,EAAY0c,uBAEhBvpB,KAAK0oD,YACD77C,EAAY67C,YAEhB1oD,KAAK2oD,gBACD97C,EAAY87C,gBAEhB3oD,KAAKujD,cACD12C,EAAY02C,cAEkB,MAAlC12C,EAAY+7C,mBACZ5oD,KAAK4oD,wBAAqBnnD,OACvB,GAAqD,MAAjDoL,EAAY+7C,mBAAmB,eACtC5oD,KAAK4oD,mBAAqB,IAAIC,GAAgDh8C,EAAY+7C,wBACvF,CAEHx7C,GADIA,EAAoBP,EAAY+7C,mBAAmB,gBACjCv7C,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4oD,mBAAqB,IAAIh8C,EAAiBQ,GAAWP,EAAY+7C,qBAM9E,GADA5oD,KAAK8oD,uBAAoBrnD,EACrBoL,EAAYi8C,kBAAmB,CACnC9oD,KAAK8oD,kBAAoB,GACzB,IAASlmD,EAAI,EAAGA,EAAIiK,EAAYi8C,kBAAkBjmD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAYi8C,kBAAkBlmD,GAClC,GAAuD,MAAnDiK,EAAYi8C,kBAAkBlmD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAYi8C,kBAAkBlmD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8oD,kBAAkBlmD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYi8C,kBAAkBlmD,UAG5F5C,KAAK8oD,kBAAkBlmD,GAAK,IAAImmD,GAAuCl8C,EAAYi8C,kBAAkBlmD,SAGzG5C,KAAK8oD,kBAAkBlmD,QAAKnB,GAe5B,GAVIzB,KAAKypB,YAC2B,MAA3B5c,EAAY4c,YAAuBhjB,SAASoG,EAAY4c,YAAa,SAAMhoB,EAEhFzB,KAAKgpD,aACDn8C,EAAYm8C,aAEhBhpD,KAAKipD,oBACDp8C,EAAYo8C,oBAEpBjpD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0CAAgDk7C,GAKzD,MAAMn+B,GAkCb/pB,YAAYiN,GA8EV,GA7EFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKkpD,kBACDr8C,EAAYq8C,kBAEhBlpD,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKonB,YACAva,EAAYua,uBAAuBngB,KAAQ4F,EAAYua,YAC1B,MAA3Bva,EAAYua,aAAuB9Y,EAAAA,EAAAA,IAAiCzB,EAAYua,YAAa,sBAAsB,QAAS3lB,EAEnIzB,KAAKmnB,SACAta,EAAYsa,oBAAoBlgB,KAAQ4F,EAAYsa,SAC1B,MAAxBta,EAAYsa,UAAoB7Y,EAAAA,EAAAA,IAAiCzB,EAAYsa,SAAU,sBAAsB,QAAS1lB,EAE7HzB,KAAKipB,OACDpc,EAAYoc,OAEhBjpB,KAAKkpB,SACDrc,EAAYqc,SAEhBlpB,KAAKmpB,cACDtc,EAAYsc,cAEhBnpB,KAAKopB,gBACDvc,EAAYuc,gBAEhBppB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAKmpD,qBACoC,MAApCt8C,EAAYs8C,qBAAgCj8C,WAAWL,EAAYs8C,2BAAwB1nD,EAEhGzB,KAAKopD,qBACoC,MAApCv8C,EAAYu8C,qBAAgCl8C,WAAWL,EAAYu8C,2BAAwB3nD,EAEhGzB,KAAKqpD,sBACqC,MAArCx8C,EAAYw8C,sBAAiCn8C,WAAWL,EAAYw8C,4BAAyB5nD,EAElGzB,KAAKspD,uBACsC,MAAtCz8C,EAAYy8C,uBAAkCp8C,WAAWL,EAAYy8C,6BAA0B7nD,EAEpGzB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAKspB,KACDzc,EAAYyc,KAEhBtpB,KAAKupD,WAC0B,MAA1B18C,EAAY08C,WAAsB9iD,SAASoG,EAAY08C,WAAY,SAAM9nD,EAE9EzB,KAAKwpD,gBACD38C,EAAY28C,gBAEhBxpD,KAAK6pB,sBACDhd,EAAYgd,sBAEhB7pB,KAAK8pB,qBACAjd,EAAYid,gCAAgC7iB,KAAQ4F,EAAYid,qBAC1B,MAApCjd,EAAYid,sBAAgCxb,EAAAA,EAAAA,IAAiCzB,EAAYid,qBAAsB,sBAAsB,QAASroB,EAErJzB,KAAK+pB,eACDld,EAAYkd,eAEhB/pB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKgS,QACDnF,EAAYmF,QAEpBhS,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4CAAkD+c,GAK3D,MAAMk/B,GA6CbjpD,YAAYiN,GAwFV,GAvFFA,EAAcA,GAAe,GACvB7M,KAAKypD,iBACgC,MAAhC58C,EAAY48C,iBAA4BhjD,SAASoG,EAAY48C,iBAAkB,SAAMhoD,EAE1FzB,KAAKkpD,kBACDr8C,EAAYq8C,kBAEhBlpD,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKm1B,WACDtoB,EAAYsoB,WAEhBn1B,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAK8mB,iBACgC,MAAhCja,EAAYia,iBAA4B5Z,WAAWL,EAAYia,uBAAoBrlB,EAExFzB,KAAKioD,kBACiC,MAAjCp7C,EAAYo7C,kBAA6B/6C,WAAWL,EAAYo7C,wBAAqBxmD,EAE1FzB,KAAKmoD,WACDt7C,EAAYs7C,WAEhBnoD,KAAK0pD,uBACsC,MAAtC78C,EAAY68C,uBAAkCx8C,WAAWL,EAAY68C,6BAA0BjoD,EAEpGzB,KAAK2pD,wBACuC,MAAvC98C,EAAY88C,wBAAmCz8C,WAAWL,EAAY88C,8BAA2BloD,EAEtGzB,KAAKqxB,OACDxkB,EAAYwkB,OAEhBrxB,KAAKkpB,SACDrc,EAAYqc,SAEhBlpB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAKspB,KACDzc,EAAYyc,KAEhBtpB,KAAK6pB,sBACDhd,EAAYgd,sBAEhB7pB,KAAK8pB,qBACAjd,EAAYid,gCAAgC7iB,KAAQ4F,EAAYid,qBAC1B,MAApCjd,EAAYid,sBAAgCxb,EAAAA,EAAAA,IAAiCzB,EAAYid,qBAAsB,sBAAsB,QAASroB,EAErJzB,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAKooD,oBACDv7C,EAAYu7C,oBAEhBpoD,KAAKqoD,iBACDx7C,EAAYw7C,iBAEhBroD,KAAKsoD,mCACDz7C,EAAYy7C,mCAEhBtoD,KAAKuoD,4BACD17C,EAAY07C,4BAEhBvoD,KAAK4pD,gBACD/8C,EAAY+8C,gBAEhB5pD,KAAK6pD,kCACDh9C,EAAYg9C,kCAEhB7pD,KAAK8pD,oCACDj9C,EAAYi9C,oCAEpB9pD,KAAKwoD,uBAAoB/mD,EACrBoL,EAAY27C,kBAAmB,CACnCxoD,KAAKwoD,kBAAoB,GACzB,IAAK,IAAI5lD,EAAI,EAAGA,EAAIiK,EAAY27C,kBAAkB3lD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY27C,kBAAkB5lD,GAClC,GAAuD,MAAnDiK,EAAY27C,kBAAkB5lD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY27C,kBAAkB5lD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwoD,kBAAkB5lD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY27C,kBAAkB5lD,UAG5F5C,KAAKwoD,kBAAkB5lD,GAAK,IAAI6lD,GAAsB57C,EAAY27C,kBAAkB5lD,SAGxF5C,KAAKwoD,kBAAkB5lD,QAAKnB,GAM5B,GADAzB,KAAK8oD,uBAAoBrnD,EACrBoL,EAAYi8C,kBAAmB,CACnC9oD,KAAK8oD,kBAAoB,GACzB,IAASlmD,EAAI,EAAGA,EAAIiK,EAAYi8C,kBAAkBjmD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAYi8C,kBAAkBlmD,GAClC,GAAuD,MAAnDiK,EAAYi8C,kBAAkBlmD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAYi8C,kBAAkBlmD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8oD,kBAAkBlmD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYi8C,kBAAkBlmD,UAG5F5C,KAAK8oD,kBAAkBlmD,GAAK,IAAImnD,GAA6Cl9C,EAAYi8C,kBAAkBlmD,SAG/G5C,KAAK8oD,kBAAkBlmD,QAAKnB,GAqB5B,GAhBIzB,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKgqD,YAC2B,MAA3Bn9C,EAAYm9C,YAAuBvjD,SAASoG,EAAYm9C,YAAa,SAAMvoD,EAEhFzB,KAAKgpD,aACDn8C,EAAYm8C,aAEhBhpD,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAKiqD,uBACDp9C,EAAYo9C,uBAEpBjqD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gDAAsDi8C,GAK/D,MAAMqB,GAWbtqD,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yCAA+Cs9C,GAKxD,MAAMC,GAabvqD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKoqD,gBACDv9C,EAAYu9C,gBAEhBpqD,KAAKmoD,WACDt7C,EAAYs7C,WAEpBnoD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wCAA8Cu9C,GAKvD,MAAME,GAWbzqD,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKsqD,UACDz9C,EAAYy9C,UAEpBtqD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kDAAwDy9C,GAKjE,MAAME,GAsBb3qD,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKwqD,iBACD39C,EAAY29C,iBAEhBxqD,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAK+oB,eACDlc,EAAYkc,eAEhB/oB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKyqD,aAAUhpD,EACXoL,EAAY49C,QAAS,CACzBzqD,KAAKyqD,QAAU,GACf,IAAK,IAAI7nD,EAAI,EAAGA,EAAIiK,EAAY49C,QAAQ5nD,OAAQD,IAClB,MAA1BiK,EAAY49C,QAAQ7nD,GACpB5C,KAAKyqD,QAAQ7nD,GACTiK,EAAY49C,QAAQ7nD,GAE5B5C,KAAKyqD,QAAQ7nD,QAAKnB,EASlB,GAJIzB,KAAK0qD,4BACD79C,EAAY69C,4BAEpB1qD,KAAK2qD,qBAAkBlpD,EACnBoL,EAAY89C,gBAAiB,CACjC3qD,KAAK2qD,gBAAkB,GACvB,IAAS/nD,EAAI,EAAGA,EAAIiK,EAAY89C,gBAAgB9nD,OAAQD,IAClB,MAAlCiK,EAAY89C,gBAAgB/nD,GAC5B5C,KAAK2qD,gBAAgB/nD,GACjBiK,EAAY89C,gBAAgB/nD,GAEpC5C,KAAK2qD,gBAAgB/nD,QAAKnB,EAqB1B,GAhBIzB,KAAK4qD,2BACD/9C,EAAY+9C,2BAEhB5qD,KAAKqpB,mBACDxc,EAAYwc,mBAEhBrpB,KAAKmoD,WACDt7C,EAAYs7C,WAEhBnoD,KAAKgpD,aACDn8C,EAAYm8C,aAEhBhpD,KAAKipD,oBACDp8C,EAAYo8C,oBAEpBjpD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yCAA+C29C,GAKxD,MAAMM,GAmBbjrD,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAK8qD,sBACDj+C,EAAYi+C,sBAEhB9qD,KAAK+qD,kBACDl+C,EAAYk+C,kBAEhB/qD,KAAKgrD,oBACDn+C,EAAYm+C,oBAEhBhrD,KAAKngB,YACDgtB,EAAYhtB,YAEpBmgB,KAAKirD,qBAAkBxpD,EACnBoL,EAAYo+C,gBAAiB,CACjCjrD,KAAKirD,gBAAkB,GACvB,IAAK,IAAIroD,EAAI,EAAGA,EAAIiK,EAAYo+C,gBAAgBpoD,OAAQD,IAClB,MAAlCiK,EAAYo+C,gBAAgBroD,GAC5B5C,KAAKirD,gBAAgBroD,GACjBiK,EAAYo+C,gBAAgBroD,GAEpC5C,KAAKirD,gBAAgBroD,QAAKnB,EAS1B,GAJIzB,KAAKkrD,mBACDr+C,EAAYq+C,mBAEpBlrD,KAAKmrD,wBAAqB1pD,EACtBoL,EAAYs+C,mBAAoB,CACpCnrD,KAAKmrD,mBAAqB,GAC1B,IAASvoD,EAAI,EAAGA,EAAIiK,EAAYs+C,mBAAmBtoD,OAAQD,IAClB,MAArCiK,EAAYs+C,mBAAmBvoD,GAC/B5C,KAAKmrD,mBAAmBvoD,GACpBiK,EAAYs+C,mBAAmBvoD,GAEvC5C,KAAKmrD,mBAAmBvoD,QAAKnB,EAM7B,GADAzB,KAAK0kD,mBAAgBjjD,EACjBoL,EAAY63C,cAAe,CAC/B1kD,KAAK0kD,cAAgB,GACrB,IAAS9hD,EAAI,EAAGA,EAAIiK,EAAY63C,cAAc7hD,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY63C,cAAc9hD,GAC9B,GAAmD,MAA/CiK,EAAY63C,cAAc9hD,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY63C,cAAc9hD,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0kD,cAAc9hD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY63C,cAAc9hD,UAGpF5C,KAAK0kD,cAAc9hD,GAAK,IAAImhD,GAAkBl3C,EAAY63C,cAAc9hD,SAG5E5C,KAAK0kD,cAAc9hD,QAAKnB,GAMxB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qCAA2Ci+C,GAKpD,MAAMO,GAYbxrD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKqrD,eACDx+C,EAAYw+C,eAEhBrrD,KAAKi0B,aACDpnB,EAAYonB,aAEpBj0B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qDAA2Dw+C,GAKpE,MAAME,GAab1rD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKqrD,eACDx+C,EAAYw+C,eAEhBrrD,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKi0B,aACDpnB,EAAYonB,aAEpBj0B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mDAAyD0+C,GAKlE,MAAMC,GAYb3rD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKqrD,eACDx+C,EAAYw+C,eAEhBrrD,KAAK8xB,OACDjlB,EAAYilB,OAEpB9xB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kDAAwD2+C,GAKjE,MAAMC,GAYb5rD,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKyrD,kBAAehqD,EAChBoL,EAAY4+C,aAAc,CAC9BzrD,KAAKyrD,aAAe,GACpB,IAAK,IAAI7oD,EAAI,EAAGA,EAAIiK,EAAY4+C,aAAa5oD,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAY4+C,aAAa7oD,GAC7B,GAAkD,MAA9CiK,EAAY4+C,aAAa7oD,GAAG,eAE9BwK,GADIA,EAAoBP,EAAY4+C,aAAa7oD,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyrD,aAAa7oD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4+C,aAAa7oD,UAGlF5C,KAAKyrD,aAAa7oD,GAAK,IAAIklD,GAA0Cj7C,EAAY4+C,aAAa7oD,SAGlG5C,KAAKyrD,aAAa7oD,QAAKnB,GASvB,GAJIzB,KAAK0rD,kBACD7+C,EAAY6+C,kBAEpB1rD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iEAAuE4+C,GAKhF,MAAMG,GAYb/rD,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK4rD,kBAAenqD,EAChBoL,EAAY++C,aAAc,CAC9B5rD,KAAK4rD,aAAe,GACpB,IAAK,IAAIhpD,EAAI,EAAGA,EAAIiK,EAAY++C,aAAa/oD,OAAQD,IAClB,MAA/BiK,EAAY++C,aAAahpD,GACzB5C,KAAK4rD,aAAahpD,GACdiK,EAAY++C,aAAahpD,GAEjC5C,KAAK4rD,aAAahpD,QAAKnB,EAKnBzB,KAAK6rD,0BACDh/C,EAAYg/C,0BAEhB7rD,KAAK8rD,WACDj/C,EAAYi/C,YAItBl/C,EAAgB,qCAA2C++C,GAKpD,MAAM5C,GAuBbnpD,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAK+oB,eACDlc,EAAYkc,eAEhB/oB,KAAK+rD,mBACDl/C,EAAYk/C,mBAEhB/rD,KAAKgsD,aACDn/C,EAAYm/C,aAEhBhsD,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK4Q,iBACA/D,EAAY+D,4BAA4B3J,KAAQ4F,EAAY+D,iBAC1B,MAAhC/D,EAAY+D,kBAA4BtC,EAAAA,EAAAA,IAAiCzB,EAAY+D,iBAAkB,sBAAsB,QAASnP,EAE7IzB,KAAK+nD,uBACsC,MAAtCl7C,EAAYk7C,uBAAkCthD,SAASoG,EAAYk7C,uBAAwB,SAAMtmD,EAEtGzB,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKgoD,2BAC0C,MAA1Cn7C,EAAYm7C,2BAAsCvhD,SAASoG,EAAYm7C,2BAA4B,SAAMvmD,EAEpF,MAA1BoL,EAAYo/C,WACZjsD,KAAKisD,gBAAaxqD,OACf,GAA6C,MAAzCoL,EAAYo/C,WAAW,eAC9BjsD,KAAKisD,WAAa,IAAIlC,GAA6Cl9C,EAAYo/C,gBAC5E,CAEH7+C,GADIA,EAAoBP,EAAYo/C,WAAW,gBACzB5+C,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKisD,WAAa,IAAIr/C,EAAiBQ,GAAWP,EAAYo/C,aAMtE,GADAjsD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uCAA6Cm8C,GAKtD,MAAMmD,GAabtsD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKmsD,aACDt/C,EAAYs/C,aAEhBnsD,KAAKosD,cACDv/C,EAAYu/C,cAEhBpsD,KAAKqsD,2BACDx/C,EAAYw/C,2BAEpBrsD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uDAA6Ds/C,GAKtE,MAAMI,GAab1sD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAKusD,gBAC+B,MAA/B1/C,EAAY0/C,gBAA2B9lD,SAASoG,EAAY0/C,gBAAiB,SAAM9qD,EAE5FzB,KAAKwsD,uBAAoB/qD,EACrBoL,EAAY2/C,kBAAmB,CACnCxsD,KAAKwsD,kBAAoB,GACzB,IAAK,IAAI5pD,EAAI,EAAGA,EAAIiK,EAAY2/C,kBAAkB3pD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY2/C,kBAAkB5pD,GAClC,GAAuD,MAAnDiK,EAAY2/C,kBAAkB5pD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY2/C,kBAAkB5pD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwsD,kBAAkB5pD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2/C,kBAAkB5pD,UAG5F5C,KAAKwsD,kBAAkB5pD,GAAK,IAAIspD,GAAuDr/C,EAAY2/C,kBAAkB5pD,SAGzH5C,KAAKwsD,kBAAkB5pD,QAAKnB,GAM5B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,8CAAoD0/C,GAK7D,MAAMG,GAmBb7sD,YAAYiN,GA+BV,GA9BFA,EAAcA,GAAe,GACvB7M,KAAK0sD,+BACD7/C,EAAY6/C,+BAEhB1sD,KAAKmsD,aACDt/C,EAAYs/C,aAEhBnsD,KAAKosD,cACDv/C,EAAYu/C,cAEhBpsD,KAAK2sD,UACD9/C,EAAY8/C,UAEhB3sD,KAAK4sD,aACD//C,EAAY+/C,aAEhB5sD,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAK6sD,oBACmC,MAAnChgD,EAAYggD,oBAA+BpmD,SAASoG,EAAYggD,oBAAqB,SAAMprD,EAEhGzB,KAAKqrD,eACDx+C,EAAYw+C,eAEhBrrD,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2CAAiD6/C,GAK1D,MAAMK,GAcbltD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKwpB,WACD3c,EAAY2c,WAEhBxpB,KAAKusD,gBAC+B,MAA/B1/C,EAAY0/C,gBAA2B9lD,SAASoG,EAAY0/C,gBAAiB,SAAM9qD,EAExFzB,KAAKosD,cACDv/C,EAAYu/C,cAEpBpsD,KAAK+sD,gBAAatrD,EACdoL,EAAYkgD,WAAY,CAC5B/sD,KAAK+sD,WAAa,GAClB,IAAK,IAAInqD,EAAI,EAAGA,EAAIiK,EAAYkgD,WAAWlqD,OAAQD,IAClB,MAA7BiK,EAAYkgD,WAAWnqD,GACvB5C,KAAK+sD,WAAWnqD,GACZiK,EAAYkgD,WAAWnqD,GAE/B5C,KAAK+sD,WAAWnqD,QAAKnB,EAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qDAA2DkgD,GAKpE,MAAM7gF,GAgBb2zB,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAKgtD,mBACDngD,EAAYmgD,mBAEc,MAA9BngD,EAAYogD,eACZjtD,KAAKitD,oBAAiBxrD,OACnB,GAAiD,MAA7CoL,EAAYogD,eAAe,eAClCjtD,KAAKitD,eAAiB,IAAInhF,GAA2B+gC,EAAYogD,oBAC9D,CACH,IAAI7/C,EAAoBP,EAAYogD,eAAe,eACnD7/C,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKitD,eAAiB,IAAIrgD,EAAiBQ,GAAWP,EAAYogD,iBAM1E,GADAjtD,KAAKqjD,gBAAa5hD,EACdoL,EAAYw2C,WAAY,CAC5BrjD,KAAKqjD,WAAa,GAClB,IAAK,IAAIzgD,EAAI,EAAGA,EAAIiK,EAAYw2C,WAAWxgD,OAAQD,IAClB,MAA7BiK,EAAYw2C,WAAWzgD,GACvB5C,KAAKqjD,WAAWzgD,GACZ6D,SAASoG,EAAYw2C,WAAWzgD,GAAI,IAE5C5C,KAAKqjD,WAAWzgD,QAAKnB,EAKjBzB,KAAKktD,kCACDrgD,EAAYqgD,kCAEhBltD,KAAKmtD,iCACDtgD,EAAYsgD,iCAEhBntD,KAAKotD,qCACDvgD,EAAYugD,qCAEhBptD,KAAKqtD,oCACDxgD,EAAYwgD,qCAItBzgD,EAAgB,gDAAsD3gC,GAK/D,MAAMw8E,GAYb7oD,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAKgtD,mBACDngD,EAAYmgD,mBAEc,MAA9BngD,EAAYogD,eACZjtD,KAAKitD,oBAAiBxrD,OACnB,GAAiD,MAA7CoL,EAAYogD,eAAe,eAClCjtD,KAAKitD,eAAiB,IAAInhF,GAA2B+gC,EAAYogD,oBAC9D,CAEH7/C,GADIA,EAAoBP,EAAYogD,eAAe,gBAC7B5/C,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKitD,eAAiB,IAAIrgD,EAAiBQ,GAAWP,EAAYogD,iBAM1E,GADAjtD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4B67C,GAKrC,MAAM38E,GAgBb8zB,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKstD,YACDzgD,EAAYygD,YAEhBttD,KAAKutD,aACD1gD,EAAY0gD,aAEhBvtD,KAAKwtD,SACD3gD,EAAY2gD,SAEhBxtD,KAAKytD,aACD5gD,EAAY4gD,aAEpBztD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiC9gC,GAK1C,MAAM4hF,GAWb9tD,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKwoD,uBAAoB/mD,EACrBoL,EAAY27C,kBAAmB,CACnCxoD,KAAKwoD,kBAAoB,GACzB,IAAK,IAAI5lD,EAAI,EAAGA,EAAIiK,EAAY27C,kBAAkB3lD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY27C,kBAAkB5lD,GAClC,GAAuD,MAAnDiK,EAAY27C,kBAAkB5lD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY27C,kBAAkB5lD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwoD,kBAAkB5lD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY27C,kBAAkB5lD,UAG5F5C,KAAKwoD,kBAAkB5lD,GAAK,IAAI6lD,GAAsB57C,EAAY27C,kBAAkB5lD,SAGxF5C,KAAKwoD,kBAAkB5lD,QAAKnB,GAM5B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iCAAuC8gD,GAKhD,MAAMC,GAeb/tD,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAK4tD,iBACD/gD,EAAY+gD,iBAEhB5tD,KAAK6tD,qBACDhhD,EAAYghD,qBAEpB7tD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB+gD,GAKlC,MAAMG,GAmBbluD,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAK+tD,gBAC+B,MAA/BlhD,EAAYkhD,gBAA2BtnD,SAASoG,EAAYkhD,gBAAiB,SAAMtsD,EAExFzB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAKguD,qBACDnhD,EAAYmhD,qBAEhBhuD,KAAKiuD,sBACDphD,EAAYohD,sBAEhBjuD,KAAKkuD,SACDrhD,EAAYqhD,SAEhBluD,KAAKmuD,UACDthD,EAAYshD,UAEhBnuD,KAAKm/C,MACDtyC,EAAYsyC,MAEhBn/C,KAAKouD,8BACDvhD,EAAYuhD,8BAEhBpuD,KAAKquD,+BACDxhD,EAAYwhD,+BAEpBruD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BkhD,GAKvC,MAAMriF,WACHkiF,GAaV/tD,YAAYiN,GAMV,GALFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKsuD,YACDzhD,EAAYyhD,YAEpBtuD,KAAKuuD,YAAS9sD,EACVoL,EAAY0hD,OAAQ,CACxBvuD,KAAKuuD,OAAS,GACd,IAAK,IAAI3rD,EAAI,EAAGA,EAAIiK,EAAY0hD,OAAO1rD,OAAQD,IAC/C,GAA6B,MAAzBiK,EAAY0hD,OAAO3rD,GACvB,GAA4C,MAAxCiK,EAAY0hD,OAAO3rD,GAAG,eAAwB,CAChD,IAAIwK,EAAoBP,EAAY0hD,OAAO3rD,GAAG,eAC9CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuuD,OAAO3rD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0hD,OAAO3rD,UAGtE5C,KAAKuuD,OAAO3rD,GAAK,IAAIxuB,GAAyBy4B,EAAY0hD,OAAO3rD,SAGrE5C,KAAKuuD,OAAO3rD,QAAKnB,EAKbzB,KAAK68B,YACDhwB,EAAYgwB,YAEpB78B,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0BnhC,GAKnC,MAAM2I,WACH05E,GAaVluD,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKwuD,mBACD3hD,EAAY2hD,mBAEhBxuD,KAAKyuD,eACD5hD,EAAY4hD,eAEhBzuD,KAAK0uD,mBACD7hD,EAAY6hD,mBAEpB1uD,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+Bx4B,GAKxC,MAAMu6E,WACHhB,GAYV/tD,YAAYiN,GAMV,GALFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKsuD,YACDzhD,EAAYyhD,YAEpBtuD,KAAKuuD,YAAS9sD,EACVoL,EAAY0hD,OAAQ,CACxBvuD,KAAKuuD,OAAS,GACd,IAAK,IAAI3rD,EAAI,EAAGA,EAAIiK,EAAY0hD,OAAO1rD,OAAQD,IAC/C,GAA6B,MAAzBiK,EAAY0hD,OAAO3rD,GACvB,GAA4C,MAAxCiK,EAAY0hD,OAAO3rD,GAAG,eAAwB,CAChD,IAAIwK,EAAoBP,EAAY0hD,OAAO3rD,GAAG,eAC9CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuuD,OAAO3rD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0hD,OAAO3rD,UAGtE5C,KAAKuuD,OAAO3rD,GAAK,IAAIgsD,GAA4B/hD,EAAY0hD,OAAO3rD,SAGxE5C,KAAKuuD,OAAO3rD,QAAKnB,EAKjBzB,KAAK,eAAiB,oEAIxB4M,EAAgB,uBAA6B+hD,GAKtC,MAAMC,WACHd,GAWVluD,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKwuD,mBACD3hD,EAAY2hD,mBAEpBxuD,KAAK,eAAiB,yEAIxB4M,EAAgB,4BAAkCgiD,GAK3C,MAAMl5E,GAYbkqB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+Bl3B,GAKxC,MAAMm5E,GAYbjvD,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK8uD,YAC2B,MAA3BjiD,EAAYiiD,YAAuBroD,SAASoG,EAAYiiD,YAAa,SAAMrtD,EAEhFzB,KAAK+uD,OACsB,MAAtBliD,EAAYkiD,OAAkBtoD,SAASoG,EAAYkiD,OAAQ,SAAMttD,EAE1EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCiiD,GAK5C,MAAM5rC,GAyBbrjB,YAAYiN,GAmDV,GAlDFA,EAAcA,GAAe,GACvB7M,KAAK+iB,kBACDlW,EAAYkW,kBAEhB/iB,KAAKgvD,aACDniD,EAAYmiD,aAEhBhvD,KAAKivD,uBACDpiD,EAAYoiD,uBAEhBjvD,KAAKkxB,UACDrkB,EAAYqkB,UAEhBlxB,KAAKkvD,eACAriD,EAAYqiD,0BAA0BjoD,KAAQ4F,EAAYqiD,eAC1B,MAA9BriD,EAAYqiD,gBAA0B5gD,EAAAA,EAAAA,IAAiCzB,EAAYqiD,eAAgB,sBAAsB,QAASztD,EAEzIzB,KAAKmvD,eACAtiD,EAAYsiD,0BAA0BloD,KAAQ4F,EAAYsiD,eAC1B,MAA9BtiD,EAAYsiD,gBAA0B7gD,EAAAA,EAAAA,IAAiCzB,EAAYsiD,eAAgB,sBAAsB,QAAS1tD,EAEzIzB,KAAKovD,YACAviD,EAAYuiD,uBAAuBnoD,KAAQ4F,EAAYuiD,YAC1B,MAA3BviD,EAAYuiD,aAAuB9gD,EAAAA,EAAAA,IAAiCzB,EAAYuiD,YAAa,sBAAsB,QAAS3tD,EAEnIzB,KAAKkjB,qBACDrW,EAAYqW,qBAEhBljB,KAAKqvD,4BACDxiD,EAAYwiD,4BAEhBrvD,KAAKsvD,+BACDziD,EAAYyiD,+BAEhBtvD,KAAKuvD,iBACD1iD,EAAY0iD,iBAEhBvvD,KAAKwvD,0BACD3iD,EAAY2iD,0BAEhBxvD,KAAKyvD,cACD5iD,EAAY4iD,cAEhBzvD,KAAK0vD,eACD7iD,EAAY6iD,eAEhB1vD,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBqW,GAKjC,MAAMx5B,GAcbmW,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAK2vD,OACD9iD,EAAY8iD,OAEhB3vD,KAAK8iD,KACDj2C,EAAYi2C,KAEpB9iD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BnjB,GAKpC,MAAMuC,GAoBb4T,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK02C,WACD7pC,EAAY6pC,WAEhB12C,KAAK4vD,oBACD/iD,EAAY+iD,oBAEhB5vD,KAAK6vD,gBACDhjD,EAAYgjD,gBAEpB7vD,KAAK8vD,mBAAgBruD,EACjBoL,EAAYijD,cAAe,CAC/B9vD,KAAK8vD,cAAgB,GACrB,IAAK,IAAIltD,EAAI,EAAGA,EAAIiK,EAAYijD,cAAcjtD,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAYijD,cAAcltD,GAC9B,GAAmD,MAA/CiK,EAAYijD,cAAcltD,GAAG,eAE/BwK,GADIA,EAAoBP,EAAYijD,cAAcltD,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8vD,cAAcltD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYijD,cAAcltD,UAGpF5C,KAAK8vD,cAAcltD,GAAK,IAAImtD,GAAkBljD,EAAYijD,cAAcltD,SAG5E5C,KAAK8vD,cAAcltD,QAAKnB,GAMxB,GADAzB,KAAKgwD,kBAAevuD,EAChBoL,EAAYmjD,aAAc,CAC9BhwD,KAAKgwD,aAAe,GACpB,IAASptD,EAAI,EAAGA,EAAIiK,EAAYmjD,aAAantD,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYmjD,aAAaptD,GAC7B,GAAkD,MAA9CiK,EAAYmjD,aAAaptD,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYmjD,aAAaptD,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgwD,aAAaptD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmjD,aAAaptD,UAGlF5C,KAAKgwD,aAAaptD,GAAK,IAAIqtD,GAAwBpjD,EAAYmjD,aAAaptD,SAGhF5C,KAAKgwD,aAAaptD,QAAKnB,GAuBvB,GAlBIzB,KAAKkwD,sBACArjD,EAAYqjD,iCAAiCjpD,KAAQ4F,EAAYqjD,sBAC1B,MAArCrjD,EAAYqjD,uBAAiC5hD,EAAAA,EAAAA,IAAiCzB,EAAYqjD,sBAAuB,sBAAsB,QAASzuD,EAEvJzB,KAAKmwD,2BACAtjD,EAAYsjD,sCAAsClpD,KAAQ4F,EAAYsjD,2BAC1B,MAA1CtjD,EAAYsjD,4BAAsC7hD,EAAAA,EAAAA,IAAiCzB,EAAYsjD,2BAA4B,sBAAsB,QAAS1uD,EAEjKzB,KAAKowD,sBACDvjD,EAAYujD,sBAEhBpwD,KAAKqwD,2BACDxjD,EAAYwjD,2BAEhBrwD,KAAKswD,kBACiC,MAAjCzjD,EAAYyjD,kBAA6B7pD,SAASoG,EAAYyjD,kBAAmB,SAAM7uD,EAEhGzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iBAAuB5gB,GAKhC,MAAM9Z,GAsBb0tB,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK+uD,OACsB,MAAtBliD,EAAYkiD,OAAkBtoD,SAASoG,EAAYkiD,OAAQ,SAAMttD,EAE/C,MAAvBoL,EAAY0b,QACZvoB,KAAKuoB,aAAU9mB,OACZ,GAA0C,MAAtCoL,EAAY0b,QAAQ,eAC3BvoB,KAAKuoB,QAAU,IAAIn8C,GAAmBygC,EAAY0b,aAC/C,CAEHnb,GADIA,EAAoBP,EAAY0b,QAAQ,gBACtBlb,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuoB,QAAU,IAAI3b,EAAiBQ,GAAWP,EAAY0b,UAQnE,GAHIvoB,KAAKuwD,6BAC4C,MAA5C1jD,EAAY0jD,6BAAwCrjD,WAAWL,EAAY0jD,mCAAgC9uD,EAExF,MAAxBoL,EAAY2jD,SACZxwD,KAAKwwD,cAAW/uD,OACb,GAA2C,MAAvCoL,EAAY2jD,SAAS,eAC5BxwD,KAAKwwD,SAAW,IAAIC,GAAqB5jD,EAAY2jD,cAClD,CAEHpjD,GADIA,EAAoBP,EAAY2jD,SAAS,gBACvBnjD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwwD,SAAW,IAAI5jD,EAAiBQ,GAAWP,EAAY2jD,WASpE,GAJIxwD,KAAKngB,YACDgtB,EAAYhtB,YAEpBmgB,KAAK0wD,gBAAajvD,EACdoL,EAAY6jD,WAAY,CAC5B1wD,KAAK0wD,WAAa,GAClB,IAAK,IAAI9tD,EAAI,EAAGA,EAAIiK,EAAY6jD,WAAW7tD,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY6jD,WAAW9tD,GAC3B,GAAgD,MAA5CiK,EAAY6jD,WAAW9tD,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6jD,WAAW9tD,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0wD,WAAW9tD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6jD,WAAW9tD,UAG9E5C,KAAK0wD,WAAW9tD,GAAK,IAAI6lD,GAAsB57C,EAAY6jD,WAAW9tD,SAG1E5C,KAAK0wD,WAAW9tD,QAAKnB,GAqBrB,GAhBIzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2wD,iBACD9jD,EAAY8jD,iBAEhB3wD,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKujD,cACD12C,EAAY02C,cAEpBvjD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4B16B,GAKrC,MAAM9F,GA4BbwzB,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK2wD,iBACD9jD,EAAY8jD,iBAEhB3wD,KAAKkjB,qBACDrW,EAAYqW,qBAEhBljB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAElFzB,KAAK86C,gBAC+B,MAA/BjuC,EAAYiuC,gBAA2Br0C,SAASoG,EAAYiuC,gBAAiB,SAAMr5C,EAE5FzB,KAAK4wD,gBAAanvD,EACdoL,EAAY+jD,WAAY,CAC5B5wD,KAAK4wD,WAAa,GAClB,IAAK,IAAIhuD,EAAI,EAAGA,EAAIiK,EAAY+jD,WAAW/tD,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY+jD,WAAWhuD,GAC3B,GAAgD,MAA5CiK,EAAY+jD,WAAWhuD,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY+jD,WAAWhuD,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4wD,WAAWhuD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+jD,WAAWhuD,UAG9E5C,KAAK4wD,WAAWhuD,GAAK,IAAI1wB,GAAsB26B,EAAY+jD,WAAWhuD,SAG1E5C,KAAK4wD,WAAWhuD,QAAKnB,GASrB,GAJIzB,KAAK6wD,WACDhkD,EAAYgkD,WAEpB7wD,KAAK0wD,gBAAajvD,EACdoL,EAAY6jD,WAAY,CAC5B1wD,KAAK0wD,WAAa,GAClB,IAAS9tD,EAAI,EAAGA,EAAIiK,EAAY6jD,WAAW7tD,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY6jD,WAAW9tD,GAC3B,GAAgD,MAA5CiK,EAAY6jD,WAAW9tD,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6jD,WAAW9tD,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0wD,WAAW9tD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6jD,WAAW9tD,UAG9E5C,KAAK0wD,WAAW9tD,GAAK,IAAI6lD,GAAsB57C,EAAY6jD,WAAW9tD,SAG1E5C,KAAK0wD,WAAW9tD,QAAKnB,GAKrB,GAA4B,MAAxBoL,EAAY2jD,SACZxwD,KAAKwwD,cAAW/uD,OACb,GAA2C,MAAvCoL,EAAY2jD,SAAS,eAC5BxwD,KAAKwwD,SAAW,IAAIC,GAAqB5jD,EAAY2jD,cAClD,CAEHpjD,GADIA,EAAoBP,EAAY2jD,SAAS,gBACvBnjD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwwD,SAAW,IAAI5jD,EAAiBQ,GAAWP,EAAY2jD,WAMpE,GADAxwD,KAAK0jB,oBAAiBjiB,EAClBoL,EAAY6W,eAAgB,CAChC1jB,KAAK0jB,eAAiB,GACtB,IAAS9gB,EAAI,EAAGA,EAAIiK,EAAY6W,eAAe7gB,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAY6W,eAAe9gB,GAC/B,GAAoD,MAAhDiK,EAAY6W,eAAe9gB,GAAG,eAEhCwK,GADIA,EAAoBP,EAAY6W,eAAe9gB,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0jB,eAAe9gB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6W,eAAe9gB,UAGtF5C,KAAK0jB,eAAe9gB,GAAK,IAAIkuD,GAAyBjkD,EAAY6W,eAAe9gB,SAGrF5C,KAAK0jB,eAAe9gB,QAAKnB,GAezB,GAVIzB,KAAK+wD,gBACDlkD,EAAYkkD,gBAEhB/wD,KAAKgxD,cACDnkD,EAAYmkD,cAEhBhxD,KAAKixD,qBACDpkD,EAAYokD,qBAEpBjxD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyBxgC,GAKlC,MAAMqkF,GAwCb7wD,YAAYiN,GA+FV,GA9FFA,EAAcA,GAAe,GACvB7M,KAAK4pD,gBACD/8C,EAAY+8C,gBAEhB5pD,KAAKkxD,kBACDrkD,EAAYqkD,kBAEhBlxD,KAAKmxD,wBACDtkD,EAAYskD,wBAEhBnxD,KAAKoxD,wBACDvkD,EAAYukD,wBAEhBpxD,KAAKqxD,0BACDxkD,EAAYwkD,0BAEhBrxD,KAAKsxD,gBACDzkD,EAAYykD,gBAEhBtxD,KAAKuxD,8BACD1kD,EAAY0kD,8BAEhBvxD,KAAKwxD,uBACD3kD,EAAY2kD,uBAEhBxxD,KAAKyxD,gBACD5kD,EAAY4kD,gBAEhBzxD,KAAK0xD,mBACD7kD,EAAY6kD,mBAEhB1xD,KAAKuvD,iBACD1iD,EAAY0iD,iBAEhBvvD,KAAK2xD,0CACD9kD,EAAY8kD,0CAEhB3xD,KAAK4xD,oCACD/kD,EAAY+kD,oCAEhB5xD,KAAK6xD,uBACDhlD,EAAYglD,uBAEhB7xD,KAAK8xD,qCACAjlD,EAAYilD,gDAAgD7qD,KAAQ4F,EAAYilD,qCAC1B,MAApDjlD,EAAYilD,sCAAgDxjD,EAAAA,EAAAA,IAAiCzB,EAAYilD,qCAAsC,sBAAsB,QAASrwD,EAErLzB,KAAK+xD,mCACAllD,EAAYklD,8CAA8C9qD,KAAQ4F,EAAYklD,mCAC1B,MAAlDllD,EAAYklD,oCAA8CzjD,EAAAA,EAAAA,IAAiCzB,EAAYklD,mCAAoC,sBAAsB,QAAStwD,EAEjLzB,KAAKgyD,sCACDnlD,EAAYmlD,sCAEhBhyD,KAAKiyD,wDACDplD,EAAYolD,wDAEhBjyD,KAAKkyD,+BACDrlD,EAAYqlD,+BAEhBlyD,KAAKmyD,iBACDtlD,EAAYslD,iBAEhBnyD,KAAKoyD,2BACDvlD,EAAYulD,2BAEhBpyD,KAAKqyD,kCACDxlD,EAAYwlD,kCAEhBryD,KAAKsyD,6BACDzlD,EAAYylD,6BAEhBtyD,KAAKuyD,iDACD1lD,EAAY0lD,iDAEhBvyD,KAAKwyD,uBACD3lD,EAAY2lD,uBAEhBxyD,KAAKyyD,gBAC+B,MAA/B5lD,EAAY4lD,gBAA2BvlD,WAAWL,EAAY4lD,sBAAmBhxD,EAEtFzB,KAAKioC,gBAC+B,MAA/Bp7B,EAAYo7B,gBAA2B/6B,WAAWL,EAAYo7B,sBAAmBxmC,EAEtFzB,KAAK0yD,gBAC+B,MAA/B7lD,EAAY6lD,gBAA2BxlD,WAAWL,EAAY6lD,sBAAmBjxD,EAEtFzB,KAAK2yD,mBACkC,MAAlC9lD,EAAY8lD,mBAA8BzlD,WAAWL,EAAY8lD,yBAAsBlxD,EAE5FzB,KAAK2a,oBACD9N,EAAY8N,oBAEpB3a,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B6jD,GAKpC,MAAMK,GAsBblxD,YAAYiN,GAgCV,GA/BFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK2wD,iBACD9jD,EAAY8jD,iBAEhB3wD,KAAKkjB,qBACDrW,EAAYqW,qBAEhBljB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAElFzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAEhD,MAAxBoL,EAAY2jD,SACZxwD,KAAKwwD,cAAW/uD,OACb,GAA2C,MAAvCoL,EAAY2jD,SAAS,eAC5BxwD,KAAKwwD,SAAW,IAAIC,GAAqB5jD,EAAY2jD,cAClD,CAEHpjD,GADIA,EAAoBP,EAAY2jD,SAAS,gBACvBnjD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwwD,SAAW,IAAI5jD,EAAiBQ,GAAWP,EAAY2jD,WAMpE,GADAxwD,KAAK0wD,gBAAajvD,EACdoL,EAAY6jD,WAAY,CAC5B1wD,KAAK0wD,WAAa,GAClB,IAAK,IAAI9tD,EAAI,EAAGA,EAAIiK,EAAY6jD,WAAW7tD,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY6jD,WAAW9tD,GAC3B,GAAgD,MAA5CiK,EAAY6jD,WAAW9tD,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6jD,WAAW9tD,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0wD,WAAW9tD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6jD,WAAW9tD,UAG9E5C,KAAK0wD,WAAW9tD,GAAK,IAAI6lD,GAAsB57C,EAAY6jD,WAAW9tD,SAG1E5C,KAAK0wD,WAAW9tD,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+BkkD,GAKxC,MAAM7jF,GA2Bb2yB,YAAYiN,GA0CV,GAzCFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK+wD,gBACDlkD,EAAYkkD,gBAEhB/wD,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKo1B,WACDvoB,EAAYuoB,WAEhBp1B,KAAK4yD,cAC6B,MAA7B/lD,EAAY+lD,cAAyB1lD,WAAWL,EAAY+lD,oBAAiBnxD,EAElFzB,KAAK6yD,aACDhmD,EAAYgmD,aAEhB7yD,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAKylD,gBAC+B,MAA/B54C,EAAY44C,gBAA2Bv4C,WAAWL,EAAY44C,sBAAmBhkD,EAEtFzB,KAAKwlD,gBAC+B,MAA/B34C,EAAY24C,gBAA2Bt4C,WAAWL,EAAY24C,sBAAmB/jD,EAEtFzB,KAAKiN,aAC4B,MAA5BJ,EAAYI,aAAwBC,WAAWL,EAAYI,mBAAgBxL,EAEpFzB,KAAKkO,qBAAkBzM,EACnBoL,EAAYqB,gBAAiB,CACjClO,KAAKkO,gBAAkB,GACvB,IAAK,IAAItL,EAAI,EAAGA,EAAIiK,EAAYqB,gBAAgBrL,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYqB,gBAAgBtL,GAChC,GAAqD,MAAjDiK,EAAYqB,gBAAgBtL,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYqB,gBAAgBtL,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkO,gBAAgBtL,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYqB,gBAAgBtL,UAGxF5C,KAAKkO,gBAAgBtL,GAAK,IAAI/tB,EAAoBg4B,EAAYqB,gBAAgBtL,SAGlF5C,KAAKkO,gBAAgBtL,QAAKnB,GAe1B,GAVIzB,KAAK4iB,gBACD/V,EAAY+V,gBAEhB5iB,KAAK86C,gBAC+B,MAA/BjuC,EAAYiuC,gBAA2Br0C,SAASoG,EAAYiuC,gBAAiB,SAAMr5C,EAExFzB,KAAKkjB,qBACDrW,EAAYqW,qBAEpBljB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yBAA+B3/B,GAKxC,MAAMyF,GAiBbktB,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK2qB,MACD9d,EAAY8d,MAEM,MAAtB9d,EAAYimD,OACZ9yD,KAAK8yD,YAASrxD,OACX,GAAyC,MAArCoL,EAAYimD,OAAO,eAC1B9yD,KAAK8yD,OAAS,IAAIplD,GAAsBb,EAAYimD,YACjD,CAEH1lD,GADIA,EAAoBP,EAAYimD,OAAO,gBACrBzlD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8yD,OAAS,IAAIlmD,EAAiBQ,GAAWP,EAAYimD,SAKlE,GAA0B,MAAtBjmD,EAAYkmD,OACZ/yD,KAAK+yD,YAAStxD,OACX,GAAyC,MAArCoL,EAAYkmD,OAAO,eAC1B/yD,KAAK+yD,OAAS,IAAIrlD,GAAsBb,EAAYkmD,YACjD,CAEH3lD,GADIA,EAAoBP,EAAYkmD,OAAO,gBACrB1lD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+yD,OAAS,IAAInmD,EAAiBQ,GAAWP,EAAYkmD,SAKlE,GAA0B,MAAtBlmD,EAAYmmD,OACZhzD,KAAKgzD,YAASvxD,OACX,GAAyC,MAArCoL,EAAYmmD,OAAO,eAC1BhzD,KAAKgzD,OAAS,IAAItlD,GAAsBb,EAAYmmD,YACjD,CAEH5lD,GADIA,EAAoBP,EAAYmmD,OAAO,gBACrB3lD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgzD,OAAS,IAAIpmD,EAAiBQ,GAAWP,EAAYmmD,SAelE,GAVIhzD,KAAKizD,eACDpmD,EAAYomD,eAEhBjzD,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKwtD,SACD3gD,EAAY2gD,SAEpBxtD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4Bl6B,GAKrC,MAAM1a,GAYb4nC,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKkzD,gCAC+C,MAA/CrmD,EAAYqmD,gCAA2ChmD,WAAWL,EAAYqmD,sCAAmCzxD,EAE1HzB,KAAKmzD,6BAA0B1xD,EAC3BoL,EAAYsmD,wBAAyB,CACzCnzD,KAAKmzD,wBAA0B,GAC/B,IAAK,IAAIvwD,EAAI,EAAGA,EAAIiK,EAAYsmD,wBAAwBtwD,OAAQD,IAAK,CACrE,GAA8C,MAA1CiK,EAAYsmD,wBAAwBvwD,GACxC,GAA6D,MAAzDiK,EAAYsmD,wBAAwBvwD,GAAG,eAEzCwK,GADIA,EAAoBP,EAAYsmD,wBAAwBvwD,GAAG,gBACzCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmzD,wBAAwBvwD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYsmD,wBAAwBvwD,UAGxG5C,KAAKmzD,wBAAwBvwD,GAAK,IAAIsY,GAA4BrO,EAAYsmD,wBAAwBvwD,SAG1G5C,KAAKmzD,wBAAwBvwD,QAAKnB,GAMlC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oCAA0C50C,GAKnD,MAAM+3F,GAgBbnwD,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKozD,kBAAe3xD,EAChBoL,EAAYumD,aAAc,CAC9BpzD,KAAKozD,aAAe,GACpB,IAAK,IAAIxwD,EAAI,EAAGA,EAAIiK,EAAYumD,aAAavwD,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYumD,aAAaxwD,GAC7B,GAAkD,MAA9CiK,EAAYumD,aAAaxwD,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYumD,aAAaxwD,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKozD,aAAaxwD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYumD,aAAaxwD,UAGlF5C,KAAKozD,aAAaxwD,GAAK,IAAIywD,GAAiBxmD,EAAYumD,aAAaxwD,SAGzE5C,KAAKozD,aAAaxwD,QAAKnB,GAMvB,GADAzB,KAAKszD,sBAAmB7xD,EACpBoL,EAAYymD,iBAAkB,CAClCtzD,KAAKszD,iBAAmB,GACxB,IAAS1wD,EAAI,EAAGA,EAAIiK,EAAYymD,iBAAiBzwD,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYymD,iBAAiB1wD,GACjC,GAAsD,MAAlDiK,EAAYymD,iBAAiB1wD,GAAG,eAElCwK,GADIA,EAAoBP,EAAYymD,iBAAiB1wD,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKszD,iBAAiB1wD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYymD,iBAAiB1wD,UAG1F5C,KAAKszD,iBAAiB1wD,GAAK,IAAI2wD,GAAqB1mD,EAAYymD,iBAAiB1wD,SAGrF5C,KAAKszD,iBAAiB1wD,QAAKnB,GAS3B,GAJIzB,KAAKwzD,6BAC4C,MAA5C3mD,EAAY2mD,6BAAwC/sD,SAASoG,EAAY2mD,6BAA8B,SAAM/xD,EAEtHzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwBmjD,GAKjC,MAAMsD,GAcbzzD,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKyzD,OACD5mD,EAAY4mD,OAEhBzzD,KAAK0zD,UACyB,MAAzB7mD,EAAY6mD,UAAqBxmD,WAAWL,EAAY6mD,gBAAajyD,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBymD,GAKhC,MAAME,GAeb3zD,YAAYiN,GAoBV,GAnBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKyzD,OACD5mD,EAAY4mD,OAEhBzzD,KAAK2zD,oBACmC,MAAnC9mD,EAAY8mD,oBAA+BltD,SAASoG,EAAY8mD,oBAAqB,SAAMlyD,EAEhGzB,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE/HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B2mD,GAKpC,MAAMtD,GAqBbrwD,YAAYiN,GAoCV,GAnCFA,EAAcA,GAAe,GACvB7M,KAAK4zD,aACD/mD,EAAY+mD,aAEhB5zD,KAAK6zD,oBACDhnD,EAAYgnD,oBAEhB7zD,KAAK8zD,qBACDjnD,EAAYinD,qBAEhB9zD,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK+zD,cACDlnD,EAAYknD,cAEhB/zD,KAAKg0D,aAC4B,MAA5BnnD,EAAYmnD,aAAwB9mD,WAAWL,EAAYmnD,mBAAgBvyD,EAEhFzB,KAAKi0D,WAC0B,MAA1BpnD,EAAYonD,WAAsB/mD,WAAWL,EAAYonD,iBAAcxyD,EAE5EzB,KAAKk0D,cAC6B,MAA7BrnD,EAAYqnD,cAAyBhnD,WAAWL,EAAYqnD,oBAAiBzyD,EAElFzB,KAAKm0D,aAC4B,MAA5BtnD,EAAYsnD,aAAwBjnD,WAAWL,EAAYsnD,mBAAgB1yD,EAEhFzB,KAAKo0D,mBACkC,MAAlCvnD,EAAYunD,mBAA8BlnD,WAAWL,EAAYunD,yBAAsB3yD,EAE5FzB,KAAKq0D,eAC8B,MAA9BxnD,EAAYwnD,eAA0BnnD,WAAWL,EAAYwnD,qBAAkB5yD,EAExFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BqjD,GAKvC,MAAM1jE,GAebqT,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKkxC,YACDrkC,EAAYqkC,YAEhBlxC,KAAKs0D,cACAznD,EAAYynD,yBAAyBrtD,KAAQ4F,EAAYynD,cAC1B,MAA7BznD,EAAYynD,eAAyBhmD,EAAAA,EAAAA,IAAiCzB,EAAYynD,cAAe,sBAAsB,QAAS7yD,EAEvIzB,KAAKu0D,eACD1nD,EAAY0nD,eAEhBv0D,KAAKw0D,eACA3nD,EAAY2nD,0BAA0BvtD,KAAQ4F,EAAY2nD,eAC1B,MAA9B3nD,EAAY2nD,gBAA0BlmD,EAAAA,EAAAA,IAAiCzB,EAAY2nD,eAAgB,sBAAsB,QAAS/yD,EAEzIzB,KAAKy0D,0BACyC,MAAzC5nD,EAAY4nD,0BAAqCvnD,WAAWL,EAAY4nD,gCAA6BhzD,EAE1GzB,KAAKy6B,cACD5tB,EAAY4tB,eAItB7tB,EAAgB,4BAAkCrgB,GAK3C,MAAMY,GAmBbyS,YAAYiN,GAgCV,GA/BFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK8V,QACuB,MAAvBjJ,EAAYiJ,QAAmB5I,WAAWL,EAAYiJ,cAAWrU,EAEtEzB,KAAK00D,oBACD7nD,EAAY6nD,oBAEhB10D,KAAK20D,sBACqC,MAArC9nD,EAAY8nD,sBAAiCznD,WAAWL,EAAY8nD,4BAAyBlzD,EAElGzB,KAAK40D,iBACD/nD,EAAY+nD,iBAEhB50D,KAAK6c,oBACmC,MAAnChQ,EAAYgQ,oBAA+B3P,WAAWL,EAAYgQ,0BAAuBpb,EAE9FzB,KAAKyc,mBACA5P,EAAY4P,8BAA8BxV,KAAQ4F,EAAY4P,mBAC1B,MAAlC5P,EAAY4P,oBAA8BnO,EAAAA,EAAAA,IAAiCzB,EAAY4P,mBAAoB,sBAAsB,QAAShb,EAEjJzB,KAAK2c,mBACA9P,EAAY8P,8BAA8B1V,KAAQ4F,EAAY8P,mBAC1B,MAAlC9P,EAAY8P,oBAA8BrO,EAAAA,EAAAA,IAAiCzB,EAAY8P,mBAAoB,sBAAsB,QAASlb,EAEjJzB,KAAK4c,uBACD/P,EAAY+P,uBAEpB5c,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,cAAoBzf,GAK7B,MAAMtD,GAkBb+V,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK60D,cACDhoD,EAAYgoD,cAEhB70D,KAAK80D,YACDjoD,EAAYioD,YAEhB90D,KAAK+0D,gBACDloD,EAAYkoD,gBAEhB/0D,KAAKg1D,qBACDnoD,EAAYmoD,qBAEhBh1D,KAAKi1D,oBACDpoD,EAAYooD,oBAEhBj1D,KAAKk1D,uBACDroD,EAAYqoD,uBAEhBl1D,KAAKm1D,2BACDtoD,EAAYsoD,2BAEpBn1D,KAAKqY,iBAAc5W,EACfoL,EAAYwL,YAAa,CAC7BrY,KAAKqY,YAAc,GACnB,IAAK,IAAIzV,EAAI,EAAGA,EAAIiK,EAAYwL,YAAYxV,OAAQD,IAClB,MAA9BiK,EAAYwL,YAAYzV,GACxB5C,KAAKqY,YAAYzV,GACbiK,EAAYwL,YAAYzV,GAEhC5C,KAAKqY,YAAYzV,QAAKnB,EAMtB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+B/iB,GAKxC,MAAMoB,GAab2U,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKq8B,QACDxvB,EAAYwvB,QAEhBr8B,KAAKisB,UACDpf,EAAYof,UAEpBjsB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6B3hB,GAKtC,MAAMmqE,WACHvoE,GAUV+S,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0BwoD,GAKnC,MAAMxpE,WACHwpE,GAWVx1D,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKq1D,yBAAsB5zD,EACvBoL,EAAYwoD,oBAAqB,CACrCr1D,KAAKq1D,oBAAsB,GAC3B,IAAK,IAAIzyD,EAAI,EAAGA,EAAIiK,EAAYwoD,oBAAoBxyD,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYwoD,oBAAoBzyD,GACpC,GAAyD,MAArDiK,EAAYwoD,oBAAoBzyD,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYwoD,oBAAoBzyD,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq1D,oBAAoBzyD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwoD,oBAAoBzyD,UAGhG5C,KAAKq1D,oBAAoBzyD,GAAK,IAAI0yD,GAAwBzoD,EAAYwoD,oBAAoBzyD,SAG9F5C,KAAKq1D,oBAAoBzyD,QAAKnB,EAK9BzB,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0BhhB,GAKnC,MAAMmQ,GAab6D,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKuW,SACD1J,EAAY0J,SAEhBvW,KAAKu1D,aACD1oD,EAAY0oD,aAEpBv1D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB7Q,GAKlC,MAAMy5D,GAyBb51D,YAAYiN,GA0CV,GAzCFA,EAAcA,GAAe,GACvB7M,KAAKy1D,YACD5oD,EAAY4oD,YAEhBz1D,KAAKkuD,SACDrhD,EAAYqhD,SAEhBluD,KAAK01D,kBACD7oD,EAAY6oD,kBAEhB11D,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKshC,aACDz0B,EAAYy0B,aAEhBthC,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK21D,oBACD9oD,EAAY8oD,oBAEhB31D,KAAK+uB,iBACgC,MAAhCliB,EAAYkiB,iBAA4BtoB,SAASoG,EAAYkiB,iBAAkB,SAAMttB,EAE1FzB,KAAKyuD,eACD5hD,EAAY4hD,eAEhBzuD,KAAK0uD,mBACD7hD,EAAY6hD,mBAEhB1uD,KAAKu8B,QACuB,MAAvB1vB,EAAY0vB,QAAmB91B,SAASoG,EAAY0vB,QAAS,SAAM96B,EAExEzB,KAAK41D,eACD/oD,EAAY+oD,eAEhB51D,KAAK61D,UACDhpD,EAAYgpD,UAEpB71D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,EAK1BzB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,GAIlFmL,EAAgB,qBAA2B4oD,GAKpC,MAAM5wC,GAWbhlB,YAAYiN,GAEV,GAAsC,OADxCA,EAAcA,GAAe,IACXipD,mBACZ91D,KAAK81D,wBAAqBr0D,OACvB,GAAqD,MAAjDoL,EAAYipD,mBAAmB,eACtC91D,KAAK81D,mBAAqB,IAAIC,GAA+BlpD,EAAYipD,wBACtE,CAEH1oD,GADIA,EAAoBP,EAAYipD,mBAAmB,gBACjCzoD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK81D,mBAAqB,IAAIlpD,EAAiBQ,GAAWP,EAAYipD,qBAK9E,GAAiC,MAA7BjpD,EAAYmpD,cACZh2D,KAAKg2D,mBAAgBv0D,OAClB,GAAgD,MAA5CoL,EAAYmpD,cAAc,eACjCh2D,KAAKg2D,cAAgB,IAAIC,GAAmBppD,EAAYmpD,mBACrD,CACH,IAAI5oD,EACJA,GADIA,EAAoBP,EAAYmpD,cAAc,gBAC5B3oD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKg2D,cAAgB,IAAIppD,EAAiBQ,GAAWP,EAAYmpD,kBAO3EppD,EAAgB,mCAAyCgY,GAKlD,MAAMmxC,GAcbn2D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKk2D,uBACsC,MAAtCrpD,EAAYqpD,uBAAkCzvD,SAASoG,EAAYqpD,uBAAwB,SAAMz0D,EAE1GzB,KAAKm2D,cAAW10D,EACZoL,EAAYspD,SAAU,CAC1Bn2D,KAAKm2D,SAAW,GAChB,IAAK,IAAIvzD,EAAI,EAAGA,EAAIiK,EAAYspD,SAAStzD,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYspD,SAASvzD,GACzB,GAA8C,MAA1CiK,EAAYspD,SAASvzD,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYspD,SAASvzD,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm2D,SAASvzD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYspD,SAASvzD,UAG1E5C,KAAKm2D,SAASvzD,GAAK,IAAIwzD,GAAoBvpD,EAAYspD,SAASvzD,SAGpE5C,KAAKm2D,SAASvzD,QAAKnB,GAMnB,GADAzB,KAAK0wD,gBAAajvD,EACdoL,EAAY6jD,WAAY,CAC5B1wD,KAAK0wD,WAAa,GAClB,IAAS9tD,EAAI,EAAGA,EAAIiK,EAAY6jD,WAAW7tD,OAAQD,IAAK,CAGtD,IAAIwK,EAFN,GAAiC,MAA7BP,EAAY6jD,WAAW9tD,GAC3B,GAAgD,MAA5CiK,EAAY6jD,WAAW9tD,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY6jD,WAAW9tD,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0wD,WAAW9tD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6jD,WAAW9tD,UAG9E5C,KAAK0wD,WAAW9tD,GAAK,IAAIyzD,GAAyBxpD,EAAY6jD,WAAW9tD,SAG7E5C,KAAK0wD,WAAW9tD,QAAKnB,GAKjBzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK86C,gBAC+B,MAA/BjuC,EAAYiuC,gBAA2Br0C,SAASoG,EAAYiuC,gBAAiB,SAAMr5C,GAI9FmL,EAAgB,+BAAqCmpD,GAK9C,MAAMzyC,GAYb1jB,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4Q,iBACA/D,EAAY+D,4BAA4B3J,KAAQ4F,EAAY+D,iBAC1B,MAAhC/D,EAAY+D,kBAA4BtC,EAAAA,EAAAA,IAAiCzB,EAAY+D,iBAAkB,sBAAsB,QAASnP,EAE7IzB,KAAKs2D,kBACDzpD,EAAYypD,kBAEhBt2D,KAAKu2D,qBACD1pD,EAAY0pD,sBAItB3pD,EAAgB,sCAA4C0W,GAKrD,MAAM+yC,GAWbz2D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKw2D,aACD3pD,EAAY2pD,aAEpBx2D,KAAKy2D,qBAAkBh1D,EACnBoL,EAAY4pD,gBAAiB,CACjCz2D,KAAKy2D,gBAAkB,GACvB,IAAK,IAAI7zD,EAAI,EAAGA,EAAIiK,EAAY4pD,gBAAgB5zD,OAAQD,IACxD,GAAsC,MAAlCiK,EAAY4pD,gBAAgB7zD,GAChC,GAAqD,MAAjDiK,EAAY4pD,gBAAgB7zD,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAY4pD,gBAAgB7zD,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy2D,gBAAgB7zD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4pD,gBAAgB7zD,UAGxF5C,KAAKy2D,gBAAgB7zD,GAAK,IAAI8zD,GAA8B7pD,EAAY4pD,gBAAgB7zD,SAG5F5C,KAAKy2D,gBAAgB7zD,QAAKnB,IAO5BmL,EAAgB,yBAA+BypD,GAKxC,MAAMK,GAmBb92D,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKstD,YACDzgD,EAAYygD,YAEhBttD,KAAKitD,eACDpgD,EAAYogD,eAEpBjtD,KAAK22D,gBAAal1D,EACdoL,EAAY8pD,WAAY,CAC5B32D,KAAK22D,WAAa,GAClB,IAAK,IAAI/zD,EAAI,EAAGA,EAAIiK,EAAY8pD,WAAW9zD,OAAQD,IAClB,MAA7BiK,EAAY8pD,WAAW/zD,GACvB5C,KAAK22D,WAAW/zD,GACZ6D,SAASoG,EAAY8pD,WAAW/zD,GAAI,IAE5C5C,KAAK22D,WAAW/zD,QAAKnB,EAKjBzB,KAAKqV,SACDxI,EAAYwI,SAEhBrV,KAAKyuD,eACD5hD,EAAY4hD,eAEhBzuD,KAAK0uD,mBACD7hD,EAAY6hD,mBAEhB1uD,KAAK42D,wBACD/pD,EAAY+pD,wBAEhB52D,KAAK62D,8BACDhqD,EAAYgqD,8BAEhB72D,KAAK82D,2BACDjqD,EAAYiqD,2BAEhB92D,KAAK+2D,+BACDlqD,EAAYkqD,gCAItBnqD,EAAgB,8BAAoC8pD,GAK7C,MAAMlzC,GAUb5jB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKg3D,WAAQv1D,EACToL,EAAYmqD,MAAO,CACvBh3D,KAAKg3D,MAAQ,GACb,IAAK,IAAIp0D,EAAI,EAAGA,EAAIiK,EAAYmqD,MAAMn0D,OAAQD,IAC9C,GAA4B,MAAxBiK,EAAYmqD,MAAMp0D,GACtB,GAA2C,MAAvCiK,EAAYmqD,MAAMp0D,GAAG,eAAwB,CAC/C,IAAIwK,EAAoBP,EAAYmqD,MAAMp0D,GAAG,eAC7CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKg3D,MAAMp0D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmqD,MAAMp0D,UAGpE5C,KAAKg3D,MAAMp0D,GAAK,IAAIq0D,GAAyCpqD,EAAYmqD,MAAMp0D,SAGnF5C,KAAKg3D,MAAMp0D,QAAKnB,IAOlBmL,EAAgB,wBAA8B4W,GAKvC,MAAMyzC,GAabr3D,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4U,IACD/H,EAAY+H,IAEhB5U,KAAKk3D,QACDrqD,EAAYqqD,QAEhBl3D,KAAKm3D,aACDtqD,EAAYsqD,aAEhBn3D,KAAKo3D,UACDvqD,EAAYuqD,WAItBxqD,EAAgB,yCAA+CqqD,GAKxD,MAAMhB,GAcbr2D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKq3D,sBACDxqD,EAAYwqD,sBAEpBr3D,KAAKs3D,wBAAqB71D,EACtBoL,EAAYyqD,mBAAoB,CACpCt3D,KAAKs3D,mBAAqB,GAC1B,IAAK,IAAI10D,EAAI,EAAGA,EAAIiK,EAAYyqD,mBAAmBz0D,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYyqD,mBAAmB10D,GACnC,GAAwD,MAApDiK,EAAYyqD,mBAAmB10D,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYyqD,mBAAmB10D,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs3D,mBAAmB10D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyqD,mBAAmB10D,UAG9F5C,KAAKs3D,mBAAmB10D,GAAK,IAAI20D,GAAuB1qD,EAAYyqD,mBAAmB10D,SAG3F5C,KAAKs3D,mBAAmB10D,QAAKnB,GAM7B,GADAzB,KAAKw3D,gCAA6B/1D,EAC9BoL,EAAY2qD,2BAA4B,CAC5Cx3D,KAAKw3D,2BAA6B,GAClC,IAAS50D,EAAI,EAAGA,EAAIiK,EAAY2qD,2BAA2B30D,OAAQD,IAAK,CACxE,GAAiD,MAA7CiK,EAAY2qD,2BAA2B50D,GAC3C,GAAgE,MAA5DiK,EAAY2qD,2BAA2B50D,GAAG,eAE5CwK,GADIA,EAAoBP,EAAY2qD,2BAA2B50D,GAAG,gBAC5CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw3D,2BAA2B50D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2qD,2BAA2B50D,UAG9G5C,KAAKw3D,2BAA2B50D,GAAK,IAAI60D,GAA4B5qD,EAAY2qD,2BAA2B50D,SAGhH5C,KAAKw3D,2BAA2B50D,QAAKnB,GAMrC,GADAzB,KAAK03D,8BAA2Bj2D,EAC5BoL,EAAY6qD,yBAA0B,CAC1C13D,KAAK03D,yBAA2B,GAChC,IAAS90D,EAAI,EAAGA,EAAIiK,EAAY6qD,yBAAyB70D,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAY6qD,yBAAyB90D,GACzC,GAA8D,MAA1DiK,EAAY6qD,yBAAyB90D,GAAG,eAE1CwK,GADIA,EAAoBP,EAAY6qD,yBAAyB90D,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK03D,yBAAyB90D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6qD,yBAAyB90D,UAG1G5C,KAAK03D,yBAAyB90D,GAAK,IAAI+0D,GAAuB9qD,EAAY6qD,yBAAyB90D,SAGvG5C,KAAK03D,yBAAyB90D,QAAKnB,GAMnC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyBqpD,GAKlC,MAAMwB,GAWb73D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK43D,iBACgC,MAAhC/qD,EAAY+qD,iBAA4BnxD,SAASoG,EAAY+qD,iBAAkB,SAAMn2D,EAE9FzB,KAAK63D,sBAAmBp2D,EACpBoL,EAAYgrD,iBAAkB,CAClC73D,KAAK63D,iBAAmB,GACxB,IAAK,IAAIj1D,EAAI,EAAGA,EAAIiK,EAAYgrD,iBAAiBh1D,OAAQD,IAClB,MAAnCiK,EAAYgrD,iBAAiBj1D,GAC7B5C,KAAK63D,iBAAiBj1D,GAClB6D,SAASoG,EAAYgrD,iBAAiBj1D,GAAI,IAElD5C,KAAK63D,iBAAiBj1D,QAAKnB,IAO7BmL,EAAgB,4BAAkC6qD,GAK3C,MAAMF,GAcb33D,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK83D,mBACkC,MAAlCjrD,EAAYirD,mBAA8BrxD,SAASoG,EAAYirD,mBAAoB,SAAMr2D,EAE9FzB,KAAK+3D,kBACiC,MAAjClrD,EAAYkrD,kBAA6BtxD,SAASoG,EAAYkrD,kBAAmB,SAAMt2D,EAEhGzB,KAAKg4D,0BAAuBv2D,EACxBoL,EAAYmrD,qBAAsB,CACtCh4D,KAAKg4D,qBAAuB,GAC5B,IAAK,IAAIp1D,EAAI,EAAGA,EAAIiK,EAAYmrD,qBAAqBn1D,OAAQD,IAClB,MAAvCiK,EAAYmrD,qBAAqBp1D,GACjC5C,KAAKg4D,qBAAqBp1D,GACtB6D,SAASoG,EAAYmrD,qBAAqBp1D,GAAI,IAEtD5C,KAAKg4D,qBAAqBp1D,QAAKnB,EAM/B,GADAzB,KAAKi4D,yBAAsBx2D,EACvBoL,EAAYorD,oBAAqB,CACrCj4D,KAAKi4D,oBAAsB,GAC3B,IAASr1D,EAAI,EAAGA,EAAIiK,EAAYorD,oBAAoBp1D,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYorD,oBAAoBr1D,GACpC,GAAyD,MAArDiK,EAAYorD,oBAAoBr1D,GAAG,eAErCwK,GADIA,EAAoBP,EAAYorD,oBAAoBr1D,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi4D,oBAAoBr1D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYorD,oBAAoBr1D,UAGhG5C,KAAKi4D,oBAAoBr1D,GAAK,IAAIs1D,GAA4BrrD,EAAYorD,oBAAoBr1D,SAGlG5C,KAAKi4D,oBAAoBr1D,QAAKnB,GAM9B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6B2qD,GAKtC,MAAMW,GAebt4D,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK+3D,kBACiC,MAAjClrD,EAAYkrD,kBAA6BtxD,SAASoG,EAAYkrD,kBAAmB,SAAMt2D,EAE5FzB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK6gD,KACDh0C,EAAYg0C,KAEhB7gD,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKm4D,OACsB,MAAtBtrD,EAAYsrD,OAAkBjrD,WAAWL,EAAYsrD,aAAU12D,EAExEzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCsrD,GAK3C,MAAME,GAWbx4D,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK+3D,kBACiC,MAAjClrD,EAAYkrD,kBAA6BtxD,SAASoG,EAAYkrD,kBAAmB,SAAMt2D,EAE5FzB,KAAKq4D,kBACiC,MAAjCxrD,EAAYwrD,kBAA6B5xD,SAASoG,EAAYwrD,kBAAmB,SAAM52D,GAIlGmL,EAAgB,qBAA2BwrD,GAKpC,MAAMT,GAWb/3D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKs4D,aAC4B,MAA5BzrD,EAAYyrD,aAAwB7xD,SAASoG,EAAYyrD,aAAc,SAAM72D,EAEtFzB,KAAKu4D,yBAAsB92D,EACvBoL,EAAY0rD,oBAAqB,CACrCv4D,KAAKu4D,oBAAsB,GAC3B,IAAK,IAAI31D,EAAI,EAAGA,EAAIiK,EAAY0rD,oBAAoB11D,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAY0rD,oBAAoB31D,GACpC,GAAyD,MAArDiK,EAAY0rD,oBAAoB31D,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAY0rD,oBAAoB31D,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu4D,oBAAoB31D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0rD,oBAAoB31D,UAGhG5C,KAAKu4D,oBAAoB31D,GAAK,IAAIw1D,GAAqBvrD,EAAY0rD,oBAAoB31D,SAG3F5C,KAAKu4D,oBAAoB31D,QAAKnB,IAOhCmL,EAAgB,uBAA6B+qD,GAKtC,MAAMa,GAab54D,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKy4D,kBACD5rD,EAAY4rD,kBAEhBz4D,KAAKsoB,QACDzb,EAAYyb,QAEpBtoB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+B4rD,GAKxC,MAAM/oF,GAabmwB,YAAYiN,GAcV,GAbFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE/HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,+BAAqCn9B,GAK9C,MAAMrG,GAmCbw2B,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK8X,cAAWrW,EACZoL,EAAYiL,SAAU,CAC1B9X,KAAK8X,SAAW,GAChB,IAAK,IAAIlV,EAAI,EAAGA,EAAIiK,EAAYiL,SAASjV,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYiL,SAASlV,GACzB,GAA8C,MAA1CiK,EAAYiL,SAASlV,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYiL,SAASlV,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8X,SAASlV,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiL,SAASlV,UAG1E5C,KAAK8X,SAASlV,GAAK,IAAI81D,GAAoB7rD,EAAYiL,SAASlV,SAGpE5C,KAAK8X,SAASlV,QAAKnB,GA8EnB,GAzEIzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKiiB,SACwB,MAAxBpV,EAAYoV,SAAoB/U,WAAWL,EAAYoV,eAAYxgB,EAExEzB,KAAKkiB,UACyB,MAAzBrV,EAAYqV,UAAqBhV,WAAWL,EAAYqV,gBAAazgB,EAE1EzB,KAAKgiB,YACDnV,EAAYmV,YAEhBhiB,KAAKj3B,cACD8jC,EAAY9jC,cAEhBi3B,KAAKooB,QACDvb,EAAYub,QAEhBpoB,KAAK0rB,OACD7e,EAAY6e,OAEhB1rB,KAAK2rB,aACD9e,EAAY8e,aAEhB3rB,KAAK8rB,KACDjf,EAAYif,KAEhB9rB,KAAK+rB,aACDlf,EAAYkf,aAEhB/rB,KAAKwsB,mBACD3f,EAAY2f,mBAEhBxsB,KAAKysB,QACD5f,EAAY4f,QAEhBzsB,KAAKu3C,IACD1qC,EAAY0qC,IAEhBv3C,KAAK4rB,OACD/e,EAAY+e,OAEhB5rB,KAAK6rB,WACDhf,EAAYgf,WAEhB7rB,KAAKgsB,MACDnf,EAAYmf,MAEhBhsB,KAAKisB,UACDpf,EAAYof,UAEhBjsB,KAAKm3C,QACDtqC,EAAYsqC,QAEhBn3C,KAAK24D,SACwB,MAAxB9rD,EAAY8rD,SAAoBzrD,WAAWL,EAAY8rD,eAAYl3D,EAExEzB,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAKk7C,gBACDruC,EAAYquC,gBAEhBl7C,KAAK44D,gBAC+B,MAA/B/rD,EAAY+rD,gBAA2BnyD,SAASoG,EAAY+rD,gBAAiB,SAAMn3D,EAExFzB,KAAK64D,SACDhsD,EAAYgsD,SAEhB74D,KAAK84D,OACDjsD,EAAYisD,OAEpB94D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qBAA2BxjC,GAKpC,MAAMsvF,GAgBb94D,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK+4D,QACDlsD,EAAYksD,QAEhB/4D,KAAKg5D,iBACDnsD,EAAYmsD,iBAEhBh5D,KAAKi5D,iBACDpsD,EAAYosD,iBAEhBj5D,KAAK2sB,UACD9f,EAAY8f,UAEhB3sB,KAAKslB,UACDzY,EAAYyY,UAEpBtlB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0B8rD,GAKnC,MAAMjgG,GAWbmnC,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKk5D,YACDrsD,EAAYqsD,YAEpBl5D,KAAKm5D,qBAAkB13D,EACnBoL,EAAYssD,gBAAiB,CACjCn5D,KAAKm5D,gBAAkB,GACvB,IAAK,IAAIv2D,EAAI,EAAGA,EAAIiK,EAAYssD,gBAAgBt2D,OAAQD,IACxD,GAAsC,MAAlCiK,EAAYssD,gBAAgBv2D,GAChC,GAAqD,MAAjDiK,EAAYssD,gBAAgBv2D,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAYssD,gBAAgBv2D,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm5D,gBAAgBv2D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYssD,gBAAgBv2D,UAGxF5C,KAAKm5D,gBAAgBv2D,GAAK,IAAIxpC,GAAoByzC,EAAYssD,gBAAgBv2D,SAGlF5C,KAAKm5D,gBAAgBv2D,QAAKnB,IAO5BmL,EAAgB,6BAAmCn0C,GAK5C,MAAMW,GAiBbwmC,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKmU,YACDtH,EAAYsH,YAEhBnU,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKo5D,yBAAsB33D,EACvBoL,EAAYusD,oBAAqB,CACrCp5D,KAAKo5D,oBAAsB,GAC3B,IAAK,IAAIx2D,EAAI,EAAGA,EAAIiK,EAAYusD,oBAAoBv2D,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYusD,oBAAoBx2D,GACpC,GAAyD,MAArDiK,EAAYusD,oBAAoBx2D,GAAG,eAErCwK,GADIA,EAAoBP,EAAYusD,oBAAoBx2D,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKo5D,oBAAoBx2D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYusD,oBAAoBx2D,UAGhG5C,KAAKo5D,oBAAoBx2D,GAAK,IAAIy2D,GAAwBxsD,EAAYusD,oBAAoBx2D,SAG9F5C,KAAKo5D,oBAAoBx2D,QAAKnB,GAY9B,GAPIzB,KAAKs5D,kBACiC,MAAjCzsD,EAAYysD,kBAA6BpsD,WAAWL,EAAYysD,wBAAqB73D,EAE1FzB,KAAK+T,qBACoC,MAApClH,EAAYkH,qBAAgC7G,WAAWL,EAAYkH,2BAAwBtS,EAEpGzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0BxzC,GAKnC,MAAM6Q,GAWb21B,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAEhFzB,KAAKm5D,qBAAkB13D,EACnBoL,EAAYssD,gBAAiB,CACjCn5D,KAAKm5D,gBAAkB,GACvB,IAAK,IAAIv2D,EAAI,EAAGA,EAAIiK,EAAYssD,gBAAgBt2D,OAAQD,IACxD,GAAsC,MAAlCiK,EAAYssD,gBAAgBv2D,GAChC,GAAqD,MAAjDiK,EAAYssD,gBAAgBv2D,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAYssD,gBAAgBv2D,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm5D,gBAAgBv2D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYssD,gBAAgBv2D,UAGxF5C,KAAKm5D,gBAAgBv2D,GAAK,IAAIxpC,GAAoByzC,EAAYssD,gBAAgBv2D,SAGlF5C,KAAKm5D,gBAAgBv2D,QAAKnB,IAO5BmL,EAAgB,2BAAiC3iC,GAK1C,MAAM0vB,GAebiG,YAAYiN,GAEV,GAA+B,OADjCA,EAAcA,GAAe,IACX0sD,YACZv5D,KAAKu5D,iBAAc93D,OAChB,GAA8C,MAA1CoL,EAAY0sD,YAAY,eAC/Bv5D,KAAKu5D,YAAc,IAAIC,GAAiC3sD,EAAY0sD,iBACjE,CAEHnsD,GADIA,EAAoBP,EAAY0sD,YAAY,gBAC1BlsD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu5D,YAAc,IAAI3sD,EAAiBQ,GAAWP,EAAY0sD,cAkBvE,GAbIv5D,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKy5D,oBACD5sD,EAAY4sD,oBAEhBz5D,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qBAA2BjT,GAKpC,MAAM6/D,WACH9uC,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuC4sD,GAKhD,MAAME,GAYb95D,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKqE,IACDwI,EAAYxI,IAEhBrE,KAAK2qB,MACD9d,EAAY8d,MAEpB3qB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkC8sD,GAK3C,MAAMjwF,GA+Dbm2B,YAAYiN,GAgGV,GA/FFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK25D,iBACD9sD,EAAY8sD,iBAEhB35D,KAAK45D,yBACwC,MAAxC/sD,EAAY+sD,yBAAoC1sD,WAAWL,EAAY+sD,+BAA4Bn4D,EAExGzB,KAAK65D,oBACDhtD,EAAYgtD,oBAEhB75D,KAAK85D,uBACDjtD,EAAYitD,uBAEhB95D,KAAK+5D,yBACDltD,EAAYktD,yBAEhB/5D,KAAKg6D,6BAC4C,MAA5CntD,EAAYmtD,6BAAwC9sD,WAAWL,EAAYmtD,mCAAgCv4D,EAEhHzB,KAAK8nB,eACDjb,EAAYib,eAEhB9nB,KAAKi6D,yBACDptD,EAAYotD,yBAEhBj6D,KAAKk6D,eACDrtD,EAAYqtD,eAEhBl6D,KAAKm6D,gBACDttD,EAAYstD,gBAEhBn6D,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAKo6D,4BACDvtD,EAAYutD,4BAEhBp6D,KAAKq6D,gBACDxtD,EAAYwtD,gBAEhBr6D,KAAKs6D,sBACDztD,EAAYytD,sBAEhBt6D,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKu6D,4BACD1tD,EAAY0tD,4BAEhBv6D,KAAKw6D,kBACD3tD,EAAY2tD,kBAEhBx6D,KAAKy6D,eACD5tD,EAAY4tD,eAEhBz6D,KAAK06D,sBACD7tD,EAAY6tD,sBAEhB16D,KAAK26D,eACD9tD,EAAY8tD,eAEhB36D,KAAK46D,6BACD/tD,EAAY+tD,6BAEhB56D,KAAK66D,wCACuD,MAAvDhuD,EAAYguD,wCAAmD3tD,WAAWL,EAAYguD,8CAA2Cp5D,EAEtIzB,KAAK86D,sBACDjuD,EAAYiuD,sBAEhB96D,KAAK+6D,qBACDluD,EAAYkuD,qBAEhB/6D,KAAKg7D,yBACwC,MAAxCnuD,EAAYmuD,yBAAoCv0D,SAASoG,EAAYmuD,yBAA0B,SAAMv5D,EAE1GzB,KAAKi7D,2BAC0C,MAA1CpuD,EAAYouD,2BAAsCx0D,SAASoG,EAAYouD,2BAA4B,SAAMx5D,EAE9GzB,KAAKk7D,4BACDruD,EAAYquD,4BAEhBl7D,KAAKm7D,4BACDtuD,EAAYsuD,4BAEhBn7D,KAAK6uC,4BACDhiC,EAAYgiC,4BAEhB7uC,KAAKo7D,sCACDvuD,EAAYuuD,sCAEpBp7D,KAAKq7D,uBAAoB55D,EACrBoL,EAAYwuD,kBAAmB,CACnCr7D,KAAKq7D,kBAAoB,GACzB,IAAK,IAAIz4D,EAAI,EAAGA,EAAIiK,EAAYwuD,kBAAkBx4D,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAYwuD,kBAAkBz4D,GAClC,GAAuD,MAAnDiK,EAAYwuD,kBAAkBz4D,GAAG,eAEnCwK,GADIA,EAAoBP,EAAYwuD,kBAAkBz4D,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq7D,kBAAkBz4D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwuD,kBAAkBz4D,UAG5F5C,KAAKq7D,kBAAkBz4D,GAAK,IAAI82D,GAA4B7sD,EAAYwuD,kBAAkBz4D,SAG9F5C,KAAKq7D,kBAAkBz4D,QAAKnB,GAM5B,GADAzB,KAAKs7D,gBAAa75D,EACdoL,EAAYyuD,WAAY,CAC5Bt7D,KAAKs7D,WAAa,GAClB,IAAS14D,EAAI,EAAGA,EAAIiK,EAAYyuD,WAAWz4D,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYyuD,WAAW14D,GAC3B,GAAgD,MAA5CiK,EAAYyuD,WAAW14D,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYyuD,WAAW14D,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs7D,WAAW14D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyuD,WAAW14D,UAG9E5C,KAAKs7D,WAAW14D,GAAK,IAAI24D,GAAqB1uD,EAAYyuD,WAAW14D,SAGzE5C,KAAKs7D,WAAW14D,QAAKnB,GAMrB,GADAzB,KAAK+hC,eAAYtgC,EACboL,EAAYk1B,UAAW,CAC3B/hC,KAAK+hC,UAAY,GACjB,IAASn/B,EAAI,EAAGA,EAAIiK,EAAYk1B,UAAUl/B,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAYk1B,UAAUn/B,GAC1B,GAA+C,MAA3CiK,EAAYk1B,UAAUn/B,GAAG,eAE3BwK,GADIA,EAAoBP,EAAYk1B,UAAUn/B,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+hC,UAAUn/B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYk1B,UAAUn/B,UAG5E5C,KAAK+hC,UAAUn/B,GAAK,IAAI44D,GAAqB3uD,EAAYk1B,UAAUn/B,SAGvE5C,KAAK+hC,UAAUn/B,QAAKnB,GA0CpB,GArCIzB,KAAKy7D,uBACD5uD,EAAY4uD,uBAEhBz7D,KAAK07D,6BACD7uD,EAAY6uD,6BAEhB17D,KAAK27D,4BACD9uD,EAAY8uD,4BAEhB37D,KAAK47D,oCACD/uD,EAAY+uD,oCAEhB57D,KAAK67D,iDACDhvD,EAAYgvD,iDAEhB77D,KAAK87D,sCACDjvD,EAAYivD,sCAEhB97D,KAAK+7D,+CACDlvD,EAAYkvD,+CAEhB/7D,KAAKwvC,sCACD3iC,EAAY2iC,sCAEhBxvC,KAAKg8D,0BACDnvD,EAAYmvD,0BAEhBh8D,KAAK0vC,0BACD7iC,EAAY6iC,0BAEhB1vC,KAAKi8D,sCACDpvD,EAAYovD,sCAEhBj8D,KAAKk8D,6CACDrvD,EAAYqvD,6CAEpBl8D,KAAKm8D,qCAAkC16D,EACnCoL,EAAYsvD,gCAAiC,CACjDn8D,KAAKm8D,gCAAkC,GACvC,IAASv5D,EAAI,EAAGA,EAAIiK,EAAYsvD,gCAAgCt5D,OAAQD,IAClB,MAAlDiK,EAAYsvD,gCAAgCv5D,GAC5C5C,KAAKm8D,gCAAgCv5D,GACjC6D,SAASoG,EAAYsvD,gCAAgCv5D,GAAI,IAEjE5C,KAAKm8D,gCAAgCv5D,QAAKnB,EAM1C,GADAzB,KAAKo8D,oCAAiC36D,EAClCoL,EAAYuvD,+BAAgC,CAChDp8D,KAAKo8D,+BAAiC,GACtC,IAASx5D,EAAI,EAAGA,EAAIiK,EAAYuvD,+BAA+Bv5D,OAAQD,IAClB,MAAjDiK,EAAYuvD,+BAA+Bx5D,GAC3C5C,KAAKo8D,+BAA+Bx5D,GAChC6D,SAASoG,EAAYuvD,+BAA+Bx5D,GAAI,IAEhE5C,KAAKo8D,+BAA+Bx5D,QAAKnB,EAMzC,GADAzB,KAAKq8D,0BAAuB56D,EACxBoL,EAAYwvD,qBAAsB,CACtCr8D,KAAKq8D,qBAAuB,GAC5B,IAASz5D,EAAI,EAAGA,EAAIiK,EAAYwvD,qBAAqBx5D,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAYwvD,qBAAqBz5D,GACrC,GAA0D,MAAtDiK,EAAYwvD,qBAAqBz5D,GAAG,eAEtCwK,GADIA,EAAoBP,EAAYwvD,qBAAqBz5D,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq8D,qBAAqBz5D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwvD,qBAAqBz5D,UAGlG5C,KAAKq8D,qBAAqBz5D,GAAK,IAAI05D,GAAsBzvD,EAAYwvD,qBAAqBz5D,SAG9F5C,KAAKq8D,qBAAqBz5D,QAAKnB,GAkB/B,GAbIzB,KAAKu8D,qBACD1vD,EAAY0vD,qBAEhBv8D,KAAKw8D,kCACD3vD,EAAY2vD,kCAEhBx8D,KAAKy8D,4CACD5vD,EAAY4vD,4CAEhBz8D,KAAK08D,iDACD7vD,EAAY6vD,iDAEpB18D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0BAAgCnjC,GAKzC,MAAM8xF,GAab37D,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAK28D,QACuB,MAAvB9vD,EAAY8vD,QAAmBl2D,SAASoG,EAAY8vD,QAAS,SAAMl7D,EAE5EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B2uD,GAKpC,MAAMC,GAYb57D,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKo3D,UACDvqD,EAAYuqD,UAEpBp3D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B4uD,GAKpC,MAAMjiE,GAWbqG,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK48D,6BAA0Bn7D,EAC3BoL,EAAY+vD,wBAAyB,CACzC58D,KAAK48D,wBAA0B,GAC/B,IAAK,IAAIh6D,EAAI,EAAGA,EAAIiK,EAAY+vD,wBAAwB/5D,OAAQD,IAClB,MAA1CiK,EAAY+vD,wBAAwBh6D,GACpC5C,KAAK48D,wBAAwBh6D,GACzBiK,EAAY+vD,wBAAwBh6D,GAE5C5C,KAAK48D,wBAAwBh6D,QAAKnB,EAMlC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wCAA8CrT,GAKvD,MAAM9L,WACHZ,GAeV+S,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAe1B,GAVIzB,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAK68D,gBACDhwD,EAAYgwD,gBAEhB78D,KAAKqrC,WACDx+B,EAAYw+B,WAEpBrrC,KAAK88D,yBAAsBr7D,EACvBoL,EAAYiwD,oBAAqB,CACrC98D,KAAK88D,oBAAsB,GAC3B,IAASl6D,EAAI,EAAGA,EAAIiK,EAAYiwD,oBAAoBj6D,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYiwD,oBAAoBl6D,GACpC,GAAyD,MAArDiK,EAAYiwD,oBAAoBl6D,GAAG,eAErCwK,GADIA,EAAoBP,EAAYiwD,oBAAoBl6D,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK88D,oBAAoBl6D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiwD,oBAAoBl6D,UAGhG5C,KAAK88D,oBAAoBl6D,GAAK,IAAIm6D,GAAwBlwD,EAAYiwD,oBAAoBl6D,SAG9F5C,KAAK88D,oBAAoBl6D,QAAKnB,GAK9BzB,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+Bnf,GAKxC,MAAMO,WACHnB,GAaV+S,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKg9D,mBAAgBv7D,EACjBoL,EAAYmwD,cAAe,CAC/Bh9D,KAAKg9D,cAAgB,GACrB,IAAK,IAAIp6D,EAAI,EAAGA,EAAIiK,EAAYmwD,cAAcn6D,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAYmwD,cAAcp6D,GAC9B,GAAmD,MAA/CiK,EAAYmwD,cAAcp6D,GAAG,eAE/BwK,GADIA,EAAoBP,EAAYmwD,cAAcp6D,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKg9D,cAAcp6D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmwD,cAAcp6D,UAGpF5C,KAAKg9D,cAAcp6D,GAAK,IAAIq6D,GAAkBpwD,EAAYmwD,cAAcp6D,SAG5E5C,KAAKg9D,cAAcp6D,QAAKnB,GAMxB,GADAzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAG3D,IAAIwK,EAFN,GAAsC,MAAlCP,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAKtBzB,KAAKqrC,WACDx+B,EAAYw+B,WAEpBrrC,KAAK,eAAiB,4EAIxB4M,EAAgB,+BAAqC5e,GAK9C,MAAMkvE,GAyBbt9D,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKm9D,SAAM17D,EACPoL,EAAYswD,IAAK,CACrBn9D,KAAKm9D,IAAM,GACX,IAAK,IAAIv6D,EAAI,EAAGA,EAAIiK,EAAYswD,IAAIt6D,OAAQD,IAClB,MAAtBiK,EAAYswD,IAAIv6D,GAChB5C,KAAKm9D,IAAIv6D,GACL6D,SAASoG,EAAYswD,IAAIv6D,GAAI,IAErC5C,KAAKm9D,IAAIv6D,QAAKnB,EAMd,GADAzB,KAAKkkB,iBAAcziB,EACfoL,EAAYqX,YAAa,CAC7BlkB,KAAKkkB,YAAc,GACnB,IAASthB,EAAI,EAAGA,EAAIiK,EAAYqX,YAAYrhB,OAAQD,IAClB,MAA9BiK,EAAYqX,YAAYthB,GACxB5C,KAAKkkB,YAAYthB,GACb6D,SAASoG,EAAYqX,YAAYthB,GAAI,IAE7C5C,KAAKkkB,YAAYthB,QAAKnB,EAkBtB,GAbIzB,KAAKo9D,wCACDvwD,EAAYuwD,wCAEhBp9D,KAAKq9D,gBACDxwD,EAAYwwD,gBAEhBr9D,KAAKs9D,qBACDzwD,EAAYywD,qBAEhBt9D,KAAKu9D,kBACD1wD,EAAY0wD,kBAEpBv9D,KAAKw9D,cAAW/7D,EACZoL,EAAY2wD,SAAU,CAC1Bx9D,KAAKw9D,SAAW,GAChB,IAAS56D,EAAI,EAAGA,EAAIiK,EAAY2wD,SAAS36D,OAAQD,IAClB,MAA3BiK,EAAY2wD,SAAS56D,GACrB5C,KAAKw9D,SAAS56D,GACViK,EAAY2wD,SAAS56D,GAE7B5C,KAAKw9D,SAAS56D,QAAKnB,EAMnB,GADAzB,KAAKyqD,aAAUhpD,EACXoL,EAAY49C,QAAS,CACzBzqD,KAAKyqD,QAAU,GACf,IAAS7nD,EAAI,EAAGA,EAAIiK,EAAY49C,QAAQ5nD,OAAQD,IAAK,CACrD,GAA8B,MAA1BiK,EAAY49C,QAAQ7nD,GACxB,GAA6C,MAAzCiK,EAAY49C,QAAQ7nD,GAAG,eAEzBwK,GADIA,EAAoBP,EAAY49C,QAAQ7nD,GAAG,gBACzByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyqD,QAAQ7nD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY49C,QAAQ7nD,UAGxE5C,KAAKyqD,QAAQ7nD,GAAK,IAAI41D,GAAyB3rD,EAAY49C,QAAQ7nD,SAGvE5C,KAAKyqD,QAAQ7nD,QAAKnB,GAMlB,GADAzB,KAAKy9D,gBAAah8D,EACdoL,EAAY4wD,WAAY,CAC5Bz9D,KAAKy9D,WAAa,GAClB,IAAS76D,EAAI,EAAGA,EAAIiK,EAAY4wD,WAAW56D,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY4wD,WAAW76D,GAC3B,GAAgD,MAA5CiK,EAAY4wD,WAAW76D,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY4wD,WAAW76D,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy9D,WAAW76D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4wD,WAAW76D,UAG9E5C,KAAKy9D,WAAW76D,GAAK,IAAIxuB,GAAyBy4B,EAAY4wD,WAAW76D,SAG7E5C,KAAKy9D,WAAW76D,QAAKnB,GAcrB,GATIzB,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAK09D,qBACD7wD,EAAY6wD,qBAEhB19D,KAAK29D,oBACD9wD,EAAY8wD,oBAEO,MAAvB9wD,EAAY+wD,QACZ59D,KAAK49D,aAAUn8D,OACZ,GAA0C,MAAtCoL,EAAY+wD,QAAQ,eAC3B59D,KAAK49D,QAAU,IAAI55C,GAAsBnX,EAAY+wD,aAClD,CACH,IAAIxwD,EACJA,GADIA,EAAoBP,EAAY+wD,QAAQ,gBACtBvwD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK49D,QAAU,IAAIhxD,EAAiBQ,GAAWP,EAAY+wD,UAK/D59D,KAAKqV,SACDxI,EAAYwI,SAEhBrV,KAAK69D,SACDhxD,EAAYgxD,SAEhB79D,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,2BAAiCswD,GAK1C,MAAMY,GAcbl+D,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK+9D,qBACDlxD,EAAYkxD,qBAEO,MAAvBlxD,EAAY+wD,QACZ59D,KAAK49D,aAAUn8D,OACZ,GAA0C,MAAtCoL,EAAY+wD,QAAQ,eAC3B59D,KAAK49D,QAAU,IAAI55C,GAAsBnX,EAAY+wD,aAClD,CAEHxwD,GADIA,EAAoBP,EAAY+wD,QAAQ,gBACtBvwD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK49D,QAAU,IAAIhxD,EAAiBQ,GAAWP,EAAY+wD,UAQnE,GAHI59D,KAAKg+D,WACDnxD,EAAYmxD,WAEO,MAAvBnxD,EAAYoxD,QACZj+D,KAAKi+D,aAAUx8D,OACZ,GAA0C,MAAtCoL,EAAYoxD,QAAQ,eAC3Bj+D,KAAKi+D,QAAU,IAAIjwF,GAAgC6+B,EAAYoxD,aAC5D,CACH,IAAI7wD,EACJA,GADIA,EAAoBP,EAAYoxD,QAAQ,gBACtB5wD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi+D,QAAU,IAAIrxD,EAAiBQ,GAAWP,EAAYoxD,UAK/Dj+D,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,mCAAyCkxD,GAKlD,MAAMI,GAcbt+D,YAAYiN,GAcV,GAbFA,EAAcA,GAAe,GACvB7M,KAAKm+D,mBACAtxD,EAAYsxD,8BAA8Bl3D,KAAQ4F,EAAYsxD,mBAC1B,MAAlCtxD,EAAYsxD,oBAA8B7vD,EAAAA,EAAAA,IAAiCzB,EAAYsxD,mBAAoB,sBAAsB,QAAS18D,EAEjJzB,KAAKo+D,iBACAvxD,EAAYuxD,4BAA4Bn3D,KAAQ4F,EAAYuxD,iBAC1B,MAAhCvxD,EAAYuxD,kBAA4B9vD,EAAAA,EAAAA,IAAiCzB,EAAYuxD,iBAAkB,sBAAsB,QAAS38D,EAE7IzB,KAAK03B,YACD7qB,EAAY6qB,YAEpB13B,KAAKq+D,gCAA6B58D,EAC9BoL,EAAYwxD,2BAA4B,CAC5Cr+D,KAAKq+D,2BAA6B,GAClC,IAAK,IAAIz7D,EAAI,EAAGA,EAAIiK,EAAYwxD,2BAA2Bx7D,OAAQD,IAClB,MAA7CiK,EAAYwxD,2BAA2Bz7D,GACvC5C,KAAKq+D,2BAA2Bz7D,GAC5BiK,EAAYwxD,2BAA2Bz7D,GAE/C5C,KAAKq+D,2BAA2Bz7D,QAAKnB,EAKjCzB,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,oCAA0CsxD,GAKnD,MAAMI,GAcb1+D,YAAYiN,GAEV,GAAyC,OAD3CA,EAAcA,GAAe,IACX0xD,sBACZv+D,KAAKu+D,2BAAwB98D,OAC1B,GAAwD,MAApDoL,EAAY0xD,sBAAsB,eACzCv+D,KAAKu+D,sBAAwB,IAAIrB,GAA2BrwD,EAAY0xD,2BACrE,CAEHnxD,GADIA,EAAoBP,EAAY0xD,sBAAsB,gBACpClxD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu+D,sBAAwB,IAAI3xD,EAAiBQ,GAAWP,EAAY0xD,wBAKjF,GAA0C,MAAtC1xD,EAAY2xD,uBACZx+D,KAAKw+D,4BAAyB/8D,OAC3B,GAAyD,MAArDoL,EAAY2xD,uBAAuB,eAC1Cx+D,KAAKw+D,uBAAyB,IAAIvZ,GAA4Bp4C,EAAY2xD,4BACvE,CACH,IAAIpxD,EACJA,GADIA,EAAoBP,EAAY2xD,uBAAuB,gBACrCnxD,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw+D,uBAAyB,IAAI5xD,EAAiBQ,GAAWP,EAAY2xD,yBAK9Ex+D,KAAKizD,eACDpmD,EAAYomD,eAEhBjzD,KAAKy+D,UACD5xD,EAAY4xD,UAEhBz+D,KAAK0+D,UACD7xD,EAAY6xD,WAItB9xD,EAAgB,8BAAoC0xD,GAK7C,MAAMK,GAWb/+D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEpB9xB,KAAK4+D,kCAA+Bn9D,EAChCoL,EAAY+xD,6BAA8B,CAC9C5+D,KAAK4+D,6BAA+B,GACpC,IAAK,IAAIh8D,EAAI,EAAGA,EAAIiK,EAAY+xD,6BAA6B/7D,OAAQD,IAClB,MAA/CiK,EAAY+xD,6BAA6Bh8D,GACzC5C,KAAK4+D,6BAA6Bh8D,GAC9BiK,EAAY+xD,6BAA6Bh8D,GAEjD5C,KAAK4+D,6BAA6Bh8D,QAAKnB,IAOzCmL,EAAgB,gCAAsC+xD,GAK/C,MAAME,GAWbj/D,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEpB9xB,KAAK8+D,gBAAar9D,EACdoL,EAAYiyD,WAAY,CAC5B9+D,KAAK8+D,WAAa,GAClB,IAAK,IAAIl8D,EAAI,EAAGA,EAAIiK,EAAYiyD,WAAWj8D,OAAQD,IAClB,MAA7BiK,EAAYiyD,WAAWl8D,GACvB5C,KAAK8+D,WAAWl8D,GACZiK,EAAYiyD,WAAWl8D,GAE/B5C,KAAK8+D,WAAWl8D,QAAKnB,IAOvBmL,EAAgB,uBAA6BiyD,GAKtC,MAAMzI,GA6Bbx2D,YAAYiN,GAgDV,GA/CFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK86C,gBAC+B,MAA/BjuC,EAAYiuC,gBAA2Br0C,SAASoG,EAAYiuC,gBAAiB,SAAMr5C,EAExFzB,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAK8jB,cAC6B,MAA7BjX,EAAYiX,cAAyB5W,WAAWL,EAAYiX,oBAAiBriB,EAElFzB,KAAK4jB,UACyB,MAAzB/W,EAAY+W,UAAqB1W,WAAWL,EAAY+W,gBAAaniB,EAE1EzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK++D,MACDlyD,EAAYkyD,MAEhB/+D,KAAKg/D,MACDnyD,EAAYmyD,MAEhBh/D,KAAKi/D,KACDpyD,EAAYoyD,KAEhBj/D,KAAKk/D,cACDryD,EAAYqyD,cAEhBl/D,KAAKm/D,QACDtyD,EAAYsyD,QAEhBn/D,KAAKo/D,QACDvyD,EAAYuyD,QAEhBp/D,KAAKq/D,OACDxyD,EAAYwyD,OAEhBr/D,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKoxB,UACDvkB,EAAYukB,UAEpBpxB,KAAKmN,YAAS1L,EACVoL,EAAYM,OAAQ,CACxBnN,KAAKmN,OAAS,GACd,IAAK,IAAIvK,EAAI,EAAGA,EAAIiK,EAAYM,OAAOtK,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYM,OAAOvK,GACvB,GAA4C,MAAxCiK,EAAYM,OAAOvK,GAAG,eAExBwK,GADIA,EAAoBP,EAAYM,OAAOvK,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmN,OAAOvK,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYM,OAAOvK,UAGtE5C,KAAKmN,OAAOvK,GAAK,IAAI4gB,GAAwB3W,EAAYM,OAAOvK,SAGpE5C,KAAKmN,OAAOvK,QAAKnB,GAYjB,GAPIzB,KAAKs/D,yBACwC,MAAxCzyD,EAAYyyD,yBAAoC74D,SAASoG,EAAYyyD,yBAA0B,SAAM79D,EAE1GzB,KAAK2iB,cACD9V,EAAY8V,cAEpB3iB,KAAKu/D,sBAAmB99D,EACpBoL,EAAY0yD,iBAAkB,CAClCv/D,KAAKu/D,iBAAmB,GACxB,IAAS38D,EAAI,EAAGA,EAAIiK,EAAY0yD,iBAAiB18D,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAY0yD,iBAAiB38D,GACjC,GAAsD,MAAlDiK,EAAY0yD,iBAAiB38D,GAAG,eAElCwK,GADIA,EAAoBP,EAAY0yD,iBAAiB38D,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu/D,iBAAiB38D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0yD,iBAAiB38D,UAG1F5C,KAAKu/D,iBAAiB38D,GAAK,IAAI8hB,GAAgC7X,EAAY0yD,iBAAiB38D,SAGhG5C,KAAKu/D,iBAAiB38D,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0BwpD,GAKnC,MAAMjgB,GAsBbv2C,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAKw/D,gBACD3yD,EAAY2yD,gBAEhBx/D,KAAKy/D,WACD5yD,EAAY4yD,WAEhBz/D,KAAK0/D,WACD7yD,EAAY6yD,WAEhB1/D,KAAK2/D,YACD9yD,EAAY8yD,YAEhB3/D,KAAK4/D,kBACD/yD,EAAY+yD,kBAEhB5/D,KAAK6/D,aACDhzD,EAAYgzD,aAEhB7/D,KAAK8/D,iBACDjzD,EAAYizD,iBAEhB9/D,KAAK+/D,iBACDlzD,EAAYkzD,iBAEhB//D,KAAKggE,wBACDnzD,EAAYmzD,wBAEhBhgE,KAAKigE,KACDpzD,EAAYozD,KAEhBjgE,KAAKkgE,cACDrzD,EAAYqzD,cAEpBlgE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCupC,GAK3C,MAAME,GAebz2C,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAKw/D,gBACD3yD,EAAY2yD,gBAEhBx/D,KAAKy/D,WACD5yD,EAAY4yD,WAEhBz/D,KAAK4/D,kBACD/yD,EAAY+yD,kBAEhB5/D,KAAKmgE,WACDtzD,EAAYszD,WAEpBngE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCypC,GAK3C,MAAMG,GAiBb52C,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAKw/D,gBACD3yD,EAAY2yD,gBAEhBx/D,KAAKy/D,WACD5yD,EAAY4yD,WAEhBz/D,KAAK4/D,kBACD/yD,EAAY+yD,kBAEhB5/D,KAAK0/D,WACD7yD,EAAY6yD,WAEhB1/D,KAAK2/D,YACD9yD,EAAY8yD,YAEhB3/D,KAAKogE,oBACDvzD,EAAYuzD,oBAEpBpgE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,+BAAqC4pC,GAK9C,MAAM6pB,GA8BbzgE,YAAYiN,GAsDV,GArDFA,EAAcA,GAAe,GACvB7M,KAAKsgE,qBACDzzD,EAAYyzD,qBAEhBtgE,KAAKugE,iBACD1zD,EAAY0zD,iBAEhBvgE,KAAKwgE,kBACD3zD,EAAY2zD,kBAEhBxgE,KAAKygE,OACD5zD,EAAY4zD,OAEhBzgE,KAAKs6C,SACDztC,EAAYytC,SAEhBt6C,KAAK0gE,gBACD7zD,EAAY6zD,gBAEhB1gE,KAAK2gE,UACD9zD,EAAY8zD,UAEhB3gE,KAAK4gE,kBACD/zD,EAAY+zD,kBAEhB5gE,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAK6gE,sBACDh0D,EAAYg0D,sBAEhB7gE,KAAK8gE,wBACDj0D,EAAYi0D,wBAEhB9gE,KAAK+gE,QACDl0D,EAAYk0D,QAEhB/gE,KAAKghE,gBACDn0D,EAAYm0D,gBAEhBhhE,KAAKq6C,MACDxtC,EAAYwtC,MAEhBr6C,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKihE,YACDp0D,EAAYo0D,YAEpBjhE,KAAKkhE,qBAAkBz/D,EACnBoL,EAAYq0D,gBAAiB,CACjClhE,KAAKkhE,gBAAkB,GACvB,IAAK,IAAIt+D,EAAI,EAAGA,EAAIiK,EAAYq0D,gBAAgBr+D,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAYq0D,gBAAgBt+D,GAChC,GAAqD,MAAjDiK,EAAYq0D,gBAAgBt+D,GAAG,eAEjCwK,GADIA,EAAoBP,EAAYq0D,gBAAgBt+D,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkhE,gBAAgBt+D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYq0D,gBAAgBt+D,UAGxF5C,KAAKkhE,gBAAgBt+D,GAAK,IAAIu+D,GAAoBt0D,EAAYq0D,gBAAgBt+D,SAGlF5C,KAAKkhE,gBAAgBt+D,QAAKnB,GAM1B,GADAzB,KAAKohE,gBAAa3/D,EACdoL,EAAYu0D,WAAY,CAC5BphE,KAAKohE,WAAa,GAClB,IAASx+D,EAAI,EAAGA,EAAIiK,EAAYu0D,WAAWv+D,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYu0D,WAAWx+D,GAC3B,GAAgD,MAA5CiK,EAAYu0D,WAAWx+D,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYu0D,WAAWx+D,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKohE,WAAWx+D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYu0D,WAAWx+D,UAG9E5C,KAAKohE,WAAWx+D,GAAK,IAAIy+D,GAAex0D,EAAYu0D,WAAWx+D,SAGnE5C,KAAKohE,WAAWx+D,QAAKnB,GAMrB,GADAzB,KAAKshE,iBAAc7/D,EACfoL,EAAYy0D,YAAa,CAC7BthE,KAAKshE,YAAc,GACnB,IAAS1+D,EAAI,EAAGA,EAAIiK,EAAYy0D,YAAYz+D,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYy0D,YAAY1+D,GAC5B,GAAiD,MAA7CiK,EAAYy0D,YAAY1+D,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYy0D,YAAY1+D,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKshE,YAAY1+D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYy0D,YAAY1+D,UAGhF5C,KAAKshE,YAAY1+D,GAAK,IAAI2+D,GAAgB10D,EAAYy0D,YAAY1+D,SAGtE5C,KAAKshE,YAAY1+D,QAAKnB,GAMtB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsByzD,GAK/B,MAAM5kF,GAmCbmkB,YAAYiN,GAiEV,GAhEFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAKwhE,UACD30D,EAAY20D,UAEhBxhE,KAAKyhE,YACA50D,EAAY40D,uBAAuBx6D,KAAQ4F,EAAY40D,YAC1B,MAA3B50D,EAAY40D,aAAuBnzD,EAAAA,EAAAA,IAAiCzB,EAAY40D,YAAa,sBAAsB,QAAShgE,EAEnIzB,KAAK0hE,QACA70D,EAAY60D,mBAAmBz6D,KAAQ4F,EAAY60D,QAC1B,MAAvB70D,EAAY60D,SAAmBpzD,EAAAA,EAAAA,IAAiCzB,EAAY60D,QAAS,sBAAsB,QAASjgE,EAE3HzB,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAK2hE,gBAC+B,MAA/B90D,EAAY80D,gBAA2Bz0D,WAAWL,EAAY80D,sBAAmBlgE,EAEtFzB,KAAK4hE,aAC4B,MAA5B/0D,EAAY+0D,aAAwB10D,WAAWL,EAAY+0D,mBAAgBngE,EAEhFzB,KAAK6hE,eAC8B,MAA9Bh1D,EAAYg1D,eAA0B30D,WAAWL,EAAYg1D,qBAAkBpgE,EAEpFzB,KAAK8hE,kBACiC,MAAjCj1D,EAAYi1D,kBAA6B50D,WAAWL,EAAYi1D,wBAAqBrgE,EAE1FzB,KAAKsc,cAC6B,MAA7BzP,EAAYyP,cAAyBpP,WAAWL,EAAYyP,oBAAiB7a,EAElFzB,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKiO,WAC0B,MAA1BpB,EAAYoB,WAAsBf,WAAWL,EAAYoB,iBAAcxM,EAE5EzB,KAAK+hE,cAC6B,MAA7Bl1D,EAAYk1D,cAAyB70D,WAAWL,EAAYk1D,oBAAiBtgE,EAElFzB,KAAKgiE,QACDn1D,EAAYm1D,QAEhBhiE,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKmT,8BAC6C,MAA7CtG,EAAYsG,8BAAyCjG,WAAWL,EAAYsG,oCAAiC1R,EAElHzB,KAAKkT,0BACyC,MAAzCrG,EAAYqG,0BAAqChG,WAAWL,EAAYqG,gCAA6BzR,EAE9GzB,KAAKiiE,sBAAmBxgE,EACpBoL,EAAYo1D,iBAAkB,CAClCjiE,KAAKiiE,iBAAmB,GACxB,IAAK,IAAIr/D,EAAI,EAAGA,EAAIiK,EAAYo1D,iBAAiBp/D,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYo1D,iBAAiBr/D,GACjC,GAAsD,MAAlDiK,EAAYo1D,iBAAiBr/D,GAAG,eAElCwK,GADIA,EAAoBP,EAAYo1D,iBAAiBr/D,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiiE,iBAAiBr/D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYo1D,iBAAiBr/D,UAG1F5C,KAAKiiE,iBAAiBr/D,GAAK,IAAIs/D,GAAsBr1D,EAAYo1D,iBAAiBr/D,SAGtF5C,KAAKiiE,iBAAiBr/D,QAAKnB,GAM3B,GADAzB,KAAKgP,iBAAcvN,EACfoL,EAAYmC,YAAa,CAC7BhP,KAAKgP,YAAc,GACnB,IAASpM,EAAI,EAAGA,EAAIiK,EAAYmC,YAAYnM,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAYmC,YAAYpM,GAC5B,GAAiD,MAA7CiK,EAAYmC,YAAYpM,GAAG,eAE7BwK,GADIA,EAAoBP,EAAYmC,YAAYpM,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgP,YAAYpM,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmC,YAAYpM,UAGhF5C,KAAKgP,YAAYpM,GAAK,IAAIqM,GAAgBpC,EAAYmC,YAAYpM,SAGtE5C,KAAKgP,YAAYpM,QAAKnB,GAMtB,GADAzB,KAAK0S,iBAAcjR,EACfoL,EAAY6F,YAAa,CAC7B1S,KAAK0S,YAAc,GACnB,IAAS9P,EAAI,EAAGA,EAAIiK,EAAY6F,YAAY7P,OAAQD,IAAK,CACzD,GAAkC,MAA9BiK,EAAY6F,YAAY9P,GAC5B,GAAiD,MAA7CiK,EAAY6F,YAAY9P,GAAG,eAE7BwK,GADIA,EAAoBP,EAAY6F,YAAY9P,GAAG,gBAC7ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0S,YAAY9P,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6F,YAAY9P,UAGhF5C,KAAK0S,YAAY9P,GAAK,IAAIzqC,GAAgB00C,EAAY6F,YAAY9P,SAGtE5C,KAAK0S,YAAY9P,QAAKnB,GAYtB,GAPIzB,KAAK2P,yBACwC,MAAxC9C,EAAY8C,yBAAoCzC,WAAWL,EAAY8C,+BAA4BlO,EAExGzB,KAAKmiE,aACDt1D,EAAYs1D,aAEpBniE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwBnxB,GAKjC,MAAMG,GAqBbgkB,YAAYiN,GAsCV,GArCFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAKyhE,YACA50D,EAAY40D,uBAAuBx6D,KAAQ4F,EAAY40D,YAC1B,MAA3B50D,EAAY40D,aAAuBnzD,EAAAA,EAAAA,IAAiCzB,EAAY40D,YAAa,sBAAsB,QAAShgE,EAEnIzB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAKiO,WAC0B,MAA1BpB,EAAYoB,WAAsBf,WAAWL,EAAYoB,iBAAcxM,EAE5EzB,KAAK+hE,cAC6B,MAA7Bl1D,EAAYk1D,cAAyB70D,WAAWL,EAAYk1D,oBAAiBtgE,EAElFzB,KAAK21B,iBACD9oB,EAAY8oB,iBAEhB31B,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKoiE,eACAv1D,EAAYu1D,0BAA0Bn7D,KAAQ4F,EAAYu1D,eAC1B,MAA9Bv1D,EAAYu1D,gBAA0B9zD,EAAAA,EAAAA,IAAiCzB,EAAYu1D,eAAgB,sBAAsB,QAAS3gE,EAEzIzB,KAAKqiE,uBACDx1D,EAAYw1D,uBAEpBriE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBhxB,GAKjC,MAAMwS,GAkBbwR,YAAYiN,GA2BV,GA1BFA,EAAcA,GAAe,GACvB7M,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAKsiE,eACDz1D,EAAYy1D,eAEhBtiE,KAAKuiE,oBACD11D,EAAY01D,oBAEhBviE,KAAKwiE,mBACD31D,EAAY21D,mBAEhBxiE,KAAKyiE,wBACD51D,EAAY41D,wBAEhBziE,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK0iE,sBACD71D,EAAY61D,sBAEhB1iE,KAAKwmB,OACD3Z,EAAY2Z,OAEpBxmB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBxe,GAKhC,MAAM8N,GA4Cb0D,YAAYiN,GAyGV,GAxGFA,EAAcA,GAAe,GACvB7M,KAAK2iE,SACD91D,EAAY81D,SAEhB3iE,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK80D,YACDjoD,EAAYioD,YAEhB90D,KAAK60D,cACDhoD,EAAYgoD,cAEhB70D,KAAK4iE,mBACD/1D,EAAY+1D,mBAEhB5iE,KAAK6iE,yBACwC,MAAxCh2D,EAAYg2D,yBAAoC31D,WAAWL,EAAYg2D,+BAA4BphE,EAExGzB,KAAK8iE,+BACDj2D,EAAYi2D,+BAEhB9iE,KAAKqrC,WACDx+B,EAAYw+B,WAEhBrrC,KAAK+iE,0BACDl2D,EAAYk2D,0BAEhB/iE,KAAKgjE,8BAC6C,MAA7Cn2D,EAAYm2D,8BAAyC91D,WAAWL,EAAYm2D,oCAAiCvhE,EAElHzB,KAAKijE,oBACDp2D,EAAYo2D,oBAEhBjjE,KAAKkjE,qBACDr2D,EAAYq2D,qBAEhBljE,KAAKmjE,wBACuC,MAAvCt2D,EAAYs2D,wBAAmCj2D,WAAWL,EAAYs2D,8BAA2B1hE,EAEtGzB,KAAKojE,yBACwC,MAAxCv2D,EAAYu2D,yBAAoCl2D,WAAWL,EAAYu2D,+BAA4B3hE,EAExGzB,KAAKqjE,4BAC2C,MAA3Cx2D,EAAYw2D,4BAAuCn2D,WAAWL,EAAYw2D,kCAA+B5hE,EAE9GzB,KAAKsjE,qBACoC,MAApCz2D,EAAYy2D,qBAAgCp2D,WAAWL,EAAYy2D,2BAAwB7hE,EAEhGzB,KAAKujE,4BAC2C,MAA3C12D,EAAY02D,4BAAuCr2D,WAAWL,EAAY02D,kCAA+B9hE,EAE9GzB,KAAKwjE,qBACoC,MAApC32D,EAAY22D,qBAAgCt2D,WAAWL,EAAY22D,2BAAwB/hE,EAEhGzB,KAAKyjE,SACwB,MAAxB52D,EAAY42D,SAAoBv2D,WAAWL,EAAY42D,eAAYhiE,EAExEzB,KAAKk+C,iBACDrxC,EAAYqxC,iBAEhBl+C,KAAK0jE,YACD72D,EAAY62D,YAEhB1jE,KAAK2jE,YACD92D,EAAY82D,YAEhB3jE,KAAK4jE,YACD/2D,EAAY+2D,YAEhB5jE,KAAK6jE,aACDh3D,EAAYg3D,aAEhB7jE,KAAK8jE,4BAC2C,MAA3Cj3D,EAAYi3D,4BAAuC52D,WAAWL,EAAYi3D,kCAA+BriE,EAE9GzB,KAAK+jE,oBACDl3D,EAAYk3D,oBAEhB/jE,KAAKgkE,qBACDn3D,EAAYm3D,qBAEhBhkE,KAAKikE,uBACDp3D,EAAYo3D,uBAEhBjkE,KAAKkkE,gBAC+B,MAA/Br3D,EAAYq3D,gBAA2Bh3D,WAAWL,EAAYq3D,sBAAmBziE,EAEtFzB,KAAKmkE,8BACDt3D,EAAYs3D,8BAEhBnkE,KAAK22B,kBACD9pB,EAAY8pB,kBAEhB32B,KAAKokE,kBACDv3D,EAAYu3D,kBAEhBpkE,KAAKqkE,yBACDx3D,EAAYw3D,yBAEpBrkE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsB1Q,GAK/B,MAAMjS,GA6Bb2V,YAAYiN,GAyDV,GAxDFA,EAAcA,GAAe,GACvB7M,KAAKskE,cACDz3D,EAAYy3D,cAEhBtkE,KAAKukE,mBACD13D,EAAY03D,mBAEhBvkE,KAAKwkE,cACD33D,EAAY23D,cAEhBxkE,KAAKykE,aAC4B,MAA5B53D,EAAY43D,aAAwBv3D,WAAWL,EAAY43D,mBAAgBhjE,EAEhFzB,KAAK0kE,cACD73D,EAAY63D,cAEhB1kE,KAAK2kE,aAC4B,MAA5B93D,EAAY83D,aAAwBz3D,WAAWL,EAAY83D,mBAAgBljE,EAEhFzB,KAAK4kE,mBACD/3D,EAAY+3D,mBAEhB5kE,KAAK6kE,wBACDh4D,EAAYg4D,wBAEhB7kE,KAAK8kE,oBACDj4D,EAAYi4D,oBAEhB9kE,KAAK+kE,qBACDl4D,EAAYk4D,qBAEhB/kE,KAAKglE,OACDn4D,EAAYm4D,OAEhBhlE,KAAKilE,aAC4B,MAA5Bp4D,EAAYo4D,aAAwB/3D,WAAWL,EAAYo4D,mBAAgBxjE,EAEhFzB,KAAKklE,oBACDr4D,EAAYq4D,oBAEhBllE,KAAKq5C,aACDxsC,EAAYwsC,aAEhBr5C,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKi5C,eACDpsC,EAAYosC,eAEhBj5C,KAAKmlE,cACDt4D,EAAYs4D,cAEhBnlE,KAAKolE,gBACDv4D,EAAYu4D,gBAEpBplE,KAAKqlE,oBAAiB5jE,EAClBoL,EAAYw4D,eAAgB,CAChCrlE,KAAKqlE,eAAiB,GACtB,IAAK,IAAIziE,EAAI,EAAGA,EAAIiK,EAAYw4D,eAAexiE,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAYw4D,eAAeziE,GAC/B,GAAoD,MAAhDiK,EAAYw4D,eAAeziE,GAAG,eAEhCwK,GADIA,EAAoBP,EAAYw4D,eAAeziE,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqlE,eAAeziE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYw4D,eAAeziE,UAGtF5C,KAAKqlE,eAAeziE,GAAK,IAAIg3C,GAAmB/sC,EAAYw4D,eAAeziE,SAG/E5C,KAAKqlE,eAAeziE,QAAKnB,GAMzB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsB3iB,GAK/B,MAAMK,GAgBbsV,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKslE,SACDz4D,EAAYy4D,SAEpBtlE,KAAKulE,gBAAa9jE,EACdoL,EAAY04D,WAAY,CAC5BvlE,KAAKulE,WAAa,GAClB,IAAK,IAAI3iE,EAAI,EAAGA,EAAIiK,EAAY04D,WAAW1iE,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY04D,WAAW3iE,GAC3B,GAAgD,MAA5CiK,EAAY04D,WAAW3iE,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY04D,WAAW3iE,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKulE,WAAW3iE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY04D,WAAW3iE,UAG9E5C,KAAKulE,WAAW3iE,GAAK,IAAI8K,GAAsBb,EAAY04D,WAAW3iE,SAG1E5C,KAAKulE,WAAW3iE,QAAKnB,GASrB,GAJIzB,KAAKmjB,OACDtW,EAAYsW,OAEpBnjB,KAAKwlE,YAAS/jE,EACVoL,EAAY24D,OAAQ,CACxBxlE,KAAKwlE,OAAS,GACd,IAAS5iE,EAAI,EAAGA,EAAIiK,EAAY24D,OAAO3iE,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAY24D,OAAO5iE,GACvB,GAA4C,MAAxCiK,EAAY24D,OAAO5iE,GAAG,eAExBwK,GADIA,EAAoBP,EAAY24D,OAAO5iE,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwlE,OAAO5iE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY24D,OAAO5iE,UAGtE5C,KAAKwlE,OAAO5iE,GAAK,IAAI6iE,GAAe54D,EAAY24D,OAAO5iE,SAG3D5C,KAAKwlE,OAAO5iE,QAAKnB,GAYjB,GAPIzB,KAAK0lE,YACD74D,EAAY64D,YAEhB1lE,KAAK2lE,cACD94D,EAAY84D,cAEpB3lE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyBtiB,GAKlC,MAAMe,GAmBbuU,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAK4lE,cACD/4D,EAAY+4D,cAEhB5lE,KAAK6lE,WACDh5D,EAAYg5D,WAEhB7lE,KAAKwlC,SACD34B,EAAY24B,SAEhBxlC,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAKq8B,QACDxvB,EAAYwvB,QAEhBr8B,KAAKs8B,SACDzvB,EAAYyvB,SAEhBt8B,KAAK0xC,SACD7kC,EAAY6kC,SAEhB1xC,KAAK8lE,UACDj5D,EAAYi5D,UAEhB9lE,KAAK+lE,SACDl5D,EAAYk5D,SAEpB/lE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBvhB,GAKhC,MAAM26E,GAabpmE,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKq5C,aACDxsC,EAAYwsC,aAEhBr5C,KAAKimE,SACDp5D,EAAYo5D,SAEhBjmE,KAAKkmE,kBACDr5D,EAAYq5D,kBAEpBlmE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiCo5D,GAK1C,MAAMG,GAWbvmE,YAAYiN,GAEV,GAA0B,OAD5BA,EAAcA,GAAe,IACXzM,OACZJ,KAAKI,YAASqB,OACX,GAAyC,MAArCoL,EAAYzM,OAAO,eAC1BJ,KAAKI,OAAS,IAAIgmE,GAAgBv5D,EAAYzM,YAC3C,CAEHgN,GADIA,EAAoBP,EAAYzM,OAAO,gBACrBiN,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKI,OAAS,IAAIwM,EAAiBQ,GAAWP,EAAYzM,SAKlE,GAA2B,MAAvByM,EAAYxM,QACZL,KAAKK,aAAUoB,OACZ,GAA0C,MAAtCoL,EAAYxM,QAAQ,eAC3BL,KAAKK,QAAU,IAAIgmE,GAAiBx5D,EAAYxM,aAC7C,CACH,IAAI+M,EACJA,GADIA,EAAoBP,EAAYxM,QAAQ,gBACtBgN,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKK,QAAU,IAAIuM,EAAiBQ,GAAWP,EAAYxM,YAOrEuM,EAAgB,yBAA+Bu5D,GAKxC,MAAME,GAUbzmE,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKkB,aAAUO,EACXoL,EAAY3L,QAAS,CACzBlB,KAAKkB,QAAU,GACf,IAAK,IAAI0B,EAAI,EAAGA,EAAIiK,EAAY3L,QAAQ2B,OAAQD,IAChD,GAA8B,MAA1BiK,EAAY3L,QAAQ0B,GACxB,GAA6C,MAAzCiK,EAAY3L,QAAQ0B,GAAG,eAAwB,CACjD,IAAIwK,EAAoBP,EAAY3L,QAAQ0B,GAAG,eAC/CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkB,QAAQ0B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY3L,QAAQ0B,UAGxE5C,KAAKkB,QAAQ0B,GAAK,IAAIw9B,GAAgBvzB,EAAY3L,QAAQ0B,SAG9D5C,KAAKkB,QAAQ0B,QAAKnB,IAOpBmL,EAAgB,iBAAuBy5D,GAKhC,MAAMjmC,GAWbxgC,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKmB,WACD0L,EAAY1L,WAEhBnB,KAAK2K,aACDkC,EAAYlC,cAItBiC,EAAgB,gBAAsBwzB,GAK/B,MAAMgmC,GAYbxmE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKsmE,cACDz5D,EAAYy5D,cAEhBtmE,KAAKU,IACmB,MAAnBmM,EAAYnM,IAAe+F,SAASoG,EAAYnM,IAAK,SAAMe,EAEhEzB,KAAKW,KACoB,MAApBkM,EAAYlM,KAAgB8F,SAASoG,EAAYlM,KAAM,SAAMc,GAIxEmL,EAAgB,gBAAsBw5D,GAK/B,MAAM1hD,GAWb9kB,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKumE,oBACD15D,EAAY05D,oBAEpBvmE,KAAKwmE,0BAAuB/kE,EACxBoL,EAAY25D,qBAAsB,CACtCxmE,KAAKwmE,qBAAuB,GAC5B,IAAK,IAAI5jE,EAAI,EAAGA,EAAIiK,EAAY25D,qBAAqB3jE,OAAQD,IAC7D,GAA2C,MAAvCiK,EAAY25D,qBAAqB5jE,GACrC,GAA0D,MAAtDiK,EAAY25D,qBAAqB5jE,GAAG,eAAwB,CAC9D,IAAIwK,EAAoBP,EAAY25D,qBAAqB5jE,GAAG,eAC5DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwmE,qBAAqB5jE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY25D,qBAAqB5jE,UAGlG5C,KAAKwmE,qBAAqB5jE,GAAK,IAAI4yD,GAAqB3oD,EAAY25D,qBAAqB5jE,SAG7F5C,KAAKwmE,qBAAqB5jE,QAAKnB,IAOjCmL,EAAgB,gCAAsC8X,GAK/C,MAAMt9B,GAebwY,YAAYiN,GAmBV,GAlBFA,EAAcA,GAAe,GACvB7M,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAKymE,UACyB,MAAzB55D,EAAY45D,UAAqBhgE,SAASoG,EAAY45D,UAAW,SAAMhlE,EAE5EzB,KAAK0mE,yBACwC,MAAxC75D,EAAY65D,yBAAoCjgE,SAASoG,EAAY65D,yBAA0B,SAAMjlE,EAE1GzB,KAAK2mE,+BACA95D,EAAY85D,0CAA0C1/D,KAAQ4F,EAAY85D,+BAC1B,MAA9C95D,EAAY85D,gCAA0Cr4D,EAAAA,EAAAA,IAAiCzB,EAAY85D,+BAAgC,sBAAsB,QAASllE,EAEzKzB,KAAK4mE,kBACD/5D,EAAY+5D,kBAEpB5mE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCxlB,GAK3C,MAAMG,GAebqY,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE3HzB,KAAK6mE,UACAh6D,EAAYg6D,qBAAqB5/D,KAAQ4F,EAAYg6D,UAC1B,MAAzBh6D,EAAYg6D,WAAqBv4D,EAAAA,EAAAA,IAAiCzB,EAAYg6D,UAAW,sBAAsB,QAASplE,EAE/HzB,KAAK8mE,UACDj6D,EAAYi6D,UAEhB9mE,KAAK+mE,QACDl6D,EAAYk6D,QAEpB/mE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCrlB,GAK3C,MAAMtG,GAWb2e,YAAYiN,GAEV,GAA0B,OAD5BA,EAAcA,GAAe,IACXm6D,OACZhnE,KAAKgnE,YAASvlE,OACX,GAAyC,MAArCoL,EAAYm6D,OAAO,eAC1BhnE,KAAKgnE,OAAS,IAAI3oE,GAAYwO,EAAYm6D,YACvC,CAEH55D,GADIA,EAAoBP,EAAYm6D,OAAO,gBACrB35D,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgnE,OAAS,IAAIp6D,EAAiBQ,GAAWP,EAAYm6D,SAMlE,GADAhnE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4BAAkC3rB,GAK3C,MAAMpZ,GAkBb+3B,YAAYiN,GA4BV,GA3BFA,EAAcA,GAAe,GACvB7M,KAAKinE,cACAp6D,EAAYo6D,yBAAyBhgE,KAAQ4F,EAAYo6D,cAC1B,MAA7Bp6D,EAAYo6D,eAAyB34D,EAAAA,EAAAA,IAAiCzB,EAAYo6D,cAAe,sBAAsB,QAASxlE,EAEvIzB,KAAKwtD,SACD3gD,EAAY2gD,SAEhBxtD,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK0iB,YACD7V,EAAY6V,YAEhB1iB,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAEhFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B/kC,GAKpC,MAAMq/F,GAebtnE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKmnE,cACDt6D,EAAYs6D,cAEhBnnE,KAAKonE,eACDv6D,EAAYu6D,eAEhBpnE,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKqnE,SACDx6D,EAAYw6D,SAEhBrnE,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKsnE,cACDz6D,EAAYy6D,eAItB16D,EAAgB,UAAgBs6D,GAKzB,MAAMK,GAiBb3nE,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKwnE,iBAAc/lE,EACfoL,EAAY26D,YAAa,CAC7BxnE,KAAKwnE,YAAc,GACnB,IAAK,IAAI5kE,EAAI,EAAGA,EAAIiK,EAAY26D,YAAY3kE,OAAQD,IAClB,MAA9BiK,EAAY26D,YAAY5kE,GACxB5C,KAAKwnE,YAAY5kE,GACb6D,SAASoG,EAAY26D,YAAY5kE,GAAI,IAE7C5C,KAAKwnE,YAAY5kE,QAAKnB,EAqBtB,GAhBIzB,KAAKjpC,GACkB,MAAlB81C,EAAY91C,GAAc0vC,SAASoG,EAAY91C,GAAI,SAAM0qC,EAE9DzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKynE,SACD56D,EAAY46D,SAEhBznE,KAAK0nE,eAC8B,MAA9B76D,EAAY66D,eAA0BjhE,SAASoG,EAAY66D,eAAgB,SAAMjmE,EAE1FzB,KAAK2nE,eAAYlmE,EACboL,EAAY86D,UAAW,CAC3B3nE,KAAK2nE,UAAY,GACjB,IAAS/kE,EAAI,EAAGA,EAAIiK,EAAY86D,UAAU9kE,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAY86D,UAAU/kE,GAC1B,GAA+C,MAA3CiK,EAAY86D,UAAU/kE,GAAG,eAE3BwK,GADIA,EAAoBP,EAAY86D,UAAU/kE,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2nE,UAAU/kE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY86D,UAAU/kE,UAG5E5C,KAAK2nE,UAAU/kE,GAAK,IAAIglE,GAAqB/6D,EAAY86D,UAAU/kE,SAGvE5C,KAAK2nE,UAAU/kE,QAAKnB,GAMpB,GADAzB,KAAK6nE,4BAAyBpmE,EAC1BoL,EAAYg7D,uBAAwB,CACxC7nE,KAAK6nE,uBAAyB,GAC9B,IAASjlE,EAAI,EAAGA,EAAIiK,EAAYg7D,uBAAuBhlE,OAAQD,IAAK,CAGlE,IAAIwK,EAFN,GAA6C,MAAzCP,EAAYg7D,uBAAuBjlE,GACvC,GAA4D,MAAxDiK,EAAYg7D,uBAAuBjlE,GAAG,eAExCwK,GADIA,EAAoBP,EAAYg7D,uBAAuBjlE,GAAG,gBACxCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6nE,uBAAuBjlE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYg7D,uBAAuBjlE,UAGtG5C,KAAK6nE,uBAAuBjlE,GAAK,IAAIklE,GAA2Bj7D,EAAYg7D,uBAAuBjlE,SAGvG5C,KAAK6nE,uBAAuBjlE,QAAKnB,KAOnCmL,EAAgB,UAAgB26D,GAKzB,MAAMQ,GAWbnoE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK8iD,KACDj2C,EAAYi2C,MAItBl2C,EAAgB,kBAAwBm7D,GAKjC,MAAMC,GAYbpoE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKo9B,YACDvwB,EAAYuwB,YAEhBp9B,KAAK4U,IACD/H,EAAY+H,KAItBhI,EAAgB,2BAAiCo7D,GAK1C,MAAMC,WACHf,GAeVtnE,YAAYiN,GASV,GARFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKkoE,eACDr7D,EAAYq7D,eAEpBloE,KAAKmoE,cAAW1mE,EACZoL,EAAYs7D,SAAU,CAC1BnoE,KAAKmoE,SAAW,GAChB,IAAK,IAAIvlE,EAAI,EAAGA,EAAIiK,EAAYs7D,SAAStlE,OAAQD,IACjD,GAA+B,MAA3BiK,EAAYs7D,SAASvlE,GACzB,GAA8C,MAA1CiK,EAAYs7D,SAASvlE,GAAG,eAAwB,CAClD,IAAIwK,EAAoBP,EAAYs7D,SAASvlE,GAAG,eAChDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKmoE,SAASvlE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYs7D,SAASvlE,UAG1E5C,KAAKmoE,SAASvlE,GAAK,IAAIskE,GAAUr6D,EAAYs7D,SAASvlE,SAG1D5C,KAAKmoE,SAASvlE,QAAKnB,EAKfzB,KAAKooE,YACDv7D,EAAYu7D,YAEhBpoE,KAAKqoE,OACDx7D,EAAYw7D,OAEpBroE,KAAK,eAAiB,wDAIxB4M,EAAgB,WAAiBq7D,GAK1B,MAAM13E,GAebqP,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKymB,WAAQhlB,EACToL,EAAY4Z,MAAO,CACvBzmB,KAAKymB,MAAQ,GACb,IAAK,IAAI7jB,EAAI,EAAGA,EAAIiK,EAAY4Z,MAAM5jB,OAAQD,IAAK,CACnD,GAA4B,MAAxBiK,EAAY4Z,MAAM7jB,GACtB,GAA2C,MAAvCiK,EAAY4Z,MAAM7jB,GAAG,eAEvBwK,GADIA,EAAoBP,EAAY4Z,MAAM7jB,GAAG,gBACvByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKymB,MAAM7jB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4Z,MAAM7jB,UAGpE5C,KAAKymB,MAAM7jB,GAAK,IAAI2kE,GAAU16D,EAAY4Z,MAAM7jB,SAGpD5C,KAAKymB,MAAM7jB,QAAKnB,GAehB,GAVIzB,KAAKjpC,GACkB,MAAlB81C,EAAY91C,GAAc0vC,SAASoG,EAAY91C,GAAI,SAAM0qC,EAE9DzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsoE,OACDz7D,EAAYy7D,OAEpBtoE,KAAKuoE,eAAY9mE,EACboL,EAAY07D,UAAW,CAC3BvoE,KAAKuoE,UAAY,GACjB,IAAS3lE,EAAI,EAAGA,EAAIiK,EAAY07D,UAAU1lE,OAAQD,IAAK,CAGrD,IAAIwK,EAFN,GAAgC,MAA5BP,EAAY07D,UAAU3lE,GAC1B,GAA+C,MAA3CiK,EAAY07D,UAAU3lE,GAAG,eAE3BwK,GADIA,EAAoBP,EAAY07D,UAAU3lE,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuoE,UAAU3lE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY07D,UAAU3lE,UAG5E5C,KAAKuoE,UAAU3lE,GAAK,IAAI2kE,GAAU16D,EAAY07D,UAAU3lE,SAG5D5C,KAAKuoE,UAAU3lE,QAAKnB,GAKhBzB,KAAKwoE,UACD37D,EAAY27D,WAItB57D,EAAgB,eAAqBrc,GAK9B,MAAMk4E,WACHvB,GAaVtnE,YAAYiN,GASV,GARFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK0oE,gBACD77D,EAAY67D,gBAEhB1oE,KAAK2oE,SACD97D,EAAY87D,SAEpB3oE,KAAK4oE,iBAAcnnE,EACfoL,EAAY+7D,YAAa,CAC7B5oE,KAAK4oE,YAAc,GACnB,IAAK,IAAIhmE,EAAI,EAAGA,EAAIiK,EAAY+7D,YAAY/lE,OAAQD,IACpD,GAAkC,MAA9BiK,EAAY+7D,YAAYhmE,GAC5B,GAAiD,MAA7CiK,EAAY+7D,YAAYhmE,GAAG,eAAwB,CACrD,IAAIwK,EAAoBP,EAAY+7D,YAAYhmE,GAAG,eACnDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4oE,YAAYhmE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+7D,YAAYhmE,UAGhF5C,KAAK4oE,YAAYhmE,GAAK,IAAIimE,GAAgBh8D,EAAY+7D,YAAYhmE,SAGtE5C,KAAK4oE,YAAYhmE,QAAKnB,EAKtBzB,KAAK,eAAiB,6DAIxB4M,EAAgB,gBAAsB67D,GAK/B,MAAMK,WACHL,GAcV7oE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK+oE,oBACDl8D,EAAYk8D,oBAEhB/oE,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKoP,QACDvC,EAAYuC,QAEhBpP,KAAKgpE,OACDn8D,EAAYm8D,OAEpBhpE,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0Bk8D,GAKnC,MAAMG,WACHR,GAYV7oE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKkpE,OACDr8D,EAAYq8D,OAEhBlpE,KAAKmpE,aACDt8D,EAAYs8D,aAEpBnpE,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0Bq8D,GAKnC,MAAMG,WACHH,GAiBVrpE,YAAYiN,GAeV,GAdFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKqpE,gBACDx8D,EAAYw8D,gBAEhBrpE,KAAKspE,YACDz8D,EAAYy8D,YAEhBtpE,KAAKupE,YACD18D,EAAY08D,YAEhBvpE,KAAKwpE,YACD38D,EAAY28D,YAEpBxpE,KAAKypE,eAAYhoE,EACboL,EAAY48D,UAAW,CAC3BzpE,KAAKypE,UAAY,GACjB,IAAK,IAAI7mE,EAAI,EAAGA,EAAIiK,EAAY48D,UAAU5mE,OAAQD,IAClD,GAAgC,MAA5BiK,EAAY48D,UAAU7mE,GAC1B,GAA+C,MAA3CiK,EAAY48D,UAAU7mE,GAAG,eAAwB,CACnD,IAAIwK,EAAoBP,EAAY48D,UAAU7mE,GAAG,eACjDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKypE,UAAU7mE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY48D,UAAU7mE,UAG5E5C,KAAKypE,UAAU7mE,GAAK,IAAI8mE,GAAqB78D,EAAY48D,UAAU7mE,SAGvE5C,KAAKypE,UAAU7mE,QAAKnB,EAKhBzB,KAAK2pE,QACD98D,EAAY88D,QAEhB3pE,KAAK4pE,YACD/8D,EAAY+8D,YAEpB5pE,KAAK,eAAiB,oEAIxB4M,EAAgB,uBAA6Bw8D,GAKtC,MAAMP,GAUbjpE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKngB,YACDgtB,EAAYhtB,aAItB+sB,EAAgB,gBAAsBi8D,GAK/B,MAAMt3E,GAcbqO,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK6pE,YAASpoE,EACVoL,EAAYg9D,OAAQ,CACxB7pE,KAAK6pE,OAAS,GACd,IAAK,IAAIjnE,EAAI,EAAGA,EAAIiK,EAAYg9D,OAAOhnE,OAAQD,IAAK,CACpD,GAA6B,MAAzBiK,EAAYg9D,OAAOjnE,GACvB,GAA4C,MAAxCiK,EAAYg9D,OAAOjnE,GAAG,eAExBwK,GADIA,EAAoBP,EAAYg9D,OAAOjnE,GAAG,gBACxByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK6pE,OAAOjnE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYg9D,OAAOjnE,UAGtE5C,KAAK6pE,OAAOjnE,GAAK,IAAIqlE,GAAWp7D,EAAYg9D,OAAOjnE,SAGvD5C,KAAK6pE,OAAOjnE,QAAKnB,GAMjB,GADAzB,KAAK8pE,wBAAqBroE,EACtBoL,EAAYi9D,mBAAoB,CACpC9pE,KAAK8pE,mBAAqB,GAC1B,IAASlnE,EAAI,EAAGA,EAAIiK,EAAYi9D,mBAAmBjnE,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYi9D,mBAAmBlnE,GACnC,GAAwD,MAApDiK,EAAYi9D,mBAAmBlnE,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYi9D,mBAAmBlnE,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8pE,mBAAmBlnE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYi9D,mBAAmBlnE,UAG9F5C,KAAK8pE,mBAAmBlnE,GAAK,IAAImnE,GAAgCl9D,EAAYi9D,mBAAmBlnE,SAGpG5C,KAAK8pE,mBAAmBlnE,QAAKnB,GAK7B,GAA6B,MAAzBoL,EAAYm9D,UACZhqE,KAAKgqE,eAAYvoE,OACd,GAA4C,MAAxCoL,EAAYm9D,UAAU,eAC7BhqE,KAAKgqE,UAAY,IAAI/B,GAAWp7D,EAAYm9D,eACzC,CACH,IAAI58D,EACJA,GADIA,EAAoBP,EAAYm9D,UAAU,gBACxB38D,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKgqE,UAAY,IAAIp9D,EAAiBQ,GAAWP,EAAYm9D,YAKjEhqE,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,aAItB+sB,EAAgB,eAAqBrb,GAK9B,MAAMw4E,GAWbnqE,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAKkpE,OACDr8D,EAAYq8D,OAEW,MAA3Br8D,EAAYo9D,YACZjqE,KAAKiqE,iBAAcxoE,OAChB,GAA8C,MAA1CoL,EAAYo9D,YAAY,eAC/BjqE,KAAKiqE,YAAc,IAAIC,GAAiBr9D,EAAYo9D,iBACjD,CACH,IAAI78D,EAAoBP,EAAYo9D,YAAY,eAChD78D,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiqE,YAAc,IAAIr9D,EAAiBQ,GAAWP,EAAYo9D,gBAOzEr9D,EAAgB,gCAAsCm9D,GAK/C,MAAMI,GASbvqE,YAAYiN,GACZA,EAAcA,GAAe,IAG7BD,EAAgB,qCAA2Cu9D,GAKpD,MAAMC,WACHD,GAYVvqE,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKqqE,wBAAqB5oE,EACtBoL,EAAYw9D,mBAAoB,CACpCrqE,KAAKqqE,mBAAqB,GAC1B,IAAK,IAAIznE,EAAI,EAAGA,EAAIiK,EAAYw9D,mBAAmBxnE,OAAQD,IAC3D,GAAyC,MAArCiK,EAAYw9D,mBAAmBznE,GACnC,GAAwD,MAApDiK,EAAYw9D,mBAAmBznE,GAAG,eAAwB,CAC5D,IAAIwK,EAAoBP,EAAYw9D,mBAAmBznE,GAAG,eAC1DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqqE,mBAAmBznE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYw9D,mBAAmBznE,UAG9F5C,KAAKqqE,mBAAmBznE,GAAK,IAAIisD,GAA6BhiD,EAAYw9D,mBAAmBznE,SAGjG5C,KAAKqqE,mBAAmBznE,QAAKnB,EAKzBzB,KAAK+uD,OACsB,MAAtBliD,EAAYkiD,OAAkBtoD,SAASoG,EAAYkiD,OAAQ,SAAMttD,EAE1EzB,KAAK,eAAiB,gGAIxB4M,EAAgB,mDAAyDw9D,GAKlE,MAAME,GAab1qE,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKmoD,WACDt7C,EAAYs7C,WAEhBnoD,KAAKuqE,yBACD19D,EAAY09D,yBAEhBvqE,KAAK4oC,UACD/7B,EAAY+7B,UAEpB5oC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6B09D,GAKtC,MAAMvyE,GAmCb6H,YAAYiN,GAuEV,GAtEFA,EAAcA,GAAe,GACvB7M,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE3IzB,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKwqE,cACA39D,EAAY29D,yBAAyBvjE,KAAQ4F,EAAY29D,cAC1B,MAA7B39D,EAAY29D,eAAyBl8D,EAAAA,EAAAA,IAAiCzB,EAAY29D,cAAe,sBAAsB,QAAS/oE,EAEvIzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKyqE,iBACD59D,EAAY49D,iBAEhBzqE,KAAK0qE,YACD79D,EAAY69D,YAEhB1qE,KAAK2qE,WACD99D,EAAY89D,WAEhB3qE,KAAK4qE,gBACD/9D,EAAY+9D,gBAEhB5qE,KAAK6qE,mBACDh+D,EAAYg+D,mBAEhB7qE,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK8qE,wBACDj+D,EAAYi+D,wBAEhB9qE,KAAK+qE,sBACDl+D,EAAYk+D,sBAEhB/qE,KAAKgrE,eACDn+D,EAAYm+D,eAEhBhrE,KAAK82B,cACDjqB,EAAYiqB,cAEhB92B,KAAKirE,gCACDp+D,EAAYo+D,gCAEhBjrE,KAAKkrE,aACDr+D,EAAYq+D,aAEhBlrE,KAAKmrE,eACDt+D,EAAYs+D,eAEhBnrE,KAAKorE,sBACDv+D,EAAYu+D,sBAEhBprE,KAAKqrE,YACDx+D,EAAYw+D,YAEhBrrE,KAAKsxC,qBACDzkC,EAAYykC,qBAEpBtxC,KAAKsrE,2BAAwB7pE,EACzBoL,EAAYy+D,sBAAuB,CACvCtrE,KAAKsrE,sBAAwB,GAC7B,IAAK,IAAI1oE,EAAI,EAAGA,EAAIiK,EAAYy+D,sBAAsBzoE,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAYy+D,sBAAsB1oE,GACtC,GAA2D,MAAvDiK,EAAYy+D,sBAAsB1oE,GAAG,eAEvCwK,GADIA,EAAoBP,EAAYy+D,sBAAsB1oE,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsrE,sBAAsB1oE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYy+D,sBAAsB1oE,UAGpG5C,KAAKsrE,sBAAsB1oE,GAAK,IAAI2oE,GAA2C1+D,EAAYy+D,sBAAsB1oE,SAGrH5C,KAAKsrE,sBAAsB1oE,QAAKnB,GAMhC,GADAzB,KAAKwrE,0BAAuB/pE,EACxBoL,EAAY2+D,qBAAsB,CACtCxrE,KAAKwrE,qBAAuB,GAC5B,IAAS5oE,EAAI,EAAGA,EAAIiK,EAAY2+D,qBAAqB3oE,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAY2+D,qBAAqB5oE,GACrC,GAA0D,MAAtDiK,EAAY2+D,qBAAqB5oE,GAAG,eAEtCwK,GADIA,EAAoBP,EAAY2+D,qBAAqB5oE,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwrE,qBAAqB5oE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2+D,qBAAqB5oE,UAGlG5C,KAAKwrE,qBAAqB5oE,GAAK,IAAI6oE,GAA0C5+D,EAAY2+D,qBAAqB5oE,SAGlH5C,KAAKwrE,qBAAqB5oE,QAAKnB,GAM/B,GADAzB,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAS3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAM1B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6B7U,GAKtC,MAAM/f,GAsDb4nB,YAAYiN,GAyCV,GAxCFA,EAAcA,GAAe,GACvB7M,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK0rE,mBACD7+D,EAAY6+D,mBAEhB1rE,KAAK2rE,cACD9+D,EAAY8+D,cAEhB3rE,KAAK4rE,qBACD/+D,EAAY++D,qBAEhB5rE,KAAK6rE,oBACDh/D,EAAYg/D,oBAEhB7rE,KAAK8rE,gBAC+B,MAA/Bj/D,EAAYi/D,gBAA2B5+D,WAAWL,EAAYi/D,sBAAmBrqE,EAEtFzB,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAK+rE,aACDl/D,EAAYk/D,aAEhB/rE,KAAKgsE,iBACDn/D,EAAYm/D,iBAEhBhsE,KAAKoZ,oBACDvM,EAAYuM,oBAEuB,MAAvCvM,EAAYo/D,wBACZjsE,KAAKisE,6BAA0BxqE,OAC5B,GAA0D,MAAtDoL,EAAYo/D,wBAAwB,eAC3CjsE,KAAKisE,wBAA0B,IAAIhhD,EAAiCpe,EAAYo/D,6BAC7E,CAEH7+D,GADIA,EAAoBP,EAAYo/D,wBAAwB,gBACtC5+D,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKisE,wBAA0B,IAAIr/D,EAAiBQ,GAAWP,EAAYo/D,0BAkDnF,GA7CIjsE,KAAKksE,kBACDr/D,EAAYq/D,kBAEhBlsE,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK0zB,qBACoC,MAApC7mB,EAAY6mB,qBAAgCxmB,WAAWL,EAAY6mB,2BAAwBjyB,EAEhGzB,KAAK2zB,iBACgC,MAAhC9mB,EAAY8mB,iBAA4BzmB,WAAWL,EAAY8mB,uBAAoBlyB,EAExFzB,KAAK4zB,eAC8B,MAA9B/mB,EAAY+mB,eAA0B1mB,WAAWL,EAAY+mB,qBAAkBnyB,EAEpFzB,KAAK6zB,eAC8B,MAA9BhnB,EAAYgnB,eAA0B3mB,WAAWL,EAAYgnB,qBAAkBpyB,EAEpFzB,KAAK8zB,iBACgC,MAAhCjnB,EAAYinB,iBAA4B5mB,WAAWL,EAAYinB,uBAAoBryB,EAExFzB,KAAKmsE,4BAC2C,MAA3Ct/D,EAAYs/D,4BAAuCj/D,WAAWL,EAAYs/D,kCAA+B1qE,EAE9GzB,KAAKosE,+BAC8C,MAA9Cv/D,EAAYu/D,+BAA0Cl/D,WAAWL,EAAYu/D,qCAAkC3qE,EAEpHzB,KAAKqsE,8BAC6C,MAA7Cx/D,EAAYw/D,8BAAyCn/D,WAAWL,EAAYw/D,oCAAiC5qE,EAElHzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKssE,eACDz/D,EAAYy/D,eAEhBtsE,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAKi0B,aACDpnB,EAAYonB,aAEiB,MAAjCpnB,EAAYywC,kBACZt9C,KAAKs9C,uBAAoB77C,OACtB,GAAoD,MAAhDoL,EAAYywC,kBAAkB,eACrCt9C,KAAKs9C,kBAAoB,IAAItyB,EAA2Bne,EAAYywC,uBACjE,CAEHlwC,GADIA,EAAoBP,EAAYywC,kBAAkB,gBAChCjwC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs9C,kBAAoB,IAAI1wC,EAAiBQ,GAAWP,EAAYywC,oBAyC7E,GApCIt9C,KAAKu9C,uBACD1wC,EAAY0wC,uBAEhBv9C,KAAKuuB,oBACD1hB,EAAY0hB,oBAEhBvuB,KAAKusE,kBACA1/D,EAAY0/D,6BAA6BtlE,KAAQ4F,EAAY0/D,kBAC1B,MAAjC1/D,EAAY0/D,mBAA6Bj+D,EAAAA,EAAAA,IAAiCzB,EAAY0/D,kBAAmB,sBAAsB,QAAS9qE,EAE/IzB,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAKwsE,qBACA3/D,EAAY2/D,gCAAgCvlE,KAAQ4F,EAAY2/D,qBAC1B,MAApC3/D,EAAY2/D,sBAAgCl+D,EAAAA,EAAAA,IAAiCzB,EAAY2/D,qBAAsB,sBAAsB,QAAS/qE,EAErJzB,KAAKqyB,4BACAxlB,EAAYwlB,uCAAuCprB,KAAQ4F,EAAYwlB,4BAC1B,MAA3CxlB,EAAYwlB,6BAAuC/jB,EAAAA,EAAAA,IAAiCzB,EAAYwlB,4BAA6B,sBAAsB,QAAS5wB,EAEnKzB,KAAKsyB,0BACAzlB,EAAYylB,qCAAqCrrB,KAAQ4F,EAAYylB,0BAC1B,MAAzCzlB,EAAYylB,2BAAqChkB,EAAAA,EAAAA,IAAiCzB,EAAYylB,0BAA2B,sBAAsB,QAAS7wB,EAE/JzB,KAAKysE,YACA5/D,EAAY4/D,uBAAuBxlE,KAAQ4F,EAAY4/D,YAC1B,MAA3B5/D,EAAY4/D,aAAuBn+D,EAAAA,EAAAA,IAAiCzB,EAAY4/D,YAAa,sBAAsB,QAAShrE,EAEnIzB,KAAK6S,YAC2B,MAA3BhG,EAAYgG,YAAuB3F,WAAWL,EAAYgG,kBAAepR,EAE9EzB,KAAK8V,QACuB,MAAvBjJ,EAAYiJ,QAAmB5I,WAAWL,EAAYiJ,cAAWrU,EAEvC,MAA/BoL,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CAEH1E,GADIA,EAAoBP,EAAYiF,gBAAgB,gBAC9BzE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,kBAe3E,GAVI9R,KAAK6Z,yBACDhN,EAAYgN,yBAEhB7Z,KAAK81B,wBACDjpB,EAAYipB,wBAEhB91B,KAAK0sE,iBACD7/D,EAAY6/D,iBAEpB1sE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qBAA2B50B,GAKpC,MAAM20F,GA8Bb/sE,YAAYiN,GAgDV,GA/CFA,EAAcA,GAAe,GACvB7M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAK+rE,aACDl/D,EAAYk/D,aAEhB/rE,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK4sE,sBACA//D,EAAY+/D,iCAAiC3lE,KAAQ4F,EAAY+/D,sBAC1B,MAArC//D,EAAY+/D,uBAAiCt+D,EAAAA,EAAAA,IAAiCzB,EAAY+/D,sBAAuB,sBAAsB,QAASnrE,EAEvJzB,KAAK6sE,oBACAhgE,EAAYggE,+BAA+B5lE,KAAQ4F,EAAYggE,oBAC1B,MAAnChgE,EAAYggE,qBAA+Bv+D,EAAAA,EAAAA,IAAiCzB,EAAYggE,oBAAqB,sBAAsB,QAASprE,EAEnJzB,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAK8sE,0BACAjgE,EAAYigE,qCAAqC7lE,KAAQ4F,EAAYigE,0BAC1B,MAAzCjgE,EAAYigE,2BAAqCx+D,EAAAA,EAAAA,IAAiCzB,EAAYigE,0BAA2B,sBAAsB,QAASrrE,EAE/JzB,KAAK+sE,wBACAlgE,EAAYkgE,mCAAmC9lE,KAAQ4F,EAAYkgE,wBAC1B,MAAvClgE,EAAYkgE,yBAAmCz+D,EAAAA,EAAAA,IAAiCzB,EAAYkgE,wBAAyB,sBAAsB,QAAStrE,EAE3JzB,KAAKgtE,2BACAngE,EAAYmgE,sCAAsC/lE,KAAQ4F,EAAYmgE,2BAC1B,MAA1CngE,EAAYmgE,4BAAsC1+D,EAAAA,EAAAA,IAAiCzB,EAAYmgE,2BAA4B,sBAAsB,QAASvrE,EAEjKzB,KAAKitE,yBACApgE,EAAYogE,oCAAoChmE,KAAQ4F,EAAYogE,yBAC1B,MAAxCpgE,EAAYogE,0BAAoC3+D,EAAAA,EAAAA,IAAiCzB,EAAYogE,yBAA0B,sBAAsB,QAASxrE,EAEjKzB,KAAKktE,6BAA0BzrE,EAC3BoL,EAAYqgE,wBAAyB,CACzCltE,KAAKktE,wBAA0B,GAC/B,IAAK,IAAItqE,EAAI,EAAGA,EAAIiK,EAAYqgE,wBAAwBrqE,OAAQD,IAClB,MAA1CiK,EAAYqgE,wBAAwBtqE,GACpC5C,KAAKktE,wBAAwBtqE,GACzBiK,EAAYqgE,wBAAwBtqE,GAE5C5C,KAAKktE,wBAAwBtqE,QAAKnB,EAqBlC,GAhBIzB,KAAKgsE,iBACDn/D,EAAYm/D,iBAEhBhsE,KAAKoT,YACDvG,EAAYuG,YAEhBpT,KAAK2vB,kBACD9iB,EAAY8iB,kBAEhB3vB,KAAKmtE,oBACDtgE,EAAYsgE,oBAEhBntE,KAAKksE,kBACDr/D,EAAYq/D,kBAEpBlsE,KAAK0kD,mBAAgBjjD,EACjBoL,EAAY63C,cAAe,CAC/B1kD,KAAK0kD,cAAgB,GACrB,IAAS9hD,EAAI,EAAGA,EAAIiK,EAAY63C,cAAc7hD,OAAQD,IAAK,CAC3D,GAAoC,MAAhCiK,EAAY63C,cAAc9hD,GAC9B,GAAmD,MAA/CiK,EAAY63C,cAAc9hD,GAAG,eAE/BwK,GADIA,EAAoBP,EAAY63C,cAAc9hD,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0kD,cAAc9hD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY63C,cAAc9hD,UAGpF5C,KAAK0kD,cAAc9hD,GAAK,IAAImhD,GAAkBl3C,EAAY63C,cAAc9hD,SAG5E5C,KAAK0kD,cAAc9hD,QAAKnB,GAMxB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mCAAyC+/D,GAKlD,MAAMS,GAebxtE,YAAYiN,GAmBV,GAlBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKqtE,cACDxgE,EAAYwgE,cAEhBrtE,KAAKstE,WACDzgE,EAAYygE,WAEhBttE,KAAK8iD,KACDj2C,EAAYi2C,KAEhB9iD,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,aAAmBwgE,GAK5B,MAAMhuE,GAcbQ,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKutE,YACD1gE,EAAY0gE,YAEhBvtE,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEpBmgB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0BxN,GAKnC,MAAMi6D,GAgBbz5D,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKm6B,WACDttB,EAAYstB,WAEhBn6B,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKw6B,iBACgC,MAAhC3tB,EAAY2tB,iBAA4BttB,WAAWL,EAAY2tB,uBAAoB/4B,EAExFzB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKm7B,aACDtuB,EAAYsuB,aAEhBn7B,KAAKo7B,WACDvuB,EAAYuuB,WAEpBp7B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BysD,GAKvC,MAAM7+D,GAaboF,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwoE,UACD37D,EAAY27D,UAEhBxoE,KAAK6wC,UACDhkC,EAAYgkC,UAEpB7wC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gCAAsCpS,GAK/C,MAAM+E,GAabK,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKwtE,wBAAqB/rE,EACtBoL,EAAY2gE,mBAAoB,CACpCxtE,KAAKwtE,mBAAqB,GAC1B,IAAK,IAAI5qE,EAAI,EAAGA,EAAIiK,EAAY2gE,mBAAmB3qE,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAY2gE,mBAAmB5qE,GACnC,GAAwD,MAApDiK,EAAY2gE,mBAAmB5qE,GAAG,eAEpCwK,GADIA,EAAoBP,EAAY2gE,mBAAmB5qE,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwtE,mBAAmB5qE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2gE,mBAAmB5qE,UAG9F5C,KAAKwtE,mBAAmB5qE,GAAK,IAAI6qE,GAAsB5gE,EAAY2gE,mBAAmB5qE,SAG1F5C,KAAKwtE,mBAAmB5qE,QAAKnB,GAS7B,GAJIzB,KAAK0tE,yBACD7gE,EAAY6gE,yBAEpB1tE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwBrN,GAKjC,MAAMr8B,GAYb08B,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAExEzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4B1pC,GAKrC,MAAMs0B,GAYboI,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK6wC,UACDhkC,EAAYgkC,UAEpB7wC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBpV,GAKjC,MAAMm2E,WACHvhG,GAeVwzB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK4tE,kBACD/gE,EAAY+gE,kBAEhB5tE,KAAK6tE,SACDhhE,EAAYghE,SAEhB7tE,KAAK8tE,kCACDjhE,EAAYihE,kCAEhB9tE,KAAK+tE,wBACuC,MAAvClhE,EAAYkhE,wBAAmC7gE,WAAWL,EAAYkhE,8BAA2BtsE,EAEtGzB,KAAKguE,wBACuC,MAAvCnhE,EAAYmhE,wBAAmC9gE,WAAWL,EAAYmhE,8BAA2BvsE,EAE1GzB,KAAK,eAAiB,2DAIxB4M,EAAgB,cAAoB+gE,GAK7B,MAAMM,GAebruE,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKkuE,eAC8B,MAA9BrhE,EAAYqhE,eAA0BznE,SAASoG,EAAYqhE,eAAgB,SAAMzsE,EAEtFzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKmuE,2BACDthE,EAAYshE,2BAEpBnuE,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAM1B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mCAAyCqhE,GAKlD,MAAMG,GAabxuE,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKquE,gBAAa5sE,EACdoL,EAAYwhE,WAAY,CAC5BruE,KAAKquE,WAAa,GAClB,IAAK,IAAIzrE,EAAI,EAAGA,EAAIiK,EAAYwhE,WAAWxrE,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYwhE,WAAWzrE,GAC3B,GAAgD,MAA5CiK,EAAYwhE,WAAWzrE,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYwhE,WAAWzrE,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKquE,WAAWzrE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwhE,WAAWzrE,UAG9E5C,KAAKquE,WAAWzrE,GAAK,IAAI+qE,GAAc9gE,EAAYwhE,WAAWzrE,SAGlE5C,KAAKquE,WAAWzrE,QAAKnB,GAYrB,GAPIzB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK61D,UACDhpD,EAAYgpD,UAEpB71D,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyBwhE,GAKlC,MAAMj4F,GAYbypB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKsuE,oBAAiB7sE,EAClBoL,EAAYyhE,eAAgB,CAChCtuE,KAAKsuE,eAAiB,GACtB,IAAK,IAAI1rE,EAAI,EAAGA,EAAIiK,EAAYyhE,eAAezrE,OAAQD,IAAK,CAC5D,GAAqC,MAAjCiK,EAAYyhE,eAAe1rE,GAC/B,GAAoD,MAAhDiK,EAAYyhE,eAAe1rE,GAAG,eAEhCwK,GADIA,EAAoBP,EAAYyhE,eAAe1rE,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsuE,eAAe1rE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyhE,eAAe1rE,UAGtF5C,KAAKsuE,eAAe1rE,GAAK,IAAIwrE,GAAmBvhE,EAAYyhE,eAAe1rE,SAG/E5C,KAAKsuE,eAAe1rE,QAAKnB,GASzB,GAJIzB,KAAKuuE,qBACoC,MAApC1hE,EAAY0hE,qBAAgC9nE,SAASoG,EAAY0hE,qBAAsB,SAAM9sE,EAEtGzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,8BAAoCz2B,GAK7C,MAAMq4F,GAYb5uE,YAAYiN,GAEV,GAAmC,OADrCA,EAAcA,GAAe,IACX4hE,gBACZzuE,KAAKyuE,qBAAkBhtE,OACpB,GAAkD,MAA9CoL,EAAY4hE,gBAAgB,eACnCzuE,KAAKyuE,gBAAkB,IAAIz2F,GAAqB60B,EAAY4hE,qBACzD,CAEHrhE,GADIA,EAAoBP,EAAY4hE,gBAAgB,gBAC9BphE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyuE,gBAAkB,IAAI7hE,EAAiBQ,GAAWP,EAAY4hE,kBAM3E,GADAzuE,KAAK4oB,gCAA6BnnB,EAC9BoL,EAAY+b,2BAA4B,CAC5C5oB,KAAK4oB,2BAA6B,GAClC,IAAK,IAAIhmB,EAAI,EAAGA,EAAIiK,EAAY+b,2BAA2B/lB,OAAQD,IAClB,MAA7CiK,EAAY+b,2BAA2BhmB,GACvC5C,KAAK4oB,2BAA2BhmB,GAC5BiK,EAAY+b,2BAA2BhmB,GAE/C5C,KAAK4oB,2BAA2BhmB,QAAKnB,EAMrC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4CAAkD4hE,GAK3D,MAAME,GAYb9uE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK2uE,mBACD9hE,EAAY8hE,mBAEhB3uE,KAAK4uE,iBACD/hE,EAAY+hE,iBAEhB5uE,KAAK6uE,WACDhiE,EAAYgiE,YAItBjiE,EAAgB,eAAqB8hE,GAK9B,MAAMvsG,GAaby9B,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK8uE,UACDjiE,EAAYiiE,UAEhB9uE,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAEhFzB,KAAK+uE,gBAAattE,EACdoL,EAAYkiE,WAAY,CAC5B/uE,KAAK+uE,WAAa,GAClB,IAAK,IAAInsE,EAAI,EAAGA,EAAIiK,EAAYkiE,WAAWlsE,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYkiE,WAAWnsE,GAC3B,GAAgD,MAA5CiK,EAAYkiE,WAAWnsE,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYkiE,WAAWnsE,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+uE,WAAWnsE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYkiE,WAAWnsE,UAG9E5C,KAAK+uE,WAAWnsE,GAAK,IAAI8rE,GAAe7hE,EAAYkiE,WAAWnsE,SAGnE5C,KAAK+uE,WAAWnsE,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,wBAA8BzqC,GAKvC,MAAMib,GAabwiB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK8rE,gBAC+B,MAA/Bj/D,EAAYi/D,gBAA2B5+D,WAAWL,EAAYi/D,sBAAmBrqE,EAE1FzB,KAAK+uE,gBAAattE,EACdoL,EAAYkiE,WAAY,CAC5B/uE,KAAK+uE,WAAa,GAClB,IAAK,IAAInsE,EAAI,EAAGA,EAAIiK,EAAYkiE,WAAWlsE,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYkiE,WAAWnsE,GAC3B,GAAgD,MAA5CiK,EAAYkiE,WAAWnsE,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYkiE,WAAWnsE,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+uE,WAAWnsE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYkiE,WAAWnsE,UAG9E5C,KAAK+uE,WAAWnsE,GAAK,IAAI8rE,GAAe7hE,EAAYkiE,WAAWnsE,SAGnE5C,KAAK+uE,WAAWnsE,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,+BAAqCxvB,GAK9C,MAAM3mB,GAmBbmpC,YAAYiN,GAWV,GAVFA,EAAcA,GAAe,GACvB7M,KAAK+U,UACDlI,EAAYkI,UAEhB/U,KAAKiV,SACDpI,EAAYoI,SAEhBjV,KAAKgvE,YACDniE,EAAYmiE,YAEO,MAAvBniE,EAAYub,QACZpoB,KAAKooB,aAAU3mB,OACZ,GAA0C,MAAtCoL,EAAYub,QAAQ,eAC3BpoB,KAAKooB,QAAU,IAAIrW,EAAalF,EAAYub,aACzC,CAEHhb,GADIA,EAAoBP,EAAYub,QAAQ,gBACtB/a,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKooB,QAAU,IAAIxb,EAAiBQ,GAAWP,EAAYub,UAqBnE,GAhBIpoB,KAAKivE,SACDpiE,EAAYoiE,SAEhBjvE,KAAKkvE,WACDriE,EAAYqiE,WAEhBlvE,KAAKmvE,YACDtiE,EAAYsiE,YAEhBnvE,KAAKonD,SACDv6C,EAAYu6C,SAEhBpnD,KAAKkqB,gBACDrd,EAAYqd,gBAEpBlqB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,6BAAmCn2C,GAK5C,MAAM24G,GAWbxvE,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKolD,oBACDv4C,EAAYu4C,oBAEpBplD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiCwiE,GAK1C,MAAMC,GAebzvE,YAAYiN,GAmBV,GAlBFA,EAAcA,GAAe,GACvB7M,KAAK8mE,UACDj6D,EAAYi6D,UAEhB9mE,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8BAAoCyiE,GAK7C,MAAMz5G,GAiBbgqC,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK8mE,UACDj6D,EAAYi6D,UAEhB9mE,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAEpH,MAAvBoL,EAAYyiE,QACZtvE,KAAKsvE,aAAU7tE,OACZ,GAA0C,MAAtCoL,EAAYyiE,QAAQ,eAC3BtvE,KAAKsvE,QAAU,IAAIC,GAA4C1iE,EAAYyiE,aACxE,CAEHliE,GADIA,EAAoBP,EAAYyiE,QAAQ,gBACtBjiE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsvE,QAAU,IAAI1iE,EAAiBQ,GAAWP,EAAYyiE,UAenE,GAVItvE,KAAK8gD,OACDj0C,EAAYi0C,OAEhB9gD,KAAKwvE,cACD3iE,EAAY2iE,cAEhBxvE,KAAKyvE,aACD5iE,EAAY4iE,aAEpBzvE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,qCAA2Ch3C,GAKpD,MAAM85G,GAWb9vE,YAAYiN,GAEV,GAA2C,OAD7CA,EAAcA,GAAe,IACX8iE,wBACZ3vE,KAAK2vE,6BAA0BluE,OAC5B,GAA0D,MAAtDoL,EAAY8iE,wBAAwB,eAC3C3vE,KAAK2vE,wBAA0B,IAAIpkD,EAA6B1e,EAAY8iE,6BACzE,CACH,IAAIviE,EAAoBP,EAAY8iE,wBAAwB,eAC5DviE,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2vE,wBAA0B,IAAI/iE,EAAiBQ,GAAWP,EAAY8iE,0BAMnF,GADA3vE,KAAK4vE,wBAAqBnuE,EACtBoL,EAAY+iE,mBAAoB,CACpC5vE,KAAK4vE,mBAAqB,GAC1B,IAAK,IAAIhtE,EAAI,EAAGA,EAAIiK,EAAY+iE,mBAAmB/sE,OAAQD,IAClB,MAArCiK,EAAY+iE,mBAAmBhtE,GAC/B5C,KAAK4vE,mBAAmBhtE,GACpBiK,EAAY+iE,mBAAmBhtE,GAEvC5C,KAAK4vE,mBAAmBhtE,QAAKnB,IAO/BmL,EAAgB,8BAAoC8iE,GAK7C,MAAMG,GAYbjwE,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK8vE,oBAAiBruE,EAClBoL,EAAYijE,eAAgB,CAChC9vE,KAAK8vE,eAAiB,GACtB,IAAK,IAAIltE,EAAI,EAAGA,EAAIiK,EAAYijE,eAAejtE,OAAQD,IAClB,MAAjCiK,EAAYijE,eAAeltE,GAC3B5C,KAAK8vE,eAAeltE,GAChBiK,EAAYijE,eAAeltE,GAEnC5C,KAAK8vE,eAAeltE,QAAKnB,EAMzB,GADAzB,KAAKmrD,wBAAqB1pD,EACtBoL,EAAYs+C,mBAAoB,CACpCnrD,KAAKmrD,mBAAqB,GAC1B,IAASvoD,EAAI,EAAGA,EAAIiK,EAAYs+C,mBAAmBtoD,OAAQD,IAClB,MAArCiK,EAAYs+C,mBAAmBvoD,GAC/B5C,KAAKmrD,mBAAmBvoD,GACpBiK,EAAYs+C,mBAAmBvoD,GAEvC5C,KAAKmrD,mBAAmBvoD,QAAKnB,EAM7B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wCAA8CijE,GAKvD,MAAMlhG,GAYbixB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK+vE,gBACDljE,EAAYkjE,gBAEpB/vE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCj+B,GAK5C,MAAMI,GAYb6wB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKkd,WACDrQ,EAAYqQ,WAEpBld,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8B79B,GAKvC,MAAMihG,GAYbpwE,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAEhFzB,KAAKm9D,SAAM17D,EACPoL,EAAYswD,IAAK,CACrBn9D,KAAKm9D,IAAM,GACX,IAAK,IAAIv6D,EAAI,EAAGA,EAAIiK,EAAYswD,IAAIt6D,OAAQD,IAC5C,GAA0B,MAAtBiK,EAAYswD,IAAIv6D,GACpB,GAAyC,MAArCiK,EAAYswD,IAAIv6D,GAAG,eAAwB,CAC7C,IAAIwK,EAAoBP,EAAYswD,IAAIv6D,GAAG,eAC3CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm9D,IAAIv6D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYswD,IAAIv6D,UAGhE5C,KAAKm9D,IAAIv6D,GAAK,IAAI7zB,GAAwB89B,EAAYswD,IAAIv6D,SAG9D5C,KAAKm9D,IAAIv6D,QAAKnB,IAOhBmL,EAAgB,8BAAoCojE,GAK7C,MAAMp3D,GA2BbhZ,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKyT,QACD5G,EAAY4G,QAEhBzT,KAAKiwE,oBACDpjE,EAAYojE,oBAEpBjwE,KAAKkwE,gCAA6BzuE,EAC9BoL,EAAYqjE,2BAA4B,CAC5ClwE,KAAKkwE,2BAA6B,GAClC,IAAK,IAAIttE,EAAI,EAAGA,EAAIiK,EAAYqjE,2BAA2BrtE,OAAQD,IAClB,MAA7CiK,EAAYqjE,2BAA2BttE,GACvC5C,KAAKkwE,2BAA2BttE,GAC5BiK,EAAYqjE,2BAA2BttE,GAE/C5C,KAAKkwE,2BAA2BttE,QAAKnB,EAkDrC,GA7CIzB,KAAKmwE,wBACDtjE,EAAYsjE,wBAEhBnwE,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKwlB,YACA3Y,EAAY2Y,uBAAuBve,KAAQ4F,EAAY2Y,YAC1B,MAA3B3Y,EAAY2Y,aAAuBlX,EAAAA,EAAAA,IAAiCzB,EAAY2Y,YAAa,sBAAsB,QAAS/jB,EAEnIzB,KAAKowE,kBACDvjE,EAAYujE,kBAEhBpwE,KAAKqwE,SACDxjE,EAAYwjE,SAEhBrwE,KAAKswE,yBACDzjE,EAAYyjE,yBAEhBtwE,KAAKuwE,6BACD1jE,EAAY0jE,6BAEhBvwE,KAAKwwE,aACD3jE,EAAY2jE,aAEhBxwE,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAKywE,mBACA5jE,EAAY4jE,8BAA8BxpE,KAAQ4F,EAAY4jE,mBAC1B,MAAlC5jE,EAAY4jE,oBAA8BniE,EAAAA,EAAAA,IAAiCzB,EAAY4jE,mBAAoB,sBAAsB,QAAShvE,EAEjJzB,KAAK0wE,0BACD7jE,EAAY6jE,0BAEhB1wE,KAAK2wE,YACD9jE,EAAY8jE,YAEpB3wE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyBgM,GAKlC,MAAM5jC,GAeb4qB,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK4wE,IACD/jE,EAAY+jE,IAEhB5wE,KAAKk3D,QACDrqD,EAAYqqD,QAEhBl3D,KAAKo3D,UACDvqD,EAAYuqD,UAEhBp3D,KAAKm3D,aACDtqD,EAAYsqD,aAEhBn3D,KAAK6wE,SACDhkE,EAAYgkE,SAEpB7wE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB53B,GAKlC,MAAM87F,GAkBblxE,YAAYiN,GA4BV,GA3BFA,EAAcA,GAAe,GACvB7M,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK+wE,UACDlkE,EAAYkkE,UAEhB/wE,KAAKgxE,SACDnkE,EAAYmkE,SAEhBhxE,KAAKixE,uBACApkE,EAAYokE,kCAAkChqE,KAAQ4F,EAAYokE,uBAC1B,MAAtCpkE,EAAYokE,wBAAkC3iE,EAAAA,EAAAA,IAAiCzB,EAAYokE,uBAAwB,sBAAsB,QAASxvE,EAEzJzB,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAKkxE,0BACDrkE,EAAYqkE,0BAEhBlxE,KAAKmxE,cACDtkE,EAAYskE,cAEhBnxE,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4BkkE,GAKrC,MAAM3pG,WACHwmF,GAYV/tD,YAAYiN,GAMV,GALFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKsuD,YACDzhD,EAAYyhD,YAEpBtuD,KAAKuuD,YAAS9sD,EACVoL,EAAY0hD,OAAQ,CACxBvuD,KAAKuuD,OAAS,GACd,IAAK,IAAI3rD,EAAI,EAAGA,EAAIiK,EAAY0hD,OAAO1rD,OAAQD,IAC/C,GAA6B,MAAzBiK,EAAY0hD,OAAO3rD,GACvB,GAA4C,MAAxCiK,EAAY0hD,OAAO3rD,GAAG,eAAwB,CAChD,IAAIwK,EAAoBP,EAAY0hD,OAAO3rD,GAAG,eAC9CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuuD,OAAO3rD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0hD,OAAO3rD,UAGtE5C,KAAKuuD,OAAO3rD,GAAK,IAAI0iD,GAA0Bz4C,EAAY0hD,OAAO3rD,SAGtE5C,KAAKuuD,OAAO3rD,QAAKnB,EAKjBzB,KAAK,eAAiB,kEAIxB4M,EAAgB,qBAA2BzlC,GAKpC,MAAM+wD,GAyBbt4B,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAKk3C,QACDrqC,EAAYqqC,QAEhBl3C,KAAKoxE,WACDvkE,EAAYukE,WAEa,MAA7BvkE,EAAYwkE,cACZrxE,KAAKqxE,mBAAgB5vE,OAClB,GAAgD,MAA5CoL,EAAYwkE,cAAc,eACjCrxE,KAAKqxE,cAAgB,IAAIC,GAAmBzkE,EAAYwkE,mBACrD,CAEHjkE,GADIA,EAAoBP,EAAYwkE,cAAc,gBAC5BhkE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqxE,cAAgB,IAAIzkE,EAAiBQ,GAAWP,EAAYwkE,gBA0CzE,GArCIrxE,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAKm3C,QACDtqC,EAAYsqC,QAEhBn3C,KAAKo3C,MACDvqC,EAAYuqC,MAEhBp3C,KAAKq3C,SACDxqC,EAAYwqC,SAEhBr3C,KAAKs3C,SACDzqC,EAAYyqC,SAEhBt3C,KAAK8rB,KACDjf,EAAYif,KAEhB9rB,KAAKgsB,MACDnf,EAAYmf,MAEhBhsB,KAAKu3C,IACD1qC,EAAY0qC,IAEhBv3C,KAAKw3C,WACD3qC,EAAY2qC,WAEhBx3C,KAAKs5B,WACDzsB,EAAYysB,WAEhBt5B,KAAKy3C,gBACD5qC,EAAY4qC,gBAEhBz3C,KAAK03C,eACD7qC,EAAY6qC,eAEpB13C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0BAAgCsrB,GAKzC,MAAMq5C,GAeb3xE,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKwxE,4BACD3kE,EAAY2kE,4BAEpBxxE,KAAKyxE,6BAA0BhwE,EAC3BoL,EAAY4kE,wBAAyB,CACzCzxE,KAAKyxE,wBAA0B,GAC/B,IAAK,IAAI7uE,EAAI,EAAGA,EAAIiK,EAAY4kE,wBAAwB5uE,OAAQD,IAChE,GAA8C,MAA1CiK,EAAY4kE,wBAAwB7uE,GACxC,GAA6D,MAAzDiK,EAAY4kE,wBAAwB7uE,GAAG,eAAwB,CACjE,IAAIwK,EAAoBP,EAAY4kE,wBAAwB7uE,GAAG,eAC/DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyxE,wBAAwB7uE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4kE,wBAAwB7uE,UAGxG5C,KAAKyxE,wBAAwB7uE,GAAK,IAAI6lD,GAAsB57C,EAAY4kE,wBAAwB7uE,SAGpG5C,KAAKyxE,wBAAwB7uE,QAAKnB,EAK9BzB,KAAK0xE,qBACD7kE,EAAY6kE,qBAEhB1xE,KAAK2xE,gCACD9kE,EAAY8kE,gCAEhB3xE,KAAK4xE,4BACD/kE,EAAY+kE,4BAEhB5xE,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,GAIlFmL,EAAgB,gDAAsD2kE,GAK/D,MAAMM,GAWbjyE,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEe,MAA/BjlB,EAAYiF,gBACZ9R,KAAK8R,qBAAkBrQ,OACpB,GAAkD,MAA9CoL,EAAYiF,gBAAgB,eACnC9R,KAAK8R,gBAAkB,IAAIC,EAAalF,EAAYiF,qBACjD,CACH,IAAI1E,EAAoBP,EAAYiF,gBAAgB,eACpD1E,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8R,gBAAkB,IAAIlF,EAAiBQ,GAAWP,EAAYiF,oBAO7ElF,EAAgB,yBAA+BilE,GAKxC,MAAM/4G,GAWb8mC,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK8xE,wCAAqCrwE,EACtCoL,EAAYilE,mCAAoC,CACpD9xE,KAAK8xE,mCAAqC,GAC1C,IAAK,IAAIlvE,EAAI,EAAGA,EAAIiK,EAAYilE,mCAAmCjvE,OAAQD,IAClB,MAArDiK,EAAYilE,mCAAmClvE,GAC/C5C,KAAK8xE,mCAAmClvE,GACpCiK,EAAYilE,mCAAmClvE,GAEvD5C,KAAK8xE,mCAAmClvE,QAAKnB,EAM7C,GADAzB,KAAK+xE,iCAA8BtwE,EAC/BoL,EAAYklE,4BAA6B,CAC7C/xE,KAAK+xE,4BAA8B,GACnC,IAASnvE,EAAI,EAAGA,EAAIiK,EAAYklE,4BAA4BlvE,OAAQD,IACpE,GAAkD,MAA9CiK,EAAYklE,4BAA4BnvE,GAC5C,GAAiE,MAA7DiK,EAAYklE,4BAA4BnvE,GAAG,eAAwB,CACrE,IAAIwK,EAAoBP,EAAYklE,4BAA4BnvE,GAAG,eACnEwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+xE,4BAA4BnvE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYklE,4BAA4BnvE,UAGhH5C,KAAK+xE,4BAA4BnvE,GAAK,IAAI+7D,GAAgC9xD,EAAYklE,4BAA4BnvE,SAGtH5C,KAAK+xE,4BAA4BnvE,QAAKnB,IAOxCmL,EAAgB,6BAAmC9zC,GAK5C,MAAMk5G,GAWbpyE,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEqB,MAArCjlB,EAAYolE,sBACZjyE,KAAKiyE,2BAAwBxwE,OAC1B,GAAwD,MAApDoL,EAAYolE,sBAAsB,eACzCjyE,KAAKiyE,sBAAwB,IAAIC,GAA2BrlE,EAAYolE,2BACrE,CACH,IAAI7kE,EAAoBP,EAAYolE,sBAAsB,eAC1D7kE,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiyE,sBAAwB,IAAIrlE,EAAiBQ,GAAWP,EAAYolE,0BAOnFrlE,EAAgB,+BAAqColE,GAK9C,MAAME,GAmBbtyE,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAKqnB,eACDxa,EAAYwa,eAEhBrnB,KAAKmyE,4BACDtlE,EAAYslE,4BAEe,MAA/BtlE,EAAYixB,gBACZ99B,KAAK89B,qBAAkBr8B,OACpB,GAAkD,MAA9CoL,EAAYixB,gBAAgB,eACnC99B,KAAK89B,gBAAkB,IAAI/rB,EAAalF,EAAYixB,qBACjD,CACH,IAAI1wB,EAAoBP,EAAYixB,gBAAgB,eACpD1wB,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK89B,gBAAkB,IAAIlxB,EAAiBQ,GAAWP,EAAYixB,kBAKvE99B,KAAK0R,sBACA7E,EAAY6E,iCAAiCzK,KAAQ4F,EAAY6E,sBAC1B,MAArC7E,EAAY6E,uBAAiCpD,EAAAA,EAAAA,IAAiCzB,EAAY6E,sBAAuB,sBAAsB,QAASjQ,EAEvJzB,KAAKoyE,cACDvlE,EAAYulE,cAEhBpyE,KAAKqyB,4BACAxlB,EAAYwlB,uCAAuCprB,KAAQ4F,EAAYwlB,4BAC1B,MAA3CxlB,EAAYwlB,6BAAuC/jB,EAAAA,EAAAA,IAAiCzB,EAAYwlB,4BAA6B,sBAAsB,QAAS5wB,EAEnKzB,KAAKsyB,0BACAzlB,EAAYylB,qCAAqCrrB,KAAQ4F,EAAYylB,0BAC1B,MAAzCzlB,EAAYylB,2BAAqChkB,EAAAA,EAAAA,IAAiCzB,EAAYylB,0BAA2B,sBAAsB,QAAS7wB,EAE/JzB,KAAKi8C,+BACDpvC,EAAYovC,+BAEhBj8C,KAAKm0B,+BACDtnB,EAAYsnB,+BAEhBn0B,KAAKqyE,gBACDxlE,EAAYwlE,iBAItBzlE,EAAgB,2BAAiCslE,GAK1C,MAAMI,GA6Bb1yE,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKid,aACDpQ,EAAYoQ,aAEhBjd,KAAK+rE,aACDl/D,EAAYk/D,aAEhB/rE,KAAK2vB,kBACD9iB,EAAY8iB,kBAEhB3vB,KAAKmtE,oBACDtgE,EAAYsgE,oBAEhBntE,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK2b,UACD9O,EAAY8O,UAEpB3b,KAAKuyE,uBAAoB9wE,EACrBoL,EAAY0lE,kBAAmB,CACnCvyE,KAAKuyE,kBAAoB,GACzB,IAAK,IAAI3vE,EAAI,EAAGA,EAAIiK,EAAY0lE,kBAAkB1vE,OAAQD,IAClB,MAApCiK,EAAY0lE,kBAAkB3vE,GAC9B5C,KAAKuyE,kBAAkB3vE,GACnBiK,EAAY0lE,kBAAkB3vE,GAEtC5C,KAAKuyE,kBAAkB3vE,QAAKnB,EAuB5B,GAlBIzB,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEnIzB,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAKwyE,UACD3lE,EAAY2lE,UAEpBxyE,KAAK0kD,mBAAgBjjD,EACjBoL,EAAY63C,cAAe,CAC/B1kD,KAAK0kD,cAAgB,GACrB,IAAS9hD,EAAI,EAAGA,EAAIiK,EAAY63C,cAAc7hD,OAAQD,IACtD,GAAoC,MAAhCiK,EAAY63C,cAAc9hD,GAC9B,GAAmD,MAA/CiK,EAAY63C,cAAc9hD,GAAG,eAAwB,CACvD,IAAIwK,EAAoBP,EAAY63C,cAAc9hD,GAAG,eACrDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0kD,cAAc9hD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY63C,cAAc9hD,UAGpF5C,KAAK0kD,cAAc9hD,GAAK,IAAImhD,GAAkBl3C,EAAY63C,cAAc9hD,SAG5E5C,KAAK0kD,cAAc9hD,QAAKnB,EAMxB,GADAzB,KAAKyyE,2BAAwBhxE,EACzBoL,EAAY4lE,sBAAuB,CACvCzyE,KAAKyyE,sBAAwB,GAC7B,IAAS7vE,EAAI,EAAGA,EAAIiK,EAAY4lE,sBAAsB5vE,OAAQD,IAClB,MAAxCiK,EAAY4lE,sBAAsB7vE,GAClC5C,KAAKyyE,sBAAsB7vE,GACvBiK,EAAY4lE,sBAAsB7vE,GAE1C5C,KAAKyyE,sBAAsB7vE,QAAKnB,EAK5BzB,KAAK0P,aACD7C,EAAY6C,aAEhB1P,KAAK0yE,gBACA7lE,EAAY6lE,2BAA2BzrE,KAAQ4F,EAAY6lE,gBAC1B,MAA/B7lE,EAAY6lE,iBAA2BpkE,EAAAA,EAAAA,IAAiCzB,EAAY6lE,gBAAiB,sBAAsB,QAASjxE,EAE3IzB,KAAK2yE,cACA9lE,EAAY8lE,yBAAyB1rE,KAAQ4F,EAAY8lE,cAC1B,MAA7B9lE,EAAY8lE,eAAyBrkE,EAAAA,EAAAA,IAAiCzB,EAAY8lE,cAAe,sBAAsB,QAASlxE,EAEvIzB,KAAK4yE,wBACD/lE,EAAY+lE,wBAEhB5yE,KAAK6yE,sBACDhmE,EAAYgmE,uBAItBjmE,EAAgB,yBAA+B0lE,GAKxC,MAAMQ,GAcblzE,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK+yE,gBACDlmE,EAAYkmE,gBAEpB/yE,KAAKgzE,kBAAevxE,EAChBoL,EAAYmmE,aAAc,CAC9BhzE,KAAKgzE,aAAe,GACpB,IAAK,IAAIpwE,EAAI,EAAGA,EAAIiK,EAAYmmE,aAAanwE,OAAQD,IAClB,MAA/BiK,EAAYmmE,aAAapwE,GACzB5C,KAAKgzE,aAAapwE,GACdiK,EAAYmmE,aAAapwE,GAEjC5C,KAAKgzE,aAAapwE,QAAKnB,EAMvB,GADAzB,KAAKizE,kBAAexxE,EAChBoL,EAAYomE,aAAc,CAC9BjzE,KAAKizE,aAAe,GACpB,IAASrwE,EAAI,EAAGA,EAAIiK,EAAYomE,aAAapwE,OAAQD,IAClB,MAA/BiK,EAAYomE,aAAarwE,GACzB5C,KAAKizE,aAAarwE,GACdiK,EAAYomE,aAAarwE,GAEjC5C,KAAKizE,aAAarwE,QAAKnB,EAMvB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCkmE,GAK5C,MAAMI,GAgBbtzE,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK+yE,gBACDlmE,EAAYkmE,gBAEpB/yE,KAAKmzE,aAAU1xE,EACXoL,EAAYsmE,QAAS,CACzBnzE,KAAKmzE,QAAU,GACf,IAAK,IAAIvwE,EAAI,EAAGA,EAAIiK,EAAYsmE,QAAQtwE,OAAQD,IAClB,MAA1BiK,EAAYsmE,QAAQvwE,GACpB5C,KAAKmzE,QAAQvwE,GACTiK,EAAYsmE,QAAQvwE,GAE5B5C,KAAKmzE,QAAQvwE,QAAKnB,EAMlB,GADAzB,KAAKizE,kBAAexxE,EAChBoL,EAAYomE,aAAc,CAC9BjzE,KAAKizE,aAAe,GACpB,IAASrwE,EAAI,EAAGA,EAAIiK,EAAYomE,aAAapwE,OAAQD,IAClB,MAA/BiK,EAAYomE,aAAarwE,GACzB5C,KAAKizE,aAAarwE,GACdiK,EAAYomE,aAAarwE,GAEjC5C,KAAKizE,aAAarwE,QAAKnB,EAYvB,GAPIzB,KAAKozE,cACDvmE,EAAYumE,cAEhBpzE,KAAKqzE,mBACDxmE,EAAYwmE,mBAEpBrzE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BsmE,GAKvC,MAAMI,GAYb1zE,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK6wC,UACDhkC,EAAYgkC,UAEhB7wC,KAAKuzE,uBACD1mE,EAAY0mE,uBAEpBvzE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gDAAsD0mE,GAK/D,MAAME,GAoBb5zE,YAAYiN,GA2BV,GA1BFA,EAAcA,GAAe,GACvB7M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK8yB,iBACgC,MAAhCjmB,EAAYimB,iBAA4B5lB,WAAWL,EAAYimB,uBAAoBrxB,EAExFzB,KAAK6yB,oBACDhmB,EAAYgmB,oBAEhB7yB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKmuE,2BACDthE,EAAYshE,2BAEpBnuE,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IACxD,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAY0E,gBAAgB3O,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,EAKtBzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAKmzB,eACDtmB,EAAYsmB,gBAItBvmB,EAAgB,oBAA0B4mE,GAKnC,MAAM13G,GAYb8jC,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAKg4C,cAC6B,MAA7BnrC,EAAYmrC,cAAyB9qC,WAAWL,EAAYmrC,oBAAiBv2C,EAEtFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8B9wC,GAKvC,MAAM23G,GAiBb7zE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK0zE,OACD7mE,EAAY6mE,OAEhB1zE,KAAK2zE,oBACD9mE,EAAY8mE,oBAEhB3zE,KAAK4zE,UACD/mE,EAAY+mE,UAEhB5zE,KAAK6zE,eACDhnE,EAAYgnE,eAEhB7zE,KAAKw6C,iBACD3tC,EAAY2tC,iBAEhBx6C,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK+b,gBACDlP,EAAYkP,gBAEhB/b,KAAK8zE,kBACDjnE,EAAYinE,mBAItBlnE,EAAgB,8BAAoC6mE,GAK7C,MAAMM,GAiBbn0E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKg0E,OACDnnE,EAAYmnE,OAEhBh0E,KAAKi0E,oBACmC,MAAnCpnE,EAAYonE,oBAA+BxtE,SAASoG,EAAYonE,oBAAqB,SAAMxyE,EAEhGzB,KAAKojD,sBACDv2C,EAAYu2C,sBAEhBpjD,KAAKk0E,iBACDrnE,EAAYqnE,iBAEhBl0E,KAAKm0E,cACDtnE,EAAYsnE,cAEhBn0E,KAAK4O,cACD/B,EAAY+B,cAEhB5O,KAAKo0E,yBACAvnE,EAAYunE,oCAAoCntE,KAAQ4F,EAAYunE,yBAC1B,MAAxCvnE,EAAYunE,0BAAoC9lE,EAAAA,EAAAA,IAAiCzB,EAAYunE,yBAA0B,sBAAsB,QAAS3yE,EAE7JzB,KAAKq0E,uBACAxnE,EAAYwnE,kCAAkCptE,KAAQ4F,EAAYwnE,uBAC1B,MAAtCxnE,EAAYwnE,wBAAkC/lE,EAAAA,EAAAA,IAAiCzB,EAAYwnE,uBAAwB,sBAAsB,QAAS5yE,GAI/JmL,EAAgB,wBAA8BmnE,GAKvC,MAAMj7B,GAWbl5C,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKs0E,UACDznE,EAAYynE,UAEhBt0E,KAAKu4C,mBACD1rC,EAAY0rC,oBAItB3rC,EAAgB,mCAAyCksC,GAKlD,MAAMy7B,GAcb30E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAKw6C,iBACD3tC,EAAY2tC,iBAEpBx6C,KAAKw0E,wCAAqC/yE,EACtCoL,EAAY2nE,mCAAoC,CACpDx0E,KAAKw0E,mCAAqC,GAC1C,IAAK,IAAI5xE,EAAI,EAAGA,EAAIiK,EAAY2nE,mCAAmC3xE,OAAQD,IAC3E,GAAyD,MAArDiK,EAAY2nE,mCAAmC5xE,GACnD,GAAwE,MAApEiK,EAAY2nE,mCAAmC5xE,GAAG,eAAwB,CAC5E,IAAIwK,EAAoBP,EAAY2nE,mCAAmC5xE,GAAG,eAC1EwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw0E,mCAAmC5xE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2nE,mCAAmC5xE,UAG9H5C,KAAKw0E,mCAAmC5xE,GAAK,IAAI8sE,GAA8B7iE,EAAY2nE,mCAAmC5xE,SAGlI5C,KAAKw0E,mCAAmC5xE,QAAKnB,EAS7C,GAJIzB,KAAK0zE,OACD7mE,EAAY6mE,OAEpB1zE,KAAKy0E,4BAAyBhzE,EAC1BoL,EAAY4nE,uBAAwB,CACxCz0E,KAAKy0E,uBAAyB,GAC9B,IAAS7xE,EAAI,EAAGA,EAAIiK,EAAY4nE,uBAAuB5xE,OAAQD,IAClB,MAAzCiK,EAAY4nE,uBAAuB7xE,GACnC5C,KAAKy0E,uBAAuB7xE,GACxBsK,WAAWL,EAAY4nE,uBAAuB7xE,IAEtD5C,KAAKy0E,uBAAuB7xE,QAAKnB,IAOnCmL,EAAgB,2BAAiC2nE,GAK1C,MAAMG,GAYb90E,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK0sB,iBACD7f,EAAY6f,iBAEsB,MAAtC7f,EAAY8nE,uBACZ30E,KAAK20E,4BAAyBlzE,OAC3B,GAAyD,MAArDoL,EAAY8nE,uBAAuB,eAC1C30E,KAAK20E,uBAAyB,IAAIrpD,EAAqCze,EAAY8nE,4BAChF,CACH,IAAIvnE,EAAoBP,EAAY8nE,uBAAuB,eAC3DvnE,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK20E,uBAAyB,IAAI/nE,EAAiBQ,GAAWP,EAAY8nE,yBAK9E30E,KAAKooB,QACDvb,EAAYub,SAItBxb,EAAgB,uBAA6B8nE,GAKtC,MAAME,GAYbh1E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKka,mBACDrN,EAAYqN,mBAEhBla,KAAKolD,oBACDv4C,EAAYu4C,oBAEpBplD,KAAK60E,8CAA2CpzE,EAC5CoL,EAAYgoE,yCAA0C,CAC1D70E,KAAK60E,yCAA2C,GAChD,IAAK,IAAIjyE,EAAI,EAAGA,EAAIiK,EAAYgoE,yCAAyChyE,OAAQD,IACjF,GAA+D,MAA3DiK,EAAYgoE,yCAAyCjyE,GACzD,GAA8E,MAA1EiK,EAAYgoE,yCAAyCjyE,GAAG,eAAwB,CAClF,IAAIwK,EAAoBP,EAAYgoE,yCAAyCjyE,GAAG,eAChFwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK60E,yCAAyCjyE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgoE,yCAAyCjyE,UAG1I5C,KAAK60E,yCAAyCjyE,GAAK,IAAIkyE,GAA8CjoE,EAAYgoE,yCAAyCjyE,SAG9J5C,KAAK60E,yCAAyCjyE,QAAKnB,IAOrDmL,EAAgB,oCAA0CgoE,GAKnD,MAAMG,GAcbn1E,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK6R,QACDhF,EAAYgF,QAEhB7R,KAAK8rE,gBAC+B,MAA/Bj/D,EAAYi/D,gBAA2B5+D,WAAWL,EAAYi/D,sBAAmBrqE,EAEtFzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKi0B,aACDpnB,EAAYonB,aAEpBj0B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8BAAoCmoE,GAK7C,MAAMC,WACHD,GAWVn1E,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+BooE,GAKxC,MAAMC,WACHF,GAaVn1E,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKk1E,iBACgC,MAAhCroE,EAAYqoE,iBAA4BhoE,WAAWL,EAAYqoE,uBAAoBzzE,EAExFzB,KAAKm1E,WACDtoE,EAAYsoE,WAEhBn1E,KAAKo1E,cACDvoE,EAAYuoE,cAEpBp1E,KAAK,eAAiB,wEAIxB4M,EAAgB,2BAAiCqoE,GAK1C,MAAMjnG,GAeb4xB,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACD81C,EAAY91C,GAEhBipC,KAAKq1E,sBACDxoE,EAAYwoE,sBAEhBr1E,KAAKs1E,qBACDzoE,EAAYyoE,qBAEhBt1E,KAAKu1E,kCACD1oE,EAAY0oE,kCAEhBv1E,KAAKw1E,yBACD3oE,EAAY2oE,yBAEhBx1E,KAAKy1E,cACD5oE,EAAY4oE,eAItB7oE,EAAgB,gCAAsC5+B,GAK/C,MAAMO,GAWbqxB,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK01E,yBACD7oE,EAAY6oE,yBAEpB11E,KAAK21E,qBAAkBl0E,EACnBoL,EAAY8oE,gBAAiB,CACjC31E,KAAK21E,gBAAkB,GACvB,IAAK,IAAI/yE,EAAI,EAAGA,EAAIiK,EAAY8oE,gBAAgB9yE,OAAQD,IACxD,GAAsC,MAAlCiK,EAAY8oE,gBAAgB/yE,GAChC,GAAqD,MAAjDiK,EAAY8oE,gBAAgB/yE,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAY8oE,gBAAgB/yE,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK21E,gBAAgB/yE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8oE,gBAAgB/yE,UAGxF5C,KAAK21E,gBAAgB/yE,GAAK,IAAIgzE,GAAqB/oE,EAAY8oE,gBAAgB/yE,SAGnF5C,KAAK21E,gBAAgB/yE,QAAKnB,IAO5BmL,EAAgB,2BAAiCr+B,GAK1C,MAAMe,GAcbswB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK4yD,cAC6B,MAA7B/lD,EAAY+lD,cAAyB1lD,WAAWL,EAAY+lD,oBAAiBnxD,EAElFzB,KAAK6yD,aACDhmD,EAAYgmD,aAEpB7yD,KAAK61E,wBAAqBp0E,EACtBoL,EAAYgpE,mBAAoB,CACpC71E,KAAK61E,mBAAqB,GAC1B,IAAK,IAAIjzE,EAAI,EAAGA,EAAIiK,EAAYgpE,mBAAmBhzE,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYgpE,mBAAmBjzE,GACnC,GAAwD,MAApDiK,EAAYgpE,mBAAmBjzE,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYgpE,mBAAmBjzE,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK61E,mBAAmBjzE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgpE,mBAAmBjzE,UAG9F5C,KAAK61E,mBAAmBjzE,GAAK,IAAIkzE,GAAwBjpE,EAAYgpE,mBAAmBjzE,SAG5F5C,KAAK61E,mBAAmBjzE,QAAKnB,GAM7B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,mBAAyBt9B,GAKlC,MAAM3B,GAWbiyB,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKm5D,qBAAkB13D,EACnBoL,EAAYssD,gBAAiB,CACjCn5D,KAAKm5D,gBAAkB,GACvB,IAAK,IAAIv2D,EAAI,EAAGA,EAAIiK,EAAYssD,gBAAgBt2D,OAAQD,IACxD,GAAsC,MAAlCiK,EAAYssD,gBAAgBv2D,GAChC,GAAqD,MAAjDiK,EAAYssD,gBAAgBv2D,GAAG,eAAwB,CACzD,IAAIwK,EAAoBP,EAAYssD,gBAAgBv2D,GAAG,eACvDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm5D,gBAAgBv2D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYssD,gBAAgBv2D,UAGxF5C,KAAKm5D,gBAAgBv2D,GAAK,IAAIxpC,GAAoByzC,EAAYssD,gBAAgBv2D,SAGlF5C,KAAKm5D,gBAAgBv2D,QAAKnB,IAO5BmL,EAAgB,4BAAkCj/B,GAK3C,MAAMooG,GAoBbn2E,YAAYiN,GAkCV,GAjCFA,EAAcA,GAAe,GACvB7M,KAAKg2E,mBACDnpE,EAAYmpE,mBAEhBh2E,KAAKi2E,wBACAppE,EAAYopE,mCAAmChvE,KAAQ4F,EAAYopE,wBAC1B,MAAvCppE,EAAYopE,yBAAmC3nE,EAAAA,EAAAA,IAAiCzB,EAAYopE,wBAAyB,sBAAsB,QAASx0E,EAE3JzB,KAAKk2E,iBACDrpE,EAAYqpE,iBAEhBl2E,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAE5EzB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKm2E,mBACDtpE,EAAYspE,mBAEhBn2E,KAAKo2E,cACDvpE,EAAYupE,cAEhBp2E,KAAK8W,IACDjK,EAAYiK,IAEpB9W,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgCmpE,GAKzC,MAAMM,GAabz2E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKj3B,cACD8jC,EAAY9jC,cAEhBi3B,KAAKgiB,YACDnV,EAAYmV,YAEpBhiB,KAAKs2E,0BAAuB70E,EACxBoL,EAAYypE,qBAAsB,CACtCt2E,KAAKs2E,qBAAuB,GAC5B,IAAK,IAAI1zE,EAAI,EAAGA,EAAIiK,EAAYypE,qBAAqBzzE,OAAQD,IAClB,MAAvCiK,EAAYypE,qBAAqB1zE,GACjC5C,KAAKs2E,qBAAqB1zE,GACtBiK,EAAYypE,qBAAqB1zE,GAEzC5C,KAAKs2E,qBAAqB1zE,QAAKnB,EAK3BzB,KAAK4xE,4BACD/kE,EAAY+kE,6BAItBhlE,EAAgB,mCAAyCypE,GAKlD,MAAMxsG,GAWb+1B,YAAYiN,GAEV,GAAqC,OADvCA,EAAcA,GAAe,IACX0pE,kBACZv2E,KAAKu2E,uBAAoB90E,OACtB,GAAoD,MAAhDoL,EAAY0pE,kBAAkB,eACrCv2E,KAAKu2E,kBAAoB,IAAIC,GAAuB3pE,EAAY0pE,uBAC7D,CAEHnpE,GADIA,EAAoBP,EAAY0pE,kBAAkB,gBAChClpE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu2E,kBAAoB,IAAI3pE,EAAiBQ,GAAWP,EAAY0pE,oBAM7E,GADAv2E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsB/iC,GAK/B,MAAMjJ,GAWbg/B,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKy2E,sBAAmBh1E,EACpBoL,EAAY4pE,iBAAkB,CAClCz2E,KAAKy2E,iBAAmB,GACxB,IAAK,IAAI7zE,EAAI,EAAGA,EAAIiK,EAAY4pE,iBAAiB5zE,OAAQD,IAClB,MAAnCiK,EAAY4pE,iBAAiB7zE,GAC7B5C,KAAKy2E,iBAAiB7zE,GAClBiK,EAAY4pE,iBAAiB7zE,GAErC5C,KAAKy2E,iBAAiB7zE,QAAKnB,EAM3B,GADAzB,KAAK02E,wBAAqBj1E,EACtBoL,EAAY6pE,mBAAoB,CACpC12E,KAAK02E,mBAAqB,GAC1B,IAAS9zE,EAAI,EAAGA,EAAIiK,EAAY6pE,mBAAmB7zE,OAAQD,IAC3D,GAAyC,MAArCiK,EAAY6pE,mBAAmB9zE,GACnC,GAAwD,MAApDiK,EAAY6pE,mBAAmB9zE,GAAG,eAAwB,CAC5D,IAAIwK,EAAoBP,EAAY6pE,mBAAmB9zE,GAAG,eAC1DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK02E,mBAAmB9zE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6pE,mBAAmB9zE,UAG9F5C,KAAK02E,mBAAmB9zE,GAAK,IAAIi8D,GAAuBhyD,EAAY6pE,mBAAmB9zE,SAG3F5C,KAAK02E,mBAAmB9zE,QAAKnB,IAO/BmL,EAAgB,oBAA0BhsC,GAKnC,MAAMG,GAYb6+B,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAES,MAAzBjlB,EAAY8pE,UACZ32E,KAAK22E,eAAYl1E,OACd,GAA4C,MAAxCoL,EAAY8pE,UAAU,eAC7B32E,KAAK22E,UAAY,IAAI73F,GAAe+tB,EAAY8pE,eAC7C,CAEHvpE,GADIA,EAAoBP,EAAY8pE,UAAU,gBACxBtpE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK22E,UAAY,IAAI/pE,EAAiBQ,GAAWP,EAAY8pE,YAMrE,GADA32E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6B7rC,GAKtC,MAAM61G,GAebh3E,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK62E,4BACDhqE,EAAYgqE,4BAEhB72E,KAAKuoB,QACuB,MAAvB1b,EAAY0b,QAAmB9hB,SAASoG,EAAY0b,QAAS,SAAM9mB,EAExEzB,KAAK82E,uBACsC,MAAtCjqE,EAAYiqE,uBAAkCrwE,SAASoG,EAAYiqE,uBAAwB,SAAMr1E,EAEtGzB,KAAKujD,cACD12C,EAAY02C,cAEpBvjD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,cAAoBgqE,GAK7B,MAAMvlG,GAabuuB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK+2E,kBACiC,MAAjClqE,EAAYkqE,kBAA6B7pE,WAAWL,EAAYkqE,wBAAqBt1E,EAE1FzB,KAAKujD,cACD12C,EAAY02C,cAEpBvjD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8BAAoCv7B,GAK7C,MAAM2lG,GAWbp3E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKgiB,YACDnV,EAAYmV,YAEhBhiB,KAAKj3B,cACD8jC,EAAY9jC,eAItB6jC,EAAgB,uCAA6CoqE,GAKtD,MAAMC,GAebr3E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK9pC,kBACD22C,EAAY32C,kBAEhB8pC,KAAKwP,WACD3C,EAAY2C,WAEpBxP,KAAKk3E,gBAAaz1E,EACdoL,EAAYqqE,WAAY,CAC5Bl3E,KAAKk3E,WAAa,GAClB,IAAK,IAAIt0E,EAAI,EAAGA,EAAIiK,EAAYqqE,WAAWr0E,OAAQD,IAClB,MAA7BiK,EAAYqqE,WAAWt0E,GACvB5C,KAAKk3E,WAAWt0E,GACZiK,EAAYqqE,WAAWt0E,GAE/B5C,KAAKk3E,WAAWt0E,QAAKnB,EAMrB,GADAzB,KAAKm3E,uBAAoB11E,EACrBoL,EAAYsqE,kBAAmB,CACnCn3E,KAAKm3E,kBAAoB,GACzB,IAASv0E,EAAI,EAAGA,EAAIiK,EAAYsqE,kBAAkBt0E,OAAQD,IAClB,MAApCiK,EAAYsqE,kBAAkBv0E,GAC9B5C,KAAKm3E,kBAAkBv0E,GACnBiK,EAAYsqE,kBAAkBv0E,GAEtC5C,KAAKm3E,kBAAkBv0E,QAAKnB,EAM5B,GADAzB,KAAKo3E,6BAA0B31E,EAC3BoL,EAAYuqE,wBAAyB,CACzCp3E,KAAKo3E,wBAA0B,GAC/B,IAASx0E,EAAI,EAAGA,EAAIiK,EAAYuqE,wBAAwBv0E,OAAQD,IAClB,MAA1CiK,EAAYuqE,wBAAwBx0E,GACpC5C,KAAKo3E,wBAAwBx0E,GACzBiK,EAAYuqE,wBAAwBx0E,GAE5C5C,KAAKo3E,wBAAwBx0E,QAAKnB,EAMlC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiCqqE,GAK1C,MAAMI,GAWbz3E,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKu0B,UACD1nB,EAAY0nB,UAEpBv0B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kCAAwCyqE,GAKjD,MAAMC,GAWb13E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK8rE,gBAC+B,MAA/Bj/D,EAAYi/D,gBAA2B5+D,WAAWL,EAAYi/D,sBAAmBrqE,EAEtFzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,GAI9EmL,EAAgB,mCAAyC0qE,GAKlD,MAAMC,GAYb33E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAKsjD,cACDz2C,EAAYy2C,cAEhBtjD,KAAKw3E,gBACD3qE,EAAY2qE,iBAItB5qE,EAAgB,+BAAqC2qE,GAK9C,MAAMvzD,GAWbpkB,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,GAIlFmL,EAAgB,sBAA4BoX,GAKrC,MAAMpW,GAebhO,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKy3E,cAC6B,MAA7B5qE,EAAY4qE,cAAyBhxE,SAASoG,EAAY4qE,cAAe,SAAMh2E,EAEpFzB,KAAK03E,cAC6B,MAA7B7qE,EAAY6qE,cAAyBjxE,SAASoG,EAAY6qE,cAAe,SAAMj2E,EAEpFzB,KAAKunD,qBACD16C,EAAY06C,qBAEpBvnD,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAS1B,GAJIzB,KAAKwP,WACD3C,EAAY2C,WAEpBxP,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4BAAkCgB,GAK3C,MAAM+pE,GAYb/3E,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK43E,wBACD/qE,EAAY+qE,wBAEpB53E,KAAKy9D,gBAAah8D,EACdoL,EAAY4wD,WAAY,CAC5Bz9D,KAAKy9D,WAAa,GAClB,IAAK,IAAI76D,EAAI,EAAGA,EAAIiK,EAAY4wD,WAAW56D,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY4wD,WAAW76D,GAC3B,GAAgD,MAA5CiK,EAAY4wD,WAAW76D,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY4wD,WAAW76D,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy9D,WAAW76D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4wD,WAAW76D,UAG9E5C,KAAKy9D,WAAW76D,GAAK,IAAIgsD,GAA4B/hD,EAAY4wD,WAAW76D,SAGhF5C,KAAKy9D,WAAW76D,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sCAA4C+qE,GAKrD,MAAME,GAiBbj4E,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKwP,WACD3C,EAAY2C,WAEhBxP,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsU,MACDzH,EAAYyH,MAEhBtU,KAAK0U,MACD7H,EAAY6H,MAEhB1U,KAAKgS,QACDnF,EAAYmF,QAEpBhS,KAAK83E,eAAYr2E,EACboL,EAAYirE,UAAW,CAC3B93E,KAAK83E,UAAY,GACjB,IAAK,IAAIl1E,EAAI,EAAGA,EAAIiK,EAAYirE,UAAUj1E,OAAQD,IAAK,CACvD,GAAgC,MAA5BiK,EAAYirE,UAAUl1E,GAC1B,GAA+C,MAA3CiK,EAAYirE,UAAUl1E,GAAG,eAE3BwK,GADIA,EAAoBP,EAAYirE,UAAUl1E,GAAG,gBAC3ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK83E,UAAUl1E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYirE,UAAUl1E,UAG5E5C,KAAK83E,UAAUl1E,GAAK,IAAI5tB,GAAmB63B,EAAYirE,UAAUl1E,SAGrE5C,KAAK83E,UAAUl1E,QAAKnB,GAMpB,GADAzB,KAAKwX,gBAAa/V,EACdoL,EAAY2K,WAAY,CAC5BxX,KAAKwX,WAAa,GAClB,IAAS5U,EAAI,EAAGA,EAAIiK,EAAY2K,WAAW3U,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAY2K,WAAW5U,GAC3B,GAAgD,MAA5CiK,EAAY2K,WAAW5U,GAAG,eAE5BwK,GADIA,EAAoBP,EAAY2K,WAAW5U,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwX,WAAW5U,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2K,WAAW5U,UAG9E5C,KAAKwX,WAAW5U,GAAK,IAAI6U,GAAuB5K,EAAY2K,WAAW5U,SAG3E5C,KAAKwX,WAAW5U,QAAKnB,GAMrB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,wBAA8BirE,GAKvC,MAAME,GAUbn4E,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKg4E,aAAUv2E,EACXoL,EAAYmrE,QAAS,CACzBh4E,KAAKg4E,QAAU,GACf,IAAK,IAAIp1E,EAAI,EAAGA,EAAIiK,EAAYmrE,QAAQn1E,OAAQD,IAChD,GAA8B,MAA1BiK,EAAYmrE,QAAQp1E,GACxB,GAA6C,MAAzCiK,EAAYmrE,QAAQp1E,GAAG,eAAwB,CACjD,IAAIwK,EAAoBP,EAAYmrE,QAAQp1E,GAAG,eAC/CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKg4E,QAAQp1E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYmrE,QAAQp1E,UAGxE5C,KAAKg4E,QAAQp1E,GAAK,IAAIq1E,GAAsBprE,EAAYmrE,QAAQp1E,SAGpE5C,KAAKg4E,QAAQp1E,QAAKnB,IAOpBmL,EAAgB,uBAA6BmrE,GAKtC,MAAMv1G,GAgBbo9B,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAKo6B,gBACDvtB,EAAYutB,gBAEhBp6B,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKiyB,eACDplB,EAAYolB,eAEhBjyB,KAAKm7B,aACDtuB,EAAYsuB,aAEhBn7B,KAAKo7B,WACDvuB,EAAYuuB,WAEpBp7B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsBpqC,GAK/B,MAAMyc,GAab2gB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKk4E,8BACDrrE,EAAYqrE,8BAEhBl4E,KAAKm4E,4BACDtrE,EAAYsrE,4BAEhBn4E,KAAKo4E,iBACDvrE,EAAYurE,iBAEpBp4E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gCAAsC3tB,GAK/C,MAAMG,GAebwgB,YAAYiN,GAmBV,GAlBFA,EAAcA,GAAe,GACvB7M,KAAKq4E,WACDxrE,EAAYwrE,WAEhBr4E,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAKs4E,YAC2B,MAA3BzrE,EAAYyrE,YAAuBprE,WAAWL,EAAYyrE,kBAAe72E,EAE9EzB,KAAKu4E,gBACA1rE,EAAY0rE,2BAA2BtxE,KAAQ4F,EAAY0rE,gBAC1B,MAA/B1rE,EAAY0rE,iBAA2BjqE,EAAAA,EAAAA,IAAiCzB,EAAY0rE,gBAAiB,sBAAsB,QAAS92E,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,eAAqBxtB,GAK9B,MAAMo5F,GAab54E,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKwqD,iBACD39C,EAAY29C,iBAEhBxqD,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAK+oB,eACDlc,EAAYkc,eAEpB/oB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4CAAkD4rE,GAK3D,MAAMC,GAab74E,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+nD,uBACsC,MAAtCl7C,EAAYk7C,uBAAkCthD,SAASoG,EAAYk7C,uBAAwB,SAAMtmD,EAEtGzB,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKgoD,2BAC0C,MAA1Cn7C,EAAYm7C,2BAAsCvhD,SAASoG,EAAYm7C,2BAA4B,SAAMvmD,EAElHzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mEAAyE6rE,GAKlF,MAAMC,GAiBb94E,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK+oB,eACDlc,EAAYkc,eAEhB/oB,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAK+nD,uBACsC,MAAtCl7C,EAAYk7C,uBAAkCthD,SAASoG,EAAYk7C,uBAAwB,SAAMtmD,EAEtGzB,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKgoD,2BAC0C,MAA1Cn7C,EAAYm7C,2BAAsCvhD,SAASoG,EAAYm7C,2BAA4B,SAAMvmD,EAE9GzB,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK24E,kBACiC,MAAjC9rE,EAAY8rE,kBAA6BzrE,WAAWL,EAAY8rE,wBAAqBl3E,EAE9FzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qDAA2D8rE,GAKpE,MAAMl3F,GAYboe,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK44E,qBACD/rE,EAAY+rE,qBAEhB54E,KAAK64E,WACDhsE,EAAYgsE,WAEpB74E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sCAA4CprB,GAKrD,MAAMI,GAWbge,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK64E,WACDhsE,EAAYgsE,WAEpB74E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wCAA8ChrB,GAKvD,MAAMzM,GAebyqB,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK84E,UACDjsE,EAAYisE,UAEhB94E,KAAK+4E,QACDlsE,EAAYksE,QAEhB/4E,KAAKo3D,UACDvqD,EAAYuqD,UAEhBp3D,KAAKk3D,QACDrqD,EAAYqqD,QAEhBl3D,KAAKg5E,UACDnsE,EAAYmsE,UAEpBh5E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,eAAqBz3B,GAK9B,MAAMoP,GAyBbqb,YAAYiN,GA6BV,GA5BFA,EAAcA,GAAe,GACvB7M,KAAKi5E,kBACDpsE,EAAYosE,kBAEhBj5E,KAAKuV,aACD1I,EAAY0I,aAEhBvV,KAAKuiB,2BACD1V,EAAY0V,2BAEhBviB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKk5E,iBACDrsE,EAAYqsE,iBAEhBl5E,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKwiB,uBACD3V,EAAY2V,uBAEhBxiB,KAAKyiB,oBACmC,MAAnC5V,EAAY4V,oBAA+Bhc,SAASoG,EAAY4V,oBAAqB,SAAMhhB,EAEhGzB,KAAK2a,oBACD9N,EAAY8N,oBAEc,MAA9B9N,EAAYssE,eACZn5E,KAAKm5E,oBAAiB13E,OACnB,GAAiD,MAA7CoL,EAAYssE,eAAe,eAClCn5E,KAAKm5E,eAAiB,IAAIC,GAAoBvsE,EAAYssE,oBACvD,CAEH/rE,GADIA,EAAoBP,EAAYssE,eAAe,gBAC7B9rE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm5E,eAAiB,IAAIvsE,EAAiBQ,GAAWP,EAAYssE,iBAM1E,GADAn5E,KAAKq5E,uBAAoB53E,EACrBoL,EAAYwsE,kBAAmB,CACnCr5E,KAAKq5E,kBAAoB,GACzB,IAAK,IAAIz2E,EAAI,EAAGA,EAAIiK,EAAYwsE,kBAAkBx2E,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAYwsE,kBAAkBz2E,GAClC,GAAuD,MAAnDiK,EAAYwsE,kBAAkBz2E,GAAG,eAEnCwK,GADIA,EAAoBP,EAAYwsE,kBAAkBz2E,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq5E,kBAAkBz2E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwsE,kBAAkBz2E,UAG5F5C,KAAKq5E,kBAAkBz2E,GAAK,IAAI24D,GAAqB1uD,EAAYwsE,kBAAkBz2E,SAGvF5C,KAAKq5E,kBAAkBz2E,QAAKnB,GAM5B,GADAzB,KAAKs5E,sBAAmB73E,EACpBoL,EAAYysE,iBAAkB,CAClCt5E,KAAKs5E,iBAAmB,GACxB,IAAS12E,EAAI,EAAGA,EAAIiK,EAAYysE,iBAAiBz2E,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYysE,iBAAiB12E,GACjC,GAAsD,MAAlDiK,EAAYysE,iBAAiB12E,GAAG,eAElCwK,GADIA,EAAoBP,EAAYysE,iBAAiB12E,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs5E,iBAAiB12E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYysE,iBAAiB12E,UAG1F5C,KAAKs5E,iBAAiB12E,GAAK,IAAI44D,GAAqB3uD,EAAYysE,iBAAiB12E,SAGrF5C,KAAKs5E,iBAAiB12E,QAAKnB,GAM3B,GADAzB,KAAK8X,cAAWrW,EACZoL,EAAYiL,SAAU,CAC1B9X,KAAK8X,SAAW,GAChB,IAASlV,EAAI,EAAGA,EAAIiK,EAAYiL,SAASjV,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAYiL,SAASlV,GACzB,GAA8C,MAA1CiK,EAAYiL,SAASlV,GAAG,eAE1BwK,GADIA,EAAoBP,EAAYiL,SAASlV,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8X,SAASlV,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiL,SAASlV,UAG1E5C,KAAK8X,SAASlV,GAAK,IAAI81D,GAAoB7rD,EAAYiL,SAASlV,SAGpE5C,KAAK8X,SAASlV,QAAKnB,GAMnB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,GAM9B,GADAzB,KAAKu5E,oBAAiB93E,EAClBoL,EAAY0sE,eAAgB,CAChCv5E,KAAKu5E,eAAiB,GACtB,IAAS32E,EAAI,EAAGA,EAAIiK,EAAY0sE,eAAe12E,OAAQD,IAAK,CAG1D,IAAIwK,EAFN,GAAqC,MAAjCP,EAAY0sE,eAAe32E,GAC/B,GAAoD,MAAhDiK,EAAY0sE,eAAe32E,GAAG,eAEhCwK,GADIA,EAAoBP,EAAY0sE,eAAe32E,GAAG,gBAChCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu5E,eAAe32E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0sE,eAAe32E,UAGtF5C,KAAKu5E,eAAe32E,GAAK,IAAI0nB,EAAmBzd,EAAY0sE,eAAe32E,SAG/E5C,KAAKu5E,eAAe32E,QAAKnB,KAhJbld,GAAAA,2BAAqC,iBAuJnDqoB,EAAgB,mBAAyBroB,GAKlC,MAAMi1F,GAYb55E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy5E,2BACD5sE,EAAY4sE,2BAEhBz5E,KAAK05E,yBACD7sE,EAAY6sE,0BAItB9sE,EAAgB,qCAA2C4sE,GAKpD,MAAM9zF,GAabka,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK25E,iBACD9sE,EAAY8sE,iBAEpB35E,KAAK45E,sBAAmBn4E,EACpBoL,EAAY+sE,iBAAkB,CAClC55E,KAAK45E,iBAAmB,GACxB,IAAK,IAAIh3E,EAAI,EAAGA,EAAIiK,EAAY+sE,iBAAiB/2E,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAY+sE,iBAAiBh3E,GACjC,GAAsD,MAAlDiK,EAAY+sE,iBAAiBh3E,GAAG,eAElCwK,GADIA,EAAoBP,EAAY+sE,iBAAiBh3E,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK45E,iBAAiBh3E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+sE,iBAAiBh3E,UAG1F5C,KAAK45E,iBAAiBh3E,GAAK,IAAIzc,GAAqB0mB,EAAY+sE,iBAAiBh3E,SAGrF5C,KAAK45E,iBAAiBh3E,QAAKnB,GAM3B,GADAzB,KAAK65E,wBAAqBp4E,EACtBoL,EAAYgtE,mBAAoB,CACpC75E,KAAK65E,mBAAqB,GAC1B,IAASj3E,EAAI,EAAGA,EAAIiK,EAAYgtE,mBAAmBh3E,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYgtE,mBAAmBj3E,GACnC,GAAwD,MAApDiK,EAAYgtE,mBAAmBj3E,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYgtE,mBAAmBj3E,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK65E,mBAAmBj3E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgtE,mBAAmBj3E,UAG9F5C,KAAK65E,mBAAmBj3E,GAAK,IAAIk3E,GAAwCjtE,EAAYgtE,mBAAmBj3E,SAG5G5C,KAAK65E,mBAAmBj3E,QAAKnB,GAK7B,GAA6B,MAAzBoL,EAAYktE,UACZ/5E,KAAK+5E,eAAYt4E,OACd,GAA4C,MAAxCoL,EAAYktE,UAAU,eAC7B/5E,KAAK+5E,UAAY,IAAIC,GAAkBntE,EAAYktE,eAChD,CACH,IAAI3sE,EACJA,GADIA,EAAoBP,EAAYktE,UAAU,gBACxB1sE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+5E,UAAY,IAAIntE,EAAiBQ,GAAWP,EAAYktE,cAOvEntE,EAAgB,4BAAkClnB,GAK3C,MAAMu0F,GAUbr6E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4S,WACD/F,EAAY+F,YAItBhG,EAAgB,mCAAyCqtE,GAKlD,MAAMl0F,GAab6Z,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKk6E,eACDrtE,EAAYqtE,eAEpBl6E,KAAKm6E,8BAA2B14E,EAC5BoL,EAAYstE,yBAA0B,CAC1Cn6E,KAAKm6E,yBAA2B,GAChC,IAAK,IAAIv3E,EAAI,EAAGA,EAAIiK,EAAYstE,yBAAyBt3E,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAYstE,yBAAyBv3E,GACzC,GAA8D,MAA1DiK,EAAYstE,yBAAyBv3E,GAAG,eAE1CwK,GADIA,EAAoBP,EAAYstE,yBAAyBv3E,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm6E,yBAAyBv3E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYstE,yBAAyBv3E,UAG1G5C,KAAKm6E,yBAAyBv3E,GAAK,IAAIw3E,GAA6BvtE,EAAYstE,yBAAyBv3E,SAG7G5C,KAAKm6E,yBAAyBv3E,QAAKnB,GAMnC,GADAzB,KAAK65E,wBAAqBp4E,EACtBoL,EAAYgtE,mBAAoB,CACpC75E,KAAK65E,mBAAqB,GAC1B,IAASj3E,EAAI,EAAGA,EAAIiK,EAAYgtE,mBAAmBh3E,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYgtE,mBAAmBj3E,GACnC,GAAwD,MAApDiK,EAAYgtE,mBAAmBj3E,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYgtE,mBAAmBj3E,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK65E,mBAAmBj3E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYgtE,mBAAmBj3E,UAG9F5C,KAAK65E,mBAAmBj3E,GAAK,IAAIk3E,GAAwCjtE,EAAYgtE,mBAAmBj3E,SAG5G5C,KAAK65E,mBAAmBj3E,QAAKnB,GAK7B,GAA6B,MAAzBoL,EAAYktE,UACZ/5E,KAAK+5E,eAAYt4E,OACd,GAA4C,MAAxCoL,EAAYktE,UAAU,eAC7B/5E,KAAK+5E,UAAY,IAAIC,GAAkBntE,EAAYktE,eAChD,CACH,IAAI3sE,EACJA,GADIA,EAAoBP,EAAYktE,UAAU,gBACxB1sE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+5E,UAAY,IAAIntE,EAAiBQ,GAAWP,EAAYktE,cAOvEntE,EAAgB,0BAAgC7mB,GAKzC,MAAMI,GAsBbyZ,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAKjpC,GACkB,MAAlB81C,EAAY91C,GAAc0vC,SAASoG,EAAY91C,GAAI,SAAM0qC,EAE9DzB,KAAKq6E,MACDxtE,EAAYwtE,MAEhBr6E,KAAKs6E,eACDztE,EAAYytE,eAEhBt6E,KAAKu6E,SACwB,MAAxB1tE,EAAY0tE,SAAoB9zE,SAASoG,EAAY0tE,SAAU,SAAM94E,EAE1EzB,KAAKw6E,aACD3tE,EAAY2tE,aAEhBx6E,KAAKy6E,SACD5tE,EAAY4tE,SAEhBz6E,KAAK06E,eACD7tE,EAAY6tE,eAEhB16E,KAAK26E,cACD9tE,EAAY8tE,cAEhB36E,KAAK46E,cACD/tE,EAAY+tE,cAEhB56E,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAK66E,aACDhuE,EAAYguE,aAEpB76E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BzmB,GAKpC,MAAM20F,GAWbl7E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKgsB,MACDnf,EAAYmf,OAItBpf,EAAgB,0BAAgCkuE,GAKzC,MAAMlzF,GAcbgY,YAAYiN,GAgBV,GAfFA,EAAcA,GAAe,GACvB7M,KAAK+6E,aACAluE,EAAYkuE,wBAAwB9zE,KAAQ4F,EAAYkuE,aAC1B,MAA5BluE,EAAYkuE,cAAwBzsE,EAAAA,EAAAA,IAAiCzB,EAAYkuE,aAAc,sBAAsB,QAASt5E,EAErIzB,KAAKg7E,oCACDnuE,EAAYmuE,oCAEhBh7E,KAAKi7E,mDACDpuE,EAAYouE,mDAEhBj7E,KAAKk7E,cAC6B,MAA7BruE,EAAYquE,cAAyBhuE,WAAWL,EAAYquE,oBAAiBz5E,EAEtFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gCAAsChlB,GAK/C,MAAMuzF,GAYbv7E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKo7E,gBAC+B,MAA/BvuE,EAAYuuE,gBAA2BluE,WAAWL,EAAYuuE,sBAAmB35E,EAEtFzB,KAAKuV,aACD1I,EAAY0I,aAEpBvV,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BuuE,GAKpC,MAAMjyF,GAoBb0W,YAAYiN,GA6BV,GA5BFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKq7E,kBACDxuE,EAAYwuE,kBAEhBr7E,KAAKs7E,yBACDzuE,EAAYyuE,yBAEhBt7E,KAAK8zE,kBACDjnE,EAAYinE,kBAEhB9zE,KAAKu7E,oBACD1uE,EAAY0uE,oBAEhBv7E,KAAKw7E,2BACD3uE,EAAY2uE,2BAEhBx7E,KAAKy7E,mBACD5uE,EAAY4uE,mBAEhBz7E,KAAK07E,wBACD7uE,EAAY6uE,wBAEhB17E,KAAK27E,6BACD9uE,EAAY8uE,6BAEsB,MAAtC9uE,EAAYugC,uBACZptC,KAAKotC,4BAAyB3rC,OAC3B,GAAyD,MAArDoL,EAAYugC,uBAAuB,eAC1CptC,KAAKotC,uBAAyB,IAAIC,GAA4BxgC,EAAYugC,4BACvE,CAEHhgC,GADIA,EAAoBP,EAAYugC,uBAAuB,gBACrC//B,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKotC,uBAAyB,IAAIxgC,EAAiBQ,GAAWP,EAAYugC,yBAMlF,GADAptC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4BAAkC1jB,GAK3C,MAAM0yF,GAWbh8E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2qB,MACD9d,EAAY8d,OAItB/d,EAAgB,mBAAyBgvE,GAKlC,MAAM7sF,GAYb6Q,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK+rE,aACDl/D,EAAYk/D,aAEhB/rE,KAAK67E,yBACDhvE,EAAYgvE,yBAEhB77E,KAAK87E,6BAC4C,MAA5CjvE,EAAYivE,6BAAwCr1E,SAASoG,EAAYivE,6BAA8B,SAAMr6E,GAIxHmL,EAAgB,kCAAwC7d,GAKjD,MAAMQ,GAebqQ,YAAYiN,GAmBV,GAlBFA,EAAcA,GAAe,GACvB7M,KAAK+7E,YACDlvE,EAAYkvE,YAEhB/7E,KAAKs6E,eACDztE,EAAYytE,eAEhBt6E,KAAKg8E,iBACAnvE,EAAYmvE,4BAA4B/0E,KAAQ4F,EAAYmvE,iBAC1B,MAAhCnvE,EAAYmvE,kBAA4B1tE,EAAAA,EAAAA,IAAiCzB,EAAYmvE,iBAAkB,sBAAsB,QAASv6E,EAE7IzB,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKu6E,SACD1tE,EAAY0tE,SAEpBv6E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgCrd,GAKzC,MAAMa,GAWbwP,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4U,IACD/H,EAAY+H,IAEhB5U,KAAKi8E,OACDpvE,EAAYovE,QAItBrvE,EAAgB,wBAA8Bxc,GAKvC,MAAMY,GAYb4O,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKymB,WAAQhlB,EACToL,EAAY4Z,MAAO,CACvBzmB,KAAKymB,MAAQ,GACb,IAAK,IAAI7jB,EAAI,EAAGA,EAAIiK,EAAY4Z,MAAM5jB,OAAQD,IAC9C,GAA4B,MAAxBiK,EAAY4Z,MAAM7jB,GACtB,GAA2C,MAAvCiK,EAAY4Z,MAAM7jB,GAAG,eAAwB,CAC/C,IAAIwK,EAAoBP,EAAY4Z,MAAM7jB,GAAG,eAC7CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKymB,MAAM7jB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4Z,MAAM7jB,UAGpE5C,KAAKymB,MAAM7jB,GAAK,IAAI2kE,GAAU16D,EAAY4Z,MAAM7jB,SAGpD5C,KAAKymB,MAAM7jB,QAAKnB,EAKZzB,KAAKk8E,uBACDrvE,EAAYqvE,uBAEhBl8E,KAAKgnC,cACDn6B,EAAYm6B,eAItBp6B,EAAgB,4BAAkC5b,GAK3C,MAAMsC,GAiCbsM,YAAYiN,GAmEV,GAlEFA,EAAcA,GAAe,GACvB7M,KAAKm8E,QACuB,MAAvBtvE,EAAYsvE,QAAmB11E,SAASoG,EAAYsvE,QAAS,SAAM16E,EAExEzB,KAAKo8E,cACDvvE,EAAYuvE,cAEhBp8E,KAAK28D,QACuB,MAAvB9vD,EAAY8vD,QAAmBl2D,SAASoG,EAAY8vD,QAAS,SAAMl7D,EAExEzB,KAAKq8E,MACDxvE,EAAYwvE,MAEhBr8E,KAAK23B,SACD9qB,EAAY8qB,SAEhB33B,KAAKs8E,WACDzvE,EAAYyvE,WAEhBt8E,KAAKu8E,UACD1vE,EAAY0vE,UAEhBv8E,KAAKw8E,cACA3vE,EAAY2vE,yBAAyBv1E,KAAQ4F,EAAY2vE,cAC1B,MAA7B3vE,EAAY2vE,eAAyBluE,EAAAA,EAAAA,IAAiCzB,EAAY2vE,cAAe,sBAAsB,QAAS/6E,EAEvIzB,KAAKy8E,uBACD5vE,EAAY4vE,uBAEhBz8E,KAAK08E,OACD7vE,EAAY6vE,OAEhB18E,KAAK28E,aACD9vE,EAAY8vE,aAEhB38E,KAAK48E,SACD/vE,EAAY+vE,SAEhB58E,KAAK68E,MACDhwE,EAAYgwE,MAEhB78E,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK88E,cAC6B,MAA7BjwE,EAAYiwE,cAAyBr2E,SAASoG,EAAYiwE,cAAe,SAAMr7E,EAEpFzB,KAAK+8E,YAC2B,MAA3BlwE,EAAYkwE,YAAuBt2E,SAASoG,EAAYkwE,YAAa,SAAMt7E,EAEhFzB,KAAKg9E,WAC0B,MAA1BnwE,EAAYmwE,WAAsBv2E,SAASoG,EAAYmwE,WAAY,SAAMv7E,EAE9EzB,KAAKi9E,SACDpwE,EAAYowE,SAEhBj9E,KAAKk9E,YACDrwE,EAAYqwE,YAEhBl9E,KAAKm9E,iBACDtwE,EAAYswE,iBAEhBn9E,KAAKo9E,oBACDvwE,EAAYuwE,oBAEpBp9E,KAAK8T,wBAAqBrS,EACtBoL,EAAYiH,mBAAoB,CACpC9T,KAAK8T,mBAAqB,GAC1B,IAAK,IAAIlR,EAAI,EAAGA,EAAIiK,EAAYiH,mBAAmBjR,OAAQD,IAAK,CAChE,GAAyC,MAArCiK,EAAYiH,mBAAmBlR,GACnC,GAAwD,MAApDiK,EAAYiH,mBAAmBlR,GAAG,eAEpCwK,GADIA,EAAoBP,EAAYiH,mBAAmBlR,GAAG,gBACpCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8T,mBAAmBlR,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiH,mBAAmBlR,UAG9F5C,KAAK8T,mBAAmBlR,GAAK,IAAIy6E,GAAiCxwE,EAAYiH,mBAAmBlR,SAGrG5C,KAAK8T,mBAAmBlR,QAAKnB,GAM7B,GADAzB,KAAKs9E,6BAA0B77E,EAC3BoL,EAAYywE,wBAAyB,CACzCt9E,KAAKs9E,wBAA0B,GAC/B,IAAS16E,EAAI,EAAGA,EAAIiK,EAAYywE,wBAAwBz6E,OAAQD,IAAK,CACrE,GAA8C,MAA1CiK,EAAYywE,wBAAwB16E,GACxC,GAA6D,MAAzDiK,EAAYywE,wBAAwB16E,GAAG,eAEzCwK,GADIA,EAAoBP,EAAYywE,wBAAwB16E,GAAG,gBACzCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs9E,wBAAwB16E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYywE,wBAAwB16E,UAGxG5C,KAAKs9E,wBAAwB16E,GAAK,IAAI26E,GAAsC1wE,EAAYywE,wBAAwB16E,SAGpH5C,KAAKs9E,wBAAwB16E,QAAKnB,GAMlC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,gBAAsBtZ,GAK/B,MAAM0yD,GAqBbpmD,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK62E,4BACDhqE,EAAYgqE,4BAEhB72E,KAAK2a,oBACD9N,EAAY8N,oBAEhB3a,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK+2E,kBACiC,MAAjClqE,EAAYkqE,kBAA6B7pE,WAAWL,EAAYkqE,wBAAqBt1E,EAE1FzB,KAAKw9E,WAC0B,MAA1B3wE,EAAY2wE,WAAsBtwE,WAAWL,EAAY2wE,iBAAc/7E,EAE5EzB,KAAKy9E,iBACgC,MAAhC5wE,EAAY4wE,iBAA4BvwE,WAAWL,EAAY4wE,uBAAoBh8E,EAExFzB,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAK09E,uBACD7wE,EAAY6wE,uBAEhB19E,KAAK29E,kCACD9wE,EAAY8wE,kCAEpB39E,KAAKwoD,uBAAoB/mD,EACrBoL,EAAY27C,kBAAmB,CACnCxoD,KAAKwoD,kBAAoB,GACzB,IAAK,IAAI5lD,EAAI,EAAGA,EAAIiK,EAAY27C,kBAAkB3lD,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAY27C,kBAAkB5lD,GAClC,GAAuD,MAAnDiK,EAAY27C,kBAAkB5lD,GAAG,eAEnCwK,GADIA,EAAoBP,EAAY27C,kBAAkB5lD,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwoD,kBAAkB5lD,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY27C,kBAAkB5lD,UAG5F5C,KAAKwoD,kBAAkB5lD,GAAK,IAAI6lD,GAAsB57C,EAAY27C,kBAAkB5lD,SAGxF5C,KAAKwoD,kBAAkB5lD,QAAKnB,GAM5B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4Bo5C,GAKrC,MAAMtyD,WACHsyD,GAWVpmD,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKiH,KACD4F,EAAY5F,KAEpBjH,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuClZ,GAKhD,MAAMM,GAab4L,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK49E,OACD/wE,EAAY+wE,OAEhB59E,KAAK69E,WACDhxE,EAAYgxE,WAEpB79E,KAAK89E,yBAAsBr8E,EACvBoL,EAAYixE,oBAAqB,CACrC99E,KAAK89E,oBAAsB,GAC3B,IAAK,IAAIl7E,EAAI,EAAGA,EAAIiK,EAAYixE,oBAAoBj7E,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYixE,oBAAoBl7E,GACpC,GAAyD,MAArDiK,EAAYixE,oBAAoBl7E,GAAG,eAErCwK,GADIA,EAAoBP,EAAYixE,oBAAoBl7E,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK89E,oBAAoBl7E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYixE,oBAAoBl7E,UAGhG5C,KAAK89E,oBAAoBl7E,GAAK,IAAIm7E,GAAwBlxE,EAAYixE,oBAAoBl7E,SAG9F5C,KAAK89E,oBAAoBl7E,QAAKnB,GAM9B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4B5Y,GAKrC,MAAMgqF,GAgBbp+E,YAAYiN,GAoBV,GAnBFA,EAAcA,GAAe,GACvB7M,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAK2zE,oBACD9mE,EAAY8mE,oBAEhB3zE,KAAK6zE,eACDhnE,EAAYgnE,eAEhB7zE,KAAKi+E,iCACDpxE,EAAYoxE,iCAEhBj+E,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAK+b,gBACDlP,EAAYkP,gBAEe,MAA/BlP,EAAYqxE,gBACZl+E,KAAKk+E,qBAAkBz8E,OACpB,GAAkD,MAA9CoL,EAAYqxE,gBAAgB,eACnCl+E,KAAKk+E,gBAAkB,IAAIC,GAAsCtxE,EAAYqxE,qBAC1E,CACH,IAAI9wE,EAAoBP,EAAYqxE,gBAAgB,eACpD9wE,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKk+E,gBAAkB,IAAItxE,EAAiBQ,GAAWP,EAAYqxE,oBAO7EtxE,EAAgB,gDAAsDoxE,GAK/D,MAAMvpF,GAebmL,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAKo+E,SACDvxE,EAAYuxE,SAEhBp+E,KAAKq+E,kCACDxxE,EAAYwxE,kCAE+B,MAA/CxxE,EAAYyxE,gCACZt+E,KAAKs+E,qCAAkC78E,OACpC,GAAkE,MAA9DoL,EAAYyxE,gCAAgC,eACnDt+E,KAAKs+E,gCAAkC,IAAIxoF,GAAuC+W,EAAYyxE,qCAC3F,CAEHlxE,GADIA,EAAoBP,EAAYyxE,gCAAgC,gBAC9CjxE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs+E,gCAAkC,IAAI1xE,EAAiBQ,GAAWP,EAAYyxE,kCAK3F,GAAsC,MAAlCzxE,EAAY0xE,mBACZv+E,KAAKu+E,wBAAqB98E,OACvB,GAAqD,MAAjDoL,EAAY0xE,mBAAmB,eACtCv+E,KAAKu+E,mBAAqB,IAAIC,GAAyC3xE,EAAY0xE,wBAChF,CAEHnxE,GADIA,EAAoBP,EAAY0xE,mBAAmB,gBACjClxE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu+E,mBAAqB,IAAI3xE,EAAiBQ,GAAWP,EAAY0xE,qBAK9E,GAAkD,MAA9C1xE,EAAY4xE,+BACZz+E,KAAKy+E,oCAAiCh9E,OACnC,GAAiE,MAA7DoL,EAAY4xE,+BAA+B,eAClDz+E,KAAKy+E,+BAAiC,IAAIC,GAA2C7xE,EAAY4xE,oCAC9F,CAEHrxE,GADIA,EAAoBP,EAAY4xE,+BAA+B,gBAC7CpxE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy+E,+BAAiC,IAAI7xE,EAAiBQ,GAAWP,EAAY4xE,iCAM1F,GADAz+E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,+BAAqCnY,GAK9C,MAAMkqF,GAmBb/+E,YAAYiN,GAuBV,GAtBFA,EAAcA,GAAe,GACvB7M,KAAK4+E,cACD/xE,EAAY+xE,cAEhB5+E,KAAK6+E,aACDhyE,EAAYgyE,aAEhB7+E,KAAK8+E,SACDjyE,EAAYiyE,SAEhB9+E,KAAK++E,kBACDlyE,EAAYkyE,kBAEhB/+E,KAAKkrE,aACDr+D,EAAYq+D,aAEhBlrE,KAAK8qE,wBACDj+D,EAAYi+D,wBAEhB9qE,KAAKi+E,iCACDpxE,EAAYoxE,iCAEkB,MAAlCpxE,EAAY0xE,mBACZv+E,KAAKu+E,wBAAqB98E,OACvB,GAAqD,MAAjDoL,EAAY0xE,mBAAmB,eACtCv+E,KAAKu+E,mBAAqB,IAAIC,GAAyC3xE,EAAY0xE,wBAChF,CAEHnxE,GADIA,EAAoBP,EAAY0xE,mBAAmB,gBACjClxE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKu+E,mBAAqB,IAAI3xE,EAAiBQ,GAAWP,EAAY0xE,qBAM9E,GADAv+E,KAAKuR,qBAAkB9P,EACnBoL,EAAY0E,gBAAiB,CACjCvR,KAAKuR,gBAAkB,GACvB,IAAK,IAAI3O,EAAI,EAAGA,EAAIiK,EAAY0E,gBAAgB1O,OAAQD,IAAK,CAC7D,GAAsC,MAAlCiK,EAAY0E,gBAAgB3O,GAChC,GAAqD,MAAjDiK,EAAY0E,gBAAgB3O,GAAG,eAEjCwK,GADIA,EAAoBP,EAAY0E,gBAAgB3O,GAAG,gBACjCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuR,gBAAgB3O,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY0E,gBAAgB3O,UAGxF5C,KAAKuR,gBAAgB3O,GAAK,IAAI4O,GAAoB3E,EAAY0E,gBAAgB3O,SAGlF5C,KAAKuR,gBAAgB3O,QAAKnB,GAK1B,GAA2C,MAAvCoL,EAAYmyE,wBACZh/E,KAAKg/E,6BAA0Bv9E,OAC5B,GAA0D,MAAtDoL,EAAYmyE,wBAAwB,eAC3Ch/E,KAAKg/E,wBAA0B,IAAIpnF,GAA8CiV,EAAYmyE,6BAC1F,CACH,IAAI5xE,EACJA,GADIA,EAAoBP,EAAYmyE,wBAAwB,gBACtC3xE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKg/E,wBAA0B,IAAIpyE,EAAiBQ,GAAWP,EAAYmyE,4BAOrFpyE,EAAgB,yCAA+C+xE,GAKxD,MAAMnpF,GAeboK,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+qE,sBACDl+D,EAAYk+D,sBAEhB/qE,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKsqD,UACDz9C,EAAYy9C,UAEpBtqD,KAAKi/E,8BAA2Bx9E,EAC5BoL,EAAYoyE,yBAA0B,CAC1Cj/E,KAAKi/E,yBAA2B,GAChC,IAAK,IAAIr8E,EAAI,EAAGA,EAAIiK,EAAYoyE,yBAAyBp8E,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAYoyE,yBAAyBr8E,GACzC,GAA8D,MAA1DiK,EAAYoyE,yBAAyBr8E,GAAG,eAE1CwK,GADIA,EAAoBP,EAAYoyE,yBAAyBr8E,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi/E,yBAAyBr8E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoyE,yBAAyBr8E,UAG1G5C,KAAKi/E,yBAAyBr8E,GAAK,IAAIs8E,GAA8CryE,EAAYoyE,yBAAyBr8E,SAG9H5C,KAAKi/E,yBAAyBr8E,QAAKnB,GAMnC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0CAAgDpX,GAKzD,MAAMG,GAabiK,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKm/E,4BACDtyE,EAAYsyE,4BAEpBn/E,KAAKo/E,+BAA4B39E,EAC7BoL,EAAYuyE,0BAA2B,CAC3Cp/E,KAAKo/E,0BAA4B,GACjC,IAAK,IAAIx8E,EAAI,EAAGA,EAAIiK,EAAYuyE,0BAA0Bv8E,OAAQD,IAClB,MAA5CiK,EAAYuyE,0BAA0Bx8E,GACtC5C,KAAKo/E,0BAA0Bx8E,GAC3BiK,EAAYuyE,0BAA0Bx8E,GAE9C5C,KAAKo/E,0BAA0Bx8E,QAAKnB,EAMpC,GADAzB,KAAKq/E,kCAA+B59E,EAChCoL,EAAYwyE,6BAA8B,CAC9Cr/E,KAAKq/E,6BAA+B,GACpC,IAASz8E,EAAI,EAAGA,EAAIiK,EAAYwyE,6BAA6Bx8E,OAAQD,IAClB,MAA/CiK,EAAYwyE,6BAA6Bz8E,GACzC5C,KAAKq/E,6BAA6Bz8E,GAC9BiK,EAAYwyE,6BAA6Bz8E,GAEjD5C,KAAKq/E,6BAA6Bz8E,QAAKnB,EAMvC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sCAA4CjX,GAKrD,MAAMG,GAgBb8J,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAK4oC,UACD/7B,EAAY+7B,UAEhB5oC,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK82B,cACDjqB,EAAYiqB,cAEhB92B,KAAKs/E,mBACDzyE,EAAYyyE,mBAEhBt/E,KAAKu/E,uBACD1yE,EAAY0yE,uBAEhBv/E,KAAKw/E,iBACD3yE,EAAY2yE,iBAEpBx/E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uCAA6C9W,GAKtD,MAAMK,GAYbyJ,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+qE,sBACDl+D,EAAYk+D,sBAEpB/qE,KAAKy/E,2CAAwCh+E,EACzCoL,EAAY4yE,sCAAuC,CACvDz/E,KAAKy/E,sCAAwC,GAC7C,IAAK,IAAI78E,EAAI,EAAGA,EAAIiK,EAAY4yE,sCAAsC58E,OAAQD,IAC9E,GAA4D,MAAxDiK,EAAY4yE,sCAAsC78E,GACtD,GAA2E,MAAvEiK,EAAY4yE,sCAAsC78E,GAAG,eAAwB,CAC/E,IAAIwK,EAAoBP,EAAY4yE,sCAAsC78E,GAAG,eAC7EwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy/E,sCAAsC78E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4yE,sCAAsC78E,UAGpI5C,KAAKy/E,sCAAsC78E,GAAK,IAAI88E,GAA2D7yE,EAAY4yE,sCAAsC78E,SAGrK5C,KAAKy/E,sCAAsC78E,QAAKnB,EAK5CzB,KAAK2sD,UACD9/C,EAAY8/C,WAItB//C,EAAgB,uDAA6DzW,GAKtE,MAAMwpF,GAWb//E,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK4/E,4BACD/yE,EAAY+yE,4BAEpB5/E,KAAK6/E,kCAA+Bp+E,EAChCoL,EAAYgzE,6BAA8B,CAC9C7/E,KAAK6/E,6BAA+B,GACpC,IAAK,IAAIj9E,EAAI,EAAGA,EAAIiK,EAAYgzE,6BAA6Bh9E,OAAQD,IAClB,MAA/CiK,EAAYgzE,6BAA6Bj9E,GACzC5C,KAAK6/E,6BAA6Bj9E,GAC9BiK,EAAYgzE,6BAA6Bj9E,GAEjD5C,KAAK6/E,6BAA6Bj9E,QAAKnB,IAOzCmL,EAAgB,qDAA2D+yE,GAKpE,MAAMG,GAWblgF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKqrE,YACDx+D,EAAYw+D,YAEhBrrE,KAAK+/E,kBACDlzE,EAAYkzE,mBAItBnzE,EAAgB,kCAAwCkzE,GAKjD,MAAM9oF,GAUb4I,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKggF,QACDnzE,EAAYmzE,SAItBpzE,EAAgB,oCAA0C5V,GAKnD,MAAMI,GAcbwI,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAK8+E,SACDjyE,EAAYiyE,SAEhB9+E,KAAKigF,6BACDpzE,EAAYozE,6BAEc,MAA9BpzE,EAAYqzE,eACZlgF,KAAKkgF,oBAAiBz+E,OACnB,GAAiD,MAA7CoL,EAAYqzE,eAAe,eAClClgF,KAAKkgF,eAAiB,IAAIC,GAA4CtzE,EAAYqzE,oBAC/E,CACH,IAAI9yE,EAAoBP,EAAYqzE,eAAe,eACnD9yE,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkgF,eAAiB,IAAItzE,EAAiBQ,GAAWP,EAAYqzE,iBAKtElgF,KAAKogF,6BACDvzE,EAAYuzE,6BAEhBpgF,KAAKqgF,wBACDxzE,EAAYwzE,yBAItBzzE,EAAgB,iDAAuDxV,GAKhE,MAAMQ,GAcbgI,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKsgF,qBACDzzE,EAAYyzE,qBAEhBtgF,KAAKugF,YACD1zE,EAAY0zE,YAEhBvgF,KAAKwgF,UACD3zE,EAAY2zE,UAEhBxgF,KAAKygF,iBACgC,MAAhC5zE,EAAY4zE,iBAA4Bh6E,SAASoG,EAAY4zE,iBAAkB,SAAMh/E,EAE9FzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8CAAoDhV,GAK7D,MAAM8oF,GAeb9gF,YAAYiN,GAoBV,GAnBFA,EAAcA,GAAe,GACvB7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAKklD,QACDr4C,EAAYq4C,QAEhBllD,KAAKujC,uBACD12B,EAAY02B,uBAEhBvjC,KAAK2gF,UACA9zE,EAAY8zE,qBAAqB15E,KAAQ4F,EAAY8zE,UAC1B,MAAzB9zE,EAAY8zE,WAAqBryE,EAAAA,EAAAA,IAAiCzB,EAAY8zE,UAAW,sBAAsB,QAASl/E,EAE/HzB,KAAK4gF,QACA/zE,EAAY+zE,mBAAmB35E,KAAQ4F,EAAY+zE,QAC1B,MAAvB/zE,EAAY+zE,SAAmBtyE,EAAAA,EAAAA,IAAiCzB,EAAY+zE,QAAS,sBAAsB,QAASn/E,EAE/HzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmC8zE,GAK5C,MAAM5hG,GAqBb8gB,YAAYiN,GA+BV,GA9BFA,EAAcA,GAAe,GACvB7M,KAAKsiC,QACDz1B,EAAYy1B,QAEhBtiC,KAAKuiC,UACD11B,EAAY01B,UAEhBviC,KAAKijC,0BACDp2B,EAAYo2B,0BAEhBjjC,KAAKujC,uBACD12B,EAAY02B,uBAEhBvjC,KAAK6gF,mBACDh0E,EAAYg0E,mBAEhB7gF,KAAK8gF,uBACDj0E,EAAYi0E,uBAEhB9gF,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK+gF,cACAl0E,EAAYk0E,yBAAyB95E,KAAQ4F,EAAYk0E,cAC1B,MAA7Bl0E,EAAYk0E,eAAyBzyE,EAAAA,EAAAA,IAAiCzB,EAAYk0E,cAAe,sBAAsB,QAASt/E,EAEvIzB,KAAKghF,YACAn0E,EAAYm0E,uBAAuB/5E,KAAQ4F,EAAYm0E,YAC1B,MAA3Bn0E,EAAYm0E,aAAuB1yE,EAAAA,EAAAA,IAAiCzB,EAAYm0E,YAAa,sBAAsB,QAASv/E,EAEnG,MAAhCoL,EAAYo0E,iBACZjhF,KAAKihF,sBAAmBx/E,OACrB,GAAmD,MAA/CoL,EAAYo0E,iBAAiB,eACpCjhF,KAAKihF,iBAAmB,IAAIC,GAAsBr0E,EAAYo0E,sBAC3D,CAEH7zE,GADIA,EAAoBP,EAAYo0E,iBAAiB,gBAC/B5zE,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKihF,iBAAmB,IAAIr0E,EAAiBQ,GAAWP,EAAYo0E,mBAM5E,GADAjhF,KAAKmhF,iBAAc1/E,EACfoL,EAAYs0E,YAAa,CAC7BnhF,KAAKmhF,YAAc,GACnB,IAAK,IAAIv+E,EAAI,EAAGA,EAAIiK,EAAYs0E,YAAYt+E,OAAQD,IAClB,MAA9BiK,EAAYs0E,YAAYv+E,GACxB5C,KAAKmhF,YAAYv+E,GACbiK,EAAYs0E,YAAYv+E,GAEhC5C,KAAKmhF,YAAYv+E,QAAKnB,EAMtB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,eAAqB9tB,GAK9B,MAAMsiG,GAWbxhF,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8Bw0E,GAKvC,MAAMtuG,GAYb8sB,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKqhF,kBAAe5/E,EAChBoL,EAAYw0E,aAAc,CAC9BrhF,KAAKqhF,aAAe,GACpB,IAAK,IAAIz+E,EAAI,EAAGA,EAAIiK,EAAYw0E,aAAax+E,OAAQD,IAAK,CAC1D,GAAmC,MAA/BiK,EAAYw0E,aAAaz+E,GAC7B,GAAkD,MAA9CiK,EAAYw0E,aAAaz+E,GAAG,eAE9BwK,GADIA,EAAoBP,EAAYw0E,aAAaz+E,GAAG,gBAC9ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqhF,aAAaz+E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYw0E,aAAaz+E,UAGlF5C,KAAKqhF,aAAaz+E,GAAK,IAAI0+E,GAAkBz0E,EAAYw0E,aAAaz+E,SAG1E5C,KAAKqhF,aAAaz+E,QAAKnB,GAMvB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,wBAA8B95B,GAKvC,MAAMyuG,GAcb3hF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKgsE,iBACDn/D,EAAYm/D,iBAEhBhsE,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK2gF,UACA9zE,EAAY8zE,qBAAqB15E,KAAQ4F,EAAY8zE,UAC1B,MAAzB9zE,EAAY8zE,WAAqBryE,EAAAA,EAAAA,IAAiCzB,EAAY8zE,UAAW,sBAAsB,QAASl/E,EAE/HzB,KAAK4gF,QACA/zE,EAAY+zE,mBAAmB35E,KAAQ4F,EAAY+zE,QAC1B,MAAvB/zE,EAAY+zE,SAAmBtyE,EAAAA,EAAAA,IAAiCzB,EAAY+zE,QAAS,sBAAsB,QAASn/E,EAE3HzB,KAAKwhF,kBACD30E,EAAY20E,mBAItB50E,EAAgB,8CAAoD20E,GAK7D,MAAMrpF,GAab0H,YAAYiN,GAcV,GAbFA,EAAcA,GAAe,GACvB7M,KAAKyhF,kBACD50E,EAAY40E,kBAEhBzhF,KAAKiZ,cACApM,EAAYoM,yBAAyBhS,KAAQ4F,EAAYoM,cAC1B,MAA7BpM,EAAYoM,eAAyB3K,EAAAA,EAAAA,IAAiCzB,EAAYoM,cAAe,sBAAsB,QAASxX,EAEvIzB,KAAKkZ,YACArM,EAAYqM,uBAAuBjS,KAAQ4F,EAAYqM,YAC1B,MAA3BrM,EAAYqM,aAAuB5K,EAAAA,EAAAA,IAAiCzB,EAAYqM,YAAa,sBAAsB,QAASzX,EAEvIzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gCAAsC1U,GAK/C,MAAMza,GAUbmiB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uCAA6CnvB,GAKtD,MAAMkd,GAYbiF,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK0hF,oBACD70E,EAAY60E,oBAEpB1hF,KAAK2hF,sBAAmBlgF,EACpBoL,EAAY80E,iBAAkB,CAClC3hF,KAAK2hF,iBAAmB,GACxB,IAAK,IAAI/+E,EAAI,EAAGA,EAAIiK,EAAY80E,iBAAiB9+E,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAY80E,iBAAiB/+E,GACjC,GAAsD,MAAlDiK,EAAY80E,iBAAiB/+E,GAAG,eAElCwK,GADIA,EAAoBP,EAAY80E,iBAAiB/+E,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2hF,iBAAiB/+E,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY80E,iBAAiB/+E,UAG1F5C,KAAK2hF,iBAAiB/+E,GAAK,IAAIg/E,GAAqB/0E,EAAY80E,iBAAiB/+E,SAGrF5C,KAAK2hF,iBAAiB/+E,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4BjS,GAKrC,MAAMiD,GAkBbgC,YAAYiN,GA2BV,GA1BFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK6O,UACDhC,EAAYgC,UAEhB7O,KAAK6hF,+BACDh1E,EAAYg1E,+BAEhB7hF,KAAK8hF,gCACDj1E,EAAYi1E,gCAEhB9hF,KAAK+hF,sBACDl1E,EAAYk1E,sBAEhB/hF,KAAKgiF,kCACiD,MAAjDn1E,EAAYm1E,kCAA6Cv7E,SAASoG,EAAYm1E,kCAAmC,SAAMvgF,EAE5HzB,KAAKiiF,sCACDp1E,EAAYo1E,sCAEhBjiF,KAAKkiF,6CAC4D,MAA5Dr1E,EAAYq1E,6CAAwDz7E,SAASoG,EAAYq1E,6CAA8C,SAAMzgF,EAEtJzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mCAAyChP,GAKlD,MAAMG,GAcb6B,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK6O,UACDhC,EAAYgC,UAEhB7O,KAAKmiF,kBACDt1E,EAAYs1E,kBAEhBniF,KAAKoiF,iBACDv1E,EAAYu1E,iBAEpBpiF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kCAAwC7O,GAKjD,MAAMG,GAeb0B,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKqiF,cACDx1E,EAAYw1E,cAEhBriF,KAAKsiF,0BACDz1E,EAAYy1E,0BAEhBtiF,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKuiF,2BACD11E,EAAY01E,2BAEpBviF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgC1O,GAKzC,MAAMskF,GAYb5iF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKyiF,iBACD51E,EAAY41E,iBAEhBziF,KAAK0iF,iBACD71E,EAAY61E,iBAEhB1iF,KAAK2iF,yBACD91E,EAAY81E,0BAItB/1E,EAAgB,4BAAkC41E,GAK3C,MAAM7jF,GAUbiB,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4iF,gBACD/1E,EAAY+1E,iBAItBh2E,EAAgB,wCAA8CjO,GAKvD,MAAMkkF,GAebjjF,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK8wC,aACDjkC,EAAYikC,aAEhB9wC,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKgxC,WACDnkC,EAAYmkC,WAEhBhxC,KAAKoxC,sBACDvkC,EAAYukC,sBAEpBpxC,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBi2E,GAKjC,MAAM16G,GAYby3B,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKwgC,WACD3zB,EAAY2zB,WAEpBxgC,KAAK8iF,WAAQrhF,EACToL,EAAYi2E,MAAO,CACvB9iF,KAAK8iF,MAAQ,GACb,IAAK,IAAIlgF,EAAI,EAAGA,EAAIiK,EAAYi2E,MAAMjgF,OAAQD,IAAK,CACnD,GAA4B,MAAxBiK,EAAYi2E,MAAMlgF,GACtB,GAA2C,MAAvCiK,EAAYi2E,MAAMlgF,GAAG,eAEvBwK,GADIA,EAAoBP,EAAYi2E,MAAMlgF,GAAG,gBACvByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK8iF,MAAMlgF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYi2E,MAAMlgF,UAGpE5C,KAAK8iF,MAAMlgF,GAAK,IAAImgF,GAA8Bl2E,EAAYi2E,MAAMlgF,SAGxE5C,KAAK8iF,MAAMlgF,QAAKnB,GAMhB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,iCAAuCzkC,GAKhD,MAAMK,GAabo3B,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKgjF,oBACDn2E,EAAYm2E,oBAEhBhjF,KAAKwgC,WACD3zB,EAAY2zB,WAEhBxgC,KAAKk2B,OACDrpB,EAAYqpB,OAEpBl2B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCpkC,GAK5C,MAAMG,GAYbi3B,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK8iD,KACDj2C,EAAYi2C,KAEhB9iD,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyBjkC,GAKlC,MAAMs6G,GAabrjF,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4Bq2E,GAKrC,MAAMrsG,GAYbgpB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKkjF,6CAA0CzhF,EAC3CoL,EAAYq2E,wCAAyC,CACzDljF,KAAKkjF,wCAA0C,GAC/C,IAAK,IAAItgF,EAAI,EAAGA,EAAIiK,EAAYq2E,wCAAwCrgF,OAAQD,IAAK,CACrF,GAA8D,MAA1DiK,EAAYq2E,wCAAwCtgF,GACxD,GAA6E,MAAzEiK,EAAYq2E,wCAAwCtgF,GAAG,eAEzDwK,GADIA,EAAoBP,EAAYq2E,wCAAwCtgF,GAAG,gBACzDyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKkjF,wCAAwCtgF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYq2E,wCAAwCtgF,UAGxI5C,KAAKkjF,wCAAwCtgF,GAAK,IAAIugF,GAA2Ct2E,EAAYq2E,wCAAwCtgF,SAGzJ5C,KAAKkjF,wCAAwCtgF,QAAKnB,GAMlD,GADAzB,KAAKojF,8CAA2C3hF,EAC5CoL,EAAYu2E,yCAA0C,CAC1DpjF,KAAKojF,yCAA2C,GAChD,IAASxgF,EAAI,EAAGA,EAAIiK,EAAYu2E,yCAAyCvgF,OAAQD,IAAK,CACtF,GAA+D,MAA3DiK,EAAYu2E,yCAAyCxgF,GACzD,GAA8E,MAA1EiK,EAAYu2E,yCAAyCxgF,GAAG,eAE1DwK,GADIA,EAAoBP,EAAYu2E,yCAAyCxgF,GAAG,gBAC1DyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKojF,yCAAyCxgF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYu2E,yCAAyCxgF,UAG1I5C,KAAKojF,yCAAyCxgF,GAAK,IAAIygF,GAAkCx2E,EAAYu2E,yCAAyCxgF,SAGlJ5C,KAAKojF,yCAAyCxgF,QAAKnB,GAMnD,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,0CAAgDh2B,GAKzD,MAAM0sG,GAgBb1jF,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKqjD,gBAAa5hD,EACdoL,EAAYw2C,WAAY,CAC5BrjD,KAAKqjD,WAAa,GAClB,IAAK,IAAIzgD,EAAI,EAAGA,EAAIiK,EAAYw2C,WAAWxgD,OAAQD,IAClB,MAA7BiK,EAAYw2C,WAAWzgD,GACvB5C,KAAKqjD,WAAWzgD,GACZ6D,SAASoG,EAAYw2C,WAAWzgD,GAAI,IAE5C5C,KAAKqjD,WAAWzgD,QAAKnB,EAQrB,GAHIzB,KAAK0xE,qBACD7kE,EAAY6kE,qBAEU,MAA1B7kE,EAAY02E,WACZvjF,KAAKujF,gBAAa9hF,OACf,GAA6C,MAAzCoL,EAAY02E,WAAW,eAC9BvjF,KAAKujF,WAAa,IAAI1lC,GAAgBhxC,EAAY02E,gBAC/C,CACH,IAAIn2E,EAAoBP,EAAY02E,WAAW,eAC/Cn2E,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKujF,WAAa,IAAI32E,EAAiBQ,GAAWP,EAAY02E,aAKlEvjF,KAAK2xE,gCACD9kE,EAAY8kE,gCAEhB3xE,KAAK4xE,4BACD/kE,EAAY+kE,4BAEhB5xE,KAAKwjF,sBACD32E,EAAY22E,sBAEhBxjF,KAAK29B,eACD9wB,EAAY8wB,gBAItB/wB,EAAgB,yCAA+C02E,GAKxD,MAAMrkF,GAWbW,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKyjF,SACD52E,EAAY42E,SAEpBzjF,KAAK0jF,4BAAyBjiF,EAC1BoL,EAAY62E,uBAAwB,CACxC1jF,KAAK0jF,uBAAyB,GAC9B,IAAK,IAAI9gF,EAAI,EAAGA,EAAIiK,EAAY62E,uBAAuB7gF,OAAQD,IAC/D,GAA6C,MAAzCiK,EAAY62E,uBAAuB9gF,GACvC,GAA4D,MAAxDiK,EAAY62E,uBAAuB9gF,GAAG,eAAwB,CAChE,IAAIwK,EAAoBP,EAAY62E,uBAAuB9gF,GAAG,eAC9DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0jF,uBAAuB9gF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY62E,uBAAuB9gF,UAGtG5C,KAAK0jF,uBAAuB9gF,GAAK,IAAI8nB,EAA2B7d,EAAY62E,uBAAuB9gF,SAGvG5C,KAAK0jF,uBAAuB9gF,QAAKnB,IAOnCmL,EAAgB,oCAA0C3N,GAKnD,MAAMrhB,GAYbgiB,YAAYiN,GAUV,GATFA,EAAcA,GAAe,GACvB7M,KAAK9kB,cACD2xB,EAAY3xB,cAEhB8kB,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BhvB,GAKpC,MAAM8hB,GAabE,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKw6C,iBACD3tC,EAAY2tC,iBAEhBx6C,KAAK2jF,mBACD92E,EAAY82E,mBAEhB3jF,KAAKu6C,aACD1tC,EAAY0tC,aAEpBv6C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0BAAgClN,GAKzC,MAAMkkF,WACH7xE,EAUVnS,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0Bg3E,GAKnC,MAAMC,WACH9xE,EAWVnS,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2a,oBACD9N,EAAY8N,oBAEpB3a,KAAK,eAAiB,mEAIxB4M,EAAgB,sBAA4Bi3E,GAKrC,MAAM50D,GAebrvB,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK8jF,YACDj3E,EAAYi3E,YAEhB9jF,KAAKyuD,eACD5hD,EAAY4hD,eAEhBzuD,KAAK0uD,mBACD7hD,EAAY6hD,mBAEhB1uD,KAAKo3D,UACDvqD,EAAYuqD,UAEpBp3D,KAAK+jF,sBAAmBtiF,EACpBoL,EAAYk3E,iBAAkB,CAClC/jF,KAAK+jF,iBAAmB,GACxB,IAAK,IAAInhF,EAAI,EAAGA,EAAIiK,EAAYk3E,iBAAiBlhF,OAAQD,IAClB,MAAnCiK,EAAYk3E,iBAAiBnhF,GAC7B5C,KAAK+jF,iBAAiBnhF,GAClBiK,EAAYk3E,iBAAiBnhF,GAErC5C,KAAK+jF,iBAAiBnhF,QAAKnB,EAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BqiB,GAKpC,MAAM+0D,WACH71E,EAWVvO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2qB,MACD9d,EAAY8d,MAEpB3qB,KAAK,eAAiB,wEAIxB4M,EAAgB,2BAAiCo3E,GAK1C,MAAMC,WACH91E,EAYVvO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK8uB,cAC6B,MAA7BjiB,EAAYiiB,cAAyB5hB,WAAWL,EAAYiiB,oBAAiBrtB,EAElFzB,KAAKuV,aACD1I,EAAY0I,aAEpBvV,KAAK,eAAiB,yEAIxB4M,EAAgB,4BAAkCq3E,GAK3C,MAAMC,WACH/1E,EAWVvO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2qB,MACA9d,EAAY8d,iBAAiB1jB,KAAQ4F,EAAY8d,MAC1B,MAArB9d,EAAY8d,OAAiBrc,EAAAA,EAAAA,IAAiCzB,EAAY8d,MAAO,sBAAsB,QAASlpB,EAE3HzB,KAAK,eAAiB,+EAIxB4M,EAAgB,kCAAwCs3E,GAKjD,MAAMC,WACHh2E,EAYVvO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2qB,MACqB,MAArB9d,EAAY8d,MAAiBzd,WAAWL,EAAY8d,YAASlpB,EAElEzB,KAAKokF,WACDv3E,EAAYu3E,WAEpBpkF,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+Bu3E,GAKxC,MAAME,WACHl2E,EAYVvO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKokF,WACDv3E,EAAYu3E,WAEpBpkF,KAAK,eAAiB,oEAIxB4M,EAAgB,uBAA6By3E,GAKtC,MAAMC,WACHn2E,EAWVvO,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK2qB,WAAQlpB,EACToL,EAAY8d,MAAO,CACvB3qB,KAAK2qB,MAAQ,GACb,IAAK,IAAI/nB,EAAI,EAAGA,EAAIiK,EAAY8d,MAAM9nB,OAAQD,IAC9C,GAA4B,MAAxBiK,EAAY8d,MAAM/nB,GACtB,GAA2C,MAAvCiK,EAAY8d,MAAM/nB,GAAG,eAAwB,CAC/C,IAAIwK,EAAoBP,EAAY8d,MAAM/nB,GAAG,eAC7CwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK2qB,MAAM/nB,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8d,MAAM/nB,UAGpE5C,KAAK2qB,MAAM/nB,GAAK,IAAI5tB,GAAmB63B,EAAY8d,MAAM/nB,SAG7D5C,KAAK2qB,MAAM/nB,QAAKnB,EAKhBzB,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuC03E,GAKhD,MAAMC,WACHp2E,EAYVvO,YAAYiN,GAMV,GALFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK6uB,UACDhiB,EAAYgiB,UAEpB7uB,KAAKwkF,2BAAwB/iF,EACzBoL,EAAY23E,sBAAuB,CACvCxkF,KAAKwkF,sBAAwB,GAC7B,IAAK,IAAI5hF,EAAI,EAAGA,EAAIiK,EAAY23E,sBAAsB3hF,OAAQD,IAC9D,GAA4C,MAAxCiK,EAAY23E,sBAAsB5hF,GACtC,GAA2D,MAAvDiK,EAAY23E,sBAAsB5hF,GAAG,eAAwB,CAC/D,IAAIwK,EAAoBP,EAAY23E,sBAAsB5hF,GAAG,eAC7DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwkF,sBAAsB5hF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY23E,sBAAsB5hF,UAGpG5C,KAAKwkF,sBAAsB5hF,GAAK,IAAI4K,GAA0BX,EAAY23E,sBAAsB5hF,SAGpG5C,KAAKwkF,sBAAsB5hF,QAAKnB,EAKhCzB,KAAK,eAAiB,qEAIxB4M,EAAgB,wBAA8B23E,GAKvC,MAAM5yD,GAgCb/xB,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAK49E,OACD/wE,EAAY+wE,OAEhB59E,KAAKykF,eACD53E,EAAY43E,eAEe,MAA/B53E,EAAY63E,gBACZ1kF,KAAK0kF,qBAAkBjjF,OACpB,GAAkD,MAA9CoL,EAAY63E,gBAAgB,eACnC1kF,KAAK0kF,gBAAkB,IAAIC,GAAe93E,EAAY63E,qBACnD,CAEHt3E,GADIA,EAAoBP,EAAY63E,gBAAgB,gBAC9Br3E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0kF,gBAAkB,IAAI93E,EAAiBQ,GAAWP,EAAY63E,kBAK3E,GAAqC,MAAjC73E,EAAY+3E,kBACZ5kF,KAAK4kF,uBAAoBnjF,OACtB,GAAoD,MAAhDoL,EAAY+3E,kBAAkB,eACrC5kF,KAAK4kF,kBAAoB,IAAID,GAAe93E,EAAY+3E,uBACrD,CAEHx3E,GADIA,EAAoBP,EAAY+3E,kBAAkB,gBAChCv3E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4kF,kBAAoB,IAAIh4E,EAAiBQ,GAAWP,EAAY+3E,oBAc7E,GATI5kF,KAAK6kF,OACDh4E,EAAYg4E,OAEhB7kF,KAAK8kF,WACDj4E,EAAYi4E,WAEhB9kF,KAAK+kF,YACDl4E,EAAYk4E,YAEe,MAA/Bl4E,EAAYm4E,gBACZhlF,KAAKglF,qBAAkBvjF,OACpB,GAAkD,MAA9CoL,EAAYm4E,gBAAgB,eACnChlF,KAAKglF,gBAAkB,IAAIL,GAAe93E,EAAYm4E,qBACnD,CAEH53E,GADIA,EAAoBP,EAAYm4E,gBAAgB,gBAC9B33E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKglF,gBAAkB,IAAIp4E,EAAiBQ,GAAWP,EAAYm4E,kBAgD3E,GA3CIhlF,KAAKilF,SACDp4E,EAAYo4E,SAEhBjlF,KAAKklF,IACDr4E,EAAYq4E,IAEhBllF,KAAKmlF,QACDt4E,EAAYs4E,QAEhBnlF,KAAKolF,qBACDv4E,EAAYu4E,qBAEhBplF,KAAKg5E,UACDnsE,EAAYmsE,UAEhBh5E,KAAKqlF,gBACDx4E,EAAYw4E,gBAEhBrlF,KAAKslF,UACDz4E,EAAYy4E,UAEhBtlF,KAAKulF,SACD14E,EAAY04E,SAEhBvlF,KAAKwlF,uBACD34E,EAAY24E,uBAEhBxlF,KAAKylF,eACD54E,EAAY44E,eAEhBzlF,KAAK0lF,QACD74E,EAAY64E,QAEhB1lF,KAAK2lF,kBACD94E,EAAY84E,kBAEhB3lF,KAAK4lF,6BACD/4E,EAAY+4E,6BAEhB5lF,KAAK6lF,eACDh5E,EAAYg5E,eAEpB7lF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,sBAA4B+kB,GAKrC,MAAMgzD,GAab/kF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK8lF,EACiB,MAAjBj5E,EAAYi5E,EAAar/E,SAASoG,EAAYi5E,EAAG,SAAMrkF,EAE5DzB,KAAK+lF,EACiB,MAAjBl5E,EAAYk5E,EAAat/E,SAASoG,EAAYk5E,EAAG,SAAMtkF,EAE5DzB,KAAKgmF,EACiB,MAAjBn5E,EAAYm5E,EAAav/E,SAASoG,EAAYm5E,EAAG,SAAMvkF,EAE5DzB,KAAKimF,EACiB,MAAjBp5E,EAAYo5E,EAAax/E,SAASoG,EAAYo5E,EAAG,SAAMxkF,GAIlEmL,EAAgB,eAAqB+3E,GAK9B,MAAMhwD,GAeb/0B,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK2qB,MACqB,MAArB9d,EAAY8d,MAAiBzd,WAAWL,EAAY8d,YAASlpB,EAElEzB,KAAKkmF,YACDr5E,EAAYq5E,YAEhBlmF,KAAKmmF,SACDt5E,EAAYs5E,SAEhBnmF,KAAKomF,yBACDv5E,EAAYu5E,yBAEpBpmF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,eAAqB+nB,GAK9B,MAAM0xD,WACH1xD,GAUV/0B,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,0EAIxB4M,EAAgB,6BAAmCy5E,GAK5C,MAAMC,WACHD,GAWVzmF,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKumF,yBACD15E,EAAY05E,yBAEpBvmF,KAAK,eAAiB,0FAIxB4M,EAAgB,6CAAmD05E,GAK5D,MAAME,WACH7xD,GAsBV/0B,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKymF,mBACD55E,EAAY45E,mBAEhBzmF,KAAK0mF,UACyB,MAAzB75E,EAAY65E,UAAqBx5E,WAAWL,EAAY65E,gBAAajlF,EAE1EzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK2mF,gBAC+B,MAA/B95E,EAAY85E,gBAA2Bz5E,WAAWL,EAAY85E,sBAAmBllF,EAEtFzB,KAAK4mF,4BACD/5E,EAAY+5E,4BAEhB5mF,KAAK6mF,UACyB,MAAzBh6E,EAAYg6E,UAAqB35E,WAAWL,EAAYg6E,gBAAaplF,EAE1EzB,KAAK8mF,cACAj6E,EAAYi6E,yBAAyB7/E,KAAQ4F,EAAYi6E,cAC1B,MAA7Bj6E,EAAYi6E,eAAyBx4E,EAAAA,EAAAA,IAAiCzB,EAAYi6E,cAAe,sBAAsB,QAASrlF,EAEvIzB,KAAKw0D,eACA3nD,EAAY2nD,0BAA0BvtD,KAAQ4F,EAAY2nD,eAC1B,MAA9B3nD,EAAY2nD,gBAA0BlmD,EAAAA,EAAAA,IAAiCzB,EAAY2nD,eAAgB,sBAAsB,QAAS/yD,EAEzIzB,KAAK+mF,kBACiC,MAAjCl6E,EAAYk6E,kBAA6B75E,WAAWL,EAAYk6E,wBAAqBtlF,EAE1FzB,KAAK8+B,kBACiC,MAAjCjyB,EAAYiyB,kBAA6B5xB,WAAWL,EAAYiyB,wBAAqBr9B,EAE1FzB,KAAKgnF,gBAC+B,MAA/Bn6E,EAAYm6E,gBAA2B95E,WAAWL,EAAYm6E,sBAAmBvlF,EAEtFzB,KAAKinF,gBAC+B,MAA/Bp6E,EAAYo6E,gBAA2B/5E,WAAWL,EAAYo6E,sBAAmBxlF,EAE1FzB,KAAK,eAAiB,0EAIxB4M,EAAgB,6BAAmC45E,GAK5C,MAAMU,WACHvyD,GAYV/0B,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKojC,eACDv2B,EAAYu2B,eAEhBpjC,KAAKmnF,YACDt6E,EAAYs6E,YAEpBnnF,KAAK,eAAiB,2EAIxB4M,EAAgB,8BAAoCs6E,GAK7C,MAAME,WACHF,GAaVtnF,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKqnF,2BACDx6E,EAAYw6E,2BAEhBrnF,KAAKqjC,sBACDx2B,EAAYw2B,sBAEhBrjC,KAAKsnF,eAC8B,MAA9Bz6E,EAAYy6E,eAA0Bp6E,WAAWL,EAAYy6E,qBAAkB7lF,EAExFzB,KAAK,eAAiB,sFAIxB4M,EAAgB,yCAA+Cw6E,GAKxD,MAAMG,WACH5yD,GAUV/0B,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,gEAIxB4M,EAAgB,mBAAyB26E,GAKlC,MAAMC,WACH98D,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sFAIxB4M,EAAgB,yCAA+C46E,GAKxD,MAAMtsD,GAcbt7B,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKynF,eAC8B,MAA9B56E,EAAY46E,eAA0Bv6E,WAAWL,EAAY46E,qBAAkBhmF,EAEpFzB,KAAK0nF,eAC8B,MAA9B76E,EAAY66E,eAA0Bx6E,WAAWL,EAAY66E,qBAAkBjmF,EAEpFzB,KAAK2nF,0BACD96E,EAAY86E,0BAEhB3nF,KAAK4nF,iBACA/6E,EAAY+6E,4BAA4B3gF,KAAQ4F,EAAY+6E,iBAC1B,MAAhC/6E,EAAY+6E,kBAA4Bt5E,EAAAA,EAAAA,IAAiCzB,EAAY+6E,iBAAkB,sBAAsB,QAASnmF,EAE7IzB,KAAK8gD,OACDj0C,EAAYi0C,QAItBl0C,EAAgB,wBAA8BsuB,GAKvC,MAAM2sD,WACHxrE,GAWVzc,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK8nF,aACDj7E,EAAYi7E,aAEpB9nF,KAAK,eAAiB,6DAIxB4M,EAAgB,gBAAsBi7E,GAK/B,MAAM/rD,GAiBbl8B,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK+nF,KACDl7E,EAAYk7E,KAEhB/nF,KAAK2qB,MACqB,MAArB9d,EAAY8d,MAAiBzd,WAAWL,EAAY8d,YAASlpB,EAElEzB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAK46B,eAC8B,MAA9B/tB,EAAY+tB,eAA0B1tB,WAAWL,EAAY+tB,qBAAkBn5B,EAEpFzB,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy6B,cACD5tB,EAAY4tB,cAEpBz6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsBkvB,GAK/B,MAAM2hB,WACH/yB,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,qEAIxB4M,EAAgB,wBAA8B6wC,GAKvC,MAAM6zB,GAab1xE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKkiD,UACDr1C,EAAYq1C,UAEhBliD,KAAKgoF,aACDn7E,EAAYm7E,aAEhBhoF,KAAKo4E,iBACDvrE,EAAYurE,iBAEhBp4E,KAAKoiD,iBACDv1C,EAAYu1C,kBAItBx1C,EAAgB,mBAAyB0kE,GAKlC,MAAM2W,WACH9vH,GAUVynC,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+Bq7E,GAKxC,MAAMvvC,GAYb94C,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAK2wB,QACD9jB,EAAY8jB,QAEhB3wB,KAAKkoF,YACDr7E,EAAYq7E,aAItBt7E,EAAgB,kBAAwB8rC,GAKjC,MAAM9b,GAiBbh9B,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKmoF,aACDt7E,EAAYs7E,aAEhBnoF,KAAKooF,cACDv7E,EAAYu7E,cAEhBpoF,KAAKqoF,YACDx7E,EAAYw7E,YAEhBroF,KAAKsoF,YACDz7E,EAAYy7E,YAEhBtoF,KAAKuoF,WACD17E,EAAY07E,WAEhBvoF,KAAK6gC,aACDh0B,EAAYg0B,aAEhB7gC,KAAKwoF,qBACD37E,EAAY27E,qBAEhBxoF,KAAKyoF,gBACD57E,EAAY47E,iBAItB77E,EAAgB,mCAAyCgwB,GAKlD,MAAM8f,GAuBb98C,YAAYiN,GA0CV,GAzCFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK0oF,oBACD77E,EAAY67E,oBAEhB1oF,KAAK2oF,kBACD97E,EAAY87E,kBAEhB3oF,KAAK4oF,wBACD/7E,EAAY+7E,wBAEhB5oF,KAAK6oF,sBACDh8E,EAAYg8E,sBAEhB7oF,KAAK8oF,WACDj8E,EAAYi8E,WAEhB9oF,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAK+oF,OACsB,MAAtBl8E,EAAYk8E,OAAkB77E,WAAWL,EAAYk8E,aAAUtnF,EAEpEzB,KAAKgpF,UACDn8E,EAAYm8E,UAEhBhpF,KAAKipF,YACDp8E,EAAYo8E,YAEhBjpF,KAAKkpF,YAC2B,MAA3Br8E,EAAYq8E,YAAuBh8E,WAAWL,EAAYq8E,kBAAeznF,EAE9EzB,KAAKmpF,YAC2B,MAA3Bt8E,EAAYs8E,YAAuBj8E,WAAWL,EAAYs8E,kBAAe1nF,EAElFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmC8vC,GAK5C,MAAMI,GAebl9C,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKopF,mBACDv8E,EAAYu8E,mBAEhBppF,KAAKqpF,oBACDx8E,EAAYw8E,oBAEhBrpF,KAAKspF,iBACDz8E,EAAYy8E,iBAEhBtpF,KAAKupF,kBACD18E,EAAY08E,kBAEhBvpF,KAAK8iB,OACDjW,EAAYiW,OAEpB9iB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BkwC,GAKvC,MAAM5hC,GA2Bbtb,YAAYiN,GAwDV,GAvDFA,EAAcA,GAAe,GACvB7M,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAK46B,eAC8B,MAA9B/tB,EAAY+tB,eAA0B1tB,WAAWL,EAAY+tB,qBAAkBn5B,EAEpFzB,KAAKwpF,qBACoC,MAApC38E,EAAY28E,qBAAgC/iF,SAASoG,EAAY28E,qBAAsB,SAAM/nF,EAElGzB,KAAK2vB,kBACD9iB,EAAY8iB,kBAEhB3vB,KAAK6vD,gBACDhjD,EAAYgjD,gBAEhB7vD,KAAKypF,UACA58E,EAAY48E,qBAAqBxiF,KAAQ4F,EAAY48E,UAC1B,MAAzB58E,EAAY48E,WAAqBn7E,EAAAA,EAAAA,IAAiCzB,EAAY48E,UAAW,sBAAsB,QAAShoF,EAE/HzB,KAAK0pF,UACD78E,EAAY68E,UAEhB1pF,KAAKu0D,eACD1nD,EAAY0nD,eAEhBv0D,KAAKw0D,eACA3nD,EAAY2nD,0BAA0BvtD,KAAQ4F,EAAY2nD,eAC1B,MAA9B3nD,EAAY2nD,gBAA0BlmD,EAAAA,EAAAA,IAAiCzB,EAAY2nD,eAAgB,sBAAsB,QAAS/yD,EAEzIzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAK2zD,oBACmC,MAAnC9mD,EAAY8mD,oBAA+BltD,SAASoG,EAAY8mD,oBAAqB,SAAMlyD,EAEhGzB,KAAK2pF,oBACmC,MAAnC98E,EAAY88E,oBAA+BljF,SAASoG,EAAY88E,oBAAqB,SAAMloF,EAEhGzB,KAAKy0D,0BACyC,MAAzC5nD,EAAY4nD,0BAAqCvnD,WAAWL,EAAY4nD,gCAA6BhzD,EAE1GzB,KAAK+zD,cACDlnD,EAAYknD,cAEhB/zD,KAAK4pF,wBACD/8E,EAAY+8E,wBAEhB5pF,KAAK6pF,gBACDh9E,EAAYg9E,gBAEhB7pF,KAAK6zD,oBACDhnD,EAAYgnD,oBAEpB7zD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCsO,GAK3C,MAAMkjB,GAsBbx+B,YAAYiN,GAQV,GAPFA,EAAcA,GAAe,GACvB7M,KAAKi+B,eACDpxB,EAAYoxB,eAEhBj+B,KAAK8pF,YACDj9E,EAAYi9E,YAEa,MAA7Bj9E,EAAYk9E,cACZ/pF,KAAK+pF,mBAAgBtoF,OAClB,GAAgD,MAA5CoL,EAAYk9E,cAAc,eACjC/pF,KAAK+pF,cAAgB,IAAIC,GAAYn9E,EAAYk9E,mBAC9C,CAEH38E,GADIA,EAAoBP,EAAYk9E,cAAc,gBAC5B18E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+pF,cAAgB,IAAIn9E,EAAiBQ,GAAWP,EAAYk9E,gBA0BzE,GArBI/pF,KAAKiqF,cACAp9E,EAAYo9E,yBAAyBhjF,KAAQ4F,EAAYo9E,cAC1B,MAA7Bp9E,EAAYo9E,eAAyB37E,EAAAA,EAAAA,IAAiCzB,EAAYo9E,cAAe,sBAAsB,QAASxoF,EAEvIzB,KAAKwmB,OACD3Z,EAAY2Z,OAEhBxmB,KAAKkqF,gBACAr9E,EAAYq9E,2BAA2BjjF,KAAQ4F,EAAYq9E,gBAC1B,MAA/Br9E,EAAYq9E,iBAA2B57E,EAAAA,EAAAA,IAAiCzB,EAAYq9E,gBAAiB,sBAAsB,QAASzoF,EAE3IzB,KAAKmqF,sBACAt9E,EAAYs9E,iCAAiCljF,KAAQ4F,EAAYs9E,sBAC1B,MAArCt9E,EAAYs9E,uBAAiC77E,EAAAA,EAAAA,IAAiCzB,EAAYs9E,sBAAuB,sBAAsB,QAAS1oF,EAEvJzB,KAAKk+B,YACDrxB,EAAYqxB,YAEhBl+B,KAAKoqF,cACDv9E,EAAYu9E,cAEkB,MAAlCv9E,EAAYw9E,mBACZrqF,KAAKqqF,wBAAqB5oF,OACvB,GAAqD,MAAjDoL,EAAYw9E,mBAAmB,eACtCrqF,KAAKqqF,mBAAqB,IAAIt4E,EAAalF,EAAYw9E,wBACpD,CAEHj9E,GADIA,EAAoBP,EAAYw9E,mBAAmB,gBACjCh9E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqqF,mBAAqB,IAAIz9E,EAAiBQ,GAAWP,EAAYw9E,qBAK9E,GAAiC,MAA7Bx9E,EAAYy9E,cACZtqF,KAAKsqF,mBAAgB7oF,OAClB,GAAgD,MAA5CoL,EAAYy9E,cAAc,eACjCtqF,KAAKsqF,cAAgB,IAAIv4E,EAAalF,EAAYy9E,mBAC/C,CAEHl9E,GADIA,EAAoBP,EAAYy9E,cAAc,gBAC5Bj9E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsqF,cAAgB,IAAI19E,EAAiBQ,GAAWP,EAAYy9E,gBAMzE,GADAtqF,KAAKuqF,sBAAmB9oF,EACpBoL,EAAY09E,iBAAkB,CAClCvqF,KAAKuqF,iBAAmB,GACxB,IAAK,IAAI3nF,EAAI,EAAGA,EAAIiK,EAAY09E,iBAAiB1nF,OAAQD,IAAK,CAG5D,IAAIwK,EAFN,GAAuC,MAAnCP,EAAY09E,iBAAiB3nF,GACjC,GAAsD,MAAlDiK,EAAY09E,iBAAiB3nF,GAAG,eAElCwK,GADIA,EAAoBP,EAAY09E,iBAAiB3nF,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuqF,iBAAiB3nF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY09E,iBAAiB3nF,UAG1F5C,KAAKuqF,iBAAiB3nF,GAAK,IAAI4nF,GAAsB39E,EAAY09E,iBAAiB3nF,SAGtF5C,KAAKuqF,iBAAiB3nF,QAAKnB,GAKvBzB,KAAKyqF,eAC8B,MAA9B59E,EAAY49E,eAA0Bv9E,WAAWL,EAAY49E,qBAAkBhpF,GAI1FmL,EAAgB,kBAAwBwxB,GAKjC,MAAM4rD,GAWbpqF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK2qB,MACqB,MAArB9d,EAAY8d,MAAiBzd,WAAWL,EAAY8d,YAASlpB,EAElEzB,KAAK6gD,KACDh0C,EAAYg0C,MAItBj0C,EAAgB,YAAkBo9E,GAK3B,MAAMQ,GAYb5qF,YAAYiN,GAEV,GAA4B,OAD9BA,EAAcA,GAAe,IACX69E,SACZ1qF,KAAK0qF,cAAWjpF,OACb,GAA2C,MAAvCoL,EAAY69E,SAAS,eAC5B1qF,KAAK0qF,SAAW,IAAI34E,EAAalF,EAAY69E,cAC1C,CACH,IAAIt9E,EAAoBP,EAAY69E,SAAS,eAC7Ct9E,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0qF,SAAW,IAAI99E,EAAiBQ,GAAWP,EAAY69E,WAKhE1qF,KAAK2qF,SACA99E,EAAY89E,oBAAoB1jF,KAAQ4F,EAAY89E,SAC1B,MAAxB99E,EAAY89E,UAAoBr8E,EAAAA,EAAAA,IAAiCzB,EAAY89E,SAAU,sBAAsB,QAASlpF,EAE7HzB,KAAKgxE,SACDnkE,EAAYmkE,UAItBpkE,EAAgB,sBAA4B49E,GAKrC,MAAM1qD,GAablgC,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+b,gBACDlP,EAAYkP,gBAEhB/b,KAAK8b,QACuB,MAAvBjP,EAAYiP,QAAmBrV,SAASoG,EAAYiP,QAAS,SAAMra,EAExEzB,KAAKq8E,MACDxvE,EAAYwvE,MAEpBr8E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,cAAoBkzB,GAK7B,MAAMS,GAcb3gC,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAK2vD,OACD9iD,EAAY8iD,OAEhB3vD,KAAK8iD,KACDj2C,EAAYi2C,KAEpB9iD,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB2zB,GAKlC,MAAMmF,GAmBb9lC,YAAYiN,GA8BV,GA7BFA,EAAcA,GAAe,GACvB7M,KAAK4qF,0BACD/9E,EAAY+9E,0BAEhB5qF,KAAKm1B,WACDtoB,EAAYsoB,WAEhBn1B,KAAK6qF,gBACDh+E,EAAYg+E,gBAEhB7qF,KAAK8qF,QACDj+E,EAAYi+E,QAEhB9qF,KAAK+qF,OACDl+E,EAAYk+E,OAEhB/qF,KAAKgrF,SACDn+E,EAAYm+E,SAEhBhrF,KAAKirF,QACDp+E,EAAYo+E,QAEhBjrF,KAAKkrF,eACDr+E,EAAYq+E,eAEhBlrF,KAAKmrF,UACDt+E,EAAYs+E,UAEpBnrF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiC84B,GAK1C,MAAM2H,GAabztC,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKorF,8BAA2B3pF,EAC5BoL,EAAYu+E,yBAA0B,CAC1CprF,KAAKorF,yBAA2B,GAChC,IAAK,IAAIxoF,EAAI,EAAGA,EAAIiK,EAAYu+E,yBAAyBvoF,OAAQD,IAAK,CACtE,GAA+C,MAA3CiK,EAAYu+E,yBAAyBxoF,GACzC,GAA8D,MAA1DiK,EAAYu+E,yBAAyBxoF,GAAG,eAE1CwK,GADIA,EAAoBP,EAAYu+E,yBAAyBxoF,GAAG,gBAC1CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKorF,yBAAyBxoF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYu+E,yBAAyBxoF,UAG1G5C,KAAKorF,yBAAyBxoF,GAAK,IAAIyoF,GAA2Bx+E,EAAYu+E,yBAAyBxoF,SAG3G5C,KAAKorF,yBAAyBxoF,QAAKnB,GAMnC,GADAzB,KAAKsrF,2BAAwB7pF,EACzBoL,EAAYy+E,sBAAuB,CACvCtrF,KAAKsrF,sBAAwB,GAC7B,IAAS1oF,EAAI,EAAGA,EAAIiK,EAAYy+E,sBAAsBzoF,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAYy+E,sBAAsB1oF,GACtC,GAA2D,MAAvDiK,EAAYy+E,sBAAsB1oF,GAAG,eAEvCwK,GADIA,EAAoBP,EAAYy+E,sBAAsB1oF,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsrF,sBAAsB1oF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYy+E,sBAAsB1oF,UAGpG5C,KAAKsrF,sBAAsB1oF,GAAK,IAAIyoF,GAA2Bx+E,EAAYy+E,sBAAsB1oF,SAGrG5C,KAAKsrF,sBAAsB1oF,QAAKnB,GAKhC,GAAuC,MAAnCoL,EAAY0+E,oBACZvrF,KAAKurF,yBAAsB9pF,OACxB,GAAsD,MAAlDoL,EAAY0+E,oBAAoB,eACvCvrF,KAAKurF,oBAAsB,IAAIF,GAA2Bx+E,EAAY0+E,yBACnE,CAEHn+E,GADIA,EAAoBP,EAAY0+E,oBAAoB,gBAClCl+E,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKurF,oBAAsB,IAAI3+E,EAAiBQ,GAAWP,EAAY0+E,sBAM/E,GADAvrF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,4BAAkCygC,GAK3C,MAAMg+C,GAgBbzrF,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKwrF,wBACuC,MAAvC3+E,EAAY2+E,wBAAmC/kF,SAASoG,EAAY2+E,wBAAyB,SAAM/pF,EAExGzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKy/D,WACD5yD,EAAY4yD,WAEhBz/D,KAAKyrF,UACD5+E,EAAY4+E,UAEhBzrF,KAAK0rF,KACD7+E,EAAY6+E,KAEpB1rF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2BAAiCy+E,GAK1C,MAAM3wC,GAiBb96C,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2rF,YACD9+E,EAAY8+E,YAEhB3rF,KAAK23B,SACwB,MAAxB9qB,EAAY8qB,SAAoBlxB,SAASoG,EAAY8qB,SAAU,SAAMl2B,EAE1EzB,KAAK4rF,mBACD/+E,EAAY++E,mBAEhB5rF,KAAK6rF,gBACDh/E,EAAYg/E,gBAEhB7rF,KAAK8zE,kBACDjnE,EAAYinE,kBAEhB9zE,KAAK8rF,YACDj/E,EAAYi/E,YAEpB9rF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,aAAmB8tC,GAK5B,MAAM4K,WACHwI,GAWVluD,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKwuD,mBACD3hD,EAAY2hD,mBAEpBxuD,KAAK,eAAiB,uEAIxB4M,EAAgB,0BAAgC04C,GAKzC,MAAMgC,GAuBb1nD,YAAYiN,GA0CV,GAzCFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKygD,SACD5zC,EAAY4zC,SAEhBzgD,KAAK2+B,YACD9xB,EAAY8xB,YAEhB3+B,KAAKopD,qBACoC,MAApCv8C,EAAYu8C,qBAAgCl8C,WAAWL,EAAYu8C,2BAAwB3nD,EAEhGzB,KAAK6mB,gBAC+B,MAA/Bha,EAAYga,gBAA2B3Z,WAAWL,EAAYga,sBAAmBplB,EAEtFzB,KAAK+rF,iBACgC,MAAhCl/E,EAAYk/E,iBAA4B7+E,WAAWL,EAAYk/E,uBAAoBtqF,EAExFzB,KAAKqxB,OACDxkB,EAAYwkB,OAEhBrxB,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKshD,aACDz0C,EAAYy0C,aAEhBthD,KAAKuhD,cACD10C,EAAY00C,cAEhBvhD,KAAKwhD,cACD30C,EAAY20C,cAEhBxhD,KAAK2mD,eACD95C,EAAY85C,eAEhB3mD,KAAKsoB,QACDzb,EAAYyb,QAEpBtoB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8BAAoC06C,GAK7C,MAAMyC,GAoBbnqD,YAAYiN,GAiCV,GAhCFA,EAAcA,GAAe,GACvB7M,KAAK4pB,wBACD/c,EAAY+c,wBAEhB5pB,KAAKwqD,iBACD39C,EAAY29C,iBAEhBxqD,KAAKgsF,qBACoC,MAApCn/E,EAAYm/E,qBAAgCvlF,SAASoG,EAAYm/E,qBAAsB,SAAMvqF,EAElGzB,KAAKisF,oBACmC,MAAnCp/E,EAAYo/E,oBAA+BxlF,SAASoG,EAAYo/E,oBAAqB,SAAMxqF,EAEhGzB,KAAK8xB,OACDjlB,EAAYilB,OAEhB9xB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKi0B,aACDpnB,EAAYonB,aAEhBj0B,KAAKgZ,YACDnM,EAAYmM,YAEhBhZ,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKmhB,WACDtU,EAAYsU,WAEpBnhB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6CAAmDm9C,GAK5D,MAAMuL,GAcb11D,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAKixB,qBACDpkB,EAAYokB,qBAEhBjxB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAEhFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8B0oD,GAKvC,MAAMgH,GAab18D,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKksF,cAC6B,MAA7Br/E,EAAYq/E,cAAyBzlF,SAASoG,EAAYq/E,cAAe,SAAMzqF,EAEpFzB,KAAKic,QACuB,MAAvBpP,EAAYoP,QAAmBxV,SAASoG,EAAYoP,QAAS,SAAMxa,EAExEzB,KAAKmsF,qBACDt/E,EAAYs/E,qBAEpBnsF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4B0vD,GAKrC,MAAMW,GAmBbr9D,YAAYiN,GA2BV,GA1BFA,EAAcA,GAAe,GACvB7M,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAKosF,wBACuC,MAAvCv/E,EAAYu/E,wBAAmCl/E,WAAWL,EAAYu/E,8BAA2B3qF,EAEtGzB,KAAKqsF,4BAC2C,MAA3Cx/E,EAAYw/E,4BAAuCn/E,WAAWL,EAAYw/E,kCAA+B5qF,EAE9GzB,KAAK68D,gBACDhwD,EAAYgwD,gBAEhB78D,KAAKssF,cACDz/E,EAAYy/E,cAEhBtsF,KAAKg5B,aACDnsB,EAAYmsB,aAEhBh5B,KAAKusF,cACD1/E,EAAY0/E,cAEpBvsF,KAAK88D,yBAAsBr7D,EACvBoL,EAAYiwD,oBAAqB,CACrC98D,KAAK88D,oBAAsB,GAC3B,IAAK,IAAIl6D,EAAI,EAAGA,EAAIiK,EAAYiwD,oBAAoBj6D,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAYiwD,oBAAoBl6D,GACpC,GAAyD,MAArDiK,EAAYiwD,oBAAoBl6D,GAAG,eAErCwK,GADIA,EAAoBP,EAAYiwD,oBAAoBl6D,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK88D,oBAAoBl6D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYiwD,oBAAoBl6D,UAGhG5C,KAAK88D,oBAAoBl6D,GAAK,IAAIm6D,GAAwBlwD,EAAYiwD,oBAAoBl6D,SAG9F5C,KAAK88D,oBAAoBl6D,QAAKnB,GAM9B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwBqwD,GAKjC,MAAMF,GAebn9D,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKwsF,KACD3/E,EAAY2/E,KAEhBxsF,KAAK4hB,SACD/U,EAAY+U,SAEhB5hB,KAAKysF,mBACkC,MAAlC5/E,EAAY4/E,mBAA8Bv/E,WAAWL,EAAY4/E,yBAAsBhrF,EAE5FzB,KAAK0sF,iBACD7/E,EAAY6/E,iBAEhB1sF,KAAK2sF,eAC8B,MAA9B9/E,EAAY8/E,eAA0Bz/E,WAAWL,EAAY8/E,qBAAkBlrF,EAExFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BmwD,GAKvC,MAAMoE,GAabvhE,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK4sF,aACD//E,EAAY+/E,aAEhB5sF,KAAK6sF,OACDhgF,EAAYggF,OAEhB7sF,KAAK8sF,SACDjgF,EAAYigF,SAEpB9sF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0Bu0D,GAKnC,MAAME,GAcbzhE,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAKg5E,UACDnsE,EAAYmsE,UAEhBh5E,KAAKqlF,gBACDx4E,EAAYw4E,gBAEhBrlF,KAAK6sF,OACDhgF,EAAYggF,OAEhB7sF,KAAK8sF,SACDjgF,EAAYigF,SAEpB9sF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,eAAqBy0D,GAK9B,MAAME,GAab3hE,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK+sF,eAC8B,MAA9BlgF,EAAYkgF,eAA0BtmF,SAASoG,EAAYkgF,eAAgB,SAAMtrF,EAEtFzB,KAAK6sF,OACDhgF,EAAYggF,OAEhB7sF,KAAK8sF,SACDjgF,EAAYigF,SAEpB9sF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gBAAsB20D,GAK/B,MAAMW,GA2CbtiE,YAAYiN,GAsGV,GArGFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAK0iB,YACD7V,EAAY6V,YAEhB1iB,KAAKy4D,kBACD5rD,EAAY4rD,kBAEhBz4D,KAAKgtF,oBACDngF,EAAYmgF,oBAEhBhtF,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAExEzB,KAAK6jB,MACqB,MAArBhX,EAAYgX,MAAiB3W,WAAWL,EAAYgX,YAASpiB,EAElEzB,KAAK2mF,gBAC+B,MAA/B95E,EAAY85E,gBAA2Bz5E,WAAWL,EAAY85E,sBAAmBllF,EAEtFzB,KAAK4P,eAC8B,MAA9B/C,EAAY+C,eAA0B1C,WAAWL,EAAY+C,qBAAkBnO,EAEpFzB,KAAK8wB,QACDjkB,EAAYikB,QAEhB9wB,KAAKmb,UACyB,MAAzBtO,EAAYsO,UAAqBjO,WAAWL,EAAYsO,gBAAa1Z,EAE1EzB,KAAKitF,KACDpgF,EAAYogF,KAEhBjtF,KAAKktF,UACDrgF,EAAYqgF,UAEhBltF,KAAKmtF,SACDtgF,EAAYsgF,SAEhBntF,KAAKm/D,QACDtyD,EAAYsyD,QAEhBn/D,KAAKq/D,OACDxyD,EAAYwyD,OAEhBr/D,KAAKo/D,QACDvyD,EAAYuyD,QAEhBp/D,KAAKqhD,SACDx0C,EAAYw0C,SAEhBrhD,KAAKotF,UACDvgF,EAAYugF,UAEhBptF,KAAKqtF,SACDxgF,EAAYwgF,SAEhBrtF,KAAKstF,UACDzgF,EAAYygF,UAEhBttF,KAAKutF,WACD1gF,EAAY0gF,WAEhBvtF,KAAKwW,cACD3J,EAAY2J,cAEhBxW,KAAKwtF,aACD3gF,EAAY2gF,aAEhBxtF,KAAKytF,YAC2B,MAA3B5gF,EAAY4gF,YAAuBvgF,WAAWL,EAAY4gF,kBAAehsF,EAE9EzB,KAAKsc,cAC6B,MAA7BzP,EAAYyP,cAAyBpP,WAAWL,EAAYyP,oBAAiB7a,EAElFzB,KAAKg7C,wBACuC,MAAvCnuC,EAAYmuC,wBAAmC9tC,WAAWL,EAAYmuC,8BAA2Bv5C,EAEtGzB,KAAK6a,aAC4B,MAA5BhO,EAAYgO,aAAwB3N,WAAWL,EAAYgO,mBAAgBpZ,EAEhFzB,KAAKi7C,iBACgC,MAAhCpuC,EAAYouC,iBAA4B/tC,WAAWL,EAAYouC,uBAAoBx5C,EAExFzB,KAAKs8C,2BAC0C,MAA1CzvC,EAAYyvC,2BAAsCpvC,WAAWL,EAAYyvC,iCAA8B76C,EAE5GzB,KAAKmyB,6BAC4C,MAA5CtlB,EAAYslB,6BAAwCjlB,WAAWL,EAAYslB,mCAAgC1wB,EAEhHzB,KAAKoyB,yBACwC,MAAxCvlB,EAAYulB,yBAAoCllB,WAAWL,EAAYulB,+BAA4B3wB,EAE5GzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4Bs1D,GAKrC,MAAMuD,GAWb7lE,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK0tF,aAAUjsF,EACXoL,EAAY6gF,QAAS,CACzB1tF,KAAK0tF,QAAU,GACf,IAAK,IAAI9qF,EAAI,EAAGA,EAAIiK,EAAY6gF,QAAQ7qF,OAAQD,IAAK,CACrD,GAA8B,MAA1BiK,EAAY6gF,QAAQ9qF,GACxB,GAA6C,MAAzCiK,EAAY6gF,QAAQ9qF,GAAG,eAEzBwK,GADIA,EAAoBP,EAAY6gF,QAAQ9qF,GAAG,gBACzByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK0tF,QAAQ9qF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6gF,QAAQ9qF,UAGxE5C,KAAK0tF,QAAQ9qF,GAAK,IAAI8K,GAAsBb,EAAY6gF,QAAQ9qF,SAGpE5C,KAAK0tF,QAAQ9qF,QAAKnB,GAMlB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,eAAqB64D,GAK9B,MAAMkoB,WACH9kB,GAaVjpE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK4tF,cACD/gF,EAAY+gF,cAEhB5tF,KAAK6tF,aACDhhF,EAAYghF,aAEhB7tF,KAAK8tF,aACDjhF,EAAYihF,aAEpB9tF,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0B+gF,GAKnC,MAAMI,WACHllB,GAeVjpE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKguF,mBACDnhF,EAAYmhF,mBAEhBhuF,KAAKqmB,MACDxZ,EAAYwZ,MAEhBrmB,KAAKiuF,YACDphF,EAAYohF,YAEhBjuF,KAAKkuF,OACDrhF,EAAYqhF,OAEhBluF,KAAK2oE,SACD97D,EAAY87D,SAEpB3oE,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+BmhF,GAKxC,MAAMrkB,GAWb9pE,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKmuF,YACDthF,EAAYshF,aAItBvhF,EAAgB,qBAA2B88D,GAKpC,MAAM0kB,WACHnlB,GAkBVrpE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKquF,WACDxhF,EAAYwhF,WAEhBruF,KAAKsuF,aACDzhF,EAAYyhF,aAEhBtuF,KAAKupE,YACD18D,EAAY08D,YAEhBvpE,KAAKwpE,YACD38D,EAAY28D,YAEhBxpE,KAAKuuF,eACD1hF,EAAY0hF,eAEhBvuF,KAAKmuF,YACDthF,EAAYshF,YAEhBnuF,KAAK2pE,QACD98D,EAAY88D,QAEpB3pE,KAAK,eAAiB,qEAIxB4M,EAAgB,wBAA8BwhF,GAKvC,MAAMI,WACH/lB,GAgBV7oE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKkpE,OACDr8D,EAAYq8D,OAEhBlpE,KAAKmpE,aACDt8D,EAAYs8D,aAEhBnpE,KAAKyuF,eACD5hF,EAAY4hF,eAEhBzuF,KAAKupE,YACD18D,EAAY08D,YAEhBvpE,KAAK8iD,KACDj2C,EAAYi2C,KAEhB9iD,KAAKo/C,MACDvyC,EAAYuyC,MAEpBp/C,KAAK,eAAiB,iEAIxB4M,EAAgB,oBAA0B4hF,GAKnC,MAAME,WACHjmB,GAaV7oE,YAAYiN,GASV,GARFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK6tF,aACDhhF,EAAYghF,aAEhB7tF,KAAK8tF,aACDjhF,EAAYihF,aAEpB9tF,KAAK2uF,oBAAiBltF,EAClBoL,EAAY8hF,eAAgB,CAChC3uF,KAAK2uF,eAAiB,GACtB,IAAK,IAAI/rF,EAAI,EAAGA,EAAIiK,EAAY8hF,eAAe9rF,OAAQD,IAClB,MAAjCiK,EAAY8hF,eAAe/rF,GAC3B5C,KAAK2uF,eAAe/rF,GAChBiK,EAAY8hF,eAAe/rF,GAEnC5C,KAAK2uF,eAAe/rF,QAAKnB,EAKzBzB,KAAK,eAAiB,qEAIxB4M,EAAgB,wBAA8B8hF,GAKvC,MAAME,WACHnmB,GAYV7oE,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKoP,QACDvC,EAAYuC,QAEpBpP,KAAK,eAAiB,uEAIxB4M,EAAgB,0BAAgCgiF,GAKzC,MAAMhnB,GAWbhoE,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK6uF,aACDhiF,EAAYgiF,aAEpB7uF,KAAK8uF,kBAAertF,EAChBoL,EAAYiiF,aAAc,CAC9B9uF,KAAK8uF,aAAe,GACpB,IAAK,IAAIlsF,EAAI,EAAGA,EAAIiK,EAAYiiF,aAAajsF,OAAQD,IAClB,MAA/BiK,EAAYiiF,aAAalsF,GACzB5C,KAAK8uF,aAAalsF,GACdiK,EAAYiiF,aAAalsF,GAEjC5C,KAAK8uF,aAAalsF,QAAKnB,IAOzBmL,EAAgB,qBAA2Bg7D,GAKpC,MAAME,GAgBbloE,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+uF,WACDliF,EAAYkiF,WAEhB/uF,KAAKgvF,YACDniF,EAAYmiF,YAEpBhvF,KAAKivF,gBAAaxtF,EACdoL,EAAYoiF,WAAY,CAC5BjvF,KAAKivF,WAAa,GAClB,IAAK,IAAIrsF,EAAI,EAAGA,EAAIiK,EAAYoiF,WAAWpsF,OAAQD,IAAK,CACxD,GAAiC,MAA7BiK,EAAYoiF,WAAWrsF,GAC3B,GAAgD,MAA5CiK,EAAYoiF,WAAWrsF,GAAG,eAE5BwK,GADIA,EAAoBP,EAAYoiF,WAAWrsF,GAAG,gBAC5ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKivF,WAAWrsF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYoiF,WAAWrsF,UAG9E5C,KAAKivF,WAAWrsF,GAAK,IAAImlE,GAAkBl7D,EAAYoiF,WAAWrsF,SAGtE5C,KAAKivF,WAAWrsF,QAAKnB,GAMrB,GADAzB,KAAKkvF,UAAOztF,EACRoL,EAAYqiF,KAAM,CACtBlvF,KAAKkvF,KAAO,GACZ,IAAStsF,EAAI,EAAGA,EAAIiK,EAAYqiF,KAAKrsF,OAAQD,IAClB,MAAvBiK,EAAYqiF,KAAKtsF,GACjB5C,KAAKkvF,KAAKtsF,GACNiK,EAAYqiF,KAAKtsF,GAEzB5C,KAAKkvF,KAAKtsF,QAAKnB,EASf,GAJIzB,KAAKmvF,SACDtiF,EAAYsiF,SAEpBnvF,KAAKovF,iBAAc3tF,EACfoL,EAAYuiF,YAAa,CAC7BpvF,KAAKovF,YAAc,GACnB,IAASxsF,EAAI,EAAGA,EAAIiK,EAAYuiF,YAAYvsF,OAAQD,IAClB,MAA9BiK,EAAYuiF,YAAYxsF,GACxB5C,KAAKovF,YAAYxsF,GACbiK,EAAYuiF,YAAYxsF,GAEhC5C,KAAKovF,YAAYxsF,QAAKnB,EAMtB,GADAzB,KAAKqvF,WAAQ5tF,EACToL,EAAYwiF,MAAO,CACvBrvF,KAAKqvF,MAAQ,GACb,IAASzsF,EAAI,EAAGA,EAAIiK,EAAYwiF,MAAMxsF,OAAQD,IAAK,CAGjD,IAAIwK,EAFN,GAA4B,MAAxBP,EAAYwiF,MAAMzsF,GACtB,GAA2C,MAAvCiK,EAAYwiF,MAAMzsF,GAAG,eAEvBwK,GADIA,EAAoBP,EAAYwiF,MAAMzsF,GAAG,gBACvByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKqvF,MAAMzsF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwiF,MAAMzsF,UAGpE5C,KAAKqvF,MAAMzsF,GAAK,IAAIolE,GAA2Bn7D,EAAYwiF,MAAMzsF,SAGrE5C,KAAKqvF,MAAMzsF,QAAKnB,KAOlBmL,EAAgB,2BAAiCk7D,GAK1C,MAAMoC,GAebtqE,YAAYiN,GAkBV,GAjBFA,EAAcA,GAAe,GACvB7M,KAAKsvF,OACDziF,EAAYyiF,OAEhBtvF,KAAKuvF,SACD1iF,EAAY0iF,SAEhBvvF,KAAKwvF,cACD3iF,EAAY2iF,cAEhBxvF,KAAKyvF,YACD5iF,EAAY4iF,YAEhBzvF,KAAKqnE,SACDx6D,EAAYw6D,SAEpBrnE,KAAK4oE,iBAAcnnE,EACfoL,EAAY+7D,YAAa,CAC7B5oE,KAAK4oE,YAAc,GACnB,IAAK,IAAIhmE,EAAI,EAAGA,EAAIiK,EAAY+7D,YAAY/lE,OAAQD,IACpD,GAAkC,MAA9BiK,EAAY+7D,YAAYhmE,GAC5B,GAAiD,MAA7CiK,EAAY+7D,YAAYhmE,GAAG,eAAwB,CACrD,IAAIwK,EAAoBP,EAAY+7D,YAAYhmE,GAAG,eACnDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK4oE,YAAYhmE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+7D,YAAYhmE,UAGhF5C,KAAK4oE,YAAYhmE,GAAK,IAAIimE,GAAgBh8D,EAAY+7D,YAAYhmE,SAGtE5C,KAAK4oE,YAAYhmE,QAAKnB,IAOxBmL,EAAgB,iBAAuBs9D,GAKhC,MAAMwlB,WACHhlE,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,mFAIxB4M,EAAgB,sCAA4C8iF,GAKrD,MAAMnkB,GAcb3rE,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK2vF,iBACgC,MAAhC9iF,EAAY8iF,iBAA4BziF,WAAWL,EAAY8iF,uBAAoBluF,EAExFzB,KAAK4vF,iBACgC,MAAhC/iF,EAAY+iF,iBAA4B1iF,WAAWL,EAAY+iF,uBAAoBnuF,EAExFzB,KAAK6vF,WACDhjF,EAAYgjF,WAEhB7vF,KAAKy6B,cACD5tB,EAAY4tB,cAEpBz6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2CAAiD2+D,GAK1D,MAAME,GAcb7rE,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK8rE,gBAC+B,MAA/Bj/D,EAAYi/D,gBAA2B5+D,WAAWL,EAAYi/D,sBAAmBrqE,EAEtFzB,KAAK8vF,QACDjjF,EAAYijF,QAEhB9vF,KAAK6vF,WACDhjF,EAAYgjF,WAEhB7vF,KAAKy6B,cACD5tB,EAAY4tB,cAEpBz6B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,0CAAgD6+D,GAKzD,MAAMskB,WACHrlE,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+BmjF,GAKxC,MAAMC,GAWbpwF,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAK8xB,OACDjlB,EAAYilB,OAEpB9xB,KAAKiwF,wBAAqBxuF,EACtBoL,EAAYojF,mBAAoB,CACpCjwF,KAAKiwF,mBAAqB,GAC1B,IAAK,IAAIrtF,EAAI,EAAGA,EAAIiK,EAAYojF,mBAAmBptF,OAAQD,IAC3D,GAAyC,MAArCiK,EAAYojF,mBAAmBrtF,GACnC,GAAwD,MAApDiK,EAAYojF,mBAAmBrtF,GAAG,eAAwB,CAC5D,IAAIwK,EAAoBP,EAAYojF,mBAAmBrtF,GAAG,eAC1DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKiwF,mBAAmBrtF,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYojF,mBAAmBrtF,UAG9F5C,KAAKiwF,mBAAmBrtF,GAAK,IAAIstF,GAA2BrjF,EAAYojF,mBAAmBrtF,SAG/F5C,KAAKiwF,mBAAmBrtF,QAAKnB,IAO/BmL,EAAgB,0BAAgCojF,GAKzC,MAAMj2E,WACHnM,GAeVhO,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKy6B,cACD5tB,EAAY4tB,cAEhBz6B,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAE5EzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAK2b,UACD9O,EAAY8O,UAEhB3b,KAAKgS,QACDnF,EAAYmF,QAEpBhS,KAAK,eAAiB,8EAIxB4M,EAAgB,iCAAuCmN,GAKhD,MAAM5K,GAWbvP,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKmwF,MACDtjF,EAAYsjF,MAEhBnwF,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,GAIhFmL,EAAgB,iBAAuBuC,GAKhC,MAAMI,GAab3P,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKowF,OACDvjF,EAAYujF,OAEhBpwF,KAAKuxC,KACD1kC,EAAY0kC,KAEhBvxC,KAAKqwF,gBACDxjF,EAAYwjF,gBAEpBrwF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,YAAkB2C,GAK3B,MAAMW,GAiBbtQ,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKg2B,OACsB,MAAtBnpB,EAAYmpB,OAAkB9oB,WAAWL,EAAYmpB,aAAUv0B,EAEpEzB,KAAK6vD,gBACDhjD,EAAYgjD,gBAEhB7vD,KAAKoP,QACDvC,EAAYuC,QAEhBpP,KAAK03B,YACD7qB,EAAY6qB,YAEhB13B,KAAK23B,SACD9qB,EAAY8qB,SAEhB33B,KAAK43B,MACD/qB,EAAY+qB,MAEhB53B,KAAK63B,uBACDhrB,EAAYgrB,uBAEpB73B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,gCAAsCsD,GAK/C,MAAMuH,GAkBb7X,YAAYiN,GAEV,GAAkC,OADpCA,EAAcA,GAAe,IACXkwB,eACZ/8B,KAAK+8B,oBAAiBt7B,OACnB,GAAiD,MAA7CoL,EAAYkwB,eAAe,eAClC/8B,KAAK+8B,eAAiB,IAAIN,GAA2B5vB,EAAYkwB,oBAC9D,CAEH3vB,GADIA,EAAoBP,EAAYkwB,eAAe,gBAC7B1vB,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+8B,eAAiB,IAAInwB,EAAiBQ,GAAWP,EAAYkwB,iBAwB1E,GAnBI/8B,KAAKswF,MACDzjF,EAAYyjF,MAEhBtwF,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKsuB,QACDzhB,EAAYyhB,QAEhBtuB,KAAKwuB,cACD3hB,EAAY2hB,cAEhBxuB,KAAK08B,UACyB,MAAzB7vB,EAAY6vB,UAAqBj2B,SAASoG,EAAY6vB,UAAW,SAAMj7B,EAEhFzB,KAAKuN,sBAAmB9L,EACpBoL,EAAYU,iBAAkB,CAClCvN,KAAKuN,iBAAmB,GACxB,IAAK,IAAI3K,EAAI,EAAGA,EAAIiK,EAAYU,iBAAiB1K,OAAQD,IAAK,CAC9D,GAAuC,MAAnCiK,EAAYU,iBAAiB3K,GACjC,GAAsD,MAAlDiK,EAAYU,iBAAiB3K,GAAG,eAElCwK,GADIA,EAAoBP,EAAYU,iBAAiB3K,GAAG,gBAClCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKuN,iBAAiB3K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYU,iBAAiB3K,UAG1F5C,KAAKuN,iBAAiB3K,GAAK,IAAI4K,GAA0BX,EAAYU,iBAAiB3K,SAG1F5C,KAAKuN,iBAAiB3K,QAAKnB,GAM3B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,uBAA6B6K,GAKtC,MAAMM,GAyBbnY,YAAYiN,GAgDV,GA/CFA,EAAcA,GAAe,GACvB7M,KAAK0sB,iBACD7f,EAAY6f,iBAEhB1sB,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKuwF,sBACqC,MAArC1jF,EAAY0jF,sBAAiC9pF,SAASoG,EAAY0jF,sBAAuB,SAAM9uF,EAEpGzB,KAAKwwF,cAC6B,MAA7B3jF,EAAY2jF,cAAyB/pF,SAASoG,EAAY2jF,cAAe,SAAM/uF,EAEpFzB,KAAKmV,YACDtI,EAAYsI,YAEhBnV,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAK2qB,MACD9d,EAAY8d,MAEhB3qB,KAAKywF,eACD5jF,EAAY4jF,eAEhBzwF,KAAKgtB,oBACDngB,EAAYmgB,oBAEhBhtB,KAAKitB,0BACyC,MAAzCpgB,EAAYogB,0BAAqCxmB,SAASoG,EAAYogB,0BAA2B,SAAMxrB,EAE5GzB,KAAK0wF,eAC8B,MAA9B7jF,EAAY6jF,eAA0BjqF,SAASoG,EAAY6jF,eAAgB,SAAMjvF,EAEtFzB,KAAK2sB,UACD9f,EAAY8f,UAEhB3sB,KAAK2wF,cACD9jF,EAAY8jF,cAEhB3wF,KAAKslB,UACDzY,EAAYyY,UAEhBtlB,KAAK4wF,mBACD/jF,EAAY+jF,mBAEpB5wF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iBAAuBmL,GAKhC,MAAM0B,GAkBb7Z,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAK0zB,qBACoC,MAApC7mB,EAAY6mB,qBAAgCxmB,WAAWL,EAAY6mB,2BAAwBjyB,EAEhGzB,KAAK2zB,iBACgC,MAAhC9mB,EAAY8mB,iBAA4BzmB,WAAWL,EAAY8mB,uBAAoBlyB,EAExFzB,KAAK4zB,eAC8B,MAA9B/mB,EAAY+mB,eAA0B1mB,WAAWL,EAAY+mB,qBAAkBnyB,EAEpFzB,KAAK6zB,eAC8B,MAA9BhnB,EAAYgnB,eAA0B3mB,WAAWL,EAAYgnB,qBAAkBpyB,EAEpFzB,KAAK8zB,iBACgC,MAAhCjnB,EAAYinB,iBAA4B5mB,WAAWL,EAAYinB,uBAAoBryB,EAExFzB,KAAKyzB,gBAC+B,MAA/B5mB,EAAY4mB,gBAA2BvmB,WAAWL,EAAY4mB,sBAAmBhyB,EAEtFzB,KAAK+zB,iBACgC,MAAhClnB,EAAYknB,iBAA4B7mB,WAAWL,EAAYknB,uBAAoBtyB,EAExFzB,KAAK6wF,iBACgC,MAAhChkF,EAAYgkF,iBAA4B3jF,WAAWL,EAAYgkF,uBAAoBpvF,GAI9FmL,EAAgB,yBAA+B6M,GAKxC,MAAME,GAcb/Z,YAAYiN,GAKV,GAJFA,EAAcA,GAAe,GACvB7M,KAAK0P,aACD7C,EAAY6C,aAEe,MAA/B7C,EAAYixB,gBACZ99B,KAAK89B,qBAAkBr8B,OACpB,GAAkD,MAA9CoL,EAAYixB,gBAAgB,eACnC99B,KAAK89B,gBAAkB,IAAI/rB,EAAalF,EAAYixB,qBACjD,CACH,IAAI1wB,EAAoBP,EAAYixB,gBAAgB,eACpD1wB,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK89B,gBAAkB,IAAIlxB,EAAiBQ,GAAWP,EAAYixB,kBAKvE99B,KAAK2nB,aACA9a,EAAY8a,wBAAwB1gB,KAAQ4F,EAAY8a,aAC1B,MAA5B9a,EAAY8a,cAAwBrZ,EAAAA,EAAAA,IAAiCzB,EAAY8a,aAAc,sBAAsB,QAASlmB,EAErIzB,KAAKqyB,4BACAxlB,EAAYwlB,uCAAuCprB,KAAQ4F,EAAYwlB,4BAC1B,MAA3CxlB,EAAYwlB,6BAAuC/jB,EAAAA,EAAAA,IAAiCzB,EAAYwlB,4BAA6B,sBAAsB,QAAS5wB,EAEnKzB,KAAKsyB,0BACAzlB,EAAYylB,qCAAqCrrB,KAAQ4F,EAAYylB,0BAC1B,MAAzCzlB,EAAYylB,2BAAqChkB,EAAAA,EAAAA,IAAiCzB,EAAYylB,0BAA2B,sBAAsB,QAAS7wB,GAIrKmL,EAAgB,yBAA+B+M,GAKxC,MAAMwG,GAcbvgB,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK+hD,QACDl1C,EAAYk1C,QAEhB/hD,KAAKqS,UACyB,MAAzBxF,EAAYwF,UAAqBnF,WAAWL,EAAYwF,gBAAa5Q,EAE1EzB,KAAK8wF,QACuB,MAAvBjkF,EAAYikF,QAAmB5jF,WAAWL,EAAYikF,cAAWrvF,EAEtEzB,KAAKmb,UACyB,MAAzBtO,EAAYsO,UAAqBjO,WAAWL,EAAYsO,gBAAa1Z,EAE9EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBuT,GAKjC,MAAMmC,GA0Bb1iB,YAAYiN,GAsDV,GArDFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAKuqB,gBACD1d,EAAY0d,gBAEhBvqB,KAAK+wF,2BACDlkF,EAAYkkF,2BAEhB/wF,KAAKgxF,2BACDnkF,EAAYmkF,2BAEhBhxF,KAAKixF,8BAC6C,MAA7CpkF,EAAYokF,8BAAyCxqF,SAASoG,EAAYokF,8BAA+B,SAAMxvF,EAEpHzB,KAAK8mE,UACDj6D,EAAYi6D,UAEhB9mE,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKkxF,yBACwC,MAAxCrkF,EAAYqkF,yBAAoCzqF,SAASoG,EAAYqkF,yBAA0B,SAAMzvF,EAE1GzB,KAAKmxF,mBACDtkF,EAAYskF,mBAEhBnxF,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE3HzB,KAAKq2B,OACDxpB,EAAYwpB,OAEhBr2B,KAAKoxF,UACAvkF,EAAYukF,qBAAqBnqF,KAAQ4F,EAAYukF,UAC1B,MAAzBvkF,EAAYukF,WAAqB9iF,EAAAA,EAAAA,IAAiCzB,EAAYukF,UAAW,sBAAsB,QAAS3vF,EAE/HzB,KAAKqxF,QACDxkF,EAAYwkF,QAEhBrxF,KAAKkV,uBACsC,MAAtCrI,EAAYqI,uBAAkCzO,SAASoG,EAAYqI,uBAAwB,SAAMzT,EAE1GzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2B0V,GAKpC,MAAMgvE,WACHhvE,GAWV1iB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK6O,UACyB,MAAzBhC,EAAYgC,UAAqBpI,SAASoG,EAAYgC,UAAW,SAAMpN,EAEhFzB,KAAK,eAAiB,yEAIxB4M,EAAgB,4BAAkC0kF,GAK3C,MAAM3tE,GAab/jB,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAKuxF,sBACqC,MAArC1kF,EAAY0kF,sBAAiC9qF,SAASoG,EAAY0kF,sBAAuB,SAAM9vF,EAEpGzB,KAAKovB,SACwB,MAAxBviB,EAAYuiB,SAAoBliB,WAAWL,EAAYuiB,eAAY3tB,EAE5EzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,mBAAyB+W,GAKlC,MAAMS,GAYbxkB,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKwxF,iBACgC,MAAhC3kF,EAAY2kF,iBAA4B/qF,SAASoG,EAAY2kF,iBAAkB,SAAM/vF,EAE1FzB,KAAKiN,aAC4B,MAA5BJ,EAAYI,aAAwBC,WAAWL,EAAYI,mBAAgBxL,EAEpFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4BAAkCwX,GAK3C,MAAME,GAgBb1kB,YAAYiN,GAqBV,GApBFA,EAAcA,GAAe,GACvB7M,KAAKwgD,gBAC+B,MAA/B3zC,EAAY2zC,gBAA2B/5C,SAASoG,EAAY2zC,gBAAiB,SAAM/+C,EAExFzB,KAAKyxF,uBACsC,MAAtC5kF,EAAY4kF,uBAAkChrF,SAASoG,EAAY4kF,uBAAwB,SAAMhwF,EAEtGzB,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAE5EzB,KAAK0xF,aACD7kF,EAAY6kF,aAEhB1xF,KAAK2xF,mBACD9kF,EAAY8kF,mBAEhB3xF,KAAK4xF,iBACD/kF,EAAY+kF,iBAEpB5xF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,oBAA0B0X,GAKnC,MAAMQ,GAUbllB,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBkY,GAKjC,MAAMgwD,GAWbl1E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK6xF,uCACDhlF,EAAYglF,uCAEhB7xF,KAAK8xF,gDACDjlF,EAAYilF,iDAItBllF,EAAgB,8CAAoDkoE,GAK7D,MAAMid,WACHhd,GAeVn1E,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK8iB,OACDjW,EAAYiW,OAEhB9iB,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAKgyF,2CACDnlF,EAAYmlF,2CAEhBhyF,KAAKiyF,+CACDplF,EAAYolF,+CAEpBjyF,KAAK,eAAiB,oFAIxB4M,EAAgB,uCAA6CmlF,GAKtD,MAAMnc,GAcbh2E,YAAYiN,GAeV,GAdFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKkd,WACDrQ,EAAYqQ,WAEhBld,KAAKs1B,UACyB,MAAzBzoB,EAAYyoB,UAAqB7uB,SAASoG,EAAYyoB,UAAW,SAAM7zB,EAE5EzB,KAAK8W,IACDjK,EAAYiK,IAEpB9W,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2BgpE,GAKpC,MAAME,GAYbl2E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKkyF,OACsB,MAAtBrlF,EAAYqlF,OAAkBhlF,WAAWL,EAAYqlF,aAAUzwF,EAEpEzB,KAAKm/C,MACDtyC,EAAYsyC,MAEpBn/C,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BkpE,GAKvC,MAAMU,GA+Bb52E,YAAYiN,GAkEV,GAjEFA,EAAcA,GAAe,GACvB7M,KAAKmyF,eACDtlF,EAAYslF,eAEhBnyF,KAAKoyF,gBACDvlF,EAAYulF,gBAEhBpyF,KAAKqyF,iBACDxlF,EAAYwlF,iBAEhBryF,KAAKsyF,gBACDzlF,EAAYylF,gBAEhBtyF,KAAKuyF,iBACD1lF,EAAY0lF,iBAEhBvyF,KAAKwyF,kBACD3lF,EAAY2lF,kBAEhBxyF,KAAKyyF,kBACD5lF,EAAY4lF,kBAEhBzyF,KAAK0yF,mBACD7lF,EAAY6lF,mBAEhB1yF,KAAK2yF,oBACD9lF,EAAY8lF,oBAEhB3yF,KAAK4yF,iBACD/lF,EAAY+lF,iBAEhB5yF,KAAK6yF,kBACDhmF,EAAYgmF,kBAEhB7yF,KAAK8yF,mBACDjmF,EAAYimF,mBAEhB9yF,KAAK+yF,eACDlmF,EAAYkmF,eAEhB/yF,KAAKgzF,gBACDnmF,EAAYmmF,gBAEhBhzF,KAAKizF,iBACDpmF,EAAYomF,iBAEhBjzF,KAAKkzF,iBACDrmF,EAAYqmF,iBAEhBlzF,KAAKmzF,kBACDtmF,EAAYsmF,kBAEhBnzF,KAAKozF,mBACDvmF,EAAYumF,mBAEhBpzF,KAAKqzF,eACDxmF,EAAYwmF,eAEhBrzF,KAAKszF,gBACDzmF,EAAYymF,gBAEhBtzF,KAAKuzF,iBACD1mF,EAAY0mF,iBAEpBvzF,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,uBAA6B4pE,GAKtC,MAAM0K,GA+CbthF,YAAYiN,GAoHV,GAnHFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAKwzF,SACD3mF,EAAY2mF,SAEhBxzF,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKilB,UACApY,EAAYoY,qBAAqBhe,KAAQ4F,EAAYoY,UAC1B,MAAzBpY,EAAYoY,WAAqB3W,EAAAA,EAAAA,IAAiCzB,EAAYoY,UAAW,sBAAsB,QAASxjB,EAE/HzB,KAAKklB,QACArY,EAAYqY,mBAAmBje,KAAQ4F,EAAYqY,QAC1B,MAAvBrY,EAAYqY,SAAmB5W,EAAAA,EAAAA,IAAiCzB,EAAYqY,QAAS,sBAAsB,QAASzjB,EAE3HzB,KAAKyzF,aACD5mF,EAAY4mF,aAEhBzzF,KAAK0zF,WACD7mF,EAAY6mF,WAEhB1zF,KAAK2zF,cACD9mF,EAAY8mF,cAEhB3zF,KAAK4zF,mBACD/mF,EAAY+mF,mBAEhB5zF,KAAK6zF,iBACDhnF,EAAYgnF,iBAEhB7zF,KAAK8zF,oBACDjnF,EAAYinF,oBAEhB9zF,KAAK+zF,oBACDlnF,EAAYknF,oBAEhB/zF,KAAKg0F,kBACDnnF,EAAYmnF,kBAEhBh0F,KAAKi0F,qBACDpnF,EAAYonF,qBAEhBj0F,KAAKk0F,sBACDrnF,EAAYqnF,sBAEhBl0F,KAAKm0F,oBACDtnF,EAAYsnF,oBAEhBn0F,KAAKo0F,uBACDvnF,EAAYunF,uBAEhBp0F,KAAKq0F,qBACDxnF,EAAYwnF,qBAEhBr0F,KAAKs0F,mBACDznF,EAAYynF,mBAEhBt0F,KAAKu0F,sBACD1nF,EAAY0nF,sBAEhBv0F,KAAKw0F,mBACD3nF,EAAY2nF,mBAEhBx0F,KAAKy0F,iBACD5nF,EAAY4nF,iBAEhBz0F,KAAK00F,oBACD7nF,EAAY6nF,oBAEhB10F,KAAK20F,qBACD9nF,EAAY8nF,qBAEhB30F,KAAK40F,mBACD/nF,EAAY+nF,mBAEhB50F,KAAK60F,sBACDhoF,EAAYgoF,sBAEhB70F,KAAK80F,mBACDjoF,EAAYioF,mBAEhB90F,KAAK+0F,iBACDloF,EAAYkoF,iBAEhB/0F,KAAKg1F,oBACDnoF,EAAYmoF,oBAEhBh1F,KAAKi1F,uBACDpoF,EAAYooF,uBAEhBj1F,KAAKk1F,6BACDroF,EAAYqoF,6BAEhBl1F,KAAKm1F,8BACDtoF,EAAYsoF,8BAEhBn1F,KAAKo1F,gCACDvoF,EAAYuoF,gCAEhBp1F,KAAKq1F,+BACDxoF,EAAYwoF,+BAEhBr1F,KAAKs1F,6BACDzoF,EAAYyoF,6BAEhBt1F,KAAKu1F,+BACD1oF,EAAY0oF,+BAEhBv1F,KAAKw1F,6BACD3oF,EAAY2oF,6BAEpBx1F,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4Bs0E,GAKrC,MAAMjJ,GAYbr4E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKy1F,YACD5oF,EAAY4oF,YAEhBz1F,KAAK01F,UACD7oF,EAAY6oF,UAEhB11F,KAAKwP,WACD3C,EAAY2C,YAItB5C,EAAgB,sBAA4BqrE,GAKrC,MAAMmB,GAWbx5E,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKq7D,uBAAoB55D,EACrBoL,EAAYwuD,kBAAmB,CACnCr7D,KAAKq7D,kBAAoB,GACzB,IAAK,IAAIz4D,EAAI,EAAGA,EAAIiK,EAAYwuD,kBAAkBx4D,OAAQD,IAAK,CAC/D,GAAwC,MAApCiK,EAAYwuD,kBAAkBz4D,GAClC,GAAuD,MAAnDiK,EAAYwuD,kBAAkBz4D,GAAG,eAEnCwK,GADIA,EAAoBP,EAAYwuD,kBAAkBz4D,GAAG,gBACnCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq7D,kBAAkBz4D,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYwuD,kBAAkBz4D,UAG5F5C,KAAKq7D,kBAAkBz4D,GAAK,IAAI82D,GAA4B7sD,EAAYwuD,kBAAkBz4D,SAG9F5C,KAAKq7D,kBAAkBz4D,QAAKnB,GAM5B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,oBAA0BwsE,GAKnC,MAAMU,GAabl6E,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAKr8B,SACwB,MAAxBkpC,EAAYlpC,SAAoB8iC,SAASoG,EAAYlpC,SAAU,SAAM89B,EAE1EzB,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK2qB,MACD9d,EAAY8d,MAEpB3qB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wCAA8CktE,GAKvD,MAAME,GAYbp6E,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK+M,KACDF,EAAYE,KAEhB/M,KAAK21F,MACqB,MAArB9oF,EAAY8oF,MAAiBlvF,SAASoG,EAAY8oF,MAAO,SAAMl0F,EAExEzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kBAAwBotE,GAKjC,MAAMI,GAcbx6E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKq6E,MACDxtE,EAAYwtE,MAEhBr6E,KAAK41F,qBACoC,MAApC/oF,EAAY+oF,qBAAgCnvF,SAASoG,EAAY+oF,qBAAsB,SAAMn0F,EAElGzB,KAAK61F,cACDhpF,EAAYgpF,cAEhB71F,KAAK81F,mBACDjpF,EAAYipF,mBAEhB91F,KAAK+1F,UACDlpF,EAAYkpF,WAItBnpF,EAAgB,6BAAmCwtE,GAK5C,MAAM4b,WACHtrE,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,2EAIxB4M,EAAgB,8BAAoCopF,GAK7C,MAAM3Y,GAiBbz9E,YAAYiN,GAyBV,GAxBFA,EAAcA,GAAe,GACvB7M,KAAKm8E,QACuB,MAAvBtvE,EAAYsvE,QAAmB11E,SAASoG,EAAYsvE,QAAS,SAAM16E,EAExEzB,KAAKm1B,WAC0B,MAA1BtoB,EAAYsoB,WAAsBjoB,WAAWL,EAAYsoB,iBAAc1zB,EAE5EzB,KAAKyqE,iBACD59D,EAAY49D,iBAEhBzqE,KAAKq8E,MACDxvE,EAAYwvE,MAEhBr8E,KAAKwqE,cACA39D,EAAY29D,yBAAyBvjE,KAAQ4F,EAAY29D,cAC1B,MAA7B39D,EAAY29D,eAAyBl8D,EAAAA,EAAAA,IAAiCzB,EAAY29D,cAAe,sBAAsB,QAAS/oE,EAEvIzB,KAAK23B,SACD9qB,EAAY8qB,SAEhB33B,KAAKs8E,WACDzvE,EAAYyvE,WAEpBt8E,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,iCAAuCywE,GAKhD,MAAME,GA0Bb39E,YAAYiN,GAqDV,GApDFA,EAAcA,GAAe,GACvB7M,KAAKm8E,QACuB,MAAvBtvE,EAAYsvE,QAAmB11E,SAASoG,EAAYsvE,QAAS,SAAM16E,EAExEzB,KAAKyqE,iBACD59D,EAAY49D,iBAEhBzqE,KAAKic,QACDpP,EAAYoP,QAEhBjc,KAAKi2F,oBACAppF,EAAYopF,+BAA+BhvF,KAAQ4F,EAAYopF,oBAC1B,MAAnCppF,EAAYopF,qBAA+B3nF,EAAAA,EAAAA,IAAiCzB,EAAYopF,oBAAqB,sBAAsB,QAASx0F,EAEnJzB,KAAK4S,WACD/F,EAAY+F,WAEhB5S,KAAKs8E,WACDzvE,EAAYyvE,WAEhBt8E,KAAKk2F,gBACDrpF,EAAYqpF,gBAEhBl2F,KAAKgS,QACDnF,EAAYmF,QAEhBhS,KAAK6vF,WACDhjF,EAAYgjF,WAEhB7vF,KAAK8qE,wBACDj+D,EAAYi+D,wBAEhB9qE,KAAK+qE,sBACDl+D,EAAYk+D,sBAEhB/qE,KAAKgrE,eACDn+D,EAAYm+D,eAEhBhrE,KAAK82B,cACDjqB,EAAYiqB,cAEhB92B,KAAKirE,gCACDp+D,EAAYo+D,gCAEhBjrE,KAAKkrE,aACDr+D,EAAYq+D,aAEhBlrE,KAAKkU,gBACArH,EAAYqH,2BAA2BjN,KAAQ4F,EAAYqH,gBAC1B,MAA/BrH,EAAYqH,iBAA2B5F,EAAAA,EAAAA,IAAiCzB,EAAYqH,gBAAiB,sBAAsB,QAASzS,EAE/IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sCAA4C2wE,GAKrD,MAAMQ,GAiBbn+E,YAAYiN,GAwBV,GAvBFA,EAAcA,GAAe,GACvB7M,KAAKykF,eACD53E,EAAY43E,eAEhBzkF,KAAKm2F,UACyB,MAAzBtpF,EAAYspF,UAAqB1vF,SAASoG,EAAYspF,UAAW,SAAM10F,EAE5EzB,KAAK+kF,YACDl4E,EAAYk4E,YAEhB/kF,KAAKo2F,MACDvpF,EAAYupF,MAEhBp2F,KAAKq2F,uBACDxpF,EAAYwpF,uBAEhBr2F,KAAKs2F,UACDzpF,EAAYypF,UAEhBt2F,KAAKu2F,kBACD1pF,EAAY0pF,kBAEpBv2F,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,wBAA8BmxE,GAKvC,MAAMI,GAWbv+E,YAAYiN,GAEV,GAA8B,OADhCA,EAAcA,GAAe,IACX2pF,WACZx2F,KAAKw2F,gBAAa/0F,OACf,GAA6C,MAAzCoL,EAAY2pF,WAAW,eAC9Bx2F,KAAKw2F,WAAa,IAAIljG,GAAgBuZ,EAAY2pF,gBAC/C,CAEHppF,GADIA,EAAoBP,EAAY2pF,WAAW,gBACzBnpF,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw2F,WAAa,IAAI5pF,EAAiBQ,GAAWP,EAAY2pF,aAMtE,GADAx2F,KAAKi5B,mBAAgBx3B,EACjBoL,EAAYosB,cAAe,CAC/Bj5B,KAAKi5B,cAAgB,GACrB,IAAK,IAAIr2B,EAAI,EAAGA,EAAIiK,EAAYosB,cAAcp2B,OAAQD,IAAK,CAGzD,IAAIwK,EAFN,GAAoC,MAAhCP,EAAYosB,cAAcr2B,GAC9B,GAAmD,MAA/CiK,EAAYosB,cAAcr2B,GAAG,eAE/BwK,GADIA,EAAoBP,EAAYosB,cAAcr2B,GAAG,gBAC/ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi5B,cAAcr2B,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYosB,cAAcr2B,UAGpF5C,KAAKi5B,cAAcr2B,GAAK,IAAIhL,GAA8CiV,EAAYosB,cAAcr2B,SAGxG5C,KAAKi5B,cAAcr2B,QAAKnB,KAO1BmL,EAAgB,sCAA4CuxE,GAKrD,MAAMK,GAYb5+E,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKsrE,2BAAwB7pE,EACzBoL,EAAYy+D,sBAAuB,CACvCtrE,KAAKsrE,sBAAwB,GAC7B,IAAK,IAAI1oE,EAAI,EAAGA,EAAIiK,EAAYy+D,sBAAsBzoE,OAAQD,IAAK,CACnE,GAA4C,MAAxCiK,EAAYy+D,sBAAsB1oE,GACtC,GAA2D,MAAvDiK,EAAYy+D,sBAAsB1oE,GAAG,eAEvCwK,GADIA,EAAoBP,EAAYy+D,sBAAsB1oE,GAAG,gBACvCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKsrE,sBAAsB1oE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYy+D,sBAAsB1oE,UAGpG5C,KAAKsrE,sBAAsB1oE,GAAK,IAAI2oE,GAA2C1+D,EAAYy+D,sBAAsB1oE,SAGrH5C,KAAKsrE,sBAAsB1oE,QAAKnB,GAMhC,GADAzB,KAAKwrE,0BAAuB/pE,EACxBoL,EAAY2+D,qBAAsB,CACtCxrE,KAAKwrE,qBAAuB,GAC5B,IAAS5oE,EAAI,EAAGA,EAAIiK,EAAY2+D,qBAAqB3oE,OAAQD,IAAK,CAClE,GAA2C,MAAvCiK,EAAY2+D,qBAAqB5oE,GACrC,GAA0D,MAAtDiK,EAAY2+D,qBAAqB5oE,GAAG,eAEtCwK,GADIA,EAAoBP,EAAY2+D,qBAAqB5oE,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKwrE,qBAAqB5oE,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2+D,qBAAqB5oE,UAGlG5C,KAAKwrE,qBAAqB5oE,GAAK,IAAI6oE,GAA0C5+D,EAAY2+D,qBAAqB5oE,SAGlH5C,KAAKwrE,qBAAqB5oE,QAAKnB,GAM/B,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,yCAA+C4xE,GAKxD,MAAME,GAWb9+E,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKy2F,uBACD5pF,EAAY4pF,uBAEhBz2F,KAAKygF,iBACgC,MAAhC5zE,EAAY4zE,iBAA4Bh6E,SAASoG,EAAY4zE,iBAAkB,SAAMh/E,GAIhGmL,EAAgB,2CAAiD8xE,GAK1D,MAAMQ,GAuBbt/E,YAAYiN,GA6BV,GA5BFA,EAAcA,GAAe,GACvB7M,KAAK+qE,sBACDl+D,EAAYk+D,sBAEhB/qE,KAAK02F,eACD7pF,EAAY6pF,eAEhB12F,KAAK6wE,SACDhkE,EAAYgkE,SAEhB7wE,KAAKs/E,mBACDzyE,EAAYyyE,mBAEhBt/E,KAAKm/E,4BACDtyE,EAAYsyE,4BAEhBn/E,KAAK22F,UACD9pF,EAAY8pF,UAEhB32F,KAAK42F,sBACD/pF,EAAY+pF,sBAEhB52F,KAAK62F,cACDhqF,EAAYgqF,cAEhB72F,KAAK82F,SACDjqF,EAAYiqF,SAEoB,MAApCjqF,EAAYkqF,qBACZ/2F,KAAK+2F,0BAAuBt1F,OACzB,GAAuD,MAAnDoL,EAAYkqF,qBAAqB,eACxC/2F,KAAK+2F,qBAAuB,IAAIC,GAA2CnqF,EAAYkqF,0BACpF,CAEH3pF,GADIA,EAAoBP,EAAYkqF,qBAAqB,gBACnC1pF,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK+2F,qBAAuB,IAAInqF,EAAiBQ,GAAWP,EAAYkqF,uBAMhF,GADA/2F,KAAKo/E,+BAA4B39E,EAC7BoL,EAAYuyE,0BAA2B,CAC3Cp/E,KAAKo/E,0BAA4B,GACjC,IAAK,IAAIx8E,EAAI,EAAGA,EAAIiK,EAAYuyE,0BAA0Bv8E,OAAQD,IAClB,MAA5CiK,EAAYuyE,0BAA0Bx8E,GACtC5C,KAAKo/E,0BAA0Bx8E,GAC3BiK,EAAYuyE,0BAA0Bx8E,GAE9C5C,KAAKo/E,0BAA0Bx8E,QAAKnB,EAMpC,GADAzB,KAAKq/E,kCAA+B59E,EAChCoL,EAAYwyE,6BAA8B,CAC9Cr/E,KAAKq/E,6BAA+B,GACpC,IAASz8E,EAAI,EAAGA,EAAIiK,EAAYwyE,6BAA6Bx8E,OAAQD,IAClB,MAA/CiK,EAAYwyE,6BAA6Bz8E,GACzC5C,KAAKq/E,6BAA6Bz8E,GAC9BiK,EAAYwyE,6BAA6Bz8E,GAEjD5C,KAAKq/E,6BAA6Bz8E,QAAKnB,EAMvC,GADAzB,KAAKi3F,oBAAiBx1F,EAClBoL,EAAYoqF,eAAgB,CAChCj3F,KAAKi3F,eAAiB,GACtB,IAASr0F,EAAI,EAAGA,EAAIiK,EAAYoqF,eAAep0F,OAAQD,IAClB,MAAjCiK,EAAYoqF,eAAer0F,GAC3B5C,KAAKi3F,eAAer0F,GAChBiK,EAAYoqF,eAAer0F,GAEnC5C,KAAKi3F,eAAer0F,QAAKnB,EAMzB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,8CAAoDsyE,GAK7D,MAAM8X,GAYbp3F,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKk3F,eACDrqF,EAAYqqF,eAEhBl3F,KAAKm3F,2BACDtqF,EAAYsqF,2BAEhBn3F,KAAKo3F,mBACDvqF,EAAYuqF,oBAItBxqF,EAAgB,2CAAiDoqF,GAK1D,MAAMtX,GAeb9/E,YAAYiN,GAEV,GAA2C,OAD7CA,EAAcA,GAAe,IACXwqF,wBACZr3F,KAAKq3F,6BAA0B51F,OAC5B,GAA0D,MAAtDoL,EAAYwqF,wBAAwB,eAC3Cr3F,KAAKq3F,wBAA0B,IAAInY,GAA8CryE,EAAYwqF,6BAC1F,CAEHjqF,GADIA,EAAoBP,EAAYwqF,wBAAwB,gBACtChqF,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKq3F,wBAA0B,IAAIzqF,EAAiBQ,GAAWP,EAAYwqF,0BAenF,GAVIr3F,KAAK82B,cACDjqB,EAAYiqB,cAEhB92B,KAAKs/E,mBACDzyE,EAAYyyE,mBAEhBt/E,KAAKu/E,uBACD1yE,EAAY0yE,uBAEpBv/E,KAAKs3F,0BAAuB71F,EACxBoL,EAAYyqF,qBAAsB,CACtCt3F,KAAKs3F,qBAAuB,GAC5B,IAAK,IAAI10F,EAAI,EAAGA,EAAIiK,EAAYyqF,qBAAqBz0F,OAAQD,IAAK,CAGhE,IAAIwK,EAFN,GAA2C,MAAvCP,EAAYyqF,qBAAqB10F,GACrC,GAA0D,MAAtDiK,EAAYyqF,qBAAqB10F,GAAG,eAEtCwK,GADIA,EAAoBP,EAAYyqF,qBAAqB10F,GAAG,gBACtCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs3F,qBAAqB10F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyqF,qBAAqB10F,UAGlG5C,KAAKs3F,qBAAqB10F,GAAK,IAAI20F,GAA4C1qF,EAAYyqF,qBAAqB10F,SAGpH5C,KAAKs3F,qBAAqB10F,QAAKnB,GAK3BzB,KAAK2sD,UACD9/C,EAAY8/C,WAItB//C,EAAgB,2DAAiE8yE,GAK1E,MAAM6X,GAWb33F,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKw3F,UACD3qF,EAAY2qF,UAEhBx3F,KAAK2qB,MACD9d,EAAY8d,OAItB/d,EAAgB,4CAAkD2qF,GAK3D,MAAMpX,GAabvgF,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKy3F,iBACD5qF,EAAY4qF,iBAEhBz3F,KAAK03F,eACD7qF,EAAY6qF,eAEhB13F,KAAK2sD,UACD9/C,EAAY8/C,UAEhB3sD,KAAK4sD,aACD//C,EAAY+/C,cAItBhgD,EAAgB,4CAAkDuzE,GAK3D,MAAMmB,GAWb1hF,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAK23F,cAAWl2F,EACZoL,EAAY8qF,SAAU,CAC1B33F,KAAK23F,SAAW,GAChB,IAAK,IAAI/0F,EAAI,EAAGA,EAAIiK,EAAY8qF,SAAS90F,OAAQD,IAAK,CACtD,GAA+B,MAA3BiK,EAAY8qF,SAAS/0F,GACzB,GAA8C,MAA1CiK,EAAY8qF,SAAS/0F,GAAG,eAE1BwK,GADIA,EAAoBP,EAAY8qF,SAAS/0F,GAAG,gBAC1ByK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK23F,SAAS/0F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY8qF,SAAS/0F,UAG1E5C,KAAK23F,SAAS/0F,GAAK,IAAIg1F,GAAyB/qF,EAAY8qF,SAAS/0F,SAGzE5C,KAAK23F,SAAS/0F,QAAKnB,GAMnB,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAAK,CAG/D,IAAIwK,EAFN,GAA0C,MAAtCP,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAErCwK,GADIA,EAAoBP,EAAYY,oBAAoB7K,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,KAOhCmL,EAAgB,kBAAwB00E,GAKjC,MAAMsW,GAYbh4F,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKmsD,aACDt/C,EAAYs/C,aAEhBnsD,KAAK63F,WAC0B,MAA1BhrF,EAAYgrF,WAAsBpxF,SAASoG,EAAYgrF,WAAY,SAAMp2F,EAElFzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,yBAA+BgrF,GAKxC,MAAMhW,GAabhiF,YAAYiN,GAYV,GAXFA,EAAcA,GAAe,GACvB7M,KAAK83F,QACDjrF,EAAYirF,QAEhB93F,KAAK+3F,UACDlrF,EAAYkrF,UAEhB/3F,KAAKgZ,YACDnM,EAAYmM,YAEpBhZ,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,qBAA2Bg1E,GAKpC,MAAMoW,WACHttE,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,iFAIxB4M,EAAgB,oCAA0CorF,GAKnD,MAAMjV,GAYbnjF,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAKngB,YACDgtB,EAAYhtB,YAEhBmgB,KAAKk2B,OACDrpB,EAAYqpB,OAEpBl2B,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,8BAAoCm2E,GAK7C,MAAMI,GAgCbvjF,YAAYiN,GAqEV,GApEFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKkhB,iBACDrU,EAAYqU,iBAEhBlhB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAKi4F,kBACiC,MAAjCprF,EAAYorF,kBAA6B/qF,WAAWL,EAAYorF,wBAAqBx2F,EAE1FzB,KAAKy9E,iBACgC,MAAhC5wE,EAAY4wE,iBAA4BvwE,WAAWL,EAAY4wE,uBAAoBh8E,EAExFzB,KAAKk4F,eAC8B,MAA9BrrF,EAAYqrF,eAA0BhrF,WAAWL,EAAYqrF,qBAAkBz2F,EAEpFzB,KAAKktD,kCACDrgD,EAAYqgD,kCAEhBltD,KAAKmtD,iCACDtgD,EAAYsgD,iCAEhBntD,KAAKm4F,eAC8B,MAA9BtrF,EAAYsrF,eAA0BjrF,WAAWL,EAAYsrF,qBAAkB12F,EAEpFzB,KAAKo4F,kBACiC,MAAjCvrF,EAAYurF,kBAA6BlrF,WAAWL,EAAYurF,wBAAqB32F,EAE1FzB,KAAKotD,qCACDvgD,EAAYugD,qCAEhBptD,KAAKqtD,oCACDxgD,EAAYwgD,oCAEhBrtD,KAAKq4F,2BAC0C,MAA1CxrF,EAAYwrF,2BAAsC5xF,SAASoG,EAAYwrF,2BAA4B,SAAM52F,EAE9GzB,KAAKs4F,8BAC6C,MAA7CzrF,EAAYyrF,8BAAyCprF,WAAWL,EAAYyrF,oCAAiC72F,EAElHzB,KAAKu4F,0BACyC,MAAzC1rF,EAAY0rF,0BAAqCrrF,WAAWL,EAAY0rF,gCAA6B92F,EAE1GzB,KAAKw4F,wCACD3rF,EAAY2rF,wCAEhBx4F,KAAKy4F,oBACmC,MAAnC5rF,EAAY4rF,oBAA+BvrF,WAAWL,EAAY4rF,0BAAuBh3F,EAE9FzB,KAAKwjF,sBACD32E,EAAY22E,sBAEhBxjF,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAK04F,4CAC2D,MAA3D7rF,EAAY6rF,4CAAuDxrF,WAAWL,EAAY6rF,kDAA+Cj3F,EAE9IzB,KAAK24F,yCACwD,MAAxD9rF,EAAY8rF,yCAAoDzrF,WAAWL,EAAY8rF,+CAA4Cl3F,EAExIzB,KAAK44F,yBACwC,MAAxC/rF,EAAY+rF,yBAAoC1rF,WAAWL,EAAY+rF,+BAA4Bn3F,EAE5GzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,2CAAiDu2E,GAK1D,MAAM0V,WACHnuE,EAUV9qB,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,mEAIxB4M,EAAgB,sBAA4BisF,GAKrC,MAAMxV,GAsBbzjF,YAAYiN,GAuCV,GAtCFA,EAAcA,GAAe,GACvB7M,KAAK+xB,UACyB,MAAzBllB,EAAYklB,UAAqBtrB,SAASoG,EAAYklB,UAAW,SAAMtwB,EAE5EzB,KAAKmhB,WACDtU,EAAYsU,WAEhBnhB,KAAK84F,uBACsC,MAAtCjsF,EAAYisF,uBAAkC5rF,WAAWL,EAAYisF,6BAA0Br3F,EAEpGzB,KAAKktD,kCACDrgD,EAAYqgD,kCAEhBltD,KAAKmtD,iCACDtgD,EAAYsgD,iCAEhBntD,KAAK+4F,0BACyC,MAAzClsF,EAAYksF,0BAAqC7rF,WAAWL,EAAYksF,gCAA6Bt3F,EAE1GzB,KAAKotD,qCACDvgD,EAAYugD,qCAEhBptD,KAAKqtD,oCACDxgD,EAAYwgD,oCAEhBrtD,KAAKwjF,sBACD32E,EAAY22E,sBAEhBxjF,KAAKujD,cACD12C,EAAY02C,cAEhBvjD,KAAK04F,4CAC2D,MAA3D7rF,EAAY6rF,4CAAuDxrF,WAAWL,EAAY6rF,kDAA+Cj3F,EAE9IzB,KAAK24F,yCACwD,MAAxD9rF,EAAY8rF,yCAAoDzrF,WAAWL,EAAY8rF,+CAA4Cl3F,EAE5IzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,kCAAwCy2E,GAKjD,MAAM2V,GASbp5F,YAAYiN,GACZA,EAAcA,GAAe,IAG7BD,EAAgB,kBAAwBosF,GAKjC,MAAM31H,GAWbu8B,YAAYiN,GAEV,GAA6C,OAD/CA,EAAcA,GAAe,IACXosF,0BACZj5F,KAAKi5F,+BAA4Bx3F,OAC9B,GAA4D,MAAxDoL,EAAYosF,0BAA0B,eAC7Cj5F,KAAKi5F,0BAA4B,IAAIC,GAAuCrsF,EAAYosF,+BACrF,CAEH7rF,GADIA,EAAoBP,EAAYosF,0BAA0B,gBACxC5rF,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKi5F,0BAA4B,IAAIrsF,EAAiBQ,GAAWP,EAAYosF,4BAMrF,GADAj5F,KAAKm5F,mCAAgC13F,EACjCoL,EAAYssF,8BAA+B,CAC/Cn5F,KAAKm5F,8BAAgC,GACrC,IAAK,IAAIv2F,EAAI,EAAGA,EAAIiK,EAAYssF,8BAA8Bt2F,OAAQD,IAAK,CAGzE,IAAIwK,EAFN,GAAoD,MAAhDP,EAAYssF,8BAA8Bv2F,GAC9C,GAAmE,MAA/DiK,EAAYssF,8BAA8Bv2F,GAAG,eAE/CwK,GADIA,EAAoBP,EAAYssF,8BAA8Bv2F,GAAG,gBAC/CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKm5F,8BAA8Bv2F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYssF,8BAA8Bv2F,UAGpH5C,KAAKm5F,8BAA8Bv2F,GAAK,IAAIw2F,GAA+BvsF,EAAYssF,8BAA8Bv2F,SAGzH5C,KAAKm5F,8BAA8Bv2F,QAAKnB,KAO1CmL,EAAgB,+BAAqCvpC,GAK9C,MAAMg2H,GAWbz5F,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAK4uE,iBACD/hE,EAAY+hE,iBAEhB5uE,KAAKs5F,gBACDzsF,EAAYysF,iBAItB1sF,EAAgB,uBAA6BysF,GAKtC,MAAME,WACHF,GAWVz5F,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKw5F,uBAAoB/3F,EACrBoL,EAAY2sF,kBAAmB,CACnCx5F,KAAKw5F,kBAAoB,GACzB,IAAK,IAAI52F,EAAI,EAAGA,EAAIiK,EAAY2sF,kBAAkB32F,OAAQD,IAC1D,GAAwC,MAApCiK,EAAY2sF,kBAAkB52F,GAClC,GAAuD,MAAnDiK,EAAY2sF,kBAAkB52F,GAAG,eAAwB,CAC3D,IAAIwK,EAAoBP,EAAY2sF,kBAAkB52F,GAAG,eACzDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw5F,kBAAkB52F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2sF,kBAAkB52F,UAG5F5C,KAAKw5F,kBAAkB52F,GAAK,IAAIstF,GAA2BrjF,EAAY2sF,kBAAkB52F,SAG7F5C,KAAKw5F,kBAAkB52F,QAAKnB,EAK5BzB,KAAK,eAAiB,gEAIxB4M,EAAgB,6BAAmC2sF,GAK5C,MAAME,WACHF,GAaV35F,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK05F,yBAAsBj4F,EACvBoL,EAAY6sF,oBAAqB,CACrC15F,KAAK05F,oBAAsB,GAC3B,IAAK,IAAI92F,EAAI,EAAGA,EAAIiK,EAAY6sF,oBAAoB72F,OAAQD,IAAK,CACjE,GAA0C,MAAtCiK,EAAY6sF,oBAAoB92F,GACpC,GAAyD,MAArDiK,EAAY6sF,oBAAoB92F,GAAG,eAErCwK,GADIA,EAAoBP,EAAY6sF,oBAAoB92F,GAAG,gBACrCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK05F,oBAAoB92F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY6sF,oBAAoB92F,UAGhG5C,KAAK05F,oBAAoB92F,GAAK,IAAI3Y,GAAgB4iB,EAAY6sF,oBAAoB92F,SAGtF5C,KAAK05F,oBAAoB92F,QAAKnB,GAM9B,GADAzB,KAAK25F,sCAAmCl4F,EACpCoL,EAAY8sF,iCAAkC,CAClD35F,KAAK25F,iCAAmC,GACxC,IAAS/2F,EAAI,EAAGA,EAAIiK,EAAY8sF,iCAAiC92F,OAAQD,IAClB,MAAnDiK,EAAY8sF,iCAAiC/2F,GAC7C5C,KAAK25F,iCAAiC/2F,GAClCiK,EAAY8sF,iCAAiC/2F,GAErD5C,KAAK25F,iCAAiC/2F,QAAKnB,EAM3C,GADAzB,KAAK45F,4BAAyBn4F,EAC1BoL,EAAY+sF,uBAAwB,CACxC55F,KAAK45F,uBAAyB,GAC9B,IAASh3F,EAAI,EAAGA,EAAIiK,EAAY+sF,uBAAuB/2F,OAAQD,IAAK,CAGlE,IAAIwK,EAFN,GAA6C,MAAzCP,EAAY+sF,uBAAuBh3F,GACvC,GAA4D,MAAxDiK,EAAY+sF,uBAAuBh3F,GAAG,eAExCwK,GADIA,EAAoBP,EAAY+sF,uBAAuBh3F,GAAG,gBACxCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK45F,uBAAuBh3F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY+sF,uBAAuBh3F,UAGtG5C,KAAK45F,uBAAuBh3F,GAAK,IAAIojE,GAA2Bn5D,EAAY+sF,uBAAuBh3F,SAGvG5C,KAAK45F,uBAAuBh3F,QAAKnB,GAKjCzB,KAAK,eAAiB,2EAIxB4M,EAAgB,wCAA8C6sF,GAKvD,MAAMI,WACHR,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,0DAIxB4M,EAAgB,uBAA6BitF,GAKtC,MAAMC,WACHD,GAUVj6F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyCktF,GAKlD,MAAMC,WACHV,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,+EAIxB4M,EAAgB,4CAAkDmtF,GAK3D,MAAMC,WACHH,GAUVj6F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,oEAIxB4M,EAAgB,iCAAuCotF,GAKhD,MAAMC,WACHJ,GAUVj6F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,mEAIxB4M,EAAgB,gCAAsCqtF,GAK/C,MAAMC,WACHb,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,qEAIxB4M,EAAgB,kCAAwCstF,GAKjD,MAAMC,WACHZ,GAUV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,gEAIxB4M,EAAgB,6BAAmCutF,GAK5C,MAAMC,WACHb,GAWV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKg5B,aACDnsB,EAAYmsB,aAEpBh5B,KAAK,eAAiB,kEAIxB4M,EAAgB,+BAAqCwtF,GAK9C,MAAMC,WACHhB,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyCytF,GAKlD,MAAMC,WACHjB,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,uEAIxB4M,EAAgB,oCAA0C0tF,GAKnD,MAAMC,WACHlB,GAWVz5F,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKw6F,0BAAuB/4F,EACxBoL,EAAY2tF,qBAAsB,CACtCx6F,KAAKw6F,qBAAuB,GAC5B,IAAK,IAAI53F,EAAI,EAAGA,EAAIiK,EAAY2tF,qBAAqB33F,OAAQD,IAC7D,GAA2C,MAAvCiK,EAAY2tF,qBAAqB53F,GACrC,GAA0D,MAAtDiK,EAAY2tF,qBAAqB53F,GAAG,eAAwB,CAC9D,IAAIwK,EAAoBP,EAAY2tF,qBAAqB53F,GAAG,eAC5DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKw6F,qBAAqB53F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY2tF,qBAAqB53F,UAGlG5C,KAAKw6F,qBAAqB53F,GAAK,IAAI63F,GAAyB5tF,EAAY2tF,qBAAqB53F,SAGjG5C,KAAKw6F,qBAAqB53F,QAAKnB,EAK/BzB,KAAK,eAAiB,gEAIxB4M,EAAgB,6BAAmC2tF,GAK5C,MAAMG,WACHH,GAUV36F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyC8tF,GAKlD,MAAMC,WACHJ,GAUV36F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyC+tF,GAKlD,MAAMC,WACHvB,GAYVz5F,YAAYiN,GAMV,GALFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK24C,kBACD9rC,EAAY8rC,kBAEpB34C,KAAKy4C,sBAAmBh3C,EACpBoL,EAAY4rC,iBAAkB,CAClCz4C,KAAKy4C,iBAAmB,GACxB,IAAK,IAAI71C,EAAI,EAAGA,EAAIiK,EAAY4rC,iBAAiB51C,OAAQD,IACzD,GAAuC,MAAnCiK,EAAY4rC,iBAAiB71C,GACjC,GAAsD,MAAlDiK,EAAY4rC,iBAAiB71C,GAAG,eAAwB,CAC1D,IAAIwK,EAAoBP,EAAY4rC,iBAAiB71C,GAAG,eACxDwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKy4C,iBAAiB71C,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAY4rC,iBAAiB71C,UAG1F5C,KAAKy4C,iBAAiB71C,GAAK,IAAI81C,GAAkB7rC,EAAY4rC,iBAAiB71C,SAGlF5C,KAAKy4C,iBAAiB71C,QAAKnB,EAK3BzB,KAAK,eAAiB,yDAIxB4M,EAAgB,sBAA4BguF,GAKrC,MAAM1K,GAabtwF,YAAYiN,GASV,GARFA,EAAcA,GAAe,GACvB7M,KAAK66F,aACDhuF,EAAYguF,aAEhB76F,KAAKs5F,gBACDzsF,EAAYysF,gBAEpBt5F,KAAK86F,iBAAcr5F,EACfoL,EAAYiuF,YAAa,CAC7B96F,KAAK86F,YAAc,GACnB,IAAK,IAAIl4F,EAAI,EAAGA,EAAIiK,EAAYiuF,YAAYj4F,OAAQD,IAClB,MAA9BiK,EAAYiuF,YAAYl4F,GACxB5C,KAAK86F,YAAYl4F,GACbiK,EAAYiuF,YAAYl4F,GAEhC5C,KAAK86F,YAAYl4F,QAAKnB,EAKlBzB,KAAK4uE,iBACD/hE,EAAY+hE,kBAItBhiE,EAAgB,2BAAiCsjF,GAK1C,MAAM6K,WACH1B,GAWVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKg7F,0BACDnuF,EAAYmuF,0BAEpBh7F,KAAK,eAAiB,kEAIxB4M,EAAgB,+BAAqCmuF,GAK9C,MAAME,WACH1B,GAYV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKk7F,kBACDruF,EAAYquF,kBAEhBl7F,KAAKue,kBACD1R,EAAY0R,kBAEpBve,KAAK,eAAiB,wFAIxB4M,EAAgB,qDAA2DquF,GAKpE,MAAME,WACH5B,GAYV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKioC,gBAC+B,MAA/Bp7B,EAAYo7B,gBAA2B/6B,WAAWL,EAAYo7B,sBAAmBxmC,EAEtFzB,KAAKmiF,kBACDt1E,EAAYs1E,kBAEpBniF,KAAK,eAAiB,wFAIxB4M,EAAgB,qDAA2DuuF,GAKpE,MAAMjC,GAWbt5F,YAAYiN,GAGV,GAFFA,EAAcA,GAAe,GAC3B7M,KAAKo7F,gCAA6B35F,EAC9BoL,EAAYuuF,2BAA4B,CAC5Cp7F,KAAKo7F,2BAA6B,GAClC,IAAK,IAAIx4F,EAAI,EAAGA,EAAIiK,EAAYuuF,2BAA2Bv4F,OAAQD,IAAK,CACxE,GAAiD,MAA7CiK,EAAYuuF,2BAA2Bx4F,GAC3C,GAAgE,MAA5DiK,EAAYuuF,2BAA2Bx4F,GAAG,eAE5CwK,GADIA,EAAoBP,EAAYuuF,2BAA2Bx4F,GAAG,gBAC5CyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKo7F,2BAA2Bx4F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYuuF,2BAA2Bx4F,UAG9G5C,KAAKo7F,2BAA2Bx4F,GAAK,IAAIy4F,GAA4CxuF,EAAYuuF,2BAA2Bx4F,SAGhI5C,KAAKo7F,2BAA2Bx4F,QAAKnB,GAMrC,GADAzB,KAAKs7F,4BAAyB75F,EAC1BoL,EAAYyuF,uBAAwB,CACxCt7F,KAAKs7F,uBAAyB,GAC9B,IAAS14F,EAAI,EAAGA,EAAIiK,EAAYyuF,uBAAuBz4F,OAAQD,IAAK,CAGlE,IAAIwK,EAFN,GAA6C,MAAzCP,EAAYyuF,uBAAuB14F,GACvC,GAA4D,MAAxDiK,EAAYyuF,uBAAuB14F,GAAG,eAExCwK,GADIA,EAAoBP,EAAYyuF,uBAAuB14F,GAAG,gBACxCyK,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKs7F,uBAAuB14F,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYyuF,uBAAuB14F,UAGtG5C,KAAKs7F,uBAAuB14F,GAAK,IAAIotF,GAA0BnjF,EAAYyuF,uBAAuB14F,SAGtG5C,KAAKs7F,uBAAuB14F,QAAKnB,KAOnCmL,EAAgB,uCAA6CssF,GAKtD,MAAMqC,WACHlC,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,4EAIxB4M,EAAgB,yCAA+C2uF,GAKxD,MAAMC,WACHjC,GAUV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,yEAIxB4M,EAAgB,sCAA4C4uF,GAKrD,MAAMC,WACHlC,GAYV35F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK07F,aACD7uF,EAAY6uF,aAEhB17F,KAAK27F,UACD9uF,EAAY8uF,UAEpB37F,KAAK,eAAiB,8EAIxB4M,EAAgB,2CAAiD6uF,GAK1D,MAAMG,WACHvC,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,4EAIxB4M,EAAgB,yCAA+CgvF,GAKxD,MAAMC,WACHxC,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,wEAIxB4M,EAAgB,qCAA2CivF,GAKpD,MAAMC,WACH9B,GAWVp6F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAKgS,QACDnF,EAAYmF,QAEpBhS,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyCkvF,GAKlD,MAAMC,WACH1C,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,8EAIxB4M,EAAgB,2CAAiDmvF,GAK1D,MAAMC,WACH3C,GAWVz5F,YAAYiN,GAGV,GAFFge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAKi8F,mCAAgCx6F,EACjCoL,EAAYovF,8BAA+B,CAC/Cj8F,KAAKi8F,8BAAgC,GACrC,IAAK,IAAIr5F,EAAI,EAAGA,EAAIiK,EAAYovF,8BAA8Bp5F,OAAQD,IAClB,MAAhDiK,EAAYovF,8BAA8Br5F,GAC1C5C,KAAKi8F,8BAA8Br5F,GAC/BiK,EAAYovF,8BAA8Br5F,GAElD5C,KAAKi8F,8BAA8Br5F,QAAKnB,EAKxCzB,KAAK,eAAiB,sEAIxB4M,EAAgB,mCAAyCovF,GAKlD,MAAME,WACH7C,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,6EAIxB4M,EAAgB,0CAAgDsvF,GAKzD,MAAMzuB,GAYb7tE,YAAYiN,GAMV,GALFA,EAAcA,GAAe,GACvB7M,KAAKm8F,mBACDtvF,EAAYsvF,mBAEpBn8F,KAAKo8F,8BAA2B36F,EAC5BoL,EAAYuvF,yBAA0B,CAC1Cp8F,KAAKo8F,yBAA2B,GAChC,IAAK,IAAIx5F,EAAI,EAAGA,EAAIiK,EAAYuvF,yBAAyBv5F,OAAQD,IAClB,MAA3CiK,EAAYuvF,yBAAyBx5F,GACrC5C,KAAKo8F,yBAAyBx5F,GAC1BiK,EAAYuvF,yBAAyBx5F,GAE7C5C,KAAKo8F,yBAAyBx5F,QAAKnB,EAMnC,GADAzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAS7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,sBAA4B6gE,GAKrC,MAAM4uB,GAgBbz8F,YAAYiN,GAuBV,GAtBFA,EAAcA,GAAe,GACvB7M,KAAKs8F,gBACDzvF,EAAYyvF,gBAEhBt8F,KAAKu8F,sBACD1vF,EAAY0vF,sBAEhBv8F,KAAKw8F,SACA3vF,EAAY2vF,oBAAoBv1F,KAAQ4F,EAAY2vF,SAC1B,MAAxB3vF,EAAY2vF,UAAoBluF,EAAAA,EAAAA,IAAiCzB,EAAY2vF,SAAU,sBAAsB,QAAS/6F,EAE7HzB,KAAKy8F,OACA5vF,EAAY4vF,kBAAkBx1F,KAAQ4F,EAAY4vF,OAC1B,MAAtB5vF,EAAY4vF,QAAkBnuF,EAAAA,EAAAA,IAAiCzB,EAAY4vF,OAAQ,sBAAsB,QAASh7F,EAEzHzB,KAAK08F,oBACD7vF,EAAY6vF,oBAEhB18F,KAAKksE,kBACDr/D,EAAYq/D,kBAEpBlsE,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,6BAAmCyvF,GAK5C,MAAM9sB,GAab3vE,YAAYiN,GAcV,GAbFA,EAAcA,GAAe,GACvB7M,KAAKu0B,UACD1nB,EAAY0nB,UAEhBv0B,KAAK28F,8BACA9vF,EAAY8vF,yCAAyC11F,KAAQ4F,EAAY8vF,8BAC1B,MAA7C9vF,EAAY8vF,+BAAyCruF,EAAAA,EAAAA,IAAiCzB,EAAY8vF,8BAA+B,sBAAsB,QAASl7F,EAEvKzB,KAAK48F,4BACA/vF,EAAY+vF,uCAAuC31F,KAAQ4F,EAAY+vF,4BAC1B,MAA3C/vF,EAAY+vF,6BAAuCtuF,EAAAA,EAAAA,IAAiCzB,EAAY+vF,4BAA6B,sBAAsB,QAASn7F,EAEvKzB,KAAKyN,yBAAsBhM,EACvBoL,EAAYY,oBAAqB,CACrCzN,KAAKyN,oBAAsB,GAC3B,IAAK,IAAI7K,EAAI,EAAGA,EAAIiK,EAAYY,oBAAoB5K,OAAQD,IAC5D,GAA0C,MAAtCiK,EAAYY,oBAAoB7K,GACpC,GAAyD,MAArDiK,EAAYY,oBAAoB7K,GAAG,eAAwB,CAC7D,IAAIwK,EAAoBP,EAAYY,oBAAoB7K,GAAG,eAC3DwK,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAKyN,oBAAoB7K,GAAK,IAAIgK,EAAiBQ,GAAWP,EAAYY,oBAAoB7K,UAGhG5C,KAAKyN,oBAAoB7K,GAAK,IAAI8K,GAAsBb,EAAYY,oBAAoB7K,SAG5F5C,KAAKyN,oBAAoB7K,QAAKnB,IAOhCmL,EAAgB,4CAAkD2iE,GAK3D,MAAMkrB,GAYb76F,YAAYiN,GACZA,EAAcA,GAAe,GACvB7M,KAAKs5F,gBACDzsF,EAAYysF,gBAEhBt5F,KAAK4uE,iBACD/hE,EAAY+hE,iBAEhB5uE,KAAKgpE,OACDn8D,EAAYm8D,QAItBp8D,EAAgB,yBAA+B6tF,GAKxC,MAAMrB,GAWbx5F,YAAYiN,GAEV,GAAyC,OAD3CA,EAAcA,GAAe,IACXgwF,sBACZ78F,KAAK68F,2BAAwBp7F,OAC1B,GAAwD,MAApDoL,EAAYgwF,sBAAsB,eACzC78F,KAAK68F,sBAAwB,IAAI3M,GAA2BrjF,EAAYgwF,2BACrE,CACH,IAAIzvF,EAAoBP,EAAYgwF,sBAAsB,eAC1DzvF,EAAYA,EAAUC,OAAOD,EAAUE,YAAY,KAAO,GAAGjH,OAAO,SAChEuG,EAAiBQ,KACjBpN,KAAK68F,sBAAwB,IAAIjwF,EAAiBQ,GAAWP,EAAYgwF,wBAK7E78F,KAAK8uE,UACDjiE,EAAYiiE,WAItBliE,EAAgB,+BAAqCwsF,GAK9C,MAAM0D,WACHzD,GAWVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC1C7M,KAAK+8F,YACDlwF,EAAYkwF,YAEpB/8F,KAAK,eAAiB,yEAIxB4M,EAAgB,4BAAkCkwF,GAK3C,MAAME,WACH3D,GAUVz5F,YAAYiN,GACZge,MAAMhe,GAAaA,EAAcA,GAAe,GAC9C7M,KAAK,eAAiB,sEAIxB4M,EAAgB,yBAA+BowF,GAKxC,MAAM3B,GASbz7F,YAAYiN,GACZA,EAAcA,GAAe,IAG7BD,EAAgB,4CAAkDyuF,sOCrhwC7D,MAAMxwF,EAAqB,MAErBzG,EAAmB,CAElC,SAAa,CACX,IACF,YAEA,KAAS,CACP,IACF,MAEA,SAAa,CACX,IACF,iBAEA,SAAa,CACX,IACF,WAEA,UAAc,CACZ,IACF,YAEA,WAAe,CACb,IACF,MAEA,MAAU,CACR,IAAQ,CACV,UACA,eAEA,kBAAsB,CACpB,IACF,aAEA,QAAY,CACV,IACF,iBAEA,QAAY,CACV,IACF,YAEA,eAAmB,CACjB,IACF,YAEA,aAAiB,CACf,IACF,MAEA,YAAgB,CACd,IACF,MAEA,eAAmB,CACjB,IACF,MAEA,cAAkB,CAChB,IACF,WAEA,cAAkB,CAChB,IACF,WAEA,YAAgB,CACd,IACF,WAEA,UAAc,CACZ,IACF,kBAEA,WAAe,CACb,IACF,eAEA,kCAAsC,CACpC,IACF,MAEA,iCAAqC,CACnC,IACF,kBAEA,gBAAoB,CAClB,IACF,qBAEA,oBAAwB,CACtB,IACF,aAEA,cAAkB,CAChB,IACF,OAQS,IAAK64F,EAqBAC,EA4EAC,EA0BAC,EA+BAC,EA+BAC,EAyCAC,EA0BAC,EA+BAC,EAqBAC,EA+BAC,EAoCAC,EAkEAC,EA8HAC,EAqBAC,EAqBAC,EA0BAC,EA8CAC,EAgBAC,EAgBAC,EAyCAC,EA0BAC,EA0BAC,EAoCAC,EAmDAC,EA0BAC,EA0BAC,EAqBAC,EAoCAC,EAqBAC,EA6DAC,EAmDAC,EAoCAC,EA0BAC,EAgBAC,EA+BAC,EAqBAC,EAqBAC,EAqBAC,EAqBAC,EA0BAC,EA0BAC,EA+BAC,EAqBAC,EA+BAC,EA+BAC,EAqBAC,EAyCAC,EA6IAC,EAgBAC,GA8CAC,GA0BA5yB,GA0GA6yB,GAmDAC,GA0BAC,GA6DAC,GA8CAC,GA0BAC,GAqBAva,GA0BA10C,GA+BAkvD,GA0BAC,GAoCAC,GA+BAC,GA0BAC,GA6DAC,GAyCAC,GAqBAC,GAqBAC,GAoCAC,GAgBAC,GAqBAC,GAoCAC,GA0BAC,GA0BAC,GA0BAC,GAyCAC,GA+BAC,GAmDAC,GAgBAC,GAqBAC,GA0BAC,GA0BAC,GAoCAC,GAqBAC,GAuJAC,GA0BAC,GA0BAC,GA0BAC,GA4EAh4D,GA0BAi4D,GA0BAC,GAgBAC,GAgBAC,GAqBAC,GAgBAC,GAgBAC,GAgBAC,GAgBAC,GAqBAC,GA+BAhyD,GA0BAiyD,GA0BAC,GAgBAC,GAqBAC,GA0BAC,GAqBAC,GAgBAxX,GAiUAyX,GA0BAC,GAgBAC,GAgBAC,GAqBAC,GAqBAC,GAqBAC,GA0BAC,GA0BAC,GAwDAC,GAqBAC,GA+BAC,GAqBAC,GAqBAC,GA0BAC,GAqBAC,GAgnCAC,GAqBAC,GA+BAC,GA0BAC,GA+BAC,GA0BAC,GAqBAC,GA+BAC,GAgBAC,GA+BAC,GAqBAC,GAqBAzoC,GAgBA0oC,GA0BAC,GAsFAC,GA+BAC,GA0BAC,GAyCAC,GAyCAC,GA0BAC,GAqBAC,GAqBAC,GA0BA3X,GAgBAO,GAqBAM,GAkEA+W,GA+BAC,GAyCAC,GAoCAC,GAuEAC,GAyCAC,GAqBAC,GAoCAC,GA0BAC,GAqBAC,GAqBAC,GAoCAC,GA0BAC,GA8CAC,GA0BAC,GA0GAC,GAgBAC,GAoCAC,GAgBAC,GAoCAC,GA+GAC,GAgBAxvB,GA0BAyvB,GAwDAC,GAoCAC,GAqBAC,GAgBAC,GAmDAC,GAqBAC,GAgBAC,GA6DAC,GAqBAC,GAiKAC,GA+BAC,GA0BAC,GAqBAC,GAyCAC,GAqBAC,GA+BAC,GAqBAC,GA8CAC,GAsFAC,GA8MAC,GA24DAC,GAsKAC,GAwSAC,GA8CAC,GAgBAC,GA8MAC,GA+BAC,GAqBAC,GAuJAC,GAgBAC,GAyCAC,GAgBAC,GAgBAC,GAgBAC,GAmDAC,IA/uVZ,SAAYnM,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,IAAAA,EAAkB,KAqB9B,SAAYC,GAKRA,EAAAA,EAAAA,wBAAAA,GAAAA,0BAKAA,EAAAA,EAAAA,uBAAAA,GAAAA,yBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,UAtEJ,CAAYA,IAAAA,EAAQ,KA4EpB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SApBJ,CAAYA,IAAAA,EAAgB,KA0B5B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAzBJ,CAAYA,IAAAA,EAA6B,KA+BzC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAzBJ,CAAYA,IAAAA,EAA8B,KA+B1C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAnCJ,CAAYA,IAAAA,EAAsB,KAyClC,SAAYC,GAKRA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aApBJ,CAAYA,IAAAA,EAAyB,KA0BrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAzBJ,CAAYA,IAAAA,EAAqB,KA+BjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAfJ,CAAYA,IAAAA,EAAwB,KAqBpC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAzBJ,CAAYA,IAAAA,EAAoB,KA+BhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UA9BJ,CAAYA,IAAAA,EAAW,KAoCvB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,0BAAAA,IAAAA,4BAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,4BAAAA,IAAAA,8BA5DJ,CAAYA,IAAAA,EAAsB,KAkElC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,2BAAAA,GAAAA,6BAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,iBAAAA,IAAAA,mBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAxHJ,CAAYA,IAAAA,EAAoB,KA8HhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,IAAAA,EAAmB,KAqB/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAfJ,CAAYA,IAAAA,EAAS,KAqBrB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SApBJ,CAAYA,IAAAA,EAAY,KA0BxB,SAAYC,GAKRA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,4BAAAA,GAAAA,8BAKAA,EAAAA,EAAAA,uBAAAA,GAAAA,yBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAxCJ,CAAYA,IAAAA,EAAyB,KA8CrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAVJ,CAAYA,IAAAA,EAAgB,KAgB5B,SAAYC,GAKRA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAVJ,CAAYA,IAAAA,EAAgB,KAgB5B,SAAYC,GAKRA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAnCJ,CAAYA,IAAAA,EAAmB,KAyC/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SApBJ,CAAYA,IAAAA,EAA6B,KA0BzC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,2BAAAA,GAAAA,6BAKAA,EAAAA,EAAAA,0BAAAA,GAAAA,4BApBJ,CAAYA,IAAAA,EAAwB,KA0BpC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WA9BJ,CAAYA,IAAAA,EAAoB,KAoChC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OA7CJ,CAAYA,IAAAA,EAAW,KAmDvB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBApBJ,CAAYA,IAAAA,EAAO,KA0BnB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,gCAAAA,GAAAA,kCAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAKAA,EAAAA,EAAAA,+BAAAA,GAAAA,iCApBJ,CAAYA,IAAAA,EAAwB,KA0BpC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,IAAAA,EAAwC,KAqBpD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBA9BJ,CAAYA,IAAAA,EAAuB,KAoCnC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAfJ,CAAYA,IAAAA,EAAsC,KAqBlD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,wBAAAA,GAAAA,0BAKAA,EAAAA,EAAAA,wBAAAA,GAAAA,0BAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAvDJ,CAAYA,IAAAA,EAA6C,KA6DzD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YA7CJ,CAAYA,IAAAA,EAA4C,KAmDxD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBA9BJ,CAAYA,IAAAA,EAA2B,KAoCvC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QApBJ,CAAYA,IAAAA,EAAqC,KA0BjD,SAAYC,GAKRA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAVJ,CAAYA,IAAAA,EAAsB,KAgBlC,SAAYC,GAKRA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAzBJ,CAAYA,IAAAA,EAAU,KA+BtB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAfJ,CAAYA,IAAAA,EAA0B,KAqBtC,SAAYC,GAKRA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,IAAAA,EAAiB,KAqB7B,SAAYC,GAKRA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,IAAAA,EAAe,KAqB3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAfJ,CAAYA,IAAAA,EAAsB,KAqBlC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QApBJ,CAAYA,IAAAA,EAAyC,KA0BrD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,wBAAAA,GAAAA,0BAKAA,EAAAA,EAAAA,oDAAAA,GAAAA,sDAKAA,EAAAA,EAAAA,uCAAAA,GAAAA,yCApBJ,CAAYA,IAAAA,EAAoC,KA0BhD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,gCAAAA,GAAAA,kCAKAA,EAAAA,EAAAA,kCAAAA,GAAAA,oCAKAA,EAAAA,EAAAA,0CAAAA,GAAAA,4CAKAA,EAAAA,EAAAA,yBAAAA,GAAAA,2BAzBJ,CAAYA,IAAAA,EAAmC,KA+B/C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAfJ,CAAYA,IAAAA,EAAoB,KAqBhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAzBJ,CAAYA,IAAAA,EAAwB,KA+BpC,SAAYC,GAKRA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAzBJ,CAAYA,IAAAA,EAAa,KA+BzB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,8BAAAA,GAAAA,gCAKAA,EAAAA,EAAAA,wCAAAA,GAAAA,0CAfJ,CAAYA,IAAAA,EAAmB,KAqB/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,0BAAAA,GAAAA,4BAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAnCJ,CAAYA,IAAAA,EAAiB,KAyC7B,SAAYC,GAKRA,EAAAA,EAAAA,mFAAAA,GAAAA,qFAKAA,EAAAA,EAAAA,4FAAAA,GAAAA,8FAKAA,EAAAA,EAAAA,2FAAAA,GAAAA,6FAKAA,EAAAA,EAAAA,8GAAAA,GAAAA,gHAKAA,EAAAA,EAAAA,sHAAAA,GAAAA,wHAKAA,EAAAA,EAAAA,mEAAAA,GAAAA,qEAKAA,EAAAA,EAAAA,2GAAAA,GAAAA,6GAKAA,EAAAA,EAAAA,sGAAAA,GAAAA,wGAKAA,EAAAA,EAAAA,6EAAAA,GAAAA,+EAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAKAA,EAAAA,EAAAA,qEAAAA,IAAAA,uEAKAA,EAAAA,EAAAA,qFAAAA,IAAAA,uFAKAA,EAAAA,EAAAA,sGAAAA,IAAAA,wGAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAKAA,EAAAA,EAAAA,wFAAAA,IAAAA,0FAKAA,EAAAA,EAAAA,uFAAAA,IAAAA,yFAKAA,EAAAA,EAAAA,yFAAAA,IAAAA,2FAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,sFAAAA,IAAAA,wFAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,yFAAAA,IAAAA,2FAKAA,EAAAA,EAAAA,wFAAAA,IAAAA,0FAKAA,EAAAA,EAAAA,sGAAAA,IAAAA,wGAKAA,EAAAA,EAAAA,4FAAAA,IAAAA,8FAKAA,EAAAA,EAAAA,wFAAAA,IAAAA,0FAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,gFAAAA,IAAAA,kFAvIJ,CAAYA,IAAAA,EAAyB,KA6IrC,SAAYC,GAKRA,EAAAA,EAAAA,GAAAA,GAAAA,KAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAVJ,CAAYA,IAAAA,EAAiC,KAgB7C,SAAYC,GAKRA,EAAAA,EAAAA,uFAAAA,GAAAA,yFAKAA,EAAAA,EAAAA,0FAAAA,GAAAA,4FAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,kFAAAA,GAAAA,oFAKAA,EAAAA,EAAAA,iFAAAA,GAAAA,mFAKAA,EAAAA,EAAAA,kEAAAA,GAAAA,oEAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAxCJ,CAAYA,KAAAA,GAA2B,KA8CvC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aApBJ,CAAYA,KAAAA,GAAoB,KA0BhC,SAAY5yB,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,8BAAAA,IAAAA,gCAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,IAAAA,IAAAA,MAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBApGJ,CAAYA,KAAAA,GAAW,KA0GvB,SAAY6yB,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,MAAAA,IAAAA,QAKAA,EAAAA,EAAAA,MAAAA,IAAAA,QA7CJ,CAAYA,KAAAA,GAAiB,KAmD7B,SAAYC,GAKRA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WApBJ,CAAYA,KAAAA,GAAsB,KA0BlC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAvDJ,CAAYA,KAAAA,GAAe,KA6D3B,SAAYC,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAxCJ,CAAYA,KAAAA,GAAiB,KA8C7B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UApBJ,CAAYA,KAAAA,GAAqB,KA0BjC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAfJ,CAAYA,KAAAA,GAAkB,KAqB9B,SAAYva,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aApBJ,CAAYA,KAAAA,GAAW,KA0BvB,SAAY10C,GAKRA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,+BAAAA,GAAAA,iCAzBJ,CAAYA,KAAAA,GAAe,KA+B3B,SAAYkvD,GAKRA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBApBJ,CAAYA,KAAAA,GAAsB,KA0BlC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBA9BJ,CAAYA,KAAAA,GAAgB,KAoC5B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAzBJ,CAAYA,KAAAA,GAAkB,KA+B9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBApBJ,CAAYA,KAAAA,GAAoB,KA0BhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAvDJ,CAAYA,KAAAA,GAAmB,KA6D/B,SAAYC,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAnCJ,CAAYA,KAAAA,GAAkB,KAyC9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAfJ,CAAYA,KAAAA,GAAY,KAqBxB,SAAYC,GAKRA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAfJ,CAAYA,KAAAA,GAAU,KAqBtB,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eA9BJ,CAAYA,KAAAA,GAAY,KAoCxB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAVJ,CAAYA,KAAAA,GAAQ,KAgBpB,SAAYC,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,KAAAA,GAAwB,KAqBpC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aA9BJ,CAAYA,KAAAA,GAAgB,KAoC5B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBApBJ,CAAYA,KAAAA,GAAoB,KA0BhC,SAAYC,GAKRA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WApBJ,CAAYA,KAAAA,GAAqB,KA0BjC,SAAYC,GAKRA,EAAAA,EAAAA,GAAAA,GAAAA,KAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QApBJ,CAAYA,KAAAA,GAAyB,KA0BrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAnCJ,CAAYA,KAAAA,GAAsB,KAyClC,SAAYC,GAKRA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAzBJ,CAAYA,KAAAA,GAAuB,KA+BnC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,MAAAA,IAAAA,QAKAA,EAAAA,EAAAA,MAAAA,IAAAA,QA7CJ,CAAYA,KAAAA,GAAmB,KAmD/B,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAVJ,CAAYA,KAAAA,GAAkB,KAgB9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAfJ,CAAYA,KAAAA,GAAa,KAqBzB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,GAAAA,GAAAA,KAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAc,KA0B1B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAA2B,KA0BvC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SA9BJ,CAAYA,KAAAA,GAA2B,KAoCvC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAfJ,CAAYA,KAAAA,GAAsB,KAqBlC,SAAYC,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,iBAAAA,IAAAA,mBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAjJJ,CAAYA,KAAAA,GAAe,KAuJ3B,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAgC,KA0B5C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBApBJ,CAAYA,KAAAA,GAA8B,KA0B1C,SAAYC,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QApBJ,CAAYA,KAAAA,GAA2C,KA0BvD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAtEJ,CAAYA,KAAAA,GAAqB,KA4EjC,SAAYh4D,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAe,KA0B3B,SAAYi4D,GAKRA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAKAA,EAAAA,EAAAA,yBAAAA,GAAAA,2BAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAkB,KA0B9B,SAAYC,GAKRA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAVJ,CAAYA,KAAAA,GAAuB,KAgBnC,SAAYC,GAKRA,EAAAA,EAAAA,0BAAAA,GAAAA,4BAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAVJ,CAAYA,KAAAA,GAA4B,KAgBxC,SAAYC,GAKRA,EAAAA,EAAAA,uBAAAA,GAAAA,yBAKAA,EAAAA,EAAAA,qBAAAA,GAAAA,uBAKAA,EAAAA,EAAAA,iCAAAA,GAAAA,mCAfJ,CAAYA,KAAAA,GAAiB,KAqB7B,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAVJ,CAAYA,KAAAA,GAAwB,KAgBpC,SAAYC,GAKRA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAVJ,CAAYA,KAAAA,GAA4B,KAgBxC,SAAYC,GAKRA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAVJ,CAAYA,KAAAA,GAAqC,KAgBjD,SAAYC,GAKRA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAVJ,CAAYA,KAAAA,GAAiB,KAgB7B,SAAYC,GAKRA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,KAAAA,GAAc,KAqB1B,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAzBJ,CAAYA,KAAAA,GAAsB,KA+BlC,SAAYhyD,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UApBJ,CAAYA,KAAAA,GAAU,KA0BtB,SAAYiyD,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAe,KA0B3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAVJ,CAAYA,KAAAA,GAAkB,KAgB9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAfJ,CAAYA,KAAAA,GAAe,KAqB3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAwB,KA0BpC,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,KAAAA,GAA8B,KAqB1C,SAAYC,GAKRA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAVJ,CAAYA,KAAAA,GAAkC,KAgB9C,SAAYxX,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,uBAAAA,GAAAA,yBAKAA,EAAAA,EAAAA,yBAAAA,GAAAA,2BAKAA,EAAAA,EAAAA,6BAAAA,GAAAA,+BAKAA,EAAAA,EAAAA,8BAAAA,GAAAA,gCAKAA,EAAAA,EAAAA,kCAAAA,GAAAA,oCAKAA,EAAAA,EAAAA,oCAAAA,GAAAA,sCAKAA,EAAAA,EAAAA,wCAAAA,IAAAA,0CAKAA,EAAAA,EAAAA,uBAAAA,IAAAA,yBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,iBAAAA,IAAAA,mBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,8BAAAA,IAAAA,gCAKAA,EAAAA,EAAAA,kCAAAA,IAAAA,oCAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBA3TJ,CAAYA,KAAAA,GAAW,KAiUvB,SAAYyX,GAKRA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aApBJ,CAAYA,KAAAA,GAAa,KA0BzB,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAVJ,CAAYA,KAAAA,GAAY,KAgBxB,SAAYC,GAKRA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAVJ,CAAYA,KAAAA,GAAgB,KAgB5B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAfJ,CAAYA,KAAAA,GAAsB,KAqBlC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,KAAAA,GAA4B,KAqBxC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAfJ,CAAYA,KAAAA,GAA0B,KAqBtC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MApBJ,CAAYA,KAAAA,GAAc,KA0B1B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBApBJ,CAAYA,KAAAA,GAAe,KA0B3B,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,uBAAAA,GAAAA,yBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAlDJ,CAAYA,KAAAA,GAAoB,KAwDhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAfJ,CAAYA,KAAAA,GAAqB,KAqBjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAzBJ,CAAYA,KAAAA,GAAe,KA+B3B,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,UAfJ,CAAYA,KAAAA,GAAqB,KAqBjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAfJ,CAAYA,KAAAA,GAA+B,KAqB3C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aApBJ,CAAYA,KAAAA,GAA+B,KA0B3C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,KAAAA,GAAiC,KAqB7C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,UAAAA,KAAAA,YAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,uBAAAA,KAAAA,yBAKAA,EAAAA,EAAAA,2BAAAA,KAAAA,6BAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,uBAAAA,KAAAA,yBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,8BAAAA,KAAAA,gCAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,mCAAAA,KAAAA,qCAKAA,EAAAA,EAAAA,QAAAA,KAAAA,UAKAA,EAAAA,EAAAA,QAAAA,KAAAA,UAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,SAAAA,KAAAA,WAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,wBAAAA,KAAAA,0BAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,uBAAAA,KAAAA,yBAKAA,EAAAA,EAAAA,uCAAAA,KAAAA,yCAKAA,EAAAA,EAAAA,6BAAAA,KAAAA,+BAKAA,EAAAA,EAAAA,UAAAA,KAAAA,YAKAA,EAAAA,EAAAA,QAAAA,KAAAA,UAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,6BAAAA,KAAAA,+BAKAA,EAAAA,EAAAA,UAAAA,KAAAA,YAKAA,EAAAA,EAAAA,wBAAAA,KAAAA,0BAKAA,EAAAA,EAAAA,2BAAAA,KAAAA,6BAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,0BAAAA,KAAAA,4BAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,2BAAAA,KAAAA,6BAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,OAAAA,KAAAA,SAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,uBAAAA,KAAAA,yBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,2BAAAA,KAAAA,6BAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,wBAAAA,KAAAA,0BAKAA,EAAAA,EAAAA,qCAAAA,KAAAA,uCAKAA,EAAAA,EAAAA,8BAAAA,KAAAA,gCAKAA,EAAAA,EAAAA,uCAAAA,KAAAA,yCAKAA,EAAAA,EAAAA,gCAAAA,KAAAA,kCAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,uBAAAA,KAAAA,yBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,MAAAA,KAAAA,QAKAA,EAAAA,EAAAA,OAAAA,KAAAA,SAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,wBAAAA,KAAAA,0BAKAA,EAAAA,EAAAA,8BAAAA,KAAAA,gCAKAA,EAAAA,EAAAA,4BAAAA,KAAAA,8BAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,KAAAA,sBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,aAAAA,KAAAA,eAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,KAAAA,kBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,kBAAAA,KAAAA,oBAKAA,EAAAA,EAAAA,eAAAA,KAAAA,iBAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,yBAAAA,KAAAA,2BAKAA,EAAAA,EAAAA,sBAAAA,KAAAA,wBAKAA,EAAAA,EAAAA,cAAAA,KAAAA,gBAKAA,EAAAA,EAAAA,iBAAAA,KAAAA,mBAKAA,EAAAA,EAAAA,qBAAAA,KAAAA,uBAKAA,EAAAA,EAAAA,mBAAAA,KAAAA,qBAKAA,EAAAA,EAAAA,0BAAAA,KAAAA,4BAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAKAA,EAAAA,EAAAA,WAAAA,MAAAA,aAKAA,EAAAA,EAAAA,kBAAAA,MAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,MAAAA,kBAKAA,EAAAA,EAAAA,aAAAA,MAAAA,eAKAA,EAAAA,EAAAA,WAAAA,MAAAA,aAKAA,EAAAA,EAAAA,OAAAA,MAAAA,SAKAA,EAAAA,EAAAA,OAAAA,MAAAA,SAKAA,EAAAA,EAAAA,aAAAA,MAAAA,eAKAA,EAAAA,EAAAA,aAAAA,MAAAA,eAKAA,EAAAA,EAAAA,uBAAAA,MAAAA,yBAKAA,EAAAA,EAAAA,mBAAAA,MAAAA,qBAKAA,EAAAA,EAAAA,WAAAA,MAAAA,aAKAA,EAAAA,EAAAA,cAAAA,MAAAA,gBAKAA,EAAAA,EAAAA,SAAAA,MAAAA,WAKAA,EAAAA,EAAAA,SAAAA,MAAAA,WAKAA,EAAAA,EAAAA,sBAAAA,MAAAA,wBAKAA,EAAAA,EAAAA,mBAAAA,MAAAA,qBAKAA,EAAAA,EAAAA,eAAAA,MAAAA,iBAKAA,EAAAA,EAAAA,cAAAA,MAAAA,gBAKAA,EAAAA,EAAAA,eAAAA,MAAAA,iBAKAA,EAAAA,EAAAA,sBAAAA,MAAAA,wBAKAA,EAAAA,EAAAA,QAAAA,MAAAA,UAKAA,EAAAA,EAAAA,WAAAA,MAAAA,aAKAA,EAAAA,EAAAA,0BAAAA,MAAAA,4BAKAA,EAAAA,EAAAA,uBAAAA,MAAAA,yBAKAA,EAAAA,EAAAA,0BAAAA,MAAAA,4BAKAA,EAAAA,EAAAA,kCAAAA,MAAAA,oCAKAA,EAAAA,EAAAA,qBAAAA,MAAAA,uBAKAA,EAAAA,EAAAA,2BAAAA,MAAAA,6BAKAA,EAAAA,EAAAA,yBAAAA,MAAAA,2BAKAA,EAAAA,EAAAA,QAAAA,OAAAA,UA1mCJ,CAAYA,KAAAA,GAAe,KAgnC3B,SAAYC,GAKRA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAfJ,CAAYA,KAAAA,GAAW,KAqBvB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAzBJ,CAAYA,KAAAA,GAAe,KA+B3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UApBJ,CAAYA,KAAAA,GAAuB,KA0BnC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAzBJ,CAAYA,KAAAA,GAAoB,KA+BhC,SAAYC,GAKRA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UApBJ,CAAYA,KAAAA,GAAqB,KA0BjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAfJ,CAAYA,KAAAA,GAAmB,KAqB/B,SAAYC,GAKRA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAzBJ,CAAYA,KAAAA,GAAiB,KA+B7B,SAAYC,GAKRA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAVJ,CAAYA,KAAAA,GAAkB,KAgB9B,SAAYC,GAKRA,EAAAA,EAAAA,0BAAAA,GAAAA,4BAKAA,EAAAA,EAAAA,+BAAAA,GAAAA,iCAKAA,EAAAA,EAAAA,+CAAAA,GAAAA,iDAKAA,EAAAA,EAAAA,gDAAAA,GAAAA,kDAKAA,EAAAA,EAAAA,oDAAAA,GAAAA,sDAzBJ,CAAYA,KAAAA,GAAoC,KA+BhD,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAfJ,CAAYA,KAAAA,GAA2C,KAqBvD,SAAYC,GAKRA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,KAAAA,GAAqB,KAqBjC,SAAYzoC,GAKRA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAVJ,CAAYA,KAAAA,GAAiC,KAgB7C,SAAY0oC,GAKRA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,UApBJ,CAAYA,KAAAA,GAAsC,KA0BlD,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAhFJ,CAAYA,KAAAA,GAAoB,KAsFhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,yBAAAA,GAAAA,2BAzBJ,CAAYA,KAAAA,GAAsB,KA+BlC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAU,KA0BtB,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAnCJ,CAAYA,KAAAA,GAAgB,KAyC5B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,0BAAAA,GAAAA,4BAKAA,EAAAA,EAAAA,yBAAAA,GAAAA,2BAnCJ,CAAYA,KAAAA,GAAW,KAyCvB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAiB,KA0B7B,SAAYC,GAKRA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,KAAAA,GAAe,KAqB3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,OAfJ,CAAYA,KAAAA,GAAa,KAqBzB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WApBJ,CAAYA,KAAAA,GAA2B,KA0BvC,SAAY3X,GAKRA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAVJ,CAAYA,KAAAA,GAAkB,KAgB9B,SAAYO,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,OAAAA,IAAAA,SAKAA,EAAAA,EAAAA,WAAAA,KAAAA,aAfJ,CAAYA,KAAAA,GAAc,KAqB1B,SAAYM,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,YAAAA,KAAAA,cA5DJ,CAAYA,KAAAA,GAAY,KAkExB,SAAY+W,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAzBJ,CAAYA,KAAAA,GAAe,KA+B3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAnCJ,CAAYA,KAAAA,GAAe,KAyC3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YA9BJ,CAAYA,KAAAA,GAAmC,KAoC/C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAjEJ,CAAYA,KAAAA,GAAsB,KAuElC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAnCJ,CAAYA,KAAAA,GAA4B,KAyCxC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAfJ,CAAYA,KAAAA,GAA8B,KAqB1C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBA9BJ,CAAYA,KAAAA,GAAQ,KAoCpB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SApBJ,CAAYA,KAAAA,GAAU,KA0BtB,SAAYC,GAKRA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,oBAAAA,GAAAA,sBAfJ,CAAYA,KAAAA,GAA+B,KAqB3C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAfJ,CAAYA,KAAAA,GAAY,KAqBxB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MA9BJ,CAAYA,KAAAA,GAAe,KAoC3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YApBJ,CAAYA,KAAAA,GAAe,KA0B3B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,2BAAAA,GAAAA,6BAxCJ,CAAYA,KAAAA,GAAyB,KA8CrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YApBJ,CAAYA,KAAAA,GAAmB,KA0B/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,aAAAA,IAAAA,eAKAA,EAAAA,EAAAA,KAAAA,IAAAA,OAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,IAAAA,IAAAA,MAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YApGJ,CAAYA,KAAAA,GAAc,KA0G1B,SAAYC,GAKRA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAVJ,CAAYA,KAAAA,GAAiB,KAgB7B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,sBAAAA,GAAAA,wBA9BJ,CAAYA,KAAAA,GAA2B,KAoCvC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAVJ,CAAYA,KAAAA,GAAkB,KAgB9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UA9BJ,CAAYA,KAAAA,GAAW,KAoCvB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,MAAAA,IAAAA,QAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,qBAAAA,IAAAA,uBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAzGJ,CAAYA,KAAAA,GAAmB,KA+G/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAVJ,CAAYA,KAAAA,GAAgB,KAgB5B,SAAYxvB,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WApBJ,CAAYA,KAAAA,GAAe,KA0B3B,SAAYyvB,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,wBAAAA,GAAAA,0BAlDJ,CAAYA,KAAAA,GAAkB,KAwD9B,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cA9BJ,CAAYA,KAAAA,GAAyB,KAoCrC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAfJ,CAAYA,KAAAA,GAAyB,KAqBrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAVJ,CAAYA,KAAAA,GAAqB,KAgBjC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,eAAAA,GAAAA,iBAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cA7CJ,CAAYA,KAAAA,GAAqB,KAmDjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAfJ,CAAYA,KAAAA,GAAmB,KAqB/B,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAVJ,CAAYA,KAAAA,GAAoB,KAgBhC,SAAYC,GAKRA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,gBAAAA,GAAAA,kBAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,mBAAAA,GAAAA,qBAKAA,EAAAA,EAAAA,sBAAAA,IAAAA,wBAvDJ,CAAYA,KAAAA,GAAc,KA6D1B,SAAYC,GAKRA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAfJ,CAAYA,KAAAA,GAAkB,KAqB9B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,kBAAAA,GAAAA,oBAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,SAAAA,IAAAA,WAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,YAAAA,IAAAA,cAKAA,EAAAA,EAAAA,uBAAAA,IAAAA,yBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,cAAAA,IAAAA,gBAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,WAAAA,IAAAA,aAKAA,EAAAA,EAAAA,oBAAAA,IAAAA,sBAKAA,EAAAA,EAAAA,UAAAA,IAAAA,YAKAA,EAAAA,EAAAA,QAAAA,IAAAA,UAKAA,EAAAA,EAAAA,eAAAA,IAAAA,iBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,gBAAAA,IAAAA,kBAKAA,EAAAA,EAAAA,mBAAAA,IAAAA,qBAKAA,EAAAA,EAAAA,kBAAAA,IAAAA,oBA3JJ,CAAYA,KAAAA,GAA0B,KAiKtC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAzBJ,CAAYA,KAAAA,GAA6C,KA+BzD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OApBJ,CAAYA,KAAAA,GAAwC,KA0BpD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAKAA,EAAAA,EAAAA,OAAAA,GAAAA,SAfJ,CAAYA,KAAAA,GAA+C,KAqB3D,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,aAAAA,GAAAA,eAKAA,EAAAA,EAAAA,iBAAAA,GAAAA,mBAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAnCJ,CAAYA,KAAAA,GAAmC,KAyC/C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,0BAAAA,GAAAA,4BAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAfJ,CAAYA,KAAAA,GAAsC,KAqBlD,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,UAAAA,GAAAA,YAzBJ,CAAYA,KAAAA,GAAqB,KA+BjC,SAAYC,GAKRA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,WAAAA,GAAAA,aAKAA,EAAAA,EAAAA,YAAAA,GAAAA,cAfJ,CAAYA,KAAAA,GAAoB,KAqBhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAKAA,EAAAA,EAAAA,wEAAAA,GAAAA,0EAKAA,EAAAA,EAAAA,+DAAAA,GAAAA,iEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,uFAAAA,GAAAA,yFAKAA,EAAAA,EAAAA,wGAAAA,GAAAA,0GAKAA,EAAAA,EAAAA,yGAAAA,GAAAA,2GAxCJ,CAAYA,KAAAA,GAA4B,KA8CxC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,oEAAAA,GAAAA,sEAKAA,EAAAA,EAAAA,oEAAAA,GAAAA,sEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,mFAAAA,GAAAA,qFAKAA,EAAAA,EAAAA,8DAAAA,GAAAA,gEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,gFAAAA,GAAAA,kFAKAA,EAAAA,EAAAA,qEAAAA,GAAAA,uEAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,8DAAAA,IAAAA,gEAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAhFJ,CAAYA,KAAAA,GAAmB,KAsF/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,kEAAAA,GAAAA,oEAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,oEAAAA,GAAAA,sEAKAA,EAAAA,EAAAA,oEAAAA,GAAAA,sEAKAA,EAAAA,EAAAA,8DAAAA,IAAAA,gEAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,qEAAAA,IAAAA,uEAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,8DAAAA,IAAAA,gEAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,qFAAAA,IAAAA,uFAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,4EAAAA,IAAAA,8EAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,0DAAAA,IAAAA,4DAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAxMJ,CAAYA,KAAAA,GAAmB,KA8M/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,+BAAAA,GAAAA,iCAKAA,EAAAA,EAAAA,kCAAAA,GAAAA,oCAKAA,EAAAA,EAAAA,sCAAAA,GAAAA,wCAKAA,EAAAA,EAAAA,wEAAAA,GAAAA,0EAKAA,EAAAA,EAAAA,uDAAAA,GAAAA,yDAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,wDAAAA,GAAAA,0DAKAA,EAAAA,EAAAA,8DAAAA,GAAAA,gEAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,yFAAAA,IAAAA,2FAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,kDAAAA,IAAAA,oDAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,oFAAAA,IAAAA,sFAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,+CAAAA,IAAAA,iDAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,4EAAAA,IAAAA,8EAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,iFAAAA,IAAAA,mFAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,8EAAAA,IAAAA,gFAKAA,EAAAA,EAAAA,0FAAAA,IAAAA,4FAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,kDAAAA,IAAAA,oDAKAA,EAAAA,EAAAA,gDAAAA,IAAAA,kDAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,8DAAAA,IAAAA,gEAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,sDAAAA,IAAAA,wDAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,kDAAAA,IAAAA,oDAKAA,EAAAA,EAAAA,kDAAAA,IAAAA,oDAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAKAA,EAAAA,EAAAA,4EAAAA,IAAAA,8EAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,iFAAAA,IAAAA,mFAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,iEAAAA,IAAAA,mEAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,6FAAAA,IAAAA,+FAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,8EAAAA,IAAAA,gFAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,2DAAAA,KAAAA,6DAKAA,EAAAA,EAAAA,+EAAAA,KAAAA,iFAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,iGAAAA,KAAAA,mGAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,oFAAAA,KAAAA,sFAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,mFAAAA,KAAAA,qFAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,2DAAAA,KAAAA,6DAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,6EAAAA,KAAAA,+EAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,kFAAAA,KAAAA,oFAKAA,EAAAA,EAAAA,mFAAAA,KAAAA,qFAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,oDAAAA,KAAAA,sDAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,kDAAAA,KAAAA,oDAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,sDAAAA,KAAAA,wDAKAA,EAAAA,EAAAA,iDAAAA,KAAAA,mDAKAA,EAAAA,EAAAA,sFAAAA,KAAAA,wFAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,uGAAAA,KAAAA,yGAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,kDAAAA,KAAAA,oDAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,sDAAAA,KAAAA,wDAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,mDAAAA,KAAAA,qDAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,oFAAAA,KAAAA,sFAKAA,EAAAA,EAAAA,sFAAAA,KAAAA,wFAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,4FAAAA,KAAAA,8FAKAA,EAAAA,EAAAA,mGAAAA,KAAAA,qGAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,+EAAAA,KAAAA,iFAKAA,EAAAA,EAAAA,oDAAAA,KAAAA,sDAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,0FAAAA,KAAAA,4FAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,2DAAAA,KAAAA,6DAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,gFAAAA,KAAAA,kFAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,oFAAAA,KAAAA,sFAKAA,EAAAA,EAAAA,sFAAAA,KAAAA,wFAKAA,EAAAA,EAAAA,4FAAAA,KAAAA,8FAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,oEAAAA,KAAAA,sEAKAA,EAAAA,EAAAA,sDAAAA,KAAAA,wDAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,mFAAAA,KAAAA,qFAKAA,EAAAA,EAAAA,oEAAAA,KAAAA,sEAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,kFAAAA,KAAAA,oFAKAA,EAAAA,EAAAA,iFAAAA,KAAAA,mFAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,kFAAAA,KAAAA,oFAKAA,EAAAA,EAAAA,2FAAAA,KAAAA,6FAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,sDAAAA,KAAAA,wDAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,yCAAAA,KAAAA,2CAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,sDAAAA,KAAAA,wDAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,6DAAAA,KAAAA,+DAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,iFAAAA,KAAAA,mFAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,+EAAAA,KAAAA,iFAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,2FAAAA,KAAAA,6FAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,+DAAAA,KAAAA,iEAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,mFAAAA,KAAAA,qFAKAA,EAAAA,EAAAA,4FAAAA,KAAAA,8FAKAA,EAAAA,EAAAA,oEAAAA,KAAAA,sEAKAA,EAAAA,EAAAA,qFAAAA,KAAAA,uFAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,uFAAAA,KAAAA,yFAKAA,EAAAA,EAAAA,mEAAAA,KAAAA,qEAKAA,EAAAA,EAAAA,8FAAAA,KAAAA,gGAKAA,EAAAA,EAAAA,+FAAAA,KAAAA,iGAKAA,EAAAA,EAAAA,6EAAAA,KAAAA,+EAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,kFAAAA,KAAAA,oFAKAA,EAAAA,EAAAA,iFAAAA,KAAAA,mFAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,uEAAAA,KAAAA,yEAKAA,EAAAA,EAAAA,+FAAAA,KAAAA,iGAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,qEAAAA,KAAAA,uEAKAA,EAAAA,EAAAA,qGAAAA,KAAAA,uGAKAA,EAAAA,EAAAA,2EAAAA,KAAAA,6EAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,4DAAAA,KAAAA,8DAKAA,EAAAA,EAAAA,2CAAAA,KAAAA,6CAKAA,EAAAA,EAAAA,wDAAAA,KAAAA,0DAKAA,EAAAA,EAAAA,6EAAAA,KAAAA,+EAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,uDAAAA,KAAAA,yDAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,yDAAAA,KAAAA,2DAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,oDAAAA,KAAAA,sDAKAA,EAAAA,EAAAA,oEAAAA,KAAAA,sEAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,kDAAAA,KAAAA,oDAKAA,EAAAA,EAAAA,2FAAAA,KAAAA,6FAKAA,EAAAA,EAAAA,8DAAAA,KAAAA,gEAKAA,EAAAA,EAAAA,0FAAAA,KAAAA,4FAKAA,EAAAA,EAAAA,mGAAAA,KAAAA,qGAKAA,EAAAA,EAAAA,yEAAAA,KAAAA,2EAKAA,EAAAA,EAAAA,oEAAAA,KAAAA,sEAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,+EAAAA,KAAAA,iFAKAA,EAAAA,EAAAA,4FAAAA,KAAAA,8FAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,oGAAAA,KAAAA,sGAKAA,EAAAA,EAAAA,gEAAAA,KAAAA,kEAKAA,EAAAA,EAAAA,qDAAAA,KAAAA,uDAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,wEAAAA,KAAAA,0EAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,gFAAAA,KAAAA,kFAKAA,EAAAA,EAAAA,gGAAAA,KAAAA,kGAKAA,EAAAA,EAAAA,4FAAAA,KAAAA,8FAKAA,EAAAA,EAAAA,gFAAAA,KAAAA,kFAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,gFAAAA,KAAAA,kFAKAA,EAAAA,EAAAA,4EAAAA,KAAAA,8EAKAA,EAAAA,EAAAA,0EAAAA,KAAAA,4EAKAA,EAAAA,EAAAA,kFAAAA,KAAAA,oFAKAA,EAAAA,EAAAA,+FAAAA,KAAAA,iGAKAA,EAAAA,EAAAA,yFAAAA,KAAAA,2FAKAA,EAAAA,EAAAA,8EAAAA,KAAAA,gFAKAA,EAAAA,EAAAA,oFAAAA,KAAAA,sFAKAA,EAAAA,EAAAA,0FAAAA,KAAAA,4FAKAA,EAAAA,EAAAA,sFAAAA,KAAAA,wFAKAA,EAAAA,EAAAA,8FAAAA,KAAAA,gGAKAA,EAAAA,EAAAA,6FAAAA,KAAAA,+FAKAA,EAAAA,EAAAA,oGAAAA,KAAAA,sGAKAA,EAAAA,EAAAA,kEAAAA,KAAAA,oEAKAA,EAAAA,EAAAA,wFAAAA,KAAAA,0FAKAA,EAAAA,EAAAA,kGAAAA,KAAAA,oGAKAA,EAAAA,EAAAA,iEAAAA,KAAAA,mEAKAA,EAAAA,EAAAA,sEAAAA,KAAAA,wEAKAA,EAAAA,EAAAA,0DAAAA,KAAAA,4DAr4DJ,CAAYA,KAAAA,GAAoB,KA24DhC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,4DAAAA,GAAAA,8DAKAA,EAAAA,EAAAA,kEAAAA,GAAAA,oEAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,kEAAAA,GAAAA,oEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,4DAAAA,GAAAA,8DAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,yEAAAA,GAAAA,2EAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,gFAAAA,IAAAA,kFAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,uFAAAA,IAAAA,yFAKAA,EAAAA,EAAAA,wFAAAA,IAAAA,0FAKAA,EAAAA,EAAAA,iEAAAA,IAAAA,mEAKAA,EAAAA,EAAAA,6EAAAA,IAAAA,+EAKAA,EAAAA,EAAAA,iFAAAA,IAAAA,mFAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,2EAAAA,IAAAA,6EAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,gFAAAA,IAAAA,kFAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,wGAAAA,IAAAA,0GAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAKAA,EAAAA,EAAAA,gFAAAA,IAAAA,kFAKAA,EAAAA,EAAAA,4FAAAA,IAAAA,8FAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAhKJ,CAAYA,KAAAA,GAAyB,KAsKrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,wDAAAA,GAAAA,0DAKAA,EAAAA,EAAAA,iEAAAA,GAAAA,mEAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAKAA,EAAAA,EAAAA,qDAAAA,GAAAA,uDAKAA,EAAAA,EAAAA,qDAAAA,GAAAA,uDAKAA,EAAAA,EAAAA,qDAAAA,GAAAA,uDAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,qEAAAA,IAAAA,uEAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,qEAAAA,IAAAA,uEAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,iEAAAA,IAAAA,mEAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,0DAAAA,IAAAA,4DAKAA,EAAAA,EAAAA,mDAAAA,IAAAA,qDAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,0DAAAA,IAAAA,4DAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,uEAAAA,IAAAA,yEAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,wEAAAA,IAAAA,0EAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,iEAAAA,IAAAA,mEAKAA,EAAAA,EAAAA,4EAAAA,IAAAA,8EAKAA,EAAAA,EAAAA,oDAAAA,IAAAA,sDAKAA,EAAAA,EAAAA,kDAAAA,IAAAA,oDAKAA,EAAAA,EAAAA,qDAAAA,IAAAA,uDAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,+EAAAA,IAAAA,iFAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,iFAAAA,IAAAA,mFAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,kFAAAA,IAAAA,oFAKAA,EAAAA,EAAAA,yEAAAA,IAAAA,2EAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,2DAAAA,IAAAA,6DAlSJ,CAAYA,KAAAA,GAAc,KAwS1B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,+DAAAA,GAAAA,iEAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,iDAAAA,GAAAA,mDAxCJ,CAAYA,KAAAA,GAAa,KA8CzB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,uEAAAA,GAAAA,yEAVJ,CAAYA,KAAAA,GAAyB,KAgBrC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,2DAAAA,GAAAA,6DAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,sEAAAA,GAAAA,wEAKAA,EAAAA,EAAAA,4EAAAA,GAAAA,8EAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,+DAAAA,GAAAA,iEAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,0DAAAA,IAAAA,4DAKAA,EAAAA,EAAAA,yDAAAA,IAAAA,2DAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,iEAAAA,IAAAA,mEAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,uDAAAA,IAAAA,yDAKAA,EAAAA,EAAAA,wDAAAA,IAAAA,0DAKAA,EAAAA,EAAAA,0DAAAA,IAAAA,4DAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAKAA,EAAAA,EAAAA,+DAAAA,IAAAA,iEAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,6GAAAA,IAAAA,+GAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,6FAAAA,IAAAA,+FAKAA,EAAAA,EAAAA,sGAAAA,IAAAA,wGAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,qGAAAA,IAAAA,uGAKAA,EAAAA,EAAAA,2FAAAA,IAAAA,6FAKAA,EAAAA,EAAAA,0FAAAA,IAAAA,4FAKAA,EAAAA,EAAAA,8CAAAA,IAAAA,gDAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,8EAAAA,IAAAA,gFAKAA,EAAAA,EAAAA,2FAAAA,IAAAA,6FAKAA,EAAAA,EAAAA,oFAAAA,IAAAA,sFAKAA,EAAAA,EAAAA,0FAAAA,IAAAA,4FAKAA,EAAAA,EAAAA,sEAAAA,IAAAA,wEAKAA,EAAAA,EAAAA,8DAAAA,IAAAA,gEAKAA,EAAAA,EAAAA,+EAAAA,IAAAA,iFAxMJ,CAAYA,KAAAA,GAAa,KA8MzB,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,kEAAAA,GAAAA,oEAKAA,EAAAA,EAAAA,2DAAAA,GAAAA,6DAKAA,EAAAA,EAAAA,qEAAAA,GAAAA,uEAKAA,EAAAA,EAAAA,4FAAAA,GAAAA,8FAzBJ,CAAYA,KAAAA,GAA8B,KA+B1C,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,qEAAAA,GAAAA,uEAKAA,EAAAA,EAAAA,qEAAAA,GAAAA,uEAfJ,CAAYA,KAAAA,GAA0B,KAqBtC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,sDAAAA,GAAAA,wDAKAA,EAAAA,EAAAA,mDAAAA,GAAAA,qDAKAA,EAAAA,EAAAA,sDAAAA,GAAAA,wDAKAA,EAAAA,EAAAA,qDAAAA,GAAAA,uDAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,yDAAAA,GAAAA,2DAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,uFAAAA,IAAAA,yFAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,sFAAAA,IAAAA,wFAKAA,EAAAA,EAAAA,qFAAAA,IAAAA,uFAKAA,EAAAA,EAAAA,iFAAAA,IAAAA,mFAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,uFAAAA,IAAAA,yFAKAA,EAAAA,EAAAA,+EAAAA,IAAAA,iFAKAA,EAAAA,EAAAA,sFAAAA,IAAAA,wFAKAA,EAAAA,EAAAA,yFAAAA,IAAAA,2FAKAA,EAAAA,EAAAA,mFAAAA,IAAAA,qFAKAA,EAAAA,EAAAA,yFAAAA,IAAAA,2FAKAA,EAAAA,EAAAA,mEAAAA,IAAAA,qEAKAA,EAAAA,EAAAA,6DAAAA,IAAAA,+DAKAA,EAAAA,EAAAA,oEAAAA,IAAAA,sEAKAA,EAAAA,EAAAA,4DAAAA,IAAAA,8DAKAA,EAAAA,EAAAA,kEAAAA,IAAAA,oEAKAA,EAAAA,EAAAA,0EAAAA,IAAAA,4EAKAA,EAAAA,EAAAA,gEAAAA,IAAAA,kEAjJJ,CAAYA,KAAAA,GAAuB,KAuJnC,SAAYC,GAKRA,EAAAA,EAAAA,6EAAAA,GAAAA,+EAKAA,EAAAA,EAAAA,wEAAAA,GAAAA,0EAVJ,CAAYA,KAAAA,GAA2B,KAgBvC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DAKAA,EAAAA,EAAAA,oEAAAA,GAAAA,sEAKAA,EAAAA,EAAAA,gEAAAA,GAAAA,kEAKAA,EAAAA,EAAAA,0DAAAA,GAAAA,4DAKAA,EAAAA,EAAAA,+DAAAA,GAAAA,iEAKAA,EAAAA,EAAAA,wFAAAA,GAAAA,0FAnCJ,CAAYA,KAAAA,GAA0B,KAyCtC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAVJ,CAAYA,KAAAA,GAAoC,KAgBhD,SAAYC,GAKRA,EAAAA,EAAAA,IAAAA,GAAAA,MAKAA,EAAAA,EAAAA,IAAAA,GAAAA,MAVJ,CAAYA,KAAAA,GAAuB,KAgBnC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,0CAAAA,GAAAA,4CAVJ,CAAYA,KAAAA,GAAmB,KAgB/B,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,yCAAAA,GAAAA,2CAKAA,EAAAA,EAAAA,2CAAAA,GAAAA,6CAKAA,EAAAA,EAAAA,gDAAAA,GAAAA,kDAKAA,EAAAA,EAAAA,gDAAAA,GAAAA,kDAKAA,EAAAA,EAAAA,wDAAAA,GAAAA,0DAKAA,EAAAA,EAAAA,oDAAAA,GAAAA,sDAKAA,EAAAA,EAAAA,sDAAAA,GAAAA,wDAKAA,EAAAA,EAAAA,6DAAAA,GAAAA,+DA7CJ,CAAYA,KAAAA,GAAqB,KAmDjC,SAAYC,GAKRA,EAAAA,EAAAA,KAAAA,GAAAA,OAKAA,EAAAA,EAAAA,MAAAA,GAAAA,QAKAA,EAAAA,EAAAA,QAAAA,GAAAA,UAKAA,EAAAA,EAAAA,SAAAA,GAAAA,WAKAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAzBJ,CAAYA,KAAAA,GAAiB,kCCn1V1B,IAAKC,GAAZ,SAAYA,GACRA,EAAAA,EAAAA,aAAAA,GAAAA,eACAA,EAAAA,EAAAA,SAAAA,GAAAA,WAFJ,CAAYA,IAAAA,EAAY,2vVCAjB,MAAMC,EAAiBC,GACnBA,GAAQA,EAAK7mG,UAAqC,mBAAlB6mG,EAAK7mG,UAA2B,yBAAA6mG,EAAK7mG,WA2BzE,MAAM8mG,EAiCT5pG,YAAY6pG,GA9BO,KAAA79F,OAA4B,UAI5B,KAAA89F,SAA2B,GAEtC,KAAAC,MAAgB,cAMhB,KAAAC,UAAqC,GAiIrC,KAAAC,eAAkBC,IACtB9pG,KAAK4pG,UAAU7oG,KAAK+oG,GAEpB9pG,KAAK+pG,oBAGD,KAAAA,iBAAmB,KACvB,GAAoB,YAAhB/pG,KAAK4L,OAAT,CAIA,IAAK,MAAMk+F,KAAW9pG,KAAK4pG,UACH,WAAhB5pG,KAAK4L,OACLk+F,EAAQE,OAAOhqG,KAAKmK,OAEpB2/F,EAAQG,UAAUjqG,KAAKiI,QAI/BjI,KAAK4pG,UAAY,KAGb,KAAAM,SAAY5pG,GACTN,KAAKmqG,cAAc7pG,EAAO,WAG7B,KAAA8pG,QAAWC,GACRrqG,KAAKmqG,cAAcE,EAAQ,UAAU,GAzI5C,IACIZ,EAASzpG,KAAKkqG,SAAUlqG,KAAKoqG,SAC/B,MAAOE,GACLtqG,KAAKoqG,QAAQE,IA1BdC,UACH,OAAOvqG,KAAK2pG,MAKK,eAAUrpG,GAC3B,OAAO,IAAIkpG,GAAe1/F,GACfA,EAAQxJ,KAIH,cAAI+pG,GACpB,OAAO,IAAIb,GAAe,CAAC1/F,EAASC,IACzBA,EAAOsgG,KAqBfG,IAAIf,GACPzpG,KAAK4L,OAAS,UACd5L,KAAKmK,WAAQ1I,EACb,IACIgoG,EAASzpG,KAAKkqG,SAAUlqG,KAAKoqG,SAC/B,MAAOE,GACLtqG,KAAKoqG,QAAQE,IASdv/F,KACHk/F,EACAD,GAEA,MAAMS,EAAc,IAAIjB,GAAiC,CAAC1/F,EAASC,IACxD/J,KAAK6pG,eAAe,CACvBI,UAAWhiG,IACP,IAAKgiG,EACD,OAAOngG,EAAQ7B,GAGnB,IACI,OAAO6B,EAAQmgG,EAAUhiG,IAC3B,MAAOqiG,GACL,OAAOvgG,EAAOugG,KAGtBN,OAAQK,IACJ,IAAKL,EACD,OAAOjgG,EAAOsgG,GAGlB,IACI,OAAOvgG,EAAQkgG,EAAOK,IACxB,MAAOC,GACL,OAAOvgG,EAAOugG,SAS9B,OAFAG,EAAYf,SAAW1pG,KAAK0pG,SAErBe,EAOJx/F,MAAuB++F,GAE1B,OAAOhqG,KAAK+K,MADSzK,GAAeA,GACN0pG,GAO3BU,QAAQC,GACX,OAAO,IAAInB,GAAY,CAAC1/F,EAASC,KAC7B,IAAIzJ,EACAsqG,GAAkB,EAEtB,OAAO5qG,KAAK+K,MACR9C,IACI3H,EAAQ2H,EACD0iG,OAEXN,IACIO,GAAS,EACTtqG,EAAQ+pG,EACDM,OAEb5/F,MAAK,IACC6/F,EACO7gG,EAAOzJ,GAGXwJ,EAAQxJ,QAKpBoC,WACH,MAAM,uBAGa,IAAlBsgD,OAAO6nD,eACR,MAAO,uBAiCHV,cAAcliG,EAAiB6iG,GAAsD,IAAxBC,EAAwB,wDAGzFC,YAAW,KACP,MAAoB,YAAhBhrG,KAAK4L,OACE,MAxMHq/F,EA2MOhjG,IA3M4B,iBAARgjG,GAAwC,mBAAbA,EAAIlgG,KA4MtD9C,EAA0B8C,KAAK/K,KAAKkqG,SAAUlqG,KAAKoqG,UAG3DW,EACA/qG,KAAKmK,MAAQlC,EAEbjI,KAAKiI,OAASA,EAGlBjI,KAAK4L,OAASk/F,EAEP9qG,KAAK+pG,oBAvNJkB,IAAAA,IAwNT,KAlMKC,EAAAA,EAAAA,IAAAA,CAAXC,EAAAA,IAAW,6DAEAD,EAAAA,EAAAA,IAAAA,CAAXC,EAAAA,IAAW,6DAEAD,EAAAA,EAAAA,IAAAA,CAAXC,EAAAA,IAAW,sBAAe9hG,QAAf,6BAEA6hG,EAAAA,EAAAA,IAAAA,CAAXC,EAAAA,IAAW,q/MCvCT,MAAMC,GACKA,EAAAA,aAAuB,eACvBA,EAAAA,oBAA8B,eAC9BA,EAAAA,eAAyB,eACzBA,EAAAA,6BAA+B,+BAC/BA,EAAAA,oBAA8B,eAC9BA,EAAAA,yCAAmDA,EAAcC,oBACjED,EAAAA,YAAsB,eACtBA,EAAAA,gBAA0B,eAC1BA,EAAAA,UAAoB,eACpBA,EAAAA,oBAA8B,eAC9BA,EAAAA,uBAAiC,cAM5C,MAAME,GACKA,EAAAA,oEACV,gDACUA,EAAAA,oEACV,gDACUA,EAAAA,+DAAyE,gDACzEA,EAAAA,2DAAqE,gDACrEA,EAAAA,+DAAyE,gDACzEA,EAAAA,2DAAqE,gDACrEA,EAAAA,aAAuB,gDAGlC,MAAMC,EASgC,mCAACC,GACtC,OAA6E,IAAtED,EAAYE,4BAA4B/iG,QAAQ8iG,GAQjB,oCAACE,EAAsBC,EAAoBC,GACjF,IAAIC,EAAY,GACZC,GAAW,EAEf,OAAQH,GACJ,KAAK,IACDE,EAAYT,EAAcW,YAC1B,MACJ,KAAK,IACDF,EAAYT,EAAcY,gBAC1B,MACJ,KAAK,IACDH,EAAYT,EAAca,UAC1B,MACJ,KAAK,IACDJ,EAAYT,EAAcc,oBAC1B,MACJ,KAAK,IACDL,EAAYT,EAAce,oBAC1BL,GAAW,EACX,MACJ,KAAK,IACL,QACID,EAAYT,EAAcgB,aAC1BV,EAAe,mFAIXE,GAAOA,EAAIzlG,UAAYylG,EAAIzlG,SAASkmG,MAAQT,EAAIzlG,SAAShB,YACrDymG,EAAIzlG,SAAShB,WAAWuD,QAAQ,wBAA0B,GACtDkjG,EAAIzlG,SAASkmG,KAAK3jG,QAAQ,yBAA2B,IACrDgjG,EAAeN,EAAckB,wBAUjD,OAJIZ,GAA+C,YAA/BA,EAAaa,gBAC7BV,EAAYT,EAAcoB,gBAGvB,IAAIC,EAAAA,EAAWZ,EAAWH,GAAgBxjG,EAAAA,GAAOA,EAAAA,GAAO4jG,EAAUF,GASpD,mBAAC3lG,GACtB,MAAMymG,EAAqBzmG,EAAaA,EAAOpD,OAAX,EACpC,IAAI8pG,EAAuBD,EAAY,EACvC,IAAK,IAAI9pG,EAAY,EAAGA,EAAI8pG,EAAW9pG,IAE/B+pG,IADA1mG,EAAOrD,KACO+pG,GAAe1mG,EAAOrD,GAAGgqG,UAM/C,OAAOD,EAQsB,2BAAC1mG,GAC9B,IAAIgC,EAAiB,GAErB,IAAI2C,EAAAA,EAAAA,IAAY3E,GAAS,CACrB,MAAM4mG,EAA6B,GACnC,IAAK,MAAM1iG,KAASlE,EAChB4mG,EAAiB9rG,KAAKoJ,EAAMwiD,WAGhC1kD,EAAS4kG,EAAiBzkG,KAAK,MAGnC,OAAOH,EAQmB,wBAAChC,GAC3B,IAAIgC,EAAiB,GAErB,IAAI2C,EAAAA,EAAAA,IAAY3E,GAAS,CACrB,MAAM4mG,EAA6B,GACnC,IAAK,MAAM1iG,KAASlE,EAChB4mG,EAAiB9rG,KAAKoJ,EAAM2iG,uBAGhC7kG,EAAS4kG,EAAiBzkG,KAAK,MAGnC,OAAOH,GAtHIsjG,EAAAA,4BAAwC,CACnD,+DACA,kEACA,sEAGUA,EAAAA,yCAAmD,uJC9B9D,MAAM/kG,EAWsB,yBAAC2D,GAC5B,MAAMhE,EAAWgE,EAAMhE,SACvB,IAAIF,EAAuB,GAC3B,GAAIE,EAAU,CACV,IAAI4mG,GAAU,EAEd,OADAppG,EAAAA,GAAAA,YAAA,0CAAsDwC,EAASwlG,WAA/D,MACQxlG,EAASwlG,YACb,KAAK,IACD,MAAMqB,EAAc7mG,EAASN,QAAT,SACpBsE,EAAM6iG,YAAcA,EACpB/mG,EAAS,CAAC,IAAIwmG,EAAAA,EAAWrB,EAAAA,GAAAA,6BAA4CjlG,EAAS8mG,WAAY/kG,EAAAA,IAAO,EAAOiC,IACxG,MAEJ,KAAK,IAC8C,CAC3C,MAAM+iG,EAA2B,MAC3BC,EAAwB,aAC9B,IACI,MAAMC,EAAa,IAAIC,IAAIC,SAASC,MACpC,GAAIH,EAAWI,aAAa9hG,IAAIyhG,GAC5B,MAEJ,MAAMM,EAAMhnG,SAAS2mG,EAAWI,aAAa9hG,IAAIwhG,GAA2B,KAAO,EACnF,GAAIO,GAAOA,GAAO,EACd,MAEJL,EAAWI,aAAaE,IAAIR,EAA5B,UAAyDO,EAAM,IAC/DH,SAASC,KAAOH,EAAWG,KAC7B,MAAOjD,GACL,OAIR,MAEJ,KAAK,IACDrkG,EAAS,CAAC,IAAIwmG,EAAAA,EAAWrB,EAAAA,GAAAA,eAA8BjlG,EAAS8mG,WAAY/kG,EAAAA,IAAO,EAAOiC,IAC1F,MAEJ,KAAK,EACL,KAAK,IACL,KAAK,IACL,KAAK,IACDlE,EAAS,CAAC,IAAIwmG,EAAAA,EAAWrB,EAAAA,GAAAA,oBAAmCjlG,EAAS8mG,WAAY/kG,EAAAA,IAAO,EAAOiC,IAC/F,MAEJ,QACI4iG,GAAU,EAGbA,IACD9mG,EAASO,EAAYmnG,WAAWxjG,IASxC,OAJKlE,GAAWA,EAAOpD,SACnBoD,EAAS,CAAC,IAAIwmG,EAAAA,EAAWrB,EAAAA,GAAAA,aAA4B,oDAAqDljG,EAAAA,IAAO,EAAOiC,KAGrHlE,EASmC,wCAACkE,GAC3C,IAAIlE,EAAuB,GAE3B,GAAIkE,EACA,IACI,MAAMhE,EAAWgE,EAAMyjG,aAEvB,GAAIznG,EAAU,CACV,MAAM0nG,EAAevkG,KAAKwkG,MAAM3nG,GAI5BF,EADA4nG,EACS,CACL,IAAIpB,EAAAA,EACAoB,EAAavU,gBAAkBuU,EAAavU,gBAAkB8R,EAAAA,GAAAA,aAC9DyC,EAAal9E,SAAW,GACxBzoB,EAAAA,IACA,EACAiC,IAKC,CACL,IAAIsiG,EAAAA,EACArB,EAAAA,GAAAA,aACA,iEACAljG,EAAAA,IACA,EACAiC,SAMZlE,EAAS,CAACslG,EAAAA,GAAAA,6BAAyCphG,EAAM8iG,WAAY9iG,EAAMyB,OAAQzB,IAEzF,MAAO4jG,GACL,MAAMrC,EAAY,wEAA4EqC,EAAGxnG,QAA/E,MAClB5C,EAAAA,GAAAA,MAAa+nG,EAAcqC,GASnC,OAJK9nG,GAAWA,EAAOpD,SACnBoD,EAAS,CAAC,IAAIwmG,EAAAA,EAAWrB,EAAAA,GAAAA,aAA4B,oDAAqDljG,EAAAA,IAAO,EAAOiC,KAGrHlE,EAGiB,sBAAC+nG,EAAqBC,GAC9C,IAAIC,EAA+B,GAEnC,IACI,MAAMC,EAAkB7kG,KAAKwkG,MAAME,GACnCG,EAAWC,cAAgBH,EAAc3sG,KAAK8sG,cAG9CH,EAAc3sG,KAAO6sG,EAGrB,MAAME,EAA2BF,EAAWv/B,iBACtC0/B,EAAwBH,EAAW7U,gBAEzC,GAAIgV,IAAkBlD,EAAAA,GAAAA,yCAClB8C,EAAiB,CACb,IAAIzB,EAAAA,EACArB,EAAAA,GAAAA,yCACAiD,GAAoB,qEACpBA,GACA,EACAJ,QAGL,IAAwB,MAApBI,GAA6C,MAAjBC,EAGnC,MAAM,IAAIjlG,MAAM,+CAFhB6kG,EAAiB1nG,EAAY+nG,yBAAyBJ,EAAYG,EAAeL,IAIvF,MAAOF,GACL,MAAMrC,EACF,uHACJ/nG,EAAAA,GAAAA,MAAa+nG,EAAcqC,GAe/B,OAZKnjG,EAAAA,EAAAA,IAAYsjG,KACbA,EAAiB,CACb,IAAIzB,EAAAA,EACArB,EAAAA,GAAAA,oBACA,wGACAljG,EAAAA,IACA,EACA+lG,KAKLC,EAG4B,gCAACM,EAAoCF,EAAuBL,GAC/F,IAAIhoG,EAAuB,GAE3B,OAAQqoG,GAEJ,KAAK9nG,EAAYioG,4BACjB,KAAKjoG,EAAYkoG,4BACb,MAAMC,EAA0CH,EAEhDvoG,EAASO,EAAYooG,oCAAoCD,EAAenV,mBACxEvzF,EAAOlF,KACH,IAAI0rG,EAAAA,EACAkC,EAAerV,iBAAmB8R,EAAAA,GAAAA,aAClCljG,EAAAA,GACAymG,EAAe//B,kBACf,EACAq/B,IAGR,MAEJ,KAAKznG,EAAYqoG,qBACb5oG,EAAOlF,KACH,IAAI0rG,EAAAA,EAAWrB,EAAAA,GAAAA,oBAAmCljG,EAAAA,GAAOsmG,EAAgB5/B,kBAAkB,EAAOq/B,IAK9G,GAAsB,IAAlBhoG,EAAOpD,OAAc,CACrB,MAAMsH,EAAoB,IAAIsiG,EAAAA,EAC1B+B,EAAgBlV,iBAAmB8R,EAAAA,GAAAA,aACnCljG,EAAAA,GACAsmG,EAAgB5/B,kBAChB,EACAq/B,GAEJ9jG,EAAM2kG,kBAAoBN,EAC1BvoG,EAAOlF,KAAKoJ,GAGhB,OAAOlE,EAGuC,2CAAC8oG,GAC/C,MAAM9oG,EAAuB,GAC7B8oG,EAAWA,GAAY,GAEvB,IAAK,MAAMC,KAAWD,EAClB9oG,EAAOlF,KACH,IAAI0rG,EAAAA,EACAuC,EAAQ1V,iBAAmB8R,EAAAA,GAAAA,aAC3B4D,EAAQnU,cAAgB,GACxBmU,EAAQpgC,kBACR,EACA,KAKZ,OAAO3oE,EASc,kBAACkE,GACtB,MAAMhE,EAAWgE,EAAMhE,SACvB,IAAIF,EAAuB,GAC3B,GAAIE,EAASkmG,MAAQlmG,EAAS7E,KAAM,CAEhC,MAAM2tG,EAAuB9oG,EAASN,UAAYM,EAASN,QAAQ,iBAAmBM,EAASN,QAAQ,kBAAqB,GACtHqpG,EAAqB/oG,EAAS7E,KAAK6tG,UAEzC,IAA+D,IAA3DF,EAAYG,cAAc1mG,QAAQ,oBAClCzC,EAASO,EAAY6oG,eAAeH,EAAY/kG,EAAMhE,cACnD,CACH,MAAMI,EAAO,yEAA6E0oG,EAA7E,OACbK,EAAAA,EAAAA,IAAe/oG,IAQvB,OAJKqE,EAAAA,EAAAA,IAAY3E,KAEbA,EAAS,CAACslG,EAAAA,GAAAA,6BAAyCplG,EAAS8mG,WAAY9mG,EAASwlG,WAAYxhG,KAE1FlE,GA5QIO,EAAAA,4BAAsC,8DACtCA,EAAAA,4BAAsC,8DACtCA,EAAAA,qBAA+B,oGCV3C,MAAM+oG,UAAsBlmG,MAW/BzJ,YACIisG,EACAH,EACAI,GAEAjhF,QAbG,KAAA2kF,sBAAgC,GAChC,KAAA1D,UAAoB,EAEpB,KAAA2D,WAAoB,GAWvBzvG,KAAK2I,KAAOkjG,EACZ7rG,KAAKuG,QAAUmlG,EACf1rG,KAAK6rG,UAAYA,EACjB7rG,KAAK0rG,aAAeA,EACpB1rG,KAAK8rG,SAAWA,EAChBtpG,OAAOktG,eAAe1vG,KAAMuvG,EAAc9sG,YCd3C,MAAMgqG,EAST7sG,YAAYisG,EAAmBH,EAAsB8D,EAAuB1D,EAAmB6D,GALvF,KAAAC,WAAqB,EAMzB5vG,KAAK6vG,WAAahE,EAClB7rG,KAAK8vG,cAAgBpE,EACrB1rG,KAAK+vG,uBAAyBP,EAC9BxvG,KAAK4vG,UAAY9D,EACjB9rG,KAAKgwG,mBAAqB,KALqG,2BAAjBP,EAAiB,iCAAjBA,EAAiB,kBAM/HzvG,KAAKiwG,YAAcR,EACfE,GAAiC,iBAAbA,GAAyBA,EAAU37I,SAAW27I,EAAU37I,QAAQ6xC,UACpF8pG,EAAU37I,QAAQ6xC,QAAU,IAEhC7F,KAAKkwG,WAAaP,EAOD,eAACQ,GAClB,MAAMC,EAAYD,EAAWxjD,WAAa,cACpC++C,EAAeyE,EAAWvjD,cAAgBujD,EAAWrD,sBACrDxC,EAAI,IAAIiF,EAAca,EAAW1E,EAAcyE,EAAWvD,UAYhE,OARIuD,EAAWR,YACXrF,EAAEnlG,WAAagrG,EAAWR,UAAUxqG,WAEpCmlG,EAAEhpG,KAAO6uG,EAAWR,UAAUruG,KAE9BgpG,EAAEqB,WAAawE,EAAWR,UAAUhE,YAGjCrB,EAQiB,wBACxB,OAAOtqG,KAAKgwG,mBAQY,sBAACK,GACzBrwG,KAAKgwG,mBAAqBK,EAQV,gBAChB,OAAOrwG,KAAK6vG,WAQO,mBACnB,OAAO7vG,KAAK8vG,cAQgB,4BAC5B,OAAO9vG,KAAK+vG,uBAQK,iBACjB,OAAO/vG,KAAKiwG,YAQI,gBAChB,OAAOjwG,KAAKkwG,WAOe,2BAE3B,MAD6B,eASd,eACf,OAAOlwG,KAAK4vG,uICjIb,MAAM1nG,EAAQ,GAEd,SAASe,EAAgBgiG,GAAuD,IAA7CqF,EAA6C,uDAArB,GAAIC,EAAiB,uDAAD,EAClF,IAAKtF,EACD,OAAO,KAGX,GAAmB,iBAARA,EACP,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAOA,EAAIvoG,WAGf,IAAK,MAAMmE,KAAQokG,EACf,GAAIA,EAAInkG,eAAeD,GAAO,CAC1B,MAAMvG,EAAQ2qG,EAAIpkG,GACZ2pG,EAAiBvnG,EAAgB3I,EAAOgwG,EAAaC,EAAQ,GAC/DC,IACIF,EAAYztG,OAAS,GAAe,IAAV0tG,GAC1BD,EAAYvvG,KAAK,KAErBuvG,EAAYvvG,KAAK8F,GACjBypG,EAAYvvG,KAAsB,iBAAVT,EAAqB,IAAM,KACnDgwG,EAAYvvG,KAAKyvG,IAK7B,OAAc,IAAVD,EACOD,EAAYloG,KAAKF,QAD5B,EAWG,SAAS0C,EAAYzD,GACxB,QAASA,GAASA,EAAMtE,OAAS,EAS9B,SAASkG,EAAuBzI,GACnC,OAAOA,GAA0B,iBAAVA,GAAsBkC,OAAOiK,KAAKnM,GAAOuC,OAAS,EAStE,SAAS0F,EAAQnH,GAIpB,OAAiB,MAAVA,GAAoC,IAAlBA,EAAOyB,OA4B7B,SAAS4H,EAAmBrJ,GAI/B,IAAIqvG,GAAc,EAClB,IACIA,GAAervG,EACVqvG,IAGDA,EAAuC,KADvCrvG,EAASA,EAAOsB,YACKguG,OAAO7tG,QAElC,MAAO+oG,IAIT,OAAO6E,EA0CJ,SAAS/lG,EAAOtJ,GAKnB,GAAIqJ,EAAmBrJ,GACnB,OAAOA,EANwC,2BAAbuvG,EAAa,iCAAbA,EAAa,kBASnD,GAAc,MAAVA,EACA,MAAM,IAAItnG,MAAM,uEAGpB,IAAK,IAAIunG,EAAQ,EAAGA,EAAQD,EAAO9tG,OAAQ+tG,IAAS,CAChD,GAAqB,MAAjBD,EAAOC,GACP,MAAM,IAAIvnG,MAAM,wDAA0DunG,EAAQ,kCAItF,MAAMC,EAAQF,EAAOC,GAAOluG,WAAWkG,QAAQ,OAAQ,QACjDkoG,EAAS,IAAIC,OAAO,MAAQH,EAAQ,MAAO,MACjDxvG,EAASA,EAAOwH,QAAQkoG,EAAQD,GAGpC,OAAOzvG,sFCvIX,MAAM4vG,EAAgB,CAClBC,OAAQ,SACR,eAAgB,eAChB,gBAAiB,gBACjB,mBAAoB,oBAWlBC,EAAmBrrG,IAIrB,IAAK,MAAM8C,KAAQ9C,EACf,GAAIA,EAAQiB,eAAe6B,GAAO,CAC9B,MAAMwoG,EAAYxoG,EAAKymG,cACjBgC,EAAaJ,EAAcG,GACjC,GAAIC,GAAczoG,IAASyoG,EAAY,CACnC,MAAM5pG,EAAM3B,EAAQ8C,UACb9C,EAAQ8C,GACf9C,EAAQurG,GAAc5pG,KAMhC6pG,EAAoB,CACtBC,sBAAuB,YACvBC,kBAAmB,eACnBC,qBAAqB,EAErBx9I,QAAQA,EAASy9I,EAAStnG,GAMtB,MAAMlC,EAAS,CAAEypG,MAAO,KAAMC,cAAe,MAEvCC,EAAcC,IAAAA,YAAAA,SAEpB,IAAIC,GAAO,EACX7pG,EAAOypG,MAAQ,KACPI,IAGJA,GAAO,EACPF,EAAYG,OAAO,mBACnB5nG,EAAM,CAAE5D,QAAS,sBAGrBvyC,EAAQ29I,cAAgB,KACfG,IACDA,GAAO,EACPF,EAAYG,OAAO,mBACnB5nG,EAAM,CAAE5D,QAAS,wBAIzB,MAAMyrG,EAAMh+I,EAAQmxC,WAEpB,IAD4BnxC,EAAQw9I,sBAAuB,IA3D7CQ,CAAAA,GAKgB,IAA3BA,EAAItpG,QAAQ,YAAgD,IAA5BspG,EAAItpG,QAAQ,aAAgD,IAA3BspG,EAAItpG,QAAQ,WAuDnDupG,CAAcD,GAsDvC7nG,EAAM,CACF5D,QAAS,6FAvDgC,CAC7C,IAAI2rG,EACAl+I,EAAQq3C,OACR6mG,EAAsB,CAClBC,SAAUn+I,EAAQq3C,KAClB+mG,SAAUp+I,EAAQo+I,UAAY,KAItC,IAAIC,EAAer+I,EAAQs+I,WAAa,IAIyB,IAAD,EAAvC7wG,aAAV8wG,QAAuBA,OAAOC,mBAErC,UAAID,OAAOC,kBAAkBC,8BAA7B,OAAI,EAAiDC,kCAEjDL,EAAeE,OAAOC,kBAAkBC,uBAAuBC,iCAI3Eb,IAAAA,QACa,CACLzsG,OAAQpxC,EAAQoxC,QAAU,MAC1B4sG,IAAAA,EACA1wG,KAAMttC,EAAQq4I,KACdsG,KAAMT,EACNrsG,QAAS7xC,EAAQ6xC,SAAW,GAC5B+sG,QAASP,EACTT,YAAaA,EAAYtmG,QAE5BP,MAAK8nG,IACF,MAAM1sG,EAAW,CACbhB,WAAY6sG,EACZrG,WAAYkH,EAAcjnG,OAC1BqhG,WAAY4F,EAAc5F,WAC1BpnG,QAASgtG,EAAchtG,QACvBwmG,KAAMwG,EAAcvxG,MAExBwwG,GAAO,EACPL,EAAQtrG,MAEX8E,OAAM6nG,IACH,MAAM3sG,EAAW,CACbhB,WAAY6sG,EACZrG,WAAYmH,EAAW3sG,SAAWM,SAASqsG,EAAW3sG,SAASyF,OAAQ,IAAM,EAC7EqhG,WAAY6F,EAAWnqG,KACvB0jG,KAAMyG,EAAWvsG,QACjBjF,KAAMwxG,EAAW3sG,SAAW2sG,EAAW3sG,SAAS7E,KAAO,GACvDuE,QAASitG,EAAW3sG,SAAW2sG,EAAW3sG,SAASN,QAAU,IAEjEsE,EAAM,CAAE5D,QAAS,sBAAuBvyC,QAAAA,EAASmyC,SAAAA,OAO7D,OAAO8B,IAyEF+B,EAAmB,CAACh2C,EAASy9I,EAAStnG,KAS/CsnG,EAAUA,GAAO,CAAKnwG,IAAQyxG,GAC9B5oG,EACIA,GAAK,CACJyhG,IACG,MAAMA,IAId53I,EAAQg/I,eAAiBh/I,EAAQg/I,iBAAkB,EACnDh/I,EAAQi/I,aAAej/I,EAAQi/I,eAAgB,EAC/Cj/I,EAAQk/I,2BAA6Bl/I,EAAQk/I,6BAA8B,EAC3El/I,EAAQs9I,sBAAwBt9I,EAAQs9I,uBAAyBD,EAAkBC,sBACnFt9I,EAAQu9I,kBAAoBv9I,EAAQu9I,mBAAqBF,EAAkBE,kBAC3Ev9I,EAAQw9I,oBAAsBx9I,EAAQw9I,qBAAuBH,EAAkBG,oBAG/E,MAAMz9I,EAAU,CACZi/I,eAAgBh/I,EAAQg/I,eACxB1B,sBAAuBt9I,EAAQs9I,sBAC/BC,kBAAmBv9I,EAAQu9I,kBAC3BC,oBAAqBx9I,EAAQw9I,oBAC7ByB,aAAcj/I,EAAQi/I,aACtBC,2BAA4Bl/I,EAAQk/I,4BAGxC,IAEI,MAzGe,EAACl/I,EAAS81I,EAAS/1I,KAOjCC,EAAQoxC,SACTpxC,EAAQoxC,OAAS,OAGhBpxC,EAAQ6xC,QAGTqrG,EAAiBl9I,EAAQ6xC,SAFzB7xC,EAAQ6xC,QAAU,QAKSpE,IAA3BztC,EAAQ6xC,QAAQstG,SAChBn/I,EAAQ6xC,QAAQstG,OAASrJ,EAAQmH,QAGjCj9I,EAAQstC,WAAyBG,IAAjBztC,EAAQq4I,MACxBvC,EAAQsJ,MAAMp/I,EAASD,GAGtBC,EAAQ6xC,QAAQ,sBACjB7xC,EAAQ6xC,QAAQ,oBAAsBikG,EAAQuJ,uBAAyB,QA8EvEC,CAAet/I,EAASu/I,EAAAA,GAAax/I,GA1EvB,EAACC,EAASy9I,EAAStnG,EAAO2/F,EAAS0J,EAAYz/I,IAS1Dy/I,EAAWx/I,QACdA,GACAmyC,IACI,IAKI,GAJIA,EAASN,SACTqrG,EAAiB/qG,EAASN,cAGRpE,IAAlB0E,EAAS7E,MAA8C,MAAxB6E,EAASwlG,aACnC7B,EAAQr1I,KAAK0xC,EAAUpyC,GACxB,KAAM,CAAEwyC,QAAS,qCAG3B,MAAOqlG,GAQL,YAPoBnqG,IAAhBmqG,EAAI53I,UACJ43I,EAAI53I,QAAUA,QAEGytC,IAAjBmqG,EAAIzlG,WACJylG,EAAIzlG,SAAWA,QAEnBgE,EAAMyhG,GAIV6F,EAAQtrG,EAAS7E,KAAM6E,KAE3BgE,GAwCOspG,CAAcz/I,EAASy9I,EAAStnG,EAAOopG,EAAAA,GAAalC,EAAmBt9I,GAChF,MAAO63I,GACLzhG,EAAMyhG,sTCvRP,MACM8H,EAAgB,mBAGvBC,EAAgB,gBAChBC,EAAoB,mBAEpB3E,EAAc4E,IAKhB,IAAKA,EACD,OAAO,KAGX,MAAMC,EAAmBD,EAAI/nG,MAAM,KAC7BioG,EAAa,GAEnB,IAAInxG,EACAoxG,EACJ,IAAKpxG,EAAI,EAAGoxG,EAAMF,EAAiBjxG,OAAQD,EAAIoxG,EAAKpxG,IAAK,CACrD,MAAMqxG,EAAoBH,EAAiBlxG,GAAGkJ,MAAM,KACpDioG,EAAWE,EAAkB,GAAGvD,QAAUuD,EAAkB,GAGhE,MAAO,CAAEC,UAAWJ,EAAiB,GAAGpD,OAAQqD,WAAAA,IAGvCI,EAAkBlF,EAAYyE,GAoBrCU,EAAyB,CAACC,EAAgBC,EAAoBvgJ,EAAS+1I,KASzE,MAAMyK,uWAAS,IAAQxgJ,GAOvB,OAJAwgJ,EAAS,YAAkBF,GAAkBF,EAC7CI,EAAS,mBAAyBD,EAClCC,EAAS,QAAczK,EAEhByK,GAGLC,EAAY,sBACZC,EAAwBC,IAK1B,GAAIA,EAAe,CACf,MAAMC,EAAUH,EAAUI,KAAKF,GAC/B,GAAIC,GAAWA,EAAQ9xG,OACnB,OAAO8xG,EAAQ,KA8DrBE,EAAe,CAAC/K,EAAS91I,EAASD,KAOpC,IAAKC,IAAYA,EAAQ6xC,QACrB,OAAO,EAGX,MAAMivG,EAAQ7F,EAAYj7I,EAAQ6xC,QAAQkvG,iBACpCC,EAAUP,EAAsBzgJ,EAAQ6xC,QAAQ8tG,IAEtD,IAAKmB,GAASpB,EAAchrG,QAAQosG,EAAMZ,WAAY,CAClD,MAAMe,EAAeb,EAAuBU,EAAOE,EAASjhJ,EAAS+1I,GAIrE,GAHAmL,EAAajhJ,QAAUA,EACvBA,EAAQq4I,KAAOr4I,EAAQstC,UAEFG,IAAjBztC,EAAQq4I,KAIR,OAHAr4I,EAAQ6xC,QAAQ8tG,GAAiBqB,EA/C1B,EAACE,EAAMC,KAMtB,GAAID,IAASC,EACT,OAAOD,EAGX,MAAME,EAAYF,EAAKppG,MAAM,KACvBupG,EAAaF,EAAMrpG,MAAM,KAEzBkoG,EAAMoB,EAAUvyG,QAAUwyG,EAAWxyG,OAASuyG,EAAUvyG,OAASwyG,EAAWxyG,OAElF,IAAK,IAAID,EAAI,EAAGA,EAAIoxG,EAAKpxG,IAAK,CAC1B,MAAM0yG,EAAcF,EAAUxyG,IAAM6D,SAAS2uG,EAAUxyG,GAAI,IACrD2yG,EAAeF,EAAWzyG,IAAM6D,SAAS4uG,EAAWzyG,GAAI,IAC9D,GAAI0yG,EAAcC,EACd,OAAOL,EAEX,GAAII,EAAcC,EACd,OAAOJ,IAyBoCK,CAAWR,EAAS,OAAS,MACxEhhJ,EAAQ6xC,QAAQ4vG,YAAczhJ,EAAQ6xC,QAAQkvG,iBAjI9BW,CAAAA,IAKxB,IAAKA,EACD,OAGJ,IAAIztG,EAASytG,EAAexB,UAC5B,IAAK,MAAMntG,KAAY2uG,EAAe3B,WAC9B2B,EAAe3B,WAAWjtG,eAAeC,KACzCkB,GAAU,IAAMlB,EAAW,IAAM2uG,EAAe3B,WAAWhtG,IAGnE,OAAOkB,GAkH4E0tG,CAAoBV,EAAahG,aAC5Gj7I,EAAQ6xC,QAAQ+tG,GAAqB5/I,EAAQ6xC,QAAQ+tG,IAAsB9J,EAAQuJ,uBAC5E,EAIf,OAAO,GAGEE,EAAc,CACvBtC,OAAQyC,EACRL,sBA3KoC,MA4KpC5+I,KAAK0xC,EAAUpyC,GACX,MA3FY,EAAC+1I,EAAS3jG,EAAUpyC,KAQpC,IAAKoyC,IAAaA,EAASN,QACvB,OAAO,EAGX,MAAMivG,EAAQ7F,EAAY9oG,EAASN,QAAQkvG,iBACrCC,EAAUP,EAAsBtuG,IAAa,GAC7CkmG,EAAOlmG,EAASkmG,KAEtB,IAAKA,EACD,OAAO,EAGX,GAAIqH,EAAchrG,QAAQosG,EAAMZ,YAAc,EAI1C,OAHoBE,EAAuBU,EAAOE,EAASjhJ,EAAS+1I,GACxD3jG,SAAWA,EACvBA,EAAS7E,KAAuB,iBAAT+qG,EAAoB/iG,KAAKwkG,MAAMzB,GAAQA,OACrC5qG,IAAlB0E,EAAS7E,KAGpB,OAAO,GAgEIs0G,CAAY51G,KAAMmG,EAAUpyC,IAGvCq/I,MAAMp/I,EAASD,GACX,OAAO8gJ,EAAa70G,KAAMhsC,EAASD,2FCjL3C,MA0BM8hJ,EAAoB,CAACv1G,EAAO9d,EAAOszH,KAMrC,IAAI7tG,EAAS3H,EAAMoC,SAAS,IAC5B,KAAOuF,EAAOpF,OAASrgB,GACfszH,EACA7tG,GAAU,IAEVA,EAAS,IAAMA,EAIvB,OAAOA,GAwBL8tG,EAAc,gGAQdC,EAAkB,uEAiElBC,EAAsB,CAAC31G,EAAO41G,EAAYC,KAO5C,MAAMC,EAAQJ,EAAgBpB,KAAKt0G,GAC7BqH,EAASyuG,GAvEUC,EAuEmBD,EAAM,KAlEjB,MAAbC,GAAiC,WAAbA,GAAsC,WAAbA,EAA8BA,EAAN,IAkEjC,KAvE/BA,IAAAA,EAyEzB,IAAKD,IAAWF,GAAyB,MAAXvuG,EAAiB,CAC3C,GAAIwuG,EACA,OAAO,KAEX,KAAM,CAAE5vG,QAAS,2BAIrB,IAAI+vG,EAAO7vG,SAAS2vG,EAAM,GAAI,IAC1BE,GAAQ,GACRA,IAIJ,IAAIC,EAAUH,EAAM,GAChBI,EAAU,EACd,GAAKD,EAEE,CACH,GAAIA,EAAG1zG,OAAS,EAAG,CACf,GAAIszG,EACA,OAAO,KAEX,KAAM,CAAE5vG,QAAS,oDAGrBiwG,EAAKX,EAAkBU,EAAGE,UAAU,GAAI,GAAG,GAC3CF,EAAKV,EAAkBU,EAAGE,UAAU,EAAG,GAAI,GAAG,GAE9CF,EAAK9vG,SAAS8vG,EAAI,IAClBC,EAAK/vG,SAAS+vG,EAAI,SAblBD,EAAK,EAiBT,IAAIzuG,EAAQrB,SAAS2vG,EAAM,GAAI,IAC3BpuG,EAAUvB,SAAS2vG,EAAM,GAAI,IACjC,MAAMM,EAAUjwG,SAAS2vG,EAAM,GAAI,IACnC,GAAe,MAAXzuG,EAAgB,CAGhB,MAAM0uG,EAhJQA,CAAAA,IAQlB,IAAIM,EAAYN,EAASI,UAAU,EAAG,GAKtC,OAJAE,EAA0B,MAAdA,EAAoB,GAAK,EAI9B,CAAEC,EAAGD,EAAWE,EAFHpwG,SAAS4vG,EAASI,UAAU,GAAI,IAEbK,EADjBrwG,SAAS4vG,EAASI,UAAUJ,EAAS3tG,QAAQ,KAAO,GAAI,MAoIzDquG,CAAcpvG,GACzBgvG,GAAaN,EAASO,EAC5B9uG,GAASuuG,EAASQ,EAAIF,EACtB3uG,GAAWquG,EAASS,EAAIH,EAI5B,MAAM1uG,EAAc,IAAIhB,KAQxB,GAPAgB,EAAO+uG,eACHV,EACA7vG,SAAS2vG,EAAM,GAAI,IAAM,EACzB3vG,SAAS2vG,EAAM,GAAI,KAEvBnuG,EAAOgvG,YAAYnvG,EAAOE,EAAS0uG,EAASH,GAExCW,MAAMjvG,EAAOkvG,WAAY,CACzB,GAAIhB,EACA,OAAO,KAEX,KAAM,CAAE5vG,QAAS,2BAYrB,OATI2vG,IACAjuG,EAAOZ,UAAY,qBACnBY,EAAOX,SAAWK,GAGlB6uG,IACAvuG,EAAOmvG,KAAOZ,GAGXvuG,GAGEqG,EAAmC,CAAChO,EAAO+2G,EAAcrE,KAOlE,OAAQqE,GACJ,IArOYC,cAsOR,MApNqB,kBALfC,EAyNWj3G,GAnNdi3G,EAGqB,iBAAlBA,GAA8D,SAAhCA,EAAcnI,cAiNtD,IAtOSkI,WAuOT,IAlOUA,YAmOV,IAlOUA,YAmOV,IAlOUA,YAmOV,IAlOUA,YAmON,OAAO7wG,SAASnG,EAAO,IAC3B,IAxOWg3G,aAyOX,IApOWA,aAqOX,IA3OYA,cA4OR,OAAOpqG,WAAW5M,GACtB,IAtOSg3G,WAuOL,MAhKUE,CAAAA,IAQlB,MAAMpB,EAAQL,EAAYnB,KAAK4C,GAE/B,GAAc,OAAVpB,EACA,KAAM,CAAE7vG,QAAS,2BAGrB,MAAMkxG,EAAQrB,EAAM,IAAM,IACpBsB,EAAStB,EAAM,IAAM,IACrBuB,EAAOlxG,SAAS2vG,EAAM,GAAI,KAAO,EACjCtuG,EAAQrB,SAAS2vG,EAAM,GAAI,KAAO,EAClCpuG,EAAUvB,SAAS2vG,EAAM,GAAI,KAAO,EACpCM,EAAUxpG,WAAWkpG,EAAM,KAAO,EAExC,GAAc,MAAVqB,GAA4B,MAAXC,EACjB,KAAM,CAAEnxG,QAAS,+BAGrB,IAAIgwG,EAAUH,EAAM,GAChBI,EAAU,EACd,GAAKD,EAEE,CACH,GAAIA,EAAG1zG,OAAS,EACZ,KAAM,CAAE0D,QAAS,mDAGrBiwG,EAAKX,EAAkBU,EAAGE,UAAU,GAAI,GAAG,GAC3CF,EAAKV,EAAkBU,EAAGE,UAAU,EAAG,GAAI,GAAG,GAE9CF,EAAK9vG,SAAS8vG,EAAI,IAClBC,EAAK/vG,SAAS+vG,EAAI,SAVlBD,EAAK,EAaTA,GAAgB,IAAVG,EAA2B,IAAV1uG,EAA0B,KAARF,EAAyB,MAAP6vG,EAE1C,MAAbvB,EAAM,KACNG,GAAMA,GAGV,MAAMtuG,EAAc,CAAEsuG,GAAAA,EAAIlvG,UAAW,YAKrC,OAHImvG,IACAvuG,EAAOuuG,GAAKA,GAETvuG,GA4GQ2vG,CAAct3G,GACzB,IAjPag3G,eAkPT,MAAMO,EAAUv3G,GAAS,GACnBw3G,EAAOD,EAAQpB,UAAUoB,EAAQnvG,QAAQ,KAAO,GAChDqvG,EAAsBD,EAAKpvG,QAAQ,KAGzC,OAFyB,IAAzBqvG,GAA6BD,EAAKpvG,QAAQ,KAG/ButG,EAAoB31G,GADF,IAAzBy3G,GAC0D,GAIlE,IA3PmBT,qBA4Pf,OAAOrB,EAAoB31G,GAAO,GAAwB,GAlPpDi3G,IAAAA,EAqPd,OAAIvE,IAEIiD,EAAoB31G,GAAO,GAAyB,IAAS21G,EAAoB31G,GAAO,GAAwB,KAGjHA,2uCCxQJ,IAAK03G,EASAC,EAsCA17B,iEA/CZ,SAAYy7B,GACRA,EAAAA,EAAAA,UAAAA,GAAAA,YACAA,EAAAA,EAAAA,SAAAA,GAAAA,WACAA,EAAAA,EAAAA,MAAAA,GAAAA,QACAA,EAAAA,EAAAA,QAAAA,GAAAA,UACAA,EAAAA,EAAAA,cAAAA,GAAAA,gBACAA,EAAAA,EAAAA,QAAAA,GAAAA,UANJ,CAAYA,IAAAA,EAAU,KAStB,SAAYC,GACRA,EAAAA,EAAAA,MAAAA,IAAAA,QACAA,EAAAA,EAAAA,YAAAA,IAAAA,cACAA,EAAAA,EAAAA,SAAAA,IAAAA,WACAA,EAAAA,EAAAA,MAAAA,IAAAA,QAJJ,CAAYA,IAAAA,EAAY,KAwBjB,MAAMjsG,EACsB,yBAACksG,GAC5B,MAAO,GAGe,sBACtB,MAAO,GAGY,mBACnB,MAAO,KAIf,SAAY37B,GACRA,EAAAA,EAAAA,KAAAA,GAAAA,OACAA,EAAAA,EAAAA,OAAAA,GAAAA,SACAA,EAAAA,EAAAA,SAAAA,GAAAA,WAHJ,CAAYA,IAAAA,EAAS,KA6Dd,MAAM47B,EACFC,eACHvsG,EACAE,EACAjrB,EACAF,EACAC,EACAw3H,EACAC,EACAC,EACAC,IAGGC,sBAAsBC,IAEtBC,WAAWC,KAGf,MAAMC,EACe,kBACpBlwG,EACAmwG,EACA9D,EACA+D,EACAC,EACAC,EACAC,EACAC,EACA5yG,IAWwB,sBAAC6yG,IAEG,0BAACC,EAAe/4G,GAC5C,IAAK,MAAM/sC,KAAOivC,OAAOiK,KAAK4sG,GAC1B,GAAIA,EAAS9lJ,KAAS+sC,EAClB,OAAO/sC,EAGf,MAAO,IC/IR,MAAM04C,EAA0C,CAAChH,EAAmBq0G,KACvET,EAAAA,WACI,0CACA,MACA,EACAZ,EAAAA,MACAD,EAAAA,cACA,GACA,GACA,GACA,mFAIKzrG,EAAwC,CAACtH,EAAmBq0G,EAAoBnvG,KACzF0uG,EAAAA,WACI,wCACA,MACA,EACAZ,EAAAA,YACAD,EAAAA,MACA,GACA,GACA,GACA,+FAIK9rG,EAA2C,CAACjH,EAAmBq0G,KACxET,EAAAA,WACI,2CACA,MACAZ,EAAAA,MACA,EACAD,EAAAA,cACA,GACA,GACA,GACA,qFAIK1I,EAAkB/oG,IAC3BsyG,EAAAA,WAAsB,iBAAkB,MAAO,EAAGZ,EAAAA,YAA0BD,EAAAA,QAAoB,GAAI,GAAI,GAAI,+BCrCzG,MAAMr0G,EASS,cDnBf,IAA2B41G,ECqB1B,ODrB0BA,ECoBR,IAAIpB,EDnB1BU,EAAAA,eAA0BU,ICoBf,EAQc,mBAACC,GACtB,GAAI71G,EAAO81G,UAAW,CAAC,IAAD,uBAD8BC,EAC9B,iCAD8BA,EAC9B,kBACN/1G,EAAOg2G,WAAWC,MAAM,KAAM,CAACj2G,EAAOk2G,oBAAqBL,KAAsBE,IDwBrGb,EAAAA,WAAsB,cAAe,MAAO,EAAGZ,EAAAA,YAA0BD,EAAAA,cAA0B,GAAI,GAAI,GAAI,QCjB1F,eAAC8B,GAClB,GAAIn2G,EAAO81G,UAAW,CAAC,IAAD,uBADsBC,EACtB,iCADsBA,EACtB,kBAClBpK,EAAe3rG,EAAOg2G,WAAWC,MAAM,KAAM,CAACj2G,EAAOk2G,oBAAqBC,KAAkBJ,MAOjF,aAACK,GAChB,GAAIp2G,EAAO81G,UAAW,CAAC,IAAD,uBADkBC,EAClB,iCADkBA,EAClB,kBACL/1G,EAAOg2G,WAAWC,MAAM,KAAM,CAACj2G,EAAOk2G,oBAAqBE,KAAgBL,IDEhGb,EAAAA,WAAsB,eAAgB,KAAO,EAAGZ,EAAAA,YAA0BD,EAAAA,MAAkB,GAAI,GAAI,GAAI,QCKpF,cAAC/xG,EAAsB+zG,GAAoC,2BAAXN,EAAW,iCAAXA,EAAW,kBAC3E,GAAI/1G,EAAO81G,WAAwB,OAAXxzG,GAAmBA,EAAOpD,OAAS,EAAG,CAC1D,IAAI6oG,EAAuB,GACvBG,EAAoB,GACpBmC,EAAsB,GAE1B/nG,EAAOT,SAAQ2E,IACXuhG,EAAevhG,EAAMyiD,cAAgB1kD,EAAAA,GACrC2jG,EAAY1hG,EAAMwiD,WAAazkD,EAAAA,GAC/B8lG,EAAc1kG,KAAKC,UAAUY,GAC7BxG,EAAO0F,MACH2wG,EACI,KACAtvG,EAAAA,EAAAA,IAAO,kEAAmEghG,EAAcG,EAAWmC,GACvG0L,OAMU,oBAACO,GACvB,IAAIC,OACwCz4G,IAAxCkC,EAAOw2G,SAASF,IAChBC,EAAU,IAAIE,EACdF,EAAQntG,KAAOktG,GAEfC,EAAUv2G,EAAOw2G,SAASF,GAE9BC,EAAQ/6D,OAAS,EACjBx7C,EAAOw2G,SAASF,GAAsBC,EACtC,MAAMG,GAAM,IAAIpzG,MAAOqzG,UACvB32G,EAAO42G,OAAOx5G,KAAKs5G,GAGC,kBAACJ,GACrB,MAAMI,GAAM,IAAIpzG,MAAOqzG,UACjBE,EAAY72G,EAAO42G,OAAOE,MAChB92G,EAAOw2G,SAASF,GACxBS,WAAaL,EAAMG,EAGL,sBACtB,IAAK,MAAMjR,KAAQ5lG,EAAOw2G,SAClBx2G,EAAOw2G,SAASrzG,eAAeyiG,IAC/B5lG,EAAOo1C,YACH,mEACAp1C,EAAOw2G,SAAS5Q,GAAMx8F,KACtBpJ,EAAOw2G,SAAS5Q,GAAMpqD,MACtBx7C,EAAOw2G,SAAS5Q,GAAMmR,UACtB/2G,EAAOw2G,SAAS5Q,GAAMmR,UAAY/2G,EAAOw2G,SAAS5Q,GAAMpqD,OAM/C,kBAACw7D,EAAcX,GAAoC,2BAAXN,EAAW,iCAAXA,EAAW,kBACxE,MAAMW,GAAW,IAAIpzG,MAAOqzG,UAAY,KACxC,GAAI32G,EAAO81G,UACP,OAAKC,EAIG/1G,EAAOi3G,eAAiBD,EAAO,KAAOjwG,EAAAA,GAAAA,MAAa,KAAM,CAACsvG,EAAc9zG,MAAMzD,UAAUo4G,MAAMl4G,KAAK+2G,KAAU,KAAOW,EAHjH12G,EAAOi3G,eAAiBD,EAAO,KAAOX,EAAe,KAAOK,GAxGhE12G,EAAAA,eAAyB,YACzBA,EAAAA,oBAA8B,UAE9BA,EAAAA,WAAqB,EAErBA,EAAAA,SAAkB,IAAIuC,MACtBvC,EAAAA,OAAgB,IAAIuC,MAOrBvC,EAAAA,aAAwBA,EAAOm3G,OAqGjD,MAAMV,EAANx6G,cAEW,KAAAu/C,MAAgB,EAChB,KAAAu7D,UAAoB,gFClIxB,SAASK,EAAgBC,EAA4B7xG,GACxD,OAAO6xG,EAAM9xG,QAAWC,GAQrB,SAAS8xG,EAA0BjnJ,EAA8Bm1C,GACpE,OAAOA,EAAc+xG,YAAc/xG,EAAc+xG,YAAYH,EAAc/mJ,GAAWA,EAAQk1C,QAAcC,GAGzG,SAASl1C,EAAoBD,EAA8BD,GAC9D,IAAKA,EACD,MAAM,IAAIs1C,MAAM,+CAGpB,OAAIt1C,EAAQo1C,eAAiBp1C,EAAQo1C,cAAc+xG,aAC/CnnJ,EAAQmB,aAAelB,EAAQ0vC,kBAAkB3vC,EAAQmB,aAClDnB,EAAQo1C,cAAc+xG,YAAYH,EAAc/mJ,IAChDD,EAAQmnJ,YACRnnJ,EAAQmnJ,YAAYH,EAAc/mJ,GAGtC,IAAIw1I,EAAAA,GAAkB,CAAC1/F,EAASC,KACnC/1C,EACKk1C,QAAcn1C,GACdg3C,MAAK9C,IACF6B,EAAQ7B,MAEXgD,OAAMd,IACHJ,EAAOI,SA5BvB4wG,EAAat4G,UAAY,CACrBX,UAAU,EACVq5G,cAAc","sources":["webpack://mattressfirm/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://mattressfirm/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://mattressfirm/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://mattressfirm/../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack://mattressfirm/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://mattressfirm/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://mattressfirm/../../src/DataActions/CustomersDataActions.g.ts?081a","webpack://mattressfirm/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://mattressfirm/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://mattressfirm/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://mattressfirm/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://mattressfirm/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://mattressfirm/../../src/DataActions/ScanResultsDataActions.g.ts?42cd","webpack://mattressfirm/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://mattressfirm/../src/DataServiceQuery.ts?8aab","webpack://mattressfirm/../src/DataServiceRequest.ts?423e","webpack://mattressfirm/../../src/Entities/CommerceModels.g.ts?1e76","webpack://mattressfirm/../../src/Entities/CommerceTypes.g.ts?34ee","webpack://mattressfirm/../../src/Interfaces/ICache.ts?0279","webpack://mattressfirm/../src/async-result.ts?1ea5","webpack://mattressfirm/../../src/exceptions/ErrorHelper.ts?deca","webpack://mattressfirm/../../src/exceptions/ErrorParser.ts?d883","webpack://mattressfirm/../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack://mattressfirm/../../src/exceptions/ProxyError.ts?f6d3","webpack://mattressfirm/../../src/extensions/StringExtensions.ts?6e3d","webpack://mattressfirm/../../src/externals/DataJS.New.ts?f131","webpack://mattressfirm/../../src/externals/handler.ts?a98d","webpack://mattressfirm/../../src/externals/helper.ts?18b4","webpack://mattressfirm/../../src/logging/ConsoleEventWriter.ts?1638","webpack://mattressfirm/../../src/logging/RetailLogger.ts?9e7e","webpack://mattressfirm/../../src/logging/Tracer.ts?faf4","webpack://mattressfirm/../src/retail-action.ts?fc97"],"sourcesContent":["\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartnerUser, AccountStatementRequest, BusinessPartnerOperationRequest } from '../Entities/CommerceTypes.g';\n import { BusinessPartnerUserClass, BusinessPartnerOperationRequestClass } from '../Entities/CommerceModels.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, BusinessPartnerOperationRequestClass, '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, BusinessPartnerUserClass, '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 { BusinessPartnerClass, OrderShipmentsClass, BusinessPartnerProspectClass, BusinessPartnerUserClass } from '../Entities/CommerceModels.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, OrderShipmentsClass, '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, BusinessPartnerProspectClass, '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, BusinessPartnerClass, '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 createGetUsersInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUsers', false, BusinessPartnerUserClass, '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 { CartClass, SalesOrderClass, LoyaltyPointRedemptionEstimateClass, TenderLineClass, SalesLineDeliveryOptionClass, CartDeliveryPreferencesClass, DeliveryOptionClass, TenderDiscountLineClass, ReceiptClass, CardPaymentAcceptPointClass, CardPaymentAcceptResultClass, CartPromotionsClass, CartPromotionLineClass, CartLineUserAlertsClass, ChargeCodeClass, TenderTypeAmountClass, CartLineValidationResultsClass } from '../Entities/CommerceModels.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, CartClass, '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, SalesOrderClass, '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, LoyaltyPointRedemptionEstimateClass, '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, TenderLineClass, '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, SalesLineDeliveryOptionClass, '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, SalesLineDeliveryOptionClass, '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, CartDeliveryPreferencesClass, '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, DeliveryOptionClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, SalesOrderClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, TenderDiscountLineClass, '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, CartClass, '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, CartClass, '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, ReceiptClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CardPaymentAcceptPointClass, '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, CardPaymentAcceptResultClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartPromotionsClass, '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, CartPromotionLineClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartClass, '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, CartLineUserAlertsClass, '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, CartLineUserAlertsClass, '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, ChargeCodeClass, '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, CartClass, '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, CartClass, '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, TenderTypeAmountClass, '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, CartLineValidationResultsClass, '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, TenderLineClass, '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 { ProductCatalogClass } from '../Entities/CommerceModels.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, ProductCatalogClass, '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 { CategoryClass, AttributeCategoryClass } from '../Entities/CommerceModels.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, CategoryClass, '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, AttributeCategoryClass, '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, AttributeCategoryClass, '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, CategoryClass, '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 { CommerceListClass } from '../Entities/CommerceModels.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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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, CommerceListClass, '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 { Customer, CustomerSearchCriteria, GlobalCustomer, CustomerSearchByFieldCriteria, CustomerTimelineItem, CustomerRefiner, SalesOrder, OrderShipments, PurchaseHistory, CustomerSearchField, CustomerTimelineItemTypeMap, CustomerTimelineRefiner, CustomerTitle } from '../Entities/CommerceTypes.g';\n import { CustomerClass, GlobalCustomerClass, CustomerTimelineItemClass, CustomerRefinerClass, SalesOrderClass, OrderShipmentsClass, PurchaseHistoryClass, CustomerSearchFieldClass, CustomerTimelineItemTypeMapClass, CustomerTimelineRefinerClass, CustomerTitleClass } from '../Entities/CommerceModels.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function customersQuery(accountNumber?: string): DataServiceQuery {\n var key = (accountNumber !== null && accountNumber !== undefined) ? { AccountNumber: accountNumber } : null;\n return new DataServiceQuery(\"Customers\", \"Customer\", CustomerClass, key);\n }\n \n export function createCreateInput(entity: Customer): IDataServiceRequest {\n return customersQuery().create(entity);\n }\n\n export function createCustomerAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(accountNumber: string): IDataServiceRequest {\n return customersQuery(accountNumber).read();\n }\n\n export function readAsync(context: IContext, accountNumber: string): AsyncResult {\n const request = createReadAsync(accountNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return customersQuery().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, customerSearchCriteria?: CustomerSearchCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, GlobalCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {customerSearchCriteria: customerSearchCriteria });\n } \n \n export function searchAsync(context: IContext, customerSearchCriteria?: CustomerSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, customerSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchByFieldsInput(queryResultSettings: IQueryResultSettings, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByFields', true, GlobalCustomerClass, 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {CustomerSearchByFieldCriteria: customerSearchByFieldCriteria });\n } \n \n export function searchByFieldsAsync(context: IContext, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null):AsyncResult {\n const request = createSearchByFieldsInput(context.queryResultSettings, customerSearchByFieldCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByAccountNumbersInput(queryResultSettings: IQueryResultSettings, accountNumbers: string[] | null, searchLocationValue: number): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByAccountNumbers', true, CustomerClass, 'true', {bypassCache: 'none', returnEntity: 'Customer'}, {accountNumbers: accountNumbers, searchLocationValue: searchLocationValue });\n } \n \n export function getByAccountNumbersAsync(context: IContext, accountNumbers: string[] | null, searchLocationValue: number):AsyncResult {\n const request = createGetByAccountNumbersInput(context.queryResultSettings, accountNumbers, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createCreateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('CreateCustomerTimelineItem', true, CustomerTimelineItemClass, 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function createCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createCreateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createUpdateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('UpdateCustomerTimelineItem', true, CustomerTimelineItemClass, 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function updateCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createUpdateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, CustomerRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerRefiner'}, {searchCriteria: searchCriteria, refinerSourceTypes: refinerSourceTypes });\n } \n \n export function getRefinersAsync(context: IContext, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, searchCriteria, refinerSourceTypes);\n return executeAction(request, context);\n } \n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', true, SalesOrderClass, 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetOrderShipmentsHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, nextPageToken?: string | null): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderShipmentsHistory', true, OrderShipmentsClass, 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, {nextPageToken: nextPageToken });\n } \n \n export function getOrderShipmentsHistoryAsync(context: IContext, accountNumber: string, nextPageToken?: string | null):AsyncResult {\n const request = createGetOrderShipmentsHistoryInput(context.queryResultSettings, accountNumber, nextPageToken);\n return executeAction(request, context);\n } \n \n export function createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('PostNonTransactionalActivityLoyaltyPoints', true, '', '', {bypassCache: 'get', returnEntity: ''}, {loyaltyCardId: loyaltyCardId, channelId: channelId, affiliationId: affiliationId, activityTypeId: activityTypeId });\n } \n \n export function postNonTransactionalActivityLoyaltyPointsAsync(context: IContext, loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null):AsyncResult {\n const request = createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId, channelId, affiliationId, activityTypeId);\n return executeAction(request, context);\n } \n \n export function createGetPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPurchaseHistory', false, PurchaseHistoryClass, 'true', {bypassCache: 'none', returnEntity: 'PurchaseHistory'}, { });\n } \n \n export function getPurchaseHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetPurchaseHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerSearchFieldsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerSearchFields', false, CustomerSearchFieldClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerSearchField'}, { });\n } \n \n export function getCustomerSearchFieldsAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerSearchFieldsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItemTypes', false, CustomerTimelineItemTypeMapClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItemTypeMap'}, { });\n } \n \n export function getCustomerTimelineItemTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerTimelineItemTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemsInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItems', false, CustomerTimelineItemClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItem'}, { });\n } \n \n export function getCustomerTimelineItemsAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineItemsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineRefinersInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineRefiners', false, CustomerTimelineRefinerClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineRefiner'}, { });\n } \n \n export function getCustomerTimelineRefinersAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineRefinersInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetTitlesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTitles', false, CustomerTitleClass, 'true', {bypassCache: 'none', returnEntity: 'CustomerTitle'}, { });\n } \n \n export function getTitlesAsync(context: IContext, ):AsyncResult {\n const request = createGetTitlesInput(context.queryResultSettings, );\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 { OrgUnitClass, TillLayoutClass, OrgUnitLocationClass, ChannelConfigurationClass, StoreHoursClass, ChannelDeliveryOptionClass, OrgUnitAvailabilityClass, TerminalInfoClass } from '../Entities/CommerceModels.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, TillLayoutClass, '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, OrgUnitClass, '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, OrgUnitLocationClass, '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, OrgUnitLocationClass, '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, ChannelConfigurationClass, '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, StoreHoursClass, '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, ChannelDeliveryOptionClass, '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, OrgUnitAvailabilityClass, '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, OrgUnitAvailabilityClass, '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, OrgUnitAvailabilityClass, '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, OrgUnitAvailabilityClass, '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, TerminalInfoClass, '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, OrgUnitAvailabilityClass, '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 { ProductListClass, ProductListLineClass } from '../Entities/CommerceModels.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, ProductListClass, '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, ProductListLineClass, '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, ProductListLineClass, '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, ProductListLineClass, '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, ProductListClass, '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 { ProductClass, ProductRefinerClass, ProductDimensionValueClass, ProductDimensionValueInventoryAvailabilityClass, SimpleProductClass, ProductComparisonLineClass, ProductSearchResultClass, ProductDeliveryOptionsClass, ReadChangedProductsSessionClass, DeletedListingsResultClass, AssortedProductIdentityClass, ProductExistenceIdClass, ProductRatingClass, ProductAssortmentIntervalClass, AttributeProductClass, ProductPriceClass, ProductAvailableQuantityClass, ProductComponentClass, SearchSuggestionClass, CategoryPathResultClass, UnitOfMeasureClass, ProductRefinerValueClass, AttributeValueClass, MediaLocationClass, MediaBlobClass, ProductRelationTypeClass, ProductWarrantiesMappingClass, ProductWarehouseInventoryInformationClass } from '../Entities/CommerceModels.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, ProductClass, '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, ProductRefinerClass, '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, ProductDimensionValueClass, '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, ProductDimensionValueInventoryAvailabilityClass, '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, SimpleProductClass, '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, SimpleProductClass, '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, SimpleProductClass, '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, ProductComparisonLineClass, '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, ProductSearchResultClass, '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, ProductSearchResultClass, '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, ProductSearchResultClass, '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, ProductRefinerClass, '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, ProductDeliveryOptionsClass, '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, ProductClass, '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, ReadChangedProductsSessionClass, '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, ProductClass, '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, DeletedListingsResultClass, '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, AssortedProductIdentityClass, '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, ProductExistenceIdClass, '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, ProductRatingClass, '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, ProductAssortmentIntervalClass, '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, AttributeProductClass, '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, ProductPriceClass, '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, ProductAvailableQuantityClass, '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, ProductPriceClass, '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, ProductComponentClass, '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, ProductComponentClass, '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, SearchSuggestionClass, '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, CategoryPathResultClass, '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, UnitOfMeasureClass, '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, ProductSearchResultClass, '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, ProductSearchResultClass, '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, ProductSearchResultClass, '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, SimpleProductClass, '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, ProductRefinerClass, '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, ProductRefinerClass, '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, ProductRefinerValueClass, '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, ProductRefinerValueClass, '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, AttributeProductClass, '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, SimpleProductClass, '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, AttributeValueClass, '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, MediaLocationClass, '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, MediaBlobClass, '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, ProductComponentClass, '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, ProductComponentClass, '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, ProductRelationTypeClass, '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, ProductRelationTypeClass, '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, ProductSearchResultClass, '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, ProductWarrantiesMappingClass, '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, ProductPriceClass, '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, ProductPriceClass, '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, ProductWarehouseInventoryInformationClass, '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, ProductWarehouseInventoryInformationClass, '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 { RecommendationClass, RecommendedElementClass } from '../Entities/CommerceModels.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, RecommendedElementClass, '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 { SalesOrderClass, FulfillmentLineClass, ReceiptClass, SalesInvoiceClass, OrderInvoiceClass, SalesLineClass, PickingListClass, FulfillmentLineUserAlertsClass, CheckInForOrderPickupConfirmationClass, PackingSlipDataClass } from '../Entities/CommerceModels.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, SalesOrderClass, '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, SalesOrderClass, '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, SalesOrderClass, '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, FulfillmentLineClass, '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, ReceiptClass, '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, ReceiptClass, '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, SalesOrderClass, '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, SalesOrderClass, '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, SalesOrderClass, '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, SalesOrderClass, '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, SalesOrderClass, '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, ReceiptClass, '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, ReceiptClass, '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, ReceiptClass, '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, SalesInvoiceClass, '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, OrderInvoiceClass, '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, OrderInvoiceClass, '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, SalesInvoiceClass, '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, SalesLineClass, '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, PickingListClass, '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, FulfillmentLineUserAlertsClass, '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, CheckInForOrderPickupConfirmationClass, '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, PackingSlipDataClass, '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 { ScanResultClass } from '../Entities/CommerceModels.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, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, 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, } from '../Entities/CommerceTypes.g';\n import { ReceiptMaskClass, DeliveryOptionClass, AffiliationClass, PromotionClass, PaymentMerchantInformationClass, StoreSafeClass, ShiftReconciliationLineClass, SearchSuggestionClass, DeviceActivationResultClass, CreateHardwareStationTokenResultClass, ValidateHardwareStationTokenResultClass, BarcodeClass, ButtonGridClass, MediaBlobClass, CardTypeInfoClass, CityInfoClass, CountryRegionInfoClass, OnlineChannelClass, CountyInfoClass, CreditMemoClass, DataDownloadParametersClass, DataUploadParametersClass, DownloadSessionClass, NumberSequenceSeedDataClass, ReceiptNumberResetInfoClass, LoyaltyRewardPointActivityClass, CurrencyAmountClass, DiscountCodeClass, DistrictInfoClass, HardwareStationProfileClass, HardwareProfileClass, LocalizedStringClass, OperationPermissionClass, ReasonCodeClass, ReportDataSetClass, IncomeExpenseAccountClass, StateProvinceInfoClass, ZipCodeInfoClass, KitTransactionClass, LoyaltyCardClass, LoyaltyCardTransactionClass, TransactionClass, GiftCardClass, NonSalesTransactionClass, DropAndDeclareTransactionClass, TaxOverrideClass, CustomerBalancesClass, LinkToExistingCustomerResultClass, OfflineSyncStatsLineClass, StorageAccessTokenClass, FrameworkClass, TaskGuidesSearchResultClass, RecordingClass, AttributeDefinitionClass, AttributeGroupDefinitionClass, AuditEventClass, InventoryAvailableToPromiseClass, SalesOrderClass, NotificationItemClass, FiscalIntegrationDocumentClass, FiscalIntegrationRegistrationProcessClass, FiscalIntegrationSupportedEventsClass, FiscalIntegrationTechnicalProfileClass, FiscalIntegrationFiscalRegistrationProcessSummaryClass, FiscalIntegrationServiceStatusClass, FiscalIntegrationServiceCommunicationResultClass, FeatureStateClass, FiscalIntegrationSequentialSignatureDataClass, FiscalTransactionClass, PickupTimeslotAvailabilityClass, CartClass, OperationalInsightsConfigurationClass, CashDeclarationClass, CustomerGroupClass, ChannelDeliveryOptionConfigurationClass, ChannelIdentityClass, EnvironmentConfigurationClass, SearchConfigurationClass, ExtensionPackageDefinitionClass, ExtensionProfileClass, DeviceConfigurationClass, VisualProfileClass, SupportedLanguageClass, SalesTaxGroupClass, TenderTypeClass, UnitOfMeasureClass, CurrencyClass, CommissionSalesGroupClass, ChannelInventoryConfigurationClass, ChannelPurchaseConfigurationClass, InventoryJournalNameClass, DeviceClass, UserDefinedSecretCertificateResultClass, ExtensibleEnumerationContainerClass, AddressPurposeClass, ReturnPolicyClass, EmailReceiptSettingsClass } from '../Entities/CommerceModels.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, DeliveryOptionClass, '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, AffiliationClass, '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, PromotionClass, '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, PaymentMerchantInformationClass, '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, StoreSafeClass, '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, ShiftReconciliationLineClass, '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, ReceiptMaskClass, '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, SearchSuggestionClass, '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, DeviceActivationResultClass, '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, DeviceActivationResultClass, '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, CreateHardwareStationTokenResultClass, '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, ValidateHardwareStationTokenResultClass, '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, BarcodeClass, '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, ButtonGridClass, '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, ButtonGridClass, '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, ButtonGridClass, '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, MediaBlobClass, '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, CardTypeInfoClass, '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, CardTypeInfoClass, '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, CityInfoClass, '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, CountryRegionInfoClass, '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, CountryRegionInfoClass, '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, OnlineChannelClass, '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, CountyInfoClass, '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, CreditMemoClass, '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, DataDownloadParametersClass, '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, DataUploadParametersClass, '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, DownloadSessionClass, '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, DownloadSessionClass, '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, NumberSequenceSeedDataClass, '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, ReceiptNumberResetInfoClass, '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, LoyaltyRewardPointActivityClass, '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, LoyaltyRewardPointActivityClass, '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, CurrencyAmountClass, '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, DiscountCodeClass, '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, DiscountCodeClass, '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, DiscountCodeClass, '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, DistrictInfoClass, '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, HardwareStationProfileClass, '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, HardwareProfileClass, '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, LocalizedStringClass, '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, OperationPermissionClass, '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, ReasonCodeClass, '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, ReportDataSetClass, '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, ReportDataSetClass, '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, ReportDataSetClass, '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, IncomeExpenseAccountClass, '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, StateProvinceInfoClass, '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, ZipCodeInfoClass, '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, ZipCodeInfoClass, '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, KitTransactionClass, '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, LoyaltyCardClass, '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, LoyaltyCardClass, '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, LoyaltyCardClass, '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, LoyaltyCardTransactionClass, '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, LoyaltyRewardPointActivityClass, '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, TransactionClass, '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, GiftCardClass, '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, GiftCardClass, '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, NonSalesTransactionClass, '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, NonSalesTransactionClass, '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, DropAndDeclareTransactionClass, '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, TaxOverrideClass, '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, CustomerBalancesClass, '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, LinkToExistingCustomerResultClass, '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, LinkToExistingCustomerResultClass, '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, OfflineSyncStatsLineClass, '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 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, StorageAccessTokenClass, '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, FrameworkClass, '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, FrameworkClass, '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, TaskGuidesSearchResultClass, '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, RecordingClass, '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, RecordingClass, '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, AttributeDefinitionClass, '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, AttributeGroupDefinitionClass, '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, AuditEventClass, '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, InventoryAvailableToPromiseClass, '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, SalesOrderClass, '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, NotificationItemClass, '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 createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationDocumentClass, '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, FiscalIntegrationRegistrationProcessClass, '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, FiscalIntegrationSupportedEventsClass, '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, FiscalIntegrationTechnicalProfileClass, '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, FiscalIntegrationTechnicalProfileClass, '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, FiscalIntegrationFiscalRegistrationProcessSummaryClass, '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, FiscalIntegrationTechnicalProfileClass, '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, FiscalIntegrationServiceStatusClass, '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, FiscalIntegrationServiceCommunicationResultClass, '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, FeatureStateClass, '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, FiscalIntegrationSequentialSignatureDataClass, '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, FiscalTransactionClass, '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, PickupTimeslotAvailabilityClass, '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, CartClass, '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 createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, ButtonGridClass, '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, ButtonGridClass, '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, OperationalInsightsConfigurationClass, '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, CashDeclarationClass, '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, CountryRegionInfoClass, '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, CustomerGroupClass, '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, ChannelDeliveryOptionConfigurationClass, '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, ChannelIdentityClass, '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, ChannelIdentityClass, '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, ChannelIdentityClass, '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, EnvironmentConfigurationClass, '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, SearchConfigurationClass, '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, ExtensionPackageDefinitionClass, '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, ExtensionProfileClass, '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, DeviceConfigurationClass, '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, VisualProfileClass, '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, SupportedLanguageClass, '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, AffiliationClass, '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, OperationPermissionClass, '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, ReasonCodeClass, '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, ReasonCodeClass, '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, SalesTaxGroupClass, '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, TenderTypeClass, '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, UnitOfMeasureClass, '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, DiscountCodeClass, '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, CurrencyClass, '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, CurrencyAmountClass, '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, CommissionSalesGroupClass, '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, CommissionSalesGroupClass, '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, PaymentMerchantInformationClass, '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, PaymentMerchantInformationClass, '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, ChannelInventoryConfigurationClass, '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, ChannelPurchaseConfigurationClass, '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, InventoryJournalNameClass, '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, DeviceClass, '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, UserDefinedSecretCertificateResultClass, '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, MediaBlobClass, '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, ExtensibleEnumerationContainerClass, '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, AddressPurposeClass, '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, ReturnPolicyClass, '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, EmailReceiptSettingsClass, '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 ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DataServiceRequest } from './DataServiceRequest';\nimport { IDataServiceOptions, IDataServiceQueryInternal, IDataServiceRequest, IQueryResultSettings } from './Interfaces';\n\n/**\n * Represents a data service query object.\n */\nexport class DataServiceQuery {\n private _query: IDataServiceQueryInternal;\n\n /**\n * Creates a new instance of DataServiceQuery.\n * @param {IDataServiceRequestFactory} dataServiceRequestFactory The data service request factory.\n * @param {string} [entitySet] The entity set name.\n * @param {string} [entityType] The entity type name.\n * @param {any} [returntype] The return type of query.\n * @param {any} [key] Entity key.\n */\n constructor(entitySet?: string, entityType?: string, returnType?: any, key?: any) {\n this._query = {\n entitySet,\n entityType,\n key,\n returnType,\n tokens: {},\n // by default all action will skip reading from cache before making execute call\n options: { bypassCache: 'get', returnEntity: entityType },\n resultSettings: { Paging: {}, Sorting: {} }\n };\n }\n\n /**\n * Query result settings.\n *\n * @param {string} value The value of query result settings.\n */\n public resultSettings(value: IQueryResultSettings): DataServiceQuery {\n if (!value) {\n value = {};\n }\n\n this._query.resultSettings = {};\n this._query.resultSettings.Paging = value.Paging || {};\n this._query.resultSettings.Sorting = value.Sorting || {};\n this._query.resultSettings.count = value.count;\n\n return this;\n }\n\n /**\n * Filter Clause.\n * @param {string} value The filter value.\n */\n public filter(value: string): DataServiceQuery {\n this._query.filterSettings = value;\n\n return this;\n }\n\n /**\n * Top clause\n * @param {string} value The number of top rows to select.\n */\n public top(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Top = value;\n\n return this;\n }\n\n /**\n * Skip clause\n * @param {string} value The number of rows to skip\n */\n public skip(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Skip = value;\n\n return this;\n }\n\n /**\n * Expand clause\n * @param {string} propertyName The property name to expand.\n */\n public expand(propertyName: string): DataServiceQuery {\n if (this._query.expands == null) {\n this._query.expands = [];\n }\n\n this._query.expands.push(propertyName);\n return this;\n }\n\n /**\n * Request number of total row available.\n */\n public inlineCount(): DataServiceQuery {\n this._query.inlineCount = true;\n\n return this;\n }\n\n /**\n * Order by clause.\n * @param {string} value The field name for ordering.\n */\n public orderBy(value: string): DataServiceQuery {\n if (!this._query.resultSettings.Sorting.Columns) {\n this._query.resultSettings.Sorting.Columns = [];\n }\n\n this._query.resultSettings.Sorting.Columns.push({ ColumnName: value });\n\n return this;\n }\n\n /**\n * Transforms the request into a create request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public create(object: any): IDataServiceRequest {\n this._query.action = 'Create';\n this._query.data = this._createODataParameters(object);\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a read request.\n * @return {IDataServiceRequest} The data service request.\n */\n public read(): IDataServiceRequest {\n if (this._query.key || (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined)) {\n this._query.action = 'Read';\n } else {\n this._query.action = 'ReadAll';\n this._query.isReturnTypeACollection = true;\n }\n\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into an update request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public update(object: any): IDataServiceRequest {\n this._query.action = 'Update';\n this._query.data = this._createODataParameters(object);\n\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a delete request.\n * @return {DataServiceRequest} The data service request.\n */\n public delete(): IDataServiceRequest {\n this._query.action = 'Delete';\n\n return this._createRequest();\n }\n\n public setGetAllRecords(): void {\n this._query.resultSettings.Paging.Top = -1;\n }\n\n public isGetAllRecords(): boolean {\n return this._query.resultSettings.Paging.Top === -1;\n }\n\n public createDataServiceRequestForOperation(\n operationName: string,\n isAction: boolean,\n returnType: any,\n isReturnTypeACollection: string,\n options: IDataServiceOptions,\n data?: unknown\n ): IDataServiceRequest {\n this._query.returnType = returnType;\n this._query.isAction = isAction;\n this._query.isReturnTypeACollection = isReturnTypeACollection === 'true';\n this._query.action = operationName;\n this._query.data = this._createODataParameters(data);\n this._query.options = { ...{ bypassCache: 'get', returnEntity: 'CUSTOM-ENTITY' }, ...options };\n\n if (this._query.isReturnTypeACollection && !this._query.resultSettings.Paging.Top) {\n // for paginated requests, where we didn't specify page size, set to fetch all records\n this.setGetAllRecords();\n }\n\n return this._createRequest();\n }\n\n private _createODataParameters(data: unknown) {\n return data ? { parameters: data } : undefined;\n }\n\n private _createRequest(): IDataServiceRequest {\n return new DataServiceRequest(this._query);\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 { toJS } from 'mobx';\n\nimport { ApiVersion, EntityIdentifier, SortColumn } from './Entities/CommerceTypes.g';\n\nimport {\n BypassCache,\n CacheType,\n ICallerContext,\n IDataServiceQueryInternal,\n IDataServiceRequest,\n IDictionary,\n IPartialCookieContext\n} from './Interfaces';\nimport {\n modelManagersRetailServerRequestError,\n modelManagersRetailServerRequestFinished,\n modelManagersRetailServerRequestStarted,\n Tracer,\n Utils\n} from './logging';\n\nimport { ProxyError } from './exceptions';\nimport { ErrorParser } from './exceptions/ErrorParser';\nimport {\n convertToString,\n EMPTY,\n format,\n hasElements,\n isEmpty,\n isNullOrWhitespace,\n isObjectNotEmptyOrNull\n} from './extensions/StringExtensions';\n\nimport { IODataRequest, ODataHttpRequest } from './externals/DataJS.New';\nexport const ODATA_HAS_NEXT_PAGE_PROPERTY = '@odata.nextLink';\nexport const GET: string = 'GET';\nexport const POST: string = 'POST';\nexport const PATCH: string = 'PATCH';\nexport const DELETE: string = 'DELETE';\nexport const GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\nexport const ODATA_TOTAL_COUNT_PROPERTY = '@odata.count';\n\nconst ApiTimeoutInMilliSecond = 10000;\nconst OPERATINGUNITNUMBER_HEADERNAME = 'OUN';\nconst AUTHORIZATION_HEADERNAME = 'Authorization';\nconst ACCEPT_LANGUAGE = 'Accept-Language';\nconst REQUEST_ID = 'RequestId';\nconst APPSESSION_ID = 'AppSessionId';\nconst USERSESSION_ID = 'UserSessionId';\nconst DEFAULT_HEADER: { [headerName: string]: string } = {\n Prefer: 'return=representation'\n};\n\n/***\n * Parses the odata result returned from server.\n *\n * @param {any} data The result returned from server.\n * @param {any} resultType The entity type to parse the result as.\n */\nexport function parseOdataResult(data: any, resultType: any): any {\n if (!data) {\n return data;\n }\n\n if (!data.value) {\n return resultType ? new resultType(data) : data;\n }\n\n const resultSet = data.value;\n\n if (resultType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n for (let i = 0; i < resultSet.length; i++) {\n resultSet[i] = new resultType(resultSet[i]);\n }\n }\n }\n\n // hasNextPage only apply to array which is typeof 'object'\n typeof resultSet === 'object' ? (resultSet.hasNextPage = !(data[ODATA_HAS_NEXT_PAGE_PROPERTY] === undefined)) : null;\n return resultSet;\n}\n\n/**\n * Represents a data service request object.\n */\nexport class DataServiceRequest implements IDataServiceRequest {\n private get batchRequestUri(): string {\n return this._callerContext.requestContext.apiSettings.baseUrl + '/$batch';\n }\n\n /**\n * Gets Locale for the current data service factory instance.\n */\n public get locale(): string {\n return this._callerContext.requestContext.locale;\n }\n\n /**\n * Sets Locale for the current data service factory instance.\n */\n public set locale(locale: string) {\n this._callerContext.requestContext.locale = locale;\n }\n\n /**\n * get cacheKeyFromInput.\n */\n public get cacheKeyFromInput(): string {\n return this._cacheKeyFromInput;\n }\n\n /**\n * get cacheKeyIdentifierFromReturnType.\n */\n public get cacheKeyIdentifierFromReturnType(): string {\n return this._cacheKeyIdentifierFromReturnType;\n }\n\n /**\n * get cacheObjectType.\n */\n public get cacheObjectType(): string {\n return this._cacheObjectType;\n }\n\n /**\n * get cacheKeyFromReturnType.\n */\n public get cacheKeyFromReturnType(): string[] {\n return this._cacheKeyFromReturnType;\n }\n\n /**\n * get totalCount.\n */\n public get totalCount(): number {\n return this._totalCount;\n }\n\n /**\n * get query.\n */\n public get query(): IDataServiceQueryInternal {\n return this._query;\n }\n\n /**\n * Gets query parameters for data service request.\n */\n public queryParams(): T {\n return this._query.data.parameters as T;\n }\n\n /**\n * Gets Odata properties\n */\n public get otherOdataProperties(): IDictionary {\n return this._otherOdata;\n }\n\n private _actionId: string;\n private _cacheObjectType: string;\n private _cacheKeyFromInput: string;\n private _cacheKeyFromReturnType: string[] = [];\n private _cacheKeyIdentifierFromReturnType: string;\n\n private _query: IDataServiceQueryInternal;\n private _callerContext: ICallerContext;\n private _requestUri: string;\n private _method: string;\n private _id: number;\n private _hasOperationName: boolean;\n private _totalCount: number;\n private _otherOdata: IDictionary;\n\n private static buildBatchRequest(batchRequestUri: string, requests: DataServiceRequest[]): IODataRequest {\n let requestId = 1;\n\n // Creates an empty batch request.\n const odataBatchRequest: IODataRequest = {\n requestUri: batchRequestUri,\n method: POST,\n data: { __batchRequests: [] }\n };\n\n const batchRequests = odataBatchRequest.data.__batchRequests;\n let changeRequests: IODataRequest[];\n\n requests.forEach(request => {\n request._id = requestId++;\n\n const odataRequest: IODataRequest = {\n requestUri: request._requestUri,\n method: request._method,\n data: DataServiceRequest.toJson(request._query.data),\n headers: { 'Content-ID': request.id(), Prefer: 'return=representation' }\n };\n\n if (request._method === GET) {\n batchRequests.push(odataRequest);\n } else {\n if (!changeRequests) {\n changeRequests = [];\n batchRequests.push({ __changeRequests: changeRequests });\n }\n changeRequests.push(odataRequest);\n }\n });\n\n return odataBatchRequest;\n }\n\n /**\n * Parse the batch responses.\n * @param {any[]} batchResponses The server responses.\n * @param {any[]} requests The request objects.\n * @param {any[]} responses The responses passed down to the success callback.\n */\n private static parseBatchResponses(batchResponses: any[], requests: any[], responses: any[]): ProxyError[] {\n let errors: ProxyError[] = new Array();\n\n batchResponses.forEach(response => {\n if (response.__changeResponses) {\n errors = errors.concat(DataServiceRequest.parseBatchResponses(response.__changeResponses, requests, responses));\n } else {\n if (!response.message) {\n const requestId = parseInt(response.headers['Content-ID'], 10);\n\n responses[requestId] = parseOdataResult(response.data, requests[requestId - 1]._query.returnType);\n } else {\n errors = errors.concat(ErrorParser.parseErrorMessage(response));\n }\n }\n });\n\n return errors;\n }\n\n /**\n * TODO - check if below function can be replaced with JSON.stringify.\n * Helper function to convert data into a stringified JSON object.\n * @param {any} parent The container of the element.\n * @param {any} data The data to be converted to a stringified JSON object.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static toJson(data: any, parent?: any, modifyDataInPlace?: boolean): string {\n let clone = data;\n\n if (data === null) {\n return null;\n } else if (typeof data !== 'object') {\n // if data type is primitive type, no need to process further\n // as calling jquery extend or calling foreach prop on string type\n // will transform string to array of chars which will be incorrect result.\n return data;\n }\n\n if (data && data.parameters) {\n data = data.parameters;\n parent = null;\n } else {\n parent = data;\n }\n\n // clones the data object instead of changing it, if no modifications in place\n if (!modifyDataInPlace) {\n clone = { ...data };\n }\n\n for (const prop in clone) {\n if (clone.hasOwnProperty(prop)) {\n const property = clone[prop];\n\n // only non-undefined properties are added to the object\n if (typeof property !== 'undefined') {\n let value;\n if (property === null) {\n value = null;\n } else if (typeof property === 'object') {\n if (property instanceof Array) {\n value = DataServiceRequest.arrayToJson(property, parent, modifyDataInPlace);\n } else if (property instanceof Date) {\n value = DataServiceRequest.toDateTimeOffset(property);\n } else {\n // recursively stringifies objects\n value = DataServiceRequest.toJson(property, clone, modifyDataInPlace);\n }\n } else {\n value = property;\n }\n\n clone[prop] = value;\n }\n }\n }\n\n return clone;\n }\n\n /**\n * Helper function to convert array into a stringified JSON object following OData specifications.\n * @param {Array} array The data to be converted to a stringified JSON object.\n * @param {any} parent The container of the array.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static arrayToJson(array: any[], parent: any, modifyDataInPlace?: boolean): any {\n const data = [];\n for (let i = 0; i < array.length; i++) {\n data[i] = DataServiceRequest.toJson(array[i], array, modifyDataInPlace);\n }\n\n // if array is not a top level data on an action\n return data;\n }\n\n /**\n * Add offset fields to Date object for serialization purposes.\n * @param {Date} dateTime The date.\n * @return {Date} The date with __edmType and __offset fields injected.\n */\n private static toDateTimeOffset(dateTime: Date): Date {\n if (!(dateTime as any).__edmType || !(dateTime as any).__offset) {\n const pad: (val: number) => string = (val: number) => (val < 10 ? '0' + val : val.toString());\n const sign: string = dateTime.getTimezoneOffset() > 0 ? '-' : '+';\n const offset: number = Math.abs(dateTime.getTimezoneOffset());\n const hours: string = pad(Math.floor(offset / 60));\n const minutes: string = pad(offset % 60);\n\n (dateTime as any).__edmType = 'Edm.DateTimeOffset';\n (dateTime as any).__offset = sign + hours + ':' + minutes;\n }\n\n return dateTime;\n }\n\n /**\n * Formats entity key(s) in request Uri.\n * @param {any} key The key dictionary.\n * @return {string} The formated string of the key(s).\n */\n private static formatKey(key: any): string {\n let result: string = EMPTY;\n\n if (key) {\n const formattedKey = [];\n let propertyName: string = EMPTY;\n\n for (const property in key) {\n if (key.hasOwnProperty(property)) {\n propertyName = property;\n if (typeof key[propertyName] === 'string') {\n formattedKey.push(propertyName + `='${key[propertyName]}'`);\n } else {\n formattedKey.push(propertyName + '=' + key[propertyName]);\n }\n }\n }\n\n if (formattedKey.length === 1) {\n if (typeof key[propertyName] === 'string') {\n result = `'${key[propertyName]}'`;\n } else {\n result = key[propertyName];\n }\n } else {\n result = formattedKey.join();\n }\n }\n\n return result;\n }\n\n /**\n * Formats function parameters in request Uri.\n * @param {any} parameters The parameter dictionary.\n * @return {string} The formated and encoded string of the parameters.\n */\n private static formatFunctionParameter(parameters: any): string {\n let result: string = EMPTY;\n\n if (parameters) {\n for (const parameter in parameters) {\n if (parameters.hasOwnProperty(parameter)) {\n const paramValue = parameters[parameter];\n\n if (!isEmpty(result)) {\n result += ',';\n }\n\n if (paramValue === undefined) {\n // handles undefined value\n continue;\n } else if (typeof paramValue === 'string') {\n // handles string type value\n result += parameter + `='${encodeURIComponent(paramValue)}'`;\n } else {\n // handles null and other types value\n result += parameter + '=' + encodeURIComponent(paramValue);\n }\n }\n }\n }\n\n return result;\n }\n\n // TODO - use node url api for url parsing\n private static addParameter(requestUri: string, key: string, value: any): string {\n if (value) {\n let parameterSeparator = '?';\n\n if (requestUri.indexOf(parameterSeparator) > 0) {\n parameterSeparator = '&';\n }\n\n return requestUri + parameterSeparator + key + '=' + value;\n } else {\n return requestUri;\n }\n }\n\n private static getActionIdFromInput(query: IDataServiceQueryInternal) {\n return `@msdyn365-commerce/retail-proxy/${query.entitySet}/${query.action}`;\n }\n\n private static getCacheObjectValueFromReturnType(returnType: any): string {\n // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n return cacheObjectTypeValue.replace('Class', '');\n }\n\n private static buildCacheFromInput(query: IDataServiceQueryInternal, cacheKeyIdentifierFromReturnType: string): string {\n // TODO if return type have distinct primary key (and not a collection), cache key for action will be computed primary key\n\n let cacheKey = {};\n // if query have key like { RecordId: 56873008 }\n query.key && (cacheKey = { ...query.key });\n // parameters are input to function like query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', { channelId })\n // => {channelId} is parameters.\n query.data && query.data.parameters && (cacheKey = { ...cacheKey, ...(query.data.parameters as {}) });\n query.resultSettings &&\n (cacheKey = {\n ...cacheKey,\n ...query.resultSettings.Paging,\n ...query.resultSettings.Sorting\n });\n query.filterSettings && (cacheKey['filter'] = query.filterSettings);\n isObjectNotEmptyOrNull(query.tokens) && (cacheKey['token'] = query.tokens);\n // TODO - add OUN in cache key\n const cacheKeyValue =\n convertToString(cacheKey) ||\n (cacheKeyIdentifierFromReturnType ? GET_FROM_RETURNIDENTIFIER : `${query.entitySet}|${query.entityType}|NOKEY`);\n Tracer.Information(`{CacheKey - CacheValue} : ${cacheKey} - ${cacheKeyValue}`);\n return cacheKeyValue;\n }\n\n private static getDataCacheType(query: IDataServiceQueryInternal): CacheType {\n // cache all result in request cacheisObjectNotEmptyOrNull\n //\n // Follow following rule for app cache\n // -------------------------------------------------------------------------------------\n // scenario app cache\n // -------------------------------------------------------------------------------------\n // 1. if returnType is - true\n // a. Category\n // b. Product\n // c. OrgUnit\n // d. ProductCatalog\n // e. Warehouse\n if (query.entitySet === 'Carts' && query.action === 'GetMaxLoyaltyPointsToRedeemForTransactionBalance') {\n return 'none';\n }\n\n return query.options.bypassCache === 'get' || query.options.bypassCache === 'getAndPut' ? 'none' : 'request';\n }\n\n constructor(query: IDataServiceQueryInternal) {\n Tracer.Information('DataServiceRequest.constructor()');\n this._query = toJS(query, { recurseEverything: true });\n this._hasOperationName = false;\n\n switch (query.action) {\n case 'Read':\n case 'ReadAll':\n this._method = GET;\n break;\n\n case 'Create':\n this._method = POST;\n break;\n\n case 'Update':\n this._method = PATCH;\n break;\n\n case 'Delete':\n this._method = DELETE;\n break;\n\n default:\n if (query.isAction) {\n // Sets the HTTP method to be POST for actions\n this._method = POST;\n } else {\n // Sets the HTTP method to be GET for functions\n this._method = GET;\n }\n\n this._hasOperationName = true;\n }\n\n this._actionId = DataServiceRequest.getActionIdFromInput(query);\n\n this._cacheObjectType = DataServiceRequest.getCacheObjectValueFromReturnType(query.options.returnEntity);\n // TODO - handle Key when it is array like SHIFT case\n const entityIdentifier = this._cacheObjectType === 'SimpleProduct' ? 'Product' : this._cacheObjectType;\n this._cacheKeyIdentifierFromReturnType = EntityIdentifier[entityIdentifier] && EntityIdentifier[entityIdentifier].Key;\n\n this._cacheKeyFromInput = DataServiceRequest.buildCacheFromInput(this._query, this._cacheKeyIdentifierFromReturnType);\n }\n\n /**\n * Gets the Request Identifier.\n * Auto-generated unique identifier if executed in batch. Used to fetch the response from batch result array.\n */\n public id(): number {\n return this._id;\n }\n\n public getActionId = () => this._actionId;\n\n public getCacheObjectType = () => this._cacheObjectType;\n\n public getCacheKey = () => this._cacheKeyFromInput;\n\n public dataCacheType = () => DataServiceRequest.getDataCacheType(this._query);\n\n public shouldCacheOutput = () => true;\n\n public overrideCacheType = (bypassCache: BypassCache) => {\n bypassCache && (this._query.options.bypassCache = bypassCache);\n };\n\n /**\n * Executes the request.\n * @param {any} callerContext The caller context.\n * @return {IAsyncResult} The async result.\n */\n public execute(callerContext: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n let result: Promise;\n const headers: { [headerName: string]: string } = this.buildQueryHeader();\n\n if (\n !this._query.isReturnTypeACollection ||\n (this._query.resultSettings &&\n this._query.resultSettings.Paging &&\n this._query.resultSettings.Paging.Top &&\n this._query.resultSettings.Paging.Top >= 0)\n ) {\n result = this.loadPage(headers);\n } else {\n result = this.getAllPages(headers, 0);\n }\n\n return result;\n }\n\n // Need to build batch handler ----------- PENDING\n /**\n * Executes the batch requests.\n * @param {DataServiceRequest[]} requests The collection of requests to execute.\n * @param {any} [callerContext] The caller context.\n * @return {IAsyncResult} The async result. Responses at index I correlates to request with identifier I.\n */\n public executeBatch(requests: DataServiceRequest[], callerContext?: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n\n return new Promise((resolve, reject) => {\n ODataHttpRequest(\n DataServiceRequest.buildBatchRequest(this.batchRequestUri, requests),\n (data: any) => {\n const responses: any[] = new Array();\n const errors: ProxyError[] = DataServiceRequest.parseBatchResponses(data.__batchResponses, requests, responses);\n\n if (errors.length === 0) {\n Tracer.Information(this.batchRequestUri + ' success');\n resolve(responses);\n } else {\n Tracer.Errors(errors, this.batchRequestUri + ' failed.');\n reject(errors);\n }\n },\n (error: any) => {\n Tracer.Error(this.batchRequestUri + ' failed');\n reject(ErrorParser.parseErrorMessage(error));\n }\n );\n });\n }\n\n /**\n * Gets the Request Uri.\n */\n private getRequestUri(): string {\n let requestUri: string = this._callerContext.requestContext.apiSettings.baseUrl + 'Commerce';\n if (this._query.entitySet) {\n requestUri = `${requestUri}/${this._query.entitySet}`;\n\n if (this._query.key) {\n requestUri = `${requestUri}(${DataServiceRequest.formatKey(this._query.key)})`;\n } else if (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined) {\n requestUri = `${requestUri}('')`;\n }\n }\n\n // Appends the action (POST) or function (GET) name to the Uri\n if (this._hasOperationName) {\n requestUri += '/' + this._query.action;\n\n // Construct OData function Url with parameters. [e.g. Func(), Func(param1='',param2='')]\n if (!this._query.isAction && this._query.data && this._query.data.parameters) {\n requestUri += '(' + DataServiceRequest.formatFunctionParameter(this._query.data.parameters) + ')';\n }\n }\n\n if (this._query.isReturnTypeACollection) {\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$top',\n this._query.resultSettings && this._query.resultSettings.Paging\n ? this._query.resultSettings.Paging.Top\n : ApiTimeoutInMilliSecond\n ); // Config.defaultPageSize);\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$skip',\n this._query.resultSettings && this._query.resultSettings.Paging ? this._query.resultSettings.Paging.Skip : 0\n );\n requestUri = DataServiceRequest.addParameter(requestUri, '$inlinecount', this._query.inlineCount ? 'allpages' : null);\n\n if (this._query.resultSettings.count) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$count', 'true');\n }\n\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$filter',\n this._query.filterSettings ? this._query.filterSettings : 0\n );\n\n if (this._query.resultSettings && this._query.resultSettings.Sorting && this._query.resultSettings.Sorting.Columns) {\n const orderByColumns = [];\n this._query.resultSettings.Sorting.Columns.forEach((column: SortColumn) => {\n if (!isNullOrWhitespace(column.ColumnName || EMPTY)) {\n orderByColumns.push(format('{0}%20{1}', column.ColumnName, column.IsDescending ? 'desc' : 'asc'));\n }\n });\n if (orderByColumns.length > 0) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$orderby', orderByColumns.join(','));\n }\n }\n }\n\n if (this._query.expands && hasElements(this._query.expands)) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$expand', this._query.expands.join());\n }\n\n if (!isNullOrWhitespace(ApiVersion)) {\n requestUri = DataServiceRequest.addParameter(requestUri, 'api-version', ApiVersion);\n }\n\n return requestUri;\n }\n\n /**\n * Executes paginated requests for all entities.\n * @param {AsyncResult{T}} asyncResult The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n * @param {number} skip The offset.\n * @param {Array} The array result.\n */\n private getAllPages(headers: { [headerName: string]: string }, skip: number, results?: T[]): Promise {\n skip = skip || 0;\n const top = 1000; // Config.defaultPageSize;\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Top = top;\n results = results || [];\n\n return this.loadPage(headers, skip)\n .then((loadPageResults: T) => {\n if (loadPageResults) {\n if (typeof (loadPageResults as any).length === 'number') {\n results = results.concat(loadPageResults);\n\n if ((loadPageResults as any).length < top) {\n // This page contains less items than top\n if ((loadPageResults as any).hasNextPage) {\n // This means the pagesize defined on server side is smaller than the top\n skip += (loadPageResults as any).length;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n } else {\n // No more pages need to fetch\n return Promise.resolve((results as any) as T);\n }\n } else {\n // This page contains exact amount of item as the top, should not contain more\n skip += top;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n }\n } else {\n // The pageResult is a single item\n results.push((loadPageResults as unknown) as T);\n return Promise.resolve((results as unknown) as T);\n }\n }\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Builds the header to be sent as part of the request.\n * @returns {{ [headerName: string]: string }} a key value pair collection of header names and header values.\n */\n private buildQueryHeader(): { [headerName: string]: string } {\n const headers: { [headerName: string]: string } = {};\n headers['from-keystone'] = 'true';\n\n // copy default values from default header\n for (const headerName in DEFAULT_HEADER) {\n if (DEFAULT_HEADER.hasOwnProperty(headerName)) {\n headers[headerName] = DEFAULT_HEADER[headerName];\n }\n }\n\n // Copy operating unit number if present for C2 (if an operation is done by a customer or by anonymous user) scenarios.\n if (!isNullOrWhitespace(this._callerContext.requestContext.apiSettings.oun)) {\n headers[OPERATINGUNITNUMBER_HEADERNAME] = this._callerContext.requestContext.apiSettings.oun;\n }\n\n // Add accept-language header to send user preferred locale to server.\n headers[ACCEPT_LANGUAGE] = this._callerContext.requestContext.locale;\n\n // Add custom AppInsights headers\n headers[REQUEST_ID] = this._callerContext.requestContext.operationId;\n\n // add any tokens as part of the header\n for (const tokenName in this._query.tokens) {\n if (this._query.tokens.hasOwnProperty(tokenName)) {\n const tokenValue: string = this._query.tokens[tokenName];\n\n if (!isNullOrWhitespace(tokenValue)) {\n headers[tokenName] = tokenValue;\n }\n }\n }\n\n // Now check whether authentication token is present or not, if present it will be added into Authorization header.\n if (\n this._callerContext &&\n this._callerContext.requestContext.user &&\n !isNullOrWhitespace(this._callerContext.requestContext.user.token)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `id_token ${this._callerContext.requestContext.user.token}`;\n }\n\n // Check if an Bearer access token is being provided. If present it will be added into Authorization header\n if (\n this._callerContext &&\n this._callerContext.requestContext &&\n !isNullOrWhitespace(this._callerContext.requestContext.accessToken)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `Bearer ${this._callerContext.requestContext.accessToken}`;\n }\n\n // Add AppSessionId and UserSessionId to request header\n if (this._callerContext.requestContext[`cookies`]) {\n const cookieData: IPartialCookieContext = this._callerContext.requestContext[`cookies`];\n const appSessionCookie = cookieData.get('ai_session');\n const userSessionCookie = cookieData.get('ai_user');\n\n if (appSessionCookie && appSessionCookie.status === 'FOUND') {\n const appSessionId = appSessionCookie.value?.split('|')[0];\n headers[APPSESSION_ID] = appSessionId;\n }\n if (userSessionCookie && userSessionCookie.status === 'FOUND') {\n const userSessionId = userSessionCookie.value?.split('|')[0];\n headers[USERSESSION_ID] = userSessionId;\n }\n }\n\n return headers;\n }\n\n /**\n * Executes request for one page.\n * @param {AsyncResult} The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n */\n private loadPage(headers: { [headerName: string]: string }, skip?: number): Promise {\n if (skip) {\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Skip = skip;\n }\n\n const requestId = Utils.generateGuid();\n modelManagersRetailServerRequestStarted(requestId, this._requestUri);\n\n return new Promise((resolve, reject) => {\n // This is the pipe for all OData API calls.\n ODataHttpRequest(\n {\n requestUri: this.getRequestUri(),\n method: this._method,\n data: DataServiceRequest.toJson(this._query.data),\n headers\n },\n (data: any) => {\n modelManagersRetailServerRequestFinished(requestId, this._requestUri);\n const resultSet = parseOdataResult(data, this._query.returnType);\n\n if (data) {\n if (data[ODATA_TOTAL_COUNT_PROPERTY]) {\n this._totalCount = data[ODATA_TOTAL_COUNT_PROPERTY];\n }\n const otherOdata = DataServiceRequest.setMetadata(data);\n if (otherOdata) {\n this._otherOdata = otherOdata;\n }\n }\n\n if (this._cacheKeyIdentifierFromReturnType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n this._cacheKeyFromReturnType.concat(\n resultSet.map(result => result[this._cacheKeyIdentifierFromReturnType]).filter(Boolean)\n );\n } else if (typeof resultSet === 'object') {\n this._cacheKeyFromReturnType.push(resultSet[this._cacheKeyIdentifierFromReturnType]);\n }\n }\n\n resolve(resultSet);\n },\n (error: any) => {\n modelManagersRetailServerRequestError(requestId, this._requestUri, error.message);\n reject(ErrorParser.parseErrorMessage(error));\n }\n );\n });\n }\n\n /**\n * Sets all the Odata propeties from retail api on DataServiceRequest\n * @param data retail api call data\n */\n private static setMetadata(data: any): IDictionary | undefined {\n // Sets all the Odata properties on DataServiceRequest\n const odataList = Object.keys(data).filter(key => {\n if (key !== ODATA_TOTAL_COUNT_PROPERTY) {\n return key.indexOf('@odata') === 0;\n }\n });\n\n if (odataList.length > 0) {\n const odata = odataList.reduce(function(newData, key) {\n const newKey = key.replace('@odata.', '');\n newData[newKey] = data[key];\n return newData;\n }, {});\n\n return odata;\n }\n return undefined;\n }\n}\n","\n import * as Entities from './CommerceTypes.g';\n import { jsonLightReadStringPropertyValue } from '../externals';\n\n const entityDictionary = {};\n \n /**\n * Category entity class.\n */\n export class CategoryClass implements Entities.Category {\n public RecordId: number;\n public OfflineImage: string;\n public Name: string;\n public ParentCategory: number;\n public DisplayOrder: number;\n public Images: Entities.MediaLocation[];\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.Name = \n odataObject.Name;\n \n this.ParentCategory = \n (odataObject.ParentCategory != null) ? parseInt(odataObject.ParentCategory, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryClass'] = CategoryClass;\n \n /**\n * Cart entity class.\n */\n export class CartClass implements Entities.Cart {\n public AffiliationLines: Entities.AffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public AmountPaid: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public IsTaxIncludedInPrice: boolean;\n public BeginDateTime: Date;\n public BusinessDate: Date;\n public CancellationChargeAmount: number;\n public EstimatedShippingAmount: number;\n public CartLines: Entities.CartLine[];\n public CartTypeValue: number;\n public ChannelId: number;\n public ChargeAmount: number;\n public CustomerOrderRemainingBalance: number;\n public ChargeLines: Entities.ChargeLine[];\n public TaxViewLines: Entities.TaxViewLine[];\n public Comment: string;\n public InvoiceComment: string;\n public Coupons: Entities.Coupon[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public DiscountCodes: string[];\n public Id: string;\n public SuspendedCartId: string;\n public TransactionTypeValue: number;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public IsReturnByReceipt: boolean;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsSuspended: boolean;\n public LoyaltyCardId: string;\n public ModifiedDateTime: Date;\n public Name: string;\n public OrderNumber: string;\n public AvailableDepositAmount: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public PrepaymentAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PromotionLines: string[];\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public SalesId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public NetPrice: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public WarehouseId: string;\n public IsCreatedOffline: boolean;\n public CartStatusValue: number;\n public ReceiptTransactionTypeValue: number;\n public CommissionSalesGroup: string;\n public Version: number;\n public TotalItems: number;\n public HasTaxCalculationTriggered: boolean;\n public MerchantProperties: Entities.PaymentMerchantInformation[];\n public HasChargeCalculationTriggered: boolean;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationLines = undefined;\n if (odataObject.AffiliationLines) {\n this.AffiliationLines = [];\n for (var i = 0; i < odataObject.AffiliationLines.length; i++) {\n if (odataObject.AffiliationLines[i] != null) {\n if (odataObject.AffiliationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLines[i] = new entityDictionary[className](odataObject.AffiliationLines[i])\n }\n } else {\n this.AffiliationLines[i] = new AffiliationLoyaltyTierClass(odataObject.AffiliationLines[i]);\n }\n } else {\n this.AffiliationLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CancellationChargeAmount = \n (odataObject.CancellationChargeAmount != null) ? parseFloat(odataObject.CancellationChargeAmount) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.CartLines = undefined;\n if (odataObject.CartLines) {\n this.CartLines = [];\n for (var i = 0; i < odataObject.CartLines.length; i++) {\n if (odataObject.CartLines[i] != null) {\n if (odataObject.CartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLines[i] = new entityDictionary[className](odataObject.CartLines[i])\n }\n } else {\n this.CartLines[i] = new CartLineClass(odataObject.CartLines[i]);\n }\n } else {\n this.CartLines[i] = undefined;\n }\n }\n }\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxViewLines = undefined;\n if (odataObject.TaxViewLines) {\n this.TaxViewLines = [];\n for (var i = 0; i < odataObject.TaxViewLines.length; i++) {\n if (odataObject.TaxViewLines[i] != null) {\n if (odataObject.TaxViewLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxViewLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxViewLines[i] = new entityDictionary[className](odataObject.TaxViewLines[i])\n }\n } else {\n this.TaxViewLines[i] = new TaxViewLineClass(odataObject.TaxViewLines[i]);\n }\n } else {\n this.TaxViewLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.Id = \n odataObject.Id;\n \n this.SuspendedCartId = \n odataObject.SuspendedCartId;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.OrderNumber = \n odataObject.OrderNumber;\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.PrepaymentAppliedOnPickup = \n (odataObject.PrepaymentAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.SalesId = \n odataObject.SalesId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.CartStatusValue = \n odataObject.CartStatusValue;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.Version = \n (odataObject.Version != null) ? parseInt(odataObject.Version, 10) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.MerchantProperties = undefined;\n if (odataObject.MerchantProperties) {\n this.MerchantProperties = [];\n for (var i = 0; i < odataObject.MerchantProperties.length; i++) {\n if (odataObject.MerchantProperties[i] != null) {\n if (odataObject.MerchantProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.MerchantProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MerchantProperties[i] = new entityDictionary[className](odataObject.MerchantProperties[i])\n }\n } else {\n this.MerchantProperties[i] = new PaymentMerchantInformationClass(odataObject.MerchantProperties[i]);\n }\n } else {\n this.MerchantProperties[i] = undefined;\n }\n }\n }\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartClass'] = CartClass;\n \n /**\n * Customer entity class.\n */\n export class CustomerClass implements Entities.Customer {\n public AccountNumber: string;\n public RecordId: number;\n public CreatedDateTime: Date;\n public ChargeGroup: string;\n public PriceGroup: string;\n public IsCustomerTaxInclusive: boolean;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Cellphone: string;\n public Email: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public Name: string;\n public PersonNameId: number;\n public FirstName: string;\n public MiddleName: string;\n public LastName: string;\n public DirectoryPartyRecordId: number;\n public PartyNumber: string;\n public CustomerTypeValue: number;\n public Language: string;\n public CustomerGroup: string;\n public CurrencyCode: string;\n public CNPJCPFNumber: string;\n public IdentificationNumber: string;\n public InvoiceAccount: string;\n public MandatoryCreditLimit: boolean;\n public CreditRating: string;\n public CreditLimit: number;\n public Balance: number;\n public Blocked: boolean;\n public BlockedType: number;\n public UseOrderNumberReference: boolean;\n public OrganizationId: string;\n public UsePurchaseRequest: boolean;\n public MultilineDiscountGroup: string;\n public TotalDiscountGroup: string;\n public LineDiscountGroup: string;\n public TaxGroup: string;\n public SalesTaxGroup: string;\n public CommissionSalesGroupId: string;\n public TaxExemptNumber: string;\n public VatNumber: string;\n public TaxOffice: string;\n public NonChargeableAccount: boolean;\n public Tag: string;\n public ReceiptSettings: number;\n public ReceiptEmail: string;\n public OptOutPersonalization: boolean;\n public OptOutWebActivityTracking: boolean;\n public RetailCustomerTableRecordId: number;\n public OfflineImage: string;\n public IsAsyncCustomer: boolean;\n public NewCustomerPartyNumber: string;\n public CustomerAffiliations: Entities.CustomerAffiliation[];\n public Addresses: Entities.Address[];\n public Attributes: Entities.CustomerAttribute[];\n public Images: Entities.MediaLocation[];\n public TitleRecordId: number;\n public IsFloorLimitBlocked: boolean;\n public IsB2b: boolean;\n public IsB2bAdmin: boolean;\n public BusinessPartnerId: string;\n public Contacts: Entities.ContactInfo[];\n public AllowOnAccountPayment: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.PriceGroup = \n odataObject.PriceGroup;\n \n this.IsCustomerTaxInclusive = \n odataObject.IsCustomerTaxInclusive;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Cellphone = \n odataObject.Cellphone;\n \n this.Email = \n odataObject.Email;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.PersonNameId = \n (odataObject.PersonNameId != null) ? parseInt(odataObject.PersonNameId, 10) : undefined;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.MiddleName = \n odataObject.MiddleName;\n \n this.LastName = \n odataObject.LastName;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Language = \n odataObject.Language;\n \n this.CustomerGroup = \n odataObject.CustomerGroup;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CNPJCPFNumber = \n odataObject.CNPJCPFNumber;\n \n this.IdentificationNumber = \n odataObject.IdentificationNumber;\n \n this.InvoiceAccount = \n odataObject.InvoiceAccount;\n \n this.MandatoryCreditLimit = \n odataObject.MandatoryCreditLimit;\n \n this.CreditRating = \n odataObject.CreditRating;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.BlockedType = \n odataObject.BlockedType;\n \n this.UseOrderNumberReference = \n odataObject.UseOrderNumberReference;\n \n this.OrganizationId = \n odataObject.OrganizationId;\n \n this.UsePurchaseRequest = \n odataObject.UsePurchaseRequest;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.TotalDiscountGroup = \n odataObject.TotalDiscountGroup;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.CommissionSalesGroupId = \n odataObject.CommissionSalesGroupId;\n \n this.TaxExemptNumber = \n odataObject.TaxExemptNumber;\n \n this.VatNumber = \n odataObject.VatNumber;\n \n this.TaxOffice = \n odataObject.TaxOffice;\n \n this.NonChargeableAccount = \n odataObject.NonChargeableAccount;\n \n this.Tag = \n odataObject.Tag;\n \n this.ReceiptSettings = \n odataObject.ReceiptSettings;\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.OptOutPersonalization = \n odataObject.OptOutPersonalization;\n \n this.OptOutWebActivityTracking = \n odataObject.OptOutWebActivityTracking;\n \n this.RetailCustomerTableRecordId = \n (odataObject.RetailCustomerTableRecordId != null) ? parseInt(odataObject.RetailCustomerTableRecordId, 10) : undefined;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.NewCustomerPartyNumber = \n odataObject.NewCustomerPartyNumber;\n \n this.CustomerAffiliations = undefined;\n if (odataObject.CustomerAffiliations) {\n this.CustomerAffiliations = [];\n for (var i = 0; i < odataObject.CustomerAffiliations.length; i++) {\n if (odataObject.CustomerAffiliations[i] != null) {\n if (odataObject.CustomerAffiliations[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAffiliations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAffiliations[i] = new entityDictionary[className](odataObject.CustomerAffiliations[i])\n }\n } else {\n this.CustomerAffiliations[i] = new CustomerAffiliationClass(odataObject.CustomerAffiliations[i]);\n }\n } else {\n this.CustomerAffiliations[i] = undefined;\n }\n }\n }\n \n this.Addresses = undefined;\n if (odataObject.Addresses) {\n this.Addresses = [];\n for (var i = 0; i < odataObject.Addresses.length; i++) {\n if (odataObject.Addresses[i] != null) {\n if (odataObject.Addresses[i]['@odata.type'] != null) {\n var className: string = odataObject.Addresses[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Addresses[i] = new entityDictionary[className](odataObject.Addresses[i])\n }\n } else {\n this.Addresses[i] = new AddressClass(odataObject.Addresses[i]);\n }\n } else {\n this.Addresses[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.TitleRecordId = \n (odataObject.TitleRecordId != null) ? parseInt(odataObject.TitleRecordId, 10) : undefined;\n \n this.IsFloorLimitBlocked = \n odataObject.IsFloorLimitBlocked;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.IsB2bAdmin = \n odataObject.IsB2bAdmin;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new ContactInfoClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.AllowOnAccountPayment = \n odataObject.AllowOnAccountPayment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerClass'] = CustomerClass;\n \n /**\n * Employee entity class.\n */\n export class EmployeeClass implements Entities.Employee {\n public StaffId: string;\n public NameOnReceipt: string;\n public Name: string;\n public CultureName: string;\n public NumberOfDaysToPasswordExpiry: number;\n public Permissions: Entities.EmployeePermissions;\n public Images: Entities.MediaLocation[];\n public DefaultImage: string;\n public DefaultCommissionSalesGroup: string;\n public IdentifierTypeValue: number;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.NameOnReceipt = \n odataObject.NameOnReceipt;\n \n this.Name = \n odataObject.Name;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.NumberOfDaysToPasswordExpiry = \n odataObject.NumberOfDaysToPasswordExpiry;\n \n if (odataObject.Permissions == null) {\n this.Permissions = undefined;\n } else if (odataObject.Permissions['@odata.type'] == null) {\n this.Permissions = new EmployeePermissionsClass(odataObject.Permissions);\n } else {\n var className: string = odataObject.Permissions['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Permissions = new entityDictionary[className](odataObject.Permissions)\n }\n }\n\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.DefaultCommissionSalesGroup = \n odataObject.DefaultCommissionSalesGroup;\n \n this.IdentifierTypeValue = \n odataObject.IdentifierTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeClass'] = EmployeeClass;\n \n /**\n * Checklist entity class.\n */\n export class ChecklistClass implements Entities.Checklist {\n public RecordId: number;\n public Tasks: Entities.ChecklistTask[];\n public Version: string;\n public ProcessId: string;\n public Name: string;\n public Description: string;\n public AssignedToChannelId: number;\n public AssignedToWorkerPersonnelNumber: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public TargetDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Tasks = undefined;\n if (odataObject.Tasks) {\n this.Tasks = [];\n for (var i = 0; i < odataObject.Tasks.length; i++) {\n if (odataObject.Tasks[i] != null) {\n if (odataObject.Tasks[i]['@odata.type'] != null) {\n var className: string = odataObject.Tasks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Tasks[i] = new entityDictionary[className](odataObject.Tasks[i])\n }\n } else {\n this.Tasks[i] = new ChecklistTaskClass(odataObject.Tasks[i]);\n }\n } else {\n this.Tasks[i] = undefined;\n }\n }\n }\n \n this.Version = \n odataObject.Version;\n \n this.ProcessId = \n odataObject.ProcessId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.AssignedToChannelId = \n (odataObject.AssignedToChannelId != null) ? parseInt(odataObject.AssignedToChannelId, 10) : undefined;\n \n this.AssignedToWorkerPersonnelNumber = \n odataObject.AssignedToWorkerPersonnelNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TargetDateTime = \n (odataObject.TargetDateTime instanceof Date) ? odataObject.TargetDateTime\n : (odataObject.TargetDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TargetDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistClass'] = ChecklistClass;\n \n /**\n * SalesOrder entity class.\n */\n export class SalesOrderClass implements Entities.SalesOrder {\n public DocumentStatusValue: number;\n public RecordId: number;\n public StatusValue: number;\n public McrOrderStopped: boolean;\n public Shipments: Entities.Shipment[];\n public AggregateInventoryQuantities: Entities.InventoryQuantities;\n public UnifiedDeliveryInformation: Entities.DeliveryInformation;\n public PaymentStatusValue: number;\n public DetailedOrderStatusValue: number;\n public AffiliationLoyaltyTierLines: Entities.SalesAffiliationLoyaltyTier[];\n public IsRequiredAmountPaid: boolean;\n public IsDiscountFullyCalculated: boolean;\n public IgnoreDiscountCalculation: boolean;\n public AmountDue: number;\n public EstimatedShippingAmount: number;\n public AmountPaid: number;\n public CustomerOrderRemainingBalance: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public AvailableDepositAmount: number;\n public BeginDateTime: Date;\n public CreatedDateTime: Date;\n public BusinessDate: Date;\n public CalculatedDepositAmount: number;\n public CancellationCharge: number;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public ChargeAmount: number;\n public ChargeLines: Entities.ChargeLine[];\n public Comment: string;\n public Coupons: Entities.Coupon[];\n public InvoiceComment: string;\n public ContactInformationCollection: Entities.ContactInformation[];\n public CurrencyCode: string;\n public CustomerAccountDepositLines: Entities.CustomerAccountDepositLine[];\n public CustomerId: string;\n public CustomerOrderModeValue: number;\n public CustomerOrderTypeValue: number;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountCodes: string[];\n public EntryStatusValue: number;\n public GrossAmount: number;\n public HasLoyaltyPayment: boolean;\n public Id: string;\n public InternalTransactionId: string;\n public SuspendedTransactionId: string;\n public IncomeExpenseLines: Entities.IncomeExpenseLine[];\n public IncomeExpenseTotalAmount: number;\n public InventoryLocationId: string;\n public IsCreatedOffline: boolean;\n public IsReturnByReceipt: boolean;\n public IsSuspended: boolean;\n public IsTaxIncludedInPrice: boolean;\n public IsTaxExemptedForPriceInclusive: boolean;\n public LineDiscount: number;\n public LineDiscountCalculationTypeValue: number;\n public LoyaltyCardId: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyManualDiscountAmount: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ModifiedDateTime: Date;\n public Name: string;\n public NetAmount: number;\n public NetAmountWithoutTax: number;\n public NetAmountWithNoTax: number;\n public NetAmountWithTax: number;\n public NumberOfItems: number;\n public OverriddenDepositAmount: number;\n public OverriddenDepositWithoutCarryoutAmount: number;\n public PeriodicDiscountAmount: number;\n public TenderDiscountAmount: number;\n public PrepaymentAmountAppliedOnPickup: number;\n public PrepaymentAmountInvoiced: number;\n public PrepaymentAmountPaid: number;\n public PrepaymentRoundingDifference: number;\n public QuotationExpiryDate: Date;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReceiptEmail: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public RequiredDepositAmount: number;\n public RequiredDepositWithoutCarryoutAmount: number;\n public ReturnTransactionHasLoyaltyPayment: boolean;\n public SalesId: string;\n public SalesPaymentDifference: number;\n public SalesLines: Entities.SalesLine[];\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ShippingAddress: Entities.Address;\n public StaffId: string;\n public StatementCode: string;\n public StoreId: string;\n public SubtotalAmount: number;\n public SubtotalAmountWithoutTax: number;\n public SubtotalSalesAmount: number;\n public TaxAmount: number;\n public TaxAmountExclusive: number;\n public TaxAmountInclusive: number;\n public TaxLines: Entities.TaxLine[];\n public TaxOnCancellationCharge: number;\n public TaxOnShippingCharge: number;\n public TaxOnNonShippingCharges: number;\n public TaxOverrideCode: string;\n public TenderLines: Entities.TenderLine[];\n public RefundableTenderLines: Entities.TenderLine[];\n public TerminalId: string;\n public TotalAmount: number;\n public TotalSalesAmount: number;\n public TotalReturnAmount: number;\n public TotalCarryoutSalesAmount: number;\n public TotalCustomerOrderSalesAmount: number;\n public TotalDiscount: number;\n public TotalManualDiscountAmount: number;\n public TotalManualDiscountPercentage: number;\n public TransactionTypeValue: number;\n public TaxCalculationTypeValue: number;\n public SalesInvoiceAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public HasTaxCalculationTriggered: boolean;\n public HasChargeCalculationTriggered: boolean;\n public ShippingChargeAmount: number;\n public OtherChargeAmount: number;\n public PeriodicDiscountsCalculateScopeValue: number;\n public CustomerName: string;\n public FiscalTransactions: Entities.FiscalTransaction[];\n public LanguageId: string;\n public SalesAgreementRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.McrOrderStopped = \n odataObject.McrOrderStopped;\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n if (odataObject.AggregateInventoryQuantities == null) {\n this.AggregateInventoryQuantities = undefined;\n } else if (odataObject.AggregateInventoryQuantities['@odata.type'] == null) {\n this.AggregateInventoryQuantities = new InventoryQuantitiesClass(odataObject.AggregateInventoryQuantities);\n } else {\n var className: string = odataObject.AggregateInventoryQuantities['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregateInventoryQuantities = new entityDictionary[className](odataObject.AggregateInventoryQuantities)\n }\n }\n\n \n if (odataObject.UnifiedDeliveryInformation == null) {\n this.UnifiedDeliveryInformation = undefined;\n } else if (odataObject.UnifiedDeliveryInformation['@odata.type'] == null) {\n this.UnifiedDeliveryInformation = new DeliveryInformationClass(odataObject.UnifiedDeliveryInformation);\n } else {\n var className: string = odataObject.UnifiedDeliveryInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnifiedDeliveryInformation = new entityDictionary[className](odataObject.UnifiedDeliveryInformation)\n }\n }\n\n \n this.PaymentStatusValue = \n odataObject.PaymentStatusValue;\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.AffiliationLoyaltyTierLines = undefined;\n if (odataObject.AffiliationLoyaltyTierLines) {\n this.AffiliationLoyaltyTierLines = [];\n for (var i = 0; i < odataObject.AffiliationLoyaltyTierLines.length; i++) {\n if (odataObject.AffiliationLoyaltyTierLines[i] != null) {\n if (odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AffiliationLoyaltyTierLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AffiliationLoyaltyTierLines[i] = new entityDictionary[className](odataObject.AffiliationLoyaltyTierLines[i])\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = new SalesAffiliationLoyaltyTierClass(odataObject.AffiliationLoyaltyTierLines[i]);\n }\n } else {\n this.AffiliationLoyaltyTierLines[i] = undefined;\n }\n }\n }\n \n this.IsRequiredAmountPaid = \n odataObject.IsRequiredAmountPaid;\n \n this.IsDiscountFullyCalculated = \n odataObject.IsDiscountFullyCalculated;\n \n this.IgnoreDiscountCalculation = \n odataObject.IgnoreDiscountCalculation;\n \n this.AmountDue = \n (odataObject.AmountDue != null) ? parseFloat(odataObject.AmountDue) : undefined;\n \n this.EstimatedShippingAmount = \n (odataObject.EstimatedShippingAmount != null) ? parseFloat(odataObject.EstimatedShippingAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.CustomerOrderRemainingBalance = \n (odataObject.CustomerOrderRemainingBalance != null) ? parseFloat(odataObject.CustomerOrderRemainingBalance) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.AvailableDepositAmount = \n (odataObject.AvailableDepositAmount != null) ? parseFloat(odataObject.AvailableDepositAmount) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.BusinessDate = \n (odataObject.BusinessDate instanceof Date) ? odataObject.BusinessDate\n : (odataObject.BusinessDate != null) ? jsonLightReadStringPropertyValue(odataObject.BusinessDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CalculatedDepositAmount = \n (odataObject.CalculatedDepositAmount != null) ? parseFloat(odataObject.CalculatedDepositAmount) : undefined;\n \n this.CancellationCharge = \n (odataObject.CancellationCharge != null) ? parseFloat(odataObject.CancellationCharge) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.ChargeAmount = \n (odataObject.ChargeAmount != null) ? parseFloat(odataObject.ChargeAmount) : undefined;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.Comment = \n odataObject.Comment;\n \n this.Coupons = undefined;\n if (odataObject.Coupons) {\n this.Coupons = [];\n for (var i = 0; i < odataObject.Coupons.length; i++) {\n if (odataObject.Coupons[i] != null) {\n if (odataObject.Coupons[i]['@odata.type'] != null) {\n var className: string = odataObject.Coupons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Coupons[i] = new entityDictionary[className](odataObject.Coupons[i])\n }\n } else {\n this.Coupons[i] = new CouponClass(odataObject.Coupons[i]);\n }\n } else {\n this.Coupons[i] = undefined;\n }\n }\n }\n \n this.InvoiceComment = \n odataObject.InvoiceComment;\n \n this.ContactInformationCollection = undefined;\n if (odataObject.ContactInformationCollection) {\n this.ContactInformationCollection = [];\n for (var i = 0; i < odataObject.ContactInformationCollection.length; i++) {\n if (odataObject.ContactInformationCollection[i] != null) {\n if (odataObject.ContactInformationCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ContactInformationCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ContactInformationCollection[i] = new entityDictionary[className](odataObject.ContactInformationCollection[i])\n }\n } else {\n this.ContactInformationCollection[i] = new ContactInformationClass(odataObject.ContactInformationCollection[i]);\n }\n } else {\n this.ContactInformationCollection[i] = undefined;\n }\n }\n }\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerAccountDepositLines = undefined;\n if (odataObject.CustomerAccountDepositLines) {\n this.CustomerAccountDepositLines = [];\n for (var i = 0; i < odataObject.CustomerAccountDepositLines.length; i++) {\n if (odataObject.CustomerAccountDepositLines[i] != null) {\n if (odataObject.CustomerAccountDepositLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAccountDepositLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAccountDepositLines[i] = new entityDictionary[className](odataObject.CustomerAccountDepositLines[i])\n }\n } else {\n this.CustomerAccountDepositLines[i] = new CustomerAccountDepositLineClass(odataObject.CustomerAccountDepositLines[i]);\n }\n } else {\n this.CustomerAccountDepositLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerOrderModeValue = \n odataObject.CustomerOrderModeValue;\n \n this.CustomerOrderTypeValue = \n odataObject.CustomerOrderTypeValue;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountCodes = undefined;\n if (odataObject.DiscountCodes) {\n this.DiscountCodes = [];\n for (var i = 0; i < odataObject.DiscountCodes.length; i++) {\n if (odataObject.DiscountCodes[i] != null) {\n this.DiscountCodes[i] = \n odataObject.DiscountCodes[i];\n } else {\n this.DiscountCodes[i] = undefined;\n }\n }\n }\n \n this.EntryStatusValue = \n odataObject.EntryStatusValue;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.HasLoyaltyPayment = \n odataObject.HasLoyaltyPayment;\n \n this.Id = \n odataObject.Id;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.SuspendedTransactionId = \n odataObject.SuspendedTransactionId;\n \n this.IncomeExpenseLines = undefined;\n if (odataObject.IncomeExpenseLines) {\n this.IncomeExpenseLines = [];\n for (var i = 0; i < odataObject.IncomeExpenseLines.length; i++) {\n if (odataObject.IncomeExpenseLines[i] != null) {\n if (odataObject.IncomeExpenseLines[i]['@odata.type'] != null) {\n var className: string = odataObject.IncomeExpenseLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.IncomeExpenseLines[i] = new entityDictionary[className](odataObject.IncomeExpenseLines[i])\n }\n } else {\n this.IncomeExpenseLines[i] = new IncomeExpenseLineClass(odataObject.IncomeExpenseLines[i]);\n }\n } else {\n this.IncomeExpenseLines[i] = undefined;\n }\n }\n }\n \n this.IncomeExpenseTotalAmount = \n (odataObject.IncomeExpenseTotalAmount != null) ? parseFloat(odataObject.IncomeExpenseTotalAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.IsSuspended = \n odataObject.IsSuspended;\n \n this.IsTaxIncludedInPrice = \n odataObject.IsTaxIncludedInPrice;\n \n this.IsTaxExemptedForPriceInclusive = \n odataObject.IsTaxExemptedForPriceInclusive;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LineDiscountCalculationTypeValue = \n odataObject.LineDiscountCalculationTypeValue;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyManualDiscountAmount = \n (odataObject.LoyaltyManualDiscountAmount != null) ? parseFloat(odataObject.LoyaltyManualDiscountAmount) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetAmountWithNoTax = \n (odataObject.NetAmountWithNoTax != null) ? parseFloat(odataObject.NetAmountWithNoTax) : undefined;\n \n this.NetAmountWithTax = \n (odataObject.NetAmountWithTax != null) ? parseFloat(odataObject.NetAmountWithTax) : undefined;\n \n this.NumberOfItems = \n (odataObject.NumberOfItems != null) ? parseFloat(odataObject.NumberOfItems) : undefined;\n \n this.OverriddenDepositAmount = \n (odataObject.OverriddenDepositAmount != null) ? parseFloat(odataObject.OverriddenDepositAmount) : undefined;\n \n this.OverriddenDepositWithoutCarryoutAmount = \n (odataObject.OverriddenDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.OverriddenDepositWithoutCarryoutAmount) : undefined;\n \n this.PeriodicDiscountAmount = \n (odataObject.PeriodicDiscountAmount != null) ? parseFloat(odataObject.PeriodicDiscountAmount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.PrepaymentAmountAppliedOnPickup = \n (odataObject.PrepaymentAmountAppliedOnPickup != null) ? parseFloat(odataObject.PrepaymentAmountAppliedOnPickup) : undefined;\n \n this.PrepaymentAmountInvoiced = \n (odataObject.PrepaymentAmountInvoiced != null) ? parseFloat(odataObject.PrepaymentAmountInvoiced) : undefined;\n \n this.PrepaymentAmountPaid = \n (odataObject.PrepaymentAmountPaid != null) ? parseFloat(odataObject.PrepaymentAmountPaid) : undefined;\n \n this.PrepaymentRoundingDifference = \n (odataObject.PrepaymentRoundingDifference != null) ? parseFloat(odataObject.PrepaymentRoundingDifference) : undefined;\n \n this.QuotationExpiryDate = \n (odataObject.QuotationExpiryDate instanceof Date) ? odataObject.QuotationExpiryDate\n : (odataObject.QuotationExpiryDate != null) ? jsonLightReadStringPropertyValue(odataObject.QuotationExpiryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ReceiptEmail = \n odataObject.ReceiptEmail;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequiredDepositAmount = \n (odataObject.RequiredDepositAmount != null) ? parseFloat(odataObject.RequiredDepositAmount) : undefined;\n \n this.RequiredDepositWithoutCarryoutAmount = \n (odataObject.RequiredDepositWithoutCarryoutAmount != null) ? parseFloat(odataObject.RequiredDepositWithoutCarryoutAmount) : undefined;\n \n this.ReturnTransactionHasLoyaltyPayment = \n odataObject.ReturnTransactionHasLoyaltyPayment;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPaymentDifference = \n (odataObject.SalesPaymentDifference != null) ? parseFloat(odataObject.SalesPaymentDifference) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.SubtotalAmount = \n (odataObject.SubtotalAmount != null) ? parseFloat(odataObject.SubtotalAmount) : undefined;\n \n this.SubtotalAmountWithoutTax = \n (odataObject.SubtotalAmountWithoutTax != null) ? parseFloat(odataObject.SubtotalAmountWithoutTax) : undefined;\n \n this.SubtotalSalesAmount = \n (odataObject.SubtotalSalesAmount != null) ? parseFloat(odataObject.SubtotalSalesAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxOnCancellationCharge = \n (odataObject.TaxOnCancellationCharge != null) ? parseFloat(odataObject.TaxOnCancellationCharge) : undefined;\n \n this.TaxOnShippingCharge = \n (odataObject.TaxOnShippingCharge != null) ? parseFloat(odataObject.TaxOnShippingCharge) : undefined;\n \n this.TaxOnNonShippingCharges = \n (odataObject.TaxOnNonShippingCharges != null) ? parseFloat(odataObject.TaxOnNonShippingCharges) : undefined;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.RefundableTenderLines = undefined;\n if (odataObject.RefundableTenderLines) {\n this.RefundableTenderLines = [];\n for (var i = 0; i < odataObject.RefundableTenderLines.length; i++) {\n if (odataObject.RefundableTenderLines[i] != null) {\n if (odataObject.RefundableTenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RefundableTenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RefundableTenderLines[i] = new entityDictionary[className](odataObject.RefundableTenderLines[i])\n }\n } else {\n this.RefundableTenderLines[i] = new TenderLineClass(odataObject.RefundableTenderLines[i]);\n }\n } else {\n this.RefundableTenderLines[i] = undefined;\n }\n }\n }\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TotalSalesAmount = \n (odataObject.TotalSalesAmount != null) ? parseFloat(odataObject.TotalSalesAmount) : undefined;\n \n this.TotalReturnAmount = \n (odataObject.TotalReturnAmount != null) ? parseFloat(odataObject.TotalReturnAmount) : undefined;\n \n this.TotalCarryoutSalesAmount = \n (odataObject.TotalCarryoutSalesAmount != null) ? parseFloat(odataObject.TotalCarryoutSalesAmount) : undefined;\n \n this.TotalCustomerOrderSalesAmount = \n (odataObject.TotalCustomerOrderSalesAmount != null) ? parseFloat(odataObject.TotalCustomerOrderSalesAmount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TaxCalculationTypeValue = \n odataObject.TaxCalculationTypeValue;\n \n this.SalesInvoiceAmount = \n (odataObject.SalesInvoiceAmount != null) ? parseFloat(odataObject.SalesInvoiceAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.HasTaxCalculationTriggered = \n odataObject.HasTaxCalculationTriggered;\n \n this.HasChargeCalculationTriggered = \n odataObject.HasChargeCalculationTriggered;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.OtherChargeAmount = \n (odataObject.OtherChargeAmount != null) ? parseFloat(odataObject.OtherChargeAmount) : undefined;\n \n this.PeriodicDiscountsCalculateScopeValue = \n odataObject.PeriodicDiscountsCalculateScopeValue;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new FiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.SalesAgreementRecordId = \n (odataObject.SalesAgreementRecordId != null) ? parseInt(odataObject.SalesAgreementRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderClass'] = SalesOrderClass;\n \n /**\n * Shift entity class.\n */\n export class ShiftClass implements Entities.Shift {\n public ShiftId: number;\n public TerminalId: string;\n public StartingAmountTotal: number;\n public FloatingEntryAmountTotal: number;\n public AddToTenderAmountTotal: number;\n public SafeDropTotal: number;\n public BankDropTotal: number;\n public RemoveTenderAmountTotal: number;\n public DeclareTenderAmountTotal: number;\n public OverShortTotal: number;\n public TenderedTotal: number;\n public ChangeTotal: number;\n public IncomeAccountTotal: number;\n public ExpenseAccountTotal: number;\n public CashDrawer: string;\n public StoreRecordId: number;\n public StoreId: string;\n public StaffId: string;\n public CurrentStaffId: string;\n public StatusValue: number;\n public StartDateTime: Date;\n public CloseDateTime: Date;\n public ClosedAtTerminalId: string;\n public ClosedAtShiftId: number;\n public CurrentTerminalId: string;\n public SalesTotal: number;\n public StatusDateTime: Date;\n public ReturnsTotal: number;\n public PaidToAccountTotal: number;\n public TaxTotal: number;\n public ChargeTotal: number;\n public DiscountTotal: number;\n public RoundedAmountTotal: number;\n public CustomerCount: number;\n public SaleTransactionCount: number;\n public NoSaleTransactionCount: number;\n public VoidTransactionCount: number;\n public LogOnTransactionCount: number;\n public SuspendedTransactionCount: number;\n public TransactionCount: number;\n public ReceiptsCount: number;\n public ReturnsCount: number;\n public GoodsSoldQty: number;\n public ServicesSoldQty: number;\n public ReceiptCopiesCount: number;\n public ReceiptCopiesTotal: number;\n public PriceOverrideTotal: number;\n public SuspendedTotal: number;\n public SalesTotalIncludingTax: number;\n public SalesTotalExcludingTax: number;\n public SalesGrandTotal: number;\n public ReturnsGrandTotal: number;\n public TaxLines: Entities.ShiftTaxLine[];\n public TenderLines: Entities.ShiftTenderLine[];\n public AccountLines: Entities.ShiftAccountLine[];\n public IsShared: boolean;\n public StartingAmountRunningTotal: number;\n public GiftCardsTotal: number;\n public GiftCardCashOutTotal: number;\n public VoidedSalesTotal: number;\n public ShiftSalesTotal: number;\n public ShiftReturnsTotal: number;\n public HasPendingOfflineTransactions: number;\n public NumberOfUnreconciledLines: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.StartingAmountTotal = \n (odataObject.StartingAmountTotal != null) ? parseFloat(odataObject.StartingAmountTotal) : undefined;\n \n this.FloatingEntryAmountTotal = \n (odataObject.FloatingEntryAmountTotal != null) ? parseFloat(odataObject.FloatingEntryAmountTotal) : undefined;\n \n this.AddToTenderAmountTotal = \n (odataObject.AddToTenderAmountTotal != null) ? parseFloat(odataObject.AddToTenderAmountTotal) : undefined;\n \n this.SafeDropTotal = \n (odataObject.SafeDropTotal != null) ? parseFloat(odataObject.SafeDropTotal) : undefined;\n \n this.BankDropTotal = \n (odataObject.BankDropTotal != null) ? parseFloat(odataObject.BankDropTotal) : undefined;\n \n this.RemoveTenderAmountTotal = \n (odataObject.RemoveTenderAmountTotal != null) ? parseFloat(odataObject.RemoveTenderAmountTotal) : undefined;\n \n this.DeclareTenderAmountTotal = \n (odataObject.DeclareTenderAmountTotal != null) ? parseFloat(odataObject.DeclareTenderAmountTotal) : undefined;\n \n this.OverShortTotal = \n (odataObject.OverShortTotal != null) ? parseFloat(odataObject.OverShortTotal) : undefined;\n \n this.TenderedTotal = \n (odataObject.TenderedTotal != null) ? parseFloat(odataObject.TenderedTotal) : undefined;\n \n this.ChangeTotal = \n (odataObject.ChangeTotal != null) ? parseFloat(odataObject.ChangeTotal) : undefined;\n \n this.IncomeAccountTotal = \n (odataObject.IncomeAccountTotal != null) ? parseFloat(odataObject.IncomeAccountTotal) : undefined;\n \n this.ExpenseAccountTotal = \n (odataObject.ExpenseAccountTotal != null) ? parseFloat(odataObject.ExpenseAccountTotal) : undefined;\n \n this.CashDrawer = \n odataObject.CashDrawer;\n \n this.StoreRecordId = \n (odataObject.StoreRecordId != null) ? parseInt(odataObject.StoreRecordId, 10) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.CurrentStaffId = \n odataObject.CurrentStaffId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CloseDateTime = \n (odataObject.CloseDateTime instanceof Date) ? odataObject.CloseDateTime\n : (odataObject.CloseDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CloseDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ClosedAtTerminalId = \n odataObject.ClosedAtTerminalId;\n \n this.ClosedAtShiftId = \n (odataObject.ClosedAtShiftId != null) ? parseInt(odataObject.ClosedAtShiftId, 10) : undefined;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this.SalesTotal = \n (odataObject.SalesTotal != null) ? parseFloat(odataObject.SalesTotal) : undefined;\n \n this.StatusDateTime = \n (odataObject.StatusDateTime instanceof Date) ? odataObject.StatusDateTime\n : (odataObject.StatusDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StatusDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReturnsTotal = \n (odataObject.ReturnsTotal != null) ? parseFloat(odataObject.ReturnsTotal) : undefined;\n \n this.PaidToAccountTotal = \n (odataObject.PaidToAccountTotal != null) ? parseFloat(odataObject.PaidToAccountTotal) : undefined;\n \n this.TaxTotal = \n (odataObject.TaxTotal != null) ? parseFloat(odataObject.TaxTotal) : undefined;\n \n this.ChargeTotal = \n (odataObject.ChargeTotal != null) ? parseFloat(odataObject.ChargeTotal) : undefined;\n \n this.DiscountTotal = \n (odataObject.DiscountTotal != null) ? parseFloat(odataObject.DiscountTotal) : undefined;\n \n this.RoundedAmountTotal = \n (odataObject.RoundedAmountTotal != null) ? parseFloat(odataObject.RoundedAmountTotal) : undefined;\n \n this.CustomerCount = \n odataObject.CustomerCount;\n \n this.SaleTransactionCount = \n odataObject.SaleTransactionCount;\n \n this.NoSaleTransactionCount = \n odataObject.NoSaleTransactionCount;\n \n this.VoidTransactionCount = \n odataObject.VoidTransactionCount;\n \n this.LogOnTransactionCount = \n odataObject.LogOnTransactionCount;\n \n this.SuspendedTransactionCount = \n odataObject.SuspendedTransactionCount;\n \n this.TransactionCount = \n odataObject.TransactionCount;\n \n this.ReceiptsCount = \n odataObject.ReceiptsCount;\n \n this.ReturnsCount = \n odataObject.ReturnsCount;\n \n this.GoodsSoldQty = \n (odataObject.GoodsSoldQty != null) ? parseFloat(odataObject.GoodsSoldQty) : undefined;\n \n this.ServicesSoldQty = \n (odataObject.ServicesSoldQty != null) ? parseFloat(odataObject.ServicesSoldQty) : undefined;\n \n this.ReceiptCopiesCount = \n odataObject.ReceiptCopiesCount;\n \n this.ReceiptCopiesTotal = \n (odataObject.ReceiptCopiesTotal != null) ? parseFloat(odataObject.ReceiptCopiesTotal) : undefined;\n \n this.PriceOverrideTotal = \n (odataObject.PriceOverrideTotal != null) ? parseFloat(odataObject.PriceOverrideTotal) : undefined;\n \n this.SuspendedTotal = \n (odataObject.SuspendedTotal != null) ? parseFloat(odataObject.SuspendedTotal) : undefined;\n \n this.SalesTotalIncludingTax = \n (odataObject.SalesTotalIncludingTax != null) ? parseFloat(odataObject.SalesTotalIncludingTax) : undefined;\n \n this.SalesTotalExcludingTax = \n (odataObject.SalesTotalExcludingTax != null) ? parseFloat(odataObject.SalesTotalExcludingTax) : undefined;\n \n this.SalesGrandTotal = \n (odataObject.SalesGrandTotal != null) ? parseFloat(odataObject.SalesGrandTotal) : undefined;\n \n this.ReturnsGrandTotal = \n (odataObject.ReturnsGrandTotal != null) ? parseFloat(odataObject.ReturnsGrandTotal) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new ShiftTaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new ShiftTenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.AccountLines = undefined;\n if (odataObject.AccountLines) {\n this.AccountLines = [];\n for (var i = 0; i < odataObject.AccountLines.length; i++) {\n if (odataObject.AccountLines[i] != null) {\n if (odataObject.AccountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AccountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AccountLines[i] = new entityDictionary[className](odataObject.AccountLines[i])\n }\n } else {\n this.AccountLines[i] = new ShiftAccountLineClass(odataObject.AccountLines[i]);\n }\n } else {\n this.AccountLines[i] = undefined;\n }\n }\n }\n \n this.IsShared = \n odataObject.IsShared;\n \n this.StartingAmountRunningTotal = \n (odataObject.StartingAmountRunningTotal != null) ? parseFloat(odataObject.StartingAmountRunningTotal) : undefined;\n \n this.GiftCardsTotal = \n (odataObject.GiftCardsTotal != null) ? parseFloat(odataObject.GiftCardsTotal) : undefined;\n \n this.GiftCardCashOutTotal = \n (odataObject.GiftCardCashOutTotal != null) ? parseFloat(odataObject.GiftCardCashOutTotal) : undefined;\n \n this.VoidedSalesTotal = \n (odataObject.VoidedSalesTotal != null) ? parseFloat(odataObject.VoidedSalesTotal) : undefined;\n \n this.ShiftSalesTotal = \n (odataObject.ShiftSalesTotal != null) ? parseFloat(odataObject.ShiftSalesTotal) : undefined;\n \n this.ShiftReturnsTotal = \n (odataObject.ShiftReturnsTotal != null) ? parseFloat(odataObject.ShiftReturnsTotal) : undefined;\n \n this.HasPendingOfflineTransactions = \n odataObject.HasPendingOfflineTransactions;\n \n this.NumberOfUnreconciledLines = \n (odataObject.NumberOfUnreconciledLines != null) ? parseFloat(odataObject.NumberOfUnreconciledLines) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftClass'] = ShiftClass;\n \n /**\n * StockCountJournal entity class.\n */\n export class StockCountJournalClass implements Entities.StockCountJournal {\n public JournalId: string;\n public RecordId: string;\n public Description: string;\n public InventLocationId: string;\n public DataAreaId: string;\n public StockCountTransactionLines: Entities.StockCountJournalTransaction[];\n public Worker: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Description = \n odataObject.Description;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.StockCountTransactionLines = undefined;\n if (odataObject.StockCountTransactionLines) {\n this.StockCountTransactionLines = [];\n for (var i = 0; i < odataObject.StockCountTransactionLines.length; i++) {\n if (odataObject.StockCountTransactionLines[i] != null) {\n if (odataObject.StockCountTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.StockCountTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.StockCountTransactionLines[i] = new entityDictionary[className](odataObject.StockCountTransactionLines[i])\n }\n } else {\n this.StockCountTransactionLines[i] = new StockCountJournalTransactionClass(odataObject.StockCountTransactionLines[i]);\n }\n } else {\n this.StockCountTransactionLines[i] = undefined;\n }\n }\n }\n \n this.Worker = \n odataObject.Worker;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalClass'] = StockCountJournalClass;\n \n /**\n * OrgUnit entity class.\n */\n export class OrgUnitClass implements Entities.OrgUnit {\n public OrgUnitNumber: string;\n public RecordId: number;\n public InventoryLocationId: string;\n public OMOperatingUnitNumber: string;\n public TaxGroup: string;\n public FunctionalityProfileId: string;\n public UseCustomerBasedTax: boolean;\n public UseCustomerBasedTaxExemption: boolean;\n public UseDestinationBasedTax: boolean;\n public Currency: string;\n public TimeZoneCode: number;\n public OrgUnitAddress: Entities.Address;\n public OrgUnitFullAddress: string;\n public OrgUnitName: string;\n public Latitude: number;\n public Longitude: number;\n public EmailReceiptProfileId: string;\n public ShippingWarehouseAddress: Entities.Address;\n public TaxRegistrations: Entities.TaxRegistration[];\n public EventNotificationProfileId: string;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.OMOperatingUnitNumber = \n odataObject.OMOperatingUnitNumber;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseCustomerBasedTaxExemption = \n odataObject.UseCustomerBasedTaxExemption;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.Currency = \n odataObject.Currency;\n \n this.TimeZoneCode = \n odataObject.TimeZoneCode;\n \n if (odataObject.OrgUnitAddress == null) {\n this.OrgUnitAddress = undefined;\n } else if (odataObject.OrgUnitAddress['@odata.type'] == null) {\n this.OrgUnitAddress = new AddressClass(odataObject.OrgUnitAddress);\n } else {\n var className: string = odataObject.OrgUnitAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitAddress = new entityDictionary[className](odataObject.OrgUnitAddress)\n }\n }\n\n \n this.OrgUnitFullAddress = \n odataObject.OrgUnitFullAddress;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.EmailReceiptProfileId = \n odataObject.EmailReceiptProfileId;\n \n if (odataObject.ShippingWarehouseAddress == null) {\n this.ShippingWarehouseAddress = undefined;\n } else if (odataObject.ShippingWarehouseAddress['@odata.type'] == null) {\n this.ShippingWarehouseAddress = new AddressClass(odataObject.ShippingWarehouseAddress);\n } else {\n var className: string = odataObject.ShippingWarehouseAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingWarehouseAddress = new entityDictionary[className](odataObject.ShippingWarehouseAddress)\n }\n }\n\n \n this.TaxRegistrations = undefined;\n if (odataObject.TaxRegistrations) {\n this.TaxRegistrations = [];\n for (var i = 0; i < odataObject.TaxRegistrations.length; i++) {\n if (odataObject.TaxRegistrations[i] != null) {\n if (odataObject.TaxRegistrations[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxRegistrations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxRegistrations[i] = new entityDictionary[className](odataObject.TaxRegistrations[i])\n }\n } else {\n this.TaxRegistrations[i] = new TaxRegistrationClass(odataObject.TaxRegistrations[i]);\n }\n } else {\n this.TaxRegistrations[i] = undefined;\n }\n }\n }\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitClass'] = OrgUnitClass;\n \n /**\n * Product entity class.\n */\n export class ProductClass implements Entities.Product {\n public RecordId: number;\n public ProductName: string;\n public ProductNumber: string;\n public Description: string;\n public IsMasterProduct: boolean;\n public IsKit: boolean;\n public ItemId: string;\n public HasLinkedProducts: boolean;\n public Rules: Entities.ProductRules;\n public DefaultUnitOfMeasure: string;\n public Name: string;\n public Locale: string;\n public OfflineImage: string;\n public IsRemote: boolean;\n public ChangeTrackingInformation: Entities.ProductChangeTrackingInformation;\n public Image: Entities.RichMediaLocations;\n public UnitsOfMeasureSymbol: string[];\n public LinkedProducts: Entities.LinkedProduct[];\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public RetailContext: Entities.ProjectionDomain;\n public PrimaryCategoryId: number;\n public CategoryIds: number[];\n public DisplayOrderInCategories: Entities.DisplayOrderInCategory[];\n public RelatedProducts: Entities.RelatedProduct[];\n public ProductsRelatedToThis: Entities.RelatedProduct[];\n public ProductSchema: string[];\n public ProductProperties: Entities.ProductPropertyTranslation[];\n public CompositionInformation: Entities.ProductCompositionInformation;\n public ParentKits: Entities.KitComponent[];\n public SearchName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.Description = \n odataObject.Description;\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.IsKit = \n odataObject.IsKit;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n if (odataObject.Rules == null) {\n this.Rules = undefined;\n } else if (odataObject.Rules['@odata.type'] == null) {\n this.Rules = new ProductRulesClass(odataObject.Rules);\n } else {\n var className: string = odataObject.Rules['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Rules = new entityDictionary[className](odataObject.Rules)\n }\n }\n\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.Name = \n odataObject.Name;\n \n this.Locale = \n odataObject.Locale;\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsRemote = \n odataObject.IsRemote;\n \n if (odataObject.ChangeTrackingInformation == null) {\n this.ChangeTrackingInformation = undefined;\n } else if (odataObject.ChangeTrackingInformation['@odata.type'] == null) {\n this.ChangeTrackingInformation = new ProductChangeTrackingInformationClass(odataObject.ChangeTrackingInformation);\n } else {\n var className: string = odataObject.ChangeTrackingInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChangeTrackingInformation = new entityDictionary[className](odataObject.ChangeTrackingInformation)\n }\n }\n\n \n if (odataObject.Image == null) {\n this.Image = undefined;\n } else if (odataObject.Image['@odata.type'] == null) {\n this.Image = new RichMediaLocationsClass(odataObject.Image);\n } else {\n var className: string = odataObject.Image['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Image = new entityDictionary[className](odataObject.Image)\n }\n }\n\n \n this.UnitsOfMeasureSymbol = undefined;\n if (odataObject.UnitsOfMeasureSymbol) {\n this.UnitsOfMeasureSymbol = [];\n for (var i = 0; i < odataObject.UnitsOfMeasureSymbol.length; i++) {\n if (odataObject.UnitsOfMeasureSymbol[i] != null) {\n this.UnitsOfMeasureSymbol[i] = \n odataObject.UnitsOfMeasureSymbol[i];\n } else {\n this.UnitsOfMeasureSymbol[i] = undefined;\n }\n }\n }\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new LinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n if (odataObject.RetailContext == null) {\n this.RetailContext = undefined;\n } else if (odataObject.RetailContext['@odata.type'] == null) {\n this.RetailContext = new ProjectionDomainClass(odataObject.RetailContext);\n } else {\n var className: string = odataObject.RetailContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RetailContext = new entityDictionary[className](odataObject.RetailContext)\n }\n }\n\n \n this.PrimaryCategoryId = \n (odataObject.PrimaryCategoryId != null) ? parseInt(odataObject.PrimaryCategoryId, 10) : undefined;\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.DisplayOrderInCategories = undefined;\n if (odataObject.DisplayOrderInCategories) {\n this.DisplayOrderInCategories = [];\n for (var i = 0; i < odataObject.DisplayOrderInCategories.length; i++) {\n if (odataObject.DisplayOrderInCategories[i] != null) {\n if (odataObject.DisplayOrderInCategories[i]['@odata.type'] != null) {\n var className: string = odataObject.DisplayOrderInCategories[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DisplayOrderInCategories[i] = new entityDictionary[className](odataObject.DisplayOrderInCategories[i])\n }\n } else {\n this.DisplayOrderInCategories[i] = new DisplayOrderInCategoryClass(odataObject.DisplayOrderInCategories[i]);\n }\n } else {\n this.DisplayOrderInCategories[i] = undefined;\n }\n }\n }\n \n this.RelatedProducts = undefined;\n if (odataObject.RelatedProducts) {\n this.RelatedProducts = [];\n for (var i = 0; i < odataObject.RelatedProducts.length; i++) {\n if (odataObject.RelatedProducts[i] != null) {\n if (odataObject.RelatedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.RelatedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RelatedProducts[i] = new entityDictionary[className](odataObject.RelatedProducts[i])\n }\n } else {\n this.RelatedProducts[i] = new RelatedProductClass(odataObject.RelatedProducts[i]);\n }\n } else {\n this.RelatedProducts[i] = undefined;\n }\n }\n }\n \n this.ProductsRelatedToThis = undefined;\n if (odataObject.ProductsRelatedToThis) {\n this.ProductsRelatedToThis = [];\n for (var i = 0; i < odataObject.ProductsRelatedToThis.length; i++) {\n if (odataObject.ProductsRelatedToThis[i] != null) {\n if (odataObject.ProductsRelatedToThis[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductsRelatedToThis[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductsRelatedToThis[i] = new entityDictionary[className](odataObject.ProductsRelatedToThis[i])\n }\n } else {\n this.ProductsRelatedToThis[i] = new RelatedProductClass(odataObject.ProductsRelatedToThis[i]);\n }\n } else {\n this.ProductsRelatedToThis[i] = undefined;\n }\n }\n }\n \n this.ProductSchema = undefined;\n if (odataObject.ProductSchema) {\n this.ProductSchema = [];\n for (var i = 0; i < odataObject.ProductSchema.length; i++) {\n if (odataObject.ProductSchema[i] != null) {\n this.ProductSchema[i] = \n odataObject.ProductSchema[i];\n } else {\n this.ProductSchema[i] = undefined;\n }\n }\n }\n \n this.ProductProperties = undefined;\n if (odataObject.ProductProperties) {\n this.ProductProperties = [];\n for (var i = 0; i < odataObject.ProductProperties.length; i++) {\n if (odataObject.ProductProperties[i] != null) {\n if (odataObject.ProductProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductProperties[i] = new entityDictionary[className](odataObject.ProductProperties[i])\n }\n } else {\n this.ProductProperties[i] = new ProductPropertyTranslationClass(odataObject.ProductProperties[i]);\n }\n } else {\n this.ProductProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.CompositionInformation == null) {\n this.CompositionInformation = undefined;\n } else if (odataObject.CompositionInformation['@odata.type'] == null) {\n this.CompositionInformation = new ProductCompositionInformationClass(odataObject.CompositionInformation);\n } else {\n var className: string = odataObject.CompositionInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CompositionInformation = new entityDictionary[className](odataObject.CompositionInformation)\n }\n }\n\n \n this.ParentKits = undefined;\n if (odataObject.ParentKits) {\n this.ParentKits = [];\n for (var i = 0; i < odataObject.ParentKits.length; i++) {\n if (odataObject.ParentKits[i] != null) {\n if (odataObject.ParentKits[i]['@odata.type'] != null) {\n var className: string = odataObject.ParentKits[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ParentKits[i] = new entityDictionary[className](odataObject.ParentKits[i])\n }\n } else {\n this.ParentKits[i] = new KitComponentClass(odataObject.ParentKits[i]);\n }\n } else {\n this.ParentKits[i] = undefined;\n }\n }\n }\n \n this.SearchName = \n odataObject.SearchName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductClass'] = ProductClass;\n \n /**\n * ProductCatalog entity class.\n */\n export class ProductCatalogClass implements Entities.ProductCatalog {\n public RecordId: number;\n public Name: string;\n public Description: string;\n public Language: string;\n public IsSnapshotEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public CreatedOn: Date;\n public ModifiedOn: Date;\n public PublishedOn: Date;\n public Images: Entities.MediaLocation[];\n public ChannelId: number;\n public DefaultImage: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.Language = \n odataObject.Language;\n \n this.IsSnapshotEnabled = \n odataObject.IsSnapshotEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedOn = \n (odataObject.CreatedOn instanceof Date) ? odataObject.CreatedOn\n : (odataObject.CreatedOn != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ModifiedOn = \n (odataObject.ModifiedOn instanceof Date) ? odataObject.ModifiedOn\n : (odataObject.ModifiedOn != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PublishedOn = \n (odataObject.PublishedOn instanceof Date) ? odataObject.PublishedOn\n : (odataObject.PublishedOn != null) ? jsonLightReadStringPropertyValue(odataObject.PublishedOn, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DefaultImage = \n odataObject.DefaultImage;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductCatalogClass'] = ProductCatalogClass;\n \n /**\n * CommerceList entity class.\n */\n export class CommerceListClass implements Entities.CommerceList {\n public Id: number;\n public Name: string;\n public CustomerId: string;\n public CustomerName: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public IsCollaborative: boolean;\n public CreatedDateTime: Date;\n public DueDateTime: Date;\n public CommerceListTypeValue: number;\n public CommerceListLines: Entities.CommerceListLine[];\n public CommerceListContributors: Entities.CommerceListContributor[];\n public CommerceListInvitations: Entities.CommerceListInvitation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsCollaborative = \n odataObject.IsCollaborative;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommerceListTypeValue = \n odataObject.CommerceListTypeValue;\n \n this.CommerceListLines = undefined;\n if (odataObject.CommerceListLines) {\n this.CommerceListLines = [];\n for (var i = 0; i < odataObject.CommerceListLines.length; i++) {\n if (odataObject.CommerceListLines[i] != null) {\n if (odataObject.CommerceListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListLines[i] = new entityDictionary[className](odataObject.CommerceListLines[i])\n }\n } else {\n this.CommerceListLines[i] = new CommerceListLineClass(odataObject.CommerceListLines[i]);\n }\n } else {\n this.CommerceListLines[i] = undefined;\n }\n }\n }\n \n this.CommerceListContributors = undefined;\n if (odataObject.CommerceListContributors) {\n this.CommerceListContributors = [];\n for (var i = 0; i < odataObject.CommerceListContributors.length; i++) {\n if (odataObject.CommerceListContributors[i] != null) {\n if (odataObject.CommerceListContributors[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListContributors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListContributors[i] = new entityDictionary[className](odataObject.CommerceListContributors[i])\n }\n } else {\n this.CommerceListContributors[i] = new CommerceListContributorClass(odataObject.CommerceListContributors[i]);\n }\n } else {\n this.CommerceListContributors[i] = undefined;\n }\n }\n }\n \n this.CommerceListInvitations = undefined;\n if (odataObject.CommerceListInvitations) {\n this.CommerceListInvitations = [];\n for (var i = 0; i < odataObject.CommerceListInvitations.length; i++) {\n if (odataObject.CommerceListInvitations[i] != null) {\n if (odataObject.CommerceListInvitations[i]['@odata.type'] != null) {\n var className: string = odataObject.CommerceListInvitations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CommerceListInvitations[i] = new entityDictionary[className](odataObject.CommerceListInvitations[i])\n }\n } else {\n this.CommerceListInvitations[i] = new CommerceListInvitationClass(odataObject.CommerceListInvitations[i]);\n }\n } else {\n this.CommerceListInvitations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListClass'] = CommerceListClass;\n \n /**\n * ProductList entity class.\n */\n export class ProductListClass implements Entities.ProductList {\n public Id: string;\n public Name: string;\n public CustomerId: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public ProductListTypeValue: number;\n public DataAreaId: string;\n public ProductListLines: Entities.ProductListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductListTypeValue = \n odataObject.ProductListTypeValue;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductListLines = undefined;\n if (odataObject.ProductListLines) {\n this.ProductListLines = [];\n for (var i = 0; i < odataObject.ProductListLines.length; i++) {\n if (odataObject.ProductListLines[i] != null) {\n if (odataObject.ProductListLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductListLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductListLines[i] = new entityDictionary[className](odataObject.ProductListLines[i])\n }\n } else {\n this.ProductListLines[i] = new ProductListLineClass(odataObject.ProductListLines[i]);\n }\n } else {\n this.ProductListLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListClass'] = ProductListClass;\n \n /**\n * Recommendation entity class.\n */\n export class RecommendationClass implements Entities.Recommendation {\n public Id: string;\n public RecommendationTypeValue: number;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.RecommendationTypeValue = \n odataObject.RecommendationTypeValue;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationClass'] = RecommendationClass;\n \n /**\n * TransferOrder entity class.\n */\n export class TransferOrderClass implements Entities.TransferOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityShipRemaining: number;\n public QuantityReceiveRemaining: number;\n public ShipDate: Date;\n public ReceiveDate: Date;\n public DeliveryModeId: string;\n public OrderLines: Entities.TransferOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityShipRemaining = \n (odataObject.QuantityShipRemaining != null) ? parseFloat(odataObject.QuantityShipRemaining) : undefined;\n \n this.QuantityReceiveRemaining = \n (odataObject.QuantityReceiveRemaining != null) ? parseFloat(odataObject.QuantityReceiveRemaining) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new TransferOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderClass'] = TransferOrderClass;\n \n /**\n * PurchaseOrder entity class.\n */\n export class PurchaseOrderClass implements Entities.PurchaseOrder {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public TotalReceived: number;\n public OrderLines: Entities.PurchaseOrderLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PurchaseOrderLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderClass'] = PurchaseOrderClass;\n \n /**\n * PickingList entity class.\n */\n export class PickingListClass implements Entities.PickingList {\n public OrderId: string;\n public RecordId: string;\n public Status: string;\n public Lines: number;\n public TotalItems: number;\n public OrderTypeValue: number;\n public InventLocationId: string;\n public DeliveryDate: Date;\n public DeliveryMode: string;\n public TotalReceived: number;\n public OrderLines: Entities.PickingListLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.RecordId = \n odataObject.RecordId;\n \n this.Status = \n odataObject.Status;\n \n this.Lines = \n (odataObject.Lines != null) ? parseFloat(odataObject.Lines) : undefined;\n \n this.TotalItems = \n (odataObject.TotalItems != null) ? parseFloat(odataObject.TotalItems) : undefined;\n \n this.OrderTypeValue = \n odataObject.OrderTypeValue;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalReceived = \n (odataObject.TotalReceived != null) ? parseFloat(odataObject.TotalReceived) : undefined;\n \n this.OrderLines = undefined;\n if (odataObject.OrderLines) {\n this.OrderLines = [];\n for (var i = 0; i < odataObject.OrderLines.length; i++) {\n if (odataObject.OrderLines[i] != null) {\n if (odataObject.OrderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.OrderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrderLines[i] = new entityDictionary[className](odataObject.OrderLines[i])\n }\n } else {\n this.OrderLines[i] = new PickingListLineClass(odataObject.OrderLines[i]);\n }\n } else {\n this.OrderLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListClass'] = PickingListClass;\n \n /**\n * Warehouse entity class.\n */\n export class WarehouseClass implements Entities.Warehouse {\n public InventLocation: string;\n public Name: string;\n public IsWMSEnabled: boolean;\n public DefaultInventoryStatus: string;\n public DefaultReceiptLocation: string;\n public DefaultLocationId: string;\n public DefaultIssueLocation: string;\n public Address: Entities.Address;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InventLocation = \n odataObject.InventLocation;\n \n this.Name = \n odataObject.Name;\n \n this.IsWMSEnabled = \n odataObject.IsWMSEnabled;\n \n this.DefaultInventoryStatus = \n odataObject.DefaultInventoryStatus;\n \n this.DefaultReceiptLocation = \n odataObject.DefaultReceiptLocation;\n \n this.DefaultLocationId = \n odataObject.DefaultLocationId;\n \n this.DefaultIssueLocation = \n odataObject.DefaultIssueLocation;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseClass'] = WarehouseClass;\n \n /**\n * ScanResult entity class.\n */\n export class ScanResultClass implements Entities.ScanResult {\n public ScannedText: string;\n public MaskTypeValue: number;\n public Barcode: Entities.Barcode;\n public Product: Entities.SimpleProduct;\n public LoyaltyCard: Entities.LoyaltyCard;\n public GiftCard: Entities.GiftCard;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Customer: Entities.Customer;\n \n // Navigation properties names\n public static customerPropertyName: string = \"Customer\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ScannedText = \n odataObject.ScannedText;\n \n this.MaskTypeValue = \n odataObject.MaskTypeValue;\n \n if (odataObject.Barcode == null) {\n this.Barcode = undefined;\n } else if (odataObject.Barcode['@odata.type'] == null) {\n this.Barcode = new BarcodeClass(odataObject.Barcode);\n } else {\n var className: string = odataObject.Barcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Barcode = new entityDictionary[className](odataObject.Barcode)\n }\n }\n\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n if (odataObject.LoyaltyCard == null) {\n this.LoyaltyCard = undefined;\n } else if (odataObject.LoyaltyCard['@odata.type'] == null) {\n this.LoyaltyCard = new LoyaltyCardClass(odataObject.LoyaltyCard);\n } else {\n var className: string = odataObject.LoyaltyCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCard = new entityDictionary[className](odataObject.LoyaltyCard)\n }\n }\n\n \n if (odataObject.GiftCard == null) {\n this.GiftCard = undefined;\n } else if (odataObject.GiftCard['@odata.type'] == null) {\n this.GiftCard = new GiftCardClass(odataObject.GiftCard);\n } else {\n var className: string = odataObject.GiftCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.GiftCard = new entityDictionary[className](odataObject.GiftCard)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Customer == null) {\n this.Customer = undefined;\n } else if (odataObject.Customer['@odata.type'] == null) {\n this.Customer = new CustomerClass(odataObject.Customer);\n } else {\n var className: string = odataObject.Customer['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Customer = new entityDictionary[className](odataObject.Customer)\n }\n }\n\n \n }\n }\n entityDictionary['ScanResultClass'] = ScanResultClass;\n \n /**\n * SalesOrderContextualOperationsMap entity class.\n */\n export class SalesOrderContextualOperationsMapClass implements Entities.SalesOrderContextualOperationsMap {\n public Id: string;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public SalesOrder: Entities.SalesOrder;\n \n // Navigation properties names\n public static salesOrderPropertyName: string = \"SalesOrder\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.SalesOrder == null) {\n this.SalesOrder = undefined;\n } else if (odataObject.SalesOrder['@odata.type'] == null) {\n this.SalesOrder = new SalesOrderClass(odataObject.SalesOrder);\n } else {\n var className: string = odataObject.SalesOrder['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesOrder = new entityDictionary[className](odataObject.SalesOrder)\n }\n }\n\n \n }\n }\n entityDictionary['SalesOrderContextualOperationsMapClass'] = SalesOrderContextualOperationsMapClass;\n \n /**\n * InventoryInboundOutboundDocument entity class.\n */\n export class InventoryInboundOutboundDocumentClass implements Entities.InventoryInboundOutboundDocument {\n public WorkDocumentId: string;\n public TerminalId: string;\n public CommitRequestId: string;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public OperationTypeValue: number;\n public StatusValue: number;\n public ReceiptId: string;\n public Note: string;\n public OperationResultMessage: string;\n public DocumentId: string;\n public LongVersion: number;\n public SourceDocument: Entities.InventoryInboundOutboundSourceDocument;\n public SourceDocumentTypeValue: number;\n public CreatedDateTime: Date;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public TransactionDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CommitRequestId = \n odataObject.CommitRequestId;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.Note = \n odataObject.Note;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n if (odataObject.SourceDocument == null) {\n this.SourceDocument = undefined;\n } else if (odataObject.SourceDocument['@odata.type'] == null) {\n this.SourceDocument = new InventoryInboundOutboundSourceDocumentClass(odataObject.SourceDocument);\n } else {\n var className: string = odataObject.SourceDocument['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocument = new entityDictionary[className](odataObject.SourceDocument)\n }\n }\n\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.TransactionDate = \n (odataObject.TransactionDate instanceof Date) ? odataObject.TransactionDate\n : (odataObject.TransactionDate != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentClass'] = InventoryInboundOutboundDocumentClass;\n \n /**\n * BusinessPartner entity class.\n */\n export class BusinessPartnerClass implements Entities.BusinessPartner {\n public BusinessPartnerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerClass'] = BusinessPartnerClass;\n \n /**\n * BusinessPartnerUser entity class.\n */\n export class BusinessPartnerUserClass implements Entities.BusinessPartnerUser {\n public B2BUserId: string;\n public BusinessPartnerId: string;\n public FirstName: string;\n public LastName: string;\n public Email: string;\n public SpendingLimit: number;\n public LastOperationId: string;\n public StatusValue: number;\n public IsAdmin: boolean;\n public AccountNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.B2BUserId = \n odataObject.B2BUserId;\n \n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.Email = \n odataObject.Email;\n \n this.SpendingLimit = \n (odataObject.SpendingLimit != null) ? parseFloat(odataObject.SpendingLimit) : undefined;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.IsAdmin = \n odataObject.IsAdmin;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerUserClass'] = BusinessPartnerUserClass;\n \n /**\n * SuspendedCart entity class.\n */\n export class SuspendedCartClass implements Entities.SuspendedCart {\n public Id: string;\n public ReceiptId: string;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public Cart: Entities.Cart;\n \n // Navigation properties names\n public static cartPropertyName: string = \"Cart\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n if (odataObject.Cart == null) {\n this.Cart = undefined;\n } else if (odataObject.Cart['@odata.type'] == null) {\n this.Cart = new CartClass(odataObject.Cart);\n } else {\n var className: string = odataObject.Cart['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Cart = new entityDictionary[className](odataObject.Cart)\n }\n }\n\n \n }\n }\n entityDictionary['SuspendedCartClass'] = SuspendedCartClass;\n \n /**\n * CountryRegion entity class.\n */\n export class CountryRegionClass implements Entities.CountryRegion {\n public CountryRegionId: string;\n public IsoCode: string;\n public ShortName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsoCode = \n odataObject.IsoCode;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionClass'] = CountryRegionClass;\n \n /**\n * ExtensibleEnumeration entity class.\n */\n export class ExtensibleEnumerationClass implements Entities.ExtensibleEnumeration {\n public Name: string;\n public Value: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['ExtensibleEnumerationClass'] = ExtensibleEnumerationClass;\n \n /**\n * ExtensibleEnumeration_1OfT entity class.\n */\n export class ExtensibleEnumeration_1OfTClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleEnumeration_1OfT {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.Framework.ExtensibleEnumeration_1OfT\";\n \n }\n }\n entityDictionary['ExtensibleEnumeration_1OfTClass'] = ExtensibleEnumeration_1OfTClass;\n \n /**\n * ExtensibleTransactionType entity class.\n */\n export class ExtensibleTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleTransactionTypeClass'] = ExtensibleTransactionTypeClass;\n \n /**\n * ExtensibleSalesTransactionType entity class.\n */\n export class ExtensibleSalesTransactionTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleSalesTransactionType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleSalesTransactionType\";\n \n }\n }\n entityDictionary['ExtensibleSalesTransactionTypeClass'] = ExtensibleSalesTransactionTypeClass;\n \n /**\n * FulfillmentLineStatus entity class.\n */\n export class FulfillmentLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineStatus\";\n \n }\n }\n entityDictionary['FulfillmentLineStatusClass'] = FulfillmentLineStatusClass;\n \n /**\n * FulfillmentLineDeliveryType entity class.\n */\n export class FulfillmentLineDeliveryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.FulfillmentLineDeliveryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FulfillmentLineDeliveryType\";\n \n }\n }\n entityDictionary['FulfillmentLineDeliveryTypeClass'] = FulfillmentLineDeliveryTypeClass;\n \n /**\n * ExtensibleAddressType entity class.\n */\n export class ExtensibleAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAddressType\";\n \n }\n }\n entityDictionary['ExtensibleAddressTypeClass'] = ExtensibleAddressTypeClass;\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity class.\n */\n export class ExtensibleLoyaltyRewardPointActivityEntryTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleLoyaltyRewardPointActivityEntryType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleLoyaltyRewardPointActivityEntryType\";\n \n }\n }\n entityDictionary['ExtensibleLoyaltyRewardPointActivityEntryTypeClass'] = ExtensibleLoyaltyRewardPointActivityEntryTypeClass;\n \n /**\n * ExtensibleAttributeDataType entity class.\n */\n export class ExtensibleAttributeDataTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAttributeDataType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAttributeDataType\";\n \n }\n }\n entityDictionary['ExtensibleAttributeDataTypeClass'] = ExtensibleAttributeDataTypeClass;\n \n /**\n * ReleasedProductServiceType entity class.\n */\n export class ReleasedProductServiceTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReleasedProductServiceType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReleasedProductServiceType\";\n \n }\n }\n entityDictionary['ReleasedProductServiceTypeClass'] = ReleasedProductServiceTypeClass;\n \n /**\n * ExtensibleElectronicAddressType entity class.\n */\n export class ExtensibleElectronicAddressTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleElectronicAddressType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleElectronicAddressType\";\n \n }\n }\n entityDictionary['ExtensibleElectronicAddressTypeClass'] = ExtensibleElectronicAddressTypeClass;\n \n /**\n * ReceiptOutputFormatType entity class.\n */\n export class ReceiptOutputFormatTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ReceiptOutputFormatType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ReceiptOutputFormatType\";\n \n }\n }\n entityDictionary['ReceiptOutputFormatTypeClass'] = ReceiptOutputFormatTypeClass;\n \n /**\n * OrderLookupAdditionalCriteriaType entity class.\n */\n export class OrderLookupAdditionalCriteriaTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.OrderLookupAdditionalCriteriaType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrderLookupAdditionalCriteriaType\";\n \n }\n }\n entityDictionary['OrderLookupAdditionalCriteriaTypeClass'] = OrderLookupAdditionalCriteriaTypeClass;\n \n /**\n * Address entity class.\n */\n export class AddressClass implements Entities.Address {\n public Name: string;\n public Id: string;\n public FullAddress: string;\n public RecordId: number;\n public Street: string;\n public StreetNumber: string;\n public County: string;\n public CountyName: string;\n public City: string;\n public DistrictName: string;\n public State: string;\n public StateName: string;\n public ZipCode: string;\n public ThreeLetterISORegionName: string;\n public Phone: string;\n public PhoneRecordId: number;\n public PhoneExt: string;\n public Email: string;\n public EmailContent: string;\n public EmailRecordId: number;\n public Url: string;\n public UrlRecordId: number;\n public TwoLetterISORegionName: string;\n public Deactivate: boolean;\n public AttentionTo: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public TaxGroup: string;\n public AddressTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public PartyNumber: string;\n public IsAsyncAddress: boolean;\n public DirectoryPartyTableRecordId: number;\n public DirectoryPartyLocationRecordId: number;\n public DirectoryPartyLocationRoleRecordId: number;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public LogisticsLocationExtRecordId: number;\n public LogisticsLocationRoleRecordId: number;\n public PhoneLogisticsLocationRecordId: number;\n public PhoneLogisticsLocationId: string;\n public EmailLogisticsLocationRecordId: number;\n public EmailLogisticsLocationId: string;\n public UrlLogisticsLocationRecordId: number;\n public UrlLogisticsLocationId: string;\n public ExpireRecordId: number;\n public SortOrder: number;\n public RoleCount: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Id = \n odataObject.Id;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.ZipCode = \n odataObject.ZipCode;\n \n this.ThreeLetterISORegionName = \n odataObject.ThreeLetterISORegionName;\n \n this.Phone = \n odataObject.Phone;\n \n this.PhoneRecordId = \n (odataObject.PhoneRecordId != null) ? parseInt(odataObject.PhoneRecordId, 10) : undefined;\n \n this.PhoneExt = \n odataObject.PhoneExt;\n \n this.Email = \n odataObject.Email;\n \n this.EmailContent = \n odataObject.EmailContent;\n \n this.EmailRecordId = \n (odataObject.EmailRecordId != null) ? parseInt(odataObject.EmailRecordId, 10) : undefined;\n \n this.Url = \n odataObject.Url;\n \n this.UrlRecordId = \n (odataObject.UrlRecordId != null) ? parseInt(odataObject.UrlRecordId, 10) : undefined;\n \n this.TwoLetterISORegionName = \n odataObject.TwoLetterISORegionName;\n \n this.Deactivate = \n odataObject.Deactivate;\n \n this.AttentionTo = \n odataObject.AttentionTo;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.IsAsyncAddress = \n odataObject.IsAsyncAddress;\n \n this.DirectoryPartyTableRecordId = \n (odataObject.DirectoryPartyTableRecordId != null) ? parseInt(odataObject.DirectoryPartyTableRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRecordId = \n (odataObject.DirectoryPartyLocationRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRecordId, 10) : undefined;\n \n this.DirectoryPartyLocationRoleRecordId = \n (odataObject.DirectoryPartyLocationRoleRecordId != null) ? parseInt(odataObject.DirectoryPartyLocationRoleRecordId, 10) : undefined;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.LogisticsLocationExtRecordId = \n (odataObject.LogisticsLocationExtRecordId != null) ? parseInt(odataObject.LogisticsLocationExtRecordId, 10) : undefined;\n \n this.LogisticsLocationRoleRecordId = \n (odataObject.LogisticsLocationRoleRecordId != null) ? parseInt(odataObject.LogisticsLocationRoleRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationRecordId = \n (odataObject.PhoneLogisticsLocationRecordId != null) ? parseInt(odataObject.PhoneLogisticsLocationRecordId, 10) : undefined;\n \n this.PhoneLogisticsLocationId = \n odataObject.PhoneLogisticsLocationId;\n \n this.EmailLogisticsLocationRecordId = \n (odataObject.EmailLogisticsLocationRecordId != null) ? parseInt(odataObject.EmailLogisticsLocationRecordId, 10) : undefined;\n \n this.EmailLogisticsLocationId = \n odataObject.EmailLogisticsLocationId;\n \n this.UrlLogisticsLocationRecordId = \n (odataObject.UrlLogisticsLocationRecordId != null) ? parseInt(odataObject.UrlLogisticsLocationRecordId, 10) : undefined;\n \n this.UrlLogisticsLocationId = \n odataObject.UrlLogisticsLocationId;\n \n this.ExpireRecordId = \n (odataObject.ExpireRecordId != null) ? parseInt(odataObject.ExpireRecordId, 10) : undefined;\n \n this.SortOrder = \n odataObject.SortOrder;\n \n this.RoleCount = \n odataObject.RoleCount;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressClass'] = AddressClass;\n \n /**\n * CustomerAffiliation entity class.\n */\n export class CustomerAffiliationClass implements Entities.CustomerAffiliation {\n public RecordId: number;\n public RetailAffiliationId: number;\n public Name: string;\n public Description: string;\n public HideInChannels: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RetailAffiliationId = \n (odataObject.RetailAffiliationId != null) ? parseInt(odataObject.RetailAffiliationId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.HideInChannels = \n odataObject.HideInChannels;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAffiliationClass'] = CustomerAffiliationClass;\n \n /**\n * CustomerBalances entity class.\n */\n export class CustomerBalancesClass implements Entities.CustomerBalances {\n public Balance: number;\n public PendingBalance: number;\n public CreditLimit: number;\n public InvoiceAccountBalance: number;\n public InvoiceAccountPendingBalance: number;\n public InvoiceAccountCreditLimit: number;\n public OpenInvoiceBalance: number;\n public OpenInvoiceCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.PendingBalance = \n (odataObject.PendingBalance != null) ? parseFloat(odataObject.PendingBalance) : undefined;\n \n this.CreditLimit = \n (odataObject.CreditLimit != null) ? parseFloat(odataObject.CreditLimit) : undefined;\n \n this.InvoiceAccountBalance = \n (odataObject.InvoiceAccountBalance != null) ? parseFloat(odataObject.InvoiceAccountBalance) : undefined;\n \n this.InvoiceAccountPendingBalance = \n (odataObject.InvoiceAccountPendingBalance != null) ? parseFloat(odataObject.InvoiceAccountPendingBalance) : undefined;\n \n this.InvoiceAccountCreditLimit = \n (odataObject.InvoiceAccountCreditLimit != null) ? parseFloat(odataObject.InvoiceAccountCreditLimit) : undefined;\n \n this.OpenInvoiceBalance = \n (odataObject.OpenInvoiceBalance != null) ? parseFloat(odataObject.OpenInvoiceBalance) : undefined;\n \n this.OpenInvoiceCount = \n odataObject.OpenInvoiceCount;\n \n }\n }\n entityDictionary['CustomerBalancesClass'] = CustomerBalancesClass;\n \n /**\n * GlobalCustomer entity class.\n */\n export class GlobalCustomerClass implements Entities.GlobalCustomer {\n public PartyNumber: string;\n public RecordId: number;\n public IsAsyncCustomer: boolean;\n public AccountNumber: string;\n public FullName: string;\n public FullAddress: string;\n public Phone: string;\n public Email: string;\n public CustomerTypeValue: number;\n public Images: Entities.MediaLocation[];\n public OfflineImage: string;\n public IsB2b: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsAsyncCustomer = \n odataObject.IsAsyncCustomer;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.FullName = \n odataObject.FullName;\n \n this.FullAddress = \n odataObject.FullAddress;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.CustomerTypeValue = \n odataObject.CustomerTypeValue;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new MediaLocationClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.OfflineImage = \n odataObject.OfflineImage;\n \n this.IsB2b = \n odataObject.IsB2b;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GlobalCustomerClass'] = GlobalCustomerClass;\n \n /**\n * AttributeValue entity class.\n */\n export class AttributeValueClass implements Entities.AttributeValue {\n public Name: string;\n public KeyName: string;\n public UnitOfMeasureSymbol: string;\n public DataTypeValue: number;\n public BooleanValue: boolean;\n public DateTimeOffsetValue: Date;\n public FloatValue: number;\n public IntegerValue: number;\n public TextValue: string;\n public CurrencyValue: number;\n public CurrencyCode: string;\n public AttributeValueId: number;\n public RecordId: number;\n public Swatches: Entities.AttributeSwatch[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FloatValue = \n (odataObject.FloatValue != null) ? parseFloat(odataObject.FloatValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.TextValue = \n odataObject.TextValue;\n \n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Swatches = undefined;\n if (odataObject.Swatches) {\n this.Swatches = [];\n for (var i = 0; i < odataObject.Swatches.length; i++) {\n if (odataObject.Swatches[i] != null) {\n if (odataObject.Swatches[i]['@odata.type'] != null) {\n var className: string = odataObject.Swatches[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Swatches[i] = new entityDictionary[className](odataObject.Swatches[i])\n }\n } else {\n this.Swatches[i] = new AttributeSwatchClass(odataObject.Swatches[i]);\n }\n } else {\n this.Swatches[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueClass'] = AttributeValueClass;\n \n /**\n * AttributeValueBase entity class.\n */\n export class AttributeValueBaseClass implements Entities.AttributeValueBase {\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeValueBaseClass'] = AttributeValueBaseClass;\n \n /**\n * Barcode entity class.\n */\n export class BarcodeClass implements Entities.Barcode {\n public BarcodeId: string;\n public BarcodePrice: number;\n public Quantity: number;\n public CustomerId: string;\n public EmployeeId: string;\n public SalespersonId: string;\n public EANLicenseId: string;\n public DataEntry: string;\n public DiscountCode: string;\n public GiftCardNumber: string;\n public LoyaltyCardNumber: string;\n public ItemBarcode: Entities.ItemBarcode;\n public EntryMethodTypeValue: number;\n public ItemType: number;\n public EnterDimensions: boolean;\n public ItemGroupId: string;\n public ItemDepartmentId: string;\n public ScaleItem: boolean;\n public ZeroPriceValid: boolean;\n public NegativeQuantity: boolean;\n public DiscountNotAllowed: boolean;\n public DateToBeBlocked: Date;\n public DateToBeActivated: Date;\n public CheckDigitValidated: boolean;\n public CouponId: string;\n public Message: string;\n public LineDiscountGroup: string;\n public MultilineDiscountGroup: string;\n public IncludedInTotalDiscount: boolean;\n public CostPrice: number;\n public BatchId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BarcodeId = \n odataObject.BarcodeId;\n \n this.BarcodePrice = \n (odataObject.BarcodePrice != null) ? parseFloat(odataObject.BarcodePrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.EmployeeId = \n odataObject.EmployeeId;\n \n this.SalespersonId = \n odataObject.SalespersonId;\n \n this.EANLicenseId = \n odataObject.EANLicenseId;\n \n this.DataEntry = \n odataObject.DataEntry;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.GiftCardNumber = \n odataObject.GiftCardNumber;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n if (odataObject.ItemBarcode == null) {\n this.ItemBarcode = undefined;\n } else if (odataObject.ItemBarcode['@odata.type'] == null) {\n this.ItemBarcode = new ItemBarcodeClass(odataObject.ItemBarcode);\n } else {\n var className: string = odataObject.ItemBarcode['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemBarcode = new entityDictionary[className](odataObject.ItemBarcode)\n }\n }\n\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.EnterDimensions = \n odataObject.EnterDimensions;\n \n this.ItemGroupId = \n odataObject.ItemGroupId;\n \n this.ItemDepartmentId = \n odataObject.ItemDepartmentId;\n \n this.ScaleItem = \n odataObject.ScaleItem;\n \n this.ZeroPriceValid = \n odataObject.ZeroPriceValid;\n \n this.NegativeQuantity = \n odataObject.NegativeQuantity;\n \n this.DiscountNotAllowed = \n odataObject.DiscountNotAllowed;\n \n this.DateToBeBlocked = \n (odataObject.DateToBeBlocked instanceof Date) ? odataObject.DateToBeBlocked\n : (odataObject.DateToBeBlocked != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeBlocked, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBeActivated = \n (odataObject.DateToBeActivated instanceof Date) ? odataObject.DateToBeActivated\n : (odataObject.DateToBeActivated != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBeActivated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CheckDigitValidated = \n odataObject.CheckDigitValidated;\n \n this.CouponId = \n odataObject.CouponId;\n \n this.Message = \n odataObject.Message;\n \n this.LineDiscountGroup = \n odataObject.LineDiscountGroup;\n \n this.MultilineDiscountGroup = \n odataObject.MultilineDiscountGroup;\n \n this.IncludedInTotalDiscount = \n odataObject.IncludedInTotalDiscount;\n \n this.CostPrice = \n (odataObject.CostPrice != null) ? parseFloat(odataObject.CostPrice) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BarcodeClass'] = BarcodeClass;\n \n /**\n * ItemBarcode entity class.\n */\n export class ItemBarcodeClass implements Entities.ItemBarcode {\n public RecordId: number;\n public ItemId: string;\n public Description: string;\n public BarcodeSetupId: string;\n public ItemBarcodeValue: string;\n public InventoryDimensionId: string;\n public IsBlocked: boolean;\n public Display: boolean;\n public VariantId: string;\n public UnitId: string;\n public UseForInput: boolean;\n public UseForPrinting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.BarcodeSetupId = \n odataObject.BarcodeSetupId;\n \n this.ItemBarcodeValue = \n odataObject.ItemBarcodeValue;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.Display = \n odataObject.Display;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.UseForInput = \n odataObject.UseForInput;\n \n this.UseForPrinting = \n odataObject.UseForPrinting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemBarcodeClass'] = ItemBarcodeClass;\n \n /**\n * ButtonGrid entity class.\n */\n export class ButtonGridClass implements Entities.ButtonGrid {\n public Id: string;\n public Name: string;\n public DefaultColor: number;\n public SpaceBetweenButtonsInPixels: number;\n public Buttons: Entities.ButtonGridButton[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultColor = \n odataObject.DefaultColor;\n \n this.SpaceBetweenButtonsInPixels = \n odataObject.SpaceBetweenButtonsInPixels;\n \n this.Buttons = undefined;\n if (odataObject.Buttons) {\n this.Buttons = [];\n for (var i = 0; i < odataObject.Buttons.length; i++) {\n if (odataObject.Buttons[i] != null) {\n if (odataObject.Buttons[i]['@odata.type'] != null) {\n var className: string = odataObject.Buttons[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Buttons[i] = new entityDictionary[className](odataObject.Buttons[i])\n }\n } else {\n this.Buttons[i] = new ButtonGridButtonClass(odataObject.Buttons[i]);\n }\n } else {\n this.Buttons[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridClass'] = ButtonGridClass;\n \n /**\n * GetButtonGridsByIdsCriteria entity class.\n */\n export class GetButtonGridsByIdsCriteriaClass implements Entities.GetButtonGridsByIdsCriteria {\n public ButtonGridIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridIds = undefined;\n if (odataObject.ButtonGridIds) {\n this.ButtonGridIds = [];\n for (var i = 0; i < odataObject.ButtonGridIds.length; i++) {\n if (odataObject.ButtonGridIds[i] != null) {\n this.ButtonGridIds[i] = \n odataObject.ButtonGridIds[i];\n } else {\n this.ButtonGridIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GetButtonGridsByIdsCriteriaClass'] = GetButtonGridsByIdsCriteriaClass;\n \n /**\n * CartLine entity class.\n */\n export class CartLineClass implements Entities.CartLine {\n public LineId: string;\n public TaxOverrideCode: string;\n public ItemId: string;\n public Barcode: string;\n public EntryMethodTypeValue: number;\n public Description: string;\n public InventoryDimensionId: string;\n public Comment: string;\n public ProductId: number;\n public WarehouseId: string;\n public Quantity: number;\n public Price: number;\n public ExtendedPrice: number;\n public TaxAmount: number;\n public ItemTaxGroupId: string;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public NetPrice: number;\n public DiscountAmountWithoutTax: number;\n public DiscountAmount: number;\n public LineDiscount: number;\n public LinePercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public UnitOfMeasureSymbol: string;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public DeliveryModeChargeAmount: number;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public WarrantiedId: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public IsVoided: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public IsGiftCardLine: boolean;\n public IsPriceKeyedIn: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public SalesStatusValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityCanceled: number;\n public FulfillmentStoreId: string;\n public SerialNumber: string;\n public ElectronicDeliveryEmail: string;\n public ElectronicDeliveryEmailContent: string;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public GiftCardBalance: number;\n public LineVersion: number;\n public PromotionLines: string[];\n public PriceLines: Entities.PriceLine[];\n public DiscountLines: Entities.DiscountLine[];\n public RelatedDiscountedLineIds: string[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TaxRatePercent: number;\n public IsCustomerAccountDeposit: boolean;\n public LinkedParentLineId: string;\n public QuantityReturnable: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n public LineNumber: number;\n public CommissionSalesGroup: string;\n public TrackingId: string;\n public StaffId: string;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public CatalogId: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public WarehouseLocation: string;\n public DetailedLineStatusValue: number;\n public SalesAgreementLineRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.Comment = \n odataObject.Comment;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ExtendedPrice = \n (odataObject.ExtendedPrice != null) ? parseFloat(odataObject.ExtendedPrice) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.WarrantiedId = \n odataObject.WarrantiedId;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ElectronicDeliveryEmail = \n odataObject.ElectronicDeliveryEmail;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.PromotionLines = undefined;\n if (odataObject.PromotionLines) {\n this.PromotionLines = [];\n for (var i = 0; i < odataObject.PromotionLines.length; i++) {\n if (odataObject.PromotionLines[i] != null) {\n this.PromotionLines[i] = \n odataObject.PromotionLines[i];\n } else {\n this.PromotionLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['CartLineClass'] = CartLineClass;\n \n /**\n * ThirdPartyGiftCardInfo entity class.\n */\n export class ThirdPartyGiftCardInfoClass implements Entities.ThirdPartyGiftCardInfo {\n public Amount: number;\n public Authorization: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ThirdPartyGiftCardInfoClass'] = ThirdPartyGiftCardInfoClass;\n \n /**\n * CardTypeInfo entity class.\n */\n export class CardTypeInfoClass implements Entities.CardTypeInfo {\n public RecordId: number;\n public TypeId: string;\n public Name: string;\n public PaymentMethodId: string;\n public CardTypeValue: number;\n public Issuer: string;\n public NumberFrom: string;\n public NumberTo: string;\n public CashBackLimit: number;\n public AllowManualInput: boolean;\n public CheckModulus: boolean;\n public HasTenderDiscount: boolean;\n public IsPinRequired: boolean;\n public IsExpirationDateRequired: boolean;\n public ConnectorName: string;\n public PaymentProcessorMethod: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.Name = \n odataObject.Name;\n \n this.PaymentMethodId = \n odataObject.PaymentMethodId;\n \n this.CardTypeValue = \n odataObject.CardTypeValue;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.NumberFrom = \n odataObject.NumberFrom;\n \n this.NumberTo = \n odataObject.NumberTo;\n \n this.CashBackLimit = \n (odataObject.CashBackLimit != null) ? parseFloat(odataObject.CashBackLimit) : undefined;\n \n this.AllowManualInput = \n odataObject.AllowManualInput;\n \n this.CheckModulus = \n odataObject.CheckModulus;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.IsPinRequired = \n odataObject.IsPinRequired;\n \n this.IsExpirationDateRequired = \n odataObject.IsExpirationDateRequired;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.PaymentProcessorMethod = \n odataObject.PaymentProcessorMethod;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CardTypeInfoClass'] = CardTypeInfoClass;\n \n /**\n * CashDeclaration entity class.\n */\n export class CashDeclarationClass implements Entities.CashDeclaration {\n public RecordId: number;\n public Currency: string;\n public Amount: number;\n public CashTypeValue: number;\n public IncludeInQuickPayShortcuts: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashTypeValue = \n odataObject.CashTypeValue;\n \n this.IncludeInQuickPayShortcuts = \n odataObject.IncludeInQuickPayShortcuts;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CashDeclarationClass'] = CashDeclarationClass;\n \n /**\n * IncomeExpenseAccount entity class.\n */\n export class IncomeExpenseAccountClass implements Entities.IncomeExpenseAccount {\n public Amount: number;\n public AccountNumber: string;\n public AccountName: string;\n public AccountNameAlias: string;\n public AccountTypeValue: number;\n public Quantity: number;\n public Message1Line: string;\n public Message2Line: string;\n public SlipText1Line: string;\n public SlipText2Line: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.AccountName = \n odataObject.AccountName;\n \n this.AccountNameAlias = \n odataObject.AccountNameAlias;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Message1Line = \n odataObject.Message1Line;\n \n this.Message2Line = \n odataObject.Message2Line;\n \n this.SlipText1Line = \n odataObject.SlipText1Line;\n \n this.SlipText2Line = \n odataObject.SlipText2Line;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseAccountClass'] = IncomeExpenseAccountClass;\n \n /**\n * IncomeExpenseLine entity class.\n */\n export class IncomeExpenseLineClass implements Entities.IncomeExpenseLine {\n public Amount: number;\n public IncomeExpenseAccount: string;\n public StoreNumber: string;\n public AccountTypeValue: number;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.IncomeExpenseAccount = \n odataObject.IncomeExpenseAccount;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['IncomeExpenseLineClass'] = IncomeExpenseLineClass;\n \n /**\n * CartTenderLine entity class.\n */\n export class CartTenderLineClass implements Entities.CartTenderLine {\n public PaymentCard: Entities.PaymentCard;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public CardPaymentAcceptResult: Entities.CardPaymentAcceptResult;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.PaymentCard == null) {\n this.PaymentCard = undefined;\n } else if (odataObject.PaymentCard['@odata.type'] == null) {\n this.PaymentCard = new PaymentCardClass(odataObject.PaymentCard);\n } else {\n var className: string = odataObject.PaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentCard = new entityDictionary[className](odataObject.PaymentCard)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n if (odataObject.CardPaymentAcceptResult == null) {\n this.CardPaymentAcceptResult = undefined;\n } else if (odataObject.CardPaymentAcceptResult['@odata.type'] == null) {\n this.CardPaymentAcceptResult = new CardPaymentAcceptResultClass(odataObject.CardPaymentAcceptResult);\n } else {\n var className: string = odataObject.CardPaymentAcceptResult['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardPaymentAcceptResult = new entityDictionary[className](odataObject.CardPaymentAcceptResult)\n }\n }\n\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartTenderLineClass'] = CartTenderLineClass;\n \n /**\n * ChargeLine entity class.\n */\n export class ChargeLineClass implements Entities.ChargeLine {\n public ChargeLineId: string;\n public ChargeCode: string;\n public CurrencyCode: string;\n public ModuleTypeValue: number;\n public IsHeaderChargeProrated: boolean;\n public ChargeTypeValue: number;\n public ChargeMethodValue: number;\n public CalculatedAmount: number;\n public Value: number;\n public Description: string;\n public TransactionId: string;\n public MarkupAutoLineRecordId: number;\n public MarkupAutoTableRecId: number;\n public SaleLineNumber: number;\n public FromAmount: number;\n public ToAmount: number;\n public Keep: number;\n public AmountRefunded: number;\n public ChargeLineOverrides: Entities.ChargeLineOverride[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public IsOverridden: boolean;\n public IsInvoiced: boolean;\n public CalculatedProratedAmount: number;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeLineId = \n odataObject.ChargeLineId;\n \n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.IsHeaderChargeProrated = \n odataObject.IsHeaderChargeProrated;\n \n this.ChargeTypeValue = \n odataObject.ChargeTypeValue;\n \n this.ChargeMethodValue = \n odataObject.ChargeMethodValue;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.MarkupAutoLineRecordId = \n (odataObject.MarkupAutoLineRecordId != null) ? parseInt(odataObject.MarkupAutoLineRecordId, 10) : undefined;\n \n this.MarkupAutoTableRecId = \n (odataObject.MarkupAutoTableRecId != null) ? parseInt(odataObject.MarkupAutoTableRecId, 10) : undefined;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.FromAmount = \n (odataObject.FromAmount != null) ? parseFloat(odataObject.FromAmount) : undefined;\n \n this.ToAmount = \n (odataObject.ToAmount != null) ? parseFloat(odataObject.ToAmount) : undefined;\n \n this.Keep = \n odataObject.Keep;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ChargeLineOverrides = undefined;\n if (odataObject.ChargeLineOverrides) {\n this.ChargeLineOverrides = [];\n for (var i = 0; i < odataObject.ChargeLineOverrides.length; i++) {\n if (odataObject.ChargeLineOverrides[i] != null) {\n if (odataObject.ChargeLineOverrides[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLineOverrides[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLineOverrides[i] = new entityDictionary[className](odataObject.ChargeLineOverrides[i])\n }\n } else {\n this.ChargeLineOverrides[i] = new ChargeLineOverrideClass(odataObject.ChargeLineOverrides[i]);\n }\n } else {\n this.ChargeLineOverrides[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.IsOverridden = \n odataObject.IsOverridden;\n \n this.IsInvoiced = \n odataObject.IsInvoiced;\n \n this.CalculatedProratedAmount = \n (odataObject.CalculatedProratedAmount != null) ? parseFloat(odataObject.CalculatedProratedAmount) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeLineClass'] = ChargeLineClass;\n \n /**\n * CityInfo entity class.\n */\n export class CityInfoClass implements Entities.CityInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CityInfoClass'] = CityInfoClass;\n \n /**\n * CommissionSalesGroup entity class.\n */\n export class CommissionSalesGroupClass implements Entities.CommissionSalesGroup {\n public GroupId: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.GroupId = \n odataObject.GroupId;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommissionSalesGroupClass'] = CommissionSalesGroupClass;\n \n /**\n * ContactInformation entity class.\n */\n export class ContactInformationClass implements Entities.ContactInformation {\n public Value: string;\n public ContactInformationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ContactInformationTypeValue = \n odataObject.ContactInformationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInformationClass'] = ContactInformationClass;\n \n /**\n * AttributeCategory entity class.\n */\n export class AttributeCategoryClass implements Entities.AttributeCategory {\n public Value: Entities.CommercePropertyValue;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeCategoryClass'] = AttributeCategoryClass;\n \n /**\n * AttributeProduct entity class.\n */\n export class AttributeProductClass implements Entities.AttributeProduct {\n public MetadataFlags: Entities.ProductAttributeMetadataFlags;\n public IsDimension: boolean;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.MetadataFlags == null) {\n this.MetadataFlags = undefined;\n } else if (odataObject.MetadataFlags['@odata.type'] == null) {\n this.MetadataFlags = new ProductAttributeMetadataFlagsClass(odataObject.MetadataFlags);\n } else {\n var className: string = odataObject.MetadataFlags['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataFlags = new entityDictionary[className](odataObject.MetadataFlags)\n }\n }\n\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeProductClass'] = AttributeProductClass;\n \n /**\n * ProductComparisonEntry entity class.\n */\n export class ProductComparisonEntryClass implements Entities.ProductComparisonEntry {\n public ProductId: number;\n public AttributeValue: Entities.AttributeValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new AttributeValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonEntryClass'] = ProductComparisonEntryClass;\n \n /**\n * ProductComparisonLine entity class.\n */\n export class ProductComparisonLineClass implements Entities.ProductComparisonLine {\n public AttributeRecordId: number;\n public AttributeName: string;\n public ProductAttributeComparisonEntries: Entities.ProductComparisonEntry[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.AttributeName = \n odataObject.AttributeName;\n \n this.ProductAttributeComparisonEntries = undefined;\n if (odataObject.ProductAttributeComparisonEntries) {\n this.ProductAttributeComparisonEntries = [];\n for (var i = 0; i < odataObject.ProductAttributeComparisonEntries.length; i++) {\n if (odataObject.ProductAttributeComparisonEntries[i] != null) {\n if (odataObject.ProductAttributeComparisonEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductAttributeComparisonEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductAttributeComparisonEntries[i] = new entityDictionary[className](odataObject.ProductAttributeComparisonEntries[i])\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = new ProductComparisonEntryClass(odataObject.ProductAttributeComparisonEntries[i]);\n }\n } else {\n this.ProductAttributeComparisonEntries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComparisonLineClass'] = ProductComparisonLineClass;\n \n /**\n * CustomerSearchField entity class.\n */\n export class CustomerSearchFieldClass implements Entities.CustomerSearchField {\n public IsShortcut: boolean;\n public DisplayName: string;\n public CanBeRefined: boolean;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsShortcut = \n odataObject.IsShortcut;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.CanBeRefined = \n odataObject.CanBeRefined;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchFieldClass'] = CustomerSearchFieldClass;\n \n /**\n * CustomerSearchByFieldCriteria entity class.\n */\n export class CustomerSearchByFieldCriteriaClass implements Entities.CustomerSearchByFieldCriteria {\n public Criteria: Entities.CustomerSearchByFieldCriterion[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Criteria = undefined;\n if (odataObject.Criteria) {\n this.Criteria = [];\n for (var i = 0; i < odataObject.Criteria.length; i++) {\n if (odataObject.Criteria[i] != null) {\n if (odataObject.Criteria[i]['@odata.type'] != null) {\n var className: string = odataObject.Criteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Criteria[i] = new entityDictionary[className](odataObject.Criteria[i])\n }\n } else {\n this.Criteria[i] = new CustomerSearchByFieldCriterionClass(odataObject.Criteria[i]);\n }\n } else {\n this.Criteria[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriteriaClass'] = CustomerSearchByFieldCriteriaClass;\n \n /**\n * CustomerSearchByFieldCriterion entity class.\n */\n export class CustomerSearchByFieldCriterionClass implements Entities.CustomerSearchByFieldCriterion {\n public SearchTerm: string;\n public SearchField: Entities.CustomerSearchFieldType;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchTerm = \n odataObject.SearchTerm;\n \n if (odataObject.SearchField == null) {\n this.SearchField = undefined;\n } else if (odataObject.SearchField['@odata.type'] == null) {\n this.SearchField = new CustomerSearchFieldTypeClass(odataObject.SearchField);\n } else {\n var className: string = odataObject.SearchField['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchField = new entityDictionary[className](odataObject.SearchField)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerSearchByFieldCriterionClass'] = CustomerSearchByFieldCriterionClass;\n \n /**\n * CustomerSearchFieldType entity class.\n */\n export class CustomerSearchFieldTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.CustomerSearchFieldType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerSearchFieldType\";\n \n }\n }\n entityDictionary['CustomerSearchFieldTypeClass'] = CustomerSearchFieldTypeClass;\n \n /**\n * OrderShipments entity class.\n */\n export class OrderShipmentsClass implements Entities.OrderShipments {\n public SalesId: string;\n public ChannelId: number;\n public ChannelReferenceId: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public StatusValue: number;\n public CurrencyCode: string;\n public CustomerId: string;\n public DeliveryMode: string;\n public GrossAmount: number;\n public InventoryLocationId: string;\n public ReceiptId: string;\n public RequestedDeliveryDate: Date;\n public TotalAmount: number;\n public TaxAmount: number;\n public SalesLines: Entities.SalesLine[];\n public Shipments: Entities.Shipment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesLines = undefined;\n if (odataObject.SalesLines) {\n this.SalesLines = [];\n for (var i = 0; i < odataObject.SalesLines.length; i++) {\n if (odataObject.SalesLines[i] != null) {\n if (odataObject.SalesLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLines[i] = new entityDictionary[className](odataObject.SalesLines[i])\n }\n } else {\n this.SalesLines[i] = new SalesLineClass(odataObject.SalesLines[i]);\n }\n } else {\n this.SalesLines[i] = undefined;\n }\n }\n }\n \n this.Shipments = undefined;\n if (odataObject.Shipments) {\n this.Shipments = [];\n for (var i = 0; i < odataObject.Shipments.length; i++) {\n if (odataObject.Shipments[i] != null) {\n if (odataObject.Shipments[i]['@odata.type'] != null) {\n var className: string = odataObject.Shipments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shipments[i] = new entityDictionary[className](odataObject.Shipments[i])\n }\n } else {\n this.Shipments[i] = new ShipmentClass(odataObject.Shipments[i]);\n }\n } else {\n this.Shipments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderShipmentsClass'] = OrderShipmentsClass;\n \n /**\n * Shipment entity class.\n */\n export class ShipmentClass implements Entities.Shipment {\n public SalesId: string;\n public ShipmentId: string;\n public DeliveryAddress: Entities.Address;\n public ShipDate: Date;\n public DeliveryMode: string;\n public TermsOfDelivery: string;\n public WeightUnit: string;\n public TrackingNumber: string;\n public TrackingUrl: string;\n public LatestCarrierTrackingInfo: Entities.TrackingInfo;\n public CarrierId: string;\n public CarrierName: string;\n public ShippingWeight: number;\n public ShipmentLines: Entities.ShipmentLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.ShipmentId = \n odataObject.ShipmentId;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TermsOfDelivery = \n odataObject.TermsOfDelivery;\n \n this.WeightUnit = \n odataObject.WeightUnit;\n \n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n if (odataObject.LatestCarrierTrackingInfo == null) {\n this.LatestCarrierTrackingInfo = undefined;\n } else if (odataObject.LatestCarrierTrackingInfo['@odata.type'] == null) {\n this.LatestCarrierTrackingInfo = new TrackingInfoClass(odataObject.LatestCarrierTrackingInfo);\n } else {\n var className: string = odataObject.LatestCarrierTrackingInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LatestCarrierTrackingInfo = new entityDictionary[className](odataObject.LatestCarrierTrackingInfo)\n }\n }\n\n \n this.CarrierId = \n odataObject.CarrierId;\n \n this.CarrierName = \n odataObject.CarrierName;\n \n this.ShippingWeight = \n (odataObject.ShippingWeight != null) ? parseFloat(odataObject.ShippingWeight) : undefined;\n \n this.ShipmentLines = undefined;\n if (odataObject.ShipmentLines) {\n this.ShipmentLines = [];\n for (var i = 0; i < odataObject.ShipmentLines.length; i++) {\n if (odataObject.ShipmentLines[i] != null) {\n if (odataObject.ShipmentLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentLines[i] = new entityDictionary[className](odataObject.ShipmentLines[i])\n }\n } else {\n this.ShipmentLines[i] = new ShipmentLineClass(odataObject.ShipmentLines[i]);\n }\n } else {\n this.ShipmentLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentClass'] = ShipmentClass;\n \n /**\n * ShipmentLine entity class.\n */\n export class ShipmentLineClass implements Entities.ShipmentLine {\n public ShipmentLineId: string;\n public ItemId: string;\n public Description: string;\n public InventDimId: string;\n public OrderedQuantity: number;\n public DeliveredQuantity: number;\n public RemainingQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShipmentLineId = \n odataObject.ShipmentLineId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Description = \n odataObject.Description;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.OrderedQuantity = \n (odataObject.OrderedQuantity != null) ? parseFloat(odataObject.OrderedQuantity) : undefined;\n \n this.DeliveredQuantity = \n (odataObject.DeliveredQuantity != null) ? parseFloat(odataObject.DeliveredQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShipmentLineClass'] = ShipmentLineClass;\n \n /**\n * Transaction entity class.\n */\n export class TransactionClass implements Entities.Transaction {\n public Id: string;\n public StoreId: string;\n public TerminalId: string;\n public IsCreatedOffline: boolean;\n public StaffId: string;\n public LanguageId: string;\n public ShiftId: string;\n public ShiftTerminalId: string;\n public Description: string;\n public ReceiptId: string;\n public GrossAmount: number;\n public TotalAmount: number;\n public CreatedDateTime: Date;\n public TransactionTypeValue: number;\n public TransactionStatusValue: number;\n public BeginDateTime: Date;\n public GiftCardActiveFrom: Date;\n public GiftCardBalance: number;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public GiftCardIssueAmount: number;\n public GiftCardIdMasked: string;\n public FromSafe: string;\n public ToSafe: string;\n public FromShiftTerminalId: string;\n public ToShiftTerminalId: string;\n public FromShiftId: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n public ToShiftId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.IsCreatedOffline = \n odataObject.IsCreatedOffline;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ShiftId = \n odataObject.ShiftId;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.Description = \n odataObject.Description;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TransactionTypeValue = \n odataObject.TransactionTypeValue;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardIdMasked = \n odataObject.GiftCardIdMasked;\n \n this.FromSafe = \n odataObject.FromSafe;\n \n this.ToSafe = \n odataObject.ToSafe;\n \n this.FromShiftTerminalId = \n odataObject.FromShiftTerminalId;\n \n this.ToShiftTerminalId = \n odataObject.ToShiftTerminalId;\n \n this.FromShiftId = \n odataObject.FromShiftId;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n this.ToShiftId = \n odataObject.ToShiftId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionClass'] = TransactionClass;\n \n /**\n * ShiftReconciliationLine entity class.\n */\n export class ShiftReconciliationLineClass\n extends TransactionClass\n implements Entities.ShiftReconciliationLine {\n public GroupId: number;\n public GroupDescription: string;\n public ShiftGroupLinesCount: number;\n public ShiftGroupLinesClosedCount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupDescription = \n odataObject.GroupDescription;\n \n this.ShiftGroupLinesCount = \n (odataObject.ShiftGroupLinesCount != null) ? parseInt(odataObject.ShiftGroupLinesCount, 10) : undefined;\n \n this.ShiftGroupLinesClosedCount = \n (odataObject.ShiftGroupLinesClosedCount != null) ? parseInt(odataObject.ShiftGroupLinesClosedCount, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShiftReconciliationLine\";\n \n }\n }\n entityDictionary['ShiftReconciliationLineClass'] = ShiftReconciliationLineClass;\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity class.\n */\n export class ShiftReconciliationLineRetrievalCriteriaClass implements Entities.ShiftReconciliationLineRetrievalCriteria {\n public TransactionTypeValues: number[];\n public ShiftReconciliationLineStatusValue: number;\n public Shifts: Entities.ShiftKey[];\n public DestinationShift: Entities.ShiftKey;\n public SourceShift: Entities.ShiftKey;\n public SourceSafe: string;\n public DestinationSafe: string;\n public TransactionSourceContextTypeValue: number;\n public TransactionDestinationContextTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionTypeValues = undefined;\n if (odataObject.TransactionTypeValues) {\n this.TransactionTypeValues = [];\n for (var i = 0; i < odataObject.TransactionTypeValues.length; i++) {\n if (odataObject.TransactionTypeValues[i] != null) {\n this.TransactionTypeValues[i] = \n odataObject.TransactionTypeValues[i];\n } else {\n this.TransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.ShiftReconciliationLineStatusValue = \n odataObject.ShiftReconciliationLineStatusValue;\n \n this.Shifts = undefined;\n if (odataObject.Shifts) {\n this.Shifts = [];\n for (var i = 0; i < odataObject.Shifts.length; i++) {\n if (odataObject.Shifts[i] != null) {\n if (odataObject.Shifts[i]['@odata.type'] != null) {\n var className: string = odataObject.Shifts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Shifts[i] = new entityDictionary[className](odataObject.Shifts[i])\n }\n } else {\n this.Shifts[i] = new ShiftKeyClass(odataObject.Shifts[i]);\n }\n } else {\n this.Shifts[i] = undefined;\n }\n }\n }\n \n if (odataObject.DestinationShift == null) {\n this.DestinationShift = undefined;\n } else if (odataObject.DestinationShift['@odata.type'] == null) {\n this.DestinationShift = new ShiftKeyClass(odataObject.DestinationShift);\n } else {\n var className: string = odataObject.DestinationShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationShift = new entityDictionary[className](odataObject.DestinationShift)\n }\n }\n\n \n if (odataObject.SourceShift == null) {\n this.SourceShift = undefined;\n } else if (odataObject.SourceShift['@odata.type'] == null) {\n this.SourceShift = new ShiftKeyClass(odataObject.SourceShift);\n } else {\n var className: string = odataObject.SourceShift['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceShift = new entityDictionary[className](odataObject.SourceShift)\n }\n }\n\n \n this.SourceSafe = \n odataObject.SourceSafe;\n \n this.DestinationSafe = \n odataObject.DestinationSafe;\n \n this.TransactionSourceContextTypeValue = \n odataObject.TransactionSourceContextTypeValue;\n \n this.TransactionDestinationContextTypeValue = \n odataObject.TransactionDestinationContextTypeValue;\n \n }\n }\n entityDictionary['ShiftReconciliationLineRetrievalCriteriaClass'] = ShiftReconciliationLineRetrievalCriteriaClass;\n \n /**\n * SearchConfiguration entity class.\n */\n export class SearchConfigurationClass implements Entities.SearchConfiguration {\n public ProductSortColumns: Entities.SortColumn[];\n public ProductSearchServiceTypeValue: number;\n public ProductSortColumnsLabels: Entities.LocalizedText[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductSortColumns = undefined;\n if (odataObject.ProductSortColumns) {\n this.ProductSortColumns = [];\n for (var i = 0; i < odataObject.ProductSortColumns.length; i++) {\n if (odataObject.ProductSortColumns[i] != null) {\n if (odataObject.ProductSortColumns[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumns[i] = new entityDictionary[className](odataObject.ProductSortColumns[i])\n }\n } else {\n this.ProductSortColumns[i] = new SortColumnClass(odataObject.ProductSortColumns[i]);\n }\n } else {\n this.ProductSortColumns[i] = undefined;\n }\n }\n }\n \n this.ProductSearchServiceTypeValue = \n odataObject.ProductSearchServiceTypeValue;\n \n this.ProductSortColumnsLabels = undefined;\n if (odataObject.ProductSortColumnsLabels) {\n this.ProductSortColumnsLabels = [];\n for (var i = 0; i < odataObject.ProductSortColumnsLabels.length; i++) {\n if (odataObject.ProductSortColumnsLabels[i] != null) {\n if (odataObject.ProductSortColumnsLabels[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductSortColumnsLabels[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSortColumnsLabels[i] = new entityDictionary[className](odataObject.ProductSortColumnsLabels[i])\n }\n } else {\n this.ProductSortColumnsLabels[i] = new LocalizedTextClass(odataObject.ProductSortColumnsLabels[i]);\n }\n } else {\n this.ProductSortColumnsLabels[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchConfigurationClass'] = SearchConfigurationClass;\n \n /**\n * CustomerTimelineItem entity class.\n */\n export class CustomerTimelineItemClass implements Entities.CustomerTimelineItem {\n public CustomerId: string;\n public Description: string;\n public Id: string;\n public EntityType: string;\n public TypeId: string;\n public StaffId: string;\n public StartDateTime: Date;\n public Title: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Description = \n odataObject.Description;\n \n this.Id = \n odataObject.Id;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Title = \n odataObject.Title;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemClass'] = CustomerTimelineItemClass;\n \n /**\n * AttributeDefinition entity class.\n */\n export class AttributeDefinitionClass implements Entities.AttributeDefinition {\n public RecordId: number;\n public Name: string;\n public AttributeTypeName: string;\n public ExtDataType: Entities.ExtensibleAttributeDataType;\n public DataTypeValue: number;\n public IsHidden: boolean;\n public IsMandatory: boolean;\n public IsMultiValue: boolean;\n public IsEnumeration: boolean;\n public TranslationDetails: Entities.AttributeTranslationDetails[];\n public EnumerationDetails: Entities.AttributeEnumeration[];\n public DefaultValue: Entities.CommercePropertyValue;\n public UpperBound: Entities.CommercePropertyValue;\n public LowerBound: Entities.CommercePropertyValue;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.AttributeTypeName = \n odataObject.AttributeTypeName;\n \n if (odataObject.ExtDataType == null) {\n this.ExtDataType = undefined;\n } else if (odataObject.ExtDataType['@odata.type'] == null) {\n this.ExtDataType = new ExtensibleAttributeDataTypeClass(odataObject.ExtDataType);\n } else {\n var className: string = odataObject.ExtDataType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtDataType = new entityDictionary[className](odataObject.ExtDataType)\n }\n }\n\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.IsHidden = \n odataObject.IsHidden;\n \n this.IsMandatory = \n odataObject.IsMandatory;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsEnumeration = \n odataObject.IsEnumeration;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.EnumerationDetails = undefined;\n if (odataObject.EnumerationDetails) {\n this.EnumerationDetails = [];\n for (var i = 0; i < odataObject.EnumerationDetails.length; i++) {\n if (odataObject.EnumerationDetails[i] != null) {\n if (odataObject.EnumerationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.EnumerationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.EnumerationDetails[i] = new entityDictionary[className](odataObject.EnumerationDetails[i])\n }\n } else {\n this.EnumerationDetails[i] = new AttributeEnumerationClass(odataObject.EnumerationDetails[i]);\n }\n } else {\n this.EnumerationDetails[i] = undefined;\n }\n }\n }\n \n if (odataObject.DefaultValue == null) {\n this.DefaultValue = undefined;\n } else if (odataObject.DefaultValue['@odata.type'] == null) {\n this.DefaultValue = new CommercePropertyValueClass(odataObject.DefaultValue);\n } else {\n var className: string = odataObject.DefaultValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DefaultValue = new entityDictionary[className](odataObject.DefaultValue)\n }\n }\n\n \n if (odataObject.UpperBound == null) {\n this.UpperBound = undefined;\n } else if (odataObject.UpperBound['@odata.type'] == null) {\n this.UpperBound = new CommercePropertyValueClass(odataObject.UpperBound);\n } else {\n var className: string = odataObject.UpperBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpperBound = new entityDictionary[className](odataObject.UpperBound)\n }\n }\n\n \n if (odataObject.LowerBound == null) {\n this.LowerBound = undefined;\n } else if (odataObject.LowerBound['@odata.type'] == null) {\n this.LowerBound = new CommercePropertyValueClass(odataObject.LowerBound);\n } else {\n var className: string = odataObject.LowerBound['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LowerBound = new entityDictionary[className](odataObject.LowerBound)\n }\n }\n\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionClass'] = AttributeDefinitionClass;\n \n /**\n * AttributeTranslationDetails entity class.\n */\n export class AttributeTranslationDetailsClass implements Entities.AttributeTranslationDetails {\n public AttributeRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeRecordId = \n (odataObject.AttributeRecordId != null) ? parseInt(odataObject.AttributeRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeTranslationDetailsClass'] = AttributeTranslationDetailsClass;\n \n /**\n * AttributeEnumeration entity class.\n */\n export class AttributeEnumerationClass implements Entities.AttributeEnumeration {\n public OrdinalNumber: number;\n public EnumerationValue: string;\n public AttributeEnumerationTranslations: Entities.AttributeEnumerationTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrdinalNumber = \n odataObject.OrdinalNumber;\n \n this.EnumerationValue = \n odataObject.EnumerationValue;\n \n this.AttributeEnumerationTranslations = undefined;\n if (odataObject.AttributeEnumerationTranslations) {\n this.AttributeEnumerationTranslations = [];\n for (var i = 0; i < odataObject.AttributeEnumerationTranslations.length; i++) {\n if (odataObject.AttributeEnumerationTranslations[i] != null) {\n if (odataObject.AttributeEnumerationTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeEnumerationTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeEnumerationTranslations[i] = new entityDictionary[className](odataObject.AttributeEnumerationTranslations[i])\n }\n } else {\n this.AttributeEnumerationTranslations[i] = new AttributeEnumerationTranslationClass(odataObject.AttributeEnumerationTranslations[i]);\n }\n } else {\n this.AttributeEnumerationTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationClass'] = AttributeEnumerationClass;\n \n /**\n * AttributeEnumerationTranslation entity class.\n */\n export class AttributeEnumerationTranslationClass implements Entities.AttributeEnumerationTranslation {\n public LanguageId: string;\n public EnumerationTranslationValue: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.EnumerationTranslationValue = \n odataObject.EnumerationTranslationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeEnumerationTranslationClass'] = AttributeEnumerationTranslationClass;\n \n /**\n * AttributeDefinitionCriteria entity class.\n */\n export class AttributeDefinitionCriteriaClass implements Entities.AttributeDefinitionCriteria {\n public AttributeGroupIdentifier: number;\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifier = \n (odataObject.AttributeGroupIdentifier != null) ? parseInt(odataObject.AttributeGroupIdentifier, 10) : undefined;\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeDefinitionCriteriaClass'] = AttributeDefinitionCriteriaClass;\n \n /**\n * AttributeGroupDefinition entity class.\n */\n export class AttributeGroupDefinitionClass implements Entities.AttributeGroupDefinition {\n public RecordId: number;\n public Name: string;\n public TranslationDetails: Entities.AttributeGroupTranslationDetails[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.TranslationDetails = undefined;\n if (odataObject.TranslationDetails) {\n this.TranslationDetails = [];\n for (var i = 0; i < odataObject.TranslationDetails.length; i++) {\n if (odataObject.TranslationDetails[i] != null) {\n if (odataObject.TranslationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslationDetails[i] = new entityDictionary[className](odataObject.TranslationDetails[i])\n }\n } else {\n this.TranslationDetails[i] = new AttributeGroupTranslationDetailsClass(odataObject.TranslationDetails[i]);\n }\n } else {\n this.TranslationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionClass'] = AttributeGroupDefinitionClass;\n \n /**\n * AttributeGroupTranslationDetails entity class.\n */\n export class AttributeGroupTranslationDetailsClass implements Entities.AttributeGroupTranslationDetails {\n public AttributeGroupRecordId: number;\n public LanguageId: string;\n public FriendlyName: string;\n public Description: string;\n public HelpText: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupRecordId = \n (odataObject.AttributeGroupRecordId != null) ? parseInt(odataObject.AttributeGroupRecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.Description = \n odataObject.Description;\n \n this.HelpText = \n odataObject.HelpText;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupTranslationDetailsClass'] = AttributeGroupTranslationDetailsClass;\n \n /**\n * AttributeGroupDefinitionCriteria entity class.\n */\n export class AttributeGroupDefinitionCriteriaClass implements Entities.AttributeGroupDefinitionCriteria {\n public AttributeGroupIdentifiers: number[];\n public Languages: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AttributeGroupIdentifiers = undefined;\n if (odataObject.AttributeGroupIdentifiers) {\n this.AttributeGroupIdentifiers = [];\n for (var i = 0; i < odataObject.AttributeGroupIdentifiers.length; i++) {\n if (odataObject.AttributeGroupIdentifiers[i] != null) {\n this.AttributeGroupIdentifiers[i] = \n parseInt(odataObject.AttributeGroupIdentifiers[i], 10);\n } else {\n this.AttributeGroupIdentifiers[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n this.Languages[i] = \n odataObject.Languages[i];\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeGroupDefinitionCriteriaClass'] = AttributeGroupDefinitionCriteriaClass;\n \n /**\n * CountyInfo entity class.\n */\n export class CountyInfoClass implements Entities.CountyInfo {\n public Name: string;\n public CountyId: string;\n public CountryRegionId: string;\n public StateId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountyInfoClass'] = CountyInfoClass;\n \n /**\n * CustomerGroup entity class.\n */\n export class CustomerGroupClass implements Entities.CustomerGroup {\n public CustomerGroupNumber: string;\n public CustomerGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerGroupNumber = \n odataObject.CustomerGroupNumber;\n \n this.CustomerGroupName = \n odataObject.CustomerGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerGroupClass'] = CustomerGroupClass;\n \n /**\n * DiscountLine entity class.\n */\n export class DiscountLineClass implements Entities.DiscountLine {\n public SaleLineNumber: number;\n public OfferId: string;\n public OfferName: string;\n public Amount: number;\n public DiscountCost: number;\n public EffectiveAmount: number;\n public EffectivePercentage: number;\n public LineNumber: number;\n public SavedEffectiveAmount: number;\n public Percentage: number;\n public DealPrice: number;\n public DiscountLineTypeValue: number;\n public ManualDiscountTypeValue: number;\n public CustomerDiscountTypeValue: number;\n public PeriodicDiscountTypeValue: number;\n public DiscountApplicationGroup: string;\n public ConcurrencyModeValue: number;\n public IsCompoundable: boolean;\n public DiscountCode: string;\n public PricingPriorityNumber: number;\n public PricingAttributeCombinationPriority: number;\n public IsDiscountCodeRequired: boolean;\n public ThresholdAmountRequired: number;\n public BundleId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.DiscountCost = \n (odataObject.DiscountCost != null) ? parseFloat(odataObject.DiscountCost) : undefined;\n \n this.EffectiveAmount = \n (odataObject.EffectiveAmount != null) ? parseFloat(odataObject.EffectiveAmount) : undefined;\n \n this.EffectivePercentage = \n (odataObject.EffectivePercentage != null) ? parseFloat(odataObject.EffectivePercentage) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.SavedEffectiveAmount = \n (odataObject.SavedEffectiveAmount != null) ? parseFloat(odataObject.SavedEffectiveAmount) : undefined;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.DealPrice = \n (odataObject.DealPrice != null) ? parseFloat(odataObject.DealPrice) : undefined;\n \n this.DiscountLineTypeValue = \n odataObject.DiscountLineTypeValue;\n \n this.ManualDiscountTypeValue = \n odataObject.ManualDiscountTypeValue;\n \n this.CustomerDiscountTypeValue = \n odataObject.CustomerDiscountTypeValue;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.DiscountApplicationGroup = \n odataObject.DiscountApplicationGroup;\n \n this.ConcurrencyModeValue = \n odataObject.ConcurrencyModeValue;\n \n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.DiscountCode = \n odataObject.DiscountCode;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.PricingAttributeCombinationPriority = \n (odataObject.PricingAttributeCombinationPriority != null) ? parseFloat(odataObject.PricingAttributeCombinationPriority) : undefined;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ThresholdAmountRequired = \n (odataObject.ThresholdAmountRequired != null) ? parseFloat(odataObject.ThresholdAmountRequired) : undefined;\n \n this.BundleId = \n odataObject.BundleId;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountLineClass'] = DiscountLineClass;\n \n /**\n * EmployeePermissions entity class.\n */\n export class EmployeePermissionsClass implements Entities.EmployeePermissions {\n public PriceOverrideRestrictionValue: number;\n public AllowPriceOverride: number;\n public MaximumDiscountPercentage: number;\n public MaximumLineDiscountAmount: number;\n public MaximumLineReturnAmount: number;\n public MaximumTotalDiscountAmount: number;\n public MaximumTotalDiscountPercentage: number;\n public MaxTotalReturnAmount: number;\n public StaffId: string;\n public Roles: string[];\n public AllowUseSharedShift: boolean;\n public AllowManageSharedShift: boolean;\n public AllowTaskGuides: boolean;\n public AllowSaleOutsideAssortment: boolean;\n public AllowPrintingReceiptCopy: string;\n public AllowSkipFiscalRegistration: boolean;\n public AllowSkipRegistrationOrMarkAsRegistered: boolean;\n public AllowPostponeRegistration: boolean;\n public AllowCreateTransferOrder: boolean;\n public AllowAcceptOrder: boolean;\n public AllowTaskManagement: boolean;\n public AllowRejectOrder: boolean;\n public AllowMassActivation: boolean;\n public AllowPostInventoryAdjustment: boolean;\n public AllowPostStockCounting: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PriceOverrideRestrictionValue = \n odataObject.PriceOverrideRestrictionValue;\n \n this.AllowPriceOverride = \n odataObject.AllowPriceOverride;\n \n this.MaximumDiscountPercentage = \n (odataObject.MaximumDiscountPercentage != null) ? parseFloat(odataObject.MaximumDiscountPercentage) : undefined;\n \n this.MaximumLineDiscountAmount = \n (odataObject.MaximumLineDiscountAmount != null) ? parseFloat(odataObject.MaximumLineDiscountAmount) : undefined;\n \n this.MaximumLineReturnAmount = \n (odataObject.MaximumLineReturnAmount != null) ? parseFloat(odataObject.MaximumLineReturnAmount) : undefined;\n \n this.MaximumTotalDiscountAmount = \n (odataObject.MaximumTotalDiscountAmount != null) ? parseFloat(odataObject.MaximumTotalDiscountAmount) : undefined;\n \n this.MaximumTotalDiscountPercentage = \n (odataObject.MaximumTotalDiscountPercentage != null) ? parseFloat(odataObject.MaximumTotalDiscountPercentage) : undefined;\n \n this.MaxTotalReturnAmount = \n (odataObject.MaxTotalReturnAmount != null) ? parseFloat(odataObject.MaxTotalReturnAmount) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.Roles = undefined;\n if (odataObject.Roles) {\n this.Roles = [];\n for (var i = 0; i < odataObject.Roles.length; i++) {\n if (odataObject.Roles[i] != null) {\n this.Roles[i] = \n odataObject.Roles[i];\n } else {\n this.Roles[i] = undefined;\n }\n }\n }\n \n this.AllowUseSharedShift = \n odataObject.AllowUseSharedShift;\n \n this.AllowManageSharedShift = \n odataObject.AllowManageSharedShift;\n \n this.AllowTaskGuides = \n odataObject.AllowTaskGuides;\n \n this.AllowSaleOutsideAssortment = \n odataObject.AllowSaleOutsideAssortment;\n \n this.AllowPrintingReceiptCopy = \n odataObject.AllowPrintingReceiptCopy;\n \n this.AllowSkipFiscalRegistration = \n odataObject.AllowSkipFiscalRegistration;\n \n this.AllowSkipRegistrationOrMarkAsRegistered = \n odataObject.AllowSkipRegistrationOrMarkAsRegistered;\n \n this.AllowPostponeRegistration = \n odataObject.AllowPostponeRegistration;\n \n this.AllowCreateTransferOrder = \n odataObject.AllowCreateTransferOrder;\n \n this.AllowAcceptOrder = \n odataObject.AllowAcceptOrder;\n \n this.AllowTaskManagement = \n odataObject.AllowTaskManagement;\n \n this.AllowRejectOrder = \n odataObject.AllowRejectOrder;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.AllowPostInventoryAdjustment = \n odataObject.AllowPostInventoryAdjustment;\n \n this.AllowPostStockCounting = \n odataObject.AllowPostStockCounting;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeePermissionsClass'] = EmployeePermissionsClass;\n \n /**\n * CommerceProperty entity class.\n */\n export class CommercePropertyClass implements Entities.CommerceProperty {\n public Key: string;\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['CommercePropertyClass'] = CommercePropertyClass;\n \n /**\n * CommercePropertyValue entity class.\n */\n export class CommercePropertyValueClass implements Entities.CommercePropertyValue {\n public BooleanValue: boolean;\n public ByteValue: number;\n public DateTimeOffsetValue: Date;\n public DecimalValue: number;\n public IntegerValue: number;\n public LongValue: number;\n public StringValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BooleanValue = \n odataObject.BooleanValue;\n \n this.ByteValue = \n (odataObject.ByteValue != null) ? parseInt(odataObject.ByteValue, 10) : undefined;\n \n this.DateTimeOffsetValue = \n (odataObject.DateTimeOffsetValue instanceof Date) ? odataObject.DateTimeOffsetValue\n : (odataObject.DateTimeOffsetValue != null) ? jsonLightReadStringPropertyValue(odataObject.DateTimeOffsetValue, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DecimalValue = \n (odataObject.DecimalValue != null) ? parseFloat(odataObject.DecimalValue) : undefined;\n \n this.IntegerValue = \n odataObject.IntegerValue;\n \n this.LongValue = \n (odataObject.LongValue != null) ? parseInt(odataObject.LongValue, 10) : undefined;\n \n this.StringValue = \n odataObject.StringValue;\n \n }\n }\n entityDictionary['CommercePropertyValueClass'] = CommercePropertyValueClass;\n \n /**\n * CountryRegionInfo entity class.\n */\n export class CountryRegionInfoClass implements Entities.CountryRegionInfo {\n public CountryRegionId: string;\n public ShortName: string;\n public LongName: string;\n public ISOCode: string;\n public TimeZone: number;\n public LanguageId: string;\n public AddressFormatLines: Entities.AddressFormattingInfo[];\n public AddressFormatId: string;\n public AddressFormatName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ShortName = \n odataObject.ShortName;\n \n this.LongName = \n odataObject.LongName;\n \n this.ISOCode = \n odataObject.ISOCode;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AddressFormatLines = undefined;\n if (odataObject.AddressFormatLines) {\n this.AddressFormatLines = [];\n for (var i = 0; i < odataObject.AddressFormatLines.length; i++) {\n if (odataObject.AddressFormatLines[i] != null) {\n if (odataObject.AddressFormatLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AddressFormatLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AddressFormatLines[i] = new entityDictionary[className](odataObject.AddressFormatLines[i])\n }\n } else {\n this.AddressFormatLines[i] = new AddressFormattingInfoClass(odataObject.AddressFormatLines[i]);\n }\n } else {\n this.AddressFormatLines[i] = undefined;\n }\n }\n }\n \n this.AddressFormatId = \n odataObject.AddressFormatId;\n \n this.AddressFormatName = \n odataObject.AddressFormatName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CountryRegionInfoClass'] = CountryRegionInfoClass;\n \n /**\n * CreditMemo entity class.\n */\n export class CreditMemoClass implements Entities.CreditMemo {\n public Id: string;\n public Balance: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreditMemoClass'] = CreditMemoClass;\n \n /**\n * Currency entity class.\n */\n export class CurrencyClass implements Entities.Currency {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public RoundOffPrice: number;\n public RoundOffSales: number;\n public RoundOffTypePrice: number;\n public RoundOffTypeSales: number;\n public NumberOfDecimals: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.RoundOffPrice = \n (odataObject.RoundOffPrice != null) ? parseFloat(odataObject.RoundOffPrice) : undefined;\n \n this.RoundOffSales = \n (odataObject.RoundOffSales != null) ? parseFloat(odataObject.RoundOffSales) : undefined;\n \n this.RoundOffTypePrice = \n odataObject.RoundOffTypePrice;\n \n this.RoundOffTypeSales = \n odataObject.RoundOffTypeSales;\n \n this.NumberOfDecimals = \n odataObject.NumberOfDecimals;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyClass'] = CurrencyClass;\n \n /**\n * CurrencyAmount entity class.\n */\n export class CurrencyAmountClass implements Entities.CurrencyAmount {\n public CurrencyCode: string;\n public CurrencySymbol: string;\n public ConvertedAmount: number;\n public RoundedConvertedAmount: number;\n public ExchangeRate: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CurrencySymbol = \n odataObject.CurrencySymbol;\n \n this.ConvertedAmount = \n (odataObject.ConvertedAmount != null) ? parseFloat(odataObject.ConvertedAmount) : undefined;\n \n this.RoundedConvertedAmount = \n (odataObject.RoundedConvertedAmount != null) ? parseFloat(odataObject.RoundedConvertedAmount) : undefined;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyAmountClass'] = CurrencyAmountClass;\n \n /**\n * ScaleUnitConfiguration entity class.\n */\n export class ScaleUnitConfigurationClass implements Entities.ScaleUnitConfiguration {\n public Id: string;\n public Name: string;\n public Region: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Region = \n odataObject.Region;\n \n }\n }\n entityDictionary['ScaleUnitConfigurationClass'] = ScaleUnitConfigurationClass;\n \n /**\n * EnvironmentConfiguration entity class.\n */\n export class EnvironmentConfigurationClass implements Entities.EnvironmentConfiguration {\n public EnvironmentId: string;\n public EnvironmentName: string;\n public TenantId: string;\n public ClientAppInsightsInstrumentationKey: string;\n public HardwareStationAppInsightsInstrumentationKey: string;\n public WindowsPhonePosAppInsightsInstrumentationKey: string;\n public BaseVersion: string;\n public ScaleUnit: Entities.ScaleUnitConfiguration;\n public AADAuthority: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.EnvironmentName = \n odataObject.EnvironmentName;\n \n this.TenantId = \n odataObject.TenantId;\n \n this.ClientAppInsightsInstrumentationKey = \n odataObject.ClientAppInsightsInstrumentationKey;\n \n this.HardwareStationAppInsightsInstrumentationKey = \n odataObject.HardwareStationAppInsightsInstrumentationKey;\n \n this.WindowsPhonePosAppInsightsInstrumentationKey = \n odataObject.WindowsPhonePosAppInsightsInstrumentationKey;\n \n this.BaseVersion = \n odataObject.BaseVersion;\n \n if (odataObject.ScaleUnit == null) {\n this.ScaleUnit = undefined;\n } else if (odataObject.ScaleUnit['@odata.type'] == null) {\n this.ScaleUnit = new ScaleUnitConfigurationClass(odataObject.ScaleUnit);\n } else {\n var className: string = odataObject.ScaleUnit['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ScaleUnit = new entityDictionary[className](odataObject.ScaleUnit)\n }\n }\n\n \n this.AADAuthority = \n odataObject.AADAuthority;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['EnvironmentConfigurationClass'] = EnvironmentConfigurationClass;\n \n /**\n * DeviceConfiguration entity class.\n */\n export class DeviceConfigurationClass implements Entities.DeviceConfiguration {\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowItemsAggregation: boolean;\n public AggregateItemsForPrinting: boolean;\n public AggregatePayments: boolean;\n public AlwaysExpandTransactionScreenLineDetails: boolean;\n public AuditEnabled: boolean;\n public DiscountAtTotal: string;\n public ProductDiscount: string;\n public ManuallyCalculateComplexDiscounts: boolean;\n public DisplaySecondaryTotalCurrency: boolean;\n public EndOfTransaction: string;\n public ItemNotOnFile: string;\n public LimitStaffListToStore: boolean;\n public LineItemTaxChange: string;\n public MarkUp: string;\n public MaximumPrice: number;\n public MaximumQuantity: number;\n public MinimumPasswordLength: number;\n public MustKeyInPriceIfZero: boolean;\n public NfcEContingencyModeEnabled: string;\n public NfcEVoided: string;\n public FunctionalityProfileDescription: string;\n public OverridePrice: string;\n public PrintVoidTransactionReceipts: boolean;\n public PrintReceiptsOnCardDecline: boolean;\n public PrintXZReportsOnTerminal: boolean;\n public PrintTenderDetailsOnXReport: boolean;\n public ProfileId: string;\n public RefundSale: string;\n public ReturnProduct: string;\n public SalesPerson: string;\n public SecondaryTotalCurrency: string;\n public SelectHardwareStationOnTendering: boolean;\n public SerialNumber: string;\n public ShowStaffListAtLogOn: boolean;\n public StaffBarcodeLogOn: boolean;\n public StaffBarcodeLogOnRequiresPassword: boolean;\n public StaffCardLogOn: boolean;\n public StaffCardLogOnRequiresPassword: boolean;\n public StartOfTransaction: string;\n public EnableTimeRegistration: boolean;\n public TenderDeclaration: string;\n public TransactionTaxChange: string;\n public VoidItem: string;\n public VoidPayment: string;\n public SalesModeDefaultsAsCustomerOrder: boolean;\n public CreateOfflineCustomerOrders: boolean;\n public CreateAsyncCustomers: boolean;\n public EnableAxCustomerSearch: boolean;\n public VoidTransaction: string;\n public CultureName: string;\n public SystemLegalTermsUrl: string;\n public SystemPrivacyStatementUrl: string;\n public HideTrainingMode: boolean;\n public StorePhone: string;\n public StatementMethod: string;\n public StoreNumber: string;\n public ChannelId: number;\n public StoreTaxGroup: string;\n public TaxIdNumber: string;\n public TaxOverrideGroup: number;\n public TenderDeclarationCalculation: number;\n public UseCustomerBasedTax: boolean;\n public UseDestinationBasedTax: boolean;\n public AutoLogOffTimeoutInMinutes: number;\n public AutoExitMethodValue: number;\n public CustomerDisplayText1: string;\n public CustomerDisplayText2: string;\n public EFTStoreId: number;\n public EFTTerminalId: string;\n public ExitAfterEachTransaction: boolean;\n public HardwareProfile: string;\n public Placement: string;\n public TerminalDescription: string;\n public OpenDrawer: string;\n public OpenDrawerAtLogOnLogOff: boolean;\n public PrintTaxRefundChecks: boolean;\n public StandAlone: boolean;\n public TerminalId: string;\n public TerminalStatement: boolean;\n public VisualProfile: string;\n public Currency: string;\n public InventLocationId: string;\n public IncludeKitComponents: boolean;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontScheme: number;\n public ShowAppBarLabel: boolean;\n public LogOnBackgroundPictureAsBase64: string;\n public LogOnBackgroundPicturePortraitAsBase64: string;\n public BackgroundPictureAsBase64: string;\n public LogonBackgroundPictureId: number;\n public LogonBackgroundPictureIdCompact: number;\n public LogonBackgroundPictureIdPortrait: number;\n public LogonBackgroundPictureIdCompactPortrait: number;\n public BackgroundPictureId: number;\n public RequireAmountDeclaration: boolean;\n public DecimalNotRequiredForMinorCurrencyUnit: boolean;\n public MaxTransactionSearchResults: number;\n public OfflineProfileId: number;\n public NewOfflineDatabaseCheckInterval: number;\n public OfflineTransactionUploadInterval: number;\n public ReconnectToOnlineInterval: number;\n public SwitchToOfflineTimeout: number;\n public OfflineSwitchApiPerformanceThresholdInSeconds: number;\n public ReconnectFromPerformanceInducedOfflineIntervalInSeconds: number;\n public RetentionDays: number;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public CreateRecording: boolean;\n public PlaybackRecording: boolean;\n public ShouldUseDefaultCommisionSalesGroup: boolean;\n public AskForSalesRepresentative: number;\n public IsSalesRepRequired: boolean;\n public ProhibitMixingSalesAndReturns: boolean;\n public ApplyDiscountsToPriceKeyedIn: boolean;\n public ApplyDiscountsToPriceOverrides: boolean;\n public IsProductSuggestionsEnabled: boolean;\n public ProductSearchType: string;\n public TerminalRecId: number;\n public DeviceRecId: number;\n public DenominationsToDisplayValue: number;\n public PromptOnSeamlessOffline: boolean;\n public RetryCountToOffline: number;\n public EnableAdvancedOfflineSwitching: boolean;\n public SystemHealthCheckInterval: number;\n public RejectOrderFulfillment: string;\n public ManuallyCalculateTaxes: boolean;\n public EmployeeLogonTypeValue: number;\n public StartAmountCalculation: number;\n public BankDropCalculation: number;\n public GenerateLoyaltyCardNumber: boolean;\n public FiscalRegistrationProcessId: string;\n public IncludeSalesOrderInvoices: boolean;\n public IncludeFreeTextInvoices: boolean;\n public IncludeProjectInvoices: boolean;\n public IncludeCreditNoteInvoices: boolean;\n public DisplayTaxExemptInLineDetails: boolean;\n public TaxExemptReceiptIndicator: string;\n public ManuallyCalculateCharges: boolean;\n public ChargeOverrideReasonCode: string;\n public ShiftReconcilation: string;\n public CustomerAccountFloorLimit: number;\n public VoidSuspendedTransactionsOnCloseShift: boolean;\n public ShowDateTime: boolean;\n public UseAdvancedCashManagement: boolean;\n public DefaultCustomerSearchModeValue: number;\n public AllowManualOfflineBeforeSignIn: boolean;\n public UseFinancialReconciliationInStore: boolean;\n public RequirePaymentForFulfillmentValue: number;\n public CardNotPresentProcessingConfigurationValue: number;\n public EnableQuickPayShortcuts: boolean;\n public ChangeDueBehaviorValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowItemsAggregation = \n odataObject.AllowItemsAggregation;\n \n this.AggregateItemsForPrinting = \n odataObject.AggregateItemsForPrinting;\n \n this.AggregatePayments = \n odataObject.AggregatePayments;\n \n this.AlwaysExpandTransactionScreenLineDetails = \n odataObject.AlwaysExpandTransactionScreenLineDetails;\n \n this.AuditEnabled = \n odataObject.AuditEnabled;\n \n this.DiscountAtTotal = \n odataObject.DiscountAtTotal;\n \n this.ProductDiscount = \n odataObject.ProductDiscount;\n \n this.ManuallyCalculateComplexDiscounts = \n odataObject.ManuallyCalculateComplexDiscounts;\n \n this.DisplaySecondaryTotalCurrency = \n odataObject.DisplaySecondaryTotalCurrency;\n \n this.EndOfTransaction = \n odataObject.EndOfTransaction;\n \n this.ItemNotOnFile = \n odataObject.ItemNotOnFile;\n \n this.LimitStaffListToStore = \n odataObject.LimitStaffListToStore;\n \n this.LineItemTaxChange = \n odataObject.LineItemTaxChange;\n \n this.MarkUp = \n odataObject.MarkUp;\n \n this.MaximumPrice = \n (odataObject.MaximumPrice != null) ? parseFloat(odataObject.MaximumPrice) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumPasswordLength = \n odataObject.MinimumPasswordLength;\n \n this.MustKeyInPriceIfZero = \n odataObject.MustKeyInPriceIfZero;\n \n this.NfcEContingencyModeEnabled = \n odataObject.NfcEContingencyModeEnabled;\n \n this.NfcEVoided = \n odataObject.NfcEVoided;\n \n this.FunctionalityProfileDescription = \n odataObject.FunctionalityProfileDescription;\n \n this.OverridePrice = \n odataObject.OverridePrice;\n \n this.PrintVoidTransactionReceipts = \n odataObject.PrintVoidTransactionReceipts;\n \n this.PrintReceiptsOnCardDecline = \n odataObject.PrintReceiptsOnCardDecline;\n \n this.PrintXZReportsOnTerminal = \n odataObject.PrintXZReportsOnTerminal;\n \n this.PrintTenderDetailsOnXReport = \n odataObject.PrintTenderDetailsOnXReport;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RefundSale = \n odataObject.RefundSale;\n \n this.ReturnProduct = \n odataObject.ReturnProduct;\n \n this.SalesPerson = \n odataObject.SalesPerson;\n \n this.SecondaryTotalCurrency = \n odataObject.SecondaryTotalCurrency;\n \n this.SelectHardwareStationOnTendering = \n odataObject.SelectHardwareStationOnTendering;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ShowStaffListAtLogOn = \n odataObject.ShowStaffListAtLogOn;\n \n this.StaffBarcodeLogOn = \n odataObject.StaffBarcodeLogOn;\n \n this.StaffBarcodeLogOnRequiresPassword = \n odataObject.StaffBarcodeLogOnRequiresPassword;\n \n this.StaffCardLogOn = \n odataObject.StaffCardLogOn;\n \n this.StaffCardLogOnRequiresPassword = \n odataObject.StaffCardLogOnRequiresPassword;\n \n this.StartOfTransaction = \n odataObject.StartOfTransaction;\n \n this.EnableTimeRegistration = \n odataObject.EnableTimeRegistration;\n \n this.TenderDeclaration = \n odataObject.TenderDeclaration;\n \n this.TransactionTaxChange = \n odataObject.TransactionTaxChange;\n \n this.VoidItem = \n odataObject.VoidItem;\n \n this.VoidPayment = \n odataObject.VoidPayment;\n \n this.SalesModeDefaultsAsCustomerOrder = \n odataObject.SalesModeDefaultsAsCustomerOrder;\n \n this.CreateOfflineCustomerOrders = \n odataObject.CreateOfflineCustomerOrders;\n \n this.CreateAsyncCustomers = \n odataObject.CreateAsyncCustomers;\n \n this.EnableAxCustomerSearch = \n odataObject.EnableAxCustomerSearch;\n \n this.VoidTransaction = \n odataObject.VoidTransaction;\n \n this.CultureName = \n odataObject.CultureName;\n \n this.SystemLegalTermsUrl = \n odataObject.SystemLegalTermsUrl;\n \n this.SystemPrivacyStatementUrl = \n odataObject.SystemPrivacyStatementUrl;\n \n this.HideTrainingMode = \n odataObject.HideTrainingMode;\n \n this.StorePhone = \n odataObject.StorePhone;\n \n this.StatementMethod = \n odataObject.StatementMethod;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreTaxGroup = \n odataObject.StoreTaxGroup;\n \n this.TaxIdNumber = \n odataObject.TaxIdNumber;\n \n this.TaxOverrideGroup = \n (odataObject.TaxOverrideGroup != null) ? parseInt(odataObject.TaxOverrideGroup, 10) : undefined;\n \n this.TenderDeclarationCalculation = \n odataObject.TenderDeclarationCalculation;\n \n this.UseCustomerBasedTax = \n odataObject.UseCustomerBasedTax;\n \n this.UseDestinationBasedTax = \n odataObject.UseDestinationBasedTax;\n \n this.AutoLogOffTimeoutInMinutes = \n odataObject.AutoLogOffTimeoutInMinutes;\n \n this.AutoExitMethodValue = \n odataObject.AutoExitMethodValue;\n \n this.CustomerDisplayText1 = \n odataObject.CustomerDisplayText1;\n \n this.CustomerDisplayText2 = \n odataObject.CustomerDisplayText2;\n \n this.EFTStoreId = \n (odataObject.EFTStoreId != null) ? parseInt(odataObject.EFTStoreId, 10) : undefined;\n \n this.EFTTerminalId = \n odataObject.EFTTerminalId;\n \n this.ExitAfterEachTransaction = \n odataObject.ExitAfterEachTransaction;\n \n this.HardwareProfile = \n odataObject.HardwareProfile;\n \n this.Placement = \n odataObject.Placement;\n \n this.TerminalDescription = \n odataObject.TerminalDescription;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.OpenDrawerAtLogOnLogOff = \n odataObject.OpenDrawerAtLogOnLogOff;\n \n this.PrintTaxRefundChecks = \n odataObject.PrintTaxRefundChecks;\n \n this.StandAlone = \n odataObject.StandAlone;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TerminalStatement = \n odataObject.TerminalStatement;\n \n this.VisualProfile = \n odataObject.VisualProfile;\n \n this.Currency = \n odataObject.Currency;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.IncludeKitComponents = \n odataObject.IncludeKitComponents;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontScheme = \n odataObject.FontScheme;\n \n this.ShowAppBarLabel = \n odataObject.ShowAppBarLabel;\n \n this.LogOnBackgroundPictureAsBase64 = \n odataObject.LogOnBackgroundPictureAsBase64;\n \n this.LogOnBackgroundPicturePortraitAsBase64 = \n odataObject.LogOnBackgroundPicturePortraitAsBase64;\n \n this.BackgroundPictureAsBase64 = \n odataObject.BackgroundPictureAsBase64;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompact = \n (odataObject.LogonBackgroundPictureIdCompact != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompact, 10) : undefined;\n \n this.LogonBackgroundPictureIdPortrait = \n (odataObject.LogonBackgroundPictureIdPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdPortrait, 10) : undefined;\n \n this.LogonBackgroundPictureIdCompactPortrait = \n (odataObject.LogonBackgroundPictureIdCompactPortrait != null) ? parseInt(odataObject.LogonBackgroundPictureIdCompactPortrait, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.RequireAmountDeclaration = \n odataObject.RequireAmountDeclaration;\n \n this.DecimalNotRequiredForMinorCurrencyUnit = \n odataObject.DecimalNotRequiredForMinorCurrencyUnit;\n \n this.MaxTransactionSearchResults = \n odataObject.MaxTransactionSearchResults;\n \n this.OfflineProfileId = \n (odataObject.OfflineProfileId != null) ? parseInt(odataObject.OfflineProfileId, 10) : undefined;\n \n this.NewOfflineDatabaseCheckInterval = \n odataObject.NewOfflineDatabaseCheckInterval;\n \n this.OfflineTransactionUploadInterval = \n odataObject.OfflineTransactionUploadInterval;\n \n this.ReconnectToOnlineInterval = \n odataObject.ReconnectToOnlineInterval;\n \n this.SwitchToOfflineTimeout = \n odataObject.SwitchToOfflineTimeout;\n \n this.OfflineSwitchApiPerformanceThresholdInSeconds = \n odataObject.OfflineSwitchApiPerformanceThresholdInSeconds;\n \n this.ReconnectFromPerformanceInducedOfflineIntervalInSeconds = \n odataObject.ReconnectFromPerformanceInducedOfflineIntervalInSeconds;\n \n this.RetentionDays = \n odataObject.RetentionDays;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.CreateRecording = \n odataObject.CreateRecording;\n \n this.PlaybackRecording = \n odataObject.PlaybackRecording;\n \n this.ShouldUseDefaultCommisionSalesGroup = \n odataObject.ShouldUseDefaultCommisionSalesGroup;\n \n this.AskForSalesRepresentative = \n odataObject.AskForSalesRepresentative;\n \n this.IsSalesRepRequired = \n odataObject.IsSalesRepRequired;\n \n this.ProhibitMixingSalesAndReturns = \n odataObject.ProhibitMixingSalesAndReturns;\n \n this.ApplyDiscountsToPriceKeyedIn = \n odataObject.ApplyDiscountsToPriceKeyedIn;\n \n this.ApplyDiscountsToPriceOverrides = \n odataObject.ApplyDiscountsToPriceOverrides;\n \n this.IsProductSuggestionsEnabled = \n odataObject.IsProductSuggestionsEnabled;\n \n this.ProductSearchType = \n odataObject.ProductSearchType;\n \n this.TerminalRecId = \n (odataObject.TerminalRecId != null) ? parseInt(odataObject.TerminalRecId, 10) : undefined;\n \n this.DeviceRecId = \n (odataObject.DeviceRecId != null) ? parseInt(odataObject.DeviceRecId, 10) : undefined;\n \n this.DenominationsToDisplayValue = \n odataObject.DenominationsToDisplayValue;\n \n this.PromptOnSeamlessOffline = \n odataObject.PromptOnSeamlessOffline;\n \n this.RetryCountToOffline = \n odataObject.RetryCountToOffline;\n \n this.EnableAdvancedOfflineSwitching = \n odataObject.EnableAdvancedOfflineSwitching;\n \n this.SystemHealthCheckInterval = \n odataObject.SystemHealthCheckInterval;\n \n this.RejectOrderFulfillment = \n odataObject.RejectOrderFulfillment;\n \n this.ManuallyCalculateTaxes = \n odataObject.ManuallyCalculateTaxes;\n \n this.EmployeeLogonTypeValue = \n odataObject.EmployeeLogonTypeValue;\n \n this.StartAmountCalculation = \n odataObject.StartAmountCalculation;\n \n this.BankDropCalculation = \n odataObject.BankDropCalculation;\n \n this.GenerateLoyaltyCardNumber = \n odataObject.GenerateLoyaltyCardNumber;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IncludeSalesOrderInvoices = \n odataObject.IncludeSalesOrderInvoices;\n \n this.IncludeFreeTextInvoices = \n odataObject.IncludeFreeTextInvoices;\n \n this.IncludeProjectInvoices = \n odataObject.IncludeProjectInvoices;\n \n this.IncludeCreditNoteInvoices = \n odataObject.IncludeCreditNoteInvoices;\n \n this.DisplayTaxExemptInLineDetails = \n odataObject.DisplayTaxExemptInLineDetails;\n \n this.TaxExemptReceiptIndicator = \n odataObject.TaxExemptReceiptIndicator;\n \n this.ManuallyCalculateCharges = \n odataObject.ManuallyCalculateCharges;\n \n this.ChargeOverrideReasonCode = \n odataObject.ChargeOverrideReasonCode;\n \n this.ShiftReconcilation = \n odataObject.ShiftReconcilation;\n \n this.CustomerAccountFloorLimit = \n (odataObject.CustomerAccountFloorLimit != null) ? parseFloat(odataObject.CustomerAccountFloorLimit) : undefined;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.ShowDateTime = \n odataObject.ShowDateTime;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.DefaultCustomerSearchModeValue = \n odataObject.DefaultCustomerSearchModeValue;\n \n this.AllowManualOfflineBeforeSignIn = \n odataObject.AllowManualOfflineBeforeSignIn;\n \n this.UseFinancialReconciliationInStore = \n odataObject.UseFinancialReconciliationInStore;\n \n this.RequirePaymentForFulfillmentValue = \n odataObject.RequirePaymentForFulfillmentValue;\n \n this.CardNotPresentProcessingConfigurationValue = \n odataObject.CardNotPresentProcessingConfigurationValue;\n \n this.EnableQuickPayShortcuts = \n odataObject.EnableQuickPayShortcuts;\n \n this.ChangeDueBehaviorValue = \n odataObject.ChangeDueBehaviorValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceConfigurationClass'] = DeviceConfigurationClass;\n \n /**\n * VisualProfile entity class.\n */\n export class VisualProfileClass implements Entities.VisualProfile {\n public ChannelId: number;\n public TerminalId: string;\n public AccentColor: number;\n public HeaderColor: number;\n public Theme: string;\n public FontSchemeTypeValue: number;\n public IsAppBarLabelVisible: boolean;\n public IsDateTimeVisible: boolean;\n public LogOnLayoutTypeValue: number;\n public LogOnKeyboardTypeValue: number;\n public LogonBackgroundPictureId: number;\n public CompactLogonBackgroundPictureId: number;\n public PortraitLogonBackgroundPictureId: number;\n public CompactPortraitLogonBackgroundPictureId: number;\n public BackgroundPictureId: number;\n public LogOnLogoPictureId: number;\n public IsProductIdVisibleOnCartLine: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.AccentColor = \n odataObject.AccentColor;\n \n this.HeaderColor = \n odataObject.HeaderColor;\n \n this.Theme = \n odataObject.Theme;\n \n this.FontSchemeTypeValue = \n odataObject.FontSchemeTypeValue;\n \n this.IsAppBarLabelVisible = \n odataObject.IsAppBarLabelVisible;\n \n this.IsDateTimeVisible = \n odataObject.IsDateTimeVisible;\n \n this.LogOnLayoutTypeValue = \n odataObject.LogOnLayoutTypeValue;\n \n this.LogOnKeyboardTypeValue = \n odataObject.LogOnKeyboardTypeValue;\n \n this.LogonBackgroundPictureId = \n (odataObject.LogonBackgroundPictureId != null) ? parseInt(odataObject.LogonBackgroundPictureId, 10) : undefined;\n \n this.CompactLogonBackgroundPictureId = \n (odataObject.CompactLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactLogonBackgroundPictureId, 10) : undefined;\n \n this.PortraitLogonBackgroundPictureId = \n (odataObject.PortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.PortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.CompactPortraitLogonBackgroundPictureId = \n (odataObject.CompactPortraitLogonBackgroundPictureId != null) ? parseInt(odataObject.CompactPortraitLogonBackgroundPictureId, 10) : undefined;\n \n this.BackgroundPictureId = \n (odataObject.BackgroundPictureId != null) ? parseInt(odataObject.BackgroundPictureId, 10) : undefined;\n \n this.LogOnLogoPictureId = \n (odataObject.LogOnLogoPictureId != null) ? parseInt(odataObject.LogOnLogoPictureId, 10) : undefined;\n \n this.IsProductIdVisibleOnCartLine = \n odataObject.IsProductIdVisibleOnCartLine;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['VisualProfileClass'] = VisualProfileClass;\n \n /**\n * OperationalInsightsConfiguration entity class.\n */\n export class OperationalInsightsConfigurationClass implements Entities.OperationalInsightsConfiguration {\n public InstrumentationKey: string;\n public EnvironmentId: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InstrumentationKey = \n odataObject.InstrumentationKey;\n \n this.EnvironmentId = \n odataObject.EnvironmentId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationalInsightsConfigurationClass'] = OperationalInsightsConfigurationClass;\n \n /**\n * Device entity class.\n */\n export class DeviceClass implements Entities.Device {\n public ChannelId: number;\n public RecordId: number;\n public DeviceNumber: string;\n public DeviceId: string;\n public Description: string;\n public DeviceType: number;\n public TerminalRecordId: number;\n public TerminalId: string;\n public ChannelName: string;\n public UseInMemoryDeviceDataStorage: boolean;\n public AllowMassActivation: boolean;\n public TokenIssueTime: Date;\n public ActivationStatusValue: number;\n public Token: string;\n public CountryRegionIsoCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.DeviceId = \n odataObject.DeviceId;\n \n this.Description = \n odataObject.Description;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.TerminalRecordId = \n (odataObject.TerminalRecordId != null) ? parseInt(odataObject.TerminalRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ChannelName = \n odataObject.ChannelName;\n \n this.UseInMemoryDeviceDataStorage = \n odataObject.UseInMemoryDeviceDataStorage;\n \n this.AllowMassActivation = \n odataObject.AllowMassActivation;\n \n this.TokenIssueTime = \n (odataObject.TokenIssueTime instanceof Date) ? odataObject.TokenIssueTime\n : (odataObject.TokenIssueTime != null) ? jsonLightReadStringPropertyValue(odataObject.TokenIssueTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceClass'] = DeviceClass;\n \n /**\n * DiscountCode entity class.\n */\n export class DiscountCodeClass implements Entities.DiscountCode {\n public RecordId: number;\n public Barcode: string;\n public Code: string;\n public ConcurrencyMode: number;\n public Description: string;\n public Disclaimer: string;\n public IsDiscountCodeRequired: boolean;\n public Name: string;\n public OfferId: string;\n public IsEnabled: boolean;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.Code = \n odataObject.Code;\n \n this.ConcurrencyMode = \n odataObject.ConcurrencyMode;\n \n this.Description = \n odataObject.Description;\n \n this.Disclaimer = \n odataObject.Disclaimer;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.Name = \n odataObject.Name;\n \n this.OfferId = \n odataObject.OfferId;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountCodeClass'] = DiscountCodeClass;\n \n /**\n * DistrictInfo entity class.\n */\n export class DistrictInfoClass implements Entities.DistrictInfo {\n public Name: string;\n public Description: string;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DistrictInfoClass'] = DistrictInfoClass;\n \n /**\n * HardwareProfile entity class.\n */\n export class HardwareProfileClass implements Entities.HardwareProfile {\n public RecordId: number;\n public LineDisplayDelayForLinkedItems: number;\n public LineDisplayBalanceText: string;\n public LineDisplayBinaryConversion: boolean;\n public LineDisplayCharacterSet: number;\n public LineDisplayClosedLine1: string;\n public LineDisplayClosedLine2: string;\n public LineDisplayDeviceDescription: string;\n public LineDisplayDeviceTypeValue: number;\n public LineDisplayDeviceName: string;\n public LineDisplayDisplayLinkedItem: boolean;\n public LineDisplayDisplayTerminalClosed: boolean;\n public LineDisplayTotalText: string;\n public DualDisplayActive: boolean;\n public DualDisplayWebBrowserUrl: string;\n public DualDisplayImageRotatorInterval: number;\n public DualDisplayImageRotatorPath: string;\n public DualDisplayReceiptWidthPercentage: number;\n public DualDisplayDisplayType: string;\n public EftTypeId: number;\n public EftCompanyId: string;\n public EftConfiguration: number;\n public EftPaymentConnectorName: string;\n public EftData: string;\n public EftDescription: string;\n public EftMerchantId: string;\n public EftPassword: string;\n public EftServerName: string;\n public EftServerPort: string;\n public EftUserId: string;\n public EftTestMode: boolean;\n public MsrEndTrack1: string;\n public MsrEndTrack2: string;\n public FiscalPrinterManagementReportPAFIdentification: string;\n public FiscalPrinterManagementReportConfigParameter: string;\n public FiscalPrinterManagementReportTenderType: string;\n public FiscalPrinterManagementReportGiftCard: string;\n public FiscalRegisterDeviceTypeValue: number;\n public FiscalRegisterConfiguration: string;\n public FiscalRegisterDeviceDescription: string;\n public FiscalRegisterDeviceName: string;\n public KeyboardMappingId: string;\n public KeyLockDeviceTypeValue: number;\n public KeyLockDeviceDescription: string;\n public KeyLockDeviceName: string;\n public MsrDeviceTypeValue: number;\n public MsrDeviceDescription: string;\n public MsrDeviceName: string;\n public MsrMake: string;\n public MsrModel: string;\n public MsrSeparator: string;\n public MsrStartTrack: string;\n public PinPadDeviceTypeValue: number;\n public PinPadDeviceName: string;\n public PinPadMake: string;\n public PinPadModel: string;\n public PinPadDeviceDescription: string;\n public ProfileDescription: string;\n public ProfileId: string;\n public RFIDDeviceTypeValue: number;\n public RFIDDeviceName: string;\n public RFIDDeviceDescription: string;\n public ScaleDeviceTypeValue: number;\n public ScaleDeviceName: string;\n public ScaleDeviceDescription: string;\n public ScaleManualInputAllowed: boolean;\n public ScaleTimeoutInSeconds: number;\n public SignatureCaptureDeviceTypeValue: number;\n public SignatureCaptureDeviceName: string;\n public SignatureCaptureMake: string;\n public SignatureCaptureModel: string;\n public SignatureCaptureDeviceDescription: string;\n public SignatureCaptureFormName: string;\n public Printers: Entities.HardwareProfilePrinter[];\n public Scanners: Entities.HardwareProfileScanner[];\n public FiscalIntegrationTechnicalProfiles: Entities.FiscalIntegrationTechnicalProfile[];\n public CashDrawers: Entities.HardwareProfileCashDrawer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineDisplayDelayForLinkedItems = \n odataObject.LineDisplayDelayForLinkedItems;\n \n this.LineDisplayBalanceText = \n odataObject.LineDisplayBalanceText;\n \n this.LineDisplayBinaryConversion = \n odataObject.LineDisplayBinaryConversion;\n \n this.LineDisplayCharacterSet = \n odataObject.LineDisplayCharacterSet;\n \n this.LineDisplayClosedLine1 = \n odataObject.LineDisplayClosedLine1;\n \n this.LineDisplayClosedLine2 = \n odataObject.LineDisplayClosedLine2;\n \n this.LineDisplayDeviceDescription = \n odataObject.LineDisplayDeviceDescription;\n \n this.LineDisplayDeviceTypeValue = \n odataObject.LineDisplayDeviceTypeValue;\n \n this.LineDisplayDeviceName = \n odataObject.LineDisplayDeviceName;\n \n this.LineDisplayDisplayLinkedItem = \n odataObject.LineDisplayDisplayLinkedItem;\n \n this.LineDisplayDisplayTerminalClosed = \n odataObject.LineDisplayDisplayTerminalClosed;\n \n this.LineDisplayTotalText = \n odataObject.LineDisplayTotalText;\n \n this.DualDisplayActive = \n odataObject.DualDisplayActive;\n \n this.DualDisplayWebBrowserUrl = \n odataObject.DualDisplayWebBrowserUrl;\n \n this.DualDisplayImageRotatorInterval = \n odataObject.DualDisplayImageRotatorInterval;\n \n this.DualDisplayImageRotatorPath = \n odataObject.DualDisplayImageRotatorPath;\n \n this.DualDisplayReceiptWidthPercentage = \n (odataObject.DualDisplayReceiptWidthPercentage != null) ? parseFloat(odataObject.DualDisplayReceiptWidthPercentage) : undefined;\n \n this.DualDisplayDisplayType = \n odataObject.DualDisplayDisplayType;\n \n this.EftTypeId = \n odataObject.EftTypeId;\n \n this.EftCompanyId = \n odataObject.EftCompanyId;\n \n this.EftConfiguration = \n odataObject.EftConfiguration;\n \n this.EftPaymentConnectorName = \n odataObject.EftPaymentConnectorName;\n \n this.EftData = \n odataObject.EftData;\n \n this.EftDescription = \n odataObject.EftDescription;\n \n this.EftMerchantId = \n odataObject.EftMerchantId;\n \n this.EftPassword = \n odataObject.EftPassword;\n \n this.EftServerName = \n odataObject.EftServerName;\n \n this.EftServerPort = \n odataObject.EftServerPort;\n \n this.EftUserId = \n odataObject.EftUserId;\n \n this.EftTestMode = \n odataObject.EftTestMode;\n \n this.MsrEndTrack1 = \n odataObject.MsrEndTrack1;\n \n this.MsrEndTrack2 = \n odataObject.MsrEndTrack2;\n \n this.FiscalPrinterManagementReportPAFIdentification = \n odataObject.FiscalPrinterManagementReportPAFIdentification;\n \n this.FiscalPrinterManagementReportConfigParameter = \n odataObject.FiscalPrinterManagementReportConfigParameter;\n \n this.FiscalPrinterManagementReportTenderType = \n odataObject.FiscalPrinterManagementReportTenderType;\n \n this.FiscalPrinterManagementReportGiftCard = \n odataObject.FiscalPrinterManagementReportGiftCard;\n \n this.FiscalRegisterDeviceTypeValue = \n odataObject.FiscalRegisterDeviceTypeValue;\n \n this.FiscalRegisterConfiguration = \n odataObject.FiscalRegisterConfiguration;\n \n this.FiscalRegisterDeviceDescription = \n odataObject.FiscalRegisterDeviceDescription;\n \n this.FiscalRegisterDeviceName = \n odataObject.FiscalRegisterDeviceName;\n \n this.KeyboardMappingId = \n odataObject.KeyboardMappingId;\n \n this.KeyLockDeviceTypeValue = \n odataObject.KeyLockDeviceTypeValue;\n \n this.KeyLockDeviceDescription = \n odataObject.KeyLockDeviceDescription;\n \n this.KeyLockDeviceName = \n odataObject.KeyLockDeviceName;\n \n this.MsrDeviceTypeValue = \n odataObject.MsrDeviceTypeValue;\n \n this.MsrDeviceDescription = \n odataObject.MsrDeviceDescription;\n \n this.MsrDeviceName = \n odataObject.MsrDeviceName;\n \n this.MsrMake = \n odataObject.MsrMake;\n \n this.MsrModel = \n odataObject.MsrModel;\n \n this.MsrSeparator = \n odataObject.MsrSeparator;\n \n this.MsrStartTrack = \n odataObject.MsrStartTrack;\n \n this.PinPadDeviceTypeValue = \n odataObject.PinPadDeviceTypeValue;\n \n this.PinPadDeviceName = \n odataObject.PinPadDeviceName;\n \n this.PinPadMake = \n odataObject.PinPadMake;\n \n this.PinPadModel = \n odataObject.PinPadModel;\n \n this.PinPadDeviceDescription = \n odataObject.PinPadDeviceDescription;\n \n this.ProfileDescription = \n odataObject.ProfileDescription;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.RFIDDeviceTypeValue = \n odataObject.RFIDDeviceTypeValue;\n \n this.RFIDDeviceName = \n odataObject.RFIDDeviceName;\n \n this.RFIDDeviceDescription = \n odataObject.RFIDDeviceDescription;\n \n this.ScaleDeviceTypeValue = \n odataObject.ScaleDeviceTypeValue;\n \n this.ScaleDeviceName = \n odataObject.ScaleDeviceName;\n \n this.ScaleDeviceDescription = \n odataObject.ScaleDeviceDescription;\n \n this.ScaleManualInputAllowed = \n odataObject.ScaleManualInputAllowed;\n \n this.ScaleTimeoutInSeconds = \n odataObject.ScaleTimeoutInSeconds;\n \n this.SignatureCaptureDeviceTypeValue = \n odataObject.SignatureCaptureDeviceTypeValue;\n \n this.SignatureCaptureDeviceName = \n odataObject.SignatureCaptureDeviceName;\n \n this.SignatureCaptureMake = \n odataObject.SignatureCaptureMake;\n \n this.SignatureCaptureModel = \n odataObject.SignatureCaptureModel;\n \n this.SignatureCaptureDeviceDescription = \n odataObject.SignatureCaptureDeviceDescription;\n \n this.SignatureCaptureFormName = \n odataObject.SignatureCaptureFormName;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new HardwareProfilePrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.Scanners = undefined;\n if (odataObject.Scanners) {\n this.Scanners = [];\n for (var i = 0; i < odataObject.Scanners.length; i++) {\n if (odataObject.Scanners[i] != null) {\n if (odataObject.Scanners[i]['@odata.type'] != null) {\n var className: string = odataObject.Scanners[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scanners[i] = new entityDictionary[className](odataObject.Scanners[i])\n }\n } else {\n this.Scanners[i] = new HardwareProfileScannerClass(odataObject.Scanners[i]);\n }\n } else {\n this.Scanners[i] = undefined;\n }\n }\n }\n \n this.FiscalIntegrationTechnicalProfiles = undefined;\n if (odataObject.FiscalIntegrationTechnicalProfiles) {\n this.FiscalIntegrationTechnicalProfiles = [];\n for (var i = 0; i < odataObject.FiscalIntegrationTechnicalProfiles.length; i++) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i] != null) {\n if (odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalIntegrationTechnicalProfiles[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalIntegrationTechnicalProfiles[i] = new entityDictionary[className](odataObject.FiscalIntegrationTechnicalProfiles[i])\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalIntegrationTechnicalProfiles[i]);\n }\n } else {\n this.FiscalIntegrationTechnicalProfiles[i] = undefined;\n }\n }\n }\n \n this.CashDrawers = undefined;\n if (odataObject.CashDrawers) {\n this.CashDrawers = [];\n for (var i = 0; i < odataObject.CashDrawers.length; i++) {\n if (odataObject.CashDrawers[i] != null) {\n if (odataObject.CashDrawers[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawers[i] = new entityDictionary[className](odataObject.CashDrawers[i])\n }\n } else {\n this.CashDrawers[i] = new HardwareProfileCashDrawerClass(odataObject.CashDrawers[i]);\n }\n } else {\n this.CashDrawers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileClass'] = HardwareProfileClass;\n \n /**\n * SupportedLanguage entity class.\n */\n export class SupportedLanguageClass implements Entities.SupportedLanguage {\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SupportedLanguageClass'] = SupportedLanguageClass;\n \n /**\n * PaymentCard entity class.\n */\n export class PaymentCardClass implements Entities.PaymentCard {\n public UseShippingAddress: boolean;\n public CardNumber: string;\n public CCID: string;\n public Track1: string;\n public Track2: string;\n public Track3: string;\n public VoiceAuthorizationCode: string;\n public EncryptedPin: string;\n public AdditionalSecurityData: string;\n public IsSwipe: boolean;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UseShippingAddress = \n odataObject.UseShippingAddress;\n \n this.CardNumber = \n odataObject.CardNumber;\n \n this.CCID = \n odataObject.CCID;\n \n this.Track1 = \n odataObject.Track1;\n \n this.Track2 = \n odataObject.Track2;\n \n this.Track3 = \n odataObject.Track3;\n \n this.VoiceAuthorizationCode = \n odataObject.VoiceAuthorizationCode;\n \n this.EncryptedPin = \n odataObject.EncryptedPin;\n \n this.AdditionalSecurityData = \n odataObject.AdditionalSecurityData;\n \n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentCardClass'] = PaymentCardClass;\n \n /**\n * CardPaymentAcceptSettings entity class.\n */\n export class CardPaymentAcceptSettingsClass implements Entities.CardPaymentAcceptSettings {\n public HostPageOrigin: string;\n public AdaptorPath: string;\n public CardTokenizationEnabled: boolean;\n public CardPaymentEnabled: boolean;\n public PaymentAmount: number;\n public HideBillingAddress: boolean;\n public TenderTypeId: string;\n public Locale: string;\n public RequireShippingAddress: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HostPageOrigin = \n odataObject.HostPageOrigin;\n \n this.AdaptorPath = \n odataObject.AdaptorPath;\n \n this.CardTokenizationEnabled = \n odataObject.CardTokenizationEnabled;\n \n this.CardPaymentEnabled = \n odataObject.CardPaymentEnabled;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.HideBillingAddress = \n odataObject.HideBillingAddress;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Locale = \n odataObject.Locale;\n \n this.RequireShippingAddress = \n odataObject.RequireShippingAddress;\n \n }\n }\n entityDictionary['CardPaymentAcceptSettingsClass'] = CardPaymentAcceptSettingsClass;\n \n /**\n * CardPaymentAcceptPoint entity class.\n */\n export class CardPaymentAcceptPointClass implements Entities.CardPaymentAcceptPoint {\n public AcceptPageUrl: string;\n public AcceptPageSubmitUrl: string;\n public MessageOrigin: string;\n public AcceptPageContent: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AcceptPageUrl = \n odataObject.AcceptPageUrl;\n \n this.AcceptPageSubmitUrl = \n odataObject.AcceptPageSubmitUrl;\n \n this.MessageOrigin = \n odataObject.MessageOrigin;\n \n this.AcceptPageContent = \n odataObject.AcceptPageContent;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['CardPaymentAcceptPointClass'] = CardPaymentAcceptPointClass;\n \n /**\n * CardPaymentAcceptResult entity class.\n */\n export class CardPaymentAcceptResultClass implements Entities.CardPaymentAcceptResult {\n public TenderLine: Entities.TenderLine;\n public TokenizedPaymentCard: Entities.TokenizedPaymentCard;\n public PaymentSdkErrors: Entities.PaymentError[];\n public AdditionalContext: string;\n public AccessCode: string;\n public Settings: Entities.RetrievePaymentResultSettings;\n public Email: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.TenderLine == null) {\n this.TenderLine = undefined;\n } else if (odataObject.TenderLine['@odata.type'] == null) {\n this.TenderLine = new TenderLineClass(odataObject.TenderLine);\n } else {\n var className: string = odataObject.TenderLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLine = new entityDictionary[className](odataObject.TenderLine)\n }\n }\n\n \n if (odataObject.TokenizedPaymentCard == null) {\n this.TokenizedPaymentCard = undefined;\n } else if (odataObject.TokenizedPaymentCard['@odata.type'] == null) {\n this.TokenizedPaymentCard = new TokenizedPaymentCardClass(odataObject.TokenizedPaymentCard);\n } else {\n var className: string = odataObject.TokenizedPaymentCard['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TokenizedPaymentCard = new entityDictionary[className](odataObject.TokenizedPaymentCard)\n }\n }\n\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.AccessCode = \n odataObject.AccessCode;\n \n if (odataObject.Settings == null) {\n this.Settings = undefined;\n } else if (odataObject.Settings['@odata.type'] == null) {\n this.Settings = new RetrievePaymentResultSettingsClass(odataObject.Settings);\n } else {\n var className: string = odataObject.Settings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Settings = new entityDictionary[className](odataObject.Settings)\n }\n }\n\n \n this.Email = \n odataObject.Email;\n \n }\n }\n entityDictionary['CardPaymentAcceptResultClass'] = CardPaymentAcceptResultClass;\n \n /**\n * ReasonCodeLine entity class.\n */\n export class ReasonCodeLineClass implements Entities.ReasonCodeLine {\n public LineId: string;\n public Amount: number;\n public Information: string;\n public InformationAmount: number;\n public InputTypeValue: number;\n public ItemTender: string;\n public LineNumber: number;\n public LineTypeValue: number;\n public ParentLineId: string;\n public ReasonCodeId: string;\n public StatementCode: string;\n public SubReasonCodeId: string;\n public SourceCode: string;\n public SourceCode2: string;\n public SourceCode3: string;\n public TransactionId: string;\n public CreatedDateTime: Date;\n public FiscalTransactionParentGuid: string;\n public IsChanged: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.Information = \n odataObject.Information;\n \n this.InformationAmount = \n (odataObject.InformationAmount != null) ? parseFloat(odataObject.InformationAmount) : undefined;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ItemTender = \n odataObject.ItemTender;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LineTypeValue = \n odataObject.LineTypeValue;\n \n this.ParentLineId = \n odataObject.ParentLineId;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.StatementCode = \n odataObject.StatementCode;\n \n this.SubReasonCodeId = \n odataObject.SubReasonCodeId;\n \n this.SourceCode = \n odataObject.SourceCode;\n \n this.SourceCode2 = \n odataObject.SourceCode2;\n \n this.SourceCode3 = \n odataObject.SourceCode3;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FiscalTransactionParentGuid = \n odataObject.FiscalTransactionParentGuid;\n \n this.IsChanged = \n odataObject.IsChanged;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeLineClass'] = ReasonCodeLineClass;\n \n /**\n * ReasonSubCode entity class.\n */\n export class ReasonSubCodeClass implements Entities.ReasonSubCode {\n public TriggerCode: string;\n public AmountPercent: number;\n public ReasonCodeId: string;\n public SubCodeId: string;\n public Description: string;\n public TriggerFunctionTypeValue: number;\n public ProductId: number;\n public PriceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TriggerCode = \n odataObject.TriggerCode;\n \n this.AmountPercent = \n (odataObject.AmountPercent != null) ? parseFloat(odataObject.AmountPercent) : undefined;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SubCodeId = \n odataObject.SubCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.TriggerFunctionTypeValue = \n odataObject.TriggerFunctionTypeValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.PriceTypeValue = \n odataObject.PriceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonSubCodeClass'] = ReasonSubCodeClass;\n \n /**\n * Receipt entity class.\n */\n export class ReceiptClass implements Entities.Receipt {\n public TransactionId: string;\n public Header: string;\n public Body: string;\n public Footer: string;\n public Width: number;\n public ReceiptId: string;\n public LayoutId: string;\n public ReceiptTitle: string;\n public ReceiptTypeValue: number;\n public ReceiptTypeStrValue: string;\n public Printers: Entities.Printer[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.Header = \n odataObject.Header;\n \n this.Body = \n odataObject.Body;\n \n this.Footer = \n odataObject.Footer;\n \n this.Width = \n odataObject.Width;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypeStrValue = \n odataObject.ReceiptTypeStrValue;\n \n this.Printers = undefined;\n if (odataObject.Printers) {\n this.Printers = [];\n for (var i = 0; i < odataObject.Printers.length; i++) {\n if (odataObject.Printers[i] != null) {\n if (odataObject.Printers[i]['@odata.type'] != null) {\n var className: string = odataObject.Printers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Printers[i] = new entityDictionary[className](odataObject.Printers[i])\n }\n } else {\n this.Printers[i] = new PrinterClass(odataObject.Printers[i]);\n }\n } else {\n this.Printers[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptClass'] = ReceiptClass;\n \n /**\n * ReceiptMask entity class.\n */\n export class ReceiptMaskClass implements Entities.ReceiptMask {\n public FunctionalityProfileId: string;\n public IsIndependent: boolean;\n public ReceiptTransactionTypeValue: number;\n public RecordId: number;\n public Mask: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileId = \n odataObject.FunctionalityProfileId;\n \n this.IsIndependent = \n odataObject.IsIndependent;\n \n this.ReceiptTransactionTypeValue = \n odataObject.ReceiptTransactionTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Mask = \n odataObject.Mask;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptMaskClass'] = ReceiptMaskClass;\n \n /**\n * SalesLine entity class.\n */\n export class SalesLineClass implements Entities.SalesLine {\n public StaffId: string;\n public LineId: string;\n public Description: string;\n public OriginLineId: string;\n public TaxOverrideCode: string;\n public IsPriceKeyedIn: boolean;\n public IsTaxOverideCodeTaxExempt: boolean;\n public ProductId: number;\n public Barcode: string;\n public BarcodeEmbeddedPrice: number;\n public PriceInBarcode: boolean;\n public EntryMethodTypeValue: number;\n public MasterProductId: number;\n public ListingId: number;\n public IsPriceOverridden: boolean;\n public OriginalPrice: number;\n public TotalAmount: number;\n public NetAmountWithoutTax: number;\n public DiscountAmount: number;\n public DiscountAmountWithoutTax: number;\n public NetPrice: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ShippingAddress: Entities.Address;\n public DeliveryMode: string;\n public Comment: string;\n public RequestedDeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public WarehouseLocation: string;\n public InventoryStatusId: string;\n public LicensePlate: string;\n public InventoryDimensionId: string;\n public ItemType: number;\n public ReservationId: string;\n public LineNumber: number;\n public ReturnQuantity: number;\n public QuantityRemained: number;\n public QuantityShipped: number;\n public LineVersion: number;\n public StatusValue: number;\n public SalesStatusValue: number;\n public ProductSourceValue: number;\n public IsGiftCardLine: boolean;\n public GiftCardId: string;\n public GiftCardCurrencyCode: string;\n public GiftCardOperationValue: number;\n public GiftCardTypeValue: number;\n public IsInvoiceLine: boolean;\n public InvoiceId: string;\n public InvoiceAmount: number;\n public IsInvoiceSettled: boolean;\n public InvoiceTypeValue: number;\n public InvoicedSalesId: string;\n public IsVoided: boolean;\n public IsPriceLocked: boolean;\n public ChargeLines: Entities.ChargeLine[];\n public BasePrice: number;\n public AgreementPrice: number;\n public AdjustedPrice: number;\n public IsWarrantyLine: boolean;\n public WarrantableTransactionId: string;\n public WarrantableSalesId: string;\n public WarrantableLineNumber: number;\n public WarrantableSerialNumber: string;\n public ReturnTransactionId: string;\n public ReturnLineNumber: number;\n public ReturnInventTransId: string;\n public ReturnStore: string;\n public ReturnTerminalId: string;\n public ReturnChannelId: number;\n public FulfillmentStoreId: string;\n public SalesDate: Date;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public SavedQuantity: number;\n public IsSavedDiscount: boolean;\n public RecordId: number;\n public SerialNumber: string;\n public BatchId: string;\n public DeliveryModeChargeAmount: number;\n public UnitOfMeasureSymbol: string;\n public CatalogId: number;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public LoyaltyDiscountAmount: number;\n public LoyaltyPercentageDiscount: number;\n public TenderDiscountAmount: number;\n public TenderDiscountPercentage: number;\n public GiftCardBalance: number;\n public IsCustomerAccountDeposit: boolean;\n public Blocked: boolean;\n public Found: boolean;\n public DateToActivateItem: Date;\n public LinePercentageDiscount: number;\n public PeriodicPercentageDiscount: number;\n public QuantityDiscounted: number;\n public UnitQuantity: number;\n public UnitOfMeasureConversion: Entities.UnitOfMeasureConversion;\n public DiscountLines: Entities.DiscountLine[];\n public PriceLines: Entities.PriceLine[];\n public AttainablePriceLines: Entities.PriceLine[];\n public PeriodicDiscountPossibilities: Entities.DiscountLine[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ReturnLabelProperties: Entities.ReturnLabelContent;\n public LineMultilineDiscOnItem: string;\n public RelatedDiscountedLineIds: string[];\n public LinkedParentLineId: string;\n public LineMultilineDiscOnItemValue: number;\n public WasChanged: boolean;\n public OriginalSalesOrderUnitOfMeasure: string;\n public InventOrderUnitOfMeasure: string;\n public TrackingId: string;\n public IsLoyaltyDiscountApplied: boolean;\n public CommissionSalesGroup: string;\n public IsCommissionSalesGroupOverriddenByCustomer: boolean;\n public CommissionSalesGroupSetByCashier: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public AttributeValues: Entities.AttributeValueBase[];\n public ThirdPartyGiftCardInfo: Entities.ThirdPartyGiftCardInfo;\n public QuantityReturnable: number;\n public LoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public ReturnLoyaltyRewardPointLines: Entities.LoyaltyRewardPointLine[];\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public DetailedLineStatusValue: number;\n public DetailedLineStatus: Entities.DetailedLineStatus;\n public LastReturnProcessedTime: Date;\n public SalesAgreementPrice: number;\n public SalesAgreementLineRecordId: number;\n public IsSalesAgreementSkipped: boolean;\n public ItemId: string;\n public Quantity: number;\n public Price: number;\n public ItemTaxGroupId: string;\n public SalesTaxGroupId: string;\n public OriginalSalesTaxGroupId: string;\n public OriginalItemTaxGroupId: string;\n public TaxAmount: number;\n public SalesOrderUnitOfMeasure: string;\n public NetAmount: number;\n public NetAmountPerUnit: number;\n public GrossAmount: number;\n public TaxLines: Entities.TaxLine[];\n public TaxMeasures: Entities.TaxMeasure[];\n public TaxAmountExemptInclusive: number;\n public TaxAmountInclusive: number;\n public TaxAmountExclusive: number;\n public NetAmountWithAllInclusiveTax: number;\n public BeginDateTime: Date;\n public EndDateTime: Date;\n public TaxRatePercent: number;\n public IsReturnByReceipt: boolean;\n public ReturnLineTaxAmount: number;\n public ReturnTaxLines: Entities.TaxLine[];\n public TaxExemptPriceInclusiveReductionAmount: number;\n public TaxExemptPriceInclusiveOriginalPrice: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Description = \n odataObject.Description;\n \n this.OriginLineId = \n odataObject.OriginLineId;\n \n this.TaxOverrideCode = \n odataObject.TaxOverrideCode;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n this.IsTaxOverideCodeTaxExempt = \n odataObject.IsTaxOverideCodeTaxExempt;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.BarcodeEmbeddedPrice = \n (odataObject.BarcodeEmbeddedPrice != null) ? parseFloat(odataObject.BarcodeEmbeddedPrice) : undefined;\n \n this.PriceInBarcode = \n odataObject.PriceInBarcode;\n \n this.EntryMethodTypeValue = \n odataObject.EntryMethodTypeValue;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.IsPriceOverridden = \n odataObject.IsPriceOverridden;\n \n this.OriginalPrice = \n (odataObject.OriginalPrice != null) ? parseFloat(odataObject.OriginalPrice) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.NetAmountWithoutTax = \n (odataObject.NetAmountWithoutTax != null) ? parseFloat(odataObject.NetAmountWithoutTax) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountAmountWithoutTax = \n (odataObject.DiscountAmountWithoutTax != null) ? parseFloat(odataObject.DiscountAmountWithoutTax) : undefined;\n \n this.NetPrice = \n (odataObject.NetPrice != null) ? parseFloat(odataObject.NetPrice) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comment = \n odataObject.Comment;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.WarehouseLocation = \n odataObject.WarehouseLocation;\n \n this.InventoryStatusId = \n odataObject.InventoryStatusId;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ItemType = \n odataObject.ItemType;\n \n this.ReservationId = \n odataObject.ReservationId;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.ReturnQuantity = \n (odataObject.ReturnQuantity != null) ? parseFloat(odataObject.ReturnQuantity) : undefined;\n \n this.QuantityRemained = \n (odataObject.QuantityRemained != null) ? parseFloat(odataObject.QuantityRemained) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.LineVersion = \n odataObject.LineVersion;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.SalesStatusValue = \n odataObject.SalesStatusValue;\n \n this.ProductSourceValue = \n odataObject.ProductSourceValue;\n \n this.IsGiftCardLine = \n odataObject.IsGiftCardLine;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardCurrencyCode = \n odataObject.GiftCardCurrencyCode;\n \n this.GiftCardOperationValue = \n odataObject.GiftCardOperationValue;\n \n this.GiftCardTypeValue = \n odataObject.GiftCardTypeValue;\n \n this.IsInvoiceLine = \n odataObject.IsInvoiceLine;\n \n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.InvoiceAmount = \n (odataObject.InvoiceAmount != null) ? parseFloat(odataObject.InvoiceAmount) : undefined;\n \n this.IsInvoiceSettled = \n odataObject.IsInvoiceSettled;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.InvoicedSalesId = \n odataObject.InvoicedSalesId;\n \n this.IsVoided = \n odataObject.IsVoided;\n \n this.IsPriceLocked = \n odataObject.IsPriceLocked;\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.AgreementPrice = \n (odataObject.AgreementPrice != null) ? parseFloat(odataObject.AgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.IsWarrantyLine = \n odataObject.IsWarrantyLine;\n \n this.WarrantableTransactionId = \n odataObject.WarrantableTransactionId;\n \n this.WarrantableSalesId = \n odataObject.WarrantableSalesId;\n \n this.WarrantableLineNumber = \n (odataObject.WarrantableLineNumber != null) ? parseFloat(odataObject.WarrantableLineNumber) : undefined;\n \n this.WarrantableSerialNumber = \n odataObject.WarrantableSerialNumber;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnInventTransId = \n odataObject.ReturnInventTransId;\n \n this.ReturnStore = \n odataObject.ReturnStore;\n \n this.ReturnTerminalId = \n odataObject.ReturnTerminalId;\n \n this.ReturnChannelId = \n (odataObject.ReturnChannelId != null) ? parseInt(odataObject.ReturnChannelId, 10) : undefined;\n \n this.FulfillmentStoreId = \n odataObject.FulfillmentStoreId;\n \n this.SalesDate = \n (odataObject.SalesDate instanceof Date) ? odataObject.SalesDate\n : (odataObject.SalesDate != null) ? jsonLightReadStringPropertyValue(odataObject.SalesDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.SavedQuantity = \n (odataObject.SavedQuantity != null) ? parseFloat(odataObject.SavedQuantity) : undefined;\n \n this.IsSavedDiscount = \n odataObject.IsSavedDiscount;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.LoyaltyDiscountAmount = \n (odataObject.LoyaltyDiscountAmount != null) ? parseFloat(odataObject.LoyaltyDiscountAmount) : undefined;\n \n this.LoyaltyPercentageDiscount = \n (odataObject.LoyaltyPercentageDiscount != null) ? parseFloat(odataObject.LoyaltyPercentageDiscount) : undefined;\n \n this.TenderDiscountAmount = \n (odataObject.TenderDiscountAmount != null) ? parseFloat(odataObject.TenderDiscountAmount) : undefined;\n \n this.TenderDiscountPercentage = \n (odataObject.TenderDiscountPercentage != null) ? parseFloat(odataObject.TenderDiscountPercentage) : undefined;\n \n this.GiftCardBalance = \n (odataObject.GiftCardBalance != null) ? parseFloat(odataObject.GiftCardBalance) : undefined;\n \n this.IsCustomerAccountDeposit = \n odataObject.IsCustomerAccountDeposit;\n \n this.Blocked = \n odataObject.Blocked;\n \n this.Found = \n odataObject.Found;\n \n this.DateToActivateItem = \n (odataObject.DateToActivateItem instanceof Date) ? odataObject.DateToActivateItem\n : (odataObject.DateToActivateItem != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivateItem, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LinePercentageDiscount = \n (odataObject.LinePercentageDiscount != null) ? parseFloat(odataObject.LinePercentageDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.QuantityDiscounted = \n (odataObject.QuantityDiscounted != null) ? parseFloat(odataObject.QuantityDiscounted) : undefined;\n \n this.UnitQuantity = \n (odataObject.UnitQuantity != null) ? parseFloat(odataObject.UnitQuantity) : undefined;\n \n if (odataObject.UnitOfMeasureConversion == null) {\n this.UnitOfMeasureConversion = undefined;\n } else if (odataObject.UnitOfMeasureConversion['@odata.type'] == null) {\n this.UnitOfMeasureConversion = new UnitOfMeasureConversionClass(odataObject.UnitOfMeasureConversion);\n } else {\n var className: string = odataObject.UnitOfMeasureConversion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UnitOfMeasureConversion = new entityDictionary[className](odataObject.UnitOfMeasureConversion)\n }\n }\n\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.PriceLines = undefined;\n if (odataObject.PriceLines) {\n this.PriceLines = [];\n for (var i = 0; i < odataObject.PriceLines.length; i++) {\n if (odataObject.PriceLines[i] != null) {\n if (odataObject.PriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.PriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PriceLines[i] = new entityDictionary[className](odataObject.PriceLines[i])\n }\n } else {\n this.PriceLines[i] = new PriceLineClass(odataObject.PriceLines[i]);\n }\n } else {\n this.PriceLines[i] = undefined;\n }\n }\n }\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.PeriodicDiscountPossibilities = undefined;\n if (odataObject.PeriodicDiscountPossibilities) {\n this.PeriodicDiscountPossibilities = [];\n for (var i = 0; i < odataObject.PeriodicDiscountPossibilities.length; i++) {\n if (odataObject.PeriodicDiscountPossibilities[i] != null) {\n if (odataObject.PeriodicDiscountPossibilities[i]['@odata.type'] != null) {\n var className: string = odataObject.PeriodicDiscountPossibilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PeriodicDiscountPossibilities[i] = new entityDictionary[className](odataObject.PeriodicDiscountPossibilities[i])\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = new DiscountLineClass(odataObject.PeriodicDiscountPossibilities[i]);\n }\n } else {\n this.PeriodicDiscountPossibilities[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.ReturnLabelProperties == null) {\n this.ReturnLabelProperties = undefined;\n } else if (odataObject.ReturnLabelProperties['@odata.type'] == null) {\n this.ReturnLabelProperties = new ReturnLabelContentClass(odataObject.ReturnLabelProperties);\n } else {\n var className: string = odataObject.ReturnLabelProperties['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLabelProperties = new entityDictionary[className](odataObject.ReturnLabelProperties)\n }\n }\n\n \n this.LineMultilineDiscOnItem = \n odataObject.LineMultilineDiscOnItem;\n \n this.RelatedDiscountedLineIds = undefined;\n if (odataObject.RelatedDiscountedLineIds) {\n this.RelatedDiscountedLineIds = [];\n for (var i = 0; i < odataObject.RelatedDiscountedLineIds.length; i++) {\n if (odataObject.RelatedDiscountedLineIds[i] != null) {\n this.RelatedDiscountedLineIds[i] = \n odataObject.RelatedDiscountedLineIds[i];\n } else {\n this.RelatedDiscountedLineIds[i] = undefined;\n }\n }\n }\n \n this.LinkedParentLineId = \n odataObject.LinkedParentLineId;\n \n this.LineMultilineDiscOnItemValue = \n odataObject.LineMultilineDiscOnItemValue;\n \n this.WasChanged = \n odataObject.WasChanged;\n \n this.OriginalSalesOrderUnitOfMeasure = \n odataObject.OriginalSalesOrderUnitOfMeasure;\n \n this.InventOrderUnitOfMeasure = \n odataObject.InventOrderUnitOfMeasure;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.IsLoyaltyDiscountApplied = \n odataObject.IsLoyaltyDiscountApplied;\n \n this.CommissionSalesGroup = \n odataObject.CommissionSalesGroup;\n \n this.IsCommissionSalesGroupOverriddenByCustomer = \n odataObject.IsCommissionSalesGroupOverriddenByCustomer;\n \n this.CommissionSalesGroupSetByCashier = \n odataObject.CommissionSalesGroupSetByCashier;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueBaseClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n if (odataObject.ThirdPartyGiftCardInfo == null) {\n this.ThirdPartyGiftCardInfo = undefined;\n } else if (odataObject.ThirdPartyGiftCardInfo['@odata.type'] == null) {\n this.ThirdPartyGiftCardInfo = new ThirdPartyGiftCardInfoClass(odataObject.ThirdPartyGiftCardInfo);\n } else {\n var className: string = odataObject.ThirdPartyGiftCardInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ThirdPartyGiftCardInfo = new entityDictionary[className](odataObject.ThirdPartyGiftCardInfo)\n }\n }\n\n \n this.QuantityReturnable = \n (odataObject.QuantityReturnable != null) ? parseFloat(odataObject.QuantityReturnable) : undefined;\n \n this.LoyaltyRewardPointLines = undefined;\n if (odataObject.LoyaltyRewardPointLines) {\n this.LoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.LoyaltyRewardPointLines.length; i++) {\n if (odataObject.LoyaltyRewardPointLines[i] != null) {\n if (odataObject.LoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.LoyaltyRewardPointLines[i])\n }\n } else {\n this.LoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.LoyaltyRewardPointLines[i]);\n }\n } else {\n this.LoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n this.ReturnLoyaltyRewardPointLines = undefined;\n if (odataObject.ReturnLoyaltyRewardPointLines) {\n this.ReturnLoyaltyRewardPointLines = [];\n for (var i = 0; i < odataObject.ReturnLoyaltyRewardPointLines.length; i++) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i] != null) {\n if (odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnLoyaltyRewardPointLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnLoyaltyRewardPointLines[i] = new entityDictionary[className](odataObject.ReturnLoyaltyRewardPointLines[i])\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = new LoyaltyRewardPointLineClass(odataObject.ReturnLoyaltyRewardPointLines[i]);\n }\n } else {\n this.ReturnLoyaltyRewardPointLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n if (odataObject.DetailedLineStatus == null) {\n this.DetailedLineStatus = undefined;\n } else if (odataObject.DetailedLineStatus['@odata.type'] == null) {\n this.DetailedLineStatus = new DetailedLineStatusClass(odataObject.DetailedLineStatus);\n } else {\n var className: string = odataObject.DetailedLineStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DetailedLineStatus = new entityDictionary[className](odataObject.DetailedLineStatus)\n }\n }\n\n \n this.LastReturnProcessedTime = \n (odataObject.LastReturnProcessedTime instanceof Date) ? odataObject.LastReturnProcessedTime\n : (odataObject.LastReturnProcessedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastReturnProcessedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.SalesAgreementLineRecordId = \n (odataObject.SalesAgreementLineRecordId != null) ? parseInt(odataObject.SalesAgreementLineRecordId, 10) : undefined;\n \n this.IsSalesAgreementSkipped = \n odataObject.IsSalesAgreementSkipped;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.SalesTaxGroupId = \n odataObject.SalesTaxGroupId;\n \n this.OriginalSalesTaxGroupId = \n odataObject.OriginalSalesTaxGroupId;\n \n this.OriginalItemTaxGroupId = \n odataObject.OriginalItemTaxGroupId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.SalesOrderUnitOfMeasure = \n odataObject.SalesOrderUnitOfMeasure;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.NetAmountPerUnit = \n (odataObject.NetAmountPerUnit != null) ? parseFloat(odataObject.NetAmountPerUnit) : undefined;\n \n this.GrossAmount = \n (odataObject.GrossAmount != null) ? parseFloat(odataObject.GrossAmount) : undefined;\n \n this.TaxLines = undefined;\n if (odataObject.TaxLines) {\n this.TaxLines = [];\n for (var i = 0; i < odataObject.TaxLines.length; i++) {\n if (odataObject.TaxLines[i] != null) {\n if (odataObject.TaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxLines[i] = new entityDictionary[className](odataObject.TaxLines[i])\n }\n } else {\n this.TaxLines[i] = new TaxLineClass(odataObject.TaxLines[i]);\n }\n } else {\n this.TaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxMeasures = undefined;\n if (odataObject.TaxMeasures) {\n this.TaxMeasures = [];\n for (var i = 0; i < odataObject.TaxMeasures.length; i++) {\n if (odataObject.TaxMeasures[i] != null) {\n if (odataObject.TaxMeasures[i]['@odata.type'] != null) {\n var className: string = odataObject.TaxMeasures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaxMeasures[i] = new entityDictionary[className](odataObject.TaxMeasures[i])\n }\n } else {\n this.TaxMeasures[i] = new TaxMeasureClass(odataObject.TaxMeasures[i]);\n }\n } else {\n this.TaxMeasures[i] = undefined;\n }\n }\n }\n \n this.TaxAmountExemptInclusive = \n (odataObject.TaxAmountExemptInclusive != null) ? parseFloat(odataObject.TaxAmountExemptInclusive) : undefined;\n \n this.TaxAmountInclusive = \n (odataObject.TaxAmountInclusive != null) ? parseFloat(odataObject.TaxAmountInclusive) : undefined;\n \n this.TaxAmountExclusive = \n (odataObject.TaxAmountExclusive != null) ? parseFloat(odataObject.TaxAmountExclusive) : undefined;\n \n this.NetAmountWithAllInclusiveTax = \n (odataObject.NetAmountWithAllInclusiveTax != null) ? parseFloat(odataObject.NetAmountWithAllInclusiveTax) : undefined;\n \n this.BeginDateTime = \n (odataObject.BeginDateTime instanceof Date) ? odataObject.BeginDateTime\n : (odataObject.BeginDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.BeginDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TaxRatePercent = \n (odataObject.TaxRatePercent != null) ? parseFloat(odataObject.TaxRatePercent) : undefined;\n \n this.IsReturnByReceipt = \n odataObject.IsReturnByReceipt;\n \n this.ReturnLineTaxAmount = \n (odataObject.ReturnLineTaxAmount != null) ? parseFloat(odataObject.ReturnLineTaxAmount) : undefined;\n \n this.ReturnTaxLines = undefined;\n if (odataObject.ReturnTaxLines) {\n this.ReturnTaxLines = [];\n for (var i = 0; i < odataObject.ReturnTaxLines.length; i++) {\n if (odataObject.ReturnTaxLines[i] != null) {\n if (odataObject.ReturnTaxLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReturnTaxLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReturnTaxLines[i] = new entityDictionary[className](odataObject.ReturnTaxLines[i])\n }\n } else {\n this.ReturnTaxLines[i] = new TaxLineClass(odataObject.ReturnTaxLines[i]);\n }\n } else {\n this.ReturnTaxLines[i] = undefined;\n }\n }\n }\n \n this.TaxExemptPriceInclusiveReductionAmount = \n (odataObject.TaxExemptPriceInclusiveReductionAmount != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveReductionAmount) : undefined;\n \n this.TaxExemptPriceInclusiveOriginalPrice = \n (odataObject.TaxExemptPriceInclusiveOriginalPrice != null) ? parseFloat(odataObject.TaxExemptPriceInclusiveOriginalPrice) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineClass'] = SalesLineClass;\n \n /**\n * SearchArea entity class.\n */\n export class SearchAreaClass implements Entities.SearchArea {\n public Longitude: number;\n public Latitude: number;\n public Radius: number;\n public DistanceUnitValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Radius = \n (odataObject.Radius != null) ? parseFloat(odataObject.Radius) : undefined;\n \n this.DistanceUnitValue = \n odataObject.DistanceUnitValue;\n \n }\n }\n entityDictionary['SearchAreaClass'] = SearchAreaClass;\n \n /**\n * ShiftAccountLine entity class.\n */\n export class ShiftAccountLineClass implements Entities.ShiftAccountLine {\n public AccountTypeValue: number;\n public AccountNumber: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AccountTypeValue = \n odataObject.AccountTypeValue;\n \n this.AccountNumber = \n odataObject.AccountNumber;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftAccountLineClass'] = ShiftAccountLineClass;\n \n /**\n * ShiftTenderLine entity class.\n */\n export class ShiftTenderLineClass implements Entities.ShiftTenderLine {\n public TenderTypeId: string;\n public TenderTypeName: string;\n public CardTypeId: string;\n public TenderCurrency: string;\n public CountingRequired: boolean;\n public StartingAmountOfStoreCurrency: number;\n public StartingAmountOfTenderCurrency: number;\n public FloatingEntryAmountOfStoreCurrency: number;\n public FloatingEntryAmountOfTenderCurrency: number;\n public SafeDropAmountOfStoreCurrency: number;\n public SafeDropAmountOfTenderCurrency: number;\n public BankDropAmountOfStoreCurrency: number;\n public BankDropAmountOfTenderCurrency: number;\n public RemoveTenderAmountOfStoreCurrency: number;\n public RemoveTenderAmountOfTenderCurrency: number;\n public DeclareTenderAmountOfStoreCurrency: number;\n public DeclareTenderAmountOfTenderCurrency: number;\n public TenderedAmountOfStoreCurrency: number;\n public TenderedAmountOfTenderCurrency: number;\n public ChangeAmountOfStoreCurrency: number;\n public ChangeAmountOfTenderCurrency: number;\n public Count: number;\n public Notes: string;\n public Overridden: boolean;\n public OverriddenFloatEntryAmountInStoreCurrency: number;\n public OverriddenFloatEntryAmountInTenderedCurrency: number;\n public OverriddenBankDropAmountInStoreCurrency: number;\n public OverriddenBankDropAmountInTenderedCurrency: number;\n public OverriddenChangeAmountInStoreCurrency: number;\n public OverriddenChangeAmountInTenderedCurrency: number;\n public OverriddenDeclaredTenderAmountInStoreCurrency: number;\n public OverriddenDeclaredTenderAmountInTenderedCurrency: number;\n public OverriddenRemovedTenderAmountInStoreCurrency: number;\n public OverriddenRemovedTenderAmountInTenderedCurrency: number;\n public OverriddenSafeDropAmountInStoreCurrency: number;\n public OverriddenSafeDropAmountInTenderedCurrency: number;\n public OverriddenStartingAmountInStoreCurrency: number;\n public OverriddenStartingAmountInTenderedCurrency: number;\n public OverriddenTenderedAmountInStoreCurrency: number;\n public OverriddenTenderedAmountInTenderedCurrency: number;\n public OverShortAmountOfTenderCurrency: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderTypeName = \n odataObject.TenderTypeName;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.TenderCurrency = \n odataObject.TenderCurrency;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.StartingAmountOfStoreCurrency = \n (odataObject.StartingAmountOfStoreCurrency != null) ? parseFloat(odataObject.StartingAmountOfStoreCurrency) : undefined;\n \n this.StartingAmountOfTenderCurrency = \n (odataObject.StartingAmountOfTenderCurrency != null) ? parseFloat(odataObject.StartingAmountOfTenderCurrency) : undefined;\n \n this.FloatingEntryAmountOfStoreCurrency = \n (odataObject.FloatingEntryAmountOfStoreCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfStoreCurrency) : undefined;\n \n this.FloatingEntryAmountOfTenderCurrency = \n (odataObject.FloatingEntryAmountOfTenderCurrency != null) ? parseFloat(odataObject.FloatingEntryAmountOfTenderCurrency) : undefined;\n \n this.SafeDropAmountOfStoreCurrency = \n (odataObject.SafeDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfStoreCurrency) : undefined;\n \n this.SafeDropAmountOfTenderCurrency = \n (odataObject.SafeDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.SafeDropAmountOfTenderCurrency) : undefined;\n \n this.BankDropAmountOfStoreCurrency = \n (odataObject.BankDropAmountOfStoreCurrency != null) ? parseFloat(odataObject.BankDropAmountOfStoreCurrency) : undefined;\n \n this.BankDropAmountOfTenderCurrency = \n (odataObject.BankDropAmountOfTenderCurrency != null) ? parseFloat(odataObject.BankDropAmountOfTenderCurrency) : undefined;\n \n this.RemoveTenderAmountOfStoreCurrency = \n (odataObject.RemoveTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfStoreCurrency) : undefined;\n \n this.RemoveTenderAmountOfTenderCurrency = \n (odataObject.RemoveTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.RemoveTenderAmountOfTenderCurrency) : undefined;\n \n this.DeclareTenderAmountOfStoreCurrency = \n (odataObject.DeclareTenderAmountOfStoreCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfStoreCurrency) : undefined;\n \n this.DeclareTenderAmountOfTenderCurrency = \n (odataObject.DeclareTenderAmountOfTenderCurrency != null) ? parseFloat(odataObject.DeclareTenderAmountOfTenderCurrency) : undefined;\n \n this.TenderedAmountOfStoreCurrency = \n (odataObject.TenderedAmountOfStoreCurrency != null) ? parseFloat(odataObject.TenderedAmountOfStoreCurrency) : undefined;\n \n this.TenderedAmountOfTenderCurrency = \n (odataObject.TenderedAmountOfTenderCurrency != null) ? parseFloat(odataObject.TenderedAmountOfTenderCurrency) : undefined;\n \n this.ChangeAmountOfStoreCurrency = \n (odataObject.ChangeAmountOfStoreCurrency != null) ? parseFloat(odataObject.ChangeAmountOfStoreCurrency) : undefined;\n \n this.ChangeAmountOfTenderCurrency = \n (odataObject.ChangeAmountOfTenderCurrency != null) ? parseFloat(odataObject.ChangeAmountOfTenderCurrency) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.Notes = \n odataObject.Notes;\n \n this.Overridden = \n odataObject.Overridden;\n \n this.OverriddenFloatEntryAmountInStoreCurrency = \n (odataObject.OverriddenFloatEntryAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInStoreCurrency) : undefined;\n \n this.OverriddenFloatEntryAmountInTenderedCurrency = \n (odataObject.OverriddenFloatEntryAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenFloatEntryAmountInTenderedCurrency) : undefined;\n \n this.OverriddenBankDropAmountInStoreCurrency = \n (odataObject.OverriddenBankDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenBankDropAmountInTenderedCurrency = \n (odataObject.OverriddenBankDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenBankDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenChangeAmountInStoreCurrency = \n (odataObject.OverriddenChangeAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInStoreCurrency) : undefined;\n \n this.OverriddenChangeAmountInTenderedCurrency = \n (odataObject.OverriddenChangeAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenChangeAmountInTenderedCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInStoreCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenDeclaredTenderAmountInTenderedCurrency = \n (odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenDeclaredTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInStoreCurrency = \n (odataObject.OverriddenRemovedTenderAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInStoreCurrency) : undefined;\n \n this.OverriddenRemovedTenderAmountInTenderedCurrency = \n (odataObject.OverriddenRemovedTenderAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenRemovedTenderAmountInTenderedCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInStoreCurrency = \n (odataObject.OverriddenSafeDropAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInStoreCurrency) : undefined;\n \n this.OverriddenSafeDropAmountInTenderedCurrency = \n (odataObject.OverriddenSafeDropAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenSafeDropAmountInTenderedCurrency) : undefined;\n \n this.OverriddenStartingAmountInStoreCurrency = \n (odataObject.OverriddenStartingAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInStoreCurrency) : undefined;\n \n this.OverriddenStartingAmountInTenderedCurrency = \n (odataObject.OverriddenStartingAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenStartingAmountInTenderedCurrency) : undefined;\n \n this.OverriddenTenderedAmountInStoreCurrency = \n (odataObject.OverriddenTenderedAmountInStoreCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInStoreCurrency) : undefined;\n \n this.OverriddenTenderedAmountInTenderedCurrency = \n (odataObject.OverriddenTenderedAmountInTenderedCurrency != null) ? parseFloat(odataObject.OverriddenTenderedAmountInTenderedCurrency) : undefined;\n \n this.OverShortAmountOfTenderCurrency = \n (odataObject.OverShortAmountOfTenderCurrency != null) ? parseFloat(odataObject.OverShortAmountOfTenderCurrency) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTenderLineClass'] = ShiftTenderLineClass;\n \n /**\n * StockCountJournalTransaction entity class.\n */\n export class StockCountJournalTransactionClass implements Entities.StockCountJournalTransaction {\n public JournalId: string;\n public RecordId: number;\n public OperationType: number;\n public ItemId: string;\n public DataAreaId: string;\n public ProductRecordId: number;\n public ItemName: string;\n public InventDimId: string;\n public Counted: number;\n public Quantity: number;\n public EstimatedOnHandQuantity: number;\n public OnHandCalculationDateTime: Date;\n public Unit: string;\n public UserId: string;\n public TerminalId: string;\n public CountedDate: Date;\n public Status: number;\n public InventBatchId: string;\n public WarehouseLocationId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public WarehousePalletId: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public InventSerialId: string;\n public TrackingGuid: string;\n public UpdatedInAx: boolean;\n public Message: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalId = \n odataObject.JournalId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OperationType = \n odataObject.OperationType;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.Counted = \n (odataObject.Counted != null) ? parseFloat(odataObject.Counted) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.EstimatedOnHandQuantity = \n (odataObject.EstimatedOnHandQuantity != null) ? parseFloat(odataObject.EstimatedOnHandQuantity) : undefined;\n \n this.OnHandCalculationDateTime = \n (odataObject.OnHandCalculationDateTime instanceof Date) ? odataObject.OnHandCalculationDateTime\n : (odataObject.OnHandCalculationDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OnHandCalculationDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.UserId = \n odataObject.UserId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.CountedDate = \n (odataObject.CountedDate instanceof Date) ? odataObject.CountedDate\n : (odataObject.CountedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CountedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WarehouseLocationId = \n odataObject.WarehouseLocationId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.WarehousePalletId = \n odataObject.WarehousePalletId;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.TrackingGuid = \n odataObject.TrackingGuid;\n \n this.UpdatedInAx = \n odataObject.UpdatedInAx;\n \n this.Message = \n odataObject.Message;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StockCountJournalTransactionClass'] = StockCountJournalTransactionClass;\n \n /**\n * TaxLine entity class.\n */\n export class TaxLineClass implements Entities.TaxLine {\n public TaxGroup: string;\n public Percentage: number;\n public IsExempt: boolean;\n public TaxBasis: number;\n public IsIncludedInPrice: boolean;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TaxCode: string;\n public Amount: number;\n public AmountRefunded: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.Percentage = \n (odataObject.Percentage != null) ? parseFloat(odataObject.Percentage) : undefined;\n \n this.IsExempt = \n odataObject.IsExempt;\n \n this.TaxBasis = \n (odataObject.TaxBasis != null) ? parseFloat(odataObject.TaxBasis) : undefined;\n \n this.IsIncludedInPrice = \n odataObject.IsIncludedInPrice;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TaxCode = \n odataObject.TaxCode;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountRefunded = \n (odataObject.AmountRefunded != null) ? parseFloat(odataObject.AmountRefunded) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxLineClass'] = TaxLineClass;\n \n /**\n * TenderLine entity class.\n */\n export class TenderLineClass implements Entities.TenderLine {\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public InternalTransactionId: string;\n public RefundableAmount: number;\n public CaptureToken: string;\n public CardToken: string;\n public Authorization: string;\n public TransactionStatusValue: number;\n public IncomeExpenseAccountTypeValue: number;\n public MaskedCardNumber: string;\n public TenderDate: Date;\n public IsPreProcessed: boolean;\n public IsDeposit: boolean;\n public IsCustomerAccountFloorLimitUsed: boolean;\n public AuthorizationReferenceId: string;\n public IsIncrementalCaptureEnabled: boolean;\n public IsReauthorizationEnabled: boolean;\n public IncrementalOffsetAmount: number;\n public ChannelId: number;\n public IsLinkedRefund: boolean;\n public LinkedPaymentStore: string;\n public LinkedPaymentTerminalId: string;\n public LinkedPaymentTransactionId: string;\n public LinkedPaymentLineNumber: number;\n public LinkedPaymentCurrency: string;\n public RoundingDifference: number;\n public TenderLineId: string;\n public Amount: number;\n public CashBackAmount: number;\n public AmountInTenderedCurrency: number;\n public AmountInCompanyCurrency: number;\n public Currency: string;\n public ExchangeRate: number;\n public CompanyCurrencyExchangeRate: number;\n public TenderTypeId: string;\n public SignatureData: string;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public LineNumber: number;\n public GiftCardId: string;\n public GiftCardPin: string;\n public GiftCardExpirationYear: number;\n public GiftCardExpirationMonth: number;\n public CreditMemoId: string;\n public CustomerId: string;\n public LoyaltyCardId: string;\n public CardTypeId: string;\n public IsChangeLine: boolean;\n public IsHistorical: boolean;\n public IsVoidable: boolean;\n public StatusValue: number;\n public VoidStatusValue: number;\n public AuthorizedAmount: number;\n public PaymentRefRecId: number;\n public CardPaymentAccountId: string;\n public ProcessingTypeValue: number;\n public CardProcessorStatusValue: number;\n public LinkedPaymentRefRecId: number;\n public IsPolicyBypassed: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.InternalTransactionId = \n odataObject.InternalTransactionId;\n \n this.RefundableAmount = \n (odataObject.RefundableAmount != null) ? parseFloat(odataObject.RefundableAmount) : undefined;\n \n this.CaptureToken = \n odataObject.CaptureToken;\n \n this.CardToken = \n odataObject.CardToken;\n \n this.Authorization = \n odataObject.Authorization;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.IncomeExpenseAccountTypeValue = \n odataObject.IncomeExpenseAccountTypeValue;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n this.TenderDate = \n (odataObject.TenderDate instanceof Date) ? odataObject.TenderDate\n : (odataObject.TenderDate != null) ? jsonLightReadStringPropertyValue(odataObject.TenderDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsPreProcessed = \n odataObject.IsPreProcessed;\n \n this.IsDeposit = \n odataObject.IsDeposit;\n \n this.IsCustomerAccountFloorLimitUsed = \n odataObject.IsCustomerAccountFloorLimitUsed;\n \n this.AuthorizationReferenceId = \n odataObject.AuthorizationReferenceId;\n \n this.IsIncrementalCaptureEnabled = \n odataObject.IsIncrementalCaptureEnabled;\n \n this.IsReauthorizationEnabled = \n odataObject.IsReauthorizationEnabled;\n \n this.IncrementalOffsetAmount = \n (odataObject.IncrementalOffsetAmount != null) ? parseFloat(odataObject.IncrementalOffsetAmount) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.IsLinkedRefund = \n odataObject.IsLinkedRefund;\n \n this.LinkedPaymentStore = \n odataObject.LinkedPaymentStore;\n \n this.LinkedPaymentTerminalId = \n odataObject.LinkedPaymentTerminalId;\n \n this.LinkedPaymentTransactionId = \n odataObject.LinkedPaymentTransactionId;\n \n this.LinkedPaymentLineNumber = \n (odataObject.LinkedPaymentLineNumber != null) ? parseFloat(odataObject.LinkedPaymentLineNumber) : undefined;\n \n this.LinkedPaymentCurrency = \n odataObject.LinkedPaymentCurrency;\n \n this.RoundingDifference = \n (odataObject.RoundingDifference != null) ? parseFloat(odataObject.RoundingDifference) : undefined;\n \n this.TenderLineId = \n odataObject.TenderLineId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CashBackAmount = \n (odataObject.CashBackAmount != null) ? parseFloat(odataObject.CashBackAmount) : undefined;\n \n this.AmountInTenderedCurrency = \n (odataObject.AmountInTenderedCurrency != null) ? parseFloat(odataObject.AmountInTenderedCurrency) : undefined;\n \n this.AmountInCompanyCurrency = \n (odataObject.AmountInCompanyCurrency != null) ? parseFloat(odataObject.AmountInCompanyCurrency) : undefined;\n \n this.Currency = \n odataObject.Currency;\n \n this.ExchangeRate = \n (odataObject.ExchangeRate != null) ? parseFloat(odataObject.ExchangeRate) : undefined;\n \n this.CompanyCurrencyExchangeRate = \n (odataObject.CompanyCurrencyExchangeRate != null) ? parseFloat(odataObject.CompanyCurrencyExchangeRate) : undefined;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.SignatureData = \n odataObject.SignatureData;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.GiftCardId = \n odataObject.GiftCardId;\n \n this.GiftCardPin = \n odataObject.GiftCardPin;\n \n this.GiftCardExpirationYear = \n odataObject.GiftCardExpirationYear;\n \n this.GiftCardExpirationMonth = \n odataObject.GiftCardExpirationMonth;\n \n this.CreditMemoId = \n odataObject.CreditMemoId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.LoyaltyCardId = \n odataObject.LoyaltyCardId;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.IsChangeLine = \n odataObject.IsChangeLine;\n \n this.IsHistorical = \n odataObject.IsHistorical;\n \n this.IsVoidable = \n odataObject.IsVoidable;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.VoidStatusValue = \n odataObject.VoidStatusValue;\n \n this.AuthorizedAmount = \n (odataObject.AuthorizedAmount != null) ? parseFloat(odataObject.AuthorizedAmount) : undefined;\n \n this.PaymentRefRecId = \n (odataObject.PaymentRefRecId != null) ? parseInt(odataObject.PaymentRefRecId, 10) : undefined;\n \n this.CardPaymentAccountId = \n odataObject.CardPaymentAccountId;\n \n this.ProcessingTypeValue = \n odataObject.ProcessingTypeValue;\n \n this.CardProcessorStatusValue = \n odataObject.CardProcessorStatusValue;\n \n this.LinkedPaymentRefRecId = \n (odataObject.LinkedPaymentRefRecId != null) ? parseInt(odataObject.LinkedPaymentRefRecId, 10) : undefined;\n \n this.IsPolicyBypassed = \n odataObject.IsPolicyBypassed;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderLineClass'] = TenderLineClass;\n \n /**\n * TextValueTranslation entity class.\n */\n export class TextValueTranslationClass implements Entities.TextValueTranslation {\n public Language: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Language = \n odataObject.Language;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TextValueTranslationClass'] = TextValueTranslationClass;\n \n /**\n * UnitOfMeasure entity class.\n */\n export class UnitOfMeasureClass implements Entities.UnitOfMeasure {\n public DecimalPrecision: number;\n public Symbol: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DecimalPrecision = \n odataObject.DecimalPrecision;\n \n this.Symbol = \n odataObject.Symbol;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureClass'] = UnitOfMeasureClass;\n \n /**\n * RecommendedElement entity class.\n */\n export class RecommendedElementClass implements Entities.RecommendedElement {\n public ElementId: string;\n public ElementTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ElementId = \n odataObject.ElementId;\n \n this.ElementTypeValue = \n odataObject.ElementTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendedElementClass'] = RecommendedElementClass;\n \n /**\n * RecommendationCriteria entity class.\n */\n export class RecommendationCriteriaClass implements Entities.RecommendationCriteria {\n public CustomerAccountNumber: string;\n public CatalogId: number;\n public ProductIds: number[];\n public CategoryIds: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecommendationCriteriaClass'] = RecommendationCriteriaClass;\n \n /**\n * ProductListLine entity class.\n */\n export class ProductListLineClass implements Entities.ProductListLine {\n public ProductListId: string;\n public LineId: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public CreatedDateTime: Date;\n public LastUpdated: Date;\n public DeletedDateTime: Date;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductListId = \n odataObject.ProductListId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastUpdated = \n (odataObject.LastUpdated instanceof Date) ? odataObject.LastUpdated\n : (odataObject.LastUpdated != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdated, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeletedDateTime = \n (odataObject.DeletedDateTime instanceof Date) ? odataObject.DeletedDateTime\n : (odataObject.DeletedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DeletedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductListLineClass'] = ProductListLineClass;\n \n /**\n * CommerceListLine entity class.\n */\n export class CommerceListLineClass implements Entities.CommerceListLine {\n public CommerceListId: number;\n public LineId: number;\n public CustomerId: string;\n public CustomerName: string;\n public ProductId: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public IsFavorite: boolean;\n public IsRecurring: boolean;\n public IsPrivate: boolean;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CommerceListId = \n (odataObject.CommerceListId != null) ? parseInt(odataObject.CommerceListId, 10) : undefined;\n \n this.LineId = \n (odataObject.LineId != null) ? parseInt(odataObject.LineId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.IsFavorite = \n odataObject.IsFavorite;\n \n this.IsRecurring = \n odataObject.IsRecurring;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListLineClass'] = CommerceListLineClass;\n \n /**\n * CommerceListContributor entity class.\n */\n export class CommerceListContributorClass implements Entities.CommerceListContributor {\n public RecordId: number;\n public CustomerId: string;\n public CustomerName: string;\n public InvitationId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvitationId = \n (odataObject.InvitationId != null) ? parseInt(odataObject.InvitationId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListContributorClass'] = CommerceListContributorClass;\n \n /**\n * CommerceListInvitation entity class.\n */\n export class CommerceListInvitationClass implements Entities.CommerceListInvitation {\n public RecordId: number;\n public Invitee: string;\n public IsSent: boolean;\n public LastRequestDateTime: Date;\n public LastSentDateTime: Date;\n public StatusValue: number;\n public Token: string;\n public InvitationTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Invitee = \n odataObject.Invitee;\n \n this.IsSent = \n odataObject.IsSent;\n \n this.LastRequestDateTime = \n (odataObject.LastRequestDateTime instanceof Date) ? odataObject.LastRequestDateTime\n : (odataObject.LastRequestDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastRequestDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastSentDateTime = \n (odataObject.LastSentDateTime instanceof Date) ? odataObject.LastSentDateTime\n : (odataObject.LastSentDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSentDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Token = \n odataObject.Token;\n \n this.InvitationTypeValue = \n odataObject.InvitationTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommerceListInvitationClass'] = CommerceListInvitationClass;\n \n /**\n * SearchFilter entity class.\n */\n export class SearchFilterClass implements Entities.SearchFilter {\n public Key: string;\n public FilterTypeValue: number;\n public SearchValues: Entities.SearchFilterValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.FilterTypeValue = \n odataObject.FilterTypeValue;\n \n this.SearchValues = undefined;\n if (odataObject.SearchValues) {\n this.SearchValues = [];\n for (var i = 0; i < odataObject.SearchValues.length; i++) {\n if (odataObject.SearchValues[i] != null) {\n if (odataObject.SearchValues[i]['@odata.type'] != null) {\n var className: string = odataObject.SearchValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchValues[i] = new entityDictionary[className](odataObject.SearchValues[i])\n }\n } else {\n this.SearchValues[i] = new SearchFilterValueClass(odataObject.SearchValues[i]);\n }\n } else {\n this.SearchValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchFilterClass'] = SearchFilterClass;\n \n /**\n * SearchFilterValue entity class.\n */\n export class SearchFilterValueClass implements Entities.SearchFilterValue {\n public Value: Entities.CommercePropertyValue;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Value == null) {\n this.Value = undefined;\n } else if (odataObject.Value['@odata.type'] == null) {\n this.Value = new CommercePropertyValueClass(odataObject.Value);\n } else {\n var className: string = odataObject.Value['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value = new entityDictionary[className](odataObject.Value)\n }\n }\n\n \n }\n }\n entityDictionary['SearchFilterValueClass'] = SearchFilterValueClass;\n \n /**\n * TransactionSearchCriteria entity class.\n */\n export class TransactionSearchCriteriaClass implements Entities.TransactionSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SearchLocationTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransactionSearchCriteriaClass'] = TransactionSearchCriteriaClass;\n \n /**\n * SalesOrderSearchCriteria entity class.\n */\n export class SalesOrderSearchCriteriaClass implements Entities.SalesOrderSearchCriteria {\n public TransactionIds: string[];\n public SalesId: string;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerAccountNumber: string;\n public CustomerFirstName: string;\n public CustomerLastName: string;\n public StoreId: string;\n public TerminalId: string;\n public ItemId: string;\n public Barcode: string;\n public SerialNumber: string;\n public StaffId: string;\n public SearchTypeValue: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public IncludeDetails: boolean;\n public ReceiptEmailAddress: string;\n public SearchIdentifiers: string;\n public SalesTransactionTypeValues: number[];\n public SearchLocationTypeValue: number;\n public TransactionStatusTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionIds = undefined;\n if (odataObject.TransactionIds) {\n this.TransactionIds = [];\n for (var i = 0; i < odataObject.TransactionIds.length; i++) {\n if (odataObject.TransactionIds[i] != null) {\n this.TransactionIds[i] = \n odataObject.TransactionIds[i];\n } else {\n this.TransactionIds[i] = undefined;\n }\n }\n }\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerFirstName = \n odataObject.CustomerFirstName;\n \n this.CustomerLastName = \n odataObject.CustomerLastName;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.SearchTypeValue = \n odataObject.SearchTypeValue;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IncludeDetails = \n odataObject.IncludeDetails;\n \n this.ReceiptEmailAddress = \n odataObject.ReceiptEmailAddress;\n \n this.SearchIdentifiers = \n odataObject.SearchIdentifiers;\n \n this.SalesTransactionTypeValues = undefined;\n if (odataObject.SalesTransactionTypeValues) {\n this.SalesTransactionTypeValues = [];\n for (var i = 0; i < odataObject.SalesTransactionTypeValues.length; i++) {\n if (odataObject.SalesTransactionTypeValues[i] != null) {\n this.SalesTransactionTypeValues[i] = \n odataObject.SalesTransactionTypeValues[i];\n } else {\n this.SalesTransactionTypeValues[i] = undefined;\n }\n }\n }\n \n this.SearchLocationTypeValue = \n odataObject.SearchLocationTypeValue;\n \n this.TransactionStatusTypeValues = undefined;\n if (odataObject.TransactionStatusTypeValues) {\n this.TransactionStatusTypeValues = [];\n for (var i = 0; i < odataObject.TransactionStatusTypeValues.length; i++) {\n if (odataObject.TransactionStatusTypeValues[i] != null) {\n this.TransactionStatusTypeValues[i] = \n odataObject.TransactionStatusTypeValues[i];\n } else {\n this.TransactionStatusTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesOrderSearchCriteriaClass'] = SalesOrderSearchCriteriaClass;\n \n /**\n * SearchStoreCriteria entity class.\n */\n export class SearchStoreCriteriaClass implements Entities.SearchStoreCriteria {\n public ChannelId: number;\n public StoreNumber: string;\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n }\n }\n entityDictionary['SearchStoreCriteriaClass'] = SearchStoreCriteriaClass;\n \n /**\n * CustomerSearchCriteria entity class.\n */\n export class CustomerSearchCriteriaClass implements Entities.CustomerSearchCriteria {\n public Keyword: string;\n public SearchOnlyCurrentCompany: boolean;\n public SearchLocationValue: number;\n public Refinements: Entities.CustomerRefinerValue[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Keyword = \n odataObject.Keyword;\n \n this.SearchOnlyCurrentCompany = \n odataObject.SearchOnlyCurrentCompany;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.Refinements = undefined;\n if (odataObject.Refinements) {\n this.Refinements = [];\n for (var i = 0; i < odataObject.Refinements.length; i++) {\n if (odataObject.Refinements[i] != null) {\n if (odataObject.Refinements[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinements[i] = new entityDictionary[className](odataObject.Refinements[i])\n }\n } else {\n this.Refinements[i] = new CustomerRefinerValueClass(odataObject.Refinements[i]);\n }\n } else {\n this.Refinements[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['CustomerSearchCriteriaClass'] = CustomerSearchCriteriaClass;\n \n /**\n * ProductPrice entity class.\n */\n export class ProductPriceClass implements Entities.ProductPrice {\n public ProductId: number;\n public ListingId: number;\n public BasePrice: number;\n public TradeAgreementPrice: number;\n public AdjustedPrice: number;\n public MaxVariantPrice: number;\n public MinVariantPrice: number;\n public CustomerContextualPrice: number;\n public DiscountAmount: number;\n public CurrencyCode: string;\n public ItemId: string;\n public InventoryDimensionId: string;\n public UnitOfMeasure: string;\n public ValidFrom: Date;\n public ProductLookupId: number;\n public ChannelId: number;\n public CatalogId: number;\n public DiscountLines: Entities.DiscountLine[];\n public SalesAgreementPrice: number;\n public PriceSourceTypeValue: number;\n public AttainablePriceLines: Entities.PriceLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ListingId = \n (odataObject.ListingId != null) ? parseInt(odataObject.ListingId, 10) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.TradeAgreementPrice = \n (odataObject.TradeAgreementPrice != null) ? parseFloat(odataObject.TradeAgreementPrice) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.CustomerContextualPrice = \n (odataObject.CustomerContextualPrice != null) ? parseFloat(odataObject.CustomerContextualPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ProductLookupId = \n (odataObject.ProductLookupId != null) ? parseInt(odataObject.ProductLookupId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.DiscountLines = undefined;\n if (odataObject.DiscountLines) {\n this.DiscountLines = [];\n for (var i = 0; i < odataObject.DiscountLines.length; i++) {\n if (odataObject.DiscountLines[i] != null) {\n if (odataObject.DiscountLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DiscountLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DiscountLines[i] = new entityDictionary[className](odataObject.DiscountLines[i])\n }\n } else {\n this.DiscountLines[i] = new DiscountLineClass(odataObject.DiscountLines[i]);\n }\n } else {\n this.DiscountLines[i] = undefined;\n }\n }\n }\n \n this.SalesAgreementPrice = \n (odataObject.SalesAgreementPrice != null) ? parseFloat(odataObject.SalesAgreementPrice) : undefined;\n \n this.PriceSourceTypeValue = \n odataObject.PriceSourceTypeValue;\n \n this.AttainablePriceLines = undefined;\n if (odataObject.AttainablePriceLines) {\n this.AttainablePriceLines = [];\n for (var i = 0; i < odataObject.AttainablePriceLines.length; i++) {\n if (odataObject.AttainablePriceLines[i] != null) {\n if (odataObject.AttainablePriceLines[i]['@odata.type'] != null) {\n var className: string = odataObject.AttainablePriceLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttainablePriceLines[i] = new entityDictionary[className](odataObject.AttainablePriceLines[i])\n }\n } else {\n this.AttainablePriceLines[i] = new PriceLineClass(odataObject.AttainablePriceLines[i]);\n }\n } else {\n this.AttainablePriceLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPriceClass'] = ProductPriceClass;\n \n /**\n * OrgUnitAvailability entity class.\n */\n export class OrgUnitAvailabilityClass implements Entities.OrgUnitAvailability {\n public OrgUnitLocation: Entities.OrgUnitLocation;\n public ItemAvailabilities: Entities.ItemAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.OrgUnitLocation == null) {\n this.OrgUnitLocation = undefined;\n } else if (odataObject.OrgUnitLocation['@odata.type'] == null) {\n this.OrgUnitLocation = new OrgUnitLocationClass(odataObject.OrgUnitLocation);\n } else {\n var className: string = odataObject.OrgUnitLocation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OrgUnitLocation = new entityDictionary[className](odataObject.OrgUnitLocation)\n }\n }\n\n \n this.ItemAvailabilities = undefined;\n if (odataObject.ItemAvailabilities) {\n this.ItemAvailabilities = [];\n for (var i = 0; i < odataObject.ItemAvailabilities.length; i++) {\n if (odataObject.ItemAvailabilities[i] != null) {\n if (odataObject.ItemAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemAvailabilities[i] = new entityDictionary[className](odataObject.ItemAvailabilities[i])\n }\n } else {\n this.ItemAvailabilities[i] = new ItemAvailabilityClass(odataObject.ItemAvailabilities[i]);\n }\n } else {\n this.ItemAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitAvailabilityClass'] = OrgUnitAvailabilityClass;\n \n /**\n * ProductVariantPropertySet entity class.\n */\n export class ProductVariantPropertySetClass implements Entities.ProductVariantPropertySet {\n public VariantId: number;\n public ProductVariantPropertiesAsList: Entities.ProductPropertyTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.VariantId = \n (odataObject.VariantId != null) ? parseInt(odataObject.VariantId, 10) : undefined;\n \n this.ProductVariantPropertiesAsList = undefined;\n if (odataObject.ProductVariantPropertiesAsList) {\n this.ProductVariantPropertiesAsList = [];\n for (var i = 0; i < odataObject.ProductVariantPropertiesAsList.length; i++) {\n if (odataObject.ProductVariantPropertiesAsList[i] != null) {\n if (odataObject.ProductVariantPropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductVariantPropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductVariantPropertiesAsList[i] = new entityDictionary[className](odataObject.ProductVariantPropertiesAsList[i])\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.ProductVariantPropertiesAsList[i]);\n }\n } else {\n this.ProductVariantPropertiesAsList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantPropertySetClass'] = ProductVariantPropertySetClass;\n \n /**\n * PurchaseOrderLine entity class.\n */\n export class PurchaseOrderLineClass implements Entities.PurchaseOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseQuantity: number;\n public PurchaseUnit: string;\n public PurchaseReceived: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public UniqueIdentifier: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseQuantity = \n (odataObject.PurchaseQuantity != null) ? parseFloat(odataObject.PurchaseQuantity) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.PurchaseReceived = \n (odataObject.PurchaseReceived != null) ? parseFloat(odataObject.PurchaseReceived) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.UniqueIdentifier = \n odataObject.UniqueIdentifier;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseOrderLineClass'] = PurchaseOrderLineClass;\n \n /**\n * TransferOrderLine entity class.\n */\n export class TransferOrderLineClass implements Entities.TransferOrderLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityTransferred: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityShipNow: number;\n public QuantityReceiveNow: number;\n public QuantityRemainShip: number;\n public QuantityRemainReceive: number;\n public PurchaseUnit: string;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityTransferred = \n (odataObject.QuantityTransferred != null) ? parseFloat(odataObject.QuantityTransferred) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityShipNow = \n (odataObject.QuantityShipNow != null) ? parseFloat(odataObject.QuantityShipNow) : undefined;\n \n this.QuantityReceiveNow = \n (odataObject.QuantityReceiveNow != null) ? parseFloat(odataObject.QuantityReceiveNow) : undefined;\n \n this.QuantityRemainShip = \n (odataObject.QuantityRemainShip != null) ? parseFloat(odataObject.QuantityRemainShip) : undefined;\n \n this.QuantityRemainReceive = \n (odataObject.QuantityRemainReceive != null) ? parseFloat(odataObject.QuantityRemainReceive) : undefined;\n \n this.PurchaseUnit = \n odataObject.PurchaseUnit;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderLineClass'] = TransferOrderLineClass;\n \n /**\n * TransferOrderJournal entity class.\n */\n export class TransferOrderJournalClass implements Entities.TransferOrderJournal {\n public OrderId: string;\n public VoucherId: string;\n public UpdatedByWorker: string;\n public InventLocationIdFrom: string;\n public InventLocationIdTo: string;\n public QuantityShipped: number;\n public PostingDate: Date;\n public DeliveryMode: string;\n public Comments: string;\n public JournalLines: Entities.TransferOrderJournalLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderId = \n odataObject.OrderId;\n \n this.VoucherId = \n odataObject.VoucherId;\n \n this.UpdatedByWorker = \n odataObject.UpdatedByWorker;\n \n this.InventLocationIdFrom = \n odataObject.InventLocationIdFrom;\n \n this.InventLocationIdTo = \n odataObject.InventLocationIdTo;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.PostingDate = \n (odataObject.PostingDate instanceof Date) ? odataObject.PostingDate\n : (odataObject.PostingDate != null) ? jsonLightReadStringPropertyValue(odataObject.PostingDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.Comments = \n odataObject.Comments;\n \n this.JournalLines = undefined;\n if (odataObject.JournalLines) {\n this.JournalLines = [];\n for (var i = 0; i < odataObject.JournalLines.length; i++) {\n if (odataObject.JournalLines[i] != null) {\n if (odataObject.JournalLines[i]['@odata.type'] != null) {\n var className: string = odataObject.JournalLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.JournalLines[i] = new entityDictionary[className](odataObject.JournalLines[i])\n }\n } else {\n this.JournalLines[i] = new TransferOrderJournalLineClass(odataObject.JournalLines[i]);\n }\n } else {\n this.JournalLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalClass'] = TransferOrderJournalClass;\n \n /**\n * PickingListLine entity class.\n */\n export class PickingListLineClass implements Entities.PickingListLine {\n public RecordId: number;\n public OrderId: string;\n public ProductRecordId: number;\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public QuantityOrdered: number;\n public PurchaseReceivedNow: number;\n public InventBatchId: string;\n public WMSLocationId: string;\n public WMSPalletId: string;\n public InventoryStatus: string;\n public LicensePlate: string;\n public InventSiteId: string;\n public InventLocationId: string;\n public ConfigId: string;\n public InventSerialId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public IsCommitted: boolean;\n public Message: string;\n public Guid: string;\n public DeliveryMethod: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrderId = \n odataObject.OrderId;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.PurchaseReceivedNow = \n (odataObject.PurchaseReceivedNow != null) ? parseFloat(odataObject.PurchaseReceivedNow) : undefined;\n \n this.InventBatchId = \n odataObject.InventBatchId;\n \n this.WMSLocationId = \n odataObject.WMSLocationId;\n \n this.WMSPalletId = \n odataObject.WMSPalletId;\n \n this.InventoryStatus = \n odataObject.InventoryStatus;\n \n this.LicensePlate = \n odataObject.LicensePlate;\n \n this.InventSiteId = \n odataObject.InventSiteId;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSerialId = \n odataObject.InventSerialId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.IsCommitted = \n odataObject.IsCommitted;\n \n this.Message = \n odataObject.Message;\n \n this.Guid = \n odataObject.Guid;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickingListLineClass'] = PickingListLineClass;\n \n /**\n * Affiliation entity class.\n */\n export class AffiliationClass implements Entities.Affiliation {\n public RecordId: number;\n public AffiliationTypeValue: number;\n public Description: string;\n public Name: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationClass'] = AffiliationClass;\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity class.\n */\n export class InventoryInboundOutboundDocumentLinesSummaryClass implements Entities.InventoryInboundOutboundDocumentLinesSummary {\n public InProgressQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InProgressQuantity = \n (odataObject.InProgressQuantity != null) ? parseFloat(odataObject.InProgressQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLinesSummaryClass'] = InventoryInboundOutboundDocumentLinesSummaryClass;\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity class.\n */\n export class InventoryDocumentSerialNumberLinesSummaryClass implements Entities.InventoryDocumentSerialNumberLinesSummary {\n public RegisteringQuantity: number;\n public RegisteredQuantity: number;\n public TotalLineNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegisteringQuantity = \n (odataObject.RegisteringQuantity != null) ? parseFloat(odataObject.RegisteringQuantity) : undefined;\n \n this.RegisteredQuantity = \n (odataObject.RegisteredQuantity != null) ? parseFloat(odataObject.RegisteredQuantity) : undefined;\n \n this.TotalLineNumber = \n odataObject.TotalLineNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLinesSummaryClass'] = InventoryDocumentSerialNumberLinesSummaryClass;\n \n /**\n * InventoryInboundOutboundDocumentLine entity class.\n */\n export class InventoryInboundOutboundDocumentLineClass implements Entities.InventoryInboundOutboundDocumentLine {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentLineRecordId: number;\n public SourceDocumentTypeValue: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public QuantityToUpdate: number;\n public LocationId: string;\n public ItemId: string;\n public ProductId: number;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public OperationResultMessage: string;\n public IsCloseLine: boolean;\n public OriginTypeValue: number;\n public UnitOfMeasure: string;\n public SourceDocumentLine: Entities.InventoryInboundOutboundSourceDocumentLine;\n public SerialNumberLines: Entities.InventoryDocumentSerialNumberLine[];\n public LongVersion: number;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.QuantityToUpdate = \n (odataObject.QuantityToUpdate != null) ? parseFloat(odataObject.QuantityToUpdate) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OperationResultMessage = \n odataObject.OperationResultMessage;\n \n this.IsCloseLine = \n odataObject.IsCloseLine;\n \n this.OriginTypeValue = \n odataObject.OriginTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n if (odataObject.SourceDocumentLine == null) {\n this.SourceDocumentLine = undefined;\n } else if (odataObject.SourceDocumentLine['@odata.type'] == null) {\n this.SourceDocumentLine = new InventoryInboundOutboundSourceDocumentLineClass(odataObject.SourceDocumentLine);\n } else {\n var className: string = odataObject.SourceDocumentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceDocumentLine = new entityDictionary[className](odataObject.SourceDocumentLine)\n }\n }\n\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.LongVersion = \n (odataObject.LongVersion != null) ? parseInt(odataObject.LongVersion, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentLineClass'] = InventoryInboundOutboundDocumentLineClass;\n \n /**\n * InventoryInboundOutboundSourceDocument entity class.\n */\n export class InventoryInboundOutboundSourceDocumentClass implements Entities.InventoryInboundOutboundSourceDocument {\n public RecordId: number;\n public DocumentTypeValue: number;\n public DocumentId: string;\n public StatusValue: number;\n public ReceiveDate: Date;\n public ShipDate: Date;\n public Sender: string;\n public Receiver: string;\n public SenderDetails: string;\n public ReceiverDetails: string;\n public DeliveryMode: string;\n public TotalQuantityOrdered: number;\n public TotalQuantityShipped: number;\n public TotalQuantityReceived: number;\n public TotalQuantityCancelled: number;\n public DataAreaId: string;\n public Note: string;\n public TotalLines: number;\n public IsChangeAllowed: boolean;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentTypeId: string;\n public Description: string;\n public StaffId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ReceiveDate = \n (odataObject.ReceiveDate instanceof Date) ? odataObject.ReceiveDate\n : (odataObject.ReceiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.ReceiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ShipDate = \n (odataObject.ShipDate instanceof Date) ? odataObject.ShipDate\n : (odataObject.ShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Sender = \n odataObject.Sender;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.SenderDetails = \n odataObject.SenderDetails;\n \n this.ReceiverDetails = \n odataObject.ReceiverDetails;\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.TotalQuantityOrdered = \n (odataObject.TotalQuantityOrdered != null) ? parseFloat(odataObject.TotalQuantityOrdered) : undefined;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.TotalQuantityReceived = \n (odataObject.TotalQuantityReceived != null) ? parseFloat(odataObject.TotalQuantityReceived) : undefined;\n \n this.TotalQuantityCancelled = \n (odataObject.TotalQuantityCancelled != null) ? parseFloat(odataObject.TotalQuantityCancelled) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.TotalLines = \n (odataObject.TotalLines != null) ? parseInt(odataObject.TotalLines, 10) : undefined;\n \n this.IsChangeAllowed = \n odataObject.IsChangeAllowed;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentTypeId = \n odataObject.DocumentTypeId;\n \n this.Description = \n odataObject.Description;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentClass'] = InventoryInboundOutboundSourceDocumentClass;\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity class.\n */\n export class InventoryInboundOutboundSourceDocumentLineClass implements Entities.InventoryInboundOutboundSourceDocumentLine {\n public DocumentRecordId: number;\n public DocumentTypeValue: number;\n public RecordId: number;\n public LineNumber: number;\n public ItemId: string;\n public ProductId: number;\n public QuantityOrdered: number;\n public QuantityShipped: number;\n public QuantityReceived: number;\n public QuantityCancelled: number;\n public LocationId: string;\n public OverDeliveryPercentage: number;\n public UnderDeliveryPercentage: number;\n public UnitId: string;\n public Receiver: string;\n public DataAreaId: string;\n public Note: string;\n public NoteModifiedByStaffId: string;\n public NoteModifiedDateTime: Date;\n public DocumentId: string;\n public ItemName: string;\n public ItemPrimaryImageUrl: string;\n public IsLocationActive: boolean;\n public IsLocationAllowBlankReceiptEnabled: boolean;\n public IsLocationBlankIssueAllowed: boolean;\n public HasSerialNumber: boolean;\n public IsSerialNumberBlankReceiptAllowed: boolean;\n public IsSerialNumberDuplicateCheckEnabled: boolean;\n public ProductDimensions: Entities.ProductDimension[];\n public SerialNumberLines: Entities.InventoryDocumentSourceSerialNumberLine[];\n public StatusValue: number;\n public ToProductId: number;\n public ToLocationId: string;\n public InventoryDimensionId: string;\n public ToInventoryDimensionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentRecordId = \n (odataObject.DocumentRecordId != null) ? parseInt(odataObject.DocumentRecordId, 10) : undefined;\n \n this.DocumentTypeValue = \n odataObject.DocumentTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.QuantityReceived = \n (odataObject.QuantityReceived != null) ? parseFloat(odataObject.QuantityReceived) : undefined;\n \n this.QuantityCancelled = \n (odataObject.QuantityCancelled != null) ? parseFloat(odataObject.QuantityCancelled) : undefined;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.OverDeliveryPercentage = \n (odataObject.OverDeliveryPercentage != null) ? parseFloat(odataObject.OverDeliveryPercentage) : undefined;\n \n this.UnderDeliveryPercentage = \n (odataObject.UnderDeliveryPercentage != null) ? parseFloat(odataObject.UnderDeliveryPercentage) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.Receiver = \n odataObject.Receiver;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.Note = \n odataObject.Note;\n \n this.NoteModifiedByStaffId = \n odataObject.NoteModifiedByStaffId;\n \n this.NoteModifiedDateTime = \n (odataObject.NoteModifiedDateTime instanceof Date) ? odataObject.NoteModifiedDateTime\n : (odataObject.NoteModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.NoteModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.ItemPrimaryImageUrl = \n odataObject.ItemPrimaryImageUrl;\n \n this.IsLocationActive = \n odataObject.IsLocationActive;\n \n this.IsLocationAllowBlankReceiptEnabled = \n odataObject.IsLocationAllowBlankReceiptEnabled;\n \n this.IsLocationBlankIssueAllowed = \n odataObject.IsLocationBlankIssueAllowed;\n \n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsSerialNumberBlankReceiptAllowed = \n odataObject.IsSerialNumberBlankReceiptAllowed;\n \n this.IsSerialNumberDuplicateCheckEnabled = \n odataObject.IsSerialNumberDuplicateCheckEnabled;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.SerialNumberLines = undefined;\n if (odataObject.SerialNumberLines) {\n this.SerialNumberLines = [];\n for (var i = 0; i < odataObject.SerialNumberLines.length; i++) {\n if (odataObject.SerialNumberLines[i] != null) {\n if (odataObject.SerialNumberLines[i]['@odata.type'] != null) {\n var className: string = odataObject.SerialNumberLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SerialNumberLines[i] = new entityDictionary[className](odataObject.SerialNumberLines[i])\n }\n } else {\n this.SerialNumberLines[i] = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SerialNumberLines[i]);\n }\n } else {\n this.SerialNumberLines[i] = undefined;\n }\n }\n }\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ToProductId = \n (odataObject.ToProductId != null) ? parseInt(odataObject.ToProductId, 10) : undefined;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ToInventoryDimensionId = \n odataObject.ToInventoryDimensionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundSourceDocumentLineClass'] = InventoryInboundOutboundSourceDocumentLineClass;\n \n /**\n * InventoryDocumentLineFilterCriteria entity class.\n */\n export class InventoryDocumentLineFilterCriteriaClass implements Entities.InventoryDocumentLineFilterCriteria {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineFilterCriteriaClass'] = InventoryDocumentLineFilterCriteriaClass;\n \n /**\n * InventoryDocumentUpdateLinesAction entity class.\n */\n export class InventoryDocumentUpdateLinesActionClass implements Entities.InventoryDocumentUpdateLinesAction {\n public Quantity: number;\n public ActionTypeValue: number;\n public LocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ActionTypeValue = \n odataObject.ActionTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentUpdateLinesActionClass'] = InventoryDocumentUpdateLinesActionClass;\n \n /**\n * InventoryDocumentLineOperationResultSettings entity class.\n */\n export class InventoryDocumentLineOperationResultSettingsClass implements Entities.InventoryDocumentLineOperationResultSettings {\n public ModeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModeValue = \n odataObject.ModeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineOperationResultSettingsClass'] = InventoryDocumentLineOperationResultSettingsClass;\n \n /**\n * InventoryDocumentLineSearchCriteria entity class.\n */\n export class InventoryDocumentLineSearchCriteriaClass implements Entities.InventoryDocumentLineSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ProductId: number;\n public ItemIds: string[];\n public AvailableSerializedLineOnly: boolean;\n public DocumentLineIds: string[];\n public DocumentOperationTypeValue: number;\n public OperationTypeValue: number;\n public LocationId: string;\n public ToLocationId: string;\n public AdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n this.ItemIds[i] = \n odataObject.ItemIds[i];\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.AvailableSerializedLineOnly = \n odataObject.AvailableSerializedLineOnly;\n \n this.DocumentLineIds = undefined;\n if (odataObject.DocumentLineIds) {\n this.DocumentLineIds = [];\n for (var i = 0; i < odataObject.DocumentLineIds.length; i++) {\n if (odataObject.DocumentLineIds[i] != null) {\n this.DocumentLineIds[i] = \n odataObject.DocumentLineIds[i];\n } else {\n this.DocumentLineIds[i] = undefined;\n }\n }\n }\n \n this.DocumentOperationTypeValue = \n odataObject.DocumentOperationTypeValue;\n \n this.OperationTypeValue = \n odataObject.OperationTypeValue;\n \n this.LocationId = \n odataObject.LocationId;\n \n this.ToLocationId = \n odataObject.ToLocationId;\n \n this.AdjustmentTypeValue = \n odataObject.AdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentLineSearchCriteriaClass'] = InventoryDocumentLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSearchCriteria entity class.\n */\n export class InventoryDocumentSearchCriteriaClass implements Entities.InventoryDocumentSearchCriteria {\n public DocumentId: string;\n public TransferFromWarehouse: string;\n public ShipFromWarehouse: string;\n public TransferToWarehouse: string;\n public Description: string;\n public DocumentTypeIds: string[];\n public DocumentStateValue: number;\n public DocumentTypeValues: number[];\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.TransferFromWarehouse = \n odataObject.TransferFromWarehouse;\n \n this.ShipFromWarehouse = \n odataObject.ShipFromWarehouse;\n \n this.TransferToWarehouse = \n odataObject.TransferToWarehouse;\n \n this.Description = \n odataObject.Description;\n \n this.DocumentTypeIds = undefined;\n if (odataObject.DocumentTypeIds) {\n this.DocumentTypeIds = [];\n for (var i = 0; i < odataObject.DocumentTypeIds.length; i++) {\n if (odataObject.DocumentTypeIds[i] != null) {\n this.DocumentTypeIds[i] = \n odataObject.DocumentTypeIds[i];\n } else {\n this.DocumentTypeIds[i] = undefined;\n }\n }\n }\n \n this.DocumentStateValue = \n odataObject.DocumentStateValue;\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSearchCriteriaClass'] = InventoryDocumentSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity class.\n */\n export class InventoryDocumentSerialNumberLineSearchCriteriaClass implements Entities.InventoryDocumentSerialNumberLineSearchCriteria {\n public DocumentLineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineSearchCriteriaClass'] = InventoryDocumentSerialNumberLineSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity class.\n */\n export class InventoryDocumentSerialNumberLineUpdateActionClass implements Entities.InventoryDocumentSerialNumberLineUpdateAction {\n public DocumentLineId: string;\n public LineId: string;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineUpdateActionClass'] = InventoryDocumentSerialNumberLineUpdateActionClass;\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity class.\n */\n export class InventoryDocumentSerialNumberLineResetActionClass implements Entities.InventoryDocumentSerialNumberLineResetAction {\n public DocumentLineId: string;\n public LineId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineResetActionClass'] = InventoryDocumentSerialNumberLineResetActionClass;\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity class.\n */\n export class InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass implements Entities.InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n public UpdatedLines: Entities.InventoryInboundOutboundDocumentLine[];\n public TotalLinesUpdated: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UpdatedLines = undefined;\n if (odataObject.UpdatedLines) {\n this.UpdatedLines = [];\n for (var i = 0; i < odataObject.UpdatedLines.length; i++) {\n if (odataObject.UpdatedLines[i] != null) {\n if (odataObject.UpdatedLines[i]['@odata.type'] != null) {\n var className: string = odataObject.UpdatedLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UpdatedLines[i] = new entityDictionary[className](odataObject.UpdatedLines[i])\n }\n } else {\n this.UpdatedLines[i] = new InventoryInboundOutboundDocumentLineClass(odataObject.UpdatedLines[i]);\n }\n } else {\n this.UpdatedLines[i] = undefined;\n }\n }\n }\n \n this.TotalLinesUpdated = \n odataObject.TotalLinesUpdated;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass'] = InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass;\n \n /**\n * WarehouseLocationSearchCriteria entity class.\n */\n export class WarehouseLocationSearchCriteriaClass implements Entities.WarehouseLocationSearchCriteria {\n public WarehouseIds: string[];\n public IsLocationProfileRequired: boolean;\n public SearchText: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarehouseIds = undefined;\n if (odataObject.WarehouseIds) {\n this.WarehouseIds = [];\n for (var i = 0; i < odataObject.WarehouseIds.length; i++) {\n if (odataObject.WarehouseIds[i] != null) {\n this.WarehouseIds[i] = \n odataObject.WarehouseIds[i];\n } else {\n this.WarehouseIds[i] = undefined;\n }\n }\n }\n \n this.IsLocationProfileRequired = \n odataObject.IsLocationProfileRequired;\n \n this.SearchText = \n odataObject.SearchText;\n \n }\n }\n entityDictionary['WarehouseLocationSearchCriteriaClass'] = WarehouseLocationSearchCriteriaClass;\n \n /**\n * InventoryDocumentSerialNumberLine entity class.\n */\n export class InventoryDocumentSerialNumberLineClass implements Entities.InventoryDocumentSerialNumberLine {\n public WorkDocumentId: string;\n public WorkDocumentLineId: string;\n public SourceLineId: string;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public ModifiedDateTime: Date;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public SourceLine: Entities.InventoryDocumentSourceSerialNumberLine;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.WorkDocumentLineId = \n odataObject.WorkDocumentLineId;\n \n this.SourceLineId = \n odataObject.SourceLineId;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n if (odataObject.SourceLine == null) {\n this.SourceLine = undefined;\n } else if (odataObject.SourceLine['@odata.type'] == null) {\n this.SourceLine = new InventoryDocumentSourceSerialNumberLineClass(odataObject.SourceLine);\n } else {\n var className: string = odataObject.SourceLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SourceLine = new entityDictionary[className](odataObject.SourceLine)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSerialNumberLineClass'] = InventoryDocumentSerialNumberLineClass;\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity class.\n */\n export class InventoryDocumentValidationCategoryResultsSummaryClass implements Entities.InventoryDocumentValidationCategoryResultsSummary {\n public CategoryName: string;\n public SeverityValue: number;\n public TotalValidationResultCount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.TotalValidationResultCount = \n odataObject.TotalValidationResultCount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationCategoryResultsSummaryClass'] = InventoryDocumentValidationCategoryResultsSummaryClass;\n \n /**\n * InventoryDocumentValidationResultSummary entity class.\n */\n export class InventoryDocumentValidationResultSummaryClass implements Entities.InventoryDocumentValidationResultSummary {\n public DocumentId: string;\n public DocumentVersion: number;\n public CategorySummaries: Entities.InventoryDocumentValidationCategoryResultsSummary[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.CategorySummaries = undefined;\n if (odataObject.CategorySummaries) {\n this.CategorySummaries = [];\n for (var i = 0; i < odataObject.CategorySummaries.length; i++) {\n if (odataObject.CategorySummaries[i] != null) {\n if (odataObject.CategorySummaries[i]['@odata.type'] != null) {\n var className: string = odataObject.CategorySummaries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategorySummaries[i] = new entityDictionary[className](odataObject.CategorySummaries[i])\n }\n } else {\n this.CategorySummaries[i] = new InventoryDocumentValidationCategoryResultsSummaryClass(odataObject.CategorySummaries[i]);\n }\n } else {\n this.CategorySummaries[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSummaryClass'] = InventoryDocumentValidationResultSummaryClass;\n \n /**\n * InventoryDocumentValidationResultLine entity class.\n */\n export class InventoryDocumentValidationResultLineClass implements Entities.InventoryDocumentValidationResultLine {\n public DocumentValidationResultLineId: string;\n public CategoryName: string;\n public SeverityValue: number;\n public ErrorCode: number;\n public ErrorMessage: string;\n public DocumentId: string;\n public DocumentLongVersion: number;\n public DocumentLineId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentValidationResultLineId = \n odataObject.DocumentValidationResultLineId;\n \n this.CategoryName = \n odataObject.CategoryName;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentLongVersion = \n (odataObject.DocumentLongVersion != null) ? parseInt(odataObject.DocumentLongVersion, 10) : undefined;\n \n this.DocumentLineId = \n odataObject.DocumentLineId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultLineClass'] = InventoryDocumentValidationResultLineClass;\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity class.\n */\n export class InventoryDocumentValidationResultSearchCriteriaClass implements Entities.InventoryDocumentValidationResultSearchCriteria {\n public DocumentId: string;\n public DocumentVersion: number;\n public SeverityValue: number;\n public Categories: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DocumentId = \n odataObject.DocumentId;\n \n this.DocumentVersion = \n (odataObject.DocumentVersion != null) ? parseInt(odataObject.DocumentVersion, 10) : undefined;\n \n this.SeverityValue = \n odataObject.SeverityValue;\n \n this.Categories = undefined;\n if (odataObject.Categories) {\n this.Categories = [];\n for (var i = 0; i < odataObject.Categories.length; i++) {\n if (odataObject.Categories[i] != null) {\n this.Categories[i] = \n odataObject.Categories[i];\n } else {\n this.Categories[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentValidationResultSearchCriteriaClass'] = InventoryDocumentValidationResultSearchCriteriaClass;\n \n /**\n * ProductDimensionValueInventoryAvailability entity class.\n */\n export class ProductDimensionValueInventoryAvailabilityClass implements Entities.ProductDimensionValueInventoryAvailability {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ProductIds: number[];\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n }\n }\n entityDictionary['ProductDimensionValueInventoryAvailabilityClass'] = ProductDimensionValueInventoryAvailabilityClass;\n \n /**\n * ProductDimension entity class.\n */\n export class ProductDimensionClass implements Entities.ProductDimension {\n public DimensionTypeValue: number;\n public DimensionValue: Entities.ProductDimensionValue;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionTypeValue = \n odataObject.DimensionTypeValue;\n \n if (odataObject.DimensionValue == null) {\n this.DimensionValue = undefined;\n } else if (odataObject.DimensionValue['@odata.type'] == null) {\n this.DimensionValue = new ProductDimensionValueClass(odataObject.DimensionValue);\n } else {\n var className: string = odataObject.DimensionValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValue = new entityDictionary[className](odataObject.DimensionValue)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionClass'] = ProductDimensionClass;\n \n /**\n * ProductDimensionValue entity class.\n */\n export class ProductDimensionValueClass implements Entities.ProductDimensionValue {\n public RecordId: number;\n public Value: string;\n public DimensionId: string;\n public ColorHexCode: string;\n public ImageUrl: string;\n public RefinerGroup: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n odataObject.Value;\n \n this.DimensionId = \n odataObject.DimensionId;\n \n this.ColorHexCode = \n odataObject.ColorHexCode;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.RefinerGroup = \n odataObject.RefinerGroup;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionValueClass'] = ProductDimensionValueClass;\n \n /**\n * ProductDimensionCombination entity class.\n */\n export class ProductDimensionCombinationClass implements Entities.ProductDimensionCombination {\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionCombinationClass'] = ProductDimensionCombinationClass;\n \n /**\n * SearchRefiner entity class.\n */\n export class SearchRefinerClass implements Entities.SearchRefiner {\n public RecordId: number;\n public KeyName: string;\n public DataTypeValue: number;\n public RefinerTypeValue: number;\n public DisplayTemplateValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.RefinerTypeValue = \n odataObject.RefinerTypeValue;\n \n this.DisplayTemplateValue = \n odataObject.DisplayTemplateValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerClass'] = SearchRefinerClass;\n \n /**\n * SearchRefinerValue entity class.\n */\n export class SearchRefinerValueClass implements Entities.SearchRefinerValue {\n public RefinerRecordId: number;\n public DataTypeValue: number;\n public LeftValueBoundString: string;\n public RightValueBoundString: string;\n public UnitText: string;\n public RowNumber: number;\n public Count: number;\n public LeftValueBoundLocalizedString: string;\n public RightValueBoundLocalizedString: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinerRecordId = \n (odataObject.RefinerRecordId != null) ? parseInt(odataObject.RefinerRecordId, 10) : undefined;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.LeftValueBoundString = \n odataObject.LeftValueBoundString;\n \n this.RightValueBoundString = \n odataObject.RightValueBoundString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.RowNumber = \n odataObject.RowNumber;\n \n this.Count = \n odataObject.Count;\n \n this.LeftValueBoundLocalizedString = \n odataObject.LeftValueBoundLocalizedString;\n \n this.RightValueBoundLocalizedString = \n odataObject.RightValueBoundLocalizedString;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchRefinerValueClass'] = SearchRefinerValueClass;\n \n /**\n * ProductRefiner entity class.\n */\n export class ProductRefinerClass\n extends SearchRefinerClass\n implements Entities.ProductRefiner {\n public SourceValue: number;\n public Values: Entities.ProductRefinerValue[];\n public IsDimension: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ProductRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this.IsDimension = \n odataObject.IsDimension;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefiner\";\n \n }\n }\n entityDictionary['ProductRefinerClass'] = ProductRefinerClass;\n \n /**\n * ProductRefinerValue entity class.\n */\n export class ProductRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ProductRefinerValue {\n public RefinerSourceValue: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductRefinerValue\";\n \n }\n }\n entityDictionary['ProductRefinerValueClass'] = ProductRefinerValueClass;\n \n /**\n * ClientBookRefiner entity class.\n */\n export class ClientBookRefinerClass\n extends SearchRefinerClass\n implements Entities.ClientBookRefiner {\n public SourceValue: number;\n public Values: Entities.ClientBookRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new ClientBookRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefiner\";\n \n }\n }\n entityDictionary['ClientBookRefinerClass'] = ClientBookRefinerClass;\n \n /**\n * ClientBookRefinerValue entity class.\n */\n export class ClientBookRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.ClientBookRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ClientBookRefinerValue\";\n \n }\n }\n entityDictionary['ClientBookRefinerValueClass'] = ClientBookRefinerValueClass;\n \n /**\n * ProductRelationType entity class.\n */\n export class ProductRelationTypeClass implements Entities.ProductRelationType {\n public Name: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRelationTypeClass'] = ProductRelationTypeClass;\n \n /**\n * ComponentInSlotRelation entity class.\n */\n export class ComponentInSlotRelationClass implements Entities.ComponentInSlotRelation {\n public ComponentId: number;\n public SlotId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentId = \n (odataObject.ComponentId != null) ? parseInt(odataObject.ComponentId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentInSlotRelationClass'] = ComponentInSlotRelationClass;\n \n /**\n * ProductRules entity class.\n */\n export class ProductRulesClass implements Entities.ProductRules {\n public HasLinkedProducts: boolean;\n public IsSerialized: boolean;\n public IsActiveInSalesProcess: boolean;\n public IsBlocked: boolean;\n public DateOfBlocking: Date;\n public DateToActivate: Date;\n public DateToBlock: Date;\n public DefaultUnitOfMeasure: string;\n public PriceKeyingRequirementValue: number;\n public QuantityKeyingRequirementValue: number;\n public MustKeyInComment: boolean;\n public CanQuantityBecomeNegative: boolean;\n public MustScaleItem: boolean;\n public CanPriceBeZero: boolean;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasLinkedProducts = \n odataObject.HasLinkedProducts;\n \n this.IsSerialized = \n odataObject.IsSerialized;\n \n this.IsActiveInSalesProcess = \n odataObject.IsActiveInSalesProcess;\n \n this.IsBlocked = \n odataObject.IsBlocked;\n \n this.DateOfBlocking = \n (odataObject.DateOfBlocking instanceof Date) ? odataObject.DateOfBlocking\n : (odataObject.DateOfBlocking != null) ? jsonLightReadStringPropertyValue(odataObject.DateOfBlocking, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToActivate = \n (odataObject.DateToActivate instanceof Date) ? odataObject.DateToActivate\n : (odataObject.DateToActivate != null) ? jsonLightReadStringPropertyValue(odataObject.DateToActivate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DateToBlock = \n (odataObject.DateToBlock instanceof Date) ? odataObject.DateToBlock\n : (odataObject.DateToBlock != null) ? jsonLightReadStringPropertyValue(odataObject.DateToBlock, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.PriceKeyingRequirementValue = \n odataObject.PriceKeyingRequirementValue;\n \n this.QuantityKeyingRequirementValue = \n odataObject.QuantityKeyingRequirementValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.CanQuantityBecomeNegative = \n odataObject.CanQuantityBecomeNegative;\n \n this.MustScaleItem = \n odataObject.MustScaleItem;\n \n this.CanPriceBeZero = \n odataObject.CanPriceBeZero;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRulesClass'] = ProductRulesClass;\n \n /**\n * LocalizedString entity class.\n */\n export class LocalizedStringClass implements Entities.LocalizedString {\n public RecordId: number;\n public LanguageId: string;\n public TextId: number;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedStringClass'] = LocalizedStringClass;\n \n /**\n * LoyaltyCard entity class.\n */\n export class LoyaltyCardClass implements Entities.LoyaltyCard {\n public CardNumber: string;\n public CardTenderTypeValue: number;\n public CustomerAccount: string;\n public LoyaltyGroups: Entities.LoyaltyGroup[];\n public RewardPoints: Entities.LoyaltyRewardPoint[];\n public LoyaltyEnrollmentDate: Date;\n public LoyaltyEnrollmentDateLocal: Date;\n public LoyaltyEnrollmentTime: number;\n public LoyaltyEnrollmentTimeLocal: number;\n public OmOperatingUnitId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardNumber = \n odataObject.CardNumber;\n \n this.CardTenderTypeValue = \n odataObject.CardTenderTypeValue;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.LoyaltyGroups = undefined;\n if (odataObject.LoyaltyGroups) {\n this.LoyaltyGroups = [];\n for (var i = 0; i < odataObject.LoyaltyGroups.length; i++) {\n if (odataObject.LoyaltyGroups[i] != null) {\n if (odataObject.LoyaltyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyGroups[i] = new entityDictionary[className](odataObject.LoyaltyGroups[i])\n }\n } else {\n this.LoyaltyGroups[i] = new LoyaltyGroupClass(odataObject.LoyaltyGroups[i]);\n }\n } else {\n this.LoyaltyGroups[i] = undefined;\n }\n }\n }\n \n this.RewardPoints = undefined;\n if (odataObject.RewardPoints) {\n this.RewardPoints = [];\n for (var i = 0; i < odataObject.RewardPoints.length; i++) {\n if (odataObject.RewardPoints[i] != null) {\n if (odataObject.RewardPoints[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPoints[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPoints[i] = new entityDictionary[className](odataObject.RewardPoints[i])\n }\n } else {\n this.RewardPoints[i] = new LoyaltyRewardPointClass(odataObject.RewardPoints[i]);\n }\n } else {\n this.RewardPoints[i] = undefined;\n }\n }\n }\n \n this.LoyaltyEnrollmentDate = \n (odataObject.LoyaltyEnrollmentDate instanceof Date) ? odataObject.LoyaltyEnrollmentDate\n : (odataObject.LoyaltyEnrollmentDate != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentDateLocal = \n (odataObject.LoyaltyEnrollmentDateLocal instanceof Date) ? odataObject.LoyaltyEnrollmentDateLocal\n : (odataObject.LoyaltyEnrollmentDateLocal != null) ? jsonLightReadStringPropertyValue(odataObject.LoyaltyEnrollmentDateLocal, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyEnrollmentTime = \n odataObject.LoyaltyEnrollmentTime;\n \n this.LoyaltyEnrollmentTimeLocal = \n odataObject.LoyaltyEnrollmentTimeLocal;\n \n this.OmOperatingUnitId = \n (odataObject.OmOperatingUnitId != null) ? parseInt(odataObject.OmOperatingUnitId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardClass'] = LoyaltyCardClass;\n \n /**\n * ProductComponent entity class.\n */\n export class ProductComponentClass implements Entities.ProductComponent {\n public ProductId: number;\n public SlotId: number;\n public Product: Entities.SimpleProduct;\n public AdditionalChargeForComponent: number;\n public Behavior: Entities.ProductBehavior;\n public Description: string;\n public Dimensions: Entities.ProductDimension[];\n public ItemId: string;\n public Name: string;\n public ProductTypeValue: number;\n public Quantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n if (odataObject.Product == null) {\n this.Product = undefined;\n } else if (odataObject.Product['@odata.type'] == null) {\n this.Product = new SimpleProductClass(odataObject.Product);\n } else {\n var className: string = odataObject.Product['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Product = new entityDictionary[className](odataObject.Product)\n }\n }\n\n \n this.AdditionalChargeForComponent = \n (odataObject.AdditionalChargeForComponent != null) ? parseFloat(odataObject.AdditionalChargeForComponent) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Description = \n odataObject.Description;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductComponentClass'] = ProductComponentClass;\n \n /**\n * SimpleProduct entity class.\n */\n export class SimpleProductClass implements Entities.SimpleProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public MasterProductId: number;\n public Components: Entities.ProductComponent[];\n public IsGiftCard: boolean;\n public Dimensions: Entities.ProductDimension[];\n public Behavior: Entities.ProductBehavior;\n public LinkedProducts: Entities.SimpleLinkedProduct[];\n public PrimaryImageUrl: string;\n public ItemTypeValue: number;\n public ItemServiceTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.Components = undefined;\n if (odataObject.Components) {\n this.Components = [];\n for (var i = 0; i < odataObject.Components.length; i++) {\n if (odataObject.Components[i] != null) {\n if (odataObject.Components[i]['@odata.type'] != null) {\n var className: string = odataObject.Components[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Components[i] = new entityDictionary[className](odataObject.Components[i])\n }\n } else {\n this.Components[i] = new ProductComponentClass(odataObject.Components[i]);\n }\n } else {\n this.Components[i] = undefined;\n }\n }\n }\n \n this.IsGiftCard = \n odataObject.IsGiftCard;\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.LinkedProducts = undefined;\n if (odataObject.LinkedProducts) {\n this.LinkedProducts = [];\n for (var i = 0; i < odataObject.LinkedProducts.length; i++) {\n if (odataObject.LinkedProducts[i] != null) {\n if (odataObject.LinkedProducts[i]['@odata.type'] != null) {\n var className: string = odataObject.LinkedProducts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LinkedProducts[i] = new entityDictionary[className](odataObject.LinkedProducts[i])\n }\n } else {\n this.LinkedProducts[i] = new SimpleLinkedProductClass(odataObject.LinkedProducts[i]);\n }\n } else {\n this.LinkedProducts[i] = undefined;\n }\n }\n }\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.ItemTypeValue = \n odataObject.ItemTypeValue;\n \n this.ItemServiceTypeValue = \n odataObject.ItemServiceTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleProductClass'] = SimpleProductClass;\n \n /**\n * ProductBehavior entity class.\n */\n export class ProductBehaviorClass implements Entities.ProductBehavior {\n public HasSerialNumber: boolean;\n public IsDiscountAllowed: boolean;\n public IsManualDiscountAllowed: boolean;\n public IsKitDisassemblyAllowed: boolean;\n public IsNegativeQuantityAllowed: boolean;\n public IsReturnAllowed: boolean;\n public IsSaleAtPhysicalStoresAllowed: boolean;\n public IsZeroSalePriceAllowed: boolean;\n public KeyInPriceValue: number;\n public KeyInQuantityValue: number;\n public MustKeyInComment: boolean;\n public MustPrintIndividualShelfLabelsForVariants: boolean;\n public MustPromptForSerialNumberOnlyAtSale: boolean;\n public MustWeighProductAtSale: boolean;\n public ValidFromDateForSaleAtPhysicalStores: Date;\n public ValidToDateForSaleAtPhysicalStores: Date;\n public IsStorageDimensionGroupLocationActive: boolean;\n public IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n public AllowNegativePhysicalInventory: boolean;\n public IsStockedProduct: boolean;\n public IsBlankSerialNumberAllowed: boolean;\n public IsBlankSerialNumberReceiptAllowed: boolean;\n public IsSerialNumberControlEnabled: boolean;\n public IsStorageDimensionGroupLocationBlankIssueAllowed: boolean;\n public IsSerialNumberRequired: boolean;\n public DefaultQuantity: number;\n public MaximumQuantity: number;\n public MinimumQuantity: number;\n public MultipleOfQuantity: number;\n public InventoryLocationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasSerialNumber = \n odataObject.HasSerialNumber;\n \n this.IsDiscountAllowed = \n odataObject.IsDiscountAllowed;\n \n this.IsManualDiscountAllowed = \n odataObject.IsManualDiscountAllowed;\n \n this.IsKitDisassemblyAllowed = \n odataObject.IsKitDisassemblyAllowed;\n \n this.IsNegativeQuantityAllowed = \n odataObject.IsNegativeQuantityAllowed;\n \n this.IsReturnAllowed = \n odataObject.IsReturnAllowed;\n \n this.IsSaleAtPhysicalStoresAllowed = \n odataObject.IsSaleAtPhysicalStoresAllowed;\n \n this.IsZeroSalePriceAllowed = \n odataObject.IsZeroSalePriceAllowed;\n \n this.KeyInPriceValue = \n odataObject.KeyInPriceValue;\n \n this.KeyInQuantityValue = \n odataObject.KeyInQuantityValue;\n \n this.MustKeyInComment = \n odataObject.MustKeyInComment;\n \n this.MustPrintIndividualShelfLabelsForVariants = \n odataObject.MustPrintIndividualShelfLabelsForVariants;\n \n this.MustPromptForSerialNumberOnlyAtSale = \n odataObject.MustPromptForSerialNumberOnlyAtSale;\n \n this.MustWeighProductAtSale = \n odataObject.MustWeighProductAtSale;\n \n this.ValidFromDateForSaleAtPhysicalStores = \n (odataObject.ValidFromDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidFromDateForSaleAtPhysicalStores\n : (odataObject.ValidFromDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDateForSaleAtPhysicalStores = \n (odataObject.ValidToDateForSaleAtPhysicalStores instanceof Date) ? odataObject.ValidToDateForSaleAtPhysicalStores\n : (odataObject.ValidToDateForSaleAtPhysicalStores != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDateForSaleAtPhysicalStores, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.IsStorageDimensionGroupLocationActive = \n odataObject.IsStorageDimensionGroupLocationActive;\n \n this.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled = \n odataObject.IsStorageDimensionGroupLocationAllowBlankReceiptEnabled;\n \n this.AllowNegativePhysicalInventory = \n odataObject.AllowNegativePhysicalInventory;\n \n this.IsStockedProduct = \n odataObject.IsStockedProduct;\n \n this.IsBlankSerialNumberAllowed = \n odataObject.IsBlankSerialNumberAllowed;\n \n this.IsBlankSerialNumberReceiptAllowed = \n odataObject.IsBlankSerialNumberReceiptAllowed;\n \n this.IsSerialNumberControlEnabled = \n odataObject.IsSerialNumberControlEnabled;\n \n this.IsStorageDimensionGroupLocationBlankIssueAllowed = \n odataObject.IsStorageDimensionGroupLocationBlankIssueAllowed;\n \n this.IsSerialNumberRequired = \n odataObject.IsSerialNumberRequired;\n \n this.DefaultQuantity = \n (odataObject.DefaultQuantity != null) ? parseFloat(odataObject.DefaultQuantity) : undefined;\n \n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.MinimumQuantity = \n (odataObject.MinimumQuantity != null) ? parseFloat(odataObject.MinimumQuantity) : undefined;\n \n this.MultipleOfQuantity = \n (odataObject.MultipleOfQuantity != null) ? parseFloat(odataObject.MultipleOfQuantity) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductBehaviorClass'] = ProductBehaviorClass;\n \n /**\n * SimpleLinkedProduct entity class.\n */\n export class SimpleLinkedProductClass implements Entities.SimpleLinkedProduct {\n public RecordId: number;\n public ItemId: string;\n public Name: string;\n public Description: string;\n public ProductTypeValue: number;\n public DefaultUnitOfMeasure: string;\n public BasePrice: number;\n public Price: number;\n public AdjustedPrice: number;\n public Quantity: number;\n public Behavior: Entities.ProductBehavior;\n public Dimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ProductTypeValue = \n odataObject.ProductTypeValue;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n if (odataObject.Behavior == null) {\n this.Behavior = undefined;\n } else if (odataObject.Behavior['@odata.type'] == null) {\n this.Behavior = new ProductBehaviorClass(odataObject.Behavior);\n } else {\n var className: string = odataObject.Behavior['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Behavior = new entityDictionary[className](odataObject.Behavior)\n }\n }\n\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SimpleLinkedProductClass'] = SimpleLinkedProductClass;\n \n /**\n * ProductSearchResult entity class.\n */\n export class ProductSearchResultClass implements Entities.ProductSearchResult {\n public ItemId: string;\n public Name: string;\n public Price: number;\n public PrimaryImageUrl: string;\n public RecordId: number;\n public TrackingId: string;\n public AverageRating: number;\n public TotalRatings: number;\n public Description: string;\n public BasePrice: number;\n public MinVariantPrice: number;\n public MaxVariantPrice: number;\n public DisplayOrder: number;\n public AttributeValues: Entities.AttributeValue[];\n public IsMasterProduct: boolean;\n public MasterProductId: number;\n public DefaultUnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Name = \n odataObject.Name;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.PrimaryImageUrl = \n odataObject.PrimaryImageUrl;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TrackingId = \n odataObject.TrackingId;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.Description = \n odataObject.Description;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.MinVariantPrice = \n (odataObject.MinVariantPrice != null) ? parseFloat(odataObject.MinVariantPrice) : undefined;\n \n this.MaxVariantPrice = \n (odataObject.MaxVariantPrice != null) ? parseFloat(odataObject.MaxVariantPrice) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.AttributeValues = undefined;\n if (odataObject.AttributeValues) {\n this.AttributeValues = [];\n for (var i = 0; i < odataObject.AttributeValues.length; i++) {\n if (odataObject.AttributeValues[i] != null) {\n if (odataObject.AttributeValues[i]['@odata.type'] != null) {\n var className: string = odataObject.AttributeValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValues[i] = new entityDictionary[className](odataObject.AttributeValues[i])\n }\n } else {\n this.AttributeValues[i] = new AttributeValueClass(odataObject.AttributeValues[i]);\n }\n } else {\n this.AttributeValues[i] = undefined;\n }\n }\n }\n \n this.IsMasterProduct = \n odataObject.IsMasterProduct;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.DefaultUnitOfMeasure = \n odataObject.DefaultUnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductSearchResultClass'] = ProductSearchResultClass;\n \n /**\n * SearchSuggestion entity class.\n */\n export class SearchSuggestionClass implements Entities.SearchSuggestion {\n public Value: string;\n public Value2: Entities.CommerceProperty;\n public Value3: Entities.CommerceProperty;\n public Value4: Entities.CommerceProperty;\n public SuggestionType: string;\n public Id: string;\n public ImageUrl: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n if (odataObject.Value2 == null) {\n this.Value2 = undefined;\n } else if (odataObject.Value2['@odata.type'] == null) {\n this.Value2 = new CommercePropertyClass(odataObject.Value2);\n } else {\n var className: string = odataObject.Value2['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value2 = new entityDictionary[className](odataObject.Value2)\n }\n }\n\n \n if (odataObject.Value3 == null) {\n this.Value3 = undefined;\n } else if (odataObject.Value3['@odata.type'] == null) {\n this.Value3 = new CommercePropertyClass(odataObject.Value3);\n } else {\n var className: string = odataObject.Value3['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value3 = new entityDictionary[className](odataObject.Value3)\n }\n }\n\n \n if (odataObject.Value4 == null) {\n this.Value4 = undefined;\n } else if (odataObject.Value4['@odata.type'] == null) {\n this.Value4 = new CommercePropertyClass(odataObject.Value4);\n } else {\n var className: string = odataObject.Value4['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value4 = new entityDictionary[className](odataObject.Value4)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.Id = \n odataObject.Id;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchSuggestionClass'] = SearchSuggestionClass;\n \n /**\n * LoyaltyPointRedemptionEstimate entity class.\n */\n export class LoyaltyPointRedemptionEstimateClass implements Entities.LoyaltyPointRedemptionEstimate {\n public MaxCurrencyValueOfLoyaltyPoints: number;\n public RewardPointToRedeemList: Entities.LoyaltyRewardPointLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MaxCurrencyValueOfLoyaltyPoints = \n (odataObject.MaxCurrencyValueOfLoyaltyPoints != null) ? parseFloat(odataObject.MaxCurrencyValueOfLoyaltyPoints) : undefined;\n \n this.RewardPointToRedeemList = undefined;\n if (odataObject.RewardPointToRedeemList) {\n this.RewardPointToRedeemList = [];\n for (var i = 0; i < odataObject.RewardPointToRedeemList.length; i++) {\n if (odataObject.RewardPointToRedeemList[i] != null) {\n if (odataObject.RewardPointToRedeemList[i]['@odata.type'] != null) {\n var className: string = odataObject.RewardPointToRedeemList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RewardPointToRedeemList[i] = new entityDictionary[className](odataObject.RewardPointToRedeemList[i])\n }\n } else {\n this.RewardPointToRedeemList[i] = new LoyaltyRewardPointLineClass(odataObject.RewardPointToRedeemList[i]);\n }\n } else {\n this.RewardPointToRedeemList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyPointRedemptionEstimateClass'] = LoyaltyPointRedemptionEstimateClass;\n \n /**\n * LoyaltyGroup entity class.\n */\n export class LoyaltyGroupClass implements Entities.LoyaltyGroup {\n public Description: string;\n public Name: string;\n public RecordId: number;\n public LoyaltyTiers: Entities.LoyaltyTier[];\n public LoyaltyCardTiers: Entities.LoyaltyCardTier[];\n public HighestActiveLoyaltyCardTier: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.Name = \n odataObject.Name;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LoyaltyTiers = undefined;\n if (odataObject.LoyaltyTiers) {\n this.LoyaltyTiers = [];\n for (var i = 0; i < odataObject.LoyaltyTiers.length; i++) {\n if (odataObject.LoyaltyTiers[i] != null) {\n if (odataObject.LoyaltyTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyTiers[i] = new entityDictionary[className](odataObject.LoyaltyTiers[i])\n }\n } else {\n this.LoyaltyTiers[i] = new LoyaltyTierClass(odataObject.LoyaltyTiers[i]);\n }\n } else {\n this.LoyaltyTiers[i] = undefined;\n }\n }\n }\n \n this.LoyaltyCardTiers = undefined;\n if (odataObject.LoyaltyCardTiers) {\n this.LoyaltyCardTiers = [];\n for (var i = 0; i < odataObject.LoyaltyCardTiers.length; i++) {\n if (odataObject.LoyaltyCardTiers[i] != null) {\n if (odataObject.LoyaltyCardTiers[i]['@odata.type'] != null) {\n var className: string = odataObject.LoyaltyCardTiers[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LoyaltyCardTiers[i] = new entityDictionary[className](odataObject.LoyaltyCardTiers[i])\n }\n } else {\n this.LoyaltyCardTiers[i] = new LoyaltyCardTierClass(odataObject.LoyaltyCardTiers[i]);\n }\n } else {\n this.LoyaltyCardTiers[i] = undefined;\n }\n }\n }\n \n this.HighestActiveLoyaltyCardTier = \n (odataObject.HighestActiveLoyaltyCardTier != null) ? parseInt(odataObject.HighestActiveLoyaltyCardTier, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyGroupClass'] = LoyaltyGroupClass;\n \n /**\n * LoyaltyTier entity class.\n */\n export class LoyaltyTierClass implements Entities.LoyaltyTier {\n public Description: string;\n public RecordId: number;\n public TierId: string;\n public TierLevel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.TierLevel = \n (odataObject.TierLevel != null) ? parseFloat(odataObject.TierLevel) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyTierClass'] = LoyaltyTierClass;\n \n /**\n * LoyaltyCardTier entity class.\n */\n export class LoyaltyCardTierClass implements Entities.LoyaltyCardTier {\n public RecordId: number;\n public TierId: string;\n public LoyaltyTierRecordId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TierId = \n odataObject.TierId;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyCardTierClass'] = LoyaltyCardTierClass;\n \n /**\n * LoyaltyRewardPoint entity class.\n */\n export class LoyaltyRewardPointClass implements Entities.LoyaltyRewardPoint {\n public IsRedeemable: boolean;\n public RewardPointCurrency: string;\n public RewardPointTypeValue: number;\n public Description: string;\n public RewardPointId: string;\n public IssuedPoints: number;\n public UsedPoints: number;\n public ExpiredPoints: number;\n public ActivePoints: number;\n public PointsExpiringSoon: number;\n public UnvestedPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsRedeemable = \n odataObject.IsRedeemable;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.RewardPointTypeValue = \n odataObject.RewardPointTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.IssuedPoints = \n (odataObject.IssuedPoints != null) ? parseFloat(odataObject.IssuedPoints) : undefined;\n \n this.UsedPoints = \n (odataObject.UsedPoints != null) ? parseFloat(odataObject.UsedPoints) : undefined;\n \n this.ExpiredPoints = \n (odataObject.ExpiredPoints != null) ? parseFloat(odataObject.ExpiredPoints) : undefined;\n \n this.ActivePoints = \n (odataObject.ActivePoints != null) ? parseFloat(odataObject.ActivePoints) : undefined;\n \n this.PointsExpiringSoon = \n (odataObject.PointsExpiringSoon != null) ? parseFloat(odataObject.PointsExpiringSoon) : undefined;\n \n this.UnvestedPoints = \n (odataObject.UnvestedPoints != null) ? parseFloat(odataObject.UnvestedPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointClass'] = LoyaltyRewardPointClass;\n \n /**\n * LoyaltyCardTransaction entity class.\n */\n export class LoyaltyCardTransactionClass implements Entities.LoyaltyCardTransaction {\n public ChannelName: string;\n public EntryDateTime: Date;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public RewardPointAmountQuantity: number;\n public TransactionId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelName = \n odataObject.ChannelName;\n \n this.EntryDateTime = \n (odataObject.EntryDateTime instanceof Date) ? odataObject.EntryDateTime\n : (odataObject.EntryDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n }\n }\n entityDictionary['LoyaltyCardTransactionClass'] = LoyaltyCardTransactionClass;\n \n /**\n * GiftCard entity class.\n */\n export class GiftCardClass implements Entities.GiftCard {\n public Id: string;\n public Balance: number;\n public BalanceCurrencyCode: string;\n public BalanceInCardCurrency: number;\n public CardCurrencyCode: string;\n public GiftCardIssueAmount: number;\n public GiftCardActiveFrom: Date;\n public GiftCardExpireDate: Date;\n public GiftCardHistoryDetails: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n this.BalanceCurrencyCode = \n odataObject.BalanceCurrencyCode;\n \n this.BalanceInCardCurrency = \n (odataObject.BalanceInCardCurrency != null) ? parseFloat(odataObject.BalanceInCardCurrency) : undefined;\n \n this.CardCurrencyCode = \n odataObject.CardCurrencyCode;\n \n this.GiftCardIssueAmount = \n (odataObject.GiftCardIssueAmount != null) ? parseFloat(odataObject.GiftCardIssueAmount) : undefined;\n \n this.GiftCardActiveFrom = \n (odataObject.GiftCardActiveFrom instanceof Date) ? odataObject.GiftCardActiveFrom\n : (odataObject.GiftCardActiveFrom != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardActiveFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardExpireDate = \n (odataObject.GiftCardExpireDate instanceof Date) ? odataObject.GiftCardExpireDate\n : (odataObject.GiftCardExpireDate != null) ? jsonLightReadStringPropertyValue(odataObject.GiftCardExpireDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.GiftCardHistoryDetails = \n odataObject.GiftCardHistoryDetails;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['GiftCardClass'] = GiftCardClass;\n \n /**\n * OperationPermission entity class.\n */\n export class OperationPermissionClass implements Entities.OperationPermission {\n public OperationName: string;\n public OperationId: number;\n public CheckUserAccess: boolean;\n public AllowAnonymousAccess: boolean;\n public AllowCustomerAccess: boolean;\n public AllowApplicationAccess: boolean;\n public IsEnabledForTaskManagement: boolean;\n public Permissions: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OperationName = \n odataObject.OperationName;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.CheckUserAccess = \n odataObject.CheckUserAccess;\n \n this.AllowAnonymousAccess = \n odataObject.AllowAnonymousAccess;\n \n this.AllowCustomerAccess = \n odataObject.AllowCustomerAccess;\n \n this.AllowApplicationAccess = \n odataObject.AllowApplicationAccess;\n \n this.IsEnabledForTaskManagement = \n odataObject.IsEnabledForTaskManagement;\n \n this.Permissions = undefined;\n if (odataObject.Permissions) {\n this.Permissions = [];\n for (var i = 0; i < odataObject.Permissions.length; i++) {\n if (odataObject.Permissions[i] != null) {\n this.Permissions[i] = \n odataObject.Permissions[i];\n } else {\n this.Permissions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OperationPermissionClass'] = OperationPermissionClass;\n \n /**\n * StateProvinceInfo entity class.\n */\n export class StateProvinceInfoClass implements Entities.StateProvinceInfo {\n public CountryRegionId: string;\n public StateId: string;\n public StateName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.StateName = \n odataObject.StateName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StateProvinceInfoClass'] = StateProvinceInfoClass;\n \n /**\n * TransactionLog entity class.\n */\n export class TransactionLogClass\n extends TransactionClass\n implements Entities.TransactionLog {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TransactionLog\";\n \n }\n }\n entityDictionary['TransactionLogClass'] = TransactionLogClass;\n \n /**\n * KitTransaction entity class.\n */\n export class KitTransactionClass\n extends TransactionLogClass\n implements Entities.KitTransaction {\n public KitTransactionLines: Entities.KitTransactionLine[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.KitTransactionLines = undefined;\n if (odataObject.KitTransactionLines) {\n this.KitTransactionLines = [];\n for (var i = 0; i < odataObject.KitTransactionLines.length; i++) {\n if (odataObject.KitTransactionLines[i] != null) {\n if (odataObject.KitTransactionLines[i]['@odata.type'] != null) {\n var className: string = odataObject.KitTransactionLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitTransactionLines[i] = new entityDictionary[className](odataObject.KitTransactionLines[i])\n }\n } else {\n this.KitTransactionLines[i] = new KitTransactionLineClass(odataObject.KitTransactionLines[i]);\n }\n } else {\n this.KitTransactionLines[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.KitTransaction\";\n \n }\n }\n entityDictionary['KitTransactionClass'] = KitTransactionClass;\n \n /**\n * SalesTaxGroup entity class.\n */\n export class SalesTaxGroupClass implements Entities.SalesTaxGroup {\n public RecordId: number;\n public TaxGroup: string;\n public TaxGroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TaxGroup = \n odataObject.TaxGroup;\n \n this.TaxGroupName = \n odataObject.TaxGroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesTaxGroupClass'] = SalesTaxGroupClass;\n \n /**\n * ProductProperty entity class.\n */\n export class ProductPropertyClass implements Entities.ProductProperty {\n public ValueString: string;\n public UnitText: string;\n public PropertyTypeValue: number;\n public KeyName: string;\n public FriendlyName: string;\n public RecordId: number;\n public IsDimensionProperty: boolean;\n public AttributeValueId: number;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public GroupId: number;\n public GroupTypeValue: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n public ProductId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValueString = \n odataObject.ValueString;\n \n this.UnitText = \n odataObject.UnitText;\n \n this.PropertyTypeValue = \n odataObject.PropertyTypeValue;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.FriendlyName = \n odataObject.FriendlyName;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.IsDimensionProperty = \n odataObject.IsDimensionProperty;\n \n this.AttributeValueId = \n (odataObject.AttributeValueId != null) ? parseInt(odataObject.AttributeValueId, 10) : undefined;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.GroupId = \n (odataObject.GroupId != null) ? parseInt(odataObject.GroupId, 10) : undefined;\n \n this.GroupTypeValue = \n odataObject.GroupTypeValue;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductPropertyClass'] = ProductPropertyClass;\n \n /**\n * ProductCompositionInformation entity class.\n */\n export class ProductCompositionInformationClass implements Entities.ProductCompositionInformation {\n public VariantInformation: Entities.ProductVariantInformation;\n public KitDefinition: Entities.KitDefinition;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.VariantInformation == null) {\n this.VariantInformation = undefined;\n } else if (odataObject.VariantInformation['@odata.type'] == null) {\n this.VariantInformation = new ProductVariantInformationClass(odataObject.VariantInformation);\n } else {\n var className: string = odataObject.VariantInformation['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.VariantInformation = new entityDictionary[className](odataObject.VariantInformation)\n }\n }\n\n \n if (odataObject.KitDefinition == null) {\n this.KitDefinition = undefined;\n } else if (odataObject.KitDefinition['@odata.type'] == null) {\n this.KitDefinition = new KitDefinitionClass(odataObject.KitDefinition);\n } else {\n var className: string = odataObject.KitDefinition['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitDefinition = new entityDictionary[className](odataObject.KitDefinition)\n }\n }\n\n \n }\n }\n entityDictionary['ProductCompositionInformationClass'] = ProductCompositionInformationClass;\n \n /**\n * ProductVariantInformation entity class.\n */\n export class ProductVariantInformationClass implements Entities.ProductVariantInformation {\n public ActiveVariantProductId: number;\n public Variants: Entities.ProductVariant[];\n public Dimensions: Entities.ProductDimensionSet[];\n public ItemId: string;\n public MasterProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActiveVariantProductId = \n (odataObject.ActiveVariantProductId != null) ? parseInt(odataObject.ActiveVariantProductId, 10) : undefined;\n \n this.Variants = undefined;\n if (odataObject.Variants) {\n this.Variants = [];\n for (var i = 0; i < odataObject.Variants.length; i++) {\n if (odataObject.Variants[i] != null) {\n if (odataObject.Variants[i]['@odata.type'] != null) {\n var className: string = odataObject.Variants[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Variants[i] = new entityDictionary[className](odataObject.Variants[i])\n }\n } else {\n this.Variants[i] = new ProductVariantClass(odataObject.Variants[i]);\n }\n } else {\n this.Variants[i] = undefined;\n }\n }\n }\n \n this.Dimensions = undefined;\n if (odataObject.Dimensions) {\n this.Dimensions = [];\n for (var i = 0; i < odataObject.Dimensions.length; i++) {\n if (odataObject.Dimensions[i] != null) {\n if (odataObject.Dimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.Dimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Dimensions[i] = new entityDictionary[className](odataObject.Dimensions[i])\n }\n } else {\n this.Dimensions[i] = new ProductDimensionSetClass(odataObject.Dimensions[i]);\n }\n } else {\n this.Dimensions[i] = undefined;\n }\n }\n }\n \n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductVariantInformationClass'] = ProductVariantInformationClass;\n \n /**\n * ProductChangeTrackingInformation entity class.\n */\n export class ProductChangeTrackingInformationClass implements Entities.ProductChangeTrackingInformation {\n public ModifiedDateTime: Date;\n public ChangeActionValue: number;\n public RequestedActionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ModifiedDateTime = \n (odataObject.ModifiedDateTime instanceof Date) ? odataObject.ModifiedDateTime\n : (odataObject.ModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChangeActionValue = \n odataObject.ChangeActionValue;\n \n this.RequestedActionValue = \n odataObject.RequestedActionValue;\n \n }\n }\n entityDictionary['ProductChangeTrackingInformationClass'] = ProductChangeTrackingInformationClass;\n \n /**\n * ProductDimensionSet entity class.\n */\n export class ProductDimensionSetClass implements Entities.ProductDimensionSet {\n public DimensionKey: string;\n public DimensionValues: Entities.ProductDimensionValueSet[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionKey = \n odataObject.DimensionKey;\n \n this.DimensionValues = undefined;\n if (odataObject.DimensionValues) {\n this.DimensionValues = [];\n for (var i = 0; i < odataObject.DimensionValues.length; i++) {\n if (odataObject.DimensionValues[i] != null) {\n if (odataObject.DimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.DimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DimensionValues[i] = new entityDictionary[className](odataObject.DimensionValues[i])\n }\n } else {\n this.DimensionValues[i] = new ProductDimensionValueSetClass(odataObject.DimensionValues[i]);\n }\n } else {\n this.DimensionValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDimensionSetClass'] = ProductDimensionSetClass;\n \n /**\n * ProductDimensionValueSet entity class.\n */\n export class ProductDimensionValueSetClass implements Entities.ProductDimensionValueSet {\n public DimensionId: string;\n public DimensionValue: string;\n public VariantSet: number[];\n public Language: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public SwatchRefinerGroupValue: string;\n public SwatchRefinerGroupTranslation: string;\n public SwatchRefinerGroupImageUrl: string;\n public SwatchRefinerGroupColorHexCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DimensionId = \n odataObject.DimensionId;\n \n this.DimensionValue = \n odataObject.DimensionValue;\n \n this.VariantSet = undefined;\n if (odataObject.VariantSet) {\n this.VariantSet = [];\n for (var i = 0; i < odataObject.VariantSet.length; i++) {\n if (odataObject.VariantSet[i] != null) {\n this.VariantSet[i] = \n parseInt(odataObject.VariantSet[i], 10);\n } else {\n this.VariantSet[i] = undefined;\n }\n }\n }\n \n this.Language = \n odataObject.Language;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.SwatchRefinerGroupValue = \n odataObject.SwatchRefinerGroupValue;\n \n this.SwatchRefinerGroupTranslation = \n odataObject.SwatchRefinerGroupTranslation;\n \n this.SwatchRefinerGroupImageUrl = \n odataObject.SwatchRefinerGroupImageUrl;\n \n this.SwatchRefinerGroupColorHexCode = \n odataObject.SwatchRefinerGroupColorHexCode;\n \n }\n }\n entityDictionary['ProductDimensionValueSetClass'] = ProductDimensionValueSetClass;\n \n /**\n * RichMediaLocations entity class.\n */\n export class RichMediaLocationsClass implements Entities.RichMediaLocations {\n public Items: Entities.RichMediaLocationsRichMediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Items = undefined;\n if (odataObject.Items) {\n this.Items = [];\n for (var i = 0; i < odataObject.Items.length; i++) {\n if (odataObject.Items[i] != null) {\n if (odataObject.Items[i]['@odata.type'] != null) {\n var className: string = odataObject.Items[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Items[i] = new entityDictionary[className](odataObject.Items[i])\n }\n } else {\n this.Items[i] = new RichMediaLocationsRichMediaLocationClass(odataObject.Items[i]);\n }\n } else {\n this.Items[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RichMediaLocationsClass'] = RichMediaLocationsClass;\n \n /**\n * RichMediaLocationsRichMediaLocation entity class.\n */\n export class RichMediaLocationsRichMediaLocationClass implements Entities.RichMediaLocationsRichMediaLocation {\n public Url: string;\n public AltText: string;\n public IsSelfHosted: boolean;\n public IsDefault: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n }\n }\n entityDictionary['RichMediaLocationsRichMediaLocationClass'] = RichMediaLocationsRichMediaLocationClass;\n \n /**\n * KitDefinition entity class.\n */\n export class KitDefinitionClass implements Entities.KitDefinition {\n public DisassembleAtRegister: boolean;\n public KitLineDefinitions: Entities.KitLineDefinition[];\n public KitLineProductToVariantMap: Entities.ComponentKitVariantSet[];\n public KitVariantToComponentMap: Entities.KitVariantContent[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DisassembleAtRegister = \n odataObject.DisassembleAtRegister;\n \n this.KitLineDefinitions = undefined;\n if (odataObject.KitLineDefinitions) {\n this.KitLineDefinitions = [];\n for (var i = 0; i < odataObject.KitLineDefinitions.length; i++) {\n if (odataObject.KitLineDefinitions[i] != null) {\n if (odataObject.KitLineDefinitions[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineDefinitions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineDefinitions[i] = new entityDictionary[className](odataObject.KitLineDefinitions[i])\n }\n } else {\n this.KitLineDefinitions[i] = new KitLineDefinitionClass(odataObject.KitLineDefinitions[i]);\n }\n } else {\n this.KitLineDefinitions[i] = undefined;\n }\n }\n }\n \n this.KitLineProductToVariantMap = undefined;\n if (odataObject.KitLineProductToVariantMap) {\n this.KitLineProductToVariantMap = [];\n for (var i = 0; i < odataObject.KitLineProductToVariantMap.length; i++) {\n if (odataObject.KitLineProductToVariantMap[i] != null) {\n if (odataObject.KitLineProductToVariantMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitLineProductToVariantMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitLineProductToVariantMap[i] = new entityDictionary[className](odataObject.KitLineProductToVariantMap[i])\n }\n } else {\n this.KitLineProductToVariantMap[i] = new ComponentKitVariantSetClass(odataObject.KitLineProductToVariantMap[i]);\n }\n } else {\n this.KitLineProductToVariantMap[i] = undefined;\n }\n }\n }\n \n this.KitVariantToComponentMap = undefined;\n if (odataObject.KitVariantToComponentMap) {\n this.KitVariantToComponentMap = [];\n for (var i = 0; i < odataObject.KitVariantToComponentMap.length; i++) {\n if (odataObject.KitVariantToComponentMap[i] != null) {\n if (odataObject.KitVariantToComponentMap[i]['@odata.type'] != null) {\n var className: string = odataObject.KitVariantToComponentMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitVariantToComponentMap[i] = new entityDictionary[className](odataObject.KitVariantToComponentMap[i])\n }\n } else {\n this.KitVariantToComponentMap[i] = new KitVariantContentClass(odataObject.KitVariantToComponentMap[i]);\n }\n } else {\n this.KitVariantToComponentMap[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitDefinitionClass'] = KitDefinitionClass;\n \n /**\n * ComponentKitVariantSet entity class.\n */\n export class ComponentKitVariantSetClass implements Entities.ComponentKitVariantSet {\n public KitLineProductId: number;\n public KitVariantIdList: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineProductId = \n (odataObject.KitLineProductId != null) ? parseInt(odataObject.KitLineProductId, 10) : undefined;\n \n this.KitVariantIdList = undefined;\n if (odataObject.KitVariantIdList) {\n this.KitVariantIdList = [];\n for (var i = 0; i < odataObject.KitVariantIdList.length; i++) {\n if (odataObject.KitVariantIdList[i] != null) {\n this.KitVariantIdList[i] = \n parseInt(odataObject.KitVariantIdList[i], 10);\n } else {\n this.KitVariantIdList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ComponentKitVariantSetClass'] = ComponentKitVariantSetClass;\n \n /**\n * KitLineDefinition entity class.\n */\n export class KitLineDefinitionClass implements Entities.KitLineDefinition {\n public ComponentProductId: number;\n public KitLineIdentifier: number;\n public SubstituteProductIds: number[];\n public ComponentProperties: Entities.KitLineProductProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ComponentProductId = \n (odataObject.ComponentProductId != null) ? parseInt(odataObject.ComponentProductId, 10) : undefined;\n \n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.SubstituteProductIds = undefined;\n if (odataObject.SubstituteProductIds) {\n this.SubstituteProductIds = [];\n for (var i = 0; i < odataObject.SubstituteProductIds.length; i++) {\n if (odataObject.SubstituteProductIds[i] != null) {\n this.SubstituteProductIds[i] = \n parseInt(odataObject.SubstituteProductIds[i], 10);\n } else {\n this.SubstituteProductIds[i] = undefined;\n }\n }\n }\n \n this.ComponentProperties = undefined;\n if (odataObject.ComponentProperties) {\n this.ComponentProperties = [];\n for (var i = 0; i < odataObject.ComponentProperties.length; i++) {\n if (odataObject.ComponentProperties[i] != null) {\n if (odataObject.ComponentProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ComponentProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ComponentProperties[i] = new entityDictionary[className](odataObject.ComponentProperties[i])\n }\n } else {\n this.ComponentProperties[i] = new KitLineProductPropertyClass(odataObject.ComponentProperties[i]);\n }\n } else {\n this.ComponentProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineDefinitionClass'] = KitLineDefinitionClass;\n \n /**\n * KitLineProductProperty entity class.\n */\n export class KitLineProductPropertyClass implements Entities.KitLineProductProperty {\n public KitLineIdentifier: number;\n public ProductId: number;\n public Unit: string;\n public Quantity: number;\n public Charge: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Charge = \n (odataObject.Charge != null) ? parseFloat(odataObject.Charge) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitLineProductPropertyClass'] = KitLineProductPropertyClass;\n \n /**\n * KitComponentKey entity class.\n */\n export class KitComponentKeyClass implements Entities.KitComponentKey {\n public KitLineIdentifier: number;\n public DistinctProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitLineIdentifier = \n (odataObject.KitLineIdentifier != null) ? parseInt(odataObject.KitLineIdentifier, 10) : undefined;\n \n this.DistinctProductId = \n (odataObject.DistinctProductId != null) ? parseInt(odataObject.DistinctProductId, 10) : undefined;\n \n }\n }\n entityDictionary['KitComponentKeyClass'] = KitComponentKeyClass;\n \n /**\n * KitVariantContent entity class.\n */\n export class KitVariantContentClass implements Entities.KitVariantContent {\n public KitVariantId: number;\n public KitComponentKeyList: Entities.KitComponentKey[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.KitVariantId = \n (odataObject.KitVariantId != null) ? parseInt(odataObject.KitVariantId, 10) : undefined;\n \n this.KitComponentKeyList = undefined;\n if (odataObject.KitComponentKeyList) {\n this.KitComponentKeyList = [];\n for (var i = 0; i < odataObject.KitComponentKeyList.length; i++) {\n if (odataObject.KitComponentKeyList[i] != null) {\n if (odataObject.KitComponentKeyList[i]['@odata.type'] != null) {\n var className: string = odataObject.KitComponentKeyList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.KitComponentKeyList[i] = new entityDictionary[className](odataObject.KitComponentKeyList[i])\n }\n } else {\n this.KitComponentKeyList[i] = new KitComponentKeyClass(odataObject.KitComponentKeyList[i]);\n }\n } else {\n this.KitComponentKeyList[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitVariantContentClass'] = KitVariantContentClass;\n \n /**\n * ProductLookupClause entity class.\n */\n export class ProductLookupClauseClass implements Entities.ProductLookupClause {\n public ItemId: string;\n public InventDimensionId: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductLookupClauseClass'] = ProductLookupClauseClass;\n \n /**\n * ProductAssortmentInterval entity class.\n */\n export class ProductAssortmentIntervalClass implements Entities.ProductAssortmentInterval {\n public ProductId: number;\n public ValidFrom: Date;\n public ValidTo: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAssortmentIntervalClass'] = ProductAssortmentIntervalClass;\n \n /**\n * OrgUnitLocation entity class.\n */\n export class OrgUnitLocationClass implements Entities.OrgUnitLocation {\n public Contacts: Entities.OrgUnitContact[];\n public ChannelId: number;\n public Latitude: number;\n public Longitude: number;\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n public Address: string;\n public Street: string;\n public StreetNumber: string;\n public City: string;\n public DistrictName: string;\n public BuildingCompliment: string;\n public Postbox: string;\n public Zip: string;\n public County: string;\n public CountyName: string;\n public State: string;\n public StateName: string;\n public Country: string;\n public Distance: number;\n public InventoryLocationId: string;\n public InventorySiteId: string;\n public PostalAddressId: number;\n public OpenFrom: number;\n public OpenTo: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Latitude = \n (odataObject.Latitude != null) ? parseFloat(odataObject.Latitude) : undefined;\n \n this.Longitude = \n (odataObject.Longitude != null) ? parseFloat(odataObject.Longitude) : undefined;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.Address = \n odataObject.Address;\n \n this.Street = \n odataObject.Street;\n \n this.StreetNumber = \n odataObject.StreetNumber;\n \n this.City = \n odataObject.City;\n \n this.DistrictName = \n odataObject.DistrictName;\n \n this.BuildingCompliment = \n odataObject.BuildingCompliment;\n \n this.Postbox = \n odataObject.Postbox;\n \n this.Zip = \n odataObject.Zip;\n \n this.County = \n odataObject.County;\n \n this.CountyName = \n odataObject.CountyName;\n \n this.State = \n odataObject.State;\n \n this.StateName = \n odataObject.StateName;\n \n this.Country = \n odataObject.Country;\n \n this.Distance = \n (odataObject.Distance != null) ? parseFloat(odataObject.Distance) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.InventorySiteId = \n odataObject.InventorySiteId;\n \n this.PostalAddressId = \n (odataObject.PostalAddressId != null) ? parseInt(odataObject.PostalAddressId, 10) : undefined;\n \n this.OpenFrom = \n odataObject.OpenFrom;\n \n this.OpenTo = \n odataObject.OpenTo;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitLocationClass'] = OrgUnitLocationClass;\n \n /**\n * OrgUnitContact entity class.\n */\n export class OrgUnitContactClass implements Entities.OrgUnitContact {\n public ChannelId: number;\n public Locator: string;\n public LocatorExtension: string;\n public ContactTypeValue: number;\n public IsPrimary: boolean;\n public IsPrivate: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Locator = \n odataObject.Locator;\n \n this.LocatorExtension = \n odataObject.LocatorExtension;\n \n this.ContactTypeValue = \n odataObject.ContactTypeValue;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrgUnitContactClass'] = OrgUnitContactClass;\n \n /**\n * SalesLineDeliveryOption entity class.\n */\n export class SalesLineDeliveryOptionClass implements Entities.SalesLineDeliveryOption {\n public SalesLineId: string;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineId = \n odataObject.SalesLineId;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesLineDeliveryOptionClass'] = SalesLineDeliveryOptionClass;\n \n /**\n * DeliveryOption entity class.\n */\n export class DeliveryOptionClass implements Entities.DeliveryOption {\n public ChargeGroup: string;\n public Code: string;\n public Description: string;\n public RecordId: number;\n public DeliveryChargeLines: Entities.DeliveryChargeLine[];\n public TotalChargeAmount: number;\n public ShippingChargeAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeGroup = \n odataObject.ChargeGroup;\n \n this.Code = \n odataObject.Code;\n \n this.Description = \n odataObject.Description;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.DeliveryChargeLines = undefined;\n if (odataObject.DeliveryChargeLines) {\n this.DeliveryChargeLines = [];\n for (var i = 0; i < odataObject.DeliveryChargeLines.length; i++) {\n if (odataObject.DeliveryChargeLines[i] != null) {\n if (odataObject.DeliveryChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryChargeLines[i] = new entityDictionary[className](odataObject.DeliveryChargeLines[i])\n }\n } else {\n this.DeliveryChargeLines[i] = new DeliveryChargeLineClass(odataObject.DeliveryChargeLines[i]);\n }\n } else {\n this.DeliveryChargeLines[i] = undefined;\n }\n }\n }\n \n this.TotalChargeAmount = \n (odataObject.TotalChargeAmount != null) ? parseFloat(odataObject.TotalChargeAmount) : undefined;\n \n this.ShippingChargeAmount = \n (odataObject.ShippingChargeAmount != null) ? parseFloat(odataObject.ShippingChargeAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryOptionClass'] = DeliveryOptionClass;\n \n /**\n * ChannelDeliveryOption entity class.\n */\n export class ChannelDeliveryOptionClass implements Entities.ChannelDeliveryOption {\n public ChannelId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionClass'] = ChannelDeliveryOptionClass;\n \n /**\n * ChannelIdentity entity class.\n */\n export class ChannelIdentityClass implements Entities.ChannelIdentity {\n public ChannelType: Entities.ExtensibleRetailChannelType;\n public Name: string;\n public OperatingUnitNumber: string;\n public DataAreaId: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ChannelType == null) {\n this.ChannelType = undefined;\n } else if (odataObject.ChannelType['@odata.type'] == null) {\n this.ChannelType = new ExtensibleRetailChannelTypeClass(odataObject.ChannelType);\n } else {\n var className: string = odataObject.ChannelType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelType = new entityDictionary[className](odataObject.ChannelType)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.OperatingUnitNumber = \n odataObject.OperatingUnitNumber;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelIdentityClass'] = ChannelIdentityClass;\n \n /**\n * ExtensibleRetailChannelType entity class.\n */\n export class ExtensibleRetailChannelTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleRetailChannelType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleRetailChannelType\";\n \n }\n }\n entityDictionary['ExtensibleRetailChannelTypeClass'] = ExtensibleRetailChannelTypeClass;\n \n /**\n * ChannelProfileProperty entity class.\n */\n export class ChannelProfilePropertyClass implements Entities.ChannelProfileProperty {\n public Key: number;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Key = \n odataObject.Key;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfilePropertyClass'] = ChannelProfilePropertyClass;\n \n /**\n * ChannelConfiguration entity class.\n */\n export class ChannelConfigurationClass implements Entities.ChannelConfiguration {\n public RecordId: number;\n public ChannelNaturalId: string;\n public MinimumDepositPercentage: number;\n public QuoteExpirationDays: number;\n public PickupDeliveryModeCode: string;\n public CarryoutDeliveryModeCode: string;\n public CancellationChargePercentage: number;\n public InventLocation: string;\n public InventLocationDataAreaId: string;\n public BingMapsApiKey: string;\n public BingMapsEnabled: boolean;\n public Currency: string;\n public CatalogDefaultImageTemplate: string;\n public CompanyCurrency: string;\n public PriceIncludesSalesTax: boolean;\n public CountryRegionId: string;\n public ChannelCountryRegionISOCode: string;\n public DefaultLanguageId: string;\n public TimeZoneInfoId: string;\n public EmailDeliveryModeCode: string;\n public GiftCardItemId: string;\n public EnableProductRecommendations: boolean;\n public RefundableShippingAmountWithoutApproval: number;\n public RefundShippingCharges: boolean;\n public ReceiptSettingsValue: number;\n public CustomerAttributeGroupId: number;\n public ClientBookAttributeGroupId: number;\n public NotificationRefreshInterval: number;\n public AllowExchangeOnReturnOrders: boolean;\n public FiscalRegistrationProcessId: string;\n public IsInventoryAutomaticValidationEnabled: boolean;\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public Properties: Entities.ChannelProperty[];\n public Languages: Entities.ChannelLanguage[];\n public UseAdvancedAutoCharges: boolean;\n public UseRTSForOnlineOrderCreation: boolean;\n public IsWarrantyAutoPromptEnabled: boolean;\n public EnableProductRatingsForRetailStores: boolean;\n public EnableFetchingPickingListsForPickingAndReceiving: boolean;\n public EnableReturnsForMultipleOrderInvoices: boolean;\n public EnableAnonymousOrderLookupByChannelReferenceId: boolean;\n public VoidSuspendedTransactionsOnCloseShift: number;\n public EnableOmniChannelPayments: boolean;\n public UseAdvancedCashManagement: boolean;\n public EnableFiscalRegistrationStorageBackup: boolean;\n public UseSalesReceiptAsDefaultReceiptTypeInJournal: boolean;\n public SalesOrderHeaderAttributeGroups: number[];\n public SalesOrderLinesAttributeGroups: number[];\n public CustomerAddressBooks: Entities.StoreAddressBook[];\n public EnableReturnPolicies: boolean;\n public InventAvailabilityCalculationMode: string;\n public IsPriceInclusiveTaxExemptCalculationEnabled: boolean;\n public EnableValidationOfSerialNumbersForInStoreReturns: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelNaturalId = \n odataObject.ChannelNaturalId;\n \n this.MinimumDepositPercentage = \n (odataObject.MinimumDepositPercentage != null) ? parseFloat(odataObject.MinimumDepositPercentage) : undefined;\n \n this.QuoteExpirationDays = \n odataObject.QuoteExpirationDays;\n \n this.PickupDeliveryModeCode = \n odataObject.PickupDeliveryModeCode;\n \n this.CarryoutDeliveryModeCode = \n odataObject.CarryoutDeliveryModeCode;\n \n this.CancellationChargePercentage = \n (odataObject.CancellationChargePercentage != null) ? parseFloat(odataObject.CancellationChargePercentage) : undefined;\n \n this.InventLocation = \n odataObject.InventLocation;\n \n this.InventLocationDataAreaId = \n odataObject.InventLocationDataAreaId;\n \n this.BingMapsApiKey = \n odataObject.BingMapsApiKey;\n \n this.BingMapsEnabled = \n odataObject.BingMapsEnabled;\n \n this.Currency = \n odataObject.Currency;\n \n this.CatalogDefaultImageTemplate = \n odataObject.CatalogDefaultImageTemplate;\n \n this.CompanyCurrency = \n odataObject.CompanyCurrency;\n \n this.PriceIncludesSalesTax = \n odataObject.PriceIncludesSalesTax;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.ChannelCountryRegionISOCode = \n odataObject.ChannelCountryRegionISOCode;\n \n this.DefaultLanguageId = \n odataObject.DefaultLanguageId;\n \n this.TimeZoneInfoId = \n odataObject.TimeZoneInfoId;\n \n this.EmailDeliveryModeCode = \n odataObject.EmailDeliveryModeCode;\n \n this.GiftCardItemId = \n odataObject.GiftCardItemId;\n \n this.EnableProductRecommendations = \n odataObject.EnableProductRecommendations;\n \n this.RefundableShippingAmountWithoutApproval = \n (odataObject.RefundableShippingAmountWithoutApproval != null) ? parseFloat(odataObject.RefundableShippingAmountWithoutApproval) : undefined;\n \n this.RefundShippingCharges = \n odataObject.RefundShippingCharges;\n \n this.ReceiptSettingsValue = \n odataObject.ReceiptSettingsValue;\n \n this.CustomerAttributeGroupId = \n (odataObject.CustomerAttributeGroupId != null) ? parseInt(odataObject.CustomerAttributeGroupId, 10) : undefined;\n \n this.ClientBookAttributeGroupId = \n (odataObject.ClientBookAttributeGroupId != null) ? parseInt(odataObject.ClientBookAttributeGroupId, 10) : undefined;\n \n this.NotificationRefreshInterval = \n odataObject.NotificationRefreshInterval;\n \n this.AllowExchangeOnReturnOrders = \n odataObject.AllowExchangeOnReturnOrders;\n \n this.FiscalRegistrationProcessId = \n odataObject.FiscalRegistrationProcessId;\n \n this.IsInventoryAutomaticValidationEnabled = \n odataObject.IsInventoryAutomaticValidationEnabled;\n \n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.Properties = undefined;\n if (odataObject.Properties) {\n this.Properties = [];\n for (var i = 0; i < odataObject.Properties.length; i++) {\n if (odataObject.Properties[i] != null) {\n if (odataObject.Properties[i]['@odata.type'] != null) {\n var className: string = odataObject.Properties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Properties[i] = new entityDictionary[className](odataObject.Properties[i])\n }\n } else {\n this.Properties[i] = new ChannelPropertyClass(odataObject.Properties[i]);\n }\n } else {\n this.Properties[i] = undefined;\n }\n }\n }\n \n this.Languages = undefined;\n if (odataObject.Languages) {\n this.Languages = [];\n for (var i = 0; i < odataObject.Languages.length; i++) {\n if (odataObject.Languages[i] != null) {\n if (odataObject.Languages[i]['@odata.type'] != null) {\n var className: string = odataObject.Languages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Languages[i] = new entityDictionary[className](odataObject.Languages[i])\n }\n } else {\n this.Languages[i] = new ChannelLanguageClass(odataObject.Languages[i]);\n }\n } else {\n this.Languages[i] = undefined;\n }\n }\n }\n \n this.UseAdvancedAutoCharges = \n odataObject.UseAdvancedAutoCharges;\n \n this.UseRTSForOnlineOrderCreation = \n odataObject.UseRTSForOnlineOrderCreation;\n \n this.IsWarrantyAutoPromptEnabled = \n odataObject.IsWarrantyAutoPromptEnabled;\n \n this.EnableProductRatingsForRetailStores = \n odataObject.EnableProductRatingsForRetailStores;\n \n this.EnableFetchingPickingListsForPickingAndReceiving = \n odataObject.EnableFetchingPickingListsForPickingAndReceiving;\n \n this.EnableReturnsForMultipleOrderInvoices = \n odataObject.EnableReturnsForMultipleOrderInvoices;\n \n this.EnableAnonymousOrderLookupByChannelReferenceId = \n odataObject.EnableAnonymousOrderLookupByChannelReferenceId;\n \n this.VoidSuspendedTransactionsOnCloseShift = \n odataObject.VoidSuspendedTransactionsOnCloseShift;\n \n this.EnableOmniChannelPayments = \n odataObject.EnableOmniChannelPayments;\n \n this.UseAdvancedCashManagement = \n odataObject.UseAdvancedCashManagement;\n \n this.EnableFiscalRegistrationStorageBackup = \n odataObject.EnableFiscalRegistrationStorageBackup;\n \n this.UseSalesReceiptAsDefaultReceiptTypeInJournal = \n odataObject.UseSalesReceiptAsDefaultReceiptTypeInJournal;\n \n this.SalesOrderHeaderAttributeGroups = undefined;\n if (odataObject.SalesOrderHeaderAttributeGroups) {\n this.SalesOrderHeaderAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderHeaderAttributeGroups.length; i++) {\n if (odataObject.SalesOrderHeaderAttributeGroups[i] != null) {\n this.SalesOrderHeaderAttributeGroups[i] = \n parseInt(odataObject.SalesOrderHeaderAttributeGroups[i], 10);\n } else {\n this.SalesOrderHeaderAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.SalesOrderLinesAttributeGroups = undefined;\n if (odataObject.SalesOrderLinesAttributeGroups) {\n this.SalesOrderLinesAttributeGroups = [];\n for (var i = 0; i < odataObject.SalesOrderLinesAttributeGroups.length; i++) {\n if (odataObject.SalesOrderLinesAttributeGroups[i] != null) {\n this.SalesOrderLinesAttributeGroups[i] = \n parseInt(odataObject.SalesOrderLinesAttributeGroups[i], 10);\n } else {\n this.SalesOrderLinesAttributeGroups[i] = undefined;\n }\n }\n }\n \n this.CustomerAddressBooks = undefined;\n if (odataObject.CustomerAddressBooks) {\n this.CustomerAddressBooks = [];\n for (var i = 0; i < odataObject.CustomerAddressBooks.length; i++) {\n if (odataObject.CustomerAddressBooks[i] != null) {\n if (odataObject.CustomerAddressBooks[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomerAddressBooks[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerAddressBooks[i] = new entityDictionary[className](odataObject.CustomerAddressBooks[i])\n }\n } else {\n this.CustomerAddressBooks[i] = new StoreAddressBookClass(odataObject.CustomerAddressBooks[i]);\n }\n } else {\n this.CustomerAddressBooks[i] = undefined;\n }\n }\n }\n \n this.EnableReturnPolicies = \n odataObject.EnableReturnPolicies;\n \n this.InventAvailabilityCalculationMode = \n odataObject.InventAvailabilityCalculationMode;\n \n this.IsPriceInclusiveTaxExemptCalculationEnabled = \n odataObject.IsPriceInclusiveTaxExemptCalculationEnabled;\n \n this.EnableValidationOfSerialNumbersForInStoreReturns = \n odataObject.EnableValidationOfSerialNumbersForInStoreReturns;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelConfigurationClass'] = ChannelConfigurationClass;\n \n /**\n * ChannelProperty entity class.\n */\n export class ChannelPropertyClass implements Entities.ChannelProperty {\n public Name: string;\n public Value: string;\n public Channel: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPropertyClass'] = ChannelPropertyClass;\n \n /**\n * ChannelLanguage entity class.\n */\n export class ChannelLanguageClass implements Entities.ChannelLanguage {\n public LanguageId: string;\n public IsDefault: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LanguageId = \n odataObject.LanguageId;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelLanguageClass'] = ChannelLanguageClass;\n \n /**\n * ChannelDeliveryOptionConfiguration entity class.\n */\n export class ChannelDeliveryOptionConfigurationClass implements Entities.ChannelDeliveryOptionConfiguration {\n public PickupDeliveryModeCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PickupDeliveryModeCodes = undefined;\n if (odataObject.PickupDeliveryModeCodes) {\n this.PickupDeliveryModeCodes = [];\n for (var i = 0; i < odataObject.PickupDeliveryModeCodes.length; i++) {\n if (odataObject.PickupDeliveryModeCodes[i] != null) {\n this.PickupDeliveryModeCodes[i] = \n odataObject.PickupDeliveryModeCodes[i];\n } else {\n this.PickupDeliveryModeCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelDeliveryOptionConfigurationClass'] = ChannelDeliveryOptionConfigurationClass;\n \n /**\n * NonSalesTransaction entity class.\n */\n export class NonSalesTransactionClass\n extends TransactionClass\n implements Entities.NonSalesTransaction {\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Amount: number;\n public ForeignCurrency: string;\n public OpenDrawer: boolean;\n public DenominationDetails: Entities.DenominationDetail[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.NonSalesTransaction\";\n \n }\n }\n entityDictionary['NonSalesTransactionClass'] = NonSalesTransactionClass;\n \n /**\n * DropAndDeclareTransaction entity class.\n */\n export class DropAndDeclareTransactionClass\n extends TransactionClass\n implements Entities.DropAndDeclareTransaction {\n public TenderDetails: Entities.TenderDetail[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public OpenDrawer: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderDetails = undefined;\n if (odataObject.TenderDetails) {\n this.TenderDetails = [];\n for (var i = 0; i < odataObject.TenderDetails.length; i++) {\n if (odataObject.TenderDetails[i] != null) {\n if (odataObject.TenderDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderDetails[i] = new entityDictionary[className](odataObject.TenderDetails[i])\n }\n } else {\n this.TenderDetails[i] = new TenderDetailClass(odataObject.TenderDetails[i]);\n }\n } else {\n this.TenderDetails[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DropAndDeclareTransaction\";\n \n }\n }\n entityDictionary['DropAndDeclareTransactionClass'] = DropAndDeclareTransactionClass;\n \n /**\n * ProductSearchCriteria entity class.\n */\n export class ProductSearchCriteriaClass implements Entities.ProductSearchCriteria {\n public Ids: number[];\n public CategoryIds: number[];\n public IncludeProductsFromDescendantCategories: boolean;\n public SearchCondition: string;\n public SkipVariantExpansion: boolean;\n public IncludeAttributes: boolean;\n public Barcodes: string[];\n public ItemIds: Entities.ProductLookupClause[];\n public Refinement: Entities.ProductRefinerValue[];\n public CustomerAccountNumber: string;\n public RecommendationListId: string;\n public DownloadProductData: boolean;\n public Context: Entities.ProjectionDomain;\n public Language: string;\n public IsOnline: boolean;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n this.Ids[i] = \n parseInt(odataObject.Ids[i], 10);\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n this.CategoryIds = undefined;\n if (odataObject.CategoryIds) {\n this.CategoryIds = [];\n for (var i = 0; i < odataObject.CategoryIds.length; i++) {\n if (odataObject.CategoryIds[i] != null) {\n this.CategoryIds[i] = \n parseInt(odataObject.CategoryIds[i], 10);\n } else {\n this.CategoryIds[i] = undefined;\n }\n }\n }\n \n this.IncludeProductsFromDescendantCategories = \n odataObject.IncludeProductsFromDescendantCategories;\n \n this.SearchCondition = \n odataObject.SearchCondition;\n \n this.SkipVariantExpansion = \n odataObject.SkipVariantExpansion;\n \n this.IncludeAttributes = \n odataObject.IncludeAttributes;\n \n this.Barcodes = undefined;\n if (odataObject.Barcodes) {\n this.Barcodes = [];\n for (var i = 0; i < odataObject.Barcodes.length; i++) {\n if (odataObject.Barcodes[i] != null) {\n this.Barcodes[i] = \n odataObject.Barcodes[i];\n } else {\n this.Barcodes[i] = undefined;\n }\n }\n }\n \n this.ItemIds = undefined;\n if (odataObject.ItemIds) {\n this.ItemIds = [];\n for (var i = 0; i < odataObject.ItemIds.length; i++) {\n if (odataObject.ItemIds[i] != null) {\n if (odataObject.ItemIds[i]['@odata.type'] != null) {\n var className: string = odataObject.ItemIds[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ItemIds[i] = new entityDictionary[className](odataObject.ItemIds[i])\n }\n } else {\n this.ItemIds[i] = new ProductLookupClauseClass(odataObject.ItemIds[i]);\n }\n } else {\n this.ItemIds[i] = undefined;\n }\n }\n }\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ProductRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.RecommendationListId = \n odataObject.RecommendationListId;\n \n this.DownloadProductData = \n odataObject.DownloadProductData;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.Language = \n odataObject.Language;\n \n this.IsOnline = \n odataObject.IsOnline;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ProductSearchCriteriaClass'] = ProductSearchCriteriaClass;\n \n /**\n * ChangedProductsSearchCriteria entity class.\n */\n export class ChangedProductsSearchCriteriaClass implements Entities.ChangedProductsSearchCriteria {\n public SynchronizationToken: string;\n public Context: Entities.ProjectionDomain;\n public AsListings: boolean;\n public Session: Entities.ReadChangedProductsSession;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SynchronizationToken = \n odataObject.SynchronizationToken;\n \n if (odataObject.Context == null) {\n this.Context = undefined;\n } else if (odataObject.Context['@odata.type'] == null) {\n this.Context = new ProjectionDomainClass(odataObject.Context);\n } else {\n var className: string = odataObject.Context['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Context = new entityDictionary[className](odataObject.Context)\n }\n }\n\n \n this.AsListings = \n odataObject.AsListings;\n \n if (odataObject.Session == null) {\n this.Session = undefined;\n } else if (odataObject.Session['@odata.type'] == null) {\n this.Session = new ReadChangedProductsSessionClass(odataObject.Session);\n } else {\n var className: string = odataObject.Session['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Session = new entityDictionary[className](odataObject.Session)\n }\n }\n\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['ChangedProductsSearchCriteriaClass'] = ChangedProductsSearchCriteriaClass;\n \n /**\n * EmployeeActivitySearchCriteria entity class.\n */\n export class EmployeeActivitySearchCriteriaClass implements Entities.EmployeeActivitySearchCriteria {\n public FromDateTimeOffset: Date;\n public ToDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValues: number[];\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromDateTimeOffset = \n (odataObject.FromDateTimeOffset instanceof Date) ? odataObject.FromDateTimeOffset\n : (odataObject.FromDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.FromDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDateTimeOffset = \n (odataObject.ToDateTimeOffset instanceof Date) ? odataObject.ToDateTimeOffset\n : (odataObject.ToDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ToDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValues = undefined;\n if (odataObject.EmployeeActivityTypeValues) {\n this.EmployeeActivityTypeValues = [];\n for (var i = 0; i < odataObject.EmployeeActivityTypeValues.length; i++) {\n if (odataObject.EmployeeActivityTypeValues[i] != null) {\n this.EmployeeActivityTypeValues[i] = \n odataObject.EmployeeActivityTypeValues[i];\n } else {\n this.EmployeeActivityTypeValues[i] = undefined;\n }\n }\n }\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['EmployeeActivitySearchCriteriaClass'] = EmployeeActivitySearchCriteriaClass;\n \n /**\n * SearchSuggestionCriteria entity class.\n */\n export class SearchSuggestionCriteriaClass implements Entities.SearchSuggestionCriteria {\n public ProductSearchCriteria: Entities.ProductSearchCriteria;\n public CustomerSearchCriteria: Entities.CustomerSearchCriteria;\n public SuggestionType: string;\n public HitPrefix: string;\n public HitSuffix: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ProductSearchCriteria == null) {\n this.ProductSearchCriteria = undefined;\n } else if (odataObject.ProductSearchCriteria['@odata.type'] == null) {\n this.ProductSearchCriteria = new ProductSearchCriteriaClass(odataObject.ProductSearchCriteria);\n } else {\n var className: string = odataObject.ProductSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductSearchCriteria = new entityDictionary[className](odataObject.ProductSearchCriteria)\n }\n }\n\n \n if (odataObject.CustomerSearchCriteria == null) {\n this.CustomerSearchCriteria = undefined;\n } else if (odataObject.CustomerSearchCriteria['@odata.type'] == null) {\n this.CustomerSearchCriteria = new CustomerSearchCriteriaClass(odataObject.CustomerSearchCriteria);\n } else {\n var className: string = odataObject.CustomerSearchCriteria['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomerSearchCriteria = new entityDictionary[className](odataObject.CustomerSearchCriteria)\n }\n }\n\n \n this.SuggestionType = \n odataObject.SuggestionType;\n \n this.HitPrefix = \n odataObject.HitPrefix;\n \n this.HitSuffix = \n odataObject.HitSuffix;\n \n }\n }\n entityDictionary['SearchSuggestionCriteriaClass'] = SearchSuggestionCriteriaClass;\n \n /**\n * CartLineDeliveryPreference entity class.\n */\n export class CartLineDeliveryPreferenceClass implements Entities.CartLineDeliveryPreference {\n public LineId: string;\n public DeliveryPreferenceTypeValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.DeliveryPreferenceTypeValues = undefined;\n if (odataObject.DeliveryPreferenceTypeValues) {\n this.DeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.DeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.DeliveryPreferenceTypeValues[i] != null) {\n this.DeliveryPreferenceTypeValues[i] = \n odataObject.DeliveryPreferenceTypeValues[i];\n } else {\n this.DeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineDeliveryPreferenceClass'] = CartLineDeliveryPreferenceClass;\n \n /**\n * CartLinePromotion entity class.\n */\n export class CartLinePromotionClass implements Entities.CartLinePromotion {\n public LineId: string;\n public Promotions: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.Promotions = undefined;\n if (odataObject.Promotions) {\n this.Promotions = [];\n for (var i = 0; i < odataObject.Promotions.length; i++) {\n if (odataObject.Promotions[i] != null) {\n this.Promotions[i] = \n odataObject.Promotions[i];\n } else {\n this.Promotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLinePromotionClass'] = CartLinePromotionClass;\n \n /**\n * ProductVariant entity class.\n */\n export class ProductVariantClass implements Entities.ProductVariant {\n public ItemId: string;\n public MasterProductId: number;\n public InventoryDimensionId: string;\n public AdjustedPrice: number;\n public BasePrice: number;\n public Price: number;\n public Color: string;\n public Style: string;\n public Size: string;\n public Configuration: string;\n public ColorId: string;\n public StyleId: string;\n public SizeId: string;\n public ConfigId: string;\n public VariantId: string;\n public Images: Entities.RichMediaLocations[];\n public DistinctProductVariantId: number;\n public ProductNumber: string;\n public PropertiesAsList: Entities.ProductPropertyTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.MasterProductId = \n (odataObject.MasterProductId != null) ? parseInt(odataObject.MasterProductId, 10) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.AdjustedPrice = \n (odataObject.AdjustedPrice != null) ? parseFloat(odataObject.AdjustedPrice) : undefined;\n \n this.BasePrice = \n (odataObject.BasePrice != null) ? parseFloat(odataObject.BasePrice) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.Color = \n odataObject.Color;\n \n this.Style = \n odataObject.Style;\n \n this.Size = \n odataObject.Size;\n \n this.Configuration = \n odataObject.Configuration;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.VariantId = \n odataObject.VariantId;\n \n this.Images = undefined;\n if (odataObject.Images) {\n this.Images = [];\n for (var i = 0; i < odataObject.Images.length; i++) {\n if (odataObject.Images[i] != null) {\n if (odataObject.Images[i]['@odata.type'] != null) {\n var className: string = odataObject.Images[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Images[i] = new entityDictionary[className](odataObject.Images[i])\n }\n } else {\n this.Images[i] = new RichMediaLocationsClass(odataObject.Images[i]);\n }\n } else {\n this.Images[i] = undefined;\n }\n }\n }\n \n this.DistinctProductVariantId = \n (odataObject.DistinctProductVariantId != null) ? parseInt(odataObject.DistinctProductVariantId, 10) : undefined;\n \n this.ProductNumber = \n odataObject.ProductNumber;\n \n this.PropertiesAsList = undefined;\n if (odataObject.PropertiesAsList) {\n this.PropertiesAsList = [];\n for (var i = 0; i < odataObject.PropertiesAsList.length; i++) {\n if (odataObject.PropertiesAsList[i] != null) {\n if (odataObject.PropertiesAsList[i]['@odata.type'] != null) {\n var className: string = odataObject.PropertiesAsList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PropertiesAsList[i] = new entityDictionary[className](odataObject.PropertiesAsList[i])\n }\n } else {\n this.PropertiesAsList[i] = new ProductPropertyTranslationClass(odataObject.PropertiesAsList[i]);\n }\n } else {\n this.PropertiesAsList[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductVariantClass'] = ProductVariantClass;\n \n /**\n * HardwareProfilePrinter entity class.\n */\n export class HardwareProfilePrinterClass implements Entities.HardwareProfilePrinter {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public DeviceDescription: string;\n public CharacterSet: number;\n public ReceiptProfileId: string;\n public BinaryConversion: boolean;\n public DocInsertRemovalTimeout: number;\n public Logo: string;\n public LogoAlignment: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.CharacterSet = \n odataObject.CharacterSet;\n \n this.ReceiptProfileId = \n odataObject.ReceiptProfileId;\n \n this.BinaryConversion = \n odataObject.BinaryConversion;\n \n this.DocInsertRemovalTimeout = \n odataObject.DocInsertRemovalTimeout;\n \n this.Logo = \n odataObject.Logo;\n \n this.LogoAlignment = \n odataObject.LogoAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfilePrinterClass'] = HardwareProfilePrinterClass;\n \n /**\n * HardwareProfileScanner entity class.\n */\n export class HardwareProfileScannerClass implements Entities.HardwareProfileScanner {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DecodeData: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DecodeData = \n odataObject.DecodeData;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileScannerClass'] = HardwareProfileScannerClass;\n \n /**\n * HardwareProfileCashDrawer entity class.\n */\n export class HardwareProfileCashDrawerClass implements Entities.HardwareProfileCashDrawer {\n public ProfileId: string;\n public DeviceTypeValue: number;\n public DeviceName: string;\n public DeviceDescription: string;\n public DeviceMake: string;\n public DeviceModel: string;\n public IsSharedShiftDrawer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.DeviceTypeValue = \n odataObject.DeviceTypeValue;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.DeviceDescription = \n odataObject.DeviceDescription;\n \n this.DeviceMake = \n odataObject.DeviceMake;\n \n this.DeviceModel = \n odataObject.DeviceModel;\n \n this.IsSharedShiftDrawer = \n odataObject.IsSharedShiftDrawer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareProfileCashDrawerClass'] = HardwareProfileCashDrawerClass;\n \n /**\n * TillLayout entity class.\n */\n export class TillLayoutClass implements Entities.TillLayout {\n public CashChangerLayoutXml: string;\n public CustomerLayoutId: string;\n public CustomerLayoutXml: string;\n public Height: number;\n public LayoutId: string;\n public LayoutTypeValue: number;\n public LayoutXml: string;\n public LayoutXmlPortrait: string;\n public Name: string;\n public ReceiptId: string;\n public ReceiptItemsLayoutXml: string;\n public ReceiptPaymentLayoutXml: string;\n public TotalId: string;\n public TotalsLayoutXml: string;\n public Width: number;\n public RecordId: number;\n public StartScreen: number;\n public ButtonGridZones: Entities.ButtonGridZone[];\n public ImageZones: Entities.ImageZone[];\n public ReportZones: Entities.ReportZone[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashChangerLayoutXml = \n odataObject.CashChangerLayoutXml;\n \n this.CustomerLayoutId = \n odataObject.CustomerLayoutId;\n \n this.CustomerLayoutXml = \n odataObject.CustomerLayoutXml;\n \n this.Height = \n odataObject.Height;\n \n this.LayoutId = \n odataObject.LayoutId;\n \n this.LayoutTypeValue = \n odataObject.LayoutTypeValue;\n \n this.LayoutXml = \n odataObject.LayoutXml;\n \n this.LayoutXmlPortrait = \n odataObject.LayoutXmlPortrait;\n \n this.Name = \n odataObject.Name;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ReceiptItemsLayoutXml = \n odataObject.ReceiptItemsLayoutXml;\n \n this.ReceiptPaymentLayoutXml = \n odataObject.ReceiptPaymentLayoutXml;\n \n this.TotalId = \n odataObject.TotalId;\n \n this.TotalsLayoutXml = \n odataObject.TotalsLayoutXml;\n \n this.Width = \n odataObject.Width;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.StartScreen = \n odataObject.StartScreen;\n \n this.ButtonGridZones = undefined;\n if (odataObject.ButtonGridZones) {\n this.ButtonGridZones = [];\n for (var i = 0; i < odataObject.ButtonGridZones.length; i++) {\n if (odataObject.ButtonGridZones[i] != null) {\n if (odataObject.ButtonGridZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ButtonGridZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ButtonGridZones[i] = new entityDictionary[className](odataObject.ButtonGridZones[i])\n }\n } else {\n this.ButtonGridZones[i] = new ButtonGridZoneClass(odataObject.ButtonGridZones[i]);\n }\n } else {\n this.ButtonGridZones[i] = undefined;\n }\n }\n }\n \n this.ImageZones = undefined;\n if (odataObject.ImageZones) {\n this.ImageZones = [];\n for (var i = 0; i < odataObject.ImageZones.length; i++) {\n if (odataObject.ImageZones[i] != null) {\n if (odataObject.ImageZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageZones[i] = new entityDictionary[className](odataObject.ImageZones[i])\n }\n } else {\n this.ImageZones[i] = new ImageZoneClass(odataObject.ImageZones[i]);\n }\n } else {\n this.ImageZones[i] = undefined;\n }\n }\n }\n \n this.ReportZones = undefined;\n if (odataObject.ReportZones) {\n this.ReportZones = [];\n for (var i = 0; i < odataObject.ReportZones.length; i++) {\n if (odataObject.ReportZones[i] != null) {\n if (odataObject.ReportZones[i]['@odata.type'] != null) {\n var className: string = odataObject.ReportZones[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReportZones[i] = new entityDictionary[className](odataObject.ReportZones[i])\n }\n } else {\n this.ReportZones[i] = new ReportZoneClass(odataObject.ReportZones[i]);\n }\n } else {\n this.ReportZones[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TillLayoutClass'] = TillLayoutClass;\n \n /**\n * SalesInvoice entity class.\n */\n export class SalesInvoiceClass implements Entities.SalesInvoice {\n public RecordId: number;\n public ChannelId: number;\n public Id: string;\n public SalesId: string;\n public SalesType: string;\n public InvoiceDate: Date;\n public DueDate: Date;\n public CurrencyCode: string;\n public InvoiceSubtotal: number;\n public TotalCharges: number;\n public TotalTaxAmount: number;\n public TotalLineDiscount: number;\n public TotalDiscount: number;\n public Amount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public Account: string;\n public Name: string;\n public TotalManualDiscountPercentage: number;\n public TotalManualDiscountAmount: number;\n public SalesInvoiceLine: Entities.SalesInvoiceLine[];\n public ChargeLines: Entities.ChargeLine[];\n public TenderLines: Entities.TenderLine[];\n public DeliveryModeChargeAmount: number;\n public OrderAccount: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Id = \n odataObject.Id;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.SalesType = \n odataObject.SalesType;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DueDate = \n (odataObject.DueDate instanceof Date) ? odataObject.DueDate\n : (odataObject.DueDate != null) ? jsonLightReadStringPropertyValue(odataObject.DueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceSubtotal = \n (odataObject.InvoiceSubtotal != null) ? parseFloat(odataObject.InvoiceSubtotal) : undefined;\n \n this.TotalCharges = \n (odataObject.TotalCharges != null) ? parseFloat(odataObject.TotalCharges) : undefined;\n \n this.TotalTaxAmount = \n (odataObject.TotalTaxAmount != null) ? parseFloat(odataObject.TotalTaxAmount) : undefined;\n \n this.TotalLineDiscount = \n (odataObject.TotalLineDiscount != null) ? parseFloat(odataObject.TotalLineDiscount) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.Account = \n odataObject.Account;\n \n this.Name = \n odataObject.Name;\n \n this.TotalManualDiscountPercentage = \n (odataObject.TotalManualDiscountPercentage != null) ? parseFloat(odataObject.TotalManualDiscountPercentage) : undefined;\n \n this.TotalManualDiscountAmount = \n (odataObject.TotalManualDiscountAmount != null) ? parseFloat(odataObject.TotalManualDiscountAmount) : undefined;\n \n this.SalesInvoiceLine = undefined;\n if (odataObject.SalesInvoiceLine) {\n this.SalesInvoiceLine = [];\n for (var i = 0; i < odataObject.SalesInvoiceLine.length; i++) {\n if (odataObject.SalesInvoiceLine[i] != null) {\n if (odataObject.SalesInvoiceLine[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesInvoiceLine[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesInvoiceLine[i] = new entityDictionary[className](odataObject.SalesInvoiceLine[i])\n }\n } else {\n this.SalesInvoiceLine[i] = new SalesInvoiceLineClass(odataObject.SalesInvoiceLine[i]);\n }\n } else {\n this.SalesInvoiceLine[i] = undefined;\n }\n }\n }\n \n this.ChargeLines = undefined;\n if (odataObject.ChargeLines) {\n this.ChargeLines = [];\n for (var i = 0; i < odataObject.ChargeLines.length; i++) {\n if (odataObject.ChargeLines[i] != null) {\n if (odataObject.ChargeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ChargeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChargeLines[i] = new entityDictionary[className](odataObject.ChargeLines[i])\n }\n } else {\n this.ChargeLines[i] = new ChargeLineClass(odataObject.ChargeLines[i]);\n }\n } else {\n this.ChargeLines[i] = undefined;\n }\n }\n }\n \n this.TenderLines = undefined;\n if (odataObject.TenderLines) {\n this.TenderLines = [];\n for (var i = 0; i < odataObject.TenderLines.length; i++) {\n if (odataObject.TenderLines[i] != null) {\n if (odataObject.TenderLines[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLines[i] = new entityDictionary[className](odataObject.TenderLines[i])\n }\n } else {\n this.TenderLines[i] = new TenderLineClass(odataObject.TenderLines[i]);\n }\n } else {\n this.TenderLines[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeChargeAmount = \n (odataObject.DeliveryModeChargeAmount != null) ? parseFloat(odataObject.DeliveryModeChargeAmount) : undefined;\n \n this.OrderAccount = \n odataObject.OrderAccount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceClass'] = SalesInvoiceClass;\n \n /**\n * OrderInvoice entity class.\n */\n export class OrderInvoiceClass implements Entities.OrderInvoice {\n public Id: string;\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public InvoiceDate: Date;\n public TotalAmount: number;\n public AmountPaid: number;\n public AmountBalance: number;\n public InvoiceTypeValue: number;\n public CurrencyCode: string;\n public InvoiceDueDate: Date;\n public InvoicePaidStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.InvoiceDate = \n (odataObject.InvoiceDate instanceof Date) ? odataObject.InvoiceDate\n : (odataObject.InvoiceDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.AmountPaid = \n (odataObject.AmountPaid != null) ? parseFloat(odataObject.AmountPaid) : undefined;\n \n this.AmountBalance = \n (odataObject.AmountBalance != null) ? parseFloat(odataObject.AmountBalance) : undefined;\n \n this.InvoiceTypeValue = \n odataObject.InvoiceTypeValue;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.InvoiceDueDate = \n (odataObject.InvoiceDueDate instanceof Date) ? odataObject.InvoiceDueDate\n : (odataObject.InvoiceDueDate != null) ? jsonLightReadStringPropertyValue(odataObject.InvoiceDueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.InvoicePaidStatusValue = \n odataObject.InvoicePaidStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OrderInvoiceClass'] = OrderInvoiceClass;\n \n /**\n * TaxOverride entity class.\n */\n export class TaxOverrideClass implements Entities.TaxOverride {\n public Code: string;\n public SourceTaxGroup: string;\n public DestinationTaxGroup: string;\n public SourceItemTaxGroup: string;\n public DestinationItemTaxGroup: string;\n public ChannelId: number;\n public AdditionalDescription: string;\n public Status: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.SourceTaxGroup = \n odataObject.SourceTaxGroup;\n \n this.DestinationTaxGroup = \n odataObject.DestinationTaxGroup;\n \n this.SourceItemTaxGroup = \n odataObject.SourceItemTaxGroup;\n \n this.DestinationItemTaxGroup = \n odataObject.DestinationItemTaxGroup;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.AdditionalDescription = \n odataObject.AdditionalDescription;\n \n this.Status = \n odataObject.Status;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxOverrideClass'] = TaxOverrideClass;\n \n /**\n * TenderType entity class.\n */\n export class TenderTypeClass implements Entities.TenderType {\n public Function: number;\n public TenderTypeId: string;\n public Name: string;\n public OperationId: number;\n public OperationName: string;\n public ChangeTenderTypeId: string;\n public AboveMinimumChangeAmount: number;\n public AboveMinimumChangeTenderTypeId: string;\n public OpenDrawer: boolean;\n public UseSignatureCaptureDevice: boolean;\n public MinimumSignatureCaptureAmount: number;\n public IsOvertenderAllowed: boolean;\n public IsUndertenderAllowed: boolean;\n public MaximumOvertenderAmount: number;\n public MaximumUndertenderAmount: number;\n public MaximumAmountPerTransaction: number;\n public MaximumAmountPerLine: number;\n public MinimumAmountPerTransaction: number;\n public MinimumAmountPerLine: number;\n public RoundOff: number;\n public CountingRequired: number;\n public TakenToBank: number;\n public TakenToSafe: number;\n public ConnectorId: string;\n public GiftCardItem: string;\n public GiftCardCashoutOutThreshold: number;\n public ChangeLineOnReceipt: string;\n public HideCardInputDetails: boolean;\n public CashDrawerLimitEnabled: boolean;\n public CashDrawerLimit: number;\n public RestrictReturnsWithoutReceipt: boolean;\n public HasTenderDiscount: boolean;\n public DefaultCardTypeId: string;\n public UseForDeclareStartAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Function = \n odataObject.Function;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Name = \n odataObject.Name;\n \n this.OperationId = \n odataObject.OperationId;\n \n this.OperationName = \n odataObject.OperationName;\n \n this.ChangeTenderTypeId = \n odataObject.ChangeTenderTypeId;\n \n this.AboveMinimumChangeAmount = \n (odataObject.AboveMinimumChangeAmount != null) ? parseFloat(odataObject.AboveMinimumChangeAmount) : undefined;\n \n this.AboveMinimumChangeTenderTypeId = \n odataObject.AboveMinimumChangeTenderTypeId;\n \n this.OpenDrawer = \n odataObject.OpenDrawer;\n \n this.UseSignatureCaptureDevice = \n odataObject.UseSignatureCaptureDevice;\n \n this.MinimumSignatureCaptureAmount = \n (odataObject.MinimumSignatureCaptureAmount != null) ? parseFloat(odataObject.MinimumSignatureCaptureAmount) : undefined;\n \n this.IsOvertenderAllowed = \n odataObject.IsOvertenderAllowed;\n \n this.IsUndertenderAllowed = \n odataObject.IsUndertenderAllowed;\n \n this.MaximumOvertenderAmount = \n (odataObject.MaximumOvertenderAmount != null) ? parseFloat(odataObject.MaximumOvertenderAmount) : undefined;\n \n this.MaximumUndertenderAmount = \n (odataObject.MaximumUndertenderAmount != null) ? parseFloat(odataObject.MaximumUndertenderAmount) : undefined;\n \n this.MaximumAmountPerTransaction = \n (odataObject.MaximumAmountPerTransaction != null) ? parseFloat(odataObject.MaximumAmountPerTransaction) : undefined;\n \n this.MaximumAmountPerLine = \n (odataObject.MaximumAmountPerLine != null) ? parseFloat(odataObject.MaximumAmountPerLine) : undefined;\n \n this.MinimumAmountPerTransaction = \n (odataObject.MinimumAmountPerTransaction != null) ? parseFloat(odataObject.MinimumAmountPerTransaction) : undefined;\n \n this.MinimumAmountPerLine = \n (odataObject.MinimumAmountPerLine != null) ? parseFloat(odataObject.MinimumAmountPerLine) : undefined;\n \n this.RoundOff = \n (odataObject.RoundOff != null) ? parseFloat(odataObject.RoundOff) : undefined;\n \n this.CountingRequired = \n odataObject.CountingRequired;\n \n this.TakenToBank = \n odataObject.TakenToBank;\n \n this.TakenToSafe = \n odataObject.TakenToSafe;\n \n this.ConnectorId = \n odataObject.ConnectorId;\n \n this.GiftCardItem = \n odataObject.GiftCardItem;\n \n this.GiftCardCashoutOutThreshold = \n (odataObject.GiftCardCashoutOutThreshold != null) ? parseFloat(odataObject.GiftCardCashoutOutThreshold) : undefined;\n \n this.ChangeLineOnReceipt = \n odataObject.ChangeLineOnReceipt;\n \n this.HideCardInputDetails = \n odataObject.HideCardInputDetails;\n \n this.CashDrawerLimitEnabled = \n odataObject.CashDrawerLimitEnabled;\n \n this.CashDrawerLimit = \n (odataObject.CashDrawerLimit != null) ? parseFloat(odataObject.CashDrawerLimit) : undefined;\n \n this.RestrictReturnsWithoutReceipt = \n odataObject.RestrictReturnsWithoutReceipt;\n \n this.HasTenderDiscount = \n odataObject.HasTenderDiscount;\n \n this.DefaultCardTypeId = \n odataObject.DefaultCardTypeId;\n \n this.UseForDeclareStartAmount = \n odataObject.UseForDeclareStartAmount;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeClass'] = TenderTypeClass;\n \n /**\n * ReasonCode entity class.\n */\n export class ReasonCodeClass implements Entities.ReasonCode {\n public InputRequired: boolean;\n public LinkedReasonCodeId: string;\n public MaximumLength: number;\n public MaximumValue: number;\n public MinimumLength: number;\n public MinimumValue: number;\n public OncePerTransaction: boolean;\n public PrintInputNameOnReceipt: boolean;\n public PrintInputToReceipt: boolean;\n public PrintPromptToReceipt: boolean;\n public Prompt: string;\n public RandomFactor: number;\n public RetailUseReasonCode: boolean;\n public ReasonCodeId: string;\n public Description: string;\n public InputTypeValue: number;\n public ActivityValue: number;\n public IsMultiLineText: boolean;\n public ReasonSubCodes: Entities.ReasonSubCode[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InputRequired = \n odataObject.InputRequired;\n \n this.LinkedReasonCodeId = \n odataObject.LinkedReasonCodeId;\n \n this.MaximumLength = \n odataObject.MaximumLength;\n \n this.MaximumValue = \n (odataObject.MaximumValue != null) ? parseFloat(odataObject.MaximumValue) : undefined;\n \n this.MinimumLength = \n odataObject.MinimumLength;\n \n this.MinimumValue = \n (odataObject.MinimumValue != null) ? parseFloat(odataObject.MinimumValue) : undefined;\n \n this.OncePerTransaction = \n odataObject.OncePerTransaction;\n \n this.PrintInputNameOnReceipt = \n odataObject.PrintInputNameOnReceipt;\n \n this.PrintInputToReceipt = \n odataObject.PrintInputToReceipt;\n \n this.PrintPromptToReceipt = \n odataObject.PrintPromptToReceipt;\n \n this.Prompt = \n odataObject.Prompt;\n \n this.RandomFactor = \n (odataObject.RandomFactor != null) ? parseFloat(odataObject.RandomFactor) : undefined;\n \n this.RetailUseReasonCode = \n odataObject.RetailUseReasonCode;\n \n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.Description = \n odataObject.Description;\n \n this.InputTypeValue = \n odataObject.InputTypeValue;\n \n this.ActivityValue = \n odataObject.ActivityValue;\n \n this.IsMultiLineText = \n odataObject.IsMultiLineText;\n \n this.ReasonSubCodes = undefined;\n if (odataObject.ReasonSubCodes) {\n this.ReasonSubCodes = [];\n for (var i = 0; i < odataObject.ReasonSubCodes.length; i++) {\n if (odataObject.ReasonSubCodes[i] != null) {\n if (odataObject.ReasonSubCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonSubCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonSubCodes[i] = new entityDictionary[className](odataObject.ReasonSubCodes[i])\n }\n } else {\n this.ReasonSubCodes[i] = new ReasonSubCodeClass(odataObject.ReasonSubCodes[i]);\n }\n } else {\n this.ReasonSubCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeClass'] = ReasonCodeClass;\n \n /**\n * ReportDataSet entity class.\n */\n export class ReportDataSetClass implements Entities.ReportDataSet {\n public ReportId: string;\n public Parameters: Entities.CommerceProperty[];\n public Locale: string;\n public Output: Entities.ReportRow[];\n public HasTotalRow: boolean;\n public HasDisclaimer: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportId = \n odataObject.ReportId;\n \n this.Parameters = undefined;\n if (odataObject.Parameters) {\n this.Parameters = [];\n for (var i = 0; i < odataObject.Parameters.length; i++) {\n if (odataObject.Parameters[i] != null) {\n if (odataObject.Parameters[i]['@odata.type'] != null) {\n var className: string = odataObject.Parameters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Parameters[i] = new entityDictionary[className](odataObject.Parameters[i])\n }\n } else {\n this.Parameters[i] = new CommercePropertyClass(odataObject.Parameters[i]);\n }\n } else {\n this.Parameters[i] = undefined;\n }\n }\n }\n \n this.Locale = \n odataObject.Locale;\n \n this.Output = undefined;\n if (odataObject.Output) {\n this.Output = [];\n for (var i = 0; i < odataObject.Output.length; i++) {\n if (odataObject.Output[i] != null) {\n if (odataObject.Output[i]['@odata.type'] != null) {\n var className: string = odataObject.Output[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Output[i] = new entityDictionary[className](odataObject.Output[i])\n }\n } else {\n this.Output[i] = new ReportRowClass(odataObject.Output[i]);\n }\n } else {\n this.Output[i] = undefined;\n }\n }\n }\n \n this.HasTotalRow = \n odataObject.HasTotalRow;\n \n this.HasDisclaimer = \n odataObject.HasDisclaimer;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportDataSetClass'] = ReportDataSetClass;\n \n /**\n * ZipCodeInfo entity class.\n */\n export class ZipCodeInfoClass implements Entities.ZipCodeInfo {\n public ZipPostalCode: string;\n public StreetName: string;\n public TimeZone: number;\n public CountryRegionId: string;\n public StateId: string;\n public CountyId: string;\n public CityName: string;\n public CityAlias: string;\n public District: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ZipPostalCode = \n odataObject.ZipPostalCode;\n \n this.StreetName = \n odataObject.StreetName;\n \n this.TimeZone = \n odataObject.TimeZone;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.StateId = \n odataObject.StateId;\n \n this.CountyId = \n odataObject.CountyId;\n \n this.CityName = \n odataObject.CityName;\n \n this.CityAlias = \n odataObject.CityAlias;\n \n this.District = \n odataObject.District;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ZipCodeInfoClass'] = ZipCodeInfoClass;\n \n /**\n * ReasonCodeRequirement entity class.\n */\n export class ReasonCodeRequirementClass implements Entities.ReasonCodeRequirement {\n public ReasonCodeId: string;\n public SourceId: string;\n public TableRefTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReasonCodeId = \n odataObject.ReasonCodeId;\n \n this.SourceId = \n odataObject.SourceId;\n \n this.TableRefTypeValue = \n odataObject.TableRefTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReasonCodeRequirementClass'] = ReasonCodeRequirementClass;\n \n /**\n * QueryResultSettings entity class.\n */\n export class QueryResultSettingsClass implements Entities.QueryResultSettings {\n public Paging: Entities.PagingInfo;\n public Sorting: Entities.SortingInfo;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Paging == null) {\n this.Paging = undefined;\n } else if (odataObject.Paging['@odata.type'] == null) {\n this.Paging = new PagingInfoClass(odataObject.Paging);\n } else {\n var className: string = odataObject.Paging['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Paging = new entityDictionary[className](odataObject.Paging)\n }\n }\n\n \n if (odataObject.Sorting == null) {\n this.Sorting = undefined;\n } else if (odataObject.Sorting['@odata.type'] == null) {\n this.Sorting = new SortingInfoClass(odataObject.Sorting);\n } else {\n var className: string = odataObject.Sorting['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Sorting = new entityDictionary[className](odataObject.Sorting)\n }\n }\n\n \n }\n }\n entityDictionary['QueryResultSettingsClass'] = QueryResultSettingsClass;\n \n /**\n * SortingInfo entity class.\n */\n export class SortingInfoClass implements Entities.SortingInfo {\n public Columns: Entities.SortColumn[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Columns = undefined;\n if (odataObject.Columns) {\n this.Columns = [];\n for (var i = 0; i < odataObject.Columns.length; i++) {\n if (odataObject.Columns[i] != null) {\n if (odataObject.Columns[i]['@odata.type'] != null) {\n var className: string = odataObject.Columns[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Columns[i] = new entityDictionary[className](odataObject.Columns[i])\n }\n } else {\n this.Columns[i] = new SortColumnClass(odataObject.Columns[i]);\n }\n } else {\n this.Columns[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SortingInfoClass'] = SortingInfoClass;\n \n /**\n * SortColumn entity class.\n */\n export class SortColumnClass implements Entities.SortColumn {\n public ColumnName: string;\n public IsDescending: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ColumnName = \n odataObject.ColumnName;\n \n this.IsDescending = \n odataObject.IsDescending;\n \n }\n }\n entityDictionary['SortColumnClass'] = SortColumnClass;\n \n /**\n * PagingInfo entity class.\n */\n export class PagingInfoClass implements Entities.PagingInfo {\n public NextPageToken: string;\n public Top: number;\n public Skip: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.NextPageToken = \n odataObject.NextPageToken;\n \n this.Top = \n (odataObject.Top != null) ? parseInt(odataObject.Top, 10) : undefined;\n \n this.Skip = \n (odataObject.Skip != null) ? parseInt(odataObject.Skip, 10) : undefined;\n \n }\n }\n entityDictionary['PagingInfoClass'] = PagingInfoClass;\n \n /**\n * ProductPropertyTranslation entity class.\n */\n export class ProductPropertyTranslationClass implements Entities.ProductPropertyTranslation {\n public TranslationLanguage: string;\n public TranslatedProperties: Entities.ProductProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TranslationLanguage = \n odataObject.TranslationLanguage;\n \n this.TranslatedProperties = undefined;\n if (odataObject.TranslatedProperties) {\n this.TranslatedProperties = [];\n for (var i = 0; i < odataObject.TranslatedProperties.length; i++) {\n if (odataObject.TranslatedProperties[i] != null) {\n if (odataObject.TranslatedProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.TranslatedProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TranslatedProperties[i] = new entityDictionary[className](odataObject.TranslatedProperties[i])\n }\n } else {\n this.TranslatedProperties[i] = new ProductPropertyClass(odataObject.TranslatedProperties[i]);\n }\n } else {\n this.TranslatedProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductPropertyTranslationClass'] = ProductPropertyTranslationClass;\n \n /**\n * NumberSequenceSeedData entity class.\n */\n export class NumberSequenceSeedDataClass implements Entities.NumberSequenceSeedData {\n public DataTypeValue: number;\n public DataValue: number;\n public LastTransactionDataValue: number;\n public LastTransactionCreatedDateTime: Date;\n public LastTransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.DataValue = \n (odataObject.DataValue != null) ? parseInt(odataObject.DataValue, 10) : undefined;\n \n this.LastTransactionDataValue = \n (odataObject.LastTransactionDataValue != null) ? parseInt(odataObject.LastTransactionDataValue, 10) : undefined;\n \n this.LastTransactionCreatedDateTime = \n (odataObject.LastTransactionCreatedDateTime instanceof Date) ? odataObject.LastTransactionCreatedDateTime\n : (odataObject.LastTransactionCreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastTransactionCreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastTransactionId = \n odataObject.LastTransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NumberSequenceSeedDataClass'] = NumberSequenceSeedDataClass;\n \n /**\n * ReceiptNumberResetInfo entity class.\n */\n export class ReceiptNumberResetInfoClass implements Entities.ReceiptNumberResetInfo {\n public ValidFrom: Date;\n public ValidTo: Date;\n public ResetDate: Date;\n public TypeValue: number;\n public Enabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResetDate = \n (odataObject.ResetDate instanceof Date) ? odataObject.ResetDate\n : (odataObject.ResetDate != null) ? jsonLightReadStringPropertyValue(odataObject.ResetDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Enabled = \n odataObject.Enabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptNumberResetInfoClass'] = ReceiptNumberResetInfoClass;\n \n /**\n * DeviceActivationResult entity class.\n */\n export class DeviceActivationResultClass implements Entities.DeviceActivationResult {\n public Device: Entities.Device;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Device == null) {\n this.Device = undefined;\n } else if (odataObject.Device['@odata.type'] == null) {\n this.Device = new DeviceClass(odataObject.Device);\n } else {\n var className: string = odataObject.Device['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Device = new entityDictionary[className](odataObject.Device)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeviceActivationResultClass'] = DeviceActivationResultClass;\n \n /**\n * PurchaseHistory entity class.\n */\n export class PurchaseHistoryClass implements Entities.PurchaseHistory {\n public DatePurchased: Date;\n public ImageUrl: string;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public ReceiptId: string;\n public SalesId: string;\n public ChannelId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DatePurchased = \n (odataObject.DatePurchased instanceof Date) ? odataObject.DatePurchased\n : (odataObject.DatePurchased != null) ? jsonLightReadStringPropertyValue(odataObject.DatePurchased, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ImageUrl = \n odataObject.ImageUrl;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PurchaseHistoryClass'] = PurchaseHistoryClass;\n \n /**\n * Node entity class.\n */\n export class NodeClass implements Entities.Node {\n public ParentScopeId: string;\n public ParentSequence: number;\n public Id: string;\n public Sequence: number;\n public Description: string;\n public ScreenshotUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ParentScopeId = \n odataObject.ParentScopeId;\n \n this.ParentSequence = \n odataObject.ParentSequence;\n \n this.Id = \n odataObject.Id;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Description = \n odataObject.Description;\n \n this.ScreenshotUri = \n odataObject.ScreenshotUri;\n \n }\n }\n entityDictionary['NodeClass'] = NodeClass;\n \n /**\n * Line entity class.\n */\n export class LineClass implements Entities.Line {\n public ChildrenIds: number[];\n public Id: number;\n public Name: string;\n public Description: string;\n public IsLinked: boolean;\n public LineMetadataId: number;\n public Artifacts: Entities.ArtifactSummary[];\n public MetadataPropertyValues: Entities.MetadataPropertyValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChildrenIds = undefined;\n if (odataObject.ChildrenIds) {\n this.ChildrenIds = [];\n for (var i = 0; i < odataObject.ChildrenIds.length; i++) {\n if (odataObject.ChildrenIds[i] != null) {\n this.ChildrenIds[i] = \n parseInt(odataObject.ChildrenIds[i], 10);\n } else {\n this.ChildrenIds[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.IsLinked = \n odataObject.IsLinked;\n \n this.LineMetadataId = \n (odataObject.LineMetadataId != null) ? parseInt(odataObject.LineMetadataId, 10) : undefined;\n \n this.Artifacts = undefined;\n if (odataObject.Artifacts) {\n this.Artifacts = [];\n for (var i = 0; i < odataObject.Artifacts.length; i++) {\n if (odataObject.Artifacts[i] != null) {\n if (odataObject.Artifacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Artifacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Artifacts[i] = new entityDictionary[className](odataObject.Artifacts[i])\n }\n } else {\n this.Artifacts[i] = new ArtifactSummaryClass(odataObject.Artifacts[i]);\n }\n } else {\n this.Artifacts[i] = undefined;\n }\n }\n }\n \n this.MetadataPropertyValues = undefined;\n if (odataObject.MetadataPropertyValues) {\n this.MetadataPropertyValues = [];\n for (var i = 0; i < odataObject.MetadataPropertyValues.length; i++) {\n if (odataObject.MetadataPropertyValues[i] != null) {\n if (odataObject.MetadataPropertyValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MetadataPropertyValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MetadataPropertyValues[i] = new entityDictionary[className](odataObject.MetadataPropertyValues[i])\n }\n } else {\n this.MetadataPropertyValues[i] = new MetadataPropertyValueClass(odataObject.MetadataPropertyValues[i]);\n }\n } else {\n this.MetadataPropertyValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineClass'] = LineClass;\n \n /**\n * MetadataText entity class.\n */\n export class MetadataTextClass implements Entities.MetadataText {\n public Id: string;\n public Text: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.Text = \n odataObject.Text;\n \n }\n }\n entityDictionary['MetadataTextClass'] = MetadataTextClass;\n \n /**\n * MetadataHypertextLink entity class.\n */\n export class MetadataHypertextLinkClass implements Entities.MetadataHypertextLink {\n public Id: string;\n public DisplayName: string;\n public Url: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.DisplayName = \n odataObject.DisplayName;\n \n this.Url = \n odataObject.Url;\n \n }\n }\n entityDictionary['MetadataHypertextLinkClass'] = MetadataHypertextLinkClass;\n \n /**\n * Scope entity class.\n */\n export class ScopeClass\n extends NodeClass\n implements Entities.Scope {\n public Name: string;\n public ScopeTypeValue: number;\n public Children: Entities.Node[];\n public ActiveCount: number;\n public IsForm: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.ScopeTypeValue = \n odataObject.ScopeTypeValue;\n \n this.Children = undefined;\n if (odataObject.Children) {\n this.Children = [];\n for (var i = 0; i < odataObject.Children.length; i++) {\n if (odataObject.Children[i] != null) {\n if (odataObject.Children[i]['@odata.type'] != null) {\n var className: string = odataObject.Children[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Children[i] = new entityDictionary[className](odataObject.Children[i])\n }\n } else {\n this.Children[i] = new NodeClass(odataObject.Children[i]);\n }\n } else {\n this.Children[i] = undefined;\n }\n }\n }\n \n this.ActiveCount = \n odataObject.ActiveCount;\n \n this.IsForm = \n odataObject.IsForm;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Scope\";\n \n }\n }\n entityDictionary['ScopeClass'] = ScopeClass;\n \n /**\n * Framework entity class.\n */\n export class FrameworkClass implements Entities.Framework {\n public Lines: Entities.Line[];\n public Id: number;\n public Name: string;\n public Access: string;\n public Hierarchy: Entities.Line[];\n public Publisher: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Access = \n odataObject.Access;\n \n this.Hierarchy = undefined;\n if (odataObject.Hierarchy) {\n this.Hierarchy = [];\n for (var i = 0; i < odataObject.Hierarchy.length; i++) {\n if (odataObject.Hierarchy[i] != null) {\n if (odataObject.Hierarchy[i]['@odata.type'] != null) {\n var className: string = odataObject.Hierarchy[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Hierarchy[i] = new entityDictionary[className](odataObject.Hierarchy[i])\n }\n } else {\n this.Hierarchy[i] = new LineClass(odataObject.Hierarchy[i]);\n }\n } else {\n this.Hierarchy[i] = undefined;\n }\n }\n }\n \n this.Publisher = \n odataObject.Publisher;\n \n }\n }\n entityDictionary['FrameworkClass'] = FrameworkClass;\n \n /**\n * UserAction entity class.\n */\n export class UserActionClass\n extends NodeClass\n implements Entities.UserAction {\n public SystemGenerated: boolean;\n public GlobalId: string;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SystemGenerated = \n odataObject.SystemGenerated;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAction\";\n \n }\n }\n entityDictionary['UserActionClass'] = UserActionClass;\n \n /**\n * TaskUserAction entity class.\n */\n export class TaskUserActionClass\n extends UserActionClass\n implements Entities.TaskUserAction {\n public UserActionTypeValue: number;\n public Name: string;\n public Comment: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.UserActionTypeValue = \n odataObject.UserActionTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this.TaskId = \n odataObject.TaskId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskUserAction\";\n \n }\n }\n entityDictionary['TaskUserActionClass'] = TaskUserActionClass;\n \n /**\n * FormUserAction entity class.\n */\n export class FormUserActionClass\n extends UserActionClass\n implements Entities.FormUserAction {\n public FormId: string;\n public ControlLabel: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormUserAction\";\n \n }\n }\n entityDictionary['FormUserActionClass'] = FormUserActionClass;\n \n /**\n * CommandUserAction entity class.\n */\n export class CommandUserActionClass\n extends FormUserActionClass\n implements Entities.CommandUserAction {\n public ReturnTypeValue: number;\n public CommandName: string;\n public ControlName: string;\n public ControlType: string;\n public Arguments: Entities.CommandArgument[];\n public LabelId: string;\n public ReturnValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ReturnTypeValue = \n odataObject.ReturnTypeValue;\n \n this.CommandName = \n odataObject.CommandName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.Arguments = undefined;\n if (odataObject.Arguments) {\n this.Arguments = [];\n for (var i = 0; i < odataObject.Arguments.length; i++) {\n if (odataObject.Arguments[i] != null) {\n if (odataObject.Arguments[i]['@odata.type'] != null) {\n var className: string = odataObject.Arguments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Arguments[i] = new entityDictionary[className](odataObject.Arguments[i])\n }\n } else {\n this.Arguments[i] = new CommandArgumentClass(odataObject.Arguments[i]);\n }\n } else {\n this.Arguments[i] = undefined;\n }\n }\n }\n \n this.LabelId = \n odataObject.LabelId;\n \n this.ReturnValue = \n odataObject.ReturnValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommandUserAction\";\n \n }\n }\n entityDictionary['CommandUserActionClass'] = CommandUserActionClass;\n \n /**\n * Annotation entity class.\n */\n export class AnnotationClass implements Entities.Annotation {\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['AnnotationClass'] = AnnotationClass;\n \n /**\n * Recording entity class.\n */\n export class RecordingClass implements Entities.Recording {\n public Scopes: Entities.Scope[];\n public FormContextEntries: Entities.FormContextDictionaryEntry[];\n public RootScope: Entities.Scope;\n public Name: string;\n public Description: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Scopes = undefined;\n if (odataObject.Scopes) {\n this.Scopes = [];\n for (var i = 0; i < odataObject.Scopes.length; i++) {\n if (odataObject.Scopes[i] != null) {\n if (odataObject.Scopes[i]['@odata.type'] != null) {\n var className: string = odataObject.Scopes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Scopes[i] = new entityDictionary[className](odataObject.Scopes[i])\n }\n } else {\n this.Scopes[i] = new ScopeClass(odataObject.Scopes[i]);\n }\n } else {\n this.Scopes[i] = undefined;\n }\n }\n }\n \n this.FormContextEntries = undefined;\n if (odataObject.FormContextEntries) {\n this.FormContextEntries = [];\n for (var i = 0; i < odataObject.FormContextEntries.length; i++) {\n if (odataObject.FormContextEntries[i] != null) {\n if (odataObject.FormContextEntries[i]['@odata.type'] != null) {\n var className: string = odataObject.FormContextEntries[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContextEntries[i] = new entityDictionary[className](odataObject.FormContextEntries[i])\n }\n } else {\n this.FormContextEntries[i] = new FormContextDictionaryEntryClass(odataObject.FormContextEntries[i]);\n }\n } else {\n this.FormContextEntries[i] = undefined;\n }\n }\n }\n \n if (odataObject.RootScope == null) {\n this.RootScope = undefined;\n } else if (odataObject.RootScope['@odata.type'] == null) {\n this.RootScope = new ScopeClass(odataObject.RootScope);\n } else {\n var className: string = odataObject.RootScope['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RootScope = new entityDictionary[className](odataObject.RootScope)\n }\n }\n\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n }\n }\n entityDictionary['RecordingClass'] = RecordingClass;\n \n /**\n * FormContextDictionaryEntry entity class.\n */\n export class FormContextDictionaryEntryClass implements Entities.FormContextDictionaryEntry {\n public FormId: string;\n public FormContext: Entities.FormContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n if (odataObject.FormContext == null) {\n this.FormContext = undefined;\n } else if (odataObject.FormContext['@odata.type'] == null) {\n this.FormContext = new FormContextClass(odataObject.FormContext);\n } else {\n var className: string = odataObject.FormContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FormContext = new entityDictionary[className](odataObject.FormContext)\n }\n }\n\n \n }\n }\n entityDictionary['FormContextDictionaryEntryClass'] = FormContextDictionaryEntryClass;\n \n /**\n * ProductVariantResolutionContext entity class.\n */\n export class ProductVariantResolutionContextClass implements Entities.ProductVariantResolutionContext {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ProductVariantResolutionContextClass'] = ProductVariantResolutionContextClass;\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity class.\n */\n export class ProductVariantResolutionOnKitSelectionContextClass\n extends ProductVariantResolutionContextClass\n implements Entities.ProductVariantResolutionOnKitSelectionContext {\n public SelectedComponents: Entities.ComponentInSlotRelation[];\n public SlotId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SelectedComponents = undefined;\n if (odataObject.SelectedComponents) {\n this.SelectedComponents = [];\n for (var i = 0; i < odataObject.SelectedComponents.length; i++) {\n if (odataObject.SelectedComponents[i] != null) {\n if (odataObject.SelectedComponents[i]['@odata.type'] != null) {\n var className: string = odataObject.SelectedComponents[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SelectedComponents[i] = new entityDictionary[className](odataObject.SelectedComponents[i])\n }\n } else {\n this.SelectedComponents[i] = new ComponentInSlotRelationClass(odataObject.SelectedComponents[i]);\n }\n } else {\n this.SelectedComponents[i] = undefined;\n }\n }\n }\n \n this.SlotId = \n (odataObject.SlotId != null) ? parseInt(odataObject.SlotId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ProductVariantResolutionOnKitSelectionContext\";\n \n }\n }\n entityDictionary['ProductVariantResolutionOnKitSelectionContextClass'] = ProductVariantResolutionOnKitSelectionContextClass;\n \n /**\n * WarehouseLocation entity class.\n */\n export class WarehouseLocationClass implements Entities.WarehouseLocation {\n public LocationId: string;\n public IsLicensePlateControlled: boolean;\n public ProfileId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocationId = \n odataObject.LocationId;\n \n this.IsLicensePlateControlled = \n odataObject.IsLicensePlateControlled;\n \n this.ProfileId = \n odataObject.ProfileId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarehouseLocationClass'] = WarehouseLocationClass;\n \n /**\n * FiscalTransaction entity class.\n */\n export class FiscalTransactionClass implements Entities.FiscalTransaction {\n public CreatedDateTime: Date;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public TransDateTime: Date;\n public LineNumber: number;\n public RegisterResponse: string;\n public ReceiptCopy: boolean;\n public RecordGUID: string;\n public RegisterStoreId: string;\n public RegisterTerminalId: string;\n public StaffId: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public DocumentNumber: string;\n public RegistrationTypeValue: number;\n public ServiceName: string;\n public CountryRegionIsoCode: string;\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.ReceiptCopy = \n odataObject.ReceiptCopy;\n \n this.RecordGUID = \n odataObject.RecordGUID;\n \n this.RegisterStoreId = \n odataObject.RegisterStoreId;\n \n this.RegisterTerminalId = \n odataObject.RegisterTerminalId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.DocumentNumber = \n odataObject.DocumentNumber;\n \n this.RegistrationTypeValue = \n odataObject.RegistrationTypeValue;\n \n this.ServiceName = \n odataObject.ServiceName;\n \n this.CountryRegionIsoCode = \n odataObject.CountryRegionIsoCode;\n \n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionClass'] = FiscalTransactionClass;\n \n /**\n * FulfillmentLine entity class.\n */\n export class FulfillmentLineClass implements Entities.FulfillmentLine {\n public SalesId: string;\n public SalesPersonStoreId: string;\n public SalesPersonId: string;\n public SalesPersonFirstName: string;\n public SalesPersonLastName: string;\n public SalesLineNumber: number;\n public ReceiptId: string;\n public ChannelReferenceId: string;\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public DeliveryModeCode: string;\n public DocumentStatusValue: number;\n public FulfillmentDeliveryType: Entities.FulfillmentLineDeliveryType;\n public DeliveryTypeValue: number;\n public QuantityOrdered: number;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public StoreInventoryTotalQuantity: number;\n public StoreInventoryReservedQuantity: number;\n public StoreInventoryOrderedQuantity: number;\n public ItemId: string;\n public ProductId: number;\n public ProductVariant: string;\n public ItemName: string;\n public SerialNumber: string;\n public FulfillmentStatus: Entities.FulfillmentLineStatus;\n public FulfillmentStatusValue: number;\n public UnitOfMeasureSymbol: string;\n public RequestedShipDate: Date;\n public RequestedDeliveryDate: Date;\n public RequestedReceiptDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public CreatedDate: Date;\n public TotalAmount: number;\n public Balance: number;\n public ShippingAddress: Entities.Address;\n public DetailedOrderStatusValue: number;\n public DetailedLineStatusValue: number;\n public ChannelTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesPersonStoreId = \n odataObject.SalesPersonStoreId;\n \n this.SalesPersonId = \n odataObject.SalesPersonId;\n \n this.SalesPersonFirstName = \n odataObject.SalesPersonFirstName;\n \n this.SalesPersonLastName = \n odataObject.SalesPersonLastName;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.DocumentStatusValue = \n odataObject.DocumentStatusValue;\n \n if (odataObject.FulfillmentDeliveryType == null) {\n this.FulfillmentDeliveryType = undefined;\n } else if (odataObject.FulfillmentDeliveryType['@odata.type'] == null) {\n this.FulfillmentDeliveryType = new FulfillmentLineDeliveryTypeClass(odataObject.FulfillmentDeliveryType);\n } else {\n var className: string = odataObject.FulfillmentDeliveryType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentDeliveryType = new entityDictionary[className](odataObject.FulfillmentDeliveryType)\n }\n }\n\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.StoreInventoryTotalQuantity = \n (odataObject.StoreInventoryTotalQuantity != null) ? parseFloat(odataObject.StoreInventoryTotalQuantity) : undefined;\n \n this.StoreInventoryReservedQuantity = \n (odataObject.StoreInventoryReservedQuantity != null) ? parseFloat(odataObject.StoreInventoryReservedQuantity) : undefined;\n \n this.StoreInventoryOrderedQuantity = \n (odataObject.StoreInventoryOrderedQuantity != null) ? parseFloat(odataObject.StoreInventoryOrderedQuantity) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductVariant = \n odataObject.ProductVariant;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n if (odataObject.FulfillmentStatus == null) {\n this.FulfillmentStatus = undefined;\n } else if (odataObject.FulfillmentStatus['@odata.type'] == null) {\n this.FulfillmentStatus = new FulfillmentLineStatusClass(odataObject.FulfillmentStatus);\n } else {\n var className: string = odataObject.FulfillmentStatus['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentStatus = new entityDictionary[className](odataObject.FulfillmentStatus)\n }\n }\n\n \n this.FulfillmentStatusValue = \n odataObject.FulfillmentStatusValue;\n \n this.UnitOfMeasureSymbol = \n odataObject.UnitOfMeasureSymbol;\n \n this.RequestedShipDate = \n (odataObject.RequestedShipDate instanceof Date) ? odataObject.RequestedShipDate\n : (odataObject.RequestedShipDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedShipDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptDate = \n (odataObject.RequestedReceiptDate instanceof Date) ? odataObject.RequestedReceiptDate\n : (odataObject.RequestedReceiptDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CreatedDate = \n (odataObject.CreatedDate instanceof Date) ? odataObject.CreatedDate\n : (odataObject.CreatedDate != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TotalAmount = \n (odataObject.TotalAmount != null) ? parseFloat(odataObject.TotalAmount) : undefined;\n \n this.Balance = \n (odataObject.Balance != null) ? parseFloat(odataObject.Balance) : undefined;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n this.DetailedOrderStatusValue = \n odataObject.DetailedOrderStatusValue;\n \n this.DetailedLineStatusValue = \n odataObject.DetailedLineStatusValue;\n \n this.ChannelTypeValue = \n odataObject.ChannelTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineClass'] = FulfillmentLineClass;\n \n /**\n * FulfillmentLineSearchCriteria entity class.\n */\n export class FulfillmentLineSearchCriteriaClass implements Entities.FulfillmentLineSearchCriteria {\n public CustomerId: string;\n public CustomerName: string;\n public EmailAddress: string;\n public SalesId: string;\n public OrderCreatedStartDate: Date;\n public OrderCreatedEndDate: Date;\n public ReceiptId: string;\n public StoreId: string;\n public ChannelReferenceId: string;\n public RequestedReceiptStartDate: Date;\n public RequestedReceiptEndDate: Date;\n public RequestedDeliveryStartDate: Date;\n public RequestedDeliveryEndDate: Date;\n public FulfillmentStatusValues: number[];\n public DeliveryModeCode: string;\n public WarehouseId: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public DeliveryTypeValue: number;\n public CustomFilters: Entities.SearchFilter[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.OrderCreatedStartDate = \n (odataObject.OrderCreatedStartDate instanceof Date) ? odataObject.OrderCreatedStartDate\n : (odataObject.OrderCreatedStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.OrderCreatedEndDate = \n (odataObject.OrderCreatedEndDate instanceof Date) ? odataObject.OrderCreatedEndDate\n : (odataObject.OrderCreatedEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.OrderCreatedEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.RequestedReceiptStartDate = \n (odataObject.RequestedReceiptStartDate instanceof Date) ? odataObject.RequestedReceiptStartDate\n : (odataObject.RequestedReceiptStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedReceiptEndDate = \n (odataObject.RequestedReceiptEndDate instanceof Date) ? odataObject.RequestedReceiptEndDate\n : (odataObject.RequestedReceiptEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedReceiptEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryStartDate = \n (odataObject.RequestedDeliveryStartDate instanceof Date) ? odataObject.RequestedDeliveryStartDate\n : (odataObject.RequestedDeliveryStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestedDeliveryEndDate = \n (odataObject.RequestedDeliveryEndDate instanceof Date) ? odataObject.RequestedDeliveryEndDate\n : (odataObject.RequestedDeliveryEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.FulfillmentStatusValues = undefined;\n if (odataObject.FulfillmentStatusValues) {\n this.FulfillmentStatusValues = [];\n for (var i = 0; i < odataObject.FulfillmentStatusValues.length; i++) {\n if (odataObject.FulfillmentStatusValues[i] != null) {\n this.FulfillmentStatusValues[i] = \n odataObject.FulfillmentStatusValues[i];\n } else {\n this.FulfillmentStatusValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.WarehouseId = \n odataObject.WarehouseId;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineSearchCriteriaClass'] = FulfillmentLineSearchCriteriaClass;\n \n /**\n * Comment entity class.\n */\n export class CommentClass implements Entities.Comment {\n public RecordId: number;\n public AuthorStaffId: string;\n public AuthorName: string;\n public Text: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AuthorStaffId = \n odataObject.AuthorStaffId;\n \n this.AuthorName = \n odataObject.AuthorName;\n \n this.Text = \n odataObject.Text;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CommentClass'] = CommentClass;\n \n /**\n * AddressPurpose entity class.\n */\n export class AddressPurposeClass implements Entities.AddressPurpose {\n public RecordId: number;\n public AddressType: number;\n public Name: string;\n public Description: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.AddressType = \n odataObject.AddressType;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressPurposeClass'] = AddressPurposeClass;\n \n /**\n * DeliveryChargeLine entity class.\n */\n export class DeliveryChargeLineClass implements Entities.DeliveryChargeLine {\n public ChargeCode: string;\n public CurrencyCode: string;\n public CalculatedAmount: number;\n public Description: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChargeCode = \n odataObject.ChargeCode;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.CalculatedAmount = \n (odataObject.CalculatedAmount != null) ? parseFloat(odataObject.CalculatedAmount) : undefined;\n \n this.Description = \n odataObject.Description;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeliveryChargeLineClass'] = DeliveryChargeLineClass;\n \n /**\n * ExtensionPackageDefinition entity class.\n */\n export class ExtensionPackageDefinitionClass implements Entities.ExtensionPackageDefinition {\n public Name: string;\n public Publisher: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Publisher = \n odataObject.Publisher;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionPackageDefinitionClass'] = ExtensionPackageDefinitionClass;\n \n /**\n * ReturnPolicy entity class.\n */\n export class ReturnPolicyClass implements Entities.ReturnPolicy {\n public RecordId: number;\n public TenderTypePolicies: Entities.TenderTypePolicy[];\n public IsManagerOverrideEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.TenderTypePolicies = undefined;\n if (odataObject.TenderTypePolicies) {\n this.TenderTypePolicies = [];\n for (var i = 0; i < odataObject.TenderTypePolicies.length; i++) {\n if (odataObject.TenderTypePolicies[i] != null) {\n if (odataObject.TenderTypePolicies[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderTypePolicies[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderTypePolicies[i] = new entityDictionary[className](odataObject.TenderTypePolicies[i])\n }\n } else {\n this.TenderTypePolicies[i] = new TenderTypePolicyClass(odataObject.TenderTypePolicies[i]);\n }\n } else {\n this.TenderTypePolicies[i] = undefined;\n }\n }\n }\n \n this.IsManagerOverrideEnabled = \n odataObject.IsManagerOverrideEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnPolicyClass'] = ReturnPolicyClass;\n \n /**\n * TenderTypeAmount entity class.\n */\n export class TenderTypeAmountClass implements Entities.TenderTypeAmount {\n public TenderTypeId: string;\n public Amount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypeAmountClass'] = TenderTypeAmountClass;\n \n /**\n * FeatureState entity class.\n */\n export class FeatureStateClass implements Entities.FeatureState {\n public Name: string;\n public IsEnabled: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FeatureStateClass'] = FeatureStateClass;\n \n /**\n * Warranty entity class.\n */\n export class WarrantyClass\n extends SimpleProductClass\n implements Entities.Warranty {\n public DurationUnitValue: number;\n public Duration: number;\n public ApplicablePriceRangeBaseTypeValue: number;\n public ApplicablePriceRangeMin: number;\n public ApplicablePriceRangeMax: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.DurationUnitValue = \n odataObject.DurationUnitValue;\n \n this.Duration = \n odataObject.Duration;\n \n this.ApplicablePriceRangeBaseTypeValue = \n odataObject.ApplicablePriceRangeBaseTypeValue;\n \n this.ApplicablePriceRangeMin = \n (odataObject.ApplicablePriceRangeMin != null) ? parseFloat(odataObject.ApplicablePriceRangeMin) : undefined;\n \n this.ApplicablePriceRangeMax = \n (odataObject.ApplicablePriceRangeMax != null) ? parseFloat(odataObject.ApplicablePriceRangeMax) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.Warranty\";\n \n }\n }\n entityDictionary['WarrantyClass'] = WarrantyClass;\n \n /**\n * RecallInvoicedSalesLineLookup entity class.\n */\n export class RecallInvoicedSalesLineLookupClass implements Entities.RecallInvoicedSalesLineLookup {\n public InvoicedLineId: number;\n public Quantity: number;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoicedLineId = \n (odataObject.InvoicedLineId != null) ? parseInt(odataObject.InvoicedLineId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RecallInvoicedSalesLineLookupClass'] = RecallInvoicedSalesLineLookupClass;\n \n /**\n * WarrantyGroup entity class.\n */\n export class WarrantyGroupClass implements Entities.WarrantyGroup {\n public Warranties: Entities.Warranty[];\n public RecordId: number;\n public GroupName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Warranties = undefined;\n if (odataObject.Warranties) {\n this.Warranties = [];\n for (var i = 0; i < odataObject.Warranties.length; i++) {\n if (odataObject.Warranties[i] != null) {\n if (odataObject.Warranties[i]['@odata.type'] != null) {\n var className: string = odataObject.Warranties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Warranties[i] = new entityDictionary[className](odataObject.Warranties[i])\n }\n } else {\n this.Warranties[i] = new WarrantyClass(odataObject.Warranties[i]);\n }\n } else {\n this.Warranties[i] = undefined;\n }\n }\n }\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.GroupName = \n odataObject.GroupName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['WarrantyGroupClass'] = WarrantyGroupClass;\n \n /**\n * ProductWarrantiesMapping entity class.\n */\n export class ProductWarrantiesMappingClass implements Entities.ProductWarrantiesMapping {\n public WarrantyGroups: Entities.WarrantyGroup[];\n public WarrantableProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WarrantyGroups = undefined;\n if (odataObject.WarrantyGroups) {\n this.WarrantyGroups = [];\n for (var i = 0; i < odataObject.WarrantyGroups.length; i++) {\n if (odataObject.WarrantyGroups[i] != null) {\n if (odataObject.WarrantyGroups[i]['@odata.type'] != null) {\n var className: string = odataObject.WarrantyGroups[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.WarrantyGroups[i] = new entityDictionary[className](odataObject.WarrantyGroups[i])\n }\n } else {\n this.WarrantyGroups[i] = new WarrantyGroupClass(odataObject.WarrantyGroups[i]);\n }\n } else {\n this.WarrantyGroups[i] = undefined;\n }\n }\n }\n \n this.WarrantableProductId = \n (odataObject.WarrantableProductId != null) ? parseInt(odataObject.WarrantableProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarrantiesMappingClass'] = ProductWarrantiesMappingClass;\n \n /**\n * FulfillmentLineContextualOperationsMap entity class.\n */\n export class FulfillmentLineContextualOperationsMapClass implements Entities.FulfillmentLineContextualOperationsMap {\n public FulfillmentLine: Entities.FulfillmentLine;\n public ApplicableOperationsValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.FulfillmentLine == null) {\n this.FulfillmentLine = undefined;\n } else if (odataObject.FulfillmentLine['@odata.type'] == null) {\n this.FulfillmentLine = new FulfillmentLineClass(odataObject.FulfillmentLine);\n } else {\n var className: string = odataObject.FulfillmentLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FulfillmentLine = new entityDictionary[className](odataObject.FulfillmentLine)\n }\n }\n\n \n this.ApplicableOperationsValues = undefined;\n if (odataObject.ApplicableOperationsValues) {\n this.ApplicableOperationsValues = [];\n for (var i = 0; i < odataObject.ApplicableOperationsValues.length; i++) {\n if (odataObject.ApplicableOperationsValues[i] != null) {\n this.ApplicableOperationsValues[i] = \n odataObject.ApplicableOperationsValues[i];\n } else {\n this.ApplicableOperationsValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineContextualOperationsMapClass'] = FulfillmentLineContextualOperationsMapClass;\n \n /**\n * UserAlert entity class.\n */\n export class UserAlertClass implements Entities.UserAlert {\n public AlertSourceIdValue: number;\n public LocalizedMessage: string;\n public IsBlocking: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AlertSourceIdValue = \n odataObject.AlertSourceIdValue;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.IsBlocking = \n odataObject.IsBlocking;\n \n }\n }\n entityDictionary['UserAlertClass'] = UserAlertClass;\n \n /**\n * CartLineUserAlerts entity class.\n */\n export class CartLineUserAlertsClass implements Entities.CartLineUserAlerts {\n public LineIndex: number;\n public LineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIndex = \n odataObject.LineIndex;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineUserAlertsClass'] = CartLineUserAlertsClass;\n \n /**\n * FulfillmentLineUserAlerts entity class.\n */\n export class FulfillmentLineUserAlertsClass implements Entities.FulfillmentLineUserAlerts {\n public SalesId: string;\n public SalesLineNumber: number;\n public UserAlerts: Entities.UserAlert[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.UserAlerts = undefined;\n if (odataObject.UserAlerts) {\n this.UserAlerts = [];\n for (var i = 0; i < odataObject.UserAlerts.length; i++) {\n if (odataObject.UserAlerts[i] != null) {\n if (odataObject.UserAlerts[i]['@odata.type'] != null) {\n var className: string = odataObject.UserAlerts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UserAlerts[i] = new entityDictionary[className](odataObject.UserAlerts[i])\n }\n } else {\n this.UserAlerts[i] = new UserAlertClass(odataObject.UserAlerts[i]);\n }\n } else {\n this.UserAlerts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineUserAlertsClass'] = FulfillmentLineUserAlertsClass;\n \n /**\n * BusinessPartnerProspect entity class.\n */\n export class BusinessPartnerProspectClass implements Entities.BusinessPartnerProspect {\n public FirstName: string;\n public LastName: string;\n public CompanyName: string;\n public Address: Entities.Address;\n public JobTitle: string;\n public Department: string;\n public CompanySize: number;\n public Comments: string;\n public LastOperationId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FirstName = \n odataObject.FirstName;\n \n this.LastName = \n odataObject.LastName;\n \n this.CompanyName = \n odataObject.CompanyName;\n \n if (odataObject.Address == null) {\n this.Address = undefined;\n } else if (odataObject.Address['@odata.type'] == null) {\n this.Address = new AddressClass(odataObject.Address);\n } else {\n var className: string = odataObject.Address['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Address = new entityDictionary[className](odataObject.Address)\n }\n }\n\n \n this.JobTitle = \n odataObject.JobTitle;\n \n this.Department = \n odataObject.Department;\n \n this.CompanySize = \n odataObject.CompanySize;\n \n this.Comments = \n odataObject.Comments;\n \n this.LastOperationId = \n odataObject.LastOperationId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerProspectClass'] = BusinessPartnerProspectClass;\n \n /**\n * ChannelSearchCriteria entity class.\n */\n export class ChannelSearchCriteriaClass implements Entities.ChannelSearchCriteria {\n public SearchLocationValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelSearchCriteriaClass'] = ChannelSearchCriteriaClass;\n \n /**\n * BusinessPartnerOperation entity class.\n */\n export class BusinessPartnerOperationClass implements Entities.BusinessPartnerOperation {\n public TypeValue: number;\n public StatusValue: number;\n public Value: string;\n public Description: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Value = \n odataObject.Value;\n \n this.Description = \n odataObject.Description;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationClass'] = BusinessPartnerOperationClass;\n \n /**\n * BusinessPartnerOperationRequest entity class.\n */\n export class BusinessPartnerOperationRequestClass implements Entities.BusinessPartnerOperationRequest {\n public TypeValue: number;\n public StatusValue: number;\n public CreatedDateTime: Date;\n public Details: Entities.BusinessPartnerOperationRequestDetails;\n public UserId: string;\n public UserFirstName: string;\n public UserLastName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeValue = \n odataObject.TypeValue;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.Details == null) {\n this.Details = undefined;\n } else if (odataObject.Details['@odata.type'] == null) {\n this.Details = new BusinessPartnerOperationRequestDetailsClass(odataObject.Details);\n } else {\n var className: string = odataObject.Details['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Details = new entityDictionary[className](odataObject.Details)\n }\n }\n\n \n this.UserId = \n odataObject.UserId;\n \n this.UserFirstName = \n odataObject.UserFirstName;\n \n this.UserLastName = \n odataObject.UserLastName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestClass'] = BusinessPartnerOperationRequestClass;\n \n /**\n * ReceiptTypesByFormatType entity class.\n */\n export class ReceiptTypesByFormatTypeClass implements Entities.ReceiptTypesByFormatType {\n public ReceiptOutputFormatType: Entities.ReceiptOutputFormatType;\n public ReceiptTypesValues: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ReceiptOutputFormatType == null) {\n this.ReceiptOutputFormatType = undefined;\n } else if (odataObject.ReceiptOutputFormatType['@odata.type'] == null) {\n this.ReceiptOutputFormatType = new ReceiptOutputFormatTypeClass(odataObject.ReceiptOutputFormatType);\n } else {\n var className: string = odataObject.ReceiptOutputFormatType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptOutputFormatType = new entityDictionary[className](odataObject.ReceiptOutputFormatType)\n }\n }\n\n \n this.ReceiptTypesValues = undefined;\n if (odataObject.ReceiptTypesValues) {\n this.ReceiptTypesValues = [];\n for (var i = 0; i < odataObject.ReceiptTypesValues.length; i++) {\n if (odataObject.ReceiptTypesValues[i] != null) {\n this.ReceiptTypesValues[i] = \n odataObject.ReceiptTypesValues[i];\n } else {\n this.ReceiptTypesValues[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReceiptTypesByFormatTypeClass'] = ReceiptTypesByFormatTypeClass;\n \n /**\n * InventoryJournalNameSearchCriteria entity class.\n */\n export class InventoryJournalNameSearchCriteriaClass implements Entities.InventoryJournalNameSearchCriteria {\n public JournalNameIds: string[];\n public DocumentTypeValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JournalNameIds = undefined;\n if (odataObject.JournalNameIds) {\n this.JournalNameIds = [];\n for (var i = 0; i < odataObject.JournalNameIds.length; i++) {\n if (odataObject.JournalNameIds[i] != null) {\n this.JournalNameIds[i] = \n odataObject.JournalNameIds[i];\n } else {\n this.JournalNameIds[i] = undefined;\n }\n }\n }\n \n this.DocumentTypeValues = undefined;\n if (odataObject.DocumentTypeValues) {\n this.DocumentTypeValues = [];\n for (var i = 0; i < odataObject.DocumentTypeValues.length; i++) {\n if (odataObject.DocumentTypeValues[i] != null) {\n this.DocumentTypeValues[i] = \n odataObject.DocumentTypeValues[i];\n } else {\n this.DocumentTypeValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameSearchCriteriaClass'] = InventoryJournalNameSearchCriteriaClass;\n \n /**\n * AssortedProductIdentity entity class.\n */\n export class AssortedProductIdentityClass implements Entities.AssortedProductIdentity {\n public ProductId: number;\n public IsRemoteProduct: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.IsRemoteProduct = \n odataObject.IsRemoteProduct;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AssortedProductIdentityClass'] = AssortedProductIdentityClass;\n \n /**\n * ProductExistenceId entity class.\n */\n export class ProductExistenceIdClass implements Entities.ProductExistenceId {\n public ProductId: number;\n public LanguageId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceIdClass'] = ProductExistenceIdClass;\n \n /**\n * ProductExistenceCriteria entity class.\n */\n export class ProductExistenceCriteriaClass implements Entities.ProductExistenceCriteria {\n public ChannelId: number;\n public CatalogId: number;\n public Ids: Entities.ProductExistenceId[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Ids = undefined;\n if (odataObject.Ids) {\n this.Ids = [];\n for (var i = 0; i < odataObject.Ids.length; i++) {\n if (odataObject.Ids[i] != null) {\n if (odataObject.Ids[i]['@odata.type'] != null) {\n var className: string = odataObject.Ids[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Ids[i] = new entityDictionary[className](odataObject.Ids[i])\n }\n } else {\n this.Ids[i] = new ProductExistenceIdClass(odataObject.Ids[i]);\n }\n } else {\n this.Ids[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductExistenceCriteriaClass'] = ProductExistenceCriteriaClass;\n \n /**\n * ChecklistTask entity class.\n */\n export class ChecklistTaskClass implements Entities.ChecklistTask {\n public Version: string;\n public InstructionsVersion: string;\n public AssignedToPersonnelNumbers: string[];\n public AssignedToExternalSubId: string;\n public Id: string;\n public Name: string;\n public Description: string;\n public DueDateTime: Date;\n public DeepLinkTypeValue: number;\n public DeepLink: string;\n public DeepLinkPosOperationName: string;\n public ContactPersonPersonnelNumber: string;\n public Instructions: string;\n public StatusValue: number;\n public CompletionDateTime: Date;\n public ResolvedByPersonnelNumber: string;\n public ChecklistId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Version = \n odataObject.Version;\n \n this.InstructionsVersion = \n odataObject.InstructionsVersion;\n \n this.AssignedToPersonnelNumbers = undefined;\n if (odataObject.AssignedToPersonnelNumbers) {\n this.AssignedToPersonnelNumbers = [];\n for (var i = 0; i < odataObject.AssignedToPersonnelNumbers.length; i++) {\n if (odataObject.AssignedToPersonnelNumbers[i] != null) {\n this.AssignedToPersonnelNumbers[i] = \n odataObject.AssignedToPersonnelNumbers[i];\n } else {\n this.AssignedToPersonnelNumbers[i] = undefined;\n }\n }\n }\n \n this.AssignedToExternalSubId = \n odataObject.AssignedToExternalSubId;\n \n this.Id = \n odataObject.Id;\n \n this.Name = \n odataObject.Name;\n \n this.Description = \n odataObject.Description;\n \n this.DueDateTime = \n (odataObject.DueDateTime instanceof Date) ? odataObject.DueDateTime\n : (odataObject.DueDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DueDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DeepLinkTypeValue = \n odataObject.DeepLinkTypeValue;\n \n this.DeepLink = \n odataObject.DeepLink;\n \n this.DeepLinkPosOperationName = \n odataObject.DeepLinkPosOperationName;\n \n this.ContactPersonPersonnelNumber = \n odataObject.ContactPersonPersonnelNumber;\n \n this.Instructions = \n odataObject.Instructions;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.CompletionDateTime = \n (odataObject.CompletionDateTime instanceof Date) ? odataObject.CompletionDateTime\n : (odataObject.CompletionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CompletionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ResolvedByPersonnelNumber = \n odataObject.ResolvedByPersonnelNumber;\n \n this.ChecklistId = \n odataObject.ChecklistId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskClass'] = ChecklistTaskClass;\n \n /**\n * MediaLocation entity class.\n */\n export class MediaLocationClass implements Entities.MediaLocation {\n public Uri: string;\n public AltText: string;\n public IsDefault: boolean;\n public IsSelfHosted: boolean;\n public Priority: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Uri = \n odataObject.Uri;\n \n this.AltText = \n odataObject.AltText;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.IsSelfHosted = \n odataObject.IsSelfHosted;\n \n this.Priority = \n odataObject.Priority;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaLocationClass'] = MediaLocationClass;\n \n /**\n * EmployeeActivity entity class.\n */\n export class EmployeeActivityClass implements Entities.EmployeeActivity {\n public StaffId: string;\n public StaffName: string;\n public Activity: string;\n public ActivityDateTimeOffset: Date;\n public StoreNumber: string;\n public EmployeeActivityTypeValue: number;\n public BreakCategory: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this.StaffName = \n odataObject.StaffName;\n \n this.Activity = \n odataObject.Activity;\n \n this.ActivityDateTimeOffset = \n (odataObject.ActivityDateTimeOffset instanceof Date) ? odataObject.ActivityDateTimeOffset\n : (odataObject.ActivityDateTimeOffset != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDateTimeOffset, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.EmployeeActivityTypeValue = \n odataObject.EmployeeActivityTypeValue;\n \n this.BreakCategory = \n odataObject.BreakCategory;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmployeeActivityClass'] = EmployeeActivityClass;\n \n /**\n * CustomerRefiner entity class.\n */\n export class CustomerRefinerClass\n extends SearchRefinerClass\n implements Entities.CustomerRefiner {\n public SourceValue: number;\n public Values: Entities.CustomerRefinerValue[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SourceValue = \n odataObject.SourceValue;\n \n this.Values = undefined;\n if (odataObject.Values) {\n this.Values = [];\n for (var i = 0; i < odataObject.Values.length; i++) {\n if (odataObject.Values[i] != null) {\n if (odataObject.Values[i]['@odata.type'] != null) {\n var className: string = odataObject.Values[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Values[i] = new entityDictionary[className](odataObject.Values[i])\n }\n } else {\n this.Values[i] = new CustomerRefinerValueClass(odataObject.Values[i]);\n }\n } else {\n this.Values[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefiner\";\n \n }\n }\n entityDictionary['CustomerRefinerClass'] = CustomerRefinerClass;\n \n /**\n * TokenizedPaymentCard entity class.\n */\n export class TokenizedPaymentCardClass implements Entities.TokenizedPaymentCard {\n public IsSwipe: boolean;\n public TenderType: string;\n public CardTokenInfo: Entities.CardTokenInfo;\n public Phone: string;\n public Country: string;\n public House: string;\n public Address1: string;\n public Address2: string;\n public City: string;\n public State: string;\n public Zip: string;\n public NameOnCard: string;\n public CardTypeId: string;\n public ExpirationMonth: number;\n public ExpirationYear: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSwipe = \n odataObject.IsSwipe;\n \n this.TenderType = \n odataObject.TenderType;\n \n if (odataObject.CardTokenInfo == null) {\n this.CardTokenInfo = undefined;\n } else if (odataObject.CardTokenInfo['@odata.type'] == null) {\n this.CardTokenInfo = new CardTokenInfoClass(odataObject.CardTokenInfo);\n } else {\n var className: string = odataObject.CardTokenInfo['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CardTokenInfo = new entityDictionary[className](odataObject.CardTokenInfo)\n }\n }\n\n \n this.Phone = \n odataObject.Phone;\n \n this.Country = \n odataObject.Country;\n \n this.House = \n odataObject.House;\n \n this.Address1 = \n odataObject.Address1;\n \n this.Address2 = \n odataObject.Address2;\n \n this.City = \n odataObject.City;\n \n this.State = \n odataObject.State;\n \n this.Zip = \n odataObject.Zip;\n \n this.NameOnCard = \n odataObject.NameOnCard;\n \n this.CardTypeId = \n odataObject.CardTypeId;\n \n this.ExpirationMonth = \n odataObject.ExpirationMonth;\n \n this.ExpirationYear = \n odataObject.ExpirationYear;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TokenizedPaymentCardClass'] = TokenizedPaymentCardClass;\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity class.\n */\n export class ProductDimensionAvailabilitySearchCriteriaClass implements Entities.ProductDimensionAvailabilitySearchCriteria {\n public RequestedDimensionTypeValue: number;\n public MatchingDimensionValues: Entities.ProductDimension[];\n public DefaultWarehouseOnly: boolean;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedDimensionTypeValue = \n odataObject.RequestedDimensionTypeValue;\n \n this.MatchingDimensionValues = undefined;\n if (odataObject.MatchingDimensionValues) {\n this.MatchingDimensionValues = [];\n for (var i = 0; i < odataObject.MatchingDimensionValues.length; i++) {\n if (odataObject.MatchingDimensionValues[i] != null) {\n if (odataObject.MatchingDimensionValues[i]['@odata.type'] != null) {\n var className: string = odataObject.MatchingDimensionValues[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MatchingDimensionValues[i] = new entityDictionary[className](odataObject.MatchingDimensionValues[i])\n }\n } else {\n this.MatchingDimensionValues[i] = new ProductDimensionClass(odataObject.MatchingDimensionValues[i]);\n }\n } else {\n this.MatchingDimensionValues[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProductDimensionAvailabilitySearchCriteriaClass'] = ProductDimensionAvailabilitySearchCriteriaClass;\n \n /**\n * LineShippingAddress entity class.\n */\n export class LineShippingAddressClass implements Entities.LineShippingAddress {\n public LineId: string;\n public ShippingAddress: Entities.Address;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.ShippingAddress == null) {\n this.ShippingAddress = undefined;\n } else if (odataObject.ShippingAddress['@odata.type'] == null) {\n this.ShippingAddress = new AddressClass(odataObject.ShippingAddress);\n } else {\n var className: string = odataObject.ShippingAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShippingAddress = new entityDictionary[className](odataObject.ShippingAddress)\n }\n }\n\n \n }\n }\n entityDictionary['LineShippingAddressClass'] = LineShippingAddressClass;\n \n /**\n * CartDeliveryPreferences entity class.\n */\n export class CartDeliveryPreferencesClass implements Entities.CartDeliveryPreferences {\n public HeaderDeliveryPreferenceTypeValues: number[];\n public CartLineDeliveryPreferences: Entities.CartLineDeliveryPreference[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderDeliveryPreferenceTypeValues = undefined;\n if (odataObject.HeaderDeliveryPreferenceTypeValues) {\n this.HeaderDeliveryPreferenceTypeValues = [];\n for (var i = 0; i < odataObject.HeaderDeliveryPreferenceTypeValues.length; i++) {\n if (odataObject.HeaderDeliveryPreferenceTypeValues[i] != null) {\n this.HeaderDeliveryPreferenceTypeValues[i] = \n odataObject.HeaderDeliveryPreferenceTypeValues[i];\n } else {\n this.HeaderDeliveryPreferenceTypeValues[i] = undefined;\n }\n }\n }\n \n this.CartLineDeliveryPreferences = undefined;\n if (odataObject.CartLineDeliveryPreferences) {\n this.CartLineDeliveryPreferences = [];\n for (var i = 0; i < odataObject.CartLineDeliveryPreferences.length; i++) {\n if (odataObject.CartLineDeliveryPreferences[i] != null) {\n if (odataObject.CartLineDeliveryPreferences[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLineDeliveryPreferences[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLineDeliveryPreferences[i] = new entityDictionary[className](odataObject.CartLineDeliveryPreferences[i])\n }\n } else {\n this.CartLineDeliveryPreferences[i] = new CartLineDeliveryPreferenceClass(odataObject.CartLineDeliveryPreferences[i]);\n }\n } else {\n this.CartLineDeliveryPreferences[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartDeliveryPreferencesClass'] = CartDeliveryPreferencesClass;\n \n /**\n * LineDeliverySpecification entity class.\n */\n export class LineDeliverySpecificationClass implements Entities.LineDeliverySpecification {\n public LineId: string;\n public DeliverySpecification: Entities.DeliverySpecification;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.DeliverySpecification == null) {\n this.DeliverySpecification = undefined;\n } else if (odataObject.DeliverySpecification['@odata.type'] == null) {\n this.DeliverySpecification = new DeliverySpecificationClass(odataObject.DeliverySpecification);\n } else {\n var className: string = odataObject.DeliverySpecification['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliverySpecification = new entityDictionary[className](odataObject.DeliverySpecification)\n }\n }\n\n \n }\n }\n entityDictionary['LineDeliverySpecificationClass'] = LineDeliverySpecificationClass;\n \n /**\n * DeliverySpecification entity class.\n */\n export class DeliverySpecificationClass implements Entities.DeliverySpecification {\n public DeliveryModeId: string;\n public DeliveryPreferenceTypeValue: number;\n public DeliveryAddress: Entities.Address;\n public RequestedDeliveryDate: Date;\n public PickUpStoreId: string;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n public ElectronicDeliveryEmailAddress: string;\n public ElectronicDeliveryEmailContent: string;\n public ShipFromStoreId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeId = \n odataObject.DeliveryModeId;\n \n this.DeliveryPreferenceTypeValue = \n odataObject.DeliveryPreferenceTypeValue;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.RequestedDeliveryDate = \n (odataObject.RequestedDeliveryDate instanceof Date) ? odataObject.RequestedDeliveryDate\n : (odataObject.RequestedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.RequestedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickUpStoreId = \n odataObject.PickUpStoreId;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ElectronicDeliveryEmailAddress = \n odataObject.ElectronicDeliveryEmailAddress;\n \n this.ElectronicDeliveryEmailContent = \n odataObject.ElectronicDeliveryEmailContent;\n \n this.ShipFromStoreId = \n odataObject.ShipFromStoreId;\n \n }\n }\n entityDictionary['DeliverySpecificationClass'] = DeliverySpecificationClass;\n \n /**\n * OrderSearchCriteria entity class.\n */\n export class OrderSearchCriteriaClass implements Entities.OrderSearchCriteria {\n public CustomerAccountNumber: string;\n public CustomerName: string;\n public EmailAddress: string;\n public LoyaltyCardNumber: string;\n public CustomerPhoneNumber: string;\n public SalesId: string;\n public ReceiptId: string;\n public OrderStatusValues: number[];\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ChannelReferenceId: string;\n public StoreId: string;\n public OrderType: number;\n public CustomFilters: Entities.SearchFilter[];\n public FulfillmentTypeValues: number[];\n public DeliveryMode: string;\n public PickupStartDate: Date;\n public PickupEndDate: Date;\n public PickupTimeslotStartTime: number;\n public PickupTimeslotEndTime: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.CustomerName = \n odataObject.CustomerName;\n \n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerPhoneNumber = \n odataObject.CustomerPhoneNumber;\n \n this.SalesId = \n odataObject.SalesId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.OrderStatusValues = undefined;\n if (odataObject.OrderStatusValues) {\n this.OrderStatusValues = [];\n for (var i = 0; i < odataObject.OrderStatusValues.length; i++) {\n if (odataObject.OrderStatusValues[i] != null) {\n this.OrderStatusValues[i] = \n odataObject.OrderStatusValues[i];\n } else {\n this.OrderStatusValues[i] = undefined;\n }\n }\n }\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.OrderType = \n odataObject.OrderType;\n \n this.CustomFilters = undefined;\n if (odataObject.CustomFilters) {\n this.CustomFilters = [];\n for (var i = 0; i < odataObject.CustomFilters.length; i++) {\n if (odataObject.CustomFilters[i] != null) {\n if (odataObject.CustomFilters[i]['@odata.type'] != null) {\n var className: string = odataObject.CustomFilters[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CustomFilters[i] = new entityDictionary[className](odataObject.CustomFilters[i])\n }\n } else {\n this.CustomFilters[i] = new SearchFilterClass(odataObject.CustomFilters[i]);\n }\n } else {\n this.CustomFilters[i] = undefined;\n }\n }\n }\n \n this.FulfillmentTypeValues = undefined;\n if (odataObject.FulfillmentTypeValues) {\n this.FulfillmentTypeValues = [];\n for (var i = 0; i < odataObject.FulfillmentTypeValues.length; i++) {\n if (odataObject.FulfillmentTypeValues[i] != null) {\n this.FulfillmentTypeValues[i] = \n odataObject.FulfillmentTypeValues[i];\n } else {\n this.FulfillmentTypeValues[i] = undefined;\n }\n }\n }\n \n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n this.PickupStartDate = \n (odataObject.PickupStartDate instanceof Date) ? odataObject.PickupStartDate\n : (odataObject.PickupStartDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupStartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupEndDate = \n (odataObject.PickupEndDate instanceof Date) ? odataObject.PickupEndDate\n : (odataObject.PickupEndDate != null) ? jsonLightReadStringPropertyValue(odataObject.PickupEndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartTime = \n odataObject.PickupTimeslotStartTime;\n \n this.PickupTimeslotEndTime = \n odataObject.PickupTimeslotEndTime;\n \n }\n }\n entityDictionary['OrderSearchCriteriaClass'] = OrderSearchCriteriaClass;\n \n /**\n * ChecklistSearchCriteria entity class.\n */\n export class ChecklistSearchCriteriaClass implements Entities.ChecklistSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public ChecklistIds: string[];\n public StatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.ChecklistIds = undefined;\n if (odataObject.ChecklistIds) {\n this.ChecklistIds = [];\n for (var i = 0; i < odataObject.ChecklistIds.length; i++) {\n if (odataObject.ChecklistIds[i] != null) {\n this.ChecklistIds[i] = \n odataObject.ChecklistIds[i];\n } else {\n this.ChecklistIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistSearchCriteriaClass'] = ChecklistSearchCriteriaClass;\n \n /**\n * TaskSearchCriteria entity class.\n */\n export class TaskSearchCriteriaClass implements Entities.TaskSearchCriteria {\n public ChannelId: number;\n public PersonnelNumber: string;\n public TaskIds: string[];\n public StatusValues: number[];\n public FilterMyTasks: boolean;\n public FilterOverdueTasks: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.PersonnelNumber = \n odataObject.PersonnelNumber;\n \n this.TaskIds = undefined;\n if (odataObject.TaskIds) {\n this.TaskIds = [];\n for (var i = 0; i < odataObject.TaskIds.length; i++) {\n if (odataObject.TaskIds[i] != null) {\n this.TaskIds[i] = \n odataObject.TaskIds[i];\n } else {\n this.TaskIds[i] = undefined;\n }\n }\n }\n \n this.StatusValues = undefined;\n if (odataObject.StatusValues) {\n this.StatusValues = [];\n for (var i = 0; i < odataObject.StatusValues.length; i++) {\n if (odataObject.StatusValues[i] != null) {\n this.StatusValues[i] = \n odataObject.StatusValues[i];\n } else {\n this.StatusValues[i] = undefined;\n }\n }\n }\n \n this.FilterMyTasks = \n odataObject.FilterMyTasks;\n \n this.FilterOverdueTasks = \n odataObject.FilterOverdueTasks;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaskSearchCriteriaClass'] = TaskSearchCriteriaClass;\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity class.\n */\n export class ChecklistTaskTeamsIntegrationConfigurationClass implements Entities.ChecklistTaskTeamsIntegrationConfiguration {\n public IsEnabled: boolean;\n public MicrosoftGraphResource: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsEnabled = \n odataObject.IsEnabled;\n \n this.MicrosoftGraphResource = \n odataObject.MicrosoftGraphResource;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChecklistTaskTeamsIntegrationConfigurationClass'] = ChecklistTaskTeamsIntegrationConfigurationClass;\n \n /**\n * ReturnCartLine entity class.\n */\n export class ReturnCartLineClass implements Entities.ReturnCartLine {\n public Description: string;\n public ItemId: string;\n public ProductId: number;\n public Quantity: number;\n public ReturnLineNumber: number;\n public ReturnTransactionId: string;\n public SerialNumber: string;\n public IgnoreSerialNumberMismatch: boolean;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public Price: number;\n public IsPriceKeyedIn: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ReturnLineNumber = \n (odataObject.ReturnLineNumber != null) ? parseFloat(odataObject.ReturnLineNumber) : undefined;\n \n this.ReturnTransactionId = \n odataObject.ReturnTransactionId;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.IgnoreSerialNumberMismatch = \n odataObject.IgnoreSerialNumberMismatch;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.IsPriceKeyedIn = \n odataObject.IsPriceKeyedIn;\n \n }\n }\n entityDictionary['ReturnCartLineClass'] = ReturnCartLineClass;\n \n /**\n * TenderDiscountLine entity class.\n */\n export class TenderDiscountLineClass implements Entities.TenderDiscountLine {\n public DiscountAmount: number;\n public PaymentAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.PaymentAmount = \n (odataObject.PaymentAmount != null) ? parseFloat(odataObject.PaymentAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDiscountLineClass'] = TenderDiscountLineClass;\n \n /**\n * ReceiptRetrievalCriteria entity class.\n */\n export class ReceiptRetrievalCriteriaClass implements Entities.ReceiptRetrievalCriteria {\n public IsCopy: boolean;\n public IsRemoteTransaction: boolean;\n public IsPreview: boolean;\n public QueryBySalesId: boolean;\n public ReceiptTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public HardwareProfileId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsCopy = \n odataObject.IsCopy;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.IsPreview = \n odataObject.IsPreview;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n }\n }\n entityDictionary['ReceiptRetrievalCriteriaClass'] = ReceiptRetrievalCriteriaClass;\n \n /**\n * CartSearchCriteria entity class.\n */\n export class CartSearchCriteriaClass implements Entities.CartSearchCriteria {\n public CartId: string;\n public ExpectedCartVersion: number;\n public CustomerAccountNumber: string;\n public IncludeAnonymous: boolean;\n public SuspendedOnly: boolean;\n public CartTypeValue: number;\n public LastModifiedDateTimeFrom: Date;\n public LastModifiedDateTimeTo: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CartId = \n odataObject.CartId;\n \n this.ExpectedCartVersion = \n (odataObject.ExpectedCartVersion != null) ? parseInt(odataObject.ExpectedCartVersion, 10) : undefined;\n \n this.CustomerAccountNumber = \n odataObject.CustomerAccountNumber;\n \n this.IncludeAnonymous = \n odataObject.IncludeAnonymous;\n \n this.SuspendedOnly = \n odataObject.SuspendedOnly;\n \n this.CartTypeValue = \n odataObject.CartTypeValue;\n \n this.LastModifiedDateTimeFrom = \n (odataObject.LastModifiedDateTimeFrom instanceof Date) ? odataObject.LastModifiedDateTimeFrom\n : (odataObject.LastModifiedDateTimeFrom != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LastModifiedDateTimeTo = \n (odataObject.LastModifiedDateTimeTo instanceof Date) ? odataObject.LastModifiedDateTimeTo\n : (odataObject.LastModifiedDateTimeTo != null) ? jsonLightReadStringPropertyValue(odataObject.LastModifiedDateTimeTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['CartSearchCriteriaClass'] = CartSearchCriteriaClass;\n \n /**\n * RetrievePaymentResultSettings entity class.\n */\n export class RetrievePaymentResultSettingsClass implements Entities.RetrievePaymentResultSettings {\n public ReturnUrl: string;\n public PaymentConnectorId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnUrl = \n odataObject.ReturnUrl;\n \n this.PaymentConnectorId = \n odataObject.PaymentConnectorId;\n \n }\n }\n entityDictionary['RetrievePaymentResultSettingsClass'] = RetrievePaymentResultSettingsClass;\n \n /**\n * SearchReceiptCriteria entity class.\n */\n export class SearchReceiptCriteriaClass implements Entities.SearchReceiptCriteria {\n public TransactionId: string;\n public ReceiptTypeValue: number;\n public ReceiptTypesByFormatTypeCollection: Entities.ReceiptTypesByFormatType[];\n public IsCopy: boolean;\n public GiftReceiptLineNumbers: number[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.ReceiptTypesByFormatTypeCollection = undefined;\n if (odataObject.ReceiptTypesByFormatTypeCollection) {\n this.ReceiptTypesByFormatTypeCollection = [];\n for (var i = 0; i < odataObject.ReceiptTypesByFormatTypeCollection.length; i++) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i] != null) {\n if (odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'] != null) {\n var className: string = odataObject.ReceiptTypesByFormatTypeCollection[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReceiptTypesByFormatTypeCollection[i] = new entityDictionary[className](odataObject.ReceiptTypesByFormatTypeCollection[i])\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = new ReceiptTypesByFormatTypeClass(odataObject.ReceiptTypesByFormatTypeCollection[i]);\n }\n } else {\n this.ReceiptTypesByFormatTypeCollection[i] = undefined;\n }\n }\n }\n \n this.IsCopy = \n odataObject.IsCopy;\n \n this.GiftReceiptLineNumbers = undefined;\n if (odataObject.GiftReceiptLineNumbers) {\n this.GiftReceiptLineNumbers = [];\n for (var i = 0; i < odataObject.GiftReceiptLineNumbers.length; i++) {\n if (odataObject.GiftReceiptLineNumbers[i] != null) {\n this.GiftReceiptLineNumbers[i] = \n parseFloat(odataObject.GiftReceiptLineNumbers[i]);\n } else {\n this.GiftReceiptLineNumbers[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SearchReceiptCriteriaClass'] = SearchReceiptCriteriaClass;\n \n /**\n * ElectronicAddress entity class.\n */\n export class ElectronicAddressClass implements Entities.ElectronicAddress {\n public AddressTypeValue: number;\n public ExtensibleEAddressType: Entities.ExtensibleElectronicAddressType;\n public Address: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n if (odataObject.ExtensibleEAddressType == null) {\n this.ExtensibleEAddressType = undefined;\n } else if (odataObject.ExtensibleEAddressType['@odata.type'] == null) {\n this.ExtensibleEAddressType = new ExtensibleElectronicAddressTypeClass(odataObject.ExtensibleEAddressType);\n } else {\n var className: string = odataObject.ExtensibleEAddressType['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEAddressType = new entityDictionary[className](odataObject.ExtensibleEAddressType)\n }\n }\n\n \n this.Address = \n odataObject.Address;\n \n }\n }\n entityDictionary['ElectronicAddressClass'] = ElectronicAddressClass;\n \n /**\n * ChannelReferenceLookupCriteria entity class.\n */\n export class ChannelReferenceLookupCriteriaClass implements Entities.ChannelReferenceLookupCriteria {\n public ChannelReferenceId: string;\n public SearchLocationValue: number;\n public ChannelReferenceAdditionalLookupCriteria: Entities.ChannelReferenceAdditionalLookupCriteria[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelReferenceId = \n odataObject.ChannelReferenceId;\n \n this.SearchLocationValue = \n odataObject.SearchLocationValue;\n \n this.ChannelReferenceAdditionalLookupCriteria = undefined;\n if (odataObject.ChannelReferenceAdditionalLookupCriteria) {\n this.ChannelReferenceAdditionalLookupCriteria = [];\n for (var i = 0; i < odataObject.ChannelReferenceAdditionalLookupCriteria.length; i++) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i] != null) {\n if (odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelReferenceAdditionalLookupCriteria[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new entityDictionary[className](odataObject.ChannelReferenceAdditionalLookupCriteria[i])\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = new ChannelReferenceAdditionalLookupCriteriaClass(odataObject.ChannelReferenceAdditionalLookupCriteria[i]);\n }\n } else {\n this.ChannelReferenceAdditionalLookupCriteria[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelReferenceLookupCriteriaClass'] = ChannelReferenceLookupCriteriaClass;\n \n /**\n * FulfillmentLineParameter entity class.\n */\n export class FulfillmentLineParameterClass implements Entities.FulfillmentLineParameter {\n public SalesId: string;\n public SalesLineNumber: number;\n public Quantity: number;\n public SerialNumber: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesId = \n odataObject.SalesId;\n \n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FulfillmentLineParameterClass'] = FulfillmentLineParameterClass;\n \n /**\n * ShipFulfillmentLine entity class.\n */\n export class ShipFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.ShipFulfillmentLine {\n public ProductId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ShipFulfillmentLine\";\n \n }\n }\n entityDictionary['ShipFulfillmentLineClass'] = ShipFulfillmentLineClass;\n \n /**\n * RejectFulfillmentLine entity class.\n */\n export class RejectFulfillmentLineClass\n extends FulfillmentLineParameterClass\n implements Entities.RejectFulfillmentLine {\n public RejectedQuantity: number;\n public InfoCodeId: string;\n public SubInfoCodeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RejectedQuantity = \n (odataObject.RejectedQuantity != null) ? parseFloat(odataObject.RejectedQuantity) : undefined;\n \n this.InfoCodeId = \n odataObject.InfoCodeId;\n \n this.SubInfoCodeId = \n odataObject.SubInfoCodeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.RejectFulfillmentLine\";\n \n }\n }\n entityDictionary['RejectFulfillmentLineClass'] = RejectFulfillmentLineClass;\n \n /**\n * ReadChangedProductsSession entity class.\n */\n export class ReadChangedProductsSessionClass implements Entities.ReadChangedProductsSession {\n public Id: string;\n public TotalNumberOfProducts: number;\n public NumberOfProductsRead: number;\n public NumberOfProductsReadInCurrentPage: number;\n public NextSynchronizationToken: string;\n public IsInitialSync: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n odataObject.Id;\n \n this.TotalNumberOfProducts = \n odataObject.TotalNumberOfProducts;\n \n this.NumberOfProductsRead = \n odataObject.NumberOfProductsRead;\n \n this.NumberOfProductsReadInCurrentPage = \n odataObject.NumberOfProductsReadInCurrentPage;\n \n this.NextSynchronizationToken = \n odataObject.NextSynchronizationToken;\n \n this.IsInitialSync = \n odataObject.IsInitialSync;\n \n }\n }\n entityDictionary['ReadChangedProductsSessionClass'] = ReadChangedProductsSessionClass;\n \n /**\n * DeletedListingsResult entity class.\n */\n export class DeletedListingsResultClass implements Entities.DeletedListingsResult {\n public HasMorePublishedListings: boolean;\n public DeletedListings: Entities.ListingIdentity[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HasMorePublishedListings = \n odataObject.HasMorePublishedListings;\n \n this.DeletedListings = undefined;\n if (odataObject.DeletedListings) {\n this.DeletedListings = [];\n for (var i = 0; i < odataObject.DeletedListings.length; i++) {\n if (odataObject.DeletedListings[i] != null) {\n if (odataObject.DeletedListings[i]['@odata.type'] != null) {\n var className: string = odataObject.DeletedListings[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeletedListings[i] = new entityDictionary[className](odataObject.DeletedListings[i])\n }\n } else {\n this.DeletedListings[i] = new ListingIdentityClass(odataObject.DeletedListings[i]);\n }\n } else {\n this.DeletedListings[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DeletedListingsResultClass'] = DeletedListingsResultClass;\n \n /**\n * ProductRating entity class.\n */\n export class ProductRatingClass implements Entities.ProductRating {\n public ProductId: number;\n public AverageRating: number;\n public TotalRatings: number;\n public RatingDistribution: Entities.ProductRatingCount[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AverageRating = \n (odataObject.AverageRating != null) ? parseFloat(odataObject.AverageRating) : undefined;\n \n this.TotalRatings = \n odataObject.TotalRatings;\n \n this.RatingDistribution = undefined;\n if (odataObject.RatingDistribution) {\n this.RatingDistribution = [];\n for (var i = 0; i < odataObject.RatingDistribution.length; i++) {\n if (odataObject.RatingDistribution[i] != null) {\n if (odataObject.RatingDistribution[i]['@odata.type'] != null) {\n var className: string = odataObject.RatingDistribution[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RatingDistribution[i] = new entityDictionary[className](odataObject.RatingDistribution[i])\n }\n } else {\n this.RatingDistribution[i] = new ProductRatingCountClass(odataObject.RatingDistribution[i]);\n }\n } else {\n this.RatingDistribution[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingClass'] = ProductRatingClass;\n \n /**\n * ProductDeliveryOptions entity class.\n */\n export class ProductDeliveryOptionsClass implements Entities.ProductDeliveryOptions {\n public ProductId: number;\n public DeliveryOptions: Entities.DeliveryOption[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DeliveryOptions = undefined;\n if (odataObject.DeliveryOptions) {\n this.DeliveryOptions = [];\n for (var i = 0; i < odataObject.DeliveryOptions.length; i++) {\n if (odataObject.DeliveryOptions[i] != null) {\n if (odataObject.DeliveryOptions[i]['@odata.type'] != null) {\n var className: string = odataObject.DeliveryOptions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryOptions[i] = new entityDictionary[className](odataObject.DeliveryOptions[i])\n }\n } else {\n this.DeliveryOptions[i] = new DeliveryOptionClass(odataObject.DeliveryOptions[i]);\n }\n } else {\n this.DeliveryOptions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductDeliveryOptionsClass'] = ProductDeliveryOptionsClass;\n \n /**\n * ListingPublishStatus entity class.\n */\n export class ListingPublishStatusClass implements Entities.ListingPublishStatus {\n public PublishStatusValue: number;\n public ListingModifiedDateTime: Date;\n public ChannelListingId: string;\n public ChannelId: number;\n public CatalogId: number;\n public ProductId: number;\n public LanguageId: string;\n public AppliedActionValue: number;\n public StatusMessage: string;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PublishStatusValue = \n odataObject.PublishStatusValue;\n \n this.ListingModifiedDateTime = \n (odataObject.ListingModifiedDateTime instanceof Date) ? odataObject.ListingModifiedDateTime\n : (odataObject.ListingModifiedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.ListingModifiedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ChannelListingId = \n odataObject.ChannelListingId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.AppliedActionValue = \n odataObject.AppliedActionValue;\n \n this.StatusMessage = \n odataObject.StatusMessage;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingPublishStatusClass'] = ListingPublishStatusClass;\n \n /**\n * OrgUnitLocationSearchCriteria entity class.\n */\n export class OrgUnitLocationSearchCriteriaClass implements Entities.OrgUnitLocationSearchCriteria {\n public OrgUnitNumber: string;\n public OrgUnitName: string;\n public InventoryLocationIds: string[];\n public DeliveryModeTypeFilterValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.InventoryLocationIds = undefined;\n if (odataObject.InventoryLocationIds) {\n this.InventoryLocationIds = [];\n for (var i = 0; i < odataObject.InventoryLocationIds.length; i++) {\n if (odataObject.InventoryLocationIds[i] != null) {\n this.InventoryLocationIds[i] = \n odataObject.InventoryLocationIds[i];\n } else {\n this.InventoryLocationIds[i] = undefined;\n }\n }\n }\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n }\n }\n entityDictionary['OrgUnitLocationSearchCriteriaClass'] = OrgUnitLocationSearchCriteriaClass;\n \n /**\n * StoreHours entity class.\n */\n export class StoreHoursClass implements Entities.StoreHours {\n public RegularStoreHours: Entities.RegularStoreHours;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegularStoreHours == null) {\n this.RegularStoreHours = undefined;\n } else if (odataObject.RegularStoreHours['@odata.type'] == null) {\n this.RegularStoreHours = new RegularStoreHoursClass(odataObject.RegularStoreHours);\n } else {\n var className: string = odataObject.RegularStoreHours['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegularStoreHours = new entityDictionary[className](odataObject.RegularStoreHours)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreHoursClass'] = StoreHoursClass;\n \n /**\n * CartPromotions entity class.\n */\n export class CartPromotionsClass implements Entities.CartPromotions {\n public HeaderPromotions: string[];\n public CartLinePromotions: Entities.CartLinePromotion[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HeaderPromotions = undefined;\n if (odataObject.HeaderPromotions) {\n this.HeaderPromotions = [];\n for (var i = 0; i < odataObject.HeaderPromotions.length; i++) {\n if (odataObject.HeaderPromotions[i] != null) {\n this.HeaderPromotions[i] = \n odataObject.HeaderPromotions[i];\n } else {\n this.HeaderPromotions[i] = undefined;\n }\n }\n }\n \n this.CartLinePromotions = undefined;\n if (odataObject.CartLinePromotions) {\n this.CartLinePromotions = [];\n for (var i = 0; i < odataObject.CartLinePromotions.length; i++) {\n if (odataObject.CartLinePromotions[i] != null) {\n if (odataObject.CartLinePromotions[i]['@odata.type'] != null) {\n var className: string = odataObject.CartLinePromotions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CartLinePromotions[i] = new entityDictionary[className](odataObject.CartLinePromotions[i])\n }\n } else {\n this.CartLinePromotions[i] = new CartLinePromotionClass(odataObject.CartLinePromotions[i]);\n }\n } else {\n this.CartLinePromotions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionsClass'] = CartPromotionsClass;\n \n /**\n * CartPromotionLine entity class.\n */\n export class CartPromotionLineClass implements Entities.CartPromotionLine {\n public LineId: string;\n public Promotion: Entities.Promotion;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n if (odataObject.Promotion == null) {\n this.Promotion = undefined;\n } else if (odataObject.Promotion['@odata.type'] == null) {\n this.Promotion = new PromotionClass(odataObject.Promotion);\n } else {\n var className: string = odataObject.Promotion['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Promotion = new entityDictionary[className](odataObject.Promotion)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartPromotionLineClass'] = CartPromotionLineClass;\n \n /**\n * ItemUnit entity class.\n */\n export class ItemUnitClass implements Entities.ItemUnit {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public Product: number;\n public DistinctProductVariant: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.Product = \n (odataObject.Product != null) ? parseInt(odataObject.Product, 10) : undefined;\n \n this.DistinctProductVariant = \n (odataObject.DistinctProductVariant != null) ? parseInt(odataObject.DistinctProductVariant, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemUnitClass'] = ItemUnitClass;\n \n /**\n * ProductAvailableQuantity entity class.\n */\n export class ProductAvailableQuantityClass implements Entities.ProductAvailableQuantity {\n public ProductId: number;\n public AvailableQuantity: number;\n public UnitOfMeasure: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductAvailableQuantityClass'] = ProductAvailableQuantityClass;\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity class.\n */\n export class OrgUnitAvailabilitySearchCriteriaClass implements Entities.OrgUnitAvailabilitySearchCriteria {\n public OrgUnitName: string;\n public OrgUnitNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrgUnitName = \n odataObject.OrgUnitName;\n \n this.OrgUnitNumber = \n odataObject.OrgUnitNumber;\n \n }\n }\n entityDictionary['OrgUnitAvailabilitySearchCriteriaClass'] = OrgUnitAvailabilitySearchCriteriaClass;\n \n /**\n * InvoiceSearchCriteria entity class.\n */\n export class InvoiceSearchCriteriaClass implements Entities.InvoiceSearchCriteria {\n public BusinessPartnerId: string;\n public CustomerId: string;\n public InvoiceIds: string[];\n public InvoiceTypeValues: number[];\n public InvoicePaidStatusValues: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BusinessPartnerId = \n odataObject.BusinessPartnerId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.InvoiceIds = undefined;\n if (odataObject.InvoiceIds) {\n this.InvoiceIds = [];\n for (var i = 0; i < odataObject.InvoiceIds.length; i++) {\n if (odataObject.InvoiceIds[i] != null) {\n this.InvoiceIds[i] = \n odataObject.InvoiceIds[i];\n } else {\n this.InvoiceIds[i] = undefined;\n }\n }\n }\n \n this.InvoiceTypeValues = undefined;\n if (odataObject.InvoiceTypeValues) {\n this.InvoiceTypeValues = [];\n for (var i = 0; i < odataObject.InvoiceTypeValues.length; i++) {\n if (odataObject.InvoiceTypeValues[i] != null) {\n this.InvoiceTypeValues[i] = \n odataObject.InvoiceTypeValues[i];\n } else {\n this.InvoiceTypeValues[i] = undefined;\n }\n }\n }\n \n this.InvoicePaidStatusValues = undefined;\n if (odataObject.InvoicePaidStatusValues) {\n this.InvoicePaidStatusValues = [];\n for (var i = 0; i < odataObject.InvoicePaidStatusValues.length; i++) {\n if (odataObject.InvoicePaidStatusValues[i] != null) {\n this.InvoicePaidStatusValues[i] = \n odataObject.InvoicePaidStatusValues[i];\n } else {\n this.InvoicePaidStatusValues[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceSearchCriteriaClass'] = InvoiceSearchCriteriaClass;\n \n /**\n * InvoiceDetailsSearchCriteria entity class.\n */\n export class InvoiceDetailsSearchCriteriaClass implements Entities.InvoiceDetailsSearchCriteria {\n public InvoiceId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InvoiceDetailsSearchCriteriaClass'] = InvoiceDetailsSearchCriteriaClass;\n \n /**\n * PickAndPackSalesLineParameter entity class.\n */\n export class PickAndPackSalesLineParameterClass implements Entities.PickAndPackSalesLineParameter {\n public SalesLineNumber: number;\n public Quantity: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n }\n }\n entityDictionary['PickAndPackSalesLineParameterClass'] = PickAndPackSalesLineParameterClass;\n \n /**\n * ProductListSearchCriteria entity class.\n */\n export class ProductListSearchCriteriaClass implements Entities.ProductListSearchCriteria {\n public CustomerId: string;\n public ProductListId: string;\n public ProductListType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.ProductListId = \n odataObject.ProductListId;\n \n this.ProductListType = \n odataObject.ProductListType;\n \n }\n }\n entityDictionary['ProductListSearchCriteriaClass'] = ProductListSearchCriteriaClass;\n \n /**\n * ProjectionDomain entity class.\n */\n export class ProjectionDomainClass implements Entities.ProjectionDomain {\n public ChannelId: number;\n public CatalogId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n }\n }\n entityDictionary['ProjectionDomainClass'] = ProjectionDomainClass;\n \n /**\n * AffiliationLoyaltyTier entity class.\n */\n export class AffiliationLoyaltyTierClass implements Entities.AffiliationLoyaltyTier {\n public AffiliationId: number;\n public LoyaltyTierId: number;\n public AffiliationTypeValue: number;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public CustomerId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AffiliationId = \n (odataObject.AffiliationId != null) ? parseInt(odataObject.AffiliationId, 10) : undefined;\n \n this.LoyaltyTierId = \n (odataObject.LoyaltyTierId != null) ? parseInt(odataObject.LoyaltyTierId, 10) : undefined;\n \n this.AffiliationTypeValue = \n odataObject.AffiliationTypeValue;\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n this.CustomerId = \n odataObject.CustomerId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AffiliationLoyaltyTierClass'] = AffiliationLoyaltyTierClass;\n \n /**\n * ClientBookCustomerSearchCriteria entity class.\n */\n export class ClientBookCustomerSearchCriteriaClass implements Entities.ClientBookCustomerSearchCriteria {\n public FilterByCurrentEmployee: boolean;\n public Refinement: Entities.ClientBookRefinerValue[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FilterByCurrentEmployee = \n odataObject.FilterByCurrentEmployee;\n \n this.Refinement = undefined;\n if (odataObject.Refinement) {\n this.Refinement = [];\n for (var i = 0; i < odataObject.Refinement.length; i++) {\n if (odataObject.Refinement[i] != null) {\n if (odataObject.Refinement[i]['@odata.type'] != null) {\n var className: string = odataObject.Refinement[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Refinement[i] = new entityDictionary[className](odataObject.Refinement[i])\n }\n } else {\n this.Refinement[i] = new ClientBookRefinerValueClass(odataObject.Refinement[i]);\n }\n } else {\n this.Refinement[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerSearchCriteriaClass'] = ClientBookCustomerSearchCriteriaClass;\n \n /**\n * ClientBookCustomer entity class.\n */\n export class ClientBookCustomerClass implements Entities.ClientBookCustomer {\n public CustomerId: string;\n public Name: string;\n public Phone: string;\n public Email: string;\n public StaffId: string;\n public ImageUris: Entities.MediaLocation[];\n public Attributes: Entities.CustomerAttribute[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CustomerId = \n odataObject.CustomerId;\n \n this.Name = \n odataObject.Name;\n \n this.Phone = \n odataObject.Phone;\n \n this.Email = \n odataObject.Email;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.ImageUris = undefined;\n if (odataObject.ImageUris) {\n this.ImageUris = [];\n for (var i = 0; i < odataObject.ImageUris.length; i++) {\n if (odataObject.ImageUris[i] != null) {\n if (odataObject.ImageUris[i]['@odata.type'] != null) {\n var className: string = odataObject.ImageUris[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ImageUris[i] = new entityDictionary[className](odataObject.ImageUris[i])\n }\n } else {\n this.ImageUris[i] = new MediaLocationClass(odataObject.ImageUris[i]);\n }\n } else {\n this.ImageUris[i] = undefined;\n }\n }\n }\n \n this.Attributes = undefined;\n if (odataObject.Attributes) {\n this.Attributes = [];\n for (var i = 0; i < odataObject.Attributes.length; i++) {\n if (odataObject.Attributes[i] != null) {\n if (odataObject.Attributes[i]['@odata.type'] != null) {\n var className: string = odataObject.Attributes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Attributes[i] = new entityDictionary[className](odataObject.Attributes[i])\n }\n } else {\n this.Attributes[i] = new CustomerAttributeClass(odataObject.Attributes[i]);\n }\n } else {\n this.Attributes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookCustomerClass'] = ClientBookCustomerClass;\n \n /**\n * ClientBookChanges entity class.\n */\n export class ClientBookChangesClass implements Entities.ClientBookChanges {\n public Changes: Entities.ClientBookChange[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Changes = undefined;\n if (odataObject.Changes) {\n this.Changes = [];\n for (var i = 0; i < odataObject.Changes.length; i++) {\n if (odataObject.Changes[i] != null) {\n if (odataObject.Changes[i]['@odata.type'] != null) {\n var className: string = odataObject.Changes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Changes[i] = new entityDictionary[className](odataObject.Changes[i])\n }\n } else {\n this.Changes[i] = new ClientBookChangeClass(odataObject.Changes[i]);\n }\n } else {\n this.Changes[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ClientBookChangesClass'] = ClientBookChangesClass;\n \n /**\n * ChargeCode entity class.\n */\n export class ChargeCodeClass implements Entities.ChargeCode {\n public Code: string;\n public ModuleTypeValue: number;\n public Description: string;\n public ItemTaxGroupId: string;\n public IsRefundable: boolean;\n public IsShipping: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.ModuleTypeValue = \n odataObject.ModuleTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.ItemTaxGroupId = \n odataObject.ItemTaxGroupId;\n \n this.IsRefundable = \n odataObject.IsRefundable;\n \n this.IsShipping = \n odataObject.IsShipping;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChargeCodeClass'] = ChargeCodeClass;\n \n /**\n * PaymentMerchantInformation entity class.\n */\n export class PaymentMerchantInformationClass implements Entities.PaymentMerchantInformation {\n public PaymentConnectorPropertiesXml: string;\n public MerchantPropertiesHashValue: string;\n public ServiceAccountId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PaymentConnectorPropertiesXml = \n odataObject.PaymentConnectorPropertiesXml;\n \n this.MerchantPropertiesHashValue = \n odataObject.MerchantPropertiesHashValue;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PaymentMerchantInformationClass'] = PaymentMerchantInformationClass;\n \n /**\n * StoreSafe entity class.\n */\n export class StoreSafeClass implements Entities.StoreSafe {\n public SafeNumber: string;\n public Name: string;\n public StoreNumber: string;\n public SafeBalance: number;\n public LastUpdatedTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SafeNumber = \n odataObject.SafeNumber;\n \n this.Name = \n odataObject.Name;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.SafeBalance = \n (odataObject.SafeBalance != null) ? parseFloat(odataObject.SafeBalance) : undefined;\n \n this.LastUpdatedTime = \n (odataObject.LastUpdatedTime instanceof Date) ? odataObject.LastUpdatedTime\n : (odataObject.LastUpdatedTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastUpdatedTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreSafeClass'] = StoreSafeClass;\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity class.\n */\n export class InventoryDocumentReceiptSearchCriteriaClass implements Entities.InventoryDocumentReceiptSearchCriteria {\n public SourceDocumentId: string;\n public SourceDocumentTypeValue: number;\n public WorkDocumentId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentReceiptSearchCriteriaClass'] = InventoryDocumentReceiptSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass'] = InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass;\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity class.\n */\n export class InventoryDocumentSourceDocumentLineCommitRecordClass implements Entities.InventoryDocumentSourceDocumentLineCommitRecord {\n public WorkDocumentId: string;\n public LineId: string;\n public SourceDocumentRecordId: number;\n public SourceDocumentTypeValue: number;\n public SourceDocumentLineRecordId: number;\n public StaffId: string;\n public UpdateNowQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.WorkDocumentId = \n odataObject.WorkDocumentId;\n \n this.LineId = \n odataObject.LineId;\n \n this.SourceDocumentRecordId = \n (odataObject.SourceDocumentRecordId != null) ? parseInt(odataObject.SourceDocumentRecordId, 10) : undefined;\n \n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentLineRecordId = \n (odataObject.SourceDocumentLineRecordId != null) ? parseInt(odataObject.SourceDocumentLineRecordId, 10) : undefined;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.UpdateNowQuantity = \n (odataObject.UpdateNowQuantity != null) ? parseFloat(odataObject.UpdateNowQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceDocumentLineCommitRecordClass'] = InventoryDocumentSourceDocumentLineCommitRecordClass;\n \n /**\n * CreateHardwareStationTokenResult entity class.\n */\n export class CreateHardwareStationTokenResultClass implements Entities.CreateHardwareStationTokenResult {\n public HardwareStationToken: string;\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.HardwareStationToken = \n odataObject.HardwareStationToken;\n \n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CreateHardwareStationTokenResultClass'] = CreateHardwareStationTokenResultClass;\n \n /**\n * ValidateHardwareStationTokenResult entity class.\n */\n export class ValidateHardwareStationTokenResultClass implements Entities.ValidateHardwareStationTokenResult {\n public PairingKey: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PairingKey = \n odataObject.PairingKey;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidateHardwareStationTokenResultClass'] = ValidateHardwareStationTokenResultClass;\n \n /**\n * MediaBlob entity class.\n */\n export class MediaBlobClass implements Entities.MediaBlob {\n public MediaType: string;\n public Content: string;\n public IsDefault: boolean;\n public AltText: string;\n public PictureId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MediaType = \n odataObject.MediaType;\n \n this.Content = \n odataObject.Content;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.AltText = \n odataObject.AltText;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MediaBlobClass'] = MediaBlobClass;\n \n /**\n * OnlineChannel entity class.\n */\n export class OnlineChannelClass implements Entities.OnlineChannel {\n public OnlineChannelName: string;\n public CurrencyCode: string;\n public EventNotificationProfileId: string;\n public RecordId: number;\n public OrgUnitTypeValue: number;\n public Name: string;\n public DefaultCustomerAccount: string;\n public CategoryHierarchyId: number;\n public InventoryLocationId: string;\n public ChannelProfile: Entities.ChannelProfile;\n public ChannelProperties: Entities.ChannelProperty[];\n public ChannelLanguages: Entities.ChannelLanguage[];\n public Contacts: Entities.OrgUnitContact[];\n public ExtensionProperties: Entities.CommerceProperty[];\n public CountryRegions: Entities.CountryRegion[];\n \n // Navigation properties names\n public static countryRegionsPropertyName: string = \"CountryRegions\";\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OnlineChannelName = \n odataObject.OnlineChannelName;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.EventNotificationProfileId = \n odataObject.EventNotificationProfileId;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.OrgUnitTypeValue = \n odataObject.OrgUnitTypeValue;\n \n this.Name = \n odataObject.Name;\n \n this.DefaultCustomerAccount = \n odataObject.DefaultCustomerAccount;\n \n this.CategoryHierarchyId = \n (odataObject.CategoryHierarchyId != null) ? parseInt(odataObject.CategoryHierarchyId, 10) : undefined;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n if (odataObject.ChannelProfile == null) {\n this.ChannelProfile = undefined;\n } else if (odataObject.ChannelProfile['@odata.type'] == null) {\n this.ChannelProfile = new ChannelProfileClass(odataObject.ChannelProfile);\n } else {\n var className: string = odataObject.ChannelProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProfile = new entityDictionary[className](odataObject.ChannelProfile)\n }\n }\n\n \n this.ChannelProperties = undefined;\n if (odataObject.ChannelProperties) {\n this.ChannelProperties = [];\n for (var i = 0; i < odataObject.ChannelProperties.length; i++) {\n if (odataObject.ChannelProperties[i] != null) {\n if (odataObject.ChannelProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelProperties[i] = new entityDictionary[className](odataObject.ChannelProperties[i])\n }\n } else {\n this.ChannelProperties[i] = new ChannelPropertyClass(odataObject.ChannelProperties[i]);\n }\n } else {\n this.ChannelProperties[i] = undefined;\n }\n }\n }\n \n this.ChannelLanguages = undefined;\n if (odataObject.ChannelLanguages) {\n this.ChannelLanguages = [];\n for (var i = 0; i < odataObject.ChannelLanguages.length; i++) {\n if (odataObject.ChannelLanguages[i] != null) {\n if (odataObject.ChannelLanguages[i]['@odata.type'] != null) {\n var className: string = odataObject.ChannelLanguages[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ChannelLanguages[i] = new entityDictionary[className](odataObject.ChannelLanguages[i])\n }\n } else {\n this.ChannelLanguages[i] = new ChannelLanguageClass(odataObject.ChannelLanguages[i]);\n }\n } else {\n this.ChannelLanguages[i] = undefined;\n }\n }\n }\n \n this.Contacts = undefined;\n if (odataObject.Contacts) {\n this.Contacts = [];\n for (var i = 0; i < odataObject.Contacts.length; i++) {\n if (odataObject.Contacts[i] != null) {\n if (odataObject.Contacts[i]['@odata.type'] != null) {\n var className: string = odataObject.Contacts[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Contacts[i] = new entityDictionary[className](odataObject.Contacts[i])\n }\n } else {\n this.Contacts[i] = new OrgUnitContactClass(odataObject.Contacts[i]);\n }\n } else {\n this.Contacts[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n this.CountryRegions = undefined;\n if (odataObject.CountryRegions) {\n this.CountryRegions = [];\n for (var i = 0; i < odataObject.CountryRegions.length; i++) {\n if (odataObject.CountryRegions[i] != null) {\n if (odataObject.CountryRegions[i]['@odata.type'] != null) {\n var className: string = odataObject.CountryRegions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CountryRegions[i] = new entityDictionary[className](odataObject.CountryRegions[i])\n }\n } else {\n this.CountryRegions[i] = new CountryRegionClass(odataObject.CountryRegions[i]);\n }\n } else {\n this.CountryRegions[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OnlineChannelClass'] = OnlineChannelClass;\n \n /**\n * TerminalDataDownloadRequestInfo entity class.\n */\n export class TerminalDataDownloadRequestInfoClass implements Entities.TerminalDataDownloadRequestInfo {\n public TerminalId: string;\n public RequiresDataInitialization: boolean;\n public HasBeenInitializedBefore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.RequiresDataInitialization = \n odataObject.RequiresDataInitialization;\n \n this.HasBeenInitializedBefore = \n odataObject.HasBeenInitializedBefore;\n \n }\n }\n entityDictionary['TerminalDataDownloadRequestInfoClass'] = TerminalDataDownloadRequestInfoClass;\n \n /**\n * DataDownloadParameters entity class.\n */\n export class DataDownloadParametersClass implements Entities.DataDownloadParameters {\n public DownloadInterval: number;\n public DownloadSessions: Entities.DownloadSession[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DownloadInterval = \n odataObject.DownloadInterval;\n \n this.DownloadSessions = undefined;\n if (odataObject.DownloadSessions) {\n this.DownloadSessions = [];\n for (var i = 0; i < odataObject.DownloadSessions.length; i++) {\n if (odataObject.DownloadSessions[i] != null) {\n if (odataObject.DownloadSessions[i]['@odata.type'] != null) {\n var className: string = odataObject.DownloadSessions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DownloadSessions[i] = new entityDictionary[className](odataObject.DownloadSessions[i])\n }\n } else {\n this.DownloadSessions[i] = new DownloadSessionClass(odataObject.DownloadSessions[i]);\n }\n } else {\n this.DownloadSessions[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataDownloadParametersClass'] = DataDownloadParametersClass;\n \n /**\n * TerminalDataUploadRequestInfo entity class.\n */\n export class TerminalDataUploadRequestInfoClass implements Entities.TerminalDataUploadRequestInfo {\n public TerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n }\n }\n entityDictionary['TerminalDataUploadRequestInfoClass'] = TerminalDataUploadRequestInfoClass;\n \n /**\n * DataUploadParameters entity class.\n */\n export class DataUploadParametersClass implements Entities.DataUploadParameters {\n public UploadInterval: number;\n public UploadJobPackageRequests: Entities.UploadJobPackageRequest[];\n public FeatureControlList: Entities.RetailSharedConfigurationParameter[];\n public DataStore: Entities.CDXDataStore;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UploadInterval = \n odataObject.UploadInterval;\n \n this.UploadJobPackageRequests = undefined;\n if (odataObject.UploadJobPackageRequests) {\n this.UploadJobPackageRequests = [];\n for (var i = 0; i < odataObject.UploadJobPackageRequests.length; i++) {\n if (odataObject.UploadJobPackageRequests[i] != null) {\n if (odataObject.UploadJobPackageRequests[i]['@odata.type'] != null) {\n var className: string = odataObject.UploadJobPackageRequests[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.UploadJobPackageRequests[i] = new entityDictionary[className](odataObject.UploadJobPackageRequests[i])\n }\n } else {\n this.UploadJobPackageRequests[i] = new UploadJobPackageRequestClass(odataObject.UploadJobPackageRequests[i]);\n }\n } else {\n this.UploadJobPackageRequests[i] = undefined;\n }\n }\n }\n \n this.FeatureControlList = undefined;\n if (odataObject.FeatureControlList) {\n this.FeatureControlList = [];\n for (var i = 0; i < odataObject.FeatureControlList.length; i++) {\n if (odataObject.FeatureControlList[i] != null) {\n if (odataObject.FeatureControlList[i]['@odata.type'] != null) {\n var className: string = odataObject.FeatureControlList[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FeatureControlList[i] = new entityDictionary[className](odataObject.FeatureControlList[i])\n }\n } else {\n this.FeatureControlList[i] = new RetailSharedConfigurationParameterClass(odataObject.FeatureControlList[i]);\n }\n } else {\n this.FeatureControlList[i] = undefined;\n }\n }\n }\n \n if (odataObject.DataStore == null) {\n this.DataStore = undefined;\n } else if (odataObject.DataStore['@odata.type'] == null) {\n this.DataStore = new CDXDataStoreClass(odataObject.DataStore);\n } else {\n var className: string = odataObject.DataStore['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataStore = new entityDictionary[className](odataObject.DataStore)\n }\n }\n\n \n }\n }\n entityDictionary['DataUploadParametersClass'] = DataUploadParametersClass;\n \n /**\n * DownloadSession entity class.\n */\n export class DownloadSessionClass implements Entities.DownloadSession {\n public Id: number;\n public JobId: string;\n public JobDescription: string;\n public FileSize: number;\n public RowsAffected: number;\n public Checksum: string;\n public DateDownloaded: string;\n public DateRequested: string;\n public DataStoreName: string;\n public StatusValue: number;\n public Message: string;\n public DownloadLink: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Id = \n (odataObject.Id != null) ? parseInt(odataObject.Id, 10) : undefined;\n \n this.JobId = \n odataObject.JobId;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.FileSize = \n (odataObject.FileSize != null) ? parseInt(odataObject.FileSize, 10) : undefined;\n \n this.RowsAffected = \n odataObject.RowsAffected;\n \n this.Checksum = \n odataObject.Checksum;\n \n this.DateDownloaded = \n odataObject.DateDownloaded;\n \n this.DateRequested = \n odataObject.DateRequested;\n \n this.DataStoreName = \n odataObject.DataStoreName;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.Message = \n odataObject.Message;\n \n this.DownloadLink = \n odataObject.DownloadLink;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DownloadSessionClass'] = DownloadSessionClass;\n \n /**\n * OfflineTerminalState entity class.\n */\n export class OfflineTerminalStateClass implements Entities.OfflineTerminalState {\n public TerminalId: string;\n public State: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.State = \n odataObject.State;\n \n }\n }\n entityDictionary['OfflineTerminalStateClass'] = OfflineTerminalStateClass;\n \n /**\n * LoyaltyRewardPointActivity entity class.\n */\n export class LoyaltyRewardPointActivityClass implements Entities.LoyaltyRewardPointActivity {\n public ActivityDate: Date;\n public LoyaltyRewardPointTimelineEntryType: string;\n public ExtensibleLoyaltyRewardPointActivityEntryTypeValue: number;\n public LoyaltyPoints: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActivityDate = \n (odataObject.ActivityDate instanceof Date) ? odataObject.ActivityDate\n : (odataObject.ActivityDate != null) ? jsonLightReadStringPropertyValue(odataObject.ActivityDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LoyaltyRewardPointTimelineEntryType = \n odataObject.LoyaltyRewardPointTimelineEntryType;\n \n this.ExtensibleLoyaltyRewardPointActivityEntryTypeValue = \n odataObject.ExtensibleLoyaltyRewardPointActivityEntryTypeValue;\n \n this.LoyaltyPoints = \n (odataObject.LoyaltyPoints != null) ? parseFloat(odataObject.LoyaltyPoints) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointActivityClass'] = LoyaltyRewardPointActivityClass;\n \n /**\n * CurrencyRequest entity class.\n */\n export class CurrencyRequestClass implements Entities.CurrencyRequest {\n public AmountToConvert: number;\n public CurrencyCode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AmountToConvert = \n (odataObject.AmountToConvert != null) ? parseFloat(odataObject.AmountToConvert) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CurrencyRequestClass'] = CurrencyRequestClass;\n \n /**\n * HardwareStationProfile entity class.\n */\n export class HardwareStationProfileClass implements Entities.HardwareStationProfile {\n public RecordId: number;\n public HardwareStationId: string;\n public HardwareStationTypeValue: number;\n public HardwareProfileId: string;\n public HardwareStationName: string;\n public HardwareStationDescription: string;\n public HardwareStationUrl: string;\n public HardwareStationHostName: string;\n public HardwareStationEftTerminalId: string;\n public HardwareConfigurations: Entities.HardwareConfigurations;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationId = \n odataObject.HardwareStationId;\n \n this.HardwareStationTypeValue = \n odataObject.HardwareStationTypeValue;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.HardwareStationName = \n odataObject.HardwareStationName;\n \n this.HardwareStationDescription = \n odataObject.HardwareStationDescription;\n \n this.HardwareStationUrl = \n odataObject.HardwareStationUrl;\n \n this.HardwareStationHostName = \n odataObject.HardwareStationHostName;\n \n this.HardwareStationEftTerminalId = \n odataObject.HardwareStationEftTerminalId;\n \n if (odataObject.HardwareConfigurations == null) {\n this.HardwareConfigurations = undefined;\n } else if (odataObject.HardwareConfigurations['@odata.type'] == null) {\n this.HardwareConfigurations = new HardwareConfigurationsClass(odataObject.HardwareConfigurations);\n } else {\n var className: string = odataObject.HardwareConfigurations['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.HardwareConfigurations = new entityDictionary[className](odataObject.HardwareConfigurations)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareStationProfileClass'] = HardwareStationProfileClass;\n \n /**\n * NameValuePair entity class.\n */\n export class NameValuePairClass implements Entities.NameValuePair {\n public Name: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['NameValuePairClass'] = NameValuePairClass;\n \n /**\n * LinkToExistingCustomerResult entity class.\n */\n export class LinkToExistingCustomerResultClass implements Entities.LinkToExistingCustomerResult {\n public EmailAddress: string;\n public ExternalIdentityProvider: string;\n public ExternalIdentityLinkRecordId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EmailAddress = \n odataObject.EmailAddress;\n \n this.ExternalIdentityProvider = \n odataObject.ExternalIdentityProvider;\n \n this.ExternalIdentityLinkRecordId = \n (odataObject.ExternalIdentityLinkRecordId != null) ? parseInt(odataObject.ExternalIdentityLinkRecordId, 10) : undefined;\n \n }\n }\n entityDictionary['LinkToExistingCustomerResultClass'] = LinkToExistingCustomerResultClass;\n \n /**\n * OfflineSyncStatsLine entity class.\n */\n export class OfflineSyncStatsLineClass implements Entities.OfflineSyncStatsLine {\n public IsUploadJob: boolean;\n public JobDescription: string;\n public LastSyncDateTime: Date;\n public Status: string;\n public FileSize: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsUploadJob = \n odataObject.IsUploadJob;\n \n this.JobDescription = \n odataObject.JobDescription;\n \n this.LastSyncDateTime = \n (odataObject.LastSyncDateTime instanceof Date) ? odataObject.LastSyncDateTime\n : (odataObject.LastSyncDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.LastSyncDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.FileSize = \n odataObject.FileSize;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['OfflineSyncStatsLineClass'] = OfflineSyncStatsLineClass;\n \n /**\n * StorageAccessToken entity class.\n */\n export class StorageAccessTokenClass implements Entities.StorageAccessToken {\n public Url: string;\n public SasKey: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Url = \n odataObject.Url;\n \n this.SasKey = \n odataObject.SasKey;\n \n }\n }\n entityDictionary['StorageAccessTokenClass'] = StorageAccessTokenClass;\n \n /**\n * TaskGuidesSearchResult entity class.\n */\n export class TaskGuidesSearchResultClass implements Entities.TaskGuidesSearchResult {\n public Lines: Entities.Line[];\n public FrameworkPublisherName: string;\n public FrameworkName: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Lines = undefined;\n if (odataObject.Lines) {\n this.Lines = [];\n for (var i = 0; i < odataObject.Lines.length; i++) {\n if (odataObject.Lines[i] != null) {\n if (odataObject.Lines[i]['@odata.type'] != null) {\n var className: string = odataObject.Lines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Lines[i] = new entityDictionary[className](odataObject.Lines[i])\n }\n } else {\n this.Lines[i] = new LineClass(odataObject.Lines[i]);\n }\n } else {\n this.Lines[i] = undefined;\n }\n }\n }\n \n this.FrameworkPublisherName = \n odataObject.FrameworkPublisherName;\n \n this.FrameworkName = \n odataObject.FrameworkName;\n \n }\n }\n entityDictionary['TaskGuidesSearchResultClass'] = TaskGuidesSearchResultClass;\n \n /**\n * AuditEvent entity class.\n */\n export class AuditEventClass implements Entities.AuditEvent {\n public EventId: number;\n public EventIdString: string;\n public Channel: number;\n public Store: string;\n public Terminal: string;\n public UploadType: string;\n public EventType: string;\n public EventDateTime: Date;\n public DurationInMilliseconds: number;\n public Source: string;\n public EventMessage: string;\n public LogLevel: string;\n public Staff: string;\n public ShiftId: number;\n public ClosedShiftId: number;\n public ReferenceId: number;\n public RefChannel: number;\n public RefStore: string;\n public RefTerminal: string;\n public RefTransactionId: string;\n public AuditEventTypeValue: number;\n public FiscalTransactions: Entities.AuditEventFiscalTransaction[];\n public FiscalRegistrationLines: Entities.AuditEventFiscalRegistrationLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.EventIdString = \n odataObject.EventIdString;\n \n this.Channel = \n (odataObject.Channel != null) ? parseInt(odataObject.Channel, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.EventType = \n odataObject.EventType;\n \n this.EventDateTime = \n (odataObject.EventDateTime instanceof Date) ? odataObject.EventDateTime\n : (odataObject.EventDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EventDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.DurationInMilliseconds = \n odataObject.DurationInMilliseconds;\n \n this.Source = \n odataObject.Source;\n \n this.EventMessage = \n odataObject.EventMessage;\n \n this.LogLevel = \n odataObject.LogLevel;\n \n this.Staff = \n odataObject.Staff;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ClosedShiftId = \n (odataObject.ClosedShiftId != null) ? parseInt(odataObject.ClosedShiftId, 10) : undefined;\n \n this.ReferenceId = \n (odataObject.ReferenceId != null) ? parseInt(odataObject.ReferenceId, 10) : undefined;\n \n this.RefChannel = \n (odataObject.RefChannel != null) ? parseInt(odataObject.RefChannel, 10) : undefined;\n \n this.RefStore = \n odataObject.RefStore;\n \n this.RefTerminal = \n odataObject.RefTerminal;\n \n this.RefTransactionId = \n odataObject.RefTransactionId;\n \n this.AuditEventTypeValue = \n odataObject.AuditEventTypeValue;\n \n this.FiscalTransactions = undefined;\n if (odataObject.FiscalTransactions) {\n this.FiscalTransactions = [];\n for (var i = 0; i < odataObject.FiscalTransactions.length; i++) {\n if (odataObject.FiscalTransactions[i] != null) {\n if (odataObject.FiscalTransactions[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalTransactions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalTransactions[i] = new entityDictionary[className](odataObject.FiscalTransactions[i])\n }\n } else {\n this.FiscalTransactions[i] = new AuditEventFiscalTransactionClass(odataObject.FiscalTransactions[i]);\n }\n } else {\n this.FiscalTransactions[i] = undefined;\n }\n }\n }\n \n this.FiscalRegistrationLines = undefined;\n if (odataObject.FiscalRegistrationLines) {\n this.FiscalRegistrationLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationLines.length; i++) {\n if (odataObject.FiscalRegistrationLines[i] != null) {\n if (odataObject.FiscalRegistrationLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationLines[i])\n }\n } else {\n this.FiscalRegistrationLines[i] = new AuditEventFiscalRegistrationLineClass(odataObject.FiscalRegistrationLines[i]);\n }\n } else {\n this.FiscalRegistrationLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventClass'] = AuditEventClass;\n \n /**\n * ItemAvailability entity class.\n */\n export class ItemAvailabilityClass implements Entities.ItemAvailability {\n public ItemId: string;\n public VariantInventoryDimensionId: string;\n public InventoryLocationId: string;\n public ProductId: number;\n public AvailableQuantity: number;\n public OrderedSum: number;\n public PhysicalReserved: number;\n public UnitOfMeasure: string;\n public InventoryUnitOfMeasure: string;\n public InventoryUnitOfMeasureDescription: string;\n public ProductDimensions: Entities.ProductDimension[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.VariantInventoryDimensionId = \n odataObject.VariantInventoryDimensionId;\n \n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.AvailableQuantity = \n (odataObject.AvailableQuantity != null) ? parseFloat(odataObject.AvailableQuantity) : undefined;\n \n this.OrderedSum = \n (odataObject.OrderedSum != null) ? parseFloat(odataObject.OrderedSum) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.InventoryUnitOfMeasure = \n odataObject.InventoryUnitOfMeasure;\n \n this.InventoryUnitOfMeasureDescription = \n odataObject.InventoryUnitOfMeasureDescription;\n \n this.ProductDimensions = undefined;\n if (odataObject.ProductDimensions) {\n this.ProductDimensions = [];\n for (var i = 0; i < odataObject.ProductDimensions.length; i++) {\n if (odataObject.ProductDimensions[i] != null) {\n if (odataObject.ProductDimensions[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductDimensions[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductDimensions[i] = new entityDictionary[className](odataObject.ProductDimensions[i])\n }\n } else {\n this.ProductDimensions[i] = new ProductDimensionClass(odataObject.ProductDimensions[i]);\n }\n } else {\n this.ProductDimensions[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ItemAvailabilityClass'] = ItemAvailabilityClass;\n \n /**\n * InventoryAvailableToPromise entity class.\n */\n export class InventoryAvailableToPromiseClass\n extends ItemAvailabilityClass\n implements Entities.InventoryAvailableToPromise {\n public Date: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Date = \n odataObject.Date;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InventoryAvailableToPromise\";\n \n }\n }\n entityDictionary['InventoryAvailableToPromiseClass'] = InventoryAvailableToPromiseClass;\n \n /**\n * NotificationItem entity class.\n */\n export class NotificationItemClass implements Entities.NotificationItem {\n public Action: number;\n public ActionName: string;\n public NotificationDetails: Entities.NotificationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionName = \n odataObject.ActionName;\n \n this.NotificationDetails = undefined;\n if (odataObject.NotificationDetails) {\n this.NotificationDetails = [];\n for (var i = 0; i < odataObject.NotificationDetails.length; i++) {\n if (odataObject.NotificationDetails[i] != null) {\n if (odataObject.NotificationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.NotificationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NotificationDetails[i] = new entityDictionary[className](odataObject.NotificationDetails[i])\n }\n } else {\n this.NotificationDetails[i] = new NotificationDetailClass(odataObject.NotificationDetails[i]);\n }\n } else {\n this.NotificationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationItemClass'] = NotificationItemClass;\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity class.\n */\n export class FiscalIntegrationDocumentRetrievalCriteriaClass implements Entities.FiscalIntegrationDocumentRetrievalCriteria {\n public TransactionId: string;\n public IsRemoteTransaction: boolean;\n public QueryBySalesId: boolean;\n public FiscalRegistrationEventTypeValue: number;\n public ShiftId: number;\n public ShiftTerminalId: string;\n public DocumentContext: Entities.FiscalIntegrationDocumentContext;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.IsRemoteTransaction = \n odataObject.IsRemoteTransaction;\n \n this.QueryBySalesId = \n odataObject.QueryBySalesId;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n if (odataObject.DocumentContext == null) {\n this.DocumentContext = undefined;\n } else if (odataObject.DocumentContext['@odata.type'] == null) {\n this.DocumentContext = new FiscalIntegrationDocumentContextClass(odataObject.DocumentContext);\n } else {\n var className: string = odataObject.DocumentContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentContext = new entityDictionary[className](odataObject.DocumentContext)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentRetrievalCriteriaClass'] = FiscalIntegrationDocumentRetrievalCriteriaClass;\n \n /**\n * FiscalIntegrationDocument entity class.\n */\n export class FiscalIntegrationDocumentClass implements Entities.FiscalIntegrationDocument {\n public Document: string;\n public DocumentGenerationResultTypeValue: number;\n public FiscalConnectorTechnicalProfile: Entities.FiscalIntegrationTechnicalProfile;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public SequentialSignatureDataContext: Entities.FiscalIntegrationSignatureDataContext;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Document = \n odataObject.Document;\n \n this.DocumentGenerationResultTypeValue = \n odataObject.DocumentGenerationResultTypeValue;\n \n if (odataObject.FiscalConnectorTechnicalProfile == null) {\n this.FiscalConnectorTechnicalProfile = undefined;\n } else if (odataObject.FiscalConnectorTechnicalProfile['@odata.type'] == null) {\n this.FiscalConnectorTechnicalProfile = new FiscalIntegrationTechnicalProfileClass(odataObject.FiscalConnectorTechnicalProfile);\n } else {\n var className: string = odataObject.FiscalConnectorTechnicalProfile['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalConnectorTechnicalProfile = new entityDictionary[className](odataObject.FiscalConnectorTechnicalProfile)\n }\n }\n\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n if (odataObject.SequentialSignatureDataContext == null) {\n this.SequentialSignatureDataContext = undefined;\n } else if (odataObject.SequentialSignatureDataContext['@odata.type'] == null) {\n this.SequentialSignatureDataContext = new FiscalIntegrationSignatureDataContextClass(odataObject.SequentialSignatureDataContext);\n } else {\n var className: string = odataObject.SequentialSignatureDataContext['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureDataContext = new entityDictionary[className](odataObject.SequentialSignatureDataContext)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentClass'] = FiscalIntegrationDocumentClass;\n \n /**\n * FiscalIntegrationRegistrationResult entity class.\n */\n export class FiscalIntegrationRegistrationResultClass implements Entities.FiscalIntegrationRegistrationResult {\n public TransactionID: string;\n public AuditEventId: string;\n public Response: string;\n public SubmittedDocument: string;\n public RegisterInfo: string;\n public RegistrationStatusValue: number;\n public FiscalRegistrationEventTypeValue: number;\n public DocumentAdjustment: Entities.FiscalIntegrationDocumentAdjustment;\n public ReasonCodeLines: Entities.ReasonCodeLine[];\n public SequentialSignatureData: Entities.FiscalIntegrationSequentialSignatureData;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionID = \n odataObject.TransactionID;\n \n this.AuditEventId = \n odataObject.AuditEventId;\n \n this.Response = \n odataObject.Response;\n \n this.SubmittedDocument = \n odataObject.SubmittedDocument;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.FiscalRegistrationEventTypeValue = \n odataObject.FiscalRegistrationEventTypeValue;\n \n if (odataObject.DocumentAdjustment == null) {\n this.DocumentAdjustment = undefined;\n } else if (odataObject.DocumentAdjustment['@odata.type'] == null) {\n this.DocumentAdjustment = new FiscalIntegrationDocumentAdjustmentClass(odataObject.DocumentAdjustment);\n } else {\n var className: string = odataObject.DocumentAdjustment['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DocumentAdjustment = new entityDictionary[className](odataObject.DocumentAdjustment)\n }\n }\n\n \n this.ReasonCodeLines = undefined;\n if (odataObject.ReasonCodeLines) {\n this.ReasonCodeLines = [];\n for (var i = 0; i < odataObject.ReasonCodeLines.length; i++) {\n if (odataObject.ReasonCodeLines[i] != null) {\n if (odataObject.ReasonCodeLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeLines[i] = new entityDictionary[className](odataObject.ReasonCodeLines[i])\n }\n } else {\n this.ReasonCodeLines[i] = new ReasonCodeLineClass(odataObject.ReasonCodeLines[i]);\n }\n } else {\n this.ReasonCodeLines[i] = undefined;\n }\n }\n }\n \n if (odataObject.SequentialSignatureData == null) {\n this.SequentialSignatureData = undefined;\n } else if (odataObject.SequentialSignatureData['@odata.type'] == null) {\n this.SequentialSignatureData = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SequentialSignatureData);\n } else {\n var className: string = odataObject.SequentialSignatureData['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SequentialSignatureData = new entityDictionary[className](odataObject.SequentialSignatureData)\n }\n }\n\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationResultClass'] = FiscalIntegrationRegistrationResultClass;\n \n /**\n * FiscalIntegrationRegistrationProcess entity class.\n */\n export class FiscalIntegrationRegistrationProcessClass implements Entities.FiscalIntegrationRegistrationProcess {\n public RecordId: number;\n public RegistrationProcessId: string;\n public Description: string;\n public ModeValue: number;\n public RegistrationProcessLines: Entities.FiscalIntegrationRegistrationProcessLine[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.Description = \n odataObject.Description;\n \n this.ModeValue = \n odataObject.ModeValue;\n \n this.RegistrationProcessLines = undefined;\n if (odataObject.RegistrationProcessLines) {\n this.RegistrationProcessLines = [];\n for (var i = 0; i < odataObject.RegistrationProcessLines.length; i++) {\n if (odataObject.RegistrationProcessLines[i] != null) {\n if (odataObject.RegistrationProcessLines[i]['@odata.type'] != null) {\n var className: string = odataObject.RegistrationProcessLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLines[i] = new entityDictionary[className](odataObject.RegistrationProcessLines[i])\n }\n } else {\n this.RegistrationProcessLines[i] = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLines[i]);\n }\n } else {\n this.RegistrationProcessLines[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessClass'] = FiscalIntegrationRegistrationProcessClass;\n \n /**\n * FiscalIntegrationSupportedEvents entity class.\n */\n export class FiscalIntegrationSupportedEventsClass implements Entities.FiscalIntegrationSupportedEvents {\n public FunctionalityProfileGroupId: string;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSupportedEventsClass'] = FiscalIntegrationSupportedEventsClass;\n \n /**\n * FiscalIntegrationTechnicalProfile entity class.\n */\n export class FiscalIntegrationTechnicalProfileClass implements Entities.FiscalIntegrationTechnicalProfile {\n public ProfileId: string;\n public Description: string;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public TechnicalProfile: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileId = \n odataObject.ProfileId;\n \n this.Description = \n odataObject.Description;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.TechnicalProfile = \n odataObject.TechnicalProfile;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileClass'] = FiscalIntegrationTechnicalProfileClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummary {\n public RegistrationProcessId: string;\n public FiscalRegistrationProcessSummaryLines: Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.FiscalRegistrationProcessSummaryLines = undefined;\n if (odataObject.FiscalRegistrationProcessSummaryLines) {\n this.FiscalRegistrationProcessSummaryLines = [];\n for (var i = 0; i < odataObject.FiscalRegistrationProcessSummaryLines.length; i++) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i] != null) {\n if (odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'] != null) {\n var className: string = odataObject.FiscalRegistrationProcessSummaryLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FiscalRegistrationProcessSummaryLines[i] = new entityDictionary[className](odataObject.FiscalRegistrationProcessSummaryLines[i])\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = new FiscalIntegrationFiscalRegistrationProcessSummaryLineClass(odataObject.FiscalRegistrationProcessSummaryLines[i]);\n }\n } else {\n this.FiscalRegistrationProcessSummaryLines[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryClass;\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity class.\n */\n export class FiscalIntegrationTechnicalProfileSearchCriteriaClass implements Entities.FiscalIntegrationTechnicalProfileSearchCriteria {\n public ExcludeOptionalProcessLines: boolean;\n public FunctionalityProfileGroupIds: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExcludeOptionalProcessLines = \n odataObject.ExcludeOptionalProcessLines;\n \n this.FunctionalityProfileGroupIds = undefined;\n if (odataObject.FunctionalityProfileGroupIds) {\n this.FunctionalityProfileGroupIds = [];\n for (var i = 0; i < odataObject.FunctionalityProfileGroupIds.length; i++) {\n if (odataObject.FunctionalityProfileGroupIds[i] != null) {\n this.FunctionalityProfileGroupIds[i] = \n odataObject.FunctionalityProfileGroupIds[i];\n } else {\n this.FunctionalityProfileGroupIds[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationTechnicalProfileSearchCriteriaClass'] = FiscalIntegrationTechnicalProfileSearchCriteriaClass;\n \n /**\n * FiscalIntegrationServiceInfo entity class.\n */\n export class FiscalIntegrationServiceInfoClass implements Entities.FiscalIntegrationServiceInfo {\n public ServiceName: string;\n public ServiceProperties: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ServiceName = \n odataObject.ServiceName;\n \n this.ServiceProperties = \n odataObject.ServiceProperties;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceInfoClass'] = FiscalIntegrationServiceInfoClass;\n \n /**\n * FiscalIntegrationServiceStatus entity class.\n */\n export class FiscalIntegrationServiceStatusClass implements Entities.FiscalIntegrationServiceStatus {\n public IsReady: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsReady = \n odataObject.IsReady;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceStatusClass'] = FiscalIntegrationServiceStatusClass;\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity class.\n */\n export class FiscalIntegrationServiceCommunicationResultClass implements Entities.FiscalIntegrationServiceCommunicationResult {\n public Response: string;\n public CommunicationResultTypeValue: number;\n public FailureDetails: Entities.FiscalIntegrationServiceFailureDetails;\n public FiscalIntegrationServiceInfo: string;\n public UserNotificationMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Response = \n odataObject.Response;\n \n this.CommunicationResultTypeValue = \n odataObject.CommunicationResultTypeValue;\n \n if (odataObject.FailureDetails == null) {\n this.FailureDetails = undefined;\n } else if (odataObject.FailureDetails['@odata.type'] == null) {\n this.FailureDetails = new FiscalIntegrationServiceFailureDetailsClass(odataObject.FailureDetails);\n } else {\n var className: string = odataObject.FailureDetails['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FailureDetails = new entityDictionary[className](odataObject.FailureDetails)\n }\n }\n\n \n this.FiscalIntegrationServiceInfo = \n odataObject.FiscalIntegrationServiceInfo;\n \n this.UserNotificationMessage = \n odataObject.UserNotificationMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceCommunicationResultClass'] = FiscalIntegrationServiceCommunicationResultClass;\n \n /**\n * FiscalIntegrationSequentialSignatureData entity class.\n */\n export class FiscalIntegrationSequentialSignatureDataClass implements Entities.FiscalIntegrationSequentialSignatureData {\n public LastRegisterResponse: string;\n public SequenceKey: string;\n public IsOffline: boolean;\n public SequentialNumber: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LastRegisterResponse = \n odataObject.LastRegisterResponse;\n \n this.SequenceKey = \n odataObject.SequenceKey;\n \n this.IsOffline = \n odataObject.IsOffline;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationSequentialSignatureDataClass'] = FiscalIntegrationSequentialSignatureDataClass;\n \n /**\n * DiscountsSearchCriteria entity class.\n */\n export class DiscountsSearchCriteriaClass implements Entities.DiscountsSearchCriteria {\n public ChannelId: number;\n public Keyword: string;\n public IsDiscountCodeRequired: boolean;\n public StartDate: Date;\n public EndDate: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.Keyword = \n odataObject.Keyword;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DiscountsSearchCriteriaClass'] = DiscountsSearchCriteriaClass;\n \n /**\n * Promotion entity class.\n */\n export class PromotionClass implements Entities.Promotion {\n public OfferId: string;\n public OfferName: string;\n public PeriodicDiscountTypeValue: number;\n public IsDiscountCodeRequired: boolean;\n public ValidationPeriodId: string;\n public AdditionalRestrictions: string;\n public Description: string;\n public ValidFromDate: Date;\n public ValidToDate: Date;\n public ValidationPeriod: Entities.ValidationPeriod;\n public CouponCodes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OfferId = \n odataObject.OfferId;\n \n this.OfferName = \n odataObject.OfferName;\n \n this.PeriodicDiscountTypeValue = \n odataObject.PeriodicDiscountTypeValue;\n \n this.IsDiscountCodeRequired = \n odataObject.IsDiscountCodeRequired;\n \n this.ValidationPeriodId = \n odataObject.ValidationPeriodId;\n \n this.AdditionalRestrictions = \n odataObject.AdditionalRestrictions;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFromDate = \n (odataObject.ValidFromDate instanceof Date) ? odataObject.ValidFromDate\n : (odataObject.ValidFromDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidToDate = \n (odataObject.ValidToDate instanceof Date) ? odataObject.ValidToDate\n : (odataObject.ValidToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ValidToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n if (odataObject.ValidationPeriod == null) {\n this.ValidationPeriod = undefined;\n } else if (odataObject.ValidationPeriod['@odata.type'] == null) {\n this.ValidationPeriod = new ValidationPeriodClass(odataObject.ValidationPeriod);\n } else {\n var className: string = odataObject.ValidationPeriod['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationPeriod = new entityDictionary[className](odataObject.ValidationPeriod)\n }\n }\n\n \n this.CouponCodes = undefined;\n if (odataObject.CouponCodes) {\n this.CouponCodes = [];\n for (var i = 0; i < odataObject.CouponCodes.length; i++) {\n if (odataObject.CouponCodes[i] != null) {\n this.CouponCodes[i] = \n odataObject.CouponCodes[i];\n } else {\n this.CouponCodes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PromotionClass'] = PromotionClass;\n \n /**\n * CategoryPathLookup entity class.\n */\n export class CategoryPathLookupClass implements Entities.CategoryPathLookup {\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathLookupClass'] = CategoryPathLookupClass;\n \n /**\n * CategoryPathResult entity class.\n */\n export class CategoryPathResultClass implements Entities.CategoryPathResult {\n public ProductId: number;\n public CategoryPath: Entities.CategoryPath[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.CategoryPath = undefined;\n if (odataObject.CategoryPath) {\n this.CategoryPath = [];\n for (var i = 0; i < odataObject.CategoryPath.length; i++) {\n if (odataObject.CategoryPath[i] != null) {\n if (odataObject.CategoryPath[i]['@odata.type'] != null) {\n var className: string = odataObject.CategoryPath[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CategoryPath[i] = new entityDictionary[className](odataObject.CategoryPath[i])\n }\n } else {\n this.CategoryPath[i] = new CategoryPathClass(odataObject.CategoryPath[i]);\n }\n } else {\n this.CategoryPath[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathResultClass'] = CategoryPathResultClass;\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity class.\n */\n export class PickupTimeslotAvailabilitySearchCriteriaClass implements Entities.PickupTimeslotAvailabilitySearchCriteria {\n public DeliveryModeCode: string;\n public StoreId: string;\n public StartDate: Date;\n public EndDate: Date;\n public SearchOptionValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryModeCode = \n odataObject.DeliveryModeCode;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.StartDate = \n (odataObject.StartDate instanceof Date) ? odataObject.StartDate\n : (odataObject.StartDate != null) ? jsonLightReadStringPropertyValue(odataObject.StartDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDate = \n (odataObject.EndDate instanceof Date) ? odataObject.EndDate\n : (odataObject.EndDate != null) ? jsonLightReadStringPropertyValue(odataObject.EndDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.SearchOptionValue = \n odataObject.SearchOptionValue;\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilitySearchCriteriaClass'] = PickupTimeslotAvailabilitySearchCriteriaClass;\n \n /**\n * PickupTimeslotAvailability entity class.\n */\n export class PickupTimeslotAvailabilityClass implements Entities.PickupTimeslotAvailability {\n public AvailableCapacity: number;\n public StartDateTime: Date;\n public EndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AvailableCapacity = \n odataObject.AvailableCapacity;\n \n this.StartDateTime = \n (odataObject.StartDateTime instanceof Date) ? odataObject.StartDateTime\n : (odataObject.StartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.StartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EndDateTime = \n (odataObject.EndDateTime instanceof Date) ? odataObject.EndDateTime\n : (odataObject.EndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.EndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PickupTimeslotAvailabilityClass'] = PickupTimeslotAvailabilityClass;\n \n /**\n * CheckInForOrderPickupConfirmation entity class.\n */\n export class CheckInForOrderPickupConfirmationClass implements Entities.CheckInForOrderPickupConfirmation {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CheckInForOrderPickupConfirmationClass'] = CheckInForOrderPickupConfirmationClass;\n \n /**\n * ExtensionProfile entity class.\n */\n export class ExtensionProfileClass implements Entities.ExtensionProfile {\n public ExtensionServiceUrl: string;\n public AttachedServices: Entities.AttachedService[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionServiceUrl = \n odataObject.ExtensionServiceUrl;\n \n this.AttachedServices = undefined;\n if (odataObject.AttachedServices) {\n this.AttachedServices = [];\n for (var i = 0; i < odataObject.AttachedServices.length; i++) {\n if (odataObject.AttachedServices[i] != null) {\n if (odataObject.AttachedServices[i]['@odata.type'] != null) {\n var className: string = odataObject.AttachedServices[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttachedServices[i] = new entityDictionary[className](odataObject.AttachedServices[i])\n }\n } else {\n this.AttachedServices[i] = new AttachedServiceClass(odataObject.AttachedServices[i]);\n }\n } else {\n this.AttachedServices[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensionProfileClass'] = ExtensionProfileClass;\n \n /**\n * ChannelInventoryConfiguration entity class.\n */\n export class ChannelInventoryConfigurationClass implements Entities.ChannelInventoryConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowTransferOrderOverDelivery: boolean;\n public AllowTransferOrderUnderDelivery: boolean;\n public UserLocationProfileId: string;\n public InventoryProductAttributeRecordId: number;\n public InventoryOutOfStockAttributeValueText: string;\n public ProductAvailabilitySortableAttributeRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowTransferOrderOverDelivery = \n odataObject.AllowTransferOrderOverDelivery;\n \n this.AllowTransferOrderUnderDelivery = \n odataObject.AllowTransferOrderUnderDelivery;\n \n this.UserLocationProfileId = \n odataObject.UserLocationProfileId;\n \n this.InventoryProductAttributeRecordId = \n (odataObject.InventoryProductAttributeRecordId != null) ? parseInt(odataObject.InventoryProductAttributeRecordId, 10) : undefined;\n \n this.InventoryOutOfStockAttributeValueText = \n odataObject.InventoryOutOfStockAttributeValueText;\n \n this.ProductAvailabilitySortableAttributeRecordId = \n (odataObject.ProductAvailabilitySortableAttributeRecordId != null) ? parseInt(odataObject.ProductAvailabilitySortableAttributeRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelInventoryConfigurationClass'] = ChannelInventoryConfigurationClass;\n \n /**\n * ChannelPurchaseConfiguration entity class.\n */\n export class ChannelPurchaseConfigurationClass implements Entities.ChannelPurchaseConfiguration {\n public RecordId: number;\n public ChannelId: string;\n public AllowOverDelivery: boolean;\n public AllowSubDelivery: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ChannelId = \n odataObject.ChannelId;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this.AllowSubDelivery = \n odataObject.AllowSubDelivery;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelPurchaseConfigurationClass'] = ChannelPurchaseConfigurationClass;\n \n /**\n * InventoryJournalName entity class.\n */\n export class InventoryJournalNameClass implements Entities.InventoryJournalName {\n public RecordId: number;\n public JournalNameId: string;\n public InventoryJournalTypeValue: number;\n public Description: string;\n public DefaultAdjustmentTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.JournalNameId = \n odataObject.JournalNameId;\n \n this.InventoryJournalTypeValue = \n odataObject.InventoryJournalTypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DefaultAdjustmentTypeValue = \n odataObject.DefaultAdjustmentTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryJournalNameClass'] = InventoryJournalNameClass;\n \n /**\n * ShiftRetrievalCriteria entity class.\n */\n export class ShiftRetrievalCriteriaClass implements Entities.ShiftRetrievalCriteria {\n public ShiftStatusValue: number;\n public FilterByUserRole: boolean;\n public IncludeAllShiftsForStore: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftStatusValue = \n odataObject.ShiftStatusValue;\n \n this.FilterByUserRole = \n odataObject.FilterByUserRole;\n \n this.IncludeAllShiftsForStore = \n odataObject.IncludeAllShiftsForStore;\n \n }\n }\n entityDictionary['ShiftRetrievalCriteriaClass'] = ShiftRetrievalCriteriaClass;\n \n /**\n * UserDefinedSecretCertificateResult entity class.\n */\n export class UserDefinedSecretCertificateResultClass implements Entities.UserDefinedSecretCertificateResult {\n public CertificateData: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CertificateData = \n odataObject.CertificateData;\n \n }\n }\n entityDictionary['UserDefinedSecretCertificateResultClass'] = UserDefinedSecretCertificateResultClass;\n \n /**\n * TerminalInfo entity class.\n */\n export class TerminalInfoClass implements Entities.TerminalInfo {\n public TerminalId: string;\n public DeviceNumber: string;\n public Name: string;\n public DeviceType: number;\n public ActivationStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceNumber = \n odataObject.DeviceNumber;\n \n this.Name = \n odataObject.Name;\n \n this.DeviceType = \n odataObject.DeviceType;\n \n this.ActivationStatusValue = \n odataObject.ActivationStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TerminalInfoClass'] = TerminalInfoClass;\n \n /**\n * CustomerTimelineItemTypeMap entity class.\n */\n export class CustomerTimelineItemTypeMapClass implements Entities.CustomerTimelineItemTypeMap {\n public EntityType: string;\n public Types: Entities.CustomerTimelineItemType[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EntityType = \n odataObject.EntityType;\n \n this.Types = undefined;\n if (odataObject.Types) {\n this.Types = [];\n for (var i = 0; i < odataObject.Types.length; i++) {\n if (odataObject.Types[i] != null) {\n if (odataObject.Types[i]['@odata.type'] != null) {\n var className: string = odataObject.Types[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Types[i] = new entityDictionary[className](odataObject.Types[i])\n }\n } else {\n this.Types[i] = new CustomerTimelineItemTypeClass(odataObject.Types[i]);\n }\n } else {\n this.Types[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeMapClass'] = CustomerTimelineItemTypeMapClass;\n \n /**\n * CustomerTimelineRefiner entity class.\n */\n export class CustomerTimelineRefinerClass implements Entities.CustomerTimelineRefiner {\n public RefinedResultsCount: number;\n public EntityType: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RefinedResultsCount = \n odataObject.RefinedResultsCount;\n \n this.EntityType = \n odataObject.EntityType;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineRefinerClass'] = CustomerTimelineRefinerClass;\n \n /**\n * CustomerTitle entity class.\n */\n export class CustomerTitleClass implements Entities.CustomerTitle {\n public Text: string;\n public RecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Text = \n odataObject.Text;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTitleClass'] = CustomerTitleClass;\n \n /**\n * ProductWarehouse entity class.\n */\n export class ProductWarehouseClass implements Entities.ProductWarehouse {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseClass'] = ProductWarehouseClass;\n \n /**\n * ProductWarehouseInventoryInformation entity class.\n */\n export class ProductWarehouseInventoryInformationClass implements Entities.ProductWarehouseInventoryInformation {\n public ProductWarehouseInventoryAvailabilities: Entities.ProductWarehouseInventoryAvailability[];\n public AggregatedProductInventoryAvailabilities: Entities.ProductInventoryAvailability[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductWarehouseInventoryAvailabilities = undefined;\n if (odataObject.ProductWarehouseInventoryAvailabilities) {\n this.ProductWarehouseInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.ProductWarehouseInventoryAvailabilities.length; i++) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i] != null) {\n if (odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.ProductWarehouseInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProductWarehouseInventoryAvailabilities[i] = new entityDictionary[className](odataObject.ProductWarehouseInventoryAvailabilities[i])\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = new ProductWarehouseInventoryAvailabilityClass(odataObject.ProductWarehouseInventoryAvailabilities[i]);\n }\n } else {\n this.ProductWarehouseInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.AggregatedProductInventoryAvailabilities = undefined;\n if (odataObject.AggregatedProductInventoryAvailabilities) {\n this.AggregatedProductInventoryAvailabilities = [];\n for (var i = 0; i < odataObject.AggregatedProductInventoryAvailabilities.length; i++) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i] != null) {\n if (odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'] != null) {\n var className: string = odataObject.AggregatedProductInventoryAvailabilities[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AggregatedProductInventoryAvailabilities[i] = new entityDictionary[className](odataObject.AggregatedProductInventoryAvailabilities[i])\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = new ProductInventoryAvailabilityClass(odataObject.AggregatedProductInventoryAvailabilities[i]);\n }\n } else {\n this.AggregatedProductInventoryAvailabilities[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryInformationClass'] = ProductWarehouseInventoryInformationClass;\n \n /**\n * InventoryAvailabilitySearchCriteria entity class.\n */\n export class InventoryAvailabilitySearchCriteriaClass implements Entities.InventoryAvailabilitySearchCriteria {\n public ProductIds: number[];\n public DefaultWarehouseOnly: boolean;\n public SearchArea: Entities.SearchArea;\n public FilterByChannelFulfillmentGroup: boolean;\n public DeliveryModeTypeFilterValue: number;\n public QuantityUnitTypeValue: number;\n public DataLevelValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductIds = undefined;\n if (odataObject.ProductIds) {\n this.ProductIds = [];\n for (var i = 0; i < odataObject.ProductIds.length; i++) {\n if (odataObject.ProductIds[i] != null) {\n this.ProductIds[i] = \n parseInt(odataObject.ProductIds[i], 10);\n } else {\n this.ProductIds[i] = undefined;\n }\n }\n }\n \n this.DefaultWarehouseOnly = \n odataObject.DefaultWarehouseOnly;\n \n if (odataObject.SearchArea == null) {\n this.SearchArea = undefined;\n } else if (odataObject.SearchArea['@odata.type'] == null) {\n this.SearchArea = new SearchAreaClass(odataObject.SearchArea);\n } else {\n var className: string = odataObject.SearchArea['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SearchArea = new entityDictionary[className](odataObject.SearchArea)\n }\n }\n\n \n this.FilterByChannelFulfillmentGroup = \n odataObject.FilterByChannelFulfillmentGroup;\n \n this.DeliveryModeTypeFilterValue = \n odataObject.DeliveryModeTypeFilterValue;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.DataLevelValue = \n odataObject.DataLevelValue;\n \n }\n }\n entityDictionary['InventoryAvailabilitySearchCriteriaClass'] = InventoryAvailabilitySearchCriteriaClass;\n \n /**\n * ExtensibleEnumerationContainer entity class.\n */\n export class ExtensibleEnumerationContainerClass implements Entities.ExtensibleEnumerationContainer {\n public TypeName: string;\n public ExtensibleEnumerations: Entities.ExtensibleEnumeration[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TypeName = \n odataObject.TypeName;\n \n this.ExtensibleEnumerations = undefined;\n if (odataObject.ExtensibleEnumerations) {\n this.ExtensibleEnumerations = [];\n for (var i = 0; i < odataObject.ExtensibleEnumerations.length; i++) {\n if (odataObject.ExtensibleEnumerations[i] != null) {\n if (odataObject.ExtensibleEnumerations[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensibleEnumerations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensibleEnumerations[i] = new entityDictionary[className](odataObject.ExtensibleEnumerations[i])\n }\n } else {\n this.ExtensibleEnumerations[i] = new ExtensibleEnumerationClass(odataObject.ExtensibleEnumerations[i]);\n }\n } else {\n this.ExtensibleEnumerations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ExtensibleEnumerationContainerClass'] = ExtensibleEnumerationContainerClass;\n \n /**\n * PackingSlipData entity class.\n */\n export class PackingSlipDataClass implements Entities.PackingSlipData {\n public PackingSlipId: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PackingSlipId = \n odataObject.PackingSlipId;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PackingSlipDataClass'] = PackingSlipDataClass;\n \n /**\n * EmailReceiptSettings entity class.\n */\n export class EmailReceiptSettingsClass implements Entities.EmailReceiptSettings {\n public ReceiptTypeValue: number;\n public EmailBehaviorValue: number;\n public ReceiptTitle: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReceiptTypeValue = \n odataObject.ReceiptTypeValue;\n \n this.EmailBehaviorValue = \n odataObject.EmailBehaviorValue;\n \n this.ReceiptTitle = \n odataObject.ReceiptTitle;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['EmailReceiptSettingsClass'] = EmailReceiptSettingsClass;\n \n /**\n * OrgUnitAddress entity class.\n */\n export class OrgUnitAddressClass\n extends AddressClass\n implements Entities.OrgUnitAddress {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.OrgUnitAddress\";\n \n }\n }\n entityDictionary['OrgUnitAddressClass'] = OrgUnitAddressClass;\n \n /**\n * WarehouseDetails entity class.\n */\n export class WarehouseDetailsClass\n extends AddressClass\n implements Entities.WarehouseDetails {\n public InventoryLocationId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.InventoryLocationId = \n odataObject.InventoryLocationId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.WarehouseDetails\";\n \n }\n }\n entityDictionary['WarehouseDetailsClass'] = WarehouseDetailsClass;\n \n /**\n * AttributeSwatch entity class.\n */\n export class AttributeSwatchClass implements Entities.AttributeSwatch {\n public SwatchValue: string;\n public SwatchImageUrl: string;\n public SwatchColorHexCode: string;\n public IsDefault: boolean;\n public ProductImageUrls: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SwatchValue = \n odataObject.SwatchValue;\n \n this.SwatchImageUrl = \n odataObject.SwatchImageUrl;\n \n this.SwatchColorHexCode = \n odataObject.SwatchColorHexCode;\n \n this.IsDefault = \n odataObject.IsDefault;\n \n this.ProductImageUrls = undefined;\n if (odataObject.ProductImageUrls) {\n this.ProductImageUrls = [];\n for (var i = 0; i < odataObject.ProductImageUrls.length; i++) {\n if (odataObject.ProductImageUrls[i] != null) {\n this.ProductImageUrls[i] = \n odataObject.ProductImageUrls[i];\n } else {\n this.ProductImageUrls[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttributeSwatchClass'] = AttributeSwatchClass;\n \n /**\n * AttributeBooleanValue entity class.\n */\n export class AttributeBooleanValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeBooleanValue {\n public Value: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeBooleanValue\";\n \n }\n }\n entityDictionary['AttributeBooleanValueClass'] = AttributeBooleanValueClass;\n \n /**\n * AttributeCurrencyValue entity class.\n */\n export class AttributeCurrencyValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeCurrencyValue {\n public CurrencyValue: number;\n public CurrencyCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CurrencyValue = \n (odataObject.CurrencyValue != null) ? parseFloat(odataObject.CurrencyValue) : undefined;\n \n this.CurrencyCode = \n odataObject.CurrencyCode;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeCurrencyValue\";\n \n }\n }\n entityDictionary['AttributeCurrencyValueClass'] = AttributeCurrencyValueClass;\n \n /**\n * AttributeDateTimeOffsetValue entity class.\n */\n export class AttributeDateTimeOffsetValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeDateTimeOffsetValue {\n public Value: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value instanceof Date) ? odataObject.Value\n : (odataObject.Value != null) ? jsonLightReadStringPropertyValue(odataObject.Value, \"Edm.DateTimeOffset\", false) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeDateTimeOffsetValue\";\n \n }\n }\n entityDictionary['AttributeDateTimeOffsetValueClass'] = AttributeDateTimeOffsetValueClass;\n \n /**\n * AttributeFloatValue entity class.\n */\n export class AttributeFloatValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeFloatValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeFloatValue\";\n \n }\n }\n entityDictionary['AttributeFloatValueClass'] = AttributeFloatValueClass;\n \n /**\n * AttributeIntValue entity class.\n */\n export class AttributeIntValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeIntValue {\n public Value: number;\n public UnitSymbol: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.UnitSymbol = \n odataObject.UnitSymbol;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeIntValue\";\n \n }\n }\n entityDictionary['AttributeIntValueClass'] = AttributeIntValueClass;\n \n /**\n * AttributeMediaLocationValue entity class.\n */\n export class AttributeMediaLocationValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeMediaLocationValue {\n public Value: Entities.MediaLocation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = undefined;\n if (odataObject.Value) {\n this.Value = [];\n for (var i = 0; i < odataObject.Value.length; i++) {\n if (odataObject.Value[i] != null) {\n if (odataObject.Value[i]['@odata.type'] != null) {\n var className: string = odataObject.Value[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Value[i] = new entityDictionary[className](odataObject.Value[i])\n }\n } else {\n this.Value[i] = new MediaLocationClass(odataObject.Value[i]);\n }\n } else {\n this.Value[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeMediaLocationValue\";\n \n }\n }\n entityDictionary['AttributeMediaLocationValueClass'] = AttributeMediaLocationValueClass;\n \n /**\n * AttributeTextValue entity class.\n */\n export class AttributeTextValueClass\n extends AttributeValueBaseClass\n implements Entities.AttributeTextValue {\n public TextValue: string;\n public TextValueTranslations: Entities.TextValueTranslation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TextValue = \n odataObject.TextValue;\n \n this.TextValueTranslations = undefined;\n if (odataObject.TextValueTranslations) {\n this.TextValueTranslations = [];\n for (var i = 0; i < odataObject.TextValueTranslations.length; i++) {\n if (odataObject.TextValueTranslations[i] != null) {\n if (odataObject.TextValueTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.TextValueTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TextValueTranslations[i] = new entityDictionary[className](odataObject.TextValueTranslations[i])\n }\n } else {\n this.TextValueTranslations[i] = new TextValueTranslationClass(odataObject.TextValueTranslations[i]);\n }\n } else {\n this.TextValueTranslations[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\n \n }\n }\n entityDictionary['AttributeTextValueClass'] = AttributeTextValueClass;\n \n /**\n * ButtonGridButton entity class.\n */\n export class ButtonGridButtonClass implements Entities.ButtonGridButton {\n public Action: number;\n public ActionProperty: string;\n public BackColorAsARGB: Entities.ARGBColor;\n public BorderColorAsARGB: Entities.ARGBColor;\n public Column: number;\n public ColumnSpan: number;\n public DisplayText: string;\n public FontColorAsARGB: Entities.ARGBColor;\n public ButtonId: number;\n public Row: number;\n public RowSpan: number;\n public UseCustomLookAndFeel: boolean;\n public PictureId: number;\n public PictureAsBase64: string;\n public FontStyle: number;\n public FontSize: number;\n public EnableCustomFontForPOS: boolean;\n public HideButtonText: boolean;\n public Tooltip: string;\n public EnableLiveContent: boolean;\n public NotificationContentAlignment: number;\n public ImageAlignment: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Action = \n odataObject.Action;\n \n this.ActionProperty = \n odataObject.ActionProperty;\n \n if (odataObject.BackColorAsARGB == null) {\n this.BackColorAsARGB = undefined;\n } else if (odataObject.BackColorAsARGB['@odata.type'] == null) {\n this.BackColorAsARGB = new ARGBColorClass(odataObject.BackColorAsARGB);\n } else {\n var className: string = odataObject.BackColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BackColorAsARGB = new entityDictionary[className](odataObject.BackColorAsARGB)\n }\n }\n\n \n if (odataObject.BorderColorAsARGB == null) {\n this.BorderColorAsARGB = undefined;\n } else if (odataObject.BorderColorAsARGB['@odata.type'] == null) {\n this.BorderColorAsARGB = new ARGBColorClass(odataObject.BorderColorAsARGB);\n } else {\n var className: string = odataObject.BorderColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.BorderColorAsARGB = new entityDictionary[className](odataObject.BorderColorAsARGB)\n }\n }\n\n \n this.Column = \n odataObject.Column;\n \n this.ColumnSpan = \n odataObject.ColumnSpan;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n if (odataObject.FontColorAsARGB == null) {\n this.FontColorAsARGB = undefined;\n } else if (odataObject.FontColorAsARGB['@odata.type'] == null) {\n this.FontColorAsARGB = new ARGBColorClass(odataObject.FontColorAsARGB);\n } else {\n var className: string = odataObject.FontColorAsARGB['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.FontColorAsARGB = new entityDictionary[className](odataObject.FontColorAsARGB)\n }\n }\n\n \n this.ButtonId = \n odataObject.ButtonId;\n \n this.Row = \n odataObject.Row;\n \n this.RowSpan = \n odataObject.RowSpan;\n \n this.UseCustomLookAndFeel = \n odataObject.UseCustomLookAndFeel;\n \n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.FontStyle = \n odataObject.FontStyle;\n \n this.FontSize = \n odataObject.FontSize;\n \n this.EnableCustomFontForPOS = \n odataObject.EnableCustomFontForPOS;\n \n this.HideButtonText = \n odataObject.HideButtonText;\n \n this.Tooltip = \n odataObject.Tooltip;\n \n this.EnableLiveContent = \n odataObject.EnableLiveContent;\n \n this.NotificationContentAlignment = \n odataObject.NotificationContentAlignment;\n \n this.ImageAlignment = \n odataObject.ImageAlignment;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridButtonClass'] = ButtonGridButtonClass;\n \n /**\n * ARGBColor entity class.\n */\n export class ARGBColorClass implements Entities.ARGBColor {\n public A: number;\n public R: number;\n public G: number;\n public B: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.A = \n (odataObject.A != null) ? parseInt(odataObject.A, 10) : undefined;\n \n this.R = \n (odataObject.R != null) ? parseInt(odataObject.R, 10) : undefined;\n \n this.G = \n (odataObject.G != null) ? parseInt(odataObject.G, 10) : undefined;\n \n this.B = \n (odataObject.B != null) ? parseInt(odataObject.B, 10) : undefined;\n \n }\n }\n entityDictionary['ARGBColorClass'] = ARGBColorClass;\n \n /**\n * PriceLine entity class.\n */\n export class PriceLineClass implements Entities.PriceLine {\n public RecordId: number;\n public Value: number;\n public PriceMethod: string;\n public OriginId: string;\n public PriceChangedByExtensions: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.PriceMethod = \n odataObject.PriceMethod;\n \n this.OriginId = \n odataObject.OriginId;\n \n this.PriceChangedByExtensions = \n odataObject.PriceChangedByExtensions;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PriceLineClass'] = PriceLineClass;\n \n /**\n * TradeAgreementPriceLine entity class.\n */\n export class TradeAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.TradeAgreementPriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['TradeAgreementPriceLineClass'] = TradeAgreementPriceLineClass;\n \n /**\n * AttributePricingTradeAgreementPriceLine entity class.\n */\n export class AttributePricingTradeAgreementPriceLineClass\n extends TradeAgreementPriceLineClass\n implements Entities.AttributePricingTradeAgreementPriceLine {\n public CanApplyPriceAdjustments: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanApplyPriceAdjustments = \n odataObject.CanApplyPriceAdjustments;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingTradeAgreementPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingTradeAgreementPriceLineClass'] = AttributePricingTradeAgreementPriceLineClass;\n \n /**\n * SalesAgreementPriceLine entity class.\n */\n export class SalesAgreementPriceLineClass\n extends PriceLineClass\n implements Entities.SalesAgreementPriceLine {\n public SalesAgreementName: string;\n public UnitPrice: number;\n public DiscountAmount: number;\n public DiscountPercent: number;\n public SalesAgreementLineTypeValue: number;\n public PriceUnit: number;\n public EffectiveDate: Date;\n public ExpirationDate: Date;\n public CommittedQuantity: number;\n public RemainingQuantity: number;\n public CommittedAmount: number;\n public RemainingAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.SalesAgreementName = \n odataObject.SalesAgreementName;\n \n this.UnitPrice = \n (odataObject.UnitPrice != null) ? parseFloat(odataObject.UnitPrice) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.SalesAgreementLineTypeValue = \n odataObject.SalesAgreementLineTypeValue;\n \n this.PriceUnit = \n (odataObject.PriceUnit != null) ? parseFloat(odataObject.PriceUnit) : undefined;\n \n this.EffectiveDate = \n (odataObject.EffectiveDate instanceof Date) ? odataObject.EffectiveDate\n : (odataObject.EffectiveDate != null) ? jsonLightReadStringPropertyValue(odataObject.EffectiveDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.CommittedQuantity = \n (odataObject.CommittedQuantity != null) ? parseFloat(odataObject.CommittedQuantity) : undefined;\n \n this.RemainingQuantity = \n (odataObject.RemainingQuantity != null) ? parseFloat(odataObject.RemainingQuantity) : undefined;\n \n this.CommittedAmount = \n (odataObject.CommittedAmount != null) ? parseFloat(odataObject.CommittedAmount) : undefined;\n \n this.RemainingAmount = \n (odataObject.RemainingAmount != null) ? parseFloat(odataObject.RemainingAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAgreementPriceLine\";\n \n }\n }\n entityDictionary['SalesAgreementPriceLineClass'] = SalesAgreementPriceLineClass;\n \n /**\n * PriceAdjustmentPriceLine entity class.\n */\n export class PriceAdjustmentPriceLineClass\n extends PriceLineClass\n implements Entities.PriceAdjustmentPriceLine {\n public IsCompoundable: boolean;\n public Concurrency: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.IsCompoundable = \n odataObject.IsCompoundable;\n \n this.Concurrency = \n odataObject.Concurrency;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PriceAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['PriceAdjustmentPriceLineClass'] = PriceAdjustmentPriceLineClass;\n \n /**\n * AttributePricingAdjustmentPriceLine entity class.\n */\n export class AttributePricingAdjustmentPriceLineClass\n extends PriceAdjustmentPriceLineClass\n implements Entities.AttributePricingAdjustmentPriceLine {\n public CanCompoundOnAdjustedPrice: boolean;\n public PricingPriorityNumber: number;\n public AdjustedAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.CanCompoundOnAdjustedPrice = \n odataObject.CanCompoundOnAdjustedPrice;\n \n this.PricingPriorityNumber = \n odataObject.PricingPriorityNumber;\n \n this.AdjustedAmount = \n (odataObject.AdjustedAmount != null) ? parseFloat(odataObject.AdjustedAmount) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributePricingAdjustmentPriceLine\";\n \n }\n }\n entityDictionary['AttributePricingAdjustmentPriceLineClass'] = AttributePricingAdjustmentPriceLineClass;\n \n /**\n * BasePriceLine entity class.\n */\n export class BasePriceLineClass\n extends PriceLineClass\n implements Entities.BasePriceLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.BasePriceLine\";\n \n }\n }\n entityDictionary['BasePriceLineClass'] = BasePriceLineClass;\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity class.\n */\n export class ExtensiblePeriodicDiscountOfferTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensiblePeriodicDiscountOfferType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensiblePeriodicDiscountOfferType\";\n \n }\n }\n entityDictionary['ExtensiblePeriodicDiscountOfferTypeClass'] = ExtensiblePeriodicDiscountOfferTypeClass;\n \n /**\n * ChargeLineOverride entity class.\n */\n export class ChargeLineOverrideClass implements Entities.ChargeLineOverride {\n public OriginalAmount: number;\n public OverrideAmount: number;\n public OverrideReasonDescription: string;\n public OverrideDateTime: Date;\n public UserId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalAmount = \n (odataObject.OriginalAmount != null) ? parseFloat(odataObject.OriginalAmount) : undefined;\n \n this.OverrideAmount = \n (odataObject.OverrideAmount != null) ? parseFloat(odataObject.OverrideAmount) : undefined;\n \n this.OverrideReasonDescription = \n odataObject.OverrideReasonDescription;\n \n this.OverrideDateTime = \n (odataObject.OverrideDateTime instanceof Date) ? odataObject.OverrideDateTime\n : (odataObject.OverrideDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.OverrideDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.UserId = \n odataObject.UserId;\n \n }\n }\n entityDictionary['ChargeLineOverrideClass'] = ChargeLineOverrideClass;\n \n /**\n * TaxLineGTE entity class.\n */\n export class TaxLineGTEClass\n extends TaxLineClass\n implements Entities.TaxLineGTE {\n public TaxComponent: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaxComponent = \n odataObject.TaxComponent;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaxLineGTE\";\n \n }\n }\n entityDictionary['TaxLineGTEClass'] = TaxLineGTEClass;\n \n /**\n * TaxMeasure entity class.\n */\n export class TaxMeasureClass implements Entities.TaxMeasure {\n public Path: string;\n public Value: number;\n public DataAreaId: string;\n public SaleLineNumber: number;\n public StoreId: string;\n public TerminalId: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Path = \n odataObject.Path;\n \n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxMeasureClass'] = TaxMeasureClass;\n \n /**\n * DetailedLineStatus entity class.\n */\n export class DetailedLineStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedLineStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedLineStatus\";\n \n }\n }\n entityDictionary['DetailedLineStatusClass'] = DetailedLineStatusClass;\n \n /**\n * CardTokenInfo entity class.\n */\n export class CardTokenInfoClass implements Entities.CardTokenInfo {\n public CardToken: string;\n public UniqueCardId: string;\n public ServiceAccountId: string;\n public MaskedCardNumber: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CardToken = \n odataObject.CardToken;\n \n this.UniqueCardId = \n odataObject.UniqueCardId;\n \n this.ServiceAccountId = \n odataObject.ServiceAccountId;\n \n this.MaskedCardNumber = \n odataObject.MaskedCardNumber;\n \n }\n }\n entityDictionary['CardTokenInfoClass'] = CardTokenInfoClass;\n \n /**\n * DataverseTenderLine entity class.\n */\n export class DataverseTenderLineClass\n extends TenderLineClass\n implements Entities.DataverseTenderLine {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DataverseTenderLine\";\n \n }\n }\n entityDictionary['DataverseTenderLineClass'] = DataverseTenderLineClass;\n \n /**\n * PaymentError entity class.\n */\n export class PaymentErrorClass implements Entities.PaymentError {\n public Code: string;\n public Message: string;\n public IsLocalized: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Code = \n odataObject.Code;\n \n this.Message = \n odataObject.Message;\n \n this.IsLocalized = \n odataObject.IsLocalized;\n \n }\n }\n entityDictionary['PaymentErrorClass'] = PaymentErrorClass;\n \n /**\n * ProductAttributeMetadataFlags entity class.\n */\n export class ProductAttributeMetadataFlagsClass implements Entities.ProductAttributeMetadataFlags {\n public IsSearchable: boolean;\n public IsRetrievable: boolean;\n public IsQueryable: boolean;\n public IsRefinable: boolean;\n public IsSortable: boolean;\n public IsMultiValue: boolean;\n public IsTokenNormalization: boolean;\n public IsCompleteMatch: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.IsSearchable = \n odataObject.IsSearchable;\n \n this.IsRetrievable = \n odataObject.IsRetrievable;\n \n this.IsQueryable = \n odataObject.IsQueryable;\n \n this.IsRefinable = \n odataObject.IsRefinable;\n \n this.IsSortable = \n odataObject.IsSortable;\n \n this.IsMultiValue = \n odataObject.IsMultiValue;\n \n this.IsTokenNormalization = \n odataObject.IsTokenNormalization;\n \n this.IsCompleteMatch = \n odataObject.IsCompleteMatch;\n \n }\n }\n entityDictionary['ProductAttributeMetadataFlagsClass'] = ProductAttributeMetadataFlagsClass;\n \n /**\n * UnitOfMeasureConversion entity class.\n */\n export class UnitOfMeasureConversionClass implements Entities.UnitOfMeasureConversion {\n public ItemId: string;\n public FromUnitOfMeasureId: string;\n public ToUnitOfMeasureId: string;\n public FromUnitOfMeasureSymbol: string;\n public ToUnitOfMeasureSymbol: string;\n public IsBackward: boolean;\n public RecordId: number;\n public ProductRecordId: number;\n public Factor: number;\n public Numerator: number;\n public Denominator: number;\n public InnerOffset: number;\n public OuterOffset: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.FromUnitOfMeasureId = \n odataObject.FromUnitOfMeasureId;\n \n this.ToUnitOfMeasureId = \n odataObject.ToUnitOfMeasureId;\n \n this.FromUnitOfMeasureSymbol = \n odataObject.FromUnitOfMeasureSymbol;\n \n this.ToUnitOfMeasureSymbol = \n odataObject.ToUnitOfMeasureSymbol;\n \n this.IsBackward = \n odataObject.IsBackward;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.Factor = \n (odataObject.Factor != null) ? parseFloat(odataObject.Factor) : undefined;\n \n this.Numerator = \n odataObject.Numerator;\n \n this.Denominator = \n odataObject.Denominator;\n \n this.InnerOffset = \n (odataObject.InnerOffset != null) ? parseFloat(odataObject.InnerOffset) : undefined;\n \n this.OuterOffset = \n (odataObject.OuterOffset != null) ? parseFloat(odataObject.OuterOffset) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['UnitOfMeasureConversionClass'] = UnitOfMeasureConversionClass;\n \n /**\n * ReturnLabelContent entity class.\n */\n export class ReturnLabelContentClass implements Entities.ReturnLabelContent {\n public ReturnLocationText: string;\n public ReturnWarehouseText: string;\n public ReturnReasonText: string;\n public ReturnPalleteText: string;\n public ItemId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReturnLocationText = \n odataObject.ReturnLocationText;\n \n this.ReturnWarehouseText = \n odataObject.ReturnWarehouseText;\n \n this.ReturnReasonText = \n odataObject.ReturnReasonText;\n \n this.ReturnPalleteText = \n odataObject.ReturnPalleteText;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReturnLabelContentClass'] = ReturnLabelContentClass;\n \n /**\n * LoyaltyRewardPointLine entity class.\n */\n export class LoyaltyRewardPointLineClass implements Entities.LoyaltyRewardPointLine {\n public TransactionId: string;\n public SaleLineNumber: number;\n public LoyaltyGroupRecordId: number;\n public LoyaltyCardNumber: string;\n public CustomerAccount: string;\n public EntryDate: Date;\n public EntryTime: number;\n public EntryTypeValue: number;\n public ExpirationDate: Date;\n public LineNumber: number;\n public LoyaltyTierRecordId: number;\n public RewardPointRecordId: number;\n public RewardPointAmountQuantity: number;\n public RewardPointId: string;\n public RewardPointIsRedeemable: boolean;\n public RewardPointType: string;\n public RewardPointCurrency: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.SaleLineNumber = \n (odataObject.SaleLineNumber != null) ? parseFloat(odataObject.SaleLineNumber) : undefined;\n \n this.LoyaltyGroupRecordId = \n (odataObject.LoyaltyGroupRecordId != null) ? parseInt(odataObject.LoyaltyGroupRecordId, 10) : undefined;\n \n this.LoyaltyCardNumber = \n odataObject.LoyaltyCardNumber;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.EntryDate = \n (odataObject.EntryDate instanceof Date) ? odataObject.EntryDate\n : (odataObject.EntryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EntryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EntryTime = \n odataObject.EntryTime;\n \n this.EntryTypeValue = \n odataObject.EntryTypeValue;\n \n this.ExpirationDate = \n (odataObject.ExpirationDate instanceof Date) ? odataObject.ExpirationDate\n : (odataObject.ExpirationDate != null) ? jsonLightReadStringPropertyValue(odataObject.ExpirationDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.LoyaltyTierRecordId = \n (odataObject.LoyaltyTierRecordId != null) ? parseInt(odataObject.LoyaltyTierRecordId, 10) : undefined;\n \n this.RewardPointRecordId = \n (odataObject.RewardPointRecordId != null) ? parseInt(odataObject.RewardPointRecordId, 10) : undefined;\n \n this.RewardPointAmountQuantity = \n (odataObject.RewardPointAmountQuantity != null) ? parseFloat(odataObject.RewardPointAmountQuantity) : undefined;\n \n this.RewardPointId = \n odataObject.RewardPointId;\n \n this.RewardPointIsRedeemable = \n odataObject.RewardPointIsRedeemable;\n \n this.RewardPointType = \n odataObject.RewardPointType;\n \n this.RewardPointCurrency = \n odataObject.RewardPointCurrency;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LoyaltyRewardPointLineClass'] = LoyaltyRewardPointLineClass;\n \n /**\n * TrackingInfo entity class.\n */\n export class TrackingInfoClass implements Entities.TrackingInfo {\n public TrackingNumber: string;\n public ServiceType: string;\n public PackageWeight: Entities.Weight;\n public ShippedOnDate: Date;\n public Status: string;\n public DeliveredOnDate: Date;\n public EstimatedDeliveryDate: Date;\n public TrackingUrl: string;\n public PackagingType: string;\n public DestinationAddress: Entities.Address;\n public OriginAddress: Entities.Address;\n public ShipmentProgress: Entities.ShipmentProgress[];\n public ShippingCharge: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TrackingNumber = \n odataObject.TrackingNumber;\n \n this.ServiceType = \n odataObject.ServiceType;\n \n if (odataObject.PackageWeight == null) {\n this.PackageWeight = undefined;\n } else if (odataObject.PackageWeight['@odata.type'] == null) {\n this.PackageWeight = new WeightClass(odataObject.PackageWeight);\n } else {\n var className: string = odataObject.PackageWeight['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PackageWeight = new entityDictionary[className](odataObject.PackageWeight)\n }\n }\n\n \n this.ShippedOnDate = \n (odataObject.ShippedOnDate instanceof Date) ? odataObject.ShippedOnDate\n : (odataObject.ShippedOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.ShippedOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Status = \n odataObject.Status;\n \n this.DeliveredOnDate = \n (odataObject.DeliveredOnDate instanceof Date) ? odataObject.DeliveredOnDate\n : (odataObject.DeliveredOnDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveredOnDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.EstimatedDeliveryDate = \n (odataObject.EstimatedDeliveryDate instanceof Date) ? odataObject.EstimatedDeliveryDate\n : (odataObject.EstimatedDeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.EstimatedDeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TrackingUrl = \n odataObject.TrackingUrl;\n \n this.PackagingType = \n odataObject.PackagingType;\n \n if (odataObject.DestinationAddress == null) {\n this.DestinationAddress = undefined;\n } else if (odataObject.DestinationAddress['@odata.type'] == null) {\n this.DestinationAddress = new AddressClass(odataObject.DestinationAddress);\n } else {\n var className: string = odataObject.DestinationAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DestinationAddress = new entityDictionary[className](odataObject.DestinationAddress)\n }\n }\n\n \n if (odataObject.OriginAddress == null) {\n this.OriginAddress = undefined;\n } else if (odataObject.OriginAddress['@odata.type'] == null) {\n this.OriginAddress = new AddressClass(odataObject.OriginAddress);\n } else {\n var className: string = odataObject.OriginAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.OriginAddress = new entityDictionary[className](odataObject.OriginAddress)\n }\n }\n\n \n this.ShipmentProgress = undefined;\n if (odataObject.ShipmentProgress) {\n this.ShipmentProgress = [];\n for (var i = 0; i < odataObject.ShipmentProgress.length; i++) {\n if (odataObject.ShipmentProgress[i] != null) {\n if (odataObject.ShipmentProgress[i]['@odata.type'] != null) {\n var className: string = odataObject.ShipmentProgress[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ShipmentProgress[i] = new entityDictionary[className](odataObject.ShipmentProgress[i])\n }\n } else {\n this.ShipmentProgress[i] = new ShipmentProgressClass(odataObject.ShipmentProgress[i]);\n }\n } else {\n this.ShipmentProgress[i] = undefined;\n }\n }\n }\n \n this.ShippingCharge = \n (odataObject.ShippingCharge != null) ? parseFloat(odataObject.ShippingCharge) : undefined;\n \n }\n }\n entityDictionary['TrackingInfoClass'] = TrackingInfoClass;\n \n /**\n * Weight entity class.\n */\n export class WeightClass implements Entities.Weight {\n public Value: number;\n public Unit: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n (odataObject.Value != null) ? parseFloat(odataObject.Value) : undefined;\n \n this.Unit = \n odataObject.Unit;\n \n }\n }\n entityDictionary['WeightClass'] = WeightClass;\n \n /**\n * ShipmentProgress entity class.\n */\n export class ShipmentProgressClass implements Entities.ShipmentProgress {\n public Location: Entities.Address;\n public DateTime: Date;\n public Activity: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.Location == null) {\n this.Location = undefined;\n } else if (odataObject.Location['@odata.type'] == null) {\n this.Location = new AddressClass(odataObject.Location);\n } else {\n var className: string = odataObject.Location['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Location = new entityDictionary[className](odataObject.Location)\n }\n }\n\n \n this.DateTime = \n (odataObject.DateTime instanceof Date) ? odataObject.DateTime\n : (odataObject.DateTime != null) ? jsonLightReadStringPropertyValue(odataObject.DateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Activity = \n odataObject.Activity;\n \n }\n }\n entityDictionary['ShipmentProgressClass'] = ShipmentProgressClass;\n \n /**\n * ShiftKey entity class.\n */\n export class ShiftKeyClass implements Entities.ShiftKey {\n public ShiftTerminalId: string;\n public ShiftId: number;\n public Store: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ShiftTerminalId = \n odataObject.ShiftTerminalId;\n \n this.ShiftId = \n (odataObject.ShiftId != null) ? parseInt(odataObject.ShiftId, 10) : undefined;\n \n this.Store = \n odataObject.Store;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftKeyClass'] = ShiftKeyClass;\n \n /**\n * LocalizedText entity class.\n */\n export class LocalizedTextClass implements Entities.LocalizedText {\n public RecordId: number;\n public LanguageId: string;\n public TextId: string;\n public Text: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.TextId = \n odataObject.TextId;\n \n this.Text = \n odataObject.Text;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LocalizedTextClass'] = LocalizedTextClass;\n \n /**\n * AddressFormattingInfo entity class.\n */\n export class AddressFormattingInfoClass implements Entities.AddressFormattingInfo {\n public AddressComponentNameValue: number;\n public LineNumber: number;\n public IsDataEntryOnly: boolean;\n public NewLine: boolean;\n public Expand: boolean;\n public Inactive: boolean;\n public Special: boolean;\n public NumberOfSpaces: number;\n public Separator: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressComponentNameValue = \n odataObject.AddressComponentNameValue;\n \n this.LineNumber = \n odataObject.LineNumber;\n \n this.IsDataEntryOnly = \n odataObject.IsDataEntryOnly;\n \n this.NewLine = \n odataObject.NewLine;\n \n this.Expand = \n odataObject.Expand;\n \n this.Inactive = \n odataObject.Inactive;\n \n this.Special = \n odataObject.Special;\n \n this.NumberOfSpaces = \n odataObject.NumberOfSpaces;\n \n this.Separator = \n odataObject.Separator;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AddressFormattingInfoClass'] = AddressFormattingInfoClass;\n \n /**\n * HardwareConfigurations entity class.\n */\n export class HardwareConfigurationsClass implements Entities.HardwareConfigurations {\n public CashDrawerConfigurations: Entities.HardwareConfiguration[];\n public PrinterConfigurations: Entities.HardwareConfiguration[];\n public PinPadConfiguration: Entities.HardwareConfiguration;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CashDrawerConfigurations = undefined;\n if (odataObject.CashDrawerConfigurations) {\n this.CashDrawerConfigurations = [];\n for (var i = 0; i < odataObject.CashDrawerConfigurations.length; i++) {\n if (odataObject.CashDrawerConfigurations[i] != null) {\n if (odataObject.CashDrawerConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.CashDrawerConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.CashDrawerConfigurations[i] = new entityDictionary[className](odataObject.CashDrawerConfigurations[i])\n }\n } else {\n this.CashDrawerConfigurations[i] = new HardwareConfigurationClass(odataObject.CashDrawerConfigurations[i]);\n }\n } else {\n this.CashDrawerConfigurations[i] = undefined;\n }\n }\n }\n \n this.PrinterConfigurations = undefined;\n if (odataObject.PrinterConfigurations) {\n this.PrinterConfigurations = [];\n for (var i = 0; i < odataObject.PrinterConfigurations.length; i++) {\n if (odataObject.PrinterConfigurations[i] != null) {\n if (odataObject.PrinterConfigurations[i]['@odata.type'] != null) {\n var className: string = odataObject.PrinterConfigurations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PrinterConfigurations[i] = new entityDictionary[className](odataObject.PrinterConfigurations[i])\n }\n } else {\n this.PrinterConfigurations[i] = new HardwareConfigurationClass(odataObject.PrinterConfigurations[i]);\n }\n } else {\n this.PrinterConfigurations[i] = undefined;\n }\n }\n }\n \n if (odataObject.PinPadConfiguration == null) {\n this.PinPadConfiguration = undefined;\n } else if (odataObject.PinPadConfiguration['@odata.type'] == null) {\n this.PinPadConfiguration = new HardwareConfigurationClass(odataObject.PinPadConfiguration);\n } else {\n var className: string = odataObject.PinPadConfiguration['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PinPadConfiguration = new entityDictionary[className](odataObject.PinPadConfiguration)\n }\n }\n\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationsClass'] = HardwareConfigurationsClass;\n \n /**\n * HardwareConfiguration entity class.\n */\n export class HardwareConfigurationClass implements Entities.HardwareConfiguration {\n public RecordId: number;\n public HardwareStationRecordId: number;\n public TerminalId: string;\n public DeviceName: string;\n public IPAddress: string;\n public Port: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.HardwareStationRecordId = \n (odataObject.HardwareStationRecordId != null) ? parseInt(odataObject.HardwareStationRecordId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.DeviceName = \n odataObject.DeviceName;\n \n this.IPAddress = \n odataObject.IPAddress;\n \n this.Port = \n odataObject.Port;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['HardwareConfigurationClass'] = HardwareConfigurationClass;\n \n /**\n * Printer entity class.\n */\n export class PrinterClass implements Entities.Printer {\n public Name: string;\n public PrinterType: number;\n public Terminal: number;\n public PrintBehaviorValue: number;\n public ReceiptLayoutId: string;\n public HardwareProfileId: string;\n public ReceiptType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.PrinterType = \n odataObject.PrinterType;\n \n this.Terminal = \n (odataObject.Terminal != null) ? parseInt(odataObject.Terminal, 10) : undefined;\n \n this.PrintBehaviorValue = \n odataObject.PrintBehaviorValue;\n \n this.ReceiptLayoutId = \n odataObject.ReceiptLayoutId;\n \n this.HardwareProfileId = \n odataObject.HardwareProfileId;\n \n this.ReceiptType = \n odataObject.ReceiptType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['PrinterClass'] = PrinterClass;\n \n /**\n * CustomerRefinerValue entity class.\n */\n export class CustomerRefinerValueClass\n extends SearchRefinerValueClass\n implements Entities.CustomerRefinerValue {\n public RefinerSourceValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RefinerSourceValue = \n odataObject.RefinerSourceValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerRefinerValue\";\n \n }\n }\n entityDictionary['CustomerRefinerValueClass'] = CustomerRefinerValueClass;\n \n /**\n * TransferOrderJournalLine entity class.\n */\n export class TransferOrderJournalLineClass implements Entities.TransferOrderJournalLine {\n public ItemId: string;\n public ItemName: string;\n public InventDimId: string;\n public TotalQuantityShipped: number;\n public QuantityShipped: number;\n public TransferQuantity: number;\n public UnitId: string;\n public ConfigId: string;\n public InventSizeId: string;\n public InventColorId: string;\n public InventStyleId: string;\n public DeliveryMethod: string;\n public Barcode: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ItemName = \n odataObject.ItemName;\n \n this.InventDimId = \n odataObject.InventDimId;\n \n this.TotalQuantityShipped = \n (odataObject.TotalQuantityShipped != null) ? parseFloat(odataObject.TotalQuantityShipped) : undefined;\n \n this.QuantityShipped = \n (odataObject.QuantityShipped != null) ? parseFloat(odataObject.QuantityShipped) : undefined;\n \n this.TransferQuantity = \n (odataObject.TransferQuantity != null) ? parseFloat(odataObject.TransferQuantity) : undefined;\n \n this.UnitId = \n odataObject.UnitId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.InventSizeId = \n odataObject.InventSizeId;\n \n this.InventColorId = \n odataObject.InventColorId;\n \n this.InventStyleId = \n odataObject.InventStyleId;\n \n this.DeliveryMethod = \n odataObject.DeliveryMethod;\n \n this.Barcode = \n odataObject.Barcode;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TransferOrderJournalLineClass'] = TransferOrderJournalLineClass;\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity class.\n */\n export class InventoryDocumentSourceSerialNumberLineClass implements Entities.InventoryDocumentSourceSerialNumberLine {\n public SourceDocumentTypeValue: number;\n public SourceDocumentId: string;\n public DocumentLineRecordId: number;\n public InventTransRecordId: number;\n public LineId: string;\n public Quantity: number;\n public SerialNumber: string;\n public StatusValue: number;\n public ProductId: number;\n public DataAreaId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SourceDocumentTypeValue = \n odataObject.SourceDocumentTypeValue;\n \n this.SourceDocumentId = \n odataObject.SourceDocumentId;\n \n this.DocumentLineRecordId = \n (odataObject.DocumentLineRecordId != null) ? parseInt(odataObject.DocumentLineRecordId, 10) : undefined;\n \n this.InventTransRecordId = \n (odataObject.InventTransRecordId != null) ? parseInt(odataObject.InventTransRecordId, 10) : undefined;\n \n this.LineId = \n odataObject.LineId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.SerialNumber = \n odataObject.SerialNumber;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['InventoryDocumentSourceSerialNumberLineClass'] = InventoryDocumentSourceSerialNumberLineClass;\n \n /**\n * KitTransactionLine entity class.\n */\n export class KitTransactionLineClass implements Entities.KitTransactionLine {\n public ItemId: string;\n public Quantity: number;\n public InventoryDimensionId: string;\n public ProductId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.InventoryDimensionId = \n odataObject.InventoryDimensionId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitTransactionLineClass'] = KitTransactionLineClass;\n \n /**\n * StoreAddressBook entity class.\n */\n export class StoreAddressBookClass implements Entities.StoreAddressBook {\n public AddressBookId: number;\n public StoreId: number;\n public AddressBookTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressBookId = \n (odataObject.AddressBookId != null) ? parseInt(odataObject.AddressBookId, 10) : undefined;\n \n this.StoreId = \n (odataObject.StoreId != null) ? parseInt(odataObject.StoreId, 10) : undefined;\n \n this.AddressBookTypeValue = \n odataObject.AddressBookTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['StoreAddressBookClass'] = StoreAddressBookClass;\n \n /**\n * TenderDetail entity class.\n */\n export class TenderDetailClass implements Entities.TenderDetail {\n public LineNumber: number;\n public Amount: number;\n public AmountInForeignCurrency: number;\n public ForeignCurrencyExchangeRate: number;\n public ForeignCurrency: string;\n public BankBagNumber: string;\n public TenderTypeId: string;\n public TenderRecount: number;\n public DenominationDetails: Entities.DenominationDetail[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.AmountInForeignCurrency = \n (odataObject.AmountInForeignCurrency != null) ? parseFloat(odataObject.AmountInForeignCurrency) : undefined;\n \n this.ForeignCurrencyExchangeRate = \n (odataObject.ForeignCurrencyExchangeRate != null) ? parseFloat(odataObject.ForeignCurrencyExchangeRate) : undefined;\n \n this.ForeignCurrency = \n odataObject.ForeignCurrency;\n \n this.BankBagNumber = \n odataObject.BankBagNumber;\n \n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this.TenderRecount = \n odataObject.TenderRecount;\n \n this.DenominationDetails = undefined;\n if (odataObject.DenominationDetails) {\n this.DenominationDetails = [];\n for (var i = 0; i < odataObject.DenominationDetails.length; i++) {\n if (odataObject.DenominationDetails[i] != null) {\n if (odataObject.DenominationDetails[i]['@odata.type'] != null) {\n var className: string = odataObject.DenominationDetails[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DenominationDetails[i] = new entityDictionary[className](odataObject.DenominationDetails[i])\n }\n } else {\n this.DenominationDetails[i] = new DenominationDetailClass(odataObject.DenominationDetails[i]);\n }\n } else {\n this.DenominationDetails[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderDetailClass'] = TenderDetailClass;\n \n /**\n * DenominationDetail entity class.\n */\n export class DenominationDetailClass implements Entities.DenominationDetail {\n public Type: number;\n public Currency: string;\n public DenominationAmount: number;\n public QuantityDeclared: number;\n public AmountDeclared: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Type = \n odataObject.Type;\n \n this.Currency = \n odataObject.Currency;\n \n this.DenominationAmount = \n (odataObject.DenominationAmount != null) ? parseFloat(odataObject.DenominationAmount) : undefined;\n \n this.QuantityDeclared = \n odataObject.QuantityDeclared;\n \n this.AmountDeclared = \n (odataObject.AmountDeclared != null) ? parseFloat(odataObject.AmountDeclared) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DenominationDetailClass'] = DenominationDetailClass;\n \n /**\n * ButtonGridZone entity class.\n */\n export class ButtonGridZoneClass implements Entities.ButtonGridZone {\n public ButtonGridId: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ButtonGridId = \n odataObject.ButtonGridId;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ButtonGridZoneClass'] = ButtonGridZoneClass;\n \n /**\n * ImageZone entity class.\n */\n export class ImageZoneClass implements Entities.ImageZone {\n public PictureId: number;\n public PictureAsBase64: string;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PictureId = \n odataObject.PictureId;\n \n this.PictureAsBase64 = \n odataObject.PictureAsBase64;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ImageZoneClass'] = ImageZoneClass;\n \n /**\n * ReportZone entity class.\n */\n export class ReportZoneClass implements Entities.ReportZone {\n public ReportRecordId: number;\n public ZoneId: string;\n public ZoneName: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ReportRecordId = \n (odataObject.ReportRecordId != null) ? parseInt(odataObject.ReportRecordId, 10) : undefined;\n \n this.ZoneId = \n odataObject.ZoneId;\n \n this.ZoneName = \n odataObject.ZoneName;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportZoneClass'] = ReportZoneClass;\n \n /**\n * SalesInvoiceLine entity class.\n */\n export class SalesInvoiceLineClass implements Entities.SalesInvoiceLine {\n public RecordId: number;\n public ItemId: string;\n public ProductId: number;\n public ProductName: string;\n public InventDimensionId: string;\n public InventTransactionId: string;\n public Quantity: number;\n public Price: number;\n public DiscountPercent: number;\n public DiscountAmount: number;\n public BatchId: string;\n public NetAmount: number;\n public Site: string;\n public Warehouse: string;\n public SerialId: string;\n public ColorId: string;\n public SizeId: string;\n public StyleId: string;\n public ConfigId: string;\n public ColorName: string;\n public SizeName: string;\n public StyleName: string;\n public ConfigName: string;\n public SalesTaxGroup: string;\n public ItemTaxGroup: string;\n public SalesMarkup: number;\n public TotalDiscount: number;\n public TotalPercentageDiscount: number;\n public LineDiscount: number;\n public PeriodicDiscount: number;\n public PeriodicPercentageDiscount: number;\n public LineManualDiscountPercentage: number;\n public LineManualDiscountAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.ProductName = \n odataObject.ProductName;\n \n this.InventDimensionId = \n odataObject.InventDimensionId;\n \n this.InventTransactionId = \n odataObject.InventTransactionId;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.Price = \n (odataObject.Price != null) ? parseFloat(odataObject.Price) : undefined;\n \n this.DiscountPercent = \n (odataObject.DiscountPercent != null) ? parseFloat(odataObject.DiscountPercent) : undefined;\n \n this.DiscountAmount = \n (odataObject.DiscountAmount != null) ? parseFloat(odataObject.DiscountAmount) : undefined;\n \n this.BatchId = \n odataObject.BatchId;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.Site = \n odataObject.Site;\n \n this.Warehouse = \n odataObject.Warehouse;\n \n this.SerialId = \n odataObject.SerialId;\n \n this.ColorId = \n odataObject.ColorId;\n \n this.SizeId = \n odataObject.SizeId;\n \n this.StyleId = \n odataObject.StyleId;\n \n this.ConfigId = \n odataObject.ConfigId;\n \n this.ColorName = \n odataObject.ColorName;\n \n this.SizeName = \n odataObject.SizeName;\n \n this.StyleName = \n odataObject.StyleName;\n \n this.ConfigName = \n odataObject.ConfigName;\n \n this.SalesTaxGroup = \n odataObject.SalesTaxGroup;\n \n this.ItemTaxGroup = \n odataObject.ItemTaxGroup;\n \n this.SalesMarkup = \n (odataObject.SalesMarkup != null) ? parseFloat(odataObject.SalesMarkup) : undefined;\n \n this.TotalDiscount = \n (odataObject.TotalDiscount != null) ? parseFloat(odataObject.TotalDiscount) : undefined;\n \n this.TotalPercentageDiscount = \n (odataObject.TotalPercentageDiscount != null) ? parseFloat(odataObject.TotalPercentageDiscount) : undefined;\n \n this.LineDiscount = \n (odataObject.LineDiscount != null) ? parseFloat(odataObject.LineDiscount) : undefined;\n \n this.PeriodicDiscount = \n (odataObject.PeriodicDiscount != null) ? parseFloat(odataObject.PeriodicDiscount) : undefined;\n \n this.PeriodicPercentageDiscount = \n (odataObject.PeriodicPercentageDiscount != null) ? parseFloat(odataObject.PeriodicPercentageDiscount) : undefined;\n \n this.LineManualDiscountPercentage = \n (odataObject.LineManualDiscountPercentage != null) ? parseFloat(odataObject.LineManualDiscountPercentage) : undefined;\n \n this.LineManualDiscountAmount = \n (odataObject.LineManualDiscountAmount != null) ? parseFloat(odataObject.LineManualDiscountAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['SalesInvoiceLineClass'] = SalesInvoiceLineClass;\n \n /**\n * ReportRow entity class.\n */\n export class ReportRowClass implements Entities.ReportRow {\n public RowData: Entities.CommerceProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RowData = undefined;\n if (odataObject.RowData) {\n this.RowData = [];\n for (var i = 0; i < odataObject.RowData.length; i++) {\n if (odataObject.RowData[i] != null) {\n if (odataObject.RowData[i]['@odata.type'] != null) {\n var className: string = odataObject.RowData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RowData[i] = new entityDictionary[className](odataObject.RowData[i])\n }\n } else {\n this.RowData[i] = new CommercePropertyClass(odataObject.RowData[i]);\n }\n } else {\n this.RowData[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ReportRowClass'] = ReportRowClass;\n \n /**\n * FormAnnotation entity class.\n */\n export class FormAnnotationClass\n extends AnnotationClass\n implements Entities.FormAnnotation {\n public MenuItemLabel: string;\n public MenuItemName: string;\n public MenuItemType: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemLabel = \n odataObject.MenuItemLabel;\n \n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.FormAnnotation\";\n \n }\n }\n entityDictionary['FormAnnotationClass'] = FormAnnotationClass;\n \n /**\n * TaskGuideAnnotation entity class.\n */\n export class TaskGuideAnnotationClass\n extends AnnotationClass\n implements Entities.TaskGuideAnnotation {\n public RecordingValueType: string;\n public Title: string;\n public ExampleText: string;\n public Hidden: boolean;\n public GlobalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RecordingValueType = \n odataObject.RecordingValueType;\n \n this.Title = \n odataObject.Title;\n \n this.ExampleText = \n odataObject.ExampleText;\n \n this.Hidden = \n odataObject.Hidden;\n \n this.GlobalId = \n odataObject.GlobalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.TaskGuideAnnotation\";\n \n }\n }\n entityDictionary['TaskGuideAnnotationClass'] = TaskGuideAnnotationClass;\n \n /**\n * CommandArgument entity class.\n */\n export class CommandArgumentClass implements Entities.CommandArgument {\n public Value: string;\n public IsReference: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.IsReference = \n odataObject.IsReference;\n \n }\n }\n entityDictionary['CommandArgumentClass'] = CommandArgumentClass;\n \n /**\n * PropertyUserAction entity class.\n */\n export class PropertyUserActionClass\n extends FormUserActionClass\n implements Entities.PropertyUserAction {\n public Value: string;\n public ValueLabel: string;\n public PropertyName: string;\n public ControlName: string;\n public ControlType: string;\n public UserActionType: string;\n public IsReference: boolean;\n public LabelId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Value = \n odataObject.Value;\n \n this.ValueLabel = \n odataObject.ValueLabel;\n \n this.PropertyName = \n odataObject.PropertyName;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.ControlType = \n odataObject.ControlType;\n \n this.UserActionType = \n odataObject.UserActionType;\n \n this.IsReference = \n odataObject.IsReference;\n \n this.LabelId = \n odataObject.LabelId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.PropertyUserAction\";\n \n }\n }\n entityDictionary['PropertyUserActionClass'] = PropertyUserActionClass;\n \n /**\n * InfoUserAction entity class.\n */\n export class InfoUserActionClass\n extends UserActionClass\n implements Entities.InfoUserAction {\n public FormId: string;\n public ControlLabel: string;\n public ControlLabelId: string;\n public ControlName: string;\n public Text: string;\n public Notes: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.FormId = \n odataObject.FormId;\n \n this.ControlLabel = \n odataObject.ControlLabel;\n \n this.ControlLabelId = \n odataObject.ControlLabelId;\n \n this.ControlName = \n odataObject.ControlName;\n \n this.Text = \n odataObject.Text;\n \n this.Notes = \n odataObject.Notes;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.InfoUserAction\";\n \n }\n }\n entityDictionary['InfoUserActionClass'] = InfoUserActionClass;\n \n /**\n * MenuItemUserAction entity class.\n */\n export class MenuItemUserActionClass\n extends UserActionClass\n implements Entities.MenuItemUserAction {\n public MenuItemName: string;\n public MenuItemType: string;\n public NavigationPath: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MenuItemName = \n odataObject.MenuItemName;\n \n this.MenuItemType = \n odataObject.MenuItemType;\n \n this.NavigationPath = undefined;\n if (odataObject.NavigationPath) {\n this.NavigationPath = [];\n for (var i = 0; i < odataObject.NavigationPath.length; i++) {\n if (odataObject.NavigationPath[i] != null) {\n this.NavigationPath[i] = \n odataObject.NavigationPath[i];\n } else {\n this.NavigationPath[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.MenuItemUserAction\";\n \n }\n }\n entityDictionary['MenuItemUserActionClass'] = MenuItemUserActionClass;\n \n /**\n * ValidationUserAction entity class.\n */\n export class ValidationUserActionClass\n extends UserActionClass\n implements Entities.ValidationUserAction {\n public Name: string;\n public Comment: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.Comment = \n odataObject.Comment;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ValidationUserAction\";\n \n }\n }\n entityDictionary['ValidationUserActionClass'] = ValidationUserActionClass;\n \n /**\n * ArtifactSummary entity class.\n */\n export class ArtifactSummaryClass implements Entities.ArtifactSummary {\n public ArtifactType: string;\n public LanguageTags: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ArtifactType = \n odataObject.ArtifactType;\n \n this.LanguageTags = undefined;\n if (odataObject.LanguageTags) {\n this.LanguageTags = [];\n for (var i = 0; i < odataObject.LanguageTags.length; i++) {\n if (odataObject.LanguageTags[i] != null) {\n this.LanguageTags[i] = \n odataObject.LanguageTags[i];\n } else {\n this.LanguageTags[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ArtifactSummaryClass'] = ArtifactSummaryClass;\n \n /**\n * MetadataPropertyValue entity class.\n */\n export class MetadataPropertyValueClass implements Entities.MetadataPropertyValue {\n public PropertyId: string;\n public SingleValue: string;\n public MultiValue: Entities.MetadataText[];\n public Tags: string[];\n public ComboBox: string;\n public MultiSelect: string[];\n public Links: Entities.MetadataHypertextLink[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.PropertyId = \n odataObject.PropertyId;\n \n this.SingleValue = \n odataObject.SingleValue;\n \n this.MultiValue = undefined;\n if (odataObject.MultiValue) {\n this.MultiValue = [];\n for (var i = 0; i < odataObject.MultiValue.length; i++) {\n if (odataObject.MultiValue[i] != null) {\n if (odataObject.MultiValue[i]['@odata.type'] != null) {\n var className: string = odataObject.MultiValue[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.MultiValue[i] = new entityDictionary[className](odataObject.MultiValue[i])\n }\n } else {\n this.MultiValue[i] = new MetadataTextClass(odataObject.MultiValue[i]);\n }\n } else {\n this.MultiValue[i] = undefined;\n }\n }\n }\n \n this.Tags = undefined;\n if (odataObject.Tags) {\n this.Tags = [];\n for (var i = 0; i < odataObject.Tags.length; i++) {\n if (odataObject.Tags[i] != null) {\n this.Tags[i] = \n odataObject.Tags[i];\n } else {\n this.Tags[i] = undefined;\n }\n }\n }\n \n this.ComboBox = \n odataObject.ComboBox;\n \n this.MultiSelect = undefined;\n if (odataObject.MultiSelect) {\n this.MultiSelect = [];\n for (var i = 0; i < odataObject.MultiSelect.length; i++) {\n if (odataObject.MultiSelect[i] != null) {\n this.MultiSelect[i] = \n odataObject.MultiSelect[i];\n } else {\n this.MultiSelect[i] = undefined;\n }\n }\n }\n \n this.Links = undefined;\n if (odataObject.Links) {\n this.Links = [];\n for (var i = 0; i < odataObject.Links.length; i++) {\n if (odataObject.Links[i] != null) {\n if (odataObject.Links[i]['@odata.type'] != null) {\n var className: string = odataObject.Links[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Links[i] = new entityDictionary[className](odataObject.Links[i])\n }\n } else {\n this.Links[i] = new MetadataHypertextLinkClass(odataObject.Links[i]);\n }\n } else {\n this.Links[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['MetadataPropertyValueClass'] = MetadataPropertyValueClass;\n \n /**\n * FormContext entity class.\n */\n export class FormContextClass implements Entities.FormContext {\n public FormID: string;\n public FormName: string;\n public RecordingName: string;\n public HasMetadata: boolean;\n public Sequence: number;\n public Annotations: Entities.Annotation[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FormID = \n odataObject.FormID;\n \n this.FormName = \n odataObject.FormName;\n \n this.RecordingName = \n odataObject.RecordingName;\n \n this.HasMetadata = \n odataObject.HasMetadata;\n \n this.Sequence = \n odataObject.Sequence;\n \n this.Annotations = undefined;\n if (odataObject.Annotations) {\n this.Annotations = [];\n for (var i = 0; i < odataObject.Annotations.length; i++) {\n if (odataObject.Annotations[i] != null) {\n if (odataObject.Annotations[i]['@odata.type'] != null) {\n var className: string = odataObject.Annotations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Annotations[i] = new entityDictionary[className](odataObject.Annotations[i])\n }\n } else {\n this.Annotations[i] = new AnnotationClass(odataObject.Annotations[i]);\n }\n } else {\n this.Annotations[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FormContextClass'] = FormContextClass;\n \n /**\n * ExtensibleFiscalRegistrationType entity class.\n */\n export class ExtensibleFiscalRegistrationTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleFiscalRegistrationType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleFiscalRegistrationType\";\n \n }\n }\n entityDictionary['ExtensibleFiscalRegistrationTypeClass'] = ExtensibleFiscalRegistrationTypeClass;\n \n /**\n * FiscalTransactionTenderLineAdjustment entity class.\n */\n export class FiscalTransactionTenderLineAdjustmentClass implements Entities.FiscalTransactionTenderLineAdjustment {\n public TenderLineNumber: number;\n public AdjustmentAmount: number;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineNumber = \n (odataObject.TenderLineNumber != null) ? parseFloat(odataObject.TenderLineNumber) : undefined;\n \n this.AdjustmentAmount = \n (odataObject.AdjustmentAmount != null) ? parseFloat(odataObject.AdjustmentAmount) : undefined;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionTenderLineAdjustmentClass'] = FiscalTransactionTenderLineAdjustmentClass;\n \n /**\n * FiscalTransactionSalesLineAdjustment entity class.\n */\n export class FiscalTransactionSalesLineAdjustmentClass implements Entities.FiscalTransactionSalesLineAdjustment {\n public SalesLineNumber: number;\n public Exclude: boolean;\n public RecordGuid: string;\n public TransactionId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SalesLineNumber = \n (odataObject.SalesLineNumber != null) ? parseFloat(odataObject.SalesLineNumber) : undefined;\n \n this.Exclude = \n odataObject.Exclude;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.TransactionId = \n odataObject.TransactionId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalTransactionSalesLineAdjustmentClass'] = FiscalTransactionSalesLineAdjustmentClass;\n \n /**\n * DetailedOrderStatus entity class.\n */\n export class DetailedOrderStatusClass\n extends ExtensibleEnumerationClass\n implements Entities.DetailedOrderStatus {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.DetailedOrderStatus\";\n \n }\n }\n entityDictionary['DetailedOrderStatusClass'] = DetailedOrderStatusClass;\n \n /**\n * LineValidationResult entity class.\n */\n export class LineValidationResultClass implements Entities.LineValidationResult {\n public LineId: string;\n public ValidationFailures: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineId = \n odataObject.LineId;\n \n this.ValidationFailures = undefined;\n if (odataObject.ValidationFailures) {\n this.ValidationFailures = [];\n for (var i = 0; i < odataObject.ValidationFailures.length; i++) {\n if (odataObject.ValidationFailures[i] != null) {\n if (odataObject.ValidationFailures[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailures[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailures[i] = new entityDictionary[className](odataObject.ValidationFailures[i])\n }\n } else {\n this.ValidationFailures[i] = new DataValidationFailureClass(odataObject.ValidationFailures[i]);\n }\n } else {\n this.ValidationFailures[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LineValidationResultClass'] = LineValidationResultClass;\n \n /**\n * SalesAffiliationLoyaltyTier entity class.\n */\n export class SalesAffiliationLoyaltyTierClass\n extends AffiliationLoyaltyTierClass\n implements Entities.SalesAffiliationLoyaltyTier {\n public TransactionId: string;\n public ChannelId: number;\n public TerminalId: string;\n public ReceiptId: string;\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TransactionId = \n odataObject.TransactionId;\n \n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.ReceiptId = \n odataObject.ReceiptId;\n \n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesAffiliationLoyaltyTier\";\n \n }\n }\n entityDictionary['SalesAffiliationLoyaltyTierClass'] = SalesAffiliationLoyaltyTierClass;\n \n /**\n * TaxViewLine entity class.\n */\n export class TaxViewLineClass implements Entities.TaxViewLine {\n public TaxId: string;\n public TaxAmount: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxId = \n odataObject.TaxId;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n }\n }\n entityDictionary['TaxViewLineClass'] = TaxViewLineClass;\n \n /**\n * Coupon entity class.\n */\n export class CouponClass implements Entities.Coupon {\n public CodeId: string;\n public Code: string;\n public DiscountOfferId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CodeId = \n odataObject.CodeId;\n \n this.Code = \n odataObject.Code;\n \n this.DiscountOfferId = \n odataObject.DiscountOfferId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CouponClass'] = CouponClass;\n \n /**\n * CustomerAccountDepositLine entity class.\n */\n export class CustomerAccountDepositLineClass implements Entities.CustomerAccountDepositLine {\n public Amount: number;\n public CustomerAccount: string;\n public Comment: string;\n public StoreNumber: string;\n public Terminal: string;\n public Shift: string;\n public TransactionStatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Amount = \n (odataObject.Amount != null) ? parseFloat(odataObject.Amount) : undefined;\n \n this.CustomerAccount = \n odataObject.CustomerAccount;\n \n this.Comment = \n odataObject.Comment;\n \n this.StoreNumber = \n odataObject.StoreNumber;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.Shift = \n odataObject.Shift;\n \n this.TransactionStatusValue = \n odataObject.TransactionStatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAccountDepositLineClass'] = CustomerAccountDepositLineClass;\n \n /**\n * CustomerAttribute entity class.\n */\n export class CustomerAttributeClass implements Entities.CustomerAttribute {\n public AttributeValue: Entities.CommercePropertyValue;\n public Units: string;\n public RecordId: number;\n public Name: string;\n public KeyName: string;\n public DataTypeValue: number;\n public Attribute: number;\n public NameTranslations: Entities.TextValueTranslation[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AttributeValue == null) {\n this.AttributeValue = undefined;\n } else if (odataObject.AttributeValue['@odata.type'] == null) {\n this.AttributeValue = new CommercePropertyValueClass(odataObject.AttributeValue);\n } else {\n var className: string = odataObject.AttributeValue['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AttributeValue = new entityDictionary[className](odataObject.AttributeValue)\n }\n }\n\n \n this.Units = \n odataObject.Units;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.KeyName = \n odataObject.KeyName;\n \n this.DataTypeValue = \n odataObject.DataTypeValue;\n \n this.Attribute = \n (odataObject.Attribute != null) ? parseInt(odataObject.Attribute, 10) : undefined;\n \n this.NameTranslations = undefined;\n if (odataObject.NameTranslations) {\n this.NameTranslations = [];\n for (var i = 0; i < odataObject.NameTranslations.length; i++) {\n if (odataObject.NameTranslations[i] != null) {\n if (odataObject.NameTranslations[i]['@odata.type'] != null) {\n var className: string = odataObject.NameTranslations[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.NameTranslations[i] = new entityDictionary[className](odataObject.NameTranslations[i])\n }\n } else {\n this.NameTranslations[i] = new TextValueTranslationClass(odataObject.NameTranslations[i]);\n }\n } else {\n this.NameTranslations[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerAttributeClass'] = CustomerAttributeClass;\n \n /**\n * ContactInfo entity class.\n */\n export class ContactInfoClass implements Entities.ContactInfo {\n public AddressTypeValue: number;\n public RecordId: number;\n public PartyLocationRecordId: number;\n public PartyRecordId: number;\n public PartyNumber: string;\n public Description: string;\n public Value: string;\n public ValueExtension: string;\n public LogisticsLocationId: string;\n public LogisticsLocationRecordId: number;\n public ParentLocation: number;\n public IsPrimary: boolean;\n public IsMobilePhone: boolean;\n public IsPrivate: boolean;\n public IsOptedInMarketing: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.AddressTypeValue = \n odataObject.AddressTypeValue;\n \n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PartyLocationRecordId = \n (odataObject.PartyLocationRecordId != null) ? parseInt(odataObject.PartyLocationRecordId, 10) : undefined;\n \n this.PartyRecordId = \n (odataObject.PartyRecordId != null) ? parseInt(odataObject.PartyRecordId, 10) : undefined;\n \n this.PartyNumber = \n odataObject.PartyNumber;\n \n this.Description = \n odataObject.Description;\n \n this.Value = \n odataObject.Value;\n \n this.ValueExtension = \n odataObject.ValueExtension;\n \n this.LogisticsLocationId = \n odataObject.LogisticsLocationId;\n \n this.LogisticsLocationRecordId = \n (odataObject.LogisticsLocationRecordId != null) ? parseInt(odataObject.LogisticsLocationRecordId, 10) : undefined;\n \n this.ParentLocation = \n (odataObject.ParentLocation != null) ? parseInt(odataObject.ParentLocation, 10) : undefined;\n \n this.IsPrimary = \n odataObject.IsPrimary;\n \n this.IsMobilePhone = \n odataObject.IsMobilePhone;\n \n this.IsPrivate = \n odataObject.IsPrivate;\n \n this.IsOptedInMarketing = \n odataObject.IsOptedInMarketing;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ContactInfoClass'] = ContactInfoClass;\n \n /**\n * InventoryQuantities entity class.\n */\n export class InventoryQuantitiesClass implements Entities.InventoryQuantities {\n public UnitOfMeasure: string;\n public QuantityNotProcessed: number;\n public QuantityReserved: number;\n public QuantityPicked: number;\n public QuantityPacked: number;\n public QuantityInvoiced: number;\n public QuantityOrdered: number;\n public QuantityCanceled: number;\n public QuantityReturned: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.QuantityNotProcessed = \n (odataObject.QuantityNotProcessed != null) ? parseFloat(odataObject.QuantityNotProcessed) : undefined;\n \n this.QuantityReserved = \n (odataObject.QuantityReserved != null) ? parseFloat(odataObject.QuantityReserved) : undefined;\n \n this.QuantityPicked = \n (odataObject.QuantityPicked != null) ? parseFloat(odataObject.QuantityPicked) : undefined;\n \n this.QuantityPacked = \n (odataObject.QuantityPacked != null) ? parseFloat(odataObject.QuantityPacked) : undefined;\n \n this.QuantityInvoiced = \n (odataObject.QuantityInvoiced != null) ? parseFloat(odataObject.QuantityInvoiced) : undefined;\n \n this.QuantityOrdered = \n (odataObject.QuantityOrdered != null) ? parseFloat(odataObject.QuantityOrdered) : undefined;\n \n this.QuantityCanceled = \n (odataObject.QuantityCanceled != null) ? parseFloat(odataObject.QuantityCanceled) : undefined;\n \n this.QuantityReturned = \n (odataObject.QuantityReturned != null) ? parseFloat(odataObject.QuantityReturned) : undefined;\n \n }\n }\n entityDictionary['InventoryQuantitiesClass'] = InventoryQuantitiesClass;\n \n /**\n * DeliveryInformation entity class.\n */\n export class DeliveryInformationClass implements Entities.DeliveryInformation {\n public DeliveryMode: string;\n public DeliveryAddress: Entities.Address;\n public DeliveryDate: Date;\n public PickupTimeslotStartDateTime: Date;\n public PickupTimeslotEndDateTime: Date;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.DeliveryMode = \n odataObject.DeliveryMode;\n \n if (odataObject.DeliveryAddress == null) {\n this.DeliveryAddress = undefined;\n } else if (odataObject.DeliveryAddress['@odata.type'] == null) {\n this.DeliveryAddress = new AddressClass(odataObject.DeliveryAddress);\n } else {\n var className: string = odataObject.DeliveryAddress['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DeliveryAddress = new entityDictionary[className](odataObject.DeliveryAddress)\n }\n }\n\n \n this.DeliveryDate = \n (odataObject.DeliveryDate instanceof Date) ? odataObject.DeliveryDate\n : (odataObject.DeliveryDate != null) ? jsonLightReadStringPropertyValue(odataObject.DeliveryDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotStartDateTime = \n (odataObject.PickupTimeslotStartDateTime instanceof Date) ? odataObject.PickupTimeslotStartDateTime\n : (odataObject.PickupTimeslotStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.PickupTimeslotEndDateTime = \n (odataObject.PickupTimeslotEndDateTime instanceof Date) ? odataObject.PickupTimeslotEndDateTime\n : (odataObject.PickupTimeslotEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.PickupTimeslotEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n }\n }\n entityDictionary['DeliveryInformationClass'] = DeliveryInformationClass;\n \n /**\n * ShiftTaxLine entity class.\n */\n export class ShiftTaxLineClass implements Entities.ShiftTaxLine {\n public TaxCode: string;\n public TaxAmount: number;\n public TaxRate: number;\n public NetAmount: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TaxCode = \n odataObject.TaxCode;\n \n this.TaxAmount = \n (odataObject.TaxAmount != null) ? parseFloat(odataObject.TaxAmount) : undefined;\n \n this.TaxRate = \n (odataObject.TaxRate != null) ? parseFloat(odataObject.TaxRate) : undefined;\n \n this.NetAmount = \n (odataObject.NetAmount != null) ? parseFloat(odataObject.NetAmount) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ShiftTaxLineClass'] = ShiftTaxLineClass;\n \n /**\n * TaxRegistration entity class.\n */\n export class TaxRegistrationClass implements Entities.TaxRegistration {\n public RecordId: number;\n public Name: string;\n public CountryRegionId: string;\n public IsRegistrationNumberUnique: boolean;\n public IsPrimaryAddressRestricted: boolean;\n public TypeApplicabilityRuleRecordId: number;\n public TypeValue: number;\n public Description: string;\n public DirPartyLocationRecordId: number;\n public RegistrationNumber: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public Issuer: string;\n public IssueDate: Date;\n public Section: string;\n public DirectoryPartyRecordId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.CountryRegionId = \n odataObject.CountryRegionId;\n \n this.IsRegistrationNumberUnique = \n odataObject.IsRegistrationNumberUnique;\n \n this.IsPrimaryAddressRestricted = \n odataObject.IsPrimaryAddressRestricted;\n \n this.TypeApplicabilityRuleRecordId = \n (odataObject.TypeApplicabilityRuleRecordId != null) ? parseInt(odataObject.TypeApplicabilityRuleRecordId, 10) : undefined;\n \n this.TypeValue = \n odataObject.TypeValue;\n \n this.Description = \n odataObject.Description;\n \n this.DirPartyLocationRecordId = \n (odataObject.DirPartyLocationRecordId != null) ? parseInt(odataObject.DirPartyLocationRecordId, 10) : undefined;\n \n this.RegistrationNumber = \n odataObject.RegistrationNumber;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Issuer = \n odataObject.Issuer;\n \n this.IssueDate = \n (odataObject.IssueDate instanceof Date) ? odataObject.IssueDate\n : (odataObject.IssueDate != null) ? jsonLightReadStringPropertyValue(odataObject.IssueDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Section = \n odataObject.Section;\n \n this.DirectoryPartyRecordId = \n (odataObject.DirectoryPartyRecordId != null) ? parseInt(odataObject.DirectoryPartyRecordId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TaxRegistrationClass'] = TaxRegistrationClass;\n \n /**\n * ChannelTaxRegistration entity class.\n */\n export class ChannelTaxRegistrationClass\n extends TaxRegistrationClass\n implements Entities.ChannelTaxRegistration {\n public ChannelId: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ChannelId = \n (odataObject.ChannelId != null) ? parseInt(odataObject.ChannelId, 10) : undefined;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ChannelTaxRegistration\";\n \n }\n }\n entityDictionary['ChannelTaxRegistrationClass'] = ChannelTaxRegistrationClass;\n \n /**\n * LinkedProduct entity class.\n */\n export class LinkedProductClass implements Entities.LinkedProduct {\n public ProductRecordId: number;\n public LinkedProductRecordId: number;\n public Quantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.LinkedProductRecordId = \n (odataObject.LinkedProductRecordId != null) ? parseInt(odataObject.LinkedProductRecordId, 10) : undefined;\n \n this.Quantity = \n (odataObject.Quantity != null) ? parseFloat(odataObject.Quantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['LinkedProductClass'] = LinkedProductClass;\n \n /**\n * DisplayOrderInCategory entity class.\n */\n export class DisplayOrderInCategoryClass implements Entities.DisplayOrderInCategory {\n public CategoryRecordId: number;\n public DisplayOrder: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryRecordId = \n (odataObject.CategoryRecordId != null) ? parseInt(odataObject.CategoryRecordId, 10) : undefined;\n \n this.DisplayOrder = \n (odataObject.DisplayOrder != null) ? parseFloat(odataObject.DisplayOrder) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['DisplayOrderInCategoryClass'] = DisplayOrderInCategoryClass;\n \n /**\n * RelatedProduct entity class.\n */\n export class RelatedProductClass implements Entities.RelatedProduct {\n public ProductRecordId: number;\n public RelatedProductRecordId: number;\n public CatalogId: number;\n public RelationName: string;\n public IsExcludedRelation: boolean;\n public IsDirectRelation: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductRecordId = \n (odataObject.ProductRecordId != null) ? parseInt(odataObject.ProductRecordId, 10) : undefined;\n \n this.RelatedProductRecordId = \n (odataObject.RelatedProductRecordId != null) ? parseInt(odataObject.RelatedProductRecordId, 10) : undefined;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.RelationName = \n odataObject.RelationName;\n \n this.IsExcludedRelation = \n odataObject.IsExcludedRelation;\n \n this.IsDirectRelation = \n odataObject.IsDirectRelation;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RelatedProductClass'] = RelatedProductClass;\n \n /**\n * KitComponent entity class.\n */\n export class KitComponentClass implements Entities.KitComponent {\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['KitComponentClass'] = KitComponentClass;\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity class.\n */\n export class ChannelReferenceAdditionalLookupCriteriaClass implements Entities.ChannelReferenceAdditionalLookupCriteria {\n public OrderLookupAdditionalCriteriaTypeValue: number;\n public OrderLookupAdditionalCriteriaTypeParameterValue: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OrderLookupAdditionalCriteriaTypeValue = \n odataObject.OrderLookupAdditionalCriteriaTypeValue;\n \n this.OrderLookupAdditionalCriteriaTypeParameterValue = \n odataObject.OrderLookupAdditionalCriteriaTypeParameterValue;\n \n }\n }\n entityDictionary['ChannelReferenceAdditionalLookupCriteriaClass'] = ChannelReferenceAdditionalLookupCriteriaClass;\n \n /**\n * UserAlertFulfillmentLineParameter entity class.\n */\n export class UserAlertFulfillmentLineParameterClass\n extends FulfillmentLineParameterClass\n implements Entities.UserAlertFulfillmentLineParameter {\n public ItemId: string;\n public ProductId: number;\n public UnitOfMeasure: string;\n public SerialNumberInLatestFulfillmentTransaction: string;\n public LatestFulfillmentTransactionOperationTypeValue: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ItemId = \n odataObject.ItemId;\n \n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.SerialNumberInLatestFulfillmentTransaction = \n odataObject.SerialNumberInLatestFulfillmentTransaction;\n \n this.LatestFulfillmentTransactionOperationTypeValue = \n odataObject.LatestFulfillmentTransactionOperationTypeValue;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.UserAlertFulfillmentLineParameter\";\n \n }\n }\n entityDictionary['UserAlertFulfillmentLineParameterClass'] = UserAlertFulfillmentLineParameterClass;\n \n /**\n * ListingIdentity entity class.\n */\n export class ListingIdentityClass implements Entities.ListingIdentity {\n public ProductId: number;\n public LanguageId: string;\n public CatalogId: number;\n public Tag: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.LanguageId = \n odataObject.LanguageId;\n \n this.CatalogId = \n (odataObject.CatalogId != null) ? parseInt(odataObject.CatalogId, 10) : undefined;\n \n this.Tag = \n odataObject.Tag;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ListingIdentityClass'] = ListingIdentityClass;\n \n /**\n * ProductRatingCount entity class.\n */\n export class ProductRatingCountClass implements Entities.ProductRatingCount {\n public Rating: number;\n public Count: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Rating = \n (odataObject.Rating != null) ? parseFloat(odataObject.Rating) : undefined;\n \n this.Count = \n odataObject.Count;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductRatingCountClass'] = ProductRatingCountClass;\n \n /**\n * RegularStoreHours entity class.\n */\n export class RegularStoreHoursClass implements Entities.RegularStoreHours {\n public MondayOpenTime: number;\n public MondayCloseTime: number;\n public IsClosedOnMonday: boolean;\n public TuesdayOpenTime: number;\n public TuesdayCloseTime: number;\n public IsClosedOnTuesday: boolean;\n public WednesdayOpenTime: number;\n public WednesdayCloseTime: number;\n public IsClosedOnWednesday: boolean;\n public ThursdayOpenTime: number;\n public ThursdayCloseTime: number;\n public IsClosedOnThursday: boolean;\n public FridayOpenTime: number;\n public FridayCloseTime: number;\n public IsClosedOnFriday: boolean;\n public SaturdayOpenTime: number;\n public SaturdayCloseTime: number;\n public IsClosedOnSaturday: boolean;\n public SundayOpenTime: number;\n public SundayCloseTime: number;\n public IsClosedOnSunday: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.MondayOpenTime = \n odataObject.MondayOpenTime;\n \n this.MondayCloseTime = \n odataObject.MondayCloseTime;\n \n this.IsClosedOnMonday = \n odataObject.IsClosedOnMonday;\n \n this.TuesdayOpenTime = \n odataObject.TuesdayOpenTime;\n \n this.TuesdayCloseTime = \n odataObject.TuesdayCloseTime;\n \n this.IsClosedOnTuesday = \n odataObject.IsClosedOnTuesday;\n \n this.WednesdayOpenTime = \n odataObject.WednesdayOpenTime;\n \n this.WednesdayCloseTime = \n odataObject.WednesdayCloseTime;\n \n this.IsClosedOnWednesday = \n odataObject.IsClosedOnWednesday;\n \n this.ThursdayOpenTime = \n odataObject.ThursdayOpenTime;\n \n this.ThursdayCloseTime = \n odataObject.ThursdayCloseTime;\n \n this.IsClosedOnThursday = \n odataObject.IsClosedOnThursday;\n \n this.FridayOpenTime = \n odataObject.FridayOpenTime;\n \n this.FridayCloseTime = \n odataObject.FridayCloseTime;\n \n this.IsClosedOnFriday = \n odataObject.IsClosedOnFriday;\n \n this.SaturdayOpenTime = \n odataObject.SaturdayOpenTime;\n \n this.SaturdayCloseTime = \n odataObject.SaturdayCloseTime;\n \n this.IsClosedOnSaturday = \n odataObject.IsClosedOnSaturday;\n \n this.SundayOpenTime = \n odataObject.SundayOpenTime;\n \n this.SundayCloseTime = \n odataObject.SundayCloseTime;\n \n this.IsClosedOnSunday = \n odataObject.IsClosedOnSunday;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RegularStoreHoursClass'] = RegularStoreHoursClass;\n \n /**\n * ValidationPeriod entity class.\n */\n export class ValidationPeriodClass implements Entities.ValidationPeriod {\n public RecordId: number;\n public PeriodId: string;\n public Description: string;\n public ValidFrom: Date;\n public ValidTo: Date;\n public StartingTime: number;\n public EndingTime: number;\n public IsTimeBounded: number;\n public MondayStartingTime: number;\n public MondayEndingTime: number;\n public IsMondayTimeBounded: number;\n public TuesdayStartingTime: number;\n public TuesdayEndingTime: number;\n public IsTuesdayTimeBounded: number;\n public WednesdayStartingTime: number;\n public WednesdayEndingTime: number;\n public IsWednesdayTimeBounded: number;\n public ThursdayStartingTime: number;\n public ThursdayEndingTime: number;\n public IsThursdayTimeBounded: number;\n public FridayStartingTime: number;\n public FridayEndingTime: number;\n public IsFridayTimeBounded: number;\n public SaturdayStartingTime: number;\n public SaturdayEndingTime: number;\n public IsSaturdayTimeBounded: number;\n public SundayStartingTime: number;\n public SundayEndingTime: number;\n public IsSundayTimeBounded: number;\n public IsEndTimeAfterMidnight: number;\n public IsMondayEndTimeAfterMidnight: number;\n public IsTuesdayEndTimeAfterMidnight: number;\n public IsWednesdayEndTimeAfterMidnight: number;\n public IsThursdayEndTimeAfterMidnight: number;\n public IsFridayEndTimeAfterMidnight: number;\n public IsSaturdayEndTimeAfterMidnight: number;\n public IsSundayEndTimeAfterMidnight: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.PeriodId = \n odataObject.PeriodId;\n \n this.Description = \n odataObject.Description;\n \n this.ValidFrom = \n (odataObject.ValidFrom instanceof Date) ? odataObject.ValidFrom\n : (odataObject.ValidFrom != null) ? jsonLightReadStringPropertyValue(odataObject.ValidFrom, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ValidTo = \n (odataObject.ValidTo instanceof Date) ? odataObject.ValidTo\n : (odataObject.ValidTo != null) ? jsonLightReadStringPropertyValue(odataObject.ValidTo, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.StartingTime = \n odataObject.StartingTime;\n \n this.EndingTime = \n odataObject.EndingTime;\n \n this.IsTimeBounded = \n odataObject.IsTimeBounded;\n \n this.MondayStartingTime = \n odataObject.MondayStartingTime;\n \n this.MondayEndingTime = \n odataObject.MondayEndingTime;\n \n this.IsMondayTimeBounded = \n odataObject.IsMondayTimeBounded;\n \n this.TuesdayStartingTime = \n odataObject.TuesdayStartingTime;\n \n this.TuesdayEndingTime = \n odataObject.TuesdayEndingTime;\n \n this.IsTuesdayTimeBounded = \n odataObject.IsTuesdayTimeBounded;\n \n this.WednesdayStartingTime = \n odataObject.WednesdayStartingTime;\n \n this.WednesdayEndingTime = \n odataObject.WednesdayEndingTime;\n \n this.IsWednesdayTimeBounded = \n odataObject.IsWednesdayTimeBounded;\n \n this.ThursdayStartingTime = \n odataObject.ThursdayStartingTime;\n \n this.ThursdayEndingTime = \n odataObject.ThursdayEndingTime;\n \n this.IsThursdayTimeBounded = \n odataObject.IsThursdayTimeBounded;\n \n this.FridayStartingTime = \n odataObject.FridayStartingTime;\n \n this.FridayEndingTime = \n odataObject.FridayEndingTime;\n \n this.IsFridayTimeBounded = \n odataObject.IsFridayTimeBounded;\n \n this.SaturdayStartingTime = \n odataObject.SaturdayStartingTime;\n \n this.SaturdayEndingTime = \n odataObject.SaturdayEndingTime;\n \n this.IsSaturdayTimeBounded = \n odataObject.IsSaturdayTimeBounded;\n \n this.SundayStartingTime = \n odataObject.SundayStartingTime;\n \n this.SundayEndingTime = \n odataObject.SundayEndingTime;\n \n this.IsSundayTimeBounded = \n odataObject.IsSundayTimeBounded;\n \n this.IsEndTimeAfterMidnight = \n odataObject.IsEndTimeAfterMidnight;\n \n this.IsMondayEndTimeAfterMidnight = \n odataObject.IsMondayEndTimeAfterMidnight;\n \n this.IsTuesdayEndTimeAfterMidnight = \n odataObject.IsTuesdayEndTimeAfterMidnight;\n \n this.IsWednesdayEndTimeAfterMidnight = \n odataObject.IsWednesdayEndTimeAfterMidnight;\n \n this.IsThursdayEndTimeAfterMidnight = \n odataObject.IsThursdayEndTimeAfterMidnight;\n \n this.IsFridayEndTimeAfterMidnight = \n odataObject.IsFridayEndTimeAfterMidnight;\n \n this.IsSaturdayEndTimeAfterMidnight = \n odataObject.IsSaturdayEndTimeAfterMidnight;\n \n this.IsSundayEndTimeAfterMidnight = \n odataObject.IsSundayEndTimeAfterMidnight;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ValidationPeriodClass'] = ValidationPeriodClass;\n \n /**\n * ClientBookChange entity class.\n */\n export class ClientBookChangeClass implements Entities.ClientBookChange {\n public FromStaffId: string;\n public ToStaffId: string;\n public CustomerId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FromStaffId = \n odataObject.FromStaffId;\n \n this.ToStaffId = \n odataObject.ToStaffId;\n \n this.CustomerId = \n odataObject.CustomerId;\n \n }\n }\n entityDictionary['ClientBookChangeClass'] = ClientBookChangeClass;\n \n /**\n * ChannelProfile entity class.\n */\n export class ChannelProfileClass implements Entities.ChannelProfile {\n public ProfileProperties: Entities.ChannelProfileProperty[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProfileProperties = undefined;\n if (odataObject.ProfileProperties) {\n this.ProfileProperties = [];\n for (var i = 0; i < odataObject.ProfileProperties.length; i++) {\n if (odataObject.ProfileProperties[i] != null) {\n if (odataObject.ProfileProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ProfileProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ProfileProperties[i] = new entityDictionary[className](odataObject.ProfileProperties[i])\n }\n } else {\n this.ProfileProperties[i] = new ChannelProfilePropertyClass(odataObject.ProfileProperties[i]);\n }\n } else {\n this.ProfileProperties[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ChannelProfileClass'] = ChannelProfileClass;\n \n /**\n * RetailSharedConfigurationParameter entity class.\n */\n export class RetailSharedConfigurationParameterClass implements Entities.RetailSharedConfigurationParameter {\n public RecordId: number;\n public Name: string;\n public Value: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RecordId = \n (odataObject.RecordId != null) ? parseInt(odataObject.RecordId, 10) : undefined;\n \n this.Name = \n odataObject.Name;\n \n this.Value = \n odataObject.Value;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['RetailSharedConfigurationParameterClass'] = RetailSharedConfigurationParameterClass;\n \n /**\n * CDXDataStore entity class.\n */\n export class CDXDataStoreClass implements Entities.CDXDataStore {\n public Name: string;\n public RecId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Name = \n odataObject.Name;\n \n this.RecId = \n (odataObject.RecId != null) ? parseInt(odataObject.RecId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CDXDataStoreClass'] = CDXDataStoreClass;\n \n /**\n * UploadJobPackageRequest entity class.\n */\n export class UploadJobPackageRequestClass implements Entities.UploadJobPackageRequest {\n public JobId: string;\n public RerunUploadSessionId: number;\n public TargetStorage: string;\n public UploadJobDefintion: string;\n public UploadUrl: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.JobId = \n odataObject.JobId;\n \n this.RerunUploadSessionId = \n (odataObject.RerunUploadSessionId != null) ? parseInt(odataObject.RerunUploadSessionId, 10) : undefined;\n \n this.TargetStorage = \n odataObject.TargetStorage;\n \n this.UploadJobDefintion = \n odataObject.UploadJobDefintion;\n \n this.UploadUrl = \n odataObject.UploadUrl;\n \n }\n }\n entityDictionary['UploadJobPackageRequestClass'] = UploadJobPackageRequestClass;\n \n /**\n * ExtensibleAuditEventType entity class.\n */\n export class ExtensibleAuditEventTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleAuditEventType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleAuditEventType\";\n \n }\n }\n entityDictionary['ExtensibleAuditEventTypeClass'] = ExtensibleAuditEventTypeClass;\n \n /**\n * AuditEventFiscalTransaction entity class.\n */\n export class AuditEventFiscalTransactionClass implements Entities.AuditEventFiscalTransaction {\n public EventId: number;\n public LineNumber: number;\n public RegisterResponse: string;\n public Store: string;\n public TransDateTime: Date;\n public Terminal: string;\n public UploadType: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.LineNumber = \n (odataObject.LineNumber != null) ? parseFloat(odataObject.LineNumber) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.Store = \n odataObject.Store;\n \n this.TransDateTime = \n (odataObject.TransDateTime instanceof Date) ? odataObject.TransDateTime\n : (odataObject.TransDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.Terminal = \n odataObject.Terminal;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalTransactionClass'] = AuditEventFiscalTransactionClass;\n \n /**\n * AuditEventFiscalRegistrationLine entity class.\n */\n export class AuditEventFiscalRegistrationLineClass implements Entities.AuditEventFiscalRegistrationLine {\n public EventId: number;\n public RegisterResponse: string;\n public StoreId: string;\n public TransactionDateTime: Date;\n public TerminalId: string;\n public UploadType: string;\n public UploadTypeValue: number;\n public StaffId: string;\n public RecordGuid: string;\n public RegistrationStatusValue: number;\n public RegistrationProcessId: string;\n public ConnectorGroup: string;\n public ConnectorName: string;\n public ConnectorFunctionalityProfileId: string;\n public RegisterInfo: string;\n public CreatedDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.EventId = \n (odataObject.EventId != null) ? parseInt(odataObject.EventId, 10) : undefined;\n \n this.RegisterResponse = \n odataObject.RegisterResponse;\n \n this.StoreId = \n odataObject.StoreId;\n \n this.TransactionDateTime = \n (odataObject.TransactionDateTime instanceof Date) ? odataObject.TransactionDateTime\n : (odataObject.TransactionDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.TransactionDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.TerminalId = \n odataObject.TerminalId;\n \n this.UploadType = \n odataObject.UploadType;\n \n this.UploadTypeValue = \n odataObject.UploadTypeValue;\n \n this.StaffId = \n odataObject.StaffId;\n \n this.RecordGuid = \n odataObject.RecordGuid;\n \n this.RegistrationStatusValue = \n odataObject.RegistrationStatusValue;\n \n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.ConnectorGroup = \n odataObject.ConnectorGroup;\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorFunctionalityProfileId = \n odataObject.ConnectorFunctionalityProfileId;\n \n this.RegisterInfo = \n odataObject.RegisterInfo;\n \n this.CreatedDateTime = \n (odataObject.CreatedDateTime instanceof Date) ? odataObject.CreatedDateTime\n : (odataObject.CreatedDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.CreatedDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AuditEventFiscalRegistrationLineClass'] = AuditEventFiscalRegistrationLineClass;\n \n /**\n * NotificationDetail entity class.\n */\n export class NotificationDetailClass implements Entities.NotificationDetail {\n public ActionProperty: string;\n public ItemCount: number;\n public DisplayText: string;\n public IsNew: boolean;\n public LastUpdatedDateTimeStr: string;\n public IsSuccess: boolean;\n public IsLiveContentOnly: boolean;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ActionProperty = \n odataObject.ActionProperty;\n \n this.ItemCount = \n (odataObject.ItemCount != null) ? parseInt(odataObject.ItemCount, 10) : undefined;\n \n this.DisplayText = \n odataObject.DisplayText;\n \n this.IsNew = \n odataObject.IsNew;\n \n this.LastUpdatedDateTimeStr = \n odataObject.LastUpdatedDateTimeStr;\n \n this.IsSuccess = \n odataObject.IsSuccess;\n \n this.IsLiveContentOnly = \n odataObject.IsLiveContentOnly;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['NotificationDetailClass'] = NotificationDetailClass;\n \n /**\n * FiscalIntegrationDocumentContext entity class.\n */\n export class FiscalIntegrationDocumentContextClass implements Entities.FiscalIntegrationDocumentContext {\n public AuditEvent: Entities.AuditEvent;\n public SignatureData: Entities.FiscalIntegrationSequentialSignatureData[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.AuditEvent == null) {\n this.AuditEvent = undefined;\n } else if (odataObject.AuditEvent['@odata.type'] == null) {\n this.AuditEvent = new AuditEventClass(odataObject.AuditEvent);\n } else {\n var className: string = odataObject.AuditEvent['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.AuditEvent = new entityDictionary[className](odataObject.AuditEvent)\n }\n }\n\n \n this.SignatureData = undefined;\n if (odataObject.SignatureData) {\n this.SignatureData = [];\n for (var i = 0; i < odataObject.SignatureData.length; i++) {\n if (odataObject.SignatureData[i] != null) {\n if (odataObject.SignatureData[i]['@odata.type'] != null) {\n var className: string = odataObject.SignatureData[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SignatureData[i] = new entityDictionary[className](odataObject.SignatureData[i])\n }\n } else {\n this.SignatureData[i] = new FiscalIntegrationSequentialSignatureDataClass(odataObject.SignatureData[i]);\n }\n } else {\n this.SignatureData[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentContextClass'] = FiscalIntegrationDocumentContextClass;\n \n /**\n * FiscalIntegrationDocumentAdjustment entity class.\n */\n export class FiscalIntegrationDocumentAdjustmentClass implements Entities.FiscalIntegrationDocumentAdjustment {\n public TenderLineAdjustments: Entities.FiscalTransactionTenderLineAdjustment[];\n public SalesLineAdjustments: Entities.FiscalTransactionSalesLineAdjustment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.TenderLineAdjustments = undefined;\n if (odataObject.TenderLineAdjustments) {\n this.TenderLineAdjustments = [];\n for (var i = 0; i < odataObject.TenderLineAdjustments.length; i++) {\n if (odataObject.TenderLineAdjustments[i] != null) {\n if (odataObject.TenderLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.TenderLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TenderLineAdjustments[i] = new entityDictionary[className](odataObject.TenderLineAdjustments[i])\n }\n } else {\n this.TenderLineAdjustments[i] = new FiscalTransactionTenderLineAdjustmentClass(odataObject.TenderLineAdjustments[i]);\n }\n } else {\n this.TenderLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.SalesLineAdjustments = undefined;\n if (odataObject.SalesLineAdjustments) {\n this.SalesLineAdjustments = [];\n for (var i = 0; i < odataObject.SalesLineAdjustments.length; i++) {\n if (odataObject.SalesLineAdjustments[i] != null) {\n if (odataObject.SalesLineAdjustments[i]['@odata.type'] != null) {\n var className: string = odataObject.SalesLineAdjustments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.SalesLineAdjustments[i] = new entityDictionary[className](odataObject.SalesLineAdjustments[i])\n }\n } else {\n this.SalesLineAdjustments[i] = new FiscalTransactionSalesLineAdjustmentClass(odataObject.SalesLineAdjustments[i]);\n }\n } else {\n this.SalesLineAdjustments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationDocumentAdjustmentClass'] = FiscalIntegrationDocumentAdjustmentClass;\n \n /**\n * FiscalIntegrationSignatureDataContext entity class.\n */\n export class FiscalIntegrationSignatureDataContextClass implements Entities.FiscalIntegrationSignatureDataContext {\n public SequentialSignatureKey: string;\n public SequentialNumber: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SequentialSignatureKey = \n odataObject.SequentialSignatureKey;\n \n this.SequentialNumber = \n (odataObject.SequentialNumber != null) ? parseInt(odataObject.SequentialNumber, 10) : undefined;\n \n }\n }\n entityDictionary['FiscalIntegrationSignatureDataContextClass'] = FiscalIntegrationSignatureDataContextClass;\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity class.\n */\n export class FiscalIntegrationRegistrationProcessLineClass implements Entities.FiscalIntegrationRegistrationProcessLine {\n public RegistrationProcessId: string;\n public SequenceNumber: number;\n public Priority: number;\n public ConnectorTypeValue: number;\n public FunctionalityProfileGroupId: string;\n public AllowSkip: boolean;\n public AllowMarkAsRegistered: boolean;\n public AllowPostpone: boolean;\n public Optional: boolean;\n public RegistrationSettings: Entities.FiscalIntegrationRegistrationSettings;\n public SupportedFiscalEventTypes: number[];\n public SupportedNonFiscalEventTypes: number[];\n public SequentialKeys: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RegistrationProcessId = \n odataObject.RegistrationProcessId;\n \n this.SequenceNumber = \n odataObject.SequenceNumber;\n \n this.Priority = \n odataObject.Priority;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.FunctionalityProfileGroupId = \n odataObject.FunctionalityProfileGroupId;\n \n this.AllowSkip = \n odataObject.AllowSkip;\n \n this.AllowMarkAsRegistered = \n odataObject.AllowMarkAsRegistered;\n \n this.AllowPostpone = \n odataObject.AllowPostpone;\n \n this.Optional = \n odataObject.Optional;\n \n if (odataObject.RegistrationSettings == null) {\n this.RegistrationSettings = undefined;\n } else if (odataObject.RegistrationSettings['@odata.type'] == null) {\n this.RegistrationSettings = new FiscalIntegrationRegistrationSettingsClass(odataObject.RegistrationSettings);\n } else {\n var className: string = odataObject.RegistrationSettings['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationSettings = new entityDictionary[className](odataObject.RegistrationSettings)\n }\n }\n\n \n this.SupportedFiscalEventTypes = undefined;\n if (odataObject.SupportedFiscalEventTypes) {\n this.SupportedFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedFiscalEventTypes.length; i++) {\n if (odataObject.SupportedFiscalEventTypes[i] != null) {\n this.SupportedFiscalEventTypes[i] = \n odataObject.SupportedFiscalEventTypes[i];\n } else {\n this.SupportedFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SupportedNonFiscalEventTypes = undefined;\n if (odataObject.SupportedNonFiscalEventTypes) {\n this.SupportedNonFiscalEventTypes = [];\n for (var i = 0; i < odataObject.SupportedNonFiscalEventTypes.length; i++) {\n if (odataObject.SupportedNonFiscalEventTypes[i] != null) {\n this.SupportedNonFiscalEventTypes[i] = \n odataObject.SupportedNonFiscalEventTypes[i];\n } else {\n this.SupportedNonFiscalEventTypes[i] = undefined;\n }\n }\n }\n \n this.SequentialKeys = undefined;\n if (odataObject.SequentialKeys) {\n this.SequentialKeys = [];\n for (var i = 0; i < odataObject.SequentialKeys.length; i++) {\n if (odataObject.SequentialKeys[i] != null) {\n this.SequentialKeys[i] = \n odataObject.SequentialKeys[i];\n } else {\n this.SequentialKeys[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationProcessLineClass'] = FiscalIntegrationRegistrationProcessLineClass;\n \n /**\n * FiscalIntegrationRegistrationSettings entity class.\n */\n export class FiscalIntegrationRegistrationSettingsClass implements Entities.FiscalIntegrationRegistrationSettings {\n public SkipReasonCode: string;\n public MarkAsRegisteredReasonCode: string;\n public PostponeReasonCode: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.SkipReasonCode = \n odataObject.SkipReasonCode;\n \n this.MarkAsRegisteredReasonCode = \n odataObject.MarkAsRegisteredReasonCode;\n \n this.PostponeReasonCode = \n odataObject.PostponeReasonCode;\n \n }\n }\n entityDictionary['FiscalIntegrationRegistrationSettingsClass'] = FiscalIntegrationRegistrationSettingsClass;\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity class.\n */\n export class FiscalIntegrationFiscalRegistrationProcessSummaryLineClass implements Entities.FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n public RegistrationProcessLine: Entities.FiscalIntegrationRegistrationProcessLine;\n public ConnectorName: string;\n public ConnectorTypeValue: number;\n public ConnectorLocationValue: number;\n public ConnectionProperties: Entities.FiscalIntegrationConfigurationProperty[];\n public ErrorCode: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.RegistrationProcessLine == null) {\n this.RegistrationProcessLine = undefined;\n } else if (odataObject.RegistrationProcessLine['@odata.type'] == null) {\n this.RegistrationProcessLine = new FiscalIntegrationRegistrationProcessLineClass(odataObject.RegistrationProcessLine);\n } else {\n var className: string = odataObject.RegistrationProcessLine['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RegistrationProcessLine = new entityDictionary[className](odataObject.RegistrationProcessLine)\n }\n }\n\n \n this.ConnectorName = \n odataObject.ConnectorName;\n \n this.ConnectorTypeValue = \n odataObject.ConnectorTypeValue;\n \n this.ConnectorLocationValue = \n odataObject.ConnectorLocationValue;\n \n this.ConnectionProperties = undefined;\n if (odataObject.ConnectionProperties) {\n this.ConnectionProperties = [];\n for (var i = 0; i < odataObject.ConnectionProperties.length; i++) {\n if (odataObject.ConnectionProperties[i] != null) {\n if (odataObject.ConnectionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ConnectionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ConnectionProperties[i] = new entityDictionary[className](odataObject.ConnectionProperties[i])\n }\n } else {\n this.ConnectionProperties[i] = new FiscalIntegrationConfigurationPropertyClass(odataObject.ConnectionProperties[i]);\n }\n } else {\n this.ConnectionProperties[i] = undefined;\n }\n }\n }\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n }\n }\n entityDictionary['FiscalIntegrationFiscalRegistrationProcessSummaryLineClass'] = FiscalIntegrationFiscalRegistrationProcessSummaryLineClass;\n \n /**\n * FiscalIntegrationConfigurationProperty entity class.\n */\n export class FiscalIntegrationConfigurationPropertyClass implements Entities.FiscalIntegrationConfigurationProperty {\n public LabelName: string;\n public Value: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LabelName = \n odataObject.LabelName;\n \n this.Value = \n odataObject.Value;\n \n }\n }\n entityDictionary['FiscalIntegrationConfigurationPropertyClass'] = FiscalIntegrationConfigurationPropertyClass;\n \n /**\n * FiscalIntegrationServiceFailureDetails entity class.\n */\n export class FiscalIntegrationServiceFailureDetailsClass implements Entities.FiscalIntegrationServiceFailureDetails {\n public FailureTypeValue: number;\n public IsRetryAllowed: boolean;\n public ErrorCode: string;\n public ErrorMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.FailureTypeValue = \n odataObject.FailureTypeValue;\n \n this.IsRetryAllowed = \n odataObject.IsRetryAllowed;\n \n this.ErrorCode = \n odataObject.ErrorCode;\n \n this.ErrorMessage = \n odataObject.ErrorMessage;\n \n }\n }\n entityDictionary['FiscalIntegrationServiceFailureDetailsClass'] = FiscalIntegrationServiceFailureDetailsClass;\n \n /**\n * CategoryPath entity class.\n */\n export class CategoryPathClass implements Entities.CategoryPath {\n public Segments: Entities.CategoryPathSegment[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Segments = undefined;\n if (odataObject.Segments) {\n this.Segments = [];\n for (var i = 0; i < odataObject.Segments.length; i++) {\n if (odataObject.Segments[i] != null) {\n if (odataObject.Segments[i]['@odata.type'] != null) {\n var className: string = odataObject.Segments[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.Segments[i] = new entityDictionary[className](odataObject.Segments[i])\n }\n } else {\n this.Segments[i] = new CategoryPathSegmentClass(odataObject.Segments[i]);\n }\n } else {\n this.Segments[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathClass'] = CategoryPathClass;\n \n /**\n * CategoryPathSegment entity class.\n */\n export class CategoryPathSegmentClass implements Entities.CategoryPathSegment {\n public CategoryName: string;\n public CategoryId: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.CategoryName = \n odataObject.CategoryName;\n \n this.CategoryId = \n (odataObject.CategoryId != null) ? parseInt(odataObject.CategoryId, 10) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CategoryPathSegmentClass'] = CategoryPathSegmentClass;\n \n /**\n * AttachedService entity class.\n */\n export class AttachedServiceClass implements Entities.AttachedService {\n public BaseUrl: string;\n public ServiceId: string;\n public StatusValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.BaseUrl = \n odataObject.BaseUrl;\n \n this.ServiceId = \n odataObject.ServiceId;\n \n this.StatusValue = \n odataObject.StatusValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AttachedServiceClass'] = AttachedServiceClass;\n \n /**\n * ExtensibleInventoryJournalType entity class.\n */\n export class ExtensibleInventoryJournalTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.ExtensibleInventoryJournalType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.ExtensibleInventoryJournalType\";\n \n }\n }\n entityDictionary['ExtensibleInventoryJournalTypeClass'] = ExtensibleInventoryJournalTypeClass;\n \n /**\n * CustomerTimelineItemType entity class.\n */\n export class CustomerTimelineItemTypeClass implements Entities.CustomerTimelineItemType {\n public Description: string;\n public TypeId: string;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.Description = \n odataObject.Description;\n \n this.TypeId = \n odataObject.TypeId;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CustomerTimelineItemTypeClass'] = CustomerTimelineItemTypeClass;\n \n /**\n * ProductWarehouseInventoryAvailability entity class.\n */\n export class ProductWarehouseInventoryAvailabilityClass implements Entities.ProductWarehouseInventoryAvailability {\n public ProductId: number;\n public InventLocationId: string;\n public DataAreaId: string;\n public PhysicalInventory: number;\n public PhysicalReserved: number;\n public TotalAvailable: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public OrderedInTotal: number;\n public PhysicalAvailable: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public LastInventoryTransactionId: number;\n public UnpostedOnlineOrderedQuantity: number;\n public UnpostedFulfilledQuantity: number;\n public IsInventoryAvailabilityQuantityReturned: boolean;\n public UnprocessedQuantity: number;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public SumUncountedTransactions: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.InventLocationId = \n odataObject.InventLocationId;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.PhysicalInventory = \n (odataObject.PhysicalInventory != null) ? parseFloat(odataObject.PhysicalInventory) : undefined;\n \n this.PhysicalReserved = \n (odataObject.PhysicalReserved != null) ? parseFloat(odataObject.PhysicalReserved) : undefined;\n \n this.TotalAvailable = \n (odataObject.TotalAvailable != null) ? parseFloat(odataObject.TotalAvailable) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.OrderedInTotal = \n (odataObject.OrderedInTotal != null) ? parseFloat(odataObject.OrderedInTotal) : undefined;\n \n this.PhysicalAvailable = \n (odataObject.PhysicalAvailable != null) ? parseFloat(odataObject.PhysicalAvailable) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.LastInventoryTransactionId = \n (odataObject.LastInventoryTransactionId != null) ? parseInt(odataObject.LastInventoryTransactionId, 10) : undefined;\n \n this.UnpostedOnlineOrderedQuantity = \n (odataObject.UnpostedOnlineOrderedQuantity != null) ? parseFloat(odataObject.UnpostedOnlineOrderedQuantity) : undefined;\n \n this.UnpostedFulfilledQuantity = \n (odataObject.UnpostedFulfilledQuantity != null) ? parseFloat(odataObject.UnpostedFulfilledQuantity) : undefined;\n \n this.IsInventoryAvailabilityQuantityReturned = \n odataObject.IsInventoryAvailabilityQuantityReturned;\n \n this.UnprocessedQuantity = \n (odataObject.UnprocessedQuantity != null) ? parseFloat(odataObject.UnprocessedQuantity) : undefined;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.SumUncountedTransactions = \n (odataObject.SumUncountedTransactions != null) ? parseFloat(odataObject.SumUncountedTransactions) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductWarehouseInventoryAvailabilityClass'] = ProductWarehouseInventoryAvailabilityClass;\n \n /**\n * QuantityUnitType entity class.\n */\n export class QuantityUnitTypeClass\n extends ExtensibleEnumerationClass\n implements Entities.QuantityUnitType {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.QuantityUnitType\";\n \n }\n }\n entityDictionary['QuantityUnitTypeClass'] = QuantityUnitTypeClass;\n \n /**\n * ProductInventoryAvailability entity class.\n */\n export class ProductInventoryAvailabilityClass implements Entities.ProductInventoryAvailability {\n public ProductId: number;\n public DataAreaId: string;\n public TotalAvailableQuantity: number;\n public TotalAvailableInventoryLevelLabel: string;\n public TotalAvailableInventoryLevelCode: string;\n public PhysicalAvailableQuantity: number;\n public PhysicalAvailableInventoryLevelLabel: string;\n public PhysicalAvailableInventoryLevelCode: string;\n public QuantityUnitTypeValue: number;\n public UnitOfMeasure: string;\n public MaximumPurchasablePhysicalAvailableQuantity: number;\n public MaximumPurchasableTotalAvailableQuantity: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ProductId = \n (odataObject.ProductId != null) ? parseInt(odataObject.ProductId, 10) : undefined;\n \n this.DataAreaId = \n odataObject.DataAreaId;\n \n this.TotalAvailableQuantity = \n (odataObject.TotalAvailableQuantity != null) ? parseFloat(odataObject.TotalAvailableQuantity) : undefined;\n \n this.TotalAvailableInventoryLevelLabel = \n odataObject.TotalAvailableInventoryLevelLabel;\n \n this.TotalAvailableInventoryLevelCode = \n odataObject.TotalAvailableInventoryLevelCode;\n \n this.PhysicalAvailableQuantity = \n (odataObject.PhysicalAvailableQuantity != null) ? parseFloat(odataObject.PhysicalAvailableQuantity) : undefined;\n \n this.PhysicalAvailableInventoryLevelLabel = \n odataObject.PhysicalAvailableInventoryLevelLabel;\n \n this.PhysicalAvailableInventoryLevelCode = \n odataObject.PhysicalAvailableInventoryLevelCode;\n \n this.QuantityUnitTypeValue = \n odataObject.QuantityUnitTypeValue;\n \n this.UnitOfMeasure = \n odataObject.UnitOfMeasure;\n \n this.MaximumPurchasablePhysicalAvailableQuantity = \n (odataObject.MaximumPurchasablePhysicalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasablePhysicalAvailableQuantity) : undefined;\n \n this.MaximumPurchasableTotalAvailableQuantity = \n (odataObject.MaximumPurchasableTotalAvailableQuantity != null) ? parseFloat(odataObject.MaximumPurchasableTotalAvailableQuantity) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['ProductInventoryAvailabilityClass'] = ProductInventoryAvailabilityClass;\n \n /**\n * ParameterSet entity class.\n */\n export class ParameterSetClass implements Entities.ParameterSet {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['ParameterSetClass'] = ParameterSetClass;\n \n /**\n * CartLineValidationResults entity class.\n */\n export class CartLineValidationResultsClass implements Entities.CartLineValidationResults {\n public ValidationResultsByLineId: Entities.CartLineValidationResultsByLineId;\n public ValidationFailuresByCartLines: Entities.LineDataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.ValidationResultsByLineId == null) {\n this.ValidationResultsByLineId = undefined;\n } else if (odataObject.ValidationResultsByLineId['@odata.type'] == null) {\n this.ValidationResultsByLineId = new CartLineValidationResultsByLineIdClass(odataObject.ValidationResultsByLineId);\n } else {\n var className: string = odataObject.ValidationResultsByLineId['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsByLineId = new entityDictionary[className](odataObject.ValidationResultsByLineId)\n }\n }\n\n \n this.ValidationFailuresByCartLines = undefined;\n if (odataObject.ValidationFailuresByCartLines) {\n this.ValidationFailuresByCartLines = [];\n for (var i = 0; i < odataObject.ValidationFailuresByCartLines.length; i++) {\n if (odataObject.ValidationFailuresByCartLines[i] != null) {\n if (odataObject.ValidationFailuresByCartLines[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationFailuresByCartLines[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationFailuresByCartLines[i] = new entityDictionary[className](odataObject.ValidationFailuresByCartLines[i])\n }\n } else {\n this.ValidationFailuresByCartLines[i] = new LineDataValidationFailureClass(odataObject.ValidationFailuresByCartLines[i]);\n }\n } else {\n this.ValidationFailuresByCartLines[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsClass'] = CartLineValidationResultsClass;\n \n /**\n * CommerceException entity class.\n */\n export class CommerceExceptionClass implements Entities.CommerceException {\n public LocalizedMessage: string;\n public ErrorResourceId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n }\n }\n entityDictionary['CommerceExceptionClass'] = CommerceExceptionClass;\n \n /**\n * DataValidationException entity class.\n */\n export class DataValidationExceptionClass\n extends CommerceExceptionClass\n implements Entities.DataValidationException {\n public ValidationResults: Entities.DataValidationFailure[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ValidationResults = undefined;\n if (odataObject.ValidationResults) {\n this.ValidationResults = [];\n for (var i = 0; i < odataObject.ValidationResults.length; i++) {\n if (odataObject.ValidationResults[i] != null) {\n if (odataObject.ValidationResults[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResults[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResults[i] = new entityDictionary[className](odataObject.ValidationResults[i])\n }\n } else {\n this.ValidationResults[i] = new DataValidationFailureClass(odataObject.ValidationResults[i]);\n }\n } else {\n this.ValidationResults[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DataValidationException\";\n \n }\n }\n entityDictionary['DataValidationExceptionClass'] = DataValidationExceptionClass;\n \n /**\n * MissingRequiredReasonCodeException entity class.\n */\n export class MissingRequiredReasonCodeExceptionClass\n extends DataValidationExceptionClass\n implements Entities.MissingRequiredReasonCodeException {\n public RequiredReasonCodes: Entities.ReasonCode[];\n public TransactionRequiredReasonCodeIds: string[];\n public ReasonCodeRequirements: Entities.ReasonCodeRequirement[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RequiredReasonCodes = undefined;\n if (odataObject.RequiredReasonCodes) {\n this.RequiredReasonCodes = [];\n for (var i = 0; i < odataObject.RequiredReasonCodes.length; i++) {\n if (odataObject.RequiredReasonCodes[i] != null) {\n if (odataObject.RequiredReasonCodes[i]['@odata.type'] != null) {\n var className: string = odataObject.RequiredReasonCodes[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.RequiredReasonCodes[i] = new entityDictionary[className](odataObject.RequiredReasonCodes[i])\n }\n } else {\n this.RequiredReasonCodes[i] = new ReasonCodeClass(odataObject.RequiredReasonCodes[i]);\n }\n } else {\n this.RequiredReasonCodes[i] = undefined;\n }\n }\n }\n \n this.TransactionRequiredReasonCodeIds = undefined;\n if (odataObject.TransactionRequiredReasonCodeIds) {\n this.TransactionRequiredReasonCodeIds = [];\n for (var i = 0; i < odataObject.TransactionRequiredReasonCodeIds.length; i++) {\n if (odataObject.TransactionRequiredReasonCodeIds[i] != null) {\n this.TransactionRequiredReasonCodeIds[i] = \n odataObject.TransactionRequiredReasonCodeIds[i];\n } else {\n this.TransactionRequiredReasonCodeIds[i] = undefined;\n }\n }\n }\n \n this.ReasonCodeRequirements = undefined;\n if (odataObject.ReasonCodeRequirements) {\n this.ReasonCodeRequirements = [];\n for (var i = 0; i < odataObject.ReasonCodeRequirements.length; i++) {\n if (odataObject.ReasonCodeRequirements[i] != null) {\n if (odataObject.ReasonCodeRequirements[i]['@odata.type'] != null) {\n var className: string = odataObject.ReasonCodeRequirements[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ReasonCodeRequirements[i] = new entityDictionary[className](odataObject.ReasonCodeRequirements[i])\n }\n } else {\n this.ReasonCodeRequirements[i] = new ReasonCodeRequirementClass(odataObject.ReasonCodeRequirements[i]);\n }\n } else {\n this.ReasonCodeRequirements[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.MissingRequiredReasonCodeException\";\n \n }\n }\n entityDictionary['MissingRequiredReasonCodeExceptionClass'] = MissingRequiredReasonCodeExceptionClass;\n \n /**\n * SecurityException entity class.\n */\n export class SecurityExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecurityException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecurityException\";\n \n }\n }\n entityDictionary['SecurityExceptionClass'] = SecurityExceptionClass;\n \n /**\n * DeviceAuthenticationException entity class.\n */\n export class DeviceAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.DeviceAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.DeviceAuthenticationException\";\n \n }\n }\n entityDictionary['DeviceAuthenticationExceptionClass'] = DeviceAuthenticationExceptionClass;\n \n /**\n * HeadquarterTransactionServiceException entity class.\n */\n export class HeadquarterTransactionServiceExceptionClass\n extends CommerceExceptionClass\n implements Entities.HeadquarterTransactionServiceException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.HeadquarterTransactionServiceException\";\n \n }\n }\n entityDictionary['HeadquarterTransactionServiceExceptionClass'] = HeadquarterTransactionServiceExceptionClass;\n \n /**\n * UserAuthenticationException entity class.\n */\n export class UserAuthenticationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthenticationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthenticationException\";\n \n }\n }\n entityDictionary['UserAuthenticationExceptionClass'] = UserAuthenticationExceptionClass;\n \n /**\n * UserAuthorizationException entity class.\n */\n export class UserAuthorizationExceptionClass\n extends SecurityExceptionClass\n implements Entities.UserAuthorizationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.UserAuthorizationException\";\n \n }\n }\n entityDictionary['UserAuthorizationExceptionClass'] = UserAuthorizationExceptionClass;\n \n /**\n * FeatureNotSupportedException entity class.\n */\n export class FeatureNotSupportedExceptionClass\n extends CommerceExceptionClass\n implements Entities.FeatureNotSupportedException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.FeatureNotSupportedException\";\n \n }\n }\n entityDictionary['FeatureNotSupportedExceptionClass'] = FeatureNotSupportedExceptionClass;\n \n /**\n * CartValidationException entity class.\n */\n export class CartValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.CartValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CartValidationException\";\n \n }\n }\n entityDictionary['CartValidationExceptionClass'] = CartValidationExceptionClass;\n \n /**\n * TenderValidationException entity class.\n */\n export class TenderValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.TenderValidationException {\n public TenderTypeId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TenderTypeId = \n odataObject.TenderTypeId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TenderValidationException\";\n \n }\n }\n entityDictionary['TenderValidationExceptionClass'] = TenderValidationExceptionClass;\n \n /**\n * CommerceDataExchangeException entity class.\n */\n export class CommerceDataExchangeExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceDataExchangeException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceDataExchangeException\";\n \n }\n }\n entityDictionary['CommerceDataExchangeExceptionClass'] = CommerceDataExchangeExceptionClass;\n \n /**\n * ExtensibleEnumerationException entity class.\n */\n export class ExtensibleEnumerationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationExceptionClass'] = ExtensibleEnumerationExceptionClass;\n \n /**\n * TaskManagementException entity class.\n */\n export class TaskManagementExceptionClass\n extends CommerceExceptionClass\n implements Entities.TaskManagementException {\n public TaskManagementErrors: Entities.TaskManagementError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.TaskManagementErrors = undefined;\n if (odataObject.TaskManagementErrors) {\n this.TaskManagementErrors = [];\n for (var i = 0; i < odataObject.TaskManagementErrors.length; i++) {\n if (odataObject.TaskManagementErrors[i] != null) {\n if (odataObject.TaskManagementErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.TaskManagementErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.TaskManagementErrors[i] = new entityDictionary[className](odataObject.TaskManagementErrors[i])\n }\n } else {\n this.TaskManagementErrors[i] = new TaskManagementErrorClass(odataObject.TaskManagementErrors[i]);\n }\n } else {\n this.TaskManagementErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementException\";\n \n }\n }\n entityDictionary['TaskManagementExceptionClass'] = TaskManagementExceptionClass;\n \n /**\n * TaskManagementServerException entity class.\n */\n export class TaskManagementServerExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementServerException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementServerException\";\n \n }\n }\n entityDictionary['TaskManagementServerExceptionClass'] = TaskManagementServerExceptionClass;\n \n /**\n * TaskManagementClientException entity class.\n */\n export class TaskManagementClientExceptionClass\n extends TaskManagementExceptionClass\n implements Entities.TaskManagementClientException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.TaskManagementClientException\";\n \n }\n }\n entityDictionary['TaskManagementClientExceptionClass'] = TaskManagementClientExceptionClass;\n \n /**\n * PaymentException entity class.\n */\n export class PaymentExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentException {\n public AdditionalContext: string;\n public PaymentSdkErrors: Entities.PaymentError[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.AdditionalContext = \n odataObject.AdditionalContext;\n \n this.PaymentSdkErrors = undefined;\n if (odataObject.PaymentSdkErrors) {\n this.PaymentSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentSdkErrors.length; i++) {\n if (odataObject.PaymentSdkErrors[i] != null) {\n if (odataObject.PaymentSdkErrors[i]['@odata.type'] != null) {\n var className: string = odataObject.PaymentSdkErrors[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.PaymentSdkErrors[i] = new entityDictionary[className](odataObject.PaymentSdkErrors[i])\n }\n } else {\n this.PaymentSdkErrors[i] = new PaymentErrorClass(odataObject.PaymentSdkErrors[i]);\n }\n } else {\n this.PaymentSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentException\";\n \n }\n }\n entityDictionary['PaymentExceptionClass'] = PaymentExceptionClass;\n \n /**\n * DataValidationFailure entity class.\n */\n export class DataValidationFailureClass implements Entities.DataValidationFailure {\n public ErrorContext: string;\n public ErrorResourceId: string;\n public MemberNames: string[];\n public LocalizedMessage: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorContext = \n odataObject.ErrorContext;\n \n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.MemberNames = undefined;\n if (odataObject.MemberNames) {\n this.MemberNames = [];\n for (var i = 0; i < odataObject.MemberNames.length; i++) {\n if (odataObject.MemberNames[i] != null) {\n this.MemberNames[i] = \n odataObject.MemberNames[i];\n } else {\n this.MemberNames[i] = undefined;\n }\n }\n }\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n }\n }\n entityDictionary['DataValidationFailureClass'] = DataValidationFailureClass;\n \n /**\n * ItemDiscontinuedException entity class.\n */\n export class ItemDiscontinuedExceptionClass\n extends CommerceExceptionClass\n implements Entities.ItemDiscontinuedException {\n public RemovedUnavailableItemIds: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RemovedUnavailableItemIds = \n odataObject.RemovedUnavailableItemIds;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ItemDiscontinuedException\";\n \n }\n }\n entityDictionary['ItemDiscontinuedExceptionClass'] = ItemDiscontinuedExceptionClass;\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity class.\n */\n export class InventoryDocumentLockedByOtherTerminalExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentLockedByOtherTerminalException {\n public WorkingTerminalId: string;\n public CurrentTerminalId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.WorkingTerminalId = \n odataObject.WorkingTerminalId;\n \n this.CurrentTerminalId = \n odataObject.CurrentTerminalId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentLockedByOtherTerminalException\";\n \n }\n }\n entityDictionary['InventoryDocumentLockedByOtherTerminalExceptionClass'] = InventoryDocumentLockedByOtherTerminalExceptionClass;\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity class.\n */\n export class InventoryDocumentExceedMaximumQuantityExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InventoryDocumentExceedMaximumQuantityException {\n public MaximumQuantity: number;\n public AllowOverDelivery: boolean;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.MaximumQuantity = \n (odataObject.MaximumQuantity != null) ? parseFloat(odataObject.MaximumQuantity) : undefined;\n \n this.AllowOverDelivery = \n odataObject.AllowOverDelivery;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InventoryDocumentExceedMaximumQuantityException\";\n \n }\n }\n entityDictionary['InventoryDocumentExceedMaximumQuantityExceptionClass'] = InventoryDocumentExceedMaximumQuantityExceptionClass;\n \n /**\n * CartLineValidationResultsByLineId entity class.\n */\n export class CartLineValidationResultsByLineIdClass implements Entities.CartLineValidationResultsByLineId {\n public LineIdToProductBehaviorMap: Entities.KeyValuePair_2OfString_ProductBehavior[];\n public ValidationResultsPairs: Entities.LineValidationResult[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.LineIdToProductBehaviorMap = undefined;\n if (odataObject.LineIdToProductBehaviorMap) {\n this.LineIdToProductBehaviorMap = [];\n for (var i = 0; i < odataObject.LineIdToProductBehaviorMap.length; i++) {\n if (odataObject.LineIdToProductBehaviorMap[i] != null) {\n if (odataObject.LineIdToProductBehaviorMap[i]['@odata.type'] != null) {\n var className: string = odataObject.LineIdToProductBehaviorMap[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.LineIdToProductBehaviorMap[i] = new entityDictionary[className](odataObject.LineIdToProductBehaviorMap[i])\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = new KeyValuePair_2OfString_ProductBehaviorClass(odataObject.LineIdToProductBehaviorMap[i]);\n }\n } else {\n this.LineIdToProductBehaviorMap[i] = undefined;\n }\n }\n }\n \n this.ValidationResultsPairs = undefined;\n if (odataObject.ValidationResultsPairs) {\n this.ValidationResultsPairs = [];\n for (var i = 0; i < odataObject.ValidationResultsPairs.length; i++) {\n if (odataObject.ValidationResultsPairs[i] != null) {\n if (odataObject.ValidationResultsPairs[i]['@odata.type'] != null) {\n var className: string = odataObject.ValidationResultsPairs[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ValidationResultsPairs[i] = new entityDictionary[className](odataObject.ValidationResultsPairs[i])\n }\n } else {\n this.ValidationResultsPairs[i] = new LineValidationResultClass(odataObject.ValidationResultsPairs[i]);\n }\n } else {\n this.ValidationResultsPairs[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['CartLineValidationResultsByLineIdClass'] = CartLineValidationResultsByLineIdClass;\n \n /**\n * CommerceRuntimeCompositionException entity class.\n */\n export class CommerceRuntimeCompositionExceptionClass\n extends CommerceExceptionClass\n implements Entities.CommerceRuntimeCompositionException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.CommerceRuntimeCompositionException\";\n \n }\n }\n entityDictionary['CommerceRuntimeCompositionExceptionClass'] = CommerceRuntimeCompositionExceptionClass;\n \n /**\n * ChecklistTaskValidationException entity class.\n */\n export class ChecklistTaskValidationExceptionClass\n extends DataValidationExceptionClass\n implements Entities.ChecklistTaskValidationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChecklistTaskValidationException\";\n \n }\n }\n entityDictionary['ChecklistTaskValidationExceptionClass'] = ChecklistTaskValidationExceptionClass;\n \n /**\n * InsufficientCredentialLengthException entity class.\n */\n export class InsufficientCredentialLengthExceptionClass\n extends DataValidationExceptionClass\n implements Entities.InsufficientCredentialLengthException {\n public ActualLength: number;\n public MinLength: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.ActualLength = \n odataObject.ActualLength;\n \n this.MinLength = \n odataObject.MinLength;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.InsufficientCredentialLengthException\";\n \n }\n }\n entityDictionary['InsufficientCredentialLengthExceptionClass'] = InsufficientCredentialLengthExceptionClass;\n \n /**\n * ExtensibleEnumerationCacheException entity class.\n */\n export class ExtensibleEnumerationCacheExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensibleEnumerationCacheException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensibleEnumerationCacheException\";\n \n }\n }\n entityDictionary['ExtensibleEnumerationCacheExceptionClass'] = ExtensibleEnumerationCacheExceptionClass;\n \n /**\n * ExtensionConfigurationException entity class.\n */\n export class ExtensionConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.ExtensionConfigurationException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ExtensionConfigurationException\";\n \n }\n }\n entityDictionary['ExtensionConfigurationExceptionClass'] = ExtensionConfigurationExceptionClass;\n \n /**\n * StaffPasswordExpiredException entity class.\n */\n export class StaffPasswordExpiredExceptionClass\n extends UserAuthenticationExceptionClass\n implements Entities.StaffPasswordExpiredException {\n public StaffId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.StaffId = \n odataObject.StaffId;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.StaffPasswordExpiredException\";\n \n }\n }\n entityDictionary['StaffPasswordExpiredExceptionClass'] = StaffPasswordExpiredExceptionClass;\n \n /**\n * ChannelConfigurationNotFoundException entity class.\n */\n export class ChannelConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.ChannelConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.ChannelConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['ChannelConfigurationNotFoundExceptionClass'] = ChannelConfigurationNotFoundExceptionClass;\n \n /**\n * PaymentConfigurationException entity class.\n */\n export class PaymentConfigurationExceptionClass\n extends CommerceExceptionClass\n implements Entities.PaymentConfigurationException {\n public PaymentConfigurationSdkErrors: string[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.PaymentConfigurationSdkErrors = undefined;\n if (odataObject.PaymentConfigurationSdkErrors) {\n this.PaymentConfigurationSdkErrors = [];\n for (var i = 0; i < odataObject.PaymentConfigurationSdkErrors.length; i++) {\n if (odataObject.PaymentConfigurationSdkErrors[i] != null) {\n this.PaymentConfigurationSdkErrors[i] = \n odataObject.PaymentConfigurationSdkErrors[i];\n } else {\n this.PaymentConfigurationSdkErrors[i] = undefined;\n }\n }\n }\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.PaymentConfigurationException\";\n \n }\n }\n entityDictionary['PaymentConfigurationExceptionClass'] = PaymentConfigurationExceptionClass;\n \n /**\n * SecretConfigurationNotFoundException entity class.\n */\n export class SecretConfigurationNotFoundExceptionClass\n extends CommerceExceptionClass\n implements Entities.SecretConfigurationNotFoundException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Commerce.Runtime.SecretConfigurationNotFoundException\";\n \n }\n }\n entityDictionary['SecretConfigurationNotFoundExceptionClass'] = SecretConfigurationNotFoundExceptionClass;\n \n /**\n * TenderTypePolicy entity class.\n */\n export class TenderTypePolicyClass implements Entities.TenderTypePolicy {\n public OriginalTenderType: string;\n public AllowedReturnTenderTypes: string[];\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.OriginalTenderType = \n odataObject.OriginalTenderType;\n \n this.AllowedReturnTenderTypes = undefined;\n if (odataObject.AllowedReturnTenderTypes) {\n this.AllowedReturnTenderTypes = [];\n for (var i = 0; i < odataObject.AllowedReturnTenderTypes.length; i++) {\n if (odataObject.AllowedReturnTenderTypes[i] != null) {\n this.AllowedReturnTenderTypes[i] = \n odataObject.AllowedReturnTenderTypes[i];\n } else {\n this.AllowedReturnTenderTypes[i] = undefined;\n }\n }\n }\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['TenderTypePolicyClass'] = TenderTypePolicyClass;\n \n /**\n * AccountStatementRequest entity class.\n */\n export class AccountStatementRequestClass implements Entities.AccountStatementRequest {\n public RequestedUserId: string;\n public IsForFullOrganization: boolean;\n public FromDate: Date;\n public ToDate: Date;\n public RequestingUserEmail: string;\n public DeliveryTypeValue: number;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.RequestedUserId = \n odataObject.RequestedUserId;\n \n this.IsForFullOrganization = \n odataObject.IsForFullOrganization;\n \n this.FromDate = \n (odataObject.FromDate instanceof Date) ? odataObject.FromDate\n : (odataObject.FromDate != null) ? jsonLightReadStringPropertyValue(odataObject.FromDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ToDate = \n (odataObject.ToDate instanceof Date) ? odataObject.ToDate\n : (odataObject.ToDate != null) ? jsonLightReadStringPropertyValue(odataObject.ToDate, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.RequestingUserEmail = \n odataObject.RequestingUserEmail;\n \n this.DeliveryTypeValue = \n odataObject.DeliveryTypeValue;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['AccountStatementRequestClass'] = AccountStatementRequestClass;\n \n /**\n * BusinessPartnerOperationRequestDetails entity class.\n */\n export class BusinessPartnerOperationRequestDetailsClass implements Entities.BusinessPartnerOperationRequestDetails {\n public InvoiceId: string;\n public AccountStatementStartDateTime: Date;\n public AccountStatementEndDateTime: Date;\n public ExtensionProperties: Entities.CommerceProperty[];\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.InvoiceId = \n odataObject.InvoiceId;\n \n this.AccountStatementStartDateTime = \n (odataObject.AccountStatementStartDateTime instanceof Date) ? odataObject.AccountStatementStartDateTime\n : (odataObject.AccountStatementStartDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementStartDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.AccountStatementEndDateTime = \n (odataObject.AccountStatementEndDateTime instanceof Date) ? odataObject.AccountStatementEndDateTime\n : (odataObject.AccountStatementEndDateTime != null) ? jsonLightReadStringPropertyValue(odataObject.AccountStatementEndDateTime, \"Edm.DateTimeOffset\", false) : undefined;\n \n this.ExtensionProperties = undefined;\n if (odataObject.ExtensionProperties) {\n this.ExtensionProperties = [];\n for (var i = 0; i < odataObject.ExtensionProperties.length; i++) {\n if (odataObject.ExtensionProperties[i] != null) {\n if (odataObject.ExtensionProperties[i]['@odata.type'] != null) {\n var className: string = odataObject.ExtensionProperties[i]['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.ExtensionProperties[i] = new entityDictionary[className](odataObject.ExtensionProperties[i])\n }\n } else {\n this.ExtensionProperties[i] = new CommercePropertyClass(odataObject.ExtensionProperties[i]);\n }\n } else {\n this.ExtensionProperties[i] = undefined;\n }\n }\n }\n \n }\n }\n entityDictionary['BusinessPartnerOperationRequestDetailsClass'] = BusinessPartnerOperationRequestDetailsClass;\n \n /**\n * TaskManagementError entity class.\n */\n export class TaskManagementErrorClass implements Entities.TaskManagementError {\n public ErrorResourceId: string;\n public LocalizedMessage: string;\n public TaskId: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n this.ErrorResourceId = \n odataObject.ErrorResourceId;\n \n this.LocalizedMessage = \n odataObject.LocalizedMessage;\n \n this.TaskId = \n odataObject.TaskId;\n \n }\n }\n entityDictionary['TaskManagementErrorClass'] = TaskManagementErrorClass;\n \n /**\n * LineDataValidationFailure entity class.\n */\n export class LineDataValidationFailureClass implements Entities.LineDataValidationFailure {\n public DataValidationFailure: Entities.DataValidationFailure;\n public LineIndex: number;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n if (odataObject.DataValidationFailure == null) {\n this.DataValidationFailure = undefined;\n } else if (odataObject.DataValidationFailure['@odata.type'] == null) {\n this.DataValidationFailure = new DataValidationFailureClass(odataObject.DataValidationFailure);\n } else {\n var className: string = odataObject.DataValidationFailure['@odata.type'];\n className = className.substr(className.lastIndexOf('.') + 1).concat(\"Class\");\n if (entityDictionary[className]) {\n this.DataValidationFailure = new entityDictionary[className](odataObject.DataValidationFailure)\n }\n }\n\n \n this.LineIndex = \n odataObject.LineIndex;\n \n }\n }\n entityDictionary['LineDataValidationFailureClass'] = LineDataValidationFailureClass;\n \n /**\n * WrongEndpointException entity class.\n */\n export class WrongEndpointExceptionClass\n extends CommerceExceptionClass\n implements Entities.WrongEndpointException {\n public RedirectUri: string;\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this.RedirectUri = \n odataObject.RedirectUri;\n \n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.WrongEndpointException\";\n \n }\n }\n entityDictionary['WrongEndpointExceptionClass'] = WrongEndpointExceptionClass;\n \n /**\n * BadRequestException entity class.\n */\n export class BadRequestExceptionClass\n extends CommerceExceptionClass\n implements Entities.BadRequestException {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n super(odataObject);odataObject = odataObject || {};\n this[\"@odata.type\"] = \"#Microsoft.Dynamics.Retail.RetailServerLibrary.BadRequestException\";\n \n }\n }\n entityDictionary['BadRequestExceptionClass'] = BadRequestExceptionClass;\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity class.\n */\n export class KeyValuePair_2OfString_ProductBehaviorClass implements Entities.KeyValuePair_2OfString_ProductBehavior {\n \n // Navigation properties names\n \n /**\n * Construct an object from odata response.\n *\n * @param {any} odataObject The odata result object.\n */\n constructor(odataObject?: any) {\n odataObject = odataObject || {};\n }\n }\n entityDictionary['KeyValuePair_2OfString_ProductBehaviorClass'] = KeyValuePair_2OfString_ProductBehaviorClass;\n ","\n \n /**\n * The matched retail server api version.\n */\n export const ApiVersion: string = \"7.3\";\n \n export const EntityIdentifier = {\n \n 'Category' : {\n 'Key': \n 'RecordId'\n },\n 'Cart' : {\n 'Key': \n 'Id'\n },\n 'Customer' : {\n 'Key': \n 'AccountNumber'\n },\n 'Employee' : {\n 'Key': \n 'StaffId'\n },\n 'Checklist' : {\n 'Key': \n 'RecordId'\n },\n 'SalesOrder' : {\n 'Key': \n 'Id'\n },\n 'Shift' : {\n 'Key': [ \n 'ShiftId',\n 'TerminalId' ] \n },\n 'StockCountJournal' : {\n 'Key': \n 'JournalId'\n },\n 'OrgUnit' : {\n 'Key': \n 'OrgUnitNumber'\n },\n 'Product' : {\n 'Key': \n 'RecordId'\n },\n 'ProductCatalog' : {\n 'Key': \n 'RecordId'\n },\n 'CommerceList' : {\n 'Key': \n 'Id'\n },\n 'ProductList' : {\n 'Key': \n 'Id'\n },\n 'Recommendation' : {\n 'Key': \n 'Id'\n },\n 'TransferOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PurchaseOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PickingList' : {\n 'Key': \n 'OrderId'\n },\n 'Warehouse' : {\n 'Key': \n 'InventLocation'\n },\n 'ScanResult' : {\n 'Key': \n 'ScannedText'\n },\n 'SalesOrderContextualOperationsMap' : {\n 'Key': \n 'Id'\n },\n 'InventoryInboundOutboundDocument' : {\n 'Key': \n 'WorkDocumentId'\n },\n 'BusinessPartner' : {\n 'Key': \n 'BusinessPartnerId'\n },\n 'BusinessPartnerUser' : {\n 'Key': \n 'B2BUserId'\n },\n 'SuspendedCart' : {\n 'Key': \n 'Id'\n } \n };\n \n \n /**\n * AutoExitMethodType enum type.\n */\n export enum AutoExitMethodType {\n \n /**\n * The Logoff member.\n */\n Logoff = 0,\n \n /**\n * The Lock member.\n */\n Lock = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CardType enum type.\n */\n export enum CardType {\n \n /**\n * The InternationalCreditCard member.\n */\n InternationalCreditCard = 0,\n \n /**\n * The InternationalDebitCard member.\n */\n InternationalDebitCard = 1,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 2,\n \n /**\n * The CorporateCard member.\n */\n CorporateCard = 3,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 4,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 5,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 6,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 7,\n \n /**\n * The Check member.\n */\n Check = 8,\n \n /**\n * The Wallet member.\n */\n Wallet = 9,\n \n /**\n * The FoodCard member.\n */\n FoodCard = 21,\n \n /**\n * The MealCard member.\n */\n MealCard = 22,\n \n /**\n * The FuelCard member.\n */\n FuelCard = 23,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * PublishingAction enum type.\n */\n export enum PublishingAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Publish member.\n */\n Publish = 1,\n \n /**\n * The Delete member.\n */\n Delete = 2,\n \n /**\n * The Expire member.\n */\n Expire = 3\n }\n \n /**\n * ListingPublishingActionStatus enum type.\n */\n export enum ListingPublishingActionStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ready member.\n */\n Ready = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Done member.\n */\n Done = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * OnlineChannelPublishStatusType enum type.\n */\n export enum OnlineChannelPublishStatusType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Draft member.\n */\n Draft = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Published member.\n */\n Published = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * ReceiptTransactionType enum type.\n */\n export enum ReceiptTransactionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The Return member.\n */\n Return = 2,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 6,\n \n /**\n * The Quote member.\n */\n Quote = 7,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 9\n }\n \n /**\n * EmployeePriceOverrideType enum type.\n */\n export enum EmployeePriceOverrideType {\n \n /**\n * The HigherAndLower member.\n */\n HigherAndLower = 0,\n \n /**\n * The HigherOnly member.\n */\n HigherOnly = 1,\n \n /**\n * The LowerOnly member.\n */\n LowerOnly = 2,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 3\n }\n \n /**\n * KeyInPriceRestriction enum type.\n */\n export enum KeyInPriceRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NewPrice member.\n */\n NewPrice = 1,\n \n /**\n * The HigherOrEqualPrice member.\n */\n HigherOrEqualPrice = 2,\n \n /**\n * The LowerOrEqualPrice member.\n */\n LowerOrEqualPrice = 3,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 4\n }\n \n /**\n * KeyInQuantityRestriction enum type.\n */\n export enum KeyInQuantityRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Required member.\n */\n Required = 1,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 2\n }\n \n /**\n * ProductDimensionType enum type.\n */\n export enum ProductDimensionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Color member.\n */\n Color = 1,\n \n /**\n * The Configuration member.\n */\n Configuration = 2,\n \n /**\n * The Size member.\n */\n Size = 3,\n \n /**\n * The Style member.\n */\n Style = 4\n }\n \n /**\n * ProductType enum type.\n */\n export enum ProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The KitMaster member.\n */\n KitMaster = 1,\n \n /**\n * The KitVariant member.\n */\n KitVariant = 2,\n \n /**\n * The Master member.\n */\n Master = 3,\n \n /**\n * The Standalone member.\n */\n Standalone = 4,\n \n /**\n * The Variant member.\n */\n Variant = 5\n }\n \n /**\n * NumberSequenceSeedType enum type.\n */\n export enum NumberSequenceSeedType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceiptDefault member.\n */\n ReceiptDefault = 1,\n \n /**\n * The ReceiptSale member.\n */\n ReceiptSale = 2,\n \n /**\n * The ReceiptReturn member.\n */\n ReceiptReturn = 3,\n \n /**\n * The ReceiptSalesOrder member.\n */\n ReceiptSalesOrder = 4,\n \n /**\n * The ReceiptSalesInvoice member.\n */\n ReceiptSalesInvoice = 5,\n \n /**\n * The ReceiptPayment member.\n */\n ReceiptPayment = 6,\n \n /**\n * The BatchId member.\n */\n BatchId = 7,\n \n /**\n * The TransactionId member.\n */\n TransactionId = 8,\n \n /**\n * The ReceiptCustomerSalesOrder member.\n */\n ReceiptCustomerSalesOrder = 10,\n \n /**\n * The ReceiptCustomerQuote member.\n */\n ReceiptCustomerQuote = 11,\n \n /**\n * The ReceiptSuspendedTransaction member.\n */\n ReceiptSuspendedTransaction = 22\n }\n \n /**\n * ReasonCodeSourceType enum type.\n */\n export enum ReasonCodeSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The AddSalesperson member.\n */\n AddSalesperson = 1,\n \n /**\n * The EndOfTransaction member.\n */\n EndOfTransaction = 2,\n \n /**\n * The ItemDiscount member.\n */\n ItemDiscount = 3,\n \n /**\n * The ItemNotOnFile member.\n */\n ItemNotOnFile = 4,\n \n /**\n * The LineItemTaxChange member.\n */\n LineItemTaxChange = 5,\n \n /**\n * The Markup member.\n */\n Markup = 6,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 7,\n \n /**\n * The NfcEContingencyModeEnabled member.\n */\n NfcEContingencyModeEnabled = 8,\n \n /**\n * The NfcEVoided member.\n */\n NfcEVoided = 9,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 10,\n \n /**\n * The OverridePrice member.\n */\n OverridePrice = 11,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 12,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 13,\n \n /**\n * The SerialNumber member.\n */\n SerialNumber = 14,\n \n /**\n * The StartOfTransaction member.\n */\n StartOfTransaction = 15,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 16,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 17,\n \n /**\n * The TransactionTaxChange member.\n */\n TransactionTaxChange = 18,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 19,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 20,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 21,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 22,\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 23\n }\n \n /**\n * TriggerFunctionType enum type.\n */\n export enum TriggerFunctionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The InfoCode member.\n */\n InfoCode = 2\n }\n \n /**\n * QueryType enum type.\n */\n export enum QueryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NameAndDescription member.\n */\n NameAndDescription = 1,\n \n /**\n * The AotObject member.\n */\n AotObject = 2\n }\n \n /**\n * ChangeAction enum type.\n */\n export enum ChangeAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Insert member.\n */\n Insert = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Delete member.\n */\n Delete = 3\n }\n \n /**\n * PeriodicDiscountOfferType enum type.\n */\n export enum PeriodicDiscountOfferType {\n \n /**\n * The MultipleBuy member.\n */\n MultipleBuy = 0,\n \n /**\n * The MixAndMatch member.\n */\n MixAndMatch = 1,\n \n /**\n * The Offer member.\n */\n Offer = 2,\n \n /**\n * The Promotion member.\n */\n Promotion = 3,\n \n /**\n * The Threshold member.\n */\n Threshold = 4,\n \n /**\n * The LeastExpensiveFavorRetailer member.\n */\n LeastExpensiveFavorRetailer = 5,\n \n /**\n * The OfferLineQuantityLimit member.\n */\n OfferLineQuantityLimit = 6,\n \n /**\n * The ShippingThreshold member.\n */\n ShippingThreshold = 7\n }\n \n /**\n * SearchFilterType enum type.\n */\n export enum SearchFilterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Text member.\n */\n Text = 1\n }\n \n /**\n * InfoCodeActivity enum type.\n */\n export enum InfoCodeActivity {\n \n /**\n * The Transaction member.\n */\n Transaction = 0,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 1\n }\n \n /**\n * SrsReportFileFormat enum type.\n */\n export enum SrsReportFileFormat {\n \n /**\n * The CSV member.\n */\n CSV = 0,\n \n /**\n * The Excel member.\n */\n Excel = 1,\n \n /**\n * The HTML4_0 member.\n */\n HTML4_0 = 2,\n \n /**\n * The Image member.\n */\n Image = 3,\n \n /**\n * The MHTML member.\n */\n MHTML = 4,\n \n /**\n * The PDF member.\n */\n PDF = 5,\n \n /**\n * The XML member.\n */\n XML = 6\n }\n \n /**\n * ShiftReconciliationLineStatus enum type.\n */\n export enum ShiftReconciliationLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Reconciled member.\n */\n Reconciled = 2,\n \n /**\n * The Closed member.\n */\n Closed = 3\n }\n \n /**\n * ProductSearchServiceType enum type.\n */\n export enum ProductSearchServiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ChannelDatabase member.\n */\n ChannelDatabase = 1,\n \n /**\n * The CommerceAzureSearchService member.\n */\n CommerceAzureSearchService = 2,\n \n /**\n * The CommerceBingSearchService member.\n */\n CommerceBingSearchService = 3\n }\n \n /**\n * SearchSuggestionType enum type.\n */\n export enum SearchSuggestionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Keyword member.\n */\n Keyword = 1,\n \n /**\n * The Product member.\n */\n Product = 2,\n \n /**\n * The ScopedCategory member.\n */\n ScopedCategory = 4,\n \n /**\n * The Category member.\n */\n Category = 8,\n \n /**\n * The Customer member.\n */\n Customer = 16\n }\n \n /**\n * SalesStatus enum type.\n */\n export enum SalesStatus {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Processing member.\n */\n Processing = 2,\n \n /**\n * The Delivered member.\n */\n Delivered = 3,\n \n /**\n * The Invoiced member.\n */\n Invoiced = 4,\n \n /**\n * The Confirmed member.\n */\n Confirmed = 5,\n \n /**\n * The Sent member.\n */\n Sent = 6,\n \n /**\n * The Canceled member.\n */\n Canceled = 7,\n \n /**\n * The Lost member.\n */\n Lost = 8\n }\n \n /**\n * EFTType enum type.\n */\n export enum EFTType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The PaymentSDK member.\n */\n PaymentSDK = 2,\n \n /**\n * The DynamicsOnline member.\n */\n DynamicsOnline = 3\n }\n \n /**\n * FilterDeliveryModeOption enum type.\n */\n export enum FilterDeliveryModeOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The FilterOutNonCarrierDeliveryMode member.\n */\n FilterOutNonCarrierDeliveryMode = 1,\n \n /**\n * The DoNotFilterByChannel member.\n */\n DoNotFilterByChannel = 2,\n \n /**\n * The FilterOutNonPickupDeliveryMode member.\n */\n FilterOutNonPickupDeliveryMode = 4\n }\n \n /**\n * InventoryDocumentLineOperationResultMode enum type.\n */\n export enum InventoryDocumentLineOperationResultMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NoLines member.\n */\n NoLines = 1,\n \n /**\n * The AllLines member.\n */\n AllLines = 2\n }\n \n /**\n * InventoryDocumentStatus enum type.\n */\n export enum InventoryDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Paused member.\n */\n Paused = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Committed member.\n */\n Committed = 3,\n \n /**\n * The ProcessSucceeded member.\n */\n ProcessSucceeded = 4,\n \n /**\n * The ProcessFailed member.\n */\n ProcessFailed = 5\n }\n \n /**\n * InventoryDocumentUpdateLinesActionType enum type.\n */\n export enum InventoryDocumentUpdateLinesActionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ApplyQuantity member.\n */\n ApplyQuantity = 1,\n \n /**\n * The ApplyMaximumQuantity member.\n */\n ApplyMaximumQuantity = 2\n }\n \n /**\n * InventoryInboundOutboundDocumentOperationType enum type.\n */\n export enum InventoryInboundOutboundDocumentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceivePurchaseOrder member.\n */\n ReceivePurchaseOrder = 1,\n \n /**\n * The ReceiveTransferOrder member.\n */\n ReceiveTransferOrder = 2,\n \n /**\n * The ShipTransferOrder member.\n */\n ShipTransferOrder = 3,\n \n /**\n * The CreateTransferOrder member.\n */\n CreateTransferOrder = 4,\n \n /**\n * The SaveInventoryAdjustment member.\n */\n SaveInventoryAdjustment = 5,\n \n /**\n * The PostInventoryAdjustment member.\n */\n PostInventoryAdjustment = 6,\n \n /**\n * The PostInventoryTransfer member.\n */\n PostInventoryTransfer = 7,\n \n /**\n * The SaveStockCounting member.\n */\n SaveStockCounting = 8,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 9,\n \n /**\n * The CreateStockCounting member.\n */\n CreateStockCounting = 10\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentStatus enum type.\n */\n export enum InventoryInboundOutboundSourceDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Requested member.\n */\n Requested = 1,\n \n /**\n * The Shipped member.\n */\n Shipped = 2,\n \n /**\n * The PartiallyShipped member.\n */\n PartiallyShipped = 3,\n \n /**\n * The Received member.\n */\n Received = 4,\n \n /**\n * The PartiallyReceived member.\n */\n PartiallyReceived = 5,\n \n /**\n * The Cancelled member.\n */\n Cancelled = 6,\n \n /**\n * The Posted member.\n */\n Posted = 8,\n \n /**\n * The Committed member.\n */\n Committed = 9\n }\n \n /**\n * InventorySourceDocumentType enum type.\n */\n export enum InventorySourceDocumentType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 2,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 3,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 4,\n \n /**\n * The StockCounting member.\n */\n StockCounting = 5\n }\n \n /**\n * InventoryInboundOutboundDocumentState enum type.\n */\n export enum InventoryInboundOutboundDocumentState {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Complete member.\n */\n Complete = 2,\n \n /**\n * The Draft member.\n */\n Draft = 3\n }\n \n /**\n * ReceiptNumberResetType enum type.\n */\n export enum ReceiptNumberResetType {\n \n /**\n * The SingleTime member.\n */\n SingleTime = 0,\n \n /**\n * The YearlyRecurrence member.\n */\n YearlyRecurrence = 1\n }\n \n /**\n * PeriodUnit enum type.\n */\n export enum PeriodUnit {\n \n /**\n * The Day member.\n */\n Day = 0,\n \n /**\n * The Week member.\n */\n Week = 1,\n \n /**\n * The Month member.\n */\n Month = 2,\n \n /**\n * The Year member.\n */\n Year = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * WarrantyPriceRangeBaseType enum type.\n */\n export enum WarrantyPriceRangeBaseType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The SellingPrice member.\n */\n SellingPrice = 2\n }\n \n /**\n * LogOnKeyboardType enum type.\n */\n export enum LogOnKeyboardType {\n \n /**\n * The OSKeyboard member.\n */\n OSKeyboard = 0,\n \n /**\n * The Numpad member.\n */\n Numpad = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnLayoutType enum type.\n */\n export enum LogOnLayoutType {\n \n /**\n * The Centered member.\n */\n Centered = 0,\n \n /**\n * The Right member.\n */\n Right = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryModeTypeFilter enum type.\n */\n export enum DeliveryModeTypeFilter {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shipping member.\n */\n Shipping = 1,\n \n /**\n * The Pickup member.\n */\n Pickup = 2\n }\n \n /**\n * InventoryDocumentValidationResultSeverity enum type.\n */\n export enum InventoryDocumentValidationResultSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Informational member.\n */\n Informational = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * InventoryDocumentOverreceivingErrors enum type.\n */\n export enum InventoryDocumentOverreceivingErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The QuantityExceededAllowed member.\n */\n QuantityExceededAllowed,\n \n /**\n * The QuantityExceededAllowedWithinOverreceivingTolerance member.\n */\n QuantityExceededAllowedWithinOverreceivingTolerance,\n \n /**\n * The QuantityExceededOverreceivingTolerance member.\n */\n QuantityExceededOverreceivingTolerance\n }\n \n /**\n * InventoryDocumentSerialNumberErrors enum type.\n */\n export enum InventoryDocumentSerialNumberErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RequiredSerialNumberNotProvided member.\n */\n RequiredSerialNumberNotProvided,\n \n /**\n * The DuplicateSerialNumberIsNotAllowed member.\n */\n DuplicateSerialNumberIsNotAllowed,\n \n /**\n * The RequiredSerialNumberValidationNotProvided member.\n */\n RequiredSerialNumberValidationNotProvided,\n \n /**\n * The SerialNumberNotAvailable member.\n */\n SerialNumberNotAvailable\n }\n \n /**\n * EmployeeIdentityType enum type.\n */\n export enum EmployeeIdentityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CommerceIdentity member.\n */\n CommerceIdentity = 1,\n \n /**\n * The AadIdentity member.\n */\n AadIdentity = 2\n }\n \n /**\n * FulfillmentOperationType enum type.\n */\n export enum FulfillmentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pick member.\n */\n Pick = 1,\n \n /**\n * The Pack member.\n */\n Pack = 2,\n \n /**\n * The Ship member.\n */\n Ship = 3,\n \n /**\n * The Pickup member.\n */\n Pickup = 4\n }\n \n /**\n * PaymentStatus enum type.\n */\n export enum PaymentStatus {\n \n /**\n * The NotSubmitted member.\n */\n NotSubmitted = 0,\n \n /**\n * The Authorized member.\n */\n Authorized = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Posted member.\n */\n Posted = 3,\n \n /**\n * The Paid member.\n */\n Paid = 4\n }\n \n /**\n * UserAlertSourceType enum type.\n */\n export enum UserAlertSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Inventory_SerialNumberMissing member.\n */\n Inventory_SerialNumberMissing = 1,\n \n /**\n * The Inventory_SerialNumberInsufficientStock member.\n */\n Inventory_SerialNumberInsufficientStock = 2\n }\n \n /**\n * CustomerOrderMode enum type.\n */\n export enum CustomerOrderMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerOrderCreateOrEdit member.\n */\n CustomerOrderCreateOrEdit = 1,\n \n /**\n * The OrderRecalled member.\n */\n OrderRecalled = 2,\n \n /**\n * The Pickup member.\n */\n Pickup = 3,\n \n /**\n * The Return member.\n */\n Return = 4,\n \n /**\n * The Cancellation member.\n */\n Cancellation = 5,\n \n /**\n * The QuoteCreateOrEdit member.\n */\n QuoteCreateOrEdit = 6\n }\n \n /**\n * InventoryValidationErrors enum type.\n */\n export enum InventoryValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload\n }\n \n /**\n * InventoryJournalPosAdjustmentType enum type.\n */\n export enum InventoryJournalPosAdjustmentType {\n \n /**\n * The In member.\n */\n In = 0,\n \n /**\n * The Out member.\n */\n Out = 1\n }\n \n /**\n * ProductDataValidationErrors enum type.\n */\n export enum ProductDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported\n }\n \n /**\n * AddressOperationType enum type.\n */\n export enum AddressOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Create member.\n */\n Create = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Deactivate member.\n */\n Deactivate = 3\n }\n \n /**\n * AddressType enum type.\n */\n export enum AddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Invoice member.\n */\n Invoice = 1,\n \n /**\n * The Delivery member.\n */\n Delivery = 2,\n \n /**\n * The AltDlv member.\n */\n AltDlv = 3,\n \n /**\n * The SWIFT member.\n */\n SWIFT = 4,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The Service member.\n */\n Service = 6,\n \n /**\n * The Home member.\n */\n Home = 7,\n \n /**\n * The Other member.\n */\n Other = 8,\n \n /**\n * The Business member.\n */\n Business = 9,\n \n /**\n * The RemitTo member.\n */\n RemitTo = 10,\n \n /**\n * The ShipCarrierThirdPartyShipping member.\n */\n ShipCarrierThirdPartyShipping = 11,\n \n /**\n * The Statement member.\n */\n Statement = 12,\n \n /**\n * The FixedAsset member.\n */\n FixedAsset = 15,\n \n /**\n * The Onetime member.\n */\n Onetime = 16,\n \n /**\n * The Recruit member.\n */\n Recruit = 17,\n \n /**\n * The SMS member.\n */\n SMS = 18,\n \n /**\n * The Lading_W member.\n */\n Lading_W = 101,\n \n /**\n * The Unlading_W member.\n */\n Unlading_W = 102,\n \n /**\n * The Consignment_IN member.\n */\n Consignment_IN = 103\n }\n \n /**\n * AttributeDataType enum type.\n */\n export enum AttributeDataType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The TrueFalse member.\n */\n TrueFalse = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * BarcodeEntryMethodType enum type.\n */\n export enum BarcodeEntryMethodType {\n \n /**\n * The SingleScanned member.\n */\n SingleScanned = 0,\n \n /**\n * The MultipleScanned member.\n */\n MultipleScanned = 1,\n \n /**\n * The ManuallyEntered member.\n */\n ManuallyEntered = 2,\n \n /**\n * The Selected member.\n */\n Selected = 3\n }\n \n /**\n * BarcodeMaskType enum type.\n */\n export enum BarcodeMaskType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Customer member.\n */\n Customer = 2,\n \n /**\n * The Employee member.\n */\n Employee = 3,\n \n /**\n * The Coupon member.\n */\n Coupon = 4,\n \n /**\n * The DataEntry member.\n */\n DataEntry = 5,\n \n /**\n * The Salesperson member.\n */\n Salesperson = 6,\n \n /**\n * The Pharmacy member.\n */\n Pharmacy = 7,\n \n /**\n * The DiscountCode member.\n */\n DiscountCode = 8,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 9,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 10\n }\n \n /**\n * TransactionStatus enum type.\n */\n export enum TransactionStatus {\n \n /**\n * The Normal member.\n */\n Normal = 0,\n \n /**\n * The Voided member.\n */\n Voided = 1,\n \n /**\n * The Posted member.\n */\n Posted = 2,\n \n /**\n * The Concluded member.\n */\n Concluded = 3,\n \n /**\n * The Canceled member.\n */\n Canceled = 4,\n \n /**\n * The OnHold member.\n */\n OnHold = 5,\n \n /**\n * The Training member.\n */\n Training = 6,\n \n /**\n * The Aborted member.\n */\n Aborted = 7\n }\n \n /**\n * GiftCardOperationType enum type.\n */\n export enum GiftCardOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Issue member.\n */\n Issue = 1,\n \n /**\n * The AddTo member.\n */\n AddTo = 2,\n \n /**\n * The CashOut member.\n */\n CashOut = 3\n }\n \n /**\n * RetailGiftCardType enum type.\n */\n export enum RetailGiftCardType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The InternalGiftCard member.\n */\n InternalGiftCard = 1,\n \n /**\n * The ExternalGiftCard member.\n */\n ExternalGiftCard = 2\n }\n \n /**\n * PriceMethod enum type.\n */\n export enum PriceMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Fixed member.\n */\n Fixed = 1,\n \n /**\n * The AmountOff member.\n */\n AmountOff = 2,\n \n /**\n * The PercentOff member.\n */\n PercentOff = 3\n }\n \n /**\n * ConcurrencyMode enum type.\n */\n export enum ConcurrencyMode {\n \n /**\n * The Exclusive member.\n */\n Exclusive = 0,\n \n /**\n * The BestPrice member.\n */\n BestPrice = 1,\n \n /**\n * The Compounded member.\n */\n Compounded = 2,\n \n /**\n * The AlwaysApply member.\n */\n AlwaysApply = 3,\n \n /**\n * The HighestCombinedPricingPriority member.\n */\n HighestCombinedPricingPriority = 4\n }\n \n /**\n * SalesAgreementLineType enum type.\n */\n export enum SalesAgreementLineType {\n \n /**\n * The ProductQuantity member.\n */\n ProductQuantity = 0,\n \n /**\n * The ProductVolume member.\n */\n ProductVolume = 1,\n \n /**\n * The ProductCategory member.\n */\n ProductCategory = 2,\n \n /**\n * The ProductRootCategory member.\n */\n ProductRootCategory = 3\n }\n \n /**\n * DiscountLineType enum type.\n */\n export enum DiscountLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerDiscount member.\n */\n CustomerDiscount = 1,\n \n /**\n * The PeriodicDiscount member.\n */\n PeriodicDiscount = 2,\n \n /**\n * The ManualDiscount member.\n */\n ManualDiscount = 3,\n \n /**\n * The LoyaltyDiscount member.\n */\n LoyaltyDiscount = 4,\n \n /**\n * The TenderTypeDiscount member.\n */\n TenderTypeDiscount = 5\n }\n \n /**\n * ManualDiscountType enum type.\n */\n export enum ManualDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 1,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 2,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 3,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 4\n }\n \n /**\n * CustomerDiscountType enum type.\n */\n export enum CustomerDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscount member.\n */\n LineDiscount = 1,\n \n /**\n * The MultilineDiscount member.\n */\n MultilineDiscount = 2,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 3\n }\n \n /**\n * ReasonCodeInputType enum type.\n */\n export enum ReasonCodeInputType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SubCode member.\n */\n SubCode = 1,\n \n /**\n * The Date member.\n */\n Date = 2,\n \n /**\n * The Numeric member.\n */\n Numeric = 3,\n \n /**\n * The Item member.\n */\n Item = 4,\n \n /**\n * The Customer member.\n */\n Customer = 5,\n \n /**\n * The Staff member.\n */\n Staff = 6,\n \n /**\n * The Text member.\n */\n Text = 9,\n \n /**\n * The SubCodeButtons member.\n */\n SubCodeButtons = 10,\n \n /**\n * The AgeLimit member.\n */\n AgeLimit = 11,\n \n /**\n * The CompositeSubCodes member.\n */\n CompositeSubCodes = 12\n }\n \n /**\n * ReasonCodeLineType enum type.\n */\n export enum ReasonCodeLineType {\n \n /**\n * The Header member.\n */\n Header = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Payment member.\n */\n Payment = 2,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 3,\n \n /**\n * The NoSale member.\n */\n NoSale = 4,\n \n /**\n * The Affiliation member.\n */\n Affiliation = 5,\n \n /**\n * The Fiscal member.\n */\n Fiscal = 6\n }\n \n /**\n * ChargeModule enum type.\n */\n export enum ChargeModule {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Retail member.\n */\n Retail = 3\n }\n \n /**\n * ChargeType enum type.\n */\n export enum ChargeType {\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 0,\n \n /**\n * The PriceCharge member.\n */\n PriceCharge = 1,\n \n /**\n * The AutoCharge member.\n */\n AutoCharge = 2\n }\n \n /**\n * ChargeMethod enum type.\n */\n export enum ChargeMethod {\n \n /**\n * The Fixed member.\n */\n Fixed = 0,\n \n /**\n * The Pieces member.\n */\n Pieces = 1,\n \n /**\n * The Percent member.\n */\n Percent = 2,\n \n /**\n * The InterCompanyPercent member.\n */\n InterCompanyPercent = 3,\n \n /**\n * The External member.\n */\n External = 4,\n \n /**\n * The Proportional member.\n */\n Proportional = 5\n }\n \n /**\n * CashType enum type.\n */\n export enum CashType {\n \n /**\n * The Coin member.\n */\n Coin = 0,\n \n /**\n * The Note member.\n */\n Note = 1\n }\n \n /**\n * IncomeExpenseAccountType enum type.\n */\n export enum IncomeExpenseAccountType {\n \n /**\n * The Income member.\n */\n Income = 0,\n \n /**\n * The Expense member.\n */\n Expense = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TenderLineStatus enum type.\n */\n export enum TenderLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotProcessed member.\n */\n NotProcessed = 1,\n \n /**\n * The PendingCommit member.\n */\n PendingCommit = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3,\n \n /**\n * The Committed member.\n */\n Committed = 4,\n \n /**\n * The Historical member.\n */\n Historical = 5\n }\n \n /**\n * TenderLineVoidStatus enum type.\n */\n export enum TenderLineVoidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NormalVoid member.\n */\n NormalVoid = 1,\n \n /**\n * The ForceVoided member.\n */\n ForceVoided = 2,\n \n /**\n * The ForceVoidReconciled member.\n */\n ForceVoidReconciled = 3\n }\n \n /**\n * PaymentProcessingType enum type.\n */\n export enum PaymentProcessingType {\n \n /**\n * The Immediate member.\n */\n Immediate = 0,\n \n /**\n * The Deferred member.\n */\n Deferred = 1,\n \n /**\n * The LinkedRefund member.\n */\n LinkedRefund = 2,\n \n /**\n * The Recalled member.\n */\n Recalled = 3\n }\n \n /**\n * CreditCardProcessorStatus enum type.\n */\n export enum CreditCardProcessorStatus {\n \n /**\n * The NA member.\n */\n NA = 0,\n \n /**\n * The Approved member.\n */\n Approved = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * ContactInformationType enum type.\n */\n export enum ContactInformationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5,\n \n /**\n * The CellularPhone member.\n */\n CellularPhone = 6\n }\n \n /**\n * CommerceEntityDataLevel enum type.\n */\n export enum CommerceEntityDataLevel {\n \n /**\n * The Identity member.\n */\n Identity = 0,\n \n /**\n * The Minimal member.\n */\n Minimal = 1,\n \n /**\n * The Standard member.\n */\n Standard = 2,\n \n /**\n * The Extended member.\n */\n Extended = 3,\n \n /**\n * The Complete member.\n */\n Complete = 4\n }\n \n /**\n * ProductPropertyType enum type.\n */\n export enum ProductPropertyType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The Boolean member.\n */\n Boolean = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * AttributeGroupType enum type.\n */\n export enum AttributeGroupType {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Specification member.\n */\n Specification = 1\n }\n \n /**\n * ProductSource enum type.\n */\n export enum ProductSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2\n }\n \n /**\n * RoundingMethod enum type.\n */\n export enum RoundingMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Nearest member.\n */\n Nearest = 1,\n \n /**\n * The Up member.\n */\n Up = 2,\n \n /**\n * The Down member.\n */\n Down = 3\n }\n \n /**\n * LineMultilineDiscountOnItem enum type.\n */\n export enum LineMultilineDiscountOnItem {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Line member.\n */\n Line = 1,\n \n /**\n * The Multiline member.\n */\n Multiline = 2,\n \n /**\n * The Both member.\n */\n Both = 3\n }\n \n /**\n * LoyaltyRewardPointEntryType enum type.\n */\n export enum LoyaltyRewardPointEntryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Earn member.\n */\n Earn = 1,\n \n /**\n * The Redeem member.\n */\n Redeem = 2,\n \n /**\n * The ReturnEarned member.\n */\n ReturnEarned = 3,\n \n /**\n * The Adjust member.\n */\n Adjust = 4,\n \n /**\n * The Refund member.\n */\n Refund = 5\n }\n \n /**\n * LoyaltyRewardPointType enum type.\n */\n export enum LoyaltyRewardPointType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quantity member.\n */\n Quantity = 1,\n \n /**\n * The Amount member.\n */\n Amount = 2\n }\n \n /**\n * TransactionType enum type.\n */\n export enum TransactionType {\n \n /**\n * The LogOff member.\n */\n LogOff = 0,\n \n /**\n * The LogOn member.\n */\n LogOn = 1,\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The Payment member.\n */\n Payment = 3,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 4,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 5,\n \n /**\n * The ChangeTender member.\n */\n ChangeTender = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 9,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 14,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 16,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 17,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 20,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 21,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 22,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 23,\n \n /**\n * The PrintX member.\n */\n PrintX = 24,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 25,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 28,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The ForceDeleteShift member.\n */\n ForceDeleteShift = 34,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 35,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CashManagementTransactionContext enum type.\n */\n export enum CashManagementTransactionContext {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Shift member.\n */\n Shift = 1,\n \n /**\n * The Safe member.\n */\n Safe = 2,\n \n /**\n * The Bank member.\n */\n Bank = 3\n }\n \n /**\n * CustomerTimelineItemEntityType enum type.\n */\n export enum CustomerTimelineItemEntityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Activity member.\n */\n Activity = 1,\n \n /**\n * The Note member.\n */\n Note = 2,\n \n /**\n * The UnifiedActivity member.\n */\n UnifiedActivity = 3\n }\n \n /**\n * EmployeePermissionsAllowPrintingReceiptCopy enum type.\n */\n export enum EmployeePermissionsAllowPrintingReceiptCopy {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The OnlyOnce member.\n */\n OnlyOnce = 1,\n \n /**\n * The OnlyOnceHqAvailable member.\n */\n OnlyOnceHqAvailable = 2,\n \n /**\n * The Never member.\n */\n Never = 3\n }\n \n /**\n * AddressFormatLineType enum type.\n */\n export enum AddressFormatLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ZipCode member.\n */\n ZipCode = 1,\n \n /**\n * The City member.\n */\n City = 2,\n \n /**\n * The County member.\n */\n County = 3,\n \n /**\n * The State member.\n */\n State = 4,\n \n /**\n * The CountryRegion member.\n */\n CountryRegion = 5,\n \n /**\n * The StreetName member.\n */\n StreetName = 6,\n \n /**\n * The District member.\n */\n District = 7,\n \n /**\n * The StreetNumber member.\n */\n StreetNumber = 8,\n \n /**\n * The BuildingCompliment member.\n */\n BuildingCompliment = 9,\n \n /**\n * The Postbox member.\n */\n Postbox = 10,\n \n /**\n * The House_RU member.\n */\n House_RU = 21,\n \n /**\n * The Flat_RU member.\n */\n Flat_RU = 22,\n \n /**\n * The CountryOKSMCode_RU member.\n */\n CountryOKSMCode_RU = 23\n }\n \n /**\n * StatementMethod enum type.\n */\n export enum StatementMethod {\n \n /**\n * The Staff member.\n */\n Staff = 0,\n \n /**\n * The PosTerminal member.\n */\n PosTerminal = 1,\n \n /**\n * The Total member.\n */\n Total = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * SalesRepPromptType enum type.\n */\n export enum SalesRepPromptType {\n \n /**\n * The NoPrompt member.\n */\n NoPrompt = 0,\n \n /**\n * The PromptOnCartCreation member.\n */\n PromptOnCartCreation = 1,\n \n /**\n * The PromptOnCartLineCreation member.\n */\n PromptOnCartLineCreation = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * RetailProductSearchType enum type.\n */\n export enum RetailProductSearchType {\n \n /**\n * The MatchAnySearchTerms member.\n */\n MatchAnySearchTerms = 0,\n \n /**\n * The MatchAllSearchTerms member.\n */\n MatchAllSearchTerms = 1\n }\n \n /**\n * RetailDenominationsToDisplay enum type.\n */\n export enum RetailDenominationsToDisplay {\n \n /**\n * The GreaterOrEqualToAmountDue member.\n */\n GreaterOrEqualToAmountDue = 0,\n \n /**\n * The AllDenominations member.\n */\n AllDenominations = 1\n }\n \n /**\n * EmployeeLogonType enum type.\n */\n export enum EmployeeLogonType {\n \n /**\n * The RetailIdentityProvider member.\n */\n RetailIdentityProvider = 0,\n \n /**\n * The AzureActiveDirectory member.\n */\n AzureActiveDirectory = 1,\n \n /**\n * The AzureActiveDirectorySingleSignOn member.\n */\n AzureActiveDirectorySingleSignOn = 2\n }\n \n /**\n * RetailCustomerSearchMode enum type.\n */\n export enum RetailCustomerSearchMode {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The Remote member.\n */\n Remote = 1\n }\n \n /**\n * RequirePaymentForFulfillment enum type.\n */\n export enum RequirePaymentForFulfillment {\n \n /**\n * The AllowPayLater member.\n */\n AllowPayLater = 0,\n \n /**\n * The CardRequired member.\n */\n CardRequired = 1\n }\n \n /**\n * CardNotPresentProcessingConfiguration enum type.\n */\n export enum CardNotPresentProcessingConfiguration {\n \n /**\n * The UseHardwareStation member.\n */\n UseHardwareStation = 0,\n \n /**\n * The UseCommerceEngine member.\n */\n UseCommerceEngine = 1\n }\n \n /**\n * ChangeDueBehavior enum type.\n */\n export enum ChangeDueBehavior {\n \n /**\n * The ShowAlways member.\n */\n ShowAlways = 0,\n \n /**\n * The SkipWhenZero member.\n */\n SkipWhenZero = 1\n }\n \n /**\n * FontSchemeType enum type.\n */\n export enum FontSchemeType {\n \n /**\n * The Standard member.\n */\n Standard = 0,\n \n /**\n * The Large member.\n */\n Large = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceActivationStatus enum type.\n */\n export enum DeviceActivationStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Activated member.\n */\n Activated = 1,\n \n /**\n * The Deactivated member.\n */\n Deactivated = 2,\n \n /**\n * The Disabled member.\n */\n Disabled = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceType enum type.\n */\n export enum DeviceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OPOS member.\n */\n OPOS = 1,\n \n /**\n * The WindowsPrinter member.\n */\n WindowsPrinter = 2,\n \n /**\n * The Network member.\n */\n Network = 3\n }\n \n /**\n * DualDisplayType enum type.\n */\n export enum DualDisplayType {\n \n /**\n * The Logo member.\n */\n Logo = 0,\n \n /**\n * The ImageRotator member.\n */\n ImageRotator = 1,\n \n /**\n * The WebBrowser member.\n */\n WebBrowser = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalRegisterType enum type.\n */\n export enum FiscalRegisterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Manufacturer member.\n */\n Manufacturer = 1\n }\n \n /**\n * PrinterLogotype enum type.\n */\n export enum PrinterLogotype {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Download member.\n */\n Download = 1,\n \n /**\n * The EpsonFlash member.\n */\n EpsonFlash = 2\n }\n \n /**\n * PrinterLogoAlignmentType enum type.\n */\n export enum PrinterLogoAlignmentType {\n \n /**\n * The Left member.\n */\n Left = 0,\n \n /**\n * The Center member.\n */\n Center = 1,\n \n /**\n * The Right member.\n */\n Right = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalIntegrationConnectorType enum type.\n */\n export enum FiscalIntegrationConnectorType {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The Internal member.\n */\n Internal = 2\n }\n \n /**\n * FiscalIntegrationConnectorLocation enum type.\n */\n export enum FiscalIntegrationConnectorLocation {\n \n /**\n * The HardwareStation member.\n */\n HardwareStation = 0,\n \n /**\n * The Pos member.\n */\n Pos = 1\n }\n \n /**\n * ReceiptType enum type.\n */\n export enum ReceiptType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The SalesReceipt member.\n */\n SalesReceipt = 1,\n \n /**\n * The CardReceiptForShop member.\n */\n CardReceiptForShop = 2,\n \n /**\n * The CardReceiptForCustomer member.\n */\n CardReceiptForCustomer = 3,\n \n /**\n * The CardReceiptForShopReturn member.\n */\n CardReceiptForShopReturn = 4,\n \n /**\n * The CardReceiptForCustomerReturn member.\n */\n CardReceiptForCustomerReturn = 5,\n \n /**\n * The CustomerAccountReceiptForShop member.\n */\n CustomerAccountReceiptForShop = 7,\n \n /**\n * The CustomerAccountReceiptForCustomer member.\n */\n CustomerAccountReceiptForCustomer = 8,\n \n /**\n * The CustomerAccountReceiptForShopReturn member.\n */\n CustomerAccountReceiptForShopReturn = 9,\n \n /**\n * The CustomerAccountReceiptForCustomerReturn member.\n */\n CustomerAccountReceiptForCustomerReturn = 10,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The SalesOrderReceipt member.\n */\n SalesOrderReceipt = 18,\n \n /**\n * The GiftCertificate member.\n */\n GiftCertificate = 20,\n \n /**\n * The QuotationReceipt member.\n */\n QuotationReceipt = 21,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 22,\n \n /**\n * The PickupReceipt member.\n */\n PickupReceipt = 23,\n \n /**\n * The XReport member.\n */\n XReport = 24,\n \n /**\n * The ZReport member.\n */\n ZReport = 25,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 26,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 27,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 28,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 29,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 30,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 31,\n \n /**\n * The OrderSummaryReceipt member.\n */\n OrderSummaryReceipt = 32,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 33,\n \n /**\n * The ReturnLabel member.\n */\n ReturnLabel = 34,\n \n /**\n * The EFDocDANFESimplified member.\n */\n EFDocDANFESimplified = 35,\n \n /**\n * The EFDocDANFEDetailed member.\n */\n EFDocDANFEDetailed = 36,\n \n /**\n * The PickingList member.\n */\n PickingList = 37,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 38,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 39,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 40,\n \n /**\n * The CardTerminationReceiptForShop member.\n */\n CardTerminationReceiptForShop = 41,\n \n /**\n * The CardTerminationReceiptForCustomer member.\n */\n CardTerminationReceiptForCustomer = 42,\n \n /**\n * The TransferPackingSlip member.\n */\n TransferPackingSlip = 43,\n \n /**\n * The EFDocDanfeModel55 member.\n */\n EFDocDanfeModel55 = 44,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 45,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 46,\n \n /**\n * The CfeDetailed member.\n */\n CfeDetailed = 47,\n \n /**\n * The CfeSimplified member.\n */\n CfeSimplified = 48,\n \n /**\n * The CfeCancelled member.\n */\n CfeCancelled = 49,\n \n /**\n * The CustomReceipt1 member.\n */\n CustomReceipt1 = 101,\n \n /**\n * The CustomReceipt2 member.\n */\n CustomReceipt2 = 102,\n \n /**\n * The CustomReceipt3 member.\n */\n CustomReceipt3 = 103,\n \n /**\n * The CustomReceipt4 member.\n */\n CustomReceipt4 = 104,\n \n /**\n * The CustomReceipt5 member.\n */\n CustomReceipt5 = 105,\n \n /**\n * The CustomReceipt6 member.\n */\n CustomReceipt6 = 106,\n \n /**\n * The CustomReceipt7 member.\n */\n CustomReceipt7 = 107,\n \n /**\n * The CustomReceipt8 member.\n */\n CustomReceipt8 = 108,\n \n /**\n * The CustomReceipt9 member.\n */\n CustomReceipt9 = 109,\n \n /**\n * The CustomReceipt10 member.\n */\n CustomReceipt10 = 110,\n \n /**\n * The CustomReceipt11 member.\n */\n CustomReceipt11 = 111,\n \n /**\n * The CustomReceipt12 member.\n */\n CustomReceipt12 = 112,\n \n /**\n * The CustomReceipt13 member.\n */\n CustomReceipt13 = 113,\n \n /**\n * The CustomReceipt14 member.\n */\n CustomReceipt14 = 114,\n \n /**\n * The CustomReceipt15 member.\n */\n CustomReceipt15 = 115,\n \n /**\n * The CustomReceipt16 member.\n */\n CustomReceipt16 = 116,\n \n /**\n * The CustomReceipt17 member.\n */\n CustomReceipt17 = 117,\n \n /**\n * The CustomReceipt18 member.\n */\n CustomReceipt18 = 118,\n \n /**\n * The CustomReceipt19 member.\n */\n CustomReceipt19 = 119,\n \n /**\n * The CustomReceipt20 member.\n */\n CustomReceipt20 = 120\n }\n \n /**\n * PrintBehavior enum type.\n */\n export enum PrintBehavior {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The Never member.\n */\n Never = 1,\n \n /**\n * The Prompt member.\n */\n Prompt = 2,\n \n /**\n * The AsRequired member.\n */\n AsRequired = 3\n }\n \n /**\n * DistanceUnit enum type.\n */\n export enum DistanceUnit {\n \n /**\n * The Miles member.\n */\n Miles = 0,\n \n /**\n * The Kilometers member.\n */\n Kilometers = 1\n }\n \n /**\n * StockCountStatus enum type.\n */\n export enum StockCountStatus {\n \n /**\n * The Unchanged member.\n */\n Unchanged = 0,\n \n /**\n * The PendingUpdate member.\n */\n PendingUpdate = 1\n }\n \n /**\n * RecommendedElementType enum type.\n */\n export enum RecommendedElementType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Product member.\n */\n Product = 1,\n \n /**\n * The Content member.\n */\n Content = 2\n }\n \n /**\n * CommerceListInvitationStatus enum type.\n */\n export enum CommerceListInvitationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Accepted member.\n */\n Accepted = 2\n }\n \n /**\n * CommerceListInvitationType enum type.\n */\n export enum CommerceListInvitationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Public member.\n */\n Public = 1,\n \n /**\n * The Email member.\n */\n Email = 2\n }\n \n /**\n * SearchLocation enum type.\n */\n export enum SearchLocation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2,\n \n /**\n * The All member.\n */\n All = 3\n }\n \n /**\n * OrderSearchType enum type.\n */\n export enum OrderSearchType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 1,\n \n /**\n * The SalesTransaction member.\n */\n SalesTransaction = 2,\n \n /**\n * The ConsolidateOrder member.\n */\n ConsolidateOrder = 3\n }\n \n /**\n * SalesTransactionType enum type.\n */\n export enum SalesTransactionType {\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 3,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CustomerRefinerSource enum type.\n */\n export enum CustomerRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchField member.\n */\n CustomerSearchField = 2\n }\n \n /**\n * PriceSourceType enum type.\n */\n export enum PriceSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The TradeAgreement member.\n */\n TradeAgreement = 2,\n \n /**\n * The PriceAdjustment member.\n */\n PriceAdjustment = 3,\n \n /**\n * The SalesAgreement member.\n */\n SalesAgreement = 4\n }\n \n /**\n * RetailAffiliationType enum type.\n */\n export enum RetailAffiliationType {\n \n /**\n * The General member.\n */\n General = 0,\n \n /**\n * The Loyalty member.\n */\n Loyalty = 1,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * InventoryDocumentLineOriginType enum type.\n */\n export enum InventoryDocumentLineOriginType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Headquarters member.\n */\n Headquarters = 1,\n \n /**\n * The Channel member.\n */\n Channel = 2\n }\n \n /**\n * InventorySerialNumberLineStatus enum type.\n */\n export enum InventorySerialNumberLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotRegistered member.\n */\n NotRegistered = 1,\n \n /**\n * The Registering member.\n */\n Registering = 2,\n \n /**\n * The Registered member.\n */\n Registered = 3\n }\n \n /**\n * InventorySourceDocumentLineStatus enum type.\n */\n export enum InventorySourceDocumentLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Deleted member.\n */\n Deleted = 1,\n \n /**\n * The ReadOnly member.\n */\n ReadOnly = 2\n }\n \n /**\n * RetailOperation enum type.\n */\n export enum RetailOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ItemSale member.\n */\n ItemSale = 100,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 101,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 102,\n \n /**\n * The ItemComment member.\n */\n ItemComment = 103,\n \n /**\n * The PriceOverride member.\n */\n PriceOverride = 104,\n \n /**\n * The SetQuantity member.\n */\n SetQuantity = 105,\n \n /**\n * The ClearQuantity member.\n */\n ClearQuantity = 106,\n \n /**\n * The ItemSearch member.\n */\n ItemSearch = 108,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 109,\n \n /**\n * The WeighItem member.\n */\n WeighItem = 110,\n \n /**\n * The LinkedItemsAdd member.\n */\n LinkedItemsAdd = 112,\n \n /**\n * The SetDimensions member.\n */\n SetDimensions = 113,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 114,\n \n /**\n * The ShowJournal member.\n */\n ShowJournal = 115,\n \n /**\n * The SetCostPrice member.\n */\n SetCostPrice = 116,\n \n /**\n * The LoyaltyRequest member.\n */\n LoyaltyRequest = 117,\n \n /**\n * The ProcessInput member.\n */\n ProcessInput = 118,\n \n /**\n * The SalespersonBarcode member.\n */\n SalespersonBarcode = 119,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 120,\n \n /**\n * The SalespersonClear member.\n */\n SalespersonClear = 121,\n \n /**\n * The InvoiceComment member.\n */\n InvoiceComment = 122,\n \n /**\n * The ChangeUnitOfMeasure member.\n */\n ChangeUnitOfMeasure = 123,\n \n /**\n * The ItemSaleMultiple member.\n */\n ItemSaleMultiple = 124,\n \n /**\n * The RFIDSale member.\n */\n RFIDSale = 125,\n \n /**\n * The SalesHistory member.\n */\n SalesHistory = 126,\n \n /**\n * The OverrideTaxTransaction member.\n */\n OverrideTaxTransaction = 127,\n \n /**\n * The OverrideTaxTransactionList member.\n */\n OverrideTaxTransactionList = 128,\n \n /**\n * The OverrideTaxLine member.\n */\n OverrideTaxLine = 129,\n \n /**\n * The OverrideTaxLineList member.\n */\n OverrideTaxLineList = 130,\n \n /**\n * The PackSlip member.\n */\n PackSlip = 131,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 132,\n \n /**\n * The BuyWarranty member.\n */\n BuyWarranty = 133,\n \n /**\n * The AddAffiliation member.\n */\n AddAffiliation = 134,\n \n /**\n * The AddAffiliationFromList member.\n */\n AddAffiliationFromList = 135,\n \n /**\n * The AddSerialNumber member.\n */\n AddSerialNumber = 136,\n \n /**\n * The AddAffiliationToCustomer member.\n */\n AddAffiliationToCustomer = 137,\n \n /**\n * The RemoveAffiliationFromCustomer member.\n */\n RemoveAffiliationFromCustomer = 138,\n \n /**\n * The ConcludeTransaction member.\n */\n ConcludeTransaction = 139,\n \n /**\n * The AddLineCharge member.\n */\n AddLineCharge = 140,\n \n /**\n * The AddHeaderCharge member.\n */\n AddHeaderCharge = 141,\n \n /**\n * The ManageCharges member.\n */\n ManageCharges = 142,\n \n /**\n * The RecalculateCharges member.\n */\n RecalculateCharges = 143,\n \n /**\n * The AddWarrantyToAnExistingTransaction member.\n */\n AddWarrantyToAnExistingTransaction = 144,\n \n /**\n * The PayCash member.\n */\n PayCash = 200,\n \n /**\n * The PayCard member.\n */\n PayCard = 201,\n \n /**\n * The PayCustomerAccount member.\n */\n PayCustomerAccount = 202,\n \n /**\n * The PayCurrency member.\n */\n PayCurrency = 203,\n \n /**\n * The PayCheck member.\n */\n PayCheck = 204,\n \n /**\n * The PayCashQuick member.\n */\n PayCashQuick = 206,\n \n /**\n * The PayLoyalty member.\n */\n PayLoyalty = 207,\n \n /**\n * The PayCorporateCard member.\n */\n PayCorporateCard = 208,\n \n /**\n * The ChangeBack member.\n */\n ChangeBack = 210,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 211,\n \n /**\n * The FleetCardInfo member.\n */\n FleetCardInfo = 212,\n \n /**\n * The PayCreditMemo member.\n */\n PayCreditMemo = 213,\n \n /**\n * The PayGiftCertificate member.\n */\n PayGiftCertificate = 214,\n \n /**\n * The CashOutGiftCard member.\n */\n CashOutGiftCard = 215,\n \n /**\n * The PayCardExact member.\n */\n PayCardExact = 216,\n \n /**\n * The PayCheckExact member.\n */\n PayCheckExact = 217,\n \n /**\n * The PayCustomerAccountExact member.\n */\n PayCustomerAccountExact = 218,\n \n /**\n * The PayGiftCardExact member.\n */\n PayGiftCardExact = 219,\n \n /**\n * The PayLoyaltyCardExact member.\n */\n PayLoyaltyCardExact = 220,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 300,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 301,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 302,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 303,\n \n /**\n * The DiscountCodeBarcode member.\n */\n DiscountCodeBarcode = 304,\n \n /**\n * The CalculateFullDiscounts member.\n */\n CalculateFullDiscounts = 310,\n \n /**\n * The RemovePeriodicDiscountsFromTransaction member.\n */\n RemovePeriodicDiscountsFromTransaction = 311,\n \n /**\n * The RecalculatePeriodicDiscounts member.\n */\n RecalculatePeriodicDiscounts = 312,\n \n /**\n * The PopupMenu member.\n */\n PopupMenu = 400,\n \n /**\n * The Submenu member.\n */\n Submenu = 401,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 500,\n \n /**\n * The TransactionComment member.\n */\n TransactionComment = 501,\n \n /**\n * The SalesPerson member.\n */\n SalesPerson = 502,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 503,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 504,\n \n /**\n * The RecallUnconcludedTransaction member.\n */\n RecallUnconcludedTransaction = 505,\n \n /**\n * The CardSwipe member.\n */\n CardSwipe = 506,\n \n /**\n * The PharmacyPrescriptionAdd member.\n */\n PharmacyPrescriptionAdd = 507,\n \n /**\n * The PharmacyPrescriptionCancel member.\n */\n PharmacyPrescriptionCancel = 508,\n \n /**\n * The PharmacyPrescriptionPaid member.\n */\n PharmacyPrescriptionPaid = 509,\n \n /**\n * The PharmacyPrescriptions member.\n */\n PharmacyPrescriptions = 510,\n \n /**\n * The IssueCreditMemo member.\n */\n IssueCreditMemo = 511,\n \n /**\n * The IssueGiftCertificate member.\n */\n IssueGiftCertificate = 512,\n \n /**\n * The DisplayTotal member.\n */\n DisplayTotal = 513,\n \n /**\n * The RecallSalesOrder member.\n */\n RecallSalesOrder = 515,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 516,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 517,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 518,\n \n /**\n * The AddToGiftCard member.\n */\n AddToGiftCard = 519,\n \n /**\n * The GiftCardBalance member.\n */\n GiftCardBalance = 520,\n \n /**\n * The LoyaltyCardPointsBalance member.\n */\n LoyaltyCardPointsBalance = 521,\n \n /**\n * The CashChangerRegisterAmount member.\n */\n CashChangerRegisterAmount = 550,\n \n /**\n * The CashChangerReset member.\n */\n CashChangerReset = 551,\n \n /**\n * The CashChangerRegret member.\n */\n CashChangerRegret = 552,\n \n /**\n * The CashChangerExit member.\n */\n CashChangerExit = 553,\n \n /**\n * The CashChangerChange member.\n */\n CashChangerChange = 554,\n \n /**\n * The CashChangerLogOn member.\n */\n CashChangerLogOn = 555,\n \n /**\n * The CashChangerInit member.\n */\n CashChangerInit = 556,\n \n /**\n * The SetCustomer member.\n */\n SetCustomer = 600,\n \n /**\n * The CustomerSearch member.\n */\n CustomerSearch = 602,\n \n /**\n * The CustomerClear member.\n */\n CustomerClear = 603,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 604,\n \n /**\n * The CustomerTransactions member.\n */\n CustomerTransactions = 609,\n \n /**\n * The CustomerTransactionsReport member.\n */\n CustomerTransactionsReport = 610,\n \n /**\n * The CustomerBalanceReport member.\n */\n CustomerBalanceReport = 611,\n \n /**\n * The CustomerAdd member.\n */\n CustomerAdd = 612,\n \n /**\n * The CustomerBarcode member.\n */\n CustomerBarcode = 613,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 614,\n \n /**\n * The EditQuotation member.\n */\n EditQuotation = 615,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 620,\n \n /**\n * The CreateQuotation member.\n */\n CreateQuotation = 621,\n \n /**\n * The Search member.\n */\n Search = 622,\n \n /**\n * The CustomerEdit member.\n */\n CustomerEdit = 623,\n \n /**\n * The LoyaltyIssueCard member.\n */\n LoyaltyIssueCard = 625,\n \n /**\n * The RecalculateCustomerOrder member.\n */\n RecalculateCustomerOrder = 627,\n \n /**\n * The ShipSelectedProducts member.\n */\n ShipSelectedProducts = 629,\n \n /**\n * The ShipAllProducts member.\n */\n ShipAllProducts = 630,\n \n /**\n * The PickupSelectedProducts member.\n */\n PickupSelectedProducts = 631,\n \n /**\n * The PickupAllProducts member.\n */\n PickupAllProducts = 632,\n \n /**\n * The SetQuotationExpirationDate member.\n */\n SetQuotationExpirationDate = 633,\n \n /**\n * The PaymentsHistory member.\n */\n PaymentsHistory = 634,\n \n /**\n * The ReturnChargesOverride member.\n */\n ReturnChargesOverride = 635,\n \n /**\n * The CreateRetailTransaction member.\n */\n CreateRetailTransaction = 636,\n \n /**\n * The SetCommissionSalesGroupOnTransaction member.\n */\n SetCommissionSalesGroupOnTransaction = 637,\n \n /**\n * The SetCommissionSalesGroupOnLine member.\n */\n SetCommissionSalesGroupOnLine = 638,\n \n /**\n * The ClearCommissionSalesGroupOnTransaction member.\n */\n ClearCommissionSalesGroupOnTransaction = 639,\n \n /**\n * The ClearCommissionSalesGroupOnLine member.\n */\n ClearCommissionSalesGroupOnLine = 640,\n \n /**\n * The CarryoutSelectedProducts member.\n */\n CarryoutSelectedProducts = 641,\n \n /**\n * The CarryoutAllProducts member.\n */\n CarryoutAllProducts = 642,\n \n /**\n * The AddCoupons member.\n */\n AddCoupons = 643,\n \n /**\n * The RemoveCoupons member.\n */\n RemoveCoupons = 644,\n \n /**\n * The ViewAllDiscounts member.\n */\n ViewAllDiscounts = 645,\n \n /**\n * The ViewAvailableDiscounts member.\n */\n ViewAvailableDiscounts = 646,\n \n /**\n * The ChangeDeliveryMode member.\n */\n ChangeDeliveryMode = 647,\n \n /**\n * The CancelOrder member.\n */\n CancelOrder = 648,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 649,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 650,\n \n /**\n * The EditFulfillmentLine member.\n */\n EditFulfillmentLine = 651,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 652,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 653,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 654,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 655,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 656,\n \n /**\n * The PickupFulfillmentLine member.\n */\n PickupFulfillmentLine = 657,\n \n /**\n * The ChangePickupLines member.\n */\n ChangePickupLines = 658,\n \n /**\n * The LogOn member.\n */\n LogOn = 700,\n \n /**\n * The LogOff member.\n */\n LogOff = 701,\n \n /**\n * The ChangeUser member.\n */\n ChangeUser = 702,\n \n /**\n * The LockTerminal member.\n */\n LockTerminal = 703,\n \n /**\n * The LogOffForce member.\n */\n LogOffForce = 704,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 705,\n \n /**\n * The EmployeeBarcode member.\n */\n EmployeeBarcode = 706,\n \n /**\n * The ActivateDevice member.\n */\n ActivateDevice = 707,\n \n /**\n * The DeactivateDevice member.\n */\n DeactivateDevice = 708,\n \n /**\n * The ChangeHardwareStation member.\n */\n ChangeHardwareStation = 709,\n \n /**\n * The PairHardwareStation member.\n */\n PairHardwareStation = 710,\n \n /**\n * The MassActivateDevice member.\n */\n MassActivateDevice = 711,\n \n /**\n * The ViewMyClientBook member.\n */\n ViewMyClientBook = 712,\n \n /**\n * The ViewStoreClientBooks member.\n */\n ViewStoreClientBooks = 713,\n \n /**\n * The AddCustomerToClientBook member.\n */\n AddCustomerToClientBook = 714,\n \n /**\n * The RemoveCustomersFromClientBook member.\n */\n RemoveCustomersFromClientBook = 715,\n \n /**\n * The ReassignClientBookCustomers member.\n */\n ReassignClientBookCustomers = 716,\n \n /**\n * The HealthCheck member.\n */\n HealthCheck = 717,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 800,\n \n /**\n * The InventoryLookup member.\n */\n InventoryLookup = 801,\n \n /**\n * The StockCount member.\n */\n StockCount = 802,\n \n /**\n * The PickingAndReceiving member.\n */\n PickingAndReceiving = 803,\n \n /**\n * The InboundInventory member.\n */\n InboundInventory = 804,\n \n /**\n * The OutboundInventory member.\n */\n OutboundInventory = 805,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 806,\n \n /**\n * The InventoryMovement member.\n */\n InventoryMovement = 807,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 808,\n \n /**\n * The ApplicationExit member.\n */\n ApplicationExit = 900,\n \n /**\n * The PrintTaxFree member.\n */\n PrintTaxFree = 906,\n \n /**\n * The PrintPreviousSlip member.\n */\n PrintPreviousSlip = 907,\n \n /**\n * The PrintPreviousInvoice member.\n */\n PrintPreviousInvoice = 908,\n \n /**\n * The UploadPrinterLogo member.\n */\n UploadPrinterLogo = 909,\n \n /**\n * The RestartComputer member.\n */\n RestartComputer = 910,\n \n /**\n * The ShutdownComputer member.\n */\n ShutdownComputer = 911,\n \n /**\n * The DesignModeEnable member.\n */\n DesignModeEnable = 912,\n \n /**\n * The DesignModeDisable member.\n */\n DesignModeDisable = 913,\n \n /**\n * The MinimizePOSWindow member.\n */\n MinimizePOSWindow = 914,\n \n /**\n * The BlankOperation member.\n */\n BlankOperation = 915,\n \n /**\n * The WindowsWorkflowOperation member.\n */\n WindowsWorkflowOperation = 916,\n \n /**\n * The DatabaseConnectionStatus member.\n */\n DatabaseConnectionStatus = 917,\n \n /**\n * The ShowBlindClosedShifts member.\n */\n ShowBlindClosedShifts = 918,\n \n /**\n * The ExtendedLogOn member.\n */\n ExtendedLogOn = 919,\n \n /**\n * The TimeRegistration member.\n */\n TimeRegistration = 920,\n \n /**\n * The ViewTimeClockEntries member.\n */\n ViewTimeClockEntries = 921,\n \n /**\n * The ViewProductDetails member.\n */\n ViewProductDetails = 922,\n \n /**\n * The ViewOrderFulfillmentLines member.\n */\n ViewOrderFulfillmentLines = 928,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 1000,\n \n /**\n * The ViewReport member.\n */\n ViewReport = 1003,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 1052,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 1053,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 1054,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 1055,\n \n /**\n * The PrintX member.\n */\n PrintX = 1056,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 1057,\n \n /**\n * The PrintFiscalX member.\n */\n PrintFiscalX = 1058,\n \n /**\n * The PrintFiscalZ member.\n */\n PrintFiscalZ = 1059,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 1100,\n \n /**\n * The DeclareStartAmount member.\n */\n DeclareStartAmount = 1200,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 1201,\n \n /**\n * The TenderRemoval member.\n */\n TenderRemoval = 1210,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 1211,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 1212,\n \n /**\n * The ShippingAddressSearch member.\n */\n ShippingAddressSearch = 1213,\n \n /**\n * The ShippingAddressAdd member.\n */\n ShippingAddressAdd = 1214,\n \n /**\n * The ChangePassword member.\n */\n ChangePassword = 1215,\n \n /**\n * The ResetPassword member.\n */\n ResetPassword = 1216,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 1217,\n \n /**\n * The ForceUnlockPeripheral member.\n */\n ForceUnlockPeripheral = 1218,\n \n /**\n * The OpenURL member.\n */\n OpenURL = 1219,\n \n /**\n * The ManageSafe member.\n */\n ManageSafe = 1220,\n \n /**\n * The VoidSuspendedTransactions member.\n */\n VoidSuspendedTransactions = 1221,\n \n /**\n * The SkipFiscalRegistration member.\n */\n SkipFiscalRegistration = 1300,\n \n /**\n * The MarkFiscalEventRegistered member.\n */\n MarkFiscalEventRegistered = 1301,\n \n /**\n * The CompleteFiscalRegistrationProcess member.\n */\n CompleteFiscalRegistrationProcess = 1302,\n \n /**\n * The SkipHealthCheckError member.\n */\n SkipHealthCheckError = 1303,\n \n /**\n * The PostponeFiscalRegistration member.\n */\n PostponeFiscalRegistration = 1304,\n \n /**\n * The ManageChecklistsAndTasks member.\n */\n ManageChecklistsAndTasks = 1400,\n \n /**\n * The Invalid member.\n */\n Invalid = 65535\n }\n \n /**\n * RefinerType enum type.\n */\n export enum RefinerType {\n \n /**\n * The SingleSelect member.\n */\n SingleSelect = 0,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 1,\n \n /**\n * The FreeText member.\n */\n FreeText = 2\n }\n \n /**\n * DisplayTemplate enum type.\n */\n export enum DisplayTemplate {\n \n /**\n * The List member.\n */\n List = 0,\n \n /**\n * The Slider member.\n */\n Slider = 1,\n \n /**\n * The SliderWithBars member.\n */\n SliderWithBars = 2,\n \n /**\n * The Range member.\n */\n Range = 3,\n \n /**\n * The TextBox member.\n */\n TextBox = 4\n }\n \n /**\n * ClientBookRefinerSource enum type.\n */\n export enum ClientBookRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchKeyword member.\n */\n CustomerSearchKeyword = 2,\n \n /**\n * The StaffId member.\n */\n StaffId = 3\n }\n \n /**\n * ProductRefinerSource enum type.\n */\n export enum ProductRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The Category member.\n */\n Category = 2,\n \n /**\n * The Price member.\n */\n Price = 3,\n \n /**\n * The Rating member.\n */\n Rating = 4\n }\n \n /**\n * LoyaltyCardTenderType enum type.\n */\n export enum LoyaltyCardTenderType {\n \n /**\n * The AsCardTender member.\n */\n AsCardTender = 0,\n \n /**\n * The AsContactTender member.\n */\n AsContactTender = 1,\n \n /**\n * The NoTender member.\n */\n NoTender = 2,\n \n /**\n * The Blocked member.\n */\n Blocked = 3\n }\n \n /**\n * ReleasedProductType enum type.\n */\n export enum ReleasedProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Service member.\n */\n Service = 2\n }\n \n /**\n * RetailChannelType enum type.\n */\n export enum RetailChannelType {\n \n /**\n * The RetailStore member.\n */\n RetailStore = 0,\n \n /**\n * The OnlineStore member.\n */\n OnlineStore = 1,\n \n /**\n * The OnlineMarketplace member.\n */\n OnlineMarketplace = 2,\n \n /**\n * The SharePointOnlineStore member.\n */\n SharePointOnlineStore = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnConfiguration enum type.\n */\n export enum LogOnConfiguration {\n \n /**\n * The LocalDatabase member.\n */\n LocalDatabase = 0,\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 1\n }\n \n /**\n * TransactionServiceAuthenticationType enum type.\n */\n export enum TransactionServiceAuthenticationType {\n \n /**\n * The CertificateAuthentication member.\n */\n CertificateAuthentication = 0,\n \n /**\n * The ServiceToServiceAuthentication member.\n */\n ServiceToServiceAuthentication = 1,\n \n /**\n * The AdfsServiceToServiceClientSecretAuthentication member.\n */\n AdfsServiceToServiceClientSecretAuthentication = 2,\n \n /**\n * The ServiceToServiceClientCertificateAuthentication member.\n */\n ServiceToServiceClientCertificateAuthentication = 3,\n \n /**\n * The AdfsServiceToServiceClientCertificateAuthentication member.\n */\n AdfsServiceToServiceClientCertificateAuthentication = 4\n }\n \n /**\n * IncludePersonalDataInGuestOrderLookupPolicy enum type.\n */\n export enum IncludePersonalDataInGuestOrderLookupPolicy {\n \n /**\n * The Never member.\n */\n Never = 0,\n \n /**\n * The GuestOrdersOnly member.\n */\n GuestOrdersOnly = 1,\n \n /**\n * The AllOrders member.\n */\n AllOrders = 2\n }\n \n /**\n * RetailAddressBookType enum type.\n */\n export enum RetailAddressBookType {\n \n /**\n * The Customer member.\n */\n Customer = 0,\n \n /**\n * The Employee member.\n */\n Employee = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * InventAvailabilityCalculationMode enum type.\n */\n export enum InventAvailabilityCalculationMode {\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 0,\n \n /**\n * The Channel member.\n */\n Channel = 1\n }\n \n /**\n * InventoryAvailabilityClientDisplayMode enum type.\n */\n export enum InventoryAvailabilityClientDisplayMode {\n \n /**\n * The Raw member.\n */\n Raw = 0,\n \n /**\n * The Buffered member.\n */\n Buffered = 1,\n \n /**\n * The None member.\n */\n None = 2,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * EmployeeActivityType enum type.\n */\n export enum EmployeeActivityType {\n \n /**\n * The ClockIn member.\n */\n ClockIn = 0,\n \n /**\n * The JobStop member.\n */\n JobStop = 1,\n \n /**\n * The JobStart member.\n */\n JobStart = 2,\n \n /**\n * The TeamStop member.\n */\n TeamStop = 3,\n \n /**\n * The TeamStart member.\n */\n TeamStart = 4,\n \n /**\n * The BreakFlowStart member.\n */\n BreakFlowStart = 5,\n \n /**\n * The BreakCancelOne member.\n */\n BreakCancelOne = 6,\n \n /**\n * The BreakCancelAll member.\n */\n BreakCancelAll = 7,\n \n /**\n * The BreakFlowStop member.\n */\n BreakFlowStop = 8,\n \n /**\n * The FinishQuantity member.\n */\n FinishQuantity = 9,\n \n /**\n * The ClockOut member.\n */\n ClockOut = 10,\n \n /**\n * The EventCode member.\n */\n EventCode = 11,\n \n /**\n * The BreakFromWork member.\n */\n BreakFromWork = 12,\n \n /**\n * The BreakForLunch member.\n */\n BreakForLunch = 13,\n \n /**\n * The Logbook member.\n */\n Logbook = 14,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryPreferenceType enum type.\n */\n export enum DeliveryPreferenceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ShipToAddress member.\n */\n ShipToAddress = 1,\n \n /**\n * The PickupFromStore member.\n */\n PickupFromStore = 2,\n \n /**\n * The ElectronicDelivery member.\n */\n ElectronicDelivery = 3,\n \n /**\n * The DeliverItemsIndividually member.\n */\n DeliverItemsIndividually = 4\n }\n \n /**\n * LayoutType enum type.\n */\n export enum LayoutType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ModernPosCompact member.\n */\n ModernPosCompact = 1,\n \n /**\n * The ModernPosFull member.\n */\n ModernPosFull = 2,\n \n /**\n * The Epos member.\n */\n Epos = 3\n }\n \n /**\n * SalesInvoiceType enum type.\n */\n export enum SalesInvoiceType {\n \n /**\n * The Journal member.\n */\n Journal = 0,\n \n /**\n * The DEL_Quotation member.\n */\n DEL_Quotation = 1,\n \n /**\n * The Subscription member.\n */\n Subscription = 2,\n \n /**\n * The Sales member.\n */\n Sales = 3,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 4,\n \n /**\n * The DEL_Blanket member.\n */\n DEL_Blanket = 5,\n \n /**\n * The ItemReq member.\n */\n ItemReq = 6\n }\n \n /**\n * InvoiceType enum type.\n */\n export enum InvoiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrderInvoice member.\n */\n SalesOrderInvoice = 1,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 2,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 3,\n \n /**\n * The CreditNoteInvoice member.\n */\n CreditNoteInvoice = 4,\n \n /**\n * The FreeTextCreditNoteInvoice member.\n */\n FreeTextCreditNoteInvoice = 5,\n \n /**\n * The ProjectCreditNoteInvoice member.\n */\n ProjectCreditNoteInvoice = 6\n }\n \n /**\n * InvoicePaidStatus enum type.\n */\n export enum InvoicePaidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Unpaid member.\n */\n Unpaid = 1,\n \n /**\n * The PartiallyPaid member.\n */\n PartiallyPaid = 2,\n \n /**\n * The Paid member.\n */\n Paid = 3\n }\n \n /**\n * TaxOverrideType enum type.\n */\n export enum TaxOverrideType {\n \n /**\n * The ItemSalesTaxGroup member.\n */\n ItemSalesTaxGroup = 0,\n \n /**\n * The SalesTaxGroup member.\n */\n SalesTaxGroup = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TaxOverrideBy enum type.\n */\n export enum TaxOverrideBy {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Cart member.\n */\n Cart = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * ReasonCodeInputRequiredType enum type.\n */\n export enum ReasonCodeInputRequiredType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Always member.\n */\n Always = 1,\n \n /**\n * The Positive member.\n */\n Positive = 2,\n \n /**\n * The Negative member.\n */\n Negative = 3\n }\n \n /**\n * RecordingValueType enum type.\n */\n export enum RecordingValueType {\n \n /**\n * The Preferred member.\n */\n Preferred = 0,\n \n /**\n * The Example member.\n */\n Example = 1\n }\n \n /**\n * UserActionType enum type.\n */\n export enum UserActionType {\n \n /**\n * The Input member.\n */\n Input = 1,\n \n /**\n * The Output member.\n */\n Output = 16,\n \n /**\n * The Validation member.\n */\n Validation = 256\n }\n \n /**\n * ArtifactType enum type.\n */\n export enum ArtifactType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ax7Bpm member.\n */\n Ax7Bpm = 1,\n \n /**\n * The Visio member.\n */\n Visio = 2,\n \n /**\n * The TaskGuide member.\n */\n TaskGuide = 3,\n \n /**\n * The Ax6Bpm member.\n */\n Ax6Bpm = 4,\n \n /**\n * The TaskGuideResources member.\n */\n TaskGuideResources = 5,\n \n /**\n * The TaskXml member.\n */\n TaskXml = 6,\n \n /**\n * The VideoWma member.\n */\n VideoWma = 7,\n \n /**\n * The ProcessXml member.\n */\n ProcessXml = 8,\n \n /**\n * The Trace member.\n */\n Trace = 9,\n \n /**\n * The RapidStartXml member.\n */\n RapidStartXml = 10,\n \n /**\n * The UserDrawing member.\n */\n UserDrawing = 100\n }\n \n /**\n * FrameworkAccess enum type.\n */\n export enum FrameworkAccess {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Global member.\n */\n Global = 1,\n \n /**\n * The Corporate member.\n */\n Corporate = 2,\n \n /**\n * The Private member.\n */\n Private = 3,\n \n /**\n * The BoxPackage member.\n */\n BoxPackage = 4\n }\n \n /**\n * MetadataControl enum type.\n */\n export enum MetadataControl {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SingleValue member.\n */\n SingleValue = 1,\n \n /**\n * The MultiValue member.\n */\n MultiValue = 2,\n \n /**\n * The Tags member.\n */\n Tags = 3,\n \n /**\n * The Links member.\n */\n Links = 4,\n \n /**\n * The ComboBox member.\n */\n ComboBox = 5,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 6\n }\n \n /**\n * FiscalIntegrationRegistrationStatus enum type.\n */\n export enum FiscalIntegrationRegistrationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Completed member.\n */\n Completed = 1,\n \n /**\n * The Skipped member.\n */\n Skipped = 2,\n \n /**\n * The MarkedAsRegistered member.\n */\n MarkedAsRegistered = 3,\n \n /**\n * The AutoSkipped member.\n */\n AutoSkipped = 4,\n \n /**\n * The Postponed member.\n */\n Postponed = 5\n }\n \n /**\n * CustomerOrderOperation enum type.\n */\n export enum CustomerOrderOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Edit member.\n */\n Edit = 1,\n \n /**\n * The Cancel member.\n */\n Cancel = 2,\n \n /**\n * The PickUpFromStore member.\n */\n PickUpFromStore = 3,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 4,\n \n /**\n * The CreatePackingSlip member.\n */\n CreatePackingSlip = 5,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 6,\n \n /**\n * The Return member.\n */\n Return = 7,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 8,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 9,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 10,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 11,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 12\n }\n \n /**\n * BusinessPartnerOperationType enum type.\n */\n export enum BusinessPartnerOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CreateProspect member.\n */\n CreateProspect = 1,\n \n /**\n * The AddUser member.\n */\n AddUser = 2,\n \n /**\n * The DeleteUser member.\n */\n DeleteUser = 3,\n \n /**\n * The EditUser member.\n */\n EditUser = 4,\n \n /**\n * The AccountStatement member.\n */\n AccountStatement = 5,\n \n /**\n * The InvoiceRequest member.\n */\n InvoiceRequest = 6\n }\n \n /**\n * BusinessPartnerOperationStatus enum type.\n */\n export enum BusinessPartnerOperationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Processed member.\n */\n Processed = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * CartType enum type.\n */\n export enum CartType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shopping member.\n */\n Shopping = 1,\n \n /**\n * The Checkout member.\n */\n Checkout = 2,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 3,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 4,\n \n /**\n * The AccountDeposit member.\n */\n AccountDeposit = 5\n }\n \n /**\n * CartStatus enum type.\n */\n export enum CartStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Suspended member.\n */\n Suspended = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3\n }\n \n /**\n * PeriodicDiscountsCalculateScope enum type.\n */\n export enum PeriodicDiscountsCalculateScope {\n \n /**\n * The All member.\n */\n All = 0,\n \n /**\n * The None member.\n */\n None = 1,\n \n /**\n * The CouponDiscountsOnly member.\n */\n CouponDiscountsOnly = 2\n }\n \n /**\n * CustomerType enum type.\n */\n export enum CustomerType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Person member.\n */\n Person = 1,\n \n /**\n * The Organization member.\n */\n Organization = 2\n }\n \n /**\n * ContactInfoType enum type.\n */\n export enum ContactInfoType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5\n }\n \n /**\n * ChecklistStatus enum type.\n */\n export enum ChecklistStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * ChecklistTaskDeepLinkType enum type.\n */\n export enum ChecklistTaskDeepLinkType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Display member.\n */\n Display = 1,\n \n /**\n * The Output member.\n */\n Output = 2,\n \n /**\n * The Action member.\n */\n Action = 3,\n \n /**\n * The Url member.\n */\n Url = 4,\n \n /**\n * The PosOperation member.\n */\n PosOperation = 5,\n \n /**\n * The CustomerAccount member.\n */\n CustomerAccount = 6,\n \n /**\n * The PosOperationWithParameters member.\n */\n PosOperationWithParameters = 7\n }\n \n /**\n * ChecklistTaskStatus enum type.\n */\n export enum ChecklistTaskStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * DocumentStatus enum type.\n */\n export enum DocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quotation member.\n */\n Quotation = 1,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 2,\n \n /**\n * The Confirmation member.\n */\n Confirmation = 3,\n \n /**\n * The PickingList member.\n */\n PickingList = 4,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 5,\n \n /**\n * The ReceiptsList member.\n */\n ReceiptsList = 6,\n \n /**\n * The Invoice member.\n */\n Invoice = 7,\n \n /**\n * The ApproveJournal member.\n */\n ApproveJournal = 8,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 9,\n \n /**\n * The ProjectPackingSlip member.\n */\n ProjectPackingSlip = 10,\n \n /**\n * The CRMQuotation member.\n */\n CRMQuotation = 11,\n \n /**\n * The Lost member.\n */\n Lost = 12,\n \n /**\n * The Canceled member.\n */\n Canceled = 13,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 14,\n \n /**\n * The RFQ member.\n */\n RFQ = 15,\n \n /**\n * The RFQAccept member.\n */\n RFQAccept = 16,\n \n /**\n * The RFQReject member.\n */\n RFQReject = 17,\n \n /**\n * The PurchaseRequest member.\n */\n PurchaseRequest = 18,\n \n /**\n * The RFQResend member.\n */\n RFQResend = 19\n }\n \n /**\n * CustomerOrderType enum type.\n */\n export enum CustomerOrderType {\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 0,\n \n /**\n * The Quote member.\n */\n Quote = 1\n }\n \n /**\n * LineDiscountCalculationType enum type.\n */\n export enum LineDiscountCalculationType {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Multiline member.\n */\n Multiline = 1,\n \n /**\n * The MaxLineMultiline member.\n */\n MaxLineMultiline = 2,\n \n /**\n * The MinLineMultiline member.\n */\n MinLineMultiline = 3,\n \n /**\n * The LinePlusMultiline member.\n */\n LinePlusMultiline = 4,\n \n /**\n * The LineMultiplyMultiline member.\n */\n LineMultiplyMultiline = 5\n }\n \n /**\n * TaxCalculationType enum type.\n */\n export enum TaxCalculationType {\n \n /**\n * The Regular member.\n */\n Regular = 0,\n \n /**\n * The GTE member.\n */\n GTE = 1\n }\n \n /**\n * ShiftStatus enum type.\n */\n export enum ShiftStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Open member.\n */\n Open = 1,\n \n /**\n * The Closed member.\n */\n Closed = 2,\n \n /**\n * The BlindClosed member.\n */\n BlindClosed = 3,\n \n /**\n * The Suspended member.\n */\n Suspended = 4,\n \n /**\n * The Invalid member.\n */\n Invalid = 5\n }\n \n /**\n * TaxRegistrationType enum type.\n */\n export enum TaxRegistrationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The INN member.\n */\n INN = 1,\n \n /**\n * The KPP member.\n */\n KPP = 2,\n \n /**\n * The OKPO member.\n */\n OKPO = 3,\n \n /**\n * The OKDP member.\n */\n OKDP = 4,\n \n /**\n * The OKATO member.\n */\n OKATO = 5,\n \n /**\n * The OGRN member.\n */\n OGRN = 6,\n \n /**\n * The SNILS member.\n */\n SNILS = 7,\n \n /**\n * The CIFTS member.\n */\n CIFTS = 8,\n \n /**\n * The UID member.\n */\n UID = 9,\n \n /**\n * The TaxId member.\n */\n TaxId = 10,\n \n /**\n * The BranchId member.\n */\n BranchId = 11,\n \n /**\n * The CommercialRegisterCZ member.\n */\n CommercialRegisterCZ = 12,\n \n /**\n * The CustomsCustomerId member.\n */\n CustomsCustomerId = 14,\n \n /**\n * The Passport member.\n */\n Passport = 15,\n \n /**\n * The OfficialIdDoc member.\n */\n OfficialIdDoc = 16,\n \n /**\n * The ResidenceCertificate member.\n */\n ResidenceCertificate = 17,\n \n /**\n * The OtherIdDoc member.\n */\n OtherIdDoc = 18,\n \n /**\n * The NotCensused member.\n */\n NotCensused = 19,\n \n /**\n * The BusinessPremiseId member.\n */\n BusinessPremiseId = 20,\n \n /**\n * The LotteryCode member.\n */\n LotteryCode = 21\n }\n \n /**\n * CommerceListType enum type.\n */\n export enum CommerceListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The WishList member.\n */\n WishList = 1\n }\n \n /**\n * ProductListType enum type.\n */\n export enum ProductListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OrderTemplate member.\n */\n OrderTemplate = 1,\n \n /**\n * The QuickOrder member.\n */\n QuickOrder = 2,\n \n /**\n * The WishList member.\n */\n WishList = 3\n }\n \n /**\n * RecommendationType enum type.\n */\n export enum RecommendationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Editorial member.\n */\n Editorial = 1,\n \n /**\n * The New member.\n */\n New = 2,\n \n /**\n * The Trending member.\n */\n Trending = 3,\n \n /**\n * The Bestselling member.\n */\n Bestselling = 4,\n \n /**\n * The Cart member.\n */\n Cart = 5,\n \n /**\n * The PeopleAlsoBuy member.\n */\n PeopleAlsoBuy = 6,\n \n /**\n * The Picks member.\n */\n Picks = 7,\n \n /**\n * The ShopSimilarLooks member.\n */\n ShopSimilarLooks = 8,\n \n /**\n * The ShopSimilarDescriptions member.\n */\n ShopSimilarDescriptions = 9\n }\n \n /**\n * PurchaseTransferOrderType enum type.\n */\n export enum PurchaseTransferOrderType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferIn member.\n */\n TransferIn = 2,\n \n /**\n * The TransferOut member.\n */\n TransferOut = 3,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 4,\n \n /**\n * The PickingList member.\n */\n PickingList = 5\n }\n \n /**\n * BusinessPartnerUserStatus enum type.\n */\n export enum BusinessPartnerUserStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Removed member.\n */\n Removed = 2\n }\n \n /**\n * ElectronicAddressType enum type.\n */\n export enum ElectronicAddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * DownloadSessionStatus enum type.\n */\n export enum DownloadSessionStatus {\n \n /**\n * The Started member.\n */\n Started = 0,\n \n /**\n * The Available member.\n */\n Available = 1,\n \n /**\n * The Requested member.\n */\n Requested = 2,\n \n /**\n * The Downloaded member.\n */\n Downloaded = 3,\n \n /**\n * The Applied member.\n */\n Applied = 4,\n \n /**\n * The Canceled member.\n */\n Canceled = 5,\n \n /**\n * The CreateFailed member.\n */\n CreateFailed = 6,\n \n /**\n * The DownloadFailed member.\n */\n DownloadFailed = 7,\n \n /**\n * The ApplyFailed member.\n */\n ApplyFailed = 8\n }\n \n /**\n * HardwareStationType enum type.\n */\n export enum HardwareStationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shared member.\n */\n Shared = 1,\n \n /**\n * The Dedicated member.\n */\n Dedicated = 2\n }\n \n /**\n * AuditEventUploadType enum type.\n */\n export enum AuditEventUploadType {\n \n /**\n * The Async member.\n */\n Async = 0,\n \n /**\n * The RealTime member.\n */\n RealTime = 1\n }\n \n /**\n * AuditEventType enum type.\n */\n export enum AuditEventType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The UserLogOn member.\n */\n UserLogOn = 1,\n \n /**\n * The UserLogOff member.\n */\n UserLogOff = 2,\n \n /**\n * The ManagerOverride member.\n */\n ManagerOverride = 3,\n \n /**\n * The ItemVoid member.\n */\n ItemVoid = 4,\n \n /**\n * The TransactionVoid member.\n */\n TransactionVoid = 5,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 6,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 7,\n \n /**\n * The TaxOverride member.\n */\n TaxOverride = 8,\n \n /**\n * The QuantityCorrection member.\n */\n QuantityCorrection = 9,\n \n /**\n * The PurgeTransactionsData member.\n */\n PurgeTransactionsData = 10\n }\n \n /**\n * AuditLogTraceLevel enum type.\n */\n export enum AuditLogTraceLevel {\n \n /**\n * The Trace member.\n */\n Trace = 0,\n \n /**\n * The Debug member.\n */\n Debug = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * FiscalIntegrationEventType enum type.\n */\n export enum FiscalIntegrationEventType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 2,\n \n /**\n * The ZReport member.\n */\n ZReport = 3,\n \n /**\n * The XReport member.\n */\n XReport = 4,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 5,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 8,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 9,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 10,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 11,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 12,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 13,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 16,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 17,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 18,\n \n /**\n * The FiscalXReport member.\n */\n FiscalXReport = 19,\n \n /**\n * The FiscalZReport member.\n */\n FiscalZReport = 20,\n \n /**\n * The AuditEvent member.\n */\n AuditEvent = 21,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 22,\n \n /**\n * The CancelCustomerOrder member.\n */\n CancelCustomerOrder = 23,\n \n /**\n * The BeginSale member.\n */\n BeginSale = 24,\n \n /**\n * The PreSale member.\n */\n PreSale = 25,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 26,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 27,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 28,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 29,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 30\n }\n \n /**\n * FiscalIntegrationDocumentGenerationResultType enum type.\n */\n export enum FiscalIntegrationDocumentGenerationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The NotSupported member.\n */\n NotSupported = 2,\n \n /**\n * The NotRequired member.\n */\n NotRequired = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * FiscalIntegrationRegistrationProcessMode enum type.\n */\n export enum FiscalIntegrationRegistrationProcessMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The Excepted member.\n */\n Excepted = 2,\n \n /**\n * The Full member.\n */\n Full = 3\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResultType enum type.\n */\n export enum FiscalIntegrationServiceCommunicationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The Failed member.\n */\n Failed = 2\n }\n \n /**\n * FiscalIntegrationServiceFailureType enum type.\n */\n export enum FiscalIntegrationServiceFailureType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Busy member.\n */\n Busy = 1,\n \n /**\n * The NotAvailable member.\n */\n NotAvailable = 2,\n \n /**\n * The SubmissionFailed member.\n */\n SubmissionFailed = 3,\n \n /**\n * The Other member.\n */\n Other = 4,\n \n /**\n * The BadResponse member.\n */\n BadResponse = 5,\n \n /**\n * The Timeout member.\n */\n Timeout = 6\n }\n \n /**\n * PickupTimeslotAvailabilitySearchOption enum type.\n */\n export enum PickupTimeslotAvailabilitySearchOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The DailyGroupingTimeslotOnly member.\n */\n DailyGroupingTimeslotOnly = 1,\n \n /**\n * The All member.\n */\n All = 2\n }\n \n /**\n * AttachedServiceStatus enum type.\n */\n export enum AttachedServiceStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Enabled member.\n */\n Enabled = 3,\n \n /**\n * The Submitted member.\n */\n Submitted = 4\n }\n \n /**\n * ReceiptEmailBehavior enum type.\n */\n export enum ReceiptEmailBehavior {\n \n /**\n * The DoNotEmail member.\n */\n DoNotEmail = 0,\n \n /**\n * The PromptUser member.\n */\n PromptUser = 1,\n \n /**\n * The AlwaysEmail member.\n */\n AlwaysEmail = 2\n }\n \n /**\n * CartLineQuantityLimitsErrors enum type.\n */\n export enum CartLineQuantityLimitsErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber\n }\n \n /**\n * CommunicationErrors enum type.\n */\n export enum CommunicationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault\n }\n \n /**\n * ConfigurationErrors enum type.\n */\n export enum ConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound\n }\n \n /**\n * DataValidationErrors enum type.\n */\n export enum DataValidationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RegexAttribute_ValidationError member.\n */\n RegexAttribute_ValidationError,\n \n /**\n * The RequiredAttribute_ValidationError member.\n */\n RequiredAttribute_ValidationError,\n \n /**\n * The StringLengthAttribute_ValidationError member.\n */\n StringLengthAttribute_ValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicateObject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicateObject,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingParameter member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingParameter,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnSupportedType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnSupportedType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCounty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCounty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartState member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartState,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_InvalidShift member.\n */\n Microsoft_Dynamics_Commerce_InvalidShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty\n }\n \n /**\n * FeatureNotSupportedErrors enum type.\n */\n export enum FeatureNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported\n }\n \n /**\n * SecurityErrors enum type.\n */\n export enum SecurityErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserNotActivated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserNotActivated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAudience member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAudience,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InternalServerError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed\n }\n \n /**\n * StorageErrors enum type.\n */\n export enum StorageErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransientStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransientStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueTooLong\n }\n \n /**\n * VersionNotSupportedErrors enum type.\n */\n export enum VersionNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported\n }\n \n /**\n * PaymentErrors enum type.\n */\n export enum PaymentErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FraudRisk member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction\n }\n \n /**\n * FiscalIntegrationServiceErrors enum type.\n */\n export enum FiscalIntegrationServiceErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine\n }\n \n /**\n * CommerceDataExchangeErrors enum type.\n */\n export enum CommerceDataExchangeErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure\n }\n \n /**\n * TaskManagementErrorCode enum type.\n */\n export enum TaskManagementErrorCode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure = 1,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure = 2,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure = 3,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut = 4,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized = 5,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound = 6,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict = 7,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch = 8,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError = 9,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject = 10,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks = 11,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser = 12,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser = 13,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject = 14,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject = 15,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask = 16,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans = 17,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser = 18,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser = 19,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask = 20,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject = 21,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General = 22,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData = 23,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError = 24,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable = 25,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId = 26,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId = 27,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken = 28\n }\n \n /**\n * PricingDataValidationErrors enum type.\n */\n export enum PricingDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups\n }\n \n /**\n * PaymentConfigurationErrors enum type.\n */\n export enum PaymentConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies\n }\n \n /**\n * BusinessPartnerOperationDeliveryType enum type.\n */\n export enum BusinessPartnerOperationDeliveryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * OnlineStoreCustomerType enum type.\n */\n export enum OnlineStoreCustomerType {\n \n /**\n * The B2C member.\n */\n B2C = 0,\n \n /**\n * The B2B member.\n */\n B2B = 1\n }\n \n /**\n * WrongEndpointErrors enum type.\n */\n export enum WrongEndpointErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_WrongEndpoint member.\n */\n Microsoft_Dynamics_Commerce_WrongEndpoint\n }\n \n /**\n * RetailServerApiErrors enum type.\n */\n export enum RetailServerApiErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Internal_Server_Error member.\n */\n Microsoft_Dynamics_Internal_Server_Error,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_RetailServer_RequestTooLarge member.\n */\n Microsoft_Dynamics_RetailServer_RequestTooLarge,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ODataModelError member.\n */\n Microsoft_Dynamics_RetailServer_ODataModelError,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MissingRequiredArgument member.\n */\n Microsoft_Dynamics_RetailServer_MissingRequiredArgument,\n \n /**\n * The Microsoft_Dynamics_RetailServer_InvalidArgumentType member.\n */\n Microsoft_Dynamics_RetailServer_InvalidArgumentType,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ParameterHasNullValue member.\n */\n Microsoft_Dynamics_RetailServer_ParameterHasNullValue,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument member.\n */\n Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument\n }\n \n /**\n * ExceptionSeverity enum type.\n */\n export enum ExceptionSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Error member.\n */\n Error = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Critical member.\n */\n Critical = 3,\n \n /**\n * The Informational member.\n */\n Informational = 4\n }\n \n /**\n * Category entity interface.\n */\n export interface Category {\n RecordId: number;\n OfflineImage?: string;\n Name?: string;\n ParentCategory?: number;\n DisplayOrder?: number;\n Images?: MediaLocation[];\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Cart entity interface.\n */\n export interface Cart {\n AffiliationLines?: AffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n AmountPaid?: number;\n AttributeValues?: AttributeValueBase[];\n IsTaxIncludedInPrice?: boolean;\n BeginDateTime?: Date;\n BusinessDate?: Date;\n CancellationChargeAmount?: number;\n EstimatedShippingAmount?: number;\n CartLines?: CartLine[];\n CartTypeValue?: number;\n ChannelId?: number;\n ChargeAmount?: number;\n CustomerOrderRemainingBalance?: number;\n ChargeLines?: ChargeLine[];\n TaxViewLines?: TaxViewLine[];\n Comment?: string;\n InvoiceComment?: string;\n Coupons?: Coupon[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n DiscountCodes?: string[];\n Id: string;\n SuspendedCartId?: string;\n TransactionTypeValue?: number;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n IsReturnByReceipt?: boolean;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsSuspended?: boolean;\n LoyaltyCardId?: string;\n ModifiedDateTime?: Date;\n Name?: string;\n OrderNumber?: string;\n AvailableDepositAmount?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n PrepaymentAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PromotionLines?: string[];\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n SalesId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n NetPrice?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Customer entity interface.\n */\n export interface Customer {\n AccountNumber: string;\n RecordId?: number;\n CreatedDateTime?: Date;\n ChargeGroup?: string;\n PriceGroup?: string;\n IsCustomerTaxInclusive?: boolean;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Cellphone?: string;\n Email?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n Name?: string;\n PersonNameId?: number;\n FirstName?: string;\n MiddleName?: string;\n LastName?: string;\n DirectoryPartyRecordId?: number;\n PartyNumber?: string;\n CustomerTypeValue?: number;\n Language?: string;\n CustomerGroup?: string;\n CurrencyCode?: string;\n CNPJCPFNumber?: string;\n IdentificationNumber?: string;\n InvoiceAccount?: string;\n MandatoryCreditLimit?: boolean;\n CreditRating?: string;\n CreditLimit?: number;\n Balance?: number;\n Blocked?: boolean;\n BlockedType?: number;\n UseOrderNumberReference?: boolean;\n OrganizationId?: string;\n UsePurchaseRequest?: boolean;\n MultilineDiscountGroup?: string;\n TotalDiscountGroup?: string;\n LineDiscountGroup?: string;\n TaxGroup?: string;\n SalesTaxGroup?: string;\n CommissionSalesGroupId?: string;\n TaxExemptNumber?: string;\n VatNumber?: string;\n TaxOffice?: string;\n NonChargeableAccount?: boolean;\n Tag?: string;\n ReceiptSettings?: number;\n ReceiptEmail?: string;\n OptOutPersonalization?: boolean;\n OptOutWebActivityTracking?: boolean;\n RetailCustomerTableRecordId?: number;\n OfflineImage?: string;\n IsAsyncCustomer?: boolean;\n NewCustomerPartyNumber?: string;\n CustomerAffiliations?: CustomerAffiliation[];\n Addresses?: Address[];\n Attributes?: CustomerAttribute[];\n Images?: MediaLocation[];\n TitleRecordId?: number;\n IsFloorLimitBlocked?: boolean;\n IsB2b?: boolean;\n IsB2bAdmin?: boolean;\n BusinessPartnerId?: string;\n Contacts?: ContactInfo[];\n AllowOnAccountPayment?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Employee entity interface.\n */\n export interface Employee {\n StaffId: string;\n NameOnReceipt?: string;\n Name?: string;\n CultureName?: string;\n NumberOfDaysToPasswordExpiry?: number;\n Permissions?: EmployeePermissions;\n Images?: MediaLocation[];\n DefaultImage?: string;\n DefaultCommissionSalesGroup?: string;\n IdentifierTypeValue?: number;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Checklist entity interface.\n */\n export interface Checklist {\n RecordId: number;\n Tasks?: ChecklistTask[];\n Version?: string;\n ProcessId?: string;\n Name?: string;\n Description?: string;\n AssignedToChannelId?: number;\n AssignedToWorkerPersonnelNumber?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n TargetDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrder entity interface.\n */\n export interface SalesOrder {\n DocumentStatusValue?: number;\n RecordId?: number;\n StatusValue?: number;\n McrOrderStopped?: boolean;\n Shipments?: Shipment[];\n AggregateInventoryQuantities?: InventoryQuantities;\n UnifiedDeliveryInformation?: DeliveryInformation;\n PaymentStatusValue?: number;\n DetailedOrderStatusValue?: number;\n AffiliationLoyaltyTierLines?: SalesAffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n EstimatedShippingAmount?: number;\n AmountPaid?: number;\n CustomerOrderRemainingBalance?: number;\n AttributeValues?: AttributeValueBase[];\n AvailableDepositAmount?: number;\n BeginDateTime?: Date;\n CreatedDateTime?: Date;\n BusinessDate?: Date;\n CalculatedDepositAmount?: number;\n CancellationCharge?: number;\n ChannelId?: number;\n ChannelReferenceId?: string;\n ChargeAmount?: number;\n ChargeLines?: ChargeLine[];\n Comment?: string;\n Coupons?: Coupon[];\n InvoiceComment?: string;\n ContactInformationCollection?: ContactInformation[];\n CurrencyCode?: string;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n CustomerOrderTypeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountCodes?: string[];\n EntryStatusValue?: number;\n GrossAmount?: number;\n HasLoyaltyPayment?: boolean;\n Id: string;\n InternalTransactionId?: string;\n SuspendedTransactionId?: string;\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n InventoryLocationId?: string;\n IsCreatedOffline?: boolean;\n IsReturnByReceipt?: boolean;\n IsSuspended?: boolean;\n IsTaxIncludedInPrice?: boolean;\n IsTaxExemptedForPriceInclusive?: boolean;\n LineDiscount?: number;\n LineDiscountCalculationTypeValue?: number;\n LoyaltyCardId?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyManualDiscountAmount?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ModifiedDateTime?: Date;\n Name?: string;\n NetAmount?: number;\n NetAmountWithoutTax?: number;\n NetAmountWithNoTax?: number;\n NetAmountWithTax?: number;\n NumberOfItems?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PeriodicDiscountAmount?: number;\n TenderDiscountAmount?: number;\n PrepaymentAmountAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n SalesId?: string;\n SalesPaymentDifference?: number;\n SalesLines?: SalesLine[];\n ShiftId?: number;\n ShiftTerminalId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n StatementCode?: string;\n StoreId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxAmountExclusive?: number;\n TaxAmountInclusive?: number;\n TaxLines?: TaxLine[];\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n CustomerName?: string;\n FiscalTransactions?: FiscalTransaction[];\n LanguageId?: string;\n SalesAgreementRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n ClosedAtShiftId?: number;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n OMOperatingUnitNumber?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n TransactionDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartner entity interface.\n */\n export interface BusinessPartner {\n BusinessPartnerId: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerUser entity interface.\n */\n export interface BusinessPartnerUser {\n B2BUserId: string;\n BusinessPartnerId?: string;\n FirstName?: string;\n LastName?: string;\n Email?: string;\n SpendingLimit?: number;\n LastOperationId?: string;\n StatusValue?: number;\n IsAdmin?: boolean;\n AccountNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SuspendedCart entity interface.\n */\n export interface SuspendedCart {\n Id: string;\n ReceiptId?: string;\n ShiftId?: number;\n ShiftTerminalId?: string;\n ExtensionProperties?: CommerceProperty[];\n Cart?: Cart;\n }\n \n /**\n * CountryRegion entity interface.\n */\n export interface CountryRegion {\n CountryRegionId: string;\n IsoCode?: string;\n ShortName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleEnumeration entity interface.\n */\n export interface ExtensibleEnumeration {\n Name: string;\n Value: number;\n }\n \n /**\n * ExtensibleEnumeration_1OfT entity interface.\n */\n export interface ExtensibleEnumeration_1OfT extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleTransactionType entity interface.\n */\n export interface ExtensibleTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleSalesTransactionType entity interface.\n */\n export interface ExtensibleSalesTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineStatus entity interface.\n */\n export interface FulfillmentLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineDeliveryType entity interface.\n */\n export interface FulfillmentLineDeliveryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAddressType entity interface.\n */\n export interface ExtensibleAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity interface.\n */\n export interface ExtensibleLoyaltyRewardPointActivityEntryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAttributeDataType entity interface.\n */\n export interface ExtensibleAttributeDataType extends ExtensibleEnumeration {\n }\n \n /**\n * ReleasedProductServiceType entity interface.\n */\n export interface ReleasedProductServiceType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleElectronicAddressType entity interface.\n */\n export interface ExtensibleElectronicAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ReceiptOutputFormatType entity interface.\n */\n export interface ReceiptOutputFormatType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderLookupAdditionalCriteriaType entity interface.\n */\n export interface OrderLookupAdditionalCriteriaType extends ExtensibleEnumeration {\n }\n \n /**\n * Address entity interface.\n */\n export interface Address {\n Name?: string;\n Id?: string;\n FullAddress?: string;\n RecordId?: number;\n Street?: string;\n StreetNumber?: string;\n County?: string;\n CountyName?: string;\n City?: string;\n DistrictName?: string;\n State?: string;\n StateName?: string;\n ZipCode?: string;\n ThreeLetterISORegionName?: string;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Email?: string;\n EmailContent?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n TwoLetterISORegionName?: string;\n Deactivate?: boolean;\n AttentionTo?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n TaxGroup?: string;\n AddressTypeValue?: number;\n IsPrimary?: boolean;\n IsPrivate?: boolean;\n PartyNumber?: string;\n IsAsyncAddress?: boolean;\n DirectoryPartyTableRecordId?: number;\n DirectoryPartyLocationRecordId?: number;\n DirectoryPartyLocationRoleRecordId?: number;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n LogisticsLocationExtRecordId?: number;\n LogisticsLocationRoleRecordId?: number;\n PhoneLogisticsLocationRecordId?: number;\n PhoneLogisticsLocationId?: string;\n EmailLogisticsLocationRecordId?: number;\n EmailLogisticsLocationId?: string;\n UrlLogisticsLocationRecordId?: number;\n UrlLogisticsLocationId?: string;\n ExpireRecordId?: number;\n SortOrder?: number;\n RoleCount?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAffiliation entity interface.\n */\n export interface CustomerAffiliation {\n RecordId?: number;\n RetailAffiliationId?: number;\n Name?: string;\n Description?: string;\n HideInChannels?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerBalances entity interface.\n */\n export interface CustomerBalances {\n Balance: number;\n PendingBalance: number;\n CreditLimit: number;\n InvoiceAccountBalance: number;\n InvoiceAccountPendingBalance: number;\n InvoiceAccountCreditLimit: number;\n OpenInvoiceBalance?: number;\n OpenInvoiceCount?: number;\n }\n \n /**\n * GlobalCustomer entity interface.\n */\n export interface GlobalCustomer {\n PartyNumber?: string;\n RecordId?: number;\n IsAsyncCustomer?: boolean;\n AccountNumber?: string;\n FullName?: string;\n FullAddress?: string;\n Phone?: string;\n Email?: string;\n CustomerTypeValue?: number;\n Images?: MediaLocation[];\n OfflineImage?: string;\n IsB2b?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValue entity interface.\n */\n export interface AttributeValue {\n Name?: string;\n KeyName?: string;\n UnitOfMeasureSymbol?: string;\n DataTypeValue?: number;\n BooleanValue?: boolean;\n DateTimeOffsetValue?: Date;\n FloatValue?: number;\n IntegerValue?: number;\n TextValue?: string;\n CurrencyValue?: number;\n CurrencyCode?: string;\n AttributeValueId?: number;\n RecordId?: number;\n Swatches?: AttributeSwatch[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValueBase entity interface.\n */\n export interface AttributeValueBase {\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Barcode entity interface.\n */\n export interface Barcode {\n BarcodeId?: string;\n BarcodePrice?: number;\n Quantity?: number;\n CustomerId?: string;\n EmployeeId?: string;\n SalespersonId?: string;\n EANLicenseId?: string;\n DataEntry?: string;\n DiscountCode?: string;\n GiftCardNumber?: string;\n LoyaltyCardNumber?: string;\n ItemBarcode?: ItemBarcode;\n EntryMethodTypeValue?: number;\n ItemType?: number;\n EnterDimensions?: boolean;\n ItemGroupId?: string;\n ItemDepartmentId?: string;\n ScaleItem?: boolean;\n ZeroPriceValid?: boolean;\n NegativeQuantity?: boolean;\n DiscountNotAllowed?: boolean;\n DateToBeBlocked?: Date;\n DateToBeActivated?: Date;\n CheckDigitValidated?: boolean;\n CouponId?: string;\n Message?: string;\n LineDiscountGroup?: string;\n MultilineDiscountGroup?: string;\n IncludedInTotalDiscount?: boolean;\n CostPrice?: number;\n BatchId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemBarcode entity interface.\n */\n export interface ItemBarcode {\n RecordId?: number;\n ItemId?: string;\n Description?: string;\n BarcodeSetupId?: string;\n ItemBarcodeValue?: string;\n InventoryDimensionId?: string;\n IsBlocked?: boolean;\n Display?: boolean;\n VariantId?: string;\n UnitId?: string;\n UseForInput?: boolean;\n UseForPrinting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGrid entity interface.\n */\n export interface ButtonGrid {\n Id?: string;\n Name?: string;\n DefaultColor?: number;\n SpaceBetweenButtonsInPixels?: number;\n Buttons?: ButtonGridButton[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * GetButtonGridsByIdsCriteria entity interface.\n */\n export interface GetButtonGridsByIdsCriteria {\n ButtonGridIds?: string[];\n }\n \n /**\n * CartLine entity interface.\n */\n export interface CartLine {\n LineId?: string;\n TaxOverrideCode?: string;\n ItemId?: string;\n Barcode?: string;\n EntryMethodTypeValue?: number;\n Description?: string;\n InventoryDimensionId?: string;\n Comment?: string;\n ProductId?: number;\n WarehouseId?: string;\n Quantity?: number;\n Price?: number;\n ExtendedPrice?: number;\n TaxAmount?: number;\n ItemTaxGroupId?: string;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountAmountWithoutTax?: number;\n DiscountAmount?: number;\n LineDiscount?: number;\n LinePercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n UnitOfMeasureSymbol?: string;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n WarrantiedId?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n IsVoided?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n IsGiftCardLine?: boolean;\n IsPriceKeyedIn?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n SalesStatusValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityCanceled?: number;\n FulfillmentStoreId?: string;\n SerialNumber?: string;\n ElectronicDeliveryEmail?: string;\n ElectronicDeliveryEmailContent?: string;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n GiftCardBalance?: number;\n LineVersion?: number;\n PromotionLines?: string[];\n PriceLines?: PriceLine[];\n DiscountLines?: DiscountLine[];\n RelatedDiscountedLineIds?: string[];\n ReasonCodeLines?: ReasonCodeLine[];\n ChargeLines?: ChargeLine[];\n TaxRatePercent?: number;\n IsCustomerAccountDeposit?: boolean;\n LinkedParentLineId?: string;\n QuantityReturnable?: number;\n ExtensionProperties?: CommerceProperty[];\n LineNumber?: number;\n CommissionSalesGroup?: string;\n TrackingId?: string;\n StaffId?: string;\n QuantityRemained?: number;\n QuantityShipped?: number;\n CatalogId?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n WarehouseLocation?: string;\n DetailedLineStatusValue?: number;\n SalesAgreementLineRecordId?: number;\n }\n \n /**\n * ThirdPartyGiftCardInfo entity interface.\n */\n export interface ThirdPartyGiftCardInfo {\n Amount?: number;\n Authorization?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardTypeInfo entity interface.\n */\n export interface CardTypeInfo {\n RecordId?: number;\n TypeId?: string;\n Name?: string;\n PaymentMethodId?: string;\n CardTypeValue?: number;\n Issuer?: string;\n NumberFrom?: string;\n NumberTo?: string;\n CashBackLimit?: number;\n AllowManualInput?: boolean;\n CheckModulus?: boolean;\n HasTenderDiscount?: boolean;\n IsPinRequired?: boolean;\n IsExpirationDateRequired?: boolean;\n ConnectorName?: string;\n PaymentProcessorMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CashDeclaration entity interface.\n */\n export interface CashDeclaration {\n RecordId?: number;\n Currency?: string;\n Amount?: number;\n CashTypeValue?: number;\n IncludeInQuickPayShortcuts?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseAccount entity interface.\n */\n export interface IncomeExpenseAccount {\n Amount?: number;\n AccountNumber?: string;\n AccountName?: string;\n AccountNameAlias?: string;\n AccountTypeValue?: number;\n Quantity?: number;\n Message1Line?: string;\n Message2Line?: string;\n SlipText1Line?: string;\n SlipText2Line?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseLine entity interface.\n */\n export interface IncomeExpenseLine {\n Amount?: number;\n IncomeExpenseAccount?: string;\n StoreNumber?: string;\n AccountTypeValue?: number;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartTenderLine entity interface.\n */\n export interface CartTenderLine {\n PaymentCard?: PaymentCard;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n CardPaymentAcceptResult?: CardPaymentAcceptResult;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChargeLine entity interface.\n */\n export interface ChargeLine {\n ChargeLineId?: string;\n ChargeCode?: string;\n CurrencyCode?: string;\n ModuleTypeValue?: number;\n IsHeaderChargeProrated?: boolean;\n ChargeTypeValue?: number;\n ChargeMethodValue?: number;\n CalculatedAmount?: number;\n Value?: number;\n Description?: string;\n TransactionId?: string;\n MarkupAutoLineRecordId?: number;\n MarkupAutoTableRecId?: number;\n SaleLineNumber?: number;\n FromAmount?: number;\n ToAmount?: number;\n Keep?: number;\n AmountRefunded?: number;\n ChargeLineOverrides?: ChargeLineOverride[];\n ReasonCodeLines?: ReasonCodeLine[];\n IsRefundable?: boolean;\n IsShipping?: boolean;\n IsOverridden?: boolean;\n IsInvoiced?: boolean;\n CalculatedProratedAmount?: number;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CityInfo entity interface.\n */\n export interface CityInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommissionSalesGroup entity interface.\n */\n export interface CommissionSalesGroup {\n GroupId?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInformation entity interface.\n */\n export interface ContactInformation {\n Value?: string;\n ContactInformationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeCategory entity interface.\n */\n export interface AttributeCategory {\n Value?: CommercePropertyValue;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeProduct entity interface.\n */\n export interface AttributeProduct {\n MetadataFlags?: ProductAttributeMetadataFlags;\n IsDimension?: boolean;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonEntry entity interface.\n */\n export interface ProductComparisonEntry {\n ProductId: number;\n AttributeValue?: AttributeValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonLine entity interface.\n */\n export interface ProductComparisonLine {\n AttributeRecordId: number;\n AttributeName?: string;\n ProductAttributeComparisonEntries?: ProductComparisonEntry[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchField entity interface.\n */\n export interface CustomerSearchField {\n IsShortcut?: boolean;\n DisplayName?: string;\n CanBeRefined?: boolean;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchByFieldCriteria entity interface.\n */\n export interface CustomerSearchByFieldCriteria {\n Criteria?: CustomerSearchByFieldCriterion[];\n DataLevelValue?: number;\n }\n \n /**\n * CustomerSearchByFieldCriterion entity interface.\n */\n export interface CustomerSearchByFieldCriterion {\n SearchTerm?: string;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchFieldType entity interface.\n */\n export interface CustomerSearchFieldType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderShipments entity interface.\n */\n export interface OrderShipments {\n SalesId?: string;\n ChannelId?: number;\n ChannelReferenceId?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n StatusValue?: number;\n CurrencyCode?: string;\n CustomerId?: string;\n DeliveryMode?: string;\n GrossAmount?: number;\n InventoryLocationId?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n TotalAmount?: number;\n TaxAmount?: number;\n SalesLines?: SalesLine[];\n Shipments?: Shipment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shipment entity interface.\n */\n export interface Shipment {\n SalesId?: string;\n ShipmentId?: string;\n DeliveryAddress?: Address;\n ShipDate?: Date;\n DeliveryMode?: string;\n TermsOfDelivery?: string;\n WeightUnit?: string;\n TrackingNumber?: string;\n TrackingUrl?: string;\n LatestCarrierTrackingInfo?: TrackingInfo;\n CarrierId?: string;\n CarrierName?: string;\n ShippingWeight?: number;\n ShipmentLines?: ShipmentLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipmentLine entity interface.\n */\n export interface ShipmentLine {\n ShipmentLineId?: string;\n ItemId?: string;\n Description?: string;\n InventDimId?: string;\n OrderedQuantity?: number;\n DeliveredQuantity?: number;\n RemainingQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Transaction entity interface.\n */\n export interface Transaction {\n Id?: string;\n StoreId?: string;\n TerminalId?: string;\n IsCreatedOffline?: boolean;\n StaffId?: string;\n LanguageId?: string;\n ShiftId?: string;\n ShiftTerminalId?: string;\n Description?: string;\n ReceiptId?: string;\n GrossAmount?: number;\n TotalAmount?: number;\n CreatedDateTime?: Date;\n TransactionTypeValue?: number;\n TransactionStatusValue?: number;\n BeginDateTime?: Date;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n FromSafe?: string;\n ToSafe?: string;\n FromShiftTerminalId?: string;\n ToShiftTerminalId?: string;\n FromShiftId?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n ToShiftId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftReconciliationLine entity interface.\n */\n export interface ShiftReconciliationLine extends Transaction {\n GroupId?: number;\n GroupDescription?: string;\n ShiftGroupLinesCount?: number;\n ShiftGroupLinesClosedCount?: number;\n }\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity interface.\n */\n export interface ShiftReconciliationLineRetrievalCriteria {\n TransactionTypeValues?: number[];\n ShiftReconciliationLineStatusValue?: number;\n Shifts?: ShiftKey[];\n DestinationShift?: ShiftKey;\n SourceShift?: ShiftKey;\n SourceSafe?: string;\n DestinationSafe?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n }\n \n /**\n * SearchConfiguration entity interface.\n */\n export interface SearchConfiguration {\n ProductSortColumns?: SortColumn[];\n ProductSearchServiceTypeValue?: number;\n ProductSortColumnsLabels?: LocalizedText[];\n }\n \n /**\n * CustomerTimelineItem entity interface.\n */\n export interface CustomerTimelineItem {\n CustomerId?: string;\n Description?: string;\n Id?: string;\n EntityType?: string;\n TypeId?: string;\n StaffId?: string;\n StartDateTime?: Date;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinition entity interface.\n */\n export interface AttributeDefinition {\n RecordId: number;\n Name?: string;\n AttributeTypeName?: string;\n ExtDataType?: ExtensibleAttributeDataType;\n DataTypeValue?: number;\n IsHidden?: boolean;\n IsMandatory?: boolean;\n IsMultiValue?: boolean;\n IsEnumeration?: boolean;\n TranslationDetails?: AttributeTranslationDetails[];\n EnumerationDetails?: AttributeEnumeration[];\n DefaultValue?: CommercePropertyValue;\n UpperBound?: CommercePropertyValue;\n LowerBound?: CommercePropertyValue;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeTranslationDetails entity interface.\n */\n export interface AttributeTranslationDetails {\n AttributeRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumeration entity interface.\n */\n export interface AttributeEnumeration {\n OrdinalNumber?: number;\n EnumerationValue?: string;\n AttributeEnumerationTranslations?: AttributeEnumerationTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumerationTranslation entity interface.\n */\n export interface AttributeEnumerationTranslation {\n LanguageId?: string;\n EnumerationTranslationValue?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinitionCriteria entity interface.\n */\n export interface AttributeDefinitionCriteria {\n AttributeGroupIdentifier?: number;\n Languages?: string[];\n }\n \n /**\n * AttributeGroupDefinition entity interface.\n */\n export interface AttributeGroupDefinition {\n RecordId: number;\n Name?: string;\n TranslationDetails?: AttributeGroupTranslationDetails[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupTranslationDetails entity interface.\n */\n export interface AttributeGroupTranslationDetails {\n AttributeGroupRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupDefinitionCriteria entity interface.\n */\n export interface AttributeGroupDefinitionCriteria {\n AttributeGroupIdentifiers?: number[];\n Languages?: string[];\n }\n \n /**\n * CountyInfo entity interface.\n */\n export interface CountyInfo {\n Name?: string;\n CountyId?: string;\n CountryRegionId?: string;\n StateId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerGroup entity interface.\n */\n export interface CustomerGroup {\n CustomerGroupNumber?: string;\n CustomerGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountLine entity interface.\n */\n export interface DiscountLine {\n SaleLineNumber?: number;\n OfferId?: string;\n OfferName?: string;\n Amount?: number;\n DiscountCost?: number;\n EffectiveAmount?: number;\n EffectivePercentage?: number;\n LineNumber?: number;\n SavedEffectiveAmount?: number;\n Percentage?: number;\n DealPrice?: number;\n DiscountLineTypeValue?: number;\n ManualDiscountTypeValue?: number;\n CustomerDiscountTypeValue?: number;\n PeriodicDiscountTypeValue?: number;\n DiscountApplicationGroup?: string;\n ConcurrencyModeValue?: number;\n IsCompoundable?: boolean;\n DiscountCode?: string;\n PricingPriorityNumber?: number;\n PricingAttributeCombinationPriority?: number;\n IsDiscountCodeRequired?: boolean;\n ThresholdAmountRequired?: number;\n BundleId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeePermissions entity interface.\n */\n export interface EmployeePermissions {\n PriceOverrideRestrictionValue?: number;\n AllowPriceOverride?: number;\n MaximumDiscountPercentage?: number;\n MaximumLineDiscountAmount?: number;\n MaximumLineReturnAmount?: number;\n MaximumTotalDiscountAmount?: number;\n MaximumTotalDiscountPercentage?: number;\n MaxTotalReturnAmount?: number;\n StaffId?: string;\n Roles?: string[];\n AllowUseSharedShift?: boolean;\n AllowManageSharedShift?: boolean;\n AllowTaskGuides?: boolean;\n AllowSaleOutsideAssortment?: boolean;\n AllowPrintingReceiptCopy?: string;\n AllowSkipFiscalRegistration?: boolean;\n AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n AllowPostponeRegistration?: boolean;\n AllowCreateTransferOrder?: boolean;\n AllowAcceptOrder?: boolean;\n AllowTaskManagement?: boolean;\n AllowRejectOrder?: boolean;\n AllowMassActivation?: boolean;\n AllowPostInventoryAdjustment?: boolean;\n AllowPostStockCounting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceProperty entity interface.\n */\n export interface CommerceProperty {\n Key?: string;\n Value?: CommercePropertyValue;\n }\n \n /**\n * CommercePropertyValue entity interface.\n */\n export interface CommercePropertyValue {\n BooleanValue?: boolean;\n ByteValue?: number;\n DateTimeOffsetValue?: Date;\n DecimalValue?: number;\n IntegerValue?: number;\n LongValue?: number;\n StringValue?: string;\n }\n \n /**\n * CountryRegionInfo entity interface.\n */\n export interface CountryRegionInfo {\n CountryRegionId?: string;\n ShortName?: string;\n LongName?: string;\n ISOCode?: string;\n TimeZone?: number;\n LanguageId?: string;\n AddressFormatLines?: AddressFormattingInfo[];\n AddressFormatId?: string;\n AddressFormatName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreditMemo entity interface.\n */\n export interface CreditMemo {\n Id?: string;\n Balance?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Currency entity interface.\n */\n export interface Currency {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n RoundOffPrice?: number;\n RoundOffSales?: number;\n RoundOffTypePrice?: number;\n RoundOffTypeSales?: number;\n NumberOfDecimals?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyAmount entity interface.\n */\n export interface CurrencyAmount {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n ConvertedAmount?: number;\n RoundedConvertedAmount?: number;\n ExchangeRate?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScaleUnitConfiguration entity interface.\n */\n export interface ScaleUnitConfiguration {\n Id?: string;\n Name?: string;\n Region?: string;\n }\n \n /**\n * EnvironmentConfiguration entity interface.\n */\n export interface EnvironmentConfiguration {\n EnvironmentId?: string;\n EnvironmentName?: string;\n TenantId?: string;\n ClientAppInsightsInstrumentationKey?: string;\n HardwareStationAppInsightsInstrumentationKey?: string;\n WindowsPhonePosAppInsightsInstrumentationKey?: string;\n BaseVersion?: string;\n ScaleUnit?: ScaleUnitConfiguration;\n AADAuthority?: string;\n FrameworkName?: string;\n }\n \n /**\n * DeviceConfiguration entity interface.\n */\n export interface DeviceConfiguration {\n UseInMemoryDeviceDataStorage?: boolean;\n AllowItemsAggregation?: boolean;\n AggregateItemsForPrinting?: boolean;\n AggregatePayments?: boolean;\n AlwaysExpandTransactionScreenLineDetails?: boolean;\n AuditEnabled?: boolean;\n DiscountAtTotal?: string;\n ProductDiscount?: string;\n ManuallyCalculateComplexDiscounts?: boolean;\n DisplaySecondaryTotalCurrency?: boolean;\n EndOfTransaction?: string;\n ItemNotOnFile?: string;\n LimitStaffListToStore?: boolean;\n LineItemTaxChange?: string;\n MarkUp?: string;\n MaximumPrice?: number;\n MaximumQuantity?: number;\n MinimumPasswordLength?: number;\n MustKeyInPriceIfZero?: boolean;\n NfcEContingencyModeEnabled?: string;\n NfcEVoided?: string;\n FunctionalityProfileDescription?: string;\n OverridePrice?: string;\n PrintVoidTransactionReceipts?: boolean;\n PrintReceiptsOnCardDecline?: boolean;\n PrintXZReportsOnTerminal?: boolean;\n PrintTenderDetailsOnXReport?: boolean;\n ProfileId?: string;\n RefundSale?: string;\n ReturnProduct?: string;\n SalesPerson?: string;\n SecondaryTotalCurrency?: string;\n SelectHardwareStationOnTendering?: boolean;\n SerialNumber?: string;\n ShowStaffListAtLogOn?: boolean;\n StaffBarcodeLogOn?: boolean;\n StaffBarcodeLogOnRequiresPassword?: boolean;\n StaffCardLogOn?: boolean;\n StaffCardLogOnRequiresPassword?: boolean;\n StartOfTransaction?: string;\n EnableTimeRegistration?: boolean;\n TenderDeclaration?: string;\n TransactionTaxChange?: string;\n VoidItem?: string;\n VoidPayment?: string;\n SalesModeDefaultsAsCustomerOrder?: boolean;\n CreateOfflineCustomerOrders?: boolean;\n CreateAsyncCustomers?: boolean;\n EnableAxCustomerSearch?: boolean;\n VoidTransaction?: string;\n CultureName?: string;\n SystemLegalTermsUrl?: string;\n SystemPrivacyStatementUrl?: string;\n HideTrainingMode?: boolean;\n StorePhone?: string;\n StatementMethod?: string;\n StoreNumber?: string;\n ChannelId?: number;\n StoreTaxGroup?: string;\n TaxIdNumber?: string;\n TaxOverrideGroup?: number;\n TenderDeclarationCalculation?: number;\n UseCustomerBasedTax?: boolean;\n UseDestinationBasedTax?: boolean;\n AutoLogOffTimeoutInMinutes?: number;\n AutoExitMethodValue?: number;\n CustomerDisplayText1?: string;\n CustomerDisplayText2?: string;\n EFTStoreId?: number;\n EFTTerminalId?: string;\n ExitAfterEachTransaction?: boolean;\n HardwareProfile?: string;\n Placement?: string;\n TerminalDescription?: string;\n OpenDrawer?: string;\n OpenDrawerAtLogOnLogOff?: boolean;\n PrintTaxRefundChecks?: boolean;\n StandAlone?: boolean;\n TerminalId?: string;\n TerminalStatement?: boolean;\n VisualProfile?: string;\n Currency?: string;\n InventLocationId?: string;\n IncludeKitComponents?: boolean;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontScheme?: number;\n ShowAppBarLabel?: boolean;\n LogOnBackgroundPictureAsBase64?: string;\n LogOnBackgroundPicturePortraitAsBase64?: string;\n BackgroundPictureAsBase64?: string;\n LogonBackgroundPictureId?: number;\n LogonBackgroundPictureIdCompact?: number;\n LogonBackgroundPictureIdPortrait?: number;\n LogonBackgroundPictureIdCompactPortrait?: number;\n BackgroundPictureId?: number;\n RequireAmountDeclaration?: boolean;\n DecimalNotRequiredForMinorCurrencyUnit?: boolean;\n MaxTransactionSearchResults?: number;\n OfflineProfileId?: number;\n NewOfflineDatabaseCheckInterval?: number;\n OfflineTransactionUploadInterval?: number;\n ReconnectToOnlineInterval?: number;\n SwitchToOfflineTimeout?: number;\n OfflineSwitchApiPerformanceThresholdInSeconds?: number;\n ReconnectFromPerformanceInducedOfflineIntervalInSeconds?: number;\n RetentionDays?: number;\n HardwareConfigurations?: HardwareConfigurations;\n CreateRecording?: boolean;\n PlaybackRecording?: boolean;\n ShouldUseDefaultCommisionSalesGroup?: boolean;\n AskForSalesRepresentative?: number;\n IsSalesRepRequired?: boolean;\n ProhibitMixingSalesAndReturns?: boolean;\n ApplyDiscountsToPriceKeyedIn?: boolean;\n ApplyDiscountsToPriceOverrides?: boolean;\n IsProductSuggestionsEnabled?: boolean;\n ProductSearchType?: string;\n TerminalRecId?: number;\n DeviceRecId?: number;\n DenominationsToDisplayValue?: number;\n PromptOnSeamlessOffline?: boolean;\n RetryCountToOffline?: number;\n EnableAdvancedOfflineSwitching?: boolean;\n SystemHealthCheckInterval?: number;\n RejectOrderFulfillment?: string;\n ManuallyCalculateTaxes?: boolean;\n EmployeeLogonTypeValue?: number;\n StartAmountCalculation?: number;\n BankDropCalculation?: number;\n GenerateLoyaltyCardNumber?: boolean;\n FiscalRegistrationProcessId?: string;\n IncludeSalesOrderInvoices?: boolean;\n IncludeFreeTextInvoices?: boolean;\n IncludeProjectInvoices?: boolean;\n IncludeCreditNoteInvoices?: boolean;\n DisplayTaxExemptInLineDetails?: boolean;\n TaxExemptReceiptIndicator?: string;\n ManuallyCalculateCharges?: boolean;\n ChargeOverrideReasonCode?: string;\n ShiftReconcilation?: string;\n CustomerAccountFloorLimit?: number;\n VoidSuspendedTransactionsOnCloseShift?: boolean;\n ShowDateTime?: boolean;\n UseAdvancedCashManagement?: boolean;\n DefaultCustomerSearchModeValue?: number;\n AllowManualOfflineBeforeSignIn?: boolean;\n UseFinancialReconciliationInStore?: boolean;\n RequirePaymentForFulfillmentValue?: number;\n CardNotPresentProcessingConfigurationValue?: number;\n EnableQuickPayShortcuts?: boolean;\n ChangeDueBehaviorValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VisualProfile entity interface.\n */\n export interface VisualProfile {\n ChannelId?: number;\n TerminalId?: string;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontSchemeTypeValue?: number;\n IsAppBarLabelVisible?: boolean;\n IsDateTimeVisible?: boolean;\n LogOnLayoutTypeValue?: number;\n LogOnKeyboardTypeValue?: number;\n LogonBackgroundPictureId?: number;\n CompactLogonBackgroundPictureId?: number;\n PortraitLogonBackgroundPictureId?: number;\n CompactPortraitLogonBackgroundPictureId?: number;\n BackgroundPictureId?: number;\n LogOnLogoPictureId?: number;\n IsProductIdVisibleOnCartLine?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationalInsightsConfiguration entity interface.\n */\n export interface OperationalInsightsConfiguration {\n InstrumentationKey?: string;\n EnvironmentId?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Device entity interface.\n */\n export interface Device {\n ChannelId: number;\n RecordId?: number;\n DeviceNumber?: string;\n DeviceId?: string;\n Description?: string;\n DeviceType?: number;\n TerminalRecordId?: number;\n TerminalId?: string;\n ChannelName?: string;\n UseInMemoryDeviceDataStorage?: boolean;\n AllowMassActivation?: boolean;\n TokenIssueTime?: Date;\n ActivationStatusValue?: number;\n Token?: string;\n CountryRegionIsoCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountCode entity interface.\n */\n export interface DiscountCode {\n RecordId: number;\n Barcode?: string;\n Code?: string;\n ConcurrencyMode?: number;\n Description?: string;\n Disclaimer?: string;\n IsDiscountCodeRequired?: boolean;\n Name?: string;\n OfferId?: string;\n IsEnabled?: boolean;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DistrictInfo entity interface.\n */\n export interface DistrictInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfile entity interface.\n */\n export interface HardwareProfile {\n RecordId?: number;\n LineDisplayDelayForLinkedItems?: number;\n LineDisplayBalanceText?: string;\n LineDisplayBinaryConversion?: boolean;\n LineDisplayCharacterSet?: number;\n LineDisplayClosedLine1?: string;\n LineDisplayClosedLine2?: string;\n LineDisplayDeviceDescription?: string;\n LineDisplayDeviceTypeValue?: number;\n LineDisplayDeviceName?: string;\n LineDisplayDisplayLinkedItem?: boolean;\n LineDisplayDisplayTerminalClosed?: boolean;\n LineDisplayTotalText?: string;\n DualDisplayActive?: boolean;\n DualDisplayWebBrowserUrl?: string;\n DualDisplayImageRotatorInterval?: number;\n DualDisplayImageRotatorPath?: string;\n DualDisplayReceiptWidthPercentage?: number;\n DualDisplayDisplayType?: string;\n EftTypeId?: number;\n EftCompanyId?: string;\n EftConfiguration?: number;\n EftPaymentConnectorName?: string;\n EftData?: string;\n EftDescription?: string;\n EftMerchantId?: string;\n EftPassword?: string;\n EftServerName?: string;\n EftServerPort?: string;\n EftUserId?: string;\n EftTestMode?: boolean;\n MsrEndTrack1?: string;\n MsrEndTrack2?: string;\n FiscalPrinterManagementReportPAFIdentification?: string;\n FiscalPrinterManagementReportConfigParameter?: string;\n FiscalPrinterManagementReportTenderType?: string;\n FiscalPrinterManagementReportGiftCard?: string;\n FiscalRegisterDeviceTypeValue?: number;\n FiscalRegisterConfiguration?: string;\n FiscalRegisterDeviceDescription?: string;\n FiscalRegisterDeviceName?: string;\n KeyboardMappingId?: string;\n KeyLockDeviceTypeValue?: number;\n KeyLockDeviceDescription?: string;\n KeyLockDeviceName?: string;\n MsrDeviceTypeValue?: number;\n MsrDeviceDescription?: string;\n MsrDeviceName?: string;\n MsrMake?: string;\n MsrModel?: string;\n MsrSeparator?: string;\n MsrStartTrack?: string;\n PinPadDeviceTypeValue?: number;\n PinPadDeviceName?: string;\n PinPadMake?: string;\n PinPadModel?: string;\n PinPadDeviceDescription?: string;\n ProfileDescription?: string;\n ProfileId?: string;\n RFIDDeviceTypeValue?: number;\n RFIDDeviceName?: string;\n RFIDDeviceDescription?: string;\n ScaleDeviceTypeValue?: number;\n ScaleDeviceName?: string;\n ScaleDeviceDescription?: string;\n ScaleManualInputAllowed?: boolean;\n ScaleTimeoutInSeconds?: number;\n SignatureCaptureDeviceTypeValue?: number;\n SignatureCaptureDeviceName?: string;\n SignatureCaptureMake?: string;\n SignatureCaptureModel?: string;\n SignatureCaptureDeviceDescription?: string;\n SignatureCaptureFormName?: string;\n Printers?: HardwareProfilePrinter[];\n Scanners?: HardwareProfileScanner[];\n FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n CashDrawers?: HardwareProfileCashDrawer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SupportedLanguage entity interface.\n */\n export interface SupportedLanguage {\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentCard entity interface.\n */\n export interface PaymentCard {\n UseShippingAddress?: boolean;\n CardNumber?: string;\n CCID?: string;\n Track1?: string;\n Track2?: string;\n Track3?: string;\n VoiceAuthorizationCode?: string;\n EncryptedPin?: string;\n AdditionalSecurityData?: string;\n IsSwipe?: boolean;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardPaymentAcceptSettings entity interface.\n */\n export interface CardPaymentAcceptSettings {\n HostPageOrigin?: string;\n AdaptorPath?: string;\n CardTokenizationEnabled?: boolean;\n CardPaymentEnabled?: boolean;\n PaymentAmount?: number;\n HideBillingAddress?: boolean;\n TenderTypeId?: string;\n Locale?: string;\n RequireShippingAddress?: boolean;\n }\n \n /**\n * CardPaymentAcceptPoint entity interface.\n */\n export interface CardPaymentAcceptPoint {\n AcceptPageUrl?: string;\n AcceptPageSubmitUrl?: string;\n MessageOrigin?: string;\n AcceptPageContent?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * CardPaymentAcceptResult entity interface.\n */\n export interface CardPaymentAcceptResult {\n TenderLine?: TenderLine;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n PaymentSdkErrors?: PaymentError[];\n AdditionalContext?: string;\n AccessCode?: string;\n Settings?: RetrievePaymentResultSettings;\n Email?: string;\n }\n \n /**\n * ReasonCodeLine entity interface.\n */\n export interface ReasonCodeLine {\n LineId?: string;\n Amount?: number;\n Information?: string;\n InformationAmount?: number;\n InputTypeValue?: number;\n ItemTender?: string;\n LineNumber?: number;\n LineTypeValue?: number;\n ParentLineId?: string;\n ReasonCodeId?: string;\n StatementCode?: string;\n SubReasonCodeId?: string;\n SourceCode?: string;\n SourceCode2?: string;\n SourceCode3?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n FiscalTransactionParentGuid?: string;\n IsChanged?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonSubCode entity interface.\n */\n export interface ReasonSubCode {\n TriggerCode?: string;\n AmountPercent: number;\n ReasonCodeId?: string;\n SubCodeId?: string;\n Description?: string;\n TriggerFunctionTypeValue?: number;\n ProductId?: number;\n PriceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Receipt entity interface.\n */\n export interface Receipt {\n TransactionId?: string;\n Header?: string;\n Body?: string;\n Footer?: string;\n Width?: number;\n ReceiptId?: string;\n LayoutId?: string;\n ReceiptTitle?: string;\n ReceiptTypeValue?: number;\n ReceiptTypeStrValue?: string;\n Printers?: Printer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptMask entity interface.\n */\n export interface ReceiptMask {\n FunctionalityProfileId?: string;\n IsIndependent: boolean;\n ReceiptTransactionTypeValue: number;\n RecordId: number;\n Mask?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLine entity interface.\n */\n export interface SalesLine {\n StaffId?: string;\n LineId?: string;\n Description?: string;\n OriginLineId?: string;\n TaxOverrideCode?: string;\n IsPriceKeyedIn?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n ProductId?: number;\n Barcode?: string;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n EntryMethodTypeValue?: number;\n MasterProductId?: number;\n ListingId?: number;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n Comment?: string;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: string;\n ItemType?: number;\n ReservationId?: string;\n LineNumber?: number;\n ReturnQuantity?: number;\n QuantityRemained?: number;\n QuantityShipped?: number;\n LineVersion?: number;\n StatusValue?: number;\n SalesStatusValue?: number;\n ProductSourceValue?: number;\n IsGiftCardLine?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n IsInvoiceSettled?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n IsVoided?: boolean;\n IsPriceLocked?: boolean;\n ChargeLines?: ChargeLine[];\n BasePrice?: number;\n AgreementPrice?: number;\n AdjustedPrice?: number;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n ReturnStore?: string;\n ReturnTerminalId?: string;\n ReturnChannelId?: number;\n FulfillmentStoreId?: string;\n SalesDate?: Date;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n SavedQuantity?: number;\n IsSavedDiscount?: boolean;\n RecordId?: number;\n SerialNumber?: string;\n BatchId?: string;\n DeliveryModeChargeAmount?: number;\n UnitOfMeasureSymbol?: string;\n CatalogId?: number;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyPercentageDiscount?: number;\n TenderDiscountAmount?: number;\n TenderDiscountPercentage?: number;\n GiftCardBalance?: number;\n IsCustomerAccountDeposit?: boolean;\n Blocked?: boolean;\n Found?: boolean;\n DateToActivateItem?: Date;\n LinePercentageDiscount?: number;\n PeriodicPercentageDiscount?: number;\n QuantityDiscounted?: number;\n UnitQuantity?: number;\n UnitOfMeasureConversion?: UnitOfMeasureConversion;\n DiscountLines?: DiscountLine[];\n PriceLines?: PriceLine[];\n AttainablePriceLines?: PriceLine[];\n PeriodicDiscountPossibilities?: DiscountLine[];\n ReasonCodeLines?: ReasonCodeLine[];\n ReturnLabelProperties?: ReturnLabelContent;\n LineMultilineDiscOnItem?: string;\n RelatedDiscountedLineIds?: string[];\n LinkedParentLineId?: string;\n LineMultilineDiscOnItemValue?: number;\n WasChanged?: boolean;\n OriginalSalesOrderUnitOfMeasure?: string;\n InventOrderUnitOfMeasure?: string;\n TrackingId?: string;\n IsLoyaltyDiscountApplied?: boolean;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n QuantityReturnable?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ReturnLoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n DetailedLineStatusValue?: number;\n DetailedLineStatus?: DetailedLineStatus;\n LastReturnProcessedTime?: Date;\n SalesAgreementPrice?: number;\n SalesAgreementLineRecordId?: number;\n IsSalesAgreementSkipped?: boolean;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchArea entity interface.\n */\n export interface SearchArea {\n Longitude?: number;\n Latitude?: number;\n Radius?: number;\n DistanceUnitValue?: number;\n }\n \n /**\n * ShiftAccountLine entity interface.\n */\n export interface ShiftAccountLine {\n AccountTypeValue?: number;\n AccountNumber?: string;\n Amount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftTenderLine entity interface.\n */\n export interface ShiftTenderLine {\n TenderTypeId?: string;\n TenderTypeName?: string;\n CardTypeId?: string;\n TenderCurrency?: string;\n CountingRequired?: boolean;\n StartingAmountOfStoreCurrency?: number;\n StartingAmountOfTenderCurrency?: number;\n FloatingEntryAmountOfStoreCurrency?: number;\n FloatingEntryAmountOfTenderCurrency?: number;\n SafeDropAmountOfStoreCurrency?: number;\n SafeDropAmountOfTenderCurrency?: number;\n BankDropAmountOfStoreCurrency?: number;\n BankDropAmountOfTenderCurrency?: number;\n RemoveTenderAmountOfStoreCurrency?: number;\n RemoveTenderAmountOfTenderCurrency?: number;\n DeclareTenderAmountOfStoreCurrency?: number;\n DeclareTenderAmountOfTenderCurrency?: number;\n TenderedAmountOfStoreCurrency?: number;\n TenderedAmountOfTenderCurrency?: number;\n ChangeAmountOfStoreCurrency?: number;\n ChangeAmountOfTenderCurrency?: number;\n Count?: number;\n Notes?: string;\n Overridden?: boolean;\n OverriddenFloatEntryAmountInStoreCurrency?: number;\n OverriddenFloatEntryAmountInTenderedCurrency?: number;\n OverriddenBankDropAmountInStoreCurrency?: number;\n OverriddenBankDropAmountInTenderedCurrency?: number;\n OverriddenChangeAmountInStoreCurrency?: number;\n OverriddenChangeAmountInTenderedCurrency?: number;\n OverriddenDeclaredTenderAmountInStoreCurrency?: number;\n OverriddenDeclaredTenderAmountInTenderedCurrency?: number;\n OverriddenRemovedTenderAmountInStoreCurrency?: number;\n OverriddenRemovedTenderAmountInTenderedCurrency?: number;\n OverriddenSafeDropAmountInStoreCurrency?: number;\n OverriddenSafeDropAmountInTenderedCurrency?: number;\n OverriddenStartingAmountInStoreCurrency?: number;\n OverriddenStartingAmountInTenderedCurrency?: number;\n OverriddenTenderedAmountInStoreCurrency?: number;\n OverriddenTenderedAmountInTenderedCurrency?: number;\n OverShortAmountOfTenderCurrency?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournalTransaction entity interface.\n */\n export interface StockCountJournalTransaction {\n JournalId?: string;\n RecordId?: number;\n OperationType?: number;\n ItemId?: string;\n DataAreaId?: string;\n ProductRecordId?: number;\n ItemName?: string;\n InventDimId?: string;\n Counted?: number;\n Quantity?: number;\n EstimatedOnHandQuantity?: number;\n OnHandCalculationDateTime?: Date;\n Unit?: string;\n UserId?: string;\n TerminalId?: string;\n CountedDate?: Date;\n Status?: number;\n InventBatchId?: string;\n WarehouseLocationId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n WarehousePalletId?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n InventSerialId?: string;\n TrackingGuid?: string;\n UpdatedInAx?: boolean;\n Message?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxLine entity interface.\n */\n export interface TaxLine {\n TaxGroup?: string;\n Percentage?: number;\n IsExempt?: boolean;\n TaxBasis?: number;\n IsIncludedInPrice?: boolean;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TaxCode?: string;\n Amount?: number;\n AmountRefunded?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderLine entity interface.\n */\n export interface TenderLine {\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n InternalTransactionId?: string;\n RefundableAmount?: number;\n CaptureToken?: string;\n CardToken?: string;\n Authorization?: string;\n TransactionStatusValue?: number;\n IncomeExpenseAccountTypeValue?: number;\n MaskedCardNumber?: string;\n TenderDate?: Date;\n IsPreProcessed?: boolean;\n IsDeposit?: boolean;\n IsCustomerAccountFloorLimitUsed?: boolean;\n AuthorizationReferenceId?: string;\n IsIncrementalCaptureEnabled?: boolean;\n IsReauthorizationEnabled?: boolean;\n IncrementalOffsetAmount?: number;\n ChannelId?: number;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n RoundingDifference?: number;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TextValueTranslation entity interface.\n */\n export interface TextValueTranslation {\n Language?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UnitOfMeasure entity interface.\n */\n export interface UnitOfMeasure {\n DecimalPrecision?: number;\n Symbol?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendedElement entity interface.\n */\n export interface RecommendedElement {\n ElementId?: string;\n ElementTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendationCriteria entity interface.\n */\n export interface RecommendationCriteria {\n CustomerAccountNumber?: string;\n CatalogId?: number;\n ProductIds?: number[];\n CategoryIds?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductListLine entity interface.\n */\n export interface ProductListLine {\n ProductListId?: string;\n LineId?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListLine entity interface.\n */\n export interface CommerceListLine {\n CommerceListId?: number;\n LineId?: number;\n CustomerId?: string;\n CustomerName?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListContributor entity interface.\n */\n export interface CommerceListContributor {\n RecordId?: number;\n CustomerId?: string;\n CustomerName?: string;\n InvitationId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListInvitation entity interface.\n */\n export interface CommerceListInvitation {\n RecordId?: number;\n Invitee?: string;\n IsSent?: boolean;\n LastRequestDateTime?: Date;\n LastSentDateTime?: Date;\n StatusValue?: number;\n Token?: string;\n InvitationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchFilter entity interface.\n */\n export interface SearchFilter {\n Key?: string;\n FilterTypeValue: number;\n SearchValues?: SearchFilterValue[];\n }\n \n /**\n * SearchFilterValue entity interface.\n */\n export interface SearchFilterValue {\n Value?: CommercePropertyValue;\n }\n \n /**\n * TransactionSearchCriteria entity interface.\n */\n export interface TransactionSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SearchLocationTypeValue?: number;\n CustomFilters?: SearchFilter[];\n }\n \n /**\n * SalesOrderSearchCriteria entity interface.\n */\n export interface SalesOrderSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n SearchTypeValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n IncludeDetails?: boolean;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SalesTransactionTypeValues?: number[];\n SearchLocationTypeValue?: number;\n TransactionStatusTypeValues?: number[];\n }\n \n /**\n * SearchStoreCriteria entity interface.\n */\n export interface SearchStoreCriteria {\n ChannelId?: number;\n StoreNumber?: string;\n InventoryLocationId?: string;\n }\n \n /**\n * CustomerSearchCriteria entity interface.\n */\n export interface CustomerSearchCriteria {\n Keyword?: string;\n SearchOnlyCurrentCompany?: boolean;\n SearchLocationValue?: number;\n Refinements?: CustomerRefinerValue[];\n DataLevelValue?: number;\n }\n \n /**\n * ProductPrice entity interface.\n */\n export interface ProductPrice {\n ProductId?: number;\n ListingId?: number;\n BasePrice?: number;\n TradeAgreementPrice?: number;\n AdjustedPrice?: number;\n MaxVariantPrice?: number;\n MinVariantPrice?: number;\n CustomerContextualPrice?: number;\n DiscountAmount?: number;\n CurrencyCode?: string;\n ItemId?: string;\n InventoryDimensionId?: string;\n UnitOfMeasure?: string;\n ValidFrom?: Date;\n ProductLookupId?: number;\n ChannelId?: number;\n CatalogId?: number;\n DiscountLines?: DiscountLine[];\n SalesAgreementPrice?: number;\n PriceSourceTypeValue?: number;\n AttainablePriceLines?: PriceLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailability entity interface.\n */\n export interface OrgUnitAvailability {\n OrgUnitLocation?: OrgUnitLocation;\n ItemAvailabilities?: ItemAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductVariantPropertySet entity interface.\n */\n export interface ProductVariantPropertySet {\n VariantId?: number;\n ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n }\n \n /**\n * PurchaseOrderLine entity interface.\n */\n export interface PurchaseOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseQuantity?: number;\n PurchaseUnit?: string;\n PurchaseReceived?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n UniqueIdentifier?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderLine entity interface.\n */\n export interface TransferOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityTransferred?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityRemainShip?: number;\n QuantityRemainReceive?: number;\n PurchaseUnit?: string;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderJournal entity interface.\n */\n export interface TransferOrderJournal {\n OrderId?: string;\n VoucherId?: string;\n UpdatedByWorker?: string;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n PostingDate?: Date;\n DeliveryMode?: string;\n Comments?: string;\n JournalLines?: TransferOrderJournalLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingListLine entity interface.\n */\n export interface PickingListLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Affiliation entity interface.\n */\n export interface Affiliation {\n RecordId?: number;\n AffiliationTypeValue?: number;\n Description?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity interface.\n */\n export interface InventoryInboundOutboundDocumentLinesSummary {\n InProgressQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity interface.\n */\n export interface InventoryDocumentSerialNumberLinesSummary {\n RegisteringQuantity?: number;\n RegisteredQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundDocumentLine {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentLineRecordId?: number;\n SourceDocumentTypeValue?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n QuantityToUpdate?: number;\n LocationId?: string;\n ItemId?: string;\n ProductId?: number;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n ProductDimensions?: ProductDimension[];\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n OperationResultMessage?: string;\n IsCloseLine?: boolean;\n OriginTypeValue?: number;\n UnitOfMeasure?: string;\n SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n LongVersion?: number;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocument entity interface.\n */\n export interface InventoryInboundOutboundSourceDocument {\n RecordId?: number;\n DocumentTypeValue?: number;\n DocumentId?: string;\n StatusValue?: number;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n TotalQuantityOrdered?: number;\n TotalQuantityShipped?: number;\n TotalQuantityReceived?: number;\n TotalQuantityCancelled?: number;\n DataAreaId?: string;\n Note?: string;\n TotalLines?: number;\n IsChangeAllowed?: boolean;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundSourceDocumentLine {\n DocumentRecordId?: number;\n DocumentTypeValue?: number;\n RecordId?: number;\n LineNumber?: number;\n ItemId?: string;\n ProductId?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n LocationId?: string;\n OverDeliveryPercentage?: number;\n UnderDeliveryPercentage?: number;\n UnitId?: string;\n Receiver?: string;\n DataAreaId?: string;\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentId?: string;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n HasSerialNumber?: boolean;\n IsSerialNumberBlankReceiptAllowed?: boolean;\n IsSerialNumberDuplicateCheckEnabled?: boolean;\n ProductDimensions?: ProductDimension[];\n SerialNumberLines?: InventoryDocumentSourceSerialNumberLine[];\n StatusValue?: number;\n ToProductId?: number;\n ToLocationId?: string;\n InventoryDimensionId?: string;\n ToInventoryDimensionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineFilterCriteria entity interface.\n */\n export interface InventoryDocumentLineFilterCriteria {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentUpdateLinesAction entity interface.\n */\n export interface InventoryDocumentUpdateLinesAction {\n Quantity?: number;\n ActionTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineOperationResultSettings entity interface.\n */\n export interface InventoryDocumentLineOperationResultSettings {\n ModeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentLineSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ProductId?: number;\n ItemIds?: string[];\n AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n DocumentOperationTypeValue?: number;\n OperationTypeValue?: number;\n LocationId?: string;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: string;\n TransferFromWarehouse?: string;\n ShipFromWarehouse?: string;\n TransferToWarehouse?: string;\n Description?: string;\n DocumentTypeIds?: string[];\n DocumentStateValue?: number;\n DocumentTypeValues?: number[];\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentSerialNumberLineSearchCriteria {\n DocumentLineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineUpdateAction {\n DocumentLineId?: string;\n LineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineResetAction {\n DocumentLineId?: string;\n LineId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity interface.\n */\n export interface InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n UpdatedLines?: InventoryInboundOutboundDocumentLine[];\n TotalLinesUpdated?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarehouseLocationSearchCriteria entity interface.\n */\n export interface WarehouseLocationSearchCriteria {\n WarehouseIds?: string[];\n IsLocationProfileRequired?: boolean;\n SearchText?: string;\n }\n \n /**\n * InventoryDocumentSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSerialNumberLine {\n WorkDocumentId?: string;\n WorkDocumentLineId?: string;\n SourceLineId?: string;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n ModifiedDateTime?: Date;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n SourceLine?: InventoryDocumentSourceSerialNumberLine;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity interface.\n */\n export interface InventoryDocumentValidationCategoryResultsSummary {\n CategoryName?: string;\n SeverityValue?: number;\n TotalValidationResultCount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSummary entity interface.\n */\n export interface InventoryDocumentValidationResultSummary {\n DocumentId?: string;\n DocumentVersion?: number;\n CategorySummaries?: InventoryDocumentValidationCategoryResultsSummary[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultLine entity interface.\n */\n export interface InventoryDocumentValidationResultLine {\n DocumentValidationResultLineId?: string;\n CategoryName?: string;\n SeverityValue?: number;\n ErrorCode?: number;\n ErrorMessage?: string;\n DocumentId?: string;\n DocumentLongVersion?: number;\n DocumentLineId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity interface.\n */\n export interface InventoryDocumentValidationResultSearchCriteria {\n DocumentId?: string;\n DocumentVersion?: number;\n SeverityValue?: number;\n Categories?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValueInventoryAvailability entity interface.\n */\n export interface ProductDimensionValueInventoryAvailability {\n DimensionTypeValue?: number;\n DimensionValue?: ProductDimensionValue;\n ProductIds?: number[];\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n }\n \n /**\n * ProductDimension entity interface.\n */\n export interface ProductDimension {\n DimensionTypeValue: number;\n DimensionValue?: ProductDimensionValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValue entity interface.\n */\n export interface ProductDimensionValue {\n RecordId: number;\n Value?: string;\n DimensionId?: string;\n ColorHexCode?: string;\n ImageUrl?: string;\n RefinerGroup?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionCombination entity interface.\n */\n export interface ProductDimensionCombination {\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefiner entity interface.\n */\n export interface SearchRefiner {\n RecordId?: number;\n KeyName?: string;\n DataTypeValue?: number;\n RefinerTypeValue?: number;\n DisplayTemplateValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefinerValue entity interface.\n */\n export interface SearchRefinerValue {\n RefinerRecordId?: number;\n DataTypeValue?: number;\n LeftValueBoundString?: string;\n RightValueBoundString?: string;\n UnitText?: string;\n RowNumber?: number;\n Count?: number;\n LeftValueBoundLocalizedString?: string;\n RightValueBoundLocalizedString?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRefiner entity interface.\n */\n export interface ProductRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ProductRefinerValue[];\n IsDimension?: boolean;\n }\n \n /**\n * ProductRefinerValue entity interface.\n */\n export interface ProductRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n }\n \n /**\n * ClientBookRefiner entity interface.\n */\n export interface ClientBookRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ClientBookRefinerValue[];\n }\n \n /**\n * ClientBookRefinerValue entity interface.\n */\n export interface ClientBookRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * ProductRelationType entity interface.\n */\n export interface ProductRelationType {\n Name?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentInSlotRelation entity interface.\n */\n export interface ComponentInSlotRelation {\n ComponentId: number;\n SlotId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRules entity interface.\n */\n export interface ProductRules {\n HasLinkedProducts: boolean;\n IsSerialized: boolean;\n IsActiveInSalesProcess: boolean;\n IsBlocked: boolean;\n DateOfBlocking: Date;\n DateToActivate: Date;\n DateToBlock: Date;\n DefaultUnitOfMeasure?: string;\n PriceKeyingRequirementValue: number;\n QuantityKeyingRequirementValue: number;\n MustKeyInComment: boolean;\n CanQuantityBecomeNegative: boolean;\n MustScaleItem: boolean;\n CanPriceBeZero: boolean;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedString entity interface.\n */\n export interface LocalizedString {\n RecordId?: number;\n LanguageId?: string;\n TextId?: number;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCard entity interface.\n */\n export interface LoyaltyCard {\n CardNumber?: string;\n CardTenderTypeValue?: number;\n CustomerAccount?: string;\n LoyaltyGroups?: LoyaltyGroup[];\n RewardPoints?: LoyaltyRewardPoint[];\n LoyaltyEnrollmentDate?: Date;\n LoyaltyEnrollmentDateLocal?: Date;\n LoyaltyEnrollmentTime?: number;\n LoyaltyEnrollmentTimeLocal?: number;\n OmOperatingUnitId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComponent entity interface.\n */\n export interface ProductComponent {\n ProductId: number;\n SlotId: number;\n Product?: SimpleProduct;\n AdditionalChargeForComponent?: number;\n Behavior?: ProductBehavior;\n Description?: string;\n Dimensions?: ProductDimension[];\n ItemId?: string;\n Name?: string;\n ProductTypeValue?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleProduct entity interface.\n */\n export interface SimpleProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n MasterProductId?: number;\n Components?: ProductComponent[];\n IsGiftCard?: boolean;\n Dimensions?: ProductDimension[];\n Behavior?: ProductBehavior;\n LinkedProducts?: SimpleLinkedProduct[];\n PrimaryImageUrl?: string;\n ItemTypeValue?: number;\n ItemServiceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductBehavior entity interface.\n */\n export interface ProductBehavior {\n HasSerialNumber: boolean;\n IsDiscountAllowed: boolean;\n IsManualDiscountAllowed: boolean;\n IsKitDisassemblyAllowed: boolean;\n IsNegativeQuantityAllowed: boolean;\n IsReturnAllowed: boolean;\n IsSaleAtPhysicalStoresAllowed: boolean;\n IsZeroSalePriceAllowed: boolean;\n KeyInPriceValue: number;\n KeyInQuantityValue: number;\n MustKeyInComment: boolean;\n MustPrintIndividualShelfLabelsForVariants: boolean;\n MustPromptForSerialNumberOnlyAtSale: boolean;\n MustWeighProductAtSale: boolean;\n ValidFromDateForSaleAtPhysicalStores: Date;\n ValidToDateForSaleAtPhysicalStores: Date;\n IsStorageDimensionGroupLocationActive: boolean;\n IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n AllowNegativePhysicalInventory: boolean;\n IsStockedProduct: boolean;\n IsBlankSerialNumberAllowed?: boolean;\n IsBlankSerialNumberReceiptAllowed?: boolean;\n IsSerialNumberControlEnabled?: boolean;\n IsStorageDimensionGroupLocationBlankIssueAllowed?: boolean;\n IsSerialNumberRequired?: boolean;\n DefaultQuantity?: number;\n MaximumQuantity?: number;\n MinimumQuantity?: number;\n MultipleOfQuantity?: number;\n InventoryLocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleLinkedProduct entity interface.\n */\n export interface SimpleLinkedProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n Quantity: number;\n Behavior?: ProductBehavior;\n Dimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductSearchResult entity interface.\n */\n export interface ProductSearchResult {\n ItemId?: string;\n Name?: string;\n Price: number;\n PrimaryImageUrl?: string;\n RecordId: number;\n TrackingId?: string;\n AverageRating?: number;\n TotalRatings?: number;\n Description?: string;\n BasePrice?: number;\n MinVariantPrice?: number;\n MaxVariantPrice?: number;\n DisplayOrder?: number;\n AttributeValues?: AttributeValue[];\n IsMasterProduct?: boolean;\n MasterProductId?: number;\n DefaultUnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchSuggestion entity interface.\n */\n export interface SearchSuggestion {\n Value?: string;\n Value2?: CommerceProperty;\n Value3?: CommerceProperty;\n Value4?: CommerceProperty;\n SuggestionType?: string;\n Id?: string;\n ImageUrl?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyPointRedemptionEstimate entity interface.\n */\n export interface LoyaltyPointRedemptionEstimate {\n MaxCurrencyValueOfLoyaltyPoints?: number;\n RewardPointToRedeemList?: LoyaltyRewardPointLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyGroup entity interface.\n */\n export interface LoyaltyGroup {\n Description?: string;\n Name?: string;\n RecordId: number;\n LoyaltyTiers?: LoyaltyTier[];\n LoyaltyCardTiers?: LoyaltyCardTier[];\n HighestActiveLoyaltyCardTier?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyTier entity interface.\n */\n export interface LoyaltyTier {\n Description?: string;\n RecordId: number;\n TierId?: string;\n TierLevel: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTier entity interface.\n */\n export interface LoyaltyCardTier {\n RecordId: number;\n TierId?: string;\n LoyaltyTierRecordId: number;\n ValidFrom: Date;\n ValidTo: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPoint entity interface.\n */\n export interface LoyaltyRewardPoint {\n IsRedeemable: boolean;\n RewardPointCurrency?: string;\n RewardPointTypeValue: number;\n Description?: string;\n RewardPointId?: string;\n IssuedPoints?: number;\n UsedPoints?: number;\n ExpiredPoints?: number;\n ActivePoints?: number;\n PointsExpiringSoon?: number;\n UnvestedPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTransaction entity interface.\n */\n export interface LoyaltyCardTransaction {\n ChannelName?: string;\n EntryDateTime: Date;\n EntryTypeValue: number;\n ExpirationDate: Date;\n RewardPointAmountQuantity: number;\n TransactionId?: string;\n }\n \n /**\n * GiftCard entity interface.\n */\n export interface GiftCard {\n Id?: string;\n Balance?: number;\n BalanceCurrencyCode?: string;\n BalanceInCardCurrency?: number;\n CardCurrencyCode?: string;\n GiftCardIssueAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationPermission entity interface.\n */\n export interface OperationPermission {\n OperationName?: string;\n OperationId?: number;\n CheckUserAccess?: boolean;\n AllowAnonymousAccess?: boolean;\n AllowCustomerAccess?: boolean;\n AllowApplicationAccess?: boolean;\n IsEnabledForTaskManagement?: boolean;\n Permissions?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StateProvinceInfo entity interface.\n */\n export interface StateProvinceInfo {\n CountryRegionId?: string;\n StateId?: string;\n StateName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransactionLog entity interface.\n */\n export interface TransactionLog extends Transaction {\n }\n \n /**\n * KitTransaction entity interface.\n */\n export interface KitTransaction extends TransactionLog {\n KitTransactionLines?: KitTransactionLine[];\n }\n \n /**\n * SalesTaxGroup entity interface.\n */\n export interface SalesTaxGroup {\n RecordId: number;\n TaxGroup?: string;\n TaxGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductProperty entity interface.\n */\n export interface ProductProperty {\n ValueString?: string;\n UnitText?: string;\n PropertyTypeValue?: number;\n KeyName?: string;\n FriendlyName?: string;\n RecordId?: number;\n IsDimensionProperty?: boolean;\n AttributeValueId?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n GroupId?: number;\n GroupTypeValue?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n ProductId?: number;\n CatalogId?: number;\n }\n \n /**\n * ProductCompositionInformation entity interface.\n */\n export interface ProductCompositionInformation {\n VariantInformation?: ProductVariantInformation;\n KitDefinition?: KitDefinition;\n }\n \n /**\n * ProductVariantInformation entity interface.\n */\n export interface ProductVariantInformation {\n ActiveVariantProductId: number;\n Variants?: ProductVariant[];\n Dimensions?: ProductDimensionSet[];\n ItemId?: string;\n MasterProductId?: number;\n }\n \n /**\n * ProductChangeTrackingInformation entity interface.\n */\n export interface ProductChangeTrackingInformation {\n ModifiedDateTime: Date;\n ChangeActionValue?: number;\n RequestedActionValue?: number;\n }\n \n /**\n * ProductDimensionSet entity interface.\n */\n export interface ProductDimensionSet {\n DimensionKey?: string;\n DimensionValues?: ProductDimensionValueSet[];\n }\n \n /**\n * ProductDimensionValueSet entity interface.\n */\n export interface ProductDimensionValueSet {\n DimensionId?: string;\n DimensionValue?: string;\n VariantSet?: number[];\n Language?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n SwatchRefinerGroupValue?: string;\n SwatchRefinerGroupTranslation?: string;\n SwatchRefinerGroupImageUrl?: string;\n SwatchRefinerGroupColorHexCode?: string;\n }\n \n /**\n * RichMediaLocations entity interface.\n */\n export interface RichMediaLocations {\n Items?: RichMediaLocationsRichMediaLocation[];\n }\n \n /**\n * RichMediaLocationsRichMediaLocation entity interface.\n */\n export interface RichMediaLocationsRichMediaLocation {\n Url?: string;\n AltText?: string;\n IsSelfHosted?: boolean;\n IsDefault?: boolean;\n }\n \n /**\n * KitDefinition entity interface.\n */\n export interface KitDefinition {\n DisassembleAtRegister: boolean;\n KitLineDefinitions?: KitLineDefinition[];\n KitLineProductToVariantMap?: ComponentKitVariantSet[];\n KitVariantToComponentMap?: KitVariantContent[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentKitVariantSet entity interface.\n */\n export interface ComponentKitVariantSet {\n KitLineProductId: number;\n KitVariantIdList?: number[];\n }\n \n /**\n * KitLineDefinition entity interface.\n */\n export interface KitLineDefinition {\n ComponentProductId: number;\n KitLineIdentifier: number;\n SubstituteProductIds?: number[];\n ComponentProperties?: KitLineProductProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitLineProductProperty entity interface.\n */\n export interface KitLineProductProperty {\n KitLineIdentifier: number;\n ProductId: number;\n Unit?: string;\n Quantity: number;\n Charge: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponentKey entity interface.\n */\n export interface KitComponentKey {\n KitLineIdentifier: number;\n DistinctProductId: number;\n }\n \n /**\n * KitVariantContent entity interface.\n */\n export interface KitVariantContent {\n KitVariantId: number;\n KitComponentKeyList?: KitComponentKey[];\n }\n \n /**\n * ProductLookupClause entity interface.\n */\n export interface ProductLookupClause {\n ItemId?: string;\n InventDimensionId?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAssortmentInterval entity interface.\n */\n export interface ProductAssortmentInterval {\n ProductId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocation entity interface.\n */\n export interface OrgUnitLocation {\n Contacts?: OrgUnitContact[];\n ChannelId?: number;\n Latitude?: number;\n Longitude?: number;\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n Address?: string;\n Street?: string;\n StreetNumber?: string;\n City?: string;\n DistrictName?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n Zip?: string;\n County?: string;\n CountyName?: string;\n State?: string;\n StateName?: string;\n Country?: string;\n Distance?: number;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n PostalAddressId?: number;\n OpenFrom?: number;\n OpenTo?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitContact entity interface.\n */\n export interface OrgUnitContact {\n ChannelId: number;\n Locator?: string;\n LocatorExtension?: string;\n ContactTypeValue: number;\n IsPrimary: boolean;\n IsPrivate: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLineDeliveryOption entity interface.\n */\n export interface SalesLineDeliveryOption {\n SalesLineId?: string;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * DeliveryOption entity interface.\n */\n export interface DeliveryOption {\n ChargeGroup?: string;\n Code?: string;\n Description?: string;\n RecordId: number;\n DeliveryChargeLines?: DeliveryChargeLine[];\n TotalChargeAmount?: number;\n ShippingChargeAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOption entity interface.\n */\n export interface ChannelDeliveryOption {\n ChannelId: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ChannelIdentity entity interface.\n */\n export interface ChannelIdentity {\n ChannelType: ExtensibleRetailChannelType;\n Name?: string;\n OperatingUnitNumber?: string;\n DataAreaId?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleRetailChannelType entity interface.\n */\n export interface ExtensibleRetailChannelType extends ExtensibleEnumeration {\n }\n \n /**\n * ChannelProfileProperty entity interface.\n */\n export interface ChannelProfileProperty {\n Key: number;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelConfiguration entity interface.\n */\n export interface ChannelConfiguration {\n RecordId: number;\n ChannelNaturalId?: string;\n MinimumDepositPercentage: number;\n QuoteExpirationDays: number;\n PickupDeliveryModeCode?: string;\n CarryoutDeliveryModeCode?: string;\n CancellationChargePercentage: number;\n InventLocation?: string;\n InventLocationDataAreaId?: string;\n BingMapsApiKey?: string;\n BingMapsEnabled: boolean;\n Currency?: string;\n CatalogDefaultImageTemplate?: string;\n CompanyCurrency?: string;\n PriceIncludesSalesTax: boolean;\n CountryRegionId?: string;\n ChannelCountryRegionISOCode?: string;\n DefaultLanguageId?: string;\n TimeZoneInfoId?: string;\n EmailDeliveryModeCode?: string;\n GiftCardItemId?: string;\n EnableProductRecommendations: boolean;\n RefundableShippingAmountWithoutApproval: number;\n RefundShippingCharges: boolean;\n ReceiptSettingsValue: number;\n CustomerAttributeGroupId: number;\n ClientBookAttributeGroupId: number;\n NotificationRefreshInterval: number;\n AllowExchangeOnReturnOrders?: boolean;\n FiscalRegistrationProcessId?: string;\n IsInventoryAutomaticValidationEnabled: boolean;\n ProfileProperties?: ChannelProfileProperty[];\n Properties?: ChannelProperty[];\n Languages?: ChannelLanguage[];\n UseAdvancedAutoCharges?: boolean;\n UseRTSForOnlineOrderCreation?: boolean;\n IsWarrantyAutoPromptEnabled?: boolean;\n EnableProductRatingsForRetailStores?: boolean;\n EnableFetchingPickingListsForPickingAndReceiving?: boolean;\n EnableReturnsForMultipleOrderInvoices?: boolean;\n EnableAnonymousOrderLookupByChannelReferenceId?: boolean;\n VoidSuspendedTransactionsOnCloseShift?: number;\n EnableOmniChannelPayments?: boolean;\n UseAdvancedCashManagement?: boolean;\n EnableFiscalRegistrationStorageBackup?: boolean;\n UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n SalesOrderHeaderAttributeGroups?: number[];\n SalesOrderLinesAttributeGroups?: number[];\n CustomerAddressBooks?: StoreAddressBook[];\n EnableReturnPolicies?: boolean;\n InventAvailabilityCalculationMode?: string;\n IsPriceInclusiveTaxExemptCalculationEnabled?: boolean;\n EnableValidationOfSerialNumbersForInStoreReturns?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelProperty entity interface.\n */\n export interface ChannelProperty {\n Name?: string;\n Value?: string;\n Channel?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelLanguage entity interface.\n */\n export interface ChannelLanguage {\n LanguageId?: string;\n IsDefault: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOptionConfiguration entity interface.\n */\n export interface ChannelDeliveryOptionConfiguration {\n PickupDeliveryModeCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NonSalesTransaction entity interface.\n */\n export interface NonSalesTransaction extends Transaction {\n ReasonCodeLines?: ReasonCodeLine[];\n Amount?: number;\n ForeignCurrency?: string;\n OpenDrawer?: boolean;\n DenominationDetails?: DenominationDetail[];\n }\n \n /**\n * DropAndDeclareTransaction entity interface.\n */\n export interface DropAndDeclareTransaction extends Transaction {\n TenderDetails?: TenderDetail[];\n ReasonCodeLines?: ReasonCodeLine[];\n OpenDrawer?: boolean;\n }\n \n /**\n * ProductSearchCriteria entity interface.\n */\n export interface ProductSearchCriteria {\n Ids?: number[];\n CategoryIds?: number[];\n IncludeProductsFromDescendantCategories?: boolean;\n SearchCondition?: string;\n SkipVariantExpansion?: boolean;\n IncludeAttributes?: boolean;\n Barcodes?: string[];\n ItemIds?: ProductLookupClause[];\n Refinement?: ProductRefinerValue[];\n CustomerAccountNumber?: string;\n RecommendationListId?: string;\n DownloadProductData?: boolean;\n Context?: ProjectionDomain;\n Language?: string;\n IsOnline?: boolean;\n DataLevelValue?: number;\n }\n \n /**\n * ChangedProductsSearchCriteria entity interface.\n */\n export interface ChangedProductsSearchCriteria {\n SynchronizationToken?: string;\n Context?: ProjectionDomain;\n AsListings?: boolean;\n Session?: ReadChangedProductsSession;\n DataLevelValue?: number;\n }\n \n /**\n * EmployeeActivitySearchCriteria entity interface.\n */\n export interface EmployeeActivitySearchCriteria {\n FromDateTimeOffset?: Date;\n ToDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValues?: number[];\n DataLevelValue?: number;\n }\n \n /**\n * SearchSuggestionCriteria entity interface.\n */\n export interface SearchSuggestionCriteria {\n ProductSearchCriteria?: ProductSearchCriteria;\n CustomerSearchCriteria?: CustomerSearchCriteria;\n SuggestionType?: string;\n HitPrefix?: string;\n HitSuffix?: string;\n }\n \n /**\n * CartLineDeliveryPreference entity interface.\n */\n export interface CartLineDeliveryPreference {\n LineId?: string;\n DeliveryPreferenceTypeValues?: number[];\n }\n \n /**\n * CartLinePromotion entity interface.\n */\n export interface CartLinePromotion {\n LineId?: string;\n Promotions?: string[];\n }\n \n /**\n * ProductVariant entity interface.\n */\n export interface ProductVariant {\n ItemId?: string;\n MasterProductId: number;\n InventoryDimensionId?: string;\n AdjustedPrice: number;\n BasePrice: number;\n Price: number;\n Color?: string;\n Style?: string;\n Size?: string;\n Configuration?: string;\n ColorId?: string;\n StyleId?: string;\n SizeId?: string;\n ConfigId?: string;\n VariantId?: string;\n Images?: RichMediaLocations[];\n DistinctProductVariantId?: number;\n ProductNumber?: string;\n PropertiesAsList?: ProductPropertyTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfilePrinter entity interface.\n */\n export interface HardwareProfilePrinter {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n DeviceDescription?: string;\n CharacterSet?: number;\n ReceiptProfileId?: string;\n BinaryConversion?: boolean;\n DocInsertRemovalTimeout?: number;\n Logo?: string;\n LogoAlignment?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileScanner entity interface.\n */\n export interface HardwareProfileScanner {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DecodeData?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileCashDrawer entity interface.\n */\n export interface HardwareProfileCashDrawer {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n IsSharedShiftDrawer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TillLayout entity interface.\n */\n export interface TillLayout {\n CashChangerLayoutXml?: string;\n CustomerLayoutId?: string;\n CustomerLayoutXml?: string;\n Height?: number;\n LayoutId?: string;\n LayoutTypeValue?: number;\n LayoutXml?: string;\n LayoutXmlPortrait?: string;\n Name?: string;\n ReceiptId?: string;\n ReceiptItemsLayoutXml?: string;\n ReceiptPaymentLayoutXml?: string;\n TotalId?: string;\n TotalsLayoutXml?: string;\n Width?: number;\n RecordId?: number;\n StartScreen?: number;\n ButtonGridZones?: ButtonGridZone[];\n ImageZones?: ImageZone[];\n ReportZones?: ReportZone[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoice entity interface.\n */\n export interface SalesInvoice {\n RecordId?: number;\n ChannelId?: number;\n Id?: string;\n SalesId?: string;\n SalesType?: string;\n InvoiceDate?: Date;\n DueDate?: Date;\n CurrencyCode?: string;\n InvoiceSubtotal?: number;\n TotalCharges?: number;\n TotalTaxAmount?: number;\n TotalLineDiscount?: number;\n TotalDiscount?: number;\n Amount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n Account?: string;\n Name?: string;\n TotalManualDiscountPercentage?: number;\n TotalManualDiscountAmount?: number;\n SalesInvoiceLine?: SalesInvoiceLine[];\n ChargeLines?: ChargeLine[];\n TenderLines?: TenderLine[];\n DeliveryModeChargeAmount?: number;\n OrderAccount?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrderInvoice entity interface.\n */\n export interface OrderInvoice {\n Id?: string;\n CustomerAccountNumber?: string;\n CustomerName?: string;\n InvoiceDate?: Date;\n TotalAmount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n InvoiceTypeValue?: number;\n CurrencyCode?: string;\n InvoiceDueDate?: Date;\n InvoicePaidStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxOverride entity interface.\n */\n export interface TaxOverride {\n Code?: string;\n SourceTaxGroup?: string;\n DestinationTaxGroup?: string;\n SourceItemTaxGroup?: string;\n DestinationItemTaxGroup?: string;\n ChannelId?: number;\n AdditionalDescription?: string;\n Status?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderType entity interface.\n */\n export interface TenderType {\n Function: number;\n TenderTypeId?: string;\n Name?: string;\n OperationId?: number;\n OperationName?: string;\n ChangeTenderTypeId?: string;\n AboveMinimumChangeAmount?: number;\n AboveMinimumChangeTenderTypeId?: string;\n OpenDrawer?: boolean;\n UseSignatureCaptureDevice?: boolean;\n MinimumSignatureCaptureAmount?: number;\n IsOvertenderAllowed?: boolean;\n IsUndertenderAllowed?: boolean;\n MaximumOvertenderAmount?: number;\n MaximumUndertenderAmount?: number;\n MaximumAmountPerTransaction?: number;\n MaximumAmountPerLine?: number;\n MinimumAmountPerTransaction?: number;\n MinimumAmountPerLine?: number;\n RoundOff?: number;\n CountingRequired?: number;\n TakenToBank?: number;\n TakenToSafe?: number;\n ConnectorId?: string;\n GiftCardItem?: string;\n GiftCardCashoutOutThreshold?: number;\n ChangeLineOnReceipt?: string;\n HideCardInputDetails?: boolean;\n CashDrawerLimitEnabled?: boolean;\n CashDrawerLimit?: number;\n RestrictReturnsWithoutReceipt?: boolean;\n HasTenderDiscount?: boolean;\n DefaultCardTypeId?: string;\n UseForDeclareStartAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCode entity interface.\n */\n export interface ReasonCode {\n InputRequired: boolean;\n LinkedReasonCodeId?: string;\n MaximumLength: number;\n MaximumValue: number;\n MinimumLength: number;\n MinimumValue: number;\n OncePerTransaction: boolean;\n PrintInputNameOnReceipt: boolean;\n PrintInputToReceipt: boolean;\n PrintPromptToReceipt: boolean;\n Prompt?: string;\n RandomFactor: number;\n RetailUseReasonCode: boolean;\n ReasonCodeId?: string;\n Description?: string;\n InputTypeValue?: number;\n ActivityValue?: number;\n IsMultiLineText?: boolean;\n ReasonSubCodes?: ReasonSubCode[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportDataSet entity interface.\n */\n export interface ReportDataSet {\n ReportId?: string;\n Parameters?: CommerceProperty[];\n Locale?: string;\n Output?: ReportRow[];\n HasTotalRow?: boolean;\n HasDisclaimer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ZipCodeInfo entity interface.\n */\n export interface ZipCodeInfo {\n ZipPostalCode?: string;\n StreetName?: string;\n TimeZone?: number;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n CityAlias?: string;\n District?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCodeRequirement entity interface.\n */\n export interface ReasonCodeRequirement {\n ReasonCodeId?: string;\n SourceId?: string;\n TableRefTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QueryResultSettings entity interface.\n */\n export interface QueryResultSettings {\n Paging?: PagingInfo;\n Sorting?: SortingInfo;\n }\n \n /**\n * SortingInfo entity interface.\n */\n export interface SortingInfo {\n Columns?: SortColumn[];\n }\n \n /**\n * SortColumn entity interface.\n */\n export interface SortColumn {\n ColumnName?: string;\n IsDescending?: boolean;\n }\n \n /**\n * PagingInfo entity interface.\n */\n export interface PagingInfo {\n NextPageToken?: string;\n Top?: number;\n Skip?: number;\n }\n \n /**\n * ProductPropertyTranslation entity interface.\n */\n export interface ProductPropertyTranslation {\n TranslationLanguage?: string;\n TranslatedProperties?: ProductProperty[];\n }\n \n /**\n * NumberSequenceSeedData entity interface.\n */\n export interface NumberSequenceSeedData {\n DataTypeValue?: number;\n DataValue?: number;\n LastTransactionDataValue?: number;\n LastTransactionCreatedDateTime?: Date;\n LastTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptNumberResetInfo entity interface.\n */\n export interface ReceiptNumberResetInfo {\n ValidFrom?: Date;\n ValidTo?: Date;\n ResetDate?: Date;\n TypeValue?: number;\n Enabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeviceActivationResult entity interface.\n */\n export interface DeviceActivationResult {\n Device?: Device;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseHistory entity interface.\n */\n export interface PurchaseHistory {\n DatePurchased?: Date;\n ImageUrl?: string;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n ReceiptId?: string;\n SalesId?: string;\n ChannelId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Node entity interface.\n */\n export interface Node {\n ParentScopeId?: string;\n ParentSequence?: number;\n Id?: string;\n Sequence?: number;\n Description?: string;\n ScreenshotUri?: string;\n }\n \n /**\n * Line entity interface.\n */\n export interface Line {\n ChildrenIds?: number[];\n Id?: number;\n Name?: string;\n Description?: string;\n IsLinked?: boolean;\n LineMetadataId?: number;\n Artifacts?: ArtifactSummary[];\n MetadataPropertyValues?: MetadataPropertyValue[];\n }\n \n /**\n * MetadataText entity interface.\n */\n export interface MetadataText {\n Id?: string;\n Text?: string;\n }\n \n /**\n * MetadataHypertextLink entity interface.\n */\n export interface MetadataHypertextLink {\n Id?: string;\n DisplayName?: string;\n Url?: string;\n }\n \n /**\n * Scope entity interface.\n */\n export interface Scope extends Node {\n Name?: string;\n ScopeTypeValue: number;\n Children?: Node[];\n ActiveCount: number;\n IsForm?: boolean;\n }\n \n /**\n * Framework entity interface.\n */\n export interface Framework {\n Lines?: Line[];\n Id?: number;\n Name?: string;\n Access?: string;\n Hierarchy?: Line[];\n Publisher?: string;\n }\n \n /**\n * UserAction entity interface.\n */\n export interface UserAction extends Node {\n SystemGenerated?: boolean;\n GlobalId?: string;\n Annotations?: Annotation[];\n }\n \n /**\n * TaskUserAction entity interface.\n */\n export interface TaskUserAction extends UserAction {\n UserActionTypeValue: number;\n Name?: string;\n Comment?: string;\n TaskId?: string;\n }\n \n /**\n * FormUserAction entity interface.\n */\n export interface FormUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n }\n \n /**\n * CommandUserAction entity interface.\n */\n export interface CommandUserAction extends FormUserAction {\n ReturnTypeValue: number;\n CommandName?: string;\n ControlName?: string;\n ControlType?: string;\n Arguments?: CommandArgument[];\n LabelId?: string;\n ReturnValue?: string;\n }\n \n /**\n * Annotation entity interface.\n */\n export interface Annotation {\n Description?: string;\n }\n \n /**\n * Recording entity interface.\n */\n export interface Recording {\n Scopes?: Scope[];\n FormContextEntries?: FormContextDictionaryEntry[];\n RootScope?: Scope;\n Name?: string;\n Description?: string;\n }\n \n /**\n * FormContextDictionaryEntry entity interface.\n */\n export interface FormContextDictionaryEntry {\n FormId?: string;\n FormContext?: FormContext;\n }\n \n /**\n * ProductVariantResolutionContext entity interface.\n */\n export interface ProductVariantResolutionContext {\n }\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity interface.\n */\n export interface ProductVariantResolutionOnKitSelectionContext extends ProductVariantResolutionContext {\n SelectedComponents?: ComponentInSlotRelation[];\n SlotId?: number;\n }\n \n /**\n * WarehouseLocation entity interface.\n */\n export interface WarehouseLocation {\n LocationId?: string;\n IsLicensePlateControlled: boolean;\n ProfileId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransaction entity interface.\n */\n export interface FiscalTransaction {\n CreatedDateTime?: Date;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TransDateTime?: Date;\n LineNumber?: number;\n RegisterResponse?: string;\n ReceiptCopy?: boolean;\n RecordGUID?: string;\n RegisterStoreId?: string;\n RegisterTerminalId?: string;\n StaffId?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n DocumentNumber?: string;\n RegistrationTypeValue?: number;\n ServiceName?: string;\n CountryRegionIsoCode?: string;\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLine entity interface.\n */\n export interface FulfillmentLine {\n SalesId?: string;\n SalesPersonStoreId?: string;\n SalesPersonId?: string;\n SalesPersonFirstName?: string;\n SalesPersonLastName?: string;\n SalesLineNumber?: number;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n DeliveryModeCode?: string;\n DocumentStatusValue?: number;\n FulfillmentDeliveryType?: FulfillmentLineDeliveryType;\n DeliveryTypeValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n StoreInventoryTotalQuantity?: number;\n StoreInventoryReservedQuantity?: number;\n StoreInventoryOrderedQuantity?: number;\n ItemId?: string;\n ProductId?: number;\n ProductVariant?: string;\n ItemName?: string;\n SerialNumber?: string;\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n UnitOfMeasureSymbol?: string;\n RequestedShipDate?: Date;\n RequestedDeliveryDate?: Date;\n RequestedReceiptDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n CreatedDate?: Date;\n TotalAmount?: number;\n Balance?: number;\n ShippingAddress?: Address;\n DetailedOrderStatusValue?: number;\n DetailedLineStatusValue?: number;\n ChannelTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineSearchCriteria entity interface.\n */\n export interface FulfillmentLineSearchCriteria {\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n SalesId?: string;\n OrderCreatedStartDate?: Date;\n OrderCreatedEndDate?: Date;\n ReceiptId?: string;\n StoreId?: string;\n ChannelReferenceId?: string;\n RequestedReceiptStartDate?: Date;\n RequestedReceiptEndDate?: Date;\n RequestedDeliveryStartDate?: Date;\n RequestedDeliveryEndDate?: Date;\n FulfillmentStatusValues?: number[];\n DeliveryModeCode?: string;\n WarehouseId?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n DeliveryTypeValue?: number;\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Comment entity interface.\n */\n export interface Comment {\n RecordId?: number;\n AuthorStaffId?: string;\n AuthorName?: string;\n Text?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressPurpose entity interface.\n */\n export interface AddressPurpose {\n RecordId: number;\n AddressType: number;\n Name?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeliveryChargeLine entity interface.\n */\n export interface DeliveryChargeLine {\n ChargeCode?: string;\n CurrencyCode?: string;\n CalculatedAmount: number;\n Description?: string;\n IsRefundable: boolean;\n IsShipping: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionPackageDefinition entity interface.\n */\n export interface ExtensionPackageDefinition {\n Name?: string;\n Publisher?: string;\n IsEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnPolicy entity interface.\n */\n export interface ReturnPolicy {\n RecordId: number;\n TenderTypePolicies?: TenderTypePolicy[];\n IsManagerOverrideEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderTypeAmount entity interface.\n */\n export interface TenderTypeAmount {\n TenderTypeId?: string;\n Amount: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FeatureState entity interface.\n */\n export interface FeatureState {\n Name?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warranty entity interface.\n */\n export interface Warranty extends SimpleProduct {\n DurationUnitValue?: number;\n Duration?: number;\n ApplicablePriceRangeBaseTypeValue?: number;\n ApplicablePriceRangeMin?: number;\n ApplicablePriceRangeMax?: number;\n }\n \n /**\n * RecallInvoicedSalesLineLookup entity interface.\n */\n export interface RecallInvoicedSalesLineLookup {\n InvoicedLineId: number;\n Quantity: number;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarrantyGroup entity interface.\n */\n export interface WarrantyGroup {\n Warranties?: Warranty[];\n RecordId?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarrantiesMapping entity interface.\n */\n export interface ProductWarrantiesMapping {\n WarrantyGroups?: WarrantyGroup[];\n WarrantableProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineContextualOperationsMap entity interface.\n */\n export interface FulfillmentLineContextualOperationsMap {\n FulfillmentLine?: FulfillmentLine;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UserAlert entity interface.\n */\n export interface UserAlert {\n AlertSourceIdValue?: number;\n LocalizedMessage?: string;\n IsBlocking?: boolean;\n }\n \n /**\n * CartLineUserAlerts entity interface.\n */\n export interface CartLineUserAlerts {\n LineIndex?: number;\n LineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineUserAlerts entity interface.\n */\n export interface FulfillmentLineUserAlerts {\n SalesId?: string;\n SalesLineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerProspect entity interface.\n */\n export interface BusinessPartnerProspect {\n FirstName?: string;\n LastName?: string;\n CompanyName?: string;\n Address?: Address;\n JobTitle?: string;\n Department?: string;\n CompanySize?: number;\n Comments?: string;\n LastOperationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelSearchCriteria entity interface.\n */\n export interface ChannelSearchCriteria {\n SearchLocationValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperation entity interface.\n */\n export interface BusinessPartnerOperation {\n TypeValue?: number;\n StatusValue?: number;\n Value?: string;\n Description?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequest entity interface.\n */\n export interface BusinessPartnerOperationRequest {\n TypeValue?: number;\n StatusValue?: number;\n CreatedDateTime?: Date;\n Details?: BusinessPartnerOperationRequestDetails;\n UserId?: string;\n UserFirstName?: string;\n UserLastName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptTypesByFormatType entity interface.\n */\n export interface ReceiptTypesByFormatType {\n ReceiptOutputFormatType?: ReceiptOutputFormatType;\n ReceiptTypesValues?: number[];\n }\n \n /**\n * InventoryJournalNameSearchCriteria entity interface.\n */\n export interface InventoryJournalNameSearchCriteria {\n JournalNameIds?: string[];\n DocumentTypeValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AssortedProductIdentity entity interface.\n */\n export interface AssortedProductIdentity {\n ProductId?: number;\n IsRemoteProduct?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceId entity interface.\n */\n export interface ProductExistenceId {\n ProductId?: number;\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceCriteria entity interface.\n */\n export interface ProductExistenceCriteria {\n ChannelId?: number;\n CatalogId?: number;\n Ids?: ProductExistenceId[];\n }\n \n /**\n * ChecklistTask entity interface.\n */\n export interface ChecklistTask {\n Version?: string;\n InstructionsVersion?: string;\n AssignedToPersonnelNumbers?: string[];\n AssignedToExternalSubId?: string;\n Id?: string;\n Name?: string;\n Description?: string;\n DueDateTime?: Date;\n DeepLinkTypeValue?: number;\n DeepLink?: string;\n DeepLinkPosOperationName?: string;\n ContactPersonPersonnelNumber?: string;\n Instructions?: string;\n StatusValue?: number;\n CompletionDateTime?: Date;\n ResolvedByPersonnelNumber?: string;\n ChecklistId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaLocation entity interface.\n */\n export interface MediaLocation {\n Uri?: string;\n AltText?: string;\n IsDefault?: boolean;\n IsSelfHosted?: boolean;\n Priority?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeeActivity entity interface.\n */\n export interface EmployeeActivity {\n StaffId?: string;\n StaffName?: string;\n Activity?: string;\n ActivityDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValue?: number;\n BreakCategory?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefiner entity interface.\n */\n export interface CustomerRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: CustomerRefinerValue[];\n }\n \n /**\n * TokenizedPaymentCard entity interface.\n */\n export interface TokenizedPaymentCard {\n IsSwipe?: boolean;\n TenderType?: string;\n CardTokenInfo?: CardTokenInfo;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity interface.\n */\n export interface ProductDimensionAvailabilitySearchCriteria {\n RequestedDimensionTypeValue?: number;\n MatchingDimensionValues?: ProductDimension[];\n DefaultWarehouseOnly?: boolean;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n CatalogId?: number;\n }\n \n /**\n * LineShippingAddress entity interface.\n */\n export interface LineShippingAddress {\n LineId?: string;\n ShippingAddress?: Address;\n }\n \n /**\n * CartDeliveryPreferences entity interface.\n */\n export interface CartDeliveryPreferences {\n HeaderDeliveryPreferenceTypeValues?: number[];\n CartLineDeliveryPreferences?: CartLineDeliveryPreference[];\n }\n \n /**\n * LineDeliverySpecification entity interface.\n */\n export interface LineDeliverySpecification {\n LineId?: string;\n DeliverySpecification?: DeliverySpecification;\n }\n \n /**\n * DeliverySpecification entity interface.\n */\n export interface DeliverySpecification {\n DeliveryModeId?: string;\n DeliveryPreferenceTypeValue?: number;\n DeliveryAddress?: Address;\n RequestedDeliveryDate?: Date;\n PickUpStoreId?: string;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n ShipFromStoreId?: string;\n }\n \n /**\n * OrderSearchCriteria entity interface.\n */\n export interface OrderSearchCriteria {\n CustomerAccountNumber?: string;\n CustomerName?: string;\n EmailAddress?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n SalesId?: string;\n ReceiptId?: string;\n OrderStatusValues?: number[];\n StartDateTime?: Date;\n EndDateTime?: Date;\n ChannelReferenceId?: string;\n StoreId?: string;\n OrderType?: number;\n CustomFilters?: SearchFilter[];\n FulfillmentTypeValues?: number[];\n DeliveryMode?: string;\n PickupStartDate?: Date;\n PickupEndDate?: Date;\n PickupTimeslotStartTime?: number;\n PickupTimeslotEndTime?: number;\n }\n \n /**\n * ChecklistSearchCriteria entity interface.\n */\n export interface ChecklistSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n ChecklistIds?: string[];\n StatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskSearchCriteria entity interface.\n */\n export interface TaskSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n TaskIds?: string[];\n StatusValues?: number[];\n FilterMyTasks: boolean;\n FilterOverdueTasks: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity interface.\n */\n export interface ChecklistTaskTeamsIntegrationConfiguration {\n IsEnabled?: boolean;\n MicrosoftGraphResource?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnCartLine entity interface.\n */\n export interface ReturnCartLine {\n Description?: string;\n ItemId?: string;\n ProductId?: number;\n Quantity?: number;\n ReturnLineNumber?: number;\n ReturnTransactionId?: string;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch?: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n Price?: number;\n IsPriceKeyedIn?: boolean;\n }\n \n /**\n * TenderDiscountLine entity interface.\n */\n export interface TenderDiscountLine {\n DiscountAmount?: number;\n PaymentAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptRetrievalCriteria entity interface.\n */\n export interface ReceiptRetrievalCriteria {\n IsCopy?: boolean;\n IsRemoteTransaction?: boolean;\n IsPreview?: boolean;\n QueryBySalesId?: boolean;\n ReceiptTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n HardwareProfileId?: string;\n }\n \n /**\n * CartSearchCriteria entity interface.\n */\n export interface CartSearchCriteria {\n CartId?: string;\n ExpectedCartVersion?: number;\n CustomerAccountNumber?: string;\n IncludeAnonymous?: boolean;\n SuspendedOnly?: boolean;\n CartTypeValue?: number;\n LastModifiedDateTimeFrom?: Date;\n LastModifiedDateTimeTo?: Date;\n }\n \n /**\n * RetrievePaymentResultSettings entity interface.\n */\n export interface RetrievePaymentResultSettings {\n ReturnUrl?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * SearchReceiptCriteria entity interface.\n */\n export interface SearchReceiptCriteria {\n TransactionId?: string;\n ReceiptTypeValue?: number;\n ReceiptTypesByFormatTypeCollection?: ReceiptTypesByFormatType[];\n IsCopy?: boolean;\n GiftReceiptLineNumbers?: number[];\n }\n \n /**\n * ElectronicAddress entity interface.\n */\n export interface ElectronicAddress {\n AddressTypeValue?: number;\n ExtensibleEAddressType?: ExtensibleElectronicAddressType;\n Address?: string;\n }\n \n /**\n * ChannelReferenceLookupCriteria entity interface.\n */\n export interface ChannelReferenceLookupCriteria {\n ChannelReferenceId?: string;\n SearchLocationValue?: number;\n ChannelReferenceAdditionalLookupCriteria?: ChannelReferenceAdditionalLookupCriteria[];\n }\n \n /**\n * FulfillmentLineParameter entity interface.\n */\n export interface FulfillmentLineParameter {\n SalesId?: string;\n SalesLineNumber?: number;\n Quantity?: number;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipFulfillmentLine entity interface.\n */\n export interface ShipFulfillmentLine extends FulfillmentLineParameter {\n ProductId?: number;\n }\n \n /**\n * RejectFulfillmentLine entity interface.\n */\n export interface RejectFulfillmentLine extends FulfillmentLineParameter {\n RejectedQuantity?: number;\n InfoCodeId?: string;\n SubInfoCodeId?: string;\n }\n \n /**\n * ReadChangedProductsSession entity interface.\n */\n export interface ReadChangedProductsSession {\n Id?: string;\n TotalNumberOfProducts?: number;\n NumberOfProductsRead?: number;\n NumberOfProductsReadInCurrentPage?: number;\n NextSynchronizationToken?: string;\n IsInitialSync?: boolean;\n }\n \n /**\n * DeletedListingsResult entity interface.\n */\n export interface DeletedListingsResult {\n HasMorePublishedListings?: boolean;\n DeletedListings?: ListingIdentity[];\n }\n \n /**\n * ProductRating entity interface.\n */\n export interface ProductRating {\n ProductId?: number;\n AverageRating?: number;\n TotalRatings?: number;\n RatingDistribution?: ProductRatingCount[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDeliveryOptions entity interface.\n */\n export interface ProductDeliveryOptions {\n ProductId?: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ListingPublishStatus entity interface.\n */\n export interface ListingPublishStatus {\n PublishStatusValue?: number;\n ListingModifiedDateTime?: Date;\n ChannelListingId?: string;\n ChannelId?: number;\n CatalogId?: number;\n ProductId?: number;\n LanguageId?: string;\n AppliedActionValue?: number;\n StatusMessage?: string;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocationSearchCriteria entity interface.\n */\n export interface OrgUnitLocationSearchCriteria {\n OrgUnitNumber?: string;\n OrgUnitName?: string;\n InventoryLocationIds?: string[];\n DeliveryModeTypeFilterValue?: number;\n }\n \n /**\n * StoreHours entity interface.\n */\n export interface StoreHours {\n RegularStoreHours?: RegularStoreHours;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartPromotions entity interface.\n */\n export interface CartPromotions {\n HeaderPromotions?: string[];\n CartLinePromotions?: CartLinePromotion[];\n }\n \n /**\n * CartPromotionLine entity interface.\n */\n export interface CartPromotionLine {\n LineId?: string;\n Promotion?: Promotion;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemUnit entity interface.\n */\n export interface ItemUnit {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n Product?: number;\n DistinctProductVariant?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAvailableQuantity entity interface.\n */\n export interface ProductAvailableQuantity {\n ProductId?: number;\n AvailableQuantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity interface.\n */\n export interface OrgUnitAvailabilitySearchCriteria {\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n }\n \n /**\n * InvoiceSearchCriteria entity interface.\n */\n export interface InvoiceSearchCriteria {\n BusinessPartnerId?: string;\n CustomerId?: string;\n InvoiceIds?: string[];\n InvoiceTypeValues?: number[];\n InvoicePaidStatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoiceDetailsSearchCriteria entity interface.\n */\n export interface InvoiceDetailsSearchCriteria {\n InvoiceId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickAndPackSalesLineParameter entity interface.\n */\n export interface PickAndPackSalesLineParameter {\n SalesLineNumber?: number;\n Quantity?: number;\n }\n \n /**\n * ProductListSearchCriteria entity interface.\n */\n export interface ProductListSearchCriteria {\n CustomerId?: string;\n ProductListId?: string;\n ProductListType?: string;\n }\n \n /**\n * ProjectionDomain entity interface.\n */\n export interface ProjectionDomain {\n ChannelId?: number;\n CatalogId?: number;\n }\n \n /**\n * AffiliationLoyaltyTier entity interface.\n */\n export interface AffiliationLoyaltyTier {\n AffiliationId?: number;\n LoyaltyTierId?: number;\n AffiliationTypeValue?: number;\n ReasonCodeLines?: ReasonCodeLine[];\n CustomerId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomerSearchCriteria entity interface.\n */\n export interface ClientBookCustomerSearchCriteria {\n FilterByCurrentEmployee?: boolean;\n Refinement?: ClientBookRefinerValue[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomer entity interface.\n */\n export interface ClientBookCustomer {\n CustomerId?: string;\n Name?: string;\n Phone?: string;\n Email?: string;\n StaffId?: string;\n ImageUris?: MediaLocation[];\n Attributes?: CustomerAttribute[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChanges entity interface.\n */\n export interface ClientBookChanges {\n Changes?: ClientBookChange[];\n }\n \n /**\n * ChargeCode entity interface.\n */\n export interface ChargeCode {\n Code?: string;\n ModuleTypeValue?: number;\n Description?: string;\n ItemTaxGroupId?: string;\n IsRefundable?: boolean;\n IsShipping?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentMerchantInformation entity interface.\n */\n export interface PaymentMerchantInformation {\n PaymentConnectorPropertiesXml?: string;\n MerchantPropertiesHashValue?: string;\n ServiceAccountId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreSafe entity interface.\n */\n export interface StoreSafe {\n SafeNumber?: string;\n Name?: string;\n StoreNumber?: string;\n SafeBalance?: number;\n LastUpdatedTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity interface.\n */\n export interface InventoryDocumentReceiptSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecord {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n StaffId?: string;\n UpdateNowQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreateHardwareStationTokenResult entity interface.\n */\n export interface CreateHardwareStationTokenResult {\n HardwareStationToken?: string;\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidateHardwareStationTokenResult entity interface.\n */\n export interface ValidateHardwareStationTokenResult {\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaBlob entity interface.\n */\n export interface MediaBlob {\n MediaType?: string;\n Content?: string;\n IsDefault?: boolean;\n AltText?: string;\n PictureId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OnlineChannel entity interface.\n */\n export interface OnlineChannel {\n OnlineChannelName?: string;\n CurrencyCode?: string;\n EventNotificationProfileId?: string;\n RecordId?: number;\n OrgUnitTypeValue?: number;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n InventoryLocationId?: string;\n ChannelProfile?: ChannelProfile;\n ChannelProperties?: ChannelProperty[];\n ChannelLanguages?: ChannelLanguage[];\n Contacts?: OrgUnitContact[];\n ExtensionProperties?: CommerceProperty[];\n CountryRegions?: CountryRegion[];\n }\n \n /**\n * TerminalDataDownloadRequestInfo entity interface.\n */\n export interface TerminalDataDownloadRequestInfo {\n TerminalId?: string;\n RequiresDataInitialization?: boolean;\n HasBeenInitializedBefore?: boolean;\n }\n \n /**\n * DataDownloadParameters entity interface.\n */\n export interface DataDownloadParameters {\n DownloadInterval?: number;\n DownloadSessions?: DownloadSession[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * TerminalDataUploadRequestInfo entity interface.\n */\n export interface TerminalDataUploadRequestInfo {\n TerminalId?: string;\n }\n \n /**\n * DataUploadParameters entity interface.\n */\n export interface DataUploadParameters {\n UploadInterval?: number;\n UploadJobPackageRequests?: UploadJobPackageRequest[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * DownloadSession entity interface.\n */\n export interface DownloadSession {\n Id?: number;\n JobId?: string;\n JobDescription?: string;\n FileSize?: number;\n RowsAffected?: number;\n Checksum?: string;\n DateDownloaded?: string;\n DateRequested?: string;\n DataStoreName?: string;\n StatusValue?: number;\n Message?: string;\n DownloadLink?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OfflineTerminalState entity interface.\n */\n export interface OfflineTerminalState {\n TerminalId?: string;\n State?: string;\n }\n \n /**\n * LoyaltyRewardPointActivity entity interface.\n */\n export interface LoyaltyRewardPointActivity {\n ActivityDate?: Date;\n LoyaltyRewardPointTimelineEntryType?: string;\n ExtensibleLoyaltyRewardPointActivityEntryTypeValue?: number;\n LoyaltyPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyRequest entity interface.\n */\n export interface CurrencyRequest {\n AmountToConvert?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareStationProfile entity interface.\n */\n export interface HardwareStationProfile {\n RecordId?: number;\n HardwareStationId?: string;\n HardwareStationTypeValue?: number;\n HardwareProfileId?: string;\n HardwareStationName?: string;\n HardwareStationDescription?: string;\n HardwareStationUrl?: string;\n HardwareStationHostName?: string;\n HardwareStationEftTerminalId?: string;\n HardwareConfigurations?: HardwareConfigurations;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NameValuePair entity interface.\n */\n export interface NameValuePair {\n Name?: string;\n Value?: string;\n }\n \n /**\n * LinkToExistingCustomerResult entity interface.\n */\n export interface LinkToExistingCustomerResult {\n EmailAddress?: string;\n ExternalIdentityProvider?: string;\n ExternalIdentityLinkRecordId?: number;\n }\n \n /**\n * OfflineSyncStatsLine entity interface.\n */\n export interface OfflineSyncStatsLine {\n IsUploadJob?: boolean;\n JobDescription?: string;\n LastSyncDateTime?: Date;\n Status?: string;\n FileSize?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StorageAccessToken entity interface.\n */\n export interface StorageAccessToken {\n Url?: string;\n SasKey?: string;\n }\n \n /**\n * TaskGuidesSearchResult entity interface.\n */\n export interface TaskGuidesSearchResult {\n Lines?: Line[];\n FrameworkPublisherName?: string;\n FrameworkName?: string;\n }\n \n /**\n * AuditEvent entity interface.\n */\n export interface AuditEvent {\n EventId?: number;\n EventIdString?: string;\n Channel?: number;\n Store?: string;\n Terminal?: string;\n UploadType?: string;\n EventType?: string;\n EventDateTime?: Date;\n DurationInMilliseconds?: number;\n Source?: string;\n EventMessage?: string;\n LogLevel?: string;\n Staff?: string;\n ShiftId?: number;\n ClosedShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n ModeValue?: number;\n RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSupportedEvents entity interface.\n */\n export interface FiscalIntegrationSupportedEvents {\n FunctionalityProfileGroupId?: string;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity interface.\n */\n export interface FiscalIntegrationTechnicalProfile {\n ProfileId?: string;\n Description?: string;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummary {\n RegistrationProcessId?: string;\n FiscalRegistrationProcessSummaryLines?: FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity interface.\n */\n export interface FiscalIntegrationTechnicalProfileSearchCriteria {\n ExcludeOptionalProcessLines?: boolean;\n FunctionalityProfileGroupIds?: string[];\n }\n \n /**\n * FiscalIntegrationServiceInfo entity interface.\n */\n export interface FiscalIntegrationServiceInfo {\n ServiceName?: string;\n ServiceProperties?: string;\n }\n \n /**\n * FiscalIntegrationServiceStatus entity interface.\n */\n export interface FiscalIntegrationServiceStatus {\n IsReady?: boolean;\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity interface.\n */\n export interface FiscalIntegrationServiceCommunicationResult {\n Response?: string;\n CommunicationResultTypeValue?: number;\n FailureDetails?: FiscalIntegrationServiceFailureDetails;\n FiscalIntegrationServiceInfo?: string;\n UserNotificationMessage?: string;\n }\n \n /**\n * FiscalIntegrationSequentialSignatureData entity interface.\n */\n export interface FiscalIntegrationSequentialSignatureData {\n LastRegisterResponse?: string;\n SequenceKey?: string;\n IsOffline?: boolean;\n SequentialNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountsSearchCriteria entity interface.\n */\n export interface DiscountsSearchCriteria {\n ChannelId?: number;\n Keyword?: string;\n IsDiscountCodeRequired?: boolean;\n StartDate?: Date;\n EndDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Promotion entity interface.\n */\n export interface Promotion {\n OfferId?: string;\n OfferName?: string;\n PeriodicDiscountTypeValue?: number;\n IsDiscountCodeRequired?: boolean;\n ValidationPeriodId?: string;\n AdditionalRestrictions?: string;\n Description?: string;\n ValidFromDate?: Date;\n ValidToDate?: Date;\n ValidationPeriod?: ValidationPeriod;\n CouponCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathLookup entity interface.\n */\n export interface CategoryPathLookup {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathResult entity interface.\n */\n export interface CategoryPathResult {\n ProductId?: number;\n CategoryPath?: CategoryPath[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity interface.\n */\n export interface PickupTimeslotAvailabilitySearchCriteria {\n DeliveryModeCode?: string;\n StoreId?: string;\n StartDate?: Date;\n EndDate?: Date;\n SearchOptionValue?: number;\n }\n \n /**\n * PickupTimeslotAvailability entity interface.\n */\n export interface PickupTimeslotAvailability {\n AvailableCapacity?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CheckInForOrderPickupConfirmation entity interface.\n */\n export interface CheckInForOrderPickupConfirmation {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionProfile entity interface.\n */\n export interface ExtensionProfile {\n ExtensionServiceUrl?: string;\n AttachedServices?: AttachedService[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelInventoryConfiguration entity interface.\n */\n export interface ChannelInventoryConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowTransferOrderOverDelivery?: boolean;\n AllowTransferOrderUnderDelivery?: boolean;\n UserLocationProfileId?: string;\n InventoryProductAttributeRecordId?: number;\n InventoryOutOfStockAttributeValueText?: string;\n ProductAvailabilitySortableAttributeRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelPurchaseConfiguration entity interface.\n */\n export interface ChannelPurchaseConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowOverDelivery?: boolean;\n AllowSubDelivery?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryJournalName entity interface.\n */\n export interface InventoryJournalName {\n RecordId?: number;\n JournalNameId?: string;\n InventoryJournalTypeValue?: number;\n Description?: string;\n DefaultAdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftRetrievalCriteria entity interface.\n */\n export interface ShiftRetrievalCriteria {\n ShiftStatusValue?: number;\n FilterByUserRole?: boolean;\n IncludeAllShiftsForStore?: boolean;\n }\n \n /**\n * UserDefinedSecretCertificateResult entity interface.\n */\n export interface UserDefinedSecretCertificateResult {\n CertificateData?: string;\n }\n \n /**\n * TerminalInfo entity interface.\n */\n export interface TerminalInfo {\n TerminalId?: string;\n DeviceNumber?: string;\n Name?: string;\n DeviceType?: number;\n ActivationStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineItemTypeMap entity interface.\n */\n export interface CustomerTimelineItemTypeMap {\n EntityType?: string;\n Types?: CustomerTimelineItemType[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineRefiner entity interface.\n */\n export interface CustomerTimelineRefiner {\n RefinedResultsCount?: number;\n EntityType?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTitle entity interface.\n */\n export interface CustomerTitle {\n Text?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouse entity interface.\n */\n export interface ProductWarehouse {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryInformation entity interface.\n */\n export interface ProductWarehouseInventoryInformation {\n ProductWarehouseInventoryAvailabilities?: ProductWarehouseInventoryAvailability[];\n AggregatedProductInventoryAvailabilities?: ProductInventoryAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailabilitySearchCriteria entity interface.\n */\n export interface InventoryAvailabilitySearchCriteria {\n ProductIds?: number[];\n DefaultWarehouseOnly?: boolean;\n SearchArea?: SearchArea;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n QuantityUnitTypeValue?: number;\n DataLevelValue?: number;\n }\n \n /**\n * ExtensibleEnumerationContainer entity interface.\n */\n export interface ExtensibleEnumerationContainer {\n TypeName?: string;\n ExtensibleEnumerations?: ExtensibleEnumeration[];\n }\n \n /**\n * PackingSlipData entity interface.\n */\n export interface PackingSlipData {\n PackingSlipId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmailReceiptSettings entity interface.\n */\n export interface EmailReceiptSettings {\n ReceiptTypeValue?: number;\n EmailBehaviorValue?: number;\n ReceiptTitle?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAddress entity interface.\n */\n export interface OrgUnitAddress extends Address {\n }\n \n /**\n * WarehouseDetails entity interface.\n */\n export interface WarehouseDetails extends Address {\n InventoryLocationId?: string;\n }\n \n /**\n * AttributeSwatch entity interface.\n */\n export interface AttributeSwatch {\n SwatchValue?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n IsDefault?: boolean;\n ProductImageUrls?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeBooleanValue entity interface.\n */\n export interface AttributeBooleanValue extends AttributeValueBase {\n Value?: boolean;\n }\n \n /**\n * AttributeCurrencyValue entity interface.\n */\n export interface AttributeCurrencyValue extends AttributeValueBase {\n CurrencyValue?: number;\n CurrencyCode?: string;\n }\n \n /**\n * AttributeDateTimeOffsetValue entity interface.\n */\n export interface AttributeDateTimeOffsetValue extends AttributeValueBase {\n Value?: Date;\n }\n \n /**\n * AttributeFloatValue entity interface.\n */\n export interface AttributeFloatValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeIntValue entity interface.\n */\n export interface AttributeIntValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeMediaLocationValue entity interface.\n */\n export interface AttributeMediaLocationValue extends AttributeValueBase {\n Value?: MediaLocation[];\n }\n \n /**\n * AttributeTextValue entity interface.\n */\n export interface AttributeTextValue extends AttributeValueBase {\n TextValue?: string;\n TextValueTranslations?: TextValueTranslation[];\n }\n \n /**\n * ButtonGridButton entity interface.\n */\n export interface ButtonGridButton {\n Action?: number;\n ActionProperty?: string;\n BackColorAsARGB?: ARGBColor;\n BorderColorAsARGB?: ARGBColor;\n Column?: number;\n ColumnSpan?: number;\n DisplayText?: string;\n FontColorAsARGB?: ARGBColor;\n ButtonId?: number;\n Row?: number;\n RowSpan?: number;\n UseCustomLookAndFeel?: boolean;\n PictureId?: number;\n PictureAsBase64?: string;\n FontStyle?: number;\n FontSize?: number;\n EnableCustomFontForPOS?: boolean;\n HideButtonText?: boolean;\n Tooltip?: string;\n EnableLiveContent?: boolean;\n NotificationContentAlignment?: number;\n ImageAlignment?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ARGBColor entity interface.\n */\n export interface ARGBColor {\n A?: number;\n R?: number;\n G?: number;\n B?: number;\n }\n \n /**\n * PriceLine entity interface.\n */\n export interface PriceLine {\n RecordId?: number;\n Value?: number;\n PriceMethod?: string;\n OriginId?: string;\n PriceChangedByExtensions?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TradeAgreementPriceLine entity interface.\n */\n export interface TradeAgreementPriceLine extends PriceLine {\n }\n \n /**\n * AttributePricingTradeAgreementPriceLine entity interface.\n */\n export interface AttributePricingTradeAgreementPriceLine extends TradeAgreementPriceLine {\n CanApplyPriceAdjustments?: boolean;\n }\n \n /**\n * SalesAgreementPriceLine entity interface.\n */\n export interface SalesAgreementPriceLine extends PriceLine {\n SalesAgreementName?: string;\n UnitPrice?: number;\n DiscountAmount?: number;\n DiscountPercent?: number;\n SalesAgreementLineTypeValue?: number;\n PriceUnit?: number;\n EffectiveDate?: Date;\n ExpirationDate?: Date;\n CommittedQuantity?: number;\n RemainingQuantity?: number;\n CommittedAmount?: number;\n RemainingAmount?: number;\n }\n \n /**\n * PriceAdjustmentPriceLine entity interface.\n */\n export interface PriceAdjustmentPriceLine extends PriceLine {\n IsCompoundable?: boolean;\n Concurrency?: string;\n }\n \n /**\n * AttributePricingAdjustmentPriceLine entity interface.\n */\n export interface AttributePricingAdjustmentPriceLine extends PriceAdjustmentPriceLine {\n CanCompoundOnAdjustedPrice?: boolean;\n PricingPriorityNumber?: number;\n AdjustedAmount?: number;\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine extends PriceLine {\n }\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity interface.\n */\n export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n }\n \n /**\n * ChargeLineOverride entity interface.\n */\n export interface ChargeLineOverride {\n OriginalAmount?: number;\n OverrideAmount?: number;\n OverrideReasonDescription?: string;\n OverrideDateTime?: Date;\n UserId?: string;\n }\n \n /**\n * TaxLineGTE entity interface.\n */\n export interface TaxLineGTE extends TaxLine {\n TaxComponent?: string;\n }\n \n /**\n * TaxMeasure entity interface.\n */\n export interface TaxMeasure {\n Path?: string;\n Value?: number;\n DataAreaId?: string;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedLineStatus entity interface.\n */\n export interface DetailedLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * CardTokenInfo entity interface.\n */\n export interface CardTokenInfo {\n CardToken?: string;\n UniqueCardId?: string;\n ServiceAccountId?: string;\n MaskedCardNumber?: string;\n }\n \n /**\n * DataverseTenderLine entity interface.\n */\n export interface DataverseTenderLine extends TenderLine {\n }\n \n /**\n * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnLabelContent entity interface.\n */\n export interface ReturnLabelContent {\n ReturnLocationText?: string;\n ReturnWarehouseText?: string;\n ReturnReasonText?: string;\n ReturnPalleteText?: string;\n ItemId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPointLine entity interface.\n */\n export interface LoyaltyRewardPointLine {\n TransactionId?: string;\n SaleLineNumber?: number;\n LoyaltyGroupRecordId?: number;\n LoyaltyCardNumber?: string;\n CustomerAccount?: string;\n EntryDate?: Date;\n EntryTime?: number;\n EntryTypeValue?: number;\n ExpirationDate?: Date;\n LineNumber?: number;\n LoyaltyTierRecordId?: number;\n RewardPointRecordId?: number;\n RewardPointAmountQuantity?: number;\n RewardPointId?: string;\n RewardPointIsRedeemable?: boolean;\n RewardPointType?: string;\n RewardPointCurrency?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TrackingInfo entity interface.\n */\n export interface TrackingInfo {\n TrackingNumber?: string;\n ServiceType?: string;\n PackageWeight?: Weight;\n ShippedOnDate?: Date;\n Status?: string;\n DeliveredOnDate?: Date;\n EstimatedDeliveryDate?: Date;\n TrackingUrl?: string;\n PackagingType?: string;\n DestinationAddress?: Address;\n OriginAddress?: Address;\n ShipmentProgress?: ShipmentProgress[];\n ShippingCharge?: number;\n }\n \n /**\n * Weight entity interface.\n */\n export interface Weight {\n Value?: number;\n Unit?: string;\n }\n \n /**\n * ShipmentProgress entity interface.\n */\n export interface ShipmentProgress {\n Location?: Address;\n DateTime?: Date;\n Activity?: string;\n }\n \n /**\n * ShiftKey entity interface.\n */\n export interface ShiftKey {\n ShiftTerminalId?: string;\n ShiftId?: number;\n Store?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedText entity interface.\n */\n export interface LocalizedText {\n RecordId?: number;\n LanguageId?: string;\n TextId?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressFormattingInfo entity interface.\n */\n export interface AddressFormattingInfo {\n AddressComponentNameValue?: number;\n LineNumber?: number;\n IsDataEntryOnly?: boolean;\n NewLine?: boolean;\n Expand?: boolean;\n Inactive?: boolean;\n Special?: boolean;\n NumberOfSpaces?: number;\n Separator?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfigurations entity interface.\n */\n export interface HardwareConfigurations {\n CashDrawerConfigurations?: HardwareConfiguration[];\n PrinterConfigurations?: HardwareConfiguration[];\n PinPadConfiguration?: HardwareConfiguration;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfiguration entity interface.\n */\n export interface HardwareConfiguration {\n RecordId?: number;\n HardwareStationRecordId?: number;\n TerminalId?: string;\n DeviceName?: string;\n IPAddress?: string;\n Port?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Printer entity interface.\n */\n export interface Printer {\n Name?: string;\n PrinterType?: number;\n Terminal?: number;\n PrintBehaviorValue?: number;\n ReceiptLayoutId?: string;\n HardwareProfileId?: string;\n ReceiptType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefinerValue entity interface.\n */\n export interface CustomerRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * TransferOrderJournalLine entity interface.\n */\n export interface TransferOrderJournalLine {\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n TotalQuantityShipped?: number;\n QuantityShipped?: number;\n TransferQuantity?: number;\n UnitId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n DeliveryMethod?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSourceSerialNumberLine {\n SourceDocumentTypeValue?: number;\n SourceDocumentId?: string;\n DocumentLineRecordId?: number;\n InventTransRecordId?: number;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitTransactionLine entity interface.\n */\n export interface KitTransactionLine {\n ItemId?: string;\n Quantity?: number;\n InventoryDimensionId?: string;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreAddressBook entity interface.\n */\n export interface StoreAddressBook {\n AddressBookId?: number;\n StoreId?: number;\n AddressBookTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderDetail entity interface.\n */\n export interface TenderDetail {\n LineNumber?: number;\n Amount?: number;\n AmountInForeignCurrency?: number;\n ForeignCurrencyExchangeRate?: number;\n ForeignCurrency?: string;\n BankBagNumber?: string;\n TenderTypeId?: string;\n TenderRecount?: number;\n DenominationDetails?: DenominationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DenominationDetail entity interface.\n */\n export interface DenominationDetail {\n Type?: number;\n Currency?: string;\n DenominationAmount?: number;\n QuantityDeclared?: number;\n AmountDeclared?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGridZone entity interface.\n */\n export interface ButtonGridZone {\n ButtonGridId?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ImageZone entity interface.\n */\n export interface ImageZone {\n PictureId?: number;\n PictureAsBase64?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportZone entity interface.\n */\n export interface ReportZone {\n ReportRecordId?: number;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoiceLine entity interface.\n */\n export interface SalesInvoiceLine {\n RecordId?: number;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n InventDimensionId?: string;\n InventTransactionId?: string;\n Quantity?: number;\n Price?: number;\n DiscountPercent?: number;\n DiscountAmount?: number;\n BatchId?: string;\n NetAmount?: number;\n Site?: string;\n Warehouse?: string;\n SerialId?: string;\n ColorId?: string;\n SizeId?: string;\n StyleId?: string;\n ConfigId?: string;\n ColorName?: string;\n SizeName?: string;\n StyleName?: string;\n ConfigName?: string;\n SalesTaxGroup?: string;\n ItemTaxGroup?: string;\n SalesMarkup?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n PeriodicPercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportRow entity interface.\n */\n export interface ReportRow {\n RowData?: CommerceProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FormAnnotation entity interface.\n */\n export interface FormAnnotation extends Annotation {\n MenuItemLabel?: string;\n MenuItemName?: string;\n MenuItemType?: string;\n }\n \n /**\n * TaskGuideAnnotation entity interface.\n */\n export interface TaskGuideAnnotation extends Annotation {\n RecordingValueType?: string;\n Title?: string;\n ExampleText?: string;\n Hidden?: boolean;\n GlobalId?: string;\n }\n \n /**\n * CommandArgument entity interface.\n */\n export interface CommandArgument {\n Value?: string;\n IsReference?: boolean;\n }\n \n /**\n * PropertyUserAction entity interface.\n */\n export interface PropertyUserAction extends FormUserAction {\n Value?: string;\n ValueLabel?: string;\n PropertyName?: string;\n ControlName?: string;\n ControlType?: string;\n UserActionType?: string;\n IsReference?: boolean;\n LabelId?: string;\n }\n \n /**\n * InfoUserAction entity interface.\n */\n export interface InfoUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n ControlLabelId?: string;\n ControlName?: string;\n Text?: string;\n Notes?: string;\n }\n \n /**\n * MenuItemUserAction entity interface.\n */\n export interface MenuItemUserAction extends UserAction {\n MenuItemName?: string;\n MenuItemType?: string;\n NavigationPath?: string[];\n }\n \n /**\n * ValidationUserAction entity interface.\n */\n export interface ValidationUserAction extends UserAction {\n Name?: string;\n Comment?: string;\n }\n \n /**\n * ArtifactSummary entity interface.\n */\n export interface ArtifactSummary {\n ArtifactType?: string;\n LanguageTags?: string[];\n }\n \n /**\n * MetadataPropertyValue entity interface.\n */\n export interface MetadataPropertyValue {\n PropertyId?: string;\n SingleValue?: string;\n MultiValue?: MetadataText[];\n Tags?: string[];\n ComboBox?: string;\n MultiSelect?: string[];\n Links?: MetadataHypertextLink[];\n }\n \n /**\n * FormContext entity interface.\n */\n export interface FormContext {\n FormID?: string;\n FormName?: string;\n RecordingName?: string;\n HasMetadata?: boolean;\n Sequence?: number;\n Annotations?: Annotation[];\n }\n \n /**\n * ExtensibleFiscalRegistrationType entity interface.\n */\n export interface ExtensibleFiscalRegistrationType extends ExtensibleEnumeration {\n }\n \n /**\n * FiscalTransactionTenderLineAdjustment entity interface.\n */\n export interface FiscalTransactionTenderLineAdjustment {\n TenderLineNumber?: number;\n AdjustmentAmount?: number;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransactionSalesLineAdjustment entity interface.\n */\n export interface FiscalTransactionSalesLineAdjustment {\n SalesLineNumber?: number;\n Exclude?: boolean;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedOrderStatus entity interface.\n */\n export interface DetailedOrderStatus extends ExtensibleEnumeration {\n }\n \n /**\n * LineValidationResult entity interface.\n */\n export interface LineValidationResult {\n LineId?: string;\n ValidationFailures?: DataValidationFailure[];\n }\n \n /**\n * SalesAffiliationLoyaltyTier entity interface.\n */\n export interface SalesAffiliationLoyaltyTier extends AffiliationLoyaltyTier {\n TransactionId?: string;\n ChannelId?: number;\n TerminalId?: string;\n ReceiptId?: string;\n StaffId?: string;\n }\n \n /**\n * TaxViewLine entity interface.\n */\n export interface TaxViewLine {\n TaxId?: string;\n TaxAmount?: number;\n }\n \n /**\n * Coupon entity interface.\n */\n export interface Coupon {\n CodeId?: string;\n Code?: string;\n DiscountOfferId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAccountDepositLine entity interface.\n */\n export interface CustomerAccountDepositLine {\n Amount?: number;\n CustomerAccount?: string;\n Comment?: string;\n StoreNumber?: string;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAttribute entity interface.\n */\n export interface CustomerAttribute {\n AttributeValue?: CommercePropertyValue;\n Units?: string;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInfo entity interface.\n */\n export interface ContactInfo {\n AddressTypeValue?: number;\n RecordId?: number;\n PartyLocationRecordId?: number;\n PartyRecordId?: number;\n PartyNumber?: string;\n Description?: string;\n Value?: string;\n ValueExtension?: string;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n ParentLocation?: number;\n IsPrimary?: boolean;\n IsMobilePhone?: boolean;\n IsPrivate?: boolean;\n IsOptedInMarketing?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryQuantities entity interface.\n */\n export interface InventoryQuantities {\n UnitOfMeasure?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n QuantityReturned?: number;\n }\n \n /**\n * DeliveryInformation entity interface.\n */\n export interface DeliveryInformation {\n DeliveryMode?: string;\n DeliveryAddress?: Address;\n DeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n }\n \n /**\n * ShiftTaxLine entity interface.\n */\n export interface ShiftTaxLine {\n TaxCode?: string;\n TaxAmount?: number;\n TaxRate?: number;\n NetAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxRegistration entity interface.\n */\n export interface TaxRegistration {\n RecordId?: number;\n Name?: string;\n CountryRegionId?: string;\n IsRegistrationNumberUnique?: boolean;\n IsPrimaryAddressRestricted?: boolean;\n TypeApplicabilityRuleRecordId?: number;\n TypeValue?: number;\n Description?: string;\n DirPartyLocationRecordId?: number;\n RegistrationNumber?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n Issuer?: string;\n IssueDate?: Date;\n Section?: string;\n DirectoryPartyRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelTaxRegistration entity interface.\n */\n export interface ChannelTaxRegistration extends TaxRegistration {\n ChannelId?: number;\n }\n \n /**\n * LinkedProduct entity interface.\n */\n export interface LinkedProduct {\n ProductRecordId?: number;\n LinkedProductRecordId?: number;\n Quantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DisplayOrderInCategory entity interface.\n */\n export interface DisplayOrderInCategory {\n CategoryRecordId?: number;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RelatedProduct entity interface.\n */\n export interface RelatedProduct {\n ProductRecordId?: number;\n RelatedProductRecordId?: number;\n CatalogId?: number;\n RelationName?: string;\n IsExcludedRelation?: boolean;\n IsDirectRelation?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponent entity interface.\n */\n export interface KitComponent {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity interface.\n */\n export interface ChannelReferenceAdditionalLookupCriteria {\n OrderLookupAdditionalCriteriaTypeValue?: number;\n OrderLookupAdditionalCriteriaTypeParameterValue?: string;\n }\n \n /**\n * UserAlertFulfillmentLineParameter entity interface.\n */\n export interface UserAlertFulfillmentLineParameter extends FulfillmentLineParameter {\n ItemId?: string;\n ProductId?: number;\n UnitOfMeasure?: string;\n SerialNumberInLatestFulfillmentTransaction?: string;\n LatestFulfillmentTransactionOperationTypeValue?: number;\n }\n \n /**\n * ListingIdentity entity interface.\n */\n export interface ListingIdentity {\n ProductId?: number;\n LanguageId?: string;\n CatalogId?: number;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRatingCount entity interface.\n */\n export interface ProductRatingCount {\n Rating?: number;\n Count?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RegularStoreHours entity interface.\n */\n export interface RegularStoreHours {\n MondayOpenTime?: number;\n MondayCloseTime?: number;\n IsClosedOnMonday?: boolean;\n TuesdayOpenTime?: number;\n TuesdayCloseTime?: number;\n IsClosedOnTuesday?: boolean;\n WednesdayOpenTime?: number;\n WednesdayCloseTime?: number;\n IsClosedOnWednesday?: boolean;\n ThursdayOpenTime?: number;\n ThursdayCloseTime?: number;\n IsClosedOnThursday?: boolean;\n FridayOpenTime?: number;\n FridayCloseTime?: number;\n IsClosedOnFriday?: boolean;\n SaturdayOpenTime?: number;\n SaturdayCloseTime?: number;\n IsClosedOnSaturday?: boolean;\n SundayOpenTime?: number;\n SundayCloseTime?: number;\n IsClosedOnSunday?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidationPeriod entity interface.\n */\n export interface ValidationPeriod {\n RecordId?: number;\n PeriodId?: string;\n Description?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n StartingTime?: number;\n EndingTime?: number;\n IsTimeBounded?: number;\n MondayStartingTime?: number;\n MondayEndingTime?: number;\n IsMondayTimeBounded?: number;\n TuesdayStartingTime?: number;\n TuesdayEndingTime?: number;\n IsTuesdayTimeBounded?: number;\n WednesdayStartingTime?: number;\n WednesdayEndingTime?: number;\n IsWednesdayTimeBounded?: number;\n ThursdayStartingTime?: number;\n ThursdayEndingTime?: number;\n IsThursdayTimeBounded?: number;\n FridayStartingTime?: number;\n FridayEndingTime?: number;\n IsFridayTimeBounded?: number;\n SaturdayStartingTime?: number;\n SaturdayEndingTime?: number;\n IsSaturdayTimeBounded?: number;\n SundayStartingTime?: number;\n SundayEndingTime?: number;\n IsSundayTimeBounded?: number;\n IsEndTimeAfterMidnight?: number;\n IsMondayEndTimeAfterMidnight?: number;\n IsTuesdayEndTimeAfterMidnight?: number;\n IsWednesdayEndTimeAfterMidnight?: number;\n IsThursdayEndTimeAfterMidnight?: number;\n IsFridayEndTimeAfterMidnight?: number;\n IsSaturdayEndTimeAfterMidnight?: number;\n IsSundayEndTimeAfterMidnight?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChange entity interface.\n */\n export interface ClientBookChange {\n FromStaffId?: string;\n ToStaffId?: string;\n CustomerId?: string;\n }\n \n /**\n * ChannelProfile entity interface.\n */\n export interface ChannelProfile {\n ProfileProperties?: ChannelProfileProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RetailSharedConfigurationParameter entity interface.\n */\n export interface RetailSharedConfigurationParameter {\n RecordId?: number;\n Name?: string;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CDXDataStore entity interface.\n */\n export interface CDXDataStore {\n Name?: string;\n RecId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UploadJobPackageRequest entity interface.\n */\n export interface UploadJobPackageRequest {\n JobId?: string;\n RerunUploadSessionId?: number;\n TargetStorage?: string;\n UploadJobDefintion?: string;\n UploadUrl?: string;\n }\n \n /**\n * ExtensibleAuditEventType entity interface.\n */\n export interface ExtensibleAuditEventType extends ExtensibleEnumeration {\n }\n \n /**\n * AuditEventFiscalTransaction entity interface.\n */\n export interface AuditEventFiscalTransaction {\n EventId?: number;\n LineNumber?: number;\n RegisterResponse?: string;\n Store?: string;\n TransDateTime?: Date;\n Terminal?: string;\n UploadType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AuditEventFiscalRegistrationLine entity interface.\n */\n export interface AuditEventFiscalRegistrationLine {\n EventId?: number;\n RegisterResponse?: string;\n StoreId?: string;\n TransactionDateTime?: Date;\n TerminalId?: string;\n UploadType?: string;\n UploadTypeValue?: number;\n StaffId?: string;\n RecordGuid?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NotificationDetail entity interface.\n */\n export interface NotificationDetail {\n ActionProperty?: string;\n ItemCount?: number;\n DisplayText?: string;\n IsNew?: boolean;\n LastUpdatedDateTimeStr?: string;\n IsSuccess?: boolean;\n IsLiveContentOnly?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentContext entity interface.\n */\n export interface FiscalIntegrationDocumentContext {\n AuditEvent?: AuditEvent;\n SignatureData?: FiscalIntegrationSequentialSignatureData[];\n }\n \n /**\n * FiscalIntegrationDocumentAdjustment entity interface.\n */\n export interface FiscalIntegrationDocumentAdjustment {\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSignatureDataContext entity interface.\n */\n export interface FiscalIntegrationSignatureDataContext {\n SequentialSignatureKey?: string;\n SequentialNumber?: number;\n }\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity interface.\n */\n export interface FiscalIntegrationRegistrationProcessLine {\n RegistrationProcessId?: string;\n SequenceNumber?: number;\n Priority?: number;\n ConnectorTypeValue?: number;\n FunctionalityProfileGroupId?: string;\n AllowSkip?: boolean;\n AllowMarkAsRegistered?: boolean;\n AllowPostpone?: boolean;\n Optional?: boolean;\n RegistrationSettings?: FiscalIntegrationRegistrationSettings;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n SequentialKeys?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationSettings entity interface.\n */\n export interface FiscalIntegrationRegistrationSettings {\n SkipReasonCode?: string;\n MarkAsRegisteredReasonCode?: string;\n PostponeReasonCode?: string;\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n RegistrationProcessLine?: FiscalIntegrationRegistrationProcessLine;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n ConnectionProperties?: FiscalIntegrationConfigurationProperty[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationConfigurationProperty entity interface.\n */\n export interface FiscalIntegrationConfigurationProperty {\n LabelName?: string;\n Value?: string;\n }\n \n /**\n * FiscalIntegrationServiceFailureDetails entity interface.\n */\n export interface FiscalIntegrationServiceFailureDetails {\n FailureTypeValue?: number;\n IsRetryAllowed?: boolean;\n ErrorCode?: string;\n ErrorMessage?: string;\n }\n \n /**\n * CategoryPath entity interface.\n */\n export interface CategoryPath {\n Segments?: CategoryPathSegment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathSegment entity interface.\n */\n export interface CategoryPathSegment {\n CategoryName?: string;\n CategoryId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttachedService entity interface.\n */\n export interface AttachedService {\n BaseUrl?: string;\n ServiceId?: string;\n StatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleInventoryJournalType entity interface.\n */\n export interface ExtensibleInventoryJournalType extends ExtensibleEnumeration {\n }\n \n /**\n * CustomerTimelineItemType entity interface.\n */\n export interface CustomerTimelineItemType {\n Description?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryAvailability entity interface.\n */\n export interface ProductWarehouseInventoryAvailability {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n PhysicalInventory?: number;\n PhysicalReserved?: number;\n TotalAvailable?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n OrderedInTotal?: number;\n PhysicalAvailable?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n LastInventoryTransactionId?: number;\n UnpostedOnlineOrderedQuantity?: number;\n UnpostedFulfilledQuantity?: number;\n IsInventoryAvailabilityQuantityReturned?: boolean;\n UnprocessedQuantity?: number;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n SumUncountedTransactions?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QuantityUnitType entity interface.\n */\n export interface QuantityUnitType extends ExtensibleEnumeration {\n }\n \n /**\n * ProductInventoryAvailability entity interface.\n */\n export interface ProductInventoryAvailability {\n ProductId?: number;\n DataAreaId?: string;\n TotalAvailableQuantity?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableQuantity?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ParameterSet entity interface.\n */\n export interface ParameterSet {\n }\n \n /**\n * CartLineValidationResults entity interface.\n */\n export interface CartLineValidationResults {\n ValidationResultsByLineId?: CartLineValidationResultsByLineId;\n ValidationFailuresByCartLines?: LineDataValidationFailure[];\n }\n \n /**\n * CommerceException entity interface.\n */\n export interface CommerceException {\n LocalizedMessage?: string;\n ErrorResourceId?: string;\n }\n \n /**\n * DataValidationException entity interface.\n */\n export interface DataValidationException extends CommerceException {\n ValidationResults?: DataValidationFailure[];\n }\n \n /**\n * MissingRequiredReasonCodeException entity interface.\n */\n export interface MissingRequiredReasonCodeException extends DataValidationException {\n RequiredReasonCodes?: ReasonCode[];\n TransactionRequiredReasonCodeIds?: string[];\n ReasonCodeRequirements?: ReasonCodeRequirement[];\n }\n \n /**\n * SecurityException entity interface.\n */\n export interface SecurityException extends CommerceException {\n }\n \n /**\n * DeviceAuthenticationException entity interface.\n */\n export interface DeviceAuthenticationException extends SecurityException {\n }\n \n /**\n * HeadquarterTransactionServiceException entity interface.\n */\n export interface HeadquarterTransactionServiceException extends CommerceException {\n }\n \n /**\n * UserAuthenticationException entity interface.\n */\n export interface UserAuthenticationException extends SecurityException {\n }\n \n /**\n * UserAuthorizationException entity interface.\n */\n export interface UserAuthorizationException extends SecurityException {\n }\n \n /**\n * FeatureNotSupportedException entity interface.\n */\n export interface FeatureNotSupportedException extends CommerceException {\n }\n \n /**\n * CartValidationException entity interface.\n */\n export interface CartValidationException extends DataValidationException {\n }\n \n /**\n * TenderValidationException entity interface.\n */\n export interface TenderValidationException extends DataValidationException {\n TenderTypeId?: string;\n }\n \n /**\n * CommerceDataExchangeException entity interface.\n */\n export interface CommerceDataExchangeException extends CommerceException {\n }\n \n /**\n * ExtensibleEnumerationException entity interface.\n */\n export interface ExtensibleEnumerationException extends CommerceException {\n }\n \n /**\n * TaskManagementException entity interface.\n */\n export interface TaskManagementException extends CommerceException {\n TaskManagementErrors?: TaskManagementError[];\n }\n \n /**\n * TaskManagementServerException entity interface.\n */\n export interface TaskManagementServerException extends TaskManagementException {\n }\n \n /**\n * TaskManagementClientException entity interface.\n */\n export interface TaskManagementClientException extends TaskManagementException {\n }\n \n /**\n * PaymentException entity interface.\n */\n export interface PaymentException extends CommerceException {\n AdditionalContext?: string;\n PaymentSdkErrors?: PaymentError[];\n }\n \n /**\n * DataValidationFailure entity interface.\n */\n export interface DataValidationFailure {\n ErrorContext?: string;\n ErrorResourceId?: string;\n MemberNames?: string[];\n LocalizedMessage?: string;\n }\n \n /**\n * ItemDiscontinuedException entity interface.\n */\n export interface ItemDiscontinuedException extends CommerceException {\n RemovedUnavailableItemIds?: string;\n }\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity interface.\n */\n export interface InventoryDocumentLockedByOtherTerminalException extends DataValidationException {\n WorkingTerminalId?: string;\n CurrentTerminalId?: string;\n }\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity interface.\n */\n export interface InventoryDocumentExceedMaximumQuantityException extends DataValidationException {\n MaximumQuantity: number;\n AllowOverDelivery: boolean;\n }\n \n /**\n * CartLineValidationResultsByLineId entity interface.\n */\n export interface CartLineValidationResultsByLineId {\n LineIdToProductBehaviorMap?: KeyValuePair_2OfString_ProductBehavior[];\n ValidationResultsPairs?: LineValidationResult[];\n }\n \n /**\n * CommerceRuntimeCompositionException entity interface.\n */\n export interface CommerceRuntimeCompositionException extends CommerceException {\n }\n \n /**\n * ChecklistTaskValidationException entity interface.\n */\n export interface ChecklistTaskValidationException extends DataValidationException {\n }\n \n /**\n * InsufficientCredentialLengthException entity interface.\n */\n export interface InsufficientCredentialLengthException extends DataValidationException {\n ActualLength?: number;\n MinLength?: number;\n }\n \n /**\n * ExtensibleEnumerationCacheException entity interface.\n */\n export interface ExtensibleEnumerationCacheException extends CommerceException {\n }\n \n /**\n * ExtensionConfigurationException entity interface.\n */\n export interface ExtensionConfigurationException extends CommerceException {\n }\n \n /**\n * StaffPasswordExpiredException entity interface.\n */\n export interface StaffPasswordExpiredException extends UserAuthenticationException {\n StaffId?: string;\n }\n \n /**\n * ChannelConfigurationNotFoundException entity interface.\n */\n export interface ChannelConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * PaymentConfigurationException entity interface.\n */\n export interface PaymentConfigurationException extends CommerceException {\n PaymentConfigurationSdkErrors?: string[];\n }\n \n /**\n * SecretConfigurationNotFoundException entity interface.\n */\n export interface SecretConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * TenderTypePolicy entity interface.\n */\n export interface TenderTypePolicy {\n OriginalTenderType?: string;\n AllowedReturnTenderTypes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AccountStatementRequest entity interface.\n */\n export interface AccountStatementRequest {\n RequestedUserId?: string;\n IsForFullOrganization?: boolean;\n FromDate?: Date;\n ToDate?: Date;\n RequestingUserEmail?: string;\n DeliveryTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequestDetails entity interface.\n */\n export interface BusinessPartnerOperationRequestDetails {\n InvoiceId?: string;\n AccountStatementStartDateTime?: Date;\n AccountStatementEndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskManagementError entity interface.\n */\n export interface TaskManagementError {\n ErrorResourceId?: string;\n LocalizedMessage?: string;\n TaskId?: string;\n }\n \n /**\n * LineDataValidationFailure entity interface.\n */\n export interface LineDataValidationFailure {\n DataValidationFailure?: DataValidationFailure;\n LineIndex?: number;\n }\n \n /**\n * WrongEndpointException entity interface.\n */\n export interface WrongEndpointException extends CommerceException {\n RedirectUri?: string;\n }\n \n /**\n * BadRequestException entity interface.\n */\n export interface BadRequestException extends CommerceException {\n }\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity interface.\n */\n export interface KeyValuePair_2OfString_ProductBehavior {\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable } from 'mobx';\nimport { IODataMetadata } from './interfaces/IODataMetadata';\n\nexport type AsyncResultStatus = 'LOADING' | 'SUCCESS' | 'FAILED';\n\nexport const isAsyncResult = (item: { toString(): string }): item is AsyncResult => {\n return item && item.toString && typeof item.toString === 'function' && item.toString() === `[object AsyncResult]`;\n};\n\n/**\n * Utility Methods For AsyncResult\n */\nconst isThenable = (obj: any) => obj && typeof obj === 'object' && typeof obj.then === 'function';\n\n/**\n * TYPES & INTERFACES\n */\ninterface IHandler {\n onSuccess: HandlerOnSuccess;\n onFail: HandlerOnFail;\n}\n\ntype HandlerOnSuccess = (value: TIn) => TOut | PromiseLike;\ntype HandlerOnFail = (reason: any) => TOut | PromiseLike;\n\ntype Resolve = (value?: T | PromiseLike) => void;\ntype Reject = (value?: any) => void;\n\n/**\n * AsyncResult Class\n * Promise-style class which allows for observation of the status of the promise\n * and it's result during and after is execution.\n */\nexport class AsyncResult implements Promise {\n @observable public result?: T;\n\n @observable public status: AsyncResultStatus = 'LOADING';\n\n @observable public error?: Error;\n\n @observable public metadata: IODataMetadata = {};\n\n private _type: string = 'AsyncResult';\n\n public getType(): string {\n return this._type;\n }\n\n private _handlers: Array> = [];\n\n public static resolve(value?: U | PromiseLike): AsyncResult {\n return new AsyncResult(resolve => {\n return resolve(value);\n });\n }\n\n public static reject(reason?: any): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n return reject(reason);\n });\n }\n\n /**\n * Class constructor, which starts running the passed executor\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n constructor(executor: (resolve: Resolve, reject: Reject) => void) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method that allows for an executor to be passed to the promise after inital execution,\n * essentially \"rerunning\" the promise.\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n public run(executor: (resolve: Resolve, reject: Reject) => void): void {\n this.status = 'LOADING';\n this.error = undefined;\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method which allows chaining of callbacks to the end of a fully executed AsyncResult\n * @param onSuccess Callback to be run on successful completion of executor\n * @param onFail Callback to be run when executor cannot be successfully completed\n */\n public then(\n onSuccess?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n onFail?: ((reason: any) => TResult2 | PromiseLike) | undefined | null\n ): AsyncResult {\n const asyncResult = new AsyncResult((resolve, reject) => {\n return this._attachHandler({\n onSuccess: result => {\n if (!onSuccess) {\n return resolve(result as any);\n }\n\n try {\n return resolve(onSuccess(result));\n } catch (e) {\n return reject(e);\n }\n },\n onFail: reason => {\n if (!onFail) {\n return reject(reason);\n }\n\n try {\n return resolve(onFail(reason));\n } catch (e) {\n return reject(e);\n }\n }\n });\n });\n\n // Always pass the metadata on a then\n asyncResult.metadata = this.metadata;\n\n return asyncResult;\n }\n\n /**\n * Hook to allow callback on the unsuccessful run of an executor\n * @param onFail Callback to run when executor fails\n */\n public catch(onFail?: ((reason: any) => TResult | PromiseLike) | undefined | null): AsyncResult {\n const defaultThen = (value: any) => value;\n return this.then(defaultThen, onFail);\n }\n\n /**\n * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n * @param callback Callback to be run after original AsyncResult is completed\n */\n public finally(onfinally?: (() => void) | undefined | null): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n let value: T | any;\n let failed: Boolean = false;\n\n return this.then(\n result => {\n value = result;\n return onfinally();\n },\n reason => {\n failed = true;\n value = reason;\n return onfinally();\n }\n ).then(() => {\n if (failed) {\n return reject(value);\n }\n\n return resolve(value);\n });\n });\n }\n\n public toString(): string {\n return `[object AsyncResult]`;\n }\n\n get [Symbol.toStringTag](): string {\n return '[object AsyncResult]';\n }\n\n private _attachHandler = (handler: IHandler) => {\n this._handlers.push(handler);\n\n this._executeHandlers();\n };\n\n private _executeHandlers = () => {\n if (this.status === 'LOADING') {\n return;\n }\n\n for (const handler of this._handlers) {\n if (this.status === 'FAILED') {\n handler.onFail(this.error);\n } else {\n handler.onSuccess(this.result as T);\n }\n }\n\n this._handlers = [];\n };\n\n private _resolve = (value?: T | PromiseLike) => {\n return this._updateStatus(value, 'SUCCESS');\n };\n\n private _reject = (reason: any) => {\n return this._updateStatus(reason, 'FAILED', true);\n };\n\n private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n // Wrap in setTimeout to ensure fully synchronous handlers\n // are still returned AFTER initial class construction\n setTimeout(() => {\n if (this.status !== 'LOADING') {\n return null;\n }\n\n if (isThenable(result)) {\n return (result as PromiseLike).then(this._resolve, this._reject);\n }\n\n if (isError) {\n this.error = result;\n } else {\n this.result = result;\n }\n\n this.status = newStatus;\n\n return this._executeHandlers();\n }, 0);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\nexport class ErrorTypeEnum {\n public static SERVER_ERROR: string = 'string_29002';\n public static SERVICE_UNAVAILABLE: string = 'string_29278';\n public static SERVER_TIMEOUT: string = 'string_29279';\n public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n public static GENERICERRORMESSAGE: string = 'string_29201';\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n public static BAD_REQUEST: string = 'string_29274';\n public static NOT_AUTHORIZIED: string = 'string_29275';\n public static FORBIDDEN: string = 'string_29276';\n public static PRECONDITION_FAILED: string = 'string_29277';\n public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n}\n\n/**\n * Forward links for device activation errors.\n */\nexport class DeviceActivationErrorsForwardLinks {\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403590';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403591';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403592';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403593';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD: string = 'http://go.microsoft.com/fwlink/?LinkId=403594';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED: string = 'http://go.microsoft.com/fwlink/?LinkId=519136';\n public static SERVER_ERROR: string = 'http://go.microsoft.com/fwlink/?LinkId=519137';\n}\n\nexport class ErrorHelper {\n private static AGGREGATED_ERROR_RESOUCEIDS: string[] = [\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError',\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError',\n 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError'\n ];\n\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = 'Microsoft_Dynamics_Internal_Server_Error';\n\n public static isAggregatedErrorResourceId(errorResourceId: string): boolean {\n return ErrorHelper.AGGREGATED_ERROR_RESOUCEIDS.indexOf(errorResourceId) !== -1;\n }\n\n /**\n * Map response status code to error.\n *\n * @param {any} Error returned by retail server call.\n */\n public static MapResponseStatusCodeToError(errorMessage: string, statusCode: number, err?: any): ProxyError {\n let errorCode = '';\n let canRetry = false;\n\n switch (statusCode) {\n case 400:\n errorCode = ErrorTypeEnum.BAD_REQUEST;\n break;\n case 401:\n errorCode = ErrorTypeEnum.NOT_AUTHORIZIED;\n break;\n case 403:\n errorCode = ErrorTypeEnum.FORBIDDEN;\n break;\n case 412:\n errorCode = ErrorTypeEnum.PRECONDITION_FAILED;\n break;\n case 503:\n errorCode = ErrorTypeEnum.SERVICE_UNAVAILABLE;\n canRetry = true;\n break;\n case 500:\n default:\n errorCode = ErrorTypeEnum.SERVER_ERROR;\n errorMessage = 'The server error format is not supported or it does not have enough information.';\n\n // Temporary until the fix for Bug 681427 goes in\n // If no orders were found, than an error did not occur\n if (err && err.response && err.response.body && err.response.requestUri) {\n if (err.response.requestUri.indexOf('GetOrderByReceiptId') > -1) {\n if (err.response.body.indexOf('No orders were found') > -1) {\n errorMessage = ErrorTypeEnum.RETURN_NO_ORDERS_FOUND;\n }\n }\n }\n }\n\n if (errorMessage && errorMessage.toUpperCase() === 'TIMEOUT') {\n errorCode = ErrorTypeEnum.SERVER_TIMEOUT;\n }\n\n return new ProxyError(errorCode, errorMessage || EMPTY, EMPTY, canRetry, err);\n }\n\n /**\n * Checks whether all the provided errors are retryable. If no error code is provided or an error is undefined,\n * then the errors will be treated as not retryable.\n *\n * @return {boolean} True if the error codes are retryable, false if the error codes are not retryable or not defined\n */\n public static isRetryable(errors: ProxyError[]): boolean {\n const numErrors: number = !errors ? 0 : errors.length;\n let isRetryable: boolean = numErrors > 0;\n for (let i: number = 0; i < numErrors; i++) {\n if (errors[i]) {\n isRetryable = isRetryable && errors[i].CanRetry;\n } else {\n isRetryable = false;\n }\n }\n\n return isRetryable;\n }\n\n /**\n * Gets a string with all error codes.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error codes.\n */\n public static getErrorResourceIds(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.ErrorCode);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n\n /**\n * Gets a string with all error messages.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error messages.\n */\n public static getErrorMessages(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.LocalizedErrorMessage);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CommerceException, DataValidationException, DataValidationFailure } from '../Entities/CommerceTypes.g';\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { genericWarning, Tracer } from '../logging';\nimport { ErrorTypeEnum, ErrorHelper } from './ErrorHelper';\nimport { ProxyError } from './ProxyError';\n\n/**\n * Error parser class.\n */\nexport class ErrorParser {\n private static DataValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.DataValidationException';\n private static CartValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.CartValidationException';\n private static StorageExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.StorageException';\n\n /**\n * Parses an error message.\n *\n * @param {any} error The error message.\n * @return {ProxyError[]} The collection of error messages.\n */\n public static parseErrorMessage(error: any): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n if (response) {\n let handled = true;\n Tracer.Information(`Server response status code is '${response.statusCode}'`);\n switch (response.statusCode) {\n case 306: // Custom - Redirection\n const redirectUrl = response.headers['Location'];\n error.redirectUrl = redirectUrl;\n errors = [new ProxyError(ErrorTypeEnum.RETAIL_SERVER_REDIRECT_ERROR, response.statusText, EMPTY, false, error)];\n break;\n\n case 401: // Unauthorized (Generally Expired Token)\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n const redirectCountQueryString = 'rdc';\n const noRedirectQueryString = 'noredirect';\n try {\n const currentUrl = new URL(location.href);\n if (currentUrl.searchParams.get(noRedirectQueryString)) {\n break;\n }\n const rdc = parseInt(currentUrl.searchParams.get(redirectCountQueryString), 10) || 0;\n if (rdc && rdc >= 3) {\n break;\n }\n currentUrl.searchParams.set(redirectCountQueryString, `${rdc + 1}`);\n location.href = currentUrl.href;\n } catch (e) {\n break;\n }\n }\n\n break;\n\n case 408: // Request Timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVER_TIMEOUT, response.statusText, EMPTY, false, error)];\n break;\n\n case 0: // WWAHost reports status code as 0, If server is unreachable.\n case 502: // Bad Gateway\n case 503: // Service Unavailable\n case 504: // Gateway timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, response.statusText, EMPTY, false, error)];\n break;\n\n default:\n handled = false;\n }\n\n if (!handled) {\n errors = ErrorParser.parseError(error);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n /**\n * Parses an error message sent from Hardware station.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n public static parseHardwareStationErrorMessage(error: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n if (error) {\n try {\n const response = error.responseText;\n\n if (response) {\n const jsonResponse = JSON.parse(response);\n\n // Parse errors in json format\n if (jsonResponse) {\n errors = [\n new ProxyError(\n jsonResponse.ErrorResourceId ? jsonResponse.ErrorResourceId : ErrorTypeEnum.SERVER_ERROR,\n jsonResponse.Message || '',\n EMPTY,\n false,\n error\n )\n ];\n } else {\n // If not in json, we cannot parse it\n errors = [\n new ProxyError(\n ErrorTypeEnum.SERVER_ERROR,\n 'The value of Content-Type on server response is not supported.',\n EMPTY,\n false,\n error\n )\n ];\n }\n } else {\n // In case we don't have a body, we don't know the error message but from http status\n errors = [ErrorHelper.MapResponseStatusCodeToError(error.statusText, error.status, error)];\n }\n } catch (ex) {\n const errorMessage: string = `parseHardwareStationErrorMessage: Failed parse error message '${ex.message}'.`;\n Tracer.Error(errorMessage, ex);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n public static parseJSONError(errorString: string, errorResponse?: any): ProxyError[] {\n let commerceErrors: ProxyError[] = [];\n\n try {\n const odataError: any = JSON.parse(errorString);\n odataError.CorrelationId = errorResponse.data.CorrelationId;\n\n // assign parsed data to errorResponse\n errorResponse.data = odataError;\n\n // due to odata json format limitation, a collection of errors is provided in the message field\n const localizedMessage: string = odataError.LocalizedMessage;\n const exceptionType: string = odataError.ErrorResourceId;\n\n if (exceptionType === ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR,\n localizedMessage || 'Server failed with uncaught exception. Please report this failure.',\n localizedMessage,\n false,\n errorResponse\n )\n ];\n } else if (localizedMessage != null && exceptionType != null) {\n commerceErrors = ErrorParser.convertExceptionToErrors(odataError, exceptionType, errorResponse);\n } else {\n throw new Error('Server exception is not in expected format.');\n }\n } catch (ex) {\n const errorMessage: string =\n 'DataServiceRequest::parseJSONError: Invalid json format from server. It was not possible to parse error message. {0}';\n Tracer.Error(errorMessage, ex);\n }\n\n if (!hasElements(commerceErrors)) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.GENERICERRORMESSAGE,\n 'Could not parse error message from server. Possible invalid OData request, please check your request.',\n EMPTY,\n false,\n errorResponse\n )\n ];\n }\n\n return commerceErrors;\n }\n\n private static convertExceptionToErrors(serverException: CommerceException, exceptionType: string, errorResponse: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n switch (exceptionType) {\n // CartValidationExceptionType extends DataValidationExceptionType\n case ErrorParser.DataValidationExceptionType:\n case ErrorParser.CartValidationExceptionType:\n const dataValidation: DataValidationException = serverException as DataValidationException;\n // json is in odata format, array has elements inside result member\n errors = ErrorParser.getErrorsFromDataValidationFailures(dataValidation.ValidationResults as any);\n errors.push(\n new ProxyError(\n dataValidation.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n dataValidation.LocalizedMessage,\n false,\n errorResponse\n )\n );\n break;\n\n case ErrorParser.StorageExceptionType:\n errors.push(\n new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, EMPTY, serverException.LocalizedMessage, false, errorResponse)\n );\n break;\n }\n\n if (errors.length === 0) {\n const error: ProxyError = new ProxyError(\n serverException.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n serverException.LocalizedMessage,\n false,\n errorResponse\n );\n error.commerceException = serverException;\n errors.push(error);\n }\n\n return errors;\n }\n\n private static getErrorsFromDataValidationFailures(failures: DataValidationFailure[]): ProxyError[] {\n const errors: ProxyError[] = [];\n failures = failures || [];\n\n for (const failure of failures) {\n errors.push(\n new ProxyError(\n failure.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n failure.ErrorContext || '',\n failure.LocalizedMessage,\n false,\n {}\n )\n );\n }\n\n return errors;\n }\n\n /**\n * Parses an error to get the error code and error message.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n private static parseError(error: any): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n if (response.body && response.data) {\n // If we have a response body\n const contentType: string = (response.headers && (response.headers['Content-Type'] || response.headers['content-type'])) || '';\n const bodyString: string = response.data.Exception;\n // Parse errors in json format\n if (contentType.toLowerCase().indexOf('application/json') !== -1) {\n errors = ErrorParser.parseJSONError(bodyString, error.response);\n } else {\n const message: string = `Server error has been received with unsupported content type: '${contentType}'.`;\n genericWarning(message);\n }\n }\n // if we couldn't parse the errors from the body, we can only rely on status text and status code\n if (!hasElements(errors)) {\n // In case we don't have a body, we don't know the error message but from http status code\n errors = [ErrorHelper.MapResponseStatusCodeToError(response.statusText, response.statusCode, error)];\n }\n return errors;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\nexport class ProxyErrorSDK extends Error {\n public errorCode: string;\n public errorMessage: string;\n public localizedErrorMessage: string = '';\n public canRetry: boolean = false;\n public commerceException: any;\n public formatData: any[] = [];\n public requestUri: any;\n public data: any;\n public statusCode: any;\n\n constructor(\n errorCode: string,\n errorMessage: string,\n canRetry: boolean\n ) {\n super();\n this.name = errorCode;\n this.message = errorMessage;\n this.errorCode = errorCode;\n this.errorMessage = errorMessage;\n this.canRetry = canRetry;\n Object.setPrototypeOf(this, ProxyErrorSDK.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\n\nimport { ProxyErrorSDK } from './ProxyErrorSDK';\n\n'use strict';\n\n/**\n * Class for representing an error.\n */\nexport class ProxyError {\n private _errorCode: string;\n private _errorMessage: string;\n private _localizedErrorMessage: string;\n private _canRetry: boolean = false;\n private _commerceException: any;\n private _formatData: any[];\n private _extraData: any;\n\n constructor(errorCode: string, errorMessage: string, localizedErrorMessage, canRetry: boolean, extraData: any, ...formatData: any[]) {\n this._errorCode = errorCode;\n this._errorMessage = errorMessage;\n this._localizedErrorMessage = localizedErrorMessage;\n this._canRetry = canRetry;\n this._commerceException = null;\n this._formatData = formatData;\n if (extraData && typeof extraData == 'object' && extraData.request && extraData.request.headers) {\n extraData.request.headers = {};\n }\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n e.requestUri = proxyError.extraData.requestUri;\n\n e.data = proxyError.extraData.data;\n\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport axios from 'axios';\nimport { jsonHandler } from './handler';\n\n/**\n * OData request interface.\n */\nexport interface IODataRequest {\n /**\n * OData endpoint URI\n */\n requestUri: string;\n\n /**\n * HTTP method (GET, POST, PUT, DELETE)\n */\n method: string;\n\n /**\n * Payload of the request (in intermediate format)\n */\n data: any;\n\n /**\n * Object that contains HTTP headers as name value pairs\n */\n headers?: Object;\n\n /**\n * (Optional) Username to send for BASIC authentication\n */\n user?: string;\n\n /**\n * (Optional) Password to send for BASIC authentication\n */\n password?: string;\n\n /**\n * (Optional) Whether or not to use cross domain cookies.\n */\n useCrossDomainCookies?: boolean;\n}\n\nconst normalHeaders = {\n accept: 'Accept',\n 'content-type': 'Content-Type',\n 'odata-version': 'OData-Version',\n 'odata-maxversion': 'OData-MaxVersion'\n};\n\nconst isAbsoluteUrl = url => {\n /// Checks whether the specified URL is an absolute URL.\n /// URL to check.\n /// true if the url is an absolute URL; false otherwise.\n\n return url.indexOf('http://') === 0 || url.indexOf('https://') === 0 || url.indexOf('file://') === 0;\n};\n\nconst normalizeHeaders = headers => {\n /// Normalizes headers so they can be found with consistent casing.\n /// Dictionary of name/value pairs.\n\n for (const name in headers) {\n if (headers.hasOwnProperty(name)) {\n const lowerName = name.toLowerCase();\n const normalName = normalHeaders[lowerName];\n if (normalName && name !== normalName) {\n const val = headers[name];\n delete headers[name];\n headers[normalName] = val;\n }\n }\n }\n};\n\nconst defaultHttpClient = {\n callbackParameterName: '$callback',\n formatQueryString: '$format=json',\n enableJsonpCallback: false,\n\n request(request, success, error) {\n /// Performs a network request.\n /// Request description.\n /// Success callback with the response object.\n /// Error callback with an error object.\n /// Object with an 'abort' method for the operation.\n const result = { abort: null, handleTimeout: null };\n\n const cancelToken = axios.CancelToken.source();\n\n let done = false;\n result.abort = () => {\n if (done) {\n return;\n }\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request aborted' });\n };\n\n request.handleTimeout = () => {\n if (!done) {\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request timed out' });\n }\n };\n\n const url = request.requestUri;\n const enableJsonpCallback = request.enableJsonpCallback || false;\n if (!enableJsonpCallback || !isAbsoluteUrl(url)) {\n let authenticationCreds;\n if (request.user) {\n authenticationCreds = {\n username: request.user,\n password: request.password || ''\n };\n }\n // console.log('\\r\\nDataServiceRequest - \\r\\n\\n', request);\n let axiosTimeout = request.timeoutMS || 10000;\n // check if on client side.\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n // @ts-ignore -using client window object\n if (typeof window != undefined && window.___initialData___) {\n // @ts-ignore -using client window object\n if (window.___initialData___._clientPlatformSetting?.clientSideDataActionTimeoutInMs) {\n // @ts-ignore -using client window object\n axiosTimeout = window.___initialData___._clientPlatformSetting.clientSideDataActionTimeoutInMs;\n }\n }\n }\n axios\n .request({\n method: request.method || 'get',\n url,\n data: request.body,\n auth: authenticationCreds,\n headers: request.headers || {},\n timeout: axiosTimeout,\n cancelToken: cancelToken.token\n })\n .then(axiosResponse => {\n const response = {\n requestUri: url,\n statusCode: axiosResponse.status,\n statusText: axiosResponse.statusText,\n headers: axiosResponse.headers,\n body: axiosResponse.data\n };\n done = true;\n success(response);\n })\n .catch(axiosError => {\n const response = {\n requestUri: url,\n statusCode: axiosError.response ? parseInt(axiosError.response.status, 10) : 0,\n statusText: axiosError.name,\n body: axiosError.message,\n data: axiosError.response ? axiosError.response.data : {},\n headers: axiosError.response ? axiosError.response.headers : {}\n };\n error({ message: 'HTTP request failed', request, response });\n });\n } else {\n error({\n message: 'Only requests to non-absolute urls are supported at this time without JSONP callback'\n });\n }\n return result;\n }\n};\n\nconst prepareRequest = (request, handler, context) => {\n /// Prepares a request object so that it can be sent through the network.\n /// Object that represents the request to be sent.\n /// Handler for data serialization\n /// Context used for preparing the request\n\n // Default to GET if no method has been specified.\n if (!request.method) {\n request.method = 'GET';\n }\n\n if (!request.headers) {\n request.headers = {};\n } else {\n normalizeHeaders(request.headers);\n }\n\n if (request.headers.Accept === undefined) {\n request.headers.Accept = handler.accept;\n }\n\n if (request.data && request.body === undefined) {\n handler.write(request, context);\n }\n\n if (!request.headers['OData-MaxVersion']) {\n request.headers['OData-MaxVersion'] = handler.maxDataServiceVersion || '4.0';\n }\n};\n\nconst invokeRequest = (request, success, error, handler, httpClient, context) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent..\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Context used for processing the request\n\n return httpClient.request(\n request,\n response => {\n try {\n if (response.headers) {\n normalizeHeaders(response.headers);\n }\n\n if (response.data === undefined && response.statusCode !== 204) {\n if (!handler.read(response, context)) {\n throw { message: 'Handler could not parse response.' };\n }\n }\n } catch (err) {\n if (err.request === undefined) {\n err.request = request;\n }\n if (err.response === undefined) {\n err.response = response;\n }\n error(err);\n return;\n }\n\n success(response.data, response);\n },\n error\n );\n};\n\nexport const ODataHttpRequest = (request, success, error) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent.\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Conceptual metadata for this request.\n\n success = success || (data => process.env.NODE_ENV !== 'production' && console.log(JSON.stringify(data)));\n error =\n error ||\n (err => {\n throw err;\n });\n\n // Augment the request with additional defaults.\n request.recognizeDates = request.recognizeDates || false;\n request.useJsonLight = request.useJsonLight || false;\n request.inferJsonLightFeedAsObject = request.inferJsonLightFeedAsObject || false;\n request.callbackParameterName = request.callbackParameterName || defaultHttpClient.callbackParameterName;\n request.formatQueryString = request.formatQueryString || defaultHttpClient.formatQueryString;\n request.enableJsonpCallback = request.enableJsonpCallback || defaultHttpClient.enableJsonpCallback;\n\n // Create the base context for read/write operations, also specifying complete settings.\n const context = {\n recognizeDates: request.recognizeDates,\n callbackParameterName: request.callbackParameterName,\n formatQueryString: request.formatQueryString,\n enableJsonpCallback: request.enableJsonpCallback,\n useJsonLight: request.useJsonLight,\n inferJsonLightFeedAsObject: request.inferJsonLightFeedAsObject\n };\n\n try {\n prepareRequest(request, jsonHandler, context);\n return invokeRequest(request, success, error, jsonHandler, defaultHttpClient, context);\n } catch (err) {\n error(err);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport const MAX_DATA_SERVICE_VERSION = '4.0';\nexport const jsonMediaType = 'application/json';\n\nconst CONTENT_TYPE_HEADER_NAME = 'Content-Type';\nconst ODATA_VERSION = 'OData-Version';\nconst ODATA_MAX_VERSION = 'OData-MaxVersion';\n\nconst contentType = str => {\n /// Parses a string into an object with media type and properties.\n /// String with media type to parse.\n /// null if the string is empty; an object with 'mediaType' and a 'properties' dictionary otherwise.\n\n if (!str) {\n return null;\n }\n\n const contentTypeParts = str.split(';');\n const properties = {};\n\n let i;\n let len;\n for (i = 1, len = contentTypeParts.length; i < len; i++) {\n const contentTypeParams = contentTypeParts[i].split('=');\n properties[contentTypeParams[0].trim()] = contentTypeParams[1];\n }\n\n return { mediaType: contentTypeParts[0].trim(), properties };\n};\n\nexport const jsonContentType = contentType(jsonMediaType);\n\nconst contentTypeToString = contentTypeObj => {\n /// Serializes an object with media type and properties dictionary into a string.\n /// Object with media type and properties dictionary to serialize.\n /// String representation of the media type object; undefined if contentType is null or undefined.\n\n if (!contentTypeObj) {\n return undefined;\n }\n\n let result = contentTypeObj.mediaType;\n for (const property in contentTypeObj.properties) {\n if (contentTypeObj.properties.hasOwnProperty(property)) {\n result += ';' + property + '=' + contentTypeObj.properties[property];\n }\n }\n return result;\n};\n\nconst createReadWriteContext = (contentTypeStr, dataServiceVersion, context, handler) => {\n /// Creates an object that is going to be used as the context for the handler's parser and serializer.\n /// Object with media type and properties dictionary.\n /// String indicating the version of the protocol to use.\n /// Operation context.\n /// Handler object that is processing a resquest or response.\n /// Context object.\n\n // First create a clone\n const rwContext = { ...context };\n\n // And then override with provided parameters\n rwContext['contentType'] = contentTypeStr || jsonContentType;\n rwContext['dataServiceVersion'] = dataServiceVersion;\n rwContext['handler'] = handler;\n\n return rwContext;\n};\n\nconst versionRE = /^\\s?(\\d+\\.\\d+);?.*$/;\nconst getDataServiceVersion = headerVersion => {\n /// Gets the value of the OData-Version header from a request or response.\n /// Object representing a request or a response.\n /// Data service version; undefined if the header cannot be found.\n\n if (headerVersion) {\n const matches = versionRE.exec(headerVersion);\n if (matches && matches.length) {\n return matches[1];\n }\n }\n};\n\nconst handlerRead = (handler, response, context) => {\n /// Invokes the parser associated with a handler for reading the payload of a HTTP response.\n /// Handler object that is processing the response.\n /// Parser function that will process the response payload.\n /// HTTP response whose payload is going to be processed.\n /// Object used as the context for processing the response.\n /// True if the handler processed the response payload and the response.data property was set; false otherwise.\n\n if (!response || !response.headers) {\n return false;\n }\n\n const cType = contentType(response.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(response) || '';\n const body = response.body;\n\n if (!body) {\n return false;\n }\n\n if (jsonMediaType.indexOf(cType.mediaType) >= 0) {\n const readContext = createReadWriteContext(cType, version, context, handler);\n readContext.response = response;\n response.data = typeof body === 'string' ? JSON.parse(body) : body;\n return response.data !== undefined;\n }\n\n return false;\n};\n\nconst maxVersion = (left, right) => {\n /// Compares to version strings and returns the higher one.\n /// Version string in the form \"major.minor.rev\"\n /// Version string in the form \"major.minor.rev\"\n /// The higher version string.\n\n if (left === right) {\n return left;\n }\n\n const leftParts = left.split('.');\n const rightParts = right.split('.');\n\n const len = leftParts.length >= rightParts.length ? leftParts.length : rightParts.length;\n\n for (let i = 0; i < len; i++) {\n const leftVersion = leftParts[i] && parseInt(leftParts[i], 10);\n const rightVersion = rightParts[i] && parseInt(rightParts[i], 10);\n if (leftVersion > rightVersion) {\n return left;\n }\n if (leftVersion < rightVersion) {\n return right;\n }\n }\n};\n\nconst handlerWrite = (handler, request, context) => {\n /// Invokes the serializer associated with a handler for generating the payload of a HTTP request.\n /// Handler object that is processing the request.\n /// Serializer function that will generate the request payload.\n /// HTTP request whose payload is going to be generated.\n /// Object used as the context for serializing the request.\n /// True if the handler serialized the request payload and the request.body property was set; false otherwise.\n if (!request || !request.headers) {\n return false;\n }\n\n const cType = contentType(request.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(request.headers[ODATA_VERSION]);\n\n if (!cType || jsonMediaType.indexOf(cType.mediaType)) {\n const writeContext = createReadWriteContext(cType, version, context, handler);\n writeContext.request = request;\n request.body = request.data;\n\n if (request.body !== undefined) {\n request.headers[ODATA_VERSION] = version ? maxVersion(version, '4.0') : '4.0';\n request.headers.ContentType = request.headers[CONTENT_TYPE_HEADER_NAME] || contentTypeToString(writeContext.contentType);\n request.headers[ODATA_MAX_VERSION] = request.headers[ODATA_MAX_VERSION] || handler.maxDataServiceVersion;\n return true;\n }\n }\n\n return false;\n};\n\nexport const jsonHandler = {\n accept: jsonMediaType,\n maxDataServiceVersion: MAX_DATA_SERVICE_VERSION,\n read(response, context) {\n return handlerRead(this, response, context);\n },\n\n write(request, context) {\n return handlerWrite(this, 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\nconst EDM = 'Edm.';\nconst EDM_BOOLEAN = EDM + 'Boolean';\nconst EDM_BYTE = EDM + 'Byte';\nconst EDM_DATETIME = EDM + 'DateTime';\nconst EDM_DATETIMEOFFSET = EDM + 'DateTimeOffset';\nconst EDM_DECIMAL = EDM + 'Decimal';\nconst EDM_DOUBLE = EDM + 'Double';\nconst EDM_INT16 = EDM + 'Int16';\nconst EDM_INT32 = EDM + 'Int32';\nconst EDM_INT64 = EDM + 'Int64';\nconst EDM_SBYTE = EDM + 'SByte';\nconst EDM_SINGLE = EDM + 'Single';\nconst EDM_TIME = EDM + 'Time';\n\nconst parseBool = propertyValue => {\n /// Parses a string into a boolean value.\n /// Value to parse.\n /// true if the property value is 'true'; false otherwise.\n\n if (typeof propertyValue === 'boolean') {\n return propertyValue;\n }\n\n return typeof propertyValue === 'string' && propertyValue.toLowerCase() === 'true';\n};\n\nconst formatNumberWidth = (value, width, append) => {\n /// Formats the specified value to the given width.\n /// Number to format (non-negative).\n /// Minimum width for number.\n /// Flag indicating if the value is padded at the beginning (false) or at the end (true).\n /// Text representation.\n let result = value.toString(10);\n while (result.length < width) {\n if (append) {\n result += '0';\n } else {\n result = '0' + result;\n }\n }\n\n return result;\n};\n\nconst parseTimezone = timezone => {\n /// Parses a timezone description in (+|-)nn:nn format.\n /// Timezone offset.\n /// \n /// An object with a (d)irection property of 1 for + and -1 for -,\n /// offset (h)ours and offset (m)inutes.\n /// \n\n let direction = timezone.substring(0, 1);\n direction = direction === '+' ? 1 : -1;\n\n const offsetHours = parseInt(timezone.substring(1), 10);\n const offsetMinutes = parseInt(timezone.substring(timezone.indexOf(':') + 1), 10);\n return { d: direction, h: offsetHours, m: offsetMinutes };\n};\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1 - direction\n// 2,3,4 - years, months, days\n// 5,6,7,8 - hours, minutes, seconds, miliseconds\nconst parseTimeRE = /^([+-])?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:\\.(\\d+))?S)?)?/;\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1,2,3 - year with optional minus sign, month, day\n// 4,5,6 - hours, minutes, seconds\n// 7 - optional milliseconds\n// 8 - everything else (presumably offset information)\nconst parseDateTimeRE = /^(-?\\d{4,})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(.*)$/;\n\nconst getCanonicalTimezone = timezone => {\n /// Gets the canonical timezone representation.\n /// Timezone representation.\n /// An 'Z' string if the timezone is absent or 0; the timezone otherwise.\n\n return !timezone || timezone === 'Z' || timezone === '+00:00' || timezone === '-00:00' ? 'Z' : timezone;\n};\n\nconst parseDuration = duration => {\n /// Parses a string in xsd:duration format.\n /// Duration value.\n /// \n /// This method will throw an exception if the input string has a year or a month component.\n /// \n /// Object representing the time\n\n const parts = parseTimeRE.exec(duration);\n\n if (parts === null) {\n throw { message: 'Invalid duration value.' };\n }\n\n const years = parts[2] || '0';\n const months = parts[3] || '0';\n const days = parseInt(parts[4], 10) || 0;\n const hours = parseInt(parts[5], 10) || 0;\n const minutes = parseInt(parts[6], 10) || 0;\n const seconds = parseFloat(parts[7]) || 0;\n\n if (years !== '0' || months !== '0') {\n throw { message: 'Unsupported duration value.' };\n }\n\n let ms: any = parts[8];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n throw { message: 'Cannot parse duration value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n ms += seconds * 1000 + minutes * 60000 + hours * 3600000 + days * 86400000;\n\n if (parts[1] === '-') {\n ms = -ms;\n }\n\n const result: any = { ms, __edmType: 'Edm.Time' };\n\n if (ns) {\n result.ns = ns;\n }\n return result;\n};\n\nconst parseDateTimeOffset = (value, withOffset, nullOnError) => {\n /// Parses a string into a DateTime value.\n /// Value to parse.\n /// Whether offset is expected.\n /// The parsed value.\n\n // We cannot parse this in cases of failure to match or if offset information is specified.\n const parts = parseDateTimeRE.exec(value);\n const offset = parts ? getCanonicalTimezone(parts[8]) : null;\n\n if (!parts || (!withOffset && offset !== 'Z')) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n // Pre-parse years, account for year '0' being invalid in dateTime.\n let year = parseInt(parts[1], 10);\n if (year <= 0) {\n year++;\n }\n\n // Pre-parse optional milliseconds, fill in default. Fail if value is too precise.\n let ms: any = parts[7];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Cannot parse date/time value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n // Pre-parse other time components and offset them if necessary.\n let hours = parseInt(parts[4], 10);\n let minutes = parseInt(parts[5], 10);\n const seconds = parseInt(parts[6], 10);\n if (offset !== 'Z') {\n // The offset is reversed to get back the UTC date, which is\n // what the API will eventually have.\n const timezone = parseTimezone(offset);\n const direction = -timezone.d;\n hours += timezone.h * direction;\n minutes += timezone.m * direction;\n }\n\n // Set the date and time separately with setFullYear, so years 0-99 aren't biased like in Date.UTC.\n const result: any = new Date();\n result.setUTCFullYear(\n year, // Year.\n parseInt(parts[2], 10) - 1, // Month (zero-based for Date.UTC and setFullYear).\n parseInt(parts[3], 10) // Date.\n );\n result.setUTCHours(hours, minutes, seconds, ms);\n\n if (isNaN(result.valueOf())) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n if (withOffset) {\n result.__edmType = 'Edm.DateTimeOffset';\n result.__offset = offset;\n }\n\n if (ns) {\n result.__ns = ns;\n }\n\n return result;\n};\n\nexport const jsonLightReadStringPropertyValue = (value, propertyType, recognizeDates) => {\n /// Convertes the value of a string property in a JSON light object to its library representation.\n /// String value to convert.\n /// Type name of the property.\n /// Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.\n /// String property value in its library representation.\n\n switch (propertyType) {\n case EDM_BOOLEAN:\n return parseBool(value);\n case EDM_BYTE:\n case EDM_INT16:\n case EDM_INT32:\n case EDM_INT64:\n case EDM_SBYTE:\n return parseInt(value, 10);\n case EDM_DOUBLE:\n case EDM_SINGLE:\n case EDM_DECIMAL:\n return parseFloat(value);\n case EDM_TIME:\n return parseDuration(value);\n case EDM_DATETIME:\n const dateStr = value || '';\n const time = dateStr.substring(dateStr.indexOf('T') + 1);\n const timezoneOffsetIndex = time.indexOf('-');\n timezoneOffsetIndex === -1 ? time.indexOf('+') : timezoneOffsetIndex;\n\n if (timezoneOffsetIndex !== -1) {\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n } else {\n return parseDateTimeOffset(value, false, /* nullOnError */ false);\n }\n case EDM_DATETIMEOFFSET:\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n }\n\n if (recognizeDates) {\n return (\n parseDateTimeOffset(value, false, /* nullOnError */ true) || parseDateTimeOffset(value, true, /* nullOnError */ true) || value\n );\n }\n return value;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum EventLevel {\n LogAlways = 0,\n Critical = 1,\n Error = 2,\n Warning = 3,\n Informational = 4,\n Verbose = 5\n}\n\nexport enum EventChannel {\n Admin = 16,\n Operational = 17,\n Analytic = 18,\n Debug = 19\n}\n\nexport interface ILoggingSink {\n writeEvent(event: Event): void;\n setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ): void;\n setInstrumentationKey(instrumentationKey: string): void;\n}\n\nexport class Utils {\n public static getParameterNames(func: Function): string[] {\n return [];\n }\n\n public static generateGuid(): string {\n return '';\n }\n\n public static emptyGuid(): string {\n return '';\n }\n}\n\nexport enum EventType {\n None = 0,\n Custom = 1,\n PageView = 2\n}\n\nexport class PageViewMetadata {\n public PageName: string;\n}\n\nexport class EventStaticMetadata {\n public Name: string;\n public Id: number;\n public Version: number;\n public Level: EventLevel;\n public LevelName: string;\n public Channel: EventChannel;\n public ChannelName: string;\n public Keywords: string[];\n public Task: string;\n public OpCode: string;\n public Message: string;\n}\n\nexport class EventCoreFields {\n public ClientTimestamp: number;\n public AppSessionId: string;\n public UserSessionId: string;\n public DeviceId: string;\n public DeviceNumber: string;\n public TerminalId: string;\n public UserId: string;\n public TenantId: string;\n public OfflineAvailability: string;\n public OfflineCurrentMode: string;\n public ScreenResolution: string;\n}\n\nexport class Event {\n public Type: EventType;\n public PageViewMetadata: PageViewMetadata;\n public StaticMetadata: EventStaticMetadata;\n public CoreFields: EventCoreFields;\n public Payload: {\n [name: string]: any;\n };\n constructor(\n type: EventType,\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ) {}\n}\n\nexport class DebuggingConsoleSink implements ILoggingSink {\n public setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string\n ): void {}\n\n public setInstrumentationKey(instrumentationKey: string): void {}\n\n public writeEvent(event: Event): void {}\n}\n\nexport class LoggerBase {\n public static writeEvent(\n name: string,\n eventId: number,\n version: number,\n channel: EventChannel,\n level: EventLevel,\n keywords: string[],\n task: string,\n opCode: string,\n message: string\n ) {\n // console.log(`name: ${name}, eventId: ${eventId}, version: ${version}, channel: ${this.getEnumKeyForValue(EventChannel, channel)}`);\n // console.log(\n // `level: ${this.getEnumKeyForValue(\n // EventLevel,\n // level\n // )}, keywords: ${keywords.toString()}, task: ${task}, opCode: ${opCode}, message: ${message}`\n // );\n }\n\n public static addLoggingSink(loggingSink: ILoggingSink): void {}\n\n public static getEnumKeyForValue(enumType: any, value: number): string {\n for (const key in Object.keys(enumType)) {\n if (enumType[key] === value) {\n return key;\n }\n }\n return '';\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EventChannel, EventLevel, ILoggingSink, LoggerBase } from './ConsoleEventWriter';\n\n/**\n * Attaches the logging sink to the LoggerBase.\n *\n * @method attachLoggingSink\n * @param sink {ILoggingSink} Sink to attach to Retail Logger.\n */\nexport function attachLoggingSink(sink: ILoggingSink) {\n LoggerBase.addLoggingSink(sink);\n}\n\nexport const modelManagersRetailServerRequestStarted = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n};\n\nexport const modelManagersRetailServerRequestError = (requestId: string, requestUrl: string, error: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n};\n\nexport const modelManagersRetailServerRequestFinished = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n};\n\nexport const genericWarning = (message: string): void => {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n};\n\nexport const genericError = (message: string): void => {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n};\n\nexport const genericInfo = (message: string): void => {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n};\n\n/**\n * Class represents proxy events.\n * Event Code Range: 44000 - 44999.\n */\nexport class RetailLogger {\n public static LogEvent(eventName: Function, error?: string): void {\n error ? eventName(error) : eventName();\n }\n\n // Core - Event Range: 44000 - 44099.\n public static genericError(message: string): void {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n }\n\n public static genericWarning(message: string): void {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n }\n\n public static genericInfo(message: string): void {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n }\n\n public static modelManagersRetailServerRequestStarted(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n }\n\n public static modelManagersRetailServerRequestError(requestId: string, requestUrl: string, error: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n }\n\n public static modelManagersRetailServerRequestFinished(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n }\n\n public static initEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetInvalidError',\n 44007,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetMultipleTimesError',\n 44008,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitEntitySetNoMethodNumberError',\n 44009,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n public static initPaymentEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetInvalidError',\n 44010,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitPaymentEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initPaymentEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetMultipleTimesError',\n 44011,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitPaymentEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initPaymentEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetNoMethodNumberError',\n 44012,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitPaymentEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n // Shopping Cart Service - Event Range: 44100 - 44199.\n public static shoppingCartServiceGetShoppingCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartStarted',\n 44100,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart started.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartError',\n 44101,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get shopping cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartFinished',\n 44102,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart finished.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartStarted',\n 44104,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart started.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartError',\n 44105,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing item from cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartFinished',\n 44106,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart finished.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeStarted',\n 44108,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code started.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeError',\n 44109,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Applying promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeFinished',\n 44110,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateQuantityStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityStarted',\n 44112,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity started.'\n );\n }\n\n public static shoppingCartUpdateQuantityError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityError',\n 44113,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating quantity failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateQuantityFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityFinished',\n 44114,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity finished.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeStarted',\n 44116,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code started.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeError',\n 44117,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeFinished',\n 44118,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdStarted',\n 44120,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id started.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdError',\n 44121,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating loyalty card id failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdFinished',\n 44122,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id finished.'\n );\n }\n\n public static shoppingCartCommenceCheckoutStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutStarted',\n 44124,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout started.'\n );\n }\n\n public static shoppingCartCommenceCheckoutError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutError',\n 44125,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Commence checkout failed with error {0}.'\n );\n }\n\n public static shoppingCartCommenceCheckoutFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutFinished',\n 44126,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout finished.'\n );\n }\n\n public static shoppingCartGetPromotionsStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsStarted',\n 44128,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions started.'\n );\n }\n\n public static shoppingCartGetPromotionsError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsError',\n 44129,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting promotions failed with error {0}.'\n );\n }\n\n public static shoppingCartGetPromotionsFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsFinished',\n 44130,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions finished.'\n );\n }\n\n public static getSimpleProductsByIdStarted(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdStarted',\n 44132,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids started.'\n );\n }\n\n public static getSimpleProductsByIdError(error: string): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdError',\n 44133,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting simple products by ids failed with error {0}.'\n );\n }\n\n public static getSimpleProductsByIdFinished(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdFinished',\n 44134,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids finished.'\n );\n }\n\n public static getKitComponentsError(): void {\n LoggerBase.writeEvent(\n 'GetKitComponentsError',\n 44136,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'One of the kit components could not be retrieved.'\n );\n }\n\n public static searchProductsByProductIdsStarted(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsStarted',\n 44140,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids started.'\n );\n }\n\n public static searchProductsByProductIdsError(error: string): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsError',\n 44141,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Searching products by product ids failed with error {0}.'\n );\n }\n\n public static searchProductsByProductIdsFinished(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsFinished',\n 44142,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids finished.'\n );\n }\n\n // Checkout Service - Event Range: 44200 - 44299.\n public static checkoutServiceGetAllDeliveryOptionDescriptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsStarted',\n 44200,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions started.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsError',\n 44201,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get all delivery option descriptions failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsFinished',\n 44202,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions finished.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesStarted',\n 44204,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences started.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesError',\n 44205,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting delivery preferences failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesFinished',\n 44206,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences finished.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsStarted',\n 44208,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options started.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsError',\n 44209,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting order delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsFinished',\n 44210,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options finished.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsStarted',\n 44212,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options started.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsError',\n 44213,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting item delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsFinished',\n 44214,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options finished.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsStarted',\n 44216,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsError',\n 44217,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of order delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsFinished',\n 44218,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications finished.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsStarted',\n 44220,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsError',\n 44221,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of line delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsFinished',\n 44222,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications finished.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesStarted',\n 44224,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types started.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesError',\n 44225,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting payment card types failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesFinished',\n 44226,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types finished.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceStarted',\n 44228,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance started.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceError',\n 44229,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting gift card balance failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceFinished',\n 44230,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance finished.'\n );\n }\n\n public static checkoutServiceSubmitOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderStarted',\n 44232,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order started.'\n );\n }\n\n public static checkoutServiceSubmitOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderError',\n 44233,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Submit order failed with error {0}.'\n );\n }\n\n public static checkoutServiceSubmitOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderFinished',\n 44234,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlStarted',\n 44235,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url started.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlFinished',\n 44236,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlError',\n 44237,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card payment accept url failed with error {0}.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultStarted',\n 44238,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result started.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultFinished',\n 44239,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result finished.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultError',\n 44240,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Retrieve card payment accept result failed with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderStarted',\n 44241,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order started.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderError',\n 44242,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderFinished',\n 44243,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order finished.'\n );\n }\n\n // Channel Service - Event Range: 44300 - 44349.\n public static channelServiceGetChannelConfigurationStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationStarted',\n 44300,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration started.'\n );\n }\n\n public static channelServiceGetChannelConfigurationError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationError',\n 44301,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get channel Configuration failed with error {0}.'\n );\n }\n\n public static channelServiceGetChannelConfigurationFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationFinished',\n 44302,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration finished.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoStarted',\n 44304,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info started.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoError',\n 44305,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get country region info failed with error {0}.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoFinished',\n 44306,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info finished.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoStarted',\n 44308,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info started.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoError',\n 44309,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get state province info error {0}.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoFinished',\n 44310,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info finished.'\n );\n }\n\n public static channelServiceGetTenderTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesStarted',\n 44312,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types started.'\n );\n }\n\n public static channelServiceGetTenderTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesError',\n 44313,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get tender types failed with error {0}.'\n );\n }\n\n public static channelServiceGetTenderTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesFinished',\n 44314,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types finished.'\n );\n }\n\n public static channelServiceGetCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesStarted',\n 44315,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types started.'\n );\n }\n\n public static channelServiceGetCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesError',\n 44316,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card types failed with error {0}.'\n );\n }\n\n public static channelServiceGetCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesFinished',\n 44317,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types finished.'\n );\n }\n\n // Item Availability Service - Event Range: 44350 - 44369.\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted',\n 44350,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityError',\n 44351,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores with availability failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished',\n 44352,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability finished.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresStarted',\n 44354,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresError',\n 44355,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresFinished',\n 44356,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores finished.'\n );\n }\n\n // Loyalty Service - Event Range: 44370 - 44399.\n public static loyaltyServiceGetLoyaltyCardsStarted(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsStarted',\n 44370,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards started.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsError',\n 44371,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get loyalty cards failed with error {0}.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsFinished',\n 44372,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards finished.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'loyaltyServiceUpdateLoyaltyCardIdStarted',\n 44374,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id started.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdError',\n 44375,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update loyalty card id failed with error {0}.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdFinished',\n 44376,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id finished.'\n );\n }\n\n // Customer Service - Event Range: 44400 - 44499.\n public static customerServiceGetCustomerStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerStarted',\n 44400,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer started.'\n );\n }\n\n public static customerServiceGetCustomerError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerError',\n 44401,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get customer failed with error {0}.'\n );\n }\n\n public static customerServiceGetCustomerFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerFinished',\n 44402,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer finished.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionStarted',\n 44403,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session started.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionError',\n 44404,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Is authentication session failed with error {0}.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionFinished',\n 44405,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session finished.'\n );\n }\n\n // Order Service - Event Range: 44500 - 44599.\n public static getOrderHistoryStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryStarted',\n 44500,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history started.'\n );\n }\n\n public static getOrderHistoryError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryError',\n 44501,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order history failed with error {0}.'\n );\n }\n\n public static getOrderHistoryFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryFinished',\n 44502,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history finished.'\n );\n }\n\n public static getOrderDetailsStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsStarted',\n 44504,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details started.'\n );\n }\n\n public static getOrderDetailsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsError',\n 44505,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order details failed with error {0}.'\n );\n }\n\n public static getOrderDetailsFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsFinished',\n 44506,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details finished.'\n );\n }\n\n // Commerce list realtime service - Event Range: 44600 - 44699.\n public static createWishListStarted(): void {\n LoggerBase.writeEvent(\n 'CreateWishListStarted',\n 44600,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list started.'\n );\n }\n\n public static createWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'CreateWishListError',\n 44601,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Create wish list failed with error {0}.'\n );\n }\n\n public static createWishListFinished(): void {\n LoggerBase.writeEvent(\n 'CreateWishListFinished',\n 44602,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list finished.'\n );\n }\n\n public static deleteWishListStarted(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListStarted',\n 44604,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list started.'\n );\n }\n\n public static deleteWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'DeleteWishListError',\n 44605,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Delete wish list failed with error {0}.'\n );\n }\n\n public static deleteWishListFinished(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListFinished',\n 44606,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list finished.'\n );\n }\n\n public static updateWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListStarted',\n 44608,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list started.'\n );\n }\n\n public static updateWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateWishListError',\n 44609,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update wish list failed with error {0}.'\n );\n }\n\n public static updateWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListFinished',\n 44610,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list finished.'\n );\n }\n\n public static getWishListsStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListsStarted',\n 44612,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists started.'\n );\n }\n\n public static getWishListsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListsError',\n 44613,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish lists failed with error {0}.'\n );\n }\n\n public static getWishListsFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListsFinished',\n 44614,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists finished.'\n );\n }\n\n public static getWishListStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListStarted',\n 44616,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list started.'\n );\n }\n\n public static getWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListError',\n 44617,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish list failed with error {0}.'\n );\n }\n\n public static getWishListFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListFinished',\n 44618,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list finished.'\n );\n }\n\n public static addLinesToWishListStarted(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListStarted',\n 44620,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list started.'\n );\n }\n\n public static addLinesToWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListError',\n 44621,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add lines to wish list failed with error {0}.'\n );\n }\n\n public static addLinesToWishListFinished(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListFinished',\n 44622,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list finished.'\n );\n }\n\n public static removeItemsFromWishListStarted(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListStarted',\n 44624,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list started.'\n );\n }\n\n public static removeItemsFromWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListError',\n 44625,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Remove items from wish list failed with error {0}.'\n );\n }\n\n public static removeItemsFromWishListFinished(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListFinished',\n 44626,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list finished.'\n );\n }\n\n public static updateLinesOnWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListStarted',\n 44628,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list started.'\n );\n }\n\n public static updateLinesOnWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListError',\n 44629,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update lines on wish list failed with error {0}.'\n );\n }\n\n public static updateLinesOnWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListFinished',\n 44630,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list finished.'\n );\n }\n\n public static addItemsToCartStarted(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartStarted',\n 44632,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart started.'\n );\n }\n\n public static addItemsToCartError(error: string): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartError',\n 44633,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add items to cart failed with error {0}.'\n );\n }\n\n public static addItemsToCartFinished(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartFinished',\n 44634,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart finished.'\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProxyError } from '../exceptions';\nimport { EMPTY, format } from '../extensions/StringExtensions';\nimport { DebuggingConsoleSink } from './ConsoleEventWriter';\nimport { attachLoggingSink, genericError, genericInfo, genericWarning } from './RetailLogger';\n\n/**\n * The tracer class allows information to be logged on the device for Information, Warning or Error\n * The same method call can be used for each type\n * Example:\n * Commerce.Proxy.Tracer.Information(\"Message {0} {1}\", [\"Arg1\", \"Arg2\"]); // With parameters to be formatted\n * Commerce.Proxy.Tracer.Information(\"Message\"); // Without parameters\n *\n * Example of different tracer logs\n * Dynamics-Information: <> <>\n * Dynamics-Warning: <> <>\n * Dynamics-Error: <> <>\n */\n\nexport class Tracer {\n private static TracerDynamics: string = 'Dynamics-';\n private static TracerDynamicsError: string = 'Error: ';\n\n private static TracingOn: boolean = true;\n\n private static Counters: any[] = new Array();\n private static Timers: any[] = new Array();\n\n public static init(): boolean {\n attachLoggingSink(new DebuggingConsoleSink());\n return true;\n }\n\n public static _initialized: boolean = Tracer.init();\n\n /**\n * Traces an informational message in the specified format.\n */\n public static Information(informationformat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericInfo(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, informationformat, ...args]));\n }\n }\n\n /**\n * Traces a warning message in the specified format.\n */\n public static Warning(warningFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericWarning(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, warningFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Error(errorFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericError(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, errorFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Errors(errors: ProxyError[], formatString: string, ...args: any[]): void {\n if (Tracer.TracingOn && errors !== null && errors.length > 0) {\n let errorMessage: string = '';\n let errorCode: string = '';\n let errorString: string = '';\n\n errors.forEach(error => {\n errorMessage = error.ErrorMessage || EMPTY;\n errorCode = error.ErrorCode || EMPTY;\n errorString = JSON.stringify(error);\n Tracer.Error(\n formatString +\n ' ' +\n format(\" \\n ErrorMessage: {0}; \\n ErrorCode: {1}; \\n ErrorObject: '{2}'\", errorMessage, errorCode, errorString),\n args\n );\n });\n }\n }\n\n public static StartCounter(uniqueFunctionName: string): void {\n let counter;\n if (Tracer.Counters[uniqueFunctionName] === undefined) {\n counter = new PerformanceCounters();\n counter.Name = uniqueFunctionName;\n } else {\n counter = Tracer.Counters[uniqueFunctionName];\n }\n counter.Count += 1;\n Tracer.Counters[uniqueFunctionName] = counter;\n const now = new Date().getTime();\n Tracer.Timers.push(now);\n }\n\n public static EndCounter(uniqueFunctionName: string): void {\n const now = new Date().getTime();\n const startTime = Tracer.Timers.pop();\n const counter = Tracer.Counters[uniqueFunctionName];\n counter.TotalTime += now - startTime;\n }\n\n public static DumpCounters() {\n for (const item in Tracer.Counters) {\n if (Tracer.Counters.hasOwnProperty(item)) {\n Tracer.Information(\n 'Method = {0} Number of calls = {1} TotalTime = {2}mS Avg = {3}mS',\n Tracer.Counters[item].Name,\n Tracer.Counters[item].Count,\n Tracer.Counters[item].TotalTime,\n Tracer.Counters[item].TotalTime / Tracer.Counters[item].Count\n );\n }\n }\n }\n\n private static GetMessage(type: string, formatString: string, ...args: any[]) {\n const now = '' + new Date().getTime() + 'mS';\n if (Tracer.TracingOn) {\n if (!args) {\n return Tracer.TracerDynamics + type + '\\t' + formatString + '\\t' + now;\n } else {\n return (\n Tracer.TracerDynamics + type + '\\t' + format.apply(null, [formatString, Array.prototype.slice.call(args)]) + '\\t' + now\n );\n }\n }\n }\n}\n\nclass PerformanceCounters {\n public Name: string;\n public Count: number = 0;\n public TotalTime: number = 0;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from './async-result';\nimport { IDataServiceRequest } from './Interfaces';\n\n/**\n * Calls the Retail action\n */\nexport function retailAction(input: IDataServiceRequest, callerContext: unknown): Promise {\n return input.execute(callerContext);\n}\n\nretailAction.prototype = {\n isAction: true,\n isObservable: true\n};\n\nexport function callActionOrExecute(request: IDataServiceRequest, callerContext: any): AsyncResult {\n return callerContext.chainAction ? callerContext.chainAction(retailAction, request) : request.execute(callerContext);\n}\n\nexport function executeAction(request: IDataServiceRequest, context: any): AsyncResult {\n if (!context) {\n throw new Error('context is undefined while executing action');\n }\n\n if (context.callerContext && context.callerContext.chainAction) {\n context.bypassCache && request.overrideCacheType(context.bypassCache);\n return context.callerContext.chainAction(retailAction, request);\n } else if (context.chainAction) {\n return context.chainAction(retailAction, request);\n }\n\n return new AsyncResult((resolve, reject) => {\n request\n .execute(context)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n"],"names":["businessPartnerUsersQuery","b2BUserId","key","B2BUserId","DataServiceQuery","BusinessPartnerUserClass","createCreateInput","entity","create","createBusinessPartnerUserAsync","context","request","executeAction","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","queryResultSettings","resultSettings","readAllAsync","createRequestAccountStatementInput","accountStatementParameters","createDataServiceRequestForOperation","bypassCache","returnEntity","requestAccountStatementAsync","createRequestInvoiceCopyInput","invoiceId","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","BusinessPartnerOperationRequestClass","getOperationRequestsAsync","createGetCurrentInput","getCurrentAsync","businessPartnersQuery","businessPartnerId","BusinessPartnerId","BusinessPartnerClass","getOrderHistoryAsync","OrderShipmentsClass","createGetOrderHistoryInput","createProspectAsync","businessPartnerProspect","BusinessPartnerProspectClass","createCreateProspectInput","getUsersAsync","createGetUsersInput","cartsQuery","id","Id","CartClass","createCartAsync","createSearchInput","cartSearchCriteria","searchAsync","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","SalesOrderClass","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","loyaltyCardId","currencyCode","LoyaltyPointRedemptionEstimateClass","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","TenderLineClass","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","channelId","filterOption","SalesLineDeliveryOptionClass","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","CartDeliveryPreferencesClass","getDeliveryPreferencesAsync","createGetDeliveryOptionsInput","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","DeliveryOptionClass","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","TenderDiscountLineClass","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","ReceiptClass","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","CardPaymentAcceptPointClass","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","CardPaymentAcceptResultClass","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","CartPromotionsClass","getPromotionsAsync","createGetAvailablePromotionsInput","CartPromotionLineClass","getAvailablePromotionsAsync","createRecallSalesInvoiceInput","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","CartLineUserAlertsClass","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","ChargeCodeClass","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","discountCode","addDiscountCodeAsync","createGetReturnOptionsInput","TenderTypeAmountClass","getReturnOptionsAsync","createValidateForCheckoutInput","CartLineValidationResultsClass","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","catalogsQuery","recordId","RecordId","ProductCatalogClass","createProductCatalogAsync","createGetCatalogsInput","activeOnly","getCatalogsAsync","categoriesQuery","CategoryClass","createCategoryAsync","createGetCategoriesInput","catalogId","getCategoriesAsync","createGetAttributesInput","categoryId","AttributeCategoryClass","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","commerceListsQuery","CommerceListClass","createCommerceListAsync","createGetByCustomerInput","customerId","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","customersQuery","accountNumber","AccountNumber","CustomerClass","createCustomerAsync","customerSearchCriteria","GlobalCustomerClass","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","searchLocationValue","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","CustomerTimelineItemClass","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","createGetRefinersInput","searchCriteria","refinerSourceTypes","CustomerRefinerClass","getRefinersAsync","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","PurchaseHistoryClass","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","CustomerSearchFieldClass","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","CustomerTimelineItemTypeMapClass","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","CustomerTimelineRefinerClass","getCustomerTimelineRefinersAsync","createGetTitlesInput","CustomerTitleClass","getTitlesAsync","orgUnitsQuery","orgUnitNumber","OrgUnitNumber","OrgUnitClass","getOrgUnitLocationsByAreaAsync","searchArea","deliveryModeTypeFilter","OrgUnitLocationClass","createGetOrgUnitLocationsByAreaInput","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","createGetOrgUnitConfigurationInput","ChannelConfigurationClass","getOrgUnitConfigurationAsync","getStoreHoursAsync","storeNumber","StoreHoursClass","createGetStoreHoursInput","getChannelDeliveryOptionsAsync","channelIds","ChannelDeliveryOptionClass","createGetChannelDeliveryOptionsInput","productListsQuery","ProductListClass","createProductListAsync","createGetProductListLinesInput","searchText","ProductListLineClass","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","productsQuery","ProductClass","createProductAsync","productSearchCriteria","ProductRefinerClass","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","ProductDimensionValueClass","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","ProductDimensionValueInventoryAvailabilityClass","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","SimpleProductClass","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","inventLocationId","getByIdsAsync","createCompareInput","ProductComparisonLineClass","compareAsync","createGetRecommendedProductsInput","ProductSearchResultClass","getRecommendedProductsAsync","createRefineSearchByCategoryInput","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","ProductDeliveryOptionsClass","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","ReadChangedProductsSessionClass","beginReadChangedProductsAsync","createReadChangedProductsInput","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","DeletedListingsResultClass","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","AssortedProductIdentityClass","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","ProductExistenceIdClass","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","ProductRatingClass","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","ProductAssortmentIntervalClass","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","AttributeProductClass","getCatalogProductAttributesAsync","createGetPricesInput","itemId","inventoryDimensionId","barcode","customerAccountNumber","unitOfMeasureSymbol","quantity","ProductPriceClass","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","ProductAvailableQuantityClass","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","activeDate","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","getActivePricesAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","ProductComponentClass","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","createGetSearchSuggestionsInput","hitPrefix","hitSuffix","SearchSuggestionClass","getSearchSuggestionsAsync","createGetCategoryPathsInput","categoryPathLookups","CategoryPathResultClass","CategoryPathLookups","getCategoryPathsAsync","createGetUnitsOfMeasureInput","UnitOfMeasureClass","getUnitsOfMeasureAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","ProductRefinerValueClass","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","AttributeValueClass","getAttributeValuesAsync","createGetMediaLocationsInput","MediaLocationClass","getMediaLocationsAsync","createGetMediaBlobsInput","MediaBlobClass","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","ProductRelationTypeClass","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","ProductWarrantiesMappingClass","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","ProductWarehouseInventoryInformationClass","getEstimatedProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","recommendationsQuery","RecommendationClass","getElementsAsync","recommendationCriteria","RecommendedElementClass","createGetElementsInput","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","FulfillmentLineClass","getFulfillmentLinesAsync","createGetReceiptsInput","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","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","SalesInvoiceClass","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","OrderInvoiceClass","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","SalesLineClass","getInvoicedSalesLinesBySalesIdsAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","PickingListClass","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentLineUserAlertsClass","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","CheckInForOrderPickupConfirmationClass","checkInForOrderPickupAsync","createGetPackingSlipsDataInput","PackingSlipDataClass","getPackingSlipsDataAsync","scanResultsQuery","scannedText","ScannedText","ScanResultClass","storeQuery","createRoundAmountByTenderTypeInput","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","AffiliationClass","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","voidSuspendedTransactionsAsync","PromotionClass","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","PaymentMerchantInformationClass","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","StoreSafeClass","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","ShiftReconciliationLineClass","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","Description","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","ReceiptMaskClass","getReceiptMasksAsync","searchSuggestionCriteria","createStartSessionInput","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","deviceNumber","terminalId","deviceId","forceActivate","deviceType","DeviceActivationResultClass","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","CreateHardwareStationTokenResultClass","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","ValidateHardwareStationTokenResultClass","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","BarcodeClass","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","ButtonGridClass","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","height","width","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","CardTypeInfoClass","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","CityInfoClass","getCitiesAsync","createGetCountryRegionsForShippingInput","CountryRegionInfoClass","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","OnlineChannelClass","getOnlineChannelAsync","createGetCountiesInput","CountyInfoClass","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","CreditMemoClass","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","DataDownloadParametersClass","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","DataUploadParametersClass","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","DownloadSessionClass","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","NumberSequenceSeedDataClass","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","ReceiptNumberResetInfoClass","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","LoyaltyRewardPointActivityClass","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","CurrencyAmountClass","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","DiscountCodeClass","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","DistrictInfoClass","getDistrictsAsync","createGetHardwareStationProfilesInput","HardwareStationProfileClass","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","HardwareProfileClass","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","LocalizedStringClass","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","OperationPermissionClass","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","ReasonCodeClass","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","ReportDataSetClass","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","IncomeExpenseAccountClass","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","StateProvinceInfoClass","getStateProvincesAsync","createGetZipCodesInput","district","ZipCodeInfoClass","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","KitTransactionClass","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","LoyaltyCardClass","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","LoyaltyCardTransactionClass","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","TransactionClass","searchJournalTransactionsAsync","createGetGiftCardInput","pin","expirationMonth","expirationYear","GiftCardClass","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","NonSalesTransactionClass","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","DropAndDeclareTransactionClass","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","TaxOverrideClass","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","CustomerBalancesClass","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","LinkToExistingCustomerResultClass","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","OfflineSyncStatsLineClass","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","StorageAccessTokenClass","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","FrameworkClass","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","TaskGuidesSearchResultClass","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","RecordingClass","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","AttributeDefinitionClass","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","AttributeGroupDefinitionClass","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","AuditEventClass","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","productId","InventoryAvailableToPromiseClass","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","NotificationItemClass","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","FiscalIntegrationDocumentClass","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","FiscalIntegrationRegistrationProcessClass","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","FiscalIntegrationSupportedEventsClass","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","FiscalIntegrationTechnicalProfileClass","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","FiscalIntegrationFiscalRegistrationProcessSummaryClass","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","FiscalIntegrationServiceStatusClass","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","FiscalIntegrationServiceCommunicationResultClass","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","FeatureStateClass","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","FiscalIntegrationSequentialSignatureDataClass","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","FiscalTransactionClass","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","PickupTimeslotAvailabilityClass","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","OperationalInsightsConfigurationClass","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","CashDeclarationClass","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","CustomerGroupClass","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","ChannelDeliveryOptionConfigurationClass","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","ChannelIdentityClass","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","EnvironmentConfigurationClass","getEnvironmentConfigurationAsync","createGetSearchConfigurationInput","SearchConfigurationClass","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","ExtensionPackageDefinitionClass","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","ExtensionProfileClass","getExtensionProfileAsync","createGetDeviceConfigurationInput","DeviceConfigurationClass","getDeviceConfigurationAsync","createGetVisualProfileInput","VisualProfileClass","getVisualProfileAsync","createGetLanguagesInput","SupportedLanguageClass","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","SalesTaxGroupClass","getSalesTaxGroupsAsync","createGetTenderTypesInput","TenderTypeClass","getTenderTypesAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","CurrencyClass","getCurrenciesAsync","createGetCurrenciesAmountInput","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","CommissionSalesGroupClass","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","ChannelInventoryConfigurationClass","getInventoryConfigurationAsync","createGetPurchaseConfigurationInput","ChannelPurchaseConfigurationClass","getPurchaseConfigurationAsync","createSearchJournalNamesInput","InventoryJournalNameClass","searchJournalNamesAsync","createGetAvailableDevicesInput","DeviceClass","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","UserDefinedSecretCertificateResultClass","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","ExtensibleEnumerationContainerClass","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","AddressPurposeClass","getAddressPurposesAsync","createGetReturnPolicyInput","ReturnPolicyClass","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","EmailReceiptSettingsClass","getEmailReceiptSettingsAsync","constructor","entitySet","entityType","returnType","this","_query","tokens","options","Paging","Sorting","value","count","filter","filterSettings","Top","Skip","expand","propertyName","expands","push","inlineCount","orderBy","Columns","ColumnName","object","action","data","_createODataParameters","_createRequest","undefined","isReturnTypeACollection","setGetAllRecords","isGetAllRecords","operationName","isAction","DataServiceRequest","GET","POST","ODATA_TOTAL_COUNT_PROPERTY","DEFAULT_HEADER","Prefer","parseOdataResult","resultType","resultSet","Object","prototype","toString","call","i","length","hasNextPage","query","_cacheKeyFromReturnType","getActionId","_actionId","getCacheObjectType","_cacheObjectType","getCacheKey","_cacheKeyFromInput","dataCacheType","getDataCacheType","shouldCacheOutput","overrideCacheType","Tracer","toJS","recurseEverything","_hasOperationName","_method","getActionIdFromInput","getCacheObjectValueFromReturnType","entityIdentifier","_cacheKeyIdentifierFromReturnType","EntityIdentifier","Key","buildCacheFromInput","_callerContext","requestContext","apiSettings","baseUrl","locale","_totalCount","queryParams","_otherOdata","batchRequestUri","requests","requestId","odataBatchRequest","requestUri","method","__batchRequests","batchRequests","changeRequests","forEach","_id","odataRequest","_requestUri","toJson","headers","__changeRequests","batchResponses","responses","errors","Array","response","__changeResponses","concat","parseBatchResponses","message","ErrorParser","parseInt","parent","modifyDataInPlace","clone","prop","hasOwnProperty","property","arrayToJson","Date","toDateTimeOffset","array","dateTime","__edmType","__offset","pad","val","sign","getTimezoneOffset","offset","Math","abs","hours","floor","minutes","result","EMPTY","formattedKey","join","parameter","paramValue","isEmpty","encodeURIComponent","parameterSeparator","indexOf","name","replace","cacheKeyIdentifierFromReturnType","cacheKey","isObjectNotEmptyOrNull","cacheKeyValue","convertToString","execute","callerContext","oun","Error","JSON","stringify","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","Promise","resolve","reject","ODataHttpRequest","buildBatchRequest","__batchResponses","error","formatKey","formatFunctionParameter","addParameter","orderByColumns","column","isNullOrWhitespace","format","IsDescending","hasElements","ApiVersion","results","then","loadPageResults","catch","headerName","tokenName","tokenValue","user","token","accessToken","cookieData","appSessionCookie","get","userSessionCookie","status","appSessionId","split","userSessionId","Utils","modelManagersRetailServerRequestStarted","modelManagersRetailServerRequestFinished","otherOdata","setMetadata","map","Boolean","modelManagersRetailServerRequestError","odataList","keys","reduce","newData","entityDictionary","odataObject","OfflineImage","Name","ParentCategory","DisplayOrder","parseFloat","Images","className","substr","lastIndexOf","NameTranslations","TextValueTranslationClass","ExtensionProperties","CommercePropertyClass","AffiliationLines","AffiliationLoyaltyTierClass","IsRequiredAmountPaid","IsDiscountFullyCalculated","IgnoreDiscountCalculation","AmountDue","AmountPaid","AttributeValues","AttributeValueBaseClass","IsTaxIncludedInPrice","BeginDateTime","jsonLightReadStringPropertyValue","BusinessDate","CancellationChargeAmount","EstimatedShippingAmount","CartLines","CartLineClass","CartTypeValue","ChannelId","ChargeAmount","CustomerOrderRemainingBalance","ChargeLines","ChargeLineClass","TaxViewLines","TaxViewLineClass","Comment","InvoiceComment","Coupons","CouponClass","CustomerId","CustomerOrderModeValue","DeliveryMode","DeliveryModeChargeAmount","DiscountAmount","DiscountAmountWithoutTax","DiscountCodes","SuspendedCartId","TransactionTypeValue","CustomerAccountDepositLines","CustomerAccountDepositLineClass","IncomeExpenseLines","IncomeExpenseLineClass","IncomeExpenseTotalAmount","IsReturnByReceipt","ReturnTransactionHasLoyaltyPayment","IsFavorite","IsRecurring","IsSuspended","LoyaltyCardId","ModifiedDateTime","OrderNumber","AvailableDepositAmount","OverriddenDepositAmount","OverriddenDepositWithoutCarryoutAmount","PrepaymentAmountPaid","PrepaymentRoundingDifference","PrepaymentAppliedOnPickup","PrepaymentAmountInvoiced","PromotionLines","QuotationExpiryDate","ReasonCodeLines","ReasonCodeLineClass","ReceiptEmail","RequestedDeliveryDate","RequiredDepositAmount","RequiredDepositWithoutCarryoutAmount","SalesId","ShippingAddress","AddressClass","StaffId","SubtotalAmount","SubtotalAmountWithoutTax","NetPrice","SubtotalSalesAmount","TaxAmount","TaxOnCancellationCharge","TaxOnShippingCharge","TaxOnNonShippingCharges","TaxOverrideCode","TenderLines","RefundableTenderLines","TerminalId","TotalAmount","TotalSalesAmount","TotalReturnAmount","TotalCarryoutSalesAmount","TotalCustomerOrderSalesAmount","TotalManualDiscountAmount","TotalManualDiscountPercentage","WarehouseId","IsCreatedOffline","CartStatusValue","ReceiptTransactionTypeValue","CommissionSalesGroup","Version","TotalItems","HasTaxCalculationTriggered","MerchantProperties","HasChargeCalculationTriggered","FiscalTransactions","ShippingChargeAmount","OtherChargeAmount","PeriodicDiscountsCalculateScopeValue","CreatedDateTime","ChargeGroup","PriceGroup","IsCustomerTaxInclusive","Phone","PhoneRecordId","PhoneExt","Cellphone","Email","EmailRecordId","Url","UrlRecordId","PersonNameId","FirstName","MiddleName","LastName","DirectoryPartyRecordId","PartyNumber","CustomerTypeValue","Language","CustomerGroup","CurrencyCode","CNPJCPFNumber","IdentificationNumber","InvoiceAccount","MandatoryCreditLimit","CreditRating","CreditLimit","Balance","Blocked","BlockedType","UseOrderNumberReference","OrganizationId","UsePurchaseRequest","MultilineDiscountGroup","TotalDiscountGroup","LineDiscountGroup","TaxGroup","SalesTaxGroup","CommissionSalesGroupId","TaxExemptNumber","VatNumber","TaxOffice","NonChargeableAccount","Tag","ReceiptSettings","OptOutPersonalization","OptOutWebActivityTracking","RetailCustomerTableRecordId","IsAsyncCustomer","NewCustomerPartyNumber","CustomerAffiliations","CustomerAffiliationClass","Addresses","Attributes","CustomerAttributeClass","TitleRecordId","IsFloorLimitBlocked","IsB2b","IsB2bAdmin","Contacts","ContactInfoClass","AllowOnAccountPayment","EmployeeClass","NameOnReceipt","CultureName","NumberOfDaysToPasswordExpiry","Permissions","EmployeePermissionsClass","DefaultImage","DefaultCommissionSalesGroup","IdentifierTypeValue","ChecklistClass","Tasks","ChecklistTaskClass","ProcessId","AssignedToChannelId","AssignedToWorkerPersonnelNumber","StatusValue","StartDateTime","EndDateTime","TargetDateTime","DocumentStatusValue","McrOrderStopped","Shipments","ShipmentClass","AggregateInventoryQuantities","InventoryQuantitiesClass","UnifiedDeliveryInformation","DeliveryInformationClass","PaymentStatusValue","DetailedOrderStatusValue","AffiliationLoyaltyTierLines","SalesAffiliationLoyaltyTierClass","CalculatedDepositAmount","CancellationCharge","ChannelReferenceId","ContactInformationCollection","ContactInformationClass","CustomerOrderTypeValue","EntryStatusValue","GrossAmount","HasLoyaltyPayment","InternalTransactionId","SuspendedTransactionId","InventoryLocationId","IsTaxExemptedForPriceInclusive","LineDiscount","LineDiscountCalculationTypeValue","LoyaltyDiscountAmount","LoyaltyManualDiscountAmount","LoyaltyRewardPointLines","LoyaltyRewardPointLineClass","NetAmount","NetAmountWithoutTax","NetAmountWithNoTax","NetAmountWithTax","NumberOfItems","PeriodicDiscountAmount","TenderDiscountAmount","PrepaymentAmountAppliedOnPickup","ReceiptId","SalesPaymentDifference","SalesLines","ShiftId","ShiftTerminalId","StatementCode","StoreId","TaxAmountExclusive","TaxAmountInclusive","TaxLines","TaxLineClass","TotalDiscount","TaxCalculationTypeValue","SalesInvoiceAmount","GiftCardActiveFrom","GiftCardBalance","GiftCardExpireDate","GiftCardHistoryDetails","GiftCardIssueAmount","GiftCardIdMasked","IsCommissionSalesGroupOverriddenByCustomer","CommissionSalesGroupSetByCashier","CustomerName","LanguageId","SalesAgreementRecordId","ShiftClass","StartingAmountTotal","FloatingEntryAmountTotal","AddToTenderAmountTotal","SafeDropTotal","BankDropTotal","RemoveTenderAmountTotal","DeclareTenderAmountTotal","OverShortTotal","TenderedTotal","ChangeTotal","IncomeAccountTotal","ExpenseAccountTotal","CashDrawer","StoreRecordId","CurrentStaffId","CloseDateTime","ClosedAtTerminalId","ClosedAtShiftId","CurrentTerminalId","SalesTotal","StatusDateTime","ReturnsTotal","PaidToAccountTotal","TaxTotal","ChargeTotal","DiscountTotal","RoundedAmountTotal","CustomerCount","SaleTransactionCount","NoSaleTransactionCount","VoidTransactionCount","LogOnTransactionCount","SuspendedTransactionCount","TransactionCount","ReceiptsCount","ReturnsCount","GoodsSoldQty","ServicesSoldQty","ReceiptCopiesCount","ReceiptCopiesTotal","PriceOverrideTotal","SuspendedTotal","SalesTotalIncludingTax","SalesTotalExcludingTax","SalesGrandTotal","ReturnsGrandTotal","ShiftTaxLineClass","ShiftTenderLineClass","AccountLines","ShiftAccountLineClass","IsShared","StartingAmountRunningTotal","GiftCardsTotal","GiftCardCashOutTotal","VoidedSalesTotal","ShiftSalesTotal","ShiftReturnsTotal","HasPendingOfflineTransactions","NumberOfUnreconciledLines","StockCountJournalClass","JournalId","InventLocationId","DataAreaId","StockCountTransactionLines","StockCountJournalTransactionClass","Worker","OMOperatingUnitNumber","FunctionalityProfileId","UseCustomerBasedTax","UseCustomerBasedTaxExemption","UseDestinationBasedTax","Currency","TimeZoneCode","OrgUnitAddress","OrgUnitFullAddress","OrgUnitName","Latitude","Longitude","EmailReceiptProfileId","ShippingWarehouseAddress","TaxRegistrations","TaxRegistrationClass","EventNotificationProfileId","DefaultCustomerAccount","CategoryHierarchyId","ProductName","ProductNumber","IsMasterProduct","IsKit","ItemId","HasLinkedProducts","Rules","ProductRulesClass","DefaultUnitOfMeasure","Locale","IsRemote","ChangeTrackingInformation","ProductChangeTrackingInformationClass","Image","RichMediaLocationsClass","UnitsOfMeasureSymbol","LinkedProducts","LinkedProductClass","BasePrice","Price","AdjustedPrice","RetailContext","ProjectionDomainClass","PrimaryCategoryId","CategoryIds","DisplayOrderInCategories","DisplayOrderInCategoryClass","RelatedProducts","RelatedProductClass","ProductsRelatedToThis","ProductSchema","ProductProperties","ProductPropertyTranslationClass","CompositionInformation","ProductCompositionInformationClass","ParentKits","KitComponentClass","SearchName","IsSnapshotEnabled","ValidFrom","ValidTo","CreatedOn","ModifiedOn","PublishedOn","IsPrivate","IsCollaborative","DueDateTime","CommerceListTypeValue","CommerceListLines","CommerceListLineClass","CommerceListContributors","CommerceListContributorClass","CommerceListInvitations","CommerceListInvitationClass","LastUpdated","DeletedDateTime","ProductListTypeValue","ProductListLines","RecommendationTypeValue","Title","TransferOrderClass","OrderId","Status","Lines","OrderTypeValue","InventLocationIdFrom","InventLocationIdTo","QuantityShipped","QuantityReceived","QuantityShipNow","QuantityReceiveNow","QuantityShipRemaining","QuantityReceiveRemaining","ShipDate","ReceiveDate","DeliveryModeId","OrderLines","TransferOrderLineClass","PurchaseOrderClass","TotalReceived","PurchaseOrderLineClass","DeliveryDate","PickingListLineClass","WarehouseClass","InventLocation","IsWMSEnabled","DefaultInventoryStatus","DefaultReceiptLocation","DefaultLocationId","DefaultIssueLocation","Address","MaskTypeValue","Barcode","Product","LoyaltyCard","GiftCard","Customer","SalesOrderContextualOperationsMapClass","ApplicableOperationsValues","SalesOrder","InventoryInboundOutboundDocumentClass","WorkDocumentId","CommitRequestId","Sender","Receiver","SenderDetails","ReceiverDetails","OperationTypeValue","Note","OperationResultMessage","DocumentId","LongVersion","SourceDocument","InventoryInboundOutboundSourceDocumentClass","SourceDocumentTypeValue","NoteModifiedByStaffId","NoteModifiedDateTime","DocumentTypeId","TransactionDate","SpendingLimit","LastOperationId","IsAdmin","SuspendedCartClass","Cart","CountryRegionClass","CountryRegionId","IsoCode","ShortName","ExtensibleEnumerationClass","Value","ExtensibleEnumeration_1OfTClass","super","ExtensibleTransactionTypeClass","ExtensibleSalesTransactionTypeClass","FulfillmentLineStatusClass","FulfillmentLineDeliveryTypeClass","ExtensibleAddressTypeClass","ExtensibleLoyaltyRewardPointActivityEntryTypeClass","ExtensibleAttributeDataTypeClass","ReleasedProductServiceTypeClass","ExtensibleElectronicAddressTypeClass","ReceiptOutputFormatTypeClass","OrderLookupAdditionalCriteriaTypeClass","FullAddress","Street","StreetNumber","County","CountyName","City","DistrictName","State","StateName","ZipCode","ThreeLetterISORegionName","EmailContent","TwoLetterISORegionName","Deactivate","AttentionTo","BuildingCompliment","Postbox","AddressTypeValue","IsPrimary","IsAsyncAddress","DirectoryPartyTableRecordId","DirectoryPartyLocationRecordId","DirectoryPartyLocationRoleRecordId","LogisticsLocationId","LogisticsLocationRecordId","LogisticsLocationExtRecordId","LogisticsLocationRoleRecordId","PhoneLogisticsLocationRecordId","PhoneLogisticsLocationId","EmailLogisticsLocationRecordId","EmailLogisticsLocationId","UrlLogisticsLocationRecordId","UrlLogisticsLocationId","ExpireRecordId","SortOrder","RoleCount","RetailAffiliationId","HideInChannels","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","InvoiceAccountCreditLimit","OpenInvoiceBalance","OpenInvoiceCount","FullName","KeyName","UnitOfMeasureSymbol","DataTypeValue","BooleanValue","DateTimeOffsetValue","FloatValue","IntegerValue","TextValue","CurrencyValue","AttributeValueId","Swatches","AttributeSwatchClass","BarcodeId","BarcodePrice","Quantity","EmployeeId","SalespersonId","EANLicenseId","DataEntry","DiscountCode","GiftCardNumber","LoyaltyCardNumber","ItemBarcode","ItemBarcodeClass","EntryMethodTypeValue","ItemType","EnterDimensions","ItemGroupId","ItemDepartmentId","ScaleItem","ZeroPriceValid","NegativeQuantity","DiscountNotAllowed","DateToBeBlocked","DateToBeActivated","CheckDigitValidated","CouponId","Message","IncludedInTotalDiscount","CostPrice","BatchId","BarcodeSetupId","ItemBarcodeValue","InventoryDimensionId","IsBlocked","Display","VariantId","UnitId","UseForInput","UseForPrinting","DefaultColor","SpaceBetweenButtonsInPixels","Buttons","ButtonGridButtonClass","GetButtonGridsByIdsCriteriaClass","ButtonGridIds","LineId","ProductId","ExtendedPrice","ItemTaxGroupId","LinePercentageDiscount","LineManualDiscountPercentage","LineManualDiscountAmount","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","IsWarrantyLine","WarrantableTransactionId","WarrantableSalesId","WarrantableLineNumber","WarrantableSerialNumber","WarrantiedId","ReturnTransactionId","ReturnLineNumber","ReturnInventTransId","IsVoided","IsTaxOverideCodeTaxExempt","IsGiftCardLine","IsPriceKeyedIn","GiftCardId","GiftCardCurrencyCode","GiftCardOperationValue","GiftCardTypeValue","SalesStatusValue","QuantityOrdered","QuantityNotProcessed","QuantityReserved","QuantityPicked","QuantityPacked","QuantityInvoiced","QuantityCanceled","FulfillmentStoreId","SerialNumber","ElectronicDeliveryEmail","ElectronicDeliveryEmailContent","IsPriceOverridden","OriginalPrice","IsInvoiceLine","InvoiceId","InvoiceAmount","LineVersion","PriceLines","PriceLineClass","DiscountLines","DiscountLineClass","RelatedDiscountedLineIds","TaxRatePercent","IsCustomerAccountDeposit","LinkedParentLineId","QuantityReturnable","LineNumber","TrackingId","QuantityRemained","CatalogId","ThirdPartyGiftCardInfo","ThirdPartyGiftCardInfoClass","BarcodeEmbeddedPrice","PriceInBarcode","InvoiceTypeValue","InvoicedSalesId","WarehouseLocation","DetailedLineStatusValue","SalesAgreementLineRecordId","Amount","Authorization","TypeId","PaymentMethodId","CardTypeValue","Issuer","NumberFrom","NumberTo","CashBackLimit","AllowManualInput","CheckModulus","HasTenderDiscount","IsPinRequired","IsExpirationDateRequired","ConnectorName","PaymentProcessorMethod","CashTypeValue","IncludeInQuickPayShortcuts","AccountName","AccountNameAlias","AccountTypeValue","Message1Line","Message2Line","SlipText1Line","SlipText2Line","IncomeExpenseAccount","StoreNumber","Terminal","Shift","TransactionStatusValue","CartTenderLineClass","PaymentCard","PaymentCardClass","TokenizedPaymentCard","TokenizedPaymentCardClass","CardPaymentAcceptResult","IsLinkedRefund","LinkedPaymentStore","LinkedPaymentTerminalId","LinkedPaymentTransactionId","LinkedPaymentLineNumber","LinkedPaymentCurrency","TenderLineId","CashBackAmount","AmountInTenderedCurrency","AmountInCompanyCurrency","ExchangeRate","CompanyCurrencyExchangeRate","TenderTypeId","SignatureData","GiftCardPin","GiftCardExpirationYear","GiftCardExpirationMonth","CreditMemoId","CardTypeId","IsChangeLine","IsHistorical","IsVoidable","VoidStatusValue","AuthorizedAmount","PaymentRefRecId","CardPaymentAccountId","ProcessingTypeValue","CardProcessorStatusValue","LinkedPaymentRefRecId","IsPolicyBypassed","ChargeLineId","ChargeCode","ModuleTypeValue","IsHeaderChargeProrated","ChargeTypeValue","ChargeMethodValue","CalculatedAmount","TransactionId","MarkupAutoLineRecordId","MarkupAutoTableRecId","SaleLineNumber","FromAmount","ToAmount","Keep","AmountRefunded","ChargeLineOverrides","ChargeLineOverrideClass","IsRefundable","IsShipping","IsOverridden","IsInvoiced","CalculatedProratedAmount","SalesTaxGroupId","OriginalSalesTaxGroupId","OriginalItemTaxGroupId","SalesOrderUnitOfMeasure","NetAmountPerUnit","TaxMeasures","TaxMeasureClass","TaxAmountExemptInclusive","NetAmountWithAllInclusiveTax","ReturnLineTaxAmount","ReturnTaxLines","TaxExemptPriceInclusiveReductionAmount","TaxExemptPriceInclusiveOriginalPrice","StateId","CountyId","GroupId","ContactInformationTypeValue","CommercePropertyValueClass","Attribute","MetadataFlags","ProductAttributeMetadataFlagsClass","IsDimension","ProductComparisonEntryClass","AttributeValue","AttributeRecordId","AttributeName","ProductAttributeComparisonEntries","IsShortcut","DisplayName","CanBeRefined","SearchField","CustomerSearchFieldTypeClass","CustomerSearchByFieldCriteriaClass","Criteria","CustomerSearchByFieldCriterionClass","DataLevelValue","SearchTerm","ShipmentId","DeliveryAddress","TermsOfDelivery","WeightUnit","TrackingNumber","TrackingUrl","LatestCarrierTrackingInfo","TrackingInfoClass","CarrierId","CarrierName","ShippingWeight","ShipmentLines","ShipmentLineClass","ShipmentLineId","InventDimId","OrderedQuantity","DeliveredQuantity","RemainingQuantity","FromSafe","ToSafe","FromShiftTerminalId","ToShiftTerminalId","FromShiftId","TransactionSourceContextTypeValue","TransactionDestinationContextTypeValue","ToShiftId","GroupDescription","ShiftGroupLinesCount","ShiftGroupLinesClosedCount","ShiftReconciliationLineRetrievalCriteriaClass","TransactionTypeValues","ShiftReconciliationLineStatusValue","Shifts","ShiftKeyClass","DestinationShift","SourceShift","SourceSafe","DestinationSafe","ProductSortColumns","SortColumnClass","ProductSearchServiceTypeValue","ProductSortColumnsLabels","LocalizedTextClass","EntityType","AttributeTypeName","ExtDataType","IsHidden","IsMandatory","IsMultiValue","IsEnumeration","TranslationDetails","AttributeTranslationDetailsClass","EnumerationDetails","AttributeEnumerationClass","DefaultValue","UpperBound","LowerBound","FriendlyName","HelpText","OrdinalNumber","EnumerationValue","AttributeEnumerationTranslations","AttributeEnumerationTranslationClass","EnumerationTranslationValue","AttributeDefinitionCriteriaClass","AttributeGroupIdentifier","Languages","AttributeGroupTranslationDetailsClass","AttributeGroupRecordId","AttributeGroupDefinitionCriteriaClass","AttributeGroupIdentifiers","CustomerGroupNumber","CustomerGroupName","OfferId","OfferName","DiscountCost","EffectiveAmount","EffectivePercentage","SavedEffectiveAmount","Percentage","DealPrice","DiscountLineTypeValue","ManualDiscountTypeValue","CustomerDiscountTypeValue","PeriodicDiscountTypeValue","DiscountApplicationGroup","ConcurrencyModeValue","IsCompoundable","PricingPriorityNumber","PricingAttributeCombinationPriority","IsDiscountCodeRequired","ThresholdAmountRequired","BundleId","PriceOverrideRestrictionValue","AllowPriceOverride","MaximumDiscountPercentage","MaximumLineDiscountAmount","MaximumLineReturnAmount","MaximumTotalDiscountAmount","MaximumTotalDiscountPercentage","MaxTotalReturnAmount","Roles","AllowUseSharedShift","AllowManageSharedShift","AllowTaskGuides","AllowSaleOutsideAssortment","AllowPrintingReceiptCopy","AllowSkipFiscalRegistration","AllowSkipRegistrationOrMarkAsRegistered","AllowPostponeRegistration","AllowCreateTransferOrder","AllowAcceptOrder","AllowTaskManagement","AllowRejectOrder","AllowMassActivation","AllowPostInventoryAdjustment","AllowPostStockCounting","ByteValue","DecimalValue","LongValue","StringValue","LongName","ISOCode","TimeZone","AddressFormatLines","AddressFormattingInfoClass","AddressFormatId","AddressFormatName","CurrencySymbol","RoundOffPrice","RoundOffSales","RoundOffTypePrice","RoundOffTypeSales","NumberOfDecimals","ConvertedAmount","RoundedConvertedAmount","ScaleUnitConfigurationClass","Region","EnvironmentId","EnvironmentName","TenantId","ClientAppInsightsInstrumentationKey","HardwareStationAppInsightsInstrumentationKey","WindowsPhonePosAppInsightsInstrumentationKey","BaseVersion","ScaleUnit","AADAuthority","FrameworkName","UseInMemoryDeviceDataStorage","AllowItemsAggregation","AggregateItemsForPrinting","AggregatePayments","AlwaysExpandTransactionScreenLineDetails","AuditEnabled","DiscountAtTotal","ProductDiscount","ManuallyCalculateComplexDiscounts","DisplaySecondaryTotalCurrency","EndOfTransaction","ItemNotOnFile","LimitStaffListToStore","LineItemTaxChange","MarkUp","MaximumPrice","MaximumQuantity","MinimumPasswordLength","MustKeyInPriceIfZero","NfcEContingencyModeEnabled","NfcEVoided","FunctionalityProfileDescription","OverridePrice","PrintVoidTransactionReceipts","PrintReceiptsOnCardDecline","PrintXZReportsOnTerminal","PrintTenderDetailsOnXReport","ProfileId","RefundSale","ReturnProduct","SalesPerson","SecondaryTotalCurrency","SelectHardwareStationOnTendering","ShowStaffListAtLogOn","StaffBarcodeLogOn","StaffBarcodeLogOnRequiresPassword","StaffCardLogOn","StaffCardLogOnRequiresPassword","StartOfTransaction","EnableTimeRegistration","TenderDeclaration","TransactionTaxChange","VoidItem","VoidPayment","SalesModeDefaultsAsCustomerOrder","CreateOfflineCustomerOrders","CreateAsyncCustomers","EnableAxCustomerSearch","VoidTransaction","SystemLegalTermsUrl","SystemPrivacyStatementUrl","HideTrainingMode","StorePhone","StatementMethod","StoreTaxGroup","TaxIdNumber","TaxOverrideGroup","TenderDeclarationCalculation","AutoLogOffTimeoutInMinutes","AutoExitMethodValue","CustomerDisplayText1","CustomerDisplayText2","EFTStoreId","EFTTerminalId","ExitAfterEachTransaction","HardwareProfile","Placement","TerminalDescription","OpenDrawer","OpenDrawerAtLogOnLogOff","PrintTaxRefundChecks","StandAlone","TerminalStatement","VisualProfile","IncludeKitComponents","AccentColor","HeaderColor","Theme","FontScheme","ShowAppBarLabel","LogOnBackgroundPictureAsBase64","LogOnBackgroundPicturePortraitAsBase64","BackgroundPictureAsBase64","LogonBackgroundPictureId","LogonBackgroundPictureIdCompact","LogonBackgroundPictureIdPortrait","LogonBackgroundPictureIdCompactPortrait","BackgroundPictureId","RequireAmountDeclaration","DecimalNotRequiredForMinorCurrencyUnit","MaxTransactionSearchResults","OfflineProfileId","NewOfflineDatabaseCheckInterval","OfflineTransactionUploadInterval","ReconnectToOnlineInterval","SwitchToOfflineTimeout","OfflineSwitchApiPerformanceThresholdInSeconds","ReconnectFromPerformanceInducedOfflineIntervalInSeconds","RetentionDays","HardwareConfigurations","HardwareConfigurationsClass","CreateRecording","PlaybackRecording","ShouldUseDefaultCommisionSalesGroup","AskForSalesRepresentative","IsSalesRepRequired","ProhibitMixingSalesAndReturns","ApplyDiscountsToPriceKeyedIn","ApplyDiscountsToPriceOverrides","IsProductSuggestionsEnabled","ProductSearchType","TerminalRecId","DeviceRecId","DenominationsToDisplayValue","PromptOnSeamlessOffline","RetryCountToOffline","EnableAdvancedOfflineSwitching","SystemHealthCheckInterval","RejectOrderFulfillment","ManuallyCalculateTaxes","EmployeeLogonTypeValue","StartAmountCalculation","BankDropCalculation","GenerateLoyaltyCardNumber","FiscalRegistrationProcessId","IncludeSalesOrderInvoices","IncludeFreeTextInvoices","IncludeProjectInvoices","IncludeCreditNoteInvoices","DisplayTaxExemptInLineDetails","TaxExemptReceiptIndicator","ManuallyCalculateCharges","ChargeOverrideReasonCode","ShiftReconcilation","CustomerAccountFloorLimit","VoidSuspendedTransactionsOnCloseShift","ShowDateTime","UseAdvancedCashManagement","DefaultCustomerSearchModeValue","AllowManualOfflineBeforeSignIn","UseFinancialReconciliationInStore","RequirePaymentForFulfillmentValue","CardNotPresentProcessingConfigurationValue","EnableQuickPayShortcuts","ChangeDueBehaviorValue","FontSchemeTypeValue","IsAppBarLabelVisible","IsDateTimeVisible","LogOnLayoutTypeValue","LogOnKeyboardTypeValue","CompactLogonBackgroundPictureId","PortraitLogonBackgroundPictureId","CompactPortraitLogonBackgroundPictureId","LogOnLogoPictureId","IsProductIdVisibleOnCartLine","InstrumentationKey","IsEnabled","DeviceNumber","DeviceId","DeviceType","TerminalRecordId","ChannelName","TokenIssueTime","ActivationStatusValue","Token","CountryRegionIsoCode","Code","ConcurrencyMode","Disclaimer","CityName","LineDisplayDelayForLinkedItems","LineDisplayBalanceText","LineDisplayBinaryConversion","LineDisplayCharacterSet","LineDisplayClosedLine1","LineDisplayClosedLine2","LineDisplayDeviceDescription","LineDisplayDeviceTypeValue","LineDisplayDeviceName","LineDisplayDisplayLinkedItem","LineDisplayDisplayTerminalClosed","LineDisplayTotalText","DualDisplayActive","DualDisplayWebBrowserUrl","DualDisplayImageRotatorInterval","DualDisplayImageRotatorPath","DualDisplayReceiptWidthPercentage","DualDisplayDisplayType","EftTypeId","EftCompanyId","EftConfiguration","EftPaymentConnectorName","EftData","EftDescription","EftMerchantId","EftPassword","EftServerName","EftServerPort","EftUserId","EftTestMode","MsrEndTrack1","MsrEndTrack2","FiscalPrinterManagementReportPAFIdentification","FiscalPrinterManagementReportConfigParameter","FiscalPrinterManagementReportTenderType","FiscalPrinterManagementReportGiftCard","FiscalRegisterDeviceTypeValue","FiscalRegisterConfiguration","FiscalRegisterDeviceDescription","FiscalRegisterDeviceName","KeyboardMappingId","KeyLockDeviceTypeValue","KeyLockDeviceDescription","KeyLockDeviceName","MsrDeviceTypeValue","MsrDeviceDescription","MsrDeviceName","MsrMake","MsrModel","MsrSeparator","MsrStartTrack","PinPadDeviceTypeValue","PinPadDeviceName","PinPadMake","PinPadModel","PinPadDeviceDescription","ProfileDescription","RFIDDeviceTypeValue","RFIDDeviceName","RFIDDeviceDescription","ScaleDeviceTypeValue","ScaleDeviceName","ScaleDeviceDescription","ScaleManualInputAllowed","ScaleTimeoutInSeconds","SignatureCaptureDeviceTypeValue","SignatureCaptureDeviceName","SignatureCaptureMake","SignatureCaptureModel","SignatureCaptureDeviceDescription","SignatureCaptureFormName","Printers","HardwareProfilePrinterClass","Scanners","HardwareProfileScannerClass","FiscalIntegrationTechnicalProfiles","CashDrawers","HardwareProfileCashDrawerClass","UseShippingAddress","CardNumber","CCID","Track1","Track2","Track3","VoiceAuthorizationCode","EncryptedPin","AdditionalSecurityData","IsSwipe","Country","House","Address1","Address2","Zip","NameOnCard","ExpirationMonth","ExpirationYear","CardPaymentAcceptSettingsClass","HostPageOrigin","AdaptorPath","CardTokenizationEnabled","CardPaymentEnabled","PaymentAmount","HideBillingAddress","RequireShippingAddress","AcceptPageUrl","AcceptPageSubmitUrl","MessageOrigin","AcceptPageContent","PaymentConnectorId","TenderLine","PaymentSdkErrors","PaymentErrorClass","AdditionalContext","AccessCode","Settings","RetrievePaymentResultSettingsClass","Information","InformationAmount","InputTypeValue","ItemTender","LineTypeValue","ParentLineId","ReasonCodeId","SubReasonCodeId","SourceCode","SourceCode2","SourceCode3","FiscalTransactionParentGuid","IsChanged","ReasonSubCodeClass","TriggerCode","AmountPercent","SubCodeId","TriggerFunctionTypeValue","PriceTypeValue","Header","Body","Footer","Width","LayoutId","ReceiptTitle","ReceiptTypeValue","ReceiptTypeStrValue","PrinterClass","IsIndependent","Mask","OriginLineId","MasterProductId","ListingId","TotalPercentageDiscount","PeriodicDiscount","InventorySiteId","InventoryStatusId","LicensePlate","ReservationId","ReturnQuantity","ProductSourceValue","IsInvoiceSettled","IsPriceLocked","AgreementPrice","ReturnStore","ReturnTerminalId","ReturnChannelId","SalesDate","SavedQuantity","IsSavedDiscount","ElectronicDeliveryEmailAddress","LoyaltyPercentageDiscount","TenderDiscountPercentage","Found","DateToActivateItem","PeriodicPercentageDiscount","QuantityDiscounted","UnitQuantity","UnitOfMeasureConversion","UnitOfMeasureConversionClass","AttainablePriceLines","PeriodicDiscountPossibilities","ReturnLabelProperties","ReturnLabelContentClass","LineMultilineDiscOnItem","LineMultilineDiscOnItemValue","WasChanged","OriginalSalesOrderUnitOfMeasure","InventOrderUnitOfMeasure","IsLoyaltyDiscountApplied","ReturnLoyaltyRewardPointLines","FulfillmentStatus","FulfillmentStatusValue","DetailedLineStatus","DetailedLineStatusClass","LastReturnProcessedTime","SalesAgreementPrice","IsSalesAgreementSkipped","SearchAreaClass","Radius","DistanceUnitValue","TenderTypeName","TenderCurrency","CountingRequired","StartingAmountOfStoreCurrency","StartingAmountOfTenderCurrency","FloatingEntryAmountOfStoreCurrency","FloatingEntryAmountOfTenderCurrency","SafeDropAmountOfStoreCurrency","SafeDropAmountOfTenderCurrency","BankDropAmountOfStoreCurrency","BankDropAmountOfTenderCurrency","RemoveTenderAmountOfStoreCurrency","RemoveTenderAmountOfTenderCurrency","DeclareTenderAmountOfStoreCurrency","DeclareTenderAmountOfTenderCurrency","TenderedAmountOfStoreCurrency","TenderedAmountOfTenderCurrency","ChangeAmountOfStoreCurrency","ChangeAmountOfTenderCurrency","Count","Notes","Overridden","OverriddenFloatEntryAmountInStoreCurrency","OverriddenFloatEntryAmountInTenderedCurrency","OverriddenBankDropAmountInStoreCurrency","OverriddenBankDropAmountInTenderedCurrency","OverriddenChangeAmountInStoreCurrency","OverriddenChangeAmountInTenderedCurrency","OverriddenDeclaredTenderAmountInStoreCurrency","OverriddenDeclaredTenderAmountInTenderedCurrency","OverriddenRemovedTenderAmountInStoreCurrency","OverriddenRemovedTenderAmountInTenderedCurrency","OverriddenSafeDropAmountInStoreCurrency","OverriddenSafeDropAmountInTenderedCurrency","OverriddenStartingAmountInStoreCurrency","OverriddenStartingAmountInTenderedCurrency","OverriddenTenderedAmountInStoreCurrency","OverriddenTenderedAmountInTenderedCurrency","OverShortAmountOfTenderCurrency","OperationType","ProductRecordId","ItemName","Counted","EstimatedOnHandQuantity","OnHandCalculationDateTime","Unit","UserId","CountedDate","InventBatchId","WarehouseLocationId","InventoryStatus","WarehousePalletId","InventSiteId","ConfigId","InventSizeId","InventColorId","InventStyleId","InventSerialId","TrackingGuid","UpdatedInAx","IsExempt","TaxBasis","IsIncludedInPrice","TaxCode","RefundableAmount","CaptureToken","CardToken","IncomeExpenseAccountTypeValue","MaskedCardNumber","TenderDate","IsPreProcessed","IsDeposit","IsCustomerAccountFloorLimitUsed","AuthorizationReferenceId","IsIncrementalCaptureEnabled","IsReauthorizationEnabled","IncrementalOffsetAmount","RoundingDifference","Text","DecimalPrecision","Symbol","ElementId","ElementTypeValue","RecommendationCriteriaClass","CustomerAccountNumber","ProductIds","ProductListId","UnitOfMeasure","CommerceListId","InvitationId","Invitee","IsSent","LastRequestDateTime","LastSentDateTime","InvitationTypeValue","SearchFilterClass","FilterTypeValue","SearchValues","SearchFilterValueClass","TransactionSearchCriteriaClass","TransactionIds","CustomerFirstName","CustomerLastName","ReceiptEmailAddress","SearchIdentifiers","SearchLocationTypeValue","CustomFilters","SalesOrderSearchCriteriaClass","SearchTypeValue","IncludeDetails","SalesTransactionTypeValues","TransactionStatusTypeValues","SearchStoreCriteriaClass","CustomerSearchCriteriaClass","Keyword","SearchOnlyCurrentCompany","SearchLocationValue","Refinements","CustomerRefinerValueClass","TradeAgreementPrice","MaxVariantPrice","MinVariantPrice","CustomerContextualPrice","ProductLookupId","PriceSourceTypeValue","OrgUnitAvailabilityClass","OrgUnitLocation","ItemAvailabilities","ItemAvailabilityClass","ProductVariantPropertySetClass","ProductVariantPropertiesAsList","PurchaseQuantity","PurchaseUnit","PurchaseReceived","PurchaseReceivedNow","WMSLocationId","WMSPalletId","IsCommitted","UniqueIdentifier","DeliveryMethod","QuantityTransferred","QuantityRemainShip","QuantityRemainReceive","Guid","TransferOrderJournalClass","VoucherId","UpdatedByWorker","PostingDate","Comments","JournalLines","TransferOrderJournalLineClass","AffiliationTypeValue","InventoryInboundOutboundDocumentLinesSummaryClass","InProgressQuantity","TotalLineNumber","InventoryDocumentSerialNumberLinesSummaryClass","RegisteringQuantity","RegisteredQuantity","InventoryInboundOutboundDocumentLineClass","SourceDocumentRecordId","SourceDocumentLineRecordId","QuantityCancelled","QuantityToUpdate","LocationId","ItemPrimaryImageUrl","IsLocationActive","IsLocationAllowBlankReceiptEnabled","IsLocationBlankIssueAllowed","ProductDimensions","ProductDimensionClass","IsCloseLine","OriginTypeValue","SourceDocumentLine","InventoryInboundOutboundSourceDocumentLineClass","SerialNumberLines","InventoryDocumentSerialNumberLineClass","ToLocationId","AdjustmentTypeValue","DocumentTypeValue","TotalQuantityOrdered","TotalQuantityShipped","TotalQuantityReceived","TotalQuantityCancelled","TotalLines","IsChangeAllowed","DocumentRecordId","OverDeliveryPercentage","UnderDeliveryPercentage","HasSerialNumber","IsSerialNumberBlankReceiptAllowed","IsSerialNumberDuplicateCheckEnabled","InventoryDocumentSourceSerialNumberLineClass","ToProductId","ToInventoryDimensionId","InventoryDocumentLineFilterCriteriaClass","InventoryDocumentUpdateLinesActionClass","ActionTypeValue","InventoryDocumentLineOperationResultSettingsClass","ModeValue","InventoryDocumentLineSearchCriteriaClass","SourceDocumentId","ItemIds","AvailableSerializedLineOnly","DocumentLineIds","DocumentOperationTypeValue","InventoryDocumentSearchCriteriaClass","TransferFromWarehouse","ShipFromWarehouse","TransferToWarehouse","DocumentTypeIds","DocumentStateValue","DocumentTypeValues","InventoryDocumentSerialNumberLineSearchCriteriaClass","DocumentLineId","InventoryDocumentSerialNumberLineUpdateActionClass","InventoryDocumentSerialNumberLineResetActionClass","InventoryInboundOutboundDocumentUpdateLinesByCriteriaResultClass","UpdatedLines","TotalLinesUpdated","WarehouseLocationSearchCriteriaClass","WarehouseIds","IsLocationProfileRequired","SearchText","WorkDocumentLineId","SourceLineId","SourceLine","InventoryDocumentValidationCategoryResultsSummaryClass","CategoryName","SeverityValue","TotalValidationResultCount","InventoryDocumentValidationResultSummaryClass","DocumentVersion","CategorySummaries","InventoryDocumentValidationResultLineClass","DocumentValidationResultLineId","ErrorCode","ErrorMessage","DocumentLongVersion","InventoryDocumentValidationResultSearchCriteriaClass","Categories","DimensionTypeValue","DimensionValue","TotalAvailableInventoryLevelLabel","TotalAvailableInventoryLevelCode","PhysicalAvailableInventoryLevelLabel","PhysicalAvailableInventoryLevelCode","DimensionId","ColorHexCode","ImageUrl","RefinerGroup","ProductDimensionCombinationClass","SearchRefinerClass","RefinerTypeValue","DisplayTemplateValue","SearchRefinerValueClass","RefinerRecordId","LeftValueBoundString","RightValueBoundString","UnitText","RowNumber","LeftValueBoundLocalizedString","RightValueBoundLocalizedString","SourceValue","Values","RefinerSourceValue","SwatchImageUrl","SwatchColorHexCode","ClientBookRefinerClass","ClientBookRefinerValueClass","ComponentInSlotRelationClass","ComponentId","SlotId","IsSerialized","IsActiveInSalesProcess","DateOfBlocking","DateToActivate","DateToBlock","PriceKeyingRequirementValue","QuantityKeyingRequirementValue","MustKeyInComment","CanQuantityBecomeNegative","MustScaleItem","CanPriceBeZero","TextId","CardTenderTypeValue","CustomerAccount","LoyaltyGroups","LoyaltyGroupClass","RewardPoints","LoyaltyRewardPointClass","LoyaltyEnrollmentDate","LoyaltyEnrollmentDateLocal","LoyaltyEnrollmentTime","LoyaltyEnrollmentTimeLocal","OmOperatingUnitId","AdditionalChargeForComponent","Behavior","ProductBehaviorClass","Dimensions","ProductTypeValue","Components","IsGiftCard","SimpleLinkedProductClass","PrimaryImageUrl","ItemTypeValue","ItemServiceTypeValue","IsDiscountAllowed","IsManualDiscountAllowed","IsKitDisassemblyAllowed","IsNegativeQuantityAllowed","IsReturnAllowed","IsSaleAtPhysicalStoresAllowed","IsZeroSalePriceAllowed","KeyInPriceValue","KeyInQuantityValue","MustPrintIndividualShelfLabelsForVariants","MustPromptForSerialNumberOnlyAtSale","MustWeighProductAtSale","ValidFromDateForSaleAtPhysicalStores","ValidToDateForSaleAtPhysicalStores","IsStorageDimensionGroupLocationActive","IsStorageDimensionGroupLocationAllowBlankReceiptEnabled","AllowNegativePhysicalInventory","IsStockedProduct","IsBlankSerialNumberAllowed","IsBlankSerialNumberReceiptAllowed","IsSerialNumberControlEnabled","IsStorageDimensionGroupLocationBlankIssueAllowed","IsSerialNumberRequired","DefaultQuantity","MinimumQuantity","MultipleOfQuantity","AverageRating","TotalRatings","Value2","Value3","Value4","SuggestionType","MaxCurrencyValueOfLoyaltyPoints","RewardPointToRedeemList","LoyaltyTiers","LoyaltyTierClass","LoyaltyCardTiers","LoyaltyCardTierClass","HighestActiveLoyaltyCardTier","TierId","TierLevel","LoyaltyTierRecordId","IsRedeemable","RewardPointCurrency","RewardPointTypeValue","RewardPointId","IssuedPoints","UsedPoints","ExpiredPoints","ActivePoints","PointsExpiringSoon","UnvestedPoints","EntryDateTime","EntryTypeValue","ExpirationDate","RewardPointAmountQuantity","BalanceCurrencyCode","BalanceInCardCurrency","CardCurrencyCode","OperationName","OperationId","CheckUserAccess","AllowAnonymousAccess","AllowCustomerAccess","AllowApplicationAccess","IsEnabledForTaskManagement","TransactionLogClass","KitTransactionLines","KitTransactionLineClass","TaxGroupName","ProductPropertyClass","ValueString","PropertyTypeValue","IsDimensionProperty","GroupTypeValue","GroupName","VariantInformation","ProductVariantInformationClass","KitDefinition","KitDefinitionClass","ActiveVariantProductId","Variants","ProductVariantClass","ProductDimensionSetClass","ChangeActionValue","RequestedActionValue","DimensionKey","DimensionValues","ProductDimensionValueSetClass","VariantSet","SwatchRefinerGroupValue","SwatchRefinerGroupTranslation","SwatchRefinerGroupImageUrl","SwatchRefinerGroupColorHexCode","Items","RichMediaLocationsRichMediaLocationClass","AltText","IsSelfHosted","IsDefault","DisassembleAtRegister","KitLineDefinitions","KitLineDefinitionClass","KitLineProductToVariantMap","ComponentKitVariantSetClass","KitVariantToComponentMap","KitVariantContentClass","KitLineProductId","KitVariantIdList","ComponentProductId","KitLineIdentifier","SubstituteProductIds","ComponentProperties","KitLineProductPropertyClass","Charge","KitComponentKeyClass","DistinctProductId","KitVariantId","KitComponentKeyList","ProductLookupClauseClass","InventDimensionId","OrgUnitContactClass","Distance","PostalAddressId","OpenFrom","OpenTo","Locator","LocatorExtension","ContactTypeValue","SalesLineId","DeliveryOptions","DeliveryChargeLines","DeliveryChargeLineClass","TotalChargeAmount","ChannelType","ExtensibleRetailChannelTypeClass","OperatingUnitNumber","ChannelProfilePropertyClass","ChannelNaturalId","MinimumDepositPercentage","QuoteExpirationDays","PickupDeliveryModeCode","CarryoutDeliveryModeCode","CancellationChargePercentage","InventLocationDataAreaId","BingMapsApiKey","BingMapsEnabled","CatalogDefaultImageTemplate","CompanyCurrency","PriceIncludesSalesTax","ChannelCountryRegionISOCode","DefaultLanguageId","TimeZoneInfoId","EmailDeliveryModeCode","GiftCardItemId","EnableProductRecommendations","RefundableShippingAmountWithoutApproval","RefundShippingCharges","ReceiptSettingsValue","CustomerAttributeGroupId","ClientBookAttributeGroupId","NotificationRefreshInterval","AllowExchangeOnReturnOrders","IsInventoryAutomaticValidationEnabled","ProfileProperties","Properties","ChannelPropertyClass","ChannelLanguageClass","UseAdvancedAutoCharges","UseRTSForOnlineOrderCreation","IsWarrantyAutoPromptEnabled","EnableProductRatingsForRetailStores","EnableFetchingPickingListsForPickingAndReceiving","EnableReturnsForMultipleOrderInvoices","EnableAnonymousOrderLookupByChannelReferenceId","EnableOmniChannelPayments","EnableFiscalRegistrationStorageBackup","UseSalesReceiptAsDefaultReceiptTypeInJournal","SalesOrderHeaderAttributeGroups","SalesOrderLinesAttributeGroups","CustomerAddressBooks","StoreAddressBookClass","EnableReturnPolicies","InventAvailabilityCalculationMode","IsPriceInclusiveTaxExemptCalculationEnabled","EnableValidationOfSerialNumbersForInStoreReturns","Channel","PickupDeliveryModeCodes","ForeignCurrency","DenominationDetails","DenominationDetailClass","TenderDetails","TenderDetailClass","ProductSearchCriteriaClass","Ids","IncludeProductsFromDescendantCategories","SearchCondition","SkipVariantExpansion","IncludeAttributes","Barcodes","Refinement","RecommendationListId","DownloadProductData","Context","IsOnline","ChangedProductsSearchCriteriaClass","SynchronizationToken","AsListings","Session","EmployeeActivitySearchCriteriaClass","FromDateTimeOffset","ToDateTimeOffset","EmployeeActivityTypeValues","SearchSuggestionCriteriaClass","ProductSearchCriteria","CustomerSearchCriteria","HitPrefix","HitSuffix","CartLineDeliveryPreferenceClass","DeliveryPreferenceTypeValues","CartLinePromotionClass","Promotions","Color","Style","Size","Configuration","ColorId","StyleId","SizeId","DistinctProductVariantId","PropertiesAsList","DeviceTypeValue","DeviceName","DeviceMake","DeviceModel","DeviceDescription","CharacterSet","ReceiptProfileId","BinaryConversion","DocInsertRemovalTimeout","Logo","LogoAlignment","DecodeData","IsSharedShiftDrawer","TillLayoutClass","CashChangerLayoutXml","CustomerLayoutId","CustomerLayoutXml","Height","LayoutTypeValue","LayoutXml","LayoutXmlPortrait","ReceiptItemsLayoutXml","ReceiptPaymentLayoutXml","TotalId","TotalsLayoutXml","StartScreen","ButtonGridZones","ButtonGridZoneClass","ImageZones","ImageZoneClass","ReportZones","ReportZoneClass","SalesType","InvoiceDate","DueDate","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalLineDiscount","AmountBalance","Account","SalesInvoiceLine","SalesInvoiceLineClass","OrderAccount","InvoiceDueDate","InvoicePaidStatusValue","SourceTaxGroup","DestinationTaxGroup","SourceItemTaxGroup","DestinationItemTaxGroup","AdditionalDescription","Function","ChangeTenderTypeId","AboveMinimumChangeAmount","AboveMinimumChangeTenderTypeId","UseSignatureCaptureDevice","MinimumSignatureCaptureAmount","IsOvertenderAllowed","IsUndertenderAllowed","MaximumOvertenderAmount","MaximumUndertenderAmount","MaximumAmountPerTransaction","MaximumAmountPerLine","MinimumAmountPerTransaction","MinimumAmountPerLine","RoundOff","TakenToBank","TakenToSafe","ConnectorId","GiftCardItem","GiftCardCashoutOutThreshold","ChangeLineOnReceipt","HideCardInputDetails","CashDrawerLimitEnabled","CashDrawerLimit","RestrictReturnsWithoutReceipt","DefaultCardTypeId","UseForDeclareStartAmount","InputRequired","LinkedReasonCodeId","MaximumLength","MaximumValue","MinimumLength","MinimumValue","OncePerTransaction","PrintInputNameOnReceipt","PrintInputToReceipt","PrintPromptToReceipt","Prompt","RandomFactor","RetailUseReasonCode","ActivityValue","IsMultiLineText","ReasonSubCodes","ReportId","Parameters","Output","ReportRowClass","HasTotalRow","HasDisclaimer","ZipPostalCode","StreetName","CityAlias","District","ReasonCodeRequirementClass","SourceId","TableRefTypeValue","QueryResultSettingsClass","PagingInfoClass","SortingInfoClass","NextPageToken","TranslationLanguage","TranslatedProperties","DataValue","LastTransactionDataValue","LastTransactionCreatedDateTime","LastTransactionId","ResetDate","TypeValue","Enabled","Device","DatePurchased","NodeClass","ParentScopeId","ParentSequence","Sequence","ScreenshotUri","LineClass","ChildrenIds","IsLinked","LineMetadataId","Artifacts","ArtifactSummaryClass","MetadataPropertyValues","MetadataPropertyValueClass","MetadataTextClass","MetadataHypertextLinkClass","ScopeClass","ScopeTypeValue","Children","ActiveCount","IsForm","Access","Hierarchy","Publisher","UserActionClass","SystemGenerated","GlobalId","Annotations","AnnotationClass","TaskUserActionClass","UserActionTypeValue","TaskId","FormUserActionClass","FormId","ControlLabel","CommandUserActionClass","ReturnTypeValue","CommandName","ControlName","ControlType","Arguments","CommandArgumentClass","LabelId","ReturnValue","Scopes","FormContextEntries","FormContextDictionaryEntryClass","RootScope","FormContext","FormContextClass","ProductVariantResolutionContextClass","ProductVariantResolutionOnKitSelectionContextClass","SelectedComponents","WarehouseLocationClass","IsLicensePlateControlled","TransDateTime","RegisterResponse","ReceiptCopy","RecordGUID","RegisterStoreId","RegisterTerminalId","RegistrationStatusValue","RegistrationProcessId","ConnectorGroup","ConnectorFunctionalityProfileId","RegisterInfo","DocumentNumber","RegistrationTypeValue","ServiceName","TenderLineAdjustments","FiscalTransactionTenderLineAdjustmentClass","SalesLineAdjustments","FiscalTransactionSalesLineAdjustmentClass","SalesPersonStoreId","SalesPersonId","SalesPersonFirstName","SalesPersonLastName","SalesLineNumber","EmailAddress","DeliveryModeCode","FulfillmentDeliveryType","DeliveryTypeValue","StoreInventoryTotalQuantity","StoreInventoryReservedQuantity","StoreInventoryOrderedQuantity","ProductVariant","RequestedShipDate","RequestedReceiptDate","CreatedDate","ChannelTypeValue","FulfillmentLineSearchCriteriaClass","OrderCreatedStartDate","OrderCreatedEndDate","RequestedReceiptStartDate","RequestedReceiptEndDate","RequestedDeliveryStartDate","RequestedDeliveryEndDate","FulfillmentStatusValues","CustomerPhoneNumber","CommentClass","AuthorStaffId","AuthorName","AddressType","TenderTypePolicies","TenderTypePolicyClass","IsManagerOverrideEnabled","WarrantyClass","DurationUnitValue","Duration","ApplicablePriceRangeBaseTypeValue","ApplicablePriceRangeMin","ApplicablePriceRangeMax","RecallInvoicedSalesLineLookupClass","InvoicedLineId","IgnoreSerialNumberMismatch","WarrantyGroupClass","Warranties","WarrantyGroups","WarrantableProductId","FulfillmentLineContextualOperationsMapClass","FulfillmentLine","UserAlertClass","AlertSourceIdValue","LocalizedMessage","IsBlocking","LineIndex","UserAlerts","CompanyName","JobTitle","Department","CompanySize","ChannelSearchCriteriaClass","BusinessPartnerOperationClass","Details","BusinessPartnerOperationRequestDetailsClass","UserFirstName","UserLastName","ReceiptTypesByFormatTypeClass","ReceiptOutputFormatType","ReceiptTypesValues","InventoryJournalNameSearchCriteriaClass","JournalNameIds","IsRemoteProduct","ProductExistenceCriteriaClass","InstructionsVersion","AssignedToPersonnelNumbers","AssignedToExternalSubId","DeepLinkTypeValue","DeepLink","DeepLinkPosOperationName","ContactPersonPersonnelNumber","Instructions","CompletionDateTime","ResolvedByPersonnelNumber","ChecklistId","Uri","Priority","EmployeeActivityClass","StaffName","Activity","ActivityDateTimeOffset","EmployeeActivityTypeValue","BreakCategory","TenderType","CardTokenInfo","CardTokenInfoClass","ProductDimensionAvailabilitySearchCriteriaClass","RequestedDimensionTypeValue","MatchingDimensionValues","DefaultWarehouseOnly","FilterByChannelFulfillmentGroup","DeliveryModeTypeFilterValue","LineShippingAddressClass","HeaderDeliveryPreferenceTypeValues","CartLineDeliveryPreferences","LineDeliverySpecificationClass","DeliverySpecification","DeliverySpecificationClass","DeliveryPreferenceTypeValue","PickUpStoreId","ShipFromStoreId","OrderSearchCriteriaClass","OrderStatusValues","OrderType","FulfillmentTypeValues","PickupStartDate","PickupEndDate","PickupTimeslotStartTime","PickupTimeslotEndTime","ChecklistSearchCriteriaClass","PersonnelNumber","ChecklistIds","StatusValues","TaskSearchCriteriaClass","TaskIds","FilterMyTasks","FilterOverdueTasks","ChecklistTaskTeamsIntegrationConfigurationClass","MicrosoftGraphResource","ReturnCartLineClass","ReceiptRetrievalCriteriaClass","IsCopy","IsRemoteTransaction","IsPreview","QueryBySalesId","HardwareProfileId","CartSearchCriteriaClass","CartId","ExpectedCartVersion","IncludeAnonymous","SuspendedOnly","LastModifiedDateTimeFrom","LastModifiedDateTimeTo","ReturnUrl","SearchReceiptCriteriaClass","ReceiptTypesByFormatTypeCollection","GiftReceiptLineNumbers","ElectronicAddressClass","ExtensibleEAddressType","ChannelReferenceLookupCriteriaClass","ChannelReferenceAdditionalLookupCriteria","ChannelReferenceAdditionalLookupCriteriaClass","FulfillmentLineParameterClass","ShipFulfillmentLineClass","RejectFulfillmentLineClass","RejectedQuantity","InfoCodeId","SubInfoCodeId","TotalNumberOfProducts","NumberOfProductsRead","NumberOfProductsReadInCurrentPage","NextSynchronizationToken","IsInitialSync","HasMorePublishedListings","DeletedListings","ListingIdentityClass","RatingDistribution","ProductRatingCountClass","ListingPublishStatusClass","PublishStatusValue","ListingModifiedDateTime","ChannelListingId","AppliedActionValue","StatusMessage","OrgUnitLocationSearchCriteriaClass","InventoryLocationIds","RegularStoreHours","RegularStoreHoursClass","HeaderPromotions","CartLinePromotions","Promotion","ItemUnitClass","VariantInventoryDimensionId","DistinctProductVariant","AvailableQuantity","OrgUnitAvailabilitySearchCriteriaClass","InvoiceSearchCriteriaClass","InvoiceIds","InvoiceTypeValues","InvoicePaidStatusValues","InvoiceDetailsSearchCriteriaClass","PickAndPackSalesLineParameterClass","ProductListSearchCriteriaClass","ProductListType","AffiliationId","LoyaltyTierId","ClientBookCustomerSearchCriteriaClass","FilterByCurrentEmployee","ClientBookCustomerClass","ImageUris","ClientBookChangesClass","Changes","ClientBookChangeClass","PaymentConnectorPropertiesXml","MerchantPropertiesHashValue","ServiceAccountId","SafeNumber","SafeBalance","LastUpdatedTime","InventoryDocumentReceiptSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordSearchCriteriaClass","InventoryDocumentSourceDocumentLineCommitRecordClass","UpdateNowQuantity","HardwareStationToken","PairingKey","MediaType","Content","PictureId","OnlineChannelName","OrgUnitTypeValue","ChannelProfile","ChannelProfileClass","ChannelProperties","ChannelLanguages","CountryRegions","TerminalDataDownloadRequestInfoClass","RequiresDataInitialization","HasBeenInitializedBefore","DownloadInterval","DownloadSessions","FeatureControlList","RetailSharedConfigurationParameterClass","DataStore","CDXDataStoreClass","TerminalDataUploadRequestInfoClass","UploadInterval","UploadJobPackageRequests","UploadJobPackageRequestClass","JobId","JobDescription","FileSize","RowsAffected","Checksum","DateDownloaded","DateRequested","DataStoreName","DownloadLink","OfflineTerminalStateClass","ActivityDate","LoyaltyRewardPointTimelineEntryType","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","LoyaltyPoints","CurrencyRequestClass","AmountToConvert","HardwareStationId","HardwareStationTypeValue","HardwareStationName","HardwareStationDescription","HardwareStationUrl","HardwareStationHostName","HardwareStationEftTerminalId","NameValuePairClass","ExternalIdentityProvider","ExternalIdentityLinkRecordId","IsUploadJob","LastSyncDateTime","SasKey","FrameworkPublisherName","EventId","EventIdString","Store","UploadType","EventType","EventDateTime","DurationInMilliseconds","Source","EventMessage","LogLevel","Staff","ClosedShiftId","ReferenceId","RefChannel","RefStore","RefTerminal","RefTransactionId","AuditEventTypeValue","AuditEventFiscalTransactionClass","FiscalRegistrationLines","AuditEventFiscalRegistrationLineClass","OrderedSum","PhysicalReserved","InventoryUnitOfMeasure","InventoryUnitOfMeasureDescription","Action","ActionName","NotificationDetails","NotificationDetailClass","FiscalIntegrationDocumentRetrievalCriteriaClass","FiscalRegistrationEventTypeValue","DocumentContext","FiscalIntegrationDocumentContextClass","Document","DocumentGenerationResultTypeValue","FiscalConnectorTechnicalProfile","DocumentAdjustment","FiscalIntegrationDocumentAdjustmentClass","SequentialSignatureDataContext","FiscalIntegrationSignatureDataContextClass","FiscalIntegrationRegistrationResultClass","TransactionID","AuditEventId","Response","SubmittedDocument","SequentialSignatureData","RegistrationProcessLines","FiscalIntegrationRegistrationProcessLineClass","FunctionalityProfileGroupId","SupportedFiscalEventTypes","SupportedNonFiscalEventTypes","ConnectorTypeValue","ConnectorLocationValue","TechnicalProfile","FiscalRegistrationProcessSummaryLines","FiscalIntegrationFiscalRegistrationProcessSummaryLineClass","FiscalIntegrationTechnicalProfileSearchCriteriaClass","ExcludeOptionalProcessLines","FunctionalityProfileGroupIds","FiscalIntegrationServiceInfoClass","ServiceProperties","IsReady","CommunicationResultTypeValue","FailureDetails","FiscalIntegrationServiceFailureDetailsClass","FiscalIntegrationServiceInfo","UserNotificationMessage","LastRegisterResponse","SequenceKey","IsOffline","SequentialNumber","DiscountsSearchCriteriaClass","StartDate","EndDate","ValidationPeriodId","AdditionalRestrictions","ValidFromDate","ValidToDate","ValidationPeriod","ValidationPeriodClass","CouponCodes","CategoryPathLookupClass","CategoryPath","CategoryPathClass","PickupTimeslotAvailabilitySearchCriteriaClass","SearchOptionValue","AvailableCapacity","ExtensionServiceUrl","AttachedServices","AttachedServiceClass","AllowTransferOrderOverDelivery","AllowTransferOrderUnderDelivery","UserLocationProfileId","InventoryProductAttributeRecordId","InventoryOutOfStockAttributeValueText","ProductAvailabilitySortableAttributeRecordId","AllowOverDelivery","AllowSubDelivery","JournalNameId","InventoryJournalTypeValue","DefaultAdjustmentTypeValue","ShiftRetrievalCriteriaClass","ShiftStatusValue","FilterByUserRole","IncludeAllShiftsForStore","CertificateData","TerminalInfoClass","Types","CustomerTimelineItemTypeClass","RefinedResultsCount","ProductWarehouseClass","ProductWarehouseInventoryAvailabilities","ProductWarehouseInventoryAvailabilityClass","AggregatedProductInventoryAvailabilities","ProductInventoryAvailabilityClass","InventoryAvailabilitySearchCriteriaClass","SearchArea","QuantityUnitTypeValue","TypeName","ExtensibleEnumerations","EmailBehaviorValue","OrgUnitAddressClass","WarehouseDetailsClass","SwatchValue","ProductImageUrls","AttributeBooleanValueClass","AttributeCurrencyValueClass","AttributeDateTimeOffsetValueClass","AttributeFloatValueClass","UnitSymbol","AttributeIntValueClass","AttributeMediaLocationValueClass","AttributeTextValueClass","TextValueTranslations","ActionProperty","BackColorAsARGB","ARGBColorClass","BorderColorAsARGB","Column","ColumnSpan","DisplayText","FontColorAsARGB","ButtonId","Row","RowSpan","UseCustomLookAndFeel","PictureAsBase64","FontStyle","FontSize","EnableCustomFontForPOS","HideButtonText","Tooltip","EnableLiveContent","NotificationContentAlignment","ImageAlignment","A","R","G","B","PriceMethod","OriginId","PriceChangedByExtensions","TradeAgreementPriceLineClass","AttributePricingTradeAgreementPriceLineClass","CanApplyPriceAdjustments","SalesAgreementPriceLineClass","SalesAgreementName","UnitPrice","DiscountPercent","SalesAgreementLineTypeValue","PriceUnit","EffectiveDate","CommittedQuantity","CommittedAmount","RemainingAmount","PriceAdjustmentPriceLineClass","Concurrency","AttributePricingAdjustmentPriceLineClass","CanCompoundOnAdjustedPrice","AdjustedAmount","BasePriceLineClass","ExtensiblePeriodicDiscountOfferTypeClass","OriginalAmount","OverrideAmount","OverrideReasonDescription","OverrideDateTime","TaxLineGTEClass","TaxComponent","Path","UniqueCardId","DataverseTenderLineClass","IsLocalized","IsSearchable","IsRetrievable","IsQueryable","IsRefinable","IsSortable","IsTokenNormalization","IsCompleteMatch","FromUnitOfMeasureId","ToUnitOfMeasureId","FromUnitOfMeasureSymbol","ToUnitOfMeasureSymbol","IsBackward","Factor","Numerator","Denominator","InnerOffset","OuterOffset","ReturnLocationText","ReturnWarehouseText","ReturnReasonText","ReturnPalleteText","LoyaltyGroupRecordId","EntryDate","EntryTime","RewardPointRecordId","RewardPointIsRedeemable","RewardPointType","ServiceType","PackageWeight","WeightClass","ShippedOnDate","DeliveredOnDate","EstimatedDeliveryDate","PackagingType","DestinationAddress","OriginAddress","ShipmentProgress","ShipmentProgressClass","ShippingCharge","Location","DateTime","AddressComponentNameValue","IsDataEntryOnly","NewLine","Expand","Inactive","Special","NumberOfSpaces","Separator","CashDrawerConfigurations","HardwareConfigurationClass","PrinterConfigurations","PinPadConfiguration","HardwareStationRecordId","IPAddress","Port","PrinterType","PrintBehaviorValue","ReceiptLayoutId","ReceiptType","TransferQuantity","DocumentLineRecordId","InventTransRecordId","AddressBookId","AddressBookTypeValue","AmountInForeignCurrency","ForeignCurrencyExchangeRate","BankBagNumber","TenderRecount","Type","DenominationAmount","QuantityDeclared","AmountDeclared","ButtonGridId","ZoneId","ZoneName","ReportRecordId","InventTransactionId","Site","Warehouse","SerialId","ColorName","SizeName","StyleName","ConfigName","ItemTaxGroup","SalesMarkup","RowData","FormAnnotationClass","MenuItemLabel","MenuItemName","MenuItemType","TaskGuideAnnotationClass","RecordingValueType","ExampleText","Hidden","IsReference","PropertyUserActionClass","ValueLabel","PropertyName","UserActionType","InfoUserActionClass","ControlLabelId","MenuItemUserActionClass","NavigationPath","ValidationUserActionClass","ArtifactType","LanguageTags","PropertyId","SingleValue","MultiValue","Tags","ComboBox","MultiSelect","Links","FormID","FormName","RecordingName","HasMetadata","ExtensibleFiscalRegistrationTypeClass","TenderLineNumber","AdjustmentAmount","RecordGuid","Exclude","DetailedOrderStatusClass","LineValidationResultClass","ValidationFailures","DataValidationFailureClass","TaxId","CodeId","DiscountOfferId","Units","PartyLocationRecordId","PartyRecordId","ValueExtension","ParentLocation","IsMobilePhone","IsOptedInMarketing","QuantityReturned","TaxRate","IsRegistrationNumberUnique","IsPrimaryAddressRestricted","TypeApplicabilityRuleRecordId","DirPartyLocationRecordId","RegistrationNumber","IssueDate","Section","ChannelTaxRegistrationClass","LinkedProductRecordId","CategoryRecordId","RelatedProductRecordId","RelationName","IsExcludedRelation","IsDirectRelation","OrderLookupAdditionalCriteriaTypeValue","OrderLookupAdditionalCriteriaTypeParameterValue","UserAlertFulfillmentLineParameterClass","SerialNumberInLatestFulfillmentTransaction","LatestFulfillmentTransactionOperationTypeValue","Rating","MondayOpenTime","MondayCloseTime","IsClosedOnMonday","TuesdayOpenTime","TuesdayCloseTime","IsClosedOnTuesday","WednesdayOpenTime","WednesdayCloseTime","IsClosedOnWednesday","ThursdayOpenTime","ThursdayCloseTime","IsClosedOnThursday","FridayOpenTime","FridayCloseTime","IsClosedOnFriday","SaturdayOpenTime","SaturdayCloseTime","IsClosedOnSaturday","SundayOpenTime","SundayCloseTime","IsClosedOnSunday","PeriodId","StartingTime","EndingTime","IsTimeBounded","MondayStartingTime","MondayEndingTime","IsMondayTimeBounded","TuesdayStartingTime","TuesdayEndingTime","IsTuesdayTimeBounded","WednesdayStartingTime","WednesdayEndingTime","IsWednesdayTimeBounded","ThursdayStartingTime","ThursdayEndingTime","IsThursdayTimeBounded","FridayStartingTime","FridayEndingTime","IsFridayTimeBounded","SaturdayStartingTime","SaturdayEndingTime","IsSaturdayTimeBounded","SundayStartingTime","SundayEndingTime","IsSundayTimeBounded","IsEndTimeAfterMidnight","IsMondayEndTimeAfterMidnight","IsTuesdayEndTimeAfterMidnight","IsWednesdayEndTimeAfterMidnight","IsThursdayEndTimeAfterMidnight","IsFridayEndTimeAfterMidnight","IsSaturdayEndTimeAfterMidnight","IsSundayEndTimeAfterMidnight","FromStaffId","ToStaffId","RecId","RerunUploadSessionId","TargetStorage","UploadJobDefintion","UploadUrl","ExtensibleAuditEventTypeClass","TransactionDateTime","UploadTypeValue","ItemCount","IsNew","LastUpdatedDateTimeStr","IsSuccess","IsLiveContentOnly","AuditEvent","SequentialSignatureKey","SequenceNumber","AllowSkip","AllowMarkAsRegistered","AllowPostpone","Optional","RegistrationSettings","FiscalIntegrationRegistrationSettingsClass","SequentialKeys","SkipReasonCode","MarkAsRegisteredReasonCode","PostponeReasonCode","RegistrationProcessLine","ConnectionProperties","FiscalIntegrationConfigurationPropertyClass","LabelName","FailureTypeValue","IsRetryAllowed","Segments","CategoryPathSegmentClass","CategoryId","BaseUrl","ServiceId","ExtensibleInventoryJournalTypeClass","PhysicalInventory","TotalAvailable","OrderedInTotal","PhysicalAvailable","LastInventoryTransactionId","UnpostedOnlineOrderedQuantity","UnpostedFulfilledQuantity","IsInventoryAvailabilityQuantityReturned","UnprocessedQuantity","MaximumPurchasablePhysicalAvailableQuantity","MaximumPurchasableTotalAvailableQuantity","SumUncountedTransactions","QuantityUnitTypeClass","TotalAvailableQuantity","PhysicalAvailableQuantity","ParameterSetClass","ValidationResultsByLineId","CartLineValidationResultsByLineIdClass","ValidationFailuresByCartLines","LineDataValidationFailureClass","CommerceExceptionClass","ErrorResourceId","DataValidationExceptionClass","ValidationResults","MissingRequiredReasonCodeExceptionClass","RequiredReasonCodes","TransactionRequiredReasonCodeIds","ReasonCodeRequirements","SecurityExceptionClass","DeviceAuthenticationExceptionClass","HeadquarterTransactionServiceExceptionClass","UserAuthenticationExceptionClass","UserAuthorizationExceptionClass","FeatureNotSupportedExceptionClass","CartValidationExceptionClass","TenderValidationExceptionClass","CommerceDataExchangeExceptionClass","ExtensibleEnumerationExceptionClass","TaskManagementExceptionClass","TaskManagementErrors","TaskManagementErrorClass","TaskManagementServerExceptionClass","TaskManagementClientExceptionClass","PaymentExceptionClass","ErrorContext","MemberNames","ItemDiscontinuedExceptionClass","RemovedUnavailableItemIds","InventoryDocumentLockedByOtherTerminalExceptionClass","WorkingTerminalId","InventoryDocumentExceedMaximumQuantityExceptionClass","LineIdToProductBehaviorMap","KeyValuePair_2OfString_ProductBehaviorClass","ValidationResultsPairs","CommerceRuntimeCompositionExceptionClass","ChecklistTaskValidationExceptionClass","InsufficientCredentialLengthExceptionClass","ActualLength","MinLength","ExtensibleEnumerationCacheExceptionClass","ExtensionConfigurationExceptionClass","StaffPasswordExpiredExceptionClass","ChannelConfigurationNotFoundExceptionClass","PaymentConfigurationExceptionClass","PaymentConfigurationSdkErrors","SecretConfigurationNotFoundExceptionClass","OriginalTenderType","AllowedReturnTenderTypes","AccountStatementRequestClass","RequestedUserId","IsForFullOrganization","FromDate","ToDate","RequestingUserEmail","AccountStatementStartDateTime","AccountStatementEndDateTime","DataValidationFailure","WrongEndpointExceptionClass","RedirectUri","BadRequestExceptionClass","AutoExitMethodType","CardType","PublishingAction","ListingPublishingActionStatus","OnlineChannelPublishStatusType","ReceiptTransactionType","EmployeePriceOverrideType","KeyInPriceRestriction","KeyInQuantityRestriction","ProductDimensionType","ProductType","NumberSequenceSeedType","ReasonCodeSourceType","TriggerFunctionType","QueryType","ChangeAction","PeriodicDiscountOfferType","SearchFilterType","InfoCodeActivity","SrsReportFileFormat","ShiftReconciliationLineStatus","ProductSearchServiceType","SearchSuggestionType","SalesStatus","EFTType","FilterDeliveryModeOption","InventoryDocumentLineOperationResultMode","InventoryDocumentStatus","InventoryDocumentUpdateLinesActionType","InventoryInboundOutboundDocumentOperationType","InventoryInboundOutboundSourceDocumentStatus","InventorySourceDocumentType","InventoryInboundOutboundDocumentState","ReceiptNumberResetType","PeriodUnit","WarrantyPriceRangeBaseType","LogOnKeyboardType","LogOnLayoutType","DeliveryModeTypeFilter","InventoryDocumentValidationResultSeverity","InventoryDocumentOverreceivingErrors","InventoryDocumentSerialNumberErrors","EmployeeIdentityType","FulfillmentOperationType","PaymentStatus","UserAlertSourceType","CustomerOrderMode","InventoryValidationErrors","InventoryJournalPosAdjustmentType","ProductDataValidationErrors","AddressOperationType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DeviceActivationStatus","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","PrintBehavior","DistanceUnit","StockCountStatus","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","CartType","CartStatus","PeriodicDiscountsCalculateScope","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","TaxCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","ElectronicAddressType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","PaymentConfigurationErrors","BusinessPartnerOperationDeliveryType","OnlineStoreCustomerType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","ICacheSource","isAsyncResult","item","AsyncResult","executor","metadata","_type","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","_resolve","_updateStatus","_reject","reason","e","getType","run","asyncResult","finally","onfinally","failed","toStringTag","newStatus","isError","setTimeout","obj","__decorate","observable","ErrorTypeEnum","GENERICERRORMESSAGE","DeviceActivationErrorsForwardLinks","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","errorMessage","statusCode","err","errorCode","canRetry","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","SERVICE_UNAVAILABLE","SERVER_ERROR","body","RETURN_NO_ORDERS_FOUND","toUpperCase","SERVER_TIMEOUT","ProxyError","numErrors","isRetryable","CanRetry","errorResourceIds","LocalizedErrorMessage","handled","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","rdc","set","parseError","responseText","jsonResponse","parse","ex","errorString","errorResponse","commerceErrors","odataError","CorrelationId","localizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","StorageExceptionType","commerceException","failures","failure","contentType","bodyString","Exception","toLowerCase","parseJSONError","genericWarning","ProxyErrorSDK","localizedErrorMessage","formatData","setPrototypeOf","extraData","_canRetry","_errorCode","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","_extraData","proxyError","errorName","exception","accumulator","depth","stringifyValue","returnValue","trim","params","index","param","regexp","RegExp","normalHeaders","accept","normalizeHeaders","lowerName","normalName","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","abort","handleTimeout","cancelToken","axios","done","cancel","url","isAbsoluteUrl","authenticationCreds","username","password","axiosTimeout","timeoutMS","window","___initialData___","_clientPlatformSetting","clientSideDataActionTimeoutInMs","auth","timeout","axiosResponse","axiosError","process","recognizeDates","useJsonLight","inferJsonLightFeedAsObject","Accept","write","maxDataServiceVersion","prepareRequest","jsonHandler","httpClient","invokeRequest","jsonMediaType","ODATA_VERSION","ODATA_MAX_VERSION","str","contentTypeParts","properties","len","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","exec","handlerWrite","cType","CONTENT_TYPE_HEADER_NAME","version","writeContext","left","right","leftParts","rightParts","leftVersion","rightVersion","maxVersion","ContentType","contentTypeObj","contentTypeToString","handlerRead","formatNumberWidth","append","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","timezone","year","ms","ns","substring","seconds","direction","d","h","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__ns","propertyType","EDM","propertyValue","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","EventLevel","EventChannel","func","DebuggingConsoleSink","setSessionInfo","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","event","LoggerBase","eventId","channel","level","keywords","task","opCode","loggingSink","enumType","requestUrl","sink","informationformat","TracingOn","args","GetMessage","apply","TracerDynamicsError","warningFormat","errorFormat","formatString","uniqueFunctionName","counter","Counters","PerformanceCounters","now","getTime","Timers","startTime","pop","TotalTime","type","TracerDynamics","slice","init","retailAction","input","callActionOrExecute","chainAction","isObservable"],"sourceRoot":""}