@revxui/api-clients-ts 0.10.331 → 0.10.332

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.
Files changed (631) hide show
  1. package/README.md +2 -2
  2. package/api/appSettingsController.service.d.ts +39 -0
  3. package/bundles/revxui-api-clients-ts.umd.js +703 -783
  4. package/bundles/revxui-api-clients-ts.umd.js.map +1 -1
  5. package/bundles/revxui-api-clients-ts.umd.min.js +2 -2
  6. package/bundles/revxui-api-clients-ts.umd.min.js.map +1 -1
  7. package/esm2015/api/adminController.service.js +8 -11
  8. package/esm2015/api/advertiserController.service.js +8 -11
  9. package/esm2015/api/api.js +1 -1
  10. package/esm2015/api/appSettingsController.service.js +97 -11
  11. package/esm2015/api/audienceController.service.js +8 -11
  12. package/esm2015/api/auditController.service.js +8 -11
  13. package/esm2015/api/bulkStrategyController.service.js +8 -11
  14. package/esm2015/api/cSSThemeController_.service.js +8 -11
  15. package/esm2015/api/campaignController.service.js +8 -11
  16. package/esm2015/api/catalogController.service.js +8 -11
  17. package/esm2015/api/clickDestinationController.service.js +8 -11
  18. package/esm2015/api/creativeController.service.js +8 -11
  19. package/esm2015/api/creativeSetsController.service.js +8 -11
  20. package/esm2015/api/creativeTemplateThemesController.service.js +8 -11
  21. package/esm2015/api/creativeTemplateVariablesController.service.js +8 -11
  22. package/esm2015/api/creativeTemplatesController.service.js +8 -11
  23. package/esm2015/api/dashboardController.service.js +8 -11
  24. package/esm2015/api/notificationsController.service.js +8 -11
  25. package/esm2015/api/pixelController.service.js +8 -11
  26. package/esm2015/api/reportingController.service.js +8 -11
  27. package/esm2015/api/sliceXController.service.js +8 -11
  28. package/esm2015/api/strategyController.service.js +8 -11
  29. package/esm2015/api/uILoggerController.service.js +8 -11
  30. package/esm2015/api/userPreferenceController.service.js +8 -11
  31. package/esm2015/api.module.js +36 -41
  32. package/esm2015/configuration.js +1 -1
  33. package/esm2015/encoder.js +1 -1
  34. package/esm2015/index.js +1 -1
  35. package/esm2015/model/aBTestDTO.js +2 -1
  36. package/esm2015/model/activityLog.js +2 -1
  37. package/esm2015/model/activityLogsCreativeSetsBulkUpdateDTO.js +1 -1
  38. package/esm2015/model/activityLogsStrategyBulkUpdateDTO.js +1 -1
  39. package/esm2015/model/advertiser.js +2 -1
  40. package/esm2015/model/advertiserDynamicDetails.js +2 -1
  41. package/esm2015/model/advertiserDynamicVideoConfig.js +2 -0
  42. package/esm2015/model/advertiserLayoutVariables.js +2 -1
  43. package/esm2015/model/advertiserPojo.js +2 -1
  44. package/esm2015/model/advertiserSettings.js +2 -1
  45. package/esm2015/model/ageGroup.js +2 -1
  46. package/esm2015/model/apiListResponseABTestDTO.js +2 -1
  47. package/esm2015/model/apiListResponseActivityLog.js +2 -1
  48. package/esm2015/model/apiListResponseActivityLogsCreativeSetsBulkUpdateDTO.js +2 -1
  49. package/esm2015/model/apiListResponseActivityLogsStrategyBulkUpdateDTO.js +2 -1
  50. package/esm2015/model/apiListResponseAudiencePerformanceDTO.js +2 -1
  51. package/esm2015/model/apiListResponseCatalogFeed.js +2 -1
  52. package/esm2015/model/apiListResponseClickDestination.js +2 -1
  53. package/esm2015/model/apiListResponseCreativeCompactDTO.js +2 -1
  54. package/esm2015/model/apiListResponseCreativeDTO.js +2 -1
  55. package/esm2015/model/apiListResponseCreativeSetDashboardMetric.js +2 -1
  56. package/esm2015/model/apiListResponseCreativeTemplateDTO.js +2 -1
  57. package/esm2015/model/apiListResponseMacro.js +2 -1
  58. package/esm2015/model/apiListResponsePixel.js +2 -1
  59. package/esm2015/model/apiListResponseVariablesMappingDTO.js +2 -1
  60. package/esm2015/model/apiResponseObjectABTestDTO.js +2 -1
  61. package/esm2015/model/apiResponseObjectAdvertiserDynamicDetails.js +2 -1
  62. package/esm2015/model/apiResponseObjectAdvertiserDynamicVideoConfig.js +2 -0
  63. package/esm2015/model/apiResponseObjectAdvertiserPojo.js +2 -1
  64. package/esm2015/model/apiResponseObjectAdvertiserSettings.js +2 -1
  65. package/esm2015/model/apiResponseObjectApiListResponseActivityLogsCreativeSetsBulkUpdateDTO.js +2 -1
  66. package/esm2015/model/apiResponseObjectApiListResponseActivityLogsStrategyBulkUpdateDTO.js +2 -1
  67. package/esm2015/model/apiResponseObjectApiListResponseAudiencePerformanceDTO.js +2 -1
  68. package/esm2015/model/apiResponseObjectApiListResponseCatalogFeed.js +2 -1
  69. package/esm2015/model/apiResponseObjectApiListResponseClickDestination.js +2 -1
  70. package/esm2015/model/apiResponseObjectApiListResponseCreativeCompactDTO.js +2 -1
  71. package/esm2015/model/apiResponseObjectApiListResponseCreativeDTO.js +2 -1
  72. package/esm2015/model/apiResponseObjectApiListResponseCreativeSetDashboardMetric.js +2 -1
  73. package/esm2015/model/apiResponseObjectApiListResponseCreativeTemplateDTO.js +2 -1
  74. package/esm2015/model/apiResponseObjectApiListResponsePixel.js +2 -1
  75. package/esm2015/model/apiResponseObjectApiListResponseVariablesMappingDTO.js +2 -1
  76. package/esm2015/model/apiResponseObjectAudienceAccessDTO.js +2 -1
  77. package/esm2015/model/apiResponseObjectAudienceDTO.js +2 -1
  78. package/esm2015/model/apiResponseObjectBaseModel.js +2 -1
  79. package/esm2015/model/apiResponseObjectBulkEditCreativeSetsResponse.js +2 -1
  80. package/esm2015/model/apiResponseObjectBulkEditStrategiesResponse.js +2 -1
  81. package/esm2015/model/apiResponseObjectBulkstrategiesUpdateResponse.js +2 -1
  82. package/esm2015/model/apiResponseObjectCampaignDTO.js +2 -1
  83. package/esm2015/model/apiResponseObjectCatalogFeed.js +2 -1
  84. package/esm2015/model/apiResponseObjectChartDashboardResponse.js +2 -1
  85. package/esm2015/model/apiResponseObjectClickDestination.js +2 -1
  86. package/esm2015/model/apiResponseObjectClickDestinationAutomationUrls.js +2 -1
  87. package/esm2015/model/apiResponseObjectCreativeDTO.js +2 -1
  88. package/esm2015/model/apiResponseObjectCreativePerformanceData.js +2 -1
  89. package/esm2015/model/apiResponseObjectCreativeSetDetails.js +2 -1
  90. package/esm2015/model/apiResponseObjectCreativeSetResponse.js +2 -1
  91. package/esm2015/model/apiResponseObjectCreativeTemplatesMetadataDTO.js +2 -1
  92. package/esm2015/model/apiResponseObjectDashboardMetrics.js +2 -1
  93. package/esm2015/model/apiResponseObjectDashboardResponse.js +2 -1
  94. package/esm2015/model/apiResponseObjectDictionaryResponse.js +2 -1
  95. package/esm2015/model/apiResponseObjectDmpAudienceDTO.js +2 -1
  96. package/esm2015/model/apiResponseObjectDuplicateCreativeSetResponse.js +2 -1
  97. package/esm2015/model/apiResponseObjectEResponseobject.js +2 -1
  98. package/esm2015/model/apiResponseObjectEligibleUsersResponse.js +2 -1
  99. package/esm2015/model/apiResponseObjectFileDownloadResponse.js +2 -1
  100. package/esm2015/model/apiResponseObjectGeoListDTO.js +2 -1
  101. package/esm2015/model/apiResponseObjectListAppSettingsDTO.js +2 -1
  102. package/esm2015/model/apiResponseObjectListAudienceDTO.js +2 -1
  103. package/esm2015/model/apiResponseObjectListAuditDetails.js +2 -1
  104. package/esm2015/model/apiResponseObjectListAuditMarker.js +2 -1
  105. package/esm2015/model/apiResponseObjectListBackfillAudienceQueryTemplateDTO.js +2 -1
  106. package/esm2015/model/apiResponseObjectListBaseModel.js +2 -1
  107. package/esm2015/model/apiResponseObjectListBulkstrategiesValidationResponse.js +2 -1
  108. package/esm2015/model/apiResponseObjectListCampaignDTO.js +2 -1
  109. package/esm2015/model/apiResponseObjectListCreativeFiles.js +2 -1
  110. package/esm2015/model/apiResponseObjectListDynamicVideoTemplate.js +2 -0
  111. package/esm2015/model/apiResponseObjectListMenuCrubResponse.js +2 -1
  112. package/esm2015/model/apiResponseObjectListTemplateThemeDTO.js +2 -1
  113. package/esm2015/model/apiResponseObjectListTemplateVariablesDTO.js +2 -1
  114. package/esm2015/model/apiResponseObjectListUserPreferenceDTO.js +2 -1
  115. package/esm2015/model/apiResponseObjectMapintResponseMessage.js +2 -1
  116. package/esm2015/model/apiResponseObjectMaplongResponseMessage.js +2 -1
  117. package/esm2015/model/apiResponseObjectMenuCrubResponse.js +2 -1
  118. package/esm2015/model/apiResponseObjectMetaRulesDto.js +2 -1
  119. package/esm2015/model/apiResponseObjectParentBasedObject.js +2 -1
  120. package/esm2015/model/apiResponseObjectPixel.js +2 -1
  121. package/esm2015/model/apiResponseObjectReportingResponse.js +2 -1
  122. package/esm2015/model/apiResponseObjectResponseMessage.js +2 -1
  123. package/esm2015/model/apiResponseObjectSiteListDTO.js +2 -1
  124. package/esm2015/model/apiResponseObjectSkadTargetPrivileges.js +2 -1
  125. package/esm2015/model/apiResponseObjectSlicexChartResponse.js +2 -1
  126. package/esm2015/model/apiResponseObjectSlicexListResponse.js +2 -1
  127. package/esm2015/model/apiResponseObjectStrategyCreativeAssociationResponseDTO.js +2 -1
  128. package/esm2015/model/apiResponseObjectStrategyDTO.js +2 -1
  129. package/esm2015/model/apiResponseObjectStrategyQuickEditDTO.js +2 -1
  130. package/esm2015/model/apiResponseObjectTag.js +2 -1
  131. package/esm2015/model/apiResponseObjectTemplateThemeDTO.js +2 -1
  132. package/esm2015/model/apiResponseObjectVoid.js +2 -1
  133. package/esm2015/model/apiResponseObjectWhitelabelingEntity.js +2 -1
  134. package/esm2015/model/apiResponseObjectboolean.js +2 -1
  135. package/esm2015/model/apiResponseObjectlong.js +2 -1
  136. package/esm2015/model/apiResponseObjectstring.js +2 -1
  137. package/esm2015/model/appSettingsDTO.js +1 -1
  138. package/esm2015/model/appSettingsPropertyDTO.js +1 -1
  139. package/esm2015/model/auctionTypeEditField.js +1 -1
  140. package/esm2015/model/audienceAccessDTO.js +2 -1
  141. package/esm2015/model/audienceBackFilledStats.js +2 -1
  142. package/esm2015/model/audienceBackfillQueryTemplateRequest.js +1 -1
  143. package/esm2015/model/audienceBackfillRequest.js +1 -1
  144. package/esm2015/model/audienceDTO.js +1 -1
  145. package/esm2015/model/audienceESDTO.js +1 -1
  146. package/esm2015/model/audiencePerformanceDTO.js +1 -1
  147. package/esm2015/model/audienceStrDTO.js +2 -1
  148. package/esm2015/model/audienceStrEditField.js +2 -1
  149. package/esm2015/model/auditChange.js +2 -1
  150. package/esm2015/model/auditDetails.js +2 -1
  151. package/esm2015/model/auditMarker.js +2 -1
  152. package/esm2015/model/bIgIntegerEditFiled.js +2 -1
  153. package/esm2015/model/backfillAudienceQueryTemplateDTO.js +2 -1
  154. package/esm2015/model/bannerAdSuppDimensionsDTO.js +2 -1
  155. package/esm2015/model/baseModel.js +2 -1
  156. package/esm2015/model/baseModelEditField.js +2 -1
  157. package/esm2015/model/baseModelWithCreativeSetType.js +1 -1
  158. package/esm2015/model/bigDecimalEditField.js +2 -1
  159. package/esm2015/model/booleanEditField.js +2 -1
  160. package/esm2015/model/bulkEditCreativeSetsDTO.js +2 -1
  161. package/esm2015/model/bulkEditCreativeSetsListDTO.js +2 -1
  162. package/esm2015/model/bulkEditCreativeSetsResponse.js +2 -1
  163. package/esm2015/model/bulkEditStrategiesDTO.js +2 -1
  164. package/esm2015/model/bulkEditStrategiesResponse.js +2 -1
  165. package/esm2015/model/bulkEditStrategyListDTO.js +2 -1
  166. package/esm2015/model/bulkstrategiesRequest.js +2 -1
  167. package/esm2015/model/bulkstrategiesUpdateResponse.js +2 -1
  168. package/esm2015/model/bulkstrategiesValidationRequest.js +2 -1
  169. package/esm2015/model/bulkstrategiesValidationResponse.js +2 -1
  170. package/esm2015/model/cSSThemeEntity.js +2 -1
  171. package/esm2015/model/campaignDTO.js +2 -1
  172. package/esm2015/model/campaignESDTO.js +2 -1
  173. package/esm2015/model/catalogFeed.js +2 -1
  174. package/esm2015/model/chartDashboardResponse.js +2 -1
  175. package/esm2015/model/clickDestination.js +1 -1
  176. package/esm2015/model/clickDestinationAutomationUrls.js +2 -1
  177. package/esm2015/model/creative.js +2 -1
  178. package/esm2015/model/creativeCompactDTO.js +1 -1
  179. package/esm2015/model/creativeDTO.js +1 -1
  180. package/esm2015/model/creativeDetails.js +2 -1
  181. package/esm2015/model/creativeFileForSet.js +1 -1
  182. package/esm2015/model/creativeFiles.js +1 -1
  183. package/esm2015/model/creativeHtmlFileForSet.js +1 -1
  184. package/esm2015/model/creativeHtmlMockupDTO.js +2 -1
  185. package/esm2015/model/creativeListEditField.js +2 -1
  186. package/esm2015/model/creativeMockUpsDTO.js +2 -1
  187. package/esm2015/model/creativePerformanceData.js +2 -1
  188. package/esm2015/model/creativeSetDashboardMetric.js +1 -1
  189. package/esm2015/model/creativeSetDetails.js +1 -1
  190. package/esm2015/model/creativeSetListEditField.js +2 -1
  191. package/esm2015/model/creativeSetRequest.js +1 -1
  192. package/esm2015/model/creativeSetResponse.js +1 -1
  193. package/esm2015/model/creativeStrategyAssociationStatus.js +2 -1
  194. package/esm2015/model/creativeTemplateDTO.js +2 -1
  195. package/esm2015/model/creativeTemplatesMetadataDTO.js +2 -1
  196. package/esm2015/model/creativeThirdPartyAdTag.js +2 -1
  197. package/esm2015/model/dashboardData.js +2 -1
  198. package/esm2015/model/dashboardFilters.js +2 -1
  199. package/esm2015/model/dashboardMetrics.js +2 -1
  200. package/esm2015/model/dashboardRequest.js +2 -1
  201. package/esm2015/model/dashboardResponse.js +2 -1
  202. package/esm2015/model/day.js +2 -1
  203. package/esm2015/model/dayPart.js +2 -1
  204. package/esm2015/model/dayPartEditField.js +2 -1
  205. package/esm2015/model/dcoAttributesDTO.js +1 -1
  206. package/esm2015/model/dealCategoryDTO.js +2 -1
  207. package/esm2015/model/dealCategoryEditField.js +2 -1
  208. package/esm2015/model/dictionaryResponse.js +2 -1
  209. package/esm2015/model/dmpAudience.js +2 -1
  210. package/esm2015/model/dmpAudienceCriteria.js +2 -1
  211. package/esm2015/model/dmpAudienceDTO.js +2 -1
  212. package/esm2015/model/duplicateCreativeSetResponse.js +1 -1
  213. package/esm2015/model/duplicateCreativeSetsRequestDTO.js +2 -1
  214. package/esm2015/model/duplicateStrategyRequestDTO.js +2 -1
  215. package/esm2015/model/duration.js +2 -1
  216. package/esm2015/model/durationModel.js +2 -1
  217. package/esm2015/model/dynamicVideoConfigDTO.js +28 -0
  218. package/esm2015/model/dynamicVideoDTO.js +2 -0
  219. package/{esm5/model/menuCrubResponse.js → esm2015/model/dynamicVideoTemplate.js} +2 -1
  220. package/esm2015/model/eResponseobject.js +2 -1
  221. package/esm2015/model/eligibleUsersRequest.js +2 -1
  222. package/esm2015/model/eligibleUsersResponse.js +2 -1
  223. package/esm2015/model/endCards.js +2 -1
  224. package/esm2015/model/extendedBaseModel.js +2 -1
  225. package/esm2015/model/extendedTargetingObject.js +2 -1
  226. package/esm2015/model/failedDTO.js +2 -1
  227. package/esm2015/model/failedStrategyDTO.js +2 -1
  228. package/esm2015/model/failedStrategyFieldsDTO.js +2 -1
  229. package/esm2015/model/fcapDetails.js +2 -1
  230. package/esm2015/model/fcapEditField.js +2 -1
  231. package/esm2015/model/fileDownloadResponse.js +2 -1
  232. package/esm2015/model/filterModel.js +1 -1
  233. package/esm2015/model/geoListDTO.js +2 -1
  234. package/esm2015/model/geoListRequest.js +1 -1
  235. package/esm2015/model/hybridAdMapping.js +2 -1
  236. package/esm2015/model/incrementalityReportDTO.js +2 -1
  237. package/esm2015/model/incrementalityReportResponse.js +2 -1
  238. package/esm2015/model/incrementalityResponse.js +2 -1
  239. package/esm2015/model/integerEditField.js +2 -1
  240. package/esm2015/model/macro.js +1 -1
  241. package/esm2015/model/mapintResponseMessage.js +2 -1
  242. package/esm2015/model/maplongResponseMessage.js +2 -1
  243. package/esm2015/model/menuCrubResponse.js +2 -1
  244. package/esm2015/model/metaRuleDto.js +1 -1
  245. package/esm2015/model/metaRulesDto.js +2 -1
  246. package/esm2015/model/modelError.js +2 -1
  247. package/esm2015/model/models.js +240 -1
  248. package/{esm5/model/durationModel.js → esm2015/model/nameAndTitleModel.js} +2 -1
  249. package/esm2015/model/nativeAssetPojo.js +2 -1
  250. package/esm2015/model/notificationListResponseNotificationResponse.js +2 -1
  251. package/esm2015/model/notificationResponse.js +1 -1
  252. package/esm2015/model/parentBasedObject.js +2 -1
  253. package/esm2015/model/pixel.js +2 -1
  254. package/esm2015/model/pixelDataFileDTO.js +1 -1
  255. package/esm2015/model/pixelDataScheduleDTO.js +2 -1
  256. package/esm2015/model/pixelRemoteConfigDTO.js +2 -1
  257. package/esm2015/model/platformAudienceDTO.js +2 -1
  258. package/esm2015/model/rTBAggregators.js +2 -1
  259. package/esm2015/model/rTBAggregatorsEditField.js +2 -1
  260. package/esm2015/model/rTBSites.js +2 -1
  261. package/esm2015/model/rTBSitesEditField.js +2 -1
  262. package/esm2015/model/remoteFileDTO.js +1 -1
  263. package/esm2015/model/reportProperty.js +1 -1
  264. package/esm2015/model/reportingRequest.js +1 -1
  265. package/esm2015/model/reportingResponse.js +1 -1
  266. package/esm2015/model/responseMessage.js +2 -1
  267. package/esm2015/model/ruleComponentDTO.js +2 -1
  268. package/esm2015/model/ruleDTO.js +1 -1
  269. package/esm2015/model/ruleOperatorDto.js +2 -1
  270. package/esm2015/model/ruleValueDto.js +2 -1
  271. package/esm2015/model/searchRequest.js +2 -1
  272. package/esm2015/model/siteListDTO.js +2 -1
  273. package/esm2015/model/siteListRequest.js +2 -1
  274. package/esm2015/model/size.js +2 -1
  275. package/esm2015/model/skadTargetPrivileges.js +2 -1
  276. package/esm2015/model/slicexChartResponse.js +2 -1
  277. package/esm2015/model/slicexData.js +2 -1
  278. package/esm2015/model/slicexGridData.js +2 -1
  279. package/esm2015/model/slicexListResponse.js +2 -1
  280. package/esm2015/model/slicexRequest.js +2 -1
  281. package/esm2015/model/slicexRequestExtended.js +2 -1
  282. package/esm2015/model/sortModel.js +2 -1
  283. package/esm2015/model/statusBaseObject.js +2 -1
  284. package/esm2015/model/strategy.js +2 -1
  285. package/esm2015/model/strategyCreativeAssociationRequestDTO.js +2 -1
  286. package/esm2015/model/strategyCreativeAssociationResponseDTO.js +2 -1
  287. package/esm2015/model/strategyDTO.js +1 -1
  288. package/esm2015/model/strategyListEditField.js +2 -1
  289. package/esm2015/model/strategyQuickEditDTO.js +1 -1
  290. package/esm2015/model/strategyUpdateResponse.js +2 -1
  291. package/esm2015/model/stringEditField.js +2 -1
  292. package/esm2015/model/tag.js +2 -1
  293. package/esm2015/model/targetAppCategories.js +2 -1
  294. package/esm2015/model/targetBrowsers.js +2 -1
  295. package/esm2015/model/targetDeviceTypes.js +2 -1
  296. package/esm2015/model/targetGeoDTO.js +2 -1
  297. package/esm2015/model/targetGeoEditField.js +2 -1
  298. package/esm2015/model/targetMobileDeviceBrands.js +2 -1
  299. package/esm2015/model/targetMobileDeviceModels.js +2 -1
  300. package/esm2015/model/targetMobileDevices.js +2 -1
  301. package/esm2015/model/targetOperatingSystem.js +2 -1
  302. package/esm2015/model/targetOperatingSystemEditField.js +2 -1
  303. package/esm2015/model/targetingObject.js +2 -1
  304. package/esm2015/model/templateThemeDTO.js +2 -1
  305. package/esm2015/model/templateVariablesDTO.js +1 -1
  306. package/esm2015/model/timeZoneDTO.js +2 -1
  307. package/esm2015/model/userPreferenceCategory.js +2 -1
  308. package/esm2015/model/userPreferenceDTO.js +2 -1
  309. package/esm2015/model/variablesMappingDTO.js +2 -1
  310. package/esm2015/model/vastCreative.js +1 -1
  311. package/esm2015/model/videoAttributes.js +1 -1
  312. package/esm2015/model/videoProperties.js +1 -1
  313. package/esm2015/model/videoTargeting.js +2 -1
  314. package/esm2015/model/whitelabelingEntity.js +2 -1
  315. package/esm2015/revxui-api-clients-ts.js +1 -1
  316. package/esm2015/variables.js +1 -1
  317. package/fesm2015/revxui-api-clients-ts.js +1106 -212
  318. package/fesm2015/revxui-api-clients-ts.js.map +1 -1
  319. package/model/advertiserDynamicVideoConfig.d.ts +19 -0
  320. package/model/apiResponseObjectAdvertiserDynamicVideoConfig.d.ts +17 -0
  321. package/model/apiResponseObjectListDynamicVideoTemplate.d.ts +17 -0
  322. package/model/dynamicVideoConfigDTO.d.ts +32 -0
  323. package/model/dynamicVideoDTO.d.ts +16 -0
  324. package/model/dynamicVideoTemplate.d.ts +18 -0
  325. package/model/models.d.ts +7 -0
  326. package/model/nameAndTitleModel.d.ts +15 -0
  327. package/package.json +3 -5
  328. package/revxui-api-clients-ts.metadata.json +1 -1
  329. package/esm5/api/adminController.service.js +0 -203
  330. package/esm5/api/advertiserController.service.js +0 -454
  331. package/esm5/api/api.js +0 -48
  332. package/esm5/api/appSettingsController.service.js +0 -178
  333. package/esm5/api/audienceController.service.js +0 -806
  334. package/esm5/api/auditController.service.js +0 -207
  335. package/esm5/api/bulkStrategyController.service.js +0 -251
  336. package/esm5/api/cSSThemeController_.service.js +0 -128
  337. package/esm5/api/campaignController.service.js +0 -330
  338. package/esm5/api/catalogController.service.js +0 -266
  339. package/esm5/api/clickDestinationController.service.js +0 -258
  340. package/esm5/api/creativeController.service.js +0 -485
  341. package/esm5/api/creativeSetsController.service.js +0 -500
  342. package/esm5/api/creativeTemplateThemesController.service.js +0 -209
  343. package/esm5/api/creativeTemplateVariablesController.service.js +0 -95
  344. package/esm5/api/creativeTemplatesController.service.js +0 -187
  345. package/esm5/api/dashboardController.service.js +0 -665
  346. package/esm5/api/notificationsController.service.js +0 -207
  347. package/esm5/api/pixelController.service.js +0 -337
  348. package/esm5/api/reportingController.service.js +0 -192
  349. package/esm5/api/sliceXController.service.js +0 -276
  350. package/esm5/api/strategyController.service.js +0 -669
  351. package/esm5/api/uILoggerController.service.js +0 -110
  352. package/esm5/api/userPreferenceController.service.js +0 -198
  353. package/esm5/api.module.js +0 -87
  354. package/esm5/configuration.js +0 -64
  355. package/esm5/encoder.js +0 -24
  356. package/esm5/index.js +0 -6
  357. package/esm5/model/aBTestDTO.js +0 -1
  358. package/esm5/model/activityLog.js +0 -1
  359. package/esm5/model/activityLogsCreativeSetsBulkUpdateDTO.js +0 -11
  360. package/esm5/model/activityLogsStrategyBulkUpdateDTO.js +0 -11
  361. package/esm5/model/advertiser.js +0 -1
  362. package/esm5/model/advertiserDynamicDetails.js +0 -1
  363. package/esm5/model/advertiserLayoutVariables.js +0 -12
  364. package/esm5/model/advertiserPojo.js +0 -1
  365. package/esm5/model/advertiserSettings.js +0 -1
  366. package/esm5/model/ageGroup.js +0 -12
  367. package/esm5/model/apiListResponseABTestDTO.js +0 -1
  368. package/esm5/model/apiListResponseActivityLog.js +0 -1
  369. package/esm5/model/apiListResponseActivityLogsCreativeSetsBulkUpdateDTO.js +0 -1
  370. package/esm5/model/apiListResponseActivityLogsStrategyBulkUpdateDTO.js +0 -1
  371. package/esm5/model/apiListResponseAudiencePerformanceDTO.js +0 -1
  372. package/esm5/model/apiListResponseCatalogFeed.js +0 -1
  373. package/esm5/model/apiListResponseClickDestination.js +0 -1
  374. package/esm5/model/apiListResponseCreativeCompactDTO.js +0 -1
  375. package/esm5/model/apiListResponseCreativeDTO.js +0 -1
  376. package/esm5/model/apiListResponseCreativeSetDashboardMetric.js +0 -1
  377. package/esm5/model/apiListResponseCreativeTemplateDTO.js +0 -1
  378. package/esm5/model/apiListResponseMacro.js +0 -1
  379. package/esm5/model/apiListResponsePixel.js +0 -1
  380. package/esm5/model/apiListResponseVariablesMappingDTO.js +0 -1
  381. package/esm5/model/apiResponseObjectABTestDTO.js +0 -1
  382. package/esm5/model/apiResponseObjectAdvertiserDynamicDetails.js +0 -1
  383. package/esm5/model/apiResponseObjectAdvertiserPojo.js +0 -1
  384. package/esm5/model/apiResponseObjectAdvertiserSettings.js +0 -1
  385. package/esm5/model/apiResponseObjectApiListResponseActivityLogsCreativeSetsBulkUpdateDTO.js +0 -1
  386. package/esm5/model/apiResponseObjectApiListResponseActivityLogsStrategyBulkUpdateDTO.js +0 -1
  387. package/esm5/model/apiResponseObjectApiListResponseAudiencePerformanceDTO.js +0 -1
  388. package/esm5/model/apiResponseObjectApiListResponseCatalogFeed.js +0 -1
  389. package/esm5/model/apiResponseObjectApiListResponseClickDestination.js +0 -1
  390. package/esm5/model/apiResponseObjectApiListResponseCreativeCompactDTO.js +0 -1
  391. package/esm5/model/apiResponseObjectApiListResponseCreativeDTO.js +0 -1
  392. package/esm5/model/apiResponseObjectApiListResponseCreativeSetDashboardMetric.js +0 -1
  393. package/esm5/model/apiResponseObjectApiListResponseCreativeTemplateDTO.js +0 -1
  394. package/esm5/model/apiResponseObjectApiListResponsePixel.js +0 -1
  395. package/esm5/model/apiResponseObjectApiListResponseVariablesMappingDTO.js +0 -1
  396. package/esm5/model/apiResponseObjectAudienceAccessDTO.js +0 -1
  397. package/esm5/model/apiResponseObjectAudienceDTO.js +0 -1
  398. package/esm5/model/apiResponseObjectBaseModel.js +0 -1
  399. package/esm5/model/apiResponseObjectBulkEditCreativeSetsResponse.js +0 -1
  400. package/esm5/model/apiResponseObjectBulkEditStrategiesResponse.js +0 -1
  401. package/esm5/model/apiResponseObjectBulkstrategiesUpdateResponse.js +0 -1
  402. package/esm5/model/apiResponseObjectCampaignDTO.js +0 -1
  403. package/esm5/model/apiResponseObjectCatalogFeed.js +0 -1
  404. package/esm5/model/apiResponseObjectChartDashboardResponse.js +0 -1
  405. package/esm5/model/apiResponseObjectClickDestination.js +0 -1
  406. package/esm5/model/apiResponseObjectClickDestinationAutomationUrls.js +0 -1
  407. package/esm5/model/apiResponseObjectCreativeDTO.js +0 -1
  408. package/esm5/model/apiResponseObjectCreativePerformanceData.js +0 -1
  409. package/esm5/model/apiResponseObjectCreativeSetDetails.js +0 -1
  410. package/esm5/model/apiResponseObjectCreativeSetResponse.js +0 -1
  411. package/esm5/model/apiResponseObjectCreativeTemplatesMetadataDTO.js +0 -1
  412. package/esm5/model/apiResponseObjectDashboardMetrics.js +0 -1
  413. package/esm5/model/apiResponseObjectDashboardResponse.js +0 -1
  414. package/esm5/model/apiResponseObjectDictionaryResponse.js +0 -1
  415. package/esm5/model/apiResponseObjectDmpAudienceDTO.js +0 -1
  416. package/esm5/model/apiResponseObjectDuplicateCreativeSetResponse.js +0 -1
  417. package/esm5/model/apiResponseObjectEResponseobject.js +0 -1
  418. package/esm5/model/apiResponseObjectEligibleUsersResponse.js +0 -1
  419. package/esm5/model/apiResponseObjectFileDownloadResponse.js +0 -1
  420. package/esm5/model/apiResponseObjectGeoListDTO.js +0 -1
  421. package/esm5/model/apiResponseObjectListAppSettingsDTO.js +0 -1
  422. package/esm5/model/apiResponseObjectListAudienceDTO.js +0 -1
  423. package/esm5/model/apiResponseObjectListAuditDetails.js +0 -1
  424. package/esm5/model/apiResponseObjectListAuditMarker.js +0 -1
  425. package/esm5/model/apiResponseObjectListBackfillAudienceQueryTemplateDTO.js +0 -1
  426. package/esm5/model/apiResponseObjectListBaseModel.js +0 -1
  427. package/esm5/model/apiResponseObjectListBulkstrategiesValidationResponse.js +0 -1
  428. package/esm5/model/apiResponseObjectListCampaignDTO.js +0 -1
  429. package/esm5/model/apiResponseObjectListCreativeFiles.js +0 -1
  430. package/esm5/model/apiResponseObjectListMenuCrubResponse.js +0 -1
  431. package/esm5/model/apiResponseObjectListTemplateThemeDTO.js +0 -1
  432. package/esm5/model/apiResponseObjectListTemplateVariablesDTO.js +0 -1
  433. package/esm5/model/apiResponseObjectListUserPreferenceDTO.js +0 -1
  434. package/esm5/model/apiResponseObjectMapintResponseMessage.js +0 -1
  435. package/esm5/model/apiResponseObjectMaplongResponseMessage.js +0 -1
  436. package/esm5/model/apiResponseObjectMenuCrubResponse.js +0 -1
  437. package/esm5/model/apiResponseObjectMetaRulesDto.js +0 -1
  438. package/esm5/model/apiResponseObjectParentBasedObject.js +0 -1
  439. package/esm5/model/apiResponseObjectPixel.js +0 -1
  440. package/esm5/model/apiResponseObjectReportingResponse.js +0 -1
  441. package/esm5/model/apiResponseObjectResponseMessage.js +0 -1
  442. package/esm5/model/apiResponseObjectSiteListDTO.js +0 -1
  443. package/esm5/model/apiResponseObjectSkadTargetPrivileges.js +0 -1
  444. package/esm5/model/apiResponseObjectSlicexChartResponse.js +0 -1
  445. package/esm5/model/apiResponseObjectSlicexListResponse.js +0 -1
  446. package/esm5/model/apiResponseObjectStrategyCreativeAssociationResponseDTO.js +0 -1
  447. package/esm5/model/apiResponseObjectStrategyDTO.js +0 -1
  448. package/esm5/model/apiResponseObjectStrategyQuickEditDTO.js +0 -1
  449. package/esm5/model/apiResponseObjectTag.js +0 -1
  450. package/esm5/model/apiResponseObjectTemplateThemeDTO.js +0 -1
  451. package/esm5/model/apiResponseObjectVoid.js +0 -12
  452. package/esm5/model/apiResponseObjectWhitelabelingEntity.js +0 -1
  453. package/esm5/model/apiResponseObjectboolean.js +0 -12
  454. package/esm5/model/apiResponseObjectlong.js +0 -12
  455. package/esm5/model/apiResponseObjectstring.js +0 -12
  456. package/esm5/model/appSettingsDTO.js +0 -18
  457. package/esm5/model/appSettingsPropertyDTO.js +0 -18
  458. package/esm5/model/auctionTypeEditField.js +0 -20
  459. package/esm5/model/audienceAccessDTO.js +0 -12
  460. package/esm5/model/audienceBackFilledStats.js +0 -12
  461. package/esm5/model/audienceBackfillQueryTemplateRequest.js +0 -22
  462. package/esm5/model/audienceBackfillRequest.js +0 -9
  463. package/esm5/model/audienceDTO.js +0 -23
  464. package/esm5/model/audienceESDTO.js +0 -27
  465. package/esm5/model/audiencePerformanceDTO.js +0 -8
  466. package/esm5/model/audienceStrDTO.js +0 -1
  467. package/esm5/model/audienceStrEditField.js +0 -1
  468. package/esm5/model/auditChange.js +0 -12
  469. package/esm5/model/auditDetails.js +0 -1
  470. package/esm5/model/auditMarker.js +0 -12
  471. package/esm5/model/bIgIntegerEditFiled.js +0 -12
  472. package/esm5/model/backfillAudienceQueryTemplateDTO.js +0 -12
  473. package/esm5/model/bannerAdSuppDimensionsDTO.js +0 -12
  474. package/esm5/model/baseModel.js +0 -12
  475. package/esm5/model/baseModelEditField.js +0 -1
  476. package/esm5/model/baseModelWithCreativeSetType.js +0 -29
  477. package/esm5/model/bigDecimalEditField.js +0 -12
  478. package/esm5/model/booleanEditField.js +0 -12
  479. package/esm5/model/bulkEditCreativeSetsDTO.js +0 -1
  480. package/esm5/model/bulkEditCreativeSetsListDTO.js +0 -1
  481. package/esm5/model/bulkEditCreativeSetsResponse.js +0 -1
  482. package/esm5/model/bulkEditStrategiesDTO.js +0 -1
  483. package/esm5/model/bulkEditStrategiesResponse.js +0 -1
  484. package/esm5/model/bulkEditStrategyListDTO.js +0 -1
  485. package/esm5/model/bulkstrategiesRequest.js +0 -12
  486. package/esm5/model/bulkstrategiesUpdateResponse.js +0 -1
  487. package/esm5/model/bulkstrategiesValidationRequest.js +0 -12
  488. package/esm5/model/bulkstrategiesValidationResponse.js +0 -12
  489. package/esm5/model/cSSThemeEntity.js +0 -12
  490. package/esm5/model/campaignDTO.js +0 -1
  491. package/esm5/model/campaignESDTO.js +0 -1
  492. package/esm5/model/catalogFeed.js +0 -12
  493. package/esm5/model/chartDashboardResponse.js +0 -1
  494. package/esm5/model/clickDestination.js +0 -13
  495. package/esm5/model/clickDestinationAutomationUrls.js +0 -12
  496. package/esm5/model/creative.js +0 -12
  497. package/esm5/model/creativeCompactDTO.js +0 -20
  498. package/esm5/model/creativeDTO.js +0 -42
  499. package/esm5/model/creativeDetails.js +0 -1
  500. package/esm5/model/creativeFileForSet.js +0 -20
  501. package/esm5/model/creativeFiles.js +0 -20
  502. package/esm5/model/creativeHtmlFileForSet.js +0 -25
  503. package/esm5/model/creativeHtmlMockupDTO.js +0 -1
  504. package/esm5/model/creativeListEditField.js +0 -1
  505. package/esm5/model/creativeMockUpsDTO.js +0 -1
  506. package/esm5/model/creativePerformanceData.js +0 -12
  507. package/esm5/model/creativeSetDashboardMetric.js +0 -18
  508. package/esm5/model/creativeSetDetails.js +0 -18
  509. package/esm5/model/creativeSetListEditField.js +0 -1
  510. package/esm5/model/creativeSetRequest.js +0 -18
  511. package/esm5/model/creativeSetResponse.js +0 -29
  512. package/esm5/model/creativeStrategyAssociationStatus.js +0 -1
  513. package/esm5/model/creativeTemplateDTO.js +0 -12
  514. package/esm5/model/creativeTemplatesMetadataDTO.js +0 -12
  515. package/esm5/model/creativeThirdPartyAdTag.js +0 -1
  516. package/esm5/model/dashboardData.js +0 -1
  517. package/esm5/model/dashboardFilters.js +0 -12
  518. package/esm5/model/dashboardMetrics.js +0 -12
  519. package/esm5/model/dashboardRequest.js +0 -1
  520. package/esm5/model/dashboardResponse.js +0 -1
  521. package/esm5/model/day.js +0 -12
  522. package/esm5/model/dayPart.js +0 -1
  523. package/esm5/model/dayPartEditField.js +0 -1
  524. package/esm5/model/dcoAttributesDTO.js +0 -20
  525. package/esm5/model/dealCategoryDTO.js +0 -1
  526. package/esm5/model/dealCategoryEditField.js +0 -1
  527. package/esm5/model/dictionaryResponse.js +0 -1
  528. package/esm5/model/dmpAudience.js +0 -1
  529. package/esm5/model/dmpAudienceCriteria.js +0 -12
  530. package/esm5/model/dmpAudienceDTO.js +0 -1
  531. package/esm5/model/duplicateCreativeSetResponse.js +0 -29
  532. package/esm5/model/duplicateCreativeSetsRequestDTO.js +0 -1
  533. package/esm5/model/duplicateStrategyRequestDTO.js +0 -12
  534. package/esm5/model/duration.js +0 -1
  535. package/esm5/model/eResponseobject.js +0 -12
  536. package/esm5/model/eligibleUsersRequest.js +0 -12
  537. package/esm5/model/eligibleUsersResponse.js +0 -12
  538. package/esm5/model/endCards.js +0 -12
  539. package/esm5/model/extendedBaseModel.js +0 -1
  540. package/esm5/model/extendedTargetingObject.js +0 -1
  541. package/esm5/model/failedDTO.js +0 -12
  542. package/esm5/model/failedStrategyDTO.js +0 -12
  543. package/esm5/model/failedStrategyFieldsDTO.js +0 -12
  544. package/esm5/model/fcapDetails.js +0 -12
  545. package/esm5/model/fcapEditField.js +0 -1
  546. package/esm5/model/fileDownloadResponse.js +0 -12
  547. package/esm5/model/filterModel.js +0 -20
  548. package/esm5/model/geoListDTO.js +0 -1
  549. package/esm5/model/geoListRequest.js +0 -9
  550. package/esm5/model/hybridAdMapping.js +0 -1
  551. package/esm5/model/incrementalityReportDTO.js +0 -12
  552. package/esm5/model/incrementalityReportResponse.js +0 -12
  553. package/esm5/model/incrementalityResponse.js +0 -1
  554. package/esm5/model/integerEditField.js +0 -12
  555. package/esm5/model/macro.js +0 -21
  556. package/esm5/model/mapintResponseMessage.js +0 -1
  557. package/esm5/model/maplongResponseMessage.js +0 -1
  558. package/esm5/model/metaRuleDto.js +0 -15
  559. package/esm5/model/metaRulesDto.js +0 -1
  560. package/esm5/model/modelError.js +0 -12
  561. package/esm5/model/models.js +0 -41
  562. package/esm5/model/nativeAssetPojo.js +0 -12
  563. package/esm5/model/notificationListResponseNotificationResponse.js +0 -1
  564. package/esm5/model/notificationResponse.js +0 -19
  565. package/esm5/model/parentBasedObject.js +0 -12
  566. package/esm5/model/pixel.js +0 -1
  567. package/esm5/model/pixelDataFileDTO.js +0 -75
  568. package/esm5/model/pixelDataScheduleDTO.js +0 -1
  569. package/esm5/model/pixelRemoteConfigDTO.js +0 -1
  570. package/esm5/model/platformAudienceDTO.js +0 -12
  571. package/esm5/model/rTBAggregators.js +0 -1
  572. package/esm5/model/rTBAggregatorsEditField.js +0 -1
  573. package/esm5/model/rTBSites.js +0 -1
  574. package/esm5/model/rTBSitesEditField.js +0 -1
  575. package/esm5/model/remoteFileDTO.js +0 -28
  576. package/esm5/model/reportProperty.js +0 -20
  577. package/esm5/model/reportingRequest.js +0 -20
  578. package/esm5/model/reportingResponse.js +0 -15
  579. package/esm5/model/responseMessage.js +0 -12
  580. package/esm5/model/ruleComponentDTO.js +0 -12
  581. package/esm5/model/ruleDTO.js +0 -16
  582. package/esm5/model/ruleOperatorDto.js +0 -12
  583. package/esm5/model/ruleValueDto.js +0 -12
  584. package/esm5/model/searchRequest.js +0 -1
  585. package/esm5/model/siteListDTO.js +0 -1
  586. package/esm5/model/siteListRequest.js +0 -12
  587. package/esm5/model/size.js +0 -12
  588. package/esm5/model/skadTargetPrivileges.js +0 -1
  589. package/esm5/model/slicexChartResponse.js +0 -1
  590. package/esm5/model/slicexData.js +0 -12
  591. package/esm5/model/slicexGridData.js +0 -12
  592. package/esm5/model/slicexListResponse.js +0 -1
  593. package/esm5/model/slicexRequest.js +0 -1
  594. package/esm5/model/slicexRequestExtended.js +0 -1
  595. package/esm5/model/sortModel.js +0 -12
  596. package/esm5/model/statusBaseObject.js +0 -12
  597. package/esm5/model/strategy.js +0 -1
  598. package/esm5/model/strategyCreativeAssociationRequestDTO.js +0 -1
  599. package/esm5/model/strategyCreativeAssociationResponseDTO.js +0 -1
  600. package/esm5/model/strategyDTO.js +0 -37
  601. package/esm5/model/strategyListEditField.js +0 -1
  602. package/esm5/model/strategyQuickEditDTO.js +0 -19
  603. package/esm5/model/strategyUpdateResponse.js +0 -12
  604. package/esm5/model/stringEditField.js +0 -12
  605. package/esm5/model/tag.js +0 -12
  606. package/esm5/model/targetAppCategories.js +0 -1
  607. package/esm5/model/targetBrowsers.js +0 -1
  608. package/esm5/model/targetDeviceTypes.js +0 -1
  609. package/esm5/model/targetGeoDTO.js +0 -1
  610. package/esm5/model/targetGeoEditField.js +0 -1
  611. package/esm5/model/targetMobileDeviceBrands.js +0 -1
  612. package/esm5/model/targetMobileDeviceModels.js +0 -1
  613. package/esm5/model/targetMobileDevices.js +0 -1
  614. package/esm5/model/targetOperatingSystem.js +0 -1
  615. package/esm5/model/targetOperatingSystemEditField.js +0 -1
  616. package/esm5/model/targetingObject.js +0 -1
  617. package/esm5/model/templateThemeDTO.js +0 -12
  618. package/esm5/model/templateVariablesDTO.js +0 -24
  619. package/esm5/model/timeZoneDTO.js +0 -12
  620. package/esm5/model/userPreferenceCategory.js +0 -12
  621. package/esm5/model/userPreferenceDTO.js +0 -1
  622. package/esm5/model/variablesMappingDTO.js +0 -12
  623. package/esm5/model/vastCreative.js +0 -13
  624. package/esm5/model/videoAttributes.js +0 -61
  625. package/esm5/model/videoProperties.js +0 -22
  626. package/esm5/model/videoTargeting.js +0 -12
  627. package/esm5/model/whitelabelingEntity.js +0 -1
  628. package/esm5/revxui-api-clients-ts.js +0 -5
  629. package/esm5/variables.js +0 -9
  630. package/fesm5/revxui-api-clients-ts.js +0 -8095
  631. package/fesm5/revxui-api-clients-ts.js.map +0 -1
