@aurigma/ng-backoffice-api-client 2.66.1 → 2.66.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aurigma-ng-backoffice-api-client.metadata.json +1 -1
- package/bundles/aurigma-ng-backoffice-api-client.umd.js +1 -3
- package/bundles/aurigma-ng-backoffice-api-client.umd.js.map +1 -1
- package/bundles/aurigma-ng-backoffice-api-client.umd.min.js +1 -1
- package/bundles/aurigma-ng-backoffice-api-client.umd.min.js.map +1 -1
- package/esm2015/aurigma-ng-backoffice-api-client.js +1 -1
- package/esm2015/lib/backoffice-api-client.js +2 -4
- package/esm2015/lib/backoffice.module.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/fesm2015/aurigma-ng-backoffice-api-client.js +1 -3
- package/fesm2015/aurigma-ng-backoffice-api-client.js.map +1 -1
- package/lib/backoffice-api-client.d.ts +8 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/client/src/lib/backoffice-api-client.ts","../../../projects/client/src/lib/backoffice.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","n","v","op","pop","length","push","__values","o","s","m","i","SuppressedError","API_BASE_URL","InjectionToken","ApiClientConfiguration","apiKey","authorizationToken","getAuthorizationToken","setAuthorizationToken","token","ApiClientBase","configuration","transformOptions","options","_a","headers","append","getBaseUrl","defultUrl","apiUrl","transformResult","url","res","cb","BuildInfoApiClient","http","baseUrl","_this","_super","jsonParseReviver","undefined","headInfo","url_","replace","options_","observe","responseType","HttpHeaders","_observableFrom","pipe","_observableMergeMap","transformedOptions_","request","response_","r","processHeadInfo","_observableCatch","HttpResponseBase","_observableThrow","response","status","responseBlob","HttpResponse","error","Blob","_headers","_b","keys","_c","key","get","blobToText","_responseText","_observableOf","throwException","getInfo","Accept","processGetInfo","result200","JSON","parse","Injectable","args","providedIn","decorators","type","Inject","HttpClient","Optional","ProductReferencesManagementApiClient","getAll","storefrontId","productReference","productSpecificationId","productId","productLinkId","productBundleId","skip","take","sorting","search","sku","tags","customFields","tenantId","Error","encodeURIComponent","forEach","item","processGetAll","result409","stringify","Content-Type","processCreate","result201","result404","reference","processGet","delete","processDelete","ProductsManagementApiClient","getAllProducts","processGetAllProducts","createProduct","processCreateProduct","getProduct","id","productVersionId","processGetProduct","deleteProduct","processDeleteProduct","getProductOptions","processGetProductOptions","setProductOptions","processSetProductOptions","getProductVariants","productFilterId","takeAvailableOnly","processGetProductVariants","getProductVariant","productVariantId","processGetProductVariant","updateProductVariantResources","processUpdateProductVariantResources","validateProductVariantResources","processValidateProductVariantResources","getProductVariantDesigns","designCustomFields","designPath","processGetProductVariantDesigns","getProductVariantMockups","mockupCustomFields","mockupPath","processGetProductVariantMockups","getProductVariantDocuments","documentCustomFields","documentPath","processGetProductVariantDocuments","setProductVariantPrice","processSetProductVariantPrice","result400","setProductVariantWeight","processSetProductVariantWeight","setProductVariantAvailability","processSetProductVariantAvailability","setProductVariantSku","processSetProductVariantSku","importProducts","file","content_","FormData","data","fileName","processImportProducts","createDesignsConnections","processCreateDesignsConnections","removeDesignsConnections","processRemoveDesignsConnections","createMockupsConnections","processCreateMockupsConnections","removeMockupsConnections","processRemoveMockupsConnections","createDocumentsConnections","processCreateDocumentsConnections","removeDocumentsConnections","processRemoveDocumentsConnections","setProductImage","processSetProductImage","getAvailablePersonalizationWorkflows","processGetAvailablePersonalizationWorkflows","getAvailableProcessingPipelines","processGetAvailableProcessingPipelines","ProjectStatusesManagementApiClient","update","processUpdate","ProjectStatusTransitionsManagementApiClient","StorefrontsManagementApiClient","types","createCustomStorefront","processCreateCustomStorefront","getCustomStorefront","processGetCustomStorefront","createNopCommerceStorefront","processCreateNopCommerceStorefront","getNopCommerceStorefront","processGetNopCommerceStorefront","createWooCommerceStorefront","processCreateWooCommerceStorefront","getWooCommerceStorefront","processGetWooCommerceStorefront","createMagentoStorefront","processCreateMagentoStorefront","getMagentoStorefront","processGetMagentoStorefront","createBigCommerceStorefront","processCreateBigCommerceStorefront","getBigCommerceStorefront","processGetBigCommerceStorefront","ProductReferenceType","ConflictType","OptionType","AppearanceDataType","ProductVariantResourceType","ProductVariantMockupType","SurfaceUsageType","ProductMockupType","WorkflowType","StorefrontType","StorefrontStatus","UsersManagementApiClient","getAllRoles","processGetAllRoles","ApiException","message","isApiException","obj","blob","Observable","observer","reader","FileReader","onload","event","target","complete","readAsText","CreateApiClientConfiguration","apiConf","BackOfficeApiClient.ApiClientConfiguration","BackOfficeModule","forRoot","ngModule","providers","provide","BackOfficeApiClient.API_BASE_URL","useValue","useFactory","bind","NgModule","declarations","imports","exports"],"mappings":"siBAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC,aAGZS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,YAsFnEI,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAxGC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPH,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOI,KAAM,GAAIC,IAAK,IAAeC,EAAI3C,OAAOc,QAA4B,mBAAb8B,SAA0BA,SAAW5C,QAAQK,WACtL,OAAOsC,EAAEjB,KAAOmB,EAAK,GAAIF,EAAS,MAAIE,EAAK,GAAIF,EAAU,OAAIE,EAAK,GAAsB,mBAAXC,SAA0BH,EAAEG,OAAOC,UAAY,WAAa,OAAOnC,OAAU+B,EAC1J,SAASE,EAAKG,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIf,EAAG,MAAM,IAAI1B,UAAU,mCAC3B,KAAOkC,IAAMA,EAAI,EAAGO,EAAG,KAAOZ,EAAI,IAAKA,OACnC,GAAIH,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE9B,KAAK6B,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAE9B,KAAK6B,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAEb,QACzB0B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEf,MAAO0B,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGQ,EAAEC,QAASH,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMd,EAAIC,EAAEG,MAAMJ,EAAIA,EAAEe,OAAS,GAAKf,EAAEA,EAAEe,OAAS,KAAkB,IAAVF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEC,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQF,EAAE,GAAI,CAAEC,EAAEC,MAAQF,EAAE,GAAIA,EAAIa,EAAI,MAC7D,GAAIb,GAAKC,EAAEC,MAAQF,EAAE,GAAI,CAAEC,EAAEC,MAAQF,EAAE,GAAIC,EAAEI,IAAIW,KAAKH,GAAK,MACvDb,EAAE,IAAIC,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBD,EAAKhB,EAAK3B,KAAKS,EAASsB,GAC1B,MAAOX,GAAKuB,EAAK,CAAC,EAAGvB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE1B,MAAO0B,EAAG,GAAKA,EAAG,QAAK,EAAQpB,MAAM,GArB9BL,CAAK,CAACuB,EAAGC,MAyBhCjD,OAAOc,gBAgBpBwC,EAASC,GACrB,IAAIC,EAAsB,mBAAXV,QAAyBA,OAAOC,SAAUU,EAAID,GAAKD,EAAEC,GAAIE,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAElD,KAAKgD,GACrB,GAAIA,GAAyB,iBAAbA,EAAEH,OAAqB,MAAO,CAC1C1B,KAAM,WAEF,OADI6B,GAAKG,GAAKH,EAAEH,SAAQG,OAAI,GACrB,CAAE/B,MAAO+B,GAAKA,EAAEG,KAAM5B,MAAOyB,KAG5C,MAAM,IAAI9C,UAAU+C,EAAI,0BAA4B,mCAkF/BxD,OAAOc,OAqEkB,mBAApB6C,iBAAiCA,gBAwC/D,IClWaC,EAAe,IAAIC,EAAAA,eAAuB,6BAEvD,SAAAC,IAEIlD,KAAAmD,OAAiB,SACTnD,KAAAoD,mBAA6B,YAC/BF,EAAAzD,UAAA4D,sBAAA,8EAA2C,MAAA,CAAA,EAAOrD,KAAKoD,2BAC7DF,EAAAzD,UAAA6D,sBAAA,SAAsBC,GAAuBvD,KAAKoD,mBAAqBG,qBAIvE,SAAAC,EAAoBC,GAAAzD,KAAAyD,cAAAA,SAEJD,EAAA/D,UAAAiE,iBAAA,SAAiBC,mGACf,MAAA,CAAA,EAAM3D,KAAKyD,cAAcJ,gCAOvC,OAPME,EAAQK,EAAAhC,OAEV+B,EAAQE,QADC,MAATN,EACmBI,EAAQE,QAAwBC,OAAO,gBAAiB,UAAYP,GAEpEI,EAAQE,QAAwBC,OAAO,YAAa9D,KAAKyD,cAAcN,QAG9F,CAAA,EAAOQ,WAGDH,EAAA/D,UAAAsE,WAAA,SAAWC,GACjB,OAAOhE,KAAKyD,cAAcQ,QAGpBT,EAAA/D,UAAAyE,gBAAA,SAAgBC,EAAaC,EAAuBC,GAC1D,OAAOA,EAAGD,uBAyBd,SAAAE,EAA4Cb,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARrDnE,EAAA0E,EAAAI,GAepCJ,EAAA7E,UAAAoF,SAAA,WAAA,IAAAJ,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0BAC1BM,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkB,gBAAqBD,UAC9EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkB,gBAAqBD,MAChF,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrDuD,EAAA7E,UAAAkG,gBAAA,SAAgBI,WAChBC,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAOpCvC,EAAA7E,UAAAsH,QAAA,WAAA,IAAAtC,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0BAC1BM,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,UAC7EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAwCC,EAAAA,WAAiBL,GANzD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwC,eAAoBvB,MAC/E,MAAO3E,GACL,OAAwC+E,EAAAA,WAAiB/E,SAO/DuD,EAAA7E,UAAAwH,eAAA,SAAelB,WAAftB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFkC,EAAAA,GAAcK,OAEH,MAAXlB,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAmC,UA/GVrD,0KAHvC6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAxDfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAwDqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BAqK7I,SAAA6E,EAA4CpE,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARnCnE,EAAAiI,EAAAnD,GA8BtDmD,EAAApI,UAAAqI,OAAA,SAAOC,EAAsBC,EAA8CC,EAAoDC,EAAuCC,EAA2CC,EAAsCC,EAAkCC,EAAkCC,EAAqCC,EAAoCC,EAAiCC,EAAoCC,EAA0CC,GAAnf,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIc,MAAM,oEAWpB,GATI/D,GAAQ,gBAAkBgE,mBAAmB,GAAKf,GAAgB,IAClEC,MAAAA,IACAlD,GAAQ,oBAAsBgE,mBAAmB,GAAKd,GAAoB,KAC1EC,MAAAA,IACAnD,GAAQ,0BAA4BgE,mBAAmB,GAAKb,GAA0B,KACtFC,MAAAA,IACApD,GAAQ,aAAegE,mBAAmB,GAAKZ,GAAa,KAC5DC,MAAAA,IACArD,GAAQ,iBAAmBgE,mBAAmB,GAAKX,GAAiB,KAChD,OAApBC,EACA,MAAM,IAAIS,MAAM,wDACSjE,IAApBwD,IACLtD,GAAQ,mBAAqBgE,mBAAmB,GAAKV,GAAmB,KACxEC,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDC,MAAAA,IACAzD,GAAQ,WAAagE,mBAAmB,GAAKP,GAAW,KACxDC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDC,MAAAA,GACAA,GAAQA,EAAKK,SAAQ,SAAAC,GAAUlE,GAAQ,QAAUgE,mBAAmB,GAAKE,GAAQ,OACjFL,MAAAA,IACA7D,GAAQ,gBAAkBgE,mBAAmB,GAAKH,GAAgB,KAClEC,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,MAC9E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3E8G,EAAApI,UAAAwJ,cAAA,SAAclD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,OAU1DgB,EAAApI,UAAAS,OAAA,SAAO6H,EAAsBa,EAAsCtH,GAAnE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yCAC1B,GAAIuD,MAAAA,EACA,MAAM,IAAIc,MAAM,oEAEhB/D,GAAQ,gBAAkBgE,mBAAmB,GAAKf,GAAgB,IAClEa,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,MAC9E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAA4J,cAAA,SAActD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI0C,EAEJ,OADAA,EAA8B,KAAlB1C,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcyC,OAEH,MAAXtD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA4CO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvGmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAUnDgB,EAAApI,UAAAiH,IAAA,SAAI8C,EAA0BzB,EAAsBa,GAApD,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,qDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIX,MAAM,8CAEpB,GADA/D,EAAOA,EAAKC,QAAQ,cAAe+D,mBAAmB,GAAKU,IACvDzB,MAAAA,EACA,MAAM,IAAIc,MAAM,oEAEhB/D,GAAQ,gBAAkBgE,mBAAmB,GAAKf,GAAgB,IAClEa,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,MAC3E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAAgK,WAAA,SAAW1D,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OAUnDgB,EAAApI,UAAAiK,OAAA,SAAOF,EAA0BzB,EAAsBa,GAAvD,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,qDAC1B,GAAIgF,MAAAA,EACA,MAAM,IAAIX,MAAM,8CAEpB,GADA/D,EAAOA,EAAKC,QAAQ,cAAe+D,mBAAmB,GAAKU,IACvDzB,MAAAA,EACA,MAAM,IAAIc,MAAM,oEAEhB/D,GAAQ,gBAAkBgE,mBAAmB,GAAKf,GAAgB,IAClEa,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,MAC9E,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpE8G,EAAApI,UAAAkK,cAAA,SAAc5D,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,UA1XGrD,0KAHzD6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA7NfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA6NqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BAqoB7I,SAAA4G,EAA4CnG,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aAR5CnE,EAAAgK,EAAAlF,GAuB7CkF,EAAAnK,UAAAoK,eAAA,SAAexB,EAAkCC,EAAkCC,EAAqCC,EAAoCC,EAAiCC,EAAoCC,EAA0CC,GAA3Q,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+BACtB6D,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDC,MAAAA,IACAzD,GAAQ,WAAagE,mBAAmB,GAAKP,GAAW,KACxDC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDC,MAAAA,GACAA,GAAQA,EAAKK,SAAQ,SAAAC,GAAUlE,GAAQ,QAAUgE,mBAAmB,GAAKE,GAAQ,OACjFL,MAAAA,IACA7D,GAAQ,gBAAkBgE,mBAAmB,GAAKH,GAAgB,KAClEC,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqF,sBAA2BpE,UACpFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqF,sBAA2BpE,MACtF,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE6I,EAAAnK,UAAAqK,sBAAA,SAAsB/D,WAAtBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OASjD+C,EAAAnK,UAAAsK,cAAA,SAAcnB,EAAsCtH,GAApD,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+BACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuF,qBAA0BtE,UACnFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoCC,EAAAA,WAAiBL,GANrD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKuF,qBAA0BtE,MACrF,MAAO3E,GACL,OAAoC+E,EAAAA,WAAiB/E,SAO3D6I,EAAAnK,UAAAuK,qBAAA,SAAqBjE,WAArBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9EkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+B,OAU1C+C,EAAAnK,UAAAwK,WAAA,SAAWC,EAAYC,EAA8CvB,GAArE,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1EvB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2F,kBAAuB1E,UAChFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoCC,EAAAA,WAAiBL,GANrD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK2F,kBAAuB1E,MAClF,MAAO3E,GACL,OAAoC+E,EAAAA,WAAiB/E,SAO3D6I,EAAAnK,UAAA2K,kBAAA,SAAkBrE,WAAlBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9EkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+B,OAS1C+C,EAAAnK,UAAA4K,cAAA,SAAcH,EAAYtB,GAA1B,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6F,qBAA0B5E,UACnFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6F,qBAA0B5E,MACrF,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA6K,qBAAA,SAAqBvE,WAArBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA8K,kBAAA,SAAkBL,EAAYC,EAA8CvB,GAA5E,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,4CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1EvB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+F,yBAA8B9E,UACvFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+F,yBAA8B9E,MACzF,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxE6I,EAAAnK,UAAA+K,yBAAA,SAAyBzE,WAAzBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OAUvD+C,EAAAnK,UAAAgL,kBAAA,SAAkBP,EAAYtB,EAAsCtH,GAApE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,4CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiG,yBAA8BhF,UACvFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiG,yBAA8BhF,MACzF,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxE6I,EAAAnK,UAAAiL,yBAAA,SAAyB3E,WAAzBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OAgBvD+C,EAAAnK,UAAAkL,mBAAA,SAAmBT,EAAYC,EAA8C9B,EAAkCC,EAAkC3E,EAAqCiH,EAA6CC,EAAgDpC,EAAiCG,GAApT,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1E9B,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClD3E,MAAAA,IACAmB,GAAQ,WAAagE,mBAAmB,GAAKnF,GAAW,KACxDiH,MAAAA,IACA9F,GAAQ,mBAAqBgE,mBAAmB,GAAK8B,GAAmB,KACxEC,MAAAA,IACA/F,GAAQ,qBAAuBgE,mBAAmB,GAAK+B,GAAqB,KAC5EpC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDG,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqG,0BAA+BpF,UACxFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKqG,0BAA+BpF,MAC1F,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzE6I,EAAAnK,UAAAqL,0BAAA,SAA0B/E,WAA1BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OAWxD+C,EAAAnK,UAAAsL,kBAAA,SAAkBb,EAAYc,EAA0Bb,EAA8CvB,GAAtG,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gEAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCAEpB,GADA/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDc,MAAAA,EACA,MAAM,IAAInC,MAAM,qDACpB/D,EAAOA,EAAKC,QAAQ,qBAAsB+D,mBAAmB,GAAKkC,IAC9Db,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1EvB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwG,yBAA8BvF,UACvFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwG,yBAA8BvF,MACzF,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE6I,EAAAnK,UAAAwL,yBAAA,SAAyBlF,WAAzBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjD+C,EAAAnK,UAAAyL,8BAAA,SAA8BhB,EAAYC,EAA8CvB,GAAxF,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6DAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1EvB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0G,qCAA0CzF,UACnGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0G,qCAA0CzF,MACrG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA0L,qCAAA,SAAqCpF,WAArCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OASpC+C,EAAAnK,UAAA2L,gCAAA,SAAgClB,EAAYtB,GAA5C,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+DAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4G,uCAA4C3F,UACrGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4G,uCAA4C3F,MACvG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA4L,uCAAA,SAAuCtF,WAAvCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAoBpC+C,EAAAnK,UAAA6L,yBAAA,SAAyBpB,EAAYC,EAA8Ca,EAA8CxC,EAAoC+C,EAAgDC,EAAwCnD,EAAkCC,EAAkC3E,EAAqCiH,EAA6CC,EAAgDpC,EAAiCG,GAApe,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1Ea,MAAAA,IACAlG,GAAQ,oBAAsBgE,mBAAmB,GAAKkC,GAAoB,KAC1ExC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtD+C,MAAAA,IACAzG,GAAQ,sBAAwBgE,mBAAmB,GAAKyC,GAAsB,KAC9EC,MAAAA,IACA1G,GAAQ,cAAgBgE,mBAAmB,GAAK0C,GAAc,KAC9DnD,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClD3E,MAAAA,IACAmB,GAAQ,WAAagE,mBAAmB,GAAKnF,GAAW,KACxDiH,MAAAA,IACA9F,GAAQ,mBAAqBgE,mBAAmB,GAAK8B,GAAmB,KACxEC,MAAAA,IACA/F,GAAQ,qBAAuBgE,mBAAmB,GAAK+B,GAAqB,KAC5EpC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDG,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgH,gCAAqC/F,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAwDC,EAAAA,WAAiBL,GANzE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgH,gCAAqC/F,MAChG,MAAO3E,GACL,OAAwD+E,EAAAA,WAAiB/E,SAO/E6I,EAAAnK,UAAAgM,gCAAA,SAAgC1F,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAuCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAmD,OAoB9D+C,EAAAnK,UAAAiM,yBAAA,SAAyBxB,EAAYC,EAA8Ca,EAA8CxC,EAAoCmD,EAAgDC,EAAwCvD,EAAkCC,EAAkC3E,EAAqCiH,EAA6CC,EAAgDpC,EAAiCG,GAApe,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1Ea,MAAAA,IACAlG,GAAQ,oBAAsBgE,mBAAmB,GAAKkC,GAAoB,KAC1ExC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDmD,MAAAA,IACA7G,GAAQ,sBAAwBgE,mBAAmB,GAAK6C,GAAsB,KAC9EC,MAAAA,IACA9G,GAAQ,cAAgBgE,mBAAmB,GAAK8C,GAAc,KAC9DvD,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClD3E,MAAAA,IACAmB,GAAQ,WAAagE,mBAAmB,GAAKnF,GAAW,KACxDiH,MAAAA,IACA9F,GAAQ,mBAAqBgE,mBAAmB,GAAK8B,GAAmB,KACxEC,MAAAA,IACA/F,GAAQ,qBAAuBgE,mBAAmB,GAAK+B,GAAqB,KAC5EpC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDG,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoH,gCAAqCnG,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAwDC,EAAAA,WAAiBL,GANzE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoH,gCAAqCnG,MAChG,MAAO3E,GACL,OAAwD+E,EAAAA,WAAiB/E,SAO/E6I,EAAAnK,UAAAoM,gCAAA,SAAgC9F,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAuCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAmD,OAoB9D+C,EAAAnK,UAAAqM,2BAAA,SAA2B5B,EAAYC,EAA8Ca,EAA8CxC,EAAoCuD,EAAkDC,EAA0C3D,EAAkCC,EAAkC3E,EAAqCiH,EAA6CC,EAAgDpC,EAAiCG,GAA1e,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,sDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1Ea,MAAAA,IACAlG,GAAQ,oBAAsBgE,mBAAmB,GAAKkC,GAAoB,KAC1ExC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDuD,MAAAA,IACAjH,GAAQ,wBAA0BgE,mBAAmB,GAAKiD,GAAwB,KAClFC,MAAAA,IACAlH,GAAQ,gBAAkBgE,mBAAmB,GAAKkD,GAAgB,KAClE3D,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClD3E,MAAAA,IACAmB,GAAQ,WAAagE,mBAAmB,GAAKnF,GAAW,KACxDiH,MAAAA,IACA9F,GAAQ,mBAAqBgE,mBAAmB,GAAK8B,GAAmB,KACxEC,MAAAA,IACA/F,GAAQ,qBAAuBgE,mBAAmB,GAAK+B,GAAqB,KAC5EpC,MAAAA,IACA3D,GAAQ,OAASgE,mBAAmB,GAAKL,GAAO,KAChDG,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwH,kCAAuCvG,UAChGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0DC,EAAAA,WAAiBL,GAN3E,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwH,kCAAuCvG,MAClG,MAAO3E,GACL,OAA0D+E,EAAAA,WAAiB/E,SAOjF6I,EAAAnK,UAAAwM,kCAAA,SAAkClG,WAAlCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyCO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqD,OAUhE+C,EAAAnK,UAAAyM,uBAAA,SAAuBhC,EAAYtB,EAAsCtH,GAAzE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,sDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0H,8BAAmCzG,UAC5FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0H,8BAAmCzG,MAC9F,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA0M,8BAAA,SAA8BpG,WAA9BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA4M,wBAAA,SAAwBnC,EAAYtB,EAAsCtH,GAA1E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6H,+BAAoC5G,UAC7FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6H,+BAAoC5G,MAC/F,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA6M,+BAAA,SAA+BvG,WAA/BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA8M,8BAAA,SAA8BrC,EAAYtB,EAAsCtH,GAAhF,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6DAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+H,qCAA0C9G,UACnGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK+H,qCAA0C9G,MACrG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA+M,qCAAA,SAAqCzG,WAArCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAAgN,qBAAA,SAAqBvC,EAAYtB,EAAsCtH,GAAvE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,oDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiI,4BAAiChH,UAC1FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKiI,4BAAiChH,MAC5F,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAAiN,4BAAA,SAA4B3G,WAA5BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OASpC+C,EAAAnK,UAAAkN,eAAA,SAAe/D,EAAsCgE,GAArD,IAAAnI,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,sCACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAM8H,EAAW,IAAIC,SACjBF,MAAAA,GACAC,EAAS/I,OAAO,OAAQ8I,EAAKG,KAAMH,EAAKI,SAAWJ,EAAKI,SAAW,QAEvE,IAAIhI,EAAiB,CACjB1D,KAAMuL,EACN5H,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwI,sBAA2BvH,UACpFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2CC,EAAAA,WAAiBL,GAN5D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwI,sBAA2BvH,MACtF,MAAO3E,GACL,OAA2C+E,EAAAA,WAAiB/E,SAOlE6I,EAAAnK,UAAAwN,sBAAA,SAAsBlH,WAAtBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsC,OAUjD+C,EAAAnK,UAAAyN,yBAAA,SAAyBhD,EAAYtB,EAAsCtH,GAA3E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0I,gCAAqCzH,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0I,gCAAqCzH,MAChG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA0N,gCAAA,SAAgCpH,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA2N,yBAAA,SAAyBlD,EAAYtB,EAAsCtH,GAA3E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4I,gCAAqC3H,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4I,gCAAqC3H,MAChG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA4N,gCAAA,SAAgCtH,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA6N,yBAAA,SAAyBpD,EAAYtB,EAAsCtH,GAA3E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK8I,gCAAqC7H,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK8I,gCAAqC7H,MAChG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAA8N,gCAAA,SAAgCxH,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAA+N,yBAAA,SAAyBtD,EAAYtB,EAAsCtH,GAA3E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgJ,gCAAqC/H,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgJ,gCAAqC/H,MAChG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAAgO,gCAAA,SAAgC1H,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAAiO,2BAAA,SAA2BxD,EAAYtB,EAAsCtH,GAA7E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkJ,kCAAuCjI,UAChGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkJ,kCAAuCjI,MAClG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAAkO,kCAAA,SAAkC5H,WAAlCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAUpC+C,EAAAnK,UAAAmO,2BAAA,SAA2B1D,EAAYtB,EAAsCtH,GAA7E,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,sBAIxB,OAAOhE,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoJ,kCAAuCnI,UAChGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoJ,kCAAuCnI,MAClG,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAAoO,kCAAA,SAAkC9H,WAAlCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAWpC+C,EAAAnK,UAAAqO,gBAAA,SAAgB5D,EAAYC,EAA8CvB,EAAsCgE,GAAhH,IAAAnI,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,8CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDC,MAAAA,IACArF,GAAQ,oBAAsBgE,mBAAmB,GAAKqB,GAAoB,KAC1EvB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAM8H,EAAW,IAAIC,SACjBF,MAAAA,GACAC,EAAS/I,OAAO,OAAQ8I,EAAKG,KAAMH,EAAKI,SAAWJ,EAAKI,SAAW,QAEvE,IAAIhI,EAAiB,CACjB1D,KAAMuL,EACN5H,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKsJ,uBAA4BrI,UACrFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKsJ,uBAA4BrI,MACvF,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD6I,EAAAnK,UAAAsO,uBAAA,SAAuBhI,WAAvBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAWpC+C,EAAAnK,UAAAuO,qCAAA,SAAqC3F,EAAkCC,EAAkCE,EAAoCI,GAA7I,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,mDACtB6D,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDE,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDI,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwJ,4CAAiDvI,UAC1GL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2DC,EAAAA,WAAiBL,GAN5E,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwJ,4CAAiDvI,MAC5G,MAAO3E,GACL,OAA2D+E,EAAAA,WAAiB/E,SAOlF6I,EAAAnK,UAAAwO,4CAAA,SAA4ClI,WAA5CtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0CO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsD,OAWjE+C,EAAAnK,UAAAyO,gCAAA,SAAgC7F,EAAkCC,EAAkCE,EAAoCI,GAAxI,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,mDACtB6D,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDE,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDI,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0J,uCAA4CzI,UACrGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAsDC,EAAAA,WAAiBL,GANvE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0J,uCAA4CzI,MACvG,MAAO3E,GACL,OAAsD+E,EAAAA,WAAiB/E,SAO7E6I,EAAAnK,UAAA0O,uCAAA,SAAuCpI,WAAvCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAqCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAChGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAiD,UAlyEfrD,0KAHhD6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAl2BfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAk2BqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA+0E7I,SAAAoL,EAA4C3K,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARrCnE,EAAAwO,EAAA1J,GAgBpD0J,EAAA3O,UAAAqI,OAAA,SAAOc,GAAP,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,wCACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAiDC,EAAAA,WAAiBL,GANlE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,MAC9E,MAAO3E,GACL,OAAiD+E,EAAAA,WAAiB/E,SAOxEqN,EAAA3O,UAAAwJ,cAAA,SAAclD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAgCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC3FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA4C,OASvDuH,EAAA3O,UAAAS,OAAA,SAAO0I,EAAsCtH,GAA7C,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,wCACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,MAC9E,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjEqN,EAAA3O,UAAA4J,cAAA,SAActD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI0C,EAEJ,OADAA,EAA8B,KAAlB1C,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcyC,OAEH,MAAXtD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,OAShDuH,EAAA3O,UAAAiH,IAAA,SAAIwD,EAAYtB,GAAhB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,MAC3E,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjEqN,EAAA3O,UAAAgK,WAAA,SAAW1D,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,OAUhDuH,EAAA3O,UAAA4O,OAAA,SAAOnE,EAAYtB,EAAsCtH,GAAzD,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6J,cAAmB5I,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6J,cAAmB5I,MAC9E,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjEqN,EAAA3O,UAAA6O,cAAA,SAAcvI,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,OAShDuH,EAAA3O,UAAAiK,OAAA,SAAOQ,EAAYtB,GAAnB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,6CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA0CC,EAAAA,WAAiBL,GAN3D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,MAC9E,MAAO3E,GACL,OAA0C+E,EAAAA,WAAiB/E,SAOjEqN,EAAA3O,UAAAkK,cAAA,SAAc5D,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAyBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACpFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAqC,UA9YIrD,0KAHvD6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAjrGfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAirGqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BA2b7I,SAAAuL,EAA4C9K,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aAR5BnE,EAAA2O,EAAA7J,GAgB7D6J,EAAA9O,UAAAqI,OAAA,SAAOc,GAAP,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,2CACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA2DC,EAAAA,WAAiBL,GAN5E,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,MAC9E,MAAO3E,GACL,OAA2D+E,EAAAA,WAAiB/E,SAOlFwN,EAAA9O,UAAAwJ,cAAA,SAAclD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA0CO,KAAKC,MAAMR,EAAenC,EAAKE,kBACrGkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAsD,OASjE0H,EAAA9O,UAAAiH,IAAA,SAAIwD,EAAYtB,GAAhB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,MAC3E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3EwN,EAAA9O,UAAAgK,WAAA,SAAW1D,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,OAU1D0H,EAAA9O,UAAA4O,OAAA,SAAOnE,EAAYtB,EAAsCtH,GAAzD,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6J,cAAmB5I,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK6J,cAAmB5I,MAC9E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3EwN,EAAA9O,UAAA6O,cAAA,SAAcvI,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,OAS1D0H,EAAA9O,UAAAiK,OAAA,SAAOQ,EAAYtB,GAAnB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,gDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,MAC9E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3EwN,EAAA9O,UAAAkK,cAAA,SAAc5D,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,OAS1D0H,EAAA9O,UAAAS,OAAA,SAAO0I,EAAsCtH,GAA7C,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uDACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAoDC,EAAAA,WAAiBL,GANrE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,MAC9E,MAAO3E,GACL,OAAoD+E,EAAAA,WAAiB/E,SAO3EwN,EAAA9O,UAAA4J,cAAA,SAActD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI0C,EAEJ,OADAA,EAA8B,KAAlB1C,EAAuB,KAAmCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC9FkC,EAAAA,GAAcyC,OAEH,MAAXtD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA+C,UAxYGrD,0KAHhE6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA5mHfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA4mHqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,0BAkf7I,SAAAwL,EAA4C/K,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aARzCnE,EAAA4O,EAAA9J,GAsBhD8J,EAAA/O,UAAAqI,OAAA,SAAO2G,EAA6CpG,EAAkCC,EAAkCC,EAAqCC,EAAoCxC,EAA8C4C,GAA/O,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,kCACtBiK,MAAAA,GACAA,GAASA,EAAM1F,SAAQ,SAAAC,GAAUlE,GAAQ,SAAWgE,mBAAmB,GAAKE,GAAQ,OACpFX,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDC,MAAAA,IACAzD,GAAQ,WAAagE,mBAAmB,GAAKP,GAAW,KACxDC,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDxC,MAAAA,IACAlB,GAAQ,UAAYgE,mBAAmB,GAAK9C,GAAU,KACtD4C,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,MAC9E,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrEyN,EAAA/O,UAAAwJ,cAAA,SAAclD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,OASpD2H,EAAA/O,UAAAiH,IAAA,SAAIwD,EAAYtB,GAAhB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,MAC3E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9DyN,EAAA/O,UAAAgK,WAAA,SAAW1D,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,OAS7C2H,EAAA/O,UAAAiK,OAAA,SAAOQ,EAAYtB,GAAnB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,uCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,MAC9E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9DyN,EAAA/O,UAAAkK,cAAA,SAAc5D,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,OAS7C2H,EAAA/O,UAAAiP,uBAAA,SAAuB9F,EAAsCtH,GAA7D,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,yCACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkK,8BAAmCjJ,UAC5FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkK,8BAAmCjJ,MAC9F,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpEyN,EAAA/O,UAAAkP,8BAAA,SAA8B5I,WAA9BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OASnD2H,EAAA/O,UAAAmP,oBAAA,SAAoB1E,EAAYtB,GAAhC,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,8CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoK,2BAAgCnJ,UACzFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA6CC,EAAAA,WAAiBL,GAN9D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoK,2BAAgCnJ,MAC3F,MAAO3E,GACL,OAA6C+E,EAAAA,WAAiB/E,SAOpEyN,EAAA/O,UAAAoP,2BAAA,SAA2B9I,WAA3BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA4BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACvFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAwC,OASnD2H,EAAA/O,UAAAqP,4BAAA,SAA4BlG,EAAsCtH,GAAlE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,8CACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKsK,mCAAwCrJ,UACjGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKsK,mCAAwCrJ,MACnG,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzEyN,EAAA/O,UAAAsP,mCAAA,SAAmChJ,WAAnCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OASxD2H,EAAA/O,UAAAuP,yBAAA,SAAyB9E,EAAYtB,GAArC,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,mDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwK,gCAAqCvJ,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwK,gCAAqCvJ,MAChG,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzEyN,EAAA/O,UAAAwP,gCAAA,SAAgClJ,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OASxD2H,EAAA/O,UAAAyP,4BAAA,SAA4BtG,EAAsCtH,GAAlE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,8CACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0K,mCAAwCzJ,UACjGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK0K,mCAAwCzJ,MACnG,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzEyN,EAAA/O,UAAA0P,mCAAA,SAAmCpJ,WAAnCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OASxD2H,EAAA/O,UAAA2P,yBAAA,SAAyBlF,EAAYtB,GAArC,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,mDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4K,gCAAqC3J,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4K,gCAAqC3J,MAChG,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzEyN,EAAA/O,UAAA4P,gCAAA,SAAgCtJ,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OASxD2H,EAAA/O,UAAA6P,wBAAA,SAAwB1G,EAAsCtH,GAA9D,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,0CACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK8K,+BAAoC7J,UAC7FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK8K,+BAAoC7J,MAC/F,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrEyN,EAAA/O,UAAA8P,+BAAA,SAA+BxJ,WAA/BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,OASpD2H,EAAA/O,UAAA+P,qBAAA,SAAqBtF,EAAYtB,GAAjC,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,+CAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgL,4BAAiC/J,UAC1FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgL,4BAAiC/J,MAC5F,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrEyN,EAAA/O,UAAAgQ,4BAAA,SAA4B1J,WAA5BtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,OASpD2H,EAAA/O,UAAAiQ,4BAAA,SAA4B9G,EAAsCtH,GAAlE,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,8CACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkL,mCAAwCjK,UACjGL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkL,mCAAwCjK,MACnG,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzEyN,EAAA/O,UAAAkQ,mCAAA,SAAmC5J,WAAnCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIwF,EAEJ,OADAA,EAA8B,KAAlBxF,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,cAAed,EAAQY,EAAeP,EAAU+F,OAEpD,MAAXpG,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,OASxD2H,EAAA/O,UAAAmQ,yBAAA,SAAyB1F,EAAYtB,GAArC,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,mDAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoL,gCAAqCnK,UAC9FL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKoL,gCAAqCnK,MAChG,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrEyN,EAAA/O,UAAAoQ,gCAAA,SAAgC9J,WAAhCtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,UAr/BJrD,0KAHnD6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YA9lIfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KA8lIqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,YA05CrI8M,EAwCAC,EAgKAC,EAOAC,EAuMAC,EA6EAC,EAOAC,EA+KAC,EAmDAC,EAoIAC,EAcAC,gBAptCR,SAAAC,EAA4ChN,EAA2Dc,EAAoDC,GAA3J,IAAAC,EACIC,EAAA/E,KAAAK,KAAMyD,IAAczD,YAHdyE,EAAAE,sBAAmEC,EAIzEH,EAAKF,KAAOA,EACZE,EAAKD,QAAUA,MAAAA,EAA4CA,EAAUC,EAAKV,WAAW,aAR/CnE,EAAA6Q,EAAA/L,GAgB1C+L,EAAAhR,UAAAqI,OAAA,SAAOc,GAAP,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,4BACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8CC,EAAAA,WAAiBL,GAN/D,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKwE,cAAmBvD,MAC9E,MAAO3E,GACL,OAA8C+E,EAAAA,WAAiB/E,SAOrE0P,EAAAhR,UAAAwJ,cAAA,SAAclD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAA6BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACxFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyC,OASpD4J,EAAAhR,UAAAS,OAAA,SAAO0I,EAAsCtH,GAA7C,IAAAmD,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,4BACtBoE,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAEIC,EAAiB,CACjB1D,KAHa6F,KAAKgC,UAAU7H,GAI5B2D,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrBiE,eAAgB,mBAChBpC,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,OAAQV,EAAMS,OACvCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAK4E,cAAmB3D,MAC9E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9D0P,EAAAhR,UAAA4J,cAAA,SAActD,WAAdtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIsC,EAEJ,OADAA,EAA8B,KAAlBtC,EAAuB,KAA2BO,KAAKC,MAAMR,EAAenC,EAAKE,kBACtFmC,EAAe,WAAYd,EAAQY,EAAeP,EAAU6C,OAEjD,MAAXlD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,OAS7C4J,EAAAhR,UAAAiH,IAAA,SAAIwD,EAAYtB,GAAhB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,iCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,UACzEL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAuCC,EAAAA,WAAiBL,GANxD,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKgF,WAAgB/D,MAC3E,MAAO3E,GACL,OAAuC+E,EAAAA,WAAiB/E,SAO9D0P,EAAAhR,UAAAgK,WAAA,SAAW1D,WAAXtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAsBO,KAAKC,MAAMR,EAAenC,EAAKE,kBACjFkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAI2C,EAEJ,OADAA,EAA8B,KAAlB3C,EAAuB,KAAuBO,KAAKC,MAAMR,EAAenC,EAAKE,kBAClFmC,EAAe,YAAad,EAAQY,EAAeP,EAAUkD,OAElD,MAAXvD,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAkC,OAS7C4J,EAAAhR,UAAAiK,OAAA,SAAOQ,EAAYtB,GAAnB,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,iCAC1B,GAAI0F,MAAAA,EACA,MAAM,IAAIrB,MAAM,uCACpB/D,EAAOA,EAAKC,QAAQ,OAAQ+D,mBAAmB,GAAKoB,IAChDtB,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,KAI7B,OAAOC,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,SAAUV,EAAMS,OACzCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,UAC5EL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAA8BC,EAAAA,WAAiBL,GAN/C,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkF,cAAmBjE,MAC9E,MAAO3E,GACL,OAA8B+E,EAAAA,WAAiB/E,SAOrD0P,EAAAhR,UAAAkK,cAAA,SAAc5D,WACdC,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOC,EAAAA,GAAyB,UAEd,MAAXb,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAAyB,OAYpC4J,EAAAhR,UAAAiR,YAAA,SAAYlI,EAAoCH,EAAkCC,EAAkCC,EAAqCK,GAAzJ,IAAAnE,EAAAzE,KACQ8E,EAAO9E,KAAKwE,QAAU,kCACtBgE,MAAAA,IACA1D,GAAQ,UAAYgE,mBAAmB,GAAKN,GAAU,KACtDH,MAAAA,IACAvD,GAAQ,QAAUgE,mBAAmB,GAAKT,GAAQ,KAClDC,MAAAA,IACAxD,GAAQ,QAAUgE,mBAAmB,GAAKR,GAAQ,KAClDC,MAAAA,IACAzD,GAAQ,WAAagE,mBAAmB,GAAKP,GAAW,KACxDK,MAAAA,IACA9D,GAAQ,YAAcgE,mBAAmB,GAAKF,GAAY,KAC9D9D,EAAOA,EAAKC,QAAQ,QAAS,IAE7B,IAAIC,EAAiB,CACjBC,QAAS,WACTC,aAAc,OACdrB,QAAS,IAAIsB,EAAAA,YAAY,CACrB6B,OAAU,sBAIlB,OAAO5B,EAAAA,KAAgBpF,KAAK0D,iBAAiBsB,IAAWK,KAAKC,EAAAA,UAAoB,SAAAC,GAC7E,OAAOd,EAAKF,KAAKiB,QAAQ,MAAOV,EAAMS,OACtCF,KAAKC,EAAAA,UAAoB,SAACG,GAC1B,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkM,mBAAwBjL,UACjFL,KAAKO,EAAAA,YAAiB,SAACH,GACvB,KAAIA,aAAqBI,EAAAA,kBAOrB,OAAkDC,EAAAA,WAAiBL,GANnE,IACI,OAAOhB,EAAKP,gBAAgBY,EAAMW,GAAW,SAACC,GAAM,OAAAjB,EAAKkM,mBAAwBjL,MACnF,MAAO3E,GACL,OAAkD+E,EAAAA,WAAiB/E,SAOzE0P,EAAAhR,UAAAkR,mBAAA,SAAmB5K,WAAnBtB,EAAAzE,KACAgG,EAASD,EAASC,OAClBC,EACFF,aAAoBG,EAAAA,aAAeH,EAASzE,KACtCyE,EAAUI,iBAAiBC,KAAaL,EAAUI,WAAQvB,EAEhEyB,EAAgB,GAAI,GAAIN,EAASlC,YAAW,IAAgB,IAAAyC,EAAA5D,EAAAqD,EAASlC,QAAQ0C,QAAMC,EAAAF,EAAAxF,QAAA0F,EAAAtF,KAAAsF,EAAAF,EAAAxF,OAAE,CAApC,IAAI2F,EAAGD,EAAA5F,MAA+ByF,EAASI,GAAOV,EAASlC,QAAQ6C,IAAID,qGAChI,OAAe,MAAXT,EACOW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,IAAIM,EAEJ,OADAA,EAA8B,KAAlBN,EAAuB,KAAiCO,KAAKC,MAAMR,EAAenC,EAAKE,kBAC5FkC,EAAAA,GAAcK,OAEH,MAAXlB,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,eAAgBd,EAAQY,EAAeP,OAE3C,MAAXL,EACAW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,YAAad,EAAQY,EAAeP,OAExC,MAAXL,GAA6B,MAAXA,EAClBW,EAAWV,GAAcZ,KAAKC,EAAAA,UAAoB,SAAAsB,GACzD,OAAOE,EAAe,uCAAwCd,EAAQY,EAAeP,OAGlFQ,EAAAA,GAA6C,UA1WdrD,0KAH7C6D,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,oDAO+CrE,EAAsBsE,WAAA,CAAA,CAAAC,KAApEC,EAAAA,OAAMJ,KAAA,CAACpE,YAloKfyE,EAAAA,WAAUH,WAAA,CAAA,CAAAC,KAkoKqEC,EAAAA,OAAMJ,KAAA,CAACK,EAAAA,8CAA+BC,EAAAA,UAAQ,CAAAH,KAAIC,EAAAA,OAAMJ,KAAA,CAACtE,SAsXrI8M,EAAAA,EAAAA,uBAAAA,EAAAA,qBAAoB,KAC5B,qBAAA,uBACAA,EAAA,QAAA,UACAA,EAAA,YAAA,cACAA,EAAA,cAAA,iBAoCQC,EAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACpB,aAAA,eACAA,EAAA,wBAAA,0BACAA,EAAA,WAAA,aACAA,EAAA,gBAAA,mBA4JQC,EAAAA,EAAAA,aAAAA,EAAAA,WAAU,KAClB,OAAA,SACAA,EAAA,KAAA,OACAA,EAAA,UAAA,aAIQC,EAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC1B,MAAA,QACAA,EAAA,SAAA,WACAA,EAAA,MAAA,QACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,UAAA,aAgMQC,EAAAA,EAAAA,6BAAAA,EAAAA,2BAA0B,KAClC,QAAA,UACAA,EAAA,YAAA,cACAA,EAAA,OAAA,UA0EQC,EAAAA,EAAAA,2BAAAA,EAAAA,yBAAwB,KAChC,UAAA,YACAA,EAAA,OAAA,SACAA,EAAA,QAAA,WAIQC,EAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KACxB,WAAA,aACAA,EAAA,OAAA,SACAA,EAAA,IAAA,OA4KQC,EAAAA,EAAAA,oBAAAA,EAAAA,kBAAiB,KACzB,UAAA,YACAA,EAAA,OAAA,SACAA,EAAA,QAAA,WAgDQC,EAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACpB,YAAA,cACAA,EAAA,aAAA,eACAA,EAAA,aAAA,eACAA,EAAA,iBAAA,oBAgIQC,EAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACtB,OAAA,SACAA,EAAA,cAAA,gBACAA,EAAA,cAAA,gBACAA,EAAA,WAAA,aACAA,EAAA,YAAA,cACAA,EAAA,YAAA,cACAA,EAAA,QAAA,UACAA,EAAA,YAAA,cACAA,EAAA,QAAA,UACAA,EAAA,cAAA,iBAIQC,EAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KACxB,IAAA,MACAA,EAAA,KAAA,yBA2WA,SAAAI,EAAYC,EAAiB7K,EAAgBD,EAAkBlC,EAAkC5C,GAAjG,IAAAwD,EACIC,EAAA/E,KAAAK,OAAOA,YASDyE,EAAAqM,gBAAiB,EAPvBrM,EAAKoM,QAAUA,EACfpM,EAAKuB,OAASA,EACdvB,EAAKsB,SAAWA,EAChBtB,EAAKZ,QAAUA,EACfY,EAAKxD,OAASA,WAdYrB,EAAAgR,EAAAlM,GAmBvBkM,EAAAE,eAAP,SAAsBC,GAClB,OAA8B,IAAvBA,EAAID,mBApBejI,OAwBlC,SAAS/B,EAAe+J,EAAiB7K,EAAgBD,EAAkBlC,EAAkC5C,GACzG,OAAO6E,EAAAA,WAAiB,IAAI8K,EAAaC,EAAS7K,EAAQD,EAAUlC,EAAS5C,IAGjF,SAAS0F,EAAWqK,GAChB,OAAO,IAAIC,EAAAA,YAAmB,SAACC,GAC3B,GAAKF,EAGE,CACH,IAAIG,EAAS,IAAIC,WACjBD,EAAOE,OAAS,SAAAC,GACZJ,EAASpQ,KAAWwQ,EAAMC,OAAQtQ,QAClCiQ,EAASM,YAEbL,EAAOM,WAAWT,QARlBE,EAASpQ,KAAK,IACdoQ,EAASM,uBCpuNLE,EAA6BnO,EAAeU,EAAgBd,QAAA,IAAAA,IAAAA,EAAA,UAC1E,IAAMwO,EAAU,IAAIC,EAIpB,OAHAD,EAAQxO,OAASA,EACjBwO,EAAQ1N,OAASA,EACjB0N,EAAQrO,sBAAsBC,GACvBoO,mBAST,SAAAE,YACSA,EAAAC,QAAP,SAAevO,EAAeU,EAAgBd,GAC5C,YAD4C,IAAAA,IAAAA,EAAA,UACrC,CACL4O,SAAUF,EACVG,UAAW,CACT,CACEC,QAASC,EACTC,SAAUlO,GAEZ,CACEgO,QAASL,EACTQ,WAAYV,EAA6BW,KAAKrS,KAAMuD,EAAQU,EAAQd,gCAjB7EmP,EAAAA,SAAQhL,KAAA,CAAC,CACRiL,aAAc,GACdC,QAAS,GAETC,QAAS","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v13.15.5.0 (NJsonSchema v10.6.6.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\nimport { Observable, from as _observableFrom, throwError as _observableThrow, of as _observableOf } from 'rxjs';\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\n\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\n\nexport class ApiClientConfiguration {\n apiUrl: string;\n apiKey: string = 'ApiKey';\n private authorizationToken: string = null;\n async getAuthorizationToken(): Promise<string> { return this.authorizationToken; };\n setAuthorizationToken(token: string): void { this.authorizationToken = token; };\n}\n\nexport class ApiClientBase {\n constructor(private configuration: ApiClientConfiguration) { }\n\n protected async transformOptions(options: any): Promise<any> {\n const token = await this.configuration.getAuthorizationToken();\n if (token != null) {\n options.headers = (options.headers as HttpHeaders).append(\"authorization\", \"Bearer \" + token);\n } else {\n options.headers = (options.headers as HttpHeaders).append(\"X-API-Key\", this.configuration.apiKey);\n }\n //options = { ...options, transformResponse: (res) => res, responseType: 'json' };\n return options;\n }\n\n protected getBaseUrl(defultUrl: string) {\n return this.configuration.apiUrl;\n }\n\n protected transformResult(url: string, res: HttpResponseBase, cb: (res: HttpResponseBase) => Observable<any>): Observable<any> {\n return cb(res);\n }\n}\n\nexport interface IBuildInfoApiClient {\n /**\n * Returns assembly build info.\n * @return Success\n */\n headInfo(): Observable<void>;\n /**\n * Returns assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildInfoApiClient extends ApiClientBase implements IBuildInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns assembly build info.\n * @return Success\n */\n headInfo(): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"head\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processHeadInfo(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<BuildInfoModel>><any>_observableThrow(e);\n }\n } else\n return <Observable<BuildInfoModel>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<BuildInfoModel> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BuildInfoModel>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BuildInfoModel>(<any>null);\n }\n}\n\nexport interface IProductReferencesManagementApiClient {\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter.\n Product reference is an external reference to Customer's Canvas product, e.g online store product identifier.\n * @param productSpecificationId (optional) Customer's Canvas product specification filter.\n * @param productId (optional) Customer's Canvas product filter.\n * @param productLinkId (optional) Customer's Canvas product link filter.\n * @param productBundleId (optional) Customer's Canvas product bundle filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU filter.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, productId?: number | null | undefined, productLinkId?: number | null | undefined, productBundleId?: number | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto>;\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a storefront product reference.\n * @param reference An external reference to Customer's Canvas product, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductReferencesManagementApiClient extends ApiClientBase implements IProductReferencesManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter.\n Product reference is an external reference to Customer's Canvas product, e.g online store product identifier.\n * @param productSpecificationId (optional) Customer's Canvas product specification filter.\n * @param productId (optional) Customer's Canvas product filter.\n * @param productLinkId (optional) Customer's Canvas product link filter.\n * @param productBundleId (optional) Customer's Canvas product bundle filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU filter.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, productId?: number | null | undefined, productLinkId?: number | null | undefined, productBundleId?: number | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (productSpecificationId !== undefined && productSpecificationId !== null)\n url_ += \"productSpecificationId=\" + encodeURIComponent(\"\" + productSpecificationId) + \"&\";\n if (productId !== undefined && productId !== null)\n url_ += \"productId=\" + encodeURIComponent(\"\" + productId) + \"&\";\n if (productLinkId !== undefined && productLinkId !== null)\n url_ += \"productLinkId=\" + encodeURIComponent(\"\" + productLinkId) + \"&\";\n if (productBundleId === null)\n throw new Error(\"The parameter 'productBundleId' cannot be null.\");\n else if (productBundleId !== undefined)\n url_ += \"productBundleId=\" + encodeURIComponent(\"\" + productBundleId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tags !== undefined && tags !== null)\n tags && tags.forEach(item => { url_ += \"tags=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (customFields !== undefined && customFields !== null)\n url_ += \"customFields=\" + encodeURIComponent(\"\" + customFields) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductReferenceDto>(<any>null);\n }\n\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProductReferenceCreationConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a storefront product reference.\n * @param reference An external reference to Customer's Canvas product, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n}\n\nexport interface IProductsManagementApiClient {\n /**\n * Returns all products, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllProducts(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductDto>;\n /**\n * Creates a new product and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product creation parameters.\n * @return Success\n */\n createProduct(tenantId?: number | null | undefined, body?: CreateProductDto | null | undefined): Observable<ProductDto>;\n /**\n * Returns a product by its identifier.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProduct(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductDto>;\n /**\n * Deletes a product by its identifier.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n deleteProduct(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns a list of product options.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductOptions(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductOptionDto>;\n /**\n * Set product options and returns updated options list.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) \n * @return Success\n */\n setProductOptions(id: number, tenantId?: number | null | undefined, body?: SetProductOptionsDto | null | undefined): Observable<PagedOfProductOptionDto>;\n /**\n * Returns a list of product variants.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariants(id: number, productVersionId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDto>;\n /**\n * Returns a product variant.\n * @param id Product identifier.\n * @param productVariantId Product variant identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariant(id: number, productVariantId: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductVariantDto>;\n /**\n * Updates product variant resources.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n updateProductVariantResources(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Validates product variant resources.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n validateProductVariantResources(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns a list of product variant designs.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param designCustomFields (optional) Custom attributes dictionary filter for designs. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param designPath (optional) Path filter for designs. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDesigns(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, designCustomFields?: string | null | undefined, designPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDesignDto>;\n /**\n * Returns a list of product variant mockups.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param mockupCustomFields (optional) Custom attributes dictionary filter for mockups. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param mockupPath (optional) Path filter for mockups. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantMockups(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, mockupCustomFields?: string | null | undefined, mockupPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantMockupDto>;\n /**\n * Returns a list of product variant documents.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for document name partial match.\n * @param documentCustomFields (optional) Custom attributes dictionary filter for documents. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param documentPath (optional) Path filter for documents. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDocuments(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, documentCustomFields?: string | null | undefined, documentPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDocumentDto>;\n /**\n * Set product variants price. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants price operation parameters.\n * @return Success\n */\n setProductVariantPrice(id: number, tenantId?: number | null | undefined, body?: SetProductVariantPriceDto | null | undefined): Observable<void>;\n /**\n * Set product variants weight. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants weight operation parameters.\n * @return Success\n */\n setProductVariantWeight(id: number, tenantId?: number | null | undefined, body?: SetProductVariantWeightDto | null | undefined): Observable<void>;\n /**\n * Set product variants availability. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants availability operation parameters.\n * @return Success\n */\n setProductVariantAvailability(id: number, tenantId?: number | null | undefined, body?: SetProductVariantAvailabilityDto | null | undefined): Observable<void>;\n /**\n * Set product variants SKU. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants SKU operation parameters.\n * @return Success\n */\n setProductVariantSku(id: number, tenantId?: number | null | undefined, body?: SetProductVariantSkuDto | null | undefined): Observable<void>;\n /**\n * Imports products from a specific CSV file and returns a list of imported products descriptions.\n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n importProducts(tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<PagedOfProductDto>;\n /**\n * Creates new designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n createDesignsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDesignConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n removeDesignsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDesignConnectionsDto | null | undefined): Observable<void>;\n /**\n * Creates new mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n createMockupsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductMockupConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n removeMockupsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductMockupConnectionsDto | null | undefined): Observable<void>;\n /**\n * Creates new documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n createDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDocumentConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n removeDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDocumentConnectionsDto | null | undefined): Observable<void>;\n /**\n * Set a thumbnail image for an existing product.\n * @param id Product identifier.\n * @param productVersionId (optional) \n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n setProductImage(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<void>;\n /**\n * Returns all available product personalization workflows.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by personalization workflow name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailablePersonalizationWorkflows(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfPersonalizationWorkflowDto>;\n /**\n * Returns all available product processing pipelines.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by processing pipeline name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableProcessingPipelines(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProcessingPipelineDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductsManagementApiClient extends ApiClientBase implements IProductsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all products, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllProducts(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tags !== undefined && tags !== null)\n tags && tags.forEach(item => { url_ += \"tags=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (customFields !== undefined && customFields !== null)\n url_ += \"customFields=\" + encodeURIComponent(\"\" + customFields) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllProducts(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllProducts(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllProducts(response: HttpResponseBase): Observable<PagedOfProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductDto>(<any>null);\n }\n\n /**\n * Creates a new product and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product creation parameters.\n * @return Success\n */\n createProduct(tenantId?: number | null | undefined, body?: CreateProductDto | null | undefined): Observable<ProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateProduct(<any>r));\n } catch (e) {\n return <Observable<ProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateProduct(response: HttpResponseBase): Observable<ProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductDto>(<any>null);\n }\n\n /**\n * Returns a product by its identifier.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProduct(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProduct(<any>r));\n } catch (e) {\n return <Observable<ProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProduct(response: HttpResponseBase): Observable<ProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductDto>(<any>null);\n }\n\n /**\n * Deletes a product by its identifier.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n deleteProduct(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDeleteProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDeleteProduct(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processDeleteProduct(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns a list of product options.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductOptions(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductOptionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/options?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductOptions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductOptions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductOptions(response: HttpResponseBase): Observable<PagedOfProductOptionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductOptionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductOptionDto>(<any>null);\n }\n\n /**\n * Set product options and returns updated options list.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) \n * @return Success\n */\n setProductOptions(id: number, tenantId?: number | null | undefined, body?: SetProductOptionsDto | null | undefined): Observable<PagedOfProductOptionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/options?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductOptions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductOptions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductOptions(response: HttpResponseBase): Observable<PagedOfProductOptionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductOptionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductOptionDto>(<any>null);\n }\n\n /**\n * Returns a list of product variants.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariants(id: number, productVersionId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variants?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariants(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariants(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariants(response: HttpResponseBase): Observable<PagedOfProductVariantDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDto>(<any>null);\n }\n\n /**\n * Returns a product variant.\n * @param id Product identifier.\n * @param productVariantId Product variant identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariant(id: number, productVariantId: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductVariantDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variants/{productVariantId}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVariantId === undefined || productVariantId === null)\n throw new Error(\"The parameter 'productVariantId' must be defined.\");\n url_ = url_.replace(\"{productVariantId}\", encodeURIComponent(\"\" + productVariantId));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariant(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariant(<any>r));\n } catch (e) {\n return <Observable<ProductVariantDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductVariantDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariant(response: HttpResponseBase): Observable<ProductVariantDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductVariantDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductVariantDto>(<any>null);\n }\n\n /**\n * Updates product variant resources.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n updateProductVariantResources(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/update-variant-resources?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdateProductVariantResources(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdateProductVariantResources(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdateProductVariantResources(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Validates product variant resources.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n validateProductVariantResources(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/validate-variant-resources?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processValidateProductVariantResources(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processValidateProductVariantResources(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processValidateProductVariantResources(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns a list of product variant designs.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param designCustomFields (optional) Custom attributes dictionary filter for designs. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param designPath (optional) Path filter for designs. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDesigns(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, designCustomFields?: string | null | undefined, designPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDesignDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-designs?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (designCustomFields !== undefined && designCustomFields !== null)\n url_ += \"designCustomFields=\" + encodeURIComponent(\"\" + designCustomFields) + \"&\";\n if (designPath !== undefined && designPath !== null)\n url_ += \"designPath=\" + encodeURIComponent(\"\" + designPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDesigns(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDesigns(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDesignDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDesignDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantDesigns(response: HttpResponseBase): Observable<PagedOfProductVariantDesignDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDesignDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDesignDto>(<any>null);\n }\n\n /**\n * Returns a list of product variant mockups.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param mockupCustomFields (optional) Custom attributes dictionary filter for mockups. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param mockupPath (optional) Path filter for mockups. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantMockups(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, mockupCustomFields?: string | null | undefined, mockupPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantMockupDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-mockups?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (mockupCustomFields !== undefined && mockupCustomFields !== null)\n url_ += \"mockupCustomFields=\" + encodeURIComponent(\"\" + mockupCustomFields) + \"&\";\n if (mockupPath !== undefined && mockupPath !== null)\n url_ += \"mockupPath=\" + encodeURIComponent(\"\" + mockupPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantMockups(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantMockups(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantMockupDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantMockupDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantMockups(response: HttpResponseBase): Observable<PagedOfProductVariantMockupDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantMockupDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantMockupDto>(<any>null);\n }\n\n /**\n * Returns a list of product variant documents.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for document name partial match.\n * @param documentCustomFields (optional) Custom attributes dictionary filter for documents. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param documentPath (optional) Path filter for documents. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDocuments(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, documentCustomFields?: string | null | undefined, documentPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDocumentDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-documents?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (documentCustomFields !== undefined && documentCustomFields !== null)\n url_ += \"documentCustomFields=\" + encodeURIComponent(\"\" + documentCustomFields) + \"&\";\n if (documentPath !== undefined && documentPath !== null)\n url_ += \"documentPath=\" + encodeURIComponent(\"\" + documentPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDocuments(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDocuments(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDocumentDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDocumentDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantDocuments(response: HttpResponseBase): Observable<PagedOfProductVariantDocumentDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDocumentDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDocumentDto>(<any>null);\n }\n\n /**\n * Set product variants price. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants price operation parameters.\n * @return Success\n */\n setProductVariantPrice(id: number, tenantId?: number | null | undefined, body?: SetProductVariantPriceDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-price?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantPrice(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantPrice(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantPrice(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants weight. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants weight operation parameters.\n * @return Success\n */\n setProductVariantWeight(id: number, tenantId?: number | null | undefined, body?: SetProductVariantWeightDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-weight?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantWeight(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantWeight(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantWeight(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants availability. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants availability operation parameters.\n * @return Success\n */\n setProductVariantAvailability(id: number, tenantId?: number | null | undefined, body?: SetProductVariantAvailabilityDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-availability?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantAvailability(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantAvailability(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantAvailability(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants SKU. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants SKU operation parameters.\n * @return Success\n */\n setProductVariantSku(id: number, tenantId?: number | null | undefined, body?: SetProductVariantSkuDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-sku?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantSku(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantSku(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantSku(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Imports products from a specific CSV file and returns a list of imported products descriptions.\n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n importProducts(tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<PagedOfProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/import?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file !== null && file !== undefined)\n content_.append(\"file\", file.data, file.fileName ? file.fileName : \"file\");\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processImportProducts(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processImportProducts(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processImportProducts(response: HttpResponseBase): Observable<PagedOfProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductDto>(<any>null);\n }\n\n /**\n * Creates new designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n createDesignsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDesignConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/design-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateDesignsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateDesignsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateDesignsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n removeDesignsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDesignConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/design-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveDesignsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveDesignsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveDesignsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Creates new mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n createMockupsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductMockupConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/mockup-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateMockupsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateMockupsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateMockupsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n removeMockupsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductMockupConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/mockup-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveMockupsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveMockupsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveMockupsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Creates new documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n createDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDocumentConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/document-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateDocumentsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateDocumentsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateDocumentsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n removeDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDocumentConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/document-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveDocumentsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveDocumentsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveDocumentsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set a thumbnail image for an existing product.\n * @param id Product identifier.\n * @param productVersionId (optional) \n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n setProductImage(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-image?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file !== null && file !== undefined)\n content_.append(\"file\", file.data, file.fileName ? file.fileName : \"file\");\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductImage(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductImage(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductImage(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns all available product personalization workflows.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by personalization workflow name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailablePersonalizationWorkflows(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfPersonalizationWorkflowDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/available-workflows?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailablePersonalizationWorkflows(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailablePersonalizationWorkflows(<any>r));\n } catch (e) {\n return <Observable<PagedOfPersonalizationWorkflowDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfPersonalizationWorkflowDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailablePersonalizationWorkflows(response: HttpResponseBase): Observable<PagedOfPersonalizationWorkflowDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfPersonalizationWorkflowDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfPersonalizationWorkflowDto>(<any>null);\n }\n\n /**\n * Returns all available product processing pipelines.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by processing pipeline name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableProcessingPipelines(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProcessingPipelineDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/available-pipelines?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableProcessingPipelines(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableProcessingPipelines(<any>r));\n } catch (e) {\n return <Observable<PagedOfProcessingPipelineDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProcessingPipelineDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailableProcessingPipelines(response: HttpResponseBase): Observable<PagedOfProcessingPipelineDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProcessingPipelineDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProcessingPipelineDto>(<any>null);\n }\n}\n\nexport interface IProjectStatusesManagementApiClient {\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto>;\n /**\n * Creates a new project status and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusDto | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Returns a project status by its identifier.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Updates an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusDto | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Deletes an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectStatusesManagementApiClient extends ApiClientBase implements IProjectStatusesManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusDto>(<any>null);\n }\n\n /**\n * Creates a new project status and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusDto | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a project status by its identifier.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Updates an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusDto | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdate(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Deletes an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n}\n\nexport interface IProjectStatusTransitionsManagementApiClient {\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusTransitionDto>;\n /**\n * Returns a project status transition by its identifier.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Updates an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Deletes an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Creates a new project status transition and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectStatusTransitionsManagementApiClient extends ApiClientBase implements IProjectStatusTransitionsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Returns a project status transition by its identifier.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Updates an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdate(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Deletes an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Creates a new project status transition and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n}\n\nexport interface IStorefrontsManagementApiClient {\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param status (optional) Storefront status.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, status?: StorefrontStatus | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto>;\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n /**\n * Deletes an existing storefront by its identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n /**\n * Creates new custom storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Custom storefront creation model.\n * @return Success\n */\n createCustomStorefront(tenantId?: number | null | undefined, body?: CreateCustomStorefrontDto | null | undefined): Observable<CustomStorefrontDto>;\n /**\n * Returns extended information about custom storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getCustomStorefront(id: number, tenantId?: number | null | undefined): Observable<CustomStorefrontDto>;\n /**\n * Creates new NopCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) NopCommerce storefront creation model.\n * @return Success\n */\n createNopCommerceStorefront(tenantId?: number | null | undefined, body?: CreateNopCommerceStorefrontDto | null | undefined): Observable<NopCommerceStorefrontDto>;\n /**\n * Returns extended information about NopCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getNopCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<NopCommerceStorefrontDto>;\n /**\n * Creates new WooCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) WooCommerce storefront creation model.\n * @return Success\n */\n createWooCommerceStorefront(tenantId?: number | null | undefined, body?: CreateWooCommerceStorefrontDto | null | undefined): Observable<WooCommerceStorefrontDto>;\n /**\n * Returns extended information about WooCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getWooCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<WooCommerceStorefrontDto>;\n /**\n * Creates new Magento storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Magento storefront creation model.\n * @return Success\n */\n createMagentoStorefront(tenantId?: number | null | undefined, body?: CreateMagentoStorefrontDto | null | undefined): Observable<MagentoStorefrontDto>;\n /**\n * Returns extended information about Magento storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getMagentoStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto>;\n /**\n * Creates new BigCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) BigCommerce storefront creation model.\n * @return Success\n */\n createBigCommerceStorefront(tenantId?: number | null | undefined, body?: CreateBigCommerceStorefrontDto | null | undefined): Observable<BigCommerceStorefrontDto>;\n /**\n * Returns extended information about BigCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getBigCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontsManagementApiClient extends ApiClientBase implements IStorefrontsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param status (optional) Storefront status.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, status?: StorefrontStatus | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts?\";\n if (types !== undefined && types !== null)\n types && types.forEach(item => { url_ += \"types=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (status !== undefined && status !== null)\n url_ += \"status=\" + encodeURIComponent(\"\" + status) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontDto>(<any>null);\n }\n\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n\n /**\n * Deletes an existing storefront by its identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n\n /**\n * Creates new custom storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Custom storefront creation model.\n * @return Success\n */\n createCustomStorefront(tenantId?: number | null | undefined, body?: CreateCustomStorefrontDto | null | undefined): Observable<CustomStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/custom?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateCustomStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateCustomStorefront(<any>r));\n } catch (e) {\n return <Observable<CustomStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<CustomStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateCustomStorefront(response: HttpResponseBase): Observable<CustomStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <CustomStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<CustomStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about custom storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getCustomStorefront(id: number, tenantId?: number | null | undefined): Observable<CustomStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/custom/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetCustomStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetCustomStorefront(<any>r));\n } catch (e) {\n return <Observable<CustomStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<CustomStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetCustomStorefront(response: HttpResponseBase): Observable<CustomStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <CustomStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<CustomStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new NopCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) NopCommerce storefront creation model.\n * @return Success\n */\n createNopCommerceStorefront(tenantId?: number | null | undefined, body?: CreateNopCommerceStorefrontDto | null | undefined): Observable<NopCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/nopcommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateNopCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateNopCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateNopCommerceStorefront(response: HttpResponseBase): Observable<NopCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <NopCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<NopCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about NopCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getNopCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<NopCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/nopcommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetNopCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetNopCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetNopCommerceStorefront(response: HttpResponseBase): Observable<NopCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <NopCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<NopCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new WooCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) WooCommerce storefront creation model.\n * @return Success\n */\n createWooCommerceStorefront(tenantId?: number | null | undefined, body?: CreateWooCommerceStorefrontDto | null | undefined): Observable<WooCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/woocommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateWooCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateWooCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateWooCommerceStorefront(response: HttpResponseBase): Observable<WooCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <WooCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<WooCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about WooCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getWooCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<WooCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/woocommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetWooCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetWooCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetWooCommerceStorefront(response: HttpResponseBase): Observable<WooCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <WooCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<WooCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new Magento storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Magento storefront creation model.\n * @return Success\n */\n createMagentoStorefront(tenantId?: number | null | undefined, body?: CreateMagentoStorefrontDto | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/magento?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateMagentoStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateMagentoStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateMagentoStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about Magento storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getMagentoStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/magento/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetMagentoStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetMagentoStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetMagentoStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new BigCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) BigCommerce storefront creation model.\n * @return Success\n */\n createBigCommerceStorefront(tenantId?: number | null | undefined, body?: CreateBigCommerceStorefrontDto | null | undefined): Observable<BigCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/bigcommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateBigCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateBigCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<BigCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<BigCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateBigCommerceStorefront(response: HttpResponseBase): Observable<BigCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BigCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BigCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about BigCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getBigCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/bigcommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetBigCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetBigCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetBigCommerceStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n}\n\nexport interface IUsersManagementApiClient {\n /**\n * Returns a tenant users list.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfTenantUserDto>;\n /**\n * Creates a new tenant user.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) User creation model.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateTenantUserDto | null | undefined): Observable<TenantUserDto>;\n /**\n * Returns a tenant user by user identifier.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<TenantUserDto>;\n /**\n * Deletes an existing tenant user.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns all tenant user roles, relevant to the specified query parameters.\n * @param search (optional) Search string for partial match.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllRoles(search?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfTenantUserRoleDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UsersManagementApiClient extends ApiClientBase implements IUsersManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a tenant users list.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfTenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfTenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfTenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfTenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfTenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfTenantUserDto>(<any>null);\n }\n\n /**\n * Creates a new tenant user.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) User creation model.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateTenantUserDto | null | undefined): Observable<TenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<TenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<TenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantUserDto>(<any>null);\n }\n\n /**\n * Returns a tenant user by user identifier.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<TenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<TenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<TenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantUserDto>(<any>null);\n }\n\n /**\n * Deletes an existing tenant user.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns all tenant user roles, relevant to the specified query parameters.\n * @param search (optional) Search string for partial match.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllRoles(search?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfTenantUserRoleDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/roles?\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllRoles(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllRoles(<any>r));\n } catch (e) {\n return <Observable<PagedOfTenantUserRoleDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfTenantUserRoleDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllRoles(response: HttpResponseBase): Observable<PagedOfTenantUserRoleDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfTenantUserRoleDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfTenantUserRoleDto>(<any>null);\n }\n}\n\n/** Information about a service. */\nexport interface BuildInfoModel {\n /** Version number. */\n version?: string | null;\n /** Build date (UTC). */\n buildDate?: string | null;\n /** Build configuration (Debug | Release). */\n configuration?: string | null;\n /** Service name. */\n appName?: string | null;\n}\n\n/** Available product reference target types. */\nexport enum ProductReferenceType {\n ProductSpecification = \"ProductSpecification\",\n Product = \"Product\",\n ProductLink = \"ProductLink\",\n ProductBundle = \"ProductBundle\",\n}\n\n/** DTO class, containing information about storefront product reference. */\nexport interface ProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference?: string | null;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Customer's Canvas product identifier. */\n productId?: number;\n /** Customer's Canvas product version identifier. */\n productVersionId?: number;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront product reference creation date and time. */\n created?: string;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductReferenceDto {\n total?: number;\n items?: ProductReferenceDto[] | null;\n}\n\n/** Conflict types. */\nexport enum ConflictType {\n NameConflict = \"NameConflict\",\n FolderOverwriteConflict = \"FolderOverwriteConflict\",\n IdConflict = \"IdConflict\",\n GeneralConflict = \"GeneralConflict\",\n}\n\n/** Information about operation conflict. */\nexport interface GeneralConflictDto {\n /** Problem description. */\n description?: string | null;\n /** Coflict type. */\n type?: ConflictType;\n}\n\n/** Dto class, containing create operation parameters for storefront product reference. */\nexport interface CreateProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference: string;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number | null;\n /** Customer's Canvas product identifier. */\n productId?: number | null;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number | null;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number | null;\n}\n\nexport interface ProblemDetails {\n type?: string | null;\n title?: string | null;\n status?: number | null;\n detail?: string | null;\n instance?: string | null;\n}\n\n/** DTO class, containing information about storefront product reference. */\nexport interface ProductReferenceInfo {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference?: string | null;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Customer's Canvas product identifier. */\n productId?: number;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n}\n\n/** DTO class, containing information about storefront product reference creation conflict. */\nexport interface ProductReferenceCreationConflictDto {\n /** List of storefront product references, which are already exist. */\n existingReferences?: ProductReferenceInfo[] | null;\n /** Problem description. */\n description?: string | null;\n /** Coflict type. */\n type?: ConflictType;\n}\n\n/** Dto class, containing information about a product resource of type image. */\nexport interface ImageInfo {\n /** Product resource identifier. */\n resourceId?: string | null;\n /** Product Resource URL. */\n url?: string | null;\n}\n\n/** Dto class, containing information about a product. */\nexport interface ProductDto {\n /** Product identifier. */\n id?: number;\n /** Product version identifier. */\n productVersionId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product name. */\n name?: string | null;\n /** Product description. */\n description?: string | null;\n /** Product image info. */\n image?: ImageInfo | null;\n /** Product creation time. */\n created?: string;\n /** Product modification time. */\n lastModified?: string | null;\n /** Product tags. */\n tags?: string[] | null;\n /** Product custom fields. */\n customFields?: { [key: string]: string; } | null;\n /** Personalization workflow identifier. */\n personalizationWorkflowId?: number;\n /** Processing pipeline identifier. */\n processingPipelineId?: number;\n /** Default storefront identifier. */\n storefrontId?: number | null;\n /** Default storefront product identifier. */\n storefrontProductId?: string | null;\n /** Default storefront product name. */\n storefrontProductName?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductDto {\n total?: number;\n items?: ProductDto[] | null;\n}\n\n/** Product option value creation operation parameters. */\nexport interface CreateProductOptionValueDto {\n /** Product option value. */\n value?: string | null;\n}\n\n/** Product option creation operation parameters. */\nexport interface CreateProductOptionDto {\n /** Option title. */\n title: string;\n /** Option traits. */\n traits?: string[] | null;\n /** Product option values. */\n values?: CreateProductOptionValueDto[] | null;\n /** Flag that indicates if option can be used for product design connections creation. */\n useForDesignBinding?: boolean;\n /** Flag that indicates if option can be used for product mockup connections creation. */\n useForMockupBinding?: boolean;\n /** Flag that indicates if option can be used for product document connections creation. */\n useForDocumentBinding?: boolean;\n}\n\n/** Product option creation operation parameters. */\nexport interface CreateProductDto {\n /** Product name. */\n name: string;\n /** Product description. */\n description?: string | null;\n /** Personalization workflow identifier. */\n personalizationWorkflowId?: number;\n /** Processing pipeline identifier. */\n processingPipelineId?: number;\n /** Product tags. */\n tags?: string[] | null;\n /** Product custom fields. */\n customFields?: { [key: string]: string; } | null;\n /** Product options parameters. */\n options?: CreateProductOptionDto[] | null;\n}\n\n/** Available option types. */\nexport enum OptionType {\n Simple = \"Simple\",\n Size = \"Size\",\n PageCount = \"PageCount\",\n}\n\n/** Available appearance types. */\nexport enum AppearanceDataType {\n Radio = \"Radio\",\n Dropdown = \"Dropdown\",\n Chips = \"Chips\",\n ColorGrid = \"ColorGrid\",\n ColorList = \"ColorList\",\n ImageGrid = \"ImageGrid\",\n ImageList = \"ImageList\",\n}\n\n/** DTO class, containing information about a product option appearance item. */\nexport interface AppearanceDataItemDto {\n /** Appearance item key. */\n key?: string | null;\n /** Appearance item value. */\n value?: string | null;\n}\n\n/** DTO class, containing information about a product option appearance. */\nexport interface AppearanceDataDto {\n /** Appearance type. */\n type?: AppearanceDataType;\n /** Appearance items. */\n items?: AppearanceDataItemDto[] | null;\n}\n\n/** Option value description for 'Simple' option type. */\nexport interface SimpleOptionValue {\n /** String Value. */\n value?: string | null;\n}\n\n/** DTO class, containing information about a product option value. */\nexport interface ProductOptionValueDto {\n /** Product option value identifier. */\n id?: number;\n /** Product option value title. */\n title?: string | null;\n /** Product option value sort index. */\n sortIndex?: number;\n /** Indicates if product option value is used as a default value. */\n isDefault?: boolean;\n /** Product option value identifying tag. */\n tag?: string | null;\n /** Product option value UID. */\n uid?: string | null;\n /** Product option value description for 'Simple' option type. */\n simpleOptionValue?: SimpleOptionValue | null;\n /** Product option value description. */\n description?: string | null;\n /** Product option value colors. */\n colors?: string[] | null;\n /** Product option value image. */\n image?: ImageInfo | null;\n}\n\n/** DTO class, containing information about a product option. */\nexport interface ProductOptionDto {\n /** Product option identifier. */\n id?: number;\n /** Product version identifier */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Option type ('Simple' / 'Size' / 'PageCount'). */\n type?: OptionType;\n /** Option traits. */\n traits?: string[] | null;\n /** Product option title. */\n title?: string | null;\n /** Product option sort index. */\n sortIndex?: number;\n /** Product option identifying tag. */\n tag?: string | null;\n /** Product option UID. */\n uid?: string | null;\n /** Specifies if the option is used for design binding. */\n useForDesignBinding?: boolean;\n /** Specifies if the option is used for mockup binding. */\n useForMockupBinding?: boolean;\n /** Specifies if the option is used for document binding. */\n useForDocumentBinding?: boolean;\n /** Product option description. */\n description?: string | null;\n /** Product option tooltip. */\n tooltip?: string | null;\n /** Product option appearance. */\n appearanceData?: AppearanceDataDto | null;\n /** Product option image info. */\n image?: ImageInfo | null;\n /** A list of product option values. */\n productOptionValues?: ProductOptionValueDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductOptionDto {\n total?: number;\n items?: ProductOptionDto[] | null;\n}\n\n/** Product option value create or update operation parameters. */\nexport interface SetProductOptionValueDto {\n /** Product option value UID. */\n uid?: string | null;\n /** Product option value description. */\n description?: string | null;\n /** Product option value sort index. */\n sortIndex?: number;\n /** Indicates if product option value is used as a default value. */\n isDefault?: boolean;\n /** Product option value. */\n value?: string | null;\n /** Product option value colors. */\n colors?: string[] | null;\n}\n\n/** Product option create or update operation parameters. */\nexport interface SetProductOptionDto {\n /** Product option UID. */\n uid?: string | null;\n /** Product option title. */\n title?: string | null;\n /** Product option description. */\n description?: string | null;\n /** Product option tooltip. */\n tooltip?: string | null;\n /** Product option sort index. */\n sortIndex?: number;\n /** Specifies if the option is used for design binding. */\n useForDesignBinding?: boolean;\n /** Specifies if the option is used for mockup binding. */\n useForMockupBinding?: boolean;\n /** Specifies if the option is used for document binding. */\n useForDocumentBinding?: boolean;\n /** A list of product option values. */\n values?: SetProductOptionValueDto[] | null;\n}\n\n/** Product options setting operation parameters. */\nexport interface SetProductOptionsDto {\n /** Product options create or update parameters. */\n options?: SetProductOptionDto[] | null;\n}\n\n/** Dto class, containing information about a product variant option. */\nexport interface ProductVariantOptionDto {\n /** Product option identifier. */\n productOptionId?: number | null;\n /** Product option value identifier. */\n productOptionValueId?: number | null;\n /** Product option type ('Simple' / 'Size' / 'PageCount'). */\n productOptionType?: OptionType;\n /** Product option traits. */\n productOptionTraits?: string[] | null;\n /** Product option title. */\n productOptionTitle?: string | null;\n /** Product option value title. */\n productOptionValueTitle?: string | null;\n /** Product option value description for 'Simple' option type. */\n simpleOptionValue?: SimpleOptionValue | null;\n}\n\n/** DTO class, containing information about a product variant. */\nexport interface ProductVariantDto {\n /** Product variant identifier. */\n id?: number;\n /** Product variant unique identifier. */\n uid?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant weight. */\n weight?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDto {\n total?: number;\n items?: ProductVariantDto[] | null;\n}\n\n/** Available product variant resource types. */\nexport enum ProductVariantResourceType {\n Preview = \"Preview\",\n EditorModel = \"EditorModel\",\n Custom = \"Custom\",\n}\n\n/** Product variant resource description for 'Preview' resource type. */\nexport interface ProductVariantResourcePreview {\n /** Preview with in pixels. */\n width?: number | null;\n /** Preview height in pixels. */\n height?: number | null;\n /** Mockup which is used to create preview. */\n mockupId?: string | null;\n /** Design surface index which is used to create preivew. */\n surfaceIndex?: number | null;\n}\n\n/** Dto class, containing information about a product variant resource. */\nexport interface ProductVariantResourceDto {\n /** Resource identifier. */\n resourceId?: string | null;\n /** Resource name. */\n name?: string | null;\n /** Resource url. */\n url?: string | null;\n /** Resource type. */\n type?: ProductVariantResourceType;\n /** Product variant resource description for 'Preview' resource type. */\n resourcePreview?: ProductVariantResourcePreview | null;\n}\n\n/** Dto class, containing information about a product variant design. */\nexport interface ProductVariantDesignDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Design identifier. */\n designId?: string | null;\n /** Design name. */\n designName?: string | null;\n /** Design grouping tag. */\n designGroup?: string | null;\n /** Design data schema tag. Indicates if design has data schema. */\n designHasDataSchema?: boolean;\n /** Design toggle set tag. Indicated if design has toggle set. */\n designHasToggleSet?: boolean;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n /** A list of product variant resources. */\n productVariantResources?: ProductVariantResourceDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDesignDto {\n total?: number;\n items?: ProductVariantDesignDto[] | null;\n}\n\n/** Available mockup types. */\nexport enum ProductVariantMockupType {\n Thumbnail = \"Thumbnail\",\n Editor = \"Editor\",\n Preview = \"Preview\",\n}\n\n/** Available surface usage types. */\nexport enum SurfaceUsageType {\n Individual = \"Individual\",\n Custom = \"Custom\",\n All = \"All\",\n}\n\n/** Dto class, containing information about a product variant mockup. */\nexport interface ProductVariantMockupDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number | null;\n /** Product variant identifier in online store (usually SKU). */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Mockup identifier. */\n mockupId?: string | null;\n /** Mockup name. */\n mockupName?: string | null;\n /** Mockup type. */\n mockupType?: ProductVariantMockupType;\n /** Surface index indicates a surface of a design to which mockup should be applied. */\n surfaceIndex?: number | null;\n /** Surface usage type defines a scheme for applying mockup to design surfaces. */\n surfaceUsageType?: SurfaceUsageType;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantMockupDto {\n total?: number;\n items?: ProductVariantMockupDto[] | null;\n}\n\n/** DTO class, containing information about a product variant document. */\nexport interface ProductVariantDocumentDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Document identifier. */\n documentId?: string | null;\n /** Document name. */\n documentName?: string | null;\n /** Document grouping tag. */\n documentGroup?: string | null;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n /** A list of product variant resources. */\n productVariantResources?: ProductVariantResourceDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDocumentDto {\n total?: number;\n items?: ProductVariantDocumentDto[] | null;\n}\n\n/** Parameters for setting product variants price. */\nexport interface ProductVariantPriceDto {\n /** Price. */\n price?: number | null;\n /** UIDs of variants for price setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants price setting operation parameters. */\nexport interface SetProductVariantPriceDto {\n /** List of product variants grouped by price value. */\n items?: ProductVariantPriceDto[] | null;\n}\n\n/** Parameters for setting product variants weight. */\nexport interface ProductVariantWeightDto {\n /** Weight. */\n weight?: number | null;\n /** UIDs of variants for price setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants weight setting operation parameters. */\nexport interface SetProductVariantWeightDto {\n /** List of product variants grouped by weight value. */\n items?: ProductVariantWeightDto[] | null;\n}\n\n/** Parameters for setting product variants availability. */\nexport interface ProductVariantAvailabilityDto {\n /** Availability. */\n availability?: boolean;\n /** UIDs of variants for availability setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants availability setting operation parameters. */\nexport interface SetProductVariantAvailabilityDto {\n /** List of product variants grouped by availability value. */\n items?: ProductVariantAvailabilityDto[] | null;\n}\n\n/** Parameters for setting product variants SKU. */\nexport interface ProductVariantSkuDto {\n /** SKU. */\n sku?: string | null;\n /** UIDs of variants for SKU setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants SKU setting operation parameters. */\nexport interface SetProductVariantSkuDto {\n /** List of product variants grouped by SKU value. */\n items?: ProductVariantSkuDto[] | null;\n}\n\n/** Product asset connection options description. */\nexport interface ProductAssetConnectionOptionsDto {\n /** Product option UID. */\n optionUID?: string | null;\n /** Product option values UIDs. */\n optionValueUIDs?: string[] | null;\n}\n\n/** Product design connection description. */\nexport interface ProductDesignConnectionDto {\n /** Design identifier. */\n designId?: string | null;\n /** Connection options. Set empty if design should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product designs connections creation model. */\nexport interface CreateProductDesignConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductDesignConnectionDto[] | null;\n}\n\n/** Product asset connection removing parameters. */\nexport interface RemoveProductAssetConnectionDto {\n /** Asset identifier. */\n assetId?: string | null;\n /** Connection options. Set empty if all product variants connections should be removed. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product designs connections removing model. */\nexport interface RemoveProductDesignConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Product mockup type. */\nexport enum ProductMockupType {\n Thumbnail = \"Thumbnail\",\n Editor = \"Editor\",\n Preview = \"Preview\",\n}\n\n/** Product mockup connection description. */\nexport interface ProductMockupConnectionDto {\n /** Mockup identifier. */\n mockupId?: string | null;\n /** Connection options. Set empty if mockup should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n /** Product mockup types. Single mockup may be used as editor, preview and thumbnail mockup at the same time. */\n mockupTypes?: ProductMockupType[] | null;\n /** Product mockup target surfaces. Comma-separated surface indexes (\"1,2,3\") or `all` value may be set. */\n surfaces?: string | null;\n}\n\n/** Product mockups connections creation model. */\nexport interface CreateProductMockupConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductMockupConnectionDto[] | null;\n}\n\n/** Product mockups connections removing model. */\nexport interface RemoveProductMockupConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Product document connection description. */\nexport interface ProductDocumentConnectionDto {\n /** Document identifier. */\n documentId?: string | null;\n /** Connection options. Set empty if document should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product documents connections creation model. */\nexport interface CreateProductDocumentConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductDocumentConnectionDto[] | null;\n}\n\n/** Product documents connections removing model. */\nexport interface RemoveProductDocumentConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Type of editor that should be configured by workflow. */\nexport enum WorkflowType {\n UIFramework = \"UIFramework\",\n SimpleEditor = \"SimpleEditor\",\n DesignEditor = \"DesignEditor\",\n WorkflowElements = \"WorkflowElements\",\n}\n\n/** Personalization workflow description DTO. */\nexport interface PersonalizationWorkflowDto {\n /** Workflow identifier. */\n id?: number;\n /** Workflow name. */\n name?: string | null;\n /** Workflow type. */\n workflowType?: WorkflowType;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfPersonalizationWorkflowDto {\n total?: number;\n items?: PersonalizationWorkflowDto[] | null;\n}\n\n/** Dto class, containing information about processing pipeline details. */\nexport interface ProcessingPipelineDto {\n /** Processing pipeline identifier. */\n id?: number;\n /** Processing pipeline name. */\n name?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProcessingPipelineDto {\n total?: number;\n items?: ProcessingPipelineDto[] | null;\n}\n\n/** Project status parameters. */\nexport interface ProjectStatusDto {\n /** Project status identifier. */\n id?: number;\n /** Status code. */\n code?: number;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProjectStatusDto {\n total?: number;\n items?: ProjectStatusDto[] | null;\n}\n\n/** Project status creation parameters. */\nexport interface CreateProjectStatusDto {\n /** Status code. */\n code?: number;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean;\n}\n\n/** Project status update parameters. */\nexport interface UpdateProjectStatusDto {\n /** Status code. */\n code?: number | null;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean | null;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean | null;\n}\n\n/** Project status transition dto class. */\nexport interface ProjectStatusTransitionDto {\n /** Transition identifier. */\n id?: number;\n /** Transition identifying name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProjectStatusTransitionDto {\n total?: number;\n items?: ProjectStatusTransitionDto[] | null;\n}\n\n/** Project status transition update parameters. */\nexport interface UpdateProjectStatusTransitionDto {\n /** Transition hidden system name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Project status transition creation parameters. */\nexport interface CreateProjectStatusTransitionDto {\n /** Transition hidden system name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Storefront types. */\nexport enum StorefrontType {\n Custom = \"Custom\",\n ShopifyLegacy = \"ShopifyLegacy\",\n DocketManager = \"DocketManager\",\n CustomSaml = \"CustomSaml\",\n NopCommerce = \"NopCommerce\",\n WooCommerce = \"WooCommerce\",\n Magento = \"Magento\",\n BigCommerce = \"BigCommerce\",\n Shopify = \"Shopify\",\n ShopifyCustom = \"ShopifyCustom\",\n}\n\n/** Storefront status. */\nexport enum StorefrontStatus {\n Dev = \"Dev\",\n Prod = \"Prod\",\n}\n\n/** Dto class, containing information about a storefront. */\nexport interface StorefrontDto {\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfStorefrontDto {\n total?: number;\n items?: StorefrontDto[] | null;\n}\n\n/** Custom storefront creation model. */\nexport interface CreateCustomStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Name of header that will be used to provide API key to target storefront system. */\n apiKeyHeaderName?: string | null;\n /** API key for target storefront system. */\n apiKey?: string | null;\n /** List of storefront shops URLs. */\n shopUrls: string[];\n}\n\n/** Custom storefront description. */\nexport interface CustomStorefrontDto {\n /** Name of header that will be used to provide API key to target storefront system. */\n apiKeyHeaderName?: string | null;\n /** API key for target storefront system. */\n apiKey?: string | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** NopCommerce storefront creation model. */\nexport interface CreateNopCommerceStorefrontDto {\n /** NopCommerce storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of NopCommerce shops URLs. */\n shopUrls: string[];\n /** NopCommerce back-end application URL. */\n backendUrl: string;\n}\n\n/** NopCommerce storefront settings. */\nexport interface NopCommerceSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n /** NopCommerce plugin API key. */\n pluginApiKey?: string | null;\n}\n\n/** NopCommerce storefront description. */\nexport interface NopCommerceStorefrontDto {\n /** NopCommerce storefront settings. */\n settings?: NopCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** WooCommerce storefront creation model. */\nexport interface CreateWooCommerceStorefrontDto {\n /** WooCommerce storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of WooCommerce shops URLs. */\n shopUrls: string[];\n /** WooCommerce back-end application URL. */\n backendUrl: string;\n}\n\n/** WooCommerce storefront settings. */\nexport interface WooCommerceSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n /** WooCommerce plugin API key. */\n pluginApiKey?: string | null;\n}\n\n/** WooCommerce storefront description. */\nexport interface WooCommerceStorefrontDto {\n /** WooCommerce storefront settings. */\n settings?: WooCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** Magento storefront creation model. */\nexport interface CreateMagentoStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of Magento shops URLs. */\n shopUrls: string[];\n /** Magento back-end application URL. */\n backendUrl: string;\n /** Magento API key. */\n shopApiKey: string;\n /** Magento shop code. */\n shopCode?: string | null;\n}\n\n/** Magento storefront settings. */\nexport interface MagentoSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n}\n\n/** Magento storefront description. */\nexport interface MagentoStorefrontDto {\n /** Magento storefront settings. */\n settings?: MagentoSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** BigCommerce storefront creation model. */\nexport interface CreateBigCommerceStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of shops URLs. */\n shopUrls: string[];\n /** BigCommerce access token. */\n accessToken: string;\n /** BigCommerce client name. */\n clientName: string;\n /** BigCommerce client identifier. */\n clientId: string;\n /** BigCommerce client secret. */\n clientSecret: string;\n /** BigCommerce integration name. */\n integrationName: string;\n /** BigCommerce API path. */\n apiPath: string;\n}\n\n/** BigCommerce storefront settings. */\nexport interface BigCommerceSettingsDto {\n /** BigCommerce access token. */\n accessToken?: string | null;\n /** BigCommerce client name. */\n bigCommerceClientName?: string | null;\n /** BigCommerce API path. */\n apiPath?: string | null;\n /** BigCommerce client secret. */\n bigCommerceClientSecret?: string | null;\n /** BigCommerce client identifier. */\n bigCommerceClientId?: string | null;\n /** BigCommerce integration name. */\n integrationName?: string | null;\n}\n\n/** BigCommerce storefront description. */\nexport interface BigCommerceStorefrontDto {\n /** BigCommerce integration settings. */\n settings?: BigCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** Tenant user description. */\nexport interface TenantUserDto {\n /** User identifier. */\n id?: number;\n /** User login. */\n login?: string | null;\n /** User email address. */\n email?: string | null;\n /** User first name. */\n firstName?: string | null;\n /** User last name. */\n lastName?: string | null;\n /** User status. */\n isActive?: boolean;\n /** User roles. */\n roleNames?: string[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfTenantUserDto {\n total?: number;\n items?: TenantUserDto[] | null;\n}\n\n/** Tenant user creation model. */\nexport interface CreateTenantUserDto {\n /** User login (up to 256 symbols). */\n login: string;\n /** User first name (up to 64 symbols). */\n firstName: string;\n /** User last name (up to 64 symbols). */\n lastName: string;\n /** User email address (up to 256 symbols). */\n email: string;\n /** User status. */\n isActive?: boolean;\n /** User roles (e.g. 'Admin', 'User'). */\n roleNames?: string[] | null;\n /** User password (up to 32 symbols). */\n password: string;\n}\n\n/** Tenant user role description. */\nexport interface TenantUserRoleDto {\n /** Role identifier. */\n id?: number;\n /** Role name. */\n name?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfTenantUserRoleDto {\n total?: number;\n items?: TenantUserRoleDto[] | null;\n}\n\nexport interface FileParameter {\n data: any;\n fileName: string;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable<any> {\n return _observableThrow(new ApiException(message, status, response, headers, result));\n}\n\nfunction blobToText(blob: any): Observable<string> {\n return new Observable<string>((observer: any) => {\n if (!blob) {\n observer.next(\"\");\n observer.complete();\n } else {\n let reader = new FileReader();\n reader.onload = event => {\n observer.next((<any>event.target).result);\n observer.complete();\n };\n reader.readAsText(blob);\n }\n });\n}","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport * as BackOfficeApiClient from './backoffice-api-client';\n\n// @dynamic\nexport function CreateApiClientConfiguration(token: string, apiUrl: string, apiKey: string = 'ApiKey'): BackOfficeApiClient.ApiClientConfiguration {\n const apiConf = new BackOfficeApiClient.ApiClientConfiguration();\n apiConf.apiKey = apiKey;\n apiConf.apiUrl = apiUrl;\n apiConf.setAuthorizationToken(token);\n return apiConf;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n exports: []\n})\nexport class BackOfficeModule {\n static forRoot(token: string, apiUrl: string, apiKey: string = 'ApiKey'): ModuleWithProviders<BackOfficeModule> {\n return {\n ngModule: BackOfficeModule,\n providers: [\n {\n provide: BackOfficeApiClient.API_BASE_URL,\n useValue: apiUrl\n },\n {\n provide: BackOfficeApiClient.ApiClientConfiguration,\n useFactory: CreateApiClientConfiguration.bind(this, token , apiUrl, apiKey)\n },\n ]\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/client/src/lib/backoffice-api-client.ts","../../../projects/client/src/lib/backoffice.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","_","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","n","v","op","pop","length","push","__values","o","s","m","i","SuppressedError","API_BASE_URL","InjectionToken","ApiClientConfiguration","apiKey","authorizationToken","getAuthorizationToken","setAuthorizationToken","token","ApiClientBase","configuration","transformOptions","options","_a","headers","append","getBaseUrl","defultUrl","apiUrl","transformResult","url","res","cb","BuildInfoApiClient","http","baseUrl","_this","_super","jsonParseReviver","undefined","headInfo","url_","replace","options_","observe","responseType","HttpHeaders","_observableFrom","pipe","_observableMergeMap","transformedOptions_","request","response_","r","processHeadInfo","_observableCatch","HttpResponseBase","_observableThrow","response","status","responseBlob","HttpResponse","error","Blob","_headers","_b","keys","_c","key","get","blobToText","_responseText","_observableOf","throwException","getInfo","Accept","processGetInfo","result200","JSON","parse","Injectable","args","providedIn","decorators","type","Inject","HttpClient","Optional","ProductReferencesManagementApiClient","getAll","storefrontId","productReference","productSpecificationId","productId","productLinkId","productBundleId","skip","take","sorting","search","sku","tags","customFields","tenantId","Error","encodeURIComponent","forEach","item","processGetAll","result409","stringify","Content-Type","processCreate","result201","result404","reference","processGet","delete","processDelete","ProductsManagementApiClient","getAllProducts","processGetAllProducts","createProduct","processCreateProduct","getProduct","id","productVersionId","processGetProduct","deleteProduct","processDeleteProduct","getProductOptions","processGetProductOptions","setProductOptions","processSetProductOptions","getProductVariants","productFilterId","takeAvailableOnly","processGetProductVariants","getProductVariant","productVariantId","processGetProductVariant","updateProductVariantResources","processUpdateProductVariantResources","validateProductVariantResources","processValidateProductVariantResources","getProductVariantDesigns","designCustomFields","designPath","processGetProductVariantDesigns","getProductVariantMockups","mockupCustomFields","mockupPath","processGetProductVariantMockups","getProductVariantDocuments","documentCustomFields","documentPath","processGetProductVariantDocuments","setProductVariantPrice","processSetProductVariantPrice","result400","setProductVariantWeight","processSetProductVariantWeight","setProductVariantAvailability","processSetProductVariantAvailability","setProductVariantSku","processSetProductVariantSku","importProducts","file","content_","FormData","data","fileName","processImportProducts","createDesignsConnections","processCreateDesignsConnections","removeDesignsConnections","processRemoveDesignsConnections","createMockupsConnections","processCreateMockupsConnections","removeMockupsConnections","processRemoveMockupsConnections","createDocumentsConnections","processCreateDocumentsConnections","removeDocumentsConnections","processRemoveDocumentsConnections","setProductImage","processSetProductImage","getAvailablePersonalizationWorkflows","processGetAvailablePersonalizationWorkflows","getAvailableProcessingPipelines","processGetAvailableProcessingPipelines","ProjectStatusesManagementApiClient","update","processUpdate","ProjectStatusTransitionsManagementApiClient","StorefrontsManagementApiClient","types","createCustomStorefront","processCreateCustomStorefront","getCustomStorefront","processGetCustomStorefront","createNopCommerceStorefront","processCreateNopCommerceStorefront","getNopCommerceStorefront","processGetNopCommerceStorefront","createWooCommerceStorefront","processCreateWooCommerceStorefront","getWooCommerceStorefront","processGetWooCommerceStorefront","createMagentoStorefront","processCreateMagentoStorefront","getMagentoStorefront","processGetMagentoStorefront","createBigCommerceStorefront","processCreateBigCommerceStorefront","getBigCommerceStorefront","processGetBigCommerceStorefront","ProductReferenceType","ConflictType","OptionType","AppearanceDataType","ProductVariantResourceType","ProductVariantMockupType","SurfaceUsageType","ProductMockupType","WorkflowType","StorefrontType","StorefrontStatus","UsersManagementApiClient","getAllRoles","processGetAllRoles","ApiException","message","isApiException","obj","blob","Observable","observer","reader","FileReader","onload","event","target","complete","readAsText","CreateApiClientConfiguration","apiConf","BackOfficeApiClient.ApiClientConfiguration","BackOfficeModule","forRoot","ngModule","providers","provide","BackOfficeApiClient.API_BASE_URL","useValue","useFactory","bind","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v13.15.5.0 (NJsonSchema v10.6.6.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\nimport { Observable, from as _observableFrom, throwError as _observableThrow, of as _observableOf } from 'rxjs';\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\n\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\n\nexport class ApiClientConfiguration {\n apiUrl: string;\n apiKey: string = 'ApiKey';\n private authorizationToken: string = null;\n async getAuthorizationToken(): Promise<string> { return this.authorizationToken; };\n setAuthorizationToken(token: string): void { this.authorizationToken = token; };\n}\n\nexport class ApiClientBase {\n constructor(private configuration: ApiClientConfiguration) { }\n\n protected async transformOptions(options: any): Promise<any> {\n const token = await this.configuration.getAuthorizationToken();\n if (token != null) {\n options.headers = (options.headers as HttpHeaders).append(\"authorization\", \"Bearer \" + token);\n } else {\n options.headers = (options.headers as HttpHeaders).append(\"X-API-Key\", this.configuration.apiKey);\n }\n //options = { ...options, transformResponse: (res) => res, responseType: 'json' };\n return options;\n }\n\n protected getBaseUrl(defultUrl: string) {\n return this.configuration.apiUrl;\n }\n\n protected transformResult(url: string, res: HttpResponseBase, cb: (res: HttpResponseBase) => Observable<any>): Observable<any> {\n return cb(res);\n }\n}\n\nexport interface IBuildInfoApiClient {\n /**\n * Returns assembly build info.\n * @return Success\n */\n headInfo(): Observable<void>;\n /**\n * Returns assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuildInfoApiClient extends ApiClientBase implements IBuildInfoApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns assembly build info.\n * @return Success\n */\n headInfo(): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"head\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processHeadInfo(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processHeadInfo(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns assembly build info.\n * @return Success\n */\n getInfo(): Observable<BuildInfoModel> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/info\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetInfo(<any>r));\n } catch (e) {\n return <Observable<BuildInfoModel>><any>_observableThrow(e);\n }\n } else\n return <Observable<BuildInfoModel>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetInfo(response: HttpResponseBase): Observable<BuildInfoModel> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BuildInfoModel>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BuildInfoModel>(<any>null);\n }\n}\n\nexport interface IProductReferencesManagementApiClient {\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter.\n Product reference is an external reference to Customer's Canvas product, e.g online store product identifier.\n * @param productSpecificationId (optional) Customer's Canvas product specification filter.\n * @param productId (optional) Customer's Canvas product filter.\n * @param productLinkId (optional) Customer's Canvas product link filter.\n * @param productBundleId (optional) Customer's Canvas product bundle filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU filter.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, productId?: number | null | undefined, productLinkId?: number | null | undefined, productBundleId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto>;\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Returns a storefront product reference.\n * @param reference An external reference to Customer's Canvas product, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductReferencesManagementApiClient extends ApiClientBase implements IProductReferencesManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefront product references relevant to the specified query parameters.\n * @param storefrontId Storefront identifier.\n * @param productReference (optional) Product reference filter.\n Product reference is an external reference to Customer's Canvas product, e.g online store product identifier.\n * @param productSpecificationId (optional) Customer's Canvas product specification filter.\n * @param productId (optional) Customer's Canvas product filter.\n * @param productLinkId (optional) Customer's Canvas product link filter.\n * @param productBundleId (optional) Customer's Canvas product bundle filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU filter.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(storefrontId: number, productReference?: string | null | undefined, productSpecificationId?: number | null | undefined, productId?: number | null | undefined, productLinkId?: number | null | undefined, productBundleId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (productReference !== undefined && productReference !== null)\n url_ += \"productReference=\" + encodeURIComponent(\"\" + productReference) + \"&\";\n if (productSpecificationId !== undefined && productSpecificationId !== null)\n url_ += \"productSpecificationId=\" + encodeURIComponent(\"\" + productSpecificationId) + \"&\";\n if (productId !== undefined && productId !== null)\n url_ += \"productId=\" + encodeURIComponent(\"\" + productId) + \"&\";\n if (productLinkId !== undefined && productLinkId !== null)\n url_ += \"productLinkId=\" + encodeURIComponent(\"\" + productLinkId) + \"&\";\n if (productBundleId !== undefined && productBundleId !== null)\n url_ += \"productBundleId=\" + encodeURIComponent(\"\" + productBundleId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tags !== undefined && tags !== null)\n tags && tags.forEach(item => { url_ += \"tags=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (customFields !== undefined && customFields !== null)\n url_ += \"customFields=\" + encodeURIComponent(\"\" + customFields) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductReferenceDto>(<any>null);\n }\n\n /**\n * Creates a new storefront product reference.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Create operation parameters.\n * @return Success\n */\n create(storefrontId: number, tenantId?: number | null | undefined, body?: CreateProductReferenceDto | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references?\";\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <ProductReferenceCreationConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Returns a storefront product reference.\n * @param reference An external reference to Customer's Canvas product, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n\n /**\n * Deletes the storefront product reference.\n * @param reference Product reference - external reference to Customer's Canvas product specification, e.g online store product identifier.\n * @param storefrontId Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(reference: string | null, storefrontId: number, tenantId?: number | null | undefined): Observable<ProductReferenceDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/product-references/{reference}?\";\n if (reference === undefined || reference === null)\n throw new Error(\"The parameter 'reference' must be defined.\");\n url_ = url_.replace(\"{reference}\", encodeURIComponent(\"\" + reference));\n if (storefrontId === undefined || storefrontId === null)\n throw new Error(\"The parameter 'storefrontId' must be defined and cannot be null.\");\n else\n url_ += \"storefrontId=\" + encodeURIComponent(\"\" + storefrontId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProductReferenceDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductReferenceDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProductReferenceDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductReferenceDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductReferenceDto>(<any>null);\n }\n}\n\nexport interface IProductsManagementApiClient {\n /**\n * Returns all products, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllProducts(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductDto>;\n /**\n * Creates a new product and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product creation parameters.\n * @return Success\n */\n createProduct(tenantId?: number | null | undefined, body?: CreateProductDto | null | undefined): Observable<ProductDto>;\n /**\n * Returns a product by its identifier.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProduct(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductDto>;\n /**\n * Deletes a product by its identifier.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n deleteProduct(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns a list of product options.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductOptions(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductOptionDto>;\n /**\n * Set product options and returns updated options list.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) \n * @return Success\n */\n setProductOptions(id: number, tenantId?: number | null | undefined, body?: SetProductOptionsDto | null | undefined): Observable<PagedOfProductOptionDto>;\n /**\n * Returns a list of product variants.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariants(id: number, productVersionId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDto>;\n /**\n * Returns a product variant.\n * @param id Product identifier.\n * @param productVariantId Product variant identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariant(id: number, productVariantId: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductVariantDto>;\n /**\n * Updates product variant resources.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n updateProductVariantResources(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Validates product variant resources.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n validateProductVariantResources(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns a list of product variant designs.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param designCustomFields (optional) Custom attributes dictionary filter for designs. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param designPath (optional) Path filter for designs. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDesigns(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, designCustomFields?: string | null | undefined, designPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDesignDto>;\n /**\n * Returns a list of product variant mockups.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param mockupCustomFields (optional) Custom attributes dictionary filter for mockups. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param mockupPath (optional) Path filter for mockups. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantMockups(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, mockupCustomFields?: string | null | undefined, mockupPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantMockupDto>;\n /**\n * Returns a list of product variant documents.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for document name partial match.\n * @param documentCustomFields (optional) Custom attributes dictionary filter for documents. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param documentPath (optional) Path filter for documents. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDocuments(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, documentCustomFields?: string | null | undefined, documentPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDocumentDto>;\n /**\n * Set product variants price. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants price operation parameters.\n * @return Success\n */\n setProductVariantPrice(id: number, tenantId?: number | null | undefined, body?: SetProductVariantPriceDto | null | undefined): Observable<void>;\n /**\n * Set product variants weight. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants weight operation parameters.\n * @return Success\n */\n setProductVariantWeight(id: number, tenantId?: number | null | undefined, body?: SetProductVariantWeightDto | null | undefined): Observable<void>;\n /**\n * Set product variants availability. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants availability operation parameters.\n * @return Success\n */\n setProductVariantAvailability(id: number, tenantId?: number | null | undefined, body?: SetProductVariantAvailabilityDto | null | undefined): Observable<void>;\n /**\n * Set product variants SKU. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants SKU operation parameters.\n * @return Success\n */\n setProductVariantSku(id: number, tenantId?: number | null | undefined, body?: SetProductVariantSkuDto | null | undefined): Observable<void>;\n /**\n * Imports products from a specific CSV file and returns a list of imported products descriptions.\n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n importProducts(tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<PagedOfProductDto>;\n /**\n * Creates new designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n createDesignsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDesignConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n removeDesignsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDesignConnectionsDto | null | undefined): Observable<void>;\n /**\n * Creates new mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n createMockupsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductMockupConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n removeMockupsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductMockupConnectionsDto | null | undefined): Observable<void>;\n /**\n * Creates new documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n createDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDocumentConnectionsDto | null | undefined): Observable<void>;\n /**\n * Removes documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n removeDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDocumentConnectionsDto | null | undefined): Observable<void>;\n /**\n * Set a thumbnail image for an existing product.\n * @param id Product identifier.\n * @param productVersionId (optional) \n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n setProductImage(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<void>;\n /**\n * Returns all available product personalization workflows.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by personalization workflow name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailablePersonalizationWorkflows(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfPersonalizationWorkflowDto>;\n /**\n * Returns all available product processing pipelines.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by processing pipeline name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableProcessingPipelines(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProcessingPipelineDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductsManagementApiClient extends ApiClientBase implements IProductsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all products, relevant to the specified query parameters.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tags (optional) List of tags that product should have.\n * @param customFields (optional) Serialized custom fields dictionary filter. For example: {\"public\":\"true\",\"name\":\"my item\"}.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllProducts(skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, sku?: string | null | undefined, tags?: string[] | null | undefined, customFields?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tags !== undefined && tags !== null)\n tags && tags.forEach(item => { url_ += \"tags=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (customFields !== undefined && customFields !== null)\n url_ += \"customFields=\" + encodeURIComponent(\"\" + customFields) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllProducts(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllProducts(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllProducts(response: HttpResponseBase): Observable<PagedOfProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductDto>(<any>null);\n }\n\n /**\n * Creates a new product and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product creation parameters.\n * @return Success\n */\n createProduct(tenantId?: number | null | undefined, body?: CreateProductDto | null | undefined): Observable<ProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateProduct(<any>r));\n } catch (e) {\n return <Observable<ProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateProduct(response: HttpResponseBase): Observable<ProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductDto>(<any>null);\n }\n\n /**\n * Returns a product by its identifier.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProduct(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProduct(<any>r));\n } catch (e) {\n return <Observable<ProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProduct(response: HttpResponseBase): Observable<ProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductDto>(<any>null);\n }\n\n /**\n * Deletes a product by its identifier.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n deleteProduct(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDeleteProduct(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDeleteProduct(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processDeleteProduct(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns a list of product options.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductOptions(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductOptionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/options?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductOptions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductOptions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductOptions(response: HttpResponseBase): Observable<PagedOfProductOptionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductOptionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductOptionDto>(<any>null);\n }\n\n /**\n * Set product options and returns updated options list.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) \n * @return Success\n */\n setProductOptions(id: number, tenantId?: number | null | undefined, body?: SetProductOptionsDto | null | undefined): Observable<PagedOfProductOptionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/options?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductOptions(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductOptions(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductOptionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductOptions(response: HttpResponseBase): Observable<PagedOfProductOptionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductOptionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductOptionDto>(<any>null);\n }\n\n /**\n * Returns a list of product variants.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariants(id: number, productVersionId?: number | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variants?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariants(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariants(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariants(response: HttpResponseBase): Observable<PagedOfProductVariantDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDto>(<any>null);\n }\n\n /**\n * Returns a product variant.\n * @param id Product identifier.\n * @param productVariantId Product variant identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariant(id: number, productVariantId: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<ProductVariantDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variants/{productVariantId}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVariantId === undefined || productVariantId === null)\n throw new Error(\"The parameter 'productVariantId' must be defined.\");\n url_ = url_.replace(\"{productVariantId}\", encodeURIComponent(\"\" + productVariantId));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariant(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariant(<any>r));\n } catch (e) {\n return <Observable<ProductVariantDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProductVariantDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariant(response: HttpResponseBase): Observable<ProductVariantDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProductVariantDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProductVariantDto>(<any>null);\n }\n\n /**\n * Updates product variant resources.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n updateProductVariantResources(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/update-variant-resources?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdateProductVariantResources(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdateProductVariantResources(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdateProductVariantResources(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Validates product variant resources.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n validateProductVariantResources(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/validate-variant-resources?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processValidateProductVariantResources(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processValidateProductVariantResources(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processValidateProductVariantResources(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns a list of product variant designs.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param designCustomFields (optional) Custom attributes dictionary filter for designs. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param designPath (optional) Path filter for designs. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDesigns(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, designCustomFields?: string | null | undefined, designPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDesignDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-designs?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (designCustomFields !== undefined && designCustomFields !== null)\n url_ += \"designCustomFields=\" + encodeURIComponent(\"\" + designCustomFields) + \"&\";\n if (designPath !== undefined && designPath !== null)\n url_ += \"designPath=\" + encodeURIComponent(\"\" + designPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDesigns(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDesigns(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDesignDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDesignDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantDesigns(response: HttpResponseBase): Observable<PagedOfProductVariantDesignDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDesignDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDesignDto>(<any>null);\n }\n\n /**\n * Returns a list of product variant mockups.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for design name partial match.\n * @param mockupCustomFields (optional) Custom attributes dictionary filter for mockups. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param mockupPath (optional) Path filter for mockups. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantMockups(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, mockupCustomFields?: string | null | undefined, mockupPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantMockupDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-mockups?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (mockupCustomFields !== undefined && mockupCustomFields !== null)\n url_ += \"mockupCustomFields=\" + encodeURIComponent(\"\" + mockupCustomFields) + \"&\";\n if (mockupPath !== undefined && mockupPath !== null)\n url_ += \"mockupPath=\" + encodeURIComponent(\"\" + mockupPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantMockups(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantMockups(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantMockupDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantMockupDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantMockups(response: HttpResponseBase): Observable<PagedOfProductVariantMockupDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantMockupDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantMockupDto>(<any>null);\n }\n\n /**\n * Returns a list of product variant documents.\n * @param id Product identifier.\n * @param productVersionId (optional) Product version identifier.\n * @param productVariantId (optional) Product variant identifier.\n * @param search (optional) Search string for document name partial match.\n * @param documentCustomFields (optional) Custom attributes dictionary filter for documents. For example: {\"public\":\"true\",\"name\":\"my item\"}\n * @param documentPath (optional) Path filter for documents. Subfolders included by default.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param options (optional) Defines options filter e.g.: \"{ \"opt1_id\": \"opt1_val1_id, opt1_val2_id\", \"opt2_id\": \"opt2_val1_id\" }\".\n * @param productFilterId (optional) Defines special filter based on product filter with specified identifier.\n * @param takeAvailableOnly (optional) Defines special filter for available product variants.\n * @param sku (optional) SKU of linked ecommerce product.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getProductVariantDocuments(id: number, productVersionId?: number | null | undefined, productVariantId?: number | null | undefined, search?: string | null | undefined, documentCustomFields?: string | null | undefined, documentPath?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, options?: string | null | undefined, productFilterId?: number | null | undefined, takeAvailableOnly?: boolean | null | undefined, sku?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProductVariantDocumentDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/variant-documents?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (productVariantId !== undefined && productVariantId !== null)\n url_ += \"productVariantId=\" + encodeURIComponent(\"\" + productVariantId) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (documentCustomFields !== undefined && documentCustomFields !== null)\n url_ += \"documentCustomFields=\" + encodeURIComponent(\"\" + documentCustomFields) + \"&\";\n if (documentPath !== undefined && documentPath !== null)\n url_ += \"documentPath=\" + encodeURIComponent(\"\" + documentPath) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (options !== undefined && options !== null)\n url_ += \"options=\" + encodeURIComponent(\"\" + options) + \"&\";\n if (productFilterId !== undefined && productFilterId !== null)\n url_ += \"productFilterId=\" + encodeURIComponent(\"\" + productFilterId) + \"&\";\n if (takeAvailableOnly !== undefined && takeAvailableOnly !== null)\n url_ += \"takeAvailableOnly=\" + encodeURIComponent(\"\" + takeAvailableOnly) + \"&\";\n if (sku !== undefined && sku !== null)\n url_ += \"sku=\" + encodeURIComponent(\"\" + sku) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDocuments(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetProductVariantDocuments(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductVariantDocumentDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductVariantDocumentDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetProductVariantDocuments(response: HttpResponseBase): Observable<PagedOfProductVariantDocumentDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductVariantDocumentDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductVariantDocumentDto>(<any>null);\n }\n\n /**\n * Set product variants price. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants price operation parameters.\n * @return Success\n */\n setProductVariantPrice(id: number, tenantId?: number | null | undefined, body?: SetProductVariantPriceDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-price?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantPrice(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantPrice(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantPrice(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants weight. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants weight operation parameters.\n * @return Success\n */\n setProductVariantWeight(id: number, tenantId?: number | null | undefined, body?: SetProductVariantWeightDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-weight?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantWeight(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantWeight(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantWeight(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants availability. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants availability operation parameters.\n * @return Success\n */\n setProductVariantAvailability(id: number, tenantId?: number | null | undefined, body?: SetProductVariantAvailabilityDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-availability?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantAvailability(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantAvailability(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantAvailability(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set product variants SKU. Variants identifiers will be changed.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Set product variants SKU operation parameters.\n * @return Success\n */\n setProductVariantSku(id: number, tenantId?: number | null | undefined, body?: SetProductVariantSkuDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-variant-sku?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantSku(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductVariantSku(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductVariantSku(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Imports products from a specific CSV file and returns a list of imported products descriptions.\n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n importProducts(tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<PagedOfProductDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/import?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file !== null && file !== undefined)\n content_.append(\"file\", file.data, file.fileName ? file.fileName : \"file\");\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processImportProducts(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processImportProducts(<any>r));\n } catch (e) {\n return <Observable<PagedOfProductDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProductDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processImportProducts(response: HttpResponseBase): Observable<PagedOfProductDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProductDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProductDto>(<any>null);\n }\n\n /**\n * Creates new designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n createDesignsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDesignConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/design-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateDesignsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateDesignsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateDesignsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes designs connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product designs connections creation parameters.\n * @return Success\n */\n removeDesignsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDesignConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/design-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveDesignsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveDesignsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveDesignsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Creates new mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n createMockupsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductMockupConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/mockup-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateMockupsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateMockupsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateMockupsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes mockups connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product mockups connections creation parameters.\n * @return Success\n */\n removeMockupsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductMockupConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/mockup-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveMockupsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveMockupsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveMockupsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Creates new documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n createDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: CreateProductDocumentConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/document-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateDocumentsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateDocumentsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateDocumentsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Removes documents connections for a specified product.\n * @param id Product identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Product documents connections creation parameters.\n * @return Success\n */\n removeDocumentsConnections(id: number, tenantId?: number | null | undefined, body?: RemoveProductDocumentConnectionsDto | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/document-connections?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processRemoveDocumentsConnections(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processRemoveDocumentsConnections(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processRemoveDocumentsConnections(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Set a thumbnail image for an existing product.\n * @param id Product identifier.\n * @param productVersionId (optional) \n * @param tenantId (optional) Tenant identifier.\n * @param file (optional) \n * @return Success\n */\n setProductImage(id: number, productVersionId?: number | null | undefined, tenantId?: number | null | undefined, file?: FileParameter | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/{id}/set-image?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (productVersionId !== undefined && productVersionId !== null)\n url_ += \"productVersionId=\" + encodeURIComponent(\"\" + productVersionId) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = new FormData();\n if (file !== null && file !== undefined)\n content_.append(\"file\", file.data, file.fileName ? file.fileName : \"file\");\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processSetProductImage(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processSetProductImage(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processSetProductImage(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns all available product personalization workflows.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by personalization workflow name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailablePersonalizationWorkflows(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfPersonalizationWorkflowDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/available-workflows?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailablePersonalizationWorkflows(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailablePersonalizationWorkflows(<any>r));\n } catch (e) {\n return <Observable<PagedOfPersonalizationWorkflowDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfPersonalizationWorkflowDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailablePersonalizationWorkflows(response: HttpResponseBase): Observable<PagedOfPersonalizationWorkflowDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfPersonalizationWorkflowDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfPersonalizationWorkflowDto>(<any>null);\n }\n\n /**\n * Returns all available product processing pipelines.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param search (optional) Search string for partial by processing pipeline name.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAvailableProcessingPipelines(skip?: number | null | undefined, take?: number | null | undefined, search?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfProcessingPipelineDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/products/available-pipelines?\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableProcessingPipelines(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAvailableProcessingPipelines(<any>r));\n } catch (e) {\n return <Observable<PagedOfProcessingPipelineDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProcessingPipelineDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAvailableProcessingPipelines(response: HttpResponseBase): Observable<PagedOfProcessingPipelineDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProcessingPipelineDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProcessingPipelineDto>(<any>null);\n }\n}\n\nexport interface IProjectStatusesManagementApiClient {\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto>;\n /**\n * Creates a new project status and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusDto | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Returns a project status by its identifier.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Updates an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusDto | null | undefined): Observable<ProjectStatusDto>;\n /**\n * Deletes an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectStatusesManagementApiClient extends ApiClientBase implements IProjectStatusesManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a list of all existing project statuses.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusDto>(<any>null);\n }\n\n /**\n * Creates a new project status and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusDto | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Returns a project status by its identifier.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Updates an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusDto | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdate(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n\n /**\n * Deletes an existing project status and returns its description.\n * @param id Status identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-statuses/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProjectStatusDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusDto>(<any>null);\n }\n}\n\nexport interface IProjectStatusTransitionsManagementApiClient {\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusTransitionDto>;\n /**\n * Returns a project status transition by its identifier.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Updates an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Deletes an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto>;\n /**\n * Creates a new project status transition and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectStatusTransitionsManagementApiClient extends ApiClientBase implements IProjectStatusTransitionsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a list of all existing project status transitions.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Returns a project status transition by its identifier.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Updates an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition update parameters.\n * @return Success\n */\n update(id: number, tenantId?: number | null | undefined, body?: UpdateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"put\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processUpdate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processUpdate(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Deletes an existing project status transition and returns its description.\n * @param id Status transition identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n\n /**\n * Creates a new project status transition and returns its description.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Status transition creation parameters.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateProjectStatusTransitionDto | null | undefined): Observable<ProjectStatusTransitionDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/projects-transitions/transitions?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<ProjectStatusTransitionDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<ProjectStatusTransitionDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 201) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result201: any = null;\n result201 = _responseText === \"\" ? null : <ProjectStatusTransitionDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result201);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<ProjectStatusTransitionDto>(<any>null);\n }\n}\n\nexport interface IStorefrontsManagementApiClient {\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param status (optional) Storefront status.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, status?: StorefrontStatus | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto>;\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n /**\n * Deletes an existing storefront by its identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto>;\n /**\n * Creates new custom storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Custom storefront creation model.\n * @return Success\n */\n createCustomStorefront(tenantId?: number | null | undefined, body?: CreateCustomStorefrontDto | null | undefined): Observable<CustomStorefrontDto>;\n /**\n * Returns extended information about custom storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getCustomStorefront(id: number, tenantId?: number | null | undefined): Observable<CustomStorefrontDto>;\n /**\n * Creates new NopCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) NopCommerce storefront creation model.\n * @return Success\n */\n createNopCommerceStorefront(tenantId?: number | null | undefined, body?: CreateNopCommerceStorefrontDto | null | undefined): Observable<NopCommerceStorefrontDto>;\n /**\n * Returns extended information about NopCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getNopCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<NopCommerceStorefrontDto>;\n /**\n * Creates new WooCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) WooCommerce storefront creation model.\n * @return Success\n */\n createWooCommerceStorefront(tenantId?: number | null | undefined, body?: CreateWooCommerceStorefrontDto | null | undefined): Observable<WooCommerceStorefrontDto>;\n /**\n * Returns extended information about WooCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getWooCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<WooCommerceStorefrontDto>;\n /**\n * Creates new Magento storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Magento storefront creation model.\n * @return Success\n */\n createMagentoStorefront(tenantId?: number | null | undefined, body?: CreateMagentoStorefrontDto | null | undefined): Observable<MagentoStorefrontDto>;\n /**\n * Returns extended information about Magento storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getMagentoStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto>;\n /**\n * Creates new BigCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) BigCommerce storefront creation model.\n * @return Success\n */\n createBigCommerceStorefront(tenantId?: number | null | undefined, body?: CreateBigCommerceStorefrontDto | null | undefined): Observable<BigCommerceStorefrontDto>;\n /**\n * Returns extended information about BigCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getBigCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorefrontsManagementApiClient extends ApiClientBase implements IStorefrontsManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns all storefronts, relevant to the specified query parameters.\n * @param types (optional) Storefront type filter.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param search (optional) Search string for partial match.\n * @param status (optional) Storefront status.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(types?: StorefrontType[] | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, search?: string | null | undefined, status?: StorefrontStatus | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts?\";\n if (types !== undefined && types !== null)\n types && types.forEach(item => { url_ += \"types=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (status !== undefined && status !== null)\n url_ += \"status=\" + encodeURIComponent(\"\" + status) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfStorefrontDto>(<any>null);\n }\n\n /**\n * Returns a storefront by identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n\n /**\n * Deletes an existing storefront by its identifier.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<StorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<StorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<StorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<StorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <StorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<StorefrontDto>(<any>null);\n }\n\n /**\n * Creates new custom storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Custom storefront creation model.\n * @return Success\n */\n createCustomStorefront(tenantId?: number | null | undefined, body?: CreateCustomStorefrontDto | null | undefined): Observable<CustomStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/custom?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateCustomStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateCustomStorefront(<any>r));\n } catch (e) {\n return <Observable<CustomStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<CustomStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateCustomStorefront(response: HttpResponseBase): Observable<CustomStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <CustomStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<CustomStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about custom storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getCustomStorefront(id: number, tenantId?: number | null | undefined): Observable<CustomStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/custom/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetCustomStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetCustomStorefront(<any>r));\n } catch (e) {\n return <Observable<CustomStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<CustomStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetCustomStorefront(response: HttpResponseBase): Observable<CustomStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <CustomStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<CustomStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new NopCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) NopCommerce storefront creation model.\n * @return Success\n */\n createNopCommerceStorefront(tenantId?: number | null | undefined, body?: CreateNopCommerceStorefrontDto | null | undefined): Observable<NopCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/nopcommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateNopCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateNopCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateNopCommerceStorefront(response: HttpResponseBase): Observable<NopCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <NopCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<NopCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about NopCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getNopCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<NopCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/nopcommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetNopCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetNopCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<NopCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetNopCommerceStorefront(response: HttpResponseBase): Observable<NopCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <NopCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<NopCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new WooCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) WooCommerce storefront creation model.\n * @return Success\n */\n createWooCommerceStorefront(tenantId?: number | null | undefined, body?: CreateWooCommerceStorefrontDto | null | undefined): Observable<WooCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/woocommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateWooCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateWooCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateWooCommerceStorefront(response: HttpResponseBase): Observable<WooCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <WooCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<WooCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about WooCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getWooCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<WooCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/woocommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetWooCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetWooCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<WooCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetWooCommerceStorefront(response: HttpResponseBase): Observable<WooCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <WooCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<WooCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new Magento storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) Magento storefront creation model.\n * @return Success\n */\n createMagentoStorefront(tenantId?: number | null | undefined, body?: CreateMagentoStorefrontDto | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/magento?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateMagentoStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateMagentoStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateMagentoStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about Magento storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getMagentoStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/magento/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetMagentoStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetMagentoStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetMagentoStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n\n /**\n * Creates new BigCommerce storefront.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) BigCommerce storefront creation model.\n * @return Success\n */\n createBigCommerceStorefront(tenantId?: number | null | undefined, body?: CreateBigCommerceStorefrontDto | null | undefined): Observable<BigCommerceStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/bigcommerce?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreateBigCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreateBigCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<BigCommerceStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<BigCommerceStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreateBigCommerceStorefront(response: HttpResponseBase): Observable<BigCommerceStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <BigCommerceStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 400) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result400: any = null;\n result400 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<BigCommerceStorefrontDto>(<any>null);\n }\n\n /**\n * Returns extended information about BigCommerce storefront.\n * @param id Storefront identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getBigCommerceStorefront(id: number, tenantId?: number | null | undefined): Observable<MagentoStorefrontDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/storefronts/bigcommerce/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetBigCommerceStorefront(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetBigCommerceStorefront(<any>r));\n } catch (e) {\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<MagentoStorefrontDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetBigCommerceStorefront(response: HttpResponseBase): Observable<MagentoStorefrontDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <MagentoStorefrontDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<MagentoStorefrontDto>(<any>null);\n }\n}\n\nexport interface IUsersManagementApiClient {\n /**\n * Returns a tenant users list.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfTenantUserDto>;\n /**\n * Creates a new tenant user.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) User creation model.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateTenantUserDto | null | undefined): Observable<TenantUserDto>;\n /**\n * Returns a tenant user by user identifier.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<TenantUserDto>;\n /**\n * Deletes an existing tenant user.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<void>;\n /**\n * Returns all tenant user roles, relevant to the specified query parameters.\n * @param search (optional) Search string for partial match.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllRoles(search?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfTenantUserRoleDto>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UsersManagementApiClient extends ApiClientBase implements IUsersManagementApiClient {\n private http: HttpClient;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@Inject(ApiClientConfiguration) configuration: ApiClientConfiguration, @Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {\n super(configuration);\n this.http = http;\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : this.getBaseUrl(\"\");\n }\n\n /**\n * Returns a tenant users list.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAll(tenantId?: number | null | undefined): Observable<PagedOfTenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAll(<any>r));\n } catch (e) {\n return <Observable<PagedOfTenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfTenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAll(response: HttpResponseBase): Observable<PagedOfTenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfTenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfTenantUserDto>(<any>null);\n }\n\n /**\n * Creates a new tenant user.\n * @param tenantId (optional) Tenant identifier.\n * @param body (optional) User creation model.\n * @return Success\n */\n create(tenantId?: number | null | undefined, body?: CreateTenantUserDto | null | undefined): Observable<TenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users?\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ : any = {\n body: content_,\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"post\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processCreate(<any>r));\n } catch (e) {\n return <Observable<TenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processCreate(response: HttpResponseBase): Observable<TenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 409) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result409: any = null;\n result409 = _responseText === \"\" ? null : <GeneralConflictDto>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Conflict\", status, _responseText, _headers, result409);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantUserDto>(<any>null);\n }\n\n /**\n * Returns a tenant user by user identifier.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n get(id: number, tenantId?: number | null | undefined): Observable<TenantUserDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGet(<any>r));\n } catch (e) {\n return <Observable<TenantUserDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<TenantUserDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGet(response: HttpResponseBase): Observable<TenantUserDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <TenantUserDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 404) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result404: any = null;\n result404 = _responseText === \"\" ? null : <ProblemDetails>JSON.parse(_responseText, this.jsonParseReviver);\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<TenantUserDto>(<any>null);\n }\n\n /**\n * Deletes an existing tenant user.\n * @param id User identifier.\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n delete(id: number, tenantId?: number | null | undefined): Observable<void> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/{id}?\";\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"delete\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processDelete(<any>r));\n } catch (e) {\n return <Observable<void>><any>_observableThrow(e);\n }\n } else\n return <Observable<void>><any>_observableThrow(response_);\n }));\n }\n\n protected processDelete(response: HttpResponseBase): Observable<void> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return _observableOf<void>(<any>null);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<void>(<any>null);\n }\n\n /**\n * Returns all tenant user roles, relevant to the specified query parameters.\n * @param search (optional) Search string for partial match.\n * @param skip (optional) Defines page start offset from beginning of sorted result list.\n * @param take (optional) Defines page length (how many consequent items of sorted result list should be taken).\n * @param sorting (optional) Defines sorting order of result list e.g.: \"Title ASC, LastModified DESC\".\n * @param tenantId (optional) Tenant identifier.\n * @return Success\n */\n getAllRoles(search?: string | null | undefined, skip?: number | null | undefined, take?: number | null | undefined, sorting?: string | null | undefined, tenantId?: number | null | undefined): Observable<PagedOfTenantUserRoleDto> {\n let url_ = this.baseUrl + \"/api/backoffice/v1/users/roles?\";\n if (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (skip !== undefined && skip !== null)\n url_ += \"skip=\" + encodeURIComponent(\"\" + skip) + \"&\";\n if (take !== undefined && take !== null)\n url_ += \"take=\" + encodeURIComponent(\"\" + take) + \"&\";\n if (sorting !== undefined && sorting !== null)\n url_ += \"sorting=\" + encodeURIComponent(\"\" + sorting) + \"&\";\n if (tenantId !== undefined && tenantId !== null)\n url_ += \"tenantId=\" + encodeURIComponent(\"\" + tenantId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ : any = {\n observe: \"response\",\n responseType: \"blob\",\n headers: new HttpHeaders({\n \"Accept\": \"application/json\"\n })\n };\n\n return _observableFrom(this.transformOptions(options_)).pipe(_observableMergeMap(transformedOptions_ => {\n return this.http.request(\"get\", url_, transformedOptions_);\n })).pipe(_observableMergeMap((response_: any) => {\n return this.transformResult(url_, response_, (r) => this.processGetAllRoles(<any>r));\n })).pipe(_observableCatch((response_: any) => {\n if (response_ instanceof HttpResponseBase) {\n try {\n return this.transformResult(url_, response_, (r) => this.processGetAllRoles(<any>r));\n } catch (e) {\n return <Observable<PagedOfTenantUserRoleDto>><any>_observableThrow(e);\n }\n } else\n return <Observable<PagedOfTenantUserRoleDto>><any>_observableThrow(response_);\n }));\n }\n\n protected processGetAllRoles(response: HttpResponseBase): Observable<PagedOfTenantUserRoleDto> {\n const status = response.status;\n const responseBlob =\n response instanceof HttpResponse ? response.body :\n (<any>response).error instanceof Blob ? (<any>response).error : undefined;\n\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\n if (status === 200) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : <PagedOfTenantUserRoleDto>JSON.parse(_responseText, this.jsonParseReviver);\n return _observableOf(result200);\n }));\n } else if (status === 401) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n }));\n } else if (status === 403) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n }));\n } else if (status !== 200 && status !== 204) {\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }));\n }\n return _observableOf<PagedOfTenantUserRoleDto>(<any>null);\n }\n}\n\n/** Information about a service. */\nexport interface BuildInfoModel {\n /** Version number. */\n version?: string | null;\n /** Build date (UTC). */\n buildDate?: string | null;\n /** Build configuration (Debug | Release). */\n configuration?: string | null;\n /** Service name. */\n appName?: string | null;\n}\n\n/** Available product reference target types. */\nexport enum ProductReferenceType {\n ProductSpecification = \"ProductSpecification\",\n Product = \"Product\",\n ProductLink = \"ProductLink\",\n ProductBundle = \"ProductBundle\",\n}\n\n/** DTO class, containing information about storefront product reference. */\nexport interface ProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference?: string | null;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Customer's Canvas product identifier. */\n productId?: number;\n /** Customer's Canvas product version identifier. */\n productVersionId?: number;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront product reference creation date and time. */\n created?: string;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductReferenceDto {\n total?: number;\n items?: ProductReferenceDto[] | null;\n}\n\n/** Conflict types. */\nexport enum ConflictType {\n NameConflict = \"NameConflict\",\n FolderOverwriteConflict = \"FolderOverwriteConflict\",\n IdConflict = \"IdConflict\",\n GeneralConflict = \"GeneralConflict\",\n}\n\n/** Information about operation conflict. */\nexport interface GeneralConflictDto {\n /** Problem description. */\n description?: string | null;\n /** Coflict type. */\n type?: ConflictType;\n}\n\n/** Dto class, containing create operation parameters for storefront product reference. */\nexport interface CreateProductReferenceDto {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference: string;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number | null;\n /** Customer's Canvas product identifier. */\n productId?: number | null;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number | null;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number | null;\n}\n\nexport interface ProblemDetails {\n type?: string | null;\n title?: string | null;\n status?: number | null;\n detail?: string | null;\n instance?: string | null;\n}\n\n/** DTO class, containing information about storefront product reference. */\nexport interface ProductReferenceInfo {\n /** Product reference is an external reference to Customer's Canvas product, e.g online store product identifier. */\n productReference?: string | null;\n /** Product reference target type. */\n productReferenceType?: ProductReferenceType;\n /** Product reference name, e.g. online store product name. */\n productReferenceName?: string | null;\n /** Customer's Canvas product specification identifier. */\n productSpecificationId?: number;\n /** Customer's Canvas product identifier. */\n productId?: number;\n /** Customer's Canvas product link identifier. */\n productLinkId?: number;\n /** Customer's Canvas product bundle identifier. */\n productBundleId?: number;\n /** Storefront identifier. */\n storefrontId?: number;\n}\n\n/** DTO class, containing information about storefront product reference creation conflict. */\nexport interface ProductReferenceCreationConflictDto {\n /** List of storefront product references, which are already exist. */\n existingReferences?: ProductReferenceInfo[] | null;\n /** Problem description. */\n description?: string | null;\n /** Coflict type. */\n type?: ConflictType;\n}\n\n/** Dto class, containing information about a product resource of type image. */\nexport interface ImageInfo {\n /** Product resource identifier. */\n resourceId?: string | null;\n /** Product Resource URL. */\n url?: string | null;\n}\n\n/** Dto class, containing information about a product. */\nexport interface ProductDto {\n /** Product identifier. */\n id?: number;\n /** Product version identifier. */\n productVersionId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product name. */\n name?: string | null;\n /** Product description. */\n description?: string | null;\n /** Product image info. */\n image?: ImageInfo | null;\n /** Product creation time. */\n created?: string;\n /** Product modification time. */\n lastModified?: string | null;\n /** Product tags. */\n tags?: string[] | null;\n /** Product custom fields. */\n customFields?: { [key: string]: string; } | null;\n /** Personalization workflow identifier. */\n personalizationWorkflowId?: number;\n /** Processing pipeline identifier. */\n processingPipelineId?: number;\n /** Default storefront identifier. */\n storefrontId?: number | null;\n /** Default storefront product identifier. */\n storefrontProductId?: string | null;\n /** Default storefront product name. */\n storefrontProductName?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductDto {\n total?: number;\n items?: ProductDto[] | null;\n}\n\n/** Product option value creation operation parameters. */\nexport interface CreateProductOptionValueDto {\n /** Product option title. */\n title?: string | null;\n /** Product option value. */\n value?: string | null;\n /** Product option description. */\n description?: string | null;\n}\n\n/** Product option creation operation parameters. */\nexport interface CreateProductOptionDto {\n /** Option title. */\n title: string;\n /** Option traits. */\n traits?: string[] | null;\n /** Product option values. */\n values?: CreateProductOptionValueDto[] | null;\n /** Flag that indicates if option can be used for product design connections creation. */\n useForDesignBinding?: boolean;\n /** Flag that indicates if option can be used for product mockup connections creation. */\n useForMockupBinding?: boolean;\n /** Flag that indicates if option can be used for product document connections creation. */\n useForDocumentBinding?: boolean;\n}\n\n/** Product option creation operation parameters. */\nexport interface CreateProductDto {\n /** Product name. */\n name: string;\n /** Product description. */\n description?: string | null;\n /** Personalization workflow identifier. */\n personalizationWorkflowId?: number;\n /** Processing pipeline identifier. */\n processingPipelineId?: number;\n /** Product tags. */\n tags?: string[] | null;\n /** Product custom fields. */\n customFields?: { [key: string]: string; } | null;\n /** Product options parameters. */\n options?: CreateProductOptionDto[] | null;\n}\n\n/** Available option types. */\nexport enum OptionType {\n Simple = \"Simple\",\n Size = \"Size\",\n PageCount = \"PageCount\",\n}\n\n/** Available appearance types. */\nexport enum AppearanceDataType {\n Radio = \"Radio\",\n Dropdown = \"Dropdown\",\n Chips = \"Chips\",\n ColorGrid = \"ColorGrid\",\n ColorList = \"ColorList\",\n ImageGrid = \"ImageGrid\",\n ImageList = \"ImageList\",\n}\n\n/** DTO class, containing information about a product option appearance item. */\nexport interface AppearanceDataItemDto {\n /** Appearance item key. */\n key?: string | null;\n /** Appearance item value. */\n value?: string | null;\n}\n\n/** DTO class, containing information about a product option appearance. */\nexport interface AppearanceDataDto {\n /** Appearance type. */\n type?: AppearanceDataType;\n /** Appearance items. */\n items?: AppearanceDataItemDto[] | null;\n}\n\n/** Option value description for 'Simple' option type. */\nexport interface SimpleOptionValue {\n /** String Value. */\n value?: string | null;\n}\n\n/** DTO class, containing information about a product option value. */\nexport interface ProductOptionValueDto {\n /** Product option value identifier. */\n id?: number;\n /** Product option value title. */\n title?: string | null;\n /** Product option value sort index. */\n sortIndex?: number;\n /** Indicates if product option value is used as a default value. */\n isDefault?: boolean;\n /** Product option value identifying tag. */\n tag?: string | null;\n /** Product option value UID. */\n uid?: string | null;\n /** Product option value description for 'Simple' option type. */\n simpleOptionValue?: SimpleOptionValue | null;\n /** Product option value description. */\n description?: string | null;\n /** Product option value colors. */\n colors?: string[] | null;\n /** Product option value image. */\n image?: ImageInfo | null;\n}\n\n/** DTO class, containing information about a product option. */\nexport interface ProductOptionDto {\n /** Product option identifier. */\n id?: number;\n /** Product version identifier */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Option type ('Simple' / 'Size' / 'PageCount'). */\n type?: OptionType;\n /** Option traits. */\n traits?: string[] | null;\n /** Product option title. */\n title?: string | null;\n /** Product option sort index. */\n sortIndex?: number;\n /** Product option identifying tag. */\n tag?: string | null;\n /** Product option UID. */\n uid?: string | null;\n /** Specifies if the option is used for design binding. */\n useForDesignBinding?: boolean;\n /** Specifies if the option is used for mockup binding. */\n useForMockupBinding?: boolean;\n /** Specifies if the option is used for document binding. */\n useForDocumentBinding?: boolean;\n /** Product option description. */\n description?: string | null;\n /** Product option tooltip. */\n tooltip?: string | null;\n /** Product option appearance. */\n appearanceData?: AppearanceDataDto | null;\n /** Product option image info. */\n image?: ImageInfo | null;\n /** A list of product option values. */\n productOptionValues?: ProductOptionValueDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductOptionDto {\n total?: number;\n items?: ProductOptionDto[] | null;\n}\n\n/** Product option value create or update operation parameters. */\nexport interface SetProductOptionValueDto {\n /** Product option value UID. */\n uid?: string | null;\n /** Product option value description. */\n description?: string | null;\n /** Product option value sort index. */\n sortIndex?: number;\n /** Indicates if product option value is used as a default value. */\n isDefault?: boolean;\n /** Product option title. */\n title?: string | null;\n /** Product option value. */\n value?: string | null;\n /** Product option value colors. */\n colors?: string[] | null;\n}\n\n/** Product option create or update operation parameters. */\nexport interface SetProductOptionDto {\n /** Product option UID. */\n uid?: string | null;\n /** Product option title. */\n title?: string | null;\n /** Product option description. */\n description?: string | null;\n /** Product option tooltip. */\n tooltip?: string | null;\n /** Product option sort index. */\n sortIndex?: number;\n /** Specifies if the option is used for design binding. */\n useForDesignBinding?: boolean;\n /** Specifies if the option is used for mockup binding. */\n useForMockupBinding?: boolean;\n /** Specifies if the option is used for document binding. */\n useForDocumentBinding?: boolean;\n /** A list of product option values. */\n values?: SetProductOptionValueDto[] | null;\n}\n\n/** Product options setting operation parameters. */\nexport interface SetProductOptionsDto {\n /** Product options create or update parameters. */\n options?: SetProductOptionDto[] | null;\n}\n\n/** Dto class, containing information about a product variant option. */\nexport interface ProductVariantOptionDto {\n /** Product option identifier. */\n productOptionId?: number | null;\n /** Product option value identifier. */\n productOptionValueId?: number | null;\n /** Product option type ('Simple' / 'Size' / 'PageCount'). */\n productOptionType?: OptionType;\n /** Product option traits. */\n productOptionTraits?: string[] | null;\n /** Product option title. */\n productOptionTitle?: string | null;\n /** Product option value title. */\n productOptionValueTitle?: string | null;\n /** Product option value description for 'Simple' option type. */\n simpleOptionValue?: SimpleOptionValue | null;\n}\n\n/** DTO class, containing information about a product variant. */\nexport interface ProductVariantDto {\n /** Product variant identifier. */\n id?: number;\n /** Product variant unique identifier. */\n uid?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant weight. */\n weight?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDto {\n total?: number;\n items?: ProductVariantDto[] | null;\n}\n\n/** Available product variant resource types. */\nexport enum ProductVariantResourceType {\n Preview = \"Preview\",\n EditorModel = \"EditorModel\",\n Custom = \"Custom\",\n}\n\n/** Product variant resource description for 'Preview' resource type. */\nexport interface ProductVariantResourcePreview {\n /** Preview with in pixels. */\n width?: number | null;\n /** Preview height in pixels. */\n height?: number | null;\n /** Mockup which is used to create preview. */\n mockupId?: string | null;\n /** Design surface index which is used to create preivew. */\n surfaceIndex?: number | null;\n}\n\n/** Dto class, containing information about a product variant resource. */\nexport interface ProductVariantResourceDto {\n /** Resource identifier. */\n resourceId?: string | null;\n /** Resource name. */\n name?: string | null;\n /** Resource url. */\n url?: string | null;\n /** Resource type. */\n type?: ProductVariantResourceType;\n /** Product variant resource description for 'Preview' resource type. */\n resourcePreview?: ProductVariantResourcePreview | null;\n}\n\n/** Dto class, containing information about a product variant design. */\nexport interface ProductVariantDesignDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Design identifier. */\n designId?: string | null;\n /** Design name. */\n designName?: string | null;\n /** Design grouping tag. */\n designGroup?: string | null;\n /** Design data schema tag. Indicates if design has data schema. */\n designHasDataSchema?: boolean;\n /** Design toggle set tag. Indicated if design has toggle set. */\n designHasToggleSet?: boolean;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n /** A list of product variant resources. */\n productVariantResources?: ProductVariantResourceDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDesignDto {\n total?: number;\n items?: ProductVariantDesignDto[] | null;\n}\n\n/** Available mockup types. */\nexport enum ProductVariantMockupType {\n Thumbnail = \"Thumbnail\",\n Editor = \"Editor\",\n Preview = \"Preview\",\n}\n\n/** Available surface usage types. */\nexport enum SurfaceUsageType {\n Individual = \"Individual\",\n Custom = \"Custom\",\n All = \"All\",\n}\n\n/** Dto class, containing information about a product variant mockup. */\nexport interface ProductVariantMockupDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number | null;\n /** Product variant identifier in online store (usually SKU). */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Mockup identifier. */\n mockupId?: string | null;\n /** Mockup name. */\n mockupName?: string | null;\n /** Mockup type. */\n mockupType?: ProductVariantMockupType;\n /** Surface index indicates a surface of a design to which mockup should be applied. */\n surfaceIndex?: number | null;\n /** Surface usage type defines a scheme for applying mockup to design surfaces. */\n surfaceUsageType?: SurfaceUsageType;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantMockupDto {\n total?: number;\n items?: ProductVariantMockupDto[] | null;\n}\n\n/** DTO class, containing information about a product variant document. */\nexport interface ProductVariantDocumentDto {\n /** Product variant identifier. */\n productVariantId?: number;\n /** Product variant unique identifier. */\n productVariantUID?: string | null;\n /** Product version identifier. */\n productVersionId?: number;\n /** Product identifier. */\n productId?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Product variant available. */\n isAvailable?: boolean;\n /** Product variant price. */\n price?: number | null;\n /** Product variant sort index. */\n sortIndex?: number;\n /** Product variant identifier (usually SKU) in storefront / online store. */\n storefrontProductVariantId?: string | null;\n /** Product variant SKU. */\n sku?: string | null;\n /** Document identifier. */\n documentId?: string | null;\n /** Document name. */\n documentName?: string | null;\n /** Document grouping tag. */\n documentGroup?: string | null;\n /** A list of product variant options. */\n productVariantOptions?: ProductVariantOptionDto[] | null;\n /** A list of product variant resources. */\n productVariantResources?: ProductVariantResourceDto[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProductVariantDocumentDto {\n total?: number;\n items?: ProductVariantDocumentDto[] | null;\n}\n\n/** Parameters for setting product variants price. */\nexport interface ProductVariantPriceDto {\n /** Price. */\n price?: number | null;\n /** UIDs of variants for price setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants price setting operation parameters. */\nexport interface SetProductVariantPriceDto {\n /** List of product variants grouped by price value. */\n items?: ProductVariantPriceDto[] | null;\n}\n\n/** Parameters for setting product variants weight. */\nexport interface ProductVariantWeightDto {\n /** Weight. */\n weight?: number | null;\n /** UIDs of variants for price setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants weight setting operation parameters. */\nexport interface SetProductVariantWeightDto {\n /** List of product variants grouped by weight value. */\n items?: ProductVariantWeightDto[] | null;\n}\n\n/** Parameters for setting product variants availability. */\nexport interface ProductVariantAvailabilityDto {\n /** Availability. */\n availability?: boolean;\n /** UIDs of variants for availability setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants availability setting operation parameters. */\nexport interface SetProductVariantAvailabilityDto {\n /** List of product variants grouped by availability value. */\n items?: ProductVariantAvailabilityDto[] | null;\n}\n\n/** Parameters for setting product variants SKU. */\nexport interface ProductVariantSkuDto {\n /** SKU. */\n sku?: string | null;\n /** UIDs of variants for SKU setting. */\n variantUIDs?: string[] | null;\n}\n\n/** Product variants SKU setting operation parameters. */\nexport interface SetProductVariantSkuDto {\n /** List of product variants grouped by SKU value. */\n items?: ProductVariantSkuDto[] | null;\n}\n\n/** Product asset connection options description. */\nexport interface ProductAssetConnectionOptionsDto {\n /** Product option UID. */\n optionUID?: string | null;\n /** Product option values UIDs. */\n optionValueUIDs?: string[] | null;\n}\n\n/** Product design connection description. */\nexport interface ProductDesignConnectionDto {\n /** Design identifier. */\n designId?: string | null;\n /** Connection options. Set empty if design should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product designs connections creation model. */\nexport interface CreateProductDesignConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductDesignConnectionDto[] | null;\n}\n\n/** Product asset connection removing parameters. */\nexport interface RemoveProductAssetConnectionDto {\n /** Asset identifier. */\n assetId?: string | null;\n /** Connection options. Set empty if all product variants connections should be removed. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product designs connections removing model. */\nexport interface RemoveProductDesignConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Product mockup type. */\nexport enum ProductMockupType {\n Thumbnail = \"Thumbnail\",\n Editor = \"Editor\",\n Preview = \"Preview\",\n}\n\n/** Product mockup connection description. */\nexport interface ProductMockupConnectionDto {\n /** Mockup identifier. */\n mockupId?: string | null;\n /** Connection options. Set empty if mockup should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n /** Product mockup types. Single mockup may be used as editor, preview and thumbnail mockup at the same time. */\n mockupTypes?: ProductMockupType[] | null;\n /** Product mockup target surfaces. Comma-separated surface indexes (\"1,2,3\") or `all` value may be set. */\n surfaces?: string | null;\n}\n\n/** Product mockups connections creation model. */\nexport interface CreateProductMockupConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductMockupConnectionDto[] | null;\n}\n\n/** Product mockups connections removing model. */\nexport interface RemoveProductMockupConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Product document connection description. */\nexport interface ProductDocumentConnectionDto {\n /** Document identifier. */\n documentId?: string | null;\n /** Connection options. Set empty if document should be available for all product variants. */\n options?: ProductAssetConnectionOptionsDto[] | null;\n}\n\n/** Product documents connections creation model. */\nexport interface CreateProductDocumentConnectionsDto {\n /** Connection parameters list. */\n connections?: ProductDocumentConnectionDto[] | null;\n}\n\n/** Product documents connections removing model. */\nexport interface RemoveProductDocumentConnectionsDto {\n /** Connection parameters list. */\n connections?: RemoveProductAssetConnectionDto[] | null;\n}\n\n/** Type of editor that should be configured by workflow. */\nexport enum WorkflowType {\n UIFramework = \"UIFramework\",\n SimpleEditor = \"SimpleEditor\",\n DesignEditor = \"DesignEditor\",\n WorkflowElements = \"WorkflowElements\",\n}\n\n/** Personalization workflow description DTO. */\nexport interface PersonalizationWorkflowDto {\n /** Workflow identifier. */\n id?: number;\n /** Workflow name. */\n name?: string | null;\n /** Workflow type. */\n workflowType?: WorkflowType;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfPersonalizationWorkflowDto {\n total?: number;\n items?: PersonalizationWorkflowDto[] | null;\n}\n\n/** Dto class, containing information about processing pipeline details. */\nexport interface ProcessingPipelineDto {\n /** Processing pipeline identifier. */\n id?: number;\n /** Processing pipeline name. */\n name?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProcessingPipelineDto {\n total?: number;\n items?: ProcessingPipelineDto[] | null;\n}\n\n/** Project status parameters. */\nexport interface ProjectStatusDto {\n /** Project status identifier. */\n id?: number;\n /** Status code. */\n code?: number;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProjectStatusDto {\n total?: number;\n items?: ProjectStatusDto[] | null;\n}\n\n/** Project status creation parameters. */\nexport interface CreateProjectStatusDto {\n /** Status code. */\n code?: number;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean;\n}\n\n/** Project status update parameters. */\nexport interface UpdateProjectStatusDto {\n /** Status code. */\n code?: number | null;\n /** Status mark color. */\n color?: string | null;\n /** Status display name. */\n displayName?: string | null;\n /** Indicates if status is initial for all projects. Only one status may be used as initial. */\n isInitial?: boolean | null;\n /** Indicates if status is final. Multiple statuses may be used as final (e.g. Completed, Rejected etc). */\n isFinal?: boolean | null;\n}\n\n/** Project status transition dto class. */\nexport interface ProjectStatusTransitionDto {\n /** Transition identifier. */\n id?: number;\n /** Transition identifying name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfProjectStatusTransitionDto {\n total?: number;\n items?: ProjectStatusTransitionDto[] | null;\n}\n\n/** Project status transition update parameters. */\nexport interface UpdateProjectStatusTransitionDto {\n /** Transition hidden system name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Project status transition creation parameters. */\nexport interface CreateProjectStatusTransitionDto {\n /** Transition hidden system name. */\n name?: string | null;\n /** Transition display name. */\n displayName?: string | null;\n /** Project status code from which transition to the result status code can be done. */\n startStatus?: number;\n /** Transition result project status code. */\n resultStatus?: number;\n}\n\n/** Storefront types. */\nexport enum StorefrontType {\n Custom = \"Custom\",\n ShopifyLegacy = \"ShopifyLegacy\",\n DocketManager = \"DocketManager\",\n CustomSaml = \"CustomSaml\",\n NopCommerce = \"NopCommerce\",\n WooCommerce = \"WooCommerce\",\n Magento = \"Magento\",\n BigCommerce = \"BigCommerce\",\n Shopify = \"Shopify\",\n ShopifyCustom = \"ShopifyCustom\",\n}\n\n/** Storefront status. */\nexport enum StorefrontStatus {\n Dev = \"Dev\",\n Prod = \"Prod\",\n}\n\n/** Dto class, containing information about a storefront. */\nexport interface StorefrontDto {\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfStorefrontDto {\n total?: number;\n items?: StorefrontDto[] | null;\n}\n\n/** Custom storefront creation model. */\nexport interface CreateCustomStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Name of header that will be used to provide API key to target storefront system. */\n apiKeyHeaderName?: string | null;\n /** API key for target storefront system. */\n apiKey?: string | null;\n /** List of storefront shops URLs. */\n shopUrls: string[];\n}\n\n/** Custom storefront description. */\nexport interface CustomStorefrontDto {\n /** Name of header that will be used to provide API key to target storefront system. */\n apiKeyHeaderName?: string | null;\n /** API key for target storefront system. */\n apiKey?: string | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** NopCommerce storefront creation model. */\nexport interface CreateNopCommerceStorefrontDto {\n /** NopCommerce storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of NopCommerce shops URLs. */\n shopUrls: string[];\n /** NopCommerce back-end application URL. */\n backendUrl: string;\n}\n\n/** NopCommerce storefront settings. */\nexport interface NopCommerceSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n /** NopCommerce plugin API key. */\n pluginApiKey?: string | null;\n}\n\n/** NopCommerce storefront description. */\nexport interface NopCommerceStorefrontDto {\n /** NopCommerce storefront settings. */\n settings?: NopCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** WooCommerce storefront creation model. */\nexport interface CreateWooCommerceStorefrontDto {\n /** WooCommerce storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of WooCommerce shops URLs. */\n shopUrls: string[];\n /** WooCommerce back-end application URL. */\n backendUrl: string;\n}\n\n/** WooCommerce storefront settings. */\nexport interface WooCommerceSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n /** WooCommerce plugin API key. */\n pluginApiKey?: string | null;\n}\n\n/** WooCommerce storefront description. */\nexport interface WooCommerceStorefrontDto {\n /** WooCommerce storefront settings. */\n settings?: WooCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** Magento storefront creation model. */\nexport interface CreateMagentoStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of Magento shops URLs. */\n shopUrls: string[];\n /** Magento back-end application URL. */\n backendUrl: string;\n /** Magento API key. */\n shopApiKey: string;\n /** Magento shop code. */\n shopCode?: string | null;\n}\n\n/** Magento storefront settings. */\nexport interface MagentoSettingsDto {\n /** Customer's Canvas Asset Storage URL. */\n assetStorageUrl?: string | null;\n /** Customer's Canvas Asset Processor URL. */\n assetProcessorUrl?: string | null;\n /** Customer's Canvas tenant identifier. */\n tenantId?: number;\n /** Customer's Canvas storefront identifier. */\n storefrontId?: number;\n /** Customer's Canvas custom application client identifier. */\n clientId?: string | null;\n /** Customer's Canvas custom application client secret. */\n clientSecret?: string | null;\n}\n\n/** Magento storefront description. */\nexport interface MagentoStorefrontDto {\n /** Magento storefront settings. */\n settings?: MagentoSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** BigCommerce storefront creation model. */\nexport interface CreateBigCommerceStorefrontDto {\n /** Storefront name. */\n name: string;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** List of shops URLs. */\n shopUrls: string[];\n /** BigCommerce access token. */\n accessToken: string;\n /** BigCommerce client name. */\n clientName: string;\n /** BigCommerce client identifier. */\n clientId: string;\n /** BigCommerce client secret. */\n clientSecret: string;\n /** BigCommerce integration name. */\n integrationName: string;\n /** BigCommerce API path. */\n apiPath: string;\n}\n\n/** BigCommerce storefront settings. */\nexport interface BigCommerceSettingsDto {\n /** BigCommerce access token. */\n accessToken?: string | null;\n /** BigCommerce client name. */\n bigCommerceClientName?: string | null;\n /** BigCommerce API path. */\n apiPath?: string | null;\n /** BigCommerce client secret. */\n bigCommerceClientSecret?: string | null;\n /** BigCommerce client identifier. */\n bigCommerceClientId?: string | null;\n /** BigCommerce integration name. */\n integrationName?: string | null;\n}\n\n/** BigCommerce storefront description. */\nexport interface BigCommerceStorefrontDto {\n /** BigCommerce integration settings. */\n settings?: BigCommerceSettingsDto | null;\n /** Storefront identifier. */\n id?: number;\n /** Tenant identifier. */\n tenantId?: number;\n /** Storefront name. */\n name?: string | null;\n /** Status of project that should become a trigger to start project items processing automatically. */\n processingPipelinesTriggerProjectStatus?: number | null;\n /** Identifier of pipeline that should be used for post-processing for projects when all project items are processed. */\n postProcessingPipelineId?: number | null;\n /** Storefront ecommerce system type. */\n type?: StorefrontType;\n /** Storefront entity creation date and time. */\n created?: string;\n /** Connected shops URLs. */\n shopUrls?: string[] | null;\n}\n\n/** Tenant user description. */\nexport interface TenantUserDto {\n /** User identifier. */\n id?: number;\n /** User login. */\n login?: string | null;\n /** User email address. */\n email?: string | null;\n /** User first name. */\n firstName?: string | null;\n /** User last name. */\n lastName?: string | null;\n /** User status. */\n isActive?: boolean;\n /** User roles. */\n roleNames?: string[] | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfTenantUserDto {\n total?: number;\n items?: TenantUserDto[] | null;\n}\n\n/** Tenant user creation model. */\nexport interface CreateTenantUserDto {\n /** User login (up to 256 symbols). */\n login: string;\n /** User first name (up to 64 symbols). */\n firstName: string;\n /** User last name (up to 64 symbols). */\n lastName: string;\n /** User email address (up to 256 symbols). */\n email: string;\n /** User status. */\n isActive?: boolean;\n /** User roles (e.g. 'Admin', 'User'). */\n roleNames?: string[] | null;\n /** User password (up to 32 symbols). */\n password: string;\n}\n\n/** Tenant user role description. */\nexport interface TenantUserRoleDto {\n /** Role identifier. */\n id?: number;\n /** Role name. */\n name?: string | null;\n}\n\n/** DTO, containing results of paged query. */\nexport interface PagedOfTenantUserRoleDto {\n total?: number;\n items?: TenantUserRoleDto[] | null;\n}\n\nexport interface FileParameter {\n data: any;\n fileName: string;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable<any> {\n return _observableThrow(new ApiException(message, status, response, headers, result));\n}\n\nfunction blobToText(blob: any): Observable<string> {\n return new Observable<string>((observer: any) => {\n if (!blob) {\n observer.next(\"\");\n observer.complete();\n } else {\n let reader = new FileReader();\n reader.onload = event => {\n observer.next((<any>event.target).result);\n observer.complete();\n };\n reader.readAsText(blob);\n }\n });\n}","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport * as BackOfficeApiClient from './backoffice-api-client';\n\n// @dynamic\nexport function CreateApiClientConfiguration(token: string, apiUrl: string, apiKey: string = 'ApiKey'): BackOfficeApiClient.ApiClientConfiguration {\n const apiConf = new BackOfficeApiClient.ApiClientConfiguration();\n apiConf.apiKey = apiKey;\n apiConf.apiUrl = apiUrl;\n apiConf.setAuthorizationToken(token);\n return apiConf;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n ],\n exports: []\n})\nexport class BackOfficeModule {\n static forRoot(token: string, apiUrl: string, apiKey: string = 'ApiKey'): ModuleWithProviders<BackOfficeModule> {\n return {\n ngModule: BackOfficeModule,\n providers: [\n {\n provide: BackOfficeApiClient.API_BASE_URL,\n useValue: apiUrl\n },\n {\n provide: BackOfficeApiClient.ApiClientConfiguration,\n useFactory: CreateApiClientConfiguration.bind(this, token , apiUrl, apiKey)\n },\n ]\n };\n }\n}\n"]}
|