@veeroute/lss-studio-angular 7.25.3009 → 7.27.3079

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 (547) hide show
  1. package/README.md +3 -3
  2. package/api/backupsServiceInterface.d.ts +1 -1
  3. package/api/customFieldsServiceInterface.d.ts +1 -1
  4. package/api/customIconsServiceInterface.d.ts +1 -1
  5. package/api/experimentsServiceInterface.d.ts +1 -1
  6. package/api/explorerServiceInterface.d.ts +1 -1
  7. package/api/externalRoutingServiceInterface.d.ts +1 -1
  8. package/api/factsServiceInterface.d.ts +1 -1
  9. package/api/hardlinksServiceInterface.d.ts +1 -1
  10. package/api/locationsServiceInterface.d.ts +1 -1
  11. package/api/ordersServiceInterface.d.ts +1 -1
  12. package/api/performersServiceInterface.d.ts +1 -1
  13. package/api/systemServiceInterface.d.ts +1 -1
  14. package/api/transportsServiceInterface.d.ts +1 -1
  15. package/api/tripsServiceInterface.d.ts +1 -1
  16. package/api/userServiceInterface.d.ts +1 -1
  17. package/api.base.service.d.ts +1 -1
  18. package/cfg/entity_warning_type.yaml +4 -0
  19. package/cfg/experiment_statistics.json +7 -0
  20. package/cfg/process_types.json +6 -6
  21. package/cfg/table_settings.json +10 -0
  22. package/esm2022/api/backupsService.mjs +2 -2
  23. package/esm2022/api/backupsServiceInterface.mjs +1 -1
  24. package/esm2022/api/customFieldsService.mjs +2 -2
  25. package/esm2022/api/customFieldsServiceInterface.mjs +1 -1
  26. package/esm2022/api/customIconsService.mjs +2 -2
  27. package/esm2022/api/customIconsServiceInterface.mjs +1 -1
  28. package/esm2022/api/experimentsService.mjs +2 -2
  29. package/esm2022/api/experimentsServiceInterface.mjs +1 -1
  30. package/esm2022/api/explorerService.mjs +4 -4
  31. package/esm2022/api/explorerServiceInterface.mjs +1 -1
  32. package/esm2022/api/externalRoutingService.mjs +2 -2
  33. package/esm2022/api/externalRoutingServiceInterface.mjs +1 -1
  34. package/esm2022/api/factsService.mjs +2 -2
  35. package/esm2022/api/factsServiceInterface.mjs +1 -1
  36. package/esm2022/api/hardlinksService.mjs +2 -2
  37. package/esm2022/api/hardlinksServiceInterface.mjs +1 -1
  38. package/esm2022/api/locationsService.mjs +2 -2
  39. package/esm2022/api/locationsServiceInterface.mjs +1 -1
  40. package/esm2022/api/ordersService.mjs +2 -2
  41. package/esm2022/api/ordersServiceInterface.mjs +1 -1
  42. package/esm2022/api/performersService.mjs +2 -2
  43. package/esm2022/api/performersServiceInterface.mjs +1 -1
  44. package/esm2022/api/systemService.mjs +2 -2
  45. package/esm2022/api/systemServiceInterface.mjs +1 -1
  46. package/esm2022/api/transportsService.mjs +2 -2
  47. package/esm2022/api/transportsServiceInterface.mjs +1 -1
  48. package/esm2022/api/tripsService.mjs +2 -2
  49. package/esm2022/api/tripsServiceInterface.mjs +1 -1
  50. package/esm2022/api/userService.mjs +2 -2
  51. package/esm2022/api/userServiceInterface.mjs +1 -1
  52. package/esm2022/api.base.service.mjs +2 -2
  53. package/esm2022/model/actualizeSettings.mjs +2 -2
  54. package/esm2022/model/assignedPerformer.mjs +1 -1
  55. package/esm2022/model/assignedTransport.mjs +1 -1
  56. package/esm2022/model/attribute.mjs +2 -2
  57. package/esm2022/model/basicProcess.mjs +2 -2
  58. package/esm2022/model/basicState.mjs +2 -2
  59. package/esm2022/model/box.mjs +1 -1
  60. package/esm2022/model/boxCompatibilities.mjs +2 -2
  61. package/esm2022/model/boxLimits.mjs +1 -1
  62. package/esm2022/model/break.mjs +2 -2
  63. package/esm2022/model/breakRules.mjs +1 -1
  64. package/esm2022/model/calculationHistoryElement.mjs +1 -1
  65. package/esm2022/model/calculationInfo.mjs +1 -1
  66. package/esm2022/model/calculationSettings.mjs +2 -2
  67. package/esm2022/model/calculationState.mjs +1 -1
  68. package/esm2022/model/calculationStatus.mjs +2 -2
  69. package/esm2022/model/capacity.mjs +2 -2
  70. package/esm2022/model/capacityCost.mjs +2 -2
  71. package/esm2022/model/capacityLimit.mjs +2 -2
  72. package/esm2022/model/capacityMultiplier.mjs +2 -2
  73. package/esm2022/model/capacityStatisticsLoad.mjs +2 -2
  74. package/esm2022/model/capacityStatisticsRatio.mjs +2 -2
  75. package/esm2022/model/capacityStatisticsSum.mjs +2 -2
  76. package/esm2022/model/cargo.mjs +1 -1
  77. package/esm2022/model/cargoAction.mjs +1 -1
  78. package/esm2022/model/cargoActionType.mjs +2 -2
  79. package/esm2022/model/cargoCompatibilities.mjs +1 -1
  80. package/esm2022/model/cargoRotationType.mjs +2 -2
  81. package/esm2022/model/checkResult.mjs +2 -2
  82. package/esm2022/model/compatibilityPenalty.mjs +2 -2
  83. package/esm2022/model/custom400WithErrorsAndWarnings.mjs +1 -1
  84. package/esm2022/model/customfieldConvertRule.mjs +1 -1
  85. package/esm2022/model/customfieldEntityType.mjs +2 -2
  86. package/esm2022/model/customfieldsSettings.mjs +1 -1
  87. package/esm2022/model/demand.mjs +1 -1
  88. package/esm2022/model/demandExtraDuration.mjs +2 -2
  89. package/esm2022/model/demandType.mjs +2 -2
  90. package/esm2022/model/entityError.mjs +1 -1
  91. package/esm2022/model/entityErrorType.mjs +2 -2
  92. package/esm2022/model/entityPath.mjs +1 -1
  93. package/esm2022/model/entityType.mjs +2 -2
  94. package/esm2022/model/entityWarning.mjs +1 -1
  95. package/esm2022/model/entityWarningType.mjs +2 -2
  96. package/esm2022/model/experiment.mjs +1 -1
  97. package/esm2022/model/experimentCheck.mjs +1 -1
  98. package/esm2022/model/experimentList.mjs +1 -1
  99. package/esm2022/model/experimentNeighbors.mjs +2 -2
  100. package/esm2022/model/experimentSettings.mjs +1 -1
  101. package/esm2022/model/experimentStatistics.mjs +1 -1
  102. package/esm2022/model/extensionSettings.mjs +2 -2
  103. package/esm2022/model/fact.mjs +1 -1
  104. package/esm2022/model/factType.mjs +7 -3
  105. package/esm2022/model/featureLifetime.mjs +1 -1
  106. package/esm2022/model/fileNamePath.mjs +2 -2
  107. package/esm2022/model/fileSpecification.mjs +2 -2
  108. package/esm2022/model/filesystem.mjs +1 -1
  109. package/esm2022/model/filesystemColumnType.mjs +2 -2
  110. package/esm2022/model/filesystemCounters.mjs +1 -1
  111. package/esm2022/model/filesystemPath.mjs +1 -1
  112. package/esm2022/model/folder.mjs +1 -1
  113. package/esm2022/model/folderCounters.mjs +2 -2
  114. package/esm2022/model/folderSpecification.mjs +1 -1
  115. package/esm2022/model/folderType.mjs +2 -2
  116. package/esm2022/model/general400.mjs +1 -1
  117. package/esm2022/model/general402.mjs +1 -1
  118. package/esm2022/model/general403.mjs +1 -1
  119. package/esm2022/model/general404.mjs +1 -1
  120. package/esm2022/model/general404Detail.mjs +1 -1
  121. package/esm2022/model/general429.mjs +1 -1
  122. package/esm2022/model/general500.mjs +1 -1
  123. package/esm2022/model/generalStatistics.mjs +1 -1
  124. package/esm2022/model/geoSettings.mjs +1 -1
  125. package/esm2022/model/geopoint.mjs +2 -2
  126. package/esm2022/model/hardlink.mjs +1 -1
  127. package/esm2022/model/hardlinkElement.mjs +1 -1
  128. package/esm2022/model/hardlinkElementType.mjs +2 -2
  129. package/esm2022/model/importSample.mjs +2 -2
  130. package/esm2022/model/importSource.mjs +2 -2
  131. package/esm2022/model/linkedEssence.mjs +2 -2
  132. package/esm2022/model/loadStatistics.mjs +1 -1
  133. package/esm2022/model/location.mjs +1 -1
  134. package/esm2022/model/locationCargosLimit.mjs +1 -1
  135. package/esm2022/model/locationCompatibilities.mjs +2 -2
  136. package/esm2022/model/locationLimit.mjs +1 -1
  137. package/esm2022/model/locationLimitStatistics.mjs +1 -1
  138. package/esm2022/model/locationStatistics.mjs +1 -1
  139. package/esm2022/model/locationTimetableElement.mjs +1 -1
  140. package/esm2022/model/locationTransportsLimit.mjs +2 -2
  141. package/esm2022/model/measurements.mjs +1 -1
  142. package/esm2022/model/models.mjs +2 -1
  143. package/esm2022/model/order.mjs +1 -1
  144. package/esm2022/model/orderCompatibilities.mjs +2 -2
  145. package/esm2022/model/performer.mjs +1 -1
  146. package/esm2022/model/performerCompatibilities.mjs +1 -1
  147. package/esm2022/model/performerLimits.mjs +1 -1
  148. package/esm2022/model/performerShift.mjs +1 -1
  149. package/esm2022/model/performerTariff.mjs +1 -1
  150. package/esm2022/model/performerTariffConstraint.mjs +2 -2
  151. package/esm2022/model/planSettings.mjs +1 -1
  152. package/esm2022/model/planStatistics.mjs +1 -1
  153. package/esm2022/model/possibleEvent.mjs +1 -1
  154. package/esm2022/model/quality.mjs +1 -1
  155. package/esm2022/model/removedItems.mjs +2 -2
  156. package/esm2022/model/replanSettings.mjs +1 -1
  157. package/esm2022/model/replanStrategy.mjs +2 -2
  158. package/esm2022/model/rest.mjs +2 -2
  159. package/esm2022/model/restRules.mjs +1 -1
  160. package/esm2022/model/roundtripStatistics.mjs +1 -1
  161. package/esm2022/model/routingMatrix.mjs +1 -1
  162. package/esm2022/model/routingMatrixWaypoint.mjs +1 -1
  163. package/esm2022/model/routingTransportMatrix.mjs +1 -1
  164. package/esm2022/model/schemaError.mjs +2 -2
  165. package/esm2022/model/service.mjs +2 -2
  166. package/esm2022/model/settingsKeyList.mjs +2 -2
  167. package/esm2022/model/stopDemand.mjs +1 -1
  168. package/esm2022/model/stopStatistics.mjs +1 -1
  169. package/esm2022/model/tableCustomfields.mjs +2 -2
  170. package/esm2022/model/tableCustomfieldsColumnType.mjs +2 -2
  171. package/esm2022/model/tableDataStats.mjs +2 -2
  172. package/esm2022/model/tableExperimentColumnType.mjs +2 -2
  173. package/esm2022/model/tableFact.mjs +1 -1
  174. package/esm2022/model/tableFactColumnType.mjs +2 -2
  175. package/esm2022/model/tableFactFields.mjs +1 -1
  176. package/esm2022/model/tableFactFilter.mjs +1 -1
  177. package/esm2022/model/tableFactFilterList.mjs +1 -1
  178. package/esm2022/model/tableFactList.mjs +1 -1
  179. package/esm2022/model/tableFactMetrics.mjs +1 -1
  180. package/esm2022/model/tableFactMetricsFilterList.mjs +1 -1
  181. package/esm2022/model/tableFilterBoolList.mjs +2 -2
  182. package/esm2022/model/tableFilterDatetimeRange.mjs +2 -2
  183. package/esm2022/model/tableFilterDurationRange.mjs +2 -2
  184. package/esm2022/model/tableFilterEnumList.mjs +2 -2
  185. package/esm2022/model/tableFilterFloatRange.mjs +2 -2
  186. package/esm2022/model/tableFilterIntRange.mjs +2 -2
  187. package/esm2022/model/tableFilterStringList.mjs +2 -2
  188. package/esm2022/model/tableFilterStringSearch.mjs +2 -2
  189. package/esm2022/model/tableFilterType.mjs +2 -2
  190. package/esm2022/model/tableHardlink.mjs +1 -1
  191. package/esm2022/model/tableHardlinkColumnType.mjs +2 -2
  192. package/esm2022/model/tableHardlinkFields.mjs +1 -1
  193. package/esm2022/model/tableHardlinkFilter.mjs +1 -1
  194. package/esm2022/model/tableHardlinkFilterList.mjs +1 -1
  195. package/esm2022/model/tableHardlinkList.mjs +1 -1
  196. package/esm2022/model/tableHardlinkMetrics.mjs +1 -1
  197. package/esm2022/model/tableHardlinkMetricsFilterList.mjs +1 -1
  198. package/esm2022/model/tableListCounters.mjs +1 -1
  199. package/esm2022/model/tableListCountersDetail.mjs +2 -2
  200. package/esm2022/model/tableLocation.mjs +1 -1
  201. package/esm2022/model/tableLocationColumnType.mjs +2 -2
  202. package/esm2022/model/tableLocationFields.mjs +1 -1
  203. package/esm2022/model/tableLocationFilter.mjs +1 -1
  204. package/esm2022/model/tableLocationFilterList.mjs +1 -1
  205. package/esm2022/model/tableLocationList.mjs +1 -1
  206. package/esm2022/model/tableLocationMetrics.mjs +1 -1
  207. package/esm2022/model/tableLocationMetricsFilterList.mjs +1 -1
  208. package/esm2022/model/tableOrder.mjs +1 -1
  209. package/esm2022/model/tableOrderColumnType.mjs +2 -2
  210. package/esm2022/model/tableOrderFields.mjs +1 -1
  211. package/esm2022/model/tableOrderFilter.mjs +1 -1
  212. package/esm2022/model/tableOrderFilterList.mjs +1 -1
  213. package/esm2022/model/tableOrderList.mjs +1 -1
  214. package/esm2022/model/tableOrderMetrics.mjs +1 -1
  215. package/esm2022/model/tableOrderMetricsFilterList.mjs +1 -1
  216. package/esm2022/model/tablePerformer.mjs +1 -1
  217. package/esm2022/model/tablePerformerColumnType.mjs +2 -2
  218. package/esm2022/model/tablePerformerFields.mjs +1 -1
  219. package/esm2022/model/tablePerformerFilter.mjs +1 -1
  220. package/esm2022/model/tablePerformerFilterList.mjs +1 -1
  221. package/esm2022/model/tablePerformerList.mjs +1 -1
  222. package/esm2022/model/tablePerformerMetrics.mjs +1 -1
  223. package/esm2022/model/tablePerformerMetricsFilterList.mjs +1 -1
  224. package/esm2022/model/tableTransport.mjs +1 -1
  225. package/esm2022/model/tableTransportColumnType.mjs +2 -2
  226. package/esm2022/model/tableTransportFields.mjs +1 -1
  227. package/esm2022/model/tableTransportFilter.mjs +1 -1
  228. package/esm2022/model/tableTransportFilterList.mjs +1 -1
  229. package/esm2022/model/tableTransportList.mjs +1 -1
  230. package/esm2022/model/tableTransportMetrics.mjs +1 -1
  231. package/esm2022/model/tableTransportMetricsFilterList.mjs +1 -1
  232. package/esm2022/model/tableTrip.mjs +1 -1
  233. package/esm2022/model/tableTripColumnType.mjs +4 -2
  234. package/esm2022/model/tableTripFields.mjs +1 -1
  235. package/esm2022/model/tableTripFilter.mjs +1 -1
  236. package/esm2022/model/tableTripFilterList.mjs +1 -1
  237. package/esm2022/model/tableTripList.mjs +1 -1
  238. package/esm2022/model/tableTripMetrics.mjs +1 -1
  239. package/esm2022/model/tableTripMetricsFilterList.mjs +1 -1
  240. package/esm2022/model/tableTripStop.mjs +1 -1
  241. package/esm2022/model/tableTripStopColumnType.mjs +2 -2
  242. package/esm2022/model/tableTripStopFields.mjs +1 -1
  243. package/esm2022/model/tableTripStopFilter.mjs +1 -1
  244. package/esm2022/model/tableTripStopFilterList.mjs +1 -1
  245. package/esm2022/model/tableTripStopList.mjs +1 -1
  246. package/esm2022/model/taskStatistics.mjs +1 -1
  247. package/esm2022/model/timeWindow.mjs +2 -2
  248. package/esm2022/model/timeWindowViolationDetail.mjs +2 -2
  249. package/esm2022/model/timeWindowViolations.mjs +1 -1
  250. package/esm2022/model/tracedata.mjs +1 -1
  251. package/esm2022/model/track.mjs +1 -1
  252. package/esm2022/model/trackList.mjs +1 -1
  253. package/esm2022/model/trackListCustom.mjs +1 -1
  254. package/esm2022/model/trackType.mjs +2 -2
  255. package/esm2022/model/trackpoint.mjs +2 -2
  256. package/esm2022/model/translations.mjs +2 -2
  257. package/esm2022/model/transport.mjs +1 -1
  258. package/esm2022/model/transportCapacityMultiplier.mjs +1 -1
  259. package/esm2022/model/transportCompatibilities.mjs +1 -1
  260. package/esm2022/model/transportLimits.mjs +1 -1
  261. package/esm2022/model/transportLoad.mjs +1 -1
  262. package/esm2022/model/transportShift.mjs +1 -1
  263. package/esm2022/model/transportSpeedMultiplier.mjs +1 -1
  264. package/esm2022/model/transportTariff.mjs +1 -1
  265. package/esm2022/model/transportTariffConstraint.mjs +2 -2
  266. package/esm2022/model/transportType.mjs +2 -2
  267. package/esm2022/model/trip.mjs +1 -1
  268. package/esm2022/model/tripAssumptions.mjs +1 -1
  269. package/esm2022/model/tripExpectations.mjs +1 -1
  270. package/esm2022/model/tripPenalties.mjs +1 -1
  271. package/esm2022/model/tripStartTimeStrategy.mjs +2 -2
  272. package/esm2022/model/tripState.mjs +1 -1
  273. package/esm2022/model/tripStateFlag.mjs +2 -2
  274. package/esm2022/model/tripStatistics.mjs +1 -1
  275. package/esm2022/model/tripStatus.mjs +25 -0
  276. package/esm2022/model/tripsSettings.mjs +1 -1
  277. package/esm2022/model/universalData.mjs +1 -1
  278. package/esm2022/model/unplannedItems.mjs +2 -2
  279. package/esm2022/model/versionResult.mjs +2 -2
  280. package/esm2022/model/webFact.mjs +1 -1
  281. package/esm2022/model/webHardlink.mjs +1 -1
  282. package/esm2022/model/webLocation.mjs +1 -1
  283. package/esm2022/model/webLocationGeopoint.mjs +1 -1
  284. package/esm2022/model/webLocationGeopointList.mjs +1 -1
  285. package/esm2022/model/webOrder.mjs +1 -1
  286. package/esm2022/model/webOrderGeopoint.mjs +1 -1
  287. package/esm2022/model/webOrderGeopointList.mjs +1 -1
  288. package/esm2022/model/webPerformer.mjs +1 -1
  289. package/esm2022/model/webPerformerGeopoint.mjs +1 -1
  290. package/esm2022/model/webPerformerGeopointList.mjs +1 -1
  291. package/esm2022/model/webTransport.mjs +1 -1
  292. package/esm2022/model/webTransportGeopoint.mjs +1 -1
  293. package/esm2022/model/webTransportGeopointList.mjs +1 -1
  294. package/esm2022/model/webTrip.mjs +1 -1
  295. package/esm2022/model/webTripChart.mjs +1 -1
  296. package/esm2022/model/webTripChartDemand.mjs +1 -1
  297. package/esm2022/model/webTripChartList.mjs +1 -1
  298. package/esm2022/model/workAndRestRules.mjs +1 -1
  299. package/fesm2022/veeroute-lss-studio-angular.mjs +132 -101
  300. package/fesm2022/veeroute-lss-studio-angular.mjs.map +1 -1
  301. package/model/actualizeSettings.d.ts +1 -1
  302. package/model/assignedPerformer.d.ts +1 -1
  303. package/model/assignedTransport.d.ts +1 -1
  304. package/model/attribute.d.ts +1 -1
  305. package/model/basicProcess.d.ts +1 -1
  306. package/model/basicState.d.ts +1 -1
  307. package/model/box.d.ts +1 -1
  308. package/model/boxCompatibilities.d.ts +1 -1
  309. package/model/boxLimits.d.ts +1 -1
  310. package/model/break.d.ts +1 -1
  311. package/model/breakRules.d.ts +1 -1
  312. package/model/calculationHistoryElement.d.ts +1 -1
  313. package/model/calculationInfo.d.ts +5 -1
  314. package/model/calculationSettings.d.ts +1 -1
  315. package/model/calculationState.d.ts +1 -1
  316. package/model/calculationStatus.d.ts +1 -1
  317. package/model/capacity.d.ts +1 -1
  318. package/model/capacityCost.d.ts +1 -1
  319. package/model/capacityLimit.d.ts +1 -1
  320. package/model/capacityMultiplier.d.ts +1 -1
  321. package/model/capacityStatisticsLoad.d.ts +1 -1
  322. package/model/capacityStatisticsRatio.d.ts +1 -1
  323. package/model/capacityStatisticsSum.d.ts +1 -1
  324. package/model/cargo.d.ts +1 -1
  325. package/model/cargoAction.d.ts +1 -1
  326. package/model/cargoActionType.d.ts +1 -1
  327. package/model/cargoCompatibilities.d.ts +2 -2
  328. package/model/cargoRotationType.d.ts +1 -1
  329. package/model/checkResult.d.ts +1 -1
  330. package/model/compatibilityPenalty.d.ts +1 -1
  331. package/model/custom400WithErrorsAndWarnings.d.ts +1 -1
  332. package/model/customfieldConvertRule.d.ts +1 -1
  333. package/model/customfieldEntityType.d.ts +1 -1
  334. package/model/customfieldsSettings.d.ts +1 -1
  335. package/model/demand.d.ts +1 -1
  336. package/model/demandExtraDuration.d.ts +1 -1
  337. package/model/demandType.d.ts +1 -1
  338. package/model/entityError.d.ts +1 -1
  339. package/model/entityErrorType.d.ts +1 -1
  340. package/model/entityPath.d.ts +1 -1
  341. package/model/entityType.d.ts +1 -1
  342. package/model/entityWarning.d.ts +1 -1
  343. package/model/entityWarningType.d.ts +1 -1
  344. package/model/experiment.d.ts +1 -1
  345. package/model/experimentCheck.d.ts +1 -1
  346. package/model/experimentList.d.ts +1 -1
  347. package/model/experimentNeighbors.d.ts +1 -1
  348. package/model/experimentSettings.d.ts +1 -1
  349. package/model/experimentStatistics.d.ts +1 -1
  350. package/model/extensionSettings.d.ts +1 -1
  351. package/model/fact.d.ts +1 -1
  352. package/model/factType.d.ts +7 -3
  353. package/model/featureLifetime.d.ts +1 -1
  354. package/model/fileNamePath.d.ts +1 -1
  355. package/model/fileSpecification.d.ts +1 -1
  356. package/model/filesystem.d.ts +1 -1
  357. package/model/filesystemColumnType.d.ts +1 -1
  358. package/model/filesystemCounters.d.ts +1 -1
  359. package/model/filesystemPath.d.ts +1 -1
  360. package/model/folder.d.ts +1 -1
  361. package/model/folderCounters.d.ts +1 -1
  362. package/model/folderSpecification.d.ts +1 -1
  363. package/model/folderType.d.ts +1 -1
  364. package/model/general400.d.ts +1 -1
  365. package/model/general402.d.ts +1 -1
  366. package/model/general403.d.ts +1 -1
  367. package/model/general404.d.ts +1 -1
  368. package/model/general404Detail.d.ts +1 -1
  369. package/model/general429.d.ts +1 -1
  370. package/model/general500.d.ts +1 -1
  371. package/model/generalStatistics.d.ts +1 -1
  372. package/model/geoSettings.d.ts +1 -1
  373. package/model/geopoint.d.ts +1 -1
  374. package/model/hardlink.d.ts +1 -1
  375. package/model/hardlinkElement.d.ts +1 -1
  376. package/model/hardlinkElementType.d.ts +1 -1
  377. package/model/importSample.d.ts +1 -1
  378. package/model/importSource.d.ts +1 -1
  379. package/model/linkedEssence.d.ts +1 -1
  380. package/model/loadStatistics.d.ts +1 -1
  381. package/model/location.d.ts +1 -1
  382. package/model/locationCargosLimit.d.ts +1 -1
  383. package/model/locationCompatibilities.d.ts +1 -1
  384. package/model/locationLimit.d.ts +1 -1
  385. package/model/locationLimitStatistics.d.ts +1 -1
  386. package/model/locationStatistics.d.ts +1 -1
  387. package/model/locationTimetableElement.d.ts +1 -1
  388. package/model/locationTransportsLimit.d.ts +1 -1
  389. package/model/measurements.d.ts +1 -1
  390. package/model/models.d.ts +1 -0
  391. package/model/order.d.ts +1 -1
  392. package/model/orderCompatibilities.d.ts +1 -1
  393. package/model/performer.d.ts +1 -1
  394. package/model/performerCompatibilities.d.ts +1 -1
  395. package/model/performerLimits.d.ts +1 -1
  396. package/model/performerShift.d.ts +1 -1
  397. package/model/performerTariff.d.ts +2 -2
  398. package/model/performerTariffConstraint.d.ts +1 -1
  399. package/model/planSettings.d.ts +1 -1
  400. package/model/planStatistics.d.ts +1 -1
  401. package/model/possibleEvent.d.ts +1 -1
  402. package/model/quality.d.ts +1 -1
  403. package/model/removedItems.d.ts +1 -1
  404. package/model/replanSettings.d.ts +1 -1
  405. package/model/replanStrategy.d.ts +1 -1
  406. package/model/rest.d.ts +1 -1
  407. package/model/restRules.d.ts +1 -1
  408. package/model/roundtripStatistics.d.ts +1 -1
  409. package/model/routingMatrix.d.ts +1 -1
  410. package/model/routingMatrixWaypoint.d.ts +1 -1
  411. package/model/routingTransportMatrix.d.ts +1 -1
  412. package/model/schemaError.d.ts +1 -1
  413. package/model/service.d.ts +1 -1
  414. package/model/settingsKeyList.d.ts +1 -1
  415. package/model/stopDemand.d.ts +1 -1
  416. package/model/stopStatistics.d.ts +1 -1
  417. package/model/tableCustomfields.d.ts +1 -1
  418. package/model/tableCustomfieldsColumnType.d.ts +1 -1
  419. package/model/tableDataStats.d.ts +1 -1
  420. package/model/tableExperimentColumnType.d.ts +1 -1
  421. package/model/tableFact.d.ts +1 -1
  422. package/model/tableFactColumnType.d.ts +1 -1
  423. package/model/tableFactFields.d.ts +1 -1
  424. package/model/tableFactFilter.d.ts +1 -1
  425. package/model/tableFactFilterList.d.ts +1 -1
  426. package/model/tableFactList.d.ts +1 -1
  427. package/model/tableFactMetrics.d.ts +1 -1
  428. package/model/tableFactMetricsFilterList.d.ts +1 -1
  429. package/model/tableFilterBoolList.d.ts +1 -1
  430. package/model/tableFilterDatetimeRange.d.ts +1 -1
  431. package/model/tableFilterDurationRange.d.ts +1 -1
  432. package/model/tableFilterEnumList.d.ts +1 -1
  433. package/model/tableFilterFloatRange.d.ts +1 -1
  434. package/model/tableFilterIntRange.d.ts +1 -1
  435. package/model/tableFilterStringList.d.ts +1 -1
  436. package/model/tableFilterStringSearch.d.ts +1 -1
  437. package/model/tableFilterType.d.ts +1 -1
  438. package/model/tableHardlink.d.ts +1 -1
  439. package/model/tableHardlinkColumnType.d.ts +1 -1
  440. package/model/tableHardlinkFields.d.ts +1 -1
  441. package/model/tableHardlinkFilter.d.ts +1 -1
  442. package/model/tableHardlinkFilterList.d.ts +1 -1
  443. package/model/tableHardlinkList.d.ts +1 -1
  444. package/model/tableHardlinkMetrics.d.ts +1 -1
  445. package/model/tableHardlinkMetricsFilterList.d.ts +1 -1
  446. package/model/tableListCounters.d.ts +1 -1
  447. package/model/tableListCountersDetail.d.ts +1 -1
  448. package/model/tableLocation.d.ts +1 -1
  449. package/model/tableLocationColumnType.d.ts +1 -1
  450. package/model/tableLocationFields.d.ts +1 -1
  451. package/model/tableLocationFilter.d.ts +1 -1
  452. package/model/tableLocationFilterList.d.ts +1 -1
  453. package/model/tableLocationList.d.ts +1 -1
  454. package/model/tableLocationMetrics.d.ts +1 -1
  455. package/model/tableLocationMetricsFilterList.d.ts +1 -1
  456. package/model/tableOrder.d.ts +1 -1
  457. package/model/tableOrderColumnType.d.ts +1 -1
  458. package/model/tableOrderFields.d.ts +1 -1
  459. package/model/tableOrderFilter.d.ts +1 -1
  460. package/model/tableOrderFilterList.d.ts +1 -1
  461. package/model/tableOrderList.d.ts +1 -1
  462. package/model/tableOrderMetrics.d.ts +1 -1
  463. package/model/tableOrderMetricsFilterList.d.ts +1 -1
  464. package/model/tablePerformer.d.ts +1 -1
  465. package/model/tablePerformerColumnType.d.ts +1 -1
  466. package/model/tablePerformerFields.d.ts +1 -1
  467. package/model/tablePerformerFilter.d.ts +1 -1
  468. package/model/tablePerformerFilterList.d.ts +1 -1
  469. package/model/tablePerformerList.d.ts +1 -1
  470. package/model/tablePerformerMetrics.d.ts +1 -1
  471. package/model/tablePerformerMetricsFilterList.d.ts +1 -1
  472. package/model/tableTransport.d.ts +1 -1
  473. package/model/tableTransportColumnType.d.ts +1 -1
  474. package/model/tableTransportFields.d.ts +1 -1
  475. package/model/tableTransportFilter.d.ts +1 -1
  476. package/model/tableTransportFilterList.d.ts +1 -1
  477. package/model/tableTransportList.d.ts +1 -1
  478. package/model/tableTransportMetrics.d.ts +1 -1
  479. package/model/tableTransportMetricsFilterList.d.ts +1 -1
  480. package/model/tableTrip.d.ts +1 -1
  481. package/model/tableTripColumnType.d.ts +4 -2
  482. package/model/tableTripFields.d.ts +7 -1
  483. package/model/tableTripFilter.d.ts +1 -1
  484. package/model/tableTripFilterList.d.ts +1 -1
  485. package/model/tableTripList.d.ts +1 -1
  486. package/model/tableTripMetrics.d.ts +1 -1
  487. package/model/tableTripMetricsFilterList.d.ts +1 -1
  488. package/model/tableTripStop.d.ts +1 -1
  489. package/model/tableTripStopColumnType.d.ts +1 -1
  490. package/model/tableTripStopFields.d.ts +1 -1
  491. package/model/tableTripStopFilter.d.ts +1 -1
  492. package/model/tableTripStopFilterList.d.ts +1 -1
  493. package/model/tableTripStopList.d.ts +1 -1
  494. package/model/taskStatistics.d.ts +1 -1
  495. package/model/timeWindow.d.ts +1 -1
  496. package/model/timeWindowViolationDetail.d.ts +1 -1
  497. package/model/timeWindowViolations.d.ts +1 -1
  498. package/model/tracedata.d.ts +1 -1
  499. package/model/track.d.ts +1 -1
  500. package/model/trackList.d.ts +1 -1
  501. package/model/trackListCustom.d.ts +1 -1
  502. package/model/trackType.d.ts +1 -1
  503. package/model/trackpoint.d.ts +1 -1
  504. package/model/translations.d.ts +1 -1
  505. package/model/transport.d.ts +1 -1
  506. package/model/transportCapacityMultiplier.d.ts +1 -1
  507. package/model/transportCompatibilities.d.ts +1 -1
  508. package/model/transportLimits.d.ts +1 -1
  509. package/model/transportLoad.d.ts +1 -1
  510. package/model/transportShift.d.ts +1 -1
  511. package/model/transportSpeedMultiplier.d.ts +1 -1
  512. package/model/transportTariff.d.ts +1 -1
  513. package/model/transportTariffConstraint.d.ts +1 -1
  514. package/model/transportType.d.ts +1 -1
  515. package/model/trip.d.ts +1 -1
  516. package/model/tripAssumptions.d.ts +1 -1
  517. package/model/tripExpectations.d.ts +1 -1
  518. package/model/tripPenalties.d.ts +1 -1
  519. package/model/tripStartTimeStrategy.d.ts +1 -1
  520. package/model/tripState.d.ts +1 -1
  521. package/model/tripStateFlag.d.ts +1 -1
  522. package/model/tripStatistics.d.ts +1 -1
  523. package/model/tripStatus.d.ts +23 -0
  524. package/model/tripsSettings.d.ts +1 -1
  525. package/model/universalData.d.ts +1 -1
  526. package/model/unplannedItems.d.ts +1 -1
  527. package/model/versionResult.d.ts +1 -1
  528. package/model/webFact.d.ts +1 -1
  529. package/model/webHardlink.d.ts +1 -1
  530. package/model/webLocation.d.ts +1 -1
  531. package/model/webLocationGeopoint.d.ts +1 -1
  532. package/model/webLocationGeopointList.d.ts +1 -1
  533. package/model/webOrder.d.ts +1 -1
  534. package/model/webOrderGeopoint.d.ts +1 -1
  535. package/model/webOrderGeopointList.d.ts +1 -1
  536. package/model/webPerformer.d.ts +1 -1
  537. package/model/webPerformerGeopoint.d.ts +1 -1
  538. package/model/webPerformerGeopointList.d.ts +1 -1
  539. package/model/webTransport.d.ts +1 -1
  540. package/model/webTransportGeopoint.d.ts +1 -1
  541. package/model/webTransportGeopointList.d.ts +1 -1
  542. package/model/webTrip.d.ts +1 -1
  543. package/model/webTripChart.d.ts +1 -1
  544. package/model/webTripChartDemand.d.ts +1 -1
  545. package/model/webTripChartList.d.ts +1 -1
  546. package/model/workAndRestRules.d.ts +1 -1
  547. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # @veeroute/lss-studio-angular@7.25.3009