@@ -1,337 +0,0 @@
1
- /**
2
- * Api Documentation
3
- * Api Documentation
4
- *
5
- * OpenAPI spec version: 1.0
6
- *
7
- *
8
- * NOTE: This class is auto generated by the swagger code generator program.
9
- * https://github.com/swagger-api/swagger-codegen.git
10
- * Do not edit the class manually.
11
- */
12
- /* tslint:disable:no-unused-variable member-ordering */
13
- import { __decorate, __param, __values } from "tslib";
14
- import { Inject, Injectable, Optional } from '@angular/core';
15
- import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpEvent } from '@angular/common/http';
16
- import { CustomHttpUrlEncodingCodec } from '../encoder';
17
- import { BASE_PATH } from '../variables';
18
- import { Configuration } from '../configuration';
19
- var PixelControllerService = /** @class */ (function () {
20
- function PixelControllerService(httpClient, basePath, configuration) {
21
- this.httpClient = httpClient;
22
- this.basePath = 'https://apiv2stage1.atomex.net';
23
- this.defaultHeaders = new HttpHeaders();
24
- this.configuration = new Configuration();
25
- if (basePath) {
26
- this.basePath = basePath;
27
- }
28
- if (configuration) {
29
- this.configuration = configuration;
30
- this.basePath = basePath || configuration.basePath || this.basePath;
31
- }
32
- }
33
- /**
34
- * @param consumes string[] mime-types
35
- * @return true: consumes contains 'multipart/form-data', false: otherwise
36
- */
37
- PixelControllerService.prototype.canConsumeForm = function (consumes) {
38
- var e_1, _a;
39
- var form = 'multipart/form-data';
40
- try {
41
- for (var consumes_1 = __values(consumes), consumes_1_1 = consumes_1.next(); !consumes_1_1.done; consumes_1_1 = consumes_1.next()) {
42
- var consume = consumes_1_1.value;
43
- if (form === consume) {
44
- return true;
45
- }
46
- }
47
- }
48
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
49
- finally {
50
- try {
51
- if (consumes_1_1 && !consumes_1_1.done && (_a = consumes_1.return)) _a.call(consumes_1);
52
- }
53
- finally { if (e_1) throw e_1.error; }
54
- }
55
- return false;
56
- };
57
- PixelControllerService.prototype.activateUsingPOST = function (commaSepratedIds, reqId, token, observe, reportProgress) {
58
- if (observe === void 0) { observe = 'body'; }
59
- if (reportProgress === void 0) { reportProgress = false; }
60
- if (commaSepratedIds === null || commaSepratedIds === undefined) {
61
- throw new Error('Required parameter commaSepratedIds was null or undefined when calling activateUsingPOST.');
62
- }
63
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
64
- if (commaSepratedIds !== undefined && commaSepratedIds !== null) {
65
- queryParameters = queryParameters.set('commaSepratedIds', commaSepratedIds);
66
- }
67
- var headers = this.defaultHeaders;
68
- if (reqId !== undefined && reqId !== null) {
69
- headers = headers.set('reqId', String(reqId));
70
- }
71
- if (token !== undefined && token !== null) {
72
- headers = headers.set('token', String(token));
73
- }
74
- // to determine the Accept header
75
- var httpHeaderAccepts = [
76
- 'application/json'
77
- ];
78
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
79
- if (httpHeaderAcceptSelected != undefined) {
80
- headers = headers.set('Accept', httpHeaderAcceptSelected);
81
- }
82
- // to determine the Content-Type header
83
- var consumes = [
84
- 'application/json'
85
- ];
86
- return this.httpClient.post(this.basePath + "/v2/api/pixels/activate", null, {
87
- params: queryParameters,
88
- withCredentials: this.configuration.withCredentials,
89
- headers: headers,
90
- observe: observe,
91
- reportProgress: reportProgress
92
- });
93
- };
94
- PixelControllerService.prototype.createUsingPOST1 = function (pixel, reqId, token, observe, reportProgress) {
95
- if (observe === void 0) { observe = 'body'; }
96
- if (reportProgress === void 0) { reportProgress = false; }
97
- if (pixel === null || pixel === undefined) {
98
- throw new Error('Required parameter pixel was null or undefined when calling createUsingPOST1.');
99
- }
100
- var headers = this.defaultHeaders;
101
- if (reqId !== undefined && reqId !== null) {
102
- headers = headers.set('reqId', String(reqId));
103
- }
104
- if (token !== undefined && token !== null) {
105
- headers = headers.set('token', String(token));
106
- }
107
- // to determine the Accept header
108
- var httpHeaderAccepts = [
109
- 'application/json'
110
- ];
111
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
112
- if (httpHeaderAcceptSelected != undefined) {
113
- headers = headers.set('Accept', httpHeaderAcceptSelected);
114
- }
115
- // to determine the Content-Type header
116
- var consumes = [
117
- 'application/json'
118
- ];
119
- var httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
120
- if (httpContentTypeSelected != undefined) {
121
- headers = headers.set('Content-Type', httpContentTypeSelected);
122
- }
123
- return this.httpClient.post(this.basePath + "/v2/api/pixels", pixel, {
124
- withCredentials: this.configuration.withCredentials,
125
- headers: headers,
126
- observe: observe,
127
- reportProgress: reportProgress
128
- });
129
- };
130
- PixelControllerService.prototype.deactivateUsingPOST = function (commaSepratedIds, reqId, token, observe, reportProgress) {
131
- if (observe === void 0) { observe = 'body'; }
132
- if (reportProgress === void 0) { reportProgress = false; }
133
- if (commaSepratedIds === null || commaSepratedIds === undefined) {
134
- throw new Error('Required parameter commaSepratedIds was null or undefined when calling deactivateUsingPOST.');
135
- }
136
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
137
- if (commaSepratedIds !== undefined && commaSepratedIds !== null) {
138
- queryParameters = queryParameters.set('commaSepratedIds', commaSepratedIds);
139
- }
140
- var headers = this.defaultHeaders;
141
- if (reqId !== undefined && reqId !== null) {
142
- headers = headers.set('reqId', String(reqId));
143
- }
144
- if (token !== undefined && token !== null) {
145
- headers = headers.set('token', String(token));
146
- }
147
- // to determine the Accept header
148
- var httpHeaderAccepts = [
149
- 'application/json'
150
- ];
151
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
152
- if (httpHeaderAcceptSelected != undefined) {
153
- headers = headers.set('Accept', httpHeaderAcceptSelected);
154
- }
155
- // to determine the Content-Type header
156
- var consumes = [
157
- 'application/json'
158
- ];
159
- return this.httpClient.post(this.basePath + "/v2/api/pixels/deactivate", null, {
160
- params: queryParameters,
161
- withCredentials: this.configuration.withCredentials,
162
- headers: headers,
163
- observe: observe,
164
- reportProgress: reportProgress
165
- });
166
- };
167
- PixelControllerService.prototype.getByIdUsingGET5 = function (id, reqId, token, observe, reportProgress) {
168
- if (observe === void 0) { observe = 'body'; }
169
- if (reportProgress === void 0) { reportProgress = false; }
170
- if (id === null || id === undefined) {
171
- throw new Error('Required parameter id was null or undefined when calling getByIdUsingGET5.');
172
- }
173
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
174
- if (id !== undefined && id !== null) {
175
- queryParameters = queryParameters.set('id', id);
176
- }
177
- var headers = this.defaultHeaders;
178
- if (reqId !== undefined && reqId !== null) {
179
- headers = headers.set('reqId', String(reqId));
180
- }
181
- if (token !== undefined && token !== null) {
182
- headers = headers.set('token', String(token));
183
- }
184
- // to determine the Accept header
185
- var httpHeaderAccepts = [
186
- 'application/json'
187
- ];
188
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
189
- if (httpHeaderAcceptSelected != undefined) {
190
- headers = headers.set('Accept', httpHeaderAcceptSelected);
191
- }
192
- // to determine the Content-Type header
193
- var consumes = [];
194
- return this.httpClient.get(this.basePath + "/v2/api/pixels/" + encodeURIComponent(String(id)), {
195
- params: queryParameters,
196
- withCredentials: this.configuration.withCredentials,
197
- headers: headers,
198
- observe: observe,
199
- reportProgress: reportProgress
200
- });
201
- };
202
- PixelControllerService.prototype.getTrackingCodeUsingGET = function (id, reqId, token, observe, reportProgress) {
203
- if (observe === void 0) { observe = 'body'; }
204
- if (reportProgress === void 0) { reportProgress = false; }
205
- if (id === null || id === undefined) {
206
- throw new Error('Required parameter id was null or undefined when calling getTrackingCodeUsingGET.');
207
- }
208
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
209
- if (id !== undefined && id !== null) {
210
- queryParameters = queryParameters.set('id', id);
211
- }
212
- var headers = this.defaultHeaders;
213
- if (reqId !== undefined && reqId !== null) {
214
- headers = headers.set('reqId', String(reqId));
215
- }
216
- if (token !== undefined && token !== null) {
217
- headers = headers.set('token', String(token));
218
- }
219
- // to determine the Accept header
220
- var httpHeaderAccepts = [
221
- 'application/json'
222
- ];
223
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
224
- if (httpHeaderAcceptSelected != undefined) {
225
- headers = headers.set('Accept', httpHeaderAcceptSelected);
226
- }
227
- // to determine the Content-Type header
228
- var consumes = [];
229
- return this.httpClient.get(this.basePath + "/v2/api/pixels/" + encodeURIComponent(String(id)) + "/trackingcode", {
230
- params: queryParameters,
231
- withCredentials: this.configuration.withCredentials,
232
- headers: headers,
233
- observe: observe,
234
- reportProgress: reportProgress
235
- });
236
- };
237
- PixelControllerService.prototype.searchPixelsUsingPOST = function (advertiser_id, refresh, reqId, search, token, observe, reportProgress) {
238
- if (observe === void 0) { observe = 'body'; }
239
- if (reportProgress === void 0) { reportProgress = false; }
240
- if (advertiser_id === null || advertiser_id === undefined) {
241
- throw new Error('Required parameter advertiser_id was null or undefined when calling searchPixelsUsingPOST.');
242
- }
243
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
244
- if (advertiser_id !== undefined && advertiser_id !== null) {
245
- queryParameters = queryParameters.set('advertiser_id', advertiser_id);
246
- }
247
- if (refresh !== undefined && refresh !== null) {
248
- queryParameters = queryParameters.set('refresh', refresh);
249
- }
250
- var headers = this.defaultHeaders;
251
- if (reqId !== undefined && reqId !== null) {
252
- headers = headers.set('reqId', String(reqId));
253
- }
254
- if (token !== undefined && token !== null) {
255
- headers = headers.set('token', String(token));
256
- }
257
- // to determine the Accept header
258
- var httpHeaderAccepts = [
259
- 'application/json'
260
- ];
261
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
262
- if (httpHeaderAcceptSelected != undefined) {
263
- headers = headers.set('Accept', httpHeaderAcceptSelected);
264
- }
265
- // to determine the Content-Type header
266
- var consumes = [
267
- 'application/json'
268
- ];
269
- var httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
270
- if (httpContentTypeSelected != undefined) {
271
- headers = headers.set('Content-Type', httpContentTypeSelected);
272
- }
273
- return this.httpClient.post(this.basePath + "/v2/api/pixels/search", search, {
274
- params: queryParameters,
275
- withCredentials: this.configuration.withCredentials,
276
- headers: headers,
277
- observe: observe,
278
- reportProgress: reportProgress
279
- });
280
- };
281
- PixelControllerService.prototype.updateUsingPOST1 = function (id, pixel, reqId, token, observe, reportProgress) {
282
- if (observe === void 0) { observe = 'body'; }
283
- if (reportProgress === void 0) { reportProgress = false; }
284
- if (id === null || id === undefined) {
285
- throw new Error('Required parameter id was null or undefined when calling updateUsingPOST1.');
286
- }
287
- if (pixel === null || pixel === undefined) {
288
- throw new Error('Required parameter pixel was null or undefined when calling updateUsingPOST1.');
289
- }
290
- var queryParameters = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
291
- if (id !== undefined && id !== null) {
292
- queryParameters = queryParameters.set('id', id);
293
- }
294
- var headers = this.defaultHeaders;
295
- if (reqId !== undefined && reqId !== null) {
296
- headers = headers.set('reqId', String(reqId));
297
- }
298
- if (token !== undefined && token !== null) {
299
- headers = headers.set('token', String(token));
300
- }
301
- // to determine the Accept header
302
- var httpHeaderAccepts = [
303
- 'application/json'
304
- ];
305
- var httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
306
- if (httpHeaderAcceptSelected != undefined) {
307
- headers = headers.set('Accept', httpHeaderAcceptSelected);
308
- }
309
- // to determine the Content-Type header
310
- var consumes = [
311
- 'application/json'
312
- ];
313
- var httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
314
- if (httpContentTypeSelected != undefined) {
315
- headers = headers.set('Content-Type', httpContentTypeSelected);
316
- }
317
- return this.httpClient.post(this.basePath + "/v2/api/pixels/" + encodeURIComponent(String(id)), pixel, {
318
- params: queryParameters,
319
- withCredentials: this.configuration.withCredentials,
320
- headers: headers,
321
- observe: observe,
322
- reportProgress: reportProgress
323
- });
324
- };
325
- PixelControllerService.ctorParameters = function () { return [
326
- { type: HttpClient },
327
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [BASE_PATH,] }] },
328
- { type: Configuration, decorators: [{ type: Optional }] }
329
- ]; };
330
- PixelControllerService = __decorate([
331
- Injectable(),
332
- __param(1, Optional()), __param(1, Inject(BASE_PATH)), __param(2, Optional())
333
- ], PixelControllerService);
334
- return PixelControllerService;
335
- }());
336
- export { PixelControllerService };
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxDb250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcmV2eHVpL2FwaS1jbGllbnRzLXRzLyIsInNvdXJjZXMiOlsiYXBpL3BpeGVsQ29udHJvbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCx1REFBdUQ7O0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUEyQixlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUNuQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQWdDLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUE2QixZQUFZLENBQUM7QUFXL0UsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7QUFJckY7SUFNSSxnQ0FBc0IsVUFBc0IsRUFBZ0MsUUFBZ0IsRUFBYyxhQUE0QjtRQUFoSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSmxDLGFBQVEsR0FBRyxnQ0FBZ0MsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBR3ZDLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLGFBQWEsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSywrQ0FBYyxHQUF0QixVQUF1QixRQUFrQjs7UUFD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LENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsdUNBQXVDO1FBQ3ZDLElBQU0sUUFBUSxHQUFhO1lBQ3ZCLGtCQUFrQjtTQUNyQixDQUFDO1FBQ0YsSUFBTSx1QkFBdUIsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RyxJQUFJLHVCQUF1QixJQUFJLFNBQVMsRUFBRTtZQUN0QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztTQUNsRTtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQTRCLElBQUksQ0FBQyxRQUFRLHVCQUFrQixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUcsRUFDbEgsS0FBSyxFQUNMO1lBQ0ksTUFBTSxFQUFFLGVBQWU7WUFDdkIsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNuRCxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsY0FBYztTQUNqQyxDQUNKLENBQUM7SUFDTixDQUFDOztnQkFsY2lDLFVBQVU7NkNBQUcsUUFBUSxZQUFHLE1BQU0sU0FBQyxTQUFTO2dCQUErQyxhQUFhLHVCQUF2QyxRQUFROztJQU45RixzQkFBc0I7UUFEbEMsVUFBVSxFQUFFO1FBT3NDLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBQyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQSxFQUFvQixXQUFBLFFBQVEsRUFBRSxDQUFBO09BTmhHLHNCQUFzQixDQTBjbEM7SUFBRCw2QkFBQztDQUFBLEFBMWNELElBMGNDO1NBMWNZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBpIERvY3VtZW50YXRpb25cbiAqIEFwaSBEb2N1bWVudGF0aW9uXG4gKlxuICogT3BlbkFQSSBzcGVjIHZlcnNpb246IDEuMFxuICogXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSB0aGUgc3dhZ2dlciBjb2RlIGdlbmVyYXRvciBwcm9ncmFtLlxuICogaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItY29kZWdlbi5naXRcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuLyogdHNsaW50OmRpc2FibGU6bm8tdW51c2VkLXZhcmlhYmxlIG1lbWJlci1vcmRlcmluZyAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gICAgICAgICAgICAgICAgICAgICAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyxcbiAgICAgICAgIEh0dHBSZXNwb25zZSwgSHR0cEV2ZW50IH0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYyB9ICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VQaXhlbCB9IGZyb20gJy4uL21vZGVsL2FwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlUGl4ZWwnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2VPYmplY3RNYXBsb25nUmVzcG9uc2VNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWwvYXBpUmVzcG9uc2VPYmplY3RNYXBsb25nUmVzcG9uc2VNZXNzYWdlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0UGl4ZWwgfSBmcm9tICcuLi9tb2RlbC9hcGlSZXNwb25zZU9iamVjdFBpeGVsJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlT2JqZWN0VGFnIH0gZnJvbSAnLi4vbW9kZWwvYXBpUmVzcG9uc2VPYmplY3RUYWcnO1xuaW1wb3J0IHsgUGl4ZWwgfSBmcm9tICcuLi9tb2RlbC9waXhlbCc7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWwvc2VhcmNoUmVxdWVzdCc7XG5cbmltcG9ydCB7IEJBU0VfUEFUSCwgQ09MTEVDVElPTl9GT1JNQVRTIH0gICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi92YXJpYWJsZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQaXhlbENvbnRyb2xsZXJTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICdodHRwczovL2FwaXYyc3RhZ2UxLmF0b21leC5uZXQnO1xuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKUBJbmplY3QoQkFTRV9QQVRIKSBiYXNlUGF0aDogc3RyaW5nLCBAT3B0aW9uYWwoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIGlmIChiYXNlUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IGJhc2VQYXRoIHx8IGNvbmZpZ3VyYXRpb24uYmFzZVBhdGggfHwgdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjb25zdW1lcyBzdHJpbmdbXSBtaW1lLXR5cGVzXG4gICAgICogQHJldHVybiB0cnVlOiBjb25zdW1lcyBjb250YWlucyAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsIGZhbHNlOiBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwcml2YXRlIGNhbkNvbnN1bWVGb3JtKGNvbnN1bWVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtID0gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbnN1bWUgb2YgY29uc3VtZXMpIHtcbiAgICAgICAgICAgIGlmIChmb3JtID09PSBjb25zdW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogYWN0aXZhdGUgTGlzdHMgb2YgcGl4ZWwgaWRcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gY29tbWFTZXByYXRlZElkcyBjb21tYVNlcHJhdGVkSWRzXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY3RpdmF0ZVVzaW5nUE9TVChjb21tYVNlcHJhdGVkSWRzOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGxvbmdSZXNwb25zZU1lc3NhZ2U+O1xuICAgIHB1YmxpYyBhY3RpdmF0ZVVzaW5nUE9TVChjb21tYVNlcHJhdGVkSWRzOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0TWFwbG9uZ1Jlc3BvbnNlTWVzc2FnZT4+O1xuICAgIHB1YmxpYyBhY3RpdmF0ZVVzaW5nUE9TVChjb21tYVNlcHJhdGVkSWRzOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdE1hcGxvbmdSZXNwb25zZU1lc3NhZ2U+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVVc2luZ1BPU1QoY29tbWFTZXByYXRlZElkczogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChjb21tYVNlcHJhdGVkSWRzID09PSBudWxsIHx8IGNvbW1hU2VwcmF0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgY29tbWFTZXByYXRlZElkcyB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGFjdGl2YXRlVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKGNvbW1hU2VwcmF0ZWRJZHMgIT09IHVuZGVmaW5lZCAmJiBjb21tYVNlcHJhdGVkSWRzICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdjb21tYVNlcHJhdGVkSWRzJywgPGFueT5jb21tYVNlcHJhdGVkSWRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RNYXBsb25nUmVzcG9uc2VNZXNzYWdlPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvcGl4ZWxzL2FjdGl2YXRlYCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGUgcGl4ZWxcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGl4ZWwgcGl4ZWxcbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZVVzaW5nUE9TVDEocGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD47XG4gICAgcHVibGljIGNyZWF0ZVVzaW5nUE9TVDEocGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdFBpeGVsPj47XG4gICAgcHVibGljIGNyZWF0ZVVzaW5nUE9TVDEocGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD4+O1xuICAgIHB1YmxpYyBjcmVhdGVVc2luZ1BPU1QxKHBpeGVsOiBQaXhlbCwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAocGl4ZWwgPT09IG51bGwgfHwgcGl4ZWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgcGl4ZWwgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBjcmVhdGVVc2luZ1BPU1QxLicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0UGl4ZWw+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9waXhlbHNgLFxuICAgICAgICAgICAgcGl4ZWwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZWFjdGl2YXRlIExpc3RzIG9mIFBpeGVsIGlkXG4gICAgICogXG4gICAgICogQHBhcmFtIGNvbW1hU2VwcmF0ZWRJZHMgY29tbWFTZXByYXRlZElkc1xuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHRva2VuIEF1dGggVG9rZW5cbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVhY3RpdmF0ZVVzaW5nUE9TVChjb21tYVNlcHJhdGVkSWRzOiBzdHJpbmcsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdE1hcGxvbmdSZXNwb25zZU1lc3NhZ2U+O1xuICAgIHB1YmxpYyBkZWFjdGl2YXRlVXNpbmdQT1NUKGNvbW1hU2VwcmF0ZWRJZHM6IHN0cmluZywgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RNYXBsb25nUmVzcG9uc2VNZXNzYWdlPj47XG4gICAgcHVibGljIGRlYWN0aXZhdGVVc2luZ1BPU1QoY29tbWFTZXByYXRlZElkczogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RNYXBsb25nUmVzcG9uc2VNZXNzYWdlPj47XG4gICAgcHVibGljIGRlYWN0aXZhdGVVc2luZ1BPU1QoY29tbWFTZXByYXRlZElkczogc3RyaW5nLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChjb21tYVNlcHJhdGVkSWRzID09PSBudWxsIHx8IGNvbW1hU2VwcmF0ZWRJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgY29tbWFTZXByYXRlZElkcyB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGRlYWN0aXZhdGVVc2luZ1BPU1QuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICBpZiAoY29tbWFTZXByYXRlZElkcyAhPT0gdW5kZWZpbmVkICYmIGNvbW1hU2VwcmF0ZWRJZHMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2NvbW1hU2VwcmF0ZWRJZHMnLCA8YW55PmNvbW1hU2VwcmF0ZWRJZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxBcGlSZXNwb25zZU9iamVjdE1hcGxvbmdSZXNwb25zZU1lc3NhZ2U+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9waXhlbHMvZGVhY3RpdmF0ZWAsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHBpeGVsIGJ5IElkXG4gICAgICogXG4gICAgICogQHBhcmFtIGlkIGlkXG4gICAgICogQHBhcmFtIHJlcUlkIHJlcXVlc3QgaWRcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRCeUlkVXNpbmdHRVQ1KGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdFBpeGVsPjtcbiAgICBwdWJsaWMgZ2V0QnlJZFVzaW5nR0VUNShpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdFBpeGVsPj47XG4gICAgcHVibGljIGdldEJ5SWRVc2luZ0dFVDUoaWQ6IG51bWJlciwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0UGl4ZWw+PjtcbiAgICBwdWJsaWMgZ2V0QnlJZFVzaW5nR0VUNShpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldEJ5SWRVc2luZ0dFVDUuJyk7XG4gICAgICAgIH1cblxuXG5cbiAgICAgICAgbGV0IHF1ZXJ5UGFyYW1ldGVycyA9IG5ldyBIdHRwUGFyYW1zKHtlbmNvZGVyOiBuZXcgQ3VzdG9tSHR0cFVybEVuY29kaW5nQ29kZWMoKX0pO1xuICAgICAgICBpZiAoaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnaWQnLCA8YW55PmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL3BpeGVscy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHRyYWNraW5nIGNvZGVcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgaWRcbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldFRyYWNraW5nQ29kZVVzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZU9iamVjdFRhZz47XG4gICAgcHVibGljIGdldFRyYWNraW5nQ29kZVVzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPEFwaVJlc3BvbnNlT2JqZWN0VGFnPj47XG4gICAgcHVibGljIGdldFRyYWNraW5nQ29kZVVzaW5nR0VUKGlkOiBudW1iZXIsIHJlcUlkPzogc3RyaW5nLCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxBcGlSZXNwb25zZU9iamVjdFRhZz4+O1xuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGVVc2luZ0dFVChpZDogbnVtYmVyLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSApOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBpZCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGdldFRyYWNraW5nQ29kZVVzaW5nR0VULicpO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIGxldCBxdWVyeVBhcmFtZXRlcnMgPSBuZXcgSHR0cFBhcmFtcyh7ZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBVcmxFbmNvZGluZ0NvZGVjKCl9KTtcbiAgICAgICAgaWYgKGlkICE9PSB1bmRlZmluZWQgJiYgaWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1ldGVycy5zZXQoJ2lkJywgPGFueT5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmIChyZXFJZCAhPT0gdW5kZWZpbmVkICYmIHJlcUlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3JlcUlkJywgU3RyaW5nKHJlcUlkKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuICE9PSB1bmRlZmluZWQgJiYgdG9rZW4gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgndG9rZW4nLCBTdHJpbmcodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICBsZXQgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIGlmIChodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbiAgICAgICAgY29uc3QgY29uc3VtZXM6IHN0cmluZ1tdID0gW1xuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PEFwaVJlc3BvbnNlT2JqZWN0VGFnPihgJHt0aGlzLmJhc2VQYXRofS92Mi9hcGkvcGl4ZWxzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhpZCkpfS90cmFja2luZ2NvZGVgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0L3NlYXJjaCBwaXhlbHNcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gYWR2ZXJ0aXNlcl9pZCBhZHZlcnRpc2VyX2lkXG4gICAgICogQHBhcmFtIHJlZnJlc2ggcmVmcmVzaFxuICAgICAqIEBwYXJhbSByZXFJZCByZXF1ZXN0IGlkXG4gICAgICogQHBhcmFtIHNlYXJjaCBzZWFyY2hcbiAgICAgKiBAcGFyYW0gdG9rZW4gQXV0aCBUb2tlblxuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWFyY2hQaXhlbHNVc2luZ1BPU1QoYWR2ZXJ0aXNlcl9pZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHNlYXJjaD86IFNlYXJjaFJlcXVlc3QsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlUGl4ZWw+O1xuICAgIHB1YmxpYyBzZWFyY2hQaXhlbHNVc2luZ1BPU1QoYWR2ZXJ0aXNlcl9pZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHNlYXJjaD86IFNlYXJjaFJlcXVlc3QsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8QXBpUmVzcG9uc2VPYmplY3RBcGlMaXN0UmVzcG9uc2VQaXhlbD4+O1xuICAgIHB1YmxpYyBzZWFyY2hQaXhlbHNVc2luZ1BPU1QoYWR2ZXJ0aXNlcl9pZDogbnVtYmVyLCByZWZyZXNoPzogYm9vbGVhbiwgcmVxSWQ/OiBzdHJpbmcsIHNlYXJjaD86IFNlYXJjaFJlcXVlc3QsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlUGl4ZWw+PjtcbiAgICBwdWJsaWMgc2VhcmNoUGl4ZWxzVXNpbmdQT1NUKGFkdmVydGlzZXJfaWQ6IG51bWJlciwgcmVmcmVzaD86IGJvb2xlYW4sIHJlcUlkPzogc3RyaW5nLCBzZWFyY2g/OiBTZWFyY2hSZXF1ZXN0LCB0b2tlbj86IHN0cmluZywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlICk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAgICAgaWYgKGFkdmVydGlzZXJfaWQgPT09IG51bGwgfHwgYWR2ZXJ0aXNlcl9pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciBhZHZlcnRpc2VyX2lkIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgc2VhcmNoUGl4ZWxzVXNpbmdQT1NULicpO1xuICAgICAgICB9XG5cblxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChhZHZlcnRpc2VyX2lkICE9PSB1bmRlZmluZWQgJiYgYWR2ZXJ0aXNlcl9pZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0ZXJzLnNldCgnYWR2ZXJ0aXNlcl9pZCcsIDxhbnk+YWR2ZXJ0aXNlcl9pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZnJlc2ggIT09IHVuZGVmaW5lZCAmJiByZWZyZXNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdyZWZyZXNoJywgPGFueT5yZWZyZXNoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBoZWFkZXJzID0gdGhpcy5kZWZhdWx0SGVhZGVycztcbiAgICAgICAgaWYgKHJlcUlkICE9PSB1bmRlZmluZWQgJiYgcmVxSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgncmVxSWQnLCBTdHJpbmcocmVxSWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4gIT09IHVuZGVmaW5lZCAmJiB0b2tlbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCd0b2tlbicsIFN0cmluZyh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgIGxldCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgaWYgKGh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuICAgICAgICBjb25zdCBjb25zdW1lczogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJDb250ZW50VHlwZShjb25zdW1lcyk7XG4gICAgICAgIGlmIChodHRwQ29udGVudFR5cGVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PEFwaVJlc3BvbnNlT2JqZWN0QXBpTGlzdFJlc3BvbnNlUGl4ZWw+KGAke3RoaXMuYmFzZVBhdGh9L3YyL2FwaS9waXhlbHMvc2VhcmNoYCxcbiAgICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHVwZGF0ZSAgUGl4ZWxcbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gaWQgaWRcbiAgICAgKiBAcGFyYW0gcGl4ZWwgcGl4ZWxcbiAgICAgKiBAcGFyYW0gcmVxSWQgcmVxdWVzdCBpZFxuICAgICAqIEBwYXJhbSB0b2tlbiBBdXRoIFRva2VuXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzaW5nUE9TVDEoaWQ6IG51bWJlciwgcGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD47XG4gICAgcHVibGljIHVwZGF0ZVVzaW5nUE9TVDEoaWQ6IG51bWJlciwgcGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcGlSZXNwb25zZU9iamVjdFBpeGVsPj47XG4gICAgcHVibGljIHVwZGF0ZVVzaW5nUE9TVDEoaWQ6IG51bWJlciwgcGl4ZWw6IFBpeGVsLCByZXFJZD86IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD4+O1xuICAgIHB1YmxpYyB1cGRhdGVVc2luZ1BPU1QxKGlkOiBudW1iZXIsIHBpeGVsOiBQaXhlbCwgcmVxSWQ/OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UgKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgaWQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyB1cGRhdGVVc2luZ1BPU1QxLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBpeGVsID09PSBudWxsIHx8IHBpeGVsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHBpeGVsIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgdXBkYXRlVXNpbmdQT1NUMS4nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICBsZXQgcXVlcnlQYXJhbWV0ZXJzID0gbmV3IEh0dHBQYXJhbXMoe2VuY29kZXI6IG5ldyBDdXN0b21IdHRwVXJsRW5jb2RpbmdDb2RlYygpfSk7XG4gICAgICAgIGlmIChpZCAhPT0gdW5kZWZpbmVkICYmIGlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMuc2V0KCdpZCcsIDxhbnk+aWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAocmVxSWQgIT09IHVuZGVmaW5lZCAmJiByZXFJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdyZXFJZCcsIFN0cmluZyhyZXFJZCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbiAhPT0gdW5kZWZpbmVkICYmIHRva2VuICE9PSBudWxsKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ3Rva2VuJywgU3RyaW5nKHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0byBkZXRlcm1pbmUgdGhlIEFjY2VwdCBoZWFkZXJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJBY2NlcHRzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoaHR0cEhlYWRlckFjY2VwdHMpO1xuICAgICAgICBpZiAoaHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBY2NlcHQnLCBodHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICBdO1xuICAgICAgICBjb25zdCBodHRwQ29udGVudFR5cGVTZWxlY3RlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckNvbnRlbnRUeXBlKGNvbnN1bWVzKTtcbiAgICAgICAgaWYgKGh0dHBDb250ZW50VHlwZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCBodHRwQ29udGVudFR5cGVTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8QXBpUmVzcG9uc2VPYmplY3RQaXhlbD4oYCR7dGhpcy5iYXNlUGF0aH0vdjIvYXBpL3BpeGVscy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoaWQpKX1gLFxuICAgICAgICAgICAgcGl4ZWwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtZXRlcnMsXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==