1
+ # @veeroute/lss-studio-angular@7.27.3079
2
2
 
3
3
  Veeroute Studio API. # Description Server part of the Veeroute Studio. ## Reserved attributes These attribute keys are reserved for specific business logic: | Attribute key | Parent entity | Purpose | |:---------------------|:--------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `ICON_NAME` | location | The attribute value is written to the `web_location_geopoint.icon_name` field | | `FORCED_GEOPROVIDER` | geo_settings | The attribute value determines the geodata provider for rendering flights on the map, which will be used instead of the one specified in the `plan_settings.geo_settings.geo_provider` field | ## Entity relationship diagram ![erd](../uml/studio.svg)
4
4
 
5
- The version of the OpenAPI document: 7.25.3009
5
+ The version of the OpenAPI document: 7.27.3079
6
6
 
7
7
  ## Building
8
8
 
@@ -24,7 +24,7 @@ Navigate to the folder of your consuming project and run one of next commands.
24
24
  _published:_
25
25
 
26
26
  ```console
27
- npm install @veeroute/lss-studio-angular@7.25.3009 --save
27
+ npm install @veeroute/lss-studio-angular@7.27.3079 --save
28
28
  ```
29
29
 
30
30
  _without publishing (not recommended):_
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -43,6 +43,7 @@ x-description-ru: >
43
43
  * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED` - полученное решение не удовлетворяет требованию `max_locations_limits_penalty`
44
44
  * `REMOVED_ITEMS_NOT_EMPTY` - в процессе проверки данных были удалены сущности из исходного датасета, список удаленных сущностей находится в объекте `removed_items`
45
45
  * `INCOMPATIBLE_REQUIREMENTS` - заданы несовместимые требования: учет нагрузки на локацию и оптимизация мягких окон.
46
+ # * `PERFORMER_WORKING_WINDOW_DURATION_AND_TARIFFICATION_MISMATCH` - тарификация от начала рабочего временного окна должна полностью покрывать это окно.
46
47
  x-description-zh: >
47
48
  警告类型:
48
49
  * `NO_AVAILABLE_TRANSPORT` - 订单无法完成,因为没有可用的(按班次限制)运输方式
@@ -86,6 +87,7 @@ x-description-zh: >
86
87
  * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED` - 生成的解决方案不满足 `max_locations_limits_penalty` 要求
87
88
  * `REMOVED_ITEMS_NOT_EMPTY` - 在数据验证过程中,实体被从源数据集中删除,删除的实体列表位于 `removed_items' 对象中
88
89
  * `INCOMPATIBLE_REQUIREMENTS` - 指定了不兼容的要求:位置负载核算和软窗口优化
90
+ # * `PERFORMER_WORKING_WINDOW_DURATION_AND_TARIFFICATION_MISMATCH` - 工作时间窗口开始的费率必须完全覆盖该窗口
89
91
  description: >
90
92
  Warning type:
91
93
  * `NO_AVAILABLE_TRANSPORT` - the order cannot be fulfilled, since there is no available (by shift limitations) transport
@@ -129,6 +131,7 @@ description: >
129
131
  * `MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED` - the resulting solution does not satisfy the `max_locations_limits_penalty` requirement
130
132
  * `REMOVED_ITEMS_NOT_EMPTY` - during data validation, items were removed from the original dataset, the list of removed items is in the `removed_items` object
131
133
  * `INCOMPATIBLE_REQUIREMENTS` - incompatible requirements are specified: location load accounting and soft window optimization.
134
+ # * `PERFORMER_WORKING_WINDOW_DURATION_AND_TARIFFICATION_MISMATCH` - the tariff from the beginning of the working time window must completely cover this window.
132
135
  type: string
133
136
  enum:
134
137
  - NO_AVAILABLE_TRANSPORT
@@ -172,4 +175,5 @@ enum:
172
175
  - MAX_LOCATIONS_LIMITS_PENALTY_EXCEEDED
173
176
  - REMOVED_ITEMS_NOT_EMPTY
174
177
  - INCOMPATIBLE_REQUIREMENTS
178
+ # - PERFORMER_WORKING_WINDOW_DURATION_AND_TARIFFICATION_MISMATCH
175
179
  example: TIME_WINDOW_VIOLATION
@@ -44,6 +44,13 @@
44
44
  "group": "calculation",
45
45
  "input": false
46
46
  },
47
+ {
48
+ "key": "calculation_info_postprocessing_time",
49
+ "path": "calculation.calculation_info.postprocessing_time",
50
+ "type": "DURATION",
51
+ "group": "calculation",
52
+ "input": false
53
+ },
47
54
  {
48
55
  "key": "calculation_info_result_version",
49
56
  "path": "calculation.calculation_info.result_version",
@@ -36,12 +36,6 @@
36
36
  "operation_id": "read_folder_path",
37
37
  "type": "NOTRACE"
38
38
  },
39
- {
40
- "method": "GET",
41
- "uri": "/studio/explorer/batch/folders",
42
- "operation_id": "read_folder_key",
43
- "type": "TRACE"
44
- },
45
39
  {
46
40
  "method": "POST",
47
41
  "uri": "/studio/explorer/batch/folders",
@@ -54,6 +48,12 @@
54
48
  "operation_id": "delete_folders_batch",
55
49
  "type": "TRACE"
56
50
  },
51
+ {
52
+ "method": "POST",
53
+ "uri": "/studio/explorer/batch/folder-key",
54
+ "operation_id": "read_folder_key",
55
+ "type": "TRACE"
56
+ },
57
57
  {
58
58
  "method": "GET",
59
59
  "uri": "/studio/explorer/batch/files",
@@ -3732,6 +3732,16 @@
3732
3732
  "disabled": true,
3733
3733
  "field": "STRING_9",
3734
3734
  "type": "STRING_SEARCH"
3735
+ },
3736
+ {
3737
+ "disabled": true,
3738
+ "field": "TRIP_STATUS",
3739
+ "type": "STRING_SEARCH"
3740
+ },
3741
+ {
3742
+ "disabled": true,
3743
+ "field": "CREW_KEY",
3744
+ "type": "STRING_SEARCH"
3735
3745
  }
3736
3746
  ]
3737
3747
  },
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * VRt.Studio [ST]
3
3
  *
4
- * The version of the OpenAPI document: 7.25.3009
4
+ * The version of the OpenAPI document: 7.27.3079
5
5
  * Contact: servicedesk@veeroute.com
6
6
  *
7
7
  * NOTE: This class is auto generated by OpenAPI Generator.
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
132
132
  }] }, { type: i2.Configuration, decorators: [{
133
133
  type: Optional
134
134
  }] }] });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3Vwc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYmFja3Vwc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQytDLFdBQVcsRUFDeEQsTUFBWSxzQkFBc0IsQ0FBQztBQWlCNUMsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUVqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFZbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBRXJCO0lBQXRCLFlBQXNCLFVBQXNCLEVBQWlDLFFBQXlCLEVBQWMsYUFBNkI7UUFDN0ksS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQURiLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFNUMsQ0FBQztJQVlNLFlBQVksQ0FBQyxpQkFBNEMsRUFBRSxVQUFlLE1BQU0sRUFBRSxpQkFBMEIsS0FBSyxFQUFFLE9BQThIO1FBQ3BQLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUMvQyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUxQyx1Q0FBdUM7UUFDdkMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdkgsTUFBTSxnQ0FBZ0MsR0FB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QVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQztRQUNuTSxNQUFNLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBTSxLQUFLLEVBQUUsR0FBRyxRQUFRLEdBQUcsWUFBWSxFQUFFLEVBQ25FO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixJQUFJLEVBQUUsSUFBSTtZQUNWLFlBQVksRUFBTyxhQUFhO1lBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsT0FBTztZQUNoQixhQUFhLEVBQUUscUJBQXFCO1lBQ3BDLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7d0dBeklRLGNBQWMsNENBRTJDLFNBQVM7NEdBRmxFLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR2tELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsU0FBUzs7MEJBQThCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZSdC5TdHVkaW8gW1NUXVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiA3LjI1LjMwMDlcbiAqIENvbnRhY3Q6IHNlcnZpY2VkZXNrQHZlZXJvdXRlLmNvbVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IuXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwQ29udGV4dCBcbiAgICAgICAgfSAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwUGFyYW1ldGVyQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDBTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAwJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDJTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAyJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDNTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAzJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDRTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDA0Jztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MjlTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDI5Jztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw1MDBTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNTAwJztcblxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL2FwaS5iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBCYWNrdXBzU2VydmljZUludGVyZmFjZSxcbiAgICBDcmVhdGVCYWNrdXBSZXF1ZXN0UGFyYW1zLFxuICAgIFJlc3RvcmVCYWNrdXBSZXF1ZXN0UGFyYW1zXG59IGZyb20gJy4vYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UnO1xuXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFja3Vwc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSBpbXBsZW1lbnRzIEJhY2t1cHNTZXJ2aWNlSW50ZXJmYWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKSBASW5qZWN0KEJBU0VfUEFUSCkgYmFzZVBhdGg6IHN0cmluZ3xzdHJpbmdbXSwgQE9wdGlvbmFsKCkgY29uZmlndXJhdGlvbj86IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgc3VwZXIoYmFzZVBhdGgsIGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvbGRlciBleHBvcnRcbiAgICAgKiBFeHBvcnQgZm9sZGVyIHdpdGggZXhwZXJpbWVudHMuIFxuICAgICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfCAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPHN0cmluZz4+O1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxzdHJpbmc+PjtcbiAgICBwdWJsaWMgY3JlYXRlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBDcmVhdGVCYWNrdXBSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvbGRlcktleSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5mb2xkZXJLZXk7XG4gICAgICAgIGlmIChmb2xkZXJLZXkgPT09IG51bGwgfHwgZm9sZGVyS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGZvbGRlcktleSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZUJhY2t1cC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChBcGlLZXlBdXRoKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYWRkQ3JlZGVudGlhbFRvSGVhZGVycygnQXBpS2V5QXV0aCcsICdBdXRob3JpemF0aW9uJywgbG9jYWxWYXJIZWFkZXJzLCAnQmVhcmVyICcpO1xuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zPy5odHRwSGVhZGVyQWNjZXB0ID8/IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9iYWNrdXBzLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHtuYW1lOiBcImZvbGRlcktleVwiLCB2YWx1ZTogZm9sZGVyS2V5LCBpbjogXCJwYXRoXCIsIHN0eWxlOiBcInNpbXBsZVwiLCBleHBsb2RlOiBmYWxzZSwgZGF0YVR5cGU6IFwic3RyaW5nXCIsIGRhdGFGb3JtYXQ6IFwidXVpZFwifSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxzdHJpbmc+KCdwb3N0JywgYCR7YmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIC4uLih3aXRoQ3JlZGVudGlhbHMgPyB7IHdpdGhDcmVkZW50aWFscyB9IDoge30pLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2xkZXIgaW1wb3J0XG4gICAgICogSW1wb3J0IGZvbGRlciB3aXRoIGV4cGVyaW1lbnRzLiBUaGUgZm9sZGVyIHNob3VsZCBub3QgYmUgb2YgdHlwZSBST09UIGFuZCBzaG91bGQgYmUgZW1wdHkuIFxuICAgICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcbiAgICBwdWJsaWMgcmVzdG9yZUJhY2t1cChyZXF1ZXN0UGFyYW1ldGVyczogUmVzdG9yZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvbGRlcktleSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5mb2xkZXJLZXk7XG4gICAgICAgIGlmIChmb2xkZXJLZXkgPT09IG51bGwgfHwgZm9sZGVyS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGZvbGRlcktleSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHJlc3RvcmVCYWNrdXAuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYm9keSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5ib2R5O1xuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyByZXN0b3JlQmFja3VwLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKEFwaUtleUF1dGgpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKCdBcGlLZXlBdXRoJywgJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckhlYWRlcnMsICdCZWFyZXIgJyk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz8gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9iYWNrdXBzLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHtuYW1lOiBcImZvbGRlcktleVwiLCB2YWx1ZTogZm9sZGVyS2V5LCBpbjogXCJwYXRoXCIsIHN0eWxlOiBcInNpbXBsZVwiLCBleHBsb2RlOiBmYWxzZSwgZGF0YVR5cGU6IFwic3RyaW5nXCIsIGRhdGFGb3JtYXQ6IFwidXVpZFwifSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwdXQnLCBgJHtiYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICAuLi4od2l0aENyZWRlbnRpYWxzID8geyB3aXRoQ3JlZGVudGlhbHMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckNhY2hlOiBsb2NhbFZhclRyYW5zZmVyQ2FjaGUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3Vwc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYmFja3Vwc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQytDLFdBQVcsRUFDeEQsTUFBWSxzQkFBc0IsQ0FBQztBQWlCNUMsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQXNCLE1BQTBCLGNBQWMsQ0FBQztBQUVqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFZbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXO0lBRXJCO0lBQXRCLFlBQXNCLFVBQXNCLEVBQWlDLFFBQXlCLEVBQWMsYUFBNkI7UUFDN0ksS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQURiLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFNUMsQ0FBQztJQVlNLFlBQVksQ0FBQyxpQkFBNEMsRUFBRSxVQUFlLE1BQU0sRUFBRSxpQkFBMEIsS0FBSyxFQUFFLE9BQThIO1FBQ3BQLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztRQUMvQyxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUxQyx1Q0FBdUM7UUFDdkMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdkgsTUFBTSxnQ0FBZ0MsR0FB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QVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQztRQUNuTSxNQUFNLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBTSxLQUFLLEVBQUUsR0FBRyxRQUFRLEdBQUcsWUFBWSxFQUFFLEVBQ25FO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixJQUFJLEVBQUUsSUFBSTtZQUNWLFlBQVksRUFBTyxhQUFhO1lBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsT0FBTztZQUNoQixhQUFhLEVBQUUscUJBQXFCO1lBQ3BDLGNBQWMsRUFBRSxjQUFjO1NBQ2pDLENBQ0osQ0FBQztJQUNOLENBQUM7d0dBeklRLGNBQWMsNENBRTJDLFNBQVM7NEdBRmxFLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR2tELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsU0FBUzs7MEJBQThCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZSdC5TdHVkaW8gW1NUXVxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiA3LjI3LjMwNzlcbiAqIENvbnRhY3Q6IHNlcnZpY2VkZXNrQHZlZXJvdXRlLmNvbVxuICpcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IuXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwQ29udGV4dCBcbiAgICAgICAgfSAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwUGFyYW1ldGVyQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDBTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAwJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDJTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAyJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDNTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDAzJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MDRTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDA0Jztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw0MjlTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNDI5Jztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEdlbmVyYWw1MDBTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9nZW5lcmFsNTAwJztcblxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgQkFTRV9QQVRILCBDT0xMRUNUSU9OX0ZPUk1BVFMgfSAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL2FwaS5iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBCYWNrdXBzU2VydmljZUludGVyZmFjZSxcbiAgICBDcmVhdGVCYWNrdXBSZXF1ZXN0UGFyYW1zLFxuICAgIFJlc3RvcmVCYWNrdXBSZXF1ZXN0UGFyYW1zXG59IGZyb20gJy4vYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UnO1xuXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFja3Vwc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSBpbXBsZW1lbnRzIEJhY2t1cHNTZXJ2aWNlSW50ZXJmYWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBAT3B0aW9uYWwoKSBASW5qZWN0KEJBU0VfUEFUSCkgYmFzZVBhdGg6IHN0cmluZ3xzdHJpbmdbXSwgQE9wdGlvbmFsKCkgY29uZmlndXJhdGlvbj86IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgc3VwZXIoYmFzZVBhdGgsIGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvbGRlciBleHBvcnRcbiAgICAgKiBFeHBvcnQgZm9sZGVyIHdpdGggZXhwZXJpbWVudHMuIFxuICAgICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnYm9keScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfCAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPHN0cmluZz4+O1xuICAgIHB1YmxpYyBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxzdHJpbmc+PjtcbiAgICBwdWJsaWMgY3JlYXRlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBDcmVhdGVCYWNrdXBSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlOiBhbnkgPSAnYm9keScsIHJlcG9ydFByb2dyZXNzOiBib29sZWFuID0gZmFsc2UsIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIHwgJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvbGRlcktleSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5mb2xkZXJLZXk7XG4gICAgICAgIGlmIChmb2xkZXJLZXkgPT09IG51bGwgfHwgZm9sZGVyS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGZvbGRlcktleSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGNyZWF0ZUJhY2t1cC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuXG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChBcGlLZXlBdXRoKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYWRkQ3JlZGVudGlhbFRvSGVhZGVycygnQXBpS2V5QXV0aCcsICdBdXRob3JpemF0aW9uJywgbG9jYWxWYXJIZWFkZXJzLCAnQmVhcmVyICcpO1xuXG4gICAgICAgIGNvbnN0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zPy5odHRwSGVhZGVyQWNjZXB0ID8/IHRoaXMuY29uZmlndXJhdGlvbi5zZWxlY3RIZWFkZXJBY2NlcHQoW1xuICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9iYWNrdXBzLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHtuYW1lOiBcImZvbGRlcktleVwiLCB2YWx1ZTogZm9sZGVyS2V5LCBpbjogXCJwYXRoXCIsIHN0eWxlOiBcInNpbXBsZVwiLCBleHBsb2RlOiBmYWxzZSwgZGF0YVR5cGU6IFwic3RyaW5nXCIsIGRhdGFGb3JtYXQ6IFwidXVpZFwifSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxzdHJpbmc+KCdwb3N0JywgYCR7YmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIC4uLih3aXRoQ3JlZGVudGlhbHMgPyB7IHdpdGhDcmVkZW50aWFscyB9IDoge30pLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHRyYW5zZmVyQ2FjaGU6IGxvY2FsVmFyVHJhbnNmZXJDYWNoZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2xkZXIgaW1wb3J0XG4gICAgICogSW1wb3J0IGZvbGRlciB3aXRoIGV4cGVyaW1lbnRzLiBUaGUgZm9sZGVyIHNob3VsZCBub3QgYmUgb2YgdHlwZSBST09UIGFuZCBzaG91bGQgYmUgZW1wdHkuIFxuICAgICAqIEBwYXJhbSByZXF1ZXN0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSBvYnNlcnZlIHNldCB3aGV0aGVyIG9yIG5vdCB0byByZXR1cm4gdGhlIGRhdGEgT2JzZXJ2YWJsZSBhcyB0aGUgYm9keSwgcmVzcG9uc2Ugb3IgZXZlbnRzLiBkZWZhdWx0cyB0byByZXR1cm5pbmcgdGhlIGJvZHkuXG4gICAgICogQHBhcmFtIHJlcG9ydFByb2dyZXNzIGZsYWcgdG8gcmVwb3J0IHJlcXVlc3QgYW5kIHJlc3BvbnNlIHByb2dyZXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbicsIGNvbnRleHQ/OiBIdHRwQ29udGV4dCwgdHJhbnNmZXJDYWNoZT86IGJvb2xlYW59KTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPGFueT4+O1xuICAgIHB1YmxpYyByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uJywgY29udGV4dD86IEh0dHBDb250ZXh0LCB0cmFuc2ZlckNhY2hlPzogYm9vbGVhbn0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PjtcbiAgICBwdWJsaWMgcmVzdG9yZUJhY2t1cChyZXF1ZXN0UGFyYW1ldGVyczogUmVzdG9yZUJhY2t1cFJlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb24nLCBjb250ZXh0PzogSHR0cENvbnRleHQsIHRyYW5zZmVyQ2FjaGU/OiBib29sZWFufSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvbGRlcktleSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5mb2xkZXJLZXk7XG4gICAgICAgIGlmIChmb2xkZXJLZXkgPT09IG51bGwgfHwgZm9sZGVyS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGZvbGRlcktleSB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIHJlc3RvcmVCYWNrdXAuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYm9keSA9IHJlcXVlc3RQYXJhbWV0ZXJzPy5ib2R5O1xuICAgICAgICBpZiAoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIGJvZHkgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyByZXN0b3JlQmFja3VwLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG5cbiAgICAgICAgLy8gYXV0aGVudGljYXRpb24gKEFwaUtleUF1dGgpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFySGVhZGVycyA9IHRoaXMuY29uZmlndXJhdGlvbi5hZGRDcmVkZW50aWFsVG9IZWFkZXJzKCdBcGlLZXlBdXRoJywgJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckhlYWRlcnMsICdCZWFyZXIgJyk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnM/Lmh0dHBIZWFkZXJBY2NlcHQgPz8gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChbXG4gICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgXSk7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdBY2NlcHQnLCBsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCA9IG9wdGlvbnM/LmNvbnRleHQgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxWYXJUcmFuc2ZlckNhY2hlOiBib29sZWFuID0gb3B0aW9ucz8udHJhbnNmZXJDYWNoZSA/PyB0cnVlO1xuXG5cbiAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyXG4gICAgICAgIGNvbnN0IGNvbnN1bWVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgICAgICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGh0dHBDb250ZW50VHlwZVNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQ29udGVudFR5cGUoY29uc3VtZXMpO1xuICAgICAgICBpZiAoaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgaHR0cENvbnRlbnRUeXBlU2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3N0dWRpby9iYWNrdXBzLyR7dGhpcy5jb25maWd1cmF0aW9uLmVuY29kZVBhcmFtKHtuYW1lOiBcImZvbGRlcktleVwiLCB2YWx1ZTogZm9sZGVyS2V5LCBpbjogXCJwYXRoXCIsIHN0eWxlOiBcInNpbXBsZVwiLCBleHBsb2RlOiBmYWxzZSwgZGF0YVR5cGU6IFwic3RyaW5nXCIsIGRhdGFGb3JtYXQ6IFwidXVpZFwifSl9YDtcbiAgICAgICAgY29uc3QgeyBiYXNlUGF0aCwgd2l0aENyZWRlbnRpYWxzIH0gPSB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwdXQnLCBgJHtiYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICAuLi4od2l0aENyZWRlbnRpYWxzID8geyB3aXRoQ3JlZGVudGlhbHMgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckNhY2hlOiBsb2NhbFZhclRyYW5zZmVyQ2FjaGUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVlJ0LlN0dWRpbyBbU1RdXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDcuMjUuMzAwOVxuICogQ29udGFjdDogc2VydmljZWRlc2tAdmVlcm91dGUuY29tXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvci5cbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBHZW5lcmFsNDAwU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw0MDJTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgR2VuZXJhbDQwM1N0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmFsNDA0U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw0MjlTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgR2VuZXJhbDUwMFN0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5cblxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQmFja3VwUmVxdWVzdFBhcmFtcyB7XG4gICAgZm9sZGVyS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZUJhY2t1cFJlcXVlc3RQYXJhbXMge1xuICAgIGZvbGRlcktleTogc3RyaW5nO1xuICAgIGJvZHk6IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgICBkZWZhdWx0SGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEZvbGRlciBleHBvcnRcbiAgICAgKiBFeHBvcnQgZm9sZGVyIHdpdGggZXhwZXJpbWVudHMuIFxuKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBGb2xkZXIgaW1wb3J0XG4gICAgICogSW1wb3J0IGZvbGRlciB3aXRoIGV4cGVyaW1lbnRzLiBUaGUgZm9sZGVyIHNob3VsZCBub3QgYmUgb2YgdHlwZSBST09UIGFuZCBzaG91bGQgYmUgZW1wdHkuIFxuKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8e30+O1xuXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcGkvYmFja3Vwc1NlcnZpY2VJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVlJ0LlN0dWRpbyBbU1RdXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDcuMjcuMzA3OVxuICogQ29udGFjdDogc2VydmljZWRlc2tAdmVlcm91dGUuY29tXG4gKlxuICogTk9URTogVGhpcyBjbGFzcyBpcyBhdXRvIGdlbmVyYXRlZCBieSBPcGVuQVBJIEdlbmVyYXRvci5cbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBHZW5lcmFsNDAwU3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw0MDJTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgR2VuZXJhbDQwM1N0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5pbXBvcnQgeyBHZW5lcmFsNDA0U3R1ZGlvIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWxzJztcbmltcG9ydCB7IEdlbmVyYWw0MjlTdHVkaW8gfSBmcm9tICcuLi9tb2RlbC9tb2RlbHMnO1xuaW1wb3J0IHsgR2VuZXJhbDUwMFN0dWRpbyB9IGZyb20gJy4uL21vZGVsL21vZGVscyc7XG5cblxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4uL2NvbmZpZ3VyYXRpb24nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQmFja3VwUmVxdWVzdFBhcmFtcyB7XG4gICAgZm9sZGVyS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZUJhY2t1cFJlcXVlc3RQYXJhbXMge1xuICAgIGZvbGRlcktleTogc3RyaW5nO1xuICAgIGJvZHk6IHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgICBkZWZhdWx0SGVhZGVyczogSHR0cEhlYWRlcnM7XG4gICAgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEZvbGRlciBleHBvcnRcbiAgICAgKiBFeHBvcnQgZm9sZGVyIHdpdGggZXhwZXJpbWVudHMuIFxuKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICBjcmVhdGVCYWNrdXAocmVxdWVzdFBhcmFtZXRlcnM6IENyZWF0ZUJhY2t1cFJlcXVlc3RQYXJhbXMsIGV4dHJhSHR0cFJlcXVlc3RQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBGb2xkZXIgaW1wb3J0XG4gICAgICogSW1wb3J0IGZvbGRlciB3aXRoIGV4cGVyaW1lbnRzLiBUaGUgZm9sZGVyIHNob3VsZCBub3QgYmUgb2YgdHlwZSBST09UIGFuZCBzaG91bGQgYmUgZW1wdHkuIFxuKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICByZXN0b3JlQmFja3VwKHJlcXVlc3RQYXJhbWV0ZXJzOiBSZXN0b3JlQmFja3VwUmVxdWVzdFBhcmFtcywgZXh0cmFIdHRwUmVxdWVzdFBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8e30+O1xuXG59XG4iXX0